summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Makefile56
-rw-r--r--builddefs/build_full_test.mk8
-rw-r--r--builddefs/build_json.mk29
-rw-r--r--builddefs/build_keyboard.mk98
-rw-r--r--builddefs/build_layout.mk4
-rw-r--r--builddefs/build_test.mk16
-rw-r--r--builddefs/common_features.mk349
-rw-r--r--builddefs/common_rules.mk42
-rw-r--r--builddefs/generic_features.mk21
-rw-r--r--builddefs/message.mk5
-rw-r--r--builddefs/show_options.mk2
-rw-r--r--data/constants/keycodes/extras/keycodes_russian_typewriter_0.0.1.hjson291
-rw-r--r--data/mappings/info_config.hjson50
-rw-r--r--data/mappings/info_rules.hjson2
-rw-r--r--data/mappings/keyboard_aliases.hjson37
-rw-r--r--data/schemas/definitions.jsonschema18
-rw-r--r--data/schemas/keyboard.jsonschema170
-rw-r--r--data/schemas/user_repo_v0.jsonschema14
-rw-r--r--data/schemas/user_repo_v1.jsonschema22
-rw-r--r--docs/ChangeLog/20231126.md336
-rw-r--r--docs/_summary.md6
-rw-r--r--docs/adc_driver.md2
-rw-r--r--docs/apa102_driver.md49
-rw-r--r--docs/breaking_changes.md20
-rw-r--r--docs/breaking_changes_history.md1
-rw-r--r--docs/cli_commands.md125
-rw-r--r--docs/custom_quantum_functions.md59
-rw-r--r--docs/eeprom_driver.md20
-rw-r--r--docs/feature_auto_shift.md18
-rw-r--r--docs/feature_backlight.md15
-rw-r--r--docs/feature_led_matrix.md55
-rw-r--r--docs/feature_oled_driver.md42
-rw-r--r--docs/feature_os_detection.md9
-rw-r--r--docs/feature_pointing_device.md65
-rw-r--r--docs/feature_rgb_matrix.md286
-rw-r--r--docs/feature_rgblight.md37
-rw-r--r--docs/feature_split_keyboard.md2
-rw-r--r--docs/feature_stenography.md6
-rw-r--r--docs/feature_velocikey.md29
-rw-r--r--docs/i2c_driver.md12
-rw-r--r--docs/ja/_summary.md1
-rw-r--r--docs/ja/feature_velocikey.md34
-rw-r--r--docs/newbs_external_userspace.md96
-rw-r--r--docs/quantum_painter.md209
-rw-r--r--docs/quantum_painter_lvgl.md8
-rw-r--r--docs/reference_info_json.md172
-rw-r--r--docs/reference_keymap_extras.md1
-rw-r--r--docs/spi_driver.md17
-rw-r--r--docs/squeezing_avr.md1
-rw-r--r--docs/uart_driver.md12
-rw-r--r--docs/unit_testing.md4
-rw-r--r--docs/ws2812_driver.md278
-rw-r--r--docs/zh-cn/_summary.md1
-rw-r--r--drivers/eeprom/eeprom_spi.h12
-rw-r--r--drivers/haptic/solenoid.c5
-rw-r--r--drivers/led/apa102.c10
-rw-r--r--drivers/led/apa102.h2
-rw-r--r--drivers/led/aw20216.c168
-rw-r--r--drivers/led/aw20216.h253
-rw-r--r--drivers/led/aw20216s.c161
-rw-r--r--drivers/led/aw20216s.h319
-rw-r--r--drivers/led/ckled2001-simple.c221
-rw-r--r--drivers/led/ckled2001-simple.h337
-rw-r--r--drivers/led/ckled2001.c236
-rw-r--r--drivers/led/ckled2001.h339
-rw-r--r--drivers/led/issi/is31fl3218-simple.c147
-rw-r--r--drivers/led/issi/is31fl3218-simple.h73
-rw-r--r--drivers/led/issi/is31fl3218.c128
-rw-r--r--drivers/led/issi/is31fl3218.h51
-rw-r--r--drivers/led/issi/is31fl3731-simple.c171
-rw-r--r--drivers/led/issi/is31fl3731-simple.h81
-rw-r--r--drivers/led/issi/is31fl3731.c162
-rw-r--r--drivers/led/issi/is31fl3731.h81
-rw-r--r--drivers/led/issi/is31fl3733-simple.c195
-rw-r--r--drivers/led/issi/is31fl3733-simple.h127
-rw-r--r--drivers/led/issi/is31fl3733.c192
-rw-r--r--drivers/led/issi/is31fl3733.h150
-rw-r--r--drivers/led/issi/is31fl3736-simple.c252
-rw-r--r--drivers/led/issi/is31fl3736-simple.h261
-rw-r--r--drivers/led/issi/is31fl3736.c225
-rw-r--r--drivers/led/issi/is31fl3736.h139
-rw-r--r--drivers/led/issi/is31fl3737-simple.c249
-rw-r--r--drivers/led/issi/is31fl3737-simple.h299
-rw-r--r--drivers/led/issi/is31fl3737.c175
-rw-r--r--drivers/led/issi/is31fl3737.h125
-rw-r--r--drivers/led/issi/is31fl3741-simple.c278
-rw-r--r--drivers/led/issi/is31fl3741-simple.h516
-rw-r--r--drivers/led/issi/is31fl3741.c184
-rw-r--r--drivers/led/issi/is31fl3741.h141
-rw-r--r--drivers/led/issi/is31fl3743.h2
-rw-r--r--drivers/led/issi/is31fl3745.h2
-rw-r--r--drivers/led/issi/is31flcommon.c83
-rw-r--r--drivers/led/issi/is31flcommon.h31
-rw-r--r--drivers/led/snled27351-simple.c266
-rw-r--r--drivers/led/snled27351-simple.h380
-rw-r--r--drivers/led/snled27351.c281
-rw-r--r--drivers/led/snled27351.h394
-rw-r--r--drivers/oled/oled_driver.c4
-rw-r--r--drivers/oled/oled_driver.h20
-rw-r--r--drivers/painter/comms/qp_comms_dummy.c34
-rw-r--r--drivers/painter/comms/qp_comms_dummy.h11
-rw-r--r--drivers/painter/comms/qp_comms_i2c.c94
-rw-r--r--drivers/painter/comms/qp_comms_i2c.h28
-rw-r--r--drivers/painter/comms/qp_comms_spi.c10
-rw-r--r--drivers/painter/comms/qp_comms_spi.h2
-rw-r--r--drivers/painter/gc9a01/qp_gc9a01.c16
-rw-r--r--drivers/painter/gc9a01/qp_gc9a01.h1
-rw-r--r--drivers/painter/gc9a01/qp_gc9a01_opcodes.h1
-rw-r--r--drivers/painter/generic/qp_rgb565_surface.c284
-rw-r--r--drivers/painter/generic/qp_rgb565_surface.h42
-rw-r--r--drivers/painter/generic/qp_surface.h67
-rw-r--r--drivers/painter/generic/qp_surface_common.c141
-rw-r--r--drivers/painter/generic/qp_surface_internal.h119
-rw-r--r--drivers/painter/generic/qp_surface_mono1bpp.c113
-rw-r--r--drivers/painter/generic/qp_surface_rgb565.c145
-rw-r--r--drivers/painter/ili9xxx/qp_ili9163.c15
-rw-r--r--drivers/painter/ili9xxx/qp_ili9163.h1
-rw-r--r--drivers/painter/ili9xxx/qp_ili9341.c15
-rw-r--r--drivers/painter/ili9xxx/qp_ili9341.h1
-rw-r--r--drivers/painter/ili9xxx/qp_ili9488.c15
-rw-r--r--drivers/painter/ili9xxx/qp_ili9488.h1
-rw-r--r--drivers/painter/oled_panel/qp_oled_panel.c195
-rw-r--r--drivers/painter/oled_panel/qp_oled_panel.h68
-rw-r--r--drivers/painter/sh1106/qp_sh1106.c206
-rw-r--r--drivers/painter/sh1106/qp_sh1106.h66
-rw-r--r--drivers/painter/sh1106/qp_sh1106_opcodes.h26
-rw-r--r--drivers/painter/ssd1351/qp_ssd1351.c15
-rw-r--r--drivers/painter/ssd1351/qp_ssd1351.h1
-rw-r--r--drivers/painter/ssd1351/qp_ssd1351_opcodes.h1
-rw-r--r--drivers/painter/st77xx/qp_st7735.c17
-rw-r--r--drivers/painter/st77xx/qp_st7735.h3
-rw-r--r--drivers/painter/st77xx/qp_st7735_opcodes.h1
-rw-r--r--drivers/painter/st77xx/qp_st7789.c15
-rw-r--r--drivers/painter/st77xx/qp_st7789.h1
-rw-r--r--drivers/painter/st77xx/qp_st7789_opcodes.h1
-rw-r--r--drivers/painter/st77xx/qp_st77xx_opcodes.h1
-rw-r--r--drivers/painter/tft_panel/qp_tft_panel.h1
-rw-r--r--drivers/ps2/ps2_mouse.c13
-rw-r--r--drivers/sensors/azoteq_iqs5xx.c315
-rw-r--r--drivers/sensors/azoteq_iqs5xx.h193
-rw-r--r--drivers/sensors/pmw3320.c2
-rw-r--r--drivers/sensors/pmw3360.c2
-rw-r--r--drivers/sensors/pmw3389.c2
-rw-r--r--drivers/ws2812.h2
-rw-r--r--keyboards/1k/keymaps/default/rgblite.h2
-rw-r--r--keyboards/1k/keymaps/media/rgblite.h2
-rw-r--r--keyboards/1upkeyboards/1up60hse/keymaps/vosechu/config.h19
-rw-r--r--keyboards/1upkeyboards/1up60hse/keymaps/vosechu/keymap.c46
-rw-r--r--keyboards/1upkeyboards/1up60hse/keymaps/vosechu/readme.md6
-rw-r--r--keyboards/1upkeyboards/1up60hte/keymaps/badger/keymap.c59
-rw-r--r--keyboards/1upkeyboards/1up60rgb/keymaps/badger/keymap.c59
-rw-r--r--keyboards/1upkeyboards/1upocarina/info.json1
-rw-r--r--keyboards/1upkeyboards/1upocarina/rules.mk2
-rw-r--r--keyboards/1upkeyboards/1upslider8/rules.mk2
-rw-r--r--keyboards/1upkeyboards/pi40/mit_v1_0/keymaps/miketronic/config.h13
-rw-r--r--keyboards/1upkeyboards/pi40/mit_v1_0/keymaps/miketronic/keymap.c290
-rw-r--r--keyboards/1upkeyboards/pi40/mit_v1_0/keymaps/miketronic/rules.mk22
-rw-r--r--keyboards/1upkeyboards/pi60/config.h2
-rw-r--r--keyboards/1upkeyboards/pi60/info.json787
-rw-r--r--keyboards/1upkeyboards/pi60/keymaps/default/keymap.c8
-rw-r--r--keyboards/1upkeyboards/pi60/keymaps/via/keymap.c20
-rw-r--r--keyboards/1upkeyboards/pi60/matrix_diagram.md60
-rw-r--r--keyboards/1upkeyboards/pi60_hse/config.h2
-rw-r--r--keyboards/1upkeyboards/pi60_hse/info.json3
-rw-r--r--keyboards/1upkeyboards/super16/keymaps/15game/keymap.c2
-rw-r--r--keyboards/1upkeyboards/sweet16v2/kb2040/config.h2
-rw-r--r--keyboards/1upkeyboards/sweet16v2/kb2040/info.json3
-rw-r--r--keyboards/1upkeyboards/sweet16v2/pro_micro/config.h3
-rw-r--r--keyboards/1upkeyboards/sweet16v2/pro_micro/info.json3
-rw-r--r--keyboards/25keys/zinc/keymaps/ginjake/keymap.c8
-rw-r--r--keyboards/3w6/keymaps/manna-harbour_miryoku/config.h32
-rw-r--r--keyboards/3w6/keymaps/manna-harbour_miryoku/keymap.c17
-rw-r--r--keyboards/3w6/rev1/rules.mk2
-rw-r--r--keyboards/3w6/rev2/rules.mk2
-rw-r--r--keyboards/40percentclub/gherkin/keymaps/mjt/keymap.c35
-rw-r--r--keyboards/40percentclub/gherkin/keymaps/steno/keymap.c1
-rw-r--r--keyboards/40percentclub/gherkin/keymaps/talljoe-gherkin/keymap.c1
-rw-r--r--keyboards/40percentclub/nano/keymaps/drashna/config.h22
-rw-r--r--keyboards/40percentclub/nano/keymaps/drashna/keymap.c31
-rw-r--r--keyboards/40percentclub/nano/keymaps/drashna/rules.mk6
-rw-r--r--keyboards/40percentclub/ut47/rules.mk2
-rw-r--r--keyboards/4pplet/eagle_viper_rep/rev_a/config.h5
-rw-r--r--keyboards/4pplet/eagle_viper_rep/rev_a/info.json3
-rw-r--r--keyboards/4pplet/eagle_viper_rep/rev_b/config.h3
-rw-r--r--keyboards/4pplet/eagle_viper_rep/rev_b/info.json3
-rw-r--r--keyboards/4pplet/perk60_iso/rev_a/config.h5
-rw-r--r--keyboards/4pplet/perk60_iso/rev_a/rev_a.c2
-rw-r--r--keyboards/4pplet/waffling60/readme.md2
-rw-r--r--keyboards/4pplet/waffling60/rev_d/readme.md2
-rw-r--r--keyboards/4pplet/waffling60/rev_e/config.h20
-rw-r--r--keyboards/4pplet/waffling60/rev_e/info.json917
-rw-r--r--keyboards/4pplet/waffling60/rev_e/keymaps/6u_ansi/keymap.c40
-rw-r--r--keyboards/4pplet/waffling60/rev_e/keymaps/6u_ansi/rules.mk (renamed from keyboards/keychron/q0/rev_0131/keymaps/default/rules.mk)0
-rw-r--r--keyboards/4pplet/waffling60/rev_e/keymaps/6u_ansi_split_bs_rshift/keymap.c40
-rw-r--r--keyboards/4pplet/waffling60/rev_e/keymaps/6u_ansi_split_bs_rshift/rules.mk1
-rw-r--r--keyboards/4pplet/waffling60/rev_e/keymaps/6u_iso/keymap.c40
-rw-r--r--keyboards/4pplet/waffling60/rev_e/keymaps/6u_iso/rules.mk1
-rw-r--r--keyboards/4pplet/waffling60/rev_e/keymaps/6u_iso_split_bs_rshift/keymap.c40
-rw-r--r--keyboards/4pplet/waffling60/rev_e/keymaps/6u_iso_split_bs_rshift/rules.mk1
-rw-r--r--keyboards/4pplet/waffling60/rev_e/keymaps/default/keymap.c40
-rw-r--r--keyboards/4pplet/waffling60/rev_e/keymaps/default/rules.mk1
-rw-r--r--keyboards/4pplet/waffling60/rev_e/keymaps/via/keymap.c40
-rw-r--r--keyboards/4pplet/waffling60/rev_e/keymaps/via/rules.mk (renamed from keyboards/gmmk/pro/rev1/ansi/keymaps/vnmm/rules.mk)0
-rw-r--r--keyboards/4pplet/waffling60/rev_e/matrix_diagram.md37
-rw-r--r--keyboards/4pplet/waffling60/rev_e/readme.md20
-rw-r--r--keyboards/4pplet/waffling60/rev_e/rev_e.c35
-rw-r--r--keyboards/4pplet/waffling60/rev_e/rev_e.h22
-rw-r--r--keyboards/4pplet/waffling60/rev_e/rules.mk2
-rw-r--r--keyboards/9key/keymaps/bcat/keymap.c39
-rw-r--r--keyboards/9key/keymaps/bcat/readme.md5
-rw-r--r--keyboards/a_dux/keymaps/manna-harbour_miryoku/config.h19
-rw-r--r--keyboards/a_dux/keymaps/manna-harbour_miryoku/keymap.c4
-rw-r--r--keyboards/a_dux/keymaps/manna-harbour_miryoku/rules.mk4
-rw-r--r--keyboards/abacus/config.h2
-rw-r--r--keyboards/abacus/info.json3
-rw-r--r--keyboards/abko/ak84bt/ak84bt.c2
-rw-r--r--keyboards/abko/ak84bt/config.h5
-rw-r--r--keyboards/acheron/apollo/87h/gamma/config.h4
-rw-r--r--keyboards/acheron/apollo/87h/gamma/gamma.c2
-rw-r--r--keyboards/acheron/shark/alpha/keymaps/ajp10304/readme.md126
-rw-r--r--keyboards/acheron/shark/beta/info.json3
-rw-r--r--keyboards/acheron/shark/beta/rules.mk3
-rw-r--r--keyboards/acheron/themis/87h/config.h3
-rw-r--r--keyboards/acheron/themis/87h/info.json5
-rw-r--r--keyboards/acheron/themis/87htsc/config.h3
-rw-r--r--keyboards/acheron/themis/87htsc/info.json5
-rw-r--r--keyboards/acheron/themis/88htsc/config.h3
-rw-r--r--keyboards/acheron/themis/88htsc/info.json5
-rw-r--r--keyboards/adafruit/macropad/keymaps/drashna/config.h7
-rw-r--r--keyboards/adafruit/macropad/keymaps/drashna/keymap.c100
-rw-r--r--keyboards/adafruit/macropad/keymaps/drashna/rules.mk3
-rw-r--r--keyboards/adafruit/macropad/keymaps/peterfalken/keymap.c98
-rw-r--r--keyboards/adafruit/macropad/keymaps/peterfalken/rules.mk3
-rw-r--r--keyboards/adm42/config.h21
-rw-r--r--keyboards/adm42/info.json90
-rw-r--r--keyboards/adm42/rev4/config.h44
-rw-r--r--keyboards/adm42/rev4/info.json163
-rw-r--r--keyboards/adm42/rev4/keymaps/default/config.h2
-rw-r--r--keyboards/adm42/rev4/keymaps/default/keymap.c204
-rw-r--r--keyboards/adm42/rev4/keymaps/default/keymap.json44
-rw-r--r--keyboards/adm42/rev4/rev4.c39
-rw-r--r--keyboards/adm42/rev4/rules.mk2
-rw-r--r--keyboards/adm42/rules.mk16
-rw-r--r--keyboards/aeboards/constellation/rev2/info.json3
-rwxr-xr-xkeyboards/aeboards/constellation/rev2/rules.mk2
-rw-r--r--keyboards/aeboards/ext65/rev1/info.json5
-rw-r--r--keyboards/aeboards/ext65/rev1/keymaps/default/keymap.c20
-rw-r--r--keyboards/aeboards/ext65/rev1/keymaps/via/keymap.c20
-rw-r--r--keyboards/aeboards/ext65/rev2/config.h2
-rw-r--r--keyboards/aeboards/ext65/rev2/info.json5
-rw-r--r--keyboards/aeboards/ext65/rev2/keymaps/default/keymap.c20
-rw-r--r--keyboards/aeboards/ext65/rev2/keymaps/via/keymap.c20
-rw-r--r--keyboards/aeboards/ext65/rev3/info.json5
-rw-r--r--keyboards/aeboards/ext65/rev3/keymaps/default/keymap.c20
-rw-r--r--keyboards/aeboards/ext65/rev3/keymaps/via/keymap.c20
-rw-r--r--keyboards/aeboards/satellite/rev1/config.h9
-rw-r--r--keyboards/aeboards/satellite/rev1/rev1.c33
-rw-r--r--keyboards/aeboards/satellite/rev1/rules.mk2
-rw-r--r--keyboards/ai03/lunar/keymaps/zyber/keymap.c23
-rw-r--r--keyboards/ai03/orbit/config.h3
-rw-r--r--keyboards/ai03/orbit/info.json6
-rw-r--r--keyboards/akko/5087/config.h1
-rw-r--r--keyboards/akko/5087/info.json7
-rw-r--r--keyboards/akko/5087/rules.mk4
-rw-r--r--keyboards/akko/5108/5108.c4
-rw-r--r--keyboards/akko/5108/config.h9
-rw-r--r--keyboards/akko/5108/info.json12
-rw-r--r--keyboards/akko/5108/rules.mk3
-rw-r--r--keyboards/akko/acr87/acr87.c4
-rw-r--r--keyboards/akko/acr87/config.h11
-rw-r--r--keyboards/akko/acr87/info.json12
-rw-r--r--keyboards/akko/acr87/rules.mk4
-rw-r--r--keyboards/akko/top40/config.h9
-rw-r--r--keyboards/akko/top40/info.json12
-rw-r--r--keyboards/akko/top40/rules.mk7
-rw-r--r--keyboards/akko/top40/top40.c4
-rwxr-xr-xkeyboards/alpha/keymaps/hvp/keymap.c51
-rw-r--r--keyboards/alps64/keymaps/mechmerlin/keymap.c26
-rw-r--r--keyboards/alps64/keymaps/mechmerlin/readme.md10
-rw-r--r--keyboards/alps64/keymaps/zyber/keymap.c33
-rw-r--r--keyboards/anavi/knob1/rules.mk2
-rw-r--r--keyboards/anavi/knobs3/rules.mk2
-rw-r--r--keyboards/annepro2/annepro2_ble.c4
-rw-r--r--keyboards/annepro2/c15/config.h4
-rw-r--r--keyboards/annepro2/c15/info.json7
-rw-r--r--keyboards/annepro2/c15/rules.mk4
-rw-r--r--keyboards/annepro2/c18/config.h4
-rw-r--r--keyboards/annepro2/c18/info.json7
-rw-r--r--keyboards/annepro2/c18/rules.mk4
-rw-r--r--keyboards/aozora/config.h20
-rw-r--r--keyboards/arisu/keymaps/stanrc85/keymap.c50
-rw-r--r--keyboards/arisu/keymaps/stanrc85/rules.mk1
-rw-r--r--keyboards/atreus/keymaps/dvorak_42_key/README.md21
-rw-r--r--keyboards/atreus/keymaps/dvorak_42_key/config.h15
-rw-r--r--keyboards/atreus/keymaps/dvorak_42_key/keymap.c167
-rw-r--r--keyboards/atreus/keymaps/ibnuda/keymap.c47
-rw-r--r--keyboards/atreus/keymaps/ibnuda/rules.mk1
-rw-r--r--keyboards/atreus/keymaps/manna-harbour_miryoku/config.h21
-rw-r--r--keyboards/atreus/keymaps/manna-harbour_miryoku/keymap.c4
-rw-r--r--keyboards/atreus/keymaps/ridingqwerty/config.h13
-rw-r--r--keyboards/atreus/keymaps/ridingqwerty/keymap.c153
-rw-r--r--keyboards/atreus/keymaps/ridingqwerty/readme.md1
-rw-r--r--keyboards/atreus/keymaps/ridingqwerty/rules.mk22
-rw-r--r--keyboards/atreus/keymaps/talljoe/config.h53
-rw-r--r--keyboards/atreus/keymaps/talljoe/keymap.c1
-rw-r--r--keyboards/atreus/keymaps/talljoe/rules.mk1
-rw-r--r--keyboards/atreus62/keymaps/d4mation/keymap.c196
-rw-r--r--keyboards/atreus62/keymaps/d4mation/readme.md40
-rw-r--r--keyboards/atreus62/keymaps/d4mation/rules.mk2
-rw-r--r--keyboards/atreus62/keymaps/hvp/config.h4
-rw-r--r--keyboards/atreus62/keymaps/hvp/keymap.c67
-rw-r--r--keyboards/atreus62/keymaps/hvp/readme.md10
-rw-r--r--keyboards/atreus62/keymaps/hvp/rules.mk1
-rw-r--r--keyboards/atreus62/keymaps/jarred/config.h21
-rw-r--r--keyboards/atreus62/keymaps/jarred/keymap.c26
-rw-r--r--keyboards/atreus62/keymaps/pcewing/keymap.c76
-rw-r--r--keyboards/atreus62/keymaps/scheiklp/config.h51
-rw-r--r--keyboards/atreus62/keymaps/scheiklp/keymap.c43
-rw-r--r--keyboards/atreus62/keymaps/scheiklp/readme.md13
-rw-r--r--keyboards/atreus62/keymaps/scheiklp/rules.mk4
-rw-r--r--keyboards/axolstudio/yeti/hotswap/config.h3
-rw-r--r--keyboards/axolstudio/yeti/hotswap/hotswap.c2
-rw-r--r--keyboards/bajjak/rules.mk2
-rw-r--r--keyboards/barleycorn_smd/rules.mk2
-rw-r--r--keyboards/bastardkb/charybdis/3x5/blackpill/info.json3
-rw-r--r--keyboards/bastardkb/charybdis/3x5/blackpill/rules.mk1
-rw-r--r--keyboards/bastardkb/charybdis/3x5/keymaps/bstiq/keymap.c12
-rw-r--r--keyboards/bastardkb/charybdis/3x5/keymaps/drashna/config.h109
-rw-r--r--keyboards/bastardkb/charybdis/3x5/keymaps/drashna/halconf.h27
-rw-r--r--keyboards/bastardkb/charybdis/3x5/keymaps/drashna/keymap.c84
-rw-r--r--keyboards/bastardkb/charybdis/3x5/keymaps/drashna/mcuconf.h44
-rw-r--r--keyboards/bastardkb/charybdis/3x5/keymaps/drashna/rules.mk43
-rw-r--r--keyboards/bastardkb/charybdis/3x5/keymaps/manna-harbour_miryoku/config.h19
-rw-r--r--keyboards/bastardkb/charybdis/3x5/keymaps/manna-harbour_miryoku/keymap.c4
-rw-r--r--keyboards/bastardkb/charybdis/3x5/keymaps/manna-harbour_miryoku/rules.mk4
-rw-r--r--keyboards/bastardkb/charybdis/3x5/keymaps/via/keymap.c12
-rw-r--r--keyboards/bastardkb/charybdis/3x5/v2/splinky_2/rules.mk4
-rw-r--r--keyboards/bastardkb/charybdis/3x5/v2/splinky_3/rules.mk4
-rw-r--r--keyboards/bastardkb/charybdis/3x6/blackpill/info.json3
-rw-r--r--keyboards/bastardkb/charybdis/3x6/blackpill/rules.mk1
-rw-r--r--keyboards/bastardkb/charybdis/3x6/keymaps/via/keymap.c12
-rw-r--r--keyboards/bastardkb/charybdis/3x6/v2/splinky_2/rules.mk4
-rw-r--r--keyboards/bastardkb/charybdis/3x6/v2/splinky_3/rules.mk4
-rw-r--r--keyboards/bastardkb/charybdis/4x6/blackpill/info.json3
-rw-r--r--keyboards/bastardkb/charybdis/4x6/blackpill/rules.mk1
-rw-r--r--keyboards/bastardkb/charybdis/4x6/keymaps/drashna/config.h69
-rw-r--r--keyboards/bastardkb/charybdis/4x6/keymaps/drashna/keymap.c154
-rw-r--r--keyboards/bastardkb/charybdis/4x6/keymaps/drashna/mcuconf.h27
-rw-r--r--keyboards/bastardkb/charybdis/4x6/keymaps/drashna/rules.mk52
-rw-r--r--keyboards/bastardkb/charybdis/4x6/keymaps/manna-harbour_miryoku/config.h23
-rw-r--r--keyboards/bastardkb/charybdis/4x6/keymaps/manna-harbour_miryoku/keymap.c4
-rw-r--r--keyboards/bastardkb/charybdis/4x6/keymaps/manna-harbour_miryoku/rules.mk4
-rw-r--r--keyboards/bastardkb/charybdis/4x6/keymaps/via/keymap.c12
-rw-r--r--keyboards/bastardkb/charybdis/4x6/v2/splinky_2/rules.mk4
-rw-r--r--keyboards/bastardkb/charybdis/4x6/v2/splinky_3/rules.mk4
-rw-r--r--keyboards/bastardkb/charybdis/charybdis.c17
-rw-r--r--keyboards/bastardkb/dilemma/3x5_2/assembled/rules.mk3
-rw-r--r--keyboards/bastardkb/dilemma/3x5_2/keymaps/bstiq/keymap.c12
-rw-r--r--keyboards/bastardkb/dilemma/3x5_2/keymaps/drashna/config.h10
-rw-r--r--keyboards/bastardkb/dilemma/3x5_2/keymaps/drashna/halconf.h23
-rw-r--r--keyboards/bastardkb/dilemma/3x5_2/keymaps/drashna/keymap.c176
-rw-r--r--keyboards/bastardkb/dilemma/3x5_2/keymaps/drashna/mcuconf.h26
-rw-r--r--keyboards/bastardkb/dilemma/3x5_2/keymaps/drashna/rules.mk7
-rw-r--r--keyboards/bastardkb/dilemma/3x5_2/splinky/rules.mk3
-rw-r--r--keyboards/bastardkb/dilemma/3x5_3/keymaps/bstiq/keymap.c3
-rw-r--r--keyboards/bastardkb/dilemma/3x5_3/rules.mk3
-rw-r--r--keyboards/bastardkb/dilemma/4x6_4/keymaps/via/keymap.c7
-rw-r--r--keyboards/bastardkb/dilemma/dilemma.c17
-rw-r--r--keyboards/bastardkb/scylla/blackpill/info.json3
-rw-r--r--keyboards/bastardkb/scylla/blackpill/rules.mk1
-rw-r--r--keyboards/bastardkb/scylla/keymaps/manna-harbour_miryoku/config.h23
-rw-r--r--keyboards/bastardkb/scylla/keymaps/manna-harbour_miryoku/keymap.c4
-rw-r--r--keyboards/bastardkb/scylla/v2/splinky_2/rules.mk4
-rw-r--r--keyboards/bastardkb/scylla/v2/splinky_3/rules.mk4
-rw-r--r--keyboards/bastardkb/skeletyl/blackpill/info.json3
-rw-r--r--keyboards/bastardkb/skeletyl/blackpill/rules.mk1
-rw-r--r--keyboards/bastardkb/skeletyl/v2/splinky_2/rules.mk4
-rw-r--r--keyboards/bastardkb/skeletyl/v2/splinky_3/rules.mk4
-rw-r--r--keyboards/bastardkb/tbkmini/blackpill/info.json3
-rw-r--r--keyboards/bastardkb/tbkmini/blackpill/rules.mk1
-rw-r--r--keyboards/bastardkb/tbkmini/v2/splinky_2/rules.mk4
-rw-r--r--keyboards/bastardkb/tbkmini/v2/splinky_3/rules.mk4
-rwxr-xr-xkeyboards/bemeier/bmek/bmek.c7
-rwxr-xr-xkeyboards/bemeier/bmek/config.h2
-rwxr-xr-xkeyboards/bemeier/bmek/info.json3
-rw-r--r--keyboards/bfake/keymaps/mechmerlin/keymap.c51
-rw-r--r--keyboards/bfake/keymaps/mechmerlin/readme.md18
-rwxr-xr-xkeyboards/binepad/bn006/config.h8
-rwxr-xr-xkeyboards/binepad/bn006/info.json5
-rwxr-xr-xkeyboards/binepad/bn006/rules.mk6
-rw-r--r--keyboards/binepad/bn009/r2/config.h12
-rw-r--r--keyboards/binepad/bn009/r2/info.json5
-rw-r--r--keyboards/binepad/bnr1/v2/config.h7
-rw-r--r--keyboards/binepad/bnr1/v2/rules.mk6
-rw-r--r--keyboards/bioi/ble.c174
-rw-r--r--keyboards/bioi/ble.h30
-rw-r--r--keyboards/bioi/bluetooth_custom.c163
-rw-r--r--keyboards/bioi/g60/rules.mk6
-rw-r--r--keyboards/bioi/g60ble/rules.mk7
-rw-r--r--keyboards/bioi/morgan65/rules.mk6
-rw-r--r--keyboards/bioi/usart.c1522
-rw-r--r--keyboards/bioi/usart.h436
-rw-r--r--keyboards/boardsource/lulu/keymaps/manna-harbour_miryoku/config.h22
-rw-r--r--keyboards/boardsource/lulu/keymaps/manna-harbour_miryoku/keymap.c4
-rw-r--r--keyboards/boardsource/lulu/keymaps/rmeli/config.h45
-rw-r--r--keyboards/boardsource/lulu/keymaps/rmeli/keymap.c108
-rw-r--r--keyboards/boardsource/lulu/keymaps/rmeli/rules.mk9
-rw-r--r--keyboards/boardsource/the_mark/keymaps/stanrc85/keymap.c98
-rw-r--r--keyboards/boardsource/unicorne/config.h2
-rw-r--r--keyboards/boardsource/unicorne/info.json7
-rw-r--r--keyboards/boardwalk/keymaps/nchristus/config.h16
-rw-r--r--keyboards/boardwalk/keymaps/nchristus/keymap.c62
-rw-r--r--keyboards/boardwalk/keymaps/nchristus/readme.md1
-rw-r--r--keyboards/boardwalk/keymaps/nchristus/rules.mk14
-rw-r--r--keyboards/bpiphany/kitten_paw/keymaps/ickerwx/keymap.c1
-rw-r--r--keyboards/bt66tech/bt66tech60/config.h2
-rw-r--r--keyboards/buzzard/rev1/config.h1
-rw-r--r--keyboards/buzzard/rev1/info.json7
-rw-r--r--keyboards/canary/canary60rgb/canary60rgb.c2
-rw-r--r--keyboards/canary/canary60rgb/v1/config.h3
-rw-r--r--keyboards/cannonkeys/an_c/config.h2
-rw-r--r--keyboards/cannonkeys/atlas/config.h2
-rw-r--r--keyboards/cannonkeys/brutalv2_1800/rules.mk3
-rw-r--r--keyboards/cannonkeys/caerdroia/rules.mk3
-rw-r--r--keyboards/cannonkeys/cloudline/config.h2
-rw-r--r--keyboards/cannonkeys/db60/config.h2
-rw-r--r--keyboards/cannonkeys/devastatingtkl/config.h2
-rw-r--r--keyboards/cannonkeys/instant60/config.h2
-rw-r--r--keyboards/cannonkeys/instant65/config.h2
-rw-r--r--keyboards/cannonkeys/malicious_ergo/config.h2
-rw-r--r--keyboards/cannonkeys/obliterated75/config.h2
-rw-r--r--keyboards/cannonkeys/ortho48/config.h2
-rw-r--r--keyboards/cannonkeys/ortho48v2/rules.mk3
-rw-r--r--keyboards/cannonkeys/ortho60/config.h2
-rw-r--r--keyboards/cannonkeys/ortho60v2/rules.mk3
-rw-r--r--keyboards/cannonkeys/ortho75/config.h2
-rw-r--r--keyboards/cannonkeys/practice60/config.h2
-rw-r--r--keyboards/cannonkeys/practice65/config.h2
-rw-r--r--keyboards/cannonkeys/ripple/config.h2
-rw-r--r--keyboards/cannonkeys/sagittarius/config.h2
-rw-r--r--keyboards/cannonkeys/savage65/config.h2
-rw-r--r--keyboards/cannonkeys/serenity/config.h2
-rw-r--r--keyboards/cannonkeys/tmov2/config.h2
-rw-r--r--keyboards/cannonkeys/tmov2/keymaps/brandonschlack/keymap.c173
-rw-r--r--keyboards/cannonkeys/tsukuyomi/config.h2
-rw-r--r--keyboards/cannonkeys/typeb/rules.mk3
-rw-r--r--keyboards/capsunlocked/cu75/config.h2
-rw-r--r--keyboards/capsunlocked/cu75/cu75.c45
-rw-r--r--keyboards/capsunlocked/cu75/cu75.h17
-rw-r--r--keyboards/capsunlocked/cu75/info.json24
-rw-r--r--keyboards/capsunlocked/cu75/keymaps/default/rules.mk5
-rw-r--r--keyboards/capsunlocked/cu75/keymaps/iso/rules.mk5
-rw-r--r--keyboards/capsunlocked/cu75/post_rules.mk4
-rw-r--r--keyboards/capsunlocked/cu75/rules.mk3
-rw-r--r--keyboards/centromere/keymaps/mattly/keymap.c55
-rw-r--r--keyboards/centromere/keymaps/mattly/rules.mk1
-rw-r--r--keyboards/centromere/rules.mk2
-rw-r--r--keyboards/checkerboards/quark/keymaps/ajp10304/keymap.c219
-rw-r--r--keyboards/checkerboards/quark/keymaps/ajp10304/readme.md126
-rw-r--r--keyboards/checkerboards/quark/keymaps/ajp10304/rules.mk1
-rw-r--r--keyboards/chord/zero/keymaps/default/keymap.c1
-rw-r--r--keyboards/chosfox/cf81/cf81.c4
-rw-r--r--keyboards/chosfox/cf81/config.h9
-rw-r--r--keyboards/chosfox/cf81/info.json8
-rw-r--r--keyboards/chosfox/cf81/rules.mk2
-rw-r--r--keyboards/chromatonemini/chromatonemini.c60
-rw-r--r--keyboards/chromatonemini/config.h49
-rw-r--r--keyboards/chromatonemini/info.json180
-rw-r--r--keyboards/chromatonemini/rules.mk1
-rw-r--r--keyboards/cipulot/ec_23u/rules.mk3
-rw-r--r--keyboards/cipulot/ec_60/rules.mk3
-rw-r--r--keyboards/cipulot/ec_alveus/1_0_0/rules.mk3
-rw-r--r--keyboards/cipulot/ec_alveus/1_2_0/rules.mk3
-rw-r--r--keyboards/cipulot/ec_pro2/rules.mk4
-rw-r--r--keyboards/cipulot/ec_prox/ansi_iso/rules.mk3
-rw-r--r--keyboards/cipulot/ec_prox/jis/rules.mk3
-rw-r--r--keyboards/cipulot/ec_theca/rules.mk3
-rw-r--r--keyboards/cipulot/rf_r1_8_9xu/rules.mk3
-rw-r--r--keyboards/citrus/erdnuss65/info.json50
-rw-r--r--keyboards/citrus/erdnuss65/keymaps/default/keymap.c11
-rw-r--r--keyboards/citrus/erdnuss65/keymaps/via/keymap.c13
-rw-r--r--keyboards/clickety_split/leeloo/info.json141
-rw-r--r--keyboards/clickety_split/leeloo/keymaps/default/config.h38
-rw-r--r--keyboards/clickety_split/leeloo/keymaps/default/keymap.c26
-rw-r--r--keyboards/clickety_split/leeloo/leeloo.c32
-rw-r--r--keyboards/clickety_split/leeloo/readme.md31
-rw-r--r--keyboards/clickety_split/leeloo/rev1/info.json6
-rw-r--r--keyboards/clickety_split/leeloo/rev2/config.h22
-rw-r--r--keyboards/clickety_split/leeloo/rev2/info.json104
-rw-r--r--keyboards/clickety_split/leeloo/rev2/rules.mk1
-rw-r--r--keyboards/clickety_split/leeloo/rev3/config.h22
-rw-r--r--keyboards/clickety_split/leeloo/rev3/info.json88
-rw-r--r--keyboards/clickety_split/leeloo/rev3/rules.mk1
-rw-r--r--keyboards/clickety_split/leeloo/rules.mk17
-rw-r--r--keyboards/clueboard/2x1800/2021/rules.mk3
-rw-r--r--keyboards/clueboard/66/keymaps/badger/keymap.c53
-rw-r--r--keyboards/clueboard/66/keymaps/magicmonty/keymap.c6
-rw-r--r--keyboards/clueboard/66_hotswap/gen1/config.h10
-rw-r--r--keyboards/clueboard/66_hotswap/gen1/gen1.c2
-rw-r--r--keyboards/contra/keymaps/losinggeneration/README.md30
-rw-r--r--keyboards/contra/keymaps/losinggeneration/config.h23
-rw-r--r--keyboards/contra/keymaps/losinggeneration/keymap.c40
-rw-r--r--keyboards/contra/keymaps/losinggeneration/rules.mk14
-rw-r--r--keyboards/controllerworks/mini36/config.h5
-rw-r--r--keyboards/controllerworks/mini36/info.json8
-rw-r--r--keyboards/controllerworks/mini42/config.h5
-rw-r--r--keyboards/controllerworks/mini42/info.json9
-rw-r--r--keyboards/converter/adb_usb/keymaps/zyber/keymap.c15
-rw-r--r--keyboards/converter/m0110_usb/keymaps/zyber/keymap.c76
-rw-r--r--keyboards/converter/m0110_usb/keymaps/zyber/rules.mk3
-rw-r--r--keyboards/converter/palm_usb/rules.mk2
-rw-r--r--keyboards/converter/sun_usb/rules.mk2
-rw-r--r--keyboards/converter/sun_usb/type5/keymaps/sigma/keymap.c31
-rw-r--r--keyboards/converter/sun_usb/type5/keymaps/sigma/readme.md12
-rw-r--r--keyboards/converter/sun_usb/type5/keymaps/sigma/rules.mk2
-rw-r--r--keyboards/converter/usb_usb/keymaps/narze/README.md10
-rw-r--r--keyboards/converter/usb_usb/keymaps/narze/config.h43
-rw-r--r--keyboards/converter/usb_usb/keymaps/narze/keymap.c167
-rw-r--r--keyboards/converter/usb_usb/keymaps/narze/rules.mk2
-rw-r--r--keyboards/coseyfannitutti/discipline/keymaps/brandonschlack/keymap.c60
-rw-r--r--keyboards/coseyfannitutti/discipline/keymaps/noroadsleft/config.h20
-rw-r--r--keyboards/coseyfannitutti/discipline/keymaps/noroadsleft/keymap.c72
-rw-r--r--keyboards/coseyfannitutti/discipline/keymaps/noroadsleft/rules.mk1
-rw-r--r--keyboards/coseyfannitutti/romeo/keymaps/brandonschlack/keymap.c111
-rw-r--r--keyboards/cozykeys/speedo/v3/keymaps/pcewing/keymap.c132
-rw-r--r--keyboards/crimsonkeyboards/resume1800/info.json8
-rw-r--r--keyboards/crimsonkeyboards/resume1800/keymaps/dee/keymap.c2
-rw-r--r--keyboards/crimsonkeyboards/resume1800/keymaps/default/keymap.c2
-rw-r--r--keyboards/crimsonkeyboards/resume1800/keymaps/iso/keymap.c2
-rw-r--r--keyboards/crimsonkeyboards/resume1800/keymaps/via/keymap.c2
-rw-r--r--keyboards/crkbd/keymaps/cameronjlarsen/config.h47
-rw-r--r--keyboards/crkbd/keymaps/cameronjlarsen/keymap.c357
-rw-r--r--keyboards/crkbd/keymaps/cameronjlarsen/rules.mk14
-rw-r--r--keyboards/crkbd/keymaps/curry/config.h20
-rw-r--r--keyboards/crkbd/keymaps/curry/keymap.c76
-rw-r--r--keyboards/crkbd/keymaps/curry/rules.mk16
-rw-r--r--keyboards/crkbd/keymaps/devdev/config.h133
-rw-r--r--keyboards/crkbd/keymaps/devdev/keymap.c396
-rw-r--r--keyboards/crkbd/keymaps/devdev/rules.mk4
-rw-r--r--keyboards/crkbd/keymaps/edvorakjp/config.h24
-rw-r--r--keyboards/crkbd/keymaps/edvorakjp/keymap.c67
-rw-r--r--keyboards/crkbd/keymaps/edvorakjp/oled.c56
-rw-r--r--keyboards/crkbd/keymaps/edvorakjp/oled.h17
-rw-r--r--keyboards/crkbd/keymaps/edvorakjp/readme.md21
-rw-r--r--keyboards/crkbd/keymaps/edvorakjp/rules.mk28
-rwxr-xr-xkeyboards/crkbd/keymaps/ericgebhart/config.h24
-rw-r--r--keyboards/crkbd/keymaps/ericgebhart/keymap.c18
-rw-r--r--keyboards/crkbd/keymaps/hvp/config.h54
-rw-r--r--keyboards/crkbd/keymaps/hvp/keymap.c160
-rw-r--r--keyboards/crkbd/keymaps/hvp/readme.md10
-rw-r--r--keyboards/crkbd/keymaps/hvp/rules.mk13
-rw-r--r--keyboards/crkbd/keymaps/jarred/config.h49
-rw-r--r--keyboards/crkbd/keymaps/jarred/keymap.c152
-rw-r--r--keyboards/crkbd/keymaps/jarred/readme.md9
-rw-r--r--keyboards/crkbd/keymaps/jarred/rules.mk31
-rw-r--r--keyboards/crkbd/keymaps/ninjonas/README.md99
-rw-r--r--keyboards/crkbd/keymaps/ninjonas/config.h88
-rw-r--r--keyboards/crkbd/keymaps/ninjonas/keymap.c101
-rw-r--r--keyboards/crkbd/keymaps/ninjonas/rules.mk7
-rw-r--r--keyboards/crkbd/keymaps/ollyhayes/config.h95
-rw-r--r--keyboards/crkbd/keymaps/ollyhayes/keymap.c112
-rw-r--r--keyboards/crkbd/keymaps/ollyhayes/oled.c112
-rw-r--r--keyboards/crkbd/keymaps/ollyhayes/readme.md67
-rw-r--r--keyboards/crkbd/keymaps/ollyhayes/rules.mk16
-rw-r--r--keyboards/crkbd/keymaps/pdl/config.h29
-rw-r--r--keyboards/crkbd/keymaps/pdl/keymap.c62
-rw-r--r--keyboards/crkbd/keymaps/rmeli/config.h67
-rw-r--r--keyboards/crkbd/keymaps/rmeli/keymap.c129
-rw-r--r--keyboards/crkbd/keymaps/rmeli/rules.mk11
-rw-r--r--keyboards/crkbd/keymaps/rs/config.h49
-rw-r--r--keyboards/crkbd/keymaps/rs/keymap.c39
-rw-r--r--keyboards/crkbd/keymaps/rs/oled.c87
-rw-r--r--keyboards/crkbd/keymaps/rs/readme.md19
-rw-r--r--keyboards/crkbd/keymaps/rs/rules.mk31
-rw-r--r--keyboards/crkbd/keymaps/snowe/config.h58
-rw-r--r--keyboards/crkbd/keymaps/snowe/keycode_aliases.h81
-rw-r--r--keyboards/crkbd/keymaps/snowe/keymap.c211
-rw-r--r--keyboards/crkbd/keymaps/snowe/rules.mk25
-rw-r--r--keyboards/crkbd/keymaps/toinux/config.h123
-rw-r--r--keyboards/crkbd/keymaps/toinux/glcdfont.c232
-rw-r--r--keyboards/crkbd/keymaps/toinux/keycodes.h49
-rw-r--r--keyboards/crkbd/keymaps/toinux/keymap.c259
-rw-r--r--keyboards/crkbd/keymaps/toinux/oled.c112
-rw-r--r--keyboards/crkbd/keymaps/toinux/oled.h71
-rw-r--r--keyboards/crkbd/keymaps/toinux/rgb.c72
-rw-r--r--keyboards/crkbd/keymaps/toinux/rules.mk8
-rwxr-xr-xkeyboards/crkbd/keymaps/tominabox1/keymap.c46
-rw-r--r--keyboards/crkbd/keymaps/vlukash_trackpad_right/keymap.c9
-rw-r--r--keyboards/crkbd/rev1/keymaps/dvorak_42_key/config.h44
-rw-r--r--keyboards/crkbd/rev1/keymaps/dvorak_42_key/keymap.c289
-rw-r--r--keyboards/crkbd/rev1/keymaps/dvorak_42_key/rules.mk8
-rw-r--r--keyboards/crowboard/rules.mk2
-rw-r--r--keyboards/custommk/ergostrafer/info.json3
-rw-r--r--keyboards/custommk/ergostrafer/rules.mk2
-rw-r--r--keyboards/custommk/evo70_r2/config.h1
-rw-r--r--keyboards/custommk/evo70_r2/info.json3
-rw-r--r--keyboards/custommk/evo70_r2/rules.mk2
-rw-r--r--keyboards/cutie_club/borsdorf/keymaps/zyber/keymap.c35
-rw-r--r--keyboards/darkproject/kd87a_bfg_edition/config.h2
-rw-r--r--keyboards/darkproject/kd87a_bfg_edition/info.json10
-rw-r--r--keyboards/darkproject/kd87a_bfg_edition/rules.mk2
-rw-r--r--keyboards/dc01/left/rules.mk4
-rw-r--r--keyboards/deng/thirty/config.h5
-rw-r--r--keyboards/deng/thirty/info.json3
-rwxr-xr-xkeyboards/dichotomy/rules.mk2
-rw-r--r--keyboards/dm9records/lain/config.h2
-rw-r--r--keyboards/dm9records/lain/info.json3
-rw-r--r--keyboards/dm9records/plaid/keymaps/gipsy-king/keymap.c2
-rw-r--r--keyboards/dmqdesign/spin/keymaps/spidey3_pad/keymap.c4
-rw-r--r--keyboards/doio/kb16/rev2/rules.mk4
-rw-r--r--keyboards/doio/kb30/config.h3
-rw-r--r--keyboards/doro67/multi/keymaps/konstantin/config.h4
-rw-r--r--keyboards/doro67/multi/keymaps/konstantin/keymap.c67
-rw-r--r--keyboards/doro67/multi/keymaps/konstantin/rules.mk18
-rw-r--r--keyboards/doro67/multi/keymaps/zyber/keymap.c36
-rw-r--r--keyboards/dp3000/info.json59
-rw-r--r--keyboards/dp3000/readme.md13
-rw-r--r--keyboards/dp3000/rev1/info.json59
-rw-r--r--keyboards/dp3000/rev1/rules.mk (renamed from keyboards/studiokestra/line_tkl/rules.mk)0
-rw-r--r--keyboards/dp3000/rev2/info.json31
-rw-r--r--keyboards/dp3000/rev2/rules.mk1
-rw-r--r--keyboards/dp3000/rules.mk2
-rw-r--r--keyboards/dp60/config.h5
-rw-r--r--keyboards/dp60/dp60.c2
-rw-r--r--keyboards/dp60/keymaps/indicator/indicator.c4
-rw-r--r--keyboards/dp60/keymaps/indicator/led_driver.c2
-rw-r--r--keyboards/draculad/keymaps/manna-harbour_miryoku/config.h24
-rw-r--r--keyboards/draculad/keymaps/manna-harbour_miryoku/keymap.c4
-rw-r--r--keyboards/drop/alt/v2/config.h12
-rw-r--r--keyboards/drop/alt/v2/info.json1
-rw-r--r--keyboards/drop/alt/v2/rules.mk4
-rw-r--r--keyboards/drop/alt/v2/v2.c2
-rw-r--r--keyboards/drop/cstm80/config.h12
-rw-r--r--keyboards/drop/cstm80/cstm80.c2
-rw-r--r--keyboards/drop/cstm80/info.json1
-rw-r--r--keyboards/drop/ctrl/v2/config.h12
-rw-r--r--keyboards/drop/ctrl/v2/info.json1
-rw-r--r--keyboards/drop/ctrl/v2/rules.mk4
-rw-r--r--keyboards/drop/ctrl/v2/v2.c2
-rw-r--r--keyboards/drop/sense75/config.h12
-rw-r--r--keyboards/drop/sense75/info.json3
-rw-r--r--keyboards/drop/sense75/sense75.c2
-rw-r--r--keyboards/drop/shift/v2/config.h14
-rw-r--r--keyboards/drop/shift/v2/info.json1
-rw-r--r--keyboards/drop/shift/v2/rules.mk4
-rw-r--r--keyboards/drop/shift/v2/v2.c2
-rw-r--r--keyboards/ducky/one2mini/1861st/config.h2
-rw-r--r--keyboards/ducky/one2mini/1861st/info.json3
-rw-r--r--keyboards/ducky/one2sf/1967st/config.h2
-rw-r--r--keyboards/ducky/one2sf/1967st/info.json3
-rw-r--r--keyboards/dumbpad/v0x/v0x.c6
-rw-r--r--keyboards/dumbpad/v0x_dualencoder/v0x_dualencoder.c6
-rw-r--r--keyboards/dumbpad/v0x_right/v0x_right.c6
-rw-r--r--keyboards/dumbpad/v1x/keymaps/imchipwood/keymap.c95
-rw-r--r--keyboards/dumbpad/v1x/v1x.c6
-rw-r--r--keyboards/dumbpad/v1x_dualencoder/v1x_dualencoder.c6
-rw-r--r--keyboards/dumbpad/v1x_right/v1x_right.c6
-rw-r--r--keyboards/dumbpad/v3x/v3x.c6
-rw-r--r--keyboards/durgod/dgk6x/config.h16
-rw-r--r--keyboards/durgod/dgk6x/galaxy/galaxy.c2
-rw-r--r--keyboards/durgod/dgk6x/hades_ansi/hades_ansi.c2
-rw-r--r--keyboards/durgod/dgk6x/hades_iso/hades_iso.c2
-rw-r--r--keyboards/durgod/dgk6x/venus/venus.c2
-rw-r--r--keyboards/durgod/k320/keymaps/moults31/config.h20
-rw-r--r--keyboards/durgod/k320/keymaps/moults31/keymap.c84
-rw-r--r--keyboards/durgod/k320/keymaps/moults31/readme.md10
-rw-r--r--keyboards/dyz/dyz40/config.h20
-rw-r--r--keyboards/dyz/dyz60/config.h20
-rw-r--r--keyboards/dyz/dyz60_hs/config.h20
-rw-r--r--keyboards/dyz/dyz_tkl/config.h20
-rw-r--r--keyboards/dyz/selka40/config.h20
-rw-r--r--keyboards/dyz/synthesis60/config.h20
-rw-r--r--keyboards/dz60/keymaps/billypython/config.h3
-rw-r--r--keyboards/dz60/keymaps/billypython/keymap.c46
-rw-r--r--keyboards/dz60/keymaps/billypython/rules.mk8
-rw-r--r--keyboards/dz60/keymaps/doogle999/keymap.c74
-rw-r--r--keyboards/dz60/keymaps/draevin/keymap.c46
-rw-r--r--keyboards/dz60/keymaps/jarred/keymap.c21
-rw-r--r--keyboards/dz60/keymaps/jdelkins/config.h54
-rw-r--r--keyboards/dz60/keymaps/jdelkins/keymap.c352
-rw-r--r--keyboards/dz60/keymaps/jdelkins/rules.mk7
-rw-r--r--keyboards/dz60/keymaps/konstantin_b/config.h3
-rw-r--r--keyboards/dz60/keymaps/konstantin_b/keymap.c46
-rw-r--r--keyboards/dz60/keymaps/konstantin_b/rules.mk21
-rw-r--r--keyboards/dz60/keymaps/mechmerlin/config.h6
-rw-r--r--keyboards/dz60/keymaps/mechmerlin/keymap.c40
-rw-r--r--keyboards/dz60/keymaps/mechmerlin/readme.md68
-rw-r--r--keyboards/dz60/keymaps/spotpuff/keymap.c95
-rw-r--r--keyboards/dz60/keymaps/spotpuff/rules.mk1
-rw-r--r--keyboards/dz60/keymaps/twschum_b_4_10/config.h24
-rw-r--r--keyboards/dz60/keymaps/twschum_b_4_10/keymap.c123
-rw-r--r--keyboards/dz60/keymaps/twschum_b_4_10/layout.json4877
-rw-r--r--keyboards/dz60/keymaps/twschum_b_4_10/rules.mk15
-rw-r--r--keyboards/dz60/keymaps/xtonhasvim/config.h17
-rw-r--r--keyboards/dz60/keymaps/xtonhasvim/keymap.c87
-rw-r--r--keyboards/dz60/keymaps/xtonhasvim/readme.md10
-rw-r--r--keyboards/dztech/dz60rgb/dz60rgb.c2
-rw-r--r--keyboards/dztech/dz60rgb/keymaps/moults31/keymap.c42
-rw-r--r--keyboards/dztech/dz60rgb/keymaps/moults31/readme.md11
-rw-r--r--keyboards/dztech/dz60rgb/v1/config.h3
-rw-r--r--keyboards/dztech/dz60rgb/v2/config.h3
-rw-r--r--keyboards/dztech/dz60rgb/v2_1/config.h3
-rw-r--r--keyboards/dztech/dz60rgb_ansi/dz60rgb_ansi.c2
-rw-r--r--keyboards/dztech/dz60rgb_ansi/keymaps/badger/keymap.c60
-rw-r--r--keyboards/dztech/dz60rgb_ansi/v1/config.h3
-rw-r--r--keyboards/dztech/dz60rgb_ansi/v2/config.h3
-rw-r--r--keyboards/dztech/dz60rgb_ansi/v2_1/config.h3
-rw-r--r--keyboards/dztech/dz60rgb_wkl/dz60rgb_wkl.c2
-rw-r--r--keyboards/dztech/dz60rgb_wkl/v1/config.h3
-rw-r--r--keyboards/dztech/dz60rgb_wkl/v2/config.h3
-rw-r--r--keyboards/dztech/dz60rgb_wkl/v2_1/config.h3
-rw-r--r--keyboards/dztech/dz64rgb/config.h3
-rw-r--r--keyboards/dztech/dz64rgb/dz64rgb.c2
-rw-r--r--keyboards/dztech/dz65rgb/keymaps/haervig/keymap.c36
-rw-r--r--keyboards/dztech/dz65rgb/keymaps/haervig/rules.mk3
-rw-r--r--keyboards/dztech/dz65rgb/v1/config.h5
-rw-r--r--keyboards/dztech/dz65rgb/v1/v1.c2
-rw-r--r--keyboards/dztech/dz65rgb/v2/config.h5
-rw-r--r--keyboards/dztech/dz65rgb/v2/v2.c2
-rwxr-xr-xkeyboards/dztech/dz65rgb/v3/config.h3
-rwxr-xr-xkeyboards/dztech/dz65rgb/v3/v3.c2
-rw-r--r--keyboards/dztech/og60/info.json448
-rw-r--r--keyboards/dztech/og60/readme.md22
-rw-r--r--keyboards/dztech/tofu/ii/v1/config.h5
-rw-r--r--keyboards/dztech/tofu/ii/v1/v1.c2
-rw-r--r--keyboards/dztech/tofu/jr/readme.md22
-rw-r--r--keyboards/dztech/tofu/jr/v1/config.h5
-rw-r--r--keyboards/dztech/tofu/jr/v1/readme.md22
-rw-r--r--keyboards/dztech/tofu/jr/v1/v1.c2
-rw-r--r--keyboards/dztech/tofu/jr/v2/config.h24
-rw-r--r--keyboards/dztech/tofu/jr/v2/info.json124
-rw-r--r--keyboards/dztech/tofu/jr/v2/readme.md22
-rw-r--r--keyboards/dztech/tofu/jr/v2/rules.mk1
-rw-r--r--keyboards/dztech/tofu60/info.json740
-rw-r--r--keyboards/dztech/tofu60/keymaps/default/keymap.c (renamed from keyboards/dztech/og60/keymaps/default/keymap.c)0
-rw-r--r--keyboards/dztech/tofu60/keymaps/via/keymap.c (renamed from keyboards/dztech/og60/keymaps/via/keymap.c)0
-rw-r--r--keyboards/dztech/tofu60/keymaps/via/rules.mk (renamed from keyboards/dztech/dz60rgb/keymaps/moults31/rules.mk)0
-rw-r--r--keyboards/dztech/tofu60/matrix_diagram.md24
-rw-r--r--keyboards/dztech/tofu60/readme.md22
-rw-r--r--keyboards/dztech/tofu60/rules.mk (renamed from keyboards/dztech/og60/rules.mk)0
-rw-r--r--keyboards/eason/aeroboard/config.h2
-rw-r--r--keyboards/eco/keymaps/bcat/config.h33
-rw-r--r--keyboards/eco/keymaps/bcat/keymap.c52
-rw-r--r--keyboards/eco/keymaps/bcat/readme.md44
-rw-r--r--keyboards/eco/keymaps/bcat/rules.mk3
-rw-r--r--keyboards/eco/keymaps/that_canadian/keymap.c38
-rw-r--r--keyboards/ein_60/keymaps/klackygears/config.h27
-rw-r--r--keyboards/ein_60/keymaps/klackygears/keymap.c175
-rw-r--r--keyboards/ein_60/keymaps/klackygears/readme.md1
-rw-r--r--keyboards/ein_60/keymaps/klackygears/rules.mk8
-rw-r--r--keyboards/era/divine/config.h20
-rw-r--r--keyboards/era/divine/halconf.h21
-rw-r--r--keyboards/era/divine/info.json9
-rw-r--r--keyboards/era/divine/mcuconf.h22
-rw-r--r--keyboards/era/divine/readme.md4
-rw-r--r--keyboards/ergodox_ez/config.h5
-rw-r--r--keyboards/ergodox_ez/ergodox_ez.c2
-rw-r--r--keyboards/ergodox_ez/keymaps/danielo515/config.h39
-rw-r--r--keyboards/ergodox_ez/keymaps/danielo515/keymap.c326
-rw-r--r--keyboards/ergodox_ez/keymaps/danielo515/rules.mk9
-rw-r--r--keyboards/ergodox_ez/keymaps/dvorak_42_key/README.md19
-rw-r--r--keyboards/ergodox_ez/keymaps/dvorak_42_key/keymap.c340
-rw-r--r--keyboards/ergodox_ez/keymaps/ericgebhart/keymap.c18
-rw-r--r--keyboards/ergodox_ez/keymaps/ericgebhart/readme.md5
-rw-r--r--keyboards/ergodox_ez/keymaps/hacker_dvorak/rules.mk1
-rw-r--r--keyboards/ergodox_ez/keymaps/pvinis/keymap.c334
-rw-r--r--keyboards/ergodox_ez/keymaps/pvinis/readme.md65
-rw-r--r--keyboards/ergodox_ez/keymaps/pvinis/rules.mk1
-rw-r--r--keyboards/ergodox_ez/keymaps/rishka/config.h17
-rw-r--r--keyboards/ergodox_ez/keymaps/rishka/keymap.c210
-rw-r--r--keyboards/ergodox_ez/keymaps/rishka/rules.mk2
-rw-r--r--keyboards/ergodox_ez/keymaps/rmw/config.h53
-rw-r--r--keyboards/ergodox_ez/keymaps/rmw/keymap-mac.c188
-rw-r--r--keyboards/ergodox_ez/keymaps/rmw/keymap-win.c159
-rw-r--r--keyboards/ergodox_ez/keymaps/rmw/keymap.c13
-rw-r--r--keyboards/ergodox_ez/keymaps/rmw/readme.md11
-rw-r--r--keyboards/ergodox_ez/keymaps/rmw/rules.mk1
-rw-r--r--keyboards/ergodox_ez/keymaps/steno/keymap.c3
-rw-r--r--keyboards/ergodox_ez/led_i2c.c2
-rw-r--r--keyboards/ergodox_ez/rules.mk2
-rw-r--r--keyboards/ergodox_stm32/rules.mk2
-rw-r--r--keyboards/ergoslab/keymaps/default/keymap.c8
-rw-r--r--keyboards/ergoslab/rev1/info.json5
-rw-r--r--keyboards/ergotravel/keymaps/jarred/config.h26
-rw-r--r--keyboards/ergotravel/keymaps/jarred/keymap.c50
-rw-r--r--keyboards/ergotravel/keymaps/manna-harbour_miryoku/config.h21
-rw-r--r--keyboards/ergotravel/keymaps/manna-harbour_miryoku/keymap.c4
-rw-r--r--keyboards/ergotravel/keymaps/rs/config.h40
-rw-r--r--keyboards/ergotravel/keymaps/rs/keymap.c38
-rw-r--r--keyboards/ergotravel/keymaps/rs/readme.md1
-rw-r--r--keyboards/ergotravel/keymaps/yanfali/config.h42
-rw-r--r--keyboards/ergotravel/keymaps/yanfali/keymap.c108
-rw-r--r--keyboards/ergotravel/keymaps/yanfali/rules.mk7
-rw-r--r--keyboards/evolv/info.json8
-rwxr-xr-xkeyboards/evolv/keymaps/default/keymap.c22
-rwxr-xr-xkeyboards/evolv/keymaps/gondolindrim/keymap.c8
-rwxr-xr-xkeyboards/evolv/keymaps/iso/keymap.c22
-rwxr-xr-xkeyboards/evolv/keymaps/via/keymap.c22
-rw-r--r--keyboards/evyd13/atom47/rev5/config.h13
-rw-r--r--keyboards/evyd13/atom47/rev5/rev5.c2
-rw-r--r--keyboards/evyd13/wasdat/keymaps/konstantin/config.h4
-rw-r--r--keyboards/evyd13/wasdat/keymaps/konstantin/keymap.c79
-rw-r--r--keyboards/evyd13/wasdat/keymaps/konstantin/rules.mk17
-rw-r--r--keyboards/evyd13/wonderland/keymaps/brandonschlack/config.h19
-rwxr-xr-xkeyboards/evyd13/wonderland/keymaps/brandonschlack/keymap.c170
-rwxr-xr-xkeyboards/evyd13/wonderland/keymaps/brandonschlack/rules.mk8
-rw-r--r--keyboards/exclusive/e6_rgb/config.h3
-rw-r--r--keyboards/exclusive/e6_rgb/e6_rgb.c2
-rw-r--r--keyboards/eyeohdesigns/babyv/info.json42
-rw-r--r--keyboards/eyeohdesigns/babyv/keymaps/bghull/keymap.c1
-rwxr-xr-xkeyboards/fallacy/config.h5
-rwxr-xr-xkeyboards/fallacy/indicators.c13
-rwxr-xr-xkeyboards/fallacy/rules.mk2
-rw-r--r--keyboards/fc660c/actuation_point.c87
-rw-r--r--keyboards/fc660c/actuation_point.h29
-rw-r--r--keyboards/fc660c/ad5258.c52
-rw-r--r--keyboards/fc660c/ad5258.h28
-rw-r--r--keyboards/fc660c/config.h2
-rw-r--r--keyboards/fc660c/fc660c.c45
-rw-r--r--keyboards/fc660c/fc660c.h31
-rw-r--r--keyboards/fc660c/i2c.c162
-rw-r--r--keyboards/fc660c/i2c.h46
-rw-r--r--keyboards/fc660c/keymaps/zyber/keymap.c47
-rw-r--r--keyboards/fc660c/rules.mk6
-rw-r--r--keyboards/fc980c/actuation_point.c87
-rw-r--r--keyboards/fc980c/actuation_point.h29
-rw-r--r--keyboards/fc980c/ad5258.c52
-rw-r--r--keyboards/fc980c/ad5258.h28
-rw-r--r--keyboards/fc980c/config.h2
-rw-r--r--keyboards/fc980c/fc980c.c44
-rw-r--r--keyboards/fc980c/fc980c.h31
-rw-r--r--keyboards/fc980c/i2c.c162
-rw-r--r--keyboards/fc980c/i2c.h46
-rw-r--r--keyboards/fc980c/keymaps/actuation-point-example/config.h8
-rw-r--r--keyboards/fc980c/keymaps/actuation-point-example/keymap.c5
-rw-r--r--keyboards/fc980c/rules.mk6
-rw-r--r--keyboards/feker/ik75/config.h5
-rw-r--r--keyboards/feker/ik75/ik75.c2
-rw-r--r--keyboards/ferris/0_1/rules.mk2
-rw-r--r--keyboards/ferris/0_2/bling/bling.c2
-rw-r--r--keyboards/ferris/0_2/bling/config.h5
-rw-r--r--keyboards/ferris/0_2/rules.mk2
-rwxr-xr-xkeyboards/flashquark/horizon_z/config.h3
-rwxr-xr-xkeyboards/flashquark/horizon_z/horizon_z.c2
-rw-r--r--keyboards/flehrad/bigswitch/keymaps/333fred/config.h27
-rw-r--r--keyboards/flehrad/bigswitch/keymaps/333fred/keymap.c145
-rw-r--r--keyboards/flehrad/bigswitch/keymaps/333fred/rules.mk5
-rw-r--r--keyboards/flehrad/bigswitch/keymaps/wanleg/config.h42
-rw-r--r--keyboards/flehrad/bigswitch/keymaps/wanleg/keymap.c26
-rw-r--r--keyboards/flehrad/bigswitch/keymaps/wanleg/rules.mk14
-rw-r--r--keyboards/foostan/cornelius/keymaps/hvp/config.h19
-rw-r--r--keyboards/foostan/cornelius/keymaps/hvp/keymap.c66
-rw-r--r--keyboards/foostan/cornelius/keymaps/hvp/readme.md1
-rw-r--r--keyboards/foostan/cornelius/keymaps/hvp/rules.mk1
-rw-r--r--keyboards/foostan/cornelius/keymaps/pdl/config.h29
-rw-r--r--keyboards/foostan/cornelius/keymaps/pdl/keymap.c62
-rw-r--r--keyboards/foostan/cornelius/keymaps/pdl/readme.md1
-rw-r--r--keyboards/for_science/keymaps/manna-harbour_miryoku/config.h22
-rw-r--r--keyboards/for_science/keymaps/manna-harbour_miryoku/keymap.c4
-rw-r--r--keyboards/fortitude60/keymaps/manna-harbour_miryoku/config.h22
-rw-r--r--keyboards/fortitude60/keymaps/manna-harbour_miryoku/keymap.c4
-rw-r--r--keyboards/foxlab/leaf60/universal/keymaps/jarred/keymap.c37
-rw-r--r--keyboards/foxlab/leaf60/universal/keymaps/jarred/readme.md9
-rw-r--r--keyboards/foxlab/leaf60/universal/keymaps/mguterl/config.h19
-rw-r--r--keyboards/foxlab/leaf60/universal/keymaps/mguterl/keymap.c43
-rw-r--r--keyboards/foxlab/leaf60/universal/keymaps/mguterl/readme.md11
-rw-r--r--keyboards/frobiac/blackbowl/rules.mk2
-rw-r--r--keyboards/frooastboard/walnut/config.h9
-rw-r--r--keyboards/frooastboard/walnut/walnut.c2
-rw-r--r--keyboards/gboards/butterstick/keymaps/dennytom/README.md11
-rw-r--r--keyboards/gboards/butterstick/keymaps/dennytom/keymap.c1418
-rw-r--r--keyboards/gboards/butterstick/keymaps/dennytom/keymap_def.json309
-rw-r--r--keyboards/gboards/butterstick/keymaps/dennytom/rules.mk8
-rw-r--r--keyboards/gboards/butterstick/sten.h3
-rw-r--r--keyboards/gboards/ergotaco/rules.mk3
-rw-r--r--keyboards/gboards/georgi/keymaps/colemak-dh/keymap.c1
-rw-r--r--keyboards/gboards/georgi/keymaps/default-flipped/keymap.c1
-rw-r--r--keyboards/gboards/georgi/keymaps/default/keymap.c1
-rw-r--r--keyboards/gboards/georgi/keymaps/dennytom/README.md11
-rw-r--r--keyboards/gboards/georgi/keymaps/dennytom/keymap.c1208
-rw-r--r--keyboards/gboards/georgi/keymaps/dennytom/keymap_def.json153
-rw-r--r--keyboards/gboards/georgi/keymaps/dennytom/rules.mk2
-rw-r--r--keyboards/gboards/georgi/keymaps/minimal/keymap.c1
-rw-r--r--keyboards/gboards/georgi/keymaps/norman/keymap.c1
-rw-r--r--keyboards/gboards/georgi/rules.mk3
-rw-r--r--keyboards/gboards/georgi/sten.h3
-rw-r--r--keyboards/gboards/gergo/keymaps/colemak/rules.mk3
-rw-r--r--keyboards/gboards/gergo/keymaps/default/rules.mk3
-rw-r--r--keyboards/gboards/gergo/keymaps/drashna/keymap.c99
-rw-r--r--keyboards/gboards/gergo/keymaps/drashna/rules.mk2
-rw-r--r--keyboards/gboards/gergo/keymaps/germ/rules.mk3
-rw-r--r--keyboards/gboards/gergo/keymaps/gotham/rules.mk3
-rw-r--r--keyboards/gboards/gergo/keymaps/manna-harbour_miryoku/config.h21
-rw-r--r--keyboards/gboards/gergo/keymaps/manna-harbour_miryoku/keymap.c4
-rw-r--r--keyboards/gboards/gergo/rules.mk2
-rw-r--r--keyboards/gboards/gergoplex/rules.mk2
-rw-r--r--keyboards/geekboards/tester/config.h5
-rw-r--r--keyboards/geekboards/tester/tester.c2
-rw-r--r--keyboards/geistmaschine/macropod/rules.mk2
-rw-r--r--keyboards/geonworks/frogmini/fmh/info.json3
-rw-r--r--keyboards/geonworks/frogmini/fmh/rules.mk3
-rw-r--r--keyboards/geonworks/frogmini/fms/info.json3
-rw-r--r--keyboards/geonworks/frogmini/fms/rules.mk3
-rw-r--r--keyboards/gh60/satan/keymaps/jarred/keymap.c22
-rw-r--r--keyboards/gh60/satan/keymaps/jarred/readme.md1
-rwxr-xr-xkeyboards/gizmo_engineering/gk6/config.h5
-rwxr-xr-xkeyboards/gizmo_engineering/gk6/gk6.c2
-rw-r--r--keyboards/gkeyboard/gpad8_2r/config.h2
-rw-r--r--keyboards/gkeyboard/gpad8_2r/info.json3
-rw-r--r--keyboards/glenpickle/chimera_ergo/rules.mk2
-rw-r--r--keyboards/glenpickle/chimera_ls/rules.mk2
-rw-r--r--keyboards/glenpickle/chimera_ortho/rules.mk2
-rw-r--r--keyboards/glenpickle/chimera_ortho_plus/rules.mk2
-rw-r--r--keyboards/gmmk/gmmk2/p65/ansi/ansi.c4
-rw-r--r--keyboards/gmmk/gmmk2/p65/ansi/info.json2
-rw-r--r--keyboards/gmmk/gmmk2/p65/ansi/keymaps/vnmm/keymap.c57
-rw-r--r--keyboards/gmmk/gmmk2/p65/ansi/keymaps/vnmm/readme.md10
-rw-r--r--keyboards/gmmk/gmmk2/p65/ansi/keymaps/vnmm/rules.mk2
-rw-r--r--keyboards/gmmk/gmmk2/p65/ansi/rules.mk2
-rw-r--r--keyboards/gmmk/gmmk2/p65/config.h9
-rw-r--r--keyboards/gmmk/gmmk2/p65/iso/info.json7
-rw-r--r--keyboards/gmmk/gmmk2/p65/iso/iso.c4
-rw-r--r--keyboards/gmmk/gmmk2/p65/iso/keymaps/default/keymap.c12
-rw-r--r--keyboards/gmmk/gmmk2/p65/iso/keymaps/via/keymap.c22
-rw-r--r--keyboards/gmmk/gmmk2/p65/iso/rules.mk2
-rw-r--r--keyboards/gmmk/gmmk2/p96/ansi/ansi.c4
-rw-r--r--keyboards/gmmk/gmmk2/p96/ansi/info.json9
-rw-r--r--keyboards/gmmk/gmmk2/p96/ansi/rules.mk2
-rw-r--r--keyboards/gmmk/gmmk2/p96/config.h10
-rw-r--r--keyboards/gmmk/gmmk2/p96/iso/info.json9
-rw-r--r--keyboards/gmmk/gmmk2/p96/iso/iso.c4
-rw-r--r--keyboards/gmmk/gmmk2/p96/iso/rules.mk2
-rw-r--r--keyboards/gmmk/numpad/config.h9
-rw-r--r--keyboards/gmmk/numpad/info.json9
-rw-r--r--keyboards/gmmk/numpad/numpad.c19
-rw-r--r--keyboards/gmmk/numpad/rules.mk8
-rw-r--r--keyboards/gmmk/pro/config.h10
-rw-r--r--keyboards/gmmk/pro/rev1/ansi/ansi.c2
-rw-r--r--keyboards/gmmk/pro/rev1/ansi/info.json2
-rw-r--r--keyboards/gmmk/pro/rev1/ansi/keymaps/byungyoonc/config.h72
-rw-r--r--keyboards/gmmk/pro/rev1/ansi/keymaps/byungyoonc/keymap.c132
-rw-r--r--keyboards/gmmk/pro/rev1/ansi/keymaps/byungyoonc/readme.md41
-rw-r--r--keyboards/gmmk/pro/rev1/ansi/keymaps/byungyoonc/rgb_matrix_user.inc1
-rw-r--r--keyboards/gmmk/pro/rev1/ansi/keymaps/byungyoonc/rules.mk2
-rw-r--r--keyboards/gmmk/pro/rev1/ansi/keymaps/cedrikl/keymap.c163
-rw-r--r--keyboards/gmmk/pro/rev1/ansi/keymaps/cedrikl/rgb_matrix_map.h185
-rw-r--r--keyboards/gmmk/pro/rev1/ansi/keymaps/cedrikl/rules.mk2
-rw-r--r--keyboards/gmmk/pro/rev1/ansi/keymaps/gourdo1/config.h146
-rw-r--r--keyboards/gmmk/pro/rev1/ansi/keymaps/gourdo1/keymap.c713
-rw-r--r--keyboards/gmmk/pro/rev1/ansi/keymaps/gourdo1/paddlegame.h48
-rw-r--r--keyboards/gmmk/pro/rev1/ansi/keymaps/gourdo1/readme.md124
-rw-r--r--keyboards/gmmk/pro/rev1/ansi/keymaps/gourdo1/rgb_matrix_map.h410
-rw-r--r--keyboards/gmmk/pro/rev1/ansi/keymaps/gourdo1/rules.mk18
-rw-r--r--keyboards/gmmk/pro/rev1/ansi/keymaps/jonavin/config.h39
-rw-r--r--keyboards/gmmk/pro/rev1/ansi/keymaps/jonavin/keymap.c204
-rw-r--r--keyboards/gmmk/pro/rev1/ansi/keymaps/jonavin/readme.md65
-rw-r--r--keyboards/gmmk/pro/rev1/ansi/keymaps/jonavin/rgb_matrix_map.h144
-rw-r--r--keyboards/gmmk/pro/rev1/ansi/keymaps/jonavin/rules.mk12
-rw-r--r--keyboards/gmmk/pro/rev1/ansi/keymaps/mattgauf/ansi.c241
-rw-r--r--keyboards/gmmk/pro/rev1/ansi/keymaps/mattgauf/config.h63
-rw-r--r--keyboards/gmmk/pro/rev1/ansi/keymaps/mattgauf/helpers.c25
-rw-r--r--keyboards/gmmk/pro/rev1/ansi/keymaps/mattgauf/keymap.c222
-rw-r--r--keyboards/gmmk/pro/rev1/ansi/keymaps/mattgauf/keymap_helpers.h165
-rw-r--r--keyboards/gmmk/pro/rev1/ansi/keymaps/mattgauf/readme.md52
-rw-r--r--keyboards/gmmk/pro/rev1/ansi/keymaps/mattgauf/rules.mk6
-rw-r--r--keyboards/gmmk/pro/rev1/ansi/keymaps/moults31/keymap.c92
-rw-r--r--keyboards/gmmk/pro/rev1/ansi/keymaps/vnmm/keymap.c65
-rw-r--r--keyboards/gmmk/pro/rev1/ansi/keymaps/vnmm/readme.md10
-rw-r--r--keyboards/gmmk/pro/rev1/iso/info.json2
-rw-r--r--keyboards/gmmk/pro/rev1/iso/iso.c2
-rw-r--r--keyboards/gmmk/pro/rev1/iso/keymaps/gourdo1/config.h146
-rw-r--r--keyboards/gmmk/pro/rev1/iso/keymaps/gourdo1/keymap.c726
-rw-r--r--keyboards/gmmk/pro/rev1/iso/keymaps/gourdo1/paddlegame.h48
-rw-r--r--keyboards/gmmk/pro/rev1/iso/keymaps/gourdo1/readme.md124
-rw-r--r--keyboards/gmmk/pro/rev1/iso/keymaps/gourdo1/rgb_matrix_map.h433
-rw-r--r--keyboards/gmmk/pro/rev1/iso/keymaps/gourdo1/rules.mk22
-rw-r--r--keyboards/gmmk/pro/rev1/iso/keymaps/jonavin/config.h39
-rw-r--r--keyboards/gmmk/pro/rev1/iso/keymaps/jonavin/keymap.c194
-rw-r--r--keyboards/gmmk/pro/rev1/iso/keymaps/jonavin/readme.md53
-rw-r--r--keyboards/gmmk/pro/rev1/iso/keymaps/jonavin/rgb_matrix_map.h146
-rw-r--r--keyboards/gmmk/pro/rev1/iso/keymaps/jonavin/rules.mk12
-rw-r--r--keyboards/gmmk/pro/rev1/iso/keymaps/vitoni/config.h20
-rw-r--r--keyboards/gmmk/pro/rev1/iso/keymaps/vitoni/keymap.c149
-rw-r--r--keyboards/gmmk/pro/rev1/iso/keymaps/vitoni/readme.adoc104
-rw-r--r--keyboards/gmmk/pro/rev2/ansi/ansi.c2
-rw-r--r--keyboards/gmmk/pro/rev2/ansi/info.json9
-rw-r--r--keyboards/gmmk/pro/rev2/ansi/rules.mk2
-rw-r--r--keyboards/gmmk/pro/rev2/config.h1
-rw-r--r--keyboards/gmmk/pro/rev2/iso/info.json9
-rw-r--r--keyboards/gmmk/pro/rev2/iso/iso.c2
-rw-r--r--keyboards/gmmk/pro/rev2/iso/rules.mk2
-rw-r--r--keyboards/gopolar/gg86/keymaps/horrortroll/keymap.c89
-rw-r--r--keyboards/gopolar/gg86/keymaps/horrortroll/oled/oled_stuff.h68
-rw-r--r--keyboards/gray_studio/think65/solder/keymaps/brandonschlack/config.h29
-rw-r--r--keyboards/gray_studio/think65/solder/keymaps/brandonschlack/keymap.c80
-rw-r--r--keyboards/gray_studio/think65/solder/keymaps/brandonschlack/readme.md9
-rw-r--r--keyboards/gray_studio/think65/solder/keymaps/brandonschlack/rules.mk2
-rw-r--r--keyboards/hadron/ver2/keymaps/side_numpad/keymap.c33
-rw-r--r--keyboards/hadron/ver3/keymaps/ishtob/keymap.c241
-rw-r--r--keyboards/hadron/ver3/keymaps/ishtob/readme.md2
-rw-r--r--keyboards/hadron/ver3/keymaps/xulkal/config.h1
-rw-r--r--keyboards/hadron/ver3/keymaps/xulkal/keymap.c73
-rw-r--r--keyboards/hadron/ver3/keymaps/xulkal/rules.mk4
-rw-r--r--keyboards/handwired/6key/config.h20
-rw-r--r--keyboards/handwired/6key/info.json3
-rw-r--r--keyboards/handwired/atreus50/keymaps/ajp10304/config.h28
-rw-r--r--keyboards/handwired/atreus50/keymaps/ajp10304/keymap.c222
-rw-r--r--keyboards/handwired/atreus50/keymaps/ajp10304/readme.md130
-rw-r--r--keyboards/handwired/atreus50/keymaps/ajp10304/rules.mk3
-rw-r--r--keyboards/handwired/atreus50/keymaps/default/keymap.c48
-rw-r--r--keyboards/handwired/battleship_gamepad/rules.mk2
-rw-r--r--keyboards/handwired/brain/keymaps/klackygears/config.h40
-rw-r--r--keyboards/handwired/brain/keymaps/klackygears/keymap.c99
-rw-r--r--keyboards/handwired/brain/keymaps/klackygears/rules.mk3
-rw-r--r--keyboards/handwired/co60/rev7/config.h2
-rw-r--r--keyboards/handwired/d48/keymaps/anderson/keymap.c342
-rw-r--r--keyboards/handwired/d48/keymaps/anderson/lightmode.c44
-rw-r--r--keyboards/handwired/d48/keymaps/anderson/lightmode.h12
-rw-r--r--keyboards/handwired/d48/keymaps/anderson/rules.mk2
-rw-r--r--keyboards/handwired/dactyl/rules.mk2
-rw-r--r--keyboards/handwired/dactyl_manuform/4x5/keymaps/ibnuda/config.h27
-rw-r--r--keyboards/handwired/dactyl_manuform/4x5/keymaps/ibnuda/keymap.c60
-rw-r--r--keyboards/handwired/dactyl_manuform/4x5/keymaps/manna-harbour_miryoku/config.h24
-rw-r--r--keyboards/handwired/dactyl_manuform/4x5/keymaps/manna-harbour_miryoku/keymap.c4
-rw-r--r--keyboards/handwired/dactyl_manuform/4x6/keymaps/manna-harbour_miryoku/config.h24
-rw-r--r--keyboards/handwired/dactyl_manuform/4x6/keymaps/manna-harbour_miryoku/keymap.c4
-rw-r--r--keyboards/handwired/dactyl_manuform/4x6/keymaps/scheikled/README.md8
-rw-r--r--keyboards/handwired/dactyl_manuform/4x6/keymaps/scheikled/config.h60
-rw-r--r--keyboards/handwired/dactyl_manuform/4x6/keymaps/scheikled/keymap.c63
-rw-r--r--keyboards/handwired/dactyl_manuform/4x6/keymaps/scheikled/rules.mk11
-rw-r--r--keyboards/handwired/dactyl_manuform/4x6/keymaps/scheiklp/README.md8
-rw-r--r--keyboards/handwired/dactyl_manuform/4x6/keymaps/scheiklp/config.h47
-rw-r--r--keyboards/handwired/dactyl_manuform/4x6/keymaps/scheiklp/keymap.c64
-rw-r--r--keyboards/handwired/dactyl_manuform/4x6/keymaps/scheiklp/rules.mk9
-rw-r--r--keyboards/handwired/dactyl_manuform/4x6_5/keymaps/manna-harbour_miryoku/config.h24
-rw-r--r--keyboards/handwired/dactyl_manuform/4x6_5/keymaps/manna-harbour_miryoku/keymap.c5
-rw-r--r--keyboards/handwired/dactyl_manuform/5x6/keymaps/333fred/config.h28
-rw-r--r--keyboards/handwired/dactyl_manuform/5x6/keymaps/333fred/keymap.c76
-rw-r--r--keyboards/handwired/dactyl_manuform/5x6/keymaps/333fred/rules.mk3
-rw-r--r--keyboards/handwired/dactyl_manuform/5x6/keymaps/manna-harbour_miryoku/config.h25
-rw-r--r--keyboards/handwired/dactyl_manuform/5x6/keymaps/manna-harbour_miryoku/keymap.c4
-rw-r--r--keyboards/handwired/dactyl_manuform/5x6/keymaps/rishka/config.h47
-rw-r--r--keyboards/handwired/dactyl_manuform/5x6/keymaps/rishka/keymap.c61
-rw-r--r--keyboards/handwired/dactyl_manuform/5x6/keymaps/rishka/rules.mk3
-rw-r--r--keyboards/handwired/dactyl_manuform/5x6/keymaps/scheiklp/README.md8
-rw-r--r--keyboards/handwired/dactyl_manuform/5x6/keymaps/scheiklp/config.h47
-rw-r--r--keyboards/handwired/dactyl_manuform/5x6/keymaps/scheiklp/keymap.c70
-rw-r--r--keyboards/handwired/dactyl_manuform/5x6/keymaps/scheiklp/rules.mk10
-rw-r--r--keyboards/handwired/dactyl_manuform/5x6/keymaps/uqs/config.h9
-rw-r--r--keyboards/handwired/dactyl_manuform/5x6/keymaps/uqs/keymap.c170
-rw-r--r--keyboards/handwired/dactyl_manuform/5x6/keymaps/uqs/rules.mk1
-rw-r--r--keyboards/handwired/dactyl_manuform/5x6_5/keymaps/333fred/config.h39
-rw-r--r--keyboards/handwired/dactyl_manuform/5x6_5/keymaps/333fred/keymap.c581
-rw-r--r--keyboards/handwired/dactyl_manuform/5x6_5/keymaps/333fred/rules.mk4
-rw-r--r--keyboards/handwired/dactyl_manuform/dmote/62key/config.h5
-rw-r--r--keyboards/handwired/dactyl_manuform/dmote/62key/info.json116
-rw-r--r--keyboards/handwired/dactyl_manuform/dmote/62key/keymaps/default/config.h3
-rw-r--r--keyboards/handwired/dactyl_manuform/dmote/62key/keymaps/default/keymap.c141
-rw-r--r--keyboards/handwired/dactyl_manuform/dmote/62key/rules.mk5
-rw-r--r--keyboards/handwired/dactyl_manuform/dmote/readme.md16
-rw-r--r--keyboards/handwired/dactyl_minidox/info.json8
-rw-r--r--keyboards/handwired/dactyl_minidox/rules.mk13
-rw-r--r--keyboards/handwired/dmote/config.h23
-rw-r--r--keyboards/handwired/dmote/info.json124
-rw-r--r--keyboards/handwired/dmote/keymaps/default/keymap.c134
-rw-r--r--keyboards/handwired/dmote/readme.md29
-rw-r--r--keyboards/handwired/dmote/rules.mk1
-rw-r--r--keyboards/handwired/dqz11n1g/rules.mk2
-rw-r--r--keyboards/handwired/dygma/raise/rules.mk2
-rw-r--r--keyboards/handwired/frenchdev/rules.mk4
-rw-r--r--keyboards/handwired/lagrange/rules.mk3
-rw-r--r--keyboards/handwired/lovelive9/keymaps/default/keymap.c20
-rw-r--r--keyboards/handwired/minorca/keymaps/ridingqwerty/config.h7
-rw-r--r--keyboards/handwired/minorca/keymaps/ridingqwerty/keymap.c123
-rw-r--r--keyboards/handwired/minorca/keymaps/ridingqwerty/readme.md1
-rw-r--r--keyboards/handwired/minorca/keymaps/ridingqwerty/rules.mk6
-rw-r--r--keyboards/handwired/onekey/kb2040/rules.mk2
-rw-r--r--keyboards/handwired/onekey/keymaps/adc/rules.mk4
-rw-r--r--keyboards/handwired/onekey/keymaps/i2c_scanner/rules.mk2
-rw-r--r--keyboards/handwired/onekey/nucleo_f446re/rules.mk1
-rw-r--r--keyboards/handwired/orbweaver/config.h3
-rw-r--r--keyboards/handwired/orbweaver/orbweaver.c2
-rw-r--r--keyboards/handwired/ortho5x13/keymaps/default/keymap.c49
-rw-r--r--keyboards/handwired/phantagom/baragon/info.json1
-rw-r--r--keyboards/handwired/phantagom/baragon/rules.mk3
-rw-r--r--keyboards/handwired/phantagom/varan/info.json1
-rw-r--r--keyboards/handwired/phantagom/varan/rules.mk3
-rw-r--r--keyboards/handwired/promethium/rgbsps.c2
-rw-r--r--keyboards/handwired/promethium/rules.mk3
-rw-r--r--keyboards/handwired/pterodactyl/rules.mk2
-rw-r--r--keyboards/handwired/rabijl/rotary_numpad/info.json66
-rw-r--r--keyboards/handwired/rabijl/rotary_numpad/keymaps/default/keymap.c62
-rw-r--r--keyboards/handwired/rabijl/rotary_numpad/keymaps/default/rules.mk2
-rw-r--r--keyboards/handwired/rabijl/rotary_numpad/readme.md67
-rw-r--r--keyboards/handwired/rabijl/rotary_numpad/rules.mk1
-rw-r--r--keyboards/handwired/reclined/keymaps/pdl/config.h23
-rw-r--r--keyboards/handwired/reclined/keymaps/pdl/keymap.c69
-rw-r--r--keyboards/handwired/scottokeebs/scotto34/keymaps/scotto/config.h23
-rw-r--r--keyboards/handwired/scottokeebs/scotto34/keymaps/scotto/keymap.c196
-rw-r--r--keyboards/handwired/scottokeebs/scotto34/keymaps/scotto/rules.mk1
-rw-r--r--keyboards/handwired/scottokeebs/scotto36/keymaps/scotto/config.h23
-rw-r--r--keyboards/handwired/scottokeebs/scotto36/keymaps/scotto/keymap.c281
-rw-r--r--keyboards/handwired/scottokeebs/scotto36/keymaps/scotto/rules.mk4
-rw-r--r--keyboards/handwired/scottokeebs/scotto40/keymaps/scotto/config.h23
-rw-r--r--keyboards/handwired/scottokeebs/scotto40/keymaps/scotto/keymap.c114
-rw-r--r--keyboards/handwired/scottokeebs/scotto40/keymaps/scotto/rules.mk1
-rw-r--r--keyboards/handwired/scottokeebs/scottoalp/keymaps/scotto/config.h23
-rw-r--r--keyboards/handwired/scottokeebs/scottoalp/keymaps/scotto/keymap.c174
-rw-r--r--keyboards/handwired/scottokeebs/scottoalp/keymaps/scotto/rules.mk1
-rw-r--r--keyboards/handwired/scottokeebs/scottocmd/keymaps/scotto/config.h23
-rw-r--r--keyboards/handwired/scottokeebs/scottocmd/keymaps/scotto/keymap.c511
-rw-r--r--keyboards/handwired/scottokeebs/scottocmd/keymaps/scotto/rules.mk2
-rw-r--r--keyboards/handwired/scottokeebs/scottoergo/keymaps/scotto/config.h23
-rw-r--r--keyboards/handwired/scottokeebs/scottoergo/keymaps/scotto/keymap.c174
-rw-r--r--keyboards/handwired/scottokeebs/scottoergo/keymaps/scotto/rules.mk1
-rw-r--r--keyboards/handwired/scottokeebs/scottogame/keymaps/scotto/config.h23
-rw-r--r--keyboards/handwired/scottokeebs/scottogame/keymaps/scotto/keymap.c289
-rw-r--r--keyboards/handwired/scottokeebs/scottogame/keymaps/scotto/rules.mk2
-rw-r--r--keyboards/handwired/scottokeebs/scottoinvader/keymaps/scotto/config.h23
-rw-r--r--keyboards/handwired/scottokeebs/scottoinvader/keymaps/scotto/keymap.c174
-rw-r--r--keyboards/handwired/scottokeebs/scottoinvader/keymaps/scotto/rules.mk1
-rw-r--r--keyboards/handwired/scottokeebs/scottomouse/keymaps/scotto/config.h26
-rw-r--r--keyboards/handwired/scottokeebs/scottomouse/keymaps/scotto/keymap.c33
-rw-r--r--keyboards/handwired/scottokeebs/scottomouse/keymaps/scotto/rules.mk1
-rw-r--r--keyboards/handwired/scottokeebs/scottoslant/keymaps/scotto/config.h23
-rw-r--r--keyboards/handwired/scottokeebs/scottoslant/keymaps/scotto/keymap.c69
-rw-r--r--keyboards/handwired/scottokeebs/scottoslant/keymaps/scotto/rules.mk1
-rw-r--r--keyboards/handwired/scottokeebs/scottosplit/keymaps/scotto/config.h23
-rw-r--r--keyboards/handwired/scottokeebs/scottosplit/keymaps/scotto/keymap.c174
-rw-r--r--keyboards/handwired/scottokeebs/scottosplit/keymaps/scotto/rules.mk1
-rw-r--r--keyboards/handwired/split_cloud/keymaps/default/keymap.c1
-rw-r--r--keyboards/handwired/steamvan/rev1/config.h2
-rw-r--r--keyboards/handwired/swiftrax/beegboy/config.h21
-rw-r--r--keyboards/handwired/swiftrax/cowfish/config.h21
-rw-r--r--keyboards/handwired/swiftrax/glacier/config.h21
-rw-r--r--keyboards/handwired/swiftrax/joypad/config.h21
-rw-r--r--keyboards/handwired/swiftrax/koalafications/config.h21
-rw-r--r--keyboards/handwired/swiftrax/nodu/config.h21
-rw-r--r--keyboards/handwired/swiftrax/pandamic/config.h21
-rw-r--r--keyboards/handwired/swiftrax/the_galleon/config.h21
-rw-r--r--keyboards/handwired/swiftrax/the_galleon/info.json3
-rw-r--r--keyboards/handwired/tractyl_manuform/4x6_right/keymaps/drashna/config.h35
-rw-r--r--keyboards/handwired/tractyl_manuform/4x6_right/keymaps/drashna/keymap.c117
-rw-r--r--keyboards/handwired/tractyl_manuform/4x6_right/keymaps/drashna/rules.mk8
-rw-r--r--keyboards/handwired/tractyl_manuform/5x6_right/f303/info.json3
-rw-r--r--keyboards/handwired/tractyl_manuform/5x6_right/f303/rules.mk1
-rw-r--r--keyboards/handwired/tractyl_manuform/5x6_right/f411/info.json3
-rw-r--r--keyboards/handwired/tractyl_manuform/5x6_right/f411/rules.mk1
-rw-r--r--keyboards/handwired/tractyl_manuform/5x6_right/keymaps/drashna/config.h36
-rw-r--r--keyboards/handwired/tractyl_manuform/5x6_right/keymaps/drashna/keymap.c161
-rw-r--r--keyboards/handwired/tractyl_manuform/5x6_right/keymaps/drashna/rgblight_breathe_table.h117
-rw-r--r--keyboards/handwired/tractyl_manuform/5x6_right/keymaps/drashna/rules.mk54
-rw-r--r--keyboards/handwired/traveller/keymaps/default/keymap.c1
-rw-r--r--keyboards/handwired/tsubasa/config.h3
-rw-r--r--keyboards/handwired/tsubasa/info.json6
-rw-r--r--keyboards/handwired/wabi/keymaps/rossman360/keymap.c68
-rw-r--r--keyboards/hazel/bad_wings/keymaps/miketronic/config.h16
-rw-r--r--keyboards/hazel/bad_wings/keymaps/miketronic/keymap.c258
-rw-r--r--keyboards/hazel/bad_wings/keymaps/miketronic/rules.mk31
-rw-r--r--keyboards/hazel/bad_wings/rules.mk2
-rw-r--r--keyboards/helix/pico/keymaps/default/keymap.c30
-rw-r--r--keyboards/helix/pico/keymaps/mtei/config.h18
-rw-r--r--keyboards/helix/pico/keymaps/mtei/keymap.c368
-rw-r--r--keyboards/helix/pico/keymaps/mtei/rules.mk18
-rw-r--r--keyboards/helix/rev2/config.h3
-rw-r--r--keyboards/helix/rev2/info.json8
-rw-r--r--keyboards/helix/rev2/keymaps/default/keymap.c30
-rw-r--r--keyboards/helix/rev2/keymaps/edvorakjp/config.h22
-rw-r--r--keyboards/helix/rev2/keymaps/edvorakjp/keymap.c75
-rw-r--r--keyboards/helix/rev2/keymaps/edvorakjp/oled.c65
-rw-r--r--keyboards/helix/rev2/keymaps/edvorakjp/oled.h12
-rw-r--r--keyboards/helix/rev2/keymaps/edvorakjp/readme.md21
-rw-r--r--keyboards/helix/rev2/keymaps/edvorakjp/rules.mk33
-rw-r--r--keyboards/helix/rev2/keymaps/five_rows/README.md84
-rw-r--r--keyboards/helix/rev2/keymaps/five_rows/README_jp.md121
-rw-r--r--keyboards/helix/rev2/keymaps/five_rows/config.h16
-rw-r--r--keyboards/helix/rev2/keymaps/five_rows/keymap.c474
-rw-r--r--keyboards/helix/rev2/keymaps/five_rows/rules.mk24
-rw-r--r--keyboards/helix/rev2/keymaps/froggy/keymap.c30
-rw-r--r--keyboards/helix/rev2/keymaps/xulkal/config.h38
-rw-r--r--keyboards/helix/rev2/keymaps/xulkal/keymap.c69
-rw-r--r--keyboards/helix/rev2/keymaps/xulkal/rules.mk14
-rw-r--r--keyboards/helix/rev2/keymaps/yshrsmz/keymap.c30
-rw-r--r--keyboards/helix/rev3_4rows/config.h3
-rw-r--r--keyboards/helix/rev3_4rows/info.json5
-rw-r--r--keyboards/helix/rev3_5rows/config.h3
-rw-r--r--keyboards/helix/rev3_5rows/info.json3
-rw-r--r--keyboards/helix/rev3_5rows/keymaps/five_rows/config.h18
-rw-r--r--keyboards/helix/rev3_5rows/keymaps/five_rows/keymap.c474
-rw-r--r--keyboards/helix/rev3_5rows/keymaps/five_rows/rules.mk11
-rw-r--r--keyboards/hfdkb/ac001/config.h1
-rw-r--r--keyboards/hfdkb/ac001/info.json7
-rw-r--r--keyboards/hfdkb/ac001/rules.mk2
-rw-r--r--keyboards/hhkb/ansi/keymaps/brett/config.h14
-rw-r--r--keyboards/hhkb/ansi/keymaps/brett/keymap.c119
-rw-r--r--keyboards/hhkb/ansi/keymaps/brett/readme.md13
-rw-r--r--keyboards/hhkb/ansi/keymaps/brett/rules.mk4
-rw-r--r--keyboards/hhkb/ansi/keymaps/tominabox1/.gitignore3
-rw-r--r--keyboards/hhkb/ansi/keymaps/tominabox1/keymap.c12
-rw-r--r--keyboards/hhkb/jp/keymaps/dhertz/config.h1
-rw-r--r--keyboards/hhkb/jp/keymaps/dhertz/keymap.c84
-rw-r--r--keyboards/hhkb/jp/keymaps/dhertz/keymap.h7
-rw-r--r--keyboards/hhkb/jp/keymaps/dhertz/rules.mk2
-rw-r--r--keyboards/hidtech/bastyl/keymaps/nstickney/keymap.c70
-rw-r--r--keyboards/hillside/46/keymaps/manna-harbour_miryoku/config.h38
-rw-r--r--keyboards/hillside/46/keymaps/manna-harbour_miryoku/keymap.c4
-rw-r--r--keyboards/hillside/48/0_1/info.json1
-rw-r--r--keyboards/hillside/48/keymaps/manna-harbour_miryoku/config.h38
-rw-r--r--keyboards/hillside/48/keymaps/manna-harbour_miryoku/keymap.c4
-rw-r--r--keyboards/hillside/52/keymaps/manna-harbour_miryoku/config.h38
-rw-r--r--keyboards/hillside/52/keymaps/manna-harbour_miryoku/keymap.c4
-rw-r--r--keyboards/hineybush/hbcp/hbcp.c14
-rw-r--r--keyboards/hineybush/hbcp/keymaps/hiney/keymap.c12
-rw-r--r--keyboards/horrortroll/handwired_k552/config.h4
-rw-r--r--keyboards/horrortroll/handwired_k552/info.json7
-rw-r--r--keyboards/horrortroll/handwired_k552/rules.mk4
-rw-r--r--keyboards/horrortroll/lemon40/info.json3
-rw-r--r--keyboards/hotdox/keymaps/imchipwood/keymap.c151
-rw-r--r--keyboards/hotdox/keymaps/ninjonas/README.md106
-rw-r--r--keyboards/hotdox/keymaps/ninjonas/keymap.c348
-rw-r--r--keyboards/hotdox/keymaps/ninjonas/rules.mk1
-rw-r--r--keyboards/hotdox/rules.mk2
-rw-r--r--keyboards/hotdox76v2/config.h5
-rw-r--r--keyboards/hotdox76v2/info.json11
-rw-r--r--keyboards/hs60/v1/config.h5
-rw-r--r--keyboards/hs60/v1/v1.c4
-rw-r--r--keyboards/hs60/v2/ansi/config.h4
-rw-r--r--keyboards/hs60/v2/ansi/keymaps/stanrc85/config.h38
-rw-r--r--keyboards/hs60/v2/ansi/keymaps/stanrc85/keymap.c59
-rw-r--r--keyboards/hs60/v2/ansi/keymaps/stanrc85/readme.md48
-rw-r--r--keyboards/hs60/v2/ansi/rules.mk4
-rw-r--r--keyboards/hs60/v2/hhkb/config.h4
-rw-r--r--keyboards/hs60/v2/hhkb/rules.mk4
-rw-r--r--keyboards/hs60/v2/iso/config.h4
-rw-r--r--keyboards/hs60/v2/iso/rules.mk4
-rw-r--r--keyboards/hs60/v2/v2.c79
-rw-r--r--keyboards/ibm/model_m/mschwingen/mschwingen.c22
-rw-r--r--keyboards/ibm/model_m/mschwingen/rules.mk4
-rw-r--r--keyboards/ibm/model_m/yugo_m/config.h4
-rw-r--r--keyboards/ibm/model_m/yugo_m/info.json5
-rw-r--r--keyboards/idobao/id80/v2/ansi/keymaps/rverst/keymap.c80
-rw-r--r--keyboards/idobao/id80/v2/ansi/keymaps/rverst/readme.md23
-rw-r--r--keyboards/idobao/id80/v2/ansi/keymaps/rverst/rverst.json499
-rw-r--r--keyboards/idyllic/tinny50_rgb/config.h3
-rw-r--r--keyboards/idyllic/tinny50_rgb/info.json3
-rw-r--r--keyboards/ilumkb/simpler61/config.h3
-rw-r--r--keyboards/ilumkb/simpler61/simpler61.c2
-rw-r--r--keyboards/ilumkb/simpler64/config.h3
-rw-r--r--keyboards/ilumkb/simpler64/simpler64.c2
-rw-r--r--keyboards/inett_studio/sqx/hotswap/config.h5
-rw-r--r--keyboards/inett_studio/sqx/hotswap/hotswap.c2
-rw-r--r--keyboards/inett_studio/sqx/universal/config.h5
-rw-r--r--keyboards/inett_studio/sqx/universal/universal.c2
-rw-r--r--keyboards/ingrained/rules.mk2
-rw-r--r--keyboards/inland/kb83/config.h11
-rw-r--r--keyboards/inland/kb83/info.json12
-rw-r--r--keyboards/inland/kb83/kb83.c4
-rw-r--r--keyboards/inland/kb83/rules.mk2
-rw-r--r--keyboards/inland/mk47/config.h5
-rw-r--r--keyboards/inland/mk47/info.json11
-rw-r--r--keyboards/inland/mk47/mk47.c4
-rw-r--r--keyboards/inland/mk47/rules.mk3
-rw-r--r--keyboards/inland/v83p/config.h10
-rw-r--r--keyboards/inland/v83p/info.json12
-rw-r--r--keyboards/inland/v83p/rules.mk3
-rw-r--r--keyboards/inland/v83p/v83p.c2
-rw-r--r--keyboards/input_club/ergodox_infinity/config.h3
-rw-r--r--keyboards/input_club/ergodox_infinity/ergodox_infinity.c7
-rw-r--r--keyboards/input_club/ergodox_infinity/keymaps/dudeofawesome/README.md30
-rw-r--r--keyboards/input_club/ergodox_infinity/keymaps/dudeofawesome/config.h9
-rw-r--r--keyboards/input_club/ergodox_infinity/keymaps/dudeofawesome/keymap.c551
-rw-r--r--keyboards/input_club/ergodox_infinity/keymaps/dudeofawesome/layers.h14
-rw-r--r--keyboards/input_club/ergodox_infinity/keymaps/halfkeyboard/keymap.c3
-rw-r--r--keyboards/input_club/ergodox_infinity/keymaps/narze/config.h13
-rw-r--r--keyboards/input_club/ergodox_infinity/keymaps/narze/default.png.md1
-rw-r--r--keyboards/input_club/ergodox_infinity/keymaps/narze/default_highres.png.md1
-rw-r--r--keyboards/input_club/ergodox_infinity/keymaps/narze/keymap.c697
-rw-r--r--keyboards/input_club/ergodox_infinity/keymaps/narze/readme.md31
-rw-r--r--keyboards/input_club/ergodox_infinity/keymaps/narze/rules.mk23
-rw-r--r--keyboards/input_club/ergodox_infinity/keymaps/narze/visualizer.c94
-rw-r--r--keyboards/input_club/ergodox_infinity/keymaps/not-quite-neo/keymap.c267
-rw-r--r--keyboards/input_club/ergodox_infinity/keymaps/not-quite-neo/readme.md5
-rw-r--r--keyboards/input_club/ergodox_infinity/keymaps/not-quite-neo/rules.mk3
-rw-r--r--keyboards/input_club/infinity60/halconf.h27
-rw-r--r--keyboards/input_club/infinity60/keymaps/default/keymap.c3
-rw-r--r--keyboards/input_club/infinity60/keymaps/jpetermans/config.h6
-rw-r--r--keyboards/input_club/infinity60/keymaps/jpetermans/keymap.c264
-rw-r--r--keyboards/input_club/infinity60/keymaps/jpetermans/readme.md87
-rw-r--r--keyboards/input_club/infinity60/led.c58
-rw-r--r--keyboards/input_club/infinity60/led/config.h14
-rw-r--r--keyboards/input_club/infinity60/led/halconf.h8
-rw-r--r--keyboards/input_club/infinity60/led/info.json94
-rw-r--r--keyboards/input_club/infinity60/led/led.c83
-rw-r--r--keyboards/input_club/infinity60/led/rules.mk3
-rw-r--r--keyboards/input_club/infinity60/led_controller.c488
-rw-r--r--keyboards/input_club/infinity60/led_controller.h121
-rw-r--r--keyboards/input_club/k_type/config.h10
-rw-r--r--keyboards/input_club/k_type/i2c_master.h1
-rw-r--r--keyboards/input_club/k_type/is31fl3733-dual.c175
-rw-r--r--keyboards/input_club/k_type/is31fl3733-dual.h73
-rw-r--r--keyboards/input_club/k_type/k_type-rgbdriver.c37
-rw-r--r--keyboards/input_club/k_type/k_type.c17
-rw-r--r--keyboards/input_club/k_type/post_rules.mk5
-rw-r--r--keyboards/input_club/k_type/rules.mk5
-rw-r--r--keyboards/input_club/whitefox/board_is31fl3731c.h106
-rw-r--r--keyboards/input_club/whitefox/config.h3
-rw-r--r--keyboards/input_club/whitefox/keymaps/billypython/config.h3
-rw-r--r--keyboards/input_club/whitefox/keymaps/billypython/keymap.c46
-rw-r--r--keyboards/input_club/whitefox/keymaps/billypython/rules.mk6
-rw-r--r--keyboards/input_club/whitefox/keymaps/dhertz/keymap.c58
-rw-r--r--keyboards/input_club/whitefox/keymaps/dudeofawesome/keymap.c146
-rw-r--r--keyboards/input_club/whitefox/keymaps/dudeofawesome/readme.md20
-rw-r--r--keyboards/input_club/whitefox/keymaps/konstantin/config.h4
-rw-r--r--keyboards/input_club/whitefox/keymaps/konstantin/keymap.c67
-rw-r--r--keyboards/input_club/whitefox/keymaps/konstantin/rules.mk18
-rw-r--r--keyboards/input_club/whitefox/whitefox.c5
-rw-r--r--keyboards/jacky_studio/bear_65/keymaps/stanrc85/keymap.c49
-rw-r--r--keyboards/jacky_studio/bear_65/keymaps/stanrc85/rules.mk1
-rw-r--r--keyboards/jacky_studio/piggy60/rev2/info.json1
-rw-r--r--keyboards/jd45/keymaps/talljoe/config.h32
-rw-r--r--keyboards/jd45/keymaps/talljoe/keymap.c1
-rw-r--r--keyboards/jian/keymaps/advanced/config.h2
-rw-r--r--keyboards/jian/keymaps/advanced/keymap.c120
-rw-r--r--keyboards/jian/rev1/config.h1
-rw-r--r--keyboards/jian/rev1/info.json23
-rw-r--r--keyboards/jian/rev1/rules.mk1
-rw-r--r--keyboards/jolofsor/denial75/info.json6
-rw-r--r--keyboards/jolofsor/denial75/keymaps/default/keymap.c6
-rw-r--r--keyboards/jolofsor/denial75/keymaps/via/keymap.c24
-rw-r--r--keyboards/jones/v1/config.h5
-rw-r--r--keyboards/jones/v1/info.json6
-rw-r--r--keyboards/jones/v1/rules.mk3
-rw-r--r--keyboards/jorne/keymaps/manna-harbour_miryoku/config.h21
-rw-r--r--keyboards/jorne/keymaps/manna-harbour_miryoku/keymap.c4
-rw-r--r--keyboards/jorne/rev1/config.h2
-rw-r--r--keyboards/jorne/rev1/info.json8
-rw-r--r--keyboards/jukaie/jk01/config.h2
-rw-r--r--keyboards/jukaie/jk01/info.json10
-rw-r--r--keyboards/jukaie/jk01/rules.mk2
-rw-r--r--keyboards/kabedon/kabedon980/config.h20
-rw-r--r--keyboards/kabedon/kabedon980/info.json3
-rw-r--r--keyboards/kagizaraya/chidori/rules.mk2
-rw-r--r--keyboards/kapl/rev1/config.h4
-rw-r--r--keyboards/kapl/rev1/info.json9
-rw-r--r--keyboards/kbdcraft/adam64/adam64.c2
-rw-r--r--keyboards/kbdcraft/adam64/config.h3
-rw-r--r--keyboards/kbdfans/bella/rgb/config.h3
-rw-r--r--keyboards/kbdfans/bella/rgb/rgb.c2
-rw-r--r--keyboards/kbdfans/bella/rgb_iso/config.h3
-rw-r--r--keyboards/kbdfans/bella/rgb_iso/rgb_iso.c2
-rw-r--r--keyboards/kbdfans/boop65/rgb/config.h3
-rw-r--r--keyboards/kbdfans/boop65/rgb/rgb.c2
-rw-r--r--keyboards/kbdfans/kbd67/hotswap/keymaps/brandonschlack/keymap.c102
-rw-r--r--keyboards/kbdfans/kbd67/hotswap/keymaps/brandonschlack/rules.mk2
-rw-r--r--keyboards/kbdfans/kbd67/mkiirgb/keymaps/jonavin/config.h39
-rw-r--r--keyboards/kbdfans/kbd67/mkiirgb/keymaps/jonavin/keymap.c125
-rw-r--r--keyboards/kbdfans/kbd67/mkiirgb/keymaps/jonavin/readme.md41
-rw-r--r--keyboards/kbdfans/kbd67/mkiirgb/keymaps/jonavin/rgb_matrix_map.h109
-rw-r--r--keyboards/kbdfans/kbd67/mkiirgb/keymaps/jonavin/rules.mk12
-rw-r--r--keyboards/kbdfans/kbd67/mkiirgb/v1/config.h5
-rw-r--r--keyboards/kbdfans/kbd67/mkiirgb/v1/v1.c2
-rw-r--r--keyboards/kbdfans/kbd67/mkiirgb/v2/config.h5
-rw-r--r--keyboards/kbdfans/kbd67/mkiirgb/v2/v2.c2
-rwxr-xr-xkeyboards/kbdfans/kbd67/mkiirgb/v3/config.h3
-rw-r--r--keyboards/kbdfans/kbd67/mkiirgb/v3/info.json3
-rwxr-xr-xkeyboards/kbdfans/kbd67/mkiirgb/v3/v3.c10
-rw-r--r--keyboards/kbdfans/kbd67/rev1/info.json1
-rw-r--r--keyboards/kbdfans/kbd67/rev2/keymaps/brandonschlack/keymap.c102
-rw-r--r--keyboards/kbdfans/kbd67/rev2/keymaps/brandonschlack/rules.mk3
-rw-r--r--keyboards/kbdfans/kbd6x/keymaps/konstantin/config.h3
-rw-r--r--keyboards/kbdfans/kbd6x/keymaps/konstantin/keymap.c181
-rw-r--r--keyboards/kbdfans/kbd6x/keymaps/konstantin/rules.mk19
-rw-r--r--keyboards/kbdfans/kbd6x/keymaps/wanleg/keymap.c82
-rw-r--r--keyboards/kbdfans/kbd6x/keymaps/wanleg/rules.mk3
-rw-r--r--keyboards/kbdfans/kbd75/keymaps/noroadsleft/config.h22
-rw-r--r--keyboards/kbdfans/kbd75/keymaps/noroadsleft/keymap.c94
-rw-r--r--keyboards/kbdfans/kbd75/keymaps/noroadsleft/rules.mk8
-rw-r--r--keyboards/kbdfans/kbdmini/config.h3
-rw-r--r--keyboards/kbdfans/kbdmini/kbdmini.c2
-rwxr-xr-xkeyboards/kbdfans/maja/config.h5
-rwxr-xr-xkeyboards/kbdfans/maja/maja.c2
-rw-r--r--keyboards/kbdfans/niu_mini/keymaps/xtonhasvim/config.h40
-rw-r--r--keyboards/kbdfans/niu_mini/keymaps/xtonhasvim/keymap.c264
-rw-r--r--keyboards/kbdfans/niu_mini/keymaps/xtonhasvim/readme.md9
-rw-r--r--keyboards/kbdfans/niu_mini/keymaps/xtonhasvim/rules.mk5
-rw-r--r--keyboards/kbdfans/niu_mini/keymaps/yttyx/keymap.c1
-rw-r--r--keyboards/kc60/info.json645
-rw-r--r--keyboards/kc60/keymaps/dbroqua/keymap.c139
-rw-r--r--keyboards/kc60/keymaps/dbroqua_hhkb/keymap.c89
-rw-r--r--keyboards/kc60/keymaps/default/keymap.c2
-rw-r--r--keyboards/kc60/keymaps/noroadsleft/config.h36
-rw-r--r--keyboards/kc60/keymaps/noroadsleft/keymap.c117
-rw-r--r--keyboards/kc60/keymaps/noroadsleft/readme.md135
-rw-r--r--keyboards/kc60/keymaps/noroadsleft/rules.mk6
-rw-r--r--keyboards/kc60/keymaps/sgoodwin/keymap.c50
-rw-r--r--keyboards/kc60/keymaps/stanleylai/config.h3
-rw-r--r--keyboards/kc60/keymaps/stanleylai/keymap.c72
-rw-r--r--keyboards/kc60/keymaps/via/keymap.c2
-rw-r--r--keyboards/kc60/keymaps/wigguno/keymap.c84
-rw-r--r--keyboards/kc60/matrix_diagram.md33
-rw-r--r--keyboards/keebio/bdn9/keymaps/bcat/keymap.c54
-rw-r--r--keyboards/keebio/bdn9/keymaps/bcat/readme.md7
-rw-r--r--keyboards/keebio/bdn9/keymaps/brandonschlack/config.h34
-rw-r--r--keyboards/keebio/bdn9/keymaps/brandonschlack/keymap.c394
-rw-r--r--keyboards/keebio/bdn9/keymaps/brandonschlack/readme.md107
-rw-r--r--keyboards/keebio/bdn9/keymaps/brandonschlack/rules.mk11
-rw-r--r--keyboards/keebio/bdn9/keymaps/rishka/config.h5
-rw-r--r--keyboards/keebio/bdn9/keymaps/rishka/keymap.c67
-rw-r--r--keyboards/keebio/bdn9/keymaps/rishka/rules.mk1
-rw-r--r--keyboards/keebio/cepstrum/rev1/info.json1
-rw-r--r--keyboards/keebio/cepstrum/rev1/rules.mk1
-rw-r--r--keyboards/keebio/iris/keymaps/333fred/config.h33
-rw-r--r--keyboards/keebio/iris/keymaps/333fred/keymap.c76
-rw-r--r--keyboards/keebio/iris/keymaps/333fred/rules.mk3
-rw-r--r--keyboards/keebio/iris/keymaps/csc027/config.h39
-rw-r--r--keyboards/keebio/iris/keymaps/csc027/keymap.c87
-rw-r--r--keyboards/keebio/iris/keymaps/csc027/rules.mk6
-rw-r--r--keyboards/keebio/iris/keymaps/drashna/config.h75
-rw-r--r--keyboards/keebio/iris/keymaps/drashna/keymap.c112
-rw-r--r--keyboards/keebio/iris/keymaps/drashna/rules.mk16
-rw-r--r--keyboards/keebio/iris/keymaps/edvorakjp/config.h18
-rw-r--r--keyboards/keebio/iris/keymaps/edvorakjp/keymap.c72
-rw-r--r--keyboards/keebio/iris/keymaps/edvorakjp/readme.md21
-rw-r--r--keyboards/keebio/iris/keymaps/edvorakjp/rules.mk18
-rw-r--r--keyboards/keebio/iris/keymaps/gary/README.md18
-rw-r--r--keyboards/keebio/iris/keymaps/gary/config.h7
-rw-r--r--keyboards/keebio/iris/keymaps/gary/keymap.c47
-rw-r--r--keyboards/keebio/iris/keymaps/gary/rules.mk2
-rw-r--r--keyboards/keebio/iris/keymaps/manna-harbour_miryoku/config.h22
-rw-r--r--keyboards/keebio/iris/keymaps/manna-harbour_miryoku/keymap.c4
-rw-r--r--keyboards/keebio/iris/keymaps/mattly/config.h38
-rw-r--r--keyboards/keebio/iris/keymaps/mattly/keymap.c70
-rw-r--r--keyboards/keebio/iris/keymaps/mattly/readme.md1
-rw-r--r--keyboards/keebio/iris/keymaps/mnil/config.h38
-rw-r--r--keyboards/keebio/iris/keymaps/mnil/keymap.c94
-rw-r--r--keyboards/keebio/iris/keymaps/mnil/readme.md2
-rw-r--r--keyboards/keebio/iris/keymaps/mnil/rules.mk1
-rw-r--r--keyboards/keebio/iris/keymaps/nstickney/config.h20
-rw-r--r--keyboards/keebio/iris/keymaps/nstickney/keymap.c53
-rw-r--r--keyboards/keebio/iris/keymaps/pvinis/config.h32
-rw-r--r--keyboards/keebio/iris/keymaps/pvinis/keymap.c198
-rw-r--r--keyboards/keebio/iris/keymaps/pvinis/rules.mk9
-rw-r--r--keyboards/keebio/iris/keymaps/rs/config.h33
-rw-r--r--keyboards/keebio/iris/keymaps/rs/keymap.c45
-rw-r--r--keyboards/keebio/iris/keymaps/rs/readme.md1
-rw-r--r--keyboards/keebio/iris/keymaps/rs/rules.mk2
-rw-r--r--keyboards/keebio/iris/keymaps/sethBarberee/config.h30
-rw-r--r--keyboards/keebio/iris/keymaps/sethBarberee/keymap.c82
-rw-r--r--keyboards/keebio/iris/keymaps/sethBarberee/rules.mk5
-rw-r--r--keyboards/keebio/iris/keymaps/wanleg/config.h30
-rw-r--r--keyboards/keebio/iris/keymaps/wanleg/keymap.c76
-rw-r--r--keyboards/keebio/iris/keymaps/wanleg/rules.mk5
-rw-r--r--keyboards/keebio/iris/rev8/info.json4
-rw-r--r--keyboards/keebio/levinson/keymaps/dcompact/keymap.c2
-rw-r--r--keyboards/keebio/levinson/keymaps/drogglbecher/rules.mk1
-rw-r--r--keyboards/keebio/levinson/keymaps/issmirnov/README.md15
-rw-r--r--keyboards/keebio/levinson/keymaps/issmirnov/asci-keymap.txt55
-rw-r--r--keyboards/keebio/levinson/keymaps/issmirnov/config.h39
-rw-r--r--keyboards/keebio/levinson/keymaps/issmirnov/keymap.c124
-rw-r--r--keyboards/keebio/levinson/keymaps/issmirnov/rgb.c61
-rw-r--r--keyboards/keebio/levinson/keymaps/issmirnov/rgb.h15
-rw-r--r--keyboards/keebio/levinson/keymaps/issmirnov/rules.mk14
-rw-r--r--keyboards/keebio/levinson/keymaps/issmirnov/sounds.h9
-rw-r--r--keyboards/keebio/levinson/keymaps/issmirnov/template.txt9
-rw-r--r--keyboards/keebio/levinson/keymaps/losinggeneration/README.md28
-rw-r--r--keyboards/keebio/levinson/keymaps/losinggeneration/config.h41
-rw-r--r--keyboards/keebio/levinson/keymaps/losinggeneration/keymap.c38
-rw-r--r--keyboards/keebio/levinson/keymaps/losinggeneration/rules.mk14
-rw-r--r--keyboards/keebio/levinson/keymaps/rossman360/keymap.c135
-rw-r--r--keyboards/keebio/levinson/keymaps/steno/keymap.c1
-rw-r--r--keyboards/keebio/levinson/keymaps/xtonhasvim/config.h30
-rw-r--r--keyboards/keebio/levinson/keymaps/xtonhasvim/keymap.c237
-rw-r--r--keyboards/keebio/levinson/keymaps/xtonhasvim/readme.md9
-rw-r--r--keyboards/keebio/levinson/keymaps/xtonhasvim/rules.mk5
-rw-r--r--keyboards/keebio/nyquist/keymaps/losinggeneration/README.md29
-rw-r--r--keyboards/keebio/nyquist/keymaps/losinggeneration/config.h25
-rw-r--r--keyboards/keebio/nyquist/keymaps/losinggeneration/keymap.c55
-rw-r--r--keyboards/keebio/nyquist/keymaps/losinggeneration/rules.mk14
-rw-r--r--keyboards/keebio/nyquist/rev4/info.json4
-rw-r--r--keyboards/keebio/quefrency/keymaps/bcat/config.h26
-rw-r--r--keyboards/keebio/quefrency/keymaps/bcat/keymap.c40
-rw-r--r--keyboards/keebio/quefrency/keymaps/bcat/readme.md17
-rw-r--r--keyboards/keebio/quefrency/keymaps/bcat/rules.mk1
-rw-r--r--keyboards/keebio/quefrency/keymaps/draevin/keymap.c61
-rw-r--r--keyboards/keebio/quefrency/keymaps/draevin/rules.mk1
-rw-r--r--keyboards/keebio/quefrency/keymaps/jonavin/config.h40
-rw-r--r--keyboards/keebio/quefrency/keymaps/jonavin/keymap.c152
-rw-r--r--keyboards/keebio/quefrency/keymaps/jonavin/readme.md38
-rw-r--r--keyboards/keebio/quefrency/keymaps/jonavin/rules.mk10
-rw-r--r--keyboards/keebio/sinc/keymaps/draevin/keymap.c47
-rw-r--r--keyboards/keebio/sinc/keymaps/sethBarberee/config.h25
-rw-r--r--keyboards/keebio/sinc/keymaps/sethBarberee/keymap.c82
-rw-r--r--keyboards/keebio/sinc/keymaps/sethBarberee/rules.mk4
-rw-r--r--keyboards/keebio/sinc/rev1/config.h2
-rw-r--r--keyboards/keebio/sinc/rev1/info.json5
-rw-r--r--keyboards/keebio/sinc/rev2/config.h2
-rw-r--r--keyboards/keebio/sinc/rev2/info.json5
-rwxr-xr-xkeyboards/keebio/tragicforce68/keymaps/rossman360/keymap.c71
-rw-r--r--keyboards/keebio/tragicforce68/keymaps/rossman360/readme.md3
-rw-r--r--keyboards/keebio/tragicforce68/keymaps/rossman360/rules.mk2
-rw-r--r--keyboards/keebio/viterbi/keymaps/drashna/config.h61
-rw-r--r--keyboards/keebio/viterbi/keymaps/drashna/keymap.c76
-rw-r--r--keyboards/keebio/viterbi/keymaps/drashna/rules.mk25
-rw-r--r--keyboards/keebio/viterbi/keymaps/ericgebhart/config.h24
-rw-r--r--keyboards/keebio/viterbi/keymaps/ericgebhart/keymap.c18
-rw-r--r--keyboards/keebio/viterbi/keymaps/vosechu/config.h50
-rw-r--r--keyboards/keebio/viterbi/keymaps/vosechu/keymap.c91
-rw-r--r--keyboards/keebio/viterbi/keymaps/vosechu/rules.mk1
-rw-r--r--keyboards/keebsforall/coarse60/config.h2
-rwxr-xr-xkeyboards/keebwerk/mega/ansi/ansi.c140
-rwxr-xr-xkeyboards/keebwerk/mega/ansi/config.h5
-rw-r--r--keyboards/keebwerk/mega/ansi/keymaps/jesusvallejo/keymap.c92
-rwxr-xr-xkeyboards/keebwerk/mega/ansi/rules.mk2
-rw-r--r--keyboards/keebwerk/nano_slider/rules.mk2
-rw-r--r--keyboards/keyboardio/atreus/keymaps/dshields/keymap.c45
-rw-r--r--keyboards/keyboardio/atreus/keymaps/manna-harbour_miryoku/config.h21
-rw-r--r--keyboards/keyboardio/atreus/keymaps/manna-harbour_miryoku/keymap.c4
-rw-r--r--keyboards/keyboardio/model01/keymaps/dshields/config.h4
-rw-r--r--keyboards/keyboardio/model01/keymaps/dshields/keymap.c28
-rw-r--r--keyboards/keyboardio/model01/keymaps/dshields/readme.md10
-rw-r--r--keyboards/keyboardio/model01/keymaps/manna-harbour_miryoku/config.h26
-rw-r--r--keyboards/keyboardio/model01/keymaps/manna-harbour_miryoku/keymap.c4
-rw-r--r--keyboards/keyboardio/model01/keymaps/manna-harbour_miryoku/rules.mk4
-rw-r--r--keyboards/keyboardio/model01/rules.mk2
-rw-r--r--keyboards/keychron/c1_pro/ansi/rgb/config.h10
-rw-r--r--keyboards/keychron/c1_pro/ansi/rgb/info.json2
-rw-r--r--keyboards/keychron/c1_pro/ansi/rgb/rgb.c4
-rw-r--r--keyboards/keychron/c1_pro/ansi/white/config.h8
-rw-r--r--keyboards/keychron/c1_pro/ansi/white/info.json2
-rw-r--r--keyboards/keychron/c1_pro/ansi/white/white.c4
-rw-r--r--keyboards/keychron/c2_pro/ansi/rgb/config.h7
-rw-r--r--keyboards/keychron/c2_pro/ansi/rgb/info.json2
-rw-r--r--keyboards/keychron/c2_pro/ansi/rgb/rgb.c4
-rw-r--r--keyboards/keychron/c2_pro/ansi/white/config.h5
-rw-r--r--keyboards/keychron/c2_pro/ansi/white/info.json2
-rw-r--r--keyboards/keychron/c2_pro/ansi/white/white.c4
-rw-r--r--keyboards/keychron/q0/base/base.c57
-rw-r--r--keyboards/keychron/q0/base/config.h26
-rw-r--r--keyboards/keychron/q0/base/info.json75
-rw-r--r--keyboards/keychron/q0/base/keymaps/default/keymap.c (renamed from keyboards/keychron/q0/rev_0130/keymaps/default/keymap.c)0
-rw-r--r--keyboards/keychron/q0/base/keymaps/keychron/keymap.c (renamed from keyboards/keychron/q0/rev_0130/keymaps/keychron/keymap.c)0
-rw-r--r--keyboards/keychron/q0/base/keymaps/keychron/rules.mk (renamed from keyboards/keychron/q0/rev_0130/keymaps/keychron/rules.mk)0
-rw-r--r--keyboards/keychron/q0/base/keymaps/via/keymap.c (renamed from keyboards/keychron/q0/rev_0130/keymaps/via/keymap.c)0
-rw-r--r--keyboards/keychron/q0/base/keymaps/via/rules.mk (renamed from keyboards/dztech/og60/keymaps/via/rules.mk)0
-rw-r--r--keyboards/keychron/q0/base/readme.md (renamed from keyboards/keychron/q0/rev_0130/readme.md)0
-rw-r--r--keyboards/keychron/q0/base/rules.mk (renamed from keyboards/soda/mango/rules.mk)0
-rw-r--r--keyboards/keychron/q0/config.h6
-rw-r--r--keyboards/keychron/q0/info.json52
-rw-r--r--keyboards/keychron/q0/plus/config.h31
-rw-r--r--keyboards/keychron/q0/plus/info.json94
-rw-r--r--keyboards/keychron/q0/plus/keymaps/default/keymap.c (renamed from keyboards/keychron/q0/rev_0131/keymaps/default/keymap.c)0
-rw-r--r--keyboards/keychron/q0/plus/keymaps/default/rules.mk1
-rw-r--r--keyboards/keychron/q0/plus/keymaps/keychron/keymap.c (renamed from keyboards/keychron/q0/rev_0131/keymaps/keychron/keymap.c)0
-rw-r--r--keyboards/keychron/q0/plus/keymaps/keychron/rules.mk (renamed from keyboards/keychron/q0/rev_0131/keymaps/keychron/rules.mk)0
-rw-r--r--keyboards/keychron/q0/plus/keymaps/via/keymap.c (renamed from keyboards/keychron/q0/rev_0131/keymaps/via/keymap.c)0
-rw-r--r--keyboards/keychron/q0/plus/keymaps/via/rules.mk (renamed from keyboards/keychron/q0/rev_0131/keymaps/via/rules.mk)0
-rw-r--r--keyboards/keychron/q0/plus/plus.c62
-rw-r--r--keyboards/keychron/q0/plus/readme.md12
-rw-r--r--keyboards/keychron/q0/plus/rules.mk1
-rw-r--r--keyboards/keychron/q0/readme.md10
-rw-r--r--keyboards/keychron/q0/rev_0130/config.h28
-rw-r--r--keyboards/keychron/q0/rev_0130/info.json118
-rw-r--r--keyboards/keychron/q0/rev_0130/rev_0130.c57
-rw-r--r--keyboards/keychron/q0/rev_0130/rules.mk3
-rw-r--r--keyboards/keychron/q0/rev_0131/config.h34
-rw-r--r--keyboards/keychron/q0/rev_0131/info.json137
-rw-r--r--keyboards/keychron/q0/rev_0131/readme.md6
-rw-r--r--keyboards/keychron/q0/rev_0131/rev_0131.c62
-rw-r--r--keyboards/keychron/q0/rev_0131/rules.mk3
-rw-r--r--keyboards/keychron/q1/ansi/ansi.c150
-rw-r--r--keyboards/keychron/q1/ansi/config.h22
-rw-r--r--keyboards/keychron/q1/ansi/info.json115
-rw-r--r--keyboards/keychron/q1/ansi/rules.mk15
-rw-r--r--keyboards/keychron/q1/ansi_encoder/ansi_encoder.c148
-rw-r--r--keyboards/keychron/q1/ansi_encoder/config.h22
-rw-r--r--keyboards/keychron/q1/ansi_encoder/info.json120
-rw-r--r--keyboards/keychron/q1/ansi_encoder/rules.mk16
-rw-r--r--keyboards/keychron/q1/config.h80
-rw-r--r--keyboards/keychron/q1/iso/config.h22
-rw-r--r--keyboards/keychron/q1/iso/info.json116
-rw-r--r--keyboards/keychron/q1/iso/iso.c149
-rw-r--r--keyboards/keychron/q1/iso/rules.mk15
-rw-r--r--keyboards/keychron/q1/iso_encoder/config.h33
-rw-r--r--keyboards/keychron/q1/iso_encoder/info.json121
-rw-r--r--keyboards/keychron/q1/iso_encoder/iso_encoder.c150
-rw-r--r--keyboards/keychron/q1/iso_encoder/rules.mk18
-rw-r--r--keyboards/keychron/q1/q1.c38
-rw-r--r--keyboards/keychron/q1/readme.md21
-rw-r--r--keyboards/keychron/q10/ansi_encoder/ansi_encoder.c4
-rw-r--r--keyboards/keychron/q10/ansi_encoder/info.json2
-rw-r--r--keyboards/keychron/q10/ansi_encoder/rules.mk2
-rw-r--r--keyboards/keychron/q10/config.h10
-rw-r--r--keyboards/keychron/q10/iso_encoder/info.json2
-rw-r--r--keyboards/keychron/q10/iso_encoder/iso_encoder.c4
-rw-r--r--keyboards/keychron/q10/iso_encoder/rules.mk2
-rwxr-xr-xkeyboards/keychron/q11/ansi_encoder/ansi_encoder.c4
-rw-r--r--keyboards/keychron/q11/ansi_encoder/rules.mk5
-rwxr-xr-xkeyboards/keychron/q11/config.h5
-rwxr-xr-xkeyboards/keychron/q11/info.json6
-rwxr-xr-xkeyboards/keychron/q11/iso_encoder/iso_encoder.c4
-rw-r--r--keyboards/keychron/q12/ansi_encoder/ansi_encoder.c4
-rw-r--r--keyboards/keychron/q12/ansi_encoder/info.json2
-rw-r--r--keyboards/keychron/q12/ansi_encoder/rules.mk2
-rw-r--r--keyboards/keychron/q12/config.h7
-rw-r--r--keyboards/keychron/q12/iso_encoder/info.json2
-rw-r--r--keyboards/keychron/q12/iso_encoder/iso_encoder.c4
-rw-r--r--keyboards/keychron/q12/iso_encoder/rules.mk2
-rw-r--r--keyboards/keychron/q1v1/ansi/ansi.c126
-rw-r--r--keyboards/keychron/q1v1/ansi/config.h23
-rw-r--r--keyboards/keychron/q1v1/ansi/info.json190
-rw-r--r--keyboards/keychron/q1v1/ansi/keymaps/default/keymap.c (renamed from keyboards/keychron/q1/ansi/keymaps/default/keymap.c)0
-rw-r--r--keyboards/keychron/q1v1/ansi/keymaps/gtg465x/README.md (renamed from keyboards/keychron/q1/ansi/keymaps/gtg465x/README.md)0
-rw-r--r--keyboards/keychron/q1v1/ansi/keymaps/gtg465x/config.h (renamed from keyboards/keychron/q1/ansi/keymaps/gtg465x/config.h)0
-rw-r--r--keyboards/keychron/q1v1/ansi/keymaps/gtg465x/keymap.c (renamed from keyboards/keychron/q1/ansi/keymaps/gtg465x/keymap.c)0
-rw-r--r--keyboards/keychron/q1v1/ansi/keymaps/gtg465x/keymap_user.h (renamed from keyboards/keychron/q1/ansi/keymaps/gtg465x/keymap_user.h)0
-rw-r--r--keyboards/keychron/q1v1/ansi/keymaps/gtg465x/rgb_matrix_user.c (renamed from keyboards/keychron/q1/ansi/keymaps/gtg465x/rgb_matrix_user.c)0
-rw-r--r--keyboards/keychron/q1v1/ansi/keymaps/gtg465x/rgb_matrix_user.h (renamed from keyboards/keychron/q1/ansi/keymaps/gtg465x/rgb_matrix_user.h)0
-rw-r--r--keyboards/keychron/q1v1/ansi/keymaps/gtg465x/rules.mk (renamed from keyboards/keychron/q1/ansi/keymaps/gtg465x/rules.mk)0
-rw-r--r--keyboards/keychron/q1v1/ansi/keymaps/keychron/keymap.c (renamed from keyboards/keychron/q1/ansi/keymaps/keychron/keymap.c)0
-rw-r--r--keyboards/keychron/q1v1/ansi/keymaps/keychron/rules.mk (renamed from keyboards/keychron/q1/ansi/keymaps/keychron/rules.mk)0
-rw-r--r--keyboards/keychron/q1v1/ansi/keymaps/mkillewald/config.h (renamed from keyboards/keychron/q1/ansi/keymaps/mkillewald/config.h)0
-rw-r--r--keyboards/keychron/q1v1/ansi/keymaps/mkillewald/keymap.c (renamed from keyboards/keychron/q1/ansi/keymaps/mkillewald/keymap.c)0
-rw-r--r--keyboards/keychron/q1v1/ansi/keymaps/mkillewald/keymap_user.h (renamed from keyboards/keychron/q1/ansi/keymaps/mkillewald/keymap_user.h)0
-rw-r--r--keyboards/keychron/q1v1/ansi/keymaps/mkillewald/readme.md (renamed from keyboards/keychron/q1/ansi/keymaps/mkillewald/readme.md)0
-rw-r--r--keyboards/keychron/q1v1/ansi/keymaps/mkillewald/rgb_matrix_user.c (renamed from keyboards/keychron/q1/ansi/keymaps/mkillewald/rgb_matrix_user.c)0
-rw-r--r--keyboards/keychron/q1v1/ansi/keymaps/mkillewald/rgb_matrix_user.h (renamed from keyboards/keychron/q1/ansi/keymaps/mkillewald/rgb_matrix_user.h)0
-rw-r--r--keyboards/keychron/q1v1/ansi/keymaps/mkillewald/rules.mk (renamed from keyboards/keychron/q1/ansi/keymaps/mkillewald/rules.mk)0
-rw-r--r--keyboards/keychron/q1v1/ansi/keymaps/teimor/config.h (renamed from keyboards/keychron/q1/ansi/keymaps/teimor/config.h)0
-rw-r--r--keyboards/keychron/q1v1/ansi/keymaps/teimor/keymap.c (renamed from keyboards/keychron/q1/ansi/keymaps/teimor/keymap.c)0
-rw-r--r--keyboards/keychron/q1v1/ansi/keymaps/teimor/keymap_user.h (renamed from keyboards/keychron/q1/ansi/keymaps/teimor/keymap_user.h)0
-rw-r--r--keyboards/keychron/q1v1/ansi/keymaps/teimor/readme.md (renamed from keyboards/keychron/q1/ansi/keymaps/teimor/readme.md)0
-rw-r--r--keyboards/keychron/q1v1/ansi/keymaps/teimor/rgb_matrix_user.c (renamed from keyboards/keychron/q1/ansi/keymaps/teimor/rgb_matrix_user.c)0
-rw-r--r--keyboards/keychron/q1v1/ansi/keymaps/teimor/rgb_matrix_user.h (renamed from keyboards/keychron/q1/ansi/keymaps/teimor/rgb_matrix_user.h)0
-rw-r--r--keyboards/keychron/q1v1/ansi/keymaps/teimor/rules.mk (renamed from keyboards/keychron/q1/ansi/keymaps/teimor/rules.mk)0
-rw-r--r--keyboards/keychron/q1v1/ansi/keymaps/teimor/tap_dance_mac_caps.c (renamed from keyboards/keychron/q1/ansi/keymaps/teimor/tap_dance_mac_caps.c)0
-rw-r--r--keyboards/keychron/q1v1/ansi/keymaps/teimor/tap_dance_mac_caps.h (renamed from keyboards/keychron/q1/ansi/keymaps/teimor/tap_dance_mac_caps.h)0
-rw-r--r--keyboards/keychron/q1v1/ansi/keymaps/teimor/tap_dance_setup.c (renamed from keyboards/keychron/q1/ansi/keymaps/teimor/tap_dance_setup.c)0
-rw-r--r--keyboards/keychron/q1v1/ansi/keymaps/teimor/tap_dance_setup.h (renamed from keyboards/keychron/q1/ansi/keymaps/teimor/tap_dance_setup.h)0
-rw-r--r--keyboards/keychron/q1v1/ansi/keymaps/teimor/tap_dance_user.c (renamed from keyboards/keychron/q1/ansi/keymaps/teimor/tap_dance_user.c)0
-rw-r--r--keyboards/keychron/q1v1/ansi/keymaps/teimor/tap_dance_win_caps.c (renamed from keyboards/keychron/q1/ansi/keymaps/teimor/tap_dance_win_caps.c)0
-rw-r--r--keyboards/keychron/q1v1/ansi/keymaps/teimor/tap_dance_win_caps.h (renamed from keyboards/keychron/q1/ansi/keymaps/teimor/tap_dance_win_caps.h)0
-rw-r--r--keyboards/keychron/q1v1/ansi/keymaps/via/keymap.c (renamed from keyboards/keychron/q1/ansi/keymaps/via/keymap.c)0
-rw-r--r--keyboards/keychron/q1v1/ansi/keymaps/via/rules.mk (renamed from keyboards/hs60/v2/ansi/keymaps/stanrc85/rules.mk)0
-rw-r--r--keyboards/keychron/q1v1/ansi/readme.md (renamed from keyboards/keychron/q1/ansi/readme.md)0
-rw-r--r--keyboards/keychron/q1v1/ansi/rules.mk1
-rw-r--r--keyboards/keychron/q1v1/ansi_encoder/ansi_encoder.c125
-rw-r--r--keyboards/keychron/q1v1/ansi_encoder/config.h23
-rw-r--r--keyboards/keychron/q1v1/ansi_encoder/info.json196
-rw-r--r--keyboards/keychron/q1v1/ansi_encoder/keymaps/default/keymap.c (renamed from keyboards/keychron/q1/ansi_encoder/keymaps/default/keymap.c)0
-rw-r--r--keyboards/keychron/q1v1/ansi_encoder/keymaps/default/rules.mk (renamed from keyboards/keychron/q1/ansi_encoder/keymaps/default/rules.mk)0
-rw-r--r--keyboards/keychron/q1v1/ansi_encoder/keymaps/keychron/keymap.c (renamed from keyboards/keychron/q1/ansi_encoder/keymaps/keychron/keymap.c)0
-rw-r--r--keyboards/keychron/q1v1/ansi_encoder/keymaps/keychron/rules.mk (renamed from keyboards/keychron/q1/ansi_encoder/keymaps/keychron/rules.mk)0
-rw-r--r--keyboards/keychron/q1v1/ansi_encoder/keymaps/via/keymap.c (renamed from keyboards/keychron/q1/ansi_encoder/keymaps/via/keymap.c)0
-rw-r--r--keyboards/keychron/q1v1/ansi_encoder/keymaps/via/rules.mk (renamed from keyboards/keychron/q1/ansi_encoder/keymaps/via/rules.mk)0
-rw-r--r--keyboards/keychron/q1v1/ansi_encoder/readme.md (renamed from keyboards/keychron/q1/ansi_encoder/readme.md)0
-rw-r--r--keyboards/keychron/q1v1/ansi_encoder/rules.mk1
-rw-r--r--keyboards/keychron/q1v1/config.h36
-rw-r--r--keyboards/keychron/q1v1/info.json54
-rw-r--r--keyboards/keychron/q1v1/iso/config.h23
-rw-r--r--keyboards/keychron/q1v1/iso/info.json192
-rw-r--r--keyboards/keychron/q1v1/iso/iso.c158
-rw-r--r--keyboards/keychron/q1v1/iso/keymaps/default/keymap.c (renamed from keyboards/keychron/q1/iso/keymaps/default/keymap.c)0
-rw-r--r--keyboards/keychron/q1v1/iso/keymaps/keychron/keymap.c (renamed from keyboards/keychron/q1/iso/keymaps/keychron/keymap.c)0
-rw-r--r--keyboards/keychron/q1v1/iso/keymaps/keychron/rules.mk (renamed from keyboards/keychron/q1/iso/keymaps/keychron/rules.mk)0
-rw-r--r--keyboards/keychron/q1v1/iso/keymaps/kubahorak/README.md (renamed from keyboards/keychron/q1/iso/keymaps/kubahorak/README.md)0
-rw-r--r--keyboards/keychron/q1v1/iso/keymaps/kubahorak/config.h (renamed from keyboards/keychron/q1/iso/keymaps/kubahorak/config.h)0
-rw-r--r--keyboards/keychron/q1v1/iso/keymaps/kubahorak/keymap.c (renamed from keyboards/keychron/q1/iso/keymaps/kubahorak/keymap.c)0
-rw-r--r--keyboards/keychron/q1v1/iso/keymaps/kubahorak/keymap_user.h (renamed from keyboards/keychron/q1/iso/keymaps/kubahorak/keymap_user.h)0
-rw-r--r--keyboards/keychron/q1v1/iso/keymaps/kubahorak/rgb_matrix_user.c (renamed from keyboards/keychron/q1/iso/keymaps/kubahorak/rgb_matrix_user.c)0
-rw-r--r--keyboards/keychron/q1v1/iso/keymaps/kubahorak/rgb_matrix_user.h (renamed from keyboards/keychron/q1/iso/keymaps/kubahorak/rgb_matrix_user.h)0
-rw-r--r--keyboards/keychron/q1v1/iso/keymaps/kubahorak/rules.mk (renamed from keyboards/keychron/q1/iso/keymaps/kubahorak/rules.mk)0
-rw-r--r--keyboards/keychron/q1v1/iso/keymaps/mkillewald_iso/config.h (renamed from keyboards/keychron/q1/iso/keymaps/mkillewald_iso/config.h)0
-rw-r--r--keyboards/keychron/q1v1/iso/keymaps/mkillewald_iso/keymap.c (renamed from keyboards/keychron/q1/iso/keymaps/mkillewald_iso/keymap.c)0
-rw-r--r--keyboards/keychron/q1v1/iso/keymaps/mkillewald_iso/keymap_user.h (renamed from keyboards/keychron/q1/iso/keymaps/mkillewald_iso/keymap_user.h)0
-rw-r--r--keyboards/keychron/q1v1/iso/keymaps/mkillewald_iso/readme.md (renamed from keyboards/keychron/q1/iso/keymaps/mkillewald_iso/readme.md)0
-rw-r--r--keyboards/keychron/q1v1/iso/keymaps/mkillewald_iso/rgb_matrix_user.c (renamed from keyboards/keychron/q1/iso/keymaps/mkillewald_iso/rgb_matrix_user.c)0
-rw-r--r--keyboards/keychron/q1v1/iso/keymaps/mkillewald_iso/rgb_matrix_user.h (renamed from keyboards/keychron/q1/iso/keymaps/mkillewald_iso/rgb_matrix_user.h)0
-rw-r--r--keyboards/keychron/q1v1/iso/keymaps/mkillewald_iso/rules.mk (renamed from keyboards/keychron/q1/iso/keymaps/mkillewald_iso/rules.mk)0
-rw-r--r--keyboards/keychron/q1v1/iso/keymaps/via/keymap.c (renamed from keyboards/keychron/q1/iso/keymaps/via/keymap.c)0
-rw-r--r--keyboards/keychron/q1v1/iso/keymaps/via/rules.mk (renamed from keyboards/keychron/q0/rev_0130/keymaps/via/rules.mk)0
-rw-r--r--keyboards/keychron/q1v1/iso/keymaps/victorsavu3/config.h (renamed from keyboards/keychron/q1/iso/keymaps/victorsavu3/config.h)0
-rw-r--r--keyboards/keychron/q1v1/iso/keymaps/victorsavu3/keymap.c (renamed from keyboards/keychron/q1/iso/keymaps/victorsavu3/keymap.c)0
-rw-r--r--keyboards/keychron/q1v1/iso/keymaps/victorsavu3/readme.md (renamed from keyboards/keychron/q1/iso/keymaps/victorsavu3/readme.md)0
-rw-r--r--keyboards/keychron/q1v1/iso/keymaps/victorsavu3/rules.mk (renamed from keyboards/keychron/q1/iso/keymaps/victorsavu3/rules.mk)0
-rw-r--r--keyboards/keychron/q1v1/iso/readme.md (renamed from keyboards/keychron/q1/iso/readme.md)0
-rw-r--r--keyboards/keychron/q1v1/iso/rules.mk1
-rw-r--r--keyboards/keychron/q1v1/iso_encoder/config.h23
-rw-r--r--keyboards/keychron/q1v1/iso_encoder/info.json199
-rw-r--r--keyboards/keychron/q1v1/iso_encoder/iso_encoder.c127
-rw-r--r--keyboards/keychron/q1v1/iso_encoder/keymaps/default/keymap.c (renamed from keyboards/keychron/q1/iso_encoder/keymaps/default/keymap.c)0
-rw-r--r--keyboards/keychron/q1v1/iso_encoder/keymaps/default/rules.mk (renamed from keyboards/keychron/q1/iso_encoder/keymaps/default/rules.mk)0
-rw-r--r--keyboards/keychron/q1v1/iso_encoder/keymaps/keychron/keymap.c (renamed from keyboards/keychron/q1/iso_encoder/keymaps/keychron/keymap.c)0
-rw-r--r--keyboards/keychron/q1v1/iso_encoder/keymaps/keychron/rules.mk (renamed from keyboards/keychron/q1/iso_encoder/keymaps/keychron/rules.mk)0
-rw-r--r--keyboards/keychron/q1v1/iso_encoder/keymaps/via/keymap.c (renamed from keyboards/keychron/q1/iso_encoder/keymaps/via/keymap.c)0
-rw-r--r--keyboards/keychron/q1v1/iso_encoder/keymaps/via/rules.mk (renamed from keyboards/keychron/q1/iso_encoder/keymaps/via/rules.mk)0
-rw-r--r--keyboards/keychron/q1v1/iso_encoder/readme.md (renamed from keyboards/keychron/q1/iso_encoder/readme.md)0
-rw-r--r--keyboards/keychron/q1v1/iso_encoder/rules.mk2
-rw-r--r--keyboards/keychron/q1v1/q1v1.c73
-rw-r--r--keyboards/keychron/q1v1/readme.md27
-rw-r--r--keyboards/keychron/q1v2/ansi/ansi.c4
-rw-r--r--keyboards/keychron/q1v2/ansi_encoder/ansi_encoder.c4
-rw-r--r--keyboards/keychron/q1v2/config.h10
-rw-r--r--keyboards/keychron/q1v2/info.json2
-rw-r--r--keyboards/keychron/q1v2/iso/iso.c4
-rw-r--r--keyboards/keychron/q1v2/iso_encoder/iso_encoder.c4
-rw-r--r--keyboards/keychron/q1v2/jis/jis.c4
-rw-r--r--keyboards/keychron/q1v2/jis_encoder/jis_encoder.c4
-rw-r--r--keyboards/keychron/q2/ansi/ansi.c33
-rw-r--r--keyboards/keychron/q2/ansi/config.h7
-rw-r--r--keyboards/keychron/q2/ansi/info.json87
-rw-r--r--keyboards/keychron/q2/ansi/rules.mk19
-rw-r--r--keyboards/keychron/q2/ansi_encoder/ansi_encoder.c33
-rw-r--r--keyboards/keychron/q2/ansi_encoder/config.h8
-rw-r--r--keyboards/keychron/q2/ansi_encoder/info.json92
-rw-r--r--keyboards/keychron/q2/ansi_encoder/rules.mk19
-rw-r--r--keyboards/keychron/q2/config.h65
-rw-r--r--keyboards/keychron/q2/info.json60
-rw-r--r--keyboards/keychron/q2/iso/config.h7
-rw-r--r--keyboards/keychron/q2/iso/info.json88
-rw-r--r--keyboards/keychron/q2/iso/iso.c33
-rw-r--r--keyboards/keychron/q2/iso/rules.mk19
-rw-r--r--keyboards/keychron/q2/iso_encoder/config.h8
-rw-r--r--keyboards/keychron/q2/iso_encoder/info.json93
-rw-r--r--keyboards/keychron/q2/iso_encoder/iso_encoder.c33
-rw-r--r--keyboards/keychron/q2/iso_encoder/keymaps/dhertz/keymap.c95
-rw-r--r--keyboards/keychron/q2/iso_encoder/keymaps/dhertz/rules.mk1
-rw-r--r--keyboards/keychron/q2/iso_encoder/rules.mk19
-rw-r--r--keyboards/keychron/q2/jis/config.h6
-rw-r--r--keyboards/keychron/q2/jis/info.json89
-rw-r--r--keyboards/keychron/q2/jis/jis.c33
-rw-r--r--keyboards/keychron/q2/jis/rules.mk18
-rw-r--r--keyboards/keychron/q2/jis_encoder/config.h9
-rw-r--r--keyboards/keychron/q2/jis_encoder/info.json94
-rw-r--r--keyboards/keychron/q2/jis_encoder/jis_encoder.c33
-rw-r--r--keyboards/keychron/q2/jis_encoder/rules.mk19
-rw-r--r--keyboards/keychron/q2/readme.md16
-rw-r--r--keyboards/keychron/q3/ansi/ansi.c36
-rw-r--r--keyboards/keychron/q3/ansi/config.h12
-rw-r--r--keyboards/keychron/q3/ansi/info.json107
-rw-r--r--keyboards/keychron/q3/ansi/rules.mk19
-rw-r--r--keyboards/keychron/q3/ansi_encoder/ansi_encoder.c36
-rw-r--r--keyboards/keychron/q3/ansi_encoder/config.h9
-rw-r--r--keyboards/keychron/q3/ansi_encoder/info.json108
-rw-r--r--keyboards/keychron/q3/ansi_encoder/rules.mk21
-rw-r--r--keyboards/keychron/q3/config.h71
-rw-r--r--keyboards/keychron/q3/info.json52
-rw-r--r--keyboards/keychron/q3/iso/config.h12
-rw-r--r--keyboards/keychron/q3/iso/info.json108
-rw-r--r--keyboards/keychron/q3/iso/iso.c36
-rw-r--r--keyboards/keychron/q3/iso/rules.mk19
-rw-r--r--keyboards/keychron/q3/iso_encoder/config.h9
-rw-r--r--keyboards/keychron/q3/iso_encoder/info.json109
-rw-r--r--keyboards/keychron/q3/iso_encoder/iso_encoder.c36
-rw-r--r--keyboards/keychron/q3/iso_encoder/rules.mk21
-rw-r--r--keyboards/keychron/q3/jis/config.h12
-rw-r--r--keyboards/keychron/q3/jis/info.json114
-rw-r--r--keyboards/keychron/q3/jis/jis.c36
-rw-r--r--keyboards/keychron/q3/jis/rules.mk19
-rw-r--r--keyboards/keychron/q3/jis_encoder/config.h15
-rw-r--r--keyboards/keychron/q3/jis_encoder/info.json116
-rw-r--r--keyboards/keychron/q3/jis_encoder/jis_encoder.c36
-rw-r--r--keyboards/keychron/q3/jis_encoder/rules.mk21
-rw-r--r--keyboards/keychron/q3/readme.md22
-rw-r--r--keyboards/keychron/q4/ansi/config.h20
-rw-r--r--keyboards/keychron/q4/ansi/info.json147
-rw-r--r--keyboards/keychron/q4/ansi/keymaps/default/keymap.c (renamed from keyboards/keychron/q4/ansi_v1/keymaps/default/keymap.c)0
-rw-r--r--keyboards/keychron/q4/ansi/keymaps/keychron/keymap.c (renamed from keyboards/keychron/q4/ansi_v1/keymaps/keychron/keymap.c)0
-rw-r--r--keyboards/keychron/q4/ansi/keymaps/keychron/rules.mk (renamed from keyboards/keychron/q4/ansi_v1/keymaps/keychron/rules.mk)0
-rw-r--r--keyboards/keychron/q4/ansi/keymaps/via/keymap.c (renamed from keyboards/keychron/q4/ansi_v1/keymaps/via/keymap.c)0
-rw-r--r--keyboards/keychron/q4/ansi/keymaps/via/rules.mk (renamed from keyboards/keychron/q4/ansi_v1/keymaps/via/rules.mk)0
-rw-r--r--keyboards/keychron/q4/ansi/readme.md (renamed from keyboards/keychron/q4/ansi_v1/readme.md)0
-rw-r--r--keyboards/keychron/q4/ansi/v1/config.h26
-rw-r--r--keyboards/keychron/q4/ansi/v1/rules.mk1
-rw-r--r--keyboards/keychron/q4/ansi/v1/v1.c95
-rw-r--r--keyboards/keychron/q4/ansi/v2/config.h23
-rw-r--r--keyboards/keychron/q4/ansi/v2/rules.mk1
-rw-r--r--keyboards/keychron/q4/ansi/v2/v2.c95
-rw-r--r--keyboards/keychron/q4/ansi_v1/ansi_v1.c124
-rw-r--r--keyboards/keychron/q4/ansi_v1/config.h35
-rw-r--r--keyboards/keychron/q4/ansi_v1/info.json92
-rw-r--r--keyboards/keychron/q4/ansi_v1/rules.mk18
-rw-r--r--keyboards/keychron/q4/ansi_v2/ansi_v2.c124
-rw-r--r--keyboards/keychron/q4/ansi_v2/config.h31
-rw-r--r--keyboards/keychron/q4/ansi_v2/info.json92
-rw-r--r--keyboards/keychron/q4/ansi_v2/keymaps/default/keymap.c66
-rw-r--r--keyboards/keychron/q4/ansi_v2/keymaps/keychron/keymap.c75
-rw-r--r--keyboards/keychron/q4/ansi_v2/keymaps/keychron/rules.mk4
-rw-r--r--keyboards/keychron/q4/ansi_v2/keymaps/via/keymap.c66
-rw-r--r--keyboards/keychron/q4/ansi_v2/keymaps/via/rules.mk1
-rw-r--r--keyboards/keychron/q4/ansi_v2/readme.md1
-rw-r--r--keyboards/keychron/q4/ansi_v2/rules.mk18
-rw-r--r--keyboards/keychron/q4/config.h56
-rw-r--r--keyboards/keychron/q4/info.json62
-rw-r--r--keyboards/keychron/q4/iso/config.h9
-rw-r--r--keyboards/keychron/q4/iso/info.json81
-rw-r--r--keyboards/keychron/q4/iso/iso.c33
-rw-r--r--keyboards/keychron/q4/iso/rules.mk19
-rw-r--r--keyboards/keychron/q4/readme.md14
-rw-r--r--keyboards/keychron/q5/ansi/ansi.c4
-rw-r--r--keyboards/keychron/q5/ansi/info.json2
-rw-r--r--keyboards/keychron/q5/ansi/rules.mk2
-rw-r--r--keyboards/keychron/q5/ansi_encoder/ansi_encoder.c4
-rw-r--r--keyboards/keychron/q5/ansi_encoder/info.json2
-rw-r--r--keyboards/keychron/q5/ansi_encoder/rules.mk2
-rw-r--r--keyboards/keychron/q5/config.h7
-rw-r--r--keyboards/keychron/q5/iso/info.json2
-rw-r--r--keyboards/keychron/q5/iso/iso.c4
-rw-r--r--keyboards/keychron/q5/iso/rules.mk2
-rw-r--r--keyboards/keychron/q5/iso_encoder/info.json2
-rw-r--r--keyboards/keychron/q5/iso_encoder/iso_encoder.c4
-rw-r--r--keyboards/keychron/q5/iso_encoder/rules.mk2
-rw-r--r--keyboards/keychron/q6/ansi/ansi.c4
-rw-r--r--keyboards/keychron/q6/ansi/info.json2
-rw-r--r--keyboards/keychron/q6/ansi/rules.mk2
-rw-r--r--keyboards/keychron/q6/ansi_encoder/ansi_encoder.c4
-rw-r--r--keyboards/keychron/q6/ansi_encoder/info.json2
-rw-r--r--keyboards/keychron/q6/ansi_encoder/rules.mk2
-rw-r--r--keyboards/keychron/q6/config.h7
-rw-r--r--keyboards/keychron/q6/iso/info.json2
-rw-r--r--keyboards/keychron/q6/iso/iso.c4
-rw-r--r--keyboards/keychron/q6/iso/rules.mk2
-rw-r--r--keyboards/keychron/q6/iso_encoder/info.json2
-rw-r--r--keyboards/keychron/q6/iso_encoder/iso_encoder.c4
-rw-r--r--keyboards/keychron/q6/iso_encoder/rules.mk2
-rw-r--r--keyboards/keychron/q60/ansi/ansi.c4
-rw-r--r--keyboards/keychron/q60/ansi/info.json2
-rw-r--r--keyboards/keychron/q60/ansi/rules.mk3
-rw-r--r--keyboards/keychron/q60/config.h5
-rw-r--r--keyboards/keychron/q65/ansi_encoder/ansi_encoder.c4
-rw-r--r--keyboards/keychron/q65/ansi_encoder/info.json2
-rw-r--r--keyboards/keychron/q65/ansi_encoder/rules.mk2
-rw-r--r--keyboards/keychron/q65/config.h10
-rw-r--r--keyboards/keychron/q7/ansi/ansi.c4
-rw-r--r--keyboards/keychron/q7/ansi/info.json2
-rw-r--r--keyboards/keychron/q7/ansi/rules.mk3
-rw-r--r--keyboards/keychron/q7/config.h10
-rw-r--r--keyboards/keychron/q7/iso/info.json2
-rw-r--r--keyboards/keychron/q7/iso/iso.c4
-rw-r--r--keyboards/keychron/q7/iso/rules.mk3
-rw-r--r--keyboards/keychron/q8/ansi/ansi.c4
-rw-r--r--keyboards/keychron/q8/ansi/info.json2
-rw-r--r--keyboards/keychron/q8/ansi/rules.mk3
-rw-r--r--keyboards/keychron/q8/ansi_encoder/ansi_encoder.c4
-rw-r--r--keyboards/keychron/q8/ansi_encoder/info.json2
-rw-r--r--keyboards/keychron/q8/ansi_encoder/rules.mk3
-rw-r--r--keyboards/keychron/q8/config.h10
-rw-r--r--keyboards/keychron/q8/iso/info.json2
-rw-r--r--keyboards/keychron/q8/iso/iso.c4
-rw-r--r--keyboards/keychron/q8/iso/rules.mk3
-rw-r--r--keyboards/keychron/q8/iso_encoder/info.json2
-rw-r--r--keyboards/keychron/q8/iso_encoder/iso_encoder.c4
-rw-r--r--keyboards/keychron/q8/iso_encoder/rules.mk3
-rw-r--r--keyboards/keychron/q9/ansi/ansi.c4
-rw-r--r--keyboards/keychron/q9/ansi/info.json2
-rw-r--r--keyboards/keychron/q9/ansi/rules.mk3
-rw-r--r--keyboards/keychron/q9/ansi_encoder/ansi_encoder.c4
-rw-r--r--keyboards/keychron/q9/ansi_encoder/info.json2
-rw-r--r--keyboards/keychron/q9/ansi_encoder/rules.mk3
-rw-r--r--keyboards/keychron/q9/config.h5
-rw-r--r--keyboards/keychron/q9/iso/info.json2
-rw-r--r--keyboards/keychron/q9/iso/iso.c4
-rw-r--r--keyboards/keychron/q9/iso/rules.mk3
-rw-r--r--keyboards/keychron/q9/iso_encoder/info.json2
-rw-r--r--keyboards/keychron/q9/iso_encoder/iso_encoder.c4
-rw-r--r--keyboards/keychron/q9/iso_encoder/rules.mk3
-rwxr-xr-xkeyboards/keychron/q9_plus/ansi_encoder/ansi_encoder.c4
-rwxr-xr-xkeyboards/keychron/q9_plus/config.h5
-rwxr-xr-xkeyboards/keychron/q9_plus/info.json2
-rw-r--r--keyboards/keychron/s1/ansi/rgb/config.h10
-rw-r--r--keyboards/keychron/s1/ansi/rgb/info.json2
-rw-r--r--keyboards/keychron/s1/ansi/rgb/rgb.c4
-rw-r--r--keyboards/keychron/s1/ansi/rgb/rules.mk3
-rw-r--r--keyboards/keychron/s1/ansi/white/config.h8
-rw-r--r--keyboards/keychron/s1/ansi/white/info.json2
-rw-r--r--keyboards/keychron/s1/ansi/white/rules.mk3
-rw-r--r--keyboards/keychron/s1/ansi/white/white.c4
-rw-r--r--keyboards/keychron/v1/ansi/ansi.c4
-rw-r--r--keyboards/keychron/v1/ansi/config.h2
-rw-r--r--keyboards/keychron/v1/ansi/info.json2
-rw-r--r--keyboards/keychron/v1/ansi/keymaps/vnmm/keymap.c54
-rw-r--r--keyboards/keychron/v1/ansi/keymaps/vnmm/readme.md10
-rw-r--r--keyboards/keychron/v1/ansi/rules.mk2
-rw-r--r--keyboards/keychron/v1/ansi_encoder/ansi_encoder.c4
-rw-r--r--keyboards/keychron/v1/ansi_encoder/config.h2
-rw-r--r--keyboards/keychron/v1/ansi_encoder/info.json2
-rw-r--r--keyboards/keychron/v1/ansi_encoder/rules.mk2
-rw-r--r--keyboards/keychron/v1/config.h8
-rw-r--r--keyboards/keychron/v1/iso/config.h2
-rw-r--r--keyboards/keychron/v1/iso/info.json2
-rw-r--r--keyboards/keychron/v1/iso/iso.c4
-rw-r--r--keyboards/keychron/v1/iso/rules.mk2
-rw-r--r--keyboards/keychron/v1/iso_encoder/config.h2
-rw-r--r--keyboards/keychron/v1/iso_encoder/info.json2
-rw-r--r--keyboards/keychron/v1/iso_encoder/iso_encoder.c4
-rw-r--r--keyboards/keychron/v1/iso_encoder/rules.mk2
-rw-r--r--keyboards/keychron/v1/jis/config.h7
-rw-r--r--keyboards/keychron/v1/jis/info.json2
-rw-r--r--keyboards/keychron/v1/jis/jis.c4
-rw-r--r--keyboards/keychron/v1/jis/rules.mk2
-rw-r--r--keyboards/keychron/v1/jis_encoder/config.h2
-rw-r--r--keyboards/keychron/v1/jis_encoder/info.json2
-rw-r--r--keyboards/keychron/v1/jis_encoder/jis_encoder.c4
-rw-r--r--keyboards/keychron/v1/jis_encoder/rules.mk2
-rw-r--r--keyboards/keychron/v10/ansi_encoder/ansi_encoder.c4
-rw-r--r--keyboards/keychron/v10/ansi_encoder/info.json2
-rw-r--r--keyboards/keychron/v10/ansi_encoder/rules.mk2
-rw-r--r--keyboards/keychron/v10/config.h10
-rw-r--r--keyboards/keychron/v10/iso_encoder/info.json2
-rw-r--r--keyboards/keychron/v10/iso_encoder/iso_encoder.c4
-rw-r--r--keyboards/keychron/v10/iso_encoder/rules.mk2
-rw-r--r--keyboards/keychron/v2/ansi/ansi.c4
-rw-r--r--keyboards/keychron/v2/ansi/config.h2
-rw-r--r--keyboards/keychron/v2/ansi/info.json2
-rw-r--r--keyboards/keychron/v2/ansi/keymaps/vnmm/keymap.c57
-rw-r--r--keyboards/keychron/v2/ansi/keymaps/vnmm/readme.md10
-rw-r--r--keyboards/keychron/v2/ansi/rules.mk3
-rw-r--r--keyboards/keychron/v2/ansi_encoder/ansi_encoder.c4
-rw-r--r--keyboards/keychron/v2/ansi_encoder/info.json2
-rw-r--r--keyboards/keychron/v2/ansi_encoder/rules.mk3
-rw-r--r--keyboards/keychron/v2/config.h8
-rw-r--r--keyboards/keychron/v2/iso/info.json2
-rw-r--r--keyboards/keychron/v2/iso/iso.c4
-rw-r--r--keyboards/keychron/v2/iso/rules.mk3
-rw-r--r--keyboards/keychron/v2/iso_encoder/info.json2
-rw-r--r--keyboards/keychron/v2/iso_encoder/iso_encoder.c4
-rw-r--r--keyboards/keychron/v2/iso_encoder/rules.mk3
-rw-r--r--keyboards/keychron/v2/jis/config.h2
-rw-r--r--keyboards/keychron/v2/jis/info.json2
-rw-r--r--keyboards/keychron/v2/jis/jis.c4
-rw-r--r--keyboards/keychron/v2/jis/rules.mk3
-rw-r--r--keyboards/keychron/v2/jis_encoder/config.h2
-rw-r--r--keyboards/keychron/v2/jis_encoder/info.json2
-rw-r--r--keyboards/keychron/v2/jis_encoder/jis_encoder.c4
-rw-r--r--keyboards/keychron/v2/jis_encoder/rules.mk3
-rw-r--r--keyboards/keychron/v3/ansi/ansi.c4
-rw-r--r--keyboards/keychron/v3/ansi/config.h2
-rw-r--r--keyboards/keychron/v3/ansi/info.json2
-rw-r--r--keyboards/keychron/v3/ansi/rules.mk3
-rw-r--r--keyboards/keychron/v3/ansi_encoder/ansi_encoder.c4
-rw-r--r--keyboards/keychron/v3/ansi_encoder/info.json2
-rw-r--r--keyboards/keychron/v3/ansi_encoder/keymaps/vnmm/keymap.c77
-rw-r--r--keyboards/keychron/v3/ansi_encoder/rules.mk2
-rw-r--r--keyboards/keychron/v3/config.h8
-rw-r--r--keyboards/keychron/v3/iso/info.json2
-rw-r--r--keyboards/keychron/v3/iso/iso.c4
-rw-r--r--keyboards/keychron/v3/iso/rules.mk3
-rw-r--r--keyboards/keychron/v3/iso_encoder/info.json2
-rw-r--r--keyboards/keychron/v3/iso_encoder/iso_encoder.c4
-rw-r--r--keyboards/keychron/v3/iso_encoder/rules.mk2
-rw-r--r--keyboards/keychron/v3/jis/config.h2
-rw-r--r--keyboards/keychron/v3/jis/info.json2
-rw-r--r--keyboards/keychron/v3/jis/jis.c4
-rw-r--r--keyboards/keychron/v3/jis/rules.mk3
-rw-r--r--keyboards/keychron/v3/jis_encoder/config.h2
-rw-r--r--keyboards/keychron/v3/jis_encoder/info.json2
-rw-r--r--keyboards/keychron/v3/jis_encoder/jis_encoder.c4
-rw-r--r--keyboards/keychron/v3/jis_encoder/rules.mk2
-rw-r--r--keyboards/keychron/v4/ansi/ansi.c4
-rw-r--r--keyboards/keychron/v4/ansi/info.json2
-rw-r--r--keyboards/keychron/v4/ansi/rules.mk3
-rw-r--r--keyboards/keychron/v4/config.h5
-rw-r--r--keyboards/keychron/v4/iso/info.json2
-rw-r--r--keyboards/keychron/v4/iso/iso.c4
-rw-r--r--keyboards/keychron/v4/iso/rules.mk3
-rw-r--r--keyboards/keychron/v5/ansi/ansi.c4
-rw-r--r--keyboards/keychron/v5/ansi/info.json2
-rw-r--r--keyboards/keychron/v5/ansi/rules.mk2
-rw-r--r--keyboards/keychron/v5/ansi_encoder/ansi_encoder.c4
-rw-r--r--keyboards/keychron/v5/ansi_encoder/info.json2
-rw-r--r--keyboards/keychron/v5/ansi_encoder/rules.mk2
-rw-r--r--keyboards/keychron/v5/config.h7
-rw-r--r--keyboards/keychron/v5/iso/info.json2
-rw-r--r--keyboards/keychron/v5/iso/iso.c4
-rw-r--r--keyboards/keychron/v5/iso/rules.mk2
-rw-r--r--keyboards/keychron/v5/iso_encoder/info.json2
-rw-r--r--keyboards/keychron/v5/iso_encoder/iso_encoder.c4
-rw-r--r--keyboards/keychron/v5/iso_encoder/rules.mk2
-rw-r--r--keyboards/keychron/v6/ansi/ansi.c4
-rw-r--r--keyboards/keychron/v6/ansi/info.json2
-rw-r--r--keyboards/keychron/v6/ansi/rules.mk2
-rw-r--r--keyboards/keychron/v6/ansi_encoder/ansi_encoder.c4
-rw-r--r--keyboards/keychron/v6/ansi_encoder/info.json2
-rw-r--r--keyboards/keychron/v6/ansi_encoder/rules.mk2
-rw-r--r--keyboards/keychron/v6/config.h7
-rw-r--r--keyboards/keychron/v6/iso/info.json2
-rw-r--r--keyboards/keychron/v6/iso/iso.c4
-rw-r--r--keyboards/keychron/v6/iso/rules.mk2
-rw-r--r--keyboards/keychron/v6/iso_encoder/info.json2
-rw-r--r--keyboards/keychron/v6/iso_encoder/iso_encoder.c4
-rw-r--r--keyboards/keychron/v6/iso_encoder/rules.mk2
-rw-r--r--keyboards/keychron/v7/ansi/ansi.c4
-rw-r--r--keyboards/keychron/v7/ansi/info.json2
-rw-r--r--keyboards/keychron/v7/ansi/rules.mk3
-rw-r--r--keyboards/keychron/v7/config.h10
-rw-r--r--keyboards/keychron/v7/iso/info.json2
-rw-r--r--keyboards/keychron/v7/iso/iso.c4
-rw-r--r--keyboards/keychron/v7/iso/rules.mk3
-rw-r--r--keyboards/keychron/v8/ansi/ansi.c4
-rw-r--r--keyboards/keychron/v8/ansi/info.json2
-rw-r--r--keyboards/keychron/v8/ansi/rules.mk3
-rw-r--r--keyboards/keychron/v8/ansi_encoder/ansi_encoder.c4
-rw-r--r--keyboards/keychron/v8/ansi_encoder/info.json2
-rw-r--r--keyboards/keychron/v8/ansi_encoder/rules.mk3
-rw-r--r--keyboards/keychron/v8/config.h10
-rw-r--r--keyboards/keychron/v8/iso/info.json2
-rw-r--r--keyboards/keychron/v8/iso/iso.c4
-rw-r--r--keyboards/keychron/v8/iso/rules.mk3
-rw-r--r--keyboards/keychron/v8/iso_encoder/info.json2
-rw-r--r--keyboards/keychron/v8/iso_encoder/iso_encoder.c4
-rw-r--r--keyboards/keychron/v8/iso_encoder/rules.mk3
-rwxr-xr-xkeyboards/keyhive/honeycomb/rules.mk2
-rw-r--r--keyboards/keyhive/navi10/keymaps/devdev/config.h35
-rw-r--r--keyboards/keyhive/navi10/keymaps/devdev/keymap.c263
-rw-r--r--keyboards/keyhive/navi10/keymaps/devdev/rules.mk2
-rw-r--r--keyboards/keyhive/ut472/keymaps/hvp/config.h19
-rw-r--r--keyboards/keyhive/ut472/keymaps/hvp/keymap.c67
-rw-r--r--keyboards/keyhive/ut472/keymaps/hvp/readme.md10
-rw-r--r--keyboards/keyhive/ut472/keymaps/hvp/rules.mk1
-rw-r--r--keyboards/kikoslab/kl90/config.h21
-rw-r--r--keyboards/kinesis/keymaps/ericgebhart/keymap.c18
-rw-r--r--keyboards/kinesis/keymaps/ericgebhart/readme.md5
-rw-r--r--keyboards/kinesis/keymaps/ericgebhart/rules.mk15
-rw-r--r--keyboards/kingly_keys/ave/ortho/keymaps/default/keymap.c4
-rw-r--r--keyboards/kingly_keys/ave/staggered/keymaps/default/keymap.c4
-rw-r--r--keyboards/kingly_keys/little_foot/keymaps/yanfali/config.h10
-rw-r--r--keyboards/kingly_keys/little_foot/keymaps/yanfali/keymap.c40
-rw-r--r--keyboards/kingly_keys/little_foot/keymaps/yanfali/rules.mk4
-rw-r--r--keyboards/kingly_keys/romac/keymaps/brandonschlack/keymap.c67
-rw-r--r--keyboards/kingly_keys/romac/keymaps/brandonschlack/rules.mk8
-rw-r--r--keyboards/kingly_keys/romac/keymaps/jarred/keymap.c37
-rw-r--r--keyboards/kingly_keys/romac/keymaps/stanrc85/config.h17
-rw-r--r--keyboards/kingly_keys/romac/keymaps/stanrc85/keymap.c78
-rw-r--r--keyboards/kingly_keys/romac/keymaps/stanrc85/rules.mk3
-rw-r--r--keyboards/kiwikey/wanderland/keymaps/stanrc85/config.h18
-rw-r--r--keyboards/kiwikey/wanderland/keymaps/stanrc85/keymap.c87
-rw-r--r--keyboards/kiwikey/wanderland/keymaps/stanrc85/rules.mk1
-rw-r--r--keyboards/knobgoblin/keymaps/moults31/keymap.c171
-rw-r--r--keyboards/knobgoblin/keymaps/moults31/readme.md3
-rw-r--r--keyboards/knobgoblin/keymaps/moults31/rules.mk3
-rw-r--r--keyboards/knops/mini/keymaps/mverteuil/config.h25
-rw-r--r--keyboards/knops/mini/keymaps/mverteuil/keymap.c306
-rw-r--r--keyboards/knops/mini/keymaps/mverteuil/readme.md1
-rw-r--r--keyboards/knops/mini/keymaps/mverteuil/rules.mk6
-rwxr-xr-xkeyboards/kprepublic/bm40hsrgb/keymaps/wolff_abnt2/config.h74
-rwxr-xr-xkeyboards/kprepublic/bm40hsrgb/keymaps/wolff_abnt2/rules.mk19
-rw-r--r--keyboards/kprepublic/bm40hsrgb/readme.md8
-rwxr-xr-xkeyboards/kprepublic/bm40hsrgb/rev1/config.h (renamed from keyboards/kprepublic/bm40hsrgb/config.h)0
-rw-r--r--keyboards/kprepublic/bm40hsrgb/rev1/info.json (renamed from keyboards/kprepublic/bm40hsrgb/info.json)0
-rwxr-xr-xkeyboards/kprepublic/bm40hsrgb/rev1/keymaps/default/keymap.c (renamed from keyboards/kprepublic/bm40hsrgb/keymaps/default/keymap.c)0
-rw-r--r--keyboards/kprepublic/bm40hsrgb/rev1/keymaps/default/readme.md (renamed from keyboards/kprepublic/bm40hsrgb/keymaps/default/readme.md)0
-rw-r--r--keyboards/kprepublic/bm40hsrgb/rev1/keymaps/gabustoledo/config.h (renamed from keyboards/kprepublic/bm40hsrgb/keymaps/gabustoledo/config.h)0
-rwxr-xr-xkeyboards/kprepublic/bm40hsrgb/rev1/keymaps/gabustoledo/keymap.c (renamed from keyboards/kprepublic/bm40hsrgb/keymaps/gabustoledo/keymap.c)0
-rw-r--r--keyboards/kprepublic/bm40hsrgb/rev1/keymaps/gabustoledo/readme.md (renamed from keyboards/kprepublic/bm40hsrgb/keymaps/gabustoledo/readme.md)0
-rw-r--r--keyboards/kprepublic/bm40hsrgb/rev1/keymaps/gabustoledo/rules.mk (renamed from keyboards/kprepublic/bm40hsrgb/keymaps/gabustoledo/rules.mk)0
-rw-r--r--keyboards/kprepublic/bm40hsrgb/rev1/keymaps/signynt/config.h (renamed from keyboards/kprepublic/bm40hsrgb/keymaps/signynt/config.h)0
-rw-r--r--keyboards/kprepublic/bm40hsrgb/rev1/keymaps/signynt/keymap.c (renamed from keyboards/kprepublic/bm40hsrgb/keymaps/signynt/keymap.c)0
-rw-r--r--keyboards/kprepublic/bm40hsrgb/rev1/keymaps/signynt/readme.md (renamed from keyboards/kprepublic/bm40hsrgb/keymaps/signynt/readme.md)0
-rw-r--r--keyboards/kprepublic/bm40hsrgb/rev1/keymaps/signynt/rules.mk (renamed from keyboards/kprepublic/bm40hsrgb/keymaps/signynt/rules.mk)0
-rw-r--r--keyboards/kprepublic/bm40hsrgb/rev1/keymaps/signynt_2_loud/config.h (renamed from keyboards/kprepublic/bm40hsrgb/keymaps/signynt_2_loud/config.h)0
-rw-r--r--keyboards/kprepublic/bm40hsrgb/rev1/keymaps/signynt_2_loud/keymap.c (renamed from keyboards/kprepublic/bm40hsrgb/keymaps/signynt_2_loud/keymap.c)0
-rw-r--r--keyboards/kprepublic/bm40hsrgb/rev1/keymaps/signynt_2_loud/readme.md (renamed from keyboards/kprepublic/bm40hsrgb/keymaps/signynt_2_loud/readme.md)0
-rw-r--r--keyboards/kprepublic/bm40hsrgb/rev1/keymaps/signynt_2_loud/rules.mk (renamed from keyboards/kprepublic/bm40hsrgb/keymaps/signynt_2_loud/rules.mk)0
-rw-r--r--keyboards/kprepublic/bm40hsrgb/rev1/keymaps/signynt_2_quiet/config.h (renamed from keyboards/kprepublic/bm40hsrgb/keymaps/signynt_2_quiet/config.h)0
-rw-r--r--keyboards/kprepublic/bm40hsrgb/rev1/keymaps/signynt_2_quiet/keymap.c (renamed from keyboards/kprepublic/bm40hsrgb/keymaps/signynt_2_quiet/keymap.c)0
-rw-r--r--keyboards/kprepublic/bm40hsrgb/rev1/keymaps/signynt_2_quiet/readme.md (renamed from keyboards/kprepublic/bm40hsrgb/keymaps/signynt_2_quiet/readme.md)0
-rw-r--r--keyboards/kprepublic/bm40hsrgb/rev1/keymaps/signynt_2_quiet/rules.mk (renamed from keyboards/kprepublic/bm40hsrgb/keymaps/signynt_2_quiet/rules.mk)0
-rw-r--r--keyboards/kprepublic/bm40hsrgb/rev1/keymaps/via/keymap.c (renamed from keyboards/kprepublic/bm40hsrgb/keymaps/via/keymap.c)0
-rw-r--r--keyboards/kprepublic/bm40hsrgb/rev1/keymaps/via/readme.md (renamed from keyboards/kprepublic/bm40hsrgb/keymaps/via/readme.md)0
-rw-r--r--keyboards/kprepublic/bm40hsrgb/rev1/keymaps/via/rules.mk (renamed from keyboards/durgod/k320/keymaps/moults31/rules.mk)0
-rwxr-xr-xkeyboards/kprepublic/bm40hsrgb/rev1/keymaps/wolff_abnt2/keymap.c (renamed from keyboards/kprepublic/bm40hsrgb/keymaps/wolff_abnt2/keymap.c)0
-rwxr-xr-xkeyboards/kprepublic/bm40hsrgb/rev1/keymaps/wolff_abnt2/readme.md (renamed from keyboards/kprepublic/bm40hsrgb/keymaps/wolff_abnt2/readme.md)0
-rw-r--r--keyboards/kprepublic/bm40hsrgb/rev1/readme.md21
-rwxr-xr-xkeyboards/kprepublic/bm40hsrgb/rev1/rev1.c (renamed from keyboards/kprepublic/bm40hsrgb/bm40hsrgb.c)0
-rwxr-xr-xkeyboards/kprepublic/bm40hsrgb/rev1/rules.mk (renamed from keyboards/kprepublic/bm40hsrgb/rules.mk)0
-rwxr-xr-xkeyboards/kprepublic/bm40hsrgb/rev2/config.h21
-rw-r--r--keyboards/kprepublic/bm40hsrgb/rev2/info.json197
-rwxr-xr-xkeyboards/kprepublic/bm40hsrgb/rev2/keymaps/default/keymap.c101
-rw-r--r--keyboards/kprepublic/bm40hsrgb/rev2/keymaps/default/rules.mk (renamed from keyboards/clickety_split/leeloo/keymaps/default/rules.mk)0
-rw-r--r--keyboards/kprepublic/bm40hsrgb/rev2/keymaps/via/keymap.c100
-rw-r--r--keyboards/kprepublic/bm40hsrgb/rev2/keymaps/via/rules.mk3
-rw-r--r--keyboards/kprepublic/bm40hsrgb/rev2/readme.md29
-rwxr-xr-xkeyboards/kprepublic/bm40hsrgb/rev2/rev2.c73
-rw-r--r--keyboards/kprepublic/bm40hsrgb/rev2/rules.mk (renamed from layouts/community/65_ansi/mechmerlin/rules.mk)0
-rw-r--r--keyboards/kprepublic/bm60hsrgb/rev2/config.h7
-rw-r--r--keyboards/kprepublic/bm60hsrgb/rev2/rev2.c20
-rw-r--r--keyboards/kprepublic/bm60hsrgb/rev2/rules.mk2
-rw-r--r--keyboards/kprepublic/bm60hsrgb_ec/rev2/config.h3
-rw-r--r--keyboards/kprepublic/bm60hsrgb_ec/rev2/rev2.c2
-rw-r--r--keyboards/kprepublic/bm60hsrgb_iso/rev2/config.h7
-rw-r--r--keyboards/kprepublic/bm60hsrgb_iso/rev2/rev2.c20
-rw-r--r--keyboards/kprepublic/bm60hsrgb_iso/rev2/rules.mk2
-rw-r--r--keyboards/kprepublic/bm60hsrgb_poker/rev2/config.h7
-rw-r--r--keyboards/kprepublic/bm60hsrgb_poker/rev2/rev2.c20
-rw-r--r--keyboards/kprepublic/bm60hsrgb_poker/rev2/rules.mk2
-rw-r--r--keyboards/kprepublic/bm68hsrgb/rev2/config.h3
-rw-r--r--keyboards/kprepublic/bm68hsrgb/rev2/rev2.c2
-rw-r--r--keyboards/kprepublic/bm80v2/bm80v2.c2
-rw-r--r--keyboards/kprepublic/bm80v2/config.h3
-rw-r--r--keyboards/kprepublic/bm80v2_iso/bm80v2_iso.c2
-rw-r--r--keyboards/kprepublic/bm80v2_iso/config.h3
-rw-r--r--keyboards/kprepublic/cstc40/config.h1
-rw-r--r--keyboards/kprepublic/jj40/keymaps/ajp10304/readme.md126
-rw-r--r--keyboards/ktec/ergodone/keymaps/art/.gitignore1
-rw-r--r--keyboards/ktec/ergodone/keymaps/art/keymap.c453
-rw-r--r--keyboards/ktec/ergodone/keymaps/art/rules.mk1
-rw-r--r--keyboards/ktec/ergodone/keymaps/art/user_config.c.example6
-rw-r--r--keyboards/ktec/ergodone/rules.mk2
-rw-r--r--keyboards/latincompass/latin17rgb/config.h12
-rw-r--r--keyboards/latincompass/latin17rgb/latin17rgb.c2
-rw-r--r--keyboards/latincompass/latin60rgb/config.h3
-rw-r--r--keyboards/latincompass/latin60rgb/latin60rgb.c2
-rw-r--r--keyboards/latincompass/latin6rgb/config.h10
-rw-r--r--keyboards/latincompass/latin6rgb/latin6rgb.c2
-rw-r--r--keyboards/lazydesigners/dimple/staggered/keymaps/tominabox1/keymap.c110
-rw-r--r--keyboards/lets_split/keymaps/hvp/config.h45
-rw-r--r--keyboards/lets_split/keymaps/hvp/keymap.c65
-rw-r--r--keyboards/lets_split/keymaps/hvp/readme.md10
-rw-r--r--keyboards/lets_split/keymaps/hvp/rules.mk2
-rw-r--r--keyboards/lets_split/keymaps/pdl/config.h31
-rw-r--r--keyboards/lets_split/keymaps/pdl/keymap.c69
-rw-r--r--keyboards/lets_split/keymaps/pdl/rules.mk1
-rw-r--r--keyboards/lets_split/keymaps/zer09/config.h51
-rw-r--r--keyboards/lets_split/keymaps/zer09/keymap.c76
-rw-r--r--keyboards/lets_split/keymaps/zer09/rules.mk3
-rw-r--r--keyboards/lfkeyboards/TWIlib.c296
-rw-r--r--keyboards/lfkeyboards/TWIlib.h71
-rw-r--r--keyboards/lfkeyboards/issi.c244
-rw-r--r--keyboards/lfkeyboards/issi.h39
-rw-r--r--keyboards/lfkeyboards/lfk65_hs/config.h2
-rw-r--r--keyboards/lfkeyboards/lfk65_hs/info.json22
-rw-r--r--keyboards/lfkeyboards/lfk65_hs/lfk65_hs.c5
-rw-r--r--keyboards/lfkeyboards/lfk65_hs/lfk65_hs.h3
-rw-r--r--keyboards/lfkeyboards/lfk65_hs/rules.mk2
-rw-r--r--keyboards/lfkeyboards/lfk78/config.h2
-rw-r--r--keyboards/lfkeyboards/lfk78/keymaps/ca178858/keymap.c19
-rw-r--r--keyboards/lfkeyboards/lfk78/keymaps/ca178858/rules.mk33
-rw-r--r--keyboards/lfkeyboards/lfk78/keymaps/default/keymap.c10
-rw-r--r--keyboards/lfkeyboards/lfk78/keymaps/iso/keymap.c10
-rw-r--r--keyboards/lfkeyboards/lfk78/keymaps/split_bs_osx/keymap.c10
-rw-r--r--keyboards/lfkeyboards/lfk78/lfk78.c113
-rw-r--r--keyboards/lfkeyboards/lfk78/lfk78.h15
-rw-r--r--keyboards/lfkeyboards/lfk78/post_rules.mk11
-rw-r--r--keyboards/lfkeyboards/lfk78/revb/info.json24
-rw-r--r--keyboards/lfkeyboards/lfk78/revb/revb.c19
-rw-r--r--keyboards/lfkeyboards/lfk78/revc/info.json24
-rw-r--r--keyboards/lfkeyboards/lfk78/revc/revc.c14
-rw-r--r--keyboards/lfkeyboards/lfk78/revj/info.json24
-rw-r--r--keyboards/lfkeyboards/lfk78/revj/revj.c14
-rw-r--r--keyboards/lfkeyboards/lfk78/rules.mk6
-rw-r--r--keyboards/lfkeyboards/lfk87/config.h2
-rw-r--r--keyboards/lfkeyboards/lfk87/info.json10
-rw-r--r--keyboards/lfkeyboards/lfk87/keymaps/ca178858/keymap.c11
-rw-r--r--keyboards/lfkeyboards/lfk87/keymaps/ca178858/rules.mk15
-rw-r--r--keyboards/lfkeyboards/lfk87/keymaps/default/keymap.c10
-rw-r--r--keyboards/lfkeyboards/lfk87/keymaps/default/rules.mk12
-rw-r--r--keyboards/lfkeyboards/lfk87/keymaps/gbchk/keymap.c10
-rw-r--r--keyboards/lfkeyboards/lfk87/keymaps/gbchk/rules.mk15
-rw-r--r--keyboards/lfkeyboards/lfk87/keymaps/iso/keymap.c10
-rw-r--r--keyboards/lfkeyboards/lfk87/keymaps/iso/rules.mk13
-rw-r--r--keyboards/lfkeyboards/lfk87/lfk87.c98
-rw-r--r--keyboards/lfkeyboards/lfk87/lfk87.h19
-rw-r--r--keyboards/lfkeyboards/lfk87/post_rules.mk4
-rw-r--r--keyboards/lfkeyboards/lfk87/reva/info.json16
-rw-r--r--keyboards/lfkeyboards/lfk87/reva/reva.c16
-rw-r--r--keyboards/lfkeyboards/lfk87/revc/info.json16
-rw-r--r--keyboards/lfkeyboards/lfk87/revc/revc.c17
-rw-r--r--keyboards/lfkeyboards/lfk87/rules.mk8
-rw-r--r--keyboards/lfkeyboards/lfkpad/info.json20
-rw-r--r--keyboards/lfkeyboards/lfkpad/keymaps/pascalpfeil/keymap.c15
-rw-r--r--keyboards/lfkeyboards/lfkpad/lfkpad.c52
-rw-r--r--keyboards/lfkeyboards/lfkpad/post_rules.mk4
-rw-r--r--keyboards/lfkeyboards/lfkpad/rules.mk7
-rw-r--r--keyboards/lfkeyboards/lighting.c158
-rw-r--r--keyboards/lfkeyboards/lighting.h49
-rw-r--r--keyboards/lfkeyboards/mini1800/config.h2
-rw-r--r--keyboards/lfkeyboards/mini1800/info.json24
-rw-r--r--keyboards/lfkeyboards/mini1800/keymaps/ca178858/keymap.c10
-rw-r--r--keyboards/lfkeyboards/mini1800/keymaps/default/keymap.c10
-rw-r--r--keyboards/lfkeyboards/mini1800/mini1800.c111
-rw-r--r--keyboards/lfkeyboards/mini1800/mini1800.h18
-rw-r--r--keyboards/lfkeyboards/mini1800/reva/post_rules.mk4
-rw-r--r--keyboards/lfkeyboards/mini1800/reva/rules.mk8
-rw-r--r--keyboards/lfkeyboards/mini1800/revc/post_rules.mk4
-rw-r--r--keyboards/lfkeyboards/mini1800/revc/rules.mk8
-rw-r--r--keyboards/lfkeyboards/smk65/keymaps/default/rules.mk8
-rw-r--r--keyboards/lfkeyboards/smk65/keymaps/iso/rules.mk8
-rw-r--r--keyboards/lfkeyboards/smk65/post_rules.mk4
-rw-r--r--keyboards/lfkeyboards/smk65/revb/config.h2
-rw-r--r--keyboards/lfkeyboards/smk65/revb/info.json23
-rw-r--r--keyboards/lfkeyboards/smk65/revb/revb.c37
-rw-r--r--keyboards/lfkeyboards/smk65/revb/revb.h17
-rw-r--r--keyboards/lfkeyboards/smk65/revb/rules.mk9
-rw-r--r--keyboards/lfkeyboards/smk65/revf/info.json4
-rw-r--r--keyboards/lfkeyboards/smk65/revf/rules.mk4
-rw-r--r--keyboards/lily58/keymaps/bcat/config.h21
-rw-r--r--keyboards/lily58/keymaps/bcat/keymap.c74
-rw-r--r--keyboards/lily58/keymaps/bcat/readme.md42
-rw-r--r--keyboards/lily58/keymaps/bcat/rules.mk3
-rw-r--r--keyboards/lily58/keymaps/curry/config.h21
-rw-r--r--keyboards/lily58/keymaps/curry/keymap.c77
-rw-r--r--keyboards/lily58/keymaps/curry/rules.mk16
-rw-r--r--keyboards/lily58/keymaps/hvp/config.h59
-rw-r--r--keyboards/lily58/keymaps/hvp/keymap.c124
-rw-r--r--keyboards/lily58/keymaps/hvp/readme.md10
-rw-r--r--keyboards/lily58/keymaps/hvp/rules.mk13
-rw-r--r--keyboards/lily58/keymaps/manna-harbour_miryoku/config.h22
-rw-r--r--keyboards/lily58/keymaps/manna-harbour_miryoku/keymap.c4
-rw-r--r--keyboards/lily58/keymaps/muppetjones/README.md13
-rw-r--r--keyboards/lily58/keymaps/muppetjones/config.h41
-rw-r--r--keyboards/lily58/keymaps/muppetjones/features/bongo_cat.c127
-rw-r--r--keyboards/lily58/keymaps/muppetjones/features/bongo_cat.h14
-rw-r--r--keyboards/lily58/keymaps/muppetjones/keymap.c240
-rw-r--r--keyboards/lily58/keymaps/muppetjones/rules.mk17
-rw-r--r--keyboards/lily58/keymaps/narze/config.h62
-rw-r--r--keyboards/lily58/keymaps/narze/keymap.c468
-rw-r--r--keyboards/lily58/keymaps/narze/readme.md13
-rw-r--r--keyboards/lily58/keymaps/narze/rules.mk13
-rw-r--r--keyboards/lily58/keymaps/ninjonas/README.md134
-rw-r--r--keyboards/lily58/keymaps/ninjonas/config.h32
-rw-r--r--keyboards/lily58/keymaps/ninjonas/keymap.c196
-rw-r--r--keyboards/lily58/keymaps/ninjonas/rules.mk2
-rw-r--r--keyboards/lime/keymaps/default/rules.mk2
-rw-r--r--keyboards/lime/rev1/config.h5
-rw-r--r--keyboards/lime/rev1/info.json5
-rw-r--r--keyboards/magic_force/mf17/config.h (renamed from keyboards/soda/mango/config.h)0
-rw-r--r--keyboards/magic_force/mf17/info.json124
-rwxr-xr-xkeyboards/magic_force/mf17/keymaps/default/keymap.c (renamed from keyboards/soda/mango/keymaps/default/keymap.c)0
-rwxr-xr-xkeyboards/magic_force/mf17/keymaps/via/keymap.c (renamed from keyboards/soda/mango/keymaps/via/keymap.c)0
-rw-r--r--keyboards/magic_force/mf17/keymaps/via/rules.mk (renamed from keyboards/keychron/q1/ansi/keymaps/via/rules.mk)0
-rw-r--r--keyboards/magic_force/mf17/readme.md22
-rw-r--r--keyboards/magic_force/mf17/rules.mk1
-rw-r--r--keyboards/magic_force/mf34/chconf.h (renamed from keyboards/soda/pocket/chconf.h)0
-rw-r--r--keyboards/magic_force/mf34/config.h (renamed from keyboards/soda/pocket/config.h)0
-rw-r--r--keyboards/magic_force/mf34/info.json78
-rwxr-xr-xkeyboards/magic_force/mf34/keymaps/default/keymap.c (renamed from keyboards/soda/pocket/keymaps/default/keymap.c)0
-rwxr-xr-xkeyboards/magic_force/mf34/keymaps/via/keymap.c (renamed from keyboards/soda/pocket/keymaps/via/keymap.c)0
-rw-r--r--keyboards/magic_force/mf34/keymaps/via/rules.mk (renamed from keyboards/keychron/q1/iso/keymaps/via/rules.mk)0
-rw-r--r--keyboards/magic_force/mf34/mcuconf.h (renamed from keyboards/soda/pocket/mcuconf.h)0
-rw-r--r--keyboards/magic_force/mf34/mf34.c (renamed from keyboards/soda/pocket/pocket.c)0
-rw-r--r--keyboards/magic_force/mf34/readme.md23
-rw-r--r--keyboards/magic_force/mf34/rules.mk (renamed from keyboards/soda/pocket/rules.mk)0
-rw-r--r--keyboards/manyboard/macro/keymaps/default/keymap.c6
-rw-r--r--keyboards/manyboard/macro/keymaps/via/keymap.c6
-rw-r--r--keyboards/maple_computing/c39/keymaps/kuchosauronad0/config.h34
-rw-r--r--keyboards/maple_computing/c39/keymaps/kuchosauronad0/keymap.c131
-rw-r--r--keyboards/maple_computing/c39/keymaps/kuchosauronad0/readme.md10
-rw-r--r--keyboards/maple_computing/c39/keymaps/kuchosauronad0/rules.mk20
-rw-r--r--keyboards/maple_computing/launchpad/keymaps/brandonschlack/config.h30
-rw-r--r--keyboards/maple_computing/launchpad/keymaps/brandonschlack/keymap.c213
-rw-r--r--keyboards/maple_computing/launchpad/keymaps/brandonschlack/readme.md31
-rw-r--r--keyboards/maple_computing/launchpad/keymaps/brandonschlack/rules.mk13
-rw-r--r--keyboards/maple_computing/launchpad/keymaps/drashna/config.h40
-rw-r--r--keyboards/maple_computing/launchpad/keymaps/drashna/keymap.c107
-rw-r--r--keyboards/maple_computing/launchpad/keymaps/drashna/rules.mk7
-rw-r--r--keyboards/maple_computing/lets_split_eh/keymaps/romus/README.md7
-rw-r--r--keyboards/maple_computing/lets_split_eh/keymaps/romus/keymap.c28
-rw-r--r--keyboards/maple_computing/lets_split_eh/keymaps/romus/rules.mk7
-rw-r--r--keyboards/massdrop/alt/keymaps/charlesrocket/config.h19
-rw-r--r--keyboards/massdrop/alt/keymaps/charlesrocket/keymap.c279
-rw-r--r--keyboards/massdrop/alt/keymaps/charlesrocket/rules.mk3
-rw-r--r--keyboards/massdrop/alt/keymaps/jdelkins/config.h23
-rw-r--r--keyboards/massdrop/alt/keymaps/jdelkins/keymap.c500
-rw-r--r--keyboards/massdrop/alt/keymaps/jdelkins/rgb_matrix.h94
-rw-r--r--keyboards/massdrop/alt/keymaps/jdelkins/rules.mk17
-rw-r--r--keyboards/massdrop/alt/keymaps/jdelkins_ss/config.h20
-rw-r--r--keyboards/massdrop/alt/keymaps/jdelkins_ss/keymap.c279
-rw-r--r--keyboards/massdrop/alt/keymaps/jdelkins_ss/rgb_matrix.h94
-rw-r--r--keyboards/massdrop/alt/keymaps/jdelkins_ss/rules.mk12
-rw-r--r--keyboards/massdrop/alt/keymaps/xulkal/config.h23
-rw-r--r--keyboards/massdrop/alt/keymaps/xulkal/keymap.c79
-rw-r--r--keyboards/massdrop/alt/keymaps/xulkal/rules.mk1
-rw-r--r--keyboards/massdrop/ctrl/keymaps/xulkal/config.h23
-rw-r--r--keyboards/massdrop/ctrl/keymaps/xulkal/keymap.c92
-rw-r--r--keyboards/massdrop/ctrl/keymaps/xulkal/rules.mk1
-rw-r--r--keyboards/matchstickworks/southpad/info.json48
-rw-r--r--keyboards/matchstickworks/southpad/keymaps/default/keymap.c27
-rw-r--r--keyboards/matchstickworks/southpad/readme.md23
-rw-r--r--keyboards/matchstickworks/southpad/rev1/info.json55
-rw-r--r--keyboards/matchstickworks/southpad/rev1/keymaps/default/keymap.c27
-rw-r--r--keyboards/matchstickworks/southpad/rev1/readme.md23
-rw-r--r--keyboards/matchstickworks/southpad/rev1/rules.mk (renamed from layouts/community/ortho_4x12/alfrdmalr/rules.mk)0
-rw-r--r--keyboards/matchstickworks/southpad/rev2/info.json55
-rw-r--r--keyboards/matchstickworks/southpad/rev2/keymaps/default/keymap.c25
-rw-r--r--keyboards/matchstickworks/southpad/rev2/keymaps/via/keymap.c26
-rw-r--r--keyboards/matchstickworks/southpad/rev2/keymaps/via/rules.mk (renamed from keyboards/keychron/v1/ansi/keymaps/vnmm/rules.mk)0
-rw-r--r--keyboards/matchstickworks/southpad/rev2/readme.md23
-rw-r--r--keyboards/matchstickworks/southpad/rev2/rules.mk (renamed from layouts/community/ortho_4x12/grahampheath/rules.mk)0
-rw-r--r--keyboards/matchstickworks/southpad/rules.mk12
-rw-r--r--keyboards/matrix/abelx/abelx.c9
-rw-r--r--keyboards/matrix/abelx/rules.mk2
-rw-r--r--keyboards/matrix/m20add/config.h5
-rw-r--r--keyboards/matrix/m20add/m20add.c8
-rw-r--r--keyboards/matrix/m20add/rgb_ring.c14
-rw-r--r--keyboards/matrix/m20add/rules.mk2
-rw-r--r--keyboards/matrix/noah/config.h5
-rw-r--r--keyboards/matrix/noah/noah.c4
-rw-r--r--keyboards/mechkeys/alu84/keymaps/turbomech/config.h20
-rw-r--r--keyboards/mechkeys/alu84/keymaps/turbomech/keymap.c88
-rw-r--r--keyboards/mechkeys/alu84/keymaps/turbomech/readme.md93
-rw-r--r--keyboards/mechkeys/alu84/keymaps/turbomech/rules.mk2
-rw-r--r--keyboards/mechkeys/mechmini/v2/keymaps/arkag/config.h23
-rw-r--r--keyboards/mechkeys/mechmini/v2/keymaps/arkag/keymap.c63
-rw-r--r--keyboards/mechkeys/mechmini/v2/keymaps/arkag/rules.mk14
-rw-r--r--keyboards/mechkeys/mechmini/v2/keymaps/spacebarracecar/config.h3
-rw-r--r--keyboards/mechkeys/mechmini/v2/keymaps/spacebarracecar/keymap.c139
-rw-r--r--keyboards/mechkeys/mechmini/v2/keymaps/spacebarracecar/readme.md5
-rw-r--r--keyboards/mechkeys/mechmini/v2/keymaps/spacebarracecar/rules.mk22
-rw-r--r--keyboards/mechlovin/adelais/keymaps/brandonschlack/config.h30
-rw-r--r--keyboards/mechlovin/adelais/keymaps/brandonschlack/keymap.c271
-rw-r--r--keyboards/mechlovin/adelais/keymaps/brandonschlack/readme.md1
-rw-r--r--keyboards/mechlovin/adelais/rgb_led/rev2/config.h12
-rw-r--r--keyboards/mechlovin/adelais/rgb_led/rev2/rev2.c2
-rw-r--r--keyboards/mechlovin/adelais/rgb_led/rev3/config.h12
-rw-r--r--keyboards/mechlovin/adelais/rgb_led/rev3/rev3.c2
-rw-r--r--keyboards/mechlovin/delphine/rgb_led/config.h11
-rw-r--r--keyboards/mechlovin/delphine/rgb_led/rgb_led.c2
-rw-r--r--keyboards/mechlovin/hannah60rgb/rev2/config.h13
-rw-r--r--keyboards/mechlovin/hannah60rgb/rev2/rev2.c2
-rw-r--r--keyboards/mechlovin/hex6c/config.h3
-rw-r--r--keyboards/mechlovin/hex6c/info.json5
-rw-r--r--keyboards/mechlovin/infinity87/rgb_rev1/config.h10
-rw-r--r--keyboards/mechlovin/infinity87/rgb_rev1/rgb_rev1.c2
-rw-r--r--keyboards/mechlovin/kanu/keymaps/dhertz/keymap.c62
-rw-r--r--keyboards/mechlovin/olly/octagon/config.h10
-rw-r--r--keyboards/mechlovin/olly/octagon/octagon.c2
-rw-r--r--keyboards/mechlovin/zed60/config.h2
-rw-r--r--keyboards/mechlovin/zed65/910/config.h2
-rw-r--r--keyboards/mechlovin/zed65/mono_led/config.h10
-rw-r--r--keyboards/mechlovin/zed65/mono_led/mono_led.c2
-rw-r--r--keyboards/mechlovin/zed65/no_backlight/wearhaus66/config.h2
-rw-r--r--keyboards/mechlovin/zed65/rev1/config.h2
-rw-r--r--keyboards/mechwild/bbs/config.h4
-rw-r--r--keyboards/mechwild/bbs/info.json3
-rw-r--r--keyboards/mechwild/bbs/keymaps/default/keymap.c1
-rw-r--r--keyboards/mechwild/bde/rev2/keymaps/miketronic/config.h10
-rw-r--r--keyboards/mechwild/bde/rev2/keymaps/miketronic/keymap.c221
-rw-r--r--keyboards/mechwild/bde/rev2/keymaps/miketronic/rules.mk12
-rw-r--r--keyboards/mechwild/clunker/config.h16
-rw-r--r--keyboards/mechwild/clunker/info.json654
-rw-r--r--keyboards/mechwild/clunker/keymaps/default/keymap.c8
-rw-r--r--keyboards/mechwild/clunker/keymaps/via/keymap.c8
-rw-r--r--keyboards/mechwild/mercutio/keymaps/jonavin/config.h29
-rwxr-xr-xkeyboards/mechwild/mercutio/keymaps/jonavin/keymap.c268
-rw-r--r--keyboards/mechwild/mercutio/keymaps/jonavin/readme.md62
-rw-r--r--keyboards/mechwild/mercutio/keymaps/jonavin/rules.mk8
-rw-r--r--keyboards/mechwild/mokulua/mirrored/config.h4
-rw-r--r--keyboards/mechwild/mokulua/mirrored/info.json10
-rw-r--r--keyboards/mechwild/mokulua/standard/config.h4
-rw-r--r--keyboards/mechwild/mokulua/standard/info.json10
-rw-r--r--keyboards/mechwild/murphpad/keymaps/jonavin/config.h26
-rw-r--r--keyboards/mechwild/murphpad/keymaps/jonavin/keymap.c424
-rw-r--r--keyboards/mechwild/murphpad/keymaps/jonavin/layout_landscape.h43
-rw-r--r--keyboards/mechwild/murphpad/keymaps/jonavin/readme.md76
-rw-r--r--keyboards/mechwild/murphpad/keymaps/jonavin/rules.mk5
-rw-r--r--keyboards/mechwild/obe/keymaps/jonavin/config.h39
-rw-r--r--keyboards/mechwild/obe/keymaps/jonavin/keymap.c119
-rw-r--r--keyboards/mechwild/obe/keymaps/jonavin/readme.md54
-rw-r--r--keyboards/mechwild/obe/keymaps/jonavin/rules.mk14
-rw-r--r--keyboards/mechwild/puckbuddy/config.h3
-rw-r--r--keyboards/mechwild/puckbuddy/info.json3
-rw-r--r--keyboards/mechwild/sugarglider/config.h5
-rw-r--r--keyboards/mechwild/sugarglider/info.json6
-rw-r--r--keyboards/mechwild/sugarglider/keymaps/default/keymap.c1
-rw-r--r--keyboards/mechwild/sugarglider/rules.mk2
-rwxr-xr-xkeyboards/melgeek/mach80/config.h3
-rwxr-xr-xkeyboards/melgeek/mach80/rev1/rev1.c8
-rwxr-xr-xkeyboards/melgeek/mach80/rev2/rev2.c8
-rw-r--r--keyboards/melgeek/mj61/config.h3
-rw-r--r--keyboards/melgeek/mj61/rev1/rev1.c2
-rw-r--r--keyboards/melgeek/mj61/rev2/rev2.c2
-rw-r--r--keyboards/melgeek/mj63/config.h3
-rw-r--r--keyboards/melgeek/mj63/rev1/rev1.c2
-rw-r--r--keyboards/melgeek/mj63/rev2/rev2.c2
-rw-r--r--keyboards/melgeek/mj64/config.h3
-rw-r--r--keyboards/melgeek/mj64/rev1/rev1.c2
-rw-r--r--keyboards/melgeek/mj64/rev2/rev2.c2
-rw-r--r--keyboards/melgeek/mj64/rev3/rev3.c2
-rw-r--r--keyboards/melgeek/mj65/config.h3
-rw-r--r--keyboards/melgeek/mj65/rev3/rev3.c2
-rwxr-xr-xkeyboards/melgeek/mojo68/config.h3
-rwxr-xr-xkeyboards/melgeek/mojo68/rev1/rev1.c8
-rw-r--r--keyboards/melgeek/mojo75/config.h3
-rw-r--r--keyboards/melgeek/mojo75/rev1/rev1.c2
-rwxr-xr-xkeyboards/melgeek/tegic/config.h3
-rwxr-xr-xkeyboards/melgeek/tegic/rev1/rev1.c2
-rw-r--r--keyboards/melgeek/z70ultra/config.h3
-rw-r--r--keyboards/melgeek/z70ultra/z70ultra.c8
-rw-r--r--keyboards/miiiw/blackio83/blackio83.c21
-rw-r--r--keyboards/miiiw/blackio83/info.json3
-rw-r--r--keyboards/miiiw/blackio83/rev_0100/config.h13
-rw-r--r--keyboards/miller/gm862/config.h3
-rw-r--r--keyboards/miller/gm862/gm862.c2
-rw-r--r--keyboards/miniaxe/keymaps/wanleg/config.h11
-rw-r--r--keyboards/miniaxe/keymaps/wanleg/keymap.c49
-rw-r--r--keyboards/miniaxe/keymaps/wanleg/rules.mk18
-rw-r--r--keyboards/minimacro5/keymaps/devdev/keymap.c124
-rw-r--r--keyboards/minimacro5/keymaps/devdev/rules.mk2
-rw-r--r--keyboards/misterknife/knife66/keymaps/zyber/keymap.c40
-rw-r--r--keyboards/mitosis/keymaps/datagrok/config.h57
-rw-r--r--keyboards/mitosis/keymaps/datagrok/keymap.c237
-rw-r--r--keyboards/mitosis/keymaps/datagrok/readme.md274
-rw-r--r--keyboards/mitosis/keymaps/datagrok/rules.mk34
-rw-r--r--keyboards/mitosis/rules.mk2
-rw-r--r--keyboards/mlego/m60_split/rev1/config.h4
-rw-r--r--keyboards/mlego/m60_split/rev1/info.json6
-rw-r--r--keyboards/mlego/m60_split/rev2/config.h4
-rw-r--r--keyboards/mlego/m60_split/rev2/info.json6
-rw-r--r--keyboards/mlego/m65/config.h21
-rw-r--r--keyboards/mlego/m65/info.json84
-rw-r--r--keyboards/mlego/m65/keymaps/default/config.h18
-rw-r--r--keyboards/mlego/m65/keymaps/default/keymap.c94
-rw-r--r--keyboards/mlego/m65/keymaps/default/rules.mk1
-rw-r--r--keyboards/mlego/m65/keymaps/dk/config.h20
-rw-r--r--keyboards/mlego/m65/keymaps/dk/keymap.c121
-rw-r--r--keyboards/mlego/m65/keymaps/dk/readme.md13
-rw-r--r--keyboards/mlego/m65/keymaps/uk/config.h27
-rw-r--r--keyboards/mlego/m65/keymaps/uk/keymap.c308
-rw-r--r--keyboards/mlego/m65/keymaps/uk/rules.mk1
-rw-r--r--keyboards/mlego/m65/keymaps/via/config.h20
-rw-r--r--keyboards/mlego/m65/keymaps/via/keymap.c118
-rw-r--r--keyboards/mlego/m65/lib/glcdfont.c233
-rw-r--r--keyboards/mlego/m65/m65.c249
-rw-r--r--keyboards/mlego/m65/m65.h165
-rw-r--r--keyboards/mlego/m65/readme.md2
-rw-r--r--keyboards/mlego/m65/rev1/config.h21
-rw-r--r--keyboards/mlego/m65/rev1/info.json130
-rw-r--r--keyboards/mlego/m65/rev1/mcuconf.h22
-rw-r--r--keyboards/mlego/m65/rev1/rules.mk14
-rw-r--r--keyboards/mlego/m65/rev2/board.h17
-rw-r--r--keyboards/mlego/m65/rev2/config.h21
-rw-r--r--keyboards/mlego/m65/rev2/info.json129
-rw-r--r--keyboards/mlego/m65/rev2/mcuconf.h22
-rw-r--r--keyboards/mlego/m65/rev2/rules.mk14
-rw-r--r--keyboards/mlego/m65/rev3/config.h21
-rw-r--r--keyboards/mlego/m65/rev3/halconf.h22
-rw-r--r--keyboards/mlego/m65/rev3/info.json131
-rw-r--r--keyboards/mlego/m65/rev3/mcuconf.h22
-rw-r--r--keyboards/mlego/m65/rev3/rules.mk14
-rw-r--r--keyboards/mlego/m65/rev4/config.h30
-rw-r--r--keyboards/mlego/m65/rev4/halconf.h22
-rw-r--r--keyboards/mlego/m65/rev4/info.json133
-rw-r--r--keyboards/mlego/m65/rev4/mcuconf.h22
-rw-r--r--keyboards/mlego/m65/rev4/rules.mk15
-rw-r--r--keyboards/mode/m65ha_alpha/info.json3
-rw-r--r--keyboards/mode/m65ha_alpha/rules.mk2
-rw-r--r--keyboards/mode/m65hi_alpha/info.json3
-rw-r--r--keyboards/mode/m65hi_alpha/rules.mk2
-rw-r--r--keyboards/mode/m65s/info.json3
-rw-r--r--keyboards/mode/m65s/rules.mk2
-rw-r--r--keyboards/mode/m75h/config.h21
-rw-r--r--keyboards/mode/m75h/info.json5
-rw-r--r--keyboards/mode/m75s/config.h3
-rw-r--r--keyboards/mode/m75s/info.json5
-rwxr-xr-xkeyboards/molecule/rules.mk2
-rw-r--r--keyboards/monsgeek/m1/config.h9
-rw-r--r--keyboards/monsgeek/m1/info.json12
-rw-r--r--keyboards/monsgeek/m1/m1.c4
-rw-r--r--keyboards/monsgeek/m1/rules.mk7
-rw-r--r--keyboards/monsgeek/m3/config.h6
-rw-r--r--keyboards/monsgeek/m3/info.json9
-rw-r--r--keyboards/monsgeek/m3/m3.c2
-rw-r--r--keyboards/monsgeek/m3/rules.mk3
-rw-r--r--keyboards/monsgeek/m5/config.h9
-rw-r--r--keyboards/monsgeek/m5/info.json12
-rw-r--r--keyboards/monsgeek/m5/m5.c4
-rw-r--r--keyboards/monsgeek/m5/rules.mk3
-rw-r--r--keyboards/monsgeek/m6/config.h9
-rw-r--r--keyboards/monsgeek/m6/info.json12
-rw-r--r--keyboards/monsgeek/m6/m6.c4
-rw-r--r--keyboards/monsgeek/m6/rules.mk3
-rw-r--r--keyboards/montsinger/rebound/rev1/keymaps/curry/config.h7
-rw-r--r--keyboards/montsinger/rebound/rev1/keymaps/curry/keymap.c71
-rw-r--r--keyboards/montsinger/rebound/rev1/keymaps/curry/rules.mk1
-rw-r--r--keyboards/montsinger/rebound/rev2/keymaps/rossman360/keymap.c57
-rw-r--r--keyboards/montsinger/rebound/rev3/keymaps/rossman360/keymap.c113
-rw-r--r--keyboards/montsinger/rebound/rev3/keymaps/rossman360/rules.mk4
-rw-r--r--keyboards/montsinger/rebound/rev4/keymaps/ericgebhart/keymap.c18
-rw-r--r--keyboards/montsinger/rebound/rev4/keymaps/ericgebhart/readme.md5
-rw-r--r--keyboards/montsinger/rebound/rev4/keymaps/ericgebhart/rules.mk18
-rw-r--r--keyboards/montsinger/rebound/rev4/keymaps/rossman360/keymap.c122
-rw-r--r--keyboards/montsinger/rebound/rev4/keymaps/rossman360/rules.mk4
-rw-r--r--keyboards/montsinger/rewind/keymaps/rossman360/keymap.c56
-rw-r--r--keyboards/moon/rules.mk2
-rw-r--r--keyboards/moonlander/config.h9
-rw-r--r--keyboards/moonlander/info.json11
-rw-r--r--keyboards/moonlander/keymaps/default/keymap.c6
-rw-r--r--keyboards/moonlander/keymaps/drashna/config.h27
-rw-r--r--keyboards/moonlander/keymaps/drashna/keymap.c198
-rw-r--r--keyboards/moonlander/keymaps/drashna/rules.mk8
-rw-r--r--keyboards/moonlander/keymaps/jjerrell/config.h26
-rw-r--r--keyboards/moonlander/keymaps/jjerrell/keymap.c117
-rw-r--r--keyboards/moonlander/keymaps/jjerrell/readme.md3
-rw-r--r--keyboards/moonlander/keymaps/jjerrell/rules.mk1
-rw-r--r--keyboards/moonlander/keymaps/manna-harbour_miryoku/config.h23
-rw-r--r--keyboards/moonlander/keymaps/manna-harbour_miryoku/keymap.c4
-rw-r--r--keyboards/moonlander/keymaps/via/keymap.c16
-rw-r--r--keyboards/moonlander/moonlander.c2
-rw-r--r--keyboards/moonlander/rules.mk3
-rw-r--r--keyboards/mt/mt64rgb/config.h3
-rw-r--r--keyboards/mt/mt64rgb/mt64rgb.c2
-rw-r--r--keyboards/mt/mt84/config.h7
-rw-r--r--keyboards/mt/mt84/mt84.c2
-rw-r--r--keyboards/mt/split75/keymaps/art/.gitignore1
-rw-r--r--keyboards/mt/split75/keymaps/art/config.h19
-rw-r--r--keyboards/mt/split75/keymaps/art/keymap.c263
-rw-r--r--keyboards/mt/split75/keymaps/art/rules.mk3
-rw-r--r--keyboards/mt/split75/keymaps/art/user_config.c.example6
-rw-r--r--keyboards/mt/split75/rules.mk2
-rw-r--r--keyboards/mwstudio/mw65_rgb/keymaps/horrortroll/config.h36
-rw-r--r--keyboards/mwstudio/mw65_rgb/keymaps/horrortroll/keymap.c103
-rw-r--r--keyboards/mwstudio/mw65_rgb/keymaps/horrortroll/keymap_stuff.h323
-rw-r--r--keyboards/mwstudio/mw65_rgb/keymaps/horrortroll/led/cool_diagonal.c22
-rw-r--r--keyboards/mwstudio/mw65_rgb/keymaps/horrortroll/led/custom_gradient.c74
-rw-r--r--keyboards/mwstudio/mw65_rgb/keymaps/horrortroll/led/diagonal.c22
-rw-r--r--keyboards/mwstudio/mw65_rgb/keymaps/horrortroll/led/kitt.c68
-rw-r--r--keyboards/mwstudio/mw65_rgb/keymaps/horrortroll/led/rainbow_reactive_simple/rainbow_reactive_simple.c25
-rw-r--r--keyboards/mwstudio/mw65_rgb/keymaps/horrortroll/led/rainbow_reactive_simple/rainbow_reactive_simple.h45
-rw-r--r--keyboards/mwstudio/mw65_rgb/keymaps/horrortroll/led/random_breath_rainbow.c55
-rw-r--r--keyboards/mwstudio/mw65_rgb/keymaps/horrortroll/readme.md11
-rw-r--r--keyboards/mwstudio/mw65_rgb/keymaps/horrortroll/rgb_matrix_user.inc17
-rw-r--r--keyboards/mwstudio/mw65_rgb/keymaps/horrortroll/rules.mk6
-rw-r--r--keyboards/mxss/config.h3
-rw-r--r--keyboards/mxss/info.json9
-rw-r--r--keyboards/mxss/keymaps/default/keymap.c17
-rw-r--r--keyboards/mxss/keymaps/via/keymap.c3
-rw-r--r--keyboards/mxss/mxss.c73
-rw-r--r--keyboards/mxss/mxss_frontled.c278
-rw-r--r--keyboards/mxss/mxss_frontled.h87
-rw-r--r--keyboards/mxss/readme.md34
-rw-r--r--keyboards/mxss/rgblight.c1392
-rw-r--r--keyboards/mxss/rules.mk23
-rw-r--r--keyboards/mxss/templates/keymap.c35
-rw-r--r--keyboards/nack/config.h2
-rw-r--r--keyboards/nacly/splitreus62/keymaps/scheiklp/config.h53
-rw-r--r--keyboards/nacly/splitreus62/keymaps/scheiklp/keymap.c56
-rw-r--r--keyboards/nacly/splitreus62/keymaps/scheiklp/rules.mk9
-rwxr-xr-xkeyboards/neopad/rev1/rev1.c6
-rw-r--r--keyboards/neson_design/700e/700e.c51
-rw-r--r--keyboards/neson_design/700e/config.h7
-rw-r--r--keyboards/neson_design/700e/rules.mk3
-rw-r--r--keyboards/neson_design/n6/config.h7
-rw-r--r--keyboards/neson_design/n6/n6.c41
-rw-r--r--keyboards/neson_design/n6/rules.mk3
-rw-r--r--keyboards/neson_design/nico/nico.c4
-rw-r--r--keyboards/nightmare/keymaps/brandonschlack/keymap.c195
-rw-r--r--keyboards/nightmare/keymaps/brandonschlack/readme.md20
-rw-r--r--keyboards/nopunin10did/kastenwagen48/keymaps/jonavin/config.h31
-rw-r--r--keyboards/nopunin10did/kastenwagen48/keymaps/jonavin/keymap.c67
-rw-r--r--keyboards/nopunin10did/kastenwagen48/keymaps/jonavin/readme.md54
-rw-r--r--keyboards/nopunin10did/kastenwagen48/keymaps/jonavin/rules.mk11
-rw-r--r--keyboards/novelkeys/nk1/config.h21
-rwxr-xr-xkeyboards/novelkeys/nk65/config.h5
-rwxr-xr-xkeyboards/novelkeys/nk65/nk65.c140
-rwxr-xr-xkeyboards/novelkeys/nk65/rules.mk4
-rwxr-xr-xkeyboards/novelkeys/nk87/config.h5
-rwxr-xr-xkeyboards/novelkeys/nk87/nk87.c140
-rwxr-xr-xkeyboards/novelkeys/nk87/rules.mk4
-rwxr-xr-xkeyboards/novelkeys/nk_plus/info.json1
-rw-r--r--keyboards/novelkeys/nk_plus/rules.mk5
-rw-r--r--keyboards/nullbitsco/nibble/rules.mk2
-rw-r--r--keyboards/nullbitsco/snap/config.h3
-rw-r--r--keyboards/nullbitsco/snap/info.json5
-rw-r--r--keyboards/nullbitsco/snap/rules.mk4
-rw-r--r--keyboards/nullbitsco/tidbit/rules.mk4
-rw-r--r--keyboards/oddforge/vea/rules.mk2
-rw-r--r--keyboards/oddforge/vea/ws2812_custom.c6
-rw-r--r--keyboards/omkbd/ergodash/rev1/keymaps/333fred/config.h28
-rw-r--r--keyboards/omkbd/ergodash/rev1/keymaps/333fred/keymap.c79
-rw-r--r--keyboards/omkbd/ergodash/rev1/keymaps/333fred/rules.mk5
-rw-r--r--keyboards/omkbd/ergodash/rev1/keymaps/yet-another-developer/config.h62
-rw-r--r--keyboards/omkbd/ergodash/rev1/keymaps/yet-another-developer/keymap.c157
-rw-r--r--keyboards/omkbd/ergodash/rev1/keymaps/yet-another-developer/rules.mk23
-rw-r--r--keyboards/omkbd/ergodash/rev1/rev1.c32
-rw-r--r--keyboards/onekeyco/dango40/config.h21
-rw-r--r--keyboards/onekeyco/dango40/info.json3
-rw-r--r--keyboards/opendeck/32/rev1/config.h3
-rw-r--r--keyboards/opendeck/32/rev1/rev1.c2
-rw-r--r--keyboards/org60/keymaps/jarred/keymap.c25
-rw-r--r--keyboards/orthodox/keymaps/drashna/README.md24
-rw-r--r--keyboards/orthodox/keymaps/drashna/config.h80
-rw-r--r--keyboards/orthodox/keymaps/drashna/keymap.c70
-rw-r--r--keyboards/orthodox/keymaps/drashna/rules.mk16
-rw-r--r--keyboards/orthodox/keymaps/pdl/config.h29
-rw-r--r--keyboards/orthodox/keymaps/pdl/keymap.c68
-rw-r--r--keyboards/orthodox/keymaps/pdl/rules.mk1
-rw-r--r--keyboards/owlab/voice65/hotswap/config.h3
-rw-r--r--keyboards/owlab/voice65/hotswap/hotswap.c2
-rw-r--r--keyboards/owlab/voice65/soldered/config.h3
-rw-r--r--keyboards/owlab/voice65/soldered/soldered.c2
-rw-r--r--keyboards/pearlboards/pandora/config.h2
-rw-r--r--keyboards/pearlboards/pandora/info.json3
-rw-r--r--keyboards/percent/canoe/keymaps/dhertz/keymap.c62
-rw-r--r--keyboards/phage_studio/pila87/keymaps/horrortroll/keymap.c115
-rw-r--r--keyboards/phage_studio/pila87/rules.mk4
-rw-r--r--keyboards/phentech/rpk_001/config.h2
-rw-r--r--keyboards/phentech/rpk_001/info.json7
-rw-r--r--keyboards/phentech/rpk_001/rules.mk2
-rw-r--r--keyboards/phoenix/config.h1
-rw-r--r--keyboards/phoenix/halconf.h2
-rw-r--r--keyboards/pinky/3/keymaps/ninjonas/README.md113
-rw-r--r--keyboards/pinky/3/keymaps/ninjonas/config.h29
-rw-r--r--keyboards/pinky/3/keymaps/ninjonas/keymap.c111
-rw-r--r--keyboards/pinky/3/keymaps/ninjonas/rules.mk2
-rw-r--r--keyboards/planck/ez/config.h3
-rw-r--r--keyboards/planck/ez/ez.c2
-rw-r--r--keyboards/planck/keymaps/ajp10304/readme.md126
-rw-r--r--keyboards/planck/keymaps/altgr/common/init.h26
-rw-r--r--keyboards/planck/keymaps/altgr/keymap.c3
-rw-r--r--keyboards/planck/keymaps/badger/keymap.c60
-rw-r--r--keyboards/planck/keymaps/bghull/keymap.c1
-rw-r--r--keyboards/planck/keymaps/charlesrocket/config.h35
-rw-r--r--keyboards/planck/keymaps/charlesrocket/keymap.c205
-rw-r--r--keyboards/planck/keymaps/charlesrocket/readme.md55
-rw-r--r--keyboards/planck/keymaps/charlesrocket/rules.mk8
-rw-r--r--keyboards/planck/keymaps/circuit/keymap.c38
-rw-r--r--keyboards/planck/keymaps/csc027/config.h21
-rw-r--r--keyboards/planck/keymaps/csc027/keymap.c79
-rw-r--r--keyboards/planck/keymaps/csc027/rules.mk8
-rw-r--r--keyboards/planck/keymaps/dbroqua/keymap.c38
-rw-r--r--keyboards/planck/keymaps/dcompact/keymap.c1
-rw-r--r--keyboards/planck/keymaps/dr_notsokind/keymap.c42
-rw-r--r--keyboards/planck/keymaps/dshields/config.h4
-rw-r--r--keyboards/planck/keymaps/dshields/keymap.c30
-rw-r--r--keyboards/planck/keymaps/dshields/readme.md12
-rw-r--r--keyboards/planck/keymaps/dudeofawesome/config.h41
-rw-r--r--keyboards/planck/keymaps/dudeofawesome/keymap.c233
-rw-r--r--keyboards/planck/keymaps/dudeofawesome/readme.md22
-rw-r--r--keyboards/planck/keymaps/dudeofawesome/rules.mk7
-rw-r--r--keyboards/planck/keymaps/emilyh/keymap.c38
-rw-r--r--keyboards/planck/keymaps/experimental/keymap.c38
-rw-r--r--keyboards/planck/keymaps/gunp/keymap.c23
-rw-r--r--keyboards/planck/keymaps/handwired_binaryplease/keymap.c37
-rw-r--r--keyboards/planck/keymaps/hiea/common/init.h26
-rw-r--r--keyboards/planck/keymaps/hiea/keymap.c3
-rw-r--r--keyboards/planck/keymaps/hieax/common/init.h25
-rw-r--r--keyboards/planck/keymaps/hieax/keymap.c3
-rw-r--r--keyboards/planck/keymaps/hvp/config.h35
-rw-r--r--keyboards/planck/keymaps/hvp/keymap.c186
-rw-r--r--keyboards/planck/keymaps/hvp/readme.md10
-rw-r--r--keyboards/planck/keymaps/hvp/rules.mk4
-rw-r--r--keyboards/planck/keymaps/impossible/keymap.c40
-rwxr-xr-xkeyboards/planck/keymaps/ishtob/config.h34
-rw-r--r--keyboards/planck/keymaps/ishtob/keymap.c344
-rw-r--r--keyboards/planck/keymaps/ishtob/readme.md16
-rw-r--r--keyboards/planck/keymaps/ishtob/rules.mk18
-rw-r--r--keyboards/planck/keymaps/jdelkins/config.h61
-rw-r--r--keyboards/planck/keymaps/jdelkins/keymap.c506
-rw-r--r--keyboards/planck/keymaps/jdelkins/readme.md13
-rw-r--r--keyboards/planck/keymaps/jdelkins/rules.mk4
-rw-r--r--keyboards/planck/keymaps/jhenahan/keymap.c38
-rw-r--r--keyboards/planck/keymaps/kuatsure/config.h33
-rw-r--r--keyboards/planck/keymaps/kuatsure/keymap.c318
-rw-r--r--keyboards/planck/keymaps/kuatsure/readme.md1
-rw-r--r--keyboards/planck/keymaps/kuatsure/rules.mk6
-rw-r--r--keyboards/planck/keymaps/lae3/keymap.c46
-rw-r--r--keyboards/planck/keymaps/mattly/config.h39
-rw-r--r--keyboards/planck/keymaps/mattly/keymap.c34
-rw-r--r--keyboards/planck/keymaps/mattly/readme.md1
-rw-r--r--keyboards/planck/keymaps/mattly/rules.mk2
-rw-r--r--keyboards/planck/keymaps/mjt/keymap.c38
-rw-r--r--keyboards/planck/keymaps/mjtnumsym/keymap.c38
-rw-r--r--keyboards/planck/keymaps/mnil/config.h23
-rw-r--r--keyboards/planck/keymaps/mnil/keymap.c60
-rw-r--r--keyboards/planck/keymaps/mnil/readme.md2
-rw-r--r--keyboards/planck/keymaps/muppetjones/.clang-format26
-rw-r--r--keyboards/planck/keymaps/muppetjones/config.h53
-rw-r--r--keyboards/planck/keymaps/muppetjones/keymap.c403
-rw-r--r--keyboards/planck/keymaps/muppetjones/readme.md2
-rw-r--r--keyboards/planck/keymaps/muppetjones/rules.mk5
-rw-r--r--keyboards/planck/keymaps/narze/config.h43
-rw-r--r--keyboards/planck/keymaps/narze/keymap.c367
-rw-r--r--keyboards/planck/keymaps/narze/readme.md17
-rw-r--r--keyboards/planck/keymaps/narze/rules.mk25
-rw-r--r--keyboards/planck/keymaps/not-quite-neo/config.h6
-rw-r--r--keyboards/planck/keymaps/not-quite-neo/keymap.c129
-rw-r--r--keyboards/planck/keymaps/not-quite-neo/readme.md5
-rw-r--r--keyboards/planck/keymaps/not-quite-neo/rules.mk24
-rw-r--r--keyboards/planck/keymaps/originerd/keymap.c38
-rw-r--r--keyboards/planck/keymaps/peterfalken/config.h49
-rw-r--r--keyboards/planck/keymaps/peterfalken/keymap.c80
-rw-r--r--keyboards/planck/keymaps/peterfalken/readme.md14
-rw-r--r--keyboards/planck/keymaps/peterfalken/rules.mk8
-rw-r--r--keyboards/planck/keymaps/premek/keymap.c38
-rw-r--r--keyboards/planck/keymaps/prog_qgmlwb/.gitignore3
-rw-r--r--keyboards/planck/keymaps/prog_qgmlwb/config.h12
-rw-r--r--keyboards/planck/keymaps/prog_qgmlwb/keymap.c4
-rw-r--r--keyboards/planck/keymaps/prog_qgmlwb/readme.md82
-rw-r--r--keyboards/planck/keymaps/prog_qgmlwb/rules.mk6
-rw-r--r--keyboards/planck/keymaps/prog_qgmlwb/src/enums.h23
-rw-r--r--keyboards/planck/keymaps/prog_qgmlwb/src/layouts.c25
-rw-r--r--keyboards/planck/keymaps/prog_qgmlwb/src/layouts.h27
-rw-r--r--keyboards/planck/keymaps/prog_qgmlwb/src/normal.h96
-rw-r--r--keyboards/planck/keymaps/prog_qgmlwb/src/qgmlwb.h63
-rw-r--r--keyboards/planck/keymaps/prog_qgmlwb/src/special.h43
-rw-r--r--keyboards/planck/keymaps/roguepullrequest/keymap.c13
-rw-r--r--keyboards/planck/keymaps/sascha/rules.mk1
-rw-r--r--keyboards/planck/keymaps/sdothum/common/init.h26
-rw-r--r--keyboards/planck/keymaps/sdothum/keymap.c3
-rw-r--r--keyboards/planck/keymaps/sgoodwin/keymap.c38
-rw-r--r--keyboards/planck/keymaps/sigul/config.h36
-rw-r--r--keyboards/planck/keymaps/sigul/keymap.c222
-rw-r--r--keyboards/planck/keymaps/sigul/readme.md32
-rw-r--r--keyboards/planck/keymaps/sigul/rules.mk1
-rw-r--r--keyboards/planck/keymaps/smt/keymap.c38
-rw-r--r--keyboards/planck/keymaps/spacebarracecar/config.h5
-rw-r--r--keyboards/planck/keymaps/spacebarracecar/keymap.c160
-rw-r--r--keyboards/planck/keymaps/spacebarracecar/readme.md5
-rw-r--r--keyboards/planck/keymaps/spacebarracecar/rules.mk22
-rw-r--r--keyboards/planck/keymaps/steno/keymap.c1
-rw-r--r--keyboards/planck/keymaps/that_canadian/keymap.c38
-rw-r--r--keyboards/planck/keymaps/vaire/keymap.c68
-rw-r--r--keyboards/planck/keymaps/yttyx/keymap.c1
-rw-r--r--keyboards/planck/keymaps/zach/zach_common_functions.c30
-rw-r--r--keyboards/planck/light/config.h12
-rw-r--r--keyboards/planck/light/light.c2
-rw-r--r--keyboards/planck/rev6/config.h2
-rw-r--r--keyboards/planck/rev6/info.json3
-rw-r--r--keyboards/planck/rev6_drop/config.h3
-rw-r--r--keyboards/planck/rev6_drop/info.json3
-rw-r--r--keyboards/planck/rev7/config.h3
-rw-r--r--keyboards/planck/rev7/info.json3
-rw-r--r--keyboards/planck/rev7/keymaps/peterfalken/config.h49
-rw-r--r--keyboards/planck/rev7/keymaps/peterfalken/keymap.c80
-rw-r--r--keyboards/planck/rev7/keymaps/peterfalken/readme.md14
-rw-r--r--keyboards/planck/rev7/keymaps/peterfalken/rules.mk4
-rw-r--r--keyboards/planck/thk/config.h2
-rw-r--r--keyboards/planck/thk/info.json3
-rw-r--r--keyboards/playkbtw/ca66/keymaps/zyber/keymap.c21
-rw-r--r--keyboards/playkbtw/ca66/keymaps/zyber/rules.mk1
-rw-r--r--keyboards/playkbtw/pk64rgb/config.h3
-rw-r--r--keyboards/playkbtw/pk64rgb/pk64rgb.c2
-rw-r--r--keyboards/ploopyco/mouse/keymaps/drashna/config.h31
-rw-r--r--keyboards/ploopyco/mouse/keymaps/drashna/keymap.c48
-rw-r--r--keyboards/ploopyco/mouse/keymaps/drashna/rules.mk6
-rw-r--r--keyboards/ploopyco/mouse/keymaps/uqs/keymap.c36
-rw-r--r--keyboards/ploopyco/mouse/keymaps/uqs/rules.mk1
-rw-r--r--keyboards/ploopyco/mouse/rules.mk3
-rw-r--r--keyboards/ploopyco/trackball/rules.mk3
-rw-r--r--keyboards/ploopyco/trackball_mini/rules.mk3
-rw-r--r--keyboards/ploopyco/trackball_thumb/rules.mk3
-rw-r--r--keyboards/pluckey/keymaps/manna-harbour_miryoku/config.h22
-rw-r--r--keyboards/pluckey/keymaps/manna-harbour_miryoku/keymap.c4
-rw-r--r--keyboards/plywrks/ply8x/config.h2
-rw-r--r--keyboards/preonic/keymaps/0xdec/keymap.c27
-rw-r--r--keyboards/preonic/keymaps/arkag/config.h30
-rw-r--r--keyboards/preonic/keymaps/arkag/keymap.c84
-rw-r--r--keyboards/preonic/keymaps/arkag/readme.md1
-rw-r--r--keyboards/preonic/keymaps/arkag/rules.mk17
-rw-r--r--keyboards/preonic/keymaps/badger/keymap.c74
-rw-r--r--keyboards/preonic/keymaps/badger/readme.md21
-rw-r--r--keyboards/preonic/keymaps/bghull/keymap.c1
-rw-r--r--keyboards/preonic/keymaps/bucktooth/keymap.c44
-rw-r--r--keyboards/preonic/keymaps/dudeofawesome/config.h43
-rw-r--r--keyboards/preonic/keymaps/dudeofawesome/keymap.c292
-rw-r--r--keyboards/preonic/keymaps/dudeofawesome/readme.md22
-rw-r--r--keyboards/preonic/keymaps/dudeofawesome/rules.mk5
-rw-r--r--keyboards/preonic/keymaps/jacwib/keymap.c46
-rw-r--r--keyboards/preonic/keymaps/kuatsure/config.h39
-rw-r--r--keyboards/preonic/keymaps/kuatsure/keymap.c190
-rw-r--r--keyboards/preonic/keymaps/kuatsure/readme.md1
-rw-r--r--keyboards/preonic/keymaps/kuatsure/rules.mk2
-rw-r--r--keyboards/preonic/keymaps/mguterl/config.h34
-rw-r--r--keyboards/preonic/keymaps/mguterl/keymap.c325
-rw-r--r--keyboards/preonic/keymaps/mguterl/readme.md18
-rw-r--r--keyboards/preonic/keymaps/mguterl/rules.mk1
-rw-r--r--keyboards/preonic/keymaps/mverteuil/config.h36
-rw-r--r--keyboards/preonic/keymaps/mverteuil/keymap.c510
-rw-r--r--keyboards/preonic/keymaps/mverteuil/readme.md2
-rw-r--r--keyboards/preonic/keymaps/mverteuil/rules.mk5
-rw-r--r--keyboards/preonic/keymaps/mverteuil_2x2u/config.h36
-rw-r--r--keyboards/preonic/keymaps/mverteuil_2x2u/keymap.c415
-rw-r--r--keyboards/preonic/keymaps/mverteuil_2x2u/rules.mk6
-rw-r--r--keyboards/preonic/keymaps/nikchi/keymap.c44
-rw-r--r--keyboards/preonic/keymaps/peterfalken/config.h49
-rw-r--r--keyboards/preonic/keymaps/peterfalken/keymap.c92
-rw-r--r--keyboards/preonic/keymaps/peterfalken/readme.md14
-rw-r--r--keyboards/preonic/keymaps/peterfalken/rules.mk8
-rw-r--r--keyboards/preonic/keymaps/rmeli/config.h45
-rw-r--r--keyboards/preonic/keymaps/rmeli/keymap.c231
-rw-r--r--keyboards/preonic/keymaps/rmeli/readme.md1
-rw-r--r--keyboards/preonic/keymaps/rmeli/rules.mk12
-rw-r--r--keyboards/preonic/keymaps/smt/keymap.c44
-rw-r--r--keyboards/preonic/keymaps/that_canadian/keymap.c44
-rw-r--r--keyboards/preonic/keymaps/uqs/keymap.c117
-rw-r--r--keyboards/preonic/keymaps/uqs/rules.mk14
-rw-r--r--keyboards/preonic/keymaps/xulkal/keymap.c150
-rw-r--r--keyboards/preonic/keymaps/xulkal/rules.mk6
-rw-r--r--keyboards/preonic/keymaps/zach/zach_common_functions.c28
-rw-r--r--keyboards/preonic/rev3/config.h2
-rw-r--r--keyboards/preonic/rev3/info.json3
-rw-r--r--keyboards/preonic/rev3_drop/config.h2
-rw-r--r--keyboards/preonic/rev3_drop/info.json3
-rw-r--r--keyboards/primekb/meridian/config.h2
-rw-r--r--keyboards/primekb/meridian/ws2812/config.h2
-rw-r--r--keyboards/primekb/prime_e/config.h2
-rw-r--r--keyboards/primekb/prime_e/info.json3
-rw-r--r--keyboards/primekb/prime_e/keymaps/brandonschlack/config.h30
-rw-r--r--keyboards/primekb/prime_e/keymaps/brandonschlack/keymap.c95
-rw-r--r--keyboards/primekb/prime_e/keymaps/brandonschlack/rules.mk2
-rw-r--r--keyboards/primekb/prime_e/keymaps/talljoe/config.h33
-rw-r--r--keyboards/primekb/prime_e/keymaps/talljoe/keymap.c1
-rw-r--r--keyboards/primekb/prime_o/keymaps/spacebarracecar/config.h1
-rw-r--r--keyboards/primekb/prime_o/keymaps/spacebarracecar/keymap.c172
-rw-r--r--keyboards/primekb/prime_o/keymaps/spacebarracecar/readme.md6
-rw-r--r--keyboards/primekb/prime_o/keymaps/spacebarracecar/rules.mk22
-rw-r--r--keyboards/projectd/65/projectd_65_ansi/config.h8
-rw-r--r--keyboards/projectd/65/projectd_65_ansi/info.json9
-rw-r--r--keyboards/projectd/65/projectd_65_ansi/projectd_65_ansi.c4
-rw-r--r--keyboards/projectd/65/projectd_65_ansi/rules.mk3
-rw-r--r--keyboards/projectd/75/ansi/config.h2
-rw-r--r--keyboards/projectd/75/ansi/info.json10
-rw-r--r--keyboards/projectd/75/ansi/rules.mk2
-rw-r--r--keyboards/projectkb/alice/keymaps/stanrc85/keymap.c58
-rw-r--r--keyboards/projectkb/alice/rev1/config.h2
-rw-r--r--keyboards/projectkb/alice/rev2/config.h2
-rw-r--r--keyboards/prototypist/j01/keymaps/zyber/keymap.c40
-rw-r--r--keyboards/pteron36/config.h3
-rw-r--r--keyboards/pteron36/info.json3
-rw-r--r--keyboards/qvex/lynepad2/config.h2
-rw-r--r--keyboards/qvex/lynepad2/info.json3
-rw-r--r--keyboards/qwertykeys/qk100/ansi/config.h1
-rw-r--r--keyboards/rart/rartlice/config.h2
-rw-r--r--keyboards/redox_w/keymaps/danielo515/config.h5
-rw-r--r--keyboards/redox_w/keymaps/danielo515/keymap.c178
-rw-r--r--keyboards/redox_w/keymaps/danielo515/readme.md2
-rw-r--r--keyboards/redox_w/keymaps/danielo515/rules.mk6
-rw-r--r--keyboards/redox_w/keymaps/manna-harbour_miryoku/config.h22
-rw-r--r--keyboards/redox_w/keymaps/manna-harbour_miryoku/keymap.c4
-rw-r--r--keyboards/redox_w/rules.mk2
-rw-r--r--keyboards/redragon/k667/config.h5
-rw-r--r--keyboards/redragon/k667/k667.c2
-rw-r--r--keyboards/rgbkb/mun/config.h6
-rw-r--r--keyboards/rgbkb/mun/keymaps/default/config.h2
-rw-r--r--keyboards/rgbkb/mun/keymaps/via/config.h2
-rw-r--r--keyboards/rgbkb/mun/rev1/info.json14
-rw-r--r--keyboards/rgbkb/mun/rules.mk2
-rw-r--r--keyboards/rgbkb/pan/pan.c2
-rw-r--r--keyboards/rgbkb/sol/keymaps/kageurufu/keymap.c98
-rw-r--r--keyboards/rgbkb/sol/keymaps/kageurufu/rules.mk19
-rw-r--r--keyboards/rgbkb/sol/keymaps/xulkal/config.h33
-rw-r--r--keyboards/rgbkb/sol/keymaps/xulkal/keymap.c78
-rw-r--r--keyboards/rgbkb/sol/keymaps/xulkal/rules.mk24
-rw-r--r--keyboards/rgbkb/sol3/config.h10
-rw-r--r--keyboards/rgbkb/sol3/keymaps/default/config.h3
-rw-r--r--keyboards/rgbkb/sol3/keymaps/kageurufu/config.h30
-rw-r--r--keyboards/rgbkb/sol3/keymaps/kageurufu/keymap.c69
-rw-r--r--keyboards/rgbkb/sol3/keymaps/via/config.h3
-rw-r--r--keyboards/rgbkb/sol3/rev1/info.json20
-rw-r--r--keyboards/rgbkb/sol3/rules.mk2
-rw-r--r--keyboards/rgbkb/zen/rev1/keymaps/333fred/config.h47
-rw-r--r--keyboards/rgbkb/zen/rev1/keymaps/333fred/keymap.c145
-rw-r--r--keyboards/rgbkb/zen/rev1/keymaps/333fred/rules.mk4
-rw-r--r--keyboards/rgbkb/zen/rev1/keymaps/cwebster2/config.h20
-rw-r--r--keyboards/rgbkb/zen/rev1/keymaps/cwebster2/keymap.c116
-rw-r--r--keyboards/rgbkb/zen/rev1/keymaps/cwebster2/rules.mk2
-rw-r--r--keyboards/rgbkb/zen/rev1/keymaps/kageurufu/keymap.c62
-rw-r--r--keyboards/rgbkb/zygomorph/keymaps/kageurufu/config.h24
-rw-r--r--keyboards/rgbkb/zygomorph/keymaps/kageurufu/keymap.c85
-rw-r--r--keyboards/rgbkb/zygomorph/keymaps/kageurufu/readme.md132
-rw-r--r--keyboards/rgbkb/zygomorph/keymaps/kageurufu/rules.mk39
-rw-r--r--keyboards/rgbkb/zygomorph/keymaps/xulkal/keymap.c69
-rw-r--r--keyboards/rgbkb/zygomorph/keymaps/xulkal/rules.mk42
-rw-r--r--keyboards/riot_pad/config.h2
-rw-r--r--keyboards/salicylic_acid3/naked48/keymaps/scheiklp/config.h9
-rw-r--r--keyboards/salicylic_acid3/naked48/keymaps/scheiklp/keymap.c68
-rw-r--r--keyboards/salicylic_acid3/naked48/keymaps/scheiklp/readme.md37
-rw-r--r--keyboards/salicylic_acid3/naked48/keymaps/scheiklp/rules.mk5
-rw-r--r--keyboards/salicylic_acid3/naked60/keymaps/333fred/config.h24
-rw-r--r--keyboards/salicylic_acid3/naked60/keymaps/333fred/keymap.c75
-rw-r--r--keyboards/satt/comet46/rules.mk2
-rw-r--r--keyboards/satt/vision/keymaps/manna-harbour_miryoku/config.h21
-rw-r--r--keyboards/satt/vision/keymaps/manna-harbour_miryoku/keymap.c4
-rw-r--r--keyboards/sawnsprojects/okayu/stm32f072/config.h2
-rw-r--r--keyboards/sawnsprojects/okayu/stm32f103/config.h2
-rw-r--r--keyboards/sawnsprojects/okayu/stm32f303/config.h2
-rw-r--r--keyboards/scottokeebs/scotto34/keymaps/scotto/config.h23
-rw-r--r--keyboards/scottokeebs/scotto34/keymaps/scotto/keymap.c246
-rw-r--r--keyboards/scottokeebs/scotto34/keymaps/scotto/rules.mk1
-rw-r--r--keyboards/sekigon/grs_70ec/rules.mk4
-rw-r--r--keyboards/shapeshifter4060/keymaps/vosechu/keymap.c53
-rw-r--r--keyboards/shapeshifter4060/keymaps/vosechu/readme.md82
-rw-r--r--keyboards/sirius/uni660/rev1/config.h2
-rw-r--r--keyboards/sirius/uni660/rev1/rules.mk2
-rw-r--r--keyboards/sirius/uni660/rev2/ansi/config.h2
-rw-r--r--keyboards/sirius/uni660/rev2/iso/config.h2
-rw-r--r--keyboards/sirius/uni660/rev2/rules.mk2
-rw-r--r--keyboards/skyloong/gk61/pro/config.h19
-rw-r--r--keyboards/skyloong/gk61/pro/halconf.h7
-rw-r--r--keyboards/skyloong/gk61/pro/info.json338
-rw-r--r--keyboards/skyloong/gk61/pro/keymaps/default/keymap.c44
-rw-r--r--keyboards/skyloong/gk61/pro/keymaps/default/rules.mk1
-rw-r--r--keyboards/skyloong/gk61/pro/keymaps/via/keymap.c67
-rw-r--r--keyboards/skyloong/gk61/pro/keymaps/via/rules.mk (renamed from keyboards/keychron/v3/ansi_encoder/keymaps/vnmm/rules.mk)0
-rw-r--r--keyboards/skyloong/gk61/pro/mcuconf.h11
-rw-r--r--keyboards/skyloong/gk61/pro/pro.c235
-rw-r--r--keyboards/skyloong/gk61/pro/readme.md33
-rw-r--r--keyboards/skyloong/gk61/pro/rules.mk1
-rw-r--r--keyboards/skyloong/gk61/pro_48/config.h16
-rw-r--r--keyboards/skyloong/gk61/pro_48/halconf.h7
-rw-r--r--keyboards/skyloong/gk61/pro_48/info.json338
-rw-r--r--keyboards/skyloong/gk61/pro_48/keymaps/default/keymap.c44
-rw-r--r--keyboards/skyloong/gk61/pro_48/keymaps/default/rules.mk1
-rw-r--r--keyboards/skyloong/gk61/pro_48/keymaps/via/keymap.c68
-rw-r--r--keyboards/skyloong/gk61/pro_48/keymaps/via/rules.mk (renamed from keyboards/rgbkb/sol3/keymaps/kageurufu/rules.mk)0
-rw-r--r--keyboards/skyloong/gk61/pro_48/mcuconf.h11
-rw-r--r--keyboards/skyloong/gk61/pro_48/pro_48.c227
-rw-r--r--keyboards/skyloong/gk61/pro_48/readme.md33
-rw-r--r--keyboards/skyloong/gk61/pro_48/rules.mk1
-rw-r--r--keyboards/skyloong/gk61/v1/config.h25
-rw-r--r--keyboards/skyloong/gk61/v1/halconf.h21
-rw-r--r--keyboards/skyloong/gk61/v1/info.json331
-rw-r--r--keyboards/skyloong/gk61/v1/keymaps/default/keymap.c47
-rw-r--r--keyboards/skyloong/gk61/v1/keymaps/via/keymap.c47
-rw-r--r--keyboards/skyloong/gk61/v1/keymaps/via/rules.mk (renamed from keyboards/keychron/v2/ansi/keymaps/vnmm/rules.mk)0
-rw-r--r--keyboards/skyloong/gk61/v1/mcuconf.h21
-rw-r--r--keyboards/skyloong/gk61/v1/readme.md33
-rw-r--r--keyboards/skyloong/gk61/v1/rules.mk1
-rw-r--r--keyboards/skyloong/gk61/v1/v1.c119
-rw-r--r--keyboards/skyloong/qk21/v1/config.h12
-rw-r--r--keyboards/skyloong/qk21/v1/info.json129
-rw-r--r--keyboards/skyloong/qk21/v1/keymaps/default/keymap.c54
-rw-r--r--keyboards/skyloong/qk21/v1/keymaps/via/keymap.c54
-rw-r--r--keyboards/skyloong/qk21/v1/keymaps/via/rules.mk (renamed from keyboards/mlego/m65/keymaps/via/rules.mk)0
-rw-r--r--keyboards/skyloong/qk21/v1/readme.md27
-rw-r--r--keyboards/skyloong/qk21/v1/rules.mk1
-rw-r--r--keyboards/skyloong/qk21/v1/v1.c49
-rw-r--r--keyboards/smallkeyboard/config.h10
-rw-r--r--keyboards/smallkeyboard/smallkeyboard.c2
-rw-r--r--keyboards/smithrune/iron165r2/f411/info.json3
-rw-r--r--keyboards/smithrune/iron165r2/f411/rules.mk2
-rw-r--r--keyboards/snes_macropad/snes_macropad.c14
-rw-r--r--keyboards/soda/mango/info.json124
-rw-r--r--keyboards/soda/mango/readme.md23
-rw-r--r--keyboards/soda/pocket/info.json78
-rw-r--r--keyboards/soda/pocket/keymaps/via/rules.mk1
-rw-r--r--keyboards/soda/pocket/readme.md23
-rwxr-xr-xkeyboards/sofle/keyhive/config.h4
-rw-r--r--keyboards/sofle/keyhive/info.json7
-rw-r--r--keyboards/sofle/keymaps/devdev/config.h128
-rw-r--r--keyboards/sofle/keymaps/devdev/keymap.c573
-rw-r--r--keyboards/sofle/keymaps/devdev/rules.mk7
-rw-r--r--keyboards/sofle/keymaps/manna-harbour_miryoku/config.h22
-rw-r--r--keyboards/sofle/keymaps/manna-harbour_miryoku/keymap.c4
-rwxr-xr-xkeyboards/spaceholdings/nebula12/config.h6
-rwxr-xr-xkeyboards/spaceholdings/nebula12/nebula12.c31
-rwxr-xr-xkeyboards/spaceholdings/nebula12/rules.mk2
-rwxr-xr-xkeyboards/spaceholdings/nebula68/config.h5
-rwxr-xr-xkeyboards/spaceholdings/nebula68/nebula68.c144
-rwxr-xr-xkeyboards/spaceholdings/nebula68/rules.mk2
-rw-r--r--keyboards/spiderisland/split78/rules.mk2
-rw-r--r--keyboards/spleeb/config.h4
-rw-r--r--keyboards/spleeb/info.json7
-rw-r--r--keyboards/splitkb/aurora/corne/rev1/info.json1
-rw-r--r--keyboards/splitkb/aurora/helix/rev1/info.json1
-rw-r--r--keyboards/splitkb/aurora/lily58/rev1/info.json1
-rw-r--r--keyboards/splitkb/aurora/sofle_v2/rev1/info.json1
-rw-r--r--keyboards/splitkb/aurora/sweep/keymaps/flinguenheld/rules.mk1
-rw-r--r--keyboards/splitkb/aurora/sweep/rev1/info.json1
-rw-r--r--keyboards/splitkb/kyria/keymaps/cameronjlarsen/config.h47
-rw-r--r--keyboards/splitkb/kyria/keymaps/cameronjlarsen/keymap.c357
-rw-r--r--keyboards/splitkb/kyria/keymaps/cameronjlarsen/readme.md249
-rw-r--r--keyboards/splitkb/kyria/keymaps/cameronjlarsen/rules.mk12
-rw-r--r--keyboards/splitkb/kyria/keymaps/cjuniet/config.h46
-rw-r--r--keyboards/splitkb/kyria/keymaps/cjuniet/default.json33
-rw-r--r--keyboards/splitkb/kyria/keymaps/cjuniet/keymap.c121
-rw-r--r--keyboards/splitkb/kyria/keymaps/cjuniet/rules.mk6
-rw-r--r--keyboards/splitkb/kyria/keymaps/cwebster2/config.h48
-rw-r--r--keyboards/splitkb/kyria/keymaps/cwebster2/keymap.c411
-rw-r--r--keyboards/splitkb/kyria/keymaps/cwebster2/rules.mk5
-rw-r--r--keyboards/splitkb/kyria/keymaps/drashna/chconf.h24
-rw-r--r--keyboards/splitkb/kyria/keymaps/drashna/config.h90
-rw-r--r--keyboards/splitkb/kyria/keymaps/drashna/halconf.h24
-rw-r--r--keyboards/splitkb/kyria/keymaps/drashna/keymap.c229
-rw-r--r--keyboards/splitkb/kyria/keymaps/drashna/mcuconf.h35
-rw-r--r--keyboards/splitkb/kyria/keymaps/drashna/rules.mk40
-rwxr-xr-xkeyboards/splitkb/kyria/keymaps/ericgebhart/config.h25
-rw-r--r--keyboards/splitkb/kyria/keymaps/ericgebhart/keymap.c18
-rw-r--r--keyboards/splitkb/kyria/keymaps/ericgebhart/rules.mk3
-rw-r--r--keyboards/splitkb/kyria/keymaps/gotham/rules.mk2
-rw-r--r--keyboards/splitkb/kyria/keymaps/manna-harbour_miryoku/config.h36
-rw-r--r--keyboards/splitkb/kyria/keymaps/manna-harbour_miryoku/keymap.c4
-rw-r--r--keyboards/splitkb/kyria/keymaps/muppetjones/.clang-format26
-rw-r--r--keyboards/splitkb/kyria/keymaps/muppetjones/README.md11
-rw-r--r--keyboards/splitkb/kyria/keymaps/muppetjones/config.h57
-rw-r--r--keyboards/splitkb/kyria/keymaps/muppetjones/keymap.c276
-rw-r--r--keyboards/splitkb/kyria/keymaps/muppetjones/rules.mk11
-rw-r--r--keyboards/splitkb/kyria/keymaps/ninjonas/README.md113
-rw-r--r--keyboards/splitkb/kyria/keymaps/ninjonas/config.h37
-rw-r--r--keyboards/splitkb/kyria/keymaps/ninjonas/keymap.c118
-rw-r--r--keyboards/splitkb/kyria/keymaps/ninjonas/oled.c210
-rw-r--r--keyboards/splitkb/kyria/keymaps/ninjonas/rules.mk6
-rw-r--r--keyboards/splitkb/kyria/keymaps/rmw/config.h43
-rw-r--r--keyboards/splitkb/kyria/keymaps/rmw/keymap.c160
-rw-r--r--keyboards/splitkb/kyria/keymaps/rmw/readme.md9
-rw-r--r--keyboards/splitkb/kyria/keymaps/rmw/rules.mk4
-rw-r--r--keyboards/splitkb/kyria/keymaps/uqs/config.h12
-rw-r--r--keyboards/splitkb/kyria/keymaps/uqs/keymap.c153
-rw-r--r--keyboards/splitkb/kyria/keymaps/uqs/rules.mk1
-rw-r--r--keyboards/splitkb/kyria/keymaps/zigotica/config.h43
-rw-r--r--keyboards/splitkb/kyria/keymaps/zigotica/keymap.c58
-rw-r--r--keyboards/splitkb/kyria/keymaps/zigotica/oled.c87
-rw-r--r--keyboards/splitkb/kyria/keymaps/zigotica/oled.h18
-rw-r--r--keyboards/splitkb/kyria/keymaps/zigotica/rules.mk10
-rw-r--r--keyboards/splitkb/kyria/rev3/info.json1
-rw-r--r--keyboards/splitkb/zima/keymaps/drashna/config.h37
-rw-r--r--keyboards/splitkb/zima/keymaps/drashna/keymap.c145
-rw-r--r--keyboards/splitkb/zima/keymaps/drashna/rules.mk3
-rw-r--r--keyboards/splitography/keymaps/default/keymap.c1
-rw-r--r--keyboards/splitography/keymaps/default_with_ctl_shft_alt_switched/keymap.c1
-rw-r--r--keyboards/splitography/keymaps/dvorak/keymap.c1
-rw-r--r--keyboards/splitography/keymaps/jeandeaual/keymap.c1
-rw-r--r--keyboards/splitography/keymaps/multi/keymap.c1
-rw-r--r--keyboards/sporewoh/banime40/config.h20
-rw-r--r--keyboards/sporewoh/banime40/info.json3
-rw-r--r--keyboards/stenokeyboards/the_uni/keymaps/default/keymap.c1
-rw-r--r--keyboards/stenokeyboards/the_uni/keymaps/utility_belt/keymap.c1
-rw-r--r--keyboards/stront/config.h2
-rw-r--r--keyboards/stront/info.json9
-rw-r--r--keyboards/stront/rules.mk1
-rw-r--r--keyboards/studiokestra/line_friends_tkl/config.h (renamed from keyboards/studiokestra/line_tkl/config.h)0
-rw-r--r--keyboards/studiokestra/line_friends_tkl/info.json216
-rw-r--r--keyboards/studiokestra/line_friends_tkl/keymaps/default/keymap.c (renamed from keyboards/studiokestra/line_tkl/keymaps/default/keymap.c)0
-rw-r--r--keyboards/studiokestra/line_friends_tkl/keymaps/split_bs_rshift/keymap.c (renamed from keyboards/studiokestra/line_tkl/keymaps/split_bs_rshift/keymap.c)0
-rw-r--r--keyboards/studiokestra/line_friends_tkl/keymaps/via/keymap.c (renamed from keyboards/studiokestra/line_tkl/keymaps/via/keymap.c)0
-rw-r--r--keyboards/studiokestra/line_friends_tkl/keymaps/via/rules.mk (renamed from keyboards/soda/mango/keymaps/via/rules.mk)0
-rw-r--r--keyboards/studiokestra/line_friends_tkl/readme.md27
-rw-r--r--keyboards/studiokestra/line_friends_tkl/rules.mk1
-rw-r--r--keyboards/studiokestra/line_tkl/info.json216
-rw-r--r--keyboards/studiokestra/line_tkl/keymaps/via/rules.mk1
-rw-r--r--keyboards/studiokestra/line_tkl/readme.md27
-rw-r--r--keyboards/swiftrax/retropad/config.h21
-rw-r--r--keyboards/switchplate/southpaw_65/rules.mk2
-rwxr-xr-xkeyboards/sx60/rules.mk2
-rw-r--r--keyboards/system76/launch_1/keymaps/peterfalken/config.h43
-rw-r--r--keyboards/system76/launch_1/keymaps/peterfalken/keymap.c90
-rw-r--r--keyboards/system76/launch_1/keymaps/peterfalken/readme.md14
-rw-r--r--keyboards/system76/launch_1/rules.mk2
-rw-r--r--keyboards/tada68/keymaps/jarred/keymap.c39
-rw-r--r--keyboards/tada68/keymaps/jarred/readme.md9
-rw-r--r--keyboards/tada68/keymaps/jarred/rules.mk2
-rw-r--r--keyboards/tada68/keymaps/rupa/config.h3
-rwxr-xr-xkeyboards/tada68/keymaps/rupa/keymap.c38
-rwxr-xr-xkeyboards/tada68/keymaps/rupa/readme.md19
-rw-r--r--keyboards/tada68/keymaps/rupa/rules.mk3
-rw-r--r--keyboards/takashicompany/minizone/keymaps/manna-harbour_miryoku/config.h40
-rw-r--r--keyboards/takashicompany/minizone/keymaps/manna-harbour_miryoku/keymap.c4
-rw-r--r--keyboards/takashicompany/minizone/keymaps/manna-harbour_miryoku/rules.mk4
-rw-r--r--keyboards/tau4/config.h9
-rw-r--r--keyboards/teleport/native/ansi/keymaps/default/keymap.c6
-rw-r--r--keyboards/teleport/native/ansi/keymaps/perfmode/keymap.c6
-rw-r--r--keyboards/teleport/native/ansi/keymaps/via/keymap.c6
-rw-r--r--keyboards/teleport/native/config.h12
-rw-r--r--keyboards/teleport/native/iso/keymaps/default/keymap.c6
-rw-r--r--keyboards/teleport/native/iso/keymaps/perfmode/keymap.c6
-rw-r--r--keyboards/teleport/native/iso/keymaps/via/keymap.c6
-rw-r--r--keyboards/teleport/native/native.c2
-rw-r--r--keyboards/telophase/rules.mk2
-rw-r--r--keyboards/terrazzo/config.h3
-rw-r--r--keyboards/terrazzo/terrazzo.c2
-rwxr-xr-xkeyboards/tetris/keymaps/default/keymap.c34
-rw-r--r--keyboards/the_royal/liminal/keymaps/brandonschlack/keymap.c115
-rw-r--r--keyboards/thevankeyboards/bananasplit/keymaps/talljoe/config.h33
-rw-r--r--keyboards/thevankeyboards/bananasplit/keymaps/talljoe/keymap.c1
-rw-r--r--keyboards/thevankeyboards/minivan/keymaps/dcompact/keymap.c1
-rw-r--r--keyboards/thevankeyboards/minivan/keymaps/halvves/keymap.c28
-rw-r--r--keyboards/thevankeyboards/minivan/keymaps/hvp/config.h4
-rw-r--r--keyboards/thevankeyboards/minivan/keymaps/hvp/keymap.c54
-rw-r--r--keyboards/thevankeyboards/minivan/keymaps/hvp/readme.md10
-rw-r--r--keyboards/thevankeyboards/minivan/keymaps/hvp/rules.mk2
-rw-r--r--keyboards/thevankeyboards/minivan/keymaps/jetpacktuxedo/keymap.c8
-rw-r--r--keyboards/thevankeyboards/minivan/keymaps/josjoha/keymap.c20
-rw-r--r--keyboards/thevankeyboards/minivan/keymaps/talljoe-minivan/config.h65
-rw-r--r--keyboards/thevankeyboards/minivan/keymaps/talljoe-minivan/keymap.c1
-rw-r--r--keyboards/thevankeyboards/minivan/keymaps/talljoe-minivan/rules.mk3
-rw-r--r--keyboards/thevankeyboards/minivan/keymaps/tominabox1/keymap.c74
-rw-r--r--keyboards/tkc/osav2/keymaps/brandonschlack/config.h30
-rwxr-xr-xkeyboards/tkc/osav2/keymaps/brandonschlack/keymap.c243
-rwxr-xr-xkeyboards/tkc/osav2/keymaps/brandonschlack/rules.mk9
-rw-r--r--keyboards/tkc/osav2/keymaps/stanrc85/keymap.c58
-rw-r--r--keyboards/tkc/portico/config.h10
-rw-r--r--keyboards/tkc/portico/portico.c10
-rw-r--r--keyboards/tkc/portico/rules.mk2
-rw-r--r--keyboards/tkc/portico68v2/config.h3
-rw-r--r--keyboards/tkc/portico68v2/portico68v2.c2
-rw-r--r--keyboards/tkc/portico75/config.h7
-rw-r--r--keyboards/tkc/portico75/keymaps/via/rules.mk2
-rw-r--r--keyboards/tkc/portico75/portico75.c12
-rw-r--r--keyboards/tkc/tkc1800/keymaps/yanfali/keymap.c90
-rw-r--r--keyboards/tkc/tkc1800/keymaps/yanfali/rules.mk1
-rw-r--r--keyboards/tkw/grandiceps/rev2/info.json3
-rw-r--r--keyboards/tkw/grandiceps/rev2/rules.mk2
-rw-r--r--keyboards/tmo50/keymaps/talljoe/config.h33
-rw-r--r--keyboards/tmo50/keymaps/talljoe/keymap.c44
-rw-r--r--keyboards/tominabox1/le_chiffre/keymaps/default/keymap.c145
-rw-r--r--keyboards/tominabox1/le_chiffre/keymaps/via/keymap.c106
-rw-r--r--keyboards/tominabox1/le_chiffre/le_chiffre.c123
-rw-r--r--keyboards/tominabox1/le_chiffre/le_chiffre.h17
-rw-r--r--keyboards/tominabox1/le_chiffre/post_config.h14
-rw-r--r--keyboards/torn/keymaps/manna-harbour_miryoku/config.h19
-rw-r--r--keyboards/torn/keymaps/manna-harbour_miryoku/keymap.c4
-rw-r--r--keyboards/torn/rules.mk2
-rw-r--r--keyboards/touchpad/rules.mk3
-rw-r--r--keyboards/tweetydabird/lotus58/config.h3
-rw-r--r--keyboards/tweetydabird/lotus58/info.json9
-rw-r--r--keyboards/tzarc/djinn/config.h6
-rw-r--r--keyboards/tzarc/djinn/info.json14
-rw-r--r--keyboards/tzarc/djinn/rev1/config.h3
-rw-r--r--keyboards/tzarc/djinn/rev2/config.h3
-rw-r--r--keyboards/tzarc/djinn/rules.mk2
-rw-r--r--keyboards/tzarc/ghoul/config.h3
-rw-r--r--keyboards/tzarc/ghoul/info.json3
-rw-r--r--keyboards/tzarc/ghoul/rules.mk3
-rw-r--r--keyboards/ungodly/launch_pad/rules.mk2
-rw-r--r--keyboards/unikeyboard/divergetm2/keymaps/xtonhasvim/config.h23
-rw-r--r--keyboards/unikeyboard/divergetm2/keymaps/xtonhasvim/keymap.c155
-rw-r--r--keyboards/unikeyboard/divergetm2/keymaps/xtonhasvim/readme.md9
-rw-r--r--keyboards/unikeyboard/divergetm2/keymaps/xtonhasvim/rules.mk3
-rw-r--r--keyboards/v4n4g0rth0n/v2/rules.mk3
-rw-r--r--keyboards/v60_type_r/keymaps/xtonhasvim/config.h24
-rw-r--r--keyboards/v60_type_r/keymaps/xtonhasvim/keymap.c195
-rw-r--r--keyboards/v60_type_r/keymaps/xtonhasvim/readme.md20
-rw-r--r--keyboards/v60_type_r/keymaps/xtonhasvim/rules.mk5
-rw-r--r--keyboards/vertex/angle65/config.h2
-rw-r--r--keyboards/vertex/arc60/config.h2
-rw-r--r--keyboards/vertex/arc60h/config.h2
-rw-r--r--keyboards/viendi8l/info.json3
-rw-r--r--keyboards/viendi8l/rules.mk3
-rw-r--r--keyboards/viktus/minne_topre/rules.mk3
-rw-r--r--keyboards/viktus/osav2_numpad_topre/rules.mk3
-rw-r--r--keyboards/viktus/osav2_topre/rules.mk3
-rw-r--r--keyboards/viktus/sp111/rules.mk2
-rw-r--r--keyboards/viktus/styrka_topre/rules.mk3
-rw-r--r--keyboards/vinhcatba/uncertainty/config.h6
-rw-r--r--keyboards/vinhcatba/uncertainty/info.json3
-rw-r--r--keyboards/vinhcatba/uncertainty/rules.mk2
-rw-r--r--keyboards/walletburner/neuron/keymaps/brandonschlack/keymap.c132
-rw-r--r--keyboards/waterfowl/config.h3
-rw-r--r--keyboards/waterfowl/info.json8
-rw-r--r--keyboards/wilba_tech/rama_works_kara/config.h5
-rw-r--r--keyboards/wilba_tech/rama_works_kara/rama_works_kara.c90
-rw-r--r--keyboards/wilba_tech/rama_works_kara/rules.mk4
-rw-r--r--keyboards/wilba_tech/rama_works_koyu/config.h5
-rw-r--r--keyboards/wilba_tech/rama_works_koyu/rama_works_koyu.c90
-rw-r--r--keyboards/wilba_tech/rama_works_koyu/rules.mk4
-rw-r--r--keyboards/wilba_tech/rama_works_m10_b/config.h2
-rw-r--r--keyboards/wilba_tech/rama_works_m10_b/info.json3
-rw-r--r--keyboards/wilba_tech/rama_works_m10_c/config.h6
-rw-r--r--keyboards/wilba_tech/rama_works_m10_c/info.json3
-rw-r--r--keyboards/wilba_tech/rama_works_m10_c/rama_works_m10_c.c23
-rw-r--r--keyboards/wilba_tech/rama_works_m10_c/rules.mk4
-rw-r--r--keyboards/wilba_tech/rama_works_m50_a/config.h5
-rw-r--r--keyboards/wilba_tech/rama_works_m50_a/rama_works_m50_a.c88
-rw-r--r--keyboards/wilba_tech/rama_works_m50_a/rules.mk4
-rw-r--r--keyboards/wilba_tech/rama_works_m60_a/config.h5
-rw-r--r--keyboards/wilba_tech/rama_works_m60_a/keymaps/mguterl/keymap.c82
-rw-r--r--keyboards/wilba_tech/rama_works_m60_a/keymaps/mguterl/readme.md15
-rw-r--r--keyboards/wilba_tech/rama_works_m60_a/keymaps/mguterl/rules.mk1
-rw-r--r--keyboards/wilba_tech/rama_works_m60_a/keymaps/zyber/config.h8
-rw-r--r--keyboards/wilba_tech/rama_works_m60_a/keymaps/zyber/keymap.c42
-rw-r--r--keyboards/wilba_tech/rama_works_m60_a/keymaps/zyber/rules.mk1
-rw-r--r--keyboards/wilba_tech/rama_works_m60_a/rama_works_m60_a.c90
-rw-r--r--keyboards/wilba_tech/rama_works_m60_a/rules.mk4
-rw-r--r--keyboards/wilba_tech/rama_works_m65_b/config.h5
-rw-r--r--keyboards/wilba_tech/rama_works_m65_b/rama_works_m65_b.c90
-rw-r--r--keyboards/wilba_tech/rama_works_m65_b/rules.mk4
-rw-r--r--keyboards/wilba_tech/rama_works_m65_bx/config.h5
-rw-r--r--keyboards/wilba_tech/rama_works_m65_bx/rama_works_m65_bx.c90
-rw-r--r--keyboards/wilba_tech/rama_works_m65_bx/rules.mk4
-rw-r--r--keyboards/wilba_tech/rama_works_m6_b/config.h2
-rw-r--r--keyboards/wilba_tech/rama_works_m6_b/rama_works_m6_b.c15
-rw-r--r--keyboards/wilba_tech/rama_works_m6_b/rules.mk4
-rw-r--r--keyboards/wilba_tech/rama_works_u80_a/config.h6
-rw-r--r--keyboards/wilba_tech/rama_works_u80_a/rama_works_u80_a.c132
-rw-r--r--keyboards/wilba_tech/rama_works_u80_a/rules.mk4
-rw-r--r--keyboards/wilba_tech/wt60_a/config.h3
-rw-r--r--keyboards/wilba_tech/wt60_a/rules.mk4
-rw-r--r--keyboards/wilba_tech/wt60_b/config.h5
-rw-r--r--keyboards/wilba_tech/wt60_b/rules.mk4
-rw-r--r--keyboards/wilba_tech/wt60_b/wt60_b.c94
-rw-r--r--keyboards/wilba_tech/wt60_bx/config.h5
-rw-r--r--keyboards/wilba_tech/wt60_bx/rules.mk4
-rw-r--r--keyboards/wilba_tech/wt60_bx/wt60_bx.c94
-rw-r--r--keyboards/wilba_tech/wt60_c/config.h5
-rw-r--r--keyboards/wilba_tech/wt60_c/rules.mk4
-rw-r--r--keyboards/wilba_tech/wt60_c/wt60_c.c94
-rw-r--r--keyboards/wilba_tech/wt65_a/config.h3
-rw-r--r--keyboards/wilba_tech/wt65_a/rules.mk4
-rw-r--r--keyboards/wilba_tech/wt65_b/config.h3
-rw-r--r--keyboards/wilba_tech/wt65_b/rules.mk4
-rw-r--r--keyboards/wilba_tech/wt75_a/config.h3
-rw-r--r--keyboards/wilba_tech/wt75_a/rules.mk4
-rw-r--r--keyboards/wilba_tech/wt75_b/config.h3
-rw-r--r--keyboards/wilba_tech/wt75_b/rules.mk4
-rw-r--r--keyboards/wilba_tech/wt75_c/config.h3
-rw-r--r--keyboards/wilba_tech/wt75_c/rules.mk4
-rw-r--r--keyboards/wilba_tech/wt80_a/config.h3
-rw-r--r--keyboards/wilba_tech/wt80_a/rules.mk4
-rw-r--r--keyboards/wilba_tech/wt_mono_backlight.c145
-rw-r--r--keyboards/wilba_tech/wt_rgb_backlight.c922
-rw-r--r--keyboards/wilba_tech/zeal60/config.h5
-rw-r--r--keyboards/wilba_tech/zeal60/keymaps/sethBarberee/config.h37
-rw-r--r--keyboards/wilba_tech/zeal60/keymaps/sethBarberee/keymap.c46
-rw-r--r--keyboards/wilba_tech/zeal60/keymaps/sethBarberee/rules.mk2
-rw-r--r--keyboards/wilba_tech/zeal60/rules.mk4
-rw-r--r--keyboards/wilba_tech/zeal60/zeal60.c90
-rw-r--r--keyboards/wilba_tech/zeal65/config.h5
-rw-r--r--keyboards/wilba_tech/zeal65/keymaps/zyber/config.h31
-rw-r--r--keyboards/wilba_tech/zeal65/keymaps/zyber/keymap.c39
-rw-r--r--keyboards/wilba_tech/zeal65/rules.mk4
-rw-r--r--keyboards/wilba_tech/zeal65/zeal65.c90
-rw-r--r--keyboards/woodkeys/bigseries/1key/keymaps/dudeofawesome/README.md18
-rw-r--r--keyboards/woodkeys/bigseries/1key/keymaps/dudeofawesome/config.h24
-rwxr-xr-xkeyboards/woodkeys/bigseries/1key/keymaps/dudeofawesome/keymap.c50
-rw-r--r--keyboards/woodkeys/bigseries/1key/keymaps/dudeofawesome/rules.mk1
-rwxr-xr-xkeyboards/woodkeys/meira/TWIlib.c300
-rwxr-xr-xkeyboards/woodkeys/meira/TWIlib.h71
-rw-r--r--keyboards/woodkeys/meira/config.h2
-rw-r--r--keyboards/woodkeys/meira/featherble/config.h1
-rw-r--r--keyboards/woodkeys/meira/info.json10
-rwxr-xr-xkeyboards/woodkeys/meira/issi.c286
-rwxr-xr-xkeyboards/woodkeys/meira/issi.h39
-rw-r--r--keyboards/woodkeys/meira/keymaps/cole/keymap.c1
-rw-r--r--keyboards/woodkeys/meira/keymaps/default/keymap.c1
-rw-r--r--keyboards/woodkeys/meira/keymaps/grahampheath/keymap.c9
-rw-r--r--keyboards/woodkeys/meira/keymaps/grahampheath/rules.mk2
-rw-r--r--keyboards/woodkeys/meira/keymaps/takmiya/keymap.c10
-rwxr-xr-xkeyboards/woodkeys/meira/lighting.c84
-rwxr-xr-xkeyboards/woodkeys/meira/lighting.h6
-rw-r--r--keyboards/woodkeys/meira/matrix.c9
-rw-r--r--keyboards/woodkeys/meira/meira.c39
-rw-r--r--keyboards/woodkeys/meira/meira.h1
-rw-r--r--keyboards/woodkeys/meira/post_rules.mk9
-rw-r--r--keyboards/woodkeys/meira/promicro/config.h2
-rw-r--r--keyboards/woodkeys/meira/rules.mk4
-rw-r--r--keyboards/woodkeys/scarletbandana/rules.mk2
-rw-r--r--keyboards/work_louder/micro/keymaps/peterfalken/config.h7
-rw-r--r--keyboards/work_louder/micro/keymaps/peterfalken/keymap.c113
-rw-r--r--keyboards/work_louder/micro/keymaps/peterfalken/readme.md14
-rw-r--r--keyboards/work_louder/micro/keymaps/peterfalken/rules.mk3
-rw-r--r--keyboards/work_louder/rgb_functions.c2
-rw-r--r--keyboards/work_louder/work_board/keymaps/drashna/config.h22
-rw-r--r--keyboards/work_louder/work_board/keymaps/drashna/keymap.c167
-rw-r--r--keyboards/work_louder/work_board/keymaps/drashna/rules.mk10
-rw-r--r--keyboards/work_louder/work_board/keymaps/peterfalken/keymap.c88
-rw-r--r--keyboards/work_louder/work_board/keymaps/peterfalken/readme.md14
-rw-r--r--keyboards/work_louder/work_board/keymaps/peterfalken/rules.mk3
-rw-r--r--keyboards/xbows/knight/config.h7
-rw-r--r--keyboards/xbows/knight/knight.c2
-rw-r--r--keyboards/xbows/knight_plus/config.h7
-rw-r--r--keyboards/xbows/knight_plus/knight_plus.c2
-rw-r--r--keyboards/xbows/nature/config.h7
-rw-r--r--keyboards/xbows/nature/nature.c2
-rw-r--r--keyboards/xbows/numpad/config.h3
-rw-r--r--keyboards/xbows/numpad/numpad.c2
-rw-r--r--keyboards/xbows/ranger/config.h7
-rw-r--r--keyboards/xbows/ranger/ranger.c2
-rw-r--r--keyboards/xbows/woody/config.h5
-rw-r--r--keyboards/xbows/woody/woody.c2
-rw-r--r--keyboards/xelus/dawn60/rev1/config.h5
-rw-r--r--keyboards/xelus/dawn60/rev1/rev1.c82
-rw-r--r--keyboards/xelus/dawn60/rev1/rules.mk2
-rw-r--r--keyboards/xelus/dawn60/rev1_qmk/config.h9
-rw-r--r--keyboards/xelus/dawn60/rev1_qmk/rev1_qmk.c48
-rw-r--r--keyboards/xelus/dawn60/rev1_qmk/rules.mk2
-rw-r--r--keyboards/xelus/kangaroo/rev1/config.h3
-rw-r--r--keyboards/xelus/kangaroo/rev1/info.json3
-rw-r--r--keyboards/xelus/kangaroo/rev1/rules.mk2
-rw-r--r--keyboards/xelus/kangaroo/rev2/config.h3
-rw-r--r--keyboards/xelus/kangaroo/rev2/info.json5
-rw-r--r--keyboards/xelus/kangaroo/rev2/rules.mk5
-rw-r--r--keyboards/xelus/pachi/rgb/rev1/config.h9
-rw-r--r--keyboards/xelus/pachi/rgb/rev1/info.json3
-rw-r--r--keyboards/xelus/pachi/rgb/rev1/rev1.c14
-rw-r--r--keyboards/xelus/pachi/rgb/rev1/rules.mk2
-rw-r--r--keyboards/xelus/pachi/rgb/rev2/config.h6
-rw-r--r--keyboards/xelus/pachi/rgb/rev2/info.json3
-rw-r--r--keyboards/xelus/pachi/rgb/rev2/rev2.c14
-rw-r--r--keyboards/xelus/pachi/rgb/rev2/rules.mk2
-rw-r--r--keyboards/xelus/rs108/config.h9
-rw-r--r--keyboards/xelus/rs108/info.json3
-rw-r--r--keyboards/xelus/rs108/rules.mk2
-rw-r--r--keyboards/xelus/rs60/rev2_0/config.h9
-rw-r--r--keyboards/xelus/rs60/rev2_0/info.json3
-rw-r--r--keyboards/xelus/rs60/rev2_0/rules.mk1
-rw-r--r--keyboards/xelus/rs60/rev2_1/config.h3
-rw-r--r--keyboards/xelus/rs60/rev2_1/info.json5
-rw-r--r--keyboards/xelus/rs60/rev2_1/rules.mk3
-rw-r--r--keyboards/xelus/valor/rev2/config.h3
-rw-r--r--keyboards/xelus/valor/rev2/info.json3
-rw-r--r--keyboards/xelus/valor/rev2/rules.mk1
-rw-r--r--keyboards/xelus/valor_frl_tkl/rev1/config.h6
-rw-r--r--keyboards/xelus/valor_frl_tkl/rev1/info.json3
-rw-r--r--keyboards/xelus/valor_frl_tkl/rev1/rules.mk3
-rw-r--r--keyboards/xelus/xs108/config.h3
-rw-r--r--keyboards/xelus/xs108/info.json3
-rw-r--r--keyboards/xelus/xs108/rules.mk2
-rw-r--r--keyboards/xelus/xs60/hotswap/config.h3
-rw-r--r--keyboards/xelus/xs60/hotswap/info.json3
-rw-r--r--keyboards/xelus/xs60/hotswap/rules.mk2
-rw-r--r--keyboards/xelus/xs60/soldered/info.json3
-rw-r--r--keyboards/xelus/xs60/soldered/rules.mk2
-rw-r--r--keyboards/xiudi/xd002/keymaps/multilayer_rgb/rgblite.h2
-rw-r--r--keyboards/xiudi/xd002/keymaps/rgb_lite/rgblite.h2
-rw-r--r--keyboards/xiudi/xd004/keymaps/narze/keymap.c24
-rw-r--r--keyboards/xiudi/xd004/keymaps/narze/readme.md13
-rw-r--r--keyboards/xiudi/xd75/keymaps/billypython/config.h14
-rw-r--r--keyboards/xiudi/xd75/keymaps/billypython/keymap.c119
-rw-r--r--keyboards/xiudi/xd75/keymaps/billypython/rules.mk15
-rw-r--r--keyboards/xiudi/xd75/keymaps/ericgebhart/config.h21
-rw-r--r--keyboards/xiudi/xd75/keymaps/ericgebhart/keymap.c18
-rw-r--r--keyboards/xiudi/xd75/keymaps/ericgebhart/rules.mk3
-rw-r--r--keyboards/xiudi/xd75/keymaps/jarred/keymap.c37
-rw-r--r--keyboards/xiudi/xd75/keymaps/jarred/readme.md1
-rw-r--r--keyboards/xiudi/xd75/keymaps/odyssey/keymap.c8
-rw-r--r--keyboards/xiudi/xd75/keymaps/raoeus/keymap.c1
-rw-r--r--keyboards/xiudi/xd75/keymaps/scheiklp/config.h29
-rw-r--r--keyboards/xiudi/xd75/keymaps/scheiklp/keymap.c101
-rw-r--r--keyboards/xiudi/xd75/keymaps/scheiklp/readme.md9
-rw-r--r--keyboards/xiudi/xd75/keymaps/scheiklp/rules.mk9
-rw-r--r--keyboards/xiudi/xd75/keymaps/zigotica/config.h27
-rw-r--r--keyboards/xiudi/xd75/keymaps/zigotica/keymap.c63
-rw-r--r--keyboards/xiudi/xd75/keymaps/zigotica/rules.mk6
-rw-r--r--keyboards/xiudi/xd84/rules.mk2
-rw-r--r--keyboards/xiudi/xd96/rules.mk2
-rw-r--r--keyboards/yanghu/unicorne/keymaps/bcat/config.h19
-rw-r--r--keyboards/yanghu/unicorne/keymaps/bcat/keymap.c83
-rw-r--r--keyboards/yanghu/unicorne/keymaps/bcat/readme.md33
-rw-r--r--keyboards/yanghu/unicorne/keymaps/bcat/rules.mk1
-rw-r--r--keyboards/yiancardesigns/barleycorn/rules.mk2
-rw-r--r--keyboards/yiancardesigns/gingham/rules.mk4
-rw-r--r--keyboards/yiancardesigns/seigaiha/rules.mk2
-rw-r--r--keyboards/ymdk/id75/info.json1
-rw-r--r--keyboards/ymdk/melody96/hotswap/info.json501
-rw-r--r--keyboards/ymdk/melody96/hotswap/keymaps/default/keymap.c23
-rw-r--r--keyboards/ymdk/melody96/hotswap/keymaps/via/keymap.c23
-rw-r--r--keyboards/ymdk/melody96/hotswap/keymaps/via/rules.mk (renamed from keyboards/kprepublic/bm40hsrgb/keymaps/via/rules.mk)0
-rw-r--r--keyboards/ymdk/melody96/hotswap/keymaps/zunger/config.h (renamed from keyboards/ymdk/melody96/keymaps/zunger/config.h)0
-rw-r--r--keyboards/ymdk/melody96/hotswap/keymaps/zunger/keymap.c489
-rw-r--r--keyboards/ymdk/melody96/hotswap/keymaps/zunger/readme.md (renamed from keyboards/ymdk/melody96/keymaps/zunger/readme.md)0
-rw-r--r--keyboards/ymdk/melody96/hotswap/keymaps/zunger/rules.mk (renamed from keyboards/ymdk/melody96/keymaps/zunger/rules.mk)0
-rw-r--r--keyboards/ymdk/melody96/hotswap/matrix_diagram.md23
-rw-r--r--keyboards/ymdk/melody96/hotswap/readme.md19
-rw-r--r--keyboards/ymdk/melody96/hotswap/rules.mk1
-rw-r--r--keyboards/ymdk/melody96/keymaps/konstantin/config.h3
-rw-r--r--keyboards/ymdk/melody96/keymaps/konstantin/keymap.c77
-rw-r--r--keyboards/ymdk/melody96/keymaps/konstantin/rules.mk19
-rw-r--r--keyboards/ymdk/melody96/keymaps/zunger/keymap.c489
-rw-r--r--keyboards/ymdk/melody96/matrix_diagram.md35
-rw-r--r--keyboards/ymdk/melody96/readme.md19
-rw-r--r--keyboards/ymdk/melody96/rules.mk13
-rw-r--r--keyboards/ymdk/melody96/soldered/config.h (renamed from keyboards/ymdk/melody96/config.h)0
-rw-r--r--keyboards/ymdk/melody96/soldered/info.json (renamed from keyboards/ymdk/melody96/info.json)0
-rw-r--r--keyboards/ymdk/melody96/soldered/keymaps/crilith/keymap.c (renamed from keyboards/ymdk/melody96/keymaps/crilith/keymap.c)0
-rw-r--r--keyboards/ymdk/melody96/soldered/keymaps/default/keymap.c (renamed from keyboards/ymdk/melody96/keymaps/default/keymap.c)0
-rw-r--r--keyboards/ymdk/melody96/soldered/keymaps/default_96_with60_split_num0/keymap.c (renamed from keyboards/ymdk/melody96/keymaps/default_96_with60_split_num0/keymap.c)0
-rw-r--r--keyboards/ymdk/melody96/soldered/keymaps/dvz/config.h (renamed from keyboards/ymdk/melody96/keymaps/dvz/config.h)0
-rw-r--r--keyboards/ymdk/melody96/soldered/keymaps/dvz/keymap.c (renamed from keyboards/ymdk/melody96/keymaps/dvz/keymap.c)0
-rw-r--r--keyboards/ymdk/melody96/soldered/keymaps/dvz/readme.md (renamed from keyboards/ymdk/melody96/keymaps/dvz/readme.md)0
-rw-r--r--keyboards/ymdk/melody96/soldered/keymaps/dvz/rules.mk (renamed from keyboards/ymdk/melody96/keymaps/dvz/rules.mk)0
-rw-r--r--keyboards/ymdk/melody96/soldered/keymaps/via/keymap.c (renamed from keyboards/ymdk/melody96/keymaps/via/keymap.c)0
-rw-r--r--keyboards/ymdk/melody96/soldered/keymaps/via/rules.mk (renamed from keyboards/ymdk/melody96/keymaps/via/rules.mk)0
-rw-r--r--keyboards/ymdk/melody96/soldered/matrix_diagram.md35
-rw-r--r--keyboards/ymdk/melody96/soldered/readme.md19
-rw-r--r--keyboards/ymdk/melody96/soldered/rules.mk12
-rw-r--r--keyboards/ymdk/sp64/rules.mk2
-rw-r--r--keyboards/z12/keymaps/zigotica/config.h29
-rw-r--r--keyboards/z12/keymaps/zigotica/encoder.c110
-rw-r--r--keyboards/z12/keymaps/zigotica/encoder.h18
-rw-r--r--keyboards/z12/keymaps/zigotica/keymap.c189
-rw-r--r--keyboards/z12/keymaps/zigotica/oled.c56
-rw-r--r--keyboards/z12/keymaps/zigotica/oled.h18
-rw-r--r--keyboards/z12/keymaps/zigotica/readme.md3
-rw-r--r--keyboards/z12/keymaps/zigotica/rules.mk4
-rw-r--r--keyboards/z34/keymaps/zigotica/config.h26
-rw-r--r--keyboards/z34/keymaps/zigotica/keymap.c57
-rw-r--r--keyboards/z34/keymaps/zigotica/rules.mk7
-rw-r--r--keyboards/zoo/wampus/config.h2
-rw-r--r--keyboards/zykrah/fuyu/config.h2
-rw-r--r--keyboards/zykrah/fuyu/info.json3
-rw-r--r--keyboards/zykrah/fuyu/keymaps/via/keymap.c10
-rw-r--r--keyboards/zykrah/slime88/config.h2
-rw-r--r--keyboards/zykrah/slime88/info.json3
-rw-r--r--layouts/community/60_abnt2/readme.md3
-rw-r--r--layouts/community/60_ansi/brandonschlack-ansi/keymap.c83
-rw-r--r--layouts/community/60_ansi/brandonschlack-ansi/rules.mk1
-rw-r--r--layouts/community/60_ansi/manna-harbour_miryoku/config.h68
-rw-r--r--layouts/community/60_ansi/manna-harbour_miryoku/keymap.c4
-rw-r--r--layouts/community/60_ansi/mechmerlin-ansi/keymap.c33
-rw-r--r--layouts/community/60_ansi/mechmerlin-ansi/readme.md15
-rw-r--r--layouts/community/60_ansi/mechmerlin-ansi/rules.mk1
-rw-r--r--layouts/community/60_ansi/readme.md66
-rw-r--r--layouts/community/60_ansi/stanrc85-ansi/keymap.c51
-rw-r--r--layouts/community/60_ansi/stanrc85-ansi/readme.md57
-rw-r--r--layouts/community/60_ansi/stanrc85-ansi/rules.mk1
-rw-r--r--layouts/community/60_ansi/talljoe-ansi/config.h33
-rw-r--r--layouts/community/60_ansi/talljoe-ansi/keymap.c1
-rw-r--r--layouts/community/60_ansi/talljoe-ansi/rules.mk1
-rw-r--r--layouts/community/60_ansi/xyverz/keymap.c125
-rw-r--r--layouts/community/60_ansi_arrow/readme.md3
-rw-r--r--layouts/community/60_ansi_arrow_split_bs_7u_spc/mrsendyyk/keymap.c142
-rw-r--r--layouts/community/60_ansi_arrow_split_bs_7u_spc/mrsendyyk/readme.md78
-rw-r--r--layouts/community/60_ansi_arrow_split_bs_7u_spc/mrsendyyk/rules.mk1
-rw-r--r--layouts/community/60_ansi_arrow_split_bs_7u_spc/readme.md3
-rw-r--r--layouts/community/60_ansi_split_bs_rshift/bcat/keymap.c50
-rw-r--r--layouts/community/60_ansi_split_bs_rshift/bcat/readme.md24
-rw-r--r--layouts/community/60_ansi_split_bs_rshift/brandonschlack-split/keymap.c83
-rw-r--r--layouts/community/60_ansi_split_bs_rshift/brandonschlack-split/rules.mk1
-rw-r--r--layouts/community/60_ansi_split_bs_rshift/mechmerlin-split/keymap.c33
-rw-r--r--layouts/community/60_ansi_split_bs_rshift/mechmerlin-split/readme.md20
-rw-r--r--layouts/community/60_ansi_split_bs_rshift/mechmerlin-split/rules.mk1
-rw-r--r--layouts/community/60_ansi_split_bs_rshift/readme.md2
-rw-r--r--layouts/community/60_ansi_split_bs_rshift/talljoe/config.h83
-rw-r--r--layouts/community/60_ansi_split_bs_rshift/talljoe/keymap.c1
-rw-r--r--layouts/community/60_ansi_split_bs_rshift/talljoe/rules.mk1
-rw-r--r--layouts/community/60_ansi_split_bs_rshift/talljoe/solarized.c39
-rw-r--r--layouts/community/60_ansi_split_bs_rshift/talljoe/solarized.h40
-rw-r--r--layouts/community/60_ansi_split_bs_rshift/yanfali/keymap.c31
-rw-r--r--layouts/community/60_ansi_tsangan/readme.md3
-rw-r--r--layouts/community/60_ansi_wkl/readme.md3
-rw-r--r--layouts/community/60_ansi_wkl_split_bs_rshift/readme.md3
-rw-r--r--layouts/community/60_hhkb/readme.md3
-rw-r--r--layouts/community/60_hhkb/talljoe-hhkb/config.h37
-rw-r--r--layouts/community/60_hhkb/talljoe-hhkb/keymap.c1
-rw-r--r--layouts/community/60_hhkb/talljoe-hhkb/rules.mk1
-rw-r--r--layouts/community/60_hhkb/yanfali/keymap.c51
-rwxr-xr-xlayouts/community/60_iso/bifbofii/keymap.c201
-rwxr-xr-xlayouts/community/60_iso/bifbofii/readme.md108
-rw-r--r--layouts/community/60_iso/bifbofii/rules.mk1
-rw-r--r--layouts/community/60_iso/readme.md2
-rw-r--r--layouts/community/60_iso/unxmaal/README.md22
-rw-r--r--layouts/community/60_iso/unxmaal/config.h34
-rw-r--r--layouts/community/60_iso/unxmaal/keymap.c115
-rw-r--r--layouts/community/60_iso/unxmaal/rules.mk7
-rw-r--r--layouts/community/60_iso_split_bs_rshift/readme.md3
-rw-r--r--layouts/community/60_iso_tsangan/readme.md3
-rw-r--r--layouts/community/60_iso_tsangan_split_bs_rshift/readme.md3
-rw-r--r--layouts/community/60_iso_wkl/readme.md3
-rw-r--r--layouts/community/60_iso_wkl_split_bs_rshift/readme.md3
-rw-r--r--layouts/community/60_jis/readme.md3
-rw-r--r--layouts/community/60_tsangan_hhkb/bcat/keymap.c48
-rw-r--r--layouts/community/60_tsangan_hhkb/bcat/readme.md44
-rw-r--r--layouts/community/60_tsangan_hhkb/brandonschlack-tsngn/keymap.c84
-rw-r--r--layouts/community/60_tsangan_hhkb/brandonschlack-tsngn/readme.md11
-rw-r--r--layouts/community/60_tsangan_hhkb/brandonschlack-tsngn/rules.mk1
-rw-r--r--layouts/community/60_tsangan_hhkb/dohmain/keymap.c43
-rw-r--r--layouts/community/60_tsangan_hhkb/dohmain/readme.md37
-rw-r--r--layouts/community/60_tsangan_hhkb/readme.md3
-rw-r--r--layouts/community/60_tsangan_hhkb/yanfali/keymap.c25
-rw-r--r--layouts/community/60_tsangan_hhkb/yanfali_wkl/keymap.c25
-rw-r--r--layouts/community/64_ansi/readme.md3
-rw-r--r--layouts/community/64_iso/readme.md3
-rw-r--r--layouts/community/65_ansi/mechmerlin/keymap.c57
-rw-r--r--layouts/community/65_ansi/mechmerlin/readme.md10
-rw-r--r--layouts/community/65_ansi/readme.md3
-rwxr-xr-xlayouts/community/65_ansi/yanfali/keymap.c40
-rw-r--r--layouts/community/65_ansi_blocker/brandonschlack/config.h62
-rw-r--r--layouts/community/65_ansi_blocker/brandonschlack/keymap.c117
-rw-r--r--layouts/community/65_ansi_blocker/brandonschlack/readme.md15
-rw-r--r--layouts/community/65_ansi_blocker/brandonschlack/rules.mk7
-rw-r--r--layouts/community/65_ansi_blocker/mechmerlin/keymap.c44
-rw-r--r--layouts/community/65_ansi_blocker/mechmerlin/readme.md12
-rw-r--r--layouts/community/65_ansi_blocker/mechmerlin/rules.mk1
-rw-r--r--layouts/community/65_ansi_blocker/readme.md3
-rw-r--r--layouts/community/65_ansi_blocker/spidey3/config.h12
-rw-r--r--layouts/community/65_ansi_blocker/spidey3/keymap.c41
-rw-r--r--layouts/community/65_ansi_blocker/spidey3/readme.md14
-rw-r--r--layouts/community/65_ansi_blocker/spidey3/rules.mk10
-rw-r--r--layouts/community/65_ansi_blocker/stanrc85/keymap.c51
-rw-r--r--layouts/community/65_ansi_blocker_split_bs/bcat/keymap.c41
-rw-r--r--layouts/community/65_ansi_blocker_split_bs/bcat/readme.md17
-rw-r--r--layouts/community/65_ansi_blocker_split_bs/brandonschlack-split/config.h62
-rw-r--r--layouts/community/65_ansi_blocker_split_bs/brandonschlack-split/keymap.c105
-rw-r--r--layouts/community/65_ansi_blocker_split_bs/brandonschlack-split/readme.md15
-rw-r--r--layouts/community/65_ansi_blocker_split_bs/brandonschlack-split/rules.mk2
-rw-r--r--layouts/community/65_ansi_blocker_split_bs/readme.md3
-rw-r--r--layouts/community/65_ansi_blocker_tsangan/readme.md3
-rw-r--r--layouts/community/65_ansi_blocker_tsangan_split_bs/readme.md3
-rw-r--r--layouts/community/65_ansi_split_bs/readme.md3
-rw-r--r--layouts/community/65_iso/readme.md3
-rw-r--r--layouts/community/65_iso_blocker/readme.md3
-rw-r--r--layouts/community/65_iso_blocker_split_bs/readme.md3
-rw-r--r--layouts/community/65_iso_blocker_tsangan/readme.md3
-rw-r--r--layouts/community/65_iso_blocker_tsangan_split_bs/readme.md3
-rw-r--r--layouts/community/65_iso_split_bs/readme.md3
-rw-r--r--layouts/community/66_ansi/mechmerlin/config.h1
-rw-r--r--layouts/community/66_ansi/mechmerlin/keymap.c25
-rw-r--r--layouts/community/66_ansi/mechmerlin/readme.md13
-rw-r--r--layouts/community/66_ansi/mechmerlin/rules.mk1
-rw-r--r--layouts/community/66_ansi/skully/config.h12
-rw-r--r--layouts/community/66_ansi/skully/keymap.c35
-rw-r--r--layouts/community/66_ansi/skully/readme.md5
-rw-r--r--layouts/community/66_ansi/xyverz/config.h6
-rw-r--r--layouts/community/66_ansi/xyverz/keymap.c122
-rw-r--r--layouts/community/66_ansi/xyverz/rules.mk3
-rw-r--r--layouts/community/66_iso/readme.md3
-rw-r--r--layouts/community/68_ansi/mechmerlin/keymap.c25
-rw-r--r--layouts/community/68_ansi/mechmerlin/rules.mk1
-rw-r--r--layouts/community/68_ansi/readme.md2
-rw-r--r--layouts/community/68_iso/readme.md3
-rw-r--r--layouts/community/75_ansi/brandonschlack/keymap.c105
-rw-r--r--layouts/community/75_ansi/brandonschlack/readme.md7
-rw-r--r--layouts/community/75_ansi/brandonschlack/rules.mk5
-rw-r--r--layouts/community/75_ansi/mechmerlin-75_ansi/keymap.c29
-rw-r--r--layouts/community/75_ansi/mechmerlin-75_ansi/readme.md9
-rw-r--r--layouts/community/75_ansi/mechmerlin-75_ansi/rules.mk1
-rw-r--r--layouts/community/75_ansi/readme.md70
-rw-r--r--layouts/community/75_ansi/spidey3/config.h7
-rw-r--r--layouts/community/75_ansi/spidey3/keymap.c33
-rw-r--r--layouts/community/75_ansi/spidey3/readme.md14
-rw-r--r--layouts/community/75_ansi/spidey3/rules.mk10
-rw-r--r--layouts/community/75_ansi/yanfali/keymap.c25
-rw-r--r--layouts/community/75_iso/readme.md3
-rw-r--r--layouts/community/96_ansi/readme.md3
-rw-r--r--layouts/community/96_iso/readme.md3
-rw-r--r--layouts/community/alice/manna-harbour_miryoku/config.h23
-rw-r--r--layouts/community/alice/manna-harbour_miryoku/keymap.c4
-rw-r--r--layouts/community/alice/readme.md3
-rw-r--r--layouts/community/alice/stanrc85-alice/keymap.c52
-rw-r--r--layouts/community/alice/stanrc85-alice/readme.md57
-rw-r--r--layouts/community/alice/stanrc85-alice/rules.mk1
-rw-r--r--layouts/community/alice_split_bs/manna-harbour_miryoku/config.h22
-rw-r--r--layouts/community/alice_split_bs/manna-harbour_miryoku/keymap.c4
-rw-r--r--layouts/community/alice_split_bs/readme.md3
-rw-r--r--layouts/community/ergodox/333fred/README.md125
-rw-r--r--layouts/community/ergodox/333fred/config.h26
-rw-r--r--layouts/community/ergodox/333fred/keymap.c314
-rw-r--r--layouts/community/ergodox/333fred/rules.mk2
-rw-r--r--layouts/community/ergodox/adnw_k_o_y/keymap.c161
-rw-r--r--layouts/community/ergodox/adnw_k_o_y/readme.md7
-rw-r--r--layouts/community/ergodox/adnw_p_u_q/config.h9
-rw-r--r--layouts/community/ergodox/adnw_p_u_q/keymap.c335
-rw-r--r--layouts/community/ergodox/adnw_p_u_q/readme.md17
-rw-r--r--layouts/community/ergodox/andrew_osx/keymap.c163
-rw-r--r--layouts/community/ergodox/belak/LICENSE21
-rw-r--r--layouts/community/ergodox/belak/README.md79
-rw-r--r--layouts/community/ergodox/belak/keymap.c362
-rw-r--r--layouts/community/ergodox/belak/rules.mk4
-rw-r--r--layouts/community/ergodox/bepo_alt/keymap.c127
-rw-r--r--layouts/community/ergodox/bepo_alt/readme.md66
-rw-r--r--layouts/community/ergodox/bepo_alt/rules.mk5
-rw-r--r--layouts/community/ergodox/berfarah/config.h8
-rw-r--r--layouts/community/ergodox/berfarah/keymap.c286
-rw-r--r--layouts/community/ergodox/berfarah/readme.md93
-rw-r--r--layouts/community/ergodox/berfarah/rules.mk16
-rw-r--r--layouts/community/ergodox/choromanski/keymap.c284
-rw-r--r--layouts/community/ergodox/choromanski/readme.md138
-rw-r--r--layouts/community/ergodox/colemak/keymap.c160
-rw-r--r--layouts/community/ergodox/colemak/readme.md4
-rw-r--r--layouts/community/ergodox/colemak_code_friendly/keymap.c333
-rw-r--r--layouts/community/ergodox/colemak_code_friendly/readme.md106
-rw-r--r--layouts/community/ergodox/colemak_code_friendly/rules.mk7
-rw-r--r--layouts/community/ergodox/colemak_osx_pc_no/keymap.c285
-rw-r--r--layouts/community/ergodox/colemak_osx_pc_no/readme.md23
-rw-r--r--layouts/community/ergodox/colemak_programmer/keymap.c256
-rw-r--r--layouts/community/ergodox/colemak_programmer/readme.md23
-rw-r--r--layouts/community/ergodox/colemak_programmer/rules.mk1
-rw-r--r--layouts/community/ergodox/dave/keymap.c174
-rw-r--r--layouts/community/ergodox/dave/readme.md38
-rw-r--r--layouts/community/ergodox/deadcyclo/keymap.c386
-rw-r--r--layouts/community/ergodox/deadcyclo/readme.md79
-rw-r--r--layouts/community/ergodox/deadcyclo/rules.mk2
-rw-r--r--layouts/community/ergodox/dragon788/keymap.c205
-rw-r--r--layouts/community/ergodox/drashna/README.md25
-rw-r--r--layouts/community/ergodox/drashna/config.h51
-rw-r--r--layouts/community/ergodox/drashna/keymap.c289
-rw-r--r--layouts/community/ergodox/drashna/notes.txt6
-rw-r--r--layouts/community/ergodox/drashna/rules.mk20
-rw-r--r--layouts/community/ergodox/dvorak/dvorak.png.md1
-rw-r--r--layouts/community/ergodox/dvorak/keymap.c160
-rw-r--r--layouts/community/ergodox/dvorak_emacs/keymap.c133
-rw-r--r--layouts/community/ergodox/dvorak_emacs/readme.md70
-rw-r--r--layouts/community/ergodox/dvorak_emacs_software/keymap.c134
-rw-r--r--layouts/community/ergodox/dvorak_emacs_software/readme.md74
-rw-r--r--layouts/community/ergodox/dvorak_intl_squisher/keymap.c161
-rw-r--r--layouts/community/ergodox/dvorak_intl_squisher/readme.md29
-rw-r--r--layouts/community/ergodox/dvorak_plover/README.md14
-rw-r--r--layouts/community/ergodox/dvorak_plover/keymap.c206
-rw-r--r--layouts/community/ergodox/dvorak_svorak_a5/keymap.c209
-rw-r--r--layouts/community/ergodox/dvorak_svorak_a5/readme.md42
-rw-r--r--layouts/community/ergodox/emacs_osx_dk/keymap.c160
-rw-r--r--layouts/community/ergodox/emacs_osx_dk/readme.md10
-rw-r--r--layouts/community/ergodox/german-kinergo/keymap.c186
-rw-r--r--layouts/community/ergodox/german-kinergo/readme.md35
-rw-r--r--layouts/community/ergodox/german-lukas/README.md12
-rw-r--r--layouts/community/ergodox/german-lukas/keymap.c212
-rw-r--r--layouts/community/ergodox/german/keymap.c161
-rw-r--r--layouts/community/ergodox/guni/keymap.c109
-rw-r--r--layouts/community/ergodox/guni/readme.txt133
-rw-r--r--layouts/community/ergodox/haegin/keymap.c248
-rw-r--r--layouts/community/ergodox/haegin/readme.md5
-rw-r--r--layouts/community/ergodox/haegin/rules.mk1
-rw-r--r--layouts/community/ergodox/issmirnov/README.md49
-rw-r--r--layouts/community/ergodox/issmirnov/asci-keymap.txt95
-rwxr-xr-xlayouts/community/ergodox/issmirnov/build.sh2
-rw-r--r--layouts/community/ergodox/issmirnov/config.h3
-rw-r--r--layouts/community/ergodox/issmirnov/keymap.c250
-rwxr-xr-xlayouts/community/ergodox/issmirnov/push.sh2
-rw-r--r--layouts/community/ergodox/issmirnov/template.txt17
-rw-r--r--layouts/community/ergodox/j3rn/keymap.c163
-rw-r--r--layouts/community/ergodox/j3rn/readme.md37
-rw-r--r--layouts/community/ergodox/jackhumbert/config.h21
-rw-r--r--layouts/community/ergodox/jackhumbert/keymap.c119
-rw-r--r--layouts/community/ergodox/jacobono/keymap.c249
-rw-r--r--layouts/community/ergodox/jacobono/readme.md34
-rw-r--r--layouts/community/ergodox/jafo/jafo-Notes10
-rw-r--r--layouts/community/ergodox/jafo/keymap.c161
-rw-r--r--layouts/community/ergodox/jafo/readme.md20
-rw-r--r--layouts/community/ergodox/jgarr/keymap.c160
-rw-r--r--layouts/community/ergodox/jjerrell/config.h21
-rw-r--r--layouts/community/ergodox/jjerrell/keymap.c129
-rw-r--r--layouts/community/ergodox/jjerrell/readme.md5
-rw-r--r--layouts/community/ergodox/jjerrell/rules.mk14
-rw-r--r--layouts/community/ergodox/kastyle/keymap.c165
-rw-r--r--layouts/community/ergodox/kastyle/readme.md14
-rw-r--r--layouts/community/ergodox/kejadlen/config.h5
-rw-r--r--layouts/community/ergodox/kejadlen/keymap.c93
-rw-r--r--layouts/community/ergodox/kejadlen/rules.mk13
-rw-r--r--layouts/community/ergodox/kines-ish/keymap.c160
-rw-r--r--layouts/community/ergodox/kines-ish/readme.md19
-rw-r--r--layouts/community/ergodox/manna-harbour_miryoku/config.h78
-rw-r--r--layouts/community/ergodox/manna-harbour_miryoku/keymap.c4
-rw-r--r--layouts/community/ergodox/maz/keymap.c205
-rw-r--r--layouts/community/ergodox/maz/readme.md121
-rw-r--r--layouts/community/ergodox/mclennon_osx/README.md5
-rw-r--r--layouts/community/ergodox/mclennon_osx/keymap.c120
-rw-r--r--layouts/community/ergodox/meagerfindings/README.md109
-rw-r--r--layouts/community/ergodox/meagerfindings/config.h24
-rw-r--r--layouts/community/ergodox/meagerfindings/keymap.c557
-rw-r--r--layouts/community/ergodox/meagerfindings/rules.mk3
-rw-r--r--layouts/community/ergodox/mpiechotka/keymap.c259
-rw-r--r--layouts/community/ergodox/mpiechotka/readme.md6
-rw-r--r--layouts/community/ergodox/msc/keymap.c160
-rw-r--r--layouts/community/ergodox/msc/readme.md32
-rw-r--r--layouts/community/ergodox/naps62/keymap.c163
-rw-r--r--layouts/community/ergodox/naps62/readme.md29
-rw-r--r--layouts/community/ergodox/neo2_on_qwertz_hardware/keymap.c384
-rw-r--r--layouts/community/ergodox/neo2_on_qwertz_hardware/keymap.md194
-rw-r--r--layouts/community/ergodox/norwegian_programmer_osx_pc/keymap.c201
-rw-r--r--layouts/community/ergodox/norwegian_programmer_osx_pc/readme.md30
-rw-r--r--layouts/community/ergodox/norwegian_programmer_osx_pc_colemak/keymap.c201
-rw-r--r--layouts/community/ergodox/norwegian_programmer_osx_pc_colemak/readme.md30
-rw-r--r--layouts/community/ergodox/ordinary/keymap.c260
-rw-r--r--layouts/community/ergodox/ordinary/ordinary-base.txt27
-rw-r--r--layouts/community/ergodox/ordinary/ordinary-media.txt27
-rw-r--r--layouts/community/ergodox/ordinary/ordinary-special.txt27
-rw-r--r--layouts/community/ergodox/ordinary/ordinary-symbol.txt27
-rw-r--r--layouts/community/ergodox/ordinary/readme.md101
-rw-r--r--layouts/community/ergodox/ordinary_osx/keymap.c260
-rw-r--r--layouts/community/ergodox/ordinary_osx/ordinary-base.txt27
-rw-r--r--layouts/community/ergodox/ordinary_osx/ordinary-media.txt27
-rw-r--r--layouts/community/ergodox/ordinary_osx/ordinary-special.txt27
-rw-r--r--layouts/community/ergodox/ordinary_osx/ordinary-symbol.txt27
-rw-r--r--layouts/community/ergodox/ordinary_osx/readme.md3
-rw-r--r--layouts/community/ergodox/osx_de_adnw_koy/keymap.c141
-rw-r--r--layouts/community/ergodox/osx_de_adnw_koy/osx_de_adnw_koy_highres.png.md1
-rw-r--r--layouts/community/ergodox/osx_fr/keymap.c163
-rw-r--r--layouts/community/ergodox/osx_kinesis_pnut/keymap.c167
-rw-r--r--layouts/community/ergodox/osx_neo2/config.h7
-rw-r--r--layouts/community/ergodox/osx_neo2/keymap.c720
-rw-r--r--layouts/community/ergodox/osx_neo2/layers.h9
-rw-r--r--layouts/community/ergodox/osx_neo2/readme.md219
-rw-r--r--layouts/community/ergodox/osx_whiskey_tango_foxtrot_capslock/keymap.c221
-rw-r--r--layouts/community/ergodox/osx_whiskey_tango_foxtrot_capslock/readme.md38
-rw-r--r--layouts/community/ergodox/osx_whiskey_tango_foxtrot_capslock/rules.mk2
-rw-r--r--layouts/community/ergodox/phoenix/keymap.c160
-rw-r--r--layouts/community/ergodox/phoenix/readme.md10
-rw-r--r--layouts/community/ergodox/plover/keymap.c204
-rw-r--r--layouts/community/ergodox/plums/keymap.c155
-rw-r--r--layouts/community/ergodox/plums/readme.md11
-rw-r--r--layouts/community/ergodox/qwerty_code_friendly/keymap.c686
-rw-r--r--layouts/community/ergodox/qwerty_code_friendly/readme.md232
-rw-r--r--layouts/community/ergodox/readme.md2
-rw-r--r--layouts/community/ergodox/reset_eeprom/keymap.c118
-rw-r--r--layouts/community/ergodox/robot_test_layout/keymap.c133
-rw-r--r--layouts/community/ergodox/robot_test_layout/readme.md5
-rw-r--r--layouts/community/ergodox/romanzolotarev-norman-osx/keymap.c35
-rw-r--r--layouts/community/ergodox/romanzolotarev-norman-osx/readme.md41
-rw-r--r--layouts/community/ergodox/romanzolotarev-norman-plover-osx-hjkl/keymap.c109
-rw-r--r--layouts/community/ergodox/romanzolotarev-norman-plover-osx-hjkl/readme.md50
-rw-r--r--layouts/community/ergodox/romanzolotarev-norman-plover-osx/keymap.c109
-rw-r--r--layouts/community/ergodox/romanzolotarev-norman-plover-osx/readme.md50
-rw-r--r--layouts/community/ergodox/romanzolotarev-norman-qwerty-osx/keymap.c63
-rw-r--r--layouts/community/ergodox/romanzolotarev-norman-qwerty-osx/readme.md34
-rw-r--r--layouts/community/ergodox/sethbc/keymap.c99
-rw-r--r--layouts/community/ergodox/sethbc/readme.md4
-rw-r--r--layouts/community/ergodox/sethbc/rules.mk1
-rw-r--r--layouts/community/ergodox/siroken3/default.png.md1
-rw-r--r--layouts/community/ergodox/siroken3/default_highres.png.md1
-rw-r--r--layouts/community/ergodox/siroken3/keymap.c163
-rw-r--r--layouts/community/ergodox/siroken3/readme.md15
-rw-r--r--layouts/community/ergodox/sneako/keymap.c163
-rw-r--r--layouts/community/ergodox/sneako/readme.md6
-rw-r--r--layouts/community/ergodox/software_neo2/keymap.c119
-rw-r--r--layouts/community/ergodox/supercoder/config.h4
-rw-r--r--layouts/community/ergodox/supercoder/keymap.c59
-rw-r--r--layouts/community/ergodox/supercoder/readme.md28
-rw-r--r--layouts/community/ergodox/supercoder/rules.mk6
-rw-r--r--layouts/community/ergodox/swedish-lindhe/keymap.c190
-rw-r--r--layouts/community/ergodox/swedish-lindhe/readme.md50
-rw-r--r--layouts/community/ergodox/swedish/keymap.c225
-rw-r--r--layouts/community/ergodox/swedish/readme.md36
-rw-r--r--layouts/community/ergodox/techtomas/keymap.c205
-rw-r--r--layouts/community/ergodox/techtomas/readme.md57
-rw-r--r--layouts/community/ergodox/teckinesis/keymap.c218
-rw-r--r--layouts/community/ergodox/teckinesis/ordinary-special.png.md1
-rw-r--r--layouts/community/ergodox/teckinesis/ordinary-special.txt27
-rw-r--r--layouts/community/ergodox/teckinesis/readme.md45
-rw-r--r--layouts/community/ergodox/teckinesis/teckinesis-base.json434
-rw-r--r--layouts/community/ergodox/teckinesis/teckinesis-media.json436
-rw-r--r--layouts/community/ergodox/teckinesis/teckinesis-symbol.json422
-rw-r--r--layouts/community/ergodox/tkuichooseyou/README.md13
-rw-r--r--layouts/community/ergodox/tkuichooseyou/keymap.c160
-rw-r--r--layouts/community/ergodox/tonyabra_osx/keymap.c160
-rw-r--r--layouts/community/ergodox/tonyabra_osx/readme.md5
-rw-r--r--layouts/community/ergodox/twentylives_dvorak_with_hebrew/keymap.c197
-rw-r--r--layouts/community/ergodox/twentylives_dvorak_with_hebrew/readme.md10
-rw-r--r--layouts/community/ergodox/videck/config.h8
-rw-r--r--layouts/community/ergodox/videck/keymap.c179
-rw-r--r--layouts/community/ergodox/videck/readme.md26
-rw-r--r--layouts/community/ergodox/videck/rules.mk17
-rw-r--r--layouts/community/ergodox/videck/videck.json443
-rw-r--r--layouts/community/ergodox/workman_osx_mdw/keymap.c409
-rw-r--r--layouts/community/ergodox/xyverz/keymap.c268
-rw-r--r--layouts/community/ergodox/xyverz/readme.md103
-rw-r--r--layouts/community/ergodox/yoruian/90-ergodox-yoruian.conf6
-rw-r--r--layouts/community/ergodox/yoruian/README102
-rw-r--r--layouts/community/ergodox/yoruian/ergodox_yoruian34
-rw-r--r--layouts/community/ergodox/yoruian/keymap.c51
-rw-r--r--layouts/community/ergodox/yoruian/rules.mk11
-rw-r--r--layouts/community/ergodox/yoruian/yoruian.h57
-rw-r--r--layouts/community/ergodox/zweihander-macos/config.h14
-rw-r--r--layouts/community/ergodox/zweihander-macos/keymap.c178
-rw-r--r--layouts/community/ergodox/zweihander-macos/readme.markdown82
-rw-r--r--layouts/community/ergodox/zweihander-macos/rules.mk6
-rw-r--r--layouts/community/fullsize_ansi/readme.md3
-rw-r--r--layouts/community/fullsize_extended_ansi/readme.md3
-rw-r--r--layouts/community/fullsize_extended_iso/readme.md3
-rw-r--r--layouts/community/fullsize_extended_jis/readme.md3
-rw-r--r--layouts/community/fullsize_iso/readme.md3
-rw-r--r--layouts/community/fullsize_jis/readme.md3
-rw-r--r--layouts/community/numpad_4x4/readme.md3
-rw-r--r--layouts/community/numpad_5x4/mrsendyyk/keymap.c34
-rw-r--r--layouts/community/numpad_5x4/mrsendyyk/readme.md14
-rw-r--r--layouts/community/numpad_5x4/mrsendyyk/rules.mk1
-rw-r--r--layouts/community/numpad_5x4/readme.md3
-rw-r--r--layouts/community/numpad_5x6/bjohnson/config.h32
-rw-r--r--layouts/community/numpad_5x6/bjohnson/keymap.c53
-rw-r--r--layouts/community/numpad_5x6/bjohnson/rules.mk5
-rw-r--r--layouts/community/numpad_5x6/drashna/config.h36
-rw-r--r--layouts/community/numpad_5x6/drashna/keymap.c39
-rw-r--r--layouts/community/numpad_5x6/drashna/rules.mk8
-rw-r--r--layouts/community/numpad_6x4/readme.md3
-rw-r--r--layouts/community/numpad_6x5/readme.md3
-rw-r--r--layouts/community/ortho_1x1/readme.md3
-rw-r--r--layouts/community/ortho_1x4/belgorath/keymap.c24
-rw-r--r--layouts/community/ortho_3x10/wanleg/config.h26
-rw-r--r--layouts/community/ortho_3x10/wanleg/keymap.c34
-rw-r--r--layouts/community/ortho_3x10/wanleg/readme.md80
-rw-r--r--layouts/community/ortho_3x10/wanleg/rules.mk1
-rw-r--r--layouts/community/ortho_3x3/readme.md3
-rw-r--r--layouts/community/ortho_4x10/manna-harbour_miryoku/config.h36
-rw-r--r--layouts/community/ortho_4x10/manna-harbour_miryoku/keymap.c4
-rw-r--r--layouts/community/ortho_4x10/readme.md3
-rw-r--r--layouts/community/ortho_4x10/scotto/keymap.c74
-rw-r--r--layouts/community/ortho_4x12/ajp10304/keymap.c219
-rw-r--r--layouts/community/ortho_4x12/ajp10304/readme.md126
-rw-r--r--layouts/community/ortho_4x12/ajp10304/rules.mk3
-rw-r--r--layouts/community/ortho_4x12/alfrdmalr/config.h5
-rw-r--r--layouts/community/ortho_4x12/alfrdmalr/keymap.c44
-rw-r--r--layouts/community/ortho_4x12/bakingpy/config.h29
-rw-r--r--layouts/community/ortho_4x12/bakingpy/keymap.c200
-rw-r--r--layouts/community/ortho_4x12/bakingpy/readme.md108
-rw-r--r--layouts/community/ortho_4x12/bakingpy/rules.mk13
-rw-r--r--layouts/community/ortho_4x12/bifbofii/keymap.c173
-rw-r--r--layouts/community/ortho_4x12/bifbofii/readme.md89
-rw-r--r--layouts/community/ortho_4x12/bifbofii/rules.mk1
-rw-r--r--layouts/community/ortho_4x12/brandonschlack/config.h52
-rw-r--r--layouts/community/ortho_4x12/brandonschlack/keymap.c221
-rw-r--r--layouts/community/ortho_4x12/brandonschlack/readme.md20
-rw-r--r--layouts/community/ortho_4x12/brandonschlack/rules.mk10
-rw-r--r--layouts/community/ortho_4x12/bredfield/config.h4
-rw-r--r--layouts/community/ortho_4x12/bredfield/keymap.c175
-rw-r--r--layouts/community/ortho_4x12/bredfield/readme.md105
-rw-r--r--layouts/community/ortho_4x12/buswerks/config.h22
-rw-r--r--layouts/community/ortho_4x12/buswerks/keymap.c174
-rw-r--r--layouts/community/ortho_4x12/buswerks/readme.md12
-rw-r--r--layouts/community/ortho_4x12/buswerks/rules.mk9
-rw-r--r--layouts/community/ortho_4x12/callum/config.h14
-rw-r--r--layouts/community/ortho_4x12/callum/keymap.c1
-rw-r--r--layouts/community/ortho_4x12/colemak_mod_dh_wide/config.h27
-rw-r--r--layouts/community/ortho_4x12/colemak_mod_dh_wide/keymap.c137
-rw-r--r--layouts/community/ortho_4x12/colemak_mod_dh_wide/readme.md5
-rw-r--r--layouts/community/ortho_4x12/drashna/config.h153
-rw-r--r--layouts/community/ortho_4x12/drashna/keymap.c288
-rw-r--r--layouts/community/ortho_4x12/drashna/readme.md2
-rw-r--r--layouts/community/ortho_4x12/drashna/rules.mk51
-rw-r--r--layouts/community/ortho_4x12/ergodoxish/config.h27
-rw-r--r--layouts/community/ortho_4x12/ergodoxish/keymap.c210
-rw-r--r--layouts/community/ortho_4x12/grahampheath/config.h32
-rw-r--r--layouts/community/ortho_4x12/grahampheath/keymap.c297
-rw-r--r--layouts/community/ortho_4x12/greatwizard/README.md149
-rw-r--r--layouts/community/ortho_4x12/greatwizard/config.h24
-rw-r--r--layouts/community/ortho_4x12/greatwizard/keymap.c209
-rw-r--r--layouts/community/ortho_4x12/greatwizard/rules.mk7
-rw-r--r--layouts/community/ortho_4x12/jackhumbert/config.h51
-rw-r--r--layouts/community/ortho_4x12/jackhumbert/keymap.c158
-rw-r--r--layouts/community/ortho_4x12/jackhumbert/readme.md9
-rw-r--r--layouts/community/ortho_4x12/jarred/keymap.c23
-rw-r--r--layouts/community/ortho_4x12/jarred/readme.md22
-rw-r--r--layouts/community/ortho_4x12/jjerrell/config.h57
-rw-r--r--layouts/community/ortho_4x12/jjerrell/keymap.c227
-rw-r--r--layouts/community/ortho_4x12/jjerrell/readme.md7
-rw-r--r--layouts/community/ortho_4x12/jjerrell/rules.mk8
-rw-r--r--layouts/community/ortho_4x12/jotix/keymap.c95
-rw-r--r--layouts/community/ortho_4x12/jotix/readme.md6
-rw-r--r--layouts/community/ortho_4x12/jotix/rules.mk2
-rw-r--r--layouts/community/ortho_4x12/juno/config.h38
-rw-r--r--layouts/community/ortho_4x12/juno/keymap.c450
-rw-r--r--layouts/community/ortho_4x12/juno/readme.md16
-rw-r--r--layouts/community/ortho_4x12/juno/rules.mk14
-rw-r--r--layouts/community/ortho_4x12/junonum/config.h40
-rw-r--r--layouts/community/ortho_4x12/junonum/keymap.c379
-rw-r--r--layouts/community/ortho_4x12/junonum/readme.md17
-rw-r--r--layouts/community/ortho_4x12/junonum/rules.mk22
-rw-r--r--layouts/community/ortho_4x12/manna-harbour_miryoku/config.h47
-rw-r--r--layouts/community/ortho_4x12/manna-harbour_miryoku/keymap.c4
-rw-r--r--layouts/community/ortho_4x12/mguterl/config.h36
-rw-r--r--layouts/community/ortho_4x12/mguterl/keymap.c354
-rw-r--r--layouts/community/ortho_4x12/mguterl/readme.md20
-rw-r--r--layouts/community/ortho_4x12/mguterl/rules.mk1
-rw-r--r--layouts/community/ortho_4x12/mindsound/config.h34
-rw-r--r--layouts/community/ortho_4x12/mindsound/flicker.h5
-rw-r--r--layouts/community/ortho_4x12/mindsound/keymap.c222
-rw-r--r--layouts/community/ortho_4x12/mindsound/readme.md19
-rw-r--r--layouts/community/ortho_4x12/mindsound/rules.mk26
-rw-r--r--layouts/community/ortho_4x12/neo2marin/config.h23
-rw-r--r--layouts/community/ortho_4x12/neo2marin/keymap.c175
-rw-r--r--layouts/community/ortho_4x12/neo2marin/readme.md105
-rw-r--r--layouts/community/ortho_4x12/neo2marin/rules.mk6
-rw-r--r--layouts/community/ortho_4x12/peej/keymap.c73
-rw-r--r--layouts/community/ortho_4x12/readme.md2
-rw-r--r--layouts/community/ortho_4x12/rs/config.h1
-rw-r--r--layouts/community/ortho_4x12/rs/keymap.c52
-rw-r--r--layouts/community/ortho_4x12/rs/readme.md1
-rw-r--r--layouts/community/ortho_4x12/symbolic/README.md75
-rw-r--r--layouts/community/ortho_4x12/symbolic/config.h35
-rw-r--r--layouts/community/ortho_4x12/symbolic/keymap.c229
-rw-r--r--layouts/community/ortho_4x12/talljoe/config.h33
-rw-r--r--layouts/community/ortho_4x12/talljoe/keymap.c1
-rw-r--r--layouts/community/ortho_4x12/trguhq/config.h27
-rw-r--r--layouts/community/ortho_4x12/trguhq/keymap.c29
-rw-r--r--layouts/community/ortho_4x12/trguhq/readme.md36
-rw-r--r--layouts/community/ortho_4x12/trguhq/rules.mk1
-rw-r--r--layouts/community/ortho_4x12/trguhq/trguhq.json361
-rw-r--r--layouts/community/ortho_4x12/wanleg/config.h49
-rw-r--r--layouts/community/ortho_4x12/wanleg/keymap.c96
-rw-r--r--layouts/community/ortho_4x12/wanleg/readme.md46
-rw-r--r--layouts/community/ortho_4x12/wanleg/rules.mk15
-rw-r--r--layouts/community/ortho_4x12/xyverz/config.h39
-rw-r--r--layouts/community/ortho_4x12/xyverz/keymap.c159
-rw-r--r--layouts/community/ortho_4x12/xyverz/readme.md99
-rw-r--r--layouts/community/ortho_4x12/xyverz/rules.mk11
-rw-r--r--layouts/community/ortho_4x16/readme.md3
-rw-r--r--layouts/community/ortho_4x4/jotix/keymap.c74
-rw-r--r--layouts/community/ortho_4x4/jotix/readme.md3
-rw-r--r--layouts/community/ortho_4x4/readme.md2
-rw-r--r--layouts/community/ortho_4x6/readme.md3
-rw-r--r--layouts/community/ortho_5x12/333fred/README.md75
-rw-r--r--layouts/community/ortho_5x12/333fred/config.h28
-rw-r--r--layouts/community/ortho_5x12/333fred/keymap.c128
-rw-r--r--layouts/community/ortho_5x12/333fred/rules.mk2
-rw-r--r--layouts/community/ortho_5x12/alfrdmalr/config.h5
-rw-r--r--layouts/community/ortho_5x12/alfrdmalr/keymap.c49
-rw-r--r--layouts/community/ortho_5x12/alfrdmalr/rules.mk0
-rw-r--r--layouts/community/ortho_5x12/brandonschlack/config.h52
-rw-r--r--layouts/community/ortho_5x12/brandonschlack/keymap.c216
-rw-r--r--layouts/community/ortho_5x12/brandonschlack/readme.md19
-rw-r--r--layouts/community/ortho_5x12/brandonschlack/rules.mk10
-rw-r--r--layouts/community/ortho_5x12/drashna/config.h47
-rw-r--r--layouts/community/ortho_5x12/drashna/keymap.c131
-rw-r--r--layouts/community/ortho_5x12/drashna/rules.mk24
-rw-r--r--layouts/community/ortho_5x12/greatwizard/README.md233
-rw-r--r--layouts/community/ortho_5x12/greatwizard/config.h25
-rw-r--r--layouts/community/ortho_5x12/greatwizard/keymap.c342
-rw-r--r--layouts/community/ortho_5x12/greatwizard/rules.mk8
-rw-r--r--layouts/community/ortho_5x12/manna-harbour_miryoku/config.h50
-rw-r--r--layouts/community/ortho_5x12/manna-harbour_miryoku/keymap.c4
-rw-r--r--layouts/community/ortho_5x12/peej/keymap.c54
-rw-r--r--layouts/community/ortho_5x12/readme.md2
-rw-r--r--layouts/community/ortho_5x12/riblee/config.h18
-rw-r--r--layouts/community/ortho_5x12/riblee/keymap.c205
-rw-r--r--layouts/community/ortho_5x12/riblee/readme.md111
-rw-r--r--layouts/community/ortho_5x12/riblee/rules.mk2
-rw-r--r--layouts/community/ortho_5x12/rs/config.h1
-rw-r--r--layouts/community/ortho_5x12/rs/keymap.c63
-rw-r--r--layouts/community/ortho_5x12/rs/readme.md1
-rw-r--r--layouts/community/ortho_5x12/xyverz/config.h36
-rw-r--r--layouts/community/ortho_5x12/xyverz/keymap.c178
-rw-r--r--layouts/community/ortho_5x12/xyverz/rules.mk32
-rw-r--r--layouts/community/ortho_5x14/peej/keymap.c88
-rw-r--r--layouts/community/ortho_5x14/readme.md3
-rw-r--r--layouts/community/ortho_5x14/yet-another-developer/config.h31
-rw-r--r--layouts/community/ortho_5x14/yet-another-developer/keymap.c208
-rw-r--r--layouts/community/ortho_5x14/yet-another-developer/rules.mk1
-rw-r--r--layouts/community/ortho_5x15/manna-harbour_miryoku/config.h38
-rw-r--r--layouts/community/ortho_5x15/manna-harbour_miryoku/keymap.c4
-rw-r--r--layouts/community/ortho_5x15/readme.md2
-rw-r--r--layouts/community/ortho_5x15/wanleg/config.h13
-rw-r--r--layouts/community/ortho_5x15/wanleg/keymap.c274
-rw-r--r--layouts/community/ortho_5x15/wanleg/rules.mk11
-rw-r--r--layouts/community/ortho_5x4/readme.md3
-rw-r--r--layouts/community/ortho_5x5/readme.md2
-rw-r--r--layouts/community/ortho_6x4/readme.md3
-rw-r--r--layouts/community/planck_mit/guidoism/config.h23
-rw-r--r--layouts/community/planck_mit/guidoism/generate_c.py75
-rw-r--r--layouts/community/planck_mit/guidoism/guidoism.json1
-rw-r--r--layouts/community/planck_mit/guidoism/keymap.c183
-rw-r--r--layouts/community/planck_mit/guidoism/keys.json315
-rw-r--r--layouts/community/planck_mit/guidoism/readme.md107
-rw-r--r--layouts/community/planck_mit/manna-harbour_miryoku/config.h19
-rw-r--r--layouts/community/planck_mit/manna-harbour_miryoku/keymap.c4
-rw-r--r--layouts/community/planck_mit/readme.md3
-rw-r--r--layouts/community/split_3x5_2/manna-harbour_miryoku/config.h19
-rw-r--r--layouts/community/split_3x5_2/manna-harbour_miryoku/keymap.c4
-rw-r--r--layouts/community/split_3x5_2/manna-harbour_miryoku/rules.mk4
-rw-r--r--layouts/community/split_3x5_2/readme.md3
-rw-r--r--layouts/community/split_3x5_2/scotto/keymap.c78
-rw-r--r--layouts/community/split_3x5_3/manna-harbour_miryoku/config.h19
-rw-r--r--layouts/community/split_3x5_3/manna-harbour_miryoku/keymap.c4
-rw-r--r--layouts/community/split_3x5_3/readme.md3
-rw-r--r--layouts/community/split_3x5_3/scotto/keymap.c75
-rw-r--r--layouts/community/split_3x6_3/bcat/config.h28
-rw-r--r--layouts/community/split_3x6_3/bcat/keymap.c70
-rw-r--r--layouts/community/split_3x6_3/bcat/readme.md131
-rw-r--r--layouts/community/split_3x6_3/bcat/rules.mk8
-rw-r--r--layouts/community/split_3x6_3/drashna/chconf.h11
-rw-r--r--layouts/community/split_3x6_3/drashna/config.h102
-rw-r--r--layouts/community/split_3x6_3/drashna/glcdfont.c232
-rw-r--r--layouts/community/split_3x6_3/drashna/halconf.h23
-rw-r--r--layouts/community/split_3x6_3/drashna/keymap.c307
-rw-r--r--layouts/community/split_3x6_3/drashna/mcuconf.h32
-rw-r--r--layouts/community/split_3x6_3/drashna/rules.mk57
-rw-r--r--layouts/community/split_3x6_3/manna-harbour_miryoku/config.h21
-rw-r--r--layouts/community/split_3x6_3/manna-harbour_miryoku/keymap.c4
-rw-r--r--layouts/community/split_3x6_3/readme.md3
-rw-r--r--layouts/community/tkl_ansi/brandonschlack/config.h29
-rw-r--r--layouts/community/tkl_ansi/brandonschlack/keymap.c98
-rw-r--r--layouts/community/tkl_ansi/brandonschlack/readme.md55
-rw-r--r--layouts/community/tkl_ansi/brandonschlack/rules.mk4
-rw-r--r--layouts/community/tkl_ansi/readme.md3
-rw-r--r--layouts/community/tkl_ansi/talljoe-tkl/config.h35
-rw-r--r--layouts/community/tkl_ansi/talljoe-tkl/keymap.c1
-rw-r--r--layouts/community/tkl_ansi/talljoe-tkl/rules.mk1
-rw-r--r--layouts/community/tkl_ansi/xyverz/keymap.c69
-rw-r--r--layouts/community/tkl_ansi/xyverz/readme.md1
-rw-r--r--layouts/community/tkl_ansi/yanfali/keymap.c25
-rw-r--r--layouts/community/tkl_ansi_split_bs_rshift/readme.md3
-rw-r--r--layouts/community/tkl_ansi_tsangan/readme.md3
-rw-r--r--layouts/community/tkl_ansi_tsangan_split_bs_rshift/readme.md3
-rw-r--r--layouts/community/tkl_f13_ansi/readme.md3
-rw-r--r--layouts/community/tkl_f13_ansi_split_bs_rshift/readme.md3
-rw-r--r--layouts/community/tkl_f13_ansi_tsangan/readme.md3
-rw-r--r--layouts/community/tkl_f13_ansi_tsangan_split_bs_rshift/readme.md3
-rw-r--r--layouts/community/tkl_f13_iso/readme.md3
-rw-r--r--layouts/community/tkl_f13_iso_split_bs_rshift/readme.md3
-rw-r--r--layouts/community/tkl_f13_iso_tsangan/readme.md3
-rw-r--r--layouts/community/tkl_f13_iso_tsangan_split_bs_rshift/readme.md3
-rw-r--r--layouts/community/tkl_f13_jis/readme.md3
-rw-r--r--layouts/community/tkl_iso/readme.md3
-rw-r--r--layouts/community/tkl_iso_split_bs_rshift/readme.md3
-rw-r--r--layouts/community/tkl_iso_tsangan/readme.md3
-rw-r--r--layouts/community/tkl_iso_tsangan_split_bs_rshift/readme.md3
-rw-r--r--layouts/community/tkl_jis/readme.md3
-rw-r--r--layouts/community/tkl_nofrow_ansi/readme.md3
-rw-r--r--layouts/community/tkl_nofrow_iso/readme.md3
-rw-r--r--layouts/default/fullsize_extended_ansi/default_fullsize_extended_ansi/keymap.c32
-rw-r--r--layouts/default/fullsize_extended_ansi/info.json124
-rw-r--r--layouts/default/fullsize_extended_ansi/layout.json6
-rw-r--r--layouts/default/fullsize_extended_ansi/readme.md3
-rw-r--r--layouts/default/fullsize_extended_iso/default_fullsize_extended_iso/keymap.c32
-rw-r--r--layouts/default/fullsize_extended_iso/info.json125
-rw-r--r--layouts/default/fullsize_extended_iso/layout.json6
-rw-r--r--layouts/default/fullsize_extended_iso/readme.md3
-rw-r--r--layouts/default/fullsize_extended_jis/default_fullsize_extended_jis/keymap.c32
-rw-r--r--layouts/default/fullsize_extended_jis/info.json129
-rw-r--r--layouts/default/fullsize_extended_jis/layout.json6
-rw-r--r--layouts/default/fullsize_extended_jis/readme.md3
-rw-r--r--layouts/default/readme.md54
-rw-r--r--lib/python/qmk/build_targets.py238
-rw-r--r--lib/python/qmk/cli/__init__.py5
-rw-r--r--lib/python/qmk/cli/c2json.py59
-rw-r--r--lib/python/qmk/cli/ci/validate_aliases.py7
-rw-r--r--lib/python/qmk/cli/clean.py4
-rwxr-xr-xlib/python/qmk/cli/compile.py62
-rwxr-xr-xlib/python/qmk/cli/doctor/main.py25
-rw-r--r--lib/python/qmk/cli/find.py14
-rw-r--r--lib/python/qmk/cli/flash.py45
-rwxr-xr-xlib/python/qmk/cli/format/json.py70
-rwxr-xr-xlib/python/qmk/cli/generate/api.py4
-rwxr-xr-xlib/python/qmk/cli/generate/compilation_database.py16
-rwxr-xr-xlib/python/qmk/cli/generate/config_h.py59
-rwxr-xr-xlib/python/qmk/cli/generate/keyboard_c.py27
-rw-r--r--lib/python/qmk/cli/generate/keycodes.py8
-rwxr-xr-xlib/python/qmk/cli/generate/rules_mk.py26
-rwxr-xr-xlib/python/qmk/cli/mass_compile.py31
-rwxr-xr-xlib/python/qmk/cli/new/keymap.py8
-rw-r--r--lib/python/qmk/cli/userspace/__init__.py5
-rw-r--r--lib/python/qmk/cli/userspace/add.py51
-rw-r--r--lib/python/qmk/cli/userspace/compile.py38
-rw-r--r--lib/python/qmk/cli/userspace/doctor.py11
-rw-r--r--lib/python/qmk/cli/userspace/list.py51
-rw-r--r--lib/python/qmk/cli/userspace/remove.py37
-rw-r--r--lib/python/qmk/commands.py172
-rw-r--r--lib/python/qmk/constants.py8
-rw-r--r--lib/python/qmk/info.py96
-rwxr-xr-xlib/python/qmk/json_encoders.py18
-rw-r--r--lib/python/qmk/keyboard.py90
-rw-r--r--lib/python/qmk/keymap.py137
-rw-r--r--lib/python/qmk/path.py65
-rw-r--r--lib/python/qmk/search.py47
-rw-r--r--lib/python/qmk/userspace.py185
-rw-r--r--platforms/arm_atsam/_util.h9
-rw-r--r--platforms/avr/_util.h10
-rw-r--r--platforms/avr/drivers/ws2812_bitbang.c4
-rw-r--r--platforms/avr/drivers/ws2812_i2c.c4
-rw-r--r--platforms/avr/flash.mk4
-rw-r--r--platforms/avr/platform.mk23
-rw-r--r--platforms/chibios/_pin_defs.h527
-rw-r--r--platforms/chibios/_util.h9
-rw-r--r--platforms/chibios/boards/BONSAI_C4/configs/config.h6
-rw-r--r--platforms/chibios/boards/BONSAI_C4/configs/halconf.h2
-rw-r--r--platforms/chibios/boards/GENERIC_PROMICRO_RP2040/configs/mcuconf.h1
-rw-r--r--platforms/chibios/boards/GENERIC_RP_RP2040/configs/mcuconf.h1
-rw-r--r--platforms/chibios/boards/GENERIC_WB32_F3G71XX/board/board.c5
-rw-r--r--platforms/chibios/boards/GENERIC_WB32_FQ95XX/board/board.c5
-rw-r--r--platforms/chibios/boards/QMK_BLOK/configs/mcuconf.h1
-rw-r--r--platforms/chibios/boards/QMK_PM2040/configs/mcuconf.h1
-rw-r--r--platforms/chibios/bootloader.mk1
-rw-r--r--platforms/chibios/chibios_config.h4
-rw-r--r--platforms/chibios/drivers/audio_dac_additive.c28
-rw-r--r--platforms/chibios/drivers/eeprom/eeprom_kinetis_flexram.c8
-rw-r--r--platforms/chibios/drivers/serial.c2
-rw-r--r--platforms/chibios/drivers/spi_master.c72
-rw-r--r--platforms/chibios/drivers/vendor/RP/RP2040/ws2812_vendor.c2
-rw-r--r--platforms/chibios/drivers/wear_leveling/wear_leveling_efl.c32
-rw-r--r--platforms/chibios/drivers/wear_leveling/wear_leveling_efl_config.h2
-rw-r--r--platforms/chibios/drivers/wear_leveling/wear_leveling_rp2040_flash.c4
-rw-r--r--platforms/chibios/drivers/wear_leveling/wear_leveling_rp2040_flash_config.h2
-rw-r--r--platforms/chibios/drivers/ws2812_bitbang.c2
-rw-r--r--platforms/chibios/drivers/ws2812_pwm.c2
-rw-r--r--platforms/chibios/drivers/ws2812_spi.c20
-rw-r--r--platforms/chibios/interrupt_handlers.c45
-rw-r--r--platforms/chibios/platform.mk8
-rw-r--r--platforms/chibios/vendors/RP/stage2_bootloaders.c12
-rw-r--r--platforms/test/timer.c41
-rw-r--r--quantum/action.c6
-rw-r--r--quantum/action_tapping.c78
-rw-r--r--quantum/action_util.c57
-rw-r--r--quantum/action_util.h9
-rw-r--r--quantum/backlight/backlight.c21
-rw-r--r--quantum/color.c2
-rw-r--r--quantum/color.h52
-rw-r--r--quantum/command.c5
-rw-r--r--quantum/debounce/none.c10
-rw-r--r--quantum/debounce/sym_defer_g.c15
-rw-r--r--quantum/debounce/sym_eager_pr.c4
-rw-r--r--quantum/debounce/tests/asym_eager_defer_pk_tests.cpp29
-rw-r--r--quantum/debounce/tests/debounce_test_common.cpp25
-rw-r--r--quantum/debounce/tests/debounce_test_common.h5
-rw-r--r--quantum/debounce/tests/none_tests.cpp256
-rw-r--r--quantum/debounce/tests/rules.mk5
-rw-r--r--quantum/debounce/tests/sym_defer_g_tests.cpp18
-rw-r--r--quantum/debounce/tests/sym_defer_pk_tests.cpp18
-rw-r--r--quantum/debounce/tests/sym_defer_pr_tests.cpp18
-rw-r--r--quantum/debounce/tests/sym_eager_pk_tests.cpp18
-rw-r--r--quantum/debounce/tests/sym_eager_pr_tests.cpp18
-rw-r--r--quantum/debounce/tests/testlist.mk1
-rw-r--r--quantum/eeconfig.c6
-rw-r--r--quantum/eeconfig.h3
-rw-r--r--quantum/haptic.c12
-rw-r--r--quantum/keyboard.c23
-rw-r--r--quantum/keycodes.h22
-rw-r--r--quantum/keymap_common.c10
-rw-r--r--quantum/keymap_extras/keymap_russian_typewriter.h93
-rw-r--r--quantum/keymap_extras/keymap_steno.h119
-rw-r--r--quantum/led_matrix/led_matrix.c77
-rw-r--r--quantum/led_matrix/led_matrix.h103
-rw-r--r--quantum/led_matrix/led_matrix_drivers.c249
-rw-r--r--quantum/led_matrix/led_matrix_types.h15
-rw-r--r--quantum/mousekey.c15
-rw-r--r--quantum/painter/lvgl/qp_lvgl.c11
-rw-r--r--quantum/painter/lvgl/qp_lvgl.h4
-rw-r--r--quantum/painter/qff.c8
-rw-r--r--quantum/painter/qff.h2
-rw-r--r--quantum/painter/qgf.c39
-rw-r--r--quantum/painter/qgf.h6
-rw-r--r--quantum/painter/qp.c123
-rw-r--r--quantum/painter/qp.h41
-rw-r--r--quantum/painter/qp_draw_ellipse.c12
-rw-r--r--quantum/painter/qp_draw_image.c9
-rw-r--r--quantum/painter/qp_draw_text.c3
-rw-r--r--quantum/painter/qp_internal.c1
-rw-r--r--quantum/painter/qp_internal_formats.h4
-rw-r--r--quantum/painter/rules.mk86
-rw-r--r--quantum/pointing_device/pointing_device.h3
-rw-r--r--quantum/pointing_device/pointing_device_drivers.c113
-rw-r--r--quantum/process_keycode/process_auto_shift.c29
-rw-r--r--quantum/process_keycode/process_auto_shift.h1
-rw-r--r--quantum/process_keycode/process_clicky.c2
-rw-r--r--quantum/process_keycode/process_steno.c1
-rw-r--r--quantum/process_keycode/process_steno.h1
-rw-r--r--quantum/quantum.c35
-rw-r--r--quantum/quantum.h10
-rw-r--r--quantum/rgb_matrix/animations/flower_blooming_anim.h53
-rw-r--r--quantum/rgb_matrix/animations/rgb_matrix_effects.inc5
-rw-r--r--quantum/rgb_matrix/animations/riverflow_anim.h22
-rw-r--r--quantum/rgb_matrix/animations/starlight_anim.h30
-rw-r--r--quantum/rgb_matrix/animations/starlight_dual_hue_anim.h31
-rw-r--r--quantum/rgb_matrix/animations/starlight_dual_sat_anim.h31
-rw-r--r--quantum/rgb_matrix/rgb_matrix.c87
-rw-r--r--quantum/rgb_matrix/rgb_matrix.h120
-rw-r--r--quantum/rgb_matrix/rgb_matrix_drivers.c412
-rw-r--r--quantum/rgb_matrix/rgb_matrix_types.h15
-rw-r--r--quantum/rgblight/rgblight.c137
-rw-r--r--quantum/rgblight/rgblight.h27
-rw-r--r--quantum/split_common/split_util.c73
-rw-r--r--quantum/steno_keycodes.h119
-rw-r--r--quantum/util.h8
-rw-r--r--quantum/velocikey.c40
-rw-r--r--quantum/velocikey.h10
-rw-r--r--quantum/via.c10
-rw-r--r--tests/auto_shift/auto_shift_repeat/auto_shift_no_auto_repeat/config.h22
-rw-r--r--tests/auto_shift/auto_shift_repeat/auto_shift_no_auto_repeat/test.mk20
-rw-r--r--tests/auto_shift/auto_shift_repeat/auto_shift_no_auto_repeat/test_auto_shift.cpp105
-rw-r--r--tests/auto_shift/auto_shift_repeat/config.h21
-rw-r--r--tests/auto_shift/auto_shift_repeat/test.mk20
-rw-r--r--tests/auto_shift/auto_shift_repeat/test_auto_shift.cpp107
-rw-r--r--tests/auto_shift/config.h2
-rw-r--r--tests/auto_shift/retro_shift/tap_hold_configurations/default_mod_tap/config.h24
-rw-r--r--tests/auto_shift/retro_shift/tap_hold_configurations/default_mod_tap/no_timeout/config.h21
-rw-r--r--tests/auto_shift/retro_shift/tap_hold_configurations/default_mod_tap/no_timeout/test.mk20
-rw-r--r--tests/auto_shift/retro_shift/tap_hold_configurations/default_mod_tap/no_timeout/test_retro_shift.cpp57
-rw-r--r--tests/auto_shift/retro_shift/tap_hold_configurations/default_mod_tap/test.mk20
-rw-r--r--tests/auto_shift/retro_shift/tap_hold_configurations/default_mod_tap/test_retro_shift.cpp485
-rw-r--r--tests/auto_shift/retro_shift/tap_hold_configurations/hold_on_other_key_press/config.h26
-rw-r--r--tests/auto_shift/retro_shift/tap_hold_configurations/hold_on_other_key_press/test.mk20
-rw-r--r--tests/auto_shift/retro_shift/tap_hold_configurations/hold_on_other_key_press/test_retro_shift.cpp442
-rw-r--r--tests/auto_shift/retro_shift/tap_hold_configurations/permissive_hold/config.h26
-rw-r--r--tests/auto_shift/retro_shift/tap_hold_configurations/permissive_hold/test.mk20
-rw-r--r--tests/auto_shift/retro_shift/tap_hold_configurations/permissive_hold/test_retro_shift.cpp419
-rw-r--r--tests/auto_shift/retro_shift/tap_hold_configurations/permissive_hold_hold_on_other_key_press/config.h27
-rw-r--r--tests/auto_shift/retro_shift/tap_hold_configurations/permissive_hold_hold_on_other_key_press/test.mk20
-rw-r--r--tests/auto_shift/retro_shift/tap_hold_configurations/permissive_hold_hold_on_other_key_press/test_retro_shift.cpp442
-rw-r--r--tests/auto_shift/test.mk2
-rw-r--r--tests/basic/config.h2
-rw-r--r--tests/basic/test.mk2
-rw-r--r--tests/basic/test_one_shot_keys.cpp46
-rw-r--r--tests/caps_word/auto_shift/config.h21
-rw-r--r--tests/caps_word/auto_shift/retro_shift/config.h (renamed from tests/caps_word/caps_word_autoshift/config.h)0
-rw-r--r--tests/caps_word/auto_shift/retro_shift/test.mk (renamed from tests/caps_word/caps_word_autoshift/test.mk)0
-rw-r--r--tests/caps_word/auto_shift/retro_shift/test_caps_word_retroshift.cpp141
-rw-r--r--tests/caps_word/auto_shift/test.mk18
-rw-r--r--tests/caps_word/auto_shift/test_caps_word_autoshift.cpp66
-rw-r--r--tests/caps_word/caps_word_autoshift/test_caps_word_autoshift.cpp137
-rw-r--r--tests/caps_word/unicodemap/config.h (renamed from tests/caps_word/caps_word_unicodemap/config.h)0
-rw-r--r--tests/caps_word/unicodemap/test.mk (renamed from tests/caps_word/caps_word_unicodemap/test.mk)0
-rw-r--r--tests/caps_word/unicodemap/test_caps_word_unicodemap.cpp (renamed from tests/caps_word/caps_word_unicodemap/test_caps_word_unicodemap.cpp)0
-rw-r--r--tests/tap_hold_configurations/default_mod_tap/test.mk2
-rw-r--r--tests/tap_hold_configurations/permissive_hold/config.h2
-rw-r--r--tests/test_common/build.mk2
-rw-r--r--tests/test_common/keyboard_report_util.cpp4
-rw-r--r--tests/test_common/main.cpp2
-rw-r--r--tests/test_common/test_common.h2
-rw-r--r--tests/test_common/test_driver.cpp6
-rw-r--r--tests/test_common/test_driver.hpp2
-rw-r--r--tmk_core/protocol.mk4
-rw-r--r--tmk_core/protocol/arm_atsam/main_arm_atsam.c59
-rw-r--r--tmk_core/protocol/arm_atsam/usb/udi_device_epsize.h2
-rw-r--r--tmk_core/protocol/chibios/chibios.c3
-rw-r--r--tmk_core/protocol/chibios/usb_main.c173
-rw-r--r--tmk_core/protocol/host.c33
-rw-r--r--tmk_core/protocol/host.h4
-rw-r--r--tmk_core/protocol/host_driver.h1
-rw-r--r--tmk_core/protocol/lufa/lufa.c34
-rw-r--r--tmk_core/protocol/report.c43
-rw-r--r--tmk_core/protocol/report.h166
-rw-r--r--tmk_core/protocol/usb_descriptor.c4
-rw-r--r--tmk_core/protocol/usb_descriptor.h2
-rw-r--r--tmk_core/protocol/usb_types.h23
-rw-r--r--tmk_core/protocol/vusb/protocol.c1
-rw-r--r--tmk_core/protocol/vusb/vusb.c276
-rw-r--r--tmk_core/protocol/vusb/vusb.h1
-rw-r--r--users/333fred/333fred.c144
-rw-r--r--users/333fred/333fred.h51
-rw-r--r--users/333fred/config.h27
-rw-r--r--users/333fred/layout_macros.h66
-rw-r--r--users/333fred/rgb.c50
-rw-r--r--users/333fred/rules.mk10
-rw-r--r--users/ajp10304/ajp10304.c176
-rw-r--r--users/ajp10304/ajp10304.h63
-rw-r--r--users/ajp10304/readme.md141
-rw-r--r--users/ajp10304/rules.mk1
-rw-r--r--users/alfrdmalr/alfrdmalr.c91
-rw-r--r--users/alfrdmalr/alfrdmalr.h286
-rw-r--r--users/alfrdmalr/config.h7
-rw-r--r--users/alfrdmalr/readme.md46
-rw-r--r--users/alfrdmalr/rules.mk8
-rw-r--r--users/anderson/dmc12.c46
-rw-r--r--users/anderson/dmc12.h9
-rw-r--r--users/anderson/seq.c38
-rw-r--r--users/anderson/seq.h14
-rw-r--r--users/anderson/smoothled.c34
-rw-r--r--users/anderson/smoothled.h6
-rw-r--r--users/arkag/arkag.c456
-rw-r--r--users/arkag/arkag.h105
-rw-r--r--users/arkag/config.h22
-rw-r--r--users/arkag/readme.md42
-rw-r--r--users/arkag/rules.mk4
-rw-r--r--users/art/.gitignore3
-rw-r--r--users/art/art.c722
-rw-r--r--users/art/art.h107
-rw-r--r--users/art/art_user_config.h.example7
-rw-r--r--users/art/config.h14
-rw-r--r--users/art/custom_definitions.h.example8
-rw-r--r--users/art/funcs/led_funcs.c55
-rw-r--r--users/art/funcs/led_funcs.h17
-rw-r--r--users/art/funcs/string_funcs.c307
-rw-r--r--users/art/funcs/string_funcs.h14
-rw-r--r--users/art/rules.mk15
-rw-r--r--users/art/secr.h.example9
-rw-r--r--users/badger/README.md31
-rw-r--r--users/badger/badger.c49
-rw-r--r--users/badger/badger.h109
-rw-r--r--users/badger/ortho.c151
-rw-r--r--users/badger/ortho.h58
-rw-r--r--users/badger/rules.mk2
-rw-r--r--users/bcat/bcat.c61
-rw-r--r--users/bcat/bcat.h58
-rw-r--r--users/bcat/bcat_oled.c216
-rw-r--r--users/bcat/bcat_oled.h55
-rw-r--r--users/bcat/bcat_oled_pet.h73
-rw-r--r--users/bcat/bcat_oled_pet_isda.c134
-rw-r--r--users/bcat/bcat_oled_pet_luna.c168
-rw-r--r--users/bcat/bcat_rgblight.c22
-rwxr-xr-xusers/bcat/compile.sh52
-rw-r--r--users/bcat/config.h150
-rw-r--r--users/bcat/readme.md51
-rw-r--r--users/bcat/rules.mk68
-rw-r--r--users/billypython/billypython.c32
-rw-r--r--users/billypython/billypython.h34
-rw-r--r--users/billypython/config.h17
-rw-r--r--users/billypython/rules.mk6
-rw-r--r--users/billypython/tap_dance.c33
-rw-r--r--users/billypython/tap_dance.h9
-rw-r--r--users/brandonschlack/brandonschlack.c214
-rw-r--r--users/brandonschlack/brandonschlack.h84
-rw-r--r--users/brandonschlack/config.h55
-rw-r--r--users/brandonschlack/process_records.c172
-rw-r--r--users/brandonschlack/process_records.h152
-rw-r--r--users/brandonschlack/readme.md48
-rw-r--r--users/brandonschlack/rgb_bs.c146
-rw-r--r--users/brandonschlack/rgb_bs.h35
-rw-r--r--users/brandonschlack/rgb_theme.h50
-rw-r--r--users/brandonschlack/rgb_theme_user.inc95
-rw-r--r--users/brandonschlack/rules.mk34
-rw-r--r--users/brandonschlack/tap_dances.c91
-rw-r--r--users/brandonschlack/tap_dances.h52
-rw-r--r--users/brett/brett.c61
-rw-r--r--users/brett/brett.h25
-rw-r--r--users/brett/rules.mk1
-rw-r--r--users/byungyoonc/byungyoonc.c48
-rw-r--r--users/byungyoonc/byungyoonc.h27
-rw-r--r--users/byungyoonc/readme.md14
-rw-r--r--users/byungyoonc/rules.mk1
-rw-r--r--users/byungyoonc/saturated_solid_multisplash.h50
-rw-r--r--users/callum/callum.c130
-rw-r--r--users/callum/oneshot.c57
-rw-r--r--users/callum/oneshot.h31
-rw-r--r--users/callum/readme.md99
-rw-r--r--users/callum/rules.mk3
-rw-r--r--users/callum/swapper.c27
-rw-r--r--users/callum/swapper.h20
-rw-r--r--users/cameronjlarsen/features/oneshot.c66
-rw-r--r--users/cameronjlarsen/features/oneshot.h41
-rw-r--r--users/cameronjlarsen/rules.mk5
-rw-r--r--users/cbbrowne/cbbrowne.c0
-rw-r--r--users/cbbrowne/cbbrowne.h39
-rw-r--r--users/cbbrowne/rules.mk1
-rw-r--r--users/cedrikl/cedrikl.c36
-rw-r--r--users/cedrikl/cedrikl.h21
-rw-r--r--users/cedrikl/config.h25
-rw-r--r--users/cedrikl/rules.mk4
-rw-r--r--users/charlesrocket/apl.c183
-rw-r--r--users/charlesrocket/rules.mk3
-rw-r--r--users/cjuniet/cjuniet.c13
-rw-r--r--users/cjuniet/cjuniet.h5
-rw-r--r--users/cjuniet/glcdfont.c230
-rw-r--r--users/cjuniet/readme.md14
-rw-r--r--users/cjuniet/rules.mk1
-rw-r--r--users/csc027/csc027.c70
-rw-r--r--users/csc027/csc027.h46
-rw-r--r--users/csc027/custom_audio.c34
-rw-r--r--users/csc027/custom_audio.h25
-rw-r--r--users/csc027/custom_rgb.c42
-rw-r--r--users/csc027/custom_rgb.h26
-rw-r--r--users/csc027/defines.h345
-rw-r--r--users/csc027/rules.mk11
-rw-r--r--users/csc027/usb_led.c49
-rw-r--r--users/csc027/usb_led.h20
-rw-r--r--users/curry/.gitignore1
-rw-r--r--users/curry/LICENSE14
-rw-r--r--users/curry/README.md30
-rw-r--r--users/curry/config.h112
-rw-r--r--users/curry/curry.c132
-rw-r--r--users/curry/curry.h67
-rw-r--r--users/curry/glcdfont.c232
-rw-r--r--users/curry/leader_user.c31
-rw-r--r--users/curry/leader_user.h3
-rw-r--r--users/curry/oled.c172
-rw-r--r--users/curry/process_records.c76
-rw-r--r--users/curry/process_records.h101
-rw-r--r--users/curry/rgb_lighting_user.c331
-rw-r--r--users/curry/rgb_lighting_user.h19
-rw-r--r--users/curry/rgb_matrix_user.c153
-rw-r--r--users/curry/rgb_matrix_user.h7
-rw-r--r--users/curry/rgblight_breathe_table.h118
-rw-r--r--users/curry/rules.mk71
-rw-r--r--users/curry/tap_dances.c4
-rw-r--r--users/curry/tap_dances.h1
-rw-r--r--users/curry/wrappers.h88
-rw-r--r--users/cwebster2/config.h56
-rw-r--r--users/cwebster2/cwebster2.c65
-rw-r--r--users/cwebster2/cwebster2.h51
-rw-r--r--users/cwebster2/keycodes.c54
-rw-r--r--users/cwebster2/keycodes.h27
-rw-r--r--users/cwebster2/my_miryoku.h77
-rw-r--r--users/cwebster2/rules.mk13
-rw-r--r--users/d4mation/config.h1
-rw-r--r--users/d4mation/d4mation.c37
-rw-r--r--users/d4mation/d4mation.h17
-rw-r--r--users/d4mation/macros.c160
-rw-r--r--users/d4mation/macros.h23
-rw-r--r--users/d4mation/rules.mk15
-rw-r--r--users/d4mation/tap-dance.c6
-rw-r--r--users/d4mation/tap-dance.h7
-rw-r--r--users/d4mation/tap-hold.c28
-rw-r--r--users/d4mation/tap-hold.h5
-rw-r--r--users/d4mation/zalgo.c21
-rw-r--r--users/d4mation/zalgo.h5
-rw-r--r--users/danielo515/alt_tab.c38
-rw-r--r--users/danielo515/alt_tab.h4
-rw-r--r--users/danielo515/combo.c44
-rw-r--r--users/danielo515/combo.h2
-rw-r--r--users/danielo515/config.h9
-rw-r--r--users/danielo515/danielo515.c124
-rw-r--r--users/danielo515/danielo515.h7
-rw-r--r--users/danielo515/process_records.c197
-rw-r--r--users/danielo515/process_records.h108
-rw-r--r--users/danielo515/readme.md14
-rw-r--r--users/danielo515/rules.mk11
-rw-r--r--users/danielo515/tap_dance.c139
-rw-r--r--users/danielo515/tap_dance.h81
-rw-r--r--users/datagrok/README.md63
-rw-r--r--users/datagrok/feature_cdeq.c47
-rw-r--r--users/datagrok/feature_cdeq.h2
-rw-r--r--users/datagrok/feature_default_layers_selector.c46
-rw-r--r--users/datagrok/feature_default_layers_selector.h69
-rw-r--r--users/davidkristoffersen/davidkristoffersen.h18
-rw-r--r--users/davidkristoffersen/hardware/readme.md3
-rw-r--r--users/davidkristoffersen/hardware/split_space.c23
-rw-r--r--users/davidkristoffersen/hardware/split_space.h16
-rw-r--r--users/davidkristoffersen/macros/debug.c36
-rw-r--r--users/davidkristoffersen/macros/language.c40
-rw-r--r--users/davidkristoffersen/macros/macros.c16
-rw-r--r--users/davidkristoffersen/macros/macros.h23
-rw-r--r--users/davidkristoffersen/macros/norwegian.h19
-rw-r--r--users/davidkristoffersen/macros/readme.md3
-rw-r--r--users/davidkristoffersen/post_config.h8
-rw-r--r--users/davidkristoffersen/readme.md3
-rw-r--r--users/davidkristoffersen/rules.mk12
-rw-r--r--users/davidkristoffersen/util/functions.c111
-rw-r--r--users/davidkristoffersen/util/functions.h30
-rw-r--r--users/davidkristoffersen/util/readme.md3
-rw-r--r--users/dennytom/chording_engine/README.md376
-rw-r--r--users/dennytom/chording_engine/chord.py465
-rw-r--r--users/dennytom/chording_engine/engine.part.1163
-rw-r--r--users/dennytom/chording_engine/engine.part.2323
-rw-r--r--users/dennytom/chording_engine/engine.part.3404
-rw-r--r--users/dennytom/chording_engine/keymap_def.schema.json337
-rw-r--r--users/dennytom/chording_engine/parser.py231
-rw-r--r--users/dennytom/chording_engine/state_machine.dot49
-rw-r--r--users/dennytom/chording_engine/state_machine.svg235
-rw-r--r--users/dennytom/chording_engine/tests/minunit.h288
-rw-r--r--users/dennytom/chording_engine/tests/test.c1259
-rw-r--r--users/dennytom/chording_engine/tests/test_full.sh11
-rw-r--r--users/dennytom/chording_engine/tests/test_keymap_def.json145
-rw-r--r--users/dennytom/chording_engine/tests/test_quick.sh6
-rw-r--r--users/devdev/config.h30
-rw-r--r--users/devdev/glcdfont.c465
-rw-r--r--users/dhertz/config.h9
-rw-r--r--users/dhertz/dhertz.c109
-rw-r--r--users/dhertz/dhertz.h28
-rw-r--r--users/dhertz/rules.mk1
-rw-r--r--users/doogle999/doogle999.c460
-rw-r--r--users/doogle999/doogle999.h99
-rw-r--r--users/doogle999/readme.md41
-rw-r--r--users/doogle999/rules.mk14
-rw-r--r--users/draevin/LICENSE14
-rw-r--r--users/draevin/README.md38
-rw-r--r--users/draevin/config.h26
-rw-r--r--users/draevin/draevin.c59
-rw-r--r--users/draevin/draevin.h39
-rw-r--r--users/draevin/rules.mk12
-rw-r--r--users/draevin/wrappers.h49
-rw-r--r--users/drashna/.gitignore3
-rw-r--r--users/drashna/.gitlab-ci.yml24
-rw-r--r--users/drashna/audio_config.h33
-rw-r--r--users/drashna/autocorrect_data.h93
-rw-r--r--users/drashna/bootmagic_better.c56
-rw-r--r--users/drashna/callbacks.c293
-rw-r--r--users/drashna/callbacks.h26
-rw-r--r--users/drashna/callbacks.md66
-rw-r--r--users/drashna/config.h115
-rw-r--r--users/drashna/drashna.c319
-rw-r--r--users/drashna/drashna.h115
-rw-r--r--users/drashna/eeconfig_users.c53
-rw-r--r--users/drashna/eeconfig_users.h12
-rw-r--r--users/drashna/keyrecords/dynamic_macros.c283
-rw-r--r--users/drashna/keyrecords/dynamic_macros.h50
-rw-r--r--users/drashna/keyrecords/keycodes.md13
-rw-r--r--users/drashna/keyrecords/process_records.c200
-rw-r--r--users/drashna/keyrecords/process_records.h150
-rw-r--r--users/drashna/keyrecords/readme.md7
-rw-r--r--users/drashna/keyrecords/secrets.md122
-rw-r--r--users/drashna/keyrecords/tap_dance.md121
-rw-r--r--users/drashna/keyrecords/tap_dances.c67
-rw-r--r--users/drashna/keyrecords/tap_dances.h31
-rw-r--r--users/drashna/keyrecords/tapping.c66
-rw-r--r--users/drashna/keyrecords/unicode.c446
-rw-r--r--users/drashna/keyrecords/unicode.h21
-rw-r--r--users/drashna/keyrecords/unicode.md27
-rw-r--r--users/drashna/keyrecords/wrappers.h266
-rw-r--r--users/drashna/keyrecords/wrappers.md11
-rw-r--r--users/drashna/oled/drashna_font.h1060
-rw-r--r--users/drashna/oled/oled_assets.h207
-rw-r--r--users/drashna/oled/oled_config.h40
-rw-r--r--users/drashna/oled/oled_stuff.c830
-rw-r--r--users/drashna/oled/oled_stuff.h169
-rw-r--r--users/drashna/oled/readme.md42
-rw-r--r--users/drashna/oled/rules.mk12
-rw-r--r--users/drashna/pointing/pointing.c118
-rw-r--r--users/drashna/pointing/pointing.h11
-rw-r--r--users/drashna/pointing/pointing_config.h6
-rw-r--r--users/drashna/pointing/readme.md19
-rw-r--r--users/drashna/post_config.h143
-rw-r--r--users/drashna/readme.md17
-rw-r--r--users/drashna/rgb/readme.md52
-rw-r--r--users/drashna/rgb/rgb_matrix_config.h106
-rw-r--r--users/drashna/rgb/rgb_matrix_stuff.c190
-rw-r--r--users/drashna/rgb/rgb_matrix_stuff.h17
-rw-r--r--users/drashna/rgb/rgb_stuff.c165
-rw-r--r--users/drashna/rgb/rgb_stuff.h15
-rw-r--r--users/drashna/rgb/rgblight_config.h12
-rw-r--r--users/drashna/rgblight_breathe_table.h121
-rw-r--r--users/drashna/rules.mk136
-rw-r--r--users/drashna/split/readme.md29
-rw-r--r--users/drashna/split/split_config.h26
-rw-r--r--users/drashna/split/transport_sync.c201
-rw-r--r--users/drashna/split/transport_sync.h28
-rw-r--r--users/drashna/template.c70
-rw-r--r--users/drashna/template.h18
-rw-r--r--users/dshields/config.h64
-rw-r--r--users/dshields/dshields.c57
-rw-r--r--users/dshields/dshields.h65
-rw-r--r--users/dshields/rules.mk31
-rw-r--r--users/dudeofawesome/dudeofawesome.c1
-rw-r--r--users/dudeofawesome/dudeofawesome.h29
-rw-r--r--users/dudeofawesome/rules.mk1
-rw-r--r--users/dvorak_42_key/config.h8
-rw-r--r--users/dvorak_42_key/dvorak_42_key.c205
-rw-r--r--users/dvorak_42_key/dvorak_42_key.h161
-rw-r--r--users/dvorak_42_key/rules.mk7
-rw-r--r--users/dvorak_42_key/vscode_macros.h35
-rw-r--r--users/edvorakjp/edvorakjp.c22
-rw-r--r--users/edvorakjp/edvorakjp.h90
-rw-r--r--users/edvorakjp/edvorakjp_process_record.c89
-rw-r--r--users/edvorakjp/edvorakjp_status.c56
-rw-r--r--users/edvorakjp/edvorakjp_tap_dance.c78
-rw-r--r--users/edvorakjp/readme.md67
-rw-r--r--users/edvorakjp/rules.mk7
-rw-r--r--users/ericgebhart/base_layers/accents.h90
-rw-r--r--users/ericgebhart/base_layers/alt.h150
-rw-r--r--users/ericgebhart/base_layers/base_layers.h58
-rw-r--r--users/ericgebhart/base_layers/beakl.h158
-rw-r--r--users/ericgebhart/base_layers/bepo.h114
-rw-r--r--users/ericgebhart/base_layers/carpalx.h46
-rw-r--r--users/ericgebhart/base_layers/dvorak.h73
-rw-r--r--users/ericgebhart/base_layers/gap.h67
-rw-r--r--users/ericgebhart/base_layers/hands_down.h147
-rw-r--r--users/ericgebhart/base_layers/keymaps.txt300
-rw-r--r--users/ericgebhart/base_layers/maks.h61
-rw-r--r--users/ericgebhart/base_layers/qwerty.h69
-rw-r--r--users/ericgebhart/base_layers/toprows.h56
-rw-r--r--users/ericgebhart/config.h321
-rw-r--r--users/ericgebhart/defs/accented_keys.def101
-rw-r--r--users/ericgebhart/defs/alt_shift.def6
-rw-r--r--users/ericgebhart/defs/altlocal_keys.def208
-rw-r--r--users/ericgebhart/defs/combos.def139
-rw-r--r--users/ericgebhart/defs/custom_keys.def86
-rw-r--r--users/ericgebhart/defs/encoders.def65
-rw-r--r--users/ericgebhart/defs/key_overrides.def23
-rw-r--r--users/ericgebhart/defs/mod_lock.def19
-rw-r--r--users/ericgebhart/defs/not_dead.def19
-rw-r--r--users/ericgebhart/defs/nshot.def45
-rw-r--r--users/ericgebhart/defs/oneshot.def17
-rw-r--r--users/ericgebhart/defs/send_string.def7
-rw-r--r--users/ericgebhart/defs/smart_lock.def123
-rw-r--r--users/ericgebhart/defs/swapper.def3
-rw-r--r--users/ericgebhart/defs/tap_hold.def68
-rw-r--r--users/ericgebhart/defs/unicode.def5
-rwxr-xr-xusers/ericgebhart/ericgebhart.c42
-rwxr-xr-xusers/ericgebhart/ericgebhart.h28
-rw-r--r--users/ericgebhart/extensions/accented_keys.c50
-rw-r--r--users/ericgebhart/extensions/accented_keys.h19
-rw-r--r--users/ericgebhart/extensions/alt_shift.c99
-rw-r--r--users/ericgebhart/extensions/altlocal_keys.c82
-rw-r--r--users/ericgebhart/extensions/altlocal_keys.h56
-rw-r--r--users/ericgebhart/extensions/console_key_logger.c38
-rw-r--r--users/ericgebhart/extensions/console_key_logger.h19
-rw-r--r--users/ericgebhart/extensions/encoders.c83
-rw-r--r--users/ericgebhart/extensions/encoders.h46
-rw-r--r--users/ericgebhart/extensions/extensions.c91
-rw-r--r--users/ericgebhart/extensions/extensions.h22
-rw-r--r--users/ericgebhart/extensions/key_overrides.h53
-rwxr-xr-xusers/ericgebhart/extensions/keycodes.h523
-rw-r--r--users/ericgebhart/extensions/keymap_combo.h136
-rw-r--r--users/ericgebhart/extensions/mod_lock.c81
-rw-r--r--users/ericgebhart/extensions/mod_lock.h39
-rw-r--r--users/ericgebhart/extensions/not_dead.c36
-rw-r--r--users/ericgebhart/extensions/nshot_mod.c154
-rw-r--r--users/ericgebhart/extensions/nshot_mod.h45
-rw-r--r--users/ericgebhart/extensions/oneshot.c217
-rw-r--r--users/ericgebhart/extensions/oneshot.h37
-rw-r--r--users/ericgebhart/extensions/process_locales.h29
-rw-r--r--users/ericgebhart/extensions/process_nshot.h21
-rw-r--r--users/ericgebhart/extensions/process_smart_lock.h19
-rw-r--r--users/ericgebhart/extensions/quick_tap.c37
-rw-r--r--users/ericgebhart/extensions/send_string.c40
-rw-r--r--users/ericgebhart/extensions/smart_lock.c117
-rw-r--r--users/ericgebhart/extensions/smart_lock.h103
-rw-r--r--users/ericgebhart/extensions/swapper.c58
-rw-r--r--users/ericgebhart/extensions/swapper.h37
-rwxr-xr-xusers/ericgebhart/extensions/tap_dances.c277
-rwxr-xr-xusers/ericgebhart/extensions/tap_dances.h19
-rw-r--r--users/ericgebhart/extensions/tap_hold.c165
-rw-r--r--users/ericgebhart/extensions/tap_hold.h20
-rw-r--r--users/ericgebhart/extensions/unicode.c34
-rw-r--r--users/ericgebhart/extensions/unicode.h24
-rw-r--r--users/ericgebhart/keyboards/keyboards.h115
-rw-r--r--users/ericgebhart/keyboards/layouts.h771
-rw-r--r--users/ericgebhart/keymap/keymap.c142
-rw-r--r--users/ericgebhart/keymap/map_accented.h26
-rw-r--r--users/ericgebhart/keymap/map_alt.h69
-rw-r--r--users/ericgebhart/keymap/map_beakl.h48
-rw-r--r--users/ericgebhart/keymap/map_bepo.h40
-rw-r--r--users/ericgebhart/keymap/map_carpalx.h25
-rw-r--r--users/ericgebhart/keymap/map_dvorak.h31
-rw-r--r--users/ericgebhart/keymap/map_funcs.h127
-rw-r--r--users/ericgebhart/keymap/map_gap.h31
-rw-r--r--users/ericgebhart/keymap/map_hd.h117
-rw-r--r--users/ericgebhart/keymap/map_keypads.h66
-rw-r--r--users/ericgebhart/keymap/map_maks.h34
-rw-r--r--users/ericgebhart/keymap/map_qwerty.h25
-rw-r--r--users/ericgebhart/keymap/map_symbols.h56
-rw-r--r--users/ericgebhart/keymap/map_toprows.h45
-rw-r--r--users/ericgebhart/lang/lang.h106
-rw-r--r--users/ericgebhart/lang/lang_map.h78
-rw-r--r--users/ericgebhart/lang/locale_layers.h27
-rw-r--r--users/ericgebhart/lang/locales.c60
-rw-r--r--users/ericgebhart/lang/locales.h42
-rw-r--r--users/ericgebhart/layer_names/base_names.h173
-rw-r--r--users/ericgebhart/layer_names/func_names.h38
-rw-r--r--users/ericgebhart/layer_names/layer_names.h75
-rw-r--r--users/ericgebhart/layer_names/util_names.h59
-rw-r--r--users/ericgebhart/layers/edge_keys.h420
-rw-r--r--users/ericgebhart/layers/keypads.h236
-rwxr-xr-xusers/ericgebhart/layers/layers.h112
-rw-r--r--users/ericgebhart/layers/nav.h199
-rw-r--r--users/ericgebhart/layers/symbols.h225
-rw-r--r--users/ericgebhart/layers/thumbs.h276
-rw-r--r--users/ericgebhart/layers/toprows.h80
-rw-r--r--users/ericgebhart/layers/utility.h125
-rwxr-xr-xusers/ericgebhart/listen_keylogger.sh1
-rw-r--r--users/ericgebhart/miryoku_hd_gold_config.h323
-rw-r--r--users/ericgebhart/mod_layers/alt_mods.h129
-rw-r--r--users/ericgebhart/mod_layers/hrm_gacs.h130
-rw-r--r--users/ericgebhart/mod_layers/hrm_gacs_miryoku.h130
-rw-r--r--users/ericgebhart/mod_layers/hrm_gasc.h130
-rw-r--r--users/ericgebhart/mod_layers/hrm_sacg.h130
-rw-r--r--users/ericgebhart/mod_layers/hrs_nav.h126
-rw-r--r--users/ericgebhart/mod_layers/mod_layer.h155
-rw-r--r--users/ericgebhart/mod_layers/trns_mods.h129
-rw-r--r--users/ericgebhart/oled/oled_cartes.c325
-rw-r--r--users/ericgebhart/oled/oled_layers.c252
-rwxr-xr-xusers/ericgebhart/oled/oled_stuff.c189
-rwxr-xr-xusers/ericgebhart/oled/oled_stuff.h61
-rwxr-xr-xusers/ericgebhart/process_records.c51
-rwxr-xr-xusers/ericgebhart/readme.md1584
-rwxr-xr-xusers/ericgebhart/rules.mk87
-rw-r--r--users/gary/gary.c1
-rw-r--r--users/gary/gary.h42
-rw-r--r--users/gary/readme.md14
-rw-r--r--users/gary/rules.mk1
-rw-r--r--users/gourdo1/autocorrect/autocorrection.c182
-rw-r--r--users/gourdo1/autocorrect/autocorrection.h40
-rw-r--r--users/gourdo1/autocorrect/autocorrection_data.h722
-rw-r--r--users/gourdo1/autocorrect/autocorrection_data.h (large)722
-rw-r--r--users/gourdo1/autocorrect/autocorrection_data.h (small)152
-rw-r--r--users/gourdo1/autocorrect/autocorrection_dict.txt473
-rw-r--r--users/gourdo1/autocorrect/make_autocorrection_data.py303
-rw-r--r--users/gourdo1/custom_double_taps.h101
-rw-r--r--users/gourdo1/gourdo1.c631
-rw-r--r--users/gourdo1/gourdo1.h148
-rw-r--r--users/gourdo1/gourdo1_encoder.c238
-rw-r--r--users/gourdo1/rules.mk31
-rw-r--r--users/greatwizard/config.h40
-rw-r--r--users/greatwizard/fn.h21
-rw-r--r--users/greatwizard/game.c27
-rw-r--r--users/greatwizard/game.h21
-rw-r--r--users/greatwizard/git.c127
-rw-r--r--users/greatwizard/git.h39
-rw-r--r--users/greatwizard/greatwizard.c113
-rw-r--r--users/greatwizard/greatwizard.h135
-rw-r--r--users/greatwizard/keymap_helpers.h61
-rw-r--r--users/greatwizard/ortho.c21
-rw-r--r--users/greatwizard/ortho.h24
-rw-r--r--users/greatwizard/programmer.c174
-rw-r--r--users/greatwizard/programmer.h31
-rw-r--r--users/greatwizard/readme.md32
-rw-r--r--users/greatwizard/rules.mk31
-rw-r--r--users/greatwizard/tap_dances.c105
-rw-r--r--users/greatwizard/tap_dances.h65
-rw-r--r--users/greatwizard/underglow.c109
-rw-r--r--users/greatwizard/underglow.h24
-rw-r--r--users/haervig/config.h19
-rw-r--r--users/haervig/haervig.c234
-rw-r--r--users/haervig/haervig.h297
-rw-r--r--users/haervig/readme.md11
-rw-r--r--users/haervig/rules.mk5
-rw-r--r--users/horrortroll/config.h64
-rw-r--r--users/horrortroll/horrortroll.c165
-rw-r--r--users/horrortroll/horrortroll.h49
-rw-r--r--users/horrortroll/led/cool_diagonal.c22
-rw-r--r--users/horrortroll/led/custom_gradient.c74
-rw-r--r--users/horrortroll/led/flower_blooming/flower_blooming.c27
-rw-r--r--users/horrortroll/led/flower_blooming/flower_blooming.h36
-rw-r--r--users/horrortroll/led/random_breath_rainbow.c55
-rw-r--r--users/horrortroll/readme.md24
-rw-r--r--users/horrortroll/rgb_matrix_user.inc13
-rw-r--r--users/horrortroll/rules.mk6
-rw-r--r--users/hvp/config.h19
-rw-r--r--users/hvp/hvp.c2
-rw-r--r--users/hvp/hvp.h43
-rw-r--r--users/hvp/per_key.c43
-rw-r--r--users/hvp/readme.md1
-rw-r--r--users/hvp/rules.mk9
-rw-r--r--users/hvp/tap_dances.c103
-rw-r--r--users/hvp/tap_dances.h29
-rw-r--r--users/ibnuda/abstraction.c17
-rw-r--r--users/ibnuda/abstraction.h117
-rw-r--r--users/ibnuda/combo.c1
-rw-r--r--users/ibnuda/combo.h96
-rw-r--r--users/ibnuda/config.h5
-rw-r--r--users/ibnuda/ibnuda.c1
-rw-r--r--users/ibnuda/ibnuda.h5
-rw-r--r--users/ibnuda/readme.md14
-rw-r--r--users/ibnuda/rules.mk8
-rw-r--r--users/ibnuda/wrapper.h8
-rw-r--r--users/imchipwood/imchipwood.c141
-rw-r--r--users/imchipwood/imchipwood.h51
-rw-r--r--users/imchipwood/rules.mk2
-rwxr-xr-xusers/ishtob/config.h68
-rw-r--r--users/ishtob/ishtob.c69
-rw-r--r--users/ishtob/ishtob.h237
-rw-r--r--users/ishtob/readme.md87
-rwxr-xr-xusers/ishtob/rules.mk7
-rw-r--r--users/issmirnov/config.h41
-rw-r--r--users/issmirnov/issmirnov.c41
-rw-r--r--users/issmirnov/issmirnov.h35
-rw-r--r--users/issmirnov/rows.h55
-rw-r--r--users/issmirnov/rules.mk25
-rw-r--r--users/issmirnov/tap_tog.c52
-rw-r--r--users/issmirnov/tap_tog.h10
-rw-r--r--users/jackhumbert/jackhumbert.c1
-rw-r--r--users/jackhumbert/jackhumbert.h6
-rw-r--r--users/jackhumbert/readme.md14
-rw-r--r--users/jackhumbert/rules.mk1
-rw-r--r--users/jarred/config.h49
-rw-r--r--users/jarred/jarred.c97
-rw-r--r--users/jarred/jarred.h172
-rw-r--r--users/jarred/readme.md17
-rw-r--r--users/jarred/rules.mk16
-rw-r--r--users/jdelkins/.gitignore1
-rw-r--r--users/jdelkins/jdelkins.c287
-rw-r--r--users/jdelkins/jdelkins.h134
-rw-r--r--users/jdelkins/rules.mk15
-rw-r--r--users/jjerrell/.gitignore1
-rw-r--r--users/jjerrell/config.h26
-rw-r--r--users/jjerrell/jjerrell.c131
-rw-r--r--users/jjerrell/jjerrell.h53
-rw-r--r--users/jjerrell/process_records.c139
-rw-r--r--users/jjerrell/process_records.h41
-rw-r--r--users/jjerrell/readme.md50
-rw-r--r--users/jjerrell/rules.mk27
-rw-r--r--users/jjerrell/wrappers.h329
-rw-r--r--users/jonavin/config.h34
-rw-r--r--users/jonavin/jonavin.c233
-rw-r--r--users/jonavin/jonavin.h130
-rw-r--r--users/jonavin/jonavin_encoder.c219
-rw-r--r--users/jonavin/readme.md124
-rw-r--r--users/jonavin/rules.mk29
-rw-r--r--users/kageurufu/config.h4
-rw-r--r--users/kageurufu/custom_rgb.c18
-rw-r--r--users/kageurufu/custom_rgb.h3
-rw-r--r--users/kageurufu/kageurufu.c12
-rw-r--r--users/kageurufu/kageurufu.h5
-rw-r--r--users/kageurufu/layouts.h58
-rw-r--r--users/kageurufu/process_records.c44
-rw-r--r--users/kageurufu/process_records.h27
-rw-r--r--users/kageurufu/readme.md14
-rw-r--r--users/kageurufu/rules.mk14
-rw-r--r--users/klackygears/klackygears.c75
-rw-r--r--users/klackygears/klackygears.h72
-rw-r--r--users/klackygears/readme.md15
-rw-r--r--users/klackygears/rules.mk6
-rw-r--r--users/klackygears/tap_dances.c184
-rw-r--r--users/klackygears/tap_dances.h37
-rw-r--r--users/klackygears/wrappers.h220
-rw-r--r--users/konstantin/config.h63
-rw-r--r--users/konstantin/konstantin.c144
-rw-r--r--users/konstantin/konstantin.h104
-rw-r--r--users/konstantin/post_config.h22
-rw-r--r--users/konstantin/rgb.c42
-rw-r--r--users/konstantin/rgb.h29
-rw-r--r--users/konstantin/rules.mk18
-rw-r--r--users/konstantin/tap_dance.c135
-rw-r--r--users/konstantin/tap_dance.h45
-rw-r--r--users/konstantin/unicode.c23
-rw-r--r--users/konstantin/unicode.h50
-rw-r--r--users/kuatsure/kuatsure.c122
-rw-r--r--users/kuatsure/kuatsure.h65
-rw-r--r--users/kuatsure/readme.md14
-rw-r--r--users/kuatsure/rules.mk4
-rw-r--r--users/kuchosauronad0/.gitignore3
-rw-r--r--users/kuchosauronad0/combo.c27
-rw-r--r--users/kuchosauronad0/combo.h20
-rw-r--r--users/kuchosauronad0/config.h88
-rw-r--r--users/kuchosauronad0/encoder.c64
-rw-r--r--users/kuchosauronad0/encoder.h4
-rw-r--r--users/kuchosauronad0/kuchosauronad0.c197
-rw-r--r--users/kuchosauronad0/kuchosauronad0.h109
-rw-r--r--users/kuchosauronad0/leader_user.c113
-rw-r--r--users/kuchosauronad0/leader_user.h6
-rw-r--r--users/kuchosauronad0/process_records.c244
-rw-r--r--users/kuchosauronad0/process_records.h91
-rw-r--r--users/kuchosauronad0/readme.md217
-rw-r--r--users/kuchosauronad0/rgblight_user.c156
-rw-r--r--users/kuchosauronad0/rgblight_user.h23
-rw-r--r--users/kuchosauronad0/rules.mk49
-rw-r--r--users/kuchosauronad0/tap_dances.c55
-rw-r--r--users/kuchosauronad0/tap_dances.h26
-rw-r--r--users/kuchosauronad0/template.c125
-rw-r--r--users/kuchosauronad0/template.h18
-rw-r--r--users/kuchosauronad0/unicode.c62
-rw-r--r--users/kuchosauronad0/unicode.h64
-rw-r--r--users/kuchosauronad0/wrappers.h212
-rw-r--r--users/losinggeneration/README.md185
-rw-r--r--users/losinggeneration/losinggeneration-common.h71
-rw-r--r--users/losinggeneration/losinggeneration-config.h29
-rw-r--r--users/losinggeneration/losinggeneration-keymap.h379
-rw-r--r--users/losinggeneration/rules.mk12
-rw-r--r--users/manna-harbour_miryoku/config.h39
-rw-r--r--users/manna-harbour_miryoku/custom_config.h7
-rw-r--r--users/manna-harbour_miryoku/custom_rules.mk3
-rw-r--r--users/manna-harbour_miryoku/manna-harbour_miryoku.c91
-rw-r--r--users/manna-harbour_miryoku/manna-harbour_miryoku.h51
-rw-r--r--users/manna-harbour_miryoku/miryoku_babel/miryoku_layer_alternatives.h389
-rw-r--r--users/manna-harbour_miryoku/miryoku_babel/miryoku_layer_list.h23
-rw-r--r--users/manna-harbour_miryoku/miryoku_babel/miryoku_layer_selection.h277
-rw-r--r--users/manna-harbour_miryoku/post_rules.mk42
-rw-r--r--users/manna-harbour_miryoku/readme.org801
-rw-r--r--users/manna-harbour_miryoku/rules.mk15
-rw-r--r--users/mattly/config.h5
-rw-r--r--users/mattly/mattly.c78
-rw-r--r--users/mattly/mattly.h121
-rw-r--r--users/mattly/readme.md10
-rw-r--r--users/mattly/rules.mk4
-rw-r--r--users/mechmerlin/changelog.md44
-rw-r--r--users/mechmerlin/config.h44
-rw-r--r--users/mechmerlin/mechmerlin.c27
-rw-r--r--users/mechmerlin/mechmerlin.h19
-rw-r--r--users/mechmerlin/readme.md57
-rw-r--r--users/mechmerlin/rules.mk2
-rw-r--r--users/mguterl/config.h0
-rw-r--r--users/mguterl/mguterl.c1
-rw-r--r--users/mguterl/mguterl.h67
-rw-r--r--users/mguterl/readme.md14
-rw-r--r--users/mguterl/rules.mk1
-rw-r--r--users/miketronic/config.h12
-rw-r--r--users/miketronic/miketronic.c17
-rw-r--r--users/miketronic/miketronic.h63
-rw-r--r--users/miketronic/process_records.c151
-rw-r--r--users/miketronic/process_records.h38
-rw-r--r--users/miketronic/readme.md25
-rw-r--r--users/miketronic/rules.mk4
-rw-r--r--users/miketronic/tapdances.c33
-rw-r--r--users/miketronic/tapdances.h57
-rw-r--r--users/miketronic/wrappers.h226
-rw-r--r--users/miles2go/babblePaste.c223
-rw-r--r--users/miles2go/babblePaste.h383
-rw-r--r--users/miles2go/babblePaste.md244
-rw-r--r--users/miles2go/babl_chromeos.c103
-rw-r--r--users/miles2go/babl_emacs.c86
-rw-r--r--users/miles2go/babl_kitty.c153
-rw-r--r--users/miles2go/babl_linux.c102
-rw-r--r--users/miles2go/babl_mac.c152
-rw-r--r--users/miles2go/babl_nano.c77
-rw-r--r--users/miles2go/babl_readmux.c86
-rw-r--r--users/miles2go/babl_vi.c77
-rw-r--r--users/miles2go/babl_windows.c151
-rw-r--r--users/miles2go/config.h60
-rw-r--r--users/miles2go/keymaps/handwired/ms_sculpt_mobile/config.h50
-rw-r--r--users/miles2go/keymaps/handwired/ms_sculpt_mobile/keymap.c461
-rw-r--r--users/miles2go/keymaps/handwired/ms_sculpt_mobile/readme.md10
-rw-r--r--users/miles2go/keymaps/handwired/ms_sculpt_mobile/rules.mk24
-rw-r--r--users/miles2go/milestogo.c153
-rw-r--r--users/miles2go/milestogo.h302
-rw-r--r--users/miles2go/readme.md10
-rw-r--r--users/miles2go/rules.mk10
-rw-r--r--users/mnil/config.h22
-rw-r--r--users/mnil/mnil.c146
-rw-r--r--users/mnil/mnil.h85
-rw-r--r--users/mnil/readme.md23
-rw-r--r--users/mnil/rules.mk7
-rw-r--r--users/moults31/gdb.c59
-rw-r--r--users/moults31/gdb.h21
-rw-r--r--users/moults31/moults31.c114
-rw-r--r--users/moults31/moults31.h61
-rw-r--r--users/moults31/obs.c80
-rw-r--r--users/moults31/obs.h21
-rw-r--r--users/moults31/readme.md5
-rw-r--r--users/moults31/rules.mk10
-rw-r--r--users/moults31/vscode.c90
-rw-r--r--users/moults31/vscode.h21
-rw-r--r--users/mtei/config.h46
-rw-r--r--users/mtei/cpp_map.h84
-rw-r--r--users/mtei/debug_config.h6
-rw-r--r--users/mtei/encoder_update_user.c33
-rw-r--r--users/mtei/key_blocks.h40
-rw-r--r--users/mtei/layer_number_util.h17
-rw-r--r--users/mtei/matrix_output_unselect_delay_ondemand.c18
-rw-r--r--users/mtei/oled_display.c147
-rw-r--r--users/mtei/pseudo_sprintf.c53
-rw-r--r--users/mtei/pseudo_sprintf.h8
-rw-r--r--users/mtei/rules.mk9
-rw-r--r--users/mtei/user_featues.mk60
-rw-r--r--users/mtei/user_options.mk127
-rw-r--r--users/muppetjones/.clang-format26
-rw-r--r--users/muppetjones/config.h38
-rw-r--r--users/muppetjones/features/casemodes.c247
-rw-r--r--users/muppetjones/features/casemodes.h47
-rw-r--r--users/muppetjones/features/combos.c35
-rw-r--r--users/muppetjones/features/combos.h17
-rw-r--r--users/muppetjones/features/dancelayers.c98
-rw-r--r--users/muppetjones/features/dancelayers.h82
-rw-r--r--users/muppetjones/features/etchamouse.c101
-rw-r--r--users/muppetjones/features/etchamouse.h59
-rw-r--r--users/muppetjones/features/rgblayers.c69
-rw-r--r--users/muppetjones/features/rgblayers.h22
-rw-r--r--users/muppetjones/muppetjones.c52
-rw-r--r--users/muppetjones/muppetjones.h55
-rw-r--r--users/muppetjones/readme.md23
-rw-r--r--users/muppetjones/readme/dancelayers.md73
-rw-r--r--users/muppetjones/readme/etchamouse.md69
-rw-r--r--users/muppetjones/readme/rgblayers.md59
-rw-r--r--users/muppetjones/readme/tapmods.md25
-rw-r--r--users/muppetjones/readme/wrappers.md153
-rw-r--r--users/muppetjones/rules.mk25
-rw-r--r--users/muppetjones/tapmods.h77
-rw-r--r--users/muppetjones/wrappers.h247
-rw-r--r--users/mverteuil/.gitignore1
-rw-r--r--users/mverteuil/mverteuil.c2
-rw-r--r--users/mverteuil/mverteuil.h21
-rw-r--r--users/mverteuil/rules.mk1
-rw-r--r--users/narze/narze.c1
-rw-r--r--users/narze/narze.h13
-rw-r--r--users/narze/readme.md37
-rw-r--r--users/narze/rules.mk5
-rw-r--r--users/narze/superduper.c66
-rw-r--r--users/narze/superduper.h7
-rw-r--r--users/nchristus/nchristus.c18
-rw-r--r--users/nchristus/nchristus.h87
-rw-r--r--users/nchristus/rules.mk0
-rw-r--r--users/ninjonas/.gitignore1
-rw-r--r--users/ninjonas/README.md117
-rw-r--r--users/ninjonas/combos.c55
-rw-r--r--users/ninjonas/config.h20
-rw-r--r--users/ninjonas/encoder.c105
-rw-r--r--users/ninjonas/ninjonas.c39
-rw-r--r--users/ninjonas/ninjonas.h148
-rw-r--r--users/ninjonas/oled.c112
-rw-r--r--users/ninjonas/process_records.c117
-rw-r--r--users/ninjonas/process_records.h30
-rw-r--r--users/ninjonas/rules.mk16
-rw-r--r--users/ninjonas/tap_dances.c122
-rw-r--r--users/ninjonas/tap_dances.h37
-rw-r--r--users/noroadsleft/noroadsleft.c140
-rw-r--r--users/noroadsleft/noroadsleft.h37
-rw-r--r--users/noroadsleft/readme.md85
-rw-r--r--users/noroadsleft/rules.mk1
-rw-r--r--users/not-quite-neo/nqn-basic-layout.h124
-rw-r--r--users/not-quite-neo/nqn-common.h9
-rw-r--r--users/not-quite-neo/nqn-keys-on-quertz-de-latin1.h73
-rw-r--r--users/not-quite-neo/readme.md24
-rw-r--r--users/nstickney/config.h63
-rw-r--r--users/nstickney/nstickney.c96
-rw-r--r--users/nstickney/nstickney.h39
-rw-r--r--users/nstickney/readme.md49
-rw-r--r--users/nstickney/rules.mk36
-rw-r--r--users/nstickney/unicodemap.h106
-rw-r--r--users/ollyhayes/ollyhayes.c153
-rw-r--r--users/ollyhayes/ollyhayes.h41
-rw-r--r--users/ollyhayes/rules.mk1
-rw-r--r--users/pcewing/README.md85
-rw-r--r--users/pcewing/key_repeater.c168
-rw-r--r--users/pcewing/key_repeater.h68
-rw-r--r--users/pcewing/rules.mk1
-rw-r--r--users/pdl/pdl.c216
-rw-r--r--users/pdl/pdl.h135
-rw-r--r--users/pdl/rules.mk1
-rw-r--r--users/peej/layout.h150
-rw-r--r--users/peej/peej.c68
-rw-r--r--users/peej/peej.h78
-rw-r--r--users/peej/rules.mk1
-rw-r--r--users/peterfalken/config.h23
-rw-r--r--users/peterfalken/peterfalken.c20
-rw-r--r--users/peterfalken/peterfalken.h27
-rw-r--r--users/peterfalken/readme.md14
-rw-r--r--users/peterfalken/rules.mk18
-rw-r--r--users/pvinis/config.h7
-rw-r--r--users/pvinis/pvinis.c98
-rw-r--r--users/pvinis/pvinis.h172
-rw-r--r--users/pvinis/rules.mk19
-rw-r--r--users/riblee/readme.md14
-rw-r--r--users/riblee/riblee.c174
-rw-r--r--users/riblee/riblee.h59
-rw-r--r--users/riblee/rules.mk1
-rw-r--r--users/ridingqwerty/config.h10
-rw-r--r--users/ridingqwerty/dict.h1012
-rw-r--r--users/ridingqwerty/process_records.c486
-rw-r--r--users/ridingqwerty/process_records.h58
-rw-r--r--users/ridingqwerty/ridingqwerty.c65
-rw-r--r--users/ridingqwerty/ridingqwerty.h61
-rw-r--r--users/ridingqwerty/rules.mk24
-rw-r--r--users/ridingqwerty/tapdances.c33
-rw-r--r--users/ridingqwerty/tapdances.h9
-rw-r--r--users/ridingqwerty/unicode.c7
-rw-r--r--users/ridingqwerty/unicode.h295
-rw-r--r--users/ridingqwerty/wrappers.h156
-rw-r--r--users/rishka/rishka.c1
-rw-r--r--users/rishka/rishka.h74
-rw-r--r--users/rishka/rules.mk1
-rw-r--r--users/rmeli/.gitignore2
-rw-r--r--users/rmeli/config.h40
-rw-r--r--users/rmeli/keyrecords/tap_dances.c139
-rw-r--r--users/rmeli/keyrecords/tap_dances.h71
-rw-r--r--users/rmeli/keyrecords/unicode.h86
-rw-r--r--users/rmeli/keyrecords/wrappers.h178
-rw-r--r--users/rmeli/oled/oled.c102
-rw-r--r--users/rmeli/oled/oled.h26
-rw-r--r--users/rmeli/readme.md14
-rw-r--r--users/rmeli/rmeli.h32
-rw-r--r--users/rmeli/rules.mk26
-rw-r--r--users/rmw/encoder_functions.c53
-rw-r--r--users/rmw/encoder_functions.h11
-rw-r--r--users/rmw/rmw.c1
-rw-r--r--users/rmw/rmw.h87
-rw-r--r--users/rmw/rules.mk9
-rw-r--r--users/rmw/tapdances.c389
-rw-r--r--users/rmw/tapdances.h46
-rw-r--r--users/romus/README.md45
-rw-r--r--users/romus/config.h8
-rw-r--r--users/romus/romus.c529
-rw-r--r--users/romus/romus.h270
-rw-r--r--users/romus/rules.mk21
-rw-r--r--users/rossman360/readme.md14
-rw-r--r--users/rossman360/rossman360.c85
-rw-r--r--users/rossman360/rossman360.h38
-rw-r--r--users/rossman360/rules.mk5
-rw-r--r--users/rs/karabiner.json154
-rw-r--r--users/rs/readme.md30
-rw-r--r--users/rs/rs.c74
-rw-r--r--users/rs/rs.h48
-rw-r--r--users/rs/rules.mk1
-rw-r--r--users/rupa/config.h11
-rw-r--r--users/rupa/process_records.c118
-rw-r--r--users/rupa/process_records.h21
-rw-r--r--users/rupa/readme.md7
-rw-r--r--users/rupa/rules.mk5
-rw-r--r--users/rupa/rupa.c82
-rw-r--r--users/rupa/rupa.h82
-rw-r--r--users/rupa/unicode.c172
-rw-r--r--users/rupa/unicode.h77
-rw-r--r--users/rupa/wrappers.h122
-rw-r--r--users/rverst/config.h45
-rw-r--r--users/rverst/readme.md18
-rw-r--r--users/rverst/rules.mk9
-rw-r--r--users/rverst/rverst.c425
-rw-r--r--users/rverst/rverst.h85
-rw-r--r--users/rverst/unicode.h31
-rw-r--r--users/scheiklp/koy_keys_on_quertz_de_latin1.h64
-rw-r--r--users/scotto/config.h25
-rw-r--r--users/scotto/readme.md17
-rw-r--r--users/scotto/rules.mk11
-rw-r--r--users/scotto/scotto.c15
-rw-r--r--users/scotto/scotto.h69
-rw-r--r--users/scotto/tap_dance.c154
-rw-r--r--users/scotto/tap_dance.h39
-rw-r--r--users/sethBarberee/config.h82
-rw-r--r--users/sethBarberee/readme.md6
-rw-r--r--users/sethBarberee/rgb_light.c52
-rw-r--r--users/sethBarberee/rgb_light.h21
-rw-r--r--users/sethBarberee/rules.mk10
-rw-r--r--users/sethBarberee/sethBarberee.c100
-rw-r--r--users/sethBarberee/sethBarberee.h55
-rw-r--r--users/sethBarberee/tap_dance.c89
-rw-r--r--users/sethBarberee/tap_dance.h43
-rw-r--r--users/sethBarberee/wrappers.h71
-rw-r--r--users/sigma/config.h21
-rw-r--r--users/sigma/rules.mk3
-rw-r--r--users/sigma/sigma.c271
-rw-r--r--users/sigma/sigma.h58
-rw-r--r--users/sigul/.gitignore2
-rw-r--r--users/sigul/README.md17
-rw-r--r--users/sigul/config.h21
-rw-r--r--users/sigul/rules.mk8
-rw-r--r--users/sigul/sigul.c100
-rw-r--r--users/sigul/sigul.h42
-rw-r--r--users/snowe/luna.c229
-rw-r--r--users/snowe/luna.h31
-rw-r--r--users/snowe/ocean_dream.c556
-rw-r--r--users/snowe/ocean_dream.h103
-rw-r--r--users/snowe/oled_setup.c146
-rw-r--r--users/snowe/oled_setup.h30
-rw-r--r--users/snowe/readme.md10
-rw-r--r--users/snowe/readme_ocean_dream.md258
-rw-r--r--users/snowe/rules.mk27
-rw-r--r--users/snowe/snowe.h42
-rw-r--r--users/snowe/wrappers.h92
-rw-r--r--users/spacebarracecar/config.h2
-rw-r--r--users/spacebarracecar/readme.md111
-rw-r--r--users/spacebarracecar/rules.mk5
-rw-r--r--users/spacebarracecar/spacebarracecar.c352
-rw-r--r--users/spacebarracecar/spacebarracecar.h247
-rw-r--r--users/spidey3/config.h45
-rw-r--r--users/spidey3/init.c21
-rw-r--r--users/spidey3/layer_rgb.c486
-rw-r--r--users/spidey3/readme.md14
-rw-r--r--users/spidey3/rules.mk15
-rw-r--r--users/spidey3/spidey3.c384
-rw-r--r--users/spidey3/spidey3.h81
-rw-r--r--users/spidey3/spidey3_unicode.c28
-rw-r--r--users/spidey3/spidey3_unicode.h31
-rw-r--r--users/spotpuff/rules.mk1
-rw-r--r--users/stanrc85/config.h38
-rw-r--r--users/stanrc85/indicator_layers_sneakbox.c28
-rw-r--r--users/stanrc85/layer_rgb.c29
-rw-r--r--users/stanrc85/readme.md57
-rw-r--r--users/stanrc85/rgb_layers.c36
-rw-r--r--users/stanrc85/rgb_timeout.c62
-rw-r--r--users/stanrc85/rgblight_layers.c30
-rw-r--r--users/stanrc85/rgblight_layers_osa.c68
-rw-r--r--users/stanrc85/rules.mk55
-rw-r--r--users/stanrc85/stanrc85.c133
-rw-r--r--users/stanrc85/stanrc85.h55
-rw-r--r--users/stanrc85/startup_fanfare.c43
-rw-r--r--users/talljoe/config.h22
-rw-r--r--users/talljoe/macros.c40
-rw-r--r--users/talljoe/macros.h27
-rw-r--r--users/talljoe/readme.md7
-rw-r--r--users/talljoe/rules.mk18
-rw-r--r--users/talljoe/talljoe.c229
-rw-r--r--users/talljoe/talljoe.h184
-rw-r--r--users/talljoe/tapdance/actions/td.function.c35
-rw-r--r--users/talljoe/tapdance/actions/td.grave.c36
-rw-r--r--users/talljoe/tapdance/actions/td.lock.c35
-rw-r--r--users/talljoe/tapdance/actions/td.semicolon.c54
-rw-r--r--users/talljoe/tapdance/tapdance.h26
-rw-r--r--users/talljoe/tapdance/tapdance_actions.c28
-rw-r--r--users/talljoe/tapdance/td_setup.c70
-rw-r--r--users/talljoe/tapdance/td_setup.h29
-rw-r--r--users/toinux/keymap_qwerty_fr.h153
-rw-r--r--users/tominabox1/.gitignore2
-rw-r--r--users/tominabox1/config.h87
-rw-r--r--users/tominabox1/dimple_rgb.c433
-rw-r--r--users/tominabox1/doug.c232
-rw-r--r--users/tominabox1/readme.md5
-rw-r--r--users/tominabox1/rules.mk25
-rw-r--r--users/tominabox1/tominabox1.c281
-rw-r--r--users/tominabox1/tominabox1.h56
-rw-r--r--users/tominabox1/wrappers.h142
-rw-r--r--users/turbomech/backupturbomech.c390
-rw-r--r--users/turbomech/turbomech.c124
-rw-r--r--users/turbomech/turbomech.h50
-rw-r--r--users/twschum/config.h0
-rw-r--r--users/twschum/readme.md14
-rw-r--r--users/twschum/rules.mk5
-rw-r--r--users/twschum/twschum.c256
-rw-r--r--users/twschum/twschum.h131
-rw-r--r--users/twschum/xtonhasvim.c593
-rw-r--r--users/twschum/xtonhasvim.h62
-rw-r--r--users/uqs/config.h38
-rw-r--r--users/uqs/rules.mk24
-rw-r--r--users/uqs/uqs.c575
-rw-r--r--users/uqs/uqs.h77
-rw-r--r--users/vitoni/readme.adoc16
-rw-r--r--users/vitoni/rgb_matrix_effects.c236
-rw-r--r--users/vitoni/rgb_matrix_effects.h174
-rw-r--r--users/vitoni/rules.mk4
-rw-r--r--users/vitoni/utils.c129
-rw-r--r--users/vitoni/utils.h80
-rw-r--r--users/vitoni/vitoni.c131
-rw-r--r--users/vitoni/vitoni.h30
-rw-r--r--users/vnmm/config.h70
-rw-r--r--users/vnmm/keymap_user.h41
-rw-r--r--users/vnmm/readme.md10
-rw-r--r--users/vnmm/rgb_matrix_user.c140
-rw-r--r--users/vnmm/rgb_matrix_user.h28
-rw-r--r--users/vnmm/rules.mk5
-rw-r--r--users/vnmm/vnmm.c23
-rw-r--r--users/vnmm/vnmm.h21
-rw-r--r--users/vosechu/config.h19
-rw-r--r--users/vosechu/readme.md14
-rw-r--r--users/vosechu/rules.mk1
-rw-r--r--users/vosechu/vosechu.c25
-rw-r--r--users/vosechu/vosechu.h89
-rw-r--r--users/wanleg/config.h47
-rw-r--r--users/wanleg/readme.md125
-rw-r--r--users/wanleg/rules.mk45
-rw-r--r--users/wanleg/tapdances.c264
-rw-r--r--users/wanleg/wanleg.c176
-rw-r--r--users/wanleg/wanleg.h322
-rw-r--r--users/xtonhasvim/fancylighting.c172
-rw-r--r--users/xtonhasvim/fancylighting.h36
-rw-r--r--users/xtonhasvim/readme.md10
-rw-r--r--users/xtonhasvim/rules.mk2
-rw-r--r--users/xtonhasvim/xtonhasvim.c643
-rw-r--r--users/xtonhasvim/xtonhasvim.h65
-rw-r--r--users/xulkal/config.h36
-rw-r--r--users/xulkal/custom_encoder.c73
-rw-r--r--users/xulkal/custom_encoder.h2
-rw-r--r--users/xulkal/custom_keycodes.h40
-rw-r--r--users/xulkal/custom_oled.c189
-rw-r--r--users/xulkal/custom_oled.h2
-rw-r--r--users/xulkal/custom_rgb.c64
-rw-r--r--users/xulkal/custom_rgb.h17
-rw-r--r--users/xulkal/custom_tap_dance.c59
-rw-r--r--users/xulkal/custom_tap_dance.h23
-rw-r--r--users/xulkal/layouts.h119
-rw-r--r--users/xulkal/process_records.c62
-rw-r--r--users/xulkal/process_records.h18
-rw-r--r--users/xulkal/rules.mk32
-rw-r--r--users/xulkal/xulkal.c1
-rw-r--r--users/xulkal/xulkal.h6
-rw-r--r--users/yanfali/config.h30
-rw-r--r--users/yanfali/rules.mk38
l---------users/yanfali_wkl1
-rw-r--r--users/yet-another-developer/.gitignore2
-rw-r--r--users/yet-another-developer/README.md7
-rw-r--r--users/yet-another-developer/combo.c27
-rw-r--r--users/yet-another-developer/combo.h20
-rw-r--r--users/yet-another-developer/config.h46
-rw-r--r--users/yet-another-developer/leader_user.c41
-rw-r--r--users/yet-another-developer/leader_user.h6
-rw-r--r--users/yet-another-developer/process_records.c193
-rw-r--r--users/yet-another-developer/process_records.h109
-rw-r--r--users/yet-another-developer/rules.mk50
-rw-r--r--users/yet-another-developer/tap_dances.c55
-rw-r--r--users/yet-another-developer/tap_dances.h26
-rw-r--r--users/yet-another-developer/unicode.c62
-rw-r--r--users/yet-another-developer/unicode.h64
-rw-r--r--users/yet-another-developer/wrappers.h166
-rw-r--r--users/yet-another-developer/yet-another-developer.c160
-rw-r--r--users/yet-another-developer/yet-another-developer.h87
-rw-r--r--users/zer09/config.h23
-rw-r--r--users/zer09/lights.c189
-rw-r--r--users/zer09/lights.h45
-rw-r--r--users/zer09/rules.mk2
-rw-r--r--users/zer09/tap_dance.c203
-rw-r--r--users/zer09/tap_dance.h55
-rw-r--r--users/zer09/zer09.c89
-rw-r--r--users/zer09/zer09.h25
-rw-r--r--users/zigotica/combos.c37
-rw-r--r--users/zigotica/combos.h17
-rw-r--r--users/zigotica/rows.h211
-rw-r--r--users/zigotica/rules.mk18
-rw-r--r--users/zigotica/tapdances.c34
-rw-r--r--users/zigotica/tapdances.h24
-rw-r--r--users/zigotica/zigotica.c14
-rw-r--r--users/zigotica/zigotica.h51
-rw-r--r--users/zyber/config.h9
-rw-r--r--users/zyber/rules.mk8
-rw-r--r--users/zyber/zyber.c137
-rw-r--r--users/zyber/zyber.h33
5214 files changed, 39033 insertions, 237852 deletions
diff --git a/Makefile b/Makefile
index 9f2e4636a4..ab30a17f58 100644
--- a/Makefile
+++ b/Makefile
@@ -38,6 +38,11 @@ $(info QMK Firmware $(QMK_VERSION))
endif
endif
+# Try to determine userspace from qmk config, if set.
+ifeq ($(QMK_USERSPACE),)
+ QMK_USERSPACE = $(shell qmk config -ro user.overlay_dir | cut -d= -f2 | sed -e 's@^None$$@@g')
+endif
+
# Determine which qmk cli to use
QMK_BIN := qmk
@@ -191,9 +196,20 @@ define PARSE_KEYBOARD
KEYMAPS += $$(notdir $$(patsubst %/.,%,$$(wildcard $(ROOT_DIR)/keyboards/$$(KEYBOARD_FOLDER_PATH_4)/keymaps/*/.)))
KEYMAPS += $$(notdir $$(patsubst %/.,%,$$(wildcard $(ROOT_DIR)/keyboards/$$(KEYBOARD_FOLDER_PATH_5)/keymaps/*/.)))
+ ifneq ($(QMK_USERSPACE),)
+ KEYMAPS += $$(notdir $$(patsubst %/.,%,$$(wildcard $(QMK_USERSPACE)/keyboards/$$(KEYBOARD_FOLDER_PATH_1)/keymaps/*/.)))
+ KEYMAPS += $$(notdir $$(patsubst %/.,%,$$(wildcard $(QMK_USERSPACE)/keyboards/$$(KEYBOARD_FOLDER_PATH_2)/keymaps/*/.)))
+ KEYMAPS += $$(notdir $$(patsubst %/.,%,$$(wildcard $(QMK_USERSPACE)/keyboards/$$(KEYBOARD_FOLDER_PATH_3)/keymaps/*/.)))
+ KEYMAPS += $$(notdir $$(patsubst %/.,%,$$(wildcard $(QMK_USERSPACE)/keyboards/$$(KEYBOARD_FOLDER_PATH_4)/keymaps/*/.)))
+ KEYMAPS += $$(notdir $$(patsubst %/.,%,$$(wildcard $(QMK_USERSPACE)/keyboards/$$(KEYBOARD_FOLDER_PATH_5)/keymaps/*/.)))
+ endif
+
KEYBOARD_LAYOUTS := $(shell $(QMK_BIN) list-layouts --keyboard $1)
LAYOUT_KEYMAPS :=
$$(foreach LAYOUT,$$(KEYBOARD_LAYOUTS),$$(eval LAYOUT_KEYMAPS += $$(notdir $$(patsubst %/.,%,$$(wildcard $(ROOT_DIR)/layouts/*/$$(LAYOUT)/*/.)))))
+ ifneq ($(QMK_USERSPACE),)
+ $$(foreach LAYOUT,$$(KEYBOARD_LAYOUTS),$$(eval LAYOUT_KEYMAPS += $$(notdir $$(patsubst %/.,%,$$(wildcard $(QMK_USERSPACE)/layouts/$$(LAYOUT)/*/.)))))
+ endif
KEYMAPS := $$(sort $$(KEYMAPS) $$(LAYOUT_KEYMAPS))
@@ -300,17 +316,18 @@ endef
define BUILD_TEST
TEST_PATH := $1
TEST_NAME := $$(notdir $$(TEST_PATH))
+ TEST_FULL_NAME := $$(subst /,_,$$(patsubst $$(ROOT_DIR)tests/%,%,$$(TEST_PATH)))
MAKE_TARGET := $2
COMMAND := $1
MAKE_CMD := $$(MAKE) -r -R -C $(ROOT_DIR) -f $(BUILDDEFS_PATH)/build_test.mk $$(MAKE_TARGET)
- MAKE_VARS := TEST=$$(TEST_NAME) TEST_PATH=$$(TEST_PATH) FULL_TESTS="$$(FULL_TESTS)"
+ MAKE_VARS := TEST=$$(TEST_NAME) TEST_OUTPUT=$$(TEST_FULL_NAME) TEST_PATH=$$(TEST_PATH) FULL_TESTS="$$(FULL_TESTS)"
MAKE_MSG := $$(MSG_MAKE_TEST)
$$(eval $$(call BUILD))
ifneq ($$(MAKE_TARGET),clean)
- TEST_EXECUTABLE := $$(TEST_OUTPUT_DIR)/$$(TEST_NAME).elf
- TESTS += $$(TEST_NAME)
+ TEST_EXECUTABLE := $$(TEST_OUTPUT_DIR)/$$(TEST_FULL_NAME).elf
+ TESTS += $$(TEST_FULL_NAME)
TEST_MSG := $$(MSG_TEST)
- $$(TEST_NAME)_COMMAND := \
+ $$(TEST_FULL_NAME)_COMMAND := \
printf "$$(TEST_MSG)\n"; \
$$(TEST_EXECUTABLE); \
if [ $$$$? -gt 0 ]; \
@@ -322,15 +339,22 @@ endef
define PARSE_TEST
TESTS :=
- TEST_NAME := $$(firstword $$(subst :, ,$$(RULE)))
- TEST_TARGET := $$(subst $$(TEST_NAME),,$$(subst $$(TEST_NAME):,,$$(RULE)))
+ # list of possible targets, colon-delimited, to reassign to MAKE_TARGET and remove
+ TARGETS := :clean:
+ ifneq (,$$(findstring :$$(lastword $$(subst :, ,$$(RULE))):, $$(TARGETS)))
+ MAKE_TARGET := $$(lastword $$(subst :, ,$$(RULE)))
+ TEST_SUBPATH := $$(subst $$(eval) ,/,$$(wordlist 2, $$(words $$(subst :, ,$$(RULE))), _ $$(subst :, ,$$(RULE))))
+ else
+ MAKE_TARGET :=
+ TEST_SUBPATH := $$(subst :,/,$$(RULE))
+ endif
include $(BUILDDEFS_PATH)/testlist.mk
- ifeq ($$(TEST_NAME),all)
+ ifeq ($$(RULE),all)
MATCHED_TESTS := $$(TEST_LIST)
else
- MATCHED_TESTS := $$(foreach TEST, $$(TEST_LIST),$$(if $$(findstring x$$(TEST_NAME)x, x$$(notdir $$(TEST))x), $$(TEST),))
+ MATCHED_TESTS := $$(foreach TEST, $$(TEST_LIST),$$(if $$(findstring /$$(TEST_SUBPATH)/, $$(patsubst %,%/,$$(TEST))), $$(TEST),))
endif
- $$(foreach TEST,$$(MATCHED_TESTS),$$(eval $$(call BUILD_TEST,$$(TEST),$$(TEST_TARGET))))
+ $$(foreach TEST,$$(MATCHED_TESTS),$$(eval $$(call BUILD_TEST,$$(TEST),$$(MAKE_TARGET))))
endef
@@ -423,8 +447,18 @@ clean:
rm -rf $(BUILD_DIR)
echo 'done.'
-.PHONY: distclean
-distclean: clean
+.PHONY: distclean distclean_qmk
+distclean: distclean_qmk
+distclean_qmk: clean
echo -n 'Deleting *.bin, *.hex, and *.uf2 ... '
rm -f *.bin *.hex *.uf2
echo 'done.'
+
+ifneq ($(QMK_USERSPACE),)
+.PHONY: distclean_userspace
+distclean: distclean_userspace
+distclean_userspace: clean
+ echo -n 'Deleting userspace *.bin, *.hex, and *.uf2 ... '
+ rm -f $(QMK_USERSPACE)/*.bin $(QMK_USERSPACE)/*.hex $(QMK_USERSPACE)/*.uf2
+ echo 'done.'
+endif
diff --git a/builddefs/build_full_test.mk b/builddefs/build_full_test.mk
index 85ee0898ec..63f9fea915 100644
--- a/builddefs/build_full_test.mk
+++ b/builddefs/build_full_test.mk
@@ -13,10 +13,10 @@
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
-$(TEST)_INC := \
+$(TEST_OUTPUT)_INC := \
tests/test_common/common_config.h
-$(TEST)_SRC := \
+$(TEST_OUTPUT)_SRC := \
$(QUANTUM_SRC) \
$(SRC) \
$(QUANTUM_PATH)/keymap_introspection.c \
@@ -30,8 +30,8 @@ $(TEST)_SRC := \
tests/test_common/test_logger.cpp \
$(patsubst $(ROOTDIR)/%,%,$(wildcard $(TEST_PATH)/*.cpp))
-$(TEST)_DEFS := $(OPT_DEFS) "-DKEYMAP_C=\"keymap.c\""
+$(TEST_OUTPUT)_DEFS := $(OPT_DEFS) "-DKEYMAP_C=\"keymap.c\""
-$(TEST)_CONFIG := $(TEST_PATH)/config.h
+$(TEST_OUTPUT)_CONFIG := $(TEST_PATH)/config.h
VPATH += $(TOP_DIR)/tests/test_common
diff --git a/builddefs/build_json.mk b/builddefs/build_json.mk
index 0c034eb2ae..e9d1420f36 100644
--- a/builddefs/build_json.mk
+++ b/builddefs/build_json.mk
@@ -1,17 +1,36 @@
# Look for a json keymap file
ifneq ("$(wildcard $(MAIN_KEYMAP_PATH_5)/keymap.json)","")
KEYMAP_JSON := $(MAIN_KEYMAP_PATH_5)/keymap.json
- KEYMAP_PATH := $(MAIN_KEYMAP_PATH_5)
+ KEYMAP_JSON_PATH := $(MAIN_KEYMAP_PATH_5)
else ifneq ("$(wildcard $(MAIN_KEYMAP_PATH_4)/keymap.json)","")
KEYMAP_JSON := $(MAIN_KEYMAP_PATH_4)/keymap.json
- KEYMAP_PATH := $(MAIN_KEYMAP_PATH_4)
+ KEYMAP_JSON_PATH := $(MAIN_KEYMAP_PATH_4)
else ifneq ("$(wildcard $(MAIN_KEYMAP_PATH_3)/keymap.json)","")
KEYMAP_JSON := $(MAIN_KEYMAP_PATH_3)/keymap.json
- KEYMAP_PATH := $(MAIN_KEYMAP_PATH_3)
+ KEYMAP_JSON_PATH := $(MAIN_KEYMAP_PATH_3)
else ifneq ("$(wildcard $(MAIN_KEYMAP_PATH_2)/keymap.json)","")
KEYMAP_JSON := $(MAIN_KEYMAP_PATH_2)/keymap.json
- KEYMAP_PATH := $(MAIN_KEYMAP_PATH_2)
+ KEYMAP_JSON_PATH := $(MAIN_KEYMAP_PATH_2)
else ifneq ("$(wildcard $(MAIN_KEYMAP_PATH_1)/keymap.json)","")
KEYMAP_JSON := $(MAIN_KEYMAP_PATH_1)/keymap.json
- KEYMAP_PATH := $(MAIN_KEYMAP_PATH_1)
+ KEYMAP_JSON_PATH := $(MAIN_KEYMAP_PATH_1)
+endif
+
+ifneq ($(QMK_USERSPACE),)
+ ifneq ("$(wildcard $(QMK_USERSPACE)/$(MAIN_KEYMAP_PATH_5)/keymap.json)","")
+ KEYMAP_JSON := $(QMK_USERSPACE)/$(MAIN_KEYMAP_PATH_5)/keymap.json
+ KEYMAP_PATH := $(QMK_USERSPACE)/$(MAIN_KEYMAP_PATH_5)
+ else ifneq ("$(wildcard $(QMK_USERSPACE)/$(MAIN_KEYMAP_PATH_4)/keymap.json)","")
+ KEYMAP_JSON := $(QMK_USERSPACE)/$(MAIN_KEYMAP_PATH_4)/keymap.json
+ KEYMAP_PATH := $(QMK_USERSPACE)/$(MAIN_KEYMAP_PATH_4)
+ else ifneq ("$(wildcard $(QMK_USERSPACE)/$(MAIN_KEYMAP_PATH_3)/keymap.json)","")
+ KEYMAP_JSON := $(QMK_USERSPACE)/$(MAIN_KEYMAP_PATH_3)/keymap.json
+ KEYMAP_PATH := $(QMK_USERSPACE)/$(MAIN_KEYMAP_PATH_3)
+ else ifneq ("$(wildcard $(QMK_USERSPACE)/$(MAIN_KEYMAP_PATH_2)/keymap.json)","")
+ KEYMAP_JSON := $(QMK_USERSPACE)/$(MAIN_KEYMAP_PATH_2)/keymap.json
+ KEYMAP_PATH := $(QMK_USERSPACE)/$(MAIN_KEYMAP_PATH_2)
+ else ifneq ("$(wildcard $(QMK_USERSPACE)/$(MAIN_KEYMAP_PATH_1)/keymap.json)","")
+ KEYMAP_JSON := $(QMK_USERSPACE)/$(MAIN_KEYMAP_PATH_1)/keymap.json
+ KEYMAP_PATH := $(QMK_USERSPACE)/$(MAIN_KEYMAP_PATH_1)
+ endif
endif
diff --git a/builddefs/build_keyboard.mk b/builddefs/build_keyboard.mk
index 6ae6bc686b..f17171fe20 100644
--- a/builddefs/build_keyboard.mk
+++ b/builddefs/build_keyboard.mk
@@ -129,37 +129,68 @@ include $(BUILDDEFS_PATH)/build_json.mk
# Pull in keymap level rules.mk
ifeq ("$(wildcard $(KEYMAP_PATH))", "")
# Look through the possible keymap folders until we find a matching keymap.c
- ifneq ("$(wildcard $(MAIN_KEYMAP_PATH_1)/keymap.c)","")
- -include $(MAIN_KEYMAP_PATH_1)/rules.mk
- KEYMAP_C := $(MAIN_KEYMAP_PATH_1)/keymap.c
- KEYMAP_PATH := $(MAIN_KEYMAP_PATH_1)
- else ifneq ("$(wildcard $(MAIN_KEYMAP_PATH_2)/keymap.c)","")
- -include $(MAIN_KEYMAP_PATH_2)/rules.mk
- KEYMAP_C := $(MAIN_KEYMAP_PATH_2)/keymap.c
- KEYMAP_PATH := $(MAIN_KEYMAP_PATH_2)
- else ifneq ("$(wildcard $(MAIN_KEYMAP_PATH_3)/keymap.c)","")
- -include $(MAIN_KEYMAP_PATH_3)/rules.mk
- KEYMAP_C := $(MAIN_KEYMAP_PATH_3)/keymap.c
- KEYMAP_PATH := $(MAIN_KEYMAP_PATH_3)
- else ifneq ("$(wildcard $(MAIN_KEYMAP_PATH_4)/keymap.c)","")
- -include $(MAIN_KEYMAP_PATH_4)/rules.mk
- KEYMAP_C := $(MAIN_KEYMAP_PATH_4)/keymap.c
- KEYMAP_PATH := $(MAIN_KEYMAP_PATH_4)
- else ifneq ("$(wildcard $(MAIN_KEYMAP_PATH_5)/keymap.c)","")
- -include $(MAIN_KEYMAP_PATH_5)/rules.mk
- KEYMAP_C := $(MAIN_KEYMAP_PATH_5)/keymap.c
- KEYMAP_PATH := $(MAIN_KEYMAP_PATH_5)
- else ifneq ($(LAYOUTS),)
- # If we haven't found a keymap yet fall back to community layouts
- include $(BUILDDEFS_PATH)/build_layout.mk
- else
- $(call CATASTROPHIC_ERROR,Invalid keymap,Could not find keymap)
- # this state should never be reached
+ ifneq ($(QMK_USERSPACE),)
+ ifneq ("$(wildcard $(QMK_USERSPACE)/$(MAIN_KEYMAP_PATH_1)/keymap.c)","")
+ -include $(QMK_USERSPACE)/$(MAIN_KEYMAP_PATH_1)/rules.mk
+ KEYMAP_C := $(QMK_USERSPACE)/$(MAIN_KEYMAP_PATH_1)/keymap.c
+ KEYMAP_PATH := $(QMK_USERSPACE)/$(MAIN_KEYMAP_PATH_1)
+ else ifneq ("$(wildcard $(QMK_USERSPACE)/$(MAIN_KEYMAP_PATH_2)/keymap.c)","")
+ -include $(QMK_USERSPACE)/$(MAIN_KEYMAP_PATH_2)/rules.mk
+ KEYMAP_C := $(QMK_USERSPACE)/$(MAIN_KEYMAP_PATH_2)/keymap.c
+ KEYMAP_PATH := $(QMK_USERSPACE)/$(MAIN_KEYMAP_PATH_2)
+ else ifneq ("$(wildcard $(QMK_USERSPACE)/$(MAIN_KEYMAP_PATH_3)/keymap.c)","")
+ -include $(QMK_USERSPACE)/$(MAIN_KEYMAP_PATH_3)/rules.mk
+ KEYMAP_C := $(QMK_USERSPACE)/$(MAIN_KEYMAP_PATH_3)/keymap.c
+ KEYMAP_PATH := $(QMK_USERSPACE)/$(MAIN_KEYMAP_PATH_3)
+ else ifneq ("$(wildcard $(QMK_USERSPACE)/$(MAIN_KEYMAP_PATH_4)/keymap.c)","")
+ -include $(QMK_USERSPACE)/$(MAIN_KEYMAP_PATH_4)/rules.mk
+ KEYMAP_C := $(QMK_USERSPACE)/$(MAIN_KEYMAP_PATH_4)/keymap.c
+ KEYMAP_PATH := $(QMK_USERSPACE)/$(MAIN_KEYMAP_PATH_4)
+ else ifneq ("$(wildcard $(QMK_USERSPACE)/$(MAIN_KEYMAP_PATH_5)/keymap.c)","")
+ -include $(QMK_USERSPACE)/$(MAIN_KEYMAP_PATH_5)/rules.mk
+ KEYMAP_C := $(QMK_USERSPACE)/$(MAIN_KEYMAP_PATH_5)/keymap.c
+ KEYMAP_PATH := $(QMK_USERSPACE)/$(MAIN_KEYMAP_PATH_5)
+ endif
+ endif
+ ifeq ($(KEYMAP_PATH),)
+ ifneq ("$(wildcard $(MAIN_KEYMAP_PATH_1)/keymap.c)","")
+ -include $(MAIN_KEYMAP_PATH_1)/rules.mk
+ KEYMAP_C := $(MAIN_KEYMAP_PATH_1)/keymap.c
+ KEYMAP_PATH := $(MAIN_KEYMAP_PATH_1)
+ else ifneq ("$(wildcard $(MAIN_KEYMAP_PATH_2)/keymap.c)","")
+ -include $(MAIN_KEYMAP_PATH_2)/rules.mk
+ KEYMAP_C := $(MAIN_KEYMAP_PATH_2)/keymap.c
+ KEYMAP_PATH := $(MAIN_KEYMAP_PATH_2)
+ else ifneq ("$(wildcard $(MAIN_KEYMAP_PATH_3)/keymap.c)","")
+ -include $(MAIN_KEYMAP_PATH_3)/rules.mk
+ KEYMAP_C := $(MAIN_KEYMAP_PATH_3)/keymap.c
+ KEYMAP_PATH := $(MAIN_KEYMAP_PATH_3)
+ else ifneq ("$(wildcard $(MAIN_KEYMAP_PATH_4)/keymap.c)","")
+ -include $(MAIN_KEYMAP_PATH_4)/rules.mk
+ KEYMAP_C := $(MAIN_KEYMAP_PATH_4)/keymap.c
+ KEYMAP_PATH := $(MAIN_KEYMAP_PATH_4)
+ else ifneq ("$(wildcard $(MAIN_KEYMAP_PATH_5)/keymap.c)","")
+ -include $(MAIN_KEYMAP_PATH_5)/rules.mk
+ KEYMAP_C := $(MAIN_KEYMAP_PATH_5)/keymap.c
+ KEYMAP_PATH := $(MAIN_KEYMAP_PATH_5)
+ else ifneq ($(LAYOUTS),)
+ # If we haven't found a keymap yet fall back to community layouts
+ include $(BUILDDEFS_PATH)/build_layout.mk
+ else ifeq ("$(wildcard $(KEYMAP_JSON_PATH))", "") # Not finding keymap.c is fine if we found a keymap.json
+ $(call CATASTROPHIC_ERROR,Invalid keymap,Could not find keymap)
+ # this state should never be reached
+ endif
endif
endif
# Have we found a keymap.json?
ifneq ("$(wildcard $(KEYMAP_JSON))", "")
+ ifneq ("$(wildcard $(KEYMAP_C))", "")
+ $(call WARNING_MESSAGE,Keymap is specified as both keymap.json and keymap.c -- keymap.json file wins.)
+ endif
+
+ KEYMAP_PATH := $(KEYMAP_JSON_PATH)
+
KEYMAP_C := $(INTERMEDIATE_OUTPUT)/src/keymap.c
KEYMAP_H := $(INTERMEDIATE_OUTPUT)/src/config.h
@@ -359,6 +390,16 @@ ifeq ("$(USER_NAME)","")
endif
USER_PATH := users/$(USER_NAME)
+# If we have userspace, then add it to the lookup VPATH
+ifneq ($(wildcard $(QMK_USERSPACE)),)
+ VPATH += $(QMK_USERSPACE)
+endif
+
+# If the equivalent users directory exists in userspace, use that in preference to anything currently in the main repo
+ifneq ($(wildcard $(QMK_USERSPACE)/$(USER_PATH)),)
+ USER_PATH := $(QMK_USERSPACE)/$(USER_PATH)
+endif
+
# Pull in user level rules.mk
-include $(USER_PATH)/rules.mk
ifneq ("$(wildcard $(USER_PATH)/config.h)","")
@@ -399,6 +440,10 @@ ifneq ("$(KEYMAP_H)","")
CONFIG_H += $(KEYMAP_H)
endif
+ifeq ($(KEYMAP_C),)
+ $(call CATASTROPHIC_ERROR,Invalid keymap,Could not find keymap)
+endif
+
OPT_DEFS += -DKEYMAP_C=\"$(KEYMAP_C)\"
# If a keymap or userspace places their keymap array in another file instead, allow for it to be included
@@ -450,6 +495,7 @@ $(eval $(call add_qmk_prefix_defs,MCU_PORT_NAME,MCU_PORT_NAME))
$(eval $(call add_qmk_prefix_defs,MCU_FAMILY,MCU_FAMILY))
$(eval $(call add_qmk_prefix_defs,MCU_SERIES,MCU_SERIES))
$(eval $(call add_qmk_prefix_defs,BOARD,BOARD))
+$(eval $(call add_qmk_prefix_defs,OPT,OPT))
# Control whether intermediate file listings are generated
# e.g.:
diff --git a/builddefs/build_layout.mk b/builddefs/build_layout.mk
index 6166bd847c..9ff99cc221 100644
--- a/builddefs/build_layout.mk
+++ b/builddefs/build_layout.mk
@@ -1,6 +1,10 @@
LAYOUTS_PATH := layouts
LAYOUTS_REPOS := $(patsubst %/,%,$(sort $(dir $(wildcard $(LAYOUTS_PATH)/*/))))
+ifneq ($(QMK_USERSPACE),)
+ LAYOUTS_REPOS += $(patsubst %/,%,$(QMK_USERSPACE)/$(LAYOUTS_PATH))
+endif
+
define SEARCH_LAYOUTS_REPO
LAYOUT_KEYMAP_PATH := $$(LAYOUTS_REPO)/$$(LAYOUT)/$$(KEYMAP)
LAYOUT_KEYMAP_JSON := $$(LAYOUT_KEYMAP_PATH)/keymap.json
diff --git a/builddefs/build_test.mk b/builddefs/build_test.mk
index 9eead77bea..2cc1134da5 100644
--- a/builddefs/build_test.mk
+++ b/builddefs/build_test.mk
@@ -9,13 +9,13 @@ OPT = g
include paths.mk
include $(BUILDDEFS_PATH)/message.mk
-TARGET=test/$(TEST)
+TARGET=test/$(TEST_OUTPUT)
GTEST_OUTPUT = $(BUILD_DIR)/gtest
TEST_OBJ = $(BUILD_DIR)/test_obj
-OUTPUTS := $(TEST_OBJ)/$(TEST) $(GTEST_OUTPUT)
+OUTPUTS := $(TEST_OBJ)/$(TEST_OUTPUT) $(GTEST_OUTPUT)
GTEST_INC := \
$(LIB_PATH)/googletest/googletest/include \
@@ -71,18 +71,18 @@ ifneq ($(filter $(FULL_TESTS),$(TEST)),)
include $(BUILDDEFS_PATH)/build_full_test.mk
endif
-$(TEST)_SRC += \
+$(TEST_OUTPUT)_SRC += \
tests/test_common/main.cpp \
$(QUANTUM_PATH)/logging/print.c
ifneq ($(strip $(INTROSPECTION_KEYMAP_C)),)
-$(TEST)_DEFS += -DINTROSPECTION_KEYMAP_C=\"$(strip $(INTROSPECTION_KEYMAP_C))\"
+$(TEST_OUTPUT)_DEFS += -DINTROSPECTION_KEYMAP_C=\"$(strip $(INTROSPECTION_KEYMAP_C))\"
endif
-$(TEST_OBJ)/$(TEST)_SRC := $($(TEST)_SRC)
-$(TEST_OBJ)/$(TEST)_INC := $($(TEST)_INC) $(VPATH) $(GTEST_INC)
-$(TEST_OBJ)/$(TEST)_DEFS := $($(TEST)_DEFS)
-$(TEST_OBJ)/$(TEST)_CONFIG := $($(TEST)_CONFIG)
+$(TEST_OBJ)/$(TEST_OUTPUT)_SRC := $($(TEST_OUTPUT)_SRC)
+$(TEST_OBJ)/$(TEST_OUTPUT)_INC := $($(TEST_OUTPUT)_INC) $(VPATH) $(GTEST_INC)
+$(TEST_OBJ)/$(TEST_OUTPUT)_DEFS := $($(TEST_OUTPUT)_DEFS)
+$(TEST_OBJ)/$(TEST_OUTPUT)_CONFIG := $($(TEST_OUTPUT)_CONFIG)
include $(PLATFORM_PATH)/$(PLATFORM_KEY)/platform.mk
include $(BUILDDEFS_PATH)/common_rules.mk
diff --git a/builddefs/common_features.mk b/builddefs/common_features.mk
index 094eda6fef..60f1cbd837 100644
--- a/builddefs/common_features.mk
+++ b/builddefs/common_features.mk
@@ -75,10 +75,7 @@ ifeq ($(strip $(AUDIO_ENABLE)), yes)
endif
ifeq ($(strip $(SEQUENCER_ENABLE)), yes)
- OPT_DEFS += -DSEQUENCER_ENABLE
MUSIC_ENABLE = yes
- SRC += $(QUANTUM_DIR)/sequencer/sequencer.c
- SRC += $(QUANTUM_DIR)/process_keycode/process_sequencer.c
endif
ifeq ($(strip $(MIDI_ENABLE)), yes)
@@ -94,11 +91,6 @@ ifeq ($(strip $(MIDI_ENABLE)), yes)
SRC += $(QUANTUM_DIR)/process_keycode/process_midi.c
endif
-MUSIC_ENABLE ?= no
-ifeq ($(MUSIC_ENABLE), yes)
- SRC += $(QUANTUM_DIR)/process_keycode/process_music.c
-endif
-
VALID_STENO_PROTOCOL_TYPES := geminipr txbolt all
STENO_PROTOCOL ?= all
ifeq ($(strip $(STENO_ENABLE)), yes)
@@ -124,17 +116,11 @@ ifeq ($(strip $(STENO_ENABLE)), yes)
endif
endif
-ifeq ($(strip $(VIRTSER_ENABLE)), yes)
- OPT_DEFS += -DVIRTSER_ENABLE
-endif
-
ifeq ($(strip $(MOUSEKEY_ENABLE)), yes)
- OPT_DEFS += -DMOUSEKEY_ENABLE
MOUSE_ENABLE := yes
- SRC += $(QUANTUM_DIR)/mousekey.c
endif
-VALID_POINTING_DEVICE_DRIVER_TYPES := adns5050 adns9800 analog_joystick cirque_pinnacle_i2c cirque_pinnacle_spi paw3204 pmw3320 pmw3360 pmw3389 pimoroni_trackball custom
+VALID_POINTING_DEVICE_DRIVER_TYPES := adns5050 adns9800 analog_joystick azoteq_iqs5xx cirque_pinnacle_i2c cirque_pinnacle_spi paw3204 pmw3320 pmw3360 pmw3389 pimoroni_trackball custom
ifeq ($(strip $(POINTING_DEVICE_ENABLE)), yes)
ifeq ($(filter $(POINTING_DEVICE_DRIVER),$(VALID_POINTING_DEVICE_DRIVER_TYPES)),)
$(call CATASTROPHIC_ERROR,Invalid POINTING_DEVICE_DRIVER,POINTING_DEVICE_DRIVER="$(POINTING_DEVICE_DRIVER)" is not a valid pointing device type)
@@ -151,30 +137,26 @@ ifeq ($(strip $(POINTING_DEVICE_ENABLE)), yes)
endif
OPT_DEFS += -DPOINTING_DEVICE_DRIVER_$(strip $(POINTING_DEVICE_DRIVER))
ifeq ($(strip $(POINTING_DEVICE_DRIVER)), adns9800)
- OPT_DEFS += -DSTM32_SPI -DHAL_USE_SPI=TRUE
- QUANTUM_LIB_SRC += spi_master.c
+ SPI_DRIVER_REQUIRED = yes
else ifeq ($(strip $(POINTING_DEVICE_DRIVER)), analog_joystick)
- OPT_DEFS += -DSTM32_ADC -DHAL_USE_ADC=TRUE
- LIB_SRC += analog.c
+ ANALOG_DRIVER_REQUIRED = yes
+ else ifeq ($(strip $(POINTING_DEVICE_DRIVER)), azoteq_iqs5xx)
+ I2C_DRIVER_REQUIRED = yes
else ifeq ($(strip $(POINTING_DEVICE_DRIVER)), cirque_pinnacle_i2c)
- OPT_DEFS += -DSTM32_I2C -DHAL_USE_I2C=TRUE
+ I2C_DRIVER_REQUIRED = yes
SRC += drivers/sensors/cirque_pinnacle.c
SRC += drivers/sensors/cirque_pinnacle_gestures.c
SRC += $(QUANTUM_DIR)/pointing_device/pointing_device_gestures.c
- QUANTUM_LIB_SRC += i2c_master.c
else ifeq ($(strip $(POINTING_DEVICE_DRIVER)), cirque_pinnacle_spi)
- OPT_DEFS += -DSTM32_SPI -DHAL_USE_SPI=TRUE
+ SPI_DRIVER_REQUIRED = yes
SRC += drivers/sensors/cirque_pinnacle.c
SRC += drivers/sensors/cirque_pinnacle_gestures.c
SRC += $(QUANTUM_DIR)/pointing_device/pointing_device_gestures.c
- QUANTUM_LIB_SRC += spi_master.c
else ifeq ($(strip $(POINTING_DEVICE_DRIVER)), pimoroni_trackball)
- OPT_DEFS += -DSTM32_SPI -DHAL_USE_I2C=TRUE
- QUANTUM_LIB_SRC += i2c_master.c
+ I2C_DRIVER_REQUIRED = yes
else ifneq ($(filter $(strip $(POINTING_DEVICE_DRIVER)),pmw3360 pmw3389),)
- OPT_DEFS += -DSTM32_SPI -DHAL_USE_SPI=TRUE
+ SPI_DRIVER_REQUIRED = yes
SRC += drivers/sensors/pmw33xx_common.c
- QUANTUM_LIB_SRC += spi_master.c
endif
endif
endif
@@ -204,12 +186,12 @@ else
else ifeq ($(strip $(EEPROM_DRIVER)), i2c)
# External I2C EEPROM implementation
OPT_DEFS += -DEEPROM_DRIVER -DEEPROM_I2C
- QUANTUM_LIB_SRC += i2c_master.c
+ I2C_DRIVER_REQUIRED = yes
SRC += eeprom_driver.c eeprom_i2c.c
else ifeq ($(strip $(EEPROM_DRIVER)), spi)
# External SPI EEPROM implementation
OPT_DEFS += -DEEPROM_DRIVER -DEEPROM_SPI
- QUANTUM_LIB_SRC += spi_master.c
+ SPI_DRIVER_REQUIRED = yes
SRC += eeprom_driver.c eeprom_spi.c
else ifeq ($(strip $(EEPROM_DRIVER)), legacy_stm32_flash)
# STM32 Emulated EEPROM, backed by MCU flash (soon to be deprecated)
@@ -308,10 +290,10 @@ ifneq ($(strip $(FLASH_DRIVER)), none)
else
OPT_DEFS += -DFLASH_ENABLE
ifeq ($(strip $(FLASH_DRIVER)),spi)
+ SPI_DRIVER_REQUIRED = yes
OPT_DEFS += -DFLASH_DRIVER -DFLASH_SPI
COMMON_VPATH += $(DRIVER_PATH)/flash
SRC += flash_spi.c
- QUANTUM_LIB_SRC += spi_master.c
endif
endif
endif
@@ -328,6 +310,7 @@ ifeq ($(strip $(RGBLIGHT_ENABLE)), yes)
COMMON_VPATH += $(QUANTUM_DIR)/rgblight
POST_CONFIG_H += $(QUANTUM_DIR)/rgblight/rgblight_post_config.h
OPT_DEFS += -DRGBLIGHT_ENABLE
+ OPT_DEFS += -DRGBLIGHT_$(strip $(shell echo $(RGBLIGHT_DRIVER) | tr '[:lower:]' '[:upper:]'))
SRC += $(QUANTUM_DIR)/color.c
SRC += $(QUANTUM_DIR)/rgblight/rgblight.c
CIE1931_CURVE := yes
@@ -342,24 +325,29 @@ ifeq ($(strip $(RGBLIGHT_ENABLE)), yes)
APA102_DRIVER_REQUIRED := yes
endif
- ifeq ($(strip $(RGBLIGHT_DRIVER)), custom)
- OPT_DEFS += -DRGBLIGHT_CUSTOM_DRIVER
+ ifeq ($(strip $(VELOCIKEY_ENABLE)), yes)
+ OPT_DEFS += -DVELOCIKEY_ENABLE
endif
endif
+# Deprecated driver names - do not use
+ifeq ($(strip $(LED_MATRIX_DRIVER)), aw20216)
+LED_MATRIX_DRIVER := aw20216s
+endif
+ifeq ($(strip $(LED_MATRIX_DRIVER)), ckled2001)
+LED_MATRIX_DRIVER := snled27351
+endif
+
LED_MATRIX_ENABLE ?= no
-VALID_LED_MATRIX_TYPES := is31fl3731 is31fl3742a is31fl3743a is31fl3745 is31fl3746a ckled2001 custom
-# TODO: is31fl3733 is31fl3737 is31fl3741
+VALID_LED_MATRIX_TYPES := is31fl3218 is31fl3731 is31fl3733 is31fl3736 is31fl3737 is31fl3741 is31fl3742a is31fl3743a is31fl3745 is31fl3746a snled27351 custom
ifeq ($(strip $(LED_MATRIX_ENABLE)), yes)
ifeq ($(filter $(LED_MATRIX_DRIVER),$(VALID_LED_MATRIX_TYPES)),)
$(call CATASTROPHIC_ERROR,Invalid LED_MATRIX_DRIVER,LED_MATRIX_DRIVER="$(LED_MATRIX_DRIVER)" is not a valid matrix type)
endif
OPT_DEFS += -DLED_MATRIX_ENABLE
-ifneq (,$(filter $(MCU), atmega16u2 atmega32u2 at90usb162))
- # ATmegaxxU2 does not have hardware MUL instruction - lib8tion must be told to use software multiplication routines
- OPT_DEFS += -DLIB8_ATTINY
-endif
+ OPT_DEFS += -DLED_MATRIX_$(strip $(shell echo $(LED_MATRIX_DRIVER) | tr '[:lower:]' '[:upper:]'))
+
COMMON_VPATH += $(QUANTUM_DIR)/led_matrix
COMMON_VPATH += $(QUANTUM_DIR)/led_matrix/animations
COMMON_VPATH += $(QUANTUM_DIR)/led_matrix/animations/runners
@@ -367,65 +355,99 @@ endif
SRC += $(QUANTUM_DIR)/process_keycode/process_backlight.c
SRC += $(QUANTUM_DIR)/led_matrix/led_matrix.c
SRC += $(QUANTUM_DIR)/led_matrix/led_matrix_drivers.c
- SRC += $(LIB_PATH)/lib8tion/lib8tion.c
+ LIB8TION_ENABLE := yes
CIE1931_CURVE := yes
+ ifeq ($(strip $(LED_MATRIX_DRIVER)), is31fl3218)
+ I2C_DRIVER_REQUIRED = yes
+ COMMON_VPATH += $(DRIVER_PATH)/led/issi
+ SRC += is31fl3218-simple.c
+ endif
+
ifeq ($(strip $(LED_MATRIX_DRIVER)), is31fl3731)
- OPT_DEFS += -DIS31FL3731 -DSTM32_I2C -DHAL_USE_I2C=TRUE
+ I2C_DRIVER_REQUIRED = yes
COMMON_VPATH += $(DRIVER_PATH)/led/issi
SRC += is31fl3731-simple.c
- QUANTUM_LIB_SRC += i2c_master.c
endif
- ifeq ($(strip $(LED_MATRIX_DRIVER)), is31fl3742a)
- OPT_DEFS += -DIS31FLCOMMON -DIS31FL3742A -DSTM32_I2C -DHAL_USE_I2C=TRUE
+ ifeq ($(strip $(LED_MATRIX_DRIVER)), is31fl3733)
+ I2C_DRIVER_REQUIRED = yes
+ COMMON_VPATH += $(DRIVER_PATH)/led/issi
+ SRC += is31fl3733-simple.c
+ endif
+
+ ifeq ($(strip $(LED_MATRIX_DRIVER)), is31fl3736)
+ I2C_DRIVER_REQUIRED = yes
+ COMMON_VPATH += $(DRIVER_PATH)/led/issi
+ SRC += is31fl3736-simple.c
+ endif
+
+ ifeq ($(strip $(LED_MATRIX_DRIVER)), is31fl3737)
+ I2C_DRIVER_REQUIRED = yes
+ COMMON_VPATH += $(DRIVER_PATH)/led/issi
+ SRC += is31fl3737-simple.c
+ endif
+
+ ifeq ($(strip $(LED_MATRIX_DRIVER)), is31fl3741)
+ I2C_DRIVER_REQUIRED = yes
+ COMMON_VPATH += $(DRIVER_PATH)/led/issi
+ SRC += is31fl3741-simple.c
+ endif
+
+ ifeq ($(strip $(LED_MATRIX_DRIVER)), is31fl3742a)
+ OPT_DEFS += -DIS31FLCOMMON
+ I2C_DRIVER_REQUIRED = yes
COMMON_VPATH += $(DRIVER_PATH)/led/issi
SRC += is31flcommon.c
- QUANTUM_LIB_SRC += i2c_master.c
endif
- ifeq ($(strip $(LED_MATRIX_DRIVER)), is31fl3743a)
- OPT_DEFS += -DIS31FLCOMMON -DIS31FL3743A -DSTM32_I2C -DHAL_USE_I2C=TRUE
+ ifeq ($(strip $(LED_MATRIX_DRIVER)), is31fl3743a)
+ OPT_DEFS += -DIS31FLCOMMON
+ I2C_DRIVER_REQUIRED = yes
COMMON_VPATH += $(DRIVER_PATH)/led/issi
SRC += is31flcommon.c
- QUANTUM_LIB_SRC += i2c_master.c
endif
- ifeq ($(strip $(LED_MATRIX_DRIVER)), is31fl3745)
- OPT_DEFS += -DIS31FLCOMMON -DIS31FL3745 -DSTM32_I2C -DHAL_USE_I2C=TRUE
+ ifeq ($(strip $(LED_MATRIX_DRIVER)), is31fl3745)
+ OPT_DEFS += -DIS31FLCOMMON
+ I2C_DRIVER_REQUIRED = yes
COMMON_VPATH += $(DRIVER_PATH)/led/issi
SRC += is31flcommon.c
- QUANTUM_LIB_SRC += i2c_master.c
endif
- ifeq ($(strip $(LED_MATRIX_DRIVER)), is31fl3746a)
- OPT_DEFS += -DIS31FLCOMMON -DIS31FL3746A -DSTM32_I2C -DHAL_USE_I2C=TRUE
+ ifeq ($(strip $(LED_MATRIX_DRIVER)), is31fl3746a)
+ OPT_DEFS += -DIS31FLCOMMON
+ I2C_DRIVER_REQUIRED = yes
COMMON_VPATH += $(DRIVER_PATH)/led/issi
SRC += is31flcommon.c
- QUANTUM_LIB_SRC += i2c_master.c
endif
- ifeq ($(strip $(LED_MATRIX_DRIVER)), ckled2001)
- OPT_DEFS += -DCKLED2001 -DSTM32_I2C -DHAL_USE_I2C=TRUE
+ ifeq ($(strip $(LED_MATRIX_DRIVER)), snled27351)
+ I2C_DRIVER_REQUIRED = yes
COMMON_VPATH += $(DRIVER_PATH)/led
- SRC += ckled2001-simple.c
- QUANTUM_LIB_SRC += i2c_master.c
+ SRC += snled27351-simple.c
endif
endif
+# Deprecated driver names - do not use
+ifeq ($(strip $(RGB_MATRIX_DRIVER)), aw20216)
+RGB_MATRIX_DRIVER := aw20216s
+endif
+ifeq ($(strip $(RGB_MATRIX_DRIVER)), ckled2001)
+RGB_MATRIX_DRIVER := snled27351
+endif
+
RGB_MATRIX_ENABLE ?= no
-VALID_RGB_MATRIX_TYPES := aw20216 is31fl3731 is31fl3733 is31fl3736 is31fl3737 is31fl3741 is31fl3742a is31fl3743a is31fl3745 is31fl3746a ckled2001 ws2812 custom
+VALID_RGB_MATRIX_TYPES := aw20216s is31fl3218 is31fl3731 is31fl3733 is31fl3736 is31fl3737 is31fl3741 is31fl3742a is31fl3743a is31fl3745 is31fl3746a snled27351 ws2812 custom
ifeq ($(strip $(RGB_MATRIX_ENABLE)), yes)
ifeq ($(filter $(RGB_MATRIX_DRIVER),$(VALID_RGB_MATRIX_TYPES)),)
$(call CATASTROPHIC_ERROR,Invalid RGB_MATRIX_DRIVER,RGB_MATRIX_DRIVER="$(RGB_MATRIX_DRIVER)" is not a valid matrix type)
endif
OPT_DEFS += -DRGB_MATRIX_ENABLE
-ifneq (,$(filter $(MCU), atmega16u2 atmega32u2 at90usb162))
- # ATmegaxxU2 does not have hardware MUL instruction - lib8tion must be told to use software multiplication routines
- OPT_DEFS += -DLIB8_ATTINY
-endif
+ OPT_DEFS += -DRGB_MATRIX_$(strip $(shell echo $(RGB_MATRIX_DRIVER) | tr '[:lower:]' '[:upper:]'))
+
COMMON_VPATH += $(QUANTUM_DIR)/rgb_matrix
COMMON_VPATH += $(QUANTUM_DIR)/rgb_matrix/animations
COMMON_VPATH += $(QUANTUM_DIR)/rgb_matrix/animations/runners
@@ -433,94 +455,91 @@ endif
SRC += $(QUANTUM_DIR)/color.c
SRC += $(QUANTUM_DIR)/rgb_matrix/rgb_matrix.c
SRC += $(QUANTUM_DIR)/rgb_matrix/rgb_matrix_drivers.c
- SRC += $(LIB_PATH)/lib8tion/lib8tion.c
+ LIB8TION_ENABLE := yes
CIE1931_CURVE := yes
RGB_KEYCODES_ENABLE := yes
- ifeq ($(strip $(RGB_MATRIX_DRIVER)), aw20216)
- OPT_DEFS += -DAW20216 -DSTM32_SPI -DHAL_USE_SPI=TRUE
+ ifeq ($(strip $(RGB_MATRIX_DRIVER)), aw20216s)
+ SPI_DRIVER_REQUIRED = yes
COMMON_VPATH += $(DRIVER_PATH)/led
- SRC += aw20216.c
- QUANTUM_LIB_SRC += spi_master.c
+ SRC += aw20216s.c
+ endif
+
+ ifeq ($(strip $(RGB_MATRIX_DRIVER)), is31fl3218)
+ I2C_DRIVER_REQUIRED = yes
+ COMMON_VPATH += $(DRIVER_PATH)/led/issi
+ SRC += is31fl3218.c
endif
ifeq ($(strip $(RGB_MATRIX_DRIVER)), is31fl3731)
- OPT_DEFS += -DIS31FL3731 -DSTM32_I2C -DHAL_USE_I2C=TRUE
+ I2C_DRIVER_REQUIRED = yes
COMMON_VPATH += $(DRIVER_PATH)/led/issi
SRC += is31fl3731.c
- QUANTUM_LIB_SRC += i2c_master.c
endif
ifeq ($(strip $(RGB_MATRIX_DRIVER)), is31fl3733)
- OPT_DEFS += -DIS31FL3733 -DSTM32_I2C -DHAL_USE_I2C=TRUE
+ I2C_DRIVER_REQUIRED = yes
COMMON_VPATH += $(DRIVER_PATH)/led/issi
SRC += is31fl3733.c
- QUANTUM_LIB_SRC += i2c_master.c
endif
ifeq ($(strip $(RGB_MATRIX_DRIVER)), is31fl3736)
- OPT_DEFS += -DIS31FL3736 -DSTM32_I2C -DHAL_USE_I2C=TRUE
+ I2C_DRIVER_REQUIRED = yes
COMMON_VPATH += $(DRIVER_PATH)/led/issi
SRC += is31fl3736.c
- QUANTUM_LIB_SRC += i2c_master.c
endif
ifeq ($(strip $(RGB_MATRIX_DRIVER)), is31fl3737)
- OPT_DEFS += -DIS31FL3737 -DSTM32_I2C -DHAL_USE_I2C=TRUE
+ I2C_DRIVER_REQUIRED = yes
COMMON_VPATH += $(DRIVER_PATH)/led/issi
SRC += is31fl3737.c
- QUANTUM_LIB_SRC += i2c_master.c
endif
ifeq ($(strip $(RGB_MATRIX_DRIVER)), is31fl3741)
- OPT_DEFS += -DIS31FL3741 -DSTM32_I2C -DHAL_USE_I2C=TRUE
+ I2C_DRIVER_REQUIRED = yes
COMMON_VPATH += $(DRIVER_PATH)/led/issi
SRC += is31fl3741.c
- QUANTUM_LIB_SRC += i2c_master.c
endif
- ifeq ($(strip $(RGB_MATRIX_DRIVER)), is31fl3742a)
- OPT_DEFS += -DIS31FLCOMMON -DIS31FL3742A -DSTM32_I2C -DHAL_USE_I2C=TRUE
+ ifeq ($(strip $(RGB_MATRIX_DRIVER)), is31fl3742a)
+ OPT_DEFS += -DIS31FLCOMMON
+ I2C_DRIVER_REQUIRED = yes
COMMON_VPATH += $(DRIVER_PATH)/led/issi
SRC += is31flcommon.c
- QUANTUM_LIB_SRC += i2c_master.c
endif
- ifeq ($(strip $(RGB_MATRIX_DRIVER)), is31fl3743a)
- OPT_DEFS += -DIS31FLCOMMON -DIS31FL3743A -DSTM32_I2C -DHAL_USE_I2C=TRUE
+ ifeq ($(strip $(RGB_MATRIX_DRIVER)), is31fl3743a)
+ OPT_DEFS += -DIS31FLCOMMON
+ I2C_DRIVER_REQUIRED = yes
COMMON_VPATH += $(DRIVER_PATH)/led/issi
SRC += is31flcommon.c
- QUANTUM_LIB_SRC += i2c_master.c
endif
- ifeq ($(strip $(RGB_MATRIX_DRIVER)), is31fl3745)
- OPT_DEFS += -DIS31FLCOMMON -DIS31FL3745 -DSTM32_I2C -DHAL_USE_I2C=TRUE
+ ifeq ($(strip $(RGB_MATRIX_DRIVER)), is31fl3745)
+ OPT_DEFS += -DIS31FLCOMMON
+ I2C_DRIVER_REQUIRED = yes
COMMON_VPATH += $(DRIVER_PATH)/led/issi
SRC += is31flcommon.c
- QUANTUM_LIB_SRC += i2c_master.c
endif
- ifeq ($(strip $(RGB_MATRIX_DRIVER)), is31fl3746a)
- OPT_DEFS += -DIS31FLCOMMON -DIS31FL3746A -DSTM32_I2C -DHAL_USE_I2C=TRUE
+ ifeq ($(strip $(RGB_MATRIX_DRIVER)), is31fl3746a)
+ OPT_DEFS += -DIS31FLCOMMON
+ I2C_DRIVER_REQUIRED = yes
COMMON_VPATH += $(DRIVER_PATH)/led/issi
SRC += is31flcommon.c
- QUANTUM_LIB_SRC += i2c_master.c
endif
- ifeq ($(strip $(RGB_MATRIX_DRIVER)), ckled2001)
- OPT_DEFS += -DCKLED2001 -DSTM32_I2C -DHAL_USE_I2C=TRUE
+ ifeq ($(strip $(RGB_MATRIX_DRIVER)), snled27351)
+ I2C_DRIVER_REQUIRED = yes
COMMON_VPATH += $(DRIVER_PATH)/led
- SRC += ckled2001.c
- QUANTUM_LIB_SRC += i2c_master.c
+ SRC += snled27351.c
endif
ifeq ($(strip $(RGB_MATRIX_DRIVER)), ws2812)
- OPT_DEFS += -DWS2812
WS2812_DRIVER_REQUIRED := yes
endif
ifeq ($(strip $(RGB_MATRIX_DRIVER)), apa102)
- OPT_DEFS += -DAPA102
APA102_DRIVER_REQUIRED := yes
endif
@@ -567,6 +586,7 @@ ifeq ($(strip $(BACKLIGHT_ENABLE)), yes)
SRC += $(QUANTUM_DIR)/backlight/backlight.c
SRC += $(QUANTUM_DIR)/process_keycode/process_backlight.c
OPT_DEFS += -DBACKLIGHT_ENABLE
+ OPT_DEFS += -DBACKLIGHT_$(strip $(shell echo $(BACKLIGHT_DRIVER) | tr '[:lower:]' '[:upper:]'))
ifneq ($(strip $(BACKLIGHT_DRIVER)), custom)
SRC += $(QUANTUM_DIR)/backlight/backlight_driver_common.c
@@ -579,35 +599,6 @@ ifeq ($(strip $(BACKLIGHT_ENABLE)), yes)
endif
endif
-VALID_WS2812_DRIVER_TYPES := bitbang custom i2c pwm spi vendor
-
-WS2812_DRIVER ?= bitbang
-ifeq ($(strip $(WS2812_DRIVER_REQUIRED)), yes)
- ifeq ($(filter $(WS2812_DRIVER),$(VALID_WS2812_DRIVER_TYPES)),)
- $(call CATASTROPHIC_ERROR,Invalid WS2812_DRIVER,WS2812_DRIVER="$(WS2812_DRIVER)" is not a valid WS2812 driver)
- endif
-
- OPT_DEFS += -DWS2812_DRIVER_$(strip $(shell echo $(WS2812_DRIVER) | tr '[:lower:]' '[:upper:]'))
-
- SRC += ws2812_$(strip $(WS2812_DRIVER)).c
-
- ifeq ($(strip $(PLATFORM)), CHIBIOS)
- ifeq ($(strip $(WS2812_DRIVER)), pwm)
- OPT_DEFS += -DSTM32_DMA_REQUIRED=TRUE
- endif
- endif
-
- # add extra deps
- ifeq ($(strip $(WS2812_DRIVER)), i2c)
- QUANTUM_LIB_SRC += i2c_master.c
- endif
-endif
-
-ifeq ($(strip $(APA102_DRIVER_REQUIRED)), yes)
- COMMON_VPATH += $(DRIVER_PATH)/led
- SRC += apa102.c
-endif
-
ifeq ($(strip $(CIE1931_CURVE)), yes)
OPT_DEFS += -DUSE_CIE1931_CURVE
LED_TABLES := yes
@@ -622,8 +613,6 @@ ifeq ($(strip $(VIA_ENABLE)), yes)
RAW_ENABLE := yes
BOOTMAGIC_ENABLE := yes
TRI_LAYER_ENABLE := yes
- SRC += $(QUANTUM_DIR)/via.c
- OPT_DEFS += -DVIA_ENABLE
endif
VALID_MAGIC_TYPES := yes
@@ -708,33 +697,35 @@ ifeq ($(strip $(SPLIT_KEYBOARD)), yes)
COMMON_VPATH += $(QUANTUM_PATH)/split_common
endif
-ifeq ($(strip $(CRC_ENABLE)), yes)
- OPT_DEFS += -DCRC_ENABLE
- SRC += crc.c
-endif
-
ifeq ($(strip $(FNV_ENABLE)), yes)
OPT_DEFS += -DFNV_ENABLE
VPATH += $(LIB_PATH)/fnv
SRC += qmk_fnv_type_validation.c hash_32a.c hash_64a.c
endif
+ifeq ($(strip $(LIB8TION_ENABLE)), yes)
+ ifneq (,$(filter $(MCU), atmega16u2 atmega32u2 at90usb162))
+ # ATmegaxxU2 does not have hardware MUL instruction - lib8tion must be told to use software multiplication routines
+ OPT_DEFS += -DLIB8_ATTINY
+ endif
+ SRC += $(LIB_PATH)/lib8tion/lib8tion.c
+endif
+
VALID_HAPTIC_DRIVER_TYPES := drv2605l solenoid
ifeq ($(strip $(HAPTIC_ENABLE)),yes)
ifeq ($(filter $(HAPTIC_DRIVER),$(VALID_HAPTIC_DRIVER_TYPES)),)
$(call CATASTROPHIC_ERROR,Invalid HAPTIC_DRIVER,HAPTIC_DRIVER="$(HAPTIC_DRIVER)" is not a valid Haptic driver)
else
+ OPT_DEFS += -DHAPTIC_$(strip $(shell echo $(HAPTIC_DRIVER) | tr '[:lower:]' '[:upper:]'))
COMMON_VPATH += $(DRIVER_PATH)/haptic
ifeq ($(strip $(HAPTIC_DRIVER)), drv2605l)
+ I2C_DRIVER_REQUIRED = yes
SRC += drv2605l.c
- QUANTUM_LIB_SRC += i2c_master.c
- OPT_DEFS += -DHAPTIC_DRV2605L
endif
ifeq ($(strip $(HAPTIC_DRIVER)), solenoid)
SRC += solenoid.c
- OPT_DEFS += -DHAPTIC_SOLENOID
endif
endif
endif
@@ -757,6 +748,7 @@ ifeq ($(strip $(OLED_ENABLE)), yes)
$(call CATASTROPHIC_ERROR,Invalid OLED_TRANSPORT,OLED_TRANSPORT="$(OLED_TRANSPORT)" is not a valid OLED transport)
else
OPT_DEFS += -DOLED_ENABLE
+ OPT_DEFS += -DOLED_$(strip $(shell echo $(OLED_DRIVER) | tr '[:lower:]' '[:upper:]'))
COMMON_VPATH += $(DRIVER_PATH)/oled
ifneq ($(strip $(OLED_DRIVER)), custom)
SRC += oled_driver.c
@@ -764,10 +756,10 @@ ifeq ($(strip $(OLED_ENABLE)), yes)
OPT_DEFS += -DOLED_TRANSPORT_$(strip $(shell echo $(OLED_TRANSPORT) | tr '[:lower:]' '[:upper:]'))
ifeq ($(strip $(OLED_TRANSPORT)), i2c)
- QUANTUM_LIB_SRC += i2c_master.c
+ I2C_DRIVER_REQUIRED = yes
endif
ifeq ($(strip $(OLED_TRANSPORT)), spi)
- QUANTUM_LIB_SRC += spi_master.c
+ SPI_DRIVER_REQUIRED = yes
endif
endif
endif
@@ -775,9 +767,9 @@ endif
ifeq ($(strip $(ST7565_ENABLE)), yes)
OPT_DEFS += -DST7565_ENABLE
+ SPI_DRIVER_REQUIRED = yes
COMMON_VPATH += $(DRIVER_PATH)/oled # For glcdfont.h
COMMON_VPATH += $(DRIVER_PATH)/lcd
- QUANTUM_LIB_SRC += spi_master.c
SRC += st7565.c
endif
@@ -809,27 +801,6 @@ ifeq ($(strip $(UNICODE_COMMON)), yes)
$(QUANTUM_DIR)/unicode/utf8.c
endif
-MAGIC_ENABLE ?= yes
-ifeq ($(strip $(MAGIC_ENABLE)), yes)
- SRC += $(QUANTUM_DIR)/process_keycode/process_magic.c
- OPT_DEFS += -DMAGIC_KEYCODE_ENABLE
-endif
-
-SEND_STRING_ENABLE ?= yes
-ifeq ($(strip $(SEND_STRING_ENABLE)), yes)
- OPT_DEFS += -DSEND_STRING_ENABLE
- COMMON_VPATH += $(QUANTUM_DIR)/send_string
- SRC += $(QUANTUM_DIR)/send_string/send_string.c
-endif
-
-ifeq ($(strip $(AUTO_SHIFT_ENABLE)), yes)
- SRC += $(QUANTUM_DIR)/process_keycode/process_auto_shift.c
- OPT_DEFS += -DAUTO_SHIFT_ENABLE
- ifeq ($(strip $(AUTO_SHIFT_MODIFIERS)), yes)
- OPT_DEFS += -DAUTO_SHIFT_MODIFIERS
- endif
-endif
-
ifeq ($(strip $(PS2_MOUSE_ENABLE)), yes)
PS2_ENABLE := yes
MOUSE_ENABLE := yes
@@ -870,8 +841,8 @@ ifeq ($(strip $(JOYSTICK_ENABLE)), yes)
SRC += $(QUANTUM_DIR)/joystick.c
ifeq ($(strip $(JOYSTICK_DRIVER)), analog)
+ ANALOG_DRIVER_REQUIRED = yes
OPT_DEFS += -DANALOG_JOYSTICK_ENABLE
- SRC += analog.c
endif
ifeq ($(strip $(JOYSTICK_DRIVER)), digital)
OPT_DEFS += -DDIGITAL_JOYSTICK_ENABLE
@@ -909,23 +880,22 @@ ifeq ($(strip $(BLUETOOTH_ENABLE)), yes)
$(call CATASTROPHIC_ERROR,Invalid BLUETOOTH_DRIVER,BLUETOOTH_DRIVER="$(BLUETOOTH_DRIVER)" is not a valid Bluetooth driver type)
endif
OPT_DEFS += -DBLUETOOTH_ENABLE
+ OPT_DEFS += -DBLUETOOTH_$(strip $(shell echo $(BLUETOOTH_DRIVER) | tr '[:lower:]' '[:upper:]'))
NO_USB_STARTUP_CHECK := yes
COMMON_VPATH += $(DRIVER_PATH)/bluetooth
SRC += outputselect.c
ifeq ($(strip $(BLUETOOTH_DRIVER)), bluefruit_le)
- OPT_DEFS += -DBLUETOOTH_BLUEFRUIT_LE -DHAL_USE_SPI=TRUE
+ SPI_DRIVER_REQUIRED = yes
+ ANALOG_DRIVER_REQUIRED = yes
SRC += $(DRIVER_PATH)/bluetooth/bluetooth.c
SRC += $(DRIVER_PATH)/bluetooth/bluefruit_le.cpp
- QUANTUM_LIB_SRC += analog.c
- QUANTUM_LIB_SRC += spi_master.c
endif
ifeq ($(strip $(BLUETOOTH_DRIVER)), rn42)
- OPT_DEFS += -DBLUETOOTH_RN42 -DHAL_USE_SERIAL=TRUE
+ UART_DRIVER_REQUIRED = yes
SRC += $(DRIVER_PATH)/bluetooth/bluetooth.c
SRC += $(DRIVER_PATH)/bluetooth/rn42.c
- QUANTUM_LIB_SRC += uart.c
endif
endif
@@ -937,10 +907,51 @@ ifeq ($(strip $(ENCODER_ENABLE)), yes)
endif
endif
-ifeq ($(strip $(OS_DETECTION_ENABLE)), yes)
- SRC += $(QUANTUM_DIR)/os_detection.c
- OPT_DEFS += -DOS_DETECTION_ENABLE
- ifeq ($(strip $(OS_DETECTION_DEBUG_ENABLE)), yes)
- OPT_DEFS += -DOS_DETECTION_DEBUG_ENABLE
+VALID_WS2812_DRIVER_TYPES := bitbang custom i2c pwm spi vendor
+
+WS2812_DRIVER ?= bitbang
+ifeq ($(strip $(WS2812_DRIVER_REQUIRED)), yes)
+ ifeq ($(filter $(WS2812_DRIVER),$(VALID_WS2812_DRIVER_TYPES)),)
+ $(call CATASTROPHIC_ERROR,Invalid WS2812_DRIVER,WS2812_DRIVER="$(WS2812_DRIVER)" is not a valid WS2812 driver)
endif
+
+ OPT_DEFS += -DWS2812_$(strip $(shell echo $(WS2812_DRIVER) | tr '[:lower:]' '[:upper:]'))
+
+ SRC += ws2812_$(strip $(WS2812_DRIVER)).c
+
+ ifeq ($(strip $(PLATFORM)), CHIBIOS)
+ ifeq ($(strip $(WS2812_DRIVER)), pwm)
+ OPT_DEFS += -DSTM32_DMA_REQUIRED=TRUE
+ endif
+ endif
+
+ # add extra deps
+ ifeq ($(strip $(WS2812_DRIVER)), i2c)
+ I2C_DRIVER_REQUIRED = yes
+ endif
+endif
+
+ifeq ($(strip $(APA102_DRIVER_REQUIRED)), yes)
+ COMMON_VPATH += $(DRIVER_PATH)/led
+ SRC += apa102.c
+endif
+
+ifeq ($(strip $(ANALOG_DRIVER_REQUIRED)), yes)
+ OPT_DEFS += -DHAL_USE_ADC=TRUE
+ QUANTUM_LIB_SRC += analog.c
+endif
+
+ifeq ($(strip $(I2C_DRIVER_REQUIRED)), yes)
+ OPT_DEFS += -DHAL_USE_I2C=TRUE
+ QUANTUM_LIB_SRC += i2c_master.c
+endif
+
+ifeq ($(strip $(SPI_DRIVER_REQUIRED)), yes)
+ OPT_DEFS += -DHAL_USE_SPI=TRUE
+ QUANTUM_LIB_SRC += spi_master.c
+endif
+
+ifeq ($(strip $(UART_DRIVER_REQUIRED)), yes)
+ OPT_DEFS += -DHAL_USE_SERIAL=TRUE
+ QUANTUM_LIB_SRC += uart.c
endif
diff --git a/builddefs/common_rules.mk b/builddefs/common_rules.mk
index d20e9ad74d..cfd261737c 100644
--- a/builddefs/common_rules.mk
+++ b/builddefs/common_rules.mk
@@ -12,6 +12,9 @@ vpath %.hpp $(VPATH_SRC)
vpath %.S $(VPATH_SRC)
VPATH :=
+# Helper to return the distinct elements of a list
+uniq = $(if $1,$(firstword $1) $(call uniq,$(filter-out $(firstword $1),$1)))
+
# Convert all SRC to OBJ
define OBJ_FROM_SRC
$(patsubst %.c,$1/%.o,$(patsubst %.cpp,$1/%.o,$(patsubst %.cc,$1/%.o,$(patsubst %.S,$1/%.o,$(patsubst %.clib,$1/%.a,$($1_SRC))))))
@@ -188,7 +191,7 @@ DFU_SUFFIX_ARGS ?=
elf: $(BUILD_DIR)/$(TARGET).elf
hex: $(BUILD_DIR)/$(TARGET).hex
uf2: $(BUILD_DIR)/$(TARGET).uf2
-cpfirmware: $(FIRMWARE_FORMAT)
+cpfirmware_qmk: $(FIRMWARE_FORMAT)
$(SILENT) || printf "Copying $(TARGET).$(FIRMWARE_FORMAT) to qmk_firmware folder" | $(AWK_CMD)
$(COPY) $(BUILD_DIR)/$(TARGET).$(FIRMWARE_FORMAT) $(TARGET).$(FIRMWARE_FORMAT) && $(PRINT_OK)
eep: $(BUILD_DIR)/$(TARGET).eep
@@ -197,6 +200,15 @@ sym: $(BUILD_DIR)/$(TARGET).sym
LIBNAME=lib$(TARGET).a
lib: $(LIBNAME)
+cpfirmware: cpfirmware_qmk
+
+ifneq ($(QMK_USERSPACE),)
+cpfirmware: cpfirmware_userspace
+cpfirmware_userspace: cpfirmware_qmk
+ $(SILENT) || printf "Copying $(TARGET).$(FIRMWARE_FORMAT) to userspace folder" | $(AWK_CMD)
+ $(COPY) $(BUILD_DIR)/$(TARGET).$(FIRMWARE_FORMAT) $(QMK_USERSPACE)/$(TARGET).$(FIRMWARE_FORMAT) && $(PRINT_OK)
+endif
+
# Display size of file, modifying the output so people don't mistakenly grab the hex output
BINARY_SIZE = $(SIZE) --target=$(FORMAT) $(BUILD_DIR)/$(TARGET).hex | $(SED) -e 's/\.build\/.*$$/$(TARGET).$(FIRMWARE_FORMAT)/g'
@@ -264,7 +276,7 @@ BEGIN = gccversion sizebefore
# Note the obj.txt depeendency is there to force linking if a source file is deleted
%.elf: $(OBJ) $(MASTER_OUTPUT)/cflags.txt $(MASTER_OUTPUT)/ldflags.txt $(MASTER_OUTPUT)/obj.txt | $(BEGIN)
@$(SILENT) || printf "$(MSG_LINKING) $@" | $(AWK_CMD)
- $(eval CMD=MAKE=$(MAKE) $(CC) $(ALL_CFLAGS) $(filter-out %.txt,$^) --output $@ $(LDFLAGS))
+ $(eval CMD=MAKE=$(MAKE) $(CC) $(ALL_CFLAGS) $(call uniq,$(OBJ)) --output $@ $(LDFLAGS))
@$(BUILD_CMD)
@@ -380,33 +392,9 @@ dump_vars:
objs-size:
for i in $(OBJ); do echo $$i; done | sort | xargs $(SIZE)
-ifeq ($(findstring avr-gcc,$(CC)),avr-gcc)
-SIZE_MARGIN = 1024
+# size check optionally implemented in its platform.mk
check-size:
- $(eval MAX_SIZE=$(shell n=`$(CC) -E -mmcu=$(MCU) -D__ASSEMBLER__ $(CFLAGS) $(OPT_DEFS) platforms/avr/bootloader_size.c 2> /dev/null | $(SED) -ne 's/\r//;/^#/n;/^AVR_SIZE:/,$${s/^AVR_SIZE: //;p;}'` && echo $$(($$n)) || echo 0))
- $(eval CURRENT_SIZE=$(shell if [ -f $(BUILD_DIR)/$(TARGET).hex ]; then $(SIZE) --target=$(FORMAT) $(BUILD_DIR)/$(TARGET).hex | $(AWK) 'NR==2 {print $$4}'; else printf 0; fi))
- $(eval FREE_SIZE=$(shell expr $(MAX_SIZE) - $(CURRENT_SIZE)))
- $(eval OVER_SIZE=$(shell expr $(CURRENT_SIZE) - $(MAX_SIZE)))
- $(eval PERCENT_SIZE=$(shell expr $(CURRENT_SIZE) \* 100 / $(MAX_SIZE)))
- if [ $(MAX_SIZE) -gt 0 ] && [ $(CURRENT_SIZE) -gt 0 ]; then \
- $(SILENT) || printf "$(MSG_CHECK_FILESIZE)" | $(AWK_CMD); \
- if [ $(CURRENT_SIZE) -gt $(MAX_SIZE) ]; then \
- $(REMOVE) $(TARGET).$(FIRMWARE_FORMAT); \
- $(REMOVE) $(BUILD_DIR)/$(TARGET).{hex,bin,uf2}; \
- printf "\n * $(MSG_FILE_TOO_BIG)"; $(PRINT_ERROR_PLAIN); \
- else \
- if [ $(FREE_SIZE) -lt $(SIZE_MARGIN) ]; then \
- $(PRINT_WARNING_PLAIN); printf " * $(MSG_FILE_NEAR_LIMIT)"; \
- else \
- $(PRINT_OK); $(SILENT) || printf " * $(MSG_FILE_JUST_RIGHT)"; \
- fi ; \
- fi ; \
- fi
-else
-check-size:
- $(SILENT) || echo "$(MSG_CHECK_FILESIZE_SKIPPED)"
-endif
check-md5:
$(MD5SUM) $(BUILD_DIR)/$(TARGET).$(FIRMWARE_FORMAT)
diff --git a/builddefs/generic_features.mk b/builddefs/generic_features.mk
index 4e058dcd26..9c86958625 100644
--- a/builddefs/generic_features.mk
+++ b/builddefs/generic_features.mk
@@ -13,39 +13,52 @@
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
-SPACE_CADET_ENABLE ?= yes
GRAVE_ESC_ENABLE ?= yes
+MAGIC_ENABLE ?= yes
+SEND_STRING_ENABLE ?= yes
+SPACE_CADET_ENABLE ?= yes
GENERIC_FEATURES = \
+ AUTO_SHIFT \
AUTOCORRECT \
CAPS_WORD \
COMBO \
COMMAND \
+ CRC \
DEFERRED_EXEC \
DIGITIZER \
DIP_SWITCH \
DYNAMIC_KEYMAP \
DYNAMIC_MACRO \
+ DYNAMIC_TAPPING_TERM \
GRAVE_ESC \
HAPTIC \
KEY_LOCK \
KEY_OVERRIDE \
LEADER \
+ MAGIC \
+ MOUSEKEY \
+ MUSIC \
+ OS_DETECTION \
PROGRAMMABLE_BUTTON \
REPEAT_KEY \
SECURE \
+ SEND_STRING \
+ SEQUENCER \
SPACE_CADET \
SWAP_HANDS \
TAP_DANCE \
- VELOCIKEY \
+ TRI_LAYER \
+ VIA \
+ VIRTSER \
WPM \
- DYNAMIC_TAPPING_TERM \
- TRI_LAYER
define HANDLE_GENERIC_FEATURE
# $$(info "Processing: $1_ENABLE $2.c")
SRC += $$(wildcard $$(QUANTUM_DIR)/process_keycode/process_$2.c)
+ SRC += $$(wildcard $$(QUANTUM_DIR)/$2/$2.c)
SRC += $$(wildcard $$(QUANTUM_DIR)/$2.c)
+ VPATH += $$(wildcard $$(QUANTUM_DIR)/$2/)
OPT_DEFS += -D$1_ENABLE
endef
diff --git a/builddefs/message.mk b/builddefs/message.mk
index bf39554dab..7c8f87f990 100644
--- a/builddefs/message.mk
+++ b/builddefs/message.mk
@@ -91,7 +91,6 @@ MSG_AVAILABLE_KEYMAPS = $(eval $(call GENERATE_MSG_AVAILABLE_KEYMAPS))$(MSG_AVAI
MSG_BOOTLOADER_NOT_FOUND_BASE = Bootloader not found. Make sure the board is in bootloader mode. See https://docs.qmk.fm/\#/newbs_flashing\n
MSG_CHECK_FILESIZE = Checking file size of $(TARGET).$(FIRMWARE_FORMAT)
-MSG_CHECK_FILESIZE_SKIPPED = (Firmware size check does not yet support $(MCU_ORIG); skipping)
MSG_FILE_TOO_BIG = $(ERROR_COLOR)The firmware is too large!$(NO_COLOR) $(CURRENT_SIZE)/$(MAX_SIZE) ($(OVER_SIZE) bytes over)\n
MSG_FILE_TOO_SMALL = The firmware is too small! $(CURRENT_SIZE)/$(MAX_SIZE)\n
MSG_FILE_JUST_RIGHT = The firmware size is fine - $(CURRENT_SIZE)/$(MAX_SIZE) ($(PERCENT_SIZE)%%, $(FREE_SIZE) bytes free)\n
@@ -104,6 +103,10 @@ MSG_BOOTLOADER_NOT_FOUND = $(ERROR_COLOR)ERROR:$(NO_COLOR) $(MSG_BOOTLOADER_NOT_
BOOTLOADER_RETRY_TIME ?= 0.5
MSG_BOOTLOADER_NOT_FOUND_QUICK_RETRY = $(MSG_BOOTLOADER_NOT_FOUND_BASE) Trying again every $(BOOTLOADER_RETRY_TIME)s (Ctrl+C to cancel)
+define WARNING_MESSAGE
+ $(shell printf "\n %-99s $(WARN_STRING)\n" "$1" >&2)
+endef
+
define CATASTROPHIC_ERROR
$(shell printf "\n * %-99s $(ERROR_STRING)\n" "$2" >&2)
$(error $1)
diff --git a/builddefs/show_options.mk b/builddefs/show_options.mk
index 563d089880..81d8400a80 100644
--- a/builddefs/show_options.mk
+++ b/builddefs/show_options.mk
@@ -37,7 +37,6 @@ OTHER_OPTION_NAMES = \
UNICODEMAP_ENABLE \
UNICODE_COMMON \
AUTO_SHIFT_ENABLE \
- AUTO_SHIFT_MODIFIERS \
DYNAMIC_TAPPING_TERM_ENABLE \
COMBO_ENABLE \
KEY_LOCK_ENABLE \
@@ -60,7 +59,6 @@ OTHER_OPTION_NAMES = \
ENCODER_ENABLE_CUSTOM \
GERMAN_ENABLE \
HAPTIC_ENABLE \
- ISSI_ENABLE \
KEYLOGGER_ENABLE \
LCD_BACKLIGHT_ENABLE \
MACROS_ENABLED \
diff --git a/data/constants/keycodes/extras/keycodes_russian_typewriter_0.0.1.hjson b/data/constants/keycodes/extras/keycodes_russian_typewriter_0.0.1.hjson
new file mode 100644
index 0000000000..6ad03c58e5
--- /dev/null
+++ b/data/constants/keycodes/extras/keycodes_russian_typewriter_0.0.1.hjson
@@ -0,0 +1,291 @@
+{
+ "aliases": {
+/*
+ * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
+ * │ | │ № │ - │ / │ " │ : │ , │ . │ _ │ ? │ % │ ! │ ; │ │
+ * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤
+ * │ │ Й │ Ц │ У │ К │ Е │ Н │ Г │ Ш │ Щ │ З │ Х │ Ъ │ ) │
+ * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤
+ * │ │ Ф │ Ы │ В │ А │ П │ Р │ О │ Л │ Д │ Ж │ Э │ │
+ * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────────┤
+ * │ │ Я │ Ч │ С │ М │ И │ Т │ Ь │ Б │ Ю │ Ё │ │
+ * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤
+ * │ │ │ │ │ │ │ │ │
+ * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
+ */
+ "KC_GRV": {
+ "key": "RU_PIPE",
+ "label": "|",
+ }
+ "KC_1": {
+ "key": "RU_NUM",
+ "label": "№",
+ }
+ "KC_2": {
+ "key": "RU_MINS",
+ "label": "-",
+ }
+ "KC_3": {
+ "key": "RU_SLSH",
+ "label": "/",
+ }
+ "KC_4": {
+ "key": "RU_DQUO",
+ "label": "\"",
+ }
+ "KC_5": {
+ "key": "RU_COLN",
+ "label": ":",
+ }
+ "KC_6": {
+ "key": "RU_COMM",
+ "label": ",",
+ }
+ "KC_7": {
+ "key": "RU_DOT",
+ "label": ".",
+ }
+ "KC_8": {
+ "key": "RU_UNDS",
+ "label": "_",
+ }
+ "KC_9": {
+ "key": "RU_QUES",
+ "label": "?",
+ }
+ "KC_0": {
+ "key": "RU_PERC",
+ "label": "%",
+ }
+ "KC_MINS": {
+ "key": "RU_EXLM",
+ "label": "!",
+ }
+ "KC_EQL": {
+ "key": "RU_SCLN",
+ "label": ";",
+ }
+ "KC_Q": {
+ "key": "RU_SHTI",
+ "label": "Й",
+ }
+ "KC_W": {
+ "key": "RU_TSE",
+ "label": "Ц",
+ }
+ "KC_E": {
+ "key": "RU_U",
+ "label": "У",
+ }
+ "KC_R": {
+ "key": "RU_KA",
+ "label": "К",
+ }
+ "KC_T": {
+ "key": "RU_IE",
+ "label": "Е",
+ }
+ "KC_Y": {
+ "key": "RU_EN",
+ "label": "Н",
+ }
+ "KC_U": {
+ "key": "RU_GHE",
+ "label": "Г",
+ }
+ "KC_I": {
+ "key": "RU_SHA",
+ "label": "Ш",
+ }
+ "KC_O": {
+ "key": "RU_SHCH",
+ "label": "Щ",
+ }
+ "KC_P": {
+ "key": "RU_ZE",
+ "label": "З",
+ }
+ "KC_LBRC": {
+ "key": "RU_HA",
+ "label": "Х",
+ }
+ "KC_RBRC": {
+ "key": "RU_HARD",
+ "label": "Ъ",
+ }
+ "KC_BSLS": {
+ "key": "RU_RPRN",
+ "label": ")",
+ }
+ "KC_A": {
+ "key": "RU_EF",
+ "label": "Ф",
+ }
+ "KC_S": {
+ "key": "RU_YERU",
+ "label": "Ы",
+ }
+ "KC_D": {
+ "key": "RU_VE",
+ "label": "В",
+ }
+ "KC_F": {
+ "key": "RU_A",
+ "label": "А",
+ }
+ "KC_G": {
+ "key": "RU_PE",
+ "label": "П",
+ }
+ "KC_H": {
+ "key": "RU_ER",
+ "label": "Р",
+ }
+ "KC_J": {
+ "key": "RU_O",
+ "label": "О",
+ }
+ "KC_K": {
+ "key": "RU_EL",
+ "label": "Л",
+ }
+ "KC_L": {
+ "key": "RU_DE",
+ "label": "Д",
+ }
+ "KC_SCLN": {
+ "key": "RU_ZHE",
+ "label": "Ж",
+ }
+ "KC_QUOT": {
+ "key": "RU_E",
+ "label": "Э",
+ }
+ "KC_Z": {
+ "key": "RU_YA",
+ "label": "Я",
+ }
+ "KC_X": {
+ "key": "RU_CHE",
+ "label": "Ч",
+ }
+ "KC_C": {
+ "key": "RU_ES",
+ "label": "С",
+ }
+ "KC_V": {
+ "key": "RU_EM",
+ "label": "М",
+ }
+ "KC_B": {
+ "key": "RU_I",
+ "label": "И",
+ }
+ "KC_N": {
+ "key": "RU_TE",
+ "label": "Т",
+ }
+ "KC_M": {
+ "key": "RU_SOFT",
+ "label": "Ь",
+ }
+ "KC_COMM": {
+ "key": "RU_BE",
+ "label": "Б",
+ }
+ "KC_DOT": {
+ "key": "RU_YU",
+ "label": "Ю",
+ }
+ "KC_SLSH": {
+ "key": "RU_YO",
+ "label": "Ё",
+ }
+/* Shifted symbols
+ * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
+ * │ + │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ = │ \ │ │
+ * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤
+ * │ │ │ │ │ │ │ │ │ │ │ │ │ │ ( │
+ * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤
+ * │ │ │ │ │ │ │ │ │ │ │ │ │ │
+ * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────────┤
+ * │ │ │ │ │ │ │ │ │ │ │ │ │
+ * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤
+ * │ │ │ │ │ │ │ │ │
+ * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
+ */
+ "S(RU_PIPE)": {
+ "key": "RU_PLUS",
+ "label": "+",
+ }
+ "S(RU_NUM)": {
+ "key": "RU_1",
+ "label": "1",
+ }
+ "S(RU_MINS)": {
+ "key": "RU_2",
+ "label": "2",
+ }
+ "S(RU_SLSH)": {
+ "key": "RU_3",
+ "label": "3",
+ }
+ "S(RU_DQUO)": {
+ "key": "RU_4",
+ "label": "4",
+ }
+ "S(RU_COLN)": {
+ "key": "RU_5",
+ "label": "5",
+ }
+ "S(RU_COMM)": {
+ "key": "RU_6",
+ "label": "6",
+ }
+ "S(RU_DOT)": {
+ "key": "RU_7",
+ "label": "7",
+ }
+ "S(RU_UNDS)": {
+ "key": "RU_8",
+ "label": "8",
+ }
+ "S(RU_QUES)": {
+ "key": "RU_9",
+ "label": "9",
+ }
+ "S(RU_PERC)": {
+ "key": "RU_0",
+ "label": "0",
+ }
+ "S(RU_EXLM)": {
+ "key": "RU_EQL",
+ "label": "=",
+ }
+ "S(RU_SCLN)": {
+ "key": "RU_BSLS",
+ "label": "\\",
+ }
+ "S(RU_RPRN)": {
+ "key": "RU_LPRN",
+ "label": "(",
+ }
+/* AltGr symbols
+ * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
+ * │ │ │ │ │ │ │ │ │ ₽ │ │ │ │ │ │
+ * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤
+ * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
+ * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤
+ * │ │ │ │ │ │ │ │ │ │ │ │ │ │
+ * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────────┤
+ * │ │ │ │ │ │ │ │ │ │ │ │ │
+ * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤
+ * │ │ │ │ │ │ │ │ │
+ * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
+ */
+ "ALGR(RU_UNDS)": {
+ "key": "RU_RUBL",
+ "label": "₽",
+ }
+ }
+}
diff --git a/data/mappings/info_config.hjson b/data/mappings/info_config.hjson
index 76ad55f7da..26b437b513 100644
--- a/data/mappings/info_config.hjson
+++ b/data/mappings/info_config.hjson
@@ -29,6 +29,9 @@
"BACKLIGHT_PIN": {"info_key": "backlight.pin"},
"BACKLIGHT_PINS": {"info_key": "backlight.pins", "value_type": "array"},
"BREATHING_PERIOD": {"info_key": "backlight.breathing_period", "value_type": "int"},
+ "BACKLIGHT_DEFAULT_ON": {"info_key": "backlight.default.on", "value_type": "bool"},
+ "BACKLIGHT_DEFAULT_BREATHING": {"info_key": "backlight.default.breathing", "value_type": "bool"},
+ "BACKLIGHT_DEFAULT_LEVEL": {"info_key": "backlight.default.brightness", "value_type": "int"},
// Bootmagic
"BOOTMAGIC_LITE_COLUMN": {"info_key": "bootmagic.matrix.1", "value_type": "int"},
@@ -45,10 +48,18 @@
// Combos
"COMBO_TERM": {"info_key": "combo.term", "value_type": "int"},
+ "DIP_SWITCH_MATRIX_GRID": {"info_key": "dip_switch.matrix_grid", "value_type": "array.array.int", "to_json": false},
+ "DIP_SWITCH_PINS": {"info_key": "dip_switch.pins", "value_type": "array"},
+ "DIP_SWITCH_PINS_RIGHT": {"info_key": "split.dip_switch.right.pins", "value_type": "array"},
+
// Dynamic Keymap
"DYNAMIC_KEYMAP_EEPROM_MAX_ADDR": {"info_key": "dynamic_keymap.eeprom_max_addr", "value_type": "int"},
"DYNAMIC_KEYMAP_LAYER_COUNT": {"info_key": "dynamic_keymap.layer_count", "value_type": "int"},
+ // EEPROM
+ "WEAR_LEVELING_BACKING_SIZE": {"info_key": "eeprom.wear_leveling.backing_size", "value_type": "int", "to_json": false},
+ "WEAR_LEVELING_LOGICAL_SIZE": {"info_key": "eeprom.wear_leveling.logical_size", "value_type": "int", "to_json": false},
+
// Indicators
"LED_CAPS_LOCK_PIN": {"info_key": "indicators.caps_lock"},
"LED_NUM_LOCK_PIN": {"info_key": "indicators.num_lock"},
@@ -63,13 +74,24 @@
"LEADER_TIMEOUT": {"info_key": "leader_key.timeout", "value_type": "int"},
// LED Matrix
+ "LED_DISABLE_WHEN_USB_SUSPENDED": {"info_key": "led_matrix.sleep", "value_type": "bool"},
"LED_MATRIX_CENTER": {"info_key": "led_matrix.center_point", "value_type": "array.int"},
+ "LED_MATRIX_KEYRELEASES": {"info_key": "led_matrix.react_on_keyup", "value_type": "bool"},
+ "LED_MATRIX_LED_FLUSH_LIMIT": {"info_key": "led_matrix.led_flush_limit", "value_type": "int"},
+ "LED_MATRIX_LED_PROCESS_LIMIT": {"info_key": "led_matrix.led_process_limit", "value_type": "int", "to_json": false},
"LED_MATRIX_MAXIMUM_BRIGHTNESS": {"info_key": "led_matrix.max_brightness", "value_type": "int"},
"LED_MATRIX_SPD_STEP": {"info_key": "led_matrix.speed_steps", "value_type": "int"},
"LED_MATRIX_SPLIT": {"info_key": "led_matrix.split_count", "value_type": "array.int"},
"LED_MATRIX_TIMEOUT": {"info_key": "led_matrix.timeout", "value_type": "int"},
"LED_MATRIX_VAL_STEP": {"info_key": "led_matrix.val_steps", "value_type": "int"},
"LED_MATRIX_LED_COUNT": {"info_key": "led_matrix.led_count", "value_type": "int", "to_json": false},
+ "LED_MATRIX_DEFAULT_ON": {"info_key": "led_matrix.default.on", "value_type": "bool"},
+ "LED_MATRIX_DEFAULT_VAL": {"info_key": "led_matrix.default.val", "value_type": "int"},
+ "LED_MATRIX_DEFAULT_SPD": {"info_key": "led_matrix.default.speed", "value_type": "int"},
+
+ // Locking Switch
+ "LOCKING_SUPPORT_ENABLE": {"info_key": "qmk.locking.enabled", "value_type": "bool"},
+ "LOCKING_RESYNC_ENABLE": {"info_key": "qmk.locking.resync", "value_type": "bool"},
// LUFA Bootloader
"QMK_ESC_INPUT": {"info_key": "qmk_lufa_bootloader.esc_input"},
@@ -100,8 +122,12 @@
"PS2_DATA_PIN": {"info_key": "ps2.data_pin"},
// RGB Matrix
+ "RGB_DISABLE_WHEN_USB_SUSPENDED": {"info_key": "rgb_matrix.sleep", "value_type": "bool"},
"RGB_MATRIX_CENTER": {"info_key": "rgb_matrix.center_point", "value_type": "array.int"},
"RGB_MATRIX_HUE_STEP": {"info_key": "rgb_matrix.hue_steps", "value_type": "int"},
+ "RGB_MATRIX_KEYRELEASES": {"info_key": "rgb_matrix.react_on_keyup", "value_type": "bool"},
+ "RGB_MATRIX_LED_FLUSH_LIMIT": {"info_key": "rgb_matrix.led_flush_limit", "value_type": "int"},
+ "RGB_MATRIX_LED_PROCESS_LIMIT": {"info_key": "rgb_matrix.led_process_limit", "value_type": "int", "to_json": false},
"RGB_MATRIX_MAXIMUM_BRIGHTNESS": {"info_key": "rgb_matrix.max_brightness", "value_type": "int"},
"RGB_MATRIX_SAT_STEP": {"info_key": "rgb_matrix.sat_steps", "value_type": "int"},
"RGB_MATRIX_SPD_STEP": {"info_key": "rgb_matrix.speed_steps", "value_type": "int"},
@@ -109,6 +135,11 @@
"RGB_MATRIX_TIMEOUT": {"info_key": "rgb_matrix.timeout", "value_type": "int"},
"RGB_MATRIX_VAL_STEP": {"info_key": "rgb_matrix.val_steps", "value_type": "int"},
"RGB_MATRIX_LED_COUNT": {"info_key": "rgb_matrix.led_count", "value_type": "int", "to_json": false},
+ "RGB_MATRIX_DEFAULT_ON": {"info_key": "rgb_matrix.default.on", "value_type": "bool"},
+ "RGB_MATRIX_DEFAULT_HUE": {"info_key": "rgb_matrix.default.hue", "value_type": "int"},
+ "RGB_MATRIX_DEFAULT_SAT": {"info_key": "rgb_matrix.default.sat", "value_type": "int"},
+ "RGB_MATRIX_DEFAULT_VAL": {"info_key": "rgb_matrix.default.val", "value_type": "int"},
+ "RGB_MATRIX_DEFAULT_SPD": {"info_key": "rgb_matrix.default.speed", "value_type": "int"},
// RGBLight
"RGBLED_NUM": {"info_key": "rgblight.led_count", "value_type": "int"},
@@ -124,6 +155,11 @@
"RGBLIGHT_SLEEP": {"info_key": "rgblight.sleep", "value_type": "bool"},
"RGBLIGHT_SPLIT": {"info_key": "rgblight.split", "value_type": "bool"},
"RGBLIGHT_VAL_STEP": {"info_key": "rgblight.brightness_steps", "value_type": "int"},
+ "RGBLIGHT_DEFAULT_ON": {"info_key": "rgblight.default.on", "value_type": "bool"},
+ "RGBLIGHT_DEFAULT_HUE": {"info_key": "rgblight.default.hue", "value_type": "int"},
+ "RGBLIGHT_DEFAULT_SAT": {"info_key": "rgblight.default.sat", "value_type": "int"},
+ "RGBLIGHT_DEFAULT_VAL": {"info_key": "rgblight.default.val", "value_type": "int"},
+ "RGBLIGHT_DEFAULT_SPD": {"info_key": "rgblight.default.speed", "value_type": "int"},
"RGBW": {"info_key": "rgblight.rgbw", "value_type": "bool"},
// Secure
@@ -134,13 +170,23 @@
// Split Keyboard
"SOFT_SERIAL_PIN": {"info_key": "split.soft_serial_pin"},
"SOFT_SERIAL_SPEED": {"info_key": "split.soft_serial_speed"},
- "SPLIT_MODS_ENABLE": {"info_key": "split.transport.sync_modifiers", "value_type": "bool"},
- "SPLIT_TRANSPORT_MIRROR": {"info_key": "split.transport.sync_matrix_state", "value_type": "bool"},
+ "SPLIT_HAND_MATRIX_GRID": {"info_key": "split.handedness.matrix_grid", "value_type": "array", "to_c": false},
+ "SPLIT_HAND_PIN": {"info_key": "split.handedness.pin"},
"SPLIT_USB_DETECT": {"info_key": "split.usb_detect.enabled", "value_type": "bool"},
"SPLIT_USB_TIMEOUT": {"info_key": "split.usb_detect.timeout", "value_type": "int"},
"SPLIT_USB_TIMEOUT_POLL": {"info_key": "split.usb_detect.polling_interval", "value_type": "int"},
"SPLIT_WATCHDOG_ENABLE": {"info_key": "split.transport.watchdog", "value_type": "bool"},
"SPLIT_WATCHDOG_TIMEOUT": {"info_key": "split.transport.watchdog_timeout", "value_type": "int"},
+ "SPLIT_ACTIVITY_ENABLE": {"info_key": "split.transport.sync.activity", "value_type": "bool"},
+ "SPLIT_DETECTED_OS_ENABLE": {"info_key": "split.transport.sync.detected_os", "value_type": "bool"},
+ "SPLIT_HAPTIC_ENABLE": {"info_key": "split.transport.sync.haptic", "value_type": "bool"},
+ "SPLIT_LAYER_STATE_ENABLE": {"info_key": "split.transport.sync.layer_state", "value_type": "bool"},
+ "SPLIT_LED_STATE_ENABLE": {"info_key": "split.transport.sync.indicators", "value_type": "bool"},
+ "SPLIT_TRANSPORT_MIRROR": {"info_key": "split.transport.sync.matrix_state", "value_type": "bool"},
+ "SPLIT_MODS_ENABLE": {"info_key": "split.transport.sync.modifiers", "value_type": "bool"},
+ "SPLIT_OLED_ENABLE": {"info_key": "split.transport.sync.oled", "value_type": "bool"},
+ "SPLIT_ST7565_ENABLE": {"info_key": "split.transport.sync.st7565", "value_type": "bool"},
+ "SPLIT_WPM_ENABLE": {"info_key": "split.transport.sync.wpm", "value_type": "bool"},
// Tapping
"HOLD_ON_OTHER_KEY_PRESS": {"info_key": "tapping.hold_on_other_key_press", "value_type": "bool"},
diff --git a/data/mappings/info_rules.hjson b/data/mappings/info_rules.hjson
index 07191551da..02fc2bee9d 100644
--- a/data/mappings/info_rules.hjson
+++ b/data/mappings/info_rules.hjson
@@ -17,6 +17,7 @@
"BOOTLOADER": {"info_key": "bootloader", "warn_duplicate": false},
"BOOTMAGIC_ENABLE": {"info_key": "bootmagic.enabled", "value_type": "bool"},
"CAPS_WORD_ENABLE": {"info_key": "caps_word.enabled", "value_type": "bool"},
+ "DIP_SWITCH_ENABLE": {"info_key": "dip_switch.enabled", "value_type": "bool"},
"DEBOUNCE_TYPE": {"info_key": "build.debounce_type"},
"EEPROM_DRIVER": {"info_key": "eeprom.driver"},
"ENCODER_ENABLE": {"info_key": "encoder.enabled", "value_type": "bool"},
@@ -42,6 +43,7 @@
"STENO_ENABLE": {"info_key": "stenography.enabled", "value_type": "bool"},
"STENO_PROTOCOL": {"info_key": "stenography.protocol"},
"WAIT_FOR_USB": {"info_key": "usb.wait_for", "value_type": "bool"},
+ "WEAR_LEVELING_DRIVER": {"info_key": "eeprom.wear_leveling.driver"},
"WS2812_DRIVER": {"info_key": "ws2812.driver"},
// Items we want flagged in lint
diff --git a/data/mappings/keyboard_aliases.hjson b/data/mappings/keyboard_aliases.hjson
index 8e4265dc01..90f32ee6ac 100644
--- a/data/mappings/keyboard_aliases.hjson
+++ b/data/mappings/keyboard_aliases.hjson
@@ -143,6 +143,9 @@
"daisy": {
"target": "ktec/daisy"
},
+ "dp3000": {
+ "target": "dp3000/rev1"
+ },
"drakon": {
"target": "jagdpietr/drakon"
},
@@ -176,6 +179,9 @@
"dztech/volcano660": {
"target": "ilumkb/volcano660"
},
+ "dztech/og60": {
+ "target": "dztech/tofu60"
+ },
"eek": {
"target": "eek/silk_down"
},
@@ -209,6 +215,9 @@
"handwired/dactyl_manuform/6x6_kinesis": {
"target": "handwired/dactyl_kinesis"
},
+ "handwired/dactyl_manuform/dmote/62key": {
+ "target": "handwired/dmote"
+ },
"handwired/ferris": {
"target": "ferris/0_1"
},
@@ -401,6 +410,9 @@
"maartenwut/wonderland": {
"target": "evyd13/wonderland"
},
+ "matchstickworks/southpad": {
+ "target": "matchstickworks/southpad/rev2/"
+ },
"matrix/m12og": {
"target": "matrix/m12og/rev1"
},
@@ -894,6 +906,18 @@
"kelowna/rgb64": {
"target": "weirdo/kelowna/rgb64"
},
+ "keychron/q0": {
+ "target": "keychron/q0/base"
+ },
+ "keychron/q1": {
+ "target": "keychron/q1v1/ansi"
+ }
+ "keychron/q4": {
+ "target": "keychron/q4/ansi/v1"
+ }
+ "kprepublic/bm40hsrgb": {
+ "target": "kprepublic/bm40hsrgb/rev1"
+ },
"kprepublic/bm65hsrgb_iso": {
"target": "kprepublic/bm65hsrgb_iso/rev1"
},
@@ -1194,6 +1218,12 @@
"setta21": {
"target": "salicylic_acid3/setta21"
},
+ "soda/mango": {
+ "target": "magic_force/mf17"
+ },
+ "soda/pocket": {
+ "target": "magic_force/mf34"
+ },
"space_space/rev1": {
"target": "qpockets/space_space/rev1"
},
@@ -1218,6 +1248,9 @@
"stella": {
"target": "hnahkb/stella"
},
+ "studiokestra/line_tkl": {
+ "target": "studiokestra/line_friends_tkl"
+ },
"suihankey/alpha": {
"target": "kakunpc/suihankey/alpha"
},
@@ -1322,5 +1355,9 @@
},
"zinc/reva": {
"target": "25keys/zinc/reva"
+ },
+ // Moved during 2023 Q4 cycle
+ "ymdk/melody96": {
+ "target": "ymdk/melody96/soldered"
}
}
diff --git a/data/schemas/definitions.jsonschema b/data/schemas/definitions.jsonschema
index 441e6395cf..ea29343d0a 100644
--- a/data/schemas/definitions.jsonschema
+++ b/data/schemas/definitions.jsonschema
@@ -177,5 +177,23 @@
"type": "integer",
"minimum": 0,
"maximum": 1
+ },
+ "keyboard_keymap_tuple": {
+ "type": "array",
+ "prefixItems": [
+ { "$ref": "#/keyboard" },
+ { "$ref": "#/filename" }
+ ],
+ "unevaluatedItems": false
+ },
+ "json_file_path": {
+ "type": "string",
+ "pattern": "^[0-9a-z_/\\-]+\\.json$"
+ },
+ "build_target": {
+ "oneOf": [
+ { "$ref": "#/keyboard_keymap_tuple" },
+ { "$ref": "#/json_file_path" }
+ ]
}
}
diff --git a/data/schemas/keyboard.jsonschema b/data/schemas/keyboard.jsonschema
index 4053387f3b..2996958084 100644
--- a/data/schemas/keyboard.jsonschema
+++ b/data/schemas/keyboard.jsonschema
@@ -20,7 +20,15 @@
}
}
}
- }
+ },
+ "dip_switch_config": {
+ "type": "object",
+ "properties": {
+ "pins": {
+ "$ref": "qmk.definitions.v1#/mcu_pin_array"
+ }
+ }
+ },
},
"type": "object",
"not": { "required": [ "vendorId", "productId" ] }, // reject via keys...
@@ -128,6 +136,15 @@
"type": "string",
"enum": ["pwm", "software", "timer", "custom"]
},
+ "default": {
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "on": {"type": "boolean"},
+ "breathing": {"type": "boolean"},
+ "brightness": {"$ref": "qmk.definitions.v1#/unsigned_int_8"}
+ }
+ },
"breathing": {"type": "boolean"},
"breathing_period": {"$ref": "qmk.definitions.v1#/unsigned_int_8"},
"levels": {
@@ -245,9 +262,40 @@
"type": "array",
"items": {"$ref": "qmk.definitions.v1#/filename"}
},
+ "dip_switch": {
+ "$ref": "#/definitions/dip_switch_config",
+ "properties": {
+ "enabled": {"type": "boolean"},
+ "matrix_grid": {
+ "type": "array",
+ "minItems": 1,
+ "items": {
+ "type": "array",
+ "minItems": 2,
+ "maxItems": 2,
+ "items": {
+ "type": "integer",
+ "minimum": 0
+ }
+ }
+ }
+ }
+ },
"eeprom": {
"properties": {
- "driver": {"type": "string"}
+ "driver": {"type": "string"},
+ "wear_leveling": {
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "driver": {
+ "type": "string",
+ "enum": ["custom", "embedded_flash", "legacy", "rp2040_flash", "spi_flash"]
+ },
+ "backing_size": {"$ref": "qmk.definitions.v1#/unsigned_int"},
+ "logical_size": {"$ref": "qmk.definitions.v1#/unsigned_int"}
+ }
+ }
}
},
"encoder": {
@@ -300,6 +348,7 @@
"additionalProperties": false,
"required": ["x", "y"],
"properties": {
+ "encoder": {"$ref": "qmk.definitions.v1#/unsigned_int"},
"label": {
"type": "string",
"pattern": "^[^\\n]*$"
@@ -379,6 +428,16 @@
"type": "boolean"
}
},
+ "default": {
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "on": {"type": "boolean"},
+ "animation": {"type": "string"},
+ "val": {"$ref": "qmk.definitions.v1#/unsigned_int_8"},
+ "speed": {"$ref": "qmk.definitions.v1#/unsigned_int_8"}
+ }
+ },
"driver": {"type": "string"},
"center_point": {
"type": "array",
@@ -390,6 +449,10 @@
"timeout": {"$ref": "qmk.definitions.v1#/unsigned_int"},
"val_steps": {"$ref": "qmk.definitions.v1#/unsigned_int"},
"speed_steps": {"$ref": "qmk.definitions.v1#/unsigned_int"},
+ "led_flush_limit": {"$ref": "qmk.definitions.v1#/unsigned_int"},
+ "led_process_limit": {"$ref": "qmk.definitions.v1#/unsigned_int"},
+ "react_on_keyup": {"type": "boolean"},
+ "sleep": {"type": "boolean"},
"split_count": {
"type": "array",
"minItems": 2,
@@ -429,6 +492,18 @@
"type": "boolean"
}
},
+ "default": {
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "on": {"type": "boolean"},
+ "animation": {"type": "string"},
+ "hue": {"$ref": "qmk.definitions.v1#/unsigned_int_8"},
+ "sat": {"$ref": "qmk.definitions.v1#/unsigned_int_8"},
+ "val": {"$ref": "qmk.definitions.v1#/unsigned_int_8"},
+ "speed": {"$ref": "qmk.definitions.v1#/unsigned_int_8"}
+ }
+ },
"driver": {"type": "string"},
"center_point": {
"type": "array",
@@ -442,6 +517,10 @@
"sat_steps": {"$ref": "qmk.definitions.v1#/unsigned_int"},
"val_steps": {"$ref": "qmk.definitions.v1#/unsigned_int"},
"speed_steps": {"$ref": "qmk.definitions.v1#/unsigned_int"},
+ "led_flush_limit": {"$ref": "qmk.definitions.v1#/unsigned_int"},
+ "led_process_limit": {"$ref": "qmk.definitions.v1#/unsigned_int"},
+ "react_on_keyup": {"type": "boolean"},
+ "sleep": {"type": "boolean"},
"split_count": {
"type": "array",
"minItems": 2,
@@ -483,6 +562,18 @@
}
},
"brightness_steps": {"$ref": "qmk.definitions.v1#/unsigned_int"},
+ "default": {
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "on": {"type": "boolean"},
+ "animation": {"type": "string"},
+ "hue": {"$ref": "qmk.definitions.v1#/unsigned_int_8"},
+ "sat": {"$ref": "qmk.definitions.v1#/unsigned_int_8"},
+ "val": {"$ref": "qmk.definitions.v1#/unsigned_int_8"},
+ "speed": {"$ref": "qmk.definitions.v1#/unsigned_int_8"}
+ }
+ },
"driver": {
"type": "string",
"enum": ["apa102", "custom", "ws2812"]
@@ -593,10 +684,6 @@
}
}
},
- "matrix_grid": {
- "type": "array",
- "items": {"$ref": "qmk.definitions.v1#/mcu_pin"}
- },
"matrix_pins": {
"type": "object",
"additionalProperties": false,
@@ -616,6 +703,15 @@
}
}
},
+ "dip_switch": {
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "right": {
+ "$ref": "#/definitions/dip_switch_config"
+ }
+ }
+ },
"encoder": {
"type": "object",
"additionalProperties": false,
@@ -625,9 +721,17 @@
}
}
},
- "main": {
- "type": "string",
- "enum": ["eeprom", "left", "matrix_grid", "pin", "right"]
+ "handedness": {
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "pin": {"$ref": "qmk.definitions.v1#/mcu_pin"},
+ "matrix_grid": {
+ "$ref": "qmk.definitions.v1#/mcu_pin_array",
+ "minItems": 2,
+ "maxItems": 2
+ }
+ }
},
"soft_serial_pin": {"$ref": "qmk.definitions.v1#/mcu_pin"},
"soft_serial_speed": {
@@ -643,10 +747,32 @@
"type": "string",
"enum": ["custom", "i2c", "serial", "serial_usart"]
},
- "sync_matrix_state": {"type": "boolean"},
- "sync_modifiers": {"type": "boolean"},
+ "sync": {
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "activity": {"type": "boolean"},
+ "detected_os": {"type": "boolean"},
+ "haptic": {"type": "boolean"},
+ "layer_state": {"type": "boolean"},
+ "indicators": {"type": "boolean"},
+ "matrix_state": {"type": "boolean"},
+ "modifiers": {"type": "boolean"},
+ "oled": {"type": "boolean"},
+ "st7565": {"type": "boolean"},
+ "wpm": {"type": "boolean"}
+ }
+ }
"watchdog": {"type": "boolean"},
- "watchdog_timeout": {"$ref": "qmk.definitions.v1#/unsigned_int"}
+ "watchdog_timeout": {"$ref": "qmk.definitions.v1#/unsigned_int"},
+ "sync_matrix_state": {
+ "type": "boolean",
+ "$comment": "Deprecated: use sync.matrix_state instead"
+ },
+ "sync_modifiers": {
+ "type": "boolean",
+ "$comment": "Deprecated: use sync.modifiers instead"
+ }
}
},
"usb_detect": {
@@ -657,6 +783,16 @@
"polling_interval": {"$ref": "qmk.definitions.v1#/unsigned_int"},
"timeout": {"$ref": "qmk.definitions.v1#/unsigned_int"}
}
+ },
+ "main": {
+ "type": "string",
+ "enum": ["eeprom", "left", "matrix_grid", "pin", "right"],
+ "$comment": "Deprecated: use config.h options for now"
+ },
+ "matrix_grid": {
+ "type": "array",
+ "items": {"$ref": "qmk.definitions.v1#/mcu_pin"},
+ "$comment": "Deprecated: use split.handedness.matrix_grid instead"
}
}
},
@@ -714,7 +850,15 @@
"properties": {
"keys_per_scan": {"$ref": "qmk.definitions.v1#/unsigned_int_8"},
"tap_keycode_delay": {"$ref": "qmk.definitions.v1#/unsigned_int"},
- "tap_capslock_delay": {"$ref": "qmk.definitions.v1#/unsigned_int"}
+ "tap_capslock_delay": {"$ref": "qmk.definitions.v1#/unsigned_int"},
+ "locking": {
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "enabled": {"type": "boolean"},
+ "resync": {"type": "boolean"}
+ }
+ }
}
},
"qmk_lufa_bootloader": {
diff --git a/data/schemas/user_repo_v0.jsonschema b/data/schemas/user_repo_v0.jsonschema
new file mode 100644
index 0000000000..b18ac50428
--- /dev/null
+++ b/data/schemas/user_repo_v0.jsonschema
@@ -0,0 +1,14 @@
+{
+ "$schema": "https://json-schema.org/draft/2020-12/schema#",
+ "$id": "qmk.user_repo.v0",
+ "title": "User Repository Information",
+ "type": "object",
+ "required": [
+ "userspace_version"
+ ],
+ "properties": {
+ "userspace_version": {
+ "type": "string",
+ },
+ }
+}
diff --git a/data/schemas/user_repo_v1.jsonschema b/data/schemas/user_repo_v1.jsonschema
new file mode 100644
index 0000000000..6cdf758685
--- /dev/null
+++ b/data/schemas/user_repo_v1.jsonschema
@@ -0,0 +1,22 @@
+{
+ "$schema": "https://json-schema.org/draft/2020-12/schema#",
+ "$id": "qmk.user_repo.v1",
+ "title": "User Repository Information",
+ "type": "object",
+ "required": [
+ "userspace_version",
+ "build_targets"
+ ],
+ "properties": {
+ "userspace_version": {
+ "type": "string",
+ "enum": ["1.0"]
+ },
+ "build_targets": {
+ "type": "array",
+ "items": {
+ "$ref": "qmk.definitions.v1#/build_target"
+ }
+ }
+ }
+}
diff --git a/docs/ChangeLog/20231126.md b/docs/ChangeLog/20231126.md
new file mode 100644
index 0000000000..61cff520c8
--- /dev/null
+++ b/docs/ChangeLog/20231126.md
@@ -0,0 +1,336 @@
+# QMK Breaking Changes - 2023 November 26 Changelog
+
+## Notable Features :id=notable-features
+
+As per last few breaking changes cycles, there have been _a lot_ of behind-the-scenes changes, mainly around consolidation of config into `info.json` files, cleanup of `info.json` files, cleaning up driver naming, as well as addressing technical debt.
+
+As a followup to last cycle's [notable changes](20230827.md#notable-changes), as `qmk/qmk_firmware` is no longer accepting PRs for keymaps we're pleased to announce that storing and building keymaps externally from the normal QMK Firmware repository is now possible. This is done through the new [External Userspace](newbs_external_userspace.md) feature, more details below!
+
+## Changes Requiring User Action :id=changes-requiring-user-action
+
+### Updated Keyboard Codebases :id=updated-keyboard-codebases
+
+| Old Keyboard Name | New Keyboard Name |
+|---------------------------------------|-------------------------------|
+| adm42 | adm42/rev4 |
+| dp3000 | dp3000/rev1 |
+| handwired/dactyl_manuform/dmote/62key | handwired/dmote |
+| keychron/q0/rev_0130 | keychron/q0/base |
+| keychron/q0/rev_0131 | keychron/q0/plus |
+| keychron/q1/ansi | keychron/q1v1/ansi |
+| keychron/q1/ansi_encoder | keychron/q1v1/ansi_encoder |
+| keychron/q1/iso | keychron/q1v1/iso |
+| keychron/q1/iso_encoder | keychron/q1v1/iso_encoder |
+| keychron/q4/ansi_v1 | keychron/q4/ansi |
+| kprepublic/bm40hsrgb | kprepublic/bm40hsrgb/rev1 |
+| matchstickworks/southpad | matchstickworks/southpad/rev2 |
+| soda/mango | magic_force/mf17 |
+| soda/pocket | magic_force/mf34 |
+| studiokestra/line_tkl | studiokestra/line_friends_tkl |
+| ymdk/melody96 | ymdk/melody96/soldered |
+
+## Notable core changes :id=notable-core
+
+### External Userspace ([#22222](https://github.com/qmk/qmk_firmware/pull/22222))
+
+As mentioned above, the new External Userspace feature allows for keymaps to be stored and built externally from the main QMK Firmware repository. This allows for keymaps to be stored separately -- usually in their own repository -- and for users to be able to maintain and build their keymaps without needing to fork the main QMK Firmware repository.
+
+See the [External Userspace documentation](newbs_external_userspace.md) for more details.
+
+A significant portion of user keymaps have already been removed from `qmk/qmk_firmware` and more will follow in coming weeks. You can still recover your keymap from the tag [user-keymaps-still-present](https://github.com/qmk/qmk_firmware/tree/user-keymaps-still-present) if required -- a perfect time to migrate to the new External Userspace!
+
+!> This feature is still in beta, and we're looking for feedback on it. Please try it out and let us know what you think -- a new `#help-userspace` channel has been set up on Discord.
+
+### Improve and Cleanup Shutdown callbacks ([#21060](https://github.com/qmk/qmk_firmware/pull/20160)) :id=improve-and-cleanup-shutdown-callbacks
+
+Shutdown callbacks at the keyboard level were never present, preventing safe shutdown sequencing for peripherals such as OLEDs, RGB LEDs, and other devices. This PR adds a new `shutdown_kb` function, as well as amending `shutdown_user`, allowing for safe shutdown of peripherals at both keyboard and keymap level.
+
+See the [Keyboard Shutdown/Reboot Code](custom_quantum_functions.md#keyboard-shutdown-reboot-code) documentation for more details.
+
+### OLED Force Flush ([#20953](https://github.com/qmk/qmk_firmware/pull/20953)) :id=oled-force-flush
+
+Along with the new `shutdown_kb` function, a new API `oled_render_dirty(bool)` function has been added. This allows OLED contents to be written deterministically when supplied with `true` -- that is, the OLED will be updated immediately, rather than waiting for the next OLED update cycle. This allows for OLEDs to show things such as "BOOTLOADER MODE" and the like if resetting to bootloader from QMK.
+
+### Switch statement helpers for keycode ranges ([#20059](https://github.com/qmk/qmk_firmware/pull/20059)) :id=switch-statement-helpers-for-keycode-ranges
+
+Predefined ranges usable within switch statements have been added for groups of similar keycodes, where people who wish to handle entire blocks at once can do so. This allows keymaps to be immune to changes in keycode values, and also allows for more efficient code generation.
+
+The ranges are as follows:
+
+| Name | Mapping |
+|-------------------------------------|------------------------------------------------------------------------|
+| `INTERNAL_KEYCODE_RANGE` | `KC_NO ... KC_TRANSPARENT` |
+| `BASIC_KEYCODE_RANGE` | `KC_A ... KC_EXSEL` |
+| `SYSTEM_KEYCODE_RANGE` | `KC_SYSTEM_POWER ... KC_SYSTEM_WAKE` |
+| `CONSUMER_KEYCODE_RANGE` | `KC_AUDIO_MUTE ... KC_LAUNCHPAD` |
+| `MOUSE_KEYCODE_RANGE` | `KC_MS_UP ... KC_MS_ACCEL2` |
+| `MODIFIER_KEYCODE_RANGE` | `KC_LEFT_CTRL ... KC_RIGHT_GUI` |
+| `SWAP_HANDS_KEYCODE_RANGE` | `QK_SWAP_HANDS_TOGGLE ... QK_SWAP_HANDS_ONE_SHOT` |
+| `MAGIC_KEYCODE_RANGE` | `QK_MAGIC_SWAP_CONTROL_CAPS_LOCK ... QK_MAGIC_TOGGLE_ESCAPE_CAPS_LOCK` |
+| `MIDI_KEYCODE_RANGE` | `QK_MIDI_ON ... QK_MIDI_PITCH_BEND_UP` |
+| `SEQUENCER_KEYCODE_RANGE` | `QK_SEQUENCER_ON ... QK_SEQUENCER_STEPS_CLEAR` |
+| `JOYSTICK_KEYCODE_RANGE` | `QK_JOYSTICK_BUTTON_0 ... QK_JOYSTICK_BUTTON_31` |
+| `PROGRAMMABLE_BUTTON_KEYCODE_RANGE` | `QK_PROGRAMMABLE_BUTTON_1 ... QK_PROGRAMMABLE_BUTTON_32` |
+| `AUDIO_KEYCODE_RANGE` | `QK_AUDIO_ON ... QK_AUDIO_VOICE_PREVIOUS` |
+| `STENO_KEYCODE_RANGE` | `QK_STENO_BOLT ... QK_STENO_COMB_MAX` |
+| `MACRO_KEYCODE_RANGE` | `QK_MACRO_0 ... QK_MACRO_31` |
+| `BACKLIGHT_KEYCODE_RANGE` | `QK_BACKLIGHT_ON ... QK_BACKLIGHT_TOGGLE_BREATHING` |
+| `RGB_KEYCODE_RANGE` | `RGB_TOG ... RGB_MODE_TWINKLE` |
+| `QUANTUM_KEYCODE_RANGE` | `QK_BOOTLOADER ... QK_ALT_REPEAT_KEY` |
+| `KB_KEYCODE_RANGE` | `QK_KB_0 ... QK_KB_31` |
+| `USER_KEYCODE_RANGE` | `QK_USER_0 ... QK_USER_31` |
+
+Usage:
+
+```c
+ switch (keycode) {
+ case KC_A ... KC_EXSEL:
+ case KC_LEFT_CTRL ... KC_RIGHT_GUI:
+ /* do stuff with basic and modifier keycodes */
+```
+
+Becomes:
+
+```c
+ switch (keycode) {
+ case BASIC_KEYCODE_RANGE:
+ case MODIFIER_KEYCODE_RANGE:
+ /* do stuff with basic and modifier keycodes */
+```
+
+### Quantum Painter OLED support ([#19997](https://github.com/qmk/qmk_firmware/pull/19997)) :id=quantum-painter-oled-support
+
+Quantum Painter has picked up support for SH1106 displays -- commonly seen as 128x64 OLEDs. Support for both I2C and SPI displays is available.
+
+If you're already using OLED through `OLED_DRIVER_ENABLE = yes` or equivalent in `info.json` and wish to use Quantum Painter instead, you'll need to disable the old OLED system, instead enabling Quantum Painter as well as enabling the appropriate SH1106 driver. See the [Quantum Painter driver documentation](quantum_painter.md#quantum-painter-drivers) for more details. The old OLED driver is still available, and keymaps do not require migrating to Quantum Painter if you don't want to do so.
+
+### RGB/LED lighting driver naming and cleanup ([#21890](https://github.com/qmk/qmk_firmware/pull/21890), [#21891](https://github.com/qmk/qmk_firmware/pull/21891), [#21892](https://github.com/qmk/qmk_firmware/pull/21892), [#21903](https://github.com/qmk/qmk_firmware/pull/21903), [#21904](https://github.com/qmk/qmk_firmware/pull/21904), [#21905](https://github.com/qmk/qmk_firmware/pull/21905), [#21918](https://github.com/qmk/qmk_firmware/pull/21918), [#21929](https://github.com/qmk/qmk_firmware/pull/21929), [#21938](https://github.com/qmk/qmk_firmware/pull/21938), [#22004](https://github.com/qmk/qmk_firmware/pull/22004), [#22008](https://github.com/qmk/qmk_firmware/pull/22008), [#22009](https://github.com/qmk/qmk_firmware/pull/22009), [#22071](https://github.com/qmk/qmk_firmware/pull/22071), [#22090](https://github.com/qmk/qmk_firmware/pull/22090), [#22099](https://github.com/qmk/qmk_firmware/pull/22099), [#22126](https://github.com/qmk/qmk_firmware/pull/22126), [#22133](https://github.com/qmk/qmk_firmware/pull/22133), [#22163](https://github.com/qmk/qmk_firmware/pull/22163), [#22200](https://github.com/qmk/qmk_firmware/pull/22200), [#22308](https://github.com/qmk/qmk_firmware/pull/22308), [#22309](https://github.com/qmk/qmk_firmware/pull/22309), [#22311](https://github.com/qmk/qmk_firmware/pull/22311), [#22325](https://github.com/qmk/qmk_firmware/pull/22325), [#22365](https://github.com/qmk/qmk_firmware/pull/22365), [#22379](https://github.com/qmk/qmk_firmware/pull/22379), [#22380](https://github.com/qmk/qmk_firmware/pull/22380), [#22381](https://github.com/qmk/qmk_firmware/pull/22381), [#22383](https://github.com/qmk/qmk_firmware/pull/22383), [#22436](https://github.com/qmk/qmk_firmware/pull/22436))
+
+As you can probably tell by the list of PRs just above, there has been a lot of cleanup and consolidation this cycle when it comes to RGB/LED lighting drivers. The number of changes is too large to list here, but the general theme has been focusing on consistency of naming, both of drivers themselves and their respective implementation and configuration. Most changes only affect keyboard designers -- if you find that your in-development keyboard is no longer building due to naming of defines changing, your best bet is to refer to another board already in the repository which has had the changes applied.
+
+### Peripheral subsystem enabling ([#22253](https://github.com/qmk/qmk_firmware/pull/22253), [#22448](https://github.com/qmk/qmk_firmware/pull/22448), [#22106](https://github.com/qmk/qmk_firmware/pull/22106)) :id=peripheral-subsystem-enabling
+
+When enabling peripherals such as I2C, SPI, or Analog/ADC, some required manual inclusion of source files in order to provide driver support, and in some cases, when multiple drivers were using the same underlying peripheral, files were being added to the build multiple times.
+
+Most systems requiring other peripherals now mark their respective dependencies as "required", allowing the build system to check whether peripherals are necessary before including them in the build rather than having each location enable them manually.
+
+For a concrete example, users or keyboard designers who previously added `SRC += analog.c` in order to allow for analog readings via an ADC now should specify `ANALOG_DRIVER_REQUIRED = yes` instead. The full list of added options is as follows:
+
+| New option | Old Equivalent |
+|--------------------------------|------------------------------------------------------------|
+| `ANALOG_DRIVER_REQUIRED = yes` | `SRC += analog.c` |
+| `APA102_DRIVER_REQUIRED = yes` | `SRC += apa102.c` |
+| `I2C_DRIVER_REQUIRED = yes` | `SRC += i2c_master.c` or `QUANTUM_LIB_SRC += i2c_master.c` |
+| `SPI_DRIVER_REQUIRED = yes` | `SRC += spi_master.c` or `QUANTUM_LIB_SRC += spi_master.c` |
+| `UART_DRIVER_REQUIRED = yes` | `SRC += uart.c` |
+| `WS2812_DRIVER_REQUIRED = yes` | `SRC += ws2812.c` |
+
+### NKRO on V-USB boards ([#22398](https://github.com/qmk/qmk_firmware/pull/22398)) :id=vusb-nkro
+
+NKRO is now available for ATmega32A and 328P-based keyboards (including PS2AVRGB/Bootmapper boards), thanks to some internal refactoring and cleanup. To enable it, the process is the same as always - add `NKRO_ENABLE = yes` to your `rules.mk`, then assign and press the `NK_TOGG` keycode to switch modes.
+
+## Full changelist :id=full-changelist
+
+Core:
+* Compilation warning if both `keymap.json` and `keymap.c` exist ([#19939](https://github.com/qmk/qmk_firmware/pull/19939))
+* [QP] Add support for OLED, variable framebuffer bpp ([#19997](https://github.com/qmk/qmk_firmware/pull/19997))
+* Generate switch statement helpers for keycode ranges ([#20059](https://github.com/qmk/qmk_firmware/pull/20059))
+* Chibios SPI driver: allow some SPI pins to be left unassigned ([#20315](https://github.com/qmk/qmk_firmware/pull/20315))
+* Take care of scroll divisor remainders for PS/2 drag scroll ([#20732](https://github.com/qmk/qmk_firmware/pull/20732))
+* Add `RGBLIGHT_DEFAULT_ON` macro configuration option ([#20857](https://github.com/qmk/qmk_firmware/pull/20857))
+* Allow force flush of oled display. ([#20953](https://github.com/qmk/qmk_firmware/pull/20953))
+* Improve and Cleanup Shutdown callbacks ([#21060](https://github.com/qmk/qmk_firmware/pull/21060))
+* [Enhancement] QP Getters ([#21171](https://github.com/qmk/qmk_firmware/pull/21171))
+* Russian typewriter keymap file for popular legacy layout. ([#21174](https://github.com/qmk/qmk_firmware/pull/21174))
+* Improve directional transition of overlapping mouse keys ([#21494](https://github.com/qmk/qmk_firmware/pull/21494))
+* Add full solenoid support on split keyboards ([#21583](https://github.com/qmk/qmk_firmware/pull/21583))
+* Reduce popping during audio initialization using the additive DAC ([#21642](https://github.com/qmk/qmk_firmware/pull/21642))
+* [Maintenance] USB HID control packet as struct ([#21688](https://github.com/qmk/qmk_firmware/pull/21688))
+* Bump mouse endpoint packet size to 16 bytes ([#21711](https://github.com/qmk/qmk_firmware/pull/21711))
+* Allow customizing PWM frequency ([#21717](https://github.com/qmk/qmk_firmware/pull/21717))
+* Add simpler method for relocating functions to RAM. ([#21804](https://github.com/qmk/qmk_firmware/pull/21804))
+* Clean up RGB LED type ([#21859](https://github.com/qmk/qmk_firmware/pull/21859))
+* is31fl3741: Allow changing config register ([#21861](https://github.com/qmk/qmk_firmware/pull/21861))
+* Add _DEFAULT_ON lighting configuration options ([#21865](https://github.com/qmk/qmk_firmware/pull/21865))
+* Modify split config is_keyboard_master/left checks. ([#21875](https://github.com/qmk/qmk_firmware/pull/21875))
+* Remove old `IS_LED_ON/OFF()` macros ([#21878](https://github.com/qmk/qmk_firmware/pull/21878))
+* ckled2001: driver naming cleanups ([#21890](https://github.com/qmk/qmk_firmware/pull/21890))
+* aw20216: driver naming cleanups ([#21891](https://github.com/qmk/qmk_firmware/pull/21891))
+* is31fl3218: driver naming cleanups ([#21892](https://github.com/qmk/qmk_firmware/pull/21892))
+* is31fl3736: driver naming cleanups ([#21903](https://github.com/qmk/qmk_firmware/pull/21903))
+* is31fl3737: driver naming cleanups ([#21904](https://github.com/qmk/qmk_firmware/pull/21904))
+* is31fl3733: driver naming cleanups ([#21905](https://github.com/qmk/qmk_firmware/pull/21905))
+* Enable RP2040 support for apa102 RGB LED driver ([#21908](https://github.com/qmk/qmk_firmware/pull/21908))
+* is31fl3731: driver naming cleanups ([#21918](https://github.com/qmk/qmk_firmware/pull/21918))
+* is31fl3741: driver naming cleanups ([#21929](https://github.com/qmk/qmk_firmware/pull/21929))
+* refactor: move default RGB/LED matrix #defines ([#21938](https://github.com/qmk/qmk_firmware/pull/21938))
+* Added flower blooming on RGB Matrix effect ([#21948](https://github.com/qmk/qmk_firmware/pull/21948))
+* Remove 'Firmware size check does not yet support' message ([#21977](https://github.com/qmk/qmk_firmware/pull/21977))
+* chibios: mark boot2 bootlader data readonly ([#21986](https://github.com/qmk/qmk_firmware/pull/21986))
+* Complete RGB Matrix support for IS31FL3218 ([#22004](https://github.com/qmk/qmk_firmware/pull/22004))
+* Default wear leveling logical size to half backing ([#22006](https://github.com/qmk/qmk_firmware/pull/22006))
+* chibios: disable RWX segment warning on newer GNU lds ([#22007](https://github.com/qmk/qmk_firmware/pull/22007))
+* Add and use I2C address defines for ISSI LED drivers ([#22008](https://github.com/qmk/qmk_firmware/pull/22008))
+* Add and use PWM frequency defines for ISSI LED drivers ([#22009](https://github.com/qmk/qmk_firmware/pull/22009))
+* directly use object files when linking ELF ([#22025](https://github.com/qmk/qmk_firmware/pull/22025))
+* Lvgl rate control ([#22049](https://github.com/qmk/qmk_firmware/pull/22049))
+* Rename CKLED2001 driver to SNLED27351 ([#22071](https://github.com/qmk/qmk_firmware/pull/22071))
+* Move `PACKED` define to util.h ([#22074](https://github.com/qmk/qmk_firmware/pull/22074))
+* Simplify more feature driver defines ([#22090](https://github.com/qmk/qmk_firmware/pull/22090))
+* Update ISSI LED types ([#22099](https://github.com/qmk/qmk_firmware/pull/22099))
+* Move velocikey to within rgblight ([#22123](https://github.com/qmk/qmk_firmware/pull/22123))
+* is31fl3218: Add LED Matrix support ([#22126](https://github.com/qmk/qmk_firmware/pull/22126))
+* Set default board files for uf2boot bootloader ([#22129](https://github.com/qmk/qmk_firmware/pull/22129))
+* is31fl3736: extract single-color API ([#22133](https://github.com/qmk/qmk_firmware/pull/22133))
+* is31fl3737/3741: add LED Matrix support ([#22163](https://github.com/qmk/qmk_firmware/pull/22163))
+* Rename `DRIVER_ADDR_n` defines ([#22200](https://github.com/qmk/qmk_firmware/pull/22200))
+* New RGB Animations - 4 "Starlight" Animation Variations ([#22212](https://github.com/qmk/qmk_firmware/pull/22212))
+* QMK Userspace ([#22222](https://github.com/qmk/qmk_firmware/pull/22222))
+* Dedupe I2C, SPI, UART driver inclusions ([#22253](https://github.com/qmk/qmk_firmware/pull/22253))
+* Add "AC Next Keyboard Layout Select" consumer usage entry (macOS Globe key) ([#22256](https://github.com/qmk/qmk_firmware/pull/22256))
+* Separate 6KRO and NKRO report structs ([#22267](https://github.com/qmk/qmk_firmware/pull/22267))
+* Azoteq IQS5xx support ([#22280](https://github.com/qmk/qmk_firmware/pull/22280))
+* Add `_flush()` functions to LED drivers ([#22308](https://github.com/qmk/qmk_firmware/pull/22308))
+* Add `_LED_COUNT` defines to LED drivers ([#22309](https://github.com/qmk/qmk_firmware/pull/22309))
+* Infer LED DRIVER_COUNT from configured addresses ([#22311](https://github.com/qmk/qmk_firmware/pull/22311))
+* Added gamma values for ST7735 displays ([#22313](https://github.com/qmk/qmk_firmware/pull/22313))
+* Consolidate some EEPROM Driver configuration ([#22321](https://github.com/qmk/qmk_firmware/pull/22321))
+* V-USB: Add generic `send_report()` function ([#22323](https://github.com/qmk/qmk_firmware/pull/22323))
+* V-USB: Implement `GET_PROTOCOL` and `SET_PROTOCOL` handling ([#22324](https://github.com/qmk/qmk_firmware/pull/22324))
+* RGB/LED matrix use limits size optimisation ([#22325](https://github.com/qmk/qmk_firmware/pull/22325))
+* Relocate LED driver init code ([#22365](https://github.com/qmk/qmk_firmware/pull/22365))
+* WT RGB cleanups ([#22379](https://github.com/qmk/qmk_firmware/pull/22379))
+* LED drivers: use `PACKED` define from util.h ([#22380](https://github.com/qmk/qmk_firmware/pull/22380))
+* LED drivers: clean up `SWx`/`CSy` pullup/down resistor config ([#22381](https://github.com/qmk/qmk_firmware/pull/22381))
+* LED drivers: add defines for PWM and LED control register counts ([#22383](https://github.com/qmk/qmk_firmware/pull/22383))
+* V-USB: implement NKRO ([#22398](https://github.com/qmk/qmk_firmware/pull/22398))
+* Allow generic_features to handle subdirectories ([#22400](https://github.com/qmk/qmk_firmware/pull/22400))
+* Migrate some common features to generic ([#22403](https://github.com/qmk/qmk_firmware/pull/22403))
+* Remove requirement for `keymap_steno.h` include in keymaps ([#22423](https://github.com/qmk/qmk_firmware/pull/22423))
+* LED drivers: register naming cleanups ([#22436](https://github.com/qmk/qmk_firmware/pull/22436))
+* Slight refactor of joystick axis type into typedef ([#22445](https://github.com/qmk/qmk_firmware/pull/22445))
+* Generalise analog SRC inclusion ([#22448](https://github.com/qmk/qmk_firmware/pull/22448))
+* Revert "chibios: disable RWX segment warning on newer GNU lds" ([#22469](https://github.com/qmk/qmk_firmware/pull/22469))
+* chibios: disable RWX segment warning on newer GNU lds ([#22471](https://github.com/qmk/qmk_firmware/pull/22471))
+
+CLI:
+* Implement data driven lighting defaults ([#21825](https://github.com/qmk/qmk_firmware/pull/21825))
+* Generate keymap.json config options more forcefully ([#21960](https://github.com/qmk/qmk_firmware/pull/21960))
+* Implement data driven dip switches ([#22017](https://github.com/qmk/qmk_firmware/pull/22017))
+* Improve argument handling of c2json ([#22170](https://github.com/qmk/qmk_firmware/pull/22170))
+* Support additional split sync items for info.json ([#22193](https://github.com/qmk/qmk_firmware/pull/22193))
+* CLI refactoring for common build target APIs ([#22221](https://github.com/qmk/qmk_firmware/pull/22221))
+* Add dd mapping for hardware based split handedness ([#22369](https://github.com/qmk/qmk_firmware/pull/22369))
+* CLI parallel search updates ([#22525](https://github.com/qmk/qmk_firmware/pull/22525))
+* Remove duplicates from search results ([#22528](https://github.com/qmk/qmk_firmware/pull/22528))
+
+Keyboards:
+* Add KPRepublic/BM40hsrgb rev2 ([#16689](https://github.com/qmk/qmk_firmware/pull/16689))
+* update to data driven - superseeds part of https://github.com/qmk/qmk… ([#20220](https://github.com/qmk/qmk_firmware/pull/20220))
+* Modernize `dactyl_manuform/dmote` keyboard ([#20427](https://github.com/qmk/qmk_firmware/pull/20427))
+* add Skyloong/GK61_V1 keyboard ([#21364](https://github.com/qmk/qmk_firmware/pull/21364))
+* [Refactor] Make changes to some pins ([#21380](https://github.com/qmk/qmk_firmware/pull/21380))
+* Add missing fullsize extended default layouts ([#21402](https://github.com/qmk/qmk_firmware/pull/21402))
+* Add Skyloong/Gk61 PRO keyboard ([#21450](https://github.com/qmk/qmk_firmware/pull/21450))
+* Added skyloong/Qk21 v1 Number Pad ([#21467](https://github.com/qmk/qmk_firmware/pull/21467))
+* matchstickworks/southpad - Move files to rev1, add rev2 ([#21574](https://github.com/qmk/qmk_firmware/pull/21574))
+* partially modernize `dactyl_minidox` ([#21576](https://github.com/qmk/qmk_firmware/pull/21576))
+* tominabox1/le_chiffre oled rework ([#21611](https://github.com/qmk/qmk_firmware/pull/21611))
+* Add Skyloong/Gk61_pro_48 keyboard ([#21654](https://github.com/qmk/qmk_firmware/pull/21654))
+* Adding support for new Waffling60 revision ([#21664](https://github.com/qmk/qmk_firmware/pull/21664))
+* Leeloo revision 2 updates. ([#21671](https://github.com/qmk/qmk_firmware/pull/21671))
+* rename og60 to tofu60 ([#21684](https://github.com/qmk/qmk_firmware/pull/21684))
+* add tofujr v2 keyboard ([#21740](https://github.com/qmk/qmk_firmware/pull/21740))
+* Rotary numpad ([#21744](https://github.com/qmk/qmk_firmware/pull/21744))
+* Update era/divine ([#21767](https://github.com/qmk/qmk_firmware/pull/21767))
+* 1UpKeyboards Pi60 Layout Additions ([#21874](https://github.com/qmk/qmk_firmware/pull/21874))
+* BIOI keyboards: use core UART driver ([#21879](https://github.com/qmk/qmk_firmware/pull/21879))
+* Resolve some "Layout should not contain name of keyboard" lint warnings ([#21898](https://github.com/qmk/qmk_firmware/pull/21898))
+* fc660c/fc980c: clean up actuation point adjustment code ([#21964](https://github.com/qmk/qmk_firmware/pull/21964))
+* Chromatonemini info json revised to support qmk 0.22.2 ([#21966](https://github.com/qmk/qmk_firmware/pull/21966))
+* Migrate spi_flash WEAR_LEVELING_DRIVER to info.json ([#21978](https://github.com/qmk/qmk_firmware/pull/21978))
+* Remove duplication of RP2040 EEPROM defaults ([#21979](https://github.com/qmk/qmk_firmware/pull/21979))
+* Remove duplication of STM32L432 EEPROM defaults ([#21981](https://github.com/qmk/qmk_firmware/pull/21981))
+* Migrate spi EEPROM_DRIVER to info.json ([#21991](https://github.com/qmk/qmk_firmware/pull/21991))
+* Update Keychron Q1v1 ([#21993](https://github.com/qmk/qmk_firmware/pull/21993))
+* Update Keychron Q2 ([#21994](https://github.com/qmk/qmk_firmware/pull/21994))
+* Update Keychron Q3 ([#21995](https://github.com/qmk/qmk_firmware/pull/21995))
+* Update Keychron Q4 ([#21996](https://github.com/qmk/qmk_firmware/pull/21996))
+* Migrate WEAR_LEVELING_*_SIZE to info.json ([#22010](https://github.com/qmk/qmk_firmware/pull/22010))
+* Remove duplication of EEPROM defaults ([#22011](https://github.com/qmk/qmk_firmware/pull/22011))
+* Migrate i2c EEPROM_DRIVER to info.json ([#22013](https://github.com/qmk/qmk_firmware/pull/22013))
+* Remove config.h which only set DYNAMIC_KEYMAP_LAYER_COUNT ([#22034](https://github.com/qmk/qmk_firmware/pull/22034))
+* Add community layout support to tofu60 ([#22041](https://github.com/qmk/qmk_firmware/pull/22041))
+* Update Keychron Q0 ([#22068](https://github.com/qmk/qmk_firmware/pull/22068))
+* Remove custom ISSI lighting code ([#22073](https://github.com/qmk/qmk_firmware/pull/22073))
+* add dp3000 rev2 featuring rgblight ([#22084](https://github.com/qmk/qmk_firmware/pull/22084))
+* Remove ALLOW_WARNINGS and PICO_INTRINSICS_ENABLED ([#22085](https://github.com/qmk/qmk_firmware/pull/22085))
+* Partially migrate `DYNAMIC_KEYMAP_LAYER_COUNT` ([#22087](https://github.com/qmk/qmk_firmware/pull/22087))
+* feat(eyeohdesigns/babyv): rgb matrix ([#22105](https://github.com/qmk/qmk_firmware/pull/22105))
+* input_club/infinity60: remove custom 3731 code, convert to LED Matrix ([#22117](https://github.com/qmk/qmk_firmware/pull/22117))
+* YMDK Melody96 Break-Up ([#22121](https://github.com/qmk/qmk_firmware/pull/22121))
+* Remove duplicated rgblight implementation from mxss ([#22122](https://github.com/qmk/qmk_firmware/pull/22122))
+* KC60 Layout Standardization and Cleanup ([#22125](https://github.com/qmk/qmk_firmware/pull/22125))
+* Convert adm42 to data driven ([#22144](https://github.com/qmk/qmk_firmware/pull/22144))
+* Update Drop keyboards for develop ([#22145](https://github.com/qmk/qmk_firmware/pull/22145))
+* move soda/mango and soda/pocket to magic_force/mf17 and magic_force/mf34 ([#22151](https://github.com/qmk/qmk_firmware/pull/22151))
+* GMMK2 65% ISO Community Layout Support ([#22152](https://github.com/qmk/qmk_firmware/pull/22152))
+* Leeloo v2.1 revision 3 updates. ([#22236](https://github.com/qmk/qmk_firmware/pull/22236))
+* jian/rev1: convert to DIP Switch ([#22248](https://github.com/qmk/qmk_firmware/pull/22248))
+* Enable linking of encoders to switch within layout macros ([#22264](https://github.com/qmk/qmk_firmware/pull/22264))
+* Migrate recently introduced sync items ([#22305](https://github.com/qmk/qmk_firmware/pull/22305))
+* Rename LINE FRIENDS TKL keyboard ([#22310](https://github.com/qmk/qmk_firmware/pull/22310))
+* feat(mechwild/clunker): new layouts ([#22342](https://github.com/qmk/qmk_firmware/pull/22342))
+* Remove use of broken split.main ([#22363](https://github.com/qmk/qmk_firmware/pull/22363))
+* whitefox: remove pointless file ([#22366](https://github.com/qmk/qmk_firmware/pull/22366))
+* Migrate some EEPROM config to info.json ([#22434](https://github.com/qmk/qmk_firmware/pull/22434))
+* Remove unnecessary driver counts ([#22435](https://github.com/qmk/qmk_firmware/pull/22435))
+* Migrate some dip switch config to info.json ([#22437](https://github.com/qmk/qmk_firmware/pull/22437))
+* Remove userspace keymaps ([#22544](https://github.com/qmk/qmk_firmware/pull/22544))
+* Stub out community layout directory structure ([#22545](https://github.com/qmk/qmk_firmware/pull/22545))
+* Remove symbolic linked userspace folder ([#22548](https://github.com/qmk/qmk_firmware/pull/22548))
+
+Keyboard fixes:
+* fix unxmaal for 60_iso ([#21975](https://github.com/qmk/qmk_firmware/pull/21975))
+* Fix input_club/k_type when RGB Matrix disabled ([#22021](https://github.com/qmk/qmk_firmware/pull/22021))
+* Fixup snes_macropad on develop ([#22444](https://github.com/qmk/qmk_firmware/pull/22444))
+* Fix missed shutdown callbacks ([#22549](https://github.com/qmk/qmk_firmware/pull/22549))
+
+Others:
+* Implement data driven wear leveling ([#21906](https://github.com/qmk/qmk_firmware/pull/21906))
+* More data driven RGB/LED Matrix config ([#21939](https://github.com/qmk/qmk_firmware/pull/21939))
+* Update WS2812 docs and add APA102 docs ([#22106](https://github.com/qmk/qmk_firmware/pull/22106))
+* Add DD mappings for locking switch ([#22242](https://github.com/qmk/qmk_firmware/pull/22242))
+
+Bugs:
+* Improve test invocation, fix Retro Shift bugs, and add Auto+Retro Shift test cases ([#15889](https://github.com/qmk/qmk_firmware/pull/15889))
+* [Bugfix] `qp_ellipse` overflow ([#19005](https://github.com/qmk/qmk_firmware/pull/19005))
+* Cater for ECC failures in EFL wear-leveling. ([#19749](https://github.com/qmk/qmk_firmware/pull/19749))
+* Fix OSM on a OSL activated layer ([#20410](https://github.com/qmk/qmk_firmware/pull/20410))
+* Fixed WB32 MCU remote wakeup issue ([#20863](https://github.com/qmk/qmk_firmware/pull/20863))
+* Optimize the additive DAC code, fixing performance-related hangs ([#21662](https://github.com/qmk/qmk_firmware/pull/21662))
+* [Enhancement] Improvements for debounce test coverage + bug fixes for sym_defer_g and sym_eager_pr ([#21667](https://github.com/qmk/qmk_firmware/pull/21667))
+* fix: make clicky delay silent ([#21866](https://github.com/qmk/qmk_firmware/pull/21866))
+* Add `mousekey.h` include to `quantum.h` ([#21897](https://github.com/qmk/qmk_firmware/pull/21897))
+* Fix default layer value in eeconfig_init ([#21909](https://github.com/qmk/qmk_firmware/pull/21909))
+* Add RTC IRQ Priority to RP2040 board files ([#21926](https://github.com/qmk/qmk_firmware/pull/21926))
+* Update AW20216S LED type ([#22072](https://github.com/qmk/qmk_firmware/pull/22072))
+* LED/RGB Matrix: prefix driver defines ([#22088](https://github.com/qmk/qmk_firmware/pull/22088))
+* RGBLight/Backlight: add prefixed driver defines ([#22089](https://github.com/qmk/qmk_firmware/pull/22089))
+* Fix lower cpi bound on PMW33XX ([#22108](https://github.com/qmk/qmk_firmware/pull/22108))
+* Fix parsing/validation for 21939 ([#22148](https://github.com/qmk/qmk_firmware/pull/22148))
+* is31fl3733: complete LED Matrix support ([#22149](https://github.com/qmk/qmk_firmware/pull/22149))
+* Fix memory leak in realloc failure handling ([#22188](https://github.com/qmk/qmk_firmware/pull/22188))
+* avrdude: Version 7.2 changes the text output ([#22235](https://github.com/qmk/qmk_firmware/pull/22235))
+* Resolve invalid keyboard alias targets ([#22239](https://github.com/qmk/qmk_firmware/pull/22239))
+* Prep work for NKRO report separation ([#22268](https://github.com/qmk/qmk_firmware/pull/22268))
+* ChibiOS pin defs: use only vendor if present ([#22297](https://github.com/qmk/qmk_firmware/pull/22297))
+* Fix invalid LED driver config ([#22312](https://github.com/qmk/qmk_firmware/pull/22312))
+* Fix compilation error when led/rgb process limit is zero. ([#22328](https://github.com/qmk/qmk_firmware/pull/22328))
+* V-USB: Fix `GET_IDLE/SET_IDLE` ([#22332](https://github.com/qmk/qmk_firmware/pull/22332))
+* QP getters correction ([#22357](https://github.com/qmk/qmk_firmware/pull/22357))
+* Fix 'to_c' for config.h mappings ([#22364](https://github.com/qmk/qmk_firmware/pull/22364))
+* snled27351: fix missing `i2c_init()` ([#22446](https://github.com/qmk/qmk_firmware/pull/22446))
+* Move BACKLIGHT_PWM_PERIOD to correct docs section ([#22480](https://github.com/qmk/qmk_firmware/pull/22480))
+* `qmk find`: Fix failure with multiple filters ([#22497](https://github.com/qmk/qmk_firmware/pull/22497))
+* Fix `qmk find` failure due to circular imports ([#22523](https://github.com/qmk/qmk_firmware/pull/22523))
diff --git a/docs/_summary.md b/docs/_summary.md
index 26a543aee4..bae93da5b6 100644
--- a/docs/_summary.md
+++ b/docs/_summary.md
@@ -4,7 +4,7 @@
* [Building Your First Firmware](newbs_building_firmware.md)
* [Flashing Firmware](newbs_flashing.md)
* [Getting Help/Support](support.md)
- * [Building With GitHub Userspace](newbs_building_firmware_workflow.md)
+ * [External Userspace](newbs_external_userspace.md)
* [Other Resources](newbs_learn_more_resources.md)
* [Syllabus](syllabus.md)
@@ -126,7 +126,6 @@
* [PS/2 Mouse](feature_ps2_mouse.md)
* [Split Keyboard](feature_split_keyboard.md)
* [Stenography](feature_stenography.md)
- * [Velocikey](feature_velocikey.md)
* Keyboard Building
* [Easy Maker for One Offs](easy_maker.md)
@@ -139,7 +138,7 @@
* Breaking Changes
* [Overview](breaking_changes.md)
* [My Pull Request Was Flagged](breaking_changes_instructions.md)
- * [Most Recent ChangeLog](ChangeLog/20230827.md "QMK v0.22.0 - 2023 Aug 27")
+ * [Most Recent ChangeLog](ChangeLog/20231126.md "QMK v0.23.0 - 2023 Nov 26")
* [Past Breaking Changes](breaking_changes_history.md)
* C Development
@@ -148,6 +147,7 @@
* [Compatible Microcontrollers](compatible_microcontrollers.md)
* [Drivers](hardware_drivers.md)
* [ADC Driver](adc_driver.md)
+ * [APA102 Driver](apa102_driver.md)
* [Audio Driver](audio_driver.md)
* [I2C Driver](i2c_driver.md)
* [SPI Driver](spi_driver.md)
diff --git a/docs/adc_driver.md b/docs/adc_driver.md
index 494d90c94f..dd928e1e7f 100644
--- a/docs/adc_driver.md
+++ b/docs/adc_driver.md
@@ -9,7 +9,7 @@ This driver currently supports both AVR and a limited selection of ARM devices.
To use this driver, add the following to your `rules.mk`:
```make
-SRC += analog.c
+ANALOG_DRIVER_REQUIRED = yes
```
Then place this include at the top of your code:
diff --git a/docs/apa102_driver.md b/docs/apa102_driver.md
new file mode 100644
index 0000000000..1da2de6ca3
--- /dev/null
+++ b/docs/apa102_driver.md
@@ -0,0 +1,49 @@
+# APA102 Driver :id=apa102-driver
+
+This driver provides support for APA102 addressable RGB LEDs. They are similar to the [WS2812](ws2812_driver.md) LEDs, but have increased data and refresh rates.
+
+## Usage :id=usage
+
+In most cases, the APA102 driver code is automatically included if you are using either the [RGBLight](feature_rgblight.md) or [RGB Matrix](feature_rgb_matrix.md) feature with the `apa102` driver set, and you would use those APIs instead.
+
+However, if you need to use the driver standalone, add the following to your `rules.mk`:
+
+```make
+APA102_DRIVER_REQUIRED = yes
+```
+
+You can then call the APA102 API by including `apa102.h` in your code.
+
+## Basic Configuration :id=basic-configuration
+
+Add the following to your `config.h`:
+
+|Define |Default |Description |
+|---------------------------|-------------|------------------------------------------------------------------|
+|`APA102_DI_PIN` |*Not defined*|The GPIO pin connected to the DI pin of the first LED in the chain|
+|`APA102_CI_PIN` |*Not defined*|The GPIO pin connected to the CI pin of the first LED in the chain|
+|`APA102_DEFAULT_BRIGHTNESS`|`31` |The default global brightness level of the LEDs, from 0 to 31 |
+
+## API :id=api
+
+### `void apa102_setleds(rgb_led_t *start_led, uint16_t num_leds)`
+
+Send RGB data to the APA102 LED chain.
+
+#### Arguments :id=api-apa102-setleds-arguments
+
+ - `rgb_led_t *start_led`
+ A pointer to the LED array.
+ - `uint16_t num_leds`
+ The length of the LED array.
+
+---
+
+### `void apa102_set_brightness(uint8_t brightness)`
+
+Set the global brightness.
+
+#### Arguments :id=api-apa102-set-brightness-arguments
+
+ - `uint8_t brightness`
+ The brightness level to set, from 0 to 31.
diff --git a/docs/breaking_changes.md b/docs/breaking_changes.md
index fdf6ccef9c..70a9044c8c 100644
--- a/docs/breaking_changes.md
+++ b/docs/breaking_changes.md
@@ -10,9 +10,9 @@ Practically, this means QMK merges the `develop` branch into the `master` branch
## What has been included in past Breaking Changes?
+* [2023 Nov 26](ChangeLog/20231126.md)
* [2023 Aug 27](ChangeLog/20230827.md)
* [2023 May 28](ChangeLog/20230528.md)
-* [2023 Feb 26](ChangeLog/20230226.md)
* [Older Breaking Changes](breaking_changes_history.md)
## When is the next Breaking Change?
@@ -21,14 +21,14 @@ The next Breaking Change is scheduled for November 26, 2023.
### Important Dates
-* 2023 Aug 27 - `develop` is tagged with a new release version. Each push to `master` is subsequently merged to `develop` by GitHub actions.
-* 2023 Oct 29 - `develop` closed to new PRs.
-* 2023 Oct 29 - Call for testers.
-* 2023 Nov 5 - Last day for merges -- after this point `develop` is locked for testing and accepts only bugfixes
-* 2023 Nov 19 - `develop` is locked, only critical bugfix PRs merged.
-* 2023 Nov 23 - `master` is locked, no PRs merged.
-* 2023 Nov 26 - Merge `develop` to `master`.
-* 2023 Nov 26 - `master` is unlocked. PRs can be merged again.
+* 2023 Nov 26 - `develop` is tagged with a new release version. Each push to `master` is subsequently merged to `develop` by GitHub actions.
+* 2024 Jan 28 - `develop` closed to new PRs.
+* 2024 Jan 28 - Call for testers.
+* 2024 Feb 4 - Last day for merges -- after this point `develop` is locked for testing and accepts only bugfixes
+* 2024 Feb 18 - `develop` is locked, only critical bugfix PRs merged.
+* 2024 Feb 22 - `master` is locked, no PRs merged.
+* 2024 Feb 25 - Merge `develop` to `master`.
+* 2024 Feb 25 - `master` is unlocked. PRs can be merged again.
## What changes will be included?
@@ -48,7 +48,7 @@ Criteria for acceptance:
Strongly suggested:
-* The PR has a ChangeLog file describing the changes under `<qmk_firmware>/docs/Changelog/20231126`.
+* The PR has a ChangeLog file describing the changes under `<qmk_firmware>/docs/Changelog/20240225`.
* This should be in Markdown format, with a name in the format `PR12345.md`, substituting the digits for your PRs ID.
* One strong recommendation that the ChangeLog document matches the PR description on GitHub, so as to ensure traceability.
diff --git a/docs/breaking_changes_history.md b/docs/breaking_changes_history.md
index deb3dfb990..4ab890294b 100644
--- a/docs/breaking_changes_history.md
+++ b/docs/breaking_changes_history.md
@@ -2,6 +2,7 @@
This page links to all previous changelogs from the QMK Breaking Changes process.
+* [2023 Nov 26](ChangeLog/20231126.md) - version 0.23.0
* [2023 Aug 27](ChangeLog/20230827.md) - version 0.22.0
* [2023 May 28](ChangeLog/20230528.md) - version 0.21.0
* [2023 Feb 26](ChangeLog/20230226.md) - version 0.20.0
diff --git a/docs/cli_commands.md b/docs/cli_commands.md
index 79fd9de575..7b5ad5b13a 100644
--- a/docs/cli_commands.md
+++ b/docs/cli_commands.md
@@ -482,6 +482,131 @@ $ qmk import-kbfirmware ~/Downloads/gh62.json
---
+# External Userspace Commands
+
+## `qmk userspace-add`
+
+This command adds a keyboard/keymap to the External Userspace build targets.
+
+**Usage**:
+
+```
+qmk userspace-add [-h] [-km KEYMAP] [-kb KEYBOARD] [builds ...]
+
+positional arguments:
+ builds List of builds in form <keyboard>:<keymap>, or path to a keymap JSON file.
+
+options:
+ -h, --help show this help message and exit
+ -km KEYMAP, --keymap KEYMAP
+ The keymap to build a firmware for. Ignored when a configurator export is supplied.
+ -kb KEYBOARD, --keyboard KEYBOARD
+ The keyboard to build a firmware for. Ignored when a configurator export is supplied.
+```
+
+**Example**:
+
+```
+$ qmk userspace-add -kb planck/rev6 -km default
+Ψ Added planck/rev6:default to userspace build targets
+Ψ Saved userspace file to /home/you/qmk_userspace/qmk.json
+```
+
+## `qmk userspace-remove`
+
+This command removes a keyboard/keymap from the External Userspace build targets.
+
+**Usage**:
+
+```
+qmk userspace-remove [-h] [-km KEYMAP] [-kb KEYBOARD] [builds ...]
+
+positional arguments:
+ builds List of builds in form <keyboard>:<keymap>, or path to a keymap JSON file.
+
+options:
+ -h, --help show this help message and exit
+ -km KEYMAP, --keymap KEYMAP
+ The keymap to build a firmware for. Ignored when a configurator export is supplied.
+ -kb KEYBOARD, --keyboard KEYBOARD
+ The keyboard to build a firmware for. Ignored when a configurator export is supplied.
+```
+
+**Example**:
+
+```
+$ qmk userspace-remove -kb planck/rev6 -km default
+Ψ Removed planck/rev6:default from userspace build targets
+Ψ Saved userspace file to /home/you/qmk_userspace/qmk.json
+```
+
+## `qmk userspace-list`
+
+This command lists the External Userspace build targets.
+
+**Usage**:
+
+```
+qmk userspace-list [-h] [-e]
+
+options:
+ -h, --help show this help message and exit
+ -e, --expand Expands any use of `all` for either keyboard or keymap.
+```
+
+**Example**:
+
+```
+$ qmk userspace-list
+Ψ Current userspace build targets:
+Ψ Keyboard: planck/rev6, keymap: you
+Ψ Keyboard: clueboard/66/rev3, keymap: you
+```
+
+## `qmk userspace-compile`
+
+This command compiles all the External Userspace build targets.
+
+**Usage**:
+
+```
+qmk userspace-compile [-h] [-e ENV] [-n] [-c] [-j PARALLEL] [-t]
+
+options:
+ -h, --help show this help message and exit
+ -e ENV, --env ENV Set a variable to be passed to make. May be passed multiple times.
+ -n, --dry-run Don't actually build, just show the commands to be run.
+ -c, --clean Remove object files before compiling.
+ -j PARALLEL, --parallel PARALLEL
+ Set the number of parallel make jobs; 0 means unlimited.
+ -t, --no-temp Remove temporary files during build.
+```
+
+**Example**:
+
+```
+$ qmk userspace-compile
+Ψ Preparing target list...
+Build planck/rev6:you [OK]
+Build clueboard/66/rev3:you [OK]
+```
+
+## `qmk userspace-doctor`
+
+This command examines your environment and alerts you to potential problems related to External Userspace.
+
+**Example**:
+
+```
+% qmk userspace-doctor
+Ψ QMK home: /home/you/qmk_userspace/qmk_firmware
+Ψ Testing userspace candidate: /home/you/qmk_userspace -- Valid `qmk.json`
+Ψ QMK userspace: /home/you/qmk_userspace
+Ψ Userspace enabled: True
+```
+
+---
+
# Developer Commands
## `qmk format-text`
diff --git a/docs/custom_quantum_functions.md b/docs/custom_quantum_functions.md
index 5d63f3cfb7..957633837c 100644
--- a/docs/custom_quantum_functions.md
+++ b/docs/custom_quantum_functions.md
@@ -283,6 +283,65 @@ void suspend_wakeup_init_user(void) {
* Keyboard/Revision: `void suspend_power_down_kb(void)` and `void suspend_wakeup_init_user(void)`
* Keymap: `void suspend_power_down_kb(void)` and `void suspend_wakeup_init_user(void)`
+
+# Keyboard Shutdown/Reboot Code :id=keyboard-shutdown-reboot-code
+
+This function gets called whenever the firmware is reset, whether it's a soft reset or reset to the bootloader. This is the spot to use for any sort of cleanup, as this happens right before the actual reset. And it can be useful for turning off different systems (such as RGB, onboard screens, etc).
+
+Additionally, it differentiates between the soft reset (eg, rebooting back into the firmware) or jumping to the bootloader.
+
+Certain tasks are performed during shutdown too. The keyboard is cleared, music and midi is stopped (if enabled), the shutdown chime is triggered (if audio is enabled), and haptic is stopped.
+
+If `jump_to_bootloader` is set to `true`, this indicates that the board will be entering the bootloader for a new firmware flash, whereas `false` indicates that this is happening for a soft reset and will load the firmware agaim immediately (such as when using `QK_REBOOT` or `QK_CLEAR_EEPROM`).
+
+As there is a keyboard and user level function, returning `false` for the user function will disable the keyboard level function, allowing for customization.
+
+?> Bootmagic does not trigger `shutdown_*()` as it happens before most of the initialization process.
+
+### Example `shutdown_kb()` Implementation
+
+```c
+bool shutdown_kb(bool jump_to_bootloader) {
+ if (!shutdown_user(jump_to_bootloader)) {
+ return false;
+ }
+
+ if (jump_to_bootloader) {
+ // red for bootloader
+ rgb_matrix_set_color_all(RGB_OFF);
+ } else {
+ // off for soft reset
+ rgb_matrix_set_color_all(RGB_GREEN);
+ }
+ // force flushing -- otherwise will never happen
+ rgb_matrix_update_pwm_buffers();
+ return true;
+}
+```
+
+### Example `shutdown_user()` Implementation
+
+```c
+bool shutdown_user(bool jump_to_bootloader) {
+ if (jump_to_bootloader) {
+ // red for bootloader
+ rgb_matrix_set_color_all(RGB_RED);
+ } else {
+ // off for soft reset
+ rgb_matrix_set_color_all(RGB_OFF);
+ }
+ // force flushing -- otherwise will never happen
+ rgb_matrix_update_pwm_buffers();
+ // false to not process kb level
+ return false;
+}
+```
+
+### Keyboard shutdown/reboot Function Documentation
+
+* Keyboard/Revision: `bool shutdown_kb(bool jump_to_bootloader)`
+* Keymap: `bool shutdown_user(bool jump_to_bootloader)`
+
# Deferred Execution :id=deferred-execution
QMK has the ability to execute a callback after a specified period of time, rather than having to manually manage timers. To enable this functionality, set `DEFERRED_EXEC_ENABLE = yes` in rules.mk.
diff --git a/docs/eeprom_driver.md b/docs/eeprom_driver.md
index 50d8bcb7b3..c77d18c68d 100644
--- a/docs/eeprom_driver.md
+++ b/docs/eeprom_driver.md
@@ -66,6 +66,14 @@ Currently QMK supports 25xx-series chips over SPI. As such, requires a working s
`#define EXTERNAL_EEPROM_PAGE_SIZE` | `32` | Page size of the EEPROM in bytes, as specified in the datasheet
`#define EXTERNAL_EEPROM_ADDRESS_SIZE` | `2` | The number of bytes to transmit for the memory location within the EEPROM
+Default values and extended descriptions can be found in `drivers/eeprom/eeprom_spi.h`.
+
+Alternatively, there are pre-defined hardware configurations for available chips/modules:
+
+Module | Equivalent `#define` | Source
+-----------------|---------------------------------|------------------------------------------
+MB85RS64V FRAM | `define EEPROM_SPI_MB85RS64V` | <https://www.adafruit.com/product/1897>
+
!> There's no way to determine if there is an SPI EEPROM actually responding. Generally, this will result in reads of nothing but zero.
## Transient Driver configuration :id=transient-eeprom-driver-configuration
@@ -105,11 +113,11 @@ Configurable options in your keyboard's `config.h`:
`config.h` override | Default | Description
-----------------------------------------|-------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-`#define WEAR_LEVELING_EFL_FIRST_SECTOR` | _unset_ | The first sector on the MCU to use. By default this is not defined and calculated at runtime based on the MCU. However, different flash sizes on MCUs may require custom configuration.
-`#define WEAR_LEVELING_EFL_FLASH_SIZE` | _unset_ | Allows overriding the flash size available for use for wear-leveling. Under normal circumstances this is automatically calculated and should not need to be overridden. Specifying a size larger than the amount actually available in flash will usually prevent the MCU from booting.
-`#define WEAR_LEVELING_LOGICAL_SIZE` | `1024` | Number of bytes "exposed" to the rest of QMK and denotes the size of the usable EEPROM.
-`#define WEAR_LEVELING_BACKING_SIZE` | `2048` | Number of bytes used by the wear-leveling algorithm for its underlying storage, and needs to be a multiple of the logical size.
-`#define BACKING_STORE_WRITE_SIZE` | _automatic_ | The byte width of the underlying write used on the MCU, and is usually automatically determined from the selected MCU family. If an error occurs in the auto-detection, you'll need to consult the MCU's datasheet and determine this value, specifying it directly.
+`#define WEAR_LEVELING_EFL_FIRST_SECTOR` | _unset_ | The first sector on the MCU to use. By default this is not defined and calculated at runtime based on the MCU. However, different flash sizes on MCUs may require custom configuration.
+`#define WEAR_LEVELING_EFL_FLASH_SIZE` | _unset_ | Allows overriding the flash size available for use for wear-leveling. Under normal circumstances this is automatically calculated and should not need to be overridden. Specifying a size larger than the amount actually available in flash will usually prevent the MCU from booting.
+`#define WEAR_LEVELING_LOGICAL_SIZE` | `(backing_size/2)` | Number of bytes "exposed" to the rest of QMK and denotes the size of the usable EEPROM.
+`#define WEAR_LEVELING_BACKING_SIZE` | `2048` | Number of bytes used by the wear-leveling algorithm for its underlying storage, and needs to be a multiple of the logical size.
+`#define BACKING_STORE_WRITE_SIZE` | _automatic_ | The byte width of the underlying write used on the MCU, and is usually automatically determined from the selected MCU family. If an error occurs in the auto-detection, you'll need to consult the MCU's datasheet and determine this value, specifying it directly.
!> If your MCU does not boot after swapping to the EFL wear-leveling driver, it's likely that the flash size is incorrectly detected, usually as an MCU with larger flash and may require overriding.
@@ -139,7 +147,7 @@ Configurable options in your keyboard's `config.h`:
------------------------------------------|----------------------------|--------------------------------------------------------------------------------------------------------------------------------
`#define WEAR_LEVELING_RP2040_FLASH_SIZE` | `PICO_FLASH_SIZE_BYTES` | Number of bytes of flash on the board.
`#define WEAR_LEVELING_RP2040_FLASH_BASE` | `(flash_size-sector_size)` | The byte-wise location that the backing storage should be located.
-`#define WEAR_LEVELING_LOGICAL_SIZE` | `4096` | Number of bytes "exposed" to the rest of QMK and denotes the size of the usable EEPROM.
+`#define WEAR_LEVELING_LOGICAL_SIZE` | `(backing_size/2)` | Number of bytes "exposed" to the rest of QMK and denotes the size of the usable EEPROM.
`#define WEAR_LEVELING_BACKING_SIZE` | `8192` | Number of bytes used by the wear-leveling algorithm for its underlying storage, and needs to be a multiple of the logical size as well as the sector size.
`#define BACKING_STORE_WRITE_SIZE` | `2` | The write width used whenever a write is performed on the external flash peripheral.
diff --git a/docs/feature_auto_shift.md b/docs/feature_auto_shift.md
index 6241cbaeb1..74be33cdd4 100644
--- a/docs/feature_auto_shift.md
+++ b/docs/feature_auto_shift.md
@@ -180,18 +180,18 @@ For more granular control, there is `get_auto_shifted_key`. The default function
bool get_auto_shifted_key(uint16_t keycode, keyrecord_t *record) {
switch (keycode) {
# ifndef NO_AUTO_SHIFT_ALPHA
- case KC_A ... KC_Z:
+ case AUTO_SHIFT_ALPHA:
# endif
# ifndef NO_AUTO_SHIFT_NUMERIC
- case KC_1 ... KC_0:
+ case AUTO_SHIFT_NUMERIC:
# endif
# ifndef NO_AUTO_SHIFT_SPECIAL
-# ifndef NO_AUTO_SHIFT_TAB
+# ifndef NO_AUTO_SHIFT_TAB
case KC_TAB:
-# endif
-# ifndef NO_AUTO_SHIFT_SYMBOLS
+# endif
+# ifndef NO_AUTO_SHIFT_SYMBOLS
case AUTO_SHIFT_SYMBOLS:
-# endif
+# endif
# endif
# ifdef AUTO_SHIFT_ENTER
case KC_ENT:
@@ -310,10 +310,16 @@ generating taps on release. For example:
#define RETRO_SHIFT 500
```
+Without a value set, holds of any length without an interrupting key will produce the shifted value.
+
This value (if set) must be greater than one's `TAPPING_TERM`, as the key press
must be designated as a 'hold' by `process_tapping` before we send the modifier.
+[Per-key tapping terms](tap_hold.md#tapping-term) can be used as a workaround.
There is no such limitation in regards to `AUTO_SHIFT_TIMEOUT` for normal keys.
+**Note:** Tap Holds must be added to Auto Shift, see [here.](feature_auto_shift.md#auto-shift-per-key)
+`IS_RETRO` may be helpful if one wants all Tap Holds retro shifted.
+
### Retro Shift and Tap Hold Configurations
Tap Hold Configurations work a little differently when using Retro Shift.
diff --git a/docs/feature_backlight.md b/docs/feature_backlight.md
index d032c33f18..69391fcefe 100644
--- a/docs/feature_backlight.md
+++ b/docs/feature_backlight.md
@@ -37,8 +37,9 @@ Add the following to your `config.h`:
|`BREATHING_PERIOD` |`6` |The length of one backlight "breath" in seconds |
|`BACKLIGHT_ON_STATE` |`1` |The state of the backlight pin when the backlight is "on" - `1` for high, `0` for low |
|`BACKLIGHT_LIMIT_VAL` |`255` |The maximum duty cycle of the backlight -- `255` allows for full brightness, any lower will decrease the maximum.|
+|`BACKLIGHT_DEFAULT_ON` |`true` |Enable backlight upon clearing the EEPROM |
+|`BACKLIGHT_DEFAULT_BREATHING`|`false` |Whether to enable backlight breathing upon clearing the EEPROM |
|`BACKLIGHT_DEFAULT_LEVEL` |`BACKLIGHT_LEVELS`|The default backlight level to use upon clearing the EEPROM |
-|`BACKLIGHT_DEFAULT_BREATHING`|*Not defined* |Whether to enable backlight breathing upon clearing the EEPROM |
Unless you are designing your own keyboard, you generally should not need to change the `BACKLIGHT_PIN` or `BACKLIGHT_ON_STATE`.
@@ -172,11 +173,13 @@ Depending on the ChibiOS board configuration, you may need to enable PWM at the
The following `#define`s apply only to the `pwm` driver:
-|Define |Default |Description |
-|-----------------------|--------|-----------------------------------|
-|`BACKLIGHT_PWM_DRIVER` |`PWMD4` |The PWM driver to use |
-|`BACKLIGHT_PWM_CHANNEL`|`3` |The PWM channel to use |
-|`BACKLIGHT_PAL_MODE` |`2` |The pin alternative function to use|
+|Define |Default |Description |
+|-----------------------|-------------|---------------------------------------------------------------|
+|`BACKLIGHT_PWM_DRIVER` |`PWMD4` |The PWM driver to use |
+|`BACKLIGHT_PWM_CHANNEL`|`3` |The PWM channel to use |
+|`BACKLIGHT_PAL_MODE` |`2` |The pin alternative function to use |
+|`BACKLIGHT_PWM_PERIOD` |*Not defined*|The PWM period in counter ticks - Default is platform dependent|
+
Refer to the ST datasheet for your particular MCU to determine these values. For example, these defaults are set up for pin `B8` on a Proton-C (STM32F303) using `TIM4_CH3` on AF2. Unless you are designing your own keyboard, you generally should not need to change them.
diff --git a/docs/feature_led_matrix.md b/docs/feature_led_matrix.md
index fd56a45725..b1ce09d349 100644
--- a/docs/feature_led_matrix.md
+++ b/docs/feature_led_matrix.md
@@ -19,14 +19,13 @@ You can use between 1 and 4 IS31FL3731 IC's. Do not specify `LED_DRIVER_ADDR_<N>
| Variable | Description | Default |
|----------|-------------|---------|
-| `ISSI_TIMEOUT` | (Optional) How long to wait for i2c messages, in milliseconds | 100 |
-| `ISSI_PERSISTENCE` | (Optional) Retry failed messages this many times | 0 |
-| `LED_DRIVER_COUNT` | (Required) How many LED driver IC's are present | |
+| `IS31FL3731_I2C_TIMEOUT` | (Optional) How long to wait for i2c messages, in milliseconds | 100 |
+| `IS31FL3731_I2C_PERSISTENCE` | (Optional) Retry failed messages this many times | 0 |
| `LED_MATRIX_LED_COUNT` | (Required) How many LED lights are present across all drivers | |
-| `LED_DRIVER_ADDR_1` | (Required) Address for the first LED driver | |
-| `LED_DRIVER_ADDR_2` | (Optional) Address for the second LED driver | |
-| `LED_DRIVER_ADDR_3` | (Optional) Address for the third LED driver | |
-| `LED_DRIVER_ADDR_4` | (Optional) Address for the fourth LED driver | |
+| `IS31FL3731_I2C_ADDRESS_1` | (Required) Address for the first LED driver | |
+| `IS31FL3731_I2C_ADDRESS_2` | (Optional) Address for the second LED driver | |
+| `IS31FL3731_I2C_ADDRESS_3` | (Optional) Address for the third LED driver | |
+| `IS31FL3731_I2C_ADDRESS_4` | (Optional) Address for the fourth LED driver | |
Here is an example using 2 drivers.
@@ -34,14 +33,15 @@ Here is an example using 2 drivers.
// This is a 7-bit address, that gets left-shifted and bit 0
// set to 0 for write, 1 for read (as per I2C protocol)
// The address will vary depending on your wiring:
-// 0b1110100 AD <-> GND
-// 0b1110111 AD <-> VCC
-// 0b1110101 AD <-> SCL
-// 0b1110110 AD <-> SDA
-#define LED_DRIVER_ADDR_1 0b1110100
-#define LED_DRIVER_ADDR_2 0b1110110
-
-#define LED_DRIVER_COUNT 2
+// 00 AD <-> GND
+// 01 AD <-> SCL
+// 10 AD <-> SDA
+// 11 AD <-> VCC
+// ADDR represents A1:A0 of the 7-bit address.
+// The result is: 0b11101(ADDR)
+#define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND
+#define IS31FL3731_I2C_ADDRESS_2 IS31FL3731_I2C_ADDRESS_SDA
+
#define LED_DRIVER_1_LED_TOTAL 25
#define LED_DRIVER_2_LED_TOTAL 24
#define LED_MATRIX_LED_COUNT (LED_DRIVER_1_LED_TOTAL + LED_DRIVER_2_LED_TOTAL)
@@ -49,12 +49,12 @@ Here is an example using 2 drivers.
!> Note the parentheses, this is so when `LED_MATRIX_LED_COUNT` is used in code and expanded, the values are added together before any additional math is applied to them. As an example, `rand() % (LED_DRIVER_1_LED_TOTAL + LED_DRIVER_2_LED_TOTAL)` will give very different results than `rand() % LED_DRIVER_1_LED_TOTAL + LED_DRIVER_2_LED_TOTAL`.
-For split keyboards using `LED_MATRIX_SPLIT` with an LED driver, you can either have the same driver address or different driver addresses. If using different addresses, use `DRIVER_ADDR_1` for one and `DRIVER_ADDR_2` for the other one. Then, in `g_is31_leds`, fill out the correct driver index (0 or 1). If using one address, use `DRIVER_ADDR_1` for both, and use index 0 for `g_is31_leds`.
+For split keyboards using `LED_MATRIX_SPLIT` with an LED driver, you can either have the same driver address or different driver addresses. If using different addresses, use `IS31FL3731_I2C_ADDRESS_1` for one and `IS31FL3731_I2C_ADDRESS_2` for the other one. Then, in `g_is31fl3731_leds`, fill out the correct driver index (0 or 1). If using one address, use `IS31FL3731_I2C_ADDRESS_1` for both, and use index 0 for `g_is31fl3731_leds`.
Define these arrays listing all the LEDs in your `<keyboard>.c`:
```c
-const is31_led PROGMEM g_is31_leds[LED_MATRIX_LED_COUNT] = {
+const is31fl3731_led_t PROGMEM g_is31fl3731_leds[LED_MATRIX_LED_COUNT] = {
/* Refer to IS31 manual for these locations
* driver
* | LED address
@@ -94,7 +94,6 @@ Configure the hardware via your `config.h`:
|----------|-------------|---------|
| `ISSI_TIMEOUT` | (Optional) How long to wait for i2c messages, in milliseconds | 100 |
| `ISSI_PERSISTENCE` | (Optional) Retry failed messages this many times | 0 |
-| `DRIVER_COUNT` | (Required) How many LED driver IC's are present | |
| `LED_MATRIX_LED_COUNT` | (Required) How many LED lights are present across all drivers | |
| `DRIVER_ADDR_1` | (Optional) Address for the first LED driver | |
| `DRIVER_ADDR_<N>` | (Required) Address for the additional LED drivers | |
@@ -127,7 +126,6 @@ Here is an example using 2 drivers.
```c
#define DRIVER_ADDR_2 0b0100001
-#define DRIVER_COUNT 2
#define DRIVER_1_LED_TOTAL 66
#define DRIVER_2_LED_TOTAL 42
#define LED_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL)
@@ -159,7 +157,7 @@ Then Define the array listing all the LEDs you want to override in your `<keyboa
```c
const is31_led PROGMEM g_is31_scaling[ISSI_MANUAL_SCALING] = {
- * LED Index
+/* LED Index
* | Scaling
* | | */
{5, 120},
@@ -248,16 +246,16 @@ enum led_matrix_effects {
LED_MATRIX_CYCLE_OUT_IN, // Full gradient scrolling out to in
LED_MATRIX_DUAL_BEACON, // Full gradient spinning around center of keyboard
LED_MATRIX_SOLID_REACTIVE_SIMPLE, // Pulses keys hit then fades out
- LED_MATRIX_SOLID_REACTIVE_WIDE // Value pulses near a single key hit then fades out
- LED_MATRIX_SOLID_REACTIVE_MULTIWIDE // Value pulses near multiple key hits then fades out
- LED_MATRIX_SOLID_REACTIVE_CROSS // Value pulses the same column and row of a single key hit then fades out
- LED_MATRIX_SOLID_REACTIVE_MULTICROSS // Value pulses the same column and row of multiple key hits then fades out
- LED_MATRIX_SOLID_REACTIVE_NEXUS // Value pulses away on the same column and row of a single key hit then fades out
- LED_MATRIX_SOLID_REACTIVE_MULTINEXUS // Value pulses away on the same column and row of multiple key hits then fades out
+ LED_MATRIX_SOLID_REACTIVE_WIDE, // Value pulses near a single key hit then fades out
+ LED_MATRIX_SOLID_REACTIVE_MULTIWIDE, // Value pulses near multiple key hits then fades out
+ LED_MATRIX_SOLID_REACTIVE_CROSS, // Value pulses the same column and row of a single key hit then fades out
+ LED_MATRIX_SOLID_REACTIVE_MULTICROSS, // Value pulses the same column and row of multiple key hits then fades out
+ LED_MATRIX_SOLID_REACTIVE_NEXUS, // Value pulses away on the same column and row of a single key hit then fades out
+ LED_MATRIX_SOLID_REACTIVE_MULTINEXUS, // Value pulses away on the same column and row of multiple key hits then fades out
LED_MATRIX_SOLID_SPLASH, // Value pulses away from a single key hit then fades out
LED_MATRIX_SOLID_MULTISPLASH, // Value pulses away from multiple key hits then fades out
- LED_MATRIX_WAVE_LEFT_RIGHT // Sine wave scrolling from left to right
- LED_MATRIX_WAVE_UP_DOWN // Sine wave scrolling from up to down
+ LED_MATRIX_WAVE_LEFT_RIGHT, // Sine wave scrolling from left to right
+ LED_MATRIX_WAVE_UP_DOWN, // Sine wave scrolling from up to down
LED_MATRIX_EFFECT_MAX
};
```
@@ -363,6 +361,7 @@ For inspiration and examples, check out the built-in effects under `quantum/led_
#define LED_MATRIX_LED_PROCESS_LIMIT (LED_MATRIX_LED_COUNT + 4) / 5 // limits the number of LEDs to process in an animation per task run (increases keyboard responsiveness)
#define LED_MATRIX_LED_FLUSH_LIMIT 16 // limits in milliseconds how frequently an animation will update the LEDs. 16 (16ms) is equivalent to limiting to 60fps (increases keyboard responsiveness)
#define LED_MATRIX_MAXIMUM_BRIGHTNESS 255 // limits maximum brightness of LEDs
+#define LED_MATRIX_DEFAULT_ON true // Sets the default enabled state, if none has been set
#define LED_MATRIX_DEFAULT_MODE LED_MATRIX_SOLID // Sets the default mode, if none has been set
#define LED_MATRIX_DEFAULT_VAL LED_MATRIX_MAXIMUM_BRIGHTNESS // Sets the default brightness value, if none has been set
#define LED_MATRIX_DEFAULT_SPD 127 // Sets the default animation speed, if none has been set
diff --git a/docs/feature_oled_driver.md b/docs/feature_oled_driver.md
index e67f80c879..a8bcdf2db9 100644
--- a/docs/feature_oled_driver.md
+++ b/docs/feature_oled_driver.md
@@ -167,6 +167,28 @@ bool oled_task_user(void) {
#endif
```
+Render a message before booting into bootloader mode.
+```c
+void oled_render_boot(bool bootloader) {
+ oled_clear();
+ for (int i = 0; i < 16; i++) {
+ oled_set_cursor(0, i);
+ if (bootloader) {
+ oled_write_P(PSTR("Awaiting New Firmware "), false);
+ } else {
+ oled_write_P(PSTR("Rebooting "), false);
+ }
+ }
+
+ oled_render_dirty(true);
+}
+
+bool shutdown_user(bool jump_to_bootloader) {
+ oled_render_boot(jump_to_bootloader);
+}
+
+```
+
## Basic Configuration
These configuration options should be placed in `config.h`. Example:
@@ -276,7 +298,7 @@ Rotation on SH1106 and SH1107 is noticeably less efficient than on SSD1306, beca
## OLED API
```c
-// OLED rotation enum values are flags
+// OLED Rotation enum values are flags
typedef enum {
OLED_ROTATION_0 = 0,
OLED_ROTATION_90 = 1,
@@ -284,7 +306,7 @@ typedef enum {
OLED_ROTATION_270 = 3, // OLED_ROTATION_90 | OLED_ROTATION_180
} oled_rotation_t;
-// Initialize the OLED display, rotating the rendered output based on the define passed in.
+// Initialize the oled display, rotating the rendered output based on the define passed in.
// Returns true if the OLED was initialized successfully
bool oled_init(oled_rotation_t rotation);
@@ -302,8 +324,12 @@ bool oled_send_data(const uint8_t *data, uint16_t size);
// Clears the display buffer, resets cursor position to 0, and sets the buffer to dirty for rendering
void oled_clear(void);
-// Renders the dirty chunks of the buffer to OLED display
-void oled_render(void);
+// Alias to oled_render_dirty to avoid a change in api.
+#define oled_render() oled_render_dirty(false)
+
+// Renders all dirty blocks to the display at one time or a subset depending on the value of
+// all.
+void oled_render_dirty(bool all);
// Moves cursor to character position indicated by column and line, wraps if out of bounds
// Max column denoted by 'oled_max_chars()' and max lines by 'oled_max_lines()' functions
@@ -334,8 +360,6 @@ void oled_write_ln(const char *data, bool invert);
// Pans the buffer to the right (or left by passing true) by moving contents of the buffer
// Useful for moving the screen in preparation for new drawing
-// oled_scroll_left or oled_scroll_right should be preferred for all cases of moving a static
-// image such as a logo or to avoid burn-in as it's much, much less cpu intensive
void oled_pan(bool left);
// Returns a pointer to the requested start index in the buffer plus remaining
@@ -352,6 +376,7 @@ void oled_write_raw_byte(const char data, uint16_t index);
// Coordinates start at top-left and go right and down for positive x and y
void oled_write_pixel(uint8_t x, uint8_t y, bool on);
+#if defined(__AVR__)
// Writes a PROGMEM string to the buffer at current cursor position
// Advances the cursor while writing, inverts the pixels if true
// Remapped to call 'void oled_write(const char *data, bool invert);' on ARM
@@ -365,6 +390,11 @@ void oled_write_ln_P(const char *data, bool invert);
// Writes a PROGMEM string to the buffer at current cursor position
void oled_write_raw_P(const char *data, uint16_t size);
+#else
+# define oled_write_P(data, invert) oled_write(data, invert)
+# define oled_write_ln_P(data, invert) oled_write_ln(data, invert)
+# define oled_write_raw_P(data, size) oled_write_raw(data, size)
+#endif // defined(__AVR__)
// Can be used to manually turn on the screen if it is off
// Returns true if the screen was on or turns on
diff --git a/docs/feature_os_detection.md b/docs/feature_os_detection.md
index f32e419807..907638bcfa 100644
--- a/docs/feature_os_detection.md
+++ b/docs/feature_os_detection.md
@@ -36,10 +36,15 @@ This time is quite short, probably hundreds of milliseconds, but this data may b
If OS is guessed incorrectly, you may want to collect data about USB setup packets to refine the detection logic.
-To do so in your `rules.mk` add:
+To do so in your `config.h` add:
+
+```c
+#define OS_DETECTION_DEBUG_ENABLE
+```
+
+And in your `rules.mk` add:
```make
-OS_DETECTION_DEBUG_ENABLE = yes
CONSOLE_ENABLE = yes
```
diff --git a/docs/feature_pointing_device.md b/docs/feature_pointing_device.md
index 909eff826d..c4bbd29d6d 100644
--- a/docs/feature_pointing_device.md
+++ b/docs/feature_pointing_device.md
@@ -74,6 +74,71 @@ The Analog Joystick is an analog (ADC) driven sensor. There are a variety of jo
| `ANALOG_JOYSTICK_SPEED_MAX` | (Optional) The maximum value used for motion. | `2` |
| `ANALOG_JOYSTICK_CLICK_PIN` | (Optional) The pin wired up to the press switch of the analog stick. | _not defined_ |
+### Azoteq IQS5XX Trackpad
+
+To use a Azoteq IQS5XX trackpad, add this to your `rules.mk`:
+
+```make
+POINTING_DEVICE_DRIVER = azoteq_iqs5xx
+```
+
+This supports the IQS525, IQS550 and IQS572 controllers, with the latter two being used in the TPS43 and TPS65 trackpads.
+
+#### Device settings
+
+Specific device profiles are provided which set the required values for dimensions and resolution.
+
+| Setting | Description |
+| -------------------------------- | ---------------------------------------------------------- |
+| `AZOTEQ_IQS5XX_TPS43` | (Pick One) Sets resolution/mm to TPS43 specifications. |
+| `AZOTEQ_IQS5XX_TPS65` | (Pick One) Sets resolution/mm to TPS65 specifications. |
+
+?> If using one of the above defines you can skip to gesture settings.
+
+| Setting | Description | Default |
+| -------------------------------- | ---------------------------------------------------------- | ------------- |
+| `AZOTEQ_IQS5XX_WIDTH_MM` | (Required) Width of the trackpad sensor in millimeters. | _not defined_ |
+| `AZOTEQ_IQS5XX_HEIGHT_MM` | (Required) Height of the trackpad sensor in millimeters. | _not defined_ |
+| `AZOTEQ_IQS5XX_RESOLUTION_X` | (Optional) Specify X resolution for CPI calculation. | _not defined_ |
+| `AZOTEQ_IQS5XX_RESOLUTION_Y` | (Optional) Specify Y resolution for CPI calculation. | _not defined_ |
+
+**`AZOTEQ_IQS5XX_RESOLUTION_X/Y`** fall back resolutions are provided within the driver based on controller model.
+
+| I2C Setting | Description | Default |
+| ------------------------- | ------------------------------------------------------------------------------- | ------- |
+| `AZOTEQ_IQS5XX_ADDRESS` | (Optional) Sets the I2C Address for the Azoteq trackpad | `0xE8` |
+| `AZOTEQ_IQS5XX_TIMEOUT_MS`| (Optional) The timeout for i2c communication with in milliseconds. | `10` |
+
+#### Gesture settings
+
+| Setting | Description | Default |
+| ----------------------------------------- | ------------------------------------------------------------------------------------ | ----------- |
+| `AZOTEQ_IQS5XX_TAP_ENABLE` | (Optional) Enable single finger tap. (Left click) | `true` |
+| `AZOTEQ_IQS5XX_TWO_FINGER_TAP_ENABLE` | (Optional) Enable two finger tap. (Right click) | `true` |
+| `AZOTEQ_IQS5XX_PRESS_AND_HOLD_ENABLE` | (Optional) Emulates holding left click to select text. | `false` |
+| `AZOTEQ_IQS5XX_SWIPE_X_ENABLE` | (Optional) Enable swipe gestures X+ (Mouse Button 5) / X- (Mouse Button 4) | `false` |
+| `AZOTEQ_IQS5XX_SWIPE_Y_ENABLE` | (Optional) Enable swipe gestures Y+ (Mouse Button 3) / Y- (Mouse Button 6) | `false` |
+| `AZOTEQ_IQS5XX_ZOOM_ENABLE` | (Optional) Enable zoom gestures Zoom Out (Mouse Button 7) / Zoom In (Mouse Button 8) | `false` |
+| `AZOTEQ_IQS5XX_SCROLL_ENABLE` | (Optional) Enable scrolling using two fingers. | `true` |
+| `AZOTEQ_IQS5XX_TAP_TIME` | (Optional) Maximum time in ms for tap to be registered. | `150` |
+| `AZOTEQ_IQS5XX_TAP_DISTANCE` | (Optional) Maximum deviation in pixels before single tap is no longer valid. | `25` |
+| `AZOTEQ_IQS5XX_HOLD_TIME` | (Optional) Minimum time in ms for press and hold. | `300` |
+| `AZOTEQ_IQS5XX_SWIPE_INITIAL_TIME` | (Optional) Maximum time to travel initial distance before swipe is registered. | `150` |
+| `AZOTEQ_IQS5XX_SWIPE_INITIAL_DISTANCE` | (Optional) Minimum travel in pixels before swipe is registered. | `300` |
+| `AZOTEQ_IQS5XX_SWIPE_CONSECUTIVE_TIME` | (Optional) Maximum time to travel consecutive distance before swipe is registered. | `0` |
+| `AZOTEQ_IQS5XX_SWIPE_CONSECUTIVE_DISTANCE`| (Optional) Minimum travel in pixels before a consecutive swipe is registered. | `2000` |
+| `AZOTEQ_IQS5XX_SCROLL_INITIAL_DISTANCE` | (Optional) Minimum travel in pixels before scroll is registered. | `50` |
+| `AZOTEQ_IQS5XX_ZOOM_INITIAL_DISTANCE` | (Optional) Minimum travel in pixels before zoom is registered. | `50` |
+| `AZOTEQ_IQS5XX_ZOOM_CONSECUTIVE_DISTANCE` | (Optional) Maximum time to travel zoom distance before zoom is registered. | `25` |
+
+#### Rotation settings
+
+| Setting | Description | Default |
+| ---------------------------- | ---------------------------------------------------------- | ------------- |
+| `AZOTEQ_IQS5XX_ROTATION_90` | (Optional) Configures hardware for 90 degree rotation. | _not defined_ |
+| `AZOTEQ_IQS5XX_ROTATION_180` | (Optional) Configures hardware for 180 degree rotation. | _not defined_ |
+| `AZOTEQ_IQS5XX_ROTATION_270` | (Optional) Configures hardware for 270 degree rotation. | _not defined_ |
+
### Cirque Trackpad
To use the Cirque Trackpad sensor, add this to your `rules.mk`:
diff --git a/docs/feature_rgb_matrix.md b/docs/feature_rgb_matrix.md
index 44899d70d9..824ff50648 100644
--- a/docs/feature_rgb_matrix.md
+++ b/docs/feature_rgb_matrix.md
@@ -19,15 +19,14 @@ You can use between 1 and 4 IS31FL3731 IC's. Do not specify `DRIVER_ADDR_<N>` de
| Variable | Description | Default |
|----------|-------------|---------|
-| `ISSI_TIMEOUT` | (Optional) How long to wait for i2c messages, in milliseconds | 100 |
-| `ISSI_PERSISTENCE` | (Optional) Retry failed messages this many times | 0 |
-| `ISSI_3731_DEGHOST` | (Optional) Set this define to enable de-ghosting by halving Vcc during blanking time | |
-| `DRIVER_COUNT` | (Required) How many RGB driver IC's are present | |
+| `IS31FL3731_I2C_TIMEOUT` | (Optional) How long to wait for i2c messages, in milliseconds | 100 |
+| `IS31FL3731_I2C_PERSISTENCE` | (Optional) Retry failed messages this many times | 0 |
+| `IS31FL3731_DEGHOST` | (Optional) Set this define to enable de-ghosting by halving Vcc during blanking time | |
| `RGB_MATRIX_LED_COUNT` | (Required) How many RGB lights are present across all drivers | |
-| `DRIVER_ADDR_1` | (Required) Address for the first RGB driver | |
-| `DRIVER_ADDR_2` | (Optional) Address for the second RGB driver | |
-| `DRIVER_ADDR_3` | (Optional) Address for the third RGB driver | |
-| `DRIVER_ADDR_4` | (Optional) Address for the fourth RGB driver | |
+| `IS31FL3731_I2C_ADDRESS_1` | (Required) Address for the first RGB driver | |
+| `IS31FL3731_I2C_ADDRESS_2` | (Optional) Address for the second RGB driver | |
+| `IS31FL3731_I2C_ADDRESS_3` | (Optional) Address for the third RGB driver | |
+| `IS31FL3731_I2C_ADDRESS_4` | (Optional) Address for the fourth RGB driver | |
Here is an example using 2 drivers.
@@ -35,14 +34,15 @@ Here is an example using 2 drivers.
// This is a 7-bit address, that gets left-shifted and bit 0
// set to 0 for write, 1 for read (as per I2C protocol)
// The address will vary depending on your wiring:
-// 0b1110100 AD <-> GND
-// 0b1110111 AD <-> VCC
-// 0b1110101 AD <-> SCL
-// 0b1110110 AD <-> SDA
-#define DRIVER_ADDR_1 0b1110100
-#define DRIVER_ADDR_2 0b1110110
-
-#define DRIVER_COUNT 2
+// 00 AD <-> GND
+// 01 AD <-> SCL
+// 10 AD <-> SDA
+// 11 AD <-> VCC
+// ADDR represents A1:A0 of the 7-bit address.
+// The result is: 0b11101(ADDR)
+#define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND
+#define IS31FL3731_I2C_ADDRESS_2 IS31FL3731_I2C_ADDRESS_SDA
+
#define DRIVER_1_LED_TOTAL 25
#define DRIVER_2_LED_TOTAL 24
#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL)
@@ -50,12 +50,12 @@ Here is an example using 2 drivers.
!> Note the parentheses, this is so when `RGB_MATRIX_LED_COUNT` is used in code and expanded, the values are added together before any additional math is applied to them. As an example, `rand() % (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL)` will give very different results than `rand() % DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL`.
-For split keyboards using `RGB_MATRIX_SPLIT` with an LED driver, you can either have the same driver address or different driver addresses. If using different addresses, use `DRIVER_ADDR_1` for one and `DRIVER_ADDR_2` for the other one. Then, in `g_is31_leds`, fill out the correct driver index (0 or 1). If using one address, use `DRIVER_ADDR_1` for both, and use index 0 for `g_is31_leds`.
+For split keyboards using `RGB_MATRIX_SPLIT` with an LED driver, you can either have the same driver address or different driver addresses. If using different addresses, use `IS31FL3731_I2C_ADDRESS_1` for one and `IS31FL3731_I2C_ADDRESS_2` for the other one. Then, in `g_is31fl3731_leds`, fill out the correct driver index (0 or 1). If using one address, use `IS31FL3731_I2C_ADDRESS_1` for both, and use index 0 for `g_is31fl3731_leds`.
Define these arrays listing all the LEDs in your `<keyboard>.c`:
```c
-const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = {
+const is31fl3731_led_t PROGMEM g_is31fl3731_leds[RGB_MATRIX_LED_COUNT] = {
/* Refer to IS31 manual for these locations
* driver
* | R location
@@ -83,34 +83,33 @@ You can use between 1 and 4 IS31FL3733 IC's. Do not specify `DRIVER_ADDR_<N>` de
| Variable | Description | Default |
|----------|-------------|---------|
-| `ISSI_TIMEOUT` | (Optional) How long to wait for i2c messages, in milliseconds | 100 |
-| `ISSI_PERSISTENCE` | (Optional) Retry failed messages this many times | 0 |
-| `ISSI_PWM_FREQUENCY` | (Optional) PWM Frequency Setting - IS31FL3733B only | 0 |
-| `ISSI_GLOBALCURRENT` | (Optional) Configuration for the Global Current Register | 0xFF |
-| `ISSI_SWPULLUP` | (Optional) Set the value of the SWx lines on-chip de-ghosting resistors | PUR_0R (Disabled) |
-| `ISSI_CSPULLUP` | (Optional) Set the value of the CSx lines on-chip de-ghosting resistors | PUR_0R (Disabled) |
-| `DRIVER_COUNT` | (Required) How many RGB driver IC's are present | |
+| `IS31FL3733_I2C_TIMEOUT` | (Optional) How long to wait for i2c messages, in milliseconds | 100 |
+| `IS31FL3733_I2C_PERSISTENCE` | (Optional) Retry failed messages this many times | 0 |
+| `IS31FL3733_PWM_FREQUENCY` | (Optional) PWM Frequency Setting - IS31FL3733B only | 0 |
+| `IS31FL3733_GLOBALCURRENT` | (Optional) Configuration for the Global Current Register | 0xFF |
+| `IS31FL3733_SWPULLUP` | (Optional) Set the value of the SWx lines on-chip de-ghosting resistors | PUR_0R (Disabled) |
+| `IS31FL3733_CSPULLUP` | (Optional) Set the value of the CSx lines on-chip de-ghosting resistors | PUR_0R (Disabled) |
| `RGB_MATRIX_LED_COUNT` | (Required) How many RGB lights are present across all drivers | |
-| `DRIVER_ADDR_1` | (Required) Address for the first RGB driver | |
-| `DRIVER_ADDR_2` | (Optional) Address for the second RGB driver | |
-| `DRIVER_ADDR_3` | (Optional) Address for the third RGB driver | |
-| `DRIVER_ADDR_4` | (Optional) Address for the fourth RGB driver | |
-| `DRIVER_SYNC_1` | (Optional) Sync configuration for the first RGB driver | 0 |
-| `DRIVER_SYNC_2` | (Optional) Sync configuration for the second RGB driver | 0 |
-| `DRIVER_SYNC_3` | (Optional) Sync configuration for the third RGB driver | 0 |
-| `DRIVER_SYNC_4` | (Optional) Sync configuration for the fourth RGB driver | 0 |
-
-The IS31FL3733 IC's have on-chip resistors that can be enabled to allow for de-ghosting of the RGB matrix. By default these resistors are not enabled (`ISSI_SWPULLUP`/`ISSI_CSPULLUP` are given the value of`PUR_0R`), the values that can be set to enable de-ghosting are as follows:
-
-| `ISSI_SWPULLUP/ISSI_CSPULLUP` | Description |
+| `IS31FL3733_I2C_ADDRESS_1` | (Required) Address for the first RGB driver | |
+| `IS31FL3733_I2C_ADDRESS_2` | (Optional) Address for the second RGB driver | |
+| `IS31FL3733_I2C_ADDRESS_3` | (Optional) Address for the third RGB driver | |
+| `IS31FL3733_I2C_ADDRESS_4` | (Optional) Address for the fourth RGB driver | |
+| `IS31FL3733_SYNC_1` | (Optional) Sync configuration for the first RGB driver | 0 |
+| `IS31FL3733_SYNC_2` | (Optional) Sync configuration for the second RGB driver | 0 |
+| `IS31FL3733_SYNC_3` | (Optional) Sync configuration for the third RGB driver | 0 |
+| `IS31FL3733_SYNC_4` | (Optional) Sync configuration for the fourth RGB driver | 0 |
+
+The IS31FL3733 IC's have on-chip resistors that can be enabled to allow for de-ghosting of the RGB matrix. By default these resistors are not enabled (`IS31FL3733_SWPULLUP`/`IS31FL3733_CSPULLUP` are given the value of `IS31FL3733_PUR_0R`), the values that can be set to enable de-ghosting are as follows:
+
+| `IS31FL3733_SWPULLUP/IS31FL3733_CSPULLUP` | Description |
|----------------------|-------------|
-| `PUR_0R` | (default) Do not use the on-chip resistors/enable de-ghosting |
-| `PUR_05KR` | The 0.5k Ohm resistor used during blanking period (t_NOL) |
-| `PUR_3KR` | The 3k Ohm resistor used at all times |
-| `PUR_4KR` | The 4k Ohm resistor used at all times |
-| `PUR_8KR` | The 8k Ohm resistor used at all times |
-| `PUR_16KR` | The 16k Ohm resistor used at all times |
-| `PUR_32KR` | The 32k Ohm resistor used during blanking period (t_NOL) |
+| `IS31FL3733_PUR_0R` | (default) Do not use the on-chip resistors/enable de-ghosting |
+| `IS31FL3733_PUR_05KR` | The 0.5k Ohm resistor used during blanking period (t_NOL) |
+| `IS31FL3733_PUR_3KR` | The 3k Ohm resistor used at all times |
+| `IS31FL3733_PUR_4KR` | The 4k Ohm resistor used at all times |
+| `IS31FL3733_PUR_8KR` | The 8k Ohm resistor used at all times |
+| `IS31FL3733_PUR_16KR` | The 16k Ohm resistor used at all times |
+| `IS31FL3733_PUR_32KR` | The 32k Ohm resistor used during blanking period (t_NOL) |
Here is an example using 2 drivers.
@@ -118,17 +117,16 @@ Here is an example using 2 drivers.
// This is a 7-bit address, that gets left-shifted and bit 0
// set to 0 for write, 1 for read (as per I2C protocol)
// The address will vary depending on your wiring:
-// 00 <-> GND
-// 01 <-> SCL
-// 10 <-> SDA
-// 11 <-> VCC
+// 00 ADDRn <-> GND
+// 01 ADDRn <-> SCL
+// 10 ADDRn <-> SDA
+// 11 ADDRn <-> VCC
// ADDR1 represents A1:A0 of the 7-bit address.
// ADDR2 represents A3:A2 of the 7-bit address.
// The result is: 0b101(ADDR2)(ADDR1)
-#define DRIVER_ADDR_1 0b1010000
-#define DRIVER_ADDR_2 0b1010011
+#define IS31FL3733_I2C_ADDRESS_1 IS31FL3733_I2C_ADDRESS_GND_GND
+#define IS31FL3733_I2C_ADDRESS_2 IS31FL3733_I2C_ADDRESS_GND_VCC
-#define DRIVER_COUNT 2
#define DRIVER_1_LED_TOTAL 58
#define DRIVER_2_LED_TOTAL 10
#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL)
@@ -141,7 +139,7 @@ Currently only 4 drivers are supported, but it would be trivial to support all 8
Define these arrays listing all the LEDs in your `<keyboard>.c`:
```c
-const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = {
+const is31fl3733_led_t PROGMEM g_is31fl3733_leds[RGB_MATRIX_LED_COUNT] = {
/* Refer to IS31 manual for these locations
* driver
* | R location
@@ -170,31 +168,30 @@ Configure the hardware via your `config.h`:
| Variable | Description | Default |
|----------|-------------|---------|
-| `ISSI_TIMEOUT` | (Optional) How long to wait for i2c messages, in milliseconds | 100 |
-| `ISSI_PERSISTENCE` | (Optional) Retry failed messages this many times | 0 |
-| `ISSI_PWM_FREQUENCY` | (Optional) PWM Frequency Setting - IS31FL3736B only | 0 |
-| `ISSI_GLOBALCURRENT` | (Optional) Configuration for the Global Current Register | 0xFF |
-| `ISSI_SWPULLUP` | (Optional) Set the value of the SWx lines on-chip de-ghosting resistors | PUR_0R (Disabled) |
-| `ISSI_CSPULLUP` | (Optional) Set the value of the CSx lines on-chip de-ghosting resistors | PUR_0R (Disabled) |
-| `DRIVER_COUNT` | (Required) How many RGB driver IC's are present | |
+| `IS31FL3736_I2C_TIMEOUT` | (Optional) How long to wait for i2c messages, in milliseconds | 100 |
+| `IS31FL3736_PERSISTENCE` | (Optional) Retry failed messages this many times | 0 |
+| `IS31FL3736_PWM_FREQUENCY` | (Optional) PWM Frequency Setting - IS31FL3736B only | 0 |
+| `IS31FL3736_GLOBALCURRENT` | (Optional) Configuration for the Global Current Register | 0xFF |
+| `IS31FL3736_SWPULLUP` | (Optional) Set the value of the SWx lines on-chip de-ghosting resistors | PUR_0R (Disabled) |
+| `IS31FL3736_CSPULLUP` | (Optional) Set the value of the CSx lines on-chip de-ghosting resistors | PUR_0R (Disabled) |
| `RGB_MATRIX_LED_COUNT` | (Required) How many RGB lights are present across all drivers | |
-| `DRIVER_ADDR_1` | (Required) Address for the first RGB driver | |
-| `DRIVER_ADDR_2` | (Optional) Address for the second RGB driver | |
-| `DRIVER_ADDR_3` | (Optional) Address for the third RGB driver | |
-| `DRIVER_ADDR_4` | (Optional) Address for the fourth RGB driver | |
+| `IS31FL3736_I2C_ADDRESS_1` | (Required) Address for the first RGB driver | |
+| `IS31FL3736_I2C_ADDRESS_2` | (Optional) Address for the second RGB driver | |
+| `IS31FL3736_I2C_ADDRESS_3` | (Optional) Address for the third RGB driver | |
+| `IS31FL3736_I2C_ADDRESS_4` | (Optional) Address for the fourth RGB driver | |
-The IS31FL3736 IC's have on-chip resistors that can be enabled to allow for de-ghosting of the RGB matrix. By default these resistors are not enabled (`ISSI_SWPULLUP`/`ISSI_CSPULLUP` are given the value of`PUR_0R`), the values that can be set to enable de-ghosting are as follows:
+The IS31FL3736 IC's have on-chip resistors that can be enabled to allow for de-ghosting of the RGB matrix. By default these resistors are not enabled (`IS31FL3736_SWPULLUP`/`IS31FL3736_CSPULLUP` are given the value of `IS31FL3736_PUR_0R`), the values that can be set to enable de-ghosting are as follows:
-| `ISSI_SWPULLUP/ISSI_CSPULLUP` | Description |
+| `IS31FL3736_SWPULLUP/IS31FL3736_CSPULLUP` | Description |
|----------------------|-------------|
-| `PUR_0R` | (default) Do not use the on-chip resistors/enable de-ghosting |
-| `PUR_05KR` | The 0.5k Ohm resistor used during blanking period (t_NOL) |
-| `PUR_1KR` | The 1k Ohm resistor used during blanking period (t_NOL) |
-| `PUR_2KR` | The 2k Ohm resistor used during blanking period (t_NOL) |
-| `PUR_4KR` | The 4k Ohm resistor used during blanking period (t_NOL) |
-| `PUR_8KR` | The 8k Ohm resistor during blanking period (t_NOL) |
-| `PUR_16KR` | The 16k Ohm resistor during blanking period (t_NOL) |
-| `PUR_32KR` | The 32k Ohm resistor used during blanking period (t_NOL) |
+| `IS31FL3736_PUR_0R` | (default) Do not use the on-chip resistors/enable de-ghosting |
+| `IS31FL3736_PUR_05KR` | The 0.5k Ohm resistor used during blanking period (t_NOL) |
+| `IS31FL3736_PUR_1KR` | The 1k Ohm resistor used during blanking period (t_NOL) |
+| `IS31FL3736_PUR_2KR` | The 2k Ohm resistor used during blanking period (t_NOL) |
+| `IS31FL3736_PUR_4KR` | The 4k Ohm resistor used during blanking period (t_NOL) |
+| `IS31FL3736_PUR_8KR` | The 8k Ohm resistor during blanking period (t_NOL) |
+| `IS31FL3736_PUR_16KR` | The 16k Ohm resistor during blanking period (t_NOL) |
+| `IS31FL3736_PUR_32KR` | The 32k Ohm resistor used during blanking period (t_NOL) |
Here is an example using 2 drivers.
@@ -202,16 +199,16 @@ Here is an example using 2 drivers.
// This is a 7-bit address, that gets left-shifted and bit 0
// set to 0 for write, 1 for read (as per I2C protocol)
// The address will vary depending on your wiring:
-// 0000 <-> GND
-// 0101 <-> SCL
-// 1010 <-> SDA
-// 1111 <-> VCC
-// ADDR represents A3:A0 of the 7-bit address.
-// The result is: 0b101(ADDR)
-#define DRIVER_ADDR_1 0b1010000
-#define DRIVER_ADDR_2 0b1010001
+// 00 ADDRn <-> GND
+// 01 ADDRn <-> SCL
+// 10 ADDRn <-> SDA
+// 11 ADDRn <-> VCC
+// ADDR1 represents A1:A0 of the 7-bit address.
+// ADDR2 represents A3:A2 of the 7-bit address.
+// The result is: 0b101(ADDR2)(ADDR1)
+#define IS31FL3736_I2C_ADDRESS_1 IS31FL3736_I2C_ADDRESS_GND_GND
+#define IS31FL3736_I2C_ADDRESS_2 IS31FL3736_I2C_ADDRESS_GND_SCL
-#define DRIVER_COUNT 2
#define DRIVER_1_LED_TOTAL 30
#define DRIVER_2_LED_TOTAL 32
#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL)
@@ -221,7 +218,7 @@ Here is an example using 2 drivers.
Define these arrays listing all the LEDs in your `<keyboard>.c`:
```c
-const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = {
+const is31fl3736_led_t PROGMEM g_is31fl3736_leds[RGB_MATRIX_LED_COUNT] = {
/* Refer to IS31 manual for these locations
* driver
* | R location
@@ -246,31 +243,30 @@ Configure the hardware via your `config.h`:
| Variable | Description | Default |
|----------|-------------|---------|
-| `ISSI_TIMEOUT` | (Optional) How long to wait for i2c messages, in milliseconds | 100 |
-| `ISSI_PERSISTENCE` | (Optional) Retry failed messages this many times | 0 |
-| `ISSI_PWM_FREQUENCY` | (Optional) PWM Frequency Setting - IS31FL3737B only | 0 |
-| `ISSI_GLOBALCURRENT` | (Optional) Configuration for the Global Current Register | 0xFF |
-| `ISSI_SWPULLUP` | (Optional) Set the value of the SWx lines on-chip de-ghosting resistors | PUR_0R (Disabled) |
-| `ISSI_CSPULLUP` | (Optional) Set the value of the CSx lines on-chip de-ghosting resistors | PUR_0R (Disabled) |
-| `DRIVER_COUNT` | (Required) How many RGB driver IC's are present | |
+| `IS31FL3737_I2C_TIMEOUT` | (Optional) How long to wait for i2c messages, in milliseconds | 100 |
+| `IS31FL3737_I2C_PERSISTENCE` | (Optional) Retry failed messages this many times | 0 |
+| `IS31FL3737_PWM_FREQUENCY` | (Optional) PWM Frequency Setting - IS31FL3737B only | 0 |
+| `IS31FL3737_GLOBALCURRENT` | (Optional) Configuration for the Global Current Register | 0xFF |
+| `IS31FL3737_SWPULLUP` | (Optional) Set the value of the SWx lines on-chip de-ghosting resistors | PUR_0R (Disabled) |
+| `IS31FL3737_CSPULLUP` | (Optional) Set the value of the CSx lines on-chip de-ghosting resistors | PUR_0R (Disabled) |
| `RGB_MATRIX_LED_COUNT` | (Required) How many RGB lights are present across all drivers | |
-| `DRIVER_ADDR_1` | (Required) Address for the first RGB driver | |
-| `DRIVER_ADDR_2` | (Optional) Address for the second RGB driver | |
-| `DRIVER_ADDR_3` | (Optional) Address for the third RGB driver | |
-| `DRIVER_ADDR_4` | (Optional) Address for the fourth RGB driver | |
+| `IS31FL3737_I2C_ADDRESS_1` | (Required) Address for the first RGB driver | |
+| `IS31FL3737_I2C_ADDRESS_2` | (Optional) Address for the second RGB driver | |
+| `IS31FL3737_I2C_ADDRESS_3` | (Optional) Address for the third RGB driver | |
+| `IS31FL3737_I2C_ADDRESS_4` | (Optional) Address for the fourth RGB driver | |
-The IS31FL3737 IC's have on-chip resistors that can be enabled to allow for de-ghosting of the RGB matrix. By default these resistors are not enabled (`ISSI_SWPULLUP`/`ISSI_CSPULLUP` are given the value of`PUR_0R`), the values that can be set to enable de-ghosting are as follows:
+The IS31FL3737 IC's have on-chip resistors that can be enabled to allow for de-ghosting of the RGB matrix. By default these resistors are not enabled (`IS31FL3737_SWPULLUP`/`IS31FL3737_CSPULLUP` are given the value of `IS31FL3737_PUR_0R`), the values that can be set to enable de-ghosting are as follows:
-| `ISSI_SWPULLUP/ISSI_CSPULLUP` | Description |
+| `IS31FL3737_SWPULLUP/IS31FL3737_CSPULLUP` | Description |
|----------------------|-------------|
-| `PUR_0R` | (default) Do not use the on-chip resistors/enable de-ghosting |
-| `PUR_05KR` | The 0.5k Ohm resistor used during blanking period (t_NOL) |
-| `PUR_1KR` | The 1k Ohm resistor used during blanking period (t_NOL) |
-| `PUR_2KR` | The 2k Ohm resistor used during blanking period (t_NOL) |
-| `PUR_4KR` | The 4k Ohm resistor used during blanking period (t_NOL) |
-| `PUR_8KR` | The 8k Ohm resistor during blanking period (t_NOL) |
-| `PUR_16KR` | The 16k Ohm resistor during blanking period (t_NOL) |
-| `PUR_32KR` | The 32k Ohm resistor used during blanking period (t_NOL) |
+| `IS31FL3737_PUR_0R` | (default) Do not use the on-chip resistors/enable de-ghosting |
+| `IS31FL3737_PUR_05KR` | The 0.5k Ohm resistor used during blanking period (t_NOL) |
+| `IS31FL3737_PUR_1KR` | The 1k Ohm resistor used during blanking period (t_NOL) |
+| `IS31FL3737_PUR_2KR` | The 2k Ohm resistor used during blanking period (t_NOL) |
+| `IS31FL3737_PUR_4KR` | The 4k Ohm resistor used during blanking period (t_NOL) |
+| `IS31FL3737_PUR_8KR` | The 8k Ohm resistor during blanking period (t_NOL) |
+| `IS31FL3737_PUR_16KR` | The 16k Ohm resistor during blanking period (t_NOL) |
+| `IS31FL3737_PUR_32KR` | The 32k Ohm resistor used during blanking period (t_NOL) |
Here is an example using 2 drivers.
@@ -278,16 +274,15 @@ Here is an example using 2 drivers.
// This is a 7-bit address, that gets left-shifted and bit 0
// set to 0 for write, 1 for read (as per I2C protocol)
// The address will vary depending on your wiring:
-// 0000 <-> GND
-// 0101 <-> SCL
-// 1010 <-> SDA
-// 1111 <-> VCC
+// 0000 ADDR <-> GND
+// 0101 ADDR <-> SCL
+// 1010 ADDR <-> SDA
+// 1111 ADDR <-> VCC
// ADDR represents A3:A0 of the 7-bit address.
// The result is: 0b101(ADDR)
-#define DRIVER_ADDR_1 0b1010000
-#define DRIVER_ADDR_2 0b1010001
+#define IS31FL3737_I2C_ADDRESS_1 IS31FL3737_I2C_ADDRESS_GND
+#define IS31FL3737_I2C_ADDRESS_2 IS31FL3737_I2C_ADDRESS_SCL
-#define DRIVER_COUNT 2
#define DRIVER_1_LED_TOTAL 30
#define DRIVER_2_LED_TOTAL 36
#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL)
@@ -297,7 +292,7 @@ Here is an example using 2 drivers.
Define these arrays listing all the LEDs in your `<keyboard>.c`:
```c
-const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = {
+const is31fl3737_led_t PROGMEM g_is31fl3737_leds[RGB_MATRIX_LED_COUNT] = {
/* Refer to IS31 manual for these locations
* driver
* | R location
@@ -338,7 +333,6 @@ Configure the hardware via your `config.h`:
|----------|-------------|---------|
| `ISSI_TIMEOUT` | (Optional) How long to wait for i2c messages, in milliseconds | 100 |
| `ISSI_PERSISTENCE` | (Optional) Retry failed messages this many times | 0 |
-| `DRIVER_COUNT` | (Required) How many RGB driver IC's are present | |
| `RGB_MATRIX_LED_COUNT` | (Required) How many RGB lights are present across all drivers | |
| `DRIVER_ADDR_1` | (Optional) Address for the first RGB driver | |
| `DRIVER_ADDR_<N>` | (Required) Address for the additional RGB drivers | |
@@ -373,7 +367,6 @@ Here is an example using 2 drivers.
```c
#define DRIVER_ADDR_2 0b0100001
-#define DRIVER_COUNT 2
#define DRIVER_1_LED_TOTAL 66
#define DRIVER_2_LED_TOTAL 42
#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL)
@@ -407,7 +400,7 @@ Then Define the array listing all the LEDs you want to override in your `<keyboa
```c
const is31_led PROGMEM g_is31_scaling[ISSI_MANUAL_SCALING] = {
- * LED Index
+/* LED Index
* | R scaling
* | | G scaling
* | | | B scaling
@@ -465,41 +458,39 @@ Configure the hardware via your `config.h`:
```
---
-### AW20216 :id=aw20216
-There is basic support for addressable RGB matrix lighting with the SPI AW20216 RGB controller. To enable it, add this to your `rules.mk`:
+### AW20216S :id=aw20216s
+There is basic support for addressable RGB matrix lighting with the SPI AW20216S RGB controller. To enable it, add this to your `rules.mk`:
```make
RGB_MATRIX_ENABLE = yes
-RGB_MATRIX_DRIVER = aw20216
+RGB_MATRIX_DRIVER = aw20216s
```
-You can use up to 2 AW20216 IC's. Do not specify `DRIVER_<N>_xxx` defines for IC's that are not present on your keyboard. You can define the following items in `config.h`:
+You can use up to 2 AW20216S IC's. Do not specify `DRIVER_<N>_xxx` defines for IC's that are not present on your keyboard. You can define the following items in `config.h`:
| Variable | Description | Default |
|----------|-------------|---------|
-| `DRIVER_1_CS` | (Required) MCU pin connected to first RGB driver chip select line | B13 |
-| `DRIVER_2_CS` | (Optional) MCU pin connected to second RGB driver chip select line | |
-| `DRIVER_1_EN` | (Required) MCU pin connected to first RGB driver hardware enable line | C13 |
-| `DRIVER_2_EN` | (Optional) MCU pin connected to second RGB driver hardware enable line | |
+| `AW20216S_CS_PIN_1` | (Required) MCU pin connected to first RGB driver chip select line | B13 |
+| `AW20216S_CS_PIN_2` | (Optional) MCU pin connected to second RGB driver chip select line | |
+| `AW20216S_EN_PIN_1` | (Required) MCU pin connected to first RGB driver hardware enable line | C13 |
+| `AW20216S_EN_PIN_2` | (Optional) MCU pin connected to second RGB driver hardware enable line | |
| `DRIVER_1_LED_TOTAL` | (Required) How many RGB lights are connected to first RGB driver | |
| `DRIVER_2_LED_TOTAL` | (Optional) How many RGB lights are connected to second RGB driver | |
-| `DRIVER_COUNT` | (Required) How many RGB driver IC's are present | |
| `RGB_MATRIX_LED_COUNT` | (Required) How many RGB lights are present across all drivers | |
-| `AW_SCALING_MAX` | (Optional) LED current scaling value (0-255, higher values mean LED is brighter at full PWM) | 150 |
-| `AW_GLOBAL_CURRENT_MAX` | (Optional) Driver global current limit (0-255, higher values means the driver may consume more power) | 150 |
-| `AW_SPI_MODE` | (Optional) Mode for SPI communication (0-3, defines polarity and phase of the clock) | 3 |
-| `AW_SPI_DIVISOR` | (Optional) Clock divisor for SPI communication (powers of 2, smaller numbers means faster communication, should not be less than 4) | 4 |
+| `AW20216S_SCALING_MAX` | (Optional) LED current scaling value (0-255, higher values mean LED is brighter at full PWM) | 150 |
+| `AW20216S_GLOBAL_CURRENT_MAX` | (Optional) Driver global current limit (0-255, higher values means the driver may consume more power) | 150 |
+| `AW20216S_SPI_MODE` | (Optional) Mode for SPI communication (0-3, defines polarity and phase of the clock) | 3 |
+| `AW20216S_SPI_DIVISOR` | (Optional) Clock divisor for SPI communication (powers of 2, smaller numbers means faster communication, should not be less than 4) | 4 |
Here is an example using 2 drivers.
```c
-#define DRIVER_1_CS B13
-#define DRIVER_2_CS B14
+#define AW20216S_CS_PIN_1 B13
+#define AW20216S_CS_PIN_2 B14
// Hardware enable lines may be connected to the same pin
-#define DRIVER_1_EN C13
-#define DRIVER_2_EN C13
+#define AW20216S_EN_PIN_1 C13
+#define AW20216S_EN_PIN_2 C13
-#define DRIVER_COUNT 2
#define DRIVER_1_LED_TOTAL 66
#define DRIVER_2_LED_TOTAL 32
#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL)
@@ -510,10 +501,10 @@ Here is an example using 2 drivers.
Define these arrays listing all the LEDs in your `<keyboard>.c`:
```c
-const aw_led PROGMEM g_aw_leds[RGB_MATRIX_LED_COUNT] = {
-/* Each AW20216 channel is controlled by a register at some offset between 0x00
+const aw20216s_led_t PROGMEM g_aw20216s_leds[RGB_MATRIX_LED_COUNT] = {
+/* Each AW20216S channel is controlled by a register at some offset between 0x00
* and 0xD7 inclusive.
- * See drivers/awinic/aw20216.h for the mapping between register offsets and
+ * See drivers/led/aw20216s.h for the mapping between register offsets and
* driver pin locations.
* driver
* | R location
@@ -642,6 +633,7 @@ enum rgb_matrix_effects {
RGB_MATRIX_DUAL_BEACON, // Full gradient spinning around center of keyboard
RGB_MATRIX_RAINBOW_BEACON, // Full tighter gradient spinning around center of keyboard
RGB_MATRIX_RAINBOW_PINWHEELS, // Full dual gradients spinning two halfs of keyboard
+ RGB_MATRIX_FLOWER_BLOOMING, // Full tighter gradient of first half scrolling left to right and second half scrolling right to left
RGB_MATRIX_RAINDROPS, // Randomly changes a single key's hue
RGB_MATRIX_JELLYBEAN_RAINDROPS, // Randomly changes a single key's hue and saturation
RGB_MATRIX_HUE_BREATHING, // Hue shifts up a slight ammount at the same time, then shifts back
@@ -654,16 +646,20 @@ enum rgb_matrix_effects {
RGB_MATRIX_DIGITAL_RAIN, // That famous computer simulation
RGB_MATRIX_SOLID_REACTIVE_SIMPLE, // Pulses keys hit to hue & value then fades value out
RGB_MATRIX_SOLID_REACTIVE, // Static single hue, pulses keys hit to shifted hue then fades to current hue
- RGB_MATRIX_SOLID_REACTIVE_WIDE // Hue & value pulse near a single key hit then fades value out
- RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE // Hue & value pulse near multiple key hits then fades value out
- RGB_MATRIX_SOLID_REACTIVE_CROSS // Hue & value pulse the same column and row of a single key hit then fades value out
- RGB_MATRIX_SOLID_REACTIVE_MULTICROSS // Hue & value pulse the same column and row of multiple key hits then fades value out
- RGB_MATRIX_SOLID_REACTIVE_NEXUS // Hue & value pulse away on the same column and row of a single key hit then fades value out
- RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS // Hue & value pulse away on the same column and row of multiple key hits then fades value out
+ RGB_MATRIX_SOLID_REACTIVE_WIDE, // Hue & value pulse near a single key hit then fades value out
+ RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE, // Hue & value pulse near multiple key hits then fades value out
+ RGB_MATRIX_SOLID_REACTIVE_CROSS, // Hue & value pulse the same column and row of a single key hit then fades value out
+ RGB_MATRIX_SOLID_REACTIVE_MULTICROSS, // Hue & value pulse the same column and row of multiple key hits then fades value out
+ RGB_MATRIX_SOLID_REACTIVE_NEXUS, // Hue & value pulse away on the same column and row of a single key hit then fades value out
+ RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS, // Hue & value pulse away on the same column and row of multiple key hits then fades value out
RGB_MATRIX_SPLASH, // Full gradient & value pulse away from a single key hit then fades value out
RGB_MATRIX_MULTISPLASH, // Full gradient & value pulse away from multiple key hits then fades value out
RGB_MATRIX_SOLID_SPLASH, // Hue & value pulse away from a single key hit then fades value out
RGB_MATRIX_SOLID_MULTISPLASH, // Hue & value pulse away from multiple key hits then fades value out
+ RGB_MATRIX_STARLIGHT, // LEDs turn on and off at random at varying brightness, maintaining user set color
+ RGB_MATRIX_STARLIGHT_DUAL_HUE, // LEDs turn on and off at random at varying brightness, modifies user set hue by +- 30
+ RGB_MATRIX_STARLIGHT_DUAL_SAT, // LEDs turn on and off at random at varying brightness, modifies user set saturation by +- 30
+ RGB_MATRIX_RIVERFLOW, // Modification to breathing animation, offset's animation depending on key location to simulate a river flowing
RGB_MATRIX_EFFECT_MAX
};
```
@@ -694,6 +690,7 @@ You can enable a single effect by defining `ENABLE_[EFFECT_NAME]` in your `confi
|`#define ENABLE_RGB_MATRIX_DUAL_BEACON` |Enables `RGB_MATRIX_DUAL_BEACON` |
|`#define ENABLE_RGB_MATRIX_RAINBOW_BEACON` |Enables `RGB_MATRIX_RAINBOW_BEACON` |
|`#define ENABLE_RGB_MATRIX_RAINBOW_PINWHEELS` |Enables `RGB_MATRIX_RAINBOW_PINWHEELS` |
+|`#define ENABLE_RGB_MATRIX_FLOWER_BLOOMING` |Enables `RGB_MATRIX_FLOWER_BLOOMING` |
|`#define ENABLE_RGB_MATRIX_RAINDROPS` |Enables `RGB_MATRIX_RAINDROPS` |
|`#define ENABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS` |Enables `RGB_MATRIX_JELLYBEAN_RAINDROPS` |
|`#define ENABLE_RGB_MATRIX_HUE_BREATHING` |Enables `RGB_MATRIX_HUE_BREATHING` |
@@ -702,6 +699,10 @@ You can enable a single effect by defining `ENABLE_[EFFECT_NAME]` in your `confi
|`#define ENABLE_RGB_MATRIX_PIXEL_FRACTAL` |Enables `RGB_MATRIX_PIXEL_FRACTAL` |
|`#define ENABLE_RGB_MATRIX_PIXEL_FLOW` |Enables `RGB_MATRIX_PIXEL_FLOW` |
|`#define ENABLE_RGB_MATRIX_PIXEL_RAIN` |Enables `RGB_MATRIX_PIXEL_RAIN` |
+|`#define ENABLE_RGB_MATRIX_STARLIGHT` |Enables `RGB_MATRIX_STARLIGHT` |
+|`#define ENABLE_RGB_MATRIX_STARLIGHT_DUAL_HUE` |Enables `RGB_MATRIX_STARLIGHT_DUAL_HUE` |
+|`#define ENABLE_RGB_MATRIX_STARLIGHT_DUAL_SAT` |Enables `RGB_MATRIX_STARLIGHT_DUAL_SAT` |
+|`#define ENABLE_RGB_MATRIX_RIVERFLOW` |Enables `RGB_MATRIX_RIVERFLOW` |
|Framebuffer Defines |Description |
|------------------------------------------------------|----------------------------------------------|
@@ -875,6 +876,7 @@ These are defined in [`color.h`](https://github.com/qmk/qmk_firmware/blob/master
#define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_CYCLE_LEFT_RIGHT // Sets the default mode, if none has been set
#define RGB_MATRIX_DEFAULT_HUE 0 // Sets the default hue value, if none has been set
#define RGB_MATRIX_DEFAULT_SAT 255 // Sets the default saturation value, if none has been set
+#define RGB_MATRIX_DEFAULT_ON true // Sets the default enabled state, if none has been set
#define RGB_MATRIX_DEFAULT_VAL RGB_MATRIX_MAXIMUM_BRIGHTNESS // Sets the default brightness value, if none has been set
#define RGB_MATRIX_DEFAULT_SPD 127 // Sets the default animation speed, if none has been set
#define RGB_MATRIX_DISABLE_KEYCODES // disables control of rgb matrix by keycodes (must use code functions to control the feature)
diff --git a/docs/feature_rgblight.md b/docs/feature_rgblight.md
index 0288fb04b2..8a64454b0d 100644
--- a/docs/feature_rgblight.md
+++ b/docs/feature_rgblight.md
@@ -102,6 +102,7 @@ Your RGB lighting can be configured by placing these `#define`s in your `config.
|`RGBLIGHT_DEFAULT_SAT` |`UINT8_MAX` (255) |The default saturation to use upon clearing the EEPROM |
|`RGBLIGHT_DEFAULT_VAL` |`RGBLIGHT_LIMIT_VAL` |The default value (brightness) to use upon clearing the EEPROM |
|`RGBLIGHT_DEFAULT_SPD` |`0` |The default speed to use upon clearing the EEPROM |
+|`RGBLIGHT_DEFAULT_ON` |`true` |Enable RGB lighting upon clearing the EEPROM |
## Effects and Animations
@@ -370,9 +371,9 @@ If you need to change your RGB lighting in code, for example in a macro to chang
Example:
```c
-sethsv(HSV_WHITE, (LED_TYPE *)&led[0]); // led 0
-sethsv(HSV_RED, (LED_TYPE *)&led[1]); // led 1
-sethsv(HSV_GREEN, (LED_TYPE *)&led[2]); // led 2
+sethsv(HSV_WHITE, (rgb_led_t *)&led[0]); // led 0
+sethsv(HSV_RED, (rgb_led_t *)&led[1]); // led 1
+sethsv(HSV_GREEN, (rgb_led_t *)&led[2]); // led 2
rgblight_set(); // Utility functions do not call rgblight_set() automatically, so they need to be called explicitly.
```
@@ -551,3 +552,33 @@ rgblight_set_clipping_range(3, 4);
## Hardware Modification
If your keyboard lacks onboard underglow LEDs, you may often be able to solder on an RGB LED strip yourself. You will need to find an unused pin to wire to the data pin of your LED strip. Some keyboards may break out unused pins from the MCU to make soldering easier. The other two pins, VCC and GND, must also be connected to the appropriate power pins.
+
+## Velocikey
+
+Velocikey is a feature that lets you control the speed of lighting effects (like the Rainbow Swirl effect) with the speed of your typing. The faster you type, the faster the lights will go!
+
+### Usage
+For Velocikey to take effect, there are two steps. First, when compiling your keyboard, you'll need to set `VELOCIKEY_ENABLE=yes` in `rules.mk`, e.g.:
+
+```
+MOUSEKEY_ENABLE = no
+STENO_ENABLE = no
+EXTRAKEY_ENABLE = yes
+VELOCIKEY_ENABLE = yes
+```
+
+Then, while using your keyboard, you need to also turn it on with the `VK_TOGG` keycode, which toggles the feature on and off.
+
+The following light effects will all be controlled by Velocikey when it is enabled:
+ - RGB Breathing
+ - RGB Rainbow Mood
+ - RGB Rainbow Swirl
+ - RGB Snake
+ - RGB Knight
+
+Support for LED breathing effects is planned but not available yet.
+
+ As long as Velocikey is enabled, it will control the speed regardless of any other speed setting that your RGB lights are currently on.
+
+ ### Configuration
+ Velocikey doesn't currently support any configuration via keyboard settings. If you want to adjust something like the speed increase or decay rate, you would need to edit `velocikey.c` and adjust the values there to achieve the kinds of speeds that you like.
diff --git a/docs/feature_split_keyboard.md b/docs/feature_split_keyboard.md
index 1705ea9222..c67f04995b 100644
--- a/docs/feature_split_keyboard.md
+++ b/docs/feature_split_keyboard.md
@@ -298,7 +298,7 @@ This enables transmitting the pointing device status to the master side of the s
#define SPLIT_HAPTIC_ENABLE
```
-This enables triggering of haptic feedback on the slave side of the split keyboard. For DRV2605L this will send the mode, but for solenoids it is expected that the desired mode is already set up on the slave.
+This enables the triggering of haptic feedback on the slave side of the split keyboard. This will send information to the slave side such as the mode, dwell, and whether buzz is enabled.
```c
#define SPLIT_ACTIVITY_ENABLE
diff --git a/docs/feature_stenography.md b/docs/feature_stenography.md
index df4c9c6ad3..5ca3ea945f 100644
--- a/docs/feature_stenography.md
+++ b/docs/feature_stenography.md
@@ -104,7 +104,7 @@ After enabling stenography and optionally selecting a protocol, you may also nee
!> If you had *explicitly* set `VIRSTER_ENABLE = no`, none of the serial stenography protocols (GeminiPR, TX Bolt) will work properly. You are expected to either set it to `yes`, remove the line from your `rules.mk` or send the steno chords yourself in an alternative way using the [provided interceptable hooks](#interfacing-with-the-code).
-In your keymap, create a new layer for Plover, that you can fill in with the [steno keycodes](#keycode-reference) (you will need to include `keymap_steno.h`, see `planck/keymaps/steno/keymap.c` for an example). Remember to create a key to switch to the layer as well as a key for exiting the layer.
+In your keymap, create a new layer for Plover, that you can fill in with the [steno keycodes](#keycode-reference). Remember to create a key to switch to the layer as well as a key for exiting the layer.
Once you have your keyboard flashed, launch Plover. Click the 'Configure...' button. In the 'Machine' tab, select the Stenotype Machine that corresponds to your desired protocol. Click the 'Configure...' button on this tab and enter the serial port or click 'Scan'. Baud rate is fine at 9600 (although you should be able to set as high as 115200 with no issues). Use the default settings for everything else (Data Bits: 8, Stop Bits: 1, Parity: N, no flow control).
@@ -149,8 +149,6 @@ At the end of this scenario given as an example, `chord` would have five bits se
## Keycode Reference :id=keycode-reference
-You must include `keymap_steno.h` to your `keymap.c` with `#include "keymap_steno.h"` before you can use these keycodes
-
> Note: TX Bolt does not support the full set of keys. The TX Bolt implementation in QMK will map the GeminiPR keys to the nearest TX Bolt key so that one key map will work for both.
|GeminiPR|TX Bolt|Steno Key|
@@ -198,7 +196,7 @@ You must include `keymap_steno.h` to your `keymap.c` with `#include "keymap_sten
|`STN_RES2`||(Reset 2)|
|`STN_PWR`||(Power)|
-If you do not want to hit two keys with one finger combined keycodes can be used. These are also defined in `keymap_steno.h`, and causes both keys to be reported as pressed or released. To use these keycodes define `STENO_COMBINEDMAP` in your `config.h` file.
+If you do not want to hit two keys with one finger combined keycodes can be used. These cause both keys to be reported as pressed or released. To use these keycodes define `STENO_COMBINEDMAP` in your `config.h` file.
|Combined key | Key1 | Key 2 |
|---------------|--------|----------|
diff --git a/docs/feature_velocikey.md b/docs/feature_velocikey.md
deleted file mode 100644
index aeb1865e8a..0000000000
--- a/docs/feature_velocikey.md
+++ /dev/null
@@ -1,29 +0,0 @@
-# Velocikey
-
-Velocikey is a feature that lets you control the speed of lighting effects (like the Rainbow Swirl effect) with the speed of your typing. The faster you type, the faster the lights will go!
-
-## Usage
-For Velocikey to take effect, there are two steps. First, when compiling your keyboard, you'll need to set `VELOCIKEY_ENABLE=yes` in `rules.mk`, e.g.:
-
-```
-MOUSEKEY_ENABLE = no
-STENO_ENABLE = no
-EXTRAKEY_ENABLE = yes
-VELOCIKEY_ENABLE = yes
-```
-
-Then, while using your keyboard, you need to also turn it on with the `VK_TOGG` keycode, which toggles the feature on and off.
-
-The following light effects will all be controlled by Velocikey when it is enabled:
- - RGB Breathing
- - RGB Rainbow Mood
- - RGB Rainbow Swirl
- - RGB Snake
- - RGB Knight
-
-Support for LED breathing effects is planned but not available yet.
-
- As long as Velocikey is enabled, it will control the speed regardless of any other speed setting that your RGB lights are currently on.
-
- ## Configuration
- Velocikey doesn't currently support any configuration via keyboard settings. If you want to adjust something like the speed increase or decay rate, you would need to edit `velocikey.c` and adjust the values there to achieve the kinds of speeds that you like.
diff --git a/docs/i2c_driver.md b/docs/i2c_driver.md
index 92b666b5e3..faff0a1d7b 100644
--- a/docs/i2c_driver.md
+++ b/docs/i2c_driver.md
@@ -2,6 +2,18 @@
The I2C Master drivers used in QMK have a set of common functions to allow portability between MCUs.
+## Usage :id=usage
+
+In most cases, the I2C Master driver code is automatically included if you are using a feature or driver which requires it, such as [OLED](feature_oled_driver.md).
+
+However, if you need to use the driver standalone, add the following to your `rules.mk`:
+
+```make
+I2C_DRIVER_REQUIRED = yes
+```
+
+You can then call the I2C API by including `i2c_master.h` in your code.
+
## I2C Addressing :id=note-on-i2c-addresses
All of the addresses expected by this driver should be pushed to the upper 7 bits of the address byte. Setting
diff --git a/docs/ja/_summary.md b/docs/ja/_summary.md
index 4d6f2348d5..f26665e614 100644
--- a/docs/ja/_summary.md
+++ b/docs/ja/_summary.md
@@ -112,7 +112,6 @@
* [分割キーボード](ja/feature_split_keyboard.md)
* [速記](ja/feature_stenography.md)
* [感熱式プリンタ](ja/feature_thermal_printer.md)
- * [Velocikey](ja/feature_velocikey.md)
* QMK の開発
* [PR チェックリスト](ja/pr_checklist.md)
diff --git a/docs/ja/feature_velocikey.md b/docs/ja/feature_velocikey.md
deleted file mode 100644
index b13969a195..0000000000
--- a/docs/ja/feature_velocikey.md
+++ /dev/null
@@ -1,34 +0,0 @@
-# Velocikey
-
-<!---
- original document: 0.8.147:docs/feature_velocikey.md
- git diff 0.8.147 HEAD -- docs/feature_velocikey.md | cat
--->
-
-Velocikey は入力の速度を使って(レインボー渦巻効果のような)ライト効果の速度を制御できる機能です。速く入力すればするほどライトが速くなります!
-
-## 使用法
-Velocikey を使うためには、2つのステップがあります。最初に、キーボードをコンパイルする時に、`rules.mk` に `VELOCIKEY_ENABLE=yes` を設定する必要があります。例えば:
-
-```
-MOUSEKEY_ENABLE = no
-STENO_ENABLE = no
-EXTRAKEY_ENABLE = yes
-VELOCIKEY_ENABLE = yes
-```
-
-次に、キーボードの使用中に、VLK_TOG キーコードを使って Velocikey を有効にする必要もあります。これは機能をオンおよびオフにします。
-
-以下の全てのライト効果が、Velocikey を有効にすることで制御されます:
-- RGB 明滅動作
-- RGB レインボームード
-- RGB レインボー渦巻
-- RGB スネーク
-- RGB ナイト
-
-LED 明滅動作の効果のサポートは計画されていますがまだ利用できません。
-
-Velocikey が有効になっている限り、現在オンになっている RGB ライトの他の全ての速度設定に関係なく、速度が制御されます。
-
-## 設定
-Velocikey は現在のところキーボード設定を介したどのような設定もサポートしません。速度の増加あるいは減少率などを調整したい場合は、`velocikey.c` を編集し、そこで値を調整して、好みの速度を実現する必要があります。
diff --git a/docs/newbs_external_userspace.md b/docs/newbs_external_userspace.md
new file mode 100644
index 0000000000..9bdf4b0b18
--- /dev/null
+++ b/docs/newbs_external_userspace.md
@@ -0,0 +1,96 @@
+# External QMK Userspace
+
+QMK Firmware now officially supports storing user keymaps outside of the normal QMK Firmware repository, allowing users to maintain their own keymaps without having to fork, modify, and maintain a copy of QMK Firmware themselves.
+
+External Userspace mirrors the structure of the main QMK Firmware repository, but only contains the keymaps that you wish to build. You can still use `keyboards/<my keyboard>/keymaps/<my keymap>` to store your keymaps, or you can use the `layouts/<my layout>/<my keymap>` system as before -- they're just stored external to QMK Firmware.
+
+The build system will still honor the use of `users/<my keymap>` if you rely on the traditional QMK Firmware [userspace feature](feature_userspace.md) -- it's now supported externally too, using the same location inside the External Userspace directory.
+
+Additionally, there is first-class support for using GitHub Actions to build your keymaps, allowing you to automatically compile your keymaps whenever you push changes to your External Userspace repository.
+
+!> External Userspace is new functionality and may have issues. Tighter integration with the `qmk` command will occur over time.
+
+?> Historical keymap.json and GitHub-based firmware build instructions can be found [here](newbs_building_firmware_workflow.md). This document supersedes those instructions, but they should still function correctly.
+
+## Setting up QMK Locally
+
+If you wish to build on your local machine, you will need to set up QMK locally. This is a one-time process, and is documented in the [newbs setup guide](https://docs.qmk.fm/#/newbs).
+
+!> If you wish to use any QMK CLI commands related to manipulating External Userspace definitions, you will currently need a copy of QMK Firmware as well.
+
+!> Building locally has a much shorter turnaround time than waiting for GitHub Actions to complete.
+
+## External Userspace Repository Setup (forked on GitHub)
+
+A basic skeleton External Userspace repository can be found [here](https://github.com/qmk/qmk_userspace). If you wish to keep your keymaps on GitHub (strongly recommended!), you can fork the repository and use it as a base:
+
+![Userspace Fork](https://i.imgur.com/hcegguh.png)
+
+Going ahead with your fork will copy it to your account, at which point you can clone it to your local machine and begin adding your keymaps:
+
+![Userspace Clone](https://i.imgur.com/CWYmsk8.png)
+
+```sh
+cd $HOME
+git clone https://github.com/{myusername}/qmk_userspace.git
+qmk config user.overlay_dir="$(realpath qmk_userspace)"
+```
+
+## External Userspace Setup (locally stored only)
+
+If you don't want to use GitHub and prefer to keep everything local, you can clone a copy of the default External Userspace locally instead:
+
+```sh
+cd $HOME
+git clone https://github.com/qmk/qmk_userspace.git
+qmk config user.overlay_dir="$(realpath qmk_userspace)"
+```
+
+## Adding a Keymap
+
+_These instructions assume you have already set up QMK locally, and have a copy of the QMK Firmware repository on your machine._
+
+Keymaps within External Userspace are defined in the same way as they are in the main QMK repository. You can either use the `qmk new-keymap` command to create a new keymap, or manually create a new directory in the `keyboards` directory.
+
+Alternatively, you can use the `layouts` directory to store your keymaps, using the same layout system as the main QMK repository -- if you choose to do so you'll want to use the path `layouts/<layout name>/<keymap name>/keymap.*` to store your keymap files, where `layout name` matches an existing layout in QMK, such as `tkl_ansi`.
+
+After creating your new keymap, building the keymap matches normal QMK usage:
+
+```sh
+qmk compile -kb <keyboard> -km <keymap>
+```
+
+!> The `qmk config user.overlay_dir=...` command must have been run when cloning the External Userspace repository for this to work correctly.
+
+## Adding the keymap to External Userspace build targets
+
+Once you have created your keymap, if you want to use GitHub Actions to build your firmware, you will need to add it to the External Userspace build targets. This is done using the `qmk userspace-add` command:
+
+```sh
+# for a keyboard/keymap combo:
+qmk userspace-add -kb <keyboard> -km <keymap>
+# or, for a json-based keymap (if kept "loose"):
+qmk userspace-add <relative/path/to/my/keymap.json>
+```
+
+This updates the `qmk.json` file in the root of your External Userspace directory. If you're using a git repository to store your keymaps, now is a great time to commit and push to your own fork.
+
+## Compiling External Userspace build targets
+
+Once you have added your keymaps to the External Userspace build targets, you can compile all of them at once using the `qmk userspace-compile` command:
+
+```sh
+qmk userspace-compile
+```
+
+All firmware builds you've added to the External Userspace build targets will be built, and the resulting firmware files will be placed in the root of your External Userspace directory.
+
+## Using GitHub Actions
+
+GitHub Actions can be used to automatically build your keymaps whenever you push changes to your External Userspace repository. If you have set up your list of build targets, this is as simple as enabling workflows in the GitHub repository settings:
+
+![Repo Settings](https://i.imgur.com/EVkxOt1.png)
+
+Any push will result in compilation of all configured builds, and once completed a new release containing the newly-minted firmware files will be created on GitHub, which you can subsequently download and flash to your keyboard:
+
+![Releases](https://i.imgur.com/zmwOL5P.png)
diff --git a/docs/quantum_painter.md b/docs/quantum_painter.md
index 5e399183f8..e8fa1bdece 100644
--- a/docs/quantum_painter.md
+++ b/docs/quantum_painter.md
@@ -13,22 +13,24 @@ QUANTUM_PAINTER_DRIVERS += ......
You will also likely need to select an appropriate driver in `rules.mk`, which is listed below.
-!> Quantum Painter is not currently integrated with system-level operations such as disabling displays after a configurable timeout, or when the keyboard goes into suspend. Users will need to handle this manually at the current time.
+!> Quantum Painter is not currently integrated with system-level operations such as when the keyboard goes into suspend. Users will need to handle this manually at the current time.
The QMK CLI can be used to convert from normal images such as PNG files or animated GIFs, as well as fonts from TTF files.
Supported devices:
-| Display Panel | Panel Type | Size | Comms Transport | Driver |
-|----------------|--------------------|------------------|-----------------|---------------------------------------------|
-| GC9A01 | RGB LCD (circular) | 240x240 | SPI + D/C + RST | `QUANTUM_PAINTER_DRIVERS += gc9a01_spi` |
-| ILI9163 | RGB LCD | 128x128 | SPI + D/C + RST | `QUANTUM_PAINTER_DRIVERS += ili9163_spi` |
-| ILI9341 | RGB LCD | 240x320 | SPI + D/C + RST | `QUANTUM_PAINTER_DRIVERS += ili9341_spi` |
-| ILI9488 | RGB LCD | 320x480 | SPI + D/C + RST | `QUANTUM_PAINTER_DRIVERS += ili9488_spi` |
-| SSD1351 | RGB OLED | 128x128 | SPI + D/C + RST | `QUANTUM_PAINTER_DRIVERS += ssd1351_spi` |
-| ST7735 | RGB LCD | 132x162, 80x160 | SPI + D/C + RST | `QUANTUM_PAINTER_DRIVERS += st7735_spi` |
-| ST7789 | RGB LCD | 240x320, 240x240 | SPI + D/C + RST | `QUANTUM_PAINTER_DRIVERS += st7789_spi` |
-| RGB565 Surface | Virtual | User-defined | None | `QUANTUM_PAINTER_DRIVERS += rgb565_surface` |
+| Display Panel | Panel Type | Size | Comms Transport | Driver |
+|---------------|--------------------|------------------|-----------------|------------------------------------------|
+| GC9A01 | RGB LCD (circular) | 240x240 | SPI + D/C + RST | `QUANTUM_PAINTER_DRIVERS += gc9a01_spi` |
+| ILI9163 | RGB LCD | 128x128 | SPI + D/C + RST | `QUANTUM_PAINTER_DRIVERS += ili9163_spi` |
+| ILI9341 | RGB LCD | 240x320 | SPI + D/C + RST | `QUANTUM_PAINTER_DRIVERS += ili9341_spi` |
+| ILI9488 | RGB LCD | 320x480 | SPI + D/C + RST | `QUANTUM_PAINTER_DRIVERS += ili9488_spi` |
+| SSD1351 | RGB OLED | 128x128 | SPI + D/C + RST | `QUANTUM_PAINTER_DRIVERS += ssd1351_spi` |
+| ST7735 | RGB LCD | 132x162, 80x160 | SPI + D/C + RST | `QUANTUM_PAINTER_DRIVERS += st7735_spi` |
+| ST7789 | RGB LCD | 240x320, 240x240 | SPI + D/C + RST | `QUANTUM_PAINTER_DRIVERS += st7789_spi` |
+| SH1106 (SPI) | Monochrome OLED | 128x64 | SPI + D/C + RST | `QUANTUM_PAINTER_DRIVERS += sh1106_spi` |
+| SH1106 (I2C) | Monochrome OLED | 128x64 | I2C | `QUANTUM_PAINTER_DRIVERS += sh1106_i2c` |
+| Surface | Virtual | User-defined | None | `QUANTUM_PAINTER_DRIVERS += surface` |
## Quantum Painter Configuration :id=quantum-painter-config
@@ -188,7 +190,8 @@ Writing /home/qmk/qmk_firmware/keyboards/my_keeb/generated/noto11.qff.c...
<!-- tabs:start -->
-### ** Common: Standard TFT (SPI + D/C + RST) **
+
+### ** LCD **
Most TFT display panels use a 5-pin interface -- SPI SCK, SPI MOSI, SPI CS, D/C, and RST pins.
@@ -302,32 +305,6 @@ The maximum number of displays can be configured by changing the following in yo
Native color format rgb888 is compatible with ILI9488
-#### ** SSD1351 **
-
-Enabling support for the SSD1351 in Quantum Painter is done by adding the following to `rules.mk`:
-
-```make
-QUANTUM_PAINTER_ENABLE = yes
-QUANTUM_PAINTER_DRIVERS += ssd1351_spi
-```
-
-Creating a SSD1351 device in firmware can then be done with the following API:
-
-```c
-painter_device_t qp_ssd1351_make_spi_device(uint16_t panel_width, uint16_t panel_height, pin_t chip_select_pin, pin_t dc_pin, pin_t reset_pin, uint16_t spi_divisor, int spi_mode);
-```
-
-The device handle returned from the `qp_ssd1351_make_spi_device` function can be used to perform all other drawing operations.
-
-The maximum number of displays can be configured by changing the following in your `config.h` (default is 1):
-
-```c
-// 3 displays:
-#define SSD1351_NUM_DEVICES 3
-```
-
-Native color format rgb565 is compatible with SSD1351
-
#### ** ST7735 **
Enabling support for the ST7735 in Quantum Painter is done by adding the following to `rules.mk`:
@@ -386,62 +363,139 @@ Native color format rgb565 is compatible with ST7789
<!-- tabs:end -->
-### ** Common: Surfaces **
+### ** OLED **
-Quantum Painter has surface drivers which are able to target a buffer in RAM. In general, surfaces keep track of the "dirty" region -- the area that has been drawn to since the last flush -- so that when transferring to the display they can transfer the minimal amount of data to achieve the end result.
+OLED displays tend to use 5-pin SPI when at larger resolutions, or when using color -- SPI SCK, SPI MOSI, SPI CS, D/C, and RST pins. Smaller OLEDs may use I2C instead.
-!> These generally require significant amounts of RAM, so at large sizes and/or higher bit depths, they may not be usable on all MCUs.
+When using these displays, either `spi_master` or `i2c_master` must already be correctly configured for both the platform and panel you're building for.
+
+For SPI, the pin assignments for SPI CS, D/C, and RST are specified during device construction -- for I2C the panel's address is specified instead.
<!-- tabs:start -->
-#### ** RGB565 Surface **
+#### ** SSD1351 **
+
+Enabling support for the SSD1351 in Quantum Painter is done by adding the following to `rules.mk`:
+
+```make
+QUANTUM_PAINTER_ENABLE = yes
+QUANTUM_PAINTER_DRIVERS += ssd1351_spi
+```
+
+Creating a SSD1351 device in firmware can then be done with the following API:
+
+```c
+painter_device_t qp_ssd1351_make_spi_device(uint16_t panel_width, uint16_t panel_height, pin_t chip_select_pin, pin_t dc_pin, pin_t reset_pin, uint16_t spi_divisor, int spi_mode);
+```
+
+The device handle returned from the `qp_ssd1351_make_spi_device` function can be used to perform all other drawing operations.
+
+The maximum number of displays can be configured by changing the following in your `config.h` (default is 1):
+
+```c
+// 3 displays:
+#define SSD1351_NUM_DEVICES 3
+```
+
+Native color format rgb565 is compatible with SSD1351
+
+#### ** SH1106 **
-Enabling support for RGB565 surfaces in Quantum Painter is done by adding the following to `rules.mk`:
+Enabling support for the SH1106 in Quantum Painter is done by adding the following to `rules.mk`:
```make
QUANTUM_PAINTER_ENABLE = yes
-QUANTUM_PAINTER_DRIVERS += rgb565_surface
+# For SPI:
+QUANTUM_PAINTER_DRIVERS += sh1106_spi
+# For I2C:
+QUANTUM_PAINTER_DRIVERS += sh1106_i2c
```
-Creating a RGB565 surface in firmware can then be done with the following API:
+Creating a SH1106 device in firmware can then be done with the following APIs:
```c
-painter_device_t qp_rgb565_make_surface(uint16_t panel_width, uint16_t panel_height, void *buffer);
+// SPI-based SH1106:
+painter_device_t qp_sh1106_make_spi_device(uint16_t panel_width, uint16_t panel_height, pin_t chip_select_pin, pin_t dc_pin, pin_t reset_pin, uint16_t spi_divisor, int spi_mode);
+// I2C-based SH1106:
+painter_device_t qp_sh1106_make_i2c_device(uint16_t panel_width, uint16_t panel_height, uint8_t i2c_address);
```
-The `buffer` is a user-supplied area of memory, and is assumed to be of the size `sizeof(uint16_t) * panel_width * panel_height`.
+The device handle returned from the `qp_sh1106_make_???_device` function can be used to perform all other drawing operations.
+
+The maximum number of displays of each type can be configured by changing the following in your `config.h` (default is 1):
+
+```c
+// 3 SPI displays:
+#define SH1106_NUM_SPI_DEVICES 3
+// 3 I2C displays:
+#define SH1106_NUM_I2C_DEVICES 3
+```
+
+Native color format mono2 is compatible with SH1106
+
+<!-- tabs:end -->
+
+### ** Surface **
-The device handle returned from the `qp_rgb565_make_surface` function can be used to perform all other drawing operations.
+Quantum Painter has a surface driver which is able to target a buffer in RAM. In general, surfaces keep track of the "dirty" region -- the area that has been drawn to since the last flush -- so that when transferring to the display they can transfer the minimal amount of data to achieve the end result.
+
+!> These generally require significant amounts of RAM, so at large sizes and/or higher bit depths, they may not be usable on all MCUs.
+
+Enabling support for surfaces in Quantum Painter is done by adding the following to `rules.mk`:
+
+```make
+QUANTUM_PAINTER_ENABLE = yes
+QUANTUM_PAINTER_DRIVERS += surface
+```
+
+Creating a surface in firmware can then be done with the following APIs:
+
+```c
+// 16bpp RGB565 surface:
+painter_device_t qp_make_rgb565_surface(uint16_t panel_width, uint16_t panel_height, void *buffer);
+// 1bpp monochrome surface:
+painter_device_t qp_make_mono1bpp_surface(uint16_t panel_width, uint16_t panel_height, void *buffer);
+```
+
+The `buffer` is a user-supplied area of memory, which can be statically allocated using `SURFACE_REQUIRED_BUFFER_BYTE_SIZE`:
+
+```c
+// Buffer required for a 240x80 16bpp surface:
+uint8_t framebuffer[SURFACE_REQUIRED_BUFFER_BYTE_SIZE(240, 80, 16)];
+```
+
+The device handle returned from the `qp_make_?????_surface` function can be used to perform all other drawing operations.
Example:
```c
static painter_device_t my_surface;
-static uint16_t my_framebuffer[320 * 240]; // Allocate a buffer for a 320x240 RGB565 display
+static uint8_t my_framebuffer[SURFACE_REQUIRED_BUFFER_BYTE_SIZE(240, 80, 16)]; // Allocate a buffer for a 16bpp 240x80 RGB565 display
void keyboard_post_init_kb(void) {
- my_surface = qp_rgb565_make_surface(320, 240, my_framebuffer);
+ my_surface = qp_rgb565_make_surface(240, 80, my_framebuffer);
qp_init(my_surface, QP_ROTATION_0);
+ keyboard_post_init_user();
}
```
-The maximum number of RGB565 surfaces can be configured by changing the following in your `config.h` (default is 1):
+The maximum number of surfaces can be configured by changing the following in your `config.h` (default is 1):
```c
// 3 surfaces:
-#define RGB565_SURFACE_NUM_DEVICES 3
+#define SURFACE_NUM_DEVICES 3
```
-To transfer the contents of the RGB565 surface to another display, the following API can be invoked:
+To transfer the contents of the surface to another display of the same pixel format, the following API can be invoked:
```c
-bool qp_rgb565_surface_draw(painter_device_t surface, painter_device_t display, uint16_t x, uint16_t y);
+bool qp_surface_draw(painter_device_t surface, painter_device_t display, uint16_t x, uint16_t y);
```
The `surface` is the surface to copy out from. The `display` is the target display to draw into. `x` and `y` are the target location to draw the surface pixel data. Under normal circumstances, the location should be consistent, as the dirty region is calculated with respect to the `x` and `y` coordinates -- changing those will result in partial, overlapping draws.
-?> Calling `qp_flush()` on the surface resets its dirty region. Copying the surface contents to the display also automatically resets the dirty region.
+!> The surface and display panel must have the same native pixel format.
-<!-- tabs:end -->
+?> Calling `qp_flush()` on the surface resets its dirty region. Copying the surface contents to the display also automatically resets the dirty region.
<!-- tabs:end -->
@@ -857,13 +911,52 @@ void keyboard_post_init_kb(void) {
<!-- tabs:start -->
-#### ** Get Geometry **
+#### ** Gettters **
+
+These functions allow external code to retrieve the current width, height, rotation, and drawing offsets.
+
+<!-- tabs:start -->
+
+#### ** Width **
+
+```c
+uint16_t qp_get_width(painter_device_t device);
+```
+
+#### ** Height **
+
+```c
+uint16_t qp_get_height(painter_device_t device);
+```
+
+#### ** Rotation **
+
+```c
+painter_rotation_t qp_get_rotation(painter_device_t device);
+```
+
+#### ** Offset X **
+
+```c
+uint16_t qp_get_offset_x(painter_device_t device);
+```
+
+#### ** Offset Y **
+
+```c
+uint16_t qp_get_offset_y(painter_device_t device);
+```
+
+##### ** Everything **
+
+Convenience function to call all the previous ones at once.
+Note: You can pass `NULL` for the values you are not interested in.
```c
void qp_get_geometry(painter_device_t device, uint16_t *width, uint16_t *height, painter_rotation_t *rotation, uint16_t *offset_x, uint16_t *offset_y);
```
-The `qp_get_geometry` function allows external code to retrieve the current width, height, rotation, and drawing offsets.
+<!-- tabs:end -->
#### ** Set Viewport Offsets **
diff --git a/docs/quantum_painter_lvgl.md b/docs/quantum_painter_lvgl.md
index 4d10160baf..b4f31ad4af 100644
--- a/docs/quantum_painter_lvgl.md
+++ b/docs/quantum_painter_lvgl.md
@@ -53,3 +53,11 @@ The `qp_lvgl_detach` function stops the internal LVGL ticks and releases resourc
## Enabling/Disabling LVGL features :id=lvgl-configuring
You can overwrite LVGL specific features in your `lv_conf.h` file.
+
+## Changing the LVGL task frequency
+
+When LVGL is running, your keyboard's responsiveness may decrease, causing missing keystrokes or encoder rotations, especially during the animation of dynamically-generated content. This occurs because LVGL operates as a scheduled task with a default task rate of five milliseconds. While a fast task rate is advantageous when LVGL is responsible for detecting and processing inputs, it can lead to excessive recalculations of displayed content, which may slow down QMK's matrix scanning. If you rely on QMK instead of LVGL for processing inputs, it can be beneficial to increase the time between calls to the LVGL task handler to better match your preferred display update rate. To do this, add this to your `config.h`:
+
+```c
+#define QP_LVGL_TASK_PERIOD 40
+```
diff --git a/docs/reference_info_json.md b/docs/reference_info_json.md
index 91581afc73..e102b9bfb9 100644
--- a/docs/reference_info_json.md
+++ b/docs/reference_info_json.md
@@ -60,6 +60,13 @@ You can create `info.json` files at every level under `qmk_firmware/keyboards/<k
}
```
* `qmk`
+ * `locking`
+ * `enabled`
+ * Enable locking switch support.
+ * Default: `false`
+ * `resync`
+ * Keep switch state consistent with keyboard LED state.
+ * Default: `false`
* `tap_capslock_delay`
* The delay between keydown and keyup for Caps Lock tap events in milliseconds.
* Default: `80` (80 ms)
@@ -88,7 +95,7 @@ You can create `info.json` files at every level under `qmk_firmware/keyboards/<k
## APA102 :id=apa102
-Configures the APA102 driver.
+Configures the [APA102](apa102_driver.md) driver.
* `apa102`
* `clock_pin` (Required)
@@ -127,6 +134,16 @@ Configures the [Backlight](feature_backlight.md) feature.
* `breathing_period`
* The length of one backlight breathing cycle in seconds.
* Default: `6` (6 seconds)
+ * `default`
+ * `on`
+ * The default backlight enabled state.
+ * Default: `true`
+ * `breathing`
+ * The default backlight breathing state.
+ * Default: `false`
+ * `brightness`
+ * The default brightness level.
+ * Default: `max_brightness`
* `driver`
* The driver to use. Must be one of `custom`, `pwm`, `software`, `timer`.
* Default: `"pwm"`
@@ -194,6 +211,20 @@ Configures the [Combo](feature_combo.md) feature.
* The amount of time to recognize a combo in milliseconds.
* Default: `50` (50 ms)
+## DIP Switches :id=dip-switch
+
+Configures the [DIP Switches](feature_dip_switch.md) feature.
+
+* `dip_switch`
+ * `enabled`
+ * Enable the DIP Switches feature.
+ * Default: `false`
+ * `pins`
+ * A list of GPIO pins connected to the MCU.
+ * `matrix_grid`
+ * A list of matrix locations in the key matrix.
+ * Example: `[ [0,6], [1,6], [2,6] ]`
+
## EEPROM :id=eeprom
Configures the [EEPROM](eeprom_driver.md) driver.
@@ -202,6 +233,13 @@ Configures the [EEPROM](eeprom_driver.md) driver.
* `driver`
* The EEPROM backend to use. Must be one of `custom`, `i2c`, `legacy_stm32_flash`, `spi`, `transient`, `vendor`, `wear_leveling`.
* Default: `"vendor"`
+ * `wear_leveling`
+ * `driver`
+ * The driver to use. Must be one of `embedded_flash`, `legacy`, `rp2040_flash`, `spi_flash`, `custom`.
+ * `backing_size`
+ * Number of bytes used by the wear-leveling algorithm for its underlying storage, and needs to be a multiple of the logical size.
+ * `logical_size`
+ * Number of bytes “exposed” to the rest of QMK and denotes the size of the usable EEPROM.
## Encoder :id=encoder
@@ -286,6 +324,8 @@ The ISO enter key is represented by a 1.25u×2uh key. Renderers which utilize in
* `w`
* The width of the key, in key units.
* Default: `1` (1u)
+ * `encoder`
+ * The index of an encoder this key should be linked to
* Example: `{"label": "Shift", "matrix": [4, 0], "x": 0, "y": 4.25, "w": 2.25}`
## Leader Key :id=leader-key
@@ -313,7 +353,7 @@ Configures the [LED Matrix](feature_led_matrix.md) feature.
* Example:
```json
{
- "alpha_mods": true,
+ "alphas_mods": true,
"breathing": true,
"cycle_left_right": false
}
@@ -321,8 +361,21 @@ Configures the [LED Matrix](feature_led_matrix.md) feature.
* `center_point`
* The centroid (geometric center) of the LEDs. Used for certain effects.
* Default: `[112, 32]`
+ * `default`
+ * `animation`
+ * The default effect. Must be one of `led_matrix.animations`
+ * Default: `"solid"`
+ * `on`
+ * The default enabled state.
+ * Default: `true`
+ * `val`
+ * The default brightness level.
+ * Default: `max_brightness`
+ * `speed`
+ * The default animation speed.
+ * Default: `128`
* `driver` (Required)
- * The driver to use. Must be one of `ckled2001`, `custom`, `is31fl3731`, `is31fl3742a`, `is31fl3743a`, `is31fl3745`, `is31fl3746a`.
+ * The driver to use. Must be one of `custom`, `is31fl3218`, `is31fl3731`, `is31fl3733`, `is31fl3736`, `is31fl3737`, `is31fl3741`, `is31fl3742a`, `is31fl3743a`, `is31fl3745`, `is31fl3746a`, `snled27351`.
* `layout` (Required)
* List of LED configuration dictionaries. Each dictionary contains:
* `flags` (Required)
@@ -335,9 +388,21 @@ Configures the [LED Matrix](feature_led_matrix.md) feature.
* The key matrix position associated with the LED.
* Example: `[0, 2]`
* Example: `{"matrix": [2, 1], "x": 20, "y": 48, "flags": 2}`
+ * `led_flush_limit`
+ * Limits in milliseconds how frequently an animation will update the LEDs.
+ * Default: `16`
+ * `led_process_limit`
+ * Limits the number of LEDs to process in an animation per task run (increases keyboard responsiveness).
+ * Default: `led_count / 5`
* `max_brightness`
* The maximum value which brightness is scaled to, from 0 to 255.
* Default: `255`
+ * `react_on_keyup`
+ * Animations react to keyup instead of keydown.
+ * Default: `false`
+ * `sleep`
+ * Turn off the LEDs when the host goes to sleep.
+ * Default: `false`
* `speed_steps`
* The number of speed adjustment steps.
* Default: `16`
@@ -466,6 +531,25 @@ Configures the [RGB Lighting](feature_rgblight.md) feature.
* `brightness_steps`
* The number of brightness adjustment steps.
* Default: `17`
+ * `default`
+ * `animation`
+ * The default effect. Must be one of `rgblight.animations`
+ * Default: `"static_light"`
+ * `on`
+ * The default enabled state.
+ * Default: `true`
+ * `hue`
+ * The default hue value.
+ * Default: `0`
+ * `sat`
+ * The default saturation value.
+ * Default: `255`
+ * `val`
+ * The default brightness level.
+ * Default: `max_brightness`
+ * `speed`
+ * The default animation speed.
+ * Default: `0`
* `driver`
* The driver to use. Must be one of `apa102`, `custom`, `ws2812`.
* Default: `"ws2812"`
@@ -514,7 +598,7 @@ Configures the [RGB Matrix](feature_rgb_matrix.md) feature.
* Example:
```json
{
- "alpha_mods": true,
+ "alphas_mods": true,
"breathing": true,
"cycle_left_right": false
}
@@ -522,8 +606,27 @@ Configures the [RGB Matrix](feature_rgb_matrix.md) feature.
* `center_point`
* The centroid (geometric center) of the LEDs. Used for certain effects.
* Default: `[112, 32]`
+ * `default`
+ * `animation`
+ * The default effect. Must be one of `rgb_matrix.animations`
+ * Default: `"solid_color"`
+ * `on`
+ * The default enabled state.
+ * Default: `true`
+ * `hue`
+ * The default hue value.
+ * Default: `0`
+ * `sat`
+ * The default saturation value.
+ * Default: `255`
+ * `val`
+ * The default brightness level.
+ * Default: `max_brightness`
+ * `speed`
+ * The default animation speed.
+ * Default: `128`
* `driver` (Required)
- * The driver to use. Must be one of `aw20216`, `ckled2001`, `custom`, `is31fl3731`, `is31fl3733`, `is31fl3736`, `is31fl3737`, `is31fl3741`, `is31fl3742a`, `is31fl3743a`, `is31fl3745`, `is31fl3746a`, `ws2812`.
+ * The driver to use. Must be one of `aw20216s`, `custom`, `is31fl3218`, `is31fl3731`, `is31fl3733`, `is31fl3736`, `is31fl3737`, `is31fl3741`, `is31fl3742a`, `is31fl3743a`, `is31fl3745`, `is31fl3746a`, `snled27351`, `ws2812`.
* `hue_steps`
* The number of hue adjustment steps.
* Default: `8`
@@ -539,12 +642,24 @@ Configures the [RGB Matrix](feature_rgb_matrix.md) feature.
* The key matrix position associated with the LED.
* Example: `[0, 2]`
* Example: `{"matrix": [2, 1], "x": 20, "y": 48, "flags": 2}`
+ * `led_flush_limit`
+ * Limits in milliseconds how frequently an animation will update the LEDs.
+ * Default: `16`
+ * `led_process_limit`
+ * Limits the number of LEDs to process in an animation per task run (increases keyboard responsiveness).
+ * Default: `led_count / 5`
* `max_brightness`
* The maximum value which the HSV "V" component is scaled to, from 0 to 255.
* Default: `255`
+ * `react_on_keyup`
+ * Animations react to keyup instead of keydown.
+ * Default: `false`
* `sat_steps`
* The number of saturation adjustment steps.
* Default: `16`
+ * `sleep`
+ * Turn off the LEDs when the host goes to sleep.
+ * Default: `false`
* `speed_steps`
* The number of speed adjustment steps.
* Default: `16`
@@ -584,6 +699,10 @@ Configures the [Split Keyboard](feature_split_keyboard.md) feature.
* `bootmagic`
* `matrix`
* See [Bootmagic](#bootmagic) config.
+ * `dip_switch`
+ * `right`
+ * `pins`
+ * See [DIP Switches](#dip-switch) config.
* `enabled`
* Enable the Split Keyboard feature.
* Default: `false`
@@ -591,6 +710,12 @@ Configures the [Split Keyboard](feature_split_keyboard.md) feature.
* `right`
* `rotary`
* See [Encoder](#encoder) config.
+ * `handedness`
+ * `pin`
+ * The GPIO pin connected to determine handedness.
+ * `matrix_grid`
+ * The GPIO pins of the matrix position which determines the handedness.
+ * Example: `["A1", "B5"]`
* `matrix_pins`
* `right`
* See [Matrix](#matrix) config.
@@ -602,12 +727,37 @@ Configures the [Split Keyboard](feature_split_keyboard.md) feature.
* `transport`
* `protocol`
* The split transport protocol to use. Must be one of `custom`, `i2c`, `serial`, `serial_usart`.
- * `sync_matrix_state`
- * Mirror the main/primary half's matrix state to the secondary half.
- * Default: `false`
- * `sync_modifiers`
- * Mirror the modifier state to the secondary half.
- * Default: `false`
+ * `sync`
+ * `activity`
+ * Mirror the activity timestamps to the secondary half.
+ * Default: `false`
+ * `detected_os`
+ * Mirror the [detected OS](feature_os_detection.md) to the secondary half.
+ * Default: `false`
+ * `haptic`
+ * Mirror the haptic state and process haptic feedback to the secondary half.
+ * Default: `false`
+ * `layer_state`
+ * Mirror the layer state to the secondary half.
+ * Default: `false`
+ * `indicators`
+ * Mirror the indicator state to the secondary half.
+ * Default: `false`
+ * `matrix_state`
+ * Mirror the main/primary half's matrix state to the secondary half.
+ * Default: `false`
+ * `modifiers`
+ * Mirror the modifier state to the secondary half.
+ * Default: `false`
+ * `oled`
+ * Mirror the OLED on/off status to the secondary half.
+ * Default: `false`
+ * `st7565`
+ * Mirror the ST7565 on/off status to the secondary half.
+ * Default: `false`
+ * `wpm`
+ * Mirror the current WPM value to the secondary half.
+ * Default: `false`
* `watchdog`
* Reboot the secondary half if it loses connection.
* Default: `false`
diff --git a/docs/reference_keymap_extras.md b/docs/reference_keymap_extras.md
index b70d505f1f..84751a512c 100644
--- a/docs/reference_keymap_extras.md
+++ b/docs/reference_keymap_extras.md
@@ -87,6 +87,5 @@ There are also a few which are not quite language-specific, but useful if you ar
|Norman |`keymap_norman.h` |`sendstring_norman.h` |
|Plover |`keymap_plover.h` | |
|Plover (Dvorak) |`keymap_plover_dvorak.h` | |
-|Steno |`keymap_steno.h` | |
|Workman |`keymap_workman.h` |`sendstring_workman.h` |
|Workman (ZXCVM) |`keymap_workman_zxcvm.h` |`sendstring_workman_zxcvm.h` |
diff --git a/docs/spi_driver.md b/docs/spi_driver.md
index c1c6831e73..569a19f1db 100644
--- a/docs/spi_driver.md
+++ b/docs/spi_driver.md
@@ -2,6 +2,18 @@
The SPI Master drivers used in QMK have a set of common functions to allow portability between MCUs.
+## Usage :id=usage
+
+In most cases, the SPI Master driver code is automatically included if you are using a feature or driver which requires it, such as [OLED](feature_oled_driver.md).
+
+However, if you need to use the driver standalone, add the following to your `rules.mk`:
+
+```make
+SPI_DRIVER_REQUIRED = yes
+```
+
+You can then call the SPI API by including `spi_master.h` in your code.
+
## AVR Configuration :id=avr-configuration
No special setup is required - just connect the `SS`, `SCK`, `MOSI` and `MISO` pins of your SPI devices to the matching pins on the MCU:
@@ -49,6 +61,11 @@ Configuration-wise, you'll need to set up the peripheral as per your MCU's datas
As per the AVR configuration, you may choose any other standard GPIO as a slave select pin, which should be supplied to `spi_start()`.
+If a complete SPI interface is not required, then the following can be done to disable certain SPI pins, so they don't occupy a GPIO unnecessarily:
+ - in `config.h`: `#define SPI_MISO_PIN NO_PIN`
+ - in `config.h`: `#define SPI_MOSI_PIN NO_PIN`
+ - in `mcuconf.h`: `#define SPI_SELECT_MODE SPI_SELECT_MODE_NONE`, in this case the `slavePin` argument passed to `spi_start()` may be `NO_PIN` if the slave select pin is not used.
+
## API :id=api
### `void spi_init(void)` :id=api-spi-init
diff --git a/docs/squeezing_avr.md b/docs/squeezing_avr.md
index b437901bdb..af015b4b18 100644
--- a/docs/squeezing_avr.md
+++ b/docs/squeezing_avr.md
@@ -168,6 +168,7 @@ For RGB Matrix, these need to be explicitly enabled as well. To disable any that
#undef ENABLE_RGB_MATRIX_DUAL_BEACON
#undef ENABLE_RGB_MATRIX_RAINBOW_BEACON
#undef ENABLE_RGB_MATRIX_RAINBOW_PINWHEELS
+#undef ENABLE_RGB_MATRIX_FLOWER_BLOOMING
#undef ENABLE_RGB_MATRIX_RAINDROPS
#undef ENABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS
#undef ENABLE_RGB_MATRIX_HUE_BREATHING
diff --git a/docs/uart_driver.md b/docs/uart_driver.md
index a44f2c28d9..a88278d543 100644
--- a/docs/uart_driver.md
+++ b/docs/uart_driver.md
@@ -4,6 +4,18 @@ The UART drivers used in QMK have a set of common functions to allow portability
Currently, this driver does not support enabling hardware flow control (the `RTS` and `CTS` pins) if available, but may do so in future.
+## Usage :id=usage
+
+In most cases, the UART driver code is automatically included if you are using a feature or driver which requires it.
+
+However, if you need to use the driver standalone, add the following to your `rules.mk`:
+
+```make
+UART_DRIVER_REQUIRED = yes
+```
+
+You can then call the UART API by including `uart.h` in your code.
+
## AVR Configuration :id=avr-configuration
No special setup is required - just connect the `RX` and `TX` pins of your UART device to the opposite pins on the MCU:
diff --git a/docs/unit_testing.md b/docs/unit_testing.md
index 47a1055796..60787fdffc 100644
--- a/docs/unit_testing.md
+++ b/docs/unit_testing.md
@@ -36,7 +36,9 @@ Note how there's several different tests, each mocking out a separate part. Also
## Running the Tests
-To run all the tests in the codebase, type `make test:all`. You can also run test matching a substring by typing `make test:matchingsubstring` Note that the tests are always compiled with the native compiler of your platform, so they are also run like any other program on your computer.
+To run all the tests in the codebase, type `make test:all`. You can also run test matching a substring by typing `make test:matchingsubstring`. `matchingsubstring` can contain colons to be more specific; `make test:tap_hold_configurations` will run the `tap_hold_configurations` tests for all features while `make test:retro_shift:tap_hold_configurations` will run the `tap_hold_configurations` tests for only the Retro Shift feature.
+
+Note that the tests are always compiled with the native compiler of your platform, so they are also run like any other program on your computer.
## Debugging the Tests
diff --git a/docs/ws2812_driver.md b/docs/ws2812_driver.md
index 9b79cfa905..244d39dbe0 100644
--- a/docs/ws2812_driver.md
+++ b/docs/ws2812_driver.md
@@ -1,189 +1,229 @@
-# WS2812 Driver
-This driver powers the [RGB Lighting](feature_rgblight.md) and [RGB Matrix](feature_rgb_matrix.md) features.
+# WS2812 Driver :id=ws2812-driver
-Currently QMK supports the following addressable LEDs (however, the white LED in RGBW variants is not supported):
+This driver provides support for WorldSemi addressable RGB(W) LEDs, and compatible equivalents:
- WS2811, WS2812, WS2812B, WS2812C, etc.
- SK6812, SK6812MINI, SK6805
+ * WS2811, WS2812, WS2812B, WS2812C, etc.
+ * SK6812, SK6812MINI, SK6805
-These LEDs are called "addressable" because instead of using a wire per color, each LED contains a small microchip that understands a special protocol sent over a single wire. The chip passes on the remaining data to the next LED, allowing them to be chained together. In this way, you can easily control the color of the individual LEDs.
+These LEDs are often called "addressable" because instead of using a wire per color (and per LED), each LED contains a small microchip that understands a special protocol sent over a single wire.
+The LEDs can be chained together, and the remaining data is passed on to the next. In this way, you can easily control the color of many LEDs using a single GPIO.
-## Supported Driver Types
+## Usage :id=usage
-| | AVR | ARM |
-| -------- | ------------------ | ------------------ |
-| bit bang | :heavy_check_mark: | :heavy_check_mark: |
-| I2C | :heavy_check_mark: | |
-| SPI | | :heavy_check_mark: |
-| PWM | | :heavy_check_mark: |
-| PIO | | :heavy_check_mark: |
+In most cases, the WS2812 driver code is automatically included if you are using either the [RGBLight](feature_rgblight.md) or [RGB Matrix](feature_rgb_matrix.md) feature with the `ws2812` driver set, and you would use those APIs instead.
-## Driver configuration
+However, if you need to use the driver standalone, add the following to your `rules.mk`:
-### All drivers
+```make
+WS2812_DRIVER_REQUIRED = yes
+```
+
+You can then call the WS2812 API by including `ws2812.h` in your code.
+
+## Basic Configuration :id=basic-configuration
+
+Add the following to your `config.h`:
+
+|Define |Default |Description |
+|-------------------|-----------------------|------------------------------------------------------------------------------------------------|
+|`WS2812_DI_PIN` |*Not defined* |The GPIO pin connected to the DI pin of the first LED in the chain |
+|`WS2812_LED_COUNT` |*Not defined* |Number of LEDs in the WS2812 chain - automatically set when RGBLight or RGB Matrix is configured|
+|`WS2812_TIMING` |`1250` |The total length of a bit (TH+TL) in nanoseconds |
+|`WS2812_T1H` |`900` |The length of a "1" bit's high phase in nanoseconds |
+|`WS2812_T0H` |`350` |The length of a "0" bit's high phase in nanoseconds |
+|`WS2812_TRST_US` |`280` |The length of the reset phase in microseconds |
+|`WS2812_BYTE_ORDER`|`WS2812_BYTE_ORDER_GRB`|The byte order of the RGB data |
+
+### Timing Adjustment :id=timing-adjustment
-Different versions of the addressable LEDs have differing requirements for the T<sub>RST</sub> period between frames.
-The default setting is 280 µs, which should work for most cases, but this can be overridden in your config.h. e.g.:
+The WS2812 LED communication protocol works by encoding a "1" bit with a long high pulse (T<sub>1</sub>H), and a "0" bit with a shorter pulse (T<sub>0</sub>H). The total cycle length of a bit is the same.
+The "reset" pulse (T<sub>RST</sub>) latches the sent RGB data to all of the LEDs and denotes a completed "frame".
+
+Some WS2812 variants have slightly different timing parameter requirements, which can be accounted for if necessary using the above `#define`s in your `config.h`.
+
+### Byte Order :id=byte-order
+
+Some WS2812 variants may have their color components in a different physical or logical order. For example, the WS2812B-2020 has physically swapped red and green LEDs, which causes the wrong color to be displayed, because the default order of the bytes sent over the wire is defined as GRB.
+If you find your LED colors are consistently swapped, you may need to change the byte order by adding the following to your `config.h`:
```c
-#define WS2812_TRST_US 80
+#define WS2812_BYTE_ORDER WS2812_BYTE_ORDER_GRB
```
-#### Byte Order
+Where the byte order may be one of:
+
+|Byte Order|Known Devices |
+|----------|----------------------------|
+|`GRB` |Most WS2812s, SK6812, SK6805|
+|`RGB` |WS2812B-2020 |
+|`BGR` |TM1812 |
-Some variants of the WS2812 may have their color components in a different physical or logical order. For example, the WS2812B-2020 has physically swapped red and green LEDs, which causes the wrong color to be displayed, because the default order of the bytes sent over the wire is defined as GRB.
-In this case, you can change the byte order by defining `WS2812_BYTE_ORDER` as one of the following values:
+## Driver Configuration :id=driver-configuration
-| Byte order | Known devices |
-| --------------------------------- | ----------------------------- |
-| `WS2812_BYTE_ORDER_GRB` (default) | Most WS2812's, SK6812, SK6805 |
-| `WS2812_BYTE_ORDER_RGB` | WS2812B-2020 |
-| `WS2812_BYTE_ORDER_BGR` | TM1812 |
+Driver selection can be configured in `rules.mk` as `WS2812_DRIVER`, or in `info.json` as `ws2812.driver`. Valid values are `bitbang` (default), `i2c`, `spi`, `pwm`, `vendor`, or `custom`. See below for information on individual drivers.
+### Bitbang Driver :id=bitbang-driver
-### Bitbang
-Default driver, the absence of configuration assumes this driver. To configure it, add this to your rules.mk:
+This is the default WS2812 driver. It operates by "bit-banging" ie. directly toggling the GPIO.
+
+Please note that on AVR devices, due to the tight timing requirements longer chains and/or heavy CPU loads may cause visible lag. Unfortunately this driver is usually the only option for AVR.
```make
WS2812_DRIVER = bitbang
```
-!> This driver is not hardware accelerated and may not be performant on heavily loaded systems.
+### I2C Driver :id=i2c-driver
+
+A specialized driver mainly used for PS2AVRGB (Bootmapper Client) boards, which possess an ATtiny85 that handles the WS2812 LEDs.
+
+```make
+WS2812_DRIVER = i2c
+```
+
+The following `#define`s apply only to the `i2c` driver:
-#### Adjusting bit timings
+|Define |Default|Description |
+|--------------------|-------|---------------------------------|
+|`WS2812_I2C_ADDRESS`|`0xB0` |The I2C address of the ATtiny85. |
+|`WS2812_I2C_TIMEOUT`|`100` |The I2C timeout, in milliseconds.|
-The WS2812 LED communication topology depends on a serialized timed window. Different versions of the addressable LEDs have differing requirements for the timing parameters, for instance, of the SK6812.
-You can tune these parameters through the definition of the following macros:
+### PIO Driver :id=pio-driver
-| Macro | Default | AVR | ARM |
-| --------------- | ---------------------------- | ------------------ | ------------------ |
-| `WS2812_TIMING` | `1250` | :heavy_check_mark: | :heavy_check_mark: |
-| `WS2812_T0H` | `350` | :heavy_check_mark: | :heavy_check_mark: |
-| `WS2812_T0L` | `WS2812_TIMING - WS2812_T0H` | | :heavy_check_mark: |
-| `WS2812_T1H` | `900` | :heavy_check_mark: | :heavy_check_mark: |
-| `WS2812_T1L` | `WS2812_TIMING - WS2812_T1H` | | :heavy_check_mark: |
+This driver is RP2040-only, and leverages the onboard PIO (programmable I/O) system and DMA to offload processing from the CPU.
-### I2C
-Targeting boards where WS2812 support is offloaded to a 2nd MCU. Currently the driver is limited to AVR given the known consumers are ps2avrGB/BMC. To configure it, add this to your rules.mk:
+The WS2812 PIO program uses one state machine, six instructions and one DMA interrupt handler callback. Due to the implementation the time resolution for this driver is 50 ns - any value not specified in this interval will be rounded to the next matching interval.
```make
-WS2812_DRIVER = i2c
+WS2812_DRIVER = vendor
```
-Configure the hardware via your config.h:
-```c
-#define WS2812_I2C_ADDRESS 0xB0 // default: 0xB0
-#define WS2812_I2C_TIMEOUT 100 // default: 100
+### PWM Driver :id=pwm-driver
+
+This driver is ARM-only, and leverages the onboard PWM peripheral and DMA to offload processing from the CPU.
+
+```make
+WS2812_DRIVER = pwm
```
-### SPI
-Targeting STM32 boards where WS2812 support is offloaded to an SPI hardware device. The advantage is that the use of DMA offloads processing of the WS2812 protocol from the MCU. `WS2812_DI_PIN` for this driver is the configured SPI MOSI pin. Due to the nature of repurposing SPI to drive the LEDs, the other SPI pins, MISO and SCK, **must** remain unused. To configure it, add this to your rules.mk:
+### SPI Driver :id=spi-driver
+
+This driver is ARM-only, and leverages the onboard SPI peripheral and DMA to offload processing from the CPU. The DI pin **must** be connected to the MOSI pin on the MCU, and all other SPI pins **must** be left unused. This is also very dependent on your MCU's SPI peripheral clock speed, and may or may not be possible depending on the MCU selected.
```make
WS2812_DRIVER = spi
```
-Configure the hardware via your config.h:
-```c
-#define WS2812_SPI SPID1 // default: SPID1
-#define WS2812_SPI_MOSI_PAL_MODE 5 // MOSI pin "alternate function", see the respective datasheet for the appropriate values for your MCU. default: 5
-#define WS2812_SPI_SCK_PIN B3 // Required for F072, may be for others -- SCK pin, see the respective datasheet for the appropriate values for your MCU. default: unspecified
-#define WS2812_SPI_SCK_PAL_MODE 5 // SCK pin "alternate function", see the respective datasheet for the appropriate values for your MCU. default: 5
-```
+## ChibiOS/ARM Configuration :id=arm-configuration
-You must also turn on the SPI feature in your halconf.h and mcuconf.h
+The following defines apply only to ARM devices:
-#### Circular Buffer Mode
-Some boards may flicker while in the normal buffer mode. To fix this issue, circular buffer mode may be used to rectify the issue.
+|Define |Default |Description |
+|------------|------------------------------|---------------------------------------------------------------------------------|
+|`WS2812_T1L`|`(WS2812_TIMING - WS2812_T1H)`|The length of a "1" bit's low phase in nanoseconds (bitbang and PIO drivers only)|
+|`WS2812_T0L`|`(WS2812_TIMING - WS2812_T0H)`|The length of a "0" bit's low phase in nanoseconds (bitbang and PIO drivers only)|
-By default, the circular buffer mode is disabled.
+### Push-Pull and Open Drain :id=push-pull-open-drain
-To enable this alternative buffer mode, place this into your `config.h` file:
-```c
-#define WS2812_SPI_USE_CIRCULAR_BUFFER
-```
+By default, the GPIO used for data transmission is configured as a *push-pull* output, meaning the pin is effectively always driven either to VCC or to ground.
-#### Setting baudrate with divisor
-To adjust the baudrate at which the SPI peripheral is configured, users will need to derive the target baudrate from the clock tree provided by STM32CubeMX.
+For situations where the logic level voltage is lower than the power supply voltage, however, this can pose an issue. The solution is to configure the pin for *open drain* mode instead, and use a pullup resistor between the DI pin and VCC. In this mode, the MCU can only pull the GPIO *low*, or leave it floating. The pullup resistor is then responsible for pulling the line high, when the MCU is not driving the GPIO.
-Only divisors of 2, 4, 8, 16, 32, 64, 128 and 256 are supported by hardware.
+To configure the DI pin for open drain configuration, add the following to your `config.h`:
-| Define | Default | Description |
-| -------------------- | ------- | ----------------------------------- |
-| `WS2812_SPI_DIVISOR` | `16` | SPI source clock peripheral divisor |
+```c
+#define WS2812_EXTERNAL_PULLUP
+```
-#### Testing Notes
+### SPI Driver :id=arm-spi-driver
-While not an exhaustive list, the following table provides the scenarios that have been partially validated:
+Depending on the ChibiOS board configuration, you may need to enable SPI at the keyboard level. For STM32, this would look like:
-| | SPI1 | SPI2 | SPI3 |
-| ---- | ------------------------------------------- | --------------------------------------- | --------------------- |
-| f072 | ? | B15 :heavy_check_mark: (needs SCK: B13) | N/A |
-| f103 | A7 :heavy_check_mark: | B15 :heavy_check_mark: | N/A |
-| f303 | A7 :heavy_check_mark: B5 :heavy_check_mark: | B15 :heavy_check_mark: | B5 :heavy_check_mark: |
+`halconf.h`:
+```c
+#define HAL_USE_SPI TRUE
+```
+`mcuconf.h`:
+```c
+#undef STM32_SPI_USE_SPI1
+#define STM32_SPI_USE_SPI1 TRUE
+```
-*Other supported ChibiOS boards and/or pins may function, it will be highly chip and configuration dependent.*
+The following `define`s apply only to the `spi` driver:
-### PWM
+|Define |Default |Description |
+|--------------------------------|-------------|-------------------------------------------------------------------------------|
+|`WS2812_SPI_DRIVER` |`SPID1` |The SPI driver to use |
+|`WS2812_SPI_MOSI_PAL_MODE` |`5` |The MOSI pin alternative function to use |
+|`WS2812_SPI_SCK_PIN` |*Not defined*|The SCK pin - required for F072 and possibly others |
+|`WS2812_SPI_SCK_PAL_MODE` |`5` |The SCK pin alternative function to use - required for F072 and possibly others|
+|`WS2812_SPI_DIVISOR` |`16` |The divisor used to adjust the baudrate |
+|`WS2812_SPI_USE_CIRCULAR_BUFFER`|*Not defined*|Enable a circular buffer for improved rendering |
-Targeting STM32 boards where WS2812 support is offloaded to an PWM timer and DMA stream. The advantage is that the use of DMA offloads processing of the WS2812 protocol from the MCU. To configure it, add this to your rules.mk:
+#### Setting the Baudrate :id=arm-spi-baudrate
-```make
-WS2812_DRIVER = pwm
-```
+To adjust the SPI baudrate, you will need to derive the target baudrate from the clock tree provided by STM32CubeMX, and add the following to your `config.h`:
-Configure the hardware via your config.h:
```c
-#define WS2812_PWM_DRIVER PWMD2 // default: PWMD2
-#define WS2812_PWM_CHANNEL 2 // default: 2
-#define WS2812_PWM_PAL_MODE 2 // Pin "alternate function", see the respective datasheet for the appropriate values for your MCU. default: 2
-//#define WS2812_PWM_COMPLEMENTARY_OUTPUT // Define for a complementary timer output (TIMx_CHyN); omit for a normal timer output (TIMx_CHy).
-#define WS2812_DMA_STREAM STM32_DMA1_STREAM2 // DMA Stream for TIMx_UP, see the respective reference manual for the appropriate values for your MCU.
-#define WS2812_DMA_CHANNEL 2 // DMA Channel for TIMx_UP, see the respective reference manual for the appropriate values for your MCU.
-#define WS2812_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.
+#define WS2812_SPI_DIVISOR 16
```
-Note that using a complementary timer output (TIMx_CHyN) is possible only for advanced-control timers (TIM1, TIM8, TIM20 on STM32), and the `STM32_PWM_USE_ADVANCED` option in mcuconf.h must be set to `TRUE`. Complementary outputs of general-purpose timers are not supported due to ChibiOS limitations.
+Only divisors of 2, 4, 8, 16, 32, 64, 128 and 256 are supported on STM32 devices. Other MCUs may have similar constraints -- check the reference manual for your respective MCU for specifics.
+
+#### Circular Buffer :id=arm-spi-circular-buffer
-You must also turn on the PWM feature in your halconf.h and mcuconf.h
+A circular buffer can be enabled if you experience flickering.
-#### Testing Notes
+To enable the circular buffer, add the following to your `config.h`:
-While not an exhaustive list, the following table provides the scenarios that have been partially validated:
+```c
+#define WS2812_SPI_USE_CIRCULAR_BUFFER
+```
-| | Status |
-| --------- | ------------------ |
-| f072 | ? |
-| f103 | :heavy_check_mark: |
-| f303 | :heavy_check_mark: |
-| f401/f411 | :heavy_check_mark: |
+### PIO Driver :id=arm-pio-driver
-*Other supported ChibiOS boards and/or pins may function, it will be highly chip and configuration dependent.*
+The following `#define`s apply only to the PIO driver:
-### PIO
+|Define |Default |Description |
+|---------------------|-------------|---------------------------------------|
+|`WS2812_PIO_USE_PIO1`|*Not defined*|Use the PIO1 peripheral instead of PIO0|
-Targeting Raspberry Pi RP2040 boards only where WS2812 support is offloaded to an dedicated PIO implementation. This offloads processing of the WS2812 protocol from the MCU to a dedicated PIO program using DMA transfers.
+### PWM Driver :id=arm-pwm-driver
-To configure it, add this to your rules.mk:
+Depending on the ChibiOS board configuration, you may need to enable PWM at the keyboard level. For STM32, this would look like:
-```make
-WS2812_DRIVER = vendor
+`halconf.h`:
+```c
+#define HAL_USE_PWM TRUE
```
-
-You may optionally switch the PIO peripheral used with the following define in config.h:
+`mcuconf.h`:
```c
-#define WS2812_PIO_USE_PIO1 // Force the usage of PIO1 peripheral, by default the WS2812 implementation uses the PIO0 peripheral
+#undef STM32_PWM_USE_TIM2
+#define STM32_PWM_USE_TIM2 TRUE
```
-The WS2812 PIO programm uses 1 state machine, 6 instructions and one DMA interrupt handler callback. Due to the implementation the time resolution for this drivers is 50ns, any value not specified in this interval will be rounded to the next matching interval.
+The following `#define`s apply only to the `pwm` driver:
-### Push Pull and Open Drain Configuration
-The default configuration is a push pull on the defined pin.
-This can be configured for bitbang, PWM and SPI.
+|Define |Default |Description |
+|---------------------------------|--------------------|------------------------------------------------------------------------------------------|
+|`WS2812_PWM_DRIVER` |`PWMD2` |The PWM driver to use |
+|`WS2812_PWM_CHANNEL` |`2` |The PWM channel to use |
+|`WS2812_PWM_PAL_MODE` |`2` |The pin alternative function to use |
+|`WS2812_DMA_STREAM` |`STM32_DMA1_STREAM2`|The DMA Stream for `TIMx_UP` |
+|`WS2812_DMA_CHANNEL` |`2` |The DMA Channel for `TIMx_UP` |
+|`WS2812_DMAMUX_ID` |*Not defined* |The DMAMUX configuration for `TIMx_UP` - only required if your MCU has a DMAMUX peripheral|
+|`WS2812_PWM_COMPLEMENTARY_OUTPUT`|*Not defined* |Whether the PWM output is complementary (`TIMx_CHyN`) |
-Note: This only applies to STM32 boards.
+?> Using a complementary timer output (`TIMx_CHyN`) is possible only for advanced-control timers (1, 8 and 20 on STM32), and the `STM32_PWM_USE_ADVANCED` option in `mcuconf.h` must be set to `TRUE`. Complementary outputs of general-purpose timers are not supported due to ChibiOS limitations.
- To configure the `WS2812_DI_PIN` to open drain configuration add this to your config.h file:
-```c
-#define WS2812_EXTERNAL_PULLUP
-```
+## API :id=api
+
+### `void ws2812_setleds(rgb_led_t *ledarray, uint16_t number_of_leds)` :id=api-ws2812-setleds
+
+Send RGB data to the WS2812 LED chain.
+
+#### Arguments :id=api-ws2812-setleds-arguments
+
+ - `rgb_led_t *ledarray`
+ A pointer to the LED array.
+ - `uint16_t number_of_leds`
+ The length of the LED array.
diff --git a/docs/zh-cn/_summary.md b/docs/zh-cn/_summary.md
index 0fc92e33d3..a076f1a8c6 100644
--- a/docs/zh-cn/_summary.md
+++ b/docs/zh-cn/_summary.md
@@ -121,7 +121,6 @@
* [分体式键盘](zh-cn/feature_split_keyboard.md)
* [速记](zh-cn/feature_stenography.md)
* [热敏打印机](zh-cn/feature_thermal_printer.md)
- * [Velocikey](zh-cn/feature_velocikey.md)
* QMK开发
* [PR Checklist](zh-cn/pr_checklist.md)
diff --git a/drivers/eeprom/eeprom_spi.h b/drivers/eeprom/eeprom_spi.h
index 282c603565..6a21d5516b 100644
--- a/drivers/eeprom/eeprom_spi.h
+++ b/drivers/eeprom/eeprom_spi.h
@@ -17,6 +17,18 @@
#pragma once
/*
+ Default device configurations:
+
+ For the Adafruit SPI Non-Volatile FRAM Breakout: https://www.adafruit.com/product/1897
+ #define EEPROM_SPI_MB85RS64V
+*/
+#if defined(EEPROM_SPI_MB85RS64V)
+# define EXTERNAL_EEPROM_BYTE_COUNT 8192
+# define EXTERNAL_EEPROM_PAGE_SIZE 64 // it's FRAM, so it doesn't actually matter, this just sets the RAM buffer
+# define EXTERNAL_EEPROM_ADDRESS_SIZE 2
+#endif
+
+/*
The slave select pin of the EEPROM.
This needs to be a normal GPIO pin_t value, such as A7.
*/
diff --git a/drivers/haptic/solenoid.c b/drivers/haptic/solenoid.c
index 4e43903255..da4095cda4 100644
--- a/drivers/haptic/solenoid.c
+++ b/drivers/haptic/solenoid.c
@@ -23,7 +23,6 @@
#include "util.h"
#include <stdlib.h>
-uint8_t solenoid_dwell = SOLENOID_DEFAULT_DWELL;
static pin_t solenoid_pads[] = SOLENOID_PINS;
#define NUMBER_OF_SOLENOIDS ARRAY_SIZE(solenoid_pads)
bool solenoid_on[NUMBER_OF_SOLENOIDS] = {false};
@@ -53,7 +52,7 @@ void solenoid_set_buzz(uint8_t buzz) {
}
void solenoid_set_dwell(uint8_t dwell) {
- solenoid_dwell = dwell;
+ haptic_set_dwell(dwell);
}
/**
@@ -119,7 +118,7 @@ void solenoid_check(void) {
elapsed[i] = timer_elapsed(solenoid_start[i]);
// Check if it's time to finish this solenoid click cycle
- if (elapsed[i] > solenoid_dwell) {
+ if (elapsed[i] > haptic_config.dwell) {
solenoid_stop(i);
continue;
}
diff --git a/drivers/led/apa102.c b/drivers/led/apa102.c
index 766d8cd2eb..527519eb8a 100644
--- a/drivers/led/apa102.c
+++ b/drivers/led/apa102.c
@@ -24,7 +24,7 @@
# elif defined(PROTOCOL_CHIBIOS)
# include "hal.h"
# include "chibios_config.h"
-# if defined(STM32F0XX) || defined(STM32F1XX) || defined(STM32F3XX) || defined(STM32F4XX) || defined(STM32L0XX) || defined(GD32VF103)
+# if defined(STM32F0XX) || defined(STM32F1XX) || defined(STM32F3XX) || defined(STM32F4XX) || defined(STM32L0XX) || defined(GD32VF103) || defined(MCU_RP)
# define APA102_NOPS (100 / (1000000000L / (CPU_CLOCK / 4))) // This calculates how many loops of 4 nops to run to delay 100 ns
# else
# error APA102_NOPS configuration required
@@ -61,18 +61,18 @@ void static apa102_end_frame(uint16_t num_leds);
void static apa102_send_frame(uint8_t red, uint8_t green, uint8_t blue, uint8_t brightness);
void static apa102_send_byte(uint8_t byte);
-void apa102_setleds(LED_TYPE *start_led, uint16_t num_leds) {
- LED_TYPE *end = start_led + num_leds;
+void apa102_setleds(rgb_led_t *start_led, uint16_t num_leds) {
+ rgb_led_t *end = start_led + num_leds;
apa102_start_frame();
- for (LED_TYPE *led = start_led; led < end; led++) {
+ for (rgb_led_t *led = start_led; led < end; led++) {
apa102_send_frame(led->r, led->g, led->b, apa102_led_brightness);
}
apa102_end_frame(num_leds);
}
// Overwrite the default rgblight_call_driver to use apa102 driver
-void rgblight_call_driver(LED_TYPE *start_led, uint8_t num_leds) {
+void rgblight_call_driver(rgb_led_t *start_led, uint8_t num_leds) {
apa102_setleds(start_led, num_leds);
}
diff --git a/drivers/led/apa102.h b/drivers/led/apa102.h
index 58cf020c1e..cd0a19d445 100644
--- a/drivers/led/apa102.h
+++ b/drivers/led/apa102.h
@@ -37,5 +37,5 @@ extern uint8_t apa102_led_brightness;
* - Set the data-out pin as output
* - Send out the LED data
*/
-void apa102_setleds(LED_TYPE *start_led, uint16_t num_leds);
+void apa102_setleds(rgb_led_t *start_led, uint16_t num_leds);
void apa102_set_brightness(uint8_t brightness);
diff --git a/drivers/led/aw20216.c b/drivers/led/aw20216.c
deleted file mode 100644
index 479643add4..0000000000
--- a/drivers/led/aw20216.c
+++ /dev/null
@@ -1,168 +0,0 @@
-/* Copyright 2021 Jasper Chan
- * 2023 Huckies <https://github.com/Huckies>
- *
- * 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 "aw20216.h"
-#include "wait.h"
-#include "spi_master.h"
-
-/* The AW20216 appears to be somewhat similar to the IS31FL743, although quite
- * a few things are different, such as the command byte format and page ordering.
- * The LED addresses start from 0x00 instead of 0x01.
- */
-#define AWINIC_ID 0b1010 << 4
-
-#define AW_PAGE_FUNCTION 0x00 << 1 // PG0, Function registers
-#define AW_PAGE_PWM 0x01 << 1 // PG1, LED PWM control
-#define AW_PAGE_SCALING 0x02 << 1 // PG2, LED current scaling control
-#define AW_PAGE_PATCHOICE 0x03 << 1 // PG3, Pattern choice?
-#define AW_PAGE_PWMSCALING 0x04 << 1 // PG4, LED PWM + Scaling control?
-
-#define AW_WRITE 0
-#define AW_READ 1
-
-#define AW_REG_CONFIGURATION 0x00 // PG0
-#define AW_REG_GLOBALCURRENT 0x01 // PG0
-#define AW_REG_RESET 0x2F // PG0
-#define AW_REG_MIXFUNCTION 0x46 // PG0
-
-// Default value of AW_REG_CONFIGURATION
-// D7:D4 = 1011, SWSEL (SW1~SW12 active)
-// D3 = 0?, reserved (apparently this should be 1 but it doesn't seem to matter)
-// D2:D1 = 00, OSDE (open/short detection enable)
-// D0 = 0, CHIPEN (write 1 to enable LEDs when hardware enable pulled high)
-#define AW_CONFIG_DEFAULT 0b10110000
-#define AW_MIXCR_DEFAULT 0b00000000
-#define AW_RESET_CMD 0xAE
-#define AW_CHIPEN 1
-#define AW_LPEN (0x01 << 1)
-
-#define AW_PWM_REGISTER_COUNT 216
-
-#ifndef AW_SCALING_MAX
-# define AW_SCALING_MAX 150
-#endif
-
-#ifndef AW_GLOBAL_CURRENT_MAX
-# define AW_GLOBAL_CURRENT_MAX 150
-#endif
-
-#ifndef AW_SPI_MODE
-# define AW_SPI_MODE 0
-#endif
-
-#ifndef AW_SPI_DIVISOR
-# define AW_SPI_DIVISOR 4
-#endif
-
-uint8_t g_pwm_buffer[DRIVER_COUNT][AW_PWM_REGISTER_COUNT];
-bool g_pwm_buffer_update_required[DRIVER_COUNT] = {false};
-
-bool aw20216_write(pin_t cs_pin, uint8_t page, uint8_t reg, uint8_t* data, uint8_t len) {
- static uint8_t s_spi_transfer_buffer[2] = {0};
-
- if (!spi_start(cs_pin, false, AW_SPI_MODE, AW_SPI_DIVISOR)) {
- spi_stop();
- return false;
- }
-
- s_spi_transfer_buffer[0] = (AWINIC_ID | page | AW_WRITE);
- s_spi_transfer_buffer[1] = reg;
-
- if (spi_transmit(s_spi_transfer_buffer, 2) != SPI_STATUS_SUCCESS) {
- spi_stop();
- return false;
- }
-
- if (spi_transmit(data, len) != SPI_STATUS_SUCCESS) {
- spi_stop();
- return false;
- }
-
- spi_stop();
- return true;
-}
-
-static inline bool aw20216_write_register(pin_t cs_pin, uint8_t page, uint8_t reg, uint8_t value) {
- // Little wrapper so callers need not care about sending a buffer
- return aw20216_write(cs_pin, page, reg, &value, 1);
-}
-
-void aw20216_soft_reset(pin_t cs_pin) {
- aw20216_write_register(cs_pin, AW_PAGE_FUNCTION, AW_REG_RESET, AW_RESET_CMD);
-}
-
-static void aw20216_init_scaling(pin_t cs_pin) {
- // Set constant current to the max, control brightness with PWM
- for (uint8_t i = 0; i < AW_PWM_REGISTER_COUNT; i++) {
- aw20216_write_register(cs_pin, AW_PAGE_SCALING, i, AW_SCALING_MAX);
- }
-}
-
-static inline void aw20216_init_current_limit(pin_t cs_pin) {
- // Push config
- aw20216_write_register(cs_pin, AW_PAGE_FUNCTION, AW_REG_GLOBALCURRENT, AW_GLOBAL_CURRENT_MAX);
-}
-
-static inline void aw20216_soft_enable(pin_t cs_pin) {
- // Push config
- aw20216_write_register(cs_pin, AW_PAGE_FUNCTION, AW_REG_CONFIGURATION, AW_CONFIG_DEFAULT | AW_CHIPEN);
-}
-
-static inline void aw20216_auto_lowpower(pin_t cs_pin) {
- aw20216_write_register(cs_pin, AW_PAGE_FUNCTION, AW_REG_MIXFUNCTION, AW_MIXCR_DEFAULT | AW_LPEN);
-}
-
-void aw20216_init(pin_t cs_pin, pin_t en_pin) {
- setPinOutput(en_pin);
- writePinHigh(en_pin);
-
- aw20216_soft_reset(cs_pin);
- wait_ms(2);
-
- // Drivers should start with all scaling and PWM registers as off
- aw20216_init_current_limit(cs_pin);
- aw20216_init_scaling(cs_pin);
-
- aw20216_soft_enable(cs_pin);
- aw20216_auto_lowpower(cs_pin);
-}
-
-void aw20216_set_color(int index, uint8_t red, uint8_t green, uint8_t blue) {
- aw_led led;
- memcpy_P(&led, (&g_aw_leds[index]), sizeof(led));
-
- if (g_pwm_buffer[led.driver][led.r] == red && g_pwm_buffer[led.driver][led.g] == green && g_pwm_buffer[led.driver][led.b] == blue) {
- return;
- }
- g_pwm_buffer[led.driver][led.r] = red;
- g_pwm_buffer[led.driver][led.g] = green;
- g_pwm_buffer[led.driver][led.b] = blue;
- g_pwm_buffer_update_required[led.driver] = true;
-}
-
-void aw20216_set_color_all(uint8_t red, uint8_t green, uint8_t blue) {
- for (uint8_t i = 0; i < RGB_MATRIX_LED_COUNT; i++) {
- aw20216_set_color(i, red, green, blue);
- }
-}
-
-void aw20216_update_pwm_buffers(pin_t cs_pin, uint8_t index) {
- if (g_pwm_buffer_update_required[index]) {
- aw20216_write(cs_pin, AW_PAGE_PWM, 0, g_pwm_buffer[index], AW_PWM_REGISTER_COUNT);
- }
- g_pwm_buffer_update_required[index] = false;
-}
diff --git a/drivers/led/aw20216.h b/drivers/led/aw20216.h
deleted file mode 100644
index e342cb6bac..0000000000
--- a/drivers/led/aw20216.h
+++ /dev/null
@@ -1,253 +0,0 @@
-/* Copyright 2021 Jasper Chan (Gigahawk)
- *
- * 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 <stdint.h>
-#include <stdbool.h>
-#include "progmem.h"
-#include "gpio.h"
-
-typedef struct aw_led {
- uint8_t driver : 2;
- uint8_t r;
- uint8_t g;
- uint8_t b;
-} aw_led;
-
-extern const aw_led PROGMEM g_aw_leds[RGB_MATRIX_LED_COUNT];
-
-void aw20216_init(pin_t cs_pin, pin_t en_pin);
-void aw20216_set_color(int index, uint8_t red, uint8_t green, uint8_t blue);
-void aw20216_set_color_all(uint8_t red, uint8_t green, uint8_t blue);
-void aw20216_update_pwm_buffers(pin_t cs_pin, uint8_t index);
-
-#define CS1_SW1 0x00
-#define CS2_SW1 0x01
-#define CS3_SW1 0x02
-#define CS4_SW1 0x03
-#define CS5_SW1 0x04
-#define CS6_SW1 0x05
-#define CS7_SW1 0x06
-#define CS8_SW1 0x07
-#define CS9_SW1 0x08
-#define CS10_SW1 0x09
-#define CS11_SW1 0x0A
-#define CS12_SW1 0x0B
-#define CS13_SW1 0x0C
-#define CS14_SW1 0x0D
-#define CS15_SW1 0x0E
-#define CS16_SW1 0x0F
-#define CS17_SW1 0x10
-#define CS18_SW1 0x11
-#define CS1_SW2 0x12
-#define CS2_SW2 0x13
-#define CS3_SW2 0x14
-#define CS4_SW2 0x15
-#define CS5_SW2 0x16
-#define CS6_SW2 0x17
-#define CS7_SW2 0x18
-#define CS8_SW2 0x19
-#define CS9_SW2 0x1A
-#define CS10_SW2 0x1B
-#define CS11_SW2 0x1C
-#define CS12_SW2 0x1D
-#define CS13_SW2 0x1E
-#define CS14_SW2 0x1F
-#define CS15_SW2 0x20
-#define CS16_SW2 0x21
-#define CS17_SW2 0x22
-#define CS18_SW2 0x23
-#define CS1_SW3 0x24
-#define CS2_SW3 0x25
-#define CS3_SW3 0x26
-#define CS4_SW3 0x27
-#define CS5_SW3 0x28
-#define CS6_SW3 0x29
-#define CS7_SW3 0x2A
-#define CS8_SW3 0x2B
-#define CS9_SW3 0x2C
-#define CS10_SW3 0x2D
-#define CS11_SW3 0x2E
-#define CS12_SW3 0x2F
-#define CS13_SW3 0x30
-#define CS14_SW3 0x31
-#define CS15_SW3 0x32
-#define CS16_SW3 0x33
-#define CS17_SW3 0x34
-#define CS18_SW3 0x35
-#define CS1_SW4 0x36
-#define CS2_SW4 0x37
-#define CS3_SW4 0x38
-#define CS4_SW4 0x39
-#define CS5_SW4 0x3A
-#define CS6_SW4 0x3B
-#define CS7_SW4 0x3C
-#define CS8_SW4 0x3D
-#define CS9_SW4 0x3E
-#define CS10_SW4 0x3F
-#define CS11_SW4 0x40
-#define CS12_SW4 0x41
-#define CS13_SW4 0x42
-#define CS14_SW4 0x43
-#define CS15_SW4 0x44
-#define CS16_SW4 0x45
-#define CS17_SW4 0x46
-#define CS18_SW4 0x47
-#define CS1_SW5 0x48
-#define CS2_SW5 0x49
-#define CS3_SW5 0x4A
-#define CS4_SW5 0x4B
-#define CS5_SW5 0x4C
-#define CS6_SW5 0x4D
-#define CS7_SW5 0x4E
-#define CS8_SW5 0x4F
-#define CS9_SW5 0x50
-#define CS10_SW5 0x51
-#define CS11_SW5 0x52
-#define CS12_SW5 0x53
-#define CS13_SW5 0x54
-#define CS14_SW5 0x55
-#define CS15_SW5 0x56
-#define CS16_SW5 0x57
-#define CS17_SW5 0x58
-#define CS18_SW5 0x59
-#define CS1_SW6 0x5A
-#define CS2_SW6 0x5B
-#define CS3_SW6 0x5C
-#define CS4_SW6 0x5D
-#define CS5_SW6 0x5E
-#define CS6_SW6 0x5F
-#define CS7_SW6 0x60
-#define CS8_SW6 0x61
-#define CS9_SW6 0x62
-#define CS10_SW6 0x63
-#define CS11_SW6 0x64
-#define CS12_SW6 0x65
-#define CS13_SW6 0x66
-#define CS14_SW6 0x67
-#define CS15_SW6 0x68
-#define CS16_SW6 0x69
-#define CS17_SW6 0x6A
-#define CS18_SW6 0x6B
-#define CS1_SW7 0x6C
-#define CS2_SW7 0x6D
-#define CS3_SW7 0x6E
-#define CS4_SW7 0x6F
-#define CS5_SW7 0x70
-#define CS6_SW7 0x71
-#define CS7_SW7 0x72
-#define CS8_SW7 0x73
-#define CS9_SW7 0x74
-#define CS10_SW7 0x75
-#define CS11_SW7 0x76
-#define CS12_SW7 0x77
-#define CS13_SW7 0x78
-#define CS14_SW7 0x79
-#define CS15_SW7 0x7A
-#define CS16_SW7 0x7B
-#define CS17_SW7 0x7C
-#define CS18_SW7 0x7D
-#define CS1_SW8 0x7E
-#define CS2_SW8 0x7F
-#define CS3_SW8 0x80
-#define CS4_SW8 0x81
-#define CS5_SW8 0x82
-#define CS6_SW8 0x83
-#define CS7_SW8 0x84
-#define CS8_SW8 0x85
-#define CS9_SW8 0x86
-#define CS10_SW8 0x87
-#define CS11_SW8 0x88
-#define CS12_SW8 0x89
-#define CS13_SW8 0x8A
-#define CS14_SW8 0x8B
-#define CS15_SW8 0x8C
-#define CS16_SW8 0x8D
-#define CS17_SW8 0x8E
-#define CS18_SW8 0x8F
-#define CS1_SW9 0x90
-#define CS2_SW9 0x91
-#define CS3_SW9 0x92
-#define CS4_SW9 0x93
-#define CS5_SW9 0x94
-#define CS6_SW9 0x95
-#define CS7_SW9 0x96
-#define CS8_SW9 0x97
-#define CS9_SW9 0x98
-#define CS10_SW9 0x99
-#define CS11_SW9 0x9A
-#define CS12_SW9 0x9B
-#define CS13_SW9 0x9C
-#define CS14_SW9 0x9D
-#define CS15_SW9 0x9E
-#define CS16_SW9 0x9F
-#define CS17_SW9 0xA0
-#define CS18_SW9 0xA1
-#define CS1_SW10 0xA2
-#define CS2_SW10 0xA3
-#define CS3_SW10 0xA4
-#define CS4_SW10 0xA5
-#define CS5_SW10 0xA6
-#define CS6_SW10 0xA7
-#define CS7_SW10 0xA8
-#define CS8_SW10 0xA9
-#define CS9_SW10 0xAA
-#define CS10_SW10 0xAB
-#define CS11_SW10 0xAC
-#define CS12_SW10 0xAD
-#define CS13_SW10 0xAE
-#define CS14_SW10 0xAF
-#define CS15_SW10 0xB0
-#define CS16_SW10 0xB1
-#define CS17_SW10 0xB2
-#define CS18_SW10 0xB3
-#define CS1_SW11 0xB4
-#define CS2_SW11 0xB5
-#define CS3_SW11 0xB6
-#define CS4_SW11 0xB7
-#define CS5_SW11 0xB8
-#define CS6_SW11 0xB9
-#define CS7_SW11 0xBA
-#define CS8_SW11 0xBB
-#define CS9_SW11 0xBC
-#define CS10_SW11 0xBD
-#define CS11_SW11 0xBE
-#define CS12_SW11 0xBF
-#define CS13_SW11 0xC0
-#define CS14_SW11 0xC1
-#define CS15_SW11 0xC2
-#define CS16_SW11 0xC3
-#define CS17_SW11 0xC4
-#define CS18_SW11 0xC5
-#define CS1_SW12 0xC6
-#define CS2_SW12 0xC7
-#define CS3_SW12 0xC8
-#define CS4_SW12 0xC9
-#define CS5_SW12 0xCA
-#define CS6_SW12 0xCB
-#define CS7_SW12 0xCC
-#define CS8_SW12 0xCD
-#define CS9_SW12 0xCE
-#define CS10_SW12 0xCF
-#define CS11_SW12 0xD0
-#define CS12_SW12 0xD1
-#define CS13_SW12 0xD2
-#define CS14_SW12 0xD3
-#define CS15_SW12 0xD4
-#define CS16_SW12 0xD5
-#define CS17_SW12 0xD6
-#define CS18_SW12 0xD7
diff --git a/drivers/led/aw20216s.c b/drivers/led/aw20216s.c
new file mode 100644
index 0000000000..ab7f3ccb42
--- /dev/null
+++ b/drivers/led/aw20216s.c
@@ -0,0 +1,161 @@
+/* Copyright 2021 Jasper Chan
+ * 2023 Huckies <https://github.com/Huckies>
+ *
+ * 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 "aw20216s.h"
+#include "wait.h"
+#include "spi_master.h"
+
+#define AW20216S_PWM_REGISTER_COUNT 216
+
+#ifndef AW20216S_CONFIGURATION
+# define AW20216S_CONFIGURATION (AW20216S_CONFIGURATION_SWSEL_1_12 | AW20216S_CONFIGURATION_CHIPEN)
+#endif
+
+#ifndef AW20216S_MIX_FUNCTION
+# define AW20216S_MIX_FUNCTION (AW20216S_MIX_FUNCTION_LPEN)
+#endif
+
+#ifndef AW20216S_SCALING_MAX
+# define AW20216S_SCALING_MAX 150
+#endif
+
+#ifndef AW20216S_GLOBAL_CURRENT_MAX
+# define AW20216S_GLOBAL_CURRENT_MAX 150
+#endif
+
+#ifndef AW20216S_SPI_MODE
+# define AW20216S_SPI_MODE 0
+#endif
+
+#ifndef AW20216S_SPI_DIVISOR
+# define AW20216S_SPI_DIVISOR 4
+#endif
+
+uint8_t g_pwm_buffer[AW20216S_DRIVER_COUNT][AW20216S_PWM_REGISTER_COUNT];
+bool g_pwm_buffer_update_required[AW20216S_DRIVER_COUNT] = {false};
+
+bool aw20216s_write(pin_t cs_pin, uint8_t page, uint8_t reg, uint8_t* data, uint8_t len) {
+ static uint8_t s_spi_transfer_buffer[2] = {0};
+
+ if (!spi_start(cs_pin, false, AW20216S_SPI_MODE, AW20216S_SPI_DIVISOR)) {
+ spi_stop();
+ return false;
+ }
+
+ s_spi_transfer_buffer[0] = (AW20216S_ID | page | AW20216S_WRITE);
+ s_spi_transfer_buffer[1] = reg;
+
+ if (spi_transmit(s_spi_transfer_buffer, 2) != SPI_STATUS_SUCCESS) {
+ spi_stop();
+ return false;
+ }
+
+ if (spi_transmit(data, len) != SPI_STATUS_SUCCESS) {
+ spi_stop();
+ return false;
+ }
+
+ spi_stop();
+ return true;
+}
+
+static inline bool aw20216s_write_register(pin_t cs_pin, uint8_t page, uint8_t reg, uint8_t value) {
+ // Little wrapper so callers need not care about sending a buffer
+ return aw20216s_write(cs_pin, page, reg, &value, 1);
+}
+
+void aw20216s_soft_reset(pin_t cs_pin) {
+ aw20216s_write_register(cs_pin, AW20216S_PAGE_FUNCTION, AW20216S_FUNCTION_REG_RESET, AW20216S_RESET_MAGIC);
+}
+
+static void aw20216s_init_scaling(pin_t cs_pin) {
+ // Set constant current to the max, control brightness with PWM
+ for (uint8_t i = 0; i < AW20216S_PWM_REGISTER_COUNT; i++) {
+ aw20216s_write_register(cs_pin, AW20216S_PAGE_SCALING, i, AW20216S_SCALING_MAX);
+ }
+}
+
+static inline void aw20216s_init_current_limit(pin_t cs_pin) {
+ // Push config
+ aw20216s_write_register(cs_pin, AW20216S_PAGE_FUNCTION, AW20216S_FUNCTION_REG_GLOBAL_CURRENT, AW20216S_GLOBAL_CURRENT_MAX);
+}
+
+static inline void aw20216s_soft_enable(pin_t cs_pin) {
+ // Push config
+ aw20216s_write_register(cs_pin, AW20216S_PAGE_FUNCTION, AW20216S_FUNCTION_REG_CONFIGURATION, AW20216S_CONFIGURATION);
+}
+
+static inline void aw20216s_auto_lowpower(pin_t cs_pin) {
+ aw20216s_write_register(cs_pin, AW20216S_PAGE_FUNCTION, AW20216S_FUNCTION_REG_MIX_FUNCTION, AW20216S_MIX_FUNCTION);
+}
+
+void aw20216s_init_drivers(void) {
+ spi_init();
+
+ aw20216s_init(AW20216S_CS_PIN_1, AW20216S_EN_PIN_1);
+#if defined(AW20216S_CS_PIN_2)
+ aw20216s_init(AW20216S_CS_PIN_2, AW20216S_EN_PIN_2);
+#endif
+}
+
+void aw20216s_init(pin_t cs_pin, pin_t en_pin) {
+ setPinOutput(en_pin);
+ writePinHigh(en_pin);
+
+ aw20216s_soft_reset(cs_pin);
+ wait_ms(2);
+
+ // Drivers should start with all scaling and PWM registers as off
+ aw20216s_init_current_limit(cs_pin);
+ aw20216s_init_scaling(cs_pin);
+
+ aw20216s_soft_enable(cs_pin);
+ aw20216s_auto_lowpower(cs_pin);
+}
+
+void aw20216s_set_color(int index, uint8_t red, uint8_t green, uint8_t blue) {
+ aw20216s_led_t led;
+ memcpy_P(&led, (&g_aw20216s_leds[index]), sizeof(led));
+
+ if (g_pwm_buffer[led.driver][led.r] == red && g_pwm_buffer[led.driver][led.g] == green && g_pwm_buffer[led.driver][led.b] == blue) {
+ return;
+ }
+ g_pwm_buffer[led.driver][led.r] = red;
+ g_pwm_buffer[led.driver][led.g] = green;
+ g_pwm_buffer[led.driver][led.b] = blue;
+ g_pwm_buffer_update_required[led.driver] = true;
+}
+
+void aw20216s_set_color_all(uint8_t red, uint8_t green, uint8_t blue) {
+ for (uint8_t i = 0; i < AW20216S_LED_COUNT; i++) {
+ aw20216s_set_color(i, red, green, blue);
+ }
+}
+
+void aw20216s_update_pwm_buffers(pin_t cs_pin, uint8_t index) {
+ if (g_pwm_buffer_update_required[index]) {
+ aw20216s_write(cs_pin, AW20216S_PAGE_PWM, 0, g_pwm_buffer[index], AW20216S_PWM_REGISTER_COUNT);
+ }
+ g_pwm_buffer_update_required[index] = false;
+}
+
+void aw20216s_flush(void) {
+ aw20216s_update_pwm_buffers(AW20216S_CS_PIN_1, 0);
+#if defined(AW20216S_CS_PIN_2)
+ aw20216s_update_pwm_buffers(AW20216S_CS_PIN_2, 1);
+#endif
+}
diff --git a/drivers/led/aw20216s.h b/drivers/led/aw20216s.h
new file mode 100644
index 0000000000..38a0c92b2f
--- /dev/null
+++ b/drivers/led/aw20216s.h
@@ -0,0 +1,319 @@
+/* Copyright 2021 Jasper Chan (Gigahawk)
+ *
+ * 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 <stdint.h>
+#include <stdbool.h>
+#include "progmem.h"
+#include "gpio.h"
+#include "util.h"
+
+// ======== DEPRECATED DEFINES - DO NOT USE ========
+#ifdef AW_SCALING_MAX
+# define AW20216S_SCALING_MAX AW_SCALING_MAX
+#endif
+#ifdef AW_GLOBAL_CURRENT_MAX
+# define AW20216S_GLOBAL_CURRENT_MAX AW_GLOBAL_CURRENT_MAX
+#endif
+#ifdef AW_SPI_MODE
+# define AW20216S_SPI_MODE AW_SPI_MODE
+#endif
+#ifdef AW_SPI_DIVISOR
+# define AW20216S_SPI_DIVISOR AW_SPI_DIVISOR
+#endif
+#ifdef DRIVER_1_CS
+# define AW20216S_CS_PIN_1 DRIVER_1_CS
+#endif
+#ifdef DRIVER_2_CS
+# define AW20216S_CS_PIN_2 DRIVER_2_CS
+#endif
+#ifdef DRIVER_1_EN
+# define AW20216S_EN_PIN_1 DRIVER_1_EN
+#endif
+#ifdef DRIVER_2_EN
+# define AW20216S_EN_PIN_2 DRIVER_2_EN
+#endif
+
+#define aw_led aw20216s_led_t
+#define g_aw_leds g_aw20216s_leds
+// ========
+
+#define AW20216S_ID (0b1010 << 4)
+#define AW20216S_WRITE 0
+#define AW20216S_READ 1
+
+#define AW20216S_PAGE_FUNCTION (0x00 << 1)
+#define AW20216S_PAGE_PWM (0x01 << 1)
+#define AW20216S_PAGE_SCALING (0x02 << 1)
+#define AW20216S_PAGE_PATTERN_CHOICE (0x03 << 1)
+#define AW20216S_PAGE_PWM_SCALING (0x04 << 1)
+
+#define AW20216S_FUNCTION_REG_CONFIGURATION 0x00
+#define AW20216S_CONFIGURATION_SWSEL_1_12 (0b1011 << 4)
+#define AW20216S_CONFIGURATION_CHIPEN (0b1 << 0)
+
+#define AW20216S_FUNCTION_REG_GLOBAL_CURRENT 0x01
+
+#define AW20216S_FUNCTION_REG_RESET 0x2F
+#define AW20216S_RESET_MAGIC 0xAE
+
+#define AW20216S_FUNCTION_REG_MIX_FUNCTION 0x46
+#define AW20216S_MIX_FUNCTION_LPEN (0b1 << 1)
+
+#if defined(RGB_MATRIX_AW20216S)
+# define AW20216S_LED_COUNT RGB_MATRIX_LED_COUNT
+#endif
+
+#if defined(AW20216S_CS_PIN_2)
+# define AW20216S_DRIVER_COUNT 2
+#elif defined(AW20216S_CS_PIN_1)
+# define AW20216S_DRIVER_COUNT 1
+#endif
+
+typedef struct aw20216s_led_t {
+ uint8_t driver : 2;
+ uint8_t r;
+ uint8_t g;
+ uint8_t b;
+} PACKED aw20216s_led_t;
+
+extern const aw20216s_led_t PROGMEM g_aw20216s_leds[AW20216S_LED_COUNT];
+
+void aw20216s_init_drivers(void);
+void aw20216s_init(pin_t cs_pin, pin_t en_pin);
+void aw20216s_set_color(int index, uint8_t red, uint8_t green, uint8_t blue);
+void aw20216s_set_color_all(uint8_t red, uint8_t green, uint8_t blue);
+void aw20216s_update_pwm_buffers(pin_t cs_pin, uint8_t index);
+
+void aw20216s_flush(void);
+
+#define CS1_SW1 0x00
+#define CS2_SW1 0x01
+#define CS3_SW1 0x02
+#define CS4_SW1 0x03
+#define CS5_SW1 0x04
+#define CS6_SW1 0x05
+#define CS7_SW1 0x06
+#define CS8_SW1 0x07
+#define CS9_SW1 0x08
+#define CS10_SW1 0x09
+#define CS11_SW1 0x0A
+#define CS12_SW1 0x0B
+#define CS13_SW1 0x0C
+#define CS14_SW1 0x0D
+#define CS15_SW1 0x0E
+#define CS16_SW1 0x0F
+#define CS17_SW1 0x10
+#define CS18_SW1 0x11
+#define CS1_SW2 0x12
+#define CS2_SW2 0x13
+#define CS3_SW2 0x14
+#define CS4_SW2 0x15
+#define CS5_SW2 0x16
+#define CS6_SW2 0x17
+#define CS7_SW2 0x18
+#define CS8_SW2 0x19
+#define CS9_SW2 0x1A
+#define CS10_SW2 0x1B
+#define CS11_SW2 0x1C
+#define CS12_SW2 0x1D
+#define CS13_SW2 0x1E
+#define CS14_SW2 0x1F
+#define CS15_SW2 0x20
+#define CS16_SW2 0x21
+#define CS17_SW2 0x22
+#define CS18_SW2 0x23
+#define CS1_SW3 0x24
+#define CS2_SW3 0x25
+#define CS3_SW3 0x26
+#define CS4_SW3 0x27
+#define CS5_SW3 0x28
+#define CS6_SW3 0x29
+#define CS7_SW3 0x2A
+#define CS8_SW3 0x2B
+#define CS9_SW3 0x2C
+#define CS10_SW3 0x2D
+#define CS11_SW3 0x2E
+#define CS12_SW3 0x2F
+#define CS13_SW3 0x30
+#define CS14_SW3 0x31
+#define CS15_SW3 0x32
+#define CS16_SW3 0x33
+#define CS17_SW3 0x34
+#define CS18_SW3 0x35
+#define CS1_SW4 0x36
+#define CS2_SW4 0x37
+#define CS3_SW4 0x38
+#define CS4_SW4 0x39
+#define CS5_SW4 0x3A
+#define CS6_SW4 0x3B
+#define CS7_SW4 0x3C
+#define CS8_SW4 0x3D
+#define CS9_SW4 0x3E
+#define CS10_SW4 0x3F
+#define CS11_SW4 0x40
+#define CS12_SW4 0x41
+#define CS13_SW4 0x42
+#define CS14_SW4 0x43
+#define CS15_SW4 0x44
+#define CS16_SW4 0x45
+#define CS17_SW4 0x46
+#define CS18_SW4 0x47
+#define CS1_SW5 0x48
+#define CS2_SW5 0x49
+#define CS3_SW5 0x4A
+#define CS4_SW5 0x4B
+#define CS5_SW5 0x4C
+#define CS6_SW5 0x4D
+#define CS7_SW5 0x4E
+#define CS8_SW5 0x4F
+#define CS9_SW5 0x50
+#define CS10_SW5 0x51
+#define CS11_SW5 0x52
+#define CS12_SW5 0x53
+#define CS13_SW5 0x54
+#define CS14_SW5 0x55
+#define CS15_SW5 0x56
+#define CS16_SW5 0x57
+#define CS17_SW5 0x58
+#define CS18_SW5 0x59
+#define CS1_SW6 0x5A
+#define CS2_SW6 0x5B
+#define CS3_SW6 0x5C
+#define CS4_SW6 0x5D
+#define CS5_SW6 0x5E
+#define CS6_SW6 0x5F
+#define CS7_SW6 0x60
+#define CS8_SW6 0x61
+#define CS9_SW6 0x62
+#define CS10_SW6 0x63
+#define CS11_SW6 0x64
+#define CS12_SW6 0x65
+#define CS13_SW6 0x66
+#define CS14_SW6 0x67
+#define CS15_SW6 0x68
+#define CS16_SW6 0x69
+#define CS17_SW6 0x6A
+#define CS18_SW6 0x6B
+#define CS1_SW7 0x6C
+#define CS2_SW7 0x6D
+#define CS3_SW7 0x6E
+#define CS4_SW7 0x6F
+#define CS5_SW7 0x70
+#define CS6_SW7 0x71
+#define CS7_SW7 0x72
+#define CS8_SW7 0x73
+#define CS9_SW7 0x74
+#define CS10_SW7 0x75
+#define CS11_SW7 0x76
+#define CS12_SW7 0x77
+#define CS13_SW7 0x78
+#define CS14_SW7 0x79
+#define CS15_SW7 0x7A
+#define CS16_SW7 0x7B
+#define CS17_SW7 0x7C
+#define CS18_SW7 0x7D
+#define CS1_SW8 0x7E
+#define CS2_SW8 0x7F
+#define CS3_SW8 0x80
+#define CS4_SW8 0x81
+#define CS5_SW8 0x82
+#define CS6_SW8 0x83
+#define CS7_SW8 0x84
+#define CS8_SW8 0x85
+#define CS9_SW8 0x86
+#define CS10_SW8 0x87
+#define CS11_SW8 0x88
+#define CS12_SW8 0x89
+#define CS13_SW8 0x8A
+#define CS14_SW8 0x8B
+#define CS15_SW8 0x8C
+#define CS16_SW8 0x8D
+#define CS17_SW8 0x8E
+#define CS18_SW8 0x8F
+#define CS1_SW9 0x90
+#define CS2_SW9 0x91
+#define CS3_SW9 0x92
+#define CS4_SW9 0x93
+#define CS5_SW9 0x94
+#define CS6_SW9 0x95
+#define CS7_SW9 0x96
+#define CS8_SW9 0x97
+#define CS9_SW9 0x98
+#define CS10_SW9 0x99
+#define CS11_SW9 0x9A
+#define CS12_SW9 0x9B
+#define CS13_SW9 0x9C
+#define CS14_SW9 0x9D
+#define CS15_SW9 0x9E
+#define CS16_SW9 0x9F
+#define CS17_SW9 0xA0
+#define CS18_SW9 0xA1
+#define CS1_SW10 0xA2
+#define CS2_SW10 0xA3
+#define CS3_SW10 0xA4
+#define CS4_SW10 0xA5
+#define CS5_SW10 0xA6
+#define CS6_SW10 0xA7
+#define CS7_SW10 0xA8
+#define CS8_SW10 0xA9
+#define CS9_SW10 0xAA
+#define CS10_SW10 0xAB
+#define CS11_SW10 0xAC
+#define CS12_SW10 0xAD
+#define CS13_SW10 0xAE
+#define CS14_SW10 0xAF
+#define CS15_SW10 0xB0
+#define CS16_SW10 0xB1
+#define CS17_SW10 0xB2
+#define CS18_SW10 0xB3
+#define CS1_SW11 0xB4
+#define CS2_SW11 0xB5
+#define CS3_SW11 0xB6
+#define CS4_SW11 0xB7
+#define CS5_SW11 0xB8
+#define CS6_SW11 0xB9
+#define CS7_SW11 0xBA
+#define CS8_SW11 0xBB
+#define CS9_SW11 0xBC
+#define CS10_SW11 0xBD
+#define CS11_SW11 0xBE
+#define CS12_SW11 0xBF
+#define CS13_SW11 0xC0
+#define CS14_SW11 0xC1
+#define CS15_SW11 0xC2
+#define CS16_SW11 0xC3
+#define CS17_SW11 0xC4
+#define CS18_SW11 0xC5
+#define CS1_SW12 0xC6
+#define CS2_SW12 0xC7
+#define CS3_SW12 0xC8
+#define CS4_SW12 0xC9
+#define CS5_SW12 0xCA
+#define CS6_SW12 0xCB
+#define CS7_SW12 0xCC
+#define CS8_SW12 0xCD
+#define CS9_SW12 0xCE
+#define CS10_SW12 0xCF
+#define CS11_SW12 0xD0
+#define CS12_SW12 0xD1
+#define CS13_SW12 0xD2
+#define CS14_SW12 0xD3
+#define CS15_SW12 0xD4
+#define CS16_SW12 0xD5
+#define CS17_SW12 0xD6
+#define CS18_SW12 0xD7
diff --git a/drivers/led/ckled2001-simple.c b/drivers/led/ckled2001-simple.c
deleted file mode 100644
index c4d4c0a4cc..0000000000
--- a/drivers/led/ckled2001-simple.c
+++ /dev/null
@@ -1,221 +0,0 @@
-/* Copyright 2021 @ Keychron (https://www.keychron.com)
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-#include "ckled2001-simple.h"
-#include "i2c_master.h"
-#include "wait.h"
-
-#ifndef CKLED2001_TIMEOUT
-# define CKLED2001_TIMEOUT 100
-#endif
-
-#ifndef CKLED2001_PERSISTENCE
-# define CKLED2001_PERSISTENCE 0
-#endif
-
-#ifndef PHASE_CHANNEL
-# define PHASE_CHANNEL MSKPHASE_12CHANNEL
-#endif
-
-#ifndef CKLED2001_CURRENT_TUNE
-# define CKLED2001_CURRENT_TUNE \
- { 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF }
-#endif
-
-// Transfer buffer for TWITransmitData()
-uint8_t g_twi_transfer_buffer[20];
-
-// These buffers match the CKLED2001 PWM registers.
-// The control buffers match the PG0 LED On/Off registers.
-// Storing them like this is optimal for I2C transfers to the registers.
-// We could optimize this and take out the unused registers from these
-// buffers and the transfers in ckled2001_write_pwm_buffer() but it's
-// probably not worth the extra complexity.
-uint8_t g_pwm_buffer[DRIVER_COUNT][192];
-bool g_pwm_buffer_update_required[DRIVER_COUNT] = {false};
-
-uint8_t g_led_control_registers[DRIVER_COUNT][24] = {0};
-bool g_led_control_registers_update_required[DRIVER_COUNT] = {false};
-
-bool ckled2001_write_register(uint8_t addr, uint8_t reg, uint8_t data) {
- // If the transaction fails function returns false.
- g_twi_transfer_buffer[0] = reg;
- g_twi_transfer_buffer[1] = data;
-
-#if CKLED2001_PERSISTENCE > 0
- for (uint8_t i = 0; i < CKLED2001_PERSISTENCE; i++) {
- if (i2c_transmit(addr << 1, g_twi_transfer_buffer, 2, CKLED2001_TIMEOUT) != 0) {
- return false;
- }
- }
-#else
- if (i2c_transmit(addr << 1, g_twi_transfer_buffer, 2, CKLED2001_TIMEOUT) != 0) {
- return false;
- }
-#endif
- return true;
-}
-
-bool ckled2001_write_pwm_buffer(uint8_t addr, uint8_t *pwm_buffer) {
- // Assumes PG1 is already selected.
- // If any of the transactions fails function returns false.
- // Transmit PWM registers in 12 transfers of 16 bytes.
- // g_twi_transfer_buffer[] is 20 bytes
-
- // Iterate over the pwm_buffer contents at 16 byte intervals.
- for (int i = 0; i < 192; i += 16) {
- g_twi_transfer_buffer[0] = i;
- // Copy the data from i to i+15.
- // Device will auto-increment register for data after the first byte
- // Thus this sets registers 0x00-0x0F, 0x10-0x1F, etc. in one transfer.
- for (int j = 0; j < 16; j++) {
- g_twi_transfer_buffer[1 + j] = pwm_buffer[i + j];
- }
-
-#if CKLED2001_PERSISTENCE > 0
- for (uint8_t i = 0; i < CKLED2001_PERSISTENCE; i++) {
- if (i2c_transmit(addr << 1, g_twi_transfer_buffer, 17, CKLED2001_TIMEOUT) != 0) {
- return false;
- }
- }
-#else
- if (i2c_transmit(addr << 1, g_twi_transfer_buffer, 17, CKLED2001_TIMEOUT) != 0) {
- return false;
- }
-#endif
- }
- return true;
-}
-
-void ckled2001_init(uint8_t addr) {
- // Select to function page
- ckled2001_write_register(addr, CONFIGURE_CMD_PAGE, FUNCTION_PAGE);
- // Setting LED driver to shutdown mode
- ckled2001_write_register(addr, CONFIGURATION_REG, MSKSW_SHUT_DOWN_MODE);
- // Setting internal channel pulldown/pullup
- ckled2001_write_register(addr, PDU_REG, MSKSET_CA_CB_CHANNEL);
- // Select number of scan phase
- ckled2001_write_register(addr, SCAN_PHASE_REG, PHASE_CHANNEL);
- // Setting PWM Delay Phase
- ckled2001_write_register(addr, SLEW_RATE_CONTROL_MODE1_REG, MSKPWM_DELAY_PHASE_ENABLE);
- // Setting Driving/Sinking Channel Slew Rate
- ckled2001_write_register(addr, SLEW_RATE_CONTROL_MODE2_REG, MSKDRIVING_SINKING_CHHANNEL_SLEWRATE_ENABLE);
- // Setting Iref
- ckled2001_write_register(addr, SOFTWARE_SLEEP_REG, MSKSLEEP_DISABLE);
- // Set LED CONTROL PAGE (Page 0)
- ckled2001_write_register(addr, CONFIGURE_CMD_PAGE, LED_CONTROL_PAGE);
- for (int i = 0; i < LED_CONTROL_ON_OFF_LENGTH; i++) {
- ckled2001_write_register(addr, i, 0x00);
- }
-
- // Set PWM PAGE (Page 1)
- ckled2001_write_register(addr, CONFIGURE_CMD_PAGE, LED_PWM_PAGE);
- for (int i = 0; i < LED_CURRENT_TUNE_LENGTH; i++) {
- ckled2001_write_register(addr, i, 0x00);
- }
-
- // Set CURRENT PAGE (Page 4)
- uint8_t current_tuen_reg_list[LED_CURRENT_TUNE_LENGTH] = CKLED2001_CURRENT_TUNE;
- ckled2001_write_register(addr, CONFIGURE_CMD_PAGE, CURRENT_TUNE_PAGE);
- for (int i = 0; i < LED_CURRENT_TUNE_LENGTH; i++) {
- ckled2001_write_register(addr, i, current_tuen_reg_list[i]);
- }
-
- // Enable LEDs ON/OFF
- ckled2001_write_register(addr, CONFIGURE_CMD_PAGE, LED_CONTROL_PAGE);
- for (int i = 0; i < LED_CONTROL_ON_OFF_LENGTH; i++) {
- ckled2001_write_register(addr, i, 0xFF);
- }
-
- // Select to function page
- ckled2001_write_register(addr, CONFIGURE_CMD_PAGE, FUNCTION_PAGE);
- // Setting LED driver to normal mode
- ckled2001_write_register(addr, CONFIGURATION_REG, MSKSW_NORMAL_MODE);
-}
-
-void ckled2001_set_value(int index, uint8_t value) {
- ckled2001_led led;
- if (index >= 0 && index < LED_MATRIX_LED_COUNT) {
- memcpy_P(&led, (&g_ckled2001_leds[index]), sizeof(led));
-
- if (g_pwm_buffer[led.driver][led.v] == value) {
- return;
- }
- g_pwm_buffer[led.driver][led.v] = value;
- g_pwm_buffer_update_required[led.driver] = true;
- }
-}
-
-void ckled2001_set_value_all(uint8_t value) {
- for (int i = 0; i < LED_MATRIX_LED_COUNT; i++) {
- ckled2001_set_value(i, value);
- }
-}
-
-void ckled2001_set_led_control_register(uint8_t index, bool value) {
- ckled2001_led led;
- memcpy_P(&led, (&g_ckled2001_leds[index]), sizeof(led));
-
- uint8_t control_register = led.v / 8;
- uint8_t bit_value = led.v % 8;
-
- if (value) {
- g_led_control_registers[led.driver][control_register] |= (1 << bit_value);
- } else {
- g_led_control_registers[led.driver][control_register] &= ~(1 << bit_value);
- }
-
- g_led_control_registers_update_required[led.driver] = true;
-}
-
-void ckled2001_update_pwm_buffers(uint8_t addr, uint8_t index) {
- if (g_pwm_buffer_update_required[index]) {
- ckled2001_write_register(addr, CONFIGURE_CMD_PAGE, LED_PWM_PAGE);
-
- // If any of the transactions fail we risk writing dirty PG0,
- // refresh page 0 just in case.
- if (!ckled2001_write_pwm_buffer(addr, g_pwm_buffer[index])) {
- g_led_control_registers_update_required[index] = true;
- }
- }
- g_pwm_buffer_update_required[index] = false;
-}
-
-void ckled2001_update_led_control_registers(uint8_t addr, uint8_t index) {
- if (g_led_control_registers_update_required[index]) {
- ckled2001_write_register(addr, CONFIGURE_CMD_PAGE, LED_CONTROL_PAGE);
- for (int i = 0; i < 24; i++) {
- ckled2001_write_register(addr, i, g_led_control_registers[index][i]);
- }
- }
- g_led_control_registers_update_required[index] = false;
-}
-
-void ckled2001_sw_return_normal(uint8_t addr) {
- // Select to function page
- ckled2001_write_register(addr, CONFIGURE_CMD_PAGE, FUNCTION_PAGE);
- // Setting LED driver to normal mode
- ckled2001_write_register(addr, CONFIGURATION_REG, MSKSW_NORMAL_MODE);
-}
-
-void ckled2001_sw_shutdown(uint8_t addr) {
- // Select to function page
- ckled2001_write_register(addr, CONFIGURE_CMD_PAGE, FUNCTION_PAGE);
- // Setting LED driver to shutdown mode
- ckled2001_write_register(addr, CONFIGURATION_REG, MSKSW_SHUT_DOWN_MODE);
- // Write SW Sleep Register
- ckled2001_write_register(addr, SOFTWARE_SLEEP_REG, MSKSLEEP_ENABLE);
-}
diff --git a/drivers/led/ckled2001-simple.h b/drivers/led/ckled2001-simple.h
deleted file mode 100644
index c94df62dd2..0000000000
--- a/drivers/led/ckled2001-simple.h
+++ /dev/null
@@ -1,337 +0,0 @@
-/* Copyright 2021 @ Keychron (https://www.keychron.com)
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-#pragma once
-
-#include <stdint.h>
-#include <stdbool.h>
-#include "progmem.h"
-
-typedef struct ckled2001_led {
- uint8_t driver : 2;
- uint8_t v;
-} __attribute__((packed)) ckled2001_led;
-
-extern const ckled2001_led PROGMEM g_ckled2001_leds[LED_MATRIX_LED_COUNT];
-
-void ckled2001_init(uint8_t addr);
-bool ckled2001_write_register(uint8_t addr, uint8_t reg, uint8_t data);
-bool ckled2001_write_pwm_buffer(uint8_t addr, uint8_t *pwm_buffer);
-
-void ckled2001_set_value(int index, uint8_t value);
-void ckled2001_set_value_all(uint8_t value);
-
-void ckled2001_set_led_control_register(uint8_t index, bool value);
-
-// This should not be called from an interrupt
-// (eg. from a timer interrupt).
-// Call this while idle (in between matrix scans).
-// If the buffer is dirty, it will update the driver with the buffer.
-void ckled2001_update_pwm_buffers(uint8_t addr, uint8_t index);
-void ckled2001_update_led_control_registers(uint8_t addr, uint8_t index);
-
-void ckled2001_sw_return_normal(uint8_t addr);
-void ckled2001_sw_shutdown(uint8_t addr);
-
-// Registers Page Define
-#define CONFIGURE_CMD_PAGE 0xFD
-#define LED_CONTROL_PAGE 0x00
-#define LED_PWM_PAGE 0x01
-#define FUNCTION_PAGE 0x03
-#define CURRENT_TUNE_PAGE 0x04
-
-// Function Register: address 0x00
-#define CONFIGURATION_REG 0x00
-#define MSKSW_SHUT_DOWN_MODE (0x0 << 0)
-#define MSKSW_NORMAL_MODE (0x1 << 0)
-
-#define DRIVER_ID_REG 0x11
-#define CKLED2001_ID 0x8A
-
-#define PDU_REG 0x13
-#define MSKSET_CA_CB_CHANNEL 0xAA
-#define MSKCLR_CA_CB_CHANNEL 0x00
-
-#define SCAN_PHASE_REG 0x14
-#define MSKPHASE_12CHANNEL 0x00
-#define MSKPHASE_11CHANNEL 0x01
-#define MSKPHASE_10CHANNEL 0x02
-#define MSKPHASE_9CHANNEL 0x03
-#define MSKPHASE_8CHANNEL 0x04
-#define MSKPHASE_7CHANNEL 0x05
-#define MSKPHASE_6CHANNEL 0x06
-#define MSKPHASE_5CHANNEL 0x07
-#define MSKPHASE_4CHANNEL 0x08
-#define MSKPHASE_3CHANNEL 0x09
-#define MSKPHASE_2CHANNEL 0x0A
-#define MSKPHASE_1CHANNEL 0x0B
-
-#define SLEW_RATE_CONTROL_MODE1_REG 0x15
-#define MSKPWM_DELAY_PHASE_ENABLE 0x04
-#define MSKPWM_DELAY_PHASE_DISABLE 0x00
-
-#define SLEW_RATE_CONTROL_MODE2_REG 0x16
-#define MSKDRIVING_SINKING_CHHANNEL_SLEWRATE_ENABLE 0xC0
-#define MSKDRIVING_SINKING_CHHANNEL_SLEWRATE_DISABLE 0x00
-
-#define OPEN_SHORT_ENABLE_REG 0x17
-#define MSKOPEN_DETECTION_ENABLE (0x01 << 7)
-#define MSKOPEN_DETECTION_DISABLE (0x00)
-
-#define MSKSHORT_DETECTION_ENABLE (0x01 << 6)
-#define MSKSHORT_DETECTION_DISABLE (0x00)
-
-#define OPEN_SHORT_DUTY_REG 0x18
-#define OPEN_SHORT_FLAG_REG 0x19
-
-#define MSKOPEN_DETECTION_INTERRUPT_ENABLE (0x01 << 7)
-#define MSKOPEN_DETECTION_INTERRUPT_DISABLE (0x00)
-
-#define MSKSHORT_DETECTION_INTERRUPT_ENABLE (0x01 << 6)
-#define MSKSHORT_DETECTION_INTERRUPT_DISABLE (0x00)
-
-#define SOFTWARE_SLEEP_REG 0x1A
-#define MSKSLEEP_ENABLE 0x02
-#define MSKSLEEP_DISABLE 0x00
-
-// LED Control Registers
-#define LED_CONTROL_ON_OFF_FIRST_ADDR 0x0
-#define LED_CONTROL_ON_OFF_LAST_ADDR 0x17
-#define LED_CONTROL_ON_OFF_LENGTH ((LED_CONTROL_ON_OFF_LAST_ADDR - LED_CONTROL_ON_OFF_FIRST_ADDR) + 1)
-
-#define LED_CONTROL_OPEN_FIRST_ADDR 0x18
-#define LED_CONTROL_OPEN_LAST_ADDR 0x2F
-#define LED_CONTROL_OPEN_LENGTH ((LED_CONTROL_OPEN_LAST_ADDR - LED_CONTROL_OPEN_FIRST_ADDR) + 1)
-
-#define LED_CONTROL_SHORT_FIRST_ADDR 0x30
-#define LED_CONTROL_SHORT_LAST_ADDR 0x47
-#define LED_CONTROL_SHORT_LENGTH ((LED_CONTROL_SHORT_LAST_ADDR - LED_CONTROL_SHORT_FIRST_ADDR) + 1)
-
-#define LED_CONTROL_PAGE_LENGTH 0x48
-
-// LED Control Registers
-#define LED_PWM_FIRST_ADDR 0x00
-#define LED_PWM_LAST_ADDR 0xBF
-#define LED_PWM_LENGTH 0xC0
-
-// Current Tune Registers
-#define LED_CURRENT_TUNE_FIRST_ADDR 0x00
-#define LED_CURRENT_TUNE_LAST_ADDR 0x0B
-#define LED_CURRENT_TUNE_LENGTH 0x0C
-
-#define A_1 0x00
-#define A_2 0x01
-#define A_3 0x02
-#define A_4 0x03
-#define A_5 0x04
-#define A_6 0x05
-#define A_7 0x06
-#define A_8 0x07
-#define A_9 0x08
-#define A_10 0x09
-#define A_11 0x0A
-#define A_12 0x0B
-#define A_13 0x0C
-#define A_14 0x0D
-#define A_15 0x0E
-#define A_16 0x0F
-
-#define B_1 0x10
-#define B_2 0x11
-#define B_3 0x12
-#define B_4 0x13
-#define B_5 0x14
-#define B_6 0x15
-#define B_7 0x16
-#define B_8 0x17
-#define B_9 0x18
-#define B_10 0x19
-#define B_11 0x1A
-#define B_12 0x1B
-#define B_13 0x1C
-#define B_14 0x1D
-#define B_15 0x1E
-#define B_16 0x1F
-
-#define C_1 0x20
-#define C_2 0x21
-#define C_3 0x22
-#define C_4 0x23
-#define C_5 0x24
-#define C_6 0x25
-#define C_7 0x26
-#define C_8 0x27
-#define C_9 0x28
-#define C_10 0x29
-#define C_11 0x2A
-#define C_12 0x2B
-#define C_13 0x2C
-#define C_14 0x2D
-#define C_15 0x2E
-#define C_16 0x2F
-
-#define D_1 0x30
-#define D_2 0x31
-#define D_3 0x32
-#define D_4 0x33
-#define D_5 0x34
-#define D_6 0x35
-#define D_7 0x36
-#define D_8 0x37
-#define D_9 0x38
-#define D_10 0x39
-#define D_11 0x3A
-#define D_12 0x3B
-#define D_13 0x3C
-#define D_14 0x3D
-#define D_15 0x3E
-#define D_16 0x3F
-
-#define E_1 0x40
-#define E_2 0x41
-#define E_3 0x42
-#define E_4 0x43
-#define E_5 0x44
-#define E_6 0x45
-#define E_7 0x46
-#define E_8 0x47
-#define E_9 0x48
-#define E_10 0x49
-#define E_11 0x4A
-#define E_12 0x4B
-#define E_13 0x4C
-#define E_14 0x4D
-#define E_15 0x4E
-#define E_16 0x4F
-
-#define F_1 0x50
-#define F_2 0x51
-#define F_3 0x52
-#define F_4 0x53
-#define F_5 0x54
-#define F_6 0x55
-#define F_7 0x56
-#define F_8 0x57
-#define F_9 0x58
-#define F_10 0x59
-#define F_11 0x5A
-#define F_12 0x5B
-#define F_13 0x5C
-#define F_14 0x5D
-#define F_15 0x5E
-#define F_16 0x5F
-
-#define G_1 0x60
-#define G_2 0x61
-#define G_3 0x62
-#define G_4 0x63
-#define G_5 0x64
-#define G_6 0x65
-#define G_7 0x66
-#define G_8 0x67
-#define G_9 0x68
-#define G_10 0x69
-#define G_11 0x6A
-#define G_12 0x6B
-#define G_13 0x6C
-#define G_14 0x6D
-#define G_15 0x6E
-#define G_16 0x6F
-
-#define H_1 0x70
-#define H_2 0x71
-#define H_3 0x72
-#define H_4 0x73
-#define H_5 0x74
-#define H_6 0x75
-#define H_7 0x76
-#define H_8 0x77
-#define H_9 0x78
-#define H_10 0x79
-#define H_11 0x7A
-#define H_12 0x7B
-#define H_13 0x7C
-#define H_14 0x7D
-#define H_15 0x7E
-#define H_16 0x7F
-
-#define I_1 0x80
-#define I_2 0x81
-#define I_3 0x82
-#define I_4 0x83
-#define I_5 0x84
-#define I_6 0x85
-#define I_7 0x86
-#define I_8 0x87
-#define I_9 0x88
-#define I_10 0x89
-#define I_11 0x8A
-#define I_12 0x8B
-#define I_13 0x8C
-#define I_14 0x8D
-#define I_15 0x8E
-#define I_16 0x8F
-
-#define J_1 0x90
-#define J_2 0x91
-#define J_3 0x92
-#define J_4 0x93
-#define J_5 0x94
-#define J_6 0x95
-#define J_7 0x96
-#define J_8 0x97
-#define J_9 0x98
-#define J_10 0x99
-#define J_11 0x9A
-#define J_12 0x9B
-#define J_13 0x9C
-#define J_14 0x9D
-#define J_15 0x9E
-#define J_16 0x9F
-
-#define K_1 0xA0
-#define K_2 0xA1
-#define K_3 0xA2
-#define K_4 0xA3
-#define K_5 0xA4
-#define K_6 0xA5
-#define K_7 0xA6
-#define K_8 0xA7
-#define K_9 0xA8
-#define K_10 0xA9
-#define K_11 0xAA
-#define K_12 0xAB
-#define K_13 0xAC
-#define K_14 0xAD
-#define K_15 0xAE
-#define K_16 0xAF
-
-#define L_1 0xB0
-#define L_2 0xB1
-#define L_3 0xB2
-#define L_4 0xB3
-#define L_5 0xB4
-#define L_6 0xB5
-#define L_7 0xB6
-#define L_8 0xB7
-#define L_9 0xB8
-#define L_10 0xB9
-#define L_11 0xBA
-#define L_12 0xBB
-#define L_13 0xBC
-#define L_14 0xBD
-#define L_15 0xBE
-#define L_16 0xBF \ No newline at end of file
diff --git a/drivers/led/ckled2001.c b/drivers/led/ckled2001.c
deleted file mode 100644
index 6ababf55e9..0000000000
--- a/drivers/led/ckled2001.c
+++ /dev/null
@@ -1,236 +0,0 @@
-/* Copyright 2021 @ Keychron (https://www.keychron.com)
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-#include "ckled2001.h"
-#include "i2c_master.h"
-#include "wait.h"
-
-#ifndef CKLED2001_TIMEOUT
-# define CKLED2001_TIMEOUT 100
-#endif
-
-#ifndef CKLED2001_PERSISTENCE
-# define CKLED2001_PERSISTENCE 0
-#endif
-
-#ifndef PHASE_CHANNEL
-# define PHASE_CHANNEL MSKPHASE_12CHANNEL
-#endif
-
-#ifndef CKLED2001_CURRENT_TUNE
-# define CKLED2001_CURRENT_TUNE \
- { 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF }
-#endif
-
-// Transfer buffer for TWITransmitData()
-uint8_t g_twi_transfer_buffer[65];
-
-// These buffers match the CKLED2001 PWM registers.
-// The control buffers match the PG0 LED On/Off registers.
-// Storing them like this is optimal for I2C transfers to the registers.
-// We could optimize this and take out the unused registers from these
-// buffers and the transfers in ckled2001_write_pwm_buffer() but it's
-// probably not worth the extra complexity.
-uint8_t g_pwm_buffer[DRIVER_COUNT][192];
-bool g_pwm_buffer_update_required[DRIVER_COUNT] = {false};
-
-uint8_t g_led_control_registers[DRIVER_COUNT][24] = {0};
-bool g_led_control_registers_update_required[DRIVER_COUNT] = {false};
-
-bool ckled2001_write_register(uint8_t addr, uint8_t reg, uint8_t data) {
- // If the transaction fails function returns false.
- g_twi_transfer_buffer[0] = reg;
- g_twi_transfer_buffer[1] = data;
-
-#if CKLED2001_PERSISTENCE > 0
- for (uint8_t i = 0; i < CKLED2001_PERSISTENCE; i++) {
- if (i2c_transmit(addr << 1, g_twi_transfer_buffer, 2, CKLED2001_TIMEOUT) != 0) {
- return false;
- }
- }
-#else
- if (i2c_transmit(addr << 1, g_twi_transfer_buffer, 2, CKLED2001_TIMEOUT) != 0) {
- return false;
- }
-#endif
- return true;
-}
-
-bool ckled2001_write_pwm_buffer(uint8_t addr, uint8_t *pwm_buffer) {
- // Assumes PG1 is already selected.
- // If any of the transactions fails function returns false.
- // Transmit PWM registers in 3 transfers of 64 bytes.
-
- // Iterate over the pwm_buffer contents at 64 byte intervals.
- for (uint8_t i = 0; i < 192; i += 64) {
- g_twi_transfer_buffer[0] = i;
- // Copy the data from i to i+63.
- // Device will auto-increment register for data after the first byte
- // Thus this sets registers 0x00-0x0F, 0x10-0x1F, etc. in one transfer.
- for (uint8_t j = 0; j < 64; j++) {
- g_twi_transfer_buffer[1 + j] = pwm_buffer[i + j];
- }
-
-#if CKLED2001_PERSISTENCE > 0
- for (uint8_t i = 0; i < CKLED2001_PERSISTENCE; i++) {
- if (i2c_transmit(addr << 1, g_twi_transfer_buffer, 65, CKLED2001_TIMEOUT) != 0) {
- return false;
- }
- }
-#else
- if (i2c_transmit(addr << 1, g_twi_transfer_buffer, 65, CKLED2001_TIMEOUT) != 0) {
- return false;
- }
-#endif
- }
- return true;
-}
-
-void ckled2001_init(uint8_t addr) {
- // Select to function page
- ckled2001_write_register(addr, CONFIGURE_CMD_PAGE, FUNCTION_PAGE);
- // Setting LED driver to shutdown mode
- ckled2001_write_register(addr, CONFIGURATION_REG, MSKSW_SHUT_DOWN_MODE);
- // Setting internal channel pulldown/pullup
- ckled2001_write_register(addr, PDU_REG, MSKSET_CA_CB_CHANNEL);
- // Select number of scan phase
- ckled2001_write_register(addr, SCAN_PHASE_REG, PHASE_CHANNEL);
- // Setting PWM Delay Phase
- ckled2001_write_register(addr, SLEW_RATE_CONTROL_MODE1_REG, MSKPWM_DELAY_PHASE_ENABLE);
- // Setting Driving/Sinking Channel Slew Rate
- ckled2001_write_register(addr, SLEW_RATE_CONTROL_MODE2_REG, MSKDRIVING_SINKING_CHHANNEL_SLEWRATE_ENABLE);
- // Setting Iref
- ckled2001_write_register(addr, SOFTWARE_SLEEP_REG, MSKSLEEP_DISABLE);
- // Set LED CONTROL PAGE (Page 0)
- ckled2001_write_register(addr, CONFIGURE_CMD_PAGE, LED_CONTROL_PAGE);
- for (int i = 0; i < LED_CONTROL_ON_OFF_LENGTH; i++) {
- ckled2001_write_register(addr, i, 0x00);
- }
-
- // Set PWM PAGE (Page 1)
- ckled2001_write_register(addr, CONFIGURE_CMD_PAGE, LED_PWM_PAGE);
- for (int i = 0; i < LED_CURRENT_TUNE_LENGTH; i++) {
- ckled2001_write_register(addr, i, 0x00);
- }
-
- // Set CURRENT PAGE (Page 4)
- uint8_t current_tuen_reg_list[LED_CURRENT_TUNE_LENGTH] = CKLED2001_CURRENT_TUNE;
- ckled2001_write_register(addr, CONFIGURE_CMD_PAGE, CURRENT_TUNE_PAGE);
- for (int i = 0; i < LED_CURRENT_TUNE_LENGTH; i++) {
- ckled2001_write_register(addr, i, current_tuen_reg_list[i]);
- }
-
- // Enable LEDs ON/OFF
- ckled2001_write_register(addr, CONFIGURE_CMD_PAGE, LED_CONTROL_PAGE);
- for (int i = 0; i < LED_CONTROL_ON_OFF_LENGTH; i++) {
- ckled2001_write_register(addr, i, 0xFF);
- }
-
- // Select to function page
- ckled2001_write_register(addr, CONFIGURE_CMD_PAGE, FUNCTION_PAGE);
- // Setting LED driver to normal mode
- ckled2001_write_register(addr, CONFIGURATION_REG, MSKSW_NORMAL_MODE);
-}
-
-void ckled2001_set_color(int index, uint8_t red, uint8_t green, uint8_t blue) {
- ckled2001_led led;
- if (index >= 0 && index < RGB_MATRIX_LED_COUNT) {
- memcpy_P(&led, (&g_ckled2001_leds[index]), sizeof(led));
-
- if (g_pwm_buffer[led.driver][led.r] == red && g_pwm_buffer[led.driver][led.g] == green && g_pwm_buffer[led.driver][led.b] == blue) {
- return;
- }
- g_pwm_buffer[led.driver][led.r] = red;
- g_pwm_buffer[led.driver][led.g] = green;
- g_pwm_buffer[led.driver][led.b] = blue;
- g_pwm_buffer_update_required[led.driver] = true;
- }
-}
-
-void ckled2001_set_color_all(uint8_t red, uint8_t green, uint8_t blue) {
- for (int i = 0; i < RGB_MATRIX_LED_COUNT; i++) {
- ckled2001_set_color(i, red, green, blue);
- }
-}
-
-void ckled2001_set_led_control_register(uint8_t index, bool red, bool green, bool blue) {
- ckled2001_led led;
- memcpy_P(&led, (&g_ckled2001_leds[index]), sizeof(led));
-
- uint8_t control_register_r = led.r / 8;
- uint8_t control_register_g = led.g / 8;
- uint8_t control_register_b = led.b / 8;
- uint8_t bit_r = led.r % 8;
- uint8_t bit_g = led.g % 8;
- uint8_t bit_b = led.b % 8;
-
- if (red) {
- g_led_control_registers[led.driver][control_register_r] |= (1 << bit_r);
- } else {
- g_led_control_registers[led.driver][control_register_r] &= ~(1 << bit_r);
- }
- if (green) {
- g_led_control_registers[led.driver][control_register_g] |= (1 << bit_g);
- } else {
- g_led_control_registers[led.driver][control_register_g] &= ~(1 << bit_g);
- }
- if (blue) {
- g_led_control_registers[led.driver][control_register_b] |= (1 << bit_b);
- } else {
- g_led_control_registers[led.driver][control_register_b] &= ~(1 << bit_b);
- }
-
- g_led_control_registers_update_required[led.driver] = true;
-}
-
-void ckled2001_update_pwm_buffers(uint8_t addr, uint8_t index) {
- if (g_pwm_buffer_update_required[index]) {
- ckled2001_write_register(addr, CONFIGURE_CMD_PAGE, LED_PWM_PAGE);
-
- // If any of the transactions fail we risk writing dirty PG0,
- // refresh page 0 just in case.
- if (!ckled2001_write_pwm_buffer(addr, g_pwm_buffer[index])) {
- g_led_control_registers_update_required[index] = true;
- }
- }
- g_pwm_buffer_update_required[index] = false;
-}
-
-void ckled2001_update_led_control_registers(uint8_t addr, uint8_t index) {
- if (g_led_control_registers_update_required[index]) {
- ckled2001_write_register(addr, CONFIGURE_CMD_PAGE, LED_CONTROL_PAGE);
- for (int i = 0; i < 24; i++) {
- ckled2001_write_register(addr, i, g_led_control_registers[index][i]);
- }
- }
- g_led_control_registers_update_required[index] = false;
-}
-
-void ckled2001_sw_return_normal(uint8_t addr) {
- // Select to function page
- ckled2001_write_register(addr, CONFIGURE_CMD_PAGE, FUNCTION_PAGE);
- // Setting LED driver to normal mode
- ckled2001_write_register(addr, CONFIGURATION_REG, MSKSW_NORMAL_MODE);
-}
-
-void ckled2001_sw_shutdown(uint8_t addr) {
- // Select to function page
- ckled2001_write_register(addr, CONFIGURE_CMD_PAGE, FUNCTION_PAGE);
- // Setting LED driver to shutdown mode
- ckled2001_write_register(addr, CONFIGURATION_REG, MSKSW_SHUT_DOWN_MODE);
- // Write SW Sleep Register
- ckled2001_write_register(addr, SOFTWARE_SLEEP_REG, MSKSLEEP_ENABLE);
-}
diff --git a/drivers/led/ckled2001.h b/drivers/led/ckled2001.h
deleted file mode 100644
index 32da137fb7..0000000000
--- a/drivers/led/ckled2001.h
+++ /dev/null
@@ -1,339 +0,0 @@
-/* Copyright 2021 @ Keychron (https://www.keychron.com)
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-#pragma once
-
-#include <stdint.h>
-#include <stdbool.h>
-#include "progmem.h"
-
-typedef struct ckled2001_led {
- uint8_t driver : 2;
- uint8_t r;
- uint8_t g;
- uint8_t b;
-} __attribute__((packed)) ckled2001_led;
-
-extern const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT];
-
-void ckled2001_init(uint8_t addr);
-bool ckled2001_write_register(uint8_t addr, uint8_t reg, uint8_t data);
-bool ckled2001_write_pwm_buffer(uint8_t addr, uint8_t *pwm_buffer);
-
-void ckled2001_set_color(int index, uint8_t red, uint8_t green, uint8_t blue);
-void ckled2001_set_color_all(uint8_t red, uint8_t green, uint8_t blue);
-
-void ckled2001_set_led_control_register(uint8_t index, bool red, bool green, bool blue);
-
-// This should not be called from an interrupt
-// (eg. from a timer interrupt).
-// Call this while idle (in between matrix scans).
-// If the buffer is dirty, it will update the driver with the buffer.
-void ckled2001_update_pwm_buffers(uint8_t addr, uint8_t index);
-void ckled2001_update_led_control_registers(uint8_t addr, uint8_t index);
-
-void ckled2001_sw_return_normal(uint8_t addr);
-void ckled2001_sw_shutdown(uint8_t addr);
-
-// Registers Page Define
-#define CONFIGURE_CMD_PAGE 0xFD
-#define LED_CONTROL_PAGE 0x00
-#define LED_PWM_PAGE 0x01
-#define FUNCTION_PAGE 0x03
-#define CURRENT_TUNE_PAGE 0x04
-
-// Function Register: address 0x00
-#define CONFIGURATION_REG 0x00
-#define MSKSW_SHUT_DOWN_MODE (0x0 << 0)
-#define MSKSW_NORMAL_MODE (0x1 << 0)
-
-#define DRIVER_ID_REG 0x11
-#define CKLED2001_ID 0x8A
-
-#define PDU_REG 0x13
-#define MSKSET_CA_CB_CHANNEL 0xAA
-#define MSKCLR_CA_CB_CHANNEL 0x00
-
-#define SCAN_PHASE_REG 0x14
-#define MSKPHASE_12CHANNEL 0x00
-#define MSKPHASE_11CHANNEL 0x01
-#define MSKPHASE_10CHANNEL 0x02
-#define MSKPHASE_9CHANNEL 0x03
-#define MSKPHASE_8CHANNEL 0x04
-#define MSKPHASE_7CHANNEL 0x05
-#define MSKPHASE_6CHANNEL 0x06
-#define MSKPHASE_5CHANNEL 0x07
-#define MSKPHASE_4CHANNEL 0x08
-#define MSKPHASE_3CHANNEL 0x09
-#define MSKPHASE_2CHANNEL 0x0A
-#define MSKPHASE_1CHANNEL 0x0B
-
-#define SLEW_RATE_CONTROL_MODE1_REG 0x15
-#define MSKPWM_DELAY_PHASE_ENABLE 0x04
-#define MSKPWM_DELAY_PHASE_DISABLE 0x00
-
-#define SLEW_RATE_CONTROL_MODE2_REG 0x16
-#define MSKDRIVING_SINKING_CHHANNEL_SLEWRATE_ENABLE 0xC0
-#define MSKDRIVING_SINKING_CHHANNEL_SLEWRATE_DISABLE 0x00
-
-#define OPEN_SHORT_ENABLE_REG 0x17
-#define MSKOPEN_DETECTION_ENABLE (0x01 << 7)
-#define MSKOPEN_DETECTION_DISABLE (0x00)
-
-#define MSKSHORT_DETECTION_ENABLE (0x01 << 6)
-#define MSKSHORT_DETECTION_DISABLE (0x00)
-
-#define OPEN_SHORT_DUTY_REG 0x18
-#define OPEN_SHORT_FLAG_REG 0x19
-
-#define MSKOPEN_DETECTION_INTERRUPT_ENABLE (0x01 << 7)
-#define MSKOPEN_DETECTION_INTERRUPT_DISABLE (0x00)
-
-#define MSKSHORT_DETECTION_INTERRUPT_ENABLE (0x01 << 6)
-#define MSKSHORT_DETECTION_INTERRUPT_DISABLE (0x00)
-
-#define SOFTWARE_SLEEP_REG 0x1A
-#define MSKSLEEP_ENABLE 0x02
-#define MSKSLEEP_DISABLE 0x00
-
-// LED Control Registers
-#define LED_CONTROL_ON_OFF_FIRST_ADDR 0x0
-#define LED_CONTROL_ON_OFF_LAST_ADDR 0x17
-#define LED_CONTROL_ON_OFF_LENGTH ((LED_CONTROL_ON_OFF_LAST_ADDR - LED_CONTROL_ON_OFF_FIRST_ADDR) + 1)
-
-#define LED_CONTROL_OPEN_FIRST_ADDR 0x18
-#define LED_CONTROL_OPEN_LAST_ADDR 0x2F
-#define LED_CONTROL_OPEN_LENGTH ((LED_CONTROL_OPEN_LAST_ADDR - LED_CONTROL_OPEN_FIRST_ADDR) + 1)
-
-#define LED_CONTROL_SHORT_FIRST_ADDR 0x30
-#define LED_CONTROL_SHORT_LAST_ADDR 0x47
-#define LED_CONTROL_SHORT_LENGTH ((LED_CONTROL_SHORT_LAST_ADDR - LED_CONTROL_SHORT_FIRST_ADDR) + 1)
-
-#define LED_CONTROL_PAGE_LENGTH 0x48
-
-// LED Control Registers
-#define LED_PWM_FIRST_ADDR 0x00
-#define LED_PWM_LAST_ADDR 0xBF
-#define LED_PWM_LENGTH 0xC0
-
-// Current Tune Registers
-#define LED_CURRENT_TUNE_FIRST_ADDR 0x00
-#define LED_CURRENT_TUNE_LAST_ADDR 0x0B
-#define LED_CURRENT_TUNE_LENGTH 0x0C
-
-#define A_1 0x00
-#define A_2 0x01
-#define A_3 0x02
-#define A_4 0x03
-#define A_5 0x04
-#define A_6 0x05
-#define A_7 0x06
-#define A_8 0x07
-#define A_9 0x08
-#define A_10 0x09
-#define A_11 0x0A
-#define A_12 0x0B
-#define A_13 0x0C
-#define A_14 0x0D
-#define A_15 0x0E
-#define A_16 0x0F
-
-#define B_1 0x10
-#define B_2 0x11
-#define B_3 0x12
-#define B_4 0x13
-#define B_5 0x14
-#define B_6 0x15
-#define B_7 0x16
-#define B_8 0x17
-#define B_9 0x18
-#define B_10 0x19
-#define B_11 0x1A
-#define B_12 0x1B
-#define B_13 0x1C
-#define B_14 0x1D
-#define B_15 0x1E
-#define B_16 0x1F
-
-#define C_1 0x20
-#define C_2 0x21
-#define C_3 0x22
-#define C_4 0x23
-#define C_5 0x24
-#define C_6 0x25
-#define C_7 0x26
-#define C_8 0x27
-#define C_9 0x28
-#define C_10 0x29
-#define C_11 0x2A
-#define C_12 0x2B
-#define C_13 0x2C
-#define C_14 0x2D
-#define C_15 0x2E
-#define C_16 0x2F
-
-#define D_1 0x30
-#define D_2 0x31
-#define D_3 0x32
-#define D_4 0x33
-#define D_5 0x34
-#define D_6 0x35
-#define D_7 0x36
-#define D_8 0x37
-#define D_9 0x38
-#define D_10 0x39
-#define D_11 0x3A
-#define D_12 0x3B
-#define D_13 0x3C
-#define D_14 0x3D
-#define D_15 0x3E
-#define D_16 0x3F
-
-#define E_1 0x40
-#define E_2 0x41
-#define E_3 0x42
-#define E_4 0x43
-#define E_5 0x44
-#define E_6 0x45
-#define E_7 0x46
-#define E_8 0x47
-#define E_9 0x48
-#define E_10 0x49
-#define E_11 0x4A
-#define E_12 0x4B
-#define E_13 0x4C
-#define E_14 0x4D
-#define E_15 0x4E
-#define E_16 0x4F
-
-#define F_1 0x50
-#define F_2 0x51
-#define F_3 0x52
-#define F_4 0x53
-#define F_5 0x54
-#define F_6 0x55
-#define F_7 0x56
-#define F_8 0x57
-#define F_9 0x58
-#define F_10 0x59
-#define F_11 0x5A
-#define F_12 0x5B
-#define F_13 0x5C
-#define F_14 0x5D
-#define F_15 0x5E
-#define F_16 0x5F
-
-#define G_1 0x60
-#define G_2 0x61
-#define G_3 0x62
-#define G_4 0x63
-#define G_5 0x64
-#define G_6 0x65
-#define G_7 0x66
-#define G_8 0x67
-#define G_9 0x68
-#define G_10 0x69
-#define G_11 0x6A
-#define G_12 0x6B
-#define G_13 0x6C
-#define G_14 0x6D
-#define G_15 0x6E
-#define G_16 0x6F
-
-#define H_1 0x70
-#define H_2 0x71
-#define H_3 0x72
-#define H_4 0x73
-#define H_5 0x74
-#define H_6 0x75
-#define H_7 0x76
-#define H_8 0x77
-#define H_9 0x78
-#define H_10 0x79
-#define H_11 0x7A
-#define H_12 0x7B
-#define H_13 0x7C
-#define H_14 0x7D
-#define H_15 0x7E
-#define H_16 0x7F
-
-#define I_1 0x80
-#define I_2 0x81
-#define I_3 0x82
-#define I_4 0x83
-#define I_5 0x84
-#define I_6 0x85
-#define I_7 0x86
-#define I_8 0x87
-#define I_9 0x88
-#define I_10 0x89
-#define I_11 0x8A
-#define I_12 0x8B
-#define I_13 0x8C
-#define I_14 0x8D
-#define I_15 0x8E
-#define I_16 0x8F
-
-#define J_1 0x90
-#define J_2 0x91
-#define J_3 0x92
-#define J_4 0x93
-#define J_5 0x94
-#define J_6 0x95
-#define J_7 0x96
-#define J_8 0x97
-#define J_9 0x98
-#define J_10 0x99
-#define J_11 0x9A
-#define J_12 0x9B
-#define J_13 0x9C
-#define J_14 0x9D
-#define J_15 0x9E
-#define J_16 0x9F
-
-#define K_1 0xA0
-#define K_2 0xA1
-#define K_3 0xA2
-#define K_4 0xA3
-#define K_5 0xA4
-#define K_6 0xA5
-#define K_7 0xA6
-#define K_8 0xA7
-#define K_9 0xA8
-#define K_10 0xA9
-#define K_11 0xAA
-#define K_12 0xAB
-#define K_13 0xAC
-#define K_14 0xAD
-#define K_15 0xAE
-#define K_16 0xAF
-
-#define L_1 0xB0
-#define L_2 0xB1
-#define L_3 0xB2
-#define L_4 0xB3
-#define L_5 0xB4
-#define L_6 0xB5
-#define L_7 0xB6
-#define L_8 0xB7
-#define L_9 0xB8
-#define L_10 0xB9
-#define L_11 0xBA
-#define L_12 0xBB
-#define L_13 0xBC
-#define L_14 0xBD
-#define L_15 0xBE
-#define L_16 0xBF \ No newline at end of file
diff --git a/drivers/led/issi/is31fl3218-simple.c b/drivers/led/issi/is31fl3218-simple.c
new file mode 100644
index 0000000000..ce28c51d18
--- /dev/null
+++ b/drivers/led/issi/is31fl3218-simple.c
@@ -0,0 +1,147 @@
+/* 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 "is31fl3218.h"
+#include <string.h>
+#include "i2c_master.h"
+
+#define IS31FL3218_PWM_REGISTER_COUNT 18
+#define IS31FL3218_LED_CONTROL_REGISTER_COUNT 3
+
+#ifndef IS31FL3218_I2C_TIMEOUT
+# define IS31FL3218_I2C_TIMEOUT 100
+#endif
+
+#ifndef IS31FL3218_I2C_PERSISTENCE
+# define IS31FL3218_I2C_PERSISTENCE 0
+#endif
+
+// Reusable buffer for transfers
+uint8_t g_twi_transfer_buffer[20];
+
+// IS31FL3218 has 18 PWM outputs and a fixed I2C address, so no chaining.
+uint8_t g_pwm_buffer[IS31FL3218_PWM_REGISTER_COUNT];
+bool g_pwm_buffer_update_required = false;
+
+uint8_t g_led_control_registers[IS31FL3218_LED_CONTROL_REGISTER_COUNT] = {0};
+bool g_led_control_registers_update_required = false;
+
+void is31fl3218_write_register(uint8_t reg, uint8_t data) {
+ g_twi_transfer_buffer[0] = reg;
+ g_twi_transfer_buffer[1] = data;
+#if IS31FL3218_I2C_PERSISTENCE > 0
+ for (uint8_t i = 0; i < IS31FL3218_I2C_PERSISTENCE; i++) {
+ if (i2c_transmit(IS31FL3218_I2C_ADDRESS << 1, g_twi_transfer_buffer, 2, IS31FL3218_I2C_TIMEOUT) == 0) break;
+ }
+#else
+ i2c_transmit(IS31FL3218_I2C_ADDRESS << 1, g_twi_transfer_buffer, 2, IS31FL3218_I2C_TIMEOUT);
+#endif
+}
+
+void is31fl3218_write_pwm_buffer(uint8_t *pwm_buffer) {
+ g_twi_transfer_buffer[0] = IS31FL3218_REG_PWM;
+ memcpy(g_twi_transfer_buffer + 1, pwm_buffer, 18);
+
+#if IS31FL3218_I2C_PERSISTENCE > 0
+ for (uint8_t i = 0; i < IS31FL3218_I2C_PERSISTENCE; i++) {
+ i2c_transmit(IS31FL3218_I2C_ADDRESS << 1, g_twi_transfer_buffer, 19, IS31FL3218_I2C_TIMEOUT);
+ }
+#else
+ i2c_transmit(IS31FL3218_I2C_ADDRESS << 1, g_twi_transfer_buffer, 19, IS31FL3218_I2C_TIMEOUT);
+#endif
+}
+
+void is31fl3218_init(void) {
+ i2c_init();
+
+ // In case we ever want to reinitialize (?)
+ is31fl3218_write_register(IS31FL3218_REG_RESET, 0x00);
+
+ // Turn off software shutdown
+ is31fl3218_write_register(IS31FL3218_REG_SHUTDOWN, 0x01);
+
+ // Set all PWM values to zero
+ for (uint8_t i = 0; i < IS31FL3218_PWM_REGISTER_COUNT; i++) {
+ is31fl3218_write_register(IS31FL3218_REG_PWM + i, 0x00);
+ }
+
+ // turn off all LEDs in the LED control register
+ for (uint8_t i = 0; i < IS31FL3218_LED_CONTROL_REGISTER_COUNT; i++) {
+ is31fl3218_write_register(IS31FL3218_REG_LED_CONTROL_1 + i, 0x00);
+ }
+
+ // Load PWM registers and LED Control register data
+ is31fl3218_write_register(IS31FL3218_REG_UPDATE, 0x01);
+
+ for (int i = 0; i < IS31FL3218_LED_COUNT; i++) {
+ is31fl3218_set_led_control_register(i, true);
+ }
+
+ is31fl3218_update_led_control_registers();
+}
+
+void is31fl3218_set_value(int index, uint8_t value) {
+ is31fl3218_led_t led;
+ if (index >= 0 && index < IS31FL3218_LED_COUNT) {
+ memcpy_P(&led, (&g_is31fl3218_leds[index]), sizeof(led));
+ }
+ if (g_pwm_buffer[led.v - IS31FL3218_REG_PWM] == value) {
+ return;
+ }
+ g_pwm_buffer[led.v - IS31FL3218_REG_PWM] = value;
+ g_pwm_buffer_update_required = true;
+}
+
+void is31fl3218_set_value_all(uint8_t value) {
+ for (int i = 0; i < IS31FL3218_LED_COUNT; i++) {
+ is31fl3218_set_value(i, value);
+ }
+}
+
+void is31fl3218_set_led_control_register(uint8_t index, bool value) {
+ is31fl3218_led_t led;
+ memcpy_P(&led, (&g_is31fl3218_leds[index]), sizeof(led));
+
+ uint8_t control_register = (led.v - IS31FL3218_REG_PWM) / 6;
+ uint8_t bit_value = (led.v - IS31FL3218_REG_PWM) % 6;
+
+ if (value) {
+ g_led_control_registers[control_register] |= (1 << bit_value);
+ } else {
+ g_led_control_registers[control_register] &= ~(1 << bit_value);
+ }
+
+ g_led_control_registers_update_required = true;
+}
+
+void is31fl3218_update_pwm_buffers(void) {
+ if (g_pwm_buffer_update_required) {
+ is31fl3218_write_pwm_buffer(g_pwm_buffer);
+ // Load PWM registers and LED Control register data
+ is31fl3218_write_register(IS31FL3218_REG_UPDATE, 0x01);
+
+ g_pwm_buffer_update_required = false;
+ }
+}
+
+void is31fl3218_update_led_control_registers(void) {
+ if (g_led_control_registers_update_required) {
+ for (int i = 0; i < IS31FL3218_LED_CONTROL_REGISTER_COUNT; i++) {
+ is31fl3218_write_register(IS31FL3218_REG_LED_CONTROL_1 + i, g_led_control_registers[i]);
+ }
+
+ g_led_control_registers_update_required = false;
+ }
+}
diff --git a/drivers/led/issi/is31fl3218-simple.h b/drivers/led/issi/is31fl3218-simple.h
new file mode 100644
index 0000000000..9492817809
--- /dev/null
+++ b/drivers/led/issi/is31fl3218-simple.h
@@ -0,0 +1,73 @@
+/* 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/>.
+ */
+
+#pragma once
+
+#include <stdint.h>
+#include <stdbool.h>
+#include "progmem.h"
+#include "util.h"
+
+#define IS31FL3218_REG_SHUTDOWN 0x00
+#define IS31FL3218_REG_PWM 0x01
+#define IS31FL3218_REG_LED_CONTROL_1 0x13
+#define IS31FL3218_REG_LED_CONTROL_2 0x14
+#define IS31FL3218_REG_LED_CONTROL_3 0x15
+#define IS31FL3218_REG_UPDATE 0x16
+#define IS31FL3218_REG_RESET 0x17
+
+#define IS31FL3218_I2C_ADDRESS 0x54
+
+#if defined(LED_MATRIX_IS31FL3218)
+# define IS31FL3218_LED_COUNT LED_MATRIX_LED_COUNT
+#endif
+
+typedef struct is31fl3218_led_t {
+ uint8_t v;
+} PACKED is31fl3218_led_t;
+
+extern const is31fl3218_led_t PROGMEM g_is31fl3218_leds[IS31FL3218_LED_COUNT];
+
+void is31fl3218_init(void);
+
+void is31fl3218_set_value(int index, uint8_t value);
+
+void is31fl3218_set_value_all(uint8_t value);
+
+void is31fl3218_set_led_control_register(uint8_t index, bool value);
+
+void is31fl3218_update_pwm_buffers(void);
+
+void is31fl3218_update_led_control_registers(void);
+
+#define OUT1 0x01
+#define OUT2 0x02
+#define OUT3 0x03
+#define OUT4 0x04
+#define OUT5 0x05
+#define OUT6 0x06
+#define OUT7 0x07
+#define OUT8 0x08
+#define OUT9 0x09
+#define OUT10 0x0A
+#define OUT11 0x0B
+#define OUT12 0x0C
+#define OUT13 0x0D
+#define OUT14 0x0E
+#define OUT15 0x0F
+#define OUT16 0x10
+#define OUT17 0x11
+#define OUT18 0x12
diff --git a/drivers/led/issi/is31fl3218.c b/drivers/led/issi/is31fl3218.c
index 970e9a0be9..39db09d518 100644
--- a/drivers/led/issi/is31fl3218.c
+++ b/drivers/led/issi/is31fl3218.c
@@ -14,84 +14,150 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include "is31fl3218.h"
+#include <string.h>
#include "i2c_master.h"
-// This is the full 8-bit address
-#define ISSI_ADDRESS 0b10101000
+#define IS31FL3218_PWM_REGISTER_COUNT 18
+#define IS31FL3218_LED_CONTROL_REGISTER_COUNT 3
-// These are the register addresses
-#define ISSI_REG_SHUTDOWN 0x00
-#define ISSI_REG_PWM 0x01
-#define ISSI_REG_CONTROL 0x13
-#define ISSI_REG_UPDATE 0x16
-#define ISSI_REG_RESET 0x17
+#ifndef IS31FL3218_I2C_TIMEOUT
+# define IS31FL3218_I2C_TIMEOUT 100
+#endif
-// Default timeout if no I2C response
-#define ISSI_TIMEOUT 100
+#ifndef IS31FL3218_I2C_PERSISTENCE
+# define IS31FL3218_I2C_PERSISTENCE 0
+#endif
// Reusable buffer for transfers
uint8_t g_twi_transfer_buffer[20];
// IS31FL3218 has 18 PWM outputs and a fixed I2C address, so no chaining.
-// If used as RGB LED driver, LEDs are assigned RGB,RGB,RGB,RGB,RGB,RGB
-uint8_t g_pwm_buffer[18];
+uint8_t g_pwm_buffer[IS31FL3218_PWM_REGISTER_COUNT];
bool g_pwm_buffer_update_required = false;
+uint8_t g_led_control_registers[IS31FL3218_LED_CONTROL_REGISTER_COUNT] = {0};
+bool g_led_control_registers_update_required = false;
+
void is31fl3218_write_register(uint8_t reg, uint8_t data) {
g_twi_transfer_buffer[0] = reg;
g_twi_transfer_buffer[1] = data;
- i2c_transmit(ISSI_ADDRESS, g_twi_transfer_buffer, 2, ISSI_TIMEOUT);
+#if IS31FL3218_I2C_PERSISTENCE > 0
+ for (uint8_t i = 0; i < IS31FL3218_I2C_PERSISTENCE; i++) {
+ if (i2c_transmit(IS31FL3218_I2C_ADDRESS << 1, g_twi_transfer_buffer, 2, IS31FL3218_I2C_TIMEOUT) == 0) break;
+ }
+#else
+ i2c_transmit(IS31FL3218_I2C_ADDRESS << 1, g_twi_transfer_buffer, 2, IS31FL3218_I2C_TIMEOUT);
+#endif
}
void is31fl3218_write_pwm_buffer(uint8_t *pwm_buffer) {
- g_twi_transfer_buffer[0] = ISSI_REG_PWM;
+ g_twi_transfer_buffer[0] = IS31FL3218_REG_PWM;
memcpy(g_twi_transfer_buffer + 1, pwm_buffer, 18);
- i2c_transmit(ISSI_ADDRESS, g_twi_transfer_buffer, 19, ISSI_TIMEOUT);
+#if IS31FL3218_I2C_PERSISTENCE > 0
+ for (uint8_t i = 0; i < IS31FL3218_I2C_PERSISTENCE; i++) {
+ i2c_transmit(IS31FL3218_I2C_ADDRESS << 1, g_twi_transfer_buffer, 19, IS31FL3218_I2C_TIMEOUT);
+ }
+#else
+ i2c_transmit(IS31FL3218_I2C_ADDRESS << 1, g_twi_transfer_buffer, 19, IS31FL3218_I2C_TIMEOUT);
+#endif
}
void is31fl3218_init(void) {
+ i2c_init();
+
// In case we ever want to reinitialize (?)
- is31fl3218_write_register(ISSI_REG_RESET, 0x00);
+ is31fl3218_write_register(IS31FL3218_REG_RESET, 0x00);
// Turn off software shutdown
- is31fl3218_write_register(ISSI_REG_SHUTDOWN, 0x01);
+ is31fl3218_write_register(IS31FL3218_REG_SHUTDOWN, 0x01);
// Set all PWM values to zero
- for (uint8_t i = 0; i < 18; i++) {
- is31fl3218_write_register(ISSI_REG_PWM + i, 0x00);
+ for (uint8_t i = 0; i < IS31FL3218_PWM_REGISTER_COUNT; i++) {
+ is31fl3218_write_register(IS31FL3218_REG_PWM + i, 0x00);
}
- // Enable all channels
- for (uint8_t i = 0; i < 3; i++) {
- is31fl3218_write_register(ISSI_REG_CONTROL + i, 0b00111111);
+ // turn off all LEDs in the LED control register
+ for (uint8_t i = 0; i < IS31FL3218_LED_CONTROL_REGISTER_COUNT; i++) {
+ is31fl3218_write_register(IS31FL3218_REG_LED_CONTROL_1 + i, 0x00);
}
// Load PWM registers and LED Control register data
- is31fl3218_write_register(ISSI_REG_UPDATE, 0x01);
+ is31fl3218_write_register(IS31FL3218_REG_UPDATE, 0x01);
+
+ for (int i = 0; i < IS31FL3218_LED_COUNT; i++) {
+ is31fl3218_set_led_control_register(i, true, true, true);
+ }
+
+ is31fl3218_update_led_control_registers();
}
void is31fl3218_set_color(int index, uint8_t red, uint8_t green, uint8_t blue) {
- if (g_pwm_buffer[index * 3 + 0] == red && g_pwm_buffer[index * 3 + 1] == green && g_pwm_buffer[index * 3 + 2] == blue) {
+ is31fl3218_led_t led;
+ if (index >= 0 && index < IS31FL3218_LED_COUNT) {
+ memcpy_P(&led, (&g_is31fl3218_leds[index]), sizeof(led));
+ }
+ if (g_pwm_buffer[led.r - IS31FL3218_REG_PWM] == red && g_pwm_buffer[led.g - IS31FL3218_REG_PWM] == green && g_pwm_buffer[led.b - IS31FL3218_REG_PWM] == blue) {
return;
}
- g_pwm_buffer[index * 3 + 0] = red;
- g_pwm_buffer[index * 3 + 1] = green;
- g_pwm_buffer[index * 3 + 2] = blue;
- g_pwm_buffer_update_required = true;
+ g_pwm_buffer[led.r - IS31FL3218_REG_PWM] = red;
+ g_pwm_buffer[led.g - IS31FL3218_REG_PWM] = green;
+ g_pwm_buffer[led.b - IS31FL3218_REG_PWM] = blue;
+ g_pwm_buffer_update_required = true;
}
void is31fl3218_set_color_all(uint8_t red, uint8_t green, uint8_t blue) {
- for (int i = 0; i < 6; i++) {
+ for (int i = 0; i < IS31FL3218_LED_COUNT; i++) {
is31fl3218_set_color(i, red, green, blue);
}
}
+void is31fl3218_set_led_control_register(uint8_t index, bool red, bool green, bool blue) {
+ is31fl3218_led_t led;
+ memcpy_P(&led, (&g_is31fl3218_leds[index]), sizeof(led));
+
+ uint8_t control_register_r = (led.r - IS31FL3218_REG_PWM) / 6;
+ uint8_t control_register_g = (led.g - IS31FL3218_REG_PWM) / 6;
+ uint8_t control_register_b = (led.b - IS31FL3218_REG_PWM) / 6;
+ uint8_t bit_r = (led.r - IS31FL3218_REG_PWM) % 6;
+ uint8_t bit_g = (led.g - IS31FL3218_REG_PWM) % 6;
+ uint8_t bit_b = (led.b - IS31FL3218_REG_PWM) % 6;
+
+ if (red) {
+ g_led_control_registers[control_register_r] |= (1 << bit_r);
+ } else {
+ g_led_control_registers[control_register_r] &= ~(1 << bit_r);
+ }
+ if (green) {
+ g_led_control_registers[control_register_g] |= (1 << bit_g);
+ } else {
+ g_led_control_registers[control_register_g] &= ~(1 << bit_g);
+ }
+ if (blue) {
+ g_led_control_registers[control_register_b] |= (1 << bit_b);
+ } else {
+ g_led_control_registers[control_register_b] &= ~(1 << bit_b);
+ }
+
+ g_led_control_registers_update_required = true;
+}
+
void is31fl3218_update_pwm_buffers(void) {
if (g_pwm_buffer_update_required) {
is31fl3218_write_pwm_buffer(g_pwm_buffer);
// Load PWM registers and LED Control register data
- is31fl3218_write_register(ISSI_REG_UPDATE, 0x01);
+ is31fl3218_write_register(IS31FL3218_REG_UPDATE, 0x01);
+
+ g_pwm_buffer_update_required = false;
+ }
+}
+
+void is31fl3218_update_led_control_registers(void) {
+ if (g_led_control_registers_update_required) {
+ for (int i = 0; i < IS31FL3218_LED_CONTROL_REGISTER_COUNT; i++) {
+ is31fl3218_write_register(IS31FL3218_REG_LED_CONTROL_1 + i, g_led_control_registers[i]);
+ }
+
+ g_led_control_registers_update_required = false;
}
- g_pwm_buffer_update_required = false;
}
diff --git a/drivers/led/issi/is31fl3218.h b/drivers/led/issi/is31fl3218.h
index 2fe3768432..ffa7f36d61 100644
--- a/drivers/led/issi/is31fl3218.h
+++ b/drivers/led/issi/is31fl3218.h
@@ -18,9 +18,58 @@
#include <stdint.h>
#include <stdbool.h>
-#include <string.h>
+#include "progmem.h"
+#include "util.h"
+
+#define IS31FL3218_REG_SHUTDOWN 0x00
+#define IS31FL3218_REG_PWM 0x01
+#define IS31FL3218_REG_LED_CONTROL_1 0x13
+#define IS31FL3218_REG_LED_CONTROL_2 0x14
+#define IS31FL3218_REG_LED_CONTROL_3 0x15
+#define IS31FL3218_REG_UPDATE 0x16
+#define IS31FL3218_REG_RESET 0x17
+
+#define IS31FL3218_I2C_ADDRESS 0x54
+
+#if defined(RGB_MATRIX_IS31FL3218)
+# define IS31FL3218_LED_COUNT RGB_MATRIX_LED_COUNT
+#endif
+
+typedef struct is31fl3218_led_t {
+ uint8_t r;
+ uint8_t g;
+ uint8_t b;
+} PACKED is31fl3218_led_t;
+
+extern const is31fl3218_led_t PROGMEM g_is31fl3218_leds[IS31FL3218_LED_COUNT];
void is31fl3218_init(void);
+
void is31fl3218_set_color(int index, uint8_t red, uint8_t green, uint8_t blue);
+
void is31fl3218_set_color_all(uint8_t red, uint8_t green, uint8_t blue);
+
+void is31fl3218_set_led_control_register(uint8_t index, bool red, bool green, bool blue);
+
void is31fl3218_update_pwm_buffers(void);
+
+void is31fl3218_update_led_control_registers(void);
+
+#define OUT1 0x01
+#define OUT2 0x02
+#define OUT3 0x03
+#define OUT4 0x04
+#define OUT5 0x05
+#define OUT6 0x06
+#define OUT7 0x07
+#define OUT8 0x08
+#define OUT9 0x09
+#define OUT10 0x0A
+#define OUT11 0x0B
+#define OUT12 0x0C
+#define OUT13 0x0D
+#define OUT14 0x0E
+#define OUT15 0x0F
+#define OUT16 0x10
+#define OUT17 0x11
+#define OUT18 0x12
diff --git a/drivers/led/issi/is31fl3731-simple.c b/drivers/led/issi/is31fl3731-simple.c
index f7f6980a3b..8dbfc3cd31 100644
--- a/drivers/led/issi/is31fl3731-simple.c
+++ b/drivers/led/issi/is31fl3731-simple.c
@@ -18,44 +18,19 @@
*/
#include "is31fl3731-simple.h"
+#include <string.h>
#include "i2c_master.h"
#include "wait.h"
-// This is a 7-bit address, that gets left-shifted and bit 0
-// set to 0 for write, 1 for read (as per I2C protocol)
-// The address will vary depending on your wiring:
-// 0b1110100 AD <-> GND
-// 0b1110111 AD <-> VCC
-// 0b1110101 AD <-> SCL
-// 0b1110110 AD <-> SDA
-#define ISSI_ADDR_DEFAULT 0x74
+#define IS31FL3731_PWM_REGISTER_COUNT 144
+#define IS31FL3731_LED_CONTROL_REGISTER_COUNT 18
-#define ISSI_REG_CONFIG 0x00
-#define ISSI_REG_CONFIG_PICTUREMODE 0x00
-#define ISSI_REG_CONFIG_AUTOPLAYMODE 0x08
-#define ISSI_REG_CONFIG_AUDIOPLAYMODE 0x18
-
-#define ISSI_CONF_PICTUREMODE 0x00
-#define ISSI_CONF_AUTOFRAMEMODE 0x04
-#define ISSI_CONF_AUDIOMODE 0x08
-
-#define ISSI_REG_PICTUREFRAME 0x01
-
-// Not defined in the datasheet -- See AN for IC
-#define ISSI_REG_GHOST_IMAGE_PREVENTION 0xC2 // Set bit 4 to enable de-ghosting
-
-#define ISSI_REG_SHUTDOWN 0x0A
-#define ISSI_REG_AUDIOSYNC 0x06
-
-#define ISSI_COMMANDREGISTER 0xFD
-#define ISSI_BANK_FUNCTIONREG 0x0B // helpfully called 'page nine'
-
-#ifndef ISSI_TIMEOUT
-# define ISSI_TIMEOUT 100
+#ifndef IS31FL3731_I2C_TIMEOUT
+# define IS31FL3731_I2C_TIMEOUT 100
#endif
-#ifndef ISSI_PERSISTENCE
-# define ISSI_PERSISTENCE 0
+#ifndef IS31FL3731_I2C_PERSISTENCE
+# define IS31FL3731_I2C_PERSISTENCE 0
#endif
// Transfer buffer for TWITransmitData()
@@ -66,47 +41,24 @@ uint8_t g_twi_transfer_buffer[20];
// We could optimize this and take out the unused registers from these
// buffers and the transfers in is31fl3731_write_pwm_buffer() but it's
// probably not worth the extra complexity.
-uint8_t g_pwm_buffer[LED_DRIVER_COUNT][144];
-bool g_pwm_buffer_update_required[LED_DRIVER_COUNT] = {false};
-
-/* There's probably a better way to init this... */
-#if LED_DRIVER_COUNT == 1
-uint8_t g_led_control_registers[LED_DRIVER_COUNT][18] = {{0}};
-#elif LED_DRIVER_COUNT == 2
-uint8_t g_led_control_registers[LED_DRIVER_COUNT][18] = {{0}, {0}};
-#elif LED_DRIVER_COUNT == 3
-uint8_t g_led_control_registers[LED_DRIVER_COUNT][18] = {{0}, {0}, {0}};
-#elif LED_DRIVER_COUNT == 4
-uint8_t g_led_control_registers[LED_DRIVER_COUNT][18] = {{0}, {0}, {0}, {0}};
-#endif
-bool g_led_control_registers_update_required[LED_DRIVER_COUNT] = {false};
-
-// This is the bit pattern in the LED control registers
-// (for matrix A, add one to register for matrix B)
-//
-// reg - b7 b6 b5 b4 b3 b2 b1 b0
-// 0x00 - R08,R07,R06,R05,R04,R03,R02,R01
-// 0x02 - G08,G07,G06,G05,G04,G03,G02,R00
-// 0x04 - B08,B07,B06,B05,B04,B03,G01,G00
-// 0x06 - - , - , - , - , - ,B02,B01,B00
-// 0x08 - - , - , - , - , - , - , - , -
-// 0x0A - B17,B16,B15, - , - , - , - , -
-// 0x0C - G17,G16,B14,B13,B12,B11,B10,B09
-// 0x0E - R17,G15,G14,G13,G12,G11,G10,G09
-// 0x10 - R16,R15,R14,R13,R12,R11,R10,R09
+uint8_t g_pwm_buffer[IS31FL3731_DRIVER_COUNT][IS31FL3731_PWM_REGISTER_COUNT];
+bool g_pwm_buffer_update_required[IS31FL3731_DRIVER_COUNT] = {false};
+
+uint8_t g_led_control_registers[IS31FL3731_DRIVER_COUNT][IS31FL3731_LED_CONTROL_REGISTER_COUNT] = {0};
+bool g_led_control_registers_update_required[IS31FL3731_DRIVER_COUNT] = {false};
void is31fl3731_write_register(uint8_t addr, uint8_t reg, uint8_t data) {
g_twi_transfer_buffer[0] = reg;
g_twi_transfer_buffer[1] = data;
-#if ISSI_PERSISTENCE > 0
- for (uint8_t i = 0; i < ISSI_PERSISTENCE; i++) {
- if (i2c_transmit(addr << 1, g_twi_transfer_buffer, 2, ISSI_TIMEOUT) == 0) {
+#if IS31FL3731_I2C_PERSISTENCE > 0
+ for (uint8_t i = 0; i < IS31FL3731_I2C_PERSISTENCE; i++) {
+ if (i2c_transmit(addr << 1, g_twi_transfer_buffer, 2, IS31FL3731_I2C_TIMEOUT) == 0) {
break;
}
}
#else
- i2c_transmit(addr << 1, g_twi_transfer_buffer, 2, ISSI_TIMEOUT);
+ i2c_transmit(addr << 1, g_twi_transfer_buffer, 2, IS31FL3731_I2C_TIMEOUT);
#endif
}
@@ -117,7 +69,7 @@ void is31fl3731_write_pwm_buffer(uint8_t addr, uint8_t *pwm_buffer) {
// g_twi_transfer_buffer[] is 20 bytes
// iterate over the pwm_buffer contents at 16 byte intervals
- for (int i = 0; i < 144; i += 16) {
+ for (int i = 0; i < IS31FL3731_PWM_REGISTER_COUNT; i += 16) {
// set the first register, e.g. 0x24, 0x34, 0x44, etc.
g_twi_transfer_buffer[0] = 0x24 + i;
// copy the data from i to i+15
@@ -125,14 +77,44 @@ void is31fl3731_write_pwm_buffer(uint8_t addr, uint8_t *pwm_buffer) {
// thus this sets registers 0x24-0x33, 0x34-0x43, etc. in one transfer
memcpy(g_twi_transfer_buffer + 1, pwm_buffer + i, 16);
-#if ISSI_PERSISTENCE > 0
- for (uint8_t i = 0; i < ISSI_PERSISTENCE; i++) {
- if (i2c_transmit(addr << 1, g_twi_transfer_buffer, 17, ISSI_TIMEOUT) == 0) break;
+#if IS31FL3731_I2C_PERSISTENCE > 0
+ for (uint8_t i = 0; i < IS31FL3731_I2C_PERSISTENCE; i++) {
+ if (i2c_transmit(addr << 1, g_twi_transfer_buffer, 17, IS31FL3731_I2C_TIMEOUT) == 0) break;
}
#else
- i2c_transmit(addr << 1, g_twi_transfer_buffer, 17, ISSI_TIMEOUT);
+ i2c_transmit(addr << 1, g_twi_transfer_buffer, 17, IS31FL3731_I2C_TIMEOUT);
+#endif
+ }
+}
+
+void is31fl3731_init_drivers(void) {
+ i2c_init();
+
+ is31fl3731_init(IS31FL3731_I2C_ADDRESS_1);
+#if defined(IS31FL3731_I2C_ADDRESS_2)
+ is31fl3731_init(IS31FL3731_I2C_ADDRESS_2);
+# if defined(IS31FL3731_I2C_ADDRESS_3)
+ is31fl3731_init(IS31FL3731_I2C_ADDRESS_3);
+# if defined(IS31FL3731_I2C_ADDRESS_4)
+ is31fl3731_init(IS31FL3731_I2C_ADDRESS_4);
+# endif
+# endif
#endif
+
+ for (int i = 0; i < IS31FL3731_LED_COUNT; i++) {
+ is31fl3731_set_led_control_register(i, true);
}
+
+ is31fl3731_update_led_control_registers(IS31FL3731_I2C_ADDRESS_1, 0);
+#if defined(IS31FL3731_I2C_ADDRESS_2)
+ is31fl3731_update_led_control_registers(IS31FL3731_I2C_ADDRESS_2, 1);
+# if defined(IS31FL3731_I2C_ADDRESS_3)
+ is31fl3731_update_led_control_registers(IS31FL3731_I2C_ADDRESS_3, 2);
+# if defined(IS31FL3731_I2C_ADDRESS_4)
+ is31fl3731_update_led_control_registers(IS31FL3731_I2C_ADDRESS_4, 3);
+# endif
+# endif
+#endif
}
void is31fl3731_init(uint8_t addr) {
@@ -142,29 +124,29 @@ void is31fl3731_init(uint8_t addr) {
// then disable software shutdown.
// select "function register" bank
- is31fl3731_write_register(addr, ISSI_COMMANDREGISTER, ISSI_BANK_FUNCTIONREG);
+ is31fl3731_write_register(addr, IS31FL3731_REG_COMMAND, IS31FL3731_COMMAND_FUNCTION);
// enable software shutdown
- is31fl3731_write_register(addr, ISSI_REG_SHUTDOWN, 0x00);
-#ifdef ISSI_3731_DEGHOST // set to enable de-ghosting of the array
- is31fl3731_write_register(addr, ISSI_REG_GHOST_IMAGE_PREVENTION, 0x10);
+ is31fl3731_write_register(addr, IS31FL3731_FUNCTION_REG_SHUTDOWN, 0x00);
+#ifdef IS31FL3731_DEGHOST // set to enable de-ghosting of the array
+ is31fl3731_write_register(addr, IS31FL3731_FUNCTION_REG_GHOST_IMAGE_PREVENTION, IS31FL3731_GHOST_IMAGE_PREVENTION_GEN);
#endif
// this delay was copied from other drivers, might not be needed
wait_ms(10);
// picture mode
- is31fl3731_write_register(addr, ISSI_REG_CONFIG, ISSI_REG_CONFIG_PICTUREMODE);
+ is31fl3731_write_register(addr, IS31FL3731_FUNCTION_REG_CONFIG, IS31FL3731_CONFIG_MODE_PICTURE);
// display frame 0
- is31fl3731_write_register(addr, ISSI_REG_PICTUREFRAME, 0x00);
+ is31fl3731_write_register(addr, IS31FL3731_FUNCTION_REG_PICTURE_DISPLAY, 0x00);
// audio sync off
- is31fl3731_write_register(addr, ISSI_REG_AUDIOSYNC, 0x00);
+ is31fl3731_write_register(addr, IS31FL3731_FUNCTION_REG_AUDIO_SYNC, 0x00);
// select bank 0
- is31fl3731_write_register(addr, ISSI_COMMANDREGISTER, 0);
+ is31fl3731_write_register(addr, IS31FL3731_REG_COMMAND, IS31FL3731_COMMAND_FRAME_1);
// turn off all LEDs in the LED control register
- for (int i = 0x00; i <= 0x11; i++) {
+ for (int i = 0; i < IS31FL3731_LED_CONTROL_REGISTER_COUNT; i++) {
is31fl3731_write_register(addr, i, 0x00);
}
@@ -179,21 +161,21 @@ void is31fl3731_init(uint8_t addr) {
}
// select "function register" bank
- is31fl3731_write_register(addr, ISSI_COMMANDREGISTER, ISSI_BANK_FUNCTIONREG);
+ is31fl3731_write_register(addr, IS31FL3731_REG_COMMAND, IS31FL3731_COMMAND_FUNCTION);
// disable software shutdown
- is31fl3731_write_register(addr, ISSI_REG_SHUTDOWN, 0x01);
+ is31fl3731_write_register(addr, IS31FL3731_FUNCTION_REG_SHUTDOWN, 0x01);
// select bank 0 and leave it selected.
// most usage after initialization is just writing PWM buffers in bank 0
// as there's not much point in double-buffering
- is31fl3731_write_register(addr, ISSI_COMMANDREGISTER, 0);
+ is31fl3731_write_register(addr, IS31FL3731_REG_COMMAND, IS31FL3731_COMMAND_FRAME_1);
}
void is31fl3731_set_value(int index, uint8_t value) {
- is31_led led;
- if (index >= 0 && index < LED_MATRIX_LED_COUNT) {
- memcpy_P(&led, (&g_is31_leds[index]), sizeof(led));
+ is31fl3731_led_t led;
+ if (index >= 0 && index < IS31FL3731_LED_COUNT) {
+ memcpy_P(&led, (&g_is31fl3731_leds[index]), sizeof(led));
// Subtract 0x24 to get the second index of g_pwm_buffer
@@ -206,14 +188,14 @@ void is31fl3731_set_value(int index, uint8_t value) {
}
void is31fl3731_set_value_all(uint8_t value) {
- for (int i = 0; i < LED_MATRIX_LED_COUNT; i++) {
+ for (int i = 0; i < IS31FL3731_LED_COUNT; i++) {
is31fl3731_set_value(i, value);
}
}
void is31fl3731_set_led_control_register(uint8_t index, bool value) {
- is31_led led;
- memcpy_P(&led, (&g_is31_leds[index]), sizeof(led));
+ is31fl3731_led_t led;
+ memcpy_P(&led, (&g_is31fl3731_leds[index]), sizeof(led));
uint8_t control_register = (led.v - 0x24) / 8;
uint8_t bit_value = (led.v - 0x24) % 8;
@@ -236,9 +218,22 @@ void is31fl3731_update_pwm_buffers(uint8_t addr, uint8_t index) {
void is31fl3731_update_led_control_registers(uint8_t addr, uint8_t index) {
if (g_led_control_registers_update_required[index]) {
- for (int i = 0; i < 18; i++) {
+ for (int i = 0; i < IS31FL3731_LED_CONTROL_REGISTER_COUNT; i++) {
is31fl3731_write_register(addr, i, g_led_control_registers[index][i]);
}
g_led_control_registers_update_required[index] = false;
}
}
+
+void is31fl3731_flush(void) {
+ is31fl3731_update_pwm_buffers(IS31FL3731_I2C_ADDRESS_1, 0);
+#if defined(IS31FL3731_I2C_ADDRESS_2)
+ is31fl3731_update_pwm_buffers(IS31FL3731_I2C_ADDRESS_2, 1);
+# if defined(IS31FL3731_I2C_ADDRESS_3)
+ is31fl3731_update_pwm_buffers(IS31FL3731_I2C_ADDRESS_3, 2);
+# if defined(IS31FL3731_I2C_ADDRESS_4)
+ is31fl3731_update_pwm_buffers(IS31FL3731_I2C_ADDRESS_4, 3);
+# endif
+# endif
+#endif
+}
diff --git a/drivers/led/issi/is31fl3731-simple.h b/drivers/led/issi/is31fl3731-simple.h
index 69fba14a0b..4d173847dd 100644
--- a/drivers/led/issi/is31fl3731-simple.h
+++ b/drivers/led/issi/is31fl3731-simple.h
@@ -20,16 +20,87 @@
#include <stdint.h>
#include <stdbool.h>
-#include <string.h>
#include "progmem.h"
+#include "util.h"
-typedef struct is31_led {
+// ======== DEPRECATED DEFINES - DO NOT USE ========
+#ifdef LED_DRIVER_ADDR_1
+# define IS31FL3731_I2C_ADDRESS_1 LED_DRIVER_ADDR_1
+#endif
+#ifdef LED_DRIVER_ADDR_2
+# define IS31FL3731_I2C_ADDRESS_2 LED_DRIVER_ADDR_2
+#endif
+#ifdef LED_DRIVER_ADDR_3
+# define IS31FL3731_I2C_ADDRESS_3 LED_DRIVER_ADDR_3
+#endif
+#ifdef LED_DRIVER_ADDR_4
+# define IS31FL3731_I2C_ADDRESS_4 LED_DRIVER_ADDR_4
+#endif
+#ifdef ISSI_TIMEOUT
+# define IS31FL3731_I2C_TIMEOUT ISSI_TIMEOUT
+#endif
+#ifdef ISSI_PERSISTENCE
+# define IS31FL3731_I2C_PERSISTENCE ISSI_PERSISTENCE
+#endif
+#ifdef ISSI_3731_DEGHOST
+# define IS31FL3731_DEGHOST ISSI_3731_DEGHOST
+#endif
+
+#define is31_led is31fl3731_led_t
+#define g_is31_leds g_is31fl3731_leds
+// ========
+
+#define IS31FL3731_REG_COMMAND 0xFD
+#define IS31FL3731_COMMAND_FRAME_1 0x00
+#define IS31FL3731_COMMAND_FRAME_2 0x01
+#define IS31FL3731_COMMAND_FRAME_3 0x02
+#define IS31FL3731_COMMAND_FRAME_4 0x03
+#define IS31FL3731_COMMAND_FRAME_5 0x04
+#define IS31FL3731_COMMAND_FRAME_6 0x05
+#define IS31FL3731_COMMAND_FRAME_7 0x06
+#define IS31FL3731_COMMAND_FRAME_8 0x07
+#define IS31FL3731_COMMAND_FUNCTION 0x0B
+
+#define IS31FL3731_FUNCTION_REG_CONFIG 0x00
+#define IS31FL3731_CONFIG_MODE_PICTURE 0x00
+#define IS31FL3731_CONFIG_MODE_AUTO_PLAY 0x08
+#define IS31FL3731_CONFIG_MODE_AUDIO_PLAY 0x18
+
+#define IS31FL3731_FUNCTION_REG_PICTURE_DISPLAY 0x01
+#define IS31FL3731_FUNCTION_REG_AUDIO_SYNC 0x06
+#define IS31FL3731_FUNCTION_REG_SHUTDOWN 0x0A
+
+// Not defined in the datasheet -- See AN for IC
+#define IS31FL3731_FUNCTION_REG_GHOST_IMAGE_PREVENTION 0xC2
+#define IS31FL3731_GHOST_IMAGE_PREVENTION_GEN 0x10
+
+#define IS31FL3731_I2C_ADDRESS_GND 0x74
+#define IS31FL3731_I2C_ADDRESS_SCL 0x75
+#define IS31FL3731_I2C_ADDRESS_SDA 0x76
+#define IS31FL3731_I2C_ADDRESS_VCC 0x77
+
+#if defined(LED_MATRIX_IS31FL3731)
+# define IS31FL3731_LED_COUNT LED_MATRIX_LED_COUNT
+#endif
+
+#if defined IS31FL3731_I2C_ADDRESS_4
+# define IS31FL3731_DRIVER_COUNT 4
+#elif defined IS31FL3731_I2C_ADDRESS_3
+# define IS31FL3731_DRIVER_COUNT 3
+#elif defined IS31FL3731_I2C_ADDRESS_2
+# define IS31FL3731_DRIVER_COUNT 2
+#elif defined IS31FL3731_I2C_ADDRESS_1
+# define IS31FL3731_DRIVER_COUNT 1
+#endif
+
+typedef struct is31fl3731_led_t {
uint8_t driver : 2;
uint8_t v;
-} __attribute__((packed)) is31_led;
+} PACKED is31fl3731_led_t;
-extern const is31_led PROGMEM g_is31_leds[LED_MATRIX_LED_COUNT];
+extern const is31fl3731_led_t PROGMEM g_is31fl3731_leds[IS31FL3731_LED_COUNT];
+void is31fl3731_init_drivers(void);
void is31fl3731_init(uint8_t addr);
void is31fl3731_write_register(uint8_t addr, uint8_t reg, uint8_t data);
void is31fl3731_write_pwm_buffer(uint8_t addr, uint8_t *pwm_buffer);
@@ -46,6 +117,8 @@ void is31fl3731_set_led_control_register(uint8_t index, bool value);
void is31fl3731_update_pwm_buffers(uint8_t addr, uint8_t index);
void is31fl3731_update_led_control_registers(uint8_t addr, uint8_t index);
+void is31fl3731_flush(void);
+
#define C1_1 0x24
#define C1_2 0x25
#define C1_3 0x26
diff --git a/drivers/led/issi/is31fl3731.c b/drivers/led/issi/is31fl3731.c
index 15a01b6d75..1ab8997731 100644
--- a/drivers/led/issi/is31fl3731.c
+++ b/drivers/led/issi/is31fl3731.c
@@ -17,44 +17,19 @@
*/
#include "is31fl3731.h"
+#include <string.h>
#include "i2c_master.h"
#include "wait.h"
-// This is a 7-bit address, that gets left-shifted and bit 0
-// set to 0 for write, 1 for read (as per I2C protocol)
-// The address will vary depending on your wiring:
-// 0b1110100 AD <-> GND
-// 0b1110111 AD <-> VCC
-// 0b1110101 AD <-> SCL
-// 0b1110110 AD <-> SDA
-#define ISSI_ADDR_DEFAULT 0x74
+#define IS31FL3731_PWM_REGISTER_COUNT 144
+#define IS31FL3731_LED_CONTROL_REGISTER_COUNT 18
-#define ISSI_REG_CONFIG 0x00
-#define ISSI_REG_CONFIG_PICTUREMODE 0x00
-#define ISSI_REG_CONFIG_AUTOPLAYMODE 0x08
-#define ISSI_REG_CONFIG_AUDIOPLAYMODE 0x18
-
-#define ISSI_CONF_PICTUREMODE 0x00
-#define ISSI_CONF_AUTOFRAMEMODE 0x04
-#define ISSI_CONF_AUDIOMODE 0x08
-
-#define ISSI_REG_PICTUREFRAME 0x01
-
-// Not defined in the datasheet -- See AN for IC
-#define ISSI_REG_GHOST_IMAGE_PREVENTION 0xC2 // Set bit 4 to enable de-ghosting
-
-#define ISSI_REG_SHUTDOWN 0x0A
-#define ISSI_REG_AUDIOSYNC 0x06
-
-#define ISSI_COMMANDREGISTER 0xFD
-#define ISSI_BANK_FUNCTIONREG 0x0B // helpfully called 'page nine'
-
-#ifndef ISSI_TIMEOUT
-# define ISSI_TIMEOUT 100
+#ifndef IS31FL3731_I2C_TIMEOUT
+# define IS31FL3731_I2C_TIMEOUT 100
#endif
-#ifndef ISSI_PERSISTENCE
-# define ISSI_PERSISTENCE 0
+#ifndef IS31FL3731_I2C_PERSISTENCE
+# define IS31FL3731_I2C_PERSISTENCE 0
#endif
// Transfer buffer for TWITransmitData()
@@ -65,36 +40,22 @@ uint8_t g_twi_transfer_buffer[20];
// We could optimize this and take out the unused registers from these
// buffers and the transfers in is31fl3731_write_pwm_buffer() but it's
// probably not worth the extra complexity.
-uint8_t g_pwm_buffer[DRIVER_COUNT][144];
-bool g_pwm_buffer_update_required[DRIVER_COUNT] = {false};
-
-uint8_t g_led_control_registers[DRIVER_COUNT][18] = {{0}};
-bool g_led_control_registers_update_required[DRIVER_COUNT] = {false};
-
-// This is the bit pattern in the LED control registers
-// (for matrix A, add one to register for matrix B)
-//
-// reg - b7 b6 b5 b4 b3 b2 b1 b0
-// 0x00 - R08,R07,R06,R05,R04,R03,R02,R01
-// 0x02 - G08,G07,G06,G05,G04,G03,G02,R00
-// 0x04 - B08,B07,B06,B05,B04,B03,G01,G00
-// 0x06 - - , - , - , - , - ,B02,B01,B00
-// 0x08 - - , - , - , - , - , - , - , -
-// 0x0A - B17,B16,B15, - , - , - , - , -
-// 0x0C - G17,G16,B14,B13,B12,B11,B10,B09
-// 0x0E - R17,G15,G14,G13,G12,G11,G10,G09
-// 0x10 - R16,R15,R14,R13,R12,R11,R10,R09
+uint8_t g_pwm_buffer[IS31FL3731_DRIVER_COUNT][IS31FL3731_PWM_REGISTER_COUNT];
+bool g_pwm_buffer_update_required[IS31FL3731_DRIVER_COUNT] = {false};
+
+uint8_t g_led_control_registers[IS31FL3731_DRIVER_COUNT][IS31FL3731_LED_CONTROL_REGISTER_COUNT] = {0};
+bool g_led_control_registers_update_required[IS31FL3731_DRIVER_COUNT] = {false};
void is31fl3731_write_register(uint8_t addr, uint8_t reg, uint8_t data) {
g_twi_transfer_buffer[0] = reg;
g_twi_transfer_buffer[1] = data;
-#if ISSI_PERSISTENCE > 0
- for (uint8_t i = 0; i < ISSI_PERSISTENCE; i++) {
- if (i2c_transmit(addr << 1, g_twi_transfer_buffer, 2, ISSI_TIMEOUT) == 0) break;
+#if IS31FL3731_I2C_PERSISTENCE > 0
+ for (uint8_t i = 0; i < IS31FL3731_I2C_PERSISTENCE; i++) {
+ if (i2c_transmit(addr << 1, g_twi_transfer_buffer, 2, IS31FL3731_I2C_TIMEOUT) == 0) break;
}
#else
- i2c_transmit(addr << 1, g_twi_transfer_buffer, 2, ISSI_TIMEOUT);
+ i2c_transmit(addr << 1, g_twi_transfer_buffer, 2, IS31FL3731_I2C_TIMEOUT);
#endif
}
@@ -105,7 +66,7 @@ void is31fl3731_write_pwm_buffer(uint8_t addr, uint8_t *pwm_buffer) {
// g_twi_transfer_buffer[] is 20 bytes
// iterate over the pwm_buffer contents at 16 byte intervals
- for (int i = 0; i < 144; i += 16) {
+ for (int i = 0; i < IS31FL3731_PWM_REGISTER_COUNT; i += 16) {
// set the first register, e.g. 0x24, 0x34, 0x44, etc.
g_twi_transfer_buffer[0] = 0x24 + i;
// copy the data from i to i+15
@@ -113,16 +74,46 @@ void is31fl3731_write_pwm_buffer(uint8_t addr, uint8_t *pwm_buffer) {
// thus this sets registers 0x24-0x33, 0x34-0x43, etc. in one transfer
memcpy(g_twi_transfer_buffer + 1, pwm_buffer + i, 16);
-#if ISSI_PERSISTENCE > 0
- for (uint8_t i = 0; i < ISSI_PERSISTENCE; i++) {
- if (i2c_transmit(addr << 1, g_twi_transfer_buffer, 17, ISSI_TIMEOUT) == 0) break;
+#if IS31FL3731_I2C_PERSISTENCE > 0
+ for (uint8_t i = 0; i < IS31FL3731_I2C_PERSISTENCE; i++) {
+ if (i2c_transmit(addr << 1, g_twi_transfer_buffer, 17, IS31FL3731_I2C_TIMEOUT) == 0) break;
}
#else
- i2c_transmit(addr << 1, g_twi_transfer_buffer, 17, ISSI_TIMEOUT);
+ i2c_transmit(addr << 1, g_twi_transfer_buffer, 17, IS31FL3731_I2C_TIMEOUT);
#endif
}
}
+void is31fl3731_init_drivers(void) {
+ i2c_init();
+
+ is31fl3731_init(IS31FL3731_I2C_ADDRESS_1);
+#if defined(IS31FL3731_I2C_ADDRESS_2)
+ is31fl3731_init(IS31FL3731_I2C_ADDRESS_2);
+# if defined(IS31FL3731_I2C_ADDRESS_3)
+ is31fl3731_init(IS31FL3731_I2C_ADDRESS_3);
+# if defined(IS31FL3731_I2C_ADDRESS_4)
+ is31fl3731_init(IS31FL3731_I2C_ADDRESS_4);
+# endif
+# endif
+#endif
+
+ for (int i = 0; i < IS31FL3731_LED_COUNT; i++) {
+ is31fl3731_set_led_control_register(i, true, true, true);
+ }
+
+ is31fl3731_update_led_control_registers(IS31FL3731_I2C_ADDRESS_1, 0);
+#if defined(IS31FL3731_I2C_ADDRESS_2)
+ is31fl3731_update_led_control_registers(IS31FL3731_I2C_ADDRESS_2, 1);
+# if defined(IS31FL3731_I2C_ADDRESS_3)
+ is31fl3731_update_led_control_registers(IS31FL3731_I2C_ADDRESS_3, 2);
+# if defined(IS31FL3731_I2C_ADDRESS_4)
+ is31fl3731_update_led_control_registers(IS31FL3731_I2C_ADDRESS_4, 3);
+# endif
+# endif
+#endif
+}
+
void is31fl3731_init(uint8_t addr) {
// In order to avoid the LEDs being driven with garbage data
// in the LED driver's PWM registers, first enable software shutdown,
@@ -130,29 +121,29 @@ void is31fl3731_init(uint8_t addr) {
// then disable software shutdown.
// select "function register" bank
- is31fl3731_write_register(addr, ISSI_COMMANDREGISTER, ISSI_BANK_FUNCTIONREG);
+ is31fl3731_write_register(addr, IS31FL3731_REG_COMMAND, IS31FL3731_COMMAND_FUNCTION);
// enable software shutdown
- is31fl3731_write_register(addr, ISSI_REG_SHUTDOWN, 0x00);
-#ifdef ISSI_3731_DEGHOST // set to enable de-ghosting of the array
- is31fl3731_write_register(addr, ISSI_REG_GHOST_IMAGE_PREVENTION, 0x10);
+ is31fl3731_write_register(addr, IS31FL3731_FUNCTION_REG_SHUTDOWN, 0x00);
+#ifdef IS31FL3731_DEGHOST // set to enable de-ghosting of the array
+ is31fl3731_write_register(addr, IS31FL3731_FUNCTION_REG_GHOST_IMAGE_PREVENTION, IS31FL3731_GHOST_IMAGE_PREVENTION_GEN);
#endif
// this delay was copied from other drivers, might not be needed
wait_ms(10);
// picture mode
- is31fl3731_write_register(addr, ISSI_REG_CONFIG, ISSI_REG_CONFIG_PICTUREMODE);
+ is31fl3731_write_register(addr, IS31FL3731_FUNCTION_REG_CONFIG, IS31FL3731_CONFIG_MODE_PICTURE);
// display frame 0
- is31fl3731_write_register(addr, ISSI_REG_PICTUREFRAME, 0x00);
+ is31fl3731_write_register(addr, IS31FL3731_FUNCTION_REG_PICTURE_DISPLAY, 0x00);
// audio sync off
- is31fl3731_write_register(addr, ISSI_REG_AUDIOSYNC, 0x00);
+ is31fl3731_write_register(addr, IS31FL3731_FUNCTION_REG_AUDIO_SYNC, 0x00);
// select bank 0
- is31fl3731_write_register(addr, ISSI_COMMANDREGISTER, 0);
+ is31fl3731_write_register(addr, IS31FL3731_REG_COMMAND, IS31FL3731_COMMAND_FRAME_1);
// turn off all LEDs in the LED control register
- for (int i = 0x00; i <= 0x11; i++) {
+ for (int i = 0; i < IS31FL3731_LED_CONTROL_REGISTER_COUNT; i++) {
is31fl3731_write_register(addr, i, 0x00);
}
@@ -167,21 +158,21 @@ void is31fl3731_init(uint8_t addr) {
}
// select "function register" bank
- is31fl3731_write_register(addr, ISSI_COMMANDREGISTER, ISSI_BANK_FUNCTIONREG);
+ is31fl3731_write_register(addr, IS31FL3731_REG_COMMAND, IS31FL3731_COMMAND_FUNCTION);
// disable software shutdown
- is31fl3731_write_register(addr, ISSI_REG_SHUTDOWN, 0x01);
+ is31fl3731_write_register(addr, IS31FL3731_FUNCTION_REG_SHUTDOWN, 0x01);
// select bank 0 and leave it selected.
// most usage after initialization is just writing PWM buffers in bank 0
// as there's not much point in double-buffering
- is31fl3731_write_register(addr, ISSI_COMMANDREGISTER, 0);
+ is31fl3731_write_register(addr, IS31FL3731_REG_COMMAND, IS31FL3731_COMMAND_FRAME_1);
}
void is31fl3731_set_color(int index, uint8_t red, uint8_t green, uint8_t blue) {
- is31_led led;
- if (index >= 0 && index < RGB_MATRIX_LED_COUNT) {
- memcpy_P(&led, (&g_is31_leds[index]), sizeof(led));
+ is31fl3731_led_t led;
+ if (index >= 0 && index < IS31FL3731_LED_COUNT) {
+ memcpy_P(&led, (&g_is31fl3731_leds[index]), sizeof(led));
// Subtract 0x24 to get the second index of g_pwm_buffer
if (g_pwm_buffer[led.driver][led.r - 0x24] == red && g_pwm_buffer[led.driver][led.g - 0x24] == green && g_pwm_buffer[led.driver][led.b - 0x24] == blue) {
@@ -195,14 +186,14 @@ void is31fl3731_set_color(int index, uint8_t red, uint8_t green, uint8_t blue) {
}
void is31fl3731_set_color_all(uint8_t red, uint8_t green, uint8_t blue) {
- for (int i = 0; i < RGB_MATRIX_LED_COUNT; i++) {
+ for (int i = 0; i < IS31FL3731_LED_COUNT; i++) {
is31fl3731_set_color(i, red, green, blue);
}
}
void is31fl3731_set_led_control_register(uint8_t index, bool red, bool green, bool blue) {
- is31_led led;
- memcpy_P(&led, (&g_is31_leds[index]), sizeof(led));
+ is31fl3731_led_t led;
+ memcpy_P(&led, (&g_is31fl3731_leds[index]), sizeof(led));
uint8_t control_register_r = (led.r - 0x24) / 8;
uint8_t control_register_g = (led.g - 0x24) / 8;
@@ -239,9 +230,22 @@ void is31fl3731_update_pwm_buffers(uint8_t addr, uint8_t index) {
void is31fl3731_update_led_control_registers(uint8_t addr, uint8_t index) {
if (g_led_control_registers_update_required[index]) {
- for (int i = 0; i < 18; i++) {
+ for (int i = 0; i < IS31FL3731_LED_CONTROL_REGISTER_COUNT; i++) {
is31fl3731_write_register(addr, i, g_led_control_registers[index][i]);
}
}
g_led_control_registers_update_required[index] = false;
}
+
+void is31fl3731_flush(void) {
+ is31fl3731_update_pwm_buffers(IS31FL3731_I2C_ADDRESS_1, 0);
+#if defined(IS31FL3731_I2C_ADDRESS_2)
+ is31fl3731_update_pwm_buffers(IS31FL3731_I2C_ADDRESS_2, 1);
+# if defined(IS31FL3731_I2C_ADDRESS_3)
+ is31fl3731_update_pwm_buffers(IS31FL3731_I2C_ADDRESS_3, 2);
+# if defined(IS31FL3731_I2C_ADDRESS_4)
+ is31fl3731_update_pwm_buffers(IS31FL3731_I2C_ADDRESS_4, 3);
+# endif
+# endif
+#endif
+}
diff --git a/drivers/led/issi/is31fl3731.h b/drivers/led/issi/is31fl3731.h
index bdf03de1ee..b45cb2b07d 100644
--- a/drivers/led/issi/is31fl3731.h
+++ b/drivers/led/issi/is31fl3731.h
@@ -19,18 +19,89 @@
#include <stdint.h>
#include <stdbool.h>
-#include <string.h>
#include "progmem.h"
+#include "util.h"
-typedef struct is31_led {
+// ======== DEPRECATED DEFINES - DO NOT USE ========
+#ifdef DRIVER_ADDR_1
+# define IS31FL3731_I2C_ADDRESS_1 DRIVER_ADDR_1
+#endif
+#ifdef DRIVER_ADDR_2
+# define IS31FL3731_I2C_ADDRESS_2 DRIVER_ADDR_2
+#endif
+#ifdef DRIVER_ADDR_3
+# define IS31FL3731_I2C_ADDRESS_3 DRIVER_ADDR_3
+#endif
+#ifdef DRIVER_ADDR_4
+# define IS31FL3731_I2C_ADDRESS_4 DRIVER_ADDR_4
+#endif
+#ifdef ISSI_TIMEOUT
+# define IS31FL3731_I2C_TIMEOUT ISSI_TIMEOUT
+#endif
+#ifdef ISSI_PERSISTENCE
+# define IS31FL3731_I2C_PERSISTENCE ISSI_PERSISTENCE
+#endif
+#ifdef ISSI_3731_DEGHOST
+# define IS31FL3731_DEGHOST ISSI_3731_DEGHOST
+#endif
+
+#define is31_led is31fl3731_led_t
+#define g_is31_leds g_is31fl3731_leds
+// ========
+
+#define IS31FL3731_REG_COMMAND 0xFD
+#define IS31FL3731_COMMAND_FRAME_1 0x00
+#define IS31FL3731_COMMAND_FRAME_2 0x01
+#define IS31FL3731_COMMAND_FRAME_3 0x02
+#define IS31FL3731_COMMAND_FRAME_4 0x03
+#define IS31FL3731_COMMAND_FRAME_5 0x04
+#define IS31FL3731_COMMAND_FRAME_6 0x05
+#define IS31FL3731_COMMAND_FRAME_7 0x06
+#define IS31FL3731_COMMAND_FRAME_8 0x07
+#define IS31FL3731_COMMAND_FUNCTION 0x0B
+
+#define IS31FL3731_FUNCTION_REG_CONFIG 0x00
+#define IS31FL3731_CONFIG_MODE_PICTURE 0x00
+#define IS31FL3731_CONFIG_MODE_AUTO_PLAY 0x08
+#define IS31FL3731_CONFIG_MODE_AUDIO_PLAY 0x18
+
+#define IS31FL3731_FUNCTION_REG_PICTURE_DISPLAY 0x01
+#define IS31FL3731_FUNCTION_REG_AUDIO_SYNC 0x06
+#define IS31FL3731_FUNCTION_REG_SHUTDOWN 0x0A
+
+// Not defined in the datasheet -- See AN for IC
+#define IS31FL3731_FUNCTION_REG_GHOST_IMAGE_PREVENTION 0xC2
+#define IS31FL3731_GHOST_IMAGE_PREVENTION_GEN 0x10
+
+#define IS31FL3731_I2C_ADDRESS_GND 0x74
+#define IS31FL3731_I2C_ADDRESS_SCL 0x75
+#define IS31FL3731_I2C_ADDRESS_SDA 0x76
+#define IS31FL3731_I2C_ADDRESS_VCC 0x77
+
+#if defined(RGB_MATRIX_IS31FL3731)
+# define IS31FL3731_LED_COUNT RGB_MATRIX_LED_COUNT
+#endif
+
+#if defined(IS31FL3731_I2C_ADDRESS_4)
+# define IS31FL3731_DRIVER_COUNT 4
+#elif defined(IS31FL3731_I2C_ADDRESS_3)
+# define IS31FL3731_DRIVER_COUNT 3
+#elif defined(IS31FL3731_I2C_ADDRESS_2)
+# define IS31FL3731_DRIVER_COUNT 2
+#elif defined(IS31FL3731_I2C_ADDRESS_1)
+# define IS31FL3731_DRIVER_COUNT 1
+#endif
+
+typedef struct is31fl3731_led_t {
uint8_t driver : 2;
uint8_t r;
uint8_t g;
uint8_t b;
-} __attribute__((packed)) is31_led;
+} PACKED is31fl3731_led_t;
-extern const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT];
+extern const is31fl3731_led_t PROGMEM g_is31fl3731_leds[IS31FL3731_LED_COUNT];
+void is31fl3731_init_drivers(void);
void is31fl3731_init(uint8_t addr);
void is31fl3731_write_register(uint8_t addr, uint8_t reg, uint8_t data);
void is31fl3731_write_pwm_buffer(uint8_t addr, uint8_t *pwm_buffer);
@@ -47,6 +118,8 @@ void is31fl3731_set_led_control_register(uint8_t index, bool red, bool green, bo
void is31fl3731_update_pwm_buffers(uint8_t addr, uint8_t index);
void is31fl3731_update_led_control_registers(uint8_t addr, uint8_t index);
+void is31fl3731_flush(void);
+
#define C1_1 0x24
#define C1_2 0x25
#define C1_3 0x26
diff --git a/drivers/led/issi/is31fl3733-simple.c b/drivers/led/issi/is31fl3733-simple.c
index f9a0a271a8..9f2444c253 100644
--- a/drivers/led/issi/is31fl3733-simple.c
+++ b/drivers/led/issi/is31fl3733-simple.c
@@ -19,59 +19,48 @@
*/
#include "is31fl3733-simple.h"
+#include <string.h>
#include "i2c_master.h"
#include "wait.h"
-// This is a 7-bit address, that gets left-shifted and bit 0
-// set to 0 for write, 1 for read (as per I2C protocol)
-// The address will vary depending on your wiring:
-// 00 <-> GND
-// 01 <-> SCL
-// 10 <-> SDA
-// 11 <-> VCC
-// ADDR1 represents A1:A0 of the 7-bit address.
-// ADDR2 represents A3:A2 of the 7-bit address.
-// The result is: 0b101(ADDR2)(ADDR1)
-#define ISSI_ADDR_DEFAULT 0x50
-
-#define ISSI_COMMANDREGISTER 0xFD
-#define ISSI_COMMANDREGISTER_WRITELOCK 0xFE
-#define ISSI_INTERRUPTMASKREGISTER 0xF0
-#define ISSI_INTERRUPTSTATUSREGISTER 0xF1
-
-#define ISSI_PAGE_LEDCONTROL 0x00 // PG0
-#define ISSI_PAGE_PWM 0x01 // PG1
-#define ISSI_PAGE_AUTOBREATH 0x02 // PG2
-#define ISSI_PAGE_FUNCTION 0x03 // PG3
-
-#define ISSI_REG_CONFIGURATION 0x00 // PG3
-#define ISSI_REG_GLOBALCURRENT 0x01 // PG3
-#define ISSI_REG_RESET 0x11 // PG3
-#define ISSI_REG_SWPULLUP 0x0F // PG3
-#define ISSI_REG_CSPULLUP 0x10 // PG3
-
-#ifndef ISSI_TIMEOUT
-# define ISSI_TIMEOUT 100
+#define IS31FL3733_PWM_REGISTER_COUNT 192
+#define IS31FL3733_LED_CONTROL_REGISTER_COUNT 24
+
+#ifndef IS31FL3733_I2C_TIMEOUT
+# define IS31FL3733_I2C_TIMEOUT 100
#endif
-#ifndef ISSI_PERSISTENCE
-# define ISSI_PERSISTENCE 0
+#ifndef IS31FL3733_I2C_PERSISTENCE
+# define IS31FL3733_I2C_PERSISTENCE 0
#endif
-#ifndef ISSI_PWM_FREQUENCY
-# define ISSI_PWM_FREQUENCY 0b000 // PFS - IS31FL3733B only
+#ifndef IS31FL3733_PWM_FREQUENCY
+# define IS31FL3733_PWM_FREQUENCY IS31FL3733_PWM_FREQUENCY_8K4_HZ // PFS - IS31FL3733B only
#endif
-#ifndef ISSI_SWPULLUP
-# define ISSI_SWPULLUP PUR_0R
+#ifndef IS31FL3733_SW_PULLUP
+# define IS31FL3733_SW_PULLUP IS31FL3733_PUR_0_OHM
#endif
-#ifndef ISSI_CSPULLUP
-# define ISSI_CSPULLUP PUR_0R
+#ifndef IS31FL3733_CS_PULLDOWN
+# define IS31FL3733_CSPULLDOWN IS31FL3733_PDR_0_OHM
#endif
-#ifndef ISSI_GLOBALCURRENT
-# define ISSI_GLOBALCURRENT 0xFF
+#ifndef IS31FL3733_GLOBAL_CURRENT
+# define IS31FL3733_GLOBAL_CURRENT 0xFF
+#endif
+
+#ifndef IS31FL3733_SYNC_1
+# define IS31FL3733_SYNC_1 IS31FL3733_SYNC_NONE
+#endif
+#ifndef IS31FL3733_SYNC_2
+# define IS31FL3733_SYNC_2 IS31FL3733_SYNC_NONE
+#endif
+#ifndef IS31FL3733_SYNC_3
+# define IS31FL3733_SYNC_3 IS31FL3733_SYNC_NONE
+#endif
+#ifndef IS31FL3733_SYNC_4
+# define IS31FL3733_SYNC_4 IS31FL3733_SYNC_NONE
#endif
// Transfer buffer for TWITransmitData()
@@ -83,34 +72,25 @@ uint8_t g_twi_transfer_buffer[20];
// We could optimize this and take out the unused registers from these
// buffers and the transfers in is31fl3733_write_pwm_buffer() but it's
// probably not worth the extra complexity.
-uint8_t g_pwm_buffer[LED_DRIVER_COUNT][192];
-bool g_pwm_buffer_update_required[LED_DRIVER_COUNT] = {false};
-
-/* There's probably a better way to init this... */
-#if LED_DRIVER_COUNT == 1
-uint8_t g_led_control_registers[LED_DRIVER_COUNT][24] = {{0}};
-#elif LED_DRIVER_COUNT == 2
-uint8_t g_led_control_registers[LED_DRIVER_COUNT][24] = {{0}, {0}};
-#elif LED_DRIVER_COUNT == 3
-uint8_t g_led_control_registers[LED_DRIVER_COUNT][24] = {{0}, {0}, {0}};
-#elif LED_DRIVER_COUNT == 4
-uint8_t g_led_control_registers[LED_DRIVER_COUNT][24] = {{0}, {0}, {0}, {0}};
-#endif
-bool g_led_control_registers_update_required[LED_DRIVER_COUNT] = {false};
+uint8_t g_pwm_buffer[IS31FL3733_DRIVER_COUNT][IS31FL3733_PWM_REGISTER_COUNT];
+bool g_pwm_buffer_update_required[IS31FL3733_DRIVER_COUNT] = {false};
+
+uint8_t g_led_control_registers[IS31FL3733_DRIVER_COUNT][IS31FL3733_LED_CONTROL_REGISTER_COUNT] = {0};
+bool g_led_control_registers_update_required[IS31FL3733_DRIVER_COUNT] = {false};
bool is31fl3733_write_register(uint8_t addr, uint8_t reg, uint8_t data) {
// If the transaction fails function returns false.
g_twi_transfer_buffer[0] = reg;
g_twi_transfer_buffer[1] = data;
-#if ISSI_PERSISTENCE > 0
- for (uint8_t i = 0; i < ISSI_PERSISTENCE; i++) {
- if (i2c_transmit(addr << 1, g_twi_transfer_buffer, 2, ISSI_TIMEOUT) != 0) {
+#if IS31FL3733_I2C_PERSISTENCE > 0
+ for (uint8_t i = 0; i < IS31FL3733_I2C_PERSISTENCE; i++) {
+ if (i2c_transmit(addr << 1, g_twi_transfer_buffer, 2, IS31FL3733_I2C_TIMEOUT) != 0) {
return false;
}
}
#else
- if (i2c_transmit(addr << 1, g_twi_transfer_buffer, 2, ISSI_TIMEOUT) != 0) {
+ if (i2c_transmit(addr << 1, g_twi_transfer_buffer, 2, IS31FL3733_I2C_TIMEOUT) != 0) {
return false;
}
#endif
@@ -124,21 +104,21 @@ bool is31fl3733_write_pwm_buffer(uint8_t addr, uint8_t *pwm_buffer) {
// g_twi_transfer_buffer[] is 20 bytes
// Iterate over the pwm_buffer contents at 16 byte intervals.
- for (int i = 0; i < 192; i += 16) {
+ for (int i = 0; i < IS31FL3733_PWM_REGISTER_COUNT; i += 16) {
g_twi_transfer_buffer[0] = i;
// Copy the data from i to i+15.
// Device will auto-increment register for data after the first byte
// Thus this sets registers 0x00-0x0F, 0x10-0x1F, etc. in one transfer.
memcpy(g_twi_transfer_buffer + 1, pwm_buffer + i, 16);
-#if ISSI_PERSISTENCE > 0
- for (uint8_t i = 0; i < ISSI_PERSISTENCE; i++) {
- if (i2c_transmit(addr << 1, g_twi_transfer_buffer, 17, ISSI_TIMEOUT) != 0) {
+#if IS31FL3733_I2C_PERSISTENCE > 0
+ for (uint8_t i = 0; i < IS31FL3733_I2C_PERSISTENCE; i++) {
+ if (i2c_transmit(addr << 1, g_twi_transfer_buffer, 17, IS31FL3733_I2C_TIMEOUT) != 0) {
return false;
}
}
#else
- if (i2c_transmit(addr << 1, g_twi_transfer_buffer, 17, ISSI_TIMEOUT) != 0) {
+ if (i2c_transmit(addr << 1, g_twi_transfer_buffer, 17, IS31FL3733_I2C_TIMEOUT) != 0) {
return false;
}
#endif
@@ -146,6 +126,36 @@ bool is31fl3733_write_pwm_buffer(uint8_t addr, uint8_t *pwm_buffer) {
return true;
}
+void is31fl3733_init_drivers(void) {
+ i2c_init();
+
+ is31fl3733_init(IS31FL3733_I2C_ADDRESS_1, IS31FL3733_SYNC_1);
+#if defined(IS31FL3733_I2C_ADDRESS_2)
+ is31fl3733_init(IS31FL3733_I2C_ADDRESS_2, IS31FL3733_SYNC_2);
+# if defined(IS31FL3733_I2C_ADDRESS_3)
+ is31fl3733_init(IS31FL3733_I2C_ADDRESS_3, IS31FL3733_SYNC_3);
+# if defined(IS31FL3733_I2C_ADDRESS_4)
+ is31fl3733_init(IS31FL3733_I2C_ADDRESS_4, IS31FL3733_SYNC_4);
+# endif
+# endif
+#endif
+
+ for (int i = 0; i < IS31FL3733_LED_COUNT; i++) {
+ is31fl3733_set_led_control_register(i, true);
+ }
+
+ is31fl3733_update_led_control_registers(IS31FL3733_I2C_ADDRESS_1, 0);
+#if defined(IS31FL3733_I2C_ADDRESS_2)
+ is31fl3733_update_led_control_registers(IS31FL3733_I2C_ADDRESS_2, 1);
+# if defined(IS31FL3733_I2C_ADDRESS_3)
+ is31fl3733_update_led_control_registers(IS31FL3733_I2C_ADDRESS_3, 2);
+# if defined(IS31FL3733_I2C_ADDRESS_4)
+ is31fl3733_update_led_control_registers(IS31FL3733_I2C_ADDRESS_4, 3);
+# endif
+# endif
+#endif
+}
+
void is31fl3733_init(uint8_t addr, uint8_t sync) {
// In order to avoid the LEDs being driven with garbage data
// in the LED driver's PWM registers, shutdown is enabled last.
@@ -154,48 +164,48 @@ void is31fl3733_init(uint8_t addr, uint8_t sync) {
// Sync is passed so set it according to the datasheet.
// Unlock the command register.
- is31fl3733_write_register(addr, ISSI_COMMANDREGISTER_WRITELOCK, 0xC5);
+ is31fl3733_write_register(addr, IS31FL3733_REG_COMMAND_WRITE_LOCK, IS31FL3733_COMMAND_WRITE_LOCK_MAGIC);
// Select PG0
- is31fl3733_write_register(addr, ISSI_COMMANDREGISTER, ISSI_PAGE_LEDCONTROL);
+ is31fl3733_write_register(addr, IS31FL3733_REG_COMMAND, IS31FL3733_COMMAND_LED_CONTROL);
// Turn off all LEDs.
- for (int i = 0x00; i <= 0x17; i++) {
+ for (int i = 0; i < IS31FL3733_LED_CONTROL_REGISTER_COUNT; i++) {
is31fl3733_write_register(addr, i, 0x00);
}
// Unlock the command register.
- is31fl3733_write_register(addr, ISSI_COMMANDREGISTER_WRITELOCK, 0xC5);
+ is31fl3733_write_register(addr, IS31FL3733_REG_COMMAND_WRITE_LOCK, IS31FL3733_COMMAND_WRITE_LOCK_MAGIC);
// Select PG1
- is31fl3733_write_register(addr, ISSI_COMMANDREGISTER, ISSI_PAGE_PWM);
+ is31fl3733_write_register(addr, IS31FL3733_REG_COMMAND, IS31FL3733_COMMAND_PWM);
// Set PWM on all LEDs to 0
// No need to setup Breath registers to PWM as that is the default.
- for (int i = 0x00; i <= 0xBF; i++) {
+ for (int i = 0; i < IS31FL3733_PWM_REGISTER_COUNT; i++) {
is31fl3733_write_register(addr, i, 0x00);
}
// Unlock the command register.
- is31fl3733_write_register(addr, ISSI_COMMANDREGISTER_WRITELOCK, 0xC5);
+ is31fl3733_write_register(addr, IS31FL3733_REG_COMMAND_WRITE_LOCK, IS31FL3733_COMMAND_WRITE_LOCK_MAGIC);
// Select PG3
- is31fl3733_write_register(addr, ISSI_COMMANDREGISTER, ISSI_PAGE_FUNCTION);
+ is31fl3733_write_register(addr, IS31FL3733_REG_COMMAND, IS31FL3733_COMMAND_FUNCTION);
// Set de-ghost pull-up resistors (SWx)
- is31fl3733_write_register(addr, ISSI_REG_SWPULLUP, ISSI_SWPULLUP);
+ is31fl3733_write_register(addr, IS31FL3733_FUNCTION_REG_SW_PULLUP, IS31FL3733_SW_PULLUP);
// Set de-ghost pull-down resistors (CSx)
- is31fl3733_write_register(addr, ISSI_REG_CSPULLUP, ISSI_CSPULLUP);
+ is31fl3733_write_register(addr, IS31FL3733_FUNCTION_REG_CS_PULLDOWN, IS31FL3733_CS_PULLDOWN);
// Set global current to maximum.
- is31fl3733_write_register(addr, ISSI_REG_GLOBALCURRENT, ISSI_GLOBALCURRENT);
+ is31fl3733_write_register(addr, IS31FL3733_FUNCTION_REG_GLOBAL_CURRENT, IS31FL3733_GLOBAL_CURRENT);
// Disable software shutdown.
- is31fl3733_write_register(addr, ISSI_REG_CONFIGURATION, ((sync & 0b11) << 6) | ((ISSI_PWM_FREQUENCY & 0b111) << 3) | 0x01);
+ is31fl3733_write_register(addr, IS31FL3733_FUNCTION_REG_CONFIGURATION, ((sync & 0b11) << 6) | ((IS31FL3733_PWM_FREQUENCY & 0b111) << 3) | 0x01);
// Wait 10ms to ensure the device has woken up.
wait_ms(10);
}
void is31fl3733_set_value(int index, uint8_t value) {
- is31_led led;
- if (index >= 0 && index < LED_MATRIX_LED_COUNT) {
- memcpy_P(&led, (&g_is31_leds[index]), sizeof(led));
+ is31fl3733_led_t led;
+ if (index >= 0 && index < IS31FL3733_LED_COUNT) {
+ memcpy_P(&led, (&g_is31fl3733_leds[index]), sizeof(led));
if (g_pwm_buffer[led.driver][led.v] == value) {
return;
@@ -206,14 +216,14 @@ void is31fl3733_set_value(int index, uint8_t value) {
}
void is31fl3733_set_value_all(uint8_t value) {
- for (int i = 0; i < LED_MATRIX_LED_COUNT; i++) {
+ for (int i = 0; i < IS31FL3733_LED_COUNT; i++) {
is31fl3733_set_value(i, value);
}
}
void is31fl3733_set_led_control_register(uint8_t index, bool value) {
- is31_led led;
- memcpy_P(&led, (&g_is31_leds[index]), sizeof(led));
+ is31fl3733_led_t led;
+ memcpy_P(&led, (&g_is31fl3733_leds[index]), sizeof(led));
uint8_t control_register = led.v / 8;
uint8_t bit_value = led.v % 8;
@@ -230,8 +240,8 @@ void is31fl3733_set_led_control_register(uint8_t index, bool value) {
void is31fl3733_update_pwm_buffers(uint8_t addr, uint8_t index) {
if (g_pwm_buffer_update_required[index]) {
// Firstly we need to unlock the command register and select PG1.
- is31fl3733_write_register(addr, ISSI_COMMANDREGISTER_WRITELOCK, 0xC5);
- is31fl3733_write_register(addr, ISSI_COMMANDREGISTER, ISSI_PAGE_PWM);
+ is31fl3733_write_register(addr, IS31FL3733_REG_COMMAND_WRITE_LOCK, IS31FL3733_COMMAND_WRITE_LOCK_MAGIC);
+ is31fl3733_write_register(addr, IS31FL3733_REG_COMMAND, IS31FL3733_COMMAND_PWM);
// If any of the transactions fail we risk writing dirty PG0,
// refresh page 0 just in case.
@@ -245,11 +255,24 @@ void is31fl3733_update_pwm_buffers(uint8_t addr, uint8_t index) {
void is31fl3733_update_led_control_registers(uint8_t addr, uint8_t index) {
if (g_led_control_registers_update_required[index]) {
// Firstly we need to unlock the command register and select PG0
- is31fl3733_write_register(addr, ISSI_COMMANDREGISTER_WRITELOCK, 0xC5);
- is31fl3733_write_register(addr, ISSI_COMMANDREGISTER, ISSI_PAGE_LEDCONTROL);
- for (int i = 0; i < 24; i++) {
+ is31fl3733_write_register(addr, IS31FL3733_REG_COMMAND_WRITE_LOCK, IS31FL3733_COMMAND_WRITE_LOCK_MAGIC);
+ is31fl3733_write_register(addr, IS31FL3733_REG_COMMAND, IS31FL3733_COMMAND_LED_CONTROL);
+ for (int i = 0; i < IS31FL3733_LED_CONTROL_REGISTER_COUNT; i++) {
is31fl3733_write_register(addr, i, g_led_control_registers[index][i]);
}
g_led_control_registers_update_required[index] = false;
}
}
+
+void is31fl3733_flush(void) {
+ is31fl3733_update_pwm_buffers(IS31FL3733_I2C_ADDRESS_1, 0);
+#if defined(IS31FL3733_I2C_ADDRESS_2)
+ is31fl3733_update_pwm_buffers(IS31FL3733_I2C_ADDRESS_2, 1);
+# if defined(IS31FL3733_I2C_ADDRESS_3)
+ is31fl3733_update_pwm_buffers(IS31FL3733_I2C_ADDRESS_3, 2);
+# if defined(IS31FL3733_I2C_ADDRESS_4)
+ is31fl3733_update_pwm_buffers(IS31FL3733_I2C_ADDRESS_4, 3);
+# endif
+# endif
+#endif
+}
diff --git a/drivers/led/issi/is31fl3733-simple.h b/drivers/led/issi/is31fl3733-simple.h
index 1458f7ac8d..c37b1fe5f2 100644
--- a/drivers/led/issi/is31fl3733-simple.h
+++ b/drivers/led/issi/is31fl3733-simple.h
@@ -22,16 +22,99 @@
#include <stdint.h>
#include <stdbool.h>
-#include <string.h>
#include "progmem.h"
+#include "util.h"
-typedef struct is31_led {
+// ======== DEPRECATED DEFINES - DO NOT USE ========
+#ifdef ISSI_TIMEOUT
+# define IS31FL3733_I2C_TIMEOUT ISSI_TIMEOUT
+#endif
+#ifdef ISSI_PERSISTENCE
+# define IS31FL3733_I2C_PERSISTENCE ISSI_PERSISTENCE
+#endif
+#ifdef ISSI_PWM_FREQUENCY
+# define IS31FL3733_PWM_FREQUENCY ISSI_PWM_FREQUENCY
+#endif
+#ifdef ISSI_SWPULLUP
+# define IS31FL3733_SW_PULLUP ISSI_SWPULLUP
+#endif
+#ifdef ISSI_CSPULLUP
+# define IS31FL3733_CS_PULLDOWN ISSI_CSPULLUP
+#endif
+#ifdef ISSI_GLOBALCURRENT
+# define IS31FL3733_GLOBAL_CURRENT ISSI_GLOBALCURRENT
+#endif
+
+#define is31_led is31fl3733_led_t
+#define g_is31_leds g_is31fl3733_leds
+
+#define PUR_0R IS31FL3733_PUR_0_OHM
+#define PUR_05KR IS31FL3733_PUR_1K_OHM
+#define PUR_3KR IS31FL3733_PUR_2K_OHM
+#define PUR_4KR IS31FL3733_PUR_4K_OHM
+#define PUR_8KR IS31FL3733_PUR_8K_OHM
+#define PUR_16KR IS31FL3733_PUR_16K_OHM
+#define PUR_32KR IS31FL3733_PUR_32K_OHM
+// ========
+
+#define IS31FL3733_REG_INTERRUPT_MASK 0xF0
+#define IS31FL3733_REG_INTERRUPT_STATUS 0xF1
+
+#define IS31FL3733_REG_COMMAND 0xFD
+
+#define IS31FL3733_COMMAND_LED_CONTROL 0x00
+#define IS31FL3733_COMMAND_PWM 0x01
+#define IS31FL3733_COMMAND_AUTO_BREATH 0x02
+#define IS31FL3733_COMMAND_FUNCTION 0x03
+
+#define IS31FL3733_FUNCTION_REG_CONFIGURATION 0x00
+#define IS31FL3733_FUNCTION_REG_GLOBAL_CURRENT 0x01
+#define IS31FL3733_FUNCTION_REG_SW_PULLUP 0x0F
+#define IS31FL3733_FUNCTION_REG_CS_PULLDOWN 0x10
+#define IS31FL3733_FUNCTION_REG_RESET 0x11
+
+#define IS31FL3733_REG_COMMAND_WRITE_LOCK 0xFE
+#define IS31FL3733_COMMAND_WRITE_LOCK_MAGIC 0xC5
+
+#define IS31FL3733_I2C_ADDRESS_GND_GND 0x50
+#define IS31FL3733_I2C_ADDRESS_GND_SCL 0x51
+#define IS31FL3733_I2C_ADDRESS_GND_SDA 0x52
+#define IS31FL3733_I2C_ADDRESS_GND_VCC 0x53
+#define IS31FL3733_I2C_ADDRESS_SCL_GND 0x54
+#define IS31FL3733_I2C_ADDRESS_SCL_SCL 0x55
+#define IS31FL3733_I2C_ADDRESS_SCL_SDA 0x56
+#define IS31FL3733_I2C_ADDRESS_SCL_VCC 0x57
+#define IS31FL3733_I2C_ADDRESS_SDA_GND 0x58
+#define IS31FL3733_I2C_ADDRESS_SDA_SCL 0x59
+#define IS31FL3733_I2C_ADDRESS_SDA_SDA 0x5A
+#define IS31FL3733_I2C_ADDRESS_SDA_VCC 0x5B
+#define IS31FL3733_I2C_ADDRESS_VCC_GND 0x5C
+#define IS31FL3733_I2C_ADDRESS_VCC_SCL 0x5D
+#define IS31FL3733_I2C_ADDRESS_VCC_SDA 0x5E
+#define IS31FL3733_I2C_ADDRESS_VCC_VCC 0x5F
+
+#if defined(LED_MATRIX_IS31FL3733)
+# define IS31FL3733_LED_COUNT LED_MATRIX_LED_COUNT
+#endif
+
+#if defined(IS31FL3733_I2C_ADDRESS_4)
+# define IS31FL3733_DRIVER_COUNT 4
+#elif defined(IS31FL3733_I2C_ADDRESS_3)
+# define IS31FL3733_DRIVER_COUNT 3
+#elif defined(IS31FL3733_I2C_ADDRESS_2)
+# define IS31FL3733_DRIVER_COUNT 2
+#elif defined(IS31FL3733_I2C_ADDRESS_1)
+# define IS31FL3733_DRIVER_COUNT 1
+#endif
+
+typedef struct is31fl3733_led_t {
uint8_t driver : 2;
uint8_t v;
-} __attribute__((packed)) is31_led;
+} PACKED is31fl3733_led_t;
-extern const is31_led PROGMEM g_is31_leds[LED_MATRIX_LED_COUNT];
+extern const is31fl3733_led_t PROGMEM g_is31fl3733_leds[IS31FL3733_LED_COUNT];
+void is31fl3733_init_drivers(void);
void is31fl3733_init(uint8_t addr, uint8_t sync);
bool is31fl3733_write_register(uint8_t addr, uint8_t reg, uint8_t data);
bool is31fl3733_write_pwm_buffer(uint8_t addr, uint8_t *pwm_buffer);
@@ -48,13 +131,35 @@ void is31fl3733_set_led_control_register(uint8_t index, bool value);
void is31fl3733_update_pwm_buffers(uint8_t addr, uint8_t index);
void is31fl3733_update_led_control_registers(uint8_t addr, uint8_t index);
-#define PUR_0R 0x00 // No PUR resistor
-#define PUR_05KR 0x02 // 0.5k Ohm resistor in t_NOL
-#define PUR_3KR 0x03 // 3.0k Ohm resistor on all the time
-#define PUR_4KR 0x04 // 4.0k Ohm resistor on all the time
-#define PUR_8KR 0x05 // 8.0k Ohm resistor on all the time
-#define PUR_16KR 0x06 // 16k Ohm resistor on all the time
-#define PUR_32KR 0x07 // 32k Ohm resistor in t_NOL
+void is31fl3733_flush(void);
+
+#define IS31FL3733_PDR_0_OHM 0b000 // No pull-down resistor
+#define IS31FL3733_PDR_0K5_OHM 0b001 // 0.5 kOhm resistor
+#define IS31FL3733_PDR_1K_OHM 0b010 // 1 kOhm resistor
+#define IS31FL3733_PDR_2K_OHM 0b011 // 2 kOhm resistor
+#define IS31FL3733_PDR_4K_OHM 0b100 // 4 kOhm resistor
+#define IS31FL3733_PDR_8K_OHM 0b101 // 8 kOhm resistor
+#define IS31FL3733_PDR_16K_OHM 0b110 // 16 kOhm resistor
+#define IS31FL3733_PDR_32K_OHM 0b111 // 32 kOhm resistor
+
+#define IS31FL3733_PUR_0_OHM 0b000 // No pull-up resistor
+#define IS31FL3733_PUR_0K5_OHM 0b001 // 0.5 kOhm resistor
+#define IS31FL3733_PUR_1K_OHM 0b010 // 1 kOhm resistor
+#define IS31FL3733_PUR_2K_OHM 0b011 // 2 kOhm resistor
+#define IS31FL3733_PUR_4K_OHM 0b100 // 4 kOhm resistor
+#define IS31FL3733_PUR_8K_OHM 0b101 // 8 kOhm resistor
+#define IS31FL3733_PUR_16K_OHM 0b110 // 16 kOhm resistor
+#define IS31FL3733_PUR_32K_OHM 0b111 // 32 kOhm resistor
+
+#define IS31FL3733_PWM_FREQUENCY_8K4_HZ 0b000
+#define IS31FL3733_PWM_FREQUENCY_4K2_HZ 0b001
+#define IS31FL3733_PWM_FREQUENCY_26K7_HZ 0b010
+#define IS31FL3733_PWM_FREQUENCY_2K1_HZ 0b011
+#define IS31FL3733_PWM_FREQUENCY_1K05_HZ 0b100
+
+#define IS31FL3733_SYNC_NONE 0b00
+#define IS31FL3733_SYNC_MASTER 0b01
+#define IS31FL3733_SYNC_SLAVE 0b10
#define A_1 0x00
#define A_2 0x01
diff --git a/drivers/led/issi/is31fl3733.c b/drivers/led/issi/is31fl3733.c
index ca431838ef..5857a800d7 100644
--- a/drivers/led/issi/is31fl3733.c
+++ b/drivers/led/issi/is31fl3733.c
@@ -18,59 +18,48 @@
*/
#include "is31fl3733.h"
+#include <string.h>
#include "i2c_master.h"
#include "wait.h"
-// This is a 7-bit address, that gets left-shifted and bit 0
-// set to 0 for write, 1 for read (as per I2C protocol)
-// The address will vary depending on your wiring:
-// 00 <-> GND
-// 01 <-> SCL
-// 10 <-> SDA
-// 11 <-> VCC
-// ADDR1 represents A1:A0 of the 7-bit address.
-// ADDR2 represents A3:A2 of the 7-bit address.
-// The result is: 0b101(ADDR2)(ADDR1)
-#define ISSI_ADDR_DEFAULT 0x50
-
-#define ISSI_COMMANDREGISTER 0xFD
-#define ISSI_COMMANDREGISTER_WRITELOCK 0xFE
-#define ISSI_INTERRUPTMASKREGISTER 0xF0
-#define ISSI_INTERRUPTSTATUSREGISTER 0xF1
-
-#define ISSI_PAGE_LEDCONTROL 0x00 // PG0
-#define ISSI_PAGE_PWM 0x01 // PG1
-#define ISSI_PAGE_AUTOBREATH 0x02 // PG2
-#define ISSI_PAGE_FUNCTION 0x03 // PG3
-
-#define ISSI_REG_CONFIGURATION 0x00 // PG3
-#define ISSI_REG_GLOBALCURRENT 0x01 // PG3
-#define ISSI_REG_RESET 0x11 // PG3
-#define ISSI_REG_SWPULLUP 0x0F // PG3
-#define ISSI_REG_CSPULLUP 0x10 // PG3
-
-#ifndef ISSI_TIMEOUT
-# define ISSI_TIMEOUT 100
+#define IS31FL3733_PWM_REGISTER_COUNT 192
+#define IS31FL3733_LED_CONTROL_REGISTER_COUNT 24
+
+#ifndef IS31FL3733_I2C_TIMEOUT
+# define IS31FL3733_I2C_TIMEOUT 100
#endif
-#ifndef ISSI_PERSISTENCE
-# define ISSI_PERSISTENCE 0
+#ifndef IS31FL3733_I2C_PERSISTENCE
+# define IS31FL3733_I2C_PERSISTENCE 0
#endif
-#ifndef ISSI_PWM_FREQUENCY
-# define ISSI_PWM_FREQUENCY 0b000 // PFS - IS31FL3733B only
+#ifndef IS31FL3733_PWM_FREQUENCY
+# define IS31FL3733_PWM_FREQUENCY IS31FL3733_PWM_FREQUENCY_8K4_HZ // PFS - IS31FL3733B only
#endif
-#ifndef ISSI_SWPULLUP
-# define ISSI_SWPULLUP PUR_0R
+#ifndef IS31FL3733_SW_PULLUP
+# define IS31FL3733_SW_PULLUP IS31FL3733_PUR_0_OHM
#endif
-#ifndef ISSI_CSPULLUP
-# define ISSI_CSPULLUP PUR_0R
+#ifndef IS31FL3733_CS_PULLDOWN
+# define IS31FL3733_CS_PULLDOWN IS31FL3733_PDR_0_OHM
#endif
-#ifndef ISSI_GLOBALCURRENT
-# define ISSI_GLOBALCURRENT 0xFF
+#ifndef IS31FL3733_GLOBAL_CURRENT
+# define IS31FL3733_GLOBAL_CURRENT 0xFF
+#endif
+
+#ifndef IS31FL3733_SYNC_1
+# define IS31FL3733_SYNC_1 IS31FL3733_SYNC_NONE
+#endif
+#ifndef IS31FL3733_SYNC_2
+# define IS31FL3733_SYNC_2 IS31FL3733_SYNC_NONE
+#endif
+#ifndef IS31FL3733_SYNC_3
+# define IS31FL3733_SYNC_3 IS31FL3733_SYNC_NONE
+#endif
+#ifndef IS31FL3733_SYNC_4
+# define IS31FL3733_SYNC_4 IS31FL3733_SYNC_NONE
#endif
// Transfer buffer for TWITransmitData()
@@ -82,25 +71,25 @@ uint8_t g_twi_transfer_buffer[20];
// We could optimize this and take out the unused registers from these
// buffers and the transfers in is31fl3733_write_pwm_buffer() but it's
// probably not worth the extra complexity.
-uint8_t g_pwm_buffer[DRIVER_COUNT][192];
-bool g_pwm_buffer_update_required[DRIVER_COUNT] = {false};
+uint8_t g_pwm_buffer[IS31FL3733_DRIVER_COUNT][IS31FL3733_PWM_REGISTER_COUNT];
+bool g_pwm_buffer_update_required[IS31FL3733_DRIVER_COUNT] = {false};
-uint8_t g_led_control_registers[DRIVER_COUNT][24] = {0};
-bool g_led_control_registers_update_required[DRIVER_COUNT] = {false};
+uint8_t g_led_control_registers[IS31FL3733_DRIVER_COUNT][IS31FL3733_LED_CONTROL_REGISTER_COUNT] = {0};
+bool g_led_control_registers_update_required[IS31FL3733_DRIVER_COUNT] = {false};
bool is31fl3733_write_register(uint8_t addr, uint8_t reg, uint8_t data) {
// If the transaction fails function returns false.
g_twi_transfer_buffer[0] = reg;
g_twi_transfer_buffer[1] = data;
-#if ISSI_PERSISTENCE > 0
- for (uint8_t i = 0; i < ISSI_PERSISTENCE; i++) {
- if (i2c_transmit(addr << 1, g_twi_transfer_buffer, 2, ISSI_TIMEOUT) != 0) {
+#if IS31FL3733_I2C_PERSISTENCE > 0
+ for (uint8_t i = 0; i < IS31FL3733_I2C_PERSISTENCE; i++) {
+ if (i2c_transmit(addr << 1, g_twi_transfer_buffer, 2, IS31FL3733_I2C_TIMEOUT) != 0) {
return false;
}
}
#else
- if (i2c_transmit(addr << 1, g_twi_transfer_buffer, 2, ISSI_TIMEOUT) != 0) {
+ if (i2c_transmit(addr << 1, g_twi_transfer_buffer, 2, IS31FL3733_I2C_TIMEOUT) != 0) {
return false;
}
#endif
@@ -114,23 +103,21 @@ bool is31fl3733_write_pwm_buffer(uint8_t addr, uint8_t *pwm_buffer) {
// g_twi_transfer_buffer[] is 20 bytes
// Iterate over the pwm_buffer contents at 16 byte intervals.
- for (int i = 0; i < 192; i += 16) {
+ for (int i = 0; i < IS31FL3733_PWM_REGISTER_COUNT; i += 16) {
g_twi_transfer_buffer[0] = i;
// Copy the data from i to i+15.
// Device will auto-increment register for data after the first byte
// Thus this sets registers 0x00-0x0F, 0x10-0x1F, etc. in one transfer.
- for (int j = 0; j < 16; j++) {
- g_twi_transfer_buffer[1 + j] = pwm_buffer[i + j];
- }
+ memcpy(g_twi_transfer_buffer + 1, pwm_buffer + i, 16);
-#if ISSI_PERSISTENCE > 0
- for (uint8_t i = 0; i < ISSI_PERSISTENCE; i++) {
- if (i2c_transmit(addr << 1, g_twi_transfer_buffer, 17, ISSI_TIMEOUT) != 0) {
+#if IS31FL3733_I2C_PERSISTENCE > 0
+ for (uint8_t i = 0; i < IS31FL3733_I2C_PERSISTENCE; i++) {
+ if (i2c_transmit(addr << 1, g_twi_transfer_buffer, 17, IS31FL3733_I2C_TIMEOUT) != 0) {
return false;
}
}
#else
- if (i2c_transmit(addr << 1, g_twi_transfer_buffer, 17, ISSI_TIMEOUT) != 0) {
+ if (i2c_transmit(addr << 1, g_twi_transfer_buffer, 17, IS31FL3733_I2C_TIMEOUT) != 0) {
return false;
}
#endif
@@ -138,6 +125,36 @@ bool is31fl3733_write_pwm_buffer(uint8_t addr, uint8_t *pwm_buffer) {
return true;
}
+void is31fl3733_init_drivers(void) {
+ i2c_init();
+
+ is31fl3733_init(IS31FL3733_I2C_ADDRESS_1, IS31FL3733_SYNC_1);
+#if defined(IS31FL3733_I2C_ADDRESS_2)
+ is31fl3733_init(IS31FL3733_I2C_ADDRESS_2, IS31FL3733_SYNC_2);
+# if defined(IS31FL3733_I2C_ADDRESS_3)
+ is31fl3733_init(IS31FL3733_I2C_ADDRESS_3, IS31FL3733_SYNC_3);
+# if defined(IS31FL3733_I2C_ADDRESS_4)
+ is31fl3733_init(IS31FL3733_I2C_ADDRESS_4, IS31FL3733_SYNC_4);
+# endif
+# endif
+#endif
+
+ for (int i = 0; i < IS31FL3733_LED_COUNT; i++) {
+ is31fl3733_set_led_control_register(i, true, true, true);
+ }
+
+ is31fl3733_update_led_control_registers(IS31FL3733_I2C_ADDRESS_1, 0);
+#if defined(IS31FL3733_I2C_ADDRESS_2)
+ is31fl3733_update_led_control_registers(IS31FL3733_I2C_ADDRESS_2, 1);
+# if defined(IS31FL3733_I2C_ADDRESS_3)
+ is31fl3733_update_led_control_registers(IS31FL3733_I2C_ADDRESS_3, 2);
+# if defined(IS31FL3733_I2C_ADDRESS_4)
+ is31fl3733_update_led_control_registers(IS31FL3733_I2C_ADDRESS_4, 3);
+# endif
+# endif
+#endif
+}
+
void is31fl3733_init(uint8_t addr, uint8_t sync) {
// In order to avoid the LEDs being driven with garbage data
// in the LED driver's PWM registers, shutdown is enabled last.
@@ -146,48 +163,48 @@ void is31fl3733_init(uint8_t addr, uint8_t sync) {
// Sync is passed so set it according to the datasheet.
// Unlock the command register.
- is31fl3733_write_register(addr, ISSI_COMMANDREGISTER_WRITELOCK, 0xC5);
+ is31fl3733_write_register(addr, IS31FL3733_REG_COMMAND_WRITE_LOCK, IS31FL3733_COMMAND_WRITE_LOCK_MAGIC);
// Select PG0
- is31fl3733_write_register(addr, ISSI_COMMANDREGISTER, ISSI_PAGE_LEDCONTROL);
+ is31fl3733_write_register(addr, IS31FL3733_REG_COMMAND, IS31FL3733_COMMAND_LED_CONTROL);
// Turn off all LEDs.
- for (int i = 0x00; i <= 0x17; i++) {
+ for (int i = 0; i < IS31FL3733_LED_CONTROL_REGISTER_COUNT; i++) {
is31fl3733_write_register(addr, i, 0x00);
}
// Unlock the command register.
- is31fl3733_write_register(addr, ISSI_COMMANDREGISTER_WRITELOCK, 0xC5);
+ is31fl3733_write_register(addr, IS31FL3733_REG_COMMAND_WRITE_LOCK, IS31FL3733_COMMAND_WRITE_LOCK_MAGIC);
// Select PG1
- is31fl3733_write_register(addr, ISSI_COMMANDREGISTER, ISSI_PAGE_PWM);
+ is31fl3733_write_register(addr, IS31FL3733_REG_COMMAND, IS31FL3733_COMMAND_PWM);
// Set PWM on all LEDs to 0
// No need to setup Breath registers to PWM as that is the default.
- for (int i = 0x00; i <= 0xBF; i++) {
+ for (int i = 0; i < IS31FL3733_PWM_REGISTER_COUNT; i++) {
is31fl3733_write_register(addr, i, 0x00);
}
// Unlock the command register.
- is31fl3733_write_register(addr, ISSI_COMMANDREGISTER_WRITELOCK, 0xC5);
+ is31fl3733_write_register(addr, IS31FL3733_REG_COMMAND_WRITE_LOCK, IS31FL3733_COMMAND_WRITE_LOCK_MAGIC);
// Select PG3
- is31fl3733_write_register(addr, ISSI_COMMANDREGISTER, ISSI_PAGE_FUNCTION);
+ is31fl3733_write_register(addr, IS31FL3733_REG_COMMAND, IS31FL3733_COMMAND_FUNCTION);
// Set de-ghost pull-up resistors (SWx)
- is31fl3733_write_register(addr, ISSI_REG_SWPULLUP, ISSI_SWPULLUP);
+ is31fl3733_write_register(addr, IS31FL3733_FUNCTION_REG_SW_PULLUP, IS31FL3733_SW_PULLUP);
// Set de-ghost pull-down resistors (CSx)
- is31fl3733_write_register(addr, ISSI_REG_CSPULLUP, ISSI_CSPULLUP);
+ is31fl3733_write_register(addr, IS31FL3733_FUNCTION_REG_CS_PULLDOWN, IS31FL3733_CS_PULLDOWN);
// Set global current to maximum.
- is31fl3733_write_register(addr, ISSI_REG_GLOBALCURRENT, ISSI_GLOBALCURRENT);
+ is31fl3733_write_register(addr, IS31FL3733_FUNCTION_REG_GLOBAL_CURRENT, IS31FL3733_GLOBAL_CURRENT);
// Disable software shutdown.
- is31fl3733_write_register(addr, ISSI_REG_CONFIGURATION, ((sync & 0b11) << 6) | ((ISSI_PWM_FREQUENCY & 0b111) << 3) | 0x01);
+ is31fl3733_write_register(addr, IS31FL3733_FUNCTION_REG_CONFIGURATION, ((sync & 0b11) << 6) | ((IS31FL3733_PWM_FREQUENCY & 0b111) << 3) | 0x01);
// Wait 10ms to ensure the device has woken up.
wait_ms(10);
}
void is31fl3733_set_color(int index, uint8_t red, uint8_t green, uint8_t blue) {
- is31_led led;
- if (index >= 0 && index < RGB_MATRIX_LED_COUNT) {
- memcpy_P(&led, (&g_is31_leds[index]), sizeof(led));
+ is31fl3733_led_t led;
+ if (index >= 0 && index < IS31FL3733_LED_COUNT) {
+ memcpy_P(&led, (&g_is31fl3733_leds[index]), sizeof(led));
if (g_pwm_buffer[led.driver][led.r] == red && g_pwm_buffer[led.driver][led.g] == green && g_pwm_buffer[led.driver][led.b] == blue) {
return;
@@ -200,14 +217,14 @@ void is31fl3733_set_color(int index, uint8_t red, uint8_t green, uint8_t blue) {
}
void is31fl3733_set_color_all(uint8_t red, uint8_t green, uint8_t blue) {
- for (int i = 0; i < RGB_MATRIX_LED_COUNT; i++) {
+ for (int i = 0; i < IS31FL3733_LED_COUNT; i++) {
is31fl3733_set_color(i, red, green, blue);
}
}
void is31fl3733_set_led_control_register(uint8_t index, bool red, bool green, bool blue) {
- is31_led led;
- memcpy_P(&led, (&g_is31_leds[index]), sizeof(led));
+ is31fl3733_led_t led;
+ memcpy_P(&led, (&g_is31fl3733_leds[index]), sizeof(led));
uint8_t control_register_r = led.r / 8;
uint8_t control_register_g = led.g / 8;
@@ -238,26 +255,39 @@ void is31fl3733_set_led_control_register(uint8_t index, bool red, bool green, bo
void is31fl3733_update_pwm_buffers(uint8_t addr, uint8_t index) {
if (g_pwm_buffer_update_required[index]) {
// Firstly we need to unlock the command register and select PG1.
- is31fl3733_write_register(addr, ISSI_COMMANDREGISTER_WRITELOCK, 0xC5);
- is31fl3733_write_register(addr, ISSI_COMMANDREGISTER, ISSI_PAGE_PWM);
+ is31fl3733_write_register(addr, IS31FL3733_REG_COMMAND_WRITE_LOCK, IS31FL3733_COMMAND_WRITE_LOCK_MAGIC);
+ is31fl3733_write_register(addr, IS31FL3733_REG_COMMAND, IS31FL3733_COMMAND_PWM);
// If any of the transactions fail we risk writing dirty PG0,
// refresh page 0 just in case.
if (!is31fl3733_write_pwm_buffer(addr, g_pwm_buffer[index])) {
g_led_control_registers_update_required[index] = true;
}
+ g_pwm_buffer_update_required[index] = false;
}
- g_pwm_buffer_update_required[index] = false;
}
void is31fl3733_update_led_control_registers(uint8_t addr, uint8_t index) {
if (g_led_control_registers_update_required[index]) {
// Firstly we need to unlock the command register and select PG0
- is31fl3733_write_register(addr, ISSI_COMMANDREGISTER_WRITELOCK, 0xC5);
- is31fl3733_write_register(addr, ISSI_COMMANDREGISTER, ISSI_PAGE_LEDCONTROL);
- for (int i = 0; i < 24; i++) {
+ is31fl3733_write_register(addr, IS31FL3733_REG_COMMAND_WRITE_LOCK, IS31FL3733_COMMAND_WRITE_LOCK_MAGIC);
+ is31fl3733_write_register(addr, IS31FL3733_REG_COMMAND, IS31FL3733_COMMAND_LED_CONTROL);
+ for (int i = 0; i < IS31FL3733_LED_CONTROL_REGISTER_COUNT; i++) {
is31fl3733_write_register(addr, i, g_led_control_registers[index][i]);
}
+ g_led_control_registers_update_required[index] = false;
}
- g_led_control_registers_update_required[index] = false;
+}
+
+void is31fl3733_flush(void) {
+ is31fl3733_update_pwm_buffers(IS31FL3733_I2C_ADDRESS_1, 0);
+#if defined(IS31FL3733_I2C_ADDRESS_2)
+ is31fl3733_update_pwm_buffers(IS31FL3733_I2C_ADDRESS_2, 1);
+# if defined(IS31FL3733_I2C_ADDRESS_3)
+ is31fl3733_update_pwm_buffers(IS31FL3733_I2C_ADDRESS_3, 2);
+# if defined(IS31FL3733_I2C_ADDRESS_4)
+ is31fl3733_update_pwm_buffers(IS31FL3733_I2C_ADDRESS_4, 3);
+# endif
+# endif
+#endif
}
diff --git a/drivers/led/issi/is31fl3733.h b/drivers/led/issi/is31fl3733.h
index f37a58de0f..20804b016b 100644
--- a/drivers/led/issi/is31fl3733.h
+++ b/drivers/led/issi/is31fl3733.h
@@ -22,16 +22,124 @@
#include <stdint.h>
#include <stdbool.h>
#include "progmem.h"
+#include "util.h"
-typedef struct is31_led {
+// ======== DEPRECATED DEFINES - DO NOT USE ========
+#ifdef DRIVER_ADDR_1
+# define IS31FL3733_I2C_ADDRESS_1 DRIVER_ADDR_1
+#endif
+#ifdef DRIVER_ADDR_2
+# define IS31FL3733_I2C_ADDRESS_2 DRIVER_ADDR_2
+#endif
+#ifdef DRIVER_ADDR_3
+# define IS31FL3733_I2C_ADDRESS_3 DRIVER_ADDR_3
+#endif
+#ifdef DRIVER_ADDR_4
+# define IS31FL3733_I2C_ADDRESS_4 DRIVER_ADDR_4
+#endif
+#ifdef DRIVER_SYNC_1
+# define IS31FL3733_SYNC_1 DRIVER_SYNC_1
+#endif
+#ifdef DRIVER_ADDR_2
+# define IS31FL3733_SYNC_2 DRIVER_SYNC_2
+#endif
+#ifdef DRIVER_ADDR_3
+# define IS31FL3733_SYNC_3 DRIVER_SYNC_3
+#endif
+#ifdef DRIVER_ADDR_4
+# define IS31FL3733_SYNC_4 DRIVER_SYNC_4
+#endif
+#ifdef ISSI_TIMEOUT
+# define IS31FL3733_I2C_TIMEOUT ISSI_TIMEOUT
+#endif
+#ifdef ISSI_PERSISTENCE
+# define IS31FL3733_I2C_PERSISTENCE ISSI_PERSISTENCE
+#endif
+#ifdef ISSI_PWM_FREQUENCY
+# define IS31FL3733_PWM_FREQUENCY ISSI_PWM_FREQUENCY
+#endif
+#ifdef ISSI_SWPULLUP
+# define IS31FL3733_SW_PULLUP ISSI_SWPULLUP
+#endif
+#ifdef ISSI_CSPULLUP
+# define IS31FL3733_CS_PULLDOWN ISSI_CSPULLUP
+#endif
+#ifdef ISSI_GLOBALCURRENT
+# define IS31FL3733_GLOBAL_CURRENT ISSI_GLOBALCURRENT
+#endif
+
+#define is31_led is31fl3733_led_t
+#define g_is31_leds g_is31fl3733_leds
+
+#define PUR_0R IS31FL3733_PUR_0_OHM
+#define PUR_05KR IS31FL3733_PUR_1K_OHM
+#define PUR_3KR IS31FL3733_PUR_2K_OHM
+#define PUR_4KR IS31FL3733_PUR_4K_OHM
+#define PUR_8KR IS31FL3733_PUR_8K_OHM
+#define PUR_16KR IS31FL3733_PUR_16K_OHM
+#define PUR_32KR IS31FL3733_PUR_32K_OHM
+// ========
+
+#define IS31FL3733_REG_INTERRUPT_MASK 0xF0
+#define IS31FL3733_REG_INTERRUPT_STATUS 0xF1
+
+#define IS31FL3733_REG_COMMAND 0xFD
+
+#define IS31FL3733_COMMAND_LED_CONTROL 0x00
+#define IS31FL3733_COMMAND_PWM 0x01
+#define IS31FL3733_COMMAND_AUTO_BREATH 0x02
+#define IS31FL3733_COMMAND_FUNCTION 0x03
+
+#define IS31FL3733_FUNCTION_REG_CONFIGURATION 0x00
+#define IS31FL3733_FUNCTION_REG_GLOBAL_CURRENT 0x01
+#define IS31FL3733_FUNCTION_REG_SW_PULLUP 0x0F
+#define IS31FL3733_FUNCTION_REG_CS_PULLDOWN 0x10
+#define IS31FL3733_FUNCTION_REG_RESET 0x11
+
+#define IS31FL3733_REG_COMMAND_WRITE_LOCK 0xFE
+#define IS31FL3733_COMMAND_WRITE_LOCK_MAGIC 0xC5
+
+#define IS31FL3733_I2C_ADDRESS_GND_GND 0x50
+#define IS31FL3733_I2C_ADDRESS_GND_SCL 0x51
+#define IS31FL3733_I2C_ADDRESS_GND_SDA 0x52
+#define IS31FL3733_I2C_ADDRESS_GND_VCC 0x53
+#define IS31FL3733_I2C_ADDRESS_SCL_GND 0x54
+#define IS31FL3733_I2C_ADDRESS_SCL_SCL 0x55
+#define IS31FL3733_I2C_ADDRESS_SCL_SDA 0x56
+#define IS31FL3733_I2C_ADDRESS_SCL_VCC 0x57
+#define IS31FL3733_I2C_ADDRESS_SDA_GND 0x58
+#define IS31FL3733_I2C_ADDRESS_SDA_SCL 0x59
+#define IS31FL3733_I2C_ADDRESS_SDA_SDA 0x5A
+#define IS31FL3733_I2C_ADDRESS_SDA_VCC 0x5B
+#define IS31FL3733_I2C_ADDRESS_VCC_GND 0x5C
+#define IS31FL3733_I2C_ADDRESS_VCC_SCL 0x5D
+#define IS31FL3733_I2C_ADDRESS_VCC_SDA 0x5E
+#define IS31FL3733_I2C_ADDRESS_VCC_VCC 0x5F
+
+#if defined(RGB_MATRIX_IS31FL3733)
+# define IS31FL3733_LED_COUNT RGB_MATRIX_LED_COUNT
+#endif
+
+#if defined(IS31FL3733_I2C_ADDRESS_4)
+# define IS31FL3733_DRIVER_COUNT 4
+#elif defined(IS31FL3733_I2C_ADDRESS_3)
+# define IS31FL3733_DRIVER_COUNT 3
+#elif defined(IS31FL3733_I2C_ADDRESS_2)
+# define IS31FL3733_DRIVER_COUNT 2
+#elif defined(IS31FL3733_I2C_ADDRESS_1)
+# define IS31FL3733_DRIVER_COUNT 1
+#endif
+
+typedef struct is31fl3733_led_t {
uint8_t driver : 2;
uint8_t r;
uint8_t g;
uint8_t b;
-} __attribute__((packed)) is31_led;
+} PACKED is31fl3733_led_t;
-extern const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT];
+extern const is31fl3733_led_t PROGMEM g_is31fl3733_leds[IS31FL3733_LED_COUNT];
+void is31fl3733_init_drivers(void);
void is31fl3733_init(uint8_t addr, uint8_t sync);
bool is31fl3733_write_register(uint8_t addr, uint8_t reg, uint8_t data);
bool is31fl3733_write_pwm_buffer(uint8_t addr, uint8_t *pwm_buffer);
@@ -48,13 +156,35 @@ void is31fl3733_set_led_control_register(uint8_t index, bool red, bool green, bo
void is31fl3733_update_pwm_buffers(uint8_t addr, uint8_t index);
void is31fl3733_update_led_control_registers(uint8_t addr, uint8_t index);
-#define PUR_0R 0x00 // No PUR resistor
-#define PUR_05KR 0x02 // 0.5k Ohm resistor in t_NOL
-#define PUR_3KR 0x03 // 3.0k Ohm resistor on all the time
-#define PUR_4KR 0x04 // 4.0k Ohm resistor on all the time
-#define PUR_8KR 0x05 // 8.0k Ohm resistor on all the time
-#define PUR_16KR 0x06 // 16k Ohm resistor on all the time
-#define PUR_32KR 0x07 // 32k Ohm resistor in t_NOL
+void is31fl3733_flush(void);
+
+#define IS31FL3733_PDR_0_OHM 0b000 // No pull-down resistor
+#define IS31FL3733_PDR_0K5_OHM 0b001 // 0.5 kOhm resistor
+#define IS31FL3733_PDR_1K_OHM 0b010 // 1 kOhm resistor
+#define IS31FL3733_PDR_2K_OHM 0b011 // 2 kOhm resistor
+#define IS31FL3733_PDR_4K_OHM 0b100 // 4 kOhm resistor
+#define IS31FL3733_PDR_8K_OHM 0b101 // 8 kOhm resistor
+#define IS31FL3733_PDR_16K_OHM 0b110 // 16 kOhm resistor
+#define IS31FL3733_PDR_32K_OHM 0b111 // 32 kOhm resistor
+
+#define IS31FL3733_PUR_0_OHM 0b000 // No pull-up resistor
+#define IS31FL3733_PUR_0K5_OHM 0b001 // 0.5 kOhm resistor
+#define IS31FL3733_PUR_1K_OHM 0b010 // 1 kOhm resistor
+#define IS31FL3733_PUR_2K_OHM 0b011 // 2 kOhm resistor
+#define IS31FL3733_PUR_4K_OHM 0b100 // 4 kOhm resistor
+#define IS31FL3733_PUR_8K_OHM 0b101 // 8 kOhm resistor
+#define IS31FL3733_PUR_16K_OHM 0b110 // 16 kOhm resistor
+#define IS31FL3733_PUR_32K_OHM 0b111 // 32 kOhm resistor
+
+#define IS31FL3733_PWM_FREQUENCY_8K4_HZ 0b000
+#define IS31FL3733_PWM_FREQUENCY_4K2_HZ 0b001
+#define IS31FL3733_PWM_FREQUENCY_26K7_HZ 0b010
+#define IS31FL3733_PWM_FREQUENCY_2K1_HZ 0b011
+#define IS31FL3733_PWM_FREQUENCY_1K05_HZ 0b100
+
+#define IS31FL3733_SYNC_NONE 0b00
+#define IS31FL3733_SYNC_MASTER 0b01
+#define IS31FL3733_SYNC_SLAVE 0b10
#define A_1 0x00
#define A_2 0x01
diff --git a/drivers/led/issi/is31fl3736-simple.c b/drivers/led/issi/is31fl3736-simple.c
new file mode 100644
index 0000000000..e1cce3c48a
--- /dev/null
+++ b/drivers/led/issi/is31fl3736-simple.c
@@ -0,0 +1,252 @@
+/* Copyright 2018 Jason Williams (Wilba)
+ * Copyright 2021 Doni Crosby
+ *
+ * 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 "is31fl3736-simple.h"
+#include <string.h>
+#include "i2c_master.h"
+#include "wait.h"
+
+#define IS31FL3736_PWM_REGISTER_COUNT 192 // actually 96
+#define IS31FL3736_LED_CONTROL_REGISTER_COUNT 24
+
+#ifndef IS31FL3736_I2C_TIMEOUT
+# define IS31FL3736_I2C_TIMEOUT 100
+#endif
+
+#ifndef IS31FL3736_I2C_PERSISTENCE
+# define IS31FL3736_I2C_PERSISTENCE 0
+#endif
+
+#ifndef IS31FL3736_PWM_FREQUENCY
+# define IS31FL3736_PWM_FREQUENCY IS31FL3736_PWM_FREQUENCY_8K4_HZ // PFS - IS31FL3736B only
+#endif
+
+#ifndef IS31FL3736_SW_PULLUP
+# define IS31FL3736_SW_PULLUP IS31FL3736_PUR_0_OHM
+#endif
+
+#ifndef IS31FL3736_CS_PULLDOWN
+# define IS31FL3736_CS_PULLDOWN IS31FL3736_PDR_0_OHM
+#endif
+
+#ifndef IS31FL3736_GLOBAL_CURRENT
+# define IS31FL3736_GLOBAL_CURRENT 0xFF
+#endif
+
+// Transfer buffer for TWITransmitData()
+uint8_t g_twi_transfer_buffer[20];
+
+// These buffers match the IS31FL3736 PWM registers.
+// The control buffers match the PG0 LED On/Off registers.
+// Storing them like this is optimal for I2C transfers to the registers.
+// We could optimize this and take out the unused registers from these
+// buffers and the transfers in is31fl3736_write_pwm_buffer() but it's
+// probably not worth the extra complexity.
+uint8_t g_pwm_buffer[IS31FL3736_DRIVER_COUNT][IS31FL3736_PWM_REGISTER_COUNT];
+bool g_pwm_buffer_update_required[IS31FL3736_DRIVER_COUNT] = {false};
+
+uint8_t g_led_control_registers[IS31FL3736_DRIVER_COUNT][IS31FL3736_LED_CONTROL_REGISTER_COUNT] = {0};
+bool g_led_control_registers_update_required[IS31FL3736_DRIVER_COUNT] = {false};
+
+void is31fl3736_write_register(uint8_t addr, uint8_t reg, uint8_t data) {
+ g_twi_transfer_buffer[0] = reg;
+ g_twi_transfer_buffer[1] = data;
+
+#if IS31FL3736_I2C_PERSISTENCE > 0
+ for (uint8_t i = 0; i < IS31FL3736_I2C_PERSISTENCE; i++) {
+ if (i2c_transmit(addr << 1, g_twi_transfer_buffer, 2, IS31FL3736_I2C_TIMEOUT) == 0) break;
+ }
+#else
+ i2c_transmit(addr << 1, g_twi_transfer_buffer, 2, IS31FL3736_I2C_TIMEOUT);
+#endif
+}
+
+void is31fl3736_write_pwm_buffer(uint8_t addr, uint8_t *pwm_buffer) {
+ // assumes PG1 is already selected
+
+ // transmit PWM registers in 12 transfers of 16 bytes
+ // g_twi_transfer_buffer[] is 20 bytes
+
+ // iterate over the pwm_buffer contents at 16 byte intervals
+ for (int i = 0; i < IS31FL3736_PWM_REGISTER_COUNT; i += 16) {
+ g_twi_transfer_buffer[0] = i;
+ // copy the data from i to i+15
+ // device will auto-increment register for data after the first byte
+ // thus this sets registers 0x00-0x0F, 0x10-0x1F, etc. in one transfer
+ memcpy(g_twi_transfer_buffer + 1, pwm_buffer + i, 16);
+
+#if IS31FL3736_I2C_PERSISTENCE > 0
+ for (uint8_t i = 0; i < IS31FL3736_I2C_PERSISTENCE; i++) {
+ if (i2c_transmit(addr << 1, g_twi_transfer_buffer, 17, IS31FL3736_I2C_TIMEOUT) == 0) break;
+ }
+#else
+ i2c_transmit(addr << 1, g_twi_transfer_buffer, 17, IS31FL3736_I2C_TIMEOUT);
+#endif
+ }
+}
+
+void is31fl3736_init_drivers(void) {
+ i2c_init();
+
+ is31fl3736_init(IS31FL3736_I2C_ADDRESS_1);
+#if defined(IS31FL3736_I2C_ADDRESS_2)
+ is31fl3736_init(IS31FL3736_I2C_ADDRESS_2);
+# if defined(IS31FL3736_I2C_ADDRESS_3)
+ is31fl3736_init(IS31FL3736_I2C_ADDRESS_3);
+# if defined(IS31FL3736_I2C_ADDRESS_4)
+ is31fl3736_init(IS31FL3736_I2C_ADDRESS_4);
+# endif
+# endif
+#endif
+
+ for (int i = 0; i < IS31FL3736_LED_COUNT; i++) {
+ is31fl3736_set_led_control_register(i, true);
+ }
+
+ is31fl3736_update_led_control_registers(IS31FL3736_I2C_ADDRESS_1, 0);
+#if defined(IS31FL3736_I2C_ADDRESS_2)
+ is31fl3736_update_led_control_registers(IS31FL3736_I2C_ADDRESS_2, 1);
+# if defined(IS31FL3736_I2C_ADDRESS_3)
+ is31fl3736_update_led_control_registers(IS31FL3736_I2C_ADDRESS_3, 2);
+# if defined(IS31FL3736_I2C_ADDRESS_4)
+ is31fl3736_update_led_control_registers(IS31FL3736_I2C_ADDRESS_4, 3);
+# endif
+# endif
+#endif
+}
+
+void is31fl3736_init(uint8_t addr) {
+ // In order to avoid the LEDs being driven with garbage data
+ // in the LED driver's PWM registers, shutdown is enabled last.
+ // Set up the mode and other settings, clear the PWM registers,
+ // then disable software shutdown.
+
+ // Unlock the command register.
+ is31fl3736_write_register(addr, IS31FL3736_REG_COMMAND_WRITE_LOCK, IS31FL3736_COMMAND_WRITE_LOCK_MAGIC);
+
+ // Select PG0
+ is31fl3736_write_register(addr, IS31FL3736_REG_COMMAND, IS31FL3736_COMMAND_LED_CONTROL);
+ // Turn off all LEDs.
+ for (int i = 0; i < IS31FL3736_LED_CONTROL_REGISTER_COUNT; i++) {
+ is31fl3736_write_register(addr, i, 0x00);
+ }
+
+ // Unlock the command register.
+ is31fl3736_write_register(addr, IS31FL3736_REG_COMMAND_WRITE_LOCK, IS31FL3736_COMMAND_WRITE_LOCK_MAGIC);
+
+ // Select PG1
+ is31fl3736_write_register(addr, IS31FL3736_REG_COMMAND, IS31FL3736_COMMAND_PWM);
+ // Set PWM on all LEDs to 0
+ // No need to setup Breath registers to PWM as that is the default.
+ for (int i = 0; i < IS31FL3736_PWM_REGISTER_COUNT; i++) {
+ is31fl3736_write_register(addr, i, 0x00);
+ }
+
+ // Unlock the command register.
+ is31fl3736_write_register(addr, IS31FL3736_REG_COMMAND_WRITE_LOCK, IS31FL3736_COMMAND_WRITE_LOCK_MAGIC);
+
+ // Select PG3
+ is31fl3736_write_register(addr, IS31FL3736_REG_COMMAND, IS31FL3736_COMMAND_FUNCTION);
+ // Set de-ghost pull-up resistors (SWx)
+ is31fl3736_write_register(addr, IS31FL3736_FUNCTION_REG_SW_PULLUP, IS31FL3736_SW_PULLUP);
+ // Set de-ghost pull-down resistors (CSx)
+ is31fl3736_write_register(addr, IS31FL3736_FUNCTION_REG_CS_PULLDOWN, IS31FL3736_CS_PULLDOWN);
+ // Set global current to maximum.
+ is31fl3736_write_register(addr, IS31FL3736_FUNCTION_REG_GLOBAL_CURRENT, IS31FL3736_GLOBAL_CURRENT);
+ // Disable software shutdown.
+ is31fl3736_write_register(addr, IS31FL3736_FUNCTION_REG_CONFIGURATION, ((IS31FL3736_PWM_FREQUENCY & 0b111) << 3) | 0x01);
+
+ // Wait 10ms to ensure the device has woken up.
+ wait_ms(10);
+}
+
+void is31fl3736_set_value(int index, uint8_t value) {
+ is31fl3736_led_t led;
+ if (index >= 0 && index < IS31FL3736_LED_COUNT) {
+ memcpy_P(&led, (&g_is31fl3736_leds[index]), sizeof(led));
+
+ if (g_pwm_buffer[led.driver][led.v] == value) {
+ return;
+ }
+ g_pwm_buffer[led.driver][led.v] = value;
+ g_pwm_buffer_update_required[led.driver] = true;
+ }
+}
+
+void is31fl3736_set_value_all(uint8_t value) {
+ for (int i = 0; i < IS31FL3736_LED_COUNT; i++) {
+ is31fl3736_set_value(i, value);
+ }
+}
+
+void is31fl3736_set_led_control_register(uint8_t index, bool value) {
+ is31fl3736_led_t led;
+ memcpy_P(&led, (&g_is31fl3736_leds[index]), sizeof(led));
+
+ // The PWM register for a matrix position (0x00 to 0xBF) is interleaved, so:
+ // A1=0x00 A2=0x02 A3=0x04 A4=0x06 A5=0x08 A6=0x0A A7=0x0C A8=0x0E
+ // B1=0x10 B2=0x12 B3=0x14
+ // But also, the LED control registers (0x00 to 0x17) are also interleaved, so:
+ // A1-A4=0x00 A5-A8=0x01
+
+ uint8_t control_register = led.v / 8;
+ uint8_t bit_value = led.v % 8;
+
+ if (value) {
+ g_led_control_registers[led.driver][control_register] |= (1 << bit_value);
+ } else {
+ g_led_control_registers[led.driver][control_register] &= ~(1 << bit_value);
+ }
+
+ g_led_control_registers_update_required[led.driver] = true;
+}
+
+void is31fl3736_update_pwm_buffers(uint8_t addr, uint8_t index) {
+ if (g_pwm_buffer_update_required[index]) {
+ // Firstly we need to unlock the command register and select PG1
+ is31fl3736_write_register(addr, IS31FL3736_REG_COMMAND_WRITE_LOCK, IS31FL3736_COMMAND_WRITE_LOCK_MAGIC);
+ is31fl3736_write_register(addr, IS31FL3736_REG_COMMAND, IS31FL3736_COMMAND_PWM);
+
+ is31fl3736_write_pwm_buffer(addr, g_pwm_buffer[index]);
+ g_pwm_buffer_update_required[index] = false;
+ }
+}
+
+void is31fl3736_update_led_control_registers(uint8_t addr, uint8_t index) {
+ if (g_led_control_registers_update_required[index]) {
+ // Firstly we need to unlock the command register and select PG0
+ is31fl3736_write_register(addr, IS31FL3736_REG_COMMAND_WRITE_LOCK, IS31FL3736_COMMAND_WRITE_LOCK_MAGIC);
+ is31fl3736_write_register(addr, IS31FL3736_REG_COMMAND, IS31FL3736_COMMAND_LED_CONTROL);
+ for (int i = 0; i < IS31FL3736_LED_CONTROL_REGISTER_COUNT; i++) {
+ is31fl3736_write_register(addr, i, g_led_control_registers[index][i]);
+ }
+ g_led_control_registers_update_required[index] = false;
+ }
+}
+
+void is31fl3736_flush(void) {
+ is31fl3736_update_pwm_buffers(IS31FL3736_I2C_ADDRESS_1, 0);
+#if defined(IS31FL3736_I2C_ADDRESS_2)
+ is31fl3736_update_pwm_buffers(IS31FL3736_I2C_ADDRESS_2, 1);
+# if defined(IS31FL3736_I2C_ADDRESS_3)
+ is31fl3736_update_pwm_buffers(IS31FL3736_I2C_ADDRESS_3, 2);
+# if defined(IS31FL3736_I2C_ADDRESS_4)
+ is31fl3736_update_pwm_buffers(IS31FL3736_I2C_ADDRESS_4, 3);
+# endif
+# endif
+#endif
+}
diff --git a/drivers/led/issi/is31fl3736-simple.h b/drivers/led/issi/is31fl3736-simple.h
new file mode 100644
index 0000000000..a73a872545
--- /dev/null
+++ b/drivers/led/issi/is31fl3736-simple.h
@@ -0,0 +1,261 @@
+/* Copyright 2018 Jason Williams (Wilba)
+ * Copyright 2021 Doni Crosby
+ *
+ * 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 <stdint.h>
+#include <stdbool.h>
+#include "progmem.h"
+#include "util.h"
+
+// ======== DEPRECATED DEFINES - DO NOT USE ========
+#ifdef ISSI_TIMEOUT
+# define IS31FL3736_I2C_TIMEOUT ISSI_TIMEOUT
+#endif
+#ifdef ISSI_PERSISTENCE
+# define IS31FL3736_I2C_PERSISTENCE ISSI_PERSISTENCE
+#endif
+#ifdef ISSI_SWPULLUP
+# define IS31FL3736_SW_PULLUP ISSI_SWPULLUP
+#endif
+#ifdef ISSI_CSPULLUP
+# define IS31FL3736_CS_PULLDOWN ISSI_CSPULLUP
+#endif
+#ifdef ISSI_GLOBALCURRENT
+# define IS31FL3736_GLOBAL_CURRENT ISSI_GLOBALCURRENT
+#endif
+
+#define is31_led is31fl3736_led_t
+#define g_is31_leds g_is31fl3736_leds
+
+#define PUR_0R IS31FL3736_PUR_0_OHM
+#define PUR_05KR IS31FL3736_PUR_05K_OHM
+#define PUR_1KR IS31FL3736_PUR_1K_OHM
+#define PUR_2KR IS31FL3736_PUR_2K_OHM
+#define PUR_4KR IS31FL3736_PUR_4K_OHM
+#define PUR_8KR IS31FL3736_PUR_8K_OHM
+#define PUR_16KR IS31FL3736_PUR_16K_OHM
+#define PUR_32KR IS31FL3736_PUR_32K_OHM
+// ========
+
+#define IS31FL3736_REG_INTERRUPT_MASK 0xF0
+#define IS31FL3736_REG_INTERRUPT_STATUS 0xF1
+
+#define IS31FL3736_REG_COMMAND 0xFD
+
+#define IS31FL3736_COMMAND_LED_CONTROL 0x00
+#define IS31FL3736_COMMAND_PWM 0x01
+#define IS31FL3736_COMMAND_AUTO_BREATH 0x02
+#define IS31FL3736_COMMAND_FUNCTION 0x03
+
+#define IS31FL3736_FUNCTION_REG_CONFIGURATION 0x00
+#define IS31FL3736_FUNCTION_REG_GLOBAL_CURRENT 0x01
+#define IS31FL3736_FUNCTION_REG_SW_PULLUP 0x0F
+#define IS31FL3736_FUNCTION_REG_CS_PULLDOWN 0x10
+#define IS31FL3736_FUNCTION_REG_RESET 0x11
+
+#define IS31FL3736_REG_COMMAND_WRITE_LOCK 0xFE
+#define IS31FL3736_COMMAND_WRITE_LOCK_MAGIC 0xC5
+
+#define IS31FL3736_I2C_ADDRESS_GND_GND 0x50
+#define IS31FL3736_I2C_ADDRESS_GND_SCL 0x51
+#define IS31FL3736_I2C_ADDRESS_GND_SDA 0x52
+#define IS31FL3736_I2C_ADDRESS_GND_VCC 0x53
+#define IS31FL3736_I2C_ADDRESS_SCL_GND 0x54
+#define IS31FL3736_I2C_ADDRESS_SCL_SCL 0x55
+#define IS31FL3736_I2C_ADDRESS_SCL_SDA 0x56
+#define IS31FL3736_I2C_ADDRESS_SCL_VCC 0x57
+#define IS31FL3736_I2C_ADDRESS_SDA_GND 0x58
+#define IS31FL3736_I2C_ADDRESS_SDA_SCL 0x59
+#define IS31FL3736_I2C_ADDRESS_SDA_SDA 0x5A
+#define IS31FL3736_I2C_ADDRESS_SDA_VCC 0x5B
+#define IS31FL3736_I2C_ADDRESS_VCC_GND 0x5C
+#define IS31FL3736_I2C_ADDRESS_VCC_SCL 0x5D
+#define IS31FL3736_I2C_ADDRESS_VCC_SDA 0x5E
+#define IS31FL3736_I2C_ADDRESS_VCC_VCC 0x5F
+
+#if defined(LED_MATRIX_IS31FL3736)
+# define IS31FL3736_LED_COUNT LED_MATRIX_LED_COUNT
+#endif
+
+#if defined(IS31FL3736_I2C_ADDRESS_4)
+# define IS31FL3736_DRIVER_COUNT 4
+#elif defined(IS31FL3736_I2C_ADDRESS_3)
+# define IS31FL3736_DRIVER_COUNT 3
+#elif defined(IS31FL3736_I2C_ADDRESS_2)
+# define IS31FL3736_DRIVER_COUNT 2
+#elif defined(IS31FL3736_I2C_ADDRESS_1)
+# define IS31FL3736_DRIVER_COUNT 1
+#endif
+
+typedef struct is31fl3736_led_t {
+ uint8_t driver : 2;
+ uint8_t v;
+} PACKED is31fl3736_led_t;
+
+extern const is31fl3736_led_t PROGMEM g_is31fl3736_leds[IS31FL3736_LED_COUNT];
+
+void is31fl3736_init_drivers(void);
+void is31fl3736_init(uint8_t addr);
+void is31fl3736_write_register(uint8_t addr, uint8_t reg, uint8_t data);
+void is31fl3736_write_pwm_buffer(uint8_t addr, uint8_t *pwm_buffer);
+
+void is31fl3736_set_value(int index, uint8_t value);
+void is31fl3736_set_value_all(uint8_t value);
+
+void is31fl3736_set_led_control_register(uint8_t index, bool value);
+
+// This should not be called from an interrupt
+// (eg. from a timer interrupt).
+// Call this while idle (in between matrix scans).
+// If the buffer is dirty, it will update the driver with the buffer.
+void is31fl3736_update_pwm_buffers(uint8_t addr, uint8_t index);
+void is31fl3736_update_led_control_registers(uint8_t addr, uint8_t index);
+
+void is31fl3736_flush(void);
+
+#define IS31FL3736_PDR_0_OHM 0b000 // No pull-down resistor
+#define IS31FL3736_PDR_0K5_OHM 0b001 // 0.5 kOhm resistor
+#define IS31FL3736_PDR_1K_OHM 0b010 // 1 kOhm resistor
+#define IS31FL3736_PDR_2K_OHM 0b011 // 2 kOhm resistor
+#define IS31FL3736_PDR_4K_OHM 0b100 // 4 kOhm resistor
+#define IS31FL3736_PDR_8K_OHM 0b101 // 8 kOhm resistor
+#define IS31FL3736_PDR_16K_OHM 0b110 // 16 kOhm resistor
+#define IS31FL3736_PDR_32K_OHM 0b111 // 32 kOhm resistor
+
+#define IS31FL3736_PUR_0_OHM 0b000 // No pull-up resistor
+#define IS31FL3736_PUR_0K5_OHM 0b001 // 0.5 kOhm resistor
+#define IS31FL3736_PUR_1K_OHM 0b010 // 1 kOhm resistor
+#define IS31FL3736_PUR_2K_OHM 0b011 // 2 kOhm resistor
+#define IS31FL3736_PUR_4K_OHM 0b100 // 4 kOhm resistor
+#define IS31FL3736_PUR_8K_OHM 0b101 // 8 kOhm resistor
+#define IS31FL3736_PUR_16K_OHM 0b110 // 16 kOhm resistor
+#define IS31FL3736_PUR_32K_OHM 0b111 // 32 kOhm resistor
+
+#define IS31FL3736_PWM_FREQUENCY_8K4_HZ 0b000
+#define IS31FL3736_PWM_FREQUENCY_4K2_HZ 0b001
+#define IS31FL3736_PWM_FREQUENCY_26K7_HZ 0b010
+#define IS31FL3736_PWM_FREQUENCY_2K1_HZ 0b011
+#define IS31FL3736_PWM_FREQUENCY_1K05_HZ 0b100
+
+#define A_1 0x00
+#define A_2 0x02
+#define A_3 0x04
+#define A_4 0x06
+#define A_5 0x08
+#define A_6 0x0A
+#define A_7 0x0C
+#define A_8 0x0E
+
+#define B_1 0x10
+#define B_2 0x12
+#define B_3 0x14
+#define B_4 0x16
+#define B_5 0x18
+#define B_6 0x1A
+#define B_7 0x1C
+#define B_8 0x1E
+
+#define C_1 0x20
+#define C_2 0x22
+#define C_3 0x24
+#define C_4 0x26
+#define C_5 0x28
+#define C_6 0x2A
+#define C_7 0x2C
+#define C_8 0x2E
+
+#define D_1 0x30
+#define D_2 0x32
+#define D_3 0x34
+#define D_4 0x36
+#define D_5 0x38
+#define D_6 0x3A
+#define D_7 0x3C
+#define D_8 0x3E
+
+#define E_1 0x40
+#define E_2 0x42
+#define E_3 0x44
+#define E_4 0x46
+#define E_5 0x48
+#define E_6 0x4A
+#define E_7 0x4C
+#define E_8 0x4E
+
+#define F_1 0x50
+#define F_2 0x52
+#define F_3 0x54
+#define F_4 0x56
+#define F_5 0x58
+#define F_6 0x5A
+#define F_7 0x5C
+#define F_8 0x5E
+
+#define G_1 0x60
+#define G_2 0x62
+#define G_3 0x64
+#define G_4 0x66
+#define G_5 0x68
+#define G_6 0x6A
+#define G_7 0x6C
+#define G_8 0x6E
+
+#define H_1 0x70
+#define H_2 0x72
+#define H_3 0x74
+#define H_4 0x76
+#define H_5 0x78
+#define H_6 0x7A
+#define H_7 0x7C
+#define H_8 0x7E
+
+#define I_1 0x80
+#define I_2 0x82
+#define I_3 0x84
+#define I_4 0x86
+#define I_5 0x88
+#define I_6 0x8A
+#define I_7 0x8C
+#define I_8 0x8E
+
+#define J_1 0x90
+#define J_2 0x92
+#define J_3 0x94
+#define J_4 0x96
+#define J_5 0x98
+#define J_6 0x9A
+#define J_7 0x9C
+#define J_8 0x9E
+
+#define K_1 0xA0
+#define K_2 0xA2
+#define K_3 0xA4
+#define K_4 0xA6
+#define K_5 0xA8
+#define K_6 0xAA
+#define K_7 0xAC
+#define K_8 0xAE
+
+#define L_1 0xB0
+#define L_2 0xB2
+#define L_3 0xB4
+#define L_4 0xB6
+#define L_5 0xB8
+#define L_6 0xBA
+#define L_7 0xBC
+#define L_8 0xBE
diff --git a/drivers/led/issi/is31fl3736.c b/drivers/led/issi/is31fl3736.c
index 0de8b3bbae..30ab796f3e 100644
--- a/drivers/led/issi/is31fl3736.c
+++ b/drivers/led/issi/is31fl3736.c
@@ -16,55 +16,35 @@
*/
#include "is31fl3736.h"
+#include <string.h>
#include "i2c_master.h"
#include "wait.h"
-// This is a 7-bit address, that gets left-shifted and bit 0
-// set to 0 for write, 1 for read (as per I2C protocol)
-// The address will vary depending on your wiring:
-// 00 <-> GND
-// 01 <-> SCL
-// 10 <-> SDA
-// 11 <-> VCC
-// ADDR1 represents A1:A0 of the 7-bit address.
-// ADDR2 represents A3:A2 of the 7-bit address.
-// The result is: 0b101(ADDR2)(ADDR1)
-#define ISSI_ADDR_DEFAULT 0x50
-
-#define ISSI_COMMANDREGISTER 0xFD
-#define ISSI_COMMANDREGISTER_WRITELOCK 0xFE
-#define ISSI_INTERRUPTMASKREGISTER 0xF0
-#define ISSI_INTERRUPTSTATUSREGISTER 0xF1
-
-#define ISSI_PAGE_LEDCONTROL 0x00 // PG0
-#define ISSI_PAGE_PWM 0x01 // PG1
-#define ISSI_PAGE_AUTOBREATH 0x02 // PG2
-#define ISSI_PAGE_FUNCTION 0x03 // PG3
-
-#define ISSI_REG_CONFIGURATION 0x00 // PG3
-#define ISSI_REG_GLOBALCURRENT 0x01 // PG3
-#define ISSI_REG_RESET 0x11 // PG3
-#define ISSI_REG_SWPULLUP 0x0F // PG3
-#define ISSI_REG_CSPULLUP 0x10 // PG3
-
-#ifndef ISSI_TIMEOUT
-# define ISSI_TIMEOUT 100
+#define IS31FL3736_PWM_REGISTER_COUNT 192 // actually 96
+#define IS31FL3736_LED_CONTROL_REGISTER_COUNT 24
+
+#ifndef IS31FL3736_I2C_TIMEOUT
+# define IS31FL3736_I2C_TIMEOUT 100
+#endif
+
+#ifndef IS31FL3736_I2C_PERSISTENCE
+# define IS31FL3736_I2C_PERSISTENCE 0
#endif
-#ifndef ISSI_PERSISTENCE
-# define ISSI_PERSISTENCE 0
+#ifndef IS31FL3736_PWM_FREQUENCY
+# define IS31FL3736_PWM_FREQUENCY IS31FL3736_PWM_FREQUENCY_8K4_HZ // PFS - IS31FL3736B only
#endif
-#ifndef ISSI_SWPULLUP
-# define ISSI_SWPULLUP PUR_0R
+#ifndef IS31FL3736_SW_PULLUP
+# define IS31FL3736_SW_PULLUP IS31FL3736_PUR_0_OHM
#endif
-#ifndef ISSI_CSPULLUP
-# define ISSI_CSPULLUP PUR_0R
+#ifndef IS31FL3736_CS_PULLDOWN
+# define IS31FL3736_CS_PULLDOWN IS31FL3736_PDR_0_OHM
#endif
-#ifndef ISSI_GLOBALCURRENT
-# define ISSI_GLOBALCURRENT 0xFF
+#ifndef IS31FL3736_GLOBAL_CURRENT
+# define IS31FL3736_GLOBAL_CURRENT 0xFF
#endif
// Transfer buffer for TWITransmitData()
@@ -76,22 +56,22 @@ uint8_t g_twi_transfer_buffer[20];
// We could optimize this and take out the unused registers from these
// buffers and the transfers in is31fl3736_write_pwm_buffer() but it's
// probably not worth the extra complexity.
-uint8_t g_pwm_buffer[DRIVER_COUNT][192];
-bool g_pwm_buffer_update_required[DRIVER_COUNT] = {false};
+uint8_t g_pwm_buffer[IS31FL3736_DRIVER_COUNT][IS31FL3736_PWM_REGISTER_COUNT];
+bool g_pwm_buffer_update_required[IS31FL3736_DRIVER_COUNT] = {false};
-uint8_t g_led_control_registers[DRIVER_COUNT][24] = {{0}, {0}};
-bool g_led_control_registers_update_required = false;
+uint8_t g_led_control_registers[IS31FL3736_DRIVER_COUNT][IS31FL3736_LED_CONTROL_REGISTER_COUNT] = {0};
+bool g_led_control_registers_update_required[IS31FL3736_DRIVER_COUNT] = {false};
void is31fl3736_write_register(uint8_t addr, uint8_t reg, uint8_t data) {
g_twi_transfer_buffer[0] = reg;
g_twi_transfer_buffer[1] = data;
-#if ISSI_PERSISTENCE > 0
- for (uint8_t i = 0; i < ISSI_PERSISTENCE; i++) {
- if (i2c_transmit(addr << 1, g_twi_transfer_buffer, 2, ISSI_TIMEOUT) == 0) break;
+#if IS31FL3736_I2C_PERSISTENCE > 0
+ for (uint8_t i = 0; i < IS31FL3736_I2C_PERSISTENCE; i++) {
+ if (i2c_transmit(addr << 1, g_twi_transfer_buffer, 2, IS31FL3736_I2C_TIMEOUT) == 0) break;
}
#else
- i2c_transmit(addr << 1, g_twi_transfer_buffer, 2, ISSI_TIMEOUT);
+ i2c_transmit(addr << 1, g_twi_transfer_buffer, 2, IS31FL3736_I2C_TIMEOUT);
#endif
}
@@ -102,21 +82,51 @@ void is31fl3736_write_pwm_buffer(uint8_t addr, uint8_t *pwm_buffer) {
// g_twi_transfer_buffer[] is 20 bytes
// iterate over the pwm_buffer contents at 16 byte intervals
- for (int i = 0; i < 192; i += 16) {
+ for (int i = 0; i < IS31FL3736_PWM_REGISTER_COUNT; i += 16) {
g_twi_transfer_buffer[0] = i;
// copy the data from i to i+15
// device will auto-increment register for data after the first byte
// thus this sets registers 0x00-0x0F, 0x10-0x1F, etc. in one transfer
memcpy(g_twi_transfer_buffer + 1, pwm_buffer + i, 16);
-#if ISSI_PERSISTENCE > 0
- for (uint8_t i = 0; i < ISSI_PERSISTENCE; i++) {
- if (i2c_transmit(addr << 1, g_twi_transfer_buffer, 17, ISSI_TIMEOUT) == 0) break;
+#if IS31FL3736_I2C_PERSISTENCE > 0
+ for (uint8_t i = 0; i < IS31FL3736_I2C_PERSISTENCE; i++) {
+ if (i2c_transmit(addr << 1, g_twi_transfer_buffer, 17, IS31FL3736_I2C_TIMEOUT) == 0) break;
}
#else
- i2c_transmit(addr << 1, g_twi_transfer_buffer, 17, ISSI_TIMEOUT);
+ i2c_transmit(addr << 1, g_twi_transfer_buffer, 17, IS31FL3736_I2C_TIMEOUT);
+#endif
+ }
+}
+
+void is31fl3736_init_drivers(void) {
+ i2c_init();
+
+ is31fl3736_init(IS31FL3736_I2C_ADDRESS_1);
+#if defined(IS31FL3736_I2C_ADDRESS_2)
+ is31fl3736_init(IS31FL3736_I2C_ADDRESS_2);
+# if defined(IS31FL3736_I2C_ADDRESS_3)
+ is31fl3736_init(IS31FL3736_I2C_ADDRESS_3);
+# if defined(IS31FL3736_I2C_ADDRESS_4)
+ is31fl3736_init(IS31FL3736_I2C_ADDRESS_4);
+# endif
+# endif
#endif
+
+ for (int i = 0; i < IS31FL3736_LED_COUNT; i++) {
+ is31fl3736_set_led_control_register(i, true, true, true);
}
+
+ is31fl3736_update_led_control_registers(IS31FL3736_I2C_ADDRESS_1, 0);
+#if defined(IS31FL3736_I2C_ADDRESS_2)
+ is31fl3736_update_led_control_registers(IS31FL3736_I2C_ADDRESS_2, 1);
+# if defined(IS31FL3736_I2C_ADDRESS_3)
+ is31fl3736_update_led_control_registers(IS31FL3736_I2C_ADDRESS_3, 2);
+# if defined(IS31FL3736_I2C_ADDRESS_4)
+ is31fl3736_update_led_control_registers(IS31FL3736_I2C_ADDRESS_4, 3);
+# endif
+# endif
+#endif
}
void is31fl3736_init(uint8_t addr) {
@@ -126,48 +136,48 @@ void is31fl3736_init(uint8_t addr) {
// then disable software shutdown.
// Unlock the command register.
- is31fl3736_write_register(addr, ISSI_COMMANDREGISTER_WRITELOCK, 0xC5);
+ is31fl3736_write_register(addr, IS31FL3736_REG_COMMAND_WRITE_LOCK, IS31FL3736_COMMAND_WRITE_LOCK_MAGIC);
// Select PG0
- is31fl3736_write_register(addr, ISSI_COMMANDREGISTER, ISSI_PAGE_LEDCONTROL);
+ is31fl3736_write_register(addr, IS31FL3736_REG_COMMAND, IS31FL3736_REG_LED_CONTROL);
// Turn off all LEDs.
- for (int i = 0x00; i <= 0x17; i++) {
+ for (int i = 0; i < IS31FL3736_LED_CONTROL_REGISTER_COUNT; i++) {
is31fl3736_write_register(addr, i, 0x00);
}
// Unlock the command register.
- is31fl3736_write_register(addr, ISSI_COMMANDREGISTER_WRITELOCK, 0xC5);
+ is31fl3736_write_register(addr, IS31FL3736_REG_COMMAND_WRITELOCK, IS31FL3736_COMMAND_WRITE_LOCK_MAGIC);
// Select PG1
- is31fl3736_write_register(addr, ISSI_COMMANDREGISTER, ISSI_PAGE_PWM);
+ is31fl3736_write_register(addr, IS31FL3736_REG_COMMAND, IS31FL3736_COMMAND_PWM);
// Set PWM on all LEDs to 0
// No need to setup Breath registers to PWM as that is the default.
- for (int i = 0x00; i <= 0xBF; i++) {
+ for (int i = 0; i < IS31FL3736_PWM_REGISTER_COUNT; i++) {
is31fl3736_write_register(addr, i, 0x00);
}
// Unlock the command register.
- is31fl3736_write_register(addr, ISSI_COMMANDREGISTER_WRITELOCK, 0xC5);
+ is31fl3736_write_register(addr, IS31FL3736_REG_COMMAND_WRITE_LOCK, IS31FL3736_COMMAND_WRITE_LOCK_MAGIC);
// Select PG3
- is31fl3736_write_register(addr, ISSI_COMMANDREGISTER, ISSI_PAGE_FUNCTION);
+ is31fl3736_write_register(addr, IS31FL3736_REG_COMMAND, IS31FL3736_COMMAND_FUNCTION);
// Set de-ghost pull-up resistors (SWx)
- is31fl3736_write_register(addr, ISSI_REG_SWPULLUP, ISSI_SWPULLUP);
+ is31fl3736_write_register(addr, IS31FL3736_FUNCTION_REG_SW_PULLUP, IS31FL3736_SW_PULLUP);
// Set de-ghost pull-down resistors (CSx)
- is31fl3736_write_register(addr, ISSI_REG_CSPULLUP, ISSI_CSPULLUP);
+ is31fl3736_write_register(addr, IS31FL3736_FUNCTION_REG_CS_PULLDOWN, IS31FL3736_CS_PULLDOWN);
// Set global current to maximum.
- is31fl3736_write_register(addr, ISSI_REG_GLOBALCURRENT, ISSI_GLOBALCURRENT);
+ is31fl3736_write_register(addr, IS31FL3736_FUNCTION_REG_GLOBAL_CURRENT, IS31FL3736_GLOBAL_CURRENT);
// Disable software shutdown.
- is31fl3736_write_register(addr, ISSI_REG_CONFIGURATION, 0x01);
+ is31fl3736_write_register(addr, IS31FL3736_FUNCTION_REG_CONFIGURATION, ((IS31FL3736_PWM_FREQUENCY & 0b111) << 3) | 0x01);
// Wait 10ms to ensure the device has woken up.
wait_ms(10);
}
void is31fl3736_set_color(int index, uint8_t red, uint8_t green, uint8_t blue) {
- is31_led led;
- if (index >= 0 && index < RGB_MATRIX_LED_COUNT) {
- memcpy_P(&led, (&g_is31_leds[index]), sizeof(led));
+ is31fl3736_led_t led;
+ if (index >= 0 && index < IS31FL3736_LED_COUNT) {
+ memcpy_P(&led, (&g_is31fl3736_leds[index]), sizeof(led));
if (g_pwm_buffer[led.driver][led.r] == red && g_pwm_buffer[led.driver][led.g] == green && g_pwm_buffer[led.driver][led.b] == blue) {
return;
@@ -180,27 +190,20 @@ void is31fl3736_set_color(int index, uint8_t red, uint8_t green, uint8_t blue) {
}
void is31fl3736_set_color_all(uint8_t red, uint8_t green, uint8_t blue) {
- for (int i = 0; i < RGB_MATRIX_LED_COUNT; i++) {
+ for (int i = 0; i < IS31FL3736_LED_COUNT; i++) {
is31fl3736_set_color(i, red, green, blue);
}
}
void is31fl3736_set_led_control_register(uint8_t index, bool red, bool green, bool blue) {
- is31_led led;
- memcpy_P(&led, (&g_is31_leds[index]), sizeof(led));
-
- // IS31FL3733
- // The PWM register for a matrix position (0x00 to 0xBF) can be
- // divided by 8 to get the LED control register (0x00 to 0x17),
- // then mod 8 to get the bit position within that register.
+ is31fl3736_led_t led;
+ memcpy_P(&led, (&g_is31fl3736_leds[index]), sizeof(led));
- // IS31FL3736
// The PWM register for a matrix position (0x00 to 0xBF) is interleaved, so:
// A1=0x00 A2=0x02 A3=0x04 A4=0x06 A5=0x08 A6=0x0A A7=0x0C A8=0x0E
// B1=0x10 B2=0x12 B3=0x14
// But also, the LED control registers (0x00 to 0x17) are also interleaved, so:
// A1-A4=0x00 A5-A8=0x01
- // So, the same math applies.
uint8_t control_register_r = led.r / 8;
uint8_t control_register_g = led.g / 8;
@@ -226,63 +229,41 @@ void is31fl3736_set_led_control_register(uint8_t index, bool red, bool green, bo
g_led_control_registers[led.driver][control_register_b] &= ~(1 << bit_b);
}
- g_led_control_registers_update_required = true;
-}
-
-void is31fl3736_mono_set_brightness(int index, uint8_t value) {
- if (index >= 0 && index < 96) {
- // Index in range 0..95 -> A1..A8, B1..B8, etc.
- // Map index 0..95 to registers 0x00..0xBE (interleaved)
- uint8_t pwm_register = index * 2;
- g_pwm_buffer[0][pwm_register] = value;
- g_pwm_buffer_update_required[0] = true;
- }
-}
-
-void is31fl3736_mono_set_brightness_all(uint8_t value) {
- for (int i = 0; i < 96; i++) {
- is31fl3736_mono_set_brightness(i, value);
- }
-}
-
-void is31fl3736_mono_set_led_control_register(uint8_t index, bool enabled) {
- // Index in range 0..95 -> A1..A8, B1..B8, etc.
-
- // Map index 0..95 to registers 0x00..0xBE (interleaved)
- uint8_t pwm_register = index * 2;
- // Map register 0x00..0xBE (interleaved) into control register and bit
- uint8_t control_register = pwm_register / 8;
- uint8_t bit = pwm_register % 8;
-
- if (enabled) {
- g_led_control_registers[0][control_register] |= (1 << bit);
- } else {
- g_led_control_registers[0][control_register] &= ~(1 << bit);
- }
-
- g_led_control_registers_update_required = true;
+ g_led_control_registers_update_required[led.driver] = true;
}
void is31fl3736_update_pwm_buffers(uint8_t addr, uint8_t index) {
if (g_pwm_buffer_update_required[index]) {
// Firstly we need to unlock the command register and select PG1
- is31fl3736_write_register(addr, ISSI_COMMANDREGISTER_WRITELOCK, 0xC5);
- is31fl3736_write_register(addr, ISSI_COMMANDREGISTER, ISSI_PAGE_PWM);
+ is31fl3736_write_register(addr, IS31FL3736_REG_COMMAND_WRITE_LOCK, IS31FL3736_COMMAND_WRITE_LOCK_MAGIC);
+ is31fl3736_write_register(addr, IS31FL3736_REG_COMMAND, IS31FL3736_COMMAND_PWM);
is31fl3736_write_pwm_buffer(addr, g_pwm_buffer[index]);
+ g_pwm_buffer_update_required[index] = false;
}
- g_pwm_buffer_update_required[index] = false;
}
-void is31fl3736_update_led_control_registers(uint8_t addr1, uint8_t addr2) {
- if (g_led_control_registers_update_required) {
+void is31fl3736_update_led_control_registers(uint8_t addr, uint8_t index) {
+ if (g_led_control_registers_update_required[index]) {
// Firstly we need to unlock the command register and select PG0
- is31fl3736_write_register(addr1, ISSI_COMMANDREGISTER_WRITELOCK, 0xC5);
- is31fl3736_write_register(addr1, ISSI_COMMANDREGISTER, ISSI_PAGE_LEDCONTROL);
- for (int i = 0; i < 24; i++) {
- is31fl3736_write_register(addr1, i, g_led_control_registers[0][i]);
- // is31fl3736_write_register(addr2, i, g_led_control_registers[1][i]);
+ is31fl3736_write_register(addr, IS31FL3736_REG_COMMAND_WRITE_LOCK, IS31FL3736_COMMAND_WRITE_LOCK_MAGIC);
+ is31fl3736_write_register(addr, IS31FL3736_REG_COMMAND, IS31FL3736_COMMAND_LED_CONTROL);
+ for (int i = 0; i < IS31FL3736_LED_CONTROL_REGISTER_COUNT; i++) {
+ is31fl3736_write_register(addr, i, g_led_control_registers[index][i]);
}
- g_led_control_registers_update_required = false;
+ g_led_control_registers_update_required[index] = false;
}
}
+
+void is31fl3736_flush(void) {
+ is31fl3736_update_pwm_buffers(IS31FL3736_I2C_ADDRESS_1, 0);
+#if defined(IS31FL3736_I2C_ADDRESS_2)
+ is31fl3736_update_pwm_buffers(IS31FL3736_I2C_ADDRESS_2, 1);
+# if defined(IS31FL3736_I2C_ADDRESS_3)
+ is31fl3736_update_pwm_buffers(IS31FL3736_I2C_ADDRESS_3, 2);
+# if defined(IS31FL3736_I2C_ADDRESS_4)
+ is31fl3736_update_pwm_buffers(IS31FL3736_I2C_ADDRESS_4, 3);
+# endif
+# endif
+#endif
+}
diff --git a/drivers/led/issi/is31fl3736.h b/drivers/led/issi/is31fl3736.h
index 32bdef4a80..a5710d7ed4 100644
--- a/drivers/led/issi/is31fl3736.h
+++ b/drivers/led/issi/is31fl3736.h
@@ -19,29 +19,111 @@
#include <stdint.h>
#include <stdbool.h>
-#include <string.h>
#include "progmem.h"
+#include "util.h"
-// Simple interface option.
-// If these aren't defined, just define them to make it compile
+// ======== DEPRECATED DEFINES - DO NOT USE ========
+#ifdef DRIVER_ADDR_1
+# define IS31FL3736_I2C_ADDRESS_1 DRIVER_ADDR_1
+#endif
+#ifdef DRIVER_ADDR_2
+# define IS31FL3736_I2C_ADDRESS_2 DRIVER_ADDR_2
+#endif
+#ifdef DRIVER_ADDR_3
+# define IS31FL3736_I2C_ADDRESS_3 DRIVER_ADDR_3
+#endif
+#ifdef DRIVER_ADDR_4
+# define IS31FL3736_I2C_ADDRESS_4 DRIVER_ADDR_4
+#endif
+#ifdef ISSI_TIMEOUT
+# define IS31FL3736_I2C_TIMEOUT ISSI_TIMEOUT
+#endif
+#ifdef ISSI_PERSISTENCE
+# define IS31FL3736_I2C_PERSISTENCE ISSI_PERSISTENCE
+#endif
+#ifdef ISSI_SWPULLUP
+# define IS31FL3736_SW_PULLUP ISSI_SWPULLUP
+#endif
+#ifdef ISSI_CSPULLUP
+# define IS31FL3736_CS_PULLDOWN ISSI_CSPULLUP
+#endif
+#ifdef ISSI_GLOBALCURRENT
+# define IS31FL3736_GLOBAL_CURRENT ISSI_GLOBALCURRENT
+#endif
+
+#define is31_led is31fl3736_led_t
+#define g_is31_leds g_is31fl3736_leds
+
+#define PUR_0R IS31FL3736_PUR_0_OHM
+#define PUR_05KR IS31FL3736_PUR_0K5_OHM
+#define PUR_1KR IS31FL3736_PUR_1K_OHM
+#define PUR_2KR IS31FL3736_PUR_2K_OHM
+#define PUR_4KR IS31FL3736_PUR_4K_OHM
+#define PUR_8KR IS31FL3736_PUR_8K_OHM
+#define PUR_16KR IS31FL3736_PUR_16K_OHM
+#define PUR_32KR IS31FL3736_PUR_32K_OHM
+// ========
-#ifndef DRIVER_COUNT
-# define DRIVER_COUNT 2
+#define IS31FL3736_REG_INTERRUPT_MASK 0xF0
+#define IS31FL3736_REG_INTERRUPT_STATUS 0xF1
+
+#define IS31FL3736_REG_COMMAND 0xFD
+
+#define IS31FL3736_COMMAND_LED_CONTROL 0x00
+#define IS31FL3736_COMMAND_PWM 0x01
+#define IS31FL3736_COMMAND_AUTO_BREATH 0x02
+#define IS31FL3736_COMMAND_FUNCTION 0x03
+
+#define IS31FL3736_FUNCTION_REG_CONFIGURATION 0x00
+#define IS31FL3736_FUNCTION_REG_GLOBAL_CURRENT 0x01
+#define IS31FL3736_FUNCTION_REG_SW_PULLUP 0x0F
+#define IS31FL3736_FUNCTION_REG_CS_PULLDOWN 0x10
+#define IS31FL3736_FUNCTION_REG_RESET 0x11
+
+#define IS31FL3736_REG_COMMAND_WRITE_LOCK 0xFE
+#define IS31FL3736_COMMAND_WRITE_LOCK_MAGIC 0xC5
+
+#define IS31FL3736_I2C_ADDRESS_GND_GND 0x50
+#define IS31FL3736_I2C_ADDRESS_GND_SCL 0x51
+#define IS31FL3736_I2C_ADDRESS_GND_SDA 0x52
+#define IS31FL3736_I2C_ADDRESS_GND_VCC 0x53
+#define IS31FL3736_I2C_ADDRESS_SCL_GND 0x54
+#define IS31FL3736_I2C_ADDRESS_SCL_SCL 0x55
+#define IS31FL3736_I2C_ADDRESS_SCL_SDA 0x56
+#define IS31FL3736_I2C_ADDRESS_SCL_VCC 0x57
+#define IS31FL3736_I2C_ADDRESS_SDA_GND 0x58
+#define IS31FL3736_I2C_ADDRESS_SDA_SCL 0x59
+#define IS31FL3736_I2C_ADDRESS_SDA_SDA 0x5A
+#define IS31FL3736_I2C_ADDRESS_SDA_VCC 0x5B
+#define IS31FL3736_I2C_ADDRESS_VCC_GND 0x5C
+#define IS31FL3736_I2C_ADDRESS_VCC_SCL 0x5D
+#define IS31FL3736_I2C_ADDRESS_VCC_SDA 0x5E
+#define IS31FL3736_I2C_ADDRESS_VCC_VCC 0x5F
+
+#if defined(RGB_MATRIX_IS31FL3736)
+# define IS31FL3736_LED_COUNT RGB_MATRIX_LED_COUNT
#endif
-#ifndef RGB_MATRIX_LED_COUNT
-# define RGB_MATRIX_LED_COUNT 96
+#if defined(IS31FL3736_I2C_ADDRESS_4)
+# define IS31FL3736_DRIVER_COUNT 4
+#elif defined(IS31FL3736_I2C_ADDRESS_3)
+# define IS31FL3736_DRIVER_COUNT 3
+#elif defined(IS31FL3736_I2C_ADDRESS_2)
+# define IS31FL3736_DRIVER_COUNT 2
+#elif defined(IS31FL3736_I2C_ADDRESS_1)
+# define IS31FL3736_DRIVER_COUNT 1
#endif
-typedef struct is31_led {
+typedef struct is31fl3736_led_t {
uint8_t driver : 2;
uint8_t r;
uint8_t g;
uint8_t b;
-} __attribute__((packed)) is31_led;
+} PACKED is31fl3736_led_t;
-extern const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT];
+extern const is31fl3736_led_t PROGMEM g_is31fl3736_leds[IS31FL3736_LED_COUNT];
+void is31fl3736_init_drivers(void);
void is31fl3736_init(uint8_t addr);
void is31fl3736_write_register(uint8_t addr, uint8_t reg, uint8_t data);
void is31fl3736_write_pwm_buffer(uint8_t addr, uint8_t *pwm_buffer);
@@ -51,10 +133,6 @@ void is31fl3736_set_color_all(uint8_t red, uint8_t green, uint8_t blue);
void is31fl3736_set_led_control_register(uint8_t index, bool red, bool green, bool blue);
-void is31fl3736_mono_set_brightness(int index, uint8_t value);
-void is31fl3736_mono_set_brightness_all(uint8_t value);
-void is31fl3736_mono_set_led_control_register(uint8_t index, bool enabled);
-
// This should not be called from an interrupt
// (eg. from a timer interrupt).
// Call this while idle (in between matrix scans).
@@ -62,14 +140,31 @@ void is31fl3736_mono_set_led_control_register(uint8_t index, bool enabled);
void is31fl3736_update_pwm_buffers(uint8_t addr, uint8_t index);
void is31fl3736_update_led_control_registers(uint8_t addr, uint8_t index);
-#define PUR_0R 0x00 // No PUR resistor
-#define PUR_05KR 0x01 // 0.5k Ohm resistor
-#define PUR_1KR 0x02 // 1.0k Ohm resistor
-#define PUR_2KR 0x03 // 2.0k Ohm resistor
-#define PUR_4KR 0x04 // 4.0k Ohm resistor
-#define PUR_8KR 0x05 // 8.0k Ohm resistor
-#define PUR_16KR 0x06 // 16k Ohm resistor
-#define PUR_32KR 0x07 // 32k Ohm resistor
+void is31fl3736_flush(void);
+
+#define IS31FL3736_PDR_0_OHM 0b000 // No pull-down resistor
+#define IS31FL3736_PDR_0K5_OHM 0b001 // 0.5 kOhm resistor
+#define IS31FL3736_PDR_1K_OHM 0b010 // 1 kOhm resistor
+#define IS31FL3736_PDR_2K_OHM 0b011 // 2 kOhm resistor
+#define IS31FL3736_PDR_4K_OHM 0b100 // 4 kOhm resistor
+#define IS31FL3736_PDR_8K_OHM 0b101 // 8 kOhm resistor
+#define IS31FL3736_PDR_16K_OHM 0b110 // 16 kOhm resistor
+#define IS31FL3736_PDR_32K_OHM 0b111 // 32 kOhm resistor
+
+#define IS31FL3736_PUR_0_OHM 0b000 // No pull-up resistor
+#define IS31FL3736_PUR_0K5_OHM 0b001 // 0.5 kOhm resistor
+#define IS31FL3736_PUR_1K_OHM 0b010 // 1 kOhm resistor
+#define IS31FL3736_PUR_2K_OHM 0b011 // 2 kOhm resistor
+#define IS31FL3736_PUR_4K_OHM 0b100 // 4 kOhm resistor
+#define IS31FL3736_PUR_8K_OHM 0b101 // 8 kOhm resistor
+#define IS31FL3736_PUR_16K_OHM 0b110 // 16 kOhm resistor
+#define IS31FL3736_PUR_32K_OHM 0b111 // 32 kOhm resistor
+
+#define IS31FL3736_PWM_FREQUENCY_8K4_HZ 0b000
+#define IS31FL3736_PWM_FREQUENCY_4K2_HZ 0b001
+#define IS31FL3736_PWM_FREQUENCY_26K7_HZ 0b010
+#define IS31FL3736_PWM_FREQUENCY_2K1_HZ 0b011
+#define IS31FL3736_PWM_FREQUENCY_1K05_HZ 0b100
#define A_1 0x00
#define A_2 0x02
diff --git a/drivers/led/issi/is31fl3737-simple.c b/drivers/led/issi/is31fl3737-simple.c
new file mode 100644
index 0000000000..7f641f4ca5
--- /dev/null
+++ b/drivers/led/issi/is31fl3737-simple.c
@@ -0,0 +1,249 @@
+/* Copyright 2017 Jason Williams
+ * Copyright 2018 Jack Humbert
+ * Copyright 2018 Yiancar
+ * Copyright 2021 Doni Crosby
+ *
+ * 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 "is31fl3737-simple.h"
+#include <string.h>
+#include "i2c_master.h"
+#include "wait.h"
+
+#define IS31FL3737_PWM_REGISTER_COUNT 192 // actually 144
+#define IS31FL3737_LED_CONTROL_REGISTER_COUNT 24
+
+#ifndef IS31FL3737_I2C_TIMEOUT
+# define IS31FL3737_I2C_TIMEOUT 100
+#endif
+
+#ifndef IS31FL3737_I2C_PERSISTENCE
+# define IS31FL3737_I2C_PERSISTENCE 0
+#endif
+
+#ifndef IS31FL3737_PWM_FREQUENCY
+# define IS31FL3737_PWM_FREQUENCY IS31FL3737_PWM_FREQUENCY_8K4_HZ // PFS - IS31FL3737B only
+#endif
+
+#ifndef IS31FL3737_SW_PULLUP
+# define IS31FL3737_SW_PULLUP IS31FL3737_PUR_0_OHM
+#endif
+
+#ifndef IS31FL3737_CS_PULLDOWN
+# define IS31FL3737_CS_PULLDOWN IS31FL3737_PDR_0_OHM
+#endif
+
+#ifndef IS31FL3737_GLOBAL_CURRENT
+# define IS31FL3737_GLOBAL_CURRENT 0xFF
+#endif
+
+// Transfer buffer for TWITransmitData()
+uint8_t g_twi_transfer_buffer[20];
+
+// These buffers match the IS31FL3737 PWM registers.
+// The control buffers match the PG0 LED On/Off registers.
+// Storing them like this is optimal for I2C transfers to the registers.
+// We could optimize this and take out the unused registers from these
+// buffers and the transfers in is31fl3737_write_pwm_buffer() but it's
+// probably not worth the extra complexity.
+
+uint8_t g_pwm_buffer[IS31FL3737_DRIVER_COUNT][IS31FL3737_PWM_REGISTER_COUNT];
+bool g_pwm_buffer_update_required[IS31FL3737_DRIVER_COUNT] = {false};
+
+uint8_t g_led_control_registers[IS31FL3737_DRIVER_COUNT][IS31FL3737_LED_CONTROL_REGISTER_COUNT] = {0};
+bool g_led_control_registers_update_required[IS31FL3737_DRIVER_COUNT] = {false};
+
+void is31fl3737_write_register(uint8_t addr, uint8_t reg, uint8_t data) {
+ g_twi_transfer_buffer[0] = reg;
+ g_twi_transfer_buffer[1] = data;
+
+#if IS31FL3737_I2C_PERSISTENCE > 0
+ for (uint8_t i = 0; i < IS31FL3737_I2C_PERSISTENCE; i++) {
+ if (i2c_transmit(addr << 1, g_twi_transfer_buffer, 2, IS31FL3737_I2C_TIMEOUT) == 0) break;
+ }
+#else
+ i2c_transmit(addr << 1, g_twi_transfer_buffer, 2, IS31FL3737_I2C_TIMEOUT);
+#endif
+}
+
+void is31fl3737_write_pwm_buffer(uint8_t addr, uint8_t *pwm_buffer) {
+ // assumes PG1 is already selected
+
+ // transmit PWM registers in 12 transfers of 16 bytes
+ // g_twi_transfer_buffer[] is 20 bytes
+
+ // iterate over the pwm_buffer contents at 16 byte intervals
+ for (int i = 0; i < IS31FL3737_PWM_REGISTER_COUNT; i += 16) {
+ g_twi_transfer_buffer[0] = i;
+ // copy the data from i to i+15
+ // device will auto-increment register for data after the first byte
+ // thus this sets registers 0x00-0x0F, 0x10-0x1F, etc. in one transfer
+ memcpy(g_twi_transfer_buffer + 1, pwm_buffer + i, 16);
+
+#if IS31FL3737_I2C_PERSISTENCE > 0
+ for (uint8_t i = 0; i < IS31FL3737_I2C_PERSISTENCE; i++) {
+ if (i2c_transmit(addr << 1, g_twi_transfer_buffer, 17, IS31FL3737_I2C_TIMEOUT) == 0) break;
+ }
+#else
+ i2c_transmit(addr << 1, g_twi_transfer_buffer, 17, IS31FL3737_I2C_TIMEOUT);
+#endif
+ }
+}
+
+void is31fl3737_init_drivers(void) {
+ i2c_init();
+
+ is31fl3737_init(IS31FL3737_I2C_ADDRESS_1);
+#if defined(IS31FL3737_I2C_ADDRESS_2)
+ is31fl3737_init(IS31FL3737_I2C_ADDRESS_2);
+# if defined(IS31FL3737_I2C_ADDRESS_3)
+ is31fl3737_init(IS31FL3737_I2C_ADDRESS_3);
+# if defined(IS31FL3737_I2C_ADDRESS_4)
+ is31fl3737_init(IS31FL3737_I2C_ADDRESS_4);
+# endif
+# endif
+#endif
+
+ for (int i = 0; i < IS31FL3737_LED_COUNT; i++) {
+ is31fl3737_set_led_control_register(i, true);
+ }
+
+ is31fl3737_update_led_control_registers(IS31FL3737_I2C_ADDRESS_1, 0);
+#if defined(IS31FL3737_I2C_ADDRESS_2)
+ is31fl3737_update_led_control_registers(IS31FL3737_I2C_ADDRESS_2, 1);
+# if defined(IS31FL3737_I2C_ADDRESS_3)
+ is31fl3737_update_led_control_registers(IS31FL3737_I2C_ADDRESS_3, 2);
+# if defined(IS31FL3737_I2C_ADDRESS_4)
+ is31fl3737_update_led_control_registers(IS31FL3737_I2C_ADDRESS_4, 3);
+# endif
+# endif
+#endif
+}
+
+void is31fl3737_init(uint8_t addr) {
+ // In order to avoid the LEDs being driven with garbage data
+ // in the LED driver's PWM registers, shutdown is enabled last.
+ // Set up the mode and other settings, clear the PWM registers,
+ // then disable software shutdown.
+
+ // Unlock the command register.
+ is31fl3737_write_register(addr, IS31FL3737_REG_COMMAND_WRITE_LOCK, IS31FL3737_COMMAND_WRITE_LOCK_MAGIC);
+
+ // Select PG0
+ is31fl3737_write_register(addr, IS31FL3737_REG_COMMAND, IS31FL3737_COMMAND_LED_CONTROL);
+ // Turn off all LEDs.
+ for (int i = 0; i < IS31FL3737_LED_CONTROL_REGISTER_COUNT; i++) {
+ is31fl3737_write_register(addr, i, 0x00);
+ }
+
+ // Unlock the command register.
+ is31fl3737_write_register(addr, IS31FL3737_REG_COMMAND_WRITE_LOCK, IS31FL3737_COMMAND_WRITE_LOCK_MAGIC);
+
+ // Select PG1
+ is31fl3737_write_register(addr, IS31FL3737_REG_COMMAND, IS31FL3737_COMMAND_PWM);
+ // Set PWM on all LEDs to 0
+ // No need to setup Breath registers to PWM as that is the default.
+ for (int i = 0; i < IS31FL3737_PWM_REGISTER_COUNT; i++) {
+ is31fl3737_write_register(addr, i, 0x00);
+ }
+
+ // Unlock the command register.
+ is31fl3737_write_register(addr, IS31FL3737_REG_COMMAND_WRITE_LOCK, IS31FL3737_COMMAND_WRITE_LOCK_MAGIC);
+
+ // Select PG3
+ is31fl3737_write_register(addr, IS31FL3737_REG_COMMAND, IS31FL3737_COMMAND_FUNCTION);
+ // Set de-ghost pull-up resistors (SWx)
+ is31fl3737_write_register(addr, IS31FL3737_FUNCTION_REG_SW_PULLUP, IS31FL3737_SW_PULLUP);
+ // Set de-ghost pull-down resistors (CSx)
+ is31fl3737_write_register(addr, IS31FL3737_FUNCTION_REG_CS_PULLDOWN, IS31FL3737_CS_PULLDOWN);
+ // Set global current to maximum.
+ is31fl3737_write_register(addr, IS31FL3737_FUNCTION_REG_GLOBAL_CURRENT, IS31FL3737_GLOBAL_CURRENT);
+ // Disable software shutdown.
+ is31fl3737_write_register(addr, IS31FL3737_FUNCTION_REG_CONFIGURATION, ((IS31FL3737_PWM_FREQUENCY & 0b111) << 3) | 0x01);
+
+ // Wait 10ms to ensure the device has woken up.
+ wait_ms(10);
+}
+
+void is31fl3737_set_value(int index, uint8_t value) {
+ is31fl3737_led_t led;
+ if (index >= 0 && index < IS31FL3737_LED_COUNT) {
+ memcpy_P(&led, (&g_is31fl3737_leds[index]), sizeof(led));
+
+ if (g_pwm_buffer[led.driver][led.v] == value) {
+ return;
+ }
+ g_pwm_buffer[led.driver][led.v] = value;
+ g_pwm_buffer_update_required[led.driver] = true;
+ }
+}
+
+void is31fl3737_set_value_all(uint8_t value) {
+ for (int i = 0; i < IS31FL3737_LED_COUNT; i++) {
+ is31fl3737_set_value(i, value);
+ }
+}
+
+void is31fl3737_set_led_control_register(uint8_t index, bool value) {
+ is31fl3737_led_t led;
+ memcpy_P(&led, (&g_is31fl3737_leds[index]), sizeof(led));
+
+ uint8_t control_register = led.v / 8;
+ uint8_t bit_value = led.v % 8;
+
+ if (value) {
+ g_led_control_registers[led.driver][control_register] |= (1 << bit_value);
+ } else {
+ g_led_control_registers[led.driver][control_register] &= ~(1 << bit_value);
+ }
+
+ g_led_control_registers_update_required[led.driver] = true;
+}
+
+void is31fl3737_update_pwm_buffers(uint8_t addr, uint8_t index) {
+ if (g_pwm_buffer_update_required[index]) {
+ // Firstly we need to unlock the command register and select PG1
+ is31fl3737_write_register(addr, IS31FL3737_REG_COMMAND_WRITE_LOCK, IS31FL3737_COMMAND_WRITE_LOCK_MAGIC);
+ is31fl3737_write_register(addr, IS31FL3737_REG_COMMAND, IS31FL3737_COMMAND_PWM);
+
+ is31fl3737_write_pwm_buffer(addr, g_pwm_buffer[index]);
+ g_pwm_buffer_update_required[index] = false;
+ }
+}
+
+void is31fl3737_update_led_control_registers(uint8_t addr, uint8_t index) {
+ if (g_led_control_registers_update_required[index]) {
+ // Firstly we need to unlock the command register and select PG0
+ is31fl3737_write_register(addr, IS31FL3737_REG_COMMAND_WRITE_LOCK, IS31FL3737_COMMAND_WRITE_LOCK_MAGIC);
+ is31fl3737_write_register(addr, IS31FL3737_REG_COMMAND, IS31FL3737_COMMAND_LED_CONTROL);
+ for (int i = 0; i < IS31FL3737_LED_CONTROL_REGISTER_COUNT; i++) {
+ is31fl3737_write_register(addr, i, g_led_control_registers[index][i]);
+ }
+ g_led_control_registers_update_required[index] = false;
+ }
+}
+
+void is31fl3737_flush(void) {
+ is31fl3737_update_pwm_buffers(IS31FL3737_I2C_ADDRESS_1, 0);
+#if defined(IS31FL3737_I2C_ADDRESS_2)
+ is31fl3737_update_pwm_buffers(IS31FL3737_I2C_ADDRESS_2, 1);
+# if defined(IS31FL3737_I2C_ADDRESS_3)
+ is31fl3737_update_pwm_buffers(IS31FL3737_I2C_ADDRESS_3, 2);
+# if defined(IS31FL3737_I2C_ADDRESS_4)
+ is31fl3737_update_pwm_buffers(IS31FL3737_I2C_ADDRESS_4, 3);
+# endif
+# endif
+#endif
+}
diff --git a/drivers/led/issi/is31fl3737-simple.h b/drivers/led/issi/is31fl3737-simple.h
new file mode 100644
index 0000000000..2658702b1b
--- /dev/null
+++ b/drivers/led/issi/is31fl3737-simple.h
@@ -0,0 +1,299 @@
+/* Copyright 2017 Jason Williams
+ * Copyright 2018 Jack Humbert
+ * Copyright 2018 Yiancar
+ * Copyright 2021 Doni Crosby
+ *
+ * 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 <stdint.h>
+#include <stdbool.h>
+#include "progmem.h"
+#include "util.h"
+
+// ======== DEPRECATED DEFINES - DO NOT USE ========
+#ifdef ISSI_TIMEOUT
+# define IS31FL3737_I2C_TIMEOUT ISSI_TIMEOUT
+#endif
+#ifdef ISSI_PERSISTENCE
+# define IS31FL3737_I2C_PERSISTENCE ISSI_PERSISTENCE
+#endif
+#ifdef ISSI_PWM_FREQUENCY
+# define IS31FL3737_PWM_FREQUENCY ISSI_PWM_FREQUENCY
+#endif
+#ifdef ISSI_SWPULLUP
+# define IS31FL3737_SW_PULLUP ISSI_SWPULLUP
+#endif
+#ifdef ISSI_CSPULLUP
+# define IS31FL3737_CS_PULLDOWN ISSI_CSPULLUP
+#endif
+#ifdef ISSI_GLOBALCURRENT
+# define IS31FL3737_GLOBAL_CURRENT ISSI_GLOBALCURRENT
+#endif
+
+#define PUR_0R IS31FL3737_PUR_0_OHM
+#define PUR_05KR IS31FL3737_PUR_0K5_OHM
+#define PUR_1KR IS31FL3737_PUR_1K_OHM
+#define PUR_2KR IS31FL3737_PUR_2K_OHM
+#define PUR_4KR IS31FL3737_PUR_4K_OHM
+#define PUR_8KR IS31FL3737_PUR_8K_OHM
+#define PUR_16KR IS31FL3737_PUR_16K_OHM
+#define PUR_32KR IS31FL3737_PUR_32K_OHM
+// ========
+
+#define IS31FL3737_REG_INTERRUPT_MASK 0xF0
+#define IS31FL3737_REG_INTERRUPT_STATUS 0xF1
+
+#define IS31FL3737_REG_COMMAND 0xFD
+
+#define IS31FL3737_COMMAND_LED_CONTROL 0x00
+#define IS31FL3737_COMMAND_PWM 0x01
+#define IS31FL3737_COMMAND_AUTO_BREATH 0x02
+#define IS31FL3737_COMMAND_FUNCTION 0x03
+
+#define IS31FL3737_FUNCTION_REG_CONFIGURATION 0x00
+#define IS31FL3737_FUNCTION_REG_GLOBAL_CURRENT 0x01
+#define IS31FL3737_FUNCTION_REG_SW_PULLUP 0x0F
+#define IS31FL3737_FUNCTION_REG_CS_PULLDOWN 0x10
+#define IS31FL3737_FUNCTION_REG_RESET 0x11
+
+#define IS31FL3737_REG_COMMAND_WRITE_LOCK 0xFE
+#define IS31FL3737_COMMAND_WRITE_LOCK_MAGIC 0xC5
+
+#define IS31FL3737_I2C_ADDRESS_GND 0x50
+#define IS31FL3737_I2C_ADDRESS_SCL 0x55
+#define IS31FL3737_I2C_ADDRESS_SDA 0x5A
+#define IS31FL3737_I2C_ADDRESS_VCC 0x5F
+
+#if defined(LED_MATRIX_IS31FL3737)
+# define IS31FL3737_LED_COUNT LED_MATRIX_LED_COUNT
+#endif
+
+#if defined(IS31FL3737_I2C_ADDRESS_4)
+# define IS31FL3737_DRIVER_COUNT 4
+#elif defined(IS31FL3737_I2C_ADDRESS_3)
+# define IS31FL3737_DRIVER_COUNT 3
+#elif defined(IS31FL3737_I2C_ADDRESS_2)
+# define IS31FL3737_DRIVER_COUNT 2
+#elif defined(IS31FL3737_I2C_ADDRESS_1)
+# define IS31FL3737_DRIVER_COUNT 1
+#endif
+
+typedef struct is31fl3737_led_t {
+ uint8_t driver : 2;
+ uint8_t v;
+} PACKED is31fl3737_led_t;
+
+extern const is31fl3737_led_t PROGMEM g_is31fl3737_leds[IS31FL3737_LED_COUNT];
+
+void is31fl3737_init_drivers(void);
+void is31fl3737_init(uint8_t addr);
+void is31fl3737_write_register(uint8_t addr, uint8_t reg, uint8_t data);
+void is31fl3737_write_pwm_buffer(uint8_t addr, uint8_t *pwm_buffer);
+
+void is31fl3737_set_value(int index, uint8_t value);
+void is31fl3737_set_value_all(uint8_t value);
+
+void is31fl3737_set_led_control_register(uint8_t index, bool value);
+
+// This should not be called from an interrupt
+// (eg. from a timer interrupt).
+// Call this while idle (in between matrix scans).
+// If the buffer is dirty, it will update the driver with the buffer.
+void is31fl3737_update_pwm_buffers(uint8_t addr, uint8_t index);
+void is31fl3737_update_led_control_registers(uint8_t addr, uint8_t index);
+
+void is31fl3737_flush(void);
+
+#define IS31FL3737_PDR_0_OHM 0b000 // No pull-down resistor
+#define IS31FL3737_PDR_0K5_OHM 0b001 // 0.5 kOhm resistor
+#define IS31FL3737_PDR_1K_OHM 0b010 // 1 kOhm resistor
+#define IS31FL3737_PDR_2K_OHM 0b011 // 2 kOhm resistor
+#define IS31FL3737_PDR_4K_OHM 0b100 // 4 kOhm resistor
+#define IS31FL3737_PDR_8K_OHM 0b101 // 8 kOhm resistor
+#define IS31FL3737_PDR_16K_OHM 0b110 // 16 kOhm resistor
+#define IS31FL3737_PDR_32K_OHM 0b111 // 32 kOhm resistor
+
+#define IS31FL3737_PUR_0_OHM 0b000 // No pull-up resistor
+#define IS31FL3737_PUR_0K5_OHM 0b001 // 0.5 kOhm resistor
+#define IS31FL3737_PUR_1K_OHM 0b010 // 1 kOhm resistor
+#define IS31FL3737_PUR_2K_OHM 0b011 // 2 kOhm resistor
+#define IS31FL3737_PUR_4K_OHM 0b100 // 4 kOhm resistor
+#define IS31FL3737_PUR_8K_OHM 0b101 // 8 kOhm resistor
+#define IS31FL3737_PUR_16K_OHM 0b110 // 16 kOhm resistor
+#define IS31FL3737_PUR_32K_OHM 0b111 // 32 kOhm resistor
+
+#define IS31FL3737_PWM_FREQUENCY_8K4_HZ 0b000
+#define IS31FL3737_PWM_FREQUENCY_4K2_HZ 0b001
+#define IS31FL3737_PWM_FREQUENCY_26K7_HZ 0b010
+#define IS31FL3737_PWM_FREQUENCY_2K1_HZ 0b011
+#define IS31FL3737_PWM_FREQUENCY_1K05_HZ 0b100
+
+#define A_1 0x00
+#define A_2 0x01
+#define A_3 0x02
+#define A_4 0x03
+#define A_5 0x04
+#define A_6 0x05
+#define A_7 0x08
+#define A_8 0x09
+#define A_9 0x0A
+#define A_10 0x0B
+#define A_11 0x0C
+#define A_12 0x0D
+
+#define B_1 0x10
+#define B_2 0x11
+#define B_3 0x12
+#define B_4 0x13
+#define B_5 0x14
+#define B_6 0x15
+#define B_7 0x18
+#define B_8 0x19
+#define B_9 0x1A
+#define B_10 0x1B
+#define B_11 0x1C
+#define B_12 0x1D
+
+#define C_1 0x20
+#define C_2 0x21
+#define C_3 0x22
+#define C_4 0x23
+#define C_5 0x24
+#define C_6 0x25
+#define C_7 0x28
+#define C_8 0x29
+#define C_9 0x2A
+#define C_10 0x2B
+#define C_11 0x2C
+#define C_12 0x2D
+
+#define D_1 0x30
+#define D_2 0x31
+#define D_3 0x32
+#define D_4 0x33
+#define D_5 0x34
+#define D_6 0x35
+#define D_7 0x38
+#define D_8 0x39
+#define D_9 0x3A
+#define D_10 0x3B
+#define D_11 0x3C
+#define D_12 0x3D
+
+#define E_1 0x40
+#define E_2 0x41
+#define E_3 0x42
+#define E_4 0x43
+#define E_5 0x44
+#define E_6 0x45
+#define E_7 0x48
+#define E_8 0x49
+#define E_9 0x4A
+#define E_10 0x4B
+#define E_11 0x4C
+#define E_12 0x4D
+
+#define F_1 0x50
+#define F_2 0x51
+#define F_3 0x52
+#define F_4 0x53
+#define F_5 0x54
+#define F_6 0x55
+#define F_7 0x58
+#define F_8 0x59
+#define F_9 0x5A
+#define F_10 0x5B
+#define F_11 0x5C
+#define F_12 0x5D
+
+#define G_1 0x60
+#define G_2 0x61
+#define G_3 0x62
+#define G_4 0x63
+#define G_5 0x64
+#define G_6 0x65
+#define G_7 0x68
+#define G_8 0x69
+#define G_9 0x6A
+#define G_10 0x6B
+#define G_11 0x6C
+#define G_12 0x6D
+
+#define H_1 0x70
+#define H_2 0x71
+#define H_3 0x72
+#define H_4 0x73
+#define H_5 0x74
+#define H_6 0x75
+#define H_7 0x78
+#define H_8 0x79
+#define H_9 0x7A
+#define H_10 0x7B
+#define H_11 0x7C
+#define H_12 0x7D
+
+#define I_1 0x80
+#define I_2 0x81
+#define I_3 0x82
+#define I_4 0x83
+#define I_5 0x84
+#define I_6 0x85
+#define I_7 0x88
+#define I_8 0x89
+#define I_9 0x8A
+#define I_10 0x8B
+#define I_11 0x8C
+#define I_12 0x8D
+
+#define J_1 0x90
+#define J_2 0x91
+#define J_3 0x92
+#define J_4 0x93
+#define J_5 0x94
+#define J_6 0x95
+#define J_7 0x98
+#define J_8 0x99
+#define J_9 0x9A
+#define J_10 0x9B
+#define J_11 0x9C
+#define J_12 0x9D
+
+#define K_1 0xA0
+#define K_2 0xA1
+#define K_3 0xA2
+#define K_4 0xA3
+#define K_5 0xA4
+#define K_6 0xA5
+#define K_7 0xA8
+#define K_8 0xA9
+#define K_9 0xAA
+#define K_10 0xAB
+#define K_11 0xAC
+#define K_12 0xAD
+
+#define L_1 0xB0
+#define L_2 0xB1
+#define L_3 0xB2
+#define L_4 0xB3
+#define L_5 0xB4
+#define L_6 0xB5
+#define L_7 0xB8
+#define L_8 0xB9
+#define L_9 0xBA
+#define L_10 0xBB
+#define L_11 0xBC
+#define L_12 0xBD
diff --git a/drivers/led/issi/is31fl3737.c b/drivers/led/issi/is31fl3737.c
index 947c0a1d1a..a458431952 100644
--- a/drivers/led/issi/is31fl3737.c
+++ b/drivers/led/issi/is31fl3737.c
@@ -18,59 +18,35 @@
*/
#include "is31fl3737.h"
+#include <string.h>
#include "i2c_master.h"
#include "wait.h"
-// This is a 7-bit address, that gets left-shifted and bit 0
-// set to 0 for write, 1 for read (as per I2C protocol)
-// The address will vary depending on your wiring:
-// 00 <-> GND
-// 01 <-> SCL
-// 10 <-> SDA
-// 11 <-> VCC
-// ADDR1 represents A1:A0 of the 7-bit address.
-// ADDR2 represents A3:A2 of the 7-bit address.
-// The result is: 0b101(ADDR2)(ADDR1)
-#define ISSI_ADDR_DEFAULT 0x50
-
-#define ISSI_COMMANDREGISTER 0xFD
-#define ISSI_COMMANDREGISTER_WRITELOCK 0xFE
-#define ISSI_INTERRUPTMASKREGISTER 0xF0
-#define ISSI_INTERRUPTSTATUSREGISTER 0xF1
-
-#define ISSI_PAGE_LEDCONTROL 0x00 // PG0
-#define ISSI_PAGE_PWM 0x01 // PG1
-#define ISSI_PAGE_AUTOBREATH 0x02 // PG2
-#define ISSI_PAGE_FUNCTION 0x03 // PG3
-
-#define ISSI_REG_CONFIGURATION 0x00 // PG3
-#define ISSI_REG_GLOBALCURRENT 0x01 // PG3
-#define ISSI_REG_RESET 0x11 // PG3
-#define ISSI_REG_SWPULLUP 0x0F // PG3
-#define ISSI_REG_CSPULLUP 0x10 // PG3
-
-#ifndef ISSI_TIMEOUT
-# define ISSI_TIMEOUT 100
+#define IS31FL3737_PWM_REGISTER_COUNT 192 // actually 144
+#define IS31FL3737_LED_CONTROL_REGISTER_COUNT 24
+
+#ifndef IS31FL3737_I2C_TIMEOUT
+# define IS31FL3737_I2C_TIMEOUT 100
#endif
-#ifndef ISSI_PERSISTENCE
-# define ISSI_PERSISTENCE 0
+#ifndef IS31FL3737_I2C_PERSISTENCE
+# define IS31FL3737_I2C_PERSISTENCE 0
#endif
-#ifndef ISSI_PWM_FREQUENCY
-# define ISSI_PWM_FREQUENCY 0b000 // PFS - IS31FL3737B only
+#ifndef IS31FL3737_PWM_FREQUENCY
+# define IS31FL3737_PWM_FREQUENCY IS31FL3737_PWM_FREQUENCY_8K4_HZ // PFS - IS31FL3737B only
#endif
-#ifndef ISSI_SWPULLUP
-# define ISSI_SWPULLUP PUR_0R
+#ifndef IS31FL3737_SW_PULLUP
+# define IS31FL3737_SW_PULLUP IS31FL3737_PUR_0_OHM
#endif
-#ifndef ISSI_CSPULLUP
-# define ISSI_CSPULLUP PUR_0R
+#ifndef IS31FL3737_CS_PULLDONW
+# define IS31FL3737_CS_PULLDOWN IS31FL3737_PDR_0_OHM
#endif
-#ifndef ISSI_GLOBALCURRENT
-# define ISSI_GLOBALCURRENT 0xFF
+#ifndef IS31FL3737_GLOBAL_CURRENT
+# define IS31FL3737_GLOBAL_CURRENT 0xFF
#endif
// Transfer buffer for TWITransmitData()
@@ -83,22 +59,22 @@ uint8_t g_twi_transfer_buffer[20];
// buffers and the transfers in is31fl3737_write_pwm_buffer() but it's
// probably not worth the extra complexity.
-uint8_t g_pwm_buffer[DRIVER_COUNT][192];
-bool g_pwm_buffer_update_required[DRIVER_COUNT] = {false};
+uint8_t g_pwm_buffer[IS31FL3737_DRIVER_COUNT][IS31FL3737_PWM_REGISTER_COUNT];
+bool g_pwm_buffer_update_required[IS31FL3737_DRIVER_COUNT] = {false};
-uint8_t g_led_control_registers[DRIVER_COUNT][24] = {0};
-bool g_led_control_registers_update_required[DRIVER_COUNT] = {false};
+uint8_t g_led_control_registers[IS31FL3737_DRIVER_COUNT][IS31FL3737_LED_CONTROL_REGISTER_COUNT] = {0};
+bool g_led_control_registers_update_required[IS31FL3737_DRIVER_COUNT] = {false};
void is31fl3737_write_register(uint8_t addr, uint8_t reg, uint8_t data) {
g_twi_transfer_buffer[0] = reg;
g_twi_transfer_buffer[1] = data;
-#if ISSI_PERSISTENCE > 0
- for (uint8_t i = 0; i < ISSI_PERSISTENCE; i++) {
- if (i2c_transmit(addr << 1, g_twi_transfer_buffer, 2, ISSI_TIMEOUT) == 0) break;
+#if IS31FL3737_I2C_PERSISTENCE > 0
+ for (uint8_t i = 0; i < IS31FL3737_I2C_PERSISTENCE; i++) {
+ if (i2c_transmit(addr << 1, g_twi_transfer_buffer, 2, IS31FL3737_I2C_TIMEOUT) == 0) break;
}
#else
- i2c_transmit(addr << 1, g_twi_transfer_buffer, 2, ISSI_TIMEOUT);
+ i2c_transmit(addr << 1, g_twi_transfer_buffer, 2, IS31FL3737_I2C_TIMEOUT);
#endif
}
@@ -109,23 +85,53 @@ void is31fl3737_write_pwm_buffer(uint8_t addr, uint8_t *pwm_buffer) {
// g_twi_transfer_buffer[] is 20 bytes
// iterate over the pwm_buffer contents at 16 byte intervals
- for (int i = 0; i < 192; i += 16) {
+ for (int i = 0; i < IS31FL3737_PWM_REGISTER_COUNT; i += 16) {
g_twi_transfer_buffer[0] = i;
// copy the data from i to i+15
// device will auto-increment register for data after the first byte
// thus this sets registers 0x00-0x0F, 0x10-0x1F, etc. in one transfer
memcpy(g_twi_transfer_buffer + 1, pwm_buffer + i, 16);
-#if ISSI_PERSISTENCE > 0
- for (uint8_t i = 0; i < ISSI_PERSISTENCE; i++) {
- if (i2c_transmit(addr << 1, g_twi_transfer_buffer, 17, ISSI_TIMEOUT) == 0) break;
+#if IS31FL3737_I2C_PERSISTENCE > 0
+ for (uint8_t i = 0; i < IS31FL3737_I2C_PERSISTENCE; i++) {
+ if (i2c_transmit(addr << 1, g_twi_transfer_buffer, 17, IS31FL3737_I2C_TIMEOUT) == 0) break;
}
#else
- i2c_transmit(addr << 1, g_twi_transfer_buffer, 17, ISSI_TIMEOUT);
+ i2c_transmit(addr << 1, g_twi_transfer_buffer, 17, IS31FL3737_I2C_TIMEOUT);
#endif
}
}
+void is31fl3737_init_drivers(void) {
+ i2c_init();
+
+ is31fl3737_init(IS31FL3737_I2C_ADDRESS_1);
+#if defined(IS31FL3737_I2C_ADDRESS_2)
+ is31fl3737_init(IS31FL3737_I2C_ADDRESS_2);
+# if defined(IS31FL3737_I2C_ADDRESS_3)
+ is31fl3737_init(IS31FL3737_I2C_ADDRESS_3);
+# if defined(IS31FL3737_I2C_ADDRESS_4)
+ is31fl3737_init(IS31FL3737_I2C_ADDRESS_4);
+# endif
+# endif
+#endif
+
+ for (int i = 0; i < IS31FL3737_LED_COUNT; i++) {
+ is31fl3737_set_led_control_register(i, true, true, true);
+ }
+
+ is31fl3737_update_led_control_registers(IS31FL3737_I2C_ADDRESS_1, 0);
+#if defined(IS31FL3737_I2C_ADDRESS_2)
+ is31fl3737_update_led_control_registers(IS31FL3737_I2C_ADDRESS_2, 1);
+# if defined(IS31FL3737_I2C_ADDRESS_3)
+ is31fl3737_update_led_control_registers(IS31FL3737_I2C_ADDRESS_3, 2);
+# if defined(IS31FL3737_I2C_ADDRESS_4)
+ is31fl3737_update_led_control_registers(IS31FL3737_I2C_ADDRESS_4, 3);
+# endif
+# endif
+#endif
+}
+
void is31fl3737_init(uint8_t addr) {
// In order to avoid the LEDs being driven with garbage data
// in the LED driver's PWM registers, shutdown is enabled last.
@@ -133,48 +139,48 @@ void is31fl3737_init(uint8_t addr) {
// then disable software shutdown.
// Unlock the command register.
- is31fl3737_write_register(addr, ISSI_COMMANDREGISTER_WRITELOCK, 0xC5);
+ is31fl3737_write_register(addr, IS31FL3737_REG_COMMAND_WRITE_LOCK, IS31FL3737_COMMAND_WRITE_LOCK_MAGIC);
// Select PG0
- is31fl3737_write_register(addr, ISSI_COMMANDREGISTER, ISSI_PAGE_LEDCONTROL);
+ is31fl3737_write_register(addr, IS31FL3737_REG_COMMAND, IS31FL3737_COMMAND_LED_CONTROL);
// Turn off all LEDs.
- for (int i = 0x00; i <= 0x17; i++) {
+ for (int i = 0; i < IS31FL3737_LED_CONTROL_REGISTER_COUNT; i++) {
is31fl3737_write_register(addr, i, 0x00);
}
// Unlock the command register.
- is31fl3737_write_register(addr, ISSI_COMMANDREGISTER_WRITELOCK, 0xC5);
+ is31fl3737_write_register(addr, IS31FL3737_REG_COMMAND_WRITE_LOCK, IS31FL3737_COMMAND_WRITE_LOCK_MAGIC);
// Select PG1
- is31fl3737_write_register(addr, ISSI_COMMANDREGISTER, ISSI_PAGE_PWM);
+ is31fl3737_write_register(addr, IS31FL3737_REG_COMMAND, IS31FL3737_COMMAND_PWM);
// Set PWM on all LEDs to 0
// No need to setup Breath registers to PWM as that is the default.
- for (int i = 0x00; i <= 0xBF; i++) {
+ for (int i = 0; i < IS31FL3737_PWM_REGISTER_COUNT; i++) {
is31fl3737_write_register(addr, i, 0x00);
}
// Unlock the command register.
- is31fl3737_write_register(addr, ISSI_COMMANDREGISTER_WRITELOCK, 0xC5);
+ is31fl3737_write_register(addr, IS31FL3737_REG_COMMAND_WRITE_LOCK, IS31FL3737_COMMAND_WRITE_LOCK_MAGIC);
// Select PG3
- is31fl3737_write_register(addr, ISSI_COMMANDREGISTER, ISSI_PAGE_FUNCTION);
+ is31fl3737_write_register(addr, IS31FL3737_REG_COMMAND, IS31FL3737_COMMAND_FUNCTION);
// Set de-ghost pull-up resistors (SWx)
- is31fl3737_write_register(addr, ISSI_REG_SWPULLUP, ISSI_SWPULLUP);
+ is31fl3737_write_register(addr, IS31FL3737_FUNCTION_REG_SW_PULLUP, IS31FL3737_SW_PULLUP);
// Set de-ghost pull-down resistors (CSx)
- is31fl3737_write_register(addr, ISSI_REG_CSPULLUP, ISSI_CSPULLUP);
+ is31fl3737_write_register(addr, IS31FL3737_FUNCTION_REG_CS_PULLDOWN, IS31FL3737_CS_PULLDOWN);
// Set global current to maximum.
- is31fl3737_write_register(addr, ISSI_REG_GLOBALCURRENT, ISSI_GLOBALCURRENT);
+ is31fl3737_write_register(addr, IS31FL3737_FUNCTION_REG_GLOBAL_CURRENT, IS31FL3737_GLOBAL_CURRENT);
// Disable software shutdown.
- is31fl3737_write_register(addr, ISSI_REG_CONFIGURATION, ((ISSI_PWM_FREQUENCY & 0b111) << 3) | 0x01);
+ is31fl3737_write_register(addr, IS31FL3737_FUNCTION_REG_CONFIGURATION, ((IS31FL3737_PWM_FREQUENCY & 0b111) << 3) | 0x01);
// Wait 10ms to ensure the device has woken up.
wait_ms(10);
}
void is31fl3737_set_color(int index, uint8_t red, uint8_t green, uint8_t blue) {
- is31_led led;
- if (index >= 0 && index < RGB_MATRIX_LED_COUNT) {
- memcpy_P(&led, (&g_is31_leds[index]), sizeof(led));
+ is31fl3737_led_t led;
+ if (index >= 0 && index < IS31FL3737_LED_COUNT) {
+ memcpy_P(&led, (&g_is31fl3737_leds[index]), sizeof(led));
if (g_pwm_buffer[led.driver][led.r] == red && g_pwm_buffer[led.driver][led.g] == green && g_pwm_buffer[led.driver][led.b] == blue) {
return;
@@ -187,14 +193,14 @@ void is31fl3737_set_color(int index, uint8_t red, uint8_t green, uint8_t blue) {
}
void is31fl3737_set_color_all(uint8_t red, uint8_t green, uint8_t blue) {
- for (int i = 0; i < RGB_MATRIX_LED_COUNT; i++) {
+ for (int i = 0; i < IS31FL3737_LED_COUNT; i++) {
is31fl3737_set_color(i, red, green, blue);
}
}
void is31fl3737_set_led_control_register(uint8_t index, bool red, bool green, bool blue) {
- is31_led led;
- memcpy_P(&led, (&g_is31_leds[index]), sizeof(led));
+ is31fl3737_led_t led;
+ memcpy_P(&led, (&g_is31fl3737_leds[index]), sizeof(led));
uint8_t control_register_r = led.r / 8;
uint8_t control_register_g = led.g / 8;
@@ -225,22 +231,35 @@ void is31fl3737_set_led_control_register(uint8_t index, bool red, bool green, bo
void is31fl3737_update_pwm_buffers(uint8_t addr, uint8_t index) {
if (g_pwm_buffer_update_required[index]) {
// Firstly we need to unlock the command register and select PG1
- is31fl3737_write_register(addr, ISSI_COMMANDREGISTER_WRITELOCK, 0xC5);
- is31fl3737_write_register(addr, ISSI_COMMANDREGISTER, ISSI_PAGE_PWM);
+ is31fl3737_write_register(addr, IS31FL3737_REG_COMMAND_WRITE_LOCK, IS31FL3737_COMMAND_WRITE_LOCK_MAGIC);
+ is31fl3737_write_register(addr, IS31FL3737_REG_COMMAND, IS31FL3737_COMMAND_PWM);
is31fl3737_write_pwm_buffer(addr, g_pwm_buffer[index]);
+ g_pwm_buffer_update_required[index] = false;
}
- g_pwm_buffer_update_required[index] = false;
}
void is31fl3737_update_led_control_registers(uint8_t addr, uint8_t index) {
if (g_led_control_registers_update_required[index]) {
// Firstly we need to unlock the command register and select PG0
- is31fl3737_write_register(addr, ISSI_COMMANDREGISTER_WRITELOCK, 0xC5);
- is31fl3737_write_register(addr, ISSI_COMMANDREGISTER, ISSI_PAGE_LEDCONTROL);
- for (int i = 0; i < 24; i++) {
+ is31fl3737_write_register(addr, IS31FL3737_REG_COMMAND_WRITE_LOCK, IS31FL3737_COMMAND_WRITE_LOCK_MAGIC);
+ is31fl3737_write_register(addr, IS31FL3737_REG_COMMAND, IS31FL3737_COMMAND_LED_CONTROL);
+ for (int i = 0; i < IS31FL3737_LED_CONTROL_REGISTER_COUNT; i++) {
is31fl3737_write_register(addr, i, g_led_control_registers[index][i]);
}
+ g_led_control_registers_update_required[index] = false;
}
- g_led_control_registers_update_required[index] = false;
+}
+
+void is31fl3737_flush(void) {
+ is31fl3737_update_pwm_buffers(IS31FL3737_I2C_ADDRESS_1, 0);
+#if defined(IS31FL3737_I2C_ADDRESS_2)
+ is31fl3737_update_pwm_buffers(IS31FL3737_I2C_ADDRESS_2, 1);
+# if defined(IS31FL3737_I2C_ADDRESS_3)
+ is31fl3737_update_pwm_buffers(IS31FL3737_I2C_ADDRESS_3, 2);
+# if defined(IS31FL3737_I2C_ADDRESS_4)
+ is31fl3737_update_pwm_buffers(IS31FL3737_I2C_ADDRESS_4, 3);
+# endif
+# endif
+#endif
}
diff --git a/drivers/led/issi/is31fl3737.h b/drivers/led/issi/is31fl3737.h
index e7fc97872c..8de3bf4ef5 100644
--- a/drivers/led/issi/is31fl3737.h
+++ b/drivers/led/issi/is31fl3737.h
@@ -21,18 +21,102 @@
#include <stdint.h>
#include <stdbool.h>
-#include <string.h>
#include "progmem.h"
+#include "util.h"
-typedef struct is31_led {
+// ======== DEPRECATED DEFINES - DO NOT USE ========
+#ifdef DRIVER_ADDR_1
+# define IS31FL3737_I2C_ADDRESS_1 DRIVER_ADDR_1
+#endif
+#ifdef DRIVER_ADDR_2
+# define IS31FL3737_I2C_ADDRESS_2 DRIVER_ADDR_2
+#endif
+#ifdef DRIVER_ADDR_3
+# define IS31FL3737_I2C_ADDRESS_3 DRIVER_ADDR_3
+#endif
+#ifdef DRIVER_ADDR_4
+# define IS31FL3737_I2C_ADDRESS_4 DRIVER_ADDR_4
+#endif
+#ifdef ISSI_TIMEOUT
+# define IS31FL3737_I2C_TIMEOUT ISSI_TIMEOUT
+#endif
+#ifdef ISSI_PERSISTENCE
+# define IS31FL3737_I2C_PERSISTENCE ISSI_PERSISTENCE
+#endif
+#ifdef ISSI_PWM_FREQUENCY
+# define IS31FL3737_PWM_FREQUENCY ISSI_PWM_FREQUENCY
+#endif
+#ifdef ISSI_SWPULLUP
+# define IS31FL3737_SW_PULLUP ISSI_SWPULLUP
+#endif
+#ifdef ISSI_CSPULLUP
+# define IS31FL3737_CS_PULLDOWN ISSI_CSPULLUP
+#endif
+#ifdef ISSI_GLOBALCURRENT
+# define IS31FL3737_GLOBAL_CURRENT ISSI_GLOBALCURRENT
+#endif
+
+#define is31_led is31fl3737_led_t
+#define g_is31_leds g_is31fl3737_leds
+
+#define PUR_0R IS31FL3737_PUR_0_OHM
+#define PUR_05KR IS31FL3737_PUR_0K5_OHM
+#define PUR_1KR IS31FL3737_PUR_1K_OHM
+#define PUR_2KR IS31FL3737_PUR_2K_OHM
+#define PUR_4KR IS31FL3737_PUR_4K_OHM
+#define PUR_8KR IS31FL3737_PUR_8K_OHM
+#define PUR_16KR IS31FL3737_PUR_16K_OHM
+#define PUR_32KR IS31FL3737_PUR_32K_OHM
+// ========
+
+#define IS31FL3737_REG_INTERRUPT_MASK 0xF0
+#define IS31FL3737_REG_INTERRUPT_STATUS 0xF1
+
+#define IS31FL3737_REG_COMMAND 0xFD
+
+#define IS31FL3737_COMMAND_LED_CONTROL 0x00
+#define IS31FL3737_COMMAND_PWM 0x01
+#define IS31FL3737_COMMAND_AUTO_BREATH 0x02
+#define IS31FL3737_COMMAND_FUNCTION 0x03
+
+#define IS31FL3737_FUNCTION_REG_CONFIGURATION 0x00
+#define IS31FL3737_FUNCTION_REG_GLOBAL_CURRENT 0x01
+#define IS31FL3737_FUNCTION_REG_SW_PULLUP 0x0F
+#define IS31FL3737_FUNCTION_REG_CS_PULLDOWN 0x10
+#define IS31FL3737_FUNCTION_REG_RESET 0x11
+
+#define IS31FL3737_REG_COMMAND_WRITE_LOCK 0xFE
+#define IS31FL3737_COMMAND_WRITE_LOCK_MAGIC 0xC5
+
+#define IS31FL3737_I2C_ADDRESS_GND 0x50
+#define IS31FL3737_I2C_ADDRESS_SCL 0x55
+#define IS31FL3737_I2C_ADDRESS_SDA 0x5A
+#define IS31FL3737_I2C_ADDRESS_VCC 0x5F
+
+#if defined(RGB_MATRIX_IS31FL3737)
+# define IS31FL3737_LED_COUNT RGB_MATRIX_LED_COUNT
+#endif
+
+#if defined(IS31FL3737_I2C_ADDRESS_4)
+# define IS31FL3737_DRIVER_COUNT 4
+#elif defined(IS31FL3737_I2C_ADDRESS_3)
+# define IS31FL3737_DRIVER_COUNT 3
+#elif defined(IS31FL3737_I2C_ADDRESS_2)
+# define IS31FL3737_DRIVER_COUNT 2
+#elif defined(IS31FL3737_I2C_ADDRESS_1)
+# define IS31FL3737_DRIVER_COUNT 1
+#endif
+
+typedef struct is31fl3737_led_t {
uint8_t driver : 2;
uint8_t r;
uint8_t g;
uint8_t b;
-} __attribute__((packed)) is31_led;
+} PACKED is31fl3737_led_t;
-extern const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT];
+extern const is31fl3737_led_t PROGMEM g_is31fl3737_leds[IS31FL3737_LED_COUNT];
+void is31fl3737_init_drivers(void);
void is31fl3737_init(uint8_t addr);
void is31fl3737_write_register(uint8_t addr, uint8_t reg, uint8_t data);
void is31fl3737_write_pwm_buffer(uint8_t addr, uint8_t *pwm_buffer);
@@ -49,14 +133,31 @@ void is31fl3737_set_led_control_register(uint8_t index, bool red, bool green, bo
void is31fl3737_update_pwm_buffers(uint8_t addr, uint8_t index);
void is31fl3737_update_led_control_registers(uint8_t addr, uint8_t index);
-#define PUR_0R 0x00 // No PUR resistor
-#define PUR_05KR 0x01 // 0.5k Ohm resistor in t_NOL
-#define PUR_1KR 0x02 // 1.0k Ohm resistor in t_NOL
-#define PUR_2KR 0x03 // 2.0k Ohm resistor in t_NOL
-#define PUR_4KR 0x04 // 4.0k Ohm resistor in t_NOL
-#define PUR_8KR 0x05 // 8.0k Ohm resistor in t_NOL
-#define PUR_16KR 0x06 // 16k Ohm resistor in t_NOL
-#define PUR_32KR 0x07 // 32k Ohm resistor in t_NOL
+void is31fl3737_flush(void);
+
+#define IS31FL3737_PDR_0_OHM 0b000 // No pull-down resistor
+#define IS31FL3737_PDR_0K5_OHM 0b001 // 0.5 kOhm resistor
+#define IS31FL3737_PDR_1K_OHM 0b010 // 1 kOhm resistor
+#define IS31FL3737_PDR_2K_OHM 0b011 // 2 kOhm resistor
+#define IS31FL3737_PDR_4K_OHM 0b100 // 4 kOhm resistor
+#define IS31FL3737_PDR_8K_OHM 0b101 // 8 kOhm resistor
+#define IS31FL3737_PDR_16K_OHM 0b110 // 16 kOhm resistor
+#define IS31FL3737_PDR_32K_OHM 0b111 // 32 kOhm resistor
+
+#define IS31FL3737_PUR_0_OHM 0b000 // No pull-up resistor
+#define IS31FL3737_PUR_0K5_OHM 0b001 // 0.5 kOhm resistor
+#define IS31FL3737_PUR_1K_OHM 0b010 // 1 kOhm resistor
+#define IS31FL3737_PUR_2K_OHM 0b011 // 2 kOhm resistor
+#define IS31FL3737_PUR_4K_OHM 0b100 // 4 kOhm resistor
+#define IS31FL3737_PUR_8K_OHM 0b101 // 8 kOhm resistor
+#define IS31FL3737_PUR_16K_OHM 0b110 // 16 kOhm resistor
+#define IS31FL3737_PUR_32K_OHM 0b111 // 32 kOhm resistor
+
+#define IS31FL3737_PWM_FREQUENCY_8K4_HZ 0b000
+#define IS31FL3737_PWM_FREQUENCY_4K2_HZ 0b001
+#define IS31FL3737_PWM_FREQUENCY_26K7_HZ 0b010
+#define IS31FL3737_PWM_FREQUENCY_2K1_HZ 0b011
+#define IS31FL3737_PWM_FREQUENCY_1K05_HZ 0b100
#define A_1 0x00
#define A_2 0x01
diff --git a/drivers/led/issi/is31fl3741-simple.c b/drivers/led/issi/is31fl3741-simple.c
new file mode 100644
index 0000000000..f7009853ba
--- /dev/null
+++ b/drivers/led/issi/is31fl3741-simple.c
@@ -0,0 +1,278 @@
+/* Copyright 2017 Jason Williams
+ * Copyright 2018 Jack Humbert
+ * Copyright 2018 Yiancar
+ * Copyright 2020 MelGeek
+ *
+ * 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 "is31fl3741-simple.h"
+#include <string.h>
+#include "i2c_master.h"
+#include "wait.h"
+
+#define IS31FL3741_PWM_REGISTER_COUNT 351
+
+#ifndef IS31FL3741_I2C_TIMEOUT
+# define IS31FL3741_I2C_TIMEOUT 100
+#endif
+
+#ifndef IS31FL3741_I2C_PERSISTENCE
+# define IS31FL3741_I2C_PERSISTENCE 0
+#endif
+
+#ifndef IS31FL3741_CONFIGURATION
+# define IS31FL3741_CONFIGURATION 0x01
+#endif
+
+#ifndef IS31FL3741_PWM_FREQUENCY
+# define IS31FL3741_PWM_FREQUENCY IS31FL3741_PWM_FREQUENCY_29K_HZ
+#endif
+
+#ifndef IS31FL3741_SW_PULLUP
+# define IS31FL3741_SW_PULLUP IS31FL3741_PUR_32K_OHM
+#endif
+
+#ifndef IS31FL3741_CS_PULLDOWN
+# define IS31FL3741_CS_PULLDOWN IS31FL3741_PDR_32K_OHM
+#endif
+
+#ifndef IS31FL3741_GLOBAL_CURRENT
+# define IS31FL3741_GLOBAL_CURRENT 0xFF
+#endif
+
+// Transfer buffer for TWITransmitData()
+uint8_t g_twi_transfer_buffer[20] = {0xFF};
+
+// These buffers match the IS31FL3741 and IS31FL3741A PWM registers.
+// The scaling buffers match the PG2 and PG3 LED On/Off registers.
+// Storing them like this is optimal for I2C transfers to the registers.
+// We could optimize this and take out the unused registers from these
+// buffers and the transfers in is31fl3741_write_pwm_buffer() but it's
+// probably not worth the extra complexity.
+uint8_t g_pwm_buffer[IS31FL3741_DRIVER_COUNT][IS31FL3741_PWM_REGISTER_COUNT];
+bool g_pwm_buffer_update_required[IS31FL3741_DRIVER_COUNT] = {false};
+bool g_scaling_registers_update_required[IS31FL3741_DRIVER_COUNT] = {false};
+
+uint8_t g_scaling_registers[IS31FL3741_DRIVER_COUNT][IS31FL3741_PWM_REGISTER_COUNT];
+
+void is31fl3741_write_register(uint8_t addr, uint8_t reg, uint8_t data) {
+ g_twi_transfer_buffer[0] = reg;
+ g_twi_transfer_buffer[1] = data;
+
+#if IS31FL3741_I2C_PERSISTENCE > 0
+ for (uint8_t i = 0; i < IS31FL3741_I2C_PERSISTENCE; i++) {
+ if (i2c_transmit(addr << 1, g_twi_transfer_buffer, 2, IS31FL3741_I2C_TIMEOUT) == 0) break;
+ }
+#else
+ i2c_transmit(addr << 1, g_twi_transfer_buffer, 2, IS31FL3741_I2C_TIMEOUT);
+#endif
+}
+
+bool is31fl3741_write_pwm_buffer(uint8_t addr, uint8_t *pwm_buffer) {
+ // Assume PG0 is already selected
+
+ for (int i = 0; i < 342; i += 18) {
+ if (i == 180) {
+ // unlock the command register and select PG1
+ is31fl3741_write_register(addr, IS31FL3741_REG_COMMAND_WRITE_LOCK, IS31FL3741_COMMAND_WRITE_LOCK_MAGIC);
+ is31fl3741_write_register(addr, IS31FL3741_REG_COMMAND, IS31FL3741_COMMAND_PWM_1);
+ }
+
+ g_twi_transfer_buffer[0] = i % 180;
+ memcpy(g_twi_transfer_buffer + 1, pwm_buffer + i, 18);
+
+#if IS31FL3741_I2C_PERSISTENCE > 0
+ for (uint8_t i = 0; i < IS31FL3741_I2C_PERSISTENCE; i++) {
+ if (i2c_transmit(addr << 1, g_twi_transfer_buffer, 19, IS31FL3741_I2C_TIMEOUT) != 0) {
+ return false;
+ }
+ }
+#else
+ if (i2c_transmit(addr << 1, g_twi_transfer_buffer, 19, IS31FL3741_I2C_TIMEOUT) != 0) {
+ return false;
+ }
+#endif
+ }
+
+ // transfer the left cause the total number is 351
+ g_twi_transfer_buffer[0] = 162;
+ memcpy(g_twi_transfer_buffer + 1, pwm_buffer + 342, 9);
+
+#if IS31FL3741_I2C_PERSISTENCE > 0
+ for (uint8_t i = 0; i < IS31FL3741_I2C_PERSISTENCE; i++) {
+ if (i2c_transmit(addr << 1, g_twi_transfer_buffer, 10, IS31FL3741_I2C_TIMEOUT) != 0) {
+ return false;
+ }
+ }
+#else
+ if (i2c_transmit(addr << 1, g_twi_transfer_buffer, 10, IS31FL3741_I2C_TIMEOUT) != 0) {
+ return false;
+ }
+#endif
+
+ return true;
+}
+
+void is31fl3741_init_drivers(void) {
+ i2c_init();
+
+ is31fl3741_init(IS31FL3741_I2C_ADDRESS_1);
+#if defined(IS31FL3741_I2C_ADDRESS_2)
+ is31fl3741_init(IS31FL3741_I2C_ADDRESS_2);
+# if defined(IS31FL3741_I2C_ADDRESS_3)
+ is31fl3741_init(IS31FL3741_I2C_ADDRESS_3);
+# if defined(IS31FL3741_I2C_ADDRESS_4)
+ is31fl3741_init(IS31FL3741_I2C_ADDRESS_4);
+# endif
+# endif
+#endif
+
+ for (int i = 0; i < IS31FL3741_LED_COUNT; i++) {
+ is31fl3741_set_led_control_register(i, true);
+ }
+
+ is31fl3741_update_led_control_registers(IS31FL3741_I2C_ADDRESS_1, 0);
+#if defined(IS31FL3741_I2C_ADDRESS_2)
+ is31fl3741_update_led_control_registers(IS31FL3741_I2C_ADDRESS_2, 1);
+# if defined(IS31FL3741_I2C_ADDRESS_3)
+ is31fl3741_update_led_control_registers(IS31FL3741_I2C_ADDRESS_3, 2);
+# if defined(IS31FL3741_I2C_ADDRESS_4)
+ is31fl3741_update_led_control_registers(IS31FL3741_I2C_ADDRESS_4, 3);
+# endif
+# endif
+#endif
+}
+
+void is31fl3741_init(uint8_t addr) {
+ // In order to avoid the LEDs being driven with garbage data
+ // in the LED driver's PWM registers, shutdown is enabled last.
+ // Set up the mode and other settings, clear the PWM registers,
+ // then disable software shutdown.
+ // Unlock the command register.
+
+ // Unlock the command register.
+ is31fl3741_write_register(addr, IS31FL3741_REG_COMMAND_WRITE_LOCK, IS31FL3741_COMMAND_WRITE_LOCK_MAGIC);
+
+ // Select PG4
+ is31fl3741_write_register(addr, IS31FL3741_REG_COMMAND, IS31FL3741_COMMAND_FUNCTION);
+
+ // Set to Normal operation
+ is31fl3741_write_register(addr, IS31FL3741_FUNCTION_REG_CONFIGURATION, IS31FL3741_CONFIGURATION);
+
+ // Set Golbal Current Control Register
+ is31fl3741_write_register(addr, IS31FL3741_FUNCTION_REG_GLOBAL_CURRENT, IS31FL3741_GLOBAL_CURRENT);
+ // Set Pull up & Down for SWx CSy
+ is31fl3741_write_register(addr, IS31FL3741_FUNCTION_REG_PULLDOWNUP, ((IS31FL3741_CS_PULLDOWN << 4) | IS31FL3741_SW_PULLUP));
+ // Set PWM frequency
+ is31fl3741_write_register(addr, IS31FL3741_FUNCTION_REG_PWM_FREQUENCY, (IS31FL3741_PWM_FREQUENCY & 0b1111));
+
+ // is31fl3741_update_led_scaling_registers(addr, 0xFF, 0xFF, 0xFF);
+
+ // Wait 10ms to ensure the device has woken up.
+ wait_ms(10);
+}
+
+void is31fl3741_set_value(int index, uint8_t value) {
+ is31fl3741_led_t led;
+ if (index >= 0 && index < IS31FL3741_LED_COUNT) {
+ memcpy_P(&led, (&g_is31fl3741_leds[index]), sizeof(led));
+
+ if (g_pwm_buffer[led.driver][led.v] == value) {
+ return;
+ }
+ g_pwm_buffer_update_required[led.driver] = true;
+ g_pwm_buffer[led.driver][led.v] = value;
+ }
+}
+
+void is31fl3741_set_value_all(uint8_t value) {
+ for (int i = 0; i < IS31FL3741_LED_COUNT; i++) {
+ is31fl3741_set_value(i, value);
+ }
+}
+
+void is31fl3741_set_led_control_register(uint8_t index, bool value) {
+ is31fl3741_led_t led;
+ memcpy_P(&led, (&g_is31fl3741_leds[index]), sizeof(led));
+
+ if (value) {
+ g_scaling_registers[led.driver][led.v] = 0xFF;
+ } else {
+ g_scaling_registers[led.driver][led.v] = 0x00;
+ }
+
+ g_scaling_registers_update_required[led.driver] = true;
+}
+
+void is31fl3741_update_pwm_buffers(uint8_t addr, uint8_t index) {
+ if (g_pwm_buffer_update_required[index]) {
+ // unlock the command register and select PG2
+ is31fl3741_write_register(addr, IS31FL3741_REG_COMMAND_WRITE_LOCK, IS31FL3741_COMMAND_WRITE_LOCK_MAGIC);
+ is31fl3741_write_register(addr, IS31FL3741_REG_COMMAND, IS31FL3741_COMMAND_PWM_0);
+
+ is31fl3741_write_pwm_buffer(addr, g_pwm_buffer[index]);
+ }
+
+ g_pwm_buffer_update_required[index] = false;
+}
+
+void is31fl3741_set_pwm_buffer(const is31fl3741_led_t *pled, uint8_t value) {
+ g_pwm_buffer[pled->driver][pled->v] = value;
+
+ g_pwm_buffer_update_required[pled->driver] = true;
+}
+
+void is31fl3741_update_led_control_registers(uint8_t addr, uint8_t index) {
+ if (g_scaling_registers_update_required[index]) {
+ // unlock the command register and select PG2
+ is31fl3741_write_register(addr, IS31FL3741_REG_COMMAND_WRITE_LOCK, IS31FL3741_COMMAND_WRITE_LOCK_MAGIC);
+ is31fl3741_write_register(addr, IS31FL3741_REG_COMMAND, IS31FL3741_COMMAND_SCALING_0);
+
+ // CS1_SW1 to CS30_SW6 are on PG2
+ for (int i = CS1_SW1; i <= CS30_SW6; ++i) {
+ is31fl3741_write_register(addr, i, g_scaling_registers[index][i]);
+ }
+
+ // unlock the command register and select PG3
+ is31fl3741_write_register(addr, IS31FL3741_REG_COMMAND_WRITE_LOCK, IS31FL3741_COMMAND_WRITE_LOCK_MAGIC);
+ is31fl3741_write_register(addr, IS31FL3741_REG_COMMAND, IS31FL3741_COMMAND_SCALING_1);
+
+ // CS1_SW7 to CS39_SW9 are on PG3
+ for (int i = CS1_SW7; i <= CS39_SW9; ++i) {
+ is31fl3741_write_register(addr, i - CS1_SW7, g_scaling_registers[index][i]);
+ }
+
+ g_scaling_registers_update_required[index] = false;
+ }
+}
+
+void is31fl3741_set_scaling_registers(const is31fl3741_led_t *pled, uint8_t value) {
+ g_scaling_registers[pled->driver][pled->v] = value;
+
+ g_scaling_registers_update_required[pled->driver] = true;
+}
+
+void is31fl3741_flush(void) {
+ is31fl3741_update_pwm_buffers(IS31FL3741_I2C_ADDRESS_1, 0);
+#if defined(IS31FL3741_I2C_ADDRESS_2)
+ is31fl3741_update_pwm_buffers(IS31FL3741_I2C_ADDRESS_2, 1);
+# if defined(IS31FL3741_I2C_ADDRESS_3)
+ is31fl3741_update_pwm_buffers(IS31FL3741_I2C_ADDRESS_3, 2);
+# if defined(IS31FL3741_I2C_ADDRESS_4)
+ is31fl3741_update_pwm_buffers(IS31FL3741_I2C_ADDRESS_4, 3);
+# endif
+# endif
+#endif
+}
diff --git a/drivers/led/issi/is31fl3741-simple.h b/drivers/led/issi/is31fl3741-simple.h
new file mode 100644
index 0000000000..34608a37e0
--- /dev/null
+++ b/drivers/led/issi/is31fl3741-simple.h
@@ -0,0 +1,516 @@
+/* Copyright 2017 Jason Williams
+ * Copyright 2018 Jack Humbert
+ * Copyright 2018 Yiancar
+ * Copyright 2020 MelGeek
+ *
+ * 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 <stdint.h>
+#include <stdbool.h>
+#include "progmem.h"
+#include "util.h"
+
+// ======== DEPRECATED DEFINES - DO NOT USE ========
+#ifdef ISSI_TIMEOUT
+# define IS31FL3741_I2C_TIMEOUT ISSI_TIMEOUT
+#endif
+#ifdef ISSI_PERSISTENCE
+# define IS31FL3741_I2C_PERSISTENCE ISSI_PERSISTENCE
+#endif
+#ifdef ISSI_CONFIGURATION
+# define IS31FL3741_CONFIGURATION ISSI_CONFIGURATION
+#endif
+#ifdef ISSI_SWPULLUP
+# define IS31FL3741_SW_PULLUP ISSI_SWPULLUP
+#endif
+#ifdef ISSI_CSPULLUP
+# define IS31FL3741_CS_PULLDOWN ISSI_CSPULLUP
+#endif
+#ifdef ISSI_GLOBALCURRENT
+# define IS31FL3741_GLOBAL_CURRENT ISSI_GLOBALCURRENT
+#endif
+
+#define PUR_0R IS31FL3741_PUR_0_OHM
+#define PUR_05KR IS31FL3741_PUR_0K5_OHM
+#define PUR_1KR IS31FL3741_PUR_1K_OHM
+#define PUR_2KR IS31FL3741_PUR_2K_OHM
+#define PUR_4KR IS31FL3741_PUR_4K_OHM
+#define PUR_8KR IS31FL3741_PUR_8K_OHM
+#define PUR_16KR IS31FL3741_PUR_16K_OHM
+#define PUR_32KR IS31FL3741_PUR_32K_OHM
+// ========
+
+#define IS31FL3741_REG_INTERRUPT_MASK 0xF0
+#define IS31FL3741_REG_INTERRUPT_STATUS 0xF1
+#define IS31FL3741_REG_ID 0xFC
+
+#define IS31FL3741_REG_COMMAND 0xFD
+
+#define IS31FL3741_COMMAND_PWM_0 0x00
+#define IS31FL3741_COMMAND_PWM_1 0x01
+#define IS31FL3741_COMMAND_SCALING_0 0x02
+#define IS31FL3741_COMMAND_SCALING_1 0x03
+#define IS31FL3741_COMMAND_FUNCTION 0x04
+
+#define IS31FL3741_FUNCTION_REG_CONFIGURATION 0x00
+#define IS31FL3741_FUNCTION_REG_GLOBAL_CURRENT 0x01
+#define IS31FL3741_FUNCTION_REG_PULLDOWNUP 0x02
+#define IS31FL3741_FUNCTION_REG_PWM_FREQUENCY 0x36
+#define IS31FL3741_FUNCTION_REG_RESET 0x3F
+
+#define IS31FL3741_REG_COMMAND_WRITE_LOCK 0xFE
+#define IS31FL3741_COMMAND_WRITE_LOCK_MAGIC 0xC5
+
+#define IS31FL3741_I2C_ADDRESS_GND 0x30
+#define IS31FL3741_I2C_ADDRESS_SCL 0x31
+#define IS31FL3741_I2C_ADDRESS_SDA 0x32
+#define IS31FL3741_I2C_ADDRESS_VCC 0x33
+
+#if defined(LED_MATRIX_IS31FL3741)
+# define IS31FL3741_LED_COUNT LED_MATRIX_LED_COUNT
+#endif
+
+#if defined(IS31FL3741_I2C_ADDRESS_4)
+# define IS31FL3741_DRIVER_COUNT 4
+#elif defined(IS31FL3741_I2C_ADDRESS_3)
+# define IS31FL3741_DRIVER_COUNT 3
+#elif defined(IS31FL3741_I2C_ADDRESS_2)
+# define IS31FL3741_DRIVER_COUNT 2
+#elif defined(IS31FL3741_I2C_ADDRESS_1)
+# define IS31FL3741_DRIVER_COUNT 1
+#endif
+
+typedef struct is31fl3741_led_t {
+ uint8_t driver : 2;
+ uint16_t v : 9;
+} PACKED is31fl3741_led_t;
+
+extern const is31fl3741_led_t PROGMEM g_is31fl3741_leds[IS31FL3741_LED_COUNT];
+
+void is31fl3741_init_drivers(void);
+void is31fl3741_init(uint8_t addr);
+void is31fl3741_write_register(uint8_t addr, uint8_t reg, uint8_t data);
+bool is31fl3741_write_pwm_buffer(uint8_t addr, uint8_t *pwm_buffer);
+
+void is31fl3741_set_value(int index, uint8_t value);
+void is31fl3741_set_value_all(uint8_t value);
+
+void is31fl3741_set_led_control_register(uint8_t index, bool value);
+
+// This should not be called from an interrupt
+// (eg. from a timer interrupt).
+// Call this while idle (in between matrix scans).
+// If the buffer is dirty, it will update the driver with the buffer.
+void is31fl3741_update_pwm_buffers(uint8_t addr, uint8_t index);
+void is31fl3741_update_led_control_registers(uint8_t addr, uint8_t index);
+void is31fl3741_set_scaling_registers(const is31fl3741_led_t *pled, uint8_t value);
+
+void is31fl3741_set_pwm_buffer(const is31fl3741_led *pled, uint8_t value);
+
+void is31fl3741_flush(void);
+
+#define IS31FL3741_PDR_0_OHM 0b000 // No pull-down resistor
+#define IS31FL3741_PDR_0K5_OHM 0b001 // 0.5 kOhm resistor
+#define IS31FL3741_PDR_1K_OHM 0b010 // 1 kOhm resistor
+#define IS31FL3741_PDR_2K_OHM 0b011 // 2 kOhm resistor
+#define IS31FL3741_PDR_4K_OHM 0b100 // 4 kOhm resistor
+#define IS31FL3741_PDR_8K_OHM 0b101 // 8 kOhm resistor
+#define IS31FL3741_PDR_16K_OHM 0b110 // 16 kOhm resistor
+#define IS31FL3741_PDR_32K_OHM 0b111 // 32 kOhm resistor
+
+#define IS31FL3741_PUR_0_OHM 0b000 // No pull-up resistor
+#define IS31FL3741_PUR_0K5_OHM 0b001 // 0.5 kOhm resistor
+#define IS31FL3741_PUR_1K_OHM 0b010 // 1 kOhm resistor
+#define IS31FL3741_PUR_2K_OHM 0b011 // 2 kOhm resistor
+#define IS31FL3741_PUR_4K_OHM 0b100 // 4 kOhm resistor
+#define IS31FL3741_PUR_8K_OHM 0b101 // 8 kOhm resistor
+#define IS31FL3741_PUR_16K_OHM 0b110 // 16 kOhm resistor
+#define IS31FL3741_PUR_32K_OHM 0b111 // 32 kOhm resistor
+
+#define IS31FL3741_PWM_FREQUENCY_29K_HZ 0b0000
+#define IS31FL3741_PWM_FREQUENCY_3K6_HZ 0b0011
+#define IS31FL3741_PWM_FREQUENCY_1K8_HZ 0b0111
+#define IS31FL3741_PWM_FREQUENCY_900_HZ 0b1011
+
+#define CS1_SW1 0x00
+#define CS2_SW1 0x01
+#define CS3_SW1 0x02
+#define CS4_SW1 0x03
+#define CS5_SW1 0x04
+#define CS6_SW1 0x05
+#define CS7_SW1 0x06
+#define CS8_SW1 0x07
+#define CS9_SW1 0x08
+#define CS10_SW1 0x09
+#define CS11_SW1 0x0A
+#define CS12_SW1 0x0B
+#define CS13_SW1 0x0C
+#define CS14_SW1 0x0D
+#define CS15_SW1 0x0E
+#define CS16_SW1 0x0F
+#define CS17_SW1 0x10
+#define CS18_SW1 0x11
+#define CS19_SW1 0x12
+#define CS20_SW1 0x13
+#define CS21_SW1 0x14
+#define CS22_SW1 0x15
+#define CS23_SW1 0x16
+#define CS24_SW1 0x17
+#define CS25_SW1 0x18
+#define CS26_SW1 0x19
+#define CS27_SW1 0x1A
+#define CS28_SW1 0x1B
+#define CS29_SW1 0x1C
+#define CS30_SW1 0x1D
+
+#define CS1_SW2 0x1E
+#define CS2_SW2 0x1F
+#define CS3_SW2 0x20
+#define CS4_SW2 0x21
+#define CS5_SW2 0x22
+#define CS6_SW2 0x23
+#define CS7_SW2 0x24
+#define CS8_SW2 0x25
+#define CS9_SW2 0x26
+#define CS10_SW2 0x27
+#define CS11_SW2 0x28
+#define CS12_SW2 0x29
+#define CS13_SW2 0x2A
+#define CS14_SW2 0x2B
+#define CS15_SW2 0x2C
+#define CS16_SW2 0x2D
+#define CS17_SW2 0x2E
+#define CS18_SW2 0x2F
+#define CS19_SW2 0x30
+#define CS20_SW2 0x31
+#define CS21_SW2 0x32
+#define CS22_SW2 0x33
+#define CS23_SW2 0x34
+#define CS24_SW2 0x35
+#define CS25_SW2 0x36
+#define CS26_SW2 0x37
+#define CS27_SW2 0x38
+#define CS28_SW2 0x39
+#define CS29_SW2 0x3A
+#define CS30_SW2 0x3B
+
+#define CS1_SW3 0x3C
+#define CS2_SW3 0x3D
+#define CS3_SW3 0x3E
+#define CS4_SW3 0x3F
+#define CS5_SW3 0x40
+#define CS6_SW3 0x41
+#define CS7_SW3 0x42
+#define CS8_SW3 0x43
+#define CS9_SW3 0x44
+#define CS10_SW3 0x45
+#define CS11_SW3 0x46
+#define CS12_SW3 0x47
+#define CS13_SW3 0x48
+#define CS14_SW3 0x49
+#define CS15_SW3 0x4A
+#define CS16_SW3 0x4B
+#define CS17_SW3 0x4C
+#define CS18_SW3 0x4D
+#define CS19_SW3 0x4E
+#define CS20_SW3 0x4F
+#define CS21_SW3 0x50
+#define CS22_SW3 0x51
+#define CS23_SW3 0x52
+#define CS24_SW3 0x53
+#define CS25_SW3 0x54
+#define CS26_SW3 0x55
+#define CS27_SW3 0x56
+#define CS28_SW3 0x57
+#define CS29_SW3 0x58
+#define CS30_SW3 0x59
+
+#define CS1_SW4 0x5A
+#define CS2_SW4 0x5B
+#define CS3_SW4 0x5C
+#define CS4_SW4 0x5D
+#define CS5_SW4 0x5E
+#define CS6_SW4 0x5F
+#define CS7_SW4 0x60
+#define CS8_SW4 0x61
+#define CS9_SW4 0x62
+#define CS10_SW4 0x63
+#define CS11_SW4 0x64
+#define CS12_SW4 0x65
+#define CS13_SW4 0x66
+#define CS14_SW4 0x67
+#define CS15_SW4 0x68
+#define CS16_SW4 0x69
+#define CS17_SW4 0x6A
+#define CS18_SW4 0x6B
+#define CS19_SW4 0x6C
+#define CS20_SW4 0x6D
+#define CS21_SW4 0x6E
+#define CS22_SW4 0x6F
+#define CS23_SW4 0x70
+#define CS24_SW4 0x71
+#define CS25_SW4 0x72
+#define CS26_SW4 0x73
+#define CS27_SW4 0x74
+#define CS28_SW4 0x75
+#define CS29_SW4 0x76
+#define CS30_SW4 0x77
+
+#define CS1_SW5 0x78
+#define CS2_SW5 0x79
+#define CS3_SW5 0x7A
+#define CS4_SW5 0x7B
+#define CS5_SW5 0x7C
+#define CS6_SW5 0x7D
+#define CS7_SW5 0x7E
+#define CS8_SW5 0x7F
+#define CS9_SW5 0x80
+#define CS10_SW5 0x81
+#define CS11_SW5 0x82
+#define CS12_SW5 0x83
+#define CS13_SW5 0x84
+#define CS14_SW5 0x85
+#define CS15_SW5 0x86
+#define CS16_SW5 0x87
+#define CS17_SW5 0x88
+#define CS18_SW5 0x89
+#define CS19_SW5 0x8A
+#define CS20_SW5 0x8B
+#define CS21_SW5 0x8C
+#define CS22_SW5 0x8D
+#define CS23_SW5 0x8E
+#define CS24_SW5 0x8F
+#define CS25_SW5 0x90
+#define CS26_SW5 0x91
+#define CS27_SW5 0x92
+#define CS28_SW5 0x93
+#define CS29_SW5 0x94
+#define CS30_SW5 0x95
+
+#define CS1_SW6 0x96
+#define CS2_SW6 0x97
+#define CS3_SW6 0x98
+#define CS4_SW6 0x99
+#define CS5_SW6 0x9A
+#define CS6_SW6 0x9B
+#define CS7_SW6 0x9C
+#define CS8_SW6 0x9D
+#define CS9_SW6 0x9E
+#define CS10_SW6 0x9F
+#define CS11_SW6 0xA0
+#define CS12_SW6 0xA1
+#define CS13_SW6 0xA2
+#define CS14_SW6 0xA3
+#define CS15_SW6 0xA4
+#define CS16_SW6 0xA5
+#define CS17_SW6 0xA6
+#define CS18_SW6 0xA7
+#define CS19_SW6 0xA8
+#define CS20_SW6 0xA9
+#define CS21_SW6 0xAA
+#define CS22_SW6 0xAB
+#define CS23_SW6 0xAC
+#define CS24_SW6 0xAD
+#define CS25_SW6 0xAE
+#define CS26_SW6 0xAF
+#define CS27_SW6 0xB0
+#define CS28_SW6 0xB1
+#define CS29_SW6 0xB2
+#define CS30_SW6 0xB3
+
+#define CS1_SW7 0xB4
+#define CS2_SW7 0xB5
+#define CS3_SW7 0xB6
+#define CS4_SW7 0xB7
+#define CS5_SW7 0xB8
+#define CS6_SW7 0xB9
+#define CS7_SW7 0xBA
+#define CS8_SW7 0xBB
+#define CS9_SW7 0xBC
+#define CS10_SW7 0xBD
+#define CS11_SW7 0xBE
+#define CS12_SW7 0xBF
+#define CS13_SW7 0xC0
+#define CS14_SW7 0xC1
+#define CS15_SW7 0xC2
+#define CS16_SW7 0xC3
+#define CS17_SW7 0xC4
+#define CS18_SW7 0xC5
+#define CS19_SW7 0xC6
+#define CS20_SW7 0xC7
+#define CS21_SW7 0xC8
+#define CS22_SW7 0xC9
+#define CS23_SW7 0xCA
+#define CS24_SW7 0xCB
+#define CS25_SW7 0xCC
+#define CS26_SW7 0xCD
+#define CS27_SW7 0xCE
+#define CS28_SW7 0xCF
+#define CS29_SW7 0xD0
+#define CS30_SW7 0xD1
+
+#define CS1_SW8 0xD2
+#define CS2_SW8 0xD3
+#define CS3_SW8 0xD4
+#define CS4_SW8 0xD5
+#define CS5_SW8 0xD6
+#define CS6_SW8 0xD7
+#define CS7_SW8 0xD8
+#define CS8_SW8 0xD9
+#define CS9_SW8 0xDA
+#define CS10_SW8 0xDB
+#define CS11_SW8 0xDC
+#define CS12_SW8 0xDD
+#define CS13_SW8 0xDE
+#define CS14_SW8 0xDF
+#define CS15_SW8 0xE0
+#define CS16_SW8 0xE1
+#define CS17_SW8 0xE2
+#define CS18_SW8 0xE3
+#define CS19_SW8 0xE4
+#define CS20_SW8 0xE5
+#define CS21_SW8 0xE6
+#define CS22_SW8 0xE7
+#define CS23_SW8 0xE8
+#define CS24_SW8 0xE9
+#define CS25_SW8 0xEA
+#define CS26_SW8 0xEB
+#define CS27_SW8 0xEC
+#define CS28_SW8 0xED
+#define CS29_SW8 0xEE
+#define CS30_SW8 0xEF
+
+#define CS1_SW9 0xF0
+#define CS2_SW9 0xF1
+#define CS3_SW9 0xF2
+#define CS4_SW9 0xF3
+#define CS5_SW9 0xF4
+#define CS6_SW9 0xF5
+#define CS7_SW9 0xF6
+#define CS8_SW9 0xF7
+#define CS9_SW9 0xF8
+#define CS10_SW9 0xF9
+#define CS11_SW9 0xFA
+#define CS12_SW9 0xFB
+#define CS13_SW9 0xFC
+#define CS14_SW9 0xFD
+#define CS15_SW9 0xFE
+#define CS16_SW9 0xFF
+#define CS17_SW9 0x100
+#define CS18_SW9 0x101
+#define CS19_SW9 0x102
+#define CS20_SW9 0x103
+#define CS21_SW9 0x104
+#define CS22_SW9 0x105
+#define CS23_SW9 0x106
+#define CS24_SW9 0x107
+#define CS25_SW9 0x108
+#define CS26_SW9 0x109
+#define CS27_SW9 0x10A
+#define CS28_SW9 0x10B
+#define CS29_SW9 0x10C
+#define CS30_SW9 0x10D
+
+#define CS31_SW1 0x10E
+#define CS32_SW1 0x10F
+#define CS33_SW1 0x110
+#define CS34_SW1 0x111
+#define CS35_SW1 0x112
+#define CS36_SW1 0x113
+#define CS37_SW1 0x114
+#define CS38_SW1 0x115
+#define CS39_SW1 0x116
+
+#define CS31_SW2 0x117
+#define CS32_SW2 0x118
+#define CS33_SW2 0x119
+#define CS34_SW2 0x11A
+#define CS35_SW2 0x11B
+#define CS36_SW2 0x11C
+#define CS37_SW2 0x11D
+#define CS38_SW2 0x11E
+#define CS39_SW2 0x11F
+
+#define CS31_SW3 0x120
+#define CS32_SW3 0x121
+#define CS33_SW3 0x122
+#define CS34_SW3 0x123
+#define CS35_SW3 0x124
+#define CS36_SW3 0x125
+#define CS37_SW3 0x126
+#define CS38_SW3 0x127
+#define CS39_SW3 0x128
+
+#define CS31_SW4 0x129
+#define CS32_SW4 0x12A
+#define CS33_SW4 0x12B
+#define CS34_SW4 0x12C
+#define CS35_SW4 0x12D
+#define CS36_SW4 0x12E
+#define CS37_SW4 0x12F
+#define CS38_SW4 0x130
+#define CS39_SW4 0x131
+
+#define CS31_SW5 0x132
+#define CS32_SW5 0x133
+#define CS33_SW5 0x134
+#define CS34_SW5 0x135
+#define CS35_SW5 0x136
+#define CS36_SW5 0x137
+#define CS37_SW5 0x138
+#define CS38_SW5 0x139
+#define CS39_SW5 0x13A
+
+#define CS31_SW6 0x13B
+#define CS32_SW6 0x13C
+#define CS33_SW6 0x13D
+#define CS34_SW6 0x13E
+#define CS35_SW6 0x13F
+#define CS36_SW6 0x140
+#define CS37_SW6 0x141
+#define CS38_SW6 0x142
+#define CS39_SW6 0x143
+
+#define CS31_SW7 0x144
+#define CS32_SW7 0x145
+#define CS33_SW7 0x146
+#define CS34_SW7 0x147
+#define CS35_SW7 0x148
+#define CS36_SW7 0x149
+#define CS37_SW7 0x14A
+#define CS38_SW7 0x14B
+#define CS39_SW7 0x14C
+
+#define CS31_SW8 0x14D
+#define CS32_SW8 0x14E
+#define CS33_SW8 0x14F
+#define CS34_SW8 0x150
+#define CS35_SW8 0x151
+#define CS36_SW8 0x152
+#define CS37_SW8 0x153
+#define CS38_SW8 0x154
+#define CS39_SW8 0x155
+
+#define CS31_SW9 0x156
+#define CS32_SW9 0x157
+#define CS33_SW9 0x158
+#define CS34_SW9 0x159
+#define CS35_SW9 0x15A
+#define CS36_SW9 0x15B
+#define CS37_SW9 0x15C
+#define CS38_SW9 0x15D
+#define CS39_SW9 0x15E
diff --git a/drivers/led/issi/is31fl3741.c b/drivers/led/issi/is31fl3741.c
index 70671c2a40..efcfa77b46 100644
--- a/drivers/led/issi/is31fl3741.c
+++ b/drivers/led/issi/is31fl3741.c
@@ -17,63 +17,40 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
-#include "wait.h"
-
#include "is31fl3741.h"
#include <string.h>
#include "i2c_master.h"
-#include "progmem.h"
-
-// This is a 7-bit address, that gets left-shifted and bit 0
-// set to 0 for write, 1 for read (as per I2C protocol)
-// The address will vary depending on your wiring:
-// 00 <-> GND
-// 01 <-> SCL
-// 10 <-> SDA
-// 11 <-> VCC
-// ADDR1 represents A1:A0 of the 7-bit address.
-// ADDR2 represents A3:A2 of the 7-bit address.
-// The result is: 0b101(ADDR2)(ADDR1)
-#define ISSI_ADDR_DEFAULT 0x60
-
-#define ISSI_COMMANDREGISTER 0xFD
-#define ISSI_COMMANDREGISTER_WRITELOCK 0xFE
-#define ISSI_INTERRUPTMASKREGISTER 0xF0
-#define ISSI_INTERRUPTSTATUSREGISTER 0xF1
-#define ISSI_IDREGISTER 0xFC
-
-#define ISSI_PAGE_PWM0 0x00 // PG0
-#define ISSI_PAGE_PWM1 0x01 // PG1
-#define ISSI_PAGE_SCALING_0 0x02 // PG2
-#define ISSI_PAGE_SCALING_1 0x03 // PG3
-#define ISSI_PAGE_FUNCTION 0x04 // PG4
-
-#define ISSI_REG_CONFIGURATION 0x00 // PG4
-#define ISSI_REG_GLOBALCURRENT 0x01 // PG4
-#define ISSI_REG_PULLDOWNUP 0x02 // PG4
-#define ISSI_REG_RESET 0x3F // PG4
-
-#ifndef ISSI_TIMEOUT
-# define ISSI_TIMEOUT 100
+#include "wait.h"
+
+#define IS31FL3741_PWM_REGISTER_COUNT 351
+
+#ifndef IS31FL3741_I2C_TIMEOUT
+# define IS31FL3741_I2C_TIMEOUT 100
#endif
-#ifndef ISSI_PERSISTENCE
-# define ISSI_PERSISTENCE 0
+#ifndef IS31FL3741_I2C_PERSISTENCE
+# define IS31FL3741_I2C_PERSISTENCE 0
#endif
-#ifndef ISSI_SWPULLUP
-# define ISSI_SWPULLUP PUR_32KR
+#ifndef IS31FL3741_CONFIGURATION
+# define IS31FL3741_CONFIGURATION 0x01
#endif
-#ifndef ISSI_CSPULLUP
-# define ISSI_CSPULLUP PUR_32KR
+#ifndef IS31FL3741_PWM_FREQUENCY
+# define IS31FL3741_PWM_FREQUENCY IS31FL3741_PWM_FREQUENCY_29K_HZ
#endif
-#ifndef ISSI_GLOBALCURRENT
-# define ISSI_GLOBALCURRENT 0xFF
+#ifndef IS31FL3741_SW_PULLUP
+# define IS31FL3741_SW_PULLUP IS31FL3741_PUR_32K_OHM
#endif
-#define ISSI_MAX_LEDS 351
+#ifndef IS31FL3741_CS_PULLDOWN
+# define IS31FL3741_CS_PULLDOWN IS31FL3741_PDR_32K_OHM
+#endif
+
+#ifndef IS31FL3741_GLOBAL_CURRENT
+# define IS31FL3741_GLOBAL_CURRENT 0xFF
+#endif
// Transfer buffer for TWITransmitData()
uint8_t g_twi_transfer_buffer[20] = {0xFF};
@@ -84,22 +61,22 @@ uint8_t g_twi_transfer_buffer[20] = {0xFF};
// We could optimize this and take out the unused registers from these
// buffers and the transfers in is31fl3741_write_pwm_buffer() but it's
// probably not worth the extra complexity.
-uint8_t g_pwm_buffer[DRIVER_COUNT][ISSI_MAX_LEDS];
-bool g_pwm_buffer_update_required[DRIVER_COUNT] = {false};
-bool g_scaling_registers_update_required[DRIVER_COUNT] = {false};
+uint8_t g_pwm_buffer[IS31FL3741_DRIVER_COUNT][IS31FL3741_PWM_REGISTER_COUNT];
+bool g_pwm_buffer_update_required[IS31FL3741_DRIVER_COUNT] = {false};
+bool g_scaling_registers_update_required[IS31FL3741_DRIVER_COUNT] = {false};
-uint8_t g_scaling_registers[DRIVER_COUNT][ISSI_MAX_LEDS];
+uint8_t g_scaling_registers[IS31FL3741_DRIVER_COUNT][IS31FL3741_PWM_REGISTER_COUNT];
void is31fl3741_write_register(uint8_t addr, uint8_t reg, uint8_t data) {
g_twi_transfer_buffer[0] = reg;
g_twi_transfer_buffer[1] = data;
-#if ISSI_PERSISTENCE > 0
- for (uint8_t i = 0; i < ISSI_PERSISTENCE; i++) {
- if (i2c_transmit(addr << 1, g_twi_transfer_buffer, 2, ISSI_TIMEOUT) == 0) break;
+#if IS31FL3741_I2C_PERSISTENCE > 0
+ for (uint8_t i = 0; i < IS31FL3741_I2C_PERSISTENCE; i++) {
+ if (i2c_transmit(addr << 1, g_twi_transfer_buffer, 2, IS31FL3741_I2C_TIMEOUT) == 0) break;
}
#else
- i2c_transmit(addr << 1, g_twi_transfer_buffer, 2, ISSI_TIMEOUT);
+ i2c_transmit(addr << 1, g_twi_transfer_buffer, 2, IS31FL3741_I2C_TIMEOUT);
#endif
}
@@ -109,21 +86,21 @@ bool is31fl3741_write_pwm_buffer(uint8_t addr, uint8_t *pwm_buffer) {
for (int i = 0; i < 342; i += 18) {
if (i == 180) {
// unlock the command register and select PG1
- is31fl3741_write_register(addr, ISSI_COMMANDREGISTER_WRITELOCK, 0xC5);
- is31fl3741_write_register(addr, ISSI_COMMANDREGISTER, ISSI_PAGE_PWM1);
+ is31fl3741_write_register(addr, IS31FL3741_REG_COMMAND_WRITE_LOCK, IS31FL3741_COMMAND_WRITE_LOCK_MAGIC);
+ is31fl3741_write_register(addr, IS31FL3741_REG_COMMAND, IS31FL3741_COMMAND_PWM_1);
}
g_twi_transfer_buffer[0] = i % 180;
memcpy(g_twi_transfer_buffer + 1, pwm_buffer + i, 18);
-#if ISSI_PERSISTENCE > 0
- for (uint8_t i = 0; i < ISSI_PERSISTENCE; i++) {
- if (i2c_transmit(addr << 1, g_twi_transfer_buffer, 19, ISSI_TIMEOUT) != 0) {
+#if IS31FL3741_I2C_PERSISTENCE > 0
+ for (uint8_t i = 0; i < IS31FL3741_I2C_PERSISTENCE; i++) {
+ if (i2c_transmit(addr << 1, g_twi_transfer_buffer, 19, IS31FL3741_I2C_TIMEOUT) != 0) {
return false;
}
}
#else
- if (i2c_transmit(addr << 1, g_twi_transfer_buffer, 19, ISSI_TIMEOUT) != 0) {
+ if (i2c_transmit(addr << 1, g_twi_transfer_buffer, 19, IS31FL3741_I2C_TIMEOUT) != 0) {
return false;
}
#endif
@@ -133,14 +110,14 @@ bool is31fl3741_write_pwm_buffer(uint8_t addr, uint8_t *pwm_buffer) {
g_twi_transfer_buffer[0] = 162;
memcpy(g_twi_transfer_buffer + 1, pwm_buffer + 342, 9);
-#if ISSI_PERSISTENCE > 0
- for (uint8_t i = 0; i < ISSI_PERSISTENCE; i++) {
- if (i2c_transmit(addr << 1, g_twi_transfer_buffer, 10, ISSI_TIMEOUT) != 0) {
+#if IS31FL3741_I2C_PERSISTENCE > 0
+ for (uint8_t i = 0; i < IS31FL3741_I2C_PERSISTENCE; i++) {
+ if (i2c_transmit(addr << 1, g_twi_transfer_buffer, 10, IS31FL3741_I2C_TIMEOUT) != 0) {
return false;
}
}
#else
- if (i2c_transmit(addr << 1, g_twi_transfer_buffer, 10, ISSI_TIMEOUT) != 0) {
+ if (i2c_transmit(addr << 1, g_twi_transfer_buffer, 10, IS31FL3741_I2C_TIMEOUT) != 0) {
return false;
}
#endif
@@ -148,6 +125,36 @@ bool is31fl3741_write_pwm_buffer(uint8_t addr, uint8_t *pwm_buffer) {
return true;
}
+void is31fl3741_init_drivers(void) {
+ i2c_init();
+
+ is31fl3741_init(IS31FL3741_I2C_ADDRESS_1);
+#if defined(IS31FL3741_I2C_ADDRESS_2)
+ is31fl3741_init(IS31FL3741_I2C_ADDRESS_2);
+# if defined(IS31FL3741_I2C_ADDRESS_3)
+ is31fl3741_init(IS31FL3741_I2C_ADDRESS_3);
+# if defined(IS31FL3741_I2C_ADDRESS_4)
+ is31fl3741_init(IS31FL3741_I2C_ADDRESS_4);
+# endif
+# endif
+#endif
+
+ for (int i = 0; i < IS31FL3741_LED_COUNT; i++) {
+ is31fl3741_set_led_control_register(i, true, true, true);
+ }
+
+ is31fl3741_update_led_control_registers(IS31FL3741_I2C_ADDRESS_1, 0);
+#if defined(IS31FL3741_I2C_ADDRESS_2)
+ is31fl3741_update_led_control_registers(IS31FL3741_I2C_ADDRESS_2, 1);
+# if defined(IS31FL3741_I2C_ADDRESS_3)
+ is31fl3741_update_led_control_registers(IS31FL3741_I2C_ADDRESS_3, 2);
+# if defined(IS31FL3741_I2C_ADDRESS_4)
+ is31fl3741_update_led_control_registers(IS31FL3741_I2C_ADDRESS_4, 3);
+# endif
+# endif
+#endif
+}
+
void is31fl3741_init(uint8_t addr) {
// In order to avoid the LEDs being driven with garbage data
// in the LED driver's PWM registers, shutdown is enabled last.
@@ -156,18 +163,20 @@ void is31fl3741_init(uint8_t addr) {
// Unlock the command register.
// Unlock the command register.
- is31fl3741_write_register(addr, ISSI_COMMANDREGISTER_WRITELOCK, 0xC5);
+ is31fl3741_write_register(addr, IS31FL3741_REG_COMMAND_WRITE_LOCK, IS31FL3741_COMMAND_WRITE_LOCK_MAGIC);
// Select PG4
- is31fl3741_write_register(addr, ISSI_COMMANDREGISTER, ISSI_PAGE_FUNCTION);
+ is31fl3741_write_register(addr, IS31FL3741_REG_COMMAND, IS31FL3741_COMMAND_FUNCTION);
// Set to Normal operation
- is31fl3741_write_register(addr, ISSI_REG_CONFIGURATION, 0x01);
+ is31fl3741_write_register(addr, IS31FL3741_FUNCTION_REG_CONFIGURATION, IS31FL3741_CONFIGURATION);
// Set Golbal Current Control Register
- is31fl3741_write_register(addr, ISSI_REG_GLOBALCURRENT, ISSI_GLOBALCURRENT);
+ is31fl3741_write_register(addr, IS31FL3741_FUNCTION_REG_GLOBAL_CURRENT, IS31FL3741_GLOBAL_CURRENT);
// Set Pull up & Down for SWx CSy
- is31fl3741_write_register(addr, ISSI_REG_PULLDOWNUP, ((ISSI_CSPULLUP << 4) | ISSI_SWPULLUP));
+ is31fl3741_write_register(addr, IS31FL3741_FUNCTION_REG_PULLDOWNUP, ((IS31FL3741_CS_PULLDOWN << 4) | IS31FL3741_SW_PULLUP));
+ // Set PWM frequency
+ is31fl3741_write_register(addr, IS31FL3741_FUNCTION_REG_PWM_FREQUENCY, (IS31FL3741_PWM_FREQUENCY & 0b1111));
// is31fl3741_update_led_scaling_registers(addr, 0xFF, 0xFF, 0xFF);
@@ -176,9 +185,9 @@ void is31fl3741_init(uint8_t addr) {
}
void is31fl3741_set_color(int index, uint8_t red, uint8_t green, uint8_t blue) {
- is31_led led;
- if (index >= 0 && index < RGB_MATRIX_LED_COUNT) {
- memcpy_P(&led, (&g_is31_leds[index]), sizeof(led));
+ is31fl3741_led_t led;
+ if (index >= 0 && index < IS31FL3741_LED_COUNT) {
+ memcpy_P(&led, (&g_is31fl3741_leds[index]), sizeof(led));
if (g_pwm_buffer[led.driver][led.r] == red && g_pwm_buffer[led.driver][led.g] == green && g_pwm_buffer[led.driver][led.b] == blue) {
return;
@@ -191,14 +200,14 @@ void is31fl3741_set_color(int index, uint8_t red, uint8_t green, uint8_t blue) {
}
void is31fl3741_set_color_all(uint8_t red, uint8_t green, uint8_t blue) {
- for (int i = 0; i < RGB_MATRIX_LED_COUNT; i++) {
+ for (int i = 0; i < IS31FL3741_LED_COUNT; i++) {
is31fl3741_set_color(i, red, green, blue);
}
}
void is31fl3741_set_led_control_register(uint8_t index, bool red, bool green, bool blue) {
- is31_led led;
- memcpy_P(&led, (&g_is31_leds[index]), sizeof(led));
+ is31fl3741_led_t led;
+ memcpy_P(&led, (&g_is31fl3741_leds[index]), sizeof(led));
if (red) {
g_scaling_registers[led.driver][led.r] = 0xFF;
@@ -224,8 +233,8 @@ void is31fl3741_set_led_control_register(uint8_t index, bool red, bool green, bo
void is31fl3741_update_pwm_buffers(uint8_t addr, uint8_t index) {
if (g_pwm_buffer_update_required[index]) {
// unlock the command register and select PG2
- is31fl3741_write_register(addr, ISSI_COMMANDREGISTER_WRITELOCK, 0xC5);
- is31fl3741_write_register(addr, ISSI_COMMANDREGISTER, ISSI_PAGE_PWM0);
+ is31fl3741_write_register(addr, IS31FL3741_REG_COMMAND_WRITE_LOCK, IS31FL3741_COMMAND_WRITE_LOCK_MAGIC);
+ is31fl3741_write_register(addr, IS31FL3741_REG_COMMAND, IS31FL3741_COMMAND_PWM_0);
is31fl3741_write_pwm_buffer(addr, g_pwm_buffer[index]);
}
@@ -233,7 +242,7 @@ void is31fl3741_update_pwm_buffers(uint8_t addr, uint8_t index) {
g_pwm_buffer_update_required[index] = false;
}
-void is31fl3741_set_pwm_buffer(const is31_led *pled, uint8_t red, uint8_t green, uint8_t blue) {
+void is31fl3741_set_pwm_buffer(const is31fl3741_led_t *pled, uint8_t red, uint8_t green, uint8_t blue) {
g_pwm_buffer[pled->driver][pled->r] = red;
g_pwm_buffer[pled->driver][pled->g] = green;
g_pwm_buffer[pled->driver][pled->b] = blue;
@@ -244,8 +253,8 @@ void is31fl3741_set_pwm_buffer(const is31_led *pled, uint8_t red, uint8_t green,
void is31fl3741_update_led_control_registers(uint8_t addr, uint8_t index) {
if (g_scaling_registers_update_required[index]) {
// unlock the command register and select PG2
- is31fl3741_write_register(addr, ISSI_COMMANDREGISTER_WRITELOCK, 0xC5);
- is31fl3741_write_register(addr, ISSI_COMMANDREGISTER, ISSI_PAGE_SCALING_0);
+ is31fl3741_write_register(addr, IS31FL3741_REG_COMMAND_WRITE_LOCK, IS31FL3741_COMMAND_WRITE_LOCK_MAGIC);
+ is31fl3741_write_register(addr, IS31FL3741_REG_COMMAND, IS31FL3741_COMMAND_SCALING_0);
// CS1_SW1 to CS30_SW6 are on PG2
for (int i = CS1_SW1; i <= CS30_SW6; ++i) {
@@ -253,8 +262,8 @@ void is31fl3741_update_led_control_registers(uint8_t addr, uint8_t index) {
}
// unlock the command register and select PG3
- is31fl3741_write_register(addr, ISSI_COMMANDREGISTER_WRITELOCK, 0xC5);
- is31fl3741_write_register(addr, ISSI_COMMANDREGISTER, ISSI_PAGE_SCALING_1);
+ is31fl3741_write_register(addr, IS31FL3741_REG_COMMAND_WRITE_LOCK, IS31FL3741_COMMAND_WRITE_LOCK_MAGIC);
+ is31fl3741_write_register(addr, IS31FL3741_REG_COMMAND, IS31FL3741_COMMAND_SCALING_1);
// CS1_SW7 to CS39_SW9 are on PG3
for (int i = CS1_SW7; i <= CS39_SW9; ++i) {
@@ -265,10 +274,23 @@ void is31fl3741_update_led_control_registers(uint8_t addr, uint8_t index) {
}
}
-void is31fl3741_set_scaling_registers(const is31_led *pled, uint8_t red, uint8_t green, uint8_t blue) {
+void is31fl3741_set_scaling_registers(const is31fl3741_led_t *pled, uint8_t red, uint8_t green, uint8_t blue) {
g_scaling_registers[pled->driver][pled->r] = red;
g_scaling_registers[pled->driver][pled->g] = green;
g_scaling_registers[pled->driver][pled->b] = blue;
g_scaling_registers_update_required[pled->driver] = true;
}
+
+void is31fl3741_flush(void) {
+ is31fl3741_update_pwm_buffers(IS31FL3741_I2C_ADDRESS_1, 0);
+#if defined(IS31FL3741_I2C_ADDRESS_2)
+ is31fl3741_update_pwm_buffers(IS31FL3741_I2C_ADDRESS_2, 1);
+# if defined(IS31FL3741_I2C_ADDRESS_3)
+ is31fl3741_update_pwm_buffers(IS31FL3741_I2C_ADDRESS_3, 2);
+# if defined(IS31FL3741_I2C_ADDRESS_4)
+ is31fl3741_update_pwm_buffers(IS31FL3741_I2C_ADDRESS_4, 3);
+# endif
+# endif
+#endif
+}
diff --git a/drivers/led/issi/is31fl3741.h b/drivers/led/issi/is31fl3741.h
index 4ae84dc3c6..6466696b60 100644
--- a/drivers/led/issi/is31fl3741.h
+++ b/drivers/led/issi/is31fl3741.h
@@ -22,16 +22,103 @@
#include <stdint.h>
#include <stdbool.h>
#include "progmem.h"
+#include "util.h"
-typedef struct is31_led {
- uint32_t driver : 2;
- uint32_t r : 10;
- uint32_t g : 10;
- uint32_t b : 10;
-} __attribute__((packed)) is31_led;
+// ======== DEPRECATED DEFINES - DO NOT USE ========
+#ifdef DRIVER_ADDR_1
+# define IS31FL3741_I2C_ADDRESS_1 DRIVER_ADDR_1
+#endif
+#ifdef DRIVER_ADDR_2
+# define IS31FL3741_I2C_ADDRESS_2 DRIVER_ADDR_2
+#endif
+#ifdef DRIVER_ADDR_3
+# define IS31FL3741_I2C_ADDRESS_3 DRIVER_ADDR_3
+#endif
+#ifdef DRIVER_ADDR_4
+# define IS31FL3741_I2C_ADDRESS_4 DRIVER_ADDR_4
+#endif
+#ifdef ISSI_TIMEOUT
+# define IS31FL3741_I2C_TIMEOUT ISSI_TIMEOUT
+#endif
+#ifdef ISSI_PERSISTENCE
+# define IS31FL3741_I2C_PERSISTENCE ISSI_PERSISTENCE
+#endif
+#ifdef ISSI_CONFIGURATION
+# define IS31FL3741_CONFIGURATION ISSI_CONFIGURATION
+#endif
+#ifdef ISSI_SWPULLUP
+# define IS31FL3741_SW_PULLUP ISSI_SWPULLUP
+#endif
+#ifdef ISSI_CSPULLUP
+# define IS31FL3741_CS_PULLDOWN ISSI_CSPULLUP
+#endif
+#ifdef ISSI_GLOBALCURRENT
+# define IS31FL3741_GLOBAL_CURRENT ISSI_GLOBALCURRENT
+#endif
-extern const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT];
+#define is31_led is31fl3741_led_t
+#define g_is31_leds g_is31fl3741_leds
+#define PUR_0R IS31FL3741_PUR_0_OHM
+#define PUR_05KR IS31FL3741_PUR_0K5_OHM
+#define PUR_1KR IS31FL3741_PUR_1K_OHM
+#define PUR_2KR IS31FL3741_PUR_2K_OHM
+#define PUR_4KR IS31FL3741_PUR_4K_OHM
+#define PUR_8KR IS31FL3741_PUR_8K_OHM
+#define PUR_16KR IS31FL3741_PUR_16K_OHM
+#define PUR_32KR IS31FL3741_PUR_32K_OHM
+// ========
+
+#define IS31FL3741_REG_INTERRUPT_MASK 0xF0
+#define IS31FL3741_REG_INTERRUPT_STATUS 0xF1
+#define IS31FL3741_REG_ID 0xFC
+
+#define IS31FL3741_REG_COMMAND 0xFD
+
+#define IS31FL3741_COMMAND_PWM_0 0x00
+#define IS31FL3741_COMMAND_PWM_1 0x01
+#define IS31FL3741_COMMAND_SCALING_0 0x02
+#define IS31FL3741_COMMAND_SCALING_1 0x03
+#define IS31FL3741_COMMAND_FUNCTION 0x04
+
+#define IS31FL3741_FUNCTION_REG_CONFIGURATION 0x00
+#define IS31FL3741_FUNCTION_REG_GLOBAL_CURRENT 0x01
+#define IS31FL3741_FUNCTION_REG_PULLDOWNUP 0x02
+#define IS31FL3741_FUNCTION_REG_PWM_FREQUENCY 0x36
+#define IS31FL3741_FUNCTION_REG_RESET 0x3F
+
+#define IS31FL3741_REG_COMMAND_WRITE_LOCK 0xFE
+#define IS31FL3741_COMMAND_WRITE_LOCK_MAGIC 0xC5
+
+#define IS31FL3741_I2C_ADDRESS_GND 0x30
+#define IS31FL3741_I2C_ADDRESS_SCL 0x31
+#define IS31FL3741_I2C_ADDRESS_SDA 0x32
+#define IS31FL3741_I2C_ADDRESS_VCC 0x33
+
+#if defined(RGB_MATRIX_IS31FL3741)
+# define IS31FL3741_LED_COUNT RGB_MATRIX_LED_COUNT
+#endif
+
+#if defined(IS31FL3741_I2C_ADDRESS_4)
+# define IS31FL3741_DRIVER_COUNT 4
+#elif defined(IS31FL3741_I2C_ADDRESS_3)
+# define IS31FL3741_DRIVER_COUNT 3
+#elif defined(IS31FL3741_I2C_ADDRESS_2)
+# define IS31FL3741_DRIVER_COUNT 2
+#elif defined(IS31FL3741_I2C_ADDRESS_1)
+# define IS31FL3741_DRIVER_COUNT 1
+#endif
+
+typedef struct is31fl3741_led_t {
+ uint8_t driver : 2;
+ uint16_t r : 9;
+ uint16_t g : 9;
+ uint16_t b : 9;
+} PACKED is31fl3741_led_t;
+
+extern const is31fl3741_led_t PROGMEM g_is31fl3741_leds[IS31FL3741_LED_COUNT];
+
+void is31fl3741_init_drivers(void);
void is31fl3741_init(uint8_t addr);
void is31fl3741_write_register(uint8_t addr, uint8_t reg, uint8_t data);
bool is31fl3741_write_pwm_buffer(uint8_t addr, uint8_t *pwm_buffer);
@@ -47,18 +134,34 @@ void is31fl3741_set_led_control_register(uint8_t index, bool red, bool green, bo
// If the buffer is dirty, it will update the driver with the buffer.
void is31fl3741_update_pwm_buffers(uint8_t addr, uint8_t index);
void is31fl3741_update_led_control_registers(uint8_t addr, uint8_t index);
-void is31fl3741_set_scaling_registers(const is31_led *pled, uint8_t red, uint8_t green, uint8_t blue);
-
-void is31fl3741_set_pwm_buffer(const is31_led *pled, uint8_t red, uint8_t green, uint8_t blue);
-
-#define PUR_0R 0x00 // No PUR resistor
-#define PUR_05KR 0x01 // 0.5k Ohm resistor
-#define PUR_1KR 0x02 // 1.0k Ohm resistor
-#define PUR_2KR 0x03 // 2.0k Ohm resistor
-#define PUR_4KR 0x04 // 4.0k Ohm resistor
-#define PUR_8KR 0x05 // 8.0k Ohm resistor
-#define PUR_16KR 0x06 // 16k Ohm resistor
-#define PUR_32KR 0x07 // 32k Ohm resistor
+void is31fl3741_set_scaling_registers(const is31fl3741_led_t *pled, uint8_t red, uint8_t green, uint8_t blue);
+
+void is31fl3741_set_pwm_buffer(const is31fl3741_led_t *pled, uint8_t red, uint8_t green, uint8_t blue);
+
+void is31fl3741_flush(void);
+
+#define IS31FL3741_PDR_0_OHM 0b000 // No pull-down resistor
+#define IS31FL3741_PDR_0K5_OHM 0b001 // 0.5 kOhm resistor
+#define IS31FL3741_PDR_1K_OHM 0b010 // 1 kOhm resistor
+#define IS31FL3741_PDR_2K_OHM 0b011 // 2 kOhm resistor
+#define IS31FL3741_PDR_4K_OHM 0b100 // 4 kOhm resistor
+#define IS31FL3741_PDR_8K_OHM 0b101 // 8 kOhm resistor
+#define IS31FL3741_PDR_16K_OHM 0b110 // 16 kOhm resistor
+#define IS31FL3741_PDR_32K_OHM 0b111 // 32 kOhm resistor
+
+#define IS31FL3741_PUR_0_OHM 0b000 // No pull-up resistor
+#define IS31FL3741_PUR_0K5_OHM 0b001 // 0.5 kOhm resistor
+#define IS31FL3741_PUR_1K_OHM 0b010 // 1 kOhm resistor
+#define IS31FL3741_PUR_2K_OHM 0b011 // 2 kOhm resistor
+#define IS31FL3741_PUR_4K_OHM 0b100 // 4 kOhm resistor
+#define IS31FL3741_PUR_8K_OHM 0b101 // 8 kOhm resistor
+#define IS31FL3741_PUR_16K_OHM 0b110 // 16 kOhm resistor
+#define IS31FL3741_PUR_32K_OHM 0b111 // 32 kOhm resistor
+
+#define IS31FL3741_PWM_FREQUENCY_29K_HZ 0b0000
+#define IS31FL3741_PWM_FREQUENCY_3K6_HZ 0b0011
+#define IS31FL3741_PWM_FREQUENCY_1K8_HZ 0b0111
+#define IS31FL3741_PWM_FREQUENCY_900_HZ 0b1011
#define CS1_SW1 0x00
#define CS2_SW1 0x01
diff --git a/drivers/led/issi/is31fl3743.h b/drivers/led/issi/is31fl3743.h
index d8fcd79096..706b271254 100644
--- a/drivers/led/issi/is31fl3743.h
+++ b/drivers/led/issi/is31fl3743.h
@@ -36,7 +36,7 @@
// Set defaults for Spread Spectrum Register
#ifndef ISSI_SSR_1
-# if DRIVER_COUNT == 1
+# ifndef DRIVER_ADDR_2
# define ISSI_SSR_1 0x00
# else
# define ISSI_SSR_1 0xC0
diff --git a/drivers/led/issi/is31fl3745.h b/drivers/led/issi/is31fl3745.h
index ca5dd4a986..1e88aab4a8 100644
--- a/drivers/led/issi/is31fl3745.h
+++ b/drivers/led/issi/is31fl3745.h
@@ -36,7 +36,7 @@
// Set defaults for Spread Spectrum Register
#ifndef ISSI_SSR_1
-# if DRIVER_COUNT == 1
+# ifndef DRIVER_ADDR_2
# define ISSI_SSR_1 0x00
# else
# define ISSI_SSR_1 0xC0
diff --git a/drivers/led/issi/is31flcommon.c b/drivers/led/issi/is31flcommon.c
index 4b78947ada..d6b9bce93d 100644
--- a/drivers/led/issi/is31flcommon.c
+++ b/drivers/led/issi/is31flcommon.c
@@ -174,7 +174,55 @@ void IS31FL_common_update_scaling_register(uint8_t addr, uint8_t index) {
}
}
+void IS31FL_common_flush(void) {
+ IS31FL_common_update_pwm_register(DRIVER_ADDR_1, 0);
+#if defined(DRIVER_ADDR_2)
+ IS31FL_common_update_pwm_register(DRIVER_ADDR_2, 1);
+# if defined(DRIVER_ADDR_3)
+ IS31FL_common_update_pwm_register(DRIVER_ADDR_3, 2);
+# if defined(DRIVER_ADDR_4)
+ IS31FL_common_update_pwm_register(DRIVER_ADDR_4, 3);
+# endif
+# endif
+#endif
+}
+
#ifdef RGB_MATRIX_ENABLE
+void IS31FL_RGB_init_drivers(void) {
+ i2c_init();
+
+ IS31FL_common_init(DRIVER_ADDR_1, ISSI_SSR_1);
+# if defined(DRIVER_ADDR_2)
+ IS31FL_common_init(DRIVER_ADDR_2, ISSI_SSR_2);
+# if defined(DRIVER_ADDR_3)
+ IS31FL_common_init(DRIVER_ADDR_3, ISSI_SSR_3);
+# if defined(DRIVER_ADDR_4)
+ IS31FL_common_init(DRIVER_ADDR_4, ISSI_SSR_4);
+# endif
+# endif
+# endif
+
+ for (int i = 0; i < RGB_MATRIX_LED_COUNT; i++) {
+ IS31FL_RGB_set_scaling_buffer(i, true, true, true);
+ }
+
+ // This actually updates the LED drivers
+# ifdef ISSI_MANUAL_SCALING
+ IS31FL_set_manual_scaling_buffer();
+# endif
+
+ IS31FL_common_update_scaling_register(DRIVER_ADDR_1, 0);
+# if defined(DRIVER_ADDR_2)
+ IS31FL_common_update_scaling_register(DRIVER_ADDR_2, 1);
+# if defined(DRIVER_ADDR_3)
+ IS31FL_common_update_scaling_register(DRIVER_ADDR_3, 2);
+# if defined(DRIVER_ADDR_4)
+ IS31FL_common_update_scaling_register(DRIVER_ADDR_4, 3);
+# endif
+# endif
+# endif
+}
+
// Colour is set by adjusting PWM register
void IS31FL_RGB_set_color(int index, uint8_t red, uint8_t green, uint8_t blue) {
if (index >= 0 && index < RGB_MATRIX_LED_COUNT) {
@@ -218,6 +266,41 @@ void IS31FL_RGB_set_scaling_buffer(uint8_t index, bool red, bool green, bool blu
#elif defined(LED_MATRIX_ENABLE)
// LED Matrix Specific scripts
+void IS31FL_simple_init_drivers(void) {
+ i2c_init();
+
+ IS31FL_common_init(DRIVER_ADDR_1, ISSI_SSR_1);
+# if defined(DRIVER_ADDR_2)
+ IS31FL_common_init(DRIVER_ADDR_2, ISSI_SSR_2);
+# if defined(DRIVER_ADDR_3)
+ IS31FL_common_init(DRIVER_ADDR_3, ISSI_SSR_3);
+# if defined(DRIVER_ADDR_4)
+ IS31FL_common_init(DRIVER_ADDR_4, ISSI_SSR_4);
+# endif
+# endif
+# endif
+
+ for (int i = 0; i < LED_MATRIX_LED_COUNT; i++) {
+ IS31FL_simple_set_scaling_buffer(i, true);
+ }
+
+// This actually updates the LED drivers
+# ifdef ISSI_MANUAL_SCALING
+ IS31FL_set_manual_scaling_buffer();
+# endif
+
+ IS31FL_common_update_scaling_register(DRIVER_ADDR_1, 0);
+# if defined(DRIVER_ADDR_2)
+ IS31FL_common_update_scaling_register(DRIVER_ADDR_2, 1);
+# if defined(DRIVER_ADDR_3)
+ IS31FL_common_update_scaling_register(DRIVER_ADDR_3, 2);
+# if defined(DRIVER_ADDR_4)
+ IS31FL_common_update_scaling_register(DRIVER_ADDR_4, 3);
+# endif
+# endif
+# endif
+}
+
void IS31FL_simple_set_scaling_buffer(uint8_t index, bool value) {
is31_led led;
memcpy_P(&led, (&g_is31_leds[index]), sizeof(led));
diff --git a/drivers/led/issi/is31flcommon.h b/drivers/led/issi/is31flcommon.h
index 4b3add558b..10613a6eed 100644
--- a/drivers/led/issi/is31flcommon.h
+++ b/drivers/led/issi/is31flcommon.h
@@ -23,33 +23,44 @@
#include <stdint.h>
#include <stdbool.h>
#include "progmem.h"
+#include "util.h"
// Which variant header file to use
-#ifdef IS31FL3742A
+#if defined(LED_MATRIX_IS31FL3742A) || defined(RGB_MATRIX_IS31FL3742A)
# include "is31fl3742.h"
-#elif defined(IS31FL3743A)
+#elif defined(LED_MATRIX_IS31FL3743A) || defined(RGB_MATRIX_IS31FL3743A)
# include "is31fl3743.h"
-#elif defined(IS31FL3745)
+#elif defined(LED_MATRIX_IS31FL3745) || defined(RGB_MATRIX_IS31FL3745)
# include "is31fl3745.h"
-#elif defined(IS31FL3746A)
+#elif defined(LED_MATRIX_IS31FL3746A) || defined(RGB_MATRIX_IS31FL3746A)
# include "is31fl3746.h"
#endif
+#if defined DRIVER_ADDR_4
+# define DRIVER_COUNT 4
+#elif defined DRIVER_ADDR_3
+# define DRIVER_COUNT 3
+#elif defined DRIVER_ADDR_2
+# define DRIVER_COUNT 2
+#elif defined DRIVER_ADDR_1
+# define DRIVER_COUNT 1
+#endif
+
#ifdef RGB_MATRIX_ENABLE
typedef struct is31_led {
- uint8_t driver;
+ uint8_t driver : 2;
uint8_t r;
uint8_t g;
uint8_t b;
-} __attribute__((packed)) is31_led;
+} PACKED is31_led;
extern const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT];
#elif defined(LED_MATRIX_ENABLE)
typedef struct is31_led {
- uint8_t driver;
+ uint8_t driver : 2;
uint8_t v;
-} __attribute__((packed)) is31_led;
+} PACKED is31_led;
extern const is31_led PROGMEM g_is31_leds[LED_MATRIX_LED_COUNT];
#endif
@@ -67,13 +78,17 @@ void IS31FL_common_init(uint8_t addr, uint8_t ssr);
void IS31FL_common_update_pwm_register(uint8_t addr, uint8_t index);
void IS31FL_common_update_scaling_register(uint8_t addr, uint8_t index);
+void IS31FL_common_flush(void);
+
#ifdef RGB_MATRIX_ENABLE
// RGB Matrix Specific scripts
+void IS31FL_RGB_init_drivers(void);
void IS31FL_RGB_set_color(int index, uint8_t red, uint8_t green, uint8_t blue);
void IS31FL_RGB_set_color_all(uint8_t red, uint8_t green, uint8_t blue);
void IS31FL_RGB_set_scaling_buffer(uint8_t index, bool red, bool green, bool blue);
#elif defined(LED_MATRIX_ENABLE)
// LED Matrix Specific scripts
+void IS31FL_simple_init_drivers(void);
void IS31FL_simple_set_scaling_buffer(uint8_t index, bool value);
void IS31FL_simple_set_brightness(int index, uint8_t value);
void IS31FL_simple_set_brigntness_all(uint8_t value);
diff --git a/drivers/led/snled27351-simple.c b/drivers/led/snled27351-simple.c
new file mode 100644
index 0000000000..b2054c96d5
--- /dev/null
+++ b/drivers/led/snled27351-simple.c
@@ -0,0 +1,266 @@
+/* Copyright 2021 @ Keychron (https://www.keychron.com)
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include "snled27351-simple.h"
+#include "i2c_master.h"
+
+#define SNLED27351_PWM_REGISTER_COUNT 192
+#define SNLED27351_LED_CONTROL_REGISTER_COUNT 24
+
+#ifndef SNLED27351_I2C_TIMEOUT
+# define SNLED27351_I2C_TIMEOUT 100
+#endif
+
+#ifndef SNLED27351_I2C_PERSISTENCE
+# define SNLED27351_I2C_PERSISTENCE 0
+#endif
+
+#ifndef SNLED27351_PHASE_CHANNEL
+# define SNLED27351_PHASE_CHANNEL SNLED27351_SCAN_PHASE_12_CHANNEL
+#endif
+
+#ifndef SNLED27351_CURRENT_TUNE
+# define SNLED27351_CURRENT_TUNE \
+ { 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF }
+#endif
+
+// Transfer buffer for TWITransmitData()
+uint8_t g_twi_transfer_buffer[20];
+
+// These buffers match the SNLED27351 PWM registers.
+// The control buffers match the PG0 LED On/Off registers.
+// Storing them like this is optimal for I2C transfers to the registers.
+// We could optimize this and take out the unused registers from these
+// buffers and the transfers in snled27351_write_pwm_buffer() but it's
+// probably not worth the extra complexity.
+uint8_t g_pwm_buffer[SNLED27351_DRIVER_COUNT][SNLED27351_PWM_REGISTER_COUNT];
+bool g_pwm_buffer_update_required[SNLED27351_DRIVER_COUNT] = {false};
+
+uint8_t g_led_control_registers[SNLED27351_DRIVER_COUNT][SNLED27351_LED_CONTROL_REGISTER_COUNT] = {0};
+bool g_led_control_registers_update_required[SNLED27351_DRIVER_COUNT] = {false};
+
+bool snled27351_write_register(uint8_t addr, uint8_t reg, uint8_t data) {
+ // If the transaction fails function returns false.
+ g_twi_transfer_buffer[0] = reg;
+ g_twi_transfer_buffer[1] = data;
+
+#if SNLED27351_I2C_PERSISTENCE > 0
+ for (uint8_t i = 0; i < SNLED27351_I2C_PERSISTENCE; i++) {
+ if (i2c_transmit(addr << 1, g_twi_transfer_buffer, 2, SNLED27351_I2C_TIMEOUT) != 0) {
+ return false;
+ }
+ }
+#else
+ if (i2c_transmit(addr << 1, g_twi_transfer_buffer, 2, SNLED27351_I2C_TIMEOUT) != 0) {
+ return false;
+ }
+#endif
+ return true;
+}
+
+bool snled27351_write_pwm_buffer(uint8_t addr, uint8_t *pwm_buffer) {
+ // Assumes PG1 is already selected.
+ // If any of the transactions fails function returns false.
+ // Transmit PWM registers in 12 transfers of 16 bytes.
+ // g_twi_transfer_buffer[] is 20 bytes
+
+ // Iterate over the pwm_buffer contents at 16 byte intervals.
+ for (int i = 0; i < SNLED27351_PWM_REGISTER_COUNT; i += 16) {
+ g_twi_transfer_buffer[0] = i;
+ // Copy the data from i to i+15.
+ // Device will auto-increment register for data after the first byte
+ // Thus this sets registers 0x00-0x0F, 0x10-0x1F, etc. in one transfer.
+ for (int j = 0; j < 16; j++) {
+ g_twi_transfer_buffer[1 + j] = pwm_buffer[i + j];
+ }
+
+#if SNLED27351_I2C_PERSISTENCE > 0
+ for (uint8_t i = 0; i < SNLED27351_I2C_PERSISTENCE; i++) {
+ if (i2c_transmit(addr << 1, g_twi_transfer_buffer, 17, SNLED27351_I2C_TIMEOUT) != 0) {
+ return false;
+ }
+ }
+#else
+ if (i2c_transmit(addr << 1, g_twi_transfer_buffer, 17, SNLED27351_I2C_TIMEOUT) != 0) {
+ return false;
+ }
+#endif
+ }
+ return true;
+}
+
+void snled27351_init_drivers(void) {
+ i2c_init();
+
+ snled27351_init(SNLED27351_I2C_ADDRESS_1);
+#if defined(SNLED27351_I2C_ADDRESS_2)
+ snled27351_init(SNLED27351_I2C_ADDRESS_2);
+# if defined(SNLED27351_I2C_ADDRESS_3)
+ snled27351_init(SNLED27351_I2C_ADDRESS_3);
+# if defined(SNLED27351_I2C_ADDRESS_4)
+ snled27351_init(SNLED27351_I2C_ADDRESS_4);
+# endif
+# endif
+#endif
+
+ for (int i = 0; i < SNLED27351_LED_COUNT; i++) {
+ snled27351_set_led_control_register(i, true);
+ }
+
+ snled27351_update_led_control_registers(SNLED27351_I2C_ADDRESS_1, 0);
+#if defined(SNLED27351_I2C_ADDRESS_2)
+ snled27351_update_led_control_registers(SNLED27351_I2C_ADDRESS_2, 1);
+# if defined(SNLED27351_I2C_ADDRESS_3)
+ snled27351_update_led_control_registers(SNLED27351_I2C_ADDRESS_3, 2);
+# if defined(SNLED27351_I2C_ADDRESS_4)
+ snled27351_update_led_control_registers(SNLED27351_I2C_ADDRESS_4, 3);
+# endif
+# endif
+#endif
+}
+
+void snled27351_init(uint8_t addr) {
+ // Select to function page
+ snled27351_write_register(addr, SNLED27351_REG_COMMAND, SNLED27351_COMMAND_FUNCTION);
+ // Setting LED driver to shutdown mode
+ snled27351_write_register(addr, SNLED27351_FUNCTION_REG_SOFTWARE_SHUTDOWN, SNLED27351_SOFTWARE_SHUTDOWN_SSD_SHUTDOWN);
+ // Setting internal channel pulldown/pullup
+ snled27351_write_register(addr, SNLED27351_FUNCTION_REG_PULLDOWNUP, SNLED27351_PULLDOWNUP_ALL_ENABLED);
+ // Select number of scan phase
+ snled27351_write_register(addr, SNLED27351_FUNCTION_REG_SCAN_PHASE, SNLED27351_PHASE_CHANNEL);
+ // Setting PWM Delay Phase
+ snled27351_write_register(addr, SNLED27351_FUNCTION_REG_SLEW_RATE_CONTROL_MODE_1, SNLED27351_SLEW_RATE_CONTROL_MODE_1_PDP_ENABLE);
+ // Setting Driving/Sinking Channel Slew Rate
+ snled27351_write_register(addr, SNLED27351_FUNCTION_REG_SLEW_RATE_CONTROL_MODE_2, SNLED27351_SLEW_RATE_CONTROL_MODE_2_DSL_ENABLE | SNLED27351_SLEW_RATE_CONTROL_MODE_2_SSL_ENABLE);
+ // Setting Iref
+ snled27351_write_register(addr, SNLED27351_FUNCTION_REG_SOFTWARE_SLEEP, 0);
+ // Set LED CONTROL PAGE (Page 0)
+ snled27351_write_register(addr, SNLED27351_REG_COMMAND, SNLED27351_COMMAND_LED_CONTROL);
+ for (int i = 0; i < SNLED27351_LED_CONTROL_ON_OFF_LENGTH; i++) {
+ snled27351_write_register(addr, i, 0x00);
+ }
+
+ // Set PWM PAGE (Page 1)
+ snled27351_write_register(addr, SNLED27351_REG_COMMAND, SNLED27351_COMMAND_PWM);
+ for (int i = 0; i < SNLED27351_LED_CURRENT_TUNE_LENGTH; i++) {
+ snled27351_write_register(addr, i, 0x00);
+ }
+
+ // Set CURRENT PAGE (Page 4)
+ uint8_t current_tune_reg_list[SNLED27351_LED_CURRENT_TUNE_LENGTH] = SNLED27351_CURRENT_TUNE;
+ snled27351_write_register(addr, SNLED27351_REG_COMMAND, SNLED27351_COMMAND_CURRENT_TUNE);
+ for (int i = 0; i < SNLED27351_LED_CURRENT_TUNE_LENGTH; i++) {
+ snled27351_write_register(addr, i, current_tune_reg_list[i]);
+ }
+
+ // Enable LEDs ON/OFF
+ snled27351_write_register(addr, SNLED27351_REG_COMMAND, SNLED27351_COMMAND_LED_CONTROL);
+ for (int i = 0; i < SNLED27351_LED_CONTROL_ON_OFF_LENGTH; i++) {
+ snled27351_write_register(addr, i, 0xFF);
+ }
+
+ // Select to function page
+ snled27351_write_register(addr, SNLED27351_REG_COMMAND, SNLED27351_COMMAND_FUNCTION);
+ // Setting LED driver to normal mode
+ snled27351_write_register(addr, SNLED27351_FUNCTION_REG_SOFTWARE_SHUTDOWN, SNLED27351_SOFTWARE_SHUTDOWN_SSD_NORMAL);
+}
+
+void snled27351_set_value(int index, uint8_t value) {
+ snled27351_led_t led;
+ if (index >= 0 && index < SNLED27351_LED_COUNT) {
+ memcpy_P(&led, (&g_snled27351_leds[index]), sizeof(led));
+
+ if (g_pwm_buffer[led.driver][led.v] == value) {
+ return;
+ }
+ g_pwm_buffer[led.driver][led.v] = value;
+ g_pwm_buffer_update_required[led.driver] = true;
+ }
+}
+
+void snled27351_set_value_all(uint8_t value) {
+ for (int i = 0; i < SNLED27351_LED_COUNT; i++) {
+ snled27351_set_value(i, value);
+ }
+}
+
+void snled27351_set_led_control_register(uint8_t index, bool value) {
+ snled27351_led_t led;
+ memcpy_P(&led, (&g_snled27351_leds[index]), sizeof(led));
+
+ uint8_t control_register = led.v / 8;
+ uint8_t bit_value = led.v % 8;
+
+ if (value) {
+ g_led_control_registers[led.driver][control_register] |= (1 << bit_value);
+ } else {
+ g_led_control_registers[led.driver][control_register] &= ~(1 << bit_value);
+ }
+
+ g_led_control_registers_update_required[led.driver] = true;
+}
+
+void snled27351_update_pwm_buffers(uint8_t addr, uint8_t index) {
+ if (g_pwm_buffer_update_required[index]) {
+ snled27351_write_register(addr, SNLED27351_REG_COMMAND, SNLED27351_COMMAND_PWM);
+
+ // If any of the transactions fail we risk writing dirty PG0,
+ // refresh page 0 just in case.
+ if (!snled27351_write_pwm_buffer(addr, g_pwm_buffer[index])) {
+ g_led_control_registers_update_required[index] = true;
+ }
+ }
+ g_pwm_buffer_update_required[index] = false;
+}
+
+void snled27351_update_led_control_registers(uint8_t addr, uint8_t index) {
+ if (g_led_control_registers_update_required[index]) {
+ snled27351_write_register(addr, SNLED27351_REG_COMMAND, SNLED27351_COMMAND_LED_CONTROL);
+ for (int i = 0; i < SNLED27351_LED_CONTROL_REGISTER_COUNT; i++) {
+ snled27351_write_register(addr, i, g_led_control_registers[index][i]);
+ }
+ }
+ g_led_control_registers_update_required[index] = false;
+}
+
+void snled27351_flush(void) {
+ snled27351_update_pwm_buffers(SNLED27351_I2C_ADDRESS_1, 0);
+#if defined(SNLED27351_I2C_ADDRESS_2)
+ snled27351_update_pwm_buffers(SNLED27351_I2C_ADDRESS_2, 1);
+# if defined(SNLED27351_I2C_ADDRESS_3)
+ snled27351_update_pwm_buffers(SNLED27351_I2C_ADDRESS_3, 2);
+# if defined(SNLED27351_I2C_ADDRESS_4)
+ snled27351_update_pwm_buffers(SNLED27351_I2C_ADDRESS_4, 3);
+# endif
+# endif
+#endif
+}
+
+void snled27351_sw_return_normal(uint8_t addr) {
+ // Select to function page
+ snled27351_write_register(addr, SNLED27351_REG_COMMAND, SNLED27351_COMMAND_FUNCTION);
+ // Setting LED driver to normal mode
+ snled27351_write_register(addr, SNLED27351_FUNCTION_REG_SOFTWARE_SHUTDOWN, SNLED27351_SOFTWARE_SHUTDOWN_SSD_NORMAL);
+}
+
+void snled27351_sw_shutdown(uint8_t addr) {
+ // Select to function page
+ snled27351_write_register(addr, SNLED27351_REG_COMMAND, SNLED27351_COMMAND_FUNCTION);
+ // Setting LED driver to shutdown mode
+ snled27351_write_register(addr, SNLED27351_FUNCTION_REG_SOFTWARE_SHUTDOWN, SNLED27351_SOFTWARE_SHUTDOWN_SSD_SHUTDOWN);
+ // Write SW Sleep Register
+ snled27351_write_register(addr, SNLED27351_FUNCTION_REG_SOFTWARE_SLEEP, SNLED27351_SOFTWARE_SLEEP_ENABLE);
+}
diff --git a/drivers/led/snled27351-simple.h b/drivers/led/snled27351-simple.h
new file mode 100644
index 0000000000..2fc62a6f0a
--- /dev/null
+++ b/drivers/led/snled27351-simple.h
@@ -0,0 +1,380 @@
+/* Copyright 2021 @ Keychron (https://www.keychron.com)
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#pragma once
+
+#include <stdint.h>
+#include <stdbool.h>
+#include "progmem.h"
+#include "util.h"
+
+// ======== DEPRECATED DEFINES - DO NOT USE ========
+#ifdef CKLED2001_TIMEOUT
+# define SNLED27351_I2C_TIMEOUT CKLED2001_TIMEOUT
+#endif
+#ifdef CKLED2001_PERSISTENCE
+# define SNLED27351_I2C_PERSISTENCE CKLED2001_PERSISTENCE
+#endif
+#ifdef PHASE_CHANNEL
+# define SNLED27351_PHASE_CHANNEL PHASE_CHANNEL
+#endif
+#ifdef CKLED2001_CURRENT_TUNE
+# define SNLED27351_CURRENT_TUNE CKLED2001_CURRENT_TUNE
+#endif
+
+#define MSKPHASE_12CHANNEL SNLED27351_SCAN_PHASE_12_CHANNEL
+#define MSKPHASE_11CHANNEL SNLED27351_SCAN_PHASE_11_CHANNEL
+#define MSKPHASE_10CHANNEL SNLED27351_SCAN_PHASE_10_CHANNEL
+#define MSKPHASE_9CHANNEL SNLED27351_SCAN_PHASE_9_CHANNEL
+#define MSKPHASE_8CHANNEL SNLED27351_SCAN_PHASE_8_CHANNEL
+#define MSKPHASE_7CHANNEL SNLED27351_SCAN_PHASE_7_CHANNEL
+#define MSKPHASE_6CHANNEL SNLED27351_SCAN_PHASE_6_CHANNEL
+#define MSKPHASE_5CHANNEL SNLED27351_SCAN_PHASE_5_CHANNEL
+#define MSKPHASE_4CHANNEL SNLED27351_SCAN_PHASE_4_CHANNEL
+#define MSKPHASE_3CHANNEL SNLED27351_SCAN_PHASE_3_CHANNEL
+#define MSKPHASE_2CHANNEL SNLED27351_SCAN_PHASE_2_CHANNEL
+#define MSKPHASE_1CHANNEL SNLED27351_SCAN_PHASE_1_CHANNEL
+
+#define ckled2001_led snled27351_led_t
+#define g_ckled2001_leds g_snled27351_leds
+// ========
+
+#define SNLED27351_REG_COMMAND 0xFD
+#define SNLED27351_COMMAND_LED_CONTROL 0x00
+#define SNLED27351_COMMAND_PWM 0x01
+#define SNLED27351_COMMAND_FUNCTION 0x03
+#define SNLED27351_COMMAND_CURRENT_TUNE 0x04
+
+#define SNLED27351_FUNCTION_REG_SOFTWARE_SHUTDOWN 0x00
+#define SNLED27351_SOFTWARE_SHUTDOWN_SSD_SHUTDOWN (0x0 << 0)
+#define SNLED27351_SOFTWARE_SHUTDOWN_SSD_NORMAL (0x1 << 0)
+
+#define SNLED27351_FUNCTION_REG_ID 0x11
+#define SNLED27351_DRIVER_ID 0x8A
+
+#define SNLED27351_FUNCTION_REG_PULLDOWNUP 0x13
+#define SNLED27351_PULLDOWNUP_ALL_ENABLED 0xAA
+
+#define SNLED27351_FUNCTION_REG_SCAN_PHASE 0x14
+#define SNLED27351_SCAN_PHASE_12_CHANNEL 0x00
+#define SNLED27351_SCAN_PHASE_11_CHANNEL 0x01
+#define SNLED27351_SCAN_PHASE_10_CHANNEL 0x02
+#define SNLED27351_SCAN_PHASE_9_CHANNEL 0x03
+#define SNLED27351_SCAN_PHASE_8_CHANNEL 0x04
+#define SNLED27351_SCAN_PHASE_7_CHANNEL 0x05
+#define SNLED27351_SCAN_PHASE_6_CHANNEL 0x06
+#define SNLED27351_SCAN_PHASE_5_CHANNEL 0x07
+#define SNLED27351_SCAN_PHASE_4_CHANNEL 0x08
+#define SNLED27351_SCAN_PHASE_3_CHANNEL 0x09
+#define SNLED27351_SCAN_PHASE_2_CHANNEL 0x0A
+#define SNLED27351_SCAN_PHASE_1_CHANNEL 0x0B
+
+#define SNLED27351_FUNCTION_REG_SLEW_RATE_CONTROL_MODE_1 0x15
+#define SNLED27351_SLEW_RATE_CONTROL_MODE_1_PDP_ENABLE (0b1 << 2)
+
+#define SNLED27351_FUNCTION_REG_SLEW_RATE_CONTROL_MODE_2 0x16
+#define SNLED27351_SLEW_RATE_CONTROL_MODE_2_SSL_ENABLE (0b1 << 6)
+#define SNLED27351_SLEW_RATE_CONTROL_MODE_2_DSL_ENABLE (0b1 << 7)
+
+#define SNLED27351_FUNCTION_REG_OPEN_SHORT_ENABLE 0x17
+#define SNLED27351_OPEN_SHORT_ENABLE_SDS_ENABLE (0b1 << 6)
+#define SNLED27351_OPEN_SHORT_ENABLE_ODS_ENABLE (0b1 << 7)
+
+#define SNLED27351_FUNCTION_REG_OPEN_SHORT_DUTY 0x18
+
+#define SNLED27351_FUNCTION_REG_OPEN_SHORT_FLAG 0x19
+#define SNLED27351_OPEN_SHORT_FLAG_OSINT_ENABLE (0b1 << 6)
+#define SNLED27351_OPEN_SHORT_FLAG_ODINT_ENABLE (0b1 << 7)
+
+#define SNLED27351_FUNCTION_REG_SOFTWARE_SLEEP 0x1A
+#define SNLED27351_SOFTWARE_SLEEP_ENABLE (0b1 << 1)
+
+// LED Control Registers
+#define SNLED27351_LED_CONTROL_ON_OFF_FIRST_ADDR 0x0
+#define SNLED27351_LED_CONTROL_ON_OFF_LAST_ADDR 0x17
+#define SNLED27351_LED_CONTROL_ON_OFF_LENGTH ((SNLED27351_LED_CONTROL_ON_OFF_LAST_ADDR - SNLED27351_LED_CONTROL_ON_OFF_FIRST_ADDR) + 1)
+
+#define SNLED27351_LED_CONTROL_OPEN_FIRST_ADDR 0x18
+#define SNLED27351_LED_CONTROL_OPEN_LAST_ADDR 0x2F
+#define SNLED27351_LED_CONTROL_OPEN_LENGTH ((SNLED27351_LED_CONTROL_OPEN_LAST_ADDR - SNLED27351_LED_CONTROL_OPEN_FIRST_ADDR) + 1)
+
+#define SNLED27351_LED_CONTROL_SHORT_FIRST_ADDR 0x30
+#define SNLED27351_LED_CONTROL_SHORT_LAST_ADDR 0x47
+#define SNLED27351_LED_CONTROL_SHORT_LENGTH ((SNLED27351_LED_CONTROL_SHORT_LAST_ADDR - SNLED27351_LED_CONTROL_SHORT_FIRST_ADDR) + 1)
+
+#define SNLED27351_LED_CONTROL_PAGE_LENGTH 0x48
+
+// LED Control Registers
+#define SNLED27351_LED_PWM_FIRST_ADDR 0x00
+#define SNLED27351_LED_PWM_LAST_ADDR 0xBF
+#define SNLED27351_LED_PWM_LENGTH 0xC0
+
+// Current Tune Registers
+#define SNLED27351_LED_CURRENT_TUNE_FIRST_ADDR 0x00
+#define SNLED27351_LED_CURRENT_TUNE_LAST_ADDR 0x0B
+#define SNLED27351_LED_CURRENT_TUNE_LENGTH 0x0C
+
+#define SNLED27351_I2C_ADDRESS_GND 0x74
+#define SNLED27351_I2C_ADDRESS_SCL 0x75
+#define SNLED27351_I2C_ADDRESS_SDA 0x76
+#define SNLED27351_I2C_ADDRESS_VDDIO 0x77
+
+#if defined(LED_MATRIX_SNLED27351)
+# define SNLED27351_LED_COUNT LED_MATRIX_LED_COUNT
+#endif
+
+#if defined(SNLED27351_I2C_ADDRESS_4)
+# define SNLED27351_DRIVER_COUNT 4
+#elif defined(SNLED27351_I2C_ADDRESS_3)
+# define SNLED27351_DRIVER_COUNT 3
+#elif defined(SNLED27351_I2C_ADDRESS_2)
+# define SNLED27351_DRIVER_COUNT 2
+#elif defined(SNLED27351_I2C_ADDRESS_1)
+# define SNLED27351_DRIVER_COUNT 1
+#endif
+
+typedef struct snled27351_led_t {
+ uint8_t driver : 2;
+ uint8_t v;
+} PACKED snled27351_led_t;
+
+extern const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT];
+
+void snled27351_init_drivers(void);
+void snled27351_init(uint8_t addr);
+bool snled27351_write_register(uint8_t addr, uint8_t reg, uint8_t data);
+bool snled27351_write_pwm_buffer(uint8_t addr, uint8_t *pwm_buffer);
+
+void snled27351_set_value(int index, uint8_t value);
+void snled27351_set_value_all(uint8_t value);
+
+void snled27351_set_led_control_register(uint8_t index, bool value);
+
+// This should not be called from an interrupt
+// (eg. from a timer interrupt).
+// Call this while idle (in between matrix scans).
+// If the buffer is dirty, it will update the driver with the buffer.
+void snled27351_update_pwm_buffers(uint8_t addr, uint8_t index);
+void snled27351_update_led_control_registers(uint8_t addr, uint8_t index);
+
+void snled27351_flush(void);
+
+void snled27351_sw_return_normal(uint8_t addr);
+void snled27351_sw_shutdown(uint8_t addr);
+
+#define A_1 0x00
+#define A_2 0x01
+#define A_3 0x02
+#define A_4 0x03
+#define A_5 0x04
+#define A_6 0x05
+#define A_7 0x06
+#define A_8 0x07
+#define A_9 0x08
+#define A_10 0x09
+#define A_11 0x0A
+#define A_12 0x0B
+#define A_13 0x0C
+#define A_14 0x0D
+#define A_15 0x0E
+#define A_16 0x0F
+
+#define B_1 0x10
+#define B_2 0x11
+#define B_3 0x12
+#define B_4 0x13
+#define B_5 0x14
+#define B_6 0x15
+#define B_7 0x16
+#define B_8 0x17
+#define B_9 0x18
+#define B_10 0x19
+#define B_11 0x1A
+#define B_12 0x1B
+#define B_13 0x1C
+#define B_14 0x1D
+#define B_15 0x1E
+#define B_16 0x1F
+
+#define C_1 0x20
+#define C_2 0x21
+#define C_3 0x22
+#define C_4 0x23
+#define C_5 0x24
+#define C_6 0x25
+#define C_7 0x26
+#define C_8 0x27
+#define C_9 0x28
+#define C_10 0x29
+#define C_11 0x2A
+#define C_12 0x2B
+#define C_13 0x2C
+#define C_14 0x2D
+#define C_15 0x2E
+#define C_16 0x2F
+
+#define D_1 0x30
+#define D_2 0x31
+#define D_3 0x32
+#define D_4 0x33
+#define D_5 0x34
+#define D_6 0x35
+#define D_7 0x36
+#define D_8 0x37
+#define D_9 0x38
+#define D_10 0x39
+#define D_11 0x3A
+#define D_12 0x3B
+#define D_13 0x3C
+#define D_14 0x3D
+#define D_15 0x3E
+#define D_16 0x3F
+
+#define E_1 0x40
+#define E_2 0x41
+#define E_3 0x42
+#define E_4 0x43
+#define E_5 0x44
+#define E_6 0x45
+#define E_7 0x46
+#define E_8 0x47
+#define E_9 0x48
+#define E_10 0x49
+#define E_11 0x4A
+#define E_12 0x4B
+#define E_13 0x4C
+#define E_14 0x4D
+#define E_15 0x4E
+#define E_16 0x4F
+
+#define F_1 0x50
+#define F_2 0x51
+#define F_3 0x52
+#define F_4 0x53
+#define F_5 0x54
+#define F_6 0x55
+#define F_7 0x56
+#define F_8 0x57
+#define F_9 0x58
+#define F_10 0x59
+#define F_11 0x5A
+#define F_12 0x5B
+#define F_13 0x5C
+#define F_14 0x5D
+#define F_15 0x5E
+#define F_16 0x5F
+
+#define G_1 0x60
+#define G_2 0x61
+#define G_3 0x62
+#define G_4 0x63
+#define G_5 0x64
+#define G_6 0x65
+#define G_7 0x66
+#define G_8 0x67
+#define G_9 0x68
+#define G_10 0x69
+#define G_11 0x6A
+#define G_12 0x6B
+#define G_13 0x6C
+#define G_14 0x6D
+#define G_15 0x6E
+#define G_16 0x6F
+
+#define H_1 0x70
+#define H_2 0x71
+#define H_3 0x72
+#define H_4 0x73
+#define H_5 0x74
+#define H_6 0x75
+#define H_7 0x76
+#define H_8 0x77
+#define H_9 0x78
+#define H_10 0x79
+#define H_11 0x7A
+#define H_12 0x7B
+#define H_13 0x7C
+#define H_14 0x7D
+#define H_15 0x7E
+#define H_16 0x7F
+
+#define I_1 0x80
+#define I_2 0x81
+#define I_3 0x82
+#define I_4 0x83
+#define I_5 0x84
+#define I_6 0x85
+#define I_7 0x86
+#define I_8 0x87
+#define I_9 0x88
+#define I_10 0x89
+#define I_11 0x8A
+#define I_12 0x8B
+#define I_13 0x8C
+#define I_14 0x8D
+#define I_15 0x8E
+#define I_16 0x8F
+
+#define J_1 0x90
+#define J_2 0x91
+#define J_3 0x92
+#define J_4 0x93
+#define J_5 0x94
+#define J_6 0x95
+#define J_7 0x96
+#define J_8 0x97
+#define J_9 0x98
+#define J_10 0x99
+#define J_11 0x9A
+#define J_12 0x9B
+#define J_13 0x9C
+#define J_14 0x9D
+#define J_15 0x9E
+#define J_16 0x9F
+
+#define K_1 0xA0
+#define K_2 0xA1
+#define K_3 0xA2
+#define K_4 0xA3
+#define K_5 0xA4
+#define K_6 0xA5
+#define K_7 0xA6
+#define K_8 0xA7
+#define K_9 0xA8
+#define K_10 0xA9
+#define K_11 0xAA
+#define K_12 0xAB
+#define K_13 0xAC
+#define K_14 0xAD
+#define K_15 0xAE
+#define K_16 0xAF
+
+#define L_1 0xB0
+#define L_2 0xB1
+#define L_3 0xB2
+#define L_4 0xB3
+#define L_5 0xB4
+#define L_6 0xB5
+#define L_7 0xB6
+#define L_8 0xB7
+#define L_9 0xB8
+#define L_10 0xB9
+#define L_11 0xBA
+#define L_12 0xBB
+#define L_13 0xBC
+#define L_14 0xBD
+#define L_15 0xBE
+#define L_16 0xBF
diff --git a/drivers/led/snled27351.c b/drivers/led/snled27351.c
new file mode 100644
index 0000000000..71992b7322
--- /dev/null
+++ b/drivers/led/snled27351.c
@@ -0,0 +1,281 @@
+/* Copyright 2021 @ Keychron (https://www.keychron.com)
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include "snled27351.h"
+#include "i2c_master.h"
+
+#define SNLED27351_PWM_REGISTER_COUNT 192
+#define SNLED27351_LED_CONTROL_REGISTER_COUNT 24
+
+#ifndef SNLED27351_I2C_TIMEOUT
+# define SNLED27351_I2C_TIMEOUT 100
+#endif
+
+#ifndef SNLED27351_I2C_PERSISTENCE
+# define SNLED27351_I2C_PERSISTENCE 0
+#endif
+
+#ifndef SNLED27351_PHASE_CHANNEL
+# define SNLED27351_PHASE_CHANNEL SNLED27351_SCAN_PHASE_12_CHANNEL
+#endif
+
+#ifndef SNLED27351_CURRENT_TUNE
+# define SNLED27351_CURRENT_TUNE \
+ { 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF }
+#endif
+
+// Transfer buffer for TWITransmitData()
+uint8_t g_twi_transfer_buffer[65];
+
+// These buffers match the SNLED27351 PWM registers.
+// The control buffers match the PG0 LED On/Off registers.
+// Storing them like this is optimal for I2C transfers to the registers.
+// We could optimize this and take out the unused registers from these
+// buffers and the transfers in snled27351_write_pwm_buffer() but it's
+// probably not worth the extra complexity.
+uint8_t g_pwm_buffer[SNLED27351_DRIVER_COUNT][SNLED27351_PWM_REGISTER_COUNT];
+bool g_pwm_buffer_update_required[SNLED27351_DRIVER_COUNT] = {false};
+
+uint8_t g_led_control_registers[SNLED27351_DRIVER_COUNT][SNLED27351_LED_CONTROL_REGISTER_COUNT] = {0};
+bool g_led_control_registers_update_required[SNLED27351_DRIVER_COUNT] = {false};
+
+bool snled27351_write_register(uint8_t addr, uint8_t reg, uint8_t data) {
+ // If the transaction fails function returns false.
+ g_twi_transfer_buffer[0] = reg;
+ g_twi_transfer_buffer[1] = data;
+
+#if SNLED27351_I2C_PERSISTENCE > 0
+ for (uint8_t i = 0; i < SNLED27351_I2C_PERSISTENCE; i++) {
+ if (i2c_transmit(addr << 1, g_twi_transfer_buffer, 2, SNLED27351_I2C_TIMEOUT) != 0) {
+ return false;
+ }
+ }
+#else
+ if (i2c_transmit(addr << 1, g_twi_transfer_buffer, 2, SNLED27351_I2C_TIMEOUT) != 0) {
+ return false;
+ }
+#endif
+ return true;
+}
+
+bool snled27351_write_pwm_buffer(uint8_t addr, uint8_t *pwm_buffer) {
+ // Assumes PG1 is already selected.
+ // If any of the transactions fails function returns false.
+ // Transmit PWM registers in 3 transfers of 64 bytes.
+
+ // Iterate over the pwm_buffer contents at 64 byte intervals.
+ for (uint8_t i = 0; i < SNLED27351_PWM_REGISTER_COUNT; i += 64) {
+ g_twi_transfer_buffer[0] = i;
+ // Copy the data from i to i+63.
+ // Device will auto-increment register for data after the first byte
+ // Thus this sets registers 0x00-0x0F, 0x10-0x1F, etc. in one transfer.
+ for (uint8_t j = 0; j < 64; j++) {
+ g_twi_transfer_buffer[1 + j] = pwm_buffer[i + j];
+ }
+
+#if SNLED27351_I2C_PERSISTENCE > 0
+ for (uint8_t i = 0; i < SNLED27351_I2C_PERSISTENCE; i++) {
+ if (i2c_transmit(addr << 1, g_twi_transfer_buffer, 65, SNLED27351_I2C_TIMEOUT) != 0) {
+ return false;
+ }
+ }
+#else
+ if (i2c_transmit(addr << 1, g_twi_transfer_buffer, 65, SNLED27351_I2C_TIMEOUT) != 0) {
+ return false;
+ }
+#endif
+ }
+ return true;
+}
+
+void snled27351_init_drivers(void) {
+ i2c_init();
+
+ snled27351_init(SNLED27351_I2C_ADDRESS_1);
+#if defined(SNLED27351_I2C_ADDRESS_2)
+ snled27351_init(SNLED27351_I2C_ADDRESS_2);
+# if defined(SNLED27351_I2C_ADDRESS_3)
+ snled27351_init(SNLED27351_I2C_ADDRESS_3);
+# if defined(SNLED27351_I2C_ADDRESS_4)
+ snled27351_init(SNLED27351_I2C_ADDRESS_4);
+# endif
+# endif
+#endif
+
+ for (int i = 0; i < SNLED27351_LED_COUNT; i++) {
+ snled27351_set_led_control_register(i, true, true, true);
+ }
+
+ snled27351_update_led_control_registers(SNLED27351_I2C_ADDRESS_1, 0);
+#if defined(SNLED27351_I2C_ADDRESS_2)
+ snled27351_update_led_control_registers(SNLED27351_I2C_ADDRESS_2, 1);
+# if defined(SNLED27351_I2C_ADDRESS_3)
+ snled27351_update_led_control_registers(SNLED27351_I2C_ADDRESS_3, 2);
+# if defined(SNLED27351_I2C_ADDRESS_4)
+ snled27351_update_led_control_registers(SNLED27351_I2C_ADDRESS_4, 3);
+# endif
+# endif
+#endif
+}
+
+void snled27351_init(uint8_t addr) {
+ // Select to function page
+ snled27351_write_register(addr, SNLED27351_REG_COMMAND, SNLED27351_COMMAND_FUNCTION);
+ // Setting LED driver to shutdown mode
+ snled27351_write_register(addr, SNLED27351_FUNCTION_REG_SOFTWARE_SHUTDOWN, SNLED27351_SOFTWARE_SHUTDOWN_SSD_SHUTDOWN);
+ // Setting internal channel pulldown/pullup
+ snled27351_write_register(addr, SNLED27351_FUNCTION_REG_PULLDOWNUP, SNLED27351_PULLDOWNUP_ALL_ENABLED);
+ // Select number of scan phase
+ snled27351_write_register(addr, SNLED27351_FUNCTION_REG_SCAN_PHASE, SNLED27351_PHASE_CHANNEL);
+ // Setting PWM Delay Phase
+ snled27351_write_register(addr, SNLED27351_FUNCTION_REG_SLEW_RATE_CONTROL_MODE_1, SNLED27351_SLEW_RATE_CONTROL_MODE_1_PDP_ENABLE);
+ // Setting Driving/Sinking Channel Slew Rate
+ snled27351_write_register(addr, SNLED27351_FUNCTION_REG_SLEW_RATE_CONTROL_MODE_2, SNLED27351_SLEW_RATE_CONTROL_MODE_2_DSL_ENABLE | SNLED27351_SLEW_RATE_CONTROL_MODE_2_SSL_ENABLE);
+ // Setting Iref
+ snled27351_write_register(addr, SNLED27351_FUNCTION_REG_SOFTWARE_SLEEP, 0);
+ // Set LED CONTROL PAGE (Page 0)
+ snled27351_write_register(addr, SNLED27351_REG_COMMAND, SNLED27351_COMMAND_LED_CONTROL);
+ for (int i = 0; i < SNLED27351_LED_CONTROL_ON_OFF_LENGTH; i++) {
+ snled27351_write_register(addr, i, 0x00);
+ }
+
+ // Set PWM PAGE (Page 1)
+ snled27351_write_register(addr, SNLED27351_REG_COMMAND, SNLED27351_COMMAND_PWM);
+ for (int i = 0; i < SNLED27351_LED_CURRENT_TUNE_LENGTH; i++) {
+ snled27351_write_register(addr, i, 0x00);
+ }
+
+ // Set CURRENT PAGE (Page 4)
+ uint8_t current_tune_reg_list[SNLED27351_LED_CURRENT_TUNE_LENGTH] = SNLED27351_CURRENT_TUNE;
+ snled27351_write_register(addr, SNLED27351_REG_COMMAND, SNLED27351_COMMAND_CURRENT_TUNE);
+ for (int i = 0; i < SNLED27351_LED_CURRENT_TUNE_LENGTH; i++) {
+ snled27351_write_register(addr, i, current_tune_reg_list[i]);
+ }
+
+ // Enable LEDs ON/OFF
+ snled27351_write_register(addr, SNLED27351_REG_COMMAND, SNLED27351_COMMAND_LED_CONTROL);
+ for (int i = 0; i < SNLED27351_LED_CONTROL_ON_OFF_LENGTH; i++) {
+ snled27351_write_register(addr, i, 0xFF);
+ }
+
+ // Select to function page
+ snled27351_write_register(addr, SNLED27351_REG_COMMAND, SNLED27351_COMMAND_FUNCTION);
+ // Setting LED driver to normal mode
+ snled27351_write_register(addr, SNLED27351_FUNCTION_REG_SOFTWARE_SHUTDOWN, SNLED27351_SOFTWARE_SHUTDOWN_SSD_NORMAL);
+}
+
+void snled27351_set_color(int index, uint8_t red, uint8_t green, uint8_t blue) {
+ snled27351_led_t led;
+ if (index >= 0 && index < SNLED27351_LED_COUNT) {
+ memcpy_P(&led, (&g_snled27351_leds[index]), sizeof(led));
+
+ if (g_pwm_buffer[led.driver][led.r] == red && g_pwm_buffer[led.driver][led.g] == green && g_pwm_buffer[led.driver][led.b] == blue) {
+ return;
+ }
+ g_pwm_buffer[led.driver][led.r] = red;
+ g_pwm_buffer[led.driver][led.g] = green;
+ g_pwm_buffer[led.driver][led.b] = blue;
+ g_pwm_buffer_update_required[led.driver] = true;
+ }
+}
+
+void snled27351_set_color_all(uint8_t red, uint8_t green, uint8_t blue) {
+ for (int i = 0; i < SNLED27351_LED_COUNT; i++) {
+ snled27351_set_color(i, red, green, blue);
+ }
+}
+
+void snled27351_set_led_control_register(uint8_t index, bool red, bool green, bool blue) {
+ snled27351_led_t led;
+ memcpy_P(&led, (&g_snled27351_leds[index]), sizeof(led));
+
+ uint8_t control_register_r = led.r / 8;
+ uint8_t control_register_g = led.g / 8;
+ uint8_t control_register_b = led.b / 8;
+ uint8_t bit_r = led.r % 8;
+ uint8_t bit_g = led.g % 8;
+ uint8_t bit_b = led.b % 8;
+
+ if (red) {
+ g_led_control_registers[led.driver][control_register_r] |= (1 << bit_r);
+ } else {
+ g_led_control_registers[led.driver][control_register_r] &= ~(1 << bit_r);
+ }
+ if (green) {
+ g_led_control_registers[led.driver][control_register_g] |= (1 << bit_g);
+ } else {
+ g_led_control_registers[led.driver][control_register_g] &= ~(1 << bit_g);
+ }
+ if (blue) {
+ g_led_control_registers[led.driver][control_register_b] |= (1 << bit_b);
+ } else {
+ g_led_control_registers[led.driver][control_register_b] &= ~(1 << bit_b);
+ }
+
+ g_led_control_registers_update_required[led.driver] = true;
+}
+
+void snled27351_update_pwm_buffers(uint8_t addr, uint8_t index) {
+ if (g_pwm_buffer_update_required[index]) {
+ snled27351_write_register(addr, SNLED27351_REG_COMMAND, SNLED27351_COMMAND_PWM);
+
+ // If any of the transactions fail we risk writing dirty PG0,
+ // refresh page 0 just in case.
+ if (!snled27351_write_pwm_buffer(addr, g_pwm_buffer[index])) {
+ g_led_control_registers_update_required[index] = true;
+ }
+ }
+ g_pwm_buffer_update_required[index] = false;
+}
+
+void snled27351_update_led_control_registers(uint8_t addr, uint8_t index) {
+ if (g_led_control_registers_update_required[index]) {
+ snled27351_write_register(addr, SNLED27351_REG_COMMAND, SNLED27351_COMMAND_LED_CONTROL);
+ for (int i = 0; i < SNLED27351_LED_CONTROL_REGISTER_COUNT; i++) {
+ snled27351_write_register(addr, i, g_led_control_registers[index][i]);
+ }
+ }
+ g_led_control_registers_update_required[index] = false;
+}
+
+void snled27351_flush(void) {
+ snled27351_update_pwm_buffers(SNLED27351_I2C_ADDRESS_1, 0);
+#if defined(SNLED27351_I2C_ADDRESS_2)
+ snled27351_update_pwm_buffers(SNLED27351_I2C_ADDRESS_2, 1);
+# if defined(SNLED27351_I2C_ADDRESS_3)
+ snled27351_update_pwm_buffers(SNLED27351_I2C_ADDRESS_3, 2);
+# if defined(SNLED27351_I2C_ADDRESS_4)
+ snled27351_update_pwm_buffers(SNLED27351_I2C_ADDRESS_4, 3);
+# endif
+# endif
+#endif
+}
+
+void snled27351_sw_return_normal(uint8_t addr) {
+ // Select to function page
+ snled27351_write_register(addr, SNLED27351_REG_COMMAND, SNLED27351_COMMAND_FUNCTION);
+ // Setting LED driver to normal mode
+ snled27351_write_register(addr, SNLED27351_FUNCTION_REG_SOFTWARE_SHUTDOWN, SNLED27351_SOFTWARE_SHUTDOWN_SSD_NORMAL);
+}
+
+void snled27351_sw_shutdown(uint8_t addr) {
+ // Select to function page
+ snled27351_write_register(addr, SNLED27351_REG_COMMAND, SNLED27351_COMMAND_FUNCTION);
+ // Setting LED driver to shutdown mode
+ snled27351_write_register(addr, SNLED27351_FUNCTION_REG_SOFTWARE_SHUTDOWN, SNLED27351_SOFTWARE_SHUTDOWN_SSD_SHUTDOWN);
+ // Write SW Sleep Register
+ snled27351_write_register(addr, SNLED27351_FUNCTION_REG_SOFTWARE_SLEEP, SNLED27351_SOFTWARE_SLEEP_ENABLE);
+}
diff --git a/drivers/led/snled27351.h b/drivers/led/snled27351.h
new file mode 100644
index 0000000000..77337f177b
--- /dev/null
+++ b/drivers/led/snled27351.h
@@ -0,0 +1,394 @@
+/* Copyright 2021 @ Keychron (https://www.keychron.com)
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#pragma once
+
+#include <stdint.h>
+#include <stdbool.h>
+#include "progmem.h"
+#include "util.h"
+
+// ======== DEPRECATED DEFINES - DO NOT USE ========
+#ifdef DRIVER_ADDR_1
+# define SNLED27351_I2C_ADDRESS_1 DRIVER_ADDR_1
+#endif
+#ifdef DRIVER_ADDR_2
+# define SNLED27351_I2C_ADDRESS_2 DRIVER_ADDR_2
+#endif
+#ifdef DRIVER_ADDR_3
+# define SNLED27351_I2C_ADDRESS_3 DRIVER_ADDR_3
+#endif
+#ifdef DRIVER_ADDR_4
+# define SNLED27351_I2C_ADDRESS_4 DRIVER_ADDR_4
+#endif
+#ifdef CKLED2001_TIMEOUT
+# define SNLED27351_I2C_TIMEOUT CKLED2001_TIMEOUT
+#endif
+#ifdef CKLED2001_PERSISTENCE
+# define SNLED27351_I2C_PERSISTENCE CKLED2001_PERSISTENCE
+#endif
+#ifdef PHASE_CHANNEL
+# define SNLED27351_PHASE_CHANNEL PHASE_CHANNEL
+#endif
+#ifdef CKLED2001_CURRENT_TUNE
+# define SNLED27351_CURRENT_TUNE CKLED2001_CURRENT_TUNE
+#endif
+
+#define MSKPHASE_12CHANNEL SNLED27351_SCAN_PHASE_12_CHANNEL
+#define MSKPHASE_11CHANNEL SNLED27351_SCAN_PHASE_11_CHANNEL
+#define MSKPHASE_10CHANNEL SNLED27351_SCAN_PHASE_10_CHANNEL
+#define MSKPHASE_9CHANNEL SNLED27351_SCAN_PHASE_9_CHANNEL
+#define MSKPHASE_8CHANNEL SNLED27351_SCAN_PHASE_8_CHANNEL
+#define MSKPHASE_7CHANNEL SNLED27351_SCAN_PHASE_7_CHANNEL
+#define MSKPHASE_6CHANNEL SNLED27351_SCAN_PHASE_6_CHANNEL
+#define MSKPHASE_5CHANNEL SNLED27351_SCAN_PHASE_5_CHANNEL
+#define MSKPHASE_4CHANNEL SNLED27351_SCAN_PHASE_4_CHANNEL
+#define MSKPHASE_3CHANNEL SNLED27351_SCAN_PHASE_3_CHANNEL
+#define MSKPHASE_2CHANNEL SNLED27351_SCAN_PHASE_2_CHANNEL
+#define MSKPHASE_1CHANNEL SNLED27351_SCAN_PHASE_1_CHANNEL
+
+#define ckled2001_led snled27351_led_t
+#define g_ckled2001_leds g_snled27351_leds
+// ========
+
+#define SNLED27351_REG_COMMAND 0xFD
+#define SNLED27351_COMMAND_LED_CONTROL 0x00
+#define SNLED27351_COMMAND_PWM 0x01
+#define SNLED27351_COMMAND_FUNCTION 0x03
+#define SNLED27351_COMMAND_CURRENT_TUNE 0x04
+
+#define SNLED27351_FUNCTION_REG_SOFTWARE_SHUTDOWN 0x00
+#define SNLED27351_SOFTWARE_SHUTDOWN_SSD_SHUTDOWN (0x0 << 0)
+#define SNLED27351_SOFTWARE_SHUTDOWN_SSD_NORMAL (0x1 << 0)
+
+#define SNLED27351_FUNCTION_REG_ID 0x11
+#define SNLED27351_DRIVER_ID 0x8A
+
+#define SNLED27351_FUNCTION_REG_PULLDOWNUP 0x13
+#define SNLED27351_PULLDOWNUP_ALL_ENABLED 0xAA
+
+#define SNLED27351_FUNCTION_REG_SCAN_PHASE 0x14
+#define SNLED27351_SCAN_PHASE_12_CHANNEL 0x00
+#define SNLED27351_SCAN_PHASE_11_CHANNEL 0x01
+#define SNLED27351_SCAN_PHASE_10_CHANNEL 0x02
+#define SNLED27351_SCAN_PHASE_9_CHANNEL 0x03
+#define SNLED27351_SCAN_PHASE_8_CHANNEL 0x04
+#define SNLED27351_SCAN_PHASE_7_CHANNEL 0x05
+#define SNLED27351_SCAN_PHASE_6_CHANNEL 0x06
+#define SNLED27351_SCAN_PHASE_5_CHANNEL 0x07
+#define SNLED27351_SCAN_PHASE_4_CHANNEL 0x08
+#define SNLED27351_SCAN_PHASE_3_CHANNEL 0x09
+#define SNLED27351_SCAN_PHASE_2_CHANNEL 0x0A
+#define SNLED27351_SCAN_PHASE_1_CHANNEL 0x0B
+
+#define SNLED27351_FUNCTION_REG_SLEW_RATE_CONTROL_MODE_1 0x15
+#define SNLED27351_SLEW_RATE_CONTROL_MODE_1_PDP_ENABLE (0b1 << 2)
+
+#define SNLED27351_FUNCTION_REG_SLEW_RATE_CONTROL_MODE_2 0x16
+#define SNLED27351_SLEW_RATE_CONTROL_MODE_2_SSL_ENABLE (0b1 << 6)
+#define SNLED27351_SLEW_RATE_CONTROL_MODE_2_DSL_ENABLE (0b1 << 7)
+
+#define SNLED27351_FUNCTION_REG_OPEN_SHORT_ENABLE 0x17
+#define SNLED27351_OPEN_SHORT_ENABLE_SDS_ENABLE (0b1 << 6)
+#define SNLED27351_OPEN_SHORT_ENABLE_ODS_ENABLE (0b1 << 7)
+
+#define SNLED27351_FUNCTION_REG_OPEN_SHORT_DUTY 0x18
+
+#define SNLED27351_FUNCTION_REG_OPEN_SHORT_FLAG 0x19
+#define SNLED27351_OPEN_SHORT_FLAG_OSINT_ENABLE (0b1 << 6)
+#define SNLED27351_OPEN_SHORT_FLAG_ODINT_ENABLE (0b1 << 7)
+
+#define SNLED27351_FUNCTION_REG_SOFTWARE_SLEEP 0x1A
+#define SNLED27351_SOFTWARE_SLEEP_ENABLE (0b1 << 1)
+
+// LED Control Registers
+#define SNLED27351_LED_CONTROL_ON_OFF_FIRST_ADDR 0x0
+#define SNLED27351_LED_CONTROL_ON_OFF_LAST_ADDR 0x17
+#define SNLED27351_LED_CONTROL_ON_OFF_LENGTH ((SNLED27351_LED_CONTROL_ON_OFF_LAST_ADDR - SNLED27351_LED_CONTROL_ON_OFF_FIRST_ADDR) + 1)
+
+#define SNLED27351_LED_CONTROL_OPEN_FIRST_ADDR 0x18
+#define SNLED27351_LED_CONTROL_OPEN_LAST_ADDR 0x2F
+#define SNLED27351_LED_CONTROL_OPEN_LENGTH ((SNLED27351_LED_CONTROL_OPEN_LAST_ADDR - SNLED27351_LED_CONTROL_OPEN_FIRST_ADDR) + 1)
+
+#define SNLED27351_LED_CONTROL_SHORT_FIRST_ADDR 0x30
+#define SNLED27351_LED_CONTROL_SHORT_LAST_ADDR 0x47
+#define SNLED27351_LED_CONTROL_SHORT_LENGTH ((SNLED27351_LED_CONTROL_SHORT_LAST_ADDR - SNLED27351_LED_CONTROL_SHORT_FIRST_ADDR) + 1)
+
+#define SNLED27351_LED_CONTROL_PAGE_LENGTH 0x48
+
+// LED Control Registers
+#define SNLED27351_LED_PWM_FIRST_ADDR 0x00
+#define SNLED27351_LED_PWM_LAST_ADDR 0xBF
+#define SNLED27351_LED_PWM_LENGTH 0xC0
+
+// Current Tune Registers
+#define SNLED27351_LED_CURRENT_TUNE_FIRST_ADDR 0x00
+#define SNLED27351_LED_CURRENT_TUNE_LAST_ADDR 0x0B
+#define SNLED27351_LED_CURRENT_TUNE_LENGTH 0x0C
+
+#define SNLED27351_I2C_ADDRESS_GND 0x74
+#define SNLED27351_I2C_ADDRESS_SCL 0x75
+#define SNLED27351_I2C_ADDRESS_SDA 0x76
+#define SNLED27351_I2C_ADDRESS_VDDIO 0x77
+
+#if defined(RGB_MATRIX_SNLED27351)
+# define SNLED27351_LED_COUNT RGB_MATRIX_LED_COUNT
+#endif
+
+#if defined(SNLED27351_I2C_ADDRESS_4)
+# define SNLED27351_DRIVER_COUNT 4
+#elif defined(SNLED27351_I2C_ADDRESS_3)
+# define SNLED27351_DRIVER_COUNT 3
+#elif defined(SNLED27351_I2C_ADDRESS_2)
+# define SNLED27351_DRIVER_COUNT 2
+#elif defined(SNLED27351_I2C_ADDRESS_1)
+# define SNLED27351_DRIVER_COUNT 1
+#endif
+
+typedef struct snled27351_led_t {
+ uint8_t driver : 2;
+ uint8_t r;
+ uint8_t g;
+ uint8_t b;
+} PACKED snled27351_led_t;
+
+extern const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT];
+
+void snled27351_init_drivers(void);
+void snled27351_init(uint8_t addr);
+bool snled27351_write_register(uint8_t addr, uint8_t reg, uint8_t data);
+bool snled27351_write_pwm_buffer(uint8_t addr, uint8_t *pwm_buffer);
+
+void snled27351_set_color(int index, uint8_t red, uint8_t green, uint8_t blue);
+void snled27351_set_color_all(uint8_t red, uint8_t green, uint8_t blue);
+
+void snled27351_set_led_control_register(uint8_t index, bool red, bool green, bool blue);
+
+// This should not be called from an interrupt
+// (eg. from a timer interrupt).
+// Call this while idle (in between matrix scans).
+// If the buffer is dirty, it will update the driver with the buffer.
+void snled27351_update_pwm_buffers(uint8_t addr, uint8_t index);
+void snled27351_update_led_control_registers(uint8_t addr, uint8_t index);
+
+void snled27351_flush(void);
+
+void snled27351_sw_return_normal(uint8_t addr);
+void snled27351_sw_shutdown(uint8_t addr);
+
+#define A_1 0x00
+#define A_2 0x01
+#define A_3 0x02
+#define A_4 0x03
+#define A_5 0x04
+#define A_6 0x05
+#define A_7 0x06
+#define A_8 0x07
+#define A_9 0x08
+#define A_10 0x09
+#define A_11 0x0A
+#define A_12 0x0B
+#define A_13 0x0C
+#define A_14 0x0D
+#define A_15 0x0E
+#define A_16 0x0F
+
+#define B_1 0x10
+#define B_2 0x11
+#define B_3 0x12
+#define B_4 0x13
+#define B_5 0x14
+#define B_6 0x15
+#define B_7 0x16
+#define B_8 0x17
+#define B_9 0x18
+#define B_10 0x19
+#define B_11 0x1A
+#define B_12 0x1B
+#define B_13 0x1C
+#define B_14 0x1D
+#define B_15 0x1E
+#define B_16 0x1F
+
+#define C_1 0x20
+#define C_2 0x21
+#define C_3 0x22
+#define C_4 0x23
+#define C_5 0x24
+#define C_6 0x25
+#define C_7 0x26
+#define C_8 0x27
+#define C_9 0x28
+#define C_10 0x29
+#define C_11 0x2A
+#define C_12 0x2B
+#define C_13 0x2C
+#define C_14 0x2D
+#define C_15 0x2E
+#define C_16 0x2F
+
+#define D_1 0x30
+#define D_2 0x31
+#define D_3 0x32
+#define D_4 0x33
+#define D_5 0x34
+#define D_6 0x35
+#define D_7 0x36
+#define D_8 0x37
+#define D_9 0x38
+#define D_10 0x39
+#define D_11 0x3A
+#define D_12 0x3B
+#define D_13 0x3C
+#define D_14 0x3D
+#define D_15 0x3E
+#define D_16 0x3F
+
+#define E_1 0x40
+#define E_2 0x41
+#define E_3 0x42
+#define E_4 0x43
+#define E_5 0x44
+#define E_6 0x45
+#define E_7 0x46
+#define E_8 0x47
+#define E_9 0x48
+#define E_10 0x49
+#define E_11 0x4A
+#define E_12 0x4B
+#define E_13 0x4C
+#define E_14 0x4D
+#define E_15 0x4E
+#define E_16 0x4F
+
+#define F_1 0x50
+#define F_2 0x51
+#define F_3 0x52
+#define F_4 0x53
+#define F_5 0x54
+#define F_6 0x55
+#define F_7 0x56
+#define F_8 0x57
+#define F_9 0x58
+#define F_10 0x59
+#define F_11 0x5A
+#define F_12 0x5B
+#define F_13 0x5C
+#define F_14 0x5D
+#define F_15 0x5E
+#define F_16 0x5F
+
+#define G_1 0x60
+#define G_2 0x61
+#define G_3 0x62
+#define G_4 0x63
+#define G_5 0x64
+#define G_6 0x65
+#define G_7 0x66
+#define G_8 0x67
+#define G_9 0x68
+#define G_10 0x69
+#define G_11 0x6A
+#define G_12 0x6B
+#define G_13 0x6C
+#define G_14 0x6D
+#define G_15 0x6E
+#define G_16 0x6F
+
+#define H_1 0x70
+#define H_2 0x71
+#define H_3 0x72
+#define H_4 0x73
+#define H_5 0x74
+#define H_6 0x75
+#define H_7 0x76
+#define H_8 0x77
+#define H_9 0x78
+#define H_10 0x79
+#define H_11 0x7A
+#define H_12 0x7B
+#define H_13 0x7C
+#define H_14 0x7D
+#define H_15 0x7E
+#define H_16 0x7F
+
+#define I_1 0x80
+#define I_2 0x81
+#define I_3 0x82
+#define I_4 0x83
+#define I_5 0x84
+#define I_6 0x85
+#define I_7 0x86
+#define I_8 0x87
+#define I_9 0x88
+#define I_10 0x89
+#define I_11 0x8A
+#define I_12 0x8B
+#define I_13 0x8C
+#define I_14 0x8D
+#define I_15 0x8E
+#define I_16 0x8F
+
+#define J_1 0x90
+#define J_2 0x91
+#define J_3 0x92
+#define J_4 0x93
+#define J_5 0x94
+#define J_6 0x95
+#define J_7 0x96
+#define J_8 0x97
+#define J_9 0x98
+#define J_10 0x99
+#define J_11 0x9A
+#define J_12 0x9B
+#define J_13 0x9C
+#define J_14 0x9D
+#define J_15 0x9E
+#define J_16 0x9F
+
+#define K_1 0xA0
+#define K_2 0xA1
+#define K_3 0xA2
+#define K_4 0xA3
+#define K_5 0xA4
+#define K_6 0xA5
+#define K_7 0xA6
+#define K_8 0xA7
+#define K_9 0xA8
+#define K_10 0xA9
+#define K_11 0xAA
+#define K_12 0xAB
+#define K_13 0xAC
+#define K_14 0xAD
+#define K_15 0xAE
+#define K_16 0xAF
+
+#define L_1 0xB0
+#define L_2 0xB1
+#define L_3 0xB2
+#define L_4 0xB3
+#define L_5 0xB4
+#define L_6 0xB5
+#define L_7 0xB6
+#define L_8 0xB7
+#define L_9 0xB8
+#define L_10 0xB9
+#define L_11 0xBA
+#define L_12 0xBB
+#define L_13 0xBC
+#define L_14 0xBD
+#define L_15 0xBE
+#define L_16 0xBF
diff --git a/drivers/oled/oled_driver.c b/drivers/oled/oled_driver.c
index b9f7207813..4a2121cd7c 100644
--- a/drivers/oled/oled_driver.c
+++ b/drivers/oled/oled_driver.c
@@ -451,7 +451,7 @@ static void rotate_90(const uint8_t *src, uint8_t *dest) {
}
}
-void oled_render(void) {
+void oled_render_dirty(bool all) {
// Do we have work to do?
oled_dirty &= OLED_ALL_BLOCKS_MASK;
if (!oled_dirty || !oled_initialized || oled_scrolling) {
@@ -463,7 +463,7 @@ void oled_render(void) {
uint8_t update_start = 0;
uint8_t num_processed = 0;
- while (oled_dirty && num_processed++ < OLED_UPDATE_PROCESS_LIMIT) { // render all dirty blocks (up to the configured limit)
+ while (oled_dirty && (num_processed++ < OLED_UPDATE_PROCESS_LIMIT || all)) { // render all dirty blocks (up to the configured limit)
// Find next dirty block
while (!(oled_dirty & ((OLED_BLOCK_TYPE)1 << update_start))) {
++update_start;
diff --git a/drivers/oled/oled_driver.h b/drivers/oled/oled_driver.h
index 91c376ec27..c3db7e6d97 100644
--- a/drivers/oled/oled_driver.h
+++ b/drivers/oled/oled_driver.h
@@ -353,20 +353,24 @@ oled_rotation_t oled_init_user(oled_rotation_t rotation);
// Clears the display buffer, resets cursor position to 0, and sets the buffer to dirty for rendering
void oled_clear(void);
-// Renders the dirty chunks of the buffer to oled display
-void oled_render(void);
+// Alias to oled_render_dirty to avoid a change in api.
+#define oled_render() oled_render_dirty(false)
+
+// Renders all dirty blocks to the display at one time or a subset depending on the value of
+// all.
+void oled_render_dirty(bool all);
// Moves cursor to character position indicated by column and line, wraps if out of bounds
// Max column denoted by 'oled_max_chars()' and max lines by 'oled_max_lines()' functions
void oled_set_cursor(uint8_t col, uint8_t line);
// Advances the cursor to the next page, writing ' ' if true
-// Wraps to the begining when out of bounds
+// Wraps to the beginning when out of bounds
void oled_advance_page(bool clearPageRemainder);
// Moves the cursor forward 1 character length
// Advance page if there is not enough room for the next character
-// Wraps to the begining when out of bounds
+// Wraps to the beginning when out of bounds
void oled_advance_char(void);
// Writes a single character to the buffer at current cursor position
@@ -433,10 +437,10 @@ bool oled_off(void);
// not
bool is_oled_on(void);
-// Sets the brightness of the display
+// Sets the brightness level of the display
uint8_t oled_set_brightness(uint8_t level);
-// Gets the current brightness of the display
+// Gets the current brightness level of the display
uint8_t oled_get_brightness(void);
// Basically it's oled_render, but with timeout management and oled_task_user calling!
@@ -458,12 +462,12 @@ void oled_scroll_set_area(uint8_t start_line, uint8_t end_line);
// 0=2, 1=3, 2=4, 3=5, 4=25, 5=64, 6=128, 7=256
void oled_scroll_set_speed(uint8_t speed);
-// Scrolls the entire display right
+// Begin scrolling the entire display right
// Returns true if the screen was scrolling or starts scrolling
// NOTE: display contents cannot be changed while scrolling
bool oled_scroll_right(void);
-// Scrolls the entire display left
+// Begin scrolling the entire display left
// Returns true if the screen was scrolling or starts scrolling
// NOTE: display contents cannot be changed while scrolling
bool oled_scroll_left(void);
diff --git a/drivers/painter/comms/qp_comms_dummy.c b/drivers/painter/comms/qp_comms_dummy.c
new file mode 100644
index 0000000000..2ed49d2232
--- /dev/null
+++ b/drivers/painter/comms/qp_comms_dummy.c
@@ -0,0 +1,34 @@
+// Copyright 2023 Nick Brassel (@tzarc)
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#ifdef QUANTUM_PAINTER_DUMMY_COMMS_ENABLE
+
+# include "qp_comms_dummy.h"
+
+static bool dummy_comms_init(painter_device_t device) {
+ // No-op.
+ return true;
+}
+
+static bool dummy_comms_start(painter_device_t device) {
+ // No-op.
+ return true;
+}
+
+static void dummy_comms_stop(painter_device_t device) {
+ // No-op.
+}
+
+uint32_t dummy_comms_send(painter_device_t device, const void *data, uint32_t byte_count) {
+ // No-op.
+ return byte_count;
+}
+
+painter_comms_vtable_t dummy_comms_vtable = {
+ // These are all effective no-op's because they're not actually needed.
+ .comms_init = dummy_comms_init,
+ .comms_start = dummy_comms_start,
+ .comms_stop = dummy_comms_stop,
+ .comms_send = dummy_comms_send};
+
+#endif // QUANTUM_PAINTER_DUMMY_COMMS_ENABLE
diff --git a/drivers/painter/comms/qp_comms_dummy.h b/drivers/painter/comms/qp_comms_dummy.h
new file mode 100644
index 0000000000..b2d5d6eea5
--- /dev/null
+++ b/drivers/painter/comms/qp_comms_dummy.h
@@ -0,0 +1,11 @@
+// Copyright 2023 Nick Brassel (@tzarc)
+// SPDX-License-Identifier: GPL-2.0-or-later
+#pragma once
+
+#ifdef QUANTUM_PAINTER_DUMMY_COMMS_ENABLE
+
+# include "qp_internal.h"
+
+extern painter_comms_vtable_t dummy_comms_vtable;
+
+#endif // QUANTUM_PAINTER_DUMMY_COMMS_ENABLE
diff --git a/drivers/painter/comms/qp_comms_i2c.c b/drivers/painter/comms/qp_comms_i2c.c
new file mode 100644
index 0000000000..ec45ddfb3b
--- /dev/null
+++ b/drivers/painter/comms/qp_comms_i2c.c
@@ -0,0 +1,94 @@
+// Copyright 2022 Nick Brassel (@tzarc)
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#ifdef QUANTUM_PAINTER_I2C_ENABLE
+
+# include "i2c_master.h"
+# include "qp_comms_i2c.h"
+
+////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+// Helpers
+
+static uint32_t qp_comms_i2c_send_raw(painter_device_t device, const void *data, uint32_t byte_count) {
+ painter_driver_t * driver = (painter_driver_t *)device;
+ qp_comms_i2c_config_t *comms_config = (qp_comms_i2c_config_t *)driver->comms_config;
+ i2c_status_t res = i2c_transmit(comms_config->chip_address << 1, data, byte_count, I2C_TIMEOUT);
+ if (res < 0) {
+ return 0;
+ }
+ return byte_count;
+}
+
+////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+// Base I2C support
+
+bool qp_comms_i2c_init(painter_device_t device) {
+ i2c_init();
+ return true;
+}
+
+bool qp_comms_i2c_start(painter_device_t device) {
+ painter_driver_t * driver = (painter_driver_t *)device;
+ qp_comms_i2c_config_t *comms_config = (qp_comms_i2c_config_t *)driver->comms_config;
+ return i2c_start(comms_config->chip_address << 1) == I2C_STATUS_SUCCESS;
+}
+
+uint32_t qp_comms_i2c_send_data(painter_device_t device, const void *data, uint32_t byte_count) {
+ return qp_comms_i2c_send_raw(device, data, byte_count);
+}
+
+void qp_comms_i2c_stop(painter_device_t device) {
+ i2c_stop();
+}
+
+////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+// Command+Data I2C support
+
+static const uint8_t cmd_byte = 0x00;
+static const uint8_t data_byte = 0x40;
+
+void qp_comms_i2c_cmddata_send_command(painter_device_t device, uint8_t cmd) {
+ uint8_t buf[2] = {cmd_byte, cmd};
+ qp_comms_i2c_send_raw(device, &buf, 2);
+}
+
+uint32_t qp_comms_i2c_cmddata_send_data(painter_device_t device, const void *data, uint32_t byte_count) {
+ uint8_t buf[1 + byte_count];
+ buf[0] = data_byte;
+ memcpy(&buf[1], data, byte_count);
+ if (qp_comms_i2c_send_raw(device, buf, sizeof(buf)) != sizeof(buf)) {
+ return 0;
+ }
+ return byte_count;
+}
+
+void qp_comms_i2c_bulk_command_sequence(painter_device_t device, const uint8_t *sequence, size_t sequence_len) {
+ uint8_t buf[32];
+ for (size_t i = 0; i < sequence_len;) {
+ uint8_t command = sequence[i];
+ uint8_t delay = sequence[i + 1];
+ uint8_t num_bytes = sequence[i + 2];
+ buf[0] = cmd_byte;
+ buf[1] = command;
+ memcpy(&buf[2], &sequence[i + 3], num_bytes);
+ qp_comms_i2c_send_raw(device, buf, num_bytes + 2);
+ if (delay > 0) {
+ wait_ms(delay);
+ }
+ i += (3 + num_bytes);
+ }
+}
+
+const painter_comms_with_command_vtable_t i2c_comms_cmddata_vtable = {
+ .base =
+ {
+ .comms_init = qp_comms_i2c_init,
+ .comms_start = qp_comms_i2c_start,
+ .comms_send = qp_comms_i2c_cmddata_send_data,
+ .comms_stop = qp_comms_i2c_stop,
+ },
+ .send_command = qp_comms_i2c_cmddata_send_command,
+ .bulk_command_sequence = qp_comms_i2c_bulk_command_sequence,
+};
+
+#endif // QUANTUM_PAINTER_I2C_ENABLE
diff --git a/drivers/painter/comms/qp_comms_i2c.h b/drivers/painter/comms/qp_comms_i2c.h
new file mode 100644
index 0000000000..70083d6526
--- /dev/null
+++ b/drivers/painter/comms/qp_comms_i2c.h
@@ -0,0 +1,28 @@
+// Copyright 2022 Nick Brassel (@tzarc)
+// SPDX-License-Identifier: GPL-2.0-or-later
+#pragma once
+
+#ifdef QUANTUM_PAINTER_I2C_ENABLE
+
+# include <stdint.h>
+
+# include "gpio.h"
+# include "qp_internal.h"
+
+////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+// Base I2C support
+
+typedef struct qp_comms_i2c_config_t {
+ uint8_t chip_address;
+} qp_comms_i2c_config_t;
+
+bool qp_comms_i2c_init(painter_device_t device);
+bool qp_comms_i2c_start(painter_device_t device);
+uint32_t qp_comms_i2c_send_data(painter_device_t device, const void* data, uint32_t byte_count);
+void qp_comms_i2c_stop(painter_device_t device);
+
+extern const painter_comms_with_command_vtable_t i2c_comms_cmddata_vtable;
+
+////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+
+#endif // QUANTUM_PAINTER_I2C_ENABLE
diff --git a/drivers/painter/comms/qp_comms_spi.c b/drivers/painter/comms/qp_comms_spi.c
index 7534e844d8..9f52bc7d1f 100644
--- a/drivers/painter/comms/qp_comms_spi.c
+++ b/drivers/painter/comms/qp_comms_spi.c
@@ -105,13 +105,21 @@ void qp_comms_spi_dc_reset_send_command(painter_device_t device, uint8_t cmd) {
}
void qp_comms_spi_dc_reset_bulk_command_sequence(painter_device_t device, const uint8_t *sequence, size_t sequence_len) {
+ painter_driver_t * driver = (painter_driver_t *)device;
+ qp_comms_spi_dc_reset_config_t *comms_config = (qp_comms_spi_dc_reset_config_t *)driver->comms_config;
for (size_t i = 0; i < sequence_len;) {
uint8_t command = sequence[i];
uint8_t delay = sequence[i + 1];
uint8_t num_bytes = sequence[i + 2];
qp_comms_spi_dc_reset_send_command(device, command);
if (num_bytes > 0) {
- qp_comms_spi_dc_reset_send_data(device, &sequence[i + 3], num_bytes);
+ if (comms_config->command_params_uses_command_pin) {
+ for (uint8_t j = 0; j < num_bytes; j++) {
+ qp_comms_spi_dc_reset_send_command(device, sequence[i + 3 + j]);
+ }
+ } else {
+ qp_comms_spi_dc_reset_send_data(device, &sequence[i + 3], num_bytes);
+ }
}
if (delay > 0) {
wait_ms(delay);
diff --git a/drivers/painter/comms/qp_comms_spi.h b/drivers/painter/comms/qp_comms_spi.h
index b3da86d573..ff323c3c10 100644
--- a/drivers/painter/comms/qp_comms_spi.h
+++ b/drivers/painter/comms/qp_comms_spi.h
@@ -1,6 +1,5 @@
// Copyright 2021 Nick Brassel (@tzarc)
// SPDX-License-Identifier: GPL-2.0-or-later
-
#pragma once
#ifdef QUANTUM_PAINTER_SPI_ENABLE
@@ -36,6 +35,7 @@ typedef struct qp_comms_spi_dc_reset_config_t {
qp_comms_spi_config_t spi_config;
pin_t dc_pin;
pin_t reset_pin;
+ bool command_params_uses_command_pin; // keep D/C held low when sending command sequences for data bytes
} qp_comms_spi_dc_reset_config_t;
void qp_comms_spi_dc_reset_send_command(painter_device_t device, uint8_t cmd);
diff --git a/drivers/painter/gc9a01/qp_gc9a01.c b/drivers/painter/gc9a01/qp_gc9a01.c
index a2eb2cf57c..fe6fa7a9d0 100644
--- a/drivers/painter/gc9a01/qp_gc9a01.c
+++ b/drivers/painter/gc9a01/qp_gc9a01.c
@@ -2,7 +2,6 @@
// Copyright 2023 Nick Brassel (@tzarc)
// SPDX-License-Identifier: GPL-2.0-or-later
-#include <wait.h>
#include "qp_internal.h"
#include "qp_comms.h"
#include "qp_gc9a01.h"
@@ -135,13 +134,14 @@ painter_device_t qp_gc9a01_make_spi_device(uint16_t panel_width, uint16_t panel_
driver->base.offset_y = 0;
// SPI and other pin configuration
- driver->base.comms_config = &driver->spi_dc_reset_config;
- driver->spi_dc_reset_config.spi_config.chip_select_pin = chip_select_pin;
- driver->spi_dc_reset_config.spi_config.divisor = spi_divisor;
- driver->spi_dc_reset_config.spi_config.lsb_first = false;
- driver->spi_dc_reset_config.spi_config.mode = spi_mode;
- driver->spi_dc_reset_config.dc_pin = dc_pin;
- driver->spi_dc_reset_config.reset_pin = reset_pin;
+ driver->base.comms_config = &driver->spi_dc_reset_config;
+ driver->spi_dc_reset_config.spi_config.chip_select_pin = chip_select_pin;
+ driver->spi_dc_reset_config.spi_config.divisor = spi_divisor;
+ driver->spi_dc_reset_config.spi_config.lsb_first = false;
+ driver->spi_dc_reset_config.spi_config.mode = spi_mode;
+ driver->spi_dc_reset_config.dc_pin = dc_pin;
+ driver->spi_dc_reset_config.reset_pin = reset_pin;
+ driver->spi_dc_reset_config.command_params_uses_command_pin = false;
if (!qp_internal_register_device((painter_device_t)driver)) {
memset(driver, 0, sizeof(tft_panel_dc_reset_painter_device_t));
diff --git a/drivers/painter/gc9a01/qp_gc9a01.h b/drivers/painter/gc9a01/qp_gc9a01.h
index e2b1939564..31a3804b50 100644
--- a/drivers/painter/gc9a01/qp_gc9a01.h
+++ b/drivers/painter/gc9a01/qp_gc9a01.h
@@ -1,6 +1,5 @@
// Copyright 2021 Paul Cotter (@gr1mr3aver)
// SPDX-License-Identifier: GPL-2.0-or-later
-
#pragma once
#include "gpio.h"
diff --git a/drivers/painter/gc9a01/qp_gc9a01_opcodes.h b/drivers/painter/gc9a01/qp_gc9a01_opcodes.h
index 6ff4efe7a8..828e42752b 100644
--- a/drivers/painter/gc9a01/qp_gc9a01_opcodes.h
+++ b/drivers/painter/gc9a01/qp_gc9a01_opcodes.h
@@ -1,6 +1,5 @@
// Copyright 2021 Paul Cotter (@gr1mr3aver)
// SPDX-License-Identifier: GPL-2.0-or-later
-
#pragma once
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
diff --git a/drivers/painter/generic/qp_rgb565_surface.c b/drivers/painter/generic/qp_rgb565_surface.c
deleted file mode 100644
index 9c283e0687..0000000000
--- a/drivers/painter/generic/qp_rgb565_surface.c
+++ /dev/null
@@ -1,284 +0,0 @@
-// Copyright 2022 Nick Brassel (@tzarc)
-// SPDX-License-Identifier: GPL-2.0-or-later
-#include "color.h"
-#include "qp_rgb565_surface.h"
-#include "qp_draw.h"
-
-////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-// Common
-
-// Device definition
-typedef struct rgb565_surface_painter_device_t {
- painter_driver_t base; // must be first, so it can be cast to/from the painter_device_t* type
-
- // The target buffer
- uint16_t *buffer;
-
- // Manually manage the viewport for streaming pixel data to the display
- uint16_t viewport_l;
- uint16_t viewport_t;
- uint16_t viewport_r;
- uint16_t viewport_b;
-
- // Current write location to the display when streaming pixel data
- uint16_t pixdata_x;
- uint16_t pixdata_y;
-
- // Maintain a dirty region so we can stream only what we need
- bool is_dirty;
- uint16_t dirty_l;
- uint16_t dirty_t;
- uint16_t dirty_r;
- uint16_t dirty_b;
-
-} rgb565_surface_painter_device_t;
-
-// Driver storage
-rgb565_surface_painter_device_t surface_drivers[RGB565_SURFACE_NUM_DEVICES] = {0};
-
-////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-// Helpers
-
-static inline void increment_pixdata_location(rgb565_surface_painter_device_t *surface) {
- // Increment the X-position
- surface->pixdata_x++;
-
- // If the x-coord has gone past the right-side edge, loop it back around and increment the y-coord
- if (surface->pixdata_x > surface->viewport_r) {
- surface->pixdata_x = surface->viewport_l;
- surface->pixdata_y++;
- }
-
- // If the y-coord has gone past the bottom, loop it back to the top
- if (surface->pixdata_y > surface->viewport_b) {
- surface->pixdata_y = surface->viewport_t;
- }
-}
-
-static inline void setpixel(rgb565_surface_painter_device_t *surface, uint16_t x, uint16_t y, uint16_t rgb565) {
- // Skip messing with the dirty info if the original value already matches
- if (surface->buffer[y * surface->base.panel_width + x] != rgb565) {
- // Maintain dirty region
- if (surface->dirty_l > x) {
- surface->dirty_l = x;
- }
- if (surface->dirty_r < x) {
- surface->dirty_r = x;
- }
- if (surface->dirty_t > y) {
- surface->dirty_t = y;
- }
- if (surface->dirty_b < y) {
- surface->dirty_b = y;
- }
-
- // Always dirty after a setpixel
- surface->is_dirty = true;
-
- // Update the pixel data in the buffer
- surface->buffer[y * surface->base.panel_width + x] = rgb565;
- }
-}
-
-static inline void append_pixel(rgb565_surface_painter_device_t *surface, uint16_t rgb565) {
- setpixel(surface, surface->pixdata_x, surface->pixdata_y, rgb565);
- increment_pixdata_location(surface);
-}
-
-static inline void stream_pixdata(rgb565_surface_painter_device_t *surface, const uint16_t *data, uint32_t native_pixel_count) {
- for (uint32_t pixel_counter = 0; pixel_counter < native_pixel_count; ++pixel_counter) {
- append_pixel(surface, data[pixel_counter]);
- }
-}
-
-////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-// Driver vtable
-
-static bool qp_rgb565_surface_init(painter_device_t device, painter_rotation_t rotation) {
- painter_driver_t * driver = (painter_driver_t *)device;
- rgb565_surface_painter_device_t *surface = (rgb565_surface_painter_device_t *)driver;
- memset(surface->buffer, 0, driver->panel_width * driver->panel_height * driver->native_bits_per_pixel / 8);
- return true;
-}
-
-static bool qp_rgb565_surface_power(painter_device_t device, bool power_on) {
- // No-op.
- return true;
-}
-
-static bool qp_rgb565_surface_clear(painter_device_t device) {
- painter_driver_t *driver = (painter_driver_t *)device;
- driver->driver_vtable->init(device, driver->rotation); // Re-init the surface
- return true;
-}
-
-static bool qp_rgb565_surface_flush(painter_device_t device) {
- painter_driver_t * driver = (painter_driver_t *)device;
- rgb565_surface_painter_device_t *surface = (rgb565_surface_painter_device_t *)driver;
- surface->dirty_l = surface->dirty_t = UINT16_MAX;
- surface->dirty_r = surface->dirty_b = 0;
- surface->is_dirty = false;
- return true;
-}
-
-static bool qp_rgb565_surface_viewport(painter_device_t device, uint16_t left, uint16_t top, uint16_t right, uint16_t bottom) {
- painter_driver_t * driver = (painter_driver_t *)device;
- rgb565_surface_painter_device_t *surface = (rgb565_surface_painter_device_t *)driver;
-
- // Set the viewport locations
- surface->viewport_l = left;
- surface->viewport_t = top;
- surface->viewport_r = right;
- surface->viewport_b = bottom;
-
- // Reset the write location to the top left
- surface->pixdata_x = left;
- surface->pixdata_y = top;
- return true;
-}
-
-// Stream pixel data to the current write position in GRAM
-static bool qp_rgb565_surface_pixdata(painter_device_t device, const void *pixel_data, uint32_t native_pixel_count) {
- painter_driver_t * driver = (painter_driver_t *)device;
- rgb565_surface_painter_device_t *surface = (rgb565_surface_painter_device_t *)driver;
- stream_pixdata(surface, (const uint16_t *)pixel_data, native_pixel_count);
- return true;
-}
-
-// Pixel colour conversion
-static bool qp_rgb565_surface_palette_convert_rgb565_swapped(painter_device_t device, int16_t palette_size, qp_pixel_t *palette) {
- for (int16_t i = 0; i < palette_size; ++i) {
- RGB rgb = hsv_to_rgb_nocie((HSV){palette[i].hsv888.h, palette[i].hsv888.s, palette[i].hsv888.v});
- uint16_t rgb565 = (((uint16_t)rgb.r) >> 3) << 11 | (((uint16_t)rgb.g) >> 2) << 5 | (((uint16_t)rgb.b) >> 3);
- palette[i].rgb565 = __builtin_bswap16(rgb565);
- }
- return true;
-}
-
-// Append pixels to the target location, keyed by the pixel index
-static bool qp_rgb565_surface_append_pixels_rgb565(painter_device_t device, uint8_t *target_buffer, qp_pixel_t *palette, uint32_t pixel_offset, uint32_t pixel_count, uint8_t *palette_indices) {
- uint16_t *buf = (uint16_t *)target_buffer;
- for (uint32_t i = 0; i < pixel_count; ++i) {
- buf[pixel_offset + i] = palette[palette_indices[i]].rgb565;
- }
- return true;
-}
-
-// Append data to the target location
-static bool qp_rgb565_surface_append_pixdata(painter_device_t device, uint8_t *target_buffer, uint32_t pixdata_offset, uint8_t pixdata_byte) {
- target_buffer[pixdata_offset] = pixdata_byte;
- return true;
-}
-
-const painter_driver_vtable_t rgb565_surface_driver_vtable = {
- .init = qp_rgb565_surface_init,
- .power = qp_rgb565_surface_power,
- .clear = qp_rgb565_surface_clear,
- .flush = qp_rgb565_surface_flush,
- .pixdata = qp_rgb565_surface_pixdata,
- .viewport = qp_rgb565_surface_viewport,
- .palette_convert = qp_rgb565_surface_palette_convert_rgb565_swapped,
- .append_pixels = qp_rgb565_surface_append_pixels_rgb565,
- .append_pixdata = qp_rgb565_surface_append_pixdata,
-};
-
-////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-// Comms vtable
-
-static bool qp_rgb565_surface_comms_init(painter_device_t device) {
- // No-op.
- return true;
-}
-static bool qp_rgb565_surface_comms_start(painter_device_t device) {
- // No-op.
- return true;
-}
-static void qp_rgb565_surface_comms_stop(painter_device_t device) {
- // No-op.
-}
-uint32_t qp_rgb565_surface_comms_send(painter_device_t device, const void *data, uint32_t byte_count) {
- // No-op.
- return byte_count;
-}
-
-painter_comms_vtable_t rgb565_surface_driver_comms_vtable = {
- // These are all effective no-op's because they're not actually needed.
- .comms_init = qp_rgb565_surface_comms_init,
- .comms_start = qp_rgb565_surface_comms_start,
- .comms_stop = qp_rgb565_surface_comms_stop,
- .comms_send = qp_rgb565_surface_comms_send};
-
-////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-// Factory function for creating a handle to an rgb565 surface
-
-painter_device_t qp_rgb565_make_surface(uint16_t panel_width, uint16_t panel_height, void *buffer) {
- for (uint32_t i = 0; i < RGB565_SURFACE_NUM_DEVICES; ++i) {
- rgb565_surface_painter_device_t *driver = &surface_drivers[i];
- if (!driver->base.driver_vtable) {
- driver->base.driver_vtable = &rgb565_surface_driver_vtable;
- driver->base.comms_vtable = &rgb565_surface_driver_comms_vtable;
- driver->base.native_bits_per_pixel = 16; // RGB565
- driver->base.panel_width = panel_width;
- driver->base.panel_height = panel_height;
- driver->base.rotation = QP_ROTATION_0;
- driver->base.offset_x = 0;
- driver->base.offset_y = 0;
- driver->buffer = (uint16_t *)buffer;
- return (painter_device_t)driver;
- }
- }
- return NULL;
-}
-
-////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-// Drawing routine to copy out the dirty region and send it to another device
-
-bool qp_rgb565_surface_draw(painter_device_t surface, painter_device_t display, uint16_t x, uint16_t y) {
- painter_driver_t * surface_driver = (painter_driver_t *)surface;
- rgb565_surface_painter_device_t *surface_handle = (rgb565_surface_painter_device_t *)surface_driver;
-
- // If we're not dirty... we're done.
- if (!surface_handle->is_dirty) {
- return true;
- }
-
- // Set the target drawing area
- bool ok = qp_viewport(display, x + surface_handle->dirty_l, y + surface_handle->dirty_t, x + surface_handle->dirty_r, y + surface_handle->dirty_b);
- if (!ok) {
- return false;
- }
-
- // Housekeeping of the amount of pixels to transfer
- uint32_t total_pixel_count = QUANTUM_PAINTER_PIXDATA_BUFFER_SIZE / sizeof(uint16_t);
- uint32_t pixel_counter = 0;
- uint16_t *target_buffer = (uint16_t *)qp_internal_global_pixdata_buffer;
-
- // Fill the global pixdata area so that we can start transferring to the panel
- for (uint16_t y = surface_handle->dirty_t; y <= surface_handle->dirty_b; ++y) {
- for (uint16_t x = surface_handle->dirty_l; x <= surface_handle->dirty_r; ++x) {
- // Update the target buffer
- target_buffer[pixel_counter++] = surface_handle->buffer[y * surface_handle->base.panel_width + x];
-
- // If we've accumulated enough data, send it
- if (pixel_counter == total_pixel_count) {
- ok = qp_pixdata(display, qp_internal_global_pixdata_buffer, pixel_counter);
- if (!ok) {
- return false;
- }
- // Reset the counter
- pixel_counter = 0;
- }
- }
- }
-
- // If there's any leftover data, send it
- if (pixel_counter > 0) {
- ok = qp_pixdata(display, qp_internal_global_pixdata_buffer, pixel_counter);
- if (!ok) {
- return false;
- }
- }
-
- // Clear the dirty info for the surface
- return qp_flush(surface);
-}
diff --git a/drivers/painter/generic/qp_rgb565_surface.h b/drivers/painter/generic/qp_rgb565_surface.h
deleted file mode 100644
index 19e919bb91..0000000000
--- a/drivers/painter/generic/qp_rgb565_surface.h
+++ /dev/null
@@ -1,42 +0,0 @@
-// Copyright 2022 Nick Brassel (@tzarc)
-// SPDX-License-Identifier: GPL-2.0-or-later
-#include "qp_internal.h"
-
-////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-// Quantum Painter RGB565 surface configurables (add to your keyboard's config.h)
-
-#ifndef RGB565_SURFACE_NUM_DEVICES
-/**
- * @def This controls the maximum number of surface devices that Quantum Painter can use at any one time.
- * Increasing this number allows for multiple framebuffers to be used. Each requires its own RAM allocation.
- */
-# define RGB565_SURFACE_NUM_DEVICES 1
-#endif
-
-////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-// Forward declarations
-
-#ifdef QUANTUM_PAINTER_RGB565_SURFACE_ENABLE
-/**
- * Factory method for an RGB565 surface (aka framebuffer).
- *
- * @param panel_width[in] the width of the display panel
- * @param panel_height[in] the height of the display panel
- * @param buffer[in] pointer to a preallocated buffer of size `(sizeof(uint16_t) * panel_width * panel_height)`
- * @return the device handle used with all drawing routines in Quantum Painter
- */
-painter_device_t qp_rgb565_make_surface(uint16_t panel_width, uint16_t panel_height, void *buffer);
-
-/**
- * Helper method to draw the dirty contents of the framebuffer to the target device.
- *
- * After successful completion, the dirty area is reset.
- *
- * @param surface[in] the surface to copy from
- * @param display[in] the display to copy into
- * @param x[in] the x-location of the original position of the framebuffer
- * @param y[in] the y-location of the original position of the framebuffer
- * @return whether the draw operation completed successfully
- */
-bool qp_rgb565_surface_draw(painter_device_t surface, painter_device_t display, uint16_t x, uint16_t y);
-#endif // QUANTUM_PAINTER_RGB565_SURFACE_ENABLE
diff --git a/drivers/painter/generic/qp_surface.h b/drivers/painter/generic/qp_surface.h
new file mode 100644
index 0000000000..a291793649
--- /dev/null
+++ b/drivers/painter/generic/qp_surface.h
@@ -0,0 +1,67 @@
+// Copyright 2022 Nick Brassel (@tzarc)
+// SPDX-License-Identifier: GPL-2.0-or-later
+#pragma once
+
+#include "qp_internal.h"
+
+////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+// Quantum Painter surface helpers
+
+// Helper for determining buffer size required for a surface
+#define SURFACE_REQUIRED_BUFFER_BYTE_SIZE(w, h, bpp) ((((w) * (h) * (bpp)) + 7) / 8)
+
+////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+// Quantum Painter surface configurables (add to your keyboard's config.h)
+
+#ifndef SURFACE_NUM_DEVICES
+/**
+ * @def This controls the maximum number of surface devices that Quantum Painter can use at any one time.
+ * Increasing this number allows for multiple framebuffers to be used. Each requires its own RAM allocation.
+ */
+# define SURFACE_NUM_DEVICES 1
+#endif
+
+////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+// Forward declarations
+
+#ifdef QUANTUM_PAINTER_SURFACE_ENABLE
+
+// Surface struct
+struct surface_painter_device_t;
+typedef struct surface_painter_device_t surface_painter_device_t;
+
+/**
+ * Factory method for an RGB565 surface (aka framebuffer).
+ *
+ * @param panel_width[in] the width of the display panel
+ * @param panel_height[in] the height of the display panel
+ * @param buffer[in] pointer to a preallocated uint8_t buffer of size `SURFACE_REQUIRED_BUFFER_BYTE_SIZE(panel_width, panel_height, 16)`
+ * @return the device handle used with all drawing routines in Quantum Painter
+ */
+painter_device_t qp_make_rgb565_surface(uint16_t panel_width, uint16_t panel_height, void *buffer);
+
+/**
+ * Factory method for a 1bpp monochrome surface (aka framebuffer).
+ *
+ * @param panel_width[in] the width of the display panel
+ * @param panel_height[in] the height of the display panel
+ * @param buffer[in] pointer to a preallocated uint8_t buffer of size `SURFACE_REQUIRED_BUFFER_BYTE_SIZE(panel_width, panel_height, 1)`
+ * @return the device handle used with all drawing routines in Quantum Painter
+ */
+painter_device_t qp_make_mono1bpp_surface(uint16_t panel_width, uint16_t panel_height, void *buffer);
+
+/**
+ * Helper method to draw the contents of the framebuffer to the target device.
+ *
+ * After successful completion, the dirty area is reset.
+ *
+ * @param surface[in] the surface to copy from
+ * @param target[in] the target device to copy into
+ * @param x[in] the x-location of the original position of the framebuffer
+ * @param y[in] the y-location of the original position of the framebuffer
+ * @param entire_surface[in] whether the entire surface should be drawn, instead of just the dirty region
+ * @return whether the draw operation completed successfully
+ */
+bool qp_surface_draw(painter_device_t surface, painter_device_t target, uint16_t x, uint16_t y, bool entire_surface);
+
+#endif // QUANTUM_PAINTER_SURFACE_ENABLE
diff --git a/drivers/painter/generic/qp_surface_common.c b/drivers/painter/generic/qp_surface_common.c
new file mode 100644
index 0000000000..2da96c73ac
--- /dev/null
+++ b/drivers/painter/generic/qp_surface_common.c
@@ -0,0 +1,141 @@
+// Copyright 2022 Nick Brassel (@tzarc)
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#include "color.h"
+#include "qp_draw.h"
+#include "qp_surface_internal.h"
+
+////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+// Driver storage
+
+surface_painter_device_t surface_drivers[SURFACE_NUM_DEVICES] = {0};
+
+////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+// Helpers
+
+void qp_surface_increment_pixdata_location(surface_viewport_data_t *viewport) {
+ // Increment the X-position
+ viewport->pixdata_x++;
+
+ // If the x-coord has gone past the right-side edge, loop it back around and increment the y-coord
+ if (viewport->pixdata_x > viewport->viewport_r) {
+ viewport->pixdata_x = viewport->viewport_l;
+ viewport->pixdata_y++;
+ }
+
+ // If the y-coord has gone past the bottom, loop it back to the top
+ if (viewport->pixdata_y > viewport->viewport_b) {
+ viewport->pixdata_y = viewport->viewport_t;
+ }
+}
+
+void qp_surface_update_dirty(surface_dirty_data_t *dirty, uint16_t x, uint16_t y) {
+ // Maintain dirty region
+ if (dirty->l > x) {
+ dirty->l = x;
+ dirty->is_dirty = true;
+ }
+ if (dirty->r < x) {
+ dirty->r = x;
+ dirty->is_dirty = true;
+ }
+ if (dirty->t > y) {
+ dirty->t = y;
+ dirty->is_dirty = true;
+ }
+ if (dirty->b < y) {
+ dirty->b = y;
+ dirty->is_dirty = true;
+ }
+}
+
+////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+// Driver vtable
+
+bool qp_surface_init(painter_device_t device, painter_rotation_t rotation) {
+ painter_driver_t * driver = (painter_driver_t *)device;
+ surface_painter_device_t *surface = (surface_painter_device_t *)driver;
+ memset(surface->buffer, 0, SURFACE_REQUIRED_BUFFER_BYTE_SIZE(driver->panel_width, driver->panel_height, driver->native_bits_per_pixel));
+
+ surface->dirty.l = 0;
+ surface->dirty.t = 0;
+ surface->dirty.r = surface->base.panel_width - 1;
+ surface->dirty.b = surface->base.panel_height - 1;
+ surface->dirty.is_dirty = true;
+
+ return true;
+}
+
+bool qp_surface_power(painter_device_t device, bool power_on) {
+ // No-op.
+ return true;
+}
+
+bool qp_surface_clear(painter_device_t device) {
+ painter_driver_t *driver = (painter_driver_t *)device;
+ driver->driver_vtable->init(device, driver->rotation); // Re-init the surface
+ return true;
+}
+
+bool qp_surface_flush(painter_device_t device) {
+ painter_driver_t * driver = (painter_driver_t *)device;
+ surface_painter_device_t *surface = (surface_painter_device_t *)driver;
+ surface->dirty.l = surface->dirty.t = UINT16_MAX;
+ surface->dirty.r = surface->dirty.b = 0;
+ surface->dirty.is_dirty = false;
+ return true;
+}
+
+bool qp_surface_viewport(painter_device_t device, uint16_t left, uint16_t top, uint16_t right, uint16_t bottom) {
+ painter_driver_t * driver = (painter_driver_t *)device;
+ surface_painter_device_t *surface = (surface_painter_device_t *)driver;
+
+ // Set the viewport locations
+ surface->viewport.viewport_l = left;
+ surface->viewport.viewport_t = top;
+ surface->viewport.viewport_r = right;
+ surface->viewport.viewport_b = bottom;
+
+ // Reset the write location to the top left
+ surface->viewport.pixdata_x = left;
+ surface->viewport.pixdata_y = top;
+ return true;
+}
+
+////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+// Drawing routine to copy out the dirty region and send it to another device
+
+bool qp_surface_draw(painter_device_t surface, painter_device_t target, uint16_t x, uint16_t y, bool entire_surface) {
+ painter_driver_t * surface_driver = (painter_driver_t *)surface;
+ surface_painter_device_t *surface_handle = (surface_painter_device_t *)surface_driver;
+ painter_driver_t * target_driver = (painter_driver_t *)target;
+
+ // If we're not dirty... we're done.
+ if (!surface_handle->dirty.is_dirty) {
+ qp_dprintf("qp_surface_draw: ok (not dirty, skipping)\n");
+ return true;
+ }
+
+ // If we have incompatible bit depths, drop out
+ if (surface_driver->native_bits_per_pixel != target_driver->native_bits_per_pixel) {
+ qp_dprintf("qp_surface_draw: fail (incompatible bpp: surface=%d, target=%d)\n", (int)surface_driver->native_bits_per_pixel, (int)target_driver->native_bits_per_pixel);
+ return false;
+ }
+
+ // Offload to the pixdata transfer function
+ surface_painter_driver_vtable_t *vtable = (surface_painter_driver_vtable_t *)surface_driver->driver_vtable;
+ bool ok = vtable->target_pixdata_transfer(surface_driver, target_driver, x, y, entire_surface);
+ if (!ok) {
+ qp_dprintf("qp_surface_draw: fail (could not transfer pixel data)\n");
+ return false;
+ }
+
+ // Clear the dirty info for the surface
+ ok = qp_flush(surface);
+ if (!ok) {
+ qp_dprintf("qp_surface_draw: fail (could not flush)\n");
+ return false;
+ }
+ qp_dprintf("qp_surface_draw: ok\n");
+ return true;
+}
diff --git a/drivers/painter/generic/qp_surface_internal.h b/drivers/painter/generic/qp_surface_internal.h
new file mode 100644
index 0000000000..71f82e924d
--- /dev/null
+++ b/drivers/painter/generic/qp_surface_internal.h
@@ -0,0 +1,119 @@
+// Copyright 2022 Nick Brassel (@tzarc)
+// SPDX-License-Identifier: GPL-2.0-or-later
+#pragma once
+
+#ifdef QUANTUM_PAINTER_SURFACE_ENABLE
+
+# include "qp_surface.h"
+
+////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+// Internal declarations
+
+// Surface vtable
+typedef struct surface_painter_driver_vtable_t {
+ painter_driver_vtable_t base; // must be first, so it can be cast to/from the painter_driver_vtable_t* type
+
+ bool (*target_pixdata_transfer)(painter_driver_t *surface_driver, painter_driver_t *target_driver, uint16_t x, uint16_t y, bool entire_surface);
+} surface_painter_driver_vtable_t;
+
+typedef struct surface_dirty_data_t {
+ bool is_dirty;
+ uint16_t l;
+ uint16_t t;
+ uint16_t r;
+ uint16_t b;
+} surface_dirty_data_t;
+
+typedef struct surface_viewport_data_t {
+ // Manually manage the viewport for streaming pixel data to the display
+ uint16_t viewport_l;
+ uint16_t viewport_t;
+ uint16_t viewport_r;
+ uint16_t viewport_b;
+
+ // Current write location to the display when streaming pixel data
+ uint16_t pixdata_x;
+ uint16_t pixdata_y;
+} surface_viewport_data_t;
+
+// Surface struct
+typedef struct surface_painter_device_t {
+ painter_driver_t base; // must be first, so it can be cast to/from the painter_device_t* type
+
+ // The target buffer
+ union {
+ void * buffer;
+ uint8_t * u8buffer;
+ uint16_t *u16buffer;
+ };
+
+ // Manually manage the viewport for streaming pixel data to the display
+ surface_viewport_data_t viewport;
+
+ // Maintain a dirty region so we can stream only what we need
+ surface_dirty_data_t dirty;
+} surface_painter_device_t;
+
+/**
+ * Factory method for an RGB565 surface (aka framebuffer). Accepts an external device table.
+ *
+ * @param device_table[in] the table of devices to use for instantiation
+ * @param device_table_len[in] the length of the table of devices
+ * @param panel_width[in] the width of the display panel
+ * @param panel_height[in] the height of the display panel
+ * @param buffer[in] pointer to a preallocated uint8_t buffer of size `SURFACE_REQUIRED_BUFFER_BYTE_SIZE(panel_width, panel_height, 16)`
+ * @return the device handle used with all drawing routines in Quantum Painter
+ */
+painter_device_t qp_make_rgb565_surface_advanced(surface_painter_device_t *device_table, size_t device_table_len, uint16_t panel_width, uint16_t panel_height, void *buffer);
+
+/**
+ * Factory method for a 1bpp monochrome surface (aka framebuffer).
+ *
+ * @param device_table[in] the table of devices to use for instantiation
+ * @param device_table_len[in] the length of the table of devices
+ * @param panel_width[in] the width of the display panel
+ * @param panel_height[in] the height of the display panel
+ * @param buffer[in] pointer to a preallocated uint8_t buffer of size `SURFACE_REQUIRED_BUFFER_BYTE_SIZE(panel_width, panel_height, 16)`
+ * @return the device handle used with all drawing routines in Quantum Painter
+ */
+painter_device_t qp_make_mono1bpp_surface_advanced(surface_painter_device_t *device_table, size_t device_table_len, uint16_t panel_width, uint16_t panel_height, void *buffer);
+
+// Driver storage
+extern surface_painter_device_t surface_drivers[SURFACE_NUM_DEVICES];
+
+// Surface common APIs
+bool qp_surface_init(painter_device_t device, painter_rotation_t rotation);
+bool qp_surface_power(painter_device_t device, bool power_on);
+bool qp_surface_clear(painter_device_t device);
+bool qp_surface_flush(painter_device_t device);
+bool qp_surface_viewport(painter_device_t device, uint16_t left, uint16_t top, uint16_t right, uint16_t bottom);
+void qp_surface_increment_pixdata_location(surface_viewport_data_t *viewport);
+void qp_surface_update_dirty(surface_dirty_data_t *dirty, uint16_t x, uint16_t y);
+
+#endif // QUANTUM_PAINTER_SURFACE_ENABLE
+
+////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+// Factory functions for creating a handle to a surface
+
+#define SURFACE_FACTORY_FUNCTION_IMPL(function_name, vtable, bpp) \
+ painter_device_t(function_name##_advanced)(surface_painter_device_t * device_table, size_t device_table_len, uint16_t panel_width, uint16_t panel_height, void *buffer) { \
+ for (uint32_t i = 0; i < device_table_len; ++i) { \
+ surface_painter_device_t *driver = &device_table[i]; \
+ if (!driver->base.driver_vtable) { \
+ driver->base.driver_vtable = (painter_driver_vtable_t *)&(vtable); \
+ driver->base.native_bits_per_pixel = (bpp); \
+ driver->base.comms_vtable = &dummy_comms_vtable; \
+ driver->base.panel_width = panel_width; \
+ driver->base.panel_height = panel_height; \
+ driver->base.rotation = QP_ROTATION_0; \
+ driver->base.offset_x = 0; \
+ driver->base.offset_y = 0; \
+ driver->buffer = buffer; \
+ return (painter_device_t)driver; \
+ } \
+ } \
+ return NULL; \
+ } \
+ painter_device_t(function_name)(uint16_t panel_width, uint16_t panel_height, void *buffer) { \
+ return (function_name##_advanced)(surface_drivers, SURFACE_NUM_DEVICES, panel_width, panel_height, buffer); \
+ }
diff --git a/drivers/painter/generic/qp_surface_mono1bpp.c b/drivers/painter/generic/qp_surface_mono1bpp.c
new file mode 100644
index 0000000000..c66b56519d
--- /dev/null
+++ b/drivers/painter/generic/qp_surface_mono1bpp.c
@@ -0,0 +1,113 @@
+// Copyright 2022 Nick Brassel (@tzarc)
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#ifdef QUANTUM_PAINTER_SURFACE_ENABLE
+
+# include "color.h"
+# include "qp_draw.h"
+# include "qp_surface_internal.h"
+# include "qp_comms_dummy.h"
+
+////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+// Surface driver impl: mono1bpp
+
+static inline void setpixel_mono1bpp(surface_painter_device_t *surface, uint16_t x, uint16_t y, bool mono_pixel) {
+ uint16_t w = surface->base.panel_width;
+ uint16_t h = surface->base.panel_height;
+
+ // Drop out if it's off-screen
+ if (x >= w || y >= h) {
+ return;
+ }
+
+ // Figure out which location needs to be updated
+ uint32_t pixel_num = y * w + x;
+ uint32_t byte_offset = pixel_num / 8;
+ uint8_t bit_offset = pixel_num % 8;
+ bool curr_val = (surface->u8buffer[byte_offset] & (1 << bit_offset)) ? true : false;
+
+ // Skip messing with the dirty info if the original value already matches
+ if (curr_val != mono_pixel) {
+ // Update the dirty region
+ qp_surface_update_dirty(&surface->dirty, x, y);
+
+ // Update the pixel data in the buffer
+ if (mono_pixel) {
+ surface->u8buffer[byte_offset] |= (1 << bit_offset);
+ } else {
+ surface->u8buffer[byte_offset] &= ~(1 << bit_offset);
+ }
+ }
+}
+
+static inline void append_pixel_mono1bpp(surface_painter_device_t *surface, bool mono_pixel) {
+ setpixel_mono1bpp(surface, surface->viewport.pixdata_x, surface->viewport.pixdata_y, mono_pixel);
+ qp_surface_increment_pixdata_location(&surface->viewport);
+}
+
+static inline void stream_pixdata_mono1bpp(surface_painter_device_t *surface, const uint8_t *data, uint32_t native_pixel_count) {
+ for (uint32_t pixel_counter = 0; pixel_counter < native_pixel_count; ++pixel_counter) {
+ uint32_t byte_offset = pixel_counter / 8;
+ uint8_t bit_offset = pixel_counter % 8;
+ append_pixel_mono1bpp(surface, (data[byte_offset] & (1 << bit_offset)) ? true : false);
+ }
+}
+
+// Stream pixel data to the current write position in GRAM
+static bool qp_surface_pixdata_mono1bpp(painter_device_t device, const void *pixel_data, uint32_t native_pixel_count) {
+ painter_driver_t * driver = (painter_driver_t *)device;
+ surface_painter_device_t *surface = (surface_painter_device_t *)driver;
+ stream_pixdata_mono1bpp(surface, (const uint8_t *)pixel_data, native_pixel_count);
+ return true;
+}
+
+// Pixel colour conversion
+static bool qp_surface_palette_convert_mono1bpp(painter_device_t device, int16_t palette_size, qp_pixel_t *palette) {
+ for (int16_t i = 0; i < palette_size; ++i) {
+ palette[i].mono = (palette[i].hsv888.v > 127) ? 1 : 0;
+ }
+ return true;
+}
+
+// Append pixels to the target location, keyed by the pixel index
+static bool qp_surface_append_pixels_mono1bpp(painter_device_t device, uint8_t *target_buffer, qp_pixel_t *palette, uint32_t pixel_offset, uint32_t pixel_count, uint8_t *palette_indices) {
+ for (uint32_t i = 0; i < pixel_count; ++i) {
+ uint32_t pixel_num = pixel_offset + i;
+ uint32_t byte_offset = pixel_num / 8;
+ uint8_t bit_offset = pixel_num % 8;
+ if (palette[palette_indices[i]].mono) {
+ target_buffer[byte_offset] |= (1 << bit_offset);
+ } else {
+ target_buffer[byte_offset] &= ~(1 << bit_offset);
+ }
+ }
+ return true;
+}
+
+static bool mono1bpp_target_pixdata_transfer(painter_driver_t *surface_driver, painter_driver_t *target_driver, uint16_t x, uint16_t y, bool entire_surface) {
+ return false; // Not yet supported.
+}
+
+static bool qp_surface_append_pixdata_mono1bpp(painter_device_t device, uint8_t *target_buffer, uint32_t pixdata_offset, uint8_t pixdata_byte) {
+ return false; // Just use 1bpp images.
+}
+
+const surface_painter_driver_vtable_t mono1bpp_surface_driver_vtable = {
+ .base =
+ {
+ .init = qp_surface_init,
+ .power = qp_surface_power,
+ .clear = qp_surface_clear,
+ .flush = qp_surface_flush,
+ .pixdata = qp_surface_pixdata_mono1bpp,
+ .viewport = qp_surface_viewport,
+ .palette_convert = qp_surface_palette_convert_mono1bpp,
+ .append_pixels = qp_surface_append_pixels_mono1bpp,
+ .append_pixdata = qp_surface_append_pixdata_mono1bpp,
+ },
+ .target_pixdata_transfer = mono1bpp_target_pixdata_transfer,
+};
+
+SURFACE_FACTORY_FUNCTION_IMPL(qp_make_mono1bpp_surface, mono1bpp_surface_driver_vtable, 1);
+
+#endif // QUANTUM_PAINTER_SURFACE_ENABLE
diff --git a/drivers/painter/generic/qp_surface_rgb565.c b/drivers/painter/generic/qp_surface_rgb565.c
new file mode 100644
index 0000000000..8883ed541d
--- /dev/null
+++ b/drivers/painter/generic/qp_surface_rgb565.c
@@ -0,0 +1,145 @@
+// Copyright 2022 Nick Brassel (@tzarc)
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#ifdef QUANTUM_PAINTER_SURFACE_ENABLE
+
+# include "color.h"
+# include "qp_draw.h"
+# include "qp_surface_internal.h"
+# include "qp_comms_dummy.h"
+
+////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+// Surface driver impl: rgb565
+
+static inline void setpixel_rgb565(surface_painter_device_t *surface, uint16_t x, uint16_t y, uint16_t rgb565) {
+ uint16_t w = surface->base.panel_width;
+ uint16_t h = surface->base.panel_height;
+
+ // Drop out if it's off-screen
+ if (x >= w || y >= h) {
+ return;
+ }
+
+ // Skip messing with the dirty info if the original value already matches
+ if (surface->u16buffer[y * w + x] != rgb565) {
+ // Update the dirty region
+ qp_surface_update_dirty(&surface->dirty, x, y);
+
+ // Update the pixel data in the buffer
+ surface->u16buffer[y * w + x] = rgb565;
+ }
+}
+
+static inline void append_pixel_rgb565(surface_painter_device_t *surface, uint16_t rgb565) {
+ setpixel_rgb565(surface, surface->viewport.pixdata_x, surface->viewport.pixdata_y, rgb565);
+ qp_surface_increment_pixdata_location(&surface->viewport);
+}
+
+static inline void stream_pixdata_rgb565(surface_painter_device_t *surface, const uint16_t *data, uint32_t native_pixel_count) {
+ for (uint32_t pixel_counter = 0; pixel_counter < native_pixel_count; ++pixel_counter) {
+ append_pixel_rgb565(surface, data[pixel_counter]);
+ }
+}
+
+// Stream pixel data to the current write position in GRAM
+static bool qp_surface_pixdata_rgb565(painter_device_t device, const void *pixel_data, uint32_t native_pixel_count) {
+ painter_driver_t * driver = (painter_driver_t *)device;
+ surface_painter_device_t *surface = (surface_painter_device_t *)driver;
+ stream_pixdata_rgb565(surface, (const uint16_t *)pixel_data, native_pixel_count);
+ return true;
+}
+
+// Pixel colour conversion
+static bool qp_surface_palette_convert_rgb565_swapped(painter_device_t device, int16_t palette_size, qp_pixel_t *palette) {
+ for (int16_t i = 0; i < palette_size; ++i) {
+ RGB rgb = hsv_to_rgb_nocie((HSV){palette[i].hsv888.h, palette[i].hsv888.s, palette[i].hsv888.v});
+ uint16_t rgb565 = (((uint16_t)rgb.r) >> 3) << 11 | (((uint16_t)rgb.g) >> 2) << 5 | (((uint16_t)rgb.b) >> 3);
+ palette[i].rgb565 = __builtin_bswap16(rgb565);
+ }
+ return true;
+}
+
+// Append pixels to the target location, keyed by the pixel index
+static bool qp_surface_append_pixels_rgb565(painter_device_t device, uint8_t *target_buffer, qp_pixel_t *palette, uint32_t pixel_offset, uint32_t pixel_count, uint8_t *palette_indices) {
+ uint16_t *buf = (uint16_t *)target_buffer;
+ for (uint32_t i = 0; i < pixel_count; ++i) {
+ buf[pixel_offset + i] = palette[palette_indices[i]].rgb565;
+ }
+ return true;
+}
+
+static bool rgb565_target_pixdata_transfer(painter_driver_t *surface_driver, painter_driver_t *target_driver, uint16_t x, uint16_t y, bool entire_surface) {
+ surface_painter_device_t *surface_handle = (surface_painter_device_t *)surface_driver;
+
+ uint16_t l = entire_surface ? 0 : surface_handle->dirty.l;
+ uint16_t t = entire_surface ? 0 : surface_handle->dirty.t;
+ uint16_t r = entire_surface ? (surface_handle->base.panel_width - 1) : surface_handle->dirty.r;
+ uint16_t b = entire_surface ? (surface_handle->base.panel_height - 1) : surface_handle->dirty.b;
+
+ // Set the target drawing area
+ bool ok = qp_viewport((painter_device_t)target_driver, x + l, y + t, x + r, y + b);
+ if (!ok) {
+ qp_dprintf("rgb565_target_pixdata_transfer: fail (could not set target viewport)\n");
+ return false;
+ }
+
+ // Housekeeping of the amount of pixels to transfer
+ uint32_t total_pixel_count = (8 * QUANTUM_PAINTER_PIXDATA_BUFFER_SIZE) / surface_driver->native_bits_per_pixel;
+ uint32_t pixel_counter = 0;
+ uint16_t *target_buffer = (uint16_t *)qp_internal_global_pixdata_buffer;
+
+ // Fill the global pixdata area so that we can start transferring to the panel
+ for (uint16_t y = t; y <= b; ++y) {
+ for (uint16_t x = l; x <= r; ++x) {
+ // Update the target buffer
+ target_buffer[pixel_counter++] = surface_handle->u16buffer[y * surface_handle->base.panel_width + x];
+
+ // If we've accumulated enough data, send it
+ if (pixel_counter == total_pixel_count) {
+ ok = qp_pixdata((painter_device_t)target_driver, qp_internal_global_pixdata_buffer, pixel_counter);
+ if (!ok) {
+ qp_dprintf("rgb565_target_pixdata_transfer: fail (could not stream pixdata to target)\n");
+ return false;
+ }
+ // Reset the counter
+ pixel_counter = 0;
+ }
+ }
+ }
+
+ // If there's any leftover data, send it
+ if (pixel_counter > 0) {
+ ok = qp_pixdata((painter_device_t)target_driver, qp_internal_global_pixdata_buffer, pixel_counter);
+ if (!ok) {
+ qp_dprintf("rgb565_target_pixdata_transfer: fail (could not stream pixdata to target)\n");
+ return false;
+ }
+ }
+
+ return true;
+}
+
+static bool qp_surface_append_pixdata_rgb565(painter_device_t device, uint8_t *target_buffer, uint32_t pixdata_offset, uint8_t pixdata_byte) {
+ target_buffer[pixdata_offset] = pixdata_byte;
+ return true;
+}
+
+const surface_painter_driver_vtable_t rgb565_surface_driver_vtable = {
+ .base =
+ {
+ .init = qp_surface_init,
+ .power = qp_surface_power,
+ .clear = qp_surface_clear,
+ .flush = qp_surface_flush,
+ .pixdata = qp_surface_pixdata_rgb565,
+ .viewport = qp_surface_viewport,
+ .palette_convert = qp_surface_palette_convert_rgb565_swapped,
+ .append_pixels = qp_surface_append_pixels_rgb565,
+ .append_pixdata = qp_surface_append_pixdata_rgb565,
+ },
+ .target_pixdata_transfer = rgb565_target_pixdata_transfer,
+};
+
+SURFACE_FACTORY_FUNCTION_IMPL(qp_make_rgb565_surface, rgb565_surface_driver_vtable, 16);
+
+#endif // QUANTUM_PAINTER_SURFACE_ENABLE
diff --git a/drivers/painter/ili9xxx/qp_ili9163.c b/drivers/painter/ili9xxx/qp_ili9163.c
index a75be57904..7f439dc317 100644
--- a/drivers/painter/ili9xxx/qp_ili9163.c
+++ b/drivers/painter/ili9xxx/qp_ili9163.c
@@ -103,13 +103,14 @@ painter_device_t qp_ili9163_make_spi_device(uint16_t panel_width, uint16_t panel
driver->base.native_bits_per_pixel = 16; // RGB565
// SPI and other pin configuration
- driver->base.comms_config = &driver->spi_dc_reset_config;
- driver->spi_dc_reset_config.spi_config.chip_select_pin = chip_select_pin;
- driver->spi_dc_reset_config.spi_config.divisor = spi_divisor;
- driver->spi_dc_reset_config.spi_config.lsb_first = false;
- driver->spi_dc_reset_config.spi_config.mode = spi_mode;
- driver->spi_dc_reset_config.dc_pin = dc_pin;
- driver->spi_dc_reset_config.reset_pin = reset_pin;
+ driver->base.comms_config = &driver->spi_dc_reset_config;
+ driver->spi_dc_reset_config.spi_config.chip_select_pin = chip_select_pin;
+ driver->spi_dc_reset_config.spi_config.divisor = spi_divisor;
+ driver->spi_dc_reset_config.spi_config.lsb_first = false;
+ driver->spi_dc_reset_config.spi_config.mode = spi_mode;
+ driver->spi_dc_reset_config.dc_pin = dc_pin;
+ driver->spi_dc_reset_config.reset_pin = reset_pin;
+ driver->spi_dc_reset_config.command_params_uses_command_pin = false;
if (!qp_internal_register_device((painter_device_t)driver)) {
memset(driver, 0, sizeof(tft_panel_dc_reset_painter_device_t));
diff --git a/drivers/painter/ili9xxx/qp_ili9163.h b/drivers/painter/ili9xxx/qp_ili9163.h
index 88d23629a9..a9b3befd48 100644
--- a/drivers/painter/ili9xxx/qp_ili9163.h
+++ b/drivers/painter/ili9xxx/qp_ili9163.h
@@ -1,6 +1,5 @@
// Copyright 2021 Nick Brassel (@tzarc)
// SPDX-License-Identifier: GPL-2.0-or-later
-
#pragma once
#include "gpio.h"
diff --git a/drivers/painter/ili9xxx/qp_ili9341.c b/drivers/painter/ili9xxx/qp_ili9341.c
index 4130271f71..a101b292aa 100644
--- a/drivers/painter/ili9xxx/qp_ili9341.c
+++ b/drivers/painter/ili9xxx/qp_ili9341.c
@@ -110,13 +110,14 @@ painter_device_t qp_ili9341_make_spi_device(uint16_t panel_width, uint16_t panel
driver->base.offset_y = 0;
// SPI and other pin configuration
- driver->base.comms_config = &driver->spi_dc_reset_config;
- driver->spi_dc_reset_config.spi_config.chip_select_pin = chip_select_pin;
- driver->spi_dc_reset_config.spi_config.divisor = spi_divisor;
- driver->spi_dc_reset_config.spi_config.lsb_first = false;
- driver->spi_dc_reset_config.spi_config.mode = spi_mode;
- driver->spi_dc_reset_config.dc_pin = dc_pin;
- driver->spi_dc_reset_config.reset_pin = reset_pin;
+ driver->base.comms_config = &driver->spi_dc_reset_config;
+ driver->spi_dc_reset_config.spi_config.chip_select_pin = chip_select_pin;
+ driver->spi_dc_reset_config.spi_config.divisor = spi_divisor;
+ driver->spi_dc_reset_config.spi_config.lsb_first = false;
+ driver->spi_dc_reset_config.spi_config.mode = spi_mode;
+ driver->spi_dc_reset_config.dc_pin = dc_pin;
+ driver->spi_dc_reset_config.reset_pin = reset_pin;
+ driver->spi_dc_reset_config.command_params_uses_command_pin = false;
if (!qp_internal_register_device((painter_device_t)driver)) {
memset(driver, 0, sizeof(tft_panel_dc_reset_painter_device_t));
diff --git a/drivers/painter/ili9xxx/qp_ili9341.h b/drivers/painter/ili9xxx/qp_ili9341.h
index 28b0152a84..d850aba114 100644
--- a/drivers/painter/ili9xxx/qp_ili9341.h
+++ b/drivers/painter/ili9xxx/qp_ili9341.h
@@ -1,6 +1,5 @@
// Copyright 2021 Nick Brassel (@tzarc)
// SPDX-License-Identifier: GPL-2.0-or-later
-
#pragma once
#include "gpio.h"
diff --git a/drivers/painter/ili9xxx/qp_ili9488.c b/drivers/painter/ili9xxx/qp_ili9488.c
index a8da52132e..63deaf5f2e 100644
--- a/drivers/painter/ili9xxx/qp_ili9488.c
+++ b/drivers/painter/ili9xxx/qp_ili9488.c
@@ -103,13 +103,14 @@ painter_device_t qp_ili9488_make_spi_device(uint16_t panel_width, uint16_t panel
driver->base.offset_y = 0;
// SPI and other pin configuration
- driver->base.comms_config = &driver->spi_dc_reset_config;
- driver->spi_dc_reset_config.spi_config.chip_select_pin = chip_select_pin;
- driver->spi_dc_reset_config.spi_config.divisor = spi_divisor;
- driver->spi_dc_reset_config.spi_config.lsb_first = false;
- driver->spi_dc_reset_config.spi_config.mode = spi_mode;
- driver->spi_dc_reset_config.dc_pin = dc_pin;
- driver->spi_dc_reset_config.reset_pin = reset_pin;
+ driver->base.comms_config = &driver->spi_dc_reset_config;
+ driver->spi_dc_reset_config.spi_config.chip_select_pin = chip_select_pin;
+ driver->spi_dc_reset_config.spi_config.divisor = spi_divisor;
+ driver->spi_dc_reset_config.spi_config.lsb_first = false;
+ driver->spi_dc_reset_config.spi_config.mode = spi_mode;
+ driver->spi_dc_reset_config.dc_pin = dc_pin;
+ driver->spi_dc_reset_config.reset_pin = reset_pin;
+ driver->spi_dc_reset_config.command_params_uses_command_pin = false;
if (!qp_internal_register_device((painter_device_t)driver)) {
memset(driver, 0, sizeof(tft_panel_dc_reset_painter_device_t));
diff --git a/drivers/painter/ili9xxx/qp_ili9488.h b/drivers/painter/ili9xxx/qp_ili9488.h
index 21b8f03322..da56f1090f 100644
--- a/drivers/painter/ili9xxx/qp_ili9488.h
+++ b/drivers/painter/ili9xxx/qp_ili9488.h
@@ -1,6 +1,5 @@
// Copyright 2021 Nick Brassel (@tzarc)
// SPDX-License-Identifier: GPL-2.0-or-later
-
#pragma once
#include "gpio.h"
diff --git a/drivers/painter/oled_panel/qp_oled_panel.c b/drivers/painter/oled_panel/qp_oled_panel.c
new file mode 100644
index 0000000000..eefee3f13f
--- /dev/null
+++ b/drivers/painter/oled_panel/qp_oled_panel.c
@@ -0,0 +1,195 @@
+// Copyright 2023 Nick Brassel (@tzarc)
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#include "color.h"
+#include "qp_internal.h"
+#include "qp_comms.h"
+#include "qp_draw.h"
+#include "qp_oled_panel.h"
+
+////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+// Quantum Painter API implementations
+
+// Power control
+bool qp_oled_panel_power(painter_device_t device, bool power_on) {
+ painter_driver_t * driver = (painter_driver_t *)device;
+ oled_panel_painter_driver_vtable_t *vtable = (oled_panel_painter_driver_vtable_t *)driver->driver_vtable;
+ qp_comms_command(device, power_on ? vtable->opcodes.display_on : vtable->opcodes.display_off);
+ return true;
+}
+
+// Screen clear
+bool qp_oled_panel_clear(painter_device_t device) {
+ painter_driver_t *driver = (painter_driver_t *)device;
+ driver->driver_vtable->init(device, driver->rotation); // Re-init the display
+ return true;
+}
+
+////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+// Surface passthru
+////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+
+bool qp_oled_panel_passthru_pixdata(painter_device_t device, const void *pixel_data, uint32_t native_pixel_count) {
+ oled_panel_painter_device_t *driver = (oled_panel_painter_device_t *)device;
+ return driver->surface.base.validate_ok && driver->surface.base.driver_vtable->pixdata(&driver->surface.base, pixel_data, native_pixel_count);
+}
+
+bool qp_oled_panel_passthru_viewport(painter_device_t device, uint16_t left, uint16_t top, uint16_t right, uint16_t bottom) {
+ oled_panel_painter_device_t *driver = (oled_panel_painter_device_t *)device;
+ return driver->surface.base.validate_ok && driver->surface.base.driver_vtable->viewport(&driver->surface.base, left, top, right, bottom);
+}
+
+bool qp_oled_panel_passthru_palette_convert(painter_device_t device, int16_t palette_size, qp_pixel_t *palette) {
+ oled_panel_painter_device_t *driver = (oled_panel_painter_device_t *)device;
+ return driver->surface.base.validate_ok && driver->surface.base.driver_vtable->palette_convert(&driver->surface.base, palette_size, palette);
+}
+
+bool qp_oled_panel_passthru_append_pixels(painter_device_t device, uint8_t *target_buffer, qp_pixel_t *palette, uint32_t pixel_offset, uint32_t pixel_count, uint8_t *palette_indices) {
+ oled_panel_painter_device_t *driver = (oled_panel_painter_device_t *)device;
+ return driver->surface.base.validate_ok && driver->surface.base.driver_vtable->append_pixels(&driver->surface.base, target_buffer, palette, pixel_offset, pixel_count, palette_indices);
+}
+
+bool qp_oled_panel_passthru_append_pixdata(painter_device_t device, uint8_t *target_buffer, uint32_t pixdata_offset, uint8_t pixdata_byte) {
+ oled_panel_painter_device_t *driver = (oled_panel_painter_device_t *)device;
+ return driver->surface.base.validate_ok && driver->surface.base.driver_vtable->append_pixdata(&driver->surface.base, target_buffer, pixdata_offset, pixdata_byte);
+}
+
+////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+// Flush helpers
+////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+
+void qp_oled_panel_page_column_flush_rot0(painter_device_t device, surface_dirty_data_t *dirty, const uint8_t *framebuffer) {
+ painter_driver_t * driver = (painter_driver_t *)device;
+ oled_panel_painter_driver_vtable_t *vtable = (oled_panel_painter_driver_vtable_t *)driver->driver_vtable;
+
+ // TODO: account for offset_x/y in base driver
+ int min_page = dirty->t / 8;
+ int max_page = dirty->b / 8;
+ int min_column = dirty->l;
+ int max_column = dirty->r;
+
+ for (int page = min_page; page <= max_page; ++page) {
+ int cols_required = max_column - min_column + 1;
+ uint8_t column_data[cols_required];
+ memset(column_data, 0, cols_required);
+ for (int x = min_column; x <= max_column; ++x) {
+ uint16_t data_offset = x - min_column;
+ for (int y = 0; y < 8; ++y) {
+ uint32_t pixel_num = ((page * 8) + y) * driver->panel_width + x;
+ uint32_t byte_offset = pixel_num / 8;
+ uint8_t bit_offset = pixel_num % 8;
+ column_data[data_offset] |= ((framebuffer[byte_offset] & (1 << bit_offset)) >> bit_offset) << y;
+ }
+ }
+
+ int actual_page = page;
+ int start_column = min_column;
+ qp_comms_command(device, vtable->opcodes.set_page | actual_page);
+ qp_comms_command(device, vtable->opcodes.set_column_lsb | (start_column & 0x0F));
+ qp_comms_command(device, vtable->opcodes.set_column_msb | (start_column & 0xF0) >> 4);
+ qp_comms_send(device, column_data, cols_required);
+ }
+}
+
+void qp_oled_panel_page_column_flush_rot90(painter_device_t device, surface_dirty_data_t *dirty, const uint8_t *framebuffer) {
+ painter_driver_t * driver = (painter_driver_t *)device;
+ oled_panel_painter_driver_vtable_t *vtable = (oled_panel_painter_driver_vtable_t *)driver->driver_vtable;
+
+ // TODO: account for offset_x/y in base driver
+ int num_columns = driver->panel_width;
+ int min_page = dirty->l / 8;
+ int max_page = dirty->r / 8;
+ int min_column = dirty->t;
+ int max_column = dirty->b;
+
+ for (int page = min_page; page <= max_page; ++page) {
+ int cols_required = max_column - min_column + 1;
+ uint8_t column_data[cols_required];
+ memset(column_data, 0, cols_required);
+ for (int y = min_column; y <= max_column; ++y) {
+ uint16_t data_offset = cols_required - 1 - (y - min_column);
+ for (int x = 0; x < 8; ++x) {
+ uint32_t pixel_num = y * driver->panel_height + ((page * 8) + x);
+ uint32_t byte_offset = pixel_num / 8;
+ uint8_t bit_offset = pixel_num % 8;
+ column_data[data_offset] |= ((framebuffer[byte_offset] & (1 << bit_offset)) >> bit_offset) << x;
+ }
+ }
+
+ int actual_page = page;
+ int start_column = num_columns - 1 - max_column;
+ qp_comms_command(device, vtable->opcodes.set_page | actual_page);
+ qp_comms_command(device, vtable->opcodes.set_column_lsb | (start_column & 0x0F));
+ qp_comms_command(device, vtable->opcodes.set_column_msb | (start_column & 0xF0) >> 4);
+ qp_comms_send(device, column_data, cols_required);
+ }
+}
+
+void qp_oled_panel_page_column_flush_rot180(painter_device_t device, surface_dirty_data_t *dirty, const uint8_t *framebuffer) {
+ painter_driver_t * driver = (painter_driver_t *)device;
+ oled_panel_painter_driver_vtable_t *vtable = (oled_panel_painter_driver_vtable_t *)driver->driver_vtable;
+
+ // TODO: account for offset_x/y in base driver
+ int num_pages = driver->panel_height / 8;
+ int num_columns = driver->panel_width;
+ int min_page = dirty->t / 8;
+ int max_page = dirty->b / 8;
+ int min_column = dirty->l;
+ int max_column = dirty->r;
+
+ for (int page = min_page; page <= max_page; ++page) {
+ int cols_required = max_column - min_column + 1;
+ uint8_t column_data[cols_required];
+ memset(column_data, 0, cols_required);
+ for (int x = min_column; x <= max_column; ++x) {
+ uint16_t data_offset = cols_required - 1 - (x - min_column);
+ for (int y = 0; y < 8; ++y) {
+ uint32_t pixel_num = ((page * 8) + y) * driver->panel_width + x;
+ uint32_t byte_offset = pixel_num / 8;
+ uint8_t bit_offset = pixel_num % 8;
+ column_data[data_offset] |= ((framebuffer[byte_offset] & (1 << bit_offset)) >> bit_offset) << (7 - y);
+ }
+ }
+
+ int actual_page = num_pages - 1 - page;
+ int start_column = num_columns - 1 - max_column;
+ qp_comms_command(device, vtable->opcodes.set_page | actual_page);
+ qp_comms_command(device, vtable->opcodes.set_column_lsb | (start_column & 0x0F));
+ qp_comms_command(device, vtable->opcodes.set_column_msb | (start_column & 0xF0) >> 4);
+ qp_comms_send(device, column_data, cols_required);
+ }
+}
+
+void qp_oled_panel_page_column_flush_rot270(painter_device_t device, surface_dirty_data_t *dirty, const uint8_t *framebuffer) {
+ painter_driver_t * driver = (painter_driver_t *)device;
+ oled_panel_painter_driver_vtable_t *vtable = (oled_panel_painter_driver_vtable_t *)driver->driver_vtable;
+
+ // TODO: account for offset_x/y in base driver
+ int num_pages = driver->panel_height / 8;
+ int min_page = dirty->l / 8;
+ int max_page = dirty->r / 8;
+ int min_column = dirty->t;
+ int max_column = dirty->b;
+
+ for (int page = min_page; page <= max_page; ++page) {
+ int cols_required = max_column - min_column + 1;
+ uint8_t column_data[cols_required];
+ memset(column_data, 0, cols_required);
+ for (int y = min_column; y <= max_column; ++y) {
+ uint16_t data_offset = y - min_column;
+ for (int x = 0; x < 8; ++x) {
+ uint32_t pixel_num = y * driver->panel_height + ((page * 8) + x);
+ uint32_t byte_offset = pixel_num / 8;
+ uint8_t bit_offset = pixel_num % 8;
+ column_data[data_offset] |= ((framebuffer[byte_offset] & (1 << bit_offset)) >> bit_offset) << (7 - x);
+ }
+ }
+
+ int actual_page = num_pages - 1 - page;
+ int start_column = min_column;
+ qp_comms_command(device, vtable->opcodes.set_page | actual_page);
+ qp_comms_command(device, vtable->opcodes.set_column_lsb | (start_column & 0x0F));
+ qp_comms_command(device, vtable->opcodes.set_column_msb | (start_column & 0xF0) >> 4);
+ qp_comms_send(device, column_data, cols_required);
+ }
+}
diff --git a/drivers/painter/oled_panel/qp_oled_panel.h b/drivers/painter/oled_panel/qp_oled_panel.h
new file mode 100644
index 0000000000..ccc7ab9204
--- /dev/null
+++ b/drivers/painter/oled_panel/qp_oled_panel.h
@@ -0,0 +1,68 @@
+// Copyright 2023 Nick Brassel (@tzarc)
+// SPDX-License-Identifier: GPL-2.0-or-later
+#pragma once
+
+#include "color.h"
+#include "qp_internal.h"
+#include "qp_surface_internal.h"
+
+#ifdef QUANTUM_PAINTER_SPI_ENABLE
+# include "qp_comms_spi.h"
+#endif // QUANTUM_PAINTER_SPI_ENABLE
+
+#ifdef QUANTUM_PAINTER_I2C_ENABLE
+# include "qp_comms_i2c.h"
+#endif // QUANTUM_PAINTER_I2C_ENABLE
+
+////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+// Common OLED panel implementation
+
+// Driver vtable with extras
+typedef struct oled_panel_painter_driver_vtable_t {
+ painter_driver_vtable_t base; // must be first, so it can be cast to/from the painter_driver_vtable_t* type
+
+ // Opcodes for normal display operation
+ struct {
+ uint8_t display_on;
+ uint8_t display_off;
+ uint8_t set_page;
+ uint8_t set_column_lsb;
+ uint8_t set_column_msb;
+ } opcodes;
+} oled_panel_painter_driver_vtable_t;
+
+// Device definition
+typedef struct oled_panel_painter_device_t {
+ painter_driver_t base; // must be first, so it can be cast to/from the painter_device_t* type
+
+ union {
+#ifdef QUANTUM_PAINTER_SPI_ENABLE
+ // SPI-based configurables
+ qp_comms_spi_dc_reset_config_t spi_dc_reset_config;
+#endif // QUANTUM_PAINTER_SPI_ENABLE
+#ifdef QUANTUM_PAINTER_I2C_ENABLE
+ // I2C-based configurables
+ qp_comms_i2c_config_t i2c_config;
+#endif // QUANTUM_PAINTER_I2C_ENABLE
+ };
+
+ surface_painter_device_t surface;
+} oled_panel_painter_device_t;
+
+////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+// Forward declarations for injecting into concrete driver vtables
+
+bool qp_oled_panel_power(painter_device_t device, bool power_on);
+bool qp_oled_panel_clear(painter_device_t device);
+
+bool qp_oled_panel_passthru_pixdata(painter_device_t device, const void *pixel_data, uint32_t native_pixel_count);
+bool qp_oled_panel_passthru_viewport(painter_device_t device, uint16_t left, uint16_t top, uint16_t right, uint16_t bottom);
+bool qp_oled_panel_passthru_palette_convert(painter_device_t device, int16_t palette_size, qp_pixel_t *palette);
+bool qp_oled_panel_passthru_append_pixels(painter_device_t device, uint8_t *target_buffer, qp_pixel_t *palette, uint32_t pixel_offset, uint32_t pixel_count, uint8_t *palette_indices);
+bool qp_oled_panel_passthru_append_pixdata(painter_device_t device, uint8_t *target_buffer, uint32_t pixdata_offset, uint8_t pixdata_byte);
+
+// Helpers for flushing data from the dirty region to the correct location on the OLED
+void qp_oled_panel_page_column_flush_rot0(painter_device_t device, surface_dirty_data_t *dirty, const uint8_t *framebuffer);
+void qp_oled_panel_page_column_flush_rot90(painter_device_t device, surface_dirty_data_t *dirty, const uint8_t *framebuffer);
+void qp_oled_panel_page_column_flush_rot180(painter_device_t device, surface_dirty_data_t *dirty, const uint8_t *framebuffer);
+void qp_oled_panel_page_column_flush_rot270(painter_device_t device, surface_dirty_data_t *dirty, const uint8_t *framebuffer);
diff --git a/drivers/painter/sh1106/qp_sh1106.c b/drivers/painter/sh1106/qp_sh1106.c
new file mode 100644
index 0000000000..7cb6e398fa
--- /dev/null
+++ b/drivers/painter/sh1106/qp_sh1106.c
@@ -0,0 +1,206 @@
+// Copyright 2023 Nick Brassel (@tzarc)
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#include "qp_internal.h"
+#include "qp_comms.h"
+#include "qp_oled_panel.h"
+#include "qp_sh1106.h"
+#include "qp_sh1106_opcodes.h"
+#include "qp_surface.h"
+#include "qp_surface_internal.h"
+
+////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+// Driver storage
+////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+
+typedef struct sh1106_device_t {
+ oled_panel_painter_device_t oled;
+
+ uint8_t framebuffer[SURFACE_REQUIRED_BUFFER_BYTE_SIZE(128, 64, 1)];
+} sh1106_device_t;
+
+static sh1106_device_t sh1106_drivers[SH1106_NUM_DEVICES] = {0};
+
+////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+// Quantum Painter API implementations
+
+// Initialisation
+__attribute__((weak)) bool qp_sh1106_init(painter_device_t device, painter_rotation_t rotation) {
+ sh1106_device_t *driver = (sh1106_device_t *)device;
+
+ // Change the surface geometry based on the panel rotation
+ if (rotation == QP_ROTATION_90 || rotation == QP_ROTATION_270) {
+ driver->oled.surface.base.panel_width = driver->oled.base.panel_height;
+ driver->oled.surface.base.panel_height = driver->oled.base.panel_width;
+ } else {
+ driver->oled.surface.base.panel_width = driver->oled.base.panel_width;
+ driver->oled.surface.base.panel_height = driver->oled.base.panel_height;
+ }
+
+ // Init the internal surface
+ if (!qp_init(&driver->oled.surface.base, QP_ROTATION_0)) {
+ qp_dprintf("Failed to init internal surface in qp_sh1106_init\n");
+ return false;
+ }
+
+ // clang-format off
+ const uint8_t sh1106_init_sequence[] = {
+ // Command, Delay, N, Data[N]
+ SH1106_SET_MUX_RATIO, 0, 1, 0x3F,
+ SH1106_DISPLAY_OFFSET, 0, 1, 0x00,
+ SH1106_DISPLAY_START_LINE, 0, 0,
+ SH1106_SET_SEGMENT_REMAP_INV, 0, 0,
+ SH1106_COM_SCAN_DIR_DEC, 0, 0,
+ SH1106_COM_PADS_HW_CFG, 0, 1, 0x12,
+ SH1106_SET_CONTRAST, 0, 1, 0x7F,
+ SH1106_ALL_ON_RESUME, 0, 0,
+ SH1106_NON_INVERTING_DISPLAY, 0, 0,
+ SH1106_SET_OSC_DIVFREQ, 0, 1, 0x80,
+ SH1106_SET_CHARGE_PUMP, 0, 1, 0x14,
+ SH1106_DISPLAY_ON, 0, 0,
+ };
+ // clang-format on
+
+ qp_comms_bulk_command_sequence(device, sh1106_init_sequence, sizeof(sh1106_init_sequence));
+ return true;
+}
+
+// Screen flush
+bool qp_sh1106_flush(painter_device_t device) {
+ sh1106_device_t *driver = (sh1106_device_t *)device;
+
+ if (!driver->oled.surface.dirty.is_dirty) {
+ return true;
+ }
+
+ switch (driver->oled.base.rotation) {
+ default:
+ case QP_ROTATION_0:
+ qp_oled_panel_page_column_flush_rot0(device, &driver->oled.surface.dirty, driver->framebuffer);
+ break;
+ case QP_ROTATION_90:
+ qp_oled_panel_page_column_flush_rot90(device, &driver->oled.surface.dirty, driver->framebuffer);
+ break;
+ case QP_ROTATION_180:
+ qp_oled_panel_page_column_flush_rot180(device, &driver->oled.surface.dirty, driver->framebuffer);
+ break;
+ case QP_ROTATION_270:
+ qp_oled_panel_page_column_flush_rot270(device, &driver->oled.surface.dirty, driver->framebuffer);
+ break;
+ }
+
+ // Clear the dirty area
+ qp_flush(&driver->oled.surface);
+
+ return true;
+}
+
+////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+// Driver vtable
+////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+
+const oled_panel_painter_driver_vtable_t sh1106_driver_vtable = {
+ .base =
+ {
+ .init = qp_sh1106_init,
+ .power = qp_oled_panel_power,
+ .clear = qp_oled_panel_clear,
+ .flush = qp_sh1106_flush,
+ .pixdata = qp_oled_panel_passthru_pixdata,
+ .viewport = qp_oled_panel_passthru_viewport,
+ .palette_convert = qp_oled_panel_passthru_palette_convert,
+ .append_pixels = qp_oled_panel_passthru_append_pixels,
+ .append_pixdata = qp_oled_panel_passthru_append_pixdata,
+ },
+ .opcodes =
+ {
+ .display_on = SH1106_DISPLAY_ON,
+ .display_off = SH1106_DISPLAY_OFF,
+ .set_page = SH1106_PAGE_ADDR,
+ .set_column_lsb = SH1106_SETCOLUMN_LSB,
+ .set_column_msb = SH1106_SETCOLUMN_MSB,
+ },
+};
+
+#ifdef QUANTUM_PAINTER_SH1106_SPI_ENABLE
+// Factory function for creating a handle to the SH1106 device
+painter_device_t qp_sh1106_make_spi_device(uint16_t panel_width, uint16_t panel_height, pin_t chip_select_pin, pin_t dc_pin, pin_t reset_pin, uint16_t spi_divisor, int spi_mode) {
+ for (uint32_t i = 0; i < SH1106_NUM_DEVICES; ++i) {
+ sh1106_device_t *driver = &sh1106_drivers[i];
+ if (!driver->oled.base.driver_vtable) {
+ painter_device_t surface = qp_make_mono1bpp_surface_advanced(&driver->oled.surface, 1, panel_width, panel_height, driver->framebuffer);
+ if (!surface) {
+ return NULL;
+ }
+
+ // Setup the OLED device
+ driver->oled.base.driver_vtable = (const painter_driver_vtable_t *)&sh1106_driver_vtable;
+ driver->oled.base.comms_vtable = (const painter_comms_vtable_t *)&spi_comms_with_dc_vtable;
+ driver->oled.base.native_bits_per_pixel = 1; // 1bpp mono
+ driver->oled.base.panel_width = panel_width;
+ driver->oled.base.panel_height = panel_height;
+ driver->oled.base.rotation = QP_ROTATION_0;
+ driver->oled.base.offset_x = 0;
+ driver->oled.base.offset_y = 0;
+
+ // SPI and other pin configuration
+ driver->oled.base.comms_config = &driver->oled.spi_dc_reset_config;
+ driver->oled.spi_dc_reset_config.spi_config.chip_select_pin = chip_select_pin;
+ driver->oled.spi_dc_reset_config.spi_config.divisor = spi_divisor;
+ driver->oled.spi_dc_reset_config.spi_config.lsb_first = false;
+ driver->oled.spi_dc_reset_config.spi_config.mode = spi_mode;
+ driver->oled.spi_dc_reset_config.dc_pin = dc_pin;
+ driver->oled.spi_dc_reset_config.reset_pin = reset_pin;
+ driver->oled.spi_dc_reset_config.command_params_uses_command_pin = true;
+
+ if (!qp_internal_register_device((painter_device_t)driver)) {
+ memset(driver, 0, sizeof(sh1106_device_t));
+ return NULL;
+ }
+
+ return (painter_device_t)driver;
+ }
+ }
+ return NULL;
+}
+
+#endif // QUANTUM_PAINTER_SH1106_SPI_ENABLE
+
+#ifdef QUANTUM_PAINTER_SH1106_I2C_ENABLE
+// Factory function for creating a handle to the SH1106 device
+painter_device_t qp_sh1106_make_i2c_device(uint16_t panel_width, uint16_t panel_height, uint8_t i2c_address) {
+ for (uint32_t i = 0; i < SH1106_NUM_DEVICES; ++i) {
+ sh1106_device_t *driver = &sh1106_drivers[i];
+ if (!driver->oled.base.driver_vtable) {
+ // Instantiate the surface, intentional swap of width/high due to transpose
+ painter_device_t surface = qp_make_mono1bpp_surface_advanced(&driver->oled.surface, 1, panel_width, panel_height, driver->framebuffer);
+ if (!surface) {
+ return NULL;
+ }
+
+ // Setup the OLED device
+ driver->oled.base.driver_vtable = (const painter_driver_vtable_t *)&sh1106_driver_vtable;
+ driver->oled.base.comms_vtable = (const painter_comms_vtable_t *)&i2c_comms_cmddata_vtable;
+ driver->oled.base.native_bits_per_pixel = 1; // 1bpp mono
+ driver->oled.base.panel_width = panel_width;
+ driver->oled.base.panel_height = panel_height;
+ driver->oled.base.rotation = QP_ROTATION_0;
+ driver->oled.base.offset_x = 0;
+ driver->oled.base.offset_y = 0;
+
+ // I2C configuration
+ driver->oled.base.comms_config = &driver->oled.i2c_config;
+ driver->oled.i2c_config.chip_address = i2c_address;
+
+ if (!qp_internal_register_device((painter_device_t)driver)) {
+ memset(driver, 0, sizeof(sh1106_device_t));
+ return NULL;
+ }
+
+ return (painter_device_t)driver;
+ }
+ }
+ return NULL;
+}
+
+#endif // QUANTUM_PAINTER_SH1106_SPI_ENABLE
diff --git a/drivers/painter/sh1106/qp_sh1106.h b/drivers/painter/sh1106/qp_sh1106.h
new file mode 100644
index 0000000000..6c325dba4b
--- /dev/null
+++ b/drivers/painter/sh1106/qp_sh1106.h
@@ -0,0 +1,66 @@
+// Copyright 2023 Nick Brassel (@tzarc)
+// SPDX-License-Identifier: GPL-2.0-or-later
+#pragma once
+
+#include "gpio.h"
+#include "qp_internal.h"
+
+////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+// Quantum Painter SH1106 configurables (add to your keyboard's config.h)
+
+#if defined(QUANTUM_PAINTER_SH1106_SPI_ENABLE) && !defined(SH1106_NUM_SPI_DEVICES)
+/**
+ * @def This controls the maximum number of SPI SH1106 devices that Quantum Painter can communicate with at any one time.
+ * Increasing this number allows for multiple displays to be used.
+ */
+# define SH1106_NUM_SPI_DEVICES 1
+#else
+# define SH1106_NUM_SPI_DEVICES 0
+#endif
+
+#if defined(QUANTUM_PAINTER_SH1106_I2C_ENABLE) && !defined(SH1106_NUM_I2C_DEVICES)
+/**
+ * @def This controls the maximum number of I2C SH1106 devices that Quantum Painter can communicate with at any one time.
+ * Increasing this number allows for multiple displays to be used.
+ */
+# define SH1106_NUM_I2C_DEVICES 1
+#else
+# define SH1106_NUM_I2C_DEVICES 0
+#endif
+
+#define SH1106_NUM_DEVICES ((SH1106_NUM_SPI_DEVICES) + (SH1106_NUM_I2C_DEVICES))
+
+////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+// Quantum Painter SH1106 device factories
+
+#ifdef QUANTUM_PAINTER_SH1106_SPI_ENABLE
+
+/**
+ * Factory method for an SH1106 SPI LCD device.
+ *
+ * @param panel_width[in] the width of the display in pixels (usually 128)
+ * @param panel_height[in] the height of the display in pixels (usually 64)
+ * @param chip_select_pin[in] the GPIO pin used for SPI chip select
+ * @param dc_pin[in] the GPIO pin used for D/C control
+ * @param reset_pin[in] the GPIO pin used for RST
+ * @param spi_divisor[in] the SPI divisor to use when communicating with the display
+ * @param spi_mode[in] the SPI mode to use when communicating with the display
+ * @return the device handle used with all drawing routines in Quantum Painter
+ */
+painter_device_t qp_sh1106_make_spi_device(uint16_t panel_width, uint16_t panel_height, pin_t chip_select_pin, pin_t dc_pin, pin_t reset_pin, uint16_t spi_divisor, int spi_mode);
+
+#endif // QUANTUM_PAINTER_SH1106_SPI_ENABLE
+
+#ifdef QUANTUM_PAINTER_SH1106_I2C_ENABLE
+
+/**
+ * Factory method for an SH1106 I2C LCD device.
+ *
+ * @param panel_width[in] the width of the display in pixels (usually 128)
+ * @param panel_height[in] the height of the display in pixels (usually 64)
+ * @param i2c_address[in] the I2C address to use
+ * @return the device handle used with all drawing routines in Quantum Painter
+ */
+painter_device_t qp_sh1106_make_i2c_device(uint16_t panel_width, uint16_t panel_height, uint8_t i2c_address);
+
+#endif // QUANTUM_PAINTER_SH1106_I2C_ENABLE
diff --git a/drivers/painter/sh1106/qp_sh1106_opcodes.h b/drivers/painter/sh1106/qp_sh1106_opcodes.h
new file mode 100644
index 0000000000..a2e100d770
--- /dev/null
+++ b/drivers/painter/sh1106/qp_sh1106_opcodes.h
@@ -0,0 +1,26 @@
+// Copyright 2023 Nick Brassel (@tzarc)
+// SPDX-License-Identifier: GPL-2.0-or-later
+#pragma once
+
+#define SH1106_DISPLAY_ON 0xAF
+#define SH1106_DISPLAY_OFF 0xAE
+#define SH1106_SET_OSC_DIVFREQ 0xD5
+#define SH1106_SET_MUX_RATIO 0xA8
+#define SH1106_DISPLAY_OFFSET 0xD3
+#define SH1106_DISPLAY_START_LINE 0x40
+#define SH1106_SET_CHARGE_PUMP 0x8D
+#define SH1106_SET_SEGMENT_REMAP_NORMAL 0xA0
+#define SH1106_SET_SEGMENT_REMAP_INV 0xA1
+#define SH1106_COM_SCAN_DIR_INC 0xC0
+#define SH1106_COM_SCAN_DIR_DEC 0xC8
+#define SH1106_COM_PADS_HW_CFG 0xDA
+#define SH1106_SET_CONTRAST 0x81
+#define SH1106_SET_PRECHARGE_PERIOD 0xD9
+#define SH1106_VCOM_DETECT 0xDB
+#define SH1106_ALL_ON_RESUME 0xA4
+#define SH1106_NON_INVERTING_DISPLAY 0xA6
+#define SH1106_DEACTIVATE_SCROLL 0x2E
+
+#define SH1106_SETCOLUMN_LSB 0x00
+#define SH1106_SETCOLUMN_MSB 0x10
+#define SH1106_PAGE_ADDR 0xB0
diff --git a/drivers/painter/ssd1351/qp_ssd1351.c b/drivers/painter/ssd1351/qp_ssd1351.c
index 434b7f0327..3270a362c2 100644
--- a/drivers/painter/ssd1351/qp_ssd1351.c
+++ b/drivers/painter/ssd1351/qp_ssd1351.c
@@ -107,13 +107,14 @@ painter_device_t qp_ssd1351_make_spi_device(uint16_t panel_width, uint16_t panel
driver->base.native_bits_per_pixel = 16; // RGB565
// SPI and other pin configuration
- driver->base.comms_config = &driver->spi_dc_reset_config;
- driver->spi_dc_reset_config.spi_config.chip_select_pin = chip_select_pin;
- driver->spi_dc_reset_config.spi_config.divisor = spi_divisor;
- driver->spi_dc_reset_config.spi_config.lsb_first = false;
- driver->spi_dc_reset_config.spi_config.mode = spi_mode;
- driver->spi_dc_reset_config.dc_pin = dc_pin;
- driver->spi_dc_reset_config.reset_pin = reset_pin;
+ driver->base.comms_config = &driver->spi_dc_reset_config;
+ driver->spi_dc_reset_config.spi_config.chip_select_pin = chip_select_pin;
+ driver->spi_dc_reset_config.spi_config.divisor = spi_divisor;
+ driver->spi_dc_reset_config.spi_config.lsb_first = false;
+ driver->spi_dc_reset_config.spi_config.mode = spi_mode;
+ driver->spi_dc_reset_config.dc_pin = dc_pin;
+ driver->spi_dc_reset_config.reset_pin = reset_pin;
+ driver->spi_dc_reset_config.command_params_uses_command_pin = false;
if (!qp_internal_register_device((painter_device_t)driver)) {
memset(driver, 0, sizeof(tft_panel_dc_reset_painter_device_t));
diff --git a/drivers/painter/ssd1351/qp_ssd1351.h b/drivers/painter/ssd1351/qp_ssd1351.h
index 0df34f204d..0045c4926b 100644
--- a/drivers/painter/ssd1351/qp_ssd1351.h
+++ b/drivers/painter/ssd1351/qp_ssd1351.h
@@ -1,6 +1,5 @@
// Copyright 2021 Nick Brassel (@tzarc)
// SPDX-License-Identifier: GPL-2.0-or-later
-
#pragma once
#include "gpio.h"
diff --git a/drivers/painter/ssd1351/qp_ssd1351_opcodes.h b/drivers/painter/ssd1351/qp_ssd1351_opcodes.h
index 48ed2a3a7c..ca8e2bf77e 100644
--- a/drivers/painter/ssd1351/qp_ssd1351_opcodes.h
+++ b/drivers/painter/ssd1351/qp_ssd1351_opcodes.h
@@ -1,6 +1,5 @@
// Copyright 2021 Nick Brassel (@tzarc)
// SPDX-License-Identifier: GPL-2.0-or-later
-
#pragma once
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
diff --git a/drivers/painter/st77xx/qp_st7735.c b/drivers/painter/st77xx/qp_st7735.c
index 98baf400ab..1db0d01dcb 100644
--- a/drivers/painter/st77xx/qp_st7735.c
+++ b/drivers/painter/st77xx/qp_st7735.c
@@ -58,6 +58,8 @@ __attribute__((weak)) bool qp_st7735_init(painter_device_t device, painter_rotat
ST77XX_SET_PIX_FMT, 0, 1, 0x55,
ST77XX_CMD_INVERT_OFF, 0, 0,
ST77XX_CMD_NORMAL_ON, 0, 0,
+ ST7735_SET_PGAMMA, 0, 16, 0x02, 0x1C, 0x07, 0x12, 0x37, 0x32, 0x29, 0x2D, 0x29, 0x25, 0x2B, 0x39, 0x00, 0x01, 0x03, 0x10,
+ ST7735_SET_NGAMMA, 0, 16, 0x03, 0x1D, 0x07, 0x06, 0x2E, 0x2C, 0x29, 0x2D, 0x2E, 0x2E, 0x37, 0x3F, 0x00, 0x00, 0x02, 0x10,
ST77XX_CMD_DISPLAY_ON, 20, 0
};
// clang-format on
@@ -127,13 +129,14 @@ painter_device_t qp_st7735_make_spi_device(uint16_t panel_width, uint16_t panel_
driver->base.native_bits_per_pixel = 16; // RGB565
// SPI and other pin configuration
- driver->base.comms_config = &driver->spi_dc_reset_config;
- driver->spi_dc_reset_config.spi_config.chip_select_pin = chip_select_pin;
- driver->spi_dc_reset_config.spi_config.divisor = spi_divisor;
- driver->spi_dc_reset_config.spi_config.lsb_first = false;
- driver->spi_dc_reset_config.spi_config.mode = spi_mode;
- driver->spi_dc_reset_config.dc_pin = dc_pin;
- driver->spi_dc_reset_config.reset_pin = reset_pin;
+ driver->base.comms_config = &driver->spi_dc_reset_config;
+ driver->spi_dc_reset_config.spi_config.chip_select_pin = chip_select_pin;
+ driver->spi_dc_reset_config.spi_config.divisor = spi_divisor;
+ driver->spi_dc_reset_config.spi_config.lsb_first = false;
+ driver->spi_dc_reset_config.spi_config.mode = spi_mode;
+ driver->spi_dc_reset_config.dc_pin = dc_pin;
+ driver->spi_dc_reset_config.reset_pin = reset_pin;
+ driver->spi_dc_reset_config.command_params_uses_command_pin = false;
if (!qp_internal_register_device((painter_device_t)driver)) {
memset(driver, 0, sizeof(tft_panel_dc_reset_painter_device_t));
diff --git a/drivers/painter/st77xx/qp_st7735.h b/drivers/painter/st77xx/qp_st7735.h
index a9ce16bef1..e65b7ca706 100644
--- a/drivers/painter/st77xx/qp_st7735.h
+++ b/drivers/painter/st77xx/qp_st7735.h
@@ -2,7 +2,6 @@
// Copyright 2021 Nick Brassel (@tzarc)
// Copyright 2022 David Hoelscher (@customMK)
// SPDX-License-Identifier: GPL-2.0-or-later
-
#pragma once
#include "gpio.h"
@@ -42,4 +41,4 @@
* @return the device handle used with all drawing routines in Quantum Painter
*/
painter_device_t qp_st7735_make_spi_device(uint16_t panel_width, uint16_t panel_height, pin_t chip_select_pin, pin_t dc_pin, pin_t reset_pin, uint16_t spi_divisor, int spi_mode);
-#endif // QUANTUM_PAINTER_ST7735_SPI_ENABLE \ No newline at end of file
+#endif // QUANTUM_PAINTER_ST7735_SPI_ENABLE
diff --git a/drivers/painter/st77xx/qp_st7735_opcodes.h b/drivers/painter/st77xx/qp_st7735_opcodes.h
index 816e32f3d7..f390d113c5 100644
--- a/drivers/painter/st77xx/qp_st7735_opcodes.h
+++ b/drivers/painter/st77xx/qp_st7735_opcodes.h
@@ -1,6 +1,5 @@
// Copyright 2022 David Hoelscher (@customMK)
// SPDX-License-Identifier: GPL-2.0-or-later
-
#pragma once
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
diff --git a/drivers/painter/st77xx/qp_st7789.c b/drivers/painter/st77xx/qp_st7789.c
index f9065f5178..855a9cc0c8 100644
--- a/drivers/painter/st77xx/qp_st7789.c
+++ b/drivers/painter/st77xx/qp_st7789.c
@@ -126,13 +126,14 @@ painter_device_t qp_st7789_make_spi_device(uint16_t panel_width, uint16_t panel_
driver->base.native_bits_per_pixel = 16; // RGB565
// SPI and other pin configuration
- driver->base.comms_config = &driver->spi_dc_reset_config;
- driver->spi_dc_reset_config.spi_config.chip_select_pin = chip_select_pin;
- driver->spi_dc_reset_config.spi_config.divisor = spi_divisor;
- driver->spi_dc_reset_config.spi_config.lsb_first = false;
- driver->spi_dc_reset_config.spi_config.mode = spi_mode;
- driver->spi_dc_reset_config.dc_pin = dc_pin;
- driver->spi_dc_reset_config.reset_pin = reset_pin;
+ driver->base.comms_config = &driver->spi_dc_reset_config;
+ driver->spi_dc_reset_config.spi_config.chip_select_pin = chip_select_pin;
+ driver->spi_dc_reset_config.spi_config.divisor = spi_divisor;
+ driver->spi_dc_reset_config.spi_config.lsb_first = false;
+ driver->spi_dc_reset_config.spi_config.mode = spi_mode;
+ driver->spi_dc_reset_config.dc_pin = dc_pin;
+ driver->spi_dc_reset_config.reset_pin = reset_pin;
+ driver->spi_dc_reset_config.command_params_uses_command_pin = false;
if (!qp_internal_register_device((painter_device_t)driver)) {
memset(driver, 0, sizeof(tft_panel_dc_reset_painter_device_t));
diff --git a/drivers/painter/st77xx/qp_st7789.h b/drivers/painter/st77xx/qp_st7789.h
index ec61f5d70b..03d618cae4 100644
--- a/drivers/painter/st77xx/qp_st7789.h
+++ b/drivers/painter/st77xx/qp_st7789.h
@@ -1,7 +1,6 @@
// Copyright 2021 Paul Cotter (@gr1mr3aver)
// Copyright 2021 Nick Brassel (@tzarc)
// SPDX-License-Identifier: GPL-2.0-or-later
-
#pragma once
#include "gpio.h"
diff --git a/drivers/painter/st77xx/qp_st7789_opcodes.h b/drivers/painter/st77xx/qp_st7789_opcodes.h
index b5baba7184..4b46f994b4 100644
--- a/drivers/painter/st77xx/qp_st7789_opcodes.h
+++ b/drivers/painter/st77xx/qp_st7789_opcodes.h
@@ -1,6 +1,5 @@
// Copyright 2021 Paul Cotter (@gr1mr3aver)
// SPDX-License-Identifier: GPL-2.0-or-later
-
#pragma once
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
diff --git a/drivers/painter/st77xx/qp_st77xx_opcodes.h b/drivers/painter/st77xx/qp_st77xx_opcodes.h
index 131378d832..c01e2b21e6 100644
--- a/drivers/painter/st77xx/qp_st77xx_opcodes.h
+++ b/drivers/painter/st77xx/qp_st77xx_opcodes.h
@@ -1,6 +1,5 @@
// Copyright 2021 Paul Cotter (@gr1mr3aver)
// SPDX-License-Identifier: GPL-2.0-or-later
-
#pragma once
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
diff --git a/drivers/painter/tft_panel/qp_tft_panel.h b/drivers/painter/tft_panel/qp_tft_panel.h
index 67168645b7..3b184f2eba 100644
--- a/drivers/painter/tft_panel/qp_tft_panel.h
+++ b/drivers/painter/tft_panel/qp_tft_panel.h
@@ -1,5 +1,6 @@
// Copyright 2021 Nick Brassel (@tzarc)
// SPDX-License-Identifier: GPL-2.0-or-later
+#pragma once
#include "color.h"
#include "qp_internal.h"
diff --git a/drivers/ps2/ps2_mouse.c b/drivers/ps2/ps2_mouse.c
index ae594c94bc..88c9bdcebe 100644
--- a/drivers/ps2/ps2_mouse.c
+++ b/drivers/ps2/ps2_mouse.c
@@ -265,6 +265,7 @@ static inline void ps2_mouse_scroll_button_task(report_mouse_t *mouse_report) {
SCROLL_SENT,
} scroll_state = SCROLL_NONE;
static uint16_t scroll_button_time = 0;
+ static int16_t scroll_x, scroll_y;
if (PS2_MOUSE_SCROLL_BTN_MASK == (mouse_report->buttons & (PS2_MOUSE_SCROLL_BTN_MASK))) {
// All scroll buttons are pressed
@@ -272,13 +273,19 @@ static inline void ps2_mouse_scroll_button_task(report_mouse_t *mouse_report) {
if (scroll_state == SCROLL_NONE) {
scroll_button_time = timer_read();
scroll_state = SCROLL_BTN;
+ scroll_x = 0;
+ scroll_y = 0;
}
// If the mouse has moved, update the report to scroll instead of move the mouse
if (mouse_report->x || mouse_report->y) {
- scroll_state = SCROLL_SENT;
- mouse_report->v = -mouse_report->y / (PS2_MOUSE_SCROLL_DIVISOR_V);
- mouse_report->h = mouse_report->x / (PS2_MOUSE_SCROLL_DIVISOR_H);
+ scroll_state = SCROLL_SENT;
+ scroll_y += mouse_report->y;
+ scroll_x += mouse_report->x;
+ mouse_report->v = -scroll_y / (PS2_MOUSE_SCROLL_DIVISOR_V);
+ mouse_report->h = scroll_x / (PS2_MOUSE_SCROLL_DIVISOR_H);
+ scroll_y += (mouse_report->v * (PS2_MOUSE_SCROLL_DIVISOR_V));
+ scroll_x -= (mouse_report->h * (PS2_MOUSE_SCROLL_DIVISOR_H));
mouse_report->x = 0;
mouse_report->y = 0;
#ifdef PS2_MOUSE_INVERT_H
diff --git a/drivers/sensors/azoteq_iqs5xx.c b/drivers/sensors/azoteq_iqs5xx.c
new file mode 100644
index 0000000000..521f558b5f
--- /dev/null
+++ b/drivers/sensors/azoteq_iqs5xx.c
@@ -0,0 +1,315 @@
+// Copyright 2023 Dasky (@daskygit)
+// Copyright 2023 George Norton (@george-norton)
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#include "azoteq_iqs5xx.h"
+#include "pointing_device_internal.h"
+#include "wait.h"
+
+#ifndef AZOTEQ_IQS5XX_ADDRESS
+# define AZOTEQ_IQS5XX_ADDRESS (0x74 << 1)
+#endif
+#ifndef AZOTEQ_IQS5XX_TIMEOUT_MS
+# define AZOTEQ_IQS5XX_TIMEOUT_MS 10
+#endif
+
+#define AZOTEQ_IQS5XX_REG_PRODUCT_NUMBER 0x0000
+#define AZOTEQ_IQS5XX_REG_PREVIOUS_CYCLE_TIME 0x000C
+#define AZOTEQ_IQS5XX_REG_SYSTEM_CONTROL_1 0x0432
+#define AZOTEQ_IQS5XX_REG_REPORT_RATE_ACTIVE 0x057A
+#define AZOTEQ_IQS5XX_REG_SYSTEM_CONFIG_0 0x058E
+#define AZOTEQ_IQS5XX_REG_SYSTEM_CONFIG_1 0x058F
+#define AZOTEQ_IQS5XX_REG_X_RESOLUTION 0x066E
+#define AZOTEQ_IQS5XX_REG_XY_CONFIG_0 0x0669
+#define AZOTEQ_IQS5XX_REG_Y_RESOLUTION 0x0670
+#define AZOTEQ_IQS5XX_REG_SINGLE_FINGER_GESTURES 0x06B7
+#define AZOTEQ_IQS5XX_REG_END_COMMS 0xEEEE
+
+// Gesture configuration
+#ifndef AZOTEQ_IQS5XX_TAP_ENABLE
+# define AZOTEQ_IQS5XX_TAP_ENABLE true
+#endif
+#ifndef AZOTEQ_IQS5XX_PRESS_AND_HOLD_ENABLE
+# define AZOTEQ_IQS5XX_PRESS_AND_HOLD_ENABLE false
+#endif
+#ifndef AZOTEQ_IQS5XX_TWO_FINGER_TAP_ENABLE
+# define AZOTEQ_IQS5XX_TWO_FINGER_TAP_ENABLE true
+#endif
+#ifndef AZOTEQ_IQS5XX_SCROLL_ENABLE
+# define AZOTEQ_IQS5XX_SCROLL_ENABLE true
+#endif
+#ifndef AZOTEQ_IQS5XX_SWIPE_X_ENABLE
+# define AZOTEQ_IQS5XX_SWIPE_X_ENABLE false
+#endif
+#ifndef AZOTEQ_IQS5XX_SWIPE_Y_ENABLE
+# define AZOTEQ_IQS5XX_SWIPE_Y_ENABLE false
+#endif
+#ifndef AZOTEQ_IQS5XX_ZOOM_ENABLE
+# define AZOTEQ_IQS5XX_ZOOM_ENABLE false
+#endif
+#ifndef AZOTEQ_IQS5XX_TAP_TIME
+# define AZOTEQ_IQS5XX_TAP_TIME 0x96
+#endif
+#ifndef AZOTEQ_IQS5XX_TAP_DISTANCE
+# define AZOTEQ_IQS5XX_TAP_DISTANCE 0x19
+#endif
+#ifndef AZOTEQ_IQS5XX_HOLD_TIME
+# define AZOTEQ_IQS5XX_HOLD_TIME 0x12C
+#endif
+#ifndef AZOTEQ_IQS5XX_SWIPE_INITIAL_TIME
+# define AZOTEQ_IQS5XX_SWIPE_INITIAL_TIME 0x64 // 0x96
+#endif
+#ifndef AZOTEQ_IQS5XX_SWIPE_INITIAL_DISTANCE
+# define AZOTEQ_IQS5XX_SWIPE_INITIAL_DISTANCE 0x12C
+#endif
+#ifndef AZOTEQ_IQS5XX_SWIPE_CONSECUTIVE_TIME
+# define AZOTEQ_IQS5XX_SWIPE_CONSECUTIVE_TIME 0x0
+#endif
+#ifndef AZOTEQ_IQS5XX_SWIPE_CONSECUTIVE_DISTANCE
+# define AZOTEQ_IQS5XX_SWIPE_CONSECUTIVE_DISTANCE 0x7D0
+#endif
+#ifndef AZOTEQ_IQS5XX_SCROLL_INITIAL_DISTANCE
+# define AZOTEQ_IQS5XX_SCROLL_INITIAL_DISTANCE 0x32
+#endif
+#ifndef AZOTEQ_IQS5XX_ZOOM_INITIAL_DISTANCE
+# define AZOTEQ_IQS5XX_ZOOM_INITIAL_DISTANCE 0x32
+#endif
+#ifndef AZOTEQ_IQS5XX_ZOOM_CONSECUTIVE_DISTANCE
+# define AZOTEQ_IQS5XX_ZOOM_CONSECUTIVE_DISTANCE 0x19
+#endif
+
+#if defined(AZOTEQ_IQS5XX_TPS43)
+# define AZOTEQ_IQS5XX_WIDTH_MM 43
+# define AZOTEQ_IQS5XX_HEIGHT_MM 40
+# define AZOTEQ_IQS5XX_RESOLUTION_X 2048
+# define AZOTEQ_IQS5XX_RESOLUTION_Y 1792
+#elif defined(AZOTEQ_IQS5XX_TPS65)
+# define AZOTEQ_IQS5XX_WIDTH_MM 65
+# define AZOTEQ_IQS5XX_HEIGHT_MM 49
+# define AZOTEQ_IQS5XX_RESOLUTION_X 3072
+# define AZOTEQ_IQS5XX_RESOLUTION_Y 2048
+#elif !defined(AZOTEQ_IQS5XX_WIDTH_MM) && !defined(AZOTEQ_IQS5XX_HEIGHT_MM)
+# error "You must define one of the available azoteq trackpads or specify at least the width and height"
+#endif
+
+#define DIVIDE_UNSIGNED_ROUND(numerator, denominator) (((numerator) + ((denominator) / 2)) / (denominator))
+#define AZOTEQ_IQS5XX_INCH_TO_RESOLUTION_X(inch) (DIVIDE_UNSIGNED_ROUND((inch) * (uint32_t)AZOTEQ_IQS5XX_WIDTH_MM * 10, 254))
+#define AZOTEQ_IQS5XX_RESOLUTION_X_TO_INCH(px) (DIVIDE_UNSIGNED_ROUND((px) * (uint32_t)254, AZOTEQ_IQS5XX_WIDTH_MM * 10))
+#define AZOTEQ_IQS5XX_INCH_TO_RESOLUTION_Y(inch) (DIVIDE_UNSIGNED_ROUND((inch) * (uint32_t)AZOTEQ_IQS5XX_HEIGHT_MM * 10, 254))
+#define AZOTEQ_IQS5XX_RESOLUTION_Y_TO_INCH(px) (DIVIDE_UNSIGNED_ROUND((px) * (uint32_t)254, AZOTEQ_IQS5XX_HEIGHT_MM * 10))
+
+static uint16_t azoteq_iqs5xx_product_number = AZOTEQ_IQS5XX_UNKNOWN;
+
+static struct {
+ uint16_t resolution_x;
+ uint16_t resolution_y;
+} azoteq_iqs5xx_device_resolution_t;
+
+i2c_status_t azoteq_iqs5xx_wake(void) {
+ uint8_t data = 0;
+ i2c_status_t status = i2c_readReg16(AZOTEQ_IQS5XX_ADDRESS, AZOTEQ_IQS5XX_REG_PREVIOUS_CYCLE_TIME, (uint8_t *)&data, sizeof(data), 1);
+ i2c_stop();
+ wait_us(150);
+ return status;
+}
+i2c_status_t azoteq_iqs5xx_end_session(void) {
+ const uint8_t END_BYTE = 1; // any data
+ return i2c_writeReg16(AZOTEQ_IQS5XX_ADDRESS, AZOTEQ_IQS5XX_REG_END_COMMS, &END_BYTE, 1, AZOTEQ_IQS5XX_TIMEOUT_MS);
+}
+
+i2c_status_t azoteq_iqs5xx_get_base_data(azoteq_iqs5xx_base_data_t *base_data) {
+ i2c_status_t status = i2c_readReg16(AZOTEQ_IQS5XX_ADDRESS, AZOTEQ_IQS5XX_REG_PREVIOUS_CYCLE_TIME, (uint8_t *)base_data, 10, AZOTEQ_IQS5XX_TIMEOUT_MS);
+ if (status == I2C_STATUS_SUCCESS) {
+ azoteq_iqs5xx_end_session();
+ }
+ return status;
+}
+
+i2c_status_t azoteq_iqs5xx_get_report_rate(azoteq_iqs5xx_report_rate_t *report_rate, azoteq_iqs5xx_charging_modes_t mode, bool end_session) {
+ if (mode > AZOTEQ_IQS5XX_LP2) {
+ pd_dprintf("IQS5XX - Invalid mode for get report rate.\n");
+ return I2C_STATUS_ERROR;
+ }
+ uint16_t selected_reg = AZOTEQ_IQS5XX_REG_REPORT_RATE_ACTIVE + (2 * mode);
+ i2c_status_t status = i2c_readReg16(AZOTEQ_IQS5XX_ADDRESS, selected_reg, (uint8_t *)report_rate, 2, AZOTEQ_IQS5XX_TIMEOUT_MS);
+ if (end_session) {
+ azoteq_iqs5xx_end_session();
+ }
+ return status;
+}
+
+i2c_status_t azoteq_iqs5xx_set_report_rate(uint16_t report_rate_ms, azoteq_iqs5xx_charging_modes_t mode, bool end_session) {
+ if (mode > AZOTEQ_IQS5XX_LP2) {
+ pd_dprintf("IQS5XX - Invalid mode for set report rate.\n");
+ return I2C_STATUS_ERROR;
+ }
+ uint16_t selected_reg = AZOTEQ_IQS5XX_REG_REPORT_RATE_ACTIVE + (2 * mode);
+ azoteq_iqs5xx_report_rate_t report_rate = {0};
+ report_rate.h = (uint8_t)((report_rate_ms >> 8) & 0xFF);
+ report_rate.l = (uint8_t)(report_rate_ms & 0xFF);
+ i2c_status_t status = i2c_writeReg16(AZOTEQ_IQS5XX_ADDRESS, selected_reg, (uint8_t *)&report_rate, 2, AZOTEQ_IQS5XX_TIMEOUT_MS);
+ if (end_session) {
+ azoteq_iqs5xx_end_session();
+ }
+ return status;
+}
+
+i2c_status_t azoteq_iqs5xx_set_reati(bool enabled, bool end_session) {
+ azoteq_iqs5xx_system_config_0_t config = {0};
+ i2c_status_t status = i2c_readReg16(AZOTEQ_IQS5XX_ADDRESS, AZOTEQ_IQS5XX_REG_SYSTEM_CONFIG_0, (uint8_t *)&config, sizeof(azoteq_iqs5xx_system_config_0_t), AZOTEQ_IQS5XX_TIMEOUT_MS);
+ if (status == I2C_STATUS_SUCCESS) {
+ config.reati = enabled;
+ status = i2c_writeReg16(AZOTEQ_IQS5XX_ADDRESS, AZOTEQ_IQS5XX_REG_SYSTEM_CONFIG_0, (uint8_t *)&config, sizeof(azoteq_iqs5xx_system_config_0_t), AZOTEQ_IQS5XX_TIMEOUT_MS);
+ }
+ if (end_session) {
+ azoteq_iqs5xx_end_session();
+ }
+ return status;
+}
+
+i2c_status_t azoteq_iqs5xx_set_event_mode(bool enabled, bool end_session) {
+ azoteq_iqs5xx_system_config_1_t config = {0};
+ i2c_status_t status = i2c_readReg16(AZOTEQ_IQS5XX_ADDRESS, AZOTEQ_IQS5XX_REG_SYSTEM_CONFIG_1, (uint8_t *)&config, sizeof(azoteq_iqs5xx_system_config_1_t), AZOTEQ_IQS5XX_TIMEOUT_MS);
+ if (status == I2C_STATUS_SUCCESS) {
+ config.event_mode = enabled;
+ config.touch_event = true;
+ config.tp_event = true;
+ config.prox_event = false;
+ config.snap_event = false;
+ config.reati_event = false;
+ config.alp_prox_event = false;
+ config.gesture_event = true;
+ status = i2c_writeReg16(AZOTEQ_IQS5XX_ADDRESS, AZOTEQ_IQS5XX_REG_SYSTEM_CONFIG_1, (uint8_t *)&config, sizeof(azoteq_iqs5xx_system_config_1_t), AZOTEQ_IQS5XX_TIMEOUT_MS);
+ }
+ if (end_session) {
+ azoteq_iqs5xx_end_session();
+ }
+ return status;
+}
+
+i2c_status_t azoteq_iqs5xx_set_gesture_config(bool end_session) {
+ azoteq_iqs5xx_gesture_config_t config = {0};
+ i2c_status_t status = i2c_readReg16(AZOTEQ_IQS5XX_ADDRESS, AZOTEQ_IQS5XX_REG_SINGLE_FINGER_GESTURES, (uint8_t *)&config, sizeof(azoteq_iqs5xx_gesture_config_t), AZOTEQ_IQS5XX_TIMEOUT_MS);
+ pd_dprintf("azo scroll: %d\n", config.multi_finger_gestures.scroll);
+ if (status == I2C_STATUS_SUCCESS) {
+ config.single_finger_gestures.single_tap = AZOTEQ_IQS5XX_TAP_ENABLE;
+ config.single_finger_gestures.press_and_hold = AZOTEQ_IQS5XX_PRESS_AND_HOLD_ENABLE;
+ config.single_finger_gestures.swipe_x_plus = AZOTEQ_IQS5XX_SWIPE_X_ENABLE;
+ config.single_finger_gestures.swipe_x_minus = AZOTEQ_IQS5XX_SWIPE_X_ENABLE;
+ config.single_finger_gestures.swipe_y_plus = AZOTEQ_IQS5XX_SWIPE_Y_ENABLE;
+ config.single_finger_gestures.swipe_y_minus = AZOTEQ_IQS5XX_SWIPE_Y_ENABLE;
+ config.multi_finger_gestures.two_finger_tap = AZOTEQ_IQS5XX_TWO_FINGER_TAP_ENABLE;
+ config.multi_finger_gestures.scroll = AZOTEQ_IQS5XX_SCROLL_ENABLE;
+ config.multi_finger_gestures.zoom = AZOTEQ_IQS5XX_ZOOM_ENABLE;
+ config.tap_time = AZOTEQ_IQS5XX_SWAP_H_L_BYTES(AZOTEQ_IQS5XX_TAP_TIME);
+ config.tap_distance = AZOTEQ_IQS5XX_SWAP_H_L_BYTES(AZOTEQ_IQS5XX_TAP_DISTANCE);
+ config.hold_time = AZOTEQ_IQS5XX_SWAP_H_L_BYTES(AZOTEQ_IQS5XX_HOLD_TIME);
+ config.swipe_initial_time = AZOTEQ_IQS5XX_SWAP_H_L_BYTES(AZOTEQ_IQS5XX_SWIPE_INITIAL_TIME);
+ config.swipe_initial_distance = AZOTEQ_IQS5XX_SWAP_H_L_BYTES(AZOTEQ_IQS5XX_SWIPE_INITIAL_DISTANCE);
+ config.swipe_consecutive_time = AZOTEQ_IQS5XX_SWAP_H_L_BYTES(AZOTEQ_IQS5XX_SWIPE_CONSECUTIVE_TIME);
+ config.swipe_consecutive_distance = AZOTEQ_IQS5XX_SWAP_H_L_BYTES(AZOTEQ_IQS5XX_SWIPE_CONSECUTIVE_DISTANCE);
+ config.scroll_initial_distance = AZOTEQ_IQS5XX_SWAP_H_L_BYTES(AZOTEQ_IQS5XX_SCROLL_INITIAL_DISTANCE);
+ config.zoom_initial_distance = AZOTEQ_IQS5XX_SWAP_H_L_BYTES(AZOTEQ_IQS5XX_ZOOM_INITIAL_DISTANCE);
+ config.zoom_consecutive_distance = AZOTEQ_IQS5XX_SWAP_H_L_BYTES(AZOTEQ_IQS5XX_ZOOM_CONSECUTIVE_DISTANCE);
+ status = i2c_writeReg16(AZOTEQ_IQS5XX_ADDRESS, AZOTEQ_IQS5XX_REG_SINGLE_FINGER_GESTURES, (uint8_t *)&config, sizeof(azoteq_iqs5xx_gesture_config_t), AZOTEQ_IQS5XX_TIMEOUT_MS);
+ }
+ if (end_session) {
+ azoteq_iqs5xx_end_session();
+ }
+ return status;
+}
+
+i2c_status_t azoteq_iqs5xx_set_xy_config(bool flip_x, bool flip_y, bool switch_xy, bool palm_reject, bool end_session) {
+ azoteq_iqs5xx_xy_config_0_t config = {0};
+ i2c_status_t status = i2c_readReg16(AZOTEQ_IQS5XX_ADDRESS, AZOTEQ_IQS5XX_REG_XY_CONFIG_0, (uint8_t *)&config, sizeof(azoteq_iqs5xx_xy_config_0_t), AZOTEQ_IQS5XX_TIMEOUT_MS);
+ if (status == I2C_STATUS_SUCCESS) {
+ if (flip_x) {
+ config.flip_x = !config.flip_x;
+ }
+ if (flip_y) {
+ config.flip_y = !config.flip_y;
+ }
+ if (switch_xy) {
+ config.switch_xy_axis = !config.switch_xy_axis;
+ }
+ config.palm_reject = palm_reject;
+ status = i2c_writeReg16(AZOTEQ_IQS5XX_ADDRESS, AZOTEQ_IQS5XX_REG_XY_CONFIG_0, (uint8_t *)&config, sizeof(azoteq_iqs5xx_xy_config_0_t), AZOTEQ_IQS5XX_TIMEOUT_MS);
+ }
+ if (end_session) {
+ azoteq_iqs5xx_end_session();
+ }
+ return status;
+}
+
+i2c_status_t azoteq_iqs5xx_reset_suspend(bool reset, bool suspend, bool end_session) {
+ azoteq_iqs5xx_system_control_1_t config = {0};
+ i2c_status_t status = i2c_readReg16(AZOTEQ_IQS5XX_ADDRESS, AZOTEQ_IQS5XX_REG_SYSTEM_CONTROL_1, (uint8_t *)&config, sizeof(azoteq_iqs5xx_system_control_1_t), AZOTEQ_IQS5XX_TIMEOUT_MS);
+ if (status == I2C_STATUS_SUCCESS) {
+ config.reset = reset;
+ config.suspend = suspend;
+ status = i2c_writeReg16(AZOTEQ_IQS5XX_ADDRESS, AZOTEQ_IQS5XX_REG_SYSTEM_CONTROL_1, (uint8_t *)&config, sizeof(azoteq_iqs5xx_system_control_1_t), AZOTEQ_IQS5XX_TIMEOUT_MS);
+ }
+ if (end_session) {
+ azoteq_iqs5xx_end_session();
+ }
+ return status;
+}
+
+void azoteq_iqs5xx_set_cpi(uint16_t cpi) {
+ if (azoteq_iqs5xx_product_number != AZOTEQ_IQS5XX_UNKNOWN) {
+ azoteq_iqs5xx_resolution_t resolution = {0};
+ resolution.x_resolution = AZOTEQ_IQS5XX_SWAP_H_L_BYTES(MIN(azoteq_iqs5xx_device_resolution_t.resolution_x, AZOTEQ_IQS5XX_INCH_TO_RESOLUTION_X(cpi)));
+ resolution.y_resolution = AZOTEQ_IQS5XX_SWAP_H_L_BYTES(MIN(azoteq_iqs5xx_device_resolution_t.resolution_y, AZOTEQ_IQS5XX_INCH_TO_RESOLUTION_Y(cpi)));
+ i2c_writeReg16(AZOTEQ_IQS5XX_ADDRESS, AZOTEQ_IQS5XX_REG_X_RESOLUTION, (uint8_t *)&resolution, sizeof(azoteq_iqs5xx_resolution_t), AZOTEQ_IQS5XX_TIMEOUT_MS);
+ }
+}
+
+uint16_t azoteq_iqs5xx_get_cpi(void) {
+ if (azoteq_iqs5xx_product_number != AZOTEQ_IQS5XX_UNKNOWN) {
+ azoteq_iqs5xx_resolution_t resolution = {0};
+ i2c_status_t status = i2c_readReg16(AZOTEQ_IQS5XX_ADDRESS, AZOTEQ_IQS5XX_REG_X_RESOLUTION, (uint8_t *)&resolution, sizeof(azoteq_iqs5xx_resolution_t), AZOTEQ_IQS5XX_TIMEOUT_MS);
+ if (status == I2C_STATUS_SUCCESS) {
+ return AZOTEQ_IQS5XX_RESOLUTION_X_TO_INCH(AZOTEQ_IQS5XX_SWAP_H_L_BYTES(resolution.x_resolution));
+ }
+ }
+ return 0;
+}
+
+uint16_t azoteq_iqs5xx_get_product(void) {
+ i2c_status_t status = i2c_readReg16(AZOTEQ_IQS5XX_ADDRESS, AZOTEQ_IQS5XX_REG_PRODUCT_NUMBER, (uint8_t *)&azoteq_iqs5xx_product_number, sizeof(uint16_t), AZOTEQ_IQS5XX_TIMEOUT_MS);
+ if (status == I2C_STATUS_SUCCESS) {
+ azoteq_iqs5xx_product_number = AZOTEQ_IQS5XX_SWAP_H_L_BYTES(azoteq_iqs5xx_product_number);
+ }
+ pd_dprintf("AZOTEQ: Product number %u\n", azoteq_iqs5xx_product_number);
+ return azoteq_iqs5xx_product_number;
+}
+
+void azoteq_iqs5xx_setup_resolution(void) {
+#if !defined(AZOTEQ_IQS5XX_RESOLUTION_X) && !defined(AZOTEQ_IQS5XX_RESOLUTION_Y)
+ switch (azoteq_iqs5xx_product_number) {
+ case AZOTEQ_IQS550:
+ azoteq_iqs5xx_device_resolution_t.resolution_x = 3584;
+ azoteq_iqs5xx_device_resolution_t.resolution_y = 2304;
+ break;
+ case AZOTEQ_IQS572:
+ azoteq_iqs5xx_device_resolution_t.resolution_x = 2048;
+ azoteq_iqs5xx_device_resolution_t.resolution_y = 1792;
+ break;
+ case AZOTEQ_IQS525:
+ azoteq_iqs5xx_device_resolution_t.resolution_x = 1280;
+ azoteq_iqs5xx_device_resolution_t.resolution_y = 768;
+ break;
+ default:
+ // shouldn't be here
+ azoteq_iqs5xx_device_resolution_t.resolution_x = 0;
+ azoteq_iqs5xx_device_resolution_t.resolution_y = 0;
+ break;
+ }
+#endif
+#ifdef AZOTEQ_IQS5XX_RESOLUTION_X
+ azoteq_iqs5xx_device_resolution_t.resolution_x = AZOTEQ_IQS5XX_RESOLUTION_X;
+#endif
+#ifdef AZOTEQ_IQS5XX_RESOLUTION_Y
+ azoteq_iqs5xx_device_resolution_t.resolution_y = AZOTEQ_IQS5XX_RESOLUTION_Y;
+#endif
+}
diff --git a/drivers/sensors/azoteq_iqs5xx.h b/drivers/sensors/azoteq_iqs5xx.h
new file mode 100644
index 0000000000..704ec2bab3
--- /dev/null
+++ b/drivers/sensors/azoteq_iqs5xx.h
@@ -0,0 +1,193 @@
+// Copyright 2023 Dasky (@daskygit)
+// Copyright 2023 George Norton (@george-norton)
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#pragma once
+
+#include "i2c_master.h"
+#include "pointing_device.h"
+#include "util.h"
+
+typedef enum {
+ AZOTEQ_IQS5XX_UNKNOWN,
+ AZOTEQ_IQS550 = 40,
+ AZOTEQ_IQS525 = 52,
+ AZOTEQ_IQS572 = 58,
+} azoteq_iqs5xx_product_numbers_t;
+typedef enum {
+ AZOTEQ_IQS5XX_ACTIVE,
+ AZOTEQ_IQS5XX_IDLE_TOUCH,
+ AZOTEQ_IQS5XX_IDLE,
+ AZOTEQ_IQS5XX_LP1,
+ AZOTEQ_IQS5XX_LP2,
+} azoteq_iqs5xx_charging_modes_t;
+
+typedef struct {
+ uint8_t h : 8;
+ uint8_t l : 8;
+} azoteq_iqs5xx_report_rate_t;
+
+typedef struct PACKED {
+ bool single_tap : 1; // Single tap gesture status
+ bool press_and_hold : 1; // Press and hold gesture status
+ bool swipe_x_neg : 1; // Swipe in negative X direction status
+ bool swipe_x_pos : 1; // Swipe in positive X direction status
+ bool swipe_y_pos : 1; // Swipe in positive Y direction status
+ bool swipe_y_neg : 1; // Swipe in negative Y direction status
+ uint8_t _unused : 2; // unused
+} azoteq_iqs5xx_gesture_events_0_t;
+
+typedef struct PACKED {
+ bool two_finger_tap : 1; // Two finger tap gesture status
+ bool scroll : 1; // Scroll status
+ bool zoom : 1; // Zoom gesture status
+ uint8_t _unused : 5; // unused
+} azoteq_iqs5xx_gesture_events_1_t;
+
+typedef struct PACKED {
+ azoteq_iqs5xx_charging_modes_t charging_mode : 3; // Indicates current mode
+ bool ati_error : 1; //
+ bool reati_occurred : 1; //
+ bool alp_ati_error : 1; //
+ bool alp_reati_occurred : 1; //
+ bool show_reset : 1; //
+} azoteq_iqs5xx_system_info_0_t;
+
+typedef struct PACKED {
+ bool tp_movement : 1; //
+ bool palm_detect : 1; // Palm detect status
+ bool too_many_fingers : 1; // Total finger status
+ bool rr_missed : 1; // Report rate status
+ bool snap_toggle : 1; // Change in any snap channel status
+ bool switch_state : 1; // Status of input pin SW_IN
+ uint8_t _unused : 2; // unused
+} azoteq_iqs5xx_system_info_1_t;
+
+typedef struct {
+ uint8_t h : 8;
+ uint8_t l : 8;
+} azoteq_iqs5xx_relative_xy_t;
+
+typedef struct {
+ uint8_t previous_cycle_time;
+ azoteq_iqs5xx_gesture_events_0_t gesture_events_0;
+ azoteq_iqs5xx_gesture_events_1_t gesture_events_1;
+ azoteq_iqs5xx_system_info_0_t system_info_0;
+ azoteq_iqs5xx_system_info_1_t system_info_1;
+ uint8_t number_of_fingers;
+ azoteq_iqs5xx_relative_xy_t x;
+ azoteq_iqs5xx_relative_xy_t y;
+} azoteq_iqs5xx_base_data_t;
+
+_Static_assert(sizeof(azoteq_iqs5xx_base_data_t) == 10, "azoteq_iqs5xx_basic_report_t should be 10 bytes");
+
+typedef struct {
+ uint8_t number_of_fingers;
+ azoteq_iqs5xx_relative_xy_t x;
+ azoteq_iqs5xx_relative_xy_t y;
+} azoteq_iqs5xx_report_data_t;
+
+_Static_assert(sizeof(azoteq_iqs5xx_report_data_t) == 5, "azoteq_iqs5xx_report_data_t should be 5 bytes");
+
+typedef struct PACKED {
+ bool sw_input : 1;
+ bool sw_input_select : 1;
+ bool reati : 1;
+ bool alp_reati : 1;
+ bool sw_input_event : 1;
+ bool wdt : 1;
+ bool setup_complete : 1;
+ bool manual_control : 1;
+} azoteq_iqs5xx_system_config_0_t;
+
+typedef struct PACKED {
+ bool event_mode : 1;
+ bool gesture_event : 1;
+ bool tp_event : 1;
+ bool reati_event : 1;
+ bool alp_prox_event : 1;
+ bool snap_event : 1;
+ bool touch_event : 1;
+ bool prox_event : 1;
+} azoteq_iqs5xx_system_config_1_t;
+
+typedef struct PACKED {
+ bool flip_x : 1;
+ bool flip_y : 1;
+ bool switch_xy_axis : 1;
+ bool palm_reject : 1;
+ uint8_t _unused : 4;
+} azoteq_iqs5xx_xy_config_0_t;
+
+typedef struct PACKED {
+ bool suspend : 1;
+ bool reset : 1;
+ int8_t _unused : 6;
+} azoteq_iqs5xx_system_control_1_t;
+
+typedef struct PACKED {
+ bool single_tap : 1;
+ bool press_and_hold : 1;
+ bool swipe_x_minus : 1;
+ bool swipe_x_plus : 1;
+ bool swipe_y_plus : 1;
+ bool swipe_y_minus : 1;
+ int8_t _unused : 2;
+} azoteq_iqs5xx_single_finger_gesture_enable_t;
+
+typedef struct PACKED {
+ bool two_finger_tap : 1;
+ bool scroll : 1;
+ bool zoom : 1;
+ int8_t _unused : 5;
+} azoteq_iqs5xx_multi_finger_gesture_enable_t;
+
+typedef struct PACKED {
+ azoteq_iqs5xx_single_finger_gesture_enable_t single_finger_gestures;
+ azoteq_iqs5xx_multi_finger_gesture_enable_t multi_finger_gestures;
+ uint16_t tap_time;
+ uint16_t tap_distance;
+ uint16_t hold_time;
+ uint16_t swipe_initial_time;
+ uint16_t swipe_initial_distance;
+ uint16_t swipe_consecutive_time;
+ uint16_t swipe_consecutive_distance;
+ int8_t swipe_angle;
+ uint16_t scroll_initial_distance;
+ int8_t scroll_angle;
+ uint16_t zoom_initial_distance;
+ uint16_t zoom_consecutive_distance;
+} azoteq_iqs5xx_gesture_config_t;
+
+_Static_assert(sizeof(azoteq_iqs5xx_gesture_config_t) == 24, "azoteq_iqs5xx_gesture_config_t should be 24 bytes");
+
+typedef struct {
+ uint16_t x_resolution;
+ uint16_t y_resolution;
+} azoteq_iqs5xx_resolution_t;
+
+#define AZOTEQ_IQS5XX_COMBINE_H_L_BYTES(h, l) ((int16_t)(h << 8) | l)
+#define AZOTEQ_IQS5XX_SWAP_H_L_BYTES(b) ((uint16_t)((b & 0xff) << 8) | (b >> 8))
+
+#ifndef AZOTEQ_IQS5XX_REPORT_RATE
+# define AZOTEQ_IQS5XX_REPORT_RATE 10
+#endif
+#if !defined(POINTING_DEVICE_TASK_THROTTLE_MS) && !defined(POINTING_DEVICE_MOTION_PIN)
+# define POINTING_DEVICE_TASK_THROTTLE_MS AZOTEQ_IQS5XX_REPORT_RATE
+#endif
+
+void azoteq_iqs5xx_init(void);
+i2c_status_t azoteq_iqs5xx_wake(void);
+report_mouse_t azoteq_iqs5xx_get_report(report_mouse_t mouse_report);
+i2c_status_t azoteq_iqs5xx_get_report_rate(azoteq_iqs5xx_report_rate_t *report_rate, azoteq_iqs5xx_charging_modes_t mode, bool end_session);
+i2c_status_t azoteq_iqs5xx_set_report_rate(uint16_t report_rate_ms, azoteq_iqs5xx_charging_modes_t mode, bool end_session);
+i2c_status_t azoteq_iqs5xx_set_event_mode(bool enabled, bool end_session);
+i2c_status_t azoteq_iqs5xx_set_reati(bool enabled, bool end_session);
+i2c_status_t azoteq_iqs5xx_set_gesture_config(bool end_session);
+i2c_status_t azoteq_iqs5xx_set_xy_config(bool flip_x, bool flip_y, bool switch_xy, bool palm_reject, bool end_session);
+i2c_status_t azoteq_iqs5xx_reset_suspend(bool reset, bool suspend, bool end_session);
+i2c_status_t azoteq_iqs5xx_get_base_data(azoteq_iqs5xx_base_data_t *base_data);
+void azoteq_iqs5xx_set_cpi(uint16_t cpi);
+uint16_t azoteq_iqs5xx_get_cpi(void);
+uint16_t azoteq_iqs5xx_get_product(void);
+void azoteq_iqs5xx_setup_resolution(void);
diff --git a/drivers/sensors/pmw3320.c b/drivers/sensors/pmw3320.c
index a4648ef425..69a584f4e1 100644
--- a/drivers/sensors/pmw3320.c
+++ b/drivers/sensors/pmw3320.c
@@ -178,7 +178,7 @@ uint16_t pmw3320_get_cpi(void) {
}
void pmw3320_set_cpi(uint16_t cpi) {
- uint8_t cpival = constrain((cpi / PMW3320_CPI_STEP) - 1U, 0, (PMW3320_CPI_MAX / PMW3320_CPI_STEP) - 1U);
+ uint8_t cpival = constrain((cpi / PMW3320_CPI_STEP), (PMW3320_CPI_MIN / PMW3320_CPI_STEP), (PMW3320_CPI_MAX / PMW3320_CPI_STEP)) - 1U;
// Fifth bit is probably a control bit.
// PMW3320 datasheet don't have any info on this, so this is a pure guess.
pmw3320_write_reg(REG_Resolution, 0x20 | cpival);
diff --git a/drivers/sensors/pmw3360.c b/drivers/sensors/pmw3360.c
index 81dca002e2..a7dc687f50 100644
--- a/drivers/sensors/pmw3360.c
+++ b/drivers/sensors/pmw3360.c
@@ -23,7 +23,7 @@ void pmw33xx_set_cpi(uint8_t sensor, uint16_t cpi) {
return;
}
- uint8_t cpival = CONSTRAIN((cpi / PMW33XX_CPI_STEP) - 1, 0, (PMW33XX_CPI_MAX / PMW33XX_CPI_STEP) - 1U);
+ uint8_t cpival = CONSTRAIN((cpi / PMW33XX_CPI_STEP), (PMW33XX_CPI_MIN / PMW33XX_CPI_STEP), (PMW33XX_CPI_MAX / PMW33XX_CPI_STEP)) - 1U;
pmw33xx_write(sensor, REG_Config1, cpival);
}
diff --git a/drivers/sensors/pmw3389.c b/drivers/sensors/pmw3389.c
index c5781a5ffe..10e578edac 100644
--- a/drivers/sensors/pmw3389.c
+++ b/drivers/sensors/pmw3389.c
@@ -22,7 +22,7 @@ void pmw33xx_set_cpi(uint8_t sensor, uint16_t cpi) {
return;
}
- uint16_t cpival = CONSTRAIN((cpi / PMW33XX_CPI_STEP) - 1, 0, (PMW33XX_CPI_MAX / PMW33XX_CPI_STEP) - 1U);
+ uint16_t cpival = CONSTRAIN((cpi / PMW33XX_CPI_STEP), (PMW33XX_CPI_MIN / PMW33XX_CPI_STEP), (PMW33XX_CPI_MAX / PMW33XX_CPI_STEP)) - 1U;
// Sets upper byte first for more consistent setting of cpi
pmw33xx_write(sensor, REG_Resolution_H, (cpival >> 8) & 0xFF);
pmw33xx_write(sensor, REG_Resolution_L, cpival & 0xFF);
diff --git a/drivers/ws2812.h b/drivers/ws2812.h
index 8750b0110e..1527df23d3 100644
--- a/drivers/ws2812.h
+++ b/drivers/ws2812.h
@@ -73,4 +73,4 @@
* - Send out the LED data
* - Wait 50us to reset the LEDs
*/
-void ws2812_setleds(LED_TYPE *ledarray, uint16_t number_of_leds);
+void ws2812_setleds(rgb_led_t *ledarray, uint16_t number_of_leds);
diff --git a/keyboards/1k/keymaps/default/rgblite.h b/keyboards/1k/keymaps/default/rgblite.h
index e64f49ee0a..29d684ac08 100644
--- a/keyboards/1k/keymaps/default/rgblite.h
+++ b/keyboards/1k/keymaps/default/rgblite.h
@@ -7,7 +7,7 @@
#include "color.h"
static inline void rgblite_setrgb(RGB rgb) {
- LED_TYPE leds[RGBLED_NUM] = {{.r = rgb.r, .g = rgb.g, .b = rgb.b}};
+ rgb_led_t leds[RGBLED_NUM] = {{.r = rgb.r, .g = rgb.g, .b = rgb.b}};
ws2812_setleds(leds, RGBLED_NUM);
}
diff --git a/keyboards/1k/keymaps/media/rgblite.h b/keyboards/1k/keymaps/media/rgblite.h
index e64f49ee0a..29d684ac08 100644
--- a/keyboards/1k/keymaps/media/rgblite.h
+++ b/keyboards/1k/keymaps/media/rgblite.h
@@ -7,7 +7,7 @@
#include "color.h"
static inline void rgblite_setrgb(RGB rgb) {
- LED_TYPE leds[RGBLED_NUM] = {{.r = rgb.r, .g = rgb.g, .b = rgb.b}};
+ rgb_led_t leds[RGBLED_NUM] = {{.r = rgb.r, .g = rgb.g, .b = rgb.b}};
ws2812_setleds(leds, RGBLED_NUM);
}
diff --git a/keyboards/1upkeyboards/1up60hse/keymaps/vosechu/config.h b/keyboards/1upkeyboards/1up60hse/keymaps/vosechu/config.h
deleted file mode 100644
index 65293382cf..0000000000
--- a/keyboards/1upkeyboards/1up60hse/keymaps/vosechu/config.h
+++ /dev/null
@@ -1,19 +0,0 @@
-/* Copyright 2018 Chuck "@vosechu" Lauer Vose
- *
- * 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
-
-// place overrides here
diff --git a/keyboards/1upkeyboards/1up60hse/keymaps/vosechu/keymap.c b/keyboards/1upkeyboards/1up60hse/keymaps/vosechu/keymap.c
deleted file mode 100644
index eeca330838..0000000000
--- a/keyboards/1upkeyboards/1up60hse/keymaps/vosechu/keymap.c
+++ /dev/null
@@ -1,46 +0,0 @@
-/* Copyright 2018 Chuck "@vosechu" Lauer Vose
- *
- * 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
-
-#define SPACEFN LT(1, KC_SPC)
-#define CTL_GRV CTL_T(KC_GRV)
-#define ALT_TAB ALT_T(KC_TAB)
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [0] = LAYOUT_60_ansi(
- KC_ESC , KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , KC_MINS , KC_EQL , KC_BSPC ,
- KC_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_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_LSFT , KC_Z , KC_X , KC_C , KC_V , KC_B , KC_N , KC_M , KC_COMM , KC_DOT , KC_SLSH , KC_RSFT ,
- CTL_GRV , ALT_TAB , KC_LGUI , SPACEFN , KC_RALT , KC_RGUI , MO(1) , KC_RCTL
- ),
-
- [1] = LAYOUT_60_ansi(
- KC_GRV , KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_F5 , KC_F6 , KC_F7 , KC_F8 , KC_F9 , KC_F10 , KC_F11 , KC_F12 , KC_DEL ,
- KC_TRNS , KC_TRNS , KC_UP , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_PSCR , KC_SCRL , KC_PAUS , KC_TRNS ,
- KC_TRNS , KC_LEFT , KC_DOWN , KC_RGHT , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_INS , KC_HOME , KC_PGUP , KC_TRNS ,
- KC_TRNS , KC_VOLU , KC_VOLD , KC_MUTE , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_END , KC_PGDN , KC_TRNS ,
- KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , MO(2) , KC_TRNS , KC_TRNS
- ),
-
- [2] = LAYOUT_60_ansi(
- KC_TRNS , 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,
- BL_TOGG , BL_UP , BL_DOWN , BL_STEP , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS ,
- RGB_TOG , RGB_MOD , RGB_HUI , RGB_SAI , RGB_VAI , RGB_SPI , RGB_M_P , RGB_M_B , RGB_M_R , RGB_M_SW , KC_TRNS , KC_TRNS , KC_TRNS ,
- KC_TRNS , RGB_RMOD , RGB_HUD , RGB_SAD , RGB_VAD , RGB_SPD , RGB_M_SN , RGB_M_K , RGB_M_X , RGB_M_G , KC_TRNS , KC_TRNS ,
- KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS
- )
-};
diff --git a/keyboards/1upkeyboards/1up60hse/keymaps/vosechu/readme.md b/keyboards/1upkeyboards/1up60hse/keymaps/vosechu/readme.md
deleted file mode 100644
index 97e9453b7c..0000000000
--- a/keyboards/1upkeyboards/1up60hse/keymaps/vosechu/readme.md
+++ /dev/null
@@ -1,6 +0,0 @@
-# 1up60hse keymap made by vosechu
-
-Tweaks from default
-
-* Add in SpaceFN so arrows are reachable with just left hand (leaving right free for mousing).
-* Also add tab/grv under the alt/ctrl keys to make those easier to reach.
diff --git a/keyboards/1upkeyboards/1up60hte/keymaps/badger/keymap.c b/keyboards/1upkeyboards/1up60hte/keymaps/badger/keymap.c
deleted file mode 100644
index 197c449122..0000000000
--- a/keyboards/1upkeyboards/1up60hte/keymaps/badger/keymap.c
+++ /dev/null
@@ -1,59 +0,0 @@
-/*
-Copyright 2020 Dan White <opensource@bluetufa.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 "badger.h"
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [_QWERTY_MAC] = LAYOUT_tsangan(
- 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_DEL,
- 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,
- MOVE_MAC, 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, CFG_MAC,
- KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, ADJUST, KC_RALT, KC_RGUI),
-
- [_MOVE_MAC] = LAYOUT_tsangan(
- MAC_FRC, MM_LEFT, MM_RGHT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_0, IJ_TOP, IJ_BOTT, _______, _______,
- KC_BACK, IJ_STEP, IJ_INTO, IJ_OUT, IJ_RUN, IJ_STOP, _______, WD_BACK, KC_HOME, KC_END, WD_FRWD, IJ_BACK, IJ_FWD, KC_NEXT,
- _______, MM_LH, MM_MAX, MM_RH, IJ_FIND, IJ_IMPS, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, CM_RIGHT, CM_DOWN, _______,
- _______, MM_UH, MM_BH, MAC_CPY, MAC_PST, IJ_IMPH, _______, IJ_REN, IJ_IMPL, IJ_DECL, IJ_USAG, _______, _______,
- _______, _______, _______, _______, _______, _______, _______),
-
- [_QWERTY_LINUX] = LAYOUT_tsangan(
- 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_DEL,
- 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,
- MOVE, 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, CFG_LNX,
- KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, ADJUST, KC_RALT, KC_RGUI),
-
- [_MOVE_LINUX] = LAYOUT_tsangan(
- KC_GRV, VD_1, VD_2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______,
- KC_BACK, WM_VD1, WM_UH, WM_VD2, QK_BOOT, KC_MSTP, KC_MPLY, KC_PGUP, KC_HOME, KC_END, KC_PGDN, _______, _______, KC_NEXT,
- _______, WM_LH, WM_MAX, WM_RH, WD_FRWD, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, CS_RIGHT, CS_DOWN, _______,
- _______, WM_VD3, WM_BH, OS_COPY, OS_PAST, WD_BACK, KC_MNXT, KC_MUTE, KC_WBAK, KC_WFWD, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______),
-
- [_ADJUST] = LAYOUT_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_WREF, KC_MSTP, KC_MPLY, KC_PGUP, _______, _______, KC_PGDN, KC_VOLD, KC_VOLU, KC_INS,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, KC_CAPS, _______, KC_MPRV, KC_MNXT, KC_MUTE, KC_WBAK, KC_WFWD, KC_WSCH, _______, _______,
- _______, _______, _______, _______, _______, _______, _______),
-
- [_CONFIG] = LAYOUT_tsangan(
- _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______,
- _______, NK_ON, NK_OFF, EE_CLR, QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, KC_INS,
- _______, GE_SWAP, GE_NORM, DB_TOGG, RGB_MOD, RGB_HUI, RGB_SAI, RGB_SPI, RGB_M_B, _______, _______, RGB_TOG, _______,
- _______, DF_1, DF_2, _______, RGB_RMOD, RGB_HUD, RGB_SAD, RGB_SPD, RGB_M_K, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______)
-};
diff --git a/keyboards/1upkeyboards/1up60rgb/keymaps/badger/keymap.c b/keyboards/1upkeyboards/1up60rgb/keymaps/badger/keymap.c
deleted file mode 100644
index 214316cd65..0000000000
--- a/keyboards/1upkeyboards/1up60rgb/keymaps/badger/keymap.c
+++ /dev/null
@@ -1,59 +0,0 @@
-/*
-Copyright 2020 Dan White <opensource@bluetufa.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 "badger.h"
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [_QWERTY_MAC] = LAYOUT_60_ansi_tsangan_split_rshift(
- 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_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,
- MOVE_MAC, 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, CFG_MAC,
- KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, ADJUST, KC_RALT, KC_RGUI),
-
- [_MOVE_MAC] = LAYOUT_60_ansi_tsangan_split_rshift(
- MAC_FRC, MM_LEFT, MM_RGHT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_0, IJ_TOP, IJ_BOTT, KC_DEL,
- KC_BACK, IJ_STEP, IJ_INTO, IJ_OUT, IJ_RUN, IJ_STOP, _______, WD_BACK, KC_HOME, KC_END, WD_FRWD, IJ_BACK, IJ_FWD, KC_NEXT,
- _______, MM_LH, MM_MAX, MM_RH, IJ_FIND, IJ_IMPS, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, CM_RIGHT, CM_DOWN, _______,
- _______, MM_UH, MM_BH, MAC_CPY, MAC_PST, IJ_IMPH, _______, IJ_REN, IJ_IMPL, IJ_DECL, IJ_USAG, _______, _______,
- _______, _______, _______, _______, _______, _______, _______),
-
- [_QWERTY_LINUX] = LAYOUT_60_ansi_tsangan_split_rshift(
- 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_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,
- MOVE, 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, CFG_LNX,
- KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, ADJUST, KC_LALT, KC_RGUI),
-
- [_MOVE_LINUX] = LAYOUT_60_ansi_tsangan_split_rshift(
- KC_GRV, VD_1, VD_2, VD_3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL,
- KC_BACK, WM_VD1, WM_UH, WM_VD2, QK_BOOT, KC_MSTP, KC_MPLY, KC_PGUP, KC_HOME, KC_END, KC_PGDN, _______, _______, KC_NEXT,
- _______, WM_LH, WM_MAX, WM_RH, WD_FRWD, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, CS_RIGHT, CS_DOWN, _______,
- _______, WM_VD3, WM_BH, OS_COPY, OS_PAST, WD_BACK, KC_MNXT, KC_MUTE, KC_WBAK, KC_WFWD, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______),
-
- [_ADJUST] = LAYOUT_60_ansi_tsangan_split_rshift(
- KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL,
- _______, _______, _______, _______, KC_WREF, KC_MSTP, KC_MPLY, KC_PGUP, _______, _______, KC_PGDN, KC_VOLD, KC_VOLU, KC_INS,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, DF_1, DF_2, KC_CAPS, _______, KC_MPRV, KC_MNXT, KC_MUTE, KC_WBAK, KC_WFWD, KC_WSCH, _______, _______,
- _______, _______, _______, _______, _______, _______, _______),
-
- [_CONFIG] = LAYOUT_60_ansi_tsangan_split_rshift(
- _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL,
- _______, NK_ON, NK_OFF, EE_CLR, QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, KC_INS,
- _______, GE_SWAP, GE_NORM, DB_TOGG, RGB_MOD, RGB_HUI, RGB_SAI, RGB_SPI, RGB_M_B, _______, _______, RGB_TOG, _______,
- _______, LAG_SWP, LAG_NRM, _______, RGB_RMOD, RGB_HUD, RGB_SAD, RGB_SPD, RGB_M_K, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______)
-};
-
diff --git a/keyboards/1upkeyboards/1upocarina/info.json b/keyboards/1upkeyboards/1upocarina/info.json
index fccf9d8899..c6a3718082 100644
--- a/keyboards/1upkeyboards/1upocarina/info.json
+++ b/keyboards/1upkeyboards/1upocarina/info.json
@@ -37,6 +37,7 @@
]
},
"ws2812": {
+ "driver": "vendor",
"pin": "GP24"
},
"rgb_matrix": {
diff --git a/keyboards/1upkeyboards/1upocarina/rules.mk b/keyboards/1upkeyboards/1upocarina/rules.mk
index 8e853e0af7..6e7633bfe0 100644
--- a/keyboards/1upkeyboards/1upocarina/rules.mk
+++ b/keyboards/1upkeyboards/1upocarina/rules.mk
@@ -1 +1 @@
-WS2812_DRIVER = vendor \ No newline at end of file
+# This file intentionally left blank
diff --git a/keyboards/1upkeyboards/1upslider8/rules.mk b/keyboards/1upkeyboards/1upslider8/rules.mk
index 8515c3fae0..cc58820278 100644
--- a/keyboards/1upkeyboards/1upslider8/rules.mk
+++ b/keyboards/1upkeyboards/1upslider8/rules.mk
@@ -1 +1 @@
-SRC += analog.c
+ANALOG_DRIVER_REQUIRED = yes
diff --git a/keyboards/1upkeyboards/pi40/mit_v1_0/keymaps/miketronic/config.h b/keyboards/1upkeyboards/pi40/mit_v1_0/keymaps/miketronic/config.h
deleted file mode 100644
index 834b7ee0ab..0000000000
--- a/keyboards/1upkeyboards/pi40/mit_v1_0/keymaps/miketronic/config.h
+++ /dev/null
@@ -1,13 +0,0 @@
-// Copyright 2023 @miketronic -- Mike B <mxb540@gmail.com>
-// SPDX-License-Identifier: GPL-2.0+
-
-#pragma once
-
-# define TAPPING_TERM 160
-# define TAPPING_TERM_PER_KEY
-# define HOLD_ON_OTHER_KEY_PRESS
-# define QUICK_TAP_TERM TAPPING_TERM / 2
-# define QUICK_TAP_TERM_PER_KEY
-
-
-
diff --git a/keyboards/1upkeyboards/pi40/mit_v1_0/keymaps/miketronic/keymap.c b/keyboards/1upkeyboards/pi40/mit_v1_0/keymaps/miketronic/keymap.c
deleted file mode 100644
index 636aad675b..0000000000
--- a/keyboards/1upkeyboards/pi40/mit_v1_0/keymaps/miketronic/keymap.c
+++ /dev/null
@@ -1,290 +0,0 @@
-// Copyright 2023 @miketronic -- Mike B <mxb540@gmail.com>
-// SPDX-License-Identifier: GPL-2.0+
-
-#include "miketronic.h"
-
-
-
-
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
- /* Workman
- * ┌─────┬─────┬─────┬─────┬─────┬─────┐ ┌─────┬─────┬─────┬─────┬─────┬─────┐
- * │ TAB │ Q │ D │ R │ W │ B │ │ J │ F │ U │ P │ BSPC│ BSPC│
- * │ ESC │ ESC │ │ │ │ SYM │ │ SYM │ │ │ │ │ │
- * ├─────┼─────┼─────┼─────╆━━━━━╅─────┤ ├─────╆━━━━━╅─────┼─────┼─────┼─────┤
- * │ TAB │ A │ S │ H ┃ T ┃ G │ │ Y ┃ N ┃ E │ O │ I │ │
- * │SHIFT│ │ │ ┃ EX ┃ │ │ ┃ ┃ │ │ENTER│ENTER│
- * ├─────┼─────┼─────┼─────╄━━━━━╃─────┤ ├─────╄━━━━━╃─────┼─────┼─────┼─────┤
- * │SHIFT| Z │ X │ M │ C │ V │ │ K │ L │ SPC │ SPC │ / │ UP |
- * │ │ │ │ │ │ │ │ │ │ , │ . │ │RIGHT|
- * ├─────┼─────┼─────┼─────┼─────┼─────┤ ├─────┼─────┼─────┼─────┼─────┼─────┤
- * │ FN │CTRL │ OS │ ALT │LOWER│ │ │ │RAISE│ SS │CLIP │COPY │ DN │
- * │ │ │ │ │ │ │ │ │ │ │ │PASTE│LEFT │
- * └─────┴─────┴─────┴─────┴─────┴─────┘ └─────┴─────┴─────┴─────┴─────┴─────┘
- */
-
- [_WM] = LAYOUT_ortho_4x12_wrapper (
- RGB_TOG,
- _____________WORKMAN_412_001_L_____________, _____________WORKMAN_412_001_R_____________,
- _____________WORKMAN_412_002_L_____________, _____________WORKMAN_412_002_R_____________,
- _____________WORKMAN_412_003_L_____________, _____________WORKMAN_412_003_R_____________,
- _____________WORKMAN_412_004_L_____________, _____________WORKMAN_412_004_R_____________
- ),
-
- [_QW] = LAYOUT_ortho_4x12_wrapper (
- RGB_TOG,
- KC_TAB, _________________QWERTY_L1_________________, _________________QWERTY_R1_________________, KC_BSPC,
- KC_ESC, _________________QWERTY_L2_________________, _________________QWERTY_R2_________________, KC_QUOT,
- KC_LSFT, _________________QWERTY_L3_________________, _________________QWERTY_R3_________________, KC_ENT,
- _____________WORKMAN_412_004_L_____________, _____________WORKMAN_412_004_R_____________
- ),
-
-
-
-
- /* Lower
- * ┌─────┬─────┬─────┬─────┬─────┬─────┐ ┌─────┬─────┬─────┬─────┬─────┬─────┐
- * │ │ () │ [] │ /\ │ │ │ │ │ 7 │ 8 │ 9 │ │ │
- * │ │ │ │ │ │ │ │ │ │ │ │ │ │
- * ├─────┼─────┼─────┼─────╆━━━━━╅─────┤ ├─────╆━━━━━╅─────┼─────┼─────┼─────┤
- * │ │ @ # │ & % │ ┃ ┃ │ │ ┃ 4 ┃ 5 │ 6 │ │ │
- * │ │ │ │ ┃ ┃ │ │ ┃ ┃ │ │ │ │
- * ├─────┼─────┼─────┼─────╄━━━━━╃─────┤ ├─────╄━━━━━╃─────┼─────┼─────┼─────┤
- * │ │ │ │ │ │ │ │ 0 │ 1 │ 2 │ 3 │ │ UP │
- * │ │ │ │ │ │ │ │ │ │ 0 │ │ │RIGHT│
- * ├─────┼─────┼─────┼─────┼─────┼─────┤ ├─────┼─────┼─────┼─────┼─────┼─────┤
- * │ │ │ │ │LOWER│ │ │ │BPSC │ SPC │ . │ │ DN │
- * │ │ │ │ │ │ │ │ │ │ │ ENT │ │LEFT │
- * └─────┴─────┴─────┴─────┴─────┴─────┘ └─────┴─────┴─────┴─────┴─────┴─────┘
- */
- [_LOWER] = LAYOUT_ortho_4x12_wrapper (
- KC_MUTE,
- _______________LOWER_412_L1________________, _______________LOWER_412_R1________________,
- _______________LOWER_412_L2________________, _______________LOWER_412_R2________________,
- _______________LOWER_412_L3________________, _______________LOWER_412_R3________________,
- _______________LOWER_412_L4________________, _______________LOWER_412_R4________________
- ),
-
-
- /* RAISE
- * ┌─────┬─────┬─────┬─────┬─────┬─────┐ ┌─────┬─────┬─────┬─────┬─────┬─────┐
- * │BOOT │DEBUG│ │ │ │MAKE │ │ │ │ F7 │ F8 │ F9 │ F10 │
- * │ │ │ │ │ │ │ │ │ │ │ │ │ │
- * ├─────┼─────┼─────┼─────╆━━━━━╅─────┤ ├─────╆━━━━━╅─────┼─────┼─────┼─────┤
- * │ │ RGB | RGB | RGB ┃ RGB ┃ WM │ │ ┃ / \ ┃ F4 │ F5 │ F6 │ F11 │
- * │ │ TOG │ MOD │ HUI ┃ HUD ┃ │ │ ┃ ┃ │ │ │ │
- * ├─────┼─────┼─────┼─────╄━━━━━╃─────┤ ├─────╄━━━━━╃─────┼─────┼─────┼─────┤
- * │ │ RGB │ RGB │ RGB │ RGB │ QW │ │ │ _ │ F1 | F2 | F3 │ F12 │
- * │ │ SAI │ SAD │ VAI │ VAD │ │ │ │ - │ │ │ │ │
- * ├─────┼─────┼─────┼─────┼─────┼─────┤ ├─────┼─────┼─────┼─────┼─────┼─────┤
- * │ │ │ │ │ │ │ │ │RAISE│ │ │ │ │
- * │ │ │ │ │ │ │ │ │ │ │ │ │ │
- * └─────┴─────┴─────┴─────┴─────┴─────┘ └─────┴─────┴─────┴─────┴─────┴─────┘
- */
- [_RAISE] = LAYOUT_ortho_4x12_wrapper (
- KC_MUTE,
- _______________RAISE_412_L1________________, _______________RAISE_412_R1________________,
- _______________RAISE_412_L2________________, _______________RAISE_412_R2________________,
- _______________RAISE_412_L3________________, _______________RAISE_412_R3________________,
- _________________BLANK_6___________________, _________________BLANK_6___________________
- ),
-
-
- /* EXTRAS
- * ┌─────┬─────┬─────┬─────┬─────┬─────┐ ┌─────┬─────┬─────┬─────┬─────┬─────┐
- * │ │ ! │ │ │ │ │ │ │ /\ | [ | ] | ; │ │
- * │ │ │ │ │ │ │ │ │ │ │ │ │ │
- * ├─────┼─────┼─────┼─────╆━━━━━╅─────┤ ├─────╆━━━━━╅─────┼─────┼─────┼─────┤
- * │SHIFT│ | |EXTRA┃ ┃ │ │ ┃ @ # ┃ & % | | ' | │
- * │ │ │ │ ┃ ┃ │ │ ┃ ┃ │ │ │ │
- * ├─────┼─────┼─────┼─────╄━━━━━╃─────┤ ├─────╄━━━━━╃─────┼─────┼─────┼─────┤
- * │ │ │ │ │ │ │ │ │ │ , | . | ? │ │
- * │ │ │ │ │ │ │ │ │ │ │ │ │ │
- * ├─────┼─────┼─────┼─────┼─────┼─────┤ ├─────┼─────┼─────┼─────┼─────┼─────┤
- * │ │ │ │ │ │ │ │ │ │ │ │ │ │
- * │ │ │ │ │ │ │ │ │ │ │ │ │ │
- * └─────┴─────┴─────┴─────┴─────┴─────┘ └─────┴─────┴─────┴─────┴─────┴─────┘
- */
- [_EX] = LAYOUT_ortho_4x12_wrapper (
- KC_MUTE,
- ______________EXTRAS_412_L1________________, ______________EXTRAS_412_R1________________,
- ______________EXTRAS_412_L2________________, ______________EXTRAS_412_R2________________,
- ______________EXTRAS_412_L3________________, ______________EXTRAS_412_R3________________,
- ______________EXTRAS_412_L4________________, ______________EXTRAS_412_R4________________
- ),
-
-
-
- /* FUNCTION
- * ┌─────┬─────┬─────┬─────┬─────┬─────┐ ┌─────┬─────┬─────┬─────┬─────┬─────┐
- * │COPY │CLIP │ SS │ │ │ │ │ │ /\ │ UP │ │ │ DEL │
- * │PASTE│ │ │ │ │ │ │ │ │ │ │ │ │
- * ├─────┼─────┼─────┼─────╆━━━━━╅─────┤ ├─────╆━━━━━╅─────┼─────┼─────┼─────┤
- * │TAB │ M05 | M06 | M07 ┃ M08 ┃ │ │ ┃LEFT ┃DOWN │RIGHT│ │UP │
- * │SHIFT│ │ │ ┃ ┃ │ │ ┃ ┃ │ │ │RIGHT│
- * ├─────┼─────┼─────┼─────╄━━━━━╃─────┤ ├─────╄━━━━━╃─────┼─────┼─────┼─────┤
- * │ │ M01 │ M02 │ M03 │ M04 │ │ │ │ │ , | . | ? │DOWN │
- * │ │ │ │ │ │ │ │ │ │ │ │ │LEFT │
- * ├─────┼─────┼─────┼─────┼─────┼─────┤ ├─────┼─────┼─────┼─────┼─────┼─────┤
- * │ │RGB1 │RGB2 │RGB3 │RGB4 │ │ │ │ │ │ │ │ │
- * │ │ │ │ │ │ │ │ │ │ │ │ │ │
- * └─────┴─────┴─────┴─────┴─────┴─────┘ └─────┴─────┴─────┴─────┴─────┴─────┘
- */
- [_FN] = LAYOUT_ortho_4x12_wrapper (
- KC_MUTE,
- _____________FUNCTION_412_L1_______________, _____________FUNCTION_412_R1_______________,
- _____________FUNCTION_412_L2_______________, _____________FUNCTION_412_R2_______________,
- _____________FUNCTION_412_L3_______________, _____________FUNCTION_412_R3_______________,
- _____________FUNCTION_412_L4_______________, _____________FUNCTION_412_R4_______________
- ),
-
-
- /* SYMBOLS
- * ┌─────┬─────┬─────┬─────┬─────┬─────┐ ┌─────┬─────┬─────┬─────┬─────┬─────┐
- * │ | $ | ^ | < | > │ SYMB│ │ SYMB│ | | [ | ] | - | |
- * │ │ │ │ │ │ │ │ │ │ │ │ │ │
- * ├─────┼─────┼─────┼─────╆━━━━━╅─────┤ ├─────╆━━━━━╅─────┼─────┼─────┼─────┤
- * │ | % | : | ; ┃ + ┃ = │ │ ┃ ┃ ( | ) | _ | |
- * │ │ │ │ ┃ ┃ │ │ ┃ ┃ │ │ │ │
- * ├─────┼─────┼─────┼─────╄━━━━━╃─────┤ ├─────╄━━━━━╃─────┼─────┼─────┼─────┤
- * | | & | ' | " | * | # │ │ ! | ? | / | \ | @ | |
- * │ │ │ │ │ │ │ │ │ │ │ │ │ │
- * ├─────┼─────┼─────┼─────┼─────┼─────┤ ├─────┼─────┼─────┼─────┼─────┼─────┤
- * │ │ │ │ │ │ │ │ │ │ │ │ │ │
- * │ │ │ │ │ │ │ │ │ │ │ │ │ │
- * └─────┴─────┴─────┴─────┴─────┴─────┘ └─────┴─────┴─────┴─────┴─────┴─────┘
- */
-
- [_SYMB] = LAYOUT_ortho_4x12_wrapper (
- KC_MUTE,
- _______, _____________SYMBOLS_310_L1________________, _____________SYMBOLS_310_R1________________, _______,
- _______, _____________SYMBOLS_310_L2________________, _____________SYMBOLS_310_R2________________, _______,
- _______, _____________SYMBOLS_310_L3________________, _____________SYMBOLS_310_R3________________, _______,
- _________________BLANK_6___________________, _________________BLANK_6___________________
- )
-
-};
-
-#ifndef NUM_DIRECTIONS
-# define NUM_DIRECTIONS 2
-#endif
-
-#if defined(ENCODER_MAP_ENABLE) && defined(KEYBOARD_1upkeyboards_pi40_mit_v1_0)
-const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = {
- [_WM] = { ENCODER_CCW_CW(LCTL(KC_V), LCTL(KC_C)) },
- [_QW] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) },
- [_LOWER] = { ENCODER_CCW_CW(____, ____) },
- [_RAISE] = { ENCODER_CCW_CW(____, ____) },
- [_EX] = { ENCODER_CCW_CW(____, ____) },
- [_FN] = { ENCODER_CCW_CW(RGB_MOD, RGB_RMOD) },
- [_SYMB] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }
-};
-#endif
-
-
-#ifdef OLED_ENABLE
-bool oled_task_user(void) {
- // Host Keyboard Layer Status
- oled_write_P(PSTR("Layer: "), false);
-
- switch (get_highest_layer(layer_state)) {
- case _LOWER:
- oled_write_P(PSTR("LOWER"), false);
- break;
- case _RAISE:
- oled_write_P(PSTR("RAISE"), false);
- break;
- case _EX:
- oled_write_P(PSTR("EXTRA"), false);
- break;
- case _FN:
- oled_write_P(PSTR("FUNCTION"), false);
- break;
- case _WM:
- oled_write_P(PSTR("WORKMAN"), false);
- break;
- case _SYMB:
- oled_write_P(PSTR("SYMBOLS"), false);
- break;
- default:
- // Or use the write_ln shortcut over adding '\n' to the end of your string
- oled_write_ln_P(PSTR("HOME"), false);
- }
-
-// Host Keyboard LED Status
- // led_t led_state = host_keyboard_led_state();
- // oled_write_P(led_state.num_lock ? PSTR("NUM ") : PSTR(" "), false);
- // oled_write_P(led_state.caps_lock ? PSTR("CAP ") : PSTR(" "), false);
- // oled_write_P(led_state.scroll_lock ? PSTR("SCR ") : PSTR(" "), false);
-
- return false;
-}
-#endif
-
-
-bool get_hold_on_other_key_press(uint16_t keycode, keyrecord_t *record) {
- switch (keycode) {
- case SFT_T(KC_A):
- // Do not force the mod-tap key press to be handled as a modifier
- // if any other key was pressed while the mod-tap key is held down.
- return false;
- case TEX:
- return false;
- case CTRLX:
- return false;
- case FNZ:
- return false;
- case MGUI:
- return false;
- case VLOWER:
- return false;
- case KRAISE:
- return false;
- default:
- // Force the dual-role key press to be handled as a modifier if any
- // other key was pressed while the mod-tap key is held down.
- return true;
- }
-}
-
-#ifdef AUDIO_ENABLE
-float leader_start_song[][2] = SONG(ONE_UP_SOUND);
-float leader_succeed_song[][2] = SONG(ALL_STAR);
-float leader_fail_song[][2] = SONG(RICK_ROLL);
-#endif
-
-void matrix_scan_user(void);
-
-void leader_start_user(void) {
-#ifdef AUDIO_ENABLE
- PLAY_SONG(leader_start_song);
-#endif
-}
-
-bool did_leader_succeed;
-
-void leader_end_user(void) {
- did_leader_succeed = false;
-
- if (leader_sequence_one_key(KC_E)) {
- SEND_STRING(SS_LCTL(SS_LSFT("t")));
- did_leader_succeed = true;
- } else if (leader_sequence_two_keys(KC_E, KC_D)) {
- SEND_STRING(SS_LGUI("r") "cmd\n" SS_LCTL("c"));
- did_leader_succeed = true;
- } else if (leader_sequence_two_keys(KC_A, KC_T)) {
- SEND_STRING("@guidehouse.com");
- did_leader_succeed = true;
- }
-
-
-#ifdef AUDIO_ENABLE
- if (did_leader_succeed) {
- PLAY_SONG(leader_succeed_song);
- } else {
- PLAY_SONG(leader_fail_song);
- }
-#endif
-} \ No newline at end of file
diff --git a/keyboards/1upkeyboards/pi40/mit_v1_0/keymaps/miketronic/rules.mk b/keyboards/1upkeyboards/pi40/mit_v1_0/keymaps/miketronic/rules.mk
deleted file mode 100644
index b446776377..0000000000
--- a/keyboards/1upkeyboards/pi40/mit_v1_0/keymaps/miketronic/rules.mk
+++ /dev/null
@@ -1,22 +0,0 @@
-# Common feature for all keyboards
-BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite
-EXTRAKEY_ENABLE = yes # Audio control and System control
-TAP_DANCE_ENABLE = yes # Tap Dance keys
-NKRO_ENABLE = yes # Enable N-Key Rollover
-MACROS_ENABLED = yes
-
-
-# Keyboard specific
-AUTO_SHIFT_ENABLE = no
-CONSOLE_ENABLE = no # Console for debug
-COMMAND_ENABLE = no # Commands for debug and configuration
-BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
-RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
-AUDIO_ENABLE = no # Audio output
-MOUSEKEY_ENABLE = no # Mouse keys
-
-LEADER_ENABLE = yes
-RGB_MATRIX_ENABLE = yes
-ENCODER_ENABLE = yes
-ENCODER_MAP_ENABLE = yes
-OLED_ENABLE = yes
diff --git a/keyboards/1upkeyboards/pi60/config.h b/keyboards/1upkeyboards/pi60/config.h
index 8940acb004..6bbbb2293c 100644
--- a/keyboards/1upkeyboards/pi60/config.h
+++ b/keyboards/1upkeyboards/pi60/config.h
@@ -3,8 +3,6 @@
#pragma once
-#define DYNAMIC_KEYMAP_LAYER_COUNT 10
-
#define RGB_MATRIX_LED_COUNT 21
//#define RGB_MATRIX_FRAMEBUFFER_EFFECTS
//#define RGB_MATRIX_KEYPRESSES
diff --git a/keyboards/1upkeyboards/pi60/info.json b/keyboards/1upkeyboards/pi60/info.json
index 1f8bdb4592..4d0d21ea25 100644
--- a/keyboards/1upkeyboards/pi60/info.json
+++ b/keyboards/1upkeyboards/pi60/info.json
@@ -11,6 +11,9 @@
"vid": "0x6F75"
},
"diode_direction": "COL2ROW",
+ "dynamic_keymap": {
+ "layer_count": 10
+ },
"features": {
"audio": false,
"backlight": false,
@@ -66,8 +69,19 @@
{"flags": 2, "x": 20, "y": 13}
]
},
+ "community_layouts": [
+ "60_ansi",
+ "60_ansi_split_bs_rshift",
+ "60_ansi_tsangan",
+ "60_tsangan_hhkb",
+ "60_hhkb",
+ "60_ansi_arrow",
+ "60_iso",
+ "60_iso_split_bs_rshift",
+ "60_iso_tsangan"
+ ],
"layouts": {
- "LAYOUT_60_ansi": {
+ "LAYOUT_all": {
"layout": [
{"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0},
{"label": "1", "matrix": [0, 1], "x": 1, "y": 0},
@@ -138,6 +152,777 @@
{"label": "Menu", "matrix": [4, 13], "x": 13, "y": 4},
{"label": "RCtrl", "matrix": [4, 14], "x": 14, "y": 4}
]
+ },
+ "LAYOUT_60_ansi": {
+ "layout": [
+ {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0},
+ {"label": "1", "matrix": [0, 1], "x": 1, "y": 0},
+ {"label": "2", "matrix": [0, 2], "x": 2, "y": 0},
+ {"label": "3", "matrix": [0, 3], "x": 3, "y": 0},
+ {"label": "4", "matrix": [0, 4], "x": 4, "y": 0},
+ {"label": "5", "matrix": [0, 5], "x": 5, "y": 0},
+ {"label": "6", "matrix": [0, 6], "x": 6, "y": 0},
+ {"label": "7", "matrix": [0, 7], "x": 7, "y": 0},
+ {"label": "8", "matrix": [0, 8], "x": 8, "y": 0},
+ {"label": "9", "matrix": [0, 9], "x": 9, "y": 0},
+ {"label": "0", "matrix": [0, 10], "x": 10, "y": 0},
+ {"label": "-", "matrix": [0, 11], "x": 11, "y": 0},
+ {"label": "=", "matrix": [0, 12], "x": 12, "y": 0},
+ {"label": "Backspace", "matrix": [0, 13], "x": 13, "y": 0, "w": 2},
+
+ {"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
+ {"label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1},
+ {"label": "W", "matrix": [1, 2], "x": 2.5, "y": 1},
+ {"label": "E", "matrix": [1, 3], "x": 3.5, "y": 1},
+ {"label": "R", "matrix": [1, 4], "x": 4.5, "y": 1},
+ {"label": "T", "matrix": [1, 5], "x": 5.5, "y": 1},
+ {"label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1},
+ {"label": "U", "matrix": [1, 7], "x": 7.5, "y": 1},
+ {"label": "I", "matrix": [1, 8], "x": 8.5, "y": 1},
+ {"label": "O", "matrix": [1, 9], "x": 9.5, "y": 1},
+ {"label": "P", "matrix": [1, 10], "x": 10.5, "y": 1},
+ {"label": "[", "matrix": [1, 11], "x": 11.5, "y": 1},
+ {"label": "]", "matrix": [1, 12], "x": 12.5, "y": 1},
+ {"label": "|", "matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5},
+
+ {"label": "Caps", "matrix": [2, 15], "x": 0, "y": 2, "w": 1.75},
+ {"label": "A", "matrix": [2, 1], "x": 1.75, "y": 2},
+ {"label": "S", "matrix": [2, 2], "x": 2.75, "y": 2},
+ {"label": "D", "matrix": [2, 3], "x": 3.75, "y": 2},
+ {"label": "F", "matrix": [2, 4], "x": 4.75, "y": 2},
+ {"label": "G", "matrix": [2, 5], "x": 5.75, "y": 2},
+ {"label": "H", "matrix": [2, 6], "x": 6.75, "y": 2},
+ {"label": "J", "matrix": [2, 7], "x": 7.75, "y": 2},
+ {"label": "K", "matrix": [2, 8], "x": 8.75, "y": 2},
+ {"label": "L", "matrix": [2, 9], "x": 9.75, "y": 2},
+ {"label": ";", "matrix": [2, 10], "x": 10.75, "y": 2},
+ {"label": "'", "matrix": [2, 11], "x": 11.75, "y": 2},
+ {"label": "Enter", "matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25},
+
+ {"label": "LShift", "matrix": [3, 15], "x": 0, "y": 3, "w": 2.25},
+ {"label": "Z", "matrix": [3, 2], "x": 2.25, "y": 3},
+ {"label": "X", "matrix": [3, 3], "x": 3.25, "y": 3},
+ {"label": "C", "matrix": [3, 4], "x": 4.25, "y": 3},
+ {"label": "V", "matrix": [3, 5], "x": 5.25, "y": 3},
+ {"label": "B", "matrix": [3, 6], "x": 6.25, "y": 3},
+ {"label": "N", "matrix": [3, 7], "x": 7.25, "y": 3},
+ {"label": "M", "matrix": [3, 8], "x": 8.25, "y": 3},
+ {"label": ",", "matrix": [3, 9], "x": 9.25, "y": 3},
+ {"label": ".", "matrix": [3, 10], "x": 10.25, "y": 3},
+ {"label": "/", "matrix": [3, 11], "x": 11.25, "y": 3},
+ {"label": "RShift", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 2.75},
+
+ {"label": "LCtrl", "matrix": [4, 15], "x": 0, "y": 4, "w": 1.25},
+ {"label": "LGui", "matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25},
+ {"label": "LAlt", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25},
+ {"label": "Space", "matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25},
+ {"label": "RAlt", "matrix": [4, 10], "x": 10, "y": 4, "w": 1.25},
+ {"label": "FN", "matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25},
+ {"label": "Menu", "matrix": [4, 13], "x": 12.5, "y": 4, "w": 1.25},
+ {"label": "RCtrl", "matrix": [4, 14], "x": 13.75, "y": 4, "w": 1.25}
+ ]
+ },
+ "LAYOUT_60_ansi_split_bs_rshift": {
+ "layout": [
+ {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0},
+ {"label": "1", "matrix": [0, 1], "x": 1, "y": 0},
+ {"label": "2", "matrix": [0, 2], "x": 2, "y": 0},
+ {"label": "3", "matrix": [0, 3], "x": 3, "y": 0},
+ {"label": "4", "matrix": [0, 4], "x": 4, "y": 0},
+ {"label": "5", "matrix": [0, 5], "x": 5, "y": 0},
+ {"label": "6", "matrix": [0, 6], "x": 6, "y": 0},
+ {"label": "7", "matrix": [0, 7], "x": 7, "y": 0},
+ {"label": "8", "matrix": [0, 8], "x": 8, "y": 0},
+ {"label": "9", "matrix": [0, 9], "x": 9, "y": 0},
+ {"label": "0", "matrix": [0, 10], "x": 10, "y": 0},
+ {"label": "-", "matrix": [0, 11], "x": 11, "y": 0},
+ {"label": "=", "matrix": [0, 12], "x": 12, "y": 0},
+ {"label": "BS", "matrix": [0, 13], "x": 13, "y": 0},
+ {"label": "~", "matrix": [0, 14], "x": 14, "y": 0},
+
+ {"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
+ {"label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1},
+ {"label": "W", "matrix": [1, 2], "x": 2.5, "y": 1},
+ {"label": "E", "matrix": [1, 3], "x": 3.5, "y": 1},
+ {"label": "R", "matrix": [1, 4], "x": 4.5, "y": 1},
+ {"label": "T", "matrix": [1, 5], "x": 5.5, "y": 1},
+ {"label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1},
+ {"label": "U", "matrix": [1, 7], "x": 7.5, "y": 1},
+ {"label": "I", "matrix": [1, 8], "x": 8.5, "y": 1},
+ {"label": "O", "matrix": [1, 9], "x": 9.5, "y": 1},
+ {"label": "P", "matrix": [1, 10], "x": 10.5, "y": 1},
+ {"label": "[", "matrix": [1, 11], "x": 11.5, "y": 1},
+ {"label": "]", "matrix": [1, 12], "x": 12.5, "y": 1},
+ {"label": "|", "matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5},
+
+ {"label": "Caps", "matrix": [2, 15], "x": 0, "y": 2, "w": 1.75},
+ {"label": "A", "matrix": [2, 1], "x": 1.75, "y": 2},
+ {"label": "S", "matrix": [2, 2], "x": 2.75, "y": 2},
+ {"label": "D", "matrix": [2, 3], "x": 3.75, "y": 2},
+ {"label": "F", "matrix": [2, 4], "x": 4.75, "y": 2},
+ {"label": "G", "matrix": [2, 5], "x": 5.75, "y": 2},
+ {"label": "H", "matrix": [2, 6], "x": 6.75, "y": 2},
+ {"label": "J", "matrix": [2, 7], "x": 7.75, "y": 2},
+ {"label": "K", "matrix": [2, 8], "x": 8.75, "y": 2},
+ {"label": "L", "matrix": [2, 9], "x": 9.75, "y": 2},
+ {"label": ";", "matrix": [2, 10], "x": 10.75, "y": 2},
+ {"label": "'", "matrix": [2, 11], "x": 11.75, "y": 2},
+ {"label": "Enter", "matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25},
+
+ {"label": "LShift", "matrix": [3, 15], "x": 0, "y": 3, "w": 2.25},
+ {"label": "Z", "matrix": [3, 2], "x": 2.25, "y": 3},
+ {"label": "X", "matrix": [3, 3], "x": 3.25, "y": 3},
+ {"label": "C", "matrix": [3, 4], "x": 4.25, "y": 3},
+ {"label": "V", "matrix": [3, 5], "x": 5.25, "y": 3},
+ {"label": "B", "matrix": [3, 6], "x": 6.25, "y": 3},
+ {"label": "N", "matrix": [3, 7], "x": 7.25, "y": 3},
+ {"label": "M", "matrix": [3, 8], "x": 8.25, "y": 3},
+ {"label": ",", "matrix": [3, 9], "x": 9.25, "y": 3},
+ {"label": ".", "matrix": [3, 10], "x": 10.25, "y": 3},
+ {"label": "/", "matrix": [3, 11], "x": 11.25, "y": 3},
+ {"label": "RShift", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75},
+ {"label": "FN", "matrix": [3, 14], "x": 14, "y": 3},
+
+ {"label": "LCtrl", "matrix": [4, 15], "x": 0, "y": 4, "w": 1.25},
+ {"label": "LGui", "matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25},
+ {"label": "LAlt", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25},
+ {"label": "Space", "matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25},
+ {"label": "RAlt", "matrix": [4, 10], "x": 10, "y": 4, "w": 1.25},
+ {"label": "FN", "matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25},
+ {"label": "Menu", "matrix": [4, 13], "x": 12.5, "y": 4, "w": 1.25},
+ {"label": "RCtrl", "matrix": [4, 14], "x": 13.75, "y": 4, "w": 1.25}
+ ]
+ },
+ "LAYOUT_60_ansi_tsangan": {
+ "layout": [
+ {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0},
+ {"label": "1", "matrix": [0, 1], "x": 1, "y": 0},
+ {"label": "2", "matrix": [0, 2], "x": 2, "y": 0},
+ {"label": "3", "matrix": [0, 3], "x": 3, "y": 0},
+ {"label": "4", "matrix": [0, 4], "x": 4, "y": 0},
+ {"label": "5", "matrix": [0, 5], "x": 5, "y": 0},
+ {"label": "6", "matrix": [0, 6], "x": 6, "y": 0},
+ {"label": "7", "matrix": [0, 7], "x": 7, "y": 0},
+ {"label": "8", "matrix": [0, 8], "x": 8, "y": 0},
+ {"label": "9", "matrix": [0, 9], "x": 9, "y": 0},
+ {"label": "0", "matrix": [0, 10], "x": 10, "y": 0},
+ {"label": "-", "matrix": [0, 11], "x": 11, "y": 0},
+ {"label": "=", "matrix": [0, 12], "x": 12, "y": 0},
+ {"label": "Backspace", "matrix": [0, 13], "x": 13, "y": 0, "w": 2},
+
+ {"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
+ {"label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1},
+ {"label": "W", "matrix": [1, 2], "x": 2.5, "y": 1},
+ {"label": "E", "matrix": [1, 3], "x": 3.5, "y": 1},
+ {"label": "R", "matrix": [1, 4], "x": 4.5, "y": 1},
+ {"label": "T", "matrix": [1, 5], "x": 5.5, "y": 1},
+ {"label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1},
+ {"label": "U", "matrix": [1, 7], "x": 7.5, "y": 1},
+ {"label": "I", "matrix": [1, 8], "x": 8.5, "y": 1},
+ {"label": "O", "matrix": [1, 9], "x": 9.5, "y": 1},
+ {"label": "P", "matrix": [1, 10], "x": 10.5, "y": 1},
+ {"label": "[", "matrix": [1, 11], "x": 11.5, "y": 1},
+ {"label": "]", "matrix": [1, 12], "x": 12.5, "y": 1},
+ {"label": "|", "matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5},
+
+ {"label": "Caps", "matrix": [2, 15], "x": 0, "y": 2, "w": 1.75},
+ {"label": "A", "matrix": [2, 1], "x": 1.75, "y": 2},
+ {"label": "S", "matrix": [2, 2], "x": 2.75, "y": 2},
+ {"label": "D", "matrix": [2, 3], "x": 3.75, "y": 2},
+ {"label": "F", "matrix": [2, 4], "x": 4.75, "y": 2},
+ {"label": "G", "matrix": [2, 5], "x": 5.75, "y": 2},
+ {"label": "H", "matrix": [2, 6], "x": 6.75, "y": 2},
+ {"label": "J", "matrix": [2, 7], "x": 7.75, "y": 2},
+ {"label": "K", "matrix": [2, 8], "x": 8.75, "y": 2},
+ {"label": "L", "matrix": [2, 9], "x": 9.75, "y": 2},
+ {"label": ";", "matrix": [2, 10], "x": 10.75, "y": 2},
+ {"label": "'", "matrix": [2, 11], "x": 11.75, "y": 2},
+ {"label": "Enter", "matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25},
+
+ {"label": "LShift", "matrix": [3, 15], "x": 0, "y": 3, "w": 2.25},
+ {"label": "Z", "matrix": [3, 2], "x": 2.25, "y": 3},
+ {"label": "X", "matrix": [3, 3], "x": 3.25, "y": 3},
+ {"label": "C", "matrix": [3, 4], "x": 4.25, "y": 3},
+ {"label": "V", "matrix": [3, 5], "x": 5.25, "y": 3},
+ {"label": "B", "matrix": [3, 6], "x": 6.25, "y": 3},
+ {"label": "N", "matrix": [3, 7], "x": 7.25, "y": 3},
+ {"label": "M", "matrix": [3, 8], "x": 8.25, "y": 3},
+ {"label": ",", "matrix": [3, 9], "x": 9.25, "y": 3},
+ {"label": ".", "matrix": [3, 10], "x": 10.25, "y": 3},
+ {"label": "/", "matrix": [3, 11], "x": 11.25, "y": 3},
+ {"label": "RShift", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 2.75},
+
+ {"label": "LCtrl", "matrix": [4, 15], "x": 0, "y": 4, "w": 1.5},
+ {"label": "LGui", "matrix": [4, 1], "x": 1.5, "y": 4},
+ {"label": "LAlt", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5},
+ {"label": "Space", "matrix": [4, 6], "x": 4, "y": 4, "w": 7},
+ {"label": "FN", "matrix": [4, 11], "x": 11, "y": 4, "w": 1.5},
+ {"label": "Menu", "matrix": [4, 13], "x": 12.5, "y": 4},
+ {"label": "RCtrl", "matrix": [4, 14], "x": 13.5, "y": 4, "w": 1.5}
+ ]
+ },
+ "LAYOUT_60_tsangan_hhkb": {
+ "layout": [
+ {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0},
+ {"label": "1", "matrix": [0, 1], "x": 1, "y": 0},
+ {"label": "2", "matrix": [0, 2], "x": 2, "y": 0},
+ {"label": "3", "matrix": [0, 3], "x": 3, "y": 0},
+ {"label": "4", "matrix": [0, 4], "x": 4, "y": 0},
+ {"label": "5", "matrix": [0, 5], "x": 5, "y": 0},
+ {"label": "6", "matrix": [0, 6], "x": 6, "y": 0},
+ {"label": "7", "matrix": [0, 7], "x": 7, "y": 0},
+ {"label": "8", "matrix": [0, 8], "x": 8, "y": 0},
+ {"label": "9", "matrix": [0, 9], "x": 9, "y": 0},
+ {"label": "0", "matrix": [0, 10], "x": 10, "y": 0},
+ {"label": "-", "matrix": [0, 11], "x": 11, "y": 0},
+ {"label": "=", "matrix": [0, 12], "x": 12, "y": 0},
+ {"label": "BS", "matrix": [0, 13], "x": 13, "y": 0},
+ {"label": "~", "matrix": [0, 14], "x": 14, "y": 0},
+
+ {"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
+ {"label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1},
+ {"label": "W", "matrix": [1, 2], "x": 2.5, "y": 1},
+ {"label": "E", "matrix": [1, 3], "x": 3.5, "y": 1},
+ {"label": "R", "matrix": [1, 4], "x": 4.5, "y": 1},
+ {"label": "T", "matrix": [1, 5], "x": 5.5, "y": 1},
+ {"label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1},
+ {"label": "U", "matrix": [1, 7], "x": 7.5, "y": 1},
+ {"label": "I", "matrix": [1, 8], "x": 8.5, "y": 1},
+ {"label": "O", "matrix": [1, 9], "x": 9.5, "y": 1},
+ {"label": "P", "matrix": [1, 10], "x": 10.5, "y": 1},
+ {"label": "[", "matrix": [1, 11], "x": 11.5, "y": 1},
+ {"label": "]", "matrix": [1, 12], "x": 12.5, "y": 1},
+ {"label": "|", "matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5},
+
+ {"label": "Caps", "matrix": [2, 15], "x": 0, "y": 2, "w": 1.75},
+ {"label": "A", "matrix": [2, 1], "x": 1.75, "y": 2},
+ {"label": "S", "matrix": [2, 2], "x": 2.75, "y": 2},
+ {"label": "D", "matrix": [2, 3], "x": 3.75, "y": 2},
+ {"label": "F", "matrix": [2, 4], "x": 4.75, "y": 2},
+ {"label": "G", "matrix": [2, 5], "x": 5.75, "y": 2},
+ {"label": "H", "matrix": [2, 6], "x": 6.75, "y": 2},
+ {"label": "J", "matrix": [2, 7], "x": 7.75, "y": 2},
+ {"label": "K", "matrix": [2, 8], "x": 8.75, "y": 2},
+ {"label": "L", "matrix": [2, 9], "x": 9.75, "y": 2},
+ {"label": ";", "matrix": [2, 10], "x": 10.75, "y": 2},
+ {"label": "'", "matrix": [2, 11], "x": 11.75, "y": 2},
+ {"label": "Enter", "matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25},
+
+ {"label": "LShift", "matrix": [3, 15], "x": 0, "y": 3, "w": 2.25},
+ {"label": "Z", "matrix": [3, 2], "x": 2.25, "y": 3},
+ {"label": "X", "matrix": [3, 3], "x": 3.25, "y": 3},
+ {"label": "C", "matrix": [3, 4], "x": 4.25, "y": 3},
+ {"label": "V", "matrix": [3, 5], "x": 5.25, "y": 3},
+ {"label": "B", "matrix": [3, 6], "x": 6.25, "y": 3},
+ {"label": "N", "matrix": [3, 7], "x": 7.25, "y": 3},
+ {"label": "M", "matrix": [3, 8], "x": 8.25, "y": 3},
+ {"label": ",", "matrix": [3, 9], "x": 9.25, "y": 3},
+ {"label": ".", "matrix": [3, 10], "x": 10.25, "y": 3},
+ {"label": "/", "matrix": [3, 11], "x": 11.25, "y": 3},
+ {"label": "RShift", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75},
+ {"label": "FN", "matrix": [3, 14], "x": 14, "y": 3},
+
+ {"label": "LCtrl", "matrix": [4, 15], "x": 0, "y": 4, "w": 1.5},
+ {"label": "LGui", "matrix": [4, 1], "x": 1.5, "y": 4},
+ {"label": "LAlt", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5},
+ {"label": "Space", "matrix": [4, 6], "x": 4, "y": 4, "w": 7},
+ {"label": "FN", "matrix": [4, 11], "x": 11, "y": 4, "w": 1.5},
+ {"label": "Menu", "matrix": [4, 13], "x": 12.5, "y": 4},
+ {"label": "RCtrl", "matrix": [4, 14], "x": 13.5, "y": 4, "w": 1.5}
+ ]
+ },
+ "LAYOUT_60_hhkb": {
+ "layout": [
+ {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0},
+ {"label": "1", "matrix": [0, 1], "x": 1, "y": 0},
+ {"label": "2", "matrix": [0, 2], "x": 2, "y": 0},
+ {"label": "3", "matrix": [0, 3], "x": 3, "y": 0},
+ {"label": "4", "matrix": [0, 4], "x": 4, "y": 0},
+ {"label": "5", "matrix": [0, 5], "x": 5, "y": 0},
+ {"label": "6", "matrix": [0, 6], "x": 6, "y": 0},
+ {"label": "7", "matrix": [0, 7], "x": 7, "y": 0},
+ {"label": "8", "matrix": [0, 8], "x": 8, "y": 0},
+ {"label": "9", "matrix": [0, 9], "x": 9, "y": 0},
+ {"label": "0", "matrix": [0, 10], "x": 10, "y": 0},
+ {"label": "-", "matrix": [0, 11], "x": 11, "y": 0},
+ {"label": "=", "matrix": [0, 12], "x": 12, "y": 0},
+ {"label": "BS", "matrix": [0, 13], "x": 13, "y": 0},
+ {"label": "~", "matrix": [0, 14], "x": 14, "y": 0},
+
+ {"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
+ {"label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1},
+ {"label": "W", "matrix": [1, 2], "x": 2.5, "y": 1},
+ {"label": "E", "matrix": [1, 3], "x": 3.5, "y": 1},
+ {"label": "R", "matrix": [1, 4], "x": 4.5, "y": 1},
+ {"label": "T", "matrix": [1, 5], "x": 5.5, "y": 1},
+ {"label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1},
+ {"label": "U", "matrix": [1, 7], "x": 7.5, "y": 1},
+ {"label": "I", "matrix": [1, 8], "x": 8.5, "y": 1},
+ {"label": "O", "matrix": [1, 9], "x": 9.5, "y": 1},
+ {"label": "P", "matrix": [1, 10], "x": 10.5, "y": 1},
+ {"label": "[", "matrix": [1, 11], "x": 11.5, "y": 1},
+ {"label": "]", "matrix": [1, 12], "x": 12.5, "y": 1},
+ {"label": "|", "matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5},
+
+ {"label": "Caps", "matrix": [2, 15], "x": 0, "y": 2, "w": 1.75},
+ {"label": "A", "matrix": [2, 1], "x": 1.75, "y": 2},
+ {"label": "S", "matrix": [2, 2], "x": 2.75, "y": 2},
+ {"label": "D", "matrix": [2, 3], "x": 3.75, "y": 2},
+ {"label": "F", "matrix": [2, 4], "x": 4.75, "y": 2},
+ {"label": "G", "matrix": [2, 5], "x": 5.75, "y": 2},
+ {"label": "H", "matrix": [2, 6], "x": 6.75, "y": 2},
+ {"label": "J", "matrix": [2, 7], "x": 7.75, "y": 2},
+ {"label": "K", "matrix": [2, 8], "x": 8.75, "y": 2},
+ {"label": "L", "matrix": [2, 9], "x": 9.75, "y": 2},
+ {"label": ";", "matrix": [2, 10], "x": 10.75, "y": 2},
+ {"label": "'", "matrix": [2, 11], "x": 11.75, "y": 2},
+ {"label": "Enter", "matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25},
+
+ {"label": "LShift", "matrix": [3, 15], "x": 0, "y": 3, "w": 2.25},
+ {"label": "Z", "matrix": [3, 2], "x": 2.25, "y": 3},
+ {"label": "X", "matrix": [3, 3], "x": 3.25, "y": 3},
+ {"label": "C", "matrix": [3, 4], "x": 4.25, "y": 3},
+ {"label": "V", "matrix": [3, 5], "x": 5.25, "y": 3},
+ {"label": "B", "matrix": [3, 6], "x": 6.25, "y": 3},
+ {"label": "N", "matrix": [3, 7], "x": 7.25, "y": 3},
+ {"label": "M", "matrix": [3, 8], "x": 8.25, "y": 3},
+ {"label": ",", "matrix": [3, 9], "x": 9.25, "y": 3},
+ {"label": ".", "matrix": [3, 10], "x": 10.25, "y": 3},
+ {"label": "/", "matrix": [3, 11], "x": 11.25, "y": 3},
+ {"label": "RShift", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75},
+ {"label": "FN", "matrix": [3, 14], "x": 14, "y": 3},
+
+ {"label": "LGui", "matrix": [4, 1], "x": 1.5, "y": 4},
+ {"label": "LAlt", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5},
+ {"label": "Space", "matrix": [4, 6], "x": 4, "y": 4, "w": 7},
+ {"label": "FN", "matrix": [4, 11], "x": 11, "y": 4, "w": 1.5},
+ {"label": "Menu", "matrix": [4, 13], "x": 12.5, "y": 4}
+ ]
+ },
+ "LAYOUT_60_ansi_arrow": {
+ "layout": [
+ {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0},
+ {"label": "1", "matrix": [0, 1], "x": 1, "y": 0},
+ {"label": "2", "matrix": [0, 2], "x": 2, "y": 0},
+ {"label": "3", "matrix": [0, 3], "x": 3, "y": 0},
+ {"label": "4", "matrix": [0, 4], "x": 4, "y": 0},
+ {"label": "5", "matrix": [0, 5], "x": 5, "y": 0},
+ {"label": "6", "matrix": [0, 6], "x": 6, "y": 0},
+ {"label": "7", "matrix": [0, 7], "x": 7, "y": 0},
+ {"label": "8", "matrix": [0, 8], "x": 8, "y": 0},
+ {"label": "9", "matrix": [0, 9], "x": 9, "y": 0},
+ {"label": "0", "matrix": [0, 10], "x": 10, "y": 0},
+ {"label": "-", "matrix": [0, 11], "x": 11, "y": 0},
+ {"label": "=", "matrix": [0, 12], "x": 12, "y": 0},
+ {"label": "Backspace", "matrix": [0, 13], "x": 13, "y": 0, "w": 2},
+
+ {"label": "Tab", "matrix": [1, 0], "w": 1.5, "x": 0, "y": 1},
+ {"label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1},
+ {"label": "W", "matrix": [1, 2], "x": 2.5, "y": 1},
+ {"label": "E", "matrix": [1, 3], "x": 3.5, "y": 1},
+ {"label": "R", "matrix": [1, 4], "x": 4.5, "y": 1},
+ {"label": "T", "matrix": [1, 5], "x": 5.5, "y": 1},
+ {"label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1},
+ {"label": "U", "matrix": [1, 7], "x": 7.5, "y": 1},
+ {"label": "I", "matrix": [1, 8], "x": 8.5, "y": 1},
+ {"label": "O", "matrix": [1, 9], "x": 9.5, "y": 1},
+ {"label": "P", "matrix": [1, 10], "x": 10.5, "y": 1},
+ {"label": "[", "matrix": [1, 11], "x": 11.5, "y": 1},
+ {"label": "]", "matrix": [1, 12], "x": 12.5, "y": 1},
+ {"label": "|", "matrix": [1, 13], "w": 1.5, "x": 13.5, "y": 1},
+
+ {"label": "Caps", "matrix": [2, 15], "w": 1.75, "x": 0, "y": 2},
+ {"label": "A", "matrix": [2, 1], "x": 1.75, "y": 2},
+ {"label": "S", "matrix": [2, 2], "x": 2.75, "y": 2},
+ {"label": "D", "matrix": [2, 3], "x": 3.75, "y": 2},
+ {"label": "F", "matrix": [2, 4], "x": 4.75, "y": 2},
+ {"label": "G", "matrix": [2, 5], "x": 5.75, "y": 2},
+ {"label": "H", "matrix": [2, 6], "x": 6.75, "y": 2},
+ {"label": "J", "matrix": [2, 7], "x": 7.75, "y": 2},
+ {"label": "K", "matrix": [2, 8], "x": 8.75, "y": 2},
+ {"label": "L", "matrix": [2, 9], "x": 9.75, "y": 2},
+ {"label": ";", "matrix": [2, 10], "x": 10.75, "y": 2},
+ {"label": "'", "matrix": [2, 11], "x": 11.75, "y": 2},
+ {"label": "Enter", "matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25},
+
+ {"label": "LShift", "matrix": [3, 15], "x": 0, "y": 3, "w": 2.25},
+ {"label": "Z", "matrix": [3, 2], "x": 2.25, "y": 3},
+ {"label": "X", "matrix": [3, 3], "x": 3.25, "y": 3},
+ {"label": "C", "matrix": [3, 4], "x": 4.25, "y": 3},
+ {"label": "V", "matrix": [3, 5], "x": 5.25, "y": 3},
+ {"label": "B", "matrix": [3, 6], "x": 6.25, "y": 3},
+ {"label": "N", "matrix": [3, 7], "x": 7.25, "y": 3},
+ {"label": "M", "matrix": [3, 8], "x": 8.25, "y": 3},
+ {"label": ",", "matrix": [3, 9], "x": 9.25, "y": 3},
+ {"label": ".", "matrix": [3, 10], "x": 10.25, "y": 3},
+ {"label": "/", "matrix": [3, 11], "x": 11.25, "y": 3, "w": 1.75},
+ {"label": "RShift", "matrix": [3, 12], "x": 13, "y": 3},
+ {"label": "FN", "matrix": [3, 14], "x": 14, "y": 3},
+
+ {"label": "LCtrl", "matrix": [4, 15], "x": 0, "y": 4, "w": 1.25},
+ {"label": "LGui", "matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25},
+ {"label": "LAlt", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25},
+ {"label": "Space", "matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25},
+ {"label": "RAlt", "matrix": [4, 10], "x": 10, "y": 4},
+ {"label": "FN", "matrix": [4, 11], "x": 11, "y": 4},
+ {"label": "Mid1U", "matrix": [4, 12], "x": 12, "y": 4},
+ {"label": "Menu", "matrix": [4, 13], "x": 13, "y": 4},
+ {"label": "RCtrl", "matrix": [4, 14], "x": 14, "y": 4}
+ ]
+ },
+ "LAYOUT_60_iso": {
+ "layout": [
+ {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0},
+ {"label": "1", "matrix": [0, 1], "x": 1, "y": 0},
+ {"label": "2", "matrix": [0, 2], "x": 2, "y": 0},
+ {"label": "3", "matrix": [0, 3], "x": 3, "y": 0},
+ {"label": "4", "matrix": [0, 4], "x": 4, "y": 0},
+ {"label": "5", "matrix": [0, 5], "x": 5, "y": 0},
+ {"label": "6", "matrix": [0, 6], "x": 6, "y": 0},
+ {"label": "7", "matrix": [0, 7], "x": 7, "y": 0},
+ {"label": "8", "matrix": [0, 8], "x": 8, "y": 0},
+ {"label": "9", "matrix": [0, 9], "x": 9, "y": 0},
+ {"label": "0", "matrix": [0, 10], "x": 10, "y": 0},
+ {"label": "-", "matrix": [0, 11], "x": 11, "y": 0},
+ {"label": "=", "matrix": [0, 12], "x": 12, "y": 0},
+ {"label": "Backspace", "matrix": [0, 13], "x": 13, "y": 0, "w": 2},
+
+ {"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
+ {"label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1},
+ {"label": "W", "matrix": [1, 2], "x": 2.5, "y": 1},
+ {"label": "E", "matrix": [1, 3], "x": 3.5, "y": 1},
+ {"label": "R", "matrix": [1, 4], "x": 4.5, "y": 1},
+ {"label": "T", "matrix": [1, 5], "x": 5.5, "y": 1},
+ {"label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1},
+ {"label": "U", "matrix": [1, 7], "x": 7.5, "y": 1},
+ {"label": "I", "matrix": [1, 8], "x": 8.5, "y": 1},
+ {"label": "O", "matrix": [1, 9], "x": 9.5, "y": 1},
+ {"label": "P", "matrix": [1, 10], "x": 10.5, "y": 1},
+ {"label": "[", "matrix": [1, 11], "x": 11.5, "y": 1},
+ {"label": "]", "matrix": [1, 12], "x": 12.5, "y": 1},
+
+ {"label": "Caps", "matrix": [2, 15], "x": 0, "y": 2, "w": 1.75},
+ {"label": "A", "matrix": [2, 1], "x": 1.75, "y": 2},
+ {"label": "S", "matrix": [2, 2], "x": 2.75, "y": 2},
+ {"label": "D", "matrix": [2, 3], "x": 3.75, "y": 2},
+ {"label": "F", "matrix": [2, 4], "x": 4.75, "y": 2},
+ {"label": "G", "matrix": [2, 5], "x": 5.75, "y": 2},
+ {"label": "H", "matrix": [2, 6], "x": 6.75, "y": 2},
+ {"label": "J", "matrix": [2, 7], "x": 7.75, "y": 2},
+ {"label": "K", "matrix": [2, 8], "x": 8.75, "y": 2},
+ {"label": "L", "matrix": [2, 9], "x": 9.75, "y": 2},
+ {"label": ";", "matrix": [2, 10], "x": 10.75, "y": 2},
+ {"label": "'", "matrix": [2, 11], "x": 11.75, "y": 2},
+ {"label": "ISO'", "matrix": [2, 12], "x": 12.75, "y": 2},
+ {"label": "Enter", "matrix": [2, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 2},
+
+ {"label": "LShift", "matrix": [3, 15], "x": 0, "y": 3, "w": 1.25},
+ {"label": "ISO<>", "matrix": [3, 1], "x": 1.25, "y": 3},
+ {"label": "Z", "matrix": [3, 2], "x": 2.25, "y": 3},
+ {"label": "X", "matrix": [3, 3], "x": 3.25, "y": 3},
+ {"label": "C", "matrix": [3, 4], "x": 4.25, "y": 3},
+ {"label": "V", "matrix": [3, 5], "x": 5.25, "y": 3},
+ {"label": "B", "matrix": [3, 6], "x": 6.25, "y": 3},
+ {"label": "N", "matrix": [3, 7], "x": 7.25, "y": 3},
+ {"label": "M", "matrix": [3, 8], "x": 8.25, "y": 3},
+ {"label": ",", "matrix": [3, 9], "x": 9.25, "y": 3},
+ {"label": ".", "matrix": [3, 10], "x": 10.25, "y": 3},
+ {"label": "/", "matrix": [3, 11], "x": 11.25, "y": 3},
+ {"label": "RShift", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 2.75},
+
+ {"label": "LCtrl", "matrix": [4, 15], "x": 0, "y": 4, "w": 1.25},
+ {"label": "LGui", "matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25},
+ {"label": "LAlt", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25},
+ {"label": "Space", "matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25},
+ {"label": "RAlt", "matrix": [4, 10], "x": 10, "y": 4, "w": 1.25},
+ {"label": "FN", "matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25},
+ {"label": "Menu", "matrix": [4, 13], "x": 12.5, "y": 4, "w": 1.25},
+ {"label": "RCtrl", "matrix": [4, 14], "x": 13.75, "y": 4, "w": 1.25}
+ ]
+ },
+ "LAYOUT_60_iso_split_bs_rshift": {
+ "layout": [
+ {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0},
+ {"label": "1", "matrix": [0, 1], "x": 1, "y": 0},
+ {"label": "2", "matrix": [0, 2], "x": 2, "y": 0},
+ {"label": "3", "matrix": [0, 3], "x": 3, "y": 0},
+ {"label": "4", "matrix": [0, 4], "x": 4, "y": 0},
+ {"label": "5", "matrix": [0, 5], "x": 5, "y": 0},
+ {"label": "6", "matrix": [0, 6], "x": 6, "y": 0},
+ {"label": "7", "matrix": [0, 7], "x": 7, "y": 0},
+ {"label": "8", "matrix": [0, 8], "x": 8, "y": 0},
+ {"label": "9", "matrix": [0, 9], "x": 9, "y": 0},
+ {"label": "0", "matrix": [0, 10], "x": 10, "y": 0},
+ {"label": "-", "matrix": [0, 11], "x": 11, "y": 0},
+ {"label": "=", "matrix": [0, 12], "x": 12, "y": 0},
+ {"label": "BS", "matrix": [0, 13], "x": 13, "y": 0},
+ {"label": "~", "matrix": [0, 14], "x": 14, "y": 0},
+
+ {"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
+ {"label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1},
+ {"label": "W", "matrix": [1, 2], "x": 2.5, "y": 1},
+ {"label": "E", "matrix": [1, 3], "x": 3.5, "y": 1},
+ {"label": "R", "matrix": [1, 4], "x": 4.5, "y": 1},
+ {"label": "T", "matrix": [1, 5], "x": 5.5, "y": 1},
+ {"label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1},
+ {"label": "U", "matrix": [1, 7], "x": 7.5, "y": 1},
+ {"label": "I", "matrix": [1, 8], "x": 8.5, "y": 1},
+ {"label": "O", "matrix": [1, 9], "x": 9.5, "y": 1},
+ {"label": "P", "matrix": [1, 10], "x": 10.5, "y": 1},
+ {"label": "[", "matrix": [1, 11], "x": 11.5, "y": 1},
+ {"label": "]", "matrix": [1, 12], "x": 12.5, "y": 1},
+
+ {"label": "Caps", "matrix": [2, 15], "x": 0, "y": 2, "w": 1.75},
+ {"label": "A", "matrix": [2, 1], "x": 1.75, "y": 2},
+ {"label": "S", "matrix": [2, 2], "x": 2.75, "y": 2},
+ {"label": "D", "matrix": [2, 3], "x": 3.75, "y": 2},
+ {"label": "F", "matrix": [2, 4], "x": 4.75, "y": 2},
+ {"label": "G", "matrix": [2, 5], "x": 5.75, "y": 2},
+ {"label": "H", "matrix": [2, 6], "x": 6.75, "y": 2},
+ {"label": "J", "matrix": [2, 7], "x": 7.75, "y": 2},
+ {"label": "K", "matrix": [2, 8], "x": 8.75, "y": 2},
+ {"label": "L", "matrix": [2, 9], "x": 9.75, "y": 2},
+ {"label": ";", "matrix": [2, 10], "x": 10.75, "y": 2},
+ {"label": "'", "matrix": [2, 11], "x": 11.75, "y": 2},
+ {"label": "ISO'", "matrix": [2, 12], "x": 12.75, "y": 2},
+ {"label": "Enter", "matrix": [2, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 2},
+
+ {"label": "LShift", "matrix": [3, 15], "x": 0, "y": 3, "w": 1.25},
+ {"label": "ISO<>", "matrix": [3, 1], "x": 1.25, "y": 3},
+ {"label": "Z", "matrix": [3, 2], "x": 2.25, "y": 3},
+ {"label": "X", "matrix": [3, 3], "x": 3.25, "y": 3},
+ {"label": "C", "matrix": [3, 4], "x": 4.25, "y": 3},
+ {"label": "V", "matrix": [3, 5], "x": 5.25, "y": 3},
+ {"label": "B", "matrix": [3, 6], "x": 6.25, "y": 3},
+ {"label": "N", "matrix": [3, 7], "x": 7.25, "y": 3},
+ {"label": "M", "matrix": [3, 8], "x": 8.25, "y": 3},
+ {"label": ",", "matrix": [3, 9], "x": 9.25, "y": 3},
+ {"label": ".", "matrix": [3, 10], "x": 10.25, "y": 3},
+ {"label": "/", "matrix": [3, 11], "x": 11.25, "y": 3},
+ {"label": "RShift", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75},
+ {"label": "FN", "matrix": [3, 14], "x": 14, "y": 3},
+
+ {"label": "LCtrl", "matrix": [4, 15], "x": 0, "y": 4, "w": 1.25},
+ {"label": "LGui", "matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25},
+ {"label": "LAlt", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25},
+ {"label": "Space", "matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25},
+ {"label": "RAlt", "matrix": [4, 10], "x": 10, "y": 4, "w": 1.25},
+ {"label": "FN", "matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25},
+ {"label": "Menu", "matrix": [4, 13], "x": 12.5, "y": 4, "w": 1.25},
+ {"label": "RCtrl", "matrix": [4, 14], "x": 13.75, "y": 4, "w": 1.25}
+ ]
+ },
+ "LAYOUT_60_iso_tsangan": {
+ "layout": [
+ {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0},
+ {"label": "1", "matrix": [0, 1], "x": 1, "y": 0},
+ {"label": "2", "matrix": [0, 2], "x": 2, "y": 0},
+ {"label": "3", "matrix": [0, 3], "x": 3, "y": 0},
+ {"label": "4", "matrix": [0, 4], "x": 4, "y": 0},
+ {"label": "5", "matrix": [0, 5], "x": 5, "y": 0},
+ {"label": "6", "matrix": [0, 6], "x": 6, "y": 0},
+ {"label": "7", "matrix": [0, 7], "x": 7, "y": 0},
+ {"label": "8", "matrix": [0, 8], "x": 8, "y": 0},
+ {"label": "9", "matrix": [0, 9], "x": 9, "y": 0},
+ {"label": "0", "matrix": [0, 10], "x": 10, "y": 0},
+ {"label": "-", "matrix": [0, 11], "x": 11, "y": 0},
+ {"label": "=", "matrix": [0, 12], "x": 12, "y": 0},
+ {"label": "Backspace", "matrix": [0, 13], "x": 13, "y": 0, "w": 2},
+
+ {"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
+ {"label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1},
+ {"label": "W", "matrix": [1, 2], "x": 2.5, "y": 1},
+ {"label": "E", "matrix": [1, 3], "x": 3.5, "y": 1},
+ {"label": "R", "matrix": [1, 4], "x": 4.5, "y": 1},
+ {"label": "T", "matrix": [1, 5], "x": 5.5, "y": 1},
+ {"label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1},
+ {"label": "U", "matrix": [1, 7], "x": 7.5, "y": 1},
+ {"label": "I", "matrix": [1, 8], "x": 8.5, "y": 1},
+ {"label": "O", "matrix": [1, 9], "x": 9.5, "y": 1},
+ {"label": "P", "matrix": [1, 10], "x": 10.5, "y": 1},
+ {"label": "[", "matrix": [1, 11], "x": 11.5, "y": 1},
+ {"label": "]", "matrix": [1, 12], "x": 12.5, "y": 1},
+
+ {"label": "Caps", "matrix": [2, 15], "x": 0, "y": 2, "w": 1.75},
+ {"label": "A", "matrix": [2, 1], "x": 1.75, "y": 2},
+ {"label": "S", "matrix": [2, 2], "x": 2.75, "y": 2},
+ {"label": "D", "matrix": [2, 3], "x": 3.75, "y": 2},
+ {"label": "F", "matrix": [2, 4], "x": 4.75, "y": 2},
+ {"label": "G", "matrix": [2, 5], "x": 5.75, "y": 2},
+ {"label": "H", "matrix": [2, 6], "x": 6.75, "y": 2},
+ {"label": "J", "matrix": [2, 7], "x": 7.75, "y": 2},
+ {"label": "K", "matrix": [2, 8], "x": 8.75, "y": 2},
+ {"label": "L", "matrix": [2, 9], "x": 9.75, "y": 2},
+ {"label": ";", "matrix": [2, 10], "x": 10.75, "y": 2},
+ {"label": "'", "matrix": [2, 11], "x": 11.75, "y": 2},
+ {"label": "ISO'", "matrix": [2, 12], "x": 12.75, "y": 2},
+ {"label": "Enter", "matrix": [2, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 2},
+
+ {"label": "LShift", "matrix": [3, 15], "x": 0, "y": 3, "w": 1.25},
+ {"label": "ISO<>", "matrix": [3, 1], "x": 1.25, "y": 3},
+ {"label": "Z", "matrix": [3, 2], "x": 2.25, "y": 3},
+ {"label": "X", "matrix": [3, 3], "x": 3.25, "y": 3},
+ {"label": "C", "matrix": [3, 4], "x": 4.25, "y": 3},
+ {"label": "V", "matrix": [3, 5], "x": 5.25, "y": 3},
+ {"label": "B", "matrix": [3, 6], "x": 6.25, "y": 3},
+ {"label": "N", "matrix": [3, 7], "x": 7.25, "y": 3},
+ {"label": "M", "matrix": [3, 8], "x": 8.25, "y": 3},
+ {"label": ",", "matrix": [3, 9], "x": 9.25, "y": 3},
+ {"label": ".", "matrix": [3, 10], "x": 10.25, "y": 3},
+ {"label": "/", "matrix": [3, 11], "x": 11.25, "y": 3},
+ {"label": "RShift", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 2.75},
+
+ {"label": "LCtrl", "matrix": [4, 15], "x": 0, "y": 4, "w": 1.5},
+ {"label": "LGui", "matrix": [4, 1], "x": 1.5, "y": 4},
+ {"label": "LAlt", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5},
+ {"label": "Space", "matrix": [4, 6], "x": 4, "y": 4, "w": 7},
+ {"label": "FN", "matrix": [4, 11], "x": 11, "y": 4, "w": 1.5},
+ {"label": "Menu", "matrix": [4, 13], "x": 12.5, "y": 4},
+ {"label": "RCtrl", "matrix": [4, 14], "x": 13.5, "y": 4, "w": 1.5}
+ ]
+ },
+ "LAYOUT_60_iso_tsangan_split_bs_rshift": {
+ "layout": [
+ {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0},
+ {"label": "1", "matrix": [0, 1], "x": 1, "y": 0},
+ {"label": "2", "matrix": [0, 2], "x": 2, "y": 0},
+ {"label": "3", "matrix": [0, 3], "x": 3, "y": 0},
+ {"label": "4", "matrix": [0, 4], "x": 4, "y": 0},
+ {"label": "5", "matrix": [0, 5], "x": 5, "y": 0},
+ {"label": "6", "matrix": [0, 6], "x": 6, "y": 0},
+ {"label": "7", "matrix": [0, 7], "x": 7, "y": 0},
+ {"label": "8", "matrix": [0, 8], "x": 8, "y": 0},
+ {"label": "9", "matrix": [0, 9], "x": 9, "y": 0},
+ {"label": "0", "matrix": [0, 10], "x": 10, "y": 0},
+ {"label": "-", "matrix": [0, 11], "x": 11, "y": 0},
+ {"label": "=", "matrix": [0, 12], "x": 12, "y": 0},
+ {"label": "BS", "matrix": [0, 13], "x": 13, "y": 0},
+ {"label": "~", "matrix": [0, 14], "x": 14, "y": 0},
+
+ {"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
+ {"label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1},
+ {"label": "W", "matrix": [1, 2], "x": 2.5, "y": 1},
+ {"label": "E", "matrix": [1, 3], "x": 3.5, "y": 1},
+ {"label": "R", "matrix": [1, 4], "x": 4.5, "y": 1},
+ {"label": "T", "matrix": [1, 5], "x": 5.5, "y": 1},
+ {"label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1},
+ {"label": "U", "matrix": [1, 7], "x": 7.5, "y": 1},
+ {"label": "I", "matrix": [1, 8], "x": 8.5, "y": 1},
+ {"label": "O", "matrix": [1, 9], "x": 9.5, "y": 1},
+ {"label": "P", "matrix": [1, 10], "x": 10.5, "y": 1},
+ {"label": "[", "matrix": [1, 11], "x": 11.5, "y": 1},
+ {"label": "]", "matrix": [1, 12], "x": 12.5, "y": 1},
+
+ {"label": "Caps", "matrix": [2, 15], "x": 0, "y": 2, "w": 1.75},
+ {"label": "A", "matrix": [2, 1], "x": 1.75, "y": 2},
+ {"label": "S", "matrix": [2, 2], "x": 2.75, "y": 2},
+ {"label": "D", "matrix": [2, 3], "x": 3.75, "y": 2},
+ {"label": "F", "matrix": [2, 4], "x": 4.75, "y": 2},
+ {"label": "G", "matrix": [2, 5], "x": 5.75, "y": 2},
+ {"label": "H", "matrix": [2, 6], "x": 6.75, "y": 2},
+ {"label": "J", "matrix": [2, 7], "x": 7.75, "y": 2},
+ {"label": "K", "matrix": [2, 8], "x": 8.75, "y": 2},
+ {"label": "L", "matrix": [2, 9], "x": 9.75, "y": 2},
+ {"label": ";", "matrix": [2, 10], "x": 10.75, "y": 2},
+ {"label": "'", "matrix": [2, 11], "x": 11.75, "y": 2},
+ {"label": "ISO'", "matrix": [2, 12], "x": 12.75, "y": 2},
+ {"label": "Enter", "matrix": [2, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 2},
+
+ {"label": "LShift", "matrix": [3, 15], "x": 0, "y": 3, "w": 1.25},
+ {"label": "ISO<>", "matrix": [3, 1], "x": 1.25, "y": 3},
+ {"label": "Z", "matrix": [3, 2], "x": 2.25, "y": 3},
+ {"label": "X", "matrix": [3, 3], "x": 3.25, "y": 3},
+ {"label": "C", "matrix": [3, 4], "x": 4.25, "y": 3},
+ {"label": "V", "matrix": [3, 5], "x": 5.25, "y": 3},
+ {"label": "B", "matrix": [3, 6], "x": 6.25, "y": 3},
+ {"label": "N", "matrix": [3, 7], "x": 7.25, "y": 3},
+ {"label": "M", "matrix": [3, 8], "x": 8.25, "y": 3},
+ {"label": ",", "matrix": [3, 9], "x": 9.25, "y": 3},
+ {"label": ".", "matrix": [3, 10], "x": 10.25, "y": 3},
+ {"label": "/", "matrix": [3, 11], "x": 11.25, "y": 3},
+ {"label": "RShift", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75},
+ {"label": "FN", "matrix": [3, 14], "x": 14, "y": 3},
+
+ {"label": "LCtrl", "matrix": [4, 15], "x": 0, "y": 4, "w": 1.5},
+ {"label": "LGui", "matrix": [4, 1], "x": 1.5, "y": 4},
+ {"label": "LAlt", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5},
+ {"label": "Space", "matrix": [4, 6], "x": 4, "y": 4, "w": 7},
+ {"label": "FN", "matrix": [4, 11], "x": 11, "y": 4, "w": 1.5},
+ {"label": "Menu", "matrix": [4, 13], "x": 12.5, "y": 4},
+ {"label": "RCtrl", "matrix": [4, 14], "x": 13.5, "y": 4, "w": 1.5}
+ ]
+ },
+ "LAYOUT_60_iso_arrow": {
+ "layout": [
+ {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0},
+ {"label": "1", "matrix": [0, 1], "x": 1, "y": 0},
+ {"label": "2", "matrix": [0, 2], "x": 2, "y": 0},
+ {"label": "3", "matrix": [0, 3], "x": 3, "y": 0},
+ {"label": "4", "matrix": [0, 4], "x": 4, "y": 0},
+ {"label": "5", "matrix": [0, 5], "x": 5, "y": 0},
+ {"label": "6", "matrix": [0, 6], "x": 6, "y": 0},
+ {"label": "7", "matrix": [0, 7], "x": 7, "y": 0},
+ {"label": "8", "matrix": [0, 8], "x": 8, "y": 0},
+ {"label": "9", "matrix": [0, 9], "x": 9, "y": 0},
+ {"label": "0", "matrix": [0, 10], "x": 10, "y": 0},
+ {"label": "-", "matrix": [0, 11], "x": 11, "y": 0},
+ {"label": "=", "matrix": [0, 12], "x": 12, "y": 0},
+ {"label": "Backspace", "matrix": [0, 13], "x": 13, "y": 0, "w": 2},
+
+ {"label": "Tab", "matrix": [1, 0], "w": 1.5, "x": 0, "y": 1},
+ {"label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1},
+ {"label": "W", "matrix": [1, 2], "x": 2.5, "y": 1},
+ {"label": "E", "matrix": [1, 3], "x": 3.5, "y": 1},
+ {"label": "R", "matrix": [1, 4], "x": 4.5, "y": 1},
+ {"label": "T", "matrix": [1, 5], "x": 5.5, "y": 1},
+ {"label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1},
+ {"label": "U", "matrix": [1, 7], "x": 7.5, "y": 1},
+ {"label": "I", "matrix": [1, 8], "x": 8.5, "y": 1},
+ {"label": "O", "matrix": [1, 9], "x": 9.5, "y": 1},
+ {"label": "P", "matrix": [1, 10], "x": 10.5, "y": 1},
+ {"label": "[", "matrix": [1, 11], "x": 11.5, "y": 1},
+ {"label": "]", "matrix": [1, 12], "x": 12.5, "y": 1},
+
+ {"label": "Caps", "matrix": [2, 15], "w": 1.75, "x": 0, "y": 2},
+ {"label": "A", "matrix": [2, 1], "x": 1.75, "y": 2},
+ {"label": "S", "matrix": [2, 2], "x": 2.75, "y": 2},
+ {"label": "D", "matrix": [2, 3], "x": 3.75, "y": 2},
+ {"label": "F", "matrix": [2, 4], "x": 4.75, "y": 2},
+ {"label": "G", "matrix": [2, 5], "x": 5.75, "y": 2},
+ {"label": "H", "matrix": [2, 6], "x": 6.75, "y": 2},
+ {"label": "J", "matrix": [2, 7], "x": 7.75, "y": 2},
+ {"label": "K", "matrix": [2, 8], "x": 8.75, "y": 2},
+ {"label": "L", "matrix": [2, 9], "x": 9.75, "y": 2},
+ {"label": ";", "matrix": [2, 10], "x": 10.75, "y": 2},
+ {"label": "'", "matrix": [2, 11], "x": 11.75, "y": 2},
+ {"label": "ISO'", "matrix": [2, 12], "x": 12.75, "y": 2},
+ {"label": "Enter", "matrix": [2, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 2},
+
+ {"label": "LShift", "matrix": [3, 15], "x": 0, "y": 3, "w": 1.25},
+ {"label": "ISO<>", "matrix": [3, 1], "x": 1.25, "y": 3},
+ {"label": "Z", "matrix": [3, 2], "x": 2.25, "y": 3},
+ {"label": "X", "matrix": [3, 3], "x": 3.25, "y": 3},
+ {"label": "C", "matrix": [3, 4], "x": 4.25, "y": 3},
+ {"label": "V", "matrix": [3, 5], "x": 5.25, "y": 3},
+ {"label": "B", "matrix": [3, 6], "x": 6.25, "y": 3},
+ {"label": "N", "matrix": [3, 7], "x": 7.25, "y": 3},
+ {"label": "M", "matrix": [3, 8], "x": 8.25, "y": 3},
+ {"label": ",", "matrix": [3, 9], "x": 9.25, "y": 3},
+ {"label": ".", "matrix": [3, 10], "x": 10.25, "y": 3},
+ {"label": "/", "matrix": [3, 11], "x": 11.25, "y": 3, "w": 1.75},
+ {"label": "RShift", "matrix": [3, 12], "x": 13, "y": 3},
+ {"label": "FN", "matrix": [3, 14], "x": 14, "y": 3},
+
+ {"label": "LCtrl", "matrix": [4, 15], "x": 0, "y": 4, "w": 1.25},
+ {"label": "LGui", "matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25},
+ {"label": "LAlt", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25},
+ {"label": "Space", "matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25},
+ {"label": "RAlt", "matrix": [4, 10], "x": 10, "y": 4},
+ {"label": "FN", "matrix": [4, 11], "x": 11, "y": 4},
+ {"label": "Mid1U", "matrix": [4, 12], "x": 12, "y": 4},
+ {"label": "Menu", "matrix": [4, 13], "x": 13, "y": 4},
+ {"label": "RCtrl", "matrix": [4, 14], "x": 14, "y": 4}
+ ]
}
}
}
diff --git a/keyboards/1upkeyboards/pi60/keymaps/default/keymap.c b/keyboards/1upkeyboards/pi60/keymaps/default/keymap.c
index acf9ce1adb..8a83e83b52 100644
--- a/keyboards/1upkeyboards/pi60/keymaps/default/keymap.c
+++ b/keyboards/1upkeyboards/pi60/keymaps/default/keymap.c
@@ -18,7 +18,7 @@
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [0] = LAYOUT_60_ansi(
+ [0] = LAYOUT_all(
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_GRV,
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_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_TRNS, KC_ENT,
@@ -26,7 +26,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, MO(1), KC_TRNS, KC_APP, KC_RCTL
),
- [1] = LAYOUT_60_ansi(
+ [1] = LAYOUT_all(
KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_TRNS,
KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR, KC_SCRL, KC_PAUS, KC_TRNS,
KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_INS, KC_HOME, KC_PGUP, KC_TRNS, KC_TRNS,
@@ -34,7 +34,7 @@ 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_TRNS, KC_TRNS
),
- [2] = LAYOUT_60_ansi(
+ [2] = LAYOUT_all(
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
RGB_TOG, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, RGB_SPI, RGB_M_P, RGB_M_B, RGB_M_R, RGB_M_SW,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
@@ -42,7 +42,7 @@ 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_TRNS, KC_TRNS
),
- [3] = LAYOUT_60_ansi(
+ [3] = LAYOUT_all(
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, 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/1upkeyboards/pi60/keymaps/via/keymap.c b/keyboards/1upkeyboards/pi60/keymaps/via/keymap.c
index 80f9d3a9f6..e9af7a7138 100644
--- a/keyboards/1upkeyboards/pi60/keymaps/via/keymap.c
+++ b/keyboards/1upkeyboards/pi60/keymaps/via/keymap.c
@@ -18,7 +18,7 @@
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [0] = LAYOUT_60_ansi(
+ [0] = LAYOUT_all(
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_GRV,
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_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_TRNS, KC_ENT,
@@ -26,7 +26,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, MO(1), KC_TRNS, KC_APP, KC_RCTL
),
- [1] = LAYOUT_60_ansi(
+ [1] = LAYOUT_all(
KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_TRNS,
KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR, KC_SCRL, KC_PAUS, KC_TRNS,
KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_INS, KC_HOME, KC_PGUP, KC_TRNS, KC_TRNS,
@@ -34,7 +34,7 @@ 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_TRNS, KC_TRNS
),
- [2] = LAYOUT_60_ansi(
+ [2] = LAYOUT_all(
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
RGB_TOG, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, RGB_SPI, RGB_M_P, RGB_M_B, RGB_M_R, RGB_M_SW,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
@@ -42,7 +42,7 @@ 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_TRNS, KC_TRNS
),
- [3] = LAYOUT_60_ansi(
+ [3] = LAYOUT_all(
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
@@ -50,7 +50,7 @@ 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_TRNS, KC_TRNS
),
- [4] = LAYOUT_60_ansi(
+ [4] = LAYOUT_all(
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
@@ -58,7 +58,7 @@ 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_TRNS, KC_TRNS
),
- [5] = LAYOUT_60_ansi(
+ [5] = LAYOUT_all(
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
@@ -66,7 +66,7 @@ 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_TRNS, KC_TRNS
),
- [6] = LAYOUT_60_ansi(
+ [6] = LAYOUT_all(
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
@@ -74,7 +74,7 @@ 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_TRNS, KC_TRNS
),
- [7] = LAYOUT_60_ansi(
+ [7] = LAYOUT_all(
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
@@ -82,7 +82,7 @@ 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_TRNS, KC_TRNS
),
- [8] = LAYOUT_60_ansi(
+ [8] = LAYOUT_all(
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
@@ -90,7 +90,7 @@ 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_TRNS, KC_TRNS
),
- [9] = LAYOUT_60_ansi(
+ [9] = LAYOUT_all(
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, 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/1upkeyboards/pi60/matrix_diagram.md b/keyboards/1upkeyboards/pi60/matrix_diagram.md
new file mode 100644
index 0000000000..2300245bdb
--- /dev/null
+++ b/keyboards/1upkeyboards/pi60/matrix_diagram.md
@@ -0,0 +1,60 @@
+# Matrix Diagram for 1upkeyboards pi60
+
+```
+ ┌───────┐
+ 2u Backspace │0D │
+ └───────┘
+┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
+│00 │01 │02 │03 │04 │05 │06 │07 │08 │09 │0A │0B │0C │0D │0E │ ─ Switch or Encoder
+├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤ ┌─────┐ ┌─────┐ ┌─────┐
+│10 │11 │12 │13 │14 │15 │16 │17 │18 │19 │1A │1B │1C │1D │ │ │ │1D │ │1D │
+├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ ┌──┴┐2D │ ISO Enter ┌──┴┬────┤ 1u/1.25u Split Enter ┌──┴─┬───┤ 1.25u/1u Split Enter
+│2F │21 │22 │23 │24 │25 │26 │27 │28 │29 │2A │2B │2D │ │2C │ │ │2C │2D │ │2C │2D │
+├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴┬───┬───┤ └───┴────┘ └───┴────┘ └────┴───┘
+│3F │31 │32 │33 │34 │35 │36 │37 │38 │39 │3A │3B │3C │3E │─┐
+└────┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴──────┴───┴───┘ │
+┌────────┐ ┌───┬──────┬───┐ │
+│3F │ 2.25u LShift 1u/1.75u/1u RShift │3B │3C │3E │─┼─ Switch or Encoder
+└────────┘ └───┴──────┴───┘ │
+ ┌───┐ ┌───┬───┐ │
+ 1u/0.75u Gap/1u/1u RShift │3B │ │3C │3E │─┘
+ └───┘ └───┴───┘
+
+[Bottom Rows]────────────────────────────────────────────────
+────────────────────[6u & 6.25u Spacebar]────────────────────
+┌────┬────┬────┬────────────────────────┬────┬────┬────┬────┐
+│4F │41 │42 │46 │4A │4B │4D │4E │
+└────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
+┌─────┬───┬────┬──────────┬────┬────────┬────┬────┬───┬─────┐
+│4F │41 │42 │44 │46 │48 │4A │4B │4D │4E │
+└─────┴───┴────┴──────────┴────┴────────┴────┴────┴───┴─────┘
+ ┌────────┬────┬──────────┬───┬───┬───┬───┬───┐
+ │44 │46 │48 │4A │4B │4C │4D │4E │
+ └────────┴────┴──────────┴───┴───┴───┴───┴───┘
+ ┌───────────────────────┬───┬─────┬────┬────┐
+ │46 │4A │4B │4D │4E │
+ └───────────────────────┴───┴─────┴────┴────┘
+ ┌───┬─────┬───┬─────┐
+ │4A │4B │4D │4E │
+ └───┴─────┴───┴─────┘
+
+────────────────────────[7u Spacebar]────────────────────────
+┌────┬────┬─────┬───────────────────────────┬───┬───┬───┬───┐
+│4F │41 │42 │46 │4B │4C │4D │4E │
+└────┴────┴─────┴───────────────────────────┴───┴───┴───┴───┘
+┌─────┬───┬─────┬──────────┬─────┬──────────┬─────┬────┬────┐
+│4F │41 │42 │44 │46 │48 │4B │4D │4E │
+└─────┴───┴─────┴──────────┴─────┴──────────┴─────┴────┴────┘
+ ┌───────────┬───┬───────────┬─────┬───┬─────┐
+ │44 │46 │48 │4B │4D │4E │
+ └───────────┴───┴───────────┴─────┴───┴─────┘
+ └─ Switch or Encoder
+
+───────────────────────[10u Spacebar]────────────────────────
+┌────┬────┬───────────────────────────────────────┬────┬────┐
+│4F │41 │46 │4D │4E │
+└────┴────┴───────────────────────────────────────┴────┴────┘
+┌─────┬───┬───────────────────────────────────────┬───┬─────┐
+│4F │41 │46 │4D │4E │
+└─────┴───┴───────────────────────────────────────┴───┴─────┘
+```
diff --git a/keyboards/1upkeyboards/pi60_hse/config.h b/keyboards/1upkeyboards/pi60_hse/config.h
index a47120f7d3..b7c4d5e8bc 100644
--- a/keyboards/1upkeyboards/pi60_hse/config.h
+++ b/keyboards/1upkeyboards/pi60_hse/config.h
@@ -3,8 +3,6 @@
#pragma once
-
-#define DYNAMIC_KEYMAP_LAYER_COUNT 10
#define RGB_MATRIX_LED_COUNT 16
#define RGB_MATRIX_FRAMEBUFFER_EFFECTS
#define RGB_MATRIX_KEYPRESSES
diff --git a/keyboards/1upkeyboards/pi60_hse/info.json b/keyboards/1upkeyboards/pi60_hse/info.json
index 310ad3d94b..5b3e6b35e5 100644
--- a/keyboards/1upkeyboards/pi60_hse/info.json
+++ b/keyboards/1upkeyboards/pi60_hse/info.json
@@ -11,6 +11,9 @@
"vid": "0x6F75"
},
"diode_direction": "COL2ROW",
+ "dynamic_keymap": {
+ "layer_count": 10
+ },
"features": {
"audio": false,
"backlight": false,
diff --git a/keyboards/1upkeyboards/super16/keymaps/15game/keymap.c b/keyboards/1upkeyboards/super16/keymaps/15game/keymap.c
index 5988a7cf0e..e92a9fc10d 100644
--- a/keyboards/1upkeyboards/super16/keymaps/15game/keymap.c
+++ b/keyboards/1upkeyboards/super16/keymaps/15game/keymap.c
@@ -85,7 +85,7 @@ uint8_t remap[16] = {
void refresh_leds(void) {
for (uint8_t index = 0; index < 16; ++index) {
uint8_t tile = tiles[index];
- setrgb(r[tile], g[tile], b[tile], (LED_TYPE *)&led[remap[index]]);
+ setrgb(r[tile], g[tile], b[tile], (rgb_led_t *)&led[remap[index]]);
}
rgblight_set();
}
diff --git a/keyboards/1upkeyboards/sweet16v2/kb2040/config.h b/keyboards/1upkeyboards/sweet16v2/kb2040/config.h
index 37a85b4711..e4609962f1 100644
--- a/keyboards/1upkeyboards/sweet16v2/kb2040/config.h
+++ b/keyboards/1upkeyboards/sweet16v2/kb2040/config.h
@@ -16,8 +16,6 @@
#pragma once
-
-#define DYNAMIC_KEYMAP_LAYER_COUNT 10
#define RGB_MATRIX_LED_COUNT 20
#define RGB_MATRIX_KEYPRESSES
#define RGB_MATRIX_FRAMEBUFFER_EFFECTS
diff --git a/keyboards/1upkeyboards/sweet16v2/kb2040/info.json b/keyboards/1upkeyboards/sweet16v2/kb2040/info.json
index f1ac861c8c..928c8106bf 100644
--- a/keyboards/1upkeyboards/sweet16v2/kb2040/info.json
+++ b/keyboards/1upkeyboards/sweet16v2/kb2040/info.json
@@ -33,6 +33,9 @@
"rows": ["GP26", "GP1", "GP18", "GP5"]
},
"diode_direction": "COL2ROW",
+ "dynamic_keymap": {
+ "layer_count": 10
+ },
"encoder": {
"enabled": true,
"rotary": [
diff --git a/keyboards/1upkeyboards/sweet16v2/pro_micro/config.h b/keyboards/1upkeyboards/sweet16v2/pro_micro/config.h
index f773468d8f..e4609962f1 100644
--- a/keyboards/1upkeyboards/sweet16v2/pro_micro/config.h
+++ b/keyboards/1upkeyboards/sweet16v2/pro_micro/config.h
@@ -16,9 +16,6 @@
#pragma once
-
-#define DYNAMIC_KEYMAP_LAYER_COUNT 10
-
#define RGB_MATRIX_LED_COUNT 20
#define RGB_MATRIX_KEYPRESSES
#define RGB_MATRIX_FRAMEBUFFER_EFFECTS
diff --git a/keyboards/1upkeyboards/sweet16v2/pro_micro/info.json b/keyboards/1upkeyboards/sweet16v2/pro_micro/info.json
index a8696ab64c..87f2f3574c 100644
--- a/keyboards/1upkeyboards/sweet16v2/pro_micro/info.json
+++ b/keyboards/1upkeyboards/sweet16v2/pro_micro/info.json
@@ -31,6 +31,9 @@
"rows": ["D1", "B5", "B4", "E6"]
},
"diode_direction": "COL2ROW",
+ "dynamic_keymap": {
+ "layer_count": 10
+ },
"encoder": {
"enabled": true,
"rotary": [
diff --git a/keyboards/25keys/zinc/keymaps/ginjake/keymap.c b/keyboards/25keys/zinc/keymaps/ginjake/keymap.c
index b7d0e5c93a..5cadafb4be 100644
--- a/keyboards/25keys/zinc/keymaps/ginjake/keymap.c
+++ b/keyboards/25keys/zinc/keymaps/ginjake/keymap.c
@@ -341,10 +341,10 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
//キー毎に時間差で色が変化していく
if (aqours_next_color_timer_count % NEXT_CHANGE_TARGET_TIME == 0) {
if (target_col < MATRIX_COLS) {
- sethsv(aqours_h[aqours_num], aqours_s[aqours_num], aqours_v[aqours_num], (LED_TYPE *)&led[target_col]);
- sethsv(aqours_h[aqours_num], aqours_s[aqours_num], aqours_v[aqours_num], (LED_TYPE *)&led[11 - target_col]);
- sethsv(aqours_h[aqours_num], aqours_s[aqours_num], aqours_v[aqours_num], (LED_TYPE *)&led[12 + target_col]);
- sethsv(aqours_h[aqours_num], aqours_s[aqours_num], aqours_v[aqours_num], (LED_TYPE *)&led[23 - target_col]);
+ sethsv(aqours_h[aqours_num], aqours_s[aqours_num], aqours_v[aqours_num], (rgb_led_t *)&led[target_col]);
+ sethsv(aqours_h[aqours_num], aqours_s[aqours_num], aqours_v[aqours_num], (rgb_led_t *)&led[11 - target_col]);
+ sethsv(aqours_h[aqours_num], aqours_s[aqours_num], aqours_v[aqours_num], (rgb_led_t *)&led[12 + target_col]);
+ sethsv(aqours_h[aqours_num], aqours_s[aqours_num], aqours_v[aqours_num], (rgb_led_t *)&led[23 - target_col]);
target_col++;
rgblight_set();
}
diff --git a/keyboards/3w6/keymaps/manna-harbour_miryoku/config.h b/keyboards/3w6/keymaps/manna-harbour_miryoku/config.h
deleted file mode 100644
index fb567ad7d3..0000000000
--- a/keyboards/3w6/keymaps/manna-harbour_miryoku/config.h
+++ /dev/null
@@ -1,32 +0,0 @@
-/* Copyright 2021 weteor
- *
- * 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/>.
- */
-
-// generated from users/manna-harbour_miryoku/miryoku.org -*- buffer-read-only: t -*-
-
-#pragma once
-
-#define LAYOUT_miryoku( \
- 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, \
- N30, N31, K32, K33, K34, K35, K36, K37, N38, N39 \
-) \
-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, \
- K32, K33, K34, K35, K36, K37 \
-)
diff --git a/keyboards/3w6/keymaps/manna-harbour_miryoku/keymap.c b/keyboards/3w6/keymaps/manna-harbour_miryoku/keymap.c
deleted file mode 100644
index 74df5e0fe1..0000000000
--- a/keyboards/3w6/keymaps/manna-harbour_miryoku/keymap.c
+++ /dev/null
@@ -1,17 +0,0 @@
-/* Copyright 2021 weteor
- *
- * 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/>.
- */
-
-// generated from users/manna-harbour_miryoku/miryoku.org -*- buffer-read-only: t -*-
diff --git a/keyboards/3w6/rev1/rules.mk b/keyboards/3w6/rev1/rules.mk
index 2194870d6b..b7988ce4f5 100644
--- a/keyboards/3w6/rev1/rules.mk
+++ b/keyboards/3w6/rev1/rules.mk
@@ -16,4 +16,4 @@ NO_USB_STARTUP_CHECK = yes
LTO_ENABLE = no
SRC += matrix.c
-QUANTUM_LIB_SRC += i2c_master.c
+I2C_DRIVER_REQUIRED = yes
diff --git a/keyboards/3w6/rev2/rules.mk b/keyboards/3w6/rev2/rules.mk
index 2194870d6b..b7988ce4f5 100644
--- a/keyboards/3w6/rev2/rules.mk
+++ b/keyboards/3w6/rev2/rules.mk
@@ -16,4 +16,4 @@ NO_USB_STARTUP_CHECK = yes
LTO_ENABLE = no
SRC += matrix.c
-QUANTUM_LIB_SRC += i2c_master.c
+I2C_DRIVER_REQUIRED = yes
diff --git a/keyboards/40percentclub/gherkin/keymaps/mjt/keymap.c b/keyboards/40percentclub/gherkin/keymaps/mjt/keymap.c
index 090fd1d296..3a5cef8fad 100644
--- a/keyboards/40percentclub/gherkin/keymaps/mjt/keymap.c
+++ b/keyboards/40percentclub/gherkin/keymaps/mjt/keymap.c
@@ -66,15 +66,12 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
#ifdef AUDIO_ENABLE
-float tone_startup[][2] = SONG(STARTUP_SOUND);
float tone_qwerty[][2] = SONG(QWERTY_SOUND);
float tone_dvorak[][2] = SONG(DVORAK_SOUND);
float tone_colemak[][2] = SONG(COLEMAK_SOUND);
float tone_plover[][2] = SONG(PLOVER_SOUND);
float tone_plover_gb[][2] = SONG(PLOVER_GOODBYE_SOUND);
-float music_scale[][2] = SONG(MUSIC_SCALE_SOUND);
-float tone_goodbye[][2] = SONG(GOODBYE_SOUND);
#endif
void persistant_default_layer_set(uint16_t default_layer) {
@@ -166,39 +163,9 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
return true;
}
-void matrix_init_user(void) {
- #ifdef AUDIO_ENABLE
- startup_user();
- #endif
+void matrix_scan_user(void) {
}
-#ifdef AUDIO_ENABLE
-
-void startup_user(void)
-{
- _delay_ms(20); // gets rid of tick
- PLAY_SONG(tone_startup);
-}
-
-void shutdown_user(void)
-{
- PLAY_SONG(tone_goodbye);
- _delay_ms(150);
- stop_all_notes();
-}
-
-void music_on_user(void)
-{
- music_scale_user();
-}
-
-void music_scale_user(void)
-{
- PLAY_SONG(music_scale);
-}
-
-#endif
-
//Tap Dance Definitions
tap_dance_action_t tap_dance_actions[] = {
//Tap once for Esc, twice for Caps Lock
diff --git a/keyboards/40percentclub/gherkin/keymaps/steno/keymap.c b/keyboards/40percentclub/gherkin/keymaps/steno/keymap.c
index 5f78ba1cde..ea473fa25f 100644
--- a/keyboards/40percentclub/gherkin/keymaps/steno/keymap.c
+++ b/keyboards/40percentclub/gherkin/keymaps/steno/keymap.c
@@ -1,5 +1,4 @@
#include QMK_KEYBOARD_H
-#include "keymap_steno.h"
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
LAYOUT_ortho_3x10(
diff --git a/keyboards/40percentclub/gherkin/keymaps/talljoe-gherkin/keymap.c b/keyboards/40percentclub/gherkin/keymaps/talljoe-gherkin/keymap.c
index 111264c378..927192c63c 100644
--- a/keyboards/40percentclub/gherkin/keymaps/talljoe-gherkin/keymap.c
+++ b/keyboards/40percentclub/gherkin/keymaps/talljoe-gherkin/keymap.c
@@ -1,5 +1,4 @@
#include QMK_KEYBOARD_H
-#include "keymap_steno.h"
#define ST_BOLT QK_STENO_BOLT
#define ST_GEM QK_STENO_GEMINI
diff --git a/keyboards/40percentclub/nano/keymaps/drashna/config.h b/keyboards/40percentclub/nano/keymaps/drashna/config.h
deleted file mode 100644
index 411ee8a81b..0000000000
--- a/keyboards/40percentclub/nano/keymaps/drashna/config.h
+++ /dev/null
@@ -1,22 +0,0 @@
-/* Copyright 2020 Christopher Courtney, aka Drashna Jael're (@drashna) <drashna@live.com>
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-#pragma once
-
-#define ANALOG_JOYSTICK_X_AXIS_PIN B4
-#define ANALOG_JOYSTICK_Y_AXIS_PIN B5
-
-#define ANALOG_JOYSTICK_CLICK_PIN E6
diff --git a/keyboards/40percentclub/nano/keymaps/drashna/keymap.c b/keyboards/40percentclub/nano/keymaps/drashna/keymap.c
deleted file mode 100644
index 04da4d16ec..0000000000
--- a/keyboards/40percentclub/nano/keymaps/drashna/keymap.c
+++ /dev/null
@@ -1,31 +0,0 @@
-/* Copyright 2020 Christopher Courtney, aka Drashna Jael're (@drashna) <drashna@live.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 "drashna.h"
-#include "analog.h"
-#include "pointing_device.h"
-
-#define KC_X0 LT(_FN, KC_ESC)
-
-// clang-format off
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [_QWERTY] = LAYOUT(
- KC_VOLU, KC_MPLY, KC_MPRV, QK_BOOT,
- KC_VOLD, KC_MUTE, KC_MNXT, QK_BOOT
- ),
-
-};
-// clang-format on
diff --git a/keyboards/40percentclub/nano/keymaps/drashna/rules.mk b/keyboards/40percentclub/nano/keymaps/drashna/rules.mk
deleted file mode 100644
index aa7966a8b5..0000000000
--- a/keyboards/40percentclub/nano/keymaps/drashna/rules.mk
+++ /dev/null
@@ -1,6 +0,0 @@
-POINTING_DEVICE_ENABLE = yes
-POINTING_DEVICE_DRIVER = analog_joystick
-RGBLIGHT_ENABLE = no
-CONSOLE_ENABLE = no
-
-BOOTLOADER = qmk-dfu
diff --git a/keyboards/40percentclub/ut47/rules.mk b/keyboards/40percentclub/ut47/rules.mk
index 3b1b719e14..6ba6aa5f6f 100644
--- a/keyboards/40percentclub/ut47/rules.mk
+++ b/keyboards/40percentclub/ut47/rules.mk
@@ -13,4 +13,4 @@ AUDIO_ENABLE = no # Audio output
# custom matrix setup
CUSTOM_MATRIX = yes
SRC += matrix.c
-QUANTUM_LIB_SRC += uart.c
+UART_DRIVER_REQUIRED = yes
diff --git a/keyboards/4pplet/eagle_viper_rep/rev_a/config.h b/keyboards/4pplet/eagle_viper_rep/rev_a/config.h
index 9bec945f24..350b9abad7 100644
--- a/keyboards/4pplet/eagle_viper_rep/rev_a/config.h
+++ b/keyboards/4pplet/eagle_viper_rep/rev_a/config.h
@@ -20,7 +20,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define BACKLIGHT_PWM_CHANNEL 4
/* Underglow */
-#define WS2812_SPI SPID1
+#define WS2812_SPI_DRIVER SPID1
#define WS2812_SPI_MOSI_PAL_MODE 0
#define WS2812_SPI_SCK_PIN A5
#define WS2812_SPI_SCK_PAL_MODE 0
@@ -41,6 +41,3 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define LAYER_3 A8
#define LAYER_4 A9
#define LAYER_5 B9
-
-/* Added extra layer for use of layer leds */
-#define DYNAMIC_KEYMAP_LAYER_COUNT 5
diff --git a/keyboards/4pplet/eagle_viper_rep/rev_a/info.json b/keyboards/4pplet/eagle_viper_rep/rev_a/info.json
index c08f53f7b7..baafb58153 100644
--- a/keyboards/4pplet/eagle_viper_rep/rev_a/info.json
+++ b/keyboards/4pplet/eagle_viper_rep/rev_a/info.json
@@ -13,6 +13,9 @@
"rows": ["A2", "A1", "B8", "A10", "C15", "A15", "B7", "B6", "C14", "C13"]
},
"diode_direction": "COL2ROW",
+ "dynamic_keymap": {
+ "layer_count": 5
+ },
"backlight": {
"pin": "A3",
"levels": 10,
diff --git a/keyboards/4pplet/eagle_viper_rep/rev_b/config.h b/keyboards/4pplet/eagle_viper_rep/rev_b/config.h
index 5d5eefda21..b5957e6f30 100644
--- a/keyboards/4pplet/eagle_viper_rep/rev_b/config.h
+++ b/keyboards/4pplet/eagle_viper_rep/rev_b/config.h
@@ -34,6 +34,3 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define LAYER_3 B0
#define LAYER_4 B9
#define LAYER_5 A9
-
-/* Added extra layer for use of layer leds */
-#define DYNAMIC_KEYMAP_LAYER_COUNT 5
diff --git a/keyboards/4pplet/eagle_viper_rep/rev_b/info.json b/keyboards/4pplet/eagle_viper_rep/rev_b/info.json
index ad7513c13d..2ebb260686 100644
--- a/keyboards/4pplet/eagle_viper_rep/rev_b/info.json
+++ b/keyboards/4pplet/eagle_viper_rep/rev_b/info.json
@@ -13,6 +13,9 @@
"rows": ["A2", "A1", "B8", "A10", "C15", "A15", "B7", "B6", "C14", "C13"]
},
"diode_direction": "COL2ROW",
+ "dynamic_keymap": {
+ "layer_count": 5
+ },
"backlight": {
"pin": "A6",
"levels": 6,
diff --git a/keyboards/4pplet/perk60_iso/rev_a/config.h b/keyboards/4pplet/perk60_iso/rev_a/config.h
index e033b16259..efad0a1718 100644
--- a/keyboards/4pplet/perk60_iso/rev_a/config.h
+++ b/keyboards/4pplet/perk60_iso/rev_a/config.h
@@ -21,10 +21,9 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
/* Locking resynchronize hack */
#define LOCKING_RESYNC_ENABLE
-#define DRIVER_ADDR_1 0b1010000
-#define DRIVER_COUNT 1
+#define IS31FL3733_I2C_ADDRESS_1 IS31FL3733_I2C_ADDRESS_GND_GND
#define RGB_MATRIX_LED_COUNT 62
-#define ISSI_PWM_FREQUENCY 0b010
+#define IS31FL3733_PWM_FREQUENCY IS31FL3733_PWM_FREQUENCY_26K7_HZ
#define RGB_MATRIX_DEFAULT_VAL 80
#define RGB_MATRIX_KEYPRESSES
diff --git a/keyboards/4pplet/perk60_iso/rev_a/rev_a.c b/keyboards/4pplet/perk60_iso/rev_a/rev_a.c
index 814a8f95d4..e3b8d71a90 100644
--- a/keyboards/4pplet/perk60_iso/rev_a/rev_a.c
+++ b/keyboards/4pplet/perk60_iso/rev_a/rev_a.c
@@ -17,7 +17,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#include "rev_a.h"
#ifdef RGB_MATRIX_ENABLE
-const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = {
+const is31fl3733_led_t PROGMEM g_is31fl3733_leds[RGB_MATRIX_LED_COUNT] = {
{ 0, K_2, J_2, L_2 }, //D402
{ 0, K_3, J_3, L_3 }, //D403
{ 0, K_4, J_4, L_4 }, //D404
diff --git a/keyboards/4pplet/waffling60/readme.md b/keyboards/4pplet/waffling60/readme.md
index acfa174eab..442de4d369 100644
--- a/keyboards/4pplet/waffling60/readme.md
+++ b/keyboards/4pplet/waffling60/readme.md
@@ -12,8 +12,8 @@ Make example for this keyboard (after setting up your build environment):
make 4pplet/waffling60/rev_a:default
make 4pplet/waffling60/rev_b:default
make 4pplet/waffling60/rev_c:default
-
make 4pplet/waffling60/rev_d:default
+ make 4pplet/waffling60/rev_e:default
make 4pplet/waffling60/rev_d_ansi:default
make 4pplet/waffling60/rev_d_iso:default
diff --git a/keyboards/4pplet/waffling60/rev_d/readme.md b/keyboards/4pplet/waffling60/rev_d/readme.md
index 3b6b9c94f2..092746325d 100644
--- a/keyboards/4pplet/waffling60/rev_d/readme.md
+++ b/keyboards/4pplet/waffling60/rev_d/readme.md
@@ -9,7 +9,7 @@ More info: https://geekhack.org/index.php?topic=103531.0
Make example for this keyboard (after setting up your build environment):
- make 4pplet/waffling60/rev_c:default
+ make 4pplet/waffling60/rev_d: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).
diff --git a/keyboards/4pplet/waffling60/rev_e/config.h b/keyboards/4pplet/waffling60/rev_e/config.h
new file mode 100644
index 0000000000..521ddf96a1
--- /dev/null
+++ b/keyboards/4pplet/waffling60/rev_e/config.h
@@ -0,0 +1,20 @@
+/*
+Copyright 2023 Stefan Sundin "4pplet" <mail@4pplet.com>
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program. If not, see <http://www.gnu.org/licenses/>.
+*/
+#pragma once
+
+#define WS2812_EXTERNAL_PULLUP
+
diff --git a/keyboards/4pplet/waffling60/rev_e/info.json b/keyboards/4pplet/waffling60/rev_e/info.json
new file mode 100644
index 0000000000..3a75cf3d06
--- /dev/null
+++ b/keyboards/4pplet/waffling60/rev_e/info.json
@@ -0,0 +1,917 @@
+{
+ "manufacturer": "4pplet",
+ "keyboard_name": "waffling60 Rev E",
+ "maintainer": "4pplet",
+ "bootloader": "stm32-dfu",
+ "diode_direction": "COL2ROW",
+ "encoder": {
+ "rotary": [
+ {"pin_a": "A2", "pin_b": "A1", "resolution": 2}
+ ]
+ },
+ "features": {
+ "bootmagic": true,
+ "command": false,
+ "console": false,
+ "extrakey": true,
+ "key_lock": true,
+ "mousekey": false,
+ "nkro": true,
+ "rgblight": true
+ },
+ "matrix_pins": {
+ "cols": ["B2", "A5", "A4", "A3", "F1", "F0", "C15", "C14", "C13", "B9", "B8", "B7", "A15", "B3"],
+ "rows": ["B14", "A9", "B6", "B5", "B4"]
+ },
+ "processor": "STM32F072",
+ "rgblight": {
+ "animations": {
+ "alternating": true,
+ "breathing": true,
+ "christmas": true,
+ "knight": true,
+ "rainbow_mood": true,
+ "rainbow_swirl": true,
+ "rgb_test": true,
+ "snake": true,
+ "static_gradient": true,
+ "twinkle": true
+ },
+ "led_count": 17
+ },
+ "url": "https://github.com/4pplet/waffling60",
+ "usb": {
+ "device_version": "0.0.5",
+ "pid": "0x0014",
+ "vid": "0x4444"
+ },
+ "ws2812": {
+ "pin": "A8"
+ },
+ "community_layouts": ["60_ansi", "60_ansi_split_bs_rshift", "60_ansi_tsangan", "60_hhkb", "60_iso", "60_iso_split_bs_rshift", "60_iso_tsangan", "60_tsangan_hhkb"],
+ "layouts": {
+ "LAYOUT_60_ansi": {
+ "layout": [
+ {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0},
+ {"label": "!", "matrix": [0, 1], "x": 1, "y": 0},
+ {"label": "@", "matrix": [0, 2], "x": 2, "y": 0},
+ {"label": "#", "matrix": [0, 3], "x": 3, "y": 0},
+ {"label": "$", "matrix": [0, 4], "x": 4, "y": 0},
+ {"label": "%", "matrix": [0, 5], "x": 5, "y": 0},
+ {"label": "^", "matrix": [0, 6], "x": 6, "y": 0},
+ {"label": "&", "matrix": [0, 7], "x": 7, "y": 0},
+ {"label": "*", "matrix": [0, 8], "x": 8, "y": 0},
+ {"label": "(", "matrix": [0, 9], "x": 9, "y": 0},
+ {"label": ")", "matrix": [0, 10], "x": 10, "y": 0},
+ {"label": "_", "matrix": [0, 11], "x": 11, "y": 0},
+ {"label": "+", "matrix": [0, 12], "x": 12, "y": 0},
+ {"label": "Backspace", "matrix": [2, 13], "x": 13, "y": 0, "w": 2},
+ {"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
+ {"label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1},
+ {"label": "W", "matrix": [1, 2], "x": 2.5, "y": 1},
+ {"label": "E", "matrix": [1, 3], "x": 3.5, "y": 1},
+ {"label": "R", "matrix": [1, 4], "x": 4.5, "y": 1},
+ {"label": "T", "matrix": [1, 5], "x": 5.5, "y": 1},
+ {"label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1},
+ {"label": "U", "matrix": [1, 7], "x": 7.5, "y": 1},
+ {"label": "I", "matrix": [1, 8], "x": 8.5, "y": 1},
+ {"label": "O", "matrix": [1, 9], "x": 9.5, "y": 1},
+ {"label": "P", "matrix": [1, 10], "x": 10.5, "y": 1},
+ {"label": "{", "matrix": [1, 11], "x": 11.5, "y": 1},
+ {"label": "}", "matrix": [1, 12], "x": 12.5, "y": 1},
+ {"label": "|", "matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5},
+ {"label": "Caps Lock", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
+ {"label": "A", "matrix": [2, 1], "x": 1.75, "y": 2},
+ {"label": "S", "matrix": [2, 2], "x": 2.75, "y": 2},
+ {"label": "D", "matrix": [2, 3], "x": 3.75, "y": 2},
+ {"label": "F", "matrix": [2, 4], "x": 4.75, "y": 2},
+ {"label": "G", "matrix": [2, 5], "x": 5.75, "y": 2},
+ {"label": "H", "matrix": [2, 6], "x": 6.75, "y": 2},
+ {"label": "J", "matrix": [2, 7], "x": 7.75, "y": 2},
+ {"label": "K", "matrix": [2, 8], "x": 8.75, "y": 2},
+ {"label": "L", "matrix": [2, 9], "x": 9.75, "y": 2},
+ {"label": ":", "matrix": [2, 10], "x": 10.75, "y": 2},
+ {"label": "\"", "matrix": [2, 11], "x": 11.75, "y": 2},
+ {"label": "Enter", "matrix": [3, 13], "x": 12.75, "y": 2, "w": 2.25},
+ {"label": "Shift", "matrix": [3, 0], "x": 0, "y": 3, "w": 2.25},
+ {"label": "Z", "matrix": [3, 2], "x": 2.25, "y": 3},
+ {"label": "X", "matrix": [3, 3], "x": 3.25, "y": 3},
+ {"label": "C", "matrix": [3, 4], "x": 4.25, "y": 3},
+ {"label": "V", "matrix": [3, 5], "x": 5.25, "y": 3},
+ {"label": "B", "matrix": [3, 6], "x": 6.25, "y": 3},
+ {"label": "N", "matrix": [3, 7], "x": 7.25, "y": 3},
+ {"label": "M", "matrix": [3, 8], "x": 8.25, "y": 3},
+ {"label": "<", "matrix": [3, 9], "x": 9.25, "y": 3},
+ {"label": ">", "matrix": [3, 10], "x": 10.25, "y": 3},
+ {"label": "?", "matrix": [3, 11], "x": 11.25, "y": 3},
+ {"label": "Shift", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 2.75},
+ {"label": "Ctrl", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.25},
+ {"label": "Win", "matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25},
+ {"label": "Alt", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25},
+ {"label": "Space", "matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25},
+ {"label": "Alt", "matrix": [4, 9], "x": 10, "y": 4, "w": 1.25},
+ {"label": "Win", "matrix": [4, 10], "x": 11.25, "y": 4, "w": 1.25},
+ {"label": "Menu", "matrix": [4, 11], "x": 12.5, "y": 4, "w": 1.25},
+ {"label": "Fn", "matrix": [4, 12], "x": 13.75, "y": 4, "w": 1.25}
+ ]
+ },
+ "LAYOUT_60_ansi_split_bs_rshift": {
+ "layout": [
+ {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0},
+ {"label": "!", "matrix": [0, 1], "x": 1, "y": 0},
+ {"label": "@", "matrix": [0, 2], "x": 2, "y": 0},
+ {"label": "#", "matrix": [0, 3], "x": 3, "y": 0},
+ {"label": "$", "matrix": [0, 4], "x": 4, "y": 0},
+ {"label": "%", "matrix": [0, 5], "x": 5, "y": 0},
+ {"label": "^", "matrix": [0, 6], "x": 6, "y": 0},
+ {"label": "&", "matrix": [0, 7], "x": 7, "y": 0},
+ {"label": "*", "matrix": [0, 8], "x": 8, "y": 0},
+ {"label": "(", "matrix": [0, 9], "x": 9, "y": 0},
+ {"label": ")", "matrix": [0, 10], "x": 10, "y": 0},
+ {"label": "_", "matrix": [0, 11], "x": 11, "y": 0},
+ {"label": "+", "matrix": [0, 12], "x": 12, "y": 0},
+ {"label": "|", "matrix": [0, 13], "x": 13, "y": 0},
+ {"label": "~", "matrix": [2, 13], "x": 14, "y": 0},
+ {"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
+ {"label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1},
+ {"label": "W", "matrix": [1, 2], "x": 2.5, "y": 1},
+ {"label": "E", "matrix": [1, 3], "x": 3.5, "y": 1},
+ {"label": "R", "matrix": [1, 4], "x": 4.5, "y": 1},
+ {"label": "T", "matrix": [1, 5], "x": 5.5, "y": 1},
+ {"label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1},
+ {"label": "U", "matrix": [1, 7], "x": 7.5, "y": 1},
+ {"label": "I", "matrix": [1, 8], "x": 8.5, "y": 1},
+ {"label": "O", "matrix": [1, 9], "x": 9.5, "y": 1},
+ {"label": "P", "matrix": [1, 10], "x": 10.5, "y": 1},
+ {"label": "{", "matrix": [1, 11], "x": 11.5, "y": 1},
+ {"label": "}", "matrix": [1, 12], "x": 12.5, "y": 1},
+ {"label": "|", "matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5},
+ {"label": "Caps Lock", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
+ {"label": "A", "matrix": [2, 1], "x": 1.75, "y": 2},
+ {"label": "S", "matrix": [2, 2], "x": 2.75, "y": 2},
+ {"label": "D", "matrix": [2, 3], "x": 3.75, "y": 2},
+ {"label": "F", "matrix": [2, 4], "x": 4.75, "y": 2},
+ {"label": "G", "matrix": [2, 5], "x": 5.75, "y": 2},
+ {"label": "H", "matrix": [2, 6], "x": 6.75, "y": 2},
+ {"label": "J", "matrix": [2, 7], "x": 7.75, "y": 2},
+ {"label": "K", "matrix": [2, 8], "x": 8.75, "y": 2},
+ {"label": "L", "matrix": [2, 9], "x": 9.75, "y": 2},
+ {"label": ":", "matrix": [2, 10], "x": 10.75, "y": 2},
+ {"label": "\"", "matrix": [2, 11], "x": 11.75, "y": 2},
+ {"label": "Enter", "matrix": [3, 13], "x": 12.75, "y": 2, "w": 2.25},
+ {"label": "Shift", "matrix": [3, 0], "x": 0, "y": 3, "w": 2.25},
+ {"label": "Z", "matrix": [3, 2], "x": 2.25, "y": 3},
+ {"label": "X", "matrix": [3, 3], "x": 3.25, "y": 3},
+ {"label": "C", "matrix": [3, 4], "x": 4.25, "y": 3},
+ {"label": "V", "matrix": [3, 5], "x": 5.25, "y": 3},
+ {"label": "B", "matrix": [3, 6], "x": 6.25, "y": 3},
+ {"label": "N", "matrix": [3, 7], "x": 7.25, "y": 3},
+ {"label": "M", "matrix": [3, 8], "x": 8.25, "y": 3},
+ {"label": "<", "matrix": [3, 9], "x": 9.25, "y": 3},
+ {"label": ">", "matrix": [3, 10], "x": 10.25, "y": 3},
+ {"label": "?", "matrix": [3, 11], "x": 11.25, "y": 3},
+ {"label": "Shift", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75},
+ {"label": "Fn", "matrix": [4, 13], "x": 14, "y": 3},
+ {"label": "Ctrl", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.25},
+ {"label": "Win", "matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25},
+ {"label": "Alt", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25},
+ {"label": "Space", "matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25},
+ {"label": "Alt", "matrix": [4, 9], "x": 10, "y": 4, "w": 1.25},
+ {"label": "Win", "matrix": [4, 10], "x": 11.25, "y": 4, "w": 1.25},
+ {"label": "Menu", "matrix": [4, 11], "x": 12.5, "y": 4, "w": 1.25},
+ {"label": "Fn", "matrix": [4, 12], "x": 13.75, "y": 4, "w": 1.25}
+ ]
+ },
+ "LAYOUT_60_ansi_tsangan": {
+ "layout": [
+ {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0},
+ {"label": "!", "matrix": [0, 1], "x": 1, "y": 0},
+ {"label": "@", "matrix": [0, 2], "x": 2, "y": 0},
+ {"label": "#", "matrix": [0, 3], "x": 3, "y": 0},
+ {"label": "$", "matrix": [0, 4], "x": 4, "y": 0},
+ {"label": "%", "matrix": [0, 5], "x": 5, "y": 0},
+ {"label": "^", "matrix": [0, 6], "x": 6, "y": 0},
+ {"label": "&", "matrix": [0, 7], "x": 7, "y": 0},
+ {"label": "*", "matrix": [0, 8], "x": 8, "y": 0},
+ {"label": "(", "matrix": [0, 9], "x": 9, "y": 0},
+ {"label": ")", "matrix": [0, 10], "x": 10, "y": 0},
+ {"label": "_", "matrix": [0, 11], "x": 11, "y": 0},
+ {"label": "+", "matrix": [0, 12], "x": 12, "y": 0},
+ {"label": "Backspace", "matrix": [2, 13], "x": 13, "y": 0, "w": 2},
+ {"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
+ {"label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1},
+ {"label": "W", "matrix": [1, 2], "x": 2.5, "y": 1},
+ {"label": "E", "matrix": [1, 3], "x": 3.5, "y": 1},
+ {"label": "R", "matrix": [1, 4], "x": 4.5, "y": 1},
+ {"label": "T", "matrix": [1, 5], "x": 5.5, "y": 1},
+ {"label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1},
+ {"label": "U", "matrix": [1, 7], "x": 7.5, "y": 1},
+ {"label": "I", "matrix": [1, 8], "x": 8.5, "y": 1},
+ {"label": "O", "matrix": [1, 9], "x": 9.5, "y": 1},
+ {"label": "P", "matrix": [1, 10], "x": 10.5, "y": 1},
+ {"label": "{", "matrix": [1, 11], "x": 11.5, "y": 1},
+ {"label": "}", "matrix": [1, 12], "x": 12.5, "y": 1},
+ {"label": "|", "matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5},
+ {"label": "Caps Lock", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
+ {"label": "A", "matrix": [2, 1], "x": 1.75, "y": 2},
+ {"label": "S", "matrix": [2, 2], "x": 2.75, "y": 2},
+ {"label": "D", "matrix": [2, 3], "x": 3.75, "y": 2},
+ {"label": "F", "matrix": [2, 4], "x": 4.75, "y": 2},
+ {"label": "G", "matrix": [2, 5], "x": 5.75, "y": 2},
+ {"label": "H", "matrix": [2, 6], "x": 6.75, "y": 2},
+ {"label": "J", "matrix": [2, 7], "x": 7.75, "y": 2},
+ {"label": "K", "matrix": [2, 8], "x": 8.75, "y": 2},
+ {"label": "L", "matrix": [2, 9], "x": 9.75, "y": 2},
+ {"label": ":", "matrix": [2, 10], "x": 10.75, "y": 2},
+ {"label": "\"", "matrix": [2, 11], "x": 11.75, "y": 2},
+ {"label": "Enter", "matrix": [3, 13], "x": 12.75, "y": 2, "w": 2.25},
+ {"label": "Shift", "matrix": [3, 0], "x": 0, "y": 3, "w": 2.25},
+ {"label": "Z", "matrix": [3, 2], "x": 2.25, "y": 3},
+ {"label": "X", "matrix": [3, 3], "x": 3.25, "y": 3},
+ {"label": "C", "matrix": [3, 4], "x": 4.25, "y": 3},
+ {"label": "V", "matrix": [3, 5], "x": 5.25, "y": 3},
+ {"label": "B", "matrix": [3, 6], "x": 6.25, "y": 3},
+ {"label": "N", "matrix": [3, 7], "x": 7.25, "y": 3},
+ {"label": "M", "matrix": [3, 8], "x": 8.25, "y": 3},
+ {"label": "<", "matrix": [3, 9], "x": 9.25, "y": 3},
+ {"label": ">", "matrix": [3, 10], "x": 10.25, "y": 3},
+ {"label": "?", "matrix": [3, 11], "x": 11.25, "y": 3},
+ {"label": "Shift", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 2.75},
+ {"label": "Ctrl", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.5},
+ {"label": "Win", "matrix": [4, 1], "x": 1.5, "y": 4},
+ {"label": "Alt", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5},
+ {"label": "Space", "matrix": [4, 6], "x": 4, "y": 4, "w": 7},
+ {"label": "Alt", "matrix": [4, 10], "x": 11, "y": 4, "w": 1.5},
+ {"label": "Win", "matrix": [4, 11], "x": 12.5, "y": 4},
+ {"label": "Ctrl", "matrix": [4, 12], "x": 13.5, "y": 4, "w": 1.5}
+ ]
+ },
+ "LAYOUT_60_hhkb": {
+ "layout": [
+ {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0},
+ {"label": "!", "matrix": [0, 1], "x": 1, "y": 0},
+ {"label": "@", "matrix": [0, 2], "x": 2, "y": 0},
+ {"label": "#", "matrix": [0, 3], "x": 3, "y": 0},
+ {"label": "$", "matrix": [0, 4], "x": 4, "y": 0},
+ {"label": "%", "matrix": [0, 5], "x": 5, "y": 0},
+ {"label": "^", "matrix": [0, 6], "x": 6, "y": 0},
+ {"label": "&", "matrix": [0, 7], "x": 7, "y": 0},
+ {"label": "*", "matrix": [0, 8], "x": 8, "y": 0},
+ {"label": "(", "matrix": [0, 9], "x": 9, "y": 0},
+ {"label": ")", "matrix": [0, 10], "x": 10, "y": 0},
+ {"label": "_", "matrix": [0, 11], "x": 11, "y": 0},
+ {"label": "+", "matrix": [0, 12], "x": 12, "y": 0},
+ {"label": "|", "matrix": [0, 13], "x": 13, "y": 0},
+ {"label": "~", "matrix": [2, 13], "x": 14, "y": 0},
+ {"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
+ {"label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1},
+ {"label": "W", "matrix": [1, 2], "x": 2.5, "y": 1},
+ {"label": "E", "matrix": [1, 3], "x": 3.5, "y": 1},
+ {"label": "R", "matrix": [1, 4], "x": 4.5, "y": 1},
+ {"label": "T", "matrix": [1, 5], "x": 5.5, "y": 1},
+ {"label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1},
+ {"label": "U", "matrix": [1, 7], "x": 7.5, "y": 1},
+ {"label": "I", "matrix": [1, 8], "x": 8.5, "y": 1},
+ {"label": "O", "matrix": [1, 9], "x": 9.5, "y": 1},
+ {"label": "P", "matrix": [1, 10], "x": 10.5, "y": 1},
+ {"label": "{", "matrix": [1, 11], "x": 11.5, "y": 1},
+ {"label": "}", "matrix": [1, 12], "x": 12.5, "y": 1},
+ {"label": "|", "matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5},
+ {"label": "Caps Lock", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
+ {"label": "A", "matrix": [2, 1], "x": 1.75, "y": 2},
+ {"label": "S", "matrix": [2, 2], "x": 2.75, "y": 2},
+ {"label": "D", "matrix": [2, 3], "x": 3.75, "y": 2},
+ {"label": "F", "matrix": [2, 4], "x": 4.75, "y": 2},
+ {"label": "G", "matrix": [2, 5], "x": 5.75, "y": 2},
+ {"label": "H", "matrix": [2, 6], "x": 6.75, "y": 2},
+ {"label": "J", "matrix": [2, 7], "x": 7.75, "y": 2},
+ {"label": "K", "matrix": [2, 8], "x": 8.75, "y": 2},
+ {"label": "L", "matrix": [2, 9], "x": 9.75, "y": 2},
+ {"label": ":", "matrix": [2, 10], "x": 10.75, "y": 2},
+ {"label": "\"", "matrix": [2, 11], "x": 11.75, "y": 2},
+ {"label": "Enter", "matrix": [3, 13], "x": 12.75, "y": 2, "w": 2.25},
+ {"label": "Shift", "matrix": [3, 0], "x": 0, "y": 3, "w": 2.25},
+ {"label": "Z", "matrix": [3, 2], "x": 2.25, "y": 3},
+ {"label": "X", "matrix": [3, 3], "x": 3.25, "y": 3},
+ {"label": "C", "matrix": [3, 4], "x": 4.25, "y": 3},
+ {"label": "V", "matrix": [3, 5], "x": 5.25, "y": 3},
+ {"label": "B", "matrix": [3, 6], "x": 6.25, "y": 3},
+ {"label": "N", "matrix": [3, 7], "x": 7.25, "y": 3},
+ {"label": "M", "matrix": [3, 8], "x": 8.25, "y": 3},
+ {"label": "<", "matrix": [3, 9], "x": 9.25, "y": 3},
+ {"label": ">", "matrix": [3, 10], "x": 10.25, "y": 3},
+ {"label": "?", "matrix": [3, 11], "x": 11.25, "y": 3},
+ {"label": "Shift", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75},
+ {"label": "Fn", "matrix": [4, 13], "x": 14, "y": 3},
+ {"label": "Win", "matrix": [4, 1], "x": 1.5, "y": 4},
+ {"label": "Alt", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5},
+ {"label": "Space", "matrix": [4, 6], "x": 4, "y": 4, "w": 7},
+ {"label": "Alt", "matrix": [4, 10], "x": 11, "y": 4, "w": 1.5},
+ {"label": "Win", "matrix": [4, 11], "x": 12.5, "y": 4}
+ ]
+ },
+ "LAYOUT_60_iso": {
+ "layout": [
+ {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0},
+ {"label": "!", "matrix": [0, 1], "x": 1, "y": 0},
+ {"label": "@", "matrix": [0, 2], "x": 2, "y": 0},
+ {"label": "#", "matrix": [0, 3], "x": 3, "y": 0},
+ {"label": "$", "matrix": [0, 4], "x": 4, "y": 0},
+ {"label": "%", "matrix": [0, 5], "x": 5, "y": 0},
+ {"label": "^", "matrix": [0, 6], "x": 6, "y": 0},
+ {"label": "&", "matrix": [0, 7], "x": 7, "y": 0},
+ {"label": "*", "matrix": [0, 8], "x": 8, "y": 0},
+ {"label": "(", "matrix": [0, 9], "x": 9, "y": 0},
+ {"label": ")", "matrix": [0, 10], "x": 10, "y": 0},
+ {"label": "_", "matrix": [0, 11], "x": 11, "y": 0},
+ {"label": "+", "matrix": [0, 12], "x": 12, "y": 0},
+ {"label": "Backspace", "matrix": [2, 13], "x": 13, "y": 0, "w": 2},
+ {"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
+ {"label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1},
+ {"label": "W", "matrix": [1, 2], "x": 2.5, "y": 1},
+ {"label": "E", "matrix": [1, 3], "x": 3.5, "y": 1},
+ {"label": "R", "matrix": [1, 4], "x": 4.5, "y": 1},
+ {"label": "T", "matrix": [1, 5], "x": 5.5, "y": 1},
+ {"label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1},
+ {"label": "U", "matrix": [1, 7], "x": 7.5, "y": 1},
+ {"label": "I", "matrix": [1, 8], "x": 8.5, "y": 1},
+ {"label": "O", "matrix": [1, 9], "x": 9.5, "y": 1},
+ {"label": "P", "matrix": [1, 10], "x": 10.5, "y": 1},
+ {"label": "{", "matrix": [1, 11], "x": 11.5, "y": 1},
+ {"label": "}", "matrix": [1, 12], "x": 12.5, "y": 1},
+ {"label": "Enter", "matrix": [3, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 2},
+ {"label": "Caps Lock", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
+ {"label": "A", "matrix": [2, 1], "x": 1.75, "y": 2},
+ {"label": "S", "matrix": [2, 2], "x": 2.75, "y": 2},
+ {"label": "D", "matrix": [2, 3], "x": 3.75, "y": 2},
+ {"label": "F", "matrix": [2, 4], "x": 4.75, "y": 2},
+ {"label": "G", "matrix": [2, 5], "x": 5.75, "y": 2},
+ {"label": "H", "matrix": [2, 6], "x": 6.75, "y": 2},
+ {"label": "J", "matrix": [2, 7], "x": 7.75, "y": 2},
+ {"label": "K", "matrix": [2, 8], "x": 8.75, "y": 2},
+ {"label": "L", "matrix": [2, 9], "x": 9.75, "y": 2},
+ {"label": ":", "matrix": [2, 10], "x": 10.75, "y": 2},
+ {"label": "\"", "matrix": [2, 11], "x": 11.75, "y": 2},
+ {"label": "NUHS", "matrix": [2, 12], "x": 12.75, "y": 2},
+ {"label": "Shift", "matrix": [3, 0], "x": 0, "y": 3, "w": 1.25},
+ {"label": "NUBS", "matrix": [3, 1], "x": 1.25, "y": 3},
+ {"label": "Z", "matrix": [3, 2], "x": 2.25, "y": 3},
+ {"label": "X", "matrix": [3, 3], "x": 3.25, "y": 3},
+ {"label": "C", "matrix": [3, 4], "x": 4.25, "y": 3},
+ {"label": "V", "matrix": [3, 5], "x": 5.25, "y": 3},
+ {"label": "B", "matrix": [3, 6], "x": 6.25, "y": 3},
+ {"label": "N", "matrix": [3, 7], "x": 7.25, "y": 3},
+ {"label": "M", "matrix": [3, 8], "x": 8.25, "y": 3},
+ {"label": "<", "matrix": [3, 9], "x": 9.25, "y": 3},
+ {"label": ">", "matrix": [3, 10], "x": 10.25, "y": 3},
+ {"label": "?", "matrix": [3, 11], "x": 11.25, "y": 3},
+ {"label": "Shift", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 2.75},
+ {"label": "Ctrl", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.25},
+ {"label": "Win", "matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25},
+ {"label": "Alt", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25},
+ {"label": "Space", "matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25},
+ {"label": "Alt", "matrix": [4, 9], "x": 10, "y": 4, "w": 1.25},
+ {"label": "Win", "matrix": [4, 10], "x": 11.25, "y": 4, "w": 1.25},
+ {"label": "Menu", "matrix": [4, 11], "x": 12.5, "y": 4, "w": 1.25},
+ {"label": "Fn", "matrix": [4, 12], "x": 13.75, "y": 4, "w": 1.25}
+ ]
+ },
+ "LAYOUT_60_iso_split_bs_rshift": {
+ "layout": [
+ {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0},
+ {"label": "!", "matrix": [0, 1], "x": 1, "y": 0},
+ {"label": "@", "matrix": [0, 2], "x": 2, "y": 0},
+ {"label": "#", "matrix": [0, 3], "x": 3, "y": 0},
+ {"label": "$", "matrix": [0, 4], "x": 4, "y": 0},
+ {"label": "%", "matrix": [0, 5], "x": 5, "y": 0},
+ {"label": "^", "matrix": [0, 6], "x": 6, "y": 0},
+ {"label": "&", "matrix": [0, 7], "x": 7, "y": 0},
+ {"label": "*", "matrix": [0, 8], "x": 8, "y": 0},
+ {"label": "(", "matrix": [0, 9], "x": 9, "y": 0},
+ {"label": ")", "matrix": [0, 10], "x": 10, "y": 0},
+ {"label": "_", "matrix": [0, 11], "x": 11, "y": 0},
+ {"label": "+", "matrix": [0, 12], "x": 12, "y": 0},
+ {"label": "|", "matrix": [0, 13], "x": 13, "y": 0},
+ {"label": "~", "matrix": [2, 13], "x": 14, "y": 0},
+ {"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
+ {"label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1},
+ {"label": "W", "matrix": [1, 2], "x": 2.5, "y": 1},
+ {"label": "E", "matrix": [1, 3], "x": 3.5, "y": 1},
+ {"label": "R", "matrix": [1, 4], "x": 4.5, "y": 1},
+ {"label": "T", "matrix": [1, 5], "x": 5.5, "y": 1},
+ {"label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1},
+ {"label": "U", "matrix": [1, 7], "x": 7.5, "y": 1},
+ {"label": "I", "matrix": [1, 8], "x": 8.5, "y": 1},
+ {"label": "O", "matrix": [1, 9], "x": 9.5, "y": 1},
+ {"label": "P", "matrix": [1, 10], "x": 10.5, "y": 1},
+ {"label": "{", "matrix": [1, 11], "x": 11.5, "y": 1},
+ {"label": "}", "matrix": [1, 12], "x": 12.5, "y": 1},
+ {"label": "Enter", "matrix": [3, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 2},
+ {"label": "Caps Lock", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
+ {"label": "A", "matrix": [2, 1], "x": 1.75, "y": 2},
+ {"label": "S", "matrix": [2, 2], "x": 2.75, "y": 2},
+ {"label": "D", "matrix": [2, 3], "x": 3.75, "y": 2},
+ {"label": "F", "matrix": [2, 4], "x": 4.75, "y": 2},
+ {"label": "G", "matrix": [2, 5], "x": 5.75, "y": 2},
+ {"label": "H", "matrix": [2, 6], "x": 6.75, "y": 2},
+ {"label": "J", "matrix": [2, 7], "x": 7.75, "y": 2},
+ {"label": "K", "matrix": [2, 8], "x": 8.75, "y": 2},
+ {"label": "L", "matrix": [2, 9], "x": 9.75, "y": 2},
+ {"label": ":", "matrix": [2, 10], "x": 10.75, "y": 2},
+ {"label": "\"", "matrix": [2, 11], "x": 11.75, "y": 2},
+ {"label": "NUHS", "matrix": [2, 12], "x": 12.75, "y": 2},
+ {"label": "Shift", "matrix": [3, 0], "x": 0, "y": 3, "w": 1.25},
+ {"label": "NUBS", "matrix": [3, 1], "x": 1.25, "y": 3},
+ {"label": "Z", "matrix": [3, 2], "x": 2.25, "y": 3},
+ {"label": "X", "matrix": [3, 3], "x": 3.25, "y": 3},
+ {"label": "C", "matrix": [3, 4], "x": 4.25, "y": 3},
+ {"label": "V", "matrix": [3, 5], "x": 5.25, "y": 3},
+ {"label": "B", "matrix": [3, 6], "x": 6.25, "y": 3},
+ {"label": "N", "matrix": [3, 7], "x": 7.25, "y": 3},
+ {"label": "M", "matrix": [3, 8], "x": 8.25, "y": 3},
+ {"label": "<", "matrix": [3, 9], "x": 9.25, "y": 3},
+ {"label": ">", "matrix": [3, 10], "x": 10.25, "y": 3},
+ {"label": "?", "matrix": [3, 11], "x": 11.25, "y": 3},
+ {"label": "Shift", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75},
+ {"label": "Fn", "matrix": [4, 13], "x": 14, "y": 3},
+ {"label": "Ctrl", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.25},
+ {"label": "Win", "matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25},
+ {"label": "Alt", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25},
+ {"label": "Space", "matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25},
+ {"label": "Alt", "matrix": [4, 9], "x": 10, "y": 4, "w": 1.25},
+ {"label": "Win", "matrix": [4, 10], "x": 11.25, "y": 4, "w": 1.25},
+ {"label": "Menu", "matrix": [4, 11], "x": 12.5, "y": 4, "w": 1.25},
+ {"label": "Fn", "matrix": [4, 12], "x": 13.75, "y": 4, "w": 1.25}
+ ]
+ },
+ "LAYOUT_60_iso_tsangan": {
+ "layout": [
+ {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0},
+ {"label": "!", "matrix": [0, 1], "x": 1, "y": 0},
+ {"label": "@", "matrix": [0, 2], "x": 2, "y": 0},
+ {"label": "#", "matrix": [0, 3], "x": 3, "y": 0},
+ {"label": "$", "matrix": [0, 4], "x": 4, "y": 0},
+ {"label": "%", "matrix": [0, 5], "x": 5, "y": 0},
+ {"label": "^", "matrix": [0, 6], "x": 6, "y": 0},
+ {"label": "&", "matrix": [0, 7], "x": 7, "y": 0},
+ {"label": "*", "matrix": [0, 8], "x": 8, "y": 0},
+ {"label": "(", "matrix": [0, 9], "x": 9, "y": 0},
+ {"label": ")", "matrix": [0, 10], "x": 10, "y": 0},
+ {"label": "_", "matrix": [0, 11], "x": 11, "y": 0},
+ {"label": "+", "matrix": [0, 12], "x": 12, "y": 0},
+ {"label": "Backspace", "matrix": [2, 13], "x": 13, "y": 0, "w": 2},
+ {"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
+ {"label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1},
+ {"label": "W", "matrix": [1, 2], "x": 2.5, "y": 1},
+ {"label": "E", "matrix": [1, 3], "x": 3.5, "y": 1},
+ {"label": "R", "matrix": [1, 4], "x": 4.5, "y": 1},
+ {"label": "T", "matrix": [1, 5], "x": 5.5, "y": 1},
+ {"label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1},
+ {"label": "U", "matrix": [1, 7], "x": 7.5, "y": 1},
+ {"label": "I", "matrix": [1, 8], "x": 8.5, "y": 1},
+ {"label": "O", "matrix": [1, 9], "x": 9.5, "y": 1},
+ {"label": "P", "matrix": [1, 10], "x": 10.5, "y": 1},
+ {"label": "{", "matrix": [1, 11], "x": 11.5, "y": 1},
+ {"label": "}", "matrix": [1, 12], "x": 12.5, "y": 1},
+ {"label": "Enter", "matrix": [3, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 2},
+ {"label": "Caps Lock", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
+ {"label": "A", "matrix": [2, 1], "x": 1.75, "y": 2},
+ {"label": "S", "matrix": [2, 2], "x": 2.75, "y": 2},
+ {"label": "D", "matrix": [2, 3], "x": 3.75, "y": 2},
+ {"label": "F", "matrix": [2, 4], "x": 4.75, "y": 2},
+ {"label": "G", "matrix": [2, 5], "x": 5.75, "y": 2},
+ {"label": "H", "matrix": [2, 6], "x": 6.75, "y": 2},
+ {"label": "J", "matrix": [2, 7], "x": 7.75, "y": 2},
+ {"label": "K", "matrix": [2, 8], "x": 8.75, "y": 2},
+ {"label": "L", "matrix": [2, 9], "x": 9.75, "y": 2},
+ {"label": ":", "matrix": [2, 10], "x": 10.75, "y": 2},
+ {"label": "\"", "matrix": [2, 11], "x": 11.75, "y": 2},
+ {"label": "NUHS", "matrix": [2, 12], "x": 12.75, "y": 2},
+ {"label": "Shift", "matrix": [3, 0], "x": 0, "y": 3, "w": 1.25},
+ {"label": "NUBS", "matrix": [3, 1], "x": 1.25, "y": 3},
+ {"label": "Z", "matrix": [3, 2], "x": 2.25, "y": 3},
+ {"label": "X", "matrix": [3, 3], "x": 3.25, "y": 3},
+ {"label": "C", "matrix": [3, 4], "x": 4.25, "y": 3},
+ {"label": "V", "matrix": [3, 5], "x": 5.25, "y": 3},
+ {"label": "B", "matrix": [3, 6], "x": 6.25, "y": 3},
+ {"label": "N", "matrix": [3, 7], "x": 7.25, "y": 3},
+ {"label": "M", "matrix": [3, 8], "x": 8.25, "y": 3},
+ {"label": "<", "matrix": [3, 9], "x": 9.25, "y": 3},
+ {"label": ">", "matrix": [3, 10], "x": 10.25, "y": 3},
+ {"label": "?", "matrix": [3, 11], "x": 11.25, "y": 3},
+ {"label": "Shift", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 2.75},
+ {"label": "Ctrl", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.5},
+ {"label": "Win", "matrix": [4, 1], "x": 1.5, "y": 4},
+ {"label": "Alt", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5},
+ {"label": "Space", "matrix": [4, 6], "x": 4, "y": 4, "w": 7},
+ {"label": "Alt", "matrix": [4, 10], "x": 11, "y": 4, "w": 1.5},
+ {"label": "Win", "matrix": [4, 11], "x": 12.5, "y": 4},
+ {"label": "Ctrl", "matrix": [4, 12], "x": 13.5, "y": 4, "w": 1.5}
+ ]
+ },
+ "LAYOUT_60_tsangan_hhkb": {
+ "layout": [
+ {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0},
+ {"label": "!", "matrix": [0, 1], "x": 1, "y": 0},
+ {"label": "@", "matrix": [0, 2], "x": 2, "y": 0},
+ {"label": "#", "matrix": [0, 3], "x": 3, "y": 0},
+ {"label": "$", "matrix": [0, 4], "x": 4, "y": 0},
+ {"label": "%", "matrix": [0, 5], "x": 5, "y": 0},
+ {"label": "^", "matrix": [0, 6], "x": 6, "y": 0},
+ {"label": "&", "matrix": [0, 7], "x": 7, "y": 0},
+ {"label": "*", "matrix": [0, 8], "x": 8, "y": 0},
+ {"label": "(", "matrix": [0, 9], "x": 9, "y": 0},
+ {"label": ")", "matrix": [0, 10], "x": 10, "y": 0},
+ {"label": "_", "matrix": [0, 11], "x": 11, "y": 0},
+ {"label": "+", "matrix": [0, 12], "x": 12, "y": 0},
+ {"label": "|", "matrix": [0, 13], "x": 13, "y": 0},
+ {"label": "~", "matrix": [2, 13], "x": 14, "y": 0},
+ {"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
+ {"label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1},
+ {"label": "W", "matrix": [1, 2], "x": 2.5, "y": 1},
+ {"label": "E", "matrix": [1, 3], "x": 3.5, "y": 1},
+ {"label": "R", "matrix": [1, 4], "x": 4.5, "y": 1},
+ {"label": "T", "matrix": [1, 5], "x": 5.5, "y": 1},
+ {"label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1},
+ {"label": "U", "matrix": [1, 7], "x": 7.5, "y": 1},
+ {"label": "I", "matrix": [1, 8], "x": 8.5, "y": 1},
+ {"label": "O", "matrix": [1, 9], "x": 9.5, "y": 1},
+ {"label": "P", "matrix": [1, 10], "x": 10.5, "y": 1},
+ {"label": "{", "matrix": [1, 11], "x": 11.5, "y": 1},
+ {"label": "}", "matrix": [1, 12], "x": 12.5, "y": 1},
+ {"label": "|", "matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5},
+ {"label": "Caps Lock", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
+ {"label": "A", "matrix": [2, 1], "x": 1.75, "y": 2},
+ {"label": "S", "matrix": [2, 2], "x": 2.75, "y": 2},
+ {"label": "D", "matrix": [2, 3], "x": 3.75, "y": 2},
+ {"label": "F", "matrix": [2, 4], "x": 4.75, "y": 2},
+ {"label": "G", "matrix": [2, 5], "x": 5.75, "y": 2},
+ {"label": "H", "matrix": [2, 6], "x": 6.75, "y": 2},
+ {"label": "J", "matrix": [2, 7], "x": 7.75, "y": 2},
+ {"label": "K", "matrix": [2, 8], "x": 8.75, "y": 2},
+ {"label": "L", "matrix": [2, 9], "x": 9.75, "y": 2},
+ {"label": ":", "matrix": [2, 10], "x": 10.75, "y": 2},
+ {"label": "\"", "matrix": [2, 11], "x": 11.75, "y": 2},
+ {"label": "Enter", "matrix": [3, 13], "x": 12.75, "y": 2, "w": 2.25},
+ {"label": "Shift", "matrix": [3, 0], "x": 0, "y": 3, "w": 2.25},
+ {"label": "Z", "matrix": [3, 2], "x": 2.25, "y": 3},
+ {"label": "X", "matrix": [3, 3], "x": 3.25, "y": 3},
+ {"label": "C", "matrix": [3, 4], "x": 4.25, "y": 3},
+ {"label": "V", "matrix": [3, 5], "x": 5.25, "y": 3},
+ {"label": "B", "matrix": [3, 6], "x": 6.25, "y": 3},
+ {"label": "N", "matrix": [3, 7], "x": 7.25, "y": 3},
+ {"label": "M", "matrix": [3, 8], "x": 8.25, "y": 3},
+ {"label": "<", "matrix": [3, 9], "x": 9.25, "y": 3},
+ {"label": ">", "matrix": [3, 10], "x": 10.25, "y": 3},
+ {"label": "?", "matrix": [3, 11], "x": 11.25, "y": 3},
+ {"label": "Shift", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75},
+ {"label": "Fn", "matrix": [4, 13], "x": 14, "y": 3},
+ {"label": "Ctrl", "matrix": [4, 1], "x": 0, "y": 4, "w": 1.5},
+ {"label": "Win", "matrix": [4, 2], "x": 1.5, "y": 4},
+ {"label": "Alt", "matrix": [4, 3], "x": 2.5, "y": 4, "w": 1.5},
+ {"label": "Space", "matrix": [4, 6], "x": 4, "y": 4, "w": 7},
+ {"label": "Alt", "matrix": [4, 10], "x": 11, "y": 4, "w": 1.5},
+ {"label": "Win", "matrix": [4, 11], "x": 12.5, "y": 4},
+ {"label": "Ctrl", "matrix": [4, 12], "x": 13.5, "y": 4, "w": 1.5}
+ ]
+ },
+
+ "LAYOUT_6u_ansi": {
+ "layout": [
+ {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0},
+ {"label": "!", "matrix": [0, 1], "x": 1, "y": 0},
+ {"label": "@", "matrix": [0, 2], "x": 2, "y": 0},
+ {"label": "#", "matrix": [0, 3], "x": 3, "y": 0},
+ {"label": "$", "matrix": [0, 4], "x": 4, "y": 0},
+ {"label": "%", "matrix": [0, 5], "x": 5, "y": 0},
+ {"label": "^", "matrix": [0, 6], "x": 6, "y": 0},
+ {"label": "&", "matrix": [0, 7], "x": 7, "y": 0},
+ {"label": "*", "matrix": [0, 8], "x": 8, "y": 0},
+ {"label": "(", "matrix": [0, 9], "x": 9, "y": 0},
+ {"label": ")", "matrix": [0, 10], "x": 10, "y": 0},
+ {"label": "_", "matrix": [0, 11], "x": 11, "y": 0},
+ {"label": "+", "matrix": [0, 12], "x": 12, "y": 0},
+ {"label": "Backspace", "matrix": [2, 13], "x": 13, "y": 0, "w": 2},
+ {"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
+ {"label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1},
+ {"label": "W", "matrix": [1, 2], "x": 2.5, "y": 1},
+ {"label": "E", "matrix": [1, 3], "x": 3.5, "y": 1},
+ {"label": "R", "matrix": [1, 4], "x": 4.5, "y": 1},
+ {"label": "T", "matrix": [1, 5], "x": 5.5, "y": 1},
+ {"label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1},
+ {"label": "U", "matrix": [1, 7], "x": 7.5, "y": 1},
+ {"label": "I", "matrix": [1, 8], "x": 8.5, "y": 1},
+ {"label": "O", "matrix": [1, 9], "x": 9.5, "y": 1},
+ {"label": "P", "matrix": [1, 10], "x": 10.5, "y": 1},
+ {"label": "{", "matrix": [1, 11], "x": 11.5, "y": 1},
+ {"label": "}", "matrix": [1, 12], "x": 12.5, "y": 1},
+ {"label": "|", "matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5},
+ {"label": "Caps Lock", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
+ {"label": "A", "matrix": [2, 1], "x": 1.75, "y": 2},
+ {"label": "S", "matrix": [2, 2], "x": 2.75, "y": 2},
+ {"label": "D", "matrix": [2, 3], "x": 3.75, "y": 2},
+ {"label": "F", "matrix": [2, 4], "x": 4.75, "y": 2},
+ {"label": "G", "matrix": [2, 5], "x": 5.75, "y": 2},
+ {"label": "H", "matrix": [2, 6], "x": 6.75, "y": 2},
+ {"label": "J", "matrix": [2, 7], "x": 7.75, "y": 2},
+ {"label": "K", "matrix": [2, 8], "x": 8.75, "y": 2},
+ {"label": "L", "matrix": [2, 9], "x": 9.75, "y": 2},
+ {"label": ":", "matrix": [2, 10], "x": 10.75, "y": 2},
+ {"label": "\"", "matrix": [2, 11], "x": 11.75, "y": 2},
+ {"label": "Enter", "matrix": [3, 13], "x": 12.75, "y": 2, "w": 2.25},
+ {"label": "Shift", "matrix": [3, 0], "x": 0, "y": 3, "w": 2.25},
+ {"label": "Z", "matrix": [3, 2], "x": 2.25, "y": 3},
+ {"label": "X", "matrix": [3, 3], "x": 3.25, "y": 3},
+ {"label": "C", "matrix": [3, 4], "x": 4.25, "y": 3},
+ {"label": "V", "matrix": [3, 5], "x": 5.25, "y": 3},
+ {"label": "B", "matrix": [3, 6], "x": 6.25, "y": 3},
+ {"label": "N", "matrix": [3, 7], "x": 7.25, "y": 3},
+ {"label": "M", "matrix": [3, 8], "x": 8.25, "y": 3},
+ {"label": "<", "matrix": [3, 9], "x": 9.25, "y": 3},
+ {"label": ">", "matrix": [3, 10], "x": 10.25, "y": 3},
+ {"label": "?", "matrix": [3, 11], "x": 11.25, "y": 3},
+ {"label": "Shift", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 2.75},
+ {"label": "Ctrl", "matrix": [4, 0], "x":0, "y":4, "w":1.5},
+ {"label": "Win", "matrix": [4, 1], "x":1.5, "y":4},
+ {"label": "Alt", "matrix": [4, 2], "x":2.5, "y":4, "w":1.5},
+ {"label": "Space", "matrix": [4, 6], "x":4, "y":4, "w":6},
+ {"label": "Alt", "matrix": [4, 9], "x":10, "y":4, "w":1.5},
+ {"label": "Win", "matrix": [4, 10], "x":11.5, "y":4},
+ {"label": "Menu", "matrix": [4, 11], "x":12.5, "y":4},
+ {"label": "Fn", "matrix": [4, 12], "x":13.5, "y":4, "w":1.5}
+ ]
+ },
+ "LAYOUT_6u_ansi_split_bs_rshift": {
+ "layout": [
+ {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0},
+ {"label": "!", "matrix": [0, 1], "x": 1, "y": 0},
+ {"label": "@", "matrix": [0, 2], "x": 2, "y": 0},
+ {"label": "#", "matrix": [0, 3], "x": 3, "y": 0},
+ {"label": "$", "matrix": [0, 4], "x": 4, "y": 0},
+ {"label": "%", "matrix": [0, 5], "x": 5, "y": 0},
+ {"label": "^", "matrix": [0, 6], "x": 6, "y": 0},
+ {"label": "&", "matrix": [0, 7], "x": 7, "y": 0},
+ {"label": "*", "matrix": [0, 8], "x": 8, "y": 0},
+ {"label": "(", "matrix": [0, 9], "x": 9, "y": 0},
+ {"label": ")", "matrix": [0, 10], "x": 10, "y": 0},
+ {"label": "_", "matrix": [0, 11], "x": 11, "y": 0},
+ {"label": "+", "matrix": [0, 12], "x": 12, "y": 0},
+ {"label": "|", "matrix": [0, 13], "x": 13, "y": 0},
+ {"label": "~", "matrix": [2, 13], "x": 14, "y": 0},
+ {"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
+ {"label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1},
+ {"label": "W", "matrix": [1, 2], "x": 2.5, "y": 1},
+ {"label": "E", "matrix": [1, 3], "x": 3.5, "y": 1},
+ {"label": "R", "matrix": [1, 4], "x": 4.5, "y": 1},
+ {"label": "T", "matrix": [1, 5], "x": 5.5, "y": 1},
+ {"label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1},
+ {"label": "U", "matrix": [1, 7], "x": 7.5, "y": 1},
+ {"label": "I", "matrix": [1, 8], "x": 8.5, "y": 1},
+ {"label": "O", "matrix": [1, 9], "x": 9.5, "y": 1},
+ {"label": "P", "matrix": [1, 10], "x": 10.5, "y": 1},
+ {"label": "{", "matrix": [1, 11], "x": 11.5, "y": 1},
+ {"label": "}", "matrix": [1, 12], "x": 12.5, "y": 1},
+ {"label": "|", "matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5},
+ {"label": "Caps Lock", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
+ {"label": "A", "matrix": [2, 1], "x": 1.75, "y": 2},
+ {"label": "S", "matrix": [2, 2], "x": 2.75, "y": 2},
+ {"label": "D", "matrix": [2, 3], "x": 3.75, "y": 2},
+ {"label": "F", "matrix": [2, 4], "x": 4.75, "y": 2},
+ {"label": "G", "matrix": [2, 5], "x": 5.75, "y": 2},
+ {"label": "H", "matrix": [2, 6], "x": 6.75, "y": 2},
+ {"label": "J", "matrix": [2, 7], "x": 7.75, "y": 2},
+ {"label": "K", "matrix": [2, 8], "x": 8.75, "y": 2},
+ {"label": "L", "matrix": [2, 9], "x": 9.75, "y": 2},
+ {"label": ":", "matrix": [2, 10], "x": 10.75, "y": 2},
+ {"label": "\"", "matrix": [2, 11], "x": 11.75, "y": 2},
+ {"label": "Enter", "matrix": [3, 13], "x": 12.75, "y": 2, "w": 2.25},
+ {"label": "Shift", "matrix": [3, 0], "x": 0, "y": 3, "w": 2.25},
+ {"label": "Z", "matrix": [3, 2], "x": 2.25, "y": 3},
+ {"label": "X", "matrix": [3, 3], "x": 3.25, "y": 3},
+ {"label": "C", "matrix": [3, 4], "x": 4.25, "y": 3},
+ {"label": "V", "matrix": [3, 5], "x": 5.25, "y": 3},
+ {"label": "B", "matrix": [3, 6], "x": 6.25, "y": 3},
+ {"label": "N", "matrix": [3, 7], "x": 7.25, "y": 3},
+ {"label": "M", "matrix": [3, 8], "x": 8.25, "y": 3},
+ {"label": "<", "matrix": [3, 9], "x": 9.25, "y": 3},
+ {"label": ">", "matrix": [3, 10], "x": 10.25, "y": 3},
+ {"label": "?", "matrix": [3, 11], "x": 11.25, "y": 3},
+ {"label": "Shift", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75},
+ {"label": "Fn", "matrix": [4, 13], "x": 14, "y": 3},
+ {"label": "Ctrl", "matrix": [4, 0], "x":0, "y":4, "w":1.5},
+ {"label": "Win", "matrix": [4, 1], "x":1.5, "y":4},
+ {"label": "Alt", "matrix": [4, 2], "x":2.5, "y":4, "w":1.5},
+ {"label": "Space", "matrix": [4, 6], "x":4, "y":4, "w":6},
+ {"label": "Alt", "matrix": [4, 9], "x":10, "y":4, "w":1.5},
+ {"label": "Win", "matrix": [4, 10], "x":11.5, "y":4},
+ {"label": "Menu", "matrix": [4, 11], "x":12.5, "y":4},
+ {"label": "Fn", "matrix": [4, 12], "x":13.5, "y":4, "w":1.5}
+ ]
+ },
+ "LAYOUT_6u_iso": {
+ "layout": [
+ {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0},
+ {"label": "!", "matrix": [0, 1], "x": 1, "y": 0},
+ {"label": "@", "matrix": [0, 2], "x": 2, "y": 0},
+ {"label": "#", "matrix": [0, 3], "x": 3, "y": 0},
+ {"label": "$", "matrix": [0, 4], "x": 4, "y": 0},
+ {"label": "%", "matrix": [0, 5], "x": 5, "y": 0},
+ {"label": "^", "matrix": [0, 6], "x": 6, "y": 0},
+ {"label": "&", "matrix": [0, 7], "x": 7, "y": 0},
+ {"label": "*", "matrix": [0, 8], "x": 8, "y": 0},
+ {"label": "(", "matrix": [0, 9], "x": 9, "y": 0},
+ {"label": ")", "matrix": [0, 10], "x": 10, "y": 0},
+ {"label": "_", "matrix": [0, 11], "x": 11, "y": 0},
+ {"label": "+", "matrix": [0, 12], "x": 12, "y": 0},
+ {"label": "Backspace", "matrix": [2, 13], "x": 13, "y": 0, "w": 2},
+ {"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
+ {"label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1},
+ {"label": "W", "matrix": [1, 2], "x": 2.5, "y": 1},
+ {"label": "E", "matrix": [1, 3], "x": 3.5, "y": 1},
+ {"label": "R", "matrix": [1, 4], "x": 4.5, "y": 1},
+ {"label": "T", "matrix": [1, 5], "x": 5.5, "y": 1},
+ {"label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1},
+ {"label": "U", "matrix": [1, 7], "x": 7.5, "y": 1},
+ {"label": "I", "matrix": [1, 8], "x": 8.5, "y": 1},
+ {"label": "O", "matrix": [1, 9], "x": 9.5, "y": 1},
+ {"label": "P", "matrix": [1, 10], "x": 10.5, "y": 1},
+ {"label": "{", "matrix": [1, 11], "x": 11.5, "y": 1},
+ {"label": "}", "matrix": [1, 12], "x": 12.5, "y": 1},
+ {"label": "Enter", "matrix": [3, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 2},
+ {"label": "Caps Lock", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
+ {"label": "A", "matrix": [2, 1], "x": 1.75, "y": 2},
+ {"label": "S", "matrix": [2, 2], "x": 2.75, "y": 2},
+ {"label": "D", "matrix": [2, 3], "x": 3.75, "y": 2},
+ {"label": "F", "matrix": [2, 4], "x": 4.75, "y": 2},
+ {"label": "G", "matrix": [2, 5], "x": 5.75, "y": 2},
+ {"label": "H", "matrix": [2, 6], "x": 6.75, "y": 2},
+ {"label": "J", "matrix": [2, 7], "x": 7.75, "y": 2},
+ {"label": "K", "matrix": [2, 8], "x": 8.75, "y": 2},
+ {"label": "L", "matrix": [2, 9], "x": 9.75, "y": 2},
+ {"label": ":", "matrix": [2, 10], "x": 10.75, "y": 2},
+ {"label": "\"", "matrix": [2, 11], "x": 11.75, "y": 2},
+ {"label": "NUHS", "matrix": [2, 12], "x": 12.75, "y": 2},
+ {"label": "Shift", "matrix": [3, 0], "x": 0, "y": 3, "w": 1.25},
+ {"label": "NUBS", "matrix": [3, 1], "x": 1.25, "y": 3},
+ {"label": "Z", "matrix": [3, 2], "x": 2.25, "y": 3},
+ {"label": "X", "matrix": [3, 3], "x": 3.25, "y": 3},
+ {"label": "C", "matrix": [3, 4], "x": 4.25, "y": 3},
+ {"label": "V", "matrix": [3, 5], "x": 5.25, "y": 3},
+ {"label": "B", "matrix": [3, 6], "x": 6.25, "y": 3},
+ {"label": "N", "matrix": [3, 7], "x": 7.25, "y": 3},
+ {"label": "M", "matrix": [3, 8], "x": 8.25, "y": 3},
+ {"label": "<", "matrix": [3, 9], "x": 9.25, "y": 3},
+ {"label": ">", "matrix": [3, 10], "x": 10.25, "y": 3},
+ {"label": "?", "matrix": [3, 11], "x": 11.25, "y": 3},
+ {"label": "Shift", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 2.75},
+ {"label": "Ctrl", "matrix": [4, 0], "x":0, "y":4, "w":1.5},
+ {"label": "Win", "matrix": [4, 1], "x":1.5, "y":4},
+ {"label": "Alt", "matrix": [4, 2], "x":2.5, "y":4, "w":1.5},
+ {"label": "Space", "matrix": [4, 6], "x":4, "y":4, "w":6},
+ {"label": "Alt", "matrix": [4, 9], "x":10, "y":4, "w":1.5},
+ {"label": "Win", "matrix": [4, 10], "x":11.5, "y":4},
+ {"label": "Menu", "matrix": [4, 11], "x":12.5, "y":4},
+ {"label": "Fn", "matrix": [4, 12], "x":13.5, "y":4, "w":1.5}
+ ]
+ },
+ "LAYOUT_6u_iso_split_bs_rshift": {
+ "layout": [
+ {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0},
+ {"label": "!", "matrix": [0, 1], "x": 1, "y": 0},
+ {"label": "@", "matrix": [0, 2], "x": 2, "y": 0},
+ {"label": "#", "matrix": [0, 3], "x": 3, "y": 0},
+ {"label": "$", "matrix": [0, 4], "x": 4, "y": 0},
+ {"label": "%", "matrix": [0, 5], "x": 5, "y": 0},
+ {"label": "^", "matrix": [0, 6], "x": 6, "y": 0},
+ {"label": "&", "matrix": [0, 7], "x": 7, "y": 0},
+ {"label": "*", "matrix": [0, 8], "x": 8, "y": 0},
+ {"label": "(", "matrix": [0, 9], "x": 9, "y": 0},
+ {"label": ")", "matrix": [0, 10], "x": 10, "y": 0},
+ {"label": "_", "matrix": [0, 11], "x": 11, "y": 0},
+ {"label": "+", "matrix": [0, 12], "x": 12, "y": 0},
+ {"label": "|", "matrix": [0, 13], "x": 13, "y": 0},
+ {"label": "~", "matrix": [2, 13], "x": 14, "y": 0},
+ {"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
+ {"label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1},
+ {"label": "W", "matrix": [1, 2], "x": 2.5, "y": 1},
+ {"label": "E", "matrix": [1, 3], "x": 3.5, "y": 1},
+ {"label": "R", "matrix": [1, 4], "x": 4.5, "y": 1},
+ {"label": "T", "matrix": [1, 5], "x": 5.5, "y": 1},
+ {"label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1},
+ {"label": "U", "matrix": [1, 7], "x": 7.5, "y": 1},
+ {"label": "I", "matrix": [1, 8], "x": 8.5, "y": 1},
+ {"label": "O", "matrix": [1, 9], "x": 9.5, "y": 1},
+ {"label": "P", "matrix": [1, 10], "x": 10.5, "y": 1},
+ {"label": "{", "matrix": [1, 11], "x": 11.5, "y": 1},
+ {"label": "}", "matrix": [1, 12], "x": 12.5, "y": 1},
+ {"label": "Enter", "matrix": [3, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 2},
+ {"label": "Caps Lock", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
+ {"label": "A", "matrix": [2, 1], "x": 1.75, "y": 2},
+ {"label": "S", "matrix": [2, 2], "x": 2.75, "y": 2},
+ {"label": "D", "matrix": [2, 3], "x": 3.75, "y": 2},
+ {"label": "F", "matrix": [2, 4], "x": 4.75, "y": 2},
+ {"label": "G", "matrix": [2, 5], "x": 5.75, "y": 2},
+ {"label": "H", "matrix": [2, 6], "x": 6.75, "y": 2},
+ {"label": "J", "matrix": [2, 7], "x": 7.75, "y": 2},
+ {"label": "K", "matrix": [2, 8], "x": 8.75, "y": 2},
+ {"label": "L", "matrix": [2, 9], "x": 9.75, "y": 2},
+ {"label": ":", "matrix": [2, 10], "x": 10.75, "y": 2},
+ {"label": "\"", "matrix": [2, 11], "x": 11.75, "y": 2},
+ {"label": "NUHS", "matrix": [2, 12], "x": 12.75, "y": 2},
+ {"label": "Shift", "matrix": [3, 0], "x": 0, "y": 3, "w": 1.25},
+ {"label": "NUBS", "matrix": [3, 1], "x": 1.25, "y": 3},
+ {"label": "Z", "matrix": [3, 2], "x": 2.25, "y": 3},
+ {"label": "X", "matrix": [3, 3], "x": 3.25, "y": 3},
+ {"label": "C", "matrix": [3, 4], "x": 4.25, "y": 3},
+ {"label": "V", "matrix": [3, 5], "x": 5.25, "y": 3},
+ {"label": "B", "matrix": [3, 6], "x": 6.25, "y": 3},
+ {"label": "N", "matrix": [3, 7], "x": 7.25, "y": 3},
+ {"label": "M", "matrix": [3, 8], "x": 8.25, "y": 3},
+ {"label": "<", "matrix": [3, 9], "x": 9.25, "y": 3},
+ {"label": ">", "matrix": [3, 10], "x": 10.25, "y": 3},
+ {"label": "?", "matrix": [3, 11], "x": 11.25, "y": 3},
+ {"label": "Shift", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75},
+ {"label": "Fn", "matrix": [4, 13], "x": 14, "y": 3},
+ {"label": "Ctrl", "matrix": [4, 0], "x":0, "y":4, "w":1.5},
+ {"label": "Win", "matrix": [4, 1], "x":1.5, "y":4},
+ {"label": "Alt", "matrix": [4, 2], "x":2.5, "y":4, "w":1.5},
+ {"label": "Space", "matrix": [4, 6], "x":4, "y":4, "w":6},
+ {"label": "Alt", "matrix": [4, 9], "x":10, "y":4, "w":1.5},
+ {"label": "Win", "matrix": [4, 10], "x":11.5, "y":4},
+ {"label": "Menu", "matrix": [4, 11], "x":12.5, "y":4},
+ {"label": "Fn", "matrix": [4, 12], "x":13.5, "y":4, "w":1.5}
+ ]
+ },
+ "LAYOUT_all": {
+ "layout": [
+ {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0},
+ {"label": "!", "matrix": [0, 1], "x": 1, "y": 0},
+ {"label": "@", "matrix": [0, 2], "x": 2, "y": 0},
+ {"label": "#", "matrix": [0, 3], "x": 3, "y": 0},
+ {"label": "$", "matrix": [0, 4], "x": 4, "y": 0},
+ {"label": "%", "matrix": [0, 5], "x": 5, "y": 0},
+ {"label": "^", "matrix": [0, 6], "x": 6, "y": 0},
+ {"label": "&", "matrix": [0, 7], "x": 7, "y": 0},
+ {"label": "*", "matrix": [0, 8], "x": 8, "y": 0},
+ {"label": "(", "matrix": [0, 9], "x": 9, "y": 0},
+ {"label": ")", "matrix": [0, 10], "x": 10, "y": 0},
+ {"label": "_", "matrix": [0, 11], "x": 11, "y": 0},
+ {"label": "+", "matrix": [0, 12], "x": 12, "y": 0},
+ {"label": "|", "matrix": [0, 13], "x": 13, "y": 0},
+ {"label": "Backspace", "matrix": [2, 13], "x": 14, "y": 0},
+ {"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
+ {"label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1},
+ {"label": "W", "matrix": [1, 2], "x": 2.5, "y": 1},
+ {"label": "E", "matrix": [1, 3], "x": 3.5, "y": 1},
+ {"label": "R", "matrix": [1, 4], "x": 4.5, "y": 1},
+ {"label": "T", "matrix": [1, 5], "x": 5.5, "y": 1},
+ {"label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1},
+ {"label": "U", "matrix": [1, 7], "x": 7.5, "y": 1},
+ {"label": "I", "matrix": [1, 8], "x": 8.5, "y": 1},
+ {"label": "O", "matrix": [1, 9], "x": 9.5, "y": 1},
+ {"label": "P", "matrix": [1, 10], "x": 10.5, "y": 1},
+ {"label": "{", "matrix": [1, 11], "x": 11.5, "y": 1},
+ {"label": "}", "matrix": [1, 12], "x": 12.5, "y": 1},
+ {"label": "|", "matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5},
+ {"label": "Caps Lock", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
+ {"label": "A", "matrix": [2, 1], "x": 1.75, "y": 2},
+ {"label": "S", "matrix": [2, 2], "x": 2.75, "y": 2},
+ {"label": "D", "matrix": [2, 3], "x": 3.75, "y": 2},
+ {"label": "F", "matrix": [2, 4], "x": 4.75, "y": 2},
+ {"label": "G", "matrix": [2, 5], "x": 5.75, "y": 2},
+ {"label": "H", "matrix": [2, 6], "x": 6.75, "y": 2},
+ {"label": "J", "matrix": [2, 7], "x": 7.75, "y": 2},
+ {"label": "K", "matrix": [2, 8], "x": 8.75, "y": 2},
+ {"label": "L", "matrix": [2, 9], "x": 9.75, "y": 2},
+ {"label": ":", "matrix": [2, 10], "x": 10.75, "y": 2},
+ {"label": "\"", "matrix": [2, 11], "x": 11.75, "y": 2},
+ {"label": "NUHS", "matrix": [2, 12], "x": 12.75, "y": 2},
+ {"label": "Enter", "matrix": [3, 13], "x": 13.75, "y": 2, "w": 1.25},
+ {"label": "Shift", "matrix": [3, 0], "x": 0, "y": 3, "w": 1.25},
+ {"label": "NUBS", "matrix": [3, 1], "x": 1.25, "y": 3},
+ {"label": "Z", "matrix": [3, 2], "x": 2.25, "y": 3},
+ {"label": "X", "matrix": [3, 3], "x": 3.25, "y": 3},
+ {"label": "C", "matrix": [3, 4], "x": 4.25, "y": 3},
+ {"label": "V", "matrix": [3, 5], "x": 5.25, "y": 3},
+ {"label": "B", "matrix": [3, 6], "x": 6.25, "y": 3},
+ {"label": "N", "matrix": [3, 7], "x": 7.25, "y": 3},
+ {"label": "M", "matrix": [3, 8], "x": 8.25, "y": 3},
+ {"label": "<", "matrix": [3, 9], "x": 9.25, "y": 3},
+ {"label": ">", "matrix": [3, 10], "x": 10.25, "y": 3},
+ {"label": "?", "matrix": [3, 11], "x": 11.25, "y": 3},
+ {"label": "Shift", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75},
+ {"label": "Fn", "matrix": [4, 13], "x": 14, "y": 3},
+ {"label": "Ctrl", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.25},
+ {"label": "Win", "matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25},
+ {"label": "Alt", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25},
+ {"label": "Space", "matrix": [4, 4], "x": 3.75, "y": 4, "w": 2.25},
+ {"label": "Space", "matrix": [4, 6], "x": 6, "y": 4, "w": 1.25},
+ {"label": "Space", "matrix": [4, 8], "x": 7.25, "y": 4, "w": 2.75},
+ {"label": "Alt", "matrix": [4, 9], "x": 10, "y": 4, "w": 1.25},
+ {"label": "Win", "matrix": [4, 10], "x": 11.25, "y": 4, "w": 1.25},
+ {"label": "Menu", "matrix": [4, 11], "x": 12.5, "y": 4, "w": 1.25},
+ {"label": "Ctrl", "matrix": [4, 12], "x": 13.75, "y": 4, "w": 1.25}
+ ]
+ }
+ }
+}
diff --git a/keyboards/4pplet/waffling60/rev_e/keymaps/6u_ansi/keymap.c b/keyboards/4pplet/waffling60/rev_e/keymaps/6u_ansi/keymap.c
new file mode 100644
index 0000000000..1a0147f148
--- /dev/null
+++ b/keyboards/4pplet/waffling60/rev_e/keymaps/6u_ansi/keymap.c
@@ -0,0 +1,40 @@
+/*
+Copyright 2020 Stefan Sundin "4pplet" <4pplet@protonmail.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 QMK_KEYBOARD_H
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+// main layer
+[0] = LAYOUT_6u_ansi(
+ KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC,
+ KC_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_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_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,
+ KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_APP, KC_RCTL),
+// basic function layer
+[1] = LAYOUT_6u_ansi(
+ QK_BOOT, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_LEFT, KC_DOWN, KC_RIGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS)
+};
+#if defined(ENCODER_MAP_ENABLE)
+const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = {
+ [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) },
+ [1] = { ENCODER_CCW_CW(KC_BRID, KC_BRIU) }
+};
+#endif
diff --git a/keyboards/keychron/q0/rev_0131/keymaps/default/rules.mk b/keyboards/4pplet/waffling60/rev_e/keymaps/6u_ansi/rules.mk
index ee32568148..ee32568148 100644
--- a/keyboards/keychron/q0/rev_0131/keymaps/default/rules.mk
+++ b/keyboards/4pplet/waffling60/rev_e/keymaps/6u_ansi/rules.mk
diff --git a/keyboards/4pplet/waffling60/rev_e/keymaps/6u_ansi_split_bs_rshift/keymap.c b/keyboards/4pplet/waffling60/rev_e/keymaps/6u_ansi_split_bs_rshift/keymap.c
new file mode 100644
index 0000000000..1b68fce40e
--- /dev/null
+++ b/keyboards/4pplet/waffling60/rev_e/keymaps/6u_ansi_split_bs_rshift/keymap.c
@@ -0,0 +1,40 @@
+/*
+Copyright 2020 Stefan Sundin "4pplet" <4pplet@protonmail.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 QMK_KEYBOARD_H
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+// main layer
+[0] = LAYOUT_6u_ansi_split_bs_rshift(
+ KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS, 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_LBRC, KC_RBRC, KC_BSLS,
+ KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
+ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1),
+ KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_APP, KC_RCTL),
+// basic function layer
+[1] = LAYOUT_6u_ansi_split_bs_rshift(
+ QK_BOOT, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_LEFT, KC_DOWN, KC_RIGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS)
+};
+#if defined(ENCODER_MAP_ENABLE)
+const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = {
+ [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) },
+ [1] = { ENCODER_CCW_CW(KC_BRID, KC_BRIU) }
+};
+#endif
diff --git a/keyboards/4pplet/waffling60/rev_e/keymaps/6u_ansi_split_bs_rshift/rules.mk b/keyboards/4pplet/waffling60/rev_e/keymaps/6u_ansi_split_bs_rshift/rules.mk
new file mode 100644
index 0000000000..ee32568148
--- /dev/null
+++ b/keyboards/4pplet/waffling60/rev_e/keymaps/6u_ansi_split_bs_rshift/rules.mk
@@ -0,0 +1 @@
+ENCODER_MAP_ENABLE = yes
diff --git a/keyboards/4pplet/waffling60/rev_e/keymaps/6u_iso/keymap.c b/keyboards/4pplet/waffling60/rev_e/keymaps/6u_iso/keymap.c
new file mode 100644
index 0000000000..919eec54f9
--- /dev/null
+++ b/keyboards/4pplet/waffling60/rev_e/keymaps/6u_iso/keymap.c
@@ -0,0 +1,40 @@
+/*
+Copyright 2020 Stefan Sundin "4pplet" <4pplet@protonmail.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 QMK_KEYBOARD_H
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+// main layer
+[0] = LAYOUT_6u_iso(
+ KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC,
+ KC_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_ENT,
+ KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS ,
+ KC_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_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_APP, KC_RCTL),
+// basic function layer
+[1] = LAYOUT_6u_iso(
+ QK_BOOT, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_LEFT, KC_DOWN, KC_RIGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS)
+};
+#if defined(ENCODER_MAP_ENABLE)
+const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = {
+ [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) },
+ [1] = { ENCODER_CCW_CW(KC_BRID, KC_BRIU) }
+};
+#endif
diff --git a/keyboards/4pplet/waffling60/rev_e/keymaps/6u_iso/rules.mk b/keyboards/4pplet/waffling60/rev_e/keymaps/6u_iso/rules.mk
new file mode 100644
index 0000000000..ee32568148
--- /dev/null
+++ b/keyboards/4pplet/waffling60/rev_e/keymaps/6u_iso/rules.mk
@@ -0,0 +1 @@
+ENCODER_MAP_ENABLE = yes
diff --git a/keyboards/4pplet/waffling60/rev_e/keymaps/6u_iso_split_bs_rshift/keymap.c b/keyboards/4pplet/waffling60/rev_e/keymaps/6u_iso_split_bs_rshift/keymap.c
new file mode 100644
index 0000000000..4731a11d47
--- /dev/null
+++ b/keyboards/4pplet/waffling60/rev_e/keymaps/6u_iso_split_bs_rshift/keymap.c
@@ -0,0 +1,40 @@
+/*
+Copyright 2020 Stefan Sundin "4pplet" <4pplet@protonmail.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 QMK_KEYBOARD_H
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+// main layer
+[0] = LAYOUT_6u_iso_split_bs_rshift(
+ KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS, 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_LBRC, KC_RBRC, KC_ENT,
+ KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS,
+ KC_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, MO(1),
+ KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_APP, KC_RCTL),
+// basic function layer
+[1] = LAYOUT_6u_iso_split_bs_rshift(
+ QK_BOOT, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_LEFT, KC_DOWN, KC_RIGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS)
+};
+#if defined(ENCODER_MAP_ENABLE)
+const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = {
+ [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) },
+ [1] = { ENCODER_CCW_CW(KC_BRID, KC_BRIU) }
+};
+#endif
diff --git a/keyboards/4pplet/waffling60/rev_e/keymaps/6u_iso_split_bs_rshift/rules.mk b/keyboards/4pplet/waffling60/rev_e/keymaps/6u_iso_split_bs_rshift/rules.mk
new file mode 100644
index 0000000000..ee32568148
--- /dev/null
+++ b/keyboards/4pplet/waffling60/rev_e/keymaps/6u_iso_split_bs_rshift/rules.mk
@@ -0,0 +1 @@
+ENCODER_MAP_ENABLE = yes
diff --git a/keyboards/4pplet/waffling60/rev_e/keymaps/default/keymap.c b/keyboards/4pplet/waffling60/rev_e/keymaps/default/keymap.c
new file mode 100644
index 0000000000..8b1bb6a2c4
--- /dev/null
+++ b/keyboards/4pplet/waffling60/rev_e/keymaps/default/keymap.c
@@ -0,0 +1,40 @@
+/*
+Copyright 2020 Stefan Sundin "4pplet" <4pplet@protonmail.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 QMK_KEYBOARD_H
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+// main layer
+[0] = LAYOUT_all(
+ KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS, 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_LBRC, KC_RBRC, KC_BSLS,
+ KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT,
+ KC_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, MO(1),
+ KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RGUI, KC_APP, KC_RCTL),
+// basic function layer
+[1] = LAYOUT_all(
+ QK_BOOT, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_LEFT, KC_DOWN, KC_RIGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS)
+};
+#if defined(ENCODER_MAP_ENABLE)
+const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = {
+ [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) },
+ [1] = { ENCODER_CCW_CW(KC_BRID, KC_BRIU) }
+};
+#endif
diff --git a/keyboards/4pplet/waffling60/rev_e/keymaps/default/rules.mk b/keyboards/4pplet/waffling60/rev_e/keymaps/default/rules.mk
new file mode 100644
index 0000000000..ee32568148
--- /dev/null
+++ b/keyboards/4pplet/waffling60/rev_e/keymaps/default/rules.mk
@@ -0,0 +1 @@
+ENCODER_MAP_ENABLE = yes
diff --git a/keyboards/4pplet/waffling60/rev_e/keymaps/via/keymap.c b/keyboards/4pplet/waffling60/rev_e/keymaps/via/keymap.c
new file mode 100644
index 0000000000..8b1bb6a2c4
--- /dev/null
+++ b/keyboards/4pplet/waffling60/rev_e/keymaps/via/keymap.c
@@ -0,0 +1,40 @@
+/*
+Copyright 2020 Stefan Sundin "4pplet" <4pplet@protonmail.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 QMK_KEYBOARD_H
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+// main layer
+[0] = LAYOUT_all(
+ KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS, 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_LBRC, KC_RBRC, KC_BSLS,
+ KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT,
+ KC_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, MO(1),
+ KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RGUI, KC_APP, KC_RCTL),
+// basic function layer
+[1] = LAYOUT_all(
+ QK_BOOT, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_LEFT, KC_DOWN, KC_RIGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS)
+};
+#if defined(ENCODER_MAP_ENABLE)
+const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = {
+ [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) },
+ [1] = { ENCODER_CCW_CW(KC_BRID, KC_BRIU) }
+};
+#endif
diff --git a/keyboards/gmmk/pro/rev1/ansi/keymaps/vnmm/rules.mk b/keyboards/4pplet/waffling60/rev_e/keymaps/via/rules.mk
index f1adcab005..f1adcab005 100644
--- a/keyboards/gmmk/pro/rev1/ansi/keymaps/vnmm/rules.mk
+++ b/keyboards/4pplet/waffling60/rev_e/keymaps/via/rules.mk
diff --git a/keyboards/4pplet/waffling60/rev_e/matrix_diagram.md b/keyboards/4pplet/waffling60/rev_e/matrix_diagram.md
new file mode 100644
index 0000000000..fb49b758ec
--- /dev/null
+++ b/keyboards/4pplet/waffling60/rev_e/matrix_diagram.md
@@ -0,0 +1,37 @@
+# Matrix Diagram for 4pplet Waffling60 Rev E Solder
+
+```
+ ┌───────┐
+ 2u Backspace │2D │
+ └───────┘
+┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
+│00 │01 │02 │03 │04 │05 │06 │07 │08 │09 │0A │0B │0C │0D │2D │
+├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤ ┌─────┐
+│10 │11 │12 │13 │14 │15 │16 │17 │18 │19 │1A │1B │1C │1D │ │ │
+├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ ┌──┴┐3D │
+│20 │21 │22 │23 │24 │25 │26 │27 │28 │29 │2A │2B │3D │ │2C │ │
+├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤ └───┴────┘
+│30 │31 │32 │33 │34 │35 │36 │37 │38 │39 │3A │3B │3C │4D │ ISO Enter
+├────┼───┴┬──┴─┬─┴───┴──┬┴───┼───┴───┴──┬┴───┼───┴┬────┬┴───┤
+│40 │41 │42 │44 │46 │48 │49 │4A │4B │4C │
+└────┴────┴────┴────────┴────┴──────────┴────┴────┴────┴────┘
+┌────────┐ ┌──────────┐
+│30 │ 2.25u LShift 2.75u RShift │3C │
+└────────┘ └──────────┘
+┌────┬────┬────┬────────────────────────┬────┬────┬────┬────┐
+│40 │41 │42 │46 │49 │4A │4B │4C │ Standard
+└────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
+┌─────┬───┬─────┬───────────────────────────┬─────┬───┬─────┐
+│40 │41 │42 │46 │4A │4B │4C │ Tsangan/WKL
+└─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘
+┌────┬────┬────┬────────────────────────┬────┬────┬────┬────┐
+│40 │41 │42 │46 │49 │4A │4B │4C │ 6U bottom row
+└────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
+┌─────┬───┬─────┬──────────┬──────┬─────────┬─────┬───┬─────┐
+│40 │41 │42 │44 │46 │48 │4A │4B │4C │ 3U split space
+└─────┴───┴─────┴──────────┴──────┴─────────┴─────┴───┴─────┘
+┌─────┬───┬───────────────────────────────────────┬───┬─────┐
+│40 │41 │46 │4B │4C │ 10U space
+└─────┴───┴───────────────────────────────────────┴───┴─────┘
+
+```
diff --git a/keyboards/4pplet/waffling60/rev_e/readme.md b/keyboards/4pplet/waffling60/rev_e/readme.md
new file mode 100644
index 0000000000..ee13539e5d
--- /dev/null
+++ b/keyboards/4pplet/waffling60/rev_e/readme.md
@@ -0,0 +1,20 @@
+# waffling60
+
+A 60% PCB for MX switches, one hot swap and one solder-pcb version with decent layout support. Revision E adds underglow and 6u space support.
+
+More info: https://github.com/4pplet/waffling60
+
+* Keyboard Maintainer: [4pplet](https://github.com/4pplet)
+* Hardware Supported: [waffling60](https://github.com/4pplet/waffling60)
+
+Make example for this keyboard (after setting up your build environment):
+
+ make 4pplet/waffling60/rev_e: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).
+
+How to enter bootloader (DFU):
+* Short the reset-header (labled BL/RESET) on the back of the PCB for about 2 seconds for the keyboard to enter DFU. When in DFU, it's ready to flash the firmware. If using a APM MCU it will not automatically reset after flash. Simply short the reset-header for a very short time to just reset the PCB, alternatively unplug and repluck the USB-cable to the keyboard.
+
+Alternative option if the firmware is already pre-flashed:
+* Unplug your keyboard, hold down the Spacebar and B at the same time, plug in your keyboard and wait a second before releasing the keys. The keyboard will enter DFU and is ready to flash the firmware.
diff --git a/keyboards/4pplet/waffling60/rev_e/rev_e.c b/keyboards/4pplet/waffling60/rev_e/rev_e.c
new file mode 100644
index 0000000000..81941d54be
--- /dev/null
+++ b/keyboards/4pplet/waffling60/rev_e/rev_e.c
@@ -0,0 +1,35 @@
+/*
+Copyright 2022 Stefan Sundin "4pplet" <mail@4pplet.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 "rev_e.h"
+
+void keyboard_pre_init_kb(void) {
+ rgblight_set_effect_range(0, 16);
+ keyboard_pre_init_user();
+}
+
+bool led_update_kb(led_t led_state) {
+ bool res = led_update_user(led_state);
+ if (CAPS_LOCK_ENABLE && res) {
+ if(led_state.caps_lock) {
+ rgblight_sethsv_at(CAPS_LOCK_COLOR, 16);
+ }
+ else{
+ rgblight_sethsv_at(HSV_OFF, 16);
+ }
+ }
+ return res;
+}
diff --git a/keyboards/4pplet/waffling60/rev_e/rev_e.h b/keyboards/4pplet/waffling60/rev_e/rev_e.h
new file mode 100644
index 0000000000..61ebac1912
--- /dev/null
+++ b/keyboards/4pplet/waffling60/rev_e/rev_e.h
@@ -0,0 +1,22 @@
+/*
+Copyright 2022 Stefan Sundin "4pplet" <mail@4pplet.com>
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program. If not, see <http://www.gnu.org/licenses/>.
+*/
+#pragma once
+
+#include "quantum.h"
+
+#define CAPS_LOCK_ENABLE true
+#define CAPS_LOCK_COLOR HSV_GREEN
diff --git a/keyboards/4pplet/waffling60/rev_e/rules.mk b/keyboards/4pplet/waffling60/rev_e/rules.mk
new file mode 100644
index 0000000000..04fe1eba2a
--- /dev/null
+++ b/keyboards/4pplet/waffling60/rev_e/rules.mk
@@ -0,0 +1,2 @@
+# Wildcard to allow APM32 MCU
+DFU_SUFFIX_ARGS = -p FFFF -v FFFF
diff --git a/keyboards/9key/keymaps/bcat/keymap.c b/keyboards/9key/keymaps/bcat/keymap.c
deleted file mode 100644
index 5a9ba1a88e..0000000000
--- a/keyboards/9key/keymaps/bcat/keymap.c
+++ /dev/null
@@ -1,39 +0,0 @@
-/* Copyright 2021 Jonathan Rascher
- *
- * 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 "bcat.h"
-
-#define KY_LOCK LGUI(KC_L) /* Chrome OS: Lock screen */
-#define KY_MICM LSG(KC_1) /* Meet Shortcuts: Mute mic */
-#define KY_MICU LSG(KC_2) /* Meet Shortcuts: Unmute mic */
-#define KY_RHAND LSG(KC_3) /* Meet Shortcuts: Raise/lower hand */
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- // clang-format off
- [LAYER_DEFAULT] = LAYOUT(
- KC_MPLY, KC_VOLU, KY_RHAND,
- KY_LOCK, KC_VOLD, KY_MICU,
- LY_FN1, KC_MUTE, KY_MICM
- ),
- [LAYER_FUNCTION_1] = LAYOUT(
- EE_CLR, _______, QK_BOOT,
- _______, _______, _______,
- _______, _______, _______
- ),
- // clang-format on
-};
diff --git a/keyboards/9key/keymaps/bcat/readme.md b/keyboards/9key/keymaps/bcat/readme.md
deleted file mode 100644
index d38ae5463b..0000000000
--- a/keyboards/9key/keymaps/bcat/readme.md
+++ /dev/null
@@ -1,5 +0,0 @@
-# bcat's 9-Key layout
-
-This is a super simple PCB-mount macropad with nine keys, used on my
-work-from-home Chromebox for media/volume control and to activate some global
-shortcuts for Google Meet.
diff --git a/keyboards/a_dux/keymaps/manna-harbour_miryoku/config.h b/keyboards/a_dux/keymaps/manna-harbour_miryoku/config.h
deleted file mode 100644
index dbbff11bb6..0000000000
--- a/keyboards/a_dux/keymaps/manna-harbour_miryoku/config.h
+++ /dev/null
@@ -1,19 +0,0 @@
-// Copyright 2021 Manna Harbour
-// https://github.com/manna-harbour/miryoku
-
-// 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 LAYOUT_miryoku( \
-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, \
-N30, N31, K32, K33, K34, K35, K36, K37, N38, N39 \
-) \
-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, \
- K33, K34, K35, K36 \
-)
diff --git a/keyboards/a_dux/keymaps/manna-harbour_miryoku/keymap.c b/keyboards/a_dux/keymaps/manna-harbour_miryoku/keymap.c
deleted file mode 100644
index dbab7f9820..0000000000
--- a/keyboards/a_dux/keymaps/manna-harbour_miryoku/keymap.c
+++ /dev/null
@@ -1,4 +0,0 @@
-// Copyright 2019 Manna Harbour
-// https://github.com/manna-harbour/miryoku
-
-// 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/>.
diff --git a/keyboards/a_dux/keymaps/manna-harbour_miryoku/rules.mk b/keyboards/a_dux/keymaps/manna-harbour_miryoku/rules.mk
deleted file mode 100644
index ef40279cbc..0000000000
--- a/keyboards/a_dux/keymaps/manna-harbour_miryoku/rules.mk
+++ /dev/null
@@ -1,4 +0,0 @@
-# Copyright 2021 Manna Harbour
-# https://github.com/manna-harbour/miryoku
-
-MIRYOKU_KLUDGE_THUMBCOMBOS=yes
diff --git a/keyboards/abacus/config.h b/keyboards/abacus/config.h
index ca764a9eeb..84e1acbb3c 100644
--- a/keyboards/abacus/config.h
+++ b/keyboards/abacus/config.h
@@ -17,8 +17,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#pragma once
-#define DIP_SWITCH_PINS { D0 }
-
/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
#define LOCKING_SUPPORT_ENABLE
/* Locking resynchronize hack */
diff --git a/keyboards/abacus/info.json b/keyboards/abacus/info.json
index 2e14782997..ad8ebcc865 100644
--- a/keyboards/abacus/info.json
+++ b/keyboards/abacus/info.json
@@ -13,6 +13,9 @@
"rows": ["D3", "D2", "D4", "C6"]
},
"diode_direction": "COL2ROW",
+ "dip_switch": {
+ "pins": ["D0"]
+ },
"encoder": {
"rotary": [
{"pin_a": "F1", "pin_b": "F0"}
diff --git a/keyboards/abko/ak84bt/ak84bt.c b/keyboards/abko/ak84bt/ak84bt.c
index 0ecd06b177..a51f1f458f 100644
--- a/keyboards/abko/ak84bt/ak84bt.c
+++ b/keyboards/abko/ak84bt/ak84bt.c
@@ -16,7 +16,7 @@
#include QMK_KEYBOARD_H
-const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = {
+const is31fl3733_led_t PROGMEM g_is31fl3733_leds[RGB_MATRIX_LED_COUNT] = {
{0, G_1, I_1, H_1},
{0, G_3, I_3, H_3},
{0, G_4, I_4, H_4},
diff --git a/keyboards/abko/ak84bt/config.h b/keyboards/abko/ak84bt/config.h
index f6a3b55851..0a7f31bf7d 100644
--- a/keyboards/abko/ak84bt/config.h
+++ b/keyboards/abko/ak84bt/config.h
@@ -17,10 +17,9 @@
#pragma once
-#define DRIVER_ADDR_1 0b1010000
-#define DRIVER_ADDR_2 0b1010011
+#define IS31FL3733_I2C_ADDRESS_1 IS31FL3733_I2C_ADDRESS_GND_GND
+#define IS31FL3733_I2C_ADDRESS_2 IS31FL3733_I2C_ADDRESS_GND_VCC
-#define DRIVER_COUNT 2
#define DRIVER_1_LED_TOTAL 45
#define DRIVER_2_LED_TOTAL 45
diff --git a/keyboards/acheron/apollo/87h/gamma/config.h b/keyboards/acheron/apollo/87h/gamma/config.h
index 6209fa21f7..37c0aaef64 100644
--- a/keyboards/acheron/apollo/87h/gamma/config.h
+++ b/keyboards/acheron/apollo/87h/gamma/config.h
@@ -25,12 +25,10 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define EARLY_INIT_PERFORM_BOOTLOADER_JUMP TRUE
// RGB Matrix defines
-#define DRIVER_ADDR_1 0b0110000
+#define IS31FL3741_I2C_ADDRESS_1 IS31FL3741_I2C_ADDRESS_GND
-#define DRIVER_COUNT 1
#define DRIVER_1_LED_TOTAL 87
#define RGB_MATRIX_LED_COUNT DRIVER_1_LED_TOTAL
-#define ISSI_DRIVER_TOTAL RGB_MATRIX_LED_COUNT
#define RGB_MATRIX_DEFAULT_VAL 80
#define RGB_MATRIX_FRAMEBUFFER_EFFECTS
diff --git a/keyboards/acheron/apollo/87h/gamma/gamma.c b/keyboards/acheron/apollo/87h/gamma/gamma.c
index fb381f52ce..19e9106287 100644
--- a/keyboards/acheron/apollo/87h/gamma/gamma.c
+++ b/keyboards/acheron/apollo/87h/gamma/gamma.c
@@ -18,7 +18,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#include "quantum.h"
#ifdef RGB_MATRIX_ENABLE
-const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = {
+const is31fl3741_led_t PROGMEM g_is31fl3741_leds[RGB_MATRIX_LED_COUNT] = {
/* Refer to IS31 manual for these locations
* driver
* | R location
diff --git a/keyboards/acheron/shark/alpha/keymaps/ajp10304/readme.md b/keyboards/acheron/shark/alpha/keymaps/ajp10304/readme.md
deleted file mode 100644
index e091e5d318..0000000000
--- a/keyboards/acheron/shark/alpha/keymaps/ajp10304/readme.md
+++ /dev/null
@@ -1,126 +0,0 @@
-# AJP10304 Custom Shark Layout
-# Also available for the Planck, Quark, JJ40 and Atreus50
-
-**Note:** In the tables below where there are two characters on a key,
-the second is the output when shift is applied.
-
-**Note:** The below tables assume a UK layout.
-
-#### Flashing
-Refer to the README.md of the keyboard you want to flash.
-
-##### Main Qwerty Layer
-
-* Tab: when held, operates as shift.
-* Enter: when held, operates as shift.
-* MENU: perform right-click
-
-| | | | | | | | | | | | |
-| ---- |:----:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| ----:|
-| Esc | Q | W | E | R | T | Y | U | I | O | P | Bksp |
-| Tab | A | S | D | F | G | H | J | K | L | ;: | Enter|
-| Shft | Z | X | C | V | B | N | M | ,< | .> | /? | Shft |
-| Fn | Ctrl | Alt | GUI |Lower | Bksp |Space |Raise | Shift| MENU | Ctrl | Fn2 |
-
-##### Main Colemak-DHm Layer
-
-| | | | | | | | | | | | |
-| ---- |:----:| :---:|:---:|:-----:|:----:|:-----:|:-----:|:-----:|:----:|:----:| ----:|
-| Esc | Q | W | F | P | B | J | L | U | Y | ;: | Bksp |
-| Tab | A | R | S | T | G | M | N | E | I | O | Enter|
-| Shft | Z | X | C | D | V | K | H | ,< | .> | /? | Shft |
-| Fn | Ctrl | Alt | GUI | Lower | Bksp | Space | Raise | Shift | MENU | Ctrl | Fn2 |
-
-##### Function Layer
-Activated when `fn` held in the above `qwerty` layer.
-
-| | | | | | | | | | | | |
-| :---: |:----:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:|
-| F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 |
-| 1! | 2" | 3£ | 4$ | 5% | 6^ | 7& | 8* | 9( | 0) | ~ |INSERT|
-| Shift | \| | `¬ | #~ | * | -_ | =+ | \| | [{ | ]} | '@ |Shift |
-| Fn | Ctrl | Alt | GUI |Lower | Bksp |Space |Mouse | MENU | Alt | Ctrl | Fn2 |
-
-##### Lower Layer
-Activated when `Lower` is held in the above `qwerty` layer.
-
-* Numbers are along the top row, their shifted counterparts are on row 2.
-* WrdBks: `backspace` with `ctrl` applied. I.e. delete a word.
-* WrdDel: `delete` with `ctrl` applied. I.e. forward delete a word.
-
-| | | | | | | | | | | | |
-| :---: |:----:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:|
-| 1! | 2" | 3£ | 4$ | 5% | 6^ | 7& | 8* | 9( | 0) | DEL | Bksp |
-| ! | " | £ | $ | % | ^ | & | * | ( | ) |WrdDel|WrdBks|
-| Shift | \| | `¬ | #~ | '@ | -_ | =+ | #~ | [{ | ]} | '@ |Shift |
-| | | | |Lower | Del |Space | | Next | Vol- | Vol+ | Play |
-
-##### Raise Layer
-Activated when `Raise` is held in the above `qwerty` layer.
-
-* Preferred layer for typing brackets.
-* Allows for cursor navigation to be used solely with the right hand.
-* WRDSEL: Select the word where the cursor is.
-* |< and >|: Apply `ctrl` to `left` and `right` respectively for word jumping.
-
-| | | | | | | | | | | | |
-| :---: |:----:| :---:| :---:| :---:| :---:| :---: | :---:| :---:| :---:| :---: | :---:|
-| ` | |WRDSEL| [ | ] | | | PGUP | HOME |PGDOWN| |PRNTSC|
-| ` | | | ( | ) | | | HOME | UP | END | |ZOOM +|
-| | | | { | } | |&#124;<| LEFT | DOWN |RIGHT |>&#124;|ZOOM -|
-| Mouse | | | | | Alt | Enter |Raise | | | | |
-
-##### Lower + Raise
-Activated when `Lower` and `Raise` are held together in the above `qwerty` layer.
-
-* Audio controls in the same position as cursor keys from the `Raise` layer.
-* ????: Runs a macro for outputting a text string. Do not use this store passwords.
-* Reset: Enter bootloader for flashing firmware to the keyboard.
-* CAPS: Toggle caps lock.
-* Macro functions: Allows recording of macros. To start recording the macro, press either REC1 or REC2.
-To finish the recording, press STOP. To replay the macro, press either PLAY1 or PLAY2.
-* MAC: Toggle MAC OS extensions to layers. This allows MLWR to be enabled with LOWER,
-MRSE with RAISE, MFNC with FUNC and MFNC2 with FUNC2 respectively.
-
-| | | | | | | | | | | | |
-| :---: |:----:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:|:-------:|
-| ???? | Reset|Qwerty| | | REC1 | REC2 | | | | | Del |
-| CAPS | | | | | PLAY1|PLAY2 | Mute | Vol+ | Play | | Qwerty |
-| MAC | | | | | STOP1|STOP2 | Prev | Vol- | Next | | Colemak |
-| | | | | | | | | DYN | | | |
-
-##### Function 2 Layer
-Activated when `fn` held in the above `qwerty` layer.
-* WRDSEL: Select the word where the cursor is.
-* LNDEL: Delete the line where the cursor is.
-* LNSEL: Select the line where the cursor is.
-* DUP: Duplicate the selected text.
-* LNJOIN: Join the line where the cursor is with the following line.
-* MODE: Print either `PC` or `OSX` depending on what layer mode is active.
-
-| | | | | | | | | | | | |
-| :---: | :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:|
-| | |WRDSEL| | | | LNDEL| | | | | |
-| | | LNSEL| DUP | | | | |LNJOIN| | | |
-| | UNDO | CUT | COPY | PASTE| | | | | | | MODE |
-| | | | | | | | | | | | |
-
-##### Mouse Layer
-Activated when `fn` and `raise` held together.
-
-| | | | | | | | | | | | |
-| :---: | :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:|
-| ESC | | | | | | W_L | W_UP | BTN3 | W_DWN| W_R | |
-| ACC0 | ACC1 | ACC2 | | | | | BTN1 | UP | BTN2 | | |
-| ACC0 | ACC1 | ACC2 | | | | | LEFT | DOWN | RIGHT| | |
-| | | | | | | | | | | | |
-
-##### Number Pad Layout
-Activated when holding `Esc` key.
-
-| | | | | | | | | | | | |
-| :---: | :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:|
-| | | | | | |NMLOCK| 7 | 8 | 9 | / | |
-| | | | | | | | 4 | 5 | 6 | * | |
-| | | | | | | | 1 | 2 | 3 | + | |
-| | | | | | | | 0 | . | , | - | |
diff --git a/keyboards/acheron/shark/beta/info.json b/keyboards/acheron/shark/beta/info.json
index 5ec2403638..7daab0a2c0 100644
--- a/keyboards/acheron/shark/beta/info.json
+++ b/keyboards/acheron/shark/beta/info.json
@@ -9,6 +9,9 @@
"rows": ["A8", "B14", "A4", "A3"]
},
"diode_direction": "COL2ROW",
+ "eeprom": {
+ "driver": "i2c"
+ },
"encoder": {
"rotary": [
{"pin_a": "C15", "pin_b": "C14"}
diff --git a/keyboards/acheron/shark/beta/rules.mk b/keyboards/acheron/shark/beta/rules.mk
index a398475a3e..94335efa29 100644
--- a/keyboards/acheron/shark/beta/rules.mk
+++ b/keyboards/acheron/shark/beta/rules.mk
@@ -12,6 +12,3 @@ RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
AUDIO_ENABLE = no # Audio output
LTO_ENABLE = no
ENCODER_ENABLE = yes
-
-EEPROM_DRIVER = i2c
-
diff --git a/keyboards/acheron/themis/87h/config.h b/keyboards/acheron/themis/87h/config.h
index 8a1ff48583..605594eea2 100644
--- a/keyboards/acheron/themis/87h/config.h
+++ b/keyboards/acheron/themis/87h/config.h
@@ -28,6 +28,3 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define WS2812_PWM_PAL_MODE 1
#define WS2812_DMA_STREAM STM32_DMA2_STREAM5
#define WS2812_DMA_CHANNEL 6
-
-#define WEAR_LEVELING_LOGICAL_SIZE 4096
-#define WEAR_LEVELING_BACKING_SIZE 8192
diff --git a/keyboards/acheron/themis/87h/info.json b/keyboards/acheron/themis/87h/info.json
index ed5d48690d..cbff8f4eec 100644
--- a/keyboards/acheron/themis/87h/info.json
+++ b/keyboards/acheron/themis/87h/info.json
@@ -21,6 +21,11 @@
"nkro": true
},
"diode_direction": "COL2ROW",
+ "eeprom": {
+ "wear_leveling": {
+ "backing_size": 8192
+ }
+ },
"ws2812": {
"pin": "B15"
},
diff --git a/keyboards/acheron/themis/87htsc/config.h b/keyboards/acheron/themis/87htsc/config.h
index 8a1ff48583..605594eea2 100644
--- a/keyboards/acheron/themis/87htsc/config.h
+++ b/keyboards/acheron/themis/87htsc/config.h
@@ -28,6 +28,3 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define WS2812_PWM_PAL_MODE 1
#define WS2812_DMA_STREAM STM32_DMA2_STREAM5
#define WS2812_DMA_CHANNEL 6
-
-#define WEAR_LEVELING_LOGICAL_SIZE 4096
-#define WEAR_LEVELING_BACKING_SIZE 8192
diff --git a/keyboards/acheron/themis/87htsc/info.json b/keyboards/acheron/themis/87htsc/info.json
index 854ad5a7d5..5b491690bb 100644
--- a/keyboards/acheron/themis/87htsc/info.json
+++ b/keyboards/acheron/themis/87htsc/info.json
@@ -21,6 +21,11 @@
"nkro": true
},
"diode_direction": "COL2ROW",
+ "eeprom": {
+ "wear_leveling": {
+ "backing_size": 8192
+ }
+ },
"ws2812": {
"pin": "B15"
},
diff --git a/keyboards/acheron/themis/88htsc/config.h b/keyboards/acheron/themis/88htsc/config.h
index 8a1ff48583..605594eea2 100644
--- a/keyboards/acheron/themis/88htsc/config.h
+++ b/keyboards/acheron/themis/88htsc/config.h
@@ -28,6 +28,3 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define WS2812_PWM_PAL_MODE 1
#define WS2812_DMA_STREAM STM32_DMA2_STREAM5
#define WS2812_DMA_CHANNEL 6
-
-#define WEAR_LEVELING_LOGICAL_SIZE 4096
-#define WEAR_LEVELING_BACKING_SIZE 8192
diff --git a/keyboards/acheron/themis/88htsc/info.json b/keyboards/acheron/themis/88htsc/info.json
index cfce0702eb..073a16e946 100644
--- a/keyboards/acheron/themis/88htsc/info.json
+++ b/keyboards/acheron/themis/88htsc/info.json
@@ -21,6 +21,11 @@
"nkro": true
},
"diode_direction": "COL2ROW",
+ "eeprom": {
+ "wear_leveling": {
+ "backing_size": 8192
+ }
+ },
"ws2812": {
"pin": "B15"
},
diff --git a/keyboards/adafruit/macropad/keymaps/drashna/config.h b/keyboards/adafruit/macropad/keymaps/drashna/config.h
deleted file mode 100644
index 4d85f039be..0000000000
--- a/keyboards/adafruit/macropad/keymaps/drashna/config.h
+++ /dev/null
@@ -1,7 +0,0 @@
-// Copyright 2023 Christopher Courtney, aka Drashna Jael're (@drashna) <drashna@live.com>
-// SPDX-License-Identifier: GPL-2.0-or-later
-
-#pragma once
-
-#define PICO_XOSC_STARTUP_DELAY_MULTIPLIER 64
-#define TAPPING_TERM 499
diff --git a/keyboards/adafruit/macropad/keymaps/drashna/keymap.c b/keyboards/adafruit/macropad/keymaps/drashna/keymap.c
deleted file mode 100644
index d87e4afd66..0000000000
--- a/keyboards/adafruit/macropad/keymaps/drashna/keymap.c
+++ /dev/null
@@ -1,100 +0,0 @@
-// Copyright 2023 Christopher Courtney, aka Drashna Jael're (@drashna) <drashna@live.com>
-// SPDX-License-Identifier: GPL-2.0-or-later
-
-#include "drashna.h"
-
-// clang-format off
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [0] = LAYOUT(
- LT(1,KC_MUTE),
- KC_ENT, KC_0, KC_BSPC,
- KC_7, KC_8, KC_9,
- KC_4, KC_5, KC_6,
- KC_1, KC_2, KC_3
- ),
- [1] = LAYOUT(
- _______,
- CK_TOGG, AU_TOGG, _______,
- _______, _______, _______,
- _______, _______, _______,
- _______, _______, _______
- ),
-};
-// clang-format on
-
-#ifdef ENCODER_MAP_ENABLE
-const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = {
- [0] = {ENCODER_CCW_CW(KC_VOLD, KC_VOLU)},
- [1] = {ENCODER_CCW_CW(RGB_RMOD, RGB_MOD)},
-};
-#endif
-
-void render_oled_title(bool side) {
- oled_write_P(PSTR(" Macropad "), true);
-}
-
-void render_rgb_mode(uint8_t col, uint8_t line);
-
-void l_render_keylock_status(led_t led_usb_state, uint8_t col, uint8_t line) {
- oled_set_cursor(col, line);
-#ifdef CAPS_WORD_ENABLE
- led_usb_state.caps_lock |= is_caps_word_on();
-#endif
- oled_write_P(PSTR(OLED_RENDER_LOCK_NUML), led_usb_state.num_lock);
- oled_write_P(PSTR(" "), false);
- oled_write_P(PSTR(OLED_RENDER_LOCK_CAPS), led_usb_state.caps_lock);
- oled_write_P(PSTR(" "), false);
- oled_write_P(PSTR(OLED_RENDER_LOCK_SCLK), led_usb_state.scroll_lock);
-}
-
-bool oled_task_keymap(void) {
- oled_write_raw_P(header_image, sizeof(header_image));
- oled_set_cursor(0, 1);
- oled_write_raw_P(row_2_image, sizeof(row_2_image));
- oled_set_cursor(4, 0);
- render_oled_title(false);
-
- render_kitty(0, 2);
- render_matrix_scan_rate(1, 7, 2);
-
-#ifdef AUDIO_ENABLE
- oled_set_cursor(7, 4);
- bool l_is_audio_on = is_audio_on();
-
- static const char PROGMEM audio_status[2][3] = {{0xE0, 0xE1, 0}, {0xE2, 0xE3, 0}};
- oled_write_P(audio_status[l_is_audio_on], false);
-
-# ifdef AUDIO_CLICKY
- bool l_is_clicky_on = is_clicky_on();
- static const char PROGMEM audio_clicky_status[2][3] = {{0xF4, 0xF5, 0}, {0xF6, 0xF7, 0}};
- oled_write_P(audio_clicky_status[l_is_clicky_on && l_is_audio_on], false);
-# endif
-#endif
-
- static const char PROGMEM cat_mode[3] = {0xF8, 0xF9, 0};
- oled_write_P(cat_mode, get_keyboard_lock());
-
-#ifdef RGB_MATIRX_ENABLE
- static const char PROGMEM rgb_layer_status[2][3] = {{0xEE, 0xEF, 0}, {0xF0, 0xF1, 0}};
- oled_write_P(rgb_layer_status[rgb_matrix_is_enabled()], false);
-#endif
-
-#ifdef HAPTIC_ENABLE
- static const char PROGMEM nukem_good[2] = {0xFA, 0};
- oled_write_P(haptic_get_enable() ? nukem_good : PSTR(" "), false);
-#endif
-
- l_render_keylock_status(host_keyboard_led_state(), 7, 5);
- render_rgb_mode(1, 6);
-
- for (uint8_t i = 1; i < 7; i++) {
- oled_set_cursor(0, i);
- oled_write_raw_P(display_border, sizeof(display_border));
- oled_set_cursor(21, i);
- oled_write_raw_P(display_border, sizeof(display_border));
- }
- oled_set_cursor(0, 7);
- oled_write_raw_P(footer_image, sizeof(footer_image));
-
- return false;
-}
diff --git a/keyboards/adafruit/macropad/keymaps/drashna/rules.mk b/keyboards/adafruit/macropad/keymaps/drashna/rules.mk
deleted file mode 100644
index ea090a5756..0000000000
--- a/keyboards/adafruit/macropad/keymaps/drashna/rules.mk
+++ /dev/null
@@ -1,3 +0,0 @@
-ENCODER_MAP_ENABLE = yes
-DEBUG_MATRIX_SCAN_RATE_ENABLE = api
-WPM_ENABLE = yes
diff --git a/keyboards/adafruit/macropad/keymaps/peterfalken/keymap.c b/keyboards/adafruit/macropad/keymaps/peterfalken/keymap.c
deleted file mode 100644
index f232a99861..0000000000
--- a/keyboards/adafruit/macropad/keymaps/peterfalken/keymap.c
+++ /dev/null
@@ -1,98 +0,0 @@
-// Copyright 2023 Peter.Falken (@PeterFalken)
-// SPDX-License-Identifier: GPL-2.0-or-later
-
-#include "peterfalken.h"
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [0] = LAYOUT(
- KC_MUTE,
- KC_7, KC_8, KC_9,
- KC_4, KC_5, KC_6,
- KC_1, KC_2, KC_3,
- KC_ENT, KC_0, KC_BSPC
- )
-};
-
-#ifdef ENCODER_MAP_ENABLE
-const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = {
- [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) },
-};
-#endif
-
-#ifdef OLED_ENABLE
-static void render_qmk_logo(void) {
- static const char PROGMEM qmk_logo[] = {
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x3f, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3e, 0x3f, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f,
- 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x3f,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x03, 0x83, 0x83, 0x83, 0x83, 0x83, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xfe,
- 0xfe, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xfe, 0xfe, 0xfe, 0xfe, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x83, 0x83, 0x83, 0x83, 0x83, 0x03,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x81, 0x83, 0x83, 0x83, 0x83, 0x83, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff,
- 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x83, 0x83, 0x83, 0x83, 0x83, 0x81,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x01, 0x07, 0x1f, 0x3f, 0x7f, 0x7e, 0xf8, 0xf0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xff, 0xff,
- 0xff, 0xff, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xf0, 0xf8, 0x7e, 0x7f, 0x3f, 0x1f, 0x07, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0xff, 0xff,
- 0xff, 0xff, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0xfc, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7c, 0xfc, 0x7c, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc,
- 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x7c, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xfc,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
- };
-
- oled_write_raw_P(qmk_logo, sizeof(qmk_logo));
-}
-
-bool oled_task_user(void) {
- render_qmk_logo();
- return true;
-}
-#endif // OLED_ENABLE
diff --git a/keyboards/adafruit/macropad/keymaps/peterfalken/rules.mk b/keyboards/adafruit/macropad/keymaps/peterfalken/rules.mk
deleted file mode 100644
index 59ffb099c2..0000000000
--- a/keyboards/adafruit/macropad/keymaps/peterfalken/rules.mk
+++ /dev/null
@@ -1,3 +0,0 @@
-# Setup QMK features
-ENCODER_MAP_ENABLE = yes
-RGB_MATRIX_ENABLE = no # Disable RGB key matrix
diff --git a/keyboards/adm42/config.h b/keyboards/adm42/config.h
deleted file mode 100644
index b5ba2eb94e..0000000000
--- a/keyboards/adm42/config.h
+++ /dev/null
@@ -1,21 +0,0 @@
-/* Copyright 2020-2022 Lorenzo Leonini
- * SPDX-License-Identifier: GPL-2.0-only
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- *
- * 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
-
-#if defined(CONSOLE_ENABLE)
- #define DEBUG_MATRIX_SCAN_RATE
-#endif
diff --git a/keyboards/adm42/info.json b/keyboards/adm42/info.json
deleted file mode 100644
index b2bdbc4dad..0000000000
--- a/keyboards/adm42/info.json
+++ /dev/null
@@ -1,90 +0,0 @@
-{
- "keyboard_name": "ADM42",
- "manufacturer": "Lorenzo Leonini",
- "url": "https://adm42.dev/",
- "maintainer": "lleonini",
- "debounce": 10,
- "usb": {
- "vid": "0x04D8",
- "pid": "0xE873",
- "device_version": "0.0.1"
- },
- "ws2812": {
- "pin": "B7"
- },
- "rgb_matrix": {
- "driver": "ws2812",
- "sat_steps": 24
- },
- "qmk": {
- "tap_keycode_delay": 1
- },
- "build": {
- "debounce_type": "sym_eager_pk"
- },
- "matrix_pins": {
- "cols": ["C6", "B6", "B5", "B4", "D7", "D6", "F0", "F1", "F4", "F5", "F6", "F7"],
- "rows": ["C7", "D5", "D3", "D2"]
- },
- "diode_direction": "ROW2COL",
- "processor": "atmega32u4",
- "bootloader": "atmel-dfu",
- "layout_aliases": {
- "LAYOUT_adm42_3x12_6": "LAYOUT"
- },
- "layouts": {
- "LAYOUT": {
- "layout": [
- {"matrix": [0, 0], "x": 0, "y": 0.8},
- {"matrix": [0, 1], "x": 1, "y": 0.8},
- {"matrix": [0, 2], "x": 2, "y": 0},
- {"matrix": [0, 3], "x": 3, "y": 0},
- {"matrix": [0, 4], "x": 4, "y": 0.5},
- {"matrix": [0, 5], "x": 5, "y": 0.5},
-
- {"matrix": [0, 6], "x": 7.5, "y": 0.5},
- {"matrix": [0, 7], "x": 8.5, "y": 0.5},
- {"matrix": [0, 8], "x": 9.5, "y": 0},
- {"matrix": [0, 9], "x": 10.5, "y": 0},
- {"matrix": [0, 10], "x": 11.5, "y": 0.8},
- {"matrix": [0, 11], "x": 12.5, "y": 0.8},
-
- {"matrix": [1, 0], "x": 0, "y": 1.8},
- {"matrix": [1, 1], "x": 1, "y": 1.8},
- {"matrix": [1, 2], "x": 2, "y": 1},
- {"matrix": [1, 3], "x": 3, "y": 1},
- {"matrix": [1, 4], "x": 4, "y": 1.5},
- {"matrix": [1, 5], "x": 5, "y": 1.5},
-
- {"matrix": [1, 6], "x": 7.5, "y": 1.5},
- {"matrix": [1, 7], "x": 8.5, "y": 1.5},
- {"matrix": [1, 8], "x": 9.5, "y": 1},
- {"matrix": [1, 9], "x": 10.5, "y": 1},
- {"matrix": [1, 10], "x": 11.5, "y": 1.8},
- {"matrix": [1, 11], "x": 12.5, "y": 1.8},
-
- {"matrix": [2, 0], "x": 0, "y": 2.8},
- {"matrix": [2, 1], "x": 1, "y": 2.8},
- {"matrix": [2, 2], "x": 2, "y": 2},
- {"matrix": [2, 3], "x": 3, "y": 2},
- {"matrix": [2, 4], "x": 4, "y": 2.5},
- {"matrix": [2, 5], "x": 5, "y": 2.5},
-
- {"matrix": [2, 6], "x": 7.5, "y": 2.5},
- {"matrix": [2, 7], "x": 8.5, "y": 2.5},
- {"matrix": [2, 8], "x": 9.5, "y": 2},
- {"matrix": [2, 9], "x": 10.5, "y": 2},
- {"matrix": [2, 10], "x": 11.5, "y": 2.8},
- {"matrix": [2, 11], "x": 12.5, "y": 2.8},
-
- {"matrix": [3, 3], "x": 4.25, "y": 3.55},
- {"matrix": [3, 4], "x": 5.25, "y": 3.65},
- {"matrix": [3, 6], "x": 6.25, "y": 1.875, "h": 1.25},
-
- {"matrix": [3, 5], "x": 6.25, "y": 4.05},
- {"matrix": [3, 7], "x": 7.25, "y": 3.65},
- {"matrix": [3, 8], "x": 8.25, "y": 3.55}
- ]
- }
- }
-}
diff --git a/keyboards/adm42/rev4/config.h b/keyboards/adm42/rev4/config.h
deleted file mode 100644
index 5553b18751..0000000000
--- a/keyboards/adm42/rev4/config.h
+++ /dev/null
@@ -1,44 +0,0 @@
-/* Copyright 2020-2022 Lorenzo Leonini
- * SPDX-License-Identifier: GPL-2.0-only
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- *
- * 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 ADM42_LED E6
-
-#define RGB_MATRIX_LED_COUNT 42
-#define RGB_MATRIX_MAXIMUM_BRIGHTNESS 170
-#define RGB_DISABLE_WHEN_USB_SUSPENDED
-#define RGB_MATRIX_LED_PROCESS_LIMIT 21
-#define RGB_MATRIX_LED_FLUSH_LIMIT 16
-#define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_CYCLE_LEFT_RIGHT
-#define RGB_MATRIX_TYPING_HEATMAP_DECREASE_DELAY_MS 20
-#define RGB_MATRIX_KEYPRESSES
-#define RGB_MATRIX_FRAMEBUFFER_EFFECTS
-
-#define ENABLE_RGB_MATRIX_BREATHING
-#define ENABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT
-#define ENABLE_RGBLIGHT_MODE_STATIC_LIGHT
-#define ENABLE_RGB_MATRIX_CYCLE_UP_DOWN
-#define ENABLE_RGB_MATRIX_PIXEL_FRACTAL
-#define ENABLE_RGB_MATRIX_TYPING_HEATMAP
-#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE
-#define ENABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS
-#define ENABLE_RGB_MATRIX_CYCLE_OUT_IN
-#define ENABLE_RGB_MATRIX_CYCLE_PINWHEEL
-#define ENABLE_RGB_MATRIX_PIXEL_RAIN
-#define ENABLE_RGB_MATRIX_DIGITAL_RAIN
-#define ENABLE_RGB_MATRIX_BAND_VAL
-#define ENABLE_RGB_MATRIX_SPLASH
diff --git a/keyboards/adm42/rev4/info.json b/keyboards/adm42/rev4/info.json
new file mode 100644
index 0000000000..efb0eea029
--- /dev/null
+++ b/keyboards/adm42/rev4/info.json
@@ -0,0 +1,163 @@
+{
+ "keyboard_name": "ADM42",
+ "manufacturer": "Lorenzo Leonini",
+ "url": "https://adm42.dev/",
+ "maintainer": "lleonini",
+ "debounce": 10,
+ "usb": {
+ "vid": "0x04D8",
+ "pid": "0xE873",
+ "device_version": "0.0.1"
+ },
+ "features": {
+ "bootmagic": true,
+ "command": false,
+ "console": false,
+ "extrakey": true,
+ "mousekey": true,
+ "nkro": true,
+ "rgb_matrix": true
+ },
+ "ws2812": {
+ "pin": "B7"
+ },
+ "rgb_matrix": {
+ "driver": "ws2812",
+ "animations": {
+ "breathing": true,
+ "band_val": true,
+ "cycle_left_right": true,
+ "cycle_up_down": true,
+ "cycle_out_in": true,
+ "cycle_pinwheel": true,
+ "jellybean_raindrops": true,
+ "pixel_fractal": true,
+ "pixel_rain": true,
+ "typing_heatmap": true,
+ "digital_rain": true,
+ "solid_reactive_simple": true,
+ "splash": true
+ },
+ "layout": [
+ {"matrix": [3, 6], "x": 112, "y": 32, "flags": 4},
+ {"matrix": [2, 5], "x": 92, "y": 36, "flags": 4},
+ {"matrix": [1, 5], "x": 94, "y": 25, "flags": 4},
+ {"matrix": [0, 5], "x": 97, "y": 14, "flags": 4},
+ {"matrix": [0, 4], "x": 80, "y": 13, "flags": 4},
+ {"matrix": [1, 4], "x": 77, "y": 24, "flags": 4},
+ {"matrix": [1, 3], "x": 62, "y": 18, "flags": 4},
+ {"matrix": [0, 3], "x": 64, "y": 8, "flags": 4},
+ {"matrix": [0, 2], "x": 49, "y": 6, "flags": 4},
+ {"matrix": [1, 2], "x": 46, "y": 17, "flags": 4},
+ {"matrix": [1, 1], "x": 28, "y": 23, "flags": 4},
+ {"matrix": [0, 1], "x": 30, "y": 13, "flags": 4},
+ {"matrix": [0, 0], "x": 14, "y": 11, "flags": 4},
+ {"matrix": [1, 0], "x": 11, "y": 22, "flags": 4},
+ {"matrix": [2, 0], "x": 8, "y": 32, "flags": 4},
+ {"matrix": [2, 1], "x": 26, "y": 34, "flags": 4},
+ {"matrix": [2, 2], "x": 43, "y": 28, "flags": 4},
+ {"matrix": [2, 3], "x": 61, "y": 29, "flags": 4},
+ {"matrix": [2, 4], "x": 76, "y": 34, "flags": 4},
+ {"matrix": [3, 3], "x": 78, "y": 46, "flags": 4},
+ {"matrix": [3, 4], "x": 97, "y": 49, "flags": 4},
+ {"matrix": [3, 5], "x": 112, "y": 56, "flags": 4},
+ {"matrix": [3, 7], "x": 127, "y": 49, "flags": 4},
+ {"matrix": [3, 8], "x": 146, "y": 46, "flags": 4},
+ {"matrix": [2, 6], "x": 132, "y": 36, "flags": 4},
+ {"matrix": [2, 7], "x": 148, "y": 34, "flags": 4},
+ {"matrix": [2, 8], "x": 164, "y": 29, "flags": 4},
+ {"matrix": [2, 9], "x": 180, "y": 28, "flags": 4},
+ {"matrix": [2, 10], "x": 198, "y": 34, "flags": 4},
+ {"matrix": [2, 11], "x": 215, "y": 32, "flags": 4},
+ {"matrix": [1, 11], "x": 212, "y": 22, "flags": 4},
+ {"matrix": [1, 10], "x": 196, "y": 23, "flags": 4},
+ {"matrix": [1, 9], "x": 178, "y": 17, "flags": 4},
+ {"matrix": [1, 8], "x": 161, "y": 18, "flags": 4},
+ {"matrix": [1, 7], "x": 146, "y": 24, "flags": 4},
+ {"matrix": [1, 6], "x": 130, "y": 25, "flags": 4},
+ {"matrix": [0, 6], "x": 126, "y": 14, "flags": 4},
+ {"matrix": [0, 7], "x": 143, "y": 13, "flags": 4},
+ {"matrix": [0, 8], "x": 159, "y": 8, "flags": 4},
+ {"matrix": [0, 9], "x": 175, "y": 6, "flags": 4},
+ {"matrix": [0, 10], "x": 194, "y": 13, "flags": 4},
+ {"matrix": [0, 11], "x": 210, "y": 11, "flags": 4}
+ ],
+ "led_flush_limit": 16,
+ "led_process_limit": 21,
+ "max_brightness": 170,
+ "sat_steps": 24,
+ "sleep": true
+ },
+ "qmk": {
+ "tap_keycode_delay": 1
+ },
+ "build": {
+ "debounce_type": "sym_eager_pk",
+ "lto": true
+ },
+ "matrix_pins": {
+ "cols": ["C6", "B6", "B5", "B4", "D7", "D6", "F0", "F1", "F4", "F5", "F6", "F7"],
+ "rows": ["C7", "D5", "D3", "D2"]
+ },
+ "diode_direction": "ROW2COL",
+ "processor": "atmega32u4",
+ "bootloader": "atmel-dfu",
+ "layout_aliases": {
+ "LAYOUT_adm42_3x12_6": "LAYOUT"
+ },
+ "layouts": {
+ "LAYOUT": {
+ "layout": [
+ {"matrix": [0, 0], "x": 0, "y": 0.8},
+ {"matrix": [0, 1], "x": 1, "y": 0.8},
+ {"matrix": [0, 2], "x": 2, "y": 0},
+ {"matrix": [0, 3], "x": 3, "y": 0},
+ {"matrix": [0, 4], "x": 4, "y": 0.5},
+ {"matrix": [0, 5], "x": 5, "y": 0.5},
+
+ {"matrix": [0, 6], "x": 7.5, "y": 0.5},
+ {"matrix": [0, 7], "x": 8.5, "y": 0.5},
+ {"matrix": [0, 8], "x": 9.5, "y": 0},
+ {"matrix": [0, 9], "x": 10.5, "y": 0},
+ {"matrix": [0, 10], "x": 11.5, "y": 0.8},
+ {"matrix": [0, 11], "x": 12.5, "y": 0.8},
+
+ {"matrix": [1, 0], "x": 0, "y": 1.8},
+ {"matrix": [1, 1], "x": 1, "y": 1.8},
+ {"matrix": [1, 2], "x": 2, "y": 1},
+ {"matrix": [1, 3], "x": 3, "y": 1},
+ {"matrix": [1, 4], "x": 4, "y": 1.5},
+ {"matrix": [1, 5], "x": 5, "y": 1.5},
+
+ {"matrix": [1, 6], "x": 7.5, "y": 1.5},
+ {"matrix": [1, 7], "x": 8.5, "y": 1.5},
+ {"matrix": [1, 8], "x": 9.5, "y": 1},
+ {"matrix": [1, 9], "x": 10.5, "y": 1},
+ {"matrix": [1, 10], "x": 11.5, "y": 1.8},
+ {"matrix": [1, 11], "x": 12.5, "y": 1.8},
+
+ {"matrix": [2, 0], "x": 0, "y": 2.8},
+ {"matrix": [2, 1], "x": 1, "y": 2.8},
+ {"matrix": [2, 2], "x": 2, "y": 2},
+ {"matrix": [2, 3], "x": 3, "y": 2},
+ {"matrix": [2, 4], "x": 4, "y": 2.5},
+ {"matrix": [2, 5], "x": 5, "y": 2.5},
+
+ {"matrix": [2, 6], "x": 7.5, "y": 2.5},
+ {"matrix": [2, 7], "x": 8.5, "y": 2.5},
+ {"matrix": [2, 8], "x": 9.5, "y": 2},
+ {"matrix": [2, 9], "x": 10.5, "y": 2},
+ {"matrix": [2, 10], "x": 11.5, "y": 2.8},
+ {"matrix": [2, 11], "x": 12.5, "y": 2.8},
+
+ {"matrix": [3, 3], "x": 4.25, "y": 3.55},
+ {"matrix": [3, 4], "x": 5.25, "y": 3.65},
+ {"matrix": [3, 6], "x": 6.25, "y": 1.875, "h": 1.25},
+
+ {"matrix": [3, 5], "x": 6.25, "y": 4.05},
+ {"matrix": [3, 7], "x": 7.25, "y": 3.65},
+ {"matrix": [3, 8], "x": 8.25, "y": 3.55}
+ ]
+ }
+ }
+}
diff --git a/keyboards/adm42/rev4/keymaps/default/config.h b/keyboards/adm42/rev4/keymaps/default/config.h
deleted file mode 100644
index abfaf9af78..0000000000
--- a/keyboards/adm42/rev4/keymaps/default/config.h
+++ /dev/null
@@ -1,2 +0,0 @@
-#define HOLD_ON_OTHER_KEY_PRESS_PER_KEY
-#define QUICK_TAP_TERM_PER_KEY
diff --git a/keyboards/adm42/rev4/keymaps/default/keymap.c b/keyboards/adm42/rev4/keymaps/default/keymap.c
deleted file mode 100644
index 12e4e85a4a..0000000000
--- a/keyboards/adm42/rev4/keymaps/default/keymap.c
+++ /dev/null
@@ -1,204 +0,0 @@
-/* Copyright 2020-2022 Lorenzo Leonini
- * SPDX-License-Identifier: GPL-2.0-only
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-#include QMK_KEYBOARD_H
-
-enum custom_layers {
- _QWERTY,
- _COLEMAKDH,
- _SPECIAL,
- _EXTRA,
- _ADM,
- _SETUP,
-};
-
-#define LW_GRV LWIN_T(KC_GRV)
-#define RW_EQU RWIN_T(KC_EQUAL)
-#define RW_BS RWIN_T(KC_BSLS)
-#define LC_TAB LCTL_T(KC_TAB)
-#define RC_QUT RCTL_T(KC_QUOT)
-#define LS_BPC LSFT_T(KC_BSPC)
-#define RS_SPC RSFT_T(KC_SPC)
-#define LA_BS LALT_T(KC_BSLS)
-#define LW_F11 LWIN_T(KC_F11)
-#define LC_APP LCTL_T(KC_APP)
-#define LA_TOG LALT_T(RGB_TOG)
-#define RW_F12 RWIN_T(KC_F12)
-
-#define LLS_ESC LT(_SPECIAL, KC_ESC)
-#define LLS_RALT LT(_SPECIAL, KC_RALT)
-#define LLE_ENT LT(_EXTRA, KC_ENT)
-#define LLA_DEL LT(_ADM, KC_DEL)
-#define SETUP MO(_SETUP)
-
-enum custom_keycodes {
- REFLASH = SAFE_RANGE,
- LC_CIRC,
- RC_DLR,
- DF_QWER,
- DF_COLE,
-};
-
-// Not a mistake to have KC_LALT (also) on the right, RALT is kept for compose (LLS_RALT)
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [_QWERTY] = LAYOUT(
- LW_GRV, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, RW_EQU,
- LC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, RC_QUT,
- KC_LALT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_LALT,
- LLS_ESC, LS_BPC, LLA_DEL, LLE_ENT, RS_SPC, LLS_RALT
- ),
- [_COLEMAKDH] = LAYOUT(
- LW_GRV, KC_Q, KC_W, KC_F, KC_P, KC_B, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, RW_EQU,
- LC_TAB, KC_A, KC_R, KC_S, KC_T, KC_G, KC_M, KC_N, KC_E, KC_I, KC_O, RC_QUT,
- KC_LALT, KC_Z, KC_X, KC_C, KC_D, KC_V, KC_K, KC_H, KC_COMM, KC_DOT, KC_SLSH, KC_LALT,
- LLS_ESC, LS_BPC, LLA_DEL, LLE_ENT, RS_SPC, LLS_RALT
- ),
-
- [_SPECIAL] = LAYOUT(
- _______, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, RW_BS,
- LC_CIRC, KC_LBRC, KC_RBRC, KC_LPRN, KC_RPRN, KC_EXLM, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_MINS, RC_DLR,
- _______, KC_AMPR, KC_AT, KC_LCBR, KC_RCBR, KC_PIPE, KC_UNDS, KC_ASTR, KC_HASH, KC_PERC, KC_TILD, _______,
- KC_ESC, _______, KC_DEL, KC_ENT, _______, KC_RALT
- ),
- [_EXTRA] = LAYOUT(
- LW_F11, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, RW_F12,
- KC_LCTL, KC_PAUS, KC_INS, KC_VOLD, KC_VOLU, KC_MUTE, KC_HOME, KC_PGDN, KC_PGUP, KC_END, KC_APP, KC_RCTL,
- _______, KC_SLEP, KC_PWR, KC_MSTP, KC_MNXT, KC_MPLY, _______, KC_BRID, KC_BRIU, KC_PSCR, KC_WAKE, _______,
- KC_CAPS, _______, _______, _______, _______, KC_CAPS
- ),
- [_ADM] = LAYOUT(
- XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_M_B, RGB_VAD, RGB_VAI, RGB_SAD, RGB_SAI, XXXXXXX,
- XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_TOG, RGB_MOD, RGB_RMOD,RGB_HUD, RGB_HUI, XXXXXXX,
- XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_M_P, RGB_SPD, RGB_SPI, XXXXXXX, XXXXXXX, XXXXXXX,
- XXXXXXX, XXXXXXX, XXXXXXX, SETUP, XXXXXXX, XXXXXXX
- ),
- [_SETUP] = LAYOUT(
- REFLASH, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
- XXXXXXX, DF_QWER, DF_COLE, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
- XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, EE_CLR,
- XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX
- ),
-};
-
-bool get_hold_on_other_key_press(uint16_t keycode, keyrecord_t *record) {
- // Special if-condition outside the switch because `RC_QUT` overlaps with
- // the `QK_MOD_TAP ... QK_MOD_TAP_MAX` range.
- if (keycode == RC_QUT) {
- return false;
- }
- switch (keycode) {
- case QK_MOD_TAP ... QK_MOD_TAP_MAX:
- case QK_LAYER_TAP ... QK_LAYER_TAP_MAX:
- return true;
- default:
- return false;
- }
-}
-
-uint16_t get_quick_tap_term(uint16_t keycode, keyrecord_t *record) {
- switch (keycode) {
- case LLS_ESC:
- case LLS_RALT:
- return 0;
- default:
- return QUICK_TAP_TERM;
- }
-}
-
-static uint16_t last_timer = 0;
-static int last_key = 0;
-bool cleanup_return(uint16_t keycode, keyrecord_t *record, bool value) {
- if (record->event.pressed) {
- last_key = keycode;
- last_timer = timer_read();
- }
- return value;
-}
-
-bool process_record_user(uint16_t keycode, keyrecord_t *record) {
-
-#ifdef CONSOLE_ENABLE
- uprintf("KL: kc: 0x%04X, col: %u, row: %u, pressed: %b, time: %u, interrupt: %b, count: %u\n", keycode, record->event.key.col, record->event.key.row, record->event.pressed, record->event.time, record->tap.interrupted, record->tap.count);
-#endif
-
- switch (keycode) {
-
- case RC_DLR:
- if (record->event.pressed) {
- register_code(KC_RCTL);
- } else {
- unregister_code(KC_RCTL);
- if (last_key == keycode && timer_elapsed(last_timer) <= TAPPING_TERM) {
- send_string("$");
- }
- }
- return cleanup_return(keycode, record, false);
-
- case LC_CIRC:
- if (record->event.pressed) {
- register_code(KC_LCTL);
- } else {
- unregister_code(KC_LCTL);
- if (last_key == keycode && timer_elapsed(last_timer) <= TAPPING_TERM) {
- send_string("^");
- }
- }
- return cleanup_return(keycode, record, false);
-
- case DF_QWER:
- if (record->event.pressed) {
- set_single_persistent_default_layer(_QWERTY);
- send_string("QWERTY layout");
- }
- return false;
- case DF_COLE:
- if (record->event.pressed) {
- set_single_persistent_default_layer(_COLEMAKDH);
- send_string("COLEMAKDH layout");
- }
- return false;
-
- case REFLASH:
- eeconfig_init();
- eeconfig_update_rgb_matrix_default();
- writePinLow(ADM42_LED);
- reset_keyboard();
- return false;
-
- default:
- return cleanup_return(keycode, record, true);
- }
-}
-
-void keyboard_pre_init_kb(void) {
- setPinOutput(ADM42_LED);
- writePinHigh(ADM42_LED);
-}
-
-void keyboard_post_init_kb(void) {
- debug_enable = true;
- debug_matrix = false;
- debug_keyboard = false;
- writePinHigh(ADM42_LED);
-}
-
-void suspend_power_down_kb(void) {
- writePinLow(ADM42_LED);
-}
-
-void suspend_wakeup_init_kb(void) {
- writePinHigh(ADM42_LED);
-}
diff --git a/keyboards/adm42/rev4/keymaps/default/keymap.json b/keyboards/adm42/rev4/keymaps/default/keymap.json
new file mode 100644
index 0000000000..72eb7d50de
--- /dev/null
+++ b/keyboards/adm42/rev4/keymaps/default/keymap.json
@@ -0,0 +1,44 @@
+{
+ "keyboard": "adm42/rev4",
+ "keymap": "default",
+ "commit": "3bf01bb9ed202b14f78105db2aa2a75d01fc4323",
+ "layout": "LAYOUT",
+ "layers": [
+ [
+ "LWIN_T(KC_GRV)", "KC_Q", "KC_W", "KC_E", "KC_R", "KC_T", "KC_Y", "KC_U", "KC_I", "KC_O", "KC_P", "RWIN_T(KC_EQL)",
+ "LCTL_T(KC_TAB)", "KC_A", "KC_S", "KC_D", "KC_F", "KC_G", "KC_H", "KC_J", "KC_K", "KC_L", "KC_SCLN", "RCTL_T(KC_QUOT)",
+ "KC_LALT", "KC_Z", "KC_X", "KC_C", "KC_V", "KC_B", "KC_N", "KC_M", "KC_COMM", "KC_DOT", "KC_SLSH", "KC_LALT",
+ "LT(2,KC_ESC)", "LSFT_T(KC_BSPC)", "LT(4,KC_DEL)", "LT(3,KC_ENT)", "RSFT_T(KC_SPC)", "LT(2,KC_RALT)"
+ ],
+ [
+ "LWIN_T(KC_GRV)", "KC_Q", "KC_W", "KC_F", "KC_P", "KC_B", "KC_J", "KC_L", "KC_U", "KC_Y", "KC_SCLN", "RWIN_T(KC_EQL)",
+ "LCTL_T(KC_TAB)", "KC_A", "KC_R", "KC_S", "KC_T", "KC_G", "KC_M", "KC_N", "KC_E", "KC_I", "KC_O", "RCTL_T(KC_QUOT)",
+ "KC_LALT", "KC_Z", "KC_X", "KC_C", "KC_D", "KC_V", "KC_K", "KC_H", "KC_COMM", "KC_DOT", "KC_SLSH", "KC_LALT",
+ "LT(2,KC_ESC)", "LSFT_T(KC_BSPC)", "LT(4,KC_DEL)", "LT(3,KC_ENT)", "RSFT_T(KC_SPC)", "LT(2,KC_RALT)"
+ ],
+ [
+ "_______", "KC_1", "KC_2", "KC_3", "KC_4", "KC_5", "KC_6", "KC_7", "KC_8", "KC_9", "KC_0", "RWIN_T(KC_BSLS)",
+ "KC_LCTL", "KC_LBRC", "KC_RBRC", "KC_LPRN", "KC_RPRN", "KC_EXLM", "KC_LEFT", "KC_DOWN", "KC_UP", "KC_RGHT", "KC_MINS", "KC_RCTL",
+ "_______", "KC_AMPR", "KC_AT", "KC_LCBR", "KC_RCBR", "KC_PIPE", "KC_UNDS", "KC_ASTR", "KC_HASH", "KC_PERC", "KC_TILD", "_______",
+ "KC_ESC", "_______", "KC_DEL", "KC_ENT", "_______", "KC_RALT"
+ ],
+ [
+ "LWIN_T(KC_F11)", "KC_F1", "KC_F2", "KC_F3", "KC_F4", "KC_F5", "KC_F6", "KC_F7", "KC_F8", "KC_F9", "KC_F10", "RWIN_T(KC_F12)",
+ "KC_LCTL", "KC_PAUS", "KC_INS", "KC_VOLD", "KC_VOLU", "KC_MUTE", "KC_HOME", "KC_PGDN", "KC_PGUP", "KC_END", "KC_APP", "KC_RCTL",
+ "_______", "KC_SLEP", "KC_PWR", "KC_MSTP", "KC_MNXT", "KC_MPLY", "_______", "KC_BRID", "KC_BRIU", "KC_PSCR", "KC_WAKE", "_______",
+ "KC_CAPS", "_______", "_______", "_______", "_______", "KC_CAPS"
+ ],
+ [
+ "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "RGB_M_B", "RGB_VAD", "RGB_VAI", "RGB_SAD", "RGB_SAI", "XXXXXXX",
+ "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "RGB_TOG", "RGB_MOD", "RGB_RMOD", "RGB_HUD", "RGB_HUI", "XXXXXXX",
+ "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "RGB_M_P", "RGB_SPD", "RGB_SPI", "XXXXXXX", "XXXXXXX", "XXXXXXX",
+ "XXXXXXX", "XXXXXXX", "XXXXXXX", "MO(5)", "XXXXXXX", "XXXXXXX"
+ ],
+ [
+ "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX",
+ "XXXXXXX", "DF(0)", "DF(1)", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX",
+ "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "EE_CLR",
+ "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX"
+ ]
+ ]
+} \ No newline at end of file
diff --git a/keyboards/adm42/rev4/rev4.c b/keyboards/adm42/rev4/rev4.c
deleted file mode 100644
index 623b5cb5a3..0000000000
--- a/keyboards/adm42/rev4/rev4.c
+++ /dev/null
@@ -1,39 +0,0 @@
-/* Copyright 2020-2022 Lorenzo Leonini
- * SPDX-License-Identifier: GPL-2.0-only
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- *
- * 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"
-
-led_config_t g_led_config = {
- {
- {12, 11, 8, 7, 4, 3, 36, 37, 38, 39, 40, 41},
- {13, 10, 9, 6, 5, 2, 35, 34, 33, 32, 31, 30},
- {14, 15, 16, 17, 18, 1, 24, 25, 26, 27, 28, 29},
- {NO_LED, NO_LED, NO_LED, 19, 20, 21, 0, 22, 23, NO_LED, NO_LED, NO_LED}
- }, {
- {112, 32}, {92, 36}, {94, 25}, {97, 14}, {80, 13}, {77, 24},
- {62, 18}, {64, 8}, {49, 6}, {46, 17}, {28, 23}, {30, 13},
- {14, 11}, {11, 22}, {8, 32}, {26, 34}, {43, 28}, {61, 29},
- {76, 34}, {78, 46}, {97, 49}, {112, 56}, {127, 49}, {146, 46},
- {132, 36}, {148, 34}, {164, 29}, {180, 28}, {198, 34}, {215, 32},
- {212, 22}, {196, 23}, {178, 17}, {161, 18}, {146, 24}, {130, 25},
- {126, 14}, {143, 13}, {159, 8}, {175, 6}, {194, 13}, {210, 11}
- }, {
- 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,
- 4, 4, 4, 4, 4, 4
- }
-};
diff --git a/keyboards/adm42/rev4/rules.mk b/keyboards/adm42/rev4/rules.mk
index aad92997d0..6e7633bfe0 100644
--- a/keyboards/adm42/rev4/rules.mk
+++ b/keyboards/adm42/rev4/rules.mk
@@ -1 +1 @@
-RGB_MATRIX_ENABLE = yes
+# This file intentionally left blank
diff --git a/keyboards/adm42/rules.mk b/keyboards/adm42/rules.mk
index a2402f19a9..06fc88e9f6 100644
--- a/keyboards/adm42/rules.mk
+++ b/keyboards/adm42/rules.mk
@@ -1,15 +1 @@
-# Build Options
-# change yes to no to disable
-#
-BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite
-MOUSEKEY_ENABLE = no # Mouse keys
-EXTRAKEY_ENABLE = yes # Audio control and System control
-CONSOLE_ENABLE = no # Console for debug
-COMMAND_ENABLE = no # Commands for debug and configuration
-NKRO_ENABLE = no # Enable N-Key Rollover
-BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
-RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
-AUDIO_ENABLE = no # Audio output
-LTO_ENABLE = yes
-
-DEFAULT_FOLDER = adm42/rev4
+DEFAULT_FOLDER = adm42/rev4 \ No newline at end of file
diff --git a/keyboards/aeboards/constellation/rev2/info.json b/keyboards/aeboards/constellation/rev2/info.json
index 87cb103d4a..b8dae5f20c 100644
--- a/keyboards/aeboards/constellation/rev2/info.json
+++ b/keyboards/aeboards/constellation/rev2/info.json
@@ -13,6 +13,9 @@
"rows": ["B15", "A14", "A2", "B13", "B14"]
},
"diode_direction": "COL2ROW",
+ "eeprom": {
+ "driver": "i2c"
+ },
"processor": "STM32L422",
"bootloader": "stm32-dfu",
"layout_aliases": {
diff --git a/keyboards/aeboards/constellation/rev2/rules.mk b/keyboards/aeboards/constellation/rev2/rules.mk
index 0fa89d45d2..c12086843f 100755
--- a/keyboards/aeboards/constellation/rev2/rules.mk
+++ b/keyboards/aeboards/constellation/rev2/rules.mk
@@ -9,5 +9,3 @@ COMMAND_ENABLE = no # Commands for debug and configuration
NKRO_ENABLE = yes # Enable N-Key Rollover
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
AUDIO_ENABLE = no # Audio output
-
-EEPROM_DRIVER = i2c
diff --git a/keyboards/aeboards/ext65/rev1/info.json b/keyboards/aeboards/ext65/rev1/info.json
index ffe8d2443e..0e110e9235 100644
--- a/keyboards/aeboards/ext65/rev1/info.json
+++ b/keyboards/aeboards/ext65/rev1/info.json
@@ -14,8 +14,11 @@
"cols": ["B2", "B3", "B1", "B0", "F7", "F0", "F1", "F4", "F5", "F6"],
"rows": ["C6", "C7", "B5", "B6", "D7", "B4", "D4", "D6", "B7", "E6"]
},
+ "layout_aliases": {
+ "LAYOUT_ext65": "LAYOUT"
+ },
"layouts": {
- "LAYOUT_ext65": {
+ "LAYOUT": {
"layout": [
{"matrix": [0, 0], "x": 0, "y": 0},
{"matrix": [1, 0], "x": 1, "y": 0},
diff --git a/keyboards/aeboards/ext65/rev1/keymaps/default/keymap.c b/keyboards/aeboards/ext65/rev1/keymaps/default/keymap.c
index c931729258..e246b5c471 100644
--- a/keyboards/aeboards/ext65/rev1/keymaps/default/keymap.c
+++ b/keyboards/aeboards/ext65/rev1/keymaps/default/keymap.c
@@ -29,7 +29,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* | | . | 0 | | Ctrl | Win | Alt | Space | FN | Ctrl | |Left| Dn | Rght|
* `------------------------------------------------------------------------------------------'
*/
- [0] = LAYOUT_ext65(
+ [0] = LAYOUT(
KC_PMNS, KC_PAST, KC_PSLS, KC_NUM, KC_ESC , KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , KC_MINS, KC_EQL , KC_BSLS, KC_GRV , KC_PSCR,
KC_PPLS, KC_P9 , KC_P8 , KC_P7 , 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_BSPC, KC_DEL ,
KC_PPLS, KC_P6 , KC_P5 , KC_P4 , KC_CAPS, KC_A , KC_S , KC_D , KC_F , KC_G , KC_H , KC_J , KC_K , KC_L , KC_SCLN, KC_QUOT, KC_ENT , KC_PGUP,
@@ -37,27 +37,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_PENT, KC_PDOT, KC_P0 , KC_P0 , KC_LCTL, KC_LGUI, KC_LALT, KC_SPC , MO(1) , KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
),
- [1] = LAYOUT_ext65(
+ [1] = LAYOUT(
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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, RGB_TOG, RGB_MOD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, EE_CLR,
KC_TRNS, RGB_HUI, RGB_SAI, RGB_VAI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, DB_TOGG,
KC_TRNS, RGB_HUD, RGB_SAD, RGB_VAD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, 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_ext65(
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
- ),
-
- [3] = LAYOUT_ext65(
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, 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/aeboards/ext65/rev1/keymaps/via/keymap.c b/keyboards/aeboards/ext65/rev1/keymaps/via/keymap.c
index c931729258..e246b5c471 100644
--- a/keyboards/aeboards/ext65/rev1/keymaps/via/keymap.c
+++ b/keyboards/aeboards/ext65/rev1/keymaps/via/keymap.c
@@ -29,7 +29,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* | | . | 0 | | Ctrl | Win | Alt | Space | FN | Ctrl | |Left| Dn | Rght|
* `------------------------------------------------------------------------------------------'
*/
- [0] = LAYOUT_ext65(
+ [0] = LAYOUT(
KC_PMNS, KC_PAST, KC_PSLS, KC_NUM, KC_ESC , KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , KC_MINS, KC_EQL , KC_BSLS, KC_GRV , KC_PSCR,
KC_PPLS, KC_P9 , KC_P8 , KC_P7 , 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_BSPC, KC_DEL ,
KC_PPLS, KC_P6 , KC_P5 , KC_P4 , KC_CAPS, KC_A , KC_S , KC_D , KC_F , KC_G , KC_H , KC_J , KC_K , KC_L , KC_SCLN, KC_QUOT, KC_ENT , KC_PGUP,
@@ -37,27 +37,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_PENT, KC_PDOT, KC_P0 , KC_P0 , KC_LCTL, KC_LGUI, KC_LALT, KC_SPC , MO(1) , KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
),
- [1] = LAYOUT_ext65(
+ [1] = LAYOUT(
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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, RGB_TOG, RGB_MOD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, EE_CLR,
KC_TRNS, RGB_HUI, RGB_SAI, RGB_VAI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, DB_TOGG,
KC_TRNS, RGB_HUD, RGB_SAD, RGB_VAD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, 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_ext65(
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
- ),
-
- [3] = LAYOUT_ext65(
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, 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/aeboards/ext65/rev2/config.h b/keyboards/aeboards/ext65/rev2/config.h
index 78d20f300f..c5149f5741 100644
--- a/keyboards/aeboards/ext65/rev2/config.h
+++ b/keyboards/aeboards/ext65/rev2/config.h
@@ -17,7 +17,7 @@
#pragma once
//SPI
-#define WS2812_SPI SPID2
+#define WS2812_SPI_DRIVER SPID2
#define WS2812_SPI_MOSI_PAL_MODE 0
#define WS2812_SPI_SCK_PAL_MODE 0
#define WS2812_SPI_SCK_PIN B13
diff --git a/keyboards/aeboards/ext65/rev2/info.json b/keyboards/aeboards/ext65/rev2/info.json
index d9d0ee62ee..ab229e19ec 100644
--- a/keyboards/aeboards/ext65/rev2/info.json
+++ b/keyboards/aeboards/ext65/rev2/info.json
@@ -38,8 +38,11 @@
"cols": ["B14", "B6", "A0", "B1", "B0", "A7", "A6", "A5", "A4", "A3"],
"rows": ["A10", "A9", "A8", "B7", "A2", "A1", "B12", "B11", "B10", "B2"]
},
+ "layout_aliases": {
+ "LAYOUT_ext65": "LAYOUT"
+ },
"layouts": {
- "LAYOUT_ext65": {
+ "LAYOUT": {
"layout": [
{"matrix": [0, 0], "x": 0, "y": 0},
{"matrix": [1, 0], "x": 1, "y": 0},
diff --git a/keyboards/aeboards/ext65/rev2/keymaps/default/keymap.c b/keyboards/aeboards/ext65/rev2/keymaps/default/keymap.c
index c931729258..e246b5c471 100644
--- a/keyboards/aeboards/ext65/rev2/keymaps/default/keymap.c
+++ b/keyboards/aeboards/ext65/rev2/keymaps/default/keymap.c
@@ -29,7 +29,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* | | . | 0 | | Ctrl | Win | Alt | Space | FN | Ctrl | |Left| Dn | Rght|
* `------------------------------------------------------------------------------------------'
*/
- [0] = LAYOUT_ext65(
+ [0] = LAYOUT(
KC_PMNS, KC_PAST, KC_PSLS, KC_NUM, KC_ESC , KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , KC_MINS, KC_EQL , KC_BSLS, KC_GRV , KC_PSCR,
KC_PPLS, KC_P9 , KC_P8 , KC_P7 , 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_BSPC, KC_DEL ,
KC_PPLS, KC_P6 , KC_P5 , KC_P4 , KC_CAPS, KC_A , KC_S , KC_D , KC_F , KC_G , KC_H , KC_J , KC_K , KC_L , KC_SCLN, KC_QUOT, KC_ENT , KC_PGUP,
@@ -37,27 +37,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_PENT, KC_PDOT, KC_P0 , KC_P0 , KC_LCTL, KC_LGUI, KC_LALT, KC_SPC , MO(1) , KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
),
- [1] = LAYOUT_ext65(
+ [1] = LAYOUT(
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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, RGB_TOG, RGB_MOD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, EE_CLR,
KC_TRNS, RGB_HUI, RGB_SAI, RGB_VAI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, DB_TOGG,
KC_TRNS, RGB_HUD, RGB_SAD, RGB_VAD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, 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_ext65(
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
- ),
-
- [3] = LAYOUT_ext65(
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, 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/aeboards/ext65/rev2/keymaps/via/keymap.c b/keyboards/aeboards/ext65/rev2/keymaps/via/keymap.c
index c931729258..e246b5c471 100644
--- a/keyboards/aeboards/ext65/rev2/keymaps/via/keymap.c
+++ b/keyboards/aeboards/ext65/rev2/keymaps/via/keymap.c
@@ -29,7 +29,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* | | . | 0 | | Ctrl | Win | Alt | Space | FN | Ctrl | |Left| Dn | Rght|
* `------------------------------------------------------------------------------------------'
*/
- [0] = LAYOUT_ext65(
+ [0] = LAYOUT(
KC_PMNS, KC_PAST, KC_PSLS, KC_NUM, KC_ESC , KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , KC_MINS, KC_EQL , KC_BSLS, KC_GRV , KC_PSCR,
KC_PPLS, KC_P9 , KC_P8 , KC_P7 , 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_BSPC, KC_DEL ,
KC_PPLS, KC_P6 , KC_P5 , KC_P4 , KC_CAPS, KC_A , KC_S , KC_D , KC_F , KC_G , KC_H , KC_J , KC_K , KC_L , KC_SCLN, KC_QUOT, KC_ENT , KC_PGUP,
@@ -37,27 +37,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_PENT, KC_PDOT, KC_P0 , KC_P0 , KC_LCTL, KC_LGUI, KC_LALT, KC_SPC , MO(1) , KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
),
- [1] = LAYOUT_ext65(
+ [1] = LAYOUT(
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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, RGB_TOG, RGB_MOD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, EE_CLR,
KC_TRNS, RGB_HUI, RGB_SAI, RGB_VAI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, DB_TOGG,
KC_TRNS, RGB_HUD, RGB_SAD, RGB_VAD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, 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_ext65(
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
- ),
-
- [3] = LAYOUT_ext65(
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, 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/aeboards/ext65/rev3/info.json b/keyboards/aeboards/ext65/rev3/info.json
index bb507545a0..0faf6fa135 100644
--- a/keyboards/aeboards/ext65/rev3/info.json
+++ b/keyboards/aeboards/ext65/rev3/info.json
@@ -19,8 +19,11 @@
"cols": ["F6", "F7", "B1", "B3", "B2", "D5", "D3", "D2", "D1", "D0"],
"rows": ["B5", "B6", "C6", "C7", "E6", "B0", "B4", "D7", "D4", "D6"]
},
+ "layout_aliases": {
+ "LAYOUT_ext65_hotswap": "LAYOUT"
+ },
"layouts": {
- "LAYOUT_ext65_hotswap": {
+ "LAYOUT": {
"layout": [
{"matrix": [0, 0], "x": 0, "y": 0},
{"matrix": [1, 0], "x": 1, "y": 0},
diff --git a/keyboards/aeboards/ext65/rev3/keymaps/default/keymap.c b/keyboards/aeboards/ext65/rev3/keymaps/default/keymap.c
index 72a10cae1b..ac6dd4dfed 100644
--- a/keyboards/aeboards/ext65/rev3/keymaps/default/keymap.c
+++ b/keyboards/aeboards/ext65/rev3/keymaps/default/keymap.c
@@ -29,7 +29,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* | | . | 0 | | Ctrl | Win | Alt | Space | FN | Ctrl | |Left| Dn | Rght|
* `------------------------------------------------------------------------------------------'
*/
- [0] = LAYOUT_ext65_hotswap(
+ [0] = LAYOUT(
KC_PMNS, KC_PAST, KC_PSLS, KC_NUM, KC_ESC , KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , KC_MINS, KC_EQL , KC_BSPC, KC_PSCR,
KC_PPLS, KC_P9 , KC_P8 , KC_P7 , 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_P6 , KC_P5 , KC_P4 , KC_CAPS, KC_A , KC_S , KC_D , KC_F , KC_G , KC_H , KC_J , KC_K , KC_L , KC_SCLN, KC_QUOT, KC_ENT , KC_PGUP,
@@ -37,27 +37,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_PDOT, KC_P0 , KC_LCTL, KC_LGUI, KC_LALT, KC_SPC , MO(1) , KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
),
- [1] = LAYOUT_ext65_hotswap(
+ [1] = LAYOUT(
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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, RGB_TOG, RGB_MOD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, EE_CLR,
RGB_HUI, RGB_SAI, RGB_VAI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, DB_TOGG,
KC_TRNS, RGB_HUD, RGB_SAD, RGB_VAD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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_ext65_hotswap(
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
- ),
-
- [3] = LAYOUT_ext65_hotswap(
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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/aeboards/ext65/rev3/keymaps/via/keymap.c b/keyboards/aeboards/ext65/rev3/keymaps/via/keymap.c
index 72a10cae1b..ac6dd4dfed 100644
--- a/keyboards/aeboards/ext65/rev3/keymaps/via/keymap.c
+++ b/keyboards/aeboards/ext65/rev3/keymaps/via/keymap.c
@@ -29,7 +29,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* | | . | 0 | | Ctrl | Win | Alt | Space | FN | Ctrl | |Left| Dn | Rght|
* `------------------------------------------------------------------------------------------'
*/
- [0] = LAYOUT_ext65_hotswap(
+ [0] = LAYOUT(
KC_PMNS, KC_PAST, KC_PSLS, KC_NUM, KC_ESC , KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , KC_MINS, KC_EQL , KC_BSPC, KC_PSCR,
KC_PPLS, KC_P9 , KC_P8 , KC_P7 , 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_P6 , KC_P5 , KC_P4 , KC_CAPS, KC_A , KC_S , KC_D , KC_F , KC_G , KC_H , KC_J , KC_K , KC_L , KC_SCLN, KC_QUOT, KC_ENT , KC_PGUP,
@@ -37,27 +37,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_PDOT, KC_P0 , KC_LCTL, KC_LGUI, KC_LALT, KC_SPC , MO(1) , KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
),
- [1] = LAYOUT_ext65_hotswap(
+ [1] = LAYOUT(
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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, RGB_TOG, RGB_MOD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, EE_CLR,
RGB_HUI, RGB_SAI, RGB_VAI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, DB_TOGG,
KC_TRNS, RGB_HUD, RGB_SAD, RGB_VAD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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_ext65_hotswap(
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
- ),
-
- [3] = LAYOUT_ext65_hotswap(
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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/aeboards/satellite/rev1/config.h b/keyboards/aeboards/satellite/rev1/config.h
index 508689faf5..429bc2af54 100644
--- a/keyboards/aeboards/satellite/rev1/config.h
+++ b/keyboards/aeboards/satellite/rev1/config.h
@@ -17,14 +17,13 @@
#pragma once
//RGB Matrix defines
-#define DRIVER_ADDR_1 0x74
-#define DRIVER_ADDR_2 0x76
+#define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND
+#define IS31FL3731_I2C_ADDRESS_2 IS31FL3731_I2C_ADDRESS_SDA
-#define DRIVER_COUNT 2
#define DRIVER_1_LED_TOTAL 36
#define DRIVER_2_LED_TOTAL 36
-#define ISSI_DRIVER_TOTAL (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL)
-#define RGB_MATRIX_LED_COUNT ISSI_DRIVER_TOTAL
+#define IS31FL3731_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL)
+#define RGB_MATRIX_LED_COUNT IS31FL3731_LED_COUNT
#define RGB_MATRIX_DEFAULT_VAL 80
#define RGB_MATRIX_FRAMEBUFFER_EFFECTS
diff --git a/keyboards/aeboards/satellite/rev1/rev1.c b/keyboards/aeboards/satellite/rev1/rev1.c
index 785fa8af9f..6727894e06 100644
--- a/keyboards/aeboards/satellite/rev1/rev1.c
+++ b/keyboards/aeboards/satellite/rev1/rev1.c
@@ -18,7 +18,7 @@
#include "drivers/led/issi/is31fl3731.h"
#ifdef RGB_MATRIX_ENABLE
-const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = {
+const is31fl3731_led_t PROGMEM g_is31fl3731_leds[IS31FL3731_LED_COUNT] = {
/* Refer to IS31 manual for these locations
* driver
* | R location
@@ -145,38 +145,27 @@ led_config_t g_led_config = { {
// Custom Driver
static void init(void) {
i2c_init();
- is31fl3731_init(DRIVER_ADDR_1);
- is31fl3731_init(DRIVER_ADDR_2);
- for (int index = 0; index < ISSI_DRIVER_TOTAL; index++) {
+
+ is31fl3731_init(IS31FL3731_I2C_ADDRESS_1);
+ is31fl3731_init(IS31FL3731_I2C_ADDRESS_2);
+
+ for (int index = 0; index < IS31FL3731_LED_COUNT; index++) {
bool enabled = !( ( index == 18+5) || //B5
( index == 36+17) || //C17
( index == 54+13) //D13
);
is31fl3731_set_led_control_register(index, enabled, enabled, enabled);
}
- is31fl3731_update_led_control_registers(DRIVER_ADDR_1, 0);
- is31fl3731_update_led_control_registers(DRIVER_ADDR_2, 1);
-}
-
-static void flush(void) {
- is31fl3731_update_pwm_buffers(DRIVER_ADDR_1, 0);
- is31fl3731_update_pwm_buffers(DRIVER_ADDR_2, 1);
-}
-
-static void set_color(int index, uint8_t red, uint8_t green, uint8_t blue) {
- is31fl3731_set_color(index, red, green, blue);
-}
-static void set_color_all(uint8_t red, uint8_t green, uint8_t blue) {
- is31fl3731_set_color_all( red, green, blue );
+ is31fl3731_update_led_control_registers(IS31FL3731_I2C_ADDRESS_1, 0);
+ is31fl3731_update_led_control_registers(IS31FL3731_I2C_ADDRESS_2, 1);
}
-
const rgb_matrix_driver_t rgb_matrix_driver = {
.init = init,
- .flush = flush,
- .set_color = set_color,
- .set_color_all = set_color_all
+ .flush = is31fl3731_flush,
+ .set_color = is31fl3731_set_color,
+ .set_color_all = is31fl3731_set_color_all
};
#endif
diff --git a/keyboards/aeboards/satellite/rev1/rules.mk b/keyboards/aeboards/satellite/rev1/rules.mk
index 1a4657b08c..f95b0f015d 100644
--- a/keyboards/aeboards/satellite/rev1/rules.mk
+++ b/keyboards/aeboards/satellite/rev1/rules.mk
@@ -18,4 +18,4 @@ COMMON_VPATH += $(DRIVER_PATH)/issi
# project specific files
SRC += drivers/led/issi/is31fl3731.c
-QUANTUM_LIB_SRC += i2c_master.c
+I2C_DRIVER_REQUIRED = yes
diff --git a/keyboards/ai03/lunar/keymaps/zyber/keymap.c b/keyboards/ai03/lunar/keymaps/zyber/keymap.c
deleted file mode 100644
index 5e2c9f3178..0000000000
--- a/keyboards/ai03/lunar/keymaps/zyber/keymap.c
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright 2022 ZyBeR (@ZyberSE)
-// SPDX-License-Identifier: GPL-2.0
-
-#include "zyber.h"
-
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [0] = LAYOUT( /* Base */
- KC_ESC, KC_1, KC_2, KC_3, TD(SSHT), KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC, KC_PGUP,
- KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, TD(LBRC), KC_RBRC, KC_BSLS, KC_PGDN,
- L1_EXPL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, TD(SCLN), TD(QUOT), KC_ENT, KC_DEL,
- KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_LSFT, KC_UP, MO(1),
- KC_LCTL, ROPT_SRH,KC_LCMD, _______, LCMD_T(KC_SPC), _______, ROPT_SRH, KC_GRV, KC_LEFT, KC_DOWN, KC_RGHT
- ),
- [1] = LAYOUT( /* FN */
- QK_BOOT, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_DEL, KC_PAUS,
- C_BLK, _______, KC_UP, _______, _______, _______, KC_NUM, KC_P7, KC_P8, KC_P9, KC_MPRV, KC_MPLY, KC_MNXT, _______, KC_SCRL,
- _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, KC_VOLD, KC_VOLU, KC_P4, KC_P5, KC_P6, _______, _______, _______, _______,
- _______, KC_RCTL, KC_RGUI, KC_RALT, _______, _______, KC_P0, KC_P1, KC_P2, KC_P3, _______, _______, KC_PGUP, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_END
- )
-};
-
diff --git a/keyboards/ai03/orbit/config.h b/keyboards/ai03/orbit/config.h
index f4157a1729..53a057875f 100644
--- a/keyboards/ai03/orbit/config.h
+++ b/keyboards/ai03/orbit/config.h
@@ -19,9 +19,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define SELECT_SOFT_SERIAL_SPEED 1
-#define SPLIT_LED_STATE_ENABLE
-#define SPLIT_LAYER_STATE_ENABLE
-
#define SPLIT_HAND_PIN D5
/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
diff --git a/keyboards/ai03/orbit/info.json b/keyboards/ai03/orbit/info.json
index 4c5cd1ee51..d7ff0b786c 100644
--- a/keyboards/ai03/orbit/info.json
+++ b/keyboards/ai03/orbit/info.json
@@ -23,6 +23,12 @@
"cols": ["D4", "D6", "F1", "F0", "F4", "F5", "C6"],
"rows": ["B6", "B5", "B4", "D7", "E6"]
}
+ },
+ "transport":{
+ "sync" :{
+ "indicators": true,
+ "layer_state": true
+ }
}
},
"processor": "atmega32u4",
diff --git a/keyboards/akko/5087/config.h b/keyboards/akko/5087/config.h
index 50a1f224f8..3a6b7030ee 100644
--- a/keyboards/akko/5087/config.h
+++ b/keyboards/akko/5087/config.h
@@ -34,7 +34,6 @@
#define SPI_MOSI_PAL_MODE 5
#define EXTERNAL_FLASH_SPI_SLAVE_SELECT_PIN C12
-#define WEAR_LEVELING_BACKING_SIZE (8 * 1024)
/* I2C Config for LED Driver */
#define DRIVER_COUNT 2
diff --git a/keyboards/akko/5087/info.json b/keyboards/akko/5087/info.json
index 43bec927db..1b4059b0d5 100644
--- a/keyboards/akko/5087/info.json
+++ b/keyboards/akko/5087/info.json
@@ -29,6 +29,13 @@
"rows": ["B15", "C6", "C7", "C8", "C9", "A8"]
},
"diode_direction": "ROW2COL",
+ "eeprom": {
+ "driver": "wear_leveling",
+ "wear_leveling": {
+ "driver": "spi_flash",
+ "backing_size": 8192
+ }
+ },
"indicators": {
"caps_lock": "A15"
},
diff --git a/keyboards/akko/5087/rules.mk b/keyboards/akko/5087/rules.mk
index 0dc7a33142..6e7633bfe0 100644
--- a/keyboards/akko/5087/rules.mk
+++ b/keyboards/akko/5087/rules.mk
@@ -1,3 +1 @@
-EEPROM_DRIVER = wear_leveling
-WEAR_LEVELING_DRIVER = spi_flash
-
+# This file intentionally left blank
diff --git a/keyboards/akko/5108/5108.c b/keyboards/akko/5108/5108.c
index a14f02bc76..91f53e1e55 100644
--- a/keyboards/akko/5108/5108.c
+++ b/keyboards/akko/5108/5108.c
@@ -17,8 +17,8 @@
#include "quantum.h"
// clang-format off
#ifdef RGB_MATRIX_ENABLE
-const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = {
-/* Refer to IS31 manual for these locations
+const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = {
+/* Refer to SNLED27351 manual for these locations
* driver
* | R location
* | | G location
diff --git a/keyboards/akko/5108/config.h b/keyboards/akko/5108/config.h
index f56e825e05..7154ce44d2 100644
--- a/keyboards/akko/5108/config.h
+++ b/keyboards/akko/5108/config.h
@@ -16,9 +16,6 @@
#pragma once
-/* Use 5 dynamic keymap layers */
-#define DYNAMIC_KEYMAP_LAYER_COUNT 6
-
/* LED Indicators */
#define LED_WIN_LOCK_PIN C11
@@ -35,12 +32,10 @@
#define SPI_MOSI_PAL_MODE 5
#define EXTERNAL_FLASH_SPI_SLAVE_SELECT_PIN C12
-#define WEAR_LEVELING_BACKING_SIZE (8 * 1024)
/* I2C Config for LED Driver */
-#define DRIVER_COUNT 2
-#define DRIVER_ADDR_1 0b1110100
-#define DRIVER_ADDR_2 0b1110111
+#define SNLED27351_I2C_ADDRESS_1 SNLED27351_I2C_ADDRESS_GND
+#define SNLED27351_I2C_ADDRESS_2 SNLED27351_I2C_ADDRESS_VDDIO
#define I2C1_SCL_PAL_MODE 4
#define I2C1_OPMODE OPMODE_I2C
#define I2C1_CLOCK_SPEED 400000 /* 400000 */
diff --git a/keyboards/akko/5108/info.json b/keyboards/akko/5108/info.json
index 7049b20a64..662a949a53 100644
--- a/keyboards/akko/5108/info.json
+++ b/keyboards/akko/5108/info.json
@@ -26,12 +26,22 @@
"rows": ["B15", "C6", "C7", "C8", "C9", "A8"]
},
"diode_direction": "ROW2COL",
+ "dynamic_keymap": {
+ "layer_count": 6
+ },
+ "eeprom": {
+ "driver": "wear_leveling",
+ "wear_leveling": {
+ "driver": "spi_flash",
+ "backing_size": 8192
+ }
+ },
"indicators": {
"num_lock": "A15",
"caps_lock": "C10"
},
"rgb_matrix": {
- "driver": "is31fl3733",
+ "driver": "snled27351",
"max_brightness": 180,
"animations": {
"breathing": true,
diff --git a/keyboards/akko/5108/rules.mk b/keyboards/akko/5108/rules.mk
index 24d5f6f52e..6e7633bfe0 100644
--- a/keyboards/akko/5108/rules.mk
+++ b/keyboards/akko/5108/rules.mk
@@ -1,2 +1 @@
-EEPROM_DRIVER = wear_leveling
-WEAR_LEVELING_DRIVER = spi_flash
+# This file intentionally left blank
diff --git a/keyboards/akko/acr87/acr87.c b/keyboards/akko/acr87/acr87.c
index e175e21368..7ee9ec6470 100644
--- a/keyboards/akko/acr87/acr87.c
+++ b/keyboards/akko/acr87/acr87.c
@@ -17,8 +17,8 @@
#include "quantum.h"
// clang-format off
#ifdef RGB_MATRIX_ENABLE
-const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = {
-/* Refer to IS31 manual for these locations
+const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = {
+/* Refer to SNLED27351 manual for these locations
* driver
* | R location
* | | G location
diff --git a/keyboards/akko/acr87/config.h b/keyboards/akko/acr87/config.h
index 221cad86ad..4c1fb9afa1 100644
--- a/keyboards/akko/acr87/config.h
+++ b/keyboards/akko/acr87/config.h
@@ -16,9 +16,6 @@
#pragma once
-/* Use 5 dynamic keymap layers */
-#define DYNAMIC_KEYMAP_LAYER_COUNT 6
-
/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
#define LOCKING_SUPPORT_ENABLE
/* Locking resynchronize hack */
@@ -32,13 +29,11 @@
#define SPI_MOSI_PAL_MODE 5
#define EXTERNAL_FLASH_SPI_SLAVE_SELECT_PIN C12
-#define WEAR_LEVELING_BACKING_SIZE (8 * 1024)
/* I2C Config for LED Driver */
-#define DRIVER_COUNT 3
-#define DRIVER_ADDR_1 0b1110100
-#define DRIVER_ADDR_2 0b1110111
-#define DRIVER_ADDR_3 0b1110110
+#define SNLED27351_I2C_ADDRESS_1 SNLED27351_I2C_ADDRESS_GND
+#define SNLED27351_I2C_ADDRESS_2 SNLED27351_I2C_ADDRESS_VDDIO
+#define SNLED27351_I2C_ADDRESS_3 SNLED27351_I2C_ADDRESS_SDA
#define I2C1_SCL_PAL_MODE 4
#define I2C1_OPMODE OPMODE_I2C
diff --git a/keyboards/akko/acr87/info.json b/keyboards/akko/acr87/info.json
index 5ff1926d0c..5ccb0c3f73 100644
--- a/keyboards/akko/acr87/info.json
+++ b/keyboards/akko/acr87/info.json
@@ -26,8 +26,18 @@
"rows": [ "B15", "C6", "C7", "C8", "C9", "A8"]
},
"diode_direction": "ROW2COL",
+ "dynamic_keymap": {
+ "layer_count": 6
+ },
+ "eeprom": {
+ "driver": "wear_leveling",
+ "wear_leveling": {
+ "driver": "spi_flash",
+ "backing_size": 8192
+ }
+ },
"rgb_matrix": {
- "driver": "is31fl3733",
+ "driver": "snled27351",
"max_brightness": 180,
"animations": {
"breathing": true,
diff --git a/keyboards/akko/acr87/rules.mk b/keyboards/akko/acr87/rules.mk
index 0dc7a33142..6e7633bfe0 100644
--- a/keyboards/akko/acr87/rules.mk
+++ b/keyboards/akko/acr87/rules.mk
@@ -1,3 +1 @@
-EEPROM_DRIVER = wear_leveling
-WEAR_LEVELING_DRIVER = spi_flash
-
+# This file intentionally left blank
diff --git a/keyboards/akko/top40/config.h b/keyboards/akko/top40/config.h
index bd849292e6..1d601a189c 100644
--- a/keyboards/akko/top40/config.h
+++ b/keyboards/akko/top40/config.h
@@ -16,9 +16,6 @@
#pragma once
-/* Use 5 dynamic keymap layers */
-#define DYNAMIC_KEYMAP_LAYER_COUNT 6
-
/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
#define LOCKING_SUPPORT_ENABLE
/* Locking resynchronize hack */
@@ -32,12 +29,10 @@
#define SPI_MOSI_PAL_MODE 5
#define EXTERNAL_FLASH_SPI_SLAVE_SELECT_PIN C12
-#define WEAR_LEVELING_BACKING_SIZE (8 * 1024)
/* I2C Config for LED Driver */
-#define DRIVER_COUNT 2
-#define DRIVER_ADDR_1 0b1110100
-#define DRIVER_ADDR_2 0b1110111
+#define SNLED27351_I2C_ADDRESS_1 SNLED27351_I2C_ADDRESS_GND
+#define SNLED27351_I2C_ADDRESS_2 SNLED27351_I2C_ADDRESS_VDDIO
#define I2C1_SCL_PAL_MODE 4
#define I2C1_OPMODE OPMODE_I2C
#define I2C1_CLOCK_SPEED 400000 /* 400000 */
diff --git a/keyboards/akko/top40/info.json b/keyboards/akko/top40/info.json
index 48252e6c77..243952ccc8 100644
--- a/keyboards/akko/top40/info.json
+++ b/keyboards/akko/top40/info.json
@@ -26,8 +26,18 @@
"rows": ["C7", "C8", "C9", "A8"]
},
"diode_direction": "ROW2COL",
+ "dynamic_keymap": {
+ "layer_count": 6
+ },
+ "eeprom": {
+ "driver": "wear_leveling",
+ "wear_leveling": {
+ "driver": "spi_flash",
+ "backing_size": 8192
+ }
+ },
"rgb_matrix": {
- "driver": "is31fl3733",
+ "driver": "snled27351",
"max_brightness": 180,
"animations": {
"breathing": true,
diff --git a/keyboards/akko/top40/rules.mk b/keyboards/akko/top40/rules.mk
index b753f0682e..6e7633bfe0 100644
--- a/keyboards/akko/top40/rules.mk
+++ b/keyboards/akko/top40/rules.mk
@@ -1,6 +1 @@
-# Build Options
-# change yes to no to disable
-#
-EEPROM_DRIVER = wear_leveling
-WEAR_LEVELING_DRIVER = spi_flash
-
+# This file intentionally left blank
diff --git a/keyboards/akko/top40/top40.c b/keyboards/akko/top40/top40.c
index 7fe193447d..028e4bdd05 100644
--- a/keyboards/akko/top40/top40.c
+++ b/keyboards/akko/top40/top40.c
@@ -17,8 +17,8 @@
#include "quantum.h"
// clang-format off
#ifdef RGB_MATRIX_ENABLE
-const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = {
-/* Refer to IS31 manual for these locations
+const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = {
+/* Refer to SNLED27351 manual for these locations
* driver
* | R location
* | | G location
diff --git a/keyboards/alpha/keymaps/hvp/keymap.c b/keyboards/alpha/keymaps/hvp/keymap.c
deleted file mode 100755
index 13071b0830..0000000000
--- a/keyboards/alpha/keymaps/hvp/keymap.c
+++ /dev/null
@@ -1,51 +0,0 @@
-#include QMK_KEYBOARD_H
-
-enum layer_names {
- HOME,
- MODS,
- MODS2,
- OTHER,
-};
-
-enum custom_keycodes {
- MACRO1 = SAFE_RANGE
-};
-
-bool process_record_user(uint16_t keycode, keyrecord_t *record) {
- if (record->event.pressed) {
- switch (keycode) {
- case MACRO1:
- SEND_STRING("I'm so sorry... -PyroL");
- return false;
- }
- }
- return true;
-};
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [HOME] = LAYOUT(
- KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, MT(MOD_LCTL,KC_P),
- KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, MT(MOD_LSFT,KC_ENT),
- KC_Z, KC_X, KC_C, LT(MODS2,KC_V), LT(MODS, KC_SPC), LT(OTHER,KC_B), KC_N, KC_M),
-
- [MODS] = LAYOUT(
- KC_TAB, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_BSPC,
- KC_LSFT, KC_ESC, _______, KC_SCLN, KC_QUOT, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, _______,
- KC_LCTL, KC_LGUI, KC_LALT, _______, _______, KC_COMM, KC_DOT, KC_SLSH),
-
- [MODS2] = LAYOUT(
- KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0,
- KC_LSFT, KC_ESC, _______, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, KC_GRV, _______,
- RGB_VAI, RGB_VAD, RGB_HUI, _______, _______, KC_MPLY, KC_VOLD, KC_VOLU),
-
- [OTHER] = LAYOUT(
- KC_ESC, QK_BOOT, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_DEL,
- 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_NO, KC_NO),
-};
-
-void matrix_init_user(void) {
-}
-
-void matrix_scan_user(void) {
-} \ No newline at end of file
diff --git a/keyboards/alps64/keymaps/mechmerlin/keymap.c b/keyboards/alps64/keymaps/mechmerlin/keymap.c
deleted file mode 100644
index 9b6d1cd717..0000000000
--- a/keyboards/alps64/keymaps/mechmerlin/keymap.c
+++ /dev/null
@@ -1,26 +0,0 @@
-#include QMK_KEYBOARD_H
-#include "mechmerlin.h"
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- /* 0: qwerty */
- [_BL] = LAYOUT_infinity(
- QK_GESC, 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_BSLS, 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_LBRC, KC_RBRC, KC_BSLS,
- KC_CTCP, 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, TG(_AL),
- KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(_FL), KC_RALT, KC_RGUI, KC_RCTL),
-
- [_FL] = LAYOUT_infinity(
- KC_GRV, 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_F13, KC_DEL,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MUTE, KC_VOLD, KC_VOLU, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
-
- [_AL] = LAYOUT_infinity(
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RSFT_T(KC_UP), KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_RIGHT),
-};
diff --git a/keyboards/alps64/keymaps/mechmerlin/readme.md b/keyboards/alps64/keymaps/mechmerlin/readme.md
deleted file mode 100644
index 896e7ec3cb..0000000000
--- a/keyboards/alps64/keymaps/mechmerlin/readme.md
+++ /dev/null
@@ -1,10 +0,0 @@
-# MechMerlin Alps64 Infinity Keymap
-
-This is the 60% infinity layout used by u/merlin36, host of the [MechMerlin](www.youtube.com/mechmerlin)
-YouTube channel.
-
-## Keymap Notes
-- `Caps Lock` can be held to act as a `Left Control`
-
-### Build
-To build the firmware file associated with this keymap, simply run `make alps64:mechmerlin`.
diff --git a/keyboards/alps64/keymaps/zyber/keymap.c b/keyboards/alps64/keymaps/zyber/keymap.c
deleted file mode 100644
index 5d7cf1a64d..0000000000
--- a/keyboards/alps64/keymaps/zyber/keymap.c
+++ /dev/null
@@ -1,33 +0,0 @@
-// Copyright 2022 ZyBeR (@ZyberSE)
-// SPDX-License-Identifier: GPL-2.0
-
-#include "zyber.h"
-
-enum keyboard_layers {
- _BL = 0,
- _FL
-};
-
-// Custom #defined keycodes (shorter macros for readability)
-#define KC_CTES CTL_T(KC_ESC)
-#define KC_RSUP RSFT_T(KC_UP)
-#define KC_FNDN LT(_FL, KC_DOWN)
-#define KC_RGLT RCMD_T(KC_LEFT)
-#define KC_RCRT RCTL_T(KC_RIGHT)
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [_BL] = LAYOUT_aek_103(
- 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_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, TD(LBRC), KC_RBRC, KC_BSLS,
- CTRL_C_UP, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, TD(SCLN), TD(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_RSUP,
- MO(_FL), KC_LALT, KC_LGUI, KC_SPC, KC_RGLT, KC_FNDN, KC_RCRT
- ),
- [_FL] = LAYOUT_aek_103(
- KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL,
- _______, KC_HOME, KC_UP, KC_END, _______, _______, _______, _______, KC_MUTE, _______, _______, KC_PGDN, KC_PGUP, _______,
- _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, KC_SCRL, KC_VOLD, KC_VOLU, KC_PAUS, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, QK_BOOT, _______, _______, _______
- )
-};
diff --git a/keyboards/anavi/knob1/rules.mk b/keyboards/anavi/knob1/rules.mk
index 0e5631b02b..dd68e9d3b0 100644
--- a/keyboards/anavi/knob1/rules.mk
+++ b/keyboards/anavi/knob1/rules.mk
@@ -1,3 +1 @@
OLED_ENABLE = yes
-
-OPT_DEFS += -DHAL_USE_I2C=TRUE
diff --git a/keyboards/anavi/knobs3/rules.mk b/keyboards/anavi/knobs3/rules.mk
index 0e5631b02b..dd68e9d3b0 100644
--- a/keyboards/anavi/knobs3/rules.mk
+++ b/keyboards/anavi/knobs3/rules.mk
@@ -1,3 +1 @@
OLED_ENABLE = yes
-
-OPT_DEFS += -DHAL_USE_I2C=TRUE
diff --git a/keyboards/annepro2/annepro2_ble.c b/keyboards/annepro2/annepro2_ble.c
index 375f551cc2..a382c61638 100644
--- a/keyboards/annepro2/annepro2_ble.c
+++ b/keyboards/annepro2/annepro2_ble.c
@@ -31,7 +31,7 @@ static void ap2_ble_swtich_ble_driver(void);
/* -------------------- Static Local Variables ------------------------------ */
static host_driver_t ap2_ble_driver = {
- ap2_ble_leds, ap2_ble_keyboard, ap2_ble_mouse, ap2_ble_extra
+ ap2_ble_leds, ap2_ble_keyboard, NULL, ap2_ble_mouse, ap2_ble_extra
};
static uint8_t ble_mcu_wakeup[11] = {0x7b, 0x12, 0x53, 0x00, 0x03, 0x00, 0x01, 0x7d, 0x02, 0x01, 0x02};
@@ -167,5 +167,5 @@ static void ap2_ble_extra(report_extra_t *report) {
static void ap2_ble_keyboard(report_keyboard_t *report) {
sdPut(&SD1, 0x0);
sdWrite(&SD1, ble_mcu_send_report, sizeof(ble_mcu_send_report));
- sdWrite(&SD1, &report->raw[0], KEYBOARD_REPORT_SIZE);
+ sdWrite(&SD1, (uint8_t *)report, KEYBOARD_REPORT_SIZE);
}
diff --git a/keyboards/annepro2/c15/config.h b/keyboards/annepro2/c15/config.h
index ea38f4dce3..f488b9d8f3 100644
--- a/keyboards/annepro2/c15/config.h
+++ b/keyboards/annepro2/c15/config.h
@@ -57,7 +57,3 @@
#define EXTERNAL_FLASH_SECTOR_SIZE 4096
#define EXTERNAL_FLASH_BLOCK_SIZE 4096
#define EXTERNAL_FLASH_SIZE (256 * 1024) // 2M-bit flash size
-
-// Wear-leveling driver configuration
-#define WEAR_LEVELING_LOGICAL_SIZE 1024
-#define WEAR_LEVELING_BACKING_SIZE (WEAR_LEVELING_LOGICAL_SIZE * 2)
diff --git a/keyboards/annepro2/c15/info.json b/keyboards/annepro2/c15/info.json
index 15c3ca8ba1..b7624dd6c5 100644
--- a/keyboards/annepro2/c15/info.json
+++ b/keyboards/annepro2/c15/info.json
@@ -3,6 +3,13 @@
"usb": {
"pid": "0xAC15"
},
+ "eeprom": {
+ "driver": "wear_leveling",
+ "wear_leveling": {
+ "driver": "spi_flash",
+ "backing_size": 2048
+ }
+ },
"rgb_matrix": {
"driver": "custom"
},
diff --git a/keyboards/annepro2/c15/rules.mk b/keyboards/annepro2/c15/rules.mk
index 05b715e034..8694893ac2 100644
--- a/keyboards/annepro2/c15/rules.mk
+++ b/keyboards/annepro2/c15/rules.mk
@@ -26,10 +26,6 @@ BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
AUDIO_ENABLE = no # Audio output
-# Wear-levelling driver
-EEPROM_DRIVER = wear_leveling
-WEAR_LEVELING_DRIVER = spi_flash
-
# Custom RGB matrix handling
RGB_MATRIX_ENABLE = yes
diff --git a/keyboards/annepro2/c18/config.h b/keyboards/annepro2/c18/config.h
index 6b6307c3d0..36f4a25c8d 100644
--- a/keyboards/annepro2/c18/config.h
+++ b/keyboards/annepro2/c18/config.h
@@ -55,7 +55,3 @@
#define EXTERNAL_FLASH_SECTOR_SIZE 4096
#define EXTERNAL_FLASH_BLOCK_SIZE 4096
#define EXTERNAL_FLASH_SIZE (256 * 1024) // 2M-bit flash size
-
-// Wear-leveling driver configuration
-#define WEAR_LEVELING_LOGICAL_SIZE 1024
-#define WEAR_LEVELING_BACKING_SIZE (WEAR_LEVELING_LOGICAL_SIZE * 2)
diff --git a/keyboards/annepro2/c18/info.json b/keyboards/annepro2/c18/info.json
index f7acff808c..c8f524e3cf 100644
--- a/keyboards/annepro2/c18/info.json
+++ b/keyboards/annepro2/c18/info.json
@@ -3,6 +3,13 @@
"usb": {
"pid": "0xAC18"
},
+ "eeprom": {
+ "driver": "wear_leveling",
+ "wear_leveling": {
+ "driver": "spi_flash",
+ "backing_size": 2048
+ }
+ },
"rgb_matrix": {
"driver": "custom"
},
diff --git a/keyboards/annepro2/c18/rules.mk b/keyboards/annepro2/c18/rules.mk
index 1d53851df6..dab7269570 100644
--- a/keyboards/annepro2/c18/rules.mk
+++ b/keyboards/annepro2/c18/rules.mk
@@ -26,10 +26,6 @@ BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
AUDIO_ENABLE = no # Audio output
-# Wear-levelling driver
-EEPROM_DRIVER = wear_leveling
-WEAR_LEVELING_DRIVER = spi_flash
-
# Custom RGB matrix handling
RGB_MATRIX_ENABLE = yes
diff --git a/keyboards/aozora/config.h b/keyboards/aozora/config.h
deleted file mode 100644
index 5171d0c312..0000000000
--- a/keyboards/aozora/config.h
+++ /dev/null
@@ -1,20 +0,0 @@
-/* Copyright 2021 Salmon Cat 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/>.
- */
-
-#pragma once
-
-/* EEPROM for via */
-#define DYNAMIC_KEYMAP_LAYER_COUNT 2
diff --git a/keyboards/arisu/keymaps/stanrc85/keymap.c b/keyboards/arisu/keymaps/stanrc85/keymap.c
deleted file mode 100644
index 417b1663b5..0000000000
--- a/keyboards/arisu/keymaps/stanrc85/keymap.c
+++ /dev/null
@@ -1,50 +0,0 @@
-/* Copyright 2021 Stanrc85
- *
- * 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 "stanrc85.h"
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [_QWERTY] = LAYOUT(
- 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_BSPC, KC_PGUP,
- KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGDN,
- KC_CTLE, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, MO(_FN2_60),
- KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP,
- KC_LCTL, KC_LALT, LT_BPCF, KC_LGUI, LT_SPCF, TD_TWIN, KC_LEFT, KC_DOWN, KC_RGHT
- ),
-
- [_DEFAULT] = LAYOUT(
- QK_GESC, 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_BSLS, KC_GRV, 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_BSPC, KC_PGDN,
- KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, MO(_FN2_60),
- KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP,
- KC_LCTL, KC_LALT, KC_SPC, MO(_FN1_60), KC_SPC, KC_RALT, KC_LEFT, KC_DOWN, KC_RGHT
- ),
-
- [_FN1_60] = LAYOUT(
- KC_TILD, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_DEL, _______,
- _______, _______, CA_QUOT, _______, CA_SCLN, KC_VOLU, KC_PGUP, KC_BSPC, KC_UP, KC_DEL, KC_PSCR, _______, _______, KC_INS, _______,
- KC_CAPS, _______, _______, KC_LCTL, KC_LSFT, KC_VOLD, KC_PGDN, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______,
- _______, KC_RDP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______
- ),
- [_FN2_60] = LAYOUT(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, QK_BOOT, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MAKE, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, TG(_DEFAULT)
- )
-};
diff --git a/keyboards/arisu/keymaps/stanrc85/rules.mk b/keyboards/arisu/keymaps/stanrc85/rules.mk
deleted file mode 100644
index 9db643c8e6..0000000000
--- a/keyboards/arisu/keymaps/stanrc85/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-USER_NAME := stanrc85 \ No newline at end of file
diff --git a/keyboards/atreus/keymaps/dvorak_42_key/README.md b/keyboards/atreus/keymaps/dvorak_42_key/README.md
deleted file mode 100644
index 86ce738023..0000000000
--- a/keyboards/atreus/keymaps/dvorak_42_key/README.md
+++ /dev/null
@@ -1,21 +0,0 @@
-Overview
-========
-
-This is a dvorak based layout for the Atreus. Its basic key layout is similar to the ergodox_ez "dvorak_42_key" layout. In fact this layout was created for seamless switching between the Ergodox EZ and Atreus.
-
-How to build and flash
-----------------------
-
-to build;
-make atreus:dvorak_42_key
-
-to flash:
-avrdude -p atmega32u4 -c avr109 -U flash:w:atreus_dvorak_42_key.hex -P COM7
-
-Layers
-------
-* BASE: basic dvorak layout
-* KEYNAV: arrow-key navigation. Momentary toggle held by thumb allows the right hand to navigate through text as well as copy/paste/cut, page up/page down
-* KEYSEL: similar to KEYNAV, except for shift-selection
-* COMBINED: this is a layer that combines numbers, brackets and special characters. !@#$%^&*( can be type by shift+COMBINED+1/2/3/etc..
-* MOUSE: mouse navigation, as well as browser tab-left/tab-right shortcuts \ No newline at end of file
diff --git a/keyboards/atreus/keymaps/dvorak_42_key/config.h b/keyboards/atreus/keymaps/dvorak_42_key/config.h
deleted file mode 100644
index ac5db196d9..0000000000
--- a/keyboards/atreus/keymaps/dvorak_42_key/config.h
+++ /dev/null
@@ -1,15 +0,0 @@
-#pragma once
-
-// place overrides here
-
-// mouse speed
-
-#define MOUSEKEY_INTERVAL 15
-#define MOUSEKEY_DELAY 100
-#define MOUSEKEY_TIME_TO_MAX 100
-#define MOUSEKEY_MAX_SPEED 3
-
-#define MOUSEKEY_WHEEL_DELAY 500
-#define MOUSEKEY_WHEEL_DELTA 1
-#define MOUSEKEY_WHEEL_MAX_SPEED 1
-#define MOUSEKEY_WHEEL_TIME_TO_MAX 100
diff --git a/keyboards/atreus/keymaps/dvorak_42_key/keymap.c b/keyboards/atreus/keymaps/dvorak_42_key/keymap.c
deleted file mode 100644
index c6a628e217..0000000000
--- a/keyboards/atreus/keymaps/dvorak_42_key/keymap.c
+++ /dev/null
@@ -1,167 +0,0 @@
-
-#include QMK_KEYBOARD_H
-
-// layers
-#define BASE 0
-#define KEYNAV 1
-#define KEYSEL 2
-#define COMBINED 3
-#define BROWSER_CONTROL 4
-
-// aliases
-// shell
-#define SHELL_DEL_WORD RCTL(KC_W)
-
-// comment out to use android studio macros instead
-#define USE_VSCODE_MACROS
-
-// android studio shortcuts
-#define AS_TABLEFT LALT(KC_LEFT)
-#define AS_TABRIGHT LALT(KC_RIGHT)
-#define AS_SYMBOL LCTL(LALT(KC_N))
-#define AS_CLASS LCTL(KC_N)
-#define AS_FINDUSAGE LALT(KC_F7)
-#define AS_BACK LCTL(LALT(KC_LEFT))
-#define AS_GO_DECLARATION LCTL(KC_B)
-#define AS_GO_IMPLEMENTATION LCTL(LALT(KC_B))
-#define AS_CLOSETAB LCTL(KC_F4)
-#define AS_CLOSETOOLWINDOW LCTL(LSFT(KC_F4))
-#define AS_ALTENTER LALT(KC_ENTER)
-
-// visual studio code shortcuts
-#define VS_FILE LCTL(KC_P)
-#define VS_OPEN_FILE LCTL(KC_O)
-#define VS_LINE LCTL(KC_G)
-#define VS_SYMBOLEDITOR LCTL(LSFT(KC_O))
-#define VS_DEFINITION MEH(KC_F5)
-#define VS_IMPLEMENTATION MEH(KC_F6)
-#define VS_REFERENCES MEH(KC_F7)
-#define VS_BACK LALT(KC_LEFT)
-#define VS_BRACKET LCTL(LSFT(KC_BSLS))
-#define VS_TABLEFT MEH(KC_F1)
-#define VS_TABRIGHT MEH(KC_F2)
-#define VS_CLOSETAB MEH(KC_F3)
-#define VS_CLOSEPANEL LCTL(LSFT(KC_W))
-#define VS_GROUP_1 LCTL(KC_1)
-#define VS_GROUP_2 LCTL(KC_2)
-#define VS_TERMINAL LCTL(KC_GRAVE)
-#define VS_BUILD LCTL(LSFT(KC_B))
-#define VS_COMMANDS MEH(KC_F4)
-#define VS_CMT_BLOCK LSFT(LALT(KC_A))
-#define VS_CMT_LINE LCTL(KC_SLSH)
-#define VS_DEL_LINE LCTL(LSFT(KC_K))
-#define VS_COPYLINEDOWN LSFT(LALT(KC_DOWN))
-// visual studio bookmark commands
-#define VS_BM_LIST LCTL(LALT(KC_L))
-#define VS_BM_LISTALL LCTL(LALT(KC_A))
-#define VS_BM_PREV LCTL(LALT(KC_P))
-#define VS_BM_NEXT LCTL(LALT(KC_N))
-#define VS_BM_TOGGLE LCTL(LALT(KC_K))
-#define VS_BM_CLEARALL LCTL(LALT(KC_C))
-// visual studio code navigation shortcuts
-#define VS_FOCUS_EDITOR MEH(KC_F8)
-#define VS_FOCUS_TERMINAL MEH(KC_F9)
-#define VS_TOGGLE_TERMINAL MEH(KC_F10)
-#define VS_CLEAR_TERMINAL MEH(KC_F11)
-#define VS_TERMINAL_PREV MEH(KC_F12)
-#define VS_TERMINAL_NEXT MEH(KC_F13)
-#define VS_TERMINAL_NEW MEH(KC_F14)
-#define VS_TERMINAL_DETACH MEH(KC_F15)
-#define VS_TERMINAL_RENAME MEH(KC_F16)
-#define VS_JUMPY MEH(KC_F17)
-
-/*
-// VS code bookmark prev/next requires the following in vscode shortcuts config
- {
- "key": "ctrl+alt+p",
- "command": "bookmarks.jumpToPrevious"
- },
- {
- "key": "ctrl+alt+n",
- "command": "bookmarks.jumpToNext"
- },
-*/
-
-enum custom_keycodes {
- PLACEHOLDER = SAFE_RANGE, // can always be here
-
- // Windows 10 macros
- W10_TASKVIEW,
- W10_WORKSPACE_LEFT,
- W10_WORKSPACE_RIGHT,
-
-};
-
-// building/flashing instructions:
-// make atreus/astar:dvorak_42_key:flash
-// or
-// qmk compile -kb atreus -km dvorak_42_key
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [BASE] = LAYOUT(
- KC_QUOTE, KC_COMMA, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L,
- KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S,
- KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z,
- OSM(MOD_LSFT), OSM(MOD_LCTL), MO(KEYSEL), MO(BROWSER_CONTROL), MO(COMBINED), MO(KEYNAV), KC_ENTER, KC_SPACE, KC_BSPC, RCTL(KC_BSPC), KC_CAPS, OSM(MOD_LSFT)
- ),
-
-#ifdef USE_VSCODE_MACROS
-// use visual studio code macros on the KEYNAV layer
- [KEYNAV] = LAYOUT(
- KC_ESC, VS_DEFINITION, RCTL(KC_Z), RCTL(KC_S), MEH(KC_A), MEH(KC_B), KC_HOME, KC_UP, KC_END, KC_PGUP,
- VS_BACK, VS_SYMBOLEDITOR, RSFT(KC_TAB), KC_TAB, SHELL_DEL_WORD, LCTL(KC_LEFT), KC_LEFT, KC_DOWN, KC_RIGHT, LCTL(KC_RIGHT),
- VS_LINE, VS_FILE, VS_TABLEFT, VS_TABRIGHT, VS_CLOSETAB, KC_TRNS, RCTL(KC_C), RCTL(KC_X), RCTL(KC_V), KC_PGDN,
- VS_COMMANDS, VS_CMT_LINE, VS_BM_PREV, VS_BM_NEXT, VS_BM_TOGGLE, KC_TRNS, KC_ENTER, KC_SPACE, KC_BSPC, RCTL(KC_BSPC), KC_DELETE, LCTL(KC_DELETE)
- ),
-#else
-// use android studio macros on the KEYNAV layer
- [KEYNAV] = LAYOUT(
- KC_ESC, AS_GO_IMPLEMENTATION, RCTL(KC_Z), RCTL(KC_S), MEH(KC_A), MEH(KC_B), KC_HOME, KC_UP, KC_END, KC_PGUP,
- AS_BACK, AS_SYMBOL, RSFT(KC_TAB), KC_TAB, SHELL_DEL_WORD, LCTL(KC_LEFT), KC_LEFT, KC_DOWN, KC_RIGHT, LCTL(KC_RIGHT),
- AS_FINDUSAGE, AS_CLASS, AS_TABLEFT, AS_TABRIGHT, AS_CLOSETAB, KC_TRNS, RCTL(KC_C), RCTL(KC_X), RCTL(KC_V), KC_PGDN,
- AS_CLOSETOOLWINDOW, AS_GO_DECLARATION, KC_TRNS, KC_TRNS, AS_ALTENTER, KC_TRNS, KC_ENTER, KC_SPACE, KC_BSPC, RCTL(KC_BSPC), KC_DELETE, LCTL(KC_DELETE)
- ),
-#endif
-
- [KEYSEL] = LAYOUT(
- MEH(KC_G), MEH(KC_H),MEH(KC_I), MEH(KC_J), MEH(KC_K), KC_TRNS, RSFT(KC_HOME), RSFT(KC_UP), RSFT(KC_END), RSFT(KC_PGUP),
- MEH(KC_L), MEH(KC_M),MEH(KC_N), MEH(KC_O), MEH(KC_P), RSFT(RCTL(KC_LEFT)), RSFT(KC_LEFT), RSFT(KC_DOWN), RSFT(KC_RIGHT), RSFT(RCTL(KC_RIGHT)),
- MEH(KC_Q), MEH(KC_R),MEH(KC_S), MEH(KC_T), MEH(KC_U), KC_TRNS, RCTL(KC_C), RCTL(KC_X), RCTL(KC_V), RSFT(KC_PGDN),
- QK_BOOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_ENTER, KC_SPACE, KC_BSPC, RCTL(KC_BSPC), KC_DELETE, LCTL(KC_DELETE)
- ),
-
- [COMBINED] = LAYOUT(
- KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_PLUS, KC_7, KC_8, KC_9, KC_ASTR,
- KC_LPRN, KC_RPRN, KC_LBRC, KC_RBRC, KC_UNDS, KC_MINS, KC_4, KC_5, KC_6, KC_SLSH,
- KC_COLN, KC_DQUO, KC_LCBR, KC_RCBR, KC_AMPR, KC_EQUAL, KC_1, KC_2, KC_3, KC_QUES,
- KC_TRNS, KC_TILD, KC_GRAVE, KC_CIRC, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_0, KC_DOT, KC_PIPE, KC_BSLS
- ),
-
- [BROWSER_CONTROL] = LAYOUT(
- MEH(KC_C), KC_BTN3, KC_MS_U, KC_BTN1, KC_BTN2, KC_UP, KC_PGUP, KC_PGDN, KC_MS_WH_UP, MEH(KC_9),
- MEH(KC_D), KC_MS_L, KC_MS_D, KC_MS_R, MEH(KC_6), KC_DOWN, RSFT(RCTL(KC_TAB)), RCTL(KC_TAB), KC_MS_WH_DOWN, LALT(KC_LEFT),
- MEH(KC_E), W10_TASKVIEW, W10_WORKSPACE_LEFT, W10_WORKSPACE_RIGHT, MEH(KC_7), MEH(KC_8), RCTL(KC_1), RCTL(KC_9), KC_F6, KC_F5,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RCTL(KC_W), RCTL(KC_T), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
- ),
-};
-
-bool process_record_user(uint16_t keycode, keyrecord_t *record) {
- if(record->event.pressed) {
- switch (keycode) {
- // windows 10 workspace shortcuts
- case W10_TASKVIEW:
- tap_code16(G(KC_TAB));
- return true;
- break;
- case W10_WORKSPACE_LEFT:
- tap_code16(G(C(KC_LEFT)));
- return true;
- break;
- case W10_WORKSPACE_RIGHT:
- tap_code16(G(C(KC_RIGHT)));
- break;
- }
- }
-
- return true;
-}
diff --git a/keyboards/atreus/keymaps/ibnuda/keymap.c b/keyboards/atreus/keymaps/ibnuda/keymap.c
deleted file mode 100644
index 3bdfccad98..0000000000
--- a/keyboards/atreus/keymaps/ibnuda/keymap.c
+++ /dev/null
@@ -1,47 +0,0 @@
-#include QMK_KEYBOARD_H
-
-#include "ibnuda.h"
-
-// clang-format off
-#define LAYOUT_atreus_base( \
- K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, \
- K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, \
- K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, \
- KTA, KTB, KTC, KTD \
- ) \
- LAYOUT_wrapper( \
- K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, \
- K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, \
- K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, \
- ___, ___, ___, ___, KTA, KTB, KTC, KTD, ___, ___, ___, ___ \
- )
-#define LAYOUT_atreus_base_wrapper(...) LAYOUT_atreus_base(__VA_ARGS__)
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-[_BASE] = LAYOUT_atreus_base_wrapper(
- ________________DVORAK_L1_______________, ________________DVORAK_R1_______________,
- ________________DVORAK_L2_______________, ________________DVORAK_R2_______________,
- ________________DVORAK_L3_______________, ________________DVORAK_R3_______________,
- LW_BSPC,SFT_ESC, ALT_ENT,RS_SPC
-),
-
-[_RAISE] = LAYOUT_atreus_base_wrapper(
- ________________RAISE_L1________________, ________________RAISE_R1________________,
- ________________RAISE_L2________________, ________________RAISE_R2________________,
- ________________RAISE_L3________________, ________________RAISE_R3________________,
- ADDDD, _______, _______,_______
-),
-[_LOWER] = LAYOUT_atreus_base_wrapper(
- ________________LOWER_L1________________, ________________LOWER_R1________________,
- ________________LOWER_L2________________, ________________LOWER_R2________________,
- ________________LOWER_L3________________, ________________LOWER_R3________________,
- _______,_______, _______,ADDDD
-),
-[_ADJUST] = LAYOUT_atreus_base_wrapper(
- ________________ADJUST_L1_______________, ________________ADJUST_R1_______________,
- ________________ADJUST_L2_______________, ________________ADJUST_R2_______________,
- ________________ADJUST_L3_______________, ________________ADJUST_R3_______________,
- _______,_______, _______,_______
-),
-};
-// clang-format on
diff --git a/keyboards/atreus/keymaps/ibnuda/rules.mk b/keyboards/atreus/keymaps/ibnuda/rules.mk
deleted file mode 100644
index 14227c90d7..0000000000
--- a/keyboards/atreus/keymaps/ibnuda/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-LTO_ENABLE=yes
diff --git a/keyboards/atreus/keymaps/manna-harbour_miryoku/config.h b/keyboards/atreus/keymaps/manna-harbour_miryoku/config.h
deleted file mode 100644
index 30a066fa5b..0000000000
--- a/keyboards/atreus/keymaps/manna-harbour_miryoku/config.h
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright 2019 Manna Harbour
-// https://github.com/manna-harbour/miryoku
-
-// 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 XXX KC_NO
-
-#define LAYOUT_miryoku(\
-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,\
-N30, N31, K32, K33, K34, K35, K36, K37, N38, N39\
-)\
-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,\
-XXX, XXX, XXX, K32, K33, K34, K35, K36, K37, XXX, XXX, XXX\
-)
diff --git a/keyboards/atreus/keymaps/manna-harbour_miryoku/keymap.c b/keyboards/atreus/keymaps/manna-harbour_miryoku/keymap.c
deleted file mode 100644
index dbab7f9820..0000000000
--- a/keyboards/atreus/keymaps/manna-harbour_miryoku/keymap.c
+++ /dev/null
@@ -1,4 +0,0 @@
-// Copyright 2019 Manna Harbour
-// https://github.com/manna-harbour/miryoku
-
-// 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/>.
diff --git a/keyboards/atreus/keymaps/ridingqwerty/config.h b/keyboards/atreus/keymaps/ridingqwerty/config.h
deleted file mode 100644
index 349d7b1c49..0000000000
--- a/keyboards/atreus/keymaps/ridingqwerty/config.h
+++ /dev/null
@@ -1,13 +0,0 @@
-#pragma once
-
-#undef MATRIX_ROWS
-#define MATRIX_ROWS 8
-
-#undef MATRIX_COLS
-#define MATRIX_COLS 6
-
-#undef MATRIX_ROW_PINS
-#define MATRIX_ROW_PINS { A6, A7, A8, A15, B11, B12, A14, A13 }
-
-#undef MATRIX_COL_PINS
-#define MATRIX_COL_PINS { B5, B4, B3, B2, B1, B0 }
diff --git a/keyboards/atreus/keymaps/ridingqwerty/keymap.c b/keyboards/atreus/keymaps/ridingqwerty/keymap.c
deleted file mode 100644
index 9b0826402e..0000000000
--- a/keyboards/atreus/keymaps/ridingqwerty/keymap.c
+++ /dev/null
@@ -1,153 +0,0 @@
-/* Copyright 2019 George Koenig
- *
- * 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 "ridingqwerty.h"
-
-/* Atreus
- ┏━━━━━━━━┯━━━━━━━━┯━━━━━━━━┯━━━━━━━━┯━━━━━━━━┓ ┏━━━━━━━━┯━━━━━━━━┯━━━━━━━━┯━━━━━━━━┯━━━━━━━━┓
- ┃ Q │ W │ E │ R │ T ┃ ┃ Y │ U │ I │ O │ P ┃
- ┠────────┼────────┼────────┼────────┼────────┨ ┠────────┼────────┼────────┼────────┼────────┨
- /┃ ¶ A │ S │ D │ F │ G ┃ ┃ H │ J │ K │ L │ 🔢 ; ┃
- ┠────────┼────────┼────────┼────────┼────────┞━━━━━━━━┳━━━━━━━━┞────────┼────────┼────────┼────────┼────────┨
- /┃ ⇧ Z │ X │ C │ V │ B │ ┃ │ N │ M │ , │ 𝔽 . │ ⇧ / ┃
- ┠────────┼────────┼────────┼────────┼────────┤ ¶ ⎋ ┃ ❦ ⇥ ├────────┼────────┼────────┼────────┼────────┨
- ┃ ⎈ ⎋ │ ⌘ ⇥ │ ⎇ [ │ ⇧ ] │ 🔢 ⌫ │ ┃ │ ★ ␣ │ ⇧ - │ ⎇ = │ ⌘ ' │ ⎈ ↵ ┃
- ┗━━━━━━━━┷━━━━━━━━┷━━━━━━━━┷━━━━━━━━┷━━━━━━━━┷━━━━━━━━┻━━━━━━━━┷━━━━━━━━┷━━━━━━━━┷━━━━━━━━┷━━━━━━━━┷━━━━━━━━┛
- MODS // LAYERS // MODS //
-*/
-
-#define LAYOUT_atreus( \
- K00, K01, K02, K03, K04, K40, K41, K42, K43, K44, \
- K10, K11, K12, K13, K14, K50, K51, K52, K53, K54, \
- K20, K21, K22, K23, K24, K60, K61, K62, K63, K64, \
- K30, K31, K32, K33, K34, K35, K70, K71, K72, K73, K74, K75 \
-) { \
- { K00, K01, K02, K03, K04, KC_NO }, \
- { K10, K11, K12, K13, K14, KC_NO }, \
- { K20, K21, K22, K23, K24, KC_NO }, \
- { K30, K31, K32, K33, K34, K35 }, \
- { K44, K43, K42, K41, K40, KC_NO }, \
- { K54, K53, K52, K51, K50, KC_NO }, \
- { K64, K63, K62, K61, K60, KC_NO }, \
- { K75, K74, K73, K72, K71, K70 } \
-}
-
-//#define ALPHA UP(UCM_LDEL, UCM_UDEL)
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [_QWERTY] = LAYOUT_atreus_wrapper( /* Qwerty */
- ________________ATREUS_L1__________________, ________________ATREUS_R1__________________,
- ________________ATREUS_L2__________________, ________________ATREUS_R2__________________,
- ________________ATREUS_L3__________________, ________________ATREUS_R3__________________,
- ________________BOTTOM_L4__________________, ____THUMBS_R4___, ________________BOTTOM_R4__________________
- ),
- [_DVORAK] = LAYOUT_atreus_wrapper( /* Qwerty */
- ________________DVORAK_L1__________________, ________________DVORAK_R1__________________,
- ________________DVORAK_L2__________________, ________________DVORAK_R2__________________,
- ________________DVORAK_L3__________________, ________________DVORAK_R3__________________,
- ________________BOTTOM_L4__________________, ____THUMBS_R4___, ________________BOTTOM_R4__________________
- ),
- [_COLEMAK] = LAYOUT_atreus_wrapper( /* Qwerty */
- ________________COLEMAK_L1_________________, ________________COLEMAK_R1_________________,
- ________________COLEMAK_L2_________________, ________________COLEMAK_R2_________________,
- ________________COLEMAK_L3_________________, ________________COLEMAK_R3_________________,
- ________________BOTTOM_L4__________________, ____THUMBS_R4___, ________________BOTTOM_R4__________________
- ),
-//#if defined(UNICODEMAP_ENABLE)
-//#ifdef UNICODE_H
-#ifdef UNICODEMAP_ENABLE
- [_GREEK] = LAYOUT_atreus_wrapper(
- ________________GREEK_L1___________________, ________________GREEK_R1___________________,
- ________________GREEK_L2___________________, ________________GREEK_R2___________________,
- ________________GREEK_L3___________________, ________________GREEK_R3___________________,
- ________________BOTTOM_L4__________________, ____THUMBS_R4___, ________________BOTTOM_R4__________________
- ),
- [_RUSSIAN] = LAYOUT_atreus_wrapper(
- ________________CYRLC_L1___________________, ________________CYRLC_R1___________________,
- ________________CYRLC_L2___________________, ________________CYRLC_R2___________________,
- ________________CYRLC_L3___________________, ________________CYRLC_R3___________________,
- ________________BOTTOM_L4__________________, ____THUMBS_R4___, ________________CYRLC_R4___________________
- ),
- [_RUNES] = LAYOUT_atreus_wrapper(
- ________________FTHRK_L1___________________, ________________FTHRK_R1___________________,
- ________________FTHRK_L2___________________, ________________FTHRK_R2___________________,
- ________________FTHRK_L3___________________, ________________FTHRK_R3___________________,
- ________________BOTTOM_L4__________________, ____THUMBS_R4___, ________________BOTTOM_R4__________________
- ),
- [_HIRA1] = LAYOUT_atreus_wrapper(
- ________________JIS1_L1____________________, ________________JIS1_R1____________________,
- ________________JIS1_L2____________________, ________________JIS1_R2____________________,
- ________________JIS1_L3____________________, ________________JIS1_R3____________________,
- ________________BOTTOM_L4__________________, ____THUMBS_R4___, ________________BOTTOM_R4__________________
- ),
- [_HIRA2] = LAYOUT_atreus_wrapper(
- ________________JIS2_L1____________________, ________________JIS2_R1____________________,
- ________________JIS2_L2____________________, ________________JIS2_R2____________________,
- ________________JIS2_L3____________________, ________________JIS2_R3____________________,
- ________________BOTTOM_L4__________________, ____THUMBS_R4___, ________________BOTTOM_R4__________________
- ),
-#endif
- [_EDITOR] = LAYOUT_atreus_wrapper( /* ED_A, ED_ESC */
- ________________EDITOR_L1__________________, ________________EDITOR_R1__________________,
- ________________EDITOR_L2__________________, ________________EDITOR_R2__________________,
- ________________EDITOR_L3__________________, ________________EDITOR_R3__________________,
- _______, _______, _______, _______, _______, ________________, _______, _______, _______, _______, _______
- ),
- [_NUMBER] = LAYOUT_atreus_wrapper( /* NM_SCLN, NM_BSPC */
- ________________NUMROW_L1__________________, ________________NUMROW_R1__________________,
- ________________NUMROW_R1__________________, ________________NUMPAD_R2__________________,
- ___________________________________________, ________________NUMPAD_R3__________________,
- ___________________________________________, ________________, ________________NUMPAD_R4__________________
- ),
- [_SYMBOL] = LAYOUT_atreus_wrapper( /* SM_SPC */
- ________________SYMROW_L1__________________, ________________SYMROW_R1__________________,
- ________________SYMROW_R1__________________, ________________SYMROW_R1__________________,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_BSLS,
- KC_LBRC, _______, _______, _______, _______, ________________, _______, _______, _______, _______, KC_RBRC
- ),
- [_F_KEYS] = LAYOUT_atreus_wrapper( /* FK_DOT */
- ________________FKEYROW_L1_________________, ________________FKEYROW_R1_________________,
- ________________FKEYROW_R1_________________, ________________FKEYROW_L1_________________,
- KC_F11, KC_F12, _______, _______, _______, KC_F11, KC_F12, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
- ),
- [_DEBUG] = LAYOUT_atreus_wrapper( /* shhhh... */
- ________________DEBUG_L1___________________, ________________DEBUG_R1___________________,
- ________________DEBUG_L2___________________, ________________DEBUG_R2___________________,
- ________________DEBUG_L3___________________, ________________DEBUG_R3___________________,
- _______, _______, _______, _______, _______, ________________, _______, _______, _______, _______, _______
- ),
- [_SECRET] = LAYOUT_atreus_wrapper( /* shhhh... */
-/*
- _______, _______, _______, RUSTY, FUEL, _______, _______, _______, _______, _______,
- AR1ST, SYSNOC, _______, _______, _______, _______, _______, _______, OS_LAB, _______,
- CDLOCAL, _______, C0RE, VAXIS, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
-*/
- ________________SECRET_L1__________________, ________________SECRET_R1__________________,
- ________________SECRET_L2__________________, ________________SECRET_R2__________________,
- ________________SECRET_L3__________________, ________________SECRET_R3__________________,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
-
- ),
- [_FINAL] = LAYOUT_atreus( /* . */
- _______, _______, _______, _______, TESTING, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
- )
-};
diff --git a/keyboards/atreus/keymaps/ridingqwerty/readme.md b/keyboards/atreus/keymaps/ridingqwerty/readme.md
deleted file mode 100644
index 936df36099..0000000000
--- a/keyboards/atreus/keymaps/ridingqwerty/readme.md
+++ /dev/null
@@ -1 +0,0 @@
-This is a handwired Atreus42 using a Proton C
diff --git a/keyboards/atreus/keymaps/ridingqwerty/rules.mk b/keyboards/atreus/keymaps/ridingqwerty/rules.mk
deleted file mode 100644
index ecead0e01b..0000000000
--- a/keyboards/atreus/keymaps/ridingqwerty/rules.mk
+++ /dev/null
@@ -1,22 +0,0 @@
-# MCU name
-MCU = STM32F303
-BOARD = QMK_PROTON_C
-
-# Bootloader selection
-BOOTLOADER = stm32-dfu
-
-# Build Options
-# comment out to disable the options.
-#
-BACKLIGHT_ENABLE = no
-BOOTMAGIC_ENABLE = no # Enable Bootmagic Lite
-MOUSEKEY_ENABLE = no # Mouse keys
-EXTRAKEY_ENABLE = yes # Audio control and System control
-CONSOLE_ENABLE = no # Console for debug
-COMMAND_ENABLE = no # Commands for debug and configuration
-NKRO_ENABLE = yes # USB Nkey Rollover
-AUDIO_ENABLE = yes # Doot
-RGBLIGHT_ENABLE = no
-TAP_DANCE_ENABLE = no
-UNICODE_ENABLE = no
-UNICODEMAP_ENABLE = yes
diff --git a/keyboards/atreus/keymaps/talljoe/config.h b/keyboards/atreus/keymaps/talljoe/config.h
deleted file mode 100644
index 71c7864b7c..0000000000
--- a/keyboards/atreus/keymaps/talljoe/config.h
+++ /dev/null
@@ -1,53 +0,0 @@
-/* Copyright 2020 Joseph Wasson
- *
- * 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 SPACE_COUNT 3
-
-#define TEMPLATE_TKL( \
- KESC, KF01, KF02, KF03, KF04, KF05, KF06, KF07, KF08, KF09, KF10, KF11, KF12, KSCL, KPRS, KADJ, \
- KGRV, K_1 , K_2 , K_3 , K_4 , K_5 , K_6 , K_7 , K_8 , K_9 , K_0 , KMIN, KEQL, KBSP, KINS, KHOM, KPUP, \
- KTAB, K_Q , K_W , K_E , K_R , K_T , K_Y , K_U , K_I , K_O , K_P , KLBR, KRBR, KBLS, KDEL, KEND, LPDN, \
- KCAP, K_A , K_S , K_D , K_F , K_G , K_H , K_J , K_K , K_L , KSMI, KQUO, KENT, \
- KLSH, K_Z , K_X , K_C , K_V , K_B , K_N , K_M , KCMA, KDOT, KSLS, KRSH, K_UP, \
- KLCT, KLOS, KLAL, KSP3, KSP2, KSP1, KRAL, KROS, KRCT, KPTT, K_LT, K_DN, K_RT \
-) LAYOUT( \
- K_Q , K_W , K_E , K_R , K_T , K_Y , K_U , K_I , K_O , K_P , \
- K_A , K_S , K_D , K_F , K_G , K_H , K_J , K_K , K_L , KSMI, \
- K_Z , K_X , K_C , K_V , K_B , K_N , K_M , KCMA, KDOT, KSLS, \
- KTAB, KLOS, KLAL, KLSH, KSP3, KSP2, KCAP, KSP1, KRSH, KBLS, KQUO, KADJ \
-)
-
-#define TEMPLATE_NUM( \
- KGRV, K_1 , K_2 , K_3 , K_4 , K_5 , K_6 , K_7 , K_8 , K_9 , K_0 , KMIN, KEQL, KBSL, KESC, \
- KTAB, K_Q , K_W , K_E , K_R , K_T , K_Y , K_U , K_I , K_O , K_P , KLBR, KRBR, KBSP, \
- KCAP, K_A , K_S , K_D , K_F , K_G , K_H , K_J , K_K , K_L , KSMI, KQUO, KENT, \
- KLSH, K_Z , K_X , K_C , K_V , K_B , K_N , K_M , KCMA, KDOT, KSLS, KRSH, KADJ, \
- KLCT, KLOS, KLAL, KSP3, KSP2, KSP1, KRAL, KROS, KRCT, KPTT \
-) LAYOUT( \
- K_Q , K_W , K_E , K_R , K_T , K_Y , K_U , K_I , K_O , K_P , \
- K_A , K_S , K_D , K_F , K_G , K_H , K_J , K_K , K_L , KSMI, \
- K_Z , K_X , K_C , K_V , K_B , K_N , K_M , KCMA, KDOT, KSLS, \
- KTAB, KLOS, KLAL, KLSH, KSP3, KSP2, KCAP, KSP1, KRAL, KROS, KQUO, KADJ \
-)
-
-#define TEMPLATE_RESET LAYOUT( \
- QK_BOOT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \
- XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \
- XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \
- QK_BOOT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, QK_BOOT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX \
-)
diff --git a/keyboards/atreus/keymaps/talljoe/keymap.c b/keyboards/atreus/keymaps/talljoe/keymap.c
deleted file mode 100644
index 7812add812..0000000000
--- a/keyboards/atreus/keymaps/talljoe/keymap.c
+++ /dev/null
@@ -1 +0,0 @@
-// This space intentionally left blank
diff --git a/keyboards/atreus/keymaps/talljoe/rules.mk b/keyboards/atreus/keymaps/talljoe/rules.mk
deleted file mode 100644
index 92007fe8ad..0000000000
--- a/keyboards/atreus/keymaps/talljoe/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-USER_NAME := talljoe
diff --git a/keyboards/atreus62/keymaps/d4mation/keymap.c b/keyboards/atreus62/keymaps/d4mation/keymap.c
deleted file mode 100644
index e01f5b9ec6..0000000000
--- a/keyboards/atreus62/keymaps/d4mation/keymap.c
+++ /dev/null
@@ -1,196 +0,0 @@
-#include QMK_KEYBOARD_H
-#include "d4mation.h"
-
-enum layer_names {
- _DVR,
- _QWR,
- _LOWER,
- _RAISE,
- _NUM,
- _ADJUST
-};
-
-enum keymap_custom_keycodes {
- LOWER = NEW_SAFE_RANGE,
- RAISE
-};
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
- /* Default/Dvorak layer
- * ,-----------------------------------------. ,-----------------------------------------.
- * | ` | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | / |
- * |------+------+------+------+------+------| |------+------+------+------+------+------|
- * | Tab | ' | , | . | P | Y | | F | G | C | R | L | = |
- * |------+------+------+------+------+------| |------+------+------+------+------+------|
- * | Ctrl | A | O | E | U | I |,------.,------.| D | H | T | N | S | - |
- * |------+------+------+------+------+------|| || ||------+------+------+------+------+------|
- * |Shift | ; | Q | J | K | X ||Super ||Enter || B | M | W | V | Z | \ |
- * |------+------+------+------+------+------|| || ||------+------+------+------+------+------|
- * | NUM | Alt | Home | End |Lower | Bksp |`------'`------'|Space |Raise | Left | Down | Up |Right |
- * `-----------------------------------------' `-----------------------------------------'
- */
-
- [_DVR] = LAYOUT(
- _GRAVE_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_SLSH,
- KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_EQL,
- KC_LCTL, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_MINS,
- TD(SHIFT_CAPS), KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_BSLS,
- TG(_NUM), KC_RALT, KC_HOME, KC_END, LOWER, KC_BSPC, KC_LGUI, KC_ENT, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT
- ),
-
- /* Qwerty layer, more "standard" for other people who may need to use my keyboard or for games where using Qwerty is just easier
- * ,-----------------------------------------. ,-----------------------------------------.
- * | ` | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | - |
- * |------+------+------+------+------+------| |------+------+------+------+------+------|
- * | Tab | Q | W | E | R | T | | Y | U | I | O | P | \ |
- * |------+------+------+------+------+------| |------+------+------+------+------+------|
- * | Ctrl | A | S | D | F | G |,------.,------.| H | J | K | L | ; | ' |
- * |------+------+------+------+------+------|| || ||------+------+------+------+------+------|
- * |Shift | Z | X | C | V | B ||Super ||Enter || N | M | , | . | / | = |
- * |------+------+------+------+------+------|| || ||------+------+------+------+------+------|
- * | NUM | Alt | Home | End |Lower | Bksp |`------'`------'|Space |Raise | Left | Down | Up |Right |
- * `-----------------------------------------' `-----------------------------------------'
- */
-
- [_QWR] = LAYOUT(
- _GRAVE_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS,
- KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS,
- KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
- TD(SHIFT_CAPS), KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_EQL,
- TG(_NUM), KC_RALT, KC_HOME, KC_END, LOWER, KC_BSPC, KC_LGUI, KC_ENT, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT
- ),
-
- /* "Lower" layer
- * ,-----------------------------------------. ,-----------------------------------------.
- * | F11 | F1 | F2 | F3 | F4 | F5 | | F6 | F7 | F8 | F9 | F10 | F12 |
- * |------+------+------+------+------+------| |------+------+------+------+------+------|
- * | | | | |SLEEP | | | | | SCRGB| | | |
- * |------+------+------+------+------+------| |------+------+------+------+------+------|
- * | | | | | | |,------.,------.| | | | { | } | |
- * |------+------+------+------+------+------|| || ||------+------+------+------+------+------|
- * | | | | | | || || || | Mute | VolD | VolU | | |
- * |------+------+------+------+------+------|| || ||------+------+------+------+------+------|
- * | | |PageUp|PgDown| | Del |`------'`------'| Ins | | | | | |
- * `-----------------------------------------' `-----------------------------------------'
- */
-
- [_LOWER] = LAYOUT(
- KC_F11, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F12,
- _______, _______, _______, _______, SLEEP, _______, _______, _______, SCRGB, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_LCBR, KC_RCBR, _______,
- _______, _______, _______, _______, _______, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______,
- _______, _______, KC_PGUP, KC_PGDN, _______, KC_DEL, _______, _______, KC_INS, _______, _______, _______, _______, _______
- ),
-
- /* "Raise" layer
- * ,-----------------------------------------. ,-----------------------------------------.
- * | F11 | F1 | F2 | F3 | F4 | F5 | | F6 | F7 | F8 | F9 | F10 | F12 |
- * |------+------+------+------+------+------| |------+------+------+------+------+------|
- * | | |<?php>| ?> | | | |ZALGO | | | | | |
- * |------+------+------+------+------+------| |------+------+------+------+------+------|
- * | | Shrug|Lenny |Magic |Disfac| |,------.,------.| | | | [ | ] | |
- * |------+------+------+------+------+------|| || ||------+------+------+------+------+------|
- * | | Ameno| Tflip| Tput | | || || || | Prev | Play | Next | | |
- * |------+------+------+------+------+------|| || ||------+------+------+------+------+------|
- * | | |PageUp|PgDown| | Del |`------'`------'| Ins | | | | | |
- * `-----------------------------------------' `-----------------------------------------'
- */
-
- [_RAISE] = LAYOUT(
- KC_F11, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F12,
- _______, _______, PHPOPEN, PHPCLSE, _______, _______, ZALGO, _______, _______, _______, _______, _______,
- _______, SHRUG, LENNY, MAGIC, DISFACE, _______, _______, _______, _______, KC_LBRC, KC_RBRC,_______,
- _______, AMENO, TFLIP, TPUT, _______, _______, _______, KC_MPRV, KC_MPLY, KC_MNXT, _______, _______,
- _______, _______, KC_PGUP, KC_PGDN, _______, KC_DEL, _______, _______, KC_INS, _______, _______, _______, _______, _______
- ),
-
- /* "Numpad" layer
- * ,-----------------------------------------. ,-----------------------------------------.
- * | | | / | * | - | | | | | / | * | - | |
- * |------+------+------+------+------+------| |------+------+------+------+------+------|
- * | | 7 | 8 | 9 | + | | | | 7 | 8 | 9 | + | |
- * |------+------+------+------+------+------| |------+------+------+------+------+------|
- * | | 4 | 5 | 6 | + | |,------.,------.| | 4 | 5 | 6 | + | |
- * |------+------+------+------+------+------|| || ||------+------+------+------+------+------|
- * | | 1 | 2 | 3 | Enter| || || || | 1 | 2 | 3 | Enter| |
- * |------+------+------+------+------+------|| || ||------+------+------+------+------+------|
- * | | 0 | 0 | . | Enter| |`------'`------'| | 0 | 0 | . | Enter| |
- * `-----------------------------------------' `-----------------------------------------'
- */
-
- [_NUM] = LAYOUT(
- _______, _______, KC_PSLS, KC_PAST, KC_PMNS, _______, _______, _______, KC_PSLS, KC_PAST, KC_PMNS, _______,
- _______, KC_KP_7, KC_KP_8, KC_KP_9, KC_PPLS, _______, _______, KC_KP_7, KC_KP_8, KC_KP_9, KC_PPLS, _______,
- _______, KC_KP_4, KC_KP_5, KC_KP_6, KC_PPLS, _______, _______, KC_KP_4, KC_KP_5, KC_KP_6, KC_PPLS, _______,
- _______, KC_KP_1, KC_KP_2, KC_KP_3, KC_PENT, _______, _______, KC_KP_1, KC_KP_2, KC_KP_3, KC_PENT, _______,
- _______, KC_KP_0, KC_KP_0, KC_PDOT, KC_PENT, _______, _______, _______, _______, KC_KP_0, KC_KP_0, KC_PDOT, KC_PENT, _______
- ),
-
- /* "Adjust" layer, only active if both "Lower" and "Raise" are active at the same time
- * All unused keys are blanked out for this layer
- * ,-----------------------------------------. ,-----------------------------------------.
- * | NO | NO | NO | NO | NO | NO | | NO | NO | NO | NO | NO | NO |
- * |------+------+------+------+------+------| |------+------+------+------+------+------|
- * | NO |QK_BOOT | NO | NO | NO | NO | | NO | NO | NO | NO | NO | NO |
- * |------+------+------+------+------+------| |------+------+------+------+------+------|
- * | NO | NO | NO |UC WIN|UC OSX| NO |,------.,------.| NO |Dvorak|Qwerty| NO | NO | NO |
- * |------+------+------+------+------+------|| Swap || ||------+------+------+------+------+------|
- * | NO | NO | NO | NO | NO | NO || to || Swap || NO | NO | NO | NO | NO | NO |
- * |------+------+------+------+------+------|| Ctrl || Back ||------+------+------+------+------+------|
- * | NO | NO | NO | NO | | NO |`------'`------'| NO | | NO | NO | NO | NO |
- * `-----------------------------------------' `-----------------------------------------'
- */
-
- [_ADJUST] = LAYOUT(
- XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
- XXXXXXX, QK_BOOT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
- XXXXXXX, XXXXXXX, XXXXXXX, UC_WIN, UC_MAC, XXXXXXX, XXXXXXX, DF(_DVR),DF(_QWR),XXXXXXX, XXXXXXX, XXXXXXX,
- XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
- XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, XXXXXXX, CG_SWAP, CG_NORM, XXXXXXX, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX
- ),
-
-};
-
-/* Runs just one time when the keyboard initializes. */
-void eeconfig_init_keymap( void ) {
- set_unicode_input_mode( UNICODE_MODE_MACOS );
-};
-
-bool process_record_keymap( uint16_t keycode, keyrecord_t *record ) {
-
- switch ( keycode ) {
-
- case LOWER:
-
- if ( record->event.pressed ) {
- layer_on( _LOWER );
- update_tri_layer( _LOWER, _RAISE, _ADJUST );
- }
- else {
- layer_off( _LOWER );
- update_tri_layer( _LOWER, _RAISE, _ADJUST );
- }
-
- return false;
- break;
-
- case RAISE :
-
- if ( record->event.pressed ) {
- layer_on( _RAISE );
- update_tri_layer( _LOWER, _RAISE, _ADJUST );
- }
- else {
- layer_off( _RAISE );
- update_tri_layer( _LOWER, _RAISE, _ADJUST );
- }
-
- return false;
- break;
-
- }
-
- return true;
-
-}; \ No newline at end of file
diff --git a/keyboards/atreus62/keymaps/d4mation/readme.md b/keyboards/atreus62/keymaps/d4mation/readme.md
deleted file mode 100644
index 5642e8e432..0000000000
--- a/keyboards/atreus62/keymaps/d4mation/readme.md
+++ /dev/null
@@ -1,40 +0,0 @@
-# d4mation's keymap for the Atreus62
-
-This is a bit of a work in-progress, but for the most part I like what I have done here.
-
-I switched to Dvorak some time ago and software-based support in most OS's for Dvorak isn't very great, so this keymap by default is set to Dvorak.
-
-## Table of Contents
-
-* [Layers](#layers)
- - [Base layer](#base)
- - [Num](#num)
- - [Lower](#lower)
- - [Raise](#raise)
- - [Adjust](#adjust)
-
-# Layers
-
-## Base
-
-* By default, this layer is Dvorak. But using the Adjust layer you can switch to Qwerty
-* Double-tapping Shift enables and disables Caps Lock
-* Quickly tapping the Grave accent key will output a Grave Accent, but holding it for 200ms will output the ESC key instead
-
-## Num
-
-This layer gets toggled off and on to place a numpad on both the left and right sides of the keyboard.
-
-## Lower
-
-This layer holds some handy shortcuts that I use often, like the screen grab shortcut and sleep shortcut in OS X.
-
-It also has quick access to {} as they are inaccessible in the base layer
-
-## Raise
-
-Aside from quick access to [] and Play/Pause/Next/Previous, this layer is mostly just goofy things I decided to program into the keyboard because I could. There's a bunch of [kaomoji](https://en.wikipedia.org/wiki/Emoticon#Japanese_style_(kaomoji))/"unicode smileys" and I added a toggle switch to enable a [Zalgo Text](https://zalgo.org/) mode.
-
-## Adjust
-
-This layer is a "here be dragons" layer. It can only be accessed by holding down the keys for Lower and Raise at the same time. I added exclusively keys that drastically transformed the keyboard's layout or function on this layer. The ability to switch to Qwerty is on this layer, a way to switch CTRL and CMD back and forth is on this layer, and a hotkey to enter bootloader mode also exists.
diff --git a/keyboards/atreus62/keymaps/d4mation/rules.mk b/keyboards/atreus62/keymaps/d4mation/rules.mk
deleted file mode 100644
index 517f2700e1..0000000000
--- a/keyboards/atreus62/keymaps/d4mation/rules.mk
+++ /dev/null
@@ -1,2 +0,0 @@
-UNICODE_ENABLE = yes
-TAP_DANCE_ENABLE = yes \ No newline at end of file
diff --git a/keyboards/atreus62/keymaps/hvp/config.h b/keyboards/atreus62/keymaps/hvp/config.h
deleted file mode 100644
index 8013c0cb6d..0000000000
--- a/keyboards/atreus62/keymaps/hvp/config.h
+++ /dev/null
@@ -1,4 +0,0 @@
-#pragma once
-
-#define TAPPING_TERM 150
-#define PERMISSIVE_HOLD
diff --git a/keyboards/atreus62/keymaps/hvp/keymap.c b/keyboards/atreus62/keymaps/hvp/keymap.c
deleted file mode 100644
index 1a49f838fa..0000000000
--- a/keyboards/atreus62/keymaps/hvp/keymap.c
+++ /dev/null
@@ -1,67 +0,0 @@
-
-#include QMK_KEYBOARD_H
-#include "hvp.c"
-
-// Each layer gets a name for readability, which is then used in the keymap matrix below.
-// The underscores don't mean anything - you can have a layer called STUFF or any other name.
-// Layer names don't all need to be of the same length, obviously, and you can also skip them
-// entirely and just use numbers.
-
-#define LT3_ESC LT(3, KC_ESC)
-#define LT4_TAB LT(4, KC_TAB)
-#define LT1_ENT LT(1, KC_ENTER)
-#define LT2_BSP LT(2, KC_BSPC)
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- LAYOUT( /* qwerty */
- KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC ,
- LT4_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC ,
- LT3_ESC, KC_A, KC_S, KC_D, LT(3,KC_F), LT(4,KC_G), KC_H, KC_J, KC_K, KC_L, TD(TD1), TD(TD2) ,
- KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, TD(TD3), SC_SENT ,
- KC_LCTL, KC_APP, _______, KC_LGUI, KC_LALT,SFT_T(KC_SPC), LT2_BSP, LT1_ENT, SFT_T(KC_SPC), KC_LSFT, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT
- ),
-
- LAYOUT( /* Right */
- 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_DEL, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC ,
- KC_DEL, _______, _______, _______, _______, KC_LEFT_PAREN, KC_RIGHT_PAREN, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS,
- _______, _______, _______, _______, _______, KC_LBRC, KC_RBRC, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_PGUP, KC_END
- ),
-
- LAYOUT(/* Left */
- 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_TILDE, KC_EXCLAIM, KC_AT, KC_HASH, KC_DOLLAR, KC_PERCENT, KC_CIRCUMFLEX, KC_AMPERSAND, KC_ASTERISK, KC_LEFT_PAREN, KC_RIGHT_PAREN, KC_BSPC,
- KC_DELETE, _______, _______, _______, _______, KC_LEFT_PAREN, KC_RIGHT_PAREN, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_BSLS,
- _______ , _______ , _______ , _______ , _______ , KC_LEFT_CURLY_BRACE , KC_RIGHT_CURLY_BRACE ,KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_TILD,
- _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , KC_HOME, KC_PGDN, KC_PGUP, KC_END
- ),
-
-
- LAYOUT(/* 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_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_NO, KC_NO, D_NAVI, KC_NO, KC_NO, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_NO, KC_NO ,
- KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_HOME, KC_PGDN, KC_PGUP, KC_END, KC_NO, KC_NO ,
- KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_MSTP, KC_MPLY, KC_NO, KC_MUTE, KC_MPRV, KC_VOLD, KC_VOLU, KC_MNXT
- ),
-
-
-
- LAYOUT(/* Tab */
- _______, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, _______ ,
- _______, _______, _______, _______, _______, _______, _______, KC_4, KC_5, KC_6, _______, _______ ,
- _______, _______, _______, _______, _______, _______, KC_0, KC_1, KC_2, KC_3, _______, _______ ,
- KC_PSCR, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ,
- QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
- ),
- /*
- [_TRNS] = LAYOUT(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
- ),
- */
-};
diff --git a/keyboards/atreus62/keymaps/hvp/readme.md b/keyboards/atreus62/keymaps/hvp/readme.md
deleted file mode 100644
index 766533d3be..0000000000
--- a/keyboards/atreus62/keymaps/hvp/readme.md
+++ /dev/null
@@ -1,10 +0,0 @@
-Keyboard: Atreus62
-Keys: 62 keyed ortho staggered keyboard with a split layout and num row.
-Layout: Swedish characters on main layer using tap dance. Built for Eurkey keyboard layout.
-Flash instructions: Flash using avrdude, will req the hvp user space to compile.
-
-> make make atreus62:hvp:avrdude
-
-Links:
-Github - https://github.com/qmk/qmk_firmware/tree/master/keyboards/atreus62
-Eurkey layout - https://eurkey.steffen.bruentjen.eu/
diff --git a/keyboards/atreus62/keymaps/hvp/rules.mk b/keyboards/atreus62/keymaps/hvp/rules.mk
deleted file mode 100644
index 1ba2fa8fbe..0000000000
--- a/keyboards/atreus62/keymaps/hvp/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-TAP_DANCE_ENABLE = yes \ No newline at end of file
diff --git a/keyboards/atreus62/keymaps/jarred/config.h b/keyboards/atreus62/keymaps/jarred/config.h
deleted file mode 100644
index 34ab0baaf0..0000000000
--- a/keyboards/atreus62/keymaps/jarred/config.h
+++ /dev/null
@@ -1,21 +0,0 @@
-/* Copyright 2018 Jarred Steenvoorden
- *
- * 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
-
-// My hand wire diodes are in the opposite direction to the Atreus62 PCB
-#undef DIODE_DIRECTION
-#define DIODE_DIRECTION COL2ROW
diff --git a/keyboards/atreus62/keymaps/jarred/keymap.c b/keyboards/atreus62/keymaps/jarred/keymap.c
deleted file mode 100644
index 7a49b2890c..0000000000
--- a/keyboards/atreus62/keymaps/jarred/keymap.c
+++ /dev/null
@@ -1,26 +0,0 @@
-/* Copyright 2018 Jarred Steenvoorden
- *
- * 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 "jarred.h"
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [_QW] = LAYOUT_atreus62_grid_wrapper(BLANK_12, QWERTY_1_12, QWERTY_2_12, QWERTY_3_12, QWERTY_L4, KC_NO, KC_NO, QWERTY_R4),
- [_LW] = LAYOUT_atreus62_grid_wrapper(BLANK_12, LOWER_1_12 , LOWER_2_12 , LOWER_3_12 , LOWER_L4 , KC_NO, KC_NO, LOWER_R4 ),
- [_NV] = LAYOUT_atreus62_grid_wrapper(BLANK_12, NAV_1_12 , NAV_2_12 , NAV_3_12 , NAV_L4 , KC_NO, KC_NO, NAV_R4 ),
- [_NP] = LAYOUT_atreus62_grid_wrapper(BLANK_12, NUMPAD_1_12, NUMPAD_2_12, NUMPAD_3_12, NUMPAD_L4, KC_NO, KC_NO, NUMPAD_R4),
- [_MS] = LAYOUT_atreus62_grid_wrapper(BLANK_12, MOUSE_1_12 , MOUSE_2_12 , MOUSE_3_12 , MOUSE_L4 , KC_NO, KC_NO, MOUSE_R4 )
-};
diff --git a/keyboards/atreus62/keymaps/pcewing/keymap.c b/keyboards/atreus62/keymaps/pcewing/keymap.c
deleted file mode 100644
index c8dfd5734b..0000000000
--- a/keyboards/atreus62/keymaps/pcewing/keymap.c
+++ /dev/null
@@ -1,76 +0,0 @@
-#include QMK_KEYBOARD_H
-
-#define FN MO(_FN)
-#define TODO KC_NO
-
-enum atreus62_layers {
- _DEFAULT,
- _FN,
- _RESET
-};
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
- /* Default layer
- * ,-----------------------------------------. ,-----------------------------------------.
- * | = | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | - |
- * |------+------+------+------+------+------| |------+------+------+------+------+------|
- * | Tab | Q | W | E | R | T | | Y | U | I | O | P | \ |
- * |------+------+------+------+------+------| |------+------+------+------+------+------|
- * | Esc | A | S | D | F | G |,------.,------.| H | J | K | L | ; | " |
- * |------+------+------+------+------+------|| || ||------+------+------+------+------+------|
- * |Shift | Z | X | C | V | B ||Delete||Enter || N | M | , | . | / |Shift |
- * |------+------+------+------+------+------|| || ||------+------+------+------+------+------|
- * | Ctrl | Win | Alt | ` | Fn | Bksp |`------'`------'|Space | Fn | | Alt | Win | Ctrl |
- * `-----------------------------------------' `-----------------------------------------'
- */
- [_DEFAULT] = LAYOUT( /* qwerty */
- KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS,
- KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS,
- KC_ESC, 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_RSFT,
- KC_LCTL, KC_LGUI, KC_LALT, KC_GRV, FN, KC_BSPC, KC_DEL, KC_ENT, KC_SPC, FN, TODO, KC_RALT, KC_RGUI, KC_RCTL
- ),
-
- /* Function layer
- * ,-----------------------------------------. ,-----------------------------------------.
- * | | | | | | | | | F10 | F11 | F12 | | |
- * |------+------+------+------+------+------| |------+------+------+------+------+------|
- * | | Home | Up | End | PgUp | | | PrSc | F7 | F8 | F9 | | |
- * |------+------+------+------+------+------| |------+------+------+------+------+------|
- * | Caps | Left | Down |Right | PgDn | |,------.,------.|Pause | F4 | F5 | F6 | | |
- * |------+------+------+------+------+------|| || ||------+------+------+------+------+------|
- * | | { | } | [ | ] | || || ||Insert| F1 | F2 | F3 | | |
- * |------+------+------+------+------+------|| || ||------+------+------+------+------+------|
- * | | | | | | |`------'`------'| | | | | | |
- * `-----------------------------------------' `-----------------------------------------'
- */
- [_FN] = LAYOUT(
- _______, _______, _______, _______, _______, _______, _______, KC_F10, KC_F11, KC_F12, _______, TO(_RESET),
- _______, KC_HOME, KC_UP, KC_END, KC_PGDN, _______, KC_PSCR, KC_F7, KC_F8, KC_F9, _______, _______,
- _______, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGUP, _______, KC_PAUS, KC_F4, KC_F5, KC_F6, _______, _______,
- _______, KC_LCBR, KC_RCBR, KC_LBRC, KC_RBRC, _______, KC_INS, KC_F1, KC_F2, KC_F3, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
- ),
-
- /*
- * This layer makes it possible to reset the firmware; don't get rid of it and make sure there is a way to activate it.
- */
- [_RESET] = LAYOUT(
- TO(_DEFAULT), KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
- KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
- KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
- KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
- KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, QK_BOOT
- )
-
- /*
- [_TRNS] = LAYOUT(
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, 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/atreus62/keymaps/scheiklp/config.h b/keyboards/atreus62/keymaps/scheiklp/config.h
deleted file mode 100644
index d8b7abe8d3..0000000000
--- a/keyboards/atreus62/keymaps/scheiklp/config.h
+++ /dev/null
@@ -1,51 +0,0 @@
-/* Copyright 2017 Benjamin Kesselring
- *
- * 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
-// place overrides here
-#define AUTO_SHIFT_TIMEOUT 125
-#define NO_AUTO_SHIFT_SPECIAL
-#define NO_AUTO_SHIFT_NUMERIC
-
-// require two taps for a TT layer switch (default 5)
-#define TAPPING_TOGGLE 2
-
-// Mouse control
-// constant mode (velocity)
-#define MK_3_SPEED
-// KC_ACL0 < KC_ACL1 < unmodified < KC_ACL2
-
-// Cursor offset per movement (unmodified)
-#define MK_C_OFFSET_UNMOD 20
-// Time between cursor movements (unmodified)
-#define MK_C_INTERVAL_UNMOD 1
-/* #define MK_C_INTERVAL_UNMOD 16 */
-
-// Cursor offset per movement (KC_ACL0)
-#define MK_C_OFFSET_0 1
-// Time between cursor movements (KC_ACL0)
-#define MK_C_INTERVAL_0 10
-
-// Cursor offset per movement (KC_ACL1)
-#define MK_C_OFFSET_1 4
-// Time between cursor movements (KC_ACL1)
-#define MK_C_INTERVAL_1 16
-
-// Cursor offset per movement (KC_ACL2)
-#define MK_C_OFFSET_2 20
-/* #define MK_C_OFFSET_2 32 */
-// Time between cursor movements (KC_ACL2)
-#define MK_C_INTERVAL_2 16
diff --git a/keyboards/atreus62/keymaps/scheiklp/keymap.c b/keyboards/atreus62/keymaps/scheiklp/keymap.c
deleted file mode 100644
index 13ad3e4f51..0000000000
--- a/keyboards/atreus62/keymaps/scheiklp/keymap.c
+++ /dev/null
@@ -1,43 +0,0 @@
-#include QMK_KEYBOARD_H
-#include "koy_keys_on_quertz_de_latin1.h"
-// Layer shorthand
-#define _1 0
-#define _3 1
-#define _4 2
-#define _7 3
-
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
- [_1] = LAYOUT(
- 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_K, KC_DOT, KC_O, KC_COMM, N_Y, KC_V, KC_G, KC_C, KC_L, N_SS, N_Z,
- MO(_3), KC_H, KC_A, KC_E, KC_I, KC_U, KC_D, KC_T, KC_R, KC_N, KC_S, KC_F,
- KC_LSFT, KC_X, KC_Q, N_AE, N_UE, N_OE, KC_B, KC_P, KC_W, KC_M, KC_J, KC_RSFT,
- KC_LCTL, N_COPY, N_PASTE, KC_LGUI, KC_LALT, KC_SPC, KC_ENTER, KC_RCTL, MO(_3), MO(_4), KC_TRNS, KC_TRNS, KC_CAPS, TT(_7)
- ),
-
- [_3] = LAYOUT(
- KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_BSPC,
- KC_TAB, N_DOTS, N_USC, N_LSQBR, N_RSQBR, N_CIRC, N_EXKL, N_LT, N_GT, N_EQ, N_AMP, N_ACUT,
- KC_TRNS, N_BSLS, N_SLSH, N_LCUBR, N_RCUBR, N_ASTR, N_QUES, N_LPARN, N_RPARN, N_MINS, N_COLN, N_AT,
- KC_LSFT, N_HASH, N_DLR, N_PIPE, N_TILD, N_GRAVE, N_PLUS, N_PERC, N_QUOT, N_SING, N_SEMI, KC_RSFT,
- KC_LCTL, N_COPY, N_PASTE, KC_LGUI, KC_LALT, KC_SPC, KC_ENTER, KC_TRNS, KC_TRNS, KC_RCTL, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
- ),
-
- [_4] = LAYOUT(
- KC_ESC, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_BSPC,
- KC_TAB, KC_PGUP, KC_BSPC, KC_UP, KC_DEL, KC_PGDN, KC_KP_SLASH, KC_7, KC_8, KC_9, KC_KP_MINUS, KC_TRNS,
- KC_TRNS, KC_HOME, KC_LEFT, KC_DOWN, KC_RIGHT, KC_END, KC_KP_ASTERISK, KC_4, KC_5, KC_6, KC_KP_PLUS, KC_TRNS,
- KC_LSFT, KC_ESC, KC_TAB, KC_INS, KC_ENTER, N_UNDO, KC_KP_ENTER, KC_1, KC_2, KC_3, KC_KP_DOT, KC_RSFT,
- KC_LCTL, N_COPY, N_PASTE, KC_LGUI, KC_LALT, KC_0, KC_ENTER, KC_0, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
- ),
-
- [_7] = LAYOUT(
- KC_ESC, KC_TRNS, KC_TRNS, KC_MS_BTN3, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, QK_BOOT,
- KC_TAB, KC_MS_WH_UP, KC_MS_BTN2, KC_MS_UP, KC_MS_BTN1, KC_MS_WH_DOWN, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_MS_ACCEL0, KC_MS_LEFT, KC_MS_DOWN, KC_MS_RIGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_LSFT, KC_MS_ACCEL1, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_LCTL, KC_MS_ACCEL2, KC_TRNS, KC_LALT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
- )
-};
diff --git a/keyboards/atreus62/keymaps/scheiklp/readme.md b/keyboards/atreus62/keymaps/scheiklp/readme.md
deleted file mode 100644
index b5590b6f2f..0000000000
--- a/keyboards/atreus62/keymaps/scheiklp/readme.md
+++ /dev/null
@@ -1,13 +0,0 @@
-# KOY Layout for the atreus62 pcb board
-Compile the layout
-```bash
-qmk compile -kb atreus62 -km scheiklp
-```
-disable this service that interfers with the pro micro
-```
-sudo systemctl stop ModemManager.service
-```
-and flash it to the board
-```bash
-qmk flash -kb atreus62 -km scheiklp
-```
diff --git a/keyboards/atreus62/keymaps/scheiklp/rules.mk b/keyboards/atreus62/keymaps/scheiklp/rules.mk
deleted file mode 100644
index 681e7507b4..0000000000
--- a/keyboards/atreus62/keymaps/scheiklp/rules.mk
+++ /dev/null
@@ -1,4 +0,0 @@
-AUTO_SHIFT_ENABLE = yes
-CONSOLE_ENABLE = no
-COMMAND_ENABLE = no
-NKRO_ENABLE = yes
diff --git a/keyboards/axolstudio/yeti/hotswap/config.h b/keyboards/axolstudio/yeti/hotswap/config.h
index 694a6449f0..02077e05a7 100644
--- a/keyboards/axolstudio/yeti/hotswap/config.h
+++ b/keyboards/axolstudio/yeti/hotswap/config.h
@@ -61,7 +61,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
# define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH
# define RGB_MATRIX_LED_FLUSH_LIMIT 16 // 16 is equivalent to limiting to 60fps
# define RGB_DISABLE_WHEN_USB_SUSPENDED // turn off effects when suspended
-# define DRIVER_ADDR_1 0b1010000
-# define DRIVER_COUNT 1
+# define IS31FL3733_I2C_ADDRESS_1 IS31FL3733_I2C_ADDRESS_GND_GND
# define RGB_MATRIX_LED_COUNT 64
#endif
diff --git a/keyboards/axolstudio/yeti/hotswap/hotswap.c b/keyboards/axolstudio/yeti/hotswap/hotswap.c
index 98d37290e6..527bec17ee 100644
--- a/keyboards/axolstudio/yeti/hotswap/hotswap.c
+++ b/keyboards/axolstudio/yeti/hotswap/hotswap.c
@@ -17,7 +17,7 @@
#include "quantum.h"
#ifdef RGB_MATRIX_ENABLE
-const is31_led g_is31_leds[RGB_MATRIX_LED_COUNT] = {
+const is31fl3733_led_t g_is31fl3733_leds[RGB_MATRIX_LED_COUNT] = {
{ 0, B_1, A_1, C_1 },
{ 0, B_2, A_2, C_2 },
{ 0, B_3, A_3, C_3 },
diff --git a/keyboards/bajjak/rules.mk b/keyboards/bajjak/rules.mk
index 13148ecb04..21db4112e0 100644
--- a/keyboards/bajjak/rules.mk
+++ b/keyboards/bajjak/rules.mk
@@ -26,4 +26,4 @@ AUDIO_SUPPORTED = no
# project specific files
SRC += matrix.c
-QUANTUM_LIB_SRC += i2c_master.c
+I2C_DRIVER_REQUIRED = yes
diff --git a/keyboards/barleycorn_smd/rules.mk b/keyboards/barleycorn_smd/rules.mk
index 173368a047..69ecebae2a 100644
--- a/keyboards/barleycorn_smd/rules.mk
+++ b/keyboards/barleycorn_smd/rules.mk
@@ -14,4 +14,4 @@ AUDIO_ENABLE = no # Audio output
CUSTOM_MATRIX = lite
SRC += matrix.c
-QUANTUM_LIB_SRC += i2c_master.c
+I2C_DRIVER_REQUIRED = yes
diff --git a/keyboards/bastardkb/charybdis/3x5/blackpill/info.json b/keyboards/bastardkb/charybdis/3x5/blackpill/info.json
index 89e181b8f9..a20b2ce636 100644
--- a/keyboards/bastardkb/charybdis/3x5/blackpill/info.json
+++ b/keyboards/bastardkb/charybdis/3x5/blackpill/info.json
@@ -3,6 +3,9 @@
"usb": {
"device_version": "1.0.0"
},
+ "eeprom": {
+ "driver": "spi"
+ },
"rgb_matrix": {
"driver": "ws2812"
},
diff --git a/keyboards/bastardkb/charybdis/3x5/blackpill/rules.mk b/keyboards/bastardkb/charybdis/3x5/blackpill/rules.mk
index 9cc216bb71..4bd570ddd8 100644
--- a/keyboards/bastardkb/charybdis/3x5/blackpill/rules.mk
+++ b/keyboards/bastardkb/charybdis/3x5/blackpill/rules.mk
@@ -23,5 +23,4 @@ POINTING_DEVICE_DRIVER = pmw3360
MOUSE_SHARED_EP = no # Unify multiple HID interfaces into a single Endpoint
KEYBOARD_SHARED_EP = yes
-EEPROM_DRIVER = spi
SERIAL_DRIVER = usart
diff --git a/keyboards/bastardkb/charybdis/3x5/keymaps/bstiq/keymap.c b/keyboards/bastardkb/charybdis/3x5/keymaps/bstiq/keymap.c
index 8f02227c01..21e823575e 100644
--- a/keyboards/bastardkb/charybdis/3x5/keymaps/bstiq/keymap.c
+++ b/keyboards/bastardkb/charybdis/3x5/keymaps/bstiq/keymap.c
@@ -210,15 +210,3 @@ layer_state_t layer_state_set_kb(layer_state_t state) {
// Forward-declare this helper function since it is defined in rgb_matrix.c.
void rgb_matrix_update_pwm_buffers(void);
#endif
-
-void shutdown_user(void) {
-#ifdef RGBLIGHT_ENABLE
- rgblight_enable_noeeprom();
- rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_LIGHT);
- rgblight_setrgb(RGB_RED);
-#endif // RGBLIGHT_ENABLE
-#ifdef RGB_MATRIX_ENABLE
- rgb_matrix_set_color_all(RGB_RED);
- rgb_matrix_update_pwm_buffers();
-#endif // RGB_MATRIX_ENABLE
-}
diff --git a/keyboards/bastardkb/charybdis/3x5/keymaps/drashna/config.h b/keyboards/bastardkb/charybdis/3x5/keymaps/drashna/config.h
deleted file mode 100644
index 6d24808af2..0000000000
--- a/keyboards/bastardkb/charybdis/3x5/keymaps/drashna/config.h
+++ /dev/null
@@ -1,109 +0,0 @@
-/*
-
-Copyright 2021 Quentin LEBASTARD <qlebastard@gmail.com>
-
-This program is free software: you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program. If not, see <http://www.gnu.org/licenses/>.
-*/
-
-#pragma once
-
-#ifdef KEYBOARD_bastardkb_charybdis_3x5_blackpill
-
-# undef MATRIX_ROW_PINS
-# define MATRIX_ROW_PINS \
- { B12, B13, B14, B15 }
-# undef MATRIX_COL_PINS
-# define MATRIX_COL_PINS \
- { A15, B3, B4, B5, B6 }
-
-# undef MATRIX_ROW_PINS_RIGHT
-# define MATRIX_ROW_PINS_RIGHT \
- { B12, B13, B14, B15 }
-# undef MATRIX_COL_PINS_RIGHT
-# define MATRIX_COL_PINS_RIGHT \
- { A15, B3, B4, B5, B6 }
-
-# define USB_VBUS_PIN B10
-# undef SPLIT_HAND_PIN
-# define SPLIT_HAND_PIN C14 // high = left, low = right
-
-// WS2812 RGB LED strip input and number of LEDs
-# undef WS2812_DI_PIN
-# define WS2812_DI_PIN A1
-# undef RGB_MATRIX_MAXIMUM_BRIGHTNESS
-# define RGB_MATRIX_MAXIMUM_BRIGHTNESS 150
-# define WS2812_PWM_DRIVER PWMD2 // default: PWMD2
-# define WS2812_PWM_CHANNEL 2 // 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_EXTERNAL_PULLUP
-//#define WS2812_PWM_COMPLEMENTARY_OUTPUT // Define for a complementary timer output (TIMx_CHyN); omit for a normal timer output (TIMx_CHy).
-# undef WS2812_DMA_STREAM
-# define WS2812_DMA_STREAM STM32_DMA1_STREAM7 // DMA Stream for TIMx_UP, see the respective reference manual for the appropriate values for your MCU.
-# define WS2812_DMA_CHANNEL 3 // DMA Channel for TIMx_UP, see the respective reference manual for the appropriate values for your MCU.
-# define WS2812_PWM_TARGET_PERIOD 800000
-
-# define DEBUG_LED_PIN C13
-
-/* Audio config */
-# define AUDIO_PIN B1
-# define AUDIO_PWM_DRIVER PWMD3
-# define AUDIO_PWM_CHANNEL 4
-# define AUDIO_PWM_PAL_MODE 2
-
-/* serial.c configuration for split keyboard */
-# undef SOFT_SERIAL_PIN
-# define SERIAL_USART_FULL_DUPLEX // Enable full duplex operation mode.
-# undef SERIAL_USART_TX_PIN
-# define SERIAL_USART_TX_PIN A2
-# undef SERIAL_USART_RX_PIN
-# define SERIAL_USART_RX_PIN A3
-# define SERIAL_USART_DRIVER SD2
-# 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_RX_PAL_MODE 7 // Pin "alternate function", see the respective datasheet for the appropriate values for your MCU. default: 7
-# define SERIAL_USART_TIMEOUT 100 // USART driver timeout. default 100
-# define SERIAL_USART_SPEED 921600
-// #define SERIAL_USART_PIN_SWAP // swap RX and TX pins on master
-// To use the highest possible baudrate (3.75Mbit/s) uncomment the following
-// line, this can result in dropped communications so lower the speed if there
-// are many timeouts.
-// #define SERIAL_USART_SPEED (STM32_PCLK2 >> 4)
-
-# define CRC8_USE_TABLE
-# define CRC8_OPTIMIZE_SPEED
-
-/* spi config for eeprom and pmw3360 sensor */
-# define SPI_DRIVER SPID1
-# define SPI_SCK_PIN A5
-# define SPI_SCK_PAL_MODE 5
-# define SPI_MOSI_PIN A7
-# define SPI_MOSI_PAL_MODE 5
-# define SPI_MISO_PIN A6
-# define SPI_MISO_PAL_MODE 5
-
-/* eeprom config */
-# define EXTERNAL_EEPROM_SPI_SLAVE_SELECT_PIN A4
-# define EXTERNAL_EEPROM_SPI_CLOCK_DIVISOR 64
-// #define EXTERNAL_EEPROM_BYTE_COUNT 8196
-// #define EXTERNAL_EEPROM_PAGE_SIZE 32
-// #define EXTERNAL_EEPROM_ADDRESS_SIZE 2
-
-/* pmw3360 config */
-# undef PMW33XX_CS_PIN
-# define PMW33XX_CS_PIN B0
-#endif
-
-#define CHARYBDIS_MINIMUM_DEFAULT_DPI 1200
-#define CHARYBDIS_DEFAULT_DPI_CONFIG_STEP 400
-#define CHARYBDIS_MINIMUM_SNIPING_DPI 200
-#define CHARYBDIS_SNIPING_DPI_CONFIG_STEP 100
diff --git a/keyboards/bastardkb/charybdis/3x5/keymaps/drashna/halconf.h b/keyboards/bastardkb/charybdis/3x5/keymaps/drashna/halconf.h
deleted file mode 100644
index 3b254172b4..0000000000
--- a/keyboards/bastardkb/charybdis/3x5/keymaps/drashna/halconf.h
+++ /dev/null
@@ -1,27 +0,0 @@
-/* Copyright 2020 Nick Brassel (tzarc)
- *
- * 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 3 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 <https://www.gnu.org/licenses/>.
- */
-#pragma once
-
-#if defined(KEYBOARD_bastardkb_charybdis_3x5_blackpill)
-# define HAL_USE_PWM TRUE
-# define HAL_USE_SERIAL TRUE
-# define HAL_USE_I2C TRUE
-# define HAL_USE_SPI TRUE
-# define SPI_USE_WAIT TRUE
-# define SPI_SELECT_MODE SPI_SELECT_MODE_PAD
-#endif
-
-#include_next <halconf.h>
diff --git a/keyboards/bastardkb/charybdis/3x5/keymaps/drashna/keymap.c b/keyboards/bastardkb/charybdis/3x5/keymaps/drashna/keymap.c
deleted file mode 100644
index e458a84373..0000000000
--- a/keyboards/bastardkb/charybdis/3x5/keymaps/drashna/keymap.c
+++ /dev/null
@@ -1,84 +0,0 @@
-/*
- * Copyright 2021 Quentin LEBASTARD <qlebastard@gmail.com>
- * Copyright 2021 Drashna Jael're @drashna
- *
- * 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 "drashna.h"
-
-#define LAYOUT_charybdis_3x5_wrapper(...) LAYOUT_charybdis_3x5(__VA_ARGS__)
-#define LAYOUT_charybdis_3x5_base( \
- K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, \
- K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, \
- K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A \
- ) \
- LAYOUT_charybdis_3x5 ( \
- K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, \
- ALT_T(K11), K12, K13, K14, GUI_T(K15), LGUI_T(K16), K17, K18, K19, LALT_T(K1A), \
- CTL_T(K21), K22, K23, K24, K25, K26, K27, K28, K29, RCTL_T(K2A), \
- LSFT_T(KC_GRV), KC_SPC, BK_LWER, DL_RAIS, RSFT_T(KC_ENT) \
- )
-#define LAYOUT_charybdis_3x5_base_wrapper(...) LAYOUT_charybdis_3x5_base(__VA_ARGS__)
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
- [_DEFAULT_LAYER_1] = LAYOUT_charybdis_3x5_base_wrapper(
- _________________QWERTY_L1_________________, _________________QWERTY_R1_________________,
- _________________QWERTY_L2_________________, _________________QWERTY_R2_________________,
- _________________QWERTY_L3_________________, _________________QWERTY_R3_________________
- ),
-
- [_DEFAULT_LAYER_2] = LAYOUT_charybdis_3x5_base_wrapper(
- ______________COLEMAK_MOD_DH_L1____________, ______________COLEMAK_MOD_DH_R1____________,
- ______________COLEMAK_MOD_DH_L2____________, ______________COLEMAK_MOD_DH_R2____________,
- ______________COLEMAK_MOD_DH_L3____________, ______________COLEMAK_MOD_DH_R3____________
- ),
- [_DEFAULT_LAYER_3] = LAYOUT_charybdis_3x5_base_wrapper(
- _________________COLEMAK_L1________________, _________________COLEMAK_R1________________,
- _________________COLEMAK_L2________________, _________________COLEMAK_R2________________,
- _________________COLEMAK_L3________________, _________________COLEMAK_R3________________
- ),
-
- [_DEFAULT_LAYER_4] = LAYOUT_charybdis_3x5_base_wrapper(
- _________________DVORAK_L1_________________, _________________DVORAK_R1_________________,
- _________________DVORAK_L2_________________, _________________DVORAK_R2_________________,
- _________________DVORAK_L3_________________, _________________DVORAK_R3_________________
- ),
-
- [_MOUSE] = LAYOUT_charybdis_3x5(
- _______, _______, _______, _______, _______, KC_WH_U, DPI_RMOD,DPI_MOD, S_D_RMOD,S_D_MOD,
- _______, _______, _______, _______, _______, KC_WH_D, KC_BTN1, KC_BTN3, KC_BTN2, KC_BTN6,
- _______, _______, _______, _______, _______, KC_BTN7, KC_BTN4, KC_BTN5, KC_BTN8, _______,
- _______, SNIPING, _______, _______, _______
- ),
- [_LOWER] = LAYOUT_charybdis_3x5_wrapper(
- _________________LOWER_L1__________________, _________________LOWER_R1__________________,
- _________________LOWER_L2__________________, _________________LOWER_R2__________________,
- _________________LOWER_L3__________________, _________________LOWER_R3__________________,
- _______, _______, _______, _______, AUTO_CTN
- ),
- [_RAISE] = LAYOUT_charybdis_3x5_wrapper(
- _________________RAISE_L1__________________, _________________RAISE_R1__________________,
- _________________RAISE_L2__________________, _________________RAISE_R2__________________,
- _________________RAISE_L3__________________, _________________RAISE_R3__________________,
- QK_RBT, _______, _______, _______, _______
- ),
- [_ADJUST] = LAYOUT_charybdis_3x5_wrapper(
- _________________ADJUST_L1_________________, _________________ADJUST_R1_________________,
- _________________ADJUST_L2_________________, _________________ADJUST_R2_________________,
- _________________ADJUST_L3_________________, _________________ADJUST_R3_________________,
- EE_CLR, KC_NUKE, _______, _______, QK_BOOT
- ),
-};
diff --git a/keyboards/bastardkb/charybdis/3x5/keymaps/drashna/mcuconf.h b/keyboards/bastardkb/charybdis/3x5/keymaps/drashna/mcuconf.h
deleted file mode 100644
index 3defeed4dd..0000000000
--- a/keyboards/bastardkb/charybdis/3x5/keymaps/drashna/mcuconf.h
+++ /dev/null
@@ -1,44 +0,0 @@
-/* Copyright 2020 Nick Brassel (tzarc)
- *
- * 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 3 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 <https://www.gnu.org/licenses/>.
- */
-
-#pragma once
-
-#include_next <mcuconf.h>
-
-#if defined(KEYBOARD_bastardkb_charybdis_3x5_blackpill)
-# undef STM32_I2C_USE_I2C1
-# define STM32_I2C_USE_I2C1 TRUE
-
-// #undef STM32_I2C_I2C1_RX_DMA_STREAM
-// #define STM32_I2C_I2C1_RX_DMA_STREAM STM32_DMA_STREAM_ID(1, 0)
-# undef STM32_I2C_I2C1_TX_DMA_STREAM
-# define STM32_I2C_I2C1_TX_DMA_STREAM STM32_DMA_STREAM_ID(1, 1)
-
-# undef STM32_PWM_USE_TIM2
-# define STM32_PWM_USE_TIM2 TRUE
-
-# undef STM32_PWM_USE_TIM3
-# define STM32_PWM_USE_TIM3 TRUE
-
-# undef STM32_SPI_USE_SPI1
-# define STM32_SPI_USE_SPI1 TRUE
-
-# undef STM32_SERIAL_USE_USART2
-# define STM32_SERIAL_USE_USART2 TRUE
-
-# undef STM32_ST_USE_TIMER
-# define STM32_ST_USE_TIMER 5
-#endif
diff --git a/keyboards/bastardkb/charybdis/3x5/keymaps/drashna/rules.mk b/keyboards/bastardkb/charybdis/3x5/keymaps/drashna/rules.mk
deleted file mode 100644
index 029b4a498b..0000000000
--- a/keyboards/bastardkb/charybdis/3x5/keymaps/drashna/rules.mk
+++ /dev/null
@@ -1,43 +0,0 @@
-RGB_MATRIX_ENABLE = no
-CUSTOM_UNICODE_ENABLE = no
-CUSTOM_POINTING_DEVICE = no
-CUSTOM_SPLIT_TRANSPORT_SYNC = no
-
-
-ifeq ($(strip $(KEYBOARD)), bastardkb/charybdis/3x5/blackpill)
- # Bootloader selection
- BOOTLOADER := tinyuf2
-
- LTO_ENABLE := no
-
- AUDIO_SUPPORTED = yes
- AUDIO_ENABLE = yes
- AUDIO_DRIVER = pwm_hardware
-
- OVERLOAD_FEATURES = yes
-endif
-
-ifeq ($(strip $(KEYBOARD)), bastardkb/charybdis/3x5/v2/stemcell)
- OVERLOAD_FEATURES = yes
-endif
-ifeq ($(strip $(KEYBOARD)), bastardkb/charybdis/3x5/v2/splinky)
- OVERLOAD_FEATURES = yes
-endif
-
-
-ifeq ($(strip $(OVERLOAD_FEATURES)), yes)
- BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite
- KEYBOARD_SHARED_EP = yes
- MOUSE_SHARED_EP = yes
-
- MOUSEKEY_ENABLE = yes
- NKRO_ENABLE = yes
- CONSOLE_ENABLE = yes
- RGB_MATRIX_ENABLE = yes
-
- AUTOCORRECT_ENABLE = yes
-
- CUSTOM_UNICODE_ENABLE = yes
- CUSTOM_POINTING_DEVICE = yes
- CUSTOM_SPLIT_TRANSPORT_SYNC = yes
-endif
diff --git a/keyboards/bastardkb/charybdis/3x5/keymaps/manna-harbour_miryoku/config.h b/keyboards/bastardkb/charybdis/3x5/keymaps/manna-harbour_miryoku/config.h
deleted file mode 100644
index 935444af1b..0000000000
--- a/keyboards/bastardkb/charybdis/3x5/keymaps/manna-harbour_miryoku/config.h
+++ /dev/null
@@ -1,19 +0,0 @@
-// Copyright 2022 Manna Harbour
-// https://github.com/manna-harbour/miryoku
-
-// 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 LAYOUT_miryoku( \
-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, \
-N30, N31, K32, K33, K34, K35, K36, K37, N38, N39 \
-) \
-LAYOUT_charybdis_3x5( \
-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, \
- K32, K33, K34, K35, K36 \
-)
diff --git a/keyboards/bastardkb/charybdis/3x5/keymaps/manna-harbour_miryoku/keymap.c b/keyboards/bastardkb/charybdis/3x5/keymaps/manna-harbour_miryoku/keymap.c
deleted file mode 100644
index dbab7f9820..0000000000
--- a/keyboards/bastardkb/charybdis/3x5/keymaps/manna-harbour_miryoku/keymap.c
+++ /dev/null
@@ -1,4 +0,0 @@
-// Copyright 2019 Manna Harbour
-// https://github.com/manna-harbour/miryoku
-
-// 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/>.
diff --git a/keyboards/bastardkb/charybdis/3x5/keymaps/manna-harbour_miryoku/rules.mk b/keyboards/bastardkb/charybdis/3x5/keymaps/manna-harbour_miryoku/rules.mk
deleted file mode 100644
index ef40279cbc..0000000000
--- a/keyboards/bastardkb/charybdis/3x5/keymaps/manna-harbour_miryoku/rules.mk
+++ /dev/null
@@ -1,4 +0,0 @@
-# Copyright 2021 Manna Harbour
-# https://github.com/manna-harbour/miryoku
-
-MIRYOKU_KLUDGE_THUMBCOMBOS=yes
diff --git a/keyboards/bastardkb/charybdis/3x5/keymaps/via/keymap.c b/keyboards/bastardkb/charybdis/3x5/keymaps/via/keymap.c
index 4a91548090..5299444ad3 100644
--- a/keyboards/bastardkb/charybdis/3x5/keymaps/via/keymap.c
+++ b/keyboards/bastardkb/charybdis/3x5/keymaps/via/keymap.c
@@ -255,15 +255,3 @@ layer_state_t layer_state_set_user(layer_state_t state) {
// rgb_matrix.c.
void rgb_matrix_update_pwm_buffers(void);
#endif
-
-void shutdown_user(void) {
-#ifdef RGBLIGHT_ENABLE
- rgblight_enable_noeeprom();
- rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_LIGHT);
- rgblight_setrgb(RGB_RED);
-#endif // RGBLIGHT_ENABLE
-#ifdef RGB_MATRIX_ENABLE
- rgb_matrix_set_color_all(RGB_RED);
- rgb_matrix_update_pwm_buffers();
-#endif // RGB_MATRIX_ENABLE
-}
diff --git a/keyboards/bastardkb/charybdis/3x5/v2/splinky_2/rules.mk b/keyboards/bastardkb/charybdis/3x5/v2/splinky_2/rules.mk
index 80098fbbf6..87a2d912b8 100644
--- a/keyboards/bastardkb/charybdis/3x5/v2/splinky_2/rules.mk
+++ b/keyboards/bastardkb/charybdis/3x5/v2/splinky_2/rules.mk
@@ -1,7 +1,3 @@
-# RP2040-specific options
-ALLOW_WARNINGS = yes
-PICO_INTRINSICS_ENABLED = no # ATM Unsupported by ChibiOS.
-
# Build Options
# change yes to no to disable
#
diff --git a/keyboards/bastardkb/charybdis/3x5/v2/splinky_3/rules.mk b/keyboards/bastardkb/charybdis/3x5/v2/splinky_3/rules.mk
index 80098fbbf6..87a2d912b8 100644
--- a/keyboards/bastardkb/charybdis/3x5/v2/splinky_3/rules.mk
+++ b/keyboards/bastardkb/charybdis/3x5/v2/splinky_3/rules.mk
@@ -1,7 +1,3 @@
-# RP2040-specific options
-ALLOW_WARNINGS = yes
-PICO_INTRINSICS_ENABLED = no # ATM Unsupported by ChibiOS.
-
# Build Options
# change yes to no to disable
#
diff --git a/keyboards/bastardkb/charybdis/3x6/blackpill/info.json b/keyboards/bastardkb/charybdis/3x6/blackpill/info.json
index 5ac7a1cdca..bda53275f8 100644
--- a/keyboards/bastardkb/charybdis/3x6/blackpill/info.json
+++ b/keyboards/bastardkb/charybdis/3x6/blackpill/info.json
@@ -3,6 +3,9 @@
"usb": {
"device_version": "1.0.0"
},
+ "eeprom": {
+ "driver": "spi"
+ },
"rgb_matrix": {
"driver": "ws2812"
},
diff --git a/keyboards/bastardkb/charybdis/3x6/blackpill/rules.mk b/keyboards/bastardkb/charybdis/3x6/blackpill/rules.mk
index 9cc216bb71..4bd570ddd8 100644
--- a/keyboards/bastardkb/charybdis/3x6/blackpill/rules.mk
+++ b/keyboards/bastardkb/charybdis/3x6/blackpill/rules.mk
@@ -23,5 +23,4 @@ POINTING_DEVICE_DRIVER = pmw3360
MOUSE_SHARED_EP = no # Unify multiple HID interfaces into a single Endpoint
KEYBOARD_SHARED_EP = yes
-EEPROM_DRIVER = spi
SERIAL_DRIVER = usart
diff --git a/keyboards/bastardkb/charybdis/3x6/keymaps/via/keymap.c b/keyboards/bastardkb/charybdis/3x6/keymaps/via/keymap.c
index fd56cce25d..d78ce8b7ff 100644
--- a/keyboards/bastardkb/charybdis/3x6/keymaps/via/keymap.c
+++ b/keyboards/bastardkb/charybdis/3x6/keymaps/via/keymap.c
@@ -134,15 +134,3 @@ layer_state_t layer_state_set_user(layer_state_t state) {
// Forward-declare this helper function since it is defined in rgb_matrix.c.
void rgb_matrix_update_pwm_buffers(void);
#endif
-
-void shutdown_user(void) {
-#ifdef RGBLIGHT_ENABLE
- rgblight_enable_noeeprom();
- rgblight_mode_noeeprom(1);
- rgblight_setrgb(RGB_RED);
-#endif // RGBLIGHT_ENABLE
-#ifdef RGB_MATRIX_ENABLE
- rgb_matrix_set_color_all(RGB_RED);
- rgb_matrix_update_pwm_buffers();
-#endif // RGB_MATRIX_ENABLE
-}
diff --git a/keyboards/bastardkb/charybdis/3x6/v2/splinky_2/rules.mk b/keyboards/bastardkb/charybdis/3x6/v2/splinky_2/rules.mk
index 80098fbbf6..87a2d912b8 100644
--- a/keyboards/bastardkb/charybdis/3x6/v2/splinky_2/rules.mk
+++ b/keyboards/bastardkb/charybdis/3x6/v2/splinky_2/rules.mk
@@ -1,7 +1,3 @@
-# RP2040-specific options
-ALLOW_WARNINGS = yes
-PICO_INTRINSICS_ENABLED = no # ATM Unsupported by ChibiOS.
-
# Build Options
# change yes to no to disable
#
diff --git a/keyboards/bastardkb/charybdis/3x6/v2/splinky_3/rules.mk b/keyboards/bastardkb/charybdis/3x6/v2/splinky_3/rules.mk
index 80098fbbf6..87a2d912b8 100644
--- a/keyboards/bastardkb/charybdis/3x6/v2/splinky_3/rules.mk
+++ b/keyboards/bastardkb/charybdis/3x6/v2/splinky_3/rules.mk
@@ -1,7 +1,3 @@
-# RP2040-specific options
-ALLOW_WARNINGS = yes
-PICO_INTRINSICS_ENABLED = no # ATM Unsupported by ChibiOS.
-
# Build Options
# change yes to no to disable
#
diff --git a/keyboards/bastardkb/charybdis/4x6/blackpill/info.json b/keyboards/bastardkb/charybdis/4x6/blackpill/info.json
index b9fb103496..b4040e84a5 100644
--- a/keyboards/bastardkb/charybdis/4x6/blackpill/info.json
+++ b/keyboards/bastardkb/charybdis/4x6/blackpill/info.json
@@ -3,6 +3,9 @@
"usb": {
"device_version": "1.0.0"
},
+ "eeprom": {
+ "driver": "spi"
+ },
"rgb_matrix": {
"driver": "ws2812"
},
diff --git a/keyboards/bastardkb/charybdis/4x6/blackpill/rules.mk b/keyboards/bastardkb/charybdis/4x6/blackpill/rules.mk
index 1cfe4724b4..f8de9a3fb1 100644
--- a/keyboards/bastardkb/charybdis/4x6/blackpill/rules.mk
+++ b/keyboards/bastardkb/charybdis/4x6/blackpill/rules.mk
@@ -23,5 +23,4 @@ POINTING_DEVICE_DRIVER = pmw3360
MOUSE_SHARED_EP = no # Unify multiple HID interfaces into a single Endpoint
KEYBOARD_SHARED_EP = yes
-EEPROM_DRIVER = spi
SERIAL_DRIVER = usart
diff --git a/keyboards/bastardkb/charybdis/4x6/keymaps/drashna/config.h b/keyboards/bastardkb/charybdis/4x6/keymaps/drashna/config.h
deleted file mode 100644
index 7fa9826125..0000000000
--- a/keyboards/bastardkb/charybdis/4x6/keymaps/drashna/config.h
+++ /dev/null
@@ -1,69 +0,0 @@
-/**
- * Copyright 2021 Charly Delay <charly@codesink.dev> (@0xcharly)
- *
- * 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
-
-#if defined(KEYBOARD_bastardkb_charybdis_4x6_blackpill)
-# undef MATRIX_COL_PINS
-# define MATRIX_COL_PINS \
- { B0, B1, B12, B3, B4, B5 }
-
-# define USB_VBUS_PIN B10
-# define DEBUG_LED_PIN C13
-
-# define AUDIO_PIN B7
-# define AUDIO_PWM_DRIVER PWMD4
-# define AUDIO_PWM_CHANNEL 2
-# define AUDIO_PWM_PAL_MODE 2
-# define AUDIO_INIT_DELAY
-# define AUDIO_ENABLE_TONE_MULTIPLEXING
-# define AUDIO_TONE_MULTIPLEXING_RATE_DEFAULT 10
-
-# define SERIAL_USART_SPEED (1 * 1024 * 1024)
-
-# undef POINTING_DEVICE_CS_PIN
-# define POINTING_DEVICE_CS_PIN A15 // b14
-# define PMW33XX_LIFTOFF_DISTANCE 0b1111
-
-# define RGB_MATRIX_LED_FLUSH_LIMIT 33
-# define RGB_MATRIX_LED_PROCESS_LIMIT 29
-#endif
-
-#undef ROTATIONAL_TRANSFORM_ANGLE
-#define ROTATIONAL_TRANSFORM_ANGLE 25
-#define POINTING_DEVICE_ROTATION_270
-
-/* RGB Matrix. */
-#undef RGB_MATRIX_MAXIMUM_BRIGHTNESS
-#define RGB_MATRIX_MAXIMUM_BRIGHTNESS 150
-
-#define CHARYBDIS_MINIMUM_DEFAULT_DPI 1200
-#define CHARYBDIS_DEFAULT_DPI_CONFIG_STEP 400
-#define CHARYBDIS_MINIMUM_SNIPING_DPI 200
-#define CHARYBDIS_SNIPING_DPI_CONFIG_STEP 100
-
-#define CHARYBDIS_CONFIG_SYNC
-
-#define BOOTMAGIC_LITE_ROW 0
-#define BOOTMAGIC_LITE_COLUMN 0
-#define BOOTMAGIC_LITE_ROW_RIGHT 5
-#define BOOTMAGIC_LITE_COLUMN_RIGHT 0
-#define BOOTMAGIC_LITE_EEPROM_ROW 1
-#define BOOTMAGIC_LITE_EEPROM_COLUMN 0
-#define BOOTMAGIC_LITE_EEPROM_ROW_RIGHT 1
-#define BOOTMAGIC_LITE_EEPROM_COLUMN_RIGHT 0
-
-#define DEBOUNCE 15
diff --git a/keyboards/bastardkb/charybdis/4x6/keymaps/drashna/keymap.c b/keyboards/bastardkb/charybdis/4x6/keymaps/drashna/keymap.c
deleted file mode 100644
index 31d1e92a7f..0000000000
--- a/keyboards/bastardkb/charybdis/4x6/keymaps/drashna/keymap.c
+++ /dev/null
@@ -1,154 +0,0 @@
-/**
- * Copyright 2021 Charly Delay <charly@codesink.dev> (@0xcharly)
- *
- * 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 "drashna.h"
-
-// clang-format off
-#define LAYOUT_charybdis_4x6_wrapper(...) LAYOUT_charybdis_4x6(__VA_ARGS__)
-#define LAYOUT_charybdis_4x6_base( \
- K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, \
- K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, \
- K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A \
- ) \
- LAYOUT_charybdis_4x6_wrapper( \
- KC_ESC, ________________NUMBER_LEFT________________, ________________NUMBER_RIGHT_______________, UC_CLUE, \
- SH_TT, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, SH_TT, \
- LALT_T(KC_TAB), K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, RALT_T(K1B), \
- OS_LSFT,CTL_T(K21),ALT_T(K22),GUI_T(K23),K24,K25, K26,K27,RGUI_T(K28),RALT_T(K29),RCTL_T(K2A), OS_RSFT, \
- SFT_T(KC_GRV), OS_LALT, OS_LGUI, TT(_MOUSE), KC_ENT, \
- KC_SPC, BK_LWER, DL_RAIS \
- )
-
-#define LAYOUT_base_wrapper(...) LAYOUT_charybdis_4x6_base(__VA_ARGS__)
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [_DEFAULT_LAYER_1] = LAYOUT_base_wrapper(
- _________________QWERTY_L1_________________, _________________QWERTY_R1_________________,
- _________________QWERTY_L2_________________, _________________QWERTY_R2_________________,
- _________________QWERTY_L3_________________, _________________QWERTY_R3_________________
- ),
-
- [_DEFAULT_LAYER_2] = LAYOUT_base_wrapper(
- ______________COLEMAK_MOD_DH_L1____________, ______________COLEMAK_MOD_DH_R1____________,
- ______________COLEMAK_MOD_DH_L2____________, ______________COLEMAK_MOD_DH_R2____________,
- ______________COLEMAK_MOD_DH_L3____________, ______________COLEMAK_MOD_DH_R3____________
- ),
- [_DEFAULT_LAYER_3] = LAYOUT_base_wrapper(
- _________________COLEMAK_L1________________, _________________COLEMAK_R1________________,
- _________________COLEMAK_L2________________, _________________COLEMAK_R2________________,
- _________________COLEMAK_L3________________, _________________COLEMAK_R3________________
- ),
-
- [_DEFAULT_LAYER_4] = LAYOUT_base_wrapper(
- _________________DVORAK_L1_________________, _________________DVORAK_R1_________________,
- _________________DVORAK_L2_________________, _________________DVORAK_R2_________________,
- _________________DVORAK_L3_________________, _________________DVORAK_R3_________________
- ),
-
- [_GAMEPAD] = LAYOUT_charybdis_4x6(
- KC_ESC, KC_NO, KC_1, KC_2, KC_3, KC_4, _______, _______, _______, _______, _______, _______,
- KC_F1, KC_K, KC_Q, KC_W, KC_E, KC_R, _______, _______, _______, _______, _______, _______,
- KC_TAB, KC_G, KC_A, KC_S, KC_D, KC_F, _______, _______, _______, _______, _______, _______,
- KC_LCTL, KC_LSFT, KC_Z, KC_X, KC_C, KC_H, _______, _______, _______, _______, _______, _______,
- KC_V, _______, _______, _______, TG_GAME,
- KC_SPC, KC_H, _______
- ),
- [_DIABLO] = LAYOUT_charybdis_4x6(
- KC_ESC, KC_V, KC_D, KC_LALT, KC_NO, KC_NO, KC_F9, KC_F10, KC_F11, KC_F12, KC_NO, KC_NO,
- KC_TAB, KC_S, KC_I, KC_F, KC_M, KC_T, _______, _______, _______, _______, _______, _______,
- KC_Q, KC_1, KC_2, KC_3, KC_4, KC_G, _______, _______, _______, _______, _______, _______,
- KC_LCTL, KC_D3_1, KC_D3_2, KC_D3_3, KC_D3_4, KC_Z, _______, _______, _______, _______, _______, _______,
- KC_G, _______, _______, TO(_DIABLOII), TG_DBLO,
- KC_LSFT, KC_LCTL, _______
- ),
- [_DIABLOII] = LAYOUT_charybdis_4x6(
- KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_GRV, _______, _______, _______, _______, _______, _______,
- KC_TAB, KC_A, KC_T, KC_Q, KC_I, KC_M, _______, _______, _______, _______, _______, _______,
- KC_S, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, _______, _______, _______, _______, _______, _______,
- KC_LCTL, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, _______, _______, _______, _______, _______, _______,
- KC_DIABLO_CLEAR, _______, _______, _______, TG(_DIABLOII),
- SFT_T(KC_SPACE), ALT_T(KC_Q), _______
- ),
- [_MOUSE] = LAYOUT_charybdis_4x6(
- _______, _______, _______, _______, _______, _______, _______, DPI_RMOD,DPI_MOD, S_D_RMOD,S_D_MOD, PD_JIGGLER,
- _______, _______, _______, _______, _______, _______, KC_WH_U, _______, _______, _______, _______, DRGSCRL,
- _______, _______, _______, _______, _______, _______, KC_WH_D, KC_BTN1, KC_BTN3, KC_BTN2, KC_BTN6, SNIPING,
- _______, _______, _______, _______, _______, _______, KC_BTN7, KC_BTN4, KC_BTN5, KC_BTN8, _______, _______,
- _______, _______, _______, _______, _______,
- _______, _______, _______
- ),
-
- [_LOWER] = LAYOUT_charybdis_4x6_wrapper(
- KC_F12, _________________FUNC_LEFT_________________, _________________FUNC_RIGHT________________, KC_F11,
- _______, _________________LOWER_L1__________________, _________________LOWER_R1__________________, _______,
- _______, _________________LOWER_L2__________________, _________________LOWER_R2__________________, KC_PIPE,
- _______, _________________LOWER_L3__________________, _________________LOWER_R3__________________, _______,
- _______, _______, _______, _______, _______,
- _______, _______, _______
- ),
-
- [_RAISE] = LAYOUT_charybdis_4x6_wrapper(
- KC_F12, _________________FUNC_LEFT_________________, _________________FUNC_RIGHT________________, KC_F11,
- KC_GRV, _________________RAISE_L1__________________, _________________RAISE_R1__________________, _______,
- _______, _________________RAISE_L2__________________, _________________RAISE_R2__________________, KC_BSLS,
- _______, _________________RAISE_L3__________________, _________________RAISE_R3__________________, _______,
- _______, _______, _______, _______, _______,
- _______, _______, _______
- ),
-
- [_ADJUST] = LAYOUT_charybdis_4x6_wrapper(
- QK_MAKE, KC_WIDE,KC_AUSSIE,KC_SCRIPT,KC_ZALGO,KC_SUPER, KC_NOMODE,KC_COMIC,KC_REGIONAL,TG_GAME,TG_DBLO, QK_BOOT,
- VRSN, _________________ADJUST_L1_________________, _________________ADJUST_R1_________________, EE_CLR,
- KEYLOCK, _________________ADJUST_L2_________________, _________________ADJUST_R2_________________, TG_MODS,
- UC_NEXT, _________________ADJUST_L3_________________, _________________ADJUST_R3_________________, KC_MPLY,
- QK_RBT, AUTO_CTN, _______, _______, KC_NUKE,
- _______, _______, _______
- )
-};
-// clang-format on
-
-void keyboard_post_init_keymap(void) {
-#ifdef RGB_MATRIX_ENABLE
- g_led_config.flags[53] = g_led_config.flags[54] = g_led_config.flags[55] = g_led_config.flags[0] = g_led_config.flags[1] = g_led_config.flags[2] = g_led_config.flags[3] = g_led_config.flags[29] = g_led_config.flags[30] = g_led_config.flags[31] = g_led_config.flags[32] = LED_FLAG_MODIFIER;
-#endif
-}
-
-#if defined(KEYBOARD_bastardkb_charybdis_4x6_blackpill)
-void keyboard_pre_init_keymap(void) {
- setPinInputHigh(A0);
-}
-#endif
-
-#ifdef SWAP_HANDS_ENABLE
-const keypos_t PROGMEM hand_swap_config[MATRIX_ROWS][MATRIX_COLS] = {
- /* Left hand, matrix positions */
- {{0, 5}, {1, 5}, {2, 5}, {3, 5}, {4, 5}, {5, 5}},
- {{0, 6}, {1, 6}, {2, 6}, {3, 6}, {4, 6}, {5, 6}},
- {{0, 7}, {1, 7}, {2, 7}, {3, 7}, {4, 7}, {5, 7}},
- {{0, 8}, {1, 8}, {2, 8}, {3, 8}, {4, 8}, {5, 8}},
- {{2, 9}, {4, 9}, {5, 9}, {1, 9}, {0, 9}, {3, 9}},
- /* Right hand, matrix positions */
- {{0, 0}, {1, 0}, {2, 0}, {3, 0}, {4, 0}, {5, 0}},
- {{0, 1}, {1, 1}, {2, 1}, {3, 1}, {4, 1}, {5, 1}},
- {{0, 2}, {1, 2}, {2, 2}, {3, 2}, {4, 2}, {5, 2}},
- {{0, 3}, {1, 3}, {2, 3}, {3, 3}, {4, 3}, {5, 3}},
- {{0, 4}, {3, 4}, {2, 4}, {5, 4}, {4, 4}, {2, 4}}
-};
-
-# ifdef ENCODER_MAP_ENABLE
-const uint8_t PROGMEM encoder_hand_swap_config[NUM_ENCODERS] = {1, 0};
-# endif
-#endif
diff --git a/keyboards/bastardkb/charybdis/4x6/keymaps/drashna/mcuconf.h b/keyboards/bastardkb/charybdis/4x6/keymaps/drashna/mcuconf.h
deleted file mode 100644
index 0541043c53..0000000000
--- a/keyboards/bastardkb/charybdis/4x6/keymaps/drashna/mcuconf.h
+++ /dev/null
@@ -1,27 +0,0 @@
-/* Copyright 2020 Nick Brassel (tzarc)
- *
- * 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 3 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 <https://www.gnu.org/licenses/>.
- */
-
-#pragma once
-
-#include_next <mcuconf.h>
-
-#if defined(KEYBOARD_bastardkb_charybdis_4x6_blackpill)
-# undef STM32_PWM_USE_ADVANCED
-# define STM32_PWM_USE_ADVANCED TRUE
-
-# undef STM32_PWM_USE_TIM4
-# define STM32_PWM_USE_TIM4 TRUE
-#endif
diff --git a/keyboards/bastardkb/charybdis/4x6/keymaps/drashna/rules.mk b/keyboards/bastardkb/charybdis/4x6/keymaps/drashna/rules.mk
deleted file mode 100644
index ef6b7cd24b..0000000000
--- a/keyboards/bastardkb/charybdis/4x6/keymaps/drashna/rules.mk
+++ /dev/null
@@ -1,52 +0,0 @@
-CUSTOM_UNICODE_ENABLE = no
-CUSTOM_POINTING_DEVICE = no
-CUSTOM_SPLIT_TRANSPORT_SYNC = no
-PER_KEY_TAPPING = yes
-
-ifeq ($(strip $(KEYBOARD)), bastardkb/charybdis/4x6/blackpill)
- # MCU name
- # Bootloader selection
- BOOTLOADER := tinyuf2
-
- AUDIO_ENABLE = yes # Audio output
- AUDIO_SUPPORTED = yes # is set to no in kb, needs to be forcibly enabled
- AUDIO_DRIVER = pwm_hardware
-
- BACKLIGHT_DRIVER = pwm
-
- OVERLOAD_FEATURES = yes
-endif
-
-ifeq ($(strip $(MCU)), atmega32u4)
- LTO_ENABLE = yes
- BOOTLOADER = qmk-hid
- BOOTLOADER_SIZE = 512
- EXTRAKEY_ENABLE = no
-else
- OVERLOAD_FEATURES = yes
-endif
-
-ifeq ($(strip $(OVERLOAD_FEATURES)), yes)
- BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite
- MOUSEKEY_ENABLE = yes # Mouse keys
- EXTRAKEY_ENABLE = yes # Audio control and System control
- CONSOLE_ENABLE = yes # Console for debug
- COMMAND_ENABLE = no # Commands for debug and configuration
- NKRO_ENABLE = yes # Enable N-Key Rollover
- RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
-
- MOUSE_SHARED_EP = no
-
- AUTOCORRECT_ENABLE = yes
- CAPS_WORD_ENABLE = yes
- SWAP_HANDS_ENABLE = yes
- TAP_DANCE_ENABLE = yes
- WPM_ENABLE = yes
- LTO_ENABLE = no
- # OPT = 3
-
- CUSTOM_UNICODE_ENABLE = yes
- CUSTOM_POINTING_DEVICE = yes
- CUSTOM_SPLIT_TRANSPORT_SYNC = yes
-
-endif
diff --git a/keyboards/bastardkb/charybdis/4x6/keymaps/manna-harbour_miryoku/config.h b/keyboards/bastardkb/charybdis/4x6/keymaps/manna-harbour_miryoku/config.h
deleted file mode 100644
index aa8dc85054..0000000000
--- a/keyboards/bastardkb/charybdis/4x6/keymaps/manna-harbour_miryoku/config.h
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright 2022 Manna Harbour
-// https://github.com/manna-harbour/miryoku
-
-// 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 XXX KC_NO
-
-#define LAYOUT_miryoku( \
- 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, \
- N30, N31, K32, K33, K34, K35, K36, K37, N38, N39 \
-) \
-LAYOUT_charybdis_4x6( \
-XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, \
-XXX, K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, XXX, \
-XXX, K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, XXX, \
-XXX, K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, XXX, \
- K32, K33, K34, K35, K36, \
- XXX, K32, K37 \
-)
diff --git a/keyboards/bastardkb/charybdis/4x6/keymaps/manna-harbour_miryoku/keymap.c b/keyboards/bastardkb/charybdis/4x6/keymaps/manna-harbour_miryoku/keymap.c
deleted file mode 100644
index dbab7f9820..0000000000
--- a/keyboards/bastardkb/charybdis/4x6/keymaps/manna-harbour_miryoku/keymap.c
+++ /dev/null
@@ -1,4 +0,0 @@
-// Copyright 2019 Manna Harbour
-// https://github.com/manna-harbour/miryoku
-
-// 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/>.
diff --git a/keyboards/bastardkb/charybdis/4x6/keymaps/manna-harbour_miryoku/rules.mk b/keyboards/bastardkb/charybdis/4x6/keymaps/manna-harbour_miryoku/rules.mk
deleted file mode 100644
index ef40279cbc..0000000000
--- a/keyboards/bastardkb/charybdis/4x6/keymaps/manna-harbour_miryoku/rules.mk
+++ /dev/null
@@ -1,4 +0,0 @@
-# Copyright 2021 Manna Harbour
-# https://github.com/manna-harbour/miryoku
-
-MIRYOKU_KLUDGE_THUMBCOMBOS=yes
diff --git a/keyboards/bastardkb/charybdis/4x6/keymaps/via/keymap.c b/keyboards/bastardkb/charybdis/4x6/keymaps/via/keymap.c
index fb795829fd..a0657b02ec 100644
--- a/keyboards/bastardkb/charybdis/4x6/keymaps/via/keymap.c
+++ b/keyboards/bastardkb/charybdis/4x6/keymaps/via/keymap.c
@@ -157,15 +157,3 @@ layer_state_t layer_state_set_user(layer_state_t state) {
// Forward-declare this helper function since it is defined in rgb_matrix.c.
void rgb_matrix_update_pwm_buffers(void);
#endif
-
-void shutdown_user(void) {
-#ifdef RGBLIGHT_ENABLE
- rgblight_enable_noeeprom();
- rgblight_mode_noeeprom(1);
- rgblight_setrgb(RGB_RED);
-#endif // RGBLIGHT_ENABLE
-#ifdef RGB_MATRIX_ENABLE
- rgb_matrix_set_color_all(RGB_RED);
- rgb_matrix_update_pwm_buffers();
-#endif // RGB_MATRIX_ENABLE
-}
diff --git a/keyboards/bastardkb/charybdis/4x6/v2/splinky_2/rules.mk b/keyboards/bastardkb/charybdis/4x6/v2/splinky_2/rules.mk
index 80098fbbf6..87a2d912b8 100644
--- a/keyboards/bastardkb/charybdis/4x6/v2/splinky_2/rules.mk
+++ b/keyboards/bastardkb/charybdis/4x6/v2/splinky_2/rules.mk
@@ -1,7 +1,3 @@
-# RP2040-specific options
-ALLOW_WARNINGS = yes
-PICO_INTRINSICS_ENABLED = no # ATM Unsupported by ChibiOS.
-
# Build Options
# change yes to no to disable
#
diff --git a/keyboards/bastardkb/charybdis/4x6/v2/splinky_3/rules.mk b/keyboards/bastardkb/charybdis/4x6/v2/splinky_3/rules.mk
index 80098fbbf6..87a2d912b8 100644
--- a/keyboards/bastardkb/charybdis/4x6/v2/splinky_3/rules.mk
+++ b/keyboards/bastardkb/charybdis/4x6/v2/splinky_3/rules.mk
@@ -1,7 +1,3 @@
-# RP2040-specific options
-ALLOW_WARNINGS = yes
-PICO_INTRINSICS_ENABLED = no # ATM Unsupported by ChibiOS.
-
# Build Options
# change yes to no to disable
#
diff --git a/keyboards/bastardkb/charybdis/charybdis.c b/keyboards/bastardkb/charybdis/charybdis.c
index c321af7aa9..c9f0e63172 100644
--- a/keyboards/bastardkb/charybdis/charybdis.c
+++ b/keyboards/bastardkb/charybdis/charybdis.c
@@ -382,3 +382,20 @@ void matrix_scan_kb(void) {
matrix_scan_user();
}
#endif // KEYBOARD_bastardkb_charybdis_3x5_blackpill || KEYBOARD_bastardkb_charybdis_4x6_blackpill
+
+bool shutdown_kb(bool jump_to_bootloader) {
+ if (!shutdown_user(jump_to_bootloader)) {
+ return false;
+ }
+#ifdef RGBLIGHT_ENABLE
+ rgblight_enable_noeeprom();
+ rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_LIGHT);
+ rgblight_setrgb(RGB_RED);
+#endif // RGBLIGHT_ENABLE
+#ifdef RGB_MATRIX_ENABLE
+ void rgb_matrix_update_pwm_buffers(void);
+ rgb_matrix_set_color_all(RGB_RED);
+ rgb_matrix_update_pwm_buffers();
+#endif // RGB_MATRIX_ENABLE
+ return true;
+}
diff --git a/keyboards/bastardkb/dilemma/3x5_2/assembled/rules.mk b/keyboards/bastardkb/dilemma/3x5_2/assembled/rules.mk
index 5db74a9d84..b4722fc8e6 100644
--- a/keyboards/bastardkb/dilemma/3x5_2/assembled/rules.mk
+++ b/keyboards/bastardkb/dilemma/3x5_2/assembled/rules.mk
@@ -22,6 +22,3 @@ POINTING_DEVICE_ENABLE = yes
POINTING_DEVICE_DRIVER = cirque_pinnacle_spi # Assembled version uses SPI.
SPLIT_KEYBOARD = yes
-
-# RP2040-specific options
-PICO_INTRINSICS_ENABLED = no # ATM Unsupported by ChibiOS.
diff --git a/keyboards/bastardkb/dilemma/3x5_2/keymaps/bstiq/keymap.c b/keyboards/bastardkb/dilemma/3x5_2/keymaps/bstiq/keymap.c
index e8c0441d7b..5f22184928 100644
--- a/keyboards/bastardkb/dilemma/3x5_2/keymaps/bstiq/keymap.c
+++ b/keyboards/bastardkb/dilemma/3x5_2/keymaps/bstiq/keymap.c
@@ -210,15 +210,3 @@ layer_state_t layer_state_set_kb(layer_state_t state) {
// Forward-declare this helper function since it is defined in rgb_matrix.c.
void rgb_matrix_update_pwm_buffers(void);
#endif
-
-void shutdown_user(void) {
-#ifdef RGBLIGHT_ENABLE
- rgblight_enable_noeeprom();
- rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_LIGHT);
- rgblight_setrgb(RGB_RED);
-#endif // RGBLIGHT_ENABLE
-#ifdef RGB_MATRIX_ENABLE
- rgb_matrix_set_color_all(RGB_RED);
- rgb_matrix_update_pwm_buffers();
-#endif // RGB_MATRIX_ENABLE
-}
diff --git a/keyboards/bastardkb/dilemma/3x5_2/keymaps/drashna/config.h b/keyboards/bastardkb/dilemma/3x5_2/keymaps/drashna/config.h
deleted file mode 100644
index 7c46c83310..0000000000
--- a/keyboards/bastardkb/dilemma/3x5_2/keymaps/drashna/config.h
+++ /dev/null
@@ -1,10 +0,0 @@
-// Copyright 2020 Christopher Courtney, aka Drashna Jael're (@drashna) <drashna@live.com>
-// SPDX-License-Identifier: GPL-2.0-or-later
-
-#pragma once
-
-#define CIRQUE_PINNACLE_TAP_ENABLE
-#define POINTING_DEVICE_GESTURES_CURSOR_GLIDE_ENABLE
-#define POINTING_DEVICE_GESTURES_SCROLL_ENABLE
-
-#define OLED_DISPLAY_128X128
diff --git a/keyboards/bastardkb/dilemma/3x5_2/keymaps/drashna/halconf.h b/keyboards/bastardkb/dilemma/3x5_2/keymaps/drashna/halconf.h
deleted file mode 100644
index 906bd65197..0000000000
--- a/keyboards/bastardkb/dilemma/3x5_2/keymaps/drashna/halconf.h
+++ /dev/null
@@ -1,23 +0,0 @@
-/**
- * Copyright 2022 Charly Delay <charly@codesink.dev> (@0xcharly)
- *
- * 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 HAL_USE_SPI TRUE
-#define HAL_USE_I2C TRUE
-
-#include_next <halconf.h>
diff --git a/keyboards/bastardkb/dilemma/3x5_2/keymaps/drashna/keymap.c b/keyboards/bastardkb/dilemma/3x5_2/keymaps/drashna/keymap.c
deleted file mode 100644
index bf75e97841..0000000000
--- a/keyboards/bastardkb/dilemma/3x5_2/keymaps/drashna/keymap.c
+++ /dev/null
@@ -1,176 +0,0 @@
-/**
- * Copyright 2022 Charly Delay <charly@codesink.dev> (@0xcharly)
- *
- * 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 "drashna.h"
-
-// clang-format off
-#define LAYOUT_split_3x5_2_wrapper(...) LAYOUT_split_3x5_2(__VA_ARGS__)
-#define LAYOUT_split_3x5_2_base( \
- K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, \
- K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, \
- K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A \
- ) \
- LAYOUT_split_3x5_2 ( \
- K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, \
- ALT_T(K11), K12, K13, K14, GUI_T(K15), LGUI_T(K16), K17, K18, K19, LALT_T(K1A), \
- CTL_T(K21), K22, K23, K24, K25, K26, K27, K28, K29, RCTL_T(K2A), \
- KC_SPC, BK_LWER, DL_RAIS, RSFT_T(KC_ENT) \
- )
-
-#define LAYOUT_split_3x5_2_base_wrapper(...) LAYOUT_split_3x5_2_base(__VA_ARGS__)
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
- [_DEFAULT_LAYER_1] = LAYOUT_split_3x5_2_base_wrapper(
- _________________QWERTY_L1_________________, _________________QWERTY_R1_________________,
- _________________QWERTY_L2_________________, _________________QWERTY_R2_________________,
- _________________QWERTY_L3_________________, _________________QWERTY_R3_________________
- ),
-
- [_DEFAULT_LAYER_2] = LAYOUT_split_3x5_2_base_wrapper(
- ______________COLEMAK_MOD_DH_L1____________, ______________COLEMAK_MOD_DH_R1____________,
- ______________COLEMAK_MOD_DH_L2____________, ______________COLEMAK_MOD_DH_R2____________,
- ______________COLEMAK_MOD_DH_L3____________, ______________COLEMAK_MOD_DH_R3____________
- ),
- [_DEFAULT_LAYER_3] = LAYOUT_split_3x5_2_base_wrapper(
- _________________COLEMAK_L1________________, _________________COLEMAK_R1________________,
- _________________COLEMAK_L2________________, _________________COLEMAK_R2________________,
- _________________COLEMAK_L3________________, _________________COLEMAK_R3________________
- ),
-
- [_DEFAULT_LAYER_4] = LAYOUT_split_3x5_2_base_wrapper(
- _________________DVORAK_L1_________________, _________________DVORAK_R1_________________,
- _________________DVORAK_L2_________________, _________________DVORAK_R2_________________,
- _________________DVORAK_L3_________________, _________________DVORAK_R3_________________
- ),
-
- [_MOUSE] = LAYOUT_split_3x5_2(
- _______, _______, _______, _______, _______, KC_WH_U, DPI_RMOD,DPI_MOD, S_D_RMOD,S_D_MOD,
- _______, _______, _______, _______, _______, KC_WH_D, KC_BTN1, KC_BTN3, KC_BTN2, KC_BTN6,
- _______, _______, _______, _______, _______, KC_BTN7, KC_BTN4, KC_BTN5, KC_BTN8, _______,
- SNIPING, _______, _______, _______
- ),
- [_LOWER] = LAYOUT_split_3x5_2_wrapper(
- _________________LOWER_L1__________________, _________________LOWER_R1__________________,
- _________________LOWER_L2__________________, _________________LOWER_R2__________________,
- _________________LOWER_L3__________________, _________________LOWER_R3__________________,
- _______, _______, _______, AUTO_CTN
- ),
- [_RAISE] = LAYOUT_split_3x5_2_wrapper(
- _________________RAISE_L1__________________, _________________RAISE_R1__________________,
- _________________RAISE_L2__________________, _________________RAISE_R2__________________,
- _________________RAISE_L3__________________, _________________RAISE_R3__________________,
- _______, _______, _______, _______
- ),
- [_ADJUST] = LAYOUT_split_3x5_2_wrapper(
- _________________ADJUST_L1_________________, _________________ADJUST_R1_________________,
- _________________ADJUST_L2_________________, _________________ADJUST_R2_________________,
- _________________ADJUST_L3_________________, _________________ADJUST_R3_________________,
- KC_NUKE, _______, _______, QK_BOOT
- ),
-};
-
-#if defined(OLED_ENABLE) && defined(OLED_DISPLAY_128X128)
-# ifdef UNICODE_COMMON_ENABLE
-# include "process_unicode_common.h"
-# include "keyrecords/unicode.h"
-# endif
-
-extern const char PROGMEM display_border[3];
-
-extern bool is_oled_enabled;
-
-
-bool oled_task_keymap(void) {
- static const char PROGMEM header_image[] = {
- 0, 192, 32, 16, 8, 4, 2, 1, 1, 1, 1, 1, 1, 1, 1, 3, 7, 15, 31, 63, 127, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 127, 63, 31, 15, 7, 3, 1, 1, 1, 1, 1, 1, 1, 1, 2, 4, 8, 16, 32, 192, 0,
- // 0,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 3, 7, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 7, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255, 0
- };
- oled_write_raw_P(header_image, sizeof(header_image));
- oled_set_cursor(7, 0);
- oled_write_P(PSTR("Dilemma"), true);
-
- render_default_layer_state(1, 1);
- render_layer_state(1, 2);
- render_kitty(0, 5);
- render_wpm(1, 7, 5);
-# if defined(POINTING_DEVICE_ENABLE)
- render_pointing_dpi_status(dilemma_get_pointer_sniping_enabled() ? dilemma_get_pointer_sniping_dpi() : dilemma_get_pointer_default_dpi(), 1, 7, 6);
- render_mouse_mode(17, 6);
-# elif defined(WPM_ENABLE) && defined(DEBUG_MATRIX_SCAN_RATE)
- render_matrix_scan_rate(1, 7, 6);
-# endif
- render_bootmagic_status(7, 7);
- render_user_status(1, 9);
-
- render_mod_status(get_mods() | get_oneshot_mods(), 1, 10);
- render_keylock_status(host_keyboard_led_state(), 1, 11);
- render_unicode_mode(1, 12);
-
-// render_rgb_hsv(1, 13);
- oled_set_cursor(1, 13);
- oled_write_P(PSTR("OS: "), false);
- extern os_variant_t os_type;
- switch (os_type) {
- case OS_LINUX:
- oled_write_ln_P(PSTR("Linux"), false);
- break;
- case OS_WINDOWS:
- oled_write_ln_P(PSTR("Windows"), false);
- break;
- case OS_MACOS:
- oled_write_ln_P(PSTR("MacOS"), false);
- break;
- case OS_IOS:
- oled_write_ln_P(PSTR("iOS"), false);
- break;
- default:
- break;
- }
-
- render_keylogger_status(1, 14);
-
- for (uint8_t i = 1; i < 15; i++) {
- oled_set_cursor(0, i);
- oled_write_raw_P(display_border, sizeof(display_border));
- oled_set_cursor(21, i);
- oled_write_raw_P(display_border, sizeof(display_border));
- }
-
- static const char PROGMEM footer_image[] = {0, 3, 4, 8, 16, 32, 64, 128, 128, 128, 128, 128, 128, 128, 192, 224, 240, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, 240, 224, 192, 128, 128, 128, 128, 128, 128, 128, 64, 32, 16, 8, 4, 3, 0};
- oled_set_cursor(0, 15);
- oled_write_raw_P(footer_image, sizeof(footer_image));
-
- return false;
-}
-#endif
-
-
-#ifdef SWAP_HANDS_ENABLE
-const keypos_t PROGMEM hand_swap_config[MATRIX_ROWS][MATRIX_COLS] = {
- /* Left hand, matrix positions */
- {{0, 4}, {3, 4}, {2, 4}, {5, 4}, {4, 4}},
- {{0, 5}, {1, 5}, {2, 5}, {3, 5}, {4, 5}},
- {{0, 6}, {1, 6}, {2, 6}, {3, 6}, {4, 6}},
- {{0, 7}, {1, 7}, {2, 7}, {3, 7}, {4, 7}},
- /* Right hand, matrix positions */
- {{0, 0}, {1, 0}, {2, 0}, {3, 0}, {4, 0}},
- {{0, 1}, {1, 1}, {2, 1}, {3, 1}, {4, 1}},
- {{0, 2}, {1, 2}, {2, 2}, {3, 2}, {4, 2}},
- {{0, 3}, {1, 3}, {2, 3}, {3, 3}, {4, 3}},
- };
-#endif
diff --git a/keyboards/bastardkb/dilemma/3x5_2/keymaps/drashna/mcuconf.h b/keyboards/bastardkb/dilemma/3x5_2/keymaps/drashna/mcuconf.h
deleted file mode 100644
index f194dd225c..0000000000
--- a/keyboards/bastardkb/dilemma/3x5_2/keymaps/drashna/mcuconf.h
+++ /dev/null
@@ -1,26 +0,0 @@
-/**
- * Copyright 2022 Charly Delay <charly@codesink.dev> (@0xcharly)
- *
- * 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_next <mcuconf.h>
-
-#undef RP_SPI_USE_SPI1
-#define RP_SPI_USE_SPI1 TRUE
-
-#undef RP_I2C_USE_I2C1
-#define RP_I2C_USE_I2C1 TRUE
diff --git a/keyboards/bastardkb/dilemma/3x5_2/keymaps/drashna/rules.mk b/keyboards/bastardkb/dilemma/3x5_2/keymaps/drashna/rules.mk
deleted file mode 100644
index a1be9cb8fd..0000000000
--- a/keyboards/bastardkb/dilemma/3x5_2/keymaps/drashna/rules.mk
+++ /dev/null
@@ -1,7 +0,0 @@
-SWAP_HANDS_ENABLE = no
-AUTOCORRECT_ENABLE = yes
-CAPS_WORD_ENABLE = yes
-CONSOLE_ENABLE = yes
-KEYLOGGER_ENABLE = no
-WPM_ENABLE = yes
-OLED_ENABLE = yes
diff --git a/keyboards/bastardkb/dilemma/3x5_2/splinky/rules.mk b/keyboards/bastardkb/dilemma/3x5_2/splinky/rules.mk
index 1e33cc1086..227d42fa24 100644
--- a/keyboards/bastardkb/dilemma/3x5_2/splinky/rules.mk
+++ b/keyboards/bastardkb/dilemma/3x5_2/splinky/rules.mk
@@ -22,6 +22,3 @@ POINTING_DEVICE_ENABLE = yes
POINTING_DEVICE_DRIVER = cirque_pinnacle_i2c # DIY version uses I2C.
SPLIT_KEYBOARD = yes
-
-# RP2040-specific options
-PICO_INTRINSICS_ENABLED = no # ATM Unsupported by ChibiOS.
diff --git a/keyboards/bastardkb/dilemma/3x5_3/keymaps/bstiq/keymap.c b/keyboards/bastardkb/dilemma/3x5_3/keymaps/bstiq/keymap.c
index 2c262521bc..b55d99b56b 100644
--- a/keyboards/bastardkb/dilemma/3x5_3/keymaps/bstiq/keymap.c
+++ b/keyboards/bastardkb/dilemma/3x5_3/keymaps/bstiq/keymap.c
@@ -210,7 +210,7 @@ layer_state_t layer_state_set_user(layer_state_t state) {
void rgb_matrix_update_pwm_buffers(void);
#endif
-void shutdown_user(void) {
+bool shutdown_user(bool jump_to_bootloader) {
#ifdef RGBLIGHT_ENABLE
rgblight_enable_noeeprom();
rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_LIGHT);
@@ -220,4 +220,5 @@ void shutdown_user(void) {
rgb_matrix_set_color_all(RGB_RED);
rgb_matrix_update_pwm_buffers();
#endif // RGB_MATRIX_ENABLE
+ return true;
}
diff --git a/keyboards/bastardkb/dilemma/3x5_3/rules.mk b/keyboards/bastardkb/dilemma/3x5_3/rules.mk
index 2b52cffbf7..3cdb41160c 100644
--- a/keyboards/bastardkb/dilemma/3x5_3/rules.mk
+++ b/keyboards/bastardkb/dilemma/3x5_3/rules.mk
@@ -22,6 +22,3 @@ POINTING_DEVICE_ENABLE = yes
POINTING_DEVICE_DRIVER = cirque_pinnacle_spi
SPLIT_KEYBOARD = yes
-
-# RP2040-specific options
-PICO_INTRINSICS_ENABLED = no # ATM Unsupported by ChibiOS.
diff --git a/keyboards/bastardkb/dilemma/4x6_4/keymaps/via/keymap.c b/keyboards/bastardkb/dilemma/4x6_4/keymaps/via/keymap.c
index 68602b2722..6ac228d723 100644
--- a/keyboards/bastardkb/dilemma/4x6_4/keymaps/via/keymap.c
+++ b/keyboards/bastardkb/dilemma/4x6_4/keymaps/via/keymap.c
@@ -123,10 +123,3 @@ const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = {
};
// clang-format on
#endif // ENCODER_MAP_ENABLE
-
-void shutdown_user(void) {
-#ifdef RGB_MATRIX_ENABLE
- rgb_matrix_sethsv_noeeprom(HSV_RED);
- rgb_matrix_update_pwm_buffers();
-#endif // RGB_MATRIX_ENABLE
-}
diff --git a/keyboards/bastardkb/dilemma/dilemma.c b/keyboards/bastardkb/dilemma/dilemma.c
index 5452f9e7f6..7c87fdcadd 100644
--- a/keyboards/bastardkb/dilemma/dilemma.c
+++ b/keyboards/bastardkb/dilemma/dilemma.c
@@ -343,3 +343,20 @@ void keyboard_pre_init_kb(void) {
keyboard_pre_init_user();
}
+
+bool shutdown_kb(bool jump_to_bootloader) {
+ if (!shutdown_user(jump_to_bootloader)) {
+ return false;
+ }
+#ifdef RGBLIGHT_ENABLE
+ rgblight_enable_noeeprom();
+ rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_LIGHT);
+ rgblight_setrgb(RGB_RED);
+#endif // RGBLIGHT_ENABLE
+#ifdef RGB_MATRIX_ENABLE
+ void rgb_matrix_update_pwm_buffers(void);
+ rgb_matrix_set_color_all(RGB_RED);
+ rgb_matrix_update_pwm_buffers();
+#endif // RGB_MATRIX_ENABLE
+ return true;
+}
diff --git a/keyboards/bastardkb/scylla/blackpill/info.json b/keyboards/bastardkb/scylla/blackpill/info.json
index 24fb8bc701..8d7cb4c823 100644
--- a/keyboards/bastardkb/scylla/blackpill/info.json
+++ b/keyboards/bastardkb/scylla/blackpill/info.json
@@ -3,6 +3,9 @@
"usb": {
"device_version": "1.0.0"
},
+ "eeprom": {
+ "driver": "spi"
+ },
"rgb_matrix": {
"driver": "ws2812"
},
diff --git a/keyboards/bastardkb/scylla/blackpill/rules.mk b/keyboards/bastardkb/scylla/blackpill/rules.mk
index 8c0e9b5891..b5612ce38a 100644
--- a/keyboards/bastardkb/scylla/blackpill/rules.mk
+++ b/keyboards/bastardkb/scylla/blackpill/rules.mk
@@ -21,5 +21,4 @@ SPLIT_KEYBOARD = yes
MOUSE_SHARED_EP = no # Unify multiple HID interfaces into a single Endpoint
KEYBOARD_SHARED_EP = yes
-EEPROM_DRIVER = spi
SERIAL_DRIVER = usart
diff --git a/keyboards/bastardkb/scylla/keymaps/manna-harbour_miryoku/config.h b/keyboards/bastardkb/scylla/keymaps/manna-harbour_miryoku/config.h
deleted file mode 100644
index 5a3153ae37..0000000000
--- a/keyboards/bastardkb/scylla/keymaps/manna-harbour_miryoku/config.h
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright 2019 Manna Harbour
-// https://github.com/manna-harbour/miryoku
-
-// 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 XXX KC_NO
-
-#define LAYOUT_miryoku( \
- 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, \
- N30, N31, K32, K33, K34, K35, K36, K37, N38, N39 \
-) \
-LAYOUT_split_4x6_5( \
-XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, \
-XXX, K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, XXX, \
-XXX, K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, XXX, \
-XXX, K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, XXX, \
- K32, K33, K34, K35, K36, K37, \
- XXX, XXX, XXX, XXX \
-)
diff --git a/keyboards/bastardkb/scylla/keymaps/manna-harbour_miryoku/keymap.c b/keyboards/bastardkb/scylla/keymaps/manna-harbour_miryoku/keymap.c
deleted file mode 100644
index dbab7f9820..0000000000
--- a/keyboards/bastardkb/scylla/keymaps/manna-harbour_miryoku/keymap.c
+++ /dev/null
@@ -1,4 +0,0 @@
-// Copyright 2019 Manna Harbour
-// https://github.com/manna-harbour/miryoku
-
-// 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/>.
diff --git a/keyboards/bastardkb/scylla/v2/splinky_2/rules.mk b/keyboards/bastardkb/scylla/v2/splinky_2/rules.mk
index 274e95c039..53f4c0baa8 100644
--- a/keyboards/bastardkb/scylla/v2/splinky_2/rules.mk
+++ b/keyboards/bastardkb/scylla/v2/splinky_2/rules.mk
@@ -1,7 +1,3 @@
-# RP2040-specific options
-ALLOW_WARNINGS = yes
-PICO_INTRINSICS_ENABLED = no # ATM Unsupported by ChibiOS.
-
# Build Options
# change yes to no to disable
#
diff --git a/keyboards/bastardkb/scylla/v2/splinky_3/rules.mk b/keyboards/bastardkb/scylla/v2/splinky_3/rules.mk
index 274e95c039..53f4c0baa8 100644
--- a/keyboards/bastardkb/scylla/v2/splinky_3/rules.mk
+++ b/keyboards/bastardkb/scylla/v2/splinky_3/rules.mk
@@ -1,7 +1,3 @@
-# RP2040-specific options
-ALLOW_WARNINGS = yes
-PICO_INTRINSICS_ENABLED = no # ATM Unsupported by ChibiOS.
-
# Build Options
# change yes to no to disable
#
diff --git a/keyboards/bastardkb/skeletyl/blackpill/info.json b/keyboards/bastardkb/skeletyl/blackpill/info.json
index 1d25639281..c0f0d6a3b1 100644
--- a/keyboards/bastardkb/skeletyl/blackpill/info.json
+++ b/keyboards/bastardkb/skeletyl/blackpill/info.json
@@ -3,6 +3,9 @@
"usb": {
"device_version": "1.0.0"
},
+ "eeprom": {
+ "driver": "spi"
+ },
"rgb_matrix": {
"driver": "ws2812"
},
diff --git a/keyboards/bastardkb/skeletyl/blackpill/rules.mk b/keyboards/bastardkb/skeletyl/blackpill/rules.mk
index 8c0e9b5891..b5612ce38a 100644
--- a/keyboards/bastardkb/skeletyl/blackpill/rules.mk
+++ b/keyboards/bastardkb/skeletyl/blackpill/rules.mk
@@ -21,5 +21,4 @@ SPLIT_KEYBOARD = yes
MOUSE_SHARED_EP = no # Unify multiple HID interfaces into a single Endpoint
KEYBOARD_SHARED_EP = yes
-EEPROM_DRIVER = spi
SERIAL_DRIVER = usart
diff --git a/keyboards/bastardkb/skeletyl/v2/splinky_2/rules.mk b/keyboards/bastardkb/skeletyl/v2/splinky_2/rules.mk
index 274e95c039..53f4c0baa8 100644
--- a/keyboards/bastardkb/skeletyl/v2/splinky_2/rules.mk
+++ b/keyboards/bastardkb/skeletyl/v2/splinky_2/rules.mk
@@ -1,7 +1,3 @@
-# RP2040-specific options
-ALLOW_WARNINGS = yes
-PICO_INTRINSICS_ENABLED = no # ATM Unsupported by ChibiOS.
-
# Build Options
# change yes to no to disable
#
diff --git a/keyboards/bastardkb/skeletyl/v2/splinky_3/rules.mk b/keyboards/bastardkb/skeletyl/v2/splinky_3/rules.mk
index 274e95c039..53f4c0baa8 100644
--- a/keyboards/bastardkb/skeletyl/v2/splinky_3/rules.mk
+++ b/keyboards/bastardkb/skeletyl/v2/splinky_3/rules.mk
@@ -1,7 +1,3 @@
-# RP2040-specific options
-ALLOW_WARNINGS = yes
-PICO_INTRINSICS_ENABLED = no # ATM Unsupported by ChibiOS.
-
# Build Options
# change yes to no to disable
#
diff --git a/keyboards/bastardkb/tbkmini/blackpill/info.json b/keyboards/bastardkb/tbkmini/blackpill/info.json
index dcdce8f63b..c410460857 100644
--- a/keyboards/bastardkb/tbkmini/blackpill/info.json
+++ b/keyboards/bastardkb/tbkmini/blackpill/info.json
@@ -3,6 +3,9 @@
"usb": {
"device_version": "1.0.0"
},
+ "eeprom": {
+ "driver": "spi"
+ },
"rgb_matrix": {
"driver": "ws2812"
},
diff --git a/keyboards/bastardkb/tbkmini/blackpill/rules.mk b/keyboards/bastardkb/tbkmini/blackpill/rules.mk
index 8c0e9b5891..b5612ce38a 100644
--- a/keyboards/bastardkb/tbkmini/blackpill/rules.mk
+++ b/keyboards/bastardkb/tbkmini/blackpill/rules.mk
@@ -21,5 +21,4 @@ SPLIT_KEYBOARD = yes
MOUSE_SHARED_EP = no # Unify multiple HID interfaces into a single Endpoint
KEYBOARD_SHARED_EP = yes
-EEPROM_DRIVER = spi
SERIAL_DRIVER = usart
diff --git a/keyboards/bastardkb/tbkmini/v2/splinky_2/rules.mk b/keyboards/bastardkb/tbkmini/v2/splinky_2/rules.mk
index 274e95c039..53f4c0baa8 100644
--- a/keyboards/bastardkb/tbkmini/v2/splinky_2/rules.mk
+++ b/keyboards/bastardkb/tbkmini/v2/splinky_2/rules.mk
@@ -1,7 +1,3 @@
-# RP2040-specific options
-ALLOW_WARNINGS = yes
-PICO_INTRINSICS_ENABLED = no # ATM Unsupported by ChibiOS.
-
# Build Options
# change yes to no to disable
#
diff --git a/keyboards/bastardkb/tbkmini/v2/splinky_3/rules.mk b/keyboards/bastardkb/tbkmini/v2/splinky_3/rules.mk
index 274e95c039..53f4c0baa8 100644
--- a/keyboards/bastardkb/tbkmini/v2/splinky_3/rules.mk
+++ b/keyboards/bastardkb/tbkmini/v2/splinky_3/rules.mk
@@ -1,7 +1,3 @@
-# RP2040-specific options
-ALLOW_WARNINGS = yes
-PICO_INTRINSICS_ENABLED = no # ATM Unsupported by ChibiOS.
-
# Build Options
# change yes to no to disable
#
diff --git a/keyboards/bemeier/bmek/bmek.c b/keyboards/bemeier/bmek/bmek.c
index eaae446d63..dd0372aaee 100755
--- a/keyboards/bemeier/bmek/bmek.c
+++ b/keyboards/bemeier/bmek/bmek.c
@@ -15,9 +15,12 @@
*/
#include "quantum.h"
-__attribute__((weak))
-void shutdown_user(void) {
+bool shutdown_kb(bool jump_to_bootloader) {
+ if (!shutdown_user(jump_to_bootloader)) {
+ return false;
+ }
#ifdef RGBLIGHT_ENABLE
rgblight_setrgb(255, 0, 0);
#endif
+ return true;
}
diff --git a/keyboards/bemeier/bmek/config.h b/keyboards/bemeier/bmek/config.h
index 4553454096..1deca961a0 100755
--- a/keyboards/bemeier/bmek/config.h
+++ b/keyboards/bemeier/bmek/config.h
@@ -15,6 +15,4 @@
*/
#pragma once
-
-#define DYNAMIC_KEYMAP_LAYER_COUNT 5
#define VIA_EEPROM_CUSTOM_CONFIG_SIZE 20
diff --git a/keyboards/bemeier/bmek/info.json b/keyboards/bemeier/bmek/info.json
index 0959f9f3a6..31d2b5f9bd 100755
--- a/keyboards/bemeier/bmek/info.json
+++ b/keyboards/bemeier/bmek/info.json
@@ -7,6 +7,9 @@
"vid": "0x626D",
"pid": "0x656B"
},
+ "dynamic_keymap": {
+ "layer_count": 5
+ },
"layouts": {
"LAYOUT_all": {
"layout": [
diff --git a/keyboards/bfake/keymaps/mechmerlin/keymap.c b/keyboards/bfake/keymaps/mechmerlin/keymap.c
deleted file mode 100644
index fec728d87e..0000000000
--- a/keyboards/bfake/keymaps/mechmerlin/keymap.c
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
-Copyright 2017 Luiz Ribeiro <luizribeiro@gmail.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 QMK_KEYBOARD_H
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [0] = LAYOUT_all(
- QK_GESC, 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_NO, 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_LBRC, KC_RBRC, KC_BSLS,
- 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_ENT,
- KC_LSFT, KC_NO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, TG(2),
- KC_LCTL, KC_LGUI, KC_LALT, KC_SPACE, MO(1), KC_RALT, KC_RGUI, KC_RCTL
- ),
- [1] = LAYOUT_all(
- KC_GRV, 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_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_CAPS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- MO(3), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MUTE, KC_VOLD, KC_VOLU, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
- ),
- [2] = LAYOUT_all(
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_UP, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_RIGHT
- ),
-
- [3] = LAYOUT_all(
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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
- ),
-};
-
diff --git a/keyboards/bfake/keymaps/mechmerlin/readme.md b/keyboards/bfake/keymaps/mechmerlin/readme.md
deleted file mode 100644
index b85b6537c1..0000000000
--- a/keyboards/bfake/keymaps/mechmerlin/readme.md
+++ /dev/null
@@ -1,18 +0,0 @@
-MechMerlin's FaceW Sprit Edition Layout
-======================
-
-This is the preferred 60% layout used by u/merlin36, host of the [MechMerlin YouTube channel](www.youtube.com/mechmerlin).
-
-## Keyboard Notes
-- The FaceW Sprit Edition can be purchased on [mechanicalkeyboards.com](www.mechanicalkeyboards.com)
-- Uses ps2avru instead of ps2avrgb
-- To put in reset mode hold `q` while inserting the USB cable
-- Use flashing instructions from ps2avrgb QMK port
-
-## Keymap Notes
-- Does not support any form of inswitch lighting as Merlin hates them.
-- Arrow toggle switch to the right of right shift
-- Reset is FN + Left Shift + R
-
-### Build
-To build this keymap, simply run `make bfake:mechmerlin` from the qmk_firmware directory.
diff --git a/keyboards/binepad/bn006/config.h b/keyboards/binepad/bn006/config.h
index 41c3822655..0569ccff03 100755
--- a/keyboards/binepad/bn006/config.h
+++ b/keyboards/binepad/bn006/config.h
@@ -4,14 +4,6 @@
#pragma once
/*
- * Wear Leveling EEPROM Emulation
- */
-
-#define WEAR_LEVELING_LOGICAL_SIZE 2048 // Number of bytes "exposed" to the rest of QMK and denotes the size of the usable EEPROM.
-#define WEAR_LEVELING_BACKING_SIZE (WEAR_LEVELING_LOGICAL_SIZE * 2) // Number of bytes used by the wear-leveling algorithm for its underlying storage, and needs to be a multiple of the logical size.
-
-
-/*
* RGB Matrix
*/
diff --git a/keyboards/binepad/bn006/info.json b/keyboards/binepad/bn006/info.json
index 756b82e330..81e68d2e0c 100755
--- a/keyboards/binepad/bn006/info.json
+++ b/keyboards/binepad/bn006/info.json
@@ -24,6 +24,11 @@
"pid": "0x426E",
"device_version": "1.0.0"
},
+ "eeprom": {
+ "wear_leveling": {
+ "backing_size": 4096
+ }
+ },
"ws2812": {
"pin": "B15"
},
diff --git a/keyboards/binepad/bn006/rules.mk b/keyboards/binepad/bn006/rules.mk
index 58561c984b..7ff128fa69 100755
--- a/keyboards/binepad/bn006/rules.mk
+++ b/keyboards/binepad/bn006/rules.mk
@@ -1,5 +1 @@
-# Copyright 2022 Binepad (@binpad)
-# SPDX-License-Identifier: GPL-2.0-or-later
-
-EPROM_DRIVER = wear_leveling
-WEAR_LEVELING_DRIVER = embedded_flash
+# This file intentionally left blank \ No newline at end of file
diff --git a/keyboards/binepad/bn009/r2/config.h b/keyboards/binepad/bn009/r2/config.h
deleted file mode 100644
index 45b63ec105..0000000000
--- a/keyboards/binepad/bn009/r2/config.h
+++ /dev/null
@@ -1,12 +0,0 @@
-// Copyright 2023 Binepad (@binepad)
-// SPDX-License-Identifier: GPL-2.0-or-later
-
-#pragma once
-
-
-/*
- * Wear Leveling EEPROM Emulation
- */
-
-#define WEAR_LEVELING_LOGICAL_SIZE 2048 // Number of bytes "exposed" to the rest of QMK and denotes the size of the usable EEPROM.
-#define WEAR_LEVELING_BACKING_SIZE (WEAR_LEVELING_LOGICAL_SIZE * 2) // Number of bytes used by the wear-leveling algorithm for its underlying storage, and needs to be a multiple of the logical size.
diff --git a/keyboards/binepad/bn009/r2/info.json b/keyboards/binepad/bn009/r2/info.json
index c011fe0e32..870608b5c8 100644
--- a/keyboards/binepad/bn009/r2/info.json
+++ b/keyboards/binepad/bn009/r2/info.json
@@ -6,6 +6,11 @@
"cols": ["A1", "A2", "A6"],
"rows": ["B6", "B7", "B2"]
},
+ "eeprom": {
+ "wear_leveling": {
+ "backing_size": 4096
+ }
+ },
"processor": "STM32F103",
"usb": {
"device_version": "2.0.0"
diff --git a/keyboards/binepad/bnr1/v2/config.h b/keyboards/binepad/bnr1/v2/config.h
deleted file mode 100644
index c408f95d38..0000000000
--- a/keyboards/binepad/bnr1/v2/config.h
+++ /dev/null
@@ -1,7 +0,0 @@
-// Copyright 2022 BINEPAD (@binepad)
-// SPDX-License-Identifier: GPL-2.0-or-later
-
-#pragma once
-
-#define WEAR_LEVELING_LOGICAL_SIZE 1024
-#define WEAR_LEVELING_BACKING_SIZE (WEAR_LEVELING_LOGICAL_SIZE * 2)
diff --git a/keyboards/binepad/bnr1/v2/rules.mk b/keyboards/binepad/bnr1/v2/rules.mk
index 77b90d035d..6e7633bfe0 100644
--- a/keyboards/binepad/bnr1/v2/rules.mk
+++ b/keyboards/binepad/bnr1/v2/rules.mk
@@ -1,5 +1 @@
-# This file only contains EFL/WL settings and enables F103 low-power mode
-
-EEPROM_DRIVER = wear_leveling
-WEAR_LEVELING_DRIVER = embedded_flash
-
+# This file intentionally left blank
diff --git a/keyboards/bioi/ble.c b/keyboards/bioi/ble.c
deleted file mode 100644
index 12c180966a..0000000000
--- a/keyboards/bioi/ble.c
+++ /dev/null
@@ -1,174 +0,0 @@
-/*
-Copyright 2019 Basic I/O Instruments(Scott Wei) <scot.wei@gmail.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 "bluetooth.h"
-#include "ble.h"
-#include "usart.h"
-#include "progmem.h"
-#include "wait.h"
-#include "debug.h"
-#include "usb_descriptor.h"
-#include "report.h"
-
-keyboard_config_t ble_config;
-
-static void bluefruit_serial_send(uint8_t);
-
-void send_str(const char *str)
-{
- uint8_t c;
- while ((c = pgm_read_byte(str++)))
- uart1_putc(c);
-}
-
-void serial_send(uint8_t data)
-{
- dprintf("Sending: %u\n", data);
-}
-
-void send_bytes(uint8_t data)
-{
- char hexStr[3];
- sprintf(hexStr, "%02X", data);
- for (int j = 0; j < sizeof(hexStr) - 1; j++)
- {
- uart1_putc(hexStr[j]);
- }
-}
-
-#ifdef BLUEFRUIT_TRACE_SERIAL
-static void bluefruit_trace_header(void)
-{
- dprintf("+------------------------------------+\n");
- dprintf("| HID report to Bluefruit via serial |\n");
- dprintf("+------------------------------------+\n|");
-}
-
-static void bluefruit_trace_footer(void)
-{
- dprintf("|\n+------------------------------------+\n\n");
-}
-#endif
-
-static void bluefruit_serial_send(uint8_t data)
-{
-#ifdef BLUEFRUIT_TRACE_SERIAL
- dprintf(" ");
- debug_hex8(data);
- dprintf(" ");
-#endif
- serial_send(data);
-}
-
-void bluetooth_init(void) {
- usart_init();
-}
-
-void bluetooth_task(void) {}
-
-void bluetooth_send_keyboard(report_keyboard_t *report)
-{
-#ifdef BLUEFRUIT_TRACE_SERIAL
- bluefruit_trace_header();
-#endif
- dprintf("Sending...\n");
-
- send_str(PSTR("AT+BLEKEYBOARDCODE="));
-
- for (uint8_t i = 0; i < KEYBOARD_EPSIZE; i++)
- {
- send_bytes(report->raw[i]);
- if (i < (KEYBOARD_EPSIZE - 1))
- {
- send_str(PSTR("-"));
- }
- }
-
- send_str(PSTR("\r\n"));
-#ifdef BLUEFRUIT_TRACE_SERIAL
- bluefruit_trace_footer();
-#endif
-}
-
-void bluetooth_send_mouse(report_mouse_t *report)
-{
-#ifdef BLUEFRUIT_TRACE_SERIAL
- bluefruit_trace_header();
-#endif
- bluefruit_serial_send(0xFD);
- bluefruit_serial_send(0x00);
- bluefruit_serial_send(0x03);
- bluefruit_serial_send(report->buttons);
- bluefruit_serial_send(report->x);
- bluefruit_serial_send(report->y);
- bluefruit_serial_send(report->v); // should try sending the wheel v here
- bluefruit_serial_send(report->h); // should try sending the wheel h here
- bluefruit_serial_send(0x00);
-#ifdef BLUEFRUIT_TRACE_SERIAL
- bluefruit_trace_footer();
-#endif
-}
-
-/*
-+-----------------+-------------------+-------+
-| Consumer Key | Bit Map | Hex |
-+-----------------+-------------------+-------+
-| Home | 00000001 00000000 | 01 00 |
-| KeyboardLayout | 00000010 00000000 | 02 00 |
-| Search | 00000100 00000000 | 04 00 |
-| Snapshot | 00001000 00000000 | 08 00 |
-| VolumeUp | 00010000 00000000 | 10 00 |
-| VolumeDown | 00100000 00000000 | 20 00 |
-| Play/Pause | 01000000 00000000 | 40 00 |
-| Fast Forward | 10000000 00000000 | 80 00 |
-| Rewind | 00000000 00000001 | 00 01 |
-| Scan Next Track | 00000000 00000010 | 00 02 |
-| Scan Prev Track | 00000000 00000100 | 00 04 |
-| Random Play | 00000000 00001000 | 00 08 |
-| Stop | 00000000 00010000 | 00 10 |
-+-------------------------------------+-------+
-*/
-#define CONSUMER2BLUEFRUIT(usage) \
- (usage == AUDIO_MUTE ? 0x00e2 : (usage == AUDIO_VOL_UP ? 0x00e9 : (usage == AUDIO_VOL_DOWN ? 0x00ea : (usage == TRANSPORT_NEXT_TRACK ? 0x00b5 : (usage == TRANSPORT_PREV_TRACK ? 0x00b6 : (usage == TRANSPORT_STOP ? 0x00b7 : (usage == TRANSPORT_STOP_EJECT ? 0x00b8 : (usage == TRANSPORT_PLAY_PAUSE ? 0x00b1 : (usage == AL_CC_CONFIG ? 0x0183 : (usage == AL_EMAIL ? 0x018c : (usage == AL_CALCULATOR ? 0x0192 : (usage == AL_LOCAL_BROWSER ? 0x0196 : (usage == AC_SEARCH ? 0x021f : (usage == AC_HOME ? 0x0223 : (usage == AC_BACK ? 0x0224 : (usage == AC_FORWARD ? 0x0225 : (usage == AC_STOP ? 0x0226 : (usage == AC_REFRESH ? 0x0227 : (usage == AC_BOOKMARKS ? 0x022a : 0)))))))))))))))))))
-
-void bluetooth_send_consumer(uint16_t usage)
-{
- uint16_t bitmap = CONSUMER2BLUEFRUIT(usage);
-
-#ifdef BLUEFRUIT_TRACE_SERIAL
- dprintf("\nData: ");
- debug_hex16(data);
- dprintf("; bitmap: ");
- debug_hex16(bitmap);
- dprintf("\n");
- bluefruit_trace_header();
-#endif
- send_str(PSTR("AT+BLEHIDCONTROLKEY=0x"));
- send_bytes((bitmap >> 8) & 0xFF);
- send_bytes(bitmap & 0xFF);
- send_str(PSTR("\r\n"));
-#ifdef BLUEFRUIT_TRACE_SERIAL
- bluefruit_trace_footer();
-#endif
-}
-
-void usart_init(void)
-{
- uart1_init(UART_BAUD_SELECT_DOUBLE_SPEED(76800, 8000000L));
- wait_ms(250);
-
- send_str(PSTR("\r\n"));
- send_str(PSTR("\r\n"));
- send_str(PSTR("\r\n"));
-}
diff --git a/keyboards/bioi/ble.h b/keyboards/bioi/ble.h
deleted file mode 100644
index 529ebf5241..0000000000
--- a/keyboards/bioi/ble.h
+++ /dev/null
@@ -1,30 +0,0 @@
-/*
-Copyright 2019 Basic I/O Instruments(Scott Wei) <scot.wei@gmail.com>
-This program is free software: you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 2 of the License, or
-(at your option) any later version.
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-You should have received a copy of the GNU General Public License
-along with this program. If not, see <http://www.gnu.org/licenses/>.
-*/
-
-#pragma once
-
-#include <stdbool.h>
-
-typedef union {
- uint32_t raw;
- struct {
- bool init : 1;
- };
-} keyboard_config_t;
-
-extern keyboard_config_t ble_config;
-
-void send_str(const char *str);
-void usart_init(void);
-void module_reset(void);
diff --git a/keyboards/bioi/bluetooth_custom.c b/keyboards/bioi/bluetooth_custom.c
new file mode 100644
index 0000000000..4ea277f731
--- /dev/null
+++ b/keyboards/bioi/bluetooth_custom.c
@@ -0,0 +1,163 @@
+/*
+Copyright 2019 Basic I/O Instruments(Scott Wei) <scot.wei@gmail.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 "bluetooth.h"
+#include "uart.h"
+#include "progmem.h"
+#include "wait.h"
+#include "debug.h"
+#include "usb_descriptor.h"
+#include "report.h"
+
+void send_str(const char *str)
+{
+ uint8_t c;
+ while ((c = pgm_read_byte(str++)))
+ uart_write(c);
+}
+
+void serial_send(uint8_t data)
+{
+ dprintf("Sending: %u\n", data);
+}
+
+void send_bytes(uint8_t data)
+{
+ char hexStr[3];
+ sprintf(hexStr, "%02X", data);
+ for (int j = 0; j < sizeof(hexStr) - 1; j++)
+ {
+ uart_write(hexStr[j]);
+ }
+}
+
+#ifdef BLUEFRUIT_TRACE_SERIAL
+static void bluefruit_trace_header(void)
+{
+ dprintf("+------------------------------------+\n");
+ dprintf("| HID report to Bluefruit via serial |\n");
+ dprintf("+------------------------------------+\n|");
+}
+
+static void bluefruit_trace_footer(void)
+{
+ dprintf("|\n+------------------------------------+\n\n");
+}
+#endif
+
+static void bluefruit_serial_send(uint8_t data)
+{
+#ifdef BLUEFRUIT_TRACE_SERIAL
+ dprintf(" ");
+ debug_hex8(data);
+ dprintf(" ");
+#endif
+ serial_send(data);
+}
+
+void bluetooth_init(void) {
+ uart_init(76800);
+ wait_ms(250);
+
+ send_str(PSTR("\r\n"));
+ send_str(PSTR("\r\n"));
+ send_str(PSTR("\r\n"));
+}
+
+void bluetooth_task(void) {}
+
+void bluetooth_send_keyboard(report_keyboard_t *report)
+{
+#ifdef BLUEFRUIT_TRACE_SERIAL
+ bluefruit_trace_header();
+#endif
+ dprintf("Sending...\n");
+
+ send_str(PSTR("AT+BLEKEYBOARDCODE="));
+
+ send_bytes(report->mods);
+ send_str(PSTR("-"));
+ send_bytes(0);
+ for (uint8_t i = 0; i < KEYBOARD_REPORT_KEYS; i++) {
+ send_str(PSTR("-"));
+ send_bytes(report->keys[i]);
+ }
+
+ send_str(PSTR("\r\n"));
+#ifdef BLUEFRUIT_TRACE_SERIAL
+ bluefruit_trace_footer();
+#endif
+}
+
+void bluetooth_send_mouse(report_mouse_t *report)
+{
+#ifdef BLUEFRUIT_TRACE_SERIAL
+ bluefruit_trace_header();
+#endif
+ bluefruit_serial_send(0xFD);
+ bluefruit_serial_send(0x00);
+ bluefruit_serial_send(0x03);
+ bluefruit_serial_send(report->buttons);
+ bluefruit_serial_send(report->x);
+ bluefruit_serial_send(report->y);
+ bluefruit_serial_send(report->v); // should try sending the wheel v here
+ bluefruit_serial_send(report->h); // should try sending the wheel h here
+ bluefruit_serial_send(0x00);
+#ifdef BLUEFRUIT_TRACE_SERIAL
+ bluefruit_trace_footer();
+#endif
+}
+
+/*
++-----------------+-------------------+-------+
+| Consumer Key | Bit Map | Hex |
++-----------------+-------------------+-------+
+| Home | 00000001 00000000 | 01 00 |
+| KeyboardLayout | 00000010 00000000 | 02 00 |
+| Search | 00000100 00000000 | 04 00 |
+| Snapshot | 00001000 00000000 | 08 00 |
+| VolumeUp | 00010000 00000000 | 10 00 |
+| VolumeDown | 00100000 00000000 | 20 00 |
+| Play/Pause | 01000000 00000000 | 40 00 |
+| Fast Forward | 10000000 00000000 | 80 00 |
+| Rewind | 00000000 00000001 | 00 01 |
+| Scan Next Track | 00000000 00000010 | 00 02 |
+| Scan Prev Track | 00000000 00000100 | 00 04 |
+| Random Play | 00000000 00001000 | 00 08 |
+| Stop | 00000000 00010000 | 00 10 |
++-------------------------------------+-------+
+*/
+#define CONSUMER2BLUEFRUIT(usage) \
+ (usage == AUDIO_MUTE ? 0x00e2 : (usage == AUDIO_VOL_UP ? 0x00e9 : (usage == AUDIO_VOL_DOWN ? 0x00ea : (usage == TRANSPORT_NEXT_TRACK ? 0x00b5 : (usage == TRANSPORT_PREV_TRACK ? 0x00b6 : (usage == TRANSPORT_STOP ? 0x00b7 : (usage == TRANSPORT_STOP_EJECT ? 0x00b8 : (usage == TRANSPORT_PLAY_PAUSE ? 0x00b1 : (usage == AL_CC_CONFIG ? 0x0183 : (usage == AL_EMAIL ? 0x018c : (usage == AL_CALCULATOR ? 0x0192 : (usage == AL_LOCAL_BROWSER ? 0x0196 : (usage == AC_SEARCH ? 0x021f : (usage == AC_HOME ? 0x0223 : (usage == AC_BACK ? 0x0224 : (usage == AC_FORWARD ? 0x0225 : (usage == AC_STOP ? 0x0226 : (usage == AC_REFRESH ? 0x0227 : (usage == AC_BOOKMARKS ? 0x022a : 0)))))))))))))))))))
+
+void bluetooth_send_consumer(uint16_t usage)
+{
+ uint16_t bitmap = CONSUMER2BLUEFRUIT(usage);
+
+#ifdef BLUEFRUIT_TRACE_SERIAL
+ dprintf("\nData: ");
+ debug_hex16(data);
+ dprintf("; bitmap: ");
+ debug_hex16(bitmap);
+ dprintf("\n");
+ bluefruit_trace_header();
+#endif
+ send_str(PSTR("AT+BLEHIDCONTROLKEY=0x"));
+ send_bytes((bitmap >> 8) & 0xFF);
+ send_bytes(bitmap & 0xFF);
+ send_str(PSTR("\r\n"));
+#ifdef BLUEFRUIT_TRACE_SERIAL
+ bluefruit_trace_footer();
+#endif
+}
diff --git a/keyboards/bioi/g60/rules.mk b/keyboards/bioi/g60/rules.mk
index 2b955ce793..375cb52732 100644
--- a/keyboards/bioi/g60/rules.mk
+++ b/keyboards/bioi/g60/rules.mk
@@ -18,7 +18,5 @@ BLUETOOTH_ENABLE = yes
VIA_ENABLE = yes # VIA support should be enabled here due to the main() loop will be compiled first.
-SRC += usart.c ble.c
-
-OPT_DEFS += -DUART_RX1_BUFFER_SIZE=16 -DUART_TX1_BUFFER_SIZE=16
-OPT_DEFS += -DUSART1_ENABLED
+UART_DRIVER_REQUIRED = yes
+SRC += bluetooth_custom.c
diff --git a/keyboards/bioi/g60ble/rules.mk b/keyboards/bioi/g60ble/rules.mk
index 31cc2c22b6..6bfcc62d7e 100644
--- a/keyboards/bioi/g60ble/rules.mk
+++ b/keyboards/bioi/g60ble/rules.mk
@@ -13,8 +13,7 @@ BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
RGBLIGHT_ENABLE = yes
LTO_ENABLE = yes
-# these lines are all for bluetooth
BLUETOOTH_ENABLE = yes
-SRC += usart.c ble.c
-OPT_DEFS += -DUART_RX1_BUFFER_SIZE=16 -DUART_TX1_BUFFER_SIZE=16
-OPT_DEFS += -DUSART1_ENABLED
+
+UART_DRIVER_REQUIRED = yes
+SRC += bluetooth_custom.c
diff --git a/keyboards/bioi/morgan65/rules.mk b/keyboards/bioi/morgan65/rules.mk
index 2b955ce793..375cb52732 100644
--- a/keyboards/bioi/morgan65/rules.mk
+++ b/keyboards/bioi/morgan65/rules.mk
@@ -18,7 +18,5 @@ BLUETOOTH_ENABLE = yes
VIA_ENABLE = yes # VIA support should be enabled here due to the main() loop will be compiled first.
-SRC += usart.c ble.c
-
-OPT_DEFS += -DUART_RX1_BUFFER_SIZE=16 -DUART_TX1_BUFFER_SIZE=16
-OPT_DEFS += -DUSART1_ENABLED
+UART_DRIVER_REQUIRED = yes
+SRC += bluetooth_custom.c
diff --git a/keyboards/bioi/usart.c b/keyboards/bioi/usart.c
deleted file mode 100644
index f37845e5c6..0000000000
--- a/keyboards/bioi/usart.c
+++ /dev/null
@@ -1,1522 +0,0 @@
-/*************************************************************************
-
- Title: Interrupt UART library with receive/transmit circular buffers
- Author: Andy Gock
- Software: AVR-GCC 4.1, AVR Libc 1.4
- Hardware: any AVR with built-in UART, tested on AT90S8515 & ATmega8 at 4 Mhz
- License: GNU General Public License
- Usage: see README.md and Doxygen manual
-
- Based on original library by Peter Fluery, Tim Sharpe, Nicholas Zambetti.
-
- https://github.com/andygock/avr-uart
-
- Updated UART library (this one) by Andy Gock
- https://github.com/andygock/avr-uart
-
- Based on updated UART library (this one) by Tim Sharpe
- http://beaststwo.org/avr-uart/index.shtml
-
- Based on original library by Peter Fluery
- http://homepage.hispeed.ch/peterfleury/avr-software.html
-
-*************************************************************************/
-
-/*************************************************************************
-
-LICENSE:
- Copyright (C) 2012 Andy Gock
- Copyright (C) 2006 Peter Fleury
-
- 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
- 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.
-
-*************************************************************************/
-
-/************************************************************************
-uart_available, uart_flush, uart1_available, and uart1_flush functions
-were adapted from the Arduino HardwareSerial.h library by Tim Sharpe on
-11 Jan 2009. The license info for HardwareSerial.h is as follows:
-
- HardwareSerial.cpp - Hardware serial library for Wiring
- Copyright (c) 2006 Nicholas Zambetti. All right reserved.
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- This library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with this library; if not, write to the Free Software
- Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
-
- Modified 23 November 2006 by David A. Mellis
-************************************************************************/
-
-/************************************************************************
-Changelog for modifications made by Tim Sharpe, starting with the current
- library version on his Web site as of 05/01/2009.
-
-Date Description
-=========================================================================
-05/11/2009 Changed all existing UARTx_RECEIVE_INTERRUPT and UARTx_TRANSMIT_INTERRUPT
- macros to use the "_vect" format introduced in AVR-Libc
- v1.4.0. Had to split the 3290 and 6490 out of their existing
- macro due to an inconsistency in the UART0_RECEIVE_INTERRUPT
- vector name (seems like a typo: USART_RX_vect for the 3290/6490
- vice USART0_RX_vect for the others in the macro).
- Verified all existing macro register names against the device
- header files in AVR-Libc v1.6.6 to catch any inconsistencies.
-05/12/2009 Added support for 48P, 88P, 168P, and 328P by adding them to the
- existing 48/88/168 macro.
- Added Arduino-style available() and flush() functions for both
- supported UARTs. Really wanted to keep them out of the library, so
- that it would be as close as possible to Peter Fleury's original
- library, but has scoping issues accessing internal variables from
- another program. Go C!
-05/13/2009 Changed Interrupt Service Routine label from the old "SIGNAL" to
- the "ISR" format introduced in AVR-Libc v1.4.0.
-
-************************************************************************/
-
-#include <avr/io.h>
-#include <avr/interrupt.h>
-#include <avr/pgmspace.h>
-#include <util/atomic.h>
-#include "usart.h"
-
-/*
- * constants and macros
- */
-
-/* size of RX/TX buffers */
-#define UART_RX0_BUFFER_MASK (UART_RX0_BUFFER_SIZE - 1)
-#define UART_RX1_BUFFER_MASK (UART_RX1_BUFFER_SIZE - 1)
-#define UART_RX2_BUFFER_MASK (UART_RX2_BUFFER_SIZE - 1)
-#define UART_RX3_BUFFER_MASK (UART_RX3_BUFFER_SIZE - 1)
-
-#define UART_TX0_BUFFER_MASK (UART_TX0_BUFFER_SIZE - 1)
-#define UART_TX1_BUFFER_MASK (UART_TX1_BUFFER_SIZE - 1)
-#define UART_TX2_BUFFER_MASK (UART_TX2_BUFFER_SIZE - 1)
-#define UART_TX3_BUFFER_MASK (UART_TX3_BUFFER_SIZE - 1)
-
-#if (UART_RX0_BUFFER_SIZE & UART_RX0_BUFFER_MASK)
- #error RX0 buffer size is not a power of 2
-#endif
-#if (UART_TX0_BUFFER_SIZE & UART_TX0_BUFFER_MASK)
- #error TX0 buffer size is not a power of 2
-#endif
-
-#if (UART_RX1_BUFFER_SIZE & UART_RX1_BUFFER_MASK)
- #error RX1 buffer size is not a power of 2
-#endif
-#if (UART_TX1_BUFFER_SIZE & UART_TX1_BUFFER_MASK)
- #error TX1 buffer size is not a power of 2
-#endif
-
-#if (UART_RX2_BUFFER_SIZE & UART_RX2_BUFFER_MASK)
- #error RX2 buffer size is not a power of 2
-#endif
-#if (UART_TX2_BUFFER_SIZE & UART_TX2_BUFFER_MASK)
- #error TX2 buffer size is not a power of 2
-#endif
-
-#if (UART_RX3_BUFFER_SIZE & UART_RX3_BUFFER_MASK)
- #error RX3 buffer size is not a power of 2
-#endif
-#if (UART_TX3_BUFFER_SIZE & UART_TX3_BUFFER_MASK)
- #error TX3 buffer size is not a power of 2
-#endif
-
-#if defined(__AVR_AT90S2313__) \
- || defined(__AVR_AT90S4414__) || defined(__AVR_AT90S4434__) \
- || defined(__AVR_AT90S8515__) || defined(__AVR_AT90S8535__) \
- || defined(__AVR_ATmega103__)
- /* old AVR classic or ATmega103 with one UART */
- #define AT90_UART
- #define UART0_RECEIVE_INTERRUPT UART_RX_vect
- #define UART0_TRANSMIT_INTERRUPT UART_UDRE_vect
- #define UART0_STATUS USR
- #define UART0_CONTROL UCR
- #define UART0_DATA UDR
- #define UART0_UDRIE UDRIE
-#elif defined(__AVR_AT90S2333__) || defined(__AVR_AT90S4433__)
- /* old AVR classic with one UART */
- #define AT90_UART
- #define UART0_RECEIVE_INTERRUPT UART_RX_vect
- #define UART0_TRANSMIT_INTERRUPT UART_UDRE_vect
- #define UART0_STATUS UCSRA
- #define UART0_CONTROL UCSRB
- #define UART0_DATA UDR
- #define UART0_UDRIE UDRIE
-#elif defined(__AVR_ATmega8__) || defined(__AVR_ATmega16__) || defined(__AVR_ATmega32__) \
- || defined(__AVR_ATmega323__)
- /* ATmega with one USART */
- #define ATMEGA_USART
- #define UART0_RECEIVE_INTERRUPT USART_RXC_vect
- #define UART0_TRANSMIT_INTERRUPT USART_UDRE_vect
- #define UART0_STATUS UCSRA
- #define UART0_CONTROL UCSRB
- #define UART0_DATA UDR
- #define UART0_UDRIE UDRIE
-#elif defined(__AVR_ATmega8U2__) || defined(__AVR_ATmega16U2__) || defined(__AVR_ATmega16U4__) || \
- defined(__AVR_ATmega32U2__) || defined(__AVR_ATmega32U4__) || defined(__AVR_ATmega32U6__)
- /* ATmega with one USART, but is called USART1 (untested) */
- #define ATMEGA_USART1
- #define UART1_RECEIVE_INTERRUPT USART1_RX_vect
- #define UART1_TRANSMIT_INTERRUPT USART1_UDRE_vect
- #define UART1_STATUS UCSR1A
- #define UART1_CONTROL UCSR1B
- #define UART1_DATA UDR1
- #define UART1_UDRIE UDRIE1
-#elif defined(__AVR_ATmega8515__) || defined(__AVR_ATmega8535__)
- /* ATmega with one USART */
- #define ATMEGA_USART
- #define UART0_RECEIVE_INTERRUPT USART_RX_vect
- #define UART0_TRANSMIT_INTERRUPT USART_UDRE_vect
- #define UART0_STATUS UCSRA
- #define UART0_CONTROL UCSRB
- #define UART0_DATA UDR
- #define UART0_UDRIE UDRIE
-#elif defined(__AVR_ATmega163__)
- /* ATmega163 with one UART */
- #define ATMEGA_UART
- #define UART0_RECEIVE_INTERRUPT UART_RX_vect
- #define UART0_TRANSMIT_INTERRUPT UART_UDRE_vect
- #define UART0_STATUS UCSRA
- #define UART0_CONTROL UCSRB
- #define UART0_DATA UDR
- #define UART0_UDRIE UDRIE
-#elif defined(__AVR_ATmega162__)
- /* ATmega with two USART */
- #define ATMEGA_USART0
- #define ATMEGA_USART1
- #define UART0_RECEIVE_INTERRUPT USART0_RXC_vect
- #define UART1_RECEIVE_INTERRUPT USART1_RXC_vect
- #define UART0_TRANSMIT_INTERRUPT USART0_UDRE_vect
- #define UART1_TRANSMIT_INTERRUPT USART1_UDRE_vect
- #define UART0_STATUS UCSR0A
- #define UART0_CONTROL UCSR0B
- #define UART0_DATA UDR0
- #define UART0_UDRIE UDRIE0
- #define UART1_STATUS UCSR1A
- #define UART1_CONTROL UCSR1B
- #define UART1_DATA UDR1
- #define UART1_UDRIE UDRIE1
-#elif defined(__AVR_ATmega64__) || defined(__AVR_ATmega128__)
- /* ATmega with two USART */
- #define ATMEGA_USART0
- #define ATMEGA_USART1
- #define UART0_RECEIVE_INTERRUPT USART0_RX_vect
- #define UART1_RECEIVE_INTERRUPT USART1_RX_vect
- #define UART0_TRANSMIT_INTERRUPT USART0_UDRE_vect
- #define UART1_TRANSMIT_INTERRUPT USART1_UDRE_vect
- #define UART0_STATUS UCSR0A
- #define UART0_CONTROL UCSR0B
- #define UART0_DATA UDR0
- #define UART0_UDRIE UDRIE0
- #define UART1_STATUS UCSR1A
- #define UART1_CONTROL UCSR1B
- #define UART1_DATA UDR1
- #define UART1_UDRIE UDRIE1
-#elif defined(__AVR_ATmega161__)
- /* ATmega with UART */
- #error "AVR ATmega161 currently not supported by this libaray !"
-#elif defined(__AVR_ATmega169__)
- /* ATmega with one USART */
- #define ATMEGA_USART
- #define UART0_RECEIVE_INTERRUPT USART0_RX_vect
- #define UART0_TRANSMIT_INTERRUPT USART0_UDRE_vect
- #define UART0_STATUS UCSRA
- #define UART0_CONTROL UCSRB
- #define UART0_DATA UDR
- #define UART0_UDRIE UDRIE
-#elif defined(__AVR_ATmega48__) ||defined(__AVR_ATmega88__) || defined(__AVR_ATmega168__) || \
- defined(__AVR_ATmega48P__) ||defined(__AVR_ATmega88P__) || defined(__AVR_ATmega168P__) || \
- defined(__AVR_ATmega328P__)
- /* TLS-Added 48P/88P/168P/328P */
- /* ATmega with one USART */
- #define ATMEGA_USART0
- #define UART0_RECEIVE_INTERRUPT USART_RX_vect
- #define UART0_TRANSMIT_INTERRUPT USART_UDRE_vect
- #define UART0_STATUS UCSR0A
- #define UART0_CONTROL UCSR0B
- #define UART0_DATA UDR0
- #define UART0_UDRIE UDRIE0
-#elif defined(__AVR_ATtiny2313__) || defined(__AVR_ATtiny2313A__) || defined(__AVR_ATtiny4313__)
- #define ATMEGA_USART
- #define UART0_RECEIVE_INTERRUPT USART_RX_vect
- #define UART0_TRANSMIT_INTERRUPT USART_UDRE_vect
- #define UART0_STATUS UCSRA
- #define UART0_CONTROL UCSRB
- #define UART0_DATA UDR
- #define UART0_UDRIE UDRIE
-#elif defined(__AVR_ATmega329__) ||\
- defined(__AVR_ATmega649__) ||\
- defined(__AVR_ATmega325__) ||defined(__AVR_ATmega3250__) ||\
- defined(__AVR_ATmega645__) ||defined(__AVR_ATmega6450__)
- /* ATmega with one USART */
- #define ATMEGA_USART0
- #define UART0_RECEIVE_INTERRUPT USART0_RX_vect
- #define UART0_TRANSMIT_INTERRUPT USART0_UDRE_vect
- #define UART0_STATUS UCSR0A
- #define UART0_CONTROL UCSR0B
- #define UART0_DATA UDR0
- #define UART0_UDRIE UDRIE0
-#elif defined(__AVR_ATmega3290__) ||\
- defined(__AVR_ATmega6490__)
- /* TLS-Separated these two from the previous group because of inconsistency in the USART_RX */
- /* ATmega with one USART */
- #define ATMEGA_USART0
- #define UART0_RECEIVE_INTERRUPT USART_RX_vect
- #define UART0_TRANSMIT_INTERRUPT USART0_UDRE_vect
- #define UART0_STATUS UCSR0A
- #define UART0_CONTROL UCSR0B
- #define UART0_DATA UDR0
- #define UART0_UDRIE UDRIE0
-#elif defined(__AVR_ATmega2560__) || defined(__AVR_ATmega1280__) || defined(__AVR_ATmega640__)
- /* ATmega with four USART */
- #define ATMEGA_USART0
- #define ATMEGA_USART1
- #define ATMEGA_USART2
- #define ATMEGA_USART3
- #define UART0_RECEIVE_INTERRUPT USART0_RX_vect
- #define UART1_RECEIVE_INTERRUPT USART1_RX_vect
- #define UART2_RECEIVE_INTERRUPT USART2_RX_vect
- #define UART3_RECEIVE_INTERRUPT USART3_RX_vect
- #define UART0_TRANSMIT_INTERRUPT USART0_UDRE_vect
- #define UART1_TRANSMIT_INTERRUPT USART1_UDRE_vect
- #define UART2_TRANSMIT_INTERRUPT USART2_UDRE_vect
- #define UART3_TRANSMIT_INTERRUPT USART3_UDRE_vect
- #define UART0_STATUS UCSR0A
- #define UART0_CONTROL UCSR0B
- #define UART0_DATA UDR0
- #define UART0_UDRIE UDRIE0
- #define UART1_STATUS UCSR1A
- #define UART1_CONTROL UCSR1B
- #define UART1_DATA UDR1
- #define UART1_UDRIE UDRIE1
- #define UART2_STATUS UCSR2A
- #define UART2_CONTROL UCSR2B
- #define UART2_DATA UDR2
- #define UART2_UDRIE UDRIE2
- #define UART3_STATUS UCSR3A
- #define UART3_CONTROL UCSR3B
- #define UART3_DATA UDR3
- #define UART3_UDRIE UDRIE3
-#elif defined(__AVR_ATmega644__)
- /* ATmega with one USART */
- #define ATMEGA_USART0
- #define UART0_RECEIVE_INTERRUPT USART0_RX_vect
- #define UART0_TRANSMIT_INTERRUPT USART0_UDRE_vect
- #define UART0_STATUS UCSR0A
- #define UART0_CONTROL UCSR0B
- #define UART0_DATA UDR0
- #define UART0_UDRIE UDRIE0
-#elif defined(__AVR_ATmega164P__) || defined(__AVR_ATmega324P__) || defined(__AVR_ATmega644P__) || \
- defined(__AVR_ATmega1284P__)
- /* ATmega with two USART */
- #define ATMEGA_USART0
- #define ATMEGA_USART1
- #define UART0_RECEIVE_INTERRUPT USART0_RX_vect
- #define UART1_RECEIVE_INTERRUPT USART1_RX_vect
- #define UART0_TRANSMIT_INTERRUPT USART0_UDRE_vect
- #define UART1_TRANSMIT_INTERRUPT USART1_UDRE_vect
- #define UART0_STATUS UCSR0A
- #define UART0_CONTROL UCSR0B
- #define UART0_DATA UDR0
- #define UART0_UDRIE UDRIE0
- #define UART1_STATUS UCSR1A
- #define UART1_CONTROL UCSR1B
- #define UART1_DATA UDR1
- #define UART1_UDRIE UDRIE1
-#else
- #error "no UART definition for MCU available"
-#endif
-
-/*
- * Module global variables
- */
-
-#if defined(USART0_ENABLED)
- #if defined(ATMEGA_USART) || defined(ATMEGA_USART0)
- static volatile uint8_t UART_TxBuf[UART_TX0_BUFFER_SIZE];
- static volatile uint8_t UART_RxBuf[UART_RX0_BUFFER_SIZE];
-
- #if defined(USART0_LARGE_BUFFER)
- static volatile uint16_t UART_TxHead;
- static volatile uint16_t UART_TxTail;
- static volatile uint16_t UART_RxHead;
- static volatile uint16_t UART_RxTail;
- static volatile uint8_t UART_LastRxError;
- #else
- static volatile uint8_t UART_TxHead;
- static volatile uint8_t UART_TxTail;
- static volatile uint8_t UART_RxHead;
- static volatile uint8_t UART_RxTail;
- static volatile uint8_t UART_LastRxError;
- #endif
-
- #endif
-#endif
-
-#if defined(USART1_ENABLED)
- #if defined(ATMEGA_USART1)
- static volatile uint8_t UART1_TxBuf[UART_TX1_BUFFER_SIZE];
- static volatile uint8_t UART1_RxBuf[UART_RX1_BUFFER_SIZE];
-
- #if defined(USART1_LARGE_BUFFER)
- static volatile uint16_t UART1_TxHead;
- static volatile uint16_t UART1_TxTail;
- static volatile uint16_t UART1_RxHead;
- static volatile uint16_t UART1_RxTail;
- static volatile uint8_t UART1_LastRxError;
- #else
- static volatile uint8_t UART1_TxHead;
- static volatile uint8_t UART1_TxTail;
- static volatile uint8_t UART1_RxHead;
- static volatile uint8_t UART1_RxTail;
- static volatile uint8_t UART1_LastRxError;
- #endif
- #endif
-#endif
-
-#if defined(USART2_ENABLED)
- #if defined(ATMEGA_USART2)
- static volatile uint8_t UART2_TxBuf[UART_TX2_BUFFER_SIZE];
- static volatile uint8_t UART2_RxBuf[UART_RX2_BUFFER_SIZE];
-
- #if defined(USART2_LARGE_BUFFER)
- static volatile uint16_t UART2_TxHead;
- static volatile uint16_t UART2_TxTail;
- static volatile uint16_t UART2_RxHead;
- static volatile uint16_t UART2_RxTail;
- static volatile uint8_t UART2_LastRxError;
- #else
- static volatile uint8_t UART2_TxHead;
- static volatile uint8_t UART2_TxTail;
- static volatile uint8_t UART2_RxHead;
- static volatile uint8_t UART2_RxTail;
- static volatile uint8_t UART2_LastRxError;
- #endif
- #endif
-#endif
-
-#if defined(USART3_ENABLED)
- #if defined(ATMEGA_USART3)
- static volatile uint8_t UART3_TxBuf[UART_TX3_BUFFER_SIZE];
- static volatile uint8_t UART3_RxBuf[UART_RX3_BUFFER_SIZE];
-
- #if defined(USART3_LARGE_BUFFER)
- static volatile uint16_t UART3_TxHead;
- static volatile uint16_t UART3_TxTail;
- static volatile uint16_t UART3_RxHead;
- static volatile uint16_t UART3_RxTail;
- static volatile uint8_t UART3_LastRxError;
- #else
- static volatile uint8_t UART3_TxHead;
- static volatile uint8_t UART3_TxTail;
- static volatile uint8_t UART3_RxHead;
- static volatile uint8_t UART3_RxTail;
- static volatile uint8_t UART3_LastRxError;
- #endif
-
- #endif
-#endif
-
-#if defined(USART0_ENABLED)
-
-#if defined(AT90_UART) || defined(ATMEGA_USART) || defined(ATMEGA_USART0)
-
-ISR(UART0_RECEIVE_INTERRUPT)
-/*************************************************************************
-Function: UART Receive Complete interrupt
-Purpose: called when the UART has received a character
-**************************************************************************/
-{
- uint16_t tmphead;
- uint8_t data;
- uint8_t usr;
- uint8_t lastRxError;
-
- /* read UART status register and UART data register */
- usr = UART0_STATUS;
- data = UART0_DATA;
-
- /* */
-#if defined(AT90_UART)
- lastRxError = (usr & (_BV(FE)|_BV(DOR)));
-#elif defined(ATMEGA_USART)
- lastRxError = (usr & (_BV(FE)|_BV(DOR)));
-#elif defined(ATMEGA_USART0)
- lastRxError = (usr & (_BV(FE0)|_BV(DOR0)));
-#elif defined (ATMEGA_UART)
- lastRxError = (usr & (_BV(FE)|_BV(DOR)));
-#endif
-
- /* calculate buffer index */
- tmphead = (UART_RxHead + 1) & UART_RX0_BUFFER_MASK;
-
- if (tmphead == UART_RxTail) {
- /* error: receive buffer overflow */
- lastRxError = UART_BUFFER_OVERFLOW >> 8;
- } else {
- /* store new index */
- UART_RxHead = tmphead;
- /* store received data in buffer */
- UART_RxBuf[tmphead] = data;
- }
- UART_LastRxError = lastRxError;
-}
-
-
-ISR(UART0_TRANSMIT_INTERRUPT)
-/*************************************************************************
-Function: UART Data Register Empty interrupt
-Purpose: called when the UART is ready to transmit the next byte
-**************************************************************************/
-{
- uint16_t tmptail;
-
- if (UART_TxHead != UART_TxTail) {
- /* calculate and store new buffer index */
- tmptail = (UART_TxTail + 1) & UART_TX0_BUFFER_MASK;
- UART_TxTail = tmptail;
- /* get one byte from buffer and write it to UART */
- UART0_DATA = UART_TxBuf[tmptail]; /* start transmission */
- } else {
- /* tx buffer empty, disable UDRE interrupt */
- UART0_CONTROL &= ~_BV(UART0_UDRIE);
- }
-}
-
-
-/*************************************************************************
-Function: uart0_init()
-Purpose: initialize UART and set baudrate
-Input: baudrate using macro UART_BAUD_SELECT()
-Returns: none
-**************************************************************************/
-void uart0_init(uint16_t baudrate)
-{
- ATOMIC_BLOCK(ATOMIC_FORCEON) {
- UART_TxHead = 0;
- UART_TxTail = 0;
- UART_RxHead = 0;
- UART_RxTail = 0;
- }
-
-#if defined(AT90_UART)
- /* set baud rate */
- UBRR = (uint8_t) baudrate;
-
- /* enable UART receiver and transmitter and receive complete interrupt */
- UART0_CONTROL = _BV(RXCIE)|_BV(RXEN)|_BV(TXEN);
-
-#elif defined (ATMEGA_USART)
- /* Set baud rate */
- if (baudrate & 0x8000) {
- UART0_STATUS = (1<<U2X); //Enable 2x speed
- baudrate &= ~0x8000;
- }
- UBRRH = (uint8_t) (baudrate>>8);
- UBRRL = (uint8_t) baudrate;
-
- /* Enable USART receiver and transmitter and receive complete interrupt */
- UART0_CONTROL = _BV(RXCIE)|(1<<RXEN)|(1<<TXEN);
-
- /* Set frame format: asynchronous, 8data, no parity, 1stop bit */
-#ifdef URSEL
- UCSRC = (1<<URSEL)|(3<<UCSZ0);
-#else
- UCSRC = (3<<UCSZ0);
-#endif
-
-#elif defined (ATMEGA_USART0)
- /* Set baud rate */
- if (baudrate & 0x8000) {
- UART0_STATUS = (1<<U2X0); //Enable 2x speed
- baudrate &= ~0x8000;
- }
- UBRR0H = (uint8_t)(baudrate>>8);
- UBRR0L = (uint8_t) baudrate;
-
- /* Enable USART receiver and transmitter and receive complete interrupt */
- UART0_CONTROL = _BV(RXCIE0)|(1<<RXEN0)|(1<<TXEN0);
-
- /* Set frame format: asynchronous, 8data, no parity, 1stop bit */
-#ifdef URSEL0
- UCSR0C = (1<<URSEL0)|(3<<UCSZ00);
-#else
- UCSR0C = (3<<UCSZ00);
-#endif
-
-#elif defined (ATMEGA_UART)
- /* set baud rate */
- if (baudrate & 0x8000) {
- UART0_STATUS = (1<<U2X); //Enable 2x speed
- baudrate &= ~0x8000;
- }
- UBRRHI = (uint8_t) (baudrate>>8);
- UBRR = (uint8_t) baudrate;
-
- /* Enable UART receiver and transmitter and receive complete interrupt */
- UART0_CONTROL = _BV(RXCIE)|(1<<RXEN)|(1<<TXEN);
-
-#endif
-
-} /* uart0_init */
-
-
-/*************************************************************************
-Function: uart0_getc()
-Purpose: return byte from ringbuffer
-Returns: lower byte: received byte from ringbuffer
- higher byte: last receive error
-**************************************************************************/
-uint16_t uart0_getc(void)
-{
- uint16_t tmptail;
- uint8_t data;
-
- ATOMIC_BLOCK(ATOMIC_FORCEON) {
- if (UART_RxHead == UART_RxTail) {
- return UART_NO_DATA; /* no data available */
- }
- }
-
- /* calculate / store buffer index */
- tmptail = (UART_RxTail + 1) & UART_RX0_BUFFER_MASK;
-
- UART_RxTail = tmptail;
-
- /* get data from receive buffer */
- data = UART_RxBuf[tmptail];
-
- return (UART_LastRxError << 8) + data;
-
-} /* uart0_getc */
-
-/*************************************************************************
-Function: uart0_peek()
-Purpose: Returns the next byte (character) of incoming UART data without
- removing it from the ring buffer. That is, successive calls to
- uartN_peek() will return the same character, as will the next
- call to uartN_getc()
-Returns: lower byte: next byte in ring buffer
- higher byte: last receive error
-**************************************************************************/
-uint16_t uart0_peek(void)
-{
- uint16_t tmptail;
- uint8_t data;
-
- ATOMIC_BLOCK(ATOMIC_FORCEON) {
- if (UART_RxHead == UART_RxTail) {
- return UART_NO_DATA; /* no data available */
- }
- }
-
- tmptail = (UART_RxTail + 1) & UART_RX0_BUFFER_MASK;
-
- /* get data from receive buffer */
- data = UART_RxBuf[tmptail];
-
- return (UART_LastRxError << 8) + data;
-
-} /* uart0_peek */
-
-/*************************************************************************
-Function: uart0_putc()
-Purpose: write byte to ringbuffer for transmitting via UART
-Input: byte to be transmitted
-Returns: none
-**************************************************************************/
-void uart0_putc(uint8_t data)
-{
-
-#ifdef USART0_LARGE_BUFFER
- uint16_t tmphead;
- uint16_t txtail_tmp;
-
- tmphead = (UART_TxHead + 1) & UART_TX0_BUFFER_MASK;
-
- do {
- ATOMIC_BLOCK(ATOMIC_FORCEON) {
- txtail_tmp = UART_TxTail;
- }
- } while (tmphead == txtail_tmp); /* wait for free space in buffer */
-#else
- uint16_t tmphead;
-
- tmphead = (UART_TxHead + 1) & UART_TX0_BUFFER_MASK;
-
- while (tmphead == UART_TxTail); /* wait for free space in buffer */
-#endif
-
- UART_TxBuf[tmphead] = data;
- UART_TxHead = tmphead;
-
- /* enable UDRE interrupt */
- UART0_CONTROL |= _BV(UART0_UDRIE);
-
-} /* uart0_putc */
-
-
-/*************************************************************************
-Function: uart0_puts()
-Purpose: transmit string to UART
-Input: string to be transmitted
-Returns: none
-**************************************************************************/
-void uart0_puts(const char *s)
-{
- while (*s) {
- uart0_putc(*s++);
- }
-
-} /* uart0_puts */
-
-
-/*************************************************************************
-Function: uart0_puts_p()
-Purpose: transmit string from program memory to UART
-Input: program memory string to be transmitted
-Returns: none
-**************************************************************************/
-void uart0_puts_p(const char *progmem_s)
-{
- register char c;
-
- while ((c = pgm_read_byte(progmem_s++))) {
- uart0_putc(c);
- }
-
-} /* uart0_puts_p */
-
-
-
-/*************************************************************************
-Function: uart0_available()
-Purpose: Determine the number of bytes waiting in the receive buffer
-Input: None
-Returns: Integer number of bytes in the receive buffer
-**************************************************************************/
-uint16_t uart0_available(void)
-{
- uint16_t ret;
-
- ATOMIC_BLOCK(ATOMIC_FORCEON) {
- ret = (UART_RX0_BUFFER_SIZE + UART_RxHead - UART_RxTail) & UART_RX0_BUFFER_MASK;
- }
- return ret;
-} /* uart0_available */
-
-/*************************************************************************
-Function: uart0_flush()
-Purpose: Flush bytes waiting the receive buffer. Actually ignores them.
-Input: None
-Returns: None
-**************************************************************************/
-void uart0_flush(void)
-{
- ATOMIC_BLOCK(ATOMIC_FORCEON) {
- UART_RxHead = UART_RxTail;
- }
-} /* uart0_flush */
-
-#endif
-
-#endif /* defined(USART0_ENABLED) */
-
-#if defined(USART1_ENABLED)
-
-/*
- * these functions are only for ATmegas with two USART
- */
-#if defined(ATMEGA_USART1)
-
-ISR(UART1_RECEIVE_INTERRUPT)
-/*************************************************************************
-Function: UART1 Receive Complete interrupt
-Purpose: called when the UART1 has received a character
-**************************************************************************/
-{
- uint16_t tmphead;
- uint8_t data;
- uint8_t usr;
- uint8_t lastRxError;
-
- /* read UART status register and UART data register */
- usr = UART1_STATUS;
- data = UART1_DATA;
-
- /* */
- lastRxError = (usr & (_BV(FE1)|_BV(DOR1)));
-
- /* calculate buffer index */
- tmphead = (UART1_RxHead + 1) & UART_RX1_BUFFER_MASK;
-
- if (tmphead == UART1_RxTail) {
- /* error: receive buffer overflow */
- lastRxError = UART_BUFFER_OVERFLOW >> 8;
- } else {
- /* store new index */
- UART1_RxHead = tmphead;
- /* store received data in buffer */
- UART1_RxBuf[tmphead] = data;
- }
- UART1_LastRxError = lastRxError;
-}
-
-
-ISR(UART1_TRANSMIT_INTERRUPT)
-/*************************************************************************
-Function: UART1 Data Register Empty interrupt
-Purpose: called when the UART1 is ready to transmit the next byte
-**************************************************************************/
-{
- uint16_t tmptail;
-
- if (UART1_TxHead != UART1_TxTail) {
- /* calculate and store new buffer index */
- tmptail = (UART1_TxTail + 1) & UART_TX1_BUFFER_MASK;
- UART1_TxTail = tmptail;
- /* get one byte from buffer and write it to UART */
- UART1_DATA = UART1_TxBuf[tmptail]; /* start transmission */
- } else {
- /* tx buffer empty, disable UDRE interrupt */
- UART1_CONTROL &= ~_BV(UART1_UDRIE);
- }
-}
-
-
-/*************************************************************************
-Function: uart1_init()
-Purpose: initialize UART1 and set baudrate
-Input: baudrate using macro UART_BAUD_SELECT()
-Returns: none
-**************************************************************************/
-void uart1_init(uint16_t baudrate)
-{
- ATOMIC_BLOCK(ATOMIC_FORCEON) {
- UART1_TxHead = 0;
- UART1_TxTail = 0;
- UART1_RxHead = 0;
- UART1_RxTail = 0;
- }
-
- /* Set baud rate */
- if (baudrate & 0x8000) {
- UART1_STATUS = (1<<U2X1); //Enable 2x speed
- baudrate &= ~0x8000;
- }
- UBRR1H = (uint8_t) (baudrate>>8);
- UBRR1L = (uint8_t) baudrate;
-
- /* Enable USART receiver and transmitter and receive complete interrupt */
- UART1_CONTROL = _BV(RXCIE1)|(1<<RXEN1)|(1<<TXEN1);
-
- /* Set frame format: asynchronous, 8data, no parity, 1stop bit */
-#ifdef URSEL1
- UCSR1C = (1<<URSEL1)|(3<<UCSZ10);
-#else
- UCSR1C = (3<<UCSZ10);
-#endif
-} /* uart_init */
-
-
-/*************************************************************************
-Function: uart1_getc()
-Purpose: return byte from ringbuffer
-Returns: lower byte: received byte from ringbuffer
- higher byte: last receive error
-**************************************************************************/
-uint16_t uart1_getc(void)
-{
- uint16_t tmptail;
- uint8_t data;
-
- ATOMIC_BLOCK(ATOMIC_FORCEON) {
- if (UART1_RxHead == UART1_RxTail) {
- return UART_NO_DATA; /* no data available */
- }
-
- /* calculate / store buffer index */
- tmptail = (UART1_RxTail + 1) & UART_RX1_BUFFER_MASK;
- UART1_RxTail = tmptail;
- }
-
- /* get data from receive buffer */
- data = UART1_RxBuf[tmptail];
-
- return (UART1_LastRxError << 8) + data;
-
-} /* uart1_getc */
-
-/*************************************************************************
-Function: uart1_peek()
-Purpose: Returns the next byte (character) of incoming UART data without
- removing it from the ring buffer. That is, successive calls to
- uartN_peek() will return the same character, as will the next
- call to uartN_getc()
-Returns: lower byte: next byte in ring buffer
- higher byte: last receive error
-**************************************************************************/
-uint16_t uart1_peek(void)
-{
- uint16_t tmptail;
- uint8_t data;
-
- ATOMIC_BLOCK(ATOMIC_FORCEON) {
- if (UART1_RxHead == UART1_RxTail) {
- return UART_NO_DATA; /* no data available */
- }
- }
-
- tmptail = (UART1_RxTail + 1) & UART_RX1_BUFFER_MASK;
-
- /* get data from receive buffer */
- data = UART1_RxBuf[tmptail];
-
- return (UART1_LastRxError << 8) + data;
-
-} /* uart1_peek */
-
-/*************************************************************************
-Function: uart1_putc()
-Purpose: write byte to ringbuffer for transmitting via UART
-Input: byte to be transmitted
-Returns: none
-**************************************************************************/
-void uart1_putc(uint8_t data)
-{
-
-#ifdef USART1_LARGE_BUFFER
- uint16_t tmphead;
- uint16_t txtail_tmp;
-
- tmphead = (UART1_TxHead + 1) & UART_TX1_BUFFER_MASK;
-
- do {
- ATOMIC_BLOCK(ATOMIC_FORCEON) {
- txtail_tmp = UART1_TxTail;
- }
- } while (tmphead == txtail_tmp); /* wait for free space in buffer */
-#else
- uint16_t tmphead;
-
- tmphead = (UART1_TxHead + 1) & UART_TX1_BUFFER_MASK;
-
- while (tmphead == UART1_TxTail); /* wait for free space in buffer */
-#endif
-
- UART1_TxBuf[tmphead] = data;
- UART1_TxHead = tmphead;
-
- /* enable UDRE interrupt */
- UART1_CONTROL |= _BV(UART1_UDRIE);
-
-} /* uart1_putc */
-
-
-/*************************************************************************
-Function: uart1_puts()
-Purpose: transmit string to UART1
-Input: string to be transmitted
-Returns: none
-**************************************************************************/
-void uart1_puts(const char *s)
-{
- while (*s) {
- uart1_putc(*s++);
- }
-
-} /* uart1_puts */
-
-
-/*************************************************************************
-Function: uart1_puts_p()
-Purpose: transmit string from program memory to UART1
-Input: program memory string to be transmitted
-Returns: none
-**************************************************************************/
-void uart1_puts_p(const char *progmem_s)
-{
- register char c;
-
- while ((c = pgm_read_byte(progmem_s++))) {
- uart1_putc(c);
- }
-
-} /* uart1_puts_p */
-
-
-
-/*************************************************************************
-Function: uart1_available()
-Purpose: Determine the number of bytes waiting in the receive buffer
-Input: None
-Returns: Integer number of bytes in the receive buffer
-**************************************************************************/
-uint16_t uart1_available(void)
-{
- uint16_t ret;
-
- ATOMIC_BLOCK(ATOMIC_FORCEON) {
- ret = (UART_RX1_BUFFER_SIZE + UART1_RxHead - UART1_RxTail) & UART_RX1_BUFFER_MASK;
- }
- return ret;
-} /* uart1_available */
-
-
-
-/*************************************************************************
-Function: uart1_flush()
-Purpose: Flush bytes waiting the receive buffer. Actually ignores them.
-Input: None
-Returns: None
-**************************************************************************/
-void uart1_flush(void)
-{
- ATOMIC_BLOCK(ATOMIC_FORCEON) {
- UART1_RxHead = UART1_RxTail;
- }
-} /* uart1_flush */
-
-#endif
-
-#endif /* defined(USART1_ENABLED) */
-
-#if defined(USART2_ENABLED)
-
-/*
- * these functions are only for ATmegas with four USART
- */
-#if defined(ATMEGA_USART2)
-
-ISR(UART2_RECEIVE_INTERRUPT)
-/*************************************************************************
-Function: UART2 Receive Complete interrupt
-Purpose: called when the UART2 has received a character
-**************************************************************************/
-{
- uint16_t tmphead;
- uint8_t data;
- uint8_t usr;
- uint8_t lastRxError;
-
-
- /* read UART status register and UART data register */
- usr = UART2_STATUS;
- data = UART2_DATA;
-
- /* */
- lastRxError = (usr & (_BV(FE2)|_BV(DOR2)));
-
- /* calculate buffer index */
- tmphead = (UART2_RxHead + 1) & UART_RX2_BUFFER_MASK;
-
- if (tmphead == UART2_RxTail) {
- /* error: receive buffer overflow */
- lastRxError = UART_BUFFER_OVERFLOW >> 8;
- } else {
- /* store new index */
- UART2_RxHead = tmphead;
- /* store received data in buffer */
- UART2_RxBuf[tmphead] = data;
- }
- UART2_LastRxError = lastRxError;
-}
-
-
-ISR(UART2_TRANSMIT_INTERRUPT)
-/*************************************************************************
-Function: UART2 Data Register Empty interrupt
-Purpose: called when the UART2 is ready to transmit the next byte
-**************************************************************************/
-{
- uint16_t tmptail;
-
-
- if (UART2_TxHead != UART2_TxTail) {
- /* calculate and store new buffer index */
- tmptail = (UART2_TxTail + 1) & UART_TX2_BUFFER_MASK;
- UART2_TxTail = tmptail;
- /* get one byte from buffer and write it to UART */
- UART2_DATA = UART2_TxBuf[tmptail]; /* start transmission */
- } else {
- /* tx buffer empty, disable UDRE interrupt */
- UART2_CONTROL &= ~_BV(UART2_UDRIE);
- }
-}
-
-
-/*************************************************************************
-Function: uart2_init()
-Purpose: initialize UART2 and set baudrate
-Input: baudrate using macro UART_BAUD_SELECT()
-Returns: none
-**************************************************************************/
-void uart2_init(uint16_t baudrate)
-{
- ATOMIC_BLOCK(ATOMIC_FORCEON) {
- UART2_TxHead = 0;
- UART2_TxTail = 0;
- UART2_RxHead = 0;
- UART2_RxTail = 0;
- }
-
- /* Set baud rate */
- if (baudrate & 0x8000) {
- UART2_STATUS = (1<<U2X2); //Enable 2x speed
- baudrate &= ~0x8000;
- }
- UBRR2H = (uint8_t) (baudrate>>8);
- UBRR2L = (uint8_t) baudrate;
-
- /* Enable USART receiver and transmitter and receive complete interrupt */
- UART2_CONTROL = _BV(RXCIE2)|(1<<RXEN2)|(1<<TXEN2);
-
- /* Set frame format: asynchronous, 8data, no parity, 1stop bit */
-#ifdef URSEL2
- UCSR2C = (1<<URSEL2)|(3<<UCSZ20);
-#else
- UCSR2C = (3<<UCSZ20);
-#endif
-} /* uart_init */
-
-
-/*************************************************************************
-Function: uart2_getc()
-Purpose: return byte from ringbuffer
-Returns: lower byte: received byte from ringbuffer
- higher byte: last receive error
-**************************************************************************/
-uint16_t uart2_getc(void)
-{
- uint16_t tmptail;
- uint8_t data;
-
- ATOMIC_BLOCK(ATOMIC_FORCEON) {
- if (UART2_RxHead == UART2_RxTail) {
- return UART_NO_DATA; /* no data available */
- }
- }
-
- /* calculate / store buffer index */
-
- tmptail = (UART2_RxTail + 1) & UART_RX2_BUFFER_MASK;
- UART2_RxTail = tmptail;
-
- /* get data from receive buffer */
- data = UART2_RxBuf[tmptail];
-
- return (UART2_LastRxError << 8) + data;
-
-} /* uart2_getc */
-
-/*************************************************************************
-Function: uart2_peek()
-Purpose: Returns the next byte (character) of incoming UART data without
- removing it from the ring buffer. That is, successive calls to
- uartN_peek() will return the same character, as will the next
- call to uartN_getc()
-Returns: lower byte: next byte in ring buffer
- higher byte: last receive error
-**************************************************************************/
-uint16_t uart2_peek(void)
-{
- uint16_t tmptail;
- uint8_t data;
-
- ATOMIC_BLOCK(ATOMIC_FORCEON) {
- if (UART2_RxHead == UART2_RxTail) {
- return UART_NO_DATA; /* no data available */
- }
- }
-
- tmptail = (UART2_RxTail + 1) & UART_RX2_BUFFER_MASK;
-
- /* get data from receive buffer */
- data = UART2_RxBuf[tmptail];
-
- return (UART2_LastRxError << 8) + data;
-
-} /* uart2_peek */
-
-/*************************************************************************
-Function: uart2_putc()
-Purpose: write byte to ringbuffer for transmitting via UART
-Input: byte to be transmitted
-Returns: none
-**************************************************************************/
-void uart2_putc(uint8_t data)
-{
-
-#ifdef USART2_LARGE_BUFFER
- uint16_t tmphead;
- uint16_t txtail_tmp;
-
- tmphead = (UART2_TxHead + 1) & UART_TX2_BUFFER_MASK;
-
- do {
- ATOMIC_BLOCK(ATOMIC_FORCEON) {
- txtail_tmp = UART2_TxTail;
- }
- } while (tmphead == txtail_tmp); /* wait for free space in buffer */
-#else
- uint16_t tmphead;
-
- tmphead = (UART2_TxHead + 1) & UART_TX2_BUFFER_MASK;
-
- while (tmphead == UART2_TxTail); /* wait for free space in buffer */
-#endif
-
- UART2_TxBuf[tmphead] = data;
- UART2_TxHead = tmphead;
-
- /* enable UDRE interrupt */
- UART2_CONTROL |= _BV(UART2_UDRIE);
-
-} /* uart2_putc */
-
-
-/*************************************************************************
-Function: uart2_puts()
-Purpose: transmit string to UART2
-Input: string to be transmitted
-Returns: none
-**************************************************************************/
-void uart2_puts(const char *s)
-{
- while (*s)
- uart2_putc(*s++);
-
-} /* uart2_puts */
-
-
-/*************************************************************************
-Function: uart2_puts_p()
-Purpose: transmit string from program memory to UART2
-Input: program memory string to be transmitted
-Returns: none
-**************************************************************************/
-void uart2_puts_p(const char *progmem_s)
-{
- register char c;
-
- while ((c = pgm_read_byte(progmem_s++))) {
- uart2_putc(c);
- }
-
-} /* uart2_puts_p */
-
-
-
-/*************************************************************************
-Function: uart2_available()
-Purpose: Determine the number of bytes waiting in the receive buffer
-Input: None
-Returns: Integer number of bytes in the receive buffer
-**************************************************************************/
-uint16_t uart2_available(void)
-{
- uint16_t ret;
-
- ATOMIC_BLOCK(ATOMIC_FORCEON) {
- ret = (UART_RX2_BUFFER_SIZE + UART2_RxHead - UART2_RxTail) & UART_RX2_BUFFER_MASK;
- }
- return ret;
-} /* uart2_available */
-
-
-
-/*************************************************************************
-Function: uart2_flush()
-Purpose: Flush bytes waiting the receive buffer. Actually ignores them.
-Input: None
-Returns: None
-**************************************************************************/
-void uart2_flush(void)
-{
- ATOMIC_BLOCK(ATOMIC_FORCEON) {
- UART2_RxHead = UART2_RxTail;
- }
-} /* uart2_flush */
-
-#endif
-
-#endif /* defined(USART2_ENABLED) */
-
-#if defined(USART3_ENABLED)
-
-/*
- * these functions are only for ATmegas with four USART
- */
-#if defined(ATMEGA_USART3)
-
-ISR(UART3_RECEIVE_INTERRUPT)
-/*************************************************************************
-Function: UART3 Receive Complete interrupt
-Purpose: called when the UART3 has received a character
-**************************************************************************/
-{
- uint16_t tmphead;
- uint8_t data;
- uint8_t usr;
- uint8_t lastRxError;
-
- /* read UART status register and UART data register */
- usr = UART3_STATUS;
- data = UART3_DATA;
-
- /* */
- lastRxError = (usr & (_BV(FE3)|_BV(DOR3)));
-
- /* calculate buffer index */
- tmphead = (UART3_RxHead + 1) & UART_RX3_BUFFER_MASK;
-
- if (tmphead == UART3_RxTail) {
- /* error: receive buffer overflow */
- lastRxError = UART_BUFFER_OVERFLOW >> 8;
- } else {
- /* store new index */
- UART3_RxHead = tmphead;
- /* store received data in buffer */
- UART3_RxBuf[tmphead] = data;
- }
- UART3_LastRxError = lastRxError;
-}
-
-
-ISR(UART3_TRANSMIT_INTERRUPT)
-/*************************************************************************
-Function: UART3 Data Register Empty interrupt
-Purpose: called when the UART3 is ready to transmit the next byte
-**************************************************************************/
-{
- uint16_t tmptail;
-
-
- if (UART3_TxHead != UART3_TxTail) {
- /* calculate and store new buffer index */
- tmptail = (UART3_TxTail + 1) & UART_TX3_BUFFER_MASK;
- UART3_TxTail = tmptail;
- /* get one byte from buffer and write it to UART */
- UART3_DATA = UART3_TxBuf[tmptail]; /* start transmission */
- } else {
- /* tx buffer empty, disable UDRE interrupt */
- UART3_CONTROL &= ~_BV(UART3_UDRIE);
- }
-}
-
-
-/*************************************************************************
-Function: uart3_init()
-Purpose: initialize UART3 and set baudrate
-Input: baudrate using macro UART_BAUD_SELECT()
-Returns: none
-**************************************************************************/
-void uart3_init(uint16_t baudrate)
-{
- ATOMIC_BLOCK(ATOMIC_FORCEON) {
- UART3_TxHead = 0;
- UART3_TxTail = 0;
- UART3_RxHead = 0;
- UART3_RxTail = 0;
- }
-
- /* Set baud rate */
- if (baudrate & 0x8000) {
- UART3_STATUS = (1<<U2X3); //Enable 2x speed
- baudrate &= ~0x8000;
- }
- UBRR3H = (uint8_t)(baudrate>>8);
- UBRR3L = (uint8_t) baudrate;
-
- /* Enable USART receiver and transmitter and receive complete interrupt */
- UART3_CONTROL = _BV(RXCIE3)|(1<<RXEN3)|(1<<TXEN3);
-
- /* Set frame format: asynchronous, 8data, no parity, 1stop bit */
-#ifdef URSEL3
- UCSR3C = (1<<URSEL3)|(3<<UCSZ30);
-#else
- UCSR3C = (3<<UCSZ30);
-#endif
-} /* uart_init */
-
-
-/*************************************************************************
-Function: uart3_getc()
-Purpose: return byte from ringbuffer
-Returns: lower byte: received byte from ringbuffer
- higher byte: last receive error
-**************************************************************************/
-uint16_t uart3_getc(void)
-{
- uint16_t tmptail;
- uint8_t data;
-
- ATOMIC_BLOCK(ATOMIC_FORCEON) {
- if (UART3_RxHead == UART3_RxTail) {
- return UART_NO_DATA; /* no data available */
- }
- }
-
- /* calculate / store buffer index */
- tmptail = (UART3_RxTail + 1) & UART_RX3_BUFFER_MASK;
- UART3_RxTail = tmptail;
-
- /* get data from receive buffer */
- data = UART3_RxBuf[tmptail];
-
- return (UART3_LastRxError << 8) + data;
-
-} /* uart3_getc */
-
-/*************************************************************************
-Function: uart3_peek()
-Purpose: Returns the next byte (character) of incoming UART data without
- removing it from the ring buffer. That is, successive calls to
- uartN_peek() will return the same character, as will the next
- call to uartN_getc()
-Returns: lower byte: next byte in ring buffer
- higher byte: last receive error
-**************************************************************************/
-uint16_t uart3_peek(void)
-{
- uint16_t tmptail;
- uint8_t data;
-
- ATOMIC_BLOCK(ATOMIC_FORCEON) {
- if (UART3_RxHead == UART3_RxTail) {
- return UART_NO_DATA; /* no data available */
- }
- }
-
- tmptail = (UART3_RxTail + 1) & UART_RX3_BUFFER_MASK;
-
- /* get data from receive buffer */
- data = UART3_RxBuf[tmptail];
-
- return (UART3_LastRxError << 8) + data;
-
-} /* uart3_peek */
-
-/*************************************************************************
-Function: uart3_putc()
-Purpose: write byte to ringbuffer for transmitting via UART
-Input: byte to be transmitted
-Returns: none
-**************************************************************************/
-void uart3_putc(uint8_t data)
-{
-
-#ifdef USART3_LARGE_BUFFER
- uint16_t tmphead;
- uint16_t txtail_tmp;
-
- tmphead = (UART3_TxHead + 1) & UART_TX3_BUFFER_MASK;
-
- do {
- ATOMIC_BLOCK(ATOMIC_FORCEON) {
- txtail_tmp = UART3_TxTail;
- }
- } while (tmphead == txtail_tmp); /* wait for free space in buffer */
-#else
- uint16_t tmphead;
-
- tmphead = (UART3_TxHead + 1) & UART_TX3_BUFFER_MASK;
-
- while (tmphead == UART3_TxTail); /* wait for free space in buffer */
-#endif
-
- UART3_TxBuf[tmphead] = data;
- UART3_TxHead = tmphead;
-
- /* enable UDRE interrupt */
- UART3_CONTROL |= _BV(UART3_UDRIE);
-
-} /* uart3_putc */
-
-
-/*************************************************************************
-Function: uart3_puts()
-Purpose: transmit string to UART3
-Input: string to be transmitted
-Returns: none
-**************************************************************************/
-void uart3_puts(const char *s)
-{
- while (*s) {
- uart3_putc(*s++);
- }
-
-} /* uart3_puts */
-
-
-/*************************************************************************
-Function: uart3_puts_p()
-Purpose: transmit string from program memory to UART3
-Input: program memory string to be transmitted
-Returns: none
-**************************************************************************/
-void uart3_puts_p(const char *progmem_s)
-{
- register char c;
-
- while ((c = pgm_read_byte(progmem_s++))) {
- uart3_putc(c);
- }
-
-} /* uart3_puts_p */
-
-
-
-/*************************************************************************
-Function: uart3_available()
-Purpose: Determine the number of bytes waiting in the receive buffer
-Input: None
-Returns: Integer number of bytes in the receive buffer
-**************************************************************************/
-uint16_t uart3_available(void)
-{
- uint16_t ret;
-
- ATOMIC_BLOCK(ATOMIC_FORCEON) {
- ret = (UART_RX3_BUFFER_SIZE + UART3_RxHead - UART3_RxTail) & UART_RX3_BUFFER_MASK;
- }
- return ret;
-} /* uart3_available */
-
-
-
-/*************************************************************************
-Function: uart3_flush()
-Purpose: Flush bytes waiting the receive buffer. Actually ignores them.
-Input: None
-Returns: None
-**************************************************************************/
-void uart3_flush(void)
-{
- ATOMIC_BLOCK(ATOMIC_FORCEON) {
- UART3_RxHead = UART3_RxTail;
- }
-} /* uart3_flush */
-
-#endif
-
-#endif /* defined(USART3_ENABLED) */
diff --git a/keyboards/bioi/usart.h b/keyboards/bioi/usart.h
deleted file mode 100644
index cc59c7236b..0000000000
--- a/keyboards/bioi/usart.h
+++ /dev/null
@@ -1,436 +0,0 @@
-#ifndef USART_H
-#define USART_H
-
-/************************************************************************
-Title: Interrupt UART library with receive/transmit circular buffers
-Author: Andy Gock
-Software: AVR-GCC 4.1, AVR Libc 1.4
-Hardware: any AVR with built-in UART, tested on AT90S8515 & ATmega8 at 4 Mhz
-License: GNU General Public License
-Usage: see README.md and Doxygen manual
-
-Based on original library by Peter Fluery, Tim Sharpe, Nicholas Zambetti.
-
-https://github.com/andygock/avr-uart
-
-LICENSE:
-
- Copyright (C) 2012 Andy Gock
- Copyright (C) 2006 Peter Fleury
-
- 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
- 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.
-
-************************************************************************/
-
-/************************************************************************
-uart_available, uart_flush, uart1_available, and uart1_flush functions
-were adapted from the Arduino HardwareSerial.h library by Tim Sharpe on
-11 Jan 2009. The license info for HardwareSerial.h is as follows:
-
- HardwareSerial.h - Hardware serial library for Wiring
- Copyright (c) 2006 Nicholas Zambetti. All right reserved.
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- This library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with this library; if not, write to the Free Software
- Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
-************************************************************************/
-
-/**
- * @defgroup avr-uart UART Library
- * @code #include <uart.h> @endcode
- *
- * @brief Interrupt UART library using the built-in UART with transmit and receive circular buffers.
- * @see README.md
- *
- * This library can be used to transmit and receive data through the built in UART.
- *
- * An interrupt is generated when the UART has finished transmitting or
- * receiving a byte. The interrupt handling routines use circular buffers
- * for buffering received and transmitted data.
- *
- * The UART_RXn_BUFFER_SIZE and UART_TXn_BUFFER_SIZE constants define
- * the size of the circular buffers in bytes. Note that these constants must be a power of 2.
- *
- * You need to define these buffer sizes as a symbol in your compiler settings or in uart.h
- *
- * See README.md for more detailed information. Especially that relating to symbols: USARTn_ENABLED and USARTn_LARGE_BUFFER
- *
- * @author Andy Gock <andy@gock.net>
- * @note Based on Atmel Application Note AVR306 and original library by Peter Fleury and Tim Sharpe.
- */
-
-/**@{*/
-#include <stdint.h>
-#include <avr/io.h>
-
-#if (__GNUC__ * 100 + __GNUC_MINOR__) < 304
-#error "This library requires AVR-GCC 3.4 or later, update to newer AVR-GCC compiler !"
-#endif
-
-/*
- * constants and macros
- */
-
-/* Enable USART 1, 2, 3 as required */
-/* Can be defined in compiler symbol setup with -D option (preferred) */
-#ifndef USART0_ENABLED
- #define USART0_ENABLED /**< Enable USART0 */
-#endif
-//#define USART1_ENABLED
-//#define USART2_ENABLED
-//#define USART3_ENABLED
-
-/* Set size of receive and transmit buffers */
-
-#ifndef UART_RX0_BUFFER_SIZE
- #define UART_RX0_BUFFER_SIZE 128 /**< Size of the circular receive buffer, must be power of 2 */
-#endif
-#ifndef UART_RX1_BUFFER_SIZE
- #define UART_RX1_BUFFER_SIZE 128 /**< Size of the circular receive buffer, must be power of 2 */
-#endif
-#ifndef UART_RX2_BUFFER_SIZE
- #define UART_RX2_BUFFER_SIZE 128 /**< Size of the circular receive buffer, must be power of 2 */
-#endif
-#ifndef UART_RX3_BUFFER_SIZE
- #define UART_RX3_BUFFER_SIZE 128 /**< Size of the circular receive buffer, must be power of 2 */
-#endif
-
-#ifndef UART_TX0_BUFFER_SIZE
- #define UART_TX0_BUFFER_SIZE 128 /**< Size of the circular transmit buffer, must be power of 2 */
-#endif
-#ifndef UART_TX1_BUFFER_SIZE
- #define UART_TX1_BUFFER_SIZE 128 /**< Size of the circular transmit buffer, must be power of 2 */
-#endif
-#ifndef UART_TX2_BUFFER_SIZE
- #define UART_TX2_BUFFER_SIZE 128 /**< Size of the circular transmit buffer, must be power of 2 */
-#endif
-#ifndef UART_TX3_BUFFER_SIZE
- #define UART_TX3_BUFFER_SIZE 128 /**< Size of the circular transmit buffer, must be power of 2 */
-#endif
-
-/* Check buffer sizes are not too large for 8-bit positioning */
-
-#if (UART_RX0_BUFFER_SIZE > 256 & !defined(USART0_LARGE_BUFFER))
- #error "Buffer too large, please use -DUSART0_LARGE_BUFFER switch in compiler options"
-#endif
-
-#if (UART_RX1_BUFFER_SIZE > 256 & !defined(USART1_LARGE_BUFFER))
- #error "Buffer too large, please use -DUSART1_LARGE_BUFFER switch in compiler options"
-#endif
-
-#if (UART_RX2_BUFFER_SIZE > 256 & !defined(USART2_LARGE_BUFFER))
- #error "Buffer too large, please use -DUSART2_LARGE_BUFFER switch in compiler options"
-#endif
-
-#if (UART_RX3_BUFFER_SIZE > 256 & !defined(USART3_LARGE_BUFFER))
- #error "Buffer too large, please use -DUSART3_LARGE_BUFFER switch in compiler options"
-#endif
-
-/* Check buffer sizes are not too large for *_LARGE_BUFFER operation (16-bit positioning) */
-
-#if (UART_RX0_BUFFER_SIZE > 32768)
- #error "Buffer too large, maximum allowed is 32768 bytes"
-#endif
-
-#if (UART_RX1_BUFFER_SIZE > 32768)
- #error "Buffer too large, maximum allowed is 32768 bytes"
-#endif
-
-#if (UART_RX2_BUFFER_SIZE > 32768)
- #error "Buffer too large, maximum allowed is 32768 bytes"
-#endif
-
-#if (UART_RX3_BUFFER_SIZE > 32768)
- #error "Buffer too large, maximum allowed is 32768 bytes"
-#endif
-
-/** @brief UART Baudrate Expression
- * @param xtalCpu system clock in Mhz, e.g. 4000000L for 4Mhz
- * @param baudRate baudrate in bps, e.g. 1200, 2400, 9600
- */
-#define UART_BAUD_SELECT(baudRate,xtalCpu) (((xtalCpu)+8UL*(baudRate))/(16UL*(baudRate))-1UL)
-
-/** @brief UART Baudrate Expression for ATmega double speed mode
- * @param xtalCpu system clock in Mhz, e.g. 4000000L for 4Mhz
- * @param baudRate baudrate in bps, e.g. 1200, 2400, 9600
- */
-#define UART_BAUD_SELECT_DOUBLE_SPEED(baudRate,xtalCpu) ((((xtalCpu)+4UL*(baudRate))/(8UL*(baudRate))-1)|0x8000)
-
-/* test if the size of the circular buffers fits into SRAM */
-
-#if defined(USART0_ENABLED) && ( (UART_RX0_BUFFER_SIZE+UART_TX0_BUFFER_SIZE) >= (RAMEND-0x60))
- #error "size of UART_RX0_BUFFER_SIZE + UART_TX0_BUFFER_SIZE larger than size of SRAM"
-#endif
-
-#if defined(USART1_ENABLED) && ( (UART_RX1_BUFFER_SIZE+UART_TX1_BUFFER_SIZE) >= (RAMEND-0x60))
- #error "size of UART_RX1_BUFFER_SIZE + UART_TX1_BUFFER_SIZE larger than size of SRAM"
-#endif
-
-#if defined(USART2_ENABLED) && ( (UART_RX2_BUFFER_SIZE+UART_RX2_BUFFER_SIZE) >= (RAMEND-0x60))
- #error "size of UART_RX2_BUFFER_SIZE + UART_TX2_BUFFER_SIZE larger than size of SRAM"
-#endif
-
-#if defined(USART3_ENABLED) && ( (UART_RX3_BUFFER_SIZE+UART_RX3_BUFFER_SIZE) >= (RAMEND-0x60))
- #error "size of UART_RX3_BUFFER_SIZE + UART_TX3_BUFFER_SIZE larger than size of SRAM"
-#endif
-
-/*
-** high byte error return code of uart_getc()
-*/
-#define UART_FRAME_ERROR 0x0800 /**< Framing Error by UART */
-#define UART_OVERRUN_ERROR 0x0400 /**< Overrun condition by UART */
-#define UART_BUFFER_OVERFLOW 0x0200 /**< receive ringbuffer overflow */
-#define UART_NO_DATA 0x0100 /**< no receive data available */
-
-/* Macros, to allow use of legacy names */
-
-/** @brief Macro to initialize USART0 (only available on selected ATmegas) @see uart0_init */
-#define uart_init(b) uart0_init(b)
-
-/** @brief Macro to get received byte of USART0 from ringbuffer. (only available on selected ATmega) @see uart0_getc */
-#define uart_getc() uart0_getc()
-
-/** @brief Macro to peek at next byte in USART0 ringbuffer */
-#define uart_peek() uart0_peek()
-
-/** @brief Macro to put byte to ringbuffer for transmitting via USART0 (only available on selected ATmega) @see uart0_putc */
-#define uart_putc(d) uart0_putc(d)
-
-/** @brief Macro to put string to ringbuffer for transmitting via USART0 (only available on selected ATmega) @see uart0_puts */
-#define uart_puts(s) uart0_puts(s)
-
-/** @brief Macro to put string from program memory to ringbuffer for transmitting via USART0 (only available on selected ATmega) @see uart0_puts_p */
-#define uart_puts_p(s) uart0_puts_p(s)
-
-/** @brief Macro to return number of bytes waiting in the receive buffer of USART0 @see uart0_available */
-#define uart_available() uart0_available()
-
-/** @brief Macro to flush bytes waiting in receive buffer of USART0 @see uart0_flush */
-#define uart_flush() uart0_flush()
-
-/*
-** function prototypes
-*/
-
-/**
- @brief Initialize UART and set baudrate
- @param baudrate Specify baudrate using macro UART_BAUD_SELECT()
- @return none
-*/
-/*extern*/void uart0_init(uint16_t baudrate);
-
-
-/**
- * @brief Get received byte from ringbuffer
- *
- * Returns in the lower byte the received character and in the
- * higher byte the last receive error.
- * UART_NO_DATA is returned when no data is available.
- *
- * @return lower byte: received byte from ringbuffer
- * @return higher byte: last receive status
- * - \b 0 successfully received data from UART
- * - \b UART_NO_DATA
- * <br>no receive data available
- * - \b UART_BUFFER_OVERFLOW
- * <br>Receive ringbuffer overflow.
- * We are not reading the receive buffer fast enough,
- * one or more received character have been dropped
- * - \b UART_OVERRUN_ERROR
- * <br>Overrun condition by UART.
- * A character already present in the UART UDR register was
- * not read by the interrupt handler before the next character arrived,
- * one or more received characters have been dropped.
- * - \b UART_FRAME_ERROR
- * <br>Framing Error by UART
- */
-/*extern*/uint16_t uart0_getc(void);
-
-/**
- * @brief Peek at next byte in ringbuffer
- *
- * Returns the next byte (character) of incoming UART data without removing it from the
- * internal ring buffer. That is, successive calls to uartN_peek() will return the same
- * character, as will the next call to uartN_getc().
- *
- * UART_NO_DATA is returned when no data is available.
- *
- * @return lower byte: next byte in ringbuffer
- * @return higher byte: last receive status
- * - \b 0 successfully received data from UART
- * - \b UART_NO_DATA
- * <br>no receive data available
- * - \b UART_BUFFER_OVERFLOW
- * <br>Receive ringbuffer overflow.
- * We are not reading the receive buffer fast enough,
- * one or more received character have been dropped
- * - \b UART_OVERRUN_ERROR
- * <br>Overrun condition by UART.
- * A character already present in the UART UDR register was
- * not read by the interrupt handler before the next character arrived,
- * one or more received characters have been dropped.
- * - \b UART_FRAME_ERROR
- * <br>Framing Error by UART
- */
-/*extern*/uint16_t uart0_peek(void);
-
-/**
- * @brief Put byte to ringbuffer for transmitting via UART
- * @param data byte to be transmitted
- * @return none
- */
-/*extern*/void uart0_putc(uint8_t data);
-
-
-/**
- * @brief Put string to ringbuffer for transmitting via UART
- *
- * The string is buffered by the uart library in a circular buffer
- * and one character at a time is transmitted to the UART using interrupts.
- * Blocks if it can not write the whole string into the circular buffer.
- *
- * @param s string to be transmitted
- * @return none
- */
-/*extern*/void uart0_puts(const char *s);
-
-
-/**
- * @brief Put string from program memory to ringbuffer for transmitting via UART.
- *
- * The string is buffered by the uart library in a circular buffer
- * and one character at a time is transmitted to the UART using interrupts.
- * Blocks if it can not write the whole string into the circular buffer.
- *
- * @param s program memory string to be transmitted
- * @return none
- * @see uart0_puts_P
- */
-/*extern*/void uart0_puts_p(const char *s);
-
-/**
- * @brief Macro to automatically put a string constant into program memory
- * \param __s string in program memory
- */
-#define uart_puts_P(__s) uart0_puts_p(PSTR(__s))
-
-/** @brief Macro to automatically put a string constant into program memory */
-#define uart0_puts_P(__s) uart0_puts_p(PSTR(__s))
-
-/**
- * @brief Return number of bytes waiting in the receive buffer
- * @return bytes waiting in the receive buffer
- */
-/*extern*/uint16_t uart0_available(void);
-
-/**
- * @brief Flush bytes waiting in receive buffer
- */
-/*extern*/void uart0_flush(void);
-
-
-/** @brief Initialize USART1 (only available on selected ATmegas) @see uart_init */
-/*extern*/void uart1_init(uint16_t baudrate);
-
-/** @brief Get received byte of USART1 from ringbuffer. (only available on selected ATmega) @see uart_getc */
-/*extern*/uint16_t uart1_getc(void);
-
-/** @brief Peek at next byte in USART1 ringbuffer */
-/*extern*/uint16_t uart1_peek(void);
-
-/** @brief Put byte to ringbuffer for transmitting via USART1 (only available on selected ATmega) @see uart_putc */
-/*extern*/void uart1_putc(uint8_t data);
-
-/** @brief Put string to ringbuffer for transmitting via USART1 (only available on selected ATmega) @see uart_puts */
-/*extern*/void uart1_puts(const char *s);
-
-/** @brief Put string from program memory to ringbuffer for transmitting via USART1 (only available on selected ATmega) @see uart_puts_p */
-/*extern*/void uart1_puts_p(const char *s);
-
-/** @brief Macro to automatically put a string constant into program memory of USART1 @see uart1_puts_p */
-#define uart1_puts_P(__s) uart1_puts_p(PSTR(__s))
-
-/** @brief Return number of bytes waiting in the receive buffer of USART1 */
-/*extern*/uint16_t uart1_available(void);
-
-/** @brief Flush bytes waiting in receive buffer of USART1 */
-/*extern*/void uart1_flush(void);
-
-
-/** @brief Initialize USART2 (only available on selected ATmegas) @see uart_init */
-/*extern*/void uart2_init(uint16_t baudrate);
-
-/** @brief Get received byte of USART2 from ringbuffer. (only available on selected ATmega) @see uart_getc */
-/*extern*/uint16_t uart2_getc(void);
-
-/** @brief Peek at next byte in USART2 ringbuffer */
-/*extern*/uint16_t uart2_peek(void);
-
-/** @brief Put byte to ringbuffer for transmitting via USART2 (only available on selected ATmega) @see uart_putc */
-/*extern*/void uart2_putc(uint8_t data);
-
-/** @brief Put string to ringbuffer for transmitting via USART2 (only available on selected ATmega) @see uart_puts */
-/*extern*/void uart2_puts(const char *s);
-
-/** @brief Put string from program memory to ringbuffer for transmitting via USART2 (only available on selected ATmega) @see uart_puts_p */
-/*extern*/void uart2_puts_p(const char *s);
-
-/** @brief Macro to automatically put a string constant into program memory of USART2 @see uart2_puts_p */
-#define uart2_puts_P(__s) uart2_puts_p(PSTR(__s))
-
-/** @brief Return number of bytes waiting in the receive buffer of USART2 */
-/*extern*/uint16_t uart2_available(void);
-
-/** @brief Flush bytes waiting in receive buffer of USART2 */
-/*extern*/void uart2_flush(void);
-
-
-/** @brief Initialize USART3 (only available on selected ATmegas) @see uart_init */
-/*extern*/void uart3_init(uint16_t baudrate);
-
-/** @brief Get received byte of USART3 from ringbuffer. (only available on selected ATmega) @see uart_getc */
-/*extern*/uint16_t uart3_getc(void);
-
-/** @brief Peek at next byte in USART3 ringbuffer */
-/*extern*/uint16_t uart3_peek(void);
-
-/** @brief Put byte to ringbuffer for transmitting via USART3 (only available on selected ATmega) @see uart_putc */
-/*extern*/void uart3_putc(uint8_t data);
-
-/** @brief Put string to ringbuffer for transmitting via USART3 (only available on selected ATmega) @see uart_puts */
-/*extern*/void uart3_puts(const char *s);
-
-/** @brief Put string from program memory to ringbuffer for transmitting via USART3 (only available on selected ATmega) @see uart_puts_p */
-/*extern*/void uart3_puts_p(const char *s);
-
-/** @brief Macro to automatically put a string constant into program memory of USART3 @see uart3_puts_p */
-#define uart3_puts_P(__s) uart3_puts_p(PSTR(__s))
-
-/** @brief Return number of bytes waiting in the receive buffer of USART3 */
-/*extern*/uint16_t uart3_available(void);
-
-/** @brief Flush bytes waiting in receive buffer of USART3 */
-/*extern*/void uart3_flush(void);
-
-/**@}*/
-
-#endif // UART_H
-
diff --git a/keyboards/boardsource/lulu/keymaps/manna-harbour_miryoku/config.h b/keyboards/boardsource/lulu/keymaps/manna-harbour_miryoku/config.h
deleted file mode 100644
index b4249396da..0000000000
--- a/keyboards/boardsource/lulu/keymaps/manna-harbour_miryoku/config.h
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright 2019 Manna Harbour
-// https://github.com/manna-harbour/miryoku
-
-// 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 XXX KC_NO
-
-#define LAYOUT_miryoku(\
- 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,\
- N30, N31, K32, K33, K34, K35, K36, K37, N38, N39\
-)\
-LAYOUT(\
-XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX,\
-XXX, K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, XXX,\
-XXX, K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, XXX,\
-XXX, K20, K21, K22, K23, K24, XXX, XXX, K25, K26, K27, K28, K29, XXX,\
- XXX, K32, K33, K34, K35, K36, K37, XXX\
-)
diff --git a/keyboards/boardsource/lulu/keymaps/manna-harbour_miryoku/keymap.c b/keyboards/boardsource/lulu/keymaps/manna-harbour_miryoku/keymap.c
deleted file mode 100644
index dbab7f9820..0000000000
--- a/keyboards/boardsource/lulu/keymaps/manna-harbour_miryoku/keymap.c
+++ /dev/null
@@ -1,4 +0,0 @@
-// Copyright 2019 Manna Harbour
-// https://github.com/manna-harbour/miryoku
-
-// 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/>.
diff --git a/keyboards/boardsource/lulu/keymaps/rmeli/config.h b/keyboards/boardsource/lulu/keymaps/rmeli/config.h
deleted file mode 100644
index 171eaed0db..0000000000
--- a/keyboards/boardsource/lulu/keymaps/rmeli/config.h
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
-Copyright 2022 Rocco Meli <@RMeli>
-
-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 MASTER_LEFT // Left side is the master
-#define SPLIT_LED_STATE_ENABLE
-
-#ifdef RGB_MATRIX_ENABLE
-// Configure RGB Matrix
-# define RGB_MATRIX_KEYPRESSES // enable keypress effects
-# define RGB_MATRIX_LED_FLUSH_LIMIT 16
-# define RGB_DISABLE_WHEN_USB_SUSPENDED
-# define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_SOLID_COLOR
-# define RGB_MATRIX_DEFAULT_HUE 10
-# define RGB_MATRIX_DEFAULT_SAT 255
-# define RGB_MATRIX_DEFAULT_VAL RGB_MATRIX_MAXIMUM_BRIGHTNESS
-// Disable RGB Matrix effects (from lulu/config.h)
-# undef ENABLE_RGB_MATRIX_ALPHAS_MODS
-# undef ENABLE_RGB_MATRIX_GRADIENT_UP_DOWN
-# undef ENABLE_RGB_MATRIX_GRADIENT_LEFT_RIGHT
-# undef ENABLE_RGB_MATRIX_BREATHING
-# undef ENABLE_RGB_MATRIX_BAND_SAT
-# undef ENABLE_RGB_MATRIX_BAND_VAL
-// Enable RGB Matrix effects
-# define ENABLE_RGB_MATRIX_BREATHING
-# define ENABLE_RGB_MATRIX_TYPING_HEATMAP
-# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE
-# define ENABLE_RGB_MATRIX_SOLID_COLOR
-# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE
-#endif
diff --git a/keyboards/boardsource/lulu/keymaps/rmeli/keymap.c b/keyboards/boardsource/lulu/keymaps/rmeli/keymap.c
deleted file mode 100644
index f9be18ee2d..0000000000
--- a/keyboards/boardsource/lulu/keymaps/rmeli/keymap.c
+++ /dev/null
@@ -1,108 +0,0 @@
-/*
-Copyright 2022 Cole Smith <cole@boadsource.xyz>
-Copyright 2022 Rocco Meli <@RMeli>
-
-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 "rmeli.h"
-
-enum layers {
- _QWERTY,
- _COLEMAK_DH,
- _RAISE,
- _LOWER,
- _ADJUST,
-};
-
-#define RAISE MO(_RAISE)
-#define LOWER MO(_LOWER)
-
-#define QWY_DF DF(_QWERTY)
-#define CMK_DF DF(_COLEMAK_DH)
-
-// clang-format off
-#define __________THUMB_LEFT_x4___________ KC_LALT, KC_LGUI, LOWER, KC_SPC
-#define __________THUMB_RIGHT_x4__________ KC_ENT, RAISE, KC_LCTL, KC_RGUI
-// clang-format on
-
-/* LAYOUT
- *
- * ,-----------------------------. ,-----------------------------.
- * | | | | | | | | | | | | | |
- * |----+----+----+----+----+----| |----+----+----+----+----+----|
- * | | | | | | | | | | | | | |
- * |----+----+----+----+----+----| |----+----+----+----+----+----|
- * | | | | | | |-----. ,-----| | | | | | |
- * |----+----+----+----+----+----| | | |----+----+----+----+----+----|
- * | | | | | | |-----| |-----| | | | | | |
- * `----------------------------/ / \ \----------------------------'
- * | | | | / / \ \ | | | |
- * | | | |/ / \ \ | | | |
- * `--------------''-----' '------''--------------'
- */
-
-// Define wrapper for standard LULU layout
-#define LAYOUT_wrapper(...) LAYOUT(__VA_ARGS__)
-
-// clang-format off
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
- [_QWERTY] = LAYOUT_wrapper(
- ___________________NUMBER_LEFT_x6___________________, ___________________NUMBER_RIGHT_x6__________________,
- ___________________QWERTY_L1_x6_____________________, ___________________QWERTY_R1_x6_____________________,
- ___________________QWERTY_L2_x6_____________________, ___________________QWERTY_R2_x6_____________________,
- ___________________QWERTY_L3_x6_____________________, KC_LBRC, KC_RBRC, ___________________QWERTY_R3_x6_____________________,
- __________THUMB_LEFT_x4___________, __________THUMB_RIGHT_x4__________
- ),
-
- [_COLEMAK_DH] = LAYOUT_wrapper(
- ___________________NUMBER_LEFT_x6___________________, ___________________NUMBER_RIGHT_x6__________________,
- ________________COLEMAK_MOD_DH_L1_x6________________, ________________COLEMAK_MOD_DH_R1_x6________________,
- ________________COLEMAK_MOD_DH_L2_x6________________, ________________COLEMAK_MOD_DH_R2_x6________________,
- ________________COLEMAK_MOD_DH_L3_x6________________, KC_LBRC, KC_RBRC, ________________COLEMAK_MOD_DH_R3_x6________________,
- __________THUMB_LEFT_x4___________, __________THUMB_RIGHT_x4__________
- ),
-
- [_LOWER] = LAYOUT_wrapper(
- ____________________FUNC_LEFT_x6____________________, ____________________FUNC_RIGHT_x6___________________,
- _______, ______________NUMBER_LEFT_x5_______________, ______________NUMBER_RIGHT_x5______________, _______,
- _______, ______________UNICODE_L2_x5________________, ________________NAV_R2_x5__________________, XXXXXXX,
- _______, ______________UNICODE_L3_x5________________, _______, _______, ________________NAV_R3_x5__________________, _______,
- _______, _______, _______, _______, _______, _______, _______, _______
- ),
-
- [_RAISE] = LAYOUT_wrapper(
- ___________________NUMBER_LEFT_x6___________________, ___________________NUMBER_RIGHT_x6__________________,
- ___________________SYMBOL_LEFT_x6___________________, ___________________SYMBOL_RIGHT_x6__________________,
- _______, ____________NAV_VIM_x4____________, XXXXXXX, ____________________SYMBOL_R2_x6____________________,
- _______, _________________NONE_5x___________________, _______, _______, ____________________SYMBOL_R3_x6____________________,
- _______, _______, _______, _______, _______, _______, _______, _______
- ),
-
- [_ADJUST] = LAYOUT_wrapper(
- QK_BOOT, _________________NONE_5x___________________, ______________________NONE_6x_______________________,
- XXXXXXX, _________________NONE_5x___________________, _______________CONFIG_R1_x5________________, QWY_DF,
- RGB_TOG, ________________RGB_L2_x5__________________, _______________CONFIG_R2_x5________________, XXXXXXX,
- XXXXXXX, ________________RGB_L3_x5__________________, _______, _______, _______________CONFIG_R3_x5________________, CMK_DF,
- _______, _______, _______, _______, _______, _______, _______, _______
- )
-};
-// clang-format on
-
-layer_state_t layer_state_set_user(layer_state_t state) {
- return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST);
-}
diff --git a/keyboards/boardsource/lulu/keymaps/rmeli/rules.mk b/keyboards/boardsource/lulu/keymaps/rmeli/rules.mk
deleted file mode 100644
index 035e9814e2..0000000000
--- a/keyboards/boardsource/lulu/keymaps/rmeli/rules.mk
+++ /dev/null
@@ -1,9 +0,0 @@
-TAP_DANCE_ENABLE = yes
-AUTO_SHIFT_ENABLE = no // disable auto-shift with home row mods
-
-UNICODEMAP_ENABLE = yes
-NKRO_ENABLE = yes
-MAGIC_ENABLE = yes
-
-RGBLIGHT_ENABLE = no
-RGB_MATRIX_ENABLE = yes \ No newline at end of file
diff --git a/keyboards/boardsource/the_mark/keymaps/stanrc85/keymap.c b/keyboards/boardsource/the_mark/keymaps/stanrc85/keymap.c
deleted file mode 100644
index 5b37bb6667..0000000000
--- a/keyboards/boardsource/the_mark/keymaps/stanrc85/keymap.c
+++ /dev/null
@@ -1,98 +0,0 @@
-/* Copyright 2020 Stanrc85
- *
- * 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 "stanrc85.h"
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-/* Base */
-[_QWERTY] = LAYOUT_all(
- KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC, KC_MPLY,
- 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, CA_SCLN,
- KC_CTLE, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, CA_QUOT,
- KC_LSFT, 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, LT_SPCF, LT_SPCF, LT_SPCF, TD_TWIN, MO(_FN2_60), KC_GRV, KC_LEFT, KC_DOWN, KC_RGHT
-),
-[_DEFAULT] = LAYOUT_all(
- KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC, KC_MPLY,
- 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, CA_SCLN,
- KC_CTLE, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, CA_QUOT,
- KC_LSFT, 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, LT_SPCF, LT_SPCF, LT_SPCF, TD_TWIN, MO(_FN2_60), KC_GRV, KC_LEFT, KC_DOWN, KC_RGHT
-),
-[_FN1_60] = LAYOUT_all(
- KC_TILD, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_DEL, _______,
- _______, _______, CA_QUOT, KC_VOLU, CA_SCLN, _______, _______, KC_HOME, KC_UP, KC_END, KC_PSCR, _______, _______, KC_INS, _______,
- KC_CAPS, _______, KC_MUTE, KC_VOLD, KC_MPLY, _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______,
- _______, _______, KC_RDP, _______, _______, _______, _______, _______, KC_WBAK, KC_WFWD, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
-),
-[_FN2_60] = LAYOUT_all(
- RGB_TOG, RGB_MOD, RGB_VAD, RGB_VAI, RGB_SAI, RGB_HUD, RGB_HUI, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, QK_BOOT, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MAKE, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, TG(_DEFAULT)
-)
-
-};
-
-
-bool rgb_matrix_indicators_user(void) {
- uint8_t layer = get_highest_layer(layer_state);
- switch (layer) {
- case _FN1_60:
- rgb_matrix_set_color(10, 0, 0, 255);
- break;
- case _FN2_60:
- rgb_matrix_set_color(10, 255, 255, 255);
- break;
- case _DEFAULT:
- rgb_matrix_set_color(10, 0, 255, 0);
- break;
- default:
- break;
- }
- if (host_keyboard_led_state().caps_lock) {
- rgb_matrix_set_color(10, 255, 0, 0);
- }
- return false;
-}
-
-void matrix_init_kb(void){
-
-#ifdef RGB_MATRIX_ENABLE
-
- g_led_config = (led_config_t){ {
- // Key Matrix to LED Index
- { 10 , 10 , 9 , 9 , 8 , 7 , 7 , 6 , 5 , 5 , 4 , 3 , 3 , 2 , 1 , 1 },
- { 11 , 11 , 9 , 9 , 8 , 7 , 7 , 6 , 5 , 5 , 4 , 3 , 3 , 2 , 0 , 1 },
- { 12 , 12 , 9 , 9 , 8 , 7 , 7 , 6 , 5 , 5 , 4 , 3 , 3 , 2 , 23 , 1 },
- { 13 , 13 , 14 , 14 , 15 , 16 , 16 , 17 , 18 , 18 , 19 , 20 , 20 , 21 , 22 , 22 },
- { 13 , 13 , 14 , 14 , 15 , 16 , 16 , 17 , 18 , 18 , 19 , 20 , 20 , 21 , 22 , 22 },
- }, {
- // LED Index to Physical Position
- {224, 42}, {224, 21}, {209, 21}, {179, 21}, {164, 21}, {134, 21}, {119, 21}, {89, 21}, {74, 21}, {45, 21}, {30, 21}, {30, 42},
- {30, 64}, {30, 85}, {45, 85}, {74, 85}, {89, 85}, {119, 85}, {134, 85}, {164, 85}, {179, 85}, {209, 85}, {224, 85}, {224, 64}
- }, {
- // LED Index to Flag
- LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL,
- LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL,
- LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL
- } };
-
-#endif
- matrix_init_user();
-}
diff --git a/keyboards/boardsource/unicorne/config.h b/keyboards/boardsource/unicorne/config.h
index d0d466bb54..5843a0c847 100644
--- a/keyboards/boardsource/unicorne/config.h
+++ b/keyboards/boardsource/unicorne/config.h
@@ -8,8 +8,6 @@
#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET
-#define SPLIT_LAYER_STATE_ENABLE
-
#define I2C_DRIVER I2CD1
#define I2C1_SDA_PIN GP22
#define I2C1_SCL_PIN GP23
diff --git a/keyboards/boardsource/unicorne/info.json b/keyboards/boardsource/unicorne/info.json
index aeeb348125..4184c870fe 100644
--- a/keyboards/boardsource/unicorne/info.json
+++ b/keyboards/boardsource/unicorne/info.json
@@ -20,7 +20,12 @@
},
"split": {
"enabled": true,
- "soft_serial_pin": "GP0"
+ "soft_serial_pin": "GP0",
+ "transport": {
+ "sync": {
+ "layer_state": true
+ }
+ }
},
"usb": {
"device_version": "1.0.0",
diff --git a/keyboards/boardwalk/keymaps/nchristus/config.h b/keyboards/boardwalk/keymaps/nchristus/config.h
deleted file mode 100644
index a2530241f4..0000000000
--- a/keyboards/boardwalk/keymaps/nchristus/config.h
+++ /dev/null
@@ -1,16 +0,0 @@
-/*
- * 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
diff --git a/keyboards/boardwalk/keymaps/nchristus/keymap.c b/keyboards/boardwalk/keymaps/nchristus/keymap.c
deleted file mode 100644
index df642bcd6f..0000000000
--- a/keyboards/boardwalk/keymaps/nchristus/keymap.c
+++ /dev/null
@@ -1,62 +0,0 @@
-/*
- * 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
-
-// Layer shorthand
-#define _QW 0
-
-#define LOWER LT(1, KC_SPC)
-#define RAISE LT(2, KC_ENT)
-
-#define CTRLESC CTL_T(KC_ESC)
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- /* Keymap _QWE: Base Layer (Default Layer) */
- [_QW] = LAYOUT_ortho_hhkb(
- QK_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, _______, _______, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSLS,
- KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, _______, _______, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,
- CTRLESC, 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_RSFT,
- MO(3), KC_LCTL, KC_LALT, KC_LGUI, RAISE, LOWER, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT
- ),
-
- /* Keymap LOWER: Lower Layer */
- [1] = LAYOUT_ortho_hhkb(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, KC_MINS, KC_PLUS, KC_LBRC, KC_RBRC, KC_BSLS, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, XXXXXXX, _______, _______, _______, _______, _______
- ),
-
- /* Keymap RAISE: Raise Layer */
- [2] = LAYOUT_ortho_hhkb(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, KC_UNDS, KC_EQL, KC_LCBR, KC_RCBR, KC_PIPE, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, XXXXXXX, _______, _______, _______, _______
- ),
-
- /* Keymap _FL: Function Layer */
- [3] = LAYOUT_ortho_hhkb(
- QK_BOOT, _______, _______, _______, _______, _______, RGB_TOG, RGB_MOD, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
- )
-};
diff --git a/keyboards/boardwalk/keymaps/nchristus/readme.md b/keyboards/boardwalk/keymaps/nchristus/readme.md
deleted file mode 100644
index 73cf19b06f..0000000000
--- a/keyboards/boardwalk/keymaps/nchristus/readme.md
+++ /dev/null
@@ -1 +0,0 @@
-# The default keymap for Boardwalk
diff --git a/keyboards/boardwalk/keymaps/nchristus/rules.mk b/keyboards/boardwalk/keymaps/nchristus/rules.mk
deleted file mode 100644
index b07a6475be..0000000000
--- a/keyboards/boardwalk/keymaps/nchristus/rules.mk
+++ /dev/null
@@ -1,14 +0,0 @@
-# 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/>.
-
-RGBLIGHT_ENABLE = yes
diff --git a/keyboards/bpiphany/kitten_paw/keymaps/ickerwx/keymap.c b/keyboards/bpiphany/kitten_paw/keymaps/ickerwx/keymap.c
index f0c75284f7..a2f36a303a 100644
--- a/keyboards/bpiphany/kitten_paw/keymaps/ickerwx/keymap.c
+++ b/keyboards/bpiphany/kitten_paw/keymaps/ickerwx/keymap.c
@@ -1,5 +1,4 @@
#include QMK_KEYBOARD_H
-#include "mousekey.h"
#define MEDAPP LT(MEDIA, KC_APP)
diff --git a/keyboards/bt66tech/bt66tech60/config.h b/keyboards/bt66tech/bt66tech60/config.h
index 45693628a6..b49e0a11cd 100644
--- a/keyboards/bt66tech/bt66tech60/config.h
+++ b/keyboards/bt66tech/bt66tech60/config.h
@@ -25,7 +25,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
/* Locking resynchronize hack */
#define LOCKING_RESYNC_ENABLE
-#define WS2812_SPI SPID2
+#define WS2812_SPI_DRIVER SPID2
#define WS2812_SPI_MOSI_PAL_MODE 5
/*
* Feature disable options
diff --git a/keyboards/buzzard/rev1/config.h b/keyboards/buzzard/rev1/config.h
index f29441fac8..36313a1c6a 100644
--- a/keyboards/buzzard/rev1/config.h
+++ b/keyboards/buzzard/rev1/config.h
@@ -10,7 +10,6 @@
#ifdef OLED_ENABLE
#define OLED_DISPLAY_128X32
-#define SPLIT_OLED_ENABLE
#endif
#ifdef PS2_DRIVER_INTERRUPT
diff --git a/keyboards/buzzard/rev1/info.json b/keyboards/buzzard/rev1/info.json
index d0fa9603f7..0e7d246ae3 100644
--- a/keyboards/buzzard/rev1/info.json
+++ b/keyboards/buzzard/rev1/info.json
@@ -14,7 +14,12 @@
},
"diode_direction": "COL2ROW",
"split": {
- "soft_serial_pin": "D2"
+ "soft_serial_pin": "D2",
+ "transport": {
+ "sync": {
+ "oled": true
+ }
+ }
},
"processor": "atmega32u4",
"bootloader": "atmel-dfu",
diff --git a/keyboards/canary/canary60rgb/canary60rgb.c b/keyboards/canary/canary60rgb/canary60rgb.c
index c47abf57fd..065268c531 100644
--- a/keyboards/canary/canary60rgb/canary60rgb.c
+++ b/keyboards/canary/canary60rgb/canary60rgb.c
@@ -16,7 +16,7 @@
#include "quantum.h"
#ifdef RGB_MATRIX_ENABLE
-const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = {
+const is31fl3733_led_t PROGMEM g_is31fl3733_leds[RGB_MATRIX_LED_COUNT] = {
{ 0, J_14, K_14, L_14 },
{ 0, J_13, K_13, L_13 },
{ 0, J_12, K_12, L_12 },
diff --git a/keyboards/canary/canary60rgb/v1/config.h b/keyboards/canary/canary60rgb/v1/config.h
index e8d0808384..ab5c817000 100644
--- a/keyboards/canary/canary60rgb/v1/config.h
+++ b/keyboards/canary/canary60rgb/v1/config.h
@@ -33,7 +33,6 @@
# define DISABLE_RGB_MATRIX_MULTISPLASH
# define DISABLE_RGB_MATRIX_SOLID_SPLASH
# define DISABLE_RGB_MATRIX_SOLID_MULTISPLASH
-# define DRIVER_ADDR_1 0b1010000
-# define DRIVER_COUNT 1
+# define IS31FL3733_I2C_ADDRESS_1 IS31FL3733_I2C_ADDRESS_GND_GND
# define RGB_MATRIX_LED_COUNT 63
#endif
diff --git a/keyboards/cannonkeys/an_c/config.h b/keyboards/cannonkeys/an_c/config.h
index bea77ceac2..f3d6237a78 100644
--- a/keyboards/cannonkeys/an_c/config.h
+++ b/keyboards/cannonkeys/an_c/config.h
@@ -26,7 +26,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
/* Locking resynchronize hack */
#define LOCKING_RESYNC_ENABLE
-#define WS2812_SPI SPID2
+#define WS2812_SPI_DRIVER SPID2
#define WS2812_SPI_MOSI_PAL_MODE 0
#define WS2812_SPI_SCK_PAL_MODE 0
#define WS2812_SPI_SCK_PIN B13
diff --git a/keyboards/cannonkeys/atlas/config.h b/keyboards/cannonkeys/atlas/config.h
index e8d571f7a9..38f684a861 100644
--- a/keyboards/cannonkeys/atlas/config.h
+++ b/keyboards/cannonkeys/atlas/config.h
@@ -22,7 +22,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
/* Locking resynchronize hack */
#define LOCKING_RESYNC_ENABLE
-#define WS2812_SPI SPID2
+#define WS2812_SPI_DRIVER SPID2
#define WS2812_SPI_MOSI_PAL_MODE 0
#define WS2812_SPI_SCK_PAL_MODE 0
#define WS2812_SPI_SCK_PIN B13
diff --git a/keyboards/cannonkeys/brutalv2_1800/rules.mk b/keyboards/cannonkeys/brutalv2_1800/rules.mk
index 59f8593f18..6e7633bfe0 100644
--- a/keyboards/cannonkeys/brutalv2_1800/rules.mk
+++ b/keyboards/cannonkeys/brutalv2_1800/rules.mk
@@ -1,2 +1 @@
-EEPROM_DRIVER = wear_leveling
-WEAR_LEVELING_DRIVER = rp2040_flash
+# This file intentionally left blank
diff --git a/keyboards/cannonkeys/caerdroia/rules.mk b/keyboards/cannonkeys/caerdroia/rules.mk
index 59f8593f18..6e7633bfe0 100644
--- a/keyboards/cannonkeys/caerdroia/rules.mk
+++ b/keyboards/cannonkeys/caerdroia/rules.mk
@@ -1,2 +1 @@
-EEPROM_DRIVER = wear_leveling
-WEAR_LEVELING_DRIVER = rp2040_flash
+# This file intentionally left blank
diff --git a/keyboards/cannonkeys/cloudline/config.h b/keyboards/cannonkeys/cloudline/config.h
index cff0a03945..41e58784b4 100644
--- a/keyboards/cannonkeys/cloudline/config.h
+++ b/keyboards/cannonkeys/cloudline/config.h
@@ -12,7 +12,7 @@
/* Locking resynchronize hack */
#define LOCKING_RESYNC_ENABLE
-#define WS2812_SPI SPID2
+#define WS2812_SPI_DRIVER SPID2
#define WS2812_SPI_MOSI_PAL_MODE 0
#define WS2812_SPI_SCK_PAL_MODE 0
#define WS2812_SPI_SCK_PIN B13
diff --git a/keyboards/cannonkeys/db60/config.h b/keyboards/cannonkeys/db60/config.h
index bea77ceac2..f3d6237a78 100644
--- a/keyboards/cannonkeys/db60/config.h
+++ b/keyboards/cannonkeys/db60/config.h
@@ -26,7 +26,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
/* Locking resynchronize hack */
#define LOCKING_RESYNC_ENABLE
-#define WS2812_SPI SPID2
+#define WS2812_SPI_DRIVER SPID2
#define WS2812_SPI_MOSI_PAL_MODE 0
#define WS2812_SPI_SCK_PAL_MODE 0
#define WS2812_SPI_SCK_PIN B13
diff --git a/keyboards/cannonkeys/devastatingtkl/config.h b/keyboards/cannonkeys/devastatingtkl/config.h
index bea77ceac2..f3d6237a78 100644
--- a/keyboards/cannonkeys/devastatingtkl/config.h
+++ b/keyboards/cannonkeys/devastatingtkl/config.h
@@ -26,7 +26,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
/* Locking resynchronize hack */
#define LOCKING_RESYNC_ENABLE
-#define WS2812_SPI SPID2
+#define WS2812_SPI_DRIVER SPID2
#define WS2812_SPI_MOSI_PAL_MODE 0
#define WS2812_SPI_SCK_PAL_MODE 0
#define WS2812_SPI_SCK_PIN B13
diff --git a/keyboards/cannonkeys/instant60/config.h b/keyboards/cannonkeys/instant60/config.h
index bea77ceac2..f3d6237a78 100644
--- a/keyboards/cannonkeys/instant60/config.h
+++ b/keyboards/cannonkeys/instant60/config.h
@@ -26,7 +26,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
/* Locking resynchronize hack */
#define LOCKING_RESYNC_ENABLE
-#define WS2812_SPI SPID2
+#define WS2812_SPI_DRIVER SPID2
#define WS2812_SPI_MOSI_PAL_MODE 0
#define WS2812_SPI_SCK_PAL_MODE 0
#define WS2812_SPI_SCK_PIN B13
diff --git a/keyboards/cannonkeys/instant65/config.h b/keyboards/cannonkeys/instant65/config.h
index 0adcfdfa92..0b1e0948b3 100644
--- a/keyboards/cannonkeys/instant65/config.h
+++ b/keyboards/cannonkeys/instant65/config.h
@@ -26,7 +26,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
/* Locking resynchronize hack */
#define LOCKING_RESYNC_ENABLE
-#define WS2812_SPI SPID2
+#define WS2812_SPI_DRIVER SPID2
#define WS2812_SPI_MOSI_PAL_MODE 0
#define WS2812_SPI_SCK_PAL_MODE 0
#define WS2812_SPI_SCK_PIN B13
diff --git a/keyboards/cannonkeys/malicious_ergo/config.h b/keyboards/cannonkeys/malicious_ergo/config.h
index 70d39892fd..f2314b6077 100644
--- a/keyboards/cannonkeys/malicious_ergo/config.h
+++ b/keyboards/cannonkeys/malicious_ergo/config.h
@@ -28,7 +28,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
/* Locking resynchronize hack */
#define LOCKING_RESYNC_ENABLE
-#define WS2812_SPI SPID2
+#define WS2812_SPI_DRIVER SPID2
#define WS2812_SPI_MOSI_PAL_MODE 0
#define WS2812_SPI_SCK_PAL_MODE 0
#define WS2812_SPI_SCK_PIN B13
diff --git a/keyboards/cannonkeys/obliterated75/config.h b/keyboards/cannonkeys/obliterated75/config.h
index 0adcfdfa92..0b1e0948b3 100644
--- a/keyboards/cannonkeys/obliterated75/config.h
+++ b/keyboards/cannonkeys/obliterated75/config.h
@@ -26,7 +26,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
/* Locking resynchronize hack */
#define LOCKING_RESYNC_ENABLE
-#define WS2812_SPI SPID2
+#define WS2812_SPI_DRIVER SPID2
#define WS2812_SPI_MOSI_PAL_MODE 0
#define WS2812_SPI_SCK_PAL_MODE 0
#define WS2812_SPI_SCK_PIN B13
diff --git a/keyboards/cannonkeys/ortho48/config.h b/keyboards/cannonkeys/ortho48/config.h
index 703975ab86..32412b1d54 100644
--- a/keyboards/cannonkeys/ortho48/config.h
+++ b/keyboards/cannonkeys/ortho48/config.h
@@ -25,7 +25,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
/* Locking resynchronize hack */
#define LOCKING_RESYNC_ENABLE
-#define WS2812_SPI SPID2
+#define WS2812_SPI_DRIVER SPID2
/*
* Feature disable options
diff --git a/keyboards/cannonkeys/ortho48v2/rules.mk b/keyboards/cannonkeys/ortho48v2/rules.mk
index 59f8593f18..6e7633bfe0 100644
--- a/keyboards/cannonkeys/ortho48v2/rules.mk
+++ b/keyboards/cannonkeys/ortho48v2/rules.mk
@@ -1,2 +1 @@
-EEPROM_DRIVER = wear_leveling
-WEAR_LEVELING_DRIVER = rp2040_flash
+# This file intentionally left blank
diff --git a/keyboards/cannonkeys/ortho60/config.h b/keyboards/cannonkeys/ortho60/config.h
index 703975ab86..32412b1d54 100644
--- a/keyboards/cannonkeys/ortho60/config.h
+++ b/keyboards/cannonkeys/ortho60/config.h
@@ -25,7 +25,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
/* Locking resynchronize hack */
#define LOCKING_RESYNC_ENABLE
-#define WS2812_SPI SPID2
+#define WS2812_SPI_DRIVER SPID2
/*
* Feature disable options
diff --git a/keyboards/cannonkeys/ortho60v2/rules.mk b/keyboards/cannonkeys/ortho60v2/rules.mk
index 59f8593f18..6e7633bfe0 100644
--- a/keyboards/cannonkeys/ortho60v2/rules.mk
+++ b/keyboards/cannonkeys/ortho60v2/rules.mk
@@ -1,2 +1 @@
-EEPROM_DRIVER = wear_leveling
-WEAR_LEVELING_DRIVER = rp2040_flash
+# This file intentionally left blank
diff --git a/keyboards/cannonkeys/ortho75/config.h b/keyboards/cannonkeys/ortho75/config.h
index 703975ab86..32412b1d54 100644
--- a/keyboards/cannonkeys/ortho75/config.h
+++ b/keyboards/cannonkeys/ortho75/config.h
@@ -25,7 +25,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
/* Locking resynchronize hack */
#define LOCKING_RESYNC_ENABLE
-#define WS2812_SPI SPID2
+#define WS2812_SPI_DRIVER SPID2
/*
* Feature disable options
diff --git a/keyboards/cannonkeys/practice60/config.h b/keyboards/cannonkeys/practice60/config.h
index 703975ab86..32412b1d54 100644
--- a/keyboards/cannonkeys/practice60/config.h
+++ b/keyboards/cannonkeys/practice60/config.h
@@ -25,7 +25,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
/* Locking resynchronize hack */
#define LOCKING_RESYNC_ENABLE
-#define WS2812_SPI SPID2
+#define WS2812_SPI_DRIVER SPID2
/*
* Feature disable options
diff --git a/keyboards/cannonkeys/practice65/config.h b/keyboards/cannonkeys/practice65/config.h
index 703975ab86..32412b1d54 100644
--- a/keyboards/cannonkeys/practice65/config.h
+++ b/keyboards/cannonkeys/practice65/config.h
@@ -25,7 +25,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
/* Locking resynchronize hack */
#define LOCKING_RESYNC_ENABLE
-#define WS2812_SPI SPID2
+#define WS2812_SPI_DRIVER SPID2
/*
* Feature disable options
diff --git a/keyboards/cannonkeys/ripple/config.h b/keyboards/cannonkeys/ripple/config.h
index 68745474c9..d95e23cfaa 100644
--- a/keyboards/cannonkeys/ripple/config.h
+++ b/keyboards/cannonkeys/ripple/config.h
@@ -12,7 +12,7 @@
/* Locking resynchronize hack */
#define LOCKING_RESYNC_ENABLE
-#define WS2812_SPI SPID2
+#define WS2812_SPI_DRIVER SPID2
#define WS2812_SPI_MOSI_PAL_MODE 0
#define WS2812_SPI_SCK_PAL_MODE 0
#define WS2812_SPI_SCK_PIN B13
diff --git a/keyboards/cannonkeys/sagittarius/config.h b/keyboards/cannonkeys/sagittarius/config.h
index b48d66fd78..b8cdc797d0 100644
--- a/keyboards/cannonkeys/sagittarius/config.h
+++ b/keyboards/cannonkeys/sagittarius/config.h
@@ -26,7 +26,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
/* Locking resynchronize hack */
#define LOCKING_RESYNC_ENABLE
-#define WS2812_SPI SPID2
+#define WS2812_SPI_DRIVER SPID2
#define WS2812_SPI_MOSI_PAL_MODE 0
#define WS2812_SPI_SCK_PAL_MODE 0
#define WS2812_SPI_SCK_PIN B13
diff --git a/keyboards/cannonkeys/savage65/config.h b/keyboards/cannonkeys/savage65/config.h
index 0adcfdfa92..0b1e0948b3 100644
--- a/keyboards/cannonkeys/savage65/config.h
+++ b/keyboards/cannonkeys/savage65/config.h
@@ -26,7 +26,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
/* Locking resynchronize hack */
#define LOCKING_RESYNC_ENABLE
-#define WS2812_SPI SPID2
+#define WS2812_SPI_DRIVER SPID2
#define WS2812_SPI_MOSI_PAL_MODE 0
#define WS2812_SPI_SCK_PAL_MODE 0
#define WS2812_SPI_SCK_PIN B13
diff --git a/keyboards/cannonkeys/serenity/config.h b/keyboards/cannonkeys/serenity/config.h
index 4b06e24a1c..5f31f2374d 100644
--- a/keyboards/cannonkeys/serenity/config.h
+++ b/keyboards/cannonkeys/serenity/config.h
@@ -21,7 +21,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define BACKLIGHT_PWM_CHANNEL 1
#define BACKLIGHT_PAL_MODE 1
-#define WS2812_SPI SPID2
+#define WS2812_SPI_DRIVER SPID2
#define WS2812_SPI_MOSI_PAL_MODE 0
#define WS2812_SPI_SCK_PAL_MODE 0
#define WS2812_SPI_SCK_PIN B13
diff --git a/keyboards/cannonkeys/tmov2/config.h b/keyboards/cannonkeys/tmov2/config.h
index bea77ceac2..f3d6237a78 100644
--- a/keyboards/cannonkeys/tmov2/config.h
+++ b/keyboards/cannonkeys/tmov2/config.h
@@ -26,7 +26,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
/* Locking resynchronize hack */
#define LOCKING_RESYNC_ENABLE
-#define WS2812_SPI SPID2
+#define WS2812_SPI_DRIVER SPID2
#define WS2812_SPI_MOSI_PAL_MODE 0
#define WS2812_SPI_SCK_PAL_MODE 0
#define WS2812_SPI_SCK_PIN B13
diff --git a/keyboards/cannonkeys/tmov2/keymaps/brandonschlack/keymap.c b/keyboards/cannonkeys/tmov2/keymaps/brandonschlack/keymap.c
deleted file mode 100644
index 2a95402863..0000000000
--- a/keyboards/cannonkeys/tmov2/keymaps/brandonschlack/keymap.c
+++ /dev/null
@@ -1,173 +0,0 @@
-/* Copyright 2020 Brandon Schlack
- *
- * 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 "brandonschlack.h"
-
-/**
- * Layer Names
- *
- * Layers mostly used for macro keys
- */
-#define _REEDER _M1
-#define _NAV _M2
-#define _MOUSE _M3
-
-/**
- * Keycodes & Macros
- */
-#define TG_BASE TO(_BASE)
-#define TG_REDR TO(_REEDER)
-#define TG_NAV TO(_NAV)
-#define TG_MOUS TO(_MOUSE)
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- /**
- * Base
- * ┌───┬┬┬─────┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
- * │Esc│││Tab  │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │{ [│} ]│Bck│
- * ├───┼┼┼─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴───┤
- * │PgU│││HyEsc │ A │ S │ D │ F │ G │ H │ J │ K │ L │: ;│" '│ Enter│
- * ├───┼┼┼──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴──┬───┤
- * │PgD│││Shift   │ Z │ X │ C │ V │ B │ N │ M │< ,│> .│? /│Shft│ Fn│
- * ├───┼┼┼┬┬┬┬┬┬┬┬┴──┬┴───┴┬──┴───┴─┬─┴───┴───┴┬──┴──┬┴──┬┼┬┬┬┬┼┬┬┬┤
- * │End│││││││││││Opt│Cmd  │        │          │  Cmd│Ctl│││││││││││
- * └───┴┴┴┴┴┴┴┴┴┴┴───┴─────┴────────┴──────────┴─────┴───┴┴┴┴┴┴┴┴┴┴┘
- */
- [_BASE] = LAYOUT_default(
- KC_ESC, 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_BSPC,
- KC_PGUP, HY_ESC, 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, XXXXXXX, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, PLY_FN1,
- KC_END, KC_LOPT, KC_LCMD, SPC_RAI, SPC_RAI, KC_RCMD, KC_RCTL
- ),
- /**
- * Reeder
- * ┌───┬┬┬─────┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
- * │ P │││     │   │   │   │   │   │   │   │   │   │   │   │   │   │
- * ├───┼┼┼─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴───┤
- * │ K │││      │   │   │   │   │   │   │   │   │   │   │   │      │
- * ├───┼┼┼──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴──┬───┤
- * │ J │││        │   │   │   │   │   │   │   │   │   │   │    │   │
- * ├───┼┼┼┬┬┬┬┬┬┬┬┴──┬┴───┴┬──┴───┴─┬─┴───┴───┴┬──┴──┬┴──┬┼┬┬┬┬┼┬┬┬┤
- * │ N │││││││││││   │     │        │          │     │   │││││││││││
- * └───┴┴┴┴┴┴┴┴┴┴┴───┴─────┴────────┴──────────┴─────┴───┴┴┴┴┴┴┴┴┴┴┘
- */
- [_REEDER] = LAYOUT_default(
- KC_P, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- KC_K, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- KC_J, _______, XXXXXXX, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- KC_N, _______, _______, _______, _______, _______, _______
- ),
- /**
- * Nav
- * ┌───┬┬┬─────┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
- * │ → │││     │   │   │   │   │   │   │   │   │   │   │   │   │   │
- * ├───┼┼┼─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴───┤
- * │ ↑ │││      │   │   │   │   │   │   │   │   │   │   │   │      │
- * ├───┼┼┼──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴──┬───┤
- * │ ↓ │││        │   │   │   │   │   │   │   │   │   │   │    │   │
- * ├───┼┼┼┬┬┬┬┬┬┬┬┴──┬┴───┴┬──┴───┴─┬─┴───┴───┴┬──┴──┬┴──┬┼┬┬┬┬┼┬┬┬┤
- * │ ← │││││││││││   │     │        │          │     │   │││││││││││
- * └───┴┴┴┴┴┴┴┴┴┴┴───┴─────┴────────┴──────────┴─────┴───┴┴┴┴┴┴┴┴┴┴┘
- */
- [_NAV] = LAYOUT_default(
- KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- KC_DOWN, _______, XXXXXXX, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- KC_LEFT, _______, _______, _______, _______, _______, _______
- ),
- /**
- * Mouse
- * ┌───┬┬┬─────┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
- * │WhU│││     │   │   │   │   │   │   │   │   │   │   │   │   │   │
- * ├───┼┼┼─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴───┤
- * │ ↑ │││      │   │   │   │   │   │   │   │   │   │   │   │      │
- * ├───┼┼┼──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴──┬───┤
- * │ ↓ │││        │   │   │   │   │   │   │   │   │   │   │    │   │
- * ├───┼┼┼┬┬┬┬┬┬┬┬┴──┬┴───┴┬──┴───┴─┬─┴───┴───┴┬──┴──┬┴──┬┼┬┬┬┬┼┬┬┬┤
- * │WhD│││││││││││   │     │        │          │     │   │││││││││││
- * └───┴┴┴┴┴┴┴┴┴┴┴───┴─────┴────────┴──────────┴─────┴───┴┴┴┴┴┴┴┴┴┴┘
- */
- [_MOUSE] = LAYOUT_default(
- MC_WH_U, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- KC_DOWN, _______, XXXXXXX, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- MC_WH_D, _______, _______, _______, _______, _______, _______
- ),
- /**
- * Lower
- * ┌───┬┬┬─────┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
- * │Nxt│││Del  │BrD│BrU│Msn│LHP│   │   │   │   │   │   │ ↑ │Mut│SlD│
- * ├───┼┼┼─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴───┤
- * │VlU│││HyCaps│   │   │NxW│PvT│Bck│Fwd│NxT│   │   │ ← │ → │ Play │
- * ├───┼┼┼──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴──┬───┤
- * │VlD│││        │   │   │   │1PX│1Ps│   │   │   │   │ ↓ │    │   │
- * ├───┼┼┼┬┬┬┬┬┬┬┬┴──┬┴───┴┬──┴───┴─┬─┴───┴───┴┬──┴──┬┴──┬┼┬┬┬┬┼┬┬┬┤
- * │Prv│││││││││││   │     │        │          │     │   │││││││││││
- * └───┴┴┴┴┴┴┴┴┴┴┴───┴─────┴────────┴──────────┴─────┴───┴┴┴┴┴┴┴┴┴┴┘
- */
- [_LOWER] = LAYOUT_default(
- KC_MNXT, KC_DEL, KC_BRMD, KC_BRMU, MC_MSSN, MC_LHPD, _______, _______, _______, _______, _______, _______, KC_UP, KC_MUTE, MC_SLPD,
- KC_VOLU, HY_CAPS, _______, _______, NXT_WIN, PRV_TAB, MC_BACK, MC_FWRD, NXT_TAB, _______, _______, KC_LEFT, KC_RGHT, KC_MPLY,
- KC_VOLD, _______, XXXXXXX, _______, _______, _______, PX_AFLL, OP_AFLL, _______, _______, _______, _______, KC_DOWN, _______, _______,
- KC_MPRV, _______, _______, _______, _______, _______, _______
- ),
-
- /**
- * Raise
- * ┌───┬┬┬─────┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
- * │Hom│││~ `  │! 1│@ 2│# 3│$ 4│% 5│^ 6│& 7│* 8│( 9│) 0│_ -│+ =│   │
- * ├───┼┼┼─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴───┤
- * │PgU│││      │ F1│ F2│ F3│ F4│ F5│ F6│_ -│+ =│   │   │   │      │
- * ├───┼┼┼──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴──┬───┤
- * │PgD│││        │ F7│ F8│ F9│F10│F11│F12│   │   │   │| \│    │   │
- * ├───┼┼┼┬┬┬┬┬┬┬┬┴──┬┴───┴┬──┴───┴─┬─┴───┴───┴┬──┴──┬┴──┬┼┬┬┬┬┼┬┬┬┤
- * │End│││││││││││   │     │        │          │     │   │││││││││││
- * └───┴┴┴┴┴┴┴┴┴┴┴───┴─────┴────────┴──────────┴─────┴───┴┴┴┴┴┴┴┴┴┴┘
- */
- [_RAISE] = LAYOUT_default(
- KC_HOME, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, _______,
- KC_PGUP, _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, _______, _______, _______, _______,
- KC_PGDN, _______, XXXXXXX, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, KC_BSLS, _______, _______,
- KC_END, _______, _______, _______, _______, _______, _______
- ),
- /**
- * Adjust
- * ┌───┬┬┬─────┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
- * │Bse│││Make │   │   │EEP│RST│   │   │   │   │   │   │   │   │   │
- * ├───┼┼┼─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴───┤
- * │Rdr│││      │   │   │   │   │   │   │   │   │   │   │   │      │
- * ├───┼┼┼──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴──┬───┤
- * │Nav│││        │   │   │   │   │   │   │   │   │   │   │    │   │
- * ├───┼┼┼┬┬┬┬┬┬┬┬┴──┬┴───┴┬──┴───┴─┬─┴───┴───┴┬──┴──┬┴──┬┼┬┬┬┬┼┬┬┬┤
- * │Mse│││││││││││   │     │        │          │     │   │││││││││││
- * └───┴┴┴┴┴┴┴┴┴┴┴───┴─────┴────────┴──────────┴─────┴───┴┴┴┴┴┴┴┴┴┴┘
- */
- [_ADJUST] = LAYOUT_default(
- TG_BASE, QM_MAKE, _______, _______, EE_CLR, QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- TG_REDR, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- TG_NAV, _______, XXXXXXX, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- TG_MOUS, _______, _______, _______, _______, _______, _______
- ),
-};
-
-void keyboard_post_init_keymap(void) {
- rgblight_disable_noeeprom();
-}
-
-layer_state_t layer_state_set_keymap(layer_state_t state) {
- return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST);
-}
diff --git a/keyboards/cannonkeys/tsukuyomi/config.h b/keyboards/cannonkeys/tsukuyomi/config.h
index 0adcfdfa92..0b1e0948b3 100644
--- a/keyboards/cannonkeys/tsukuyomi/config.h
+++ b/keyboards/cannonkeys/tsukuyomi/config.h
@@ -26,7 +26,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
/* Locking resynchronize hack */
#define LOCKING_RESYNC_ENABLE
-#define WS2812_SPI SPID2
+#define WS2812_SPI_DRIVER SPID2
#define WS2812_SPI_MOSI_PAL_MODE 0
#define WS2812_SPI_SCK_PAL_MODE 0
#define WS2812_SPI_SCK_PIN B13
diff --git a/keyboards/cannonkeys/typeb/rules.mk b/keyboards/cannonkeys/typeb/rules.mk
index 59f8593f18..6e7633bfe0 100644
--- a/keyboards/cannonkeys/typeb/rules.mk
+++ b/keyboards/cannonkeys/typeb/rules.mk
@@ -1,2 +1 @@
-EEPROM_DRIVER = wear_leveling
-WEAR_LEVELING_DRIVER = rp2040_flash
+# This file intentionally left blank
diff --git a/keyboards/capsunlocked/cu75/config.h b/keyboards/capsunlocked/cu75/config.h
index b8cd9eeebb..b9449c4714 100644
--- a/keyboards/capsunlocked/cu75/config.h
+++ b/keyboards/capsunlocked/cu75/config.h
@@ -17,8 +17,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#pragma once
-#define BACKLIGHT_PWM_MAP {8, 16, 40, 55, 70, 128, 200, 255}
-
/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
#define LOCKING_SUPPORT_ENABLE
/* Locking resynchronize hack */
diff --git a/keyboards/capsunlocked/cu75/cu75.c b/keyboards/capsunlocked/cu75/cu75.c
index c894d18602..f980b0d9e1 100644
--- a/keyboards/capsunlocked/cu75/cu75.c
+++ b/keyboards/capsunlocked/cu75/cu75.c
@@ -1,15 +1,8 @@
-#include <avr/sfr_defs.h>
-#include <avr/timer_avr.h>
-#include <avr/wdt.h>
#include "cu75.h"
-#include "debug.h"
-#include "../lfkeyboards/issi.h"
-#include "../lfkeyboards/TWIlib.h"
-#include "../lfkeyboards/lighting.h"
+#include <avr/wdt.h>
#ifdef AUDIO_ENABLE
float test_sound[][2] = SONG(STARTUP_SOUND);
-#include "audio.h"
#endif
uint16_t click_hz = CLICK_HZ;
@@ -34,9 +27,6 @@ void matrix_init_kb(void)
setPinOutput(C6);
writePinLow(C6);
#endif
-#ifdef ISSI_ENABLE
- issi_init();
-#endif
}
void matrix_scan_kb(void)
@@ -44,30 +34,6 @@ void matrix_scan_kb(void)
#ifdef WATCHDOG_ENABLE
wdt_reset();
#endif
-#ifdef ISSI_ENABLE
- // switch/underglow lighting update
- static uint32_t issi_device = 0;
- static uint32_t twi_last_ready = 0;
- if(twi_last_ready > 1000){
- // Its been way too long since the last ISSI update, reset the I2C bus and start again
- dprintf("TWI failed to recover, TWI re-init\n");
- twi_last_ready = 0;
- TWIInit();
- force_issi_refresh();
- }
- if(isTWIReady()){
- twi_last_ready = 0;
- // If the i2c bus is available, kick off the issi update, alternate between devices
- update_issi(issi_device, issi_device);
- if(issi_device){
- issi_device = 0;
- }else{
- issi_device = 3;
- }
- }else{
- twi_last_ready++;
- }
-#endif
matrix_scan_user();
}
@@ -92,7 +58,6 @@ bool process_record_kb(uint16_t keycode, keyrecord_t* record)
}
if (keycode == QK_BOOT) {
reset_keyboard_kb();
- } else {
}
return process_record_user(keycode, record);
}
@@ -105,11 +70,3 @@ void reset_keyboard_kb(void){
#endif
reset_keyboard();
}
-
-// LFK lighting info
-const uint8_t switch_matrices[] = {0, 1};
-const uint8_t rgb_matrices[] = {6, 7};
-const uint8_t rgb_sequence[] = {
- 24, 23, 22, 21, 20, 19, 18, 17, 1, 2, 3, 4, 5,
- 6, 7, 8, 10, 11, 12, 13, 14, 15, 16, 9
-};
diff --git a/keyboards/capsunlocked/cu75/cu75.h b/keyboards/capsunlocked/cu75/cu75.h
index d17c1da26f..36797efd8f 100644
--- a/keyboards/capsunlocked/cu75/cu75.h
+++ b/keyboards/capsunlocked/cu75/cu75.h
@@ -1,23 +1,6 @@
#pragma once
#include "quantum.h"
-#include "matrix.h"
-#include <avr/sfr_defs.h>
-
-typedef struct RGB_Color {
- uint16_t red;
- uint16_t green;
- uint16_t blue;
-} RGB_Color;
-
-typedef struct Layer_Info {
- uint32_t layer;
- uint32_t mask;
- RGB_Color color;
-} Layer_Info;
-
-extern const uint32_t layer_count;
-extern const Layer_Info layer_info[];
#define CLICK_HZ 500
#define CLICK_MS 2
diff --git a/keyboards/capsunlocked/cu75/info.json b/keyboards/capsunlocked/cu75/info.json
index 24aed787ef..25e3ca049f 100644
--- a/keyboards/capsunlocked/cu75/info.json
+++ b/keyboards/capsunlocked/cu75/info.json
@@ -13,30 +13,6 @@
"rows": ["F1", "B7", "B3", "D2", "D3", "B2"]
},
"diode_direction": "COL2ROW",
- "backlight": {
- "driver": "custom",
- "levels": 8
- },
- "rgblight": {
- "driver": "custom",
- "hue_steps": 10,
- "led_count": 24,
- "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": "C7"
- },
"processor": "atmega32u4",
"bootloader": "atmel-dfu",
"layouts": {
diff --git a/keyboards/capsunlocked/cu75/keymaps/default/rules.mk b/keyboards/capsunlocked/cu75/keymaps/default/rules.mk
index 483baa7993..b4a28dd964 100644
--- a/keyboards/capsunlocked/cu75/keymaps/default/rules.mk
+++ b/keyboards/capsunlocked/cu75/keymaps/default/rules.mk
@@ -4,10 +4,5 @@ EXTRAKEY_ENABLE = yes # Audio control and System control
CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
NKRO_ENABLE = yes
-BACKLIGHT_ENABLE = yes # Disable keyboard backlight functionality
AUDIO_ENABLE = no # Audio output
-RGBLIGHT_ENABLE = yes # Disable RGB underlight
-SLEEP_LED_ENABLE = yes
-
-ISSI_ENABLE = yes # If the I2C pullup resistors aren't install this must be disabled
WATCHDOG_ENABLE = no # Resets keyboard if matrix_scan isn't run every 250ms
diff --git a/keyboards/capsunlocked/cu75/keymaps/iso/rules.mk b/keyboards/capsunlocked/cu75/keymaps/iso/rules.mk
index 0058113605..c692135bf3 100644
--- a/keyboards/capsunlocked/cu75/keymaps/iso/rules.mk
+++ b/keyboards/capsunlocked/cu75/keymaps/iso/rules.mk
@@ -4,10 +4,5 @@ EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
CONSOLE_ENABLE = yes # Console for debug(+400)
COMMAND_ENABLE = yes # Commands for debug and configuration
NKRO_ENABLE = yes
-# BACKLIGHT_ENABLE = no # Disable keyboard backlight functionality
AUDIO_ENABLE = no # Audio output
-RGBLIGHT_ENABLE = no # Disable RGB underlight
-SLEEP_LED_ENABLE = yes
-
-ISSI_ENABLE = no # If the I2C pullup resistors aren't install this must be disabled
WATCHDOG_ENABLE = yes # Resets keyboard if matrix_scan isn't run every 250ms
diff --git a/keyboards/capsunlocked/cu75/post_rules.mk b/keyboards/capsunlocked/cu75/post_rules.mk
index a5d9746664..1a3c10d3a1 100644
--- a/keyboards/capsunlocked/cu75/post_rules.mk
+++ b/keyboards/capsunlocked/cu75/post_rules.mk
@@ -1,7 +1,3 @@
-ifeq ($(strip $(ISSI_ENABLE)), yes)
- OPT_DEFS += -DISSI_ENABLE
-endif
-
ifeq ($(strip $(WATCHDOG_ENABLE)), yes)
OPT_DEFS += -DWATCHDOG_ENABLE
endif
diff --git a/keyboards/capsunlocked/cu75/rules.mk b/keyboards/capsunlocked/cu75/rules.mk
index cf757fc166..e69de29bb2 100644
--- a/keyboards/capsunlocked/cu75/rules.mk
+++ b/keyboards/capsunlocked/cu75/rules.mk
@@ -1,3 +0,0 @@
-# TODO: These boards need to be converted to RGB Matrix
-VPATH += keyboards/lfkeyboards
-SRC = TWIlib.c issi.c lighting.c
diff --git a/keyboards/centromere/keymaps/mattly/keymap.c b/keyboards/centromere/keymaps/mattly/keymap.c
deleted file mode 100644
index bee7e98e12..0000000000
--- a/keyboards/centromere/keymaps/mattly/keymap.c
+++ /dev/null
@@ -1,55 +0,0 @@
-#include QMK_KEYBOARD_H
-#include "mattly.h"
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
- // I apparently soldered in my switches on the wrong sides of the boards, so this is mirrored
-
- [_BASE_MAC] = LAYOUT_split_3x6_3(
- KC_SCLN, KC_P, O_CTL, I_ALT, U_GUI, KC_Y, KC_T, R_GUI, E_ALT, W_CTL, KC_Q, KC_BSPC,
- KC_QUOT, MINSCTL, L_ALT, K_GUI, J_SFT, KC_H, KC_G, F_SFT, D_GUI, S_ALT, A_CTL, KC_CAPS,
- KC_ENT, KC_SLSH, KC_DOT, KC_COMM, KC_M, KC_N, KC_B, KC_V, KC_C, KC_X, KC_Z, NAVLOCK,
- DEL_WRP, BSP_SYM, SPC_SFT, SPC_SFT, TAB_NUM, ESC_HYP
- ),
-
- [_OVER_WIN] = LAYOUT_split_3x6_3(
- _______, _______, O_GUI, _______, U_CTL, _______, _______, R_CTL, _______, W_GUI, _______, _______,
- _______, MINSGUI, _______, K_CTL, _______, _______, _______, _______, D_CTL, _______, A_GUI, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______
- ),
-
-
- [_SYMBOL] = LAYOUT_split_3x6_3(
- _______, XXXXXXX, KC_ASTR, KC_PLUS, KC_RABK, KC_LABK, KC_RBRC, KC_LBRC, KC_TILD, KC_GRV, KC_AMPR, _______,
- _______, KC_UNDS, KC_AT, KC_EXLM, KC_COLN, KC_SCLN, KC_RPRN, KC_LPRN, KC_EQL, KC_PERC, KC_DLR, _______,
- _______, KC_QUES, KC_BSLS, KC_PIPE, KC_DQUO, KC_QUOT, KC_RCBR, KC_LCBR, KC_HASH, KC_CIRC, KC_HASH, XXXXXXX,
- _______, _______, _______, _______, _______, _______
- ),
-
- [_NAVNUM] = LAYOUT_split_3x6_3(
- KC_PLUS, KC_DOT, KC_P9, KC_P8, KC_P7, KC_DLR, KC_PGUP, M_FWORD, KC_UP, M_BWORD, M_NAVFW, M_NXWIN,
- KC_MINS, KC_EQL, KC_P6, KC_P5, KC_P4, KC_PERC, KC_PGDN, KC_RGHT, KC_DOWN, KC_LEFT, M_NAVBK, M_PVWIN,
- KC_ASTR, KC_COMM, KC_P3, KC_P2, KC_P1, KC_P0, M_NXTAB, KC_END, XXXXXXX, KC_HOME, M_PVTAB, _______,
- KC_P0, _______, _______, _______, _______, _______
- ),
- [_NAVNUM_WIN] = LAYOUT_split_3x6_3(
- _______, _______, _______, _______, _______, _______, _______, W_FWORD, _______, W_BWORD, W_NAVFW, W_NXWIN,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, W_NAVBK, W_PVWIN,
- _______, _______, _______, _______, _______, _______, W_NXTAB, _______, _______, _______, W_PVTAB, _______,
- _______, _______, _______, _______, _______, _______
- ),
-
- [_FUNCT] = LAYOUT_split_3x6_3(
- KC_F15, KC_F12, KC_F9, KC_F8, KC_F7, KC_VOLU, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, QK_BOOT,
- KC_F14, KC_F11, KC_F6, KC_F5, KC_F4, KC_MUTE, XXXXXXX, TOG_WIN, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
- KC_F13, KC_F10, KC_F3, KC_F2, KC_F1, KC_VOLD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
- _______, _______, _______, _______, _______, _______
- ),
- [_FUNCT_WIN] = LAYOUT_split_3x6_3(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______
- ),
-};
diff --git a/keyboards/centromere/keymaps/mattly/rules.mk b/keyboards/centromere/keymaps/mattly/rules.mk
deleted file mode 100644
index 0a5b666e85..0000000000
--- a/keyboards/centromere/keymaps/mattly/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-MOUSEKEY_ENABLE = no
diff --git a/keyboards/centromere/rules.mk b/keyboards/centromere/rules.mk
index 2171d801e5..26081e4132 100644
--- a/keyboards/centromere/rules.mk
+++ b/keyboards/centromere/rules.mk
@@ -18,4 +18,4 @@ CUSTOM_MATRIX = lite
# project specific files
SRC += matrix.c
-QUANTUM_LIB_SRC += uart.c
+UART_DRIVER_REQUIRED = yes
diff --git a/keyboards/checkerboards/quark/keymaps/ajp10304/keymap.c b/keyboards/checkerboards/quark/keymaps/ajp10304/keymap.c
deleted file mode 100644
index b5b4721ce6..0000000000
--- a/keyboards/checkerboards/quark/keymaps/ajp10304/keymap.c
+++ /dev/null
@@ -1,219 +0,0 @@
-/* Copyright 2021 Alan Pocklington
- *
- * 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 "ajp10304.h"
-#include "keymap_uk.h"
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
-/* Qwerty
- * ,-----------------------------------------------------------------------------------.
- * | Esc | Q | W | E | R | T | Y | U | I | O | P | Bksp |
- * |------+------+------+------+------+-------------+------+------+------+------+------|
- * | Tab | A | S | D | F | G | H | J | K | L | ;: | Enter|
- * |------+------+------+------+------+------|------+------+------+------+------+------|
- * | Shft | Z | X | C | V | B | N | M | ,< | .> | /? | Shft |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | Fn | Ctrl | Alt | GUI |Lower | Bksp |Space |Raise | Shift| MENU | Ctrl | Fn2 |
- * `-----------------------------------------------------------------------------------'
- */
-[_QWERTY] = LAYOUT_ortho_4x12(
- LT(_NUMPAD, KC_ESC), KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC ,
- MT(MOD_LSFT, KC_TAB), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, MT(MOD_RSFT, 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 ,
- MO(_FUNC), KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_BSPC, KC_SPC, RAISE, KC_LSFT, KC_BTN2, KC_RCTL, MO(_FUNC2)
-),
-
-/* Colemak-DHm
- * ,-----------------------------------------------------------------------------------.
- * | Esc | Q | W | F | P | B | J | L | U | Y | ;: | Bksp |
- * |------+------+------+------+------+-------------+------+------+------+------+------|
- * | Tab | A | R | S | T | G | M | N | E | I | O | Enter|
- * |------+------+------+------+------+------|------+------+------+------+------+------|
- * | Shft | Z | X | C | D | V | K | H | ,< | .> | /? | Shft |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | Fn | Ctrl | Alt | GUI |Lower | Bksp |Space |Raise | Shift| MENU | Ctrl | Fn2 |
- * `-----------------------------------------------------------------------------------'
- */
-[_COLEMAK] = LAYOUT_ortho_4x12(
- LT(_NUMPAD, KC_ESC), KC_Q, KC_W, KC_F, KC_P, KC_B, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC ,
- MT(MOD_LSFT, KC_TAB), KC_A, KC_R, KC_S, KC_T, KC_G, KC_M, KC_N, KC_E, KC_I, KC_O, MT(MOD_RSFT, KC_ENT) ,
- KC_LSFT, KC_Z, KC_X, KC_C, KC_D, KC_V, KC_K, KC_H, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT ,
- MO(_FUNC), KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_BSPC, KC_SPC, RAISE, KC_LSFT, KC_BTN2, KC_RCTL, MO(_FUNC2)
-),
-
-/* Function
- * ,-----------------------------------------------------------------------------------.
- * | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 |
- * |------+------+------+------+------+-------------+------+------+------+------+------|
- * | 1! | 2" | 3£ | 4$ | 5% | 6^ | 7& | 8* | 9( | 0) | ~ |INSERT|
- * |------+------+------+------+------+------|------+------+------+------+------+------|
- * | Shift| \| | `¬ | #~ | * | -_ | =+ | \| | [{ | ]} | '@ |Shift |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | Fn | Ctrl | Alt | GUI |Lower | Bksp |Space |Mouse | MENU | Alt | Ctrl | Fn |
- * `-----------------------------------------------------------------------------------'
- */
-[_FUNC] = LAYOUT_ortho_4x12(
- 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_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, UK_TILD, KC_INSERT ,
- KC_LSFT, KC_NUBS, KC_GRAVE, KC_NONUS_HASH, KC_PAST, KC_MINS, KC_EQL, KC_BSLS, KC_LBRC, KC_RBRC, KC_QUOT, MT(MOD_RSFT, KC_ENT) ,
- _______, _______, _______, _______, _______, _______, _______, MO(_MOUSE), _______, _______, _______, _______
-),
-
-/* Lower
- * ,-----------------------------------------------------------------------------------.
- * | 1! | 2" | 3£ | 4$ | 5% | 6^ | 7& | 8* | 9( | 0) | DEL | Bksp |
- * |------+------+------+------+------+-------------+------+------+------+------+------|
- * | ! | " | £ | $ | % | ^ | & | * | ( | ) |WrdDel|WrdBks|
- * |------+------+------+------+------+------|------+------+------+------+------+------|
- * | Shift| \| | `¬ | #~ | '@ | -_ | =+ | #~ | [{ | ]} | '@ |Shift |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | | | | |Lower | Del |Space | | Next | Vol- | Vol+ | Play |
- * `-----------------------------------------------------------------------------------'
- */
-[_LOWER] = LAYOUT_ortho_4x12(
- KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL, KC_BSPC ,
- LSFT(KC_1), LSFT(KC_2), LSFT(KC_3), LSFT(KC_4), LSFT(KC_5), LSFT(KC_6), LSFT(KC_7), LSFT(KC_8), LSFT(KC_9), LSFT(KC_0), LCTL(KC_DEL), LCTL(KC_BSPC) ,
- SC_LSPO, KC_NUBS, KC_GRAVE, KC_NONUS_HASH, KC_QUOT, KC_MINS, KC_EQL, KC_NONUS_HASH, KC_LBRC, KC_RBRC, KC_QUOT, MT(MOD_RSFT, KC_ENT) ,
- _______, _______, _______, _______, _______, KC_DEL, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY
-),
-
-/* Raise
- * ,-----------------------------------------------------------------------------------.
- * | ` | |WRDSEL| [ | ] | | | PGUP | HOME |PGDOWN| |PRNTSC|
- * |------+------+------+------+------+-------------+------+------+------+------+------|
- * | ` | | | ( | ) | | | HOME | UP | END | |ZOOM +|
- * |------+------+------+------+------+------|------+------+------+------+------+------|
- * | | | | { | } | | |< | LEFT | DOWN |RIGHT | >| |ZOOM -|
- * |------+------+------+------+------+------|------+------+------+------+------+------|
- * | Mouse| | | | | Alt | Enter|Raise | | | | |
- * `-----------------------------------------------------------------------------------'
- */
-[_RAISE] = LAYOUT_ortho_4x12(
- KC_GRV, XXXXXXX, M_WORD_SEL, KC_LBRC, KC_RBRC, XXXXXXX, XXXXXXX, KC_PGUP, KC_HOME, KC_PGDN, XXXXXXX, KC_PSCR ,
- KC_GRV, XXXXXXX, XXXXXXX, LSFT(KC_9), LSFT(KC_0), XXXXXXX, XXXXXXX, KC_HOME, KC_UP, KC_END, XXXXXXX, LCTL(LSFT(KC_EQL)) ,
- _______, XXXXXXX, XXXXXXX, LSFT(KC_LBRC), LSFT(KC_RBRC), XXXXXXX, LCTL(KC_LEFT), KC_LEFT, KC_DOWN, KC_RIGHT, LCTL(KC_RIGHT), LCTL(KC_MINS) ,
- MO(_MOUSE), _______, _______, _______, _______, KC_LALT, KC_ENT, _______, XXXXXXX, _______, _______, _______
-),
-
-/* Adjust (Lower + Raise)
- * ,------------------------------------------------------------------------------------.
- * | ???? | Reset|Qwerty| | | REC1 | REC2 | | | | | Del |
- * |------+------+------+------+------+-------------+------+------+------+------+-------|
- * | CAPS | | | | | PLAY1| PLAY2| Mute | Vol+ | Play | |Qwerty |
- * |------+------+------+------+------+------|------+------+------+------+------+-------|
- * | PC/MC| | | | | STOP | STOP | Prev | Vol- | Next | |Colemak|
- * |------+------+------+------+------+------+------+------+------+------+------+-------|
- * | | | | | | | | | | | |
- * `------------------------------------------------------------------------------------'
- */
-[_ADJUST] = LAYOUT_ortho_4x12(
- M_CUSTOM, QK_BOOT, QWERTY, BL_ON, BL_OFF, DM_REC1, DM_REC2, _______, _______, _______, _______, KC_DEL ,
- KC_CAPS, RGB_TOG, RGB_MOD, RGB_VAD, RGB_VAI, DM_PLY1, DM_PLY2, KC_AUDIO_MUTE, KC_AUDIO_VOL_UP, KC_MEDIA_PLAY_PAUSE, _______, QWERTY ,
- TG(_MAC), RGB_HUD, RGB_HUI, RGB_SAD, RGB_SAI, DM_RSTP, DM_RSTP, KC_MEDIA_PREV_TRACK, KC_AUDIO_VOL_DOWN, KC_MEDIA_NEXT_TRACK, _______, COLEMAK ,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
-),
-
-/* Mouse
- * ,-----------------------------------------------------------------------------------.
- * | ESC | | | | | | | | BTN3 | | | |
- * |------+------+------+------+------+-------------+------+------+------+------+------|
- * | ACC0 | ACC1 | ACC2 | | | | | BTN1 | UP | BTN2 | | |
- * |------+------+------+------+------+------|------+------+------+------+------+------|
- * | ACC0 | ACC1 | ACC2 | | | | | LEFT | DOWN |RIGHT | | |
- * |------+------+------+------+------+------|------+------+------+------+------+------|
- * | | | | | | | | | | | | |
- * `-----------------------------------------------------------------------------------'
- */
-[_MOUSE] = LAYOUT_ortho_4x12(
- KC_ESC , _______, _______, _______, _______, _______, _______, _______, KC_MS_BTN3, _______, _______, _______,
- KC_MS_ACCEL0, KC_MS_ACCEL1, KC_MS_ACCEL2, _______, _______, _______, _______, KC_MS_BTN1, KC_MS_UP, KC_MS_BTN2, _______, _______,
- KC_MS_ACCEL0, KC_MS_ACCEL1, KC_MS_ACCEL2, _______, _______, _______, _______, KC_MS_LEFT, KC_MS_DOWN, KC_MS_RIGHT, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
-),
-
-/* Num Pad
- * ,-----------------------------------------------------------------------------------.
- * | ESC | | | | | |NMLOCK| 7 | 8 | 9 | / | |
- * |------+------+------+------+------+-------------+------+------+------+------+------|
- * | | | | | | | | 4 | 5 | 6 | * | |
- * |------+------+------+------+------+------|------+------+------+------+------+------|
- * | | | | | | | | 1 | 2 | 3 | + | |
- * |------+------+------+------+------+------|------+------+------+------+------+------|
- * | | | | | | | | 0 | . | , | - | |
- * `-----------------------------------------------------------------------------------'
- */
-[_NUMPAD] = LAYOUT_ortho_4x12(
- _______, _______, _______, _______, _______, _______, KC_NUM, KC_KP_7, KC_KP_8, KC_KP_9, KC_KP_SLASH, _______,
- _______, _______, _______, _______, _______, _______, _______, KC_KP_4, KC_KP_5, KC_KP_6, KC_KP_ASTERISK, _______,
- _______, _______, _______, _______, _______, _______, _______, KC_KP_1, KC_KP_2, KC_KP_3, KC_KP_PLUS, _______,
- _______, _______, _______, _______, _______, _______, _______, KC_KP_0, KC_KP_DOT, KC_COMM, KC_KP_MINUS, _______
-),
-
-/* Function 2 (Right hand side)
- * ,-----------------------------------------------------------------------------------.
- * | | |WRDSEL| | | | LNDEL| | | | | |
- * |------+------+------+------+------+-------------+------+------+------+------+------|
- * | | | LNSEL| DUP | | | | |LNJOIN| | | |
- * |------+------+------+------+------+------|------+------+------+------+------+------|
- * | | UNDO | CUT | COPY | PASTE| | | | | | | MODE |
- * |------+------+------+------+------+------|------+------+------+------+------+------|
- * | | | | | | | | | | | | |
- * `-----------------------------------------------------------------------------------'
- */
-[_FUNC2] = LAYOUT_ortho_4x12(
- _______, _______, M_WORD_SEL, _______, _______, _______, M_LINE_DEL, _______, _______, _______, _______, _______,
- _______, _______, M_LINE_SEL, M_DUP, _______, _______, _______, M_JOIN, _______, _______, _______, _______,
- _______, LCTL(KC_Z), LCTL(KC_X), LCTL(KC_C), LCTL(KC_V), _______, _______, _______, _______, _______, _______, M_MODE,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
-),
-
-[_MAC]= LAYOUT_ortho_4x12(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- MFNC, _______, _______, _______, MLWR, _______, _______, MRSE, _______, _______, _______, MFNC2
-),
-
-[_MLWR] = LAYOUT_ortho_4x12(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
-),
-
-[_MRSE] = LAYOUT_ortho_4x12(
- _______, _______, M_WORD_SEL_MAC, _______, _______, _______, _______, _______, _______, _______, _______, _______ ,
- _______, _______, _______, _______, _______, _______, _______, LCTL(KC_A), _______, LCTL(KC_E), _______, LGUI(KC_EQL) ,
- _______, _______, _______, _______, _______, _______, LALT(KC_LEFT), _______, _______, _______, LALT(KC_RIGHT), LGUI(KC_MINS) ,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
-),
-
-[_MFNC]= LAYOUT_ortho_4x12(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, LGUI(KC_PENT) ,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
-),
-
-[_MFNC2] = LAYOUT_ortho_4x12(
- _______, _______, M_WORD_SEL_MAC, _______, _______, _______, M_LINE_DEL_MAC, _______, _______, _______, _______, _______,
- _______, _______, M_LINE_SEL_MAC, M_DUP_MAC, _______, _______, _______, M_JOIN_MAC, _______, _______, _______, _______,
- _______, LGUI(KC_Z), LGUI(KC_X), LGUI(KC_C), LGUI(KC_V), _______, _______, _______, _______, _______, _______, M_MODE_MAC,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
-)
-
-};
diff --git a/keyboards/checkerboards/quark/keymaps/ajp10304/readme.md b/keyboards/checkerboards/quark/keymaps/ajp10304/readme.md
deleted file mode 100644
index 5c9169fa47..0000000000
--- a/keyboards/checkerboards/quark/keymaps/ajp10304/readme.md
+++ /dev/null
@@ -1,126 +0,0 @@
-# AJP10304 Custom Quark Layout
-# Also available for the Planck, JJ40 and Atreus50
-
-**Note:** In the tables below where there are two characters on a key,
-the second is the output when shift is applied.
-
-**Note:** The below tables assume a UK layout.
-
-#### Flashing
-Refer to the README.md of the keyboard you want to flash.
-
-##### Main Qwerty Layer
-
-* Tab: when held, operates as shift.
-* Enter: when held, operates as shift.
-* MENU: perform right-click
-
-| | | | | | | | | | | | |
-| ---- |:----:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| ----:|
-| Esc | Q | W | E | R | T | Y | U | I | O | P | Bksp |
-| Tab | A | S | D | F | G | H | J | K | L | ;: | Enter|
-| Shft | Z | X | C | V | B | N | M | ,< | .> | /? | Shft |
-| Fn | Ctrl | Alt | GUI |Lower | Bksp |Space |Raise | Shift| MENU | Ctrl | Fn2 |
-
-##### Main Colemak-DHm Layer
-
-| | | | | | | | | | | | |
-| ---- |:----:| :---:|:---:|:-----:|:----:|:-----:|:-----:|:-----:|:----:|:----:| ----:|
-| Esc | Q | W | F | P | B | J | L | U | Y | ;: | Bksp |
-| Tab | A | R | S | T | G | M | N | E | I | O | Enter|
-| Shft | Z | X | C | D | V | K | H | ,< | .> | /? | Shft |
-| Fn | Ctrl | Alt | GUI | Lower | Bksp | Space | Raise | Shift | MENU | Ctrl | Fn2 |
-
-##### Function Layer
-Activated when `fn` held in the above `qwerty` layer.
-
-| | | | | | | | | | | | |
-| :---: |:----:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:|
-| F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 |
-| 1! | 2" | 3£ | 4$ | 5% | 6^ | 7& | 8* | 9( | 0) | ~ |INSERT|
-| Shift | \| | `¬ | #~ | * | -_ | =+ | \| | [{ | ]} | '@ |Shift |
-| Fn | Ctrl | Alt | GUI |Lower | Bksp |Space |Mouse | MENU | Alt | Ctrl | Fn2 |
-
-##### Lower Layer
-Activated when `Lower` is held in the above `qwerty` layer.
-
-* Numbers are along the top row, their shifted counterparts are on row 2.
-* WrdBks: `backspace` with `ctrl` applied. I.e. delete a word.
-* WrdDel: `delete` with `ctrl` applied. I.e. forward delete a word.
-
-| | | | | | | | | | | | |
-| :---: |:----:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:|
-| 1! | 2" | 3£ | 4$ | 5% | 6^ | 7& | 8* | 9( | 0) | DEL | Bksp |
-| ! | " | £ | $ | % | ^ | & | * | ( | ) |WrdDel|WrdBks|
-| Shift | \| | `¬ | #~ | '@ | -_ | =+ | #~ | [{ | ]} | '@ |Shift |
-| | | | |Lower | Del |Space | | Next | Vol- | Vol+ | Play |
-
-##### Raise Layer
-Activated when `Raise` is held in the above `qwerty` layer.
-
-* Preferred layer for typing brackets.
-* Allows for cursor navigation to be used solely with the right hand.
-* WRDSEL: Select the word where the cursor is.
-* |< and >|: Apply `ctrl` to `left` and `right` respectively for word jumping.
-
-| | | | | | | | | | | | |
-| :---: |:----:| :---:| :---:| :---:| :---:| :---: | :---:| :---:| :---:| :---: | :---:|
-| ` | |WRDSEL| [ | ] | | | PGUP | HOME |PGDOWN| |PRNTSC|
-| ` | | | ( | ) | | | HOME | UP | END | |ZOOM +|
-| | | | { | } | |&#124;<| LEFT | DOWN |RIGHT |>&#124;|ZOOM -|
-| Mouse | | | | | Alt | Enter |Raise | | | | |
-
-##### Lower + Raise
-Activated when `Lower` and `Raise` are held together in the above `qwerty` layer.
-
-* Audio controls in the same position as cursor keys from the `Raise` layer.
-* ????: Runs a macro for outputting a text string. Do not use this store passwords.
-* Reset: Enter bootloader for flashing firmware to the keyboard.
-* CAPS: Toggle caps lock.
-* Macro functions: Allows recording of macros. To start recording the macro, press either REC1 or REC2.
-To finish the recording, press STOP. To replay the macro, press either PLAY1 or PLAY2.
-* MAC: Toggle MAC OS extensions to layers. This allows MLWR to be enabled with LOWER,
-MRSE with RAISE, MFNC with FUNC and MFNC2 with FUNC2 respectively.
-
-| | | | | | | | | | | | |
-| :---: |:----:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:|:-------:|
-| ???? | Reset|Qwerty| | | REC1 | REC2 | | | | | Del |
-| CAPS | | | | | PLAY1|PLAY2 | Mute | Vol+ | Play | | Qwerty |
-| MAC | | | | | STOP1|STOP2 | Prev | Vol- | Next | | Colemak |
-| | | | | | | | | DYN | | | |
-
-##### Function 2 Layer
-Activated when `fn` held in the above `qwerty` layer.
-* WRDSEL: Select the word where the cursor is.
-* LNDEL: Delete the line where the cursor is.
-* LNSEL: Select the line where the cursor is.
-* DUP: Duplicate the selected text.
-* LNJOIN: Join the line where the cursor is with the following line.
-* MODE: Print either `PC` or `OSX` depending on what layer mode is active.
-
-| | | | | | | | | | | | |
-| :---: | :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:|
-| | |WRDSEL| | | | LNDEL| | | | | |
-| | | LNSEL| DUP | | | | |LNJOIN| | | |
-| | UNDO | CUT | COPY | PASTE| | | | | | | MODE |
-| | | | | | | | | | | | |
-
-##### Mouse Layer
-Activated when `fn` and `raise` held together.
-
-| | | | | | | | | | | | |
-| :---: | :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:|
-| ESC | | | | | | W_L | W_UP | BTN3 | W_DWN| W_R | |
-| ACC0 | ACC1 | ACC2 | | | | | BTN1 | UP | BTN2 | | |
-| ACC0 | ACC1 | ACC2 | | | | | LEFT | DOWN | RIGHT| | |
-| | | | | | | | | | | | |
-
-##### Number Pad Layout
-Activated when holding `Esc` key.
-
-| | | | | | | | | | | | |
-| :---: | :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:|
-| | | | | | |NMLOCK| 7 | 8 | 9 | / | |
-| | | | | | | | 4 | 5 | 6 | * | |
-| | | | | | | | 1 | 2 | 3 | + | |
-| | | | | | | | 0 | . | , | - | |
diff --git a/keyboards/checkerboards/quark/keymaps/ajp10304/rules.mk b/keyboards/checkerboards/quark/keymaps/ajp10304/rules.mk
deleted file mode 100644
index 6c605daecf..0000000000
--- a/keyboards/checkerboards/quark/keymaps/ajp10304/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-MOUSEKEY_ENABLE = yes
diff --git a/keyboards/chord/zero/keymaps/default/keymap.c b/keyboards/chord/zero/keymaps/default/keymap.c
index a1edbe0cff..1134f264bc 100644
--- a/keyboards/chord/zero/keymaps/default/keymap.c
+++ b/keyboards/chord/zero/keymaps/default/keymap.c
@@ -2,7 +2,6 @@
// SPDX-License-Identifier: GPL-2.0-or-later
#include QMK_KEYBOARD_H
-#include "keymap_steno.h"
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT(
diff --git a/keyboards/chosfox/cf81/cf81.c b/keyboards/chosfox/cf81/cf81.c
index ab8afd0c63..ad7ec9bc55 100644
--- a/keyboards/chosfox/cf81/cf81.c
+++ b/keyboards/chosfox/cf81/cf81.c
@@ -18,8 +18,8 @@
// clang-format off
#ifdef RGB_MATRIX_ENABLE
-const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = {
-/* Refer to IS31 manual for these locations
+const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = {
+/* Refer to SNLED27351 manual for these locations
* driver
* | R location
* | | G location
diff --git a/keyboards/chosfox/cf81/config.h b/keyboards/chosfox/cf81/config.h
index b1ea8bba20..ae0d87d935 100644
--- a/keyboards/chosfox/cf81/config.h
+++ b/keyboards/chosfox/cf81/config.h
@@ -16,9 +16,6 @@
#pragma once
-/* Use 4 dynamic keymap layers */
-#define DYNAMIC_KEYMAP_LAYER_COUNT 4
-
/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
#define LOCKING_SUPPORT_ENABLE
/* Locking resynchronize hack */
@@ -32,12 +29,10 @@
#define SPI_MOSI_PAL_MODE 5
#define EXTERNAL_FLASH_SPI_SLAVE_SELECT_PIN C12
-#define WEAR_LEVELING_BACKING_SIZE (8 * 1024)
/* I2C Config for LED Driver */
-#define DRIVER_COUNT 2
-#define DRIVER_ADDR_1 0b1110100
-#define DRIVER_ADDR_2 0b1110111
+#define SNLED27351_I2C_ADDRESS_1 SNLED27351_I2C_ADDRESS_GND
+#define SNLED27351_I2C_ADDRESS_2 SNLED27351_I2C_ADDRESS_VDDIO
#define I2C1_OPMODE OPMODE_I2C
#define I2C1_CLOCK_SPEED 400000 /* 400000 */
diff --git a/keyboards/chosfox/cf81/info.json b/keyboards/chosfox/cf81/info.json
index 827347f41e..5dff610071 100644
--- a/keyboards/chosfox/cf81/info.json
+++ b/keyboards/chosfox/cf81/info.json
@@ -10,7 +10,11 @@
"suspend_wakeup_delay": 400
},
"eeprom": {
- "driver": "wear_leveling"
+ "driver": "wear_leveling",
+ "wear_leveling": {
+ "driver": "spi_flash",
+ "backing_size": 8192
+ }
},
"processor": "WB32FQ95",
"bootloader": "wb32-dfu",
@@ -35,7 +39,7 @@
]
},
"rgb_matrix": {
- "driver": "is31fl3733",
+ "driver": "snled27351",
"animations": {
"breathing": true,
"cycle_all": true,
diff --git a/keyboards/chosfox/cf81/rules.mk b/keyboards/chosfox/cf81/rules.mk
index 002458405e..6e7633bfe0 100644
--- a/keyboards/chosfox/cf81/rules.mk
+++ b/keyboards/chosfox/cf81/rules.mk
@@ -1 +1 @@
-WEAR_LEVELING_DRIVER = spi_flash
+# This file intentionally left blank
diff --git a/keyboards/chromatonemini/chromatonemini.c b/keyboards/chromatonemini/chromatonemini.c
index d7dc33a0e0..200ed31d36 100644
--- a/keyboards/chromatonemini/chromatonemini.c
+++ b/keyboards/chromatonemini/chromatonemini.c
@@ -19,66 +19,6 @@
#ifdef RGB_MATRIX_ENABLE
# define NO_LED 255
-led_config_t g_led_config = {
- {
-#if 0
- // register bottom two rows
- { 0, 4, 3, 2, 1, 41, 5, NO_LED },
- { 40, 6, 39, 7, 38, 8, 37, NO_LED },
- { 9, 36, 10, 35, 11, 34, 12, NO_LED },
- { 33, 13, 32, 14, 31, 15, 30, NO_LED },
- { 16, 29, 17, 28, 18, 27, 19, NO_LED },
- { 26, 20, 25, 21, 24, 22, 23, NO_LED }
-
- // register middle two rows
- { 0, 4, 3, 2, 1, 78, 42, NO_LED },
- { 77, 43, 76, 44, 75, 45, 74, NO_LED },
- { 46, 73, 47, 72, 48, 71, 49, NO_LED },
- { 70, 50, 69, 51, 68, 52, 67, NO_LED },
- { 53, 66, 54, 65, 55, 64, 56, NO_LED },
- { 63, 57, 62, 58, 61, 59, 60, NO_LED }
-
- // register top and bottom rows
- { 0, 4, 3, 2, 1, 115, 5, NO_LED },
- { 114, 6, 113, 7, 112, 8, 111, NO_LED },
- { 9, 110, 10, 109, 11, 108, 12, NO_LED },
- { 107, 13, 106, 14, 105, 15, 104, NO_LED },
- { 16, 103, 17, 102, 18, 101, 19, NO_LED },
- { 100, 20, 99, 21, 98, 22, 97, NO_LED }
-#else
- // register top two rows
- { 0, 4, 3, 2, 1, 115, 79, NO_LED },
- { 114, 80, 113, 81, 112, 82, 111, NO_LED },
- { 83, 110, 84, 109, 85, 108, 86, NO_LED },
- { 107, 87, 106, 88, 105, 89, 104, NO_LED },
- { 90, 103, 91, 102, 92, 101, 93, NO_LED },
- { 100, 94, 99, 95, 98, 96, 97, NO_LED }
-#endif
- }, {
- { 14, 12 },
- { 14, 36 },
- { 19, 48 }, { 9, 48 },
- { 14, 60 },
- { 39, 60 }, { 49, 60 }, { 59, 60 }, { 69, 60 }, { 79, 60 }, { 89, 60 }, { 99, 60 }, { 109, 60 }, { 119, 60 }, { 129, 60 }, { 139, 60 }, { 149, 60 }, { 159, 60 }, { 169, 60 }, { 179, 60 }, { 189, 60 }, { 199, 60 }, { 209, 60 },
- { 214, 48 }, { 204, 48 }, { 194, 48 }, { 184, 48 }, { 174, 48 }, { 164, 48 }, { 154, 48 }, { 144, 48 }, { 134, 48 }, { 124, 48 }, { 114, 48 }, { 104, 48 }, { 94, 48 }, { 84, 48 }, { 74, 48 }, { 64, 48 }, { 54, 48 }, { 44, 48 }, { 34, 48 },
- { 39, 36 }, { 49, 36 }, { 59, 36 }, { 69, 36 }, { 79, 36 }, { 89, 36 }, { 99, 36 }, { 109, 36 }, { 119, 36 }, { 129, 36 }, { 139, 36 }, { 149, 36 }, { 159, 36 }, { 169, 36 }, { 179, 36 }, { 189, 36 }, { 199, 36 }, { 209, 36 },
- { 214, 24 }, { 204, 24 }, { 194, 24 }, { 184, 24 }, { 174, 24 }, { 164, 24 }, { 154, 24 }, { 144, 24 }, { 134, 24 }, { 124, 24 }, { 114, 24 }, { 104, 24 }, { 94, 24 }, { 84, 24 }, { 74, 24 }, { 64, 24 }, { 54, 24 }, { 44, 24 }, { 34, 24 },
- { 39, 12 }, { 49, 12 }, { 59, 12 }, { 69, 12 }, { 79, 12 }, { 89, 12 }, { 99, 12 }, { 109, 12 }, { 119, 12 }, { 129, 12 }, { 139, 12 }, { 149, 12 }, { 159, 12 }, { 169, 12 }, { 179, 12 }, { 189, 12 }, { 199, 12 }, { 209, 12 },
- { 214, 0 }, { 204, 0 }, { 194, 0 }, { 184, 0 }, { 174, 0 }, { 164, 0 }, { 154, 0 }, { 144, 0 }, { 134, 0 }, { 124, 0 }, { 114, 0 }, { 104, 0 }, { 94, 0 }, { 84, 0 }, { 74, 0 }, { 64, 0} , { 54, 0 }, { 44, 0 }, { 34, 0 }
- }, {
- 1,
- 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, 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, 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, 4, 4, 4, 4, 4, 4, 4
- }
-};
-
// indicator
const uint8_t led_scale_indicator[12][12] = {
{23, 29, 35, 41, 60, 66, 72, 78, 97, 103, 109, 115}, // C
diff --git a/keyboards/chromatonemini/config.h b/keyboards/chromatonemini/config.h
index b5d7155516..83e6ccfe0e 100644
--- a/keyboards/chromatonemini/config.h
+++ b/keyboards/chromatonemini/config.h
@@ -21,16 +21,14 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
/* ws2812 RGB MATRIX */
# define RGB_MATRIX_LED_COUNT 116
-
// reacts to keypresses
# define RGB_MATRIX_KEYPRESSES
// for all fingers used at once.
# define LED_HITS_TO_REMEMBER 10
-# define RGB_MATRIX_MAXIMUM_BRIGHTNESS 50
# define RGB_MATRIX_DEFAULT_SPD 127
-# define RGB_MATRIX_CENTER { 124, 32 }
+
// the above brighness setting has no effect on rgb_matrix_set_color().
// Use darker colors instead.
/* RGB darker COLORS */
@@ -56,51 +54,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
// https://docs.qmk.fm/#/feature_rgb_matrix
// Enable suspend mode.
# define RGB_DISABLE_WHEN_USB_SUSPENDED
-
-# ifdef CONSOLE_ENABLE
-# define ENABLE_RGB_MATRIX_SOLID_COLOR
-# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE
-# else
-# define ENABLE_RGB_MATRIX_GRADIENT_UP_DOWN
-# define ENABLE_RGB_MATRIX_GRADIENT_LEFT_RIGHT
-# define ENABLE_RGB_MATRIX_BREATHING
-# define ENABLE_RGB_MATRIX_BAND_SAT
-# define ENABLE_RGB_MATRIX_BAND_VAL
-# define ENABLE_RGB_MATRIX_BAND_PINWHEEL_SAT
-# define ENABLE_RGB_MATRIX_BAND_PINWHEEL_VAL
-# define ENABLE_RGB_MATRIX_BAND_SPIRAL_SAT
-# define ENABLE_RGB_MATRIX_BAND_SPIRAL_VAL
-# define ENABLE_RGB_MATRIX_CYCLE_ALL
-# define ENABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT
-# define ENABLE_RGB_MATRIX_CYCLE_UP_DOWN
-# define ENABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON
-# define ENABLE_RGB_MATRIX_CYCLE_OUT_IN
-# define ENABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL
-# define ENABLE_RGB_MATRIX_CYCLE_PINWHEEL
-# define ENABLE_RGB_MATRIX_CYCLE_SPIRAL
-# define ENABLE_RGB_MATRIX_DUAL_BEACON
-# define ENABLE_RGB_MATRIX_RAINBOW_BEACON
-# define ENABLE_RGB_MATRIX_RAINBOW_PINWHEELS
-# define ENABLE_RGB_MATRIX_RAINDROPS
-# define ENABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS
-# define ENABLE_RGB_MATRIX_HUE_BREATHING
-# define ENABLE_RGB_MATRIX_HUE_PENDULUM
-# define ENABLE_RGB_MATRIX_HUE_WAVE
-# define ENABLE_RGB_MATRIX_TYPING_HEATMAP
-# define ENABLE_RGB_MATRIX_DIGITAL_RAIN
-# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE
-# define ENABLE_RGB_MATRIX_SOLID_REACTIVE
-# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE
-# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE
-# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS
-# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS
-# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS
-# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS
-# define ENABLE_RGB_MATRIX_SPLASH
-# define ENABLE_RGB_MATRIX_MULTISPLASH
-# define ENABLE_RGB_MATRIX_SOLID_SPLASH
-# define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH
-# endif // CONSOLE_ENABLE
#endif // RGB_MATRIX_ENABLE
/* Audio */
diff --git a/keyboards/chromatonemini/info.json b/keyboards/chromatonemini/info.json
index 3dd10d7381..fb4f0c737f 100644
--- a/keyboards/chromatonemini/info.json
+++ b/keyboards/chromatonemini/info.json
@@ -3,8 +3,10 @@
"manufacturer": "3araht",
"url": "https://github.com/3araht/chromatonemini",
"maintainer": "3araht",
- "bootloader": "caterina",
- "processor": "atmega32u4",
+ "development_board": "promicro",
+ "build": {
+ "lto": true
+ },
"features": {
"midi": true,
"extrakey": true,
@@ -13,15 +15,179 @@
"bootmagic": false,
"console": false,
"mousekey": false,
- "nkro": false,
- "rgblight": false,
- "audio": false
+ "nkro": false
},
"ws2812": {
"pin": "D3"
},
"rgb_matrix": {
- "driver": "ws2812"
+ "driver": "ws2812",
+ "layout": [
+ {"matrix": [0, 0], "x": 14, "y": 12, "flags": 1},
+ {"matrix": [0, 4], "x": 14, "y": 36, "flags": 4},
+ {"matrix": [0, 3], "x": 19, "y": 48, "flags": 4},
+ {"matrix": [0, 2], "x": 9, "y": 48, "flags": 4},
+ {"matrix": [0, 1], "x": 14, "y": 60, "flags": 4},
+ {"x": 39, "y": 60, "flags": 4},
+ {"x": 49, "y": 60, "flags": 4},
+ {"x": 59, "y": 60, "flags": 4},
+ {"x": 69, "y": 60, "flags": 4},
+ {"x": 79, "y": 60, "flags": 4},
+ {"x": 89, "y": 60, "flags": 4},
+ {"x": 99, "y": 60, "flags": 4},
+ {"x": 109, "y": 60, "flags": 4},
+ {"x": 119, "y": 60, "flags": 4},
+ {"x": 129, "y": 60, "flags": 4},
+ {"x": 139, "y": 60, "flags": 4},
+ {"x": 149, "y": 60, "flags": 4},
+ {"x": 159, "y": 60, "flags": 4},
+ {"x": 169, "y": 60, "flags": 4},
+ {"x": 179, "y": 60, "flags": 4},
+ {"x": 189, "y": 60, "flags": 4},
+ {"x": 199, "y": 60, "flags": 4},
+ {"x": 209, "y": 60, "flags": 4},
+ {"x": 214, "y": 48, "flags": 4},
+ {"x": 204, "y": 48, "flags": 4},
+ {"x": 194, "y": 48, "flags": 4},
+ {"x": 184, "y": 48, "flags": 4},
+ {"x": 174, "y": 48, "flags": 4},
+ {"x": 164, "y": 48, "flags": 4},
+ {"x": 154, "y": 48, "flags": 4},
+ {"x": 144, "y": 48, "flags": 4},
+ {"x": 134, "y": 48, "flags": 4},
+ {"x": 124, "y": 48, "flags": 4},
+ {"x": 114, "y": 48, "flags": 4},
+ {"x": 104, "y": 48, "flags": 4},
+ {"x": 94, "y": 48, "flags": 4},
+ {"x": 84, "y": 48, "flags": 4},
+ {"x": 74, "y": 48, "flags": 4},
+ {"x": 64, "y": 48, "flags": 4},
+ {"x": 54, "y": 48, "flags": 4},
+ {"x": 44, "y": 48, "flags": 4},
+ {"x": 34, "y": 48, "flags": 4},
+ {"x": 39, "y": 36, "flags": 4},
+ {"x": 49, "y": 36, "flags": 4},
+ {"x": 59, "y": 36, "flags": 4},
+ {"x": 69, "y": 36, "flags": 4},
+ {"x": 79, "y": 36, "flags": 4},
+ {"x": 89, "y": 36, "flags": 4},
+ {"x": 99, "y": 36, "flags": 4},
+ {"x": 109, "y": 36, "flags": 4},
+ {"x": 119, "y": 36, "flags": 4},
+ {"x": 129, "y": 36, "flags": 4},
+ {"x": 139, "y": 36, "flags": 4},
+ {"x": 149, "y": 36, "flags": 4},
+ {"x": 159, "y": 36, "flags": 4},
+ {"x": 169, "y": 36, "flags": 4},
+ {"x": 179, "y": 36, "flags": 4},
+ {"x": 189, "y": 36, "flags": 4},
+ {"x": 199, "y": 36, "flags": 4},
+ {"x": 209, "y": 36, "flags": 4},
+ {"x": 214, "y": 24, "flags": 4},
+ {"x": 204, "y": 24, "flags": 4},
+ {"x": 194, "y": 24, "flags": 4},
+ {"x": 184, "y": 24, "flags": 4},
+ {"x": 174, "y": 24, "flags": 4},
+ {"x": 164, "y": 24, "flags": 4},
+ {"x": 154, "y": 24, "flags": 4},
+ {"x": 144, "y": 24, "flags": 4},
+ {"x": 134, "y": 24, "flags": 4},
+ {"x": 124, "y": 24, "flags": 4},
+ {"x": 114, "y": 24, "flags": 4},
+ {"x": 104, "y": 24, "flags": 4},
+ {"x": 94, "y": 24, "flags": 4},
+ {"x": 84, "y": 24, "flags": 4},
+ {"x": 74, "y": 24, "flags": 4},
+ {"x": 64, "y": 24, "flags": 4},
+ {"x": 54, "y": 24, "flags": 4},
+ {"x": 44, "y": 24, "flags": 4},
+ {"x": 34, "y": 24, "flags": 4},
+ {"matrix": [0, 6], "x": 39, "y": 12, "flags": 4},
+ {"matrix": [1, 1], "x": 49, "y": 12, "flags": 4},
+ {"matrix": [1, 3], "x": 59, "y": 12, "flags": 4},
+ {"matrix": [1, 5], "x": 69, "y": 12, "flags": 4},
+ {"matrix": [2, 0], "x": 79, "y": 12, "flags": 4},
+ {"matrix": [2, 2], "x": 89, "y": 12, "flags": 4},
+ {"matrix": [2, 4], "x": 99, "y": 12, "flags": 4},
+ {"matrix": [2, 6], "x": 109, "y": 12, "flags": 4},
+ {"matrix": [3, 1], "x": 119, "y": 12, "flags": 4},
+ {"matrix": [3, 3], "x": 129, "y": 12, "flags": 4},
+ {"matrix": [3, 5], "x": 139, "y": 12, "flags": 4},
+ {"matrix": [4, 0], "x": 149, "y": 12, "flags": 4},
+ {"matrix": [4, 2], "x": 159, "y": 12, "flags": 4},
+ {"matrix": [4, 4], "x": 169, "y": 12, "flags": 4},
+ {"matrix": [4, 6], "x": 179, "y": 12, "flags": 4},
+ {"matrix": [5, 1], "x": 189, "y": 12, "flags": 4},
+ {"matrix": [5, 3], "x": 199, "y": 12, "flags": 4},
+ {"matrix": [5, 5], "x": 209, "y": 12, "flags": 4},
+ {"matrix": [5, 6], "x": 214, "y": 0, "flags": 4},
+ {"matrix": [5, 4], "x": 204, "y": 0, "flags": 4},
+ {"matrix": [5, 2], "x": 194, "y": 0, "flags": 4},
+ {"matrix": [5, 0], "x": 184, "y": 0, "flags": 4},
+ {"matrix": [4, 5], "x": 174, "y": 0, "flags": 4},
+ {"matrix": [4, 3], "x": 164, "y": 0, "flags": 4},
+ {"matrix": [4, 1], "x": 154, "y": 0, "flags": 4},
+ {"matrix": [3, 6], "x": 144, "y": 0, "flags": 4},
+ {"matrix": [3, 4], "x": 134, "y": 0, "flags": 4},
+ {"matrix": [3, 2], "x": 124, "y": 0, "flags": 4},
+ {"matrix": [3, 0], "x": 114, "y": 0, "flags": 4},
+ {"matrix": [2, 5], "x": 104, "y": 0, "flags": 4},
+ {"matrix": [2, 3], "x": 94, "y": 0, "flags": 4},
+ {"matrix": [2, 1], "x": 84, "y": 0, "flags": 4},
+ {"matrix": [1, 6], "x": 74, "y": 0, "flags": 4},
+ {"matrix": [1, 4], "x": 64, "y": 0, "flags": 4},
+ {"matrix": [1, 2], "x": 54, "y": 0, "flags": 4},
+ {"matrix": [1, 0], "x": 44, "y": 0, "flags": 4},
+ {"matrix": [0, 5], "x": 34, "y": 0, "flags": 4}
+ ],
+ "max_brightness": 50,
+ "sat_steps": 8,
+ "speed_steps": 10,
+ "val_steps": 8,
+ "center_point": [124, 32],
+ "animations": {
+ "solid_color": true,
+ "alphas_mods": true,
+ "gradient_up_down": true,
+ "gradient_left_right": true,
+ "breathing": true,
+ "band_sat": true,
+ "band_val": true,
+ "band_pinwheel_sat": true,
+ "band_pinwheel_val": true,
+ "band_spiral_sat": true,
+ "band_spiral_val": true,
+ "cycle_all": true,
+ "cycle_left_right": true,
+ "cycle_up_down": true,
+ "cycle_out_in": true,
+ "cycle_out_in_dual": true,
+ "rainbow_moving_chevron": true,
+ "dual_beacon": true,
+ "cycle_pinwheel": true,
+ "cycle_spiral": true,
+ "rainbow_beacon": true,
+ "rainbow_pinwheels": true,
+ "raindrops": true,
+ "jellybean_raindrops": true,
+ "hue_breathing": true,
+ "hue_pendulum": true,
+ "hue_wave": true,
+ "typing_heatmap": true,
+ "digital_rain": true,
+ "solid_reactive": true,
+ "solid_reactive_simple": true,
+ "solid_reactive_wide": true,
+ "solid_reactive_multiwide": true,
+ "solid_reactive_cross": true,
+ "solid_reactive_multicross": true,
+ "solid_reactive_nexus": true,
+ "solid_reactive_multinexus": true,
+ "splash": true,
+ "multisplash": true,
+ "solid_splash": true,
+ "solid_multisplash": true
+ }
},
"diode_direction": "COL2ROW",
"matrix_pins": {
@@ -33,7 +199,7 @@
"pid": "0xF4B4",
"device_version": "0.0.1"
},
- "layouts": {
+ "layouts": {
"LAYOUT": {
"layout": [
{"matrix": [0, 0], "x": 0.5, "y": 0},
diff --git a/keyboards/chromatonemini/rules.mk b/keyboards/chromatonemini/rules.mk
index 4da205a168..e69de29bb2 100644
--- a/keyboards/chromatonemini/rules.mk
+++ b/keyboards/chromatonemini/rules.mk
@@ -1 +0,0 @@
-LTO_ENABLE = yes
diff --git a/keyboards/cipulot/ec_23u/rules.mk b/keyboards/cipulot/ec_23u/rules.mk
index ed348e8618..fc2dcf32ab 100644
--- a/keyboards/cipulot/ec_23u/rules.mk
+++ b/keyboards/cipulot/ec_23u/rules.mk
@@ -1,3 +1,4 @@
CUSTOM_MATRIX = lite
-QUANTUM_LIB_SRC += analog.c
SRC += matrix.c ec_switch_matrix.c
+
+ANALOG_DRIVER_REQUIRED = yes
diff --git a/keyboards/cipulot/ec_60/rules.mk b/keyboards/cipulot/ec_60/rules.mk
index ed348e8618..fc2dcf32ab 100644
--- a/keyboards/cipulot/ec_60/rules.mk
+++ b/keyboards/cipulot/ec_60/rules.mk
@@ -1,3 +1,4 @@
CUSTOM_MATRIX = lite
-QUANTUM_LIB_SRC += analog.c
SRC += matrix.c ec_switch_matrix.c
+
+ANALOG_DRIVER_REQUIRED = yes
diff --git a/keyboards/cipulot/ec_alveus/1_0_0/rules.mk b/keyboards/cipulot/ec_alveus/1_0_0/rules.mk
index b8929fa590..fc2dcf32ab 100644
--- a/keyboards/cipulot/ec_alveus/1_0_0/rules.mk
+++ b/keyboards/cipulot/ec_alveus/1_0_0/rules.mk
@@ -1,3 +1,4 @@
CUSTOM_MATRIX = lite
-QUANTUM_LIB_SRC += analog.c
SRC += matrix.c ec_switch_matrix.c
+
+ANALOG_DRIVER_REQUIRED = yes
diff --git a/keyboards/cipulot/ec_alveus/1_2_0/rules.mk b/keyboards/cipulot/ec_alveus/1_2_0/rules.mk
index b8929fa590..fc2dcf32ab 100644
--- a/keyboards/cipulot/ec_alveus/1_2_0/rules.mk
+++ b/keyboards/cipulot/ec_alveus/1_2_0/rules.mk
@@ -1,3 +1,4 @@
CUSTOM_MATRIX = lite
-QUANTUM_LIB_SRC += analog.c
SRC += matrix.c ec_switch_matrix.c
+
+ANALOG_DRIVER_REQUIRED = yes
diff --git a/keyboards/cipulot/ec_pro2/rules.mk b/keyboards/cipulot/ec_pro2/rules.mk
index b27b0f7ac0..fc2dcf32ab 100644
--- a/keyboards/cipulot/ec_pro2/rules.mk
+++ b/keyboards/cipulot/ec_pro2/rules.mk
@@ -1,2 +1,4 @@
CUSTOM_MATRIX = lite
-SRC += analog.c matrix.c ec_switch_matrix.c
+SRC += matrix.c ec_switch_matrix.c
+
+ANALOG_DRIVER_REQUIRED = yes
diff --git a/keyboards/cipulot/ec_prox/ansi_iso/rules.mk b/keyboards/cipulot/ec_prox/ansi_iso/rules.mk
index ed348e8618..fc2dcf32ab 100644
--- a/keyboards/cipulot/ec_prox/ansi_iso/rules.mk
+++ b/keyboards/cipulot/ec_prox/ansi_iso/rules.mk
@@ -1,3 +1,4 @@
CUSTOM_MATRIX = lite
-QUANTUM_LIB_SRC += analog.c
SRC += matrix.c ec_switch_matrix.c
+
+ANALOG_DRIVER_REQUIRED = yes
diff --git a/keyboards/cipulot/ec_prox/jis/rules.mk b/keyboards/cipulot/ec_prox/jis/rules.mk
index ed348e8618..fc2dcf32ab 100644
--- a/keyboards/cipulot/ec_prox/jis/rules.mk
+++ b/keyboards/cipulot/ec_prox/jis/rules.mk
@@ -1,3 +1,4 @@
CUSTOM_MATRIX = lite
-QUANTUM_LIB_SRC += analog.c
SRC += matrix.c ec_switch_matrix.c
+
+ANALOG_DRIVER_REQUIRED = yes
diff --git a/keyboards/cipulot/ec_theca/rules.mk b/keyboards/cipulot/ec_theca/rules.mk
index b8929fa590..fc2dcf32ab 100644
--- a/keyboards/cipulot/ec_theca/rules.mk
+++ b/keyboards/cipulot/ec_theca/rules.mk
@@ -1,3 +1,4 @@
CUSTOM_MATRIX = lite
-QUANTUM_LIB_SRC += analog.c
SRC += matrix.c ec_switch_matrix.c
+
+ANALOG_DRIVER_REQUIRED = yes
diff --git a/keyboards/cipulot/rf_r1_8_9xu/rules.mk b/keyboards/cipulot/rf_r1_8_9xu/rules.mk
index ed348e8618..fc2dcf32ab 100644
--- a/keyboards/cipulot/rf_r1_8_9xu/rules.mk
+++ b/keyboards/cipulot/rf_r1_8_9xu/rules.mk
@@ -1,3 +1,4 @@
CUSTOM_MATRIX = lite
-QUANTUM_LIB_SRC += analog.c
SRC += matrix.c ec_switch_matrix.c
+
+ANALOG_DRIVER_REQUIRED = yes
diff --git a/keyboards/citrus/erdnuss65/info.json b/keyboards/citrus/erdnuss65/info.json
index 44d597ffb4..4faaa05431 100644
--- a/keyboards/citrus/erdnuss65/info.json
+++ b/keyboards/citrus/erdnuss65/info.json
@@ -1,43 +1,39 @@
{
- "keyboard_name": "Erdnuss65",
"manufacturer": "Citrus Lab",
- "processor": "STM32F103",
- "bootloader": "stm32duino",
+ "keyboard_name": "Erdnuss65",
"maintainer": "ctt",
- "usb": {
- "vid": "0x636C",
- "pid": "0x6374",
- "device_version": "0.0.1"
- },
- "matrix_pins": {
- "rows": ["B10", "B1", "B0", "A7", "A6"],
- "cols": ["B12", "B14", "B15", "A8", "B13", "B3", "B4", "B5", "A1", "A2", "A0", "A3", "A4", "A5", "B11"]
- },
+ "bootloader": "stm32duino",
"diode_direction": "COL2ROW",
"features": {
"bootmagic": true,
- "mousekey": true,
"extrakey": true,
- "console": false,
- "command": false,
+ "mousekey": true,
"nkro": true,
- "backlight": false,
- "rgblight": true,
- "audio": false
+ "rgblight": true
},
- "ws2812": {
- "pin": "A15"
+ "matrix_pins": {
+ "cols": ["B12", "B14", "B15", "B5", "B13", "B3", "B4", "B6", "A0", "A1", "A2", "A3", "A4", "A5", "B11"],
+ "rows": ["B10", "B1", "B0", "A7", "A6"]
},
+ "processor": "STM32F103",
"rgblight": {
"led_count": 1
},
+ "usb": {
+ "device_version": "1.0.0",
+ "pid": "0x6374",
+ "vid": "0x636C"
+ },
+ "ws2812": {
+ "pin": "A15"
+ },
"layouts": {
"LAYOUT": {
"layout": [
{"label": "ESC K00 (B10,B12)", "matrix": [0, 0], "x": 0, "y": 0},
{"label": "1 K01 (B10,B14)", "matrix": [0, 1], "x": 1, "y": 0},
{"label": "2 K02 (B10,B15)", "matrix": [0, 2], "x": 2, "y": 0},
- {"label": "3 K03 (B10,A8)", "matrix": [0, 3], "x": 3, "y": 0},
+ {"label": "3 K03 (B10,B5)", "matrix": [0, 3], "x": 3, "y": 0},
{"label": "4 K04 (B10,B13)", "matrix": [0, 4], "x": 4, "y": 0},
{"label": "5 K05 (B10,B3)", "matrix": [0, 5], "x": 5, "y": 0},
{"label": "6 K06 (B10,B4)", "matrix": [0, 6], "x": 6, "y": 0},
@@ -52,7 +48,7 @@
{"label": "TAB (B1,B12)", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
{"label": "Q (B1,B14)", "matrix": [1, 1], "x": 1.5, "y": 1},
{"label": "W (B1,B15)", "matrix": [1, 2], "x": 2.5, "y": 1},
- {"label": "E (B1,A8)", "matrix": [1, 3], "x": 3.5, "y": 1},
+ {"label": "E (B1,B5)", "matrix": [1, 3], "x": 3.5, "y": 1},
{"label": "R (B1,B13)", "matrix": [1, 4], "x": 4.5, "y": 1},
{"label": "T (B1,B3)", "matrix": [1, 5], "x": 5.5, "y": 1},
{"label": "Y (B1,B4)", "matrix": [1, 6], "x": 6.5, "y": 1},
@@ -64,10 +60,10 @@
{"label": "] (B1,A4)", "matrix": [1, 12], "x": 12.5, "y": 1},
{"label": "\" (B1,A5)", "matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5},
{"label": "DEL (B1,B11)", "matrix": [1, 14], "x": 15, "y": 1},
- {"label": "CAPSLOCK (B0,B12)", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.25},
+ {"label": "CAPSLOCK (B0,B12)", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
{"label": "A (B0,B14)", "matrix": [2, 1], "x": 1.75, "y": 2},
{"label": "S (B0,B15)", "matrix": [2, 2], "x": 2.75, "y": 2},
- {"label": "D (B0,A8)", "matrix": [2, 3], "x": 3.75, "y": 2},
+ {"label": "D (B0,B5)", "matrix": [2, 3], "x": 3.75, "y": 2},
{"label": "F (B0,B13)", "matrix": [2, 4], "x": 4.75, "y": 2},
{"label": "G (B0,B3)", "matrix": [2, 5], "x": 5.75, "y": 2},
{"label": "H (B0,B4)", "matrix": [2, 6], "x": 6.75, "y": 2},
@@ -81,7 +77,7 @@
{"label": "LSHIFT (A7,B12)", "matrix": [3, 0], "x": 0, "y": 3, "w": 2.25},
{"label": "Z (A7,B14)", "matrix": [3, 1], "x": 2.25, "y": 3},
{"label": "X (A7,B15)", "matrix": [3, 2], "x": 3.25, "y": 3},
- {"label": "C (A7,A8)", "matrix": [3, 3], "x": 4.25, "y": 3},
+ {"label": "C (A7,B5)", "matrix": [3, 3], "x": 4.25, "y": 3},
{"label": "V (A7,B13)", "matrix": [3, 4], "x": 5.25, "y": 3},
{"label": "B (A7,B3)", "matrix": [3, 5], "x": 6.25, "y": 3},
{"label": "N (A7,B4)", "matrix": [3, 6], "x": 7.25, "y": 3},
@@ -95,12 +91,12 @@
{"label": "LCTRL (A6,B12)", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.5},
{"label": "WIN (A6,B14)", "matrix": [4, 1], "x": 1.5, "y": 4},
{"label": "ALT (A6,B15)", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5},
- {"label": "SPACE (A6,A8)", "matrix": [4, 3], "x": 4, "y": 4, "w": 7},
+ {"label": "SPACE (A6,B5)", "matrix": [4, 3], "x": 4, "y": 4, "w": 7},
{"label": "FN (A6,A0)", "matrix": [4, 10], "x": 11, "y": 4, "w": 1.5},
{"label": "LEFT (A6,A4)", "matrix": [4, 12], "x": 13, "y": 4},
{"label": "DOWN (A6,A5)", "matrix": [4, 13], "x": 14, "y": 4},
{"label": "RIGHT (A6,B11)", "matrix": [4, 14], "x": 15, "y": 4}
- ]
+ ]
}
}
}
diff --git a/keyboards/citrus/erdnuss65/keymaps/default/keymap.c b/keyboards/citrus/erdnuss65/keymaps/default/keymap.c
index 0daef5af64..fdc36ae65e 100644
--- a/keyboards/citrus/erdnuss65/keymaps/default/keymap.c
+++ b/keyboards/citrus/erdnuss65/keymaps/default/keymap.c
@@ -5,19 +5,18 @@
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT(
- KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS,
+ QK_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS,
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL,
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGUP,
- KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_LSFT, KC_UP, 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_PGDN,
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(1), KC_LEFT, KC_DOWN, KC_RGHT
),
[1] = LAYOUT(
- KC_GRV, 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_MPRV,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PSCR, _______, _______, RESET, KC_MNXT,
+ KC_TILD, 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_MPRV,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PSCR, _______, _______, QK_BOOT, KC_MNXT,
_______, _______, _______, _______, _______, _______, _______, KC_CALC, _______, _______, _______, _______, _______, KC_HOME,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MYCM, KC_VOLU, KC_END,
- _______, _______, _______, _______, _______, KC_MUTE, KC_VOLU, KC_MPLY
+ _______, _______, _______, _______, _______, KC_MUTE, KC_VOLD, KC_MPLY
)
};
-
diff --git a/keyboards/citrus/erdnuss65/keymaps/via/keymap.c b/keyboards/citrus/erdnuss65/keymaps/via/keymap.c
index 0f1bf9525e..3014b72cfe 100644
--- a/keyboards/citrus/erdnuss65/keymaps/via/keymap.c
+++ b/keyboards/citrus/erdnuss65/keymaps/via/keymap.c
@@ -5,19 +5,19 @@
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT(
- KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS,
+ QK_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS,
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL,
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGUP,
- KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_LSFT, KC_UP, 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_PGDN,
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(1), KC_LEFT, KC_DOWN, KC_RGHT
),
[1] = LAYOUT(
- KC_GRV, 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_MPRV,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PSCR, _______, _______, RESET, KC_MNXT,
+ KC_TILD, 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_MPRV,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PSCR, _______, _______, QK_BOOT, KC_MNXT,
_______, _______, _______, _______, _______, _______, _______, KC_CALC, _______, _______, _______, _______, _______, KC_HOME,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MYCM, KC_VOLU, KC_END,
- _______, _______, _______, _______, _______, KC_MUTE, KC_VOLU, KC_MPLY
+ _______, _______, _______, _______, _______, KC_MUTE, KC_VOLD, KC_MPLY
),
[2] = LAYOUT(
@@ -34,6 +34,5 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______
- ),
-
+ )
};
diff --git a/keyboards/clickety_split/leeloo/info.json b/keyboards/clickety_split/leeloo/info.json
index a2510f9f7f..c83fedeb28 100644
--- a/keyboards/clickety_split/leeloo/info.json
+++ b/keyboards/clickety_split/leeloo/info.json
@@ -1,24 +1,31 @@
{
- "keyboard_name": "Leeloo",
"manufacturer": "Clickety Split Ltd",
"url": "https://clicketysplit.ca/pages/leeloo",
"maintainer": "ClicketySplit",
"usb": {
"vid": "0x4013",
- "pid": "0x2022",
- "device_version": "0.1.3"
+ "pid": "0x2022"
},
+ "diode_direction": "COL2ROW",
"matrix_pins": {
- "cols": ["F6", "F7", "B1", "B3", "B2", "B6"],
- "rows": ["C6", "D7", "E6", "B4", "B5"]
+ "cols": ["F6", "F7", "B1", "B3", "B2", "B6"],
+ "rows": ["C6", "D7", "E6", "B4", "B5"]
+ },
+ "build": {
+ "lto": true
+ },
+ "features": {
+ "extrakey": true,
+ "oled": true
},
- "diode_direction": "COL2ROW",
"encoder": {
+ "enabled": true,
"rotary": [
{"pin_a": "F5", "pin_b": "F4"}
]
},
"split": {
+ "enabled": true,
"soft_serial_pin": "D2",
"encoder": {
"right": {
@@ -28,81 +35,77 @@
}
}
},
- "tapping": {
- "term": 100
- },
- "processor": "atmega32u4",
- "bootloader": "caterina",
+ "development_board": "promicro",
"layouts": {
"LAYOUT": {
"layout": [
- {"matrix": [0, 0], "x": 0, "y": 0.5},
- {"matrix": [0, 1], "x": 1, "y": 0.4},
- {"matrix": [0, 2], "x": 2, "y": 0.2},
- {"matrix": [0, 3], "x": 3, "y": 0},
- {"matrix": [0, 4], "x": 4, "y": 0.2},
- {"matrix": [0, 5], "x": 5, "y": 0.4},
+ {"label":"Esc", "matrix": [0, 0], "x": 0.0, "y":0.5},
+ {"label":"1", "matrix": [0, 1], "x": 1.0, "y":0.4},
+ {"label":"2", "matrix": [0, 2], "x": 2.0, "y":0.2},
+ {"label":"3", "matrix": [0, 3], "x": 3.0, "y":0.0},
+ {"label":"4", "matrix": [0, 4], "x": 4.0, "y":0.2},
+ {"label":"5", "matrix": [0, 5], "x": 5.0, "y":0.4},
- {"matrix": [5, 5], "x": 9, "y": 0.4},
- {"matrix": [5, 4], "x": 10, "y": 0.2},
- {"matrix": [5, 3], "x": 11, "y": 0},
- {"matrix": [5, 2], "x": 12, "y": 0.2},
- {"matrix": [5, 1], "x": 13, "y": 0.4},
- {"matrix": [5, 0], "x": 14, "y": 0.5},
+ {"label":"6", "matrix": [5, 5], "x": 9.0, "y":0.4},
+ {"label":"7", "matrix": [5, 4], "x": 10.0, "y":0.2},
+ {"label":"8", "matrix": [5, 3], "x": 11.0, "y":0.0},
+ {"label":"9", "matrix": [5, 2], "x": 12.0, "y":0.2},
+ {"label":"0", "matrix": [5, 1], "x": 13.0, "y":0.4},
+ {"label":"BSL", "matrix": [5, 0], "x": 14.0, "y":0.5},
- {"matrix": [1, 0], "x": 0, "y": 1.5},
- {"matrix": [1, 1], "x": 1, "y": 1.4},
- {"matrix": [1, 2], "x": 2, "y": 1.2},
- {"matrix": [1, 3], "x": 3, "y": 1},
- {"matrix": [1, 4], "x": 4, "y": 1.2},
- {"matrix": [1, 5], "x": 5, "y": 1.4},
+ {"label":"TAB", "matrix": [1, 0], "x": 0.0, "y":1.5},
+ {"label":"Q", "matrix": [1, 1], "x": 1.0, "y":1.4},
+ {"label":"W", "matrix": [1, 2], "x": 2.0, "y":1.2},
+ {"label":"E", "matrix": [1, 3], "x": 3.0, "y":1.0},
+ {"label":"R", "matrix": [1, 4], "x": 4.0, "y":1.2},
+ {"label":"T", "matrix": [1, 5], "x": 5.0, "y":1.4},
- {"matrix": [6, 5], "x": 9, "y": 1.4},
- {"matrix": [6, 4], "x": 10, "y": 1.2},
- {"matrix": [6, 3], "x": 11, "y": 1},
- {"matrix": [6, 2], "x": 12, "y": 1.2},
- {"matrix": [6, 1], "x": 13, "y": 1.4},
- {"matrix": [6, 0], "x": 14, "y": 1.5},
+ {"label":"Y", "matrix": [6, 5], "x": 9.0, "y":1.4},
+ {"label":"U", "matrix": [6, 4], "x": 10.0, "y":1.2},
+ {"label":"I", "matrix": [6, 3], "x": 11.0, "y":1.0},
+ {"label":"O", "matrix": [6, 2], "x": 12.0, "y":1.2},
+ {"label":"P", "matrix": [6, 1], "x": 13.0, "y":1.4},
+ {"label":"GRV", "matrix": [6, 0], "x": 14.0, "y":1.5},
- {"matrix": [2, 0], "x": 0, "y": 2.5},
- {"matrix": [2, 1], "x": 1, "y": 2.4},
- {"matrix": [2, 2], "x": 2, "y": 2.2},
- {"matrix": [2, 3], "x": 3, "y": 2},
- {"matrix": [2, 4], "x": 4, "y": 2.2},
- {"matrix": [2, 5], "x": 5, "y": 2.4},
+ {"label":"CAPS", "matrix": [2, 0], "x": 0.0, "y":2.5},
+ {"label":"A", "matrix": [2, 1], "x": 1.0, "y":2.4},
+ {"label":"S", "matrix": [2, 2], "x": 2.0, "y":2.2},
+ {"label":"D", "matrix": [2, 3], "x": 3.0, "y":2.0},
+ {"label":"F", "matrix": [2, 4], "x": 4.0, "y":2.2},
+ {"label":"G", "matrix": [2, 5], "x": 5.0, "y":2.4},
- {"matrix": [7, 5], "x": 9, "y": 2.4},
- {"matrix": [7, 4], "x": 10, "y": 2.2},
- {"matrix": [7, 3], "x": 11, "y": 2},
- {"matrix": [7, 2], "x": 12, "y": 2.2},
- {"matrix": [7, 1], "x": 13, "y": 2.4},
- {"matrix": [7, 0], "x": 14, "y": 2.5},
+ {"label":"H", "matrix": [7, 5], "x": 9.0, "y":2.4},
+ {"label":"J", "matrix": [7, 4], "x": 10.0, "y":2.2},
+ {"label":"K", "matrix": [7, 3], "x": 11.0, "y":2.0},
+ {"label":"L", "matrix": [7, 2], "x": 12.0, "y":2.2},
+ {"label":";", "matrix": [7, 1], "x": 13.0, "y":2.4},
+ {"label":"'", "matrix": [7, 0], "x": 14.0, "y":2.5},
- {"matrix": [3, 0], "x": 0, "y": 3.5},
- {"matrix": [3, 1], "x": 1, "y": 3.4},
- {"matrix": [3, 2], "x": 2, "y": 3.2},
- {"matrix": [3, 3], "x": 3, "y": 3},
- {"matrix": [3, 4], "x": 4, "y": 3.2},
- {"matrix": [3, 5], "x": 5, "y": 3.4},
- {"matrix": [4, 5], "x": 6.25, "y": 3.4},
+ {"label":"SFT", "matrix": [3, 0], "x": 0.0, "y":3.5},
+ {"label":"Z", "matrix": [3, 1], "x": 1.0, "y":3.4},
+ {"label":"X", "matrix": [3, 2], "x": 2.0, "y":3.2},
+ {"label":"C", "matrix": [3, 3], "x": 3.0, "y":3.0},
+ {"label":"V", "matrix": [3, 4], "x": 4.0, "y":3.2},
+ {"label":"B", "matrix": [3, 5], "x": 5.0, "y":3.4},
+ {"label":"GUI", "matrix": [4, 5], "x": 6.25, "y":3.4},
- {"matrix": [9, 5], "x": 7.75, "y": 3.4},
- {"matrix": [8, 5], "x": 9, "y": 3.4},
- {"matrix": [8, 4], "x": 10, "y": 3.2},
- {"matrix": [8, 3], "x": 11, "y": 3},
- {"matrix": [8, 2], "x": 12, "y": 3.2},
- {"matrix": [8, 1], "x": 13, "y": 3.4},
- {"matrix": [8, 0], "x": 14, "y": 3.5},
+ {"label":"GUI", "matrix": [9, 5], "x": 7.75, "y":3.4},
+ {"label":"N", "matrix": [8, 5], "x": 9.0, "y":3.4},
+ {"label":"M", "matrix": [8, 4], "x": 10.0, "y":3.2},
+ {"label":",", "matrix": [8, 3], "x": 11.0, "y":3.0},
+ {"label":".", "matrix": [8, 2], "x": 12.0, "y":3.2},
+ {"label":"/", "matrix": [8, 1], "x": 13.0, "y":3.4},
+ {"label":"SFT", "matrix": [8, 0], "x": 14.0, "y":3.5},
- {"matrix": [4, 1], "x": 2.7, "y": 4.6},
- {"matrix": [4, 2], "x": 3.8, "y": 4.5},
- {"matrix": [4, 3], "x": 4.9, "y": 4.55},
- {"matrix": [4, 4], "x": 6.1, "y": 4.65},
+ {"label":"ALT", "matrix": [4, 1], "x": 2.7, "y":4.6},
+ {"label":"CTL", "matrix": [4, 2], "x": 3.8, "y":4.5},
+ {"label":"ENT", "matrix": [4, 3], "x": 4.9, "y":4.55},
+ {"label":"MINS", "matrix": [4, 4], "x": 6.1, "y":4.65},
- {"matrix": [9, 4], "x": 7.9, "y": 4.65},
- {"matrix": [9, 3], "x": 9.1, "y": 4.55},
- {"matrix": [9, 2], "x": 10.2, "y": 4.5},
- {"matrix": [9, 1], "x": 11.3, "y": 4.6}
+ {"label":"EQL", "matrix": [9, 4], "x": 7.9, "y":4.65},
+ {"label":"SPC", "matrix": [9, 3], "x": 9.1, "y":4.55},
+ {"label":"BSP", "matrix": [9, 2], "x": 10.2, "y":4.5},
+ {"label":"DEL", "matrix": [9, 1], "x": 11.3, "y":4.6}
]
}
}
diff --git a/keyboards/clickety_split/leeloo/keymaps/default/config.h b/keyboards/clickety_split/leeloo/keymaps/default/config.h
index d0348d06ef..e41b3d34aa 100644
--- a/keyboards/clickety_split/leeloo/keymaps/default/config.h
+++ b/keyboards/clickety_split/leeloo/keymaps/default/config.h
@@ -1,5 +1,4 @@
-/* Copyright 2022 Clickety Split Ltd.
- * https://clicketysplit.ca
+/* Copyright 2023 Clickety Split Ltd.
*
* 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,17 +16,30 @@
#pragma once
-// Select hand configuration
-// #define MASTER_LEFT
-// #define MASTER_RIGHT
-// #define EE_HANDS
-
-#ifdef TAPPING_TERM
- #undef TAPPING_TERM
- #define QUICK_TAP_TERM 0
- #define TAPPING_TERM 150
-#endif
-
// If rotary encoders are used, and they require more or less resolution/sensitivity
// you may try increasing or decreasing the value.
// #define ENCODER_RESOLUTION 2
+
+ #define RGB_MATRIX_KEYPRESSES // reacts to keypresses
+// #define RGB_MATRIX_KEYRELEASES // reacts to keyreleases (instead of keypresses)
+// #define RGB_DISABLE_AFTER_TIMEOUT 0 // number of ticks to wait until disabling effects
+ #define RGB_DISABLE_WHEN_USB_SUSPENDED // turn off effects when suspended
+ #define RGB_MATRIX_FRAMEBUFFER_EFFECTS
+
+ #define RGB_MATRIX_MAXIMUM_BRIGHTNESS 115 // limits maximum brightness of LEDs to 150 out of 255.
+ // Higher may cause the controller to crash.
+ #define RGB_MATRIX_HUE_STEP 10
+ #define RGB_MATRIX_SAT_STEP 10
+ #define RGB_MATRIX_VAL_STEP 10
+ #define RGB_MATRIX_SPD_STEP 10
+
+
+/* By default, the RGB_MATRIX effects are disabled.
+ *
+ * For a complete list, visit: https://docs.qmk.fm/#/feature_rgb_matrix?id=rgb-matrix-effects.
+ * Some of the effects take up a lot of memory, so you may need to manage the number of
+ * effects that are loaded at any given time.
+*/
+ #define ENABLE_RGB_MATRIX_GRADIENT_UP_DOWN
+ #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS
+ #define ENABLE_RGB_MATRIX_SPLASH
diff --git a/keyboards/clickety_split/leeloo/keymaps/default/keymap.c b/keyboards/clickety_split/leeloo/keymaps/default/keymap.c
index bac722a7c3..6bf9824472 100644
--- a/keyboards/clickety_split/leeloo/keymaps/default/keymap.c
+++ b/keyboards/clickety_split/leeloo/keymaps/default/keymap.c
@@ -1,5 +1,4 @@
-/* Copyright 2022 Clickety Split Ltd.
- * https://clicketysplit.ca
+/* Copyright 2023 Clickety Split Ltd.
*
* 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
@@ -92,23 +91,34 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* ,-----------------------------------------. ,-----------------------------------------.
* | | | | | | | | | | | | | |
* |------+------+------+------+------+------| |------+------+------+------+------+------|
- * | | | | | | | | | | | | | |
+ * | | | | | | | | | | +VOL | | | |
* |------+------+------+------+------+------| |------+------+------+------+------+------|
- * | | | | | | |--------. ,-------| | | | | | |
+ * | | | | | | |--------. ,-------| | | -VOL | | | |
* |------+------+------+------+------+------| | | |------+------+------+------+------+------|
- * | | | | | | |--------| |-------| | | | | | |
+ * | | | | | | |--------| |-------| | MUTE | | | | |
* `-----------------------------------------/ / \ \-----------------------------------------'
* | LALT | LCTL | ENT | / MINS / \ EQL \ | SPC | BSPC | DEL |
* | | | LOWR |/ RAISE / \RAISE \ | LOWR | | |
* `-------------------------------' '------''-----------------------'
+ *
+ * NOTE: For Leeloo v1 the RGB Keycodes will not have any effect.
+ *
*/
[_ADJUST] = LAYOUT(
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, KC_VOLU, _______, _______, _______,
+ _______, RGB_TOG, RGB_HUI, RGB_SAI, RGB_VAI, _______, _______, _______, KC_VOLD, _______, _______, _______,
+ _______, RGB_MOD, RGB_HUD, RGB_SAD, RGB_VAD, _______, _______, _______, _______, KC_MUTE, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______
)
};
+/* Tri Layer
+ * When Lower and Raise are pressed at the same time, and wrapped with LT(),
+ * Adjust is activated with the following method.
+ */
+layer_state_t layer_state_set_user(layer_state_t state) {
+ state = update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST);
+ return state;
+}
diff --git a/keyboards/clickety_split/leeloo/leeloo.c b/keyboards/clickety_split/leeloo/leeloo.c
index 864f31cbb7..3922556f5c 100644
--- a/keyboards/clickety_split/leeloo/leeloo.c
+++ b/keyboards/clickety_split/leeloo/leeloo.c
@@ -1,5 +1,4 @@
-/* Copyright 2022 Clickety Split Ltd.
- * https://clicketysplit.ca
+/* Copyright 2023 Clickety Split Ltd.
*
* 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
@@ -48,9 +47,24 @@ static void render_mod_status(uint8_t modifiers) {
static void render_secondary_oled(void) {
// Version Information
- oled_write_P(PSTR("Leeloo\n\n"), false);
+#if defined(KEYBOARD_clickety_split_leeloo_rev1)
+ oled_write_P(PSTR("Leeloo v1\n\n"), false);
+#elif defined(KEYBOARD_clickety_split_leeloo_rev2)
+ oled_write_P(PSTR("Leeloo v2\n\n"), false);
+#else
+ oled_write_P(PSTR("Leeloo v2.1\n\n"), false);
+#endif
+
oled_write_P(PSTR("Firmware: "), false);
- oled_write_P(PSTR("v1.0"), false);
+
+#if defined(KEYBOARD_clickety_split_leeloo_rev1)
+ oled_write_P(PSTR("v1.13"), false);
+#elif defined(KEYBOARD_clickety_split_leeloo_rev2)
+ oled_write_P(PSTR("v2.13"), false);
+#else
+ oled_write_P(PSTR("v2.14"), false);
+#endif
+
oled_write_P(PSTR("\n"), false);
oled_write_P(PSTR("Clickety Split Ltd."), false);
}
@@ -58,7 +72,7 @@ static void render_secondary_oled(void) {
static void render_status(void) {
// Host Keyboard Layer Status
switch (get_highest_layer(default_layer_state)) {
- case _BASE:
+ case 0:
oled_write_P(PSTR("QWERTY | "), false);
break;
}
@@ -69,15 +83,15 @@ static void render_status(void) {
oled_write_P(PSTR("Base \n"), false);
break;
- case _LOWER:
+ case 1:
oled_write_P(PSTR("Lower \n"), false);
break;
- case _RAISE:
+ case 2:
oled_write_P(PSTR("Raise \n"), false);
break;
- case _ADJUST:
+ case 3:
oled_write_P(PSTR("Adjust \n"), false);
break;
@@ -128,4 +142,4 @@ bool encoder_update_kb(uint8_t index, bool clockwise) {
}
return true;
}
-#endif
+#endif // ENCODER_ENABLE
diff --git a/keyboards/clickety_split/leeloo/readme.md b/keyboards/clickety_split/leeloo/readme.md
index f672294e14..65f1069cdb 100644
--- a/keyboards/clickety_split/leeloo/readme.md
+++ b/keyboards/clickety_split/leeloo/readme.md
@@ -1,16 +1,33 @@
-# Leeloo
+# Clickety Split | Leeloo v2.1
-![Leeloo](https://cdn.shopify.com/s/files/1/0599/3460/5491/files/Leeloo-rev1.0-w.jpg?v=1646798726)
+![Leeloo v2.1](https://i.imgur.com/swPHS0Bh.jpg)
-Leeloo is a 4x6x5m ortholinear split keyboard kit made and sold by Clickety Split Ltd.
+Leeloo v2.1 is a small evolution of Leeloo v2.0, which is a 4x6x5m ortholinear split keyboard designed, created, and sold by Clickety Split Ltd.
* Keyboard Maintainer: [Clickety Split](https://github.com/ClicketySplit)
-* Hardware Supported: Leeloo PCB rev1, Pro Micro, Elite-C
-* Hardware Availability: [clicketysplit.ca](https://clicketysplit.ca/pages/leeloo)
+* Hardware Supported: Leeloo PCB rev1/rev2/rev3, Pro Micro, Elite-C
+* Hardware Availability: [clicketysplit.ca/pages/leeloo](https://clicketysplit.ca/pages/leeloo)
+
+
+## Differences between v2.1 and v2.0
+* Removed 8 RGB LEDs on each side, which served as backlighting.
+* Added a solderable jumper to bypass circuitry used for wireless configurations with nice!nanos.
+* Simplified socketing of nice!view and OLED Displays.
+
+
+# Leeloo
+
+![Leeloo](https://i.imgur.com/x1ew17Dh.jpg)
+
+The original design and release of Leeloo.
+
+# Sample Build Commands for Leeloo v1, v2, and v2.1
-Make example, after setting up build environment:
+Make example for this keyboard (after setting up your build environment):
make clickety_split/leeloo/rev1:default
+ make clickety_split/leeloo/rev2:default
+ make clickety_split/leeloo/rev3: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 [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). \ No newline at end of file
diff --git a/keyboards/clickety_split/leeloo/rev1/info.json b/keyboards/clickety_split/leeloo/rev1/info.json
new file mode 100644
index 0000000000..e9396f3f81
--- /dev/null
+++ b/keyboards/clickety_split/leeloo/rev1/info.json
@@ -0,0 +1,6 @@
+{
+ "keyboard_name": "Leeloo v1",
+ "usb": {
+ "device_version": "0.1.3"
+ }
+}
diff --git a/keyboards/clickety_split/leeloo/rev2/config.h b/keyboards/clickety_split/leeloo/rev2/config.h
new file mode 100644
index 0000000000..2aa1acd972
--- /dev/null
+++ b/keyboards/clickety_split/leeloo/rev2/config.h
@@ -0,0 +1,22 @@
+/* Copyright 2023 Clickety Split Ltd.
+ *
+ * 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 RGB_MATRIX_LED_COUNT 74
+# define RGB_MATRIX_SPLIT {37, 37}
+# define RGB_DISABLE_WHEN_USB_SUSPENDED
+# define SPLIT_TRANSPORT_MIRROR
diff --git a/keyboards/clickety_split/leeloo/rev2/info.json b/keyboards/clickety_split/leeloo/rev2/info.json
new file mode 100644
index 0000000000..6db77714a4
--- /dev/null
+++ b/keyboards/clickety_split/leeloo/rev2/info.json
@@ -0,0 +1,104 @@
+{
+ "keyboard_name": "Leeloo v2",
+ "usb": {
+ "device_version": "0.2.0"
+ },
+ "features": {
+ "rgb_matrix": true
+ },
+ "split": {
+ "transport": {
+ "sync" :{
+ "matrix_state": true
+ }
+ }
+ },
+ "rgblight": {
+ "led_count": 74,
+ "split": true,
+ "split_count": [37, 37],
+ "max_brightness": 115
+ },
+ "ws2812": {
+ "pin": "D3"
+ },
+ "rgb_matrix": {
+ "driver": "ws2812",
+ "layout": [
+ {"flags": 2, "x": 86, "y": 8}, // L LU01
+ {"flags": 2, "x": 52, "y": 8}, // L LU02
+ {"flags": 2, "x": 17, "y": 8}, // L LU03
+ {"flags": 2, "x": 0, "y": 24}, // L LU04
+ {"flags": 2, "x": 0, "y": 40}, // L LU05
+ {"flags": 2, "x": 17, "y": 56}, // L LU06
+ {"flags": 2, "x": 52, "y": 56}, // L LU07
+ {"flags": 2, "x": 86, "y": 56}, // L LU08
+ {"flags": 4, "matrix": [4, 5], "x": 103, "y": 48}, // L LB09 | SW29
+ {"flags": 4, "matrix": [4, 4], "x": 103, "y": 64}, // L LB10 | SW28
+ {"flags": 4, "matrix": [4, 3], "x": 86, "y": 64}, // L LB11 | SW27
+ {"flags": 4, "matrix": [3, 5], "x": 86, "y": 48}, // L LB12 | SW24
+ {"flags": 4, "matrix": [2, 5], "x": 86, "y": 32}, // L LB13 | SW18
+ {"flags": 4, "matrix": [1, 5], "x": 86, "y": 15}, // L LB14 | SW12
+ {"flags": 4, "matrix": [0, 5], "x": 86, "y": 0}, // L LB15 | SW6
+ {"flags": 4, "matrix": [0, 4], "x": 69, "y": 0}, // L LB16 | SW5
+ {"flags": 4, "matrix": [1, 4], "x": 69, "y": 16}, // L LB17 | SW11
+ {"flags": 4, "matrix": [2, 4], "x": 69, "y": 32}, // L LB18 | SW17
+ {"flags": 4, "matrix": [3, 4], "x": 69, "y": 48}, // L LB19 | SW23
+ {"flags": 4, "matrix": [4, 2], "x": 69, "y": 64}, // L LB20 | SW26
+ {"flags": 4, "matrix": [4, 1], "x": 52, "y": 64}, // L LB21 | SW25
+ {"flags": 4, "matrix": [3, 3], "x": 52, "y": 48}, // L LB22 | SW22
+ {"flags": 4, "matrix": [2, 3], "x": 52, "y": 32}, // L LB23 | SW16
+ {"flags": 4, "matrix": [1, 3], "x": 52, "y": 16}, // L LB24 | SW10
+ {"flags": 4, "matrix": [0, 3], "x": 52, "y": 0}, // L LB25 | SW4
+ {"flags": 4, "matrix": [0, 2], "x": 34, "y": 0}, // L LB26 | SW3
+ {"flags": 4, "matrix": [1, 2], "x": 34, "y": 16}, // L LB27 | SW9
+ {"flags": 4, "matrix": [2, 2], "x": 34, "y": 32}, // L LB28 | SW15
+ {"flags": 4, "matrix": [3, 2], "x": 34, "y": 48}, // L LB29 | SW21
+ {"flags": 4, "matrix": [3, 1], "x": 17, "y": 48}, // L LB30 | SW20
+ {"flags": 4, "matrix": [2, 1], "x": 17, "y": 32}, // L LB31 | SW14
+ {"flags": 4, "matrix": [1, 1], "x": 17, "y": 16}, // L LB32 | SW8
+ {"flags": 4, "matrix": [0, 1], "x": 17, "y": 0}, // L LB33 | SW2
+ {"flags": 4, "matrix": [0, 0], "x": 0, "y": 0}, // L LB34 | SW1
+ {"flags": 4, "matrix": [1, 0], "x": 0, "y": 16}, // L LB35 | SW7
+ {"flags": 4, "matrix": [2, 0], "x": 0, "y": 32}, // L LB36 | SW13
+ {"flags": 4, "matrix": [3, 0], "x": 0, "y": 48}, // L LB37 | SW19
+ {"flags": 2, "x": 137, "y": 8}, // R LU38
+ {"flags": 2, "x": 172, "y": 8}, // R LU39
+ {"flags": 2, "x": 206, "y": 8}, // R LU40
+ {"flags": 2, "x": 224, "y": 24}, // R LU41
+ {"flags": 2, "x": 224, "y": 40}, // R LU42
+ {"flags": 2, "x": 206, "y": 56}, // R LU43
+ {"flags": 2, "x": 172, "y": 56}, // R LU44
+ {"flags": 2, "x": 137, "y": 56}, // R LU45
+ {"flags": 4, "matrix": [9, 5], "x": 120, "y": 48}, // R LB46 | SW58
+ {"flags": 4, "matrix": [9, 4], "x": 120, "y": 64}, // R LB47 | SW57
+ {"flags": 4, "matrix": [9, 3], "x": 137, "y": 64}, // R LB48 | SW56
+ {"flags": 4, "matrix": [8, 5], "x": 137, "y": 48}, // R LB49 | SW53
+ {"flags": 4, "matrix": [7, 5], "x": 137, "y": 32}, // R LB50 | SW47
+ {"flags": 4, "matrix": [6, 5], "x": 137, "y": 15}, // R LB51 | SW41
+ {"flags": 4, "matrix": [5, 5], "x": 137, "y": 0}, // R LB52 | SW35
+ {"flags": 4, "matrix": [5, 4], "x": 155, "y": 0}, // R LB53 | SW34
+ {"flags": 4, "matrix": [6, 4], "x": 155, "y": 16}, // R LB54 | SW40
+ {"flags": 4, "matrix": [7, 4], "x": 155, "y": 32}, // R LB55 | SW46
+ {"flags": 4, "matrix": [8, 4], "x": 155, "y": 48}, // R LB56 | SW52
+ {"flags": 4, "matrix": [9, 2], "x": 155, "y": 64}, // R LB57 | SW55
+ {"flags": 4, "matrix": [9, 1], "x": 172, "y": 64}, // R LB58 | SW54
+ {"flags": 4, "matrix": [8, 3], "x": 172, "y": 48}, // R LB59 | SW51
+ {"flags": 4, "matrix": [7, 3], "x": 172, "y": 32}, // R LB60 | SW45
+ {"flags": 4, "matrix": [6, 3], "x": 172, "y": 16}, // R LB61 | SW39
+ {"flags": 4, "matrix": [5, 3], "x": 172, "y": 0}, // R LB62 | SW33
+ {"flags": 4, "matrix": [5, 2], "x": 189, "y": 0}, // R LB63 | SW32
+ {"flags": 4, "matrix": [6, 2], "x": 189, "y": 16}, // R LB64 | SW38
+ {"flags": 4, "matrix": [7, 2], "x": 189, "y": 32}, // R LB65 | SW44
+ {"flags": 4, "matrix": [8, 2], "x": 189, "y": 48}, // R LB66 | SW50
+ {"flags": 4, "matrix": [8, 1], "x": 206, "y": 48}, // R LB67 | SW49
+ {"flags": 4, "matrix": [7, 1], "x": 206, "y": 32}, // R LB68 | SW43
+ {"flags": 4, "matrix": [6, 1], "x": 206, "y": 16}, // R LB69 | SW37
+ {"flags": 4, "matrix": [5, 1], "x": 206, "y": 0}, // R LB70 | SW31
+ {"flags": 4, "matrix": [5, 0], "x": 224, "y": 0}, // R LB71 | SW30
+ {"flags": 4, "matrix": [6, 0], "x": 224, "y": 16}, // R LB72 | SW36
+ {"flags": 4, "matrix": [7, 0], "x": 224, "y": 32}, // R LB73 | SW42
+ {"flags": 4, "matrix": [8, 0], "x": 224, "y": 48} // R LB74 | SW48
+ ]
+ }
+ }
diff --git a/keyboards/clickety_split/leeloo/rev2/rules.mk b/keyboards/clickety_split/leeloo/rev2/rules.mk
new file mode 100644
index 0000000000..80a6663b9c
--- /dev/null
+++ b/keyboards/clickety_split/leeloo/rev2/rules.mk
@@ -0,0 +1 @@
+# Intentionally left blank.
diff --git a/keyboards/clickety_split/leeloo/rev3/config.h b/keyboards/clickety_split/leeloo/rev3/config.h
new file mode 100644
index 0000000000..ac93150221
--- /dev/null
+++ b/keyboards/clickety_split/leeloo/rev3/config.h
@@ -0,0 +1,22 @@
+/* Copyright 2023 Clickety Split Ltd.
+ *
+ * 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 RGB_MATRIX_LED_COUNT 58
+# define RGB_MATRIX_SPLIT {29, 29}
+# define RGB_DISABLE_WHEN_USB_SUSPENDED
+# define SPLIT_TRANSPORT_MIRROR
diff --git a/keyboards/clickety_split/leeloo/rev3/info.json b/keyboards/clickety_split/leeloo/rev3/info.json
new file mode 100644
index 0000000000..2c92f5226e
--- /dev/null
+++ b/keyboards/clickety_split/leeloo/rev3/info.json
@@ -0,0 +1,88 @@
+{
+ "keyboard_name": "Leeloo v2.1",
+ "usb": {
+ "device_version": "0.2.1"
+ },
+ "features": {
+ "rgb_matrix": true
+ },
+ "split": {
+ "transport": {
+ "sync" :{
+ "matrix_state": true
+ }
+ }
+ },
+ "rgblight": {
+ "led_count": 58,
+ "split": true,
+ "split_count": [29, 29],
+ "max_brightness": 115
+ },
+ "ws2812": {
+ "pin": "D3"
+ },
+ "rgb_matrix": {
+ "driver": "ws2812",
+ "layout": [
+ {"flags": 4, "matrix": [4, 5], "x": 103, "y": 48}, // L LB01 | SW29
+ {"flags": 4, "matrix": [4, 4], "x": 103, "y": 64}, // L LB02 | SW28
+ {"flags": 4, "matrix": [4, 3], "x": 86, "y": 64}, // L LB03 | SW27
+ {"flags": 4, "matrix": [3, 5], "x": 86, "y": 48}, // L LB04 | SW24
+ {"flags": 4, "matrix": [2, 5], "x": 86, "y": 32}, // L LB05 | SW18
+ {"flags": 4, "matrix": [1, 5], "x": 86, "y": 15}, // L LB06 | SW12
+ {"flags": 4, "matrix": [0, 5], "x": 86, "y": 0}, // L LB07 | SW6
+ {"flags": 4, "matrix": [0, 4], "x": 69, "y": 0}, // L LB08 | SW5
+ {"flags": 4, "matrix": [1, 4], "x": 69, "y": 16}, // L LB09 | SW11
+ {"flags": 4, "matrix": [2, 4], "x": 69, "y": 32}, // L LB10 | SW17
+ {"flags": 4, "matrix": [3, 4], "x": 69, "y": 48}, // L LB11 | SW23
+ {"flags": 4, "matrix": [4, 2], "x": 69, "y": 64}, // L LB12 | SW26
+ {"flags": 4, "matrix": [4, 1], "x": 52, "y": 64}, // L LB13 | SW25
+ {"flags": 4, "matrix": [3, 3], "x": 52, "y": 48}, // L LB14 | SW22
+ {"flags": 4, "matrix": [2, 3], "x": 52, "y": 32}, // L LB15 | SW16
+ {"flags": 4, "matrix": [1, 3], "x": 52, "y": 16}, // L LB16 | SW10
+ {"flags": 4, "matrix": [0, 3], "x": 52, "y": 0}, // L LB17 | SW4
+ {"flags": 4, "matrix": [0, 2], "x": 34, "y": 0}, // L LB18 | SW3
+ {"flags": 4, "matrix": [1, 2], "x": 34, "y": 16}, // L LB19 | SW9
+ {"flags": 4, "matrix": [2, 2], "x": 34, "y": 32}, // L LB20 | SW15
+ {"flags": 4, "matrix": [3, 2], "x": 34, "y": 48}, // L LB21 | SW21
+ {"flags": 4, "matrix": [3, 1], "x": 17, "y": 48}, // L LB22 | SW20
+ {"flags": 4, "matrix": [2, 1], "x": 17, "y": 32}, // L LB23 | SW14
+ {"flags": 4, "matrix": [1, 1], "x": 17, "y": 16}, // L LB24 | SW8
+ {"flags": 4, "matrix": [0, 1], "x": 17, "y": 0}, // L LB25 | SW2
+ {"flags": 4, "matrix": [0, 0], "x": 0, "y": 0}, // L LB26 | SW1
+ {"flags": 4, "matrix": [1, 0], "x": 0, "y": 16}, // L LB27 | SW7
+ {"flags": 4, "matrix": [2, 0], "x": 0, "y": 32}, // L LB28 | SW13
+ {"flags": 4, "matrix": [3, 0], "x": 0, "y": 48}, // L LB29 | SW19
+ {"flags": 4, "matrix": [9, 5], "x": 120, "y": 48}, // R LB30 | SW58
+ {"flags": 4, "matrix": [9, 4], "x": 120, "y": 64}, // R LB31 | SW57
+ {"flags": 4, "matrix": [9, 3], "x": 137, "y": 64}, // R LB32 | SW56
+ {"flags": 4, "matrix": [8, 5], "x": 137, "y": 48}, // R LB33 | SW53
+ {"flags": 4, "matrix": [7, 5], "x": 137, "y": 32}, // R LB34 | SW47
+ {"flags": 4, "matrix": [6, 5], "x": 137, "y": 15}, // R LB35 | SW41
+ {"flags": 4, "matrix": [5, 5], "x": 137, "y": 0}, // R LB36 | SW35
+ {"flags": 4, "matrix": [5, 4], "x": 155, "y": 0}, // R LB37 | SW34
+ {"flags": 4, "matrix": [6, 4], "x": 155, "y": 16}, // R LB38 | SW40
+ {"flags": 4, "matrix": [7, 4], "x": 155, "y": 32}, // R LB39 | SW46
+ {"flags": 4, "matrix": [8, 4], "x": 155, "y": 48}, // R LB40 | SW52
+ {"flags": 4, "matrix": [9, 2], "x": 155, "y": 64}, // R LB41 | SW55
+ {"flags": 4, "matrix": [9, 1], "x": 172, "y": 64}, // R LB42 | SW54
+ {"flags": 4, "matrix": [8, 3], "x": 172, "y": 48}, // R LB43 | SW51
+ {"flags": 4, "matrix": [7, 3], "x": 172, "y": 32}, // R LB44 | SW45
+ {"flags": 4, "matrix": [6, 3], "x": 172, "y": 16}, // R LB45 | SW39
+ {"flags": 4, "matrix": [5, 3], "x": 172, "y": 0}, // R LB46 | SW33
+ {"flags": 4, "matrix": [5, 2], "x": 189, "y": 0}, // R LB47 | SW32
+ {"flags": 4, "matrix": [6, 2], "x": 189, "y": 16}, // R LB48 | SW38
+ {"flags": 4, "matrix": [7, 2], "x": 189, "y": 32}, // R LB49 | SW44
+ {"flags": 4, "matrix": [8, 2], "x": 189, "y": 48}, // R LB50 | SW50
+ {"flags": 4, "matrix": [8, 1], "x": 206, "y": 48}, // R LB51 | SW49
+ {"flags": 4, "matrix": [7, 1], "x": 206, "y": 32}, // R LB52 | SW43
+ {"flags": 4, "matrix": [6, 1], "x": 206, "y": 16}, // R LB53 | SW37
+ {"flags": 4, "matrix": [5, 1], "x": 206, "y": 0}, // R LB54 | SW31
+ {"flags": 4, "matrix": [5, 0], "x": 224, "y": 0}, // R LB55 | SW30
+ {"flags": 4, "matrix": [6, 0], "x": 224, "y": 16}, // R LB56 | SW36
+ {"flags": 4, "matrix": [7, 0], "x": 224, "y": 32}, // R LB57 | SW42
+ {"flags": 4, "matrix": [8, 0], "x": 224, "y": 48} // R LB58 | SW48
+ ]
+ }
+ }
diff --git a/keyboards/clickety_split/leeloo/rev3/rules.mk b/keyboards/clickety_split/leeloo/rev3/rules.mk
new file mode 100644
index 0000000000..80a6663b9c
--- /dev/null
+++ b/keyboards/clickety_split/leeloo/rev3/rules.mk
@@ -0,0 +1 @@
+# Intentionally left blank.
diff --git a/keyboards/clickety_split/leeloo/rules.mk b/keyboards/clickety_split/leeloo/rules.mk
index e99b3e15ed..9d35960f7c 100644
--- a/keyboards/clickety_split/leeloo/rules.mk
+++ b/keyboards/clickety_split/leeloo/rules.mk
@@ -1,15 +1,2 @@
-# Build Options
-# change yes to no to disable
-#
-BOOTMAGIC_ENABLE = no # Enable Bootmagic Lite
-MOUSEKEY_ENABLE = no # Mouse keys
-EXTRAKEY_ENABLE = no # Audio control and System control
-CONSOLE_ENABLE = no # Console for debug
-COMMAND_ENABLE = no # Commands for debug and configuration
-NKRO_ENABLE = no # Enable N-Key rollover
-BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
-RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
-AUDIO_ENABLE = no # Audio output
-SPLIT_KEYBOARD = yes
-
-DEFAULT_FOLDER = clickety_split/leeloo/rev1
+# Default Folder
+DEFAULT_FOLDER = clickety_split/leeloo/rev3
diff --git a/keyboards/clueboard/2x1800/2021/rules.mk b/keyboards/clueboard/2x1800/2021/rules.mk
index e9f44d7bd2..19c7eb2946 100644
--- a/keyboards/clueboard/2x1800/2021/rules.mk
+++ b/keyboards/clueboard/2x1800/2021/rules.mk
@@ -1 +1,2 @@
-QUANTUM_LIB_SRC += max7219.c spi_master.c
+SPI_DRIVER_REQUIRED = yes
+QUANTUM_LIB_SRC += max7219.c
diff --git a/keyboards/clueboard/66/keymaps/badger/keymap.c b/keyboards/clueboard/66/keymaps/badger/keymap.c
deleted file mode 100644
index 4c40e5ec19..0000000000
--- a/keyboards/clueboard/66/keymaps/badger/keymap.c
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
-Copyright 2020 Dan White <opensource@bluetufa.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 "badger.h"
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [_QWERTY_LINUX] = LAYOUT_66_ansi(
- 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_END,
- MOVE, 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_LALT, KC_LGUI, KC_SPC, ADJUST, KC_RGUI, KC_LALT, KC_LEFT, KC_DOWN, KC_RGHT),
-
- [_MOVE_LINUX] = LAYOUT_66_ansi(
- KC_ESC, VD_1, VD_2, VD_3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, IJ_UP, IJ_DOWN, KC_DEL, KC_PGUP,
- _______, IJ_STEP, IJ_INTO, IJ_OUT, IJ_RUN, IJ_STOP, IJ_OUT, KC_PGUP, KC_HOME, KC_END, KC_PGDN, IJ_BACK, IJ_FWD, KC_INS, KC_PGDN,
- _______, WM_LH, WM_UH, WM_RH, WD_FRWD, MAC_POP, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, CS_RIGHT, CS_DOWN, _______,
- _______, MM_UH, MM_BH, MAC_CPY, MAC_PST, WD_BACK, KC_MNXT, IJ_REN, IJ_IMPL, IJ_DECL, IJ_USAG, _______, KC_BRIU,
- _______, _______, _______, _______, _______, _______, _______, KC_HOME, KC_BRID, KC_END),
-
- [_QWERTY_MAC] = LAYOUT_66_ansi(
- 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_END,
- MOVE_MAC, 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_LALT, KC_LGUI, KC_SPC, ADJUST, KC_RGUI, KC_LALT, KC_LEFT, KC_DOWN, KC_RGHT),
-
- [_MOVE_MAC] = LAYOUT_66_ansi(
- KC_ESC, M_VD1, M_VD2, M_VD3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, IJ_UP, IJ_DOWN, KC_DEL, KC_PGUP,
- _______, IJ_STEP, IJ_INTO, IJ_OUT, IJ_RUN, IJ_STOP, IJ_OUT, KC_PGUP, KC_HOME, KC_END, KC_PGDN, IJ_BACK, IJ_FWD, KC_INS, KC_PGDN,
- _______, MM_LH, MM_MAX, MM_RH, WD_FRWD, MAC_POP, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, CM_RIGHT, CM_DOWN, _______,
- _______, MM_UH, MM_BH, MAC_CPY, MAC_PST, WD_BACK, KC_MNXT, IJ_REN, IJ_IMPL, IJ_DECL, IJ_USAG, _______, KC_BRIU,
- _______, _______, _______, _______, _______, _______, _______, KC_HOME, KC_BRID, KC_END),
-
- [_ADJUST] = LAYOUT_66_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_DEL, KC_VOLU,
- _______, NK_ON, NK_OFF, EE_CLR, QK_BOOT, KC_MSTP, KC_MPLY, KC_PGUP, KC_HOME, KC_END, KC_PGDN, AG_SWAP, AG_NORM, KC_INS, KC_VOLD,
- _______, GE_SWAP, GE_NORM, DB_TOGG, AG_SWAP, AG_NORM, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, _______, _______, _______,
- _______, DF_1, DF_2, KC_CAPS, _______, KC_MPRV, KC_MNXT, KC_MUTE, KC_WBAK, KC_WFWD, _______, _______, KC_BRIU,
- _______, _______, _______, _______, _______, _______, _______, KC_HOME, KC_BRID, KC_END)
-};
-
diff --git a/keyboards/clueboard/66/keymaps/magicmonty/keymap.c b/keyboards/clueboard/66/keymaps/magicmonty/keymap.c
index 238147537d..2a0cf1509f 100644
--- a/keyboards/clueboard/66/keymaps/magicmonty/keymap.c
+++ b/keyboards/clueboard/66/keymaps/magicmonty/keymap.c
@@ -172,7 +172,7 @@ void clueboard_set_midi_led(uint8_t base_oct, uint8_t val)
uint8_t sat = 255;
for (uint8_t i = 0; i < RGBLED_NUM; i++) {
- sethsv(oct_hues[base_oct], sat, val, (LED_TYPE *)&led[i]);
+ sethsv(oct_hues[base_oct], sat, val, (rgb_led_t *)&led[i]);
}
uint8_t next_oct = base_oct < MAX_OCT ? base_oct + 1 : base_oct;
@@ -183,11 +183,11 @@ void clueboard_set_midi_led(uint8_t base_oct, uint8_t val)
for (uint8_t i = 0; i < 3; i++) {
- sethsv(next_hue, next_sat, next_val, (LED_TYPE *)&led[i]);
+ sethsv(next_hue, next_sat, next_val, (rgb_led_t *)&led[i]);
}
for (uint8_t i = 11; i < 14; i++) {
- sethsv(next_hue, next_sat, next_val, (LED_TYPE *)&led[i]);
+ sethsv(next_hue, next_sat, next_val, (rgb_led_t *)&led[i]);
}
rgblight_set();
diff --git a/keyboards/clueboard/66_hotswap/gen1/config.h b/keyboards/clueboard/66_hotswap/gen1/config.h
index b50b676713..922426e87b 100644
--- a/keyboards/clueboard/66_hotswap/gen1/config.h
+++ b/keyboards/clueboard/66_hotswap/gen1/config.h
@@ -33,18 +33,10 @@
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-// This is a 7-bit address, that gets left-shifted and bit 0
-// set to 0 for write, 1 for read (as per I2C protocol)
-// The address will vary depending on your wiring:
-// 0b1110100 AD <-> GND
-// 0b1110111 AD <-> VCC
-// 0b1110101 AD <-> SCL
-// 0b1110110 AD <-> SDA
-#define LED_DRIVER_ADDR_1 0b1110100
+#define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND
#define I2C1_SCL_PIN B8
#define I2C1_SDA_PIN B9
-#define LED_DRIVER_COUNT 1
#define LED_MATRIX_LED_COUNT 71
// LED Matrix Animation modes. Explicitly enabled
diff --git a/keyboards/clueboard/66_hotswap/gen1/gen1.c b/keyboards/clueboard/66_hotswap/gen1/gen1.c
index a935884a0b..7af0b964da 100644
--- a/keyboards/clueboard/66_hotswap/gen1/gen1.c
+++ b/keyboards/clueboard/66_hotswap/gen1/gen1.c
@@ -16,7 +16,7 @@
#include "quantum.h"
#ifdef LED_MATRIX_ENABLE
-const is31_led PROGMEM g_is31_leds[LED_MATRIX_LED_COUNT] = {
+const is31fl3731_led_t PROGMEM g_is31fl3731_leds[LED_MATRIX_LED_COUNT] = {
/* Refer to IS31 manual for these locations
* driver
* | LED address
diff --git a/keyboards/contra/keymaps/losinggeneration/README.md b/keyboards/contra/keymaps/losinggeneration/README.md
deleted file mode 100644
index affd2fb9b4..0000000000
--- a/keyboards/contra/keymaps/losinggeneration/README.md
+++ /dev/null
@@ -1,30 +0,0 @@
-losinggeneration's Contra Layout
-============================
-
-This build uses the MIT layout.
-
-See description of the layout in the common folder
-[here](../../../../users/losinggeneration/README.md)
-
-## Features
-- Adjust
- - Removed AGSwap, AGNorm, & Del
- - Added Caps Lock, F1-F12 in a 4x3 grid, arrow cluster,
- and layer transitions to the new layers.
- - Moved Reset & Audio control to the right side
-
-## Layouts
-
-### Adjust (Lower + Raise)
-
-```
- ,-----------------------------------------------------------------------------------.
- | | F1 | F2 | F3 | F4 | | RESET| Game |Numpad|Mouse | |Sleep |
- |------+------+------+------+------+------+------+------+------+------+------+------|
- | | F5 | F6 | F7 | F8 | | |Qwerty|Colmak|Workmn|Dvorak| |
- |------+------+------+------+------+------+------+------+------+------+------+------|
- | CAPS | F9 | F10 | F11 | F12 | | | | | | Up | |
- |------+------+------+------+------+-------------+------+------+------+------+------|
- | | | | | | | | XXX | Left | Down |Right |
- `-----------------------------------------------------------------------------------'
-```
diff --git a/keyboards/contra/keymaps/losinggeneration/config.h b/keyboards/contra/keymaps/losinggeneration/config.h
deleted file mode 100644
index 4a64e977c9..0000000000
--- a/keyboards/contra/keymaps/losinggeneration/config.h
+++ /dev/null
@@ -1,23 +0,0 @@
-/*
-Copyright 2017 Danny Nguyen <danny@hexwire.com>
-Copyright 2018 Harley Laue <losinggeneration@gmail.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
-long with this program. If not, see <http://www.gnu.org/licenses/>.
-*/
-
-#pragma once
-
-#define USE_MIT_LAYOUT
-
-#define TAPPING_TERM 250
diff --git a/keyboards/contra/keymaps/losinggeneration/keymap.c b/keyboards/contra/keymaps/losinggeneration/keymap.c
deleted file mode 100644
index c7fb08b8d8..0000000000
--- a/keyboards/contra/keymaps/losinggeneration/keymap.c
+++ /dev/null
@@ -1,40 +0,0 @@
-#include QMK_KEYBOARD_H
-#include "losinggeneration-config.h"
-#include "losinggeneration-keymap.h"
-
-extern keymap_config_t keymap_config;
-
-#define MT_CAPS LSFT_T(KC_CAPS)
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
-[_QWERTY] = CATMAP( QWERTY_LAYER ),
-[_COLEMAK] = CATMAP( COLEMAK_LAYER ),
-[_WORKMAN] = CATMAP( WORKMAN_LAYER ),
-[_DVORAK] = CATMAP( DVORAK_LAYER ),
-[_GAME] = CATMAP( GAME_LAYER ),
-[_NUMPAD] = CATMAP( NUMPAD_LAYER ),
-[_MOUSE] = CATMAP( MOUSE_LAYER ),
-[_LOWER] = CATMAP( LOWER_LAYER ),
-[_RAISE] = CATMAP( RAISE_LAYER ),
-
-/* Adjust (Lower + Raise)
- * ,-----------------------------------------------------------------------------------.
- * | | F1 | F2 | F3 | F4 | | QK_BOOT| Game |Numpad|Mouse | |Sleep |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | | F5 | F6 | F7 | F8 | | |Qwerty|Colmak|Workmn|Dvorak| |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | CAPS | F9 | F10 | F11 | F12 | | | | | | Up | |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | | | | | | | | XXX | Left | Down |Right |
- * `-----------------------------------------------------------------------------------'
- */
-[_ADJUST] = CATMAP(
- _______, KC_F1 , KC_F2 , KC_F3 , KC_F4 , _______, QK_BOOT, TO_GAME, TO_NUM , TO_MS , _______, KC_SLEP,
- _______, KC_F5 , KC_F6 , KC_F7 , KC_F8 , _______, _______, QWERTY , COLEMAK, WORKMAN, DVORAK , _______,
- MT_CAPS, KC_F9 , KC_F10, KC_F11 , KC_F12 , _______, _______, _______, _______, _______, KC_UP , _______,
- _______, _______, _______, _______, _______, _______, _______, _______, XXXXXXX, KC_LEFT, KC_DOWN, KC_RGHT
-)
-
-};
-
diff --git a/keyboards/contra/keymaps/losinggeneration/rules.mk b/keyboards/contra/keymaps/losinggeneration/rules.mk
deleted file mode 100644
index 34b0ba318f..0000000000
--- a/keyboards/contra/keymaps/losinggeneration/rules.mk
+++ /dev/null
@@ -1,14 +0,0 @@
-# Build Options
-# change to "no" to disable the options, or define them in the Makefile in
-# the appropriate keymap folder that will get included automatically
-#
-AUDIO_ENABLE = no # Audio output on port C6
-BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
-BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
-BOOTMAGIC_ENABLE = no # Enable Bootmagic Lite
-COMMAND_ENABLE = no # Commands for debug and configuration
-CONSOLE_ENABLE = no # Console for debug(+400)
-MIDI_ENABLE = no # MIDI controls
-NKRO_ENABLE = no # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
-RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight.
-
diff --git a/keyboards/controllerworks/mini36/config.h b/keyboards/controllerworks/mini36/config.h
index 3a094c2fd1..4a0c48b1b0 100644
--- a/keyboards/controllerworks/mini36/config.h
+++ b/keyboards/controllerworks/mini36/config.h
@@ -22,11 +22,6 @@
#define RGB_MATRIX_SPLIT \
{ 24, 24 }
-#define SPLIT_TRANSPORT_MIRROR
-#define SPLIT_LAYER_STATE_ENABLE
-#define SPLIT_LED_STATE_ENABLE
-#define SPLIT_MODS_ENABLE
-
#define I2C_DRIVER I2CD0
#define I2C1_SCL_PIN GP25
#define I2C1_SDA_PIN GP24
diff --git a/keyboards/controllerworks/mini36/info.json b/keyboards/controllerworks/mini36/info.json
index 534dee94f1..3a49b210ac 100644
--- a/keyboards/controllerworks/mini36/info.json
+++ b/keyboards/controllerworks/mini36/info.json
@@ -41,7 +41,13 @@
},
"soft_serial_pin": "GP1",
"transport": {
- "protocol": "serial"
+ "protocol": "serial",
+ "sync": {
+ "indicators": true,
+ "layer_state": true,
+ "matrix_state": true,
+ "modifiers": true
+ }
}
},
"features": {
diff --git a/keyboards/controllerworks/mini42/config.h b/keyboards/controllerworks/mini42/config.h
index e7fc529592..20b6bbac8d 100644
--- a/keyboards/controllerworks/mini42/config.h
+++ b/keyboards/controllerworks/mini42/config.h
@@ -20,11 +20,6 @@
#define WS2812_PIO_USE_PIO1
#define RGB_MATRIX_LED_COUNT 54
-#define SPLIT_TRANSPORT_MIRROR
-#define SPLIT_LAYER_STATE_ENABLE
-#define SPLIT_LED_STATE_ENABLE
-#define SPLIT_MODS_ENABLE
-
#undef I2C_DRIVER
#define I2C_DRIVER I2CD0
#undef I2C1_SCL_PIN
diff --git a/keyboards/controllerworks/mini42/info.json b/keyboards/controllerworks/mini42/info.json
index ae70408a9f..5d1d56db1a 100644
--- a/keyboards/controllerworks/mini42/info.json
+++ b/keyboards/controllerworks/mini42/info.json
@@ -29,7 +29,6 @@
},
"split": {
"enabled": true,
- "main": "left",
"matrix_pins": {
"right": {
"direct": [
@@ -42,7 +41,13 @@
},
"soft_serial_pin": "GP1",
"transport": {
- "protocol": "serial"
+ "protocol": "serial",
+ "sync": {
+ "indicators": true,
+ "layer_state": true,
+ "matrix_state": true,
+ "modifiers": true
+ }
}
},
"features": {
diff --git a/keyboards/converter/adb_usb/keymaps/zyber/keymap.c b/keyboards/converter/adb_usb/keymaps/zyber/keymap.c
deleted file mode 100644
index a34b46d6de..0000000000
--- a/keyboards/converter/adb_usb/keymaps/zyber/keymap.c
+++ /dev/null
@@ -1,15 +0,0 @@
-// Copyright 2022 ZyBeR (@ZyberSE)
-// SPDX-License-Identifier: GPL-2.0
-
-#include "zyber.h"
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- LAYOUT_ext_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_PSCR,KC_SCRL,KC_PAUS, KC_EJCT,
- KC_GRV, KC_1, KC_2, KC_3, TD(SSHT), 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_NUM, KC_EQL, KC_PSLS, KC_PAST,
- KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, TD(LBRC), KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, KC_P7, KC_P8, KC_P9, KC_PMNS,
- KC_LCAP, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, TD(SCLN), TD(QUOT), KC_ENT, KC_P4, KC_P5, KC_P6, KC_PPLS,
- 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_P1, KC_P2, KC_P3,
- KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT, KC_PENT
- ),
-};
diff --git a/keyboards/converter/m0110_usb/keymaps/zyber/keymap.c b/keyboards/converter/m0110_usb/keymaps/zyber/keymap.c
deleted file mode 100644
index c3b85313ce..0000000000
--- a/keyboards/converter/m0110_usb/keymaps/zyber/keymap.c
+++ /dev/null
@@ -1,76 +0,0 @@
-// Copyright 2022 ZyBeR (@ZyberSE)
-// SPDX-License-Identifier: GPL-2.0
-
-#include "zyber.h"
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
- /* Default:
- * M0110 M0120
- * ,---------------------------------------------------------. ,---------------.
- * |Esc| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|Backs| |Nlk| =| /| *|
- * |---------------------------------------------------------| |---------------|
- * |Tab | Q| W| E| R| T| Y| U| I| O| P| Å| ¨|Ent| | 7| 8| 9| -|
- * |------------------------------------------------------| e| |---------------|
- * |Ctrl | A| S| D| F| G| H| J| K| L| Ö| Ä| '| r| | 4| 5| 6| +|
- * |---------------------------------------------------------| |---------------|
- * |Shft| §| Z| X| C| V| B| N| M| ,| .| /| -|Shft| | 1| 2| 3| |
- * `---------------------------------------------------------' |-----------|Ent|
- * |Opt|Mac | Space |Fn |Opt| | 0| .| |
- * `-----------------------------------------------' `---------------'
- * M0110A
- * ,---------------------------------------------------------. ,---------------.
- * | `| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|Backs| |Nlk| =| /| *|
- * |---------------------------------------------------------| |---------------|
- * |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| | | 7| 8| 9| -|
- * |-----------------------------------------------------' | |---------------|
- * |Caps | A| S| D| F| G| H| J| K| L| ;| '|Return| | 4| 5| 6| +|
- * |---------------------------------------------------------| |---------------|
- * |Shift | Z| X| C| V| B| N| M| ,| .| /|Shft|Up | | 1| 2| 3| |
- * |---------------------------------------------------------| |-----------|Ent|
- * |Opt |Mac | Space | \|Lft|Rgt|Dn | | 0| .| |
- * `---------------------------------------------------------' `---------------'
- */
-
- [0] = LAYOUT_iso(
- QK_GESC, 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_NUM, KC_EQL, KC_PSLS, KC_PAST,
- 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_ENT, KC_P7, KC_P8, KC_P9, KC_PMNS,
- CTRL_C_UP, 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_P4, KC_P5, KC_P6, KC_PPLS,
- 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_P1, KC_P2, KC_P3, KC_PENT,
- KC_LALT, KC_LGUI, KC_SPC, MO(1), LT(1, KC_BSLS), KC_DOWN),
-
-
- /* Cursor Layer:
- * M0110 M0120
- * ,---------------------------------------------------------. ,---------------.
- * |RES| F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12|Delet| |Nlk| =| /| *|
- * |---------------------------------------------------------| |---------------|
- * |Tab |Hom| Up|PgU|Rst| | | |Psc|Slk|Pau|Up |INS| | | 7| 8| 9| -|
- * |---------------------------------------------------------| |---------------|
- * |Ctrl |Lef|Dow|Rig| | | | |Hom|PgU|Lef|Rig|Return| | 4| 5| 6| +|
- * |---------------------------------------------------------| |---------------|
- * |Shift |End| |PgD| | | | |End|PgD|Dow|Shift | | 1| 2| 3| |
- * `---------------------------------------------------------' |-----------|Ent|
- * |Opt|Mac | Space |Fn |Opt| | 0| .| |
- * `-----------------------------------------------' `---------------'
- * M0110A
- * ,---------------------------------------------------------. ,---------------.
- * |Esc| F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12|Delet| |Nlk| =| /| *|
- * |---------------------------------------------------------| |---------------|
- * |Tab |Hom| Up|PgU| | | | |Psc|Slk|Pau|Up |INS| | | 7| 8| 9| -|
- * |-----------------------------------------------------' | |---------------|
- * |Caps |Lef|Dow|Rig| | | | |Hom|PgU|Lef|Rig|Return| | 4| 5| 6| +|
- * |---------------------------------------------------------| |---------------|
- * |Ctrl |End| |PgD| | | | |End|PgD|Dow|Shft|PgU| | 1| 2| 3| |
- * |---------------------------------------------------------| |-----------|Ent|
- * |Opt |Mac | Space | \|Hom|End|PgD| | 0| .| |
- * `---------------------------------------------------------' `---------------'
- */
-
- [1] = LAYOUT_iso(
- QK_BOOT, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_UP, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______),
-};
diff --git a/keyboards/converter/m0110_usb/keymaps/zyber/rules.mk b/keyboards/converter/m0110_usb/keymaps/zyber/rules.mk
deleted file mode 100644
index adaa1b5696..0000000000
--- a/keyboards/converter/m0110_usb/keymaps/zyber/rules.mk
+++ /dev/null
@@ -1,3 +0,0 @@
-F_CPU = 16000000
-BOOTLOADER = atmel-dfu
-CONSOLE_ENABLE = no
diff --git a/keyboards/converter/palm_usb/rules.mk b/keyboards/converter/palm_usb/rules.mk
index e02b683d3b..72d9daf6d9 100644
--- a/keyboards/converter/palm_usb/rules.mk
+++ b/keyboards/converter/palm_usb/rules.mk
@@ -14,6 +14,6 @@ RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight.
CUSTOM_MATRIX = yes
SRC += matrix.c
-QUANTUM_LIB_SRC += uart.c
+UART_DRIVER_REQUIRED = yes
DEFAULT_FOLDER = converter/palm_usb/stowaway
diff --git a/keyboards/converter/sun_usb/rules.mk b/keyboards/converter/sun_usb/rules.mk
index ee54c6cf11..ae20f51b37 100644
--- a/keyboards/converter/sun_usb/rules.mk
+++ b/keyboards/converter/sun_usb/rules.mk
@@ -14,6 +14,6 @@ RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight.
CUSTOM_MATRIX = yes
SRC += matrix.c led.c
-QUANTUM_LIB_SRC += uart.c
+UART_DRIVER_REQUIRED = yes
DEFAULT_FOLDER = converter/sun_usb/type5
diff --git a/keyboards/converter/sun_usb/type5/keymaps/sigma/keymap.c b/keyboards/converter/sun_usb/type5/keymaps/sigma/keymap.c
deleted file mode 100644
index 3996b7d2e1..0000000000
--- a/keyboards/converter/sun_usb/type5/keymaps/sigma/keymap.c
+++ /dev/null
@@ -1,31 +0,0 @@
-/*
-Copyright 2018 Yann Hodique <yann.hodique@gmail.com> @sigma
-
-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 "sigma.h"
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] =
- {
- [_QWERTY] = LAYOUT_us_unix(
- QK_LEAD, KC_SCRT, 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_MUTE,KC_VOLD,KC_VOLU,KC_OS_LOCK,
- KC_STOP, KC_OS_REDO, KC_ESC,KC_1,KC_2,KC_3,KC_4,KC_5,KC_6,KC_7,KC_8,KC_9,KC_0,KC_MINS,KC_EQL,KC_BSLS,KC_GRV, KC_INS, KC_HOME,KC_PGUP, KC_NUM, KC_PSLS,KC_PAST,KC_PMNS,
- VRSN, KC_OS_UNDO, 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_BSPC, KC_DEL, KC_END, KC_PGDN, KC_P7, KC_P8, KC_P9, KC_PPLS,
- KC_MAKE, KC_OS_COPY, 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_ENT, KC_P4, KC_P5, KC_P6,
- KC_EXECUTE,KC_OS_PASTE, 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_P1, KC_P2, KC_P3, KC_PENT,
- KC_FIND, KC_OS_CUT, KC_CAPS,KC_LGUI,KC_LALT, KC_SPC, KC_RGUI,KC_APP,KC_RALT, KC_LEFT,KC_DOWN,KC_RGHT, KC_P0, KC_PDOT
- ),
- };
diff --git a/keyboards/converter/sun_usb/type5/keymaps/sigma/readme.md b/keyboards/converter/sun_usb/type5/keymaps/sigma/readme.md
deleted file mode 100644
index 6ae011f866..0000000000
--- a/keyboards/converter/sun_usb/type5/keymaps/sigma/readme.md
+++ /dev/null
@@ -1,12 +0,0 @@
-Overview
-========
-
-This is my personal Sun Type 5 configuration.
-
-How to build
-------------
-
- make converter/sun_usb/type5:sigma:teensy
-
-Layers
-------
diff --git a/keyboards/converter/sun_usb/type5/keymaps/sigma/rules.mk b/keyboards/converter/sun_usb/type5/keymaps/sigma/rules.mk
deleted file mode 100644
index f1de332c0c..0000000000
--- a/keyboards/converter/sun_usb/type5/keymaps/sigma/rules.mk
+++ /dev/null
@@ -1,2 +0,0 @@
-BOOTLOADER = halfkay
-UNICODE_ENABLE = yes
diff --git a/keyboards/converter/usb_usb/keymaps/narze/README.md b/keyboards/converter/usb_usb/keymaps/narze/README.md
deleted file mode 100644
index eb9dbbf60b..0000000000
--- a/keyboards/converter/usb_usb/keymaps/narze/README.md
+++ /dev/null
@@ -1,10 +0,0 @@
-# narze's layout for usb-usb converter
-
-## Key features
-- Qwerty + [Colemak](https://colemak.com) layouts, and you can type Qwerty on software-level Colemak as well. Very useful for gaming or when your friend wanna type something but don't use Colemak.
-- [(S)uper (D)uper Mode](/users/narze/readme.md)
-
-## Build instructions
-- `cd /path/to/qmk_firmware`
-- Ensure latest libraries are loaded `make git-submodule`
-- Build & flash : `make converter/usb_usb:narze:flash`
diff --git a/keyboards/converter/usb_usb/keymaps/narze/config.h b/keyboards/converter/usb_usb/keymaps/narze/config.h
deleted file mode 100644
index a7fccc4187..0000000000
--- a/keyboards/converter/usb_usb/keymaps/narze/config.h
+++ /dev/null
@@ -1,43 +0,0 @@
-#pragma once
-
-/*
- * MIDI options
- */
-
-/* enable basic MIDI features:
- - MIDI notes can be sent when in Music mode is on
-*/
-#define MIDI_BASIC
-
-/* enable advanced MIDI features:
- - MIDI notes can be added to the keymap
- - Octave shift and transpose
- - Virtual sustain, portamento, and modulation wheel
- - etc.
-*/
-//#define MIDI_ADVANCED
-
-/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
-//#define MIDI_TONE_KEYCODE_OCTAVES 2
-
-#undef TAPPING_TERM
-#define TAPPING_TERM 100
-
-#define COMBO_TERM 20
-
-#define PERMISSIVE_HOLD
-
-#define SUPER_DUPER_SOUND S__NOTE(_B1)
-
-#define MOUSEKEY_DELAY 100
-
-#define USB_POLLING_INTERVAL_MS 1
-
-#ifdef AUDIO_ENABLE
- #define STARTUP_SONG SONG(PLANCK_SOUND)
-
- #define DEFAULT_LAYER_SONGS { SONG(QWERTY_SOUND), \
- SONG(COLEMAK_SOUND), \
- SONG(DVORAK_SOUND) \
- }
-#endif
diff --git a/keyboards/converter/usb_usb/keymaps/narze/keymap.c b/keyboards/converter/usb_usb/keymaps/narze/keymap.c
deleted file mode 100644
index 7b1b0ec445..0000000000
--- a/keyboards/converter/usb_usb/keymaps/narze/keymap.c
+++ /dev/null
@@ -1,167 +0,0 @@
-#include QMK_KEYBOARD_H
-#include "narze.h"
-#include "keymap_colemak.h"
-
-enum usb_usb_layers {
- _QWERTY,
- _COLEMAK,
- _QWOC,
- _SUPERDUPER,
-};
-
-enum usb_usb_keycodes {
- QWERTY = SAFE_RANGE,
- COLEMAK,
- QWOC,
- SUPERDUPER,
- SDTOGG, // Toggle SuperDuper
- GUI_UNDS,
- LSFT_LPRN,
- RSFT_RPRN,
-};
-
-#define HPR_ESC ALL_T(KC_ESC)
-#define SFT_ENT SFT_T(KC_ENT)
-#define BRWS_L S(LGUI(KC_LBRC))
-#define BRWS_R S(LGUI(KC_RBRC))
-
-enum process_combo_event {
- CB_SUPERDUPER,
-};
-
-const uint16_t keymaps[][MATRIX_ROWS][MATRIX_COLS] PROGMEM = {
- /* 0: plain Qwerty without layer switching
- * ,---------------. ,---------------. ,---------------.
- * |F13|F14|F15|F16| |F17|F18|F19|F20| |F21|F22|F23|F24|
- * ,---. |---------------| |---------------| |---------------| ,-----------. ,---------------. ,-------.
- * |Esc| |F1 |F2 |F3 |F4 | |F5 |F6 |F7 |F8 | |F9 |F10|F11|F12| |PrS|ScL|Pau| |VDn|VUp|Mut|Pwr| | Help |
- * `---' `---------------' `---------------' `---------------' `-----------' `---------------' `-------'
- * ,-----------------------------------------------------------. ,-----------. ,---------------. ,-------.
- * | `| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|JPY|Bsp| |Ins|Hom|PgU| |NmL| /| *| -| |Stp|Agn|
- * |-----------------------------------------------------------| |-----------| |---------------| |-------|
- * |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \ | |Del|End|PgD| | 7| 8| 9| +| |Mnu|Und|
- * |-----------------------------------------------------------| `-----------' |---------------| |-------|
- * |CapsL | A| S| D| F| G| H| J| K| L| ;| :| #|Retn| | 4| 5| 6|KP,| |Sel|Cpy|
- * |-----------------------------------------------------------| ,---. |---------------| |-------|
- * |Shft| <| Z| X| C| V| B| N| M| ,| ,| /| RO|Shift | |Up | | 1| 2| 3|KP=| |Exe|Pst|
- * |-----------------------------------------------------------| ,-----------. |---------------| |-------|
- * |Ctl|Gui|Alt|MHEN|HNJ| Space |H/E|HENK|KANA|Alt|Gui|App|Ctl| |Lef|Dow|Rig| | 0 | .|Ent| |Fnd|Cut|
- * `-----------------------------------------------------------' `-----------' `---------------' `-------'
- */
- [_QWERTY] = LAYOUT_all(
- KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_F21, KC_F22, KC_F23, KC_F24,
- 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_VOLD, KC_VOLU, KC_MUTE, KC_PWR, KC_HELP,
- 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_INT3, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, KC_NUM, KC_PSLS, KC_PAST, KC_PMNS, KC_STOP, KC_AGIN,
- 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, KC_P7, KC_P8, KC_P9, KC_PPLS, KC_MENU, KC_UNDO,
- HPR_ESC, 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_P4, KC_P5, KC_P6, KC_PCMM, KC_SLCT, KC_COPY,
- LSFT_LPRN,KC_NUBS,KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_INT1, RSFT_RPRN, KC_UP, KC_P1, KC_P2, KC_P3, KC_PEQL, KC_EXEC, KC_PSTE,
- KC_LCTL, KC_LALT, GUI_UNDS,KC_INT5, KC_LNG2, KC_SPC, KC_LNG1, KC_INT4, KC_INT2, KC_BSPC, KC_RALT, KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT, KC_PENT, KC_FIND, KC_CUT
- ),
- [_COLEMAK] = LAYOUT_all(
- KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_F21, KC_F22, KC_F23, KC_F24,
- 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_VOLD, KC_VOLU, KC_MUTE, KC_PWR, KC_HELP,
- 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_INT3, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, KC_NUM, KC_PSLS, KC_PAST, KC_PMNS, KC_STOP, KC_AGIN,
- 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, KC_P7, KC_P8, KC_P9, KC_PPLS, KC_MENU, KC_UNDO,
- HPR_ESC, 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_P4, KC_P5, KC_P6, KC_PCMM, KC_SLCT, KC_COPY,
- LSFT_LPRN,KC_NUBS,KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_INT1, RSFT_RPRN, KC_UP, KC_P1, KC_P2, KC_P3, KC_PEQL, KC_EXEC, KC_PSTE,
- KC_LCTL, KC_LALT, GUI_UNDS,KC_INT5, KC_LNG2, KC_SPC, KC_LNG1, KC_INT4, KC_INT2, KC_BSPC, KC_RALT, KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT, KC_PENT, KC_FIND, KC_CUT
- ),
- [_QWOC] = LAYOUT_all(
- KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_F21, KC_F22, KC_F23, KC_F24,
- 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_VOLD, KC_VOLU, KC_MUTE, KC_PWR, KC_HELP,
- 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_INT3, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, KC_NUM, KC_PSLS, KC_PAST, KC_PMNS, KC_STOP, KC_AGIN,
- 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, KC_P7, KC_P8, KC_P9, KC_PPLS, KC_MENU, KC_UNDO,
- HPR_ESC, 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_P4, KC_P5, KC_P6, KC_PCMM, KC_SLCT, KC_COPY,
- LSFT_LPRN,KC_NUBS,KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_INT1, RSFT_RPRN, KC_UP, KC_P1, KC_P2, KC_P3, KC_PEQL, KC_EXEC, KC_PSTE,
- KC_LCTL, KC_LALT, GUI_UNDS,KC_INT5, KC_LNG2, KC_SPC, KC_LNG1, KC_INT4, KC_INT2, KC_BSPC, KC_RALT, KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT, KC_PENT, KC_FIND, KC_CUT
- ),
- [_SUPERDUPER] = LAYOUT_all(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, BRWS_L, BRWS_R, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- KC_SPC, KC_LALT, _______, _______, KC_BSPC, KC_LGUI, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_DEL, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, KC_LSFT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
- ),
-};
-
-void matrix_init_user(void) {
-
-}
-
-void matrix_scan_user(void) {
-
-}
-
-bool process_record_user(uint16_t keycode, keyrecord_t *record) {
- switch (keycode) {
- case QWERTY:
- if (record->event.pressed) {
- set_single_persistent_default_layer(_QWERTY);
-
- set_superduper_key_combo_layer(_QWERTY);
- }
- return false;
-
- case COLEMAK:
- if (record->event.pressed) {
- set_single_persistent_default_layer(_COLEMAK);
-
- set_superduper_key_combo_layer(_COLEMAK);
- }
- return false;
-
- case QWOC:
- if (record->event.pressed) {
- set_single_persistent_default_layer(_QWOC);
-
- set_superduper_key_combo_layer(_QWOC);
- }
- return false;
-
- case SDTOGG:
- if (record->event.pressed) {
- toggle_superduper_mode();
- }
- return false;
-
- // Macros
-
- // 1. Hold for LGUI, tap for Underscore
- case GUI_UNDS:
- perform_space_cadet(record, keycode, KC_LGUI, KC_LSFT, KC_MINS);
- return false;
-
- // 2. Hold for LSHIFT, tap for Parens open
- case LSFT_LPRN:
- perform_space_cadet(record, keycode, KC_LSFT, KC_LSFT, KC_9);
- return false;
-
- // 3. Hold for RSHIFT, tap for Parens close
- case RSFT_RPRN:
- perform_space_cadet(record, keycode, KC_RSFT, KC_RSFT, KC_0);
- return false;
-
- default:
- return true;
- }
- return true;
-}
-
-void matrix_setup(void) {
- set_superduper_key_combos();
-}
-
-void process_combo_event(uint16_t combo_index, bool pressed) {
- if (pressed) {
- switch(combo_index) {
- case CB_SUPERDUPER:
- layer_on(_SUPERDUPER);
- break;
- }
- } else {
- layer_off(_SUPERDUPER);
- unregister_mods(MOD_BIT(KC_LGUI) | MOD_BIT(KC_LCTL) | MOD_BIT(KC_LALT)); // Sometimes mods are held, unregister them
- }
-}
diff --git a/keyboards/converter/usb_usb/keymaps/narze/rules.mk b/keyboards/converter/usb_usb/keymaps/narze/rules.mk
deleted file mode 100644
index 2d982de628..0000000000
--- a/keyboards/converter/usb_usb/keymaps/narze/rules.mk
+++ /dev/null
@@ -1,2 +0,0 @@
-EXTRAKEY_ENABLE = no
-COMBO_ENABLE = yes
diff --git a/keyboards/coseyfannitutti/discipline/keymaps/brandonschlack/keymap.c b/keyboards/coseyfannitutti/discipline/keymaps/brandonschlack/keymap.c
deleted file mode 100644
index e5b110790d..0000000000
--- a/keyboards/coseyfannitutti/discipline/keymaps/brandonschlack/keymap.c
+++ /dev/null
@@ -1,60 +0,0 @@
-/* Copyright 2019 Brandon Schlack
- *
- * 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 "brandonschlack.h"
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-/* Base Layer
- * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┬───┐
- * │Esc│! 1│@ 2│# 3│$ 4│% 5│^ 6│& 7│* 8│( 9│) 0│_ -│+ =│ Bckspc│Hom│
- * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┼───┤
- * │Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │{ [│} ]│| \│PgU│
- * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┤
- * │HyCaps│ A │ S │ D │ F │ G │ H │ J │ K │ L │: ;│" '│ Enter│PgD│
- * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┤
- * │Shift │ Z │ X │ C │ V │ B │ N │ M │< ,│> .│? /│ Shift│ Up│End│
- * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┴┬──┴──┬───┼───┼───┤
- * │Ctrl│ Opt│ Cmd│ Space │ Cmd │FnPly│Lef│Dow│Rig│
- * └────┴────┴────┴────────────────────────┴─────┴─────┴───┴───┴───┘
- */
-[_BASE] = LAYOUT_65_ansi_2_right_mods(
- KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_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,
- HY_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_LOPT, KC_LCMD, KC_SPC, KC_RCMD, PLY_FN1, KC_LEFT, KC_DOWN, KC_RGHT
-),
-/* Function Layer
- * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┬───┐
- * │` ~│ F1│ F2│ F3│ F4│ F5│ F6│ F7│ F8│ F9│F10│F11│F12│ Del │SlD│
- * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┼───┤
- * │ │ │ │ │ │ │ │ │ │ │F13│F14│F15│ LHP │VlU│
- * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┤
- * │ │ │ │ │ │ │ │ │ │ │ │ │ │VlD│
- * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┤
- * │ │ │ │ │ │RST│ │Mke│Prv│Nxt│Ply│ │PgU│Mut│
- * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┴┬──┴──┬───┼───┼───┤
- * │ │ │ │ │ │ │Hom│PgD│End│
- * └────┴────┴────┴────────────────────────┴─────┴─────┴───┴───┴───┘
- */
-[_FN1] = LAYOUT_65_ansi_2_right_mods(
- KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, MC_SLPD,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_F13, KC_F14, KC_F15, MC_LHPD, KC_VOLU,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_VOLD,
- _______, _______, _______, _______, _______, QK_BOOT, _______, QM_MAKE, KC_MPRV, KC_MNXT, KC_MPLY, _______, KC_PGUP, KC_MUTE,
- _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_END
-)
-};
diff --git a/keyboards/coseyfannitutti/discipline/keymaps/noroadsleft/config.h b/keyboards/coseyfannitutti/discipline/keymaps/noroadsleft/config.h
deleted file mode 100644
index 1c1f66c89f..0000000000
--- a/keyboards/coseyfannitutti/discipline/keymaps/noroadsleft/config.h
+++ /dev/null
@@ -1,20 +0,0 @@
-/* Copyright 2021 James Young (@noroadsleft)
- *
- * 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 ANSI_NUBS_ROW 3
-#define ANSI_NUBS_COL 2
diff --git a/keyboards/coseyfannitutti/discipline/keymaps/noroadsleft/keymap.c b/keyboards/coseyfannitutti/discipline/keymaps/noroadsleft/keymap.c
deleted file mode 100644
index 1c7f42f210..0000000000
--- a/keyboards/coseyfannitutti/discipline/keymaps/noroadsleft/keymap.c
+++ /dev/null
@@ -1,72 +0,0 @@
-/* Copyright 2021-2022 James Young (@noroadsleft)
- *
- * 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 "noroadsleft.h"
-
-enum layer_names {
- _DV,
- _QW,
- _NP,
- _FN,
- _SY
-};
-
-#define FN_CAPS LT(_FN, KC_CAPS)
-#define CTL_GRV MT(MOD_LCTL, KC_GRV)
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
- [_DV] = LAYOUT_65_ansi(
- KC_ESC, 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,
- FN_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,
- CTL_GRV, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
- ),
-
- [_QW] = LAYOUT_65_ansi(
- KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_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,
- FN_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,
- CTL_GRV, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
- ),
-
- [_NP] = LAYOUT_65_ansi(
- _______, _______, _______, _______, _______, _______, _______, KC_P7, KC_P8, KC_P9, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, KC_E, KC_F, _______, KC_P4, KC_P5, KC_P6, KC_PAST, KC_PSLS, KC_PEQL, _______, _______,
- _______, _______, _______, _______, KC_C, KC_D, _______, KC_P1, KC_P2, KC_P3, KC_PPLS, KC_PMNS, KC_PENT, _______,
- _______, _______, _______, _______, KC_A, KC_B, _______, KC_P0, _______, KC_PDOT, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
- ),
-
- [_FN] = LAYOUT_65_ansi(
- KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, DM_REC1,
- _______, KC_CALC, KC_APP, _______, _______, _______, KC_INS, KC_HOME, KC_UP, KC_END, KC_PGUP, KC_PSCR, KC_SCRL, KC_PAUS, DM_REC2,
- _______, M_SALL, _______, _______, G_PWD, _______, KC_DEL, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, _______, DM_RSTP, DM_PLY1,
- _______, M_UNDO, M_CUT, M_COPY, M_PASTE, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, TO(_SY), _______, _______, DM_PLY2,
- _______, _______, _______, TG(_NP), _______, _______, _______, _______, _______, _______
- ),
-
- [_SY] = LAYOUT_65_ansi(
- TG(_SY), TO(_DV), TO(_QW), XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, QK_BOOT, XXXXXXX, DB_TOGG, XXXXXXX, VRSN, XXXXXXX, XXXXXXX,
- XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
- XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
- XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
- XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX
- )
-
-};
diff --git a/keyboards/coseyfannitutti/discipline/keymaps/noroadsleft/rules.mk b/keyboards/coseyfannitutti/discipline/keymaps/noroadsleft/rules.mk
deleted file mode 100644
index 9e6797ed30..0000000000
--- a/keyboards/coseyfannitutti/discipline/keymaps/noroadsleft/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-DYNAMIC_MACRO_ENABLE = yes
diff --git a/keyboards/coseyfannitutti/romeo/keymaps/brandonschlack/keymap.c b/keyboards/coseyfannitutti/romeo/keymaps/brandonschlack/keymap.c
deleted file mode 100644
index dd95901367..0000000000
--- a/keyboards/coseyfannitutti/romeo/keymaps/brandonschlack/keymap.c
+++ /dev/null
@@ -1,111 +0,0 @@
-/* Copyright 2020 Brandon Schlack
- *
- * 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 "brandonschlack.h"
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-/* Base Layer
-* ┌─────┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬─────┐
-* │Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ Bspc│
-* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤
-* │HyEsc │ A │ S │ D │ F │ G │ H │ J │ K │ L │ Enter│
-* ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬──────┤
-* │Shift │ Z │ X │ C │ V │ B │ N │ M │< ,│> .│ ?/Sft│
-* ├────┬───┼───┼───┴───┴───┴───┴───┴───┴┬──┴─┬─┴─┬────┤
-* │Ctrl│Opt│Cmd│ Space │ Cmd│Opt│ Lwr│
-* └────┴───┴───┴────────────────────────┴────┴───┴────┘
-*/
-[_BASE] = LAYOUT_ansi_40(
- KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,
- HY_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_ENT,
- KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, SF_SLSH,
- KC_LCTL, KC_LOPT, KC_LCMD, SPC_RAI, KC_RCMD, KC_ROPT, LOWER
-),
-/* Lower
-* ┌─────┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬─────┐
-* │Del │BrD│BrU│Msn│LHP│   │   │   │PgU│Hom│End│ SlpD│
-* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤
-* │HyCaps│Mut│VlU│NxW│PvT│Bck│Fwd│NxT│PgD│ ↑ │ Play│
-* ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬──────┤
-* │ │Prv│VlD│Nxt│1PX│1Ps│   │ ← │ ↓ │ → │ │
-* ├────┬───┼───┼───┴───┴───┴───┴───┴───┴┬──┴─┬─┴─┬────┤
-* │ │ │ │ │ │ │ │
-* └────┴───┴───┴────────────────────────┴────┴───┴────┘
-*/
-[_LOWER] = LAYOUT_ansi_40(
- KC_DEL, KC_BRMD, KC_BRMU, MC_MSSN, MC_LHPD, _______, _______, _______, KC_PGUP, KC_HOME, KC_END, MC_SLPD,
- HY_CAPS, KC_MUTE, KC_VOLU, NXT_WIN, PRV_TAB, MC_BACK, MC_FWRD, NXT_TAB, KC_PGDN, KC_UP, KC_MPLY,
- _______, KC_MPRV, KC_VOLD, KC_MNXT, PX_AFLL, OP_AFLL, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______,
- _______, _______, _______, _______, _______, _______, _______
-),
-/* Raise
-* ┌─────┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬─────┐
-* │~ `  │! 1│@ 2│# 3│$ 4│% 5│^ 6│& 7│* 8│( 9│) 0│ │
-* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤
-* │     │ F1│ F2│ F3│ F4│ F5│ F6│_ -│+ =│: ;│ " '│
-* ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬──────┤
-* │ │ F7│ F8│ F9│F10│F11│F12│   │{ [│} ]│ |\Sft│
-* ├────┬───┼───┼───┴───┴───┴───┴───┴───┴┬──┴─┬─┴─┬────┤
-* │ │ │ │ │    │   │    │
-* └────┴───┴───┴────────────────────────┴────┴───┴────┘
-*/
-[_RAISE] = LAYOUT_ansi_40(
- KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, _______,
- _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_SCLN, KC_QUOT,
- _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, KC_LBRC, KC_RBRC, SF_BSLS,
- _______, _______, _______, _______, _______, _______, _______
-),
-/* Adjust/Macro Layer
-* ┌─────┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬─────┐
-* │Make │   │   │EEP│RST│ │ │ │ │ │ │     │
-* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤
-* │ │ │ │ │ │ │ │ │ │ │ │
-* ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬──────┤
-* │ │ │ │ │ │ │ │ │ │ │ │
-* ├────┬───┼───┼───┴───┴───┴───┴───┴───┴┬──┴─┬─┴─┬────┤
-* │ │ │ │ │ │ │ │
-* └────┴───┴───┴────────────────────────┴────┴───┴────┘
-*/
-[_ADJUST] = LAYOUT_ansi_40(
- QM_MAKE, _______, _______, EE_CLR, QK_BOOT, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______
-)
-/* Blank Layer
-* ┌─────┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬─────┐
-* │ │ │ │ │ │ │ │ │ │ │ │ │
-* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤
-* │ │ │ │ │ │ │ │ │ │ │ │
-* ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬──────┤
-* │ │ │ │ │ │ │ │ │ │ │ │
-* ├────┬───┼───┼───┴───┴───┴───┴───┴───┴┬──┴─┬─┴─┬────┤
-* │ │ │ │ │ │ │ │
-* └────┴───┴───┴────────────────────────┴────┴───┴────┘
-*/
-/*
-[BLANK] = LAYOUT_ansi_40(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______
-)
-*/
-};
-
-layer_state_t layer_state_set_keymap(layer_state_t state) {
- return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST);
-}
diff --git a/keyboards/cozykeys/speedo/v3/keymaps/pcewing/keymap.c b/keyboards/cozykeys/speedo/v3/keymaps/pcewing/keymap.c
deleted file mode 100644
index 51fb5ca67c..0000000000
--- a/keyboards/cozykeys/speedo/v3/keymaps/pcewing/keymap.c
+++ /dev/null
@@ -1,132 +0,0 @@
-/*
- * Copyright 2022 Paul Ewing
- *
- * 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 "key_repeater.h"
-
-#include <stdlib.h>
-
-enum {
- LAYER_DEFAULT,
- LAYER_FN,
- LAYER_MACRO,
-
- __LAYER_COUNT,
-};
-
-#define TO_MACRO TO(LAYER_MACRO)
-#define TO_DFLT TO(LAYER_DEFAULT)
-#define MO_FN MO(LAYER_FN)
-
-#define RGB_N RGB_MOD // Rotate to next RGB mode
-#define RGB_P RGB_RMOD // Rotate to next RGB mode
-
-#define KC_YANK LCTL(KC_INS) // Copy shortcut in most terminal emulators
-#define KC_PUT LSFT(KC_INS) // Paste shortcut in most terminal emulators
-
-// Custom keycodes
-enum {
- SH_TOG = SAFE_RANGE, // Toggle shift
- SH_BTN1, // Shift left click
- RP_BTN1, // Click repeatedly while key is held
-};
-
-const uint16_t PROGMEM keymaps[__LAYER_COUNT][MATRIX_ROWS][MATRIX_COLS] = {
-
-[LAYER_DEFAULT] = LAYOUT(
- KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS,
- KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_UP, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS,
- KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_LEFT, KC_RGHT, 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_DOWN, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,
- KC_LCTL, KC_LGUI, KC_LALT, KC_GRV, MO_FN, KC_BSPC, KC_DEL, KC_ENT, KC_SPC, KC_LBRC, KC_RBRC, KC_RALT, KC_RGUI, KC_RCTL
-),
-
-[LAYER_FN] = LAYOUT(
- RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, _______, QK_BOOT,
- _______, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, RGB_TOG, KC_YANK, KC_GRV, KC_LBRC, KC_RBRC, KC_PUT, _______,
- KC_CAPS, KC_F5, KC_F6, KC_F7, KC_F8, KC_INS, RGB_N, RGB_P, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, _______, _______,
- _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_PAUS, RGB_M_P, KC_HOME, KC_PGDN, KC_PGUP, KC_END, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, TO_MACRO, _______, _______, _______, _______, _______, _______
-),
-
-[LAYER_MACRO] = LAYOUT(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, RP_BTN1, SH_TOG, _______, _______, _______, _______, _______, _______, _______,
- TO_DFLT, _______, _______, KC_BTN1, SH_BTN1, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, KC_1, KC_6, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, KC_BTN1, _______, _______, _______, _______, _______, _______, _______, _______
-),
-
-};
-
-static bool shift_enabled = false;
-
-static struct key_repeater_t* click_repeater = NULL;
-
-bool process_record_user(uint16_t keycode, keyrecord_t *record) {
- switch (keycode) {
- case SH_TOG:
- if (record->event.pressed) {
- if (shift_enabled) {
- unregister_code(KC_LSFT);
- } else {
- register_code(KC_LSFT);
- }
- shift_enabled = !shift_enabled;
- }
- return false; // Skip all further processing of this key
- case SH_BTN1:
- if (record->event.pressed) {
- register_code(KC_LSFT);
- register_code(KC_BTN1);
- } else {
- unregister_code(KC_BTN1);
- unregister_code(KC_LSFT);
- }
- return false;
- case RP_BTN1:
- if (record->event.pressed) {
- kr_enable(click_repeater);
- } else {
- kr_disable(click_repeater);
- }
- return false;
- default:
- return true; // Process all other keycodes normally
- }
-}
-
-void keyboard_post_init_user(void) {
- // Seed the random number generator which is used by the key repeater
- srand(timer_read32());
-
- // Configure and instantiate a key repeater for mouse button 1 "rapid fire"
- struct key_repeater_config_t cfg = {
- .key = KC_BTN1,
- .key_duration_min = 20,
- .key_duration_max = 50,
- .wait_duration_min = 90,
- .wait_duration_max = 140,
- };
-
- click_repeater = kr_new(&cfg);
-}
-
-void matrix_scan_user(void) {
- kr_poll(click_repeater);
-}
diff --git a/keyboards/crimsonkeyboards/resume1800/info.json b/keyboards/crimsonkeyboards/resume1800/info.json
index 0a967d11d6..23257be46e 100644
--- a/keyboards/crimsonkeyboards/resume1800/info.json
+++ b/keyboards/crimsonkeyboards/resume1800/info.json
@@ -20,8 +20,12 @@
},
"processor": "atmega32a",
"bootloader": "usbasploader",
+ "layout_aliases": {
+ "LAYOUT_resume1800_ansi_all": "LAYOUT_ansi_all",
+ "LAYOUT_resume1800_iso_all": "LAYOUT_iso_all"
+ },
"layouts": {
- "LAYOUT_resume1800_ansi_all": {
+ "LAYOUT_ansi_all": {
"layout": [
{"matrix": [0, 0], "x": 0, "y": 0},
{"matrix": [0, 1], "x": 1, "y": 0},
@@ -138,7 +142,7 @@
{"matrix": [5, 19], "x": 19, "y": 5}
]
},
- "LAYOUT_resume1800_iso_all": {
+ "LAYOUT_iso_all": {
"layout": [
{"matrix": [0, 0], "x": 0, "y": 0},
{"matrix": [0, 1], "x": 1, "y": 0},
diff --git a/keyboards/crimsonkeyboards/resume1800/keymaps/dee/keymap.c b/keyboards/crimsonkeyboards/resume1800/keymaps/dee/keymap.c
index c7f471a113..27e1e2bc50 100644
--- a/keyboards/crimsonkeyboards/resume1800/keymaps/dee/keymap.c
+++ b/keyboards/crimsonkeyboards/resume1800/keymaps/dee/keymap.c
@@ -34,7 +34,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
};
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [0] = LAYOUT_resume1800_iso_all(
+ [0] = LAYOUT_iso_all(
/* Esc F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 Print Scroll Lock Pause Insert End */
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_F13, KC_F14, KC_PRINT_SCREEN, KC_SCRL, KC_PAUS, KC_INS, KC_END,
/* ~ 1 2 3 4 5 6 7 8 9 0 - = Backspace Delete Num Lock Num / Num * Num - */
diff --git a/keyboards/crimsonkeyboards/resume1800/keymaps/default/keymap.c b/keyboards/crimsonkeyboards/resume1800/keymaps/default/keymap.c
index b8adef49b0..a8bb2c13d5 100644
--- a/keyboards/crimsonkeyboards/resume1800/keymaps/default/keymap.c
+++ b/keyboards/crimsonkeyboards/resume1800/keymaps/default/keymap.c
@@ -34,7 +34,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
};
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [0] = LAYOUT_resume1800_ansi_all(
+ [0] = LAYOUT_ansi_all(
/* Esc F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 Print Scroll Lock Pause Insert End */
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_F13, KC_F14, KC_PSCR, KC_SCRL, KC_PAUS, KC_INS, KC_END,
/* ~ 1 2 3 4 5 6 7 8 9 0 - = Backspace Delete Num Lock Num / Num * Num - */
diff --git a/keyboards/crimsonkeyboards/resume1800/keymaps/iso/keymap.c b/keyboards/crimsonkeyboards/resume1800/keymaps/iso/keymap.c
index ea08c07b19..2f5f351f13 100644
--- a/keyboards/crimsonkeyboards/resume1800/keymaps/iso/keymap.c
+++ b/keyboards/crimsonkeyboards/resume1800/keymaps/iso/keymap.c
@@ -34,7 +34,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
};
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [0] = LAYOUT_resume1800_iso_all(
+ [0] = LAYOUT_iso_all(
/* Esc F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 Print Scroll Lock Pause Insert End */
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_F13, KC_F14, KC_PSCR, KC_SCRL, KC_PAUS, KC_INS, KC_END,
/* ~ 1 2 3 4 5 6 7 8 9 0 - = Backspace Delete Num Lock Num / Num * Num - */
diff --git a/keyboards/crimsonkeyboards/resume1800/keymaps/via/keymap.c b/keyboards/crimsonkeyboards/resume1800/keymaps/via/keymap.c
index b8adef49b0..a8bb2c13d5 100644
--- a/keyboards/crimsonkeyboards/resume1800/keymaps/via/keymap.c
+++ b/keyboards/crimsonkeyboards/resume1800/keymaps/via/keymap.c
@@ -34,7 +34,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
};
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [0] = LAYOUT_resume1800_ansi_all(
+ [0] = LAYOUT_ansi_all(
/* Esc F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 Print Scroll Lock Pause Insert End */
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_F13, KC_F14, KC_PSCR, KC_SCRL, KC_PAUS, KC_INS, KC_END,
/* ~ 1 2 3 4 5 6 7 8 9 0 - = Backspace Delete Num Lock Num / Num * Num - */
diff --git a/keyboards/crkbd/keymaps/cameronjlarsen/config.h b/keyboards/crkbd/keymaps/cameronjlarsen/config.h
deleted file mode 100644
index 1d83214a77..0000000000
--- a/keyboards/crkbd/keymaps/cameronjlarsen/config.h
+++ /dev/null
@@ -1,47 +0,0 @@
-/* Copyright 2022 Cameron Larsen <@cameronjlarsen>
- *
- * 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
-
-
-/* Select hand configuration */
-#define MASTER_LEFT
-// #define MASTER_RIGHT
-// #define EE_HANDS
-
-#define TAPPING_FORCE_HOLD
-#define TAPPING_TERM 135
-
-#define CAPS_WORD_IDLE_TIMEOUT 5000 // Turn off Caps Word after 5 seconds.
-
-#ifdef RGBLIGHT_ENABLE
- #define RGBLIGHT_EFFECT_BREATHING
- #define RGBLIGHT_EFFECT_RAINBOW_MOOD
- #define RGBLIGHT_EFFECT_RAINBOW_SWIRL
- #define RGBLIGHT_EFFECT_SNAKE
- #define RGBLIGHT_EFFECT_KNIGHT
- #define RGBLIGHT_EFFECT_CHRISTMAS
- #define RGBLIGHT_EFFECT_STATIC_GRADIENT
- #define RGBLIGHT_EFFECT_RGB_TEST
- #define RGBLIGHT_EFFECT_ALTERNATING
- #define RGBLIGHT_EFFECT_TWINKLE
- #define RGBLIGHT_LIMIT_VAL 120
- #define RGBLIGHT_HUE_STEP 10
- #define RGBLIGHT_SAT_STEP 17
- #define RGBLIGHT_VAL_STEP 17
-#endif
-
-#define OLED_FONT_H "keyboards/crkbd/lib/glcdfont.c"
diff --git a/keyboards/crkbd/keymaps/cameronjlarsen/keymap.c b/keyboards/crkbd/keymaps/cameronjlarsen/keymap.c
deleted file mode 100644
index 54ad19dc0b..0000000000
--- a/keyboards/crkbd/keymaps/cameronjlarsen/keymap.c
+++ /dev/null
@@ -1,357 +0,0 @@
-/* Copyright 2022 Cameron Larsen <@cameronjlarsen>
- *
- * 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 3 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 <stdio.h>
-#include "features/oneshot.h"
-
-enum layers {
- _QWERTY = 0,
- SYM,
- NAV,
- FUN,
-};
-// Aliases for readability
-#define QWERTY DF(_QWERTY)
-#define LA_SYM LT(SYM, KC_TAB)
-#define LA_NAV MO(NAV)
-
-// One shot mods
-enum keycodes {
- OS_SHFT = QK_USER,
- OS_CTRL,
- OS_ALT,
- OS_GUI,
-};
-
-// Note: LAlt/Enter (ALT_ENT) is not the same thing as the keyboard shortcut Alt+Enter.
-// The notation `mod/tap` denotes a key that activates the modifier `mod` when held down, and
-// produces the key `tap` when tapped (i.e. pressed and released).
-
-// clang-format off
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-/*
- * Base Layer: QWERTY
- *
- * Inspiration:
- *
- * https://github.com/serebrov/qmk_firmware/blob/custom/keyboards/kyria/keymaps/kyria-mini/keymap.c
- *
- * Notes:
- * - F & J enables CAPSWORD, disables after 5 seconds
- * - Left thumb CTRL and SHIFT are one shot
- * - Enter is moved to ; location and ; is moved to Sym layer
- * - ESC can be accessed by NAV and G
- * - BKSP is accessed by NAV and Enter
- * - Tab is accessed by tapping SYM layer
- * - FUN layer is accessed by holding NAV and SYM layers at the same time
- *
- * ,----------------------------------. ,----------------------------------.
- * | Q | W | E | R | T | | Y | U | I | O | P |
- * |------+------+------+------+------| |------+------+------+------+------|
- * | A | S | D | F | G | | H | J | K | L | Enter|
- * |------+------+------+------+------. ,------+------+------+------+------|
- * | Z | X | C | V | B | | N | M | , < | . > | / ? |
- * `------+------+------+------+------+------. ,------+------+------+------+-------------'
- * | OSM | OSM | Nav | | Sym | Space| GUI |
- * | Ctrl | Shift| | | Tab | | |
- * `---------------------' `--------------------'
- */
- [_QWERTY] = LAYOUT_split_3x5_3(
- 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_ENT ,
- KC_Z , KC_X , KC_C , KC_V , KC_B , KC_N, KC_M ,KC_COMM, KC_DOT , KC_SLSH,
- OS_CTRL, OS_SHFT, LA_NAV , LA_SYM , KC_SPC, OS_GUI
- ),
-
-/*
- * Sym Layer: Numbers and symbols
- *
- * Notes:
- * - Symbols are grouped together and shifted symbols from middle row are on bottom row
- * - Exception is angle brackets
- *
- * ,----------------------------------. ,----------------------------------.
- * | 1 ! | 2 @ | 3 # | 4 $ | 5 % | | 6 ^ | 7 & | 8 * | 9 ( | 0 ) |
- * |------+------+------+------+------| |------+------+------+------+------|
- * | ` | ( | ) | ' | = | | \ | - | [ | ] | ; |
- * |------+------+------+------+------+ +------+------+------+------+------|
- * | ~ | < | > | " | + | | | | _ | { | } | : |
- * `-------------+------+------+------+------. ,------+------+------+------+-------------'
- * | | | | | | | |
- * | | | | | | | |
- * `--------------------' `--------------------'
- */
- [SYM] = LAYOUT_split_3x5_3(
- KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 ,
- KC_GRV , KC_LPRN, KC_RPRN, KC_QUOT, KC_EQL , KC_BSLS, KC_MINS, KC_LBRC, KC_RBRC, KC_SCLN,
- KC_TILD, KC_LABK, KC_RABK, KC_DQUO, KC_PLUS, KC_PIPE, KC_UNDS, KC_LCBR, KC_RCBR, KC_COLN,
- _______, _______, _______, _______, _______, _______
- ),
-
-/*
- * Nav Layer: Navigation, Media
- *
- * Notes:
- * - Vim style navigation keys
- * - Volume and Media Keys
- * - BKSP on Enter
- * - DEL on /
- * - Esc on G
- *
- * ,----------------------------------. ,----------------------------------.
- * | | | | BriUp| BriDn| | Home | PgDn | PgUp | End |PrtScr|
- * |------+------+------+------+------| |------+------+------+------+------|
- * | GUI | Alt | Ctrl | Shift| Esc | | ← | ↓ | ↑ | → | Bksp |
- * |------+------+------+------+------+ +------+------+------+------+------|
- * | | Vol- | Mute | Vol+ |NumLck| | MPrev| MPlay| MStop| MNext|Delete|
- * `-------------+------+------+------+------. ,------+------+------+------+-------------'
- * | | | | | | | |
- * | | | | | | | |
- * `--------------------' `--------------------'
- */
- [NAV] = LAYOUT_split_3x5_3(
- _______, _______, _______, KC_BRIU, KC_BRID, KC_HOME, KC_PGDN, KC_PGUP, KC_END , KC_PSCR,
- OS_GUI , OS_ALT , OS_CTRL, OS_SHFT, KC_ESC , KC_LEFT, KC_DOWN, KC_UP , KC_RGHT, KC_BSPC,
- _______, KC_VOLD, KC_MUTE, KC_VOLU, KC_NUM , KC_MPRV, KC_MPLY, KC_MSTP, KC_MNXT, KC_DEL ,
- _______, _______, _______, _______, _______, _______
- ),
-
-/*
- * Function Layer: Function keys
- *
- * Notes:
- * - F1-F10 on bottom row
- * - F11-F12 on index finger inner row
- * - Homerow mods
- * - Num keys on top row
- *
- * ,----------------------------------. ,----------------------------------.
- * | 1 ! | 2 @ | 3 # | 4 $ | 5 % | | 6 ^ | 7 & | 8 * | 9 ( | 0 ) |
- * |------+------+------+------+------| |------+------+------+------+------|
- * | GUI | Alt | Ctrl | Shift| F11 | | F12 | Shift| Ctrl | Alt | GUI |
- * |------+------+------+------+------+ +------+------+------+------+------|
- * | F1 | F2 | F3 | F4 | F5 | | F6 | F7 | F8 | F9 | F10 |
- * `-------------+------+------+------+------. ,------+------+------+------+-------------'
- * | | | | | | | |
- * | | | | | | | |
- * `--------------------' `--------------------'
- */
- [FUN] = LAYOUT_split_3x5_3(
- KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 ,
- OS_GUI , OS_ALT , OS_CTRL, OS_SHFT, KC_F11 , KC_F12 , OS_SHFT, OS_CTRL, OS_ALT , OS_GUI ,
- KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_F5 , KC_F6 , KC_F7 , KC_F8 , KC_F9 , KC_F10 ,
- _______, _______, _______, _______, _______, _______
- ),
-
-};
-
-enum combo_events {
- CAPS_COMBO
-};
-
-const uint16_t PROGMEM caps_combo[] = {KC_F, KC_J, COMBO_END};
-
-combo_t key_combos[] = {
- [CAPS_COMBO] = COMBO_ACTION(caps_combo),
- // Other combos...C
-};
-
-void process_combo_event(uint16_t combo_index, bool pressed) {
- switch(combo_index) {
- case CAPS_COMBO:
- if (pressed) {
- caps_word_on(); // Activate Caps Word!
- }
- break;
-
- // Other combos...
- }
-}
-
-bool is_oneshot_cancel_key(uint16_t keycode){
- switch (keycode) {
- case LA_NAV:
- return true;
- default:
- return false;
- }
-}
-
-bool is_oneshot_ignored_key(uint16_t keycode){
- switch (keycode) {
- case LA_NAV:
- case LA_SYM:
- case OS_SHFT:
- case OS_CTRL:
- case OS_ALT:
- case OS_GUI:
- return true;
- default:
- return false;
- }
-}
-
-oneshot_state os_shft_state = os_up_unqueued;
-oneshot_state os_ctrl_state = os_up_unqueued;
-oneshot_state os_alt_state = os_up_unqueued;
-oneshot_state os_cmd_state = os_up_unqueued;
-
-
-
-bool caps_word_press_user(uint16_t keycode) {
- switch (keycode) {
- // Keycodes that continue Caps Word, with shift applied.
- case KC_A ... KC_Z:
- case KC_MINS:
- add_weak_mods(MOD_BIT(KC_LSFT)); // Apply shift to the next key.
- return true;
-
- // Keycodes that continue Caps Word, without shifting.
- case KC_1 ... KC_0:
- case KC_BSPC:
- case KC_DEL:
- case KC_UNDS:
- return true;
-
- default:
- return false; // Deactivate Caps Word.
- }
-}
-
-
-layer_state_t layer_state_set_user(layer_state_t state){
- return update_tri_layer_state(state, SYM, NAV, FUN);
-}
-
-#ifdef OLED_ENABLE
-oled_rotation_t oled_init_user(oled_rotation_t rotation) {
- if (!is_keyboard_master()) {
- return OLED_ROTATION_180; // flips the display 180 degrees if offhand
- }
- return rotation;
-}
-
-void oled_render_layer_state(void) {
- oled_write_P(PSTR("Layer: "), false);
- switch (get_highest_layer(layer_state | default_layer_state)) {
- case _QWERTY:
- oled_write_ln_P(PSTR("QWERTY"), false);
- break;
- case SYM:
- oled_write_ln_P(PSTR("Sym"), false);
- break;
- case NAV:
- oled_write_ln_P(PSTR("Nav"), false);
- break;
- case FUN:
- oled_write_ln_P(PSTR("Function"), false);
- break;
- default:
- oled_write_ln_P(PSTR("Undefined"), false);
- }
-}
-
-char keylog_str[24] = {};
-
-const char code_to_name[60] = {
- ' ', ' ', ' ', ' ', 'a', 'b', 'c', 'd', 'e', 'f',
- 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p',
- 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z',
- '1', '2', '3', '4', '5', '6', '7', '8', '9', '0',
- 'R', 'E', 'B', 'T', '_', '-', '=', '[', ']', '\\',
- '#', ';', '\'', '`', ',', '.', '/', ' ', ' ', ' '};
-
-void set_keylog(uint16_t keycode, keyrecord_t *record) {
- char name = ' ';
- if ((keycode >= QK_MOD_TAP && keycode <= QK_MOD_TAP_MAX) ||
- (keycode >= QK_LAYER_TAP && keycode <= QK_LAYER_TAP_MAX)) { keycode = keycode & 0xFF; }
- if (keycode < 60) {
- name = code_to_name[keycode];
- }
-
- // update keylog
- snprintf(keylog_str, sizeof(keylog_str), "%dx%d, k%2d : %c",
- record->event.key.row, record->event.key.col,
- keycode, name);
-}
-
-void oled_render_keylog(void) {
- oled_write(keylog_str, false);
-}
-
-void render_bootmagic_status(bool status) {
- /* Show Ctrl-Gui Swap options */
- static const char PROGMEM logo[][2][3] = {
- {{0x97, 0x98, 0}, {0xb7, 0xb8, 0}},
- {{0x95, 0x96, 0}, {0xb5, 0xb6, 0}},
- };
- if (status) {
- oled_write_ln_P(logo[0][0], false);
- oled_write_ln_P(logo[0][1], false);
- } else {
- oled_write_ln_P(logo[1][0], false);
- oled_write_ln_P(logo[1][1], false);
- }
-}
-
-void oled_render_logo(void) {
- static const char PROGMEM crkbd_logo[] = {
- 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, 0x90, 0x91, 0x92, 0x93, 0x94,
- 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, 0xb0, 0xb1, 0xb2, 0xb3, 0xb4,
- 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, 0xd0, 0xd1, 0xd2, 0xd3, 0xd4,
- 0};
- oled_write_P(crkbd_logo, false);
-}
-
-bool oled_task_user(void) {
- if (is_keyboard_master()) {
- oled_render_layer_state();
- oled_render_keylog();
- } else {
- oled_render_logo();
- }
- return false;
-}
-
-bool process_record_user(uint16_t keycode, keyrecord_t* record) {
- if (!process_caps_word(keycode, record)) { return false; }
- // Your macros ...
- update_oneshot(
- &os_shft_state, KC_LSFT, OS_SHFT,
- keycode, record
- );
-
- update_oneshot(
- &os_ctrl_state, KC_LCTL, OS_CTRL,
- keycode, record
- );
-
- update_oneshot(
- &os_alt_state, KC_LALT, OS_ALT,
- keycode, record
- );
-
- update_oneshot(
- &os_cmd_state, KC_LGUI, OS_GUI,
- keycode, record
- );
- if (record->event.pressed) {
- set_keylog(keycode, record);
- }
- return true;
-}
-
-#endif
diff --git a/keyboards/crkbd/keymaps/cameronjlarsen/rules.mk b/keyboards/crkbd/keymaps/cameronjlarsen/rules.mk
deleted file mode 100644
index f0b00f3cf0..0000000000
--- a/keyboards/crkbd/keymaps/cameronjlarsen/rules.mk
+++ /dev/null
@@ -1,14 +0,0 @@
-BOOTMAGIC_ENABLE = no
-BOOLOADER = atmel-dfu
-OLED_ENABLE = yes
-RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
-COMMAND_ENABLE = no # Disables the command feature
-COMBO_ENABLE = yes
-MOUSEKEY_ENABLE = no
-CONSOLE_ENABLE = no
-AUDIO_ENABLE = no
-MIDI_ENABLE = no
-BLUETOOTH_ENABLE = no
-BACKLIGHT_ENABLE = no
-CAPS_WORD_ENABLE = yes
-CUSTOM_ONESHOT_ENABLE = yes
diff --git a/keyboards/crkbd/keymaps/curry/config.h b/keyboards/crkbd/keymaps/curry/config.h
deleted file mode 100644
index a82b4439cf..0000000000
--- a/keyboards/crkbd/keymaps/curry/config.h
+++ /dev/null
@@ -1,20 +0,0 @@
-#pragma once
-
-#define EE_HANDS
-
-#define OLED_DISABLE_TIMEOUT
-#define TAPPING_TERM_PER_KEY
-
-#if defined(RGB_MATRIX_ENABLE)
-# define RGB_MATRIX_MAXIMUM_BRIGHTNESS 120 // limits maximum brightness of LEDs to 200 out of 255. If not defined maximum brightness is set to 255
-# define RGB_MATRIX_HUE_STEP 8
-# define RGB_MATRIX_SAT_STEP 8
-# define RGB_MATRIX_VAL_STEP 5
-# define RGB_MATRIX_SPD_STEP 10
-#endif
-
-// comment out unnecessary layouts
-#define ENABLE_QWERTY
-#define ENABLE_COLEMAK
-#define ENABLE_DVORAK
-#define ENABLE_WORKMAN
diff --git a/keyboards/crkbd/keymaps/curry/keymap.c b/keyboards/crkbd/keymaps/curry/keymap.c
deleted file mode 100644
index 5157a22379..0000000000
--- a/keyboards/crkbd/keymaps/curry/keymap.c
+++ /dev/null
@@ -1,76 +0,0 @@
-#include "curry.h"
-
-#define LAYOUT_crkbd_base( \
- K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, \
- K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, \
- K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A \
- ) \
- LAYOUT_wrapper( \
- KC_ESC, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, KC_MINS, \
- MT_TAB, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, KC_QUOT, \
- OS_LSFT, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, OS_RSFT, \
- QK_LEAD,OS_LALT, SP_LWER, ET_RAIS, KC_BSPC, KC_RGUI \
- )
-#define LAYOUT_crkbd_base_wrapper(...) LAYOUT_crkbd_base(__VA_ARGS__)
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-#if defined(ENABLE_QWERTY)
- [_QWERTY] = LAYOUT_crkbd_base_wrapper(
- _________________QWERTY_L1_________________, _________________QWERTY_R1_________________,
- _________________QWERTY_L2_________________, _________________QWERTY_R2_________________,
- _________________QWERTY_L3_________________, _________________QWERTY_R3_________________
- ),
-#endif
-
-#if defined(ENABLE_COLEMAK)
- [_COLEMAK] = LAYOUT_crkbd_base_wrapper(
- _________________COLEMAK_L1________________, _________________COLEMAK_R1________________,
- _________________COLEMAK_L2________________, _________________COLEMAK_R2________________,
- _________________COLEMAK_L3________________, _________________COLEMAK_R3________________
- ),
-#endif
-
-#if defined(ENABLE_DVORAK)
- [_DVORAK] = LAYOUT_crkbd_base_wrapper(
- _________________DVORAK_L1_________________, _________________DVORAK_R1_________________,
- _________________DVORAK_L2_________________, _________________DVORAK_R2_________________,
- _________________DVORAK_L3_________________, _________________DVORAK_R3_________________
- ),
-#endif
-
-#if defined(ENABLE_WORKMAN)
- [_WORKMAN] = LAYOUT_crkbd_base_wrapper(
- _________________WORKMAN_L1________________, _________________WORKMAN_R1________________,
- _________________WORKMAN_L2________________, _________________WORKMAN_R2________________,
- _________________WORKMAN_L3________________, _________________WORKMAN_R3________________
- ),
-#endif
-
- [_MODS] = LAYOUT_wrapper(
- _______, ___________________BLANK___________________, ___________________BLANK___________________, _______,
- _______, ___________________BLANK___________________, ___________________BLANK___________________, _______,
- KC_LSFT, ___________________BLANK___________________, ___________________BLANK___________________, KC_RSFT,
- _______, _______, _______, _______, _______, _______
- ),
-
- [_LOWER] = LAYOUT_wrapper(
- KC_F11, _________________LOWER_L1__________________, _________________LOWER_R1__________________, KC_F12,
- KC_GRV, _________________LOWER_L2__________________, _________________LOWER_R2__________________, KC_PIPE,
- _______, _________________LOWER_L3__________________, _________________LOWER_R3__________________, _______,
- _______, _______, _______, _______, _______, _______
- ),
-
- [_RAISE] = LAYOUT_wrapper(
- _______, _________________RAISE_L1__________________, _________________RAISE_R1__________________, _______,
- _______, _________________RAISE_L2__________________, _________________RAISE_R2__________________, KC_BSLS,
- _______, _________________RAISE_L3__________________, _________________RAISE_R3__________________, _______,
- _______, _______, _______, _______, _______, _______
- ),
-
- [_ADJUST] = LAYOUT_wrapper(
- KC_MAKE, _________________ADJUST_L1_________________, _________________ADJUST_R1_________________, KC_RST,
- VRSN, _________________ADJUST_L2_________________, _________________ADJUST_R2_________________, EE_CLR,
- MG_NKRO, _________________ADJUST_L3_________________, _________________ADJUST_R3_________________, RGB_IDL,
- _______, _______, _______, _______, TG_MODS, _______
- )
-};
diff --git a/keyboards/crkbd/keymaps/curry/rules.mk b/keyboards/crkbd/keymaps/curry/rules.mk
deleted file mode 100644
index fc0e7e1924..0000000000
--- a/keyboards/crkbd/keymaps/curry/rules.mk
+++ /dev/null
@@ -1,16 +0,0 @@
-# Build Options
-# change to "no" to disable the options, or define them in the Makefile in
-# the appropriate keymap folder that will get included automatically
-#
-BOOTMAGIC_ENABLE = no # Enable Bootmagic Lite
-MOUSEKEY_ENABLE = no
-CONSOLE_ENABLE = no
-COMMAND_ENABLE = no
-
-RGBLIGHT_ENABLE = no
-RGB_MATRIX_ENABLE = yes
-
-OLED_ENABLE = yes
-
-BOOTLOADER = atmel-dfu
-SPLIT_TRANSPORT = mirror
diff --git a/keyboards/crkbd/keymaps/devdev/config.h b/keyboards/crkbd/keymaps/devdev/config.h
deleted file mode 100644
index 337a86df8e..0000000000
--- a/keyboards/crkbd/keymaps/devdev/config.h
+++ /dev/null
@@ -1,133 +0,0 @@
-/*
-This is the c configuration file for the keymap
-
-Copyright 2012 Jun Wako <wakojun@gmail.com>
-Copyright 2015 Jack Humbert
-Copyright 2021 Dane Evans
-
-
-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 USE_MATRIX_I2C
-
-/* Select hand configuration */
-
-#define MASTER_LEFT
-// #define MASTER_RIGHT
-// #define EE_HANDS
-
-#define CUSTOM_FONT
-
-#define CUSTOM_LAYER_READ //if you remove this it causes issues - needs better guarding
-
-#define QUICK_TAP_TERM 0
-#define TAPPING_TERM 200
-
-#define RGBLIGHT_SLEEP
-//
-#define RGBLIGHT_LAYERS
-
-#ifdef RGBLIGHT_ENABLE
- #undef RGBLED_NUM
-
- #define RGBLIGHT_EFFECT_BREATHING
- #define RGBLIGHT_EFFECT_RAINBOW_MOOD
- #define RGBLIGHT_EFFECT_RAINBOW_SWIRL
- #define RGBLIGHT_EFFECT_SNAKE
- #define RGBLIGHT_EFFECT_KNIGHT
- //#define RGBLIGHT_EFFECT_CHRISTMAS
- //#define RGBLIGHT_EFFECT_STATIC_GRADIENT
- //#define RGBLIGHT_EFFECT_RGB_TEST
- //#define RGBLIGHT_EFFECT_ALTERNATING
- //#define RGBLIGHT_EFFECT_TWINKLE
-
- //#define RGBLED_NUM 54
- //#define RGBLED_SPLIT 27
- //#define RGBLED_SPLIT { 27, 27 } // haven't figured out how to use this yet
-
- #define RGBLED_NUM 27
- #define RGBLIGHT_LIMIT_VAL 120
- #define RGBLIGHT_HUE_STEP 10
- #define RGBLIGHT_SAT_STEP 17
- #define RGBLIGHT_VAL_STEP 17
-#endif
-
-#ifdef RGB_MATRIX_ENABLE
-# define RGB_MATRIX_KEYPRESSES // reacts to keypresses
-// # define RGB_MATRIX_KEYRELEASES // reacts to keyreleases (instead of keypresses)
-# define RGB_DISABLE_WHEN_USB_SUSPENDED // turn off effects when suspended
-# define RGB_MATRIX_FRAMEBUFFER_EFFECTS
-// # define RGB_MATRIX_LED_PROCESS_LIMIT (RGB_MATRIX_LED_COUNT + 4) / 5 // limits the number of LEDs to process in an animation per task run (increases keyboard responsiveness)
-// # define RGB_MATRIX_LED_FLUSH_LIMIT 16 // limits in milliseconds how frequently an animation will update the LEDs. 16 (16ms) is equivalent to limiting to 60fps (increases keyboard responsiveness)
-# define RGB_MATRIX_MAXIMUM_BRIGHTNESS 150 // limits maximum brightness of LEDs to 150 out of 255. Higher may cause the controller to crash.
-
-#define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_GRADIENT_LEFT_RIGHT
-
-# define RGB_MATRIX_HUE_STEP 8
-# define RGB_MATRIX_SAT_STEP 8
-# define RGB_MATRIX_VAL_STEP 8
-# define RGB_MATRIX_SPD_STEP 10
-
-// RGB Matrix Animation modes. Explicitly enabled
-// For full list of effects, see:
-// https://docs.qmk.fm/#/feature_rgb_matrix?id=rgb-matrix-effects
-// # define ENABLE_RGB_MATRIX_ALPHAS_MODS
-# define ENABLE_RGB_MATRIX_GRADIENT_UP_DOWN
-# define ENABLE_RGB_MATRIX_GRADIENT_LEFT_RIGHT
-# define ENABLE_RGB_MATRIX_BREATHING
-# define ENABLE_RGB_MATRIX_BAND_SAT
-# define ENABLE_RGB_MATRIX_BAND_VAL
-# define ENABLE_RGB_MATRIX_BAND_PINWHEEL_SAT
-# define ENABLE_RGB_MATRIX_BAND_PINWHEEL_VAL
-# define ENABLE_RGB_MATRIX_BAND_SPIRAL_SAT
-# define ENABLE_RGB_MATRIX_BAND_SPIRAL_VAL
-# define ENABLE_RGB_MATRIX_CYCLE_ALL
-# define ENABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT
-# define ENABLE_RGB_MATRIX_CYCLE_UP_DOWN
-# define ENABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON
-# define ENABLE_RGB_MATRIX_CYCLE_OUT_IN
-# define ENABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL
-# define ENABLE_RGB_MATRIX_CYCLE_PINWHEEL
-# define ENABLE_RGB_MATRIX_CYCLE_SPIRAL
-# define ENABLE_RGB_MATRIX_DUAL_BEACON
-# define ENABLE_RGB_MATRIX_RAINBOW_BEACON
-# define ENABLE_RGB_MATRIX_RAINBOW_PINWHEELS
-# define ENABLE_RGB_MATRIX_RAINDROPS
-# define ENABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS
-# define ENABLE_RGB_MATRIX_HUE_BREATHING
-# define ENABLE_RGB_MATRIX_HUE_PENDULUM
-# define ENABLE_RGB_MATRIX_HUE_WAVE
-# define ENABLE_RGB_MATRIX_PIXEL_RAIN
-# define ENABLE_RGB_MATRIX_PIXEL_FLOW
-# define ENABLE_RGB_MATRIX_PIXEL_FRACTAL
-// enabled only if RGB_MATRIX_FRAMEBUFFER_EFFECTS is defined
-// # define ENABLE_RGB_MATRIX_TYPING_HEATMAP
-# define ENABLE_RGB_MATRIX_DIGITAL_RAIN
-// enabled only of RGB_MATRIX_KEYPRESSES or RGB_MATRIX_KEYRELEASES is defined
-# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE
-# define ENABLE_RGB_MATRIX_SOLID_REACTIVE
-// # define ENABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE
-# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE
-# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS
-# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS
-# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS
-// # define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS
-# define ENABLE_RGB_MATRIX_SPLASH
-# define ENABLE_RGB_MATRIX_MULTISPLASH
-# define ENABLE_RGB_MATRIX_SOLID_SPLASH
-# define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH
-#endif
diff --git a/keyboards/crkbd/keymaps/devdev/keymap.c b/keyboards/crkbd/keymaps/devdev/keymap.c
deleted file mode 100644
index 0327101157..0000000000
--- a/keyboards/crkbd/keymaps/devdev/keymap.c
+++ /dev/null
@@ -1,396 +0,0 @@
-/* Copyright 2020 Dane Evans
- *
- * 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/>.
- */
-
-// CRKBD
-
-#include QMK_KEYBOARD_H
-
-
-char layer_state_str[24];
-
-
- enum userspace_layers {
- _DEFAULTS = 0,
- _COLEMAK = 0,
- _COLEMAKDH,
- _QWERTY,
- _NUM,
- _SYM,
- _COMMAND,
- _NUMPAD,
- _SWITCH,
- _MOVE,
-
-};
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
- // colemak
- [_COLEMAK] = LAYOUT(
- //,-----------------------------------------------------. ,-----------------------------------------------------.
- LT(_NUMPAD,KC_TAB), KC_Q, KC_W, KC_F, KC_P, KC_G, LT(_SWITCH,KC_J), KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC,
- //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
- KC_LSFT, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I,LT(_NUMPAD,KC_O),KC_QUOT,
- //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
- KC_LCTL, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,
- //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
- KC_LGUI, MO(_NUM), KC_SPC, KC_ENT, MO(_SYM), KC_LALT
- //`--------------------------' `--------------------------'
- ),
-
- // colemak DH
- [_COLEMAKDH] = LAYOUT(
- //,-----------------------------------------------------. ,-----------------------------------------------------.
- LT(_NUMPAD,KC_TAB), KC_Q, KC_W, KC_F, KC_P, KC_B, LT(_SWITCH,KC_J), KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC,
- //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
- KC_LSFT, KC_A, KC_R, KC_S, KC_T, KC_G, KC_M, KC_N, KC_E, KC_I,LT(_NUMPAD,KC_O),KC_QUOT,
- //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
- KC_LCTL, KC_Z, KC_X, KC_C, KC_D, KC_V, KC_K, KC_H, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,
- //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
- KC_LGUI, MO(_NUM), KC_SPC, KC_ENT, MO(_SYM), KC_LALT
- //`--------------------------' `--------------------------'
- ),
-
- // qwerty
- [_QWERTY] = LAYOUT(
- //,-----------------------------------------------------. ,-----------------------------------------------------.
- KC_TRNS, KC_Q, KC_W, KC_E, KC_R, KC_T, LT(_SWITCH,KC_Y), KC_U, KC_I, KC_O, KC_P, KC_TRNS,
- //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
- KC_TRNS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, LT(_NUMPAD,KC_SCLN), KC_TRNS,
- //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
- KC_TRNS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_TRNS,
- //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
- //`--------------------------' `--------------------------'
- ),
-
-
-
- // numbers - L thumb
- [_NUM] = LAYOUT(
- //,-----------------------------------------------------. ,-----------------------------------------------------.
- 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_TRNS, KC_NO, KC_NO, KC_NO, KC_WH_U, KC_PGUP, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_NO, KC_DEL,
- //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
- KC_TRNS, KC_NO, KC_NO, KC_NO, KC_WH_D, KC_PGDN, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
- //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, MO(_COMMAND), KC_TRNS
- //`--------------------------' `--------------------------'
- ),
-
- // symbols - R thumb
- [_SYM] = LAYOUT(
- //,-----------------------------------------------------. ,-----------------------------------------------------.
- KC_ESC, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC,
- //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
- KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_MINS, KC_EQL, KC_LCBR, KC_RCBR, KC_PIPE, KC_GRV,
- //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
- KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_UNDS, KC_PLUS, KC_LBRC, KC_RBRC, KC_BSLS, KC_TILD,
- //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
- KC_TRNS, MO(_COMMAND), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
- //`--------------------------' `--------------------------'
- ),
-
- // commands - both thumbs
- [_COMMAND] = LAYOUT(
- //,-----------------------------------------------------. ,-----------------------------------------------------.
- QK_BOOT, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_NO,
- //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
- RGB_TOG, RGB_HUI, RGB_SAI, RGB_VAI, DF(1), DF(0), C(G(KC_LEFT)), KC_NO, KC_NO, C(G(KC_RGHT)), KC_NO, KC_NO,
- //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
- RGB_MOD, RGB_HUD, RGB_SAD, RGB_VAD, KC_NO, DF(2), KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
- //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
- //`--------------------------' `--------------------------'
- ),
-
- // numpad
- [_NUMPAD] = LAYOUT(
- //,-----------------------------------------------------. ,-----------------------------------------------------.
- LT(0,KC_NO), KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_CIRC, KC_P7, KC_P8, KC_P9, KC_ASTR, KC_BSPC,
- //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
- KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_MINS, KC_P4, KC_P5, KC_P6, KC_EQL, KC_DEL,
- //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
- KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_PLUS, KC_P1, KC_P2, KC_P3, KC_SLSH, KC_NO,
- //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
- OSM(MOD_MEH), KC_NO, KC_TRNS, KC_ENT, KC_P0, KC_PDOT
- //`--------------------------' `--------------------------'
- ),
-
- // layer switcher
- [_SWITCH] = LAYOUT(
- //,-----------------------------------------------------. ,-----------------------------------------------------.
- TO(0), TO(1), TO(2), TO(3), TO(4), TO(5), KC_NO, TO(7), KC_NO, KC_NO, KC_NO, QK_BOOT,
- //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
- KC_NO, KC_NO, KC_BRIU, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, EE_CLR,
- //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
- KC_SYSTEM_SLEEP, KC_NO, KC_BRID, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
- //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
- KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO
- //`--------------------------' `--------------------------'
-
- ),
-
- // amovement
- [_MOVE] = LAYOUT(
- //,-----------------------------------------------------. ,-----------------------------------------------------.
- LT(0,KC_NO), KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_HOME, KC_UP, KC_PGUP, KC_NO, KC_NO, KC_NO,
- //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
- KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_LEFT, KC_ENT, KC_RGHT, KC_NO, KC_NO, KC_NO,
- //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
- KC_APP, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_END, KC_DOWN, KC_PGDN, KC_DEL, KC_NO, KC_NO,
- //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
- KC_NO, KC_NO, KC_NO, KC_TRNS, KC_NO, KC_NO
- //`--------------------------' `--------------------------'
- )
-
-};
-
-
-// it appears that these are different to the board numbering.
-// when you specify n here, it lightss up n+1 on the board diagram - actually may be an entirely different pattern
-
-// _QWERTY,
-// Light on inner column and underglow
-const rgblight_segment_t PROGMEM layer_qwerty_lights[] = RGBLIGHT_LAYER_SEGMENTS(
- {0, 10, HSV_AZURE}
-);
-
-// _COLEMAKDH,
-// Light on inner column and underglow
-const rgblight_segment_t PROGMEM layer_colemakdh_lights[] = RGBLIGHT_LAYER_SEGMENTS(
- {0, 10, HSV_RED}
-);
-
-// _NUM,
-// Light on inner column and underglow
-const rgblight_segment_t PROGMEM layer_num_lights[] = RGBLIGHT_LAYER_SEGMENTS(
- {0, 10, HSV_TEAL}
-);
-// _SYMBOL,
-// Light on inner column and underglow
-const rgblight_segment_t PROGMEM layer_symbol_lights[] = RGBLIGHT_LAYER_SEGMENTS(
- {0, 10, HSV_BLUE}
-);
-// _COMMAND,
-// Light on inner column and underglow
-const rgblight_segment_t PROGMEM layer_command_lights[] = RGBLIGHT_LAYER_SEGMENTS(
- {0, 10, HSV_PURPLE}
-);
-
-
-//_NUMPAD
-//havent worked out how to do each side individually either
-const rgblight_segment_t PROGMEM layer_numpad_lights[] = RGBLIGHT_LAYER_SEGMENTS(
-{0, 10, HSV_ORANGE}
-);
-const rgblight_segment_t PROGMEM layer_numpad_rh_lights[] = RGBLIGHT_LAYER_SEGMENTS(
- {0, 10, HSV_ORANGE},
- {10, 5, HSV_BLUE},
- {15, 3, HSV_BLUE},
- {18, 3, HSV_BLUE}
-);
-
-// _MOVE,
-// Light on inner column and underglow
-const rgblight_segment_t PROGMEM layer_move_lights[] = RGBLIGHT_LAYER_SEGMENTS(
- {0, 10, HSV_PINK}
-);
-
-// _SWITCHER // light up top row
-const rgblight_segment_t PROGMEM layer_switcher_lights[] = RGBLIGHT_LAYER_SEGMENTS(
- {0, 6, HSV_GREEN},
- {9, 2, HSV_GREEN},
- {17, 2, HSV_GREEN},
- {23, 2, HSV_GREEN}
-);
-
-
-// Now define the array of layers. Later layers take precedence
-const rgblight_segment_t* const PROGMEM my_rgb_layers[] = RGBLIGHT_LAYERS_LIST(
- layer_qwerty_lights,
- layer_colemakdh_lights,
- layer_num_lights,// overrides layer 1
- layer_symbol_lights,
- layer_command_lights,
- layer_numpad_lights,
- layer_numpad_rh_lights,
- layer_move_lights,
- layer_switcher_lights // Overrides other layers
-);
-
-void keyboard_post_init_user(void) {
- // Enable the LED layers
- rgblight_layers = my_rgb_layers;
- rgblight_mode(10);// haven't found a way to set this in a more useful way
-
-}
-
-
-layer_state_t layer_state_set_user(layer_state_t state) {
- rgblight_set_layer_state(0, layer_state_cmp(state, _DEFAULTS) && layer_state_cmp(default_layer_state,_QWERTY));
- rgblight_set_layer_state(1, layer_state_cmp(state, _DEFAULTS) && layer_state_cmp(default_layer_state,_QWERTY));
-
- rgblight_set_layer_state(2, layer_state_cmp(state, _NUM));
- rgblight_set_layer_state(3, layer_state_cmp(state, _SYM));
- rgblight_set_layer_state(4, layer_state_cmp(state, _COMMAND));
- rgblight_set_layer_state(5, layer_state_cmp(state, _NUMPAD));
- if (!is_keyboard_master())
- rgblight_set_layer_state(6, layer_state_cmp(state, _NUMPAD));
- rgblight_set_layer_state(7, layer_state_cmp(state, _MOVE));
- rgblight_set_layer_state(8, layer_state_cmp(state, _SWITCH));
- return state;
-}
-
-/*
-bool led_update_user(led_t led_state) {
- rgblight_set_layer_state(0, led_state.caps_lock);
- return true;
-}
-*/
-
-#ifdef OLED_ENABLE
-oled_rotation_t oled_init_user(oled_rotation_t rotation) {
- if (!is_keyboard_master()) {
- return OLED_ROTATION_180; // flips the display 180 degrees if offhand
- }
- return rotation;
-}
-// When add source files to SRC in rules.mk, you can use functions.
-const char *read_layer_state(void);
-const char *read_logo(void);
-void set_keylog(uint16_t keycode, keyrecord_t *record);
-const char *read_keylog(void);
-const char *read_keylogs(void);
-
-
-const char *read_mode_icon(bool swap);
-// const char *read_host_led_state(void);
-// void set_timelog(void);
-// const char *read_timelog(void);
-
-
-void oled_render_layer_state(void) {
- char string [24];
- switch (get_highest_layer(default_layer_state|layer_state))
- {
- case _QWERTY:
- oled_write_ln_P(PSTR("Layer: QWERTY"),false);
- break;
- case _COLEMAK:
- oled_write_ln_P(PSTR("Layer: COLEMAK"),false);
- break;
- case _COLEMAKDH:
- oled_write_ln_P(PSTR("Layer: COLEMAKDH"),false);
- break;
- case _NUM:
- oled_write_ln_P(PSTR("Layer: Numbers"),false);
- break;
- case _SYM:
- oled_write_ln_P(PSTR("Layer: Symbols"),false);
- break;
- case _COMMAND:
- oled_write_ln_P(PSTR("Layer: Command"),false);
- break;
- case _NUMPAD:
- oled_write_ln_P(PSTR("Layer: Numpad"),false);
- break;
- case _MOVE:
- oled_write_ln_P(PSTR("Layer: Movement"),false);
- break;
- case _SWITCH:
- oled_write_ln_P(PSTR("Layer: Layer Switch"),false);
- break;
- default:
-#if defined (LAYER_STATE_32BIT)
- snprintf(string, sizeof(string), "%ld",layer_state);
-#else
- snprintf(string, sizeof(string), "%d",layer_state);
-#endif
- oled_write_P(PSTR("Layer: Undef-"),false);
- oled_write_ln(string, false);
- }
-}
-
-char keylog_str[24] = {};
-const char code_to_name[60] = {
- ' ', ' ', ' ', ' ', 'a', 'b', 'c', 'd', 'e', 'f',
- 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p',
- 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z',
- '1', '2', '3', '4', '5', '6', '7', '8', '9', '0',
- 'R', 'E', 'B', 'T', '_', '-', '=', '[', ']', '\\',
- '#', ';', '\'', '`', ',', '.', '/', ' ', ' ', ' '};
-
-void set_keylog(uint16_t keycode, keyrecord_t *record) {
- char name = ' ';
- if ((keycode >= QK_MOD_TAP && keycode <= QK_MOD_TAP_MAX) ||
- (keycode >= QK_LAYER_TAP && keycode <= QK_LAYER_TAP_MAX)) { keycode = keycode & 0xFF; }
- if (keycode < 60) {
- name = code_to_name[keycode];
- }
-
- // update keylog
- snprintf(keylog_str, sizeof(keylog_str), "%dx%d, k%2d : %c",
- record->event.key.row, record->event.key.col,
- keycode, name);
-}
-
-void oled_render_keylog(void) {
- oled_write(keylog_str, false);
-}
-
-void render_bootmagic_status(bool status) {
- /* Show Ctrl-Gui Swap options */
- static const char PROGMEM logo[][2][3] = {
- {{0x97, 0x98, 0}, {0xb7, 0xb8, 0}},
- {{0x95, 0x96, 0}, {0xb5, 0xb6, 0}},
- };
- if (status) {
- oled_write_ln_P(logo[0][0], false);
- oled_write_ln_P(logo[0][1], false);
- } else {
- oled_write_ln_P(logo[1][0], false);
- oled_write_ln_P(logo[1][1], false);
- }
-}
-
-void oled_render_logo(void) {
- static const char PROGMEM crkbd_logo[] = {
- 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, 0x90, 0x91, 0x92, 0x93, 0x94,
- 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, 0xb0, 0xb1, 0xb2, 0xb3, 0xb4,
- 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, 0xd0, 0xd1, 0xd2, 0xd3, 0xd4,
- 0};
- oled_write_P(crkbd_logo, false);
-}
-
-bool oled_task_user(void) {
- if (is_keyboard_master()) {
- oled_render_layer_state();
- oled_render_keylog();
- } else {
- oled_render_logo();
- }
- return false;
-}
-
-bool process_record_user(uint16_t keycode, keyrecord_t *record) {
- if (record->event.pressed) {
- set_keylog(keycode, record);
- }
- return true;
-}
-#endif // OLED_ENABLE
diff --git a/keyboards/crkbd/keymaps/devdev/rules.mk b/keyboards/crkbd/keymaps/devdev/rules.mk
deleted file mode 100644
index 4d53cc7564..0000000000
--- a/keyboards/crkbd/keymaps/devdev/rules.mk
+++ /dev/null
@@ -1,4 +0,0 @@
-MOUSEKEY_ENABLE = yes
-EXTRAKEY_ENABLE = yes
-RGBLIGHT_ENABLE = yes
-OLED_ENABLE = yes
diff --git a/keyboards/crkbd/keymaps/edvorakjp/config.h b/keyboards/crkbd/keymaps/edvorakjp/config.h
deleted file mode 100644
index 94896f6898..0000000000
--- a/keyboards/crkbd/keymaps/edvorakjp/config.h
+++ /dev/null
@@ -1,24 +0,0 @@
-#pragma once
-
-/* Select hand configuration */
-
-#define MASTER_LEFT
-// #define MASTER_RIGHT
-// #define EE_HANDS
-
-#define SWAP_SCLN
-
-// #define QUICK_TAP_TERM 0
-#define TAPPING_TERM 300
-
-#ifdef RGBLIGHT_ENABLE
-# undef RGBLED_NUM
-# define RGBLIGHT_EFFECT_STATIC_GRADIENT
-# define RGBLED_NUM 27
-# define RGBLIGHT_LIMIT_VAL 100
-# define RGBLIGHT_HUE_STEP 10
-# define RGBLIGHT_SAT_STEP 17
-# define RGBLIGHT_VAL_STEP 17
-#endif // RGBLIGHT_ENABLE
-
-#define OLED_FONT_H "keyboards/crkbd/lib/glcdfont.c"
diff --git a/keyboards/crkbd/keymaps/edvorakjp/keymap.c b/keyboards/crkbd/keymaps/edvorakjp/keymap.c
deleted file mode 100644
index 0cc8a0c4ba..0000000000
--- a/keyboards/crkbd/keymaps/edvorakjp/keymap.c
+++ /dev/null
@@ -1,67 +0,0 @@
-#include QMK_KEYBOARD_H
-#ifdef PROTOCOL_LUFA
-# include "split_util.h"
-#endif
-
-#include "edvorakjp.h"
-
-#define LAYOUT_wrapper(...) LAYOUT_split_3x6_3(__VA_ARGS__)
-
-// clang-format off
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [L_EDVORAKJP_BASE] = LAYOUT_wrapper(
- //,-----------------------------------------------------. ,-----------------------------------------------------.
- KC_GRV, __EDVORAKJP_BASE_L1__ , __EDVORAKJP_BASE_R1__ , KC_BSLS,
- //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
- KC_EQL, __EDVORAKJP_BASE_L2__ , __EDVORAKJP_BASE_R2__ , KC_MINS,
- //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
- KC_ESC, __EDVORAKJP_BASE_L3__ , __EDVORAKJP_BASE_R3__ , KC_SLSH,
- //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
- LA_TAB, LS_SPC,LOWER_TD, RAISE_TD, RC_BSPC, RG_ENT
- //`--------------------------' `--------------------------'
- ),
-
- [L_EDVORAKJP_LOWER] = LAYOUT_wrapper(
- //,-----------------------------------------------------. ,-----------------------------------------------------.
- XXXXXXX, XXXXXXX, __EDVORAKJP_BRACKET_L__ , XXXXXXX, XXXXXXX, __EDVORAKJP_BRACKET_R__ , XXXXXXX, XXXXXXX,
- //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
- __EDVORAKJP_FUNCTION_L__ , __EDVORAKJP_FUNCTION_R__ ,
- //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
- KC_PSCR, XXXXXXX, __EDVORAKJP_PAGE__ , __EDVORAKJP_CURSOR__ , XXXXXXX, XXXXXXX,
- //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
- KC_TRNS, KC_TRNS, XXXXXXX, KC_MAC, RC_DEL, KC_TRNS
- //`--------------------------' `--------------------------'
- ),
-
- [L_EDVORAKJP_RAISE] = LAYOUT_wrapper(
- //,-----------------------------------------------------. ,-----------------------------------------------------.
- XXXXXXX, XXXXXXX, __EDVORAKJP_SYMBOL_L__ , __EDVORAKJP_SYMBOL_R__ , XXXXXXX, XXXXXXX,
- //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
- XXXXXXX, __EDVORAKJP_NUMBER_L__ , __EDVORAKJP_NUMBER_R__ , XXXXXXX,
- //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
- KC_PSCR, XXXXXXX, __EDVORAKJP_PAGE__ , __EDVORAKJP_CURSOR__ , XXXXXXX, XXXXXXX,
- //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
- KC_TRNS, KC_TRNS, KC_WIN, XXXXXXX, KC_TRNS, KC_TRNS
- //`--------------------------' `--------------------------'
- )
-};
-// clang-format on
-
-#ifdef RGBLIGHT_EFFECT_STATIC_GRADIENT
-layer_state_t layer_state_set_keymap(layer_state_t state) {
- rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_LIGHT);
- switch (get_highest_layer(state)) {
- case L_EDVORAKJP_LOWER:
- rgblight_sethsv_noeeprom(HSV_RED);
- break;
- case L_EDVORAKJP_RAISE:
- rgblight_sethsv_noeeprom(HSV_GREEN);
- break;
- default: // for any other layers, or the default layer
- rgblight_mode(RGBLIGHT_MODE_STATIC_GRADIENT + 3);
- rgblight_sethsv(HSV_RED);
- break;
- }
- return state;
-}
-#endif
diff --git a/keyboards/crkbd/keymaps/edvorakjp/oled.c b/keyboards/crkbd/keymaps/edvorakjp/oled.c
deleted file mode 100644
index cd75f8e277..0000000000
--- a/keyboards/crkbd/keymaps/edvorakjp/oled.c
+++ /dev/null
@@ -1,56 +0,0 @@
-#include <stdio.h>
-#include <string.h>
-#include "oled.h"
-
-#ifdef OLED_ENABLE
-void render_host_led_state(void) { oled_write(read_host_led_state(), false); }
-
-void render_layer_state(void) {
- char layer_name[17];
- oled_write_P(PSTR("Layer: "), false);
-
- switch (get_highest_layer(layer_state)) {
- case L_EDVORAKJP_BASE:
- oled_write_ln_P(PSTR("Default"), false);
- break;
- case L_EDVORAKJP_LOWER:
- oled_write_ln_P(PSTR("Lower"), false);
- break;
- case L_EDVORAKJP_RAISE:
- oled_write_ln_P(PSTR("Raise"), false);
- break;
- default:
- snprintf(layer_name, sizeof(layer_name), "Undef-%ld", layer_state);
- oled_write_ln(layer_name, false);
- }
-}
-
-void render_logo(void) { oled_write(read_logo(), false); }
-
-void render_mode_icon(bool is_windows) {
- static const char logo[][2][3] = {
- {{0x95, 0x96, 0}, {0xb5, 0xb6, 0}},
- {{0x97, 0x98, 0}, {0xb7, 0xb8, 0}},
- };
- static char mode_icon[10];
-
- snprintf(mode_icon, sizeof(mode_icon), "%s\n%s ", logo[is_windows][0], logo[is_windows][1]);
- oled_write(mode_icon, false);
-}
-
-oled_rotation_t oled_init_user(oled_rotation_t rotation) {
- // flips the display 180 degrees if offhand
- return is_keyboard_left() ? rotation : rotation ^ OLED_ROTATION_180;
-}
-
-bool oled_task_user(void) {
- if (is_keyboard_left()) {
- render_mode_icon(!get_enable_kc_lang());
- render_layer_state();
- render_host_led_state();
- } else {
- render_logo();
- }
- return false;
-}
-#endif // OLED_ENABLE
diff --git a/keyboards/crkbd/keymaps/edvorakjp/oled.h b/keyboards/crkbd/keymaps/edvorakjp/oled.h
deleted file mode 100644
index d9939c83a0..0000000000
--- a/keyboards/crkbd/keymaps/edvorakjp/oled.h
+++ /dev/null
@@ -1,17 +0,0 @@
-#pragma once
-
-#include "edvorakjp.h"
-
-extern bool japanese_mode;
-
-// method prototypes defined in crkbd/lib
-extern const char *read_host_led_state(void);
-extern const char *read_logo(void);
-extern const char *read_mode_icon(bool swap);
-
-void render_host_led_state(void);
-void render_layer_state(void);
-void render_logo(void);
-void render_mode_icon(bool is_windows);
-oled_rotation_t oled_init_user(oled_rotation_t rotation);
-void oled_task_user(void);
diff --git a/keyboards/crkbd/keymaps/edvorakjp/readme.md b/keyboards/crkbd/keymaps/edvorakjp/readme.md
deleted file mode 100644
index dd406523d2..0000000000
--- a/keyboards/crkbd/keymaps/edvorakjp/readme.md
+++ /dev/null
@@ -1,21 +0,0 @@
-# edvorakjp
-
-Epaew's Enhanced Dvorak layout for Japanese Programmer
-see [here](/users/edvorakjp) for more informations.
-
-## License
-
-Copyright 2018 Ryo Maeda epaew.333@gmail.com @epaew
-
-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/>.
diff --git a/keyboards/crkbd/keymaps/edvorakjp/rules.mk b/keyboards/crkbd/keymaps/edvorakjp/rules.mk
deleted file mode 100644
index c019c30756..0000000000
--- a/keyboards/crkbd/keymaps/edvorakjp/rules.mk
+++ /dev/null
@@ -1,28 +0,0 @@
-# Build Options
-# change to "no" to disable the options, or define them in the Makefile in
-# the appropriate keymap folder that will get included automatically
-#
-BOOTMAGIC_ENABLE = no # Enable Bootmagic Lite
-MOUSEKEY_ENABLE = no # Mouse keys(+4700)
-EXTRAKEY_ENABLE = no # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
-COMMAND_ENABLE = no # Commands for debug and configuration
-NKRO_ENABLE = no # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
-BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
-MIDI_ENABLE = no # MIDI controls
-AUDIO_ENABLE = no # Audio output on port C6
-UNICODE_ENABLE = no # Unicode
-BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
-RGBLIGHT_ENABLE = yes # Enable WS2812 RGB underlight.
-SWAP_HANDS_ENABLE = no # Enable one-hand typing
-TAP_DANCE_ENABLE = yes
-OLED_ENABLE = yes
-
-# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
-SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
-
-# If you want to change the display of OLED, you need to change here
-SRC += ./lib/host_led_state_reader.c \
- ./lib/logo_reader.c \
- ./lib/mode_icon_reader.c \
- oled.c
diff --git a/keyboards/crkbd/keymaps/ericgebhart/config.h b/keyboards/crkbd/keymaps/ericgebhart/config.h
deleted file mode 100755
index d1844f6807..0000000000
--- a/keyboards/crkbd/keymaps/ericgebhart/config.h
+++ /dev/null
@@ -1,24 +0,0 @@
-/*
-This is the c configuration file for the keymap
-
-Copyright 2012 Jun Wako <wakojun@gmail.com>
-Copyright 2015 Jack Humbert
-
-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
-
-// otherwise the other promicro v3 isn't found
-#define SPLIT_USB_DETECT
diff --git a/keyboards/crkbd/keymaps/ericgebhart/keymap.c b/keyboards/crkbd/keymaps/ericgebhart/keymap.c
deleted file mode 100644
index c534fe3c6d..0000000000
--- a/keyboards/crkbd/keymaps/ericgebhart/keymap.c
+++ /dev/null
@@ -1,18 +0,0 @@
-/*
- Copyright 2018-2022 Eric Gebhart <e.a.gebhart@gmail.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/>.
-*/
-
-// See: users/ericgebhart.
diff --git a/keyboards/crkbd/keymaps/hvp/config.h b/keyboards/crkbd/keymaps/hvp/config.h
deleted file mode 100644
index 1a9ac69498..0000000000
--- a/keyboards/crkbd/keymaps/hvp/config.h
+++ /dev/null
@@ -1,54 +0,0 @@
-/*
-This is the c configuration file for the keymap
-
-Copyright 2012 Jun Wako <wakojun@gmail.com>
-Copyright 2015 Jack Humbert
-
-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 USE_MATRIX_I2C
-
-/* Select hand configuration */
-
-#define MASTER_LEFT
-// #define MASTER_RIGHT
-// #define EE_HANDS
-
-//#define QUICK_TAP_TERM 0
-//#define TAPPING_TERM 100
-
-#define TAPPING_TERM 150
-#define PERMISSIVE_HOLD
-
-#ifdef RGBLIGHT_ENABLE
-# undef RGBLED_NUM
-# define RGBLIGHT_EFFECT_BREATHING
-# define RGBLIGHT_EFFECT_RAINBOW_MOOD
-# define RGBLIGHT_EFFECT_RAINBOW_SWIRL
-# define RGBLIGHT_EFFECT_SNAKE
-# define RGBLIGHT_EFFECT_KNIGHT
-# define RGBLIGHT_EFFECT_CHRISTMAS
-# define RGBLIGHT_EFFECT_STATIC_GRADIENT
-# define RGBLIGHT_EFFECT_RGB_TEST
-# define RGBLIGHT_EFFECT_ALTERNATING
-# define RGBLIGHT_EFFECT_TWINKLE
-# define RGBLED_NUM 27
-# define RGBLIGHT_LIMIT_VAL 120
-# define RGBLIGHT_HUE_STEP 10
-# define RGBLIGHT_SAT_STEP 17
-# define RGBLIGHT_VAL_STEP 17
-#endif
diff --git a/keyboards/crkbd/keymaps/hvp/keymap.c b/keyboards/crkbd/keymaps/hvp/keymap.c
deleted file mode 100644
index fc57fc1bb0..0000000000
--- a/keyboards/crkbd/keymaps/hvp/keymap.c
+++ /dev/null
@@ -1,160 +0,0 @@
-#include QMK_KEYBOARD_H
-#include "hvp.c"
-
-#ifdef RGBLIGHT_ENABLE
-//Following line allows macro to read current RGB settings
-extern rgblight_config_t rgblight_config;
-#endif
-
-// Each layer gets a name for readability, which is then used in the keymap matrix below.
-// The underscores don't mean anything - you can have a layer called STUFF or any other name.
-// Layer names don't all need to be of the same length, obviously, and you can also skip them
-// entirely and just use numbers.
-#define _QWERTY 0
-#define _LOWER 1
-#define _RAISE 2
-#define _ADJUST 3
-
-enum custom_keycodes {
- QWERTY = SAFE_RANGE,
- LOWER,
- RAISE,
- ADJUST
-};
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [_QWERTY] = LAYOUT_split_3x6_3(
- //,-----------------------------------------. ,-----------------------------------------.
- LT(_ADJUST,KC_TAB), KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P,KC_BSPC,
- //|------+------+------+------+------+------| |------+------+------+------+------+------|
- LSFT_T(KC_ESC), KC_A, KC_S, KC_D, LT(3,KC_F), KC_G, KC_H, KC_J, KC_K, KC_L,TD(TD1),TD(TD2),
- //|------+------+------+------+------+------| |------+------+------+------+------+------|
- KC_LCTL, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M,KC_COMM,KC_DOT,TD(TD3),SC_SENT,
- //|------+------+------+------+------+------+------| |------+------+------+------+------+------+------|
- KC_LGUI, LT(1,KC_SPC),MT(MOD_LSFT, KC_SPC), MT(MOD_LSFT,KC_ENT), LT(2,KC_SPC),KC_LALT
- //`--------------------' `--------------------'
- ),
-
- [_RAISE] = LAYOUT_split_3x6_3(
- //,-----------------------------------------. ,-----------------------------------------.
- KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0,KC_BSPC,
- //|------+------+------+------+------+------| |------+------+------+------+------+------|
- KC_DEL, _______, _______, _______, _______, _______, _______,KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS,
- //|------+------+------+------+------+------| |------+------+------+------+------+------|
- KC_LCTL, _______, _______, _______, _______, _______, _______, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE,
- //|------+------+------+------+------+------+------| |------+------+------+------+------+------+------|
- _______, _______, _______, _______, _______, _______
- //`--------------------' `--------------------'
- ),
-
- [_LOWER] = LAYOUT_split_3x6_3(
- //,-----------------------------------------. ,-----------------------------------------.
- KC_TAB,KC_EXLM,KC_AT,KC_HASH,KC_DLR,KC_PERC, KC_CIRC,KC_AMPR,KC_ASTR,KC_LPRN,KC_RPRN,KC_BSPC,
- //|------+------+------+------+------+------| |------+------+------+------+------+------|
- KC_DEL, _______, _______, _______, _______, _______, _______,KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_BSLS,
- //|------+------+------+------+------+------| |------+------+------+------+------+------|
- KC_LCTL, _______, _______, _______, _______, _______, _______, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_TILD,
- //|------+------+------+------+------+------+------| |------+------+------+------+------+------+------|
- _______, _______, _______, _______, _______, _______
- //`--------------------' `--------------------'
- ),
-
- [_ADJUST] = LAYOUT_split_3x6_3(
- //,-----------------------------------------. ,-----------------------------------------.
- _______,KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,
- //|------+------+------+------+------+------| |------+------+------+------+------+------|
- KC_F1,_______,_______,D_NAVI,_______,_______, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, _______, _______,
- //|------+------+------+------+------+------| |------+------+------+------+------+------|
- QK_BOOT,KC_PSCR,_______,_______,_______,_______, KC_HOME, KC_PGDN, KC_PGUP, KC_END, _______, _______,
- //|------+------+------+------+------+------+------| |------+------+------+------+------+------+------|
- _______, KC_VOLD,KC_MPLY, KC_MNXT, KC_VOLU,_______
- //`--------------------' `--------------------'
- )
-};
-
-int RGB_current_mode;
-
-// Setting ADJUST layer RGB back to default
-void update_tri_layer_RGB(uint8_t layer1, uint8_t layer2, uint8_t layer3) {
- if (IS_LAYER_ON(layer1) && IS_LAYER_ON(layer2)) {
- layer_on(layer3);
- } else {
- layer_off(layer3);
- }
-}
-
-void matrix_init_user(void) {
- #ifdef RGBLIGHT_ENABLE
- RGB_current_mode = rgblight_config.mode;
- #endif
-}
-
-#ifdef OLED_ENABLE
-
-// When add source files to SRC in rules.mk, you can use functions.
-const char *read_layer_state(void);
-const char *read_logo(void);
-void set_keylog(uint16_t keycode, keyrecord_t *record);
-const char *read_keylog(void);
-const char *read_keylogs(void);
-
-// const char *read_mode_icon(bool swap);
-// const char *read_host_led_state(void);
-// void set_timelog(void);
-// const char *read_timelog(void);
-
-bool oled_task_user(void) {
- if (is_keyboard_master()) {
- // If you want to change the display of OLED, you need to change here
- oled_write(read_layer_state(), false);
- oled_write(read_keylog(), false);
- //oled_write_ln(read_keylogs(), false);
- //oled_write_ln(read_mode_icon(keymap_config.swap_lalt_lgui), false);
- //oled_write_ln(read_host_led_state()), false;
- //oled_write_ln(read_timelog(), false);
- } else {
- oled_write(read_logo(), false);
- }
- return false;
-}
-
-#endif
-
-bool process_record_user(uint16_t keycode, keyrecord_t *record) {
- if (record->event.pressed) {
-#ifdef OLED_ENABLE
- set_keylog(keycode, record);
-#endif
- // set_timelog();
- }
-
- switch (keycode) {
- case LOWER:
- if (record->event.pressed) {
- layer_on(_LOWER);
- update_tri_layer_RGB(_LOWER, _RAISE, _ADJUST);
- } else {
- layer_off(_LOWER);
- update_tri_layer_RGB(_LOWER, _RAISE, _ADJUST);
- }
- return false;
- case RAISE:
- if (record->event.pressed) {
- layer_on(_RAISE);
- update_tri_layer_RGB(_LOWER, _RAISE, _ADJUST);
- } else {
- layer_off(_RAISE);
- update_tri_layer_RGB(_LOWER, _RAISE, _ADJUST);
- }
- return false;
- case ADJUST:
- if (record->event.pressed) {
- layer_on(_ADJUST);
- } else {
- layer_off(_ADJUST);
- }
- return false;
- break;
- }
- return true;
-}
diff --git a/keyboards/crkbd/keymaps/hvp/readme.md b/keyboards/crkbd/keymaps/hvp/readme.md
deleted file mode 100644
index 3ccdc12193..0000000000
--- a/keyboards/crkbd/keymaps/hvp/readme.md
+++ /dev/null
@@ -1,10 +0,0 @@
-Keyboard: Corne Keyboard (CRKBD)
-Keys: A split keyboard with 3x6 vertically staggered keys and 3 thumb keys.
-Layout: Swedish characters on main layer using tapdance. Built for eurkey keyboard layout.
-Flash instructions: Flash using avrdude, will req the hvp user space to compile.
-
-> make crkbd:hvp:avrdude
-
-Links:
-Github - https://github.com/qmk/qmk_firmware/tree/master/keyboards/crkbd
-Eurkey layout - https://eurkey.steffen.bruentjen.eu/
diff --git a/keyboards/crkbd/keymaps/hvp/rules.mk b/keyboards/crkbd/keymaps/hvp/rules.mk
deleted file mode 100644
index 3091ed20af..0000000000
--- a/keyboards/crkbd/keymaps/hvp/rules.mk
+++ /dev/null
@@ -1,13 +0,0 @@
-# If you want to change the display of OLED, you need to change here
-SRC += ./lib/rgb_state_reader.c \
- ./lib/layer_state_reader.c \
- ./lib/logo_reader.c \
- ./lib/keylogger.c \
- # ./lib/mode_icon_reader.c \
- # ./lib/host_led_state_reader.c \
- # ./lib/timelogger.c \
-
-TAP_DANCE_ENABLE = yes
-EXTRAKEY_ENABLE = yes # Audio control and System control
-OLED_ENABLE = yes
-# LOCAL_GLCDFONT = yes
diff --git a/keyboards/crkbd/keymaps/jarred/config.h b/keyboards/crkbd/keymaps/jarred/config.h
deleted file mode 100644
index c95deb1abb..0000000000
--- a/keyboards/crkbd/keymaps/jarred/config.h
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
-This is the c configuration file for the keymap
-
-Copyright 2012 Jun Wako <wakojun@gmail.com>
-Copyright 2015 Jack Humbert
-
-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 USE_MATRIX_I2C
-
-/* Select hand configuration */
-
-#define MASTER_LEFT
-// #define MASTER_RIGHT
-// #define EE_HANDS
-
-//#define QUICK_TAP_TERM 0
-//#define TAPPING_TERM 100
-
-#undef RGBLED_NUM
-#define RGBLIGHT_EFFECT_BREATHING
-#define RGBLIGHT_EFFECT_RAINBOW_MOOD
-#define RGBLIGHT_EFFECT_RAINBOW_SWIRL
-#define RGBLIGHT_EFFECT_SNAKE
-#define RGBLIGHT_EFFECT_KNIGHT
-#define RGBLIGHT_EFFECT_CHRISTMAS
-#define RGBLIGHT_EFFECT_STATIC_GRADIENT
-#define RGBLIGHT_EFFECT_RGB_TEST
-#define RGBLIGHT_EFFECT_ALTERNATING
-#define RGBLIGHT_EFFECT_TWINKLE
-#define RGBLED_NUM 27
-#define RGBLIGHT_LIMIT_VAL 120
-#define RGBLIGHT_HUE_STEP 10
-#define RGBLIGHT_SAT_STEP 17
-#define RGBLIGHT_VAL_STEP 17
diff --git a/keyboards/crkbd/keymaps/jarred/keymap.c b/keyboards/crkbd/keymaps/jarred/keymap.c
deleted file mode 100644
index b0e181b37f..0000000000
--- a/keyboards/crkbd/keymaps/jarred/keymap.c
+++ /dev/null
@@ -1,152 +0,0 @@
-#include QMK_KEYBOARD_H
-#include "jarred.h"
-
-#ifdef PROTOCOL_LUFA
- #include "lufa.h"
- #include "split_util.h"
-#endif
-
-#ifdef RGBLIGHT_ENABLE
-//Following line allows macro to read current RGB settings
-extern rgblight_config_t rgblight_config;
-#endif
-
-#define LAYOUT_crkbd_base( \
- K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, \
- K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, \
- K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, \
- K31, K32, K33, K34, K35, K36 \
- )
-
-#define LAYOUT_crkbd_wrapper(...) LAYOUT_split_3x6_3(__VA_ARGS__)
-
-#define QWERTY_4_CRKBD KC_LCTL, MO(_LW), KC_SPC, KC_ENT, MO(_LW), KC_RALT
-
-#define BLANK_4_CRKBD KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [_QW] = LAYOUT_crkbd_wrapper(
- QWERTY_1_12,
- QWERTY_2_12,
- QWERTY_3_12,
- QWERTY_4_DOX
- ),
-
- [_LW] = LAYOUT_crkbd_wrapper(
- LOWER_1_12,
- LOWER_2_12,
- LOWER_3_12,
- LOWER_4_DOX
- ),
-
- [_NV] = LAYOUT_crkbd_wrapper(
- NAV_1_12,
- NAV_2_12,
- NAV_3_12,
- NAV_4_DOX
- ),
-
- [_NP] = LAYOUT_crkbd_wrapper(
- NUMPAD_1_12,
- NUMPAD_2_12,
- NUMPAD_3_12,
- NUMPAD_4_DOX
- ),
-
- [_MS] = LAYOUT_crkbd_wrapper(
- MOUSE_1_12,
- MOUSE_2_12,
- MOUSE_3_12,
- MOUSE_4_DOX
- )
-};
-
-#ifdef OLED_ENABLE
-
-// When add source files to SRC in rules.mk, you can use functions.
-const char *read_logo(void);
-void set_keylog(uint16_t keycode, keyrecord_t *record);
-const char *read_keylog(void);
-const char *read_keylogs(void);
-
-char matrix_line_str[24];
-
-const char *read_layer_state(void) {
- uint8_t layer = get_highest_layer(layer_state);
-
- strcpy(matrix_line_str, "Layer: ");
-
- switch (layer)
- {
- case _QW:
- strcat(matrix_line_str, "Default");
- break;
- case _LW:
- strcat(matrix_line_str, "Lower");
- break;
- case _NV:
- strcat(matrix_line_str, "Navigation");
- break;
- case _NP:
- strcat(matrix_line_str, "Adjust");
- break;
- case _MS:
- strcat(matrix_line_str, "Mouse");
- break;
- default:
- sprintf(matrix_line_str + strlen(matrix_line_str), "Unknown (%d)", layer);
- }
-
- return matrix_line_str;
-}
-
-const char *read_usb_state(void) {
-
- strcpy(matrix_line_str, "USB : ");
-
- switch (USB_DeviceState) {
- case DEVICE_STATE_Unattached:
- strcat(matrix_line_str, "Unattached");
- break;
- case DEVICE_STATE_Suspended:
- strcat(matrix_line_str, "Suspended");
- break;
- case DEVICE_STATE_Configured:
- strcat(matrix_line_str, "Connected");
- break;
- case DEVICE_STATE_Powered:
- strcat(matrix_line_str, "Powered");
- break;
- case DEVICE_STATE_Default:
- strcat(matrix_line_str, "Default");
- break;
- case DEVICE_STATE_Addressed:
- strcat(matrix_line_str, "Addressed");
- break;
- default:
- strcat(matrix_line_str, "Invalid");
- }
-
- return matrix_line_str;
-}
-
-bool oled_task_user(void) {
- if (is_keyboard_master()) {
- oled_write_ln(read_layer_state(), false);
- oled_write_ln(read_usb_state(), false);
- oled_write_ln(read_keylogs(), false);
- } else {
- oled_write(read_logo(), false);
- }
- return false;
-}
-
-#endif
-
-bool process_record_keymap(uint16_t keycode, keyrecord_t *record) {
- if (record->event.pressed) {
- set_keylog(keycode, record);
- }
-
- return true;
-}
diff --git a/keyboards/crkbd/keymaps/jarred/readme.md b/keyboards/crkbd/keymaps/jarred/readme.md
deleted file mode 100644
index 15e355bbca..0000000000
--- a/keyboards/crkbd/keymaps/jarred/readme.md
+++ /dev/null
@@ -1,9 +0,0 @@
-# Jarred's CRKBD Layout
-
-Check out [user space readme](../../../../users/jarred/readme.md) for more info
-
-# Build
-
-```
-make crkbd:jarred:avrdude
-```
diff --git a/keyboards/crkbd/keymaps/jarred/rules.mk b/keyboards/crkbd/keymaps/jarred/rules.mk
deleted file mode 100644
index efa378b099..0000000000
--- a/keyboards/crkbd/keymaps/jarred/rules.mk
+++ /dev/null
@@ -1,31 +0,0 @@
-
-# Build Options
-# change to "no" to disable the options, or define them in the Makefile in
-# the appropriate keymap folder that will get included automatically
-#
-BOOTMAGIC_ENABLE = no # Enable Bootmagic Lite
-MOUSEKEY_ENABLE = no # Mouse keys(+4700)
-EXTRAKEY_ENABLE = no # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
-COMMAND_ENABLE = no # Commands for debug and configuration
-NKRO_ENABLE = no # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
-BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
-MIDI_ENABLE = no # MIDI controls
-AUDIO_ENABLE = no # Audio output on port C6
-UNICODE_ENABLE = no # Unicode
-BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
-RGBLIGHT_ENABLE = yes # Enable WS2812 RGB underlight.
-SWAP_HANDS_ENABLE = no # Enable one-hand typing
-OLED_ENABLE = yes
-
-# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
-SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
-
-# If you want to change the display of OLED, you need to change here
-SRC += ./lib/rgb_state_reader.c \
- ./lib/logo_reader.c \
- ./lib/keylogger.c \
- #./lib/layer_state_reader.c \
- # ./lib/mode_icon_reader.c \
- # ./lib/host_led_state_reader.c \
- # ./lib/timelogger.c \
diff --git a/keyboards/crkbd/keymaps/ninjonas/README.md b/keyboards/crkbd/keymaps/ninjonas/README.md
deleted file mode 100644
index 84b55906f8..0000000000
--- a/keyboards/crkbd/keymaps/ninjonas/README.md
+++ /dev/null
@@ -1,99 +0,0 @@
-# ninjonas Keymap for [Corne Keyboard (crkbd)](https://github.com/foostan/crkbd)
-
-## Keymap
-This keymap is designed based off my typing habits and is subject to change. Information about custom user macros and tap dances can be found [here](../../../../users/ninjonas).
-
-More information about the crkbd keyboard can be found [here](https://thomasbaart.nl/2018/11/26/corne-keyboard-helidox-build-log/)
-
-### QWERTY
-```c
- //,----------------------------------------------------. ,----------------------------------------------------.
- // Tab, Q, W, E, R, T, Y, U, I, O, P, \
- //|--------+--------+--------+--------+--------+-------| |--------+--------+--------+--------+--------+-------|
- // ESC, A, S, D, F, G, H, J, K, L, ;, '
- //|--------+--------+--------+--------+--------+-------| |--------+--------+--------+--------+--------+-------|
- // LShift, Z, X, C, V, B, N, M, ,, ., /, =
- //|--------+--------+--------+--------+--------+-------| |--------+--------+--------+--------+--------+-------|
- // Cmd, Ctrl, Space, Enter, BackSP, Del
- //`---------------------' `---------------------'
-```
-
-### DVORAK
-```c
- //,----------------------------------------------------. ,----------------------------------------------------.
- // Tab, ', ,, ., P, Y, F, G, C, R, L, \
- //|--------+--------+--------+--------+--------+-------| |--------+--------+--------+--------+--------+-------|
- // ESC, A, O, E, U, I, D, H, T, N, S, /
- //|--------+--------+--------+--------+--------+-------| |--------+--------+--------+--------+--------+-------|
- // LShift, ;, Q, J, K, X, B, M, W, V, Z, =
- //|--------+--------+--------+--------+--------+-------| |--------+--------+--------+--------+--------+-------|
- // Cmd, Ctrl, Space, Enter, BackSP, Del
- //`---------------------' `---------------------'
-```
-
-### COLEMAK
-```c
- //,----------------------------------------------------. ,----------------------------------------------------.
- // Tab, Q, W, F, P, G, J, L, U, Y, ;, \
- //|--------+--------+--------+--------+--------+-------| |--------+--------+--------+--------+--------+-------|
- // ESC, A, R, S, T, D, H, N, E, I, O, '
- //|--------+--------+--------+--------+--------+-------| |--------+--------+--------+--------+--------+-------|
- // LShift, Z, X, C, V, B, K, M, ,, ., /, =
- //|--------+--------+--------+--------+--------+-------| |--------+--------+--------+--------+--------+-------|
- // Cmd, Ctrl, Space, Enter, BackSP, Del
- //`---------------------' `---------------------'
-```
-
-### LOWER
-```c
- //,----------------------------------------------------. ,----------------------------------------------------.
- // , , KC_BRIU, Play, Mute, K_CSCN, PgUp, Home, Up, End, , K_MDSH
- //|--------+--------+--------+--------+--------+-------| |--------+--------+--------+--------+--------+-------|
- // , , KC_BRID, Next, VolUp, , PgDn, Left, Down, Right, K_LOCK,
- //|--------+--------+--------+--------+--------+-------| |--------+--------+--------+--------+--------+-------|
- // , , , Prev, VolDn, [, ], , , M_CODE, M_XXX1, M_PYNV,
- //|--------+--------+--------+--------+--------+-------| |--------+--------+--------+--------+--------+-------|
- // , , , , ,
- //`---------------------' `---------------------'
-```
-
-### RAISE
-```c
- //,----------------------------------------------------. ,----------------------------------------------------.
- // `, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, -
- //|--------+--------+--------+--------+--------+-------| |--------+--------+--------+--------+--------+-------|
- // ~, !, @, #, $, %, ^, &, *, (, ), _
- //|--------+--------+--------+--------+--------+-------| |--------+--------+--------+--------+--------+-------|
- // F11, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F12
- //|--------+--------+--------+--------+--------+-------| |--------+--------+--------+--------+--------+-------|
- // , , , , ,
- //`---------------------' `---------------------'
-```
-
-### ADJUST
-```c
- //,----------------------------------------------------. ,----------------------------------------------------.
- // M_MAKE, EE_CLR , , , , , RGB_TOG, , , COLEMAK, DVORAK, QWERTY,
- //|--------+--------+--------+--------+--------+-------| |--------+--------+--------+--------+--------+-------|
- // M_VRSN, M_MALL, , RGB_SAI, RGB_HUI, RGB_VAI, , , , , , ,
- //|--------+--------+--------+--------+--------+-------| |--------+--------+--------+--------+--------+-------|
- // M_FLSH, , , RGB_SAD, RGB_HUD, RGB_VAD, RGB_M_P, RGB_M_B,RGB_M_SW, , , ,
- //|--------+--------+--------+--------+--------+-------| |--------+--------+--------+--------+--------+-------|
- // , , , , ,
- //`---------------------' `---------------------'
-```
-
-<!--
-### TEMPLATE
-```c
- //,----------------------------------------------------. ,----------------------------------------------------.
- // , , , , , , , , , , ,
- //|--------+--------+--------+--------+--------+-------| |--------+--------+--------+--------+--------+-------|
- // , , , , , , , , , , ,
- //|--------+--------+--------+--------+--------+-------| |--------+--------+--------+--------+--------+-------|
- // , , , , , , , , , , ,
- //|--------+--------+--------+--------+--------+-------| |--------+--------+--------+--------+--------+-------|
- // , , , , ,
- //`---------------------' `---------------------'
-```
---> \ No newline at end of file
diff --git a/keyboards/crkbd/keymaps/ninjonas/config.h b/keyboards/crkbd/keymaps/ninjonas/config.h
deleted file mode 100644
index fa3711ce8f..0000000000
--- a/keyboards/crkbd/keymaps/ninjonas/config.h
+++ /dev/null
@@ -1,88 +0,0 @@
-/*
-This is the c configuration file for the keymap
-
-Copyright 2012 Jun Wako <wakojun@gmail.com>
-Copyright 2015 Jack Humbert
-
-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 TAPPING_TERM 200
-
-#define MASTER_LEFT
-
-#define QUICK_TAP_TERM 0
-
-#ifdef RGB_MATRIX_ENABLE
- #define RGB_MATRIX_MAXIMUM_BRIGHTNESS 120
- #define RGB_MATRIX_HUE_STEP 10
- #define RGB_MATRIX_SAT_STEP 10
- #define RGB_MATRIX_VAL_STEP 10
- #define RGB_MATRIX_SPD_STEP 10
- // #define RGB_MATRIX_KEYPRESSES
- #define RGB_MATRIX_FRAMEBUFFER_EFFECTS
-
-// BEGIN: Disable RGB Effects
-//#undef ENABLE_RGB_MATRIX_SOLID_COLOR
-//#undef ENABLE_RGB_MATRIX_ALPHAS_MODS
-//#undef ENABLE_RGB_MATRIX_GRADIENT_UP_DOWN
-# undef ENABLE_RGB_MATRIX_BREATHING
-# undef ENABLE_RGB_MATRIX_BAND_SAT
-# undef ENABLE_RGB_MATRIX_BAND_VAL
-// #undef ENABLE_RGB_MATRIX_BAND_PINWHEEL_SAT
-# undef ENABLE_RGB_MATRIX_BAND_PINWHEEL_VAL
-# undef ENABLE_RGB_MATRIX_BAND_SPIRAL_SAT
-# undef ENABLE_RGB_MATRIX_BAND_SPIRAL_VAL
-# undef ENABLE_RGB_MATRIX_CYCLE_ALL
-# undef ENABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT
-# undef ENABLE_RGB_MATRIX_CYCLE_UP_DOWN
-# undef ENABLE_RGB_MATRIX_CYCLE_OUT_IN
-# undef ENABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL
-# undef ENABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON
-# undef ENABLE_RGB_MATRIX_CYCLE_PINWHEEL
-# undef ENABLE_RGB_MATRIX_CYCLE_SPIRAL
-# undef ENABLE_RGB_MATRIX_DUAL_BEACON
-# undef ENABLE_RGB_MATRIX_RAINBOW_BEACON
-# undef ENABLE_RGB_MATRIX_RAINBOW_PINWHEELS
-# undef ENABLE_RGB_MATRIX_RAINDROPS
-# undef ENABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS
-
-// BEGIN: RGB_MATRIX_FRAMEBUFFER_EFFECTS
-# undef ENABLE_RGB_MATRIX_TYPING_HEATMAP
-// #undef ENABLE_RGB_MATRIX_DIGITAL_RAIN
-// END: RGB_MATRIX_FRAMEBUFFER_EFFECTS
-
-// BEGIN: RGB_MATRIX_KEYPRESSES
-# undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE
-# undef ENABLE_RGB_MATRIX_SOLID_REACTIVE
-# undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE
-# undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE
-# undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS
-# undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS
-# undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS
-# undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS
-# undef ENABLE_RGB_MATRIX_SPLASH
-# undef ENABLE_RGB_MATRIX_MULTISPLASH
-# undef ENABLE_RGB_MATRIX_SOLID_SPLASH
-# undef ENABLE_RGB_MATRIX_SOLID_MULTISPLASH
-// END: RGB_MATRIX_KEYPRESSES
-// END: Disable RGB Effects
-#endif
-
-#define OLED_FONT_H "keyboards/crkbd/lib/glcdfont.c"
-#define OLED_DISABLE_TIMEOUT
-
-#define LAYOUT LAYOUT_split_3x6_3
diff --git a/keyboards/crkbd/keymaps/ninjonas/keymap.c b/keyboards/crkbd/keymaps/ninjonas/keymap.c
deleted file mode 100644
index 66b89f3a98..0000000000
--- a/keyboards/crkbd/keymaps/ninjonas/keymap.c
+++ /dev/null
@@ -1,101 +0,0 @@
-#include QMK_KEYBOARD_H
-#include "ninjonas.h"
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [_QWERTY] = LAYOUT_wrapper(
- //,----------------------------------------------------. ,----------------------------------------------------.
- _____________________QWERTY_L1______________________, _____________________QWERTY_R1______________________,
- //|--------+--------+--------+--------+--------+-------| |--------+--------+--------+--------+--------+-------|
- _____________________QWERTY_L2______________________, _____________________QWERTY_R2______________________,
- //|--------+--------+--------+--------+--------+-------| |--------+--------+--------+--------+--------+-------|
- _____________________QWERTY_L3______________________, _____________________QWERTY_R3______________________,
- //|--------+--------+--------+--------+--------+-------| |--------+--------+--------+--------+--------+-------|
- ________MOD_LEFT_________, ________MOD_RIGHT________
- //`---------------------' `---------------------'
- ),
-
- [_DVORAK] = LAYOUT_wrapper(
- //,----------------------------------------------------. ,----------------------------------------------------.
- _____________________DVORAK_L1______________________, _____________________DVORAK_R1______________________,
- //|--------+--------+--------+--------+--------+-------| |--------+--------+--------+--------+--------+-------|
- _____________________DVORAK_L2______________________, _____________________DVORAK_R2______________________,
- //|--------+--------+--------+--------+--------+-------| |--------+--------+--------+--------+--------+-------|
- _____________________DVORAK_L3______________________, _____________________DVORAK_R3______________________,
- //|--------+--------+--------+--------+--------+-------| |--------+--------+--------+--------+--------+-------|
- ________MOD_LEFT_________, ________MOD_RIGHT________
- //`---------------------' `---------------------'
- ),
-
- [_COLEMAK] = LAYOUT_wrapper(
- //,----------------------------------------------------. ,----------------------------------------------------.
- _____________________COLEMAK_L1_____________________, _____________________COLEMAK_R1_____________________,
- //|--------+--------+--------+--------+--------+-------| |--------+--------+--------+--------+--------+-------|
- _____________________COLEMAK_L2_____________________, _____________________COLEMAK_R2_____________________,
- //|--------+--------+--------+--------+--------+-------| |--------+--------+--------+--------+--------+-------|
- _____________________COLEMAK_L3_____________________, _____________________COLEMAK_R3_____________________,
- //|--------+--------+--------+--------+--------+-------| |--------+--------+--------+--------+--------+-------|
- ________MOD_LEFT_________, ________MOD_RIGHT________
- //`---------------------' `---------------------'
- ),
-
- [_LOWER] = LAYOUT_wrapper(
- //,----------------------------------------------------. ,----------------------------------------------------.
- _____________________LOWER_L1_______________________, _____________________LOWER_R1_______________________,
- //|--------+--------+--------+--------+--------+-------| |--------+--------+--------+--------+--------+-------|
- _____________________LOWER_L2_______________________, _____________________LOWER_R2_______________________,
- //|--------+--------+--------+--------+--------+-------| |--------+--------+--------+--------+--------+-------|
- _____________________LOWER_L3_______________________, _____________________LOWER_R3_______________________,
- //|--------+--------+--------+--------+--------+-------| |--------+--------+--------+--------+--------+-------|
- _______,_______,_______, _______,_______,_______
- //`---------------------' `---------------------'
- ),
-
- [_RAISE] = LAYOUT_wrapper(
- //,----------------------------------------------------. ,----------------------------------------------------.
- _____________________NUM_LEFT_______________________, _____________________NUM_RIGHT______________________,
- //|--------+--------+--------+--------+--------+-------| |--------+--------+--------+--------+--------+-------|
- _____________________SYM_LEFT_______________________, _____________________SYM_RIGHT______________________,
- //|--------+--------+--------+--------+--------+-------| |--------+--------+--------+--------+--------+-------|
- _____________________FUNC_LEFT______________________, _____________________FUNC_RIGHT_____________________,
- //|--------+--------+--------+--------+--------+-------| |--------+--------+--------+--------+--------+-------|
- _______,_______,_______, _______,_______,_______
- //`---------------------' `---------------------'
- ),
-
- [_ADJUST] = LAYOUT_wrapper(
- //,----------------------------------------------------. ,----------------------------------------------------.
- _____________________ADJUST_L1______________________, _____________________ADJUST_R1______________________,
- //|--------+--------+--------+--------+--------+-------| |--------+--------+--------+--------+--------+-------|
- _____________________ADJUST_L2______________________, _____________________ADJUST_R2______________________,
- //|--------+--------+--------+--------+--------+-------| |--------+--------+--------+--------+--------+-------|
- _____________________ADJUST_L3______________________, _____________________ADJUST_R3______________________,
- //|--------+--------+--------+--------+--------+-------| |--------+--------+--------+--------+--------+-------|
- _______,_______,_______, _______,_______,_______
- //`---------------------' `---------------------'
- ),
-
- [_NUMPAD] = LAYOUT_wrapper(
- //,----------------------------------------------------. ,----------------------------------------------------.
- _______, _______, _______, _______, _______, _______, _____________________NUMPAD_1_______________________,
- //|--------+--------+--------+--------+--------+-------| |--------+--------+--------+--------+--------+-------|
- _______, _______, _______, _______, _______, _______, _____________________NUMPAD_2_______________________,
- //|--------+--------+--------+--------+--------+-------| |--------+--------+--------+--------+--------+-------|
- _______, _______, _______, _______, _______, _______, _____________________NUMPAD_3_______________________,
- //|--------+--------+--------+--------+--------+-------| |--------+--------+--------+--------+--------+-------|
- _______,_______,_______, _______,_______,_______
- //`---------------------' `---------------------'
- ),
-/*
- [_TEMPLATE] = LAYOUT_wrapper(
- //,----------------------------------------------------. ,----------------------------------------------------.
- XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
- //|--------+--------+--------+--------+--------+-------| |--------+--------+--------+--------+--------+-------|
- XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
- //|--------+--------+--------+--------+--------+-------| |--------+--------+--------+--------+--------+-------|
- XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
- //|--------+--------+--------+--------+--------+-------| |--------+--------+--------+--------+--------+-------|
- _______,_______,_______, _______,_______,_______
- //`---------------------' `---------------------'
- ),
-*/
-};
diff --git a/keyboards/crkbd/keymaps/ninjonas/rules.mk b/keyboards/crkbd/keymaps/ninjonas/rules.mk
deleted file mode 100644
index 6dd34f26d7..0000000000
--- a/keyboards/crkbd/keymaps/ninjonas/rules.mk
+++ /dev/null
@@ -1,7 +0,0 @@
-RGB_MATRIX_ENABLE = yes
-MOUSEKEY_ENABLE = no
-OLED_ENABLE = yes
-LTO_ENABLE = yes
-
-# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
-SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
diff --git a/keyboards/crkbd/keymaps/ollyhayes/config.h b/keyboards/crkbd/keymaps/ollyhayes/config.h
deleted file mode 100644
index 9ad1ce2c58..0000000000
--- a/keyboards/crkbd/keymaps/ollyhayes/config.h
+++ /dev/null
@@ -1,95 +0,0 @@
-/* Copyright 2022 Olly Hayes (@ollyhayes)
- *
- * 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 EE_HANDS
-
-#define QUICK_TAP_TERM 0
-#define TAPPING_TERM 100
-
-#define NO_ACTION_ONESHOT
-
-#define OLED_FONT_H "keyboards/crkbd/lib/glcdfont.c"
-
-#define UNICODE_SELECTED_MODES UNICODE_MODE_LINUX
-
-#ifdef RGB_MATRIX_ENABLE
-# define RGB_MATRIX_KEYPRESSES // reacts to keypresses
-// # define RGB_MATRIX_KEYRELEASES // reacts to keyreleases (instead of keypresses)
-# define RGB_DISABLE_WHEN_USB_SUSPENDED // turn off effects when suspended
-# define RGB_MATRIX_FRAMEBUFFER_EFFECTS
-// # define RGB_MATRIX_LED_PROCESS_LIMIT (RGB_MATRIX_LED_COUNT + 4) / 5 // limits the number of LEDs to process in an animation per task run (increases keyboard responsiveness)
-// # define RGB_MATRIX_LED_FLUSH_LIMIT 16 // limits in milliseconds how frequently an animation will update the LEDs. 16 (16ms) is equivalent to limiting to 60fps (increases keyboard responsiveness)
-# define RGB_MATRIX_MAXIMUM_BRIGHTNESS 150 // limits maximum brightness of LEDs to 150 out of 255. Higher may cause the controller to crash.
-# define RGB_MATRIX_HUE_STEP 8
-# define RGB_MATRIX_SAT_STEP 8
-# define RGB_MATRIX_VAL_STEP 8
-# define RGB_MATRIX_SPD_STEP 10
-
-
-// RGB Matrix Animation modes. Explicitly enabled
-// For full list of effects, see:
-// https://docs.qmk.fm/#/feature_rgb_matrix?id=rgb-matrix-effects
-# define ENABLE_RGB_MATRIX_SOLID_COLOR
-// # define ENABLE_RGB_MATRIX_ALPHAS_MODS
-// # define ENABLE_RGB_MATRIX_GRADIENT_UP_DOWN
-// # define ENABLE_RGB_MATRIX_GRADIENT_LEFT_RIGHT
-// # define ENABLE_RGB_MATRIX_BREATHING
-// # define ENABLE_RGB_MATRIX_BAND_SAT
-// # define ENABLE_RGB_MATRIX_BAND_VAL
-// # define ENABLE_RGB_MATRIX_BAND_PINWHEEL_SAT
-// # define ENABLE_RGB_MATRIX_BAND_PINWHEEL_VAL
-// # define ENABLE_RGB_MATRIX_BAND_SPIRAL_SAT
-// # define ENABLE_RGB_MATRIX_BAND_SPIRAL_VAL
-// # define ENABLE_RGB_MATRIX_CYCLE_ALL
-// # define ENABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT
-// # define ENABLE_RGB_MATRIX_CYCLE_UP_DOWN
-// # define ENABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON
-// # define ENABLE_RGB_MATRIX_CYCLE_OUT_IN
-// # define ENABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL
-// # define ENABLE_RGB_MATRIX_CYCLE_PINWHEEL
-// # define ENABLE_RGB_MATRIX_CYCLE_SPIRAL
-// # define ENABLE_RGB_MATRIX_DUAL_BEACON
-// # define ENABLE_RGB_MATRIX_RAINBOW_BEACON
-# define ENABLE_RGB_MATRIX_RAINBOW_PINWHEELS
-// # define ENABLE_RGB_MATRIX_RAINDROPS
-// # define ENABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS
-// # define ENABLE_RGB_MATRIX_HUE_BREATHING
-// # define ENABLE_RGB_MATRIX_HUE_PENDULUM
-// # define ENABLE_RGB_MATRIX_HUE_WAVE
-// # define ENABLE_RGB_MATRIX_PIXEL_RAIN
-// # define ENABLE_RGB_MATRIX_PIXEL_FLOW
-// # define ENABLE_RGB_MATRIX_PIXEL_FRACTAL
-// enabled only if RGB_MATRIX_FRAMEBUFFER_EFFECTS is defined
-# define ENABLE_RGB_MATRIX_TYPING_HEATMAP
-# define RGB_MATRIX_TYPING_HEATMAP_DECREASE_DELAY_MS 200
-// # define ENABLE_RGB_MATRIX_DIGITAL_RAIN
-// enabled only of RGB_MATRIX_KEYPRESSES or RGB_MATRIX_KEYRELEASES is defined
-# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE
-// # define ENABLE_RGB_MATRIX_SOLID_REACTIVE
-// # define ENABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE
-// # define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE
-// # define ENABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS
-// # define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS
-// # define ENABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS
-// # define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS
-// # define ENABLE_RGB_MATRIX_SPLASH
-// # define ENABLE_RGB_MATRIX_MULTISPLASH
-// # define ENABLE_RGB_MATRIX_SOLID_SPLASH
-// # define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH
-
-#endif
diff --git a/keyboards/crkbd/keymaps/ollyhayes/keymap.c b/keyboards/crkbd/keymaps/ollyhayes/keymap.c
deleted file mode 100644
index 5b9bc6cd4e..0000000000
--- a/keyboards/crkbd/keymaps/ollyhayes/keymap.c
+++ /dev/null
@@ -1,112 +0,0 @@
-/* Copyright 2022 Olly Hayes (@ollyhayes)
- *
- * 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 "ollyhayes.h"
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [BASE] = LAYOUT_split_3x6_3(
-// +------------+------+------+---------+----------+---------+--------+----------+---------+--------+---------+---------+
- NUM_SWITCH , KC_Q , KC_W , KC_F , KC_P , KC_G , KC_J , KC_L , KC_U , KC_Y , KC_SCLN , KC_BSPC ,
- KC_ESC , KC_A , KC_R , KC_S , KC_T , KC_D , KC_H , KC_N , KC_E , KC_I , KC_O , KC_ENT ,
- 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_LCTL , MO(PUNC) , MO(ARR) , KC_SPC , MO(PUNC) , KC_RCTL
-// +------------+------+------+---------+----------+---------+--------+----------+---------+--------+---------+---------+
- ),
-
- [QWERTY] = LAYOUT_split_3x6_3(
-// +---------+------+------+---------+---------+---------+---------+---------+---------+--------+---------+---------+
- KC_TRNS , KC_Q , KC_W , KC_E , KC_R , KC_T , KC_Y , KC_U , KC_I , KC_O , KC_P , KC_TRNS ,
- KC_TRNS , KC_A , KC_S , KC_D , KC_F , KC_G , KC_H , KC_J , KC_K , KC_L , KC_SCLN , KC_TRNS ,
- KC_TRNS , KC_Z , KC_X , KC_C , KC_V , KC_B , KC_N , KC_M , KC_COMM , KC_DOT , KC_SLSH , KC_TRNS ,
- KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS
-// +---------+------+------+---------+---------+---------+---------+---------+---------+--------+---------+---------+
- ),
-
- [GAMES] = LAYOUT_split_3x6_3(
-// +---------+------+------+---------+---------+----------+---------+---------+---------+--------+---------+---------+
- KC_TRNS , KC_Q , KC_W , KC_E , KC_R , KC_T , KC_Y , KC_U , KC_I , KC_O , KC_P , KC_TRNS ,
- KC_TRNS , KC_A , KC_S , KC_D , KC_F , KC_G , KC_H , KC_J , KC_K , KC_L , KC_SCLN , KC_TRNS ,
- KC_TRNS , KC_Z , KC_X , KC_C , KC_V , KC_B , KC_N , KC_M , KC_COMM , KC_DOT , KC_SLSH , KC_TRNS ,
- KC_TRNS , KC_LALT , KC_SPACE , MO(ARR) , KC_TRNS , KC_TRNS
-// +---------+------+------+---------+---------+----------+---------+---------+---------+--------+---------+---------+
- ),
-
- [NUM] = LAYOUT_split_3x6_3(
-// +---------+---------------+------+--------+---------+-----------+-----------+------+--------+------+---------+---------+
- KC_TRNS , MO(FUNCTIONS) , KC_1 , KC_2 , KC_3 , DF(BASE) , C(KC_GRV) , KC_7 , KC_8 , KC_9 , KC_TRNS , KC_TRNS ,
- KC_TRNS , MO(MEDIA) , KC_4 , KC_5 , KC_6 , DF(GAMES) , KC_NO , KC_4 , KC_5 , KC_6 , KC_TRNS , KC_TRNS ,
- KC_TRNS , KC_0 , KC_7 , KC_8 , KC_9 , DF(QWERTY), KC_NO , KC_1 , KC_2 , KC_3 , KC_TRNS , KC_TRNS ,
- KC_DOT , KC_TRNS , KC_TAB , KC_TRNS , KC_0 , KC_DOT
-// +---------+---------------+------+--------+---------+-----------+-----------+------+--------+------+---------+---------+
- ),
-
- [FUNCTIONS] = LAYOUT_split_3x6_3(
-// +---------------+---------+---------+---------+---------+---------+---------+---------+---------+-------+---------+---------+
- KC_TRNS , KC_TRNS , KC_TRNS , KC_F8 , KC_F9 , KC_F12 , KC_F12 , KC_F7 , KC_F8 , KC_F9 , KC_TRNS , KC_TRNS ,
- TG(FUNCTIONS) , KC_TRNS , KC_F4 , KC_F5 , KC_F6 , KC_F11 , KC_F11 , KC_F4 , KC_F5 , KC_F6 , KC_TRNS , KC_TRNS ,
- KC_TRNS , KC_TRNS , KC_F1 , KC_F2 , KC_F3 , KC_F10 , KC_F10 , KC_F1 , KC_F2 , KC_F3 , KC_TRNS , KC_TRNS ,
- KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS
-// +---------------+---------+---------+---------+---------+---------+---------+---------+---------+-------+---------+---------+
- ),
-
- [ARR] = LAYOUT_split_3x6_3(
-// +---------+---------+-----------+---------+---------+------------+-----------+---------+---------+-----------+---------+---------+
- KC_TRNS , KC_TRNS , KC_HOME , KC_PGUP , KC_PGDN , KC_END , KC_HOME , KC_PGDN , KC_PGUP , KC_END , KC_TRNS , KC_TRNS ,
- KC_ENT , KC_DEL , KC_LEFT , KC_UP , KC_DOWN , KC_RGHT , KC_LEFT , KC_DOWN , KC_UP , KC_RGHT , KC_DEL , KC_TRNS ,
- KC_TRNS , KC_INS , C(KC_LEFT), KC_LGUI , KC_LALT , C(KC_RGHT) , C(KC_LEFT), DOWN4 , UP4 , C(KC_RGHT), KC_INS , KC_TRNS ,
- KC_TRNS , KC_F12 , KC_TRNS , KC_TRNS , KC_F12 , KC_TRNS
-// +---------+---------+-----------+---------+---------+------------+-----------+---------+---------+-----------+---------+---------+
- ),
-
- [PUNC] = LAYOUT_split_3x6_3(
-// +---------+------------+-----------+-----------+-------------+------------+------------+-------------+------------+------------+-----------+---------+
- ALTTAB , S(KC_1) , S(KC_2) , UC(0x20ac), S(KC_4) , S(KC_5) , S(KC_6) , S(KC_7) , S(KC_8) , S(KC_9) , S(KC_0) , KC_TRNS ,
- KC_TRNS , S(KC_NUBS) , S(KC_GRV) , KC_LBRC , KC_RBRC , S(KC_NUHS) , KC_QUOT , S(KC_LBRC) , S(KC_RBRC) , KC_MINS , S(KC_EQL) , KC_TRNS ,
- KC_TRNS , KC_NUBS , KC_GRV , KC_LGUI , KC_LALT , KC_NUHS , S(KC_QUOT) , KC_LALT , KC_LGUI , S(KC_MINS) , KC_EQL , KC_TRNS ,
- KC_TRNS , MO(DUBPUNC) , KC_MPLY , KC_TRNS , MO(DUBPUNC) , KC_TRNS
-// +---------+------------+-----------+-----------+-------------+------------+------------+-------------+------------+------------+-----------+---------+
- ),
-
- [MEDIA] = LAYOUT_split_3x6_3(
-// +------------+-----------+---------+---------+---------+----------------+----------------+---------+---------+---------+----------+---------+
- QK_BOOT , RGB_RMOD , RGB_MOD , RGB_TOG , RGB_HUD , RGB_HUI , RGB_HUD , RGB_HUI , RGB_TOG , RGB_RMOD, RGB_MOD , KC_SLEP ,
- KC_TRNS , KC_TRNS , KC_TRNS , KC_VOLD , KC_VOLU , RGB_MODE_PLAIN , RGB_MODE_PLAIN , KC_VOLD , KC_VOLU , KC_TRNS , KC_TRNS , KC_TRNS ,
- KC_TRNS , KC_TRNS , RGB_VAD , RGB_VAI , RGB_SAD , RGB_SAI , RGB_SAD , RGB_SAI , RGB_VAD , RGB_VAI , KC_TRNS , KC_TRNS ,
- KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS
-// +------------+-----------+---------+---------+---------+----------------+----------------+---------+---------+---------+----------+---------+
- ),
-
- [DUBPUNC] = LAYOUT_split_3x6_3(
-// +---------+----------+-----------+-----------+------------+---------+-----------+---------+----------+---------+----------+---------+
- KC_TRNS , KC_TRNS , KC_TRNS , UC(0x00a3), KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , U_UMLAUT , KC_TRNS , KC_TRNS , KC_TRNS ,
- KC_TRNS , A_UMLAUT , KC_TRNS , UC(0x00df), UC(0x2713) , KC_TRNS , UC(0x00b0), KC_TRNS , KC_TRNS , KC_TRNS , O_UMLAUT , KC_TRNS ,
- KC_TRNS , KC_TRNS , UC(0x2717), KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS ,
- KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS
-// +---------+----------+-----------+-----------+------------+---------+-----------+---------+----------+---------+----------+---------+
- )
-};
-
-/*
-[TEMPLATE] = LAYOUT_split_3x6_3(
-// +--------------+--------------+--------------+--------------+--------------+--------------+--------------+--------------+--------------+--------------+--------------+--------------+
- KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS ,
- KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS ,
- KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , 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/crkbd/keymaps/ollyhayes/oled.c b/keyboards/crkbd/keymaps/ollyhayes/oled.c
deleted file mode 100644
index 33db85fbb7..0000000000
--- a/keyboards/crkbd/keymaps/ollyhayes/oled.c
+++ /dev/null
@@ -1,112 +0,0 @@
-/* Copyright 2022 Olly Hayes (@ollyhayes)
- *
- * 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 "ollyhayes.h"
-
-oled_rotation_t oled_init_user(oled_rotation_t rotation) {
- if (!is_keyboard_master()) {
- return OLED_ROTATION_180; // flips the display 180 degrees if offhand
- }
- return rotation;
-}
-
-#define L_BASE 0
-#define L_NUM 8
-#define L_FUNCTIONS 16
-#define L_ARR 32
-#define L_PUNC 64
-#define L_DUBPUNC 128
-#define L_MEDIA 256
-
-#define DL_COLEMAK 1
-#define DL_QWERTY 2
-#define DL_GAMES 4
-
-void oled_render_layer_state(void) {
- oled_write_P(PSTR("Layer: "), false);
- switch (layer_state) {
- case L_BASE:
- switch (default_layer_state) {
- case DL_QWERTY:
- oled_write_ln_P(PSTR("Qwerty"), false);
- break;
- case DL_GAMES:
- oled_write_ln_P(PSTR("Games"), false);
- break;
- case DL_COLEMAK:
- default:
- oled_write_ln_P(PSTR("Colemak"), false);
- break;
- }
- break;
- case L_NUM:
- oled_write_ln_P(PSTR("Numbers"), false);
- break;
- case L_FUNCTIONS:
- case L_FUNCTIONS|L_NUM:
- oled_write_ln_P(PSTR("Functions"), false);
- break;
- case L_ARR:
- oled_write_ln_P(PSTR("Navigation"), false);
- break;
- case L_PUNC:
- oled_write_ln_P(PSTR("Punctuation"), false);
- break;
- case L_MEDIA:
- case L_MEDIA|L_NUM:
- oled_write_ln_P(PSTR("Media"), false);
- break;
- case L_DUBPUNC:
- case L_DUBPUNC|L_PUNC:
- oled_write_ln_P(PSTR("Specials"), false);
- break;
- }
-}
-
-void oled_render_timer(void) {
- static uint16_t microticks = 0;
- static uint16_t ticks = 0;
-
- if (microticks++ % 1000 == 0) {
- ticks++;
- }
-
- oled_write_P(PSTR("Ticks: "), false);
- oled_write_ln(get_u16_str(ticks, ' '), false);
-}
-
-void oled_render_presses(void) {
- oled_write_P(PSTR("Presses: "), false);
- oled_write_ln(get_u16_str(key_presses, ' '), false);
-}
-
-void oled_render_rgb_mode(void) {
- oled_write_P(PSTR("Animation: "), false);
- oled_write_ln(get_u8_str(rgb_matrix_get_mode(), ' '), false);
-}
-
-bool oled_task_user(void) {
- if (is_keyboard_master()) {
- oled_render_layer_state();
- }
- oled_render_timer();
- if (is_keyboard_master()) {
- oled_render_presses();
- }
- oled_render_rgb_mode();
- return false;
-}
diff --git a/keyboards/crkbd/keymaps/ollyhayes/readme.md b/keyboards/crkbd/keymaps/ollyhayes/readme.md
deleted file mode 100644
index 9e63f780ff..0000000000
--- a/keyboards/crkbd/keymaps/ollyhayes/readme.md
+++ /dev/null
@@ -1,67 +0,0 @@
-# ollyhayes's keymap for [Corne Keyboard (crkbd)](https://github.com/foostan/crkbd)
-
-## Keymap
-
-After many years of changing my keymap often and reperatedly, I finally came to a stable version. I've been using this for a while now with only small tweaks every so often.
-
-All layers are activated only whilst the layer key is held, except the default layers.
-
-Lots of keys are repeated on both sides. I find this really useful for two reasons:
-
-* I like to have the option to use the opposite hand to hold modifiers shift/ctrl etc as the hand pressing the key, I find this really comfortable.
-* When using the mouse, I like to be able to do common things with just my left hand.
-
-### Colemak
-
-The base layer:
-
-![colemak](https://i.imgur.com/uxLJzul.png)
-
-### Navigation
-
-All things for moving the cursor around, inspired by vim.
-
-* `c←` is ctrl+left
-* `↓↓↓↓` is ↓ pressed four times
-
-![navigation](https://i.imgur.com/xfkA0ze.png)
-
-### Symbols
-
-The shifted number row and all brackets and other symbols.
-
-* `a/t` is alt-tab for window switching in windows/linux. Using some special code to release alt when the punc key is released, this works quite nicely.
-
-![symbols](https://i.imgur.com/t9Jygs1.png)
-
-### Specials
-
-Some extra symbols (linux only for now) that work by sending UTF sequences. Layer activated by holding both punctuation layer keys.
-
-![specials](https://i.imgur.com/AtPWKrA.png)
-
-### Numbers
-
-Numbpads (left version is reversed so 1, 2, 3 are easy to reach with one hand (like on a regular keyboard).
-
-Also the keys to switch the default layer are here.
-
-![numbers](https://i.imgur.com/9XXcAXK.png)
-
-### Functions
-
-Function keys, nothing too interesting.
-
-![functions](https://i.imgur.com/ttrw3FJ.png)
-
-### Games (default layer)
-
-Used for some games, qwerty with space bar and alt for the left hand.
-
-![games](https://i.imgur.com/zVvHWKd.png)
-
-### Qwerty (default layer)
-
-Mostly for guests.
-
-![qwerty](https://i.imgur.com/Bqs1bjV.png)
diff --git a/keyboards/crkbd/keymaps/ollyhayes/rules.mk b/keyboards/crkbd/keymaps/ollyhayes/rules.mk
deleted file mode 100644
index f2bf2ce07b..0000000000
--- a/keyboards/crkbd/keymaps/ollyhayes/rules.mk
+++ /dev/null
@@ -1,16 +0,0 @@
-SRC += oled.c
-
-OLED_ENABLE = yes
-
-EXTRAKEY_ENABLE = yes
-UNICODE_ENABLE = yes
-
-RGBLIGHT_ENABLE = no
-RGB_MATRIX_ENABLE = yes
-# RGB_MATRIX_CUSTOM_USER = yes
-
-VIRTSER_ENABLE = yes
-
-LTO_ENABLE = yes
-
-MOUSEKEY_ENABLE = no
diff --git a/keyboards/crkbd/keymaps/pdl/config.h b/keyboards/crkbd/keymaps/pdl/config.h
deleted file mode 100644
index f2a5a522ea..0000000000
--- a/keyboards/crkbd/keymaps/pdl/config.h
+++ /dev/null
@@ -1,29 +0,0 @@
-/*
-This is the c configuration file for the keymap
-
-Copyright 2012 Jun Wako <wakojun@gmail.com>
-Copyright 2015 Jack Humbert
-Copyright 2021 Daniel Perrett
-
-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 TAPPING_TOGGLE 2
-#define TAPPING_TERM 200
-
-#define COMBO_PDL
-#define COMBO_TERM 100
diff --git a/keyboards/crkbd/keymaps/pdl/keymap.c b/keyboards/crkbd/keymaps/pdl/keymap.c
deleted file mode 100644
index 1060a92650..0000000000
--- a/keyboards/crkbd/keymaps/pdl/keymap.c
+++ /dev/null
@@ -1,62 +0,0 @@
-/* Copyright 2022 Daniel Perrett
- *
- * 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 "pdl.h"
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [_QWERTY] = LAYOUT_wrapper(
- MY_FESC, _________________QWERTY_L1_________________, _________________QWERTY_R1_________________, KC_BSPC,
- KC_TAB, _________________QWERTY_L2_________________, _________________QWERTY_R2_________________, MY_SQUO,
- MY_SBSL, _________________QWERTY_L3_________________, _________________QWERTY_R3_________________, MY_CENT,
- KC_LCTL, NAVIGN, KC_SPC, MY_SSPC, NUMBRS, NAVIGN
- ),
- [_PROXIM] = LAYOUT_wrapper(
- MY_FESC, _________________PROXIM_L1_________________, _________________PROXIM_R1_________________, KC_BSPC,
- KC_TAB, _________________PROXIM_L2_________________, _________________PROXIM_R2_________________, MY_ASCL,
- MY_SBSL, _________________PROXIM_L3_________________, _________________PROXIM_R3_________________, MY_CENT,
- KC_LCTL, NAVIGN, KC_SPC, MY_SSPC, NUMBRS, NAVIGN
- ),
- [_NAVIGN] = LAYOUT_wrapper(
- _______, _________________NAVIGN_L1_________________, _______, _______, _______, _______, _______, _______,
- _______, _________________NAVIGN_L2_________________, _______, _______, _______, _______, _______, _______,
- _______, _________________NAVIGN_L3_________________, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______
- ),
- [_PUNCTN] = LAYOUT_wrapper(
- _______, _______, _______, _______, _______, _______, _________________PUNCTN_R1_________________, _______,
- _______, _______, _______, _______, _______, _______, _________________PUNCTN_R2_________________, _______,
- _______, _______, _______, _______, _______, _______, _________________PUNCTN_R3_________________, _______,
- _______, _______, _______, _______, _______, _______
- ),
- [_NUMBRS] = LAYOUT_wrapper(
- _______, _________________NUMBRS_L1_________________, _______, _______, _______, _______, _______, _______,
- _______, _________________NUMBRS_L2_________________, _______, _______, _______, _______, _______, _______,
- _______, _________________NUMBRS_L3_________________, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______
- ),
- [_CODING] = LAYOUT_wrapper(
- _______, _______, _______, _______, _______, _______, _________________CODING_R1_________________, _______,
- _______, _______, _______, _______, _______, _______, _________________CODING_R2_________________, _______,
- _______, _______, _______, _______, _______, _______, _________________CODING_R3_________________, _______,
- _______, _______, _______, _______, _______, _______
- ),
- [_FUNCTN] = LAYOUT_wrapper(
- _______, _________________FUNCTN_L1_________________, _________________FUNCTN_R1_________________, MY_CAD,
- _______, _________________FUNCTN_L2_________________, _________________FUNCTN_R2_________________, KC_PSCR,
- _______, _________________FUNCTN_L3_________________, _________________FUNCTN_R3_________________, _______,
- _______, _______, _______, _______, _______, _______
- )
-};
diff --git a/keyboards/crkbd/keymaps/rmeli/config.h b/keyboards/crkbd/keymaps/rmeli/config.h
deleted file mode 100644
index 86104fbacb..0000000000
--- a/keyboards/crkbd/keymaps/rmeli/config.h
+++ /dev/null
@@ -1,67 +0,0 @@
-/*
-This is the c configuration file for the keymap
-
-Copyright 2012 Jun Wako <wakojun@gmail.com>
-Copyright 2015 Jack Humbert
-Copyright 2021 Rocco Meli <@RMeli>
-
-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 MASTER_LEFT // Left side is the master
-#define SPLIT_LED_STATE_ENABLE
-
-#ifdef RGB_MATRIX_ENABLE
-// RGB matrix options
-# define RGB_MATRIX_KEYPRESSES // enable keypress effects
-# define RGB_MATRIX_LED_FLUSH_LIMIT 16
-# define RGB_DISABLE_WHEN_USB_SUSPENDED
-// Disable unwanted R2G effects (from r2g/config.h)
-# undef ENABLE_RGB_MATRIX_ALPHAS_MODS
-# undef ENABLE_RGB_MATRIX_GRADIENT_UP_DOWN
-# undef ENABLE_RGB_MATRIX_GRADIENT_LEFT_RIGHT
-# define ENABLE_RGB_MATRIX_BREATHING
-# undef ENABLE_RGB_MATRIX_BAND_SAT
-# undef ENABLE_RGB_MATRIX_BAND_VAL
-# undef ENABLE_RGB_MATRIX_BAND_SPIRAL_SAT
-# undef ENABLE_RGB_MATRIX_BAND_SPIRAL_VAL
-# undef ENABLE_RGB_MATRIX_CYCLE_ALL
-# undef ENABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON
-# undef ENABLE_RGB_MATRIX_CYCLE_SPIRAL
-# undef ENABLE_RGB_MATRIX_RAINDROPS
-# undef ENABLE_RGB_MATRIX_HUE_BREATHING
-# undef ENABLE_RGB_MATRIX_PIXEL_FRACTAL
-# define ENABLE_RGB_MATRIX_TYPING_HEATMAP
-# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE
-# undef ENABLE_RGB_MATRIX_SOLID_REACTIVE
-# undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS
-# undef ENABLE_RGB_MATRIX_SPLASH
-# undef ENABLE_RGB_MATRIX_SOLID_SPLASH
-// Enable effects
-# define ENABLE_RGB_MATRIX_SOLID_COLOR
-# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE
-// Default effect
-# define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_SOLID_COLOR
-# define RGB_MATRIX_DEFAULT_HUE 10
-# define RGB_MATRIX_DEFAULT_SAT 255
-# define RGB_MATRIX_DEFAULT_VAL RGB_MATRIX_MAXIMUM_BRIGHTNESS
-#endif
-
-// https://github.com/qmk/qmk_firmware/blob/develop/docs/squeezing_avr.md
-#undef LOCKING_SUPPORT_ENABLE
-#undef LOCKING_RESYNC_ENABLE
-#define NO_MUSIC_MODE
-#define LAYER_STATE_8BIT // Limit to 8 layers
diff --git a/keyboards/crkbd/keymaps/rmeli/keymap.c b/keyboards/crkbd/keymaps/rmeli/keymap.c
deleted file mode 100644
index 5a04e8150f..0000000000
--- a/keyboards/crkbd/keymaps/rmeli/keymap.c
+++ /dev/null
@@ -1,129 +0,0 @@
-/*
-Copyright 2019 @foostan
-Copyright 2020 Christopher Courtney, aka Drashna Jael're (@drashna) <drashna@live.com>
-Copyright 2021 Rocco Meli <@RMeli>
-
-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 "rmeli.h"
-
-// + -------------------- +
-// + RGB MATRIX CALLBACKS |
-// + -------------------- +
-
-// LED numbers:
-// https://github.com/foostan/crkbd/blob/main/corne-classic/doc/buildguide_en.md
-
-// Change LED color to red when CAPS LOCK is active
-bool rgb_matrix_indicators_user(void) {
- if (host_keyboard_led_state().caps_lock) {
- rgb_matrix_set_color(26, 255, 0, 0);
- // Only works with SPLIT_LED_STATE_ENABLE
- rgb_matrix_set_color(53, 255, 0, 0);
- }
- return false;
-}
-
-// + ---- +
-// + OLED |
-// + ---- +
-
-bool oled_task_user(void) {
- if (is_keyboard_master()) {
- oled_render_rocco();
- } else {
- oled_render_meli();
- }
- return false;
-}
-
-// + ------- +
-// + KEY MAP |
-// + ------- +
-
-// Layer names
-enum layer_names {
- _QWERTY,
- _COLEMAK_DH,
- _DWN,
- _UP,
- _CONFIG,
-};
-
-// Layer names shortcuts
-#define _QWY 0
-#define _CMK 1
-#define _CFG 4
-
-#define ______THUMB_LEFT_x3______ KC_LGUI, MO(_DWN), KC_SPC
-#define ______THUMB_RIGHT_x3_____ KC_ENT, MO(_UP), KC_RCTL
-
-// LAYOUT
-//
-// |-----------------------------| |-----------------------------|
-// | | | | | | | | | | | | | |
-// |----+----+----+----+----+----| |----+----+----+----+----+----|
-// | | | | | | | | | | | | | |
-// |----+----+----+----+----+----| |----+----+----+----+----+----|
-// | | | | | | | | | | | | | |
-// |----+----+----+----+----+----+----| |----+----+----+----+----+----+----|
-// | | | | | | | |
-// |--------------| |--------------|
-
-// Define wrapper for standard CRKB layout
-#define LAYOUT_wrapper(...) LAYOUT_split_3x6_3(__VA_ARGS__)
-
-// clang-format off
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
- [_QWERTY] = LAYOUT_wrapper(
- // clang-format off
- ___________________QWERTY_L1_x6_____________________, ___________________QWERTY_R1_x6_____________________,
- ___________________QWERTY_L2_x6_____________________, ___________________QWERTY_R2_x6_____________________,
- ___________________QWERTY_L3_x6_____________________, ___________________QWERTY_R3_x6_____________________,
- ______THUMB_LEFT_x3______, ______THUMB_RIGHT_x3_____
- ),
-
- [_COLEMAK_DH] = LAYOUT_wrapper(
- ________________COLEMAK_MOD_DH_L1_x6________________, ________________COLEMAK_MOD_DH_R1_x6________________,
- ________________COLEMAK_MOD_DH_L2_x6________________, ________________COLEMAK_MOD_DH_R2_x6________________,
- ________________COLEMAK_MOD_DH_L3_x6________________, ________________COLEMAK_MOD_DH_R3_x6________________,
- ______THUMB_LEFT_x3______, ______THUMB_RIGHT_x3_____
- ),
-
- [_DWN] = LAYOUT_wrapper(
- _______, ______________NUMBER_LEFT_x5_______________, ______________NUMBER_RIGHT_x5______________, _______,
- _______, ______________UNICODE_L2_x5________________, ________________NAV_R2_x5__________________, XXXXXXX,
- _______, ______________UNICODE_L3_x5________________, ________________NAV_R3_x5__________________, _______,
- KC_LGUI, _______, _______, _______,MO(_CFG), _______
- ),
-
- [_UP] = LAYOUT_wrapper(
- ___________________SYMBOL_LEFT_x6___________________, ___________________SYMBOL_RIGHT_x6__________________,
- _______, ____________NAV_VIM_x4____________, XXXXXXX, ____________________SYMBOL_R2_x6____________________,
- _______, _________________NONE_5x___________________, ____________________SYMBOL_R3_x6____________________,
- _______,MO(_CFG), _______, _______, _______, _______
- ),
-
- [_CONFIG] = LAYOUT_wrapper(
- QK_BOOT, _________________NONE_5x___________________, _______________CONFIG_R1_x5________________,DF(_QWY),
- RGB_TOG, ________________RGB_L2_x5__________________, _______________CONFIG_R2_x5________________, XXXXXXX,
- XXXXXXX, ________________RGB_L3_x5__________________, _______________CONFIG_R3_x5________________,DF(_CMK),
- _______, _______, _______, _______, _______, _______
- )
-};
-// clang-format on
diff --git a/keyboards/crkbd/keymaps/rmeli/rules.mk b/keyboards/crkbd/keymaps/rmeli/rules.mk
deleted file mode 100644
index 107c493978..0000000000
--- a/keyboards/crkbd/keymaps/rmeli/rules.mk
+++ /dev/null
@@ -1,11 +0,0 @@
-OLED_ENABLE = yes
-
-TAP_DANCE_ENABLE = yes
-AUTO_SHIFT_ENABLE = no // disable auto-shift with home row mods
-
-UNICODEMAP_ENABLE = yes
-NKRO_ENABLE = yes
-MAGIC_ENABLE = yes
-
-RGBLIGHT_ENABLE = no
-RGB_MATRIX_ENABLE = yes
diff --git a/keyboards/crkbd/keymaps/rs/config.h b/keyboards/crkbd/keymaps/rs/config.h
deleted file mode 100644
index bbdb0d8106..0000000000
--- a/keyboards/crkbd/keymaps/rs/config.h
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
-This is the c configuration file for the keymap
-
-Copyright 2012 Jun Wako <wakojun@gmail.com>
-Copyright 2015 Jack Humbert
-
-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 USE_MATRIX_I2C
-
-/* Select hand configuration */
-
-#define MASTER_LEFT
-// #define MASTER_RIGHT
-// #define EE_HANDS
-
-#define QUICK_TAP_TERM 0
-#define TAPPING_TERM 300
-
-#undef RGBLED_NUM
-#define RGBLIGHT_EFFECT_BREATHING
-#define RGBLIGHT_EFFECT_RAINBOW_MOOD
-#define RGBLIGHT_EFFECT_RAINBOW_SWIRL
-#define RGBLIGHT_EFFECT_SNAKE
-#define RGBLIGHT_EFFECT_KNIGHT
-#define RGBLIGHT_EFFECT_CHRISTMAS
-#define RGBLIGHT_EFFECT_STATIC_GRADIENT
-#define RGBLIGHT_EFFECT_RGB_TEST
-#define RGBLIGHT_EFFECT_ALTERNATING
-#define RGBLIGHT_EFFECT_TWINKLE
-#define RGBLED_NUM 27
-#define RGBLIGHT_LIMIT_VAL 120
-#define RGBLIGHT_HUE_STEP 10
-#define RGBLIGHT_SAT_STEP 17
-#define RGBLIGHT_VAL_STEP 17
diff --git a/keyboards/crkbd/keymaps/rs/keymap.c b/keyboards/crkbd/keymaps/rs/keymap.c
deleted file mode 100644
index 7e2a2e066e..0000000000
--- a/keyboards/crkbd/keymaps/rs/keymap.c
+++ /dev/null
@@ -1,39 +0,0 @@
-#include QMK_KEYBOARD_H
-#include "rs.h"
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [_QWERTY] = LAYOUT(
- //,----+----+----+----+----+----. ,----+----+----+----+----+----.
- KC_TAB , KC_Q , KC_W , KC_E , KC_R , KC_T , KC_Y , KC_U , KC_I , KC_O , KC_P ,KC_EQL ,
- //|----+----+----+----+----+----| |----+----+----+----+----+----|
- KC_ESCC, 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_ENTS,
- //`----+----+----+--+-+----+----+----/ \----+----+----+----+----+----+----'
- KC_LALT,KC_LGUI,KC_SPC , KC_BSPC,KC_CODE,KC_FN
- // `----+----+----' `+---+----+----'c
- ),
- [_CODE] = LAYOUT(
- //,----+----+----+----+----+----. ,----+----+----+----+----+----.
- KC_GRV ,KC_EXLM, KC_AT ,KC_HASH, KC_DLR,KC_PERC, KC_CIRC,KC_LPLT,KC_ASTR,KC_RPGT,KC_NEQL,_______,
- //|----+----+----+----+----+----| |----+----+----+----+----+----|
- _______, KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_MINS,KC_LBRC, KC_UP ,KC_RBRC,_______,KC_BSLS,
- //|----+----+----+----+----+----+ |----+----+----+----+----+----|
- _______, KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , KC_AMPR,KC_LEFT,KC_DOWN,KC_RGHT,_______,KC_PIPE,
- //`----+----+----+--+-+----+----+----/ \----+----+----+----+----+----+----'
- _______,_______,KC_DOT , _______,_______,_______
- // `----+----+----' `----+----+----'
- ),
- [_FN] = LAYOUT(
- //,----+----+----+----+----+----. ,----+----+----+----+----+----.
- _______, KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_F5 , KC_F6 , KC_F7 , KC_F8 , KC_F9 , KC_F10, KC_F11,
- //|----+----+----+----+----+----| |----+----+----+----+----+----|
- KC_LTOG,KC_LHUI,KC_LSAI,KC_LVAI,KC_LRST,KC_BRMU, KC_VOLU,_______,KC_PGUP,_______,_______,_______,
- //|----+----+----+----+----+----+ |----+----+----+----+----+----|
- KC_LMOD,KC_LHUD,KC_LSAD,KC_LVAD,KC_RST ,KC_BRMD, KC_VOLD,KC_CTRA,KC_PGDN,KC_CTRE,_______,_______,
- //`----+----+----+--+-+----+----+----/ \----+----+----+----+----+----+----'
- _______,_______,_______, KC_MUTE,_______,_______
- // `----+----+----' `----+----+----'
- ),
-};
-
diff --git a/keyboards/crkbd/keymaps/rs/oled.c b/keyboards/crkbd/keymaps/rs/oled.c
deleted file mode 100644
index a4c71daac2..0000000000
--- a/keyboards/crkbd/keymaps/rs/oled.c
+++ /dev/null
@@ -1,87 +0,0 @@
-#ifdef OLED_ENABLE
-#include QMK_KEYBOARD_H
-#ifdef PROTOCOL_LUFA
-#include "lufa.h"
-#include "split_util.h"
-#endif
-
-// When add source files to SRC in rules.mk, you can use functions.
-const char *read_logo(void);
-const char *read_keylog(void);
-const char *read_keylogs(void);
-void set_keylog(uint16_t keycode, keyrecord_t *record);
-
-void matrix_scan_user(void) { iota_gfx_task(); }
-
-typedef struct {
- uint8_t state;
- char name[8];
-} LAYER_DISPLAY_NAME;
-
-#define LAYER_DISPLAY_MAX 5
-const LAYER_DISPLAY_NAME layer_display_name[LAYER_DISPLAY_MAX] = {
- {0, "Base"},
- {2, "Code"},
- {4, "Fn"},
- {6, "Fn+Code"},
- {__UINT8_MAX__, "?"},
-};
-static uint8_t layer_name_idx;
-static char layer_status_buf[24] = "Layer: Base\n";
-
-#ifdef RGBLIGHT_ENABLE
-// Following line allows macro to read current RGB settings
-extern rgblight_config_t rgblight_config;
-void update_keymap_status(void) {
- snprintf(layer_status_buf, sizeof(layer_status_buf) - 1, "Layer:%s RGB: %d\n",
- layer_display_name[layer_name_idx].name, rgblight_config.mode);
-}
-#else
-void update_keymap_status(void) {
- snprintf(layer_status_buf, sizeof(layer_status_buf) - 1, "Layer:%s\n",
- layer_display_name[layer_name_idx].name);
-}
-#endif
-
-void matrix_init_user(void) {
- update_keymap_status();
-}
-
-// declared in users/rs/rs.c
-void rgb_mod_changed_keymap(void) {
- update_keymap_status();
-}
-
-// declared in users/rs/rs.c
-void keylog_set_keymap(uint16_t keycode, keyrecord_t *record) {
- set_keylog(keycode, record);
-}
-
-layer_state_t layer_state_set_user(layer_state_t state) {
- for (layer_name_idx = 0; layer_name_idx < LAYER_DISPLAY_MAX; ++layer_name_idx) {
- if (state == 0 && layer_display_name[layer_name_idx].state == default_layer_state) {
- break;
- } else if (state != 0 && layer_display_name[layer_name_idx].state == state) {
- break;
- }
- }
- update_keymap_status();
- return state;
-}
-
-static inline void render_keymap_status(struct CharacterMatrix *matrix) {
- oled_write(layer_status_buf);
-}
-
-bool oled_task_user(void) {
- if (is_keyboard_master()) {
- render_keymap_status(matrix);
- oled_write_ln(read_keylog(), false);
- oled_write_ln(read_keylogs(), false);
- } else {
- oled_write(read_logo(), false);
- }
- return false;
-}
-
-#endif
diff --git a/keyboards/crkbd/keymaps/rs/readme.md b/keyboards/crkbd/keymaps/rs/readme.md
deleted file mode 100644
index d7f7bb6459..0000000000
--- a/keyboards/crkbd/keymaps/rs/readme.md
+++ /dev/null
@@ -1,19 +0,0 @@
-# RS40: Code Friendly 40% Keymap
-
-This keymap is an evolution of my previous keymap optimized for coding with a 60% keyboards like the Iris. I tried to keep the simplicity of my previous keymap with all the keys necessary for coding on a single layer in addition to the base one.
-
-Because I sometime have to use my internal keyboard I my macbook, a karabiner configuration is also provided to get most of the features of this keyboard, including the code layer / backspace on right command key etc.
-
-See [rs readme](../../../../users/rs/readme.md) for a list of other keyboards supported by this keymap.
-
-## Base Layer
-
-[![](http://poitr.us/moooMf+)](http://www.keyboard-layout-editor.com/##@_backcolor=%23d8c1f5&switchMount=cherry&pcb:false&plate:true%3B&@_x:3&c=%236750f2&t=%2344b8b8&a:7%3B&=E&_x:8%3B&=I%3B&@_y:-0.87&x:2%3B&=W&_x:1%3B&=R&_x:6%3B&=U&_x:1%3B&=O%3B&@_y:-0.8799999999999999&x:5%3B&=T&_x:4%3B&=Y%3B&@_y:-0.87&c=%233a1ee6&t=%23b84465%3B&=Tab&_c=%236750f2&t=%2344b8b8%3B&=Q&_x:12%3B&=P&_c=%233a1ee6&t=%23b84465&a:5%3B&=+%0A%2F=%3B&@_y:-0.3799999999999999&x:3&c=%236750f2&t=%2344b8b8&a:7%3B&=D&_x:8%3B&=K%3B&@_y:-0.8700000000000001&x:2%3B&=S&_x:1%3B&=F&_x:6%3B&=J&_x:1%3B&=L%3B&@_y:-0.8799999999999999&x:5%3B&=G&_x:4%3B&=H%3B&@_y:-0.8700000000000001&c=%233a1ee6&t=%23b84465&a:5%3B&=Esc%0ACtrl&_c=%236750f2&t=%2344b8b8&a:7%3B&=A&_x:12&a:5%3B&=%2F:%0A%2F%3B&_c=%233a1ee6&t=%23b84465%3B&=%22%0A'%3B&@_y:-0.3799999999999999&x:3&c=%236750f2&t=%2344b8b8&a:7%3B&=C&_x:8&a:5%3B&=%3C%0A,%3B&@_y:-0.8700000000000001&x:2&a:7%3B&=X&_x:1%3B&=V&_x:6%3B&=M&_x:1&a:5%3B&=%3E%0A.%3B&@_y:-0.8799999999999999&x:5&a:7%3B&=B&_x:4%3B&=N%3B&@_y:-0.8700000000000001&c=%233a1ee6&t=%23b84465%3B&=Shift&_c=%236750f2&t=%2344b8b8%3B&=Z&_x:12&a:5%3B&=%3F%0A%2F%2F&_c=%233a1ee6&t=%23b84465&a:7%3B&=Enter%3B&@_y:-0.17999999999999972&x:11.75%3B&=Fn%3B&@_ry:0.25&y:2.95&x:3.3%3B&=Alt%3B&@_r:12&ry:1.75&y:0.5&x:4.8%3B&=Cmd%3B&@_r:35&rx:6.5&ry:4.25&y:-0.75&x:-0.75&c=%23d12424&t=%23ffffff&h:1.5%3B&=Space%3B&@_r:-35&rx:13&y:-2.75&x:-3.0999999999999996&h:1.5%3B&=Back%20Space%3B&@_r:-12&rx:0&ry:0&y:5.55&x:9.55&c=%233a1ee6&t=%23b84465%3B&=Code)
-
-## Code Layer
-
-[![](http://poitr.us/GvljvC+)](http://www.keyboard-layout-editor.com/##@_backcolor=%23d8c1f5&switchMount=cherry&pcb:false&plate:true%3B&@_x:3&c=%236750f2&t=%2344b8b8&a:7%3B&=%23&_x:8%3B&=*%3B&@_y:-0.87&x:2%3B&=%2F@&_x:1%3B&=$&_x:6&a:5%3B&=%3C%0A(&_x:1%3B&=%3E%0A)%3B&@_y:-0.8799999999999999&x:5&a:7%3B&=%25&_x:4%3B&=%5E%3B&@_y:-0.87&c=%233a1ee6&t=%23b84465%3B&=Tab&_c=%236750f2&t=%2344b8b8%3B&=!&_x:12%3B&=!%2F=&_c=%233a1ee6&t=%23b84465&a:5%3B&=+%0A%2F=%3B&@_y:-0.3799999999999999&x:3&c=%236750f2&t=%2344b8b8&a:7%3B&=3&_x:8%3B&=↑%3B&@_y:-0.8700000000000001&x:2%3B&=2&_x:1%3B&=4&_x:6&a:5%3B&=%7B%0A%5B&_x:1%3B&=%7D%0A%5D%3B&@_y:-0.8799999999999999&x:5&a:7%3B&=5&_x:4&a:5%3B&=%2F_%0A-%3B&@_y:-0.8700000000000001&c=%233a1ee6&t=%23b84465%3B&=Esc%0ACtrl&_c=%236750f2&t=%2344b8b8&a:7%3B&=1&_x:12&a:5%3B&=%2F:%0A%2F%3B&_c=%233a1ee6&t=%23b84465%3B&=%7C%0A%5C%3B&@_y:-0.3799999999999999&x:3&c=%236750f2&t=%2344b8b8&a:7%3B&=8&_x:8%3B&=↓%3B&@_y:-0.8700000000000001&x:2%3B&=7&_x:1%3B&=9&_x:6%3B&=←&_x:1%3B&=→%3B&@_y:-0.8799999999999999&x:5%3B&=0&_x:4%3B&=%2F&%3B&@_y:-0.8700000000000001&c=%233a1ee6&t=%23b84465%3B&=Shift&_c=%236750f2&t=%2344b8b8%3B&=6&_x:12&a:5%3B&=%3F%0A%2F%2F&_c=%233a1ee6&t=%23b84465&a:7%3B&=Enter%3B&@_y:-0.17999999999999972&x:11.75%3B&=Fn%3B&@_ry:0.25&y:2.95&x:3.3%3B&=Alt%3B&@_r:12&ry:1.75&y:0.5&x:4.8%3B&=Cmd%3B&@_r:35&rx:6.5&ry:4.25&y:-0.75&x:-0.75&c=%23d12424&t=%23ffffff&h:1.5%3B&=.%3B&@_r:-35&rx:13&y:-2.75&x:-3.0999999999999996&h:1.5%3B&=Back%20Space%3B&@_r:-12&rx:0&ry:0&y:5.55&x:9.55&c=%233a1ee6&t=%23b84465%3B&=Code)
-
-## Fn Layer
-
-[![](http://poitr.us/OXwmBK+)](http://www.keyboard-layout-editor.com/##@_backcolor=%23d8c1f5&switchMount=cherry&pcb:false&plate:true%3B&@_x:3&c=%236750f2&t=%2344b8b8&a:7%3B&=F3&_x:8%3B&=F8%3B&@_y:-0.87&x:2%3B&=F2&_x:1%3B&=F4&_x:6%3B&=F7&_x:1%3B&=F9%3B&@_y:-0.8799999999999999&x:5%3B&=F5&_x:4%3B&=F6%3B&@_y:-0.87&c=%233a1ee6&t=%23b84465%3B&=&_c=%236750f2&t=%2344b8b8%3B&=F1&_x:12%3B&=F10&_c=%233a1ee6&t=%23b84465%3B&=F11%3B&@_y:-0.3799999999999999&x:3&c=%236750f2&t=%2344b8b8%3B&=RGB%20Value+&_x:8%3B&=Page%20Up%3B&@_y:-0.8700000000000001&x:2%3B&=RGB%20Sat+&_x:1%3B&=RGB%20Reset&_x:6%3B&=&_x:1%3B&=%3B&@_y:-0.8799999999999999&x:5%3B&=Bright+&_x:4%3B&=Vol+%3B&@_y:-0.8700000000000001&c=%233a1ee6&t=%23b84465%3B&=RGB%20Toggle&_c=%236750f2&t=%2344b8b8%3B&=RGB%20Hue+&_x:12%3B&=&_c=%233a1ee6&t=%23b84465%3B&=%3B&@_y:-0.3799999999999999&x:3&c=%236750f2&t=%2344b8b8%3B&=RGB%20Value-&_x:8%3B&=Page%20Down%3B&@_y:-0.8700000000000001&x:2%3B&=RGB%20Sat-&_x:1%3B&=Reset&_x:6%3B&=Ctrl+A&_x:1%3B&=Ctrl+E%3B&@_y:-0.8799999999999999&x:5%3B&=Bright-&_x:4%3B&=Vol-%3B&@_y:-0.8700000000000001&c=%233a1ee6&t=%23b84465%3B&=RGB%20Mode&_c=%236750f2&t=%2344b8b8%3B&=RGB%20Hue-&_x:12%3B&=&_c=%233a1ee6&t=%23b84465%3B&=%3B&@_y:-0.17999999999999972&x:11.75%3B&=Fn%3B&@_ry:0.25&y:2.95&x:3.3%3B&=%3B&@_r:12&ry:1.75&y:0.5&x:4.8%3B&=%3B&@_r:35&rx:6.5&ry:4.25&y:-0.75&x:-0.75&c=%23d12424&t=%23ffffff&h:1.5%3B&=%3B&@_r:-35&rx:13&y:-2.75&x:-3.0999999999999996&h:1.5%3B&=Mute%3B&@_r:-12&rx:0&ry:0&y:5.55&x:9.55&c=%233a1ee6&t=%23b84465%3B&=Code) \ No newline at end of file
diff --git a/keyboards/crkbd/keymaps/rs/rules.mk b/keyboards/crkbd/keymaps/rs/rules.mk
deleted file mode 100644
index 5a76c38f38..0000000000
--- a/keyboards/crkbd/keymaps/rs/rules.mk
+++ /dev/null
@@ -1,31 +0,0 @@
-
-# Build Options
-# change to "no" to disable the options, or define them in the Makefile in
-# the appropriate keymap folder that will get included automatically
-#
-BOOTMAGIC_ENABLE = no # Enable Bootmagic Lite
-MOUSEKEY_ENABLE = no # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
-COMMAND_ENABLE = no # Commands for debug and configuration
-NKRO_ENABLE = no # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
-BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
-MIDI_ENABLE = no # MIDI controls
-AUDIO_ENABLE = no # Audio output on port C6
-UNICODE_ENABLE = no # Unicode
-BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
-RGBLIGHT_ENABLE = yes # Enable WS2812 RGB underlight.
-SWAP_HANDS_ENABLE = no # Enable one-hand typing
-TAP_DANCE_ENABLE = no
-
-BOOTLOADER = atmel-dfu
-
-# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
-SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
-
-# If you want to change the display of OLED, you need to change here
-SRC += oled.c \
- ./lib/rgb_state_reader.c \
- ./lib/layer_state_reader.c \
- ./lib/logo_reader.c \
- ./lib/keylogger.c \
diff --git a/keyboards/crkbd/keymaps/snowe/config.h b/keyboards/crkbd/keymaps/snowe/config.h
deleted file mode 100644
index 82097c503a..0000000000
--- a/keyboards/crkbd/keymaps/snowe/config.h
+++ /dev/null
@@ -1,58 +0,0 @@
-/*
-This is the c configuration file for the keymap
-
-Copyright 2012 Jun Wako <wakojun@gmail.com>
-Copyright 2015 Jack Humbert
-
-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 USE_MATRIX_I2C
-
-/* Select hand configuration */
-
-#define MASTER_LEFT
-// #define MASTER_RIGHT
-// #define EE_HANDS
-
-#define QUICK_TAP_TERM 0
-#define TAPPING_TERM 200
-
-#undef PERMISSIVE_HOLD
-
-#ifdef RGBLIGHT_ENABLE
- #undef RGBLED_NUM
-#define RGBLIGHT_EFFECT_BREATHING
-#define RGBLIGHT_EFFECT_RAINBOW_MOOD
-#define RGBLIGHT_EFFECT_RAINBOW_SWIRL
-#define RGBLIGHT_EFFECT_SNAKE
-#define RGBLIGHT_EFFECT_KNIGHT
-#define RGBLIGHT_EFFECT_CHRISTMAS
-#define RGBLIGHT_EFFECT_STATIC_GRADIENT
-#define RGBLIGHT_EFFECT_RGB_TEST
-#define RGBLIGHT_EFFECT_ALTERNATING
-#define RGBLIGHT_EFFECT_TWINKLE
- #define RGBLED_NUM 27
- #define RGBLIGHT_LIMIT_VAL 120
- #define RGBLIGHT_HUE_STEP 10
- #define RGBLIGHT_SAT_STEP 17
- #define RGBLIGHT_VAL_STEP 17
-#endif
-
-#define OLED_FONT_H "keyboards/crkbd/lib/glcdfont.c"
-
-#define LAYER_STATE_8BIT
-#define SPLIT_WPM_ENABLE
diff --git a/keyboards/crkbd/keymaps/snowe/keycode_aliases.h b/keyboards/crkbd/keymaps/snowe/keycode_aliases.h
deleted file mode 100644
index c19fb11d4b..0000000000
--- a/keyboards/crkbd/keymaps/snowe/keycode_aliases.h
+++ /dev/null
@@ -1,81 +0,0 @@
-/*
- * Copyright 2020 Drashna Jaelre <@drashna>
- * Copyright 2021 Tyler Thrailkill <@snowe/@snowe2010>
- *
- * 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 GUI_ESC GUI_T(KC_ESC)
-#define CTL_ESC CTL_T(KC_ESC)
-#define SH_BKSP SFT_T(KC_BSPC)
-#define SP_RAIS LT(_UPPER, KC_SPC)
-
-#define LOWER MO(_LOWER)
-#define RAISE MO(_UPPER)
-#define ADJUST MO(_ADJUST)
-#define TG_MODS TG(_MODS)
-//#define TG_GAME TG(_GAMEPAD)
-//#define OS_LWR OSL(_LOWER)
-//#define OS_RSE OSL(_UPPER)
-
-//#define KC_SEC1 KC_SECRET_1
-//#define KC_SEC2 KC_SECRET_2
-//#define KC_SEC3 KC_SECRET_3
-//#define KC_SEC4 KC_SECRET_4
-//#define KC_SEC5 KC_SECRET_5
-
-#define QWERTY KC_QWERTY
-#define DVORAK KC_DVORAK
-#define COLEMAK KC_COLEMAK
-#define WORKMAN KC_WORKMAN
-
-#define KC_RESET QK_BOOT
-#define KC_RST KC_RESET
-
-#ifdef SWAP_HANDS_ENABLE
-# define KC_C1R3 SH_TT
-#else // SWAP_HANDS_ENABLE
-# define KC_C1R3 KC_BSPC
-#endif // SWAP_HANDS_ENABLE
-
-#define BK_LWER LT(_LOWER, KC_BSPC)
-#define SP_LWER LT(_LOWER, KC_SPC)
-#define DL_RAIS LT(_UPPER, KC_DEL)
-#define ET_RAIS LT(_UPPER, KC_ENTER)
-#define SFT_ENT SFT_T(KC_ENTER)
-#define SP_RAIS LT(_UPPER, KC_SPC)
-
-/* OSM keycodes, to keep things clean and easy to change */
-#define KC_MLSF OSM(MOD_LSFT)
-#define KC_MRSF OSM(MOD_RSFT)
-
-#define OS_LGUI OSM(MOD_LGUI)
-#define OS_RGUI OSM(MOD_RGUI)
-#define OS_LSFT OSM(MOD_LSFT)
-#define OS_RSFT OSM(MOD_RSFT)
-#define OS_LCTL OSM(MOD_LCTL)
-#define OS_RCTL OSM(MOD_RCTL)
-#define OS_LALT OSM(MOD_LALT)
-#define OS_RALT OSM(MOD_RALT)
-#define OS_MEH OSM(MOD_MEH)
-#define OS_HYPR OSM(MOD_HYPR)
-
-#define ALT_APP ALT_T(KC_APP)
-
-#define MG_NKRO MAGIC_TOGGLE_NKRO
-
-#define UC_IRNY UC(0x2E2E)
-#define UC_CLUE UC(0x203D)
diff --git a/keyboards/crkbd/keymaps/snowe/keymap.c b/keyboards/crkbd/keymaps/snowe/keymap.c
deleted file mode 100644
index c605089bfb..0000000000
--- a/keyboards/crkbd/keymaps/snowe/keymap.c
+++ /dev/null
@@ -1,211 +0,0 @@
-/*
-Copyright 2019 @foostan
-Copyright 2020 Drashna Jaelre <@drashna>
-Copyright 2021 Tyler Thrailkill <@snowe/@snowe2010>
-
-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 "snowe.h"
-
-// Symbols chart
-// ↯ hyper key (ctrl, alt, shift, super)
-// ⌘ command
-// ⌥ option
-// ⌃ control
-// ⇧ shift
-// ⌫ backspace
-// ⌦ delete
-// ⎋ escape
-// ↩ enter
-
-/* Wrapper
- * ,-----------------------------------------------. .-----------------------------------------------.
- * | Tab | K01 | K02 | K03 | K04 | K05 | | K06 | K07 | K08 | K09 | K0A | |
- * |-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------|
- * | ⌘/⎋ | ⌃/K11 | K12 | K13 | K14 | K15 | | K16 | K17 | K18 | K19 | ⌥/K1A | |
- * |-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------|
- * | ↯/⌦ | ⌥/K21 | K22 | K23 | K24 | K25 | | K26 | K27 | K28 | K29 | ⌃/K2A | |
- * `-----------------------. | | .-----------------------'
- * |-------+-------+-------| |-------+-------+-------|
- * | ⌃ | ⇧/↩ | ⌫/LWR | | ␣/RAY | ␣ | R ⌥ |
- * `-----------------------' '-----------------------'
- */
-// clang-format off
-#define LAYOUT_crkbd_base( \
- K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, \
- K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, \
- K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A \
- ) \
- LAYOUT_wrapper( \
- KC_TAB, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, KC_MINS, \
- GUI_ESC, CTL_T(K11), K12, K13, K14, K15, K16, K17, K18, K19, ALT_T(K1A), KC_QUOT, \
- HYPR_T(KC_DEL), ALT_T(K21), K22, K23, K24, K25, K26, K27, K28, K29, RCTL_T(K2A), KC_BSLS, \
- KC_LCTL, LOWER, SH_BKSP, KC_ENTER, SP_RAIS, KC_LALT \
- )
-// clang-format on
-#define LAYOUT_crkbd_base_wrapper(...) LAYOUT_crkbd_base(__VA_ARGS__)
-// clang-format off
-#define LAYOUT_crkbd_no_hold_shortcuts( \
- K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, \
- K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, \
- K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A \
- ) \
- LAYOUT_wrapper( \
- KC_TAB, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, KC_MINS, \
- GUI_ESC, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, KC_QUOT, \
- KC_LSFT, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, KC_BSLS, \
- KC_LCTL, LOWER, KC_BSPC, KC_ENTER, SP_RAIS, KC_LALT \
- )
-// clang-format on
-#define LAYOUT_crkbd_no_hold_shortcuts_wrapper(...) LAYOUT_crkbd_no_hold_shortcuts(__VA_ARGS__)
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- // clang-format off
- /* QWERTY
- * ,-----------------------------------------------. .-----------------------------------------------.
- * | | Q | W | E | R | T | | Y | U | I | O | P | |
- * |-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------|
- * | | A | S | D | F | G | | H | J | K | L | ; | ' |
- * |-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------|
- * | | Z | X | C | V | B | | N | M | , | . | / | |
- * `-----------------------. | | .-----------------------'
- * |-------+-------+-------| |-------+-------+-------|
- * | | | | | | | |
- * `-----------------------' '-----------------------'
- */
- [_MAIN] = LAYOUT_crkbd_base_wrapper(
- _________________QWERTY_L1_________________, _________________QWERTY_R1_________________,
- _________________QWERTY_L2_________________, _________________QWERTY_R2_________________,
- _________________QWERTY_L3_________________, _________________QWERTY_R3_________________
- ),
- [_GAMING] = LAYOUT_crkbd_no_hold_shortcuts_wrapper(
- _________________QWERTY_L1_________________, _________________QWERTY_R1_________________,
- _________________QWERTY_L2_________________, _________________QWERTY_R2_________________,
- _________________QWERTY_L3_________________, _________________QWERTY_R3_________________
- ),
-
- /* Lower
- * ,-----------------------------------------------. .-----------------------------------------------.
- * | ~ | ! | @ | # | $ | % | | ^ | & | * | ( | ) | |
- * |-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------|
- * | | | | | | | | | _ | + | [ | ] | |
- * |-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------|
- * | | | | | | | | | ← | ↑ | ↓ | → | |
- * `-----------------------. | | .-----------------------'
- * |-------+-------+-------| |-------+-------+-------|
- * | | | | | | | |
- * `-----------------------' '-----------------------'
- */
- [_LOWER] = LAYOUT_wrapper(
- KC_TILDE, _________________LOWER_L1__________________, _________________LOWER_R1__________________, KC_F11,
- KC_F12 , _________________LOWER_L2__________________, _________________LOWER_R2__________________, KC_PIPE,
- _______ , _________________LOWER_L3__________________, _________________LOWER_R3__________________, _______,
- _______, _______, _______, _______, _______, _______
- ),
-
-
- /*
- * ,-----------------------------------------------. .-----------------------------------------------.
- * | | | | | | | | | | | | | |
- * |-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------|
- * | | | | | | | | | | | | | |
- * |-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------|
- * | | | | | | | | | | | | | |
- * `-----------------------. | | .-----------------------'
- * |-------+-------+-------| |-------+-------+-------|
- * | | | | | | | |
- * `-----------------------' '-----------------------'
- */
- /* Raise
- * ,-----------------------------------------------. .-----------------------------------------------.
- * | ` | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | |
- * |-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------|
- * | | | | | | | | | ← | ↑ | ↓ | → | |
- * |-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------|
- * | | | | | | | | | home |pg down| pg up | end | |
- * `-----------------------. | | .-----------------------'
- * |-------+-------+-------| |-------+-------+-------|
- * | | | | | | | |
- * `-----------------------' '-----------------------'
- */
- [_UPPER] = LAYOUT_wrapper(
- KC_GRV, _________________RAISE_L1__________________, _________________RAISE_R1__________________, _______,
- _______, _________________RAISE_L2__________________, _________________RAISE_R2__________________, KC_BSLS,
- _______, _________________RAISE_L3__________________, _________________RAISE_R3__________________, _______,
- _______, _______, _______, _______, _______, _______
- ),
-
- [_ADJUST] = LAYOUT_wrapper(
- _______, _________________ADJUST_L1_________________, _________________ADJUST_R1_________________, KC_RESET,
- _______, _________________ADJUST_L2_________________, _________________ADJUST_R2_________________, EE_CLR,
- _______, _________________ADJUST_L3_________________, _________________ADJUST_R3_________________, KC_MPLY,
- _______, _______, _______, _______, _______, _______
- )
- // clang-format on
-};
-
-layer_state_t layer_state_set_user(layer_state_t state) { return update_tri_layer_state(state, _LOWER, _UPPER, _ADJUST); }
-
-bool process_record_user(uint16_t keycode, keyrecord_t *record) {
- switch (keycode) {
- case KC_LCTL:
- case KC_RCTL:
-#ifdef OCEAN_DREAM_ENABLE
- is_calm = (record->event.pressed) ? true : false;
-#endif
-#ifdef LUNA_ENABLE
- if (record->event.pressed) {
- isSneaking = true;
- } else {
- isSneaking = false;
- }
-#endif
- break;
- case KC_SPC:
-#ifdef LUNA_ENABLE
- if (record->event.pressed) {
- isJumping = true;
- showedJump = false;
- } else {
- isJumping = false;
- }
-#endif
- break;
- }
- return true;
-}
-
-// uint16_t get_tapping_term(uint16_t keycode, keyrecord_t *record) {
-// switch (keycode) {
-// case ALT_T(KC_A):
-// case SH_BKSP:
-// return TAPPING_TERM + 500;
-// default:
-// return TAPPING_TERM;
-// }
-//}
-//
-// bool get_hold_on_other_key_press(uint16_t keycode, keyrecord_t *record) {
-// if (keycode == ALT_T(KC_A) || keycode == SH_BKSP) {
-// return false;
-// }
-// switch (keycode) {
-// case QK_MOD_TAP ... QK_MOD_TAP_MAX:
-// return true;
-// default:
-// return false;
-// }
-//}
diff --git a/keyboards/crkbd/keymaps/snowe/rules.mk b/keyboards/crkbd/keymaps/snowe/rules.mk
deleted file mode 100644
index 10cf2fa97c..0000000000
--- a/keyboards/crkbd/keymaps/snowe/rules.mk
+++ /dev/null
@@ -1,25 +0,0 @@
-BOOTMAGIC_ENABLE = no # Enable Bootmagic Lite
-MOUSEKEY_ENABLE = no # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
-COMMAND_ENABLE = no # Commands for debug and configuration
-NKRO_ENABLE = no # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
-AUDIO_ENABLE = no # Audio output on port C6
-BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
-RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight.
-LEADER_ENABLE = no
-MIDI_ENABLE = no # MIDI controls
-UNICODE_ENABLE = no # Unicode
-BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
-SWAP_HANDS_ENABLE = no # Enable one-hand typing
-RGBLIGHT_TWINKLE = no
-OLED_ENABLE = yes
-RGB_MATRIX_ENABLE = yes
-
-OCEAN_DREAM_ENABLE = yes
-LUNA_ENABLE = no # disabled so travis build succeeds
-
-# if firmware size over limit, try this option
-LTO_ENABLE = yes
-
-WPM_ENABLE = yes
diff --git a/keyboards/crkbd/keymaps/toinux/config.h b/keyboards/crkbd/keymaps/toinux/config.h
deleted file mode 100644
index 83fe82aa8d..0000000000
--- a/keyboards/crkbd/keymaps/toinux/config.h
+++ /dev/null
@@ -1,123 +0,0 @@
-/*
-This is the c configuration file for the keymap
-
-Copyright 2012 Jun Wako <wakojun@gmail.com>
-Copyright 2015 Jack Humbert
-
-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 USE_MATRIX_I2C
-
-/* Select hand configuration */
-
-#define MASTER_LEFT
-// #define MASTER_RIGHT
-// #define EE_HANDS
-
-//#define QUICK_TAP_TERM 0
-//#define TAPPING_TERM 100
-
-#ifdef RGBLIGHT_ENABLE
- #define RGBLIGHT_EFFECT_BREATHING
- // #define RGBLIGHT_EFFECT_RAINBOW_MOOD
- // #define RGBLIGHT_EFFECT_RAINBOW_SWIRL
- #define RGBLIGHT_EFFECT_SNAKE
- #define RGBLIGHT_EFFECT_KNIGHT
- #define RGBLIGHT_EFFECT_CHRISTMAS
- #define RGBLIGHT_EFFECT_STATIC_GRADIENT
- #define RGBLIGHT_EFFECT_RGB_TEST
- #define RGBLIGHT_EFFECT_ALTERNATING
- #define RGBLIGHT_EFFECT_TWINKLE
- #define RGBLIGHT_LIMIT_VAL 120
- #define RGBLIGHT_HUE_STEP 10
- #define RGBLIGHT_SAT_STEP 17
- #define RGBLIGHT_VAL_STEP 17
-#endif
-
-#ifdef RGB_MATRIX_ENABLE
-# define RGB_MATRIX_KEYPRESSES // reacts to keypresses
-// # define RGB_MATRIX_KEYRELEASES // reacts to keyreleases (instead of keypresses)
-# define RGB_DISABLE_WHEN_USB_SUSPENDED // turn off effects when suspended
-# define RGB_MATRIX_FRAMEBUFFER_EFFECTS
-// # define RGB_MATRIX_LED_PROCESS_LIMIT (RGB_MATRIX_LED_COUNT + 4) / 5 // limits the number of LEDs to process in an animation per task run (increases keyboard responsiveness)
-// # define RGB_MATRIX_LED_FLUSH_LIMIT 16 // limits in milliseconds how frequently an animation will update the LEDs. 16 (16ms) is equivalent to limiting to 60fps (increases keyboard responsiveness)
-# define RGB_MATRIX_MAXIMUM_BRIGHTNESS 150 // limits maximum brightness of LEDs to 150 out of 255. Higher may cause the controller to crash.
-# define RGB_MATRIX_HUE_STEP 8
-# define RGB_MATRIX_SAT_STEP 8
-# define RGB_MATRIX_VAL_STEP 8
-# define RGB_MATRIX_SPD_STEP 10
-
-/* Enable the animations you want/need. You may need to enable only a small number of these because *
- * they take up a lot of space. Enable and confirm that you can still successfully compile your firmware. */
-// RGB Matrix Animation modes. Explicitly enabled
-// For full list of effects, see:
-// https://docs.qmk.fm/#/feature_rgb_matrix?id=rgb-matrix-effects
-# undef ENABLE_RGB_MATRIX_ALPHAS_MODS
-# undef ENABLE_RGB_MATRIX_GRADIENT_UP_DOWN
-# undef ENABLE_RGB_MATRIX_GRADIENT_LEFT_RIGHT
-# undef ENABLE_RGB_MATRIX_BREATHING
-# undef ENABLE_RGB_MATRIX_BAND_SAT
-# undef ENABLE_RGB_MATRIX_BAND_VAL
-# undef ENABLE_RGB_MATRIX_BAND_PINWHEEL_SAT
-# undef ENABLE_RGB_MATRIX_BAND_PINWHEEL_VAL
-# undef ENABLE_RGB_MATRIX_BAND_SPIRAL_SAT
-# undef ENABLE_RGB_MATRIX_BAND_SPIRAL_VAL
-# undef ENABLE_RGB_MATRIX_CYCLE_ALL
-# undef ENABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT
-# undef ENABLE_RGB_MATRIX_CYCLE_UP_DOWN
-# undef ENABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON
-# undef ENABLE_RGB_MATRIX_CYCLE_OUT_IN
-# undef ENABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL
-# undef ENABLE_RGB_MATRIX_CYCLE_PINWHEEL
-# undef ENABLE_RGB_MATRIX_CYCLE_SPIRAL
-# undef ENABLE_RGB_MATRIX_DUAL_BEACON
-# undef ENABLE_RGB_MATRIX_RAINBOW_BEACON
-# undef ENABLE_RGB_MATRIX_RAINBOW_PINWHEELS
-# undef ENABLE_RGB_MATRIX_RAINDROPS
-# undef ENABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS
-# undef ENABLE_RGB_MATRIX_HUE_BREATHING
-# undef ENABLE_RGB_MATRIX_HUE_PENDULUM
-# undef ENABLE_RGB_MATRIX_HUE_WAVE
-# undef ENABLE_RGB_MATRIX_PIXEL_RAIN
-# undef ENABLE_RGB_MATRIX_PIXEL_FLOW
-# undef ENABLE_RGB_MATRIX_PIXEL_FRACTAL
-// enabled only if RGB_MATRIX_FRAMEBUFFER_EFFECTS is defined
-# undef ENABLE_RGB_MATRIX_TYPING_HEATMAP
-# undef ENABLE_RGB_MATRIX_DIGITAL_RAIN
-// enabled only of RGB_MATRIX_KEYPRESSES or RGB_MATRIX_KEYRELEASES is defined
-# undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE
-# undef ENABLE_RGB_MATRIX_SOLID_REACTIVE
-# undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE
-# undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE
-# undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS
-# undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS
-# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS
-# undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS
-# define ENABLE_RGB_MATRIX_SPLASH
-# undef ENABLE_RGB_MATRIX_MULTISPLASH
-# undef ENABLE_RGB_MATRIX_SOLID_SPLASH
-# undef ENABLE_RGB_MATRIX_SOLID_MULTISPLASH
-#endif
-
-#define OLED_FONT_H "keyboards/crkbd/keymaps/toinux/glcdfont.c"
-
-#define SPLIT_LAYER_STATE_ENABLE
-// #define SPLIT_LED_STATE_ENABLE
-
-#define LAYER_STATE_16BIT
-
-#define HOLD_ON_OTHER_KEY_PRESS_PER_KEY
diff --git a/keyboards/crkbd/keymaps/toinux/glcdfont.c b/keyboards/crkbd/keymaps/toinux/glcdfont.c
deleted file mode 100644
index 74cce5a952..0000000000
--- a/keyboards/crkbd/keymaps/toinux/glcdfont.c
+++ /dev/null
@@ -1,232 +0,0 @@
-// This is the 'classic' fixed-space bitmap font for Adafruit_GFX since 1.0.
-// See gfxfont.h for newer custom bitmap font info.
-
-#include "progmem.h"
-
-// Standard ASCII 5x7 font
-const unsigned char font[] PROGMEM = {
- 0x24, 0x7E, 0x24, 0x24, 0x7E, 0x24,
- 0x3E, 0x5B, 0x4F, 0x5B, 0x3E, 0x00,
- 0x3E, 0x6B, 0x4F, 0x6B, 0x3E, 0x00,
- 0x1C, 0x3E, 0x7C, 0x3E, 0x1C, 0x00,
- 0x18, 0x3C, 0x7E, 0x3C, 0x18, 0x00,
- 0x1C, 0x57, 0x7D, 0x57, 0x1C, 0x00,
- 0x1C, 0x5E, 0x7F, 0x5E, 0x1C, 0x00,
- 0x00, 0x18, 0x3C, 0x18, 0x00, 0x00,
- 0xFF, 0xE7, 0xC3, 0xE7, 0xFF, 0x00,
- 0x00, 0x18, 0x24, 0x18, 0x00, 0x00,
- 0xFF, 0xE7, 0xDB, 0xE7, 0xFF, 0x00,
- 0x30, 0x48, 0x3A, 0x06, 0x0E, 0x00,
- 0x26, 0x29, 0x79, 0x29, 0x26, 0x00,
- 0x40, 0x7F, 0x05, 0x05, 0x07, 0x00,
- 0x40, 0x7F, 0x05, 0x25, 0x3F, 0x00,
- 0x5A, 0x3C, 0xE7, 0x3C, 0x5A, 0x00,
- 0x7F, 0x3E, 0x1C, 0x1C, 0x08, 0x00,
- 0x08, 0x1C, 0x1C, 0x3E, 0x7F, 0x00,
- 0x14, 0x22, 0x7F, 0x22, 0x14, 0x00,
- 0x5F, 0x5F, 0x00, 0x5F, 0x5F, 0x00,
- 0x06, 0x09, 0x7F, 0x01, 0x7F, 0x00,
- 0x00, 0x66, 0x89, 0x95, 0x6A, 0x00,
- 0x60, 0x60, 0x60, 0x60, 0x60, 0x00,
- 0x94, 0xA2, 0xFF, 0xA2, 0x94, 0x00,
- 0x08, 0x04, 0x7E, 0x04, 0x08, 0x00,
- 0x10, 0x20, 0x7E, 0x20, 0x10, 0x00,
- 0x08, 0x08, 0x2A, 0x1C, 0x08, 0x00,
- 0x08, 0x1C, 0x2A, 0x08, 0x08, 0x00,
- 0x1E, 0x10, 0x10, 0x10, 0x10, 0x00,
- 0x0C, 0x1E, 0x0C, 0x1E, 0x0C, 0x00,
- 0x30, 0x38, 0x3E, 0x38, 0x30, 0x00,
- 0x06, 0x0E, 0x3E, 0x0E, 0x06, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x5F, 0x00, 0x00, 0x00,
- 0x00, 0x07, 0x00, 0x07, 0x00, 0x00,
- 0x14, 0x7F, 0x14, 0x7F, 0x14, 0x00,
- 0x24, 0x2A, 0x7F, 0x2A, 0x12, 0x00,
- 0x23, 0x13, 0x08, 0x64, 0x62, 0x00,
- 0x36, 0x49, 0x56, 0x20, 0x50, 0x00,
- 0x00, 0x08, 0x07, 0x03, 0x00, 0x00,
- 0x00, 0x1C, 0x22, 0x41, 0x00, 0x00,
- 0x00, 0x41, 0x22, 0x1C, 0x00, 0x00,
- 0x2A, 0x1C, 0x7F, 0x1C, 0x2A, 0x00,
- 0x08, 0x08, 0x3E, 0x08, 0x08, 0x00,
- 0x00, 0x80, 0x70, 0x30, 0x00, 0x00,
- 0x08, 0x08, 0x08, 0x08, 0x08, 0x00,
- 0x00, 0x00, 0x60, 0x60, 0x00, 0x00,
- 0x20, 0x10, 0x08, 0x04, 0x02, 0x00,
- 0x3E, 0x51, 0x49, 0x45, 0x3E, 0x00,
- 0x00, 0x42, 0x7F, 0x40, 0x00, 0x00,
- 0x72, 0x49, 0x49, 0x49, 0x46, 0x00,
- 0x21, 0x41, 0x49, 0x4D, 0x33, 0x00,
- 0x18, 0x14, 0x12, 0x7F, 0x10, 0x00,
- 0x27, 0x45, 0x45, 0x45, 0x39, 0x00,
- 0x3C, 0x4A, 0x49, 0x49, 0x31, 0x00,
- 0x41, 0x21, 0x11, 0x09, 0x07, 0x00,
- 0x36, 0x49, 0x49, 0x49, 0x36, 0x00,
- 0x46, 0x49, 0x49, 0x29, 0x1E, 0x00,
- 0x00, 0x00, 0x14, 0x00, 0x00, 0x00,
- 0x00, 0x40, 0x34, 0x00, 0x00, 0x00,
- 0x00, 0x08, 0x14, 0x22, 0x41, 0x00,
- 0x14, 0x14, 0x14, 0x14, 0x14, 0x00,
- 0x00, 0x41, 0x22, 0x14, 0x08, 0x00,
- 0x02, 0x01, 0x59, 0x09, 0x06, 0x00,
- 0x3E, 0x41, 0x5D, 0x59, 0x4E, 0x00,
- 0x7C, 0x12, 0x11, 0x12, 0x7C, 0x00,
- 0x7F, 0x49, 0x49, 0x49, 0x36, 0x00,
- 0x3E, 0x41, 0x41, 0x41, 0x22, 0x00,
- 0x7F, 0x41, 0x41, 0x41, 0x3E, 0x00,
- 0x7F, 0x49, 0x49, 0x49, 0x41, 0x00,
- 0x7F, 0x09, 0x09, 0x09, 0x01, 0x00,
- 0x3E, 0x41, 0x41, 0x51, 0x73, 0x00,
- 0x7F, 0x08, 0x08, 0x08, 0x7F, 0x00,
- 0x00, 0x41, 0x7F, 0x41, 0x00, 0x00,
- 0x20, 0x40, 0x41, 0x3F, 0x01, 0x00,
- 0x7F, 0x08, 0x14, 0x22, 0x41, 0x00,
- 0x7F, 0x40, 0x40, 0x40, 0x40, 0x00,
- 0x7F, 0x02, 0x1C, 0x02, 0x7F, 0x00,
- 0x7F, 0x04, 0x08, 0x10, 0x7F, 0x00,
- 0x3E, 0x41, 0x41, 0x41, 0x3E, 0x00,
- 0x7F, 0x09, 0x09, 0x09, 0x06, 0x00,
- 0x3E, 0x41, 0x51, 0x21, 0x5E, 0x00,
- 0x7F, 0x09, 0x19, 0x29, 0x46, 0x00,
- 0x26, 0x49, 0x49, 0x49, 0x32, 0x00,
- 0x03, 0x01, 0x7F, 0x01, 0x03, 0x00,
- 0x3F, 0x40, 0x40, 0x40, 0x3F, 0x00,
- 0x1F, 0x20, 0x40, 0x20, 0x1F, 0x00,
- 0x3F, 0x40, 0x38, 0x40, 0x3F, 0x00,
- 0x63, 0x14, 0x08, 0x14, 0x63, 0x00,
- 0x03, 0x04, 0x78, 0x04, 0x03, 0x00,
- 0x61, 0x59, 0x49, 0x4D, 0x43, 0x00,
- 0x00, 0x7F, 0x41, 0x41, 0x41, 0x00,
- 0x02, 0x04, 0x08, 0x10, 0x20, 0x00,
- 0x00, 0x41, 0x41, 0x41, 0x7F, 0x00,
- 0x04, 0x02, 0x01, 0x02, 0x04, 0x00,
- 0x40, 0x40, 0x40, 0x40, 0x40, 0x00,
- 0x00, 0x03, 0x07, 0x08, 0x00, 0x00,
- 0x20, 0xD4, 0x54, 0x78, 0x40, 0x00,
- 0x7F, 0x28, 0x44, 0x44, 0x38, 0x00,
- 0x38, 0x44, 0x44, 0x44, 0x28, 0x00,
- 0x38, 0x44, 0x44, 0x28, 0x7F, 0x00,
- 0x38, 0x54, 0x54, 0x54, 0x18, 0x00,
- 0x00, 0x08, 0x7E, 0x09, 0x02, 0x00,
- 0x48, 0x54, 0x54, 0x54, 0x28, 0x00,
- 0x7F, 0x08, 0x04, 0x04, 0x78, 0x00,
- 0x00, 0x44, 0x7D, 0x40, 0x00, 0x00,
- 0x20, 0x40, 0x40, 0x3D, 0x00, 0x00,
- 0x7F, 0x10, 0x28, 0x44, 0x00, 0x00,
- 0x00, 0x41, 0x7F, 0x40, 0x00, 0x00,
- 0x7C, 0x04, 0x78, 0x04, 0x78, 0x00,
- 0x7C, 0x08, 0x04, 0x04, 0x78, 0x00,
- 0x38, 0x44, 0x44, 0x44, 0x38, 0x00,
- 0x7C, 0x18, 0x24, 0x24, 0x18, 0x00,
- 0x18, 0x24, 0x24, 0x18, 0x7C, 0x00,
- 0x7C, 0x08, 0x04, 0x04, 0x08, 0x00,
- 0x48, 0x54, 0x54, 0x54, 0x24, 0x00,
- 0x04, 0x04, 0x3F, 0x44, 0x24, 0x00,
- 0x3C, 0x40, 0x40, 0x20, 0x7C, 0x00,
- 0x1C, 0x20, 0x40, 0x20, 0x1C, 0x00,
- 0x3C, 0x40, 0x30, 0x40, 0x3C, 0x00,
- 0x44, 0x28, 0x10, 0x28, 0x44, 0x00,
- 0x4C, 0x50, 0x50, 0x50, 0x3C, 0x00,
- 0x44, 0x64, 0x54, 0x4C, 0x44, 0x00,
- 0x00, 0x08, 0x36, 0x41, 0x00, 0x00,
- 0x00, 0x00, 0x77, 0x00, 0x00, 0x00,
- 0x00, 0x41, 0x36, 0x08, 0x00, 0x00,
- 0x02, 0x01, 0x02, 0x04, 0x02, 0x00,
- 0x3C, 0x26, 0x23, 0x26, 0x3C, 0x00,
- 0x83, 0xC3, 0xC3, 0xC3, 0x9B, 0x03,
- 0x03, 0x01, 0x00, 0x00, 0x00, 0x00,
- 0x36, 0x32, 0x32, 0x32, 0x32, 0x32,
- 0x32, 0xE6, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0xFF, 0xFF, 0xFF, 0xFF, 0xE1, 0xFE,
- 0xFF, 0xE1, 0xFF, 0xFF, 0xFF, 0xFF,
- 0x80, 0x80, 0x80, 0x80, 0x9E, 0x81,
- 0x80, 0x9E, 0x80, 0x80, 0x80, 0x80,
- 0xFF, 0xEF, 0xD7, 0x0F, 0xDF, 0xDF,
- 0xDF, 0xDF, 0x0F, 0xD7, 0xEF, 0xFF,
- 0x01, 0x11, 0x29, 0xF1, 0x21, 0x21,
- 0x21, 0x21, 0xF1, 0x29, 0x11, 0x01,
- 0x00, 0x00, 0x00, 0xFC, 0xFE, 0xFF,
- 0xFF, 0xFF, 0xFF, 0xFF, 0xF7, 0xEF,
- 0xDF, 0xBF, 0x7F, 0xFF, 0xFF, 0xFF,
- 0xFF, 0xFE, 0xFC, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0xFC, 0x02, 0x01,
- 0x01, 0x01, 0x01, 0x01, 0x09, 0x11,
- 0x21, 0x41, 0x81, 0x01, 0x01, 0x01,
- 0x01, 0x02, 0xFC, 0x00, 0x00, 0x00,
- 0x3E, 0xFF, 0xF8, 0xF8, 0xFF, 0x3E,
- 0x00, 0xE0, 0xF0, 0xF0, 0xF0, 0xE0,
- 0x63, 0x73, 0x7B, 0x6F, 0x67, 0x63,
- 0x07, 0x7F, 0x7F, 0x07, 0x7F, 0x7F,
- 0x08, 0x08, 0x7F, 0x3E, 0x1C, 0x08,
- 0x08, 0x1C, 0x3E, 0x7F, 0x08, 0x08,
- 0x63, 0x7F, 0x7F, 0x63, 0x7F, 0x3E,
- 0x1F, 0x3F, 0x63, 0x63, 0x3F, 0x1F,
- 0x73, 0x3B, 0x1F, 0x1F, 0x3B, 0x73,
- 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x8F, 0x8C, 0x0C, 0x0C, 0x0F, 0x0C,
- 0x8C, 0xAC, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 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, 0x83, 0x82, 0x82, 0x9E, 0x88,
- 0x84, 0x82, 0x81, 0x80, 0x80, 0x80,
- 0xFF, 0xEF, 0xD7, 0xE0, 0xF7, 0xF7,
- 0xF7, 0xF7, 0xE0, 0xD7, 0xEF, 0xFF,
- 0x00, 0x10, 0x28, 0x1F, 0x08, 0x08,
- 0x08, 0x08, 0x1F, 0x28, 0x10, 0x00,
- 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF,
- 0xFF, 0xFF, 0xFF, 0xFF, 0xDF, 0xEF,
- 0xF7, 0xFB, 0xFD, 0xFE, 0xFF, 0xFF,
- 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x20, 0x10,
- 0x08, 0x04, 0x02, 0x01, 0x00, 0x00,
- 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00,
- 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00,
- 0xFF, 0xFF, 0xBD, 0x81, 0x81, 0x00,
- 0x63, 0x7F, 0x7F, 0x63, 0x7F, 0x3E,
- 0x3E, 0x7F, 0x77, 0x77, 0x77, 0x77,
- 0x08, 0x08, 0x7F, 0x3E, 0x1C, 0x08,
- 0x08, 0x1C, 0x3E, 0x7F, 0x08, 0x08,
- 0x7F, 0x7F, 0x03, 0x03, 0x7F, 0x7F,
- 0x1C, 0x1C, 0x1C, 0x1C, 0x7F, 0x7F,
- 0x03, 0x7F, 0x7F, 0x63, 0x7F, 0x1F,
- 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0xD9, 0x99, 0x9B, 0x9E, 0x9E, 0x9B,
- 0x99, 0xD9, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 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, 0xFC, 0xFD, 0xFD, 0xE1, 0xF7,
- 0xFB, 0xFD, 0xFE, 0xFF, 0xFF, 0xFF,
- 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
- 0x7F, 0xBF, 0xDF, 0xE1, 0xFF, 0xFF,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x80, 0x40, 0x3C, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x3F, 0x7F, 0xFF,
- 0xFF, 0x1F, 0xDF, 0xDF, 0xC3, 0xF7,
- 0xEF, 0xDF, 0xBF, 0x7F, 0xFF, 0xFF,
- 0xFF, 0x7F, 0x3F, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x3F, 0x40, 0x80,
- 0x00, 0xE0, 0x20, 0x20, 0x3C, 0x08,
- 0x10, 0x20, 0x40, 0x80, 0x00, 0x00,
- 0x80, 0x40, 0x3F, 0x00, 0x00, 0x00,
- 0x00, 0x7F, 0xE3, 0xE3, 0x7F, 0x00,
- 0x00, 0x07, 0x0F, 0x0F, 0x0F, 0x07,
- 0x1C, 0x3E, 0x77, 0x63, 0x63, 0x63,
- 0x63, 0x73, 0x7B, 0x6F, 0x67, 0x63,
- 0x08, 0x08, 0x7F, 0x3E, 0x1C, 0x08,
- 0x08, 0x1C, 0x3E, 0x7F, 0x08, 0x08,
- 0x7F, 0x7F, 0x03, 0x03, 0x7F, 0x7F,
- 0x7F, 0x7F, 0x03, 0x03, 0x7F, 0x7F,
- 0x3E, 0x7F, 0x63, 0x63, 0x63, 0x63,
- 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00,
-};
diff --git a/keyboards/crkbd/keymaps/toinux/keycodes.h b/keyboards/crkbd/keymaps/toinux/keycodes.h
deleted file mode 100644
index 0d7c1e3260..0000000000
--- a/keyboards/crkbd/keymaps/toinux/keycodes.h
+++ /dev/null
@@ -1,49 +0,0 @@
-/* Copyright 2022 @toinux
- *
- * 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
-
-enum crkbd_layers {
- _BASE,
- _GAMING,
- _GAMING2,
- _ACCENTS,
- _LOWER,
- _RAISE,
- _FUN,
- _NAV,
- _MOUSE,
- _ADJUST
-};
-
-#define CTRLSC LCTL_T(KC_ESC)
-#define QUORCTL RCTL_T(KC_QUOT)
-#define MOSCLN LT(_MOUSE,KC_SCLN)
-#define ACCENTS LT(_ACCENTS,KC_RALT)
-#define FUN LT(_FUN,KC_SPC)
-#define LOWER MO(_LOWER)
-#define RAISE MO(_RAISE)
-#define SPCNAV LT(_NAV,KC_SPC)
-#define SFTENT MT(MOD_RSFT,KC_ENT)
-#define TABLGUI LGUI_T(KC_TAB)
-#define BASE DF(_BASE)
-#define GAMING DF(_GAMING)
-#define GAMING2 MO(_GAMING2)
-
-#define SC_F1 LSFT(LCTL(KC_F1))
-#define SC_F2 LSFT(LCTL(KC_F2))
-#define SC_F3 LSFT(LCTL(KC_F3))
-#define SC_F4 LSFT(LCTL(KC_F4))
diff --git a/keyboards/crkbd/keymaps/toinux/keymap.c b/keyboards/crkbd/keymaps/toinux/keymap.c
deleted file mode 100644
index 3742ed9b82..0000000000
--- a/keyboards/crkbd/keymaps/toinux/keymap.c
+++ /dev/null
@@ -1,259 +0,0 @@
-/*
-Copyright 2019 @foostan
-Copyright 2020 Drashna Jaelre <@drashna>
-Copyright 2022 @toinux
-
-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 "users/toinux/keymap_qwerty_fr.h"
-#include "keycodes.h"
-
-#ifdef OLED_ENABLE
-#include "oled.h"
-#endif
-
-// TEMPLATE
-// ,-----------------------------------------------------. ,-----------------------------------------------------.
-// | | | | | | | | | | | | | |
-// |--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
-// | | | | | | | | | | | | | |
-// |--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
-// | | | | | | | | | | | | | |
-// `--------+--------+--------+--------+--------+--------+--------. .--------+--------+--------+--------+--------+--------+--------'
-// | | | | | | | |
-// `--------------------------' `--------------------------'
-
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
-// Base
-// ,-----------------------------------------------------. ,-----------------------------------------------------.
-// |Tab/LGui| Q | W | E | R | T | | Y | U | I | O | P | Bksp |
-// |--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
-// | CtrlSc | A | S | D | F | G | | H | J | K | L | ;/Mous | '/Rctl |
-// |--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
-// | Shift | Z | X | C | V | B | | N | M | , | . | / | SftEnT |
-// `--------+--------+--------+--------+--------+--------+--------. .--------+--------+--------+--------+--------+--------+--------'
-// | LALT | LOWER |Spc/FUN | | Spc/NAV| RAISE |ACCENTS |
-// `--------------------------' `--------------------------'
- [_BASE] = LAYOUT_split_3x6_3(
- TABLGUI, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,
- CTRLSC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, MOSCLN, QUORCTL,
- KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, SFTENT,
- KC_LALT, LOWER, FUN, SPCNAV, RAISE, ACCENTS
-
- ),
-
-// Gaming
-// ,-----------------------------------------------------. ,-----------------------------------------------------.
-// | Tab | Q | W | E | R | T | | Y | U | I | O | P | Bksp |
-// |--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
-// | Ctrl | A | S | D | F | G | | H | J | K | L | ;/Mous | ' |
-// |--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
-// | Shift | Z | X | C | V | B | | N | M | , | . | / | SftEnT |
-// `--------+--------+--------+--------+--------+--------+--------. .--------+--------+--------+--------+--------+--------+--------'
-// | LALT |GAMING2 | Space | | Spc/NAV| RAISE |ACCENTS |
-// `--------------------------' `--------------------------'
- [_GAMING] = LAYOUT_split_3x6_3(
- 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, MOSCLN, KC_QUOT,
- KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, SFTENT,
- KC_LALT, GAMING2, KC_SPC, SPCNAV, RAISE, ACCENTS
-
- ),
-
-// Gaming 2
-// ,-----------------------------------------------------. ,-----------------------------------------------------.
-// | Tab | 1 | 2 | 3 | 4 | 5 | | | | | | | |
-// |--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
-// | Esc | 6 | 7 | 8 | 9 | 0 | | | | | | | |
-// |--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
-// | LGui | Base | | Vol- | Vol+ | Mute | | | | | | | |
-// `--------+--------+--------+--------+--------+--------+--------. .--------+--------+--------+--------+--------+--------+--------'
-// | | | | | | | |
-// `--------------------------' `--------------------------'
- [_GAMING2] = LAYOUT_split_3x6_3(
- KC_TAB, KC_1, KC_2, KC_3, KC_4, KC_5, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
- KC_ESC, KC_6, KC_7, KC_8, KC_9, KC_0, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
- KC_LGUI, BASE, XXXXXXX, KC_VOLD, KC_VOLU, KC_MUTE, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
- _______, _______, _______, _______, _______, _______
-
- ),
-
-// Accents, see http://marin.jb.free.fr/qwerty-fr/
-// ,-----------------------------------------------------. ,-----------------------------------------------------.
-// | | â | é | è | ê | € | | û | ù | î | ô | œ | |
-// |--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
-// | | à | æ | ë | | « | | » | ü | ï | ö | ° | |
-// |--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
-// | | à | | ç | | | | | | | | | |
-// `--------+--------+--------+--------+--------+--------+--------. .--------+--------+--------+--------+--------+--------+--------'
-// | | | | | | | |
-// `--------------------------' `--------------------------'
- [_ACCENTS] = LAYOUT_split_3x6_3(
- _______, QF_ACIR, QF_EACU, QF_EGRV, QF_ECIR, QF_EURO, QF_UCIR, QF_UGRV, QF_ICIR, QF_OCIR, QF_OE, _______,
- _______, QF_AGRV, QF_AE, QF_EDIA, _______, QF_LDAQ, QF_RDAQ, QF_UDIA, QF_IDIA, QF_ODIA, QF_DEG, _______,
- _______, QF_AGRV, _______, QF_CCED, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______
-
- ),
-
-// Lower
-// ,-----------------------------------------------------. ,-----------------------------------------------------.
-// | ~ | ! | @ | # | $ | % | | ^ | & | * | ( | ) | Del |
-// |--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
-// | | SC_F1 | SC_F2 | SC_F3 | SC_F4 | | | | _ | + | { | } | | |
-// |--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
-// | | Gaming | | Vol- | Vol+ | Mute | | | | | | | |
-// `--------+--------+--------+--------+--------+--------+--------. .--------+--------+--------+--------+--------+--------+--------'
-// | | | | | | | |
-// `--------------------------' `--------------------------'
- [_LOWER] = LAYOUT_split_3x6_3(
- KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL,
- _______, SC_F1, SC_F2, SC_F3, SC_F4, XXXXXXX, XXXXXXX, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE,
- _______, GAMING, XXXXXXX, KC_VOLD, KC_VOLU, KC_MUTE, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______,
- _______, _______, _______, _______, _______, _______
-
- ),
-
-// Raise
-// ,-----------------------------------------------------. ,-----------------------------------------------------.
-// | ` | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | Del |
-// |--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
-// | | | | | | | | | - | = | [ | ] | \ |
-// |--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
-// | | | | | | | | | | | | | |
-// `--------+--------+--------+--------+--------+--------+--------. .--------+--------+--------+--------+--------+--------+--------'
-// | | | | | | | |
-// `--------------------------' `--------------------------'
- [_RAISE] = LAYOUT_split_3x6_3(
- KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL,
- _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS,
- _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______,
- _______, _______, _______, _______, _______, _______
-
- ),
-
-// Functions and keypad
-// ,-----------------------------------------------------. ,-----------------------------------------------------.
-// | | F1 | F2 | F2 | F4 | | | | 7 | 8 | 9 | | |
-// |--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
-// | | F5 | F6 | F7 | F8 | | | | 4 | 5 | 6 | - | / |
-// |--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
-// | | F9 | F10 | F11 | F12 | | | | 1 | 2 | 3 | + | * |
-// `--------+--------+--------+--------+--------+--------+--------. .--------+--------+--------+--------+--------+--------+--------'
-// | | | | | = | 0 | . |
-// `--------------------------' `--------------------------'
- [_FUN] = LAYOUT_split_3x6_3(
- _______, KC_F1, KC_F2, KC_F3, KC_F4, XXXXXXX, XXXXXXX, KC_P7, KC_P8, KC_P9, XXXXXXX, _______,
- _______, KC_F5, KC_F6, KC_F7, KC_F8, XXXXXXX, XXXXXXX, KC_P4, KC_P5, KC_P6, KC_PMNS, KC_PSLS,
- _______, KC_F9, KC_F10, KC_F11, KC_F12, XXXXXXX, XXXXXXX, KC_P1, KC_P2, KC_P3, KC_PPLS, KC_PAST,
- _______, _______, _______, KC_PENT, KC_P0, KC_PDOT
-
- ),
-
-// Navigation and function keys
-// ,-----------------------------------------------------. ,-----------------------------------------------------.
-// | | F1 | F2 | F2 | F4 | | | | Pg Up | Up | Pg Dn | Ins | Del |
-// |--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
-// | | F5 | F6 | F7 | F8 | | | Home | Left | Down | Right | | |
-// |--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
-// | | F9 | F10 | F11 | F12 | | | Space | End | | | | |
-// `--------+--------+--------+--------+--------+--------+--------. .--------+--------+--------+--------+--------+--------+--------'
-// | | | | | | | |
-// `--------------------------' `--------------------------'
- [_NAV] = LAYOUT_split_3x6_3(
- _______, KC_F1, KC_F2, KC_F3, KC_F4, XXXXXXX, XXXXXXX, KC_PGUP, KC_UP, KC_PGDN, KC_INS, KC_DEL,
- _______, KC_F5, KC_F6, KC_F7, KC_F8, XXXXXXX, KC_HOME, KC_LEFT, KC_DOWN, KC_RGHT, XXXXXXX, XXXXXXX,
- _______, KC_F9, KC_F10, KC_F11, KC_F12, XXXXXXX, KC_SPC, KC_END, XXXXXXX, XXXXXXX, XXXXXXX, _______,
- _______, _______, _______, _______, _______, _______
-
- ),
-
-// Mouse
-// ,-----------------------------------------------------. ,-----------------------------------------------------.
-// | | | Wh up | Ms up | Wh dn | | | | | | | | |
-// |--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
-// | | | Ms lft | Ms dn | Ms rgt | | | | btn1 | btn3 | btn2 | | |
-// |--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
-// | | | Wh lft | | Wh rgt | | | | | | | | |
-// `--------+--------+--------+--------+--------+--------+--------. .--------+--------+--------+--------+--------+--------+--------'
-// | | | | | | | |
-// `--------------------------' `--------------------------'
- [_MOUSE] = LAYOUT_split_3x6_3(
- _______, _______, KC_WH_U, KC_MS_U, KC_WH_D, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, KC_MS_L, KC_MS_D, KC_MS_R, _______, _______, KC_BTN1, KC_BTN3, KC_BTN2, _______, _______,
- _______, _______, KC_WH_L, _______, KC_WH_R, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______
-
- ),
-
-// Adjust
-// ,-----------------------------------------------------. ,-----------------------------------------------------.
-// | Reset | | | | | Print | | Num | Caps | Scroll | | | |
-// |--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
-// | On/Off | Hue ↑ | Sat ↑ | Brght ↑| | | | | | | | | |
-// |--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
-// | Cycle | Hue ↓ | Sat ↓ | Brght ↓| | | | | | | | | |
-// `--------+--------+--------+--------+--------+--------+--------. .--------+--------+--------+--------+--------+--------+--------'
-// | | | | | | | |
-// `--------------------------' `--------------------------'
- [_ADJUST] = LAYOUT_split_3x6_3(
- QK_BOOT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_PSCR, KC_NUM, KC_CAPS, KC_SCRL, XXXXXXX, XXXXXXX, XXXXXXX,
- RGB_TOG, RGB_HUI, RGB_SAI, RGB_VAI, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
- RGB_MOD, RGB_HUD, RGB_SAD, RGB_VAD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
- _______, _______, _______, _______, _______, _______
- )
-};
-
-layer_state_t layer_state_set_user(layer_state_t state) {
- return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST);
-}
-
-bool get_hold_on_other_key_press(uint16_t keycode, keyrecord_t *record) {
- switch (keycode) {
- case CTRLSC:
- return true;
- default:
- return false;
- }
-}
-
-bool process_record_user(uint16_t keycode, keyrecord_t *record) {
-
-#ifdef OLED_ENABLE
- if (record->event.pressed) {
- set_keylog(keycode, record);
- }
-#endif // OLED_ENABLE
-
- switch (keycode) {
- case FUN:
- if (!host_keyboard_led_state().num_lock) {
- tap_code(KC_NUM_LOCK);
- }
- return true;
- break;
- }
- return true;
-}
-
-void keyboard_post_init_user(void) {
-#if defined(RGBLIGHT_ENABLE) || defined(RGB_MATRIX_ENABLE)
- rgb_matrix_mode_noeeprom(RGB_MATRIX_SOLID_COLOR);
- rgb_matrix_sethsv_noeeprom(HSV_OFF);
-#endif
-}
diff --git a/keyboards/crkbd/keymaps/toinux/oled.c b/keyboards/crkbd/keymaps/toinux/oled.c
deleted file mode 100644
index df2a693d8d..0000000000
--- a/keyboards/crkbd/keymaps/toinux/oled.c
+++ /dev/null
@@ -1,112 +0,0 @@
-/* Copyright 2022 @toinux
- *
- * 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 "keycodes.h"
-#include "oled.h"
-
-oled_rotation_t oled_init_user(oled_rotation_t rotation) {
- if (!is_keyboard_master()) {
- return OLED_ROTATION_180; // flips the display 180 degrees if offhand
- }
- return rotation;
-}
-
-
-void oled_render_mod_status(void) {
-
- const uint8_t modifiers = get_mods() | get_oneshot_mods();
-
- for (uint8_t i = 0; i < 2; i++) {
- oled_set_cursor(9,i);
- oled_write_P(gui_icon[(modifiers & MOD_MASK_GUI) ? 1 : 0][i], false);
- oled_write_P(ctrl_icon[(modifiers & MOD_MASK_CTRL) ? 1 : 0][i], false);
- oled_set_cursor(9,i+2);
- oled_write_P(alt_icon[(modifiers & MOD_MASK_ALT) ? 1 : 0][i], false);
- oled_write_P(shift_icon[(modifiers & MOD_MASK_SHIFT) ? 1 : 0][i], false);
- }
-
-}
-
-void oled_render_layer_state(void) {
-
- char c = 0x9F - get_highest_layer(layer_state|default_layer_state);
-
- oled_set_cursor(20,0);
- oled_write_char(0X00, false);
-
- oled_set_cursor(20,1);
- oled_write_char(c, false);
- c += 32;
- oled_set_cursor(20,2);
- oled_write_char(c, false);
- c += 32;
- oled_set_cursor(20,3);
- oled_write_char(c, false);
-
-}
-
-void oled_render_led_state(void) {
- // oled_advance_page(false) instead of oled_write_ln_P to not break OLED_TIMEOUT
- oled_write_P(PSTR("NUM"), host_keyboard_led_state().num_lock);
- oled_advance_page(false);
- oled_write_P(PSTR("CAP"), host_keyboard_led_state().caps_lock);
- oled_advance_page(false);
- oled_write_P(PSTR("SCL"), host_keyboard_led_state().scroll_lock);
- oled_advance_page(false);
-}
-
-uint8_t last_row = 0;
-uint8_t last_col = 0;
-
-void set_keylog(uint16_t keycode, keyrecord_t *record) {
- last_row = record->event.key.row;
- last_col = record->event.key.col;
-}
-
-void oled_render_keylog(void) {
- oled_write_char(last_row + '0', false);
- oled_write_char('x', false);
- oled_write_char(last_col + '0', false);
-}
-
-void oled_render_logo(void) {
- static const char PROGMEM kpu_logo[][3] = {
- {0x82, 0x83, 0},
- {0x80, 0x81, 0},
- {0xa0, 0xa1, 0},
- {0xc0, 0xc1, 0}
- };
- for (uint8_t i = 0; i < 4; i++) {
- oled_write_ln_P(kpu_logo[i], false);
- }
-
-}
-
-bool oled_task_user(void) {
- if (is_keyboard_master ()) {
- oled_render_led_state();
- oled_render_keylog();
- oled_render_mod_status();
- oled_render_layer_state();
- } else {
- oled_render_logo();
- oled_scroll_right();
- oled_scroll_set_speed(4);
- }
- return false;
-}
diff --git a/keyboards/crkbd/keymaps/toinux/oled.h b/keyboards/crkbd/keymaps/toinux/oled.h
deleted file mode 100644
index 30be16e602..0000000000
--- a/keyboards/crkbd/keymaps/toinux/oled.h
+++ /dev/null
@@ -1,71 +0,0 @@
-/* Copyright 2022 @toinux
- *
- * 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
-
-static const char PROGMEM ctrl_icon[2][2][4] = {
- {
- // off
- {0x93, 0x94, 0x95, 0},
- {0xB3, 0xB4, 0xB5, 0},
- },
- {
- // on
- {0x8F ,0x90, 0x91, 0},
- {0xAF ,0xB0, 0xB1, 0},
- }
-};
-
-static const char PROGMEM shift_icon[2][2][4] = {
- {
- // off
- {0xD3, 0xD4, 0xB5, 0},
- {0xA8, 0xA9, 0xD5, 0},
- },
- {
- // on
- {0xCF ,0xD0, 0xB1, 0},
- {0xC8 ,0xC9, 0xD1, 0},
- }
-};
-
-static const char PROGMEM gui_icon[2][2][4] = {
- {
- // off
- {0x92, 0x8C, 0x8D, 0},
- {0xB2, 0xAC, 0xAD, 0},
- },
- {
- // on
- {0x8E ,0x8A, 0x8B, 0},
- {0xAE ,0xAA, 0xAB, 0},
- }
-};
-
-static const char PROGMEM alt_icon[2][2][4] = {
- {
- // off
- {0xB2, 0xCC, 0xCD, 0},
- {0xD2, 0x88, 0x89, 0},
- },
- {
- // on
- {0xAE ,0xCA, 0xCB, 0},
- {0xCE ,0x86, 0x87, 0},
- }
-};
-
-void set_keylog(uint16_t keycode, keyrecord_t *record);
diff --git a/keyboards/crkbd/keymaps/toinux/rgb.c b/keyboards/crkbd/keymaps/toinux/rgb.c
deleted file mode 100644
index 2b1a226602..0000000000
--- a/keyboards/crkbd/keymaps/toinux/rgb.c
+++ /dev/null
@@ -1,72 +0,0 @@
-/* Copyright 2022 @toinux
- *
- * 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 "keycodes.h"
-
-static const char gaming_leds[] = {18, 22, 19, 16};
-static const char gaming2_leds[] = {23, 18, 17, 10, 9, 22, 19, 16, 11, 8};
-static const char nav_leds[] = {38, 43, 44, 46};
-static const char fun_leds[] = {45, 44, 37, 46, 43, 38, 47, 42, 39, 40};
-static const char mouse_leds[] = {11, 16, 17, 19};
-static const char adjust_leds[] = {6, 33};
-
-bool rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) {
- if (host_keyboard_led_state().caps_lock) {
- rgb_matrix_set_color(26, RGB_RED);
- }
- switch(get_highest_layer(layer_state|default_layer_state)) {
- case _GAMING:
- if (is_keyboard_master()) {
- for (uint8_t i = 0; i < 4; i++) {
- rgb_matrix_set_color(gaming_leds[i], 0x88, 0x00, 0x00);
- }
- }
- break;
- case _GAMING2:
- if (is_keyboard_master()) {
- for (uint8_t i = 0; i < 10; i++) {
- rgb_matrix_set_color(gaming2_leds[i], RGB_GREEN);
- }
- }
- break;
- case _NAV:
- for (uint8_t i = 0; i < 4; i++) {
- rgb_matrix_set_color(nav_leds[i], RGB_BLUE);
- }
- break;
- case _FUN:
- for (uint8_t i = 0; i < 10; i++) {
- rgb_matrix_set_color(fun_leds[i], RGB_GREEN);
- }
- break;
- case _ADJUST:
- for (uint8_t i = 0; i < 2; i++) {
- rgb_matrix_set_color(adjust_leds[i], RGB_RED);
- }
- break;
- case _MOUSE:
- if (is_keyboard_master()) {
- for (uint8_t i = 0; i < 4; i++) {
- rgb_matrix_set_color(mouse_leds[i], RGB_PURPLE);
- }
- }
- break;
-
- }
- return false;
-}
diff --git a/keyboards/crkbd/keymaps/toinux/rules.mk b/keyboards/crkbd/keymaps/toinux/rules.mk
deleted file mode 100644
index 59b90c792c..0000000000
--- a/keyboards/crkbd/keymaps/toinux/rules.mk
+++ /dev/null
@@ -1,8 +0,0 @@
-MOUSEKEY_ENABLE = yes # Mouse keys
-RGBLIGHT_ENABLE = no
-RGB_MATRIX_ENABLE = yes
-OLED_ENABLE = yes
-LTO_ENABLE = yes
-BOOTLOADER = atmel-dfu
-
-SRC += ./oled.c ./rgb.c
diff --git a/keyboards/crkbd/keymaps/tominabox1/keymap.c b/keyboards/crkbd/keymaps/tominabox1/keymap.c
deleted file mode 100755
index d58911194e..0000000000
--- a/keyboards/crkbd/keymaps/tominabox1/keymap.c
+++ /dev/null
@@ -1,46 +0,0 @@
-#include QMK_KEYBOARD_H
-#include "tominabox1.h"
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [_BASE] = LAYOUT_wrapper(
- ___________________CRKBD1__________________,
- ___________________CRKBD2__________________,
- ___________________CRKBD3__________________,
- ___________________CRKBD4__________________
- ),
-
- [_RAISE] = LAYOUT_wrapper(
- ___________________RAISE1__________________,
- ___________________RAISE2__________________,
- ___________________CRKBD_RAISE3____________,
- ___________________CRKBD_RAISE4____________
- ),
-
- [_LOWER] = LAYOUT_wrapper(
- _________________LOWER_1___________________,
- _________________LOWER_2___________________,
- ___________________CRKBD_LOW3______________,
- ___________________CRKBD_LOW4______________
- ),
-
- [_ADJUST] = LAYOUT_wrapper(
- ___________________ADJST1__________________,
- ___________________CRKBD_ADJST2____________,
- ___________________CRKBD_ADJST3____________,
- ___________________CRKBD_ADJST4____________
- ),
-
- [_ARROW] = LAYOUT_wrapper(
- ___________________ARROW1__________________,
- ___________________ARROW2__________________,
- ___________________ARROW3__________________,
- ___________________ARROW4__________________
- ),
- [_FKEY] = LAYOUT_wrapper(
- ___________________FKEY1___________________,
- ___________________FKEY2___________________,
- ___________________CRKBD_FKEY3_____________,
- ___________________CRKBD_FKEY4_____________
- )
-
-};
diff --git a/keyboards/crkbd/keymaps/vlukash_trackpad_right/keymap.c b/keyboards/crkbd/keymaps/vlukash_trackpad_right/keymap.c
index 2d2535cda9..5f95ad497f 100644
--- a/keyboards/crkbd/keymaps/vlukash_trackpad_right/keymap.c
+++ b/keyboards/crkbd/keymaps/vlukash_trackpad_right/keymap.c
@@ -1,13 +1,4 @@
#include QMK_KEYBOARD_H
-#include "bootloader.h"
-#include "mousekey.h"
-#include "pointing_device.h"
-#include "report.h"
-
-#ifdef PROTOCOL_LUFA
- #include "lufa.h"
- #include "split_util.h"
-#endif
extern bool isScrollMode;
diff --git a/keyboards/crkbd/rev1/keymaps/dvorak_42_key/config.h b/keyboards/crkbd/rev1/keymaps/dvorak_42_key/config.h
deleted file mode 100644
index fcf6befb16..0000000000
--- a/keyboards/crkbd/rev1/keymaps/dvorak_42_key/config.h
+++ /dev/null
@@ -1,44 +0,0 @@
-// Copyright 2022 LucW (@luc-languagetools)
-// SPDX-License-Identifier: GPL-2.0-or-later
-
-
-#pragma once
-
-
-/* Select hand configuration */
-
-// #define MASTER_LEFT
-#define MASTER_RIGHT
-// #define EE_HANDS
-
-//#define QUICK_TAP_TERM 0
-//#define TAPPING_TERM 100
-
-// #define DOUBLE_TAP_SHIFT_TURNS_ON_CAPS_WORD
-#define BOTH_SHIFTS_TURNS_ON_CAPS_WORD
-
-// MOUSE SETTINGS
-// ==============
-
-#define MOUSEKEY_TIME_TO_MAX 200
-
-#define RGBLIGHT_LAYERS
-
-#ifdef RGBLIGHT_ENABLE
- #define RGBLIGHT_LIMIT_VAL 90
- // #define RGBLIGHT_LIMIT_VAL 0
- #define RGBLIGHT_HUE_STEP 10
- #define RGBLIGHT_SAT_STEP 17
- #define RGBLIGHT_VAL_STEP 17
-#endif
-
-#ifdef RGB_MATRIX_ENABLE
- // #define ENABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON
- // #define RGB_MATRIX_KEYPRESSES // reacts to keypresses
- // #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE
- // #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE
- // #define ENABLE_RGB_MATRIX_SPLASH
- //#define ENABLE_RGB_MATRIX_SOLID_SPLASH
-#endif
-
-#define OLED_FONT_H "keyboards/crkbd/lib/glcdfont.c"
diff --git a/keyboards/crkbd/rev1/keymaps/dvorak_42_key/keymap.c b/keyboards/crkbd/rev1/keymaps/dvorak_42_key/keymap.c
deleted file mode 100644
index 43bbd9a617..0000000000
--- a/keyboards/crkbd/rev1/keymaps/dvorak_42_key/keymap.c
+++ /dev/null
@@ -1,289 +0,0 @@
-// Copyright 2022 LucW (@luc-languagetools)
-// SPDX-License-Identifier: GPL-2.0-or-later
-
-
-#include QMK_KEYBOARD_H
-#include <stdio.h>
-#include "dvorak_42_key.h"
-
-// to build: qmk compile -kb crkbd/rev1 -km dvorak_42_key
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [BASE] = LAYOUT_split_3x6_3(
- //,-----------------------------------------------------. ,-----------------------------------------------------.
- OSL(VSCODE), KC_QUOTE, KC_COMMA, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_TAB,
- //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
-OSL(SHELL_NAV), KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, TD(TD_DEL_WORD_DEL),
- //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
-OSM(MOD_LSFT),KC_SEMICOLON, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, OSM(MOD_LSFT),
- //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
- MO(BROWSER_CONTROL), MO(COMBINED),MO(KEYNAV), KC_ENTER, KC_SPACE, OSL(SHORTCUTS)
- //`--------------------------' `--------------------------'
-
- ),
-
- [KEYNAV] = LAYOUT_split_3x6_3(
- //,-----------------------------------------------------. ,-----------------------------------------------------.
-KC_ESC, RCTL(KC_ENTER), RCTL(KC_K), RCTL(KC_Z), RCTL(KC_S), RCTL(KC_N), KC_TRNS, KC_HOME, KC_UP, KC_END, KC_PGUP, KC_DELETE,
- //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
-KC_TRNS, MO(KEYSEL), KC_TRNS, RSFT(KC_TAB), KC_TAB, RCTL(KC_F), LCTL(KC_LEFT), KC_LEFT, KC_DOWN, KC_RIGHT, LCTL(KC_RIGHT), KC_BSPC,
- //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
-KC_TRNS, RCTL(KC_P), RCTL(KC_O), RCTL(KC_A), RCTL(KC_B), NP_DUPE_LINE, KC_TRNS, RCTL(KC_C), RCTL(KC_X), RCTL(KC_V), KC_PGDN, RCTL(KC_DELETE),
- //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
- //`--------------------------' `--------------------------'
- ),
-
-
- [KEYSEL] = LAYOUT_split_3x6_3(
- //,-----------------------------------------------------. ,-----------------------------------------------------.
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RSFT(KC_HOME), RSFT(KC_UP), RSFT(KC_END), RSFT(KC_PGUP), KC_TRNS,
- //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RSFT(RCTL(KC_LEFT)), RSFT(KC_LEFT), RSFT(KC_DOWN), RSFT(KC_RIGHT), RSFT(RCTL(KC_RIGHT)), KC_TRNS,
- //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RCTL(KC_C), RCTL(KC_X), RCTL(KC_V), RSFT(KC_PGDN), KC_TRNS,
- //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
- //`--------------------------' `--------------------------'
- ),
-
-
- [SHELL_NAV] = LAYOUT_split_3x6_3(
- //,-----------------------------------------------------. ,-----------------------------------------------------.
-TO(BASE),SHELL_GIT_DIFF, SHELL_PGREP, SHELL_PLESS, SHELL_LESS, KC_TRNS, RCTL(KC_D), KC_HOME, KC_UP, KC_END, RCTL(KC_L), RCTL(KC_X),
- //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
-OSL(SHELL_SCREEN),SHELL_GIT_STATUS,SHELL_CDPRE,SHELL_LSLTR,SHELL_LS, SHELL_LSLA, LALT(KC_B), KC_LEFT, KC_DOWN, KC_RIGHT, LALT(KC_F), RCTL(KC_W),
- //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
-KC_TRNS,SHELL_SCREEN_LIST, SHELL_SCREENRD, SHELL_SCREEN_NEW, SHELL_TAILF, KC_TRNS, RCTL(KC_U), LALT(KC_DOT), RCTL(KC_R), KC_BTN2, RCTL(KC_K), RCTL(KC_C),
- //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
- KC_TRNS, KC_TRNS, KC_TRNS, LCTL(LSFT(KC_V)), KC_TRNS, KC_TRNS
- //`--------------------------' `--------------------------'
- ),
-
- [SHELL_SCREEN] = LAYOUT_split_3x6_3(
- //,-----------------------------------------------------. ,-----------------------------------------------------.
-TO(BASE),KC_TRNS, SCREEN_READREG_3, SCREEN_READREG_2, SCREEN_READREG_1,KC_TRNS, KC_TRNS, SCREEN_7, SCREEN_8, SCREEN_9, SCREEN_RENAME, KC_TRNS,
- //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
-TO(BASE),KC_TRNS,SCREEN_PASTEREG_3,SCREEN_PASTEREG_2,SCREEN_PASTEREG_1,SCREEN_DETACH, SCREEN_TAB_LEFT, SCREEN_4, SCREEN_5, SCREEN_6, SCREEN_TAB_RIGHT, SCREEN_COPY_MODE,
- //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, SCREEN_1, SCREEN_2, SCREEN_3, SCREEN_NUMBER, SCREEN_PASTE,
- //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
- KC_TRNS, KC_TRNS, KC_TRNS, SCREEN_KILL, SCREEN_NEW_TAB, SCREEN_0
- //`--------------------------' `--------------------------'
- ),
-
- [VSCODE] = LAYOUT_split_3x6_3(
- //,-----------------------------------------------------. ,-----------------------------------------------------.
-TO(BASE), KC_TRNS, VS_FIND_FILES, VS_CMT_BLOCK, VS_CMT_LINE, VS_BM_LISTALL, VS_COPYLINEDOWN, VS_REFERENCES, VS_DEFINITION, VS_IMPLEMENTATION, VS_LINE, VS_BRACKET,
- //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
-KC_TRNS, KC_TRNS, VS_TOGGLE_TERMINAL, VS_FOCUS_TERMINAL, VS_FOCUS_EDITOR, VS_BM_LIST, VS_CLOSETAB, VS_TABLEFT, VS_TABRIGHT, VS_SYMBOLEDITOR, VS_FILE, VS_BACK,
- //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
-KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, VS_BM_CLEARALL, VS_JUMPY, VS_BM_PREV, VS_BM_NEXT, VS_GROUP_1, VS_GROUP_2, VS_BM_TOGGLE,
-//|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
- KC_TRNS, VS_DEL_LEFT, VS_DEL_RIGHT, VS_DEL_LINE, VS_JUMPY, VS_COMMANDS
- //`--------------------------' `--------------------------'
- ),
-
- [COMBINED] = LAYOUT_split_3x6_3(
- //,-----------------------------------------------------. ,-----------------------------------------------------.
- KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_PLUS, KC_7, KC_8, KC_9, KC_ASTR, KC_PIPE,
- //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
- KC_GRAVE, KC_LPRN, KC_RPRN, KC_LBRC, KC_RBRC, KC_UNDS, KC_MINUS, KC_4, KC_5, KC_6, KC_SLSH, KC_BSLS,
- //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
- KC_CIRC, KC_COLN, KC_DQUO, KC_LCBR, KC_RCBR, KC_AMPR, KC_EQUAL, KC_1, KC_2, KC_3, KC_QUES, KC_DOT,
- //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_0
- //`--------------------------' `--------------------------'
- ),
-
- // chrome OS keyboard shortcuts: https://support.google.com/chromebook/answer/183101?hl=en
- // search key == windows key
- [BROWSER_CONTROL] = LAYOUT_split_3x6_3(
- //,-----------------------------------------------------. ,-----------------------------------------------------.
-KC_TRNS, KC_TRNS, KC_BTN3, KC_MS_U, KC_BTN1, KC_BTN2, KC_UP, KC_PGUP, KC_PGDN, KC_MS_WH_UP, KC_TRNS, KC_TRNS,
- //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
- CO_WS_LEFT, KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_R, KC_TRNS, KC_DOWN, RCTL(KC_PGUP), RCTL(KC_PGDN), KC_MS_WH_DOWN, LALT(KC_LEFT), CO_WS_RIGHT,
- //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
-KC_TRNS, RCTL(LSFT(KC_TAB)), RCTL(KC_TAB), WINDOWS10_WORKSPACE_LEFT, WINDOWS10_WORKSPACE_RIGHT, WINDOWS10_TASK_VIEW, KC_TRNS, RCTL(KC_1), RCTL(KC_9), LCTL(KC_L), KC_F5, KC_TRNS,
- //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
- KC_TRNS, KC_TRNS, KC_TRNS, RCTL(KC_W), RCTL(KC_T), KC_TRNS
- //`--------------------------' `--------------------------'
- ),
-
-
- [SHORTCUTS] = LAYOUT_split_3x6_3(
- //,-----------------------------------------------------. ,-----------------------------------------------------.
- KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, MEH(KC_F1), MEH(KC_F2), MEH(KC_F3), MEH(KC_F4), MEH(KC_F5), MEH(KC_F6),
- //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
- KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, MEH(KC_F7), MEH(KC_F8), MEH(KC_F9), MEH(KC_F10), MEH(KC_F11), MEH(KC_F12),
- //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
-KC_TRNS, OSM(MOD_LSFT), OSM(MOD_LGUI), OSM(MOD_LALT), OSM(MOD_LCTL), KC_TRNS, MEH(KC_F13), MEH(KC_F14), MEH(KC_F15), MEH(KC_F16), MEH(KC_F17), MEH(KC_F18),
- //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, TO(SHORTCUTS), TO(BASE)
- //`--------------------------' `--------------------------'
- ),
-
- /*
- // empty layer
- [15] = LAYOUT_split_3x6_3(
- //,-----------------------------------------------------. ,-----------------------------------------------------.
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
- //`--------------------------' `--------------------------'
- ),
- */
-
-
-};
-
-#ifdef OLED_ENABLE
-oled_rotation_t oled_init_user(oled_rotation_t rotation) {
- if (!is_keyboard_master()) {
- return OLED_ROTATION_180; // flips the display 180 degrees if offhand
- }
- // return rotation;
- return OLED_ROTATION_180;
-}
-
-
-#define DISPLAY_LAYER_NAME(LAYER_NAME, LAYER_STRING) \
- if(get_highest_layer(layer_state) == LAYER_NAME) { \
- oled_write_ln_P(PSTR(LAYER_STRING), false); \
- return;\
- }\
-
-
-void oled_render_layer_state(void) {
- // if caps word is enabled, show
- if(is_caps_word_on()) {
- oled_write_ln_P(PSTR("CAPS WORD"), false);
- return;
- }
- DISPLAY_LAYER_NAME(SHORTCUTS, "SHORTCUTS");
- DISPLAY_LAYER_NAME(VSCODE, "VSCODE");
- DISPLAY_LAYER_NAME(COMBINED, "SYMBOLS");
- DISPLAY_LAYER_NAME(BROWSER_CONTROL, "BROWSER");
- DISPLAY_LAYER_NAME(SHELL_SCREEN, "SHELL SCREEN");
- DISPLAY_LAYER_NAME(SHELL_NAV, "SHELL NAV");
- DISPLAY_LAYER_NAME(KEYSEL, "KEYSEL");
- DISPLAY_LAYER_NAME(KEYNAV, "KEYNAV");
- DISPLAY_LAYER_NAME(BASE, "BASE");
-
-}
-
-const rgblight_segment_t PROGMEM rgb_layer_off[] = RGBLIGHT_LAYER_SEGMENTS(
- {0, 0, 0}
-);
-
-const rgblight_segment_t PROGMEM rgb_layer_blue[] = RGBLIGHT_LAYER_SEGMENTS(
- {0, RGBLED_NUM, HSV_BLUE}
-);
-
-const rgblight_segment_t PROGMEM rgb_layer_purple[] = RGBLIGHT_LAYER_SEGMENTS(
- {0, RGBLED_NUM, HSV_PURPLE}
-);
-
-const rgblight_segment_t PROGMEM rgb_layer_red[] = RGBLIGHT_LAYER_SEGMENTS(
- {0, RGBLED_NUM, HSV_RED}
-);
-
-const rgblight_segment_t PROGMEM rgb_layer_orange[] = RGBLIGHT_LAYER_SEGMENTS(
- {0, RGBLED_NUM, HSV_ORANGE}
-);
-
-const rgblight_segment_t PROGMEM rgb_layer_yellow[] = RGBLIGHT_LAYER_SEGMENTS(
- {0, RGBLED_NUM, HSV_YELLOW}
-);
-
-const rgblight_segment_t PROGMEM rgb_layer_green[] = RGBLIGHT_LAYER_SEGMENTS(
- {0, RGBLED_NUM, HSV_GREEN}
-);
-
-const rgblight_segment_t PROGMEM rgb_layer_pink[] = RGBLIGHT_LAYER_SEGMENTS(
- {0, RGBLED_NUM, HSV_PINK}
-);
-
-
-// Now define the array of layers. Later layers take precedence
-const rgblight_segment_t* const PROGMEM my_rgb_layers[] = RGBLIGHT_LAYERS_LIST(
- rgb_layer_off,
- rgb_layer_blue,
- rgb_layer_purple,
- rgb_layer_red,
- rgb_layer_orange,
- rgb_layer_yellow,
- rgb_layer_green,
- rgb_layer_pink
-);
-
-void keyboard_post_init_user(void) {
- // Enable the LED layers
- rgblight_layers = my_rgb_layers;
-}
-
-layer_state_t default_layer_state_set_user(layer_state_t state) {
- rgblight_set_layer_state(0, layer_state_cmp(state, BASE));
- return state;
-}
-
-layer_state_t layer_state_set_user(layer_state_t state) {
-
-
- rgblight_set_layer_state(1, layer_state_cmp(state, KEYNAV));
- rgblight_set_layer_state(2, layer_state_cmp(state, KEYSEL));
-
-
- rgblight_set_layer_state(3, layer_state_cmp(state, SHELL_NAV));
- rgblight_set_layer_state(4, layer_state_cmp(state, SHELL_SCREEN));
-
- rgblight_set_layer_state(5, layer_state_cmp(state, SHORTCUTS));
-
- rgblight_set_layer_state(6, layer_state_cmp(state, VSCODE));
-
- return state;
-}
-
-void caps_word_set_user(bool active) {
- // will enable/disable rgb layer 7 based on whether caps word is active
- rgblight_set_layer_state(7, active);
-}
-
-void render_bootmagic_status(bool status) {
- /* Show Ctrl-Gui Swap options */
- static const char PROGMEM logo[][2][3] = {
- {{0x97, 0x98, 0}, {0xb7, 0xb8, 0}},
- {{0x95, 0x96, 0}, {0xb5, 0xb6, 0}},
- };
- if (status) {
- oled_write_ln_P(logo[0][0], false);
- oled_write_ln_P(logo[0][1], false);
- } else {
- oled_write_ln_P(logo[1][0], false);
- oled_write_ln_P(logo[1][1], false);
- }
-}
-
-void oled_render_logo(void) {
- static const char PROGMEM crkbd_logo[] = {
- 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, 0x90, 0x91, 0x92, 0x93, 0x94,
- 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, 0xb0, 0xb1, 0xb2, 0xb3, 0xb4,
- 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, 0xd0, 0xd1, 0xd2, 0xd3, 0xd4,
- 0};
- oled_write_P(crkbd_logo, false);
-}
-
-bool oled_task_user(void) {
- if (is_keyboard_master( )) {
- oled_render_layer_state();
- } else {
- oled_render_logo();
- }
- return false;
-}
-
-#endif // OLED_ENABLE
diff --git a/keyboards/crkbd/rev1/keymaps/dvorak_42_key/rules.mk b/keyboards/crkbd/rev1/keymaps/dvorak_42_key/rules.mk
deleted file mode 100644
index 9fe565335a..0000000000
--- a/keyboards/crkbd/rev1/keymaps/dvorak_42_key/rules.mk
+++ /dev/null
@@ -1,8 +0,0 @@
-# Copyright 2022 LucW (@luc-languagetools)
-# SPDX-License-Identifier: GPL-2.0-or-later
-
-MOUSEKEY_ENABLE = yes # Mouse keys
-RGBLIGHT_ENABLE = yes # Enable WS2812 RGB underlight.
-# RGB_MATRIX_ENABLE = no
-OLED_ENABLE = yes
-LTO_ENABLE = yes
diff --git a/keyboards/crowboard/rules.mk b/keyboards/crowboard/rules.mk
index 37ad1d4c60..6e7633bfe0 100644
--- a/keyboards/crowboard/rules.mk
+++ b/keyboards/crowboard/rules.mk
@@ -1 +1 @@
-PICO_INTRINSICS_ENABLED = no # ATM Unsupported by ChibiOS!
+# This file intentionally left blank
diff --git a/keyboards/custommk/ergostrafer/info.json b/keyboards/custommk/ergostrafer/info.json
index 590925065e..92d1fe99e8 100644
--- a/keyboards/custommk/ergostrafer/info.json
+++ b/keyboards/custommk/ergostrafer/info.json
@@ -4,6 +4,9 @@
"maintainer": "customMK",
"bootloader": "stm32-dfu",
"diode_direction": "ROW2COL",
+ "eeprom": {
+ "driver": "spi"
+ },
"features": {
"bootmagic": true,
"command": false,
diff --git a/keyboards/custommk/ergostrafer/rules.mk b/keyboards/custommk/ergostrafer/rules.mk
index ee519ea8b5..72f75f4367 100644
--- a/keyboards/custommk/ergostrafer/rules.mk
+++ b/keyboards/custommk/ergostrafer/rules.mk
@@ -1,3 +1 @@
-EEPROM_DRIVER = spi
-
AUDIO_DRIVER = pwm_hardware
diff --git a/keyboards/custommk/evo70_r2/config.h b/keyboards/custommk/evo70_r2/config.h
index 25ab789d75..62606cf1ee 100644
--- a/keyboards/custommk/evo70_r2/config.h
+++ b/keyboards/custommk/evo70_r2/config.h
@@ -26,6 +26,7 @@
#define MATRIX_ROW_PINS { A8, A1, A2, B1, A7 }
// FRAM configuration
+#define EEPROM_SPI_MB85RS64V
#define EXTERNAL_EEPROM_SPI_SLAVE_SELECT_PIN A0
#define EXTERNAL_EEPROM_SPI_CLOCK_DIVISOR 4 // 48MHz / 4 = 12MHz; max supported by MB85R64 is 20MHz
diff --git a/keyboards/custommk/evo70_r2/info.json b/keyboards/custommk/evo70_r2/info.json
index 18c618abc6..a11daef092 100644
--- a/keyboards/custommk/evo70_r2/info.json
+++ b/keyboards/custommk/evo70_r2/info.json
@@ -24,6 +24,9 @@
"device_version": "1.0.0"
},
"diode_direction": "ROW2COL",
+ "eeprom": {
+ "driver": "spi"
+ },
"processor": "STM32F411",
"bootloader": "stm32-dfu",
"rgblight": {
diff --git a/keyboards/custommk/evo70_r2/rules.mk b/keyboards/custommk/evo70_r2/rules.mk
index b79d08c6b7..193fe4f1a4 100644
--- a/keyboards/custommk/evo70_r2/rules.mk
+++ b/keyboards/custommk/evo70_r2/rules.mk
@@ -3,8 +3,6 @@ AUDIO_DRIVER = pwm_hardware
# project specific files
SRC += matrix.c
-EEPROM_DRIVER = spi
-
QUANTUM_PAINTER_DRIVERS = st7735_spi
CUSTOM_MATRIX = lite
diff --git a/keyboards/cutie_club/borsdorf/keymaps/zyber/keymap.c b/keyboards/cutie_club/borsdorf/keymaps/zyber/keymap.c
deleted file mode 100644
index 468a16f92d..0000000000
--- a/keyboards/cutie_club/borsdorf/keymaps/zyber/keymap.c
+++ /dev/null
@@ -1,35 +0,0 @@
-/* Copyright 2020 Cutie Club
- *
- * 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 "zyber.h"
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- /* Base */
- [0] = LAYOUT_rshift(
- KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, LGUI(KC_LEFT),
- 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, LGUI(KC_RIGHT),
- L1_EXPL, 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_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP,
- KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RIGHT
- ),
- [1] = LAYOUT_rshift(
- QK_BOOT, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_VOLU,
- KC_GRV, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLD,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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/darkproject/kd87a_bfg_edition/config.h b/keyboards/darkproject/kd87a_bfg_edition/config.h
index 335648df9a..4ac83ab9f6 100644
--- a/keyboards/darkproject/kd87a_bfg_edition/config.h
+++ b/keyboards/darkproject/kd87a_bfg_edition/config.h
@@ -25,7 +25,6 @@
/* External spi flash */
#define EXTERNAL_FLASH_SPI_SLAVE_SELECT_PIN B14
-#define WEAR_LEVELING_BACKING_SIZE (8 * 1024)
/* SPI Config for LED Driver */
#define SPI_DRIVER SPIDQ
@@ -38,7 +37,6 @@
#define DRIVER_1_EN C13
#define DRIVER_2_EN C13
-#define DRIVER_COUNT 2
#define DRIVER_1_LED_TOTAL 68
#define DRIVER_2_LED_TOTAL 54
#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL)
diff --git a/keyboards/darkproject/kd87a_bfg_edition/info.json b/keyboards/darkproject/kd87a_bfg_edition/info.json
index 1cf428a97f..94717c6baa 100644
--- a/keyboards/darkproject/kd87a_bfg_edition/info.json
+++ b/keyboards/darkproject/kd87a_bfg_edition/info.json
@@ -7,6 +7,13 @@
"matrix": [1, 3]
},
"diode_direction": "COL2ROW",
+ "eeprom": {
+ "driver": "wear_leveling",
+ "wear_leveling": {
+ "driver": "spi_flash",
+ "backing_size": 8192
+ }
+ },
"features": {
"bootmagic": true,
"extrakey": true,
@@ -174,9 +181,6 @@
"pid": "0xE393",
"vid": "0x342D"
},
- "eeprom": {
- "driver": "wear_leveling"
- },
"community_layouts": ["tkl_ansi"],
"layouts": {
"LAYOUT_tkl_ansi": {
diff --git a/keyboards/darkproject/kd87a_bfg_edition/rules.mk b/keyboards/darkproject/kd87a_bfg_edition/rules.mk
index 002458405e..6e7633bfe0 100644
--- a/keyboards/darkproject/kd87a_bfg_edition/rules.mk
+++ b/keyboards/darkproject/kd87a_bfg_edition/rules.mk
@@ -1 +1 @@
-WEAR_LEVELING_DRIVER = spi_flash
+# This file intentionally left blank
diff --git a/keyboards/dc01/left/rules.mk b/keyboards/dc01/left/rules.mk
index 72485a3dd6..3a9422733c 100644
--- a/keyboards/dc01/left/rules.mk
+++ b/keyboards/dc01/left/rules.mk
@@ -11,5 +11,5 @@ BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
AUDIO_ENABLE = no # Audio output
CUSTOM_MATRIX = yes # Use custom matrix
-SRC += matrix.c \
- i2c_master.c
+SRC += matrix.c
+I2C_DRIVER_REQUIRED = yes
diff --git a/keyboards/deng/thirty/config.h b/keyboards/deng/thirty/config.h
index 20e6673dd2..8ec8f6b0d3 100644
--- a/keyboards/deng/thirty/config.h
+++ b/keyboards/deng/thirty/config.h
@@ -78,8 +78,3 @@
#define ENABLE_RGB_MATRIX_SOLID_SPLASH
#define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH
#endif
-
-/* VIA */
-#ifdef VIA_ENABLE
-#define DYNAMIC_KEYMAP_LAYER_COUNT 8
-#endif
diff --git a/keyboards/deng/thirty/info.json b/keyboards/deng/thirty/info.json
index 8836273865..b93881c086 100644
--- a/keyboards/deng/thirty/info.json
+++ b/keyboards/deng/thirty/info.json
@@ -16,6 +16,9 @@
"rows": ["B15", "A5", "A3", "A15", "B7", "B8"]
},
"diode_direction": "COL2ROW",
+ "dynamic_keymap": {
+ "layer_count": 8
+ },
"backlight": {
"pin": "B11",
"levels": 5,
diff --git a/keyboards/dichotomy/rules.mk b/keyboards/dichotomy/rules.mk
index 040710a460..bfa5252a03 100755
--- a/keyboards/dichotomy/rules.mk
+++ b/keyboards/dichotomy/rules.mk
@@ -14,4 +14,4 @@ NKRO_ENABLE = yes # Enable N-Key Rollover
# # project specific files
SRC += matrix.c
-QUANTUM_LIB_SRC += uart.c
+UART_DRIVER_REQUIRED = yes
diff --git a/keyboards/dm9records/lain/config.h b/keyboards/dm9records/lain/config.h
index e34b4d34ab..ddb4b6702f 100644
--- a/keyboards/dm9records/lain/config.h
+++ b/keyboards/dm9records/lain/config.h
@@ -12,5 +12,3 @@
#define LOCKING_SUPPORT_ENABLE
/* Locking resynchronize hack */
#define LOCKING_RESYNC_ENABLE
-
-#define DYNAMIC_KEYMAP_LAYER_COUNT 6
diff --git a/keyboards/dm9records/lain/info.json b/keyboards/dm9records/lain/info.json
index 8ae8a33b44..250eb2ddaf 100644
--- a/keyboards/dm9records/lain/info.json
+++ b/keyboards/dm9records/lain/info.json
@@ -13,6 +13,9 @@
"rows": ["C6", "D7", "D6", "D4"]
},
"diode_direction": "COL2ROW",
+ "dynamic_keymap": {
+ "layer_count": 6
+ },
"processor": "atmega32u4",
"bootloader": "atmel-dfu",
"layouts": {
diff --git a/keyboards/dm9records/plaid/keymaps/gipsy-king/keymap.c b/keyboards/dm9records/plaid/keymaps/gipsy-king/keymap.c
index 0d1ec2b762..a91664f0c9 100644
--- a/keyboards/dm9records/plaid/keymaps/gipsy-king/keymap.c
+++ b/keyboards/dm9records/plaid/keymaps/gipsy-king/keymap.c
@@ -15,8 +15,6 @@
*/
#include QMK_KEYBOARD_H
-#include "mousekey.h"
-
enum plaid_layers {
_QWERTY,
diff --git a/keyboards/dmqdesign/spin/keymaps/spidey3_pad/keymap.c b/keyboards/dmqdesign/spin/keymaps/spidey3_pad/keymap.c
index dd452dae1a..4acb0ee59b 100644
--- a/keyboards/dmqdesign/spin/keymaps/spidey3_pad/keymap.c
+++ b/keyboards/dmqdesign/spin/keymaps/spidey3_pad/keymap.c
@@ -147,11 +147,12 @@ void keyboard_post_init_user(void) {
do_rgb_layers(layer_state, LAYER_BASE, LAYER_BASE_END);
}
-void shutdown_user(void) {
+bool shutdown_user(bool jump_to_bootloader) {
clear_rgb_layers();
rgblight_enable();
rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_LIGHT);
rgblight_sethsv_noeeprom(HSV_RED);
+ return false;
}
void spidey_glow(void) {
@@ -218,4 +219,3 @@ void post_process_record_user(uint16_t keycode, keyrecord_t *record) {
break;
}
}
-
diff --git a/keyboards/doio/kb16/rev2/rules.mk b/keyboards/doio/kb16/rev2/rules.mk
index 88879a4ffa..2145c9fbe1 100644
--- a/keyboards/doio/kb16/rev2/rules.mk
+++ b/keyboards/doio/kb16/rev2/rules.mk
@@ -25,7 +25,3 @@ RGB_MATRIX_ENABLE = yes
# Encoder enabled
ENCODER_ENABLE = yes
-
-# Wear-levelling driver
-EEPROM_DRIVER = wear_leveling
-WEAR_LEVELING_DRIVER = embedded_flash
diff --git a/keyboards/doio/kb30/config.h b/keyboards/doio/kb30/config.h
index a87532c459..2a1a827375 100644
--- a/keyboards/doio/kb30/config.h
+++ b/keyboards/doio/kb30/config.h
@@ -89,9 +89,6 @@
#define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH
#endif
-
-
-// #define DYNAMIC_KEYMAP_LAYER_COUNT 4
/*
* Feature disable options
* These options are also useful to firmware size reduction.
diff --git a/keyboards/doro67/multi/keymaps/konstantin/config.h b/keyboards/doro67/multi/keymaps/konstantin/config.h
deleted file mode 100644
index 3c2583e2d4..0000000000
--- a/keyboards/doro67/multi/keymaps/konstantin/config.h
+++ /dev/null
@@ -1,4 +0,0 @@
-#pragma once
-
-#define LAYER_FN
-#define LAYER_NUMPAD
diff --git a/keyboards/doro67/multi/keymaps/konstantin/keymap.c b/keyboards/doro67/multi/keymaps/konstantin/keymap.c
deleted file mode 100644
index 02687f8248..0000000000
--- a/keyboards/doro67/multi/keymaps/konstantin/keymap.c
+++ /dev/null
@@ -1,67 +0,0 @@
-#include QMK_KEYBOARD_H
-#include "konstantin.h"
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- /* Base layer
- * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
- * │Esc│ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │ \ │ ` │PSc│
- * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┼───┤
- * │ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │Bspc │Del│
- * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┤
- * │FnCaps│ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ Enter │PgU│
- * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┤
- * │LSft│RAG│ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │RShift│ ↑ │PgD│
- * ├────┼───┴┬──┴─┬─┴───┴───┴┬──┴─┬─┴───┴──┬┴───┼───┴┬─┬───┼───┼───┤
- * │LCtl│LGui│LAlt│ Space │FnLk│ Fn │RAlG│RCtl│ │ ← │ ↓ │ → │
- * └────┴────┴────┴──────────┴────┴────────┴────┴────┘ └───┴───┴───┘
- */
- [L_BASE] = LAYOUT_multi(
- KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS, KC_GRV, KC_PSCR,
- 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_BSPC, KC_DEL,
- FN_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_PGUP,
- KC_LSFT, RAL_RGU, 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_PGDN,
- KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, FNLK, FN, RAL_RGU, KC_RCTL, XXXXXXX, KC_LEFT, KC_DOWN, KC_RGHT
- ),
-
- /* Fn layer
- * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
- * │ │F1 │F2 │F3 │F4 │F5 │F6 │F7 │F8 │F9 │F10│F11│F12│Num│SLk│Pau│
- * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┼───┤
- * │ M4 │M2 │M↑ │M1 │M3 │M5 │ │UCM│ │Stp│Ply│Prv│Nxt│Clear│Ins│
- * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┤
- * │ │M← │M↓ │M→ │MW↑│ │ │ │ │ │ │ │ │Top│
- * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┤
- * │ │ │MA0│MA2│MW←│MW→│ │ │App│Vo-│Vo+│Mut│ │PgU│Btm│
- * ├────┼───┴┬──┴─┬─┴───┴───┴┬──┴─┬─┴───┴──┬┴───┼───┴┬─┬───┼───┼───┤
- * │ │DtPR│DtNA│ MW↓ │ │ │ │ │ │Hom│PgD│End│
- * └────┴────┴────┴──────────┴────┴────────┴────┴────┘ └───┴───┴───┘
- */
- [L_FN] = LAYOUT_multi(
- _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, NUMPAD, KC_SCRL, KC_PAUS,
- KC_BTN4, KC_BTN2, KC_MS_U, KC_BTN1, KC_BTN3, KC_BTN5, _______, UC_NEXT, _______, KC_MSTP, KC_MPLY, KC_MPRV, KC_MNXT, CLEAR, KC_INS,
- _______, KC_MS_L, KC_MS_D, KC_MS_R, KC_WH_U, _______, _______, _______, _______, _______, _______, _______, _______, TOP,
- _______, _______, KC_ACL0, KC_ACL2, KC_WH_L, KC_WH_R, _______, _______, KC_APP, KC_VOLD, KC_VOLU, KC_MUTE, _______, KC_PGUP, BOTTOM,
- _______, DST_P_R, DST_N_A, KC_WH_D, _______, _______, _______, _______, XXXXXXX, KC_HOME, KC_PGDN, KC_END
- ),
-
- /* Numpad layer
- * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
- * │ │ │ │ │ │ │ │P7 │P8 │P9 │P- │ − │ = │Num│ │ │
- * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┼───┤
- * │ │ │ │ │ │ │ │P4 │P5 │P6 │P+ │ ( │ ) │ │ │
- * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┤
- * │ │ │ │ │ │ │ │P1 │P2 │P3 │P* │ × │ PEnter │ │
- * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┤
- * │ │ │ │ │ │ │ │P0 │P0 │ , │P. │P/ │ ÷ │ │ │
- * ├────┼───┴┬──┴─┬─┴───┴───┴┬──┴─┬─┴───┴──┬┴───┼───┴┬─┬───┼───┼───┤
- * │ │ │ │ │ │ │ │ │ │ │ │ │
- * └────┴────┴────┴──────────┴────┴────────┴────┴────┘ └───┴───┴───┘
- */
- [L_NUMPAD] = LAYOUT_multi(
- _______, _______, _______, _______, _______, _______, _______, KC_P7, KC_P8, KC_P9, KC_PMNS, MINUS, EQUALS, NUMPAD, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, KC_P4, KC_P5, KC_P6, KC_PPLS, L_PAREN, R_PAREN, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, KC_P1, KC_P2, KC_P3, KC_PAST, TIMES, KC_PENT, _______,
- _______, _______, _______, _______, _______, _______, _______, KC_P0, KC_P0, COMMA, KC_PDOT, KC_PSLS, DIVIDE, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, XXXXXXX, _______, _______, _______
- ),
-};
diff --git a/keyboards/doro67/multi/keymaps/konstantin/rules.mk b/keyboards/doro67/multi/keymaps/konstantin/rules.mk
deleted file mode 100644
index 7bab7513ed..0000000000
--- a/keyboards/doro67/multi/keymaps/konstantin/rules.mk
+++ /dev/null
@@ -1,18 +0,0 @@
-# Generic features
-BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite
-COMMAND_ENABLE = yes
-CONSOLE_ENABLE = yes
-EXTRAKEY_ENABLE = yes
-MOUSEKEY_ENABLE = yes
-NKRO_ENABLE = yes
-TAP_DANCE_ENABLE = yes
-UNICODEMAP_ENABLE = yes
-
-# Keyboard-specific features
-BACKLIGHT_ENABLE = no
-VIA_ENABLE = yes
-
-# Firmware size reduction
-GRAVE_ESC_ENABLE = no
-MAGIC_ENABLE = no
-SPACE_CADET_ENABLE = no
diff --git a/keyboards/doro67/multi/keymaps/zyber/keymap.c b/keyboards/doro67/multi/keymaps/zyber/keymap.c
deleted file mode 100644
index 05200e8855..0000000000
--- a/keyboards/doro67/multi/keymaps/zyber/keymap.c
+++ /dev/null
@@ -1,36 +0,0 @@
-/* Copyright 2019 ShadeDream
- *
- * 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 "zyber.h"
-
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [0] = LAYOUT_multi(
- KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_F2, KC_DEL,
- KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, TD(LBRC), KC_RBRC, KC_BSLS, KC_PGUP,
- LCTL(KC_UP), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, TD(SCLN), TD(QUOT), KC_ENT, KC_PGDN,
- KC_LSFT, KC_GRV, 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_HOME,
- KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_SPC, KC_SPC, KC_RALT, MO(1), KC_NO, KC_LEFT, KC_DOWN, KC_RGHT
- ),
- [1] = LAYOUT_multi(
- QK_BOOT, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_TRNS, ,
- BL_TOGG, BL_STEP, BL_DOWN, BL_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_END,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
- ),
-
-}; \ No newline at end of file
diff --git a/keyboards/dp3000/info.json b/keyboards/dp3000/info.json
index cdb9fe4547..442d6d6a66 100644
--- a/keyboards/dp3000/info.json
+++ b/keyboards/dp3000/info.json
@@ -1,6 +1,5 @@
{
"manufacturer": "depermana12",
- "keyboard_name": "dp3000",
"maintainer": "depermana12",
"diode_direction": "COL2ROW",
"development_board": "promicro",
@@ -10,7 +9,6 @@
"console": false,
"extrakey": true,
"encoder": true,
- "rgb_matrix": true,
"oled": true,
"mousekey": false,
"nkro": false
@@ -20,64 +18,17 @@
},
"url": "https://github.com/depermana12",
"usb": {
- "device_version": "1.0.1",
- "vid": "0x4450",
- "pid": "0x6470"
+ "vid": "0x4450"
},
"encoder": {
"rotary": [
- { "pin_a": "B2", "pin_b": "B1"},
- { "pin_a": "F4", "pin_b": "F5"}
+ { "pin_a": "B2", "pin_b": "B1" },
+ { "pin_a": "F4", "pin_b": "F5" }
]
},
- "ws2812": {
- "pin": "B5"
- },
- "rgb_matrix":{
- "driver":"ws2812",
- "max_brightness": 180,
- "animations": {
- "alphas_mods": true,
- "gradient_up_down": true,
- "gradient_left_right": true,
- "breathing": true,
- "band_sat": true,
- "band_val": true,
- "band_pinwheel_sat": true,
- "band_pinwheel_val": true,
- "band_spiral_sat": true,
- "band_spiral_val": true,
- "cycle_all": true,
- "cycle_left_right": true,
- "cycle_up_down": true,
- "rainbow_moving_chevron":true,
- "cycle_pinwheel": true,
- "cycle_spiral": true,
- "raindrops": true,
- "hue_breathing": true,
- "hue_pendulum": true,
- "hue_wave": true,
- "typing_heatmap": true,
- "solid_reactive_simple": true,
- "solid_reactive": true,
- "solid_reactive_multinexus": true,
- "splash": true,
- "solid_splash": true
- },
- "layout":[
- { "matrix": [1, 0], "x": 0, "y": 32, "flags":4 },
- { "matrix": [1, 1], "x": 25, "y": 32, "flags":4 },
- { "matrix": [1, 2], "x": 37, "y": 32, "flags":4 },
- { "matrix": [1, 3], "x": 75, "y": 32, "flags":4 },
- { "matrix": [2, 0], "x": 75, "y": 16, "flags":4 },
- { "matrix": [2, 1], "x": 37, "y": 16, "flags":4 },
- { "matrix": [2, 2], "x": 25, "y": 16, "flags":4 },
- { "matrix": [2, 3], "x": 0, "y": 16, "flags":4 }
- ]
- },
"matrix_pins": {
- "cols": ["D4", "D7", "B4", "C6"],
- "rows": ["F6", "F7", "B3"]
+ "cols": [ "D4", "D7", "B4", "C6" ],
+ "rows": [ "F6", "F7", "B3" ]
},
"layouts": {
"LAYOUT": {
diff --git a/keyboards/dp3000/readme.md b/keyboards/dp3000/readme.md
index 3844a66757..8e2c8871d9 100644
--- a/keyboards/dp3000/readme.md
+++ b/keyboards/dp3000/readme.md
@@ -3,18 +3,21 @@
![dp3000 macropad](https://i.imgur.com/uBHS8EYh.jpg)
dp3000 is a simple yet elegant macropad, 2x4 (8 keys), dual encoder, embedded with an Atmel 32u4 chip, powered by QMK.
-
+* Rev. 1 Support RGB matrix
+* Rev. 2 Support RGB light (underglow)
* Keyboard Maintainer: [Deddia Permana](https://github.com/depermana12)
-* Hardware Supported: DP3000 PCB, ATmega32u4
+* Hardware Supported: DP3000 PCB rev1 and rev2, ATmega32u4
* Hardware Availability: [tokopedia.com/gundamtricks](https://www.tokopedia.com/gundamtricks)
Make example for this keyboard (after setting up your build environment):
- make dp3000:default
+ make dp3000/rev1:default
+ make dp3000/rev2:default
Flashing example for this keyboard:
- make dp3000:default:flash
+ make dp3000/rev1:default:flash
+ make dp3000/rev2: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 +25,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 key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard
+* Bootmagic reset: Hold down the key at (0,0) in the matrix (left rotary encoder push switch) and plug in the keyboard
* Physical reset button: Briefly press reset button twice, located in front of the first rotary encoder (left rotary encoder)
* Keycode in layout: Press the key mapped to QK_BOOT if it is available
diff --git a/keyboards/dp3000/rev1/info.json b/keyboards/dp3000/rev1/info.json
new file mode 100644
index 0000000000..7ea2d101c4
--- /dev/null
+++ b/keyboards/dp3000/rev1/info.json
@@ -0,0 +1,59 @@
+{
+ "keyboard_name": "dp3000",
+ "features": {
+ "rgb_matrix": true
+ },
+ "usb": {
+ "device_version": "1.0.1",
+ "pid": "0x6470"
+ },
+ "rgb_matrix": {
+ "animations": {
+ "alphas_mods": true,
+ "band_pinwheel_sat": true,
+ "band_pinwheel_val": true,
+ "band_sat": true,
+ "band_spiral_sat": true,
+ "band_spiral_val": true,
+ "band_val": true,
+ "breathing": true,
+ "cycle_all": true,
+ "cycle_left_right": true,
+ "cycle_pinwheel": true,
+ "cycle_spiral": true,
+ "cycle_up_down": true,
+ "gradient_left_right": true,
+ "gradient_up_down": true,
+ "hue_breathing": true,
+ "hue_pendulum": true,
+ "hue_wave": true,
+ "rainbow_moving_chevron": true,
+ "raindrops": true,
+ "solid_color": true,
+ "solid_reactive": true,
+ "solid_reactive_multinexus": true,
+ "solid_reactive_simple": true,
+ "solid_splash": true,
+ "splash": true,
+ "typing_heatmap": true
+ },
+ "driver": "ws2812",
+ "layout": [
+ {"matrix": [1, 0], "x": 0, "y": 32, "flags": 4},
+ {"matrix": [1, 1], "x": 25, "y": 32, "flags": 4},
+ {"matrix": [1, 2], "x": 37, "y": 32, "flags": 4},
+ {"matrix": [1, 3], "x": 75, "y": 32, "flags": 4},
+ {"matrix": [2, 0], "x": 75, "y": 16, "flags": 4},
+ {"matrix": [2, 1], "x": 37, "y": 16, "flags": 4},
+ {"matrix": [2, 2], "x": 25, "y": 16, "flags": 4},
+ {"matrix": [2, 3], "x": 0, "y": 16, "flags": 4}
+ ],
+ "max_brightness": 180,
+ "sat_steps": 8,
+ "speed_steps": 10,
+ "val_steps": 8
+ },
+ "ws2812": {
+ "pin": "B5"
+ }
+}
diff --git a/keyboards/studiokestra/line_tkl/rules.mk b/keyboards/dp3000/rev1/rules.mk
index 6e7633bfe0..6e7633bfe0 100644
--- a/keyboards/studiokestra/line_tkl/rules.mk
+++ b/keyboards/dp3000/rev1/rules.mk
diff --git a/keyboards/dp3000/rev2/info.json b/keyboards/dp3000/rev2/info.json
new file mode 100644
index 0000000000..f6f03eeb63
--- /dev/null
+++ b/keyboards/dp3000/rev2/info.json
@@ -0,0 +1,31 @@
+{
+ "keyboard_name": "dp3000 rev2",
+ "features": {
+ "rgblight": true
+ },
+ "usb": {
+ "device_version": "2.0.0",
+ "pid": "0x3132"
+ },
+ "rgblight": {
+ "animations": {
+ "alternating": true,
+ "breathing": true,
+ "christmas": true,
+ "knight": true,
+ "rainbow_mood": true,
+ "rainbow_swirl": true,
+ "rgb_test": true,
+ "snake": true,
+ "static_gradient": true,
+ "twinkle": true
+ },
+ "led_count": 4,
+ "max_brightness": 180,
+ "saturation_steps": 8,
+ "sleep": true
+ },
+ "ws2812": {
+ "pin": "B6"
+ }
+}
diff --git a/keyboards/dp3000/rev2/rules.mk b/keyboards/dp3000/rev2/rules.mk
new file mode 100644
index 0000000000..6e7633bfe0
--- /dev/null
+++ b/keyboards/dp3000/rev2/rules.mk
@@ -0,0 +1 @@
+# This file intentionally left blank
diff --git a/keyboards/dp3000/rules.mk b/keyboards/dp3000/rules.mk
index 6e7633bfe0..0f44aefd44 100644
--- a/keyboards/dp3000/rules.mk
+++ b/keyboards/dp3000/rules.mk
@@ -1 +1 @@
-# This file intentionally left blank
+DEFAULT_FOLDER = dp3000/rev1
diff --git a/keyboards/dp60/config.h b/keyboards/dp60/config.h
index fd83fe2d68..3c65d94736 100644
--- a/keyboards/dp60/config.h
+++ b/keyboards/dp60/config.h
@@ -33,9 +33,8 @@
//#define NO_PRINT
//rgb matrix setting
-#define DRIVER_ADDR_1 0b1110100
-#define DRIVER_ADDR_2 0b1110111
-#define DRIVER_COUNT 2
+#define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND
+#define IS31FL3731_I2C_ADDRESS_2 IS31FL3731_I2C_ADDRESS_VCC
#define DRIVER_1_LED_TOTAL 36
#define DRIVER_2_LED_TOTAL 36
#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL)
diff --git a/keyboards/dp60/dp60.c b/keyboards/dp60/dp60.c
index 75e6649ad5..588acd591d 100644
--- a/keyboards/dp60/dp60.c
+++ b/keyboards/dp60/dp60.c
@@ -17,7 +17,7 @@
#include "quantum.h"
#ifdef RGB_MATRIX_ENABLE
-const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = {
+const is31fl3731_led_t PROGMEM g_is31fl3731_leds[RGB_MATRIX_LED_COUNT] = {
/* Refer to IS31 manual for these locations
* driver
* | R location
diff --git a/keyboards/dp60/keymaps/indicator/indicator.c b/keyboards/dp60/keymaps/indicator/indicator.c
index 683ae3625a..02450ce68d 100644
--- a/keyboards/dp60/keymaps/indicator/indicator.c
+++ b/keyboards/dp60/keymaps/indicator/indicator.c
@@ -70,9 +70,9 @@ void keyboard_post_init_user(void) {
extern rgblight_config_t rgblight_config;
extern void rgblight_layers_write(void);
-extern void indicator_write(LED_TYPE *start_led, uint8_t num_leds);
+extern void indicator_write(rgb_led_t *start_led, uint8_t num_leds);
-void rgblight_call_driver(LED_TYPE *start_led, uint8_t num_leds)
+void rgblight_call_driver(rgb_led_t *start_led, uint8_t num_leds)
{
ws2812_setleds(start_led, RGBLED_NUM-RGB_INDICATOR_NUM);
diff --git a/keyboards/dp60/keymaps/indicator/led_driver.c b/keyboards/dp60/keymaps/indicator/led_driver.c
index 677eb8af57..b31e2daacd 100644
--- a/keyboards/dp60/keymaps/indicator/led_driver.c
+++ b/keyboards/dp60/keymaps/indicator/led_driver.c
@@ -20,7 +20,7 @@
#define ws2812_setleds_pin indicator_setleds_pin
#include "ws2812_bitbang.c"
-void indicator_write(LED_TYPE *start_led, uint8_t num_leds)
+void indicator_write(rgb_led_t *start_led, uint8_t num_leds)
{
indicator_setleds(start_led, num_leds);
}
diff --git a/keyboards/draculad/keymaps/manna-harbour_miryoku/config.h b/keyboards/draculad/keymaps/manna-harbour_miryoku/config.h
deleted file mode 100644
index e49cb1539f..0000000000
--- a/keyboards/draculad/keymaps/manna-harbour_miryoku/config.h
+++ /dev/null
@@ -1,24 +0,0 @@
-// Copyright 2022 Manna Harbour
-// https://github.com/manna-harbour/miryoku
-
-// This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see <http://www.gnu.org/licenses/>.
-
-#pragma once
-
-#undef LAYER_STATE_8BIT
-
-#define XXX KC_NO
-
-#define LAYOUT_miryoku( \
-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, \
-N30, N31, K32, K33, K34, K35, K36, K37, N38, N39 \
-) \
-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, \
- XXX, XXX, \
- K32, K33, K34, K35, K36, K37 \
-)
diff --git a/keyboards/draculad/keymaps/manna-harbour_miryoku/keymap.c b/keyboards/draculad/keymaps/manna-harbour_miryoku/keymap.c
deleted file mode 100644
index dbab7f9820..0000000000
--- a/keyboards/draculad/keymaps/manna-harbour_miryoku/keymap.c
+++ /dev/null
@@ -1,4 +0,0 @@
-// Copyright 2019 Manna Harbour
-// https://github.com/manna-harbour/miryoku
-
-// 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/>.
diff --git a/keyboards/drop/alt/v2/config.h b/keyboards/drop/alt/v2/config.h
index 5de22f7bcf..2dfae36a49 100644
--- a/keyboards/drop/alt/v2/config.h
+++ b/keyboards/drop/alt/v2/config.h
@@ -14,15 +14,9 @@
#define EXTERNAL_EEPROM_WP_PIN B5
#define EEPROM_I2C_24LC256
-#define DRIVER_ADDR_1 0b1010011
-#define DRIVER_ADDR_2 0b1011111
-#define DRIVER_COUNT 2
-#define RGB_MATRIX_LED_COUNT 111
-#define ISSI_PWM_FREQUENCY 0b010 // 26k
-
-#define RGB_DISABLE_WHEN_USB_SUSPENDED
-#define RGB_MATRIX_KEYPRESSES
-#define RGB_MATRIX_FRAMEBUFFER_EFFECTS
+#define IS31FL3733_I2C_ADDRESS_1 IS31FL3733_I2C_ADDRESS_GND_VCC
+#define IS31FL3733_I2C_ADDRESS_2 IS31FL3733_I2C_ADDRESS_VCC_VCC
+#define IS31FL3733_PWM_FREQUENCY IS31FL3733_PWM_FREQUENCY_26K7_HZ
#define RGB_MATRIX_CYCLE_ZONES_ENABLE
#define RGB_MATRIX_CAPS_LOCK_INDEX 30
diff --git a/keyboards/drop/alt/v2/info.json b/keyboards/drop/alt/v2/info.json
index c234f03090..d0fc31f624 100644
--- a/keyboards/drop/alt/v2/info.json
+++ b/keyboards/drop/alt/v2/info.json
@@ -106,6 +106,7 @@
"rgb_matrix": {
"driver": "is31fl3733",
"max_brightness": 191,
+ "sleep": true,
"animations": {
"alphas_mods": true,
"gradient_up_down": true,
diff --git a/keyboards/drop/alt/v2/rules.mk b/keyboards/drop/alt/v2/rules.mk
index a504f81cb1..3c300442da 100644
--- a/keyboards/drop/alt/v2/rules.mk
+++ b/keyboards/drop/alt/v2/rules.mk
@@ -1,4 +1,6 @@
UF2_DEVICE_TYPE_ID = 0x35446147
UF2CONV_ARGS = --device-type $(UF2_DEVICE_TYPE_ID)
-SRC += analog.c lib/common.c lib/mux.c
+SRC += lib/common.c lib/mux.c
+
+ANALOG_DRIVER_REQUIRED = yes
diff --git a/keyboards/drop/alt/v2/v2.c b/keyboards/drop/alt/v2/v2.c
index 2e183fe4d8..fcdad7f2df 100644
--- a/keyboards/drop/alt/v2/v2.c
+++ b/keyboards/drop/alt/v2/v2.c
@@ -3,7 +3,7 @@
#ifdef RGB_MATRIX_ENABLE
# include "rgb_matrix.h"
-const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = {
+const is31fl3733_led_t PROGMEM g_is31fl3733_leds[RGB_MATRIX_LED_COUNT] = {
{ 1, B_2, A_2, C_2 },
{ 1, E_3, D_3, F_3 },
{ 1, E_4, D_4, F_4 },
diff --git a/keyboards/drop/cstm80/config.h b/keyboards/drop/cstm80/config.h
index 2aefadfe30..3b3f6ae6b7 100644
--- a/keyboards/drop/cstm80/config.h
+++ b/keyboards/drop/cstm80/config.h
@@ -9,14 +9,8 @@
#define EXTERNAL_EEPROM_WP_PIN B7
#define EEPROM_I2C_24LC256
-#define DRIVER_ADDR_1 0b1010000
-#define DRIVER_ADDR_2 0b1011111
-#define DRIVER_COUNT 2
-#define RGB_MATRIX_LED_COUNT 88
-#define ISSI_PWM_FREQUENCY 0b010 // 26k
-
-#define RGB_DISABLE_WHEN_USB_SUSPENDED
-#define RGB_MATRIX_KEYPRESSES
-#define RGB_MATRIX_FRAMEBUFFER_EFFECTS
+#define IS31FL3733_I2C_ADDRESS_1 IS31FL3733_I2C_ADDRESS_GND_GND
+#define IS31FL3733_I2C_ADDRESS_2 IS31FL3733_I2C_ADDRESS_VCC_VCC
+#define IS31FL3733_PWM_FREQUENCY IS31FL3733_PWM_FREQUENCY_26K7_HZ
#define RGB_MATRIX_CAPS_LOCK_INDEX 48
diff --git a/keyboards/drop/cstm80/cstm80.c b/keyboards/drop/cstm80/cstm80.c
index c60f347cb9..75e7049c20 100644
--- a/keyboards/drop/cstm80/cstm80.c
+++ b/keyboards/drop/cstm80/cstm80.c
@@ -3,7 +3,7 @@
#ifdef RGB_MATRIX_ENABLE
# include "rgb_matrix.h"
-const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = {
+const is31fl3733_led_t PROGMEM g_is31fl3733_leds[RGB_MATRIX_LED_COUNT] = {
{ 0, E_1, D_1, F_1 },
{ 0, E_2, D_2, F_2 },
{ 0, E_3, D_3, F_3 },
diff --git a/keyboards/drop/cstm80/info.json b/keyboards/drop/cstm80/info.json
index 170538027e..12331eb097 100644
--- a/keyboards/drop/cstm80/info.json
+++ b/keyboards/drop/cstm80/info.json
@@ -128,6 +128,7 @@
},
"rgb_matrix": {
"driver": "is31fl3733",
+ "sleep": true,
"animations": {
"alphas_mods": true,
"gradient_up_down": true,
diff --git a/keyboards/drop/ctrl/v2/config.h b/keyboards/drop/ctrl/v2/config.h
index 2cff42074a..c0a259492b 100644
--- a/keyboards/drop/ctrl/v2/config.h
+++ b/keyboards/drop/ctrl/v2/config.h
@@ -14,15 +14,9 @@
#define EXTERNAL_EEPROM_WP_PIN B5
#define EEPROM_I2C_24LC256
-#define DRIVER_ADDR_1 0b1010011
-#define DRIVER_ADDR_2 0b1011111
-#define DRIVER_COUNT 2
-#define RGB_MATRIX_LED_COUNT 119
-#define ISSI_PWM_FREQUENCY 0b010 // 26k
-
-#define RGB_DISABLE_WHEN_USB_SUSPENDED
-#define RGB_MATRIX_KEYPRESSES
-#define RGB_MATRIX_FRAMEBUFFER_EFFECTS
+#define IS31FL3733_I2C_ADDRESS_1 IS31FL3733_I2C_ADDRESS_GND_VCC
+#define IS31FL3733_I2C_ADDRESS_2 IS31FL3733_I2C_ADDRESS_VCC_VCC
+#define IS31FL3733_PWM_FREQUENCY IS31FL3733_PWM_FREQUENCY_26K7_HZ
#define RGB_MATRIX_CYCLE_ZONES_ENABLE
#define RGB_MATRIX_CAPS_LOCK_INDEX 50
diff --git a/keyboards/drop/ctrl/v2/info.json b/keyboards/drop/ctrl/v2/info.json
index 11af6a553c..f461800dde 100644
--- a/keyboards/drop/ctrl/v2/info.json
+++ b/keyboards/drop/ctrl/v2/info.json
@@ -126,6 +126,7 @@
"rgb_matrix": {
"driver": "is31fl3733",
"max_brightness": 191,
+ "sleep": true,
"animations": {
"alphas_mods": true,
"gradient_up_down": true,
diff --git a/keyboards/drop/ctrl/v2/rules.mk b/keyboards/drop/ctrl/v2/rules.mk
index 13c11c1833..02a766b5c3 100644
--- a/keyboards/drop/ctrl/v2/rules.mk
+++ b/keyboards/drop/ctrl/v2/rules.mk
@@ -1,4 +1,6 @@
UF2_DEVICE_TYPE_ID = 0x27b9a6ea
UF2CONV_ARGS = --device-type $(UF2_DEVICE_TYPE_ID)
-SRC += analog.c lib/common.c lib/mux.c
+SRC += lib/common.c lib/mux.c
+
+ANALOG_DRIVER_REQUIRED = yes
diff --git a/keyboards/drop/ctrl/v2/v2.c b/keyboards/drop/ctrl/v2/v2.c
index 6f3091035b..6b565efbe1 100644
--- a/keyboards/drop/ctrl/v2/v2.c
+++ b/keyboards/drop/ctrl/v2/v2.c
@@ -3,7 +3,7 @@
#ifdef RGB_MATRIX_ENABLE
# include "rgb_matrix.h"
-const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = {
+const is31fl3733_led_t PROGMEM g_is31fl3733_leds[RGB_MATRIX_LED_COUNT] = {
{ 1, B_2, A_2, C_2 },
{ 1, E_3, D_3, F_3 },
{ 1, E_4, D_4, F_4 },
diff --git a/keyboards/drop/sense75/config.h b/keyboards/drop/sense75/config.h
index b8d47c311c..448d223d48 100644
--- a/keyboards/drop/sense75/config.h
+++ b/keyboards/drop/sense75/config.h
@@ -9,15 +9,9 @@
#define EXTERNAL_EEPROM_WP_PIN B7
#define EEPROM_I2C_24LC256
-#define DRIVER_ADDR_1 0b1010000
-#define DRIVER_ADDR_2 0b1011111
-#define DRIVER_COUNT 2
-#define RGB_MATRIX_LED_COUNT 111
-#define ISSI_PWM_FREQUENCY 0b010 // 26k
-
-#define RGB_DISABLE_WHEN_USB_SUSPENDED
-#define RGB_MATRIX_KEYPRESSES
-#define RGB_MATRIX_FRAMEBUFFER_EFFECTS
+#define IS31FL3733_I2C_ADDRESS_1 IS31FL3733_I2C_ADDRESS_GND_GND
+#define IS31FL3733_I2C_ADDRESS_2 IS31FL3733_I2C_ADDRESS_VCC_VCC
+#define IS31FL3733_PWM_FREQUENCY IS31FL3733_PWM_FREQUENCY_26K7_HZ
#define RGB_MATRIX_CYCLE_ZONES_ENABLE
#define RGB_MATRIX_CAPS_LOCK_INDEX 62
diff --git a/keyboards/drop/sense75/info.json b/keyboards/drop/sense75/info.json
index 2df7b0ae5a..052b494375 100644
--- a/keyboards/drop/sense75/info.json
+++ b/keyboards/drop/sense75/info.json
@@ -44,7 +44,7 @@
{"matrix": [0, 11], "label": "F11", "x": 11.75, "y": 0},
{"matrix": [0, 12], "label": "F12", "x": 12.75, "y": 0},
{"matrix": [0, 13], "label": "PrtSc", "x": 14, "y": 0},
- {"matrix": [0, 14], "label": "Mute", "x": 15.25, "y": 0},
+ {"matrix": [0, 14], "encoder":0, "label": "Mute", "x": 15.25, "y": 0},
{"matrix": [1, 0], "label": "~", "x": 0, "y": 1.25},
{"matrix": [1, 1], "label": "!", "x": 1, "y": 1.25},
{"matrix": [1, 2], "label": "@", "x": 2, "y": 1.25},
@@ -117,6 +117,7 @@
},
"rgb_matrix": {
"driver": "is31fl3733",
+ "sleep": true,
"animations": {
"alphas_mods": true,
"gradient_up_down": true,
diff --git a/keyboards/drop/sense75/sense75.c b/keyboards/drop/sense75/sense75.c
index 40577054cc..057e310748 100644
--- a/keyboards/drop/sense75/sense75.c
+++ b/keyboards/drop/sense75/sense75.c
@@ -3,7 +3,7 @@
#ifdef RGB_MATRIX_ENABLE
# include "rgb_matrix.h"
-const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = {
+const is31fl3733_led_t PROGMEM g_is31fl3733_leds[RGB_MATRIX_LED_COUNT] = {
// top underglow sd2-sd17
{ 0, B_2, A_2, C_2 },
{ 0, B_3, A_3, C_3 },
diff --git a/keyboards/drop/shift/v2/config.h b/keyboards/drop/shift/v2/config.h
index a4faafe394..e912e3805f 100644
--- a/keyboards/drop/shift/v2/config.h
+++ b/keyboards/drop/shift/v2/config.h
@@ -14,15 +14,9 @@
#define EXTERNAL_EEPROM_WP_PIN B5
#define EEPROM_I2C_24LC256
-#define DRIVER_ADDR_1 0b1010011
-#define DRIVER_ADDR_2 0b1011111
-#define DRIVER_ADDR_3 0b1010000
-#define DRIVER_COUNT 3
-#define RGB_MATRIX_LED_COUNT 166
-#define ISSI_PWM_FREQUENCY 0b010 // 26k
-
-#define RGB_DISABLE_WHEN_USB_SUSPENDED
-#define RGB_MATRIX_KEYPRESSES
-#define RGB_MATRIX_FRAMEBUFFER_EFFECTS
+#define IS31FL3733_I2C_ADDRESS_1 IS31FL3733_I2C_ADDRESS_GND_VCC
+#define IS31FL3733_I2C_ADDRESS_2 IS31FL3733_I2C_ADDRESS_VCC_VCC
+#define IS31FL3733_I2C_ADDRESS_3 IS31FL3733_I2C_ADDRESS_GND_GND
+#define IS31FL3733_PWM_FREQUENCY IS31FL3733_PWM_FREQUENCY_26K7_HZ
#define RGB_MATRIX_CYCLE_ZONES_ENABLE
diff --git a/keyboards/drop/shift/v2/info.json b/keyboards/drop/shift/v2/info.json
index 3615fdef4f..212263d71c 100644
--- a/keyboards/drop/shift/v2/info.json
+++ b/keyboards/drop/shift/v2/info.json
@@ -134,6 +134,7 @@
"rgb_matrix": {
"driver": "is31fl3733",
"max_brightness": 191,
+ "sleep": true,
"animations": {
"alphas_mods": true,
"gradient_up_down": true,
diff --git a/keyboards/drop/shift/v2/rules.mk b/keyboards/drop/shift/v2/rules.mk
index aec83326d0..f4f3ce1498 100644
--- a/keyboards/drop/shift/v2/rules.mk
+++ b/keyboards/drop/shift/v2/rules.mk
@@ -1,4 +1,6 @@
UF2_DEVICE_TYPE_ID = 0x9bc1e968
UF2CONV_ARGS = --device-type $(UF2_DEVICE_TYPE_ID)
-SRC += analog.c lib/common.c lib/mux.c
+SRC += lib/common.c lib/mux.c
+
+ANALOG_DRIVER_REQUIRED = yes
diff --git a/keyboards/drop/shift/v2/v2.c b/keyboards/drop/shift/v2/v2.c
index 326c418279..8565a0cb26 100644
--- a/keyboards/drop/shift/v2/v2.c
+++ b/keyboards/drop/shift/v2/v2.c
@@ -4,7 +4,7 @@
# include "host.h"
# include "rgb_matrix.h"
-const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = {
+const is31fl3733_led_t PROGMEM g_is31fl3733_leds[RGB_MATRIX_LED_COUNT] = {
{ 0, K_1, J_1, L_1 },// LED1
{ 0, K_2, J_2, L_2 },
{ 0, K_3, J_3, L_3 },
diff --git a/keyboards/ducky/one2mini/1861st/config.h b/keyboards/ducky/one2mini/1861st/config.h
index 92448f54d1..1bb511107d 100644
--- a/keyboards/ducky/one2mini/1861st/config.h
+++ b/keyboards/ducky/one2mini/1861st/config.h
@@ -17,6 +17,4 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#pragma once
-#define DIP_SWITCH_MATRIX_GRID { {0,14}, {1,14}, {2,14}, {3,14} }
-
#define GPIO_INPUT_PIN_DELAY (NUC123_HCLK / 6 / 1000000L)
diff --git a/keyboards/ducky/one2mini/1861st/info.json b/keyboards/ducky/one2mini/1861st/info.json
index 1f1783f635..4eb7c4941e 100644
--- a/keyboards/ducky/one2mini/1861st/info.json
+++ b/keyboards/ducky/one2mini/1861st/info.json
@@ -12,6 +12,9 @@
"rows": ["D11", "B4", "B5", "B6", "B7"]
},
"diode_direction": "COL2ROW",
+ "dip_switch": {
+ "matrix_grid": [ [0,14], [1,14], [2,14], [3,14] ]
+ },
"layout_aliases": {
"LAYOUT_iso": "LAYOUT_60_iso"
},
diff --git a/keyboards/ducky/one2sf/1967st/config.h b/keyboards/ducky/one2sf/1967st/config.h
index 92448f54d1..1bb511107d 100644
--- a/keyboards/ducky/one2sf/1967st/config.h
+++ b/keyboards/ducky/one2sf/1967st/config.h
@@ -17,6 +17,4 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#pragma once
-#define DIP_SWITCH_MATRIX_GRID { {0,14}, {1,14}, {2,14}, {3,14} }
-
#define GPIO_INPUT_PIN_DELAY (NUC123_HCLK / 6 / 1000000L)
diff --git a/keyboards/ducky/one2sf/1967st/info.json b/keyboards/ducky/one2sf/1967st/info.json
index 72ba3c8ae8..3774be1bc0 100644
--- a/keyboards/ducky/one2sf/1967st/info.json
+++ b/keyboards/ducky/one2sf/1967st/info.json
@@ -13,6 +13,9 @@
"rows": ["D11", "B4", "B5", "B6", "B7"]
},
"diode_direction": "COL2ROW",
+ "dip_switch": {
+ "matrix_grid": [ [0,14], [1,14], [2,14], [3,14] ]
+ },
"layouts": {
"LAYOUT_all": {
"layout": [
diff --git a/keyboards/dumbpad/v0x/v0x.c b/keyboards/dumbpad/v0x/v0x.c
index 6c89edaa11..d7e3841d76 100644
--- a/keyboards/dumbpad/v0x/v0x.c
+++ b/keyboards/dumbpad/v0x/v0x.c
@@ -22,10 +22,14 @@ void keyboard_pre_init_kb(void) {
keyboard_pre_init_user();
}
-void shutdown_user(void) {
+bool shutdown_kb(bool jump_to_bootloader) {
+ if (!shutdown_user(jump_to_bootloader)) {
+ return false;
+ }
// Shutdown LEDs
writePinLow(LED_00);
writePinLow(LED_01);
+ return true;
}
layer_state_t layer_state_set_kb(layer_state_t state) {
diff --git a/keyboards/dumbpad/v0x_dualencoder/v0x_dualencoder.c b/keyboards/dumbpad/v0x_dualencoder/v0x_dualencoder.c
index 6c89edaa11..d7e3841d76 100644
--- a/keyboards/dumbpad/v0x_dualencoder/v0x_dualencoder.c
+++ b/keyboards/dumbpad/v0x_dualencoder/v0x_dualencoder.c
@@ -22,10 +22,14 @@ void keyboard_pre_init_kb(void) {
keyboard_pre_init_user();
}
-void shutdown_user(void) {
+bool shutdown_kb(bool jump_to_bootloader) {
+ if (!shutdown_user(jump_to_bootloader)) {
+ return false;
+ }
// Shutdown LEDs
writePinLow(LED_00);
writePinLow(LED_01);
+ return true;
}
layer_state_t layer_state_set_kb(layer_state_t state) {
diff --git a/keyboards/dumbpad/v0x_right/v0x_right.c b/keyboards/dumbpad/v0x_right/v0x_right.c
index 6c89edaa11..d7e3841d76 100644
--- a/keyboards/dumbpad/v0x_right/v0x_right.c
+++ b/keyboards/dumbpad/v0x_right/v0x_right.c
@@ -22,10 +22,14 @@ void keyboard_pre_init_kb(void) {
keyboard_pre_init_user();
}
-void shutdown_user(void) {
+bool shutdown_kb(bool jump_to_bootloader) {
+ if (!shutdown_user(jump_to_bootloader)) {
+ return false;
+ }
// Shutdown LEDs
writePinLow(LED_00);
writePinLow(LED_01);
+ return true;
}
layer_state_t layer_state_set_kb(layer_state_t state) {
diff --git a/keyboards/dumbpad/v1x/keymaps/imchipwood/keymap.c b/keyboards/dumbpad/v1x/keymaps/imchipwood/keymap.c
deleted file mode 100644
index 96a98b11c5..0000000000
--- a/keyboards/dumbpad/v1x/keymaps/imchipwood/keymap.c
+++ /dev/null
@@ -1,95 +0,0 @@
-/* Copyright 2020 imchipwood
- *
- * 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 "imchipwood.h"
-
-enum custom_layers {
- _BASE,
- _SUB,
-};
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- /*
- BASE LAYER
- /-----------------------------------------------------`
- | | 7 | 8 | 9 | Bkspc |
- | |---------|---------|---------|---------|
- | | 4 | 5 | 6 | + |
- | |---------|---------|---------|---------|
- | | 1 | 2 | 3 | * |
- |-------------|---------|---------|---------|---------|
- | Play/Pause | TT(SUB) | 0 | . | Enter |
- \-----------------------------------------------------'
- */
- [_BASE] = LAYOUT(
- KC_P7, KC_P8, KC_P9, KC_BSPC,
- KC_P4, KC_P5, KC_P6, KC_KP_PLUS,
- KC_P1, KC_P2, KC_P3, KC_KP_ASTERISK,
- MEH_T(KC_MPLY), TT(_SUB), KC_P0, KC_PDOT, KC_KP_ENTER
- ),
- /*
- SUB LAYER
- /-----------------------------------------------------`
- | | F7 | F8 | F9 | Del/NLK |
- | |---------|---------|---------|---------|
- | | F4 | F5 | F6 | - |
- | |---------|---------|---------|---------|
- | | F1 | F2 | F3 | / |
- |-------------|---------|---------|---------|---------|
- | MUTE | | LSFT | LCTL | = |
- \-----------------------------------------------------'
- */
- [_SUB] = LAYOUT(
- TD(ALT_F7), KC_F8, KC_F9, TD(DEL_NLCK),
- KC_F4, TD(CTL_F5), KC_F6, KC_KP_MINUS,
- KC_F1, TD(ALT_F2), KC_F3, KC_KP_SLASH,
- KC_MUTE, _______, OSM(MOD_LSFT), OSM(MOD_LCTL), KC_KP_EQUAL
- )
-};
-
-bool encoder_update_user(uint8_t index, bool clockwise) {
- if (index == 0) {
- switch (get_highest_layer(layer_state)) {
- case _BASE:
- // main layer - volume up/down
- if (clockwise) {
- tap_code(KC_VOLU);
- } else {
- tap_code(KC_VOLD);
- }
- break;
-
- case _SUB:
- // sub layer - next/previous track
- if (clockwise) {
- tap_code(KC_MNXT);
- } else {
- tap_code(KC_MPRV);
- }
- break;
-
- default:
- // default - volume up/down
- if (clockwise) {
- tap_code(KC_VOLU);
- } else {
- tap_code(KC_VOLD);
- }
- break;
- }
- }
- return true;
-}
diff --git a/keyboards/dumbpad/v1x/v1x.c b/keyboards/dumbpad/v1x/v1x.c
index f1b1d66c7f..1022ad0605 100644
--- a/keyboards/dumbpad/v1x/v1x.c
+++ b/keyboards/dumbpad/v1x/v1x.c
@@ -23,11 +23,15 @@ void keyboard_pre_init_kb(void) {
keyboard_pre_init_user();
}
-void shutdown_user(void) {
+bool shutdown_kb(bool jump_to_bootloader) {
+ if (!shutdown_user(jump_to_bootloader)) {
+ return false;
+ }
// Shutdown LEDs
writePinLow(LED_00);
writePinLow(LED_01);
writePinLow(LED_02);
+ return true;
}
layer_state_t layer_state_set_kb(layer_state_t state) {
diff --git a/keyboards/dumbpad/v1x_dualencoder/v1x_dualencoder.c b/keyboards/dumbpad/v1x_dualencoder/v1x_dualencoder.c
index f1b1d66c7f..1022ad0605 100644
--- a/keyboards/dumbpad/v1x_dualencoder/v1x_dualencoder.c
+++ b/keyboards/dumbpad/v1x_dualencoder/v1x_dualencoder.c
@@ -23,11 +23,15 @@ void keyboard_pre_init_kb(void) {
keyboard_pre_init_user();
}
-void shutdown_user(void) {
+bool shutdown_kb(bool jump_to_bootloader) {
+ if (!shutdown_user(jump_to_bootloader)) {
+ return false;
+ }
// Shutdown LEDs
writePinLow(LED_00);
writePinLow(LED_01);
writePinLow(LED_02);
+ return true;
}
layer_state_t layer_state_set_kb(layer_state_t state) {
diff --git a/keyboards/dumbpad/v1x_right/v1x_right.c b/keyboards/dumbpad/v1x_right/v1x_right.c
index f1b1d66c7f..1022ad0605 100644
--- a/keyboards/dumbpad/v1x_right/v1x_right.c
+++ b/keyboards/dumbpad/v1x_right/v1x_right.c
@@ -23,11 +23,15 @@ void keyboard_pre_init_kb(void) {
keyboard_pre_init_user();
}
-void shutdown_user(void) {
+bool shutdown_kb(bool jump_to_bootloader) {
+ if (!shutdown_user(jump_to_bootloader)) {
+ return false;
+ }
// Shutdown LEDs
writePinLow(LED_00);
writePinLow(LED_01);
writePinLow(LED_02);
+ return true;
}
layer_state_t layer_state_set_kb(layer_state_t state) {
diff --git a/keyboards/dumbpad/v3x/v3x.c b/keyboards/dumbpad/v3x/v3x.c
index d0acca1947..89f13684f2 100644
--- a/keyboards/dumbpad/v3x/v3x.c
+++ b/keyboards/dumbpad/v3x/v3x.c
@@ -54,11 +54,15 @@ void keyboard_pre_init_kb(void) {
keyboard_pre_init_user();
}
-void shutdown_user(void) {
+bool shutdown_kb(bool jump_to_bootloader) {
+ if (!shutdown_user(jump_to_bootloader)) {
+ return false;
+ }
// Shutdown LEDs
writePinLow(LED_00);
writePinLow(LED_01);
writePinLow(LED_02);
+ return true;
}
layer_state_t layer_state_set_kb(layer_state_t state) {
diff --git a/keyboards/durgod/dgk6x/config.h b/keyboards/durgod/dgk6x/config.h
index beb580a588..7c85f977ba 100644
--- a/keyboards/durgod/dgk6x/config.h
+++ b/keyboards/durgod/dgk6x/config.h
@@ -34,21 +34,9 @@
#define LED_MR_LOCK_PIN LED_SCROLL_LOCK_PIN
#ifdef RGB_MATRIX_ENABLE
-// This is a 7-bit address, that gets left-shifted and bit 0
-// set to 0 for write, 1 for read (as per I2C protocol)
-// The address will vary depending on your wiring:
-// 00 <-> GND
-// 01 <-> SCL
-// 10 <-> SDA
-// 11 <-> VCC
-// ADDR1 represents A1:A0 of the 7-bit address.
-// ADDR2 represents A3:A2 of the 7-bit address.
-// The result is: 0b101(ADDR2)(ADDR1)
+#define IS31FL3733_I2C_ADDRESS_1 IS31FL3733_I2C_ADDRESS_GND_GND
+#define IS31FL3733_I2C_ADDRESS_2 IS31FL3733_I2C_ADDRESS_GND_VCC
-#define DRIVER_ADDR_1 0b1010000
-#define DRIVER_ADDR_2 0b1010011
-
-#define DRIVER_COUNT 2
#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL)
/* I2C Alternate function settings */
diff --git a/keyboards/durgod/dgk6x/galaxy/galaxy.c b/keyboards/durgod/dgk6x/galaxy/galaxy.c
index 9d0d25f823..aa903c3a0a 100644
--- a/keyboards/durgod/dgk6x/galaxy/galaxy.c
+++ b/keyboards/durgod/dgk6x/galaxy/galaxy.c
@@ -18,7 +18,7 @@
#ifdef RGB_MATRIX_ENABLE
-const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = {
+const is31fl3733_led_t PROGMEM g_is31fl3733_leds[RGB_MATRIX_LED_COUNT] = {
/* Refer to IS31 manual for these locations
* driver
* | R location
diff --git a/keyboards/durgod/dgk6x/hades_ansi/hades_ansi.c b/keyboards/durgod/dgk6x/hades_ansi/hades_ansi.c
index fb54c95667..2d1907f4db 100644
--- a/keyboards/durgod/dgk6x/hades_ansi/hades_ansi.c
+++ b/keyboards/durgod/dgk6x/hades_ansi/hades_ansi.c
@@ -19,7 +19,7 @@
#ifdef RGB_MATRIX_ENABLE
-const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = {
+const is31fl3733_led_t PROGMEM g_is31fl3733_leds[RGB_MATRIX_LED_COUNT] = {
/* Refer to IS31 manual for these locations
* driver
* | R location
diff --git a/keyboards/durgod/dgk6x/hades_iso/hades_iso.c b/keyboards/durgod/dgk6x/hades_iso/hades_iso.c
index 5f7a724aea..42f43645f5 100644
--- a/keyboards/durgod/dgk6x/hades_iso/hades_iso.c
+++ b/keyboards/durgod/dgk6x/hades_iso/hades_iso.c
@@ -19,7 +19,7 @@
#ifdef RGB_MATRIX_ENABLE
-const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = {
+const is31fl3733_led_t PROGMEM g_is31fl3733_leds[RGB_MATRIX_LED_COUNT] = {
/* Refer to IS31 manual for these locations
* driver
* | R location
diff --git a/keyboards/durgod/dgk6x/venus/venus.c b/keyboards/durgod/dgk6x/venus/venus.c
index 8c5ba712b1..d48e95fb21 100644
--- a/keyboards/durgod/dgk6x/venus/venus.c
+++ b/keyboards/durgod/dgk6x/venus/venus.c
@@ -18,7 +18,7 @@
#ifdef RGB_MATRIX_ENABLE
-const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = {
+const is31fl3733_led_t PROGMEM g_is31fl3733_leds[RGB_MATRIX_LED_COUNT] = {
/* Refer to IS31 manual for these locations
* driver
* | R location
diff --git a/keyboards/durgod/k320/keymaps/moults31/config.h b/keyboards/durgod/k320/keymaps/moults31/config.h
deleted file mode 100644
index 01f47b8c10..0000000000
--- a/keyboards/durgod/k320/keymaps/moults31/config.h
+++ /dev/null
@@ -1,20 +0,0 @@
-/*
- * Copyright 2021 moults31
- *
- * 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 DYNAMIC_KEYMAP_LAYER_COUNT 3
diff --git a/keyboards/durgod/k320/keymaps/moults31/keymap.c b/keyboards/durgod/k320/keymaps/moults31/keymap.c
deleted file mode 100644
index cdda3964e8..0000000000
--- a/keyboards/durgod/k320/keymaps/moults31/keymap.c
+++ /dev/null
@@ -1,84 +0,0 @@
-/* Copyright 2021 moults31
- * Adapted from kuenhlee and Don Kjer and Coirault
- *
- * 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 "moults31.h"
-
-// Layer shorthand
-enum _layer {
- _BASE,
- _FUNC,
- _LAYER3
-};
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- /* Keymap _BASE: Base Layer (Default Layer)
- * ,-----------------------------------------------------------. ,--------------.
- * |Esc |f1| f2| f3| f4| | f5| f6| f7| f8| | f9|f10|f11|f12| |Prnt|ScLk|Paus|
- * |-----------------------------------------------------------| |--------------|
- * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0| - | = |Backsp | | Ins|Home|PgUp|
- * |-----------------------------------------------------------| |--------------|
- * |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| | | Del| End|PgDn|
- * |------------------------------------------------------ Ret | `--------------'
- * |CAPS | A| S| D| F| G| H| J| K| L| ;| '| #| |
- * |-----------------------------------------------------------| ,----.
- * |Shift| \| Z| X| C| V| B| N| M| ,| .| /|Shift | | Up |
- * |-----------------------------------------------------------| ,-------------.
- * |Ctrl|Gui |Alt | Space |Alt | Fn |App |Ctrl| |Lft| Dn |Rig |
- * `-----------------------------------------------------------' `-------------'
- */
- [_BASE] = LAYOUT_tkl_ansi( /* Base Layer */
- 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,
- KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
- KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP,
- KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(_FUNC),KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
- ),
- /* Keymap _FUNC: Function Layer
- * ,-----------------------------------------------------------. ,--------------.
- * | |Play|Stop|Prev|Next| |Mute|Vol+|Vol-| | | | | | | | | | |
- * |-----------------------------------------------------------| |--------------|
- * | | | | | | | | | | | | | | | | | | |
- * |-----------------------------------------------------------| |--------------|
- * | | | | | | | | | | | | | | | | | | |
- * |------------------------------------------------------- | `--------------'
- * | | | | | | | | | | | | | | |
- * |-----------------------------------------------------------| ,----.
- * | | | | | | | | | | | | | | | |
- * |-----------------------------------------------------------| ,-------------.
- * | | | | | |Func | | | | | | |
- * `-----------------------------------------------------------' `-------------'
- */
- [_FUNC] = LAYOUT_tkl_ansi( /* Function Layer */
- _______, KC_MPLY, KC_MSTP, KC_MRWD, KC_MFFD, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, M_VSC_VIEWSIZEINC, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, M_VSC_EDGRPPRV, M_VSC_VIEWSIZEDEC, M_VSC_EDGRPNXT, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, M_VSC_MVEDTRPRVGRP, _______, M_VSC_MVEDTRNXTGRP
- ),
- [_LAYER3] = LAYOUT_tkl_ansi( /* Function Layer */
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
- ),
-};
-
diff --git a/keyboards/durgod/k320/keymaps/moults31/readme.md b/keyboards/durgod/k320/keymaps/moults31/readme.md
deleted file mode 100644
index e3a3f150f3..0000000000
--- a/keyboards/durgod/k320/keymaps/moults31/readme.md
+++ /dev/null
@@ -1,10 +0,0 @@
-# The default keymap for Durgod Taurus K320.
-
-Layer 0 : Standard Keys TKL layout
-
-Layer 1 : Media control and VScode navigation
-- Reusing Durgod's Original Media Control for Fn + F1 ~ Fn + F7
-
-## Supported PCBs
-
-This keymap intended for use on Durgod K320 ANSI
diff --git a/keyboards/dyz/dyz40/config.h b/keyboards/dyz/dyz40/config.h
deleted file mode 100644
index 7e7ca8b694..0000000000
--- a/keyboards/dyz/dyz40/config.h
+++ /dev/null
@@ -1,20 +0,0 @@
-/*
-Copyright 2021 dayatz
-
-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 DYNAMIC_KEYMAP_LAYER_COUNT 3
diff --git a/keyboards/dyz/dyz60/config.h b/keyboards/dyz/dyz60/config.h
deleted file mode 100644
index 7e7ca8b694..0000000000
--- a/keyboards/dyz/dyz60/config.h
+++ /dev/null
@@ -1,20 +0,0 @@
-/*
-Copyright 2021 dayatz
-
-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 DYNAMIC_KEYMAP_LAYER_COUNT 3
diff --git a/keyboards/dyz/dyz60_hs/config.h b/keyboards/dyz/dyz60_hs/config.h
deleted file mode 100644
index 7e7ca8b694..0000000000
--- a/keyboards/dyz/dyz60_hs/config.h
+++ /dev/null
@@ -1,20 +0,0 @@
-/*
-Copyright 2021 dayatz
-
-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 DYNAMIC_KEYMAP_LAYER_COUNT 3
diff --git a/keyboards/dyz/dyz_tkl/config.h b/keyboards/dyz/dyz_tkl/config.h
deleted file mode 100644
index 7e7ca8b694..0000000000
--- a/keyboards/dyz/dyz_tkl/config.h
+++ /dev/null
@@ -1,20 +0,0 @@
-/*
-Copyright 2021 dayatz
-
-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 DYNAMIC_KEYMAP_LAYER_COUNT 3
diff --git a/keyboards/dyz/selka40/config.h b/keyboards/dyz/selka40/config.h
deleted file mode 100644
index 7e7ca8b694..0000000000
--- a/keyboards/dyz/selka40/config.h
+++ /dev/null
@@ -1,20 +0,0 @@
-/*
-Copyright 2021 dayatz
-
-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 DYNAMIC_KEYMAP_LAYER_COUNT 3
diff --git a/keyboards/dyz/synthesis60/config.h b/keyboards/dyz/synthesis60/config.h
deleted file mode 100644
index d70ad316b6..0000000000
--- a/keyboards/dyz/synthesis60/config.h
+++ /dev/null
@@ -1,20 +0,0 @@
-/*
-Copyright 2022 dayatz
-
-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 DYNAMIC_KEYMAP_LAYER_COUNT 3
diff --git a/keyboards/dz60/keymaps/billypython/config.h b/keyboards/dz60/keymaps/billypython/config.h
deleted file mode 100644
index 4b511eb848..0000000000
--- a/keyboards/dz60/keymaps/billypython/config.h
+++ /dev/null
@@ -1,3 +0,0 @@
-#pragma once
-
-#define LAYER_FN
diff --git a/keyboards/dz60/keymaps/billypython/keymap.c b/keyboards/dz60/keymaps/billypython/keymap.c
deleted file mode 100644
index 66ce559c1a..0000000000
--- a/keyboards/dz60/keymaps/billypython/keymap.c
+++ /dev/null
@@ -1,46 +0,0 @@
-#include QMK_KEYBOARD_H
-#include "billypython.h"
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- /* Base layer
- * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
- * │Esc│ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │ \ │ ` │
- * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤
- * │ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │Bspc │
- * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤
- * │FnCaps│ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ Enter │
- * ├──────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬───┬───┤
- * │LShift │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │RSC│ ↑ │Del│
- * ├────┬──┴─┬─┴──┬┴───┴───┴───┴───┴───┴───┼───┼───┼───┼───┼───┤
- * │LCtl│LGui│LAlt│ Space │RAl│FnL│ ← │ ↓ │ → │
- * └────┴────┴────┴────────────────────────┴───┴───┴───┴───┴───┘
- */
- [L_BASE] = LAYOUT_directional(
- KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS, KC_GRV,
- 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_BSPC,
- FN_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_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, RSF_RCT, KC_UP, KC_DEL,
- KC_LCTL, KC_LGUI, KC_LALT, XXXXXXX, KC_SPC, XXXXXXX, KC_RALT, FN_FNLK, KC_LEFT, KC_DOWN, KC_RGHT
- ),
-
- /* Function layer
- * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
- * │ │F1 │F2 │F3 │F4 │F5 │F6 │F7 │F8 │F9 │F10│F11│F12│ │PSc│
- * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤
- * │ M4 │M2 │M↑ │M1 │M3 │M5 │ │PgU│ ↑ │PgD│Ply│Prv│Nxt│Clear│
- * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤
- * │ │M← │M↓ │M→ │MW↑│ │Hom│ ← │ ↓ │ → │End│ │ │
- * ├──────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬───┬───┤
- * │ │MA0│MA2│MW←│MW→│ │ │ │Vo-│Vo+│Mut│App│PgU│Ins│
- * ├────┬──┴─┬─┴──┬┴───┴───┴───┴───┴───┴───┼───┼───┼───┼───┼───┤
- * │ │ │ │ MW↓ │ │ │Hom│PgD│End│
- * └────┴────┴────┴────────────────────────┴───┴───┴───┴───┴───┘
- */
- [L_FN] = LAYOUT_directional(
- _______, 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_BTN4, KC_BTN2, KC_MS_U, KC_BTN1, KC_BTN3, KC_BTN5, _______, KC_PGUP, KC_UP, KC_PGDN, KC_MPLY, KC_MPRV, KC_MNXT, CLEAR,
- _______, KC_MS_L, KC_MS_D, KC_MS_R, KC_WH_U, _______, KC_HOME, KC_LEFT, KC_DOWN, KC_RGHT, KC_END, _______, _______,
- _______, KC_ACL0, KC_ACL2, KC_WH_L, KC_WH_R, _______, _______, _______, KC_VOLD, KC_VOLU, KC_MUTE, KC_APP, KC_PGUP, KC_INS,
- _______, _______, _______, XXXXXXX, KC_WH_D, XXXXXXX, _______, _______, KC_HOME, KC_PGDN, KC_END
- ),
-};
diff --git a/keyboards/dz60/keymaps/billypython/rules.mk b/keyboards/dz60/keymaps/billypython/rules.mk
deleted file mode 100644
index 3b7016f570..0000000000
--- a/keyboards/dz60/keymaps/billypython/rules.mk
+++ /dev/null
@@ -1,8 +0,0 @@
-BACKLIGHT_ENABLE = no
-BOOTMAGIC_ENABLE = no # Enable Bootmagic Lite
-COMMAND_ENABLE = yes
-CONSOLE_ENABLE = yes
-EXTRAKEY_ENABLE = yes
-MOUSEKEY_ENABLE = yes
-RGBLIGHT_ENABLE = no
-TAP_DANCE_ENABLE = yes
diff --git a/keyboards/dz60/keymaps/doogle999/keymap.c b/keyboards/dz60/keymaps/doogle999/keymap.c
deleted file mode 100644
index 60fe258e25..0000000000
--- a/keyboards/dz60/keymaps/doogle999/keymap.c
+++ /dev/null
@@ -1,74 +0,0 @@
-#include QMK_KEYBOARD_H
-
-#include "doogle999.h"
-
-#define ______ KC_NO
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
-/* Base layer
- * ,-----------------------------------------------------------------------------------------.
- * | ESC | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | Backspace |
- * |-----------------------------------------------------------------------------------------+
- * | Tab | Q | W | E | R | T | Y | U | I | O | P | [ | ] | \ |
- * |-----------------------------------------------------------------------------------------+
- * | Fn | A | S | D | F | G | H | J | K | L | ; | ' | Enter |
- * |-----------------------------------------------------------------------------------------+
- * | Shift | Z | X | C | V | B | N | M | , | . | Shift | U | Del |
- * |-----------------------------------------------------------------------------------------+
- * | Ctrl | Cmd | Alt | Space | / | Fn | L | D | R |
- * `-----------------------------------------------------------------------------------------'
- */
-
- LAYOUT_directional(
- KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, ______, KC_BSPC,
- KC_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,
- 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_RSFT, KC_UP, KC_DELETE,
- KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_SLSH, MO(1), KC_LEFT, KC_DOWN, KC_RIGHT
- ),
-
-/* Fn layer
- * ,-----------------------------------------------------------------------------------------.
- * | ~ | F1 | F2 | F3 | F4 | F5 | F6 | f7 | F8 | F9 | F10 | F11 | F12 | Backspace |
- * |-----------------------------------------------------------------------------------------+
- * | Reset | NP1 | NP2 | NP3 | NP4 | NP5 | NP6 | NP7 | NP8 | NP9 | NP0 |VolD |VolU | Mute |
- * |-----------------------------------------------------------------------------------------+
- * | | | | | | | | | | BlD | BlI | BlT | Menu |
- * |-----------------------------------------------------------------------------------------+
- * | Shift | Cyc+| Cyc-| Val+| Val-| Hue+| Hue-| Sat+| Sat-| Tog | Shift | Pup | Ins |
- * |-----------------------------------------------------------------------------------------+
- * | Ctrl | Cmd | Alt | Space |HwCal| |Home | Pdn | End |
- * `-----------------------------------------------------------------------------------------'
- */
-
- LAYOUT_directional(
- KC_GRV, 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_CALC,
- QK_BOOT, KC_KP_1, KC_KP_2, KC_KP_3, KC_KP_4, KC_KP_5, KC_KP_6, KC_KP_7, KC_KP_8, KC_KP_9, KC_KP_0, KC_VOLD, KC_VOLU, KC_MUTE,
- ______, ______, ______, ______, ______, ______, ______, ______, ______, BL_DOWN,BL_UP, BL_TOGG, KC_APP,
- KC_LSFT, ______, RGB_MOD, RGB_RMOD, RGB_VAI, RGB_VAD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_TOG, KC_RSFT, KC_PGUP, KC_INSERT,
- KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, TO(2), ______, KC_HOME, KC_PGDN, KC_END
- ),
-
- /* Hardware calculator layer
- * ,-----------------------------------------------------------------------------------------.
- * |EndCa| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | Backspace |
- * |-----------------------------------------------------------------------------------------+
- * | | Q | | E | | T | | | | | P | | | |
- * |-----------------------------------------------------------------------------------------+
- * | | | S | | | | | | | L | | | Calc |
- * |-----------------------------------------------------------------------------------------+
- * | Shift | | | | C | | | | | . | Shift | | |
- * |-----------------------------------------------------------------------------------------+
- * | | | | | / | | | | |
- * `-----------------------------------------------------------------------------------------'
- */
-
- LAYOUT_directional(
- ENDCALC, 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_Q, ______, KC_E, ______, KC_T, ______, ______, ______, ______, KC_P, ______, ______, ______,
- ______, ______, KC_S, ______, ______, ______, ______, ______, ______, KC_L, ______, ______, CALC,
- KC_LSFT, ______, ______, ______, KC_C, ______, ______, ______, ______, ______, KC_DOT, KC_RSFT, ______, ______,
- ______, ______, ______, ______, ______, ______, KC_SLSH, ______, ______, ______, ______
- ),
-}; \ No newline at end of file
diff --git a/keyboards/dz60/keymaps/draevin/keymap.c b/keyboards/dz60/keymaps/draevin/keymap.c
deleted file mode 100644
index b22dfb5561..0000000000
--- a/keyboards/dz60/keymaps/draevin/keymap.c
+++ /dev/null
@@ -1,46 +0,0 @@
-/* Copyright 2020 Draevin Luke <contact@drae.vin> @draevin
- *
- * 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 "draevin.h"
-
-#define LAYOUT_wrapped(...) LAYOUT(__VA_ARGS__)
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [_CM] = LAYOUT_wrapped (
- HYPR_T(KC_ESC), ________________NUMBER_LEFT________________, ________________NUMBER_RIGHT_______________, KC_MINS, KC_EQL, KC_BSPC, KC_DEL,
- KC_TAB, _________________COLEMAK_L1________________, _________________COLEMAK_R1________________, KC_LBRC, KC_RBRC, KC_BSLS,
- KC_BSPC, _________________COLEMAK_L2________________, _________________COLEMAK_R2________________, KC_QUOT, KC_ENT,
- TD(TD_CAPS), XXXXXXX, _________________COLEMAK_L3________________, _________________COLEMAK_R3________________, KC_RSFT, MO(_FN),
- KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(_FN), KC_SPC, KC_RCTL, KC_RALT, XXXXXXX, KC_RGUI, KC_HYPR
- ),
-
- [_QW] = LAYOUT_wrapped (
- HYPR_T(KC_ESC), ________________NUMBER_LEFT________________, ________________NUMBER_RIGHT_______________, KC_MINS, KC_EQL, KC_BSPC, KC_DEL,
- KC_TAB, _________________QWERTY_L1_________________, _________________QWERTY_L1_________________, KC_LBRC, KC_RBRC, KC_BSLS,
- KC_BSPC, _________________QWERTY_L2_________________, _________________QWERTY_L2_________________, KC_QUOT, KC_ENT,
- TD(TD_CAPS), XXXXXXX, _________________QWERTY_L3_________________, _________________QWERTY_L3_________________, KC_RSFT, MO(_FN),
- KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(_FN), KC_SPC, KC_RCTL, KC_RALT, XXXXXXX, KC_RGUI, KC_HYPR
- ),
-
- [_FN] = LAYOUT_wrapped (
- KC_GRV, _________________FROW_LEFT_________________, _________________FROW_RIGHT________________, KC_F11, KC_F12, _______, _______,
- _______, ___________________FN_L1___________________, ___________________FN_R1___________________, _______, _______, KC_MAKE,
- _______, ___________________FN_L2___________________, ___________________FN_R2___________________, _______, _______,
- _______, XXXXXXX, ___________________BLANK___________________, ___________________FN_R3___________________, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, CM_QW
- )
-};
diff --git a/keyboards/dz60/keymaps/jarred/keymap.c b/keyboards/dz60/keymaps/jarred/keymap.c
deleted file mode 100644
index 32ad434f6f..0000000000
--- a/keyboards/dz60/keymaps/jarred/keymap.c
+++ /dev/null
@@ -1,21 +0,0 @@
-#include QMK_KEYBOARD_H
-
-#define _QW 0
-#define _NV 1
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
- [_QW] = LAYOUT(
- KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, XXXXXXX, 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_LBRC, KC_RBRC,KC_BSLS,
- MO(_NV), 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, XXXXXXX,KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH, KC_RSFT,XXXXXXX,
- KC_LCTL, KC_LGUI,KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT,KC_RGUI, XXXXXXX,KC_APP, KC_RCTL),
-
- [_NV] = LAYOUT(
- KC_GRV ,KC_F1 ,KC_F2 ,KC_F3 ,KC_F4 ,KC_F5 ,KC_F6 ,KC_F7 ,KC_F8 ,KC_F9 ,KC_F10 ,KC_F11 ,KC_F12 ,XXXXXXX,_______,
- _______,RGB_TOG,RGB_MOD,_______,KC_DEL ,KC_BSPC,_______,KC_HOME,KC_UP ,KC_END ,KC_INS ,_______,_______,_______,
- _______,RGB_HUI,RGB_HUD,KC_LSFT,KC_LCTL,KC_ENT ,_______,KC_LEFT,KC_DOWN,KC_RGHT,KC_DEL ,KC_DEL , _______,
- _______,XXXXXXX,RGB_SAD,RGB_SAI,_______,_______,_______,_______,KC_PGUP,KC_PGDN,_______,_______,_______,XXXXXXX,
- _______,RGB_VAD,RGB_VAI, _______,_______,_______, _______,_______,XXXXXXX, QK_BOOT,_______)
-};
diff --git a/keyboards/dz60/keymaps/jdelkins/config.h b/keyboards/dz60/keymaps/jdelkins/config.h
deleted file mode 100644
index 9d50abd3ec..0000000000
--- a/keyboards/dz60/keymaps/jdelkins/config.h
+++ /dev/null
@@ -1,54 +0,0 @@
-/*
- Copyright 2020 Joel Elkins <joel@elkins.com>
-
- This program is free software: you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>.
-*/
-
-#pragma once
-
-/* My hhkb variant
- * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
- * │00 │01 │02 │03 │04 │05 │06 │07 │08 │09 │0a │0b │0c │0d │0e │
- * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤
- * │10 │12 │13 │14 │15 │16 │17 │18 │19 │1a │1b │1c │1d │1e │
- * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤
- * │20 │22 │23 │24 │25 │26 │27 │28 │29 │2a │2b │2c │2d │
- * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤
- * │30 │32 │33 │34 │35 │36 │37 │38 │39 │3a │3b │3d │3e │
- * ├────┬───┴┬──┴─┬─┴───┴──┬┴───┼───┴───┴──┬┴──┬┴──┬┴──┬───┼───┤
- * │40 │41 │43 │44 │46 │48 │4a │4b │4c │4d │4e │
- * └────┴────┴────┴────────┴────┴──────────┴───┴───┴───┴───┴───┘
- */
-
-#define LAYOUT_hhkb_split( \
- k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, \
- k10, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k1e, \
- k20, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, \
- k30, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3d, k3e, \
- k40, k41, k43, k44, k46, k48, k4a, k4b, k4c, k4d, k4e \
-) { \
- { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e }, \
- { k10, KC_NO, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k1e }, \
- { k20, KC_NO, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, KC_NO }, \
- { k30, KC_NO, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, KC_NO, k3d, k3e }, \
- { k40, k41, KC_NO, k43, k44, KC_NO, k46, KC_NO, k48, KC_NO, k4a, k4b, k4c, k4d, k4e } \
-}
-
-#define AUTO_SHIFT_TIMEOUT 160
-#define AUTO_SHIFT_REPEAT
-#define RGBLIGHT_LAYERS
-#define RGBLIGHT_LAYERS_OVERRIDE_RGB_OFF
-#define LEADER_TIMEOUT 400
-#define LEADER_PER_KEY_TIMING
-#define USB_MAX_POWER_CONSUMPTION 100
diff --git a/keyboards/dz60/keymaps/jdelkins/keymap.c b/keyboards/dz60/keymaps/jdelkins/keymap.c
deleted file mode 100644
index 2a989fe545..0000000000
--- a/keyboards/dz60/keymaps/jdelkins/keymap.c
+++ /dev/null
@@ -1,352 +0,0 @@
-/*
- Copyright 2020 Joel Elkins <joel@elkins.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 "jdelkins.h"
-
-#undef LAYOUT
-#define LAYOUT LAYOUT_hhkb_split
-
-#define IDLE_TIMEOUT 360
-
-uint16_t rgb_idle_seconds = 0;
-uint16_t rgb_timer;
-uint16_t bspc_timer;
-bool rgb_was_enabled;
-
-enum {
- MY_BSPC = USER_SAFE_RANGE,
-};
-
-// Tap Dance
-
-int ctl_state = 0;
-
-void ctl_finished(tap_dance_state_t *state, void *user_data) {
- ctl_state = cur_dance(state);
- switch (ctl_state) {
- case SINGLE_TAP: leader_start(); break;
- case SINGLE_HOLD: register_code(KC_LCTL); break;
- case DOUBLE_TAP: tap_code(KC_RCTL); break;
- case DOUBLE_HOLD: register_code(KC_RCTL); break;
- case TRIPLE_TAP: tap_code(KC_RCTL); tap_code(KC_RCTL); break;
- case TRIPLE_HOLD: tap_code(KC_RCTL); register_code(KC_RCTL); break;
- }
-}
-
-void ctl_reset(tap_dance_state_t *state, void *user_data) {
- switch (ctl_state) {
- case SINGLE_HOLD: unregister_code(KC_LCTL); break;
- case DOUBLE_HOLD:
- case TRIPLE_HOLD: unregister_code(KC_RCTL); break;
- }
- ctl_state = 0;
-}
-
-void g_finished(tap_dance_state_t *state, void *user_data) {
- switch (cur_dance(state)) {
- case SINGLE_TAP:
- tap_code16(C(KC_END));
- break;
- case DOUBLE_TAP:
- tap_code16(C(KC_HOME));
- break;
- }
-}
-
-int kp_state = 0;
-
-void kp_finished(tap_dance_state_t *state, void *user_data) {
- kp_state = hold_cur_dance(state);
- switch (kp_state) {
- case SINGLE_TAP:
- tap_code(KC_SPC);
- break;
- default:
- layer_invert(_KP);
- break;
- }
-}
-
-void kp_reset(tap_dance_state_t *state, void *user_data) {
- switch (kp_state) {
- case SINGLE_HOLD:
- case DOUBLE_HOLD:
- case TRIPLE_HOLD:
- layer_invert(_KP);
- break;
- }
-}
-
-enum {
- TD_LDCTL,
- TD_G,
- TD_KP,
-};
-
-tap_dance_action_t tap_dance_actions[] = {
- [TD_LDCTL] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, ctl_finished, ctl_reset),
- [TD_G] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, g_finished, NULL),
- [TD_KP] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, kp_finished, kp_reset),
-};
-
-// Layers
-
-const uint16_t PROGMEM keymaps[_LAYER_MAX][MATRIX_ROWS][MATRIX_COLS] = {
- [_QWERTY] = LAYOUT(
- KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_GRV,
- 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,
- MY_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_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(_ADJUST),
- TD(TD_LDCTL), MY_GUI, MY_ALT, MY_BSPC, TD(TD_KP), MY_SPC, KC_RGUI, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT
- ),
- [_RPT] = LAYOUT(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
- ),
- [_GAME] = LAYOUT(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- KC_LCTL, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, KC_LALT, KC_SPC, KC_LALT, _______, _______, _______, _______, _______, _______
- ),
- [_FUNC] = LAYOUT(
- KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_F13,
- _______, _______, FW_WRD, KB_EOL, TG(_RPT), _______, KB_COPY, KC_PGUP, _______, _______, KB_PASTE, KC_SCRL, _______, MY_CALC,
- KC_RCTL, KB_BOL, _______, KC_PGDN, _______, TD(TD_G), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, _______, _______, _______,
- _______, _______, KC_DEL, _______, _______, BK_WRD, _______, _______, _______, _______, _______, _______, KC_NO,
- KC_RCTL, MY_RGUI, MY_RALT, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_PGUP, KC_END
- ),
- [_KP] = LAYOUT(
- _______, _______, _______, _______, _______, _______, _______, _______, KC_KP_ASTERISK, _______, _______, _______, _______, _______, _______,
- KC_NUM, _______, KC_BTN1, KC_MS_U, KC_BTN2, KC_WH_U, _______, KC_KP_7, KC_KP_8, KC_KP_9, KC_KP_MINUS, _______, _______, _______,
- _______, _______, KC_MS_L, KC_MS_D, KC_MS_R, KC_WH_D, _______, KC_KP_4, KC_KP_5, KC_KP_6, KC_KP_PLUS, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, KC_KP_1, KC_KP_2, KC_KP_3, KC_KP_SLASH, _______, TG(_KP),
- _______, _______, _______, _______, _______, KC_KP_0, KC_KP_DOT, _______, _______, _______, _______
- ),
- [_ADJUST] = LAYOUT(
- KC_GRV, 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_SCRL, KC_F13,
- _______, RGB_SPD, RGB_VAI, RGB_SPI, RGB_HUI, RGB_SAI, _______, _______, _______, _______, KC_PSCR, KC_BRID, KC_BRIU, KC_MUTE,
- KC_RCTL, RGB_RMOD, RGB_VAD, RGB_MOD, RGB_HUD, RGB_SAD, _______, _______, TG(_KP), _______, _______, _______, KC_MPLY,
- _______, RGB_TOG, KB_MAKE, KB_FLSH, KB_VRSN, KB_BOOT, _______, TG_SYS, _______, _______, _______, _______, _______,
- KC_RCTL, MY_RGUI, MY_RALT, KC_DEL, _______, _______, _______, KC_MPRV, KC_VOLD, KC_VOLU, KC_MNXT
- ),
-};
-
-const rgblight_segment_t PROGMEM rpt_layer[] = RGBLIGHT_LAYER_SEGMENTS(
- {8, 8, HSV_PINK}
-);
-
-const rgblight_segment_t PROGMEM game_layer[] = RGBLIGHT_LAYER_SEGMENTS(
- {0, 1, HSV_RED},
- {7, 2, HSV_RED},
- {15, 1, HSV_RED}
-);
-
-const rgblight_segment_t PROGMEM func_layer[] = RGBLIGHT_LAYER_SEGMENTS(
- {0, 16, HSV_GREEN}
-);
-
-const rgblight_segment_t PROGMEM kp_layer[] = RGBLIGHT_LAYER_SEGMENTS(
- {0, 16, HSV_ORANGE}
-);
-
-const rgblight_segment_t PROGMEM adjust_layer[] = RGBLIGHT_LAYER_SEGMENTS(
- {0, 16, HSV_BLUE}
-);
-
-const rgblight_segment_t PROGMEM capslock_layer[] = RGBLIGHT_LAYER_SEGMENTS(
- {10, 4, HSV_WHITE}
-);
-
-const rgblight_segment_t PROGMEM numlock_layer[] = RGBLIGHT_LAYER_SEGMENTS(
- {0, 2, HSV_PURPLE},
- {14, 2, HSV_PURPLE}
-);
-
-
-enum rgb_layer_index {
- L_RPT,
- L_GAME,
- L_FUNC,
- L_KP,
- L_ADJUST,
- L_CAPSLOCK,
- L_NUMLOCK,
-};
-
-const rgblight_segment_t * const PROGMEM my_rgb_layers[] = RGBLIGHT_LAYERS_LIST(
- [L_RPT] = rpt_layer,
- [L_GAME] = game_layer,
- [L_FUNC] = func_layer,
- [L_KP] = kp_layer,
- [L_ADJUST] = adjust_layer,
- [L_CAPSLOCK] = capslock_layer,
- [L_NUMLOCK] = numlock_layer
-);
-
-layer_state_t layer_state_set_keymap(layer_state_t state) {
- rgblight_set_layer_state(L_RPT, layer_state_cmp(state, _RPT));
- rgblight_set_layer_state(L_GAME, layer_state_cmp(state, _GAME));
- rgblight_set_layer_state(L_FUNC, layer_state_cmp(state, _FUNC));
- rgblight_set_layer_state(L_KP, layer_state_cmp(state, _KP));
- rgblight_set_layer_state(L_ADJUST, layer_state_cmp(state, _ADJUST));
- rgblight_set_layer_state(L_CAPSLOCK, CAPSLOCK_ON);
- rgblight_set_layer_state(L_NUMLOCK, NUMLOCK_ON && layer_state_cmp(state, _KP));
- if (layer_state_cmp(state, _GAME) || layer_state_cmp(state, _RPT))
- autoshift_disable();
- else
- autoshift_enable();
- return state;
-}
-
-bool led_update_user(led_t led_state) {
- rgblight_set_layer_state(L_CAPSLOCK, led_state.caps_lock);
- rgblight_set_layer_state(L_NUMLOCK, led_state.num_lock && layer_state_is(_KP));
- return true;
-}
-
-void keyboard_post_init_keymap(void) {
- rgblight_layers = my_rgb_layers;
- rgb_was_enabled = rgblight_is_enabled();
- bspc_timer = 0;
-}
-
-void leader_end_user(void) {
- // layer navigation
- if (leader_sequence_one_key(KC_R)) { layer_invert(_RPT); }
- if (leader_sequence_one_key(KC_G)) { layer_invert(_GAME); }
- if (leader_sequence_one_key(KC_K)) { layer_invert(_KP); }
- if (leader_sequence_one_key(KC_KP_5)) { layer_invert(_KP); }
-
- // tmux navigation
- if (leader_sequence_one_key(KC_L)) { SEND_STRING(SS_LCTL("a") "n"); }
- if (leader_sequence_one_key(KC_H)) { SEND_STRING(SS_LCTL("a") "p"); }
- if (leader_sequence_one_key(KC_N)) { SEND_STRING(SS_LCTL("a") "c"); }
- if (leader_sequence_one_key(KC_W)) { SEND_STRING(SS_LCTL("a") "x"); }
- if (leader_sequence_one_key(KC_MINS)) { SEND_STRING(SS_LCTL("a") "-"); }
- if (leader_sequence_one_key(KC_QUOT)) { SEND_STRING(SS_LCTL("a") "\""); }
- if (leader_sequence_one_key(KC_1)) { SEND_STRING(SS_LCTL("a") "1"); }
- if (leader_sequence_one_key(KC_2)) { SEND_STRING(SS_LCTL("a") "2"); }
- if (leader_sequence_one_key(KC_3)) { SEND_STRING(SS_LCTL("a") "3"); }
- if (leader_sequence_one_key(KC_4)) { SEND_STRING(SS_LCTL("a") "4"); }
- if (leader_sequence_one_key(KC_5)) { SEND_STRING(SS_LCTL("a") "5"); }
- if (leader_sequence_one_key(KC_6)) { SEND_STRING(SS_LCTL("a") "6"); }
- if (leader_sequence_one_key(KC_7)) { SEND_STRING(SS_LCTL("a") "7"); }
- if (leader_sequence_one_key(KC_8)) { SEND_STRING(SS_LCTL("a") "8"); }
- if (leader_sequence_one_key(KC_9)) { SEND_STRING(SS_LCTL("a") "9"); }
-
- // secrets
- if (leader_sequence_two_keys(KC_SCLN, KC_M)) { send_secret_string(0); }
- if (leader_sequence_two_keys(KC_SCLN, KC_COMM)) { send_secret_string(1); }
- if (leader_sequence_two_keys(KC_SCLN, KC_DOT)) { send_secret_string(2); }
- if (leader_sequence_two_keys(KC_SCLN, KC_J)) { send_secret_string(3); }
- if (leader_sequence_two_keys(KC_SCLN, KC_K)) { send_secret_string(4); }
- if (leader_sequence_two_keys(KC_SCLN, KC_L)) { send_secret_string(5); }
-
- // fast control-C
- if (leader_sequence_one_key(KC_C)) { tap_code16(C(KC_C)); }
-
- // neovim: terminal escape
- if (leader_sequence_one_key(KC_BSLS)) {
- tap_code16(C(KC_BSLS));
- tap_code16(C(KC_N));
- }
-}
-
-void matrix_scan_keymap(void) {
- if (rgblight_is_enabled() && timer_elapsed(rgb_timer) > 1000) {
- rgb_idle_seconds++;
- rgb_timer = timer_read();
- }
- if (rgb_idle_seconds > IDLE_TIMEOUT) {
- rgb_was_enabled = rgblight_is_enabled();
- rgblight_disable_noeeprom();
- rgb_idle_seconds = 0;
- }
- // if MY_BSPC is held down too long, pretend like it wasn't and start
- // pressing backspace
- if (bspc_timer > 0 && timer_elapsed(bspc_timer) > LEADER_TIMEOUT) {
- layer_off(_FUNC);
- bspc_timer = 0;
- register_code(KC_BSPC);
- }
-}
-
-bool process_record_keymap(uint16_t keycode, keyrecord_t *record) {
- static bool bspc_del = false;
- static bool bspc_initiated_func = false;
- bool rc = true;
-
- rgb_idle_seconds = 0;
- if (!rgblight_is_enabled() && rgb_was_enabled)
- rgblight_enable_noeeprom();
-
- switch (keycode) {
- case MY_BSPC:
- if (record->event.pressed) {
- if (IS_LAYER_ON(_FUNC)) {
- // special case: if _FUNC was turned on by another key,
- // treat this as KC_DEL and don't do anything else
- bspc_del = true;
- register_code(KC_DEL);
- return false;
- } else {
- bspc_timer = timer_read();
- bspc_initiated_func = true;
- layer_on(_FUNC);
- }
- } else {
- if (bspc_del) {
- // special case: if _FUNC was turned on by another key,
- // treat this as KC_DEL and don't do anything else
- unregister_code(KC_DEL);
- bspc_del = false;
- return false;
- }
-
- if (bspc_initiated_func) {
- layer_off(_FUNC);
- bspc_initiated_func = false;
- }
-
- if (bspc_timer > 0) {
- // here the key was pressed and released before the timer
- // expired, so treat as a backspace tap and pretend we
- // never activated _FUNC
- bspc_timer = 0;
- tap_code(KC_BSPC);
- } else {
- // the timer went off, so KC_BSPC was registered in
- // matrix_scan_keymap. unregister it now
- unregister_code(KC_BSPC);
- }
- }
- return false; // special case, return now without resetting timer
- // other paths should set rc and break
- break;
- }
-
- // if something was pressed while MY_BSPC was held down, keep it pressed by
- // disabling the timer
- bspc_timer = 0;
- return rc;
-}
-
diff --git a/keyboards/dz60/keymaps/jdelkins/rules.mk b/keyboards/dz60/keymaps/jdelkins/rules.mk
deleted file mode 100644
index 2eacc54ea1..0000000000
--- a/keyboards/dz60/keymaps/jdelkins/rules.mk
+++ /dev/null
@@ -1,7 +0,0 @@
-LEADER_ENABLE = yes
-MOUSEKEY_ENABLE = no
-CONSOLE_ENABLE = no
-NKRO_ENABLE = no
-TAP_DANCE_ENABLE = yes
-AUTO_SHIFT_ENABLE = yes
-LTO_ENABLE = yes
diff --git a/keyboards/dz60/keymaps/konstantin_b/config.h b/keyboards/dz60/keymaps/konstantin_b/config.h
deleted file mode 100644
index 4b511eb848..0000000000
--- a/keyboards/dz60/keymaps/konstantin_b/config.h
+++ /dev/null
@@ -1,3 +0,0 @@
-#pragma once
-
-#define LAYER_FN
diff --git a/keyboards/dz60/keymaps/konstantin_b/keymap.c b/keyboards/dz60/keymaps/konstantin_b/keymap.c
deleted file mode 100644
index 3718669fa5..0000000000
--- a/keyboards/dz60/keymaps/konstantin_b/keymap.c
+++ /dev/null
@@ -1,46 +0,0 @@
-#include QMK_KEYBOARD_H
-#include "konstantin.h"
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- /* Base layer
- * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
- * │Esc│ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │ \ │ ` │
- * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤
- * │ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │Bspc │
- * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤
- * │FnCaps│ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ Enter │
- * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴┬───┬───┤
- * │ LShift │ Z │ X │ C │ V │ B │ N │ M │ , │ . │RSft /│ ↑ │FnF│
- * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴──┬┴──┬───┼───┼───┤
- * │LCtl│LGui│LAlt│ Space │RAG│RCt│ ← │ ↓ │ → │
- * └────┴────┴────┴────────────────────────┴───┴───┴───┴───┴───┘
- */
- [L_BASE] = LAYOUT_60_b_ansi(
- KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS, KC_GRV,
- 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_BSPC,
- FN_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_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, RSF_SLS, KC_UP, FN_FNLK,
- KC_LCTL, KC_LGUI, KC_LALT, XXXXXXX, KC_SPC, XXXXXXX, RAL_RGU, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
- ),
-
- /* Fn layer
- * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
- * │ │F1 │F2 │F3 │F4 │F5 │F6 │F7 │F8 │F9 │F10│F11│F12│PSc│Ins│
- * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤
- * │ M4 │M2 │M↑ │M1 │M3 │M5 │ │ │ │Stp│Ply│Prv│Nxt│ Del │
- * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤
- * │ │M← │M↓ │M→ │MW↑│ │ │ │ │ │ │ │ │
- * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴┬───┬───┤
- * │ │MA0│MA2│MW←│MW→│ │ │App│Vo-│Vo+│ Mute │PgU│ │
- * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴──┬┴──┬───┼───┼───┤
- * │ │DtPR│DtNA│ MW↓ │ │ │Hom│PgD│End│
- * └────┴────┴────┴────────────────────────┴───┴───┴───┴───┴───┘
- */
- [L_FN] = LAYOUT_60_b_ansi(
- _______, 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_INS,
- KC_BTN4, KC_BTN2, KC_MS_U, KC_BTN1, KC_BTN3, KC_BTN5, _______, _______, _______, KC_MSTP, KC_MPLY, KC_MPRV, KC_MNXT, KC_DEL,
- _______, KC_MS_L, KC_MS_D, KC_MS_R, KC_WH_U, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, KC_ACL0, KC_ACL2, KC_WH_L, KC_WH_R, _______, _______, KC_APP, KC_VOLD, KC_VOLU, KC_MUTE, KC_PGUP, _______,
- _______, DST_P_R, DST_N_A, XXXXXXX, KC_WH_D, XXXXXXX, _______, _______, KC_HOME, KC_PGDN, KC_END
- ),
-};
diff --git a/keyboards/dz60/keymaps/konstantin_b/rules.mk b/keyboards/dz60/keymaps/konstantin_b/rules.mk
deleted file mode 100644
index 18ea01311f..0000000000
--- a/keyboards/dz60/keymaps/konstantin_b/rules.mk
+++ /dev/null
@@ -1,21 +0,0 @@
-USER_NAME := konstantin
-
-# Generic features
-BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite
-COMMAND_ENABLE = yes
-CONSOLE_ENABLE = yes
-EXTRAKEY_ENABLE = yes
-MOUSEKEY_ENABLE = yes
-NKRO_ENABLE = yes
-TAP_DANCE_ENABLE = yes
-UNICODEMAP_ENABLE = no
-
-# Keyboard-specific features
-BACKLIGHT_ENABLE = no
-RGBLIGHT_ENABLE = no
-VIA_ENABLE = yes
-
-# Firmware size reduction
-GRAVE_ESC_ENABLE = no
-MAGIC_ENABLE = no
-SPACE_CADET_ENABLE = no
diff --git a/keyboards/dz60/keymaps/mechmerlin/config.h b/keyboards/dz60/keymaps/mechmerlin/config.h
deleted file mode 100644
index 92d4cfb50a..0000000000
--- a/keyboards/dz60/keymaps/mechmerlin/config.h
+++ /dev/null
@@ -1,6 +0,0 @@
-#pragma once
-
-// Turn off RGB when computer goes to sleep
-#ifdef RGBLIGHT_ENABLE
-#define RGBLIGHT_SLEEP
-#endif // RGBLIGHT_ENABLE
diff --git a/keyboards/dz60/keymaps/mechmerlin/keymap.c b/keyboards/dz60/keymaps/mechmerlin/keymap.c
deleted file mode 100644
index 795ba24798..0000000000
--- a/keyboards/dz60/keymaps/mechmerlin/keymap.c
+++ /dev/null
@@ -1,40 +0,0 @@
-#include QMK_KEYBOARD_H
-
-enum keyboard_layers {
- _BL = 0, // Base Layer
- _FL, // Function Layer
- _CL // Control Layer
-};
-
-// Custom #defined keycodes (shorter macros for readability)
-#define KC_CTCP LCTL_T(KC_CAPS)
-#define KC_RSSH RSFT_T(KC_SLSH)
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [_BL] = LAYOUT_60_b_ansi(
- QK_GESC, 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_BSPC,
- 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_CTCP, 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_RSSH, KC_UP, KC_DEL,
- KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, MO(_FL), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT),
-
- [_FL] = LAYOUT_60_b_ansi(
- KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_DEL,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_CAPS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MUTE, KC_VOLD, KC_VOLU, KC_TRNS, KC_PGUP, MO(_CL),
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_PGDN, KC_END),
-
- [_CL] = LAYOUT_60_b_ansi(
- QK_BOOT, RGB_M_P, RGB_M_B, RGB_M_R, RGB_M_SW, RGB_M_SN, RGB_M_K, RGB_M_X, RGB_M_G, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- RGB_TOG, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, RGB_SPI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, RGB_RMOD, RGB_HUD, RGB_SAD, RGB_VAD, RGB_SPD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS)
-};
-
-// Set underglow RGB leds to yellow
-// Find the list of available colors in quantum/color.h
-void matrix_init_user(void) {
- rgblight_sethsv_noeeprom(HSV_YELLOW);
-}
diff --git a/keyboards/dz60/keymaps/mechmerlin/readme.md b/keyboards/dz60/keymaps/mechmerlin/readme.md
deleted file mode 100644
index bb8fbf84b3..0000000000
--- a/keyboards/dz60/keymaps/mechmerlin/readme.md
+++ /dev/null
@@ -1,68 +0,0 @@
-# MechMerlin's DZ60 Keymap
-
-The purpose of this keymap is to provide examples on how to do some common QMK features.
-
-Make example for this keyboard (after setting up your build environment):
-
- make dz60:mechmerlin
-
-## Merlin's DZ60 Hardware Info
----
-
-The DZ60 is a 60% pcb produced by KBDFans. It comes in two variants, USB Mini B and USB C. It supports many many layouts. It also supports both backlight and RGB underglow. The USB C variant does not have a hardware reset switch. USB C to C is not supported.
-
-Merlin's DZ60 uses
-- Layout B, in QMK this is LAYOUT_60_b_ansi.
-- USB C
-- 50g Zilents
-- Arrows are 78g Zilents
-- KPRepublic XD64 Case
-
-## Layers
----
-
-Merlin's keymap has three different layers. To switch layers you can use the `MO(X)` keycode, where `X` is the layer you want to switch to.
-
-### _BL
-
-This is the base layer also known as layer 0. It is a standard QWERTY layout. It has the `_FL` layer switch key.
-
-### _FL
-
-This is the function layer also known as layer 1. It utiizes the following:
-- Function Keys
-- Navigation Keys
-- Audio keys such as Mute, Volume Down and Volume Up.
-- `_CL` layer switch key
-
-### _CL
-
-This is the control layer also known as layer 2. It utilizes the following:
-- RGB Controls
-- `RESET` key
-
-## Non Standard Keycodes
----
-### RESET
-
-As long `BOOTMAGIC_ENABLE` is set to `yes` in `rules.mk`, the DZ60 can be put into bootloader mode by holding the `Escape` key while plugging in. However sometmes this doesn't work or is troublesome to do, might as well use the `RESET` keycode to accomplish this.
-
-### RSFT_T(KC_SLSH)
-
-Layout B is missing the `?` key and is instead replaced with a `right shift`. This keycode makes it so that the key can be tapped for `?` and held for `right shift`.
-
-### LCTL_T(KC_CAPS)
-
-`Caps Lock` is only ever used by tapping, why not use it as a `control` key when held? This keycode makes it so that the key can be tapped for `caps lock` and held for `control`.
-
-
-## RGB Lighting
----
-
-### RGBLIGHT_SLEEP
-
-This is set in `mechmerlin/config.h` so that when the computer goes to sleep, the RGB lights will also go to sleep on the keyboard. They will turn back on when the computer wakes.
-
-### RGB Underglow Color: Yellow
-
-This is set in `mechmerlin/keymap.c` in the `matrix_init_user` function. The list of available colors can be found in [`quantum/color.h`](https://github.com/qmk/qmk_firmware/blob/master/quantum/color.h).
diff --git a/keyboards/dz60/keymaps/spotpuff/keymap.c b/keyboards/dz60/keymaps/spotpuff/keymap.c
deleted file mode 100644
index c4f5cd9555..0000000000
--- a/keyboards/dz60/keymaps/spotpuff/keymap.c
+++ /dev/null
@@ -1,95 +0,0 @@
- /* Copyright 2020 Philip Chan
- *
- * 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
-
-//Layers
-enum layer_names {
- _QWERTY,
- _FN,
- _MEDIA,
-};
-
-//Custom Keymap Definitions
-#define KC_CAD LALT(LCTL(KC_DEL))
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
-/* Qwerty Base layer
- * ,-----------------------------------------------------------------------------------------.
- * | Esc | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | BSpc| Del |
- * |-----------------------------------------------------------------------------------------+
- * | Tab | Q | W | E | R | T | Y | U | I | O | P | [ | ] | \ |
- * |-----------------------------------------------------------------------------------------+
- * | `/_Media| A | S | D | F | G | H | J | K | L | ; | ' | Enter |
- * |-----------------------------------------------------------------------------------------+
- * | Shift | Z | X | C | V | B | N | M | , | . | / |PgUp | Up |PgDn |
- * |-----------------------------------------------------------------------------------------+
- * | LCtrl | LGui | LAlt | Space | Fn | Space |Home | End |Left |Down |Right|
- * `----------------------------------------------------------------------------------------'
- */
-
- [_QWERTY] = LAYOUT_directional(
- KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL,
- 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,
- LT(_MEDIA,KC_GRV), 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_PGUP, KC_UP, KC_PGDN,
- KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(_FN), KC_SPC, KC_HOME, KC_END, KC_LEFT, KC_DOWN, KC_RGHT
- ),
-
-/* F-Key/Lighting/whatever layer
- * ,-----------------------------------------------------------------------------------------.
- * | | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F0 | F11 | F12 | | Ins |
- * |-----------------------------------------------------------------------------------------+
- * | |R_Tog|R_HUI|R_SAI|R_VAI| | | | | | | | | KC_CAD |
- * |-----------------------------------------------------------------------------------------+
- * | Caps | |R_HUD|R_SAD| | | | | | | SLCK|PAUSE| Print Screen|
- * |-----------------------------------------------------------------------------------------+
- * | Trns |R_M_P|R_M_B|R_M_R|R_M_SW|R_M_S|R_M_K|R_M_X|R_M_G| | | |BLUP | |
- * |-----------------------------------------------------------------------------------------+
- * | Trns | Trns | Trns | | Trns | | | |BLTog|BLDN |BLInc|
- * `----------------------------------------------------------------------------------------'
- */
-
- [_FN] = LAYOUT_directional(
- XXXXXXX, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, XXXXXXX, KC_INS,
- XXXXXXX, RGB_TOG, RGB_HUI, RGB_SAI, RGB_VAI, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_CAD,
- KC_CAPS, XXXXXXX, RGB_HUD, RGB_SAD, RGB_VAD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_SCRL, KC_PAUS, KC_PSCR,
- _______, RGB_M_P, RGB_M_B, RGB_M_R, RGB_M_SW, RGB_M_SN, RGB_M_K, RGB_M_X, RGB_M_G, XXXXXXX, XXXXXXX, XXXXXXX, BL_UP, XXXXXXX,
- _______, _______, _______, XXXXXXX, _______, XXXXXXX, XXXXXXX, XXXXXXX, BL_TOGG, BL_DOWN, BL_STEP
- ),
-
-/* SFX/Multimedia/Numpad layer
- * ,-----------------------------------------------------------------------------------------.
- * | | | | | | |NumLk| | / | * | - | = | |Trns |Trns |
- * |-----------------------------------------------------------------------------------------+
- * | | | Prev | Play| Next| | | 7 | 8 | 9 | + | | | QK_BOOT |
- * |-----------------------------------------------------------------------------------------+
- * | Trns | |Mute | VUp | VDn | | | 4 | 5 | 6 | + | | Trns |
- * |-----------------------------------------------------------------------------------------+
- * | Trns | | | | | | | 1 | 2 | 3 |NumEN| | | |
- * |-----------------------------------------------------------------------------------------+
- * | Trns | Trns | Trns | Trns | Trns | 0 | . | | | | |
- * `----------------------------------------------------------------------------------------'
- */
-
- [_MEDIA] = LAYOUT_directional(
- XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_NUM, XXXXXXX, KC_PSLS, KC_PAST, KC_PMNS, KC_PEQL, XXXXXXX, _______, _______,
- XXXXXXX, XXXXXXX, KC_MPRV, KC_MPLY, KC_MNXT, XXXXXXX, XXXXXXX, KC_P7, KC_P8, KC_P9, KC_PPLS, XXXXXXX, XXXXXXX, QK_BOOT,
- _______, XXXXXXX, KC_MUTE, KC_VOLD, KC_VOLU, XXXXXXX, XXXXXXX, KC_P4, KC_P5, KC_P6, KC_PPLS, XXXXXXX, _______,
- _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_P1, KC_P2, KC_P3, KC_PENT, XXXXXXX, XXXXXXX, XXXXXXX,
- _______, _______, _______, _______, _______, KC_P0, KC_PDOT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX
- )
-};
diff --git a/keyboards/dz60/keymaps/spotpuff/rules.mk b/keyboards/dz60/keymaps/spotpuff/rules.mk
deleted file mode 100644
index 7b4abdbc1b..0000000000
--- a/keyboards/dz60/keymaps/spotpuff/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-BOOTMAGIC_ENABLE = no # Enable Bootmagic Lite
diff --git a/keyboards/dz60/keymaps/twschum_b_4_10/config.h b/keyboards/dz60/keymaps/twschum_b_4_10/config.h
deleted file mode 100644
index 15cabda364..0000000000
--- a/keyboards/dz60/keymaps/twschum_b_4_10/config.h
+++ /dev/null
@@ -1,24 +0,0 @@
-#pragma once
-
-// number of taps for TT Tap-Toggle keys to toggle
-#ifdef TAPPING_TOGGLE
-#undef TAPPING_TOGGLE
-#endif
-#define TAPPING_TOGGLE 2
-
-// time in ms that counts as a "tap" for various features
-#ifdef TAPPING_TERM
-#undef TAPPING_TERM
-#endif
-#define TAPPING_TERM 100
-
-// https://docs.qmk.fm/features/mouse-keys#configuring-the-behavior-of-mousekeys
-#define MOUSEKEY_DELAY 0
-#define MOUSEKEY_INTERVAL 20
-#define MOUSEKEY_MAX_SPEED 10
-#define MOUSEKEY_TIME_TO_MAX 15
-#define MOUSEKEY_WHEEL_MAX_SPEED 1
-#define MOUSEKEY_WHEEL_TIME_TO_MAX 255
-
-// flags from user/twschum/
-#define TWSCHUM_TAPPING_CTRL_PREFIX 1
diff --git a/keyboards/dz60/keymaps/twschum_b_4_10/keymap.c b/keyboards/dz60/keymaps/twschum_b_4_10/keymap.c
deleted file mode 100644
index a2cba4fe67..0000000000
--- a/keyboards/dz60/keymaps/twschum_b_4_10/keymap.c
+++ /dev/null
@@ -1,123 +0,0 @@
-#include QMK_KEYBOARD_H
-#include "twschum.h"
-
-/* DZ60 layout using following options (from layouts diagram on KBDfans):
- * - plate B (2.25u lshift)
- * - opt 4 (1.75, 1, 1 on rshift)
- * - opt 10 (2.75, 1.25, 2.25 on space, 5x1u bottom right keys)
- * http://www.keyboard-layout-editor.com/#/gists/225f0f4dcf6671405f744fabe314627c
- */
-
-
-#define LAYOUT_b_4_10( \
- K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K014, \
- K100, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, \
- K200, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, \
- K300, K302, K303, K304, K305, K306, K307, K308, K309, K310, K312, K313, K314, \
- K400, K401, K403, K404, K406, K408, K410, K411, K412, K413, K414 \
- ) { \
- { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, XXXXXXX, K014 }, \
- { K100, XXXXXXX, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114 }, \
- { K200, XXXXXXX, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, XXXXXXX }, \
- { K300, XXXXXXX, K302, K303, K304, K305, K306, K307, K308, K309, K310, XXXXXXX, K312, K313, K314 }, \
- { K400, K401, XXXXXXX, K403, K404, XXXXXXX, K406, XXXXXXX, K408, XXXXXXX, K410, K411, K412, K413, K414 } \
-}
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
- /* base 60% qwerty */
- LAYOUT_b_4_10(
- // |--------|----1---|----2---|----3---|---4----|---5----|---6----|---7----|---8----|---9----|---0----|-- - ---|-- = ---||------2.0-------|
- KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC,
- // |--------|--------|--------|--------|--------|--------|--------|--------|--------|--------|--------|--------|--------||----------------|
- //
- // |----1.5-----||---Q----|---W----|---E----|---R----|---T----|---Y----|---U----|---I----|---O----|---P----|---[----|---]----|----1.5-----|
- 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,
- // |------------||--------|--------|--------|--------|--------|--------|--------|--------|--------|--------|--------|--------|------------|
- //
- // |----1.75------||---A----|---S----|---D----|---F----|---G----|---H----|---J----|---K----|---L----|---;----|---'----|------2.25--------||
- 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_ENT,
- // |--------------||--------|--------|--------|--------|--------|--------|--------|--------|--------|--------|--------|------------------||
- //
- // |------2.25--------|---Z----|---X----|---C----|---V----|---B----|---N----|---M----|---,----|---.----||----1.75------|--------|--------||
- KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, /*SFT_T*/KC_SLSH, KC_UP, VIM_START,
- // |------------------|--------|--------|--------|--------|--------|--------|--------|--------|--------||--------------|--------|--------||
- //
- // |---1.25---|---1.25---||---1.25---||--------2.75----------||---1.25---|------2.25--------||--------|--------|--------|--------|--------|
- MO(_Fn), KC_LALT, KC_LGUI, KC_SPC, TT(_Nav), MO(_Fn), TG(_Num), TT(_Cfg), KC_LEFT, KC_DOWN, KC_RGHT
- // |----------|----------||----------||----------------------||----------|------------------||--------|--------|--------|--------|--------|
- ),
-
- /* vim mode */
- LAYOUT_b_4_10(
- VIM_ESC, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, VIM_W, VIM_E, KC_R, _______, VIM_Y, VIM_U, VIM_I, VIM_O, VIM_P, _______, _______, _______,
- _______, VIM_A, VIM_S, VIM_D, _______, VIM_G, VIM_H, VIM_J, VIM_K, VIM_L, _______, _______, _______,
- VIM_SHIFT, _______, VIM_X, VIM_C, VIM_V, VIM_B, _______, _______, VIM_COMMA, VIM_PERIOD, _______, _______, VIM_ESC,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
- ),
-
- /* primary fn layer */
- LAYOUT_b_4_10(
- // |--------|----1---|----2---|----3---|---4----|---5----|---6----|---7----|---8----|---9----|---0----|-- - ---|-- = ---||------2.0-------|
- KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL,
- // |--------|--------|--------|--------|--------|--------|--------|--------|--------|--------|--------|--------|--------||----------------|
- //
- // |----1.5-----||---Q----|---W----|---E----|---R----|---T----|---Y----|---U----|---I----|---O----|---P----|---[----|---]----|----1.5-----|
- KC_TAB, CODE_PASTE, KC_HOME, KC_UP, KC_END, XXXXXXX, KC_HOME, KC_PGDN, KC_PGUP, KC_END, LESS_PD, XXXXXXX, XXXXXXX, CODE_PASTE,
- // |------------||--------|--------|--------|--------|--------|--------|--------|--------|--------|--------|--------|--------|------------|
- //
- // |----1.75------||---A----|---S----|---D----|---F----|---G----|---H----|---J----|---K----|---L----|---;----|---'----|------2.25--------||
- KC_CAPS, SALT_CMD, KC_LEFT, KC_DOWN, KC_RGHT, XXXXXXX, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, XXXXXXX, XXXXXXX, KC_ENT,
- // |--------------||--------|--------|--------|--------|--------|--------|--------|--------|--------|--------|--------|------------------||
- //
- // |------2.25--------|---Z----|---X----|---C----|---V----|---B----|---N----|---M----|---,----|---.----||----1.75------|--------|--------||
- KC_LSFT, KC_MPRV, KC_MUTE, KC_VOLD, KC_VOLU, KC_MNXT, _______, _______, XXXXXXX, XXXXXXX, QK_LOCK, KC_PGUP, KC_INS,
- // |------------------|--------|--------|--------|--------|--------|--------|--------|--------|--------||--------------|--------|--------||
- //
- // |---1.25---|---1.25---||---1.25---||--------2.75----------||---1.25---|------2.25--------||--------|--------|--------|--------|--------|
- KC_MEH, KC_LALT, KC_LGUI, KC_MEDIA_PLAY_PAUSE, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_END
- // |----------|----------||----------||----------------------||----------|------------------||--------|--------|--------|--------|--------|
- ),
-
- /* mouse navigation */
- LAYOUT_b_4_10(
- TO(_Base), KC_MS_ACCEL0, KC_MS_ACCEL1, KC_MS_ACCEL2, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
- XXXXXXX, XXXXXXX, KC_MS_BTN2, KC_MS_UP, KC_MS_BTN1, XXXXXXX, XXXXXXX, KC_SLEP, KC_PGDN, KC_PGUP, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
- KC_LCTL, KC_MS_BTN3, KC_MS_LEFT, KC_MS_DOWN, KC_MS_RIGHT, XXXXXXX, KC_MS_WH_LEFT, KC_MS_WH_DOWN, KC_MS_WH_UP, KC_MS_WH_RIGHT, XXXXXXX, XXXXXXX, XXXXXXX,
- KC_LSFT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, XXXXXXX,
- XXXXXXX, XXXXXXX, XXXXXXX, KC_MS_BTN1, _______, _______, _______, _______, _______, _______, _______
- ),
-
- /* numpad layer */
- LAYOUT_b_4_10(
- _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_BSPC,
- XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_KP_7, KC_KP_8, KC_KP_9, KC_KP_MINUS, KC_KP_PLUS, XXXXXXX, XXXXXXX, XXXXXXX,
- XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_KP_4, KC_KP_5, KC_KP_6, KC_KP_SLASH, KC_KP_ASTERISK, XXXXXXX, KC_ENT,
- XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_KP_1, KC_KP_2, KC_KP_3, KC_KP_DOT, KC_KP_ENTER, XXXXXXX, XXXXXXX,
- XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_KP_0, _______, _______, XXXXXXX, XXXXXXX, XXXXXXX
- ),
-
-
- /* RGB lighting controls and keyboard config, reset */
- LAYOUT_b_4_10(
- _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, TG_L0_RGB, XXXXXXX, XXXXXXX, TO(_None),
- XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, QK_BOOT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_HUD,
- EN_CTRL_SHORTCUTS, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, TG_LAYER_RGB, RGB_MODE_PLAIN, RGB_MODE_FORWARD, KC_RSFT,
- XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_MAKE, XXXXXXX, XXXXXXX, RGB_TOG, RGB_VAI, RGB_HUI,
- XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, RGB_SAD, RGB_VAD, RGB_SAI
- ),
-
- /* soft "off" state where none of the keystroke register */
- LAYOUT_b_4_10(
- XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
- XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
- XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
- XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, TO(_Base),
- XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX
- ),
-};
-
-uint8_t vim_cmd_layer(void) {
- return _Vim;
-}
diff --git a/keyboards/dz60/keymaps/twschum_b_4_10/layout.json b/keyboards/dz60/keymaps/twschum_b_4_10/layout.json
deleted file mode 100644
index cd484f9d89..0000000000
--- a/keyboards/dz60/keymaps/twschum_b_4_10/layout.json
+++ /dev/null
@@ -1,4877 +0,0 @@
-{
- "configKeymap":{
- "keys":[
- "K00",
- "K01",
- "K02",
- "K03",
- "K04",
- "K05",
- "K06",
- "K07",
- "K08",
- "K09",
- "K0A",
- "K0B",
- "K0C",
- "K0D",
- "K2D",
- "K10",
- "K11",
- "K12",
- "K13",
- "K14",
- "K15",
- "K16",
- "K17",
- "K18",
- "K19",
- "K1A",
- "K1B",
- "K1C",
- "K1D",
- "K20",
- "K21",
- "K22",
- "K23",
- "K24",
- "K25",
- "K26",
- "K27",
- "K28",
- "K29",
- "K2A",
- "K2B",
- "K2C",
- "K30",
- "K31",
- "K32",
- "K33",
- "K34",
- "K35",
- "K36",
- "K37",
- "K38",
- "K39",
- "K3A",
- "K3B",
- "K3C",
- "K3D",
- "K40",
- "K41",
- "K42",
- "K44",
- "K45",
- "K46",
- "K48",
- "K49",
- "K4A",
- "K4B",
- "K4C"
- ],
- "positions":[
- [
- "K00",
- "K01",
- "K02",
- "K03",
- "K04",
- "K05",
- "K06",
- "K07",
- "K08",
- "K09",
- "K0A",
- "K0B",
- "K0C",
- "K0D"
- ],
- [
- "K10",
- "K11",
- "K12",
- "K13",
- "K14",
- "K15",
- "K16",
- "K17",
- "K18",
- "K19",
- "K1A",
- "K1B",
- "K1C",
- "K1D"
- ],
- [
- "K20",
- "K21",
- "K22",
- "K23",
- "K24",
- "K25",
- "K26",
- "K27",
- "K28",
- "K29",
- "K2A",
- "K2B",
- "K2C",
- "K2D"
- ],
- [
- "K30",
- "K31",
- "K32",
- "K33",
- "K34",
- "K35",
- "K36",
- "K37",
- "K38",
- "K39",
- "K3A",
- "K3B",
- "K3C",
- "K3D"
- ],
- [
- "K40",
- "K41",
- "K42",
- "KC_NO",
- "K44",
- "K45",
- "K46",
- "KC_NO",
- "K48",
- "K49",
- "K4A",
- "K4B",
- "K4C",
- "KC_NO"
- ]
- ]
- },
- "keySections":[
- {
- "row1":[
- {
- "id":"k00",
- "value":"ESC",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- },
- {
- "id":"k01",
- "value":"1",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- },
- {
- "id":"k02",
- "value":"2",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- },
- {
- "id":"k03",
- "value":"3",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- },
- {
- "id":"k04",
- "value":"4",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- },
- {
- "id":"k05",
- "value":"5",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- },
- {
- "id":"k06",
- "value":"6",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- },
- {
- "id":"k07",
- "value":"7",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- },
- {
- "id":"k08",
- "value":"8",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- },
- {
- "id":"k09",
- "value":"9",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- },
- {
- "id":"k0A",
- "value":"0",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- },
- {
- "id":"k0B",
- "value":"MINS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- },
- {
- "id":"k0C",
- "value":"EQL",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- }
- ],
- "backspace":[
- [
- {
- "id":"k0D",
- "value":"BSPC",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k200",
- "zone":"Backspace"
- },
- {
- "id":"k2D",
- "value":"NO",
- "type":"nodisplay",
- "showMenu":false
- }
- ],
- [
- {
- "id":"k0D",
- "value":"PSCR",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100",
- "zone":"Backspace"
- },
- {
- "id":"k2D",
- "value":"PAUS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100",
- "zone":"Backspace"
- }
- ]
- ],
- "row2":[
- {
- "id":"k10",
- "value":"TAB",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k150"
- },
- {
- "id":"k11",
- "value":"Q",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- },
- {
- "id":"k12",
- "value":"W",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- },
- {
- "id":"k13",
- "value":"E",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- },
- {
- "id":"k14",
- "value":"R",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- },
- {
- "id":"k15",
- "value":"T",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- },
- {
- "id":"k16",
- "value":"Y",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- },
- {
- "id":"k17",
- "value":"U",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- },
- {
- "id":"k18",
- "value":"I",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- },
- {
- "id":"k19",
- "value":"O",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- },
- {
- "id":"k1A",
- "value":"P",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- },
- {
- "id":"k1B",
- "value":"LBRC",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- },
- {
- "id":"k1C",
- "value":"RBRC",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- }
- ],
- "row2pipe":[
- [
- {
- "id":"k1D",
- "value":"BSLS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k150",
- "zone":"Enter"
- }
- ],
- [
- {
- "id":"k1D",
- "value":"ENT",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"kISO",
- "zone":"Enter"
- }
- ]
- ],
- "caps":[
- [
- {
- "id":"k20",
- "value":"LCTL",
- "type":"normal",
- "secondary":"LCTL",
- "showMenu":false,
- "shape":"k175",
- "zone":"Caps Lock"
- }
- ],
- [
- {
- "id":"k20",
- "value":"CAPS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k175stepped",
- "zone":"Caps Lock"
- }
- ]
- ],
- "row3":[
- {
- "id":"k21",
- "value":"A",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- },
- {
- "id":"k22",
- "value":"S",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- },
- {
- "id":"k23",
- "value":"D",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- },
- {
- "id":"k24",
- "value":"F",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- },
- {
- "id":"k25",
- "value":"G",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- },
- {
- "id":"k26",
- "value":"H",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- },
- {
- "id":"k27",
- "value":"J",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- },
- {
- "id":"k28",
- "value":"K",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- },
- {
- "id":"k29",
- "value":"L",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- },
- {
- "id":"k2A",
- "value":"SCLN",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- },
- {
- "id":"k2B",
- "value":"QUOT",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- }
- ],
- "enter":[
- [
- {
- "id":"k2C",
- "value":"ENT",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k225",
- "zone":"Enter"
- }
- ],
- [
- {
- "id":"k2C",
- "value":"NUHS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100",
- "zone":"Enter"
- }
- ]
- ],
- "leftShift":[
- [
- {
- "id":"k30",
- "value":"LSFT",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k225",
- "zone":"Left Shift"
- },
- {
- "id":"k31",
- "value":"NO",
- "type":"nodisplay",
- "showMenu":false
- }
- ],
- [
- {
- "id":"k30",
- "value":"LSFT",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k125",
- "zone":"Left Shift"
- },
- {
- "id":"k31",
- "value":"NUBS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100",
- "zone":"Left Shift"
- }
- ]
- ],
- "row4":[
- {
- "id":"k32",
- "value":"Z",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- },
- {
- "id":"k33",
- "value":"X",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- },
- {
- "id":"k34",
- "value":"C",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- },
- {
- "id":"k35",
- "value":"V",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- },
- {
- "id":"k36",
- "value":"B",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- },
- {
- "id":"k37",
- "value":"N",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- },
- {
- "id":"k38",
- "value":"M",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- },
- {
- "id":"k39",
- "value":"COMM",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- },
- {
- "id":"k3A",
- "value":"DOT",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- }
- ],
- "rightShift":[
- [
- {
- "id":"k3B",
- "value":"SLSH",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100",
- "zone":"Right Shift"
- },
- {
- "id":"k3C",
- "value":"RSFT",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k275",
- "zone":"Right Shift"
- },
- {
- "id":"k3D",
- "value":"NO",
- "type":"nodisplay"
- }
- ],
- [
- {
- "id":"k3B",
- "value":"SLSH",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100",
- "zone":"Right Shift"
- },
- {
- "id":"k3C",
- "value":"RSFT",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k175",
- "zone":"Right Shift"
- },
- {
- "id":"k3D",
- "value":"L1",
- "type":"momentary",
- "secondary":null,
- "showMenu":false,
- "shape":"k100",
- "zone":"Right Shift"
- }
- ],
- [
- {
- "id":"k3B",
- "value":"SLSH",
- "type":"tapkey",
- "secondary":"RSFT",
- "showMenu":false,
- "shape":"k175",
- "zone":"Right Shift"
- },
- {
- "id":"k3C",
- "value":"UP",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100",
- "zone":"Right Shift"
- },
- {
- "id":"k3D",
- "value":"HYPR",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100",
- "zone":"Right Shift"
- }
- ]
- ],
- "row5":[
- [
- {
- "id":"k40",
- "value":"MEH",
- "type":"normal",
- "secondary":"MEH",
- "showMenu":false,
- "shape":"k125",
- "zone":"Bottom Row"
- },
- {
- "id":"k41",
- "value":"LALT",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k125",
- "zone":"Bottom Row"
- },
- {
- "id":"k42",
- "value":"LGUI",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k125",
- "zone":"Bottom Row"
- }
- ],
- [
- {
- "id":"k40",
- "value":"LCTL",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k150",
- "zone":"Bottom Row"
- },
- {
- "id":"k41",
- "value":"LGUI",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100",
- "zone":"Bottom Row"
- },
- {
- "id":"k42",
- "value":"LALT",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k150",
- "zone":"Bottom Row"
- }
- ]
- ],
- "space":[
- [
- [
- {
- "id":"k44",
- "value":"NO",
- "type":"nodisplay"
- },
- {
- "id":"k45",
- "value":"SPC",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k625",
- "zone":"Space"
- },
- {
- "id":"k46",
- "value":"NO",
- "type":"nodisplay"
- }
- ],
- [
- {
- "id":"k44",
- "value":"SPC",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k275",
- "zone":"Space"
- },
- {
- "id":"k45",
- "value":"L2",
- "type":"taptoggle",
- "secondary":null,
- "showMenu":false,
- "shape":"k125",
- "zone":"Space"
- },
- {
- "id":"k46",
- "value":"L1",
- "type":"momentary",
- "secondary":null,
- "showMenu":false,
- "shape":"k225",
- "zone":"Space"
- }
- ],
- [
- {
- "id":"k44",
- "value":"ENT",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k225",
- "zone":"Space"
- },
- {
- "id":"k45",
- "value":"BL_STEP",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k125",
- "zone":"Space"
- },
- {
- "id":"k46",
- "value":"SPC",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k275",
- "zone":"Space"
- }
- ]
- ],
- [
- [
- {
- "id":"k44",
- "value":"NO",
- "type":"nodisplay"
- },
- {
- "id":"k45",
- "value":"SPC",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k700",
- "zone":"Space"
- },
- {
- "id":"k46",
- "value":"NO",
- "type":"nodisplay"
- }
- ],
- [
- {
- "id":"k44",
- "value":"ENT",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k275",
- "zone":"Space"
- },
- {
- "id":"k45",
- "value":"BL_STEP",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k150",
- "zone":"Space"
- },
- {
- "id":"k46",
- "value":"SPC",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k275",
- "zone":"Space"
- }
- ]
- ]
- ],
- "bottomRight":[
- [
- [
- {
- "id":"k48",
- "value":"RGUI",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k125",
- "zone":"Bottom Right"
- },
- {
- "id":"k49",
- "value":"RALT",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k125",
- "zone":"Bottom Right"
- },
- {
- "id":"k4A",
- "value":"NO",
- "type":"nodisplay"
- },
- {
- "id":"k4B",
- "value":"APP",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k125",
- "zone":"Bottom Right"
- },
- {
- "id":"k4C",
- "value":"RCTL",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k125",
- "zone":"Bottom Right"
- }
- ],
- [
- {
- "id":"k48",
- "value":"L3",
- "type":"taptoggle",
- "secondary":null,
- "showMenu":false,
- "shape":"k100",
- "zone":"Bottom Right"
- },
- {
- "id":"k49",
- "value":"L4",
- "type":"direct",
- "secondary":null,
- "showMenu":false,
- "shape":"k100",
- "zone":"Bottom Right"
- },
- {
- "id":"k4A",
- "value":"LEFT",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100",
- "zone":"Bottom Right"
- },
- {
- "id":"k4B",
- "value":"DOWN",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100",
- "zone":"Bottom Right"
- },
- {
- "id":"k4C",
- "value":"RIGHT",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100",
- "zone":"Bottom Right"
- }
- ]
- ],
- [
- [
- {
- "id":"k48",
- "value":"NO",
- "type":"nodisplay"
- },
- {
- "id":"k49",
- "value":"RALT",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k150",
- "zone":"Bottom Right"
- },
- {
- "id":"k4A",
- "value":"NO",
- "type":"nodisplay"
- },
- {
- "id":"k4B",
- "value":"APP",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100",
- "zone":"Bottom Right"
- },
- {
- "id":"k4C",
- "value":"RCTL",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k150",
- "zone":"Bottom Right"
- }
- ],
- [
- {
- "id":"k48",
- "value":"NO",
- "type":"nodisplay"
- },
- {
- "id":"k49",
- "value":"RALT",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100",
- "zone":"Bottom Right"
- },
- {
- "id":"k4A",
- "value":"LEFT",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100",
- "zone":"Bottom Right"
- },
- {
- "id":"k4B",
- "value":"DOWN",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100",
- "zone":"Bottom Right"
- },
- {
- "id":"k4C",
- "value":"RIGHT",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100",
- "zone":"Bottom Right"
- }
- ]
- ]
- ]
- },
- {
- "row1":[
- {
- "id":"k00",
- "value":"GRV",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- },
- {
- "id":"k01",
- "value":"F1",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- },
- {
- "id":"k02",
- "value":"F2",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- },
- {
- "id":"k03",
- "value":"F3",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- },
- {
- "id":"k04",
- "value":"F4",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- },
- {
- "id":"k05",
- "value":"F5",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- },
- {
- "id":"k06",
- "value":"F6",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- },
- {
- "id":"k07",
- "value":"F7",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- },
- {
- "id":"k08",
- "value":"F8",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- },
- {
- "id":"k09",
- "value":"F9",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- },
- {
- "id":"k0A",
- "value":"F10",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- },
- {
- "id":"k0B",
- "value":"F11",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- },
- {
- "id":"k0C",
- "value":"F12",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- }
- ],
- "backspace":[
- [
- {
- "id":"k0D",
- "value":"DEL",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k200"
- },
- {
- "id":"k2D",
- "value":"NO",
- "type":"nodisplay",
- "showMenu":false
- }
- ],
- [
- {
- "id":"k0D",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- },
- {
- "id":"k2D",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- }
- ]
- ],
- "row2":[
- {
- "id":"k10",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k150"
- },
- {
- "id":"k11",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- },
- {
- "id":"k12",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- },
- {
- "id":"k13",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- },
- {
- "id":"k14",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- },
- {
- "id":"k15",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- },
- {
- "id":"k16",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- },
- {
- "id":"k17",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- },
- {
- "id":"k18",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- },
- {
- "id":"k19",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- },
- {
- "id":"k1A",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- },
- {
- "id":"k1B",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- },
- {
- "id":"k1C",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- }
- ],
- "row2pipe":[
- [
- {
- "id":"k1D",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k150"
- }
- ],
- [
- {
- "id":"k1D",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"kISO"
- }
- ]
- ],
- "caps":[
- [
- {
- "id":"k20",
- "value":"CAPS",
- "type":"normal",
- "secondary":"LCTL",
- "showMenu":false,
- "shape":"k175"
- }
- ],
- [
- {
- "id":"k20",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k175stepped"
- }
- ]
- ],
- "row3":[
- {
- "id":"k21",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- },
- {
- "id":"k22",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- },
- {
- "id":"k23",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- },
- {
- "id":"k24",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- },
- {
- "id":"k25",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- },
- {
- "id":"k26",
- "value":"LEFT",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- },
- {
- "id":"k27",
- "value":"DOWN",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- },
- {
- "id":"k28",
- "value":"UP",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- },
- {
- "id":"k29",
- "value":"RIGHT",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- },
- {
- "id":"k2A",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- },
- {
- "id":"k2B",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- }
- ],
- "enter":[
- [
- {
- "id":"k2C",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k225"
- }
- ],
- [
- {
- "id":"k2C",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- }
- ]
- ],
- "leftShift":[
- [
- {
- "id":"k30",
- "value":"LSFT",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k225"
- },
- {
- "id":"k31",
- "value":"NO",
- "type":"nodisplay",
- "showMenu":false
- }
- ],
- [
- {
- "id":"k30",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k125"
- },
- {
- "id":"k31",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- }
- ]
- ],
- "row4":[
- {
- "id":"k32",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- },
- {
- "id":"k33",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- },
- {
- "id":"k34",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- },
- {
- "id":"k35",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- },
- {
- "id":"k36",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- },
- {
- "id":"k37",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- },
- {
- "id":"k38",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- },
- {
- "id":"k39",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- },
- {
- "id":"k3A",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- }
- ],
- "rightShift":[
- [
- {
- "id":"k3B",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- },
- {
- "id":"k3C",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k275"
- },
- {
- "id":"k3D",
- "value":"NO",
- "type":"nodisplay"
- }
- ],
- [
- {
- "id":"k3B",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- },
- {
- "id":"k3C",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k175"
- },
- {
- "id":"k3D",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- }
- ],
- [
- {
- "id":"k3B",
- "value":"TRNS",
- "type":"normal",
- "secondary":"RSFT",
- "showMenu":false,
- "shape":"k175"
- },
- {
- "id":"k3C",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- },
- {
- "id":"k3D",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- }
- ]
- ],
- "row5":[
- [
- {
- "id":"k40",
- "value":"TRNS",
- "type":"normal",
- "secondary":"MEH",
- "showMenu":false,
- "shape":"k125"
- },
- {
- "id":"k41",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k125"
- },
- {
- "id":"k42",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k125"
- }
- ],
- [
- {
- "id":"k40",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k150"
- },
- {
- "id":"k41",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- },
- {
- "id":"k42",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k150"
- }
- ]
- ],
- "space":[
- [
- [
- {
- "id":"k44",
- "value":"NO",
- "type":"nodisplay"
- },
- {
- "id":"k45",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k625"
- },
- {
- "id":"k46",
- "value":"NO",
- "type":"nodisplay"
- }
- ],
- [
- {
- "id":"k44",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k275"
- },
- {
- "id":"k45",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k125"
- },
- {
- "id":"k46",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k225"
- }
- ],
- [
- {
- "id":"k44",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k225"
- },
- {
- "id":"k45",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k125"
- },
- {
- "id":"k46",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k275"
- }
- ]
- ],
- [
- [
- {
- "id":"k44",
- "value":"NO",
- "type":"nodisplay"
- },
- {
- "id":"k45",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k700"
- },
- {
- "id":"k46",
- "value":"NO",
- "type":"nodisplay"
- }
- ],
- [
- {
- "id":"k44",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k275"
- },
- {
- "id":"k45",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k150"
- },
- {
- "id":"k46",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k275"
- }
- ]
- ]
- ],
- "bottomRight":[
- [
- [
- {
- "id":"k48",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k125"
- },
- {
- "id":"k49",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k125"
- },
- {
- "id":"k4A",
- "value":"NO",
- "type":"nodisplay"
- },
- {
- "id":"k4B",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k125"
- },
- {
- "id":"k4C",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k125"
- }
- ],
- [
- {
- "id":"k48",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- },
- {
- "id":"k49",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- },
- {
- "id":"k4A",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- },
- {
- "id":"k4B",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- },
- {
- "id":"k4C",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- }
- ]
- ],
- [
- [
- {
- "id":"k48",
- "value":"NO",
- "type":"nodisplay"
- },
- {
- "id":"k49",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k150"
- },
- {
- "id":"k4A",
- "value":"NO",
- "type":"nodisplay"
- },
- {
- "id":"k4B",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- },
- {
- "id":"k4C",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k150"
- }
- ],
- [
- {
- "id":"k48",
- "value":"NO",
- "type":"nodisplay"
- },
- {
- "id":"k49",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- },
- {
- "id":"k4A",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- },
- {
- "id":"k4B",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- },
- {
- "id":"k4C",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- }
- ]
- ]
- ]
- },
- {
- "row1":[
- {
- "id":"k00",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- },
- {
- "id":"k01",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- },
- {
- "id":"k02",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- },
- {
- "id":"k03",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- },
- {
- "id":"k04",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- },
- {
- "id":"k05",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- },
- {
- "id":"k06",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- },
- {
- "id":"k07",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- },
- {
- "id":"k08",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- },
- {
- "id":"k09",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- },
- {
- "id":"k0A",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- },
- {
- "id":"k0B",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- },
- {
- "id":"k0C",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- }
- ],
- "backspace":[
- [
- {
- "id":"k0D",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k200"
- },
- {
- "id":"k2D",
- "value":"NO",
- "type":"nodisplay",
- "showMenu":false
- }
- ],
- [
- {
- "id":"k0D",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- },
- {
- "id":"k2D",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- }
- ]
- ],
- "row2":[
- {
- "id":"k10",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k150"
- },
- {
- "id":"k11",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- },
- {
- "id":"k12",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- },
- {
- "id":"k13",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- },
- {
- "id":"k14",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- },
- {
- "id":"k15",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- },
- {
- "id":"k16",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- },
- {
- "id":"k17",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- },
- {
- "id":"k18",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- },
- {
- "id":"k19",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- },
- {
- "id":"k1A",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- },
- {
- "id":"k1B",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- },
- {
- "id":"k1C",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- }
- ],
- "row2pipe":[
- [
- {
- "id":"k1D",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k150"
- }
- ],
- [
- {
- "id":"k1D",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"kISO"
- }
- ]
- ],
- "caps":[
- [
- {
- "id":"k20",
- "value":"TRNS",
- "type":"normal",
- "secondary":"LCTL",
- "showMenu":false,
- "shape":"k175"
- }
- ],
- [
- {
- "id":"k20",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k175stepped"
- }
- ]
- ],
- "row3":[
- {
- "id":"k21",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- },
- {
- "id":"k22",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- },
- {
- "id":"k23",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- },
- {
- "id":"k24",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- },
- {
- "id":"k25",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- },
- {
- "id":"k26",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- },
- {
- "id":"k27",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- },
- {
- "id":"k28",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- },
- {
- "id":"k29",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- },
- {
- "id":"k2A",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- },
- {
- "id":"k2B",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- }
- ],
- "enter":[
- [
- {
- "id":"k2C",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k225"
- }
- ],
- [
- {
- "id":"k2C",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- }
- ]
- ],
- "leftShift":[
- [
- {
- "id":"k30",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k225"
- },
- {
- "id":"k31",
- "value":"NO",
- "type":"nodisplay",
- "showMenu":false
- }
- ],
- [
- {
- "id":"k30",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k125"
- },
- {
- "id":"k31",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- }
- ]
- ],
- "row4":[
- {
- "id":"k32",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- },
- {
- "id":"k33",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- },
- {
- "id":"k34",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- },
- {
- "id":"k35",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- },
- {
- "id":"k36",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- },
- {
- "id":"k37",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- },
- {
- "id":"k38",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- },
- {
- "id":"k39",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- },
- {
- "id":"k3A",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- }
- ],
- "rightShift":[
- [
- {
- "id":"k3B",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- },
- {
- "id":"k3C",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k275"
- },
- {
- "id":"k3D",
- "value":"NO",
- "type":"nodisplay"
- }
- ],
- [
- {
- "id":"k3B",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- },
- {
- "id":"k3C",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k175"
- },
- {
- "id":"k3D",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- }
- ],
- [
- {
- "id":"k3B",
- "value":"TRNS",
- "type":"normal",
- "secondary":"RSFT",
- "showMenu":false,
- "shape":"k175"
- },
- {
- "id":"k3C",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- },
- {
- "id":"k3D",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- }
- ]
- ],
- "row5":[
- [
- {
- "id":"k40",
- "value":"TRNS",
- "type":"normal",
- "secondary":"MEH",
- "showMenu":false,
- "shape":"k125"
- },
- {
- "id":"k41",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k125"
- },
- {
- "id":"k42",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k125"
- }
- ],
- [
- {
- "id":"k40",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k150"
- },
- {
- "id":"k41",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- },
- {
- "id":"k42",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k150"
- }
- ]
- ],
- "space":[
- [
- [
- {
- "id":"k44",
- "value":"NO",
- "type":"nodisplay"
- },
- {
- "id":"k45",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k625"
- },
- {
- "id":"k46",
- "value":"NO",
- "type":"nodisplay"
- }
- ],
- [
- {
- "id":"k44",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k275"
- },
- {
- "id":"k45",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k125"
- },
- {
- "id":"k46",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k225"
- }
- ],
- [
- {
- "id":"k44",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k225"
- },
- {
- "id":"k45",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k125"
- },
- {
- "id":"k46",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k275"
- }
- ]
- ],
- [
- [
- {
- "id":"k44",
- "value":"NO",
- "type":"nodisplay"
- },
- {
- "id":"k45",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k700"
- },
- {
- "id":"k46",
- "value":"NO",
- "type":"nodisplay"
- }
- ],
- [
- {
- "id":"k44",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k275"
- },
- {
- "id":"k45",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k150"
- },
- {
- "id":"k46",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k275"
- }
- ]
- ]
- ],
- "bottomRight":[
- [
- [
- {
- "id":"k48",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k125"
- },
- {
- "id":"k49",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k125"
- },
- {
- "id":"k4A",
- "value":"NO",
- "type":"nodisplay"
- },
- {
- "id":"k4B",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k125"
- },
- {
- "id":"k4C",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k125"
- }
- ],
- [
- {
- "id":"k48",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- },
- {
- "id":"k49",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- },
- {
- "id":"k4A",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- },
- {
- "id":"k4B",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- },
- {
- "id":"k4C",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- }
- ]
- ],
- [
- [
- {
- "id":"k48",
- "value":"NO",
- "type":"nodisplay"
- },
- {
- "id":"k49",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k150"
- },
- {
- "id":"k4A",
- "value":"NO",
- "type":"nodisplay"
- },
- {
- "id":"k4B",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- },
- {
- "id":"k4C",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k150"
- }
- ],
- [
- {
- "id":"k48",
- "value":"NO",
- "type":"nodisplay"
- },
- {
- "id":"k49",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- },
- {
- "id":"k4A",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- },
- {
- "id":"k4B",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- },
- {
- "id":"k4C",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- }
- ]
- ]
- ]
- },
- {
- "row1":[
- {
- "id":"k00",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- },
- {
- "id":"k01",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- },
- {
- "id":"k02",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- },
- {
- "id":"k03",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- },
- {
- "id":"k04",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- },
- {
- "id":"k05",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- },
- {
- "id":"k06",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- },
- {
- "id":"k07",
- "value":"PSLS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- },
- {
- "id":"k08",
- "value":"PAST",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- },
- {
- "id":"k09",
- "value":"PEQL",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- },
- {
- "id":"k0A",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- },
- {
- "id":"k0B",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- },
- {
- "id":"k0C",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- }
- ],
- "backspace":[
- [
- {
- "id":"k0D",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k200"
- },
- {
- "id":"k2D",
- "value":"NO",
- "type":"nodisplay",
- "showMenu":false
- }
- ],
- [
- {
- "id":"k0D",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- },
- {
- "id":"k2D",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- }
- ]
- ],
- "row2":[
- {
- "id":"k10",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k150"
- },
- {
- "id":"k11",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- },
- {
- "id":"k12",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- },
- {
- "id":"k13",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- },
- {
- "id":"k14",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- },
- {
- "id":"k15",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- },
- {
- "id":"k16",
- "value":"P7",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- },
- {
- "id":"k17",
- "value":"P8",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- },
- {
- "id":"k18",
- "value":"P8",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- },
- {
- "id":"k19",
- "value":"PMNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- },
- {
- "id":"k1A",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- },
- {
- "id":"k1B",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- },
- {
- "id":"k1C",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- }
- ],
- "row2pipe":[
- [
- {
- "id":"k1D",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k150"
- }
- ],
- [
- {
- "id":"k1D",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"kISO"
- }
- ]
- ],
- "caps":[
- [
- {
- "id":"k20",
- "value":"TRNS",
- "type":"normal",
- "secondary":"LCTL",
- "showMenu":false,
- "shape":"k175"
- }
- ],
- [
- {
- "id":"k20",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k175stepped"
- }
- ]
- ],
- "row3":[
- {
- "id":"k21",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- },
- {
- "id":"k22",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- },
- {
- "id":"k23",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- },
- {
- "id":"k24",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- },
- {
- "id":"k25",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- },
- {
- "id":"k26",
- "value":"P4",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- },
- {
- "id":"k27",
- "value":"P5",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- },
- {
- "id":"k28",
- "value":"P6",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- },
- {
- "id":"k29",
- "value":"PPLS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- },
- {
- "id":"k2A",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- },
- {
- "id":"k2B",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- }
- ],
- "enter":[
- [
- {
- "id":"k2C",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k225"
- }
- ],
- [
- {
- "id":"k2C",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- }
- ]
- ],
- "leftShift":[
- [
- {
- "id":"k30",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k225"
- },
- {
- "id":"k31",
- "value":"NO",
- "type":"nodisplay",
- "showMenu":false
- }
- ],
- [
- {
- "id":"k30",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k125"
- },
- {
- "id":"k31",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- }
- ]
- ],
- "row4":[
- {
- "id":"k32",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- },
- {
- "id":"k33",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- },
- {
- "id":"k34",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- },
- {
- "id":"k35",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- },
- {
- "id":"k36",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- },
- {
- "id":"k37",
- "value":"P1",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- },
- {
- "id":"k38",
- "value":"P2",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- },
- {
- "id":"k39",
- "value":"P3",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- },
- {
- "id":"k3A",
- "value":"PDOT",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- }
- ],
- "rightShift":[
- [
- {
- "id":"k3B",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- },
- {
- "id":"k3C",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k275"
- },
- {
- "id":"k3D",
- "value":"NO",
- "type":"nodisplay"
- }
- ],
- [
- {
- "id":"k3B",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- },
- {
- "id":"k3C",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k175"
- },
- {
- "id":"k3D",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- }
- ],
- [
- {
- "id":"k3B",
- "value":"PENT",
- "type":"normal",
- "secondary":"RSFT",
- "showMenu":false,
- "shape":"k175"
- },
- {
- "id":"k3C",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- },
- {
- "id":"k3D",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- }
- ]
- ],
- "row5":[
- [
- {
- "id":"k40",
- "value":"TRNS",
- "type":"normal",
- "secondary":"MEH",
- "showMenu":false,
- "shape":"k125"
- },
- {
- "id":"k41",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k125"
- },
- {
- "id":"k42",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k125"
- }
- ],
- [
- {
- "id":"k40",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k150"
- },
- {
- "id":"k41",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- },
- {
- "id":"k42",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k150"
- }
- ]
- ],
- "space":[
- [
- [
- {
- "id":"k44",
- "value":"NO",
- "type":"nodisplay"
- },
- {
- "id":"k45",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k625"
- },
- {
- "id":"k46",
- "value":"NO",
- "type":"nodisplay"
- }
- ],
- [
- {
- "id":"k44",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k275"
- },
- {
- "id":"k45",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k125"
- },
- {
- "id":"k46",
- "value":"P0",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k225"
- }
- ],
- [
- {
- "id":"k44",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k225"
- },
- {
- "id":"k45",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k125"
- },
- {
- "id":"k46",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k275"
- }
- ]
- ],
- [
- [
- {
- "id":"k44",
- "value":"NO",
- "type":"nodisplay"
- },
- {
- "id":"k45",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k700"
- },
- {
- "id":"k46",
- "value":"NO",
- "type":"nodisplay"
- }
- ],
- [
- {
- "id":"k44",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k275"
- },
- {
- "id":"k45",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k150"
- },
- {
- "id":"k46",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k275"
- }
- ]
- ]
- ],
- "bottomRight":[
- [
- [
- {
- "id":"k48",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k125"
- },
- {
- "id":"k49",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k125"
- },
- {
- "id":"k4A",
- "value":"NO",
- "type":"nodisplay"
- },
- {
- "id":"k4B",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k125"
- },
- {
- "id":"k4C",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k125"
- }
- ],
- [
- {
- "id":"k48",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- },
- {
- "id":"k49",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- },
- {
- "id":"k4A",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- },
- {
- "id":"k4B",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- },
- {
- "id":"k4C",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- }
- ]
- ],
- [
- [
- {
- "id":"k48",
- "value":"NO",
- "type":"nodisplay"
- },
- {
- "id":"k49",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k150"
- },
- {
- "id":"k4A",
- "value":"NO",
- "type":"nodisplay"
- },
- {
- "id":"k4B",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- },
- {
- "id":"k4C",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k150"
- }
- ],
- [
- {
- "id":"k48",
- "value":"NO",
- "type":"nodisplay"
- },
- {
- "id":"k49",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- },
- {
- "id":"k4A",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- },
- {
- "id":"k4B",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- },
- {
- "id":"k4C",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- }
- ]
- ]
- ]
- },
- {
- "row1":[
- {
- "id":"k00",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- },
- {
- "id":"k01",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- },
- {
- "id":"k02",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- },
- {
- "id":"k03",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- },
- {
- "id":"k04",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- },
- {
- "id":"k05",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- },
- {
- "id":"k06",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- },
- {
- "id":"k07",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- },
- {
- "id":"k08",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- },
- {
- "id":"k09",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- },
- {
- "id":"k0A",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- },
- {
- "id":"k0B",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- },
- {
- "id":"k0C",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- }
- ],
- "backspace":[
- [
- {
- "id":"k0D",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k200"
- },
- {
- "id":"k2D",
- "value":"NO",
- "type":"nodisplay",
- "showMenu":false
- }
- ],
- [
- {
- "id":"k0D",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- },
- {
- "id":"k2D",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- }
- ]
- ],
- "row2":[
- {
- "id":"k10",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k150"
- },
- {
- "id":"k11",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- },
- {
- "id":"k12",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- },
- {
- "id":"k13",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- },
- {
- "id":"k14",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- },
- {
- "id":"k15",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- },
- {
- "id":"k16",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- },
- {
- "id":"k17",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- },
- {
- "id":"k18",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- },
- {
- "id":"k19",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- },
- {
- "id":"k1A",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- },
- {
- "id":"k1B",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- },
- {
- "id":"k1C",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- }
- ],
- "row2pipe":[
- [
- {
- "id":"k1D",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k150"
- }
- ],
- [
- {
- "id":"k1D",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"kISO"
- }
- ]
- ],
- "caps":[
- [
- {
- "id":"k20",
- "value":"TRNS",
- "type":"normal",
- "secondary":"LCTL",
- "showMenu":false,
- "shape":"k175"
- }
- ],
- [
- {
- "id":"k20",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k175stepped"
- }
- ]
- ],
- "row3":[
- {
- "id":"k21",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- },
- {
- "id":"k22",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- },
- {
- "id":"k23",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- },
- {
- "id":"k24",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- },
- {
- "id":"k25",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- },
- {
- "id":"k26",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- },
- {
- "id":"k27",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- },
- {
- "id":"k28",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- },
- {
- "id":"k29",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- },
- {
- "id":"k2A",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- },
- {
- "id":"k2B",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- }
- ],
- "enter":[
- [
- {
- "id":"k2C",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k225"
- }
- ],
- [
- {
- "id":"k2C",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- }
- ]
- ],
- "leftShift":[
- [
- {
- "id":"k30",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k225"
- },
- {
- "id":"k31",
- "value":"NO",
- "type":"nodisplay",
- "showMenu":false
- }
- ],
- [
- {
- "id":"k30",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k125"
- },
- {
- "id":"k31",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- }
- ]
- ],
- "row4":[
- {
- "id":"k32",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- },
- {
- "id":"k33",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- },
- {
- "id":"k34",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- },
- {
- "id":"k35",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- },
- {
- "id":"k36",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- },
- {
- "id":"k37",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- },
- {
- "id":"k38",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- },
- {
- "id":"k39",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- },
- {
- "id":"k3A",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- }
- ],
- "rightShift":[
- [
- {
- "id":"k3B",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- },
- {
- "id":"k3C",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k275"
- },
- {
- "id":"k3D",
- "value":"NO",
- "type":"nodisplay"
- }
- ],
- [
- {
- "id":"k3B",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- },
- {
- "id":"k3C",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k175"
- },
- {
- "id":"k3D",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- }
- ],
- [
- {
- "id":"k3B",
- "value":"TRNS",
- "type":"normal",
- "secondary":"RSFT",
- "showMenu":false,
- "shape":"k175"
- },
- {
- "id":"k3C",
- "value":"HOME",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- },
- {
- "id":"k3D",
- "value":"PGUP",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- }
- ]
- ],
- "row5":[
- [
- {
- "id":"k40",
- "value":"TRNS",
- "type":"normal",
- "secondary":"MEH",
- "showMenu":false,
- "shape":"k125"
- },
- {
- "id":"k41",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k125"
- },
- {
- "id":"k42",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k125"
- }
- ],
- [
- {
- "id":"k40",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k150"
- },
- {
- "id":"k41",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- },
- {
- "id":"k42",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k150"
- }
- ]
- ],
- "space":[
- [
- [
- {
- "id":"k44",
- "value":"NO",
- "type":"nodisplay"
- },
- {
- "id":"k45",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k625"
- },
- {
- "id":"k46",
- "value":"NO",
- "type":"nodisplay"
- }
- ],
- [
- {
- "id":"k44",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k275"
- },
- {
- "id":"k45",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k125"
- },
- {
- "id":"k46",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k225"
- }
- ],
- [
- {
- "id":"k44",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k225"
- },
- {
- "id":"k45",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k125"
- },
- {
- "id":"k46",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k275"
- }
- ]
- ],
- [
- [
- {
- "id":"k44",
- "value":"NO",
- "type":"nodisplay"
- },
- {
- "id":"k45",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k700"
- },
- {
- "id":"k46",
- "value":"NO",
- "type":"nodisplay"
- }
- ],
- [
- {
- "id":"k44",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k275"
- },
- {
- "id":"k45",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k150"
- },
- {
- "id":"k46",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k275"
- }
- ]
- ]
- ],
- "bottomRight":[
- [
- [
- {
- "id":"k48",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k125"
- },
- {
- "id":"k49",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k125"
- },
- {
- "id":"k4A",
- "value":"NO",
- "type":"nodisplay"
- },
- {
- "id":"k4B",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k125"
- },
- {
- "id":"k4C",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k125"
- }
- ],
- [
- {
- "id":"k48",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- },
- {
- "id":"k49",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- },
- {
- "id":"k4A",
- "value":"DEL",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- },
- {
- "id":"k4B",
- "value":"HOME",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- },
- {
- "id":"k4C",
- "value":"PGDN",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- }
- ]
- ],
- [
- [
- {
- "id":"k48",
- "value":"NO",
- "type":"nodisplay"
- },
- {
- "id":"k49",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k150"
- },
- {
- "id":"k4A",
- "value":"NO",
- "type":"nodisplay"
- },
- {
- "id":"k4B",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- },
- {
- "id":"k4C",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k150"
- }
- ],
- [
- {
- "id":"k48",
- "value":"NO",
- "type":"nodisplay"
- },
- {
- "id":"k49",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- },
- {
- "id":"k4A",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- },
- {
- "id":"k4B",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- },
- {
- "id":"k4C",
- "value":"TRNS",
- "type":"normal",
- "secondary":null,
- "showMenu":false,
- "shape":"k100"
- }
- ]
- ]
- ]
- }
- ],
- "layoutName":"twschum_DZ60_b_4_10_v1.2",
- "timestamp":1525116588644
-}
diff --git a/keyboards/dz60/keymaps/twschum_b_4_10/rules.mk b/keyboards/dz60/keymaps/twschum_b_4_10/rules.mk
deleted file mode 100644
index 932a64748d..0000000000
--- a/keyboards/dz60/keymaps/twschum_b_4_10/rules.mk
+++ /dev/null
@@ -1,15 +0,0 @@
-# Build Options
-# override the options specified in dz60/rules.mk
-BOOTMAGIC_ENABLE = no # Enable Bootmagic Lite
-MOUSEKEY_ENABLE = yes # Mouse keys
-EXTRAKEY_ENABLE = yes # Audio control and System control
-CONSOLE_ENABLE = no # Console for debug
-COMMAND_ENABLE = no # Commands for debug and configuration
-# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
-NKRO_ENABLE = yes # USB Nkey Rollover
-BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
-RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
-KEY_LOCK_ENABLE = yes
-
-# Enables including users/twschum/twschum.h
-USER_NAME := twschum
diff --git a/keyboards/dz60/keymaps/xtonhasvim/config.h b/keyboards/dz60/keymaps/xtonhasvim/config.h
deleted file mode 100644
index b1f549e0ba..0000000000
--- a/keyboards/dz60/keymaps/xtonhasvim/config.h
+++ /dev/null
@@ -1,17 +0,0 @@
-#ifndef CONFIG_KEYMAP_H
-#define CONFIG_KEYMAP_H
-
-#include "../../config.h"
-
-// help for fast typist+dual function keys?
-#define PERMISSIVE_HOLD
-
-/* speed up mousekeys a bit */
-#define MOUSEKEY_DELAY 50
-#define MOUSEKEY_INTERVAL 20
-#define MOUSEKEY_MAX_SPEED 8
-#define MOUSEKEY_TIME_TO_MAX 30
-#define MOUSEKEY_WHEEL_MAX_SPEED 8
-#define MOUSEKEY_WHEEL_TIME_TO_MAX 40
-
-#endif
diff --git a/keyboards/dz60/keymaps/xtonhasvim/keymap.c b/keyboards/dz60/keymaps/xtonhasvim/keymap.c
deleted file mode 100644
index 997ae91547..0000000000
--- a/keyboards/dz60/keymaps/xtonhasvim/keymap.c
+++ /dev/null
@@ -1,87 +0,0 @@
-#include QMK_KEYBOARD_H
-#include "xtonhasvim.h"
-
-enum layers {
- _QWERTY,
- _FUN,
- _MOVE,
- _MOUSE,
- _CMD
-};
-
-extern uint8_t vim_cmd_layer(void) { return _CMD; }
-
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
- [_QWERTY] = LAYOUT(
- 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_NO, 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_LBRC, KC_RBRC, KC_BSLS,
- LCTL_T(KC_ESC), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, LT(_MOVE,KC_SCLN), KC_QUOT, KC_ENT,
- KC_LSFT, KC_NO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_NO,
- LSFT(KC_LALT), KC_LALT, KC_LGUI, VIM_START, TG(_MOUSE), KC_SPC, KC_RGUI, KC_RALT, X_____X, KC_RCTL, MO(_FUN)),
-
- [_FUN] = LAYOUT(
- KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, KC_DEL,
- _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, QK_BOOT,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, BL_DOWN,BL_TOGG, BL_UP, BL_STEP, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, TO(_QWERTY)),
-
- [_MOVE] = LAYOUT(
- X_____X, X_____X, X_____X, X_____X, X_____X, X_____X, X_____X, X_____X, X_____X, X_____X, X_____X, X_____X, X_____X, X_____X, X_____X,
- X_____X, X_____X, X_____X, X_____X, X_____X, X_____X, KC_HOME, KC_PGDN, KC_PGUP, KC_END, X_____X, X_____X, X_____X, X_____X,
- X_____X, X_____X, LGUI(KC_LBRC), LGUI(LSFT(KC_LBRC)), LGUI(LSFT(KC_RBRC)), LGUI(KC_RBRC), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, X_____X, X_____X, X_____X,
- _______, X_____X, X_____X, X_____X, X_____X, X_____X, X_____X, X_____X, X_____X, X_____X, X_____X, X_____X, X_____X, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, TO(_QWERTY)),
-
-
- [_MOUSE] = LAYOUT(
- X_____X, X_____X, X_____X, X_____X, X_____X, X_____X, X_____X, X_____X, X_____X, X_____X, X_____X, X_____X, X_____X, X_____X, X_____X,
- X_____X, X_____X, X_____X, KC_MS_UP, X_____X, X_____X, KC_MS_WH_LEFT, KC_MS_WH_DOWN, KC_MS_WH_UP, KC_MS_WH_RIGHT, X_____X, X_____X, X_____X, X_____X,
- X_____X, X_____X,KC_MS_LEFT, KC_MS_DOWN, KC_MS_RIGHT, X_____X, X_____X, KC_MS_BTN1, KC_MS_BTN2, KC_MS_BTN3, X_____X, X_____X, X_____X,
- _______, X_____X, X_____X, X_____X, X_____X, X_____X, X_____X, X_____X, X_____X, X_____X, X_____X, X_____X, X_____X, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, TO(_QWERTY)),
-
- [_CMD] = LAYOUT(
- X_____X, X_____X, X_____X, X_____X, X_____X, X_____X, X_____X, X_____X, X_____X, X_____X, X_____X, X_____X, X_____X, X_____X, X_____X,
- X_____X, X_____X, VIM_W, VIM_E, X_____X, X_____X, VIM_Y, VIM_U, VIM_I, VIM_O, VIM_P, X_____X, X_____X, X_____X,
- VIM_ESC, VIM_A, VIM_S, VIM_D, X_____X, VIM_G, VIM_H, VIM_J, VIM_K, VIM_L, X_____X, X_____X, X_____X,
- VIM_SHIFT, X_____X, X_____X, VIM_X, VIM_C, VIM_V, VIM_B, X_____X, X_____X, VIM_COMMA, VIM_PERIOD, X_____X, VIM_SHIFT,X_____X,
- _______, _______, _______, TO(_QWERTY), X_____X, X_____X, _______, _______, _______, _______, TO(_QWERTY)),
-
-};
-
-#define LED_BIT 1 << 2
-#define LED_MASK ~(1 << 2)
-
-void user_led_on(void) {
- DDRB |= LED_BIT;
- PORTB &= LED_MASK;
-}
-
-void user_led_off(void) {
- DDRB &= ~LED_BIT;
- PORTB &= LED_MASK;
-}
-
-void matrix_init_user(void) {
- user_led_off();
-}
-
-layer_state_t layer_state_set_user(layer_state_t state) {
- static uint32_t last_state = 0;
-
- if(last_state != state) {
- switch (get_highest_layer(state)) {
- case _CMD:
- user_led_on();
- break;
- default:
- user_led_off();
- break;
- }
- last_state = state;
- }
- return state;
-}
diff --git a/keyboards/dz60/keymaps/xtonhasvim/readme.md b/keyboards/dz60/keymaps/xtonhasvim/readme.md
deleted file mode 100644
index 5d0e38a3eb..0000000000
--- a/keyboards/dz60/keymaps/xtonhasvim/readme.md
+++ /dev/null
@@ -1,10 +0,0 @@
-# Xton has a DZ60 and it's Vimtastic!
-
-Mine has a split spacebar, no arrowkeys and an opaque case. Changes from the default layout:
-
-* Vim mode toggled by hitting left spacebar (see `users/xtonhasvim`). Reusing the capslock LED to indicate VIM is on.
-* Momentary directional control by holding down `;`.
-* Mousekeys toggled with middle space button.
-* Escape is dual-function with control (which replaces capslock AS IT SHOULD BE).
-* Bottom left key is the "halp my kb doesn't work" key that always dumps you back to QWERTY.
-
diff --git a/keyboards/dztech/dz60rgb/dz60rgb.c b/keyboards/dztech/dz60rgb/dz60rgb.c
index 811dd0cd91..826e3502eb 100644
--- a/keyboards/dztech/dz60rgb/dz60rgb.c
+++ b/keyboards/dztech/dz60rgb/dz60rgb.c
@@ -1,7 +1,7 @@
#include "quantum.h"
#ifdef RGB_MATRIX_ENABLE
-const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = {
+const is31fl3733_led_t PROGMEM g_is31fl3733_leds[RGB_MATRIX_LED_COUNT] = {
{ 0, K_14, J_14, L_14 },
{ 0, K_13, J_13, L_13 },
{ 0, K_12, J_12, L_12 },
diff --git a/keyboards/dztech/dz60rgb/keymaps/moults31/keymap.c b/keyboards/dztech/dz60rgb/keymaps/moults31/keymap.c
deleted file mode 100644
index a659770f82..0000000000
--- a/keyboards/dztech/dz60rgb/keymaps/moults31/keymap.c
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- * Copyright 2021 moults31
- *
- * 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(
- QK_GESC, 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_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,
- CTL_T(KC_CAPS), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
- KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_DOT, KC_SLSH, KC_RSHFT, KC_UP, LT(2, KC_DEL),
- KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_COMM, MO(1), KC_LEFT, KC_DOWN, KC_RGHT
- ),
- [1] = LAYOUT(
- KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL,
- _______, _______, KC_UP, _______, _______, _______, KC_CALC, _______, KC_INS, _______, KC_PSCR, KC_HOME, KC_END, QK_BOOT,
- _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, KC_PGUP, KC_PGDN, EE_CLR,
- _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, KC_MPLY, KC_VOLU, KC_MUTE,
- _______, _______, _______, _______, _______, _______, KC_MPRV, KC_VOLD, KC_MNXT
- ),
- [2] = LAYOUT(
- RGB_MOD, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL,
- _______, _______, RGB_HUI, _______, _______, _______, _______, _______, _______, _______, _______, _______, EE_CLR, QK_BOOT,
- _______, RGB_SAD, RGB_HUD, RGB_SAI, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_TOG, RGB_VAI, _______,
- _______, _______, _______, _______, _______, _______, RGB_SPI, RGB_VAD, RGB_SPD
- ),
-};
diff --git a/keyboards/dztech/dz60rgb/keymaps/moults31/readme.md b/keyboards/dztech/dz60rgb/keymaps/moults31/readme.md
deleted file mode 100644
index 19bccf13e6..0000000000
--- a/keyboards/dztech/dz60rgb/keymaps/moults31/readme.md
+++ /dev/null
@@ -1,11 +0,0 @@
-# moults31 DZ60RBG V2 Layout
-
-Similar to the default dz60rgb v2 layout with some minor changes for quality of life in programming.
-
-Brief summary of improvements over default:
-* More intuitive media keys in layer 1
-* More intuitive RGB control keys in layer 2
-* Standard left-alt
-* Anne Pro 2 style home/end placement in layer 1
-* Grave key moved to right-alt position for easier ctrl-grave vscode shortcut
-* Removed layer 4 (mac layout?)
diff --git a/keyboards/dztech/dz60rgb/v1/config.h b/keyboards/dztech/dz60rgb/v1/config.h
index 82d7b6d1e1..af72678922 100644
--- a/keyboards/dztech/dz60rgb/v1/config.h
+++ b/keyboards/dztech/dz60rgb/v1/config.h
@@ -55,7 +55,6 @@
// # define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH
# define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_CYCLE_ALL
-# define DRIVER_ADDR_1 0b1010000
-# define DRIVER_COUNT 1
+# define IS31FL3733_I2C_ADDRESS_1 IS31FL3733_I2C_ADDRESS_GND_GND
# define RGB_MATRIX_LED_COUNT 63
#endif
diff --git a/keyboards/dztech/dz60rgb/v2/config.h b/keyboards/dztech/dz60rgb/v2/config.h
index 094478f34d..2470e7b3f9 100644
--- a/keyboards/dztech/dz60rgb/v2/config.h
+++ b/keyboards/dztech/dz60rgb/v2/config.h
@@ -53,7 +53,6 @@
// # define ENABLE_RGB_MATRIX_SOLID_SPLASH
// # define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH
-# define DRIVER_ADDR_1 0b1010000
-# define DRIVER_COUNT 1
+# define IS31FL3733_I2C_ADDRESS_1 IS31FL3733_I2C_ADDRESS_GND_GND
# define RGB_MATRIX_LED_COUNT 63
#endif
diff --git a/keyboards/dztech/dz60rgb/v2_1/config.h b/keyboards/dztech/dz60rgb/v2_1/config.h
index a753832ed1..05cfa7d4e1 100644
--- a/keyboards/dztech/dz60rgb/v2_1/config.h
+++ b/keyboards/dztech/dz60rgb/v2_1/config.h
@@ -69,7 +69,6 @@
// # define ENABLE_RGB_MATRIX_SOLID_SPLASH
// # define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH
-# define DRIVER_ADDR_1 0b1010000
-# define DRIVER_COUNT 1
+# define IS31FL3733_I2C_ADDRESS_1 IS31FL3733_I2C_ADDRESS_GND_GND
# define RGB_MATRIX_LED_COUNT 63
#endif
diff --git a/keyboards/dztech/dz60rgb_ansi/dz60rgb_ansi.c b/keyboards/dztech/dz60rgb_ansi/dz60rgb_ansi.c
index b607a58a4e..5c06922028 100644
--- a/keyboards/dztech/dz60rgb_ansi/dz60rgb_ansi.c
+++ b/keyboards/dztech/dz60rgb_ansi/dz60rgb_ansi.c
@@ -1,7 +1,7 @@
#include "quantum.h"
#ifdef RGB_MATRIX_ENABLE
-const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = {
+const is31fl3733_led_t PROGMEM g_is31fl3733_leds[RGB_MATRIX_LED_COUNT] = {
{ 0, K_14, J_14, L_14 },
{ 0, K_13, J_13, L_13 },
{ 0, K_12, J_12, L_12 },
diff --git a/keyboards/dztech/dz60rgb_ansi/keymaps/badger/keymap.c b/keyboards/dztech/dz60rgb_ansi/keymaps/badger/keymap.c
deleted file mode 100644
index 3de7e1c194..0000000000
--- a/keyboards/dztech/dz60rgb_ansi/keymaps/badger/keymap.c
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
-Copyright 2020 Dan White <opensource@bluetufa.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 "badger.h"
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [_QWERTY_MAC] = LAYOUT_60_ansi(
- 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_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,
- MOVE_MAC, 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_LCTL, KC_LALT, KC_LGUI, KC_SPC, ADJUST, KC_RGUI, KC_RALT, MAC_POP),
-
- [_MOVE_MAC] = LAYOUT_60_ansi(
- MAC_FRC, MM_LEFT, MM_RGHT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_0, IJ_TOP, IJ_BOTT, KC_DEL,
- KC_BACK, IJ_STEP, IJ_INTO, IJ_OUT, IJ_RUN, IJ_STOP, _______, WD_BACK, KC_HOME, KC_END, WD_FRWD, IJ_BACK, IJ_FWD, KC_NEXT,
- _______, MM_LH, MM_MAX, MM_RH, IJ_FIND, IJ_IMPS, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, CM_RIGHT, CM_DOWN, _______,
- _______, MM_UH, MM_BH, MAC_CPY, MAC_PST, IJ_IMPH, _______, IJ_REN, IJ_IMPL, IJ_DECL, IJ_USAG, _______,
- _______, _______, _______, _______, _______, _______, _______, _______),
-
- [_QWERTY_LINUX] = LAYOUT_60_ansi(
- 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_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,
- MOVE, 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_LCTL, KC_LGUI, KC_LALT, KC_SPC, ADJUST, KC_LALT, KC_RGUI, KC_RCTL),
-
- [_MOVE_LINUX] = LAYOUT_60_ansi(
- KC_GRV, VD_1, VD_2, VD_3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL,
- KC_BACK, WM_VD1, WM_UH, WM_VD2, QK_BOOT, KC_MSTP, KC_MPLY, KC_PGUP, KC_HOME, KC_END, KC_PGDN, _______, _______, KC_NEXT,
- _______, WM_LH, WM_MAX, WM_RH, WD_FRWD, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, CS_RIGHT, CS_DOWN, _______,
- _______, WM_VD3, WM_BH, OS_COPY, OS_PAST, WD_BACK, KC_MNXT, KC_MUTE, KC_WBAK, KC_WFWD, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______),
-
- [_ADJUST] = LAYOUT_60_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_DEL,
- _______, _______, _______, _______, KC_WREF, KC_MSTP, KC_MPLY, KC_PGUP, _______, _______, KC_PGDN, KC_VOLD, KC_VOLU, KC_INS,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, DF_1, DF_2, KC_CAPS, _______, KC_MPRV, KC_MNXT, KC_MUTE, KC_WBAK, KC_WFWD, KC_WSCH, _______,
- _______, _______, _______, _______, _______, _______, _______, MO(_CONFIG)),
-
- [_CONFIG] = LAYOUT_60_ansi(
- _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL,
- _______, NK_ON, NK_OFF, EE_CLR, QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, KC_INS,
- _______, GE_SWAP, GE_NORM, DB_TOGG, RGB_MOD, RGB_HUI, RGB_SAI, RGB_SPI, RGB_M_B, _______, _______, RGB_TOG, _______,
- _______, LAG_SWP, LAG_NRM, _______, RGB_RMOD, RGB_HUD, RGB_SAD, RGB_SPD, RGB_M_K, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______)
-};
-
diff --git a/keyboards/dztech/dz60rgb_ansi/v1/config.h b/keyboards/dztech/dz60rgb_ansi/v1/config.h
index 5405d671a5..674871ec49 100644
--- a/keyboards/dztech/dz60rgb_ansi/v1/config.h
+++ b/keyboards/dztech/dz60rgb_ansi/v1/config.h
@@ -55,7 +55,6 @@
// # define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH
# define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_CYCLE_ALL
-# define DRIVER_ADDR_1 0b1010000
-# define DRIVER_COUNT 1
+# define IS31FL3733_I2C_ADDRESS_1 IS31FL3733_I2C_ADDRESS_GND_GND
# define RGB_MATRIX_LED_COUNT 61
#endif
diff --git a/keyboards/dztech/dz60rgb_ansi/v2/config.h b/keyboards/dztech/dz60rgb_ansi/v2/config.h
index 545aa64eea..0b458818bc 100644
--- a/keyboards/dztech/dz60rgb_ansi/v2/config.h
+++ b/keyboards/dztech/dz60rgb_ansi/v2/config.h
@@ -53,7 +53,6 @@
# define ENABLE_RGB_MATRIX_SOLID_SPLASH
// # define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH
-# define DRIVER_ADDR_1 0b1010000
-# define DRIVER_COUNT 1
+# define IS31FL3733_I2C_ADDRESS_1 IS31FL3733_I2C_ADDRESS_GND_GND
# define RGB_MATRIX_LED_COUNT 61
#endif
diff --git a/keyboards/dztech/dz60rgb_ansi/v2_1/config.h b/keyboards/dztech/dz60rgb_ansi/v2_1/config.h
index 90b6c71e67..75ccef8193 100644
--- a/keyboards/dztech/dz60rgb_ansi/v2_1/config.h
+++ b/keyboards/dztech/dz60rgb_ansi/v2_1/config.h
@@ -69,7 +69,6 @@
// # define ENABLE_RGB_MATRIX_SOLID_SPLASH
// # define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH
-# define DRIVER_ADDR_1 0b1010000
-# define DRIVER_COUNT 1
+# define IS31FL3733_I2C_ADDRESS_1 IS31FL3733_I2C_ADDRESS_GND_GND
# define RGB_MATRIX_LED_COUNT 61
#endif
diff --git a/keyboards/dztech/dz60rgb_wkl/dz60rgb_wkl.c b/keyboards/dztech/dz60rgb_wkl/dz60rgb_wkl.c
index 5a55bacefc..d6506389a6 100644
--- a/keyboards/dztech/dz60rgb_wkl/dz60rgb_wkl.c
+++ b/keyboards/dztech/dz60rgb_wkl/dz60rgb_wkl.c
@@ -1,7 +1,7 @@
#include "quantum.h"
#ifdef RGB_MATRIX_ENABLE
-const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = {
+const is31fl3733_led_t PROGMEM g_is31fl3733_leds[RGB_MATRIX_LED_COUNT] = {
{ 0, H_15, G_15, I_15 },
{ 0, K_14, J_14, L_14 },
{ 0, K_13, J_13, L_13 },
diff --git a/keyboards/dztech/dz60rgb_wkl/v1/config.h b/keyboards/dztech/dz60rgb_wkl/v1/config.h
index cfe82a7323..ac79efd26c 100644
--- a/keyboards/dztech/dz60rgb_wkl/v1/config.h
+++ b/keyboards/dztech/dz60rgb_wkl/v1/config.h
@@ -55,7 +55,6 @@
// # define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH
# define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_CYCLE_ALL
-# define DRIVER_ADDR_1 0b1010000
-# define DRIVER_COUNT 1
+# define IS31FL3733_I2C_ADDRESS_1 IS31FL3733_I2C_ADDRESS_GND_GND
# define RGB_MATRIX_LED_COUNT 62
#endif
diff --git a/keyboards/dztech/dz60rgb_wkl/v2/config.h b/keyboards/dztech/dz60rgb_wkl/v2/config.h
index 38a1aa2c76..a341a18e0d 100644
--- a/keyboards/dztech/dz60rgb_wkl/v2/config.h
+++ b/keyboards/dztech/dz60rgb_wkl/v2/config.h
@@ -50,7 +50,6 @@
# define ENABLE_RGB_MATRIX_SOLID_SPLASH
// # define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH
-# define DRIVER_ADDR_1 0b1010000
-# define DRIVER_COUNT 1
+# define IS31FL3733_I2C_ADDRESS_1 IS31FL3733_I2C_ADDRESS_GND_GND
# define RGB_MATRIX_LED_COUNT 62
#endif
diff --git a/keyboards/dztech/dz60rgb_wkl/v2_1/config.h b/keyboards/dztech/dz60rgb_wkl/v2_1/config.h
index 5bcfb21cf7..13169e21f5 100644
--- a/keyboards/dztech/dz60rgb_wkl/v2_1/config.h
+++ b/keyboards/dztech/dz60rgb_wkl/v2_1/config.h
@@ -69,7 +69,6 @@
# define ENABLE_RGB_MATRIX_SOLID_SPLASH
// # define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH
-# define DRIVER_ADDR_1 0b1010000
-# define DRIVER_COUNT 1
+# define IS31FL3733_I2C_ADDRESS_1 IS31FL3733_I2C_ADDRESS_GND_GND
# define RGB_MATRIX_LED_COUNT 62
#endif
diff --git a/keyboards/dztech/dz64rgb/config.h b/keyboards/dztech/dz64rgb/config.h
index 43e1b1c609..edfc7b7171 100644
--- a/keyboards/dztech/dz64rgb/config.h
+++ b/keyboards/dztech/dz64rgb/config.h
@@ -48,8 +48,7 @@
#define ENABLE_RGB_MATRIX_PIXEL_FRACTAL
#define ENABLE_RGB_MATRIX_TYPING_HEATMAP
#define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_CYCLE_ALL
-#define DRIVER_ADDR_1 0b1010000
-#define DRIVER_COUNT 1
+#define IS31FL3733_I2C_ADDRESS_1 IS31FL3733_I2C_ADDRESS_GND_GND
#define RGB_MATRIX_LED_COUNT 64
#endif
#define VIA_EEPROM_LAYOUT_OPTIONS_SIZE 2
diff --git a/keyboards/dztech/dz64rgb/dz64rgb.c b/keyboards/dztech/dz64rgb/dz64rgb.c
index 5fa08a3ee8..561a9727e5 100644
--- a/keyboards/dztech/dz64rgb/dz64rgb.c
+++ b/keyboards/dztech/dz64rgb/dz64rgb.c
@@ -17,7 +17,7 @@
#include "quantum.h"
#ifdef RGB_MATRIX_ENABLE
-const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = {
+const is31fl3733_led_t PROGMEM g_is31fl3733_leds[RGB_MATRIX_LED_COUNT] = {
{ 0, K_14, J_14, L_14 },
{ 0, K_13, J_13, L_13 },
{ 0, K_12, J_12, L_12 },
diff --git a/keyboards/dztech/dz65rgb/keymaps/haervig/keymap.c b/keyboards/dztech/dz65rgb/keymaps/haervig/keymap.c
deleted file mode 100644
index f2ccd311e8..0000000000
--- a/keyboards/dztech/dz65rgb/keymaps/haervig/keymap.c
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
-Copyright 2021 Jakob Hærvig <jakob.haervig@gmail.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 QMK_KEYBOARD_H
-#include "haervig.h"
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [0] = LAYOUT_65_ansi(
- QK_GESC, DK_1, CU_2, DK_3, CU_4, DK_5, CU_6, CU_7, CU_8, CU_9, CU_0, CU_MINS, CU_EQL, CU_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, CU_LBRC, CU_RBRC, CU_BSLS, KC_PGUP,
- CTL_T(KC_CAPS), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, CU_SCLN, CU_QUOT, KC_ENT, KC_PGDN,
- CU_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, CU_COMM, CU_DOT, CU_SLSH, CU_RSFT, KC_UP, KC_END,
- KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, MO(1), KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
- ),
- [1] = LAYOUT_65_ansi(
- _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
- )
-};
diff --git a/keyboards/dztech/dz65rgb/keymaps/haervig/rules.mk b/keyboards/dztech/dz65rgb/keymaps/haervig/rules.mk
deleted file mode 100644
index 676050bfce..0000000000
--- a/keyboards/dztech/dz65rgb/keymaps/haervig/rules.mk
+++ /dev/null
@@ -1,3 +0,0 @@
-# Userspace defines
-DANISH_ENABLE = yes # Enable Custom US Ansi Keycodes for PC with Danish set as input language
-RGB_MATRIX_ENABLE = no # Disable the ugly RGB light \ No newline at end of file
diff --git a/keyboards/dztech/dz65rgb/v1/config.h b/keyboards/dztech/dz65rgb/v1/config.h
index 4a84498975..b9203346dd 100644
--- a/keyboards/dztech/dz65rgb/v1/config.h
+++ b/keyboards/dztech/dz65rgb/v1/config.h
@@ -70,9 +70,8 @@
// # define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH
# define RGB_MATRIX_MAXIMUM_BRIGHTNESS 200
# define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_CYCLE_ALL
-# define DRIVER_ADDR_1 0b1110100
-# define DRIVER_ADDR_2 0b1110111
-# define DRIVER_COUNT 2
+# define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND
+# define IS31FL3731_I2C_ADDRESS_2 IS31FL3731_I2C_ADDRESS_VCC
# define DRIVER_1_LED_TOTAL 35
# define DRIVER_2_LED_TOTAL 33
# define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL)
diff --git a/keyboards/dztech/dz65rgb/v1/v1.c b/keyboards/dztech/dz65rgb/v1/v1.c
index a3b7bdfb5b..a0a355e120 100644
--- a/keyboards/dztech/dz65rgb/v1/v1.c
+++ b/keyboards/dztech/dz65rgb/v1/v1.c
@@ -16,7 +16,7 @@
#include "quantum.h"
#ifdef RGB_MATRIX_ENABLE
-const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = {
+const is31fl3731_led_t PROGMEM g_is31fl3731_leds[RGB_MATRIX_LED_COUNT] = {
{ 0, C8_8, C7_8, C6_8 },
{ 0, C9_8, C7_7, C6_7 },
{ 0, C9_7, C8_7, C6_6 },
diff --git a/keyboards/dztech/dz65rgb/v2/config.h b/keyboards/dztech/dz65rgb/v2/config.h
index 04700c84ed..600687c245 100644
--- a/keyboards/dztech/dz65rgb/v2/config.h
+++ b/keyboards/dztech/dz65rgb/v2/config.h
@@ -70,9 +70,8 @@
// # define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH
# define RGB_MATRIX_MAXIMUM_BRIGHTNESS 200
# define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_CYCLE_ALL
-# define DRIVER_ADDR_1 0b1110100
-# define DRIVER_ADDR_2 0b1110111
-# define DRIVER_COUNT 2
+# define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND
+# define IS31FL3731_I2C_ADDRESS_2 IS31FL3731_I2C_ADDRESS_VCC
# define DRIVER_1_LED_TOTAL 35
# define DRIVER_2_LED_TOTAL 33
# define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL)
diff --git a/keyboards/dztech/dz65rgb/v2/v2.c b/keyboards/dztech/dz65rgb/v2/v2.c
index 31599ad4b8..7754bc4ee5 100644
--- a/keyboards/dztech/dz65rgb/v2/v2.c
+++ b/keyboards/dztech/dz65rgb/v2/v2.c
@@ -16,7 +16,7 @@
#include "quantum.h"
#ifdef RGB_MATRIX_ENABLE
-const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = {
+const is31fl3731_led_t PROGMEM g_is31fl3731_leds[RGB_MATRIX_LED_COUNT] = {
{ 0, C8_8, C7_8, C6_8 },
{ 0, C9_8, C7_7, C6_7 },
{ 0, C9_7, C8_7, C6_6 },
diff --git a/keyboards/dztech/dz65rgb/v3/config.h b/keyboards/dztech/dz65rgb/v3/config.h
index 421ae8277c..1398a378f8 100755
--- a/keyboards/dztech/dz65rgb/v3/config.h
+++ b/keyboards/dztech/dz65rgb/v3/config.h
@@ -72,8 +72,7 @@
# define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH
# define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_CYCLE_ALL
-# define DRIVER_ADDR_1 0b0110000
-# define DRIVER_COUNT 1
+# define IS31FL3741_I2C_ADDRESS_1 IS31FL3741_I2C_ADDRESS_GND
# define RGB_MATRIX_LED_COUNT 68
# define DRIVER_INDICATOR_LED_TOTAL 0
#endif
diff --git a/keyboards/dztech/dz65rgb/v3/v3.c b/keyboards/dztech/dz65rgb/v3/v3.c
index ceb5c30f3e..0fb8ba49de 100755
--- a/keyboards/dztech/dz65rgb/v3/v3.c
+++ b/keyboards/dztech/dz65rgb/v3/v3.c
@@ -18,7 +18,7 @@
#ifdef RGB_MATRIX_ENABLE
-const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = {
+const is31fl3741_led_t PROGMEM g_is31fl3741_leds[RGB_MATRIX_LED_COUNT] = {
{0, CS21_SW1, CS20_SW1, CS19_SW1},
{0, CS21_SW2, CS20_SW2, CS19_SW2},
{0, CS21_SW3, CS20_SW3, CS19_SW3},
diff --git a/keyboards/dztech/og60/info.json b/keyboards/dztech/og60/info.json
deleted file mode 100644
index 52c4e0b189..0000000000
--- a/keyboards/dztech/og60/info.json
+++ /dev/null
@@ -1,448 +0,0 @@
-{
- "manufacturer": "KBDFans",
- "keyboard_name": "Og60",
- "maintainer": "moyi4681",
- "bootloader": "rp2040",
- "diode_direction": "COL2ROW",
- "features": {
- "bootmagic": true,
- "command": false,
- "console": false,
- "extrakey": true,
- "mousekey": true,
- "nkro": true
- },
- "indicators": {
- "caps_lock": "GP28"
- },
- "matrix_pins": {
- "cols": ["GP2", "GP9", "GP10", "GP11", "GP12", "GP13", "GP14", "GP15", "GP18", "GP19", "GP20", "GP21", "GP22", "GP23"],
- "rows": ["GP4", "GP3", "GP17", "GP24", "GP25"]
- },
- "processor": "RP2040",
- "usb": {
- "device_version": "0.0.1",
- "pid": "0x6071",
- "vid": "0x4B42"
- },
- "community_layouts": ["60_ansi", "60_hhkb", "60_iso", "60_ansi_tsangan", "60_tsangan_hhkb"],
- "layouts": {
- "LAYOUT_60_ansi": {
- "layout": [
- {"label": "~", "matrix": [0, 0], "x": 0, "y": 0},
- {"label": "!", "matrix": [0, 1], "x": 1, "y": 0},
- {"label": "@", "matrix": [0, 2], "x": 2, "y": 0},
- {"label": "#", "matrix": [0, 3], "x": 3, "y": 0},
- {"label": "$", "matrix": [0, 4], "x": 4, "y": 0},
- {"label": "%", "matrix": [0, 5], "x": 5, "y": 0},
- {"label": "^", "matrix": [0, 6], "x": 6, "y": 0},
- {"label": "&", "matrix": [0, 7], "x": 7, "y": 0},
- {"label": "*", "matrix": [0, 8], "x": 8, "y": 0},
- {"label": "(", "matrix": [0, 9], "x": 9, "y": 0},
- {"label": ")", "matrix": [0, 10], "x": 10, "y": 0},
- {"label": "_", "matrix": [0, 11], "x": 11, "y": 0},
- {"label": "+", "matrix": [0, 12], "x": 12, "y": 0},
- {"label": "Backspace", "matrix": [0, 13], "x": 13, "y": 0, "w": 2},
-
- {"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
- {"label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1},
- {"label": "W", "matrix": [1, 2], "x": 2.5, "y": 1},
- {"label": "E", "matrix": [1, 3], "x": 3.5, "y": 1},
- {"label": "R", "matrix": [1, 4], "x": 4.5, "y": 1},
- {"label": "T", "matrix": [1, 5], "x": 5.5, "y": 1},
- {"label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1},
- {"label": "U", "matrix": [1, 7], "x": 7.5, "y": 1},
- {"label": "I", "matrix": [1, 8], "x": 8.5, "y": 1},
- {"label": "O", "matrix": [1, 9], "x": 9.5, "y": 1},
- {"label": "P", "matrix": [1, 10], "x": 10.5, "y": 1},
- {"label": "{", "matrix": [1, 11], "x": 11.5, "y": 1},
- {"label": "}", "matrix": [1, 12], "x": 12.5, "y": 1},
- {"label": "|", "matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5},
-
- {"label": "Caps Lock", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
- {"label": "A", "matrix": [2, 1], "x": 1.75, "y": 2},
- {"label": "S", "matrix": [2, 2], "x": 2.75, "y": 2},
- {"label": "D", "matrix": [2, 3], "x": 3.75, "y": 2},
- {"label": "F", "matrix": [2, 4], "x": 4.75, "y": 2},
- {"label": "G", "matrix": [2, 5], "x": 5.75, "y": 2},
- {"label": "H", "matrix": [2, 6], "x": 6.75, "y": 2},
- {"label": "J", "matrix": [2, 7], "x": 7.75, "y": 2},
- {"label": "K", "matrix": [2, 8], "x": 8.75, "y": 2},
- {"label": "L", "matrix": [2, 9], "x": 9.75, "y": 2},
- {"label": ":", "matrix": [2, 10], "x": 10.75, "y": 2},
- {"label": "\"", "matrix": [2, 11], "x": 11.75, "y": 2},
- {"label": "Enter", "matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25},
-
- {"label": "Shift", "matrix": [3, 0], "x": 0, "y": 3, "w": 2.25},
- {"label": "Z", "matrix": [3, 2], "x": 2.25, "y": 3},
- {"label": "X", "matrix": [3, 3], "x": 3.25, "y": 3},
- {"label": "C", "matrix": [3, 4], "x": 4.25, "y": 3},
- {"label": "V", "matrix": [3, 5], "x": 5.25, "y": 3},
- {"label": "B", "matrix": [3, 6], "x": 6.25, "y": 3},
- {"label": "N", "matrix": [3, 7], "x": 7.25, "y": 3},
- {"label": "M", "matrix": [3, 8], "x": 8.25, "y": 3},
- {"label": "<", "matrix": [3, 9], "x": 9.25, "y": 3},
- {"label": ">", "matrix": [3, 10], "x": 10.25, "y": 3},
- {"label": "?", "matrix": [3, 11], "x": 11.25, "y": 3},
- {"label": "Shift", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 2.75},
-
- {"label": "Ctrl", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.25},
- {"label": "Win", "matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25},
- {"label": "Alt", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25},
- {"label": "K47", "matrix": [4, 7], "x": 3.75, "y": 4, "w": 6.25},
- {"label": "Alt", "matrix": [4, 10], "x": 10, "y": 4, "w": 1.25},
- {"label": "Win", "matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25},
- {"label": "Menu", "matrix": [4, 12], "x": 12.5, "y": 4, "w": 1.25},
- {"label": "Ctrl", "matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25}
- ]
- },
- "LAYOUT_60_hhkb": {
- "layout": [
- {"label": "~", "matrix": [0, 0], "x": 0, "y": 0},
- {"label": "!", "matrix": [0, 1], "x": 1, "y": 0},
- {"label": "@", "matrix": [0, 2], "x": 2, "y": 0},
- {"label": "#", "matrix": [0, 3], "x": 3, "y": 0},
- {"label": "$", "matrix": [0, 4], "x": 4, "y": 0},
- {"label": "%", "matrix": [0, 5], "x": 5, "y": 0},
- {"label": "^", "matrix": [0, 6], "x": 6, "y": 0},
- {"label": "&", "matrix": [0, 7], "x": 7, "y": 0},
- {"label": "*", "matrix": [0, 8], "x": 8, "y": 0},
- {"label": "(", "matrix": [0, 9], "x": 9, "y": 0},
- {"label": ")", "matrix": [0, 10], "x": 10, "y": 0},
- {"label": "_", "matrix": [0, 11], "x": 11, "y": 0},
- {"label": "+", "matrix": [0, 12], "x": 12, "y": 0},
- {"label": "Del", "matrix": [0, 13], "x": 13, "y": 0},
- {"label": "Backspace", "matrix": [2, 12], "x": 14, "y": 0},
-
- {"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
- {"label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1},
- {"label": "W", "matrix": [1, 2], "x": 2.5, "y": 1},
- {"label": "E", "matrix": [1, 3], "x": 3.5, "y": 1},
- {"label": "R", "matrix": [1, 4], "x": 4.5, "y": 1},
- {"label": "T", "matrix": [1, 5], "x": 5.5, "y": 1},
- {"label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1},
- {"label": "U", "matrix": [1, 7], "x": 7.5, "y": 1},
- {"label": "I", "matrix": [1, 8], "x": 8.5, "y": 1},
- {"label": "O", "matrix": [1, 9], "x": 9.5, "y": 1},
- {"label": "P", "matrix": [1, 10], "x": 10.5, "y": 1},
- {"label": "{", "matrix": [1, 11], "x": 11.5, "y": 1},
- {"label": "}", "matrix": [1, 12], "x": 12.5, "y": 1},
- {"label": "|", "matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5},
-
- {"label": "Caps Lock", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
- {"label": "A", "matrix": [2, 1], "x": 1.75, "y": 2},
- {"label": "S", "matrix": [2, 2], "x": 2.75, "y": 2},
- {"label": "D", "matrix": [2, 3], "x": 3.75, "y": 2},
- {"label": "F", "matrix": [2, 4], "x": 4.75, "y": 2},
- {"label": "G", "matrix": [2, 5], "x": 5.75, "y": 2},
- {"label": "H", "matrix": [2, 6], "x": 6.75, "y": 2},
- {"label": "J", "matrix": [2, 7], "x": 7.75, "y": 2},
- {"label": "K", "matrix": [2, 8], "x": 8.75, "y": 2},
- {"label": "L", "matrix": [2, 9], "x": 9.75, "y": 2},
- {"label": ":", "matrix": [2, 10], "x": 10.75, "y": 2},
- {"label": "\"", "matrix": [2, 11], "x": 11.75, "y": 2},
- {"label": "Enter", "matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25},
-
- {"label": "Shift", "matrix": [3, 0], "x": 0, "y": 3, "w": 2.25},
- {"label": "Z", "matrix": [3, 2], "x": 2.25, "y": 3},
- {"label": "X", "matrix": [3, 3], "x": 3.25, "y": 3},
- {"label": "C", "matrix": [3, 4], "x": 4.25, "y": 3},
- {"label": "V", "matrix": [3, 5], "x": 5.25, "y": 3},
- {"label": "B", "matrix": [3, 6], "x": 6.25, "y": 3},
- {"label": "N", "matrix": [3, 7], "x": 7.25, "y": 3},
- {"label": "M", "matrix": [3, 8], "x": 8.25, "y": 3},
- {"label": "<", "matrix": [3, 9], "x": 9.25, "y": 3},
- {"label": ">", "matrix": [3, 10], "x": 10.25, "y": 3},
- {"label": "?", "matrix": [3, 11], "x": 11.25, "y": 3},
- {"label": "Shift", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75},
- {"label": "Fn", "matrix": [3, 13], "x": 14, "y": 3},
- {"label": "Ctrl", "matrix": [4, 1], "x": 1.5, "y": 4},
- {"label": "Alt", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5},
- {"label": "K47", "matrix": [4, 7], "x": 4, "y": 4, "w": 7},
- {"label": "Alt", "matrix": [4, 11], "x": 11, "y": 4, "w": 1.5},
- {"label": "Ctrl", "matrix": [4, 12], "x": 12.5, "y": 4}
- ]
- },
- "LAYOUT_60_iso": {
- "layout": [
- {"label": "~", "matrix": [0, 0], "x": 0, "y": 0},
- {"label": "!", "matrix": [0, 1], "x": 1, "y": 0},
- {"label": "@", "matrix": [0, 2], "x": 2, "y": 0},
- {"label": "#", "matrix": [0, 3], "x": 3, "y": 0},
- {"label": "$", "matrix": [0, 4], "x": 4, "y": 0},
- {"label": "%", "matrix": [0, 5], "x": 5, "y": 0},
- {"label": "^", "matrix": [0, 6], "x": 6, "y": 0},
- {"label": "&", "matrix": [0, 7], "x": 7, "y": 0},
- {"label": "*", "matrix": [0, 8], "x": 8, "y": 0},
- {"label": "(", "matrix": [0, 9], "x": 9, "y": 0},
- {"label": ")", "matrix": [0, 10], "x": 10, "y": 0},
- {"label": "_", "matrix": [0, 11], "x": 11, "y": 0},
- {"label": "+", "matrix": [0, 12], "x": 12, "y": 0},
- {"label": "Backspace", "matrix": [0, 13], "x": 13, "y": 0, "w": 2},
-
- {"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
- {"label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1},
- {"label": "W", "matrix": [1, 2], "x": 2.5, "y": 1},
- {"label": "E", "matrix": [1, 3], "x": 3.5, "y": 1},
- {"label": "R", "matrix": [1, 4], "x": 4.5, "y": 1},
- {"label": "T", "matrix": [1, 5], "x": 5.5, "y": 1},
- {"label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1},
- {"label": "U", "matrix": [1, 7], "x": 7.5, "y": 1},
- {"label": "I", "matrix": [1, 8], "x": 8.5, "y": 1},
- {"label": "O", "matrix": [1, 9], "x": 9.5, "y": 1},
- {"label": "P", "matrix": [1, 10], "x": 10.5, "y": 1},
- {"label": "{", "matrix": [1, 11], "x": 11.5, "y": 1},
- {"label": "}", "matrix": [1, 12], "x": 12.5, "y": 1},
-
- {"label": "Caps Lock", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
- {"label": "A", "matrix": [2, 1], "x": 1.75, "y": 2},
- {"label": "S", "matrix": [2, 2], "x": 2.75, "y": 2},
- {"label": "D", "matrix": [2, 3], "x": 3.75, "y": 2},
- {"label": "F", "matrix": [2, 4], "x": 4.75, "y": 2},
- {"label": "G", "matrix": [2, 5], "x": 5.75, "y": 2},
- {"label": "H", "matrix": [2, 6], "x": 6.75, "y": 2},
- {"label": "J", "matrix": [2, 7], "x": 7.75, "y": 2},
- {"label": "K", "matrix": [2, 8], "x": 8.75, "y": 2},
- {"label": "L", "matrix": [2, 9], "x": 9.75, "y": 2},
- {"label": ":", "matrix": [2, 10], "x": 10.75, "y": 2},
- {"label": "@", "matrix": [2, 11], "x": 11.75, "y": 2},
- {"label": "~", "matrix": [1, 13], "x": 12.75, "y": 2},
- {"label": "Enter", "matrix": [2, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 2},
-
- {"label": "Shift", "matrix": [3, 0], "x": 0, "y": 3, "w": 1.25},
- {"label": "|", "matrix": [3, 1], "x": 1.25, "y": 3},
- {"label": "Z", "matrix": [3, 2], "x": 2.25, "y": 3},
- {"label": "X", "matrix": [3, 3], "x": 3.25, "y": 3},
- {"label": "C", "matrix": [3, 4], "x": 4.25, "y": 3},
- {"label": "V", "matrix": [3, 5], "x": 5.25, "y": 3},
- {"label": "B", "matrix": [3, 6], "x": 6.25, "y": 3},
- {"label": "N", "matrix": [3, 7], "x": 7.25, "y": 3},
- {"label": "M", "matrix": [3, 8], "x": 8.25, "y": 3},
- {"label": "<", "matrix": [3, 9], "x": 9.25, "y": 3},
- {"label": ">", "matrix": [3, 10], "x": 10.25, "y": 3},
- {"label": "?", "matrix": [3, 11], "x": 11.25, "y": 3},
- {"label": "Shift", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 2.75},
-
- {"label": "Ctrl", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.25},
- {"label": "Win", "matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25},
- {"label": "Alt", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25},
- {"label": "K47", "matrix": [4, 7], "x": 3.75, "y": 4, "w": 6.25},
- {"label": "AltGr", "matrix": [4, 10], "x": 10, "y": 4, "w": 1.25},
- {"label": "Win", "matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25},
- {"label": "Menu", "matrix": [4, 12], "x": 12.5, "y": 4, "w": 1.25},
- {"label": "Ctrl", "matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25}
- ]
- },
- "LAYOUT_60_ansi_tsangan": {
- "layout": [
- {"label": "~", "matrix": [0, 0], "x": 0, "y": 0},
- {"label": "!", "matrix": [0, 1], "x": 1, "y": 0},
- {"label": "@", "matrix": [0, 2], "x": 2, "y": 0},
- {"label": "#", "matrix": [0, 3], "x": 3, "y": 0},
- {"label": "$", "matrix": [0, 4], "x": 4, "y": 0},
- {"label": "%", "matrix": [0, 5], "x": 5, "y": 0},
- {"label": "^", "matrix": [0, 6], "x": 6, "y": 0},
- {"label": "&", "matrix": [0, 7], "x": 7, "y": 0},
- {"label": "*", "matrix": [0, 8], "x": 8, "y": 0},
- {"label": "(", "matrix": [0, 9], "x": 9, "y": 0},
- {"label": ")", "matrix": [0, 10], "x": 10, "y": 0},
- {"label": "_", "matrix": [0, 11], "x": 11, "y": 0},
- {"label": "+", "matrix": [0, 12], "x": 12, "y": 0},
- {"label": "Backspace", "matrix": [0, 13], "x": 13, "y": 0, "w": 2},
-
- {"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
- {"label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1},
- {"label": "W", "matrix": [1, 2], "x": 2.5, "y": 1},
- {"label": "E", "matrix": [1, 3], "x": 3.5, "y": 1},
- {"label": "R", "matrix": [1, 4], "x": 4.5, "y": 1},
- {"label": "T", "matrix": [1, 5], "x": 5.5, "y": 1},
- {"label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1},
- {"label": "U", "matrix": [1, 7], "x": 7.5, "y": 1},
- {"label": "I", "matrix": [1, 8], "x": 8.5, "y": 1},
- {"label": "O", "matrix": [1, 9], "x": 9.5, "y": 1},
- {"label": "P", "matrix": [1, 10], "x": 10.5, "y": 1},
- {"label": "{", "matrix": [1, 11], "x": 11.5, "y": 1},
- {"label": "}", "matrix": [1, 12], "x": 12.5, "y": 1},
- {"label": "|", "matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5},
-
- {"label": "Caps Lock", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
- {"label": "A", "matrix": [2, 1], "x": 1.75, "y": 2},
- {"label": "S", "matrix": [2, 2], "x": 2.75, "y": 2},
- {"label": "D", "matrix": [2, 3], "x": 3.75, "y": 2},
- {"label": "F", "matrix": [2, 4], "x": 4.75, "y": 2},
- {"label": "G", "matrix": [2, 5], "x": 5.75, "y": 2},
- {"label": "H", "matrix": [2, 6], "x": 6.75, "y": 2},
- {"label": "J", "matrix": [2, 7], "x": 7.75, "y": 2},
- {"label": "K", "matrix": [2, 8], "x": 8.75, "y": 2},
- {"label": "L", "matrix": [2, 9], "x": 9.75, "y": 2},
- {"label": ":", "matrix": [2, 10], "x": 10.75, "y": 2},
- {"label": "\"", "matrix": [2, 11], "x": 11.75, "y": 2},
- {"label": "Enter", "matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25},
-
- {"label": "Shift", "matrix": [3, 0], "x": 0, "y": 3, "w": 2.25},
- {"label": "Z", "matrix": [3, 2], "x": 2.25, "y": 3},
- {"label": "X", "matrix": [3, 3], "x": 3.25, "y": 3},
- {"label": "C", "matrix": [3, 4], "x": 4.25, "y": 3},
- {"label": "V", "matrix": [3, 5], "x": 5.25, "y": 3},
- {"label": "B", "matrix": [3, 6], "x": 6.25, "y": 3},
- {"label": "N", "matrix": [3, 7], "x": 7.25, "y": 3},
- {"label": "M", "matrix": [3, 8], "x": 8.25, "y": 3},
- {"label": "<", "matrix": [3, 9], "x": 9.25, "y": 3},
- {"label": ">", "matrix": [3, 10], "x": 10.25, "y": 3},
- {"label": "?", "matrix": [3, 11], "x": 11.25, "y": 3},
- {"label": "Shift", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 2.75},
-
- {"label": "Ctrl", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.5},
- {"label": "Win", "matrix": [4, 1], "x": 1.5, "y": 4},
- {"label": "Alt", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5},
- {"label": "K47", "matrix": [4, 7], "x": 4, "y": 4, "w": 7},
- {"label": "Alt", "matrix": [4, 11], "x": 11, "y": 4, "w": 1.5},
- {"label": "Win", "matrix": [4, 12], "x": 12.5, "y": 4},
- {"label": "Ctrl", "matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5}
- ]
- },
- "LAYOUT_60_tsangan_hhkb": {
- "layout": [
- {"label": "~", "matrix": [0, 0], "x": 0, "y": 0},
- {"label": "!", "matrix": [0, 1], "x": 1, "y": 0},
- {"label": "@", "matrix": [0, 2], "x": 2, "y": 0},
- {"label": "#", "matrix": [0, 3], "x": 3, "y": 0},
- {"label": "$", "matrix": [0, 4], "x": 4, "y": 0},
- {"label": "%", "matrix": [0, 5], "x": 5, "y": 0},
- {"label": "^", "matrix": [0, 6], "x": 6, "y": 0},
- {"label": "&", "matrix": [0, 7], "x": 7, "y": 0},
- {"label": "*", "matrix": [0, 8], "x": 8, "y": 0},
- {"label": "(", "matrix": [0, 9], "x": 9, "y": 0},
- {"label": ")", "matrix": [0, 10], "x": 10, "y": 0},
- {"label": "_", "matrix": [0, 11], "x": 11, "y": 0},
- {"label": "+", "matrix": [0, 12], "x": 12, "y": 0},
- {"label": "Del", "matrix": [0, 13], "x": 13, "y": 0},
- {"label": "Backspace", "matrix": [2, 12], "x": 14, "y": 0},
-
- {"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
- {"label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1},
- {"label": "W", "matrix": [1, 2], "x": 2.5, "y": 1},
- {"label": "E", "matrix": [1, 3], "x": 3.5, "y": 1},
- {"label": "R", "matrix": [1, 4], "x": 4.5, "y": 1},
- {"label": "T", "matrix": [1, 5], "x": 5.5, "y": 1},
- {"label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1},
- {"label": "U", "matrix": [1, 7], "x": 7.5, "y": 1},
- {"label": "I", "matrix": [1, 8], "x": 8.5, "y": 1},
- {"label": "O", "matrix": [1, 9], "x": 9.5, "y": 1},
- {"label": "P", "matrix": [1, 10], "x": 10.5, "y": 1},
- {"label": "{", "matrix": [1, 11], "x": 11.5, "y": 1},
- {"label": "}", "matrix": [1, 12], "x": 12.5, "y": 1},
- {"label": "|", "matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5},
-
- {"label": "Caps Lock", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
- {"label": "A", "matrix": [2, 1], "x": 1.75, "y": 2},
- {"label": "S", "matrix": [2, 2], "x": 2.75, "y": 2},
- {"label": "D", "matrix": [2, 3], "x": 3.75, "y": 2},
- {"label": "F", "matrix": [2, 4], "x": 4.75, "y": 2},
- {"label": "G", "matrix": [2, 5], "x": 5.75, "y": 2},
- {"label": "H", "matrix": [2, 6], "x": 6.75, "y": 2},
- {"label": "J", "matrix": [2, 7], "x": 7.75, "y": 2},
- {"label": "K", "matrix": [2, 8], "x": 8.75, "y": 2},
- {"label": "L", "matrix": [2, 9], "x": 9.75, "y": 2},
- {"label": ":", "matrix": [2, 10], "x": 10.75, "y": 2},
- {"label": "\"", "matrix": [2, 11], "x": 11.75, "y": 2},
- {"label": "Enter", "matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25},
-
- {"label": "Shift", "matrix": [3, 0], "x": 0, "y": 3, "w": 2.25},
- {"label": "Z", "matrix": [3, 2], "x": 2.25, "y": 3},
- {"label": "X", "matrix": [3, 3], "x": 3.25, "y": 3},
- {"label": "C", "matrix": [3, 4], "x": 4.25, "y": 3},
- {"label": "V", "matrix": [3, 5], "x": 5.25, "y": 3},
- {"label": "B", "matrix": [3, 6], "x": 6.25, "y": 3},
- {"label": "N", "matrix": [3, 7], "x": 7.25, "y": 3},
- {"label": "M", "matrix": [3, 8], "x": 8.25, "y": 3},
- {"label": "<", "matrix": [3, 9], "x": 9.25, "y": 3},
- {"label": ">", "matrix": [3, 10], "x": 10.25, "y": 3},
- {"label": "?", "matrix": [3, 11], "x": 11.25, "y": 3},
- {"label": "Shift", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75},
- {"label": "Fn", "matrix": [3, 13], "x": 14, "y": 3},
-
- {"label": "Ctrl", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.5},
- {"label": "Win", "matrix": [4, 1], "x": 1.5, "y": 4},
- {"label": "Alt", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5},
- {"label": "K47", "matrix": [4, 7], "x": 4, "y": 4, "w": 7},
- {"label": "Alt", "matrix": [4, 11], "x": 11, "y": 4, "w": 1.5},
- {"label": "Win", "matrix": [4, 12], "x": 12.5, "y": 4},
- {"label": "Ctrl", "matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5}
- ]
- },
- "LAYOUT_all": {
- "layout": [
- {"label": "~", "matrix": [0, 0], "x": 0, "y": 0},
- {"label": "!", "matrix": [0, 1], "x": 1, "y": 0},
- {"label": "@", "matrix": [0, 2], "x": 2, "y": 0},
- {"label": "#", "matrix": [0, 3], "x": 3, "y": 0},
- {"label": "$", "matrix": [0, 4], "x": 4, "y": 0},
- {"label": "%", "matrix": [0, 5], "x": 5, "y": 0},
- {"label": "^", "matrix": [0, 6], "x": 6, "y": 0},
- {"label": "&", "matrix": [0, 7], "x": 7, "y": 0},
- {"label": "*", "matrix": [0, 8], "x": 8, "y": 0},
- {"label": "(", "matrix": [0, 9], "x": 9, "y": 0},
- {"label": ")", "matrix": [0, 10], "x": 10, "y": 0},
- {"label": "_", "matrix": [0, 11], "x": 11, "y": 0},
- {"label": "+", "matrix": [0, 12], "x": 12, "y": 0},
- {"label": "Del", "matrix": [2, 12], "x": 13, "y": 0},
- {"label": "Backspace", "matrix": [0, 13], "x": 14, "y": 0},
-
- {"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
- {"label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1},
- {"label": "W", "matrix": [1, 2], "x": 2.5, "y": 1},
- {"label": "E", "matrix": [1, 3], "x": 3.5, "y": 1},
- {"label": "R", "matrix": [1, 4], "x": 4.5, "y": 1},
- {"label": "T", "matrix": [1, 5], "x": 5.5, "y": 1},
- {"label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1},
- {"label": "U", "matrix": [1, 7], "x": 7.5, "y": 1},
- {"label": "I", "matrix": [1, 8], "x": 8.5, "y": 1},
- {"label": "O", "matrix": [1, 9], "x": 9.5, "y": 1},
- {"label": "P", "matrix": [1, 10], "x": 10.5, "y": 1},
- {"label": "{", "matrix": [1, 11], "x": 11.5, "y": 1},
- {"label": "}", "matrix": [1, 12], "x": 12.5, "y": 1},
- {"label": "|", "matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5},
-
- {"label": "Caps Lock", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
- {"label": "A", "matrix": [2, 1], "x": 1.75, "y": 2},
- {"label": "S", "matrix": [2, 2], "x": 2.75, "y": 2},
- {"label": "D", "matrix": [2, 3], "x": 3.75, "y": 2},
- {"label": "F", "matrix": [2, 4], "x": 4.75, "y": 2},
- {"label": "G", "matrix": [2, 5], "x": 5.75, "y": 2},
- {"label": "H", "matrix": [2, 6], "x": 6.75, "y": 2},
- {"label": "J", "matrix": [2, 7], "x": 7.75, "y": 2},
- {"label": "K", "matrix": [2, 8], "x": 8.75, "y": 2},
- {"label": "L", "matrix": [2, 9], "x": 9.75, "y": 2},
- {"label": ":", "matrix": [2, 10], "x": 10.75, "y": 2},
- {"label": "\"", "matrix": [2, 11], "x": 11.75, "y": 2},
- {"label": "Enter", "matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25},
-
- {"label": "Shift", "matrix": [3, 0], "x": 0, "y": 3, "w": 1.25},
- {"label": "|", "matrix": [3, 1], "x": 1.25, "y": 3},
- {"label": "Z", "matrix": [3, 2], "x": 2.25, "y": 3},
- {"label": "X", "matrix": [3, 3], "x": 3.25, "y": 3},
- {"label": "C", "matrix": [3, 4], "x": 4.25, "y": 3},
- {"label": "V", "matrix": [3, 5], "x": 5.25, "y": 3},
- {"label": "B", "matrix": [3, 6], "x": 6.25, "y": 3},
- {"label": "N", "matrix": [3, 7], "x": 7.25, "y": 3},
- {"label": "M", "matrix": [3, 8], "x": 8.25, "y": 3},
- {"label": "<", "matrix": [3, 9], "x": 9.25, "y": 3},
- {"label": ">", "matrix": [3, 10], "x": 10.25, "y": 3},
- {"label": "?", "matrix": [3, 11], "x": 11.25, "y": 3},
- {"label": "Shift", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75},
- {"label": "Fn", "matrix": [3, 13], "x": 14, "y": 3},
-
- {"label": "Ctrl", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.25},
- {"label": "Win", "matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25},
- {"label": "Alt", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25},
- {"label": "K47", "matrix": [4, 7], "x": 3.75, "y": 4, "w": 6.25},
- {"label": "Alt", "matrix": [4, 10], "x": 10, "y": 4, "w": 1.25},
- {"label": "Win", "matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25},
- {"label": "Menu", "matrix": [4, 12], "x": 12.5, "y": 4, "w": 1.25},
- {"label": "Ctrl", "matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25}
- ]
- }
- }
-}
-
diff --git a/keyboards/dztech/og60/readme.md b/keyboards/dztech/og60/readme.md
deleted file mode 100644
index 07d6e6a658..0000000000
--- a/keyboards/dztech/og60/readme.md
+++ /dev/null
@@ -1,22 +0,0 @@
-# OG60
-A customizable 60% HotSwap keyboard.
-
-* Keyboard Maintainer: [moyi4681](https://github.com/moyi4681)
-* Hardware Supported: OG60
-* Hardware Availability: [KBDfans](https://kbdfans.com/)
-
-## Bootloader mode
-
-Enter the bootloader in 3 ways:
-
-* Bootmagic reset: Hold down the left top key then plug in the USB cable.
-* Physical reset button: Double tap the reset button.
-* Keycode in layout: Press the key mapped to QK_BOOT if it is available.
-
-## Making firmware
-
-Make example for this keyboard (after setting up your build environment):
-
- make dztech/og60: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).
diff --git a/keyboards/dztech/tofu/ii/v1/config.h b/keyboards/dztech/tofu/ii/v1/config.h
index 67a4c757af..36741e1168 100644
--- a/keyboards/dztech/tofu/ii/v1/config.h
+++ b/keyboards/dztech/tofu/ii/v1/config.h
@@ -79,9 +79,8 @@
# define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH
# define RGB_MATRIX_MAXIMUM_BRIGHTNESS 180 // limits maximum brightness of LEDs to 200 out of 255. If not defined maximum brightness is set to 255
# define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_CYCLE_ALL
-# define DRIVER_ADDR_1 0b1010000
-# define DRIVER_ADDR_2 0b1011111
-# define DRIVER_COUNT 2
+# define IS31FL3737_I2C_ADDRESS_1 IS31FL3737_I2C_ADDRESS_GND
+# define IS31FL3737_I2C_ADDRESS_2 IS31FL3737_I2C_ADDRESS_VCC
# define DRIVER_1_LED_TOTAL 46
# define DRIVER_2_LED_TOTAL 20
# define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL)
diff --git a/keyboards/dztech/tofu/ii/v1/v1.c b/keyboards/dztech/tofu/ii/v1/v1.c
index bb15f3d4a1..8baf0235bd 100644
--- a/keyboards/dztech/tofu/ii/v1/v1.c
+++ b/keyboards/dztech/tofu/ii/v1/v1.c
@@ -17,7 +17,7 @@
#ifdef RGB_MATRIX_ENABLE
-const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = {
+const is31fl3737_led_t PROGMEM g_is31fl3737_leds[RGB_MATRIX_LED_COUNT] = {
{ 1, K_12, J_12, L_12 },
{ 1, K_11, J_11, L_11 },
{ 1, K_10, J_10, L_10 },
diff --git a/keyboards/dztech/tofu/jr/readme.md b/keyboards/dztech/tofu/jr/readme.md
deleted file mode 100644
index 579929c5d7..0000000000
--- a/keyboards/dztech/tofu/jr/readme.md
+++ /dev/null
@@ -1,22 +0,0 @@
-# TOFU_JR
-A customizable 65% RGB keyboard.
-
-* Keyboard Maintainer: [moyi4681](https://github.com/moyi4681)
-* Hardware Supported: TOFU_JR
-* Hardware Availability: [KBDfans](https://kbdfans.com/)
-
-## Bootloader mode
-
-Enter the bootloader in 3 ways:
-
-* Bootmagic reset: Hold down the left top key then plug in the USB cable.
-* Physical reset button: Double tap the reset button.
-* Keycode in layout: Press the key mapped to QK_BOOT if it is available.
-
-## Making firmware
-
-Make example for this keyboard (after setting up your build environment):
-
- make dztech/tofu/jr: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).
diff --git a/keyboards/dztech/tofu/jr/v1/config.h b/keyboards/dztech/tofu/jr/v1/config.h
index a05cdacf79..74e5ed0848 100644
--- a/keyboards/dztech/tofu/jr/v1/config.h
+++ b/keyboards/dztech/tofu/jr/v1/config.h
@@ -79,9 +79,8 @@
# define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH
# define RGB_MATRIX_MAXIMUM_BRIGHTNESS 180 // limits maximum brightness of LEDs to 200 out of 255. If not defined maximum brightness is set to 255
# define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_CYCLE_ALL
-# define DRIVER_ADDR_1 0b1010000
-# define DRIVER_ADDR_2 0b1011111
-# define DRIVER_COUNT 2
+# define IS31FL3737_I2C_ADDRESS_1 IS31FL3737_I2C_ADDRESS_GND
+# define IS31FL3737_I2C_ADDRESS_2 IS31FL3737_I2C_ADDRESS_VCC
# define DRIVER_1_LED_TOTAL 48
# define DRIVER_2_LED_TOTAL 20
# define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL)
diff --git a/keyboards/dztech/tofu/jr/v1/readme.md b/keyboards/dztech/tofu/jr/v1/readme.md
new file mode 100644
index 0000000000..f17b9aea90
--- /dev/null
+++ b/keyboards/dztech/tofu/jr/v1/readme.md
@@ -0,0 +1,22 @@
+# TOFU_JR_V1
+A customizable 65% RGB keyboard.
+
+* Keyboard Maintainer: [moyi4681](https://github.com/moyi4681)
+* Hardware Supported: TOFU_JR_V1
+* Hardware Availability: [KBDfans](https://kbdfans.com/)
+
+## Bootloader mode
+
+Enter the bootloader in 3 ways:
+
+* Bootmagic reset: Hold down the left top key then plug in the USB cable.
+* Physical reset button: Double tap the reset button.
+* Keycode in layout: Press the key mapped to QK_BOOT if it is available.
+
+## Making firmware
+
+Make example for this keyboard (after setting up your build environment):
+
+ make dztech/tofu/jr: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).
diff --git a/keyboards/dztech/tofu/jr/v1/v1.c b/keyboards/dztech/tofu/jr/v1/v1.c
index 4b7d7c957e..474134cb5e 100644
--- a/keyboards/dztech/tofu/jr/v1/v1.c
+++ b/keyboards/dztech/tofu/jr/v1/v1.c
@@ -18,7 +18,7 @@
#ifdef RGB_MATRIX_ENABLE
-const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = {
+const is31fl3737_led_t PROGMEM g_is31fl3737_leds[RGB_MATRIX_LED_COUNT] = {
{ 1, K_12, J_12, L_12 },
{ 1, K_11, J_11, L_11 },
{ 1, K_10, J_10, L_10 },
diff --git a/keyboards/dztech/tofu/jr/v2/config.h b/keyboards/dztech/tofu/jr/v2/config.h
new file mode 100644
index 0000000000..935a2ab437
--- /dev/null
+++ b/keyboards/dztech/tofu/jr/v2/config.h
@@ -0,0 +1,24 @@
+/* Copyright 2023 DZTECH <moyi4681@live.cn>
+ *
+ * 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 RGBLIGHT_DEFAULT_MODE (RGBLIGHT_EFFECT_RAINBOW_MOOD + 8)
+
+#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET
+#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 500U
+
+
diff --git a/keyboards/dztech/tofu/jr/v2/info.json b/keyboards/dztech/tofu/jr/v2/info.json
new file mode 100644
index 0000000000..6a60565b22
--- /dev/null
+++ b/keyboards/dztech/tofu/jr/v2/info.json
@@ -0,0 +1,124 @@
+{
+ "bootloader": "rp2040",
+ "processor": "RP2040",
+ "diode_direction": "COL2ROW",
+ "features": {
+ "bootmagic": true,
+ "command": false,
+ "console": false,
+ "extrakey": true,
+ "mousekey": true,
+ "nkro": true,
+ "rgblight": true
+ },
+ "matrix_pins": {
+ "cols": ["GP25", "GP24", "GP23", "GP1", "GP7", "GP21", "GP20", "GP19", "GP18", "GP17", "GP16", "GP15", "GP14", "GP13", "GP12"],
+ "rows": ["GP29", "GP28", "GP27", "GP26", "GP22"]
+ },
+ "indicators": {
+ "caps_lock": "GP11"
+ },
+ "usb": {
+ "device_version": "1.0.0",
+ "pid": "0x1425",
+ "vid": "0x445A"
+ },
+ "rgblight": {
+ "brightness_steps": 10,
+ "hue_steps": 10,
+ "led_count": 16,
+ "saturation_steps": 10,
+ "sleep": true,
+ "animations": {
+ "alternating": true,
+ "breathing": true,
+ "christmas": true,
+ "knight": true,
+ "rainbow_mood": true,
+ "rainbow_swirl": true,
+ "rgb_test": true,
+ "snake": true,
+ "static_gradient": true,
+ "twinkle": true
+ }
+ },
+ "ws2812": {
+ "pin": "GP2",
+ "driver": "vendor"
+ },
+ "community_layouts": ["65_ansi"],
+ "layouts": {
+ "LAYOUT_65_ansi": {
+ "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": [0, 6], "x": 6, "y": 0},
+ {"matrix": [0, 7], "x": 7, "y": 0},
+ {"matrix": [0, 8], "x": 8, "y": 0},
+ {"matrix": [0, 9], "x": 9, "y": 0},
+ {"matrix": [0, 10], "x": 10, "y": 0},
+ {"matrix": [0, 11], "x": 11, "y": 0},
+ {"matrix": [0, 12], "x": 12, "y": 0},
+ {"matrix": [0, 13], "w": 2, "x": 13, "y": 0},
+ {"matrix": [0, 14], "x": 15, "y": 0},
+ {"matrix": [1, 0], "w": 1.5, "x": 0, "y": 1},
+ {"matrix": [1, 1], "x": 1.5, "y": 1},
+ {"matrix": [1, 2], "x": 2.5, "y": 1},
+ {"matrix": [1, 3], "x": 3.5, "y": 1},
+ {"matrix": [1, 4], "x": 4.5, "y": 1},
+ {"matrix": [1, 5], "x": 5.5, "y": 1},
+ {"matrix": [1, 6], "x": 6.5, "y": 1},
+ {"matrix": [1, 7], "x": 7.5, "y": 1},
+ {"matrix": [1, 8], "x": 8.5, "y": 1},
+ {"matrix": [1, 9], "x": 9.5, "y": 1},
+ {"matrix": [1, 10], "x": 10.5, "y": 1},
+ {"matrix": [1, 11], "x": 11.5, "y": 1},
+ {"matrix": [1, 12], "x": 12.5, "y": 1},
+ {"matrix": [1, 13], "w": 1.5, "x": 13.5, "y": 1},
+ {"matrix": [1, 14], "x": 15, "y": 1},
+ {"matrix": [2, 0], "w": 1.75, "x": 0, "y": 2},
+ {"matrix": [2, 1], "x": 1.75, "y": 2},
+ {"matrix": [2, 2], "x": 2.75, "y": 2},
+ {"matrix": [2, 3], "x": 3.75, "y": 2},
+ {"matrix": [2, 4], "x": 4.75, "y": 2},
+ {"matrix": [2, 5], "x": 5.75, "y": 2},
+ {"matrix": [2, 6], "x": 6.75, "y": 2},
+ {"matrix": [2, 7], "x": 7.75, "y": 2},
+ {"matrix": [2, 8], "x": 8.75, "y": 2},
+ {"matrix": [2, 9], "x": 9.75, "y": 2},
+ {"matrix": [2, 10], "x": 10.75, "y": 2},
+ {"matrix": [2, 11], "x": 11.75, "y": 2},
+ {"matrix": [2, 12], "w": 2.25, "x": 12.75, "y": 2},
+ {"matrix": [2, 14], "x": 15, "y": 2},
+ {"matrix": [3, 0], "w": 2.25, "x": 0, "y": 3},
+ {"matrix": [3, 1], "x": 2.25, "y": 3},
+ {"matrix": [3, 2], "x": 3.25, "y": 3},
+ {"matrix": [3, 3], "x": 4.25, "y": 3},
+ {"matrix": [3, 4], "x": 5.25, "y": 3},
+ {"matrix": [3, 5], "x": 6.25, "y": 3},
+ {"matrix": [3, 6], "x": 7.25, "y": 3},
+ {"matrix": [3, 7], "x": 8.25, "y": 3},
+ {"matrix": [3, 8], "x": 9.25, "y": 3},
+ {"matrix": [3, 9], "x": 10.25, "y": 3},
+ {"matrix": [3, 10], "x": 11.25, "y": 3},
+ {"matrix": [3, 11], "w": 1.75, "x": 12.25, "y": 3},
+ {"matrix": [3, 13], "x": 14, "y": 3},
+ {"matrix": [3, 14], "x": 15, "y": 3},
+ {"matrix": [4, 0], "w": 1.25, "x": 0, "y": 4},
+ {"matrix": [4, 1], "w": 1.25, "x": 1.25, "y": 4},
+ {"matrix": [4, 2], "w": 1.25, "x": 2.5, "y": 4},
+ {"matrix": [4, 6], "w": 6.25, "x": 3.75, "y": 4},
+ {"matrix": [4, 8], "x": 10, "y": 4},
+ {"matrix": [4, 9], "x": 11, "y": 4},
+ {"matrix": [4, 10], "x": 12, "y": 4},
+ {"matrix": [4, 12], "x": 13, "y": 4},
+ {"matrix": [4, 13], "x": 14, "y": 4},
+ {"matrix": [4, 14], "x": 15, "y": 4}
+ ]
+ }
+ }
+}
diff --git a/keyboards/dztech/tofu/jr/v2/readme.md b/keyboards/dztech/tofu/jr/v2/readme.md
new file mode 100644
index 0000000000..8523a3f32a
--- /dev/null
+++ b/keyboards/dztech/tofu/jr/v2/readme.md
@@ -0,0 +1,22 @@
+# TOFU_JR_V2
+A customizable 65% hotswap with RGB backlight keyboard.
+
+* Keyboard Maintainer: [moyi4681](https://github.com/moyi4681)
+* Hardware Supported: TOFU_JR_V2
+* Hardware Availability: [KBDfans](https://kbdfans.com/)
+
+## Bootloader mode
+
+Enter the bootloader in 3 ways:
+
+* Bootmagic reset: Hold down the left top key then plug in the USB cable.
+* Physical reset button: Double tap the reset button.
+* Keycode in layout: Press the key mapped to QK_BOOT if it is available.
+
+## Making firmware
+
+Make example for this keyboard (after setting up your build environment):
+
+ make dztech/tofu/jr/v2: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).
diff --git a/keyboards/dztech/tofu/jr/v2/rules.mk b/keyboards/dztech/tofu/jr/v2/rules.mk
new file mode 100644
index 0000000000..6e7633bfe0
--- /dev/null
+++ b/keyboards/dztech/tofu/jr/v2/rules.mk
@@ -0,0 +1 @@
+# This file intentionally left blank
diff --git a/keyboards/dztech/tofu60/info.json b/keyboards/dztech/tofu60/info.json
new file mode 100644
index 0000000000..57c57604d1
--- /dev/null
+++ b/keyboards/dztech/tofu60/info.json
@@ -0,0 +1,740 @@
+{
+ "manufacturer": "KBDFans",
+ "keyboard_name": "TOFU60",
+ "maintainer": "moyi4681",
+ "bootloader": "rp2040",
+ "diode_direction": "COL2ROW",
+ "features": {
+ "bootmagic": true,
+ "command": false,
+ "console": false,
+ "extrakey": true,
+ "mousekey": true,
+ "nkro": true
+ },
+ "indicators": {
+ "caps_lock": "GP28"
+ },
+ "matrix_pins": {
+ "cols": ["GP2", "GP9", "GP10", "GP11", "GP12", "GP13", "GP14", "GP15", "GP18", "GP19", "GP20", "GP21", "GP22", "GP23"],
+ "rows": ["GP4", "GP3", "GP17", "GP24", "GP25"]
+ },
+ "processor": "RP2040",
+ "usb": {
+ "device_version": "0.0.1",
+ "pid": "0x6071",
+ "vid": "0x4B42"
+ },
+ "community_layouts": [
+ "60_ansi",
+ "60_ansi_split_bs_rshift",
+ "60_ansi_tsangan",
+ "60_hhkb",
+ "60_iso",
+ "60_iso_split_bs_rshift",
+ "60_iso_tsangan",
+ "60_tsangan_hhkb"
+ ],
+ "layouts": {
+ "LAYOUT_60_ansi": {
+ "layout": [
+ { "label": "~", "matrix": [0, 0], "x": 0, "y": 0 },
+ { "label": "!", "matrix": [0, 1], "x": 1, "y": 0 },
+ { "label": "@", "matrix": [0, 2], "x": 2, "y": 0 },
+ { "label": "#", "matrix": [0, 3], "x": 3, "y": 0 },
+ { "label": "$", "matrix": [0, 4], "x": 4, "y": 0 },
+ { "label": "%", "matrix": [0, 5], "x": 5, "y": 0 },
+ { "label": "^", "matrix": [0, 6], "x": 6, "y": 0 },
+ { "label": "&", "matrix": [0, 7], "x": 7, "y": 0 },
+ { "label": "*", "matrix": [0, 8], "x": 8, "y": 0 },
+ { "label": "(", "matrix": [0, 9], "x": 9, "y": 0 },
+ { "label": ")", "matrix": [0, 10], "x": 10, "y": 0 },
+ { "label": "_", "matrix": [0, 11], "x": 11, "y": 0 },
+ { "label": "+", "matrix": [0, 12], "x": 12, "y": 0 },
+ { "label": "Backspace", "matrix": [0, 13], "x": 13, "y": 0, "w": 2 },
+
+ { "label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5 },
+ { "label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1 },
+ { "label": "W", "matrix": [1, 2], "x": 2.5, "y": 1 },
+ { "label": "E", "matrix": [1, 3], "x": 3.5, "y": 1 },
+ { "label": "R", "matrix": [1, 4], "x": 4.5, "y": 1 },
+ { "label": "T", "matrix": [1, 5], "x": 5.5, "y": 1 },
+ { "label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1 },
+ { "label": "U", "matrix": [1, 7], "x": 7.5, "y": 1 },
+ { "label": "I", "matrix": [1, 8], "x": 8.5, "y": 1 },
+ { "label": "O", "matrix": [1, 9], "x": 9.5, "y": 1 },
+ { "label": "P", "matrix": [1, 10], "x": 10.5, "y": 1 },
+ { "label": "{", "matrix": [1, 11], "x": 11.5, "y": 1 },
+ { "label": "}", "matrix": [1, 12], "x": 12.5, "y": 1 },
+ { "label": "|", "matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5 },
+
+ { "label": "Caps Lock", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75 },
+ { "label": "A", "matrix": [2, 1], "x": 1.75, "y": 2 },
+ { "label": "S", "matrix": [2, 2], "x": 2.75, "y": 2 },
+ { "label": "D", "matrix": [2, 3], "x": 3.75, "y": 2 },
+ { "label": "F", "matrix": [2, 4], "x": 4.75, "y": 2 },
+ { "label": "G", "matrix": [2, 5], "x": 5.75, "y": 2 },
+ { "label": "H", "matrix": [2, 6], "x": 6.75, "y": 2 },
+ { "label": "J", "matrix": [2, 7], "x": 7.75, "y": 2 },
+ { "label": "K", "matrix": [2, 8], "x": 8.75, "y": 2 },
+ { "label": "L", "matrix": [2, 9], "x": 9.75, "y": 2 },
+ { "label": ":", "matrix": [2, 10], "x": 10.75, "y": 2 },
+ { "label": "\"", "matrix": [2, 11], "x": 11.75, "y": 2 },
+ { "label": "Enter", "matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25 },
+
+ { "label": "Shift", "matrix": [3, 0], "x": 0, "y": 3, "w": 2.25 },
+ { "label": "Z", "matrix": [3, 2], "x": 2.25, "y": 3 },
+ { "label": "X", "matrix": [3, 3], "x": 3.25, "y": 3 },
+ { "label": "C", "matrix": [3, 4], "x": 4.25, "y": 3 },
+ { "label": "V", "matrix": [3, 5], "x": 5.25, "y": 3 },
+ { "label": "B", "matrix": [3, 6], "x": 6.25, "y": 3 },
+ { "label": "N", "matrix": [3, 7], "x": 7.25, "y": 3 },
+ { "label": "M", "matrix": [3, 8], "x": 8.25, "y": 3 },
+ { "label": "<", "matrix": [3, 9], "x": 9.25, "y": 3 },
+ { "label": ">", "matrix": [3, 10], "x": 10.25, "y": 3 },
+ { "label": "?", "matrix": [3, 11], "x": 11.25, "y": 3 },
+ { "label": "Shift", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 2.75 },
+
+ { "label": "Ctrl", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.25 },
+ { "label": "Win", "matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25 },
+ { "label": "Alt", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25 },
+ { "label": "K47", "matrix": [4, 7], "x": 3.75, "y": 4, "w": 6.25 },
+ { "label": "Alt", "matrix": [4, 10], "x": 10, "y": 4, "w": 1.25 },
+ { "label": "Win", "matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25 },
+ { "label": "Menu", "matrix": [4, 12], "x": 12.5, "y": 4, "w": 1.25 },
+ { "label": "Ctrl", "matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25 }
+ ]
+ },
+ "LAYOUT_60_ansi_split_bs_rshift": {
+ "layout": [
+ {"label": "~", "matrix": [0, 0], "x": 0, "y": 0},
+ {"label": "!", "matrix": [0, 1], "x": 1, "y": 0},
+ {"label": "@", "matrix": [0, 2], "x": 2, "y": 0},
+ {"label": "#", "matrix": [0, 3], "x": 3, "y": 0},
+ {"label": "$", "matrix": [0, 4], "x": 4, "y": 0},
+ {"label": "%", "matrix": [0, 5], "x": 5, "y": 0},
+ {"label": "^", "matrix": [0, 6], "x": 6, "y": 0},
+ {"label": "&", "matrix": [0, 7], "x": 7, "y": 0},
+ {"label": "*", "matrix": [0, 8], "x": 8, "y": 0},
+ {"label": "(", "matrix": [0, 9], "x": 9, "y": 0},
+ {"label": ")", "matrix": [0, 10], "x": 10, "y": 0},
+ {"label": "_", "matrix": [0, 11], "x": 11, "y": 0},
+ {"label": "+", "matrix": [0, 12], "x": 12, "y": 0},
+ {"label": "Del", "matrix": [0, 13], "x": 13, "y": 0},
+ {"label": "Backspace", "matrix": [2, 12], "x": 14, "y": 0},
+
+ {"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
+ {"label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1},
+ {"label": "W", "matrix": [1, 2], "x": 2.5, "y": 1},
+ {"label": "E", "matrix": [1, 3], "x": 3.5, "y": 1},
+ {"label": "R", "matrix": [1, 4], "x": 4.5, "y": 1},
+ {"label": "T", "matrix": [1, 5], "x": 5.5, "y": 1},
+ {"label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1},
+ {"label": "U", "matrix": [1, 7], "x": 7.5, "y": 1},
+ {"label": "I", "matrix": [1, 8], "x": 8.5, "y": 1},
+ {"label": "O", "matrix": [1, 9], "x": 9.5, "y": 1},
+ {"label": "P", "matrix": [1, 10], "x": 10.5, "y": 1},
+ {"label": "{", "matrix": [1, 11], "x": 11.5, "y": 1},
+ {"label": "}", "matrix": [1, 12], "x": 12.5, "y": 1},
+ {"label": "|", "matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5},
+
+ {"label": "Caps Lock", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
+ {"label": "A", "matrix": [2, 1], "x": 1.75, "y": 2},
+ {"label": "S", "matrix": [2, 2], "x": 2.75, "y": 2},
+ {"label": "D", "matrix": [2, 3], "x": 3.75, "y": 2},
+ {"label": "F", "matrix": [2, 4], "x": 4.75, "y": 2},
+ {"label": "G", "matrix": [2, 5], "x": 5.75, "y": 2},
+ {"label": "H", "matrix": [2, 6], "x": 6.75, "y": 2},
+ {"label": "J", "matrix": [2, 7], "x": 7.75, "y": 2},
+ {"label": "K", "matrix": [2, 8], "x": 8.75, "y": 2},
+ {"label": "L", "matrix": [2, 9], "x": 9.75, "y": 2},
+ {"label": ":", "matrix": [2, 10], "x": 10.75, "y": 2},
+ {"label": "\"", "matrix": [2, 11], "x": 11.75, "y": 2},
+ {"label": "Enter", "matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25},
+
+ {"label": "Shift", "matrix": [3, 0], "x": 0, "y": 3, "w": 2.25},
+ {"label": "Z", "matrix": [3, 2], "x": 2.25, "y": 3},
+ {"label": "X", "matrix": [3, 3], "x": 3.25, "y": 3},
+ {"label": "C", "matrix": [3, 4], "x": 4.25, "y": 3},
+ {"label": "V", "matrix": [3, 5], "x": 5.25, "y": 3},
+ {"label": "B", "matrix": [3, 6], "x": 6.25, "y": 3},
+ {"label": "N", "matrix": [3, 7], "x": 7.25, "y": 3},
+ {"label": "M", "matrix": [3, 8], "x": 8.25, "y": 3},
+ {"label": "<", "matrix": [3, 9], "x": 9.25, "y": 3},
+ {"label": ">", "matrix": [3, 10], "x": 10.25, "y": 3},
+ {"label": "?", "matrix": [3, 11], "x": 11.25, "y": 3},
+ {"label": "Shift", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75},
+ {"label": "Fn", "matrix": [3, 13], "x": 14, "y": 3},
+
+ {"label": "Ctrl", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.25},
+ {"label": "Win", "matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25},
+ {"label": "Alt", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25},
+ {"label": "K47", "matrix": [4, 7], "x": 3.75, "y": 4, "w": 6.25},
+ {"label": "Alt", "matrix": [4, 10], "x": 10, "y": 4, "w": 1.25},
+ {"label": "Win", "matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25},
+ {"label": "Menu", "matrix": [4, 12], "x": 12.5, "y": 4, "w": 1.25},
+ {"label": "Ctrl", "matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25}
+ ]
+ },
+ "LAYOUT_60_hhkb": {
+ "layout": [
+ { "label": "~", "matrix": [0, 0], "x": 0, "y": 0 },
+ { "label": "!", "matrix": [0, 1], "x": 1, "y": 0 },
+ { "label": "@", "matrix": [0, 2], "x": 2, "y": 0 },
+ { "label": "#", "matrix": [0, 3], "x": 3, "y": 0 },
+ { "label": "$", "matrix": [0, 4], "x": 4, "y": 0 },
+ { "label": "%", "matrix": [0, 5], "x": 5, "y": 0 },
+ { "label": "^", "matrix": [0, 6], "x": 6, "y": 0 },
+ { "label": "&", "matrix": [0, 7], "x": 7, "y": 0 },
+ { "label": "*", "matrix": [0, 8], "x": 8, "y": 0 },
+ { "label": "(", "matrix": [0, 9], "x": 9, "y": 0 },
+ { "label": ")", "matrix": [0, 10], "x": 10, "y": 0 },
+ { "label": "_", "matrix": [0, 11], "x": 11, "y": 0 },
+ { "label": "+", "matrix": [0, 12], "x": 12, "y": 0 },
+ { "label": "Del", "matrix": [0, 13], "x": 13, "y": 0 },
+ { "label": "Backspace", "matrix": [2, 12], "x": 14, "y": 0 },
+
+ { "label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5 },
+ { "label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1 },
+ { "label": "W", "matrix": [1, 2], "x": 2.5, "y": 1 },
+ { "label": "E", "matrix": [1, 3], "x": 3.5, "y": 1 },
+ { "label": "R", "matrix": [1, 4], "x": 4.5, "y": 1 },
+ { "label": "T", "matrix": [1, 5], "x": 5.5, "y": 1 },
+ { "label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1 },
+ { "label": "U", "matrix": [1, 7], "x": 7.5, "y": 1 },
+ { "label": "I", "matrix": [1, 8], "x": 8.5, "y": 1 },
+ { "label": "O", "matrix": [1, 9], "x": 9.5, "y": 1 },
+ { "label": "P", "matrix": [1, 10], "x": 10.5, "y": 1 },
+ { "label": "{", "matrix": [1, 11], "x": 11.5, "y": 1 },
+ { "label": "}", "matrix": [1, 12], "x": 12.5, "y": 1 },
+ { "label": "|", "matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5 },
+
+ { "label": "Caps Lock", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75 },
+ { "label": "A", "matrix": [2, 1], "x": 1.75, "y": 2 },
+ { "label": "S", "matrix": [2, 2], "x": 2.75, "y": 2 },
+ { "label": "D", "matrix": [2, 3], "x": 3.75, "y": 2 },
+ { "label": "F", "matrix": [2, 4], "x": 4.75, "y": 2 },
+ { "label": "G", "matrix": [2, 5], "x": 5.75, "y": 2 },
+ { "label": "H", "matrix": [2, 6], "x": 6.75, "y": 2 },
+ { "label": "J", "matrix": [2, 7], "x": 7.75, "y": 2 },
+ { "label": "K", "matrix": [2, 8], "x": 8.75, "y": 2 },
+ { "label": "L", "matrix": [2, 9], "x": 9.75, "y": 2 },
+ { "label": ":", "matrix": [2, 10], "x": 10.75, "y": 2 },
+ { "label": "\"", "matrix": [2, 11], "x": 11.75, "y": 2 },
+ { "label": "Enter", "matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25 },
+
+ { "label": "Shift", "matrix": [3, 0], "x": 0, "y": 3, "w": 2.25 },
+ { "label": "Z", "matrix": [3, 2], "x": 2.25, "y": 3 },
+ { "label": "X", "matrix": [3, 3], "x": 3.25, "y": 3 },
+ { "label": "C", "matrix": [3, 4], "x": 4.25, "y": 3 },
+ { "label": "V", "matrix": [3, 5], "x": 5.25, "y": 3 },
+ { "label": "B", "matrix": [3, 6], "x": 6.25, "y": 3 },
+ { "label": "N", "matrix": [3, 7], "x": 7.25, "y": 3 },
+ { "label": "M", "matrix": [3, 8], "x": 8.25, "y": 3 },
+ { "label": "<", "matrix": [3, 9], "x": 9.25, "y": 3 },
+ { "label": ">", "matrix": [3, 10], "x": 10.25, "y": 3 },
+ { "label": "?", "matrix": [3, 11], "x": 11.25, "y": 3 },
+ { "label": "Shift", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75 },
+ { "label": "Fn", "matrix": [3, 13], "x": 14, "y": 3 },
+ { "label": "Ctrl", "matrix": [4, 1], "x": 1.5, "y": 4 },
+ { "label": "Alt", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5 },
+ { "label": "K47", "matrix": [4, 7], "x": 4, "y": 4, "w": 7 },
+ { "label": "Alt", "matrix": [4, 11], "x": 11, "y": 4, "w": 1.5 },
+ { "label": "Ctrl", "matrix": [4, 12], "x": 12.5, "y": 4 }
+ ]
+ },
+ "LAYOUT_60_iso": {
+ "layout": [
+ { "label": "~", "matrix": [0, 0], "x": 0, "y": 0 },
+ { "label": "!", "matrix": [0, 1], "x": 1, "y": 0 },
+ { "label": "@", "matrix": [0, 2], "x": 2, "y": 0 },
+ { "label": "#", "matrix": [0, 3], "x": 3, "y": 0 },
+ { "label": "$", "matrix": [0, 4], "x": 4, "y": 0 },
+ { "label": "%", "matrix": [0, 5], "x": 5, "y": 0 },
+ { "label": "^", "matrix": [0, 6], "x": 6, "y": 0 },
+ { "label": "&", "matrix": [0, 7], "x": 7, "y": 0 },
+ { "label": "*", "matrix": [0, 8], "x": 8, "y": 0 },
+ { "label": "(", "matrix": [0, 9], "x": 9, "y": 0 },
+ { "label": ")", "matrix": [0, 10], "x": 10, "y": 0 },
+ { "label": "_", "matrix": [0, 11], "x": 11, "y": 0 },
+ { "label": "+", "matrix": [0, 12], "x": 12, "y": 0 },
+ { "label": "Backspace", "matrix": [0, 13], "x": 13, "y": 0, "w": 2 },
+
+ { "label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5 },
+ { "label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1 },
+ { "label": "W", "matrix": [1, 2], "x": 2.5, "y": 1 },
+ { "label": "E", "matrix": [1, 3], "x": 3.5, "y": 1 },
+ { "label": "R", "matrix": [1, 4], "x": 4.5, "y": 1 },
+ { "label": "T", "matrix": [1, 5], "x": 5.5, "y": 1 },
+ { "label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1 },
+ { "label": "U", "matrix": [1, 7], "x": 7.5, "y": 1 },
+ { "label": "I", "matrix": [1, 8], "x": 8.5, "y": 1 },
+ { "label": "O", "matrix": [1, 9], "x": 9.5, "y": 1 },
+ { "label": "P", "matrix": [1, 10], "x": 10.5, "y": 1 },
+ { "label": "{", "matrix": [1, 11], "x": 11.5, "y": 1 },
+ { "label": "}", "matrix": [1, 12], "x": 12.5, "y": 1 },
+
+ { "label": "Caps Lock", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75 },
+ { "label": "A", "matrix": [2, 1], "x": 1.75, "y": 2 },
+ { "label": "S", "matrix": [2, 2], "x": 2.75, "y": 2 },
+ { "label": "D", "matrix": [2, 3], "x": 3.75, "y": 2 },
+ { "label": "F", "matrix": [2, 4], "x": 4.75, "y": 2 },
+ { "label": "G", "matrix": [2, 5], "x": 5.75, "y": 2 },
+ { "label": "H", "matrix": [2, 6], "x": 6.75, "y": 2 },
+ { "label": "J", "matrix": [2, 7], "x": 7.75, "y": 2 },
+ { "label": "K", "matrix": [2, 8], "x": 8.75, "y": 2 },
+ { "label": "L", "matrix": [2, 9], "x": 9.75, "y": 2 },
+ { "label": ":", "matrix": [2, 10], "x": 10.75, "y": 2 },
+ { "label": "@", "matrix": [2, 11], "x": 11.75, "y": 2 },
+ { "label": "~", "matrix": [1, 13], "x": 12.75, "y": 2 },
+ { "label": "Enter", "matrix": [2, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 2 },
+
+ { "label": "Shift", "matrix": [3, 0], "x": 0, "y": 3, "w": 1.25 },
+ { "label": "|", "matrix": [3, 1], "x": 1.25, "y": 3 },
+ { "label": "Z", "matrix": [3, 2], "x": 2.25, "y": 3 },
+ { "label": "X", "matrix": [3, 3], "x": 3.25, "y": 3 },
+ { "label": "C", "matrix": [3, 4], "x": 4.25, "y": 3 },
+ { "label": "V", "matrix": [3, 5], "x": 5.25, "y": 3 },
+ { "label": "B", "matrix": [3, 6], "x": 6.25, "y": 3 },
+ { "label": "N", "matrix": [3, 7], "x": 7.25, "y": 3 },
+ { "label": "M", "matrix": [3, 8], "x": 8.25, "y": 3 },
+ { "label": "<", "matrix": [3, 9], "x": 9.25, "y": 3 },
+ { "label": ">", "matrix": [3, 10], "x": 10.25, "y": 3 },
+ { "label": "?", "matrix": [3, 11], "x": 11.25, "y": 3 },
+ { "label": "Shift", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 2.75 },
+
+ { "label": "Ctrl", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.25 },
+ { "label": "Win", "matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25 },
+ { "label": "Alt", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25 },
+ { "label": "K47", "matrix": [4, 7], "x": 3.75, "y": 4, "w": 6.25 },
+ { "label": "AltGr", "matrix": [4, 10], "x": 10, "y": 4, "w": 1.25 },
+ { "label": "Win", "matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25 },
+ { "label": "Menu", "matrix": [4, 12], "x": 12.5, "y": 4, "w": 1.25 },
+ { "label": "Ctrl", "matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25 }
+ ]
+ },
+ "LAYOUT_60_ansi_tsangan": {
+ "layout": [
+ { "label": "~", "matrix": [0, 0], "x": 0, "y": 0 },
+ { "label": "!", "matrix": [0, 1], "x": 1, "y": 0 },
+ { "label": "@", "matrix": [0, 2], "x": 2, "y": 0 },
+ { "label": "#", "matrix": [0, 3], "x": 3, "y": 0 },
+ { "label": "$", "matrix": [0, 4], "x": 4, "y": 0 },
+ { "label": "%", "matrix": [0, 5], "x": 5, "y": 0 },
+ { "label": "^", "matrix": [0, 6], "x": 6, "y": 0 },
+ { "label": "&", "matrix": [0, 7], "x": 7, "y": 0 },
+ { "label": "*", "matrix": [0, 8], "x": 8, "y": 0 },
+ { "label": "(", "matrix": [0, 9], "x": 9, "y": 0 },
+ { "label": ")", "matrix": [0, 10], "x": 10, "y": 0 },
+ { "label": "_", "matrix": [0, 11], "x": 11, "y": 0 },
+ { "label": "+", "matrix": [0, 12], "x": 12, "y": 0 },
+ { "label": "Backspace", "matrix": [0, 13], "x": 13, "y": 0, "w": 2 },
+
+ { "label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5 },
+ { "label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1 },
+ { "label": "W", "matrix": [1, 2], "x": 2.5, "y": 1 },
+ { "label": "E", "matrix": [1, 3], "x": 3.5, "y": 1 },
+ { "label": "R", "matrix": [1, 4], "x": 4.5, "y": 1 },
+ { "label": "T", "matrix": [1, 5], "x": 5.5, "y": 1 },
+ { "label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1 },
+ { "label": "U", "matrix": [1, 7], "x": 7.5, "y": 1 },
+ { "label": "I", "matrix": [1, 8], "x": 8.5, "y": 1 },
+ { "label": "O", "matrix": [1, 9], "x": 9.5, "y": 1 },
+ { "label": "P", "matrix": [1, 10], "x": 10.5, "y": 1 },
+ { "label": "{", "matrix": [1, 11], "x": 11.5, "y": 1 },
+ { "label": "}", "matrix": [1, 12], "x": 12.5, "y": 1 },
+ { "label": "|", "matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5 },
+
+ { "label": "Caps Lock", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75 },
+ { "label": "A", "matrix": [2, 1], "x": 1.75, "y": 2 },
+ { "label": "S", "matrix": [2, 2], "x": 2.75, "y": 2 },
+ { "label": "D", "matrix": [2, 3], "x": 3.75, "y": 2 },
+ { "label": "F", "matrix": [2, 4], "x": 4.75, "y": 2 },
+ { "label": "G", "matrix": [2, 5], "x": 5.75, "y": 2 },
+ { "label": "H", "matrix": [2, 6], "x": 6.75, "y": 2 },
+ { "label": "J", "matrix": [2, 7], "x": 7.75, "y": 2 },
+ { "label": "K", "matrix": [2, 8], "x": 8.75, "y": 2 },
+ { "label": "L", "matrix": [2, 9], "x": 9.75, "y": 2 },
+ { "label": ":", "matrix": [2, 10], "x": 10.75, "y": 2 },
+ { "label": "\"", "matrix": [2, 11], "x": 11.75, "y": 2 },
+ { "label": "Enter", "matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25 },
+
+ { "label": "Shift", "matrix": [3, 0], "x": 0, "y": 3, "w": 2.25 },
+ { "label": "Z", "matrix": [3, 2], "x": 2.25, "y": 3 },
+ { "label": "X", "matrix": [3, 3], "x": 3.25, "y": 3 },
+ { "label": "C", "matrix": [3, 4], "x": 4.25, "y": 3 },
+ { "label": "V", "matrix": [3, 5], "x": 5.25, "y": 3 },
+ { "label": "B", "matrix": [3, 6], "x": 6.25, "y": 3 },
+ { "label": "N", "matrix": [3, 7], "x": 7.25, "y": 3 },
+ { "label": "M", "matrix": [3, 8], "x": 8.25, "y": 3 },
+ { "label": "<", "matrix": [3, 9], "x": 9.25, "y": 3 },
+ { "label": ">", "matrix": [3, 10], "x": 10.25, "y": 3 },
+ { "label": "?", "matrix": [3, 11], "x": 11.25, "y": 3 },
+ { "label": "Shift", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 2.75 },
+
+ { "label": "Ctrl", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.5 },
+ { "label": "Win", "matrix": [4, 1], "x": 1.5, "y": 4 },
+ { "label": "Alt", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5 },
+ { "label": "K47", "matrix": [4, 7], "x": 4, "y": 4, "w": 7 },
+ { "label": "Alt", "matrix": [4, 11], "x": 11, "y": 4, "w": 1.5 },
+ { "label": "Win", "matrix": [4, 12], "x": 12.5, "y": 4 },
+ { "label": "Ctrl", "matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5 }
+ ]
+ },
+ "LAYOUT_60_tsangan_hhkb": {
+ "layout": [
+ { "label": "~", "matrix": [0, 0], "x": 0, "y": 0 },
+ { "label": "!", "matrix": [0, 1], "x": 1, "y": 0 },
+ { "label": "@", "matrix": [0, 2], "x": 2, "y": 0 },
+ { "label": "#", "matrix": [0, 3], "x": 3, "y": 0 },
+ { "label": "$", "matrix": [0, 4], "x": 4, "y": 0 },
+ { "label": "%", "matrix": [0, 5], "x": 5, "y": 0 },
+ { "label": "^", "matrix": [0, 6], "x": 6, "y": 0 },
+ { "label": "&", "matrix": [0, 7], "x": 7, "y": 0 },
+ { "label": "*", "matrix": [0, 8], "x": 8, "y": 0 },
+ { "label": "(", "matrix": [0, 9], "x": 9, "y": 0 },
+ { "label": ")", "matrix": [0, 10], "x": 10, "y": 0 },
+ { "label": "_", "matrix": [0, 11], "x": 11, "y": 0 },
+ { "label": "+", "matrix": [0, 12], "x": 12, "y": 0 },
+ { "label": "Del", "matrix": [0, 13], "x": 13, "y": 0 },
+ { "label": "Backspace", "matrix": [2, 12], "x": 14, "y": 0 },
+
+ { "label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5 },
+ { "label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1 },
+ { "label": "W", "matrix": [1, 2], "x": 2.5, "y": 1 },
+ { "label": "E", "matrix": [1, 3], "x": 3.5, "y": 1 },
+ { "label": "R", "matrix": [1, 4], "x": 4.5, "y": 1 },
+ { "label": "T", "matrix": [1, 5], "x": 5.5, "y": 1 },
+ { "label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1 },
+ { "label": "U", "matrix": [1, 7], "x": 7.5, "y": 1 },
+ { "label": "I", "matrix": [1, 8], "x": 8.5, "y": 1 },
+ { "label": "O", "matrix": [1, 9], "x": 9.5, "y": 1 },
+ { "label": "P", "matrix": [1, 10], "x": 10.5, "y": 1 },
+ { "label": "{", "matrix": [1, 11], "x": 11.5, "y": 1 },
+ { "label": "}", "matrix": [1, 12], "x": 12.5, "y": 1 },
+ { "label": "|", "matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5 },
+
+ { "label": "Caps Lock", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75 },
+ { "label": "A", "matrix": [2, 1], "x": 1.75, "y": 2 },
+ { "label": "S", "matrix": [2, 2], "x": 2.75, "y": 2 },
+ { "label": "D", "matrix": [2, 3], "x": 3.75, "y": 2 },
+ { "label": "F", "matrix": [2, 4], "x": 4.75, "y": 2 },
+ { "label": "G", "matrix": [2, 5], "x": 5.75, "y": 2 },
+ { "label": "H", "matrix": [2, 6], "x": 6.75, "y": 2 },
+ { "label": "J", "matrix": [2, 7], "x": 7.75, "y": 2 },
+ { "label": "K", "matrix": [2, 8], "x": 8.75, "y": 2 },
+ { "label": "L", "matrix": [2, 9], "x": 9.75, "y": 2 },
+ { "label": ":", "matrix": [2, 10], "x": 10.75, "y": 2 },
+ { "label": "\"", "matrix": [2, 11], "x": 11.75, "y": 2 },
+ { "label": "Enter", "matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25 },
+
+ { "label": "Shift", "matrix": [3, 0], "x": 0, "y": 3, "w": 2.25 },
+ { "label": "Z", "matrix": [3, 2], "x": 2.25, "y": 3 },
+ { "label": "X", "matrix": [3, 3], "x": 3.25, "y": 3 },
+ { "label": "C", "matrix": [3, 4], "x": 4.25, "y": 3 },
+ { "label": "V", "matrix": [3, 5], "x": 5.25, "y": 3 },
+ { "label": "B", "matrix": [3, 6], "x": 6.25, "y": 3 },
+ { "label": "N", "matrix": [3, 7], "x": 7.25, "y": 3 },
+ { "label": "M", "matrix": [3, 8], "x": 8.25, "y": 3 },
+ { "label": "<", "matrix": [3, 9], "x": 9.25, "y": 3 },
+ { "label": ">", "matrix": [3, 10], "x": 10.25, "y": 3 },
+ { "label": "?", "matrix": [3, 11], "x": 11.25, "y": 3 },
+ { "label": "Shift", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75 },
+ { "label": "Fn", "matrix": [3, 13], "x": 14, "y": 3 },
+
+ { "label": "Ctrl", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.5 },
+ { "label": "Win", "matrix": [4, 1], "x": 1.5, "y": 4 },
+ { "label": "Alt", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5 },
+ { "label": "K47", "matrix": [4, 7], "x": 4, "y": 4, "w": 7 },
+ { "label": "Alt", "matrix": [4, 11], "x": 11, "y": 4, "w": 1.5 },
+ { "label": "Win", "matrix": [4, 12], "x": 12.5, "y": 4 },
+ { "label": "Ctrl", "matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5 }
+ ]
+ },
+ "LAYOUT_60_iso_split_bs_rshift": {
+ "layout": [
+ {"label": "~", "matrix": [0, 0], "x": 0, "y": 0},
+ {"label": "!", "matrix": [0, 1], "x": 1, "y": 0},
+ {"label": "@", "matrix": [0, 2], "x": 2, "y": 0},
+ {"label": "#", "matrix": [0, 3], "x": 3, "y": 0},
+ {"label": "$", "matrix": [0, 4], "x": 4, "y": 0},
+ {"label": "%", "matrix": [0, 5], "x": 5, "y": 0},
+ {"label": "^", "matrix": [0, 6], "x": 6, "y": 0},
+ {"label": "&", "matrix": [0, 7], "x": 7, "y": 0},
+ {"label": "*", "matrix": [0, 8], "x": 8, "y": 0},
+ {"label": "(", "matrix": [0, 9], "x": 9, "y": 0},
+ {"label": ")", "matrix": [0, 10], "x": 10, "y": 0},
+ {"label": "_", "matrix": [0, 11], "x": 11, "y": 0},
+ {"label": "+", "matrix": [0, 12], "x": 12, "y": 0},
+ {"label": "Del", "matrix": [0, 13], "x": 13, "y": 0},
+ {"label": "Backspace", "matrix": [2, 12], "x": 14, "y": 0},
+
+ {"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
+ {"label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1},
+ {"label": "W", "matrix": [1, 2], "x": 2.5, "y": 1},
+ {"label": "E", "matrix": [1, 3], "x": 3.5, "y": 1},
+ {"label": "R", "matrix": [1, 4], "x": 4.5, "y": 1},
+ {"label": "T", "matrix": [1, 5], "x": 5.5, "y": 1},
+ {"label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1},
+ {"label": "U", "matrix": [1, 7], "x": 7.5, "y": 1},
+ {"label": "I", "matrix": [1, 8], "x": 8.5, "y": 1},
+ {"label": "O", "matrix": [1, 9], "x": 9.5, "y": 1},
+ {"label": "P", "matrix": [1, 10], "x": 10.5, "y": 1},
+ {"label": "{", "matrix": [1, 11], "x": 11.5, "y": 1},
+ {"label": "}", "matrix": [1, 12], "x": 12.5, "y": 1},
+
+ {"label": "Caps Lock", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
+ {"label": "A", "matrix": [2, 1], "x": 1.75, "y": 2},
+ {"label": "S", "matrix": [2, 2], "x": 2.75, "y": 2},
+ {"label": "D", "matrix": [2, 3], "x": 3.75, "y": 2},
+ {"label": "F", "matrix": [2, 4], "x": 4.75, "y": 2},
+ {"label": "G", "matrix": [2, 5], "x": 5.75, "y": 2},
+ {"label": "H", "matrix": [2, 6], "x": 6.75, "y": 2},
+ {"label": "J", "matrix": [2, 7], "x": 7.75, "y": 2},
+ {"label": "K", "matrix": [2, 8], "x": 8.75, "y": 2},
+ {"label": "L", "matrix": [2, 9], "x": 9.75, "y": 2},
+ {"label": ":", "matrix": [2, 10], "x": 10.75, "y": 2},
+ {"label": "@", "matrix": [2, 11], "x": 11.75, "y": 2},
+ {"label": "~", "matrix": [1, 13], "x": 12.75, "y": 2},
+ {"label": "Enter", "matrix": [2, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 2},
+
+ {"label": "Shift", "matrix": [3, 0], "x": 0, "y": 3, "w": 1.25},
+ {"label": "|", "matrix": [3, 1], "x": 1.25, "y": 3},
+ {"label": "Z", "matrix": [3, 2], "x": 2.25, "y": 3},
+ {"label": "X", "matrix": [3, 3], "x": 3.25, "y": 3},
+ {"label": "C", "matrix": [3, 4], "x": 4.25, "y": 3},
+ {"label": "V", "matrix": [3, 5], "x": 5.25, "y": 3},
+ {"label": "B", "matrix": [3, 6], "x": 6.25, "y": 3},
+ {"label": "N", "matrix": [3, 7], "x": 7.25, "y": 3},
+ {"label": "M", "matrix": [3, 8], "x": 8.25, "y": 3},
+ {"label": "<", "matrix": [3, 9], "x": 9.25, "y": 3},
+ {"label": ">", "matrix": [3, 10], "x": 10.25, "y": 3},
+ {"label": "?", "matrix": [3, 11], "x": 11.25, "y": 3},
+ {"label": "Shift", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75},
+ {"label": "Fn", "matrix": [3, 13], "x": 14, "y": 3},
+
+ {"label": "Ctrl", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.25},
+ {"label": "Win", "matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25},
+ {"label": "Alt", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25},
+ {"label": "K47", "matrix": [4, 7], "x": 3.75, "y": 4, "w": 6.25},
+ {"label": "AltGr", "matrix": [4, 10], "x": 10, "y": 4, "w": 1.25},
+ {"label": "Win", "matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25},
+ {"label": "Menu", "matrix": [4, 12], "x": 12.5, "y": 4, "w": 1.25},
+ {"label": "Ctrl", "matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25}
+ ]
+ },
+ "LAYOUT_60_iso_tsangan": {
+ "layout": [
+ {"label": "~", "matrix": [0, 0], "x": 0, "y": 0},
+ {"label": "!", "matrix": [0, 1], "x": 1, "y": 0},
+ {"label": "@", "matrix": [0, 2], "x": 2, "y": 0},
+ {"label": "#", "matrix": [0, 3], "x": 3, "y": 0},
+ {"label": "$", "matrix": [0, 4], "x": 4, "y": 0},
+ {"label": "%", "matrix": [0, 5], "x": 5, "y": 0},
+ {"label": "^", "matrix": [0, 6], "x": 6, "y": 0},
+ {"label": "&", "matrix": [0, 7], "x": 7, "y": 0},
+ {"label": "*", "matrix": [0, 8], "x": 8, "y": 0},
+ {"label": "(", "matrix": [0, 9], "x": 9, "y": 0},
+ {"label": ")", "matrix": [0, 10], "x": 10, "y": 0},
+ {"label": "_", "matrix": [0, 11], "x": 11, "y": 0},
+ {"label": "+", "matrix": [0, 12], "x": 12, "y": 0},
+ {"label": "Backspace", "matrix": [0, 13], "x": 13, "y": 0, "w": 2},
+
+ {"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
+ {"label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1},
+ {"label": "W", "matrix": [1, 2], "x": 2.5, "y": 1},
+ {"label": "E", "matrix": [1, 3], "x": 3.5, "y": 1},
+ {"label": "R", "matrix": [1, 4], "x": 4.5, "y": 1},
+ {"label": "T", "matrix": [1, 5], "x": 5.5, "y": 1},
+ {"label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1},
+ {"label": "U", "matrix": [1, 7], "x": 7.5, "y": 1},
+ {"label": "I", "matrix": [1, 8], "x": 8.5, "y": 1},
+ {"label": "O", "matrix": [1, 9], "x": 9.5, "y": 1},
+ {"label": "P", "matrix": [1, 10], "x": 10.5, "y": 1},
+ {"label": "{", "matrix": [1, 11], "x": 11.5, "y": 1},
+ {"label": "}", "matrix": [1, 12], "x": 12.5, "y": 1},
+
+ {"label": "Caps Lock", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
+ {"label": "A", "matrix": [2, 1], "x": 1.75, "y": 2},
+ {"label": "S", "matrix": [2, 2], "x": 2.75, "y": 2},
+ {"label": "D", "matrix": [2, 3], "x": 3.75, "y": 2},
+ {"label": "F", "matrix": [2, 4], "x": 4.75, "y": 2},
+ {"label": "G", "matrix": [2, 5], "x": 5.75, "y": 2},
+ {"label": "H", "matrix": [2, 6], "x": 6.75, "y": 2},
+ {"label": "J", "matrix": [2, 7], "x": 7.75, "y": 2},
+ {"label": "K", "matrix": [2, 8], "x": 8.75, "y": 2},
+ {"label": "L", "matrix": [2, 9], "x": 9.75, "y": 2},
+ {"label": ":", "matrix": [2, 10], "x": 10.75, "y": 2},
+ {"label": "@", "matrix": [2, 11], "x": 11.75, "y": 2},
+ {"label": "~", "matrix": [1, 13], "x": 12.75, "y": 2},
+ {"label": "Enter", "matrix": [2, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 2},
+
+ {"label": "Shift", "matrix": [3, 0], "x": 0, "y": 3, "w": 1.25},
+ {"label": "|", "matrix": [3, 1], "x": 1.25, "y": 3},
+ {"label": "Z", "matrix": [3, 2], "x": 2.25, "y": 3},
+ {"label": "X", "matrix": [3, 3], "x": 3.25, "y": 3},
+ {"label": "C", "matrix": [3, 4], "x": 4.25, "y": 3},
+ {"label": "V", "matrix": [3, 5], "x": 5.25, "y": 3},
+ {"label": "B", "matrix": [3, 6], "x": 6.25, "y": 3},
+ {"label": "N", "matrix": [3, 7], "x": 7.25, "y": 3},
+ {"label": "M", "matrix": [3, 8], "x": 8.25, "y": 3},
+ {"label": "<", "matrix": [3, 9], "x": 9.25, "y": 3},
+ {"label": ">", "matrix": [3, 10], "x": 10.25, "y": 3},
+ {"label": "?", "matrix": [3, 11], "x": 11.25, "y": 3},
+ {"label": "Shift", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 2.75},
+
+ {"label": "Ctrl", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.5},
+ {"label": "Win", "matrix": [4, 1], "x": 1.5, "y": 4},
+ {"label": "Alt", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5},
+ {"label": "K47", "matrix": [4, 7], "x": 4, "y": 4, "w": 7},
+ {"label": "Alt", "matrix": [4, 11], "x": 11, "y": 4, "w": 1.5},
+ {"label": "Win", "matrix": [4, 12], "x": 12.5, "y": 4},
+ {"label": "Ctrl", "matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5}
+ ]
+ },
+ "LAYOUT_60_iso_tsangan_split_bs_rshift": {
+ "layout": [
+ {"label": "~", "matrix": [0, 0], "x": 0, "y": 0},
+ {"label": "!", "matrix": [0, 1], "x": 1, "y": 0},
+ {"label": "@", "matrix": [0, 2], "x": 2, "y": 0},
+ {"label": "#", "matrix": [0, 3], "x": 3, "y": 0},
+ {"label": "$", "matrix": [0, 4], "x": 4, "y": 0},
+ {"label": "%", "matrix": [0, 5], "x": 5, "y": 0},
+ {"label": "^", "matrix": [0, 6], "x": 6, "y": 0},
+ {"label": "&", "matrix": [0, 7], "x": 7, "y": 0},
+ {"label": "*", "matrix": [0, 8], "x": 8, "y": 0},
+ {"label": "(", "matrix": [0, 9], "x": 9, "y": 0},
+ {"label": ")", "matrix": [0, 10], "x": 10, "y": 0},
+ {"label": "_", "matrix": [0, 11], "x": 11, "y": 0},
+ {"label": "+", "matrix": [0, 12], "x": 12, "y": 0},
+ {"label": "Del", "matrix": [0, 13], "x": 13, "y": 0},
+ {"label": "Backspace", "matrix": [2, 12], "x": 14, "y": 0},
+
+ {"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
+ {"label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1},
+ {"label": "W", "matrix": [1, 2], "x": 2.5, "y": 1},
+ {"label": "E", "matrix": [1, 3], "x": 3.5, "y": 1},
+ {"label": "R", "matrix": [1, 4], "x": 4.5, "y": 1},
+ {"label": "T", "matrix": [1, 5], "x": 5.5, "y": 1},
+ {"label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1},
+ {"label": "U", "matrix": [1, 7], "x": 7.5, "y": 1},
+ {"label": "I", "matrix": [1, 8], "x": 8.5, "y": 1},
+ {"label": "O", "matrix": [1, 9], "x": 9.5, "y": 1},
+ {"label": "P", "matrix": [1, 10], "x": 10.5, "y": 1},
+ {"label": "{", "matrix": [1, 11], "x": 11.5, "y": 1},
+ {"label": "}", "matrix": [1, 12], "x": 12.5, "y": 1},
+
+ {"label": "Caps Lock", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
+ {"label": "A", "matrix": [2, 1], "x": 1.75, "y": 2},
+ {"label": "S", "matrix": [2, 2], "x": 2.75, "y": 2},
+ {"label": "D", "matrix": [2, 3], "x": 3.75, "y": 2},
+ {"label": "F", "matrix": [2, 4], "x": 4.75, "y": 2},
+ {"label": "G", "matrix": [2, 5], "x": 5.75, "y": 2},
+ {"label": "H", "matrix": [2, 6], "x": 6.75, "y": 2},
+ {"label": "J", "matrix": [2, 7], "x": 7.75, "y": 2},
+ {"label": "K", "matrix": [2, 8], "x": 8.75, "y": 2},
+ {"label": "L", "matrix": [2, 9], "x": 9.75, "y": 2},
+ {"label": ":", "matrix": [2, 10], "x": 10.75, "y": 2},
+ {"label": "@", "matrix": [2, 11], "x": 11.75, "y": 2},
+ {"label": "~", "matrix": [1, 13], "x": 12.75, "y": 2},
+ {"label": "Enter", "matrix": [2, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 2},
+
+ {"label": "Shift", "matrix": [3, 0], "x": 0, "y": 3, "w": 1.25},
+ {"label": "|", "matrix": [3, 1], "x": 1.25, "y": 3},
+ {"label": "Z", "matrix": [3, 2], "x": 2.25, "y": 3},
+ {"label": "X", "matrix": [3, 3], "x": 3.25, "y": 3},
+ {"label": "C", "matrix": [3, 4], "x": 4.25, "y": 3},
+ {"label": "V", "matrix": [3, 5], "x": 5.25, "y": 3},
+ {"label": "B", "matrix": [3, 6], "x": 6.25, "y": 3},
+ {"label": "N", "matrix": [3, 7], "x": 7.25, "y": 3},
+ {"label": "M", "matrix": [3, 8], "x": 8.25, "y": 3},
+ {"label": "<", "matrix": [3, 9], "x": 9.25, "y": 3},
+ {"label": ">", "matrix": [3, 10], "x": 10.25, "y": 3},
+ {"label": "?", "matrix": [3, 11], "x": 11.25, "y": 3},
+ {"label": "Shift", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75},
+ {"label": "Fn", "matrix": [3, 13], "x": 14, "y": 3},
+
+ {"label": "Ctrl", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.5},
+ {"label": "Win", "matrix": [4, 1], "x": 1.5, "y": 4},
+ {"label": "Alt", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5},
+ {"label": "K47", "matrix": [4, 7], "x": 4, "y": 4, "w": 7},
+ {"label": "Alt", "matrix": [4, 11], "x": 11, "y": 4, "w": 1.5},
+ {"label": "Win", "matrix": [4, 12], "x": 12.5, "y": 4},
+ {"label": "Ctrl", "matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5}
+ ]
+ },
+ "LAYOUT_all": {
+ "layout": [
+ { "label": "~", "matrix": [0, 0], "x": 0, "y": 0 },
+ { "label": "!", "matrix": [0, 1], "x": 1, "y": 0 },
+ { "label": "@", "matrix": [0, 2], "x": 2, "y": 0 },
+ { "label": "#", "matrix": [0, 3], "x": 3, "y": 0 },
+ { "label": "$", "matrix": [0, 4], "x": 4, "y": 0 },
+ { "label": "%", "matrix": [0, 5], "x": 5, "y": 0 },
+ { "label": "^", "matrix": [0, 6], "x": 6, "y": 0 },
+ { "label": "&", "matrix": [0, 7], "x": 7, "y": 0 },
+ { "label": "*", "matrix": [0, 8], "x": 8, "y": 0 },
+ { "label": "(", "matrix": [0, 9], "x": 9, "y": 0 },
+ { "label": ")", "matrix": [0, 10], "x": 10, "y": 0 },
+ { "label": "_", "matrix": [0, 11], "x": 11, "y": 0 },
+ { "label": "+", "matrix": [0, 12], "x": 12, "y": 0 },
+ { "label": "Del", "matrix": [2, 12], "x": 13, "y": 0 },
+ { "label": "Backspace", "matrix": [0, 13], "x": 14, "y": 0 },
+
+ { "label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5 },
+ { "label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1 },
+ { "label": "W", "matrix": [1, 2], "x": 2.5, "y": 1 },
+ { "label": "E", "matrix": [1, 3], "x": 3.5, "y": 1 },
+ { "label": "R", "matrix": [1, 4], "x": 4.5, "y": 1 },
+ { "label": "T", "matrix": [1, 5], "x": 5.5, "y": 1 },
+ { "label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1 },
+ { "label": "U", "matrix": [1, 7], "x": 7.5, "y": 1 },
+ { "label": "I", "matrix": [1, 8], "x": 8.5, "y": 1 },
+ { "label": "O", "matrix": [1, 9], "x": 9.5, "y": 1 },
+ { "label": "P", "matrix": [1, 10], "x": 10.5, "y": 1 },
+ { "label": "{", "matrix": [1, 11], "x": 11.5, "y": 1 },
+ { "label": "}", "matrix": [1, 12], "x": 12.5, "y": 1 },
+ { "label": "|", "matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5 },
+
+ { "label": "Caps Lock", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75 },
+ { "label": "A", "matrix": [2, 1], "x": 1.75, "y": 2 },
+ { "label": "S", "matrix": [2, 2], "x": 2.75, "y": 2 },
+ { "label": "D", "matrix": [2, 3], "x": 3.75, "y": 2 },
+ { "label": "F", "matrix": [2, 4], "x": 4.75, "y": 2 },
+ { "label": "G", "matrix": [2, 5], "x": 5.75, "y": 2 },
+ { "label": "H", "matrix": [2, 6], "x": 6.75, "y": 2 },
+ { "label": "J", "matrix": [2, 7], "x": 7.75, "y": 2 },
+ { "label": "K", "matrix": [2, 8], "x": 8.75, "y": 2 },
+ { "label": "L", "matrix": [2, 9], "x": 9.75, "y": 2 },
+ { "label": ":", "matrix": [2, 10], "x": 10.75, "y": 2 },
+ { "label": "\"", "matrix": [2, 11], "x": 11.75, "y": 2 },
+ { "label": "Enter", "matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25 },
+
+ { "label": "Shift", "matrix": [3, 0], "x": 0, "y": 3, "w": 1.25 },
+ { "label": "|", "matrix": [3, 1], "x": 1.25, "y": 3 },
+ { "label": "Z", "matrix": [3, 2], "x": 2.25, "y": 3 },
+ { "label": "X", "matrix": [3, 3], "x": 3.25, "y": 3 },
+ { "label": "C", "matrix": [3, 4], "x": 4.25, "y": 3 },
+ { "label": "V", "matrix": [3, 5], "x": 5.25, "y": 3 },
+ { "label": "B", "matrix": [3, 6], "x": 6.25, "y": 3 },
+ { "label": "N", "matrix": [3, 7], "x": 7.25, "y": 3 },
+ { "label": "M", "matrix": [3, 8], "x": 8.25, "y": 3 },
+ { "label": "<", "matrix": [3, 9], "x": 9.25, "y": 3 },
+ { "label": ">", "matrix": [3, 10], "x": 10.25, "y": 3 },
+ { "label": "?", "matrix": [3, 11], "x": 11.25, "y": 3 },
+ { "label": "Shift", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75 },
+ { "label": "Fn", "matrix": [3, 13], "x": 14, "y": 3 },
+
+ { "label": "Ctrl", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.25 },
+ { "label": "Win", "matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25 },
+ { "label": "Alt", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25 },
+ { "label": "K47", "matrix": [4, 7], "x": 3.75, "y": 4, "w": 6.25 },
+ { "label": "Alt", "matrix": [4, 10], "x": 10, "y": 4, "w": 1.25 },
+ { "label": "Win", "matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25 },
+ { "label": "Menu", "matrix": [4, 12], "x": 12.5, "y": 4, "w": 1.25 },
+ { "label": "Ctrl", "matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25 }
+ ]
+ }
+ }
+}
+
diff --git a/keyboards/dztech/og60/keymaps/default/keymap.c b/keyboards/dztech/tofu60/keymaps/default/keymap.c
index 0bf690aab0..0bf690aab0 100644
--- a/keyboards/dztech/og60/keymaps/default/keymap.c
+++ b/keyboards/dztech/tofu60/keymaps/default/keymap.c
diff --git a/keyboards/dztech/og60/keymaps/via/keymap.c b/keyboards/dztech/tofu60/keymaps/via/keymap.c
index 0bf690aab0..0bf690aab0 100644
--- a/keyboards/dztech/og60/keymaps/via/keymap.c
+++ b/keyboards/dztech/tofu60/keymaps/via/keymap.c
diff --git a/keyboards/dztech/dz60rgb/keymaps/moults31/rules.mk b/keyboards/dztech/tofu60/keymaps/via/rules.mk
index 1e5b99807c..1e5b99807c 100644
--- a/keyboards/dztech/dz60rgb/keymaps/moults31/rules.mk
+++ b/keyboards/dztech/tofu60/keymaps/via/rules.mk
diff --git a/keyboards/dztech/tofu60/matrix_diagram.md b/keyboards/dztech/tofu60/matrix_diagram.md
new file mode 100644
index 0000000000..0bbd201945
--- /dev/null
+++ b/keyboards/dztech/tofu60/matrix_diagram.md
@@ -0,0 +1,24 @@
+# Matrix Diagram for Dztech Tofu60
+
+```
+ ┌───────┐
+ 2u Backspace │0D │
+ └───────┘
+┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
+│00 │01 │02 │03 │04 │05 │06 │07 │08 │09 │0A │0B │0C │0D │2C │
+├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤ ┌─────┐
+│10 │11 │12 │13 │14 │15 │16 │17 │18 │19 │1A │1B │1C │1D │ │ │
+├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ ┌──┴┐2D │ ISO Enter
+│20 │21 │22 │23 │24 │25 │26 │27 │28 │29 │2A │2B │2D │ │1D │ │
+├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤ └───┴────┘
+│30 │31 │32 │33 │34 │35 │36 │37 │38 │39 │3A │3B │3C │3D │
+├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬┴───┤
+│40 │41 │42 │47 │4A │4B │4C │4D │
+└────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
+┌────────┐ ┌──────────┐
+│31 │ 2.25u LShift 2.75u RShift │3C │
+└────────┘ └──────────┘
+┌─────┬───┬─────┬───────────────────────────┬─────┬───┬─────┐
+│40 │41 │42 │47 │4B │4C │4D │ Tsangan/WKL/HHKB
+└─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘
+```
diff --git a/keyboards/dztech/tofu60/readme.md b/keyboards/dztech/tofu60/readme.md
new file mode 100644
index 0000000000..2cd4de58bf
--- /dev/null
+++ b/keyboards/dztech/tofu60/readme.md
@@ -0,0 +1,22 @@
+# TOFU60
+A customizable 60% HotSwap keyboard.
+
+* Keyboard Maintainer: [moyi4681](https://github.com/moyi4681)
+* Hardware Supported: TOFU60
+* Hardware Availability: [KBDfans](https://kbdfans.com/)
+
+## Bootloader mode
+
+Enter the bootloader in 3 ways:
+
+* Bootmagic reset: Hold down the left top key then plug in the USB cable.
+* Physical reset button: Double tap the reset button.
+* Keycode in layout: Press the key mapped to QK_BOOT if it is available.
+
+## Making firmware
+
+Make example for this keyboard (after setting up your build environment):
+
+ make dztech/tofu60: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).
diff --git a/keyboards/dztech/og60/rules.mk b/keyboards/dztech/tofu60/rules.mk
index e69de29bb2..e69de29bb2 100644
--- a/keyboards/dztech/og60/rules.mk
+++ b/keyboards/dztech/tofu60/rules.mk
diff --git a/keyboards/eason/aeroboard/config.h b/keyboards/eason/aeroboard/config.h
index ff00df878f..2c7d4687b4 100644
--- a/keyboards/eason/aeroboard/config.h
+++ b/keyboards/eason/aeroboard/config.h
@@ -3,7 +3,7 @@
#pragma once
-#define WS2812_SPI SPID2
+#define WS2812_SPI_DRIVER SPID2
#define WS2812_SPI_MOSI_PAL_MODE 5
/* disable debug print */
diff --git a/keyboards/eco/keymaps/bcat/config.h b/keyboards/eco/keymaps/bcat/config.h
deleted file mode 100644
index 1a3fd81199..0000000000
--- a/keyboards/eco/keymaps/bcat/config.h
+++ /dev/null
@@ -1,33 +0,0 @@
-/* Copyright 2020 Jonathan Rascher
- *
- * 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 BCAT_ORTHO_LAYERS
-
-/* WS2812B RGB LED strip hand wired to Elite-C. */
-#define WS2812_DI_PIN B7
-#define RGBLED_NUM 15
-#define RGBLIGHT_EFFECT_BREATHING
-#define RGBLIGHT_EFFECT_RAINBOW_MOOD
-#define RGBLIGHT_EFFECT_RAINBOW_SWIRL
-#define RGBLIGHT_EFFECT_SNAKE
-#define RGBLIGHT_EFFECT_KNIGHT
-#define RGBLIGHT_EFFECT_CHRISTMAS
-#define RGBLIGHT_EFFECT_STATIC_GRADIENT
-#define RGBLIGHT_EFFECT_RGB_TEST
-#define RGBLIGHT_EFFECT_ALTERNATING
-#define RGBLIGHT_EFFECT_TWINKLE
diff --git a/keyboards/eco/keymaps/bcat/keymap.c b/keyboards/eco/keymaps/bcat/keymap.c
deleted file mode 100644
index 610610f5a5..0000000000
--- a/keyboards/eco/keymaps/bcat/keymap.c
+++ /dev/null
@@ -1,52 +0,0 @@
-/* Copyright 2020 Jonathan Rascher
- *
- * 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 "bcat.h"
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- // clang-format off
- /* Default layer: http://www.keyboard-layout-editor.com/#/gists/2c11371c7a5f7cd08a0132631d3d3281 */
- [LAYER_DEFAULT] = LAYOUT(
- KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_LBRC, KC_RBRC, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,
- KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_HOME, KC_PGUP, 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_END, KC_PGDN, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,
- XXXXXXX, XXXXXXX, KC_LALT, KC_LCTL, LY_LWR, KC_SPC, XXXXXXX, XXXXXXX, KC_ENT, LY_RSE, KC_RALT, KC_RGUI, XXXXXXX, XXXXXXX
- ),
- /* Lower layer: http://www.keyboard-layout-editor.com/#/gists/11256970dc0552886a82382ee02fa415 */
- [LAYER_LOWER] = LAYOUT(
- MC_ALTT, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, _______, _______, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, _______,
- KY_CSPC, KY_ZMRST, KY_ZMOUT, KY_ZMIN, KC_WBAK, KC_WFWD, _______, _______, KC_PIPE, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_TILD,
- _______, KC_APP, KC_PSCR, KC_SCRL, KC_PAUS, KC_LGUI, _______, _______, KC_BSLS, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_GRV,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
- ),
- /* Raise layer: http://www.keyboard-layout-editor.com/#/gists/308a8be75e0b85902dc18db1b2546862 */
- [LAYER_RAISE] = LAYOUT(
- KC_CAPS, KC_1, KC_2, KC_3, KC_4, KC_5, _______, _______, KC_6, KC_7, KC_8, KC_9, KC_0, _______,
- _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, _______, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_F11, KC_DEL,
- _______, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, _______, _______, KC_HOME, KC_PGDN, KC_PGUP, KC_END, KC_F12, KC_INS,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
- ),
- /* Adjust layer: http://www.keyboard-layout-editor.com/#/gists/b18aafa0327d7e83eaf485546c067a21 */
- [LAYER_ADJUST] = LAYOUT(
- _______, _______, KC_MPLY, KC_VOLU, KC_MSTP, _______, _______, _______, EE_CLR, QK_BOOT, _______, _______, _______, _______,
- _______, _______, KC_MPRV, KC_VOLD, KC_MNXT, _______, _______, _______, RGB_RMOD, RGB_VAD, RGB_VAI, RGB_MOD, RGB_SPI, _______,
- _______, _______, _______, KC_MUTE, _______, _______, _______, _______, RGB_HUI, RGB_SAD, RGB_SAI, RGB_HUD, RGB_SPD, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, RGB_TOG, _______, _______, _______, _______, _______
- ),
- // clang-format on
-};
diff --git a/keyboards/eco/keymaps/bcat/readme.md b/keyboards/eco/keymaps/bcat/readme.md
deleted file mode 100644
index fd9e1bea73..0000000000
--- a/keyboards/eco/keymaps/bcat/readme.md
+++ /dev/null
@@ -1,44 +0,0 @@
-# bcat's Eco layout
-
-This is a cute little 4x14 ortholinear keyboard. I've set it up using an
-unsplit, ortho version of my [split 3x6 + 3 thumb
-keys](https://github.com/qmk/qmk_firmware/tree/master/layouts/community/split_3x6_3/bcat)
-(Crkbd) layout, with the following changes:
-
-* The alpha keys are separated by an extra two columns in the middle to provide
-a little more hand separation, similar to a split keyboard.
-
-* The top three rows of the extra middle columns feature navigation keys and
-brackets/braces. I don't really use dedicated keys for these, but I had the
-keycaps, so I figured I may as well put them there.
-
-* I have a Left Alt and Right Super key on the bottom row just like my
-[Lily58](https://github.com/qmk/qmk_firmware/tree/master/keyboards/lily58/keymaps/bcat).
-
-* The two keys in each bottom corner are unbound, as is the 2U spacebar in the
-center of the bottom row. These keys are too inconvenient to reach, and there's
-nothing really useful to bind them to anyway.
-
-## Default layer
-
-![Default layer layout](https://i.imgur.com/uRUT2cY.png)
-
-([KLE](http://www.keyboard-layout-editor.com/#/gists/2c11371c7a5f7cd08a0132631d3d3281))
-
-## Lower layer
-
-![Lower layer layout](https://i.imgur.com/8SR0M9x.png)
-
-([KLE](http://www.keyboard-layout-editor.com/#/gists/11256970dc0552886a82382ee02fa415))
-
-## Raise layer
-
-![Raise layer layout](https://i.imgur.com/U7KERR3.png)
-
-([KLE](http://www.keyboard-layout-editor.com/#/gists/308a8be75e0b85902dc18db1b2546862))
-
-## Adjust layer
-
-![Adjust layer layout](https://i.imgur.com/63vm0ke.png)
-
-([KLE](http://www.keyboard-layout-editor.com/#/gists/b18aafa0327d7e83eaf485546c067a21))
diff --git a/keyboards/eco/keymaps/bcat/rules.mk b/keyboards/eco/keymaps/bcat/rules.mk
deleted file mode 100644
index 684d8e4e85..0000000000
--- a/keyboards/eco/keymaps/bcat/rules.mk
+++ /dev/null
@@ -1,3 +0,0 @@
-BOOTLOADER = atmel-dfu # Elite-C
-
-RGBLIGHT_ENABLE = yes
diff --git a/keyboards/eco/keymaps/that_canadian/keymap.c b/keyboards/eco/keymaps/that_canadian/keymap.c
index 0c8b53385d..edd88b184e 100644
--- a/keyboards/eco/keymaps/that_canadian/keymap.c
+++ b/keyboards/eco/keymaps/that_canadian/keymap.c
@@ -124,14 +124,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
};
#ifdef AUDIO_ENABLE
-
-float tone_startup[][2] = SONG(STARTUP_SOUND);
float tone_qwerty[][2] = SONG(QWERTY_SOUND);
float tone_dvorak[][2] = SONG(DVORAK_SOUND);
float tone_colemak[][2] = SONG(COLEMAK_SOUND);
-float music_scale[][2] = SONG(MUSIC_SCALE_SOUND);
-
-float tone_goodbye[][2] = SONG(GOODBYE_SOUND);
#endif
@@ -174,36 +169,3 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
}
return true;
}
-
-void matrix_init_user(void) {
- #ifdef AUDIO_ENABLE
- startup_user();
- #endif
-}
-
-#ifdef AUDIO_ENABLE
-
-void startup_user(void)
-{
- _delay_ms(20); // gets rid of tick
- PLAY_SONG(tone_startup);
-}
-
-void shutdown_user(void)
-{
- PLAY_SONG(tone_goodbye);
- _delay_ms(150);
- stop_all_notes();
-}
-
-void music_on_user(void)
-{
- music_scale_user();
-}
-
-void music_scale_user(void)
-{
- PLAY_SONG(music_scale);
-}
-
-#endif
diff --git a/keyboards/ein_60/keymaps/klackygears/config.h b/keyboards/ein_60/keymaps/klackygears/config.h
deleted file mode 100644
index 91c51cb51c..0000000000
--- a/keyboards/ein_60/keymaps/klackygears/config.h
+++ /dev/null
@@ -1,27 +0,0 @@
-/* Copyright 2021 klackygears
- *
- * 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 PERMISSIVE_HOLD
-#define TAPPING_TERM 150
-
-
-#ifdef RGB_MATRIX_ENABLE
- #define RGB_MATRIX_KEYPRESSES
-#endif
diff --git a/keyboards/ein_60/keymaps/klackygears/keymap.c b/keyboards/ein_60/keymaps/klackygears/keymap.c
deleted file mode 100644
index ab5a31ee9f..0000000000
--- a/keyboards/ein_60/keymaps/klackygears/keymap.c
+++ /dev/null
@@ -1,175 +0,0 @@
-/* Copyright 2020 klackygears
- *
- * 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 "klackygears.h"
-#include "stdio.h"
-
-//For an explanation of what's going on here with the keymap wrappers, check out drashna's user folder.
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
- [_WINBASE] = LAYOUT_wrapper(
- KC_ESC, _______________DVORAK_L1___________________, KC_MUTE, _______________DVORAK_R1___________________, KC_BSPC,
- AU_TOGG, _______________DVORAK_L2___________________, _______________DVORAK_R2___________________, RGB_TOG,
- CK_TOGG, _______________WINDVK_L3___________________, _______________WINDVK_R3___________________, RGB_MOD,
- KC_1, KC_2, KC_3, ________WIN_THUMB_L______, KC_SPC, ________WIN_THUMB_R______, KC_1, KC_2, KC_GAMER
- ),
- [_MACBASE] = LAYOUT_wrapper(
- KC_ESC, _______________DVORAK_L1___________________, _______, _______________DVORAK_R1___________________, KC_BSPC,
- RGB_TOG, _______________DVORAK_L2___________________, _______________DVORAK_R2___________________, RGB_TOG,
- RGB_MOD, _______________MACDVK_L3___________________, _______________MACDVK_R3___________________, RGB_MOD,
- _______, _______, _______, ________MAC_THUMB_L______, _______, ________MAC_THUMB_R______, _______, _______, _______
- ),
- [_QWERTY] = LAYOUT_wrapper(
- KC_ESC, _________________COLEMAK_L1________________, KC_ESC, _________________QWERTY_R1_________________, KC_BSPC,
- KC_CAPS, _________________COLEMAK_L2________________, _________________QWERTY_R2_________________, KC_ENT,
- KC_LSFT, _________________COLEMAK_L3________________, _________________QWERTY_R3_________________, KC_RSFT,
- KC_LCTL, KC_LGUI, KC_LALT, _______, MO(_MNMB), MO(_SYMB), KC_SPC, MO(_SYMB), MO(_MNMB), KC_RGUI,_______, MO(_MDIA), MO(_FUNC)
- ),
-
- //Borderlands
- [_GAMER] = LAYOUT_wrapper(
- KC_ESC, KC_R, KC_G, KC_W, KC_E, KC_1, _______, _________________RGB_1_____________________, KC_WINBASE,
- KC_TAB, KC_V, KC_A, KC_S, KC_D, KC_2, _________________RGB_2_____________________, _______,
- KC_C, KC_I, KC_F, KC_Q, KC_4, KC_3, _________________MEDIA_____________________, _______,
- KC_Z, KC_X, KC_K, KC_LCTL, KC_LSFT, KC_SPC, KC_SPC, KC_F12, KC_P, KC_LEFT, KC_UP, KC_DOWN, KC_RIGHT
- ),
-
- [_SYMB] = LAYOUT_wrapper(
- _______, _________________PUNC_L1_ALT_______________, _______, _________________PUNC_R1___________________, _______,
- _______, _________________PUNC_L3___________________, _________________PUNC_R2___________________, _______,
- RGB_MOD, _________________PUNC_L3_ALT_______________, _________________PUNC_R3___________________, _______,
- _______, _______, KC_NUM, KC_SCRL, KC_DEL, _______, _______, _______, KC_CAPS, _______, _______, _______, _______
- ),
-
- [_FUNC] = LAYOUT_wrapper(
- _______, _____________FUNC_L1_______________________, _______, _______, _____________FUNC_1_______________, _______,
- _______, ________MAC_MISSION_CTRL__________, LGUI(KC_L), _______, _____________FUNC_2_______________, _______,
- RGB_MOD, _____________FUNC_L3_______________________, _______, _____________FUNC_3_______________, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, KC_CAPS, _______, _______, _______, _______
- ),
-
- [_MNMB] = LAYOUT_wrapper(
- _______, _________________MACNAV_L1_________________, _______, _________________NUMB_R1___________________, _______,
- _______, _________________MACNAV_L2_________________, _________________NUMB_R2___________________, _______,
- RGB_MOD, _________________MACNAV_L3_________________, _________________NUMB_R3_MAC_______________, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, RSFT_T(KC_ENT), KC_RSFT, _______, _______, _______
- ),
-
-
- [_NUMB] = LAYOUT_wrapper(
- _______, _________________WINNAV_L1_________________, _______, _________________NUMB_R1___________________, _______,
- _______, _________________WINNAV_L2_________________, _________________NUMB_R2___________________, _______,
- RGB_MOD, _________________WINNAV_L3_________________, _________________NUMB_R3_WIN_______________, _______,
- _______, _______, _______, TO(_WINBASE), _______, _______, _______, _______, RSFT_T(KC_ENT), KC_RSFT, _______, _______, _______
- ),
-
- [_MDIA] = LAYOUT_wrapper(
- _______, _________________LYOUT_____________________, _______, _________________RGB_1_____________________, RGB_TOG,
- _______, MU_TOGG, _______, _______, _______, CK_UP, _________________RGB_2_____________________, _______,
- RGB_MOD, MU_NEXT, MU_TOGG, CK_TOGG, CK_RST, CK_DOWN, _________________MEDIA_____________________, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
- )
-
-};
-
-
-#ifdef OLED_ENABLE
-
- char wpm_str[10];
-
-static void render_ein60_logo(void) {
- static const char PROGMEM ein60_logo[] = {
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255, 11,251,139,139,139,139,139,139,139,139,139,139,139, 11, 15, 0,240,240, 16,240, 0,240,240, 16,240,224,192,128, 0, 0, 0, 0,240, 16,240, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,254,255, 11,251,139,139,139,139,139,139,139,139,139,139,139,143,128, 0, 0, 0, 0,254,255, 11,251, 11, 11, 11, 11,139,203,235,123,187,219,235,251,255, 7,252, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255, 4,253,197,197,197,197,197,197,197,197,197,197,199,192,192, 0,255,255, 0,255, 0,255,255, 0,254, 13, 27, 55,111,222,188,120,255, 0,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255, 0,255,197,197,197,197,197,197,197,197,197,197,253,253,255,131,254, 0, 0,255,255, 0,255,184,220,238,247,219,205,198,195,193,192,255,255,255,128,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 0, 3, 3, 2, 3, 0, 3, 3, 2, 3, 0, 0, 0, 0, 0, 1, 3, 2, 2, 3, 0, 8, 28, 20, 20, 20, 20, 20, 28, 8, 0, 1, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 0, 0, 0, 1, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- };
- oled_write_raw_P(ein60_logo, sizeof(ein60_logo));
- }
-
-
-
-static void render_status(void) {
-//bool oled_task_user(void) {
-
- // Host Keyboard Layer Status
- oled_write_P(PSTR("Layer: "), false);
- switch (get_highest_layer(layer_state)) {
- case _WINBASE:
- oled_write_P(PSTR("Base\n"), false);
- break;
- case _SYMB:
- oled_write_P(PSTR("Symbol\n"), false);
- break;
- case _FUNC:
- oled_write_P(PSTR("FN\n"), false);
- break;
- case _MNMB:
- oled_write_P(PSTR("Numbpad Mac\n"), false);
- break;
- case _NUMB:
- oled_write_P(PSTR("Numbpad\n"), false);
- break;
- case _MDIA:
- oled_write_P(PSTR("Media\n"), false);
- break;
- default:
- // Or use the write_ln shortcut over adding '\n' to the end of your string
- oled_write_ln_P(PSTR("Undefined"), false);
- }
-
- // Host Keyboard LED Status
- led_t led_state = host_keyboard_led_state();
- oled_write_P(led_state.num_lock ? PSTR("NUM ") : PSTR(" "), false);
- oled_write_P(led_state.caps_lock ? PSTR("CAP ") : PSTR(" "), false);
- oled_write_P(led_state.scroll_lock ? PSTR("SCR ") : PSTR(" "), false);
-
-
- sprintf(wpm_str, "WPM: %03d", get_current_wpm());
- oled_set_cursor(1,2);
- oled_write(wpm_str, false);
-
-}
-
-bool oled_task_user(void) {
-
- render_status();
- oled_write_ln_P(PSTR(""), false);
- render_ein60_logo();
-
- return false;
-}
-
-#endif
-
-
-bool encoder_update_user(uint8_t index, bool clockwise) {
- if (index == 0) { /* First encoder */
- if (clockwise) {
- tap_code(KC_VOLU);
- } else {
- tap_code(KC_VOLD);
- }
- } else if (index == 1) { /* Second encoder */
- if (clockwise) {
- tap_code(KC_DOWN);
- } else {
- tap_code(KC_UP);
- }
- }
- return true;
-}
diff --git a/keyboards/ein_60/keymaps/klackygears/readme.md b/keyboards/ein_60/keymaps/klackygears/readme.md
deleted file mode 100644
index f97a08bd09..0000000000
--- a/keyboards/ein_60/keymaps/klackygears/readme.md
+++ /dev/null
@@ -1 +0,0 @@
-This is the klackygears userspace keymap for EIN_60. My userspace is heavily based on Drashna's userspace and draws a lot of features from him.
diff --git a/keyboards/ein_60/keymaps/klackygears/rules.mk b/keyboards/ein_60/keymaps/klackygears/rules.mk
deleted file mode 100644
index 885ab5bafe..0000000000
--- a/keyboards/ein_60/keymaps/klackygears/rules.mk
+++ /dev/null
@@ -1,8 +0,0 @@
-
-# Build Options
-# change yes to no to disable
-ENCODER_ENABLE = yes # Enables the use of one or more encoders
-WPM_ENABLE = yes # Enables the WPM counter on the OLED
-RGB_MATRIX_ENABLE = yes # Enable for pretty RGB matrix effects
-AUDIO_ENABLE = yes
-TAP_DANCE_ENABLE = yes
diff --git a/keyboards/era/divine/config.h b/keyboards/era/divine/config.h
new file mode 100644
index 0000000000..e1083fe5e2
--- /dev/null
+++ b/keyboards/era/divine/config.h
@@ -0,0 +1,20 @@
+/* Copyright 2023 eerraa
+ *
+ * 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 BACKLIGHT_PWM_DRIVER PWMD0
+#define BACKLIGHT_PWM_CHANNEL RP2040_PWM_CHANNEL_A \ No newline at end of file
diff --git a/keyboards/era/divine/halconf.h b/keyboards/era/divine/halconf.h
new file mode 100644
index 0000000000..5a527da781
--- /dev/null
+++ b/keyboards/era/divine/halconf.h
@@ -0,0 +1,21 @@
+/* Copyright 2023 eerraa
+ *
+ * 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 HAL_USE_PWM TRUE
+
+#include_next <halconf.h> \ No newline at end of file
diff --git a/keyboards/era/divine/info.json b/keyboards/era/divine/info.json
index de87fd83e2..d02241da78 100644
--- a/keyboards/era/divine/info.json
+++ b/keyboards/era/divine/info.json
@@ -2,12 +2,17 @@
"manufacturer": "ERA",
"keyboard_name": "DIVINE 1.0.0",
"maintainer": "eerraa",
+ "backlight": {
+ "pin": "GP0",
+ "levels": 5
+ },
"bootloader": "rp2040",
"build": {
"debounce_type": "sym_defer_pk"
},
"diode_direction": "COL2ROW",
"features": {
+ "backlight": true,
"bootmagic": true,
"command": false,
"console": false,
@@ -18,8 +23,8 @@
"indicators": {
"caps_lock": "GP1",
"num_lock": "GP2",
- "scroll_lock": "GP3",
- "on_state": 0
+ "on_state": 0,
+ "scroll_lock": "GP3"
},
"matrix_pins": {
"cols": ["GP13", "GP12", "GP19", "GP20", "GP21", "GP22", "GP23", "GP24", "GP25", "GP26", "GP27", "GP28", "GP29", "GP18", "GP5", "GP6", "GP7"],
diff --git a/keyboards/era/divine/mcuconf.h b/keyboards/era/divine/mcuconf.h
new file mode 100644
index 0000000000..7698b5d139
--- /dev/null
+++ b/keyboards/era/divine/mcuconf.h
@@ -0,0 +1,22 @@
+/* Copyright 2023 eerraa
+ *
+ * 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_next <mcuconf.h>
+
+#undef RP_PWM_USE_PWM0
+#define RP_PWM_USE_PWM0 TRUE \ No newline at end of file
diff --git a/keyboards/era/divine/readme.md b/keyboards/era/divine/readme.md
index decc7e3d31..3049e3b840 100644
--- a/keyboards/era/divine/readme.md
+++ b/keyboards/era/divine/readme.md
@@ -3,7 +3,7 @@
DIVINE Keyboard
* Keyboard Maintainer: [ERA](https://github.com/eerraa)
-* Hardware Supported: RP2040
+* Hardware Supported: DIVINE 1.0.0 PCB
* Hardware Availability: [ERA](https://github.com/eerraa)
Make example for this keyboard (after setting up your build environment):
@@ -21,5 +21,5 @@ See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_to
Enter the bootloader in 3 ways:
* **Bootmagic reset**: Hold down the key at ESC(0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard
-* **Physical reset button**: Short the reset hole of the PCB twice within 1 second.
+* **Physical reset button**: Briefly short the `RESET` and `GND` pads on the SWD header twice, or short the `BOOT` header and plug in keyboard
* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available \ No newline at end of file
diff --git a/keyboards/ergodox_ez/config.h b/keyboards/ergodox_ez/config.h
index de850a0548..af1e14c49f 100644
--- a/keyboards/ergodox_ez/config.h
+++ b/keyboards/ergodox_ez/config.h
@@ -91,9 +91,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
// RGB backlight
-#define DRIVER_ADDR_1 0b1110100
-#define DRIVER_ADDR_2 0b1110111
-#define DRIVER_COUNT 2
+#define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND
+#define IS31FL3731_I2C_ADDRESS_2 IS31FL3731_I2C_ADDRESS_VCC
#define DRIVER_1_LED_TOTAL 24
#define DRIVER_2_LED_TOTAL 24
#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL)
diff --git a/keyboards/ergodox_ez/ergodox_ez.c b/keyboards/ergodox_ez/ergodox_ez.c
index 3683128234..455d294ef5 100644
--- a/keyboards/ergodox_ez/ergodox_ez.c
+++ b/keyboards/ergodox_ez/ergodox_ez.c
@@ -243,7 +243,7 @@ const keypos_t PROGMEM hand_swap_config[MATRIX_ROWS][MATRIX_COLS] = {
#ifdef RGB_MATRIX_ENABLE
// clang-format off
-const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = {
+const is31fl3731_led_t PROGMEM g_is31fl3731_leds[RGB_MATRIX_LED_COUNT] = {
/* driver
* | R location
* | | G location
diff --git a/keyboards/ergodox_ez/keymaps/danielo515/config.h b/keyboards/ergodox_ez/keymaps/danielo515/config.h
deleted file mode 100644
index 7428cccc82..0000000000
--- a/keyboards/ergodox_ez/keymaps/danielo515/config.h
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
- Set any config.h overrides for your specific keymap here.
- See config.h options at https://docs.qmk.fm/#/config_options?id=the-configh-file
-*/
-#pragma once
-
-#define TAPPING_TERM 200
-
-#define ONESHOT_TAP_TOGGLE 3
-
-#define RGBLIGHT_SLEEP
-
-#undef MOUSEKEY_TIME_TO_MAX
-#define MOUSEKEY_TIME_TO_MAX 50
-
-#undef MOUSEKEY_WHEEL_TIME_TO_MAX
-#define MOUSEKEY_WHEEL_TIME_TO_MAX 60
-
-#undef DEBOUNCE
-#define DEBOUNCE 45
-// Memory saving
-#ifdef CONSOLE_ENABLE
-# define NO_DEBUG
-# define NO_PRINT
-#endif
-
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
-#undef RGBLIGHT_EFFECT_BREATHING
-#undef RGBLIGHT_EFFECT_RAINBOW_MOOD
-#undef RGBLIGHT_EFFECT_RAINBOW_SWIRL
-#undef RGBLIGHT_EFFECT_SNAKE
-#undef RGBLIGHT_EFFECT_KNIGHT
-#undef RGBLIGHT_EFFECT_CHRISTMAS
-#undef RGBLIGHT_EFFECT_STATIC_GRADIENT
-#undef RGBLIGHT_EFFECT_RGB_TEST
-#undef RGBLIGHT_EFFECT_ALTERNATING
-#undef RGBLIGHT_EFFECT_TWINKLE
diff --git a/keyboards/ergodox_ez/keymaps/danielo515/keymap.c b/keyboards/ergodox_ez/keymaps/danielo515/keymap.c
deleted file mode 100644
index 281ac956e0..0000000000
--- a/keyboards/ergodox_ez/keymaps/danielo515/keymap.c
+++ /dev/null
@@ -1,326 +0,0 @@
-#include QMK_KEYBOARD_H
-#include "version.h"
-#include "danielo515.h"
-
-/* STUPID JS code to split by ergodox rows. Call the format function with the unformatted array
-sliceBy = groups => items => groups.reduce(({start, acc},size) => ({
- acc: (acc.push(items.slice(start,start+size)),acc ),
- start: start + size
-}), {acc:[],start:0}).acc
-findMaxLen = items => items.reduce((max,curr) => max < curr.length ? curr.length : max,0)
-setLen = len => strings => strings.map(str => str.padEnd(len, " "));
-const format = string => {
- const items = string.split(/,\s*(?![^()]*\))/)
- const group = sliceBy([7,7,6,7,5,2,1,3])
- const resize = setLen(findMaxLen(items));
- const joinstr = ',\n'
- const leftItems = group(items.slice(0,items.length/2))
- const rightItems = group(items.slice(items.length/2))
- const [left,right] = [leftItems.map(resize).join(joinstr),rightItems.map(resize).join(joinstr)]
- return `\n${left},\n\n${right}\n`
-}
-*/
-
-#define OSM_SF_CMD OSM(MOD_LGUI | MOD_LSFT)
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
- [0] = LAYOUT_ergodox(
- KC_EQL ,KC_1 ,KC_2 ,KC_3 ,KC_4 ,KC_5 ,OSM(MOD_HYPR) ,
- KC_TAB ,KC_Q ,KC_W ,KC_E ,KC_R ,KC_T ,TD(PASTE_DANCE) ,
- KC_DELETE ,KC_A ,LT(3,KC_S) ,LT(2,KC_D) ,LT(4,KC_F) ,KC_G ,
- KC_GRAVE ,KC_Z ,KC_X ,KC_C ,KC_V ,KC_B ,TD(COPY_CUT) ,
- KC_BSLS ,OSM(MOD_LCTL) ,OSM(MOD_LALT) ,KC_LEFT ,KC_RIGHT ,
- OSM_SF_CMD ,KC_PLUS ,
- KC_INSERT ,
- OSM(MOD_LSFT) ,LT(2,KC_BSPC) ,OSM(MOD_LGUI) ,
-
-
- TO(1) ,KC_6 ,KC_7 ,KC_8 ,KC_9 ,LT(3,KC_0) ,KC_DQUO ,
- KC_UNDS ,KC_Y ,KC_U ,KC_I ,KC_O ,KC_P ,RSFT_T(KC_MINUS) ,
- HYPR_H ,ALT_J ,CTL_K ,LT(6,KC_L) ,TD_CLN ,CMD_QUOT ,
- ALT_TAB ,KC_N ,MEH_T(KC_M) ,KC_COMMA ,KC_DOT ,KC_SLASH ,LT(4,KC_KP_ASTERISK),
- LT(4,KC_ENTER) ,KC_DOWN ,KC_LBRC ,KC_RBRC ,OSL(2) ,
- KC_AUDIO_MUTE ,KC_ESCAPE ,
- KC_END ,
- KC_COLN ,QK_LEAD ,LT(4,KC_SPACE)
- ),
-
- [1] = LAYOUT_ergodox(
- KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,
- KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,AC_E ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,
- LT(5, KC_DELETE),AC_A ,KC_TRANSPARENT ,KC_TRANSPARENT ,FIND ,KC_TRANSPARENT ,
- KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,
- KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,
- KC_TRANSPARENT ,KC_TRANSPARENT ,
- KC_TRANSPARENT ,
- OSM(MOD_LSFT) ,KC_TRANSPARENT ,KC_TRANSPARENT ,
- TO(8) ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,
- KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,
- KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,
- KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,
- KC_ENTER ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,
- KC_TRANSPARENT ,KC_TRANSPARENT ,
- KC_TRANSPARENT ,
- KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT),
-
- [2] = LAYOUT_ergodox(
- KC_TRANSPARENT,KC_F1 ,KC_F2 ,KC_F3 ,KC_F4 ,KC_F5 ,KC_TRANSPARENT,
- KC_TRANSPARENT,KC_EXLM ,KC_AT ,KC_LCBR ,KC_RCBR ,KC_PIPE ,KC_CALCULATOR ,
- KC_TRANSPARENT,KC_HASH ,KC_DLR ,KC_TRANSPARENT,KC_RPRN ,KC_GRAVE ,
- KC_TRANSPARENT,KC_PERC ,KC_CIRC ,KC_LBRC ,KC_RBRC ,KC_TILD ,KC_TRANSPARENT,
- KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,
- KC_TRANSPARENT,KC_TRANSPARENT,
- RGB_HUI ,
- KC_TRANSPARENT,KC_TRANSPARENT,RGB_HUD ,
- KC_DELETE ,KC_A ,KC_B ,KC_C ,KC_D ,KC_E ,KC_BSPC ,
- KC_ENTER ,KC_F ,KC_7 ,KC_8 ,KC_9 ,KC_PERC ,KC_TRANSPARENT,
- KC_HASH ,KC_4 ,KC_5 ,KC_6 ,KC_PLUS ,KC_KP_ASTERISK,
- KC_KP_ENTER ,KC_COLON ,KC_1 ,KC_2 ,KC_3 ,KC_SLASH ,KC_BSLS ,
- KC_0 ,KC_COMMA ,KC_DOT ,KC_EQUAL ,KC_TRANSPARENT,
- RGB_TOG ,RGB_SLD ,
- RGB_VAI ,
- RGB_VAD ,KC_BSPC ,KC_SPACE
- ),
-
- [3] = LAYOUT_ergodox(
- KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,
- KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_LABK ,KC_RABK ,KC_TRANSPARENT ,KC_TRANSPARENT ,
- KC_TRANSPARENT ,KC_AT ,KC_TRANSPARENT ,KC_EQL ,F_ARROW ,KC_GRAVE ,
- KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_LBRC ,KC_RBRC ,KC_TRANSPARENT ,KC_TRANSPARENT ,
- KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,IARROW ,ARROW ,
- KC_TRANSPARENT ,KC_TRANSPARENT ,
- KC_TRANSPARENT ,
- // Right hand
- KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,
- KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,
- LALT(LSFT(KC_UP)) ,KC_HASH ,KC_LCBR ,KC_RCBR ,KC_KP_ASTERISK ,KC_PERC ,KC_DLR ,
- KC_AMPR ,KC_LPRN ,KC_RPRN ,CLN_EQ ,KC_KP_PLUS ,KC_PIPE ,
- LALT(LSFT(KC_DOWN)),KC_EXLM ,KC_TILD ,KC_CIRC ,ARROW ,KC_BSLS ,KC_BSLS ,
- KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,
- QK_BOOT ,KC_TRANSPARENT ,
- KC_TRANSPARENT ,
- KC_TRANSPARENT ,KC_TRANSPARENT ,KC_SPACE
-),
-
- [4] = LAYOUT_ergodox(
- KC_TRANSPARENT ,KC_F1 ,KC_F2 ,KC_F3 ,KC_F4 ,KC_F5 ,KC_TRANSPARENT ,
- KC_TRANSPARENT ,LCTL(KC_Q) ,LCTL(KC_DOWN) ,LGUI(KC_DOWN) ,WIN_LEFT_HALF ,WIN_RIGHT_HALF ,LALT(LSFT(KC_UP)) ,
- LCTL(LSFT(KC_P)) ,LCTL(KC_A) ,SAVE ,LCTL(KC_D) ,KC_TRANSPARENT ,RGUI(KC_R) ,
- LCTL(LSFT(KC_F)) ,UNDO ,CUT ,KC_PSCR ,KC_TRANSPARENT ,LGUI(KC_RIGHT) ,LALT(LSFT(KC_DOWN)),
- KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,
- KC_TRANSPARENT ,KC_TRANSPARENT ,
- KC_TRANSPARENT ,
- KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,
-
- LALT(KC_F4) ,KC_F6 ,KC_F7 ,KC_F8 ,KC_F9 ,KC_F10 ,KC_F11 ,
- LALT(KC_UP) ,LSFT(KC_HOME) ,LSFT(KC_LEFT) ,KC_UP ,LSFT(KC_RIGHT) ,LSFT(KC_END) ,KC_F13 ,
- KC_HOME ,KC_LEFT ,KC_DOWN ,KC_RIGHT ,KC_END ,KC_F12 ,
- LALT(KC_DOWN) ,LSFT(KC_INSERT) ,LCTL(LSFT(KC_J)) ,LSFT(KC_UP) ,KC_PGUP ,KC_TRANSPARENT ,KC_TRANSPARENT ,
- KC_TRANSPARENT ,LSFT(KC_DOWN) ,KC_PGDN ,WIN_TO_LEFT ,WIN_TO_RIGHT ,
- KC_TRANSPARENT ,KC_SYSTEM_SLEEP ,
- KC_TRANSPARENT ,
- KC_TRANSPARENT ,KC_BSPC ,KC_TRANSPARENT
- ),
-
- [5] = LAYOUT_ergodox(
- KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,
- KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,
- KC_TRANSPARENT ,LCTL(KC_TAB) ,LCTL(LSFT(KC_TAB)) ,LGUI(KC_D) ,LCTL(KC_F) ,KC_TRANSPARENT ,
- LGUI(KC_L) ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,
- KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,
- KC_TRANSPARENT ,KC_TRANSPARENT ,
- KC_TRANSPARENT ,
- KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,
-
- KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,LSFT(KC_F9) ,KC_TRANSPARENT ,KC_TRANSPARENT ,
- KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,
- KC_TRANSPARENT ,LCTL(LGUI(KC_LEFT)) ,LCTL(LGUI(KC_RIGHT)),KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,
- KC_TRANSPARENT ,LCTL(KC_T) ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,
- KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,
- KC_TRANSPARENT ,KC_TRANSPARENT ,
- KC_TRANSPARENT ,
- KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT
-),
-
- [6] = LAYOUT_ergodox(
- KC_TRANSPARENT ,KC_TRANSPARENT ,KC_MS_ACCEL2 ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,
- KC_TRANSPARENT ,KC_TRANSPARENT ,KC_MS_WH_DOWN ,KC_MS_UP ,KC_MS_WH_UP ,KC_TRANSPARENT ,KC_TRANSPARENT ,
- KC_TRANSPARENT ,KC_TRANSPARENT ,KC_MS_LEFT ,KC_MS_DOWN ,KC_MS_RIGHT ,KC_TRANSPARENT ,
- KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_MS_BTN3 ,KC_TRANSPARENT ,KC_TRANSPARENT ,
- KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,
- KC_TRANSPARENT ,KC_TRANSPARENT ,
- KC_TRANSPARENT ,
- KC_MS_BTN1 ,KC_MS_BTN2 ,KC_TRANSPARENT ,
- KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,
- KC_PGUP ,LCTL(LGUI(KC_RIGHT)),KC_MS_WH_UP ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT ,
- LGUI(RCTL(KC_LEFT)) ,KC_MS_WH_DOWN ,LCTL(KC_C) ,KC_TRANSPARENT ,KC_MEDIA_STOP ,KC_MEDIA_PLAY_PAUSE ,
- KC_PGDN ,LCTL(LSFT(KC_N)) ,LCTL(LSFT(KC_J)) ,KC_MEDIA_PREV_TRACK ,KC_MEDIA_NEXT_TRACK ,KC_TRANSPARENT ,KC_TRANSPARENT ,
- KC_AUDIO_VOL_UP ,KC_AUDIO_VOL_DOWN ,KC_AUDIO_MUTE ,KC_TRANSPARENT ,KC_TRANSPARENT ,
- KC_TRANSPARENT ,KC_TRANSPARENT ,
- KC_TRANSPARENT ,
- KC_TRANSPARENT ,KC_TRANSPARENT ,KC_TRANSPARENT
- ),
-
- [7] = LAYOUT_ergodox(
- KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,
- KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,
- KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,
- KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,
- KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,
- KC_TRANSPARENT,KC_TRANSPARENT,
- KC_TRANSPARENT,
- KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,
-
- KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,
- KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_UP ,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,
- KC_TRANSPARENT,KC_LEFT ,KC_DOWN ,KC_RIGHT ,KC_TRANSPARENT,KC_TRANSPARENT,
- KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,
- KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,
- KC_TRANSPARENT,KC_TRANSPARENT,
- KC_TRANSPARENT,
- KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT
- ),
-
- [8] = LAYOUT_ergodox(
- KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,
- KC_TRANSPARENT,KC_Q ,KC_W ,KC_E ,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,
- KC_ENTER ,KC_A ,KC_S ,KC_D ,KC_F ,KC_TRANSPARENT,
- KC_TRANSPARENT,KC_Z ,KC_X ,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,
- KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,
- KC_TRANSPARENT,KC_TRANSPARENT,
- KC_TRANSPARENT,
- KC_SPACE ,KC_LSFT ,KC_TRANSPARENT,
-
- TO(0) ,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,
- KC_PGDN ,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,
- KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,
- KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,
- KC_ENTER ,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT,
- KC_TRANSPARENT,KC_TRANSPARENT,
- KC_TRANSPARENT,
- KC_TRANSPARENT,KC_TRANSPARENT,KC_TRANSPARENT
- ),
-};
-// Used for blinking leds on layers higher than 7
-uint16_t blink_timer = 0;
-uint16_t blink_elapsed = 0;
-bool blink_led_1 = false;
-bool blink_led_2 = false;
-bool blink_led_3 = false;
-
-void matrix_scan_kb(void){
- // first 7 layers do not need to blink
- if(blink_led_1 || blink_led_2 || blink_led_3){
- ergodox_board_led_off();
- ergodox_right_led_1_off();
- ergodox_right_led_2_off();
- ergodox_right_led_3_off();
- blink_elapsed = timer_elapsed(blink_timer);
- if(blink_elapsed > 2000) { blink_timer = timer_read();}
- if(blink_elapsed < 1000) {
- if(blink_led_1) ergodox_right_led_1_on();
- if(blink_led_2) ergodox_right_led_2_on();
- if(blink_led_3) ergodox_right_led_3_on();
- }
- }
- matrix_scan_user();
-};
-
-layer_state_t layer_state_set_user(layer_state_t state)
-{
-
- uint8_t layer = get_highest_layer(state);
-
- ergodox_board_led_off();
- ergodox_right_led_1_off();
- ergodox_right_led_2_off();
- ergodox_right_led_3_off();
- blink_led_1=false;
- blink_led_2=false;
- blink_led_3=false;
-
- switch (layer)
- {
- case 0:
- rgblight_setrgb(0, 200, 200);
- break;
- case 1:
- ergodox_right_led_1_on();
- rgblight_setrgb(0, 200, 0); // green
- break;
- case 2:
- ergodox_right_led_2_on();
- rgblight_setrgb(0, 0, 255);
- break;
- case 3:
- ergodox_right_led_3_on();
- rgblight_setrgb(255, 0, 0);
- break;
- case 4:
- ergodox_right_led_1_on();
- ergodox_right_led_2_on();
- rgblight_setrgb(200, 65, 0);
- break;
- case 5:
- ergodox_right_led_1_on();
- ergodox_right_led_3_on();
- rgblight_setrgb(0, 80, 33);
- break;
- case 6:
- ergodox_right_led_2_on();
- ergodox_right_led_3_on();
- rgblight_setrgb(0, 10, 200);
- break;
- case 7:
- ergodox_right_led_1_on();
- ergodox_right_led_2_on();
- ergodox_right_led_3_on();
- rgblight_setrgb(90, 150, 90);
- break;
- case 8:
- blink_led_1=true;
- rgblight_setrgb(100, 0, 100);
- break;
- case 9:
- rgblight_setrgb(200, 150, 90);
- break;
-// default:
-// rgblight_setrgb(0, 200, 200);
-// break;
- }
- return state;
-};
-
-// use leds to indicate when a one shot mod is on
-void oneshot_mods_changed_user(uint8_t mods) {
- ergodox_board_led_off();
- ergodox_right_led_1_off();
- ergodox_right_led_2_off();
- ergodox_right_led_3_off();
- // One shot checks
- if (mods & MOD_MASK_SHIFT) {
- ergodox_right_led_1_on();
- }
- if (mods & MOD_MASK_CTRL) {
- ergodox_right_led_2_on();
- }
- if (mods & MOD_MASK_ALT) {
- ergodox_right_led_3_on();
- }
- // if (mods & MOD_MASK_GUI) {
- // println("Oneshot mods GUI");
- // }
- }
-
-void oneshot_locked_mods_changed_user(uint8_t mods) {
- oneshot_mods_changed_user(mods);
-}
-
-//=============== alt_tab callbacks
-void alt_tab_activated(void){
- layer_on(7); // activate motion layer
-}
-void alt_tab_deactivated(void){
- layer_off(7); // activate motion layer
-}
diff --git a/keyboards/ergodox_ez/keymaps/danielo515/rules.mk b/keyboards/ergodox_ez/keymaps/danielo515/rules.mk
deleted file mode 100644
index 99ab4f0e18..0000000000
--- a/keyboards/ergodox_ez/keymaps/danielo515/rules.mk
+++ /dev/null
@@ -1,9 +0,0 @@
-# Set any rules.mk overrides for your specific keymap here.
-# See rules at https://docs.qmk.fm/#/config_options?id=the-rulesmk-file
-LTO_ENABLE = yes
-AUTO_SHIFT_ENABLE = no
-TAP_DANCE_ENABLE = yes # Enable the tap dance feature.
-LEADER_ENABLE = yes
-CONSOLE_ENABLE = no
-RGBLIGHT_ENABLE = yes
-COMBO_ENABLE = yes
diff --git a/keyboards/ergodox_ez/keymaps/dvorak_42_key/README.md b/keyboards/ergodox_ez/keymaps/dvorak_42_key/README.md
deleted file mode 100644
index 5730a61051..0000000000
--- a/keyboards/ergodox_ez/keymaps/dvorak_42_key/README.md
+++ /dev/null
@@ -1,19 +0,0 @@
-Overview
-========
-
-This is a dvorak based layout for the Ergodox EZ. Its basic key layout is similar to the Atreus "dvorak_42_key" layout. In fact this layout was created for seamless switching between the Ergodox EZ and Atreus. On the base layer, the keys that don't exist on the Atreus are mapped to MEH shortcuts and can be interpreted by Autohotkey. This layout only makes use of the 42 keys that the Atreus also has for the main functionality.
-
-How to build
-------------
-make ergodox_ez:dvorak_42_key:teensy
-
-Layers
-------
-* BASE: basic dvorak layout
-* KEYNAV: arrow-key navigation. Momentary toggle held by thumb allows the right hand to navigate through text as well as copy/paste/cut, page up/page down
-* KEYSEL: similar to KEYNAV, except for shift-selection
-* COMBINED: this is a layer that combines numbers, brackets and special characters. !@#$%^&*( can be typed by shift+COMBINED+1/2/3/etc..
-* BROWSER_CONTROL: primarily browser left/right tab, open new tab/delete tab, but also mouse keys.
-* SHELL_NAV: Linux Bash shortcuts (move forward/backward in command line, Ctrl+C, recall last argument, etc
-* SHELL_SCREEN: Linux screen (run multiple terminals in one window) shortcuts such as open new tabs, switch between tabs
-* SCREEN_NAV: special layer for copy/pasting within Linux screen, allows using various copy/paste buffers \ No newline at end of file
diff --git a/keyboards/ergodox_ez/keymaps/dvorak_42_key/keymap.c b/keyboards/ergodox_ez/keymaps/dvorak_42_key/keymap.c
deleted file mode 100644
index f8fce23ce5..0000000000
--- a/keyboards/ergodox_ez/keymaps/dvorak_42_key/keymap.c
+++ /dev/null
@@ -1,340 +0,0 @@
-// Copyright 2022 LucW (@luc-languagetools)
-// SPDX-License-Identifier: GPL-2.0-or-later
-
-#include QMK_KEYBOARD_H
-#include "debug.h"
-#include "action_layer.h"
-#include "version.h"
-#include "dvorak_42_key.h"
-
-
-// to build this keymap
-// make ergodox_ez:dvorak_42_key:teensy
-// or:
-// qmk compile -kb ergodox_ez -km dvorak_42_key
-// flashing from rpi:
-// sudo teensy_loader_cli -v -w .build/ergodox_ez_dvorak_42_key.hex --mcu atmega32u4
-
-// keeping fork up to date:
-// https://help.github.com/articles/configuring-a-remote-for-a-fork/
-// https://help.github.com/articles/syncing-a-fork/
-// pushing dev branch
-// git push origin dev:dev
-
-// debounce settings
-// remove these after getting a new keyboard
-// #define DEBOUNCE 50
-
-
-
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
- [BASE] = LAYOUT_ergodox(
- // left hand
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- OSL(VSCODE), KC_QUOTE, KC_COMMA, KC_DOT, KC_P, KC_Y, KC_TRNS,
- OSL(SHELL_NAV), KC_A, KC_O, KC_E, KC_U, KC_I,
- OSL(SHELL_SCREEN), KC_SCLN, KC_Q, KC_J, KC_K, KC_X, MO(VSCODE),
- MEH(KC_0), OSM(MOD_LSFT), OSM(MOD_LCTL), MO(KEYSEL), MO(BROWSER_CONTROL),
-
- // left thumb cluster
- KC_TRNS,KC_TRNS,
- KC_TRNS,
- MO(COMBINED),MO(KEYNAV), KC_TRNS,
-
- // right hand
- KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, MEH(KC_7),
- MEH(KC_1), KC_F, KC_G, KC_C, KC_R, KC_L, KC_TAB,
- KC_D, KC_H, KC_T, KC_N, KC_S, RCTL(KC_BSPC),
- MEH(KC_2), KC_B, KC_M, KC_W, KC_V, KC_Z, MEH(KC_8),
- KC_BSPC, RCTL(KC_BSPC), KC_CAPS, OSM(MOD_LSFT),MEH(KC_9),
-
- // right thumb cluster
- KC_TRNS, KC_TRNS,
- KC_TRNS,
- KC_TRNS, KC_ENTER, KC_SPACE
-
- ),
-
- [KEYNAV] = LAYOUT_ergodox(
- // left hand
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_ESC, RCTL(KC_ENTER), RCTL(KC_K), RCTL(KC_Z), RCTL(KC_S), RCTL(KC_N), KC_TRNS,
- KC_TRNS, MO(KEYSEL), KC_TRNS, RSFT(KC_TAB), KC_TAB, RCTL(KC_F),
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, NP_DUPE_LINE, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- // left thumb cluster
- KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
-
-
- // right hand
- KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, MEH(KC_G),
- KC_TRNS,KC_NO, KC_HOME, KC_UP, KC_END, KC_PGUP, MEH(KC_H),
- LCTL(KC_LEFT), KC_LEFT, KC_DOWN, KC_RIGHT, LCTL(KC_RIGHT), MEH(KC_I),
- KC_TRNS,KC_TRNS, RCTL(KC_C), RCTL(KC_X), RCTL(KC_V), KC_PGDN, MEH(KC_J),
- KC_BSPC, RCTL(KC_BSPC), KC_DELETE, LCTL(KC_DELETE), MEH(KC_K),
-
- // right thumb cluster
- KC_TRNS, KC_TRNS,
- KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS
- ),
-
- // key selection layer
- [KEYSEL] = LAYOUT_ergodox(
- // left hand
- KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- // bottom row
- QK_BOOT,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
- // thumb cluster
- KC_TRNS,KC_TRNS,
- KC_TRNS,
- KC_TRNS,KC_TRNS,KC_TRNS,
- // right hand
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, RSFT(KC_HOME), RSFT(KC_UP), RSFT(KC_END), RSFT(KC_PGUP), KC_TRNS,
- RSFT(RCTL(KC_LEFT)), RSFT(KC_LEFT), RSFT(KC_DOWN), RSFT(KC_RIGHT), RSFT(RCTL(KC_RIGHT)), KC_TRNS,
- KC_TRNS, KC_TRNS, RCTL(KC_C), RCTL(KC_X), RCTL(KC_V), RSFT(KC_PGDN), KC_TRNS,
- // bottom row
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- // thumb cluster
- KC_TRNS, KC_TRNS,
- KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS
- ),
-
- // shell navigation layer
- [SHELL_NAV] = LAYOUT_ergodox(
- // left hand
- KC_NO, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS,SHELL_GIT_DIFF, SHELL_PGREP, SHELL_PLESS, SHELL_LESS, KC_TRNS, KC_TRNS,
- KC_TRNS,SHELL_GIT_STATUS, SHELL_CDPRE, SHELL_LSLTR, SHELL_LS, SHELL_LSLA,
- KC_TRNS,SHELL_SCREEN_LIST, SHELL_SCREENRD, SHELL_SCREEN_NEW, SHELL_TAILF, KC_TRNS, KC_TRNS,
- // bottom row
- KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
- // thumb cluster
- KC_TRNS,KC_TRNS,
- KC_TRNS,
- KC_TRNS,KC_TRNS,KC_TRNS,
- // right hand
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, RCTL(KC_D), KC_HOME, KC_UP, KC_END, RCTL(KC_L), RCTL(KC_X),
- LALT(KC_B), KC_LEFT, KC_DOWN, KC_RIGHT, LALT(KC_F), RCTL(KC_W),
- KC_TRNS, RCTL(KC_U), LALT(KC_DOT), RCTL(KC_R), KC_BTN2, RCTL(KC_K), RCTL(KC_C),
- // bottom row
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- // thumb cluster
- KC_TRNS, KC_TRNS,
- KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS
- ),
-
-
- // linux screen layer
- [SHELL_SCREEN] = LAYOUT_ergodox(
- // left hand
- KC_NO, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS,KC_TRNS, SCREEN_READREG_3, SCREEN_READREG_2, SCREEN_READREG_1, KC_TRNS, KC_TRNS,
- KC_TRNS,KC_TRNS, SCREEN_PASTEREG_3, SCREEN_PASTEREG_2, SCREEN_PASTEREG_1, SCREEN_DETACH,
- KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- // bottom row
- KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
- // thumb cluster
- KC_TRNS,KC_TRNS,
- KC_TRNS,
- KC_TRNS,KC_TRNS,KC_TRNS,
- // right hand
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, SCREEN_7, SCREEN_8, SCREEN_9, SCREEN_RENAME, KC_TRNS,
- SCREEN_TAB_LEFT, SCREEN_4, SCREEN_5, SCREEN_6, SCREEN_TAB_RIGHT, SCREEN_COPY_MODE,
- KC_TRNS, KC_TRNS, SCREEN_1, SCREEN_2, SCREEN_3, SCREEN_NUMBER, SCREEN_PASTE,
- // bottom row
- SCREEN_0, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- // thumb cluster
- KC_TRNS, KC_TRNS,
- KC_TRNS,
- KC_TRNS, SCREEN_KILL, SCREEN_NEW_TAB
- ),
-
- // android studio shortcuts
- [ANDROID_STUDIO] = LAYOUT_ergodox(
- // left hand
- KC_NO, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- // bottom row
- KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
- // thumb cluster
- KC_TRNS,KC_TRNS,
- KC_TRNS,
- KC_TRNS,KC_TRNS,KC_TRNS,
- // right hand
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- AS_CMT_LINE, AS_COPYLINEDOWN, AS_FINDUSAGE, AS_GO_DECLARATION, AS_GO_IMPLEMENTATION, AS_LINE, AS_BRACKET,
- AS_CLOSETAB, AS_TABLEFT, AS_TABRIGHT, AS_SYMBOL, AS_CLASS, AS_BACK,
- AS_CMT_BLOCK, KC_TRNS, AS_BM_PREV, AS_BM_NEXT, KC_TRNS, AS_CLOSETOOLWINDOW, AS_BM_TOGGLE,
- // bottom row
- KC_TRNS, AS_BM_LIST, KC_TRNS, KC_TRNS, KC_TRNS,
- // thumb cluster
- KC_TRNS, KC_TRNS,
- KC_TRNS,
- KC_TRNS, AS_DEL_LINE, KC_TRNS
- ),
-
- // vscode shortcuts shortcuts
- [VSCODE] = LAYOUT_ergodox(
- // left hand
- KC_NO, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, VS_CMT_BLOCK, VS_CMT_LINE, VS_BM_LISTALL, KC_TRNS,
- KC_TRNS, KC_TRNS, VS_TOGGLE_TERMINAL, VS_FOCUS_TERMINAL, VS_FOCUS_EDITOR, VS_BM_LIST,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, VS_BM_CLEARALL, KC_TRNS,
- // bottom row
- KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
- // thumb cluster
- KC_TRNS,KC_TRNS,
- KC_TRNS,
- KC_TRNS,KC_TRNS,KC_TRNS,
- // right hand
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, VS_COPYLINEDOWN, VS_REFERENCES, VS_DEFINITION, VS_IMPLEMENTATION, VS_LINE, VS_BRACKET,
- VS_CLOSETAB, VS_TABLEFT, VS_TABRIGHT, VS_SYMBOLEDITOR, VS_FILE, VS_BACK,
- KC_TRNS, VS_JUMPY, VS_BM_PREV, VS_BM_NEXT, VS_GROUP_1, VS_GROUP_2, VS_BM_TOGGLE,
- // bottom row
- VS_COMMANDS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- // thumb cluster
- KC_TRNS, KC_TRNS,
- KC_TRNS,
- KC_TRNS, VS_DEL_LINE, KC_TRNS
- ),
-
-
- [COMBINED] = LAYOUT_ergodox(
-
- // left hand
- KC_NO, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS,KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_TRNS,
- KC_TRNS,KC_LPRN, KC_RPRN, KC_LBRC, KC_RBRC, KC_UNDS,
- KC_TRNS,KC_COLN, KC_DQUO, KC_LCBR, KC_RCBR, KC_AMPR, KC_TRNS,
- // bottom row
- KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- // thumb cluster
- KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
-
- // right hand
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_PLUS, KC_7, KC_8, KC_9, KC_ASTR, KC_PIPE,
- KC_MINS, KC_4, KC_5, KC_6, KC_SLSH, KC_BSLS,
- KC_TRNS, KC_EQUAL, KC_1, KC_2, KC_3, KC_QUES, KC_DOT,
- // bottom row
- KC_0, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- // thumb cluster
- KC_TRNS,KC_TRNS,
- KC_TRNS,
- KC_TRNS,KC_TRNS,KC_TRNS),
-
-
- [BROWSER_CONTROL] = LAYOUT_ergodox(
- // left hand
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_BTN3, KC_MS_U, KC_BTN1, KC_BTN2, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_R, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, WINDOWS10_WORKSPACE_LEFT, WINDOWS10_WORKSPACE_RIGHT, WINDOWS10_TASK_VIEW, KC_TRNS,
- // bottom row
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
-
- KC_TRNS, KC_TRNS,
- KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS,
- // right hand
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_UP, KC_PGUP, KC_PGDN, KC_MS_WH_UP, KC_TRNS, KC_TRNS,
- KC_DOWN, RCTL(KC_PGUP), RCTL(KC_PGDN),KC_MS_WH_DOWN, LALT(KC_LEFT), KC_TRNS,
- KC_TRNS, KC_TRNS, RCTL(KC_1), RCTL(KC_9), KC_F6, KC_F5, KC_TRNS,
- // bottom row
- RCTL(LSFT(KC_TAB)), RCTL(KC_TAB), KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS,
- KC_TRNS,
- KC_TRNS, RCTL(KC_W), RCTL(KC_T)
- ),
-
-
- // shortcuts to be intercepted by autohotkey
- [SHORTCUTS] = LAYOUT_ergodox(
- // left hand
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_TRNS,
- KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,
- KC_TRNS, OSM(MOD_LSFT), OSM(MOD_LGUI), OSM(MOD_LALT), OSM(MOD_LCTL), KC_TRNS, KC_TRNS,
- // bottom row
- KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
- // thumb cluster
- KC_TRNS,KC_TRNS,
- KC_TRNS,
- KC_TRNS,DF(BASE),KC_TRNS,
- // right hand
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, QK_BOOT,
- KC_TRNS, MEH(KC_I), MEH(KC_J), MEH(KC_K), MEH(KC_L), MEH(KC_M), MEH(KC_N),
- MEH(KC_O), MEH(KC_P), MEH(KC_Q), MEH(KC_R), MEH(KC_S), MEH(KC_T),
- KC_TRNS, MEH(KC_U), MEH(KC_V), MEH(KC_W), MEH(KC_X), MEH(KC_Y), MEH(KC_Z),
- // bottom row
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- // thumb cluster
- KC_TRNS, KC_TRNS,
- KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS
- ),
-
-
-};
-
-
-
-
-
-bool led_update_user(led_t led_state) {
- if (led_state.caps_lock) {
- ergodox_right_led_1_on();
- } else {
- ergodox_right_led_1_off();
- }
- return false;
-}
-
-
-void matrix_scan_user(void) {
-
- uint8_t layer = get_highest_layer(layer_state);
-
- ergodox_right_led_1_off();
- ergodox_right_led_2_off();
- ergodox_right_led_3_off();
- switch (layer) {
- case COMBINED:
- ergodox_right_led_2_on();
- break;
- case SHELL_NAV:
- case SHELL_SCREEN:
- case KEYNAV:
- case KEYSEL:
- case VSCODE:
- ergodox_right_led_3_on();
- break;
- case BROWSER_CONTROL:
- ergodox_right_led_2_on();
- ergodox_right_led_3_on();
- break;
- case SHORTCUTS:
- ergodox_right_led_1_on();
- ergodox_right_led_2_on();
- ergodox_right_led_3_on();
- break;
- default:
- break;
- }
-
-};
diff --git a/keyboards/ergodox_ez/keymaps/ericgebhart/keymap.c b/keyboards/ergodox_ez/keymaps/ericgebhart/keymap.c
deleted file mode 100644
index c534fe3c6d..0000000000
--- a/keyboards/ergodox_ez/keymaps/ericgebhart/keymap.c
+++ /dev/null
@@ -1,18 +0,0 @@
-/*
- Copyright 2018-2022 Eric Gebhart <e.a.gebhart@gmail.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/>.
-*/
-
-// See: users/ericgebhart.
diff --git a/keyboards/ergodox_ez/keymaps/ericgebhart/readme.md b/keyboards/ergodox_ez/keymaps/ericgebhart/readme.md
deleted file mode 100644
index 4f71bf39ee..0000000000
--- a/keyboards/ergodox_ez/keymaps/ericgebhart/readme.md
+++ /dev/null
@@ -1,5 +0,0 @@
-Overview
-========
-
-These are my ergodox_ez keymaps. There isn't much here. Go take a look at my Userspace readme.
-That's where all the code is.
diff --git a/keyboards/ergodox_ez/keymaps/hacker_dvorak/rules.mk b/keyboards/ergodox_ez/keymaps/hacker_dvorak/rules.mk
index 9da5278ed9..aaf4e53f6e 100644
--- a/keyboards/ergodox_ez/keymaps/hacker_dvorak/rules.mk
+++ b/keyboards/ergodox_ez/keymaps/hacker_dvorak/rules.mk
@@ -31,7 +31,6 @@ SWAP_HANDS_ENABLE = no # Allow swapping hands of keyboard.
# POINTING_DEVICE_ENABLE = no
# AUTO_SHIFT_ENABLE = no
-# AUTO_SHIFT_MODIFIERS = no
# This don't need argument?
# CUSTOM_MATRIX # Custom matrix file for the ErgoDox EZ
diff --git a/keyboards/ergodox_ez/keymaps/pvinis/keymap.c b/keyboards/ergodox_ez/keymaps/pvinis/keymap.c
deleted file mode 100644
index dcdaa7098b..0000000000
--- a/keyboards/ergodox_ez/keymaps/pvinis/keymap.c
+++ /dev/null
@@ -1,334 +0,0 @@
-// pvinis ergodox ez
-// ,------------------------------------. ┌────┬────┬────┬────┬────┬────┬──────┐
-// | | | | | | | | │ │ │ │ │ │ │ │
-// |------+----+----+----+----+---------| ├────┼────┼────┼────┼────┼────┼──────┤
-// | | | | | | | | │ │ │ │ │ │ │ │
-// |------+----+----+----x----x----| | │ ├────╆━━━━╅────┼────┼────┼──────┤
-// | | | | | | |----| ├────┤ ┃ ┃ │ │ │ │
-// |------+----+----+----x----x----| | │ ├────╄━━━━╃────┼────┼────┼──────┤
-// | | | | | | | | │ │ │ │ │ │ │ │
-// `------+----+----+----+----+---------' └────┴────┼────┼────┼────┼────┼────┬─┘
-// | | | | | | │ │ │ │ │ │
-// `------------------------' └────┴────┴────┴────┴────┘
-// ,---------. ┌────┬────┐
-// | | | │ │ │
-// ,----+----+----| ├────┼────┼────┐
-// | | | | │ │ │ │
-// | | |----| ├────┤ │ │
-// | | | | │ │ │ │
-// `--------------' └────┴────┴────┘
-
-#include QMK_KEYBOARD_H
-#include "pvinis.h"
-#include "mousekey.h"
-
-// layers
-enum {
- MOUSE = 8,
-};
-
-// extra keys
-enum {
- NONE = 30,
- TD_LAYR, // SYSCTL and MOUSE layer switch
-};
-
-// application selection
-// this is sending ctrl-alt-gui-<key>, and this is picked up by hammerspoon
-#define AP_SLCK ALLM(KC_S)
-#define AP_XCOD ALLM(KC_X)
-#define AP_MSGR ALLM(KC_M)
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- // ,------------------------------------. ,------------------------------------.
- // |4xFLSH| | | | | |Opt | | | | | | | | |
- // |------+----+----+----+----+---------| |----+----+----+----+----+----+------|
- // | Tab | | | | | | | | | | | | | | |
- // |------+----+----+----x----x----| | | |----x----x----+----+----+------|
- // |EscCtl| | | | | |----| |----| | | | | | Ent |
- // |------+----+----+----x----x----| | | |----x----x----+----+----+------|
- // |LShift| | | | | | | | | | | | | |RShift|
- // `------+----+----+----+----+---------' `---------+----+----+----+----+------'
- // | | | |Cmd |LOWR| |RASE|RAlt| | | |
- // `------------------------' `------------------------'
- // ,---------. ,---------.
- // |QWER| | | | |
- // ,----+----+----| |----+----+----.
- // | Ba | L | | | | | |
- // | ck |Shi |----| |----| |Spc |
- // | spc| ft | | | | | |
- // `--------------' `--------------'
- [LR_BASE] = LAYOUT_ergodox_pretty_wrapper(
- // clang-format off
- TD_3FLS, _______, _______, _______, _______, _______, KC_LALT, _______, _______, _______, _______, _______, _______, _______,
- KC_TAB , _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- PV_ESCC, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_ENT ,
- KC_LSFT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_RSFT,
- _______, _______, _______, KC_LGUI, SYMBOL , SYSCTL , KC_RALT, _______, _______, _______,
- QWERTY , CARPALX, _______, _______,
- _______, _______,
- KC_BSPC, _______, _______, _______, _______, KC_SPC
- // clang-format on
- ),
-
- // ,------------------------------------. ,------------------------------------.
- // | | NUMBERS_L | | | - | NUMBERS_R | = |
- // |------+----+----+----+----+---------| |----+----+----+----+----+----+------|
- // | | | [ | | ] | | |
- // |------+ | | | | +------|
- // | | QWERTY_L |----| |----| QWERTY_R | |
- // |------+ | ( | | ) | +------|
- // | | | | | | | |
- // `------+----+----+----+----+---------' `---------+----+----+----+----+------'
- // | | ` | | | | | | | | ' | |
- // `------------------------' `------------------------'
- // ,---------. ,---------.
- // | | | | | |
- // ,----+----+----| |----+----+----.
- // | | | | | | | |
- // | | |----| |----| | |
- // | | | | | | | |
- // `--------------' `--------------'
- // See `users/pvinis/pvinis.h`
- [LR_QWERTY] = LAYOUT_ergodox_pretty_wrapper(
- // clang-format off
- _______, ________________NUMBERS_L__________________, _______, KC_MINS, ________________NUMBERS_R__________________, KC_EQL ,
- _______, _________________QWERTY_L1_________________, KC_LBRC, KC_RBRC, _________________QWERTY_R1_________________, _______,
- _______, _____________MOD_QWERTY_L2_________________, _____________MOD_QWERTY_R2_________________, _______,
- _______, _________________QWERTY_L3_________________, KC_LPRN, KC_RPRN, _________________QWERTY_R3_________________, _______,
- _______, KC_GRV, _______, _______, _______, _______, _______, _______, KC_QUOT , _______,
- _______, _______, _______, _______,
- _______, _______,
- _______, _______, _______, _______, _______, _______
- // clang-format off
- ),
-
- // ,------------------------------------. ,------------------------------------.
- // | | NUMBERS_L | | | | NUMBERS_R | |
- // |------+----+----+----+----+---------| |----+----+----+----+----+----+------|
- // | | | | | | | |
- // |------+ | | | | +------|
- // | | CARPALX_L |----| |----| CARPALX_R | |
- // |------+ | | | | +------|
- // | | | | | | | |
- // `------+----+----+----+----+---------' `---------+----+----+----+----+------'
- // | | | | | | | | | | | |
- // `------------------------' `------------------------'
- // ,---------. ,---------.
- // | | | | | |
- // ,----+----+----| |----+----+----.
- // | | | | | | | |
- // | | |----| |----| | |
- // | | | | | | | |
- // `--------------' `--------------'
- // See `users/pvinis/pvinis.h`
- [LR_CARPALX] = LAYOUT_ergodox_pretty_wrapper(
- // clang-format off
- _______, ________________NUMBERS_L__________________, _______, _______, ________________NUMBERS_R__________________, _______,
- _______, ________________CARPALX_L1_________________, _______, _______, ________________CARPALX_R1_________________, _______,
- _______, ________________CARPALX_L2_________________, ________________CARPALX_R2_________________, _______,
- _______, ________________CARPALX_L3_________________, _______, _______, ________________CARPALX_R3_________________, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______,
- _______, _______,
- _______, _______, _______, _______, _______, _______
- // clang-format on
- ),
-
- // See `users/pvinis/pvinis.h`
- [LR_SYMBOL] = LAYOUT_ergodox_pretty_wrapper(
- // clang-format off
- _______, ______________________F_L__________________, KC_F11 , KC_F12 , ______________________F_R__________________, _______,
- _______, _________________SYMBOL_L1_________________, _______, _______, _________________SYMBOL_R1_________________, _______,
- _______, _________________SYMBOL_L2_________________, _________________SYMBOL_R2_________________, _______,
- _______, _________________SYMBOL_L3_________________, _______, _______, _________________SYMBOL_R3_________________, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______,
- _______, _______,
- _______, _______, _______, _______, _______, _______
- // clang-format off
- ),
-
- // See `users/pvinis/pvinis.h`
- [LR_SYSCTL] = LAYOUT_ergodox_pretty_wrapper(
- // clang-format off
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _________________SYSCTL_R1_________________, _______,
- _______, _______, _______, _______, _______, _______, _________________SYSCTL_R2_________________, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _________________SYSCTL_R3_________________, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
-
- _______, _______, _______, _______,
- _______, _______,
- _______, _______, _______, _______, _______, _______
- // clang-format on
- ),
-
- // See `users/pvinis/pvinis.h`
- [LR_KBCTL] = LAYOUT_ergodox_pretty_wrapper(
- // clang-format off
- XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
- XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, __________________KBCTL_R1_________________, XXXXXXX,
- XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, __________________KBCTL_R2_________________, XXXXXXX,
- XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, __________________KBCTL_R3_________________, XXXXXXX,
- XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
-
- XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
- XXXXXXX, XXXXXXX,
- XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX
- // clang-format on
- ),
-
- /* MOUSE
- * a keymap to control my system.
- *
- * ,--------------------------------------------------. ,--------------------------------------------------.
- * | ^ | | | | | | | | | | | | | | |
- * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | | | | | | | | | | | | MsUp | | | |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | | | | | |------| |------| |MsLeft| MsDn |MsRght| | |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | | | | | | | | | | | | | | |
- * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * | | | | | | | | | | | |
- * `----------------------------------' `----------------------------------'
- * ,-------------. ,-------------.
- * | | | | |MidClk|
- * ,------|------|------| |------+------+------.
- * | | | | | |Left |Right |
- * | | |------| |------| Click| Click|
- * | | | ^ | | | | |
- * `--------------------' `--------------------'
- */
- [MOUSE] = LAYOUT_ergodox_pretty(
- // clang-format off
- KC_TRNS ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO
- ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO
- ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO
- ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO
- ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO
-
- ,KC_NO ,KC_NO
- ,KC_NO
- ,KC_NO ,KC_NO ,KC_TRNS
-
- ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO
- ,KC_NO ,KC_NO ,KC_NO ,KC_MS_U ,KC_NO ,KC_NO ,KC_NO
- ,KC_NO ,KC_MS_L ,KC_MS_D ,KC_MS_R ,KC_NO ,KC_NO
- ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO
- ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO
-
- ,KC_NO ,KC_NO
- ,KC_NO
- ,KC_NO ,KC_NO ,KC_NO
- // clang-format on
- ),
-};
-
-// keyboard initialization
-void keyboard_post_init_user_keymap(void) {
- ergodox_led_all_on();
- for (int i = LED_BRIGHTNESS_HI; i > LED_BRIGHTNESS_LO; i--) {
- ergodox_led_all_set(i);
- wait_ms(5);
- }
- wait_ms(1000);
- for (int i = LED_BRIGHTNESS_LO; i > 0; i--) {
- ergodox_led_all_set(i);
- wait_ms(10);
- }
- ergodox_led_all_off();
-
- // restore default brightness for future use
- ergodox_led_all_set(LED_BRIGHTNESS_HI);
-}
-
-// light up leds based on the layer
-layer_state_t layer_state_set_user_keymap(layer_state_t state) {
- ergodox_right_led_1_off();
- ergodox_right_led_2_off();
- ergodox_right_led_3_off();
- switch (get_highest_layer(state)) {
- case LR_SYSCTL:
- ergodox_right_led_3_on(); // blue
- break;
- case LR_KBCTL:
- ergodox_right_led_1_on(); // red
- break;
- case LR_SYMBOL:
- ergodox_right_led_2_on(); // green
- break;
- default:
- break;
- }
- return state;
-}
-
-// tap dances
-
-// flash keyboard on 4x tap, with leds
-// void flash_each_tap(tap_dance_state_t *state, void *user_data) {
-// switch (state->count) {
-// case 1:
-// ergodox_right_led_3_on();
-// break;
-// case 2:
-// ergodox_right_led_2_on();
-// break;
-// case 3:
-// ergodox_right_led_1_on();
-// break;
-// case 4:
-// ergodox_right_led_3_off();
-// wait_ms(50);
-// ergodox_right_led_2_off();
-// wait_ms(50);
-// ergodox_right_led_1_off();
-// break;
-// }
-// }
-
-// void flash_dance_finished(tap_dance_state_t *state, void *user_data) {
-// if (state->count >= 4) {
-// reset_keyboard();
-// reset_tap_dance(state);
-// }
-// }
-
-// void flash_dance_reset(tap_dance_state_t *state, void *user_data) {
-// ergodox_right_led_1_off();
-// wait_ms(50);
-// ergodox_right_led_2_off();
-// wait_ms(50);
-// ergodox_right_led_3_off();
-// }
-
-// SYSCTL on first tap, MOUSE ON second tap
-// void layers_dance_finished(tap_dance_state_t *state, void *user_data) {
-// uint8_t layer = get_highest_layer(layer_state);
-
-// switch(state->count) {
-// case 1:
-// switch(layer) {
-// case LR_SYSCTL:
-// layer_off(LR_SYSCTL);
-// break;
-// case MOUSE:
-// layer_off(MOUSE);
-// break;
-// default:
-// layer_on(LR_SYSCTL);
-// break;
-// }
-// break;
-// case 2:
-// layer_on(MOUSE);
-// break;
-// }
-// }
-
-// tap_dance_action_t tap_dance_actions[] = {
-// [TD_FLSH] = ACTION_TAP_DANCE_FN_ADVANCED( flash_each_tap, flash_dance_finished, flash_dance_reset ),
-// [TD_LAYR] = ACTION_TAP_DANCE_FN_ADVANCED( NULL, layers_dance_finished, NULL ),
-// };
diff --git a/keyboards/ergodox_ez/keymaps/pvinis/readme.md b/keyboards/ergodox_ez/keymaps/pvinis/readme.md
deleted file mode 100644
index af27210541..0000000000
--- a/keyboards/ergodox_ez/keymaps/pvinis/readme.md
+++ /dev/null
@@ -1,65 +0,0 @@
-pvinis' keymap
-==============
-
-This is a getting-used-to keymap for the [ErgoDox EZ][ez]. It's very much a work in progress.
-
-[ez]: https://ergodox-ez.com/
-
-## Table of Contents
-
-* [Todo](#todo)
-* [Layouts](#layouts)
- - [Base layer](#base-layer)
- - [Beginner layer](#beginner-layer)
- - [QWERTY layer](#qwerty-layer)
- - [CARPALX layer](#carpalx-layer)
- - [System Control layer](#system-control-layer)
- - [Template layers](#template-layers)
-* [Building](#building)
-
-# Todo
-
-- [ ] Generate images from keymap
-- [ ] Implement algernon's heatmap
-- [ ] Implement `KC_POP`
-
-# Layouts
-
-## Base layer
-
-This is the base layer that contains the common buttons of all keymaps. Right now, it has the top left button as a `flash` button when it's tapped 4 times, and the two thumb islands. The islands contain the `space` and `enter` keys on the right, the `backspace` and `shift` on the left, and all the 1x1 keys are just layer switches.
-Every time I connect the keyboard, I press the `BEGIN` layer switch, and then start typing.
-Recently, I added a few application "shortcuts", that basically call `ctrl`+`alt`+`cmd`+`<key>`, and `<key>` is `S` for Slack, `X` for Xcode, `M` for Messenger. Using [Hammerspoon][hammerspoon], I show/hide the application.
-
-[hammerspoon]: http://www.hammerspoon.org/
-
-## Beginner layer
-
-This is a basic keymap I use right now until I'm comfortable typing on the Ergodox. Currently uses a QWERTY layout, and the `([{}])` on the middle keys. Not a perfect layout, and its going to go away at some point, but for now thats my daily driver.
-
-## QWERTY layer
-
-This is basically the same as the `BEGIN` layer, but it might go away. I'm not using it, but I should have a QWERTY layout on the keyboard, in case someone else wants to try it out, or if I completely forget how keyboards work! At some point, this and the `BEGIN` layer will become one.
-
-## CARPALX layer
-
-This is here as a placeholder. I want to transition to [Carpalx QGMLWY][carpalx] or [White][white] at some point. They both look very interesting and more comfortable to type on, but after I'm confident with typing on the Ergodox.
-
-[carpalx]: http://mkweb.bcgsc.ca/carpalx/?full_optimization
-[white]: https://github.com/mw8/white_keyboard_layout
-
-## System Control layer
-
-This one is a layer that, in time, will have controls like mouse movement, volume up/down, mute, sleep, restart, shutdown, etc.
-
-## Template layers
-
-I have two commented out layers that are just templates, so I can easily create a new layer.
-
-# Building
-
-```
-$ git clone https://github.com/qmk/qmk_firmware.git
-$ cd qmk_firmware/keyboards/ergodox/keymaps/pvinis
-$ make
-```
diff --git a/keyboards/ergodox_ez/keymaps/pvinis/rules.mk b/keyboards/ergodox_ez/keymaps/pvinis/rules.mk
deleted file mode 100644
index e5ddcae8d9..0000000000
--- a/keyboards/ergodox_ez/keymaps/pvinis/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-TAP_DANCE_ENABLE = yes
diff --git a/keyboards/ergodox_ez/keymaps/rishka/config.h b/keyboards/ergodox_ez/keymaps/rishka/config.h
deleted file mode 100644
index c8f8180bcc..0000000000
--- a/keyboards/ergodox_ez/keymaps/rishka/config.h
+++ /dev/null
@@ -1,17 +0,0 @@
-#pragma once
-
-#define PERMISSIVE_HOLD
-
-#undef MOUSEKEY_TIME_TO_MAX
-#define MOUSEKEY_TIME_TO_MAX 0
-
-#undef MOUSEKEY_WHEEL_MAX_SPEED
-#undef MOUSEKEY_WHEEL_TIME_TO_MAX
-
-#define MOUSEKEY_WHEEL_MAX_SPEED 1
-#define MOUSEKEY_WHEEL_TIME_TO_MAX 0
-
-#define MK_C_OFFSET_1 20
-#define MK_C_OFFSET_2 30
-
-#undef MK_MOMENTARY_ACCEL
diff --git a/keyboards/ergodox_ez/keymaps/rishka/keymap.c b/keyboards/ergodox_ez/keymaps/rishka/keymap.c
deleted file mode 100644
index f6ca540e63..0000000000
--- a/keyboards/ergodox_ez/keymaps/rishka/keymap.c
+++ /dev/null
@@ -1,210 +0,0 @@
-
-#include QMK_KEYBOARD_H
-#include "version.h"
-#include "rishka.h"
-enum layers {
- BASE, // default layer
- WIN, // Switch keys that are needed in windows
- SYMB, // symbols
- MDIA, // media keys
- GAME, // Gamepad setup
- FIRMWARE // Layer to trigger reset/refresh
-};
-enum custom_keycodes {
- VRSN = SAFE_RANGE,
- RGB_SLD
-};
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
-[BASE] = LAYOUT_ergodox_pretty_wrapper(
- KC_EQL, ________________NUMBERS_L__________________, TG(WIN), OSX_LOCK, ________________NUMBERS_R__________________, KC_MINS,
- KC_DEL, _________________QWERTY_L1_________________, TG(SYMB), TG(SYMB), _________________QWERTY_R1_________________, KC_BSLS,
- KC_BSPC, _____________MOD_QWERTY_L2_________________, _____________MOD_QWERTY_R2_________________, LT(MDIA, KC_QUOT),
- OS_LSFT, _________________QWERTY_L3_________________, ALL_T(KC_NO), TG(MDIA), _________________QWERTY_R3_________________, OS_RSFT,
- LT(SYMB,KC_GRV), KC_QUOT, LALT(KC_LSFT), KC_LEFT, KC_RGHT, KC_UP, KC_DOWN, KC_LBRC, KC_RBRC, OSL(SYMB),
- ALT_T(KC_APP), TG(GAME), KC_LALT, CTL_T(KC_ESC),
- LT(FIRMWARE, KC_HOME), KC_PGUP,
- KC_SPC, GUI_T(KC_BSPC), ALT_T(KC_END), GUI_T(KC_PGDN), CTL_T(KC_TAB), ALT_T(KC_ENT)
-),
-
-[WIN] = LAYOUT_ergodox_pretty_wrapper(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- KC_F1, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- KC_TAB, _________________QWERTY_L2_________________, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, KC_LGUI, _______, _______, _______, _______, _______, _______, _______,
- KC_LCTL, _______, KC_LALT, _______, _______, _______, _______, _______, _______, _______,
- _______, KC_ESC, _______, _______,
- _______, _______,
- _______, KC_BSPC, KC_LALT, KC_PGDN, CTL_T(KC_TAB), _______
-),
-
-[SYMB] = LAYOUT_ergodox_pretty_wrapper(
-VRSN, ______________________F_L__________________, KC_F11, KC_F12 , ______________________F_R__________________, KC_NUM,
-_______, _________________SYMBOL_L1_________________, _______, _______, _________________SYMBOL_R1_________________, _______,
-_______, _________________SYMBOL_L2_________________, _________________SYMBOL_R2_________________, _______,
-_______, _________________SYMBOL_L3_________________, _______, _______, _________________SYMBOL_R3_________________, _______,
-_______, _______, _______, _______, _______, _______, KC_P0, KC_PDOT, KC_PSLS, _______,
- RGB_MOD, RGB_VAI, RGB_HUI, RGB_SLD,
- RGB_VAD, RGB_HUD,
- _______, _______, _______, RGB_TOG, _______, _______
-),
-
-[MDIA] = LAYOUT_ergodox(
- // left hand
- _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, KC_MS_U, _______, KC_WH_U, _______,
- _______, _______, KC_MS_L, KC_MS_D, KC_MS_R, KC_WH_D,
- _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, KC_BTN1, KC_BTN2,
- _______, KC_BTN5,
- KC_BTN4,
- KC_BTN1, KC_BTN2, KC_BTN3,
- // right hand
- _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, KC_WH_U, _______, _______, _______,
- _______, KC_WH_L, KC_WH_D, KC_WH_R, _______, KC_MPLY,
- _______, _______, _______, KC_MPRV, KC_MNXT, _______, _______,
- KC_VOLU, KC_VOLD, KC_MUTE, _______, _______,
- _______, _______,
- _______,
- KC_ACL2, KC_ACL1, KC_ACL0
-),
-
-[GAME] = LAYOUT_ergodox(
- // left hand
- KC_ESCAPE, KC_GRAVE, KC_1, KC_2, KC_3, KC_4, KC_5,
- KC_F1, KC_Y, KC_Q, KC_W, KC_E, KC_R, KC_T,
- KC_TAB, KC_LSFT, KC_A, KC_S, KC_D, KC_F,
- KC_LCTL, KC_B, KC_Z, KC_X, KC_C, KC_V, KC_G,
- LT(BASE, KC_L), KC_J, KC_I, KC_O, KC_M,
- KC_ESCAPE, _______,
- KC_ENTER,
- KC_SPACE, KC_LCTL, KC_LALT,
- // right hand
- KC_RGHT, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS,
- TG(SYMB), KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS,
- KC_H, KC_J, KC_K, KC_L, LT(MDIA, KC_SCLN), GUI_T(KC_QUOT),
- MEH_T(KC_NO), KC_N, KC_M, KC_COMM, KC_DOT, CTL_T(KC_SLSH), KC_RSFT,
- KC_UP, KC_DOWN, KC_LBRC, KC_RBRC, TT(SYMB),
- KC_LALT, CTL_T(KC_ESC),
- KC_PGUP,
- KC_PGDN, KC_TAB, KC_ENT
-),
-
-[FIRMWARE] = LAYOUT_ergodox(
- // left hand
- _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______,
- _______, _______,
- _______,
- QK_BOOT, _______, _______,
- // right hand
- _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______,
- _______, _______,
- _______,
- _______, _______, EE_CLR
-),
-};
-
-bool process_record_user(uint16_t keycode, keyrecord_t *record) {
- if (record->event.pressed) {
- switch (keycode) {
- case VRSN:
- SEND_STRING (QMK_KEYBOARD "/" QMK_KEYMAP " @ " QMK_VERSION);
- return false;
- #ifdef RGBLIGHT_ENABLE
- case RGB_SLD:
- rgblight_mode(1);
- return false;
- #endif
- }
- }
- return true;
-}
-
-// Runs just one time when the keyboard initializes.
-void keyboard_post_init_user(void) {
-#ifdef RGBLIGHT_COLOR_LAYER_0
- rgblight_setrgb(RGBLIGHT_COLOR_LAYER_0);
-#endif
-};
-
-// Runs whenever there is a layer state change.
-layer_state_t layer_state_set_user(layer_state_t state) {
- ergodox_board_led_off();
- ergodox_right_led_1_off();
- ergodox_right_led_2_off();
- ergodox_right_led_3_off();
-
- uint8_t layer = get_highest_layer(state);
- switch (layer) {
- case 0:
- #ifdef RGBLIGHT_COLOR_LAYER_0
- rgblight_setrgb(RGBLIGHT_COLOR_LAYER_0);
- #else
- #ifdef RGBLIGHT_ENABLE
- rgblight_init();
- #endif
- #endif
- break;
- case 1:
- ergodox_right_led_1_on();
- #ifdef RGBLIGHT_COLOR_LAYER_1
- rgblight_setrgb(RGBLIGHT_COLOR_LAYER_1);
- #endif
- break;
- case 2:
- ergodox_right_led_2_on();
- #ifdef RGBLIGHT_COLOR_LAYER_2
- rgblight_setrgb(RGBLIGHT_COLOR_LAYER_2);
- #endif
- break;
- case 3:
- ergodox_right_led_3_on();
- #ifdef RGBLIGHT_COLOR_LAYER_3
- rgblight_setrgb(RGBLIGHT_COLOR_LAYER_3);
- #endif
- break;
- case 4:
- ergodox_right_led_1_on();
- ergodox_right_led_2_on();
- #ifdef RGBLIGHT_COLOR_LAYER_4
- rgblight_setrgb(RGBLIGHT_COLOR_LAYER_4);
- #endif
- break;
- case 5:
- ergodox_right_led_1_on();
- ergodox_right_led_3_on();
- #ifdef RGBLIGHT_COLOR_LAYER_5
- rgblight_setrgb(RGBLIGHT_COLOR_LAYER_5);
- #endif
- break;
- case 6:
- ergodox_right_led_2_on();
- ergodox_right_led_3_on();
- #ifdef RGBLIGHT_COLOR_LAYER_6
- rgblight_setrgb(RGBLIGHT_COLOR_LAYER_6);
- #endif
- break;
- case 7:
- ergodox_right_led_1_on();
- ergodox_right_led_2_on();
- ergodox_right_led_3_on();
- #ifdef RGBLIGHT_COLOR_LAYER_7
- rgblight_setrgb(RGBLIGHT_COLOR_LAYER_7);
- #endif
- break;
- default:
- break;
- }
-
- return state;
-};
diff --git a/keyboards/ergodox_ez/keymaps/rishka/rules.mk b/keyboards/ergodox_ez/keymaps/rishka/rules.mk
deleted file mode 100644
index c867f89718..0000000000
--- a/keyboards/ergodox_ez/keymaps/rishka/rules.mk
+++ /dev/null
@@ -1,2 +0,0 @@
-# TAP_DANCE_ENABLE = yes
-MOUSEKEY_ENABLE = yes
diff --git a/keyboards/ergodox_ez/keymaps/rmw/config.h b/keyboards/ergodox_ez/keymaps/rmw/config.h
deleted file mode 100644
index 1b7528a4a7..0000000000
--- a/keyboards/ergodox_ez/keymaps/rmw/config.h
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
-Copyright 2012 Jun Wako <wakojun@gmail.com>
-Copyright 2013 Oleg Kostyuk <cub.uanic@gmail.com>
-Edited like hell 2017+ by Reed Williams <rmwphd@gmail.com>
-
-This program is free software: you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program. If not, see <http://www.gnu.org/licenses/>.
-*/
-#pragma once
-
-#define MACOSX
-
-#define USB_MAX_POWER_CONSUMPTION 500
-
-/* Set 0 if debouncing isn't needed */
-#undef DEBOUNCE
-#define DEBOUNCE 5
-
-
-#define ONESHOT_TIMEOUT 900 // how long before oneshot times out
-//#define ONESHOT_TAP_TOGGLE 2 // how many taps before oneshot toggle is triggered
-
-#undef LOCKING_SUPPORT_ENABLE
-#undef LOCKING_RESYNC_ENABLE
-
-#undef MOUSEKEY_DELAY
-#define MOUSEKEY_DELAY 20
-#undef MOUSEKEY_MAX_SPEED
-#define MOUSEKEY_MAX_SPEED 6
-#undef MOUSEKEY_TIME_TO_MAX
-#define MOUSEKEY_TIME_TO_MAX 254
-#undef MOUSEKEY_WHEEL_MAX_SPEED
-#define MOUSEKEY_WHEEL_MAX_SPEED 10
-#undef MOUSEKEY_WHEEL_TIME_TO_MAX
-#define MOUSEKEY_WHEEL_TIME_TO_MAX 254
-
-/* disable action features */
-//#define NO_ACTION_LAYER
-//#define NO_ACTION_TAPPING
-//#define NO_ACTION_ONESHOT
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
-//#define DEBUG_MATRIX_SCAN_RATE
diff --git a/keyboards/ergodox_ez/keymaps/rmw/keymap-mac.c b/keyboards/ergodox_ez/keymaps/rmw/keymap-mac.c
deleted file mode 100644
index 9d230aaae0..0000000000
--- a/keyboards/ergodox_ez/keymaps/rmw/keymap-mac.c
+++ /dev/null
@@ -1,188 +0,0 @@
-#include "rmw.h"
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
- [QWERTY] = LAYOUT_ergodox(
- TD(FRBK2), KC_1, KC_2, KC_3, KC_4, KC_5, KC_F4,
- KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, TO(EDIT),
- OSL(EDIT), KC_A, LT(NUMPAD,KC_S), KC_D, LT(FSYM,KC_F), KC_G,
- LCTL(KC_LEFT), KC_Z, KC_X, KC_C, KC_V, SFT_T(KC_B), KC_TAB,
- TD(CTLALL), OSL(ADJUST), TD(GUCTL), TD(SGCA), TD(AGC),
- OS_CMD, OS_CTL ,
- KC_ESCAPE,
- KC_BSPC, TD(SHENT), OSL(EDIT),
-
- KC_F5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC,
- TO(NUMPAD), KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS,
- KC_H, LT(JSYM,KC_J), KC_K, KC_L, LT(EDIT,KC_SCLN), KC_QUOTE,
- CTL_T(KC_B), KC_N, KC_M, KC_COMM, KC_DOT, LT(MEDIA,KC_SLSH), LCTL(KC_RIGHT),
- TD(GCA), TD(CTLALL), KC_LBRC, KC_RBRC, KC_MS_BTN1,
- OS_CALT, KC_TAB,
- KC_DEL,
- KC_CAPS, SFTENT, KC_SPC),
-
-
- [MINIMAK4] = LAYOUT_ergodox(
- TD(FRBK2), KC_1, KC_2, KC_3, KC_4, KC_5, KC_F4,
- KC_TAB, KC_Q, KC_W, KC_D, KC_R, KC_K, TO(EDIT),
- OSL(EDIT), KC_A, LT(NUMPAD,KC_S), KC_T, LT(FSYM,KC_F), KC_G,
- OSM(MOD_LSFT), KC_Z, KC_X, KC_C, KC_V, SFT_T(KC_B), KC_TAB,
- TD(CTLALL), OSL(ADJUST), TD(GUCTL), TD(SGCA), TD(AGC),
- OS_CMD, OS_CTL ,
- KC_ESCAPE,
- KC_BSPC, TD(SHENT), OSL(EDIT),
- KC_F5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC,
- TO(NUMPAD), KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS,
- KC_H, LT(JSYM,KC_J), KC_E, KC_L, LT(EDIT,KC_SCLN), KC_QUOTE,
- CTL_T(KC_B), KC_N, KC_M, KC_COMM, KC_DOT, LT(MEDIA,KC_SLSH), KC_MS_BTN1,
- TD(GCA), TD(CTLALL), LGUI(KC_GRV), KC_RBRC, KC_MS_BTN1,
- OS_ALT, KC_TAB,
- KC_DEL,
- KC_CAPS, SFT_T(KC_ENT), KC_SPC),
-
- [NUMPAD] = LAYOUT_ergodox(VRSN, KC_F11, KC_F12, KC_F1, KC_F2, KC_F3, _______,
- _______, _______, KC_PGUP, KC_UP, KC_PGDN, _______, TO(QWERTY),
- _______, _______, KC_LEFT, KC_DOWN, KC_RIGHT, _______,
- _______, LGUI(KC_Z), LGUI(KC_X), LGUI(KC_C), LGUI(KC_V), LGUI(KC_Y), _______,
- _______, _______, _______, _______, _______,
- _______, _______, KC_PSCR, _______, _______, TO(QWERTY),
-
- _______, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, _______,
- TO(EDIT), _______, KC_7, KC_8, KC_9, KC_KP_MINUS, _______,
- _______, KC_4, KC_5, KC_6, KC_KP_PLUS, _______,
- _______, KC_COMM, KC_1, KC_2, KC_3, KC_KP_SLASH, _______,
- KC_0, KC_DOT, KC_EQUAL, KC_KP_ASTERISK, _______,
- _______, _______, KC_INSERT, TO(EDIT), _______, _______),
-
- [EDIT] = LAYOUT_ergodox(_______, _______, KC_MS_WH_UP, KC_MS_BTN1, KC_MS_BTN2, _______, _______,
- _______, LGUI(LALT(KC_ESCAPE)), KC_MS_WH_DOWN, LALT(S(KC_LEFT)), LALT(S(KC_RIGHT)), _______, TO(NUMPAD),
- _______, _______, LGUI(KC_GRV), LALT(KC_LEFT), LALT(KC_RIGHT), _______,
- LCTL(KC_RIGHT), LGUI(KC_Z), LGUI(KC_X), LGUI(KC_C), LGUI(KC_V), LGUI(KC_Y), _______,
- _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, TO(NUMPAD),
- _______, _______, _______, S(KC_UP), _______, _______, KC_DELETE,
- TO(QWERTY), LGUI(KC_T), KC_PGUP, KC_UP, KC_PGDN, KC_PSCR, _______,
- LGUI(KC_LEFT), KC_LEFT, KC_DOWN, KC_RIGHT, LGUI(KC_RIGHT), _______,
- _______, S(LGUI(KC_LEFT)), S(KC_LEFT), S(KC_DOWN), S(KC_RIGHT), S(LGUI(KC_RIGHT)), LCTL(KC_LEFT),
- _______, _______, FORM_GET, FORM_PUT, _______,
- _______, _______, _______, S(KC_F10), _______, _______),
-
- [FSYM] = LAYOUT_ergodox(_______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______,
- _______, _______, KC_TILD, KC_EXLM, _______, _______,
- LCTL(KC_RIGHT), _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______,
- _______, _______, _______, DEL_WRD, _______, _______,
- _______, _______, _______, _______, _______, _______, _______,
- _______, KC_CIRC, KC_AMPR , KC_ASTR, KC_GRV , _______, _______,
- KC_EQUAL, KC_MINUS, KC_UNDS, KC_BSLS, KC_COLON, KC_DQT ,
- _______, _______, KC_PLUS , KC_SLSH, KC_PIPE, _______ , _______,
- _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______),
-
- [JSYM] = LAYOUT_ergodox(_______, _______, _______, _______, _______, _______, _______,
- _______, KC_GRV, KC_AT , KC_LCBR, KC_RCBR, _______, _______,
- _______, KC_HASH, KC_DLR , KC_LPRN, KC_RPRN, KC_LEFT,
- _______, KC_PERC, KC_CIRC, KC_LBRC, KC_RBRC, _______, _______,
- _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______,
- _______, _______, KC_QUES, KC_SLSH, KC_COLON, _______,
- _______, _______, _______, _______, _______, _______, LCTL(KC_LEFT),
- _______, _______, _______, _______, _______,
- _______, _______, _______, _______, LGUI(KC_DOWN), _______),
-
- [MEDIA] = LAYOUT_ergodox(_______, _______, KC_MS_BTN4, _______, KC_MS_BTN5, _______, _______,
- _______, KC_MS_WH_UP, KC_MS_WH_LEFT, KC_MS_UP, KC_MS_WH_RIGHT, _______, _______,
- _______, KC_MS_WH_DOWN, KC_MS_LEFT, KC_MS_DOWN, KC_MS_RIGHT, _______,
- _______, _______, KC_MS_ACCEL0, KC_MS_ACCEL1, KC_MS_ACCEL2, _______, _______,
- _______, _______, _______, _______, KC_MS_BTN3,
- _______, _______, _______, KC_MS_BTN1, KC_MS_BTN2, _______,
- _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______,
- _______, _______, KC_AUDIO_VOL_DOWN, KC_AUDIO_MUTE, KC_AUDIO_VOL_UP, _______, _______,
- KC_MEDIA_REWIND, KC_MEDIA_FAST_FORWARD, _______, _______, _______,
- _______, _______, _______, _______, KC_MS_BTN1, KC_MEDIA_PLAY_PAUSE),
-
- [ADJUST] = LAYOUT_ergodox(_______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______,
- _______, TO(EDIT), TO(NUMPAD), TO(FSYM), TO(JSYM), TO(MEDIA),
- _______, _______, _______, _______, _______, _______, _______,
- _______, TO(QWERTY), DF(MINIMAK4), DF(QWERTY), _______,
- _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______),
-
-};
-
-bool process_record_user(uint16_t keycode, keyrecord_t *record) {
- switch (keycode) {
- case VRSN:
- if (record->event.pressed) {
- SEND_STRING (QMK_KEYBOARD "/" QMK_KEYMAP " @ " QMK_VERSION);
- }
- return false;
- case FORM_GET:
- if (record->event.pressed) {
- tap_code(KC_BTN1);
- tap_code16(G(KC_A));
- tap_code16(G(KC_C));
- }
- return false;
- case FORM_PUT:
- if (record->event.pressed) {
- tap_code(KC_BTN1);
- tap_code16(G(KC_A));
- tap_code16(G(KC_V));
- }
- return false;
- }
- return true;
-}
-
-layer_state_t layer_state_set_user(layer_state_t state) {
- switch (get_highest_layer(state)) {
- case QWERTY:
- ergodox_right_led_1_off();
- ergodox_right_led_2_off();
- ergodox_right_led_3_off();
- break;
- case NUMPAD:
- ergodox_right_led_1_on();
- ergodox_right_led_2_off();
- ergodox_right_led_3_off();
- break;
- case EDIT:
- ergodox_right_led_1_off();
- ergodox_right_led_2_on();
- ergodox_right_led_3_off();
- break;
- case FSYM:
- ergodox_right_led_1_on();
- ergodox_right_led_2_on();
- ergodox_right_led_3_off();
- break;
- case JSYM:
- ergodox_right_led_1_on();
- ergodox_right_led_2_off();
- ergodox_right_led_3_on();
- break;
- case MEDIA:
- ergodox_right_led_1_off();
- ergodox_right_led_2_on();
- ergodox_right_led_3_on();
- break;
- case ADJUST:
- ergodox_right_led_1_on();
- ergodox_right_led_2_on();
- ergodox_right_led_3_on();
- break;
- }
- return state;
-}
diff --git a/keyboards/ergodox_ez/keymaps/rmw/keymap-win.c b/keyboards/ergodox_ez/keymaps/rmw/keymap-win.c
deleted file mode 100644
index aada71fd4f..0000000000
--- a/keyboards/ergodox_ez/keymaps/rmw/keymap-win.c
+++ /dev/null
@@ -1,159 +0,0 @@
-#include "rmw.h"
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
- [QWERTY] = LAYOUT_ergodox( // LEFT HAND
- TD(FRBK), KC_1, KC_2, KC_3, KC_4, KC_5, KC_F4,
- KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, TO(EDIT),
- OSL(EDIT), KC_A, LT(NUMPAD,KC_S), KC_D, LT(FSYM,KC_F), KC_G,
- OSM(MOD_LSFT), KC_Z, KC_X, KC_C, KC_V, SFT_T(KC_B), KC_TAB,
- TD(CTLAND), OSL(ADJUST), TD(SCAG), TD(TDGUI), TD(ACG),
- OS_ALT, OS_CTL ,
- KC_ESCAPE,
- KC_BSPC, TD(SHENT), OSL(EDIT),
-
- // RIGHT HAND
- KC_F5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC,
- TO(NUMPAD), KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS,
- KC_H, LT(JSYM,KC_J), KC_K, KC_L, LT(EDIT,KC_SCLN), KC_QUOTE,
- CTL_T(KC_B), KC_N, KC_M, KC_COMM, KC_DOT, LT(MEDIA,KC_SLSH), TD(SHENT),
- TD(CAG), TD(TDGUI), KC_LBRC, KC_RBRC, KC_MS_BTN1,
- OS_ALT, KC_TAB,
- KC_DEL,
- KC_CAPS, SFT_T(KC_ENT), KC_SPC),
-
-
- [NUMPAD] = LAYOUT_ergodox(VRSN, KC_F11, KC_F12, KC_F1, KC_F2, KC_F3, _______,
- _______, _______, KC_PGUP, KC_UP, KC_PGDN, _______, TO(0),
- _______, _______, KC_LEFT, KC_DOWN, KC_RIGHT, _______,
- _______, LCTL(KC_Z), LCTL(KC_X), LCTL(KC_C), LCTL(KC_V), LCTL(KC_Y), _______,
- _______, _______, _______, _______, _______,
- _______, _______, KC_PSCR, _______, _______, TO(0),
-
- _______, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, _______,
- TO(EDIT), _______, KC_7, KC_8, KC_9, KC_KP_MINUS, _______,
- _______, KC_4, KC_5, KC_6, KC_KP_PLUS, _______,
- _______, KC_COMM, KC_1, KC_2, KC_3, KC_KP_SLASH, _______,
- KC_0, KC_DOT, KC_EQUAL, KC_KP_ASTERISK, _______,
- _______, _______, KC_INSERT, TO(EDIT), _______, _______),
-
- [EDIT] = LAYOUT_ergodox(KC_ESCAPE, LALT(LCTL(KC_DELETE)), KC_MS_WH_UP, KC_MS_BTN1, KC_MS_BTN2, _______, _______,
- _______, LCTL(S(KC_ESCAPE)), KC_MS_WH_DOWN, LCTL(S(KC_LEFT)), LCTL(S(KC_RIGHT)), _______, TO(NUMPAD),
- _______, _______, KC_LEFT, LCTL(KC_LEFT), LCTL(KC_RIGHT), _______,
- _______, LCTL(KC_Z), LCTL(KC_X), LCTL(KC_C), LCTL(KC_V), LCTL(KC_Y), _______,
- _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, TO(NUMPAD),
- _______, _______, _______, S(KC_UP), _______, _______, KC_DELETE,
- TO(0), LCTL(KC_T), KC_PGUP, KC_UP, KC_PGDN, KC_PSCR, _______,
- KC_HOME, KC_LEFT, KC_DOWN, KC_RIGHT, KC_END, _______,
- _______, S(KC_HOME), S(KC_LEFT), S(KC_DOWN), S(KC_RIGHT), S(KC_END), _______,
- _______, _______, _______, _______, _______,
- _______, _______, _______, S(KC_F10), _______, _______),
-
- [FSYM] = LAYOUT_ergodox(_______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______,
- _______, _______, KC_TILD, KC_EXLM, _______, _______,
- _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______,
- _______, KC_CIRC, KC_AMPR , KC_ASTR, KC_GRV , _______, _______,
- KC_EQUAL, KC_MINUS, KC_UNDS, KC_BSLS, KC_COLON, KC_DQT ,
- _______, _______, KC_PLUS , KC_SLSH, KC_PIPE, _______ , _______,
- _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______),
-
- [JSYM] = LAYOUT_ergodox(_______, _______, _______, _______, _______, _______, _______,
- _______, KC_GRV, KC_AT , KC_LCBR, KC_RCBR, _______, _______,
- _______, KC_HASH, KC_DLR , KC_LPRN, KC_RPRN, KC_LEFT,
- _______, KC_PERC, KC_CIRC, KC_LBRC, KC_RBRC, _______, _______,
- _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______,
- _______, _______, KC_QUES, KC_SLSH, KC_COLON, _______,
- _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______),
-
- [MEDIA] = LAYOUT_ergodox(_______, _______, KC_MS_BTN4, _______, KC_MS_BTN5, _______, _______,
- _______, KC_MS_WH_UP, KC_MS_WH_LEFT, KC_MS_UP, KC_MS_WH_RIGHT, _______, _______,
- _______, KC_MS_WH_DOWN, KC_MS_LEFT, KC_MS_DOWN, KC_MS_RIGHT, _______,
- _______, _______, KC_MS_ACCEL0, KC_MS_ACCEL1, KC_MS_ACCEL2, _______, _______,
- _______, _______, _______, _______, KC_MS_BTN3,
- _______, _______, _______, KC_MS_BTN1, KC_MS_BTN2, _______,
- _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______,
- _______, _______, KC_AUDIO_VOL_DOWN, KC_AUDIO_MUTE, KC_AUDIO_VOL_UP, _______, _______,
- KC_MEDIA_PREV_TRACK, KC_MEDIA_NEXT_TRACK, _______, _______, _______,
- _______, _______, _______, _______, KC_MS_BTN1, KC_MEDIA_PLAY_PAUSE),
-
- [ADJUST] = LAYOUT_ergodox(_______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______,
- _______, TO(EDIT), TO(NUMPAD), TO(FSYM), TO(JSYM), TO(MEDIA),
- _______, _______, _______, _______, _______, _______, _______,
- _______, TO(QWERTY), _______, _______, _______,
- _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______),
-
-};
-
-bool process_record_user(uint16_t keycode, keyrecord_t *record) {
- switch (keycode) {
- // dynamically generate these.
- case VRSN:
- if (record->event.pressed) {
- SEND_STRING (QMK_KEYBOARD "/" QMK_KEYMAP " @ " QMK_VERSION);
- }
- return false;
- }
- return true;
-}
-
-
-layer_state_t layer_state_set_user(layer_state_t state) {
- switch (get_highest_layer(state)) {
- case QWERTY:
- ergodox_right_led_1_off();
- ergodox_right_led_2_off();
- ergodox_right_led_3_off();
- break;
- case NUMPAD:
- ergodox_right_led_1_on();
- ergodox_right_led_2_off();
- ergodox_right_led_3_off();
- break;
- case EDIT:
- ergodox_right_led_1_off();
- ergodox_right_led_2_on();
- ergodox_right_led_3_off();
- break;
- case FSYM:
- ergodox_right_led_1_on();
- ergodox_right_led_2_on();
- ergodox_right_led_3_off();
- break;
- case JSYM:
- ergodox_right_led_1_on();
- ergodox_right_led_2_off();
- ergodox_right_led_3_on();
- break;
- case MEDIA:
- ergodox_right_led_1_off();
- ergodox_right_led_2_on();
- ergodox_right_led_3_on();
- break;
- case ADJUST:
- ergodox_right_led_1_on();
- ergodox_right_led_2_on();
- ergodox_right_led_3_on();
- break;
- }
- return state;
-}
diff --git a/keyboards/ergodox_ez/keymaps/rmw/keymap.c b/keyboards/ergodox_ez/keymaps/rmw/keymap.c
deleted file mode 100644
index d2cff99429..0000000000
--- a/keyboards/ergodox_ez/keymaps/rmw/keymap.c
+++ /dev/null
@@ -1,13 +0,0 @@
-#include QMK_KEYBOARD_H
-#include "version.h"
-
-#define LONGPRESS_DELAY 180
-#define LAYER_TOGGLE_DELAY 350
-
-#ifdef MACOSX
-#include "keymap-mac.c"
-#endif
-
-#ifdef WINDOWS
-#include "keymap-win.c"
-#endif
diff --git a/keyboards/ergodox_ez/keymaps/rmw/readme.md b/keyboards/ergodox_ez/keymaps/rmw/readme.md
deleted file mode 100644
index 36e0d1de00..0000000000
--- a/keyboards/ergodox_ez/keymaps/rmw/readme.md
+++ /dev/null
@@ -1,11 +0,0 @@
-# RMW Ergodox_EZ Layout
-
-This is the keymap I use on the Ergodox_EZ I use for work. I write reports and code in a variety of languages on this board and the various layers provide plenty of flexibility for navigating, editing text, and writing code and prose.
-
-I switched to a Mac in the past year, so my keymap now mostly gets used in the Mac mode; simply edit the keymap.c file to uncomment \#include keymap-win.c and comment out \#include keymap-mac.c to change back to the Windows version, but I haven't been updating that map as I've made changes moving forward on the Mac version.
-
-## The theory of this keymap
-
-The base layer is either QWERTY or MINIMAK4, as desired. Overlaid on that base layer are various layers triggered by one-shots, TOs, and LTs. Tapdances are used to cram lots of mods into few keys and provide freedom to hit combinations with either hand. Mods and layer things are one-shot (where reasonable) because I prefer that.
-
-An EDIT layer provides text navigation, selection, and editing capabilities in home position. The EXCEL layer offers a numpad and various spreadsheet-useful navigations and operations. Holding S will put the numpad under your right hand in home position. Keys F and J offer various useful symbols (mostly) on the opposite hand when held, including \[\]\(\)\{\} under the left pointer and middle fingers on bottom, middle, and top rows respectively. The MEDIA layer provides media controls (obvs) and some mouse movement and nav, in case I don't feel like reaching for the trackball/trackpad/mouse.
diff --git a/keyboards/ergodox_ez/keymaps/rmw/rules.mk b/keyboards/ergodox_ez/keymaps/rmw/rules.mk
deleted file mode 100644
index 31e0fcf293..0000000000
--- a/keyboards/ergodox_ez/keymaps/rmw/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-TAP_DANCE_ENABLE=yes
diff --git a/keyboards/ergodox_ez/keymaps/steno/keymap.c b/keyboards/ergodox_ez/keymaps/steno/keymap.c
index 0e5d7e3a22..84c18fbd95 100644
--- a/keyboards/ergodox_ez/keymaps/steno/keymap.c
+++ b/keyboards/ergodox_ez/keymaps/steno/keymap.c
@@ -1,7 +1,4 @@
#include QMK_KEYBOARD_H
-#include "debug.h"
-#include "action_layer.h"
-#include "keymap_steno.h"
#define BASE 0 // default layer
#define SYMB 1 // symbols
diff --git a/keyboards/ergodox_ez/led_i2c.c b/keyboards/ergodox_ez/led_i2c.c
index fe40ab797e..23ef91b74f 100644
--- a/keyboards/ergodox_ez/led_i2c.c
+++ b/keyboards/ergodox_ez/led_i2c.c
@@ -22,7 +22,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
# include "ergodox_ez.h"
-void rgblight_call_driver(LED_TYPE *led, uint8_t led_num) {
+void rgblight_call_driver(rgb_led_t *led, uint8_t led_num) {
i2c_init();
i2c_start(0x84, ERGODOX_EZ_I2C_TIMEOUT);
int i = 0;
diff --git a/keyboards/ergodox_ez/rules.mk b/keyboards/ergodox_ez/rules.mk
index dc72f6385c..bba3bd86ae 100644
--- a/keyboards/ergodox_ez/rules.mk
+++ b/keyboards/ergodox_ez/rules.mk
@@ -21,7 +21,7 @@ RGB_MATRIX_ENABLE = no # enable later
# project specific files
SRC += matrix.c \
led_i2c.c
-QUANTUM_LIB_SRC += i2c_master.c
+I2C_DRIVER_REQUIRED = yes
# Disable unsupported hardware
AUDIO_SUPPORTED = no
diff --git a/keyboards/ergodox_stm32/rules.mk b/keyboards/ergodox_stm32/rules.mk
index 5b86324f9a..5481eef1a2 100644
--- a/keyboards/ergodox_stm32/rules.mk
+++ b/keyboards/ergodox_stm32/rules.mk
@@ -16,4 +16,4 @@ CUSTOM_MATRIX = yes # Custom matrix file
UNICODE_ENABLE = yes # Unicode
SRC += matrix.c
-QUANTUM_LIB_SRC += i2c_master.c
+I2C_DRIVER_REQUIRED = yes
diff --git a/keyboards/ergoslab/keymaps/default/keymap.c b/keyboards/ergoslab/keymaps/default/keymap.c
index 093d586eba..e2a9f0b322 100644
--- a/keyboards/ergoslab/keymaps/default/keymap.c
+++ b/keyboards/ergoslab/keymaps/default/keymap.c
@@ -16,7 +16,7 @@ enum layer_names {
#endif
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [BASE] = LAYOUT_ergoslab(
+ [BASE] = LAYOUT(
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,
@@ -24,7 +24,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_LBRC, KC_LPRN, KC_ESC, MO(MDIA),KC_RGUI, KC_TAB, TG(MOUS), KC_BSPC, KC_RPRN, KC_RBRC
),
- [MDIA] = LAYOUT_ergoslab(
+ [MDIA] = LAYOUT(
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_HOME, KC_PGDN, KC_PGUP, KC_END,
_______, _______, _______, _______, _______, RGB_TOG, _______, _______, _______, KC_MUTE,
@@ -32,7 +32,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______
),
- [NUMB] = LAYOUT_ergoslab(
+ [NUMB] = LAYOUT(
KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_BSLS, KC_PIPE,
KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0,
KC_UNDS, KC_MINS, KC_PLUS, KC_EQL, KC_GRV, KC_COLN, KC_TILD, _______, _______, _______,
@@ -40,7 +40,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______
),
- [MOUS] = LAYOUT_ergoslab(
+ [MOUS] = LAYOUT(
_______, _______, KC_MS_U, _______, _______, _______, _______, KC_WH_U, _______, _______,
_______, KC_MS_L, KC_MS_D, KC_MS_R, _______, _______, KC_BTN3, KC_WH_D, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
diff --git a/keyboards/ergoslab/rev1/info.json b/keyboards/ergoslab/rev1/info.json
index e92dd4dccc..51c522043b 100644
--- a/keyboards/ergoslab/rev1/info.json
+++ b/keyboards/ergoslab/rev1/info.json
@@ -24,8 +24,11 @@
},
"processor": "atmega32u4",
"bootloader": "caterina",
+ "layout_aliases": {
+ "LAYOUT_ergoslab": "LAYOUT"
+ },
"layouts": {
- "LAYOUT_ergoslab": {
+ "LAYOUT": {
"layout": [
{"matrix": [0, 0], "x": 0, "y": 0.625},
{"matrix": [0, 1], "x": 1, "y": 0.125},
diff --git a/keyboards/ergotravel/keymaps/jarred/config.h b/keyboards/ergotravel/keymaps/jarred/config.h
deleted file mode 100644
index c2948493ed..0000000000
--- a/keyboards/ergotravel/keymaps/jarred/config.h
+++ /dev/null
@@ -1,26 +0,0 @@
-/*
-Copyright 2017 Pierre Constantineau <jpconstantineau@gmail.com>
-
-This program is free software: you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program. If not, see <http://www.gnu.org/licenses/>.
-*/
-
-#pragma once
-
-#define USE_I2C
-
-/* Select hand configuration */
-
-#define MASTER_LEFT
-// #define MASTER_RIGHT
-// #define EE_HANDS
diff --git a/keyboards/ergotravel/keymaps/jarred/keymap.c b/keyboards/ergotravel/keymaps/jarred/keymap.c
deleted file mode 100644
index adedebe6ef..0000000000
--- a/keyboards/ergotravel/keymaps/jarred/keymap.c
+++ /dev/null
@@ -1,50 +0,0 @@
-/* Copyright 2018 Jarred Steenvoorden
- *
- * 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 "jarred.h"
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [_QW] = LAYOUT_ergotravel_grid_wrapper(
- QWERTY_L1, KC_NO, KC_NO, QWERTY_R1,
- QWERTY_L2, KC_NO, KC_NO, QWERTY_R2,
- QWERTY_L3, KC_NO, KC_NO, QWERTY_R3,
- QWERTY_4_12),
-
- [_LW] = LAYOUT_ergotravel_grid_wrapper(
- LOWER_L1, KC_NO, KC_NO, LOWER_R1,
- LOWER_L2, KC_NO, KC_NO, LOWER_R2,
- LOWER_L3, KC_NO, KC_NO, LOWER_R3,
- LOWER_4_12),
-
- [_NV] = LAYOUT_ergotravel_grid_wrapper(
- NAV_L1, KC_NO, KC_NO, NAV_R1,
- NAV_L2, KC_NO, KC_NO, NAV_R2,
- NAV_L3, KC_NO, KC_NO, NAV_R3,
- NAV_4_12),
-
- [_NP] = LAYOUT_ergotravel_grid_wrapper(
- NUMPAD_L1, KC_NO, KC_NO, NUMPAD_R1,
- NUMPAD_L2, KC_NO, KC_NO, NUMPAD_R2,
- NUMPAD_L3, KC_NO, KC_NO, NUMPAD_R3,
- NUMPAD_4_12),
-
- [_MS] = LAYOUT_ergotravel_grid_wrapper(
- MOUSE_L1, KC_NO, KC_NO, MOUSE_R1,
- MOUSE_L2, KC_NO, KC_NO, MOUSE_R2,
- MOUSE_L3, KC_NO, KC_NO, MOUSE_R3,
- MOUSE_4_12)
-};
diff --git a/keyboards/ergotravel/keymaps/manna-harbour_miryoku/config.h b/keyboards/ergotravel/keymaps/manna-harbour_miryoku/config.h
deleted file mode 100644
index 40cf1e3752..0000000000
--- a/keyboards/ergotravel/keymaps/manna-harbour_miryoku/config.h
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright 2019 Manna Harbour
-// https://github.com/manna-harbour/miryoku
-
-// 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 XXX KC_NO
-
-#define LAYOUT_miryoku( \
- 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, \
- N30, N31, K32, K33, K34, K35, K36, K37, N38, N39 \
-) \
-LAYOUT( \
-XXX, K00, K01, K02, K03, K04, XXX, XXX, K05, K06, K07, K08, K09, XXX, \
-XXX, K10, K11, K12, K13, K14, XXX, XXX, K15, K16, K17, K18, K19, XXX, \
-XXX, K20, K21, K22, K23, K24, XXX, XXX, K25, K26, K27, K28, K29, XXX, \
-XXX, XXX, XXX, K32, K33, K34, K35, K36, K37, XXX, XXX, XXX \
-)
diff --git a/keyboards/ergotravel/keymaps/manna-harbour_miryoku/keymap.c b/keyboards/ergotravel/keymaps/manna-harbour_miryoku/keymap.c
deleted file mode 100644
index dbab7f9820..0000000000
--- a/keyboards/ergotravel/keymaps/manna-harbour_miryoku/keymap.c
+++ /dev/null
@@ -1,4 +0,0 @@
-// Copyright 2019 Manna Harbour
-// https://github.com/manna-harbour/miryoku
-
-// 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/>.
diff --git a/keyboards/ergotravel/keymaps/rs/config.h b/keyboards/ergotravel/keymaps/rs/config.h
deleted file mode 100644
index 53487d0f92..0000000000
--- a/keyboards/ergotravel/keymaps/rs/config.h
+++ /dev/null
@@ -1,40 +0,0 @@
-/*
-Copyright 2017 Pierre Constantineau <jpconstantineau@gmail.com>
-
-This program is free software: you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program. If not, see <http://www.gnu.org/licenses/>.
-*/
-
-#pragma once
-
-/* Select hand configuration */
-
-#define MASTER_LEFT
-// #define MASTER_RIGHT
-// #define EE_HANDS
-
-#undef RGBLED_NUM
-#define RGBLIGHT_EFFECT_BREATHING
-#define RGBLIGHT_EFFECT_RAINBOW_MOOD
-#define RGBLIGHT_EFFECT_RAINBOW_SWIRL
-#define RGBLIGHT_EFFECT_SNAKE
-#define RGBLIGHT_EFFECT_KNIGHT
-#define RGBLIGHT_EFFECT_CHRISTMAS
-#define RGBLIGHT_EFFECT_STATIC_GRADIENT
-#define RGBLIGHT_EFFECT_RGB_TEST
-#define RGBLIGHT_EFFECT_ALTERNATING
-#define RGBLIGHT_EFFECT_TWINKLE
-#define RGBLED_NUM 12
-#define RGBLIGHT_HUE_STEP 8
-#define RGBLIGHT_SAT_STEP 8
-#define RGBLIGHT_VAL_STEP 8
diff --git a/keyboards/ergotravel/keymaps/rs/keymap.c b/keyboards/ergotravel/keymaps/rs/keymap.c
deleted file mode 100644
index f8c6de56bc..0000000000
--- a/keyboards/ergotravel/keymaps/rs/keymap.c
+++ /dev/null
@@ -1,38 +0,0 @@
-#include QMK_KEYBOARD_H
-#include "rs.h"
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [_QWERTY] = LAYOUT(
- //,----+----+----+----+----+----+----. ,----+----+----+----+----+----+----.
- KC_TAB , KC_Q , KC_W , KC_E , KC_R , KC_T , KC_GRV, KC_BSLS, KC_Y , KC_U , KC_I , KC_O , KC_P ,KC_EQL ,
- //|----+----+----+----+----+----+----| |----+----+----+----+----+----+----|
- KC_ESCC, KC_A , KC_S , KC_D , KC_F , KC_G ,KC_PIPE, KC_MINS, 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_SPC, KC_BSPC, KC_N , KC_M ,KC_COMM,KC_DOT ,KC_SLSH,KC_ENTS,
- //|----+----+----+----+----+----+----. .----+----+----+----+----+----+----|
- KC_FN ,_______,KC_LCTL,KC_LALT,KC_LGUI, KC_SPC, KC_BSPC, KC_CODE,KC_LEFT, KC_UP ,KC_DOWN,KC_RIGHT
- //`----+----+----+--+-+----/----/ \----\----+----+----+----+----'
- ),
- [_CODE] = LAYOUT(
- //,----+----+----+----+----+----+----. ,----+----+----+----+----+----+----.
- KC_GRV ,KC_EXLM, KC_AT ,KC_HASH, KC_DLR,KC_PERC,_______, _______,KC_CIRC,KC_LPLT,KC_ASTR,KC_RPGT,KC_NEQL,_______,
- //|----+----+----+----+----+----+----| |----+----+----+----+----+----+----|
- _______, KC_1 , KC_2 , KC_3 , KC_4 , KC_5 ,_______, _______,KC_MINS,KC_LBRC, KC_UP ,KC_RBRC,_______,KC_BSLS,
- //|----+----+----+----+----+----+----| |----+----+----+----+----+----+----|
- _______, KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , KC_DOT, _______,KC_AMPR,KC_LEFT,KC_DOWN,KC_RGHT,_______,KC_PIPE,
- //|----+----+----+----+----+----+----. .----+----+----+----+----+----+----|
- _______,_______,_______,_______,_______,_______, _______,_______,_______,_______,_______,_______
- //`----+----+----+----+----/----/ \----\----+----+----+----+----'
- ),
- [_FN] = LAYOUT(
- //,----+----+----+----+----+----+----. ,----+----+----+----+----+----+----.
- _______, KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_F5 ,_______, _______, KC_F6 , KC_F7 , KC_F8 , KC_F9 , KC_F10,KC_F11 ,
- //|----+----+----+----+----+----+----| |----+----+----+----+----+----+----|
- _______,_______,_______,_______,_______,_______,KC_BRMU, _______,_______,_______,KC_PGUP,_______,_______,_______,
- //|----+----+----+----+----+----+----| |----+----+----+----+----+----+----|
- _______,_______,_______,_______,_______, KC_RST,KC_BRMD, KC_VOLU,_______,KC_CTRA,KC_PGDN,KC_CTRE,_______,_______,
- //|----+----+----+----+----+----+----. .----+----+----+----+----+----+----|
- _______,_______,_______,_______,_______,_______, KC_VOLD,KC_MUTE,_______,_______,_______,_______
- //`----+----+----+----+----/----/ \----\----+----+----+----+----'
- ),
-};
diff --git a/keyboards/ergotravel/keymaps/rs/readme.md b/keyboards/ergotravel/keymaps/rs/readme.md
deleted file mode 100644
index d23ab66877..0000000000
--- a/keyboards/ergotravel/keymaps/rs/readme.md
+++ /dev/null
@@ -1 +0,0 @@
-See [rs readme](../../../../users/rs/readme.md). \ No newline at end of file
diff --git a/keyboards/ergotravel/keymaps/yanfali/config.h b/keyboards/ergotravel/keymaps/yanfali/config.h
deleted file mode 100644
index 194503df2d..0000000000
--- a/keyboards/ergotravel/keymaps/yanfali/config.h
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
-Copyright 2017 Pierre Constantineau <jpconstantineau@gmail.com>
-
-This program is free software: you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program. If not, see <http://www.gnu.org/licenses/>.
-*/
-
-#pragma once
-
-/* Select hand configuration */
-
-#define MASTER_LEFT
-// #define MASTER_RIGHT
-// #define EE_HANDS
-
-#undef RGBLED_NUM
-#define RGBLIGHT_EFFECT_BREATHING
-#define RGBLIGHT_EFFECT_RAINBOW_MOOD
-#define RGBLIGHT_EFFECT_RAINBOW_SWIRL
-#define RGBLIGHT_EFFECT_SNAKE
-#define RGBLIGHT_EFFECT_KNIGHT
-#define RGBLIGHT_EFFECT_CHRISTMAS
-#define RGBLIGHT_EFFECT_STATIC_GRADIENT
-#define RGBLIGHT_EFFECT_RGB_TEST
-#define RGBLIGHT_EFFECT_ALTERNATING
-#define RGBLIGHT_EFFECT_TWINKLE
-#define RGBLED_NUM 12
-#define RGBLIGHT_HUE_STEP 8
-#define RGBLIGHT_SAT_STEP 8
-#define RGBLIGHT_VAL_STEP 8
-
-#define IS_COMMAND() (get_mods() == (MOD_BIT(KC_LSFT) | MOD_BIT(KC_LGUI)))
diff --git a/keyboards/ergotravel/keymaps/yanfali/keymap.c b/keyboards/ergotravel/keymaps/yanfali/keymap.c
deleted file mode 100644
index b2b62484a9..0000000000
--- a/keyboards/ergotravel/keymaps/yanfali/keymap.c
+++ /dev/null
@@ -1,108 +0,0 @@
-#include QMK_KEYBOARD_H
-
-extern keymap_config_t keymap_config;
-
-#define _QWERTY 0
-#define _LOWER 1
-#define _RAISE 2
-#define _ADJUST 16
-
-enum custom_keycodes {
- QWERTY = SAFE_RANGE,
- LOWER,
- RAISE,
- ADJUST,
-};
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
- [_QWERTY] = LAYOUT(
- //,---------------------+--------+--------+--------+--------+--------+--------. ,--------+--------+--------+--------+--------+--------+--------.
- KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_LBRC, KC_RBRC, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_MINUS,
- //|---------------------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
- MT(MOD_LCTL, KC_ESC), KC_A, KC_S, KC_D, KC_F, KC_G, KC_LCBR, KC_RCBR, 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_NO, KC_NO, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT,
- //|---------------------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
- ADJUST, ADJUST, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_BSPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT
- //`---------------------+--------+--------+--------+--------+--------+--------/ \--------+--------+--------+--------+--------+--------+--------'
- ),
-
- [_LOWER] = LAYOUT(
- //,--------+--------+--------+--------+--------+--------+--------. ,--------+--------+--------+--------+--------+--------+--------.
- KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, _______, _______, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC,
- //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
- _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, _______, _______, KC_Y, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE,
- //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
- KC_CAPS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, _______, _______, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT,
- //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
- _______, _______, _______, _______, _______, _______, _______, RAISE, _______, _______, _______, _______
- //`--------+--------+--------+--------+--------+--------+--------/ \--------+--------+--------+--------+--------+--------+--------'
- ),
-
-
- [_RAISE] = LAYOUT(
- //,--------+--------+--------+--------+--------+--------+--------. ,--------+--------+--------+--------+--------+--------+--------.
- KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, _______, _______, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL,
- //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
- _______, KC_Q, KC_W, KC_E, KC_R, KC_T, _______, _______, KC_Y, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS,
- //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
- _______, KC_Z, KC_X, KC_C, KC_V, KC_B, _______, _______, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT,
- //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
- _______, _______, _______, _______, _______, _______, _______, RAISE, _______, _______, _______, _______
- //`--------+--------+--------+--------+--------+--------+--------/ \--------+--------+--------+--------+--------+--------+--------'
- ),
-
- [_ADJUST] = LAYOUT(
- //,--------+--------+--------+--------+--------+--------+--------. ,--------+--------+--------+--------+--------+--------+--------.
- _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, QK_BOOT,
- //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
- _______, _______, _______, _______, _______, _______, _______, RAISE, _______, _______, _______, _______
- //`--------+--------+--------+--------+--------+--------+--------/ \--------+--------+--------+--------+--------+--------+--------'
- )
-
-};
-
-
-
-
-
-
-
-bool process_record_user(uint16_t keycode, keyrecord_t *record) {
- switch (keycode) {
- case LOWER:
- if (record->event.pressed) {
- layer_on(_LOWER);
- update_tri_layer(_LOWER, _RAISE, _ADJUST);
- } else {
- layer_off(_LOWER);
- update_tri_layer(_LOWER, _RAISE, _ADJUST);
- }
- return false;
- break;
- case RAISE:
- if (record->event.pressed) {
- layer_on(_RAISE);
- update_tri_layer(_LOWER, _RAISE, _ADJUST);
- } else {
- layer_off(_RAISE);
- update_tri_layer(_LOWER, _RAISE, _ADJUST);
- }
- return false;
- break;
- case ADJUST:
- if (record->event.pressed) {
- layer_on(_ADJUST);
- } else {
- layer_off(_ADJUST);
- }
- return false;
- break;
- }
- return true;
-}
diff --git a/keyboards/ergotravel/keymaps/yanfali/rules.mk b/keyboards/ergotravel/keymaps/yanfali/rules.mk
deleted file mode 100644
index ab3621cd7e..0000000000
--- a/keyboards/ergotravel/keymaps/yanfali/rules.mk
+++ /dev/null
@@ -1,7 +0,0 @@
-BOOTLOADER = qmk-dfu
-
-BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite
-CONSOLE_ENABLE = yes # Console for debug
-COMMAND_ENABLE = yes # Commands for debug and configuration
-RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight.
-LTO_ENABLE = yes
diff --git a/keyboards/evolv/info.json b/keyboards/evolv/info.json
index dc00260cf3..4274e9e437 100644
--- a/keyboards/evolv/info.json
+++ b/keyboards/evolv/info.json
@@ -40,8 +40,12 @@
},
"processor": "STM32F072",
"bootloader": "stm32-dfu",
+ "layout_aliases": {
+ "LAYOUT_evolv_ansi": "LAYOUT_ansi",
+ "LAYOUT_iso_ansi": "LAYOUT_iso"
+ },
"layouts": {
- "LAYOUT_evolv_ansi": {
+ "LAYOUT_ansi": {
"layout": [
{"matrix": [0, 0], "x": 0, "y": 0},
@@ -150,7 +154,7 @@
{"matrix": [5, 14], "x": 15, "y": 5.5}
]
},
- "LAYOUT_evolv_iso": {
+ "LAYOUT_iso": {
"layout": [
{"matrix": [0, 0], "x": 0, "y": 0},
diff --git a/keyboards/evolv/keymaps/default/keymap.c b/keyboards/evolv/keymaps/default/keymap.c
index 2286627041..d049c356b9 100755
--- a/keyboards/evolv/keymaps/default/keymap.c
+++ b/keyboards/evolv/keymaps/default/keymap.c
@@ -17,35 +17,19 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#include QMK_KEYBOARD_H
-#define MEDIA_KEY_DELAY 100
-
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [0] = LAYOUT_evolv_ansi(
+ [0] = LAYOUT_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_INS ,
- KC_GRV , KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , KC_MINS, KC_EQL , KC_BSPC, KC_BSPC, KC_DEL , KC_VOLU,
+ 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_BSPC, KC_DEL , KC_VOLU,
KC_TAB , KC_Q , KC_W , KC_E , KC_R , KC_T , KC_Y , KC_U , KC_I , KC_O , KC_P , KC_LBRC, KC_RBRC, KC_BSLS, KC_PGUP, KC_MPRV, KC_MPLY, KC_MNXT,
KC_CAPS, KC_A , KC_S , KC_D , KC_F , KC_G , KC_H , KC_J , KC_K , KC_L , KC_SCLN, KC_QUOT, KC_ENT , KC_PGDN, KC_VOLD,
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 , MO(1) ,
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC , KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT),
- [1] = LAYOUT_evolv_ansi(
+ [1] = LAYOUT_ansi(
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_VAI,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_MOD, RGB_TOG, RGB_MOD,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_VAD,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_TRNS,
- _______, _______, _______, _______, _______, _______, _______, _______, _______),
- [2] = LAYOUT_evolv_ansi(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______),
- [3] = LAYOUT_evolv_ansi(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______)
};
diff --git a/keyboards/evolv/keymaps/gondolindrim/keymap.c b/keyboards/evolv/keymaps/gondolindrim/keymap.c
index bf0944fbd1..992901a86d 100755
--- a/keyboards/evolv/keymaps/gondolindrim/keymap.c
+++ b/keyboards/evolv/keymaps/gondolindrim/keymap.c
@@ -145,28 +145,28 @@ Due to the way rgblight.c stores to and re-stores RGB configurations from EEPROM
Adapt this at will with the caveat that you should not have more nor less than four layers. And let's be honest, if you find yourself needing more than four layers on a 75% keyboard you are probably doing something wrong.
*/
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [0] = LAYOUT_evolv_iso(
+ [0] = LAYOUT_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_INS ,
KC_GRV , KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , KC_MINS, KC_EQL , KC_BSPC, KC_BSPC, KC_DEL , ENCNTH,
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_ENT , KC_PGUP, ENCWST , ENCCLK, ENCEST,
KC_CAPS, KC_A , KC_S , KC_D , KC_F , KC_G , KC_H , KC_J , KC_K , KC_L , KC_SCLN, KC_QUOT, KC_NUHS, KC_PGDN, ENCSTH,
KC_LSFT, KC_BSLS, KC_Z , KC_X , KC_C , KC_V , KC_B , KC_N , KC_M , KC_COMM, KC_DOT , KC_SLSH, KC_RSFT, KC_UP , MO(1) ,
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC , KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT),
- [1] = LAYOUT_evolv_iso(
+ [1] = LAYOUT_iso(
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, ENCNTH,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, ENCWST , ENCCLK, ENCEST,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, ENCSTH,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_TRNS,
_______, _______, _______, _______, _______, _______, _______, _______, _______),
- [2] = LAYOUT_evolv_iso(
+ [2] = LAYOUT_iso(
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, ENCNTH,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, ENCWST , ENCCLK, ENCEST,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, ENCSTH,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______),
- [3] = LAYOUT_evolv_iso(
+ [3] = LAYOUT_iso(
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, ENCNTH,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, ENCWST , ENCCLK, ENCEST,
diff --git a/keyboards/evolv/keymaps/iso/keymap.c b/keyboards/evolv/keymaps/iso/keymap.c
index 391bcdf5bb..379b9a51ca 100755
--- a/keyboards/evolv/keymaps/iso/keymap.c
+++ b/keyboards/evolv/keymaps/iso/keymap.c
@@ -17,35 +17,19 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#include QMK_KEYBOARD_H
-#define MEDIA_KEY_DELAY 100
-
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [0] = LAYOUT_evolv_iso(
+ [0] = LAYOUT_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_INS ,
- KC_GRV , KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , KC_MINS, KC_EQL , KC_BSPC, KC_BSPC, KC_DEL , KC_VOLU,
+ 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_BSPC, KC_DEL , KC_VOLU,
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_ENT , KC_PGUP, KC_MPRV, KC_MPLY, KC_MNXT,
KC_CAPS, KC_A , KC_S , KC_D , KC_F , KC_G , KC_H , KC_J , KC_K , KC_L , KC_SCLN, KC_QUOT, KC_NUHS, KC_PGDN, KC_VOLD,
KC_LSFT, KC_BSLS, KC_Z , KC_X , KC_C , KC_V , KC_B , KC_N , KC_M , KC_COMM, KC_DOT , KC_SLSH, KC_RSFT, KC_UP , MO(1) ,
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC , KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT),
- [1] = LAYOUT_evolv_iso(
+ [1] = LAYOUT_iso(
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_VAI,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_MOD, RGB_TOG, RGB_MOD,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_VAD,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_TRNS,
- _______, _______, _______, _______, _______, _______, _______, _______, _______),
- [2] = LAYOUT_evolv_iso(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______),
- [3] = LAYOUT_evolv_iso(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______)
};
diff --git a/keyboards/evolv/keymaps/via/keymap.c b/keyboards/evolv/keymaps/via/keymap.c
index 391bcdf5bb..379b9a51ca 100755
--- a/keyboards/evolv/keymaps/via/keymap.c
+++ b/keyboards/evolv/keymaps/via/keymap.c
@@ -17,35 +17,19 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#include QMK_KEYBOARD_H
-#define MEDIA_KEY_DELAY 100
-
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [0] = LAYOUT_evolv_iso(
+ [0] = LAYOUT_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_INS ,
- KC_GRV , KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , KC_MINS, KC_EQL , KC_BSPC, KC_BSPC, KC_DEL , KC_VOLU,
+ 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_BSPC, KC_DEL , KC_VOLU,
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_ENT , KC_PGUP, KC_MPRV, KC_MPLY, KC_MNXT,
KC_CAPS, KC_A , KC_S , KC_D , KC_F , KC_G , KC_H , KC_J , KC_K , KC_L , KC_SCLN, KC_QUOT, KC_NUHS, KC_PGDN, KC_VOLD,
KC_LSFT, KC_BSLS, KC_Z , KC_X , KC_C , KC_V , KC_B , KC_N , KC_M , KC_COMM, KC_DOT , KC_SLSH, KC_RSFT, KC_UP , MO(1) ,
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC , KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT),
- [1] = LAYOUT_evolv_iso(
+ [1] = LAYOUT_iso(
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_VAI,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_MOD, RGB_TOG, RGB_MOD,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_VAD,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_TRNS,
- _______, _______, _______, _______, _______, _______, _______, _______, _______),
- [2] = LAYOUT_evolv_iso(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______),
- [3] = LAYOUT_evolv_iso(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______)
};
diff --git a/keyboards/evyd13/atom47/rev5/config.h b/keyboards/evyd13/atom47/rev5/config.h
index f50975beb3..53bbf4f51b 100644
--- a/keyboards/evyd13/atom47/rev5/config.h
+++ b/keyboards/evyd13/atom47/rev5/config.h
@@ -38,18 +38,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-// This is a 7-bit address, that gets left-shifted and bit 0
-// set to 0 for write, 1 for read (as per I2C protocol)
-// The address will vary depending on your wiring:
-// 00 <-> GND
-// 01 <-> SCL
-// 10 <-> SDA
-// 11 <-> VCC
-// ADDR1 represents A1:A0 of the 7-bit address.
-// ADDR2 represents A3:A2 of the 7-bit address.
-// The result is: 0b101(ADDR2)(ADDR1)
-#define DRIVER_ADDR_1 0b1010000
-#define DRIVER_COUNT 1
+#define IS31FL3733_I2C_ADDRESS_1 IS31FL3733_I2C_ADDRESS_GND_GND
#define RGB_MATRIX_LED_COUNT 64
// RGB Matrix Animation modes. Explicitly enabled
diff --git a/keyboards/evyd13/atom47/rev5/rev5.c b/keyboards/evyd13/atom47/rev5/rev5.c
index adec48e6bb..7bf2a961ff 100644
--- a/keyboards/evyd13/atom47/rev5/rev5.c
+++ b/keyboards/evyd13/atom47/rev5/rev5.c
@@ -17,7 +17,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#include "quantum.h"
-const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = {
+const is31fl3733_led_t PROGMEM g_is31fl3733_leds[RGB_MATRIX_LED_COUNT] = {
/* Refer to IS31 manual for these locations
* driver
* | R location
diff --git a/keyboards/evyd13/wasdat/keymaps/konstantin/config.h b/keyboards/evyd13/wasdat/keymaps/konstantin/config.h
deleted file mode 100644
index 3c2583e2d4..0000000000
--- a/keyboards/evyd13/wasdat/keymaps/konstantin/config.h
+++ /dev/null
@@ -1,4 +0,0 @@
-#pragma once
-
-#define LAYER_FN
-#define LAYER_NUMPAD
diff --git a/keyboards/evyd13/wasdat/keymaps/konstantin/keymap.c b/keyboards/evyd13/wasdat/keymaps/konstantin/keymap.c
deleted file mode 100644
index fcbab46b72..0000000000
--- a/keyboards/evyd13/wasdat/keymaps/konstantin/keymap.c
+++ /dev/null
@@ -1,79 +0,0 @@
-#include QMK_KEYBOARD_H
-#include "konstantin.h"
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- /* Base layer
- * ┌───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐┌───┬───┬───┐
- * │Esc│ │F1 │F2 │F3 │F4 │ │F5 │F6 │F7 │F8 │ │F9 │F10│F11│F12││PSc│SLk│Pau│
- * └───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘└───┴───┴───┘
- * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐┌───┬───┬───┐
- * │ ` │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │Bspace ││Ins│Hom│PgU│
- * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤├───┼───┼───┤
- * │ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │ ││Del│End│PgD│
- * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐Ent │└───┴───┴───┘
- * │FnCaps│ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ \ │ │
- * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤ ┌───┐
- * │LSft│RAG│ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │ RShift │ │ ↑ │
- * ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤┌───┼───┼───┐
- * │LCtl│LGui│LAlt│ Space │RAlt│RGui│FnFL│RCtl││ ← │ ↓ │ → │
- * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘└───┴───┴───┘
- */
- [L_BASE] = LAYOUT_tkl_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_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_DEL, KC_END, KC_PGDN,
- FN_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_BSLS, KC_ENT,
- KC_LSFT, RAL_RGU, 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, FN_FNLK, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
- ),
-
- /* Fn layer
- * ┌───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐┌───┬───┬───┐
- * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ││ │Num│Mut│
- * └───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘└───┴───┴───┘
- * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐┌───┬───┬───┐
- * │ │F1 │F2 │F3 │F4 │F5 │F6 │F7 │F8 │F9 │F10│F11│F12│ Clear ││Ply│Stp│Vo+│
- * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤├───┼───┼───┤
- * │ M4 │M2 │M↑ │M1 │M3 │M5 │ │UCM│ │ │ │ │ │ ││Prv│Nxt│Vo-│
- * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │└───┴───┴───┘
- * │ │M← │M↓ │M→ │MW↑│ │ │ │ │ │ │ │ │ │
- * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤ ┌───┐
- * │ │ │MA0│MA2│MW←│MW→│ │ │App│ │ │ │ │ │PgU│
- * ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤┌───┼───┼───┐
- * │ │DtPR│DtNA│ MW↓ │ │ │ │ ││Hom│PgD│End│
- * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘└───┴───┴───┘
- */
- [L_FN] = LAYOUT_tkl_iso(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, NUMPAD, KC_MUTE,
- _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, CLEAR, KC_MPLY, KC_MSTP, KC_VOLU,
- KC_BTN4, KC_BTN2, KC_MS_U, KC_BTN1, KC_BTN3, KC_BTN5, _______, UC_NEXT, _______, _______, _______, _______, _______, KC_MPRV, KC_MNXT, KC_VOLD,
- _______, KC_MS_L, KC_MS_D, KC_MS_R, KC_WH_U, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, KC_ACL0, KC_ACL2, KC_WH_L, KC_WH_R, _______, _______, KC_APP, _______, _______, _______, _______, KC_PGUP,
- _______, DST_P_R, DST_N_A, KC_WH_D, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_END
- ),
-
- /* Numpad layer
- * ┌───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐┌───┬───┬───┐
- * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ││ │Num│ │
- * └───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘└───┴───┴───┘
- * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐┌───┬───┬───┐
- * │ │ │ │ │ │ │ │P7 │P8 │P9 │P- │ − │ = │ ││ │ │ │
- * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤├───┼───┼───┤
- * │ │ │ │ │ │ │ │P4 │P5 │P6 │P+ │ ( │ ) │ ││ │ │ │
- * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐PEnt│└───┴───┴───┘
- * │ │ │ │ │ │ │ │P1 │P2 │P3 │P* │ × │ │ │
- * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤ ┌───┐
- * │ │ │ │ │ │ │ │P0 │P0 │ , │P. │P/ │ ÷ │ │ │
- * ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤┌───┼───┼───┐
- * │ │ │ │ │ │ │ │ ││ │ │ │
- * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘└───┴───┴───┘
- */
- [L_NUMPAD] = LAYOUT_tkl_iso(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, NUMPAD, _______,
- _______, _______, _______, _______, _______, _______, _______, KC_P7, KC_P8, KC_P9, KC_PMNS, MINUS, EQUALS, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, KC_P4, KC_P5, KC_P6, KC_PPLS, L_PAREN, R_PAREN, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, KC_P1, KC_P2, KC_P3, KC_PAST, TIMES, _______, KC_PENT,
- _______, _______, _______, _______, _______, _______, _______, KC_P0, KC_P0, COMMA, KC_PDOT, KC_PSLS, DIVIDE, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
- ),
-};
diff --git a/keyboards/evyd13/wasdat/keymaps/konstantin/rules.mk b/keyboards/evyd13/wasdat/keymaps/konstantin/rules.mk
deleted file mode 100644
index e5fc55e912..0000000000
--- a/keyboards/evyd13/wasdat/keymaps/konstantin/rules.mk
+++ /dev/null
@@ -1,17 +0,0 @@
-# Generic features
-BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite
-COMMAND_ENABLE = yes
-CONSOLE_ENABLE = yes
-EXTRAKEY_ENABLE = yes
-MOUSEKEY_ENABLE = yes
-NKRO_ENABLE = yes
-TAP_DANCE_ENABLE = yes
-UNICODEMAP_ENABLE = yes
-
-# Keyboard-specific features
-VIA_ENABLE = yes
-
-# Firmware size reduction
-GRAVE_ESC_ENABLE = no
-MAGIC_ENABLE = no
-SPACE_CADET_ENABLE = no
diff --git a/keyboards/evyd13/wonderland/keymaps/brandonschlack/config.h b/keyboards/evyd13/wonderland/keymaps/brandonschlack/config.h
deleted file mode 100644
index 38383cffc2..0000000000
--- a/keyboards/evyd13/wonderland/keymaps/brandonschlack/config.h
+++ /dev/null
@@ -1,19 +0,0 @@
-/* Copyright 2019 Brandon Schlack
- *
- * 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 USE_LEDS_FOR_LAYERS
-#define STOPLIGHT_LED
diff --git a/keyboards/evyd13/wonderland/keymaps/brandonschlack/keymap.c b/keyboards/evyd13/wonderland/keymaps/brandonschlack/keymap.c
deleted file mode 100755
index b8b62981df..0000000000
--- a/keyboards/evyd13/wonderland/keymaps/brandonschlack/keymap.c
+++ /dev/null
@@ -1,170 +0,0 @@
-/* Copyright 2019 Brandon Schlack
- *
- * 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 "brandonschlack.h"
-
-// LEDs
-#define TOP_LED B1
-#define MIDDLE_LED B2
-#define BOTTOM_LED B3
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-[_BASE] = LAYOUT(
- KC_HOME, KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS, KC_GRV,
- 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_BSPC,
- KC_PGDN, HY_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_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, PLY_FN1,
- KC_LOPT, KC_LCMD, SPC_RAI, KC_LCTL, SPC_RAI, KC_RCMD, KC_ROPT
-),
-[_FN1] = LAYOUT(
- KC_MUTE, QM_MAKE, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, MC_LHPD, MC_SLPD,
- KC_VOLU, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, RGB_SPI, _______, _______, _______, _______, _______, KC_HOME, KC_UP, KC_END, KC_DEL,
- KC_VOLD, RGB_TOG, RGB_HUD, RGB_SAD, RGB_VAD, RGB_SPD, _______, _______, _______, KC_MPRV, KC_MNXT, KC_PGDN, KC_UP, KC_MPLY,
- _______, RGB_LYR, RGB_THM, _______, _______, _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, RGT_SFT, _______,
- _______, _______, _______, _______, _______, _______, _______
-
-),
-[_FN2] = LAYOUT(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______
-
-),
-[_ADJUST] = LAYOUT(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______
-
-)
-/*
-[_BLANK] = LAYOUT(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______
-
-)
-*/
-};
-
-#ifdef STOPLIGHT_LED
-bool is_led_stoplight_active = false;
-uint8_t led_stoplight_index = 0;
-uint16_t led_stoplight_timer = 0;
-void matrix_scan_led_stoplight(void);
-
-void led_stoplight_start(void) {
- writePinHigh(TOP_LED);
- writePinHigh(MIDDLE_LED);
- writePinHigh(BOTTOM_LED);
-
- is_led_stoplight_active = true;
- led_stoplight_timer = timer_read();
-};
-
-void led_stoplight_set(pin_t pin) {
- writePinLow(pin);
-};
-
-void led_stoplight_end(void) {
- // Reset timer and status variables
- led_stoplight_index = 0;
- is_led_stoplight_active = false;
- led_stoplight_timer = 0;
- led_update_kb(host_keyboard_led_state());
-};
-
-void matrix_scan_led_stoplight(void) {
- if (is_led_stoplight_active) {
- if (timer_elapsed(led_stoplight_timer) > (1000 * (led_stoplight_index + 1))) {
- switch (led_stoplight_index){
- case 0:
- led_stoplight_set(TOP_LED);
- led_stoplight_index++;
- break;
- case 1:
- led_stoplight_set(MIDDLE_LED);
- led_stoplight_index++;
- break;
- case 2:
- led_stoplight_set(BOTTOM_LED);
- led_stoplight_index++;
- break;
- default:
- led_stoplight_index = 0;
- is_led_stoplight_active = false;
- led_stoplight_timer = 0;
- led_update_kb(host_keyboard_led_state());
- break;
- }
- }
- }
-};
-#endif
-
-void keyboard_post_init_keymap(void) {
-#ifdef STOPLIGHT_LED
- led_stoplight_start();
-#endif
-};
-
-void matrix_scan_keymap(void) {
-#ifdef STOPLIGHT_LED
- matrix_scan_led_stoplight();
-#endif
-};
-
-#ifdef USE_LEDS_FOR_LAYERS
-// example of how to use LEDs as layer indicators
-static uint8_t top = 0;
-static uint8_t middle = 0;
-
-layer_state_t layer_state_set_keymap(layer_state_t state) {
- top = middle = 0;
- state = update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST);
-
- switch (get_highest_layer(state)) {
- case _FN1:
- top = 1;
- break;
- case _FN2:
- middle = 1;
- break;
- case _ADJUST:
- top = 1;
- middle = 1;
- break;
- default: // for any other layers, or the default layer
- break;
- }
- return state;
-}
-
-// override kb level function
-bool led_update_user(led_t usb_led) {
- if (!is_led_stoplight_active) {
- writePin(TOP_LED, !top);
- writePin(MIDDLE_LED, !middle);
- writePin(BOTTOM_LED, !usb_led.caps_lock); // still use bottom for Caps Lock
- };
- return false; // we are using LEDs for something else override kb
-}
-#endif
diff --git a/keyboards/evyd13/wonderland/keymaps/brandonschlack/rules.mk b/keyboards/evyd13/wonderland/keymaps/brandonschlack/rules.mk
deleted file mode 100755
index 80361c34fd..0000000000
--- a/keyboards/evyd13/wonderland/keymaps/brandonschlack/rules.mk
+++ /dev/null
@@ -1,8 +0,0 @@
-# Build Options
-# comment out to disable the options.
-#
-MOUSEKEY_ENABLE = yes # Mouse keys
-CONSOLE_ENABLE = no # Console for debug
-COMMAND_ENABLE = no # Commands for debug and configuration
-VELOCIKEY_ENABLE = no
-
diff --git a/keyboards/exclusive/e6_rgb/config.h b/keyboards/exclusive/e6_rgb/config.h
index 7f820b2cad..62eb2320f7 100644
--- a/keyboards/exclusive/e6_rgb/config.h
+++ b/keyboards/exclusive/e6_rgb/config.h
@@ -4,7 +4,6 @@
*/
#pragma once
-#define DRIVER_ADDR_1 0b1010000
+#define IS31FL3733_I2C_ADDRESS_1 IS31FL3733_I2C_ADDRESS_GND_GND
-#define DRIVER_COUNT 1
#define RGB_MATRIX_LED_COUNT 63
diff --git a/keyboards/exclusive/e6_rgb/e6_rgb.c b/keyboards/exclusive/e6_rgb/e6_rgb.c
index 2da1fbce68..f34f40cc1f 100644
--- a/keyboards/exclusive/e6_rgb/e6_rgb.c
+++ b/keyboards/exclusive/e6_rgb/e6_rgb.c
@@ -7,7 +7,7 @@ void matrix_init_kb(void) {
matrix_init_user();
}
-const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = {
+const is31fl3733_led_t PROGMEM g_is31fl3733_leds[RGB_MATRIX_LED_COUNT] = {
/* Refer to IS31 manual for these locations
* driver
* | R location
diff --git a/keyboards/eyeohdesigns/babyv/info.json b/keyboards/eyeohdesigns/babyv/info.json
index 453cdf2c81..14f52889ba 100644
--- a/keyboards/eyeohdesigns/babyv/info.json
+++ b/keyboards/eyeohdesigns/babyv/info.json
@@ -34,6 +34,48 @@
"twinkle": true
}
},
+ "rgb_matrix": {
+ "driver": "ws2812",
+ "animations": {
+ "gradient_up_down": true,
+ "gradient_left_right": true,
+ "breathing": true,
+ "band_sat": true,
+ "band_val": true,
+ "band_spiral_sat": true,
+ "band_spiral_val": true,
+ "cycle_all": true,
+ "cycle_left_right": true,
+ "cycle_up_down": true,
+ "cycle_out_in": true,
+ "cycle_pinwheel": true,
+ "raindrops": true,
+ "jellybean_raindrops": true,
+ "hue_breathing": true,
+ "hue_pendulum": true,
+ "hue_wave": true,
+ "pixel_rain": true,
+ "pixel_flow": true
+ },
+ "layout": [
+ {"x": 123, "y": 74, "flags": 2},
+ {"x": 188, "y": 67, "flags": 2},
+ {"x": 206, "y": 62, "flags": 2},
+ {"x": 206, "y": 0, "flags": 2},
+ {"x": 175, "y": 0, "flags": 2},
+ {"x": 141, "y": 0, "flags": 2},
+ {"x": 83, "y": 0, "flags": 2},
+ {"x": 65, "y": 0, "flags": 2},
+ {"x": 18, "y": 0, "flags": 2},
+ {"x": 18, "y": 62, "flags": 2},
+ {"x": 40, "y": 67, "flags": 2},
+ {"x": 99, "y": 74, "flags": 2}
+ ],
+ "sat_steps": 8,
+ "val_steps": 8,
+ "led_count": 12,
+ "center_point": [112, 38]
+ },
"ws2812": {
"pin": "B7"
},
diff --git a/keyboards/eyeohdesigns/babyv/keymaps/bghull/keymap.c b/keyboards/eyeohdesigns/babyv/keymaps/bghull/keymap.c
index 7d22ebc670..7bccc6a46a 100644
--- a/keyboards/eyeohdesigns/babyv/keymaps/bghull/keymap.c
+++ b/keyboards/eyeohdesigns/babyv/keymaps/bghull/keymap.c
@@ -14,7 +14,6 @@
*/
#include QMK_KEYBOARD_H
-#include "keymap_steno.h"
#include "g/keymap_combo.h"
diff --git a/keyboards/fallacy/config.h b/keyboards/fallacy/config.h
index 21231c7c57..14df31805d 100755
--- a/keyboards/fallacy/config.h
+++ b/keyboards/fallacy/config.h
@@ -18,9 +18,8 @@
/* IS31FL3731 driver address (for status LEDs)
* Using the default defines here, but using a custom implementation
*/
-#define LED_DRIVER_ADDR_1 0b1110100
-#define LED_DRIVER_COUNT 1
-#define LED_MATRIX_LED_COUNT 3
+#define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND
+#define IS31FL3731_LED_COUNT 3
/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap
*/
diff --git a/keyboards/fallacy/indicators.c b/keyboards/fallacy/indicators.c
index b9a4a87056..b95786db41 100755
--- a/keyboards/fallacy/indicators.c
+++ b/keyboards/fallacy/indicators.c
@@ -22,21 +22,14 @@
* init IS31FL3731 and i2c
*/
void init_fallacy_leds(void) {
- i2c_init();
- is31fl3731_init(LED_DRIVER_ADDR_1);
-
- for (int i = 0; i < LED_MATRIX_LED_COUNT; i++) {
- is31fl3731_set_led_control_register(i, true);
- }
-
- is31fl3731_update_led_control_registers(LED_DRIVER_ADDR_1, 0);
+ is31fl3731_init_drivers();
}
/* update the buffer
*/
void update_fallacy_leds(void) {
- is31fl3731_update_pwm_buffers(LED_DRIVER_ADDR_1, 0);
+ is31fl3731_flush();
}
@@ -54,7 +47,7 @@ void set_fallacy_led(int index, bool state) {
/* define LED matrix
*/
-const is31_led PROGMEM g_is31_leds[LED_MATRIX_LED_COUNT] = {
+const is31fl3731_led_t PROGMEM g_is31fl3731_leds[IS31FL3731_LED_COUNT] = {
{0, C1_1},
{0, C2_1},
{0, C3_1},
diff --git a/keyboards/fallacy/rules.mk b/keyboards/fallacy/rules.mk
index 704204983c..7fa230bae2 100755
--- a/keyboards/fallacy/rules.mk
+++ b/keyboards/fallacy/rules.mk
@@ -14,4 +14,4 @@ AUDIO_ENABLE = no # Audio output
# project specific files
SRC += indicators.c \
drivers/led/issi/is31fl3731-simple.c
-QUANTUM_LIB_SRC += i2c_master.c
+I2C_DRIVER_REQUIRED = yes
diff --git a/keyboards/fc660c/actuation_point.c b/keyboards/fc660c/actuation_point.c
deleted file mode 100644
index 5f4cb16f40..0000000000
--- a/keyboards/fc660c/actuation_point.c
+++ /dev/null
@@ -1,87 +0,0 @@
-/*
-Copyright 2017 Balz Guenat
-based on work by Jun Wako <wakojun@gmail.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 "actuation_point.h"
-#include "i2c.h"
-
-///////////////////////////////////////////////////////////////////////////////
-//
-// AD5258 I2C digital potentiometer
-// http://www.analog.com/media/en/technical-documentation/data-sheets/AD5258.pdf
-//
-#define AD5258_ADDR 0b0011000
-#define AD5258_INST_RDAC 0x00
-#define AD5258_INST_EEPROM 0x20
-
-uint8_t read_rdac(void) {
- // read RDAC register
- i2c_start_write(AD5258_ADDR);
- i2c_master_write(AD5258_INST_RDAC);
- i2c_start_read(AD5258_ADDR);
- uint8_t ret = i2c_master_read(I2C_NACK);
- i2c_master_stop();
- return ret;
-};
-
-uint8_t read_eeprom(void) {
- i2c_start_write(AD5258_ADDR);
- i2c_master_write(AD5258_INST_EEPROM);
- i2c_start_read(AD5258_ADDR);
- uint8_t ret = i2c_master_read(I2C_NACK);
- i2c_master_stop();
- return ret;
-};
-
-void write_rdac(uint8_t rdac) {
- // write RDAC register:
- i2c_start_write(AD5258_ADDR);
- i2c_master_write(AD5258_INST_RDAC);
- i2c_master_write(rdac & 0x3F);
- i2c_master_stop();
-};
-
-void actuation_point_up(void) {
- // write RDAC register: lower value makes actuation point shallow
- uint8_t rdac = read_rdac();
- if (rdac == 0)
- write_rdac(0);
- else
- write_rdac(rdac-1);
-};
-
-void actuation_point_down(void) {
- // write RDAC register: higher value makes actuation point deep
- uint8_t rdac = read_rdac();
- if (rdac == 63)
- write_rdac(63);
- else
- write_rdac(rdac+1);
-};
-
-void adjust_actuation_point(int offset) {
- i2c_master_init();
- uint8_t rdac = read_eeprom() + offset;
- if (rdac > 63) { // protects from under and overflows
- if (offset > 0)
- write_rdac(63);
- else
- write_rdac(0);
- } else {
- write_rdac(rdac);
- }
-}
diff --git a/keyboards/fc660c/actuation_point.h b/keyboards/fc660c/actuation_point.h
deleted file mode 100644
index e02832186c..0000000000
--- a/keyboards/fc660c/actuation_point.h
+++ /dev/null
@@ -1,29 +0,0 @@
-/*
-Copyright 2017 Balz Guenat
-
-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 <stdint.h>
-
-// see keymaps/actuation-point-example to see how these functions can be used.
-uint8_t read_rdac(void);
-uint8_t read_eeprom(void);
-void actuation_point_up(void);
-void actuation_point_down(void);
-
-// be careful with this.
-void adjust_actuation_point(int offset);
diff --git a/keyboards/fc660c/ad5258.c b/keyboards/fc660c/ad5258.c
new file mode 100644
index 0000000000..b1df75789b
--- /dev/null
+++ b/keyboards/fc660c/ad5258.c
@@ -0,0 +1,52 @@
+/*
+Copyright 2017 Balz Guenat
+based on work by Jun Wako <wakojun@gmail.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 "ad5258.h"
+#include "i2c_master.h"
+
+///////////////////////////////////////////////////////////////////////////////
+//
+// AD5258 I2C digital potentiometer
+// http://www.analog.com/media/en/technical-documentation/data-sheets/AD5258.pdf
+//
+#define AD5258_I2C_ADDRESS 0x18
+#define AD5258_INST_RDAC 0x00
+#define AD5258_INST_EEPROM 0x20
+
+void ad5258_init(void) {
+ i2c_init();
+}
+
+uint8_t ad5258_read_rdac(void) {
+ // read RDAC register
+ uint8_t ret = 0;
+ i2c_readReg(AD5258_I2C_ADDRESS, AD5258_INST_RDAC, &ret, 1, 100);
+ return ret;
+}
+
+uint8_t ad5258_read_eeprom(void) {
+ uint8_t ret = 0;
+ i2c_readReg(AD5258_I2C_ADDRESS, AD5258_INST_EEPROM, &ret, 1, 100);
+ return ret;
+}
+
+void ad5258_write_rdac(uint8_t rdac) {
+ // write RDAC register:
+ uint8_t data = rdac & 0x3F;
+ i2c_writeReg(AD5258_I2C_ADDRESS, AD5258_INST_RDAC, &data, 1, 100);
+}
diff --git a/keyboards/fc660c/ad5258.h b/keyboards/fc660c/ad5258.h
new file mode 100644
index 0000000000..c27f247675
--- /dev/null
+++ b/keyboards/fc660c/ad5258.h
@@ -0,0 +1,28 @@
+/*
+Copyright 2017 Balz Guenat
+
+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 <stdint.h>
+
+void ad5258_init(void);
+
+uint8_t ad5258_read_rdac(void);
+
+uint8_t ad5258_read_eeprom(void);
+
+void ad5258_write_rdac(uint8_t rdac);
diff --git a/keyboards/fc660c/config.h b/keyboards/fc660c/config.h
index cd23bdb2b8..beff84d9be 100644
--- a/keyboards/fc660c/config.h
+++ b/keyboards/fc660c/config.h
@@ -27,8 +27,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
* These options are also useful to firmware size reduction.
*/
-#define USE_I2C
-
/* disable debug print */
//#define NO_DEBUG
diff --git a/keyboards/fc660c/fc660c.c b/keyboards/fc660c/fc660c.c
index 2054cd2818..50540cbfb9 100644
--- a/keyboards/fc660c/fc660c.c
+++ b/keyboards/fc660c/fc660c.c
@@ -14,16 +14,47 @@ 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 ACTUATION_DEPTH_ADJUSTMENT
-#include "actuation_point.h"
-#endif
+#include "fc660c.h"
-void matrix_init_kb(void) {
#ifdef ACTUATION_DEPTH_ADJUSTMENT
+void matrix_init_kb(void) {
adjust_actuation_point(ACTUATION_DEPTH_ADJUSTMENT);
-#endif
- matrix_init_user();
+ matrix_init_user();
+}
+
+void actuation_point_up(void) {
+ // write RDAC register: lower value makes actuation point shallow
+ uint8_t rdac = ad5258_read_rdac();
+ if (rdac == 0) {
+ ad5258_write_rdac(0);
+ } else {
+ ad5258_write_rdac(rdac - 1);
+ }
+}
+
+void actuation_point_down(void) {
+ // write RDAC register: higher value makes actuation point deep
+ uint8_t rdac = ad5258_read_rdac();
+ if (rdac == 63) {
+ ad5258_write_rdac(63);
+ } else {
+ ad5258_write_rdac(rdac + 1);
+ }
}
+
+void adjust_actuation_point(int offset) {
+ ad5258_init();
+ uint8_t rdac = ad5258_read_eeprom() + offset;
+ if (rdac > 63) { // protects from under and overflows
+ if (offset > 0) {
+ ad5258_write_rdac(63);
+ } else {
+ ad5258_write_rdac(0);
+ }
+ } else {
+ ad5258_write_rdac(rdac);
+ }
+}
+#endif
diff --git a/keyboards/fc660c/fc660c.h b/keyboards/fc660c/fc660c.h
new file mode 100644
index 0000000000..aa98e36be9
--- /dev/null
+++ b/keyboards/fc660c/fc660c.h
@@ -0,0 +1,31 @@
+/*
+Copyright 2017 Balz Guenat
+
+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 ACTUATION_DEPTH_ADJUSTMENT
+# include "ad5258.h"
+
+// see keymaps/actuation-point-example to see how these functions can be used.
+void actuation_point_up(void);
+void actuation_point_down(void);
+
+// be careful with this.
+void adjust_actuation_point(int offset);
+#endif
diff --git a/keyboards/fc660c/i2c.c b/keyboards/fc660c/i2c.c
deleted file mode 100644
index 084c890c40..0000000000
--- a/keyboards/fc660c/i2c.c
+++ /dev/null
@@ -1,162 +0,0 @@
-#include <util/twi.h>
-#include <avr/io.h>
-#include <stdlib.h>
-#include <avr/interrupt.h>
-#include <util/twi.h>
-#include <stdbool.h>
-#include "i2c.h"
-
-#ifdef USE_I2C
-
-// Limits the amount of we wait for any one i2c transaction.
-// Since were running SCL line 100kHz (=> 10μs/bit), and each transactions is
-// 9 bits, a single transaction will take around 90μs to complete.
-//
-// (F_CPU/SCL_CLOCK) => # of μC cycles to transfer a bit
-// poll loop takes at least 8 clock cycles to execute
-#define I2C_LOOP_TIMEOUT (9+1)*(F_CPU/SCL_CLOCK)/8
-
-#define BUFFER_POS_INC() (slave_buffer_pos = (slave_buffer_pos+1)%SLAVE_BUFFER_SIZE)
-
-volatile uint8_t i2c_slave_buffer[SLAVE_BUFFER_SIZE];
-
-static volatile uint8_t slave_buffer_pos;
-static volatile bool slave_has_register_set = false;
-
-// Wait for an i2c operation to finish
-inline static
-void i2c_delay(void) {
- uint16_t lim = 0;
- while(!(TWCR & (1<<TWINT)) && lim < I2C_LOOP_TIMEOUT)
- lim++;
-
- // easier way, but will wait slightly longer
- // _delay_us(100);
-}
-
-// Setup twi to run at 100kHz
-void i2c_master_init(void) {
- // no prescaler
- TWSR = 0;
- // Set TWI clock frequency to SCL_CLOCK. Need TWBR>10.
- // Check datasheets for more info.
- TWBR = ((F_CPU/SCL_CLOCK)-16)/2;
-}
-
-// Start a transaction with the given i2c slave address. The direction of the
-// transfer is set with I2C_READ and I2C_WRITE.
-// returns: 0 => success
-// 1 => error
-uint8_t i2c_master_start(uint8_t address) {
- TWCR = (1<<TWINT) | (1<<TWEN) | (1<<TWSTA);
-
- i2c_delay();
-
- // check that we started successfully
- if ( (TW_STATUS != TW_START) && (TW_STATUS != TW_REP_START))
- return 1;
-
- TWDR = address;
- TWCR = (1<<TWINT) | (1<<TWEN);
-
- i2c_delay();
-
- if ( (TW_STATUS != TW_MT_SLA_ACK) && (TW_STATUS != TW_MR_SLA_ACK) )
- return 1; // slave did not acknowledge
- else
- return 0; // success
-}
-
-
-// Finish the i2c transaction.
-void i2c_master_stop(void) {
- TWCR = (1<<TWINT) | (1<<TWEN) | (1<<TWSTO);
-
- uint16_t lim = 0;
- while(!(TWCR & (1<<TWSTO)) && lim < I2C_LOOP_TIMEOUT)
- lim++;
-}
-
-// Write one byte to the i2c slave.
-// returns 0 => slave ACK
-// 1 => slave NACK
-uint8_t i2c_master_write(uint8_t data) {
- TWDR = data;
- TWCR = (1<<TWINT) | (1<<TWEN);
-
- i2c_delay();
-
- // check if the slave acknowledged us
- return (TW_STATUS == TW_MT_DATA_ACK) ? 0 : 1;
-}
-
-// Read one byte from the i2c slave. If ack=1 the slave is acknowledged,
-// if ack=0 the acknowledge bit is not set.
-// returns: byte read from i2c device
-uint8_t i2c_master_read(int ack) {
- TWCR = (1<<TWINT) | (1<<TWEN) | (ack<<TWEA);
-
- i2c_delay();
- return TWDR;
-}
-
-void i2c_reset_state(void) {
- TWCR = 0;
-}
-
-void i2c_slave_init(uint8_t address) {
- TWAR = address << 0; // slave i2c address
- // TWEN - twi enable
- // TWEA - enable address acknowledgement
- // TWINT - twi interrupt flag
- // TWIE - enable the twi interrupt
- TWCR = (1<<TWIE) | (1<<TWEA) | (1<<TWINT) | (1<<TWEN);
-}
-
-ISR(TWI_vect);
-
-ISR(TWI_vect) {
- uint8_t ack = 1;
- switch(TW_STATUS) {
- case TW_SR_SLA_ACK:
- // this device has been addressed as a slave receiver
- slave_has_register_set = false;
- break;
-
- case TW_SR_DATA_ACK:
- // this device has received data as a slave receiver
- // The first byte that we receive in this transaction sets the location
- // of the read/write location of the slaves memory that it exposes over
- // i2c. After that, bytes will be written at slave_buffer_pos, incrementing
- // slave_buffer_pos after each write.
- if(!slave_has_register_set) {
- slave_buffer_pos = TWDR;
- // don't acknowledge the master if this memory loctaion is out of bounds
- if ( slave_buffer_pos >= SLAVE_BUFFER_SIZE ) {
- ack = 0;
- slave_buffer_pos = 0;
- }
- slave_has_register_set = true;
- } else {
- i2c_slave_buffer[slave_buffer_pos] = TWDR;
- BUFFER_POS_INC();
- }
- break;
-
- case TW_ST_SLA_ACK:
- case TW_ST_DATA_ACK:
- // master has addressed this device as a slave transmitter and is
- // requesting data.
- TWDR = i2c_slave_buffer[slave_buffer_pos];
- BUFFER_POS_INC();
- break;
-
- case TW_BUS_ERROR: // something went wrong, reset twi state
- TWCR = 0;
- default:
- break;
- }
- // Reset everything, so we are ready for the next TWI interrupt
- TWCR |= (1<<TWIE) | (1<<TWINT) | (ack<<TWEA) | (1<<TWEN);
-}
-#endif
diff --git a/keyboards/fc660c/i2c.h b/keyboards/fc660c/i2c.h
deleted file mode 100644
index 8910e70f10..0000000000
--- a/keyboards/fc660c/i2c.h
+++ /dev/null
@@ -1,46 +0,0 @@
-#pragma once
-
-#include <stdint.h>
-
-#ifndef F_CPU
-#define F_CPU 16000000UL
-#endif
-
-#define I2C_READ 1
-#define I2C_WRITE 0
-
-#define I2C_ACK 1
-#define I2C_NACK 0
-
-#define SLAVE_BUFFER_SIZE 0x10
-
-// i2c SCL clock frequency
-#define SCL_CLOCK 400000L
-
-extern volatile uint8_t i2c_slave_buffer[SLAVE_BUFFER_SIZE];
-
-void i2c_master_init(void);
-uint8_t i2c_master_start(uint8_t address);
-void i2c_master_stop(void);
-uint8_t i2c_master_write(uint8_t data);
-uint8_t i2c_master_read(int);
-void i2c_reset_state(void);
-void i2c_slave_init(uint8_t address);
-
-
-static inline unsigned char i2c_start_read(unsigned char addr) {
- return i2c_master_start((addr << 1) | I2C_READ);
-}
-
-static inline unsigned char i2c_start_write(unsigned char addr) {
- return i2c_master_start((addr << 1) | I2C_WRITE);
-}
-
-// from SSD1306 scrips
-extern unsigned char i2c_rep_start(unsigned char addr);
-extern void i2c_start_wait(unsigned char addr);
-extern unsigned char i2c_readAck(void);
-extern unsigned char i2c_readNak(void);
-extern unsigned char i2c_read(unsigned char ack);
-
-#define i2c_read(ack) (ack) ? i2c_readAck() : i2c_readNak();
diff --git a/keyboards/fc660c/keymaps/zyber/keymap.c b/keyboards/fc660c/keymaps/zyber/keymap.c
deleted file mode 100644
index 60178359ef..0000000000
--- a/keyboards/fc660c/keymaps/zyber/keymap.c
+++ /dev/null
@@ -1,47 +0,0 @@
-// Copyright 2022 ZyBeR (@ZyberSE)
-// SPDX-License-Identifier: GPL-2.0
-
-#include "zyber.h"
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- /* BASE layer: Default Layer
- * ,--------------------------------------------------------------------------------------------------.
- * | Esc | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | Backspace | | ` |
- * |-----------------------------------------------------------------------------------------+ +-----+
- * | Tab | Q | W | E | R | T | Y | U | I | O | P | [ | ] | Bksp | | Del |
- * |-----------------------------------------------------------------------------------------+ +-----+
- * | Explode | A | S | D | F | G | H | J | K | L | ; | ' | Enter |
- * |--------------------------------------------------------------------------------------------+
- * | Shift | Z | X | C | V | B | N | M | , | . | / | Shift | Up |
- * +--------------------------------------------------------------------------------------------+-----+
- * | Ctrl | Alt | Cmd | Space | Alt | Ctrl | Fn | Left| Down|Right|
- * `--------------------------------------------------------------------------------------------------´
- */
- [0] = LAYOUT(
- KC_ESC, KC_1, KC_2, KC_3, TD(SSHT), KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_GRV,
- KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, TD(LBRC), KC_RBRC, KC_BSLS, KC_DEL,
- L1_EXPL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, TD(SCLN), TD(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, ROPT_SRH, KC_LGUI, KC_SPC, KC_RALT, KC_RCTL, MO(1), KC_LEFT,KC_DOWN,KC_RGHT
- ),
- /* FN layer
- * ,--------------------------------------------------------------------------------------------------.
- * | Esc| F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | | |C_BLK|
- * |-----------------------------------------------------------------------------------------+ +-----+
- * | | | | | | | | |PrtSc| Slck| Paus| | | | | |
- * |-----------------------------------------------------------------------------------------+ +-----+
- * | | Vol-| Vol+| Mute|Eject| | | | Home| PgUp| | | |
- * |--------------------------------------------------------------------------------------------+
- * | | Prev| Play| Next| | | | | End | PgDn| | | |
- * +--------------------------------------------------------------------------------------------+-----+
- * | | | | | | | | | | |
- * `--------------------------------------------------------------------------------------------------´
- */
- [1] = LAYOUT(
- QK_BOOT,KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, C_BLK,
- _______,_______,_______,_______,_______,_______,_______,_______,KC_PSCR,KC_SCRL,KC_PAUS,_______,_______,_______, _______,
- _______,KC_VOLD,KC_VOLU,KC_MUTE,KC_EJCT,_______,_______,_______,KC_HOME,KC_PGUP,_______,_______, _______,
- _______,KC_MPRV,KC_MPLY,KC_MNXT,_______,_______,_______,_______,KC_END, KC_PGDN,_______,_______, _______,
- _______,_______,_______, _______, _______,_______,MO(1), _______,_______,_______
- )
-};
diff --git a/keyboards/fc660c/rules.mk b/keyboards/fc660c/rules.mk
index ed4a7ca66d..03a674d668 100644
--- a/keyboards/fc660c/rules.mk
+++ b/keyboards/fc660c/rules.mk
@@ -11,7 +11,7 @@ NKRO_ENABLE = yes # Enable N-Key Rollover
# Optimize size but this may cause error "relocation truncated to fit"
#EXTRALDFLAGS = -Wl,--relax
+I2C_DRIVER_REQUIRED = yes
+
CUSTOM_MATRIX = yes
-SRC += matrix.c \
- actuation_point.c \
- i2c.c
+SRC += matrix.c ad5258.c
diff --git a/keyboards/fc980c/actuation_point.c b/keyboards/fc980c/actuation_point.c
deleted file mode 100644
index 5f4cb16f40..0000000000
--- a/keyboards/fc980c/actuation_point.c
+++ /dev/null
@@ -1,87 +0,0 @@
-/*
-Copyright 2017 Balz Guenat
-based on work by Jun Wako <wakojun@gmail.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 "actuation_point.h"
-#include "i2c.h"
-
-///////////////////////////////////////////////////////////////////////////////
-//
-// AD5258 I2C digital potentiometer
-// http://www.analog.com/media/en/technical-documentation/data-sheets/AD5258.pdf
-//
-#define AD5258_ADDR 0b0011000
-#define AD5258_INST_RDAC 0x00
-#define AD5258_INST_EEPROM 0x20
-
-uint8_t read_rdac(void) {
- // read RDAC register
- i2c_start_write(AD5258_ADDR);
- i2c_master_write(AD5258_INST_RDAC);
- i2c_start_read(AD5258_ADDR);
- uint8_t ret = i2c_master_read(I2C_NACK);
- i2c_master_stop();
- return ret;
-};
-
-uint8_t read_eeprom(void) {
- i2c_start_write(AD5258_ADDR);
- i2c_master_write(AD5258_INST_EEPROM);
- i2c_start_read(AD5258_ADDR);
- uint8_t ret = i2c_master_read(I2C_NACK);
- i2c_master_stop();
- return ret;
-};
-
-void write_rdac(uint8_t rdac) {
- // write RDAC register:
- i2c_start_write(AD5258_ADDR);
- i2c_master_write(AD5258_INST_RDAC);
- i2c_master_write(rdac & 0x3F);
- i2c_master_stop();
-};
-
-void actuation_point_up(void) {
- // write RDAC register: lower value makes actuation point shallow
- uint8_t rdac = read_rdac();
- if (rdac == 0)
- write_rdac(0);
- else
- write_rdac(rdac-1);
-};
-
-void actuation_point_down(void) {
- // write RDAC register: higher value makes actuation point deep
- uint8_t rdac = read_rdac();
- if (rdac == 63)
- write_rdac(63);
- else
- write_rdac(rdac+1);
-};
-
-void adjust_actuation_point(int offset) {
- i2c_master_init();
- uint8_t rdac = read_eeprom() + offset;
- if (rdac > 63) { // protects from under and overflows
- if (offset > 0)
- write_rdac(63);
- else
- write_rdac(0);
- } else {
- write_rdac(rdac);
- }
-}
diff --git a/keyboards/fc980c/actuation_point.h b/keyboards/fc980c/actuation_point.h
deleted file mode 100644
index e02832186c..0000000000
--- a/keyboards/fc980c/actuation_point.h
+++ /dev/null
@@ -1,29 +0,0 @@
-/*
-Copyright 2017 Balz Guenat
-
-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 <stdint.h>
-
-// see keymaps/actuation-point-example to see how these functions can be used.
-uint8_t read_rdac(void);
-uint8_t read_eeprom(void);
-void actuation_point_up(void);
-void actuation_point_down(void);
-
-// be careful with this.
-void adjust_actuation_point(int offset);
diff --git a/keyboards/fc980c/ad5258.c b/keyboards/fc980c/ad5258.c
new file mode 100644
index 0000000000..b1df75789b
--- /dev/null
+++ b/keyboards/fc980c/ad5258.c
@@ -0,0 +1,52 @@
+/*
+Copyright 2017 Balz Guenat
+based on work by Jun Wako <wakojun@gmail.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 "ad5258.h"
+#include "i2c_master.h"
+
+///////////////////////////////////////////////////////////////////////////////
+//
+// AD5258 I2C digital potentiometer
+// http://www.analog.com/media/en/technical-documentation/data-sheets/AD5258.pdf
+//
+#define AD5258_I2C_ADDRESS 0x18
+#define AD5258_INST_RDAC 0x00
+#define AD5258_INST_EEPROM 0x20
+
+void ad5258_init(void) {
+ i2c_init();
+}
+
+uint8_t ad5258_read_rdac(void) {
+ // read RDAC register
+ uint8_t ret = 0;
+ i2c_readReg(AD5258_I2C_ADDRESS, AD5258_INST_RDAC, &ret, 1, 100);
+ return ret;
+}
+
+uint8_t ad5258_read_eeprom(void) {
+ uint8_t ret = 0;
+ i2c_readReg(AD5258_I2C_ADDRESS, AD5258_INST_EEPROM, &ret, 1, 100);
+ return ret;
+}
+
+void ad5258_write_rdac(uint8_t rdac) {
+ // write RDAC register:
+ uint8_t data = rdac & 0x3F;
+ i2c_writeReg(AD5258_I2C_ADDRESS, AD5258_INST_RDAC, &data, 1, 100);
+}
diff --git a/keyboards/fc980c/ad5258.h b/keyboards/fc980c/ad5258.h
new file mode 100644
index 0000000000..c27f247675
--- /dev/null
+++ b/keyboards/fc980c/ad5258.h
@@ -0,0 +1,28 @@
+/*
+Copyright 2017 Balz Guenat
+
+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 <stdint.h>
+
+void ad5258_init(void);
+
+uint8_t ad5258_read_rdac(void);
+
+uint8_t ad5258_read_eeprom(void);
+
+void ad5258_write_rdac(uint8_t rdac);
diff --git a/keyboards/fc980c/config.h b/keyboards/fc980c/config.h
index 7c0c3b31a6..776b8ef35f 100644
--- a/keyboards/fc980c/config.h
+++ b/keyboards/fc980c/config.h
@@ -30,8 +30,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
* These options are also useful to firmware size reduction.
*/
-#define USE_I2C
-
/* disable debug print */
//#define NO_DEBUG
diff --git a/keyboards/fc980c/fc980c.c b/keyboards/fc980c/fc980c.c
index fc3696f244..c1c62da9ac 100644
--- a/keyboards/fc980c/fc980c.c
+++ b/keyboards/fc980c/fc980c.c
@@ -15,16 +15,46 @@ 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 "fc980c.h"
#ifdef ACTUATION_DEPTH_ADJUSTMENT
-#include "actuation_point.h"
-#endif
-
void matrix_init_kb(void) {
-#ifdef ACTUATION_DEPTH_ADJUSTMENT
adjust_actuation_point(ACTUATION_DEPTH_ADJUSTMENT);
-#endif
- matrix_init_user();
+ matrix_init_user();
+}
+
+void actuation_point_up(void) {
+ // write RDAC register: lower value makes actuation point shallow
+ uint8_t rdac = ad5258_read_rdac();
+ if (rdac == 0) {
+ ad5258_write_rdac(0);
+ } else {
+ ad5258_write_rdac(rdac - 1);
+ }
}
+
+void actuation_point_down(void) {
+ // write RDAC register: higher value makes actuation point deep
+ uint8_t rdac = ad5258_read_rdac();
+ if (rdac == 63) {
+ ad5258_write_rdac(63);
+ } else {
+ ad5258_write_rdac(rdac + 1);
+ }
+}
+
+void adjust_actuation_point(int offset) {
+ ad5258_init();
+ uint8_t rdac = ad5258_read_eeprom() + offset;
+ if (rdac > 63) { // protects from under and overflows
+ if (offset > 0) {
+ ad5258_write_rdac(63);
+ } else {
+ ad5258_write_rdac(0);
+ }
+ } else {
+ ad5258_write_rdac(rdac);
+ }
+}
+#endif
diff --git a/keyboards/fc980c/fc980c.h b/keyboards/fc980c/fc980c.h
new file mode 100644
index 0000000000..aa98e36be9
--- /dev/null
+++ b/keyboards/fc980c/fc980c.h
@@ -0,0 +1,31 @@
+/*
+Copyright 2017 Balz Guenat
+
+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 ACTUATION_DEPTH_ADJUSTMENT
+# include "ad5258.h"
+
+// see keymaps/actuation-point-example to see how these functions can be used.
+void actuation_point_up(void);
+void actuation_point_down(void);
+
+// be careful with this.
+void adjust_actuation_point(int offset);
+#endif
diff --git a/keyboards/fc980c/i2c.c b/keyboards/fc980c/i2c.c
deleted file mode 100644
index 084c890c40..0000000000
--- a/keyboards/fc980c/i2c.c
+++ /dev/null
@@ -1,162 +0,0 @@
-#include <util/twi.h>
-#include <avr/io.h>
-#include <stdlib.h>
-#include <avr/interrupt.h>
-#include <util/twi.h>
-#include <stdbool.h>
-#include "i2c.h"
-
-#ifdef USE_I2C
-
-// Limits the amount of we wait for any one i2c transaction.
-// Since were running SCL line 100kHz (=> 10μs/bit), and each transactions is
-// 9 bits, a single transaction will take around 90μs to complete.
-//
-// (F_CPU/SCL_CLOCK) => # of μC cycles to transfer a bit
-// poll loop takes at least 8 clock cycles to execute
-#define I2C_LOOP_TIMEOUT (9+1)*(F_CPU/SCL_CLOCK)/8
-
-#define BUFFER_POS_INC() (slave_buffer_pos = (slave_buffer_pos+1)%SLAVE_BUFFER_SIZE)
-
-volatile uint8_t i2c_slave_buffer[SLAVE_BUFFER_SIZE];
-
-static volatile uint8_t slave_buffer_pos;
-static volatile bool slave_has_register_set = false;
-
-// Wait for an i2c operation to finish
-inline static
-void i2c_delay(void) {
- uint16_t lim = 0;
- while(!(TWCR & (1<<TWINT)) && lim < I2C_LOOP_TIMEOUT)
- lim++;
-
- // easier way, but will wait slightly longer
- // _delay_us(100);
-}
-
-// Setup twi to run at 100kHz
-void i2c_master_init(void) {
- // no prescaler
- TWSR = 0;
- // Set TWI clock frequency to SCL_CLOCK. Need TWBR>10.
- // Check datasheets for more info.
- TWBR = ((F_CPU/SCL_CLOCK)-16)/2;
-}
-
-// Start a transaction with the given i2c slave address. The direction of the
-// transfer is set with I2C_READ and I2C_WRITE.
-// returns: 0 => success
-// 1 => error
-uint8_t i2c_master_start(uint8_t address) {
- TWCR = (1<<TWINT) | (1<<TWEN) | (1<<TWSTA);
-
- i2c_delay();
-
- // check that we started successfully
- if ( (TW_STATUS != TW_START) && (TW_STATUS != TW_REP_START))
- return 1;
-
- TWDR = address;
- TWCR = (1<<TWINT) | (1<<TWEN);
-
- i2c_delay();
-
- if ( (TW_STATUS != TW_MT_SLA_ACK) && (TW_STATUS != TW_MR_SLA_ACK) )
- return 1; // slave did not acknowledge
- else
- return 0; // success
-}
-
-
-// Finish the i2c transaction.
-void i2c_master_stop(void) {
- TWCR = (1<<TWINT) | (1<<TWEN) | (1<<TWSTO);
-
- uint16_t lim = 0;
- while(!(TWCR & (1<<TWSTO)) && lim < I2C_LOOP_TIMEOUT)
- lim++;
-}
-
-// Write one byte to the i2c slave.
-// returns 0 => slave ACK
-// 1 => slave NACK
-uint8_t i2c_master_write(uint8_t data) {
- TWDR = data;
- TWCR = (1<<TWINT) | (1<<TWEN);
-
- i2c_delay();
-
- // check if the slave acknowledged us
- return (TW_STATUS == TW_MT_DATA_ACK) ? 0 : 1;
-}
-
-// Read one byte from the i2c slave. If ack=1 the slave is acknowledged,
-// if ack=0 the acknowledge bit is not set.
-// returns: byte read from i2c device
-uint8_t i2c_master_read(int ack) {
- TWCR = (1<<TWINT) | (1<<TWEN) | (ack<<TWEA);
-
- i2c_delay();
- return TWDR;
-}
-
-void i2c_reset_state(void) {
- TWCR = 0;
-}
-
-void i2c_slave_init(uint8_t address) {
- TWAR = address << 0; // slave i2c address
- // TWEN - twi enable
- // TWEA - enable address acknowledgement
- // TWINT - twi interrupt flag
- // TWIE - enable the twi interrupt
- TWCR = (1<<TWIE) | (1<<TWEA) | (1<<TWINT) | (1<<TWEN);
-}
-
-ISR(TWI_vect);
-
-ISR(TWI_vect) {
- uint8_t ack = 1;
- switch(TW_STATUS) {
- case TW_SR_SLA_ACK:
- // this device has been addressed as a slave receiver
- slave_has_register_set = false;
- break;
-
- case TW_SR_DATA_ACK:
- // this device has received data as a slave receiver
- // The first byte that we receive in this transaction sets the location
- // of the read/write location of the slaves memory that it exposes over
- // i2c. After that, bytes will be written at slave_buffer_pos, incrementing
- // slave_buffer_pos after each write.
- if(!slave_has_register_set) {
- slave_buffer_pos = TWDR;
- // don't acknowledge the master if this memory loctaion is out of bounds
- if ( slave_buffer_pos >= SLAVE_BUFFER_SIZE ) {
- ack = 0;
- slave_buffer_pos = 0;
- }
- slave_has_register_set = true;
- } else {
- i2c_slave_buffer[slave_buffer_pos] = TWDR;
- BUFFER_POS_INC();
- }
- break;
-
- case TW_ST_SLA_ACK:
- case TW_ST_DATA_ACK:
- // master has addressed this device as a slave transmitter and is
- // requesting data.
- TWDR = i2c_slave_buffer[slave_buffer_pos];
- BUFFER_POS_INC();
- break;
-
- case TW_BUS_ERROR: // something went wrong, reset twi state
- TWCR = 0;
- default:
- break;
- }
- // Reset everything, so we are ready for the next TWI interrupt
- TWCR |= (1<<TWIE) | (1<<TWINT) | (ack<<TWEA) | (1<<TWEN);
-}
-#endif
diff --git a/keyboards/fc980c/i2c.h b/keyboards/fc980c/i2c.h
deleted file mode 100644
index 8910e70f10..0000000000
--- a/keyboards/fc980c/i2c.h
+++ /dev/null
@@ -1,46 +0,0 @@
-#pragma once
-
-#include <stdint.h>
-
-#ifndef F_CPU
-#define F_CPU 16000000UL
-#endif
-
-#define I2C_READ 1
-#define I2C_WRITE 0
-
-#define I2C_ACK 1
-#define I2C_NACK 0
-
-#define SLAVE_BUFFER_SIZE 0x10
-
-// i2c SCL clock frequency
-#define SCL_CLOCK 400000L
-
-extern volatile uint8_t i2c_slave_buffer[SLAVE_BUFFER_SIZE];
-
-void i2c_master_init(void);
-uint8_t i2c_master_start(uint8_t address);
-void i2c_master_stop(void);
-uint8_t i2c_master_write(uint8_t data);
-uint8_t i2c_master_read(int);
-void i2c_reset_state(void);
-void i2c_slave_init(uint8_t address);
-
-
-static inline unsigned char i2c_start_read(unsigned char addr) {
- return i2c_master_start((addr << 1) | I2C_READ);
-}
-
-static inline unsigned char i2c_start_write(unsigned char addr) {
- return i2c_master_start((addr << 1) | I2C_WRITE);
-}
-
-// from SSD1306 scrips
-extern unsigned char i2c_rep_start(unsigned char addr);
-extern void i2c_start_wait(unsigned char addr);
-extern unsigned char i2c_readAck(void);
-extern unsigned char i2c_readNak(void);
-extern unsigned char i2c_read(unsigned char ack);
-
-#define i2c_read(ack) (ack) ? i2c_readAck() : i2c_readNak();
diff --git a/keyboards/fc980c/keymaps/actuation-point-example/config.h b/keyboards/fc980c/keymaps/actuation-point-example/config.h
index c2a538b6ae..a4ecab70fd 100644
--- a/keyboards/fc980c/keymaps/actuation-point-example/config.h
+++ b/keyboards/fc980c/keymaps/actuation-point-example/config.h
@@ -14,11 +14,7 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
-#ifndef CONFIG_USER_H
-#define CONFIG_USER_H
-
-
-// place overrides here
+#pragma once
// higher value means deeper actuation point, less sensitive
// be careful and only make small adjustments (steps of 1 or 2).
@@ -27,5 +23,3 @@
// this should probably stay in the range +/-5.
#undef ACTUATION_DEPTH_ADJUSTMENT
#define ACTUATION_DEPTH_ADJUSTMENT +1
-
-#endif
diff --git a/keyboards/fc980c/keymaps/actuation-point-example/keymap.c b/keyboards/fc980c/keymaps/actuation-point-example/keymap.c
index 85e782d625..50b6a9ff40 100644
--- a/keyboards/fc980c/keymaps/actuation-point-example/keymap.c
+++ b/keyboards/fc980c/keymaps/actuation-point-example/keymap.c
@@ -15,7 +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/>.
*/
#include QMK_KEYBOARD_H
-#include "actuation_point.h"
enum custom_keycodes
{
@@ -62,12 +61,12 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record)
}
case AP_READ_RDAC:
{
- xprintf("RDAC: %d", read_rdac());
+ xprintf("RDAC: %d", ad5258_read_rdac());
return false;
}
case AP_READ_EEPROM:
{
- xprintf("EEPROM: %d", read_eeprom());
+ xprintf("EEPROM: %d", ad5258_read_eeprom());
return false;
}
diff --git a/keyboards/fc980c/rules.mk b/keyboards/fc980c/rules.mk
index ed4a7ca66d..03a674d668 100644
--- a/keyboards/fc980c/rules.mk
+++ b/keyboards/fc980c/rules.mk
@@ -11,7 +11,7 @@ NKRO_ENABLE = yes # Enable N-Key Rollover
# Optimize size but this may cause error "relocation truncated to fit"
#EXTRALDFLAGS = -Wl,--relax
+I2C_DRIVER_REQUIRED = yes
+
CUSTOM_MATRIX = yes
-SRC += matrix.c \
- actuation_point.c \
- i2c.c
+SRC += matrix.c ad5258.c
diff --git a/keyboards/feker/ik75/config.h b/keyboards/feker/ik75/config.h
index a9914722fc..aed1907803 100644
--- a/keyboards/feker/ik75/config.h
+++ b/keyboards/feker/ik75/config.h
@@ -25,9 +25,8 @@
#define RGB_MATRIX_FRAMEBUFFER_EFFECTS
/* RGB Matrix config */
- #define DRIVER_ADDR_1 0b1011111
- #define DRIVER_ADDR_2 0b1010000
- #define DRIVER_COUNT 2
+ #define IS31FL3733_I2C_ADDRESS_1 IS31FL3733_I2C_ADDRESS_VCC_VCC
+ #define IS31FL3733_I2C_ADDRESS_2 IS31FL3733_I2C_ADDRESS_GND_GND
#define DRIVER_1_LED_TOTAL 63
#define DRIVER_2_LED_TOTAL 64
diff --git a/keyboards/feker/ik75/ik75.c b/keyboards/feker/ik75/ik75.c
index 98b24abfe8..826afab01b 100644
--- a/keyboards/feker/ik75/ik75.c
+++ b/keyboards/feker/ik75/ik75.c
@@ -18,7 +18,7 @@
#include "quantum.h"
#ifdef RGB_MATRIX_ENABLE
-const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = {
+const is31fl3733_led_t PROGMEM g_is31fl3733_leds[RGB_MATRIX_LED_COUNT] = {
/* Refer to IS31 manual for these locations
* driver
* | G location
diff --git a/keyboards/ferris/0_1/rules.mk b/keyboards/ferris/0_1/rules.mk
index 487375928e..f971aa9a48 100644
--- a/keyboards/ferris/0_1/rules.mk
+++ b/keyboards/ferris/0_1/rules.mk
@@ -16,4 +16,4 @@ NO_USB_STARTUP_CHECK = yes
LTO_ENABLE = yes
SRC += matrix.c
-QUANTUM_LIB_SRC += i2c_master.c
+I2C_DRIVER_REQUIRED = yes
diff --git a/keyboards/ferris/0_2/bling/bling.c b/keyboards/ferris/0_2/bling/bling.c
index 8af1d33e85..07f58149cc 100644
--- a/keyboards/ferris/0_2/bling/bling.c
+++ b/keyboards/ferris/0_2/bling/bling.c
@@ -27,7 +27,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
| | 4 | | || | | 4 | |
| 6 | | | 2 || 2 | | | 5 |
*/
-const is31_led g_is31_leds[RGB_MATRIX_LED_COUNT] = {
+const is31fl3731_led_t g_is31fl3731_leds[RGB_MATRIX_LED_COUNT] = {
/* Refer to IS31 manual for these locations
* driver
* | R location
diff --git a/keyboards/ferris/0_2/bling/config.h b/keyboards/ferris/0_2/bling/config.h
index cbb3b11c90..64e7a6de2d 100644
--- a/keyboards/ferris/0_2/bling/config.h
+++ b/keyboards/ferris/0_2/bling/config.h
@@ -18,9 +18,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#pragma once
/* LED Drivers */
-#define DRIVER_ADDR_1 0b1110100
-#define DRIVER_ADDR_2 0b1110101
-#define DRIVER_COUNT 2
+#define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND
+#define IS31FL3731_I2C_ADDRESS_2 IS31FL3731_I2C_ADDRESS_SCL
#define DRIVER_1_LED_TOTAL 7
#define DRIVER_2_LED_TOTAL 7
#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL)
diff --git a/keyboards/ferris/0_2/rules.mk b/keyboards/ferris/0_2/rules.mk
index f3760b7b62..6f67e3dece 100644
--- a/keyboards/ferris/0_2/rules.mk
+++ b/keyboards/ferris/0_2/rules.mk
@@ -16,6 +16,6 @@ NO_USB_STARTUP_CHECK = yes
LTO_ENABLE = no
SRC += matrix.c
-QUANTUM_LIB_SRC += i2c_master.c
+I2C_DRIVER_REQUIRED = yes
DEFAULT_FOLDER = ferris/0_2/base
diff --git a/keyboards/flashquark/horizon_z/config.h b/keyboards/flashquark/horizon_z/config.h
index 8828834d74..ddeafe578d 100755
--- a/keyboards/flashquark/horizon_z/config.h
+++ b/keyboards/flashquark/horizon_z/config.h
@@ -72,7 +72,6 @@
// # define ENABLE_RGB_MATRIX_SOLID_SPLASH
// # define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH
-# define DRIVER_ADDR_1 0b1010000
-# define DRIVER_COUNT 1
+# define IS31FL3733_I2C_ADDRESS_1 IS31FL3733_I2C_ADDRESS_GND_GND
# define RGB_MATRIX_LED_COUNT 62
#endif
diff --git a/keyboards/flashquark/horizon_z/horizon_z.c b/keyboards/flashquark/horizon_z/horizon_z.c
index da62deaf29..a9faa5a943 100755
--- a/keyboards/flashquark/horizon_z/horizon_z.c
+++ b/keyboards/flashquark/horizon_z/horizon_z.c
@@ -17,7 +17,7 @@
#include "quantum.h"
#ifdef RGB_MATRIX_ENABLE
-const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = {
+const is31fl3733_led_t PROGMEM g_is31fl3733_leds[RGB_MATRIX_LED_COUNT] = {
{0, B_1, A_1, C_1},
{0, B_2, A_2, C_2},
{0, B_3, A_3, C_3},
diff --git a/keyboards/flehrad/bigswitch/keymaps/333fred/config.h b/keyboards/flehrad/bigswitch/keymaps/333fred/config.h
deleted file mode 100644
index 6e9219115c..0000000000
--- a/keyboards/flehrad/bigswitch/keymaps/333fred/config.h
+++ /dev/null
@@ -1,27 +0,0 @@
-/*
- Copyright (c) 2020 Fred Silberberg
-
- Permission is hereby granted, free of charge, to any person obtaining a copy
- of this software and associated documentation files (the "Software"), to deal
- in the Software without restriction, including without limitation the rights
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- copies of the Software, and to permit persons to whom the Software is
- furnished to do so, subject to the following conditions:
-
- The above copyright notice and this permission notice shall be included in all
- copies or substantial portions of the Software.
-
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- THE SOFTWARE.
-*/
-
-#pragma once
-
-// Long tapping term on the big switch, because it takes so long to press
-#define TAPPING_TERM 500
-#define PERMISSIVE_HOLD
diff --git a/keyboards/flehrad/bigswitch/keymaps/333fred/keymap.c b/keyboards/flehrad/bigswitch/keymaps/333fred/keymap.c
deleted file mode 100644
index d323bcc2c4..0000000000
--- a/keyboards/flehrad/bigswitch/keymaps/333fred/keymap.c
+++ /dev/null
@@ -1,145 +0,0 @@
-/*
- Copyright (c) 2020 Fred Silberberg
-
- Permission is hereby granted, free of charge, to any person obtaining a copy
- of this software and associated documentation files (the "Software"), to deal
- in the Software without restriction, including without limitation the rights
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- copies of the Software, and to permit persons to whom the Software is
- furnished to do so, subject to the following conditions:
-
- The above copyright notice and this permission notice shall be included in all
- copies or substantial portions of the Software.
-
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- THE SOFTWARE.
-*/
-
-#include QMK_KEYBOARD_H
-
-typedef enum {
- SINGLE_TAP, SINGLE_HOLD, DOUBLE, TRIPLE, QUAD
-} tap_dance_state_enum;
-
-enum {
- TD_KEY = 0
-};
-
-static tap_dance_state_enum tap_dance_state;
-static bool tap_dance_active = false;
-static uint16_t timer;
-
-void dance_cycle(bool override_timer) {
- if (tap_dance_active)
- {
- if (timer_elapsed(timer) > 100 || override_timer)
- {
- switch (tap_dance_state)
- {
- case SINGLE_HOLD:
- {
- rgblight_increase_hue_noeeprom();
- break;
- }
-
- case DOUBLE:
- {
- rgblight_step_noeeprom();
- break;
- }
-
- case TRIPLE:
- {
- rgblight_toggle_noeeprom();
- break;
- }
-
- default:
- // Not needed
- break;
- }
-
- timer = timer_read();
- }
- }
-}
-
-void dance_finished(tap_dance_state_t *state, void* user_data) {
- // Determine the current state
- switch (state->count)
- {
- case 1:
- {
- if (state->interrupted || state->pressed == 0) tap_dance_state = SINGLE_TAP;
- else tap_dance_state = SINGLE_HOLD;
- break;
- }
- case 2:
- {
- tap_dance_state = DOUBLE;
- break;
- }
- case 3:
- {
- tap_dance_state = TRIPLE;
- break;
- }
- default:
- {
- tap_dance_state = QUAD;
- break;
- }
- }
-
- switch (tap_dance_state)
- {
- case SINGLE_TAP:
- {
- // VS Build: CTRL+SHIFT+B
- send_string_with_delay_P(PSTR(SS_DOWN(X_LCTL) SS_DOWN(X_LSFT) "b" SS_UP(X_LSFT) SS_UP(X_LCTL)), 10);
- tap_dance_active = false;
- break;
- }
-
- case SINGLE_HOLD:
- case DOUBLE:
- case TRIPLE:
- {
- // These are handled by the matrix_scan, which will register the appropriate rgb
- // functions every scan
- tap_dance_active = true;
- timer = timer_read();
- dance_cycle(true);
- break;
- }
-
- case QUAD:
- {
- // Reprogram
- reset_keyboard();
- break;
- }
- }
-}
-
-void dance_reset(tap_dance_state_t *state, void* user_data)
-{
- tap_dance_active = false;
-}
-
-tap_dance_action_t tap_dance_actions[] = {
- [TD_KEY] = ACTION_TAP_DANCE_FN_ADVANCED (NULL, dance_finished, dance_reset)
-};
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [0] = LAYOUT(TD(TD_KEY))
-};
-
-void matrix_scan_user(void) {
- dance_cycle(false);
-}
diff --git a/keyboards/flehrad/bigswitch/keymaps/333fred/rules.mk b/keyboards/flehrad/bigswitch/keymaps/333fred/rules.mk
deleted file mode 100644
index 20aaadacbc..0000000000
--- a/keyboards/flehrad/bigswitch/keymaps/333fred/rules.mk
+++ /dev/null
@@ -1,5 +0,0 @@
-# I'm not using things from my userpace in this one
-USER_NAME = disable
-
-RGBLIGHT_ENABLE = yes
-TAP_DANCE_ENABLE = yes
diff --git a/keyboards/flehrad/bigswitch/keymaps/wanleg/config.h b/keyboards/flehrad/bigswitch/keymaps/wanleg/config.h
deleted file mode 100644
index bb638ce599..0000000000
--- a/keyboards/flehrad/bigswitch/keymaps/wanleg/config.h
+++ /dev/null
@@ -1,42 +0,0 @@
-/* Copyright 2018 wanleg
- *
- * 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
-
-// place overrides here
-#undef MATRIX_ROW_PINS
-#define MATRIX_ROW_PINS { B4 }
-#undef MATRIX_COL_PINS
-#define MATRIX_COL_PINS { B6 }
-
-/* COL2ROW, ROW2COL*/
-#undef DIODE_DIRECTION
-#define DIODE_DIRECTION COL2ROW
-
-#define BACKLIGHT_PIN B5
-#define BACKLIGHT_BREATHING
-#define BACKLIGHT_LEVELS 3
-#define BREATHING_PERIOD 5
-
-/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
-#undef DEBOUNCE
-#define DEBOUNCE 5
-
-// set flashing LED with QMK DFU
-#define QMK_LED B0
-
-// set audio pin
-#define AUDIO_PIN C6
diff --git a/keyboards/flehrad/bigswitch/keymaps/wanleg/keymap.c b/keyboards/flehrad/bigswitch/keymaps/wanleg/keymap.c
deleted file mode 100644
index 4a34640466..0000000000
--- a/keyboards/flehrad/bigswitch/keymaps/wanleg/keymap.c
+++ /dev/null
@@ -1,26 +0,0 @@
-/* Copyright 2018 wanleg
- *
- * 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 "wanleg.h"
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-[0] = LAYOUT( /* Base */
-TD(CAD_TD)
-),
-[1] = LAYOUT( /*Secondary*/
-TD(BSW_TAP_DANCE)
-),
-}; \ No newline at end of file
diff --git a/keyboards/flehrad/bigswitch/keymaps/wanleg/rules.mk b/keyboards/flehrad/bigswitch/keymaps/wanleg/rules.mk
deleted file mode 100644
index d6c3b1880e..0000000000
--- a/keyboards/flehrad/bigswitch/keymaps/wanleg/rules.mk
+++ /dev/null
@@ -1,14 +0,0 @@
-#If using a ProMicro and it has the QMK DFU bootloader instead of Caterina,
-#run "make <keyboard>:<keymap> dfu=qmk" when compiling to ensure it is flagged properly after being flashed
-ifeq ($(strip $(dfu)), qmk)
- BOOTLOADER = qmk-dfu
-endif
-
-AUDIO_ENABLE = yes # Audio output on port C6
-BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality on B7 by default
-CONSOLE_ENABLE = no # Console for debug(+400)
-COMMAND_ENABLE = no # Commands for debug and configuration
-RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
-MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config)
-UNICODE_ENABLE = no # Unicode
-BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
diff --git a/keyboards/foostan/cornelius/keymaps/hvp/config.h b/keyboards/foostan/cornelius/keymaps/hvp/config.h
deleted file mode 100644
index a2a492ff27..0000000000
--- a/keyboards/foostan/cornelius/keymaps/hvp/config.h
+++ /dev/null
@@ -1,19 +0,0 @@
-/* Copyright 2018 Carlos Filoteo
- *
- * 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 TAPPING_TERM 200
-#define TAPPING_TERM_PER_KEY
diff --git a/keyboards/foostan/cornelius/keymaps/hvp/keymap.c b/keyboards/foostan/cornelius/keymaps/hvp/keymap.c
deleted file mode 100644
index 247eaf7a4e..0000000000
--- a/keyboards/foostan/cornelius/keymaps/hvp/keymap.c
+++ /dev/null
@@ -1,66 +0,0 @@
-/* Copyright 2020 foostan
- *
- * 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 "hvp.c"
-
-#define LT3_ESC LT(3, KC_ESC)
-#define LT4_TAB LT(5, KC_TAB)
-#define LT2 LT(2, KC_LEFT_CURLY_BRACE)
-#define LT1 LT(1, KC_RIGHT_CURLY_BRACE)
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-[0] = LAYOUT(
- LT4_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,
- LT3_ESC, MT(MOD_LGUI, KC_A), MT(MOD_LALT, KC_S), MT(MOD_LSFT, KC_D), MT(MOD_LCTL, KC_F), LT(4,KC_G), MT(MOD_RCTL, KC_H), MT(MOD_RSFT, KC_J), MT(MOD_RALT,KC_K), MT(MOD_RGUI,KC_L), TD(TD1), TD(TD2),
- KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, TD(TD3), SC_SENT,
- SC_LCPO, KC_LCTL, KC_LGUI, KC_LALT, LT2, KC_SPC, KC_ENT, LT1, KC_RALT, KC_RGUI, KC_RCTL, SC_RSPC
- ),
-
-[1] = LAYOUT( /* Right */
- KC_TILDE, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC,
- KC_DEL, KC_LGUI, KC_LALT, KC_LSFT, KC_LCTL, XXXXXXX, KC_MINS, KC_EQL, KC_LCBR, KC_RCBR, KC_PIPE, KC_GRV,
- _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_UNDS, KC_PLUS, KC_LBRC, KC_RBRC, KC_BSLS, KC_TILD,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
- ),
-
-[2] = LAYOUT( /* Left */
- KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC,
- KC_DEL, KC_LGUI, KC_LALT, KC_LSFT, KC_LCTL, XXXXXXX, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, XXXXXXX, XXXXXXX,
- _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_HOME, KC_PGDN, KC_PGUP, KC_END, XXXXXXX, XXXXXXX,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
- ),
-
-[3] = LAYOUT( /* 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_DELETE, KC_LGUI, KC_LALT, KC_LSFT, KC_LCTL, XXXXXXX, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, XXXXXXX, XXXXXXX,
- _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_HOME, KC_PGDN, KC_PGUP, KC_END, _______, _______,
- _______, _______, _______, _______, _______, KC_MUTE, KC_MPLY, KC_MSTP, KC_MPRV, KC_VOLD, KC_VOLU, KC_MNXT
- ),
-
-[4] = LAYOUT(
- _______, LGUI(KC_1), LGUI(KC_2), LGUI(KC_3), LGUI(KC_4), LGUI(KC_5), LGUI(KC_6), LGUI(KC_7), KC_7, KC_8, KC_9, KC_BSPC,
- _______, _______, _______, _______, _______, _______, _______, XXXXXXX, KC_4, KC_5, KC_6, KC_0,
- _______, _______, _______, _______, _______, _______, XXXXXXX, KC_0, KC_1, KC_2, KC_3, _______,
- QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
- ),
-
-[5] = LAYOUT(
- _______, G(S(KC_1)), G(S(KC_2)), G(S(KC_3)), G(S(KC_4)), G(S(KC_5)), G(S(KC_6)), G(S(KC_7)), G(S(KC_8)), G(S(KC_9)), G(S(KC_0)), _______,
- _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
- KC_PSCR, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_CAPS,
- QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_NUM
- ),
-};
diff --git a/keyboards/foostan/cornelius/keymaps/hvp/readme.md b/keyboards/foostan/cornelius/keymaps/hvp/readme.md
deleted file mode 100644
index cb35bd8a29..0000000000
--- a/keyboards/foostan/cornelius/keymaps/hvp/readme.md
+++ /dev/null
@@ -1 +0,0 @@
-# The default keymap for cornelius
diff --git a/keyboards/foostan/cornelius/keymaps/hvp/rules.mk b/keyboards/foostan/cornelius/keymaps/hvp/rules.mk
deleted file mode 100644
index 1ba2fa8fbe..0000000000
--- a/keyboards/foostan/cornelius/keymaps/hvp/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-TAP_DANCE_ENABLE = yes \ No newline at end of file
diff --git a/keyboards/foostan/cornelius/keymaps/pdl/config.h b/keyboards/foostan/cornelius/keymaps/pdl/config.h
deleted file mode 100644
index f2a5a522ea..0000000000
--- a/keyboards/foostan/cornelius/keymaps/pdl/config.h
+++ /dev/null
@@ -1,29 +0,0 @@
-/*
-This is the c configuration file for the keymap
-
-Copyright 2012 Jun Wako <wakojun@gmail.com>
-Copyright 2015 Jack Humbert
-Copyright 2021 Daniel Perrett
-
-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 TAPPING_TOGGLE 2
-#define TAPPING_TERM 200
-
-#define COMBO_PDL
-#define COMBO_TERM 100
diff --git a/keyboards/foostan/cornelius/keymaps/pdl/keymap.c b/keyboards/foostan/cornelius/keymaps/pdl/keymap.c
deleted file mode 100644
index 3b71280ad8..0000000000
--- a/keyboards/foostan/cornelius/keymaps/pdl/keymap.c
+++ /dev/null
@@ -1,62 +0,0 @@
-/* Copyright 2021 Daniel Perrett
- *
- * 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 "pdl.h"
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [_QWERTY] = LAYOUT_wrapper(
- MY_FESC, _________________QWERTY_L1_________________, _________________QWERTY_R1_________________, KC_BSPC,
- KC_TAB, _________________QWERTY_L2_________________, _________________QWERTY_R2_________________, MY_SQUO,
- MY_SBSL, _________________QWERTY_L3_________________, _________________QWERTY_R3_________________, KC_RSFT,
- KC_LCTL, KC_LGUI, KC_LALT, NUMBRS, NAVIGN, KC_SPC, MY_SSPC, NUMBRS, NAVIGN, MY_AMNU, FUNCTN, MY_CENT
- ),
- [_PROXIM] = LAYOUT_wrapper(
- MY_FESC, _________________PROXIM_L1_________________, _________________PROXIM_R1_________________, KC_BSPC,
- KC_TAB, _________________PROXIM_L2_________________, _________________PROXIM_R2_________________, MY_ASCL,
- MY_SBSL, _________________PROXIM_L3_________________, _________________PROXIM_R3_________________, KC_RSFT,
- KC_LCTL, KC_LGUI, KC_LALT, NUMBRS, NAVIGN, KC_SPC, MY_SSPC, NUMBRS, NAVIGN, MY_AMNU, FUNCTN, MY_CENT
- ),
- [_NAVIGN] = LAYOUT_wrapper(
- _______, _________________NAVIGN_L1_________________, _______, _______, _______, _______, _______, _______,
- _______, _________________NAVIGN_L2_________________, _______, _______, _______, _______, _______, _______,
- _______, _________________NAVIGN_L3_________________, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
- ),
- [_PUNCTN] = LAYOUT_wrapper(
- _______, _______, _______, _______, _______, _______, _________________PUNCTN_R1_________________, _______,
- _______, _______, _______, _______, _______, _______, _________________PUNCTN_R2_________________, _______,
- _______, _______, _______, _______, _______, _______, _________________PUNCTN_R3_________________, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
- ),
- [_NUMBRS] = LAYOUT_wrapper(
- _______, _________________NUMBRS_L1_________________, _______, _______, _______, _______, _______, _______,
- _______, _________________NUMBRS_L2_________________, _______, _______, _______, _______, _______, _______,
- _______, _________________NUMBRS_L3_________________, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
- ),
- [_CODING] = LAYOUT_wrapper(
- _______, _______, _______, _______, _______, _______, _________________CODING_R1_________________, _______,
- _______, _______, _______, _______, _______, _______, _________________CODING_R2_________________, _______,
- _______, _______, _______, _______, _______, _______, _________________CODING_R3_________________, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
- ),
- [_FUNCTN] = LAYOUT_wrapper(
- _______, _________________FUNCTN_L1_________________, _________________FUNCTN_R1_________________, MY_CAD,
- _______, _________________FUNCTN_L2_________________, _________________FUNCTN_R2_________________, KC_PSCR,
- _______, _________________FUNCTN_L3_________________, _________________FUNCTN_R3_________________, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
- )
-};
diff --git a/keyboards/foostan/cornelius/keymaps/pdl/readme.md b/keyboards/foostan/cornelius/keymaps/pdl/readme.md
deleted file mode 100644
index 59bb03d18b..0000000000
--- a/keyboards/foostan/cornelius/keymaps/pdl/readme.md
+++ /dev/null
@@ -1 +0,0 @@
-# A keymap for cornelius used by pdl
diff --git a/keyboards/for_science/keymaps/manna-harbour_miryoku/config.h b/keyboards/for_science/keymaps/manna-harbour_miryoku/config.h
deleted file mode 100644
index c05e920287..0000000000
--- a/keyboards/for_science/keymaps/manna-harbour_miryoku/config.h
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright 2019 Manna Harbour
-// https://github.com/manna-harbour/miryoku
-
-// 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 XXX KC_NO
-
-#define LAYOUT_miryoku(\
-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,\
-N30, N31, K32, K33, K34, K35, K36, K37, N38, N39\
-)\
-LAYOUT(\
-XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX,\
-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,\
- K32, K33, K34, K35, K36, K37\
-)
diff --git a/keyboards/for_science/keymaps/manna-harbour_miryoku/keymap.c b/keyboards/for_science/keymaps/manna-harbour_miryoku/keymap.c
deleted file mode 100644
index dbab7f9820..0000000000
--- a/keyboards/for_science/keymaps/manna-harbour_miryoku/keymap.c
+++ /dev/null
@@ -1,4 +0,0 @@
-// Copyright 2019 Manna Harbour
-// https://github.com/manna-harbour/miryoku
-
-// 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/>.
diff --git a/keyboards/fortitude60/keymaps/manna-harbour_miryoku/config.h b/keyboards/fortitude60/keymaps/manna-harbour_miryoku/config.h
deleted file mode 100644
index e335d5d8b8..0000000000
--- a/keyboards/fortitude60/keymaps/manna-harbour_miryoku/config.h
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright 2019 Manna Harbour
-// https://github.com/manna-harbour/miryoku
-
-// 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 XXX KC_NO
-
-#define LAYOUT_miryoku(\
- 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,\
- N30, N31, K32, K33, K34, K35, K36, K37, N38, N39\
-)\
-LAYOUT(\
-XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX,\
-XXX, K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, XXX,\
-XXX, K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, XXX,\
-XXX, K20, K21, K22, K23, K24, XXX, XXX, K25, K26, K27, K28, K29, XXX,\
- XXX, XXX, K32, K33, K34, K35, K36, K37, XXX, XXX\
-)
diff --git a/keyboards/fortitude60/keymaps/manna-harbour_miryoku/keymap.c b/keyboards/fortitude60/keymaps/manna-harbour_miryoku/keymap.c
deleted file mode 100644
index dbab7f9820..0000000000
--- a/keyboards/fortitude60/keymaps/manna-harbour_miryoku/keymap.c
+++ /dev/null
@@ -1,4 +0,0 @@
-// Copyright 2019 Manna Harbour
-// https://github.com/manna-harbour/miryoku
-
-// 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/>.
diff --git a/keyboards/foxlab/leaf60/universal/keymaps/jarred/keymap.c b/keyboards/foxlab/leaf60/universal/keymaps/jarred/keymap.c
deleted file mode 100644
index 63374f401f..0000000000
--- a/keyboards/foxlab/leaf60/universal/keymaps/jarred/keymap.c
+++ /dev/null
@@ -1,37 +0,0 @@
-/* Copyright 2019 Jarred Steenvoorden
- *
- * 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 "jarred.h"
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
- [_QW] = LAYOUT_60_hhkb(
- KC_ESC , KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , KC_MINS, KC_EQL , KC_BSLS, KC_GRV ,
- 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_BSPC,
- NAVI , 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_ENT ,
- KC_LCTL, KC_LGUI, KC_SPC , KC_RALT, KC_RCTL
- ),
-
- [_NV] = LAYOUT_60_hhkb(
- KC_GRV , KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_F5 , KC_F6 , KC_F7 , KC_F8 , KC_F9 , KC_F10 , KC_F11 , KC_F12 , _______, _______,
- _______, _______, _______, _______, KC_DEL , KC_BSPC, _______, KC_HOME, KC_UP , KC_END , KC_INS , _______, _______, _______,
- _______, _______, _______, KC_LSFT, KC_LCTL, KC_ENT , _______, KC_LEFT, KC_DOWN, KC_RGHT, KC_DEL , KC_DEL , _______,
- _______ , _______, _______, _______, _______, _______, _______, KC_PGUP, KC_PGDN, _______, _______, _______, _______,
- _______, _______, ALT_TAB , _______, QK_BOOT
- ),
-
-};
diff --git a/keyboards/foxlab/leaf60/universal/keymaps/jarred/readme.md b/keyboards/foxlab/leaf60/universal/keymaps/jarred/readme.md
deleted file mode 100644
index 6b0a57a1e6..0000000000
--- a/keyboards/foxlab/leaf60/universal/keymaps/jarred/readme.md
+++ /dev/null
@@ -1,9 +0,0 @@
-# Jarred's Leaf60 Layout
-
-Check out [user space readme](../../../../../../users/jarred/readme.md) for more info
-
-# Flash
-
-```
-make foxlab/leaf60/universal:jarred:dfu
-```
diff --git a/keyboards/foxlab/leaf60/universal/keymaps/mguterl/config.h b/keyboards/foxlab/leaf60/universal/keymaps/mguterl/config.h
deleted file mode 100644
index d8f6533c6b..0000000000
--- a/keyboards/foxlab/leaf60/universal/keymaps/mguterl/config.h
+++ /dev/null
@@ -1,19 +0,0 @@
-/* Copyright 2019 Fox Lab
- *
- * 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
-
-// place overrides here
diff --git a/keyboards/foxlab/leaf60/universal/keymaps/mguterl/keymap.c b/keyboards/foxlab/leaf60/universal/keymaps/mguterl/keymap.c
deleted file mode 100644
index 22dede0696..0000000000
--- a/keyboards/foxlab/leaf60/universal/keymaps/mguterl/keymap.c
+++ /dev/null
@@ -1,43 +0,0 @@
-/* Copyright 2019 Fox Lab
- *
- * 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 "mguterl.h"
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
- [_QWERTY] = LAYOUT_all(
- QK_GESC, 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_BSLS, KC_GRV,
- HPR_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_BSPC,
- ESC_CTL, 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_NO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(UTIL),
- KC_LALT, KC_LALT, KC_LGUI, SPC_UTL, SPC_UTL, SPC_UTL, KC_RALT, MO(1), KC_RGUI, KC_RCTL),
-
- [_GAMING] = LAYOUT_all(
- KC_ESC, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- KC_TAB, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, KC_SPC, _______, _______, _______, _______, _______),
-
- [_UTIL] = LAYOUT_all(
- QK_BOOT, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______,
- TG_GAME, KC_MPLY, KC_MPRV, KC_MNXT, _______, _______, KC_HOME, KC_PGDN, KC_PGUP, KC_END, _______, _______, _______, _______,
- _______, KC_VOLD, KC_VOLU, KC_MUTE, _______, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______)
-
-
-};
diff --git a/keyboards/foxlab/leaf60/universal/keymaps/mguterl/readme.md b/keyboards/foxlab/leaf60/universal/keymaps/mguterl/readme.md
deleted file mode 100644
index 7f1d982bce..0000000000
--- a/keyboards/foxlab/leaf60/universal/keymaps/mguterl/readme.md
+++ /dev/null
@@ -1,11 +0,0 @@
-# Michael Guterl's Leaf60 WKL Layout
-
-Check out my [userspace](/users/mguterl) for the custom keycodes that are used
-in keymap.c.
-
-This is a pretty standard 60% WKL layout. I add a couple of layers to add
-some conveniences and add vimkeys for navigation.
-
-```sh
-make foxlab/leaf60/universal:mguterl:flash
-```
diff --git a/keyboards/frobiac/blackbowl/rules.mk b/keyboards/frobiac/blackbowl/rules.mk
index 6004c37f9e..4e81c7280c 100644
--- a/keyboards/frobiac/blackbowl/rules.mk
+++ b/keyboards/frobiac/blackbowl/rules.mk
@@ -1,7 +1,7 @@
CUSTOM_MATRIX = lite
# project specific files
-QUANTUM_LIB_SRC += i2c_master.c
+I2C_DRIVER_REQUIRED = yes
SRC += matrix.c
PS2_MOUSE_ENABLE = yes
diff --git a/keyboards/frooastboard/walnut/config.h b/keyboards/frooastboard/walnut/config.h
index 2703ec1e37..0f163f1e3d 100644
--- a/keyboards/frooastboard/walnut/config.h
+++ b/keyboards/frooastboard/walnut/config.h
@@ -3,14 +3,9 @@
#pragma once
-#define ISSI_TIMEOUT 100
-#define ISSI_PERSISTENCE 0
-#define ISSI_PWM_FREQUENCY 0b010
-#define ISSI_SWPULLUP PUR_0R
-#define ISSI_CSPULLUP PUR_0R
-#define DRIVER_COUNT 1
+#define IS31FL3737_PWM_FREQUENCY IS31FL3737_PWM_FREQUENCY_26K7_HZ
#define RGB_MATRIX_LED_COUNT 48
-#define DRIVER_ADDR_1 0b1010000
+#define IS31FL3737_I2C_ADDRESS_1 IS31FL3737_I2C_ADDRESS_GND
#define RGB_MATRIX_MAXIMUM_BRIGHTNESS 191
diff --git a/keyboards/frooastboard/walnut/walnut.c b/keyboards/frooastboard/walnut/walnut.c
index 7163af011d..48d1677f7a 100644
--- a/keyboards/frooastboard/walnut/walnut.c
+++ b/keyboards/frooastboard/walnut/walnut.c
@@ -5,7 +5,7 @@
#if defined(RGB_MATRIX_ENABLE)
-const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = {
+const is31fl3737_led_t PROGMEM g_is31fl3737_leds[RGB_MATRIX_LED_COUNT] = {
/* Refer to IS31 manual for these locations
* driver
* | R location
diff --git a/keyboards/gboards/butterstick/keymaps/dennytom/README.md b/keyboards/gboards/butterstick/keymaps/dennytom/README.md
deleted file mode 100644
index a75bcc7506..0000000000
--- a/keyboards/gboards/butterstick/keymaps/dennytom/README.md
+++ /dev/null
@@ -1,11 +0,0 @@
-# # Dennytom's Butterstick Layout
-
-This keymap is using a custom chording engine. Head out to my (DennyTom) user space to find the source files and details.
-
-To make a real keymap from the JSON file, run
-
-```sh
-python3 parser.py keymap_def.json keymap.c
-```
-
-Somehow it fits the whole keyboard on 20 keys. For longer typing sessions, use the ASET NIOP mode. \ No newline at end of file
diff --git a/keyboards/gboards/butterstick/keymaps/dennytom/keymap.c b/keyboards/gboards/butterstick/keymaps/dennytom/keymap.c
deleted file mode 100644
index c90431cd9d..0000000000
--- a/keyboards/gboards/butterstick/keymaps/dennytom/keymap.c
+++ /dev/null
@@ -1,1418 +0,0 @@
-#include QMK_KEYBOARD_H
-
-#define CHORD_TIMEOUT 100
-#define DANCE_TIMEOUT 200
-#define LEADER_TIMEOUT 750
-#define TAP_TIMEOUT 50
-#define LONG_PRESS_MULTIPLIER 3
-#define DYNAMIC_MACRO_MAX_LENGTH 20
-#define COMMAND_MAX_LENGTH 5
-#define LEADER_MAX_LENGTH 5
-#define HASH_TYPE uint32_t
-#define NUMBER_OF_KEYS 20
-#define DEFAULT_PSEUDOLAYER QWERTY
-
-#define H_TOP1 ((HASH_TYPE) 1 << 0)
-#define H_TOP2 ((HASH_TYPE) 1 << 1)
-#define H_TOP3 ((HASH_TYPE) 1 << 2)
-#define H_TOP4 ((HASH_TYPE) 1 << 3)
-#define H_TOP5 ((HASH_TYPE) 1 << 4)
-#define H_TOP6 ((HASH_TYPE) 1 << 5)
-#define H_TOP7 ((HASH_TYPE) 1 << 6)
-#define H_TOP8 ((HASH_TYPE) 1 << 7)
-#define H_TOP9 ((HASH_TYPE) 1 << 8)
-#define H_TOP0 ((HASH_TYPE) 1 << 9)
-#define H_BOT1 ((HASH_TYPE) 1 << 10)
-#define H_BOT2 ((HASH_TYPE) 1 << 11)
-#define H_BOT3 ((HASH_TYPE) 1 << 12)
-#define H_BOT4 ((HASH_TYPE) 1 << 13)
-#define H_BOT5 ((HASH_TYPE) 1 << 14)
-#define H_BOT6 ((HASH_TYPE) 1 << 15)
-#define H_BOT7 ((HASH_TYPE) 1 << 16)
-#define H_BOT8 ((HASH_TYPE) 1 << 17)
-#define H_BOT9 ((HASH_TYPE) 1 << 18)
-#define H_BOT0 ((HASH_TYPE) 1 << 19)
-
-enum internal_keycodes {
- TOP1 = SAFE_RANGE,
- TOP2, TOP3, TOP4, TOP5, TOP6, TOP7, TOP8, TOP9, TOP0, BOT1, BOT2, BOT3, BOT4, BOT5, BOT6, BOT7, BOT8, BOT9, BOT0,
- FIRST_INTERNAL_KEYCODE = TOP1,
- LAST_INTERNAL_KEYCODE = BOT0
-};
-
-enum pseudolayers {
- ALWAYS_ON, QWERTY, NUM, MOV, MOUSE, ASETNIOP, ASETNIOP_123, ASETNIOP_FN
-};
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [0] = LAYOUT_butter(TOP1, TOP2, TOP3, TOP4, TOP5, TOP6, TOP7, TOP8, TOP9, TOP0, BOT1, BOT2, BOT3, BOT4, BOT5, BOT6, BOT7, BOT8, BOT9, BOT0),
-};
-size_t keymapsCount = 1;
-
-uint8_t keycodes_buffer_array[] = {
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
-};
-
-uint8_t command_buffer[] = {
- 0, 0, 0, 0, 0
-};
-
-uint16_t leader_buffer[] = {
- 0, 0, 0, 0, 0
-};
-
-uint8_t dynamic_macro_buffer[] = {
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
-};
-
-enum chord_states {
- IDLE,
- READY,
- ACTIVATED,
- DEACTIVATED,
- PRESS_FROM_ACTIVE,
- FINISHED_FROM_ACTIVE,
- IDLE_IN_DANCE,
- READY_IN_DANCE,
- FINISHED,
- LOCKED,
- READY_LOCKED,
- RESTART,
- IN_ONE_SHOT
-};
-
-struct Chord {
- uint32_t keycodes_hash;
- uint8_t pseudolayer;
- uint8_t* state;
- uint8_t* counter;
- uint16_t value1;
- uint8_t value2;
- void (*function) (const struct Chord*);
-};
-
-uint8_t current_pseudolayer = DEFAULT_PSEUDOLAYER;
-bool lock_next = false;
-uint16_t chord_timer = 0;
-uint16_t dance_timer = 0;
-bool autoshift_mode = true;
-uint8_t keycode_index = 0;
-uint8_t command_mode = 0;
-uint8_t command_ind = 0;
-bool in_leader_mode = false;
-uint8_t leader_ind = 0;
-uint16_t leader_timer = 0;
-uint8_t dynamic_macro_mode = false;
-uint8_t dynamic_macro_ind = 0;
-bool a_key_went_through = false;
-struct Chord* last_chord = NULL;
-
-bool handle_US_ANSI_shifted_keys(int16_t keycode, bool in) {
- bool is_US_ANSI_shifted = true;
-
- int16_t regular_keycode = KC_NO;
- switch (keycode) {
- case KC_TILDE:
- regular_keycode = KC_GRAVE;
- break;
- case KC_EXCLAIM:
- regular_keycode = KC_1;
- break;
- case KC_AT:
- regular_keycode = KC_2;
- break;
- case KC_HASH:
- regular_keycode = KC_3;
- break;
- case KC_DOLLAR:
- regular_keycode = KC_4;
- break;
- case KC_PERCENT:
- regular_keycode = KC_5;
- break;
- case KC_CIRCUMFLEX:
- regular_keycode = KC_6;
- break;
- case KC_AMPERSAND:
- regular_keycode = KC_7;
- break;
- case KC_ASTERISK:
- regular_keycode = KC_8;
- break;
- case KC_LEFT_PAREN:
- regular_keycode = KC_9;
- break;
- case KC_RIGHT_PAREN:
- regular_keycode = KC_0;
- break;
- case KC_UNDERSCORE:
- regular_keycode = KC_MINUS;
- break;
- case KC_PLUS:
- regular_keycode = KC_EQUAL;
- break;
- case KC_LEFT_CURLY_BRACE:
- regular_keycode = KC_LEFT_BRACKET;
- break;
- case KC_RIGHT_CURLY_BRACE:
- regular_keycode = KC_RIGHT_BRACKET;
- break;
- case KC_PIPE:
- regular_keycode = KC_BACKSLASH;
- break;
- case KC_COLON:
- regular_keycode = KC_SEMICOLON;
- break;
- case KC_DOUBLE_QUOTE:
- regular_keycode = KC_QUOTE;
- break;
- case KC_LEFT_ANGLE_BRACKET:
- regular_keycode = KC_COMMA;
- break;
- case KC_RIGHT_ANGLE_BRACKET:
- regular_keycode = KC_DOT;
- break;
- case KC_QUESTION:
- regular_keycode = KC_SLASH;
- break;
- default:
- is_US_ANSI_shifted = false;
- }
- if (is_US_ANSI_shifted) {
- if (in) {
- register_code(KC_LSFT);
- register_code(regular_keycode);
- } else {
- unregister_code(regular_keycode);
- unregister_code(KC_LSFT);
- }
- }
- return is_US_ANSI_shifted;
-}
-
-void key_in(int16_t keycode) {
- if (command_mode == 1 && command_ind < COMMAND_MAX_LENGTH) {
- command_buffer[command_ind] = keycode;
- command_ind++;
- a_key_went_through = true;
- } else if (in_leader_mode && leader_ind < LEADER_MAX_LENGTH) {
- leader_buffer[leader_ind] = keycode;
- leader_ind++;
- a_key_went_through = true;
- } else if (dynamic_macro_mode && dynamic_macro_ind < DYNAMIC_MACRO_MAX_LENGTH) {
- dynamic_macro_buffer[dynamic_macro_ind] = keycode;
- dynamic_macro_ind++;
- a_key_went_through = true;
- } else {
- if (!handle_US_ANSI_shifted_keys(keycode, true)) {
- register_code(keycode);
- }
- send_keyboard_report();
- a_key_went_through = true;
- }
-}
-
-void key_out(int16_t keycode) {
- if (command_mode == 0) {
- if (!handle_US_ANSI_shifted_keys(keycode, false)) {
- if (command_mode == 0 && in_leader_mode == false && dynamic_macro_mode == false) {
- unregister_code(keycode);
- }
- }
- send_keyboard_report();
- }
-}
-
-void tap_key(int16_t keycode) {
- key_in(keycode);
- wait_ms(TAP_TIMEOUT);
- key_out(keycode);
-}
-void single_dance(const struct Chord* self) {
- switch (*self->state) {
- case ACTIVATED:
- key_in(self->value1);
- break;
- case DEACTIVATED:
- key_out(self->value1);
- *self->state = IDLE;
- break;
- case RESTART:
- key_out(self->value1);
- break;
- default:
- break;
- }
-}
-
-void key_layer_dance(const struct Chord* self) {
- switch (*self->state) {
- case ACTIVATED:
- current_pseudolayer = self->value2;
- a_key_went_through = false;
- break;
- case DEACTIVATED:
- case RESTART:
- if (!a_key_went_through) {
- tap_key(self->value1);
- }
- current_pseudolayer = self->pseudolayer;
- *self->state = IDLE; // does not have effect if the state was RESTART
- break;
- default:
- break;
- }
-}
-
-void key_mod_dance(const struct Chord* self) {
- switch (*self->state) {
- case ACTIVATED:
- key_in(self->value2);
- a_key_went_through = false;
- break;
- case DEACTIVATED:
- case RESTART:
- key_out(self->value2);
- if (!a_key_went_through) {
- tap_key(self->value1);
- }
- *self->state = IDLE; // does not have effect if the state was RESTART
- break;
- default:
- break;
- }
-}
-
-void key_key_dance(const struct Chord* self) {
- switch (*self->state) {
- case ACTIVATED:
- break;
- case DEACTIVATED:
- tap_key(self->value1);
- *self->state = IDLE;
- break;
- case FINISHED:
- case PRESS_FROM_ACTIVE:
- key_in(self->value2);
- break;
- case RESTART:
- key_out(self->value2);
- break;
- default:
- break;
- }
-}
-
-void autoshift_dance_impl(const struct Chord* self) {
- switch (*self->state) {
- case ACTIVATED:
- *self->counter = 0;
- break;
- case DEACTIVATED:
- case RESTART:
- tap_key(self->value1);
- *self->state = IDLE;
- break;
- case FINISHED_FROM_ACTIVE:
- if (*self->counter == (LONG_PRESS_MULTIPLIER - 2)) {
- key_in(KC_LSFT);
- tap_key(self->value1);
- key_out(KC_LSFT);
- *self->state = IDLE;
- // the skip to IDLE is usually just a lag optimization,
- // in this case it has a logic function, on a short
- // press (still longer than a tap) the key does not get shifted
- } else {
- *self->counter += 1;
- *self->state = PRESS_FROM_ACTIVE;
- dance_timer = timer_read();
- }
- break;
- default:
- break;
- }
-}
-
-void autoshift_dance(const struct Chord* self) {
- if (autoshift_mode) {
- autoshift_dance_impl(self);
- } else {
- single_dance(self);
- }
-}
-
-void autoshift_toggle(const struct Chord* self){
- if (*self->state == ACTIVATED) {
- autoshift_mode = !autoshift_mode;
- *self->state = IDLE;
- }
-}
-
-void temp_pseudolayer(const struct Chord* self) {
- switch (*self->state) {
- case ACTIVATED:
- current_pseudolayer = self->value1;
- break;
- case DEACTIVATED:
- current_pseudolayer = self->pseudolayer;
- *self->state = IDLE;
- break;
- case RESTART:
- current_pseudolayer = self->pseudolayer;
- break;
- default:
- break;
- }
-}
-
-void perm_pseudolayer(const struct Chord* self) {
- if (*self->state == ACTIVATED) {
- current_pseudolayer = self->value1;
- *self->state = IDLE;
- }
-}
-
-void switch_layer(const struct Chord* self) {
- if (*self->state == ACTIVATED) {
- layer_move(self->value1);
- *self->state = IDLE;
- }
-}
-
-void lock(const struct Chord* self) {
- if (*self->state == ACTIVATED) {
- lock_next = true;
- *self->state = IDLE;
- }
-}
-
-void one_shot_key(const struct Chord* self) {
- switch (*self->state) {
- case ACTIVATED:
- break;
- case DEACTIVATED:
- key_in(self->value1);
- *self->state = IN_ONE_SHOT;
- break;
- case FINISHED:
- case PRESS_FROM_ACTIVE:
- key_in(self->value1);
- a_key_went_through = false;
- break;
- case RESTART:
- if (a_key_went_through) {
- key_out(self->value1);
- } else {
- *self->state = IN_ONE_SHOT;
- }
- default:
- break;
- }
-}
-
-void one_shot_layer(const struct Chord* self) {
- switch (*self->state) {
- case ACTIVATED:
- break;
- case DEACTIVATED:
- current_pseudolayer = self->value1;
- *self->state = IN_ONE_SHOT;
- break;
- case FINISHED:
- case PRESS_FROM_ACTIVE:
- current_pseudolayer = self->value1;
- a_key_went_through = false;
- break;
- case RESTART:
- if (a_key_went_through) {
- current_pseudolayer = self->pseudolayer;
- } else {
- *self->state = IN_ONE_SHOT;
- }
- default:
- break;
- }
-}
-
-void command(const struct Chord* self) {
- if (*self->state == ACTIVATED) {
- command_mode++;
- *self->state = IDLE;
- }
-}
-
-bool identical(uint16_t* buffer1, uint16_t* buffer2) {
- bool same = true;
- for (int i = 0; i < LEADER_MAX_LENGTH; i++) {
- same = same && (buffer1[i] == buffer2[i]);
- }
- return same;
-}
-
-void leader(const struct Chord* self) {
- if (*self->state == ACTIVATED) {
- in_leader_mode = true;
- *self->state = IDLE;
- }
-}
-
-void dynamic_macro_record(const struct Chord* self) {
- if (*self->state == ACTIVATED) {
- for (int i = 0; i < DYNAMIC_MACRO_MAX_LENGTH; i++) {
- dynamic_macro_buffer[i] = 0;
- }
- dynamic_macro_mode = true;
- *self->state = IDLE;
- }
-}
-
-void dynamic_macro_next(const struct Chord* self) {
- if (*self->state == ACTIVATED) {
- if (dynamic_macro_mode && dynamic_macro_ind < DYNAMIC_MACRO_MAX_LENGTH) {
- dynamic_macro_buffer[dynamic_macro_ind] = 0;
- dynamic_macro_ind++;
- }
- *self->state = IDLE;
- }
-}
-
-void dynamic_macro_end(const struct Chord* self) {
- if (*self->state == ACTIVATED) {
- if (dynamic_macro_mode) {
- dynamic_macro_mode = false;
- }
- *self->state = IDLE;
- }
-}
-
-void dynamic_macro_play(const struct Chord* self) {
- if (*self->state == ACTIVATED) {
- int ind_start = 0;
- while (ind_start < DYNAMIC_MACRO_MAX_LENGTH) {
- for (int i = ind_start; i < DYNAMIC_MACRO_MAX_LENGTH; i++) {
- if (dynamic_macro_buffer[i] == 0) {
- break;
- }
- register_code(dynamic_macro_buffer[i]);
- }
- send_keyboard_report();
- wait_ms(TAP_TIMEOUT);
- for (int i = ind_start; i < DYNAMIC_MACRO_MAX_LENGTH; i++) {
- if (dynamic_macro_buffer[i] == 0) {
- ind_start = i + 1;
- break;
- }
- unregister_code(dynamic_macro_buffer[i]);
- }
- send_keyboard_report();
- }
- *self->state = IDLE;
- }
-}
-
-void clear(const struct Chord* self);
-
-void reset_keyboard_kb(void){
-#ifdef WATCHDOG_ENABLE
- MCUSR = 0;
- wdt_disable();
- wdt_reset();
-#endif
- reset_keyboard();
-}
-
-void reset(const struct Chord* self) {
- if (*self->state == ACTIVATED) {
- reset_keyboard_kb();
- }
-}
-
-uint8_t state_0 = IDLE;
-const struct Chord chord_0 PROGMEM = {H_TOP1 + H_TOP2 + H_BOT1 + H_BOT2, ALWAYS_ON, &state_0, NULL, 0, 0, lock};
-uint8_t state_1 = IDLE;
-const struct Chord chord_1 PROGMEM = {H_TOP2 + H_TOP3 + H_BOT2 + H_BOT3, ALWAYS_ON, &state_1, NULL, 0, 0, autoshift_toggle};
-uint8_t state_2 = IDLE;
-const struct Chord chord_2 PROGMEM = {H_TOP5 + H_TOP6 + H_BOT5 + H_BOT6, ALWAYS_ON, &state_2, NULL, 0, 0, command};
-uint8_t state_3 = IDLE;
-const struct Chord chord_3 PROGMEM = {H_TOP1 + H_TOP2 + H_TOP9 + H_TOP0 + H_BOT1 + H_BOT2 + H_BOT9 + H_BOT0, ALWAYS_ON, &state_3, NULL, 0, 0, clear};
-uint8_t state_4 = IDLE;
-uint8_t counter_4 = 0;
-const struct Chord chord_4 PROGMEM = {H_TOP1, QWERTY, &state_4, &counter_4, KC_Q, 0, autoshift_dance};
-uint8_t state_5 = IDLE;
-uint8_t counter_5 = 0;
-const struct Chord chord_5 PROGMEM = {H_TOP2, QWERTY, &state_5, &counter_5, KC_W, 0, autoshift_dance};
-uint8_t state_6 = IDLE;
-uint8_t counter_6 = 0;
-const struct Chord chord_6 PROGMEM = {H_TOP3, QWERTY, &state_6, &counter_6, KC_E, 0, autoshift_dance};
-uint8_t state_7 = IDLE;
-uint8_t counter_7 = 0;
-const struct Chord chord_7 PROGMEM = {H_TOP4, QWERTY, &state_7, &counter_7, KC_R, 0, autoshift_dance};
-uint8_t state_8 = IDLE;
-uint8_t counter_8 = 0;
-const struct Chord chord_8 PROGMEM = {H_TOP5, QWERTY, &state_8, &counter_8, KC_T, 0, autoshift_dance};
-uint8_t state_9 = IDLE;
-uint8_t counter_9 = 0;
-const struct Chord chord_9 PROGMEM = {H_TOP6, QWERTY, &state_9, &counter_9, KC_Y, 0, autoshift_dance};
-uint8_t state_10 = IDLE;
-uint8_t counter_10 = 0;
-const struct Chord chord_10 PROGMEM = {H_TOP7, QWERTY, &state_10, &counter_10, KC_U, 0, autoshift_dance};
-uint8_t state_11 = IDLE;
-uint8_t counter_11 = 0;
-const struct Chord chord_11 PROGMEM = {H_TOP8, QWERTY, &state_11, &counter_11, KC_I, 0, autoshift_dance};
-uint8_t state_12 = IDLE;
-uint8_t counter_12 = 0;
-const struct Chord chord_12 PROGMEM = {H_TOP9, QWERTY, &state_12, &counter_12, KC_O, 0, autoshift_dance};
-uint8_t state_13 = IDLE;
-uint8_t counter_13 = 0;
-const struct Chord chord_13 PROGMEM = {H_TOP0, QWERTY, &state_13, &counter_13, KC_P, 0, autoshift_dance};
-uint8_t state_14 = IDLE;
-uint8_t counter_14 = 0;
-const struct Chord chord_14 PROGMEM = {H_TOP1 + H_BOT1, QWERTY, &state_14, &counter_14, KC_A, 0, autoshift_dance};
-uint8_t state_15 = IDLE;
-uint8_t counter_15 = 0;
-const struct Chord chord_15 PROGMEM = {H_TOP2 + H_BOT2, QWERTY, &state_15, &counter_15, KC_S, 0, autoshift_dance};
-uint8_t state_16 = IDLE;
-uint8_t counter_16 = 0;
-const struct Chord chord_16 PROGMEM = {H_TOP3 + H_BOT3, QWERTY, &state_16, &counter_16, KC_D, 0, autoshift_dance};
-uint8_t state_17 = IDLE;
-uint8_t counter_17 = 0;
-const struct Chord chord_17 PROGMEM = {H_TOP4 + H_BOT4, QWERTY, &state_17, &counter_17, KC_F, 0, autoshift_dance};
-uint8_t state_18 = IDLE;
-uint8_t counter_18 = 0;
-const struct Chord chord_18 PROGMEM = {H_TOP5 + H_BOT5, QWERTY, &state_18, &counter_18, KC_G, 0, autoshift_dance};
-uint8_t state_19 = IDLE;
-uint8_t counter_19 = 0;
-const struct Chord chord_19 PROGMEM = {H_TOP6 + H_BOT6, QWERTY, &state_19, &counter_19, KC_H, 0, autoshift_dance};
-uint8_t state_20 = IDLE;
-uint8_t counter_20 = 0;
-const struct Chord chord_20 PROGMEM = {H_TOP7 + H_BOT7, QWERTY, &state_20, &counter_20, KC_J, 0, autoshift_dance};
-uint8_t state_21 = IDLE;
-uint8_t counter_21 = 0;
-const struct Chord chord_21 PROGMEM = {H_TOP8 + H_BOT8, QWERTY, &state_21, &counter_21, KC_K, 0, autoshift_dance};
-uint8_t state_22 = IDLE;
-uint8_t counter_22 = 0;
-const struct Chord chord_22 PROGMEM = {H_TOP9 + H_BOT9, QWERTY, &state_22, &counter_22, KC_L, 0, autoshift_dance};
-uint8_t state_23 = IDLE;
-uint8_t counter_23 = 0;
-const struct Chord chord_23 PROGMEM = {H_TOP0 + H_BOT0, QWERTY, &state_23, &counter_23, KC_SEMICOLON, 0, autoshift_dance};
-uint8_t state_24 = IDLE;
-uint8_t counter_24 = 0;
-const struct Chord chord_24 PROGMEM = {H_BOT1, QWERTY, &state_24, &counter_24, KC_Z, 0, autoshift_dance};
-uint8_t state_25 = IDLE;
-uint8_t counter_25 = 0;
-const struct Chord chord_25 PROGMEM = {H_BOT2, QWERTY, &state_25, &counter_25, KC_X, 0, autoshift_dance};
-uint8_t state_26 = IDLE;
-uint8_t counter_26 = 0;
-const struct Chord chord_26 PROGMEM = {H_BOT3, QWERTY, &state_26, &counter_26, KC_C, 0, autoshift_dance};
-uint8_t state_27 = IDLE;
-uint8_t counter_27 = 0;
-const struct Chord chord_27 PROGMEM = {H_BOT4, QWERTY, &state_27, &counter_27, KC_V, 0, autoshift_dance};
-uint8_t state_28 = IDLE;
-uint8_t counter_28 = 0;
-const struct Chord chord_28 PROGMEM = {H_BOT5, QWERTY, &state_28, &counter_28, KC_B, 0, autoshift_dance};
-uint8_t state_29 = IDLE;
-uint8_t counter_29 = 0;
-const struct Chord chord_29 PROGMEM = {H_BOT6, QWERTY, &state_29, &counter_29, KC_N, 0, autoshift_dance};
-uint8_t state_30 = IDLE;
-uint8_t counter_30 = 0;
-const struct Chord chord_30 PROGMEM = {H_BOT7, QWERTY, &state_30, &counter_30, KC_M, 0, autoshift_dance};
-uint8_t state_31 = IDLE;
-uint8_t counter_31 = 0;
-const struct Chord chord_31 PROGMEM = {H_BOT8, QWERTY, &state_31, &counter_31, KC_COMMA, 0, autoshift_dance};
-uint8_t state_32 = IDLE;
-uint8_t counter_32 = 0;
-const struct Chord chord_32 PROGMEM = {H_BOT9, QWERTY, &state_32, &counter_32, KC_DOT, 0, autoshift_dance};
-uint8_t state_33 = IDLE;
-uint8_t counter_33 = 0;
-const struct Chord chord_33 PROGMEM = {H_BOT0, QWERTY, &state_33, &counter_33, KC_SLASH, 0, autoshift_dance};
-uint8_t state_34 = IDLE;
-const struct Chord chord_34 PROGMEM = {H_TOP1 + H_TOP2, QWERTY, &state_34, NULL, KC_ESC, 0, single_dance};
-uint8_t state_35 = IDLE;
-const struct Chord chord_35 PROGMEM = {H_TOP2 + H_TOP3, QWERTY, &state_35, NULL, MOV, 0, temp_pseudolayer};
-uint8_t state_36 = IDLE;
-const struct Chord chord_36 PROGMEM = {H_TOP3 + H_TOP4, QWERTY, &state_36, NULL, KC_TAB, 0, single_dance};
-uint8_t state_37 = IDLE;
-const struct Chord chord_37 PROGMEM = {H_TOP5 + H_TOP6, QWERTY, &state_37, NULL, KC_RGUI, 0, one_shot_key};
-uint8_t state_38 = IDLE;
-const struct Chord chord_38 PROGMEM = {H_TOP7 + H_TOP8, QWERTY, &state_38, NULL, KC_INS, 0, single_dance};
-uint8_t state_39 = IDLE;
-const struct Chord chord_39 PROGMEM = {H_TOP8 + H_TOP9, QWERTY, &state_39, NULL, KC_DEL, 0, single_dance};
-uint8_t state_40 = IDLE;
-const struct Chord chord_40 PROGMEM = {H_TOP9 + H_TOP0, QWERTY, &state_40, NULL, KC_BSPC, 0, single_dance};
-uint8_t state_41 = IDLE;
-const struct Chord chord_41 PROGMEM = {H_TOP9 + H_TOP0 + H_BOT9 + H_BOT0, QWERTY, &state_41, NULL, KC_ENTER, 0, single_dance};
-uint8_t state_42 = IDLE;
-const struct Chord chord_42 PROGMEM = {H_BOT1 + H_BOT2, QWERTY, &state_42, NULL, KC_LSFT, 0, one_shot_key};
-uint8_t state_43 = IDLE;
-const struct Chord chord_43 PROGMEM = {H_BOT2 + H_BOT3, QWERTY, &state_43, NULL, KC_LCTL, 0, one_shot_key};
-uint8_t state_44 = IDLE;
-const struct Chord chord_44 PROGMEM = {H_BOT3 + H_BOT4, QWERTY, &state_44, NULL, KC_LALT, 0, one_shot_key};
-uint8_t state_45 = IDLE;
-const struct Chord chord_45 PROGMEM = {H_BOT4 + H_BOT5, QWERTY, &state_45, NULL, NUM, 0, one_shot_layer};
-uint8_t state_46 = IDLE;
-const struct Chord chord_46 PROGMEM = {H_BOT5 + H_BOT6, QWERTY, &state_46, NULL, KC_LGUI, 0, one_shot_key};
-uint8_t state_47 = IDLE;
-const struct Chord chord_47 PROGMEM = {H_BOT6 + H_BOT7, QWERTY, &state_47, NULL, NUM, 0, one_shot_layer};
-uint8_t state_48 = IDLE;
-const struct Chord chord_48 PROGMEM = {H_BOT7 + H_BOT8, QWERTY, &state_48, NULL, KC_RALT, 0, one_shot_key};
-uint8_t state_49 = IDLE;
-const struct Chord chord_49 PROGMEM = {H_BOT8 + H_BOT9, QWERTY, &state_49, NULL, KC_RCTL, 0, one_shot_key};
-uint8_t state_50 = IDLE;
-const struct Chord chord_50 PROGMEM = {H_BOT9 + H_BOT0, QWERTY, &state_50, NULL, KC_RSFT, 0, one_shot_key};
-uint8_t state_51 = IDLE;
-const struct Chord chord_51 PROGMEM = {H_BOT1 + H_BOT0, QWERTY, &state_51, NULL, KC_SPACE, 0, single_dance};
-uint8_t state_52 = IDLE;
-const struct Chord chord_52 PROGMEM = {H_TOP1 + H_TOP2 + H_TOP3 + H_TOP4, QWERTY, &state_52, NULL, MOUSE, 0, temp_pseudolayer};
-uint8_t state_53 = IDLE;
-const struct Chord chord_53 PROGMEM = {H_TOP1 + H_TOP2 + H_TOP3 + H_TOP4, QWERTY, &state_53, NULL, ASETNIOP, 0, perm_pseudolayer};
-uint8_t state_54 = IDLE;
-uint8_t counter_54 = 0;
-const struct Chord chord_54 PROGMEM = {H_TOP1, NUM, &state_54, &counter_54, KC_1, 0, autoshift_dance};
-uint8_t state_55 = IDLE;
-uint8_t counter_55 = 0;
-const struct Chord chord_55 PROGMEM = {H_TOP2, NUM, &state_55, &counter_55, KC_2, 0, autoshift_dance};
-uint8_t state_56 = IDLE;
-uint8_t counter_56 = 0;
-const struct Chord chord_56 PROGMEM = {H_TOP3, NUM, &state_56, &counter_56, KC_3, 0, autoshift_dance};
-uint8_t state_57 = IDLE;
-uint8_t counter_57 = 0;
-const struct Chord chord_57 PROGMEM = {H_TOP4, NUM, &state_57, &counter_57, KC_4, 0, autoshift_dance};
-uint8_t state_58 = IDLE;
-uint8_t counter_58 = 0;
-const struct Chord chord_58 PROGMEM = {H_TOP5, NUM, &state_58, &counter_58, KC_5, 0, autoshift_dance};
-uint8_t state_59 = IDLE;
-uint8_t counter_59 = 0;
-const struct Chord chord_59 PROGMEM = {H_TOP6, NUM, &state_59, &counter_59, KC_6, 0, autoshift_dance};
-uint8_t state_60 = IDLE;
-uint8_t counter_60 = 0;
-const struct Chord chord_60 PROGMEM = {H_TOP7, NUM, &state_60, &counter_60, KC_7, 0, autoshift_dance};
-uint8_t state_61 = IDLE;
-uint8_t counter_61 = 0;
-const struct Chord chord_61 PROGMEM = {H_TOP8, NUM, &state_61, &counter_61, KC_8, 0, autoshift_dance};
-uint8_t state_62 = IDLE;
-uint8_t counter_62 = 0;
-const struct Chord chord_62 PROGMEM = {H_TOP9, NUM, &state_62, &counter_62, KC_9, 0, autoshift_dance};
-uint8_t state_63 = IDLE;
-uint8_t counter_63 = 0;
-const struct Chord chord_63 PROGMEM = {H_TOP0, NUM, &state_63, &counter_63, KC_0, 0, autoshift_dance};
-uint8_t state_64 = IDLE;
-const struct Chord chord_64 PROGMEM = {H_TOP1 + H_BOT1, NUM, &state_64, NULL, KC_F1, 0, single_dance};
-uint8_t state_65 = IDLE;
-const struct Chord chord_65 PROGMEM = {H_TOP2 + H_BOT2, NUM, &state_65, NULL, KC_F2, 0, single_dance};
-uint8_t state_66 = IDLE;
-const struct Chord chord_66 PROGMEM = {H_TOP3 + H_BOT3, NUM, &state_66, NULL, KC_F3, 0, single_dance};
-uint8_t state_67 = IDLE;
-const struct Chord chord_67 PROGMEM = {H_TOP4 + H_BOT4, NUM, &state_67, NULL, KC_F4, 0, single_dance};
-uint8_t state_68 = IDLE;
-const struct Chord chord_68 PROGMEM = {H_TOP5 + H_BOT5, NUM, &state_68, NULL, KC_F5, 0, single_dance};
-uint8_t state_69 = IDLE;
-const struct Chord chord_69 PROGMEM = {H_TOP6 + H_BOT6, NUM, &state_69, NULL, KC_F6, 0, single_dance};
-uint8_t state_70 = IDLE;
-const struct Chord chord_70 PROGMEM = {H_TOP7 + H_BOT7, NUM, &state_70, NULL, KC_F7, 0, single_dance};
-uint8_t state_71 = IDLE;
-const struct Chord chord_71 PROGMEM = {H_TOP8 + H_BOT8, NUM, &state_71, NULL, KC_F8, 0, single_dance};
-uint8_t state_72 = IDLE;
-const struct Chord chord_72 PROGMEM = {H_TOP9 + H_BOT9, NUM, &state_72, NULL, KC_F9, 0, single_dance};
-uint8_t state_73 = IDLE;
-const struct Chord chord_73 PROGMEM = {H_TOP0 + H_BOT0, NUM, &state_73, NULL, KC_F10, 0, single_dance};
-uint8_t state_74 = IDLE;
-uint8_t counter_74 = 0;
-const struct Chord chord_74 PROGMEM = {H_BOT1, NUM, &state_74, &counter_74, KC_GRAVE, 0, autoshift_dance};
-uint8_t state_75 = IDLE;
-uint8_t counter_75 = 0;
-const struct Chord chord_75 PROGMEM = {H_BOT2, NUM, &state_75, &counter_75, KC_MINUS, 0, autoshift_dance};
-uint8_t state_76 = IDLE;
-uint8_t counter_76 = 0;
-const struct Chord chord_76 PROGMEM = {H_BOT3, NUM, &state_76, &counter_76, KC_EQUAL, 0, autoshift_dance};
-uint8_t state_77 = IDLE;
-uint8_t counter_77 = 0;
-const struct Chord chord_77 PROGMEM = {H_BOT4, NUM, &state_77, &counter_77, KC_LEFT_BRACKET, 0, autoshift_dance};
-uint8_t state_78 = IDLE;
-uint8_t counter_78 = 0;
-const struct Chord chord_78 PROGMEM = {H_BOT5, NUM, &state_78, &counter_78, KC_RIGHT_BRACKET, 0, autoshift_dance};
-uint8_t state_79 = IDLE;
-uint8_t counter_79 = 0;
-const struct Chord chord_79 PROGMEM = {H_BOT6, NUM, &state_79, &counter_79, KC_BACKSLASH, 0, autoshift_dance};
-uint8_t state_80 = IDLE;
-uint8_t counter_80 = 0;
-const struct Chord chord_80 PROGMEM = {H_BOT7, NUM, &state_80, &counter_80, KC_QUOTE, 0, autoshift_dance};
-uint8_t state_81 = IDLE;
-const struct Chord chord_81 PROGMEM = {H_BOT9, NUM, &state_81, NULL, KC_F11, 0, single_dance};
-uint8_t state_82 = IDLE;
-const struct Chord chord_82 PROGMEM = {H_BOT0, NUM, &state_82, NULL, KC_F12, 0, single_dance};
-uint8_t state_83 = IDLE;
-const struct Chord chord_83 PROGMEM = {H_TOP1 + H_TOP2, NUM, &state_83, NULL, KC_ESC, 0, single_dance};
-uint8_t state_84 = IDLE;
-const struct Chord chord_84 PROGMEM = {H_TOP3 + H_TOP4, NUM, &state_84, NULL, KC_TAB, 0, single_dance};
-uint8_t state_85 = IDLE;
-const struct Chord chord_85 PROGMEM = {H_TOP5 + H_TOP6, NUM, &state_85, NULL, KC_RGUI, 0, one_shot_key};
-uint8_t state_86 = IDLE;
-const struct Chord chord_86 PROGMEM = {H_TOP7 + H_TOP8, NUM, &state_86, NULL, KC_INS, 0, single_dance};
-uint8_t state_87 = IDLE;
-const struct Chord chord_87 PROGMEM = {H_TOP8 + H_TOP9, NUM, &state_87, NULL, KC_DEL, 0, single_dance};
-uint8_t state_88 = IDLE;
-const struct Chord chord_88 PROGMEM = {H_TOP9 + H_TOP0, NUM, &state_88, NULL, KC_BSPC, 0, single_dance};
-uint8_t state_89 = IDLE;
-const struct Chord chord_89 PROGMEM = {H_TOP9 + H_TOP0 + H_BOT9 + H_BOT0, NUM, &state_89, NULL, KC_ENTER, 0, single_dance};
-uint8_t state_90 = IDLE;
-const struct Chord chord_90 PROGMEM = {H_BOT1 + H_BOT2, NUM, &state_90, NULL, KC_LSFT, 0, one_shot_key};
-uint8_t state_91 = IDLE;
-const struct Chord chord_91 PROGMEM = {H_BOT2 + H_BOT3, NUM, &state_91, NULL, KC_LCTL, 0, one_shot_key};
-uint8_t state_92 = IDLE;
-const struct Chord chord_92 PROGMEM = {H_BOT3 + H_BOT4, NUM, &state_92, NULL, KC_LALT, 0, one_shot_key};
-uint8_t state_93 = IDLE;
-const struct Chord chord_93 PROGMEM = {H_BOT5 + H_BOT6, NUM, &state_93, NULL, KC_LGUI, 0, one_shot_key};
-uint8_t state_94 = IDLE;
-const struct Chord chord_94 PROGMEM = {H_BOT7 + H_BOT8, NUM, &state_94, NULL, KC_RALT, 0, one_shot_key};
-uint8_t state_95 = IDLE;
-const struct Chord chord_95 PROGMEM = {H_BOT8 + H_BOT9, NUM, &state_95, NULL, KC_RCTL, 0, one_shot_key};
-uint8_t state_96 = IDLE;
-const struct Chord chord_96 PROGMEM = {H_BOT9 + H_BOT0, NUM, &state_96, NULL, KC_RSFT, 0, one_shot_key};
-uint8_t state_97 = IDLE;
-const struct Chord chord_97 PROGMEM = {H_BOT1 + H_BOT0, NUM, &state_97, NULL, KC_SPACE, 0, single_dance};
-uint8_t state_98 = IDLE;
-const struct Chord chord_98 PROGMEM = {H_TOP7, MOV, &state_98, NULL, KC_HOME, 0, single_dance};
-uint8_t state_99 = IDLE;
-const struct Chord chord_99 PROGMEM = {H_TOP8, MOV, &state_99, NULL, KC_UP, 0, single_dance};
-uint8_t state_100 = IDLE;
-const struct Chord chord_100 PROGMEM = {H_TOP9, MOV, &state_100, NULL, KC_END, 0, single_dance};
-uint8_t state_101 = IDLE;
-const struct Chord chord_101 PROGMEM = {H_TOP0, MOV, &state_101, NULL, KC_PGUP, 0, single_dance};
-uint8_t state_102 = IDLE;
-const struct Chord chord_102 PROGMEM = {H_BOT3, MOV, &state_102, NULL, KC_LSFT, 0, single_dance};
-uint8_t state_103 = IDLE;
-const struct Chord chord_103 PROGMEM = {H_BOT4, MOV, &state_103, NULL, KC_LCTL, 0, single_dance};
-uint8_t state_104 = IDLE;
-const struct Chord chord_104 PROGMEM = {H_BOT5, MOV, &state_104, NULL, KC_LALT, 0, single_dance};
-uint8_t state_105 = IDLE;
-const struct Chord chord_105 PROGMEM = {H_BOT6, MOV, &state_105, NULL, KC_LGUI, 0, single_dance};
-uint8_t state_106 = IDLE;
-const struct Chord chord_106 PROGMEM = {H_BOT7, MOV, &state_106, NULL, KC_LEFT, 0, single_dance};
-uint8_t state_107 = IDLE;
-const struct Chord chord_107 PROGMEM = {H_BOT8, MOV, &state_107, NULL, KC_DOWN, 0, single_dance};
-uint8_t state_108 = IDLE;
-const struct Chord chord_108 PROGMEM = {H_BOT9, MOV, &state_108, NULL, KC_RIGHT, 0, single_dance};
-uint8_t state_109 = IDLE;
-const struct Chord chord_109 PROGMEM = {H_BOT0, MOV, &state_109, NULL, KC_PGDN, 0, single_dance};
-uint8_t state_110 = IDLE;
-const struct Chord chord_110 PROGMEM = {H_TOP7, MOUSE, &state_110, NULL, KC_BTN1, 0, single_dance};
-uint8_t state_111 = IDLE;
-const struct Chord chord_111 PROGMEM = {H_TOP8, MOUSE, &state_111, NULL, KC_MS_U, 0, single_dance};
-uint8_t state_112 = IDLE;
-const struct Chord chord_112 PROGMEM = {H_TOP9, MOUSE, &state_112, NULL, KC_BTN2, 0, single_dance};
-uint8_t state_113 = IDLE;
-const struct Chord chord_113 PROGMEM = {H_TOP0, MOUSE, &state_113, NULL, KC_WH_U, 0, single_dance};
-uint8_t state_114 = IDLE;
-const struct Chord chord_114 PROGMEM = {H_BOT3, MOUSE, &state_114, NULL, KC_LSFT, 0, single_dance};
-uint8_t state_115 = IDLE;
-const struct Chord chord_115 PROGMEM = {H_BOT4, MOUSE, &state_115, NULL, KC_LCTL, 0, single_dance};
-uint8_t state_116 = IDLE;
-const struct Chord chord_116 PROGMEM = {H_BOT5, MOUSE, &state_116, NULL, KC_LALT, 0, single_dance};
-uint8_t state_117 = IDLE;
-const struct Chord chord_117 PROGMEM = {H_BOT6, MOUSE, &state_117, NULL, KC_LGUI, 0, single_dance};
-uint8_t state_118 = IDLE;
-const struct Chord chord_118 PROGMEM = {H_BOT7, MOUSE, &state_118, NULL, KC_MS_L, 0, single_dance};
-uint8_t state_119 = IDLE;
-const struct Chord chord_119 PROGMEM = {H_BOT8, MOUSE, &state_119, NULL, KC_MS_D, 0, single_dance};
-uint8_t state_120 = IDLE;
-const struct Chord chord_120 PROGMEM = {H_BOT9, MOUSE, &state_120, NULL, KC_MS_R, 0, single_dance};
-uint8_t state_121 = IDLE;
-const struct Chord chord_121 PROGMEM = {H_BOT0, MOUSE, &state_121, NULL, KC_WH_D, 0, single_dance};
-uint8_t state_122 = IDLE;
-const struct Chord chord_122 PROGMEM = {H_TOP1, ASETNIOP, &state_122, NULL, KC_A, 0, single_dance};
-uint8_t state_123 = IDLE;
-const struct Chord chord_123 PROGMEM = {H_TOP2, ASETNIOP, &state_123, NULL, KC_S, 0, single_dance};
-uint8_t state_124 = IDLE;
-const struct Chord chord_124 PROGMEM = {H_TOP3, ASETNIOP, &state_124, NULL, KC_E, 0, single_dance};
-uint8_t state_125 = IDLE;
-const struct Chord chord_125 PROGMEM = {H_TOP4, ASETNIOP, &state_125, NULL, KC_T, 0, single_dance};
-uint8_t state_126 = IDLE;
-const struct Chord chord_126 PROGMEM = {H_TOP7, ASETNIOP, &state_126, NULL, KC_N, 0, single_dance};
-uint8_t state_127 = IDLE;
-const struct Chord chord_127 PROGMEM = {H_TOP8, ASETNIOP, &state_127, NULL, KC_I, 0, single_dance};
-uint8_t state_128 = IDLE;
-const struct Chord chord_128 PROGMEM = {H_TOP9, ASETNIOP, &state_128, NULL, KC_O, 0, single_dance};
-uint8_t state_129 = IDLE;
-const struct Chord chord_129 PROGMEM = {H_TOP0, ASETNIOP, &state_129, NULL, KC_P, 0, single_dance};
-uint8_t state_130 = IDLE;
-const struct Chord chord_130 PROGMEM = {H_TOP1 + H_TOP2, ASETNIOP, &state_130, NULL, KC_W, 0, single_dance};
-uint8_t state_131 = IDLE;
-const struct Chord chord_131 PROGMEM = {H_TOP2 + H_TOP3, ASETNIOP, &state_131, NULL, KC_D, 0, single_dance};
-uint8_t state_132 = IDLE;
-const struct Chord chord_132 PROGMEM = {H_TOP3 + H_TOP4, ASETNIOP, &state_132, NULL, KC_R, 0, single_dance};
-uint8_t state_133 = IDLE;
-const struct Chord chord_133 PROGMEM = {H_TOP4 + H_TOP7, ASETNIOP, &state_133, NULL, KC_B, 0, single_dance};
-uint8_t state_134 = IDLE;
-const struct Chord chord_134 PROGMEM = {H_TOP7 + H_TOP8, ASETNIOP, &state_134, NULL, KC_H, 0, single_dance};
-uint8_t state_135 = IDLE;
-const struct Chord chord_135 PROGMEM = {H_TOP8 + H_TOP9, ASETNIOP, &state_135, NULL, KC_L, 0, single_dance};
-uint8_t state_136 = IDLE;
-const struct Chord chord_136 PROGMEM = {H_TOP9 + H_TOP0, ASETNIOP, &state_136, NULL, KC_SEMICOLON, 0, single_dance};
-uint8_t state_137 = IDLE;
-const struct Chord chord_137 PROGMEM = {H_TOP1 + H_TOP3, ASETNIOP, &state_137, NULL, KC_X, 0, single_dance};
-uint8_t state_138 = IDLE;
-const struct Chord chord_138 PROGMEM = {H_TOP2 + H_TOP4, ASETNIOP, &state_138, NULL, KC_C, 0, single_dance};
-uint8_t state_139 = IDLE;
-const struct Chord chord_139 PROGMEM = {H_TOP3 + H_TOP7, ASETNIOP, &state_139, NULL, KC_Y, 0, single_dance};
-uint8_t state_140 = IDLE;
-const struct Chord chord_140 PROGMEM = {H_TOP4 + H_TOP8, ASETNIOP, &state_140, NULL, KC_V, 0, single_dance};
-uint8_t state_141 = IDLE;
-const struct Chord chord_141 PROGMEM = {H_TOP7 + H_TOP9, ASETNIOP, &state_141, NULL, KC_U, 0, single_dance};
-uint8_t state_142 = IDLE;
-const struct Chord chord_142 PROGMEM = {H_TOP1 + H_TOP4, ASETNIOP, &state_142, NULL, KC_F, 0, single_dance};
-uint8_t state_143 = IDLE;
-const struct Chord chord_143 PROGMEM = {H_TOP2 + H_TOP7, ASETNIOP, &state_143, NULL, KC_J, 0, single_dance};
-uint8_t state_144 = IDLE;
-const struct Chord chord_144 PROGMEM = {H_TOP3 + H_TOP8, ASETNIOP, &state_144, NULL, KC_COMMA, 0, single_dance};
-uint8_t state_145 = IDLE;
-const struct Chord chord_145 PROGMEM = {H_TOP4 + H_TOP9, ASETNIOP, &state_145, NULL, KC_G, 0, single_dance};
-uint8_t state_146 = IDLE;
-const struct Chord chord_146 PROGMEM = {H_TOP7 + H_TOP0, ASETNIOP, &state_146, NULL, KC_M, 0, single_dance};
-uint8_t state_147 = IDLE;
-const struct Chord chord_147 PROGMEM = {H_TOP1 + H_TOP7, ASETNIOP, &state_147, NULL, KC_Q, 0, single_dance};
-uint8_t state_148 = IDLE;
-const struct Chord chord_148 PROGMEM = {H_TOP2 + H_TOP8, ASETNIOP, &state_148, NULL, KC_K, 0, single_dance};
-uint8_t state_149 = IDLE;
-const struct Chord chord_149 PROGMEM = {H_TOP3 + H_TOP9, ASETNIOP, &state_149, NULL, KC_MINUS, 0, single_dance};
-uint8_t state_150 = IDLE;
-const struct Chord chord_150 PROGMEM = {H_TOP4 + H_TOP0, ASETNIOP, &state_150, NULL, KC_BSPC, 0, single_dance};
-uint8_t state_151 = IDLE;
-const struct Chord chord_151 PROGMEM = {H_TOP1 + H_TOP8, ASETNIOP, &state_151, NULL, KC_Z, 0, single_dance};
-uint8_t state_152 = IDLE;
-const struct Chord chord_152 PROGMEM = {H_TOP2 + H_TOP9, ASETNIOP, &state_152, NULL, KC_DOT, 0, single_dance};
-uint8_t state_153 = IDLE;
-const struct Chord chord_153 PROGMEM = {H_TOP3 + H_TOP0, ASETNIOP, &state_153, NULL, KC_QUOTE, 0, single_dance};
-uint8_t state_154 = IDLE;
-const struct Chord chord_154 PROGMEM = {H_TOP1 + H_TOP9, ASETNIOP, &state_154, NULL, KC_LEFT_BRACKET, 0, single_dance};
-uint8_t state_155 = IDLE;
-const struct Chord chord_155 PROGMEM = {H_TOP2 + H_TOP0, ASETNIOP, &state_155, NULL, KC_RIGHT_BRACKET, 0, single_dance};
-uint8_t state_156 = IDLE;
-const struct Chord chord_156 PROGMEM = {H_TOP1 + H_TOP0, ASETNIOP, &state_156, NULL, KC_SLASH, 0, single_dance};
-uint8_t state_157 = IDLE;
-const struct Chord chord_157 PROGMEM = {H_TOP5, ASETNIOP, &state_157, NULL, KC_ESC, 0, single_dance};
-uint8_t state_158 = IDLE;
-const struct Chord chord_158 PROGMEM = {H_TOP6, ASETNIOP, &state_158, NULL, KC_DEL, 0, single_dance};
-uint8_t state_159 = IDLE;
-const struct Chord chord_159 PROGMEM = {H_BOT4, ASETNIOP, &state_159, NULL, KC_LSFT, 0, single_dance};
-uint8_t state_160 = IDLE;
-const struct Chord chord_160 PROGMEM = {H_BOT5, ASETNIOP, &state_160, NULL, KC_LCTL, 0, single_dance};
-uint8_t state_161 = IDLE;
-const struct Chord chord_161 PROGMEM = {H_BOT6, ASETNIOP, &state_161, NULL, KC_LALT, 0, single_dance};
-uint8_t state_162 = IDLE;
-uint8_t counter_162 = 0;
-const struct Chord chord_162 PROGMEM = {H_BOT7, ASETNIOP, &state_162, &counter_162, KC_SPACE, ASETNIOP_123, key_layer_dance};
-uint8_t state_163 = IDLE;
-const struct Chord chord_163 PROGMEM = {H_TOP5 + H_TOP6, ASETNIOP, &state_163, NULL, KC_LGUI, 0, single_dance};
-uint8_t state_164 = IDLE;
-const struct Chord chord_164 PROGMEM = {H_TOP1 + H_TOP2 + H_TOP3 + H_TOP4, ASETNIOP, &state_164, NULL, QWERTY, 0, perm_pseudolayer};
-uint8_t state_165 = IDLE;
-const struct Chord chord_165 PROGMEM = {H_BOT4 + H_BOT7, ASETNIOP, &state_165, NULL, ASETNIOP_FN, 0, temp_pseudolayer};
-uint8_t state_166 = IDLE;
-const struct Chord chord_166 PROGMEM = {H_TOP1, ASETNIOP_123, &state_166, NULL, KC_1, 0, single_dance};
-uint8_t state_167 = IDLE;
-const struct Chord chord_167 PROGMEM = {H_TOP2, ASETNIOP_123, &state_167, NULL, KC_2, 0, single_dance};
-uint8_t state_168 = IDLE;
-const struct Chord chord_168 PROGMEM = {H_TOP3, ASETNIOP_123, &state_168, NULL, KC_3, 0, single_dance};
-uint8_t state_169 = IDLE;
-const struct Chord chord_169 PROGMEM = {H_TOP4, ASETNIOP_123, &state_169, NULL, KC_4, 0, single_dance};
-uint8_t state_170 = IDLE;
-const struct Chord chord_170 PROGMEM = {H_TOP7, ASETNIOP_123, &state_170, NULL, KC_7, 0, single_dance};
-uint8_t state_171 = IDLE;
-const struct Chord chord_171 PROGMEM = {H_TOP8, ASETNIOP_123, &state_171, NULL, KC_8, 0, single_dance};
-uint8_t state_172 = IDLE;
-const struct Chord chord_172 PROGMEM = {H_TOP9, ASETNIOP_123, &state_172, NULL, KC_9, 0, single_dance};
-uint8_t state_173 = IDLE;
-const struct Chord chord_173 PROGMEM = {H_TOP0, ASETNIOP_123, &state_173, NULL, KC_0, 0, single_dance};
-uint8_t state_174 = IDLE;
-const struct Chord chord_174 PROGMEM = {H_TOP3 + H_TOP4, ASETNIOP_123, &state_174, NULL, KC_5, 0, single_dance};
-uint8_t state_175 = IDLE;
-const struct Chord chord_175 PROGMEM = {H_TOP4 + H_TOP7, ASETNIOP_123, &state_175, NULL, KC_EQUAL, 0, single_dance};
-uint8_t state_176 = IDLE;
-const struct Chord chord_176 PROGMEM = {H_TOP7 + H_TOP8, ASETNIOP_123, &state_176, NULL, KC_6, 0, single_dance};
-uint8_t state_177 = IDLE;
-const struct Chord chord_177 PROGMEM = {H_TOP8 + H_TOP9, ASETNIOP_123, &state_177, NULL, KC_BACKSLASH, 0, single_dance};
-uint8_t state_178 = IDLE;
-const struct Chord chord_178 PROGMEM = {H_TOP9 + H_TOP0, ASETNIOP_123, &state_178, NULL, KC_SEMICOLON, 0, single_dance};
-uint8_t state_179 = IDLE;
-const struct Chord chord_179 PROGMEM = {H_TOP4 + H_TOP0, ASETNIOP_123, &state_179, NULL, KC_BSPC, 0, single_dance};
-uint8_t state_180 = IDLE;
-const struct Chord chord_180 PROGMEM = {H_TOP5, ASETNIOP_123, &state_180, NULL, KC_ESC, 0, single_dance};
-uint8_t state_181 = IDLE;
-const struct Chord chord_181 PROGMEM = {H_TOP6, ASETNIOP_123, &state_181, NULL, KC_DEL, 0, single_dance};
-uint8_t state_182 = IDLE;
-const struct Chord chord_182 PROGMEM = {H_BOT4, ASETNIOP_123, &state_182, NULL, KC_LSFT, 0, single_dance};
-uint8_t state_183 = IDLE;
-const struct Chord chord_183 PROGMEM = {H_BOT5, ASETNIOP_123, &state_183, NULL, KC_LCTL, 0, single_dance};
-uint8_t state_184 = IDLE;
-const struct Chord chord_184 PROGMEM = {H_BOT6, ASETNIOP_123, &state_184, NULL, KC_LALT, 0, single_dance};
-uint8_t state_185 = IDLE;
-const struct Chord chord_185 PROGMEM = {H_TOP5 + H_TOP6, ASETNIOP_123, &state_185, NULL, KC_LGUI, 0, single_dance};
-uint8_t state_186 = IDLE;
-const struct Chord chord_186 PROGMEM = {H_TOP1, ASETNIOP_FN, &state_186, NULL, KC_HOME, 0, single_dance};
-uint8_t state_187 = IDLE;
-const struct Chord chord_187 PROGMEM = {H_TOP2, ASETNIOP_FN, &state_187, NULL, KC_PGDN, 0, single_dance};
-uint8_t state_188 = IDLE;
-const struct Chord chord_188 PROGMEM = {H_TOP3, ASETNIOP_FN, &state_188, NULL, KC_PGUP, 0, single_dance};
-uint8_t state_189 = IDLE;
-const struct Chord chord_189 PROGMEM = {H_TOP4, ASETNIOP_FN, &state_189, NULL, KC_END, 0, single_dance};
-uint8_t state_190 = IDLE;
-const struct Chord chord_190 PROGMEM = {H_TOP7, ASETNIOP_FN, &state_190, NULL, KC_LEFT, 0, single_dance};
-uint8_t state_191 = IDLE;
-const struct Chord chord_191 PROGMEM = {H_TOP8, ASETNIOP_FN, &state_191, NULL, KC_DOWN, 0, single_dance};
-uint8_t state_192 = IDLE;
-const struct Chord chord_192 PROGMEM = {H_TOP9, ASETNIOP_FN, &state_192, NULL, KC_UP, 0, single_dance};
-uint8_t state_193 = IDLE;
-const struct Chord chord_193 PROGMEM = {H_TOP0, ASETNIOP_FN, &state_193, NULL, KC_RIGHT, 0, single_dance};
-uint8_t state_194 = IDLE;
-const struct Chord chord_194 PROGMEM = {H_TOP1 + H_TOP2, ASETNIOP_FN, &state_194, NULL, KC_F1, 0, single_dance};
-uint8_t state_195 = IDLE;
-const struct Chord chord_195 PROGMEM = {H_TOP2 + H_TOP3, ASETNIOP_FN, &state_195, NULL, KC_F2, 0, single_dance};
-uint8_t state_196 = IDLE;
-const struct Chord chord_196 PROGMEM = {H_TOP3 + H_TOP4, ASETNIOP_FN, &state_196, NULL, KC_F3, 0, single_dance};
-uint8_t state_197 = IDLE;
-const struct Chord chord_197 PROGMEM = {H_TOP4 + H_TOP7, ASETNIOP_FN, &state_197, NULL, KC_F4, 0, single_dance};
-uint8_t state_198 = IDLE;
-const struct Chord chord_198 PROGMEM = {H_TOP7 + H_TOP8, ASETNIOP_FN, &state_198, NULL, KC_F5, 0, single_dance};
-uint8_t state_199 = IDLE;
-const struct Chord chord_199 PROGMEM = {H_TOP8 + H_TOP9, ASETNIOP_FN, &state_199, NULL, KC_F6, 0, single_dance};
-uint8_t state_200 = IDLE;
-const struct Chord chord_200 PROGMEM = {H_TOP9 + H_TOP0, ASETNIOP_FN, &state_200, NULL, KC_F7, 0, single_dance};
-uint8_t state_201 = IDLE;
-const struct Chord chord_201 PROGMEM = {H_TOP1 + H_TOP3, ASETNIOP_FN, &state_201, NULL, KC_F10, 0, single_dance};
-uint8_t state_202 = IDLE;
-const struct Chord chord_202 PROGMEM = {H_TOP8 + H_TOP0, ASETNIOP_FN, &state_202, NULL, KC_F8, 0, single_dance};
-uint8_t state_203 = IDLE;
-const struct Chord chord_203 PROGMEM = {H_TOP1 + H_TOP4, ASETNIOP_FN, &state_203, NULL, KC_F11, 0, single_dance};
-uint8_t state_204 = IDLE;
-const struct Chord chord_204 PROGMEM = {H_TOP7 + H_TOP0, ASETNIOP_FN, &state_204, NULL, KC_F9, 0, single_dance};
-uint8_t state_205 = IDLE;
-const struct Chord chord_205 PROGMEM = {H_TOP1 + H_TOP7, ASETNIOP_FN, &state_205, NULL, KC_F12, 0, single_dance};
-uint8_t state_206 = IDLE;
-const struct Chord chord_206 PROGMEM = {H_TOP4 + H_TOP0, ASETNIOP_FN, &state_206, NULL, KC_BSPC, 0, single_dance};
-uint8_t state_207 = IDLE;
-const struct Chord chord_207 PROGMEM = {H_TOP5, ASETNIOP_FN, &state_207, NULL, KC_ESC, 0, single_dance};
-uint8_t state_208 = IDLE;
-const struct Chord chord_208 PROGMEM = {H_TOP6, ASETNIOP_FN, &state_208, NULL, KC_DEL, 0, single_dance};
-uint8_t state_209 = IDLE;
-const struct Chord chord_209 PROGMEM = {H_BOT4, ASETNIOP_FN, &state_209, NULL, KC_LSFT, 0, single_dance};
-uint8_t state_210 = IDLE;
-const struct Chord chord_210 PROGMEM = {H_BOT5, ASETNIOP_FN, &state_210, NULL, KC_LCTL, 0, single_dance};
-uint8_t state_211 = IDLE;
-const struct Chord chord_211 PROGMEM = {H_BOT6, ASETNIOP_FN, &state_211, NULL, KC_LALT, 0, single_dance};
-uint8_t state_212 = IDLE;
-const struct Chord chord_212 PROGMEM = {H_TOP5 + H_TOP6, ASETNIOP_FN, &state_212, NULL, KC_LGUI, 0, single_dance};
-
-const struct Chord* const list_of_chords[] PROGMEM = {
- &chord_0, &chord_1, &chord_2, &chord_3, &chord_4, &chord_5, &chord_6, &chord_7, &chord_8, &chord_9, &chord_10, &chord_11, &chord_12, &chord_13, &chord_14, &chord_15, &chord_16, &chord_17, &chord_18, &chord_19, &chord_20, &chord_21, &chord_22, &chord_23, &chord_24, &chord_25, &chord_26, &chord_27, &chord_28, &chord_29, &chord_30, &chord_31, &chord_32, &chord_33, &chord_34, &chord_35, &chord_36, &chord_37, &chord_38, &chord_39, &chord_40, &chord_41, &chord_42, &chord_43, &chord_44, &chord_45, &chord_46, &chord_47, &chord_48, &chord_49, &chord_50, &chord_51, &chord_52, &chord_53, &chord_54, &chord_55, &chord_56, &chord_57, &chord_58, &chord_59, &chord_60, &chord_61, &chord_62, &chord_63, &chord_64, &chord_65, &chord_66, &chord_67, &chord_68, &chord_69, &chord_70, &chord_71, &chord_72, &chord_73, &chord_74, &chord_75, &chord_76, &chord_77, &chord_78, &chord_79, &chord_80, &chord_81, &chord_82, &chord_83, &chord_84, &chord_85, &chord_86, &chord_87, &chord_88, &chord_89, &chord_90, &chord_91, &chord_92, &chord_93, &chord_94, &chord_95, &chord_96, &chord_97, &chord_98, &chord_99, &chord_100, &chord_101, &chord_102, &chord_103, &chord_104, &chord_105, &chord_106, &chord_107, &chord_108, &chord_109, &chord_110, &chord_111, &chord_112, &chord_113, &chord_114, &chord_115, &chord_116, &chord_117, &chord_118, &chord_119, &chord_120, &chord_121, &chord_122, &chord_123, &chord_124, &chord_125, &chord_126, &chord_127, &chord_128, &chord_129, &chord_130, &chord_131, &chord_132, &chord_133, &chord_134, &chord_135, &chord_136, &chord_137, &chord_138, &chord_139, &chord_140, &chord_141, &chord_142, &chord_143, &chord_144, &chord_145, &chord_146, &chord_147, &chord_148, &chord_149, &chord_150, &chord_151, &chord_152, &chord_153, &chord_154, &chord_155, &chord_156, &chord_157, &chord_158, &chord_159, &chord_160, &chord_161, &chord_162, &chord_163, &chord_164, &chord_165, &chord_166, &chord_167, &chord_168, &chord_169, &chord_170, &chord_171, &chord_172, &chord_173, &chord_174, &chord_175, &chord_176, &chord_177, &chord_178, &chord_179, &chord_180, &chord_181, &chord_182, &chord_183, &chord_184, &chord_185, &chord_186, &chord_187, &chord_188, &chord_189, &chord_190, &chord_191, &chord_192, &chord_193, &chord_194, &chord_195, &chord_196, &chord_197, &chord_198, &chord_199, &chord_200, &chord_201, &chord_202, &chord_203, &chord_204, &chord_205, &chord_206, &chord_207, &chord_208, &chord_209, &chord_210, &chord_211, &chord_212
-};
-
-const uint16_t** const leader_triggers PROGMEM = NULL;
-void (*leader_functions[]) (void) = {};
-
-#define NUMBER_OF_CHORDS 213
-#define NUMBER_OF_LEADER_COMBOS 0
-
-bool are_hashed_keycodes_in_sound(HASH_TYPE keycodes_hash, HASH_TYPE sound) {
- return (keycodes_hash & sound) == keycodes_hash;
-}
-
-uint8_t keycode_to_index(uint16_t keycode) {
- return keycode - FIRST_INTERNAL_KEYCODE;
-}
-
-void sound_keycode_array(uint16_t keycode) {
- uint8_t index = keycode_to_index(keycode);
- keycode_index++;
- keycodes_buffer_array[index] = keycode_index;
-}
-
-void silence_keycode_hash_array(HASH_TYPE keycode_hash) {
- for (int i = 0; i < NUMBER_OF_KEYS; i++) {
- bool index_in_hash = ((HASH_TYPE) 1 << i) & keycode_hash;
- if (index_in_hash) {
- uint8_t current_val = keycodes_buffer_array[i];
- keycodes_buffer_array[i] = 0;
- for (int j = 0; j < NUMBER_OF_KEYS; j++) {
- if (keycodes_buffer_array[j] > current_val) {
- keycodes_buffer_array[j]--;
- }
- }
- keycode_index--;
- }
- }
-}
-
-bool are_hashed_keycodes_in_array(HASH_TYPE keycode_hash) {
- for (int i = 0; i < NUMBER_OF_KEYS; i++) {
- bool index_in_hash = ((HASH_TYPE) 1 << i) & keycode_hash;
- bool index_in_array = (bool) keycodes_buffer_array[i];
- if (index_in_hash && !index_in_array) {
- return false;
- }
- }
- return true;
-}
-
-void kill_one_shots(void) {
- struct Chord chord_storage;
- struct Chord* chord_ptr;
- struct Chord* chord;
-
- for (int i = 0; i < NUMBER_OF_CHORDS; i++) {
- chord_ptr = (struct Chord*) pgm_read_word (&list_of_chords[i]);
- memcpy_P(&chord_storage, chord_ptr, sizeof(struct Chord));
- chord = &chord_storage;
-
- if (*chord->state == IN_ONE_SHOT) {
- *chord->state = RESTART;
- chord->function(chord);
- if (*chord->state == RESTART) {
- *chord->state = IDLE;
- }
- }
- }
-}
-
-void process_finished_dances(void) {
- struct Chord chord_storage;
- struct Chord* chord_ptr;
- struct Chord* chord;
-
- for (int i = 0; i < NUMBER_OF_CHORDS; i++) {
- chord_ptr = (struct Chord*) pgm_read_word (&list_of_chords[i]);
- memcpy_P(&chord_storage, chord_ptr, sizeof(struct Chord));
- chord = &chord_storage;
-
- if (*chord->state == ACTIVATED) {
- *chord->state = PRESS_FROM_ACTIVE;
- chord->function(chord);
- if (a_key_went_through) {
- kill_one_shots();
- }
- dance_timer = timer_read();
- } else if (*chord->state == IDLE_IN_DANCE) {
- *chord->state = FINISHED;
- chord->function(chord);
- if (*chord->state == FINISHED) {
- *chord->state = RESTART;
- if (*chord->state == RESTART) {
- *chord->state = IDLE;
- }
- }
- } else if (*chord->state == PRESS_FROM_ACTIVE) {
- *chord->state = FINISHED_FROM_ACTIVE;
- chord->function(chord);
- if (a_key_went_through) {
- kill_one_shots();
- }
- dance_timer = timer_read();
- }
- }
-}
-
-uint8_t keycodes_buffer_array_min(uint8_t* first_keycode_index) {
- for (int i = 0; i < NUMBER_OF_KEYS; i++) {
- if (keycodes_buffer_array[i] == 1) {
- if (first_keycode_index != NULL) {
- *first_keycode_index = (uint8_t) i;
- }
- return 1;
- }
- }
- return 0;
-}
-
-void remove_subchords(void) {
- struct Chord chord_storage;
- struct Chord* chord_ptr;
- struct Chord* chord;
-
- for (int i = 0; i < NUMBER_OF_CHORDS; i++) {
- chord_ptr = (struct Chord*) pgm_read_word (&list_of_chords[i]);
- memcpy_P(&chord_storage, chord_ptr, sizeof(struct Chord));
- chord = &chord_storage;
-
- if (!(*chord->state == READY || *chord->state == READY_IN_DANCE || *chord->state == READY_LOCKED)) {
- continue;
- }
-
- struct Chord chord_storage_2;
- struct Chord* chord_ptr_2;
- struct Chord* chord_2;
- for (int j = 0; j < NUMBER_OF_CHORDS; j++) {
- if (i == j) {continue;}
-
- chord_ptr_2 = (struct Chord*) pgm_read_word (&list_of_chords[j]);
- memcpy_P(&chord_storage_2, chord_ptr_2, sizeof(struct Chord));
- chord_2 = &chord_storage_2;
-
- if (are_hashed_keycodes_in_sound(chord_2->keycodes_hash, chord->keycodes_hash)) {
- if (*chord_2->state == READY) {
- *chord_2->state = IDLE;
- }
- if (*chord_2->state == READY_IN_DANCE) {
- *chord_2->state = IDLE_IN_DANCE;
- }
- if (*chord_2->state == READY_LOCKED) {
- *chord_2->state = LOCKED;
- }
- }
- }
- }
-}
-
-void process_ready_chords(void) {
- uint8_t first_keycode_index = 0;
- while (keycodes_buffer_array_min(&first_keycode_index)) {
- // find ready chords
- struct Chord chord_storage;
- struct Chord* chord_ptr;
- struct Chord* chord;
-
- for (int i = 0; i < NUMBER_OF_CHORDS; i++) {
- chord_ptr = (struct Chord*) pgm_read_word (&list_of_chords[i]);
- memcpy_P(&chord_storage, chord_ptr, sizeof(struct Chord));
- chord = &chord_storage;
-
- // if the chord does not contain the first keycode
- bool contains_first_keycode = ((uint32_t) 1 << first_keycode_index) & chord->keycodes_hash;
- if (!contains_first_keycode) {
- continue;
- }
-
- if (!are_hashed_keycodes_in_array(chord->keycodes_hash)){
- continue;
- }
-
- if (*chord->state == LOCKED) {
- *chord->state = READY_LOCKED;
- continue;
- }
-
- if (!(chord->pseudolayer == current_pseudolayer || chord->pseudolayer == ALWAYS_ON)) {
- continue;
- }
-
- if (*chord->state == IDLE) {
- *chord->state = READY;
- continue;
- }
-
- if (*chord->state == IDLE_IN_DANCE) {
- *chord->state = READY_IN_DANCE;
- }
- }
-
- // remove subchords
- remove_subchords();
-
- // execute logic
- // this should be only one chord
- for (int i = 0; i < NUMBER_OF_CHORDS; i++) {
- chord_ptr = (struct Chord*) pgm_read_word (&list_of_chords[i]);
- memcpy_P(&chord_storage, chord_ptr, sizeof(struct Chord));
- chord = &chord_storage;
-
- if (*chord->state == READY_LOCKED) {
- *chord->state = RESTART;
- chord->function(chord);
- if (*chord->state == RESTART) {
- *chord->state = IDLE;
- }
- break;
- }
-
- if (*chord->state == READY || *chord->state == READY_IN_DANCE) {
- if (last_chord && last_chord != chord) {
- process_finished_dances();
- }
-
- bool lock_next_prev_state = lock_next;
-
- *chord->state = ACTIVATED;
- chord->function(chord);
- dance_timer = timer_read();
-
- if (lock_next && lock_next == lock_next_prev_state) {
- lock_next = false;
- *chord->state = PRESS_FROM_ACTIVE;
- chord->function(chord);
- if (*chord->state == PRESS_FROM_ACTIVE) {
- *chord->state = LOCKED;
- }
- if (a_key_went_through) {
- kill_one_shots();
- }
- }
- break;
- }
- }
-
- // silence notes
- silence_keycode_hash_array(chord->keycodes_hash);
- }
-}
-
-void deactivate_active_chords(uint16_t keycode) {
- HASH_TYPE hash = (HASH_TYPE)1 << (keycode - SAFE_RANGE);
- bool broken;
- struct Chord chord_storage;
- struct Chord* chord_ptr;
- struct Chord* chord;
-
- for (int i = 0; i < NUMBER_OF_CHORDS; i++) {
- chord_ptr = (struct Chord*) pgm_read_word (&list_of_chords[i]);
- memcpy_P(&chord_storage, chord_ptr, sizeof(struct Chord));
- chord = &chord_storage;
-
- broken = are_hashed_keycodes_in_sound(hash, chord->keycodes_hash);
- if (!broken) {
- continue;
- }
-
- switch (*chord->state) {
- case ACTIVATED:
- *chord->state = DEACTIVATED;
- chord->function(chord);
-
- if (*chord->state == DEACTIVATED) {
- dance_timer = timer_read();
- *chord->state = IDLE_IN_DANCE;
- }
- if (*chord->state != IN_ONE_SHOT) {
- kill_one_shots();
- }
- break;
- case PRESS_FROM_ACTIVE:
- case FINISHED_FROM_ACTIVE:
- *chord->state = RESTART;
- chord->function(chord);
- if (*chord->state == RESTART) {
- *chord->state = IDLE;
- }
- kill_one_shots();
- break;
- default:
- break;
- }
- }
-
-}
-
-void process_command(void) {
- command_mode = 0;
- for (int i = 0; i < COMMAND_MAX_LENGTH; i++) {
- if (command_buffer[i]) {
- register_code(command_buffer[i]);
- }
- send_keyboard_report();
- }
- wait_ms(TAP_TIMEOUT);
- for (int i = 0; i < COMMAND_MAX_LENGTH; i++) {
- if (command_buffer[i]) {
- unregister_code(command_buffer[i]);
- }
- send_keyboard_report();
- }
- for (int i = 0; i < COMMAND_MAX_LENGTH; i++) {
- command_buffer[i] = 0;
- }
- command_ind = 0;
-}
-
-void process_leader(void) {
- in_leader_mode = false;
- for (int i = 0; i < NUMBER_OF_LEADER_COMBOS; i++) {
- uint16_t trigger[LEADER_MAX_LENGTH];
- memcpy_P(trigger, leader_triggers[i], LEADER_MAX_LENGTH * sizeof(uint16_t));
-
- if (identical(leader_buffer, trigger)) {
- (*leader_functions[i])();
- break;
- }
- }
- for (int i = 0; i < LEADER_MAX_LENGTH; i++) {
- leader_buffer[i] = 0;
- }
-}
-
-bool process_record_user(uint16_t keycode, keyrecord_t *record) {
- if (keycode < FIRST_INTERNAL_KEYCODE || keycode > LAST_INTERNAL_KEYCODE) {
- return true;
- }
-
- if (record->event.pressed) {
- sound_keycode_array(keycode);
- } else {
- process_ready_chords();
- deactivate_active_chords(keycode);
- }
- chord_timer = timer_read();
- leader_timer = timer_read();
-
- return false;
-}
-
-void matrix_scan_user(void) {
- bool chord_timer_expired = timer_elapsed(chord_timer) > CHORD_TIMEOUT;
- if (chord_timer_expired && keycodes_buffer_array_min(NULL)) {
- process_ready_chords();
- }
-
- bool dance_timer_expired = timer_elapsed(dance_timer) > DANCE_TIMEOUT;
- if (dance_timer_expired) { // would love to have && in_dance but not sure how
- process_finished_dances();
- }
-
- bool in_command_mode = command_mode == 2;
- if (in_command_mode) {
- process_command();
- }
-
- bool leader_timer_expired = timer_elapsed(leader_timer) > LEADER_TIMEOUT;
- if (leader_timer_expired && in_leader_mode) {
- process_leader();
- }
-
-}
-
-void clear(const struct Chord* self) {
- if (*self->state == ACTIVATED) {
- // kill all chords
- struct Chord chord_storage;
- struct Chord* chord_ptr;
- struct Chord* chord;
-
- for (int i = 0; i < NUMBER_OF_CHORDS; i++) {
- chord_ptr = (struct Chord*) pgm_read_word (&list_of_chords[i]);
- memcpy_P(&chord_storage, chord_ptr, sizeof(struct Chord));
- chord = &chord_storage;
-
- *chord->state = IDLE;
-
- if (chord->counter) {
- *chord->counter = 0;
- }
- }
-
- // clear keyboard
- clear_keyboard();
- send_keyboard_report();
-
- // switch to default pseudolayer
- current_pseudolayer = DEFAULT_PSEUDOLAYER;
-
- // clear all keyboard states
- lock_next = false;
- autoshift_mode = true;
- command_mode = 0;
- in_leader_mode = false;
- leader_ind = 0;
- dynamic_macro_mode = false;
- a_key_went_through = false;
-
- for (int i = 0; i < DYNAMIC_MACRO_MAX_LENGTH; i++) {
- dynamic_macro_buffer[i] = 0;
- }
- }
-} \ No newline at end of file
diff --git a/keyboards/gboards/butterstick/keymaps/dennytom/keymap_def.json b/keyboards/gboards/butterstick/keymaps/dennytom/keymap_def.json
deleted file mode 100644
index 16f02ca529..0000000000
--- a/keyboards/gboards/butterstick/keymaps/dennytom/keymap_def.json
+++ /dev/null
@@ -1,309 +0,0 @@
-{
- "keys": [
- "TOP1", "TOP2", "TOP3", "TOP4", "TOP5", "TOP6", "TOP7", "TOP8", "TOP9", "TOP0",
- "BOT1", "BOT2", "BOT3", "BOT4", "BOT5", "BOT6", "BOT7", "BOT8", "BOT9", "BOT0"
- ],
- "parameters": {
- "layout_function_name": "LAYOUT_butter",
- "chord_timeout": 100,
- "dance_timeout": 200,
- "leader_timeout": 750,
- "tap_timeout": 50,
- "command_max_length": 5,
- "leader_max_length": 5,
- "dynamic_macro_max_length": 20,
- "string_max_length": 16,
- "long_press_multiplier": 3,
- "default_pseudolayer": "QWERTY"
- },
- "layers": [
- {
- "type": "auto"
- }
- ],
- "chord_sets": [
- {
- "name": "rows",
- "chords": [
- ["TOP1"], ["TOP2"], ["TOP3"], ["TOP4"], ["TOP5"], ["TOP6"], ["TOP7"], ["TOP8"], ["TOP9"], ["TOP0"],
- ["TOP1", "BOT1"], ["TOP2", "BOT2"], ["TOP3", "BOT3"], ["TOP4", "BOT4"], ["TOP5", "BOT5"], ["TOP6", "BOT6"], ["TOP7", "BOT7"], ["TOP8", "BOT8"], ["TOP9", "BOT9"], ["TOP0", "BOT0"],
- ["BOT1"], ["BOT2"], ["BOT3"], ["BOT4"], ["BOT5"], ["BOT6"], ["BOT7"], ["BOT8"], ["BOT9"], ["BOT0"]
- ]
- },
- {
- "name": "cols",
- "chords": [
- ["TOP1", "TOP2"], ["TOP2", "TOP3"], ["TOP3", "TOP4"], ["TOP4", "TOP5"], ["TOP5", "TOP6"], ["TOP6", "TOP7"], ["TOP7", "TOP8"], ["TOP8", "TOP9"], ["TOP9", "TOP0"],
- ["TOP1", "TOP2", "BOT1", "BOT2"], ["TOP2", "TOP3", "BOT2", "BOT3"], ["TOP3", "TOP4", "BOT3", "BOT4"], ["TOP4", "TOP5", "BOT4", "BOT5"], ["TOP5", "TOP6", "BOT5", "BOT6"], ["TOP6", "TOP7", "BOT6", "BOT7"], ["TOP7", "TOP8", "BOT7", "BOT8"], ["TOP8", "TOP9", "BOT8", "BOT9"], ["TOP9", "TOP0", "BOT9", "BOT0"],
- ["BOT1", "BOT2"], ["BOT2", "BOT3"], ["BOT3", "BOT4"], ["BOT4", "BOT5"], ["BOT5", "BOT6"], ["BOT6", "BOT7"], ["BOT7", "BOT8"], ["BOT8", "BOT9"], ["BOT9", "BOT0"]
- ]
- },
- {
- "name": "asetniop",
- "chords": [
- ["TOP1"], ["TOP2"], ["TOP3"], ["TOP4"], ["TOP7"], ["TOP8"], ["TOP9"], ["TOP0"],
- ["TOP1", "TOP2"], ["TOP2", "TOP3"], ["TOP3", "TOP4"], ["TOP4", "TOP7"], ["TOP7", "TOP8"], ["TOP8", "TOP9"], ["TOP9", "TOP0"],
- ["TOP1", "TOP3"], ["TOP2", "TOP4"], ["TOP3", "TOP7"], ["TOP4", "TOP8"], ["TOP7", "TOP9"], ["TOP8", "TOP0"],
- ["TOP1", "TOP4"], ["TOP2", "TOP7"], ["TOP3", "TOP8"], ["TOP4", "TOP9"], ["TOP7", "TOP0"],
- ["TOP1", "TOP7"], ["TOP2", "TOP8"], ["TOP3", "TOP9"], ["TOP4", "TOP0"],
- ["TOP1", "TOP8"], ["TOP2", "TOP9"], ["TOP3", "TOP0"],
- ["TOP1", "TOP9"], ["TOP2", "TOP0"],
- ["TOP1", "TOP0"]
- ]
- }
- ],
- "pseudolayers": [
- {
- "name": "ALWAYS_ON",
- "chords": [
- {
- "type": "chord_set",
- "set": "cols",
- "keycodes": [
- " ", " ", " ", " ", " ", " ", " ", " ", " ",
- "LOCK", " AT", " ", " ", " CMD", " ", " ", " ", " ",
- " ", " ", " ", " ", " ", " ", " ", " ", " "
- ]
- },
- {
- "type": "visual",
- "chord": [
- "X", "X", " ", " ", " ", " ", " ", " ", "X", "X",
- "X", "X", " ", " ", " ", " ", " ", " ", "X", "X"
- ],
- "keycode": "CLEAR_KB"
- }
- ]
- },
- {
- "name": "QWERTY",
- "chords": [
- {
- "type": "chord_set",
- "set": "rows",
- "keycodes": [
- "AS(Q)", "AS(W)", "AS(E)", "AS(R)", "AS(T)", "AS(Y)", "AS(U)", "AS(I)", "AS(O)", "AS(P)",
- "AS(A)", "AS(S)", "AS(D)", "AS(F)", "AS(G)", "AS(H)", "AS(J)", "AS(K)", "AS(L)", "AS(;)",
- "AS(Z)", "AS(X)", "AS(C)", "AS(V)", "AS(B)", "AS(N)", "AS(M)", "AS(,)", "AS(.)", "AS(/)"
- ]
- },
- {
- "type": "chord_set",
- "set": "cols",
- "keycodes": [
- " ESC", "MO(MOV)", " TAB", " ", "O(RGUI)", " ", " INS", " DEL", " BSPC",
- " ", " ", " ", " ", " ", " ", " ", " ", " ENTER",
- "O(LSFT)", "O(LCTL)", "O(LALT)", "O(NUM)", "O(LGUI)", "O(NUM)", "O(RALT)", "O(RCTL)", "O(RSFT)"
- ]
- },
- {
- "type": "simple",
- "chord": ["BOT1", "BOT0"],
- "keycode": "SPACE"
- },
- {
- "type": "visual",
- "chord": [
- "X", "X", "X", "X", " ", " ", " ", " ", " ", " ",
- " ", " ", " ", " ", " ", " ", " ", " ", " ", " "
- ],
- "keycode": "MO(MOUSE)"
- },
- {
- "type": "visual",
- "chord": [
- "X", "X", "X", "X", " ", " ", "X", "X", "X", "X",
- " ", " ", " ", " ", " ", " ", " ", " ", " ", " "
- ],
- "keycode": "DF(ASETNIOP)"
- }
- ]
- },
- {
- "name": "NUM",
- "chords": [
- {
- "type": "chord_set",
- "set": "rows",
- "keycodes": [
- "AS(1)", "AS(2)", "AS(3)", "AS(4)", "AS(5)", "AS(6)", "AS(7)", "AS(8)", "AS(9)", "AS(0)",
- " F1", " F2", " F3", " F4", " F5", " F6", " F7", " F8", " F9", " F10",
- "AS(`)", "AS(-)", "AS(=)", "AS([)", "AS(])", "AS(\\)", "AS(')", " ", " F11", " F12"
- ]
- },
- {
- "type": "chord_set",
- "set": "cols",
- "keycodes": [
- " ESC", " ", " TAB", " ", "O(RGUI)", " ", " INS", " DEL", " BSPC",
- " ", " ", " ", " ", " ", " ", " ", " ", " ENTER",
- "O(LSFT)", "O(LCTL)", "O(LALT)", " ", "O(LGUI)", " ", "O(RALT)", "O(RCTL)", " O(RSFT)"
- ]
- },
- {
- "type": "simple",
- "chord": ["BOT1", "BOT0"],
- "keycode": "SPACE"
- }
- ]
- },
- {
- "name": "MOV",
- "chords": [
- {
- "type": "chord_set",
- "set": "rows",
- "keycodes": [
- " ", " ", " ", " ", " ", " ", " HOME", " UP", " END", " PGUP",
- " ", " ", " ", " ", " ", " ", " ", " ", " ", " ",
- " ", " ", " LSFT", " LCTL", " LALT", " LGUI", " LEFT", " DOWN", "RIGHT", " PGDN"
- ]
- }
- ]
- },
- {
- "name": "MOUSE",
- "chords": [
- {
- "type": "chord_set",
- "set": "rows",
- "keycodes": [
- " ", " ", " ", " ", " ", " ", " BTN1", " MS_U", " BTN2", " WH_U",
- " ", " ", " ", " ", " ", " ", " ", " ", " ", " ",
- " ", " ", " LSFT", " LCTL", " LALT", " LGUI", " MS_L", " MS_D", " MS_R", " WH_D"
- ]
- }
- ]
- },
- {
- "name": "ASETNIOP",
- "chords": [
- {
- "type": "chord_set",
- "set": "asetniop",
- "keycodes": [
- "A", "S", "E", "T", "N", "I", "O", "P",
- "W", "D", "R", "B", "H", "L", ";",
- "X", "C", "Y", "V", "U", "",
- "F", "J", ",", "G", "M",
- "Q", "K", "-", "BSPC",
- "Z", ".", "'",
- "[", "]",
- "/"
- ]
- },
- {
- "type": "chord_set",
- "set": "rows",
- "keycodes": [
- " ", " ", " ", " ", " ESC", " DEL", " ", " ", " ", " ",
- " ", " ", " ", " ", " ", " ", " ", " ", " ", " ",
- " ", " ", " ", "LSFT", "LCTL", "LALT", "KL(SPACE, ASETNIOP_123)", "", "", ""
- ]
- },
- {
- "type": "chord_set",
- "set": "cols",
- "keycodes": [
- " ", " ", " ", " ", "LGUI", " ", " ", " ", " ",
- " ", " ", " ", " ", " ", " ", " ", " ", " ",
- " ", " ", " ", " ", " ", " ", " ", " ", " "
- ]
- },
- {
- "type": "visual",
- "chord": [
- "X", "X", "X", "X", " ", " ", " ", " ", " ", " ",
- " ", " ", " ", " ", " ", " ", " ", " ", " ", " "
- ],
- "keycode": "DF(QWERTY)"
- },
- {
- "type": "visual",
- "chord": [
- " ", " ", " ", " ", " ", " ", " ", " ", " ", " ",
- " ", " ", " ", "X", " ", " ", "X", " ", " ", " "
- ],
- "keycode": "MO(ASETNIOP_FN)"
- }
- ]
- },
- {
- "name": "ASETNIOP_123",
- "chords": [
- {
- "type": "chord_set",
- "set": "asetniop",
- "keycodes": [
- "1", "2", "3", "4", "7", "8", "9", "0",
- " ", " ", "5", "=", "6", "\\", ";",
- " ", " ", " ", " ", " ", " ",
- " ", " ", " ", " ", " ",
- " ", " ", " ", "BSPC",
- " ", " ", " ",
- " ", " ",
- " "
- ]
- },
- {
- "type": "chord_set",
- "set": "rows",
- "keycodes": [
- " ", " ", " ", " ", " ESC", " DEL", " ", " ", " ", " ",
- " ", " ", " ", " ", " ", " ", " ", " ", " ", " ",
- " ", " ", " ", "LSFT", "LCTL", "LALT", " ", " ", " ", " "
- ]
- },
- {
- "type": "chord_set",
- "set": "cols",
- "keycodes": [
- " ", " ", " ", " ", "LGUI", " ", " ", " ", " ",
- " ", " ", " ", " ", " ", " ", " ", " ", " ",
- " ", " ", " ", " ", " ", " ", " ", " ", " "
- ]
- }
- ]
- },
- {
- "name": "ASETNIOP_FN",
- "chords": [
- {
- "type": "chord_set",
- "set": "asetniop",
- "keycodes": [
- "HOME", "PGDN", "PGUP", " END", "LEFT", "DOWN", " UP", "RIGHT",
- " F1", " F2", " F3", " F4", " F5", " F6", " F7",
- " F10", " ", " ", " ", " ", " F8",
- " F11", " ", " ", " ", " F9",
- " F12", " ", " ", "BSPC",
- " ", " ", " ",
- " ", " ",
- " "
- ]
- },
- {
- "type": "chord_set",
- "set": "rows",
- "keycodes": [
- " ", " ", " ", " ", " ESC", " DEL", " ", " ", " ", " ",
- " ", " ", " ", " ", " ", " ", " ", " ", " ", " ",
- " ", " ", " ", "LSFT", "LCTL", "LALT", " ", " ", " ", " "
- ]
- },
- {
- "type": "chord_set",
- "set": "cols",
- "keycodes": [
- " ", " ", " ", " ", "LGUI", " ", " ", " ", " ",
- " ", " ", " ", " ", " ", " ", " ", " ", " ",
- " ", " ", " ", " ", " ", " ", " ", " ", " "
- ]
- }
- ]
- }
- ],
- "leader_sequences": [],
- "extra_code": "",
- "extra_dependencies": []
-} \ No newline at end of file
diff --git a/keyboards/gboards/butterstick/keymaps/dennytom/rules.mk b/keyboards/gboards/butterstick/keymaps/dennytom/rules.mk
deleted file mode 100644
index 1155f72c04..0000000000
--- a/keyboards/gboards/butterstick/keymaps/dennytom/rules.mk
+++ /dev/null
@@ -1,8 +0,0 @@
-MOUSEKEY_ENABLE = yes
-EXTRAKEY_ENABLE = yes
-CONSOLE_ENABLE = no
-# COMMAND_ENABLE = no
-NKRO_ENABLE = yes
-
-TMPVAR := $(SRC)
-SRC = $(filter-out sten.c, $(TMPVAR)) \ No newline at end of file
diff --git a/keyboards/gboards/butterstick/sten.h b/keyboards/gboards/butterstick/sten.h
index 84c54c9e2e..ca6b03f778 100644
--- a/keyboards/gboards/butterstick/sten.h
+++ b/keyboards/gboards/butterstick/sten.h
@@ -8,9 +8,6 @@
#pragma once
#include QMK_KEYBOARD_H
-#include "mousekey.h"
-#include "keymap_steno.h"
-#include "wait.h"
extern size_t keymapsCount; // Total keymaps
extern uint32_t cChord; // Current Chord
diff --git a/keyboards/gboards/ergotaco/rules.mk b/keyboards/gboards/ergotaco/rules.mk
index 2df8900c2d..6fbefbd22d 100644
--- a/keyboards/gboards/ergotaco/rules.mk
+++ b/keyboards/gboards/ergotaco/rules.mk
@@ -7,4 +7,5 @@ COMMAND_ENABLE = yes
# know what you're doing.
#
# No touchy, capiche?
-SRC += matrix.c i2c_master.c
+SRC += matrix.c
+I2C_DRIVER_REQUIRED = yes
diff --git a/keyboards/gboards/georgi/keymaps/colemak-dh/keymap.c b/keyboards/gboards/georgi/keymaps/colemak-dh/keymap.c
index 9b3365d02f..932d48959c 100644
--- a/keyboards/gboards/georgi/keymaps/colemak-dh/keymap.c
+++ b/keyboards/gboards/georgi/keymaps/colemak-dh/keymap.c
@@ -12,7 +12,6 @@
#include QMK_KEYBOARD_H
#include "sten.h"
-#include "keymap_steno.h"
// Steno Layers
#define FUNCT ( LSD | LK | LP | LH )
diff --git a/keyboards/gboards/georgi/keymaps/default-flipped/keymap.c b/keyboards/gboards/georgi/keymaps/default-flipped/keymap.c
index 2e63fe3c7d..19683179f3 100644
--- a/keyboards/gboards/georgi/keymaps/default-flipped/keymap.c
+++ b/keyboards/gboards/georgi/keymaps/default-flipped/keymap.c
@@ -12,7 +12,6 @@
#include QMK_KEYBOARD_H
#include "sten.h"
-#include "keymap_steno.h"
// Proper Layers
#define FUNCT (LSD | LK | LP | LH)
diff --git a/keyboards/gboards/georgi/keymaps/default/keymap.c b/keyboards/gboards/georgi/keymaps/default/keymap.c
index a9c2d4a47d..955ec0e406 100644
--- a/keyboards/gboards/georgi/keymaps/default/keymap.c
+++ b/keyboards/gboards/georgi/keymaps/default/keymap.c
@@ -12,7 +12,6 @@
#include QMK_KEYBOARD_H
#include "sten.h"
-#include "keymap_steno.h"
// Proper Layers
#define FUNCT (LSD | LK | LP | LH)
diff --git a/keyboards/gboards/georgi/keymaps/dennytom/README.md b/keyboards/gboards/georgi/keymaps/dennytom/README.md
deleted file mode 100644
index 14bc1d2045..0000000000
--- a/keyboards/gboards/georgi/keymaps/dennytom/README.md
+++ /dev/null
@@ -1,11 +0,0 @@
-# # Dennytom's Georgi Layout
-
-This keymap is using a custom chording engine. Head out to my (DennyTom) user space to find the source files and details.
-
-To make a real keymap from the JSON file, run
-
-```sh
-python3 parser.py keymap_def.json keymap.c
-```
-
-Likely will change with use. I enjoy the modifiers on the "home row". \ No newline at end of file
diff --git a/keyboards/gboards/georgi/keymaps/dennytom/keymap.c b/keyboards/gboards/georgi/keymaps/dennytom/keymap.c
deleted file mode 100644
index 902d2271d7..0000000000
--- a/keyboards/gboards/georgi/keymaps/dennytom/keymap.c
+++ /dev/null
@@ -1,1208 +0,0 @@
-#include QMK_KEYBOARD_H
-
-#define H_TOP1 ((HASH_TYPE) 1 << 0)
-#define H_TOP2 ((HASH_TYPE) 1 << 1)
-#define H_TOP3 ((HASH_TYPE) 1 << 2)
-#define H_TOP4 ((HASH_TYPE) 1 << 3)
-#define H_TOP5 ((HASH_TYPE) 1 << 4)
-#define H_TOP6 ((HASH_TYPE) 1 << 5)
-#define H_TOP7 ((HASH_TYPE) 1 << 6)
-#define H_TOP8 ((HASH_TYPE) 1 << 7)
-#define H_TOP9 ((HASH_TYPE) 1 << 8)
-#define H_TOP10 ((HASH_TYPE) 1 << 9)
-#define H_TOP11 ((HASH_TYPE) 1 << 10)
-#define H_TOP12 ((HASH_TYPE) 1 << 11)
-#define H_BOT1 ((HASH_TYPE) 1 << 12)
-#define H_BOT2 ((HASH_TYPE) 1 << 13)
-#define H_BOT3 ((HASH_TYPE) 1 << 14)
-#define H_BOT4 ((HASH_TYPE) 1 << 15)
-#define H_BOT5 ((HASH_TYPE) 1 << 16)
-#define H_BOT6 ((HASH_TYPE) 1 << 17)
-#define H_BOT7 ((HASH_TYPE) 1 << 18)
-#define H_BOT8 ((HASH_TYPE) 1 << 19)
-#define H_BOT9 ((HASH_TYPE) 1 << 20)
-#define H_BOT10 ((HASH_TYPE) 1 << 21)
-#define H_BOT11 ((HASH_TYPE) 1 << 22)
-#define H_BOT12 ((HASH_TYPE) 1 << 23)
-#define H_THU1 ((HASH_TYPE) 1 << 24)
-#define H_THU2 ((HASH_TYPE) 1 << 25)
-#define H_THU3 ((HASH_TYPE) 1 << 26)
-#define H_THU4 ((HASH_TYPE) 1 << 27)
-#define H_THU5 ((HASH_TYPE) 1 << 28)
-#define H_THU6 ((HASH_TYPE) 1 << 29)
-
-enum internal_keycodes {
- TOP1 = SAFE_RANGE,
- TOP2, TOP3, TOP4, TOP5, TOP6, TOP7, TOP8, TOP9, TOP10, TOP11, TOP12, BOT1, BOT2, BOT3, BOT4, BOT5, BOT6, BOT7, BOT8, BOT9, BOT10, BOT11, BOT12, THU1, THU2, THU3, THU4, THU5, THU6,
- FIRST_INTERNAL_KEYCODE = TOP1,
- LAST_INTERNAL_KEYCODE = THU6
-};
-
-enum pseudolayers {
- ALWAYS_ON, QWERTY, NUM, FNC, NAV, MOUSE
-};
-
-#define CHORD_TIMEOUT 100
-#define DANCE_TIMEOUT 200
-#define LEADER_TIMEOUT 750
-#define TAP_TIMEOUT 50
-#define LONG_PRESS_MULTIPLIER 3
-#define DYNAMIC_MACRO_MAX_LENGTH 20
-#define COMMAND_MAX_LENGTH 5
-#define STRING_MAX_LENGTH 16
-#define LEADER_MAX_LENGTH 5
-#define HASH_TYPE uint32_t
-#define NUMBER_OF_KEYS 30
-#define DEFAULT_PSEUDOLAYER QWERTY
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [0] = LAYOUT_georgi(TOP1, TOP2, TOP3, TOP4, TOP5, TOP6, TOP7, TOP8, TOP9, TOP10, TOP11, TOP12, BOT1, BOT2, BOT3, BOT4, BOT5, BOT6, BOT7, BOT8, BOT9, BOT10, BOT11, BOT12, THU1, THU2, THU3, THU4, THU5, THU6),
-};
-size_t keymapsCount = 1;
-
-uint8_t keycodes_buffer_array[] = {
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
-};
-
-uint8_t command_buffer[] = {
- 0, 0, 0, 0, 0
-};
-
-uint16_t leader_buffer[] = {
- 0, 0, 0, 0, 0
-};
-
-uint8_t dynamic_macro_buffer[] = {
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
-};
-
-enum chord_states {
- IDLE,
- READY,
- ACTIVATED,
- DEACTIVATED,
- PRESS_FROM_ACTIVE,
- FINISHED_FROM_ACTIVE,
- IDLE_IN_DANCE,
- READY_IN_DANCE,
- FINISHED,
- LOCKED,
- READY_LOCKED,
- RESTART,
- IN_ONE_SHOT
-};
-
-struct Chord {
- uint32_t keycodes_hash;
- uint8_t pseudolayer;
- uint8_t* state;
- uint8_t* counter;
- uint16_t value1;
- uint8_t value2;
- void (*function) (const struct Chord*);
-};
-
-uint8_t current_pseudolayer = DEFAULT_PSEUDOLAYER;
-bool lock_next = false;
-uint16_t chord_timer = 0;
-uint16_t dance_timer = 0;
-bool autoshift_mode = true;
-uint8_t keycode_index = 0;
-uint8_t command_mode = 0;
-uint8_t command_ind = 0;
-bool in_leader_mode = false;
-uint8_t leader_ind = 0;
-uint16_t leader_timer = 0;
-uint8_t dynamic_macro_mode = false;
-uint8_t dynamic_macro_ind = 0;
-bool a_key_went_through = false;
-struct Chord* last_chord = NULL;
-
-bool handle_US_ANSI_shifted_keys(int16_t keycode, bool in) {
- bool is_US_ANSI_shifted = true;
-
- int16_t regular_keycode = KC_NO;
- switch (keycode) {
- case KC_TILDE:
- regular_keycode = KC_GRAVE;
- break;
- case KC_EXCLAIM:
- regular_keycode = KC_1;
- break;
- case KC_AT:
- regular_keycode = KC_2;
- break;
- case KC_HASH:
- regular_keycode = KC_3;
- break;
- case KC_DOLLAR:
- regular_keycode = KC_4;
- break;
- case KC_PERCENT:
- regular_keycode = KC_5;
- break;
- case KC_CIRCUMFLEX:
- regular_keycode = KC_6;
- break;
- case KC_AMPERSAND:
- regular_keycode = KC_7;
- break;
- case KC_ASTERISK:
- regular_keycode = KC_8;
- break;
- case KC_LEFT_PAREN:
- regular_keycode = KC_9;
- break;
- case KC_RIGHT_PAREN:
- regular_keycode = KC_0;
- break;
- case KC_UNDERSCORE:
- regular_keycode = KC_MINUS;
- break;
- case KC_PLUS:
- regular_keycode = KC_EQUAL;
- break;
- case KC_LEFT_CURLY_BRACE:
- regular_keycode = KC_LEFT_BRACKET;
- break;
- case KC_RIGHT_CURLY_BRACE:
- regular_keycode = KC_RIGHT_BRACKET;
- break;
- case KC_PIPE:
- regular_keycode = KC_BACKSLASH;
- break;
- case KC_COLON:
- regular_keycode = KC_SEMICOLON;
- break;
- case KC_DOUBLE_QUOTE:
- regular_keycode = KC_QUOTE;
- break;
- case KC_LEFT_ANGLE_BRACKET:
- regular_keycode = KC_COMMA;
- break;
- case KC_RIGHT_ANGLE_BRACKET:
- regular_keycode = KC_DOT;
- break;
- case KC_QUESTION:
- regular_keycode = KC_SLASH;
- break;
- default:
- is_US_ANSI_shifted = false;
- }
- if (is_US_ANSI_shifted) {
- if (in) {
- register_code(KC_LSFT);
- register_code(regular_keycode);
- } else {
- unregister_code(regular_keycode);
- unregister_code(KC_LSFT);
- }
- }
- return is_US_ANSI_shifted;
-}
-
-void key_in(int16_t keycode) {
- if (command_mode == 1 && command_ind < COMMAND_MAX_LENGTH) {
- command_buffer[command_ind] = keycode;
- command_ind++;
- a_key_went_through = true;
- } else if (in_leader_mode && leader_ind < LEADER_MAX_LENGTH) {
- leader_buffer[leader_ind] = keycode;
- leader_ind++;
- a_key_went_through = true;
- } else if (dynamic_macro_mode && dynamic_macro_ind < DYNAMIC_MACRO_MAX_LENGTH) {
- dynamic_macro_buffer[dynamic_macro_ind] = keycode;
- dynamic_macro_ind++;
- a_key_went_through = true;
- } else {
- if (!handle_US_ANSI_shifted_keys(keycode, true)) {
- register_code(keycode);
- }
- send_keyboard_report();
- a_key_went_through = true;
- }
-}
-
-void key_out(int16_t keycode) {
- if (command_mode == 0) {
- if (!handle_US_ANSI_shifted_keys(keycode, false)) {
- if (command_mode == 0 && in_leader_mode == false && dynamic_macro_mode == false) {
- unregister_code(keycode);
- }
- }
- send_keyboard_report();
- }
-}
-
-void tap_key(int16_t keycode) {
- key_in(keycode);
- wait_ms(TAP_TIMEOUT);
- key_out(keycode);
-}
-const char * const strings[] PROGMEM = {
-
-};
-void single_dance(const struct Chord* self) {
- switch (*self->state) {
- case ACTIVATED:
- key_in(self->value1);
- break;
- case DEACTIVATED:
- key_out(self->value1);
- *self->state = IDLE;
- break;
- case RESTART:
- key_out(self->value1);
- break;
- default:
- break;
- }
-}
-
-void key_layer_dance(const struct Chord* self) {
- switch (*self->state) {
- case ACTIVATED:
- current_pseudolayer = self->value2;
- a_key_went_through = false;
- break;
- case DEACTIVATED:
- case RESTART:
- if (!a_key_went_through) {
- tap_key(self->value1);
- }
- current_pseudolayer = self->pseudolayer;
- *self->state = IDLE; // does not have effect if the state was RESTART
- break;
- default:
- break;
- }
-}
-
-void key_mod_dance(const struct Chord* self) {
- switch (*self->state) {
- case ACTIVATED:
- key_in(self->value2);
- a_key_went_through = false;
- break;
- case DEACTIVATED:
- case RESTART:
- key_out(self->value2);
- if (!a_key_went_through) {
- tap_key(self->value1);
- }
- *self->state = IDLE; // does not have effect if the state was RESTART
- break;
- default:
- break;
- }
-}
-
-void key_key_dance(const struct Chord* self) {
- switch (*self->state) {
- case ACTIVATED:
- break;
- case DEACTIVATED:
- tap_key(self->value1);
- *self->state = IDLE;
- break;
- case FINISHED:
- case PRESS_FROM_ACTIVE:
- key_in(self->value2);
- break;
- case RESTART:
- key_out(self->value2);
- break;
- default:
- break;
- }
-}
-
-void autoshift_dance_impl(const struct Chord* self) {
- switch (*self->state) {
- case ACTIVATED:
- *self->counter = 0;
- break;
- case DEACTIVATED:
- case RESTART:
- tap_key(self->value1);
- *self->state = IDLE;
- break;
- case FINISHED_FROM_ACTIVE:
- if (*self->counter == (LONG_PRESS_MULTIPLIER - 2)) {
- key_in(KC_LSFT);
- tap_key(self->value1);
- key_out(KC_LSFT);
- *self->state = IDLE;
- // the skip to IDLE is usually just a lag optimization,
- // in this case it has a logic function, on a short
- // press (still longer than a tap) the key does not get shifted
- } else {
- *self->counter += 1;
- *self->state = PRESS_FROM_ACTIVE;
- dance_timer = timer_read();
- }
- break;
- default:
- break;
- }
-}
-
-void autoshift_dance(const struct Chord* self) {
- if (autoshift_mode) {
- autoshift_dance_impl(self);
- } else {
- single_dance(self);
- }
-}
-
-void autoshift_toggle(const struct Chord* self){
- if (*self->state == ACTIVATED) {
- autoshift_mode = !autoshift_mode;
- *self->state = IDLE;
- }
-}
-
-void temp_pseudolayer(const struct Chord* self) {
- switch (*self->state) {
- case ACTIVATED:
- current_pseudolayer = self->value1;
- break;
- case DEACTIVATED:
- current_pseudolayer = self->pseudolayer;
- *self->state = IDLE;
- break;
- case RESTART:
- current_pseudolayer = self->pseudolayer;
- break;
- default:
- break;
- }
-}
-
-void temp_pseudolayer_alt(const struct Chord* self) {
- switch (*self->state) {
- case ACTIVATED:
- current_pseudolayer = self->value1;
- break;
- case DEACTIVATED:
- current_pseudolayer = self->value2;
- *self->state = IDLE;
- break;
- case RESTART:
- current_pseudolayer = self->value2;
- break;
- default:
- break;
- }
-}
-
-void perm_pseudolayer(const struct Chord* self) {
- if (*self->state == ACTIVATED) {
- current_pseudolayer = self->value1;
- *self->state = IDLE;
- }
-}
-
-void switch_layer(const struct Chord* self) {
- if (*self->state == ACTIVATED) {
- layer_move(self->value1);
- *self->state = IDLE;
- }
-}
-
-void lock(const struct Chord* self) {
- if (*self->state == ACTIVATED) {
- lock_next = true;
- *self->state = IDLE;
- }
-}
-
-void one_shot_key(const struct Chord* self) {
- switch (*self->state) {
- case ACTIVATED:
- break;
- case DEACTIVATED:
- key_in(self->value1);
- *self->state = IN_ONE_SHOT;
- break;
- case FINISHED:
- case PRESS_FROM_ACTIVE:
- key_in(self->value1);
- a_key_went_through = false;
- break;
- case RESTART:
- if (a_key_went_through) {
- key_out(self->value1);
- } else {
- *self->state = IN_ONE_SHOT;
- }
- default:
- break;
- }
-}
-
-void one_shot_layer(const struct Chord* self) {
- switch (*self->state) {
- case ACTIVATED:
- break;
- case DEACTIVATED:
- current_pseudolayer = self->value1;
- *self->state = IN_ONE_SHOT;
- break;
- case FINISHED:
- case PRESS_FROM_ACTIVE:
- current_pseudolayer = self->value1;
- a_key_went_through = false;
- break;
- case RESTART:
- if (a_key_went_through) {
- current_pseudolayer = self->pseudolayer;
- } else {
- *self->state = IN_ONE_SHOT;
- }
- default:
- break;
- }
-}
-
-void command(const struct Chord* self) {
- if (*self->state == ACTIVATED) {
- command_mode++;
- *self->state = IDLE;
- }
-}
-
-bool identical(uint16_t* buffer1, uint16_t* buffer2) {
- bool same = true;
- for (int i = 0; i < LEADER_MAX_LENGTH; i++) {
- same = same && (buffer1[i] == buffer2[i]);
- }
- return same;
-}
-
-void leader(const struct Chord* self) {
- if (*self->state == ACTIVATED) {
- in_leader_mode = true;
- *self->state = IDLE;
- }
-}
-
-void dynamic_macro_record(const struct Chord* self) {
- if (*self->state == ACTIVATED) {
- for (int i = 0; i < DYNAMIC_MACRO_MAX_LENGTH; i++) {
- dynamic_macro_buffer[i] = 0;
- }
- dynamic_macro_mode = true;
- *self->state = IDLE;
- }
-}
-
-void dynamic_macro_next(const struct Chord* self) {
- if (*self->state == ACTIVATED) {
- if (dynamic_macro_mode && dynamic_macro_ind < DYNAMIC_MACRO_MAX_LENGTH) {
- dynamic_macro_buffer[dynamic_macro_ind] = 0;
- dynamic_macro_ind++;
- }
- *self->state = IDLE;
- }
-}
-
-void dynamic_macro_end(const struct Chord* self) {
- if (*self->state == ACTIVATED) {
- if (dynamic_macro_mode) {
- dynamic_macro_mode = false;
- }
- *self->state = IDLE;
- }
-}
-
-void dynamic_macro_play(const struct Chord* self) {
- if (*self->state == ACTIVATED) {
- int ind_start = 0;
- while (ind_start < DYNAMIC_MACRO_MAX_LENGTH) {
- for (int i = ind_start; i < DYNAMIC_MACRO_MAX_LENGTH; i++) {
- if (dynamic_macro_buffer[i] == 0) {
- break;
- }
- register_code(dynamic_macro_buffer[i]);
- }
- send_keyboard_report();
- wait_ms(TAP_TIMEOUT);
- for (int i = ind_start; i < DYNAMIC_MACRO_MAX_LENGTH; i++) {
- if (dynamic_macro_buffer[i] == 0) {
- ind_start = i + 1;
- break;
- }
- unregister_code(dynamic_macro_buffer[i]);
- }
- send_keyboard_report();
- }
- *self->state = IDLE;
- }
-}
-
-void string_in(const struct Chord* self) {
- if (*self->state == ACTIVATED) {
- char buffer[STRING_MAX_LENGTH];
- strcpy_P(buffer, (char*)pgm_read_word(&(strings[self->value1])));
- send_string(buffer);
- }
-}
-
-void clear(const struct Chord* self);
-
-void reset_keyboard_kb(void){
-#ifdef WATCHDOG_ENABLE
- MCUSR = 0;
- wdt_disable();
- wdt_reset();
-#endif
- reset_keyboard();
-}
-
-void reset(const struct Chord* self) {
- if (*self->state == ACTIVATED) {
- reset_keyboard_kb();
- }
-}
-
-uint8_t state_0 = IDLE;
-const struct Chord chord_0 PROGMEM = {H_TOP1 + H_TOP12 + H_BOT1 + H_BOT12, ALWAYS_ON, &state_0, NULL, 0, 0, clear};
-uint8_t state_1 = IDLE;
-const struct Chord chord_1 PROGMEM = {H_TOP6 + H_TOP7 + H_BOT6 + H_BOT7, ALWAYS_ON, &state_1, NULL, 0, 0, command};
-uint8_t state_2 = IDLE;
-const struct Chord chord_2 PROGMEM = {H_TOP1, QWERTY, &state_2, NULL, KC_ESC, 0, single_dance};
-uint8_t state_3 = IDLE;
-const struct Chord chord_3 PROGMEM = {H_TOP2, QWERTY, &state_3, NULL, KC_Q, 0, single_dance};
-uint8_t state_4 = IDLE;
-const struct Chord chord_4 PROGMEM = {H_TOP3, QWERTY, &state_4, NULL, KC_W, 0, single_dance};
-uint8_t state_5 = IDLE;
-const struct Chord chord_5 PROGMEM = {H_TOP4, QWERTY, &state_5, NULL, KC_E, 0, single_dance};
-uint8_t state_6 = IDLE;
-const struct Chord chord_6 PROGMEM = {H_TOP5, QWERTY, &state_6, NULL, KC_R, 0, single_dance};
-uint8_t state_7 = IDLE;
-const struct Chord chord_7 PROGMEM = {H_TOP6, QWERTY, &state_7, NULL, KC_T, 0, single_dance};
-uint8_t state_8 = IDLE;
-const struct Chord chord_8 PROGMEM = {H_TOP7, QWERTY, &state_8, NULL, KC_Y, 0, single_dance};
-uint8_t state_9 = IDLE;
-const struct Chord chord_9 PROGMEM = {H_TOP8, QWERTY, &state_9, NULL, KC_U, 0, single_dance};
-uint8_t state_10 = IDLE;
-const struct Chord chord_10 PROGMEM = {H_TOP9, QWERTY, &state_10, NULL, KC_I, 0, single_dance};
-uint8_t state_11 = IDLE;
-const struct Chord chord_11 PROGMEM = {H_TOP10, QWERTY, &state_11, NULL, KC_O, 0, single_dance};
-uint8_t state_12 = IDLE;
-const struct Chord chord_12 PROGMEM = {H_TOP11, QWERTY, &state_12, NULL, KC_P, 0, single_dance};
-uint8_t state_13 = IDLE;
-const struct Chord chord_13 PROGMEM = {H_TOP12, QWERTY, &state_13, NULL, KC_BACKSLASH, 0, single_dance};
-uint8_t state_14 = IDLE;
-const struct Chord chord_14 PROGMEM = {H_TOP1 + H_BOT1, QWERTY, &state_14, NULL, KC_INS, 0, single_dance};
-uint8_t state_15 = IDLE;
-const struct Chord chord_15 PROGMEM = {H_TOP2 + H_BOT2, QWERTY, &state_15, NULL, KC_A, 0, single_dance};
-uint8_t state_16 = IDLE;
-uint8_t counter_16 = 0;
-const struct Chord chord_16 PROGMEM = {H_TOP3 + H_BOT3, QWERTY, &state_16, &counter_16, KC_S, KC_LALT, key_key_dance};
-uint8_t state_17 = IDLE;
-const struct Chord chord_17 PROGMEM = {H_TOP4 + H_BOT4, QWERTY, &state_17, NULL, KC_D, KC_LCTL, key_mod_dance};
-uint8_t state_18 = IDLE;
-const struct Chord chord_18 PROGMEM = {H_TOP5 + H_BOT5, QWERTY, &state_18, NULL, KC_F, KC_LSFT, key_mod_dance};
-uint8_t state_19 = IDLE;
-uint8_t counter_19 = 0;
-const struct Chord chord_19 PROGMEM = {H_TOP6 + H_BOT6, QWERTY, &state_19, &counter_19, KC_G, KC_LGUI, key_key_dance};
-uint8_t state_20 = IDLE;
-uint8_t counter_20 = 0;
-const struct Chord chord_20 PROGMEM = {H_TOP7 + H_BOT7, QWERTY, &state_20, &counter_20, KC_H, KC_RGUI, key_key_dance};
-uint8_t state_21 = IDLE;
-const struct Chord chord_21 PROGMEM = {H_TOP8 + H_BOT8, QWERTY, &state_21, NULL, KC_J, KC_RSFT, key_mod_dance};
-uint8_t state_22 = IDLE;
-const struct Chord chord_22 PROGMEM = {H_TOP9 + H_BOT9, QWERTY, &state_22, NULL, KC_K, KC_RCTL, key_mod_dance};
-uint8_t state_23 = IDLE;
-uint8_t counter_23 = 0;
-const struct Chord chord_23 PROGMEM = {H_TOP10 + H_BOT10, QWERTY, &state_23, &counter_23, KC_L, KC_RALT, key_key_dance};
-uint8_t state_24 = IDLE;
-const struct Chord chord_24 PROGMEM = {H_TOP11 + H_BOT11, QWERTY, &state_24, NULL, KC_SEMICOLON, 0, single_dance};
-uint8_t state_25 = IDLE;
-const struct Chord chord_25 PROGMEM = {H_BOT1, QWERTY, &state_25, NULL, KC_TAB, 0, single_dance};
-uint8_t state_26 = IDLE;
-const struct Chord chord_26 PROGMEM = {H_BOT2, QWERTY, &state_26, NULL, KC_Z, 0, single_dance};
-uint8_t state_27 = IDLE;
-const struct Chord chord_27 PROGMEM = {H_BOT3, QWERTY, &state_27, NULL, KC_X, 0, single_dance};
-uint8_t state_28 = IDLE;
-const struct Chord chord_28 PROGMEM = {H_BOT4, QWERTY, &state_28, NULL, KC_C, 0, single_dance};
-uint8_t state_29 = IDLE;
-const struct Chord chord_29 PROGMEM = {H_BOT5, QWERTY, &state_29, NULL, KC_V, 0, single_dance};
-uint8_t state_30 = IDLE;
-const struct Chord chord_30 PROGMEM = {H_BOT6, QWERTY, &state_30, NULL, KC_B, 0, single_dance};
-uint8_t state_31 = IDLE;
-const struct Chord chord_31 PROGMEM = {H_BOT7, QWERTY, &state_31, NULL, KC_N, 0, single_dance};
-uint8_t state_32 = IDLE;
-const struct Chord chord_32 PROGMEM = {H_BOT8, QWERTY, &state_32, NULL, KC_M, 0, single_dance};
-uint8_t state_33 = IDLE;
-const struct Chord chord_33 PROGMEM = {H_BOT9, QWERTY, &state_33, NULL, KC_COMMA, 0, single_dance};
-uint8_t state_34 = IDLE;
-const struct Chord chord_34 PROGMEM = {H_BOT10, QWERTY, &state_34, NULL, KC_DOT, 0, single_dance};
-uint8_t state_35 = IDLE;
-const struct Chord chord_35 PROGMEM = {H_BOT11, QWERTY, &state_35, NULL, KC_SLASH, 0, single_dance};
-uint8_t state_36 = IDLE;
-const struct Chord chord_36 PROGMEM = {H_BOT12, QWERTY, &state_36, NULL, KC_QUOTE, 0, single_dance};
-uint8_t state_37 = IDLE;
-const struct Chord chord_37 PROGMEM = {H_THU1, QWERTY, &state_37, NULL, KC_ENTER, 0, single_dance};
-uint8_t state_38 = IDLE;
-uint8_t counter_38 = 0;
-const struct Chord chord_38 PROGMEM = {H_THU2, QWERTY, &state_38, &counter_38, KC_SPC, NUM, key_layer_dance};
-uint8_t state_39 = IDLE;
-uint8_t counter_39 = 0;
-const struct Chord chord_39 PROGMEM = {H_THU3, QWERTY, &state_39, &counter_39, KC_BSPC, NAV, key_layer_dance};
-uint8_t state_40 = IDLE;
-const struct Chord chord_40 PROGMEM = {H_THU4, QWERTY, &state_40, NULL, KC_DEL, 0, single_dance};
-uint8_t state_41 = IDLE;
-uint8_t counter_41 = 0;
-const struct Chord chord_41 PROGMEM = {H_THU5, QWERTY, &state_41, &counter_41, KC_SPC, FNC, key_layer_dance};
-uint8_t state_42 = IDLE;
-const struct Chord chord_42 PROGMEM = {H_THU6, QWERTY, &state_42, NULL, KC_ENTER, 0, single_dance};
-uint8_t state_43 = IDLE;
-const struct Chord chord_43 PROGMEM = {H_THU2 + H_THU3, QWERTY, &state_43, NULL, MOUSE, 0, temp_pseudolayer};
-uint8_t state_44 = IDLE;
-const struct Chord chord_44 PROGMEM = {H_TOP1, NUM, &state_44, NULL, KC_GRAVE, 0, single_dance};
-uint8_t state_45 = IDLE;
-const struct Chord chord_45 PROGMEM = {H_TOP2, NUM, &state_45, NULL, KC_1, 0, single_dance};
-uint8_t state_46 = IDLE;
-const struct Chord chord_46 PROGMEM = {H_TOP3, NUM, &state_46, NULL, KC_2, 0, single_dance};
-uint8_t state_47 = IDLE;
-const struct Chord chord_47 PROGMEM = {H_TOP4, NUM, &state_47, NULL, KC_3, 0, single_dance};
-uint8_t state_48 = IDLE;
-const struct Chord chord_48 PROGMEM = {H_TOP5, NUM, &state_48, NULL, KC_4, 0, single_dance};
-uint8_t state_49 = IDLE;
-const struct Chord chord_49 PROGMEM = {H_TOP6, NUM, &state_49, NULL, KC_5, 0, single_dance};
-uint8_t state_50 = IDLE;
-const struct Chord chord_50 PROGMEM = {H_TOP7, NUM, &state_50, NULL, KC_6, 0, single_dance};
-uint8_t state_51 = IDLE;
-const struct Chord chord_51 PROGMEM = {H_TOP8, NUM, &state_51, NULL, KC_7, 0, single_dance};
-uint8_t state_52 = IDLE;
-const struct Chord chord_52 PROGMEM = {H_TOP9, NUM, &state_52, NULL, KC_8, 0, single_dance};
-uint8_t state_53 = IDLE;
-const struct Chord chord_53 PROGMEM = {H_TOP10, NUM, &state_53, NULL, KC_9, 0, single_dance};
-uint8_t state_54 = IDLE;
-const struct Chord chord_54 PROGMEM = {H_TOP11, NUM, &state_54, NULL, KC_0, 0, single_dance};
-uint8_t state_55 = IDLE;
-const struct Chord chord_55 PROGMEM = {H_TOP12, NUM, &state_55, NULL, KC_MINUS, 0, single_dance};
-uint8_t state_56 = IDLE;
-const struct Chord chord_56 PROGMEM = {H_TOP3 + H_BOT3, NUM, &state_56, NULL, KC_LALT, 0, single_dance};
-uint8_t state_57 = IDLE;
-const struct Chord chord_57 PROGMEM = {H_TOP4 + H_BOT4, NUM, &state_57, NULL, KC_LCTL, 0, single_dance};
-uint8_t state_58 = IDLE;
-const struct Chord chord_58 PROGMEM = {H_TOP5 + H_BOT5, NUM, &state_58, NULL, KC_LSFT, 0, single_dance};
-uint8_t state_59 = IDLE;
-const struct Chord chord_59 PROGMEM = {H_TOP6 + H_BOT6, NUM, &state_59, NULL, KC_LGUI, 0, single_dance};
-uint8_t state_60 = IDLE;
-const struct Chord chord_60 PROGMEM = {H_TOP7 + H_BOT7, NUM, &state_60, NULL, KC_RGUI, 0, single_dance};
-uint8_t state_61 = IDLE;
-const struct Chord chord_61 PROGMEM = {H_TOP8 + H_BOT8, NUM, &state_61, NULL, KC_RSFT, 0, single_dance};
-uint8_t state_62 = IDLE;
-const struct Chord chord_62 PROGMEM = {H_TOP9 + H_BOT9, NUM, &state_62, NULL, KC_RCTL, 0, single_dance};
-uint8_t state_63 = IDLE;
-const struct Chord chord_63 PROGMEM = {H_TOP10 + H_BOT10, NUM, &state_63, NULL, KC_RALT, 0, single_dance};
-uint8_t state_64 = IDLE;
-const struct Chord chord_64 PROGMEM = {H_BOT12, NUM, &state_64, NULL, KC_EQUAL, 0, single_dance};
-uint8_t state_65 = IDLE;
-const struct Chord chord_65 PROGMEM = {H_TOP2, FNC, &state_65, NULL, KC_F1, 0, single_dance};
-uint8_t state_66 = IDLE;
-const struct Chord chord_66 PROGMEM = {H_TOP3, FNC, &state_66, NULL, KC_F2, 0, single_dance};
-uint8_t state_67 = IDLE;
-const struct Chord chord_67 PROGMEM = {H_TOP4, FNC, &state_67, NULL, KC_F3, 0, single_dance};
-uint8_t state_68 = IDLE;
-const struct Chord chord_68 PROGMEM = {H_TOP5, FNC, &state_68, NULL, KC_F4, 0, single_dance};
-uint8_t state_69 = IDLE;
-const struct Chord chord_69 PROGMEM = {H_TOP6, FNC, &state_69, NULL, KC_F5, 0, single_dance};
-uint8_t state_70 = IDLE;
-const struct Chord chord_70 PROGMEM = {H_TOP7, FNC, &state_70, NULL, KC_F6, 0, single_dance};
-uint8_t state_71 = IDLE;
-const struct Chord chord_71 PROGMEM = {H_TOP8, FNC, &state_71, NULL, KC_F7, 0, single_dance};
-uint8_t state_72 = IDLE;
-const struct Chord chord_72 PROGMEM = {H_TOP9, FNC, &state_72, NULL, KC_F8, 0, single_dance};
-uint8_t state_73 = IDLE;
-const struct Chord chord_73 PROGMEM = {H_TOP10, FNC, &state_73, NULL, KC_F9, 0, single_dance};
-uint8_t state_74 = IDLE;
-const struct Chord chord_74 PROGMEM = {H_TOP11, FNC, &state_74, NULL, KC_F10, 0, single_dance};
-uint8_t state_75 = IDLE;
-const struct Chord chord_75 PROGMEM = {H_TOP12, FNC, &state_75, NULL, KC_F11, 0, single_dance};
-uint8_t state_76 = IDLE;
-const struct Chord chord_76 PROGMEM = {H_TOP3 + H_BOT3, FNC, &state_76, NULL, KC_LALT, 0, single_dance};
-uint8_t state_77 = IDLE;
-const struct Chord chord_77 PROGMEM = {H_TOP4 + H_BOT4, FNC, &state_77, NULL, KC_LCTL, 0, single_dance};
-uint8_t state_78 = IDLE;
-const struct Chord chord_78 PROGMEM = {H_TOP5 + H_BOT5, FNC, &state_78, NULL, KC_LSFT, 0, single_dance};
-uint8_t state_79 = IDLE;
-const struct Chord chord_79 PROGMEM = {H_TOP6 + H_BOT6, FNC, &state_79, NULL, KC_LGUI, 0, single_dance};
-uint8_t state_80 = IDLE;
-const struct Chord chord_80 PROGMEM = {H_TOP7 + H_BOT7, FNC, &state_80, NULL, KC_RGUI, 0, single_dance};
-uint8_t state_81 = IDLE;
-const struct Chord chord_81 PROGMEM = {H_TOP8 + H_BOT8, FNC, &state_81, NULL, KC_RSFT, 0, single_dance};
-uint8_t state_82 = IDLE;
-const struct Chord chord_82 PROGMEM = {H_TOP9 + H_BOT9, FNC, &state_82, NULL, KC_RCTL, 0, single_dance};
-uint8_t state_83 = IDLE;
-const struct Chord chord_83 PROGMEM = {H_TOP10 + H_BOT10, FNC, &state_83, NULL, KC_RALT, 0, single_dance};
-uint8_t state_84 = IDLE;
-const struct Chord chord_84 PROGMEM = {H_BOT12, FNC, &state_84, NULL, KC_F12, 0, single_dance};
-uint8_t state_85 = IDLE;
-const struct Chord chord_85 PROGMEM = {H_TOP8, NAV, &state_85, NULL, KC_HOME, 0, single_dance};
-uint8_t state_86 = IDLE;
-const struct Chord chord_86 PROGMEM = {H_TOP9, NAV, &state_86, NULL, KC_UP, 0, single_dance};
-uint8_t state_87 = IDLE;
-const struct Chord chord_87 PROGMEM = {H_TOP10, NAV, &state_87, NULL, KC_END, 0, single_dance};
-uint8_t state_88 = IDLE;
-const struct Chord chord_88 PROGMEM = {H_TOP11, NAV, &state_88, NULL, KC_PGUP, 0, single_dance};
-uint8_t state_89 = IDLE;
-const struct Chord chord_89 PROGMEM = {H_TOP3 + H_BOT3, NAV, &state_89, NULL, KC_LALT, 0, single_dance};
-uint8_t state_90 = IDLE;
-const struct Chord chord_90 PROGMEM = {H_TOP4 + H_BOT4, NAV, &state_90, NULL, KC_LCTL, 0, single_dance};
-uint8_t state_91 = IDLE;
-const struct Chord chord_91 PROGMEM = {H_TOP5 + H_BOT5, NAV, &state_91, NULL, KC_LSFT, 0, single_dance};
-uint8_t state_92 = IDLE;
-const struct Chord chord_92 PROGMEM = {H_TOP6 + H_BOT6, NAV, &state_92, NULL, KC_LGUI, 0, single_dance};
-uint8_t state_93 = IDLE;
-const struct Chord chord_93 PROGMEM = {H_BOT8, NAV, &state_93, NULL, KC_LEFT, 0, single_dance};
-uint8_t state_94 = IDLE;
-const struct Chord chord_94 PROGMEM = {H_BOT9, NAV, &state_94, NULL, KC_DOWN, 0, single_dance};
-uint8_t state_95 = IDLE;
-const struct Chord chord_95 PROGMEM = {H_BOT10, NAV, &state_95, NULL, KC_RIGHT, 0, single_dance};
-uint8_t state_96 = IDLE;
-const struct Chord chord_96 PROGMEM = {H_BOT11, NAV, &state_96, NULL, KC_PGDN, 0, single_dance};
-uint8_t state_97 = IDLE;
-const struct Chord chord_97 PROGMEM = {H_TOP8, MOUSE, &state_97, NULL, KC_BTN1, 0, single_dance};
-uint8_t state_98 = IDLE;
-const struct Chord chord_98 PROGMEM = {H_TOP9, MOUSE, &state_98, NULL, KC_MS_U, 0, single_dance};
-uint8_t state_99 = IDLE;
-const struct Chord chord_99 PROGMEM = {H_TOP10, MOUSE, &state_99, NULL, KC_BTN2, 0, single_dance};
-uint8_t state_100 = IDLE;
-const struct Chord chord_100 PROGMEM = {H_TOP11, MOUSE, &state_100, NULL, KC_WH_U, 0, single_dance};
-uint8_t state_101 = IDLE;
-const struct Chord chord_101 PROGMEM = {H_TOP3 + H_BOT3, MOUSE, &state_101, NULL, KC_LALT, 0, single_dance};
-uint8_t state_102 = IDLE;
-const struct Chord chord_102 PROGMEM = {H_TOP4 + H_BOT4, MOUSE, &state_102, NULL, KC_LCTL, 0, single_dance};
-uint8_t state_103 = IDLE;
-const struct Chord chord_103 PROGMEM = {H_TOP5 + H_BOT5, MOUSE, &state_103, NULL, KC_LSFT, 0, single_dance};
-uint8_t state_104 = IDLE;
-const struct Chord chord_104 PROGMEM = {H_TOP6 + H_BOT6, MOUSE, &state_104, NULL, KC_LGUI, 0, single_dance};
-uint8_t state_105 = IDLE;
-const struct Chord chord_105 PROGMEM = {H_BOT8, MOUSE, &state_105, NULL, KC_MS_L, 0, single_dance};
-uint8_t state_106 = IDLE;
-const struct Chord chord_106 PROGMEM = {H_BOT9, MOUSE, &state_106, NULL, KC_MS_D, 0, single_dance};
-uint8_t state_107 = IDLE;
-const struct Chord chord_107 PROGMEM = {H_BOT10, MOUSE, &state_107, NULL, KC_MS_R, 0, single_dance};
-uint8_t state_108 = IDLE;
-const struct Chord chord_108 PROGMEM = {H_BOT11, MOUSE, &state_108, NULL, KC_WH_D, 0, single_dance};
-
-const struct Chord* const list_of_chords[] PROGMEM = {
- &chord_0, &chord_1, &chord_2, &chord_3, &chord_4, &chord_5, &chord_6, &chord_7, &chord_8, &chord_9, &chord_10, &chord_11, &chord_12, &chord_13, &chord_14, &chord_15, &chord_16, &chord_17, &chord_18, &chord_19, &chord_20, &chord_21, &chord_22, &chord_23, &chord_24, &chord_25, &chord_26, &chord_27, &chord_28, &chord_29, &chord_30, &chord_31, &chord_32, &chord_33, &chord_34, &chord_35, &chord_36, &chord_37, &chord_38, &chord_39, &chord_40, &chord_41, &chord_42, &chord_43, &chord_44, &chord_45, &chord_46, &chord_47, &chord_48, &chord_49, &chord_50, &chord_51, &chord_52, &chord_53, &chord_54, &chord_55, &chord_56, &chord_57, &chord_58, &chord_59, &chord_60, &chord_61, &chord_62, &chord_63, &chord_64, &chord_65, &chord_66, &chord_67, &chord_68, &chord_69, &chord_70, &chord_71, &chord_72, &chord_73, &chord_74, &chord_75, &chord_76, &chord_77, &chord_78, &chord_79, &chord_80, &chord_81, &chord_82, &chord_83, &chord_84, &chord_85, &chord_86, &chord_87, &chord_88, &chord_89, &chord_90, &chord_91, &chord_92, &chord_93, &chord_94, &chord_95, &chord_96, &chord_97, &chord_98, &chord_99, &chord_100, &chord_101, &chord_102, &chord_103, &chord_104, &chord_105, &chord_106, &chord_107, &chord_108
-};
-
-const uint16_t** const leader_triggers PROGMEM = NULL;
-void (*leader_functions[]) (void) = {};
-
-#define NUMBER_OF_CHORDS 109
-#define NUMBER_OF_LEADER_COMBOS 0
-
-bool are_hashed_keycodes_in_sound(HASH_TYPE keycodes_hash, HASH_TYPE sound) {
- return (keycodes_hash & sound) == keycodes_hash;
-}
-
-uint8_t keycode_to_index(uint16_t keycode) {
- return keycode - FIRST_INTERNAL_KEYCODE;
-}
-
-void sound_keycode_array(uint16_t keycode) {
- uint8_t index = keycode_to_index(keycode);
- keycode_index++;
- keycodes_buffer_array[index] = keycode_index;
-}
-
-void silence_keycode_hash_array(HASH_TYPE keycode_hash) {
- for (int i = 0; i < NUMBER_OF_KEYS; i++) {
- bool index_in_hash = ((HASH_TYPE) 1 << i) & keycode_hash;
- if (index_in_hash) {
- uint8_t current_val = keycodes_buffer_array[i];
- keycodes_buffer_array[i] = 0;
- for (int j = 0; j < NUMBER_OF_KEYS; j++) {
- if (keycodes_buffer_array[j] > current_val) {
- keycodes_buffer_array[j]--;
- }
- }
- keycode_index--;
- }
- }
-}
-
-bool are_hashed_keycodes_in_array(HASH_TYPE keycode_hash) {
- for (int i = 0; i < NUMBER_OF_KEYS; i++) {
- bool index_in_hash = ((HASH_TYPE) 1 << i) & keycode_hash;
- bool index_in_array = (bool) keycodes_buffer_array[i];
- if (index_in_hash && !index_in_array) {
- return false;
- }
- }
- return true;
-}
-
-void kill_one_shots(void) {
- struct Chord chord_storage;
- struct Chord* chord_ptr;
- struct Chord* chord;
-
- for (int i = 0; i < NUMBER_OF_CHORDS; i++) {
- chord_ptr = (struct Chord*) pgm_read_word (&list_of_chords[i]);
- memcpy_P(&chord_storage, chord_ptr, sizeof(struct Chord));
- chord = &chord_storage;
-
- if (*chord->state == IN_ONE_SHOT) {
- *chord->state = RESTART;
- chord->function(chord);
- if (*chord->state == RESTART) {
- *chord->state = IDLE;
- }
- }
- }
-}
-
-void process_finished_dances(void) {
- struct Chord chord_storage;
- struct Chord* chord_ptr;
- struct Chord* chord;
-
- for (int i = 0; i < NUMBER_OF_CHORDS; i++) {
- chord_ptr = (struct Chord*) pgm_read_word (&list_of_chords[i]);
- memcpy_P(&chord_storage, chord_ptr, sizeof(struct Chord));
- chord = &chord_storage;
-
- if (*chord->state == ACTIVATED) {
- *chord->state = PRESS_FROM_ACTIVE;
- chord->function(chord);
- if (a_key_went_through) {
- kill_one_shots();
- }
- dance_timer = timer_read();
- } else if (*chord->state == IDLE_IN_DANCE) {
- *chord->state = FINISHED;
- chord->function(chord);
- if (*chord->state == FINISHED) {
- *chord->state = RESTART;
- if (*chord->state == RESTART) {
- *chord->state = IDLE;
- }
- }
- } else if (*chord->state == PRESS_FROM_ACTIVE) {
- *chord->state = FINISHED_FROM_ACTIVE;
- chord->function(chord);
- if (a_key_went_through) {
- kill_one_shots();
- }
- dance_timer = timer_read();
- }
- }
-}
-
-uint8_t keycodes_buffer_array_min(uint8_t* first_keycode_index) {
- for (int i = 0; i < NUMBER_OF_KEYS; i++) {
- if (keycodes_buffer_array[i] == 1) {
- if (first_keycode_index != NULL) {
- *first_keycode_index = (uint8_t) i;
- }
- return 1;
- }
- }
- return 0;
-}
-
-void remove_subchords(void) {
- struct Chord chord_storage;
- struct Chord* chord_ptr;
- struct Chord* chord;
-
- for (int i = 0; i < NUMBER_OF_CHORDS; i++) {
- chord_ptr = (struct Chord*) pgm_read_word (&list_of_chords[i]);
- memcpy_P(&chord_storage, chord_ptr, sizeof(struct Chord));
- chord = &chord_storage;
-
- if (!(*chord->state == READY || *chord->state == READY_IN_DANCE || *chord->state == READY_LOCKED)) {
- continue;
- }
-
- struct Chord chord_storage_2;
- struct Chord* chord_ptr_2;
- struct Chord* chord_2;
- for (int j = 0; j < NUMBER_OF_CHORDS; j++) {
- if (i == j) {continue;}
-
- chord_ptr_2 = (struct Chord*) pgm_read_word (&list_of_chords[j]);
- memcpy_P(&chord_storage_2, chord_ptr_2, sizeof(struct Chord));
- chord_2 = &chord_storage_2;
-
- if (are_hashed_keycodes_in_sound(chord_2->keycodes_hash, chord->keycodes_hash)) {
- if (*chord_2->state == READY) {
- *chord_2->state = IDLE;
- }
- if (*chord_2->state == READY_IN_DANCE) {
- *chord_2->state = IDLE_IN_DANCE;
- }
- if (*chord_2->state == READY_LOCKED) {
- *chord_2->state = LOCKED;
- }
- }
- }
- }
-}
-
-void process_ready_chords(void) {
- uint8_t first_keycode_index = 0;
- while (keycodes_buffer_array_min(&first_keycode_index)) {
- // find ready chords
- struct Chord chord_storage;
- struct Chord* chord_ptr;
- struct Chord* chord;
-
- for (int i = 0; i < NUMBER_OF_CHORDS; i++) {
- chord_ptr = (struct Chord*) pgm_read_word (&list_of_chords[i]);
- memcpy_P(&chord_storage, chord_ptr, sizeof(struct Chord));
- chord = &chord_storage;
-
- // if the chord does not contain the first keycode
- bool contains_first_keycode = ((uint32_t) 1 << first_keycode_index) & chord->keycodes_hash;
- if (!contains_first_keycode) {
- continue;
- }
-
- if (!are_hashed_keycodes_in_array(chord->keycodes_hash)){
- continue;
- }
-
- if (*chord->state == LOCKED) {
- *chord->state = READY_LOCKED;
- continue;
- }
-
- if (!(chord->pseudolayer == current_pseudolayer || chord->pseudolayer == ALWAYS_ON)) {
- continue;
- }
-
- if (*chord->state == IDLE) {
- *chord->state = READY;
- continue;
- }
-
- if (*chord->state == IDLE_IN_DANCE) {
- *chord->state = READY_IN_DANCE;
- }
- }
-
- // remove subchords
- remove_subchords();
-
- // execute logic
- // this should be only one chord
- for (int i = 0; i < NUMBER_OF_CHORDS; i++) {
- chord_ptr = (struct Chord*) pgm_read_word (&list_of_chords[i]);
- memcpy_P(&chord_storage, chord_ptr, sizeof(struct Chord));
- chord = &chord_storage;
-
- if (*chord->state == READY_LOCKED) {
- *chord->state = RESTART;
- chord->function(chord);
- if (*chord->state == RESTART) {
- *chord->state = IDLE;
- }
- break;
- }
-
- if (*chord->state == READY || *chord->state == READY_IN_DANCE) {
- if (last_chord && last_chord != chord) {
- process_finished_dances();
- }
-
- bool lock_next_prev_state = lock_next;
-
- *chord->state = ACTIVATED;
- chord->function(chord);
- dance_timer = timer_read();
-
- if (lock_next && lock_next == lock_next_prev_state) {
- lock_next = false;
- *chord->state = PRESS_FROM_ACTIVE;
- chord->function(chord);
- if (*chord->state == PRESS_FROM_ACTIVE) {
- *chord->state = LOCKED;
- }
- if (a_key_went_through) {
- kill_one_shots();
- }
- }
- break;
- }
- }
-
- // silence notes
- silence_keycode_hash_array(chord->keycodes_hash);
- }
-}
-
-void deactivate_active_chords(uint16_t keycode) {
- HASH_TYPE hash = (HASH_TYPE)1 << (keycode - SAFE_RANGE);
- bool broken;
- struct Chord chord_storage;
- struct Chord* chord_ptr;
- struct Chord* chord;
-
- for (int i = 0; i < NUMBER_OF_CHORDS; i++) {
- chord_ptr = (struct Chord*) pgm_read_word (&list_of_chords[i]);
- memcpy_P(&chord_storage, chord_ptr, sizeof(struct Chord));
- chord = &chord_storage;
-
- broken = are_hashed_keycodes_in_sound(hash, chord->keycodes_hash);
- if (!broken) {
- continue;
- }
-
- switch (*chord->state) {
- case ACTIVATED:
- *chord->state = DEACTIVATED;
- chord->function(chord);
-
- if (*chord->state == DEACTIVATED) {
- dance_timer = timer_read();
- *chord->state = IDLE_IN_DANCE;
- }
- if (*chord->state != IN_ONE_SHOT) {
- kill_one_shots();
- }
- break;
- case PRESS_FROM_ACTIVE:
- case FINISHED_FROM_ACTIVE:
- *chord->state = RESTART;
- chord->function(chord);
- if (*chord->state == RESTART) {
- *chord->state = IDLE;
- }
- kill_one_shots();
- break;
- default:
- break;
- }
- }
-
-}
-
-void process_command(void) {
- command_mode = 0;
- for (int i = 0; i < COMMAND_MAX_LENGTH; i++) {
- if (command_buffer[i]) {
- register_code(command_buffer[i]);
- }
- send_keyboard_report();
- }
- wait_ms(TAP_TIMEOUT);
- for (int i = 0; i < COMMAND_MAX_LENGTH; i++) {
- if (command_buffer[i]) {
- unregister_code(command_buffer[i]);
- }
- send_keyboard_report();
- }
- for (int i = 0; i < COMMAND_MAX_LENGTH; i++) {
- command_buffer[i] = 0;
- }
- command_ind = 0;
-}
-
-void process_leader(void) {
- in_leader_mode = false;
- for (int i = 0; i < NUMBER_OF_LEADER_COMBOS; i++) {
- uint16_t trigger[LEADER_MAX_LENGTH];
- memcpy_P(trigger, leader_triggers[i], LEADER_MAX_LENGTH * sizeof(uint16_t));
-
- if (identical(leader_buffer, trigger)) {
- (*leader_functions[i])();
- break;
- }
- }
- for (int i = 0; i < LEADER_MAX_LENGTH; i++) {
- leader_buffer[i] = 0;
- }
-}
-
-bool process_record_user(uint16_t keycode, keyrecord_t *record) {
- if (keycode < FIRST_INTERNAL_KEYCODE || keycode > LAST_INTERNAL_KEYCODE) {
- return true;
- }
-
- if (record->event.pressed) {
- sound_keycode_array(keycode);
- } else {
- process_ready_chords();
- deactivate_active_chords(keycode);
- }
- chord_timer = timer_read();
- leader_timer = timer_read();
-
- return false;
-}
-
-void matrix_scan_user(void) {
- bool chord_timer_expired = timer_elapsed(chord_timer) > CHORD_TIMEOUT;
- if (chord_timer_expired && keycodes_buffer_array_min(NULL)) {
- process_ready_chords();
- }
-
- bool dance_timer_expired = timer_elapsed(dance_timer) > DANCE_TIMEOUT;
- if (dance_timer_expired) { // would love to have && in_dance but not sure how
- process_finished_dances();
- }
-
- bool in_command_mode = command_mode == 2;
- if (in_command_mode) {
- process_command();
- }
-
- bool leader_timer_expired = timer_elapsed(leader_timer) > LEADER_TIMEOUT;
- if (leader_timer_expired && in_leader_mode) {
- process_leader();
- }
-
-}
-
-void clear(const struct Chord* self) {
- if (*self->state == ACTIVATED) {
- // kill all chords
- struct Chord chord_storage;
- struct Chord* chord_ptr;
- struct Chord* chord;
-
- for (int i = 0; i < NUMBER_OF_CHORDS; i++) {
- chord_ptr = (struct Chord*) pgm_read_word (&list_of_chords[i]);
- memcpy_P(&chord_storage, chord_ptr, sizeof(struct Chord));
- chord = &chord_storage;
-
- *chord->state = IDLE;
-
- if (chord->counter) {
- *chord->counter = 0;
- }
- }
-
- // clear keyboard
- clear_keyboard();
- send_keyboard_report();
-
- // switch to default pseudolayer
- current_pseudolayer = DEFAULT_PSEUDOLAYER;
-
- // clear all keyboard states
- lock_next = false;
- autoshift_mode = true;
- command_mode = 0;
- in_leader_mode = false;
- leader_ind = 0;
- dynamic_macro_mode = false;
- a_key_went_through = false;
-
- for (int i = 0; i < DYNAMIC_MACRO_MAX_LENGTH; i++) {
- dynamic_macro_buffer[i] = 0;
- }
- }
-} \ No newline at end of file
diff --git a/keyboards/gboards/georgi/keymaps/dennytom/keymap_def.json b/keyboards/gboards/georgi/keymaps/dennytom/keymap_def.json
deleted file mode 100644
index 232ccafadf..0000000000
--- a/keyboards/gboards/georgi/keymaps/dennytom/keymap_def.json
+++ /dev/null
@@ -1,153 +0,0 @@
-{
- "keys": [
- "TOP1", "TOP2", "TOP3", "TOP4", "TOP5", "TOP6", "TOP7", "TOP8", "TOP9", "TOP10", "TOP11", "TOP12",
- "BOT1", "BOT2", "BOT3", "BOT4", "BOT5", "BOT6", "BOT7", "BOT8", "BOT9", "BOT10", "BOT11", "BOT12",
- "THU1", "THU2", "THU3", "THU4", "THU5", "THU6"
- ],
- "parameters": {
- "layout_function_name": "LAYOUT_georgi",
- "chord_timeout": 100,
- "dance_timeout": 200,
- "leader_timeout": 750,
- "tap_timeout": 50,
- "command_max_length": 5,
- "leader_max_length": 5,
- "dynamic_macro_max_length": 20,
- "string_max_length": 16,
- "long_press_multiplier": 3,
- "default_pseudolayer": "QWERTY"
- },
- "layers": [
- {
- "type": "auto"
- }
- ],
- "chord_sets": [
- {
- "name": "rows",
- "chords":
- [
- ["TOP1"], ["TOP2"], ["TOP3"], ["TOP4"], ["TOP5"], ["TOP6"], ["TOP7"], ["TOP8"], ["TOP9"], ["TOP10"], ["TOP11"], ["TOP12"],
- ["TOP1", "BOT1"], ["TOP2", "BOT2"], ["TOP3", "BOT3"], ["TOP4", "BOT4"], ["TOP5", "BOT5"], ["TOP6", "BOT6"], ["TOP7", "BOT7"], ["TOP8", "BOT8"], ["TOP9", "BOT9"], ["TOP10", "BOT10"], ["TOP11", "BOT11"], ["TOP12", "BOT12"],
- ["BOT1"], ["BOT2"], ["BOT3"], ["BOT4"], ["BOT5"], ["BOT6"], ["BOT7"], ["BOT8"], ["BOT9"], ["BOT10"], ["BOT11"], ["BOT12"],
- ["THU1"], ["THU2"], ["THU3"], ["THU4"], ["THU5"], ["THU6"]
- ]
- }
- ],
- "pseudolayers": [
- {
- "name": "ALWAYS_ON",
- "chords": [
- {
- "type": "visual",
- "chord": [
- "X", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", "X",
- "X", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", "X",
- " ", " ", " ", " ", " ", " "
- ],
- "keycode": "CLEAR_KB"
- },
- {
- "type": "visual",
- "chord": [
- " ", " ", " ", " ", " ", "X", "X", " ", " ", " ", " ", " ",
- " ", " ", " ", " ", " ", "X", "X", " ", " ", " ", " ", " ",
- " ", " ", " ", " ", " ", " "
- ],
- "keycode": "CMD"
- }
- ]
- },
- {
- "name": "QWERTY",
- "chords": [
- {
- "type": "chord_set",
- "set": "rows",
- "keycodes": [
- "ESC", "Q", "W", "E", "R", "T", "Y", "U", "I", "O", "P", "\\",
- "INS", "A", "KK(S, LALT)", "KM(D, LCTL)", "KM(F, LSFT)", "KK(G, LGUI)", "KK(H, RGUI)", "KM(J, RSFT)", "KM(K, RCTL)", "KK(L, RALT)", ";", " ",
- "TAB", "Z", "X", "C", "V", "B", "N", "M", ",", ".", "/", "'",
- "","","","","",""
- ]
- },
- {
- "type": "visual_array",
- "keys": ["THU1", "THU2", "THU3", "THU4", "THU5", "THU6"],
- "dictionary": [
- ["X", " ", " ", " ", " ", " ", "ENTER"],
- [" ", "X", " ", " ", " ", " ", "KL(SPC, NUM)"],
- [" ", " ", "X", " ", " ", " ", "KL(BSPC, NAV)"],
- [" ", " ", " ", "X", " ", " ", "DEL"],
- [" ", " ", " ", " ", "X", " ", "KL(SPC, FNC)"],
- [" ", " ", " ", " ", " ", "X", "ENTER"],
- [" ", "X", "X", " ", " ", " ", "MO(MOUSE)"]
- ]
- }
- ]
- },
- {
- "name": "NUM",
- "chords": [
- {
- "type": "chord_set",
- "set": "rows",
- "keycodes": [
- "`", "1", "2", "3", "4", "5", "6", "7", "8", "9", "0", "-",
- " ", " ", "LALT", "LCTL", "LSFT", "LGUI", "RGUI", "RSFT", "RCTL", "RALT", " ", " ",
- " ", " ", " ", " ", " ", " ", " ", " ", " ", "[", "]", "=",
- " ", " ", " ", " ", " ", " "
- ]
- }
- ]
- },
- {
- "name": "FNC",
- "chords": [
- {
- "type": "chord_set",
- "set": "rows",
- "keycodes": [
- " ", "F1", "F2", "F3", "F4", "F5", "F6", "F7", "F8", "F9", "F10", "F11",
- " ", " ", "LALT", "LCTL", "LSFT", "LGUI", "RGUI", "RSFT", "RCTL", "RALT", " ", " ",
- " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", "F12",
- " ", " ", " ", " ", " ", " "
- ]
- }
- ]
- },
- {
- "name": "NAV",
- "chords": [
- {
- "type": "chord_set",
- "set": "rows",
- "keycodes": [
- " ", " ", " ", " ", " ", " ", " ", "HOME", "UP", "END", "PGUP", " ",
- " ", " ", "LALT", "LCTL", "LSFT", "LGUI", " ", " ", " ", " ", " ", " ",
- " ", " ", " ", " ", " ", " ", " ", "LEFT", "DOWN", "RIGHT", "PGDN", " ",
- " ", " ", " ", " ", " ", " "
- ]
- }
- ]
- },
- {
- "name": "MOUSE",
- "chords": [
- {
- "type": "chord_set",
- "set": "rows",
- "keycodes": [
- " ", " ", " ", " ", " ", " ", " ", "BTN1", "MS_U", "BTN2", "WH_U", " ",
- " ", " ", "LALT", "LCTL", "LSFT", "LGUI", " ", " ", " ", " ", " ", " ",
- " ", " ", " ", " ", " ", " ", " ", "MS_L", "MS_D", "MS_R", "WH_D", " ",
- " ", " ", " ", " ", " ", " "
- ]
- }
- ]
- }
- ],
- "leader_sequences": [],
- "extra_code": "",
- "extra_dependencies": []
-} \ No newline at end of file
diff --git a/keyboards/gboards/georgi/keymaps/dennytom/rules.mk b/keyboards/gboards/georgi/keymaps/dennytom/rules.mk
deleted file mode 100644
index af3726f14a..0000000000
--- a/keyboards/gboards/georgi/keymaps/dennytom/rules.mk
+++ /dev/null
@@ -1,2 +0,0 @@
-MOUSEKEY_ENABLE = yes
-CONSOLE_ENABLE = no
diff --git a/keyboards/gboards/georgi/keymaps/minimal/keymap.c b/keyboards/gboards/georgi/keymaps/minimal/keymap.c
index c4e78033bd..2f089866b2 100644
--- a/keyboards/gboards/georgi/keymaps/minimal/keymap.c
+++ b/keyboards/gboards/georgi/keymaps/minimal/keymap.c
@@ -12,7 +12,6 @@
#include QMK_KEYBOARD_H
#include "sten.h"
-#include "keymap_steno.h"
// Proper Layers
#define FUNCT (LSD | LK | LP | LH)
diff --git a/keyboards/gboards/georgi/keymaps/norman/keymap.c b/keyboards/gboards/georgi/keymaps/norman/keymap.c
index 870e460e2c..1b53cddd8b 100644
--- a/keyboards/gboards/georgi/keymaps/norman/keymap.c
+++ b/keyboards/gboards/georgi/keymaps/norman/keymap.c
@@ -12,7 +12,6 @@
#include QMK_KEYBOARD_H
#include "sten.h"
-#include "keymap_steno.h"
// Proper Layers
#define FUNCT (LSD | LK | LP | LH)
diff --git a/keyboards/gboards/georgi/rules.mk b/keyboards/gboards/georgi/rules.mk
index 5980342669..5b63e269fa 100644
--- a/keyboards/gboards/georgi/rules.mk
+++ b/keyboards/gboards/georgi/rules.mk
@@ -14,4 +14,5 @@ CUSTOM_MATRIX = yes
STENO_ENABLE = yes
LTO_ENABLE = yes
-SRC += matrix.c i2c_master.c
+SRC += matrix.c
+I2C_DRIVER_REQUIRED = yes \ No newline at end of file
diff --git a/keyboards/gboards/georgi/sten.h b/keyboards/gboards/georgi/sten.h
index b5aa79893e..e4bc31ef7a 100644
--- a/keyboards/gboards/georgi/sten.h
+++ b/keyboards/gboards/georgi/sten.h
@@ -7,9 +7,6 @@
#pragma once
#include "georgi.h"
-#include "mousekey.h"
-#include "keymap_steno.h"
-#include "wait.h"
extern size_t keymapsCount; // Total keymaps
extern uint32_t cChord; // Current Chord
diff --git a/keyboards/gboards/gergo/keymaps/colemak/rules.mk b/keyboards/gboards/gergo/keymaps/colemak/rules.mk
index 3b81fdfa1b..db8d965292 100644
--- a/keyboards/gboards/gergo/keymaps/colemak/rules.mk
+++ b/keyboards/gboards/gergo/keymaps/colemak/rules.mk
@@ -18,7 +18,8 @@ DEBUG_MATRIX = no
# know what you're doing.
#
# No touchy, capiche?
-SRC += matrix.c i2c_master.c
+SRC += matrix.c
+I2C_DRIVER_REQUIRED = yes
ifneq ($(strip $(BALLSTEP)),)
OPT_DEFS += -DTRKSTEP=$(strip $(BALLSTEP))
endif
diff --git a/keyboards/gboards/gergo/keymaps/default/rules.mk b/keyboards/gboards/gergo/keymaps/default/rules.mk
index bc2b3cf43b..6f203da1bd 100644
--- a/keyboards/gboards/gergo/keymaps/default/rules.mk
+++ b/keyboards/gboards/gergo/keymaps/default/rules.mk
@@ -18,7 +18,8 @@ DEBUG_MATRIX = yes
# know what you're doing.
#
# No touchy, capiche?
-SRC += matrix.c i2c_master.c
+SRC += matrix.c
+I2C_DRIVER_REQUIRED = yes
ifneq ($(strip $(BALLSTEP)),)
OPT_DEFS += -DTRKSTEP=$(strip $(BALLSTEP))
endif
diff --git a/keyboards/gboards/gergo/keymaps/drashna/keymap.c b/keyboards/gboards/gergo/keymaps/drashna/keymap.c
deleted file mode 100644
index 4f7d6b5dfa..0000000000
--- a/keyboards/gboards/gergo/keymaps/drashna/keymap.c
+++ /dev/null
@@ -1,99 +0,0 @@
-/* Copyright 2020 Christopher Courtney, aka Drashna Jael're (@drashna) <drashna@live.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 "drashna.h"
-
-/*
- * The `LAYOUT_gergo_base` macro is a template to allow the use of identical
- * modifiers for the default layouts (eg QWERTY, Colemak, Dvorak, etc), so
- * that there is no need to set them up for each layout, and modify all of
- * them if I want to change them. This helps to keep consistency and ease
- * of use. K## is a placeholder to pass through the individual keycodes
- */
-// clang-format off
-#define LAYOUT_gergo_wrapper(...) LAYOUT_gergo(__VA_ARGS__)
-#define LAYOUT_gergo_base( \
- K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, \
- K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, \
- K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A \
- ) \
- LAYOUT_gergo_wrapper( \
- KC_ESC, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, KC_PIPE, \
- LALT_T(KC_TAB), K11, K12, K13, K14, K15, _______, _______, K16, K17, K18, K19, K1A, RALT_T(K1B), \
- OS_LSFT, CTL_T(K21), K22, K23, K24, K25, _______, _______, _______, _______, K26, K27, K28, K29, RCTL_T(K2A), OS_RSFT, \
- KC_GRV, KC_SPC, BK_LWER, OS_LALT, OS_RGUI, DL_RAIS, KC_ENT, _______ \
- )
-
-#define LAYOUT_base_wrapper(...) LAYOUT_gergo_base(__VA_ARGS__)
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [_DEFAULT_LAYER_1] = LAYOUT_base_wrapper(
- _________________QWERTY_L1_________________, _________________QWERTY_R1_________________,
- _________________QWERTY_L2_________________, _________________QWERTY_R2_________________,
- _________________QWERTY_L3_________________, _________________QWERTY_R3_________________
- ),
-
- [_DEFAULT_LAYER_2] = LAYOUT_base_wrapper(
- ______________COLEMAK_MOD_DH_L1____________, ______________COLEMAK_MOD_DH_R1____________,
- ______________COLEMAK_MOD_DH_L2____________, ______________COLEMAK_MOD_DH_R2____________,
- ______________COLEMAK_MOD_DH_L3____________, ______________COLEMAK_MOD_DH_R3____________
- ),
- [_DEFAULT_LAYER_3] = LAYOUT_base_wrapper(
- _________________COLEMAK_L1________________, _________________COLEMAK_R1________________,
- _________________COLEMAK_L2________________, _________________COLEMAK_R2________________,
- _________________COLEMAK_L3________________, _________________COLEMAK_R3________________
- ),
-
- [_DEFAULT_LAYER_4] = LAYOUT_base_wrapper(
- _________________DVORAK_L1_________________, _________________DVORAK_R1_________________,
- _________________DVORAK_L2_________________, _________________DVORAK_R2_________________,
- _________________DVORAK_L3_________________, _________________DVORAK_R3_________________
- ),
-
- [_LOWER] = LAYOUT_gergo_wrapper(
- KC_F12, _________________LOWER_L1__________________, _________________LOWER_R1__________________, KC_F11,
- _______, _________________LOWER_L2__________________, _______, _______, _________________LOWER_R2__________________, KC_PIPE,
- _______, _________________LOWER_L3__________________, _______, _______, _______, _______, _________________LOWER_R3__________________, _______,
- _______, _______, _______, _______, _______, _______, _______, _______
- ),
-
- [_RAISE] = LAYOUT_gergo_wrapper(
- _______, _________________RAISE_L1__________________, _________________RAISE_R1__________________, _______,
- _______, _________________RAISE_L2__________________, _______, _______, _________________RAISE_R2__________________, KC_BSLS,
- _______, _________________RAISE_L3__________________, _______, _______, _______, _______, _________________RAISE_R3__________________, _______,
- _______, _______, _______, _______, _______, _______, _______, _______
- ),
-
- [_ADJUST] = LAYOUT_gergo_wrapper(
- QK_MAKE, _________________ADJUST_L1_________________, _________________ADJUST_R1_________________, QK_BOOT,
- VRSN, _________________ADJUST_L2_________________, _______, KC_NUKE, _________________ADJUST_R2_________________, EE_CLR,
- _______, _________________ADJUST_L3_________________, _______, _______, _______, _______, _________________ADJUST_R3_________________, TG_MODS,
- _______, _______, _______, _______, _______, _______, _______, _______
- ),
-
-};
-
-/* Keymap template
-
- [SYMB] = LAYOUT_gergo_wrapper(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______
- ),
-
- */
-// clang-format on
diff --git a/keyboards/gboards/gergo/keymaps/drashna/rules.mk b/keyboards/gboards/gergo/keymaps/drashna/rules.mk
deleted file mode 100644
index ec81d11e9c..0000000000
--- a/keyboards/gboards/gergo/keymaps/drashna/rules.mk
+++ /dev/null
@@ -1,2 +0,0 @@
-CONSOLE_ENABLE = no
-COMMAND_ENABLE = no
diff --git a/keyboards/gboards/gergo/keymaps/germ/rules.mk b/keyboards/gboards/gergo/keymaps/germ/rules.mk
index 0fd941bb53..c100f8ab64 100644
--- a/keyboards/gboards/gergo/keymaps/germ/rules.mk
+++ b/keyboards/gboards/gergo/keymaps/germ/rules.mk
@@ -18,7 +18,8 @@ DEBUG_MATRIX = no
# know what you're doing.
#
# No touchy, capiche?
-SRC += matrix.c i2c_master.c
+SRC += matrix.c
+I2C_DRIVER_REQUIRED = yes
ifneq ($(strip $(BALLSTEP)),)
OPT_DEFS += -DTRKSTEP=$(strip $(BALLSTEP))
endif
diff --git a/keyboards/gboards/gergo/keymaps/gotham/rules.mk b/keyboards/gboards/gergo/keymaps/gotham/rules.mk
index bc2b3cf43b..6f203da1bd 100644
--- a/keyboards/gboards/gergo/keymaps/gotham/rules.mk
+++ b/keyboards/gboards/gergo/keymaps/gotham/rules.mk
@@ -18,7 +18,8 @@ DEBUG_MATRIX = yes
# know what you're doing.
#
# No touchy, capiche?
-SRC += matrix.c i2c_master.c
+SRC += matrix.c
+I2C_DRIVER_REQUIRED = yes
ifneq ($(strip $(BALLSTEP)),)
OPT_DEFS += -DTRKSTEP=$(strip $(BALLSTEP))
endif
diff --git a/keyboards/gboards/gergo/keymaps/manna-harbour_miryoku/config.h b/keyboards/gboards/gergo/keymaps/manna-harbour_miryoku/config.h
deleted file mode 100644
index e86d030fd7..0000000000
--- a/keyboards/gboards/gergo/keymaps/manna-harbour_miryoku/config.h
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright 2019 Manna Harbour
-// https://github.com/manna-harbour/miryoku
-
-// 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 XXX KC_NO
-
-#define LAYOUT_miryoku(\
- 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,\
- N30, N31, K32, K33, K34, K35, K36, K37, N38, N39\
-)\
-LAYOUT_gergo(\
-XXX, K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, XXX,\
-XXX, K10, K11, K12, K13, K14, XXX, XXX, K15, K16, K17, K18, K19, XXX,\
-XXX, K20, K21, K22, K23, K24, XXX, XXX, XXX, XXX, K25, K26, K27, K28, K29, XXX,\
- K32, K33, K34, XXX, XXX, K35, K36, K37\
-)
diff --git a/keyboards/gboards/gergo/keymaps/manna-harbour_miryoku/keymap.c b/keyboards/gboards/gergo/keymaps/manna-harbour_miryoku/keymap.c
deleted file mode 100644
index dbab7f9820..0000000000
--- a/keyboards/gboards/gergo/keymaps/manna-harbour_miryoku/keymap.c
+++ /dev/null
@@ -1,4 +0,0 @@
-// Copyright 2019 Manna Harbour
-// https://github.com/manna-harbour/miryoku
-
-// 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/>.
diff --git a/keyboards/gboards/gergo/rules.mk b/keyboards/gboards/gergo/rules.mk
index 195915e431..d789b349da 100644
--- a/keyboards/gboards/gergo/rules.mk
+++ b/keyboards/gboards/gergo/rules.mk
@@ -8,4 +8,4 @@ COMMAND_ENABLE = yes
BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite
SRC += matrix.c
-QUANTUM_LIB_SRC += i2c_master.c
+I2C_DRIVER_REQUIRED = yes
diff --git a/keyboards/gboards/gergoplex/rules.mk b/keyboards/gboards/gergoplex/rules.mk
index adf5cfd2e7..9846c64771 100644
--- a/keyboards/gboards/gergoplex/rules.mk
+++ b/keyboards/gboards/gergoplex/rules.mk
@@ -13,4 +13,4 @@ AUDIO_ENABLE = no # Audio output
CUSTOM_MATRIX = yes
SRC += matrix.c
-QUANTUM_LIB_SRC += i2c_master.c
+I2C_DRIVER_REQUIRED = yes
diff --git a/keyboards/geekboards/tester/config.h b/keyboards/geekboards/tester/config.h
index 0fea806b6f..c71ee9f351 100644
--- a/keyboards/geekboards/tester/config.h
+++ b/keyboards/geekboards/tester/config.h
@@ -55,9 +55,8 @@
// # define ENABLE_RGB_MATRIX_SOLID_SPLASH
// # define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH
-# define DRIVER_ADDR_1 0b1110100
-# define DRIVER_ADDR_2 0b1110101
-# define DRIVER_COUNT 2
+# define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND
+# define IS31FL3731_I2C_ADDRESS_2 IS31FL3731_I2C_ADDRESS_SCL
# define DRIVER_1_LED_TOTAL 8
# define DRIVER_2_LED_TOTAL 0
# define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL)
diff --git a/keyboards/geekboards/tester/tester.c b/keyboards/geekboards/tester/tester.c
index 05b220250f..187d887d58 100644
--- a/keyboards/geekboards/tester/tester.c
+++ b/keyboards/geekboards/tester/tester.c
@@ -1,6 +1,6 @@
#include "quantum.h"
-const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = {
+const is31fl3731_led_t PROGMEM g_is31fl3731_leds[RGB_MATRIX_LED_COUNT] = {
/* Refer to IS31 manual for these locations
* driver
* | R location
diff --git a/keyboards/geistmaschine/macropod/rules.mk b/keyboards/geistmaschine/macropod/rules.mk
index cf2b38601e..53d35b5bc6 100644
--- a/keyboards/geistmaschine/macropod/rules.mk
+++ b/keyboards/geistmaschine/macropod/rules.mk
@@ -2,4 +2,4 @@ CUSTOM_MATRIX = lite
VPATH += drivers/gpio
SRC += pca9555.c matrix.c
-QUANTUM_LIB_SRC += i2c_master.c \ No newline at end of file
+I2C_DRIVER_REQUIRED = yes \ No newline at end of file
diff --git a/keyboards/geonworks/frogmini/fmh/info.json b/keyboards/geonworks/frogmini/fmh/info.json
index a8c0645a70..7b381bc587 100644
--- a/keyboards/geonworks/frogmini/fmh/info.json
+++ b/keyboards/geonworks/frogmini/fmh/info.json
@@ -13,6 +13,9 @@
"rows": ["A3", "A2", "A1", "B8", "A7", "C0"]
},
"diode_direction": "COL2ROW",
+ "eeprom": {
+ "driver": "i2c"
+ },
"processor": "STM32F401",
"bootloader": "stm32-dfu",
"layout_aliases": {
diff --git a/keyboards/geonworks/frogmini/fmh/rules.mk b/keyboards/geonworks/frogmini/fmh/rules.mk
index 1f63f8feef..1775ec5c41 100644
--- a/keyboards/geonworks/frogmini/fmh/rules.mk
+++ b/keyboards/geonworks/frogmini/fmh/rules.mk
@@ -13,6 +13,3 @@ LTO_ENABLE = no
ENCODER_ENABLE = no
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
-
-EEPROM_DRIVER = i2c
-
diff --git a/keyboards/geonworks/frogmini/fms/info.json b/keyboards/geonworks/frogmini/fms/info.json
index b64392cc23..ada9188e37 100644
--- a/keyboards/geonworks/frogmini/fms/info.json
+++ b/keyboards/geonworks/frogmini/fms/info.json
@@ -13,6 +13,9 @@
"rows": ["A3", "A2", "A1", "B8", "A7", "C0"]
},
"diode_direction": "COL2ROW",
+ "eeprom": {
+ "driver": "i2c"
+ },
"backlight": {
"pin": "A10",
"levels": 20
diff --git a/keyboards/geonworks/frogmini/fms/rules.mk b/keyboards/geonworks/frogmini/fms/rules.mk
index dfd36d0f82..19b8048589 100644
--- a/keyboards/geonworks/frogmini/fms/rules.mk
+++ b/keyboards/geonworks/frogmini/fms/rules.mk
@@ -13,6 +13,3 @@ LTO_ENABLE = no
ENCODER_ENABLE = no
BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
-
-EEPROM_DRIVER = i2c
-
diff --git a/keyboards/gh60/satan/keymaps/jarred/keymap.c b/keyboards/gh60/satan/keymaps/jarred/keymap.c
deleted file mode 100644
index 7f7436bea7..0000000000
--- a/keyboards/gh60/satan/keymaps/jarred/keymap.c
+++ /dev/null
@@ -1,22 +0,0 @@
-#include QMK_KEYBOARD_H
-
-#define _QW 0
-#define _NV 1
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
-[_QW] = LAYOUT_60_ansi(
- KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC,
- KC_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,
- MO(_NV), 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_LCTL, KC_LGUI,KC_LALT, KC_SPC, KC_RALT,KC_RGUI, KC_APP, KC_RCTL),
-
-[_NV] = LAYOUT_60_ansi(
- KC_GRV ,KC_F1 ,KC_F2 ,KC_F3 ,KC_F4 ,KC_F5 ,KC_F6 ,KC_F7 ,KC_F8 ,KC_F9 ,KC_F10 ,KC_F11 ,KC_F12 ,_______,
- _______,_______,_______,_______,KC_DEL ,KC_BSPC,_______,KC_HOME,KC_UP ,KC_END ,KC_INS ,_______,_______,_______,
- _______,_______,_______,KC_LSFT,KC_LCTL,KC_ENT ,_______,KC_LEFT,KC_DOWN,KC_RGHT,KC_DEL ,KC_DEL , _______,
- _______,_______,_______,_______,_______,_______,_______,KC_PGUP,KC_PGDN,_______,_______,_______,
- _______,_______,_______, _______, _______,_______, QK_BOOT, _______),
-
-};
diff --git a/keyboards/gh60/satan/keymaps/jarred/readme.md b/keyboards/gh60/satan/keymaps/jarred/readme.md
deleted file mode 100644
index 522cb19b65..0000000000
--- a/keyboards/gh60/satan/keymaps/jarred/readme.md
+++ /dev/null
@@ -1 +0,0 @@
-# Jarred's Satan GH60 layout
diff --git a/keyboards/gizmo_engineering/gk6/config.h b/keyboards/gizmo_engineering/gk6/config.h
index ba683e4fed..c405eeaf0a 100755
--- a/keyboards/gizmo_engineering/gk6/config.h
+++ b/keyboards/gizmo_engineering/gk6/config.h
@@ -18,10 +18,9 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#pragma once
// RGB Matrix
-#define DRIVER_ADDR_1 0b1110100
-#define DRIVER_ADDR_2 0b1110111
+#define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND
+#define IS31FL3731_I2C_ADDRESS_2 IS31FL3731_I2C_ADDRESS_VCC
-#define DRIVER_COUNT 2
#define DRIVER_1_LED_TOTAL 32
#define DRIVER_2_LED_TOTAL 32
#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL)
diff --git a/keyboards/gizmo_engineering/gk6/gk6.c b/keyboards/gizmo_engineering/gk6/gk6.c
index e28f5d43c7..18883727b8 100755
--- a/keyboards/gizmo_engineering/gk6/gk6.c
+++ b/keyboards/gizmo_engineering/gk6/gk6.c
@@ -17,7 +17,7 @@
#include "quantum.h"
#ifdef RGB_MATRIX_ENABLE
-const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = {
+const is31fl3731_led_t PROGMEM g_is31fl3731_leds[RGB_MATRIX_LED_COUNT] = {
{0, C1_8, C2_8, C3_8}, //0 led1
{0, C1_7, C2_7, C3_7}, //1 led2
{0, C1_6, C2_6, C3_6}, //2 led3
diff --git a/keyboards/gkeyboard/gpad8_2r/config.h b/keyboards/gkeyboard/gpad8_2r/config.h
index 0691d106b7..88debbe193 100644
--- a/keyboards/gkeyboard/gpad8_2r/config.h
+++ b/keyboards/gkeyboard/gpad8_2r/config.h
@@ -3,8 +3,6 @@
#pragma once
-#define DYNAMIC_KEYMAP_LAYER_COUNT 8
-
#define RGB_MATRIX_LED_COUNT 16
#define RGB_MATRIX_FRAMEBUFFER_EFFECTS
#define RGB_MATRIX_KEYPRESSES
diff --git a/keyboards/gkeyboard/gpad8_2r/info.json b/keyboards/gkeyboard/gpad8_2r/info.json
index 2111d58cc4..9aa63091c9 100644
--- a/keyboards/gkeyboard/gpad8_2r/info.json
+++ b/keyboards/gkeyboard/gpad8_2r/info.json
@@ -25,6 +25,9 @@
"rows": ["GP4", "GP5", "GP6"]
},
"diode_direction": "COL2ROW",
+ "dynamic_keymap": {
+ "layer_count": 8
+ },
"encoder": {
"enabled": true,
"rotary": [
diff --git a/keyboards/glenpickle/chimera_ergo/rules.mk b/keyboards/glenpickle/chimera_ergo/rules.mk
index 32eca4db31..f543b5fd9a 100644
--- a/keyboards/glenpickle/chimera_ergo/rules.mk
+++ b/keyboards/glenpickle/chimera_ergo/rules.mk
@@ -14,4 +14,4 @@ CUSTOM_MATRIX = lite
# project specific files
SRC += matrix.c
-QUANTUM_LIB_SRC += uart.c
+UART_DRIVER_REQUIRED = yes
diff --git a/keyboards/glenpickle/chimera_ls/rules.mk b/keyboards/glenpickle/chimera_ls/rules.mk
index 1ee3fc58f9..706d610653 100644
--- a/keyboards/glenpickle/chimera_ls/rules.mk
+++ b/keyboards/glenpickle/chimera_ls/rules.mk
@@ -14,7 +14,7 @@ CUSTOM_MATRIX = lite
# project specific files
SRC += matrix.c
-QUANTUM_LIB_SRC += uart.c
+UART_DRIVER_REQUIRED = yes
# Disable unsupported hardware
RGBLIGHT_SUPPORTED = no
diff --git a/keyboards/glenpickle/chimera_ortho/rules.mk b/keyboards/glenpickle/chimera_ortho/rules.mk
index 32eca4db31..f543b5fd9a 100644
--- a/keyboards/glenpickle/chimera_ortho/rules.mk
+++ b/keyboards/glenpickle/chimera_ortho/rules.mk
@@ -14,4 +14,4 @@ CUSTOM_MATRIX = lite
# project specific files
SRC += matrix.c
-QUANTUM_LIB_SRC += uart.c
+UART_DRIVER_REQUIRED = yes
diff --git a/keyboards/glenpickle/chimera_ortho_plus/rules.mk b/keyboards/glenpickle/chimera_ortho_plus/rules.mk
index 6b1876f87c..539a2d1004 100644
--- a/keyboards/glenpickle/chimera_ortho_plus/rules.mk
+++ b/keyboards/glenpickle/chimera_ortho_plus/rules.mk
@@ -15,4 +15,4 @@ CUSTOM_MATRIX = lite
# project specific files
SRC += matrix.c
-QUANTUM_LIB_SRC += uart.c
+UART_DRIVER_REQUIRED = yes
diff --git a/keyboards/gmmk/gmmk2/p65/ansi/ansi.c b/keyboards/gmmk/gmmk2/p65/ansi/ansi.c
index 2ed8874491..774006d529 100644
--- a/keyboards/gmmk/gmmk2/p65/ansi/ansi.c
+++ b/keyboards/gmmk/gmmk2/p65/ansi/ansi.c
@@ -18,8 +18,8 @@
#ifdef RGB_MATRIX_ENABLE
-const aw_led g_aw_leds[RGB_MATRIX_LED_COUNT] = {
-/* Refer to IS31 manual for these locations
+const aw20216s_led_t g_aw20216s_leds[RGB_MATRIX_LED_COUNT] = {
+/* Refer to AW20216S manual for these locations
* driver
* | R location
* | | G location
diff --git a/keyboards/gmmk/gmmk2/p65/ansi/info.json b/keyboards/gmmk/gmmk2/p65/ansi/info.json
index 902d1b6b5d..cd9296b81a 100644
--- a/keyboards/gmmk/gmmk2/p65/ansi/info.json
+++ b/keyboards/gmmk/gmmk2/p65/ansi/info.json
@@ -12,7 +12,7 @@
"tap_keycode_delay": 10
},
"rgb_matrix": {
- "driver": "aw20216"
+ "driver": "aw20216s"
},
"matrix_pins": {
"cols": ["A0", "A1", "A2", "A3", "A4", "A8", "A9", "A10"],
diff --git a/keyboards/gmmk/gmmk2/p65/ansi/keymaps/vnmm/keymap.c b/keyboards/gmmk/gmmk2/p65/ansi/keymaps/vnmm/keymap.c
deleted file mode 100644
index 6d88e11674..0000000000
--- a/keyboards/gmmk/gmmk2/p65/ansi/keymaps/vnmm/keymap.c
+++ /dev/null
@@ -1,57 +0,0 @@
-/* Copyright 2022 Eugenio Pastoral
- *
- * 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 "vnmm.h"
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- /* Keymap WIN_BASE: Base Layer (Default Layer)
- */
-[WIN_BASE] = LAYOUT(
- QK_GESC, 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_DEL,
- KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGUP,
- KC_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, WIN_F, KC_LEFT, KC_DOWN, KC_RGHT),
-
- /* Keymap MAC_BASE: Alternate base layer available if I end up on macbook.
- */
-[MAC_BASE] = LAYOUT(
- QK_GESC, 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_DEL,
- KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGUP,
- KC_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_LALT, KC_LGUI, KC_SPC, KC_RALT, MAC_F, KC_LEFT, KC_DOWN, KC_RGHT),
-
-
- /* Keymap WIN_FN: Function Layer WIN_BASE
- */
-[WIN_FN] = LAYOUT(
- KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______,
- RGB_TOG, RGB_MOD, RGB_VAI, RGB_SPI, RGB_HUI, RGB_SAI, _______, _______, _______, _______, KC_PSCR, KC_SCRL, KC_PAUS, _______, _______,
- _______, RGB_RMOD, RGB_VAD, RGB_SPD, RGB_HUD, RGB_SAD, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, KC_MUTE, _______, _______, _______, _______, KC_VOLU, KC_MPLY,
- EE_CLR, _______, _______, QK_BOOT, _______, _______, KC_MPRV, KC_VOLD, KC_MNXT),
-
- /* Keymap MAC_FN: Function Layer for MAC_BASE
- */
-[MAC_FN] = LAYOUT(
- KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______,
- RGB_TOG, RGB_MOD, RGB_VAI, RGB_SPI, RGB_HUI, RGB_SAI, _______, _______, _______, _______, KC_PSCR, KC_SCRL, KC_PAUS, _______, _______,
- _______, RGB_RMOD, RGB_VAD, RGB_SPD, RGB_HUD, RGB_SAD, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, KC_MUTE, _______, _______, _______, _______, KC_VOLU, KC_MPLY,
- EE_CLR, _______, _______, QK_BOOT, _______, _______, KC_MPRV, KC_VOLD, KC_MNXT),
-};
diff --git a/keyboards/gmmk/gmmk2/p65/ansi/keymaps/vnmm/readme.md b/keyboards/gmmk/gmmk2/p65/ansi/keymaps/vnmm/readme.md
deleted file mode 100644
index d39bdb6e8d..0000000000
--- a/keyboards/gmmk/gmmk2/p65/ansi/keymaps/vnmm/readme.md
+++ /dev/null
@@ -1,10 +0,0 @@
-# Vnmm's ANSI GMMKV2 65% Layout
-
-This keymap builds on archrovisual's but with some changes and uses the default key placements
-
-## Features
-
-- Alphabet keys light up red when caps lock is on
-- Pressing FN shows keys that have a definition
-- Via enabled
-- Quick reset with fn+space
diff --git a/keyboards/gmmk/gmmk2/p65/ansi/keymaps/vnmm/rules.mk b/keyboards/gmmk/gmmk2/p65/ansi/keymaps/vnmm/rules.mk
deleted file mode 100644
index 96d2d189b2..0000000000
--- a/keyboards/gmmk/gmmk2/p65/ansi/keymaps/vnmm/rules.mk
+++ /dev/null
@@ -1,2 +0,0 @@
-VIA_ENABLE = yes
-MOUSEKEY_ENABLE = no
diff --git a/keyboards/gmmk/gmmk2/p65/ansi/rules.mk b/keyboards/gmmk/gmmk2/p65/ansi/rules.mk
index 1b4692a621..2d2e9895fd 100644
--- a/keyboards/gmmk/gmmk2/p65/ansi/rules.mk
+++ b/keyboards/gmmk/gmmk2/p65/ansi/rules.mk
@@ -11,5 +11,3 @@ BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality.
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow.
AUDIO_ENABLE = no # Audio output.
RGB_MATRIX_ENABLE = yes # Enable RGB matrix effects.
-EEPROM_DRIVER = wear_leveling
-WEAR_LEVELING_DRIVER = embedded_flash
diff --git a/keyboards/gmmk/gmmk2/p65/config.h b/keyboards/gmmk/gmmk2/p65/config.h
index 3c6a2fd906..ce9ff69433 100644
--- a/keyboards/gmmk/gmmk2/p65/config.h
+++ b/keyboards/gmmk/gmmk2/p65/config.h
@@ -29,12 +29,11 @@
#define SPI_MOSI_PIN B15
#define SPI_MISO_PIN B14
-#define DRIVER_1_CS A15
-#define DRIVER_2_CS B9
-#define DRIVER_1_EN C13
-#define DRIVER_2_EN C13
+#define AW20216S_CS_PIN_1 A15
+#define AW20216S_CS_PIN_2 B9
+#define AW20216S_EN_PIN_1 C13
+#define AW20216S_EN_PIN_2 C13
-#define DRIVER_COUNT 2
#define DRIVER_1_LED_TOTAL 54
#define DRIVER_2_LED_TOTAL 34
#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL)
diff --git a/keyboards/gmmk/gmmk2/p65/iso/info.json b/keyboards/gmmk/gmmk2/p65/iso/info.json
index 90609dc911..c286cb7ba0 100644
--- a/keyboards/gmmk/gmmk2/p65/iso/info.json
+++ b/keyboards/gmmk/gmmk2/p65/iso/info.json
@@ -12,7 +12,7 @@
"tap_keycode_delay": 10
},
"rgb_matrix": {
- "driver": "aw20216"
+ "driver": "aw20216s"
},
"matrix_pins": {
"cols": ["A0", "A1", "A2", "A3", "A4", "A8", "A9", "A10"],
@@ -24,8 +24,9 @@
},
"processor": "WB32F3G71",
"bootloader": "wb32-dfu",
+ "community_layouts": ["65_iso_blocker"],
"layouts": {
- "LAYOUT": {
+ "LAYOUT_65_iso_blocker": {
"layout": [
{"matrix": [1, 3], "x": 0, "y": 0},
{"matrix": [1, 7], "x": 1, "y": 0},
@@ -56,7 +57,6 @@
{"matrix": [8, 0], "x": 10.5, "y": 1},
{"matrix": [8, 1], "x": 11.5, "y": 1},
{"matrix": [6, 1], "x": 12.5, "y": 1},
- {"matrix": [8, 4], "x": 13.75, "y": 1, "w": 1.25, "h": 2},
{"matrix": [2, 6], "x": 15, "y": 1},
{"matrix": [2, 1], "x": 0, "y": 2, "w": 1.75},
@@ -72,6 +72,7 @@
{"matrix": [8, 2], "x": 10.75, "y": 2},
{"matrix": [8, 3], "x": 11.75, "y": 2},
{"matrix": [7, 5], "x": 12.75, "y": 2},
+ {"matrix": [8, 4], "x": 13.75, "y": 1, "w": 1.25, "h": 2},
{"matrix": [6, 5], "x": 15, "y": 2},
{"matrix": [0, 0], "x": 0, "y": 3, "w": 1.25},
diff --git a/keyboards/gmmk/gmmk2/p65/iso/iso.c b/keyboards/gmmk/gmmk2/p65/iso/iso.c
index a296844f44..80c0dc2e0d 100644
--- a/keyboards/gmmk/gmmk2/p65/iso/iso.c
+++ b/keyboards/gmmk/gmmk2/p65/iso/iso.c
@@ -18,8 +18,8 @@
#ifdef RGB_MATRIX_ENABLE
-const aw_led g_aw_leds[RGB_MATRIX_LED_COUNT] = {
-/* Refer to IS31 manual for these locations
+const aw20216s_led_t g_aw20216s_leds[RGB_MATRIX_LED_COUNT] = {
+/* Refer to AW20216S manual for these locations
* driver
* | R location
* | | G location
diff --git a/keyboards/gmmk/gmmk2/p65/iso/keymaps/default/keymap.c b/keyboards/gmmk/gmmk2/p65/iso/keymaps/default/keymap.c
index 1ab85d7f0a..6a3da299a2 100644
--- a/keyboards/gmmk/gmmk2/p65/iso/keymaps/default/keymap.c
+++ b/keyboards/gmmk/gmmk2/p65/iso/keymaps/default/keymap.c
@@ -26,19 +26,19 @@ enum custom_layers {
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* Keymap _BL: Base Layer (Default Layer)
*/
-[_BL] = LAYOUT(
+[_BL] = LAYOUT_65_iso_blocker(
QK_GESC, 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_DEL,
- 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_ENT, KC_PGUP,
- KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_PGDN,
+ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_PGUP,
+ KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, KC_PGDN,
KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END,
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT),
/* Keymap _FL: Function Layer
*/
-[_FL] = LAYOUT(
+[_FL] = LAYOUT_65_iso_blocker(
_______, 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_INS,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PSCR, KC_SCRL, KC_PAUS, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PSCR, KC_SCRL, KC_PAUS, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, RGB_HUI, RGB_HUD, RGB_SPD, RGB_SPI, KC_MUTE, KC_VOLU, KC_VOLD, KC_MPRV, KC_MPLY, KC_MNXT, _______, RGB_VAI, KC_HOME,
_______, _______, _______, QK_BOOT, _______, _______, RGB_RMOD, RGB_VAD, RGB_MOD)
};
diff --git a/keyboards/gmmk/gmmk2/p65/iso/keymaps/via/keymap.c b/keyboards/gmmk/gmmk2/p65/iso/keymaps/via/keymap.c
index 6146e7817f..f0fe740042 100644
--- a/keyboards/gmmk/gmmk2/p65/iso/keymaps/via/keymap.c
+++ b/keyboards/gmmk/gmmk2/p65/iso/keymaps/via/keymap.c
@@ -19,32 +19,32 @@
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* Keymap _BL: Base Layer (Default Layer)
*/
-[0] = LAYOUT(
+[0] = LAYOUT_65_iso_blocker(
QK_GESC, 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_DEL,
- 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_ENT, KC_PGUP,
- KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_PGDN,
+ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_PGUP,
+ KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, KC_PGDN,
KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END,
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT),
/* Keymap _FL: Function Layer
*/
-[1] = LAYOUT(
- _______, 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_INS,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PSCR, KC_SCRL, KC_PAUS, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+[1] = LAYOUT_65_iso_blocker(
+ _______, 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_INS,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PSCR, KC_SCRL, KC_PAUS, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, RGB_HUI, RGB_HUD, RGB_SPD, RGB_SPI, KC_MUTE, KC_VOLU, KC_VOLD, KC_MPRV, KC_MPLY, KC_MNXT, _______, RGB_VAI, KC_HOME,
_______, _______, _______, QK_BOOT, _______, _______, RGB_RMOD, RGB_VAD, RGB_MOD),
-[2] = LAYOUT(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+[2] = LAYOUT_65_iso_blocker(
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______),
-[3] = LAYOUT(
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______),
+[3] = LAYOUT_65_iso_blocker(
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______)
};
diff --git a/keyboards/gmmk/gmmk2/p65/iso/rules.mk b/keyboards/gmmk/gmmk2/p65/iso/rules.mk
index 1b4692a621..2d2e9895fd 100644
--- a/keyboards/gmmk/gmmk2/p65/iso/rules.mk
+++ b/keyboards/gmmk/gmmk2/p65/iso/rules.mk
@@ -11,5 +11,3 @@ BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality.
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow.
AUDIO_ENABLE = no # Audio output.
RGB_MATRIX_ENABLE = yes # Enable RGB matrix effects.
-EEPROM_DRIVER = wear_leveling
-WEAR_LEVELING_DRIVER = embedded_flash
diff --git a/keyboards/gmmk/gmmk2/p96/ansi/ansi.c b/keyboards/gmmk/gmmk2/p96/ansi/ansi.c
index 467765e435..bc05ab6301 100644
--- a/keyboards/gmmk/gmmk2/p96/ansi/ansi.c
+++ b/keyboards/gmmk/gmmk2/p96/ansi/ansi.c
@@ -18,8 +18,8 @@
#ifdef RGB_MATRIX_ENABLE
-const aw_led g_aw_leds[RGB_MATRIX_LED_COUNT] = {
-/* Refer to IS31 manual for these locations
+const aw20216s_led_t g_aw20216s_leds[RGB_MATRIX_LED_COUNT] = {
+/* Refer to AW20216S manual for these locations
* driver
* | R location
* | | G location
diff --git a/keyboards/gmmk/gmmk2/p96/ansi/info.json b/keyboards/gmmk/gmmk2/p96/ansi/info.json
index cb0ecf9445..e4eaddbfe8 100644
--- a/keyboards/gmmk/gmmk2/p96/ansi/info.json
+++ b/keyboards/gmmk/gmmk2/p96/ansi/info.json
@@ -12,13 +12,20 @@
"tap_keycode_delay": 10
},
"rgb_matrix": {
- "driver": "aw20216"
+ "driver": "aw20216s"
},
"matrix_pins": {
"cols": ["A0", "A1", "A2", "A3", "A4", "A8", "A9", "A10"],
"rows": ["B0", "B1", "B2", "B3", "B4", "B5", "B6", "B7", "B8", "B9", "B10", "B11", "B12", "B13"]
},
"diode_direction": "COL2ROW",
+ "eeprom": {
+ "driver": "wear_leveling",
+ "wear_leveling": {
+ "driver": "spi_flash",
+ "backing_size": 2048
+ }
+ },
"processor": "WB32F3G71",
"bootloader": "wb32-dfu",
"layouts": {
diff --git a/keyboards/gmmk/gmmk2/p96/ansi/rules.mk b/keyboards/gmmk/gmmk2/p96/ansi/rules.mk
index a076e01916..2d2e9895fd 100644
--- a/keyboards/gmmk/gmmk2/p96/ansi/rules.mk
+++ b/keyboards/gmmk/gmmk2/p96/ansi/rules.mk
@@ -11,5 +11,3 @@ BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality.
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow.
AUDIO_ENABLE = no # Audio output.
RGB_MATRIX_ENABLE = yes # Enable RGB matrix effects.
-EEPROM_DRIVER = wear_leveling
-WEAR_LEVELING_DRIVER = spi_flash
diff --git a/keyboards/gmmk/gmmk2/p96/config.h b/keyboards/gmmk/gmmk2/p96/config.h
index e3b5cdcfa1..fb21c571f5 100644
--- a/keyboards/gmmk/gmmk2/p96/config.h
+++ b/keyboards/gmmk/gmmk2/p96/config.h
@@ -25,7 +25,6 @@
/* External spi flash */
#define EXTERNAL_FLASH_SPI_SLAVE_SELECT_PIN B14
-#define WEAR_LEVELING_BACKING_SIZE 2048
/* SPI Config for LED Driver */
#define SPI_DRIVER SPIDQ
@@ -33,12 +32,11 @@
#define SPI_MOSI_PIN A7
#define SPI_MISO_PIN A6
-#define DRIVER_1_CS A15
-#define DRIVER_2_CS B15
-#define DRIVER_1_EN C13
-#define DRIVER_2_EN C13
+#define AW20216S_CS_PIN_1 A15
+#define AW20216S_CS_PIN_2 B15
+#define AW20216S_EN_PIN_1 C13
+#define AW20216S_EN_PIN_2 C13
-#define DRIVER_COUNT 2
#define DRIVER_1_LED_TOTAL 66
#define DRIVER_2_LED_TOTAL 54
#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL)
diff --git a/keyboards/gmmk/gmmk2/p96/iso/info.json b/keyboards/gmmk/gmmk2/p96/iso/info.json
index 788aa7393b..d9f53b76f1 100644
--- a/keyboards/gmmk/gmmk2/p96/iso/info.json
+++ b/keyboards/gmmk/gmmk2/p96/iso/info.json
@@ -12,13 +12,20 @@
"tap_keycode_delay": 10
},
"rgb_matrix": {
- "driver": "aw20216"
+ "driver": "aw20216s"
},
"matrix_pins": {
"cols": ["A0", "A1", "A2", "A3", "A4", "A8", "A9", "A10"],
"rows": ["B0", "B1", "B2", "B3", "B4", "B5", "B6", "B7", "B8", "B9", "B10", "B11", "B12", "B13"]
},
"diode_direction": "COL2ROW",
+ "eeprom": {
+ "driver": "wear_leveling",
+ "wear_leveling": {
+ "driver": "spi_flash",
+ "backing_size": 2048
+ }
+ },
"processor": "WB32F3G71",
"bootloader": "wb32-dfu",
"layouts": {
diff --git a/keyboards/gmmk/gmmk2/p96/iso/iso.c b/keyboards/gmmk/gmmk2/p96/iso/iso.c
index 40d28818b0..f6b3528cb4 100644
--- a/keyboards/gmmk/gmmk2/p96/iso/iso.c
+++ b/keyboards/gmmk/gmmk2/p96/iso/iso.c
@@ -18,8 +18,8 @@
#ifdef RGB_MATRIX_ENABLE
-const aw_led g_aw_leds[RGB_MATRIX_LED_COUNT] = {
-/* Refer to IS31 manual for these locations
+const aw20216s_led_t g_aw20216s_leds[RGB_MATRIX_LED_COUNT] = {
+/* Refer to AW20216S manual for these locations
* driver
* | R location
* | | G location
diff --git a/keyboards/gmmk/gmmk2/p96/iso/rules.mk b/keyboards/gmmk/gmmk2/p96/iso/rules.mk
index a076e01916..2d2e9895fd 100644
--- a/keyboards/gmmk/gmmk2/p96/iso/rules.mk
+++ b/keyboards/gmmk/gmmk2/p96/iso/rules.mk
@@ -11,5 +11,3 @@ BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality.
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow.
AUDIO_ENABLE = no # Audio output.
RGB_MATRIX_ENABLE = yes # Enable RGB matrix effects.
-EEPROM_DRIVER = wear_leveling
-WEAR_LEVELING_DRIVER = spi_flash
diff --git a/keyboards/gmmk/numpad/config.h b/keyboards/gmmk/numpad/config.h
index 6aa0a6c016..3627ab503c 100644
--- a/keyboards/gmmk/numpad/config.h
+++ b/keyboards/gmmk/numpad/config.h
@@ -28,16 +28,13 @@
#define SPI_MOSI_PIN B5
#define SPI_MISO_PIN B4
-#define DRIVER_1_CS B12
-#define DRIVER_1_EN A15
-#define DRIVER_1_PW_EN B13
-
-#define DRIVER_COUNT 1
+#define AW20216S_CS_PIN_1 B12
+#define AW20216S_EN_PIN_1 A15
+#define AW20216S_PW_EN_PIN_1 B13
#define RGB_MATRIX_LED_COUNT 31
#define EXTERNAL_FLASH_SPI_SLAVE_SELECT_PIN B6
-#define WEAR_LEVELING_BACKING_SIZE 2048
#define ENABLE_RGB_MATRIX_ALPHAS_MODS
#define ENABLE_RGB_MATRIX_GRADIENT_UP_DOWN
diff --git a/keyboards/gmmk/numpad/info.json b/keyboards/gmmk/numpad/info.json
index 604a49b503..83f7d840dc 100644
--- a/keyboards/gmmk/numpad/info.json
+++ b/keyboards/gmmk/numpad/info.json
@@ -8,13 +8,20 @@
"pid": "0x5088",
"device_version": "0.0.1"
},
+ "eeprom": {
+ "driver": "wear_leveling",
+ "wear_leveling": {
+ "driver": "spi_flash",
+ "backing_size": 2048
+ }
+ },
"encoder": {
"rotary": [
{"pin_a": "A2", "pin_b": "A1"}
]
},
"rgb_matrix": {
- "driver": "aw20216"
+ "driver": "aw20216s"
},
"processor": "WB32F3G71",
"bootloader": "wb32-dfu",
diff --git a/keyboards/gmmk/numpad/numpad.c b/keyboards/gmmk/numpad/numpad.c
index f1a46170fd..5cdb34c7bd 100644
--- a/keyboards/gmmk/numpad/numpad.c
+++ b/keyboards/gmmk/numpad/numpad.c
@@ -19,16 +19,13 @@
#ifdef RGB_MATRIX_ENABLE
-const aw_led g_aw_leds[RGB_MATRIX_LED_COUNT] = {
-/* Each AW20216 channel is controlled by a register at some offset between 0x00
- * and 0xD7 inclusive.
- * See drivers/awinic/aw20216.h for the mapping between register offsets and
- * driver pin locations.
+const aw20216s_led_t g_aw20216s_leds[RGB_MATRIX_LED_COUNT] = {
+/* Refer to AW20216S manual for these locations
* driver
* | R location
- * | | G location
- * | | | B location
- * | | | | */
+ * | | G location
+ * | | | B location
+ * | | | | */
{0, CS4_SW1, CS5_SW1, CS6_SW1 }, // 0 NUM
{0, CS4_SW2, CS5_SW2, CS6_SW2 }, // 1 /
{0, CS7_SW1, CS8_SW1, CS9_SW1 }, // 2 *
@@ -110,12 +107,12 @@ led_config_t g_led_config = {{
2, 2, 2, 2, 2, 2, 2
} };
-# ifdef DRIVER_1_PW_EN
+# ifdef AW20216S_PW_EN_PIN_1
void keyboard_pre_init_user(void) {
wait_ms(2000);
- setPinOutput(DRIVER_1_PW_EN);
- writePinHigh(DRIVER_1_PW_EN);
+ setPinOutput(AW20216S_PW_EN_PIN_1);
+ writePinHigh(AW20216S_PW_EN_PIN_1);
}
# endif
diff --git a/keyboards/gmmk/numpad/rules.mk b/keyboards/gmmk/numpad/rules.mk
index 5a0d3e34f8..d289eb81a4 100644
--- a/keyboards/gmmk/numpad/rules.mk
+++ b/keyboards/gmmk/numpad/rules.mk
@@ -16,10 +16,8 @@ MIDI_ENABLE = yes
RGB_MATRIX_ENABLE = yes
-EEPROM_DRIVER = wear_leveling
-WEAR_LEVELING_DRIVER = spi_flash
-
LTO_ENABLE = yes
-SRC += analog.c \
- matrix.c \ No newline at end of file
+ANALOG_DRIVER_REQUIRED = yes
+
+SRC += matrix.c
diff --git a/keyboards/gmmk/pro/config.h b/keyboards/gmmk/pro/config.h
index 069823663e..995dd95ec8 100644
--- a/keyboards/gmmk/pro/config.h
+++ b/keyboards/gmmk/pro/config.h
@@ -26,12 +26,10 @@
#define SPI_MOSI_PIN A6
#define SPI_MISO_PIN A7
-#define DRIVER_1_CS B13
-#define DRIVER_2_CS B14
-#define DRIVER_1_EN C13
-#define DRIVER_2_EN C13
-
-#define DRIVER_COUNT 2
+#define AW20216S_CS_PIN_1 B13
+#define AW20216S_CS_PIN_2 B14
+#define AW20216S_EN_PIN_1 C13
+#define AW20216S_EN_PIN_2 C13
#define RGB_DISABLE_WHEN_USB_SUSPENDED
diff --git a/keyboards/gmmk/pro/rev1/ansi/ansi.c b/keyboards/gmmk/pro/rev1/ansi/ansi.c
index 9cd6a3739c..a06594cb88 100644
--- a/keyboards/gmmk/pro/rev1/ansi/ansi.c
+++ b/keyboards/gmmk/pro/rev1/ansi/ansi.c
@@ -136,7 +136,7 @@ led_config_t g_led_config = {{
4, 2, 2, 4, 4, 2, 2, 4, 2, 2, 4, 4, 2, 2, 4, 4, 2, 2, 4, 4, 4, 4, 4
}};
-const aw_led g_aw_leds[RGB_MATRIX_LED_COUNT] = {
+const aw20216s_led_t g_aw20216s_leds[RGB_MATRIX_LED_COUNT] = {
{0, CS1_SW1, CS2_SW1, CS3_SW1}, // 0, ESC, k13
{0, CS4_SW1, CS5_SW1, CS6_SW1}, // 1, ~, k16
{0, CS7_SW1, CS8_SW1, CS9_SW1}, // 2, Tab, k11
diff --git a/keyboards/gmmk/pro/rev1/ansi/info.json b/keyboards/gmmk/pro/rev1/ansi/info.json
index 7e0adbdb05..fc2197a0d7 100644
--- a/keyboards/gmmk/pro/rev1/ansi/info.json
+++ b/keyboards/gmmk/pro/rev1/ansi/info.json
@@ -9,7 +9,7 @@
"device_version": "0.0.1"
},
"rgb_matrix": {
- "driver": "aw20216"
+ "driver": "aw20216s"
},
"matrix_pins": {
"cols": ["A0", "A1", "A2", "A3", "A4", "A8", "A9", "A10"],
diff --git a/keyboards/gmmk/pro/rev1/ansi/keymaps/byungyoonc/config.h b/keyboards/gmmk/pro/rev1/ansi/keymaps/byungyoonc/config.h
deleted file mode 100644
index 16ac4f2407..0000000000
--- a/keyboards/gmmk/pro/rev1/ansi/keymaps/byungyoonc/config.h
+++ /dev/null
@@ -1,72 +0,0 @@
-/* Copyright 2021 Choi Byungyoon <byungyoonc@gmail.com>
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-#pragma once
-
-#define RGB_MATRIX_KEYPRESSES
-
-// RGB Matrix Animation modes. Explicitly enabled
-// For full list of effects, see:
-// https://docs.qmk.fm/#/feature_rgb_matrix?id=rgb-matrix-effects
-// #define ENABLE_RGB_MATRIX_ALPHAS_MODS
-// #define ENABLE_RGB_MATRIX_GRADIENT_UP_DOWN
-// #define ENABLE_RGB_MATRIX_GRADIENT_LEFT_RIGHT
-// #define ENABLE_RGB_MATRIX_BREATHING
-#undef ENABLE_RGB_MATRIX_BAND_SAT
-#undef ENABLE_RGB_MATRIX_BAND_VAL
-#undef ENABLE_RGB_MATRIX_BAND_PINWHEEL_SAT
-#undef ENABLE_RGB_MATRIX_BAND_PINWHEEL_VAL
-#undef ENABLE_RGB_MATRIX_BAND_SPIRAL_SAT
-#undef ENABLE_RGB_MATRIX_BAND_SPIRAL_VAL
-// #define ENABLE_RGB_MATRIX_CYCLE_ALL
-// #define ENABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT
-// #define ENABLE_RGB_MATRIX_CYCLE_UP_DOWN
-// #define ENABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON
-#undef ENABLE_RGB_MATRIX_CYCLE_OUT_IN
-#undef ENABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL
-#undef ENABLE_RGB_MATRIX_CYCLE_PINWHEEL
-#undef ENABLE_RGB_MATRIX_CYCLE_SPIRAL
-#undef ENABLE_RGB_MATRIX_DUAL_BEACON
-#undef ENABLE_RGB_MATRIX_RAINBOW_BEACON
-#undef ENABLE_RGB_MATRIX_RAINBOW_PINWHEELS
-// #define ENABLE_RGB_MATRIX_RAINDROPS
-// #define ENABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS
-#undef ENABLE_RGB_MATRIX_HUE_BREATHING
-#undef ENABLE_RGB_MATRIX_HUE_PENDULUM
-#undef ENABLE_RGB_MATRIX_HUE_WAVE
-// #define ENABLE_RGB_MATRIX_PIXEL_RAIN
-#undef ENABLE_RGB_MATRIX_PIXEL_FLOW
-#undef ENABLE_RGB_MATRIX_PIXEL_FRACTAL
-// enabled only if RGB_MATRIX_FRAMEBUFFER_EFFECTS is defined
-// #define ENABLE_RGB_MATRIX_TYPING_HEATMAP
-// #define ENABLE_RGB_MATRIX_DIGITAL_RAIN
-// enabled only of RGB_MATRIX_KEYPRESSES or RGB_MATRIX_KEYRELEASES is defined
-// #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE
-// #define ENABLE_RGB_MATRIX_SOLID_REACTIVE
-#undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE
-#undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE
-#undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS
-#undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS
-#undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS
-#undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS
-#undef ENABLE_RGB_MATRIX_SPLASH
-// #define ENABLE_RGB_MATRIX_MULTISPLASH
-#undef ENABLE_RGB_MATRIX_SOLID_SPLASH
-// #define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH
-
-#undef DEBOUNCE
-/* High debounce time is required to avoid key chattering because of the debouncing algorithm sym_eager_pk */
-#define DEBOUNCE 40
diff --git a/keyboards/gmmk/pro/rev1/ansi/keymaps/byungyoonc/keymap.c b/keyboards/gmmk/pro/rev1/ansi/keymaps/byungyoonc/keymap.c
deleted file mode 100644
index 487e6dc04e..0000000000
--- a/keyboards/gmmk/pro/rev1/ansi/keymaps/byungyoonc/keymap.c
+++ /dev/null
@@ -1,132 +0,0 @@
-/* Copyright 2021 Choi Byungyoon <byungyoonc@gmail.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 QMK_KEYBOARD_H
-#include "byungyoonc.h"
-
-// clang-format off
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
-// ESC F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 Prt Rotary(Mic Mute)
-// ~ 1 2 3 4 5 6 7 8 9 0 - (=) BackSpc TaskMgr
-// Tab Q W E R T Y U I O P [ ] \ Del
-// Caps A S D F G H J K L ; " Enter Home
-// Sh_L Z X C V B N M , . ? Sh_R Up End
-// Ct_L Win_L Alt_L SPACE Alt_R FN Ct_R Left Down Right
-
- [0] = 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_PSCR, KC_MMUT,
- 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_TASK,
- KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL,
- KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_HOME,
- KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END,
- KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
- ),
-
- [1] = LAYOUT(
- _______, KC_BRID, KC_BRIU, KC_CALC, KC_MSEL, RGB_VAD, RGB_VAI, KC_MRWD, KC_MPLY, KC_MFFD, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______,
- _______, KC_SEC1, KC_SEC2, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, DB_TOGG, _______,
- _______, _______, _______, RGB_SAI, _______, _______, _______, _______, _______, _______, _______, _______, _______, QK_BOOT, _______,
- _______, _______, _______, RGB_SAD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, RGB_HUI, RGB_HUD, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, RGB_MOD, _______,
- _______, GUI_TOG, _______, _______, _______, _______, _______, RGB_SPD, RGB_RMOD, RGB_SPI
- ),
-
-
-};
-// clang-format on
-
-bool process_record_user_kb(uint16_t keycode, keyrecord_t *record) {
- if (record->event.pressed) {
- rgblight_increase_hue();
- }
- return true;
-}
-
-#if defined(ENCODER_ENABLE)
-bool encoder_update_user(uint8_t index, bool clockwise) {
- uint8_t mod_state = get_mods();
- if (mod_state & MOD_MASK_CTRL) {
- unregister_mods(MOD_MASK_CTRL);
- if (clockwise) {
- tap_code16(LCTL(KC_RGHT));
- } else {
- tap_code16(LCTL(KC_LEFT));
- }
- set_mods(mod_state);
- } else {
- if (clockwise) {
- tap_code16(KC_VOLU);
- } else {
- tap_code16(KC_VOLD);
- }
- }
- //return true; //set to return false to counteract enabled encoder in pro.c
- return false;
-}
-#endif // ENCODER_ENABLE
-
-static void set_rgb_caps_leds(void);
-
-static void set_rgb_caps_leds(void) {
- rgb_matrix_set_color(73, 0xFF, 0x77, 0x77); // Left side LED 3
- rgb_matrix_set_color(74, 0xFF, 0x77, 0x77); // Right side LED 3
- rgb_matrix_set_color(76, 0xFF, 0x77, 0x77); // Left side LED 4
- rgb_matrix_set_color(77, 0xFF, 0x77, 0x77); // Right side LED 4
- rgb_matrix_set_color(80, 0xFF, 0x77, 0x77); // Left side LED 5
- rgb_matrix_set_color(81, 0xFF, 0x77, 0x77); // Right side LED 5
- rgb_matrix_set_color(83, 0xFF, 0x77, 0x77); // Left side LED 6
- rgb_matrix_set_color(84, 0xFF, 0x77, 0x77); // Right side LED 6
- rgb_matrix_set_color(3, 0xFF, 0x77, 0x77); // CAPS LED
-}
-
-static void set_rgb_nlck_notset_leds(void);
-
-static void set_rgb_wlck_leds(void);
-
-static void set_rgb_nlck_notset_leds(void) {
- rgb_matrix_set_color(67, 0x77, 0x77, 0xFF); // Left side LED 1
- rgb_matrix_set_color(68, 0x77, 0x77, 0xFF); // Right side LED 1
- rgb_matrix_set_color(70, 0x77, 0x77, 0xFF); // Left side LED 2
- rgb_matrix_set_color(71, 0x77, 0x77, 0xFF); // Right side LED 2
-}
-
-static void set_rgb_wlck_leds(void) {
- rgb_matrix_set_color(87, 0x77, 0xFF, 0x77); // Left side LED 7
- rgb_matrix_set_color(88, 0x77, 0xFF, 0x77); // Right side LED 7
- rgb_matrix_set_color(91, 0x77, 0xFF, 0x77); // Left side LED 8
- rgb_matrix_set_color(92, 0x77, 0xFF, 0x77); // Right side LED 8
-}
-
-bool rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) {
- led_t led_state = host_keyboard_led_state();
- if (led_state.caps_lock) {
- set_rgb_caps_leds();
- }
- if (!led_state.num_lock) {
- set_rgb_nlck_notset_leds();
- }
- if (keymap_config.no_gui) {
- set_rgb_wlck_leds();
- }
- return false;
-}
-
-void matrix_output_unselect_delay(uint8_t line, bool key_pressed) {
- for (int i = 0; i < 20; i++) {
- wait_cpuclock(STM32_SYSCLK / 1000000L);
- }
-}
diff --git a/keyboards/gmmk/pro/rev1/ansi/keymaps/byungyoonc/readme.md b/keyboards/gmmk/pro/rev1/ansi/keymaps/byungyoonc/readme.md
deleted file mode 100644
index d340bf86ed..0000000000
--- a/keyboards/gmmk/pro/rev1/ansi/keymaps/byungyoonc/readme.md
+++ /dev/null
@@ -1,41 +0,0 @@
-byungyoonc's GMMK Pro Layout
-============================
-
-## Keymap
-
-### Base Layer
-![GMMK Pro Base Layer Layout Image](https://i.imgur.com/VvEL08Q.png)
-
-Made a bit of a change on the leftmost side of the keyboard to set Home and End closer to the arrow keys. Also uses a shortcut for Windows Task Manager, Windows PowerToys microphone mute.
-
-### Fn Layer
-![GMMK Pro Fn Layer Layout Image](https://i.imgur.com/uQy2gSh.png)
-
-F-row media functions roughly matches the Keychron keyboard's layout.
-
-Added Debug key for faster debugging iteration.
-
-Supports Secrets input by Fn + Numbers.
-
-The rest are pretty self-explanatory RGB controls, a GUI toggle and an NKRO toggle.
-
-## Rotary Encoder Rotation
-Volume control when no mods, Ctrl+Left/Right when Ctrl is pressed while rotating the encoder.
-
-## RGB Indicators
-Uses side strap RGB as the RGB indicators.
-- Top third lights on when the Num Lock is turned off.
-- Middle third lights on when the Caps Lock is turned on.
-- Bottom third lights on when the GUI is disabled (via `GUI_TOG`).
-
-## Debounce
-Uses the `DEBOUNCE_TYPE` of `sym_eager_pk` for the shortest response time possible, and `DEBOUNCE` time of `40` in order to eliminate any key chattering.
-
-## NKRO
-N-key rollover is turned on by default.
-
-## RGB Matrix
-Keypresses effects are enabled.
-Disabled default several RGB effects.
-Added custom RGB matrix effect `saturated_solid_multisplash`.
-Every keypress increases the RGB hue value.
diff --git a/keyboards/gmmk/pro/rev1/ansi/keymaps/byungyoonc/rgb_matrix_user.inc b/keyboards/gmmk/pro/rev1/ansi/keymaps/byungyoonc/rgb_matrix_user.inc
deleted file mode 100644
index 0d61e19f4c..0000000000
--- a/keyboards/gmmk/pro/rev1/ansi/keymaps/byungyoonc/rgb_matrix_user.inc
+++ /dev/null
@@ -1 +0,0 @@
-#include "saturated_solid_multisplash.h"
diff --git a/keyboards/gmmk/pro/rev1/ansi/keymaps/byungyoonc/rules.mk b/keyboards/gmmk/pro/rev1/ansi/keymaps/byungyoonc/rules.mk
deleted file mode 100644
index 08f832c51b..0000000000
--- a/keyboards/gmmk/pro/rev1/ansi/keymaps/byungyoonc/rules.mk
+++ /dev/null
@@ -1,2 +0,0 @@
-DEBOUNCE_TYPE = sym_eager_pk
-RGB_MATRIX_CUSTOM_USER = yes
diff --git a/keyboards/gmmk/pro/rev1/ansi/keymaps/cedrikl/keymap.c b/keyboards/gmmk/pro/rev1/ansi/keymaps/cedrikl/keymap.c
deleted file mode 100644
index c00ba602f7..0000000000
--- a/keyboards/gmmk/pro/rev1/ansi/keymaps/cedrikl/keymap.c
+++ /dev/null
@@ -1,163 +0,0 @@
-/* Copyright 2021 Cedrik Lussier @cedrikl
-.* Directly inspired from the work of jonavin https://github.com/qmk/qmk_firmware/tree/master/keyboards/gmmk/pro/ansi/keymaps/jonavin
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-#include QMK_KEYBOARD_H
-#include "rgb_matrix_map.h"
-#include "cedrikl.h"
-
-// clang-format off
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
-// ESC F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 Prt Rotary(Mute)
-// ~ 1 2 3 4 5 6 7 8 9 0 - (=) BackSpc Del
-// Tab Q W E R T Y U I O P [ ] \ PgUp
-// Caps A S D F G H J K L ; " Enter PgDn
-// Sh_L Z X C V B N M , . ? Sh_R Up End
-// Ct_L Win_L Alt_L SPACE Alt_R FN Ct_R Left Down Right
-
-
- // The FN key by default maps to a momentary toggle to layer 1 to provide access to the QK_BOOT key (to put the board into bootloader mode). Without
- // this mapping, you have to open the case to hit the button on the bottom of the PCB (near the USB cable attachment) while plugging in the USB
- // cable to get the board into bootloader mode - definitely not fun when you're working on your QMK builds. Remove this and put it back to KC_RGUI
- // if that's your preference.
- //
- // To put the keyboard in bootloader mode, use FN+backslash. If you accidentally put it into bootloader, you can just unplug the USB cable and
- // it'll be back to normal when you plug it back in.
- //
- // This keyboard defaults to 6KRO instead of NKRO for compatibility reasons (some KVMs and BIOSes are incompatible with NKRO).
- // Since this is, among other things, a "gaming" keyboard, a key combination to enable NKRO on the fly is provided for convenience.
- // Press Fn+N to toggle between 6KRO and NKRO. This setting is persisted to the EEPROM and thus persists between restarts.
- [0] = 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_DEL, KC_MUTE,
- 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,
- KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_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(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
- ),
-
- [1] = LAYOUT(
- EE_CLR, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, QK_BOOT, KC_MUTE,
- KC_NUM, KC_P1, KC_P2, KC_P3, KC_P4, KC_P5, KC_P6, KC_P7, KC_P8, KC_P9, KC_P0, KC_PMNS, KC_PPLS, KC_BSPC, KC_PSCR,
- KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_PSLS, KC_PAST, KC_BSLS, KC_PGUP,
- KC_CAPS, RGB_VAD, RGB_TOG, RGB_VAI, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_PENT, KC_PGDN,
- KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_PDOT, KC_SLSH, KC_RSFT, KC_UP, KC_INS,
- KC_LCTL, KC_RGUI, KC_LALT, KC_SPC, KC_RALT, KC_NO, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
- )
-};
-// clang-format on
-
-#ifdef ENCODER_ENABLE
- bool encoder_update_user(uint8_t index, bool clockwise) {
- if (clockwise) {
- tap_code(KC_VOLU);
- } else {
- tap_code(KC_VOLD);
- }
- //return true; //set to return false to counteract enabled encoder in pro.c
- return false;
- }
-#endif // ENCODER_ENABLE
-
-
-#ifdef RGB_MATRIX_ENABLE
-//void set_layer_rgb(uint8_t led_min, uint8_t led_max, int layer) {
-// const ledmap *l = &(ledmaps[layer]);
-//
-//
-//
-// for (int i = 0; i < RGB_MATRIX_LED_COUNT; i++) {
-// HSV hsv = {
-// .h = (*l)[i][0],
-// .s = (*l)[i][1],
-// .v = val,
-// };
-//
-// if (hsv.h || hsv.s) {
-// RGB rgb = hsv_to_rgb(hsv);
-// RGB_MATRIX_INDICATOR_SET_COLOR(i, rgb.r, rgb.g, rgb.b);
-// }
-// }
-//}
-
- // These shorthands are used below to set led colors on each matrix cycle
- void loop_colorset(const uint8_t *indices, int array_size, const HSV target_color) {
- HSV work_color = target_color;
- work_color.v = rgb_matrix_get_val();
-
- RGB final_color = hsv_to_rgb(work_color);
-
- for (int i = 0; i < array_size; i++) {
- rgb_matrix_set_color(indices[i], final_color.r, final_color.g, final_color.b); // Set color A here
- }
- }
-
- // Capslock, Scroll lock and Numlock indicator on Left side lights.
- bool rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) {
- loop_colorset(LED_REGION_A, ARRAY_SIZE(LED_REGION_A),
- hsv_cl_blue);
- loop_colorset(LED_REGION_B, ARRAY_SIZE(LED_REGION_B),
- hsv_cl_purple);
- loop_colorset(LED_REGION_L_SIDE, ARRAY_SIZE(LED_REGION_L_SIDE),
- hsv_cl_purple);
- loop_colorset(LED_REGION_R_SIDE, ARRAY_SIZE(LED_REGION_R_SIDE),
- hsv_cl_purple);
-
- switch(get_highest_layer(layer_state)){ // special handling per layer
- case 1: //layer 1
- //rgb_matrix_set_color_all(RGB_AZURE);
- loop_colorset(LED_REGION_NUMPAD,
- ARRAY_SIZE(LED_REGION_NUMPAD), hsv_cl_numpad);
- loop_colorset(LED_REGION_OTHER, ARRAY_SIZE(LED_REGION_OTHER),
- hsv_cl_mods);
- break;
- default: //layer 0
- //
- break;
- break;
- }
-
- HSV bad_hsv = hsv_cl_bad;
- bad_hsv.v = rgb_matrix_get_val();
- RGB bad_rgb = hsv_to_rgb(bad_hsv);
- led_t led_state = host_keyboard_led_state();
-
- if (!led_state.num_lock) { // on if NUM lock is OFF
- rgb_matrix_set_color(LED_R1, bad_rgb.r, bad_rgb.g, bad_rgb.b);
- rgb_matrix_set_color(LED_R2, bad_rgb.r, bad_rgb.g, bad_rgb.b);
- rgb_matrix_set_color(LED_R3, bad_rgb.r, bad_rgb.g, bad_rgb.b);
- rgb_matrix_set_color(LED_R4, bad_rgb.r, bad_rgb.g, bad_rgb.b);
- rgb_matrix_set_color(LED_R5, bad_rgb.r, bad_rgb.g, bad_rgb.b);
- rgb_matrix_set_color(LED_R6, bad_rgb.r, bad_rgb.g, bad_rgb.b);
- rgb_matrix_set_color(LED_R7, bad_rgb.r, bad_rgb.g, bad_rgb.b);
- rgb_matrix_set_color(LED_R8, bad_rgb.r, bad_rgb.g, bad_rgb.b);
- }
- if (led_state.caps_lock) {
- rgb_matrix_set_color(LED_L1, bad_rgb.r, bad_rgb.g, bad_rgb.b);
- rgb_matrix_set_color(LED_L2, bad_rgb.r, bad_rgb.g, bad_rgb.b);
- rgb_matrix_set_color(LED_L3, bad_rgb.r, bad_rgb.g, bad_rgb.b);
- rgb_matrix_set_color(LED_L4, bad_rgb.r, bad_rgb.g, bad_rgb.b);
- rgb_matrix_set_color(LED_L5, bad_rgb.r, bad_rgb.g, bad_rgb.b);
- rgb_matrix_set_color(LED_L6, bad_rgb.r, bad_rgb.g, bad_rgb.b);
- rgb_matrix_set_color(LED_L7, bad_rgb.r, bad_rgb.g, bad_rgb.b);
- rgb_matrix_set_color(LED_L8, bad_rgb.r, bad_rgb.g, bad_rgb.b);
- loop_colorset(LED_REGION_CAPS, ARRAY_SIZE(LED_REGION_CAPS),
- hsv_cl_bad);
- }
- return false;
- }
-#endif
diff --git a/keyboards/gmmk/pro/rev1/ansi/keymaps/cedrikl/rgb_matrix_map.h b/keyboards/gmmk/pro/rev1/ansi/keymaps/cedrikl/rgb_matrix_map.h
deleted file mode 100644
index 484f64b74c..0000000000
--- a/keyboards/gmmk/pro/rev1/ansi/keymaps/cedrikl/rgb_matrix_map.h
+++ /dev/null
@@ -1,185 +0,0 @@
-/* Copyright 2021 Cedrik Lussier @cedrikl
-.* Directly inspired from the work of jonavin https://github.com/qmk/qmk_firmware/tree/master/keyboards/gmmk/pro/ansi/keymaps/jonavin
- *
- * 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/>.
- */
-
-#ifdef RGB_MATRIX_ENABLE
-
- // Custom RGB Colours
- const HSV hsv_cl_blue = {150, 255, 255};
- const HSV hsv_cl_purple = {188, 255, 255};
- const HSV hsv_cl_numpad = {85, 255, 255};
- const HSV hsv_cl_mods = {42, 255, 255};
- const HSV hsv_cl_bad = {0, 255, 255};
-
- // RGB LED locations
- enum led_location_map {
- LED_ESC, // 0, ESC, k13
- LED_GRV, // 1, ~, k16
- LED_TAB, // 2, Tab, k11
- LED_CAPS, // 3, Caps, k21
- LED_LSFT, // 4, Sh_L, k00
- LED_LCTL, // 5, Ct_L, k06
- LED_F1, // 6, F1, k26
- LED_1, // 7, 1, k17
- LED_Q, // 8, Q, k10
- LED_A, // 9, A, k12
- LED_Z, // 10, Z, k14
- LED_LWIN, // 11, Win_L, k90
- LED_F2, // 12, F2, k36
- LED_2, // 13, 2, k27
- LED_W, // 14, W, k20
- LED_S, // 15, S, k22
- LED_X, // 16, X, k24
- LED_LALT, // 17, Alt_L, k93
- LED_F3, // 18, F3, k31
- LED_3, // 19, 3, k37
- LED_E, // 20, E, k30
- LED_D, // 21, D, k32
- LED_C, // 22, C, k34
- LED_F4, // 23, F4, k33
- LED_4, // 24, 4, k47
- LED_R, // 25, R, k40
- LED_F, // 26, F, k42
- LED_V, // 27, V, k44
- LED_F5, // 28, F5, k07
- LED_5, // 29, 5, k46
- LED_T, // 30, T, k41
- LED_G, // 31, G, k43
- LED_B, // 32, B, k45
- LED_SPC, // 33, SPACE, k94
- LED_F6, // 34, F6, k63
- LED_6, // 35, 6, k56
- LED_Y, // 36, Y, k51
- LED_H, // 37, H, k53
- LED_N, // 38, N, k55
- LED_F7, // 39, F7, k71
- LED_7, // 40, 7, k57
- LED_U, // 41, U, k50
- LED_J, // 42, J, k52
- LED_M, // 43, M, k54
- LED_F8, // 44, F8, k76
- LED_8, // 45, 8, k67
- LED_I, // 46, I, k60
- LED_K, // 47, K, k62
- LED_COMM, // 48, ,, k64
- LED_RALT, // 49, Alt_R, k95
- LED_F9, // 50, F9, ka6
- LED_9, // 51, 9, k77
- LED_O, // 52, O, k70
- LED_L, // 53, L, k72
- LED_DOT, // 54, ., k74
- LED_FN, // 55, FN, k92
- LED_F10, // 56, F10, ka7
- LED_0, // 57, 0, k87
- LED_P, // 58, P, k80
- LED_SCLN, // 59, ;, k82
- LED_SLSH, // 60, ?, k85
- LED_F11, // 61, F11, ka3
- LED_MINS, // 62, -, k86
- LED_LBRC, // 63, [, k81
- LED_QUOT, // 64, ", k83
- LED_RCTL, // 65, Ct_R, k04
- LED_F12, // 66, F12, ka5
- LED_L1, // 67, LED, l01
- LED_R1, // 68, LED, l11
- LED_DEL, // 69, Prt, k97 -- remapped to DEL
- LED_L2, // 70, LED, l02
- LED_R2, // 71, LED, l12
- LED_HOME, // 72, Del, k65
- LED_L3, // 73, LED, l03
- LED_R3, // 74, LED, l13
- LED_PGUP, // 75, PgUp, k15
- LED_L4, // 76, LED, l04
- LED_R4, // 77, LED, l14
- LED_EQL, // 78, =, k66
- LED_RGHT, // 79, Right, k05
- LED_L5, // 80, LED, l05
- LED_R5, // 81, LED, l15
- LED_END, // 82, End, k75
- LED_L6, // 83, LED, l06
- LED_R6, // 84, LED, l16
- LED_BSPC, // 85, BSpc, ka1
- LED_PGDN, // 86, PgDn, k25
- LED_L7, // 87, LED, l07
- LED_R7, // 88, LED, l17
- LED_RBRC, // 89, ], k61
- LED_RSFT, // 90, Sh_R, k91
- LED_L8, // 91, LED, l08
- LED_R8, // 92, LED, l18
- LED_BSLS, // 93, \, ka2
- LED_UP, // 94, Up, k35
- LED_LEFT, // 95, Left, k03
- LED_ENT, // 96, Enter, ka4
- LED_DOWN // 97, Down, k73
- };
-
-const uint8_t LED_REGION_L_SIDE[] = {LED_L1, LED_L2, LED_L3, LED_L4, LED_L5, LED_L6, LED_L7,LED_L8};
-const uint8_t LED_REGION_R_SIDE[] = {LED_R1, LED_R2, LED_R3, LED_R4, LED_R5, LED_R6, LED_R7,LED_R8};
-
- //const uint8_t LED_MATRIX[] = {
- // LED_ESC, LED_F1, LED_F2, LED_F3, LED_F4, LED_F5, LED_F6, LED_F7, LED_F8, LED_F9, LED_F10, LED_F11, LED_F12, LED_DEL,
- // LED_GRV, LED_1, LED_2, LED_3, LED_4, LED_5, LED_6, LED_7, LED_8, LED_9, LED_0, LED_MINS, LED_EQL, LED_BSPC, LED_HOME,
- // LED_TAB, LED_Q, LED_W, LED_E, LED_R, LED_T, LED_Y, LED_U, LED_I, LED_O, LED_P, LED_LBRC, LED_RBRC, LED_BSLS, LED_PGUP,
- // LED_CAPS, LED_A, LED_S, LED_D, LED_F, LED_G, LED_H, LED_J, LED_K, LED_L, LED_SCLN, LED_QUOT, LED_ENT, LED_PGDN,
- // LED_LSFT, LED_Z, LED_X, LED_C, LED_V, LED_B, LED_N, LED_M, LED_COMM, LED_DOT, LED_SLSH, LED_RSFT, LED_UP, LED_END,
- // LED_LCTL, LED_LWIN, LED_LALT, LED_SPC, LED_RALT, LED_FN, LED_RCTL, LED_LEFT, LED_DOWN, LED_RGHT
- //};
-
- const uint8_t LED_REGION_A[] = {
- LED_ESC, LED_F9, LED_F10, LED_F11, LED_F12, LED_DEL,
- LED_GRV, LED_1, LED_0, LED_MINS, LED_EQL, LED_BSPC, LED_HOME,
- LED_TAB, LED_Q, LED_P, LED_LBRC, LED_RBRC, LED_BSLS, LED_PGUP,
- LED_CAPS, LED_A, LED_SCLN, LED_QUOT, LED_ENT, LED_PGDN,
- LED_LSFT, LED_Z, LED_SLSH, LED_RSFT, LED_UP, LED_END,
- LED_LCTL, LED_LWIN, LED_LALT, LED_RCTL, LED_LEFT, LED_DOWN, LED_RGHT
- };
- const uint8_t LED_REGION_B[] = {
- LED_F1, LED_F2, LED_F3, LED_F4, LED_F5, LED_F6, LED_F7, LED_F8,
- LED_2, LED_3, LED_4, LED_5, LED_6, LED_7, LED_8, LED_9,
- LED_W, LED_E, LED_R, LED_T, LED_Y, LED_U, LED_I, LED_O,
- LED_S, LED_D, LED_F, LED_G, LED_H, LED_J, LED_K, LED_L,
- LED_X, LED_C, LED_V, LED_B, LED_N, LED_M, LED_COMM, LED_DOT,
- LED_SPC, LED_RALT, LED_FN
- };
-
- const uint8_t LED_REGION_NUMPAD[] = {
-
- LED_GRV, LED_1, LED_2, LED_3, LED_4, LED_5, LED_6, LED_7, LED_8, LED_9, LED_0, LED_MINS, LED_EQL,
- LED_LBRC, LED_RBRC,
- LED_ENT,
- LED_DOT
-
- };
-
- const uint8_t LED_REGION_OTHER[] = {
- LED_ESC, LED_DEL,
- LED_HOME,
-
- LED_A, LED_S, LED_D,
- LED_END,
- LED_LWIN
- };
-
- const uint8_t LED_REGION_CAPS[] = {
-
- LED_GRV, LED_1,
- LED_TAB, LED_Q,
- LED_CAPS, LED_A,
- LED_LSFT,
- LED_LCTL
- };
-
-#endif
diff --git a/keyboards/gmmk/pro/rev1/ansi/keymaps/cedrikl/rules.mk b/keyboards/gmmk/pro/rev1/ansi/keymaps/cedrikl/rules.mk
deleted file mode 100644
index 4b7ed8bf0b..0000000000
--- a/keyboards/gmmk/pro/rev1/ansi/keymaps/cedrikl/rules.mk
+++ /dev/null
@@ -1,2 +0,0 @@
-IDLE_TIMEOUT_ENABLE = yes
-STARTUP_NUMLOCK_ON = yes
diff --git a/keyboards/gmmk/pro/rev1/ansi/keymaps/gourdo1/config.h b/keyboards/gmmk/pro/rev1/ansi/keymaps/gourdo1/config.h
deleted file mode 100644
index a0fbedde49..0000000000
--- a/keyboards/gmmk/pro/rev1/ansi/keymaps/gourdo1/config.h
+++ /dev/null
@@ -1,146 +0,0 @@
-/* Copyright 2021 Jonavin Eng @Jonavin
- Copyright 2022 gourdo1 <gourdo1@outlook.com>
-
-This program is free software: you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program. If not, see <http://www.gnu.org/licenses/>.
-*/
-
-#pragma once
-
-// Force n-key rollover
-#define FORCE_NKRO
-
-// Set TT to two taps
-#define TAPPING_TOGGLE 2
-
-#ifdef COMMAND_ENABLE
-#define IS_COMMAND() (get_mods() == MOD_MASK_CTRL) //debug commands accessed by holding down both CTRLs: https://github.com/qmk/qmk_firmware/blob/master/docs/feature_command.md
-#endif
-
-// Caps Word configuration
-#define BOTH_SHIFTS_TURNS_ON_CAPS_WORD
-#define CAPS_WORD_IDLE_TIMEOUT 10000 // Automatically turn off after x milliseconds of idle. 0 to never timeout.
-
-// Handle GRAVESC combo keys
-#define GRAVE_ESC_ALT_OVERRIDE
-// Always send Escape if Alt is pressed
-#define GRAVE_ESC_CTRL_OVERRIDE
-// Always send Escape if Control is pressed
-
-// #define TAPPING_TERM 180
-#define TAPPING_TERM 300
-#define TAPPING_TERM_PER_KEY
-
-#ifdef RGB_MATRIX_ENABLE
- #define RGB_DISABLE_WHEN_USB_SUSPENDED
- #define RGB_MATRIX_KEYPRESSES // Enables REACTIVE & SPLASH modes
- #define RGB_MATRIX_FRAMEBUFFER_EFFECTS // Enables Heatmap, Rain
-
- // RGB step values
- #define RGBLIGHT_HUE_STEP 32 // The number of steps to cycle through the hue by (default 10)
- #define RGBLIGHT_SAT_STEP 17 // The number of steps to increment the saturation by (default 17)
- #define RGBLIGHT_VAL_STEP 17 // The number of steps to increment the brightness by (default 17)
-
- // Startup values, when none have been set
- #define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_SOLID_REACTIVE // Sets the default effect mode, if none has been set (was RGB_MATRIX_SOLID_COLOR)
- #define RGB_MATRIX_DEFAULT_HUE 24 // Sets the default hue value, if none has been set
- #define RGB_MATRIX_DEFAULT_SAT 255 // Sets the default saturation value, if none has been set
- #define RGB_MATRIX_DEFAULT_VAL 127 // Sets the default brightness value, if none has been set
- #define RGB_MATRIX_DEFAULT_SPD 127 // Sets the default animation speed, if none has been set
-
- // Uncomment any #undef line below to turn OFF any default enabled RGB background effect (enabled in keyboards/gmmk/pro/config.h).
- #undef ENABLE_RGB_MATRIX_ALPHAS_MODS // Solid color (seems redundant; seems same as RGB_MATRIX_SOLID_COLOR?)
- //#undef ENABLE_RGB_MATRIX_GRADIENT_UP_DOWN // Static, horizontal rainbow
- //#undef ENABLE_RGB_MATRIX_GRADIENT_LEFT_RIGHT // Static, vertical Rainbow
- //#undef ENABLE_RGB_MATRIX_BREATHING // Breathing animation using selected HSV color
- #undef ENABLE_RGB_MATRIX_BAND_SAT // Single hue band fading saturation scrolling left to right (with white)
- //#undef ENABLE_RGB_MATRIX_BAND_VAL // Single hue band fading brightness scrolling left to right (with black)
- #undef ENABLE_RGB_MATRIX_BAND_PINWHEEL_SAT // Single hue 3 blade spinning pinwheel fades sat (with white)
- //#undef ENABLE_RGB_MATRIX_BAND_PINWHEEL_VAL // Single hue 3 blade spinning pinwheel fades brightness (with black)
- #undef ENABLE_RGB_MATRIX_BAND_SPIRAL_SAT // Single hue spinning spiral fades brightness (with white)
- //#undef ENABLE_RGB_MATRIX_BAND_SPIRAL_VAL // Single hue spinning spiral fades brightness (with black)
- //#undef ENABLE_RGB_MATRIX_CYCLE_ALL // Full keyboard cycling through rainbow
- //#undef ENABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT // Full gradient moving left to right
- //#undef ENABLE_RGB_MATRIX_CYCLE_UP_DOWN // Full gradient scrolling top to bottom
- #undef ENABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON // Full gradient chevron scrolling left to right (too similar to cycle left right)
- //#undef ENABLE_RGB_MATRIX_CYCLE_OUT_IN // Rainbow circles coming to center.
- #undef ENABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL // Two Rainbow circles coming to 1/3 and 2/3 points. (seems mostly redundant with above)
- #undef ENABLE_RGB_MATRIX_CYCLE_PINWHEEL // Built-in cycling pinwheel (seems redundant with below)
- //#undef ENABLE_RGB_MATRIX_CYCLE_SPIRAL // Full gradient spinning spiral around center of keyboard
- #undef ENABLE_RGB_MATRIX_RAINBOW_BEACON // Spinning rainbow (more distracting transitions)
- //#undef ENABLE_RGB_MATRIX_RAINBOW_PINWHEELS // Spinning rainbow (smoother)
- #undef ENABLE_RGB_MATRIX_DUAL_BEACON // Two rainbows spinning around keyboard (distracting, busy)
- #undef ENABLE_RGB_MATRIX_RAINDROPS // Sustained raindrops of blue, green, yellow (confusing to use with RGB layers)
- //#undef ENABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS // Sustained raindrops of blue, purple, pink, green (confusing to use with RGB layers, but slightly better than above)
- #undef ENABLE_RGB_MATRIX_HUE_BREATHING // Hue shifts up a slight amount at the same time, then shifts back (very subtle)
- #undef ENABLE_RGB_MATRIX_HUE_PENDULUM // Hue shifts up a slight amount in a wave to the right, then back to the left (very subtle)
- #undef ENABLE_RGB_MATRIX_HUE_WAVE // Hue shifts up a slight amount and then back down in a wave to the right (very subtle)
- //#undef ENABLE_RGB_MATRIX_PIXEL_RAIN // Non-sustained raindrops of pastel colors
- #undef ENABLE_RGB_MATRIX_PIXEL_FLOW // More active version of pixel rain with quick cycling (unusable, very distracting)
- #undef ENABLE_RGB_MATRIX_PIXEL_FRACTAL // Same as Pixel Flow but with current HSV only (somewhat distracting)
- //Only enabled if RGB_MATRIX_FRAMEBUFFER_EFFECTS is defined
- //#undef ENABLE_RGB_MATRIX_TYPING_HEATMAP // Fading heatmap that follows keystrokes (has buggy side LEDs that glow red)
- //#undef ENABLE_RGB_MATRIX_DIGITAL_RAIN // The Matrix (has buggy side LEDs that glow red)
- //Only enabled if RGB_MATRIX_KEYPRESSES or RGB_MATRIX_KEYRELEASES is defined
- //#undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE // Key hits shown in current hue - all other keys black
- //#undef ENABLE_RGB_MATRIX_SOLID_REACTIVE // Keyboard lights up in chosen hue, key hits shown in complementary hue (try this as default?)
- #undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE // Hue & value pulse around a single key hit then fades value out (Single key)
- //#undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE // same as above but more intense (Multi-key)
- #undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS // Column and Row single current color fade (Single key)
- //#undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS // Column and Row single color fade. (Multi-key)
- #undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS // Hue & value pulse away on the same column and row of key hit then fades (Single key)
- //#undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS // Hue & value pulse away on the same column and row of multi-key hit then fades
- //#undef ENABLE_RGB_MATRIX_SPLASH // Full rainbow pulses from key hit. All else black.
- #undef ENABLE_RGB_MATRIX_MULTISPLASH // Full rainbow pulses from multi-keys. All else black. (distracting on multiple keystroke hits)
- #undef ENABLE_RGB_MATRIX_SOLID_SPLASH // Single color pulses from key hit. All else black. (distracting on multiple key hits)
- //#undef ENABLE_RGB_MATRIX_SOLID_MULTISPLASH // Single color pulses from muli-keys. All else black.
-#endif //RGB_MATRIX_ENABLE
-
-// Add a layer for colemak -- set "COLEMAK_LAYER_ENABLE = yes" in rules.mk to enable
-#if defined COLEMAK_LAYER_ENABLE
- #ifdef GAME_ENABLE
- #define DYNAMIC_KEYMAP_LAYER_COUNT 6
- #define _COLEMAK 5
- #else
- #define DYNAMIC_KEYMAP_LAYER_COUNT 5
- #define _COLEMAK 4
- #endif //GAME_ENABLE
-#endif // COLEMAK_LAYER_ENABLE
-
-/*
-// Mouse Keys Accelerated Mode Definitions
-#define MOUSEKEY_DELAY 3 // Delay between pressing a movement key and cursor movement (default: 10)
-#define MOUSEKEY_INTERVAL 13 // Time between cursor movements in milliseconds (default: 20); Try setting to 1000/monitor refresh for smooth movement.
-#define MOUSEKEY_MOVE_DELTA 8 // Step size (default: 8)
-#define MOUSEKEY_MAX_SPEED 9 // Maximum cursor speed at which acceleration stops (default: 10)
-#define MOUSEKEY_TIME_TO_MAX 150 // Time until maximum cursor speed is reached (default: 30)
-#define MOUSEKEY_WHEEL_DELAY 0 // Delay between pressing a wheel key and wheel movement (default: 10)
-#define MOUSEKEY_WHEEL_INTERVAL 80 // Time between wheel movements (default: 80)
-#define MOUSEKEY_WHEEL_MAX_SPEED 8 // Maximum number of scroll steps per scroll action (default: 8)
-#define MOUSEKEY_WHEEL_TIME_TO_MAX 40 // Time until maximum scroll speed is reached (default: 40)
-*/
-
-// Mouse Keys Kinetic Mode Definitions
-#define MK_KINETIC_SPEED // Enable Kinetic mode: Uses a quadratic curve on cursor speed to allow precise movements at the beginning and increases speed thereafter.
-#define MOUSEKEY_DELAY 3 // Delay between pressing a movement key and cursor movement (default: 10)
-#define MOUSEKEY_INTERVAL 13 // Time between cursor movements in milliseconds (default: 20); Try setting to 1000/monitor refresh for smooth movement.
-#define MOUSEKEY_MOVE_DELTA 5 // Step size for accelerating from initial to base speed (default: 8)
-#define MOUSEKEY_MOVE_MAX 50 // use instead of BASE SPEED to limit speed in Kinetic mode
-#define MOUSEKEY_INITIAL_SPEED 100 // Initial speed of the cursor in pixels per second (default: 100)
-//#define MOUSEKEY_BASE_SPEED 800 // (broken in QMK 0.16.0) Maximum cursor speed at which acceleration stops (default: 1000)
-#define MOUSEKEY_DECELERATED_SPEED 400 // Decelerated cursor speed (default: 400)
-#define MOUSEKEY_ACCELERATED_SPEED 2000 // Accelerated cursor speed (default: 3000)
-#define MOUSEKEY_WHEEL_INITIAL_MOVEMENTS 16 // Initial number of movements of the mouse wheel (default: 16)
-#define MOUSEKEY_WHEEL_BASE_MOVEMENTS 32 // Maximum number of movements at which acceleration stops (default: 32)
-#define MOUSEKEY_WHEEL_ACCELERATED_MOVEMENTS 48 // Accelerated wheel movements (default: 48)
-#define MOUSEKEY_WHEEL_DECELERATED_MOVEMENTS 8 // Decelerated wheel movements (default: 8)
diff --git a/keyboards/gmmk/pro/rev1/ansi/keymaps/gourdo1/keymap.c b/keyboards/gmmk/pro/rev1/ansi/keymaps/gourdo1/keymap.c
deleted file mode 100644
index 64954feeaf..0000000000
--- a/keyboards/gmmk/pro/rev1/ansi/keymaps/gourdo1/keymap.c
+++ /dev/null
@@ -1,713 +0,0 @@
-/* Copyright 2021 Glorious, LLC <salman@pcgamingrace.com>
- Copyright 2021 Jonavin Eng @Jonavin
- Copyright 2022 gourdo1 <gourdo1@outlook.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/>.
-*/
-
-// Note: Many advanced functions referenced in this file are defined in /users/gourdo1/gourdo1.c
-
-#include QMK_KEYBOARD_H
-
-#include "rgb_matrix_map.h"
-
-#include "gourdo1.h"
-
-#include "paddlegame.h"
-
-#include <math.h>
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
- /* Base Layout
- *
- * ,-------------------------------------------------------------------------------------------------------------.
- * | Esc || F1 | F2 | F3 | F4 || F5 | F6 | F7 | F8 || F9 | F10 | F11 | F12 || Home || Mute |
- * |=============================================================================================================|
- * | ` ~ | 1 ! | 2 @ | 3 # | 4 $ | 5 % | 6 ^ | 7 & | 8 * | 9 ( | 0 ) | - _ | = + | Backspc || Del |
- * |------+------+------+------+------+------+------+------+------+------+------+------+------+----------++------|
- * | Tab | Q | W | E | R | T | Y | U | I | O | P | [ } | ] } | \ | || PgUp |
- * |---------+------+------+------+------+------+------+------+------+------+------+------+------+-------++------|
- * | Capslock | A | S | D | F | G | H | J | K | L | ; : | ' " | Enter || PgDn |
- * |------------+------+------+------+-----+------+------+------+------+------+------+------|----+========+------|
- * | LShift | Z | X | C | V | B | N | M | , < | . > | / ? | RShift || Up || End |
- * |--------------+------+------+------+------+------+------+------+------+------+------+--+=====++------++======|
- * | Ctrl | Win | LAlt | Space | RAlt | Fn | Ctrl || Left | Down | Rght |
- * `------------------------------------------------------------------------------------------------------------'
- */
-
- [_BASE] = 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, LEFTOFENC, ENCFUNC,
- 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, BELOWENC,
- 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,
- CAPSNUM, 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
- ),
-
- /* FN1 Layout
- *
- * ,-------------------------------------------------------------------------------------------------------------.
- * | Esc ||MyCmp |WbHom | Calc |MdSel ||MdPrv |MdNxt |MdPly |MdStp ||VolDn |VolUp |PrScr |ScrLk ||Pause ||Sleep |
- * |=============================================================================================================|
- * | ____ | ____ | ____ | ____ | ____ | ____ | ____ | ____ | ____ | ____ | ____ |RGBTOD|RGBTOI| ________ ||RGBTOG|
- * |------+------+------+------+------+------+------+------+------+------+------+------+------+----------++------|
- * | ______ |RGBSAD|RGBVAI|RGBSAI| NKRO | ____ |YAHOO | ____ | ____ |OUTLK |Pause | ____ | ____ |QK_BOOT|| Home |
- * |---------+------+------+------+------+------+------+------+------+------+------+------+------+-------++------|
- * | Capslock |RGBHUD|RGBVAD|RGBHUI| ____|GMAIL |HTMAIL| ____ | ____ | ____ | ____ | ____ | __________ || End |
- * |------------+------+------+------+-----+------+------+------+------+------+------+------|----+========+------|
- * | __________ |RGBNIT| ____ | ____ | ____ | ____ |NumLk | ____ | ____ |DOTCOM| CAD | ______ ||RGBMOD|| ____ |
- * |--------------+------+------+------+------+------+------+------+------+------+------+--+=====++------++======|
- * | ____ | WinKyLk | ____ | _____ | ____ | ____ | ____ ||RGBSPD|RGBRMD|RGBSPI|
- * `------------------------------------------------------------------------------------------------------------'
- */
-
- #ifdef GAME_ENABLE
- [_FN1] = LAYOUT(
- EE_CLR, KC_MYCM, KC_WHOM, KC_CALC, KC_MSEL, KC_MPRV, KC_MNXT, KC_MPLY, KC_MSTP, KC_VOLD, KC_VOLU, KC_PSCR, KC_SCRL, KC_PAUS, KC_SLEP,
- PRNCONF, TG_CAPS, TG_PAD, TG_ESC, TG_DEL, TG_TDCAP,TG_ENC, TG_INS,TG_SPCMOD,TG_AUTOCR, _______, RGB_TOD, RGB_TOI, _______, RGB_TOG,
- _______, RGB_SAD, RGB_VAI, RGB_SAI, NK_TOGG, _______, YAHOO, _______, _______, OUTLOOK, TG(_GAME),SWAP_L, SWAP_R, QK_BOOT, KC_HOME,
- KC_CAPS, RGB_HUD, RGB_VAD, RGB_HUI, _______, GMAIL, HOTMAIL, _______, _______, LOCKPC, _______, _______, _______, KC_END,
- _______, RGB_NITE,_______, _______, _______, QK_BOOT, KC_NUM, _______, _______, DOTCOM, KC_CAD, _______, RGB_MOD, _______,
- _______, WINLOCK, _______, _______, _______, _______, _______, RGB_SPD, RGB_RMOD, RGB_SPI
- ),
-
- [_GAME] = LAYOUT(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
- ),
-
- #else
- [_FN1] = LAYOUT(
- EE_CLR, KC_MYCM, KC_WHOM, KC_CALC, KC_MSEL, KC_MPRV, KC_MNXT, KC_MPLY, KC_MSTP, KC_VOLD, KC_VOLU, KC_PSCR, KC_SCRL, KC_PAUS, KC_SLEP,
- PRNCONF, TG_CAPS, TG_PAD, TG_ESC, TG_DEL, TG_TDCAP,TG_ENC, TG_INS,TG_SPCMOD,TG_AUTOCR, _______, RGB_TOD, RGB_TOI, _______, RGB_TOG,
- _______, RGB_SAD, RGB_VAI, RGB_SAI, NK_TOGG, _______, YAHOO, _______, _______, OUTLOOK, KC_PAUS, SWAP_L, SWAP_R, QK_BOOT, KC_HOME,
- KC_CAPS, RGB_HUD, RGB_VAD, RGB_HUI, _______, GMAIL, HOTMAIL, _______, _______, LOCKPC, _______, _______, _______, KC_END,
- _______, RGB_NITE,_______, _______, _______, QK_BOOT, KC_NUM, _______, _______, DOTCOM, KC_CAD, _______, RGB_MOD, _______,
- _______, WINLOCK, _______, _______, _______, _______, _______, RGB_SPD, RGB_RMOD, RGB_SPI
- ),
- #endif //GAME_ENABLE
-
- /* _NUMPADMOUSE Layout
- * Note: A symbol preceded by "P" is a Numpad-encoded version of the key -- any app that differentiates will recognize the char as coming from a physical numpad.
- * ,-------------------------------------------------------------------------------------------------------------.
- * | ____ || ____ | ____ | ____ | ____ || ____ | ____ | ____ | ____ || ____ | ____ | ____ | ____ || ____ || ____ |
- * |=============================================================================================================|
- * | ____ | P1 | P2 | P3 | P4 | P5 | P6 | P7 | P8 | P9 | P0 | P- | P+ | ________ || ____ |
- * |------+------+------+------+------+------+------+------+------+------+------+------+------+----------++------|
- * | ______ | PGUP | Up | PGDN | None | None | None | P4 | P5 | P6 | P+ | ____ | ____ | _____ || WhUp |
- * |---------+------+------+------+------+------+------+------+------+------+------+------+------+-------++------|
- * | ________ | Left | Down | Rght | None| None | None | P1 | P2 | P3 | P* | ____ | P-Enter || WhDn |
- * |------------+------+------+------+-----+------+------+------+------+------+------+------|----+========+------|
- * | __________ | None | ____ | ____ | ____ | None | None | 0 | 00 | P. | P/ | MBt1 ||MS_UP || MBt2 |
- * |--------------+------+------+------+------+------+------+------+------+------+------+--+=====++------++======|
- * | ____ | ____ | ____ | _____ | ____ | ____ | MBt3 ||MS_LT |MS_DN |MS_RT |
- * `------------------------------------------------------------------------------------------------------------'
- */
-
- [_NUMPADMOUSE] = LAYOUT(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, KC_P1, KC_P2, KC_P3, KC_P4, KC_P5, KC_P6, KC_P7, KC_P8, KC_P9, KC_P0, KC_PMNS, KC_PPLS, _______, _______,
- _______, KC_PGUP, KC_UP, KC_PGDN, KC_NO, KC_NO, KC_NO, KC_P4, KC_P5, KC_P6, KC_PPLS, _______, _______, _______, KC_WH_U,
- _______, KC_LEFT, KC_DOWN, KC_RGHT, KC_NO, KC_NO, KC_NO, KC_P1, KC_P2, KC_P3, KC_PAST, _______, KC_PENT, KC_WH_D,
- _______, KC_NO, _______, _______, _______, _______, _______, KC_P0, KC_00, KC_PDOT, KC_PSLS, KC_BTN1, KC_MS_U, KC_BTN2,
- _______, _______, _______, KC_PENT, _______, _______, KC_BTN3, KC_MS_L, KC_MS_D, KC_MS_R
- ),
-
- [_MOUSEKEY] = LAYOUT(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_WH_U,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_WH_D,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_BTN1, KC_MS_U, KC_BTN2,
- _______, _______, _______, _______, _______, _______, KC_BTN3, KC_MS_L, KC_MS_D, KC_MS_R
- ),
-
- #ifdef COLEMAK_LAYER_ENABLE
- [_COLEMAK] = LAYOUT(
- _______, 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_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_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_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_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_SPC, KC_RALT, _______, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
- ),
- #endif // COLEMAK_LAYER_ENABLE
-};
-
-#if defined(ENCODER_ENABLE) && !defined(ENCODER_DEFAULTACTIONS_ENABLE) // Encoder Functionality when not using userspace defaults
-void encoder_action_rgbhue(bool clockwise) {
- if (clockwise)
- rgblight_increase_hue_noeeprom();
- else
- rgblight_decrease_hue_noeeprom();
-}
-
-bool encoder_update_user(uint8_t index, bool clockwise) {
- uint8_t mods_state = get_mods();
- if (mods_state & MOD_BIT(KC_LSFT)) { // If you are holding L shift, encoder changes layers
- encoder_action_layerchange(clockwise);
- } else if (mods_state & MOD_BIT(KC_RSFT)) { // If you are holding R shift, Page up/dn
- unregister_mods(MOD_BIT(KC_RSFT));
- encoder_action_navpage(clockwise);
- register_mods(MOD_BIT(KC_RSFT));
- } else if (mods_state & MOD_BIT(KC_LCTL)) { // if holding Left Ctrl, navigate next/prev word
- encoder_action_navword(clockwise);
- } else if (mods_state & MOD_BIT(KC_RCTL)) { // if holding Right Ctrl, change rgb hue/colour
- encoder_action_rgbhue(clockwise);
- } else if (mods_state & MOD_BIT(KC_LALT)) { // if holding Left Alt, change media next/prev track
- encoder_action_mediatrack(clockwise);
- } else {
- switch (get_highest_layer(layer_state)) {
- case _FN1:
- #ifdef IDLE_TIMEOUT_ENABLE
- timeout_update_threshold(clockwise);
- #endif
- break;
- #ifdef GAME_ENABLE
- case _GAME:
- // Game: Paddle movement
- if (damage_count == 0) {
- if (clockwise) {
- if (paddle_pos_full < 15) ++paddle_pos_full;
- } else {
- if (paddle_pos_full > 0) --paddle_pos_full;
- }
- }
- break;
- #endif //GAME_ENABLE
- default:
- encoder_action_volume(clockwise); // Otherwise it just changes volume
- break;
- }
- }
- //return true; //set to return false to counteract enabled encoder in pro.c
- return false;
-}
-#endif // ENCODER_ENABLE && !ENCODER_DEFAULTACTIONS_ENABLE
-
-#ifdef RGB_MATRIX_ENABLE
-
-// Game logic
-#ifdef GAME_ENABLE
-void init_ball(uint8_t i) {
- i &= 1;
- ball[i].on = true;
- ball[i].up = false;
- ball[i].y = 0;
- ball[i].x = rand() % 16;
-
- // Set initial ball state
- if (ball[i].x < 8) {
- ball[i].left = false;
- } else {
- ball[i].x -= 4;
- ball[i].left = true;
- }
-
- // 1/4 chance of being an enemy ball after level 6
- if (level_number > 3) {
- ball[i].enemy = ((rand() % 4) == 0);
- } else {
- ball[i].enemy = false;
- }
-}
-
-void hurt_paddle(void) {
- if (paddle_lives > 0) {
- --paddle_lives;
- }
- damage_timer = timer_read();
- damage_count = 10;
-
- // Reset board
- init_ball(0);
- ball[1].on = false;
-}
-#endif //GAME_ENABLE
-
-// Capslock, Scroll lock and Numlock indicator on Left side lights.
-bool rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) {
- if (get_rgb_nightmode()) rgb_matrix_set_color_all(RGB_OFF);
-
- led_t led_state = host_keyboard_led_state();
-
- // Scroll Lock RGB setup
- if (led_state.scroll_lock) {
- rgb_matrix_set_color(LED_L3, RGB_RED);
- rgb_matrix_set_color(LED_L4, RGB_RED);
- rgb_matrix_set_color(LED_TAB, RGB_RED);
- rgb_matrix_set_color(LED_F12, RGB_RED);
- }
-
-/*
- // System NumLock warning indicator RGB setup
- #ifdef INVERT_NUMLOCK_INDICATOR
- if (!led_state.num_lock) { // on if NUM lock is OFF to bring attention to overlay numpad not functional when enabled
- rgb_matrix_set_color(LED_GRV, RGB_ORANGE2);
- rgb_matrix_set_color(LED_L1, RGB_ORANGE2);
- rgb_matrix_set_color(LED_L2, RGB_ORANGE2);
- rgb_matrix_set_color(LED_N, RGB_ORANGE2);
- rgb_matrix_set_color(LED_FN, RGB_ORANGE2);
- }
- #else
- if (led_state.num_lock) { // Normal, on if NUM lock is ON
- rgb_matrix_set_color(LED_GRV, RGB_ORANGE2);
- rgb_matrix_set_color(LED_L1, RGB_ORANGE2);
- rgb_matrix_set_color(LED_L2, RGB_ORANGE2);
- rgb_matrix_set_color(LED_N, RGB_ORANGE2);
- rgb_matrix_set_color(LED_FN, RGB_ORANGE2);
- }
- #endif // INVERT_NUMLOCK_INDICATOR
-*/
-
- // CapsLock RGB setup
- if (led_state.caps_lock) {
- if (user_config.rgb_hilite_caps) {
- for (uint8_t i = 0; i < ARRAYSIZE(LED_LIST_LETTERS); i++) {
- rgb_matrix_set_color(LED_LIST_LETTERS[i], RGB_CHARTREUSE);
- }
- rgb_matrix_set_color(LED_L7, RGB_CHARTREUSE);
- rgb_matrix_set_color(LED_L8, RGB_CHARTREUSE);
- rgb_matrix_set_color(LED_LSFT, RGB_CHARTREUSE);
- }
- else {
- rgb_matrix_set_color(LED_L7, RGB_CHARTREUSE);
- rgb_matrix_set_color(LED_L8, RGB_CHARTREUSE);
- rgb_matrix_set_color(LED_LSFT, RGB_CHARTREUSE);
- }
- }
-
- // Winkey disabled (gaming) mode RGB setup
- if (keymap_config.no_gui) {
- rgb_matrix_set_color(LED_LWIN, RGB_RED); //light up Winkey red when disabled
- rgb_matrix_set_color(LED_W, RGB_CHARTREUSE); //light up gaming keys with WSAD higlighted
- rgb_matrix_set_color(LED_S, RGB_CHARTREUSE);
- rgb_matrix_set_color(LED_A, RGB_CHARTREUSE);
- rgb_matrix_set_color(LED_D, RGB_CHARTREUSE);
- rgb_matrix_set_color(LED_Q, RGB_ORANGE2);
- rgb_matrix_set_color(LED_E, RGB_ORANGE2);
- rgb_matrix_set_color(LED_R, RGB_ORANGE2);
- rgb_matrix_set_color(LED_TAB, RGB_ORANGE2);
- rgb_matrix_set_color(LED_F, RGB_ORANGE2);
- rgb_matrix_set_color(LED_Z, RGB_ORANGE2);
- rgb_matrix_set_color(LED_X, RGB_ORANGE2);
- rgb_matrix_set_color(LED_C, RGB_ORANGE2);
- rgb_matrix_set_color(LED_V, RGB_ORANGE2);
- rgb_matrix_set_color(LED_SPC, RGB_ORANGE2);
- rgb_matrix_set_color(LED_LCTL, RGB_ORANGE2);
- rgb_matrix_set_color(LED_LSFT, RGB_ORANGE2);
- }
-
- // Fn selector mode RGB setup
- switch (get_highest_layer(layer_state)) { // special handling per layer
- case _FN1: // on Fn layer select what the encoder does when pressed
- rgb_matrix_set_color(LED_FN, RGB_RED); //FN key
-
- //NEW RGB LIGHTING TO RING KEYBOARD ON FN LAYER ACTIVATION:
- for (uint8_t j = 0; j < ARRAYSIZE(LED_LIST_FUNCROW); j++) {
- rgb_matrix_set_color(LED_LIST_FUNCROW[j], RGB_RED);
- }
- rgb_matrix_set_color(LED_LCTL, RGB_RED);
- rgb_matrix_set_color(LED_LALT, RGB_RED);
- rgb_matrix_set_color(LED_SPC, RGB_RED);
- rgb_matrix_set_color(LED_LWIN, RGB_RED);
- //rgb_matrix_set_color(LED_RALT, RGB_RED);
- rgb_matrix_set_color(LED_FN, RGB_OFFBLUE);
- //rgb_matrix_set_color(LED_RCTL, RGB_RED);
- rgb_matrix_set_color(LED_BSLS, RGB_RED);
- rgb_matrix_set_color(LED_L1, RGB_RED);
- rgb_matrix_set_color(LED_L2, RGB_RED);
- rgb_matrix_set_color(LED_L3, RGB_RED);
- rgb_matrix_set_color(LED_L4, RGB_RED);
- rgb_matrix_set_color(LED_L5, RGB_RED);
- rgb_matrix_set_color(LED_L6, RGB_RED);
- rgb_matrix_set_color(LED_L7, RGB_RED);
- rgb_matrix_set_color(LED_L8, RGB_RED);
- rgb_matrix_set_color(LED_DOWN, RGB_RED);
- rgb_matrix_set_color(LED_LEFT, RGB_RED);
- rgb_matrix_set_color(LED_RIGHT, RGB_RED);
- rgb_matrix_set_color(LED_R1, RGB_RED);
- rgb_matrix_set_color(LED_R2, RGB_RED);
- rgb_matrix_set_color(LED_R3, RGB_RED);
- rgb_matrix_set_color(LED_R4, RGB_RED);
- rgb_matrix_set_color(LED_R5, RGB_RED);
- rgb_matrix_set_color(LED_R6, RGB_RED);
- rgb_matrix_set_color(LED_R7, RGB_RED);
- rgb_matrix_set_color(LED_R8, RGB_RED);
- rgb_matrix_set_color(LED_MINS, RGB_OFFBLUE);
- rgb_matrix_set_color(LED_EQL, RGB_OFFBLUE);
-
- // Indicator for paddle game enabled in build
- #ifdef GAME_ENABLE
- rgb_matrix_set_color(LED_P, RGB_CHARTREUSE);
- #else
- rgb_matrix_set_color(LED_P, RGB_RED);
- #endif // GAME_ENABLE
-
- // System NumLock warning indicator RGB setup
- #ifdef INVERT_NUMLOCK_INDICATOR
- if (!led_state.num_lock) { // on if NUM lock is OFF to bring attention to overlay numpad not functional when enabled
- rgb_matrix_set_color(LED_N, RGB_ORANGE2);
- }
- #else
- if (led_state.num_lock) { // Normal, on if NUM lock is ON
- rgb_matrix_set_color(LED_N, RGB_ORANGE2);
- }
- #endif // INVERT_NUMLOCK_INDICATOR
-
- //Add RGB statuses for user.config toggles
- if (user_config.rgb_hilite_caps) {
- rgb_matrix_set_color(LED_1, RGB_GREEN);
- } else {
- rgb_matrix_set_color(LED_1, RGB_PURPLE);
- }
- if (user_config.rgb_hilite_numpad) {
- rgb_matrix_set_color(LED_2, RGB_GREEN);
- } else {
- rgb_matrix_set_color(LED_2, RGB_PURPLE);
- }
- if (user_config.esc_double_tap_to_baselyr) {
- rgb_matrix_set_color(LED_3, RGB_GREEN);
- } else {
- rgb_matrix_set_color(LED_3, RGB_PURPLE);
- }
- if (user_config.del_right_home_top) {
- rgb_matrix_set_color(LED_4, RGB_GREEN);
- } else {
- rgb_matrix_set_color(LED_4, RGB_PURPLE);
- }
- if (user_config.double_tap_shift_for_capslock) {
- rgb_matrix_set_color(LED_5, RGB_GREEN);
- } else {
- rgb_matrix_set_color(LED_5, RGB_PURPLE);
- }
- if (user_config.encoder_press_mute_or_media) {
- rgb_matrix_set_color(LED_6, RGB_GREEN);
- } else {
- rgb_matrix_set_color(LED_6, RGB_PURPLE);
- }
- if (user_config.ins_on_shft_bkspc_or_del) {
- rgb_matrix_set_color(LED_7, RGB_GREEN);
- } else {
- rgb_matrix_set_color(LED_7, RGB_PURPLE);
- }
- if (user_config.disable_space_mods) {
- rgb_matrix_set_color(LED_8, RGB_GREEN);
- } else {
- rgb_matrix_set_color(LED_8, RGB_PURPLE);
- }
- if (user_config.autocorrect) {
- rgb_matrix_set_color(LED_9, RGB_GREEN);
- } else {
- rgb_matrix_set_color(LED_9, RGB_PURPLE);
- }
-
- // Add RGB Timeout Indicator -- shows 0 to 139 using F row and num row; larger numbers using 16bit code
- uint16_t timeout_threshold = get_timeout_threshold();
- if (timeout_threshold <= 10) rgb_matrix_set_color(LED_LIST_FUNCROW[timeout_threshold], RGB_BLUE);
- else if (timeout_threshold < 140) {
- rgb_matrix_set_color(LED_LIST_FUNCROW[(timeout_threshold / 10)], RGB_CYAN);
- rgb_matrix_set_color(LED_LIST_FUNCROW[(timeout_threshold % 10)], RGB_BLUE);
- } else { // >= 140 minutes, just show these 3 lights
- rgb_matrix_set_color(LED_LIST_FUNCROW[10], RGB_CYAN);
- rgb_matrix_set_color(LED_LIST_FUNCROW[11], RGB_CYAN);
- rgb_matrix_set_color(LED_LIST_FUNCROW[12], RGB_CYAN);
- }
- break;
-
- // Numpad & Mouse Keys overlay RGB
- case _NUMPADMOUSE:
- #ifdef INVERT_NUMLOCK_INDICATOR
- if (!led_state.num_lock) { // on if NUM lock is OFF to bring attention to overlay numpad not functional when enabled
- rgb_matrix_set_color(LED_N, RGB_ORANGE2);
- }
- #else
- if (led_state.num_lock) { // Normal, on if NUM lock is ON
- rgb_matrix_set_color(LED_N, RGB_ORANGE2);
- }
- #endif // INVERT_NUMLOCK_INDICATOR
- if (user_config.rgb_hilite_numpad) {
- for (uint8_t i = 0; i < ARRAYSIZE(LED_LIST_NUMPAD); i++) {
- rgb_matrix_set_color(LED_LIST_NUMPAD[i], RGB_OFFBLUE);
- }
- rgb_matrix_set_color(LED_L5, RGB_OFFBLUE);
- rgb_matrix_set_color(LED_L6, RGB_OFFBLUE);
- rgb_matrix_set_color(LED_CAPS, RGB_OFFBLUE);
- rgb_matrix_set_color(LED_UP, RGB_CHARTREUSE);
- rgb_matrix_set_color(LED_DOWN, RGB_CHARTREUSE);
- rgb_matrix_set_color(LED_LEFT, RGB_CHARTREUSE);
- rgb_matrix_set_color(LED_RIGHT, RGB_CHARTREUSE);
- rgb_matrix_set_color(LED_RCTL, RGB_CHARTREUSE);
- rgb_matrix_set_color(LED_RSFT, RGB_CHARTREUSE);
- rgb_matrix_set_color(LED_END, RGB_CHARTREUSE);
- rgb_matrix_set_color(LED_PGUP, RGB_CHARTREUSE);
- rgb_matrix_set_color(LED_PGDN, RGB_CHARTREUSE);
- } else {
- rgb_matrix_set_color(LED_L5, RGB_OFFBLUE);
- rgb_matrix_set_color(LED_L6, RGB_OFFBLUE);
- rgb_matrix_set_color(LED_CAPS, RGB_OFFBLUE);
- }
- break;
-
- // MOUSEKEYS mode RGB
- case _MOUSEKEY:
- rgb_matrix_set_color(LED_UP, RGB_CHARTREUSE);
- rgb_matrix_set_color(LED_DOWN, RGB_CHARTREUSE);
- rgb_matrix_set_color(LED_LEFT, RGB_CHARTREUSE);
- rgb_matrix_set_color(LED_RIGHT, RGB_CHARTREUSE);
- rgb_matrix_set_color(LED_RCTL, RGB_CYAN);
- rgb_matrix_set_color(LED_RSFT, RGB_CYAN);
- rgb_matrix_set_color(LED_END, RGB_CYAN);
- rgb_matrix_set_color(LED_PGUP, RGB_OFFBLUE);
- rgb_matrix_set_color(LED_PGDN, RGB_OFFBLUE);
- break;
-
- // Colemak layer RGB
- #ifdef COLEMAK_LAYER_ENABLE
- case _COLEMAK:
- for (uint8_t i = 0; i < ARRAYSIZE(LED_SIDE_RIGHT); i++) {
- rgb_matrix_set_color(LED_SIDE_RIGHT[i], RGB_MAGENTA);
- rgb_matrix_set_color(LED_SIDE_LEFT[i], RGB_MAGENTA);
- }
- break;
- #endif
-
- // Paddle game logic
- #ifdef GAME_ENABLE
- case _GAME:
- if (!game_start) {
- srand((unsigned int) timer_read());
-
- // Store user light settings
- last_hsv = rgb_matrix_get_hsv();
- rgb_matrix_sethsv_noeeprom(0, 0, 0);
-
- paddle_pos_full = 8;
- paddle_lives = 4;
- bounce_count = 0;
- level_number = 0;
- damage_count = 0;
-
- init_ball(0);
- ball[1].on = false;
- ball_timer = timer_read();
-
- game_start = true;
- }
-
- // Set level indicator
- if (level_number < 12) {
- rgb_matrix_set_color(GAME_R0[level_number], RGB_BLUE);
- }
-
- // Set life bar
- for (uint8_t i = 0; i < paddle_lives; i++) {
- rgb_matrix_set_color(GAME_LIVES[i], RGB_GREEN);
- }
-
- uint8_t paddle_pos = paddle_pos_full >> 1;
-
- if (damage_count > 0) {
- // Flash paddle when receiving damage
- if (timer_elapsed(damage_timer) > 500) {
- --damage_count;
- damage_timer = timer_read();
- }
- if ((damage_count & 1) == 0) {
- for (uint8_t i = 0; i < 3; i++) {
- rgb_matrix_set_color(GAME_PADDLE[paddle_pos + i], RGB_RED);
- }
- }
- if (damage_count == 0) {
- ball_timer = timer_read();
- }
-
- } else if (paddle_lives == 0) {
- // Game over
- for (uint8_t i = 0; i < ARRAY_SIZE(LED_GAME_OVER); i++) {
- rgb_matrix_set_color(LED_GAME_OVER[i], RGB_RED);
- }
-
- } else if (level_number >= 12) {
- // You win
- if (rgb_value.r == 0xff && rgb_value.g < 0xff) {
- if (rgb_value.b > 0) {
- --rgb_value.b;
- } else {
- ++rgb_value.g;
- }
- } else if (rgb_value.g == 0xff && rgb_value.b < 0xff) {
- if (rgb_value.r > 0) {
- --rgb_value.r;
- } else {
- ++rgb_value.b;
- }
- } else if (rgb_value.b == 0xff && rgb_value.r < 0xff) {
- if (rgb_value.g > 0) {
- --rgb_value.g;
- } else {
- ++rgb_value.r;
- }
- }
-
- for (uint8_t i = 0; i < 3; i++) {
- rgb_matrix_set_color(GAME_PADDLE[paddle_pos + i], rgb_value.r, rgb_value.g, rgb_value.b);
- }
- rgb_matrix_set_color(GAME_SMILE1[paddle_pos], rgb_value.r, rgb_value.g, rgb_value.b);
- rgb_matrix_set_color(GAME_SMILE1[paddle_pos + 3], rgb_value.r, rgb_value.g, rgb_value.b);
- rgb_matrix_set_color(GAME_SMILE2[paddle_pos], rgb_value.r, rgb_value.g, rgb_value.b);
- rgb_matrix_set_color(GAME_SMILE2[paddle_pos + 3], rgb_value.r, rgb_value.g, rgb_value.b);
-
- } else {
- // normal game loop
-
- // Set paddle position
- for (uint8_t i = 0; i < 3; i++) {
- rgb_matrix_set_color(GAME_PADDLE[paddle_pos + i], RGB_GREEN);
- }
-
- // Ball movement logic happens at intervals
- if (timer_elapsed(ball_timer) > GAME_TIMER[level_number]) {
- for (int i = 0; i < 2; ++i) {
- if (ball[i].on) {
- // Ball movement
- if (ball[i].up) {
- if (ball[i].y > 0) {
- --ball[i].y;
- if (!ball[i].left) ++ball[i].x;
- } else {
- // Count reflections. If > 10, increase level
- ++bounce_count;
- if (bounce_count >= 10) {
- bounce_count = 0;
- ++level_number;
- }
- ball[i].on = false;
- }
- } else {
- ++ball[i].y;
- if (ball[i].left) --ball[i].x;
- if (ball[i].y > 4) {
- // Remove a life if ball isn't returned and isn't enemy
- if (!ball[i].enemy) {
- hurt_paddle();
- i = 2;
- } else {
- ball[i].on = false;
- }
- }
- }
- }
- }
- if (ball[0].y == 4 && !ball[1].on) {
- init_ball(1);
- }
- if (ball[1].y == 4 && !ball[0].on) {
- init_ball(0);
- }
- if (!ball[0].on && !ball[1].on) {
- init_ball(0);
- }
- ball_timer = timer_read();
- }
-
- // Other ball stuff
- for (int i = 0; i < 2; ++i) {
- if (ball[i].on) {
- // Ball deflection logic
- if (!ball[i].up && ball[i].y == 4 && (ball[i].x == paddle_pos || ball[i].x == paddle_pos - 1 || ball[i].x == paddle_pos + 1)) {
- if (!ball[i].enemy) {
- --ball[i].y;
- if (!ball[i].left) {
- ++ball[i].x;
- }
- ball[i].up = true;
- } else {
- hurt_paddle();
- i = 2;
- }
- }
-
- // Ball display
- switch (ball[i].y) {
- case 0:
- if (ball[i].enemy) {
- rgb_matrix_set_color(GAME_R0[ball[i].x], RGB_RED);
- } else {
- rgb_matrix_set_color(GAME_R0[ball[i].x], RGB_WHITE);
- }
- break;
-
- case 1:
- if (ball[i].enemy) {
- rgb_matrix_set_color(GAME_R1[ball[i].x], RGB_RED);
- } else {
- rgb_matrix_set_color(GAME_R1[ball[i].x], RGB_WHITE);
- }
- break;
-
- case 2:
- if (ball[i].enemy) {
- rgb_matrix_set_color(GAME_R2[ball[i].x], RGB_RED);
- } else {
- rgb_matrix_set_color(GAME_R2[ball[i].x], RGB_WHITE);
- }
- break;
-
- case 3:
- if (ball[i].enemy) {
- rgb_matrix_set_color(GAME_R3[ball[i].x], RGB_RED);
- } else {
- rgb_matrix_set_color(GAME_R3[ball[i].x], RGB_WHITE);
- }
- break;
-
- case 4:
- if (ball[i].enemy) {
- rgb_matrix_set_color(GAME_R4[ball[i].x], RGB_RED);
- } else {
- rgb_matrix_set_color(GAME_R4[ball[i].x], RGB_WHITE);
- }
- break;
- }
- }
- }
- }
- break;
- #endif //GAME_ENABLE
- default:
- #ifdef GAME_ENABLE
- if (game_start) {
- // Reset lighting settings
- game_start = false;
- rgb_matrix_sethsv_noeeprom(last_hsv.h, last_hsv.s, last_hsv.v);
- }
- #endif //GAME_ENABLE
- break;
- }
- return false;
-}
-#endif
-
-void keyboard_post_init_keymap(void) {
- // keyboard_post_init_user() moved to userspace
- #ifdef RGB_MATRIX_ENABLE
- activate_rgb_nightmode(false); // Set to true if you want to startup in nightmode, otherwise use Fn + Z to toggle
- #endif
-}
diff --git a/keyboards/gmmk/pro/rev1/ansi/keymaps/gourdo1/paddlegame.h b/keyboards/gmmk/pro/rev1/ansi/keymaps/gourdo1/paddlegame.h
deleted file mode 100644
index 3d33975cfe..0000000000
--- a/keyboards/gmmk/pro/rev1/ansi/keymaps/gourdo1/paddlegame.h
+++ /dev/null
@@ -1,48 +0,0 @@
-/* Copyright 2021 Glorious, LLC <salman@pcgamingrace.com>
- Copyright 2021 Tomas Guinan
-
-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/>.
-*/
-
-#ifdef GAME_ENABLE
-const uint16_t GAME_TIMER[] = {
- 400, 350, 300, 250, 400, 350, 300, 250, 225, 200, 175, 150
-};
-
-bool game_start = false;
-HSV last_hsv;
-static uint8_t paddle_pos_full;
-static uint8_t paddle_lives;
-static uint8_t level_number;
-static uint8_t bounce_count;
-static uint8_t damage_count;
-static uint16_t damage_timer;
-static uint16_t ball_timer;
-
-struct BallStruct
-{
- uint8_t x;
- uint8_t y;
- bool on;
- bool up;
- bool left;
- bool enemy;
-};
-
-struct BallStruct ball[2];
-
-void init_ball(uint8_t i);
-void hurt_paddle(void);
-
-#endif //GAME_ENABLE \ No newline at end of file
diff --git a/keyboards/gmmk/pro/rev1/ansi/keymaps/gourdo1/readme.md b/keyboards/gmmk/pro/rev1/ansi/keymaps/gourdo1/readme.md
deleted file mode 100644
index aebccf6d14..0000000000
--- a/keyboards/gmmk/pro/rev1/ansi/keymaps/gourdo1/readme.md
+++ /dev/null
@@ -1,124 +0,0 @@
-# [gourdo1's](mailto:gourdo1@outlook.com) GMMK Pro Keyboard Layouts
-
-These Windows-centric layouts are based on Jonavin's GMMK Pro [layout](https://github.com/qmk/qmk_firmware/tree/master/keyboards/gmmk/pro/rev1/ansi/keymaps/jonavin) with many additions, fixes, a revamped keymap, persistent user customizations, updated layers, Pascal Getreuer's [autocorrect](https://getreuer.info/posts/keyboards/autocorrection/), Tomas Guinan's [paddle game](https://github.com/qmk/qmk_firmware/tree/master/keyboards/gmmk/pro/rev1/ansi/keymaps/paddlegame) and expanded RGB controls and effects.
-
-![image](https://raw.githubusercontent.com/gourdo1/media/main/susuwatari.jpg)
-
-* Up-to-date [Changelog](https://github.com/gourdo1/gmmkpro-media/blob/main/changelog.md)
-* Latest [ANSI firmware](https://github.com/gourdo1/gmmkpro-media/raw/main/gmmk_pro_rev1_ansi_gourdo1.bin) download. (Flash with [QMK Toolbox](https://github.com/qmk/qmk_toolbox/releases))
-* Latest [ISO firmware](https://github.com/gourdo1/gmmkpro-media/raw/main/gmmk_pro_rev1_iso_gourdo1.bin) download. (Flash with [QMK Toolbox](https://github.com/qmk/qmk_toolbox/releases))
-* Printable Keyboard [Cheatsheet](https://github.com/gourdo1/gmmkpro-media/raw/main/GMMK_Pro_Cheatsheet.pdf)
-
-## Features
-
-### Core Functionality
-
-* Support for both [ANSI](https://keebnews.com/ansi-vs-iso/) and [ISO](https://keebnews.com/ansi-vs-iso/) keyboard layouts.
-* Quick & Easy Customization: Open a text editor and hit [FN]` (tilde on ANSI; the key left of '1' on ISO layouts) to view toggle-able settings.
-* [VIA](https://www.caniusevia.com/) support enabled.
-* AutoCorrection: Pascal Getreuer's AutoCorrect code incorporated with 400 word dictionary on words > 4 characters.
-* Most [default Glorious shortcuts](https://cdn.shopify.com/s/files/1/0549/2681/files/GMMK_Pro_User_Guide.pdf) enabled
-* [N-key Rollover](https://en.wikipedia.org/wiki/Rollover_\(keyboard\)#n-key_rollover) (NKRO) -- toggled with [FN]R
-* 1000Hz polling rate with 5ms debounce time for quick response in games.
-* Mouse Keys! Don't want to move your hands off the keyboard or you didn't bring it with you? Use cursor keys to move the mouse.
-* Overlay numpad on 789-UIOP-JKL;-M,. & Space-bar mapped to Enter key for rapid number entry.
-* Gaming mode ([FN]Win-key) locks out Win-key and double-tap Shift Capslock; Also RGB highlights WSAD and nearby gaming keys.
-* Caps Word enabled: To capitalize the next word only, press and release left and right shift at the same time.
-* Multi-monitor app moving shortcuts: [FN] ],[ (square brackets) to move current app window to next monitor.
-* Capslock toggled by double tap of Left Shift key or FN + Capslock (RGB green highlighted).
-* Paddle game accessible via [FN]P. Hit [FN]P again or double tap [ESC] to exit.
-* Single-handed shortcut for Ctrl-Alt-Delete: [FN]/
-* Single-handed shortcut for WinKey-L (lock Windows): [FN]L
-* Domain shortcuts: [FN]. for .com, [FN]O for outlook.com, [FN]Y for yahoo.com, [FN]H for hotmail.com, [FN]G for gmail.com.
-* [Bootloader mode](https://github.com/qmk/qmk_firmware/blob/master/docs/newbs_flashing.md) accessible via [FN]Backslash for ANSI and FN(key next to Left Shift) for ISO
-* PrtScrn, Scroll Lock, Pause/Break are top right on the keyboard: [FN]F11, [FN]F12, [FN]F13
-* [Colemak](https://colemak.com/) key layout support (Accessible via Left Shift + turn Encoder clockwise until side LEDs light up purple)
-* Double tap ESC any time to revert to base layer.
-* RGB backlight effects expanded to include framebuffer effects and reactive keypress modes.
-* RGB backlight now remembers last color & effect settings after power down.
-
-### Quick & Easy Customization
-* Below features can be toggled by holding [FN] and pressing the number corresponding to that feature. Changes are saved to EEPROM for persistence.
-* Print current settings by opening a text editor and pressing [FN]~ (the key left of '1' on ISO layout keyboards)
-* Quick view current settings by holding [FN] and viewing RGB under number keys (green means ON, violet means OFF)
-
-#### Toggle-able Settings:
- 1. CapsLock RGB - Highlight under alpha keys
- 2. Numpad RGB - Highlight under numpad layer keys
- 3. ESC key - Double tap ESC key to go to base layer
- 4. Swap DEL and HOME - Default is DEL to the right of BKSPC & HOME is above BKSPC
- 5. Capslock function - Toggle between double tap LShift for CapsLock with Numpad on CapsLock key (default) and standard CapsLock
- 6. Encoder button - Default mutes volume; alternate plays/pauses media
- 7. Insert function - Toggle between SHIFT-BKSPC and SHIFT-DEL
- 8. Modded-Space override - Use standard Space in place of modded-Space functions
- 9. AutoCorrect - Internal (English) AutoCorrect; default is enabled
- 0. (ISO layouts only) CapsLock highlights extended alpha keys
-
-### Numpad + Mouse Keys (Capslock key)
-
-* Overlay numpad + [Mouse Keys](https://github.com/qmk/qmk_firmware/blob/master/docs/feature_mouse_keys.md) are accessed through Capslock key hold (temp) or double press (locked) with RGB highlighting
-* Numpad uses Space-bar as Enter for rapid number entry.
-* This layer disables much of the keyboard, except X/C/V for cut/copy/paste, WASD for cursor, Q/E for PgUp/PgDn, cursor keys become mouse keys, surrounding keys become mouse buttons and all number keys become numpad versions (so Alt char codes work regardless of which set you use)
-* FN and N keys light up orange if system numlock is off (inverted status), indicating numpad keys will not deliver expected output ([FN]N to toggle)
-* Double zero on comma key.
-* [Mouse Keys](https://github.com/qmk/qmk_firmware/blob/master/docs/feature_mouse_keys.md) allow you to use the mouse without taking your hand off the keyboard.
-* Mouse controls are: Cursor keys = move mouse; RShift = button1, End = button2, RCtrl = button3, PgUp/PgDn = Scroll wheel
-* Mouse Keys can also be accessed as a standalone layer by Left Shift-turning the Encoder until the cursor keys light up green
-
-### Encoder Functionality
-
-* Default knob turn changes volume; button press toggles mute
-* Exponential encoder: quick repeated volume up doubles increase; quick repeated volume down triples decrease.
-* FN + knob turn changes RGB idle timeout
-* FN + knob push puts PC to Sleep
-* holding Left Shift changes layers
-* holding Right Shift navigates page up/down
-* holding Left Ctrl navigates prev/next word
-* holding Right Ctrl changes RGB hue/color
-* holding Left Alt changes media prev/next track
-
-### Paddle Game
-
-* Based on [Tomas Guinan's excellent GMMK Pro paddle game](https://github.com/qmk/qmk_firmware/tree/master/keyboards/gmmk/pro/rev1/ansi/keymaps/paddlegame)
-* Paddle Game playable by pressing [FN]P (P lights up green in FN layer if game is enabled in firmware, otherwise it lights up red)
-* Use rotary encoder to control paddle
-* Contains 12 levels, indicated by blue LED on F-key row
-* Player has 4 lives, indicated by nav cluster
-* Deflect white balls while avoiding red ones
-* Use [FN]P, double tap ESC or otherwise change layer to quit game
-
-### Global RGB Controls
-
-* RGB backlight lighting effect: [FN]up/down
-* RGB backlight effect speed: [FN]left/right
-* RGB backlight hue cycle: [FN]A/D
-* RGB backlight brightness: [FN]W/S
-* RGB backlight saturation: [FN]Q/E
-* RGB backlight night mode toggle: [FN]Z (indicators still work)
-* RGB backlight timeout: [FN]Encoder or "-" and "=" (default 15 minutes)
- * F-key row indicator lights (cyan and blue) in FN layer display the current backlight timeout in minutes
-* [FN]Z to turn off RGB backlighting (indicator lights still work); press again to toggle
-* Left side RGB indicators in order from top: Scroll Lock (red), Numpad (blue), Capslock (green).
-
-### Advanced Controls
-
-* [FN]\ or [FN]B to get to bootloader mode (use key next to Left Shift on ISO)
-* [FN][ESC] to clear EEPROM
-* [FN]R to toggle N-key Rollover
-* [FN]N to toggle system numlock
-* [FN]/ is single-handed shortcut to Ctrl-Alt-Delete
-* [FN]L is single-handed shortcut to Win-L (lock Windows)
-* [FN][Encoder press] to sleep Windows PC
-
-## Layer Diagrams (ANSI)
-### Base layer
-![image](https://raw.githubusercontent.com/gourdo1/gmmkpro-media/main/base.png)
-
-### FN Layer
-![image](https://raw.githubusercontent.com/gourdo1/gmmkpro-media/main/fn1.png)
-
-### Layer 2 (Numpad)
-![image](https://raw.githubusercontent.com/gourdo1/gmmkpro-media/main/numpad.png)
-
-### COLEMAK layer
-![image](https://user-images.githubusercontent.com/71780717/131235050-980d2f54-2d23-4ae8-a83f-9fcdbe60d6cb.png)
diff --git a/keyboards/gmmk/pro/rev1/ansi/keymaps/gourdo1/rgb_matrix_map.h b/keyboards/gmmk/pro/rev1/ansi/keymaps/gourdo1/rgb_matrix_map.h
deleted file mode 100644
index f1609a4bb3..0000000000
--- a/keyboards/gmmk/pro/rev1/ansi/keymaps/gourdo1/rgb_matrix_map.h
+++ /dev/null
@@ -1,410 +0,0 @@
-/* Copyright 2021 Jonavin Eng @Jonavin
- Copyright 2022 gourdo1 <gourdo1@outlook.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/>.
-*/
-
-#ifdef RGB_MATRIX_ENABLE
-
-//Define variables for Game
-bool fn_active = false;
-RGB rgb_value;
-
-// Custom GMMK Pro-specific RGB color customizations (defaults found in quantum/color.h)
-#define RGB_GODSPEED 0x00, 0xE4, 0xFF // color for matching keycaps
-#define RGB_NAUTILUS 0x00, 0xA4, 0xA9 // Nautilus Font colors
-#define RGB_OFFBLUE 0x00, 0x80, 0xFF // new color: blue with a hint of green
-#define RGB_DKRED 0x28, 0x00, 0x00 // new color: dark red
-#define RGB_ORANGE2 0xFF, 0x28, 0x00 // fix: reduced green from 80 to 28
-#define RGB_PURPLE2 0x80, 0x00, 0xFF // fix: increased red from 7A to 80
-#define RGB_SPRINGGREEN2 0x00, 0xFF, 0x10 // fix: blue was 80, now 10
-#define RGB_YELLOW2 0xFF, 0xB0, 0x00 // fix: green was FF, now B0
-#define RGB_OFF RGB_BLACK
-
-// Added by gourdo1 for RGB testing
-// Red Green Blue Expected GMMK Pro result
-#define RGB_TEST1 0xFF, 0x00, 0x00 // Q - red good!
-#define RGB_TEST2 0x0F, 0xFF, 0x00 // W - green good!
-#define RGB_TEST3 0x00, 0x00, 0xFF // E - blue good!
-#define RGB_TEST4 0xFF, 0xB0, 0x00 // R - yellow slightly green heavy - reduced green LED by quite a bit
-#define RGB_TEST5 0x00, 0xFF, 0xFF // T - cyan good!
-#define RGB_TEST6 0xFF, 0x00, 0xFF // Y - magenta very slightly blue heavy?
-#define RGB_TEST7 0xFF, 0x28, 0x00 // U - orange very green heavy at default
-#define RGB_TEST8 0xFF, 0x00, 0x80 // I - pink good!
-#define RGB_TEST9 0x80, 0xFF, 0x00 // O - chartreus good!
-#define RGB_TEST10 0x00, 0xFF, 0x10 // P - springgrn fixed: was too blue because green LED has blue in it already
-#define RGB_TEST11 0x00, 0x80, 0xFF // A - grn blue good!
-#define RGB_TEST12 0x80, 0x00, 0xFF // S - purple good!
-
-// RGB LED locations
-enum led_location_map {
- LED_ESC, // 0, ESC, k13
- LED_GRV, // 1, ~, k16
- LED_TAB, // 2, Tab, k11
- LED_CAPS, // 3, Caps, k21
- LED_LSFT, // 4, Sh_L, k00
- LED_LCTL, // 5, Ct_L, k06
- LED_F1, // 6, F1, k26
- LED_1, // 7, 1, k17
- LED_Q, // 8, Q, k10
- LED_A, // 9, A, k12
- LED_Z, // 10, Z, k14
- LED_LWIN, // 11, Win_L, k90
- LED_F2, // 12, F2, k36
- LED_2, // 13, 2, k27
- LED_W, // 14, W, k20
- LED_S, // 15, S, k22
- LED_X, // 16, X, k24
- LED_LALT, // 17, Alt_L, k93
- LED_F3, // 18, F3, k31
- LED_3, // 19, 3, k37
- LED_E, // 20, E, k30
- LED_D, // 21, D, k32
- LED_C, // 22, C, k34
- LED_F4, // 23, F4, k33
- LED_4, // 24, 4, k47
- LED_R, // 25, R, k40
- LED_F, // 26, F, k42
- LED_V, // 27, V, k44
- LED_F5, // 28, F5, k07
- LED_5, // 29, 5, k46
- LED_T, // 30, T, k41
- LED_G, // 31, G, k43
- LED_B, // 32, B, k45
- LED_SPC, // 33, SPACE, k94
- LED_F6, // 34, F6, k63
- LED_6, // 35, 6, k56
- LED_Y, // 36, Y, k51
- LED_H, // 37, H, k53
- LED_N, // 38, N, k55
- LED_F7, // 39, F7, k71
- LED_7, // 40, 7, k57
- LED_U, // 41, U, k50
- LED_J, // 42, J, k52
- LED_M, // 43, M, k54
- LED_F8, // 44, F8, k76
- LED_8, // 45, 8, k67
- LED_I, // 46, I, k60
- LED_K, // 47, K, k62
- LED_COMM, // 48, ,, k64
- LED_RALT, // 49, Alt_R, k95
- LED_F9, // 50, F9, ka6
- LED_9, // 51, 9, k77
- LED_O, // 52, O, k70
- LED_L, // 53, L, k72
- LED_DOT, // 54, ., k74
- LED_FN, // 55, FN, k92
- LED_F10, // 56, F10, ka7
- LED_0, // 57, 0, k87
- LED_P, // 58, P, k80
- LED_SCLN, // 59, ;, k82
- LED_SLSH, // 60, ?, k85
- LED_F11, // 61, F11, ka3
- LED_MINS, // 62, -, k86
- LED_LBRC, // 63, [, k81
- LED_QUOT, // 64, ", k83
- LED_RCTL, // 65, Ct_R, k04
- LED_F12, // 66, F12, ka5
- LED_L1, // 67, LED, l01
- LED_R1, // 68, LED, l11
- LED_INS, // 69, Prt, k97 -- remapped to INS
- LED_L2, // 70, LED, l02
- LED_R2, // 71, LED, l12
- LED_DEL, // 72, Del, k65
- LED_L3, // 73, LED, l03
- LED_R3, // 74, LED, l13
- LED_PGUP, // 75, PgUp, k15
- LED_L4, // 76, LED, l04
- LED_R4, // 77, LED, l14
- LED_EQL, // 78, =, k66
- LED_RIGHT, // 79, Right, k05
- LED_L5, // 80, LED, l05
- LED_R5, // 81, LED, l15
- LED_END, // 82, End, k75
- LED_L6, // 83, LED, l06
- LED_R6, // 84, LED, l16
- LED_BSPC, // 85, BSpc, ka1
- LED_PGDN, // 86, PgDn, k25
- LED_L7, // 87, LED, l07
- LED_R7, // 88, LED, l17
- LED_RBRC, // 89, ], k61
- LED_RSFT, // 90, Sh_R, k91
- LED_L8, // 91, LED, l08
- LED_R8, // 92, LED, l18
- LED_BSLS, // 93, \, ka2
- LED_UP, // 94, Up, k35
- LED_LEFT, // 95, Left, k03
- LED_ENT, // 96, Enter, ka4
- LED_DOWN // 97, Down, k73
-};
-
-const uint8_t LED_LIST_WASD[] = {
- LED_W,
- LED_A,
- LED_S,
- LED_D
-};
-
-const uint8_t LED_LIST_ARROWS[] = {
- LED_LEFT,
- LED_RIGHT,
- LED_UP,
- LED_DOWN
-};
-
-const uint8_t LED_LIST_FUNCROW[] = {
- LED_ESC,
- LED_F1,
- LED_F2,
- LED_F3,
- LED_F4,
- LED_F5,
- LED_F6,
- LED_F7,
- LED_F8,
- LED_F9,
- LED_F10,
- LED_F11,
- LED_F12,
- LED_INS
-};
-
-const uint8_t LED_LIST_NUMROW[] = {
- LED_GRV,
- LED_1,
- LED_2,
- LED_3,
- LED_4,
- LED_5,
- LED_6,
- LED_7,
- LED_8,
- LED_9,
- LED_0,
- LED_MINS,
- LED_EQL,
- LED_BSPC,
- LED_DEL
-};
-
-const uint8_t LED_LIST_LETTERS[] = {
-/* LED_1,
- LED_2,
- LED_3,
- LED_4,
- LED_5,
- LED_6,
- LED_7,
- LED_8,
- LED_9,
- LED_0, */
- LED_Q,
- LED_W,
- LED_E,
- LED_R,
- LED_T,
- LED_Y,
- LED_U,
- LED_I,
- LED_O,
- LED_P,
- LED_A,
- LED_S,
- LED_D,
- LED_F,
- LED_G,
- LED_H,
- LED_J,
- LED_K,
- LED_L,
- LED_Z,
- LED_X,
- LED_C,
- LED_V,
- LED_B,
- LED_N,
- LED_M
-};
-
-const uint8_t LED_LIST_NUMPAD[] = {
- LED_1,
- LED_2,
- LED_3,
- LED_4,
- LED_5,
- LED_6,
- LED_7,
- LED_8,
- LED_9,
- LED_0,
- LED_MINS,
- LED_EQL,
- LED_U,
- LED_I,
- LED_O,
- LED_P,
- LED_J,
- LED_K,
- LED_L,
- LED_SCLN,
- LED_ENT,
- LED_M,
- LED_COMM,
- LED_DOT,
- LED_SLSH,
- LED_END,
- LED_RIGHT
-};
-
-const uint8_t LED_SIDE_LEFT[] = {
- LED_L1,
- LED_L2,
- LED_L3,
- LED_L4,
- LED_L5,
- LED_L6,
- LED_L7,
- LED_L8
-};
-
-const uint8_t LED_SIDE_RIGHT[] = {
- LED_R1,
- LED_R2,
- LED_R3,
- LED_R4,
- LED_R5,
- LED_R6,
- LED_R7,
- LED_R8
-};
-
-#ifdef GAME_ENABLE
-// Game LED rules
-const uint8_t GAME_LIVES[] = {
- LED_DEL,
- LED_PGUP,
- LED_PGDN,
- LED_END
-};
-const uint8_t GAME_PADDLE[] = {
- LED_Z,
- LED_X,
- LED_C,
- LED_V,
- LED_B,
- LED_N,
- LED_M,
- LED_COMM,
- LED_DOT,
- LED_SLSH
-};
-const uint8_t GAME_SMILE1[] = {
- LED_A,
- LED_S,
- LED_D,
- LED_F,
- LED_G,
- LED_H,
- LED_J,
- LED_K,
- LED_L,
- LED_SCLN,
- LED_QUOT
-};
-const uint8_t GAME_SMILE2[] = {
- LED_2,
- LED_3,
- LED_4,
- LED_5,
- LED_6,
- LED_7,
- LED_8,
- LED_9,
- LED_0,
- LED_MINS,
- LED_EQL
-};
-const uint8_t GAME_R4[] = {
- LED_X,
- LED_C,
- LED_V,
- LED_B,
- LED_N,
- LED_M,
- LED_COMM,
- LED_DOT
-};
-const uint8_t GAME_R3[] = {
- LED_S,
- LED_D,
- LED_F,
- LED_G,
- LED_H,
- LED_J,
- LED_K,
- LED_L,
- LED_SCLN
-};
-const uint8_t GAME_R2[] = {
- LED_W,
- LED_E,
- LED_R,
- LED_T,
- LED_Y,
- LED_U,
- LED_I,
- LED_O,
- LED_P,
- LED_LBRC
-};
-const uint8_t GAME_R1[] = {
- LED_2,
- LED_3,
- LED_4,
- LED_5,
- LED_6,
- LED_7,
- LED_8,
- LED_9,
- LED_0,
- LED_MINS,
- LED_EQL
-};
-const uint8_t GAME_R0[] = {
- LED_F1,
- LED_F2,
- LED_F3,
- LED_F4,
- LED_F5,
- LED_F6,
- LED_F7,
- LED_F8,
- LED_F9,
- LED_F10,
- LED_F11,
- LED_F12
-};
-const uint8_t LED_GAME_OVER[] = {
- LED_5,
- LED_8,
- LED_F,
- LED_G,
- LED_H,
- LED_J,
- LED_C,
- LED_M
-};
-#endif //GAME_ENABLE
-
-#endif \ No newline at end of file
diff --git a/keyboards/gmmk/pro/rev1/ansi/keymaps/gourdo1/rules.mk b/keyboards/gmmk/pro/rev1/ansi/keymaps/gourdo1/rules.mk
deleted file mode 100644
index 3a6786af68..0000000000
--- a/keyboards/gmmk/pro/rev1/ansi/keymaps/gourdo1/rules.mk
+++ /dev/null
@@ -1,18 +0,0 @@
-LTO_ENABLE = yes # link time optimization -- achieves a smaller compiled size
-CONSOLE_ENABLE = no
-COMMAND_ENABLE = no
-BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite
-VIA_ENABLE = yes
-
-MOUSEKEY_ENABLE = yes
-TAP_DANCE_ENABLE = no
-CAPS_WORD_ENABLE = yes # Enable built-in Caps Word functionality
-IDLE_TIMEOUT_ENABLE = yes
-STARTUP_NUMLOCK_ON = yes
-ENCODER_DEFAULTACTIONS_ENABLE = no
-COLEMAK_LAYER_ENABLE = yes # Enable Colemak layer / set to no to disable
-INVERT_NUMLOCK_INDICATOR = yes
-GAME_ENABLE ?= yes # Enable Paddle Game / set to no to disable
-ifeq ($(strip $(GAME_ENABLE)), yes)
- OPT_DEFS += -DGAME_ENABLE
-endif
diff --git a/keyboards/gmmk/pro/rev1/ansi/keymaps/jonavin/config.h b/keyboards/gmmk/pro/rev1/ansi/keymaps/jonavin/config.h
deleted file mode 100644
index 52f82bd60e..0000000000
--- a/keyboards/gmmk/pro/rev1/ansi/keymaps/jonavin/config.h
+++ /dev/null
@@ -1,39 +0,0 @@
-/* Copyright 2021 Jonavin Eng
- *
- * 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 TAPPING_TOGGLE 2
-// TT set to two taps
-
-/* Handle GRAVESC combo keys */
-#define GRAVE_ESC_ALT_OVERRIDE
- //Always send Escape if Alt is pressed
-#define GRAVE_ESC_CTRL_OVERRIDE
- //Always send Escape if Control is pressed
-
-#define TAPPING_TERM 180
-
-#ifdef RGB_MATRIX_ENABLE
- #define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_SOLID_COLOR
- #define RGB_DISABLE_WHEN_USB_SUSPENDED
-#endif
-
-// add fifth layer for colemak -- set "COLEMAK_LAYER_ENABLE = yes" in rules.mk to enable
-#if defined COLEMAK_LAYER_ENABLE
- #define DYNAMIC_KEYMAP_LAYER_COUNT 5
- #define _COLEMAK 4
-#endif // COLEMAK_LAYER_ENABLE
diff --git a/keyboards/gmmk/pro/rev1/ansi/keymaps/jonavin/keymap.c b/keyboards/gmmk/pro/rev1/ansi/keymaps/jonavin/keymap.c
deleted file mode 100644
index 7cb2d9f6fe..0000000000
--- a/keyboards/gmmk/pro/rev1/ansi/keymaps/jonavin/keymap.c
+++ /dev/null
@@ -1,204 +0,0 @@
-/* Copyright 2021 Glorious, LLC <salman@pcgamingrace.com>
- Copyright 2021 Jonavin
-
-This program is free software: you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program. If not, see <http://www.gnu.org/licenses/>.
-*/
-
-#include QMK_KEYBOARD_H
-#include "rgb_matrix_map.h"
-#include "jonavin.h"
-
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
-// ESC F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 Ins Rotary(Mute)
-// ~ 1 2 3 4 5 6 7 8 9 0 - (=) BackSpc Del
-// Tab Q W E R T Y U I O P [ ] \ PgUp
-// Caps A S D F G H J K L ; " Enter PgDn
-// Sh_L Z X C V B N M , . ? Sh_R Up End
-// Ct_L Win_L Alt_L SPACE Alt_R FN Ct_R Left Down Right
-
-
- [_BASE] = 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_INS, KC_MUTE,
- 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_DEL,
- 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,
- TT(_LOWER), 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_LSFTCAPSWIN, 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
- ),
-
- [_FN1] = LAYOUT(
- _______, KC_MYCM, KC_WHOM, KC_CALC, KC_MSEL, KC_MPRV, KC_MNXT, KC_MPLY, KC_MSTP, KC_MUTE, KC_VOLD, KC_VOLU, _______, KC_CALC, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_TOG,
- _______, _______, RGB_VAI, _______, _______, _______, _______, KC_PSCR, KC_SCRL, KC_PAUS, _______, _______, _______, QK_BOOT, KC_HOME,
- KC_CAPS, _______, RGB_VAD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_END,
- _______, RGB_NITE,RGB_HUI, _______, _______, _______, KC_NUM, _______, RGB_TOD, RGB_TOI, _______, _______, RGB_MOD, _______,
- _______, KC_WINLCK, _______, _______, _______, _______, _______, RGB_SPD, RGB_RMOD, RGB_SPI
- ),
-
- [_LOWER] = LAYOUT(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, KC_P7, KC_P8, KC_P9, KC_P0, KC_PMNS, KC_PPLS, _______, _______,
- _______, KC_HOME, KC_UP, KC_END, KC_PGUP, _______, KC_TAB, KC_P4, KC_P5, KC_P6, KC_PDOT, _______, _______, _______, KC_HOME,
- _______, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, _______, _______, KC_P1, KC_P2, KC_P3, KC_NO, KC_PAST, KC_PENT, KC_END,
- _______, KC_NO, KC_DEL, KC_INS, KC_NO, KC_NO, KC_NO, KC_P0, KC_00, KC_PDOT, KC_PSLS, _______, RCTL(KC_PGUP), _______,
- _______, _______, _______, KC_BSPC, _______, _______, _______, RCTL(KC_LEFT), RCTL(KC_PGDN), RCTL(KC_RIGHT)
- ),
-
- [_RAISE] = LAYOUT(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
- ),
-
-#ifdef COLEMAK_LAYER_ENABLE
- [_COLEMAK] = 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_INS, KC_MUTE,
- 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_DEL,
- 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,
- TT(_LOWER), 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_LSFTCAPSWIN, 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
- ),
-#endif // COLEMAK_LAYER_ENABLE
-};
-
-#if defined(ENCODER_ENABLE) && !defined(ENCODER_DEFAULTACTIONS_ENABLE) // Encoder Functionality when not using userspace defaults
- void encoder_action_rgbhue(bool clockwise) {
- if (clockwise)
- rgblight_increase_hue_noeeprom();
- else
- rgblight_decrease_hue_noeeprom();
- }
-
- bool encoder_update_user(uint8_t index, bool clockwise) {
- uint8_t mods_state = get_mods();
- if (mods_state & MOD_BIT(KC_LSFT) ) { // If you are holding L shift, encoder changes layers
- encoder_action_layerchange(clockwise);
- } else if (mods_state & MOD_BIT(KC_RSFT) ) { // If you are holding R shift, Page up/dn
- unregister_mods(MOD_BIT(KC_RSFT));
- encoder_action_navpage(clockwise);
- register_mods(MOD_BIT(KC_RSFT));
- } else if (mods_state & MOD_BIT(KC_LCTL)) { // if holding Left Ctrl, navigate next/prev word
- encoder_action_navword(clockwise);
- } else if (mods_state & MOD_BIT(KC_RCTL)) { // if holding Right Ctrl, change rgb hue/colour
- encoder_action_rgbhue(clockwise);
- } else if (mods_state & MOD_BIT(KC_LALT)) { // if holding Left Alt, change media next/prev track
- encoder_action_mediatrack(clockwise);
- } else {
- switch(get_highest_layer(layer_state)) {
- case _FN1:
- #ifdef IDLE_TIMEOUT_ENABLE
- timeout_update_threshold(clockwise);
- #endif
- break;
- default:
- encoder_action_volume(clockwise); // Otherwise it just changes volume
- break;
- }
- }
- //return true; //set to return false to counteract enabled encoder in pro.c
- return false;
- }
-#endif // ENCODER_ENABLE && !ENCODER_DEFAULTACTIONS_ENABLE
-
-#ifdef RGB_MATRIX_ENABLE
- // Capslock, Scroll lock and Numlock indicator on Left side lights.
- bool rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) {
- led_t led_state = host_keyboard_led_state();
- if (get_rgb_nightmode()) rgb_matrix_set_color_all(RGB_OFF);
- if (led_state.scroll_lock) {
- rgb_matrix_set_color(LED_L1, RGB_GREEN);
- rgb_matrix_set_color(LED_L2, RGB_GREEN);
- }
-
- #ifdef INVERT_NUMLOCK_INDICATOR
- if (!led_state.num_lock) { // on if NUM lock is OFF
- rgb_matrix_set_color(LED_L3, RGB_MAGENTA);
- rgb_matrix_set_color(LED_L4, RGB_MAGENTA);
- }
- #else
- if (led_state.num_lock) { // Normal, on if NUM lock is ON
- rgb_matrix_set_color(LED_L3, RGB_MAGENTA);
- rgb_matrix_set_color(LED_L4, RGB_MAGENTA);
- }
- #endif // INVERT_NUMLOCK_INDICATOR
-
- if (led_state.caps_lock) {
- rgb_matrix_set_color(LED_L5, RGB_RED);
- rgb_matrix_set_color(LED_L6, RGB_RED);
- rgb_matrix_set_color(LED_L7, RGB_RED);
- }
- if (keymap_config.no_gui) {
- rgb_matrix_set_color(LED_LWIN, RGB_RED); //light up Win key when disabled
- }
- switch(get_highest_layer(layer_state)){ // special handling per layer
- case _FN1: // on Fn layer select what the encoder does when pressed
- rgb_matrix_set_color(LED_R2, RGB_RED);
- rgb_matrix_set_color(LED_R3, RGB_RED);
- rgb_matrix_set_color(LED_R4, RGB_RED);
- rgb_matrix_set_color(LED_FN, RGB_RED); //FN key
-
- // Add RGB Timeout Indicator -- shows 0 to 139 using F row and num row; larger numbers using 16bit code
- uint16_t timeout_threshold = get_timeout_threshold();
- if (timeout_threshold <= 10) rgb_matrix_set_color(LED_LIST_FUNCROW[timeout_threshold], RGB_RED);
- else if (timeout_threshold < 140) {
- rgb_matrix_set_color(LED_LIST_FUNCROW[(timeout_threshold / 10)], RGB_RED);
- rgb_matrix_set_color(LED_LIST_NUMROW[(timeout_threshold % 10)], RGB_RED);
- } else { // >= 140 minutes, just show these 3 lights
- rgb_matrix_set_color(LED_LIST_NUMROW[10], RGB_RED);
- rgb_matrix_set_color(LED_LIST_NUMROW[11], RGB_RED);
- rgb_matrix_set_color(LED_LIST_NUMROW[12], RGB_RED);
- }
- break;
- case _LOWER:
- for (uint8_t i=0; i<ARRAYSIZE(LED_LIST_NUMPAD); i++) {
- rgb_matrix_set_color(LED_LIST_NUMPAD[i], RGB_MAGENTA);
- }
- rgb_matrix_set_color(LED_R4, RGB_MAGENTA);
- rgb_matrix_set_color(LED_R5, RGB_MAGENTA);
- rgb_matrix_set_color(LED_R6, RGB_MAGENTA);
- break;
- case _RAISE:
- rgb_matrix_set_color(LED_R6, RGB_GREEN);
- rgb_matrix_set_color(LED_R7, RGB_GREEN);
- rgb_matrix_set_color(LED_R8, RGB_GREEN);
- break;
-#ifdef COLEMAK_LAYER_ENABLE
- case _COLEMAK:
- for (uint8_t i=0; i<ARRAYSIZE(LED_SIDE_RIGHT); i++) {
- rgb_matrix_set_color(LED_SIDE_RIGHT[i], RGB_BLUE);
- }
- break;
-#endif
- default:
- break;
- }
- return false;
- }
-#endif
-
-
-void keyboard_post_init_keymap(void) {
- // keyboard_post_init_user() moved to userspace
- #ifdef RGB_MATRIX_ENABLE
- rgb_matrix_mode(RGB_MATRIX_SOLID_COLOR);
- rgb_matrix_set_color_all(RGB_NAUTILUS); // Default startup colour
- activate_rgb_nightmode(false); // Set to true if you want to startup in nightmode, otherwise use Fn + Z to toggle
- #endif
-}
diff --git a/keyboards/gmmk/pro/rev1/ansi/keymaps/jonavin/readme.md b/keyboards/gmmk/pro/rev1/ansi/keymaps/jonavin/readme.md
deleted file mode 100644
index 6e8d6ba8a5..0000000000
--- a/keyboards/gmmk/pro/rev1/ansi/keymaps/jonavin/readme.md
+++ /dev/null
@@ -1,65 +0,0 @@
-# jonavin's GMMK Pro layout
-
-- Add Fn layer keys from Glorious Core mapping that's missing in the default qmk mapping
-- Add PrtScr, Scroll Lock, Break, NumLock to Fn layer
-- Implement Win key lock using Fn+Win like in Glorious Core firmware
-- Layer 2 mod on Caps Lock with double-tap to switch to this layer, double tap to switch back
-- Layer 2 provides arrows on WASD and additional nav keys + right hand numpad with 00; an be used for Alt Code entry
-- Layer 2 left spacebar Backspace
-- add double tap of Left Shift to toggle Caps Lock
-- additional encoder functionality
- - FN Layer - change rgb idle timeout
- - holding Left shift, change layers
- - holding right shift, Navigate page up/down
- - holding Left Ctrl, navigate prev/next word
- - holding Right Ctrl, changes RGB hue/colour
- - holding Left Alt, change media prev/next track
- - default is change volume
-
-- LED/RGB Functionality
- - RGB idle timeout (default 5 minutes)
- - Can be changed in FN layer with < and > or encoder
- - setting to zero disables timeout
- - indicators in FN layer using RGB in FN and number rows to show the timeout in minutes
- - LED address location map as enum definition in rgb_matrix_map.h
- - LED group lists for arrows, numpad, F row, num row, left and right side LEDs
- - default startup in single mode with default colour
- - Capslock, Scroll Lock, and Num Lock (not set) indicator on left side LED
- - Layer indicator on right side LED
- - Fn key light up red when Fn layer activate
- - Win Key light up red when Win Lock mode enabled
- - Layer 2 activation lights up Numpad area
- - Fn + Z to turn off all RGB lights except rgb indicators; press again to toggle
-
-rules.mk OPTIONS - Active features from userspace
-STARTUP_NUMLOCK_ON = yes
- - turns on NUMLOCK by default
-
-ENCODER_DEFAULTACTIONS_ENABLE = yes
- - Enabled default encoder funtions
-
-TD_LSFT_CAPSLOCK_ENABLE = yes
- - This will enable double tap on Left Shift to toggle CAPSLOCK when using KC_LSFTCAPS
-
-IDLE_TIMEOUT_ENABLE = yes
- - Enables Timer functionality; for RGB idle timeouts that can be changed dynamically
-
-INVERT_NUMLOCK_INDICATOR
- - inverts the Num lock indicator, LED is on when num lokc is off
-
-COLEMAK_LAYER_ENABLE = yes
- - Enabled optional 5th layer for COLEMAK layout
- - Use Shift and encoder to enter 5th layer, right led indicator lights up BLUE
-
-## All layers diagram
-Default layer
-![image](https://user-images.githubusercontent.com/71780717/124177658-82324880-da7e-11eb-9421-b69100131062.png)
-
-Fn Layer
-![image](https://user-images.githubusercontent.com/71780717/131255937-06c9691b-835f-4c94-93e6-6d1dc3de272b.png)
-
-Layer 2 (Caps Lock Mod)
-![image](https://user-images.githubusercontent.com/71780717/124177683-8b231a00-da7e-11eb-9434-e2475f679a54.png)
-
-Optional COLEMAK layer
-![image](https://user-images.githubusercontent.com/71780717/131235050-980d2f54-2d23-4ae8-a83f-9fcdbe60d6cb.png)
diff --git a/keyboards/gmmk/pro/rev1/ansi/keymaps/jonavin/rgb_matrix_map.h b/keyboards/gmmk/pro/rev1/ansi/keymaps/jonavin/rgb_matrix_map.h
deleted file mode 100644
index 1ee5388905..0000000000
--- a/keyboards/gmmk/pro/rev1/ansi/keymaps/jonavin/rgb_matrix_map.h
+++ /dev/null
@@ -1,144 +0,0 @@
-/* Copyright 2021 Jonavin Eng
- *
- * 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/>.
- */
-
-#ifdef RGB_MATRIX_ENABLE
-
- // Custom RGB Colours
- #define RGB_GODSPEED 0x00, 0xE4, 0xFF // colour for matching keycaps
- #define RGB_NAUTILUS 0x00, 0xA4, 0xA9 // Naurilus Font colours
-
- // RGB LED locations
- enum led_location_map {
- LED_ESC, // 0, ESC, k13
- LED_GRV, // 1, ~, k16
- LEB_TAB, // 2, Tab, k11
- LED_CAPS, // 3, Caps, k21
- LED_LSFT, // 4, Sh_L, k00
- LED_LCTL, // 5, Ct_L, k06
- LED_F1, // 6, F1, k26
- LED_1, // 7, 1, k17
- LED_Q, // 8, Q, k10
- LED_A, // 9, A, k12
- LED_Z, // 10, Z, k14
- LED_LWIN, // 11, Win_L, k90
- LED_F2, // 12, F2, k36
- LED_2, // 13, 2, k27
- LED_W, // 14, W, k20
- LED_S, // 15, S, k22
- LED_X, // 16, X, k24
- LED_LALT, // 17, Alt_L, k93
- LED_F3, // 18, F3, k31
- LED_3, // 19, 3, k37
- LED_E, // 20, E, k30
- LED_D, // 21, D, k32
- LED_C, // 22, C, k34
- LED_F4, // 23, F4, k33
- LED_4, // 24, 4, k47
- LED_R, // 25, R, k40
- LED_F, // 26, F, k42
- LED_V, // 27, V, k44
- LED_F5, // 28, F5, k07
- LED_5, // 29, 5, k46
- LED_T, // 30, T, k41
- LED_G, // 31, G, k43
- LED_B, // 32, B, k45
- LED_SPC, // 33, SPACE, k94
- LED_F6, // 34, F6, k63
- LED_6, // 35, 6, k56
- LED_Y, // 36, Y, k51
- LED_H, // 37, H, k53
- LED_N, // 38, N, k55
- LED_F7, // 39, F7, k71
- LED_7, // 40, 7, k57
- LED_U, // 41, U, k50
- LED_J, // 42, J, k52
- LED_M, // 43, M, k54
- LED_F8, // 44, F8, k76
- LED_8, // 45, 8, k67
- LED_I, // 46, I, k60
- LED_K, // 47, K, k62
- LED_COMM, // 48, ,, k64
- LED_RALT, // 49, Alt_R, k95
- LED_F9, // 50, F9, ka6
- LED_9, // 51, 9, k77
- LED_O, // 52, O, k70
- LED_L, // 53, L, k72
- LED_DOT, // 54, ., k74
- LED_FN, // 55, FN, k92
- LED_F10, // 56, F10, ka7
- LED_0, // 57, 0, k87
- LED_P, // 58, P, k80
- LED_SCLN, // 59, ;, k82
- LED_SLSH, // 60, ?, k85
- LED_F11, // 61, F11, ka3
- LED_MINS, // 62, -, k86
- LED_LBRC, // 63, [, k81
- LED_QUOT, // 64, ", k83
- LED_RCTL, // 65, Ct_R, k04
- LED_F12, // 66, F12, ka5
- LED_L1, // 67, LED, l01
- LED_R1, // 68, LED, l11
- LED_INS, // 69, Prt, k97 -- remapped to INS
- LED_L2, // 70, LED, l02
- LED_R2, // 71, LED, l12
- LED_DEL, // 72, Del, k65
- LED_L3, // 73, LED, l03
- LED_R3, // 74, LED, l13
- LED_PGUP, // 75, PgUp, k15
- LED_L4, // 76, LED, l04
- LED_R4, // 77, LED, l14
- LED_EQL, // 78, =, k66
- LED_RIGHT, // 79, Right, k05
- LED_L5, // 80, LED, l05
- LED_R5, // 81, LED, l15
- LED_END, // 82, End, k75
- LED_L6, // 83, LED, l06
- LED_R6, // 84, LED, l16
- LED_BSPC, // 85, BSpc, ka1
- LED_PGDN, // 86, PgDn, k25
- LED_L7, // 87, LED, l07
- LED_R7, // 88, LED, l17
- LED_RBRC, // 89, ], k61
- LED_RSFT, // 90, Sh_R, k91
- LED_L8, // 91, LED, l08
- LED_R8, // 92, LED, l18
- LED_BSLS, // 93, \, ka2
- LED_UP, // 94, Up, k35
- LED_LEFT, // 95, Left, k03
- LED_ENT, // 96, Enter, ka4
- LED_DOWN // 97, Down, k73
- };
-
- const uint8_t LED_LIST_WASD[] = { LED_W, LED_A, LED_S, LED_D };
-
- const uint8_t LED_LIST_ARROWS[] = { LED_LEFT, LED_RIGHT, LED_UP, LED_DOWN };
-
- const uint8_t LED_LIST_FUNCROW[] = { LED_ESC, LED_F1, LED_F2, LED_F3, LED_F4, LED_F5, LED_F6, LED_F7, LED_F8, LED_F9, LED_F10, LED_F11, LED_F12, LED_INS};
-
- const uint8_t LED_LIST_NUMROW[] = { LED_GRV, LED_1, LED_2, LED_3, LED_4, LED_5, LED_6, LED_7, LED_8, LED_9, LED_0, LED_MINS, LED_EQL, LED_BSPC, LED_DEL};
-
- const uint8_t LED_LIST_NUMPAD[] = {
- LED_7, LED_8, LED_9,
- LED_U, LED_I, LED_O,
- LED_J, LED_K, LED_L,
- LED_M, LED_COMM, LED_DOT
- };
-
- const uint8_t LED_SIDE_LEFT[] = { LED_L1, LED_L2, LED_L3, LED_L4, LED_L5, LED_L6, LED_L7, LED_L8};
-
- const uint8_t LED_SIDE_RIGHT[] = { LED_R1, LED_R2, LED_R3, LED_R4, LED_R5, LED_R6, LED_R7, LED_R8};
-
-#endif
diff --git a/keyboards/gmmk/pro/rev1/ansi/keymaps/jonavin/rules.mk b/keyboards/gmmk/pro/rev1/ansi/keymaps/jonavin/rules.mk
deleted file mode 100644
index 1ffc2058a2..0000000000
--- a/keyboards/gmmk/pro/rev1/ansi/keymaps/jonavin/rules.mk
+++ /dev/null
@@ -1,12 +0,0 @@
-VIA_ENABLE = yes
-MOUSEKEY_ENABLE = no
-TAP_DANCE_ENABLE = yes
-BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite
-
-TD_LSFT_CAPSLOCK_ENABLE = yes
-IDLE_TIMEOUT_ENABLE = yes
-STARTUP_NUMLOCK_ON = yes
-ENCODER_DEFAULTACTIONS_ENABLE = no
-
-COLEMAK_LAYER_ENABLE = yes #Enable Colemak layer / set to no to disable
-INVERT_NUMLOCK_INDICATOR = yes
diff --git a/keyboards/gmmk/pro/rev1/ansi/keymaps/mattgauf/ansi.c b/keyboards/gmmk/pro/rev1/ansi/keymaps/mattgauf/ansi.c
deleted file mode 100644
index a7ab0c9cc3..0000000000
--- a/keyboards/gmmk/pro/rev1/ansi/keymaps/mattgauf/ansi.c
+++ /dev/null
@@ -1,241 +0,0 @@
-/* Copyright 2021 Gigahawk
- *
- * 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/>.
- */
-
-// clang-format off
-#include "ansi.h"
-
-#ifdef RGB_MATRIX_ENABLE
-led_config_t PROGMEM g_led_config = {{
- { 4, NO_LED, NO_LED, 95, 65, 79, 5, 28 },
- { 8, 2, 9, 0, 10, 75, 1, 7 },
- { 14, 3, 15, NO_LED, 16, 86, 6, 13 },
- { 20, 18, 21, 23, 22, 94, 12, 19 },
- { 25, 30, 26, 31, 27, 32, 29, 24 },
- { 41, 36, 42, 37, 43, 38, 35, 40 },
- { 46, 89, 47, 34, 48, 72, 78, 45 },
- { 52, 39, 53, 97, 54, 82, 44, 51 },
- { 58, 63, 59, 64, NO_LED, 60, 62, 57 },
- { 11, 90, 55, 17, 33, 49, NO_LED, 69 },
- { NO_LED, 85, 93, 61, 96, 66, 50, 56 }
-}, {
- {0, 0}, // 0, ESC, k13
- {0, 15}, // 1, ~, k16
- {4, 26}, // 2, Tab, k11
- {5, 38}, // 3, Caps, k21
- {9, 49}, // 4, Sh_L, k00
- {2, 61}, // 5, Ct_L, k06
- {18, 0}, // 6, F1, k26
- {14, 15}, // 7, 1, k17
- {22, 26}, // 8, Q, k10
- {25, 38}, // 9, A, k12
- {33, 49}, // 10, Z, k14
- {20, 61}, // 11, Win_L, k90
- {33, 0}, // 12, F2, k36
- {29, 15}, // 13, 2, k27
- {36, 26}, // 14, W, k20
- {40, 38}, // 15, S, k22
- {47, 49}, // 16, X, k24
- {38, 61}, // 17, Alt_L, k93
- {47, 0}, // 18, F3, k31
- {43, 15}, // 19, 3, k37
- {51, 26}, // 20, E, k30
- {54, 38}, // 21, D, k32
- {61, 49}, // 22, C, k34
- {61, 0}, // 23, F4, k33
- {58, 15}, // 24, 4, k47
- {65, 26}, // 25, R, k40
- {69, 38}, // 26, F, k42
- {76, 49}, // 27, V, k44
- {79, 0}, // 28, F5, k07
- {72, 15}, // 29, 5, k46
- {79, 26}, // 30, T, k41
- {83, 38}, // 31, G, k43
- {90, 49}, // 32, B, k45
- {92, 61}, // 33, SPACE, k94
- {94, 0}, // 34, F6, k63
- {87, 15}, // 35, 6, k56
- {94, 26}, // 36, Y, k51
- {98, 38}, // 37, H, k53
- {105, 49}, // 38, N, k55
- {108, 0}, // 39, F7, k71
- {101, 15}, // 40, 7, k57
- {108, 26}, // 41, U, k50
- {112, 38}, // 42, J, k52
- {119, 49}, // 43, M, k54
- {123, 0}, // 44, F8, k76
- {116, 15}, // 45, 8, k67
- {123, 26}, // 46, I, k60
- {126, 38}, // 47, K, k62
- {134, 49}, // 48, ,, k64
- {145, 61}, // 49, Alt_R, k95
- {141, 0}, // 50, F9, ka6
- {130, 15}, // 51, 9, k77
- {137, 26}, // 52, O, k70
- {141, 38}, // 53, L, k72
- {148, 49}, // 54, ., k74
- {159, 61}, // 55, FN, k92
- {155, 0}, // 56, F10, ka7
- {145, 15}, // 57, 0, k87
- {152, 26}, // 58, P, k80
- {155, 38}, // 59, ;, k82
- {163, 49}, // 60, ?, k85
- {170, 0}, // 61, F11, ka3
- {159, 15}, // 62, -, k86
- {166, 26}, // 63, [, k81
- {170, 38}, // 64, ", k83
- {173, 61}, // 65, Ct_R, k04
- {184, 0}, // 66, F12, ka5
- {0, 8}, // 67, LED, l01
- {224, 8}, // 68, LED, l11
- {202, 0}, // 69, Prt, k97
- {0, 15}, // 70, LED, l02
- {224, 15}, // 71, LED, l12
- {224, 15}, // 72, Del, k65
- {0, 21}, // 73, LED, l03
- {224, 21}, // 74, LED, l13
- {224, 26}, // 75, PgUp, k15
- {0, 28}, // 76, LED, l04
- {224, 28}, // 77, LED, l14
- {173, 15}, // 78, =, k66
- {220, 64}, // 79, Right, k05
- {0, 35}, // 80, LED, l05
- {224, 35}, // 81, LED, l15
- {224, 49}, // 82, End, k75
- {0, 42}, // 83, LED, l06
- {224, 42}, // 84, LED, l16
- {195, 15}, // 85, BSpc, ka1
- {224, 38}, // 86, PgDn, k25
- {0, 48}, // 87, LED, l07
- {224, 48}, // 88, LED, l17
- {181, 26}, // 89, ], k61
- {182, 49}, // 90, Sh_R, k91
- {0, 55}, // 91, LED, l08
- {224, 55}, // 92, LED, l18
- {199, 26}, // 93, \, ka2
- {206, 52}, // 94, Up, k35
- {191, 64}, // 95, Left, k03
- {193, 38}, // 96, Enter, ka4
- {206, 64} // 97, Down, k73
-}, {
- 4, 4, 4, 1, 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, 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, 2, 2, 4, 2, 2, 4, 2, 2,
- 4, 2, 2, 4, 4, 2, 2, 4, 2, 2, 4, 4, 2, 2, 4, 4, 2, 2, 4, 4, 4, 4, 4
-}};
-
-const aw_led g_aw_leds[RGB_MATRIX_LED_COUNT] = {
- {0, CS1_SW1, CS2_SW1, CS3_SW1}, // 0, ESC, k13
- {0, CS4_SW1, CS5_SW1, CS6_SW1}, // 1, ~, k16
- {0, CS7_SW1, CS8_SW1, CS9_SW1}, // 2, Tab, k11
- {0, CS10_SW1, CS11_SW1, CS12_SW1}, // 3, Caps, k21
- {0, CS13_SW1, CS14_SW1, CS15_SW1}, // 4, Sh_L, k00
- {0, CS16_SW1, CS17_SW1, CS18_SW1}, // 5, Ct_L, k06
- {0, CS1_SW2, CS2_SW2, CS3_SW2}, // 6, F1, k26
- {0, CS4_SW2, CS5_SW2, CS6_SW2}, // 7, 1, k17
- {0, CS7_SW2, CS8_SW2, CS9_SW2}, // 8, Q, k10
- {0, CS10_SW2, CS11_SW2, CS12_SW2}, // 9, A, k12
- {0, CS13_SW2, CS14_SW2, CS15_SW2}, // 10, Z, k14
- {0, CS16_SW2, CS17_SW2, CS18_SW2}, // 11, Win_L, k90
- {0, CS1_SW3, CS2_SW3, CS3_SW3}, // 12, F2, k36
- {0, CS4_SW3, CS5_SW3, CS6_SW3}, // 13, 2, k27
- {0, CS7_SW3, CS8_SW3, CS9_SW3}, // 14, W, k20
- {0, CS10_SW3, CS11_SW3, CS12_SW3}, // 15, S, k22
- {0, CS13_SW3, CS14_SW3, CS15_SW3}, // 16, X, k24
- {0, CS16_SW3, CS17_SW3, CS18_SW3}, // 17, Alt_L, k93
- {0, CS1_SW4, CS2_SW4, CS3_SW4}, // 18, F3, k31
- {0, CS4_SW4, CS5_SW4, CS6_SW4}, // 19, 3, k37
- {0, CS7_SW4, CS8_SW4, CS9_SW4}, // 20, E, k30
- {0, CS10_SW4, CS11_SW4, CS12_SW4}, // 21, D, k32
- {0, CS13_SW4, CS14_SW4, CS15_SW4}, // 22, C, k34
- {0, CS1_SW5, CS2_SW5, CS3_SW5}, // 23, F4, k33
- {0, CS4_SW5, CS5_SW5, CS6_SW5}, // 24, 4, k47
- {0, CS7_SW5, CS8_SW5, CS9_SW5}, // 25, R, k40
- {0, CS10_SW5, CS11_SW5, CS12_SW5}, // 26, F, k42
- {0, CS13_SW5, CS14_SW5, CS15_SW5}, // 27, V, k44
- {0, CS1_SW6, CS2_SW6, CS3_SW6}, // 28, F5, k07
- {0, CS4_SW6, CS5_SW6, CS6_SW6}, // 29, 5, k46
- {0, CS7_SW6, CS8_SW6, CS9_SW6}, // 30, T, k41
- {0, CS10_SW6, CS11_SW6, CS12_SW6}, // 31, G, k43
- {0, CS13_SW6, CS14_SW6, CS15_SW6}, // 32, B, k45
- {0, CS16_SW6, CS17_SW6, CS18_SW6}, // 33, SPACE, k94
- {0, CS1_SW7, CS2_SW7, CS3_SW7}, // 34, F6, k63
- {0, CS4_SW7, CS5_SW7, CS6_SW7}, // 35, 6, k56
- {0, CS7_SW7, CS8_SW7, CS9_SW7}, // 36, Y, k51
- {0, CS10_SW7, CS11_SW7, CS12_SW7}, // 37, H, k53
- {0, CS13_SW7, CS14_SW7, CS15_SW7}, // 38, N, k55
- {0, CS1_SW8, CS2_SW8, CS3_SW8}, // 39, F7, k71
- {0, CS4_SW8, CS5_SW8, CS6_SW8}, // 40, 7, k57
- {0, CS7_SW8, CS8_SW8, CS9_SW8}, // 41, U, k50
- {0, CS10_SW8, CS11_SW8, CS12_SW8}, // 42, J, k52
- {0, CS13_SW8, CS14_SW8, CS15_SW8}, // 43, M, k54
- {0, CS1_SW9, CS2_SW9, CS3_SW9}, // 44, F8, k76
- {0, CS4_SW9, CS5_SW9, CS6_SW9}, // 45, 8, k67
- {0, CS7_SW9, CS8_SW9, CS9_SW9}, // 46, I, k60
- {0, CS10_SW9, CS11_SW9, CS12_SW9}, // 47, K, k62
- {0, CS13_SW9, CS14_SW9, CS15_SW9}, // 48, ,, k64
- {0, CS16_SW9, CS17_SW9, CS18_SW9}, // 49, Alt_R, k95
- {0, CS1_SW10, CS2_SW10, CS3_SW10}, // 50, F9, ka6
- {0, CS4_SW10, CS5_SW10, CS6_SW10}, // 51, 9, k77
- {0, CS7_SW10, CS8_SW10, CS9_SW10}, // 52, O, k70
- {0, CS10_SW10, CS11_SW10, CS12_SW10}, // 53, L, k72
- {0, CS13_SW10, CS14_SW10, CS15_SW10}, // 54, ., k74
- {0, CS16_SW10, CS17_SW10, CS18_SW10}, // 55, FN, k92
- {0, CS1_SW11, CS2_SW11, CS3_SW11}, // 56, F10, ka7
- {0, CS4_SW11, CS5_SW11, CS6_SW11}, // 57, 0, k87
- {0, CS7_SW11, CS8_SW11, CS9_SW11}, // 58, P, k80
- {0, CS10_SW11, CS11_SW11, CS12_SW11}, // 59, ;, k82
- {0, CS13_SW11, CS14_SW11, CS15_SW11}, // 60, ?, k85
- {0, CS1_SW12, CS2_SW12, CS3_SW12}, // 61, F11, ka3
- {0, CS4_SW12, CS5_SW12, CS6_SW12}, // 62, -, k86
- {0, CS7_SW12, CS8_SW12, CS9_SW12}, // 63, [, k81
- {0, CS10_SW12, CS11_SW12, CS12_SW12}, // 64, ", k83
- {0, CS16_SW12, CS17_SW12, CS18_SW12}, // 65, Ct_R, k04
-
- {1, CS1_SW1, CS2_SW1, CS3_SW1}, // 66, F12, ka5
- {1, CS13_SW1, CS14_SW1, CS15_SW1}, // 67, LED, l01
- {1, CS16_SW1, CS17_SW1, CS18_SW1}, // 68, LED, l11
- {1, CS4_SW2, CS5_SW2, CS6_SW2}, // 69, Prt, k97
- {1, CS13_SW2, CS14_SW2, CS15_SW2}, // 70, LED, l02
- {1, CS16_SW2, CS17_SW2, CS18_SW2}, // 71, LED, l12
- {1, CS4_SW3, CS5_SW3, CS6_SW3}, // 72, Del, k65
- {1, CS13_SW3, CS14_SW3, CS15_SW3}, // 73, LED, l03
- {1, CS16_SW3, CS17_SW3, CS18_SW3}, // 74, LED, l13
- {1, CS4_SW4, CS5_SW4, CS6_SW4}, // 75, PgUp, k15
- {1, CS13_SW4, CS14_SW4, CS15_SW4}, // 76, LED, l04
- {1, CS16_SW4, CS17_SW4, CS18_SW4}, // 77, LED, l14
- {1, CS1_SW5, CS2_SW5, CS3_SW5}, // 78, =, k66
- {1, CS10_SW5, CS11_SW5, CS12_SW5}, // 79, Right, k05
- {1, CS13_SW5, CS14_SW5, CS15_SW5}, // 80, LED, l05
- {1, CS16_SW5, CS17_SW5, CS18_SW5}, // 81, LED, l15
- {1, CS4_SW6, CS5_SW6, CS6_SW6}, // 82, End, k75
- {1, CS13_SW6, CS14_SW6, CS15_SW6}, // 83, LED, l06
- {1, CS16_SW6, CS17_SW6, CS18_SW6}, // 84, LED, l16
- {1, CS1_SW7, CS2_SW7, CS3_SW7}, // 85, BSpc, ka1
- {1, CS4_SW7, CS5_SW7, CS6_SW7}, // 86, PgDn, k25
- {1, CS13_SW7, CS14_SW7, CS15_SW7}, // 87, LED, l07
- {1, CS16_SW7, CS17_SW7, CS18_SW7}, // 88, LED, l17
- {1, CS1_SW8, CS2_SW8, CS3_SW8}, // 89, ], k61
- {1, CS4_SW8, CS5_SW8, CS6_SW8}, // 90, Sh_R, k91
- {1, CS13_SW8, CS14_SW8, CS15_SW8}, // 91, LED, l08
- {1, CS16_SW8, CS17_SW8, CS18_SW8}, // 92, LED, l18
- {1, CS1_SW9, CS2_SW9, CS3_SW9}, // 93, \, ka2
- {1, CS4_SW9, CS5_SW9, CS6_SW9}, // 94, Up, k35
- {1, CS4_SW10, CS5_SW10, CS6_SW10}, // 95, Left, k03
- {1, CS1_SW11, CS2_SW11, CS3_SW11}, // 96, Enter, ka4
- {1, CS4_SW11, CS5_SW11, CS6_SW11}, // 97, Down, k73
-};
-// clang-format on
-#endif
diff --git a/keyboards/gmmk/pro/rev1/ansi/keymaps/mattgauf/config.h b/keyboards/gmmk/pro/rev1/ansi/keymaps/mattgauf/config.h
deleted file mode 100644
index 0a10e8c8cf..0000000000
--- a/keyboards/gmmk/pro/rev1/ansi/keymaps/mattgauf/config.h
+++ /dev/null
@@ -1,63 +0,0 @@
-/* Copyright 2021 Matt Gauf
- *
- * 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/>.
- */
-
-// clang-format off
-#pragma once
-
-/* Defaults */
-#define RAW_USAGE_PAGE 0x200
-#define RAW_USAGE_ID 0x40
-
-/* Board Features */
-#define DYNAMIC_MACRO_SIZE 512
-
-/* RGB Matrix Features */
-#define RGB_MATRIX_KEYPRESSES
-#define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_SOLID_COLOR
-#define RGB_DISABLE_WHEN_USB_SUSPENDED true
-
-/* RGB Matrix Framebuffer Config */
-// #define RGB_MATRIX_FRAMEBUFFER_EFFECTS
-// #define RGB_MATRIX_TYPING_HEATMAP_DECREASE_DELAY_MS 25
-
-/* RGB Matrix Disabled Effects */
-#define DISABLE_RGB_MATRIX_ALPHAS_MODS // Static dual hue, speed is hue for secondary hue
-#define DISABLE_RGB_MATRIX_BAND_PINWHEEL_SAT // Single hue 3 blade spinning pinwheel fades saturation
-#define DISABLE_RGB_MATRIX_BAND_PINWHEEL_VAL // Single hue 3 blade spinning pinwheel fades brightness
-#define DISABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL // Full dual gradients scrolling out to in
-#define DISABLE_RGB_MATRIX_CYCLE_PINWHEEL // Full gradient spinning pinwheel around center of keyboard
-#define DISABLE_RGB_MATRIX_DUAL_BEACON // Full gradient spinning around center of keyboard
-#define DISABLE_RGB_MATRIX_RAINBOW_BEACON // Full tighter gradient spinning around center of keyboard
-#define DISABLE_RGB_MATRIX_RAINBOW_PINWHEELS // Full dual gradients spinning two halfs of keyboard
-#define DISABLE_RGB_MATRIX_RAINDROPS // Randomly changes a single key's hue
-#define DISABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS // Randomly changes a single key's hue and saturation
-#define DISABLE_RGB_MATRIX_HUE_PENDULUM // Hue shifts up a slight ammount in a wave to the right, then back to the left
-#define DISABLE_RGB_MATRIX_HUE_WAVE // Hue shifts up a slight ammount and then back down in a wave to the right
-
-#if defined(RGB_MATRIX_FRAMEBUFFER_EFFECTS)
- #define DISABLE_RGB_MATRIX_DIGITAL_RAIN // That famous computer simulation
-#endif
-
-#if defined(RGB_MATRIX_KEYPRESSES) || defined(RGB_MATRIX_KEYRELEASES)
- #define DISABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE // Hue & value pulse near a single key hit then fades value out
- #define DISABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS // Hue & value pulse the same column and row of a single key hit then fades value out
- #define DISABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS // Hue & value pulse away on the same column and row of a single key hit then fades value out
- #define DISABLE_RGB_MATRIX_SPLASH // Full gradient & value pulse away from a single key hit then fades value out
- #define DISABLE_RGB_MATRIX_SOLID_SPLASH // Hue & value pulse away from a single key hit then fades value out
-#endif
-
-#define DISABLE_RGB_MATRIX_EFFECT_MAX
-// clang-format on
diff --git a/keyboards/gmmk/pro/rev1/ansi/keymaps/mattgauf/helpers.c b/keyboards/gmmk/pro/rev1/ansi/keymaps/mattgauf/helpers.c
deleted file mode 100644
index d30224636b..0000000000
--- a/keyboards/gmmk/pro/rev1/ansi/keymaps/mattgauf/helpers.c
+++ /dev/null
@@ -1,25 +0,0 @@
-/* Copyright 2021 Matt Gauf
- *
- * 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 "rgb_matrix.h"
-
-void rgb_matrix_set_color_flags(uint8_t red, uint8_t green, uint8_t blue, uint8_t flags) {
- for (uint8_t ii = 0; ii < RGB_MATRIX_LED_COUNT; ii++) {
- if (g_led_config.flags[ii] & flags) {
- rgb_matrix_set_color(ii, red, green, blue);
- }
- }
-}
diff --git a/keyboards/gmmk/pro/rev1/ansi/keymaps/mattgauf/keymap.c b/keyboards/gmmk/pro/rev1/ansi/keymaps/mattgauf/keymap.c
deleted file mode 100644
index ceddf81a77..0000000000
--- a/keyboards/gmmk/pro/rev1/ansi/keymaps/mattgauf/keymap.c
+++ /dev/null
@@ -1,222 +0,0 @@
-/* Copyright 2021 Matt Gauf
- *
- * 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/>.
- */
-
-// clang-format off
-#include QMK_KEYBOARD_H
-#include "keymap_helpers.h"
-
-
-enum custom_codes {
- SET_MP = RGB_M_P,
- SET_MB = RGB_M_B,
- SET_MR = RGB_M_R,
-
- MG_F17 = SAFE_RANGE,
- MG_F18,
- MG_F19
-};
-
-
-enum layer_names {
- _DEFAULT = 0,
- _EFFECTS,
- _UTILITY,
- _DFUMODE
-};
-
-
-// static uint8_t rgb_pin_fn_column[] = {PIN_DEL,PIN_PGUP,PIN_PGDN,PIN_END};
-// static uint8_t rgb_pin_left_underglow[] = {PIN_LED_L01,PIN_LED_L02,PIN_LED_L03,PIN_LED_L04,PIN_LED_L05,PIN_LED_L06,PIN_LED_L07,PIN_LED_L08};
-// static uint8_t rgb_pin_right_underglow[] = {PIN_LED_L11,PIN_LED_L12,PIN_LED_L13,PIN_LED_L14,PIN_LED_L15,PIN_LED_L16,PIN_LED_L17,PIN_LED_L18};
-
-
-#define MODS_SHIFT ((get_mods() | get_oneshot_mods()) & MOD_MASK_SHIFT)
-#define MODS_CTRL ((get_mods() | get_oneshot_mods()) & MOD_MASK_CTRL)
-#define MODS_ALT ((get_mods() | get_oneshot_mods()) & MOD_MASK_ALT)
-#define MODS_GUI ((get_mods() | get_oneshot_mods()) & MOD_MASK_GUI)
-
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [_DEFAULT] = 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, MG_F17, KC_MUTE,
- 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,
- KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_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_LALT, KC_LGUI, KC_SPC, KC_RGUI, KC_RALT, MO(_EFFECTS), KC_LEFT, KC_DOWN, KC_RGHT),
-
- [_EFFECTS] = LAYOUT(_______, KC_F13, KC_F14, KC_F15, KC_F16, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, MG_F18, _______,
- _______, SET_MP, SET_MB, SET_MR, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_MOD,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_RMOD,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_SPI,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_TOG, _______, RGB_SAI, RGB_SPD,
- _______, _______, _______, _______, TG(_UTILITY), MO(_DFUMODE), _______, RGB_HUD, RGB_SAD, RGB_HUI),
-
- [_UTILITY] = LAYOUT(_______, _______, _______, _______, _______, _______, _______, _______, _______, DM_PLY1, DM_PLY2, DM_REC1, DM_REC2, DM_RSTP, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______),
-
- [_DFUMODE] = LAYOUT(QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, MG_F19, DB_TOGG,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______),
-};
-// Runs constantly in the background, in a loop.
-bool rgb_matrix_indicators_user(void) {
- if (rgb_matrix_get_flags() & (LED_FLAG_KEYLIGHT | LED_FLAG_MODIFIER)) {
-
- if (IS_LAYER_ON(_UTILITY)) {
- rgb_matrix_set_color(PIN_F9, LEDGREE);
- rgb_matrix_set_color(PIN_F10, LEDGREE);
- rgb_matrix_set_color(PIN_F11, LED_RED);
- rgb_matrix_set_color(PIN_F12, LED_RED);
- rgb_matrix_set_color(PIN_PRINT, LEDTEAL);
- }
-
- switch (get_highest_layer(layer_state)) {
- case _DFUMODE:
- rgb_matrix_set_color_all(LED_OFF);
- rgb_matrix_set_color(PIN_ESC, LED_RED);
- rgb_matrix_set_color(PIN_PRINT, LEDORAN);
- return;
- case _EFFECTS:
- rgb_matrix_set_color(PIN_PRINT, LEDGREE);
- break;
- default:
- break;
- }
-
- if (host_keyboard_led_state().caps_lock) {
- rgb_matrix_set_color(PIN_CAPS, RGB_WHITE);
- }
-
- }
- return false;
-}
-
-
-// Called on start
-void dynamic_macro_record_start_user(int8_t direction) {
- dprint("-- Recording Started\n");
- layer_on(_UTILITY);
-}
-
-
-// Called on end
-void dynamic_macro_record_end_user(int8_t direction) {
- dprint("-- Recording Ended\n");
-}
-
-
-// Called on playback
-void dynamic_macro_play_user(int8_t direction) {
- dprint("-- Recording Playing\n");
-}
-
-
-// Runs on encoder event
-bool encoder_update_user(uint8_t index, bool clockwise) {
- uint8_t curr_mod = get_mods();
-
- if (IS_LAYER_ON(_EFFECTS)) {
- if (clockwise) {
- rgb_matrix_increase_val();
- } else {
- rgb_matrix_decrease_val();
- }
- } else {
- if (MODS_GUI) {
- if (MODS_GUI && MODS_SHIFT) {
- clear_mods();
- if (clockwise) {
- tap_code16(LSG(KC_Z));
- } else {
- tap_code16(LGUI(KC_Z));
- }
- set_mods(curr_mod);
- } else if (MODS_GUI && MODS_ALT) {
- clear_mods();
- if (clockwise) {
- tap_code(KC_RIGHT);
- } else {
- tap_code(KC_LEFT);
- }
- set_mods(curr_mod);
- } else {
- if (clockwise) {
- tap_code16(LGUI(KC_TAB));
- } else {
- tap_code16(LSG(KC_TAB));
- }
- }
- } else {
- if (clockwise) {
- tap_code(KC_VOLU);
- } else {
- tap_code(KC_VOLD);
- }
- }
- }
- //return true; //set to return false to counteract enabled encoder in pro.c
- return false;
-}
-
-
-// Runs on key event
-bool process_record_user(uint16_t keycode, keyrecord_t *record) {
- switch (keycode) {
- case MG_F17:
- if (record->event.pressed) {
- tap_code16(HYPR(KC_F17));
- }
- return false;
- case MG_F18:
- if (record->event.pressed) {
- tap_code16(HYPR(KC_F18));
- }
- return false;
- case MG_F19:
- if (record->event.pressed) {
- tap_code16(HYPR(KC_F19));
- }
- return false;
- case RGB_TOG:
- if (record->event.pressed) {
- switch (rgb_matrix_get_flags()) {
- case LED_FLAG_ALL:
- rgb_matrix_set_flags(LED_FLAG_NONE);
- break;
- case LED_FLAG_KEYLIGHT | LED_FLAG_MODIFIER:
- rgb_matrix_set_flags(LED_FLAG_ALL);
- break;
- case LED_FLAG_UNDERGLOW:
- rgb_matrix_set_flags(LED_FLAG_KEYLIGHT | LED_FLAG_MODIFIER);
- break;
- default:
- rgb_matrix_set_flags(LED_FLAG_UNDERGLOW);
- break;
- }
- }
- return false;
- default:
- return true; // Process all other keycodes normally
- }
-}
-// clang-format on
diff --git a/keyboards/gmmk/pro/rev1/ansi/keymaps/mattgauf/keymap_helpers.h b/keyboards/gmmk/pro/rev1/ansi/keymaps/mattgauf/keymap_helpers.h
deleted file mode 100644
index 2a6e8dae7b..0000000000
--- a/keyboards/gmmk/pro/rev1/ansi/keymaps/mattgauf/keymap_helpers.h
+++ /dev/null
@@ -1,165 +0,0 @@
-/* Copyright 2021 Matt Gauf
- *
- * 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/>.
- */
-
-// clang-format off
-#include <inttypes.h>
-#include "rgb_matrix_types.h"
-
-/* Color Codes */
-#define LEDWHIT 0xff, 0xff, 0xff
-#define LED_RED 0xff, 0x00, 0x00
-#define LEDORAN 0xff, 0x29, 0x00
-#define LEDGOLD 0xff, 0x80, 0x00
-#define LEDYELL 0xff, 0xff, 0x00
-#define LEDCHAR 0x80, 0xff, 0x00
-#define LEDGREE 0x00, 0xff, 0x00
-#define LEDFOAM 0x00, 0xff, 0x40
-#define LEDTEAL 0x00, 0x80, 0xff
-#define LEDBLUE 0x00, 0x00, 0xff
-#define LEDPURP 0x80, 0x00, 0xff
-#define LEDMAGE 0xff, 0x00, 0xff
-#define LEDPINK 0xff, 0x00, 0x80
-#define LEDBLAC 0x00, 0x00, 0x00
-#define LED_OFF 0x00, 0x00, 0x00
-
-/* Color Functions */
-void rgb_matrix_set_color_flags(uint8_t red, uint8_t green, uint8_t blue, uint8_t flags);
-
-/* Function Row */
-#define PIN_ESC 0
-#define PIN_F1 6
-#define PIN_F2 12
-#define PIN_F3 18
-#define PIN_F4 23
-#define PIN_F5 28
-#define PIN_F6 34
-#define PIN_F7 39
-#define PIN_F8 44
-#define PIN_F9 50
-#define PIN_F10 56
-#define PIN_F11 61
-#define PIN_F12 66
-#define PIN_PRINT 69
-
-/* Number Row */
-#define PIN_0 57
-#define PIN_1 7
-#define PIN_2 13
-#define PIN_3 19
-#define PIN_4 24
-#define PIN_5 29
-#define PIN_6 35
-#define PIN_7 40
-#define PIN_8 45
-#define PIN_9 51
-
-/* QWERTY */
-#define PIN_A 9
-#define PIN_B 32
-#define PIN_C 22
-#define PIN_D 21
-#define PIN_E 20
-#define PIN_F 26
-#define PIN_G 31
-#define PIN_H 37
-#define PIN_I 46
-#define PIN_J 42
-#define PIN_K 47
-#define PIN_L 53
-#define PIN_M 43
-#define PIN_N 38
-#define PIN_O 52
-#define PIN_P 58
-#define PIN_Q 8
-#define PIN_R 25
-#define PIN_S 15
-#define PIN_T 30
-#define PIN_U 41
-#define PIN_V 27
-#define PIN_W 14
-#define PIN_X 16
-#define PIN_Y 36
-#define PIN_Z 10
-
-/* Symbols */
-#define PIN_MINUS 62
-#define PIN_EQUAL 78
-#define PIN_RBRACKET 89
-#define PIN_LBRACKET 63
-#define PIN_BSLASH 93
-#define PIN_SLASH 60
-#define PIN_SCOLON 59
-#define PIN_QUOTE 64
-#define PIN_COMMA 48
-#define PIN_DOT 54
-#define PIN_GRAVE 1
-
-/* Indentation */
-#define PIN_TAB 2
-#define PIN_SPACE 33
-
-/* Line Control */
-#define PIN_BSPACE 85
-#define PIN_ENTER 96
-
-/* Indicator */
-#define PIN_CAPS 3
-
-/* Left Modifiers */
-#define PIN_LSHIFT 4
-#define PIN_LCTRL 5
-#define PIN_LALT 17
-#define PIN_LGUI 11
-
-/* Right Modifiers */
-#define PIN_RSHIFT 90
-#define PIN_RCTRL 65
-#define PIN_RALT 49
-#define PIN_FN 55
-
-/* Arrow Keys */
-#define PIN_UP 94
-#define PIN_DOWN 97
-#define PIN_LEFT 95
-#define PIN_RIGHT 79
-
-/* Fn Column */
-#define PIN_DEL 72 // ┳ TOP
-#define PIN_PGUP 75 // ┃
-#define PIN_PGDN 86 // ┃
-#define PIN_END 82 // ┻ BOTTOM
-
-/* Left Side Underglow */
-#define PIN_LED_L01 67 // ┳ TOP
-#define PIN_LED_L02 70 // ┃
-#define PIN_LED_L03 73 // ┃
-#define PIN_LED_L04 76 // ┃
-#define PIN_LED_L05 80 // ┃
-#define PIN_LED_L06 83 // ┃
-#define PIN_LED_L07 87 // ┃
-#define PIN_LED_L08 91 // ┻ BOTTOM
-
-/* Right Side Underglow */
-#define PIN_LED_L11 68 // ┳ TOP
-#define PIN_LED_L12 71 // ┃
-#define PIN_LED_L13 74 // ┃
-#define PIN_LED_L14 77 // ┃
-#define PIN_LED_L15 81 // ┃
-#define PIN_LED_L16 84 // ┃
-#define PIN_LED_L17 88 // ┃
-#define PIN_LED_L18 92 // ┻ BOTTOM
-
-// clang-format on
diff --git a/keyboards/gmmk/pro/rev1/ansi/keymaps/mattgauf/readme.md b/keyboards/gmmk/pro/rev1/ansi/keymaps/mattgauf/readme.md
deleted file mode 100644
index 94e268a0e3..0000000000
--- a/keyboards/gmmk/pro/rev1/ansi/keymaps/mattgauf/readme.md
+++ /dev/null
@@ -1,52 +0,0 @@
-# @mattgauf's GMMK Pro layout
-
-### `_DEFAULT`
-> *Based on the default ansi layout, this keymap contains the following changes to the default layer.*
- - Screensaver: `HYPER(F17)`
- - `KC_PSCR` → `MG_F17`
- - `KC_DEL` → `KC_HOME`
-
-> *Additionally the encoder will follow new rules when holding a key.*
- - `KC_GUI` will cycle through applications (macOS variant)
- - `KC_GUI + KC_ALT` will tap the left and right arrows.
- - `KC_GUI + KC_SHIFT` will tap Undo and Redo (macOS variant)
-
-### `_EFFECTS`
-> *The function layer is now used for additional layer access, effect keys, and media keys (following the Macbook Pro fn key layout).*
-
-> *Additionally while effects is active, the encoder will only adjust the brightness of the RGB matrix.*
- - The RGB matrix effect and speed keys are located on the right hand vertical nav column.
- - `KC_HOME` → `RGB_MOD`
- - `KC_PGUP` → `RGB_RMOD`
- - `KC_PGDN` → `RGB_SPI`
- - `KC_END` → `RGB_SPD`
- - The RGB matrix Hue, Saturation keys are mapped to the arrow keys.
- - `KC_UP` → `RGB_SAI`
- - `KC_DN` → `RGB_SAD`
- - `KC_LEFT` → `RGB_HUD`
- - `KC_RIGHT` → `RGB_HUI`
- - The RGB matrix toggle is intercepted in process_record_user() cycling through the `LED_FLAG` modifiers. (`NONE`, `UNDERGLOW`, `KEYLIGHT`, `ALL`)
- - `KC_SLSH` → `RGB_TOG`
- - Hibernate: `HYPER(F18)`
- - `MG_F17` → `MG_F18`
-
-
-### `_UTILITY`
-*The utility layer is currently used for remapping* `KF_F9` *to* `KC_F12` *&* `MG_F17` *to the dynamic macro keys.*
- - Playback
- - `KC_F9` → `DM_PLY1`
- - `KC_F10` → `DM_PLY2`
- - Record
- - `KC_F11` → `DM_REC1`
- - `KC_F12` → `DM_REC2`
- - Stop Recording
- - `MG_F17` → `DM_RSTP`
-
-### `_DFUMODE`
-> *The final layer is used for resetting the board or triggering an immediate shutdown.*
- - DFU Mode
- - `KC_ESC` → `RESET`
- - Shutdown: `HYPER(F19)`
- - `MG_F17` → `MG_F19`
- - Encoder press, triggers debug output.
- - `KC_MUTE` → `DB_TOGG`
diff --git a/keyboards/gmmk/pro/rev1/ansi/keymaps/mattgauf/rules.mk b/keyboards/gmmk/pro/rev1/ansi/keymaps/mattgauf/rules.mk
deleted file mode 100644
index 76e1674d58..0000000000
--- a/keyboards/gmmk/pro/rev1/ansi/keymaps/mattgauf/rules.mk
+++ /dev/null
@@ -1,6 +0,0 @@
-# Build rules
-LIB_SRC += ansi.c
-LIB_SRC += helpers.c
-
-# Overrides
-MOUSEKEY_ENABLE = no # Mouse keys
diff --git a/keyboards/gmmk/pro/rev1/ansi/keymaps/moults31/keymap.c b/keyboards/gmmk/pro/rev1/ansi/keymaps/moults31/keymap.c
deleted file mode 100644
index 759c4034c0..0000000000
--- a/keyboards/gmmk/pro/rev1/ansi/keymaps/moults31/keymap.c
+++ /dev/null
@@ -1,92 +0,0 @@
-/* Copyright 2021 Glorious, LLC <salman@pcgamingrace.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 QMK_KEYBOARD_H
-
-#include "moults31.h"
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
-// ESC F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 Prt Rotary(Mute)
-// ~ 1 2 3 4 5 6 7 8 9 0 - (=) BackSpc Del
-// Tab Q W E R T Y U I O P [ ] \ PgUp
-// Caps A S D F G H J K L ; " Enter PgDn
-// Sh_L Z X C V B N M , . ? Sh_R Up End
-// Ct_L Win_L Alt_L SPACE Alt_R FN Ct_R Left Down Right
-
-
- // The FN key by default maps to a momentary toggle to layer 1 to provide access to the QK_BOOT key (to put the board into bootloader mode). Without
- // this mapping, you have to open the case to hit the button on the bottom of the PCB (near the USB cable attachment) while plugging in the USB
- // cable to get the board into bootloader mode - definitely not fun when you're working on your QMK builds. Remove this and put it back to KC_RGUI
- // if that's your preference.
- //
- // To put the keyboard in bootloader mode, use FN+backslash. If you accidentally put it into bootloader, you can just unplug the USB cable and
- // it'll be back to normal when you plug it back in.
- [0] = 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_PSCR, KC_MPLY,
- 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_END,
- KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_DEL,
- 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, MO(2),
- KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
- ),
-
- [1] = LAYOUT(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MUTE,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, KC_CALC, _______, KC_INS, _______, KC_PSCR, _______, _______, QK_BOOT, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PGUP, KC_PGDN, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
- ),
-
- [2] = LAYOUT(
- M_GDB_STOP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, M_VSC_DBGCNSLFOCUS,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, M_VSC_VIEWSIZEINC, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, M_VSC_EDGRPPRV, M_VSC_VIEWSIZEDEC, M_VSC_EDGRPNXT, _______, _______, _______, _______, _______, _______, _______, _______, M_GDB_PLAY, M_GDB_PAUSE,
- _______, M_VSC_FILEPRV, M_VSC_FILENXT, _______, _______, _______, _______, _______, _______, _______, _______, _______, M_GDB_STEPOUT, _______,
- _______, _______, _______, _______, _______, _______, _______, M_GDB_RESTART, M_GDB_STEPIN, M_GDB_STEPOVER
- ),
-
-};
-
-
-bool encoder_update_user(uint8_t index, bool clockwise) {
- const layer_state_t curr_layer = get_highest_layer(layer_state);
- if(curr_layer == 2) {
- if (clockwise) {
- moults31_tap_custom_code(M_VSC_FILENXT);
- } else {
- moults31_tap_custom_code(M_VSC_FILEPRV);
- }
- }
- else if(curr_layer == 1) {
- if (clockwise) {
- moults31_tap_custom_code(M_VSC_VIEWSIZEINC);
- } else {
- moults31_tap_custom_code(M_VSC_VIEWSIZEDEC);
- }
- }
- else {
- if (clockwise) {
- tap_code(KC_VOLU);
- } else {
- tap_code(KC_VOLD);
- }
- }
- return false;
-}
diff --git a/keyboards/gmmk/pro/rev1/ansi/keymaps/vnmm/keymap.c b/keyboards/gmmk/pro/rev1/ansi/keymaps/vnmm/keymap.c
deleted file mode 100644
index e6627959c4..0000000000
--- a/keyboards/gmmk/pro/rev1/ansi/keymaps/vnmm/keymap.c
+++ /dev/null
@@ -1,65 +0,0 @@
-/* Copyright 2021 Glorious, LLC <salman@pcgamingrace.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 QMK_KEYBOARD_H
-#include "vnmm.h"
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [WIN_BASE] = 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_PSCR, KC_MUTE,
- 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_DEL,
- KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGUP,
- KC_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, WIN_F, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
- ),
-
- [MAC_BASE] = 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_PSCR, KC_MUTE,
- 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_DEL,
- KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGUP,
- KC_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_LALT, KC_LGUI, KC_SPC, KC_RGUI, WIN_F, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
- ),
-
- [WIN_FN] = LAYOUT(
- _______, DF_WIN, DF_MAC, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MPLY,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- RGB_TOG, RGB_MOD, RGB_VAI, RGB_SPI, RGB_HUI, RGB_SAI, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, RGB_RMOD,RGB_VAD, RGB_SPD, RGB_HUD, RGB_SAD, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______,
- EE_CLR, _______, _______, QK_BOOT, _______, _______, _______, KC_MPRV, _______, KC_MNXT
- ),
-
- [MAC_FN] = LAYOUT(
- _______, DF_WIN, DF_MAC, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MPLY,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- RGB_TOG, RGB_MOD, RGB_VAI, RGB_SPI, RGB_HUI, RGB_SAI, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, RGB_RMOD,RGB_VAD, RGB_SPD, RGB_HUD, RGB_SAD, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______,
- EE_CLR, _______, _______, QK_BOOT, _______, _______, _______, KC_MPRV, _______, KC_MNXT
- ),
-};
-
-#if defined(ENCODER_MAP_ENABLE)
-const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = {
- [WIN_BASE] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) },
- [MAC_BASE] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) },
- [WIN_FN] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) },
- [MAC_FN] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) },
-};
-#endif
diff --git a/keyboards/gmmk/pro/rev1/ansi/keymaps/vnmm/readme.md b/keyboards/gmmk/pro/rev1/ansi/keymaps/vnmm/readme.md
deleted file mode 100644
index 28738e9bfc..0000000000
--- a/keyboards/gmmk/pro/rev1/ansi/keymaps/vnmm/readme.md
+++ /dev/null
@@ -1,10 +0,0 @@
-# Vnmm's ANSI GMMK pro layout
-
-This keymap builds on the default but with a more sensible FN layer.
-
-## Features
-
-- Alphabet keys light up red when caps lock is on or shift is pressed
-- Pressing FN shows keys that have a definition
-- Via enabled
-- Reset to bootloader with FN+Space
diff --git a/keyboards/gmmk/pro/rev1/iso/info.json b/keyboards/gmmk/pro/rev1/iso/info.json
index 52ea4538c8..492a5cf486 100644
--- a/keyboards/gmmk/pro/rev1/iso/info.json
+++ b/keyboards/gmmk/pro/rev1/iso/info.json
@@ -9,7 +9,7 @@
"device_version": "0.0.1"
},
"rgb_matrix": {
- "driver": "aw20216"
+ "driver": "aw20216s"
},
"matrix_pins": {
"cols": ["A0", "A1", "A2", "A3", "A4", "A8", "A9", "A10"],
diff --git a/keyboards/gmmk/pro/rev1/iso/iso.c b/keyboards/gmmk/pro/rev1/iso/iso.c
index 0ded23162f..9744447587 100644
--- a/keyboards/gmmk/pro/rev1/iso/iso.c
+++ b/keyboards/gmmk/pro/rev1/iso/iso.c
@@ -137,7 +137,7 @@ led_config_t g_led_config = {{
2, 4, 2, 2, 4, 4, 2, 2, 4, 2, 2, 4, 4, 2, 2, 4, 4, 2, 2, 4, 4, 4, 4, 4
}};
-const aw_led g_aw_leds[RGB_MATRIX_LED_COUNT] = {
+const aw20216s_led_t g_aw20216s_leds[RGB_MATRIX_LED_COUNT] = {
{0, CS1_SW1, CS2_SW1, CS3_SW1}, // 0, ESC, k13
{0, CS4_SW1, CS5_SW1, CS6_SW1}, // 1, ~, k16
{0, CS7_SW1, CS8_SW1, CS9_SW1}, // 2, Tab, k11
diff --git a/keyboards/gmmk/pro/rev1/iso/keymaps/gourdo1/config.h b/keyboards/gmmk/pro/rev1/iso/keymaps/gourdo1/config.h
deleted file mode 100644
index a0fbedde49..0000000000
--- a/keyboards/gmmk/pro/rev1/iso/keymaps/gourdo1/config.h
+++ /dev/null
@@ -1,146 +0,0 @@
-/* Copyright 2021 Jonavin Eng @Jonavin
- Copyright 2022 gourdo1 <gourdo1@outlook.com>
-
-This program is free software: you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program. If not, see <http://www.gnu.org/licenses/>.
-*/
-
-#pragma once
-
-// Force n-key rollover
-#define FORCE_NKRO
-
-// Set TT to two taps
-#define TAPPING_TOGGLE 2
-
-#ifdef COMMAND_ENABLE
-#define IS_COMMAND() (get_mods() == MOD_MASK_CTRL) //debug commands accessed by holding down both CTRLs: https://github.com/qmk/qmk_firmware/blob/master/docs/feature_command.md
-#endif
-
-// Caps Word configuration
-#define BOTH_SHIFTS_TURNS_ON_CAPS_WORD
-#define CAPS_WORD_IDLE_TIMEOUT 10000 // Automatically turn off after x milliseconds of idle. 0 to never timeout.
-
-// Handle GRAVESC combo keys
-#define GRAVE_ESC_ALT_OVERRIDE
-// Always send Escape if Alt is pressed
-#define GRAVE_ESC_CTRL_OVERRIDE
-// Always send Escape if Control is pressed
-
-// #define TAPPING_TERM 180
-#define TAPPING_TERM 300
-#define TAPPING_TERM_PER_KEY
-
-#ifdef RGB_MATRIX_ENABLE
- #define RGB_DISABLE_WHEN_USB_SUSPENDED
- #define RGB_MATRIX_KEYPRESSES // Enables REACTIVE & SPLASH modes
- #define RGB_MATRIX_FRAMEBUFFER_EFFECTS // Enables Heatmap, Rain
-
- // RGB step values
- #define RGBLIGHT_HUE_STEP 32 // The number of steps to cycle through the hue by (default 10)
- #define RGBLIGHT_SAT_STEP 17 // The number of steps to increment the saturation by (default 17)
- #define RGBLIGHT_VAL_STEP 17 // The number of steps to increment the brightness by (default 17)
-
- // Startup values, when none have been set
- #define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_SOLID_REACTIVE // Sets the default effect mode, if none has been set (was RGB_MATRIX_SOLID_COLOR)
- #define RGB_MATRIX_DEFAULT_HUE 24 // Sets the default hue value, if none has been set
- #define RGB_MATRIX_DEFAULT_SAT 255 // Sets the default saturation value, if none has been set
- #define RGB_MATRIX_DEFAULT_VAL 127 // Sets the default brightness value, if none has been set
- #define RGB_MATRIX_DEFAULT_SPD 127 // Sets the default animation speed, if none has been set
-
- // Uncomment any #undef line below to turn OFF any default enabled RGB background effect (enabled in keyboards/gmmk/pro/config.h).
- #undef ENABLE_RGB_MATRIX_ALPHAS_MODS // Solid color (seems redundant; seems same as RGB_MATRIX_SOLID_COLOR?)
- //#undef ENABLE_RGB_MATRIX_GRADIENT_UP_DOWN // Static, horizontal rainbow
- //#undef ENABLE_RGB_MATRIX_GRADIENT_LEFT_RIGHT // Static, vertical Rainbow
- //#undef ENABLE_RGB_MATRIX_BREATHING // Breathing animation using selected HSV color
- #undef ENABLE_RGB_MATRIX_BAND_SAT // Single hue band fading saturation scrolling left to right (with white)
- //#undef ENABLE_RGB_MATRIX_BAND_VAL // Single hue band fading brightness scrolling left to right (with black)
- #undef ENABLE_RGB_MATRIX_BAND_PINWHEEL_SAT // Single hue 3 blade spinning pinwheel fades sat (with white)
- //#undef ENABLE_RGB_MATRIX_BAND_PINWHEEL_VAL // Single hue 3 blade spinning pinwheel fades brightness (with black)
- #undef ENABLE_RGB_MATRIX_BAND_SPIRAL_SAT // Single hue spinning spiral fades brightness (with white)
- //#undef ENABLE_RGB_MATRIX_BAND_SPIRAL_VAL // Single hue spinning spiral fades brightness (with black)
- //#undef ENABLE_RGB_MATRIX_CYCLE_ALL // Full keyboard cycling through rainbow
- //#undef ENABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT // Full gradient moving left to right
- //#undef ENABLE_RGB_MATRIX_CYCLE_UP_DOWN // Full gradient scrolling top to bottom
- #undef ENABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON // Full gradient chevron scrolling left to right (too similar to cycle left right)
- //#undef ENABLE_RGB_MATRIX_CYCLE_OUT_IN // Rainbow circles coming to center.
- #undef ENABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL // Two Rainbow circles coming to 1/3 and 2/3 points. (seems mostly redundant with above)
- #undef ENABLE_RGB_MATRIX_CYCLE_PINWHEEL // Built-in cycling pinwheel (seems redundant with below)
- //#undef ENABLE_RGB_MATRIX_CYCLE_SPIRAL // Full gradient spinning spiral around center of keyboard
- #undef ENABLE_RGB_MATRIX_RAINBOW_BEACON // Spinning rainbow (more distracting transitions)
- //#undef ENABLE_RGB_MATRIX_RAINBOW_PINWHEELS // Spinning rainbow (smoother)
- #undef ENABLE_RGB_MATRIX_DUAL_BEACON // Two rainbows spinning around keyboard (distracting, busy)
- #undef ENABLE_RGB_MATRIX_RAINDROPS // Sustained raindrops of blue, green, yellow (confusing to use with RGB layers)
- //#undef ENABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS // Sustained raindrops of blue, purple, pink, green (confusing to use with RGB layers, but slightly better than above)
- #undef ENABLE_RGB_MATRIX_HUE_BREATHING // Hue shifts up a slight amount at the same time, then shifts back (very subtle)
- #undef ENABLE_RGB_MATRIX_HUE_PENDULUM // Hue shifts up a slight amount in a wave to the right, then back to the left (very subtle)
- #undef ENABLE_RGB_MATRIX_HUE_WAVE // Hue shifts up a slight amount and then back down in a wave to the right (very subtle)
- //#undef ENABLE_RGB_MATRIX_PIXEL_RAIN // Non-sustained raindrops of pastel colors
- #undef ENABLE_RGB_MATRIX_PIXEL_FLOW // More active version of pixel rain with quick cycling (unusable, very distracting)
- #undef ENABLE_RGB_MATRIX_PIXEL_FRACTAL // Same as Pixel Flow but with current HSV only (somewhat distracting)
- //Only enabled if RGB_MATRIX_FRAMEBUFFER_EFFECTS is defined
- //#undef ENABLE_RGB_MATRIX_TYPING_HEATMAP // Fading heatmap that follows keystrokes (has buggy side LEDs that glow red)
- //#undef ENABLE_RGB_MATRIX_DIGITAL_RAIN // The Matrix (has buggy side LEDs that glow red)
- //Only enabled if RGB_MATRIX_KEYPRESSES or RGB_MATRIX_KEYRELEASES is defined
- //#undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE // Key hits shown in current hue - all other keys black
- //#undef ENABLE_RGB_MATRIX_SOLID_REACTIVE // Keyboard lights up in chosen hue, key hits shown in complementary hue (try this as default?)
- #undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE // Hue & value pulse around a single key hit then fades value out (Single key)
- //#undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE // same as above but more intense (Multi-key)
- #undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS // Column and Row single current color fade (Single key)
- //#undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS // Column and Row single color fade. (Multi-key)
- #undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS // Hue & value pulse away on the same column and row of key hit then fades (Single key)
- //#undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS // Hue & value pulse away on the same column and row of multi-key hit then fades
- //#undef ENABLE_RGB_MATRIX_SPLASH // Full rainbow pulses from key hit. All else black.
- #undef ENABLE_RGB_MATRIX_MULTISPLASH // Full rainbow pulses from multi-keys. All else black. (distracting on multiple keystroke hits)
- #undef ENABLE_RGB_MATRIX_SOLID_SPLASH // Single color pulses from key hit. All else black. (distracting on multiple key hits)
- //#undef ENABLE_RGB_MATRIX_SOLID_MULTISPLASH // Single color pulses from muli-keys. All else black.
-#endif //RGB_MATRIX_ENABLE
-
-// Add a layer for colemak -- set "COLEMAK_LAYER_ENABLE = yes" in rules.mk to enable
-#if defined COLEMAK_LAYER_ENABLE
- #ifdef GAME_ENABLE
- #define DYNAMIC_KEYMAP_LAYER_COUNT 6
- #define _COLEMAK 5
- #else
- #define DYNAMIC_KEYMAP_LAYER_COUNT 5
- #define _COLEMAK 4
- #endif //GAME_ENABLE
-#endif // COLEMAK_LAYER_ENABLE
-
-/*
-// Mouse Keys Accelerated Mode Definitions
-#define MOUSEKEY_DELAY 3 // Delay between pressing a movement key and cursor movement (default: 10)
-#define MOUSEKEY_INTERVAL 13 // Time between cursor movements in milliseconds (default: 20); Try setting to 1000/monitor refresh for smooth movement.
-#define MOUSEKEY_MOVE_DELTA 8 // Step size (default: 8)
-#define MOUSEKEY_MAX_SPEED 9 // Maximum cursor speed at which acceleration stops (default: 10)
-#define MOUSEKEY_TIME_TO_MAX 150 // Time until maximum cursor speed is reached (default: 30)
-#define MOUSEKEY_WHEEL_DELAY 0 // Delay between pressing a wheel key and wheel movement (default: 10)
-#define MOUSEKEY_WHEEL_INTERVAL 80 // Time between wheel movements (default: 80)
-#define MOUSEKEY_WHEEL_MAX_SPEED 8 // Maximum number of scroll steps per scroll action (default: 8)
-#define MOUSEKEY_WHEEL_TIME_TO_MAX 40 // Time until maximum scroll speed is reached (default: 40)
-*/
-
-// Mouse Keys Kinetic Mode Definitions
-#define MK_KINETIC_SPEED // Enable Kinetic mode: Uses a quadratic curve on cursor speed to allow precise movements at the beginning and increases speed thereafter.
-#define MOUSEKEY_DELAY 3 // Delay between pressing a movement key and cursor movement (default: 10)
-#define MOUSEKEY_INTERVAL 13 // Time between cursor movements in milliseconds (default: 20); Try setting to 1000/monitor refresh for smooth movement.
-#define MOUSEKEY_MOVE_DELTA 5 // Step size for accelerating from initial to base speed (default: 8)
-#define MOUSEKEY_MOVE_MAX 50 // use instead of BASE SPEED to limit speed in Kinetic mode
-#define MOUSEKEY_INITIAL_SPEED 100 // Initial speed of the cursor in pixels per second (default: 100)
-//#define MOUSEKEY_BASE_SPEED 800 // (broken in QMK 0.16.0) Maximum cursor speed at which acceleration stops (default: 1000)
-#define MOUSEKEY_DECELERATED_SPEED 400 // Decelerated cursor speed (default: 400)
-#define MOUSEKEY_ACCELERATED_SPEED 2000 // Accelerated cursor speed (default: 3000)
-#define MOUSEKEY_WHEEL_INITIAL_MOVEMENTS 16 // Initial number of movements of the mouse wheel (default: 16)
-#define MOUSEKEY_WHEEL_BASE_MOVEMENTS 32 // Maximum number of movements at which acceleration stops (default: 32)
-#define MOUSEKEY_WHEEL_ACCELERATED_MOVEMENTS 48 // Accelerated wheel movements (default: 48)
-#define MOUSEKEY_WHEEL_DECELERATED_MOVEMENTS 8 // Decelerated wheel movements (default: 8)
diff --git a/keyboards/gmmk/pro/rev1/iso/keymaps/gourdo1/keymap.c b/keyboards/gmmk/pro/rev1/iso/keymaps/gourdo1/keymap.c
deleted file mode 100644
index 44fed8fd29..0000000000
--- a/keyboards/gmmk/pro/rev1/iso/keymaps/gourdo1/keymap.c
+++ /dev/null
@@ -1,726 +0,0 @@
-/* Copyright 2021 Glorious, LLC <salman@pcgamingrace.com>
- Copyright 2021 Jonavin Eng @Jonavin
- Copyright 2022 RustyBrakes (ISO conversion)
- Copyright 2022 gourdo1 <gourdo1@outlook.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/>.
-*/
-
-// Note: Many advanced functions referenced in this file are defined in /users/gourdo1/gourdo1.c
-
-#include QMK_KEYBOARD_H
-
-#include "rgb_matrix_map.h"
-
-#include "gourdo1.h"
-
-#include "paddlegame.h"
-
-#include <math.h>
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
- /* Base Layout
- *
- * ,-------------------------------------------------------------------------------------------------------------.
- * | Esc || F1 | F2 | F3 | F4 || F5 | F6 | F7 | F8 || F9 | F10 | F11 | F12 || Home || Mute |
- * |=============================================================================================================|
- * | ISO | 1 ! | 2 @ | 3 # | 4 $ | 5 % | 6 ^ | 7 & | 8 * | 9 ( | 0 ) | - _ | = + | Backspc || Del |
- * |------+------+------+------+------+------+------+------+------+------+------+------+------+----------++------|
- * | Tab | Q | W | E | R | T | Y | U | I | O | P | [ } | ] } | || PgUp |
- * |---------+------+------+------+------+------+------+------+------+------+------+------+------+ ++------|
- * | Capslock | A | S | D | F | G | H | J | K | L | ; : | ' " | ISO| Enter || PgDn |
- * |------------+------+------+------+-----+------+------+------+------+------+------+------|----+========+------|
- * | LShift | ISO | Z | X | C | V | B | N | M | , < | . > | / ? | RShift || Up || End |
- * |--------------+------+------+------+------+------+------+------+------+------+------+--+=====++------++======|
- * | Ctrl | Win | LAlt | Space | RAlt | Fn | Ctrl || Left | Down | Rght |
- * `------------------------------------------------------------------------------------------------------------'
- */
-
- [_BASE] = 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, LEFTOFENC, ENCFUNC,
- 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, BELOWENC,
- 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,
- CAPSNUM, 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
- ),
-
- /* FN1 Layout
- *
- * ,-------------------------------------------------------------------------------------------------------------.
- * | Esc ||MyCmp |WbHom | Calc |MdSel ||MdPrv |MdNxt |MdPly |MdStp ||VolDn |VolUp |PrScr |ScrLk ||Pause ||Sleep |
- * |=============================================================================================================|
- * | ____ | ____ | ____ | ____ | ____ | ____ | ____ | ____ | ____ | ____ | ____ |RGBTOD|RGBTOI| ________ ||RGBTOG|
- * |------+------+------+------+------+------+------+------+------+------+------+------+------+----------++------|
- * | ______ |RGBSAD|RGBVAI|RGBSAI| NKRO | ____ |YAHOO | ____ | ____ |OUTLK |Pause | ____ | ____ | || Home |
- * |---------+------+------+------+------+------+------+------+------+------+------+------+------+ ++------|
- * | Capslock |RGBHUD|RGBVAD|RGBHUI| ____|GMAIL |HTMAIL| ____ | ____ | ____ | ____ | ____ | ___ | ____ || End |
- * |------------+------+------+------+-----+------+------+------+------+------+------+------|----+========+------|
- * | ____ |QK_BOOT|RGBNIT| ____ | ____ | ____ | ____ |NumLk | ____ | ____ |DOTCOM| CAD | ______ ||RGBMOD|| ____ |
- * |--------------+------+------+------+------+------+------+------+------+------+------+--+=====++------++======|
- * | ____ | WinKyLk | ____ | _____ | ____ | ____ | ____ ||RGBSPD|RGBRMD|RGBSPI|
- * `------------------------------------------------------------------------------------------------------------'
- */
-
- #ifdef GAME_ENABLE
- [_FN1] = LAYOUT(
- EE_CLR, KC_MYCM, KC_WHOM, KC_CALC, KC_MSEL, KC_MPRV, KC_MNXT, KC_MPLY, KC_MSTP, KC_VOLD, KC_VOLU, KC_PSCR, KC_SCRL, KC_PAUS, KC_SLEP,
- PRNCONF, TG_CAPS, TG_PAD, TG_ESC, TG_DEL, TG_TDCAP,TG_ENC, TG_INS,TG_SPCMOD,TG_AUTOCR,TG_ENGCAP,RGB_TOD,RGB_TOI, _______, RGB_TOG,
- _______, RGB_SAD, RGB_VAI, RGB_SAI, NK_TOGG, _______, YAHOO, _______, _______, OUTLOOK, TG(_GAME),SWAP_L, SWAP_R, KC_HOME,
- KC_CAPS, RGB_HUD, RGB_VAD, RGB_HUI, _______, GMAIL, HOTMAIL, _______, _______, LOCKPC, _______, _______, _______, _______, KC_END,
- _______, QK_BOOT, RGB_NITE,_______, _______, _______, QK_BOOT, KC_NUM, _______, _______, DOTCOM, KC_CAD, _______, RGB_MOD, _______,
- _______, WINLOCK, _______, _______, _______, _______, _______, RGB_SPD, RGB_RMOD, RGB_SPI
- ),
-
- [_GAME] = LAYOUT(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
- ),
-
- #else
- [_FN1] = LAYOUT(
- EE_CLR, KC_MYCM, KC_WHOM, KC_CALC, KC_MSEL, KC_MPRV, KC_MNXT, KC_MPLY, KC_MSTP, KC_VOLD, KC_VOLU, KC_PSCR, KC_SCRL, KC_PAUS, KC_SLEP,
- PRNCONF, TG_CAPS, TG_PAD, TG_ESC, TG_DEL, TG_TDCAP,TG_ENC, TG_INS,TG_SPCMOD,TG_AUTOCR,TG_ENGCAP,RGB_TOD,RGB_TOI, _______, RGB_TOG,
- _______, RGB_SAD, RGB_VAI, RGB_SAI, NK_TOGG, _______, YAHOO, _______, _______, OUTLOOK, KC_PAUS, SWAP_L, SWAP_R, KC_HOME,
- KC_CAPS, RGB_HUD, RGB_VAD, RGB_HUI, _______, GMAIL, HOTMAIL, _______, _______, LOCKPC, _______, _______, _______, _______, KC_END,
- _______, QK_BOOT, RGB_NITE,_______, _______, _______, QK_BOOT, KC_NUM, _______, _______, DOTCOM, KC_CAD, _______, RGB_MOD, _______,
- _______, WINLOCK, _______, _______, _______, _______, _______, RGB_SPD, RGB_RMOD, RGB_SPI
- ),
- #endif //GAME_ENABLE
-
- /* _NUMPADMOUSE Layout
- * Note: A symbol preceded by "P" is a Numpad-encoded version of the key -- any app that differentiates will recognize the char as coming from a physical numpad.
- * ,-------------------------------------------------------------------------------------------------------------.
- * | ____ || ____ | ____ | ____ | ____ || ____ | ____ | ____ | ____ || ____ | ____ | ____ | ____ || ____ || ____ |
- * |=============================================================================================================|
- * | ____ | P1 | P2 | P3 | P4 | P5 | P6 | P7 | P8 | P9 | P0 | P- | P+ | ________ || ____ |
- * |------+------+------+------+------+------+------+------+------+------+------+------+------+----------++------|
- * | ______ | PGUP | Up | PGDN | None | None | None | P4 | P5 | P6 | P+ | ____ | ____ | || WhUp |
- * |---------+------+------+------+------+------+------+------+------+------+------+------+------+ ++------|
- * | ________ | Left | Down | Rght | None| None | None | P1 | P2 | P3 | P* | ___ | ___ |P-Enter|| WhDn |
- * |------------+------+------+------+-----+------+------+------+------+------+------+------|----+========+------|
- * | __________ | None | ____ | ____ | ____ | None | None | 0 | 00 | P. | P/ | MBt1 ||MS_UP || MBt2 |
- * |--------------+------+------+------+------+------+------+------+------+------+------+--+=====++------++======|
- * | ____ | ____ | ____ | _____ | ____ | ____ | MBt3 ||MS_LT |MS_DN |MS_RT |
- * `------------------------------------------------------------------------------------------------------------'
- */
-
- [_NUMPADMOUSE] = LAYOUT(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, KC_P1, KC_P2, KC_P3, KC_P4, KC_P5, KC_P6, KC_P7, KC_P8, KC_P9, KC_P0, KC_PMNS, KC_PPLS, _______, _______,
- _______, KC_PGUP, KC_UP, KC_PGDN, KC_NO, KC_NO, KC_NO, KC_P4, KC_P5, KC_P6, KC_PPLS, _______, _______, KC_WH_U,
- _______, KC_LEFT, KC_DOWN, KC_RGHT, KC_NO, KC_NO, KC_NO, KC_P1, KC_P2, KC_P3, KC_PAST, _______, _______, KC_PENT, KC_WH_D,
- _______, _______, KC_NO, _______, _______, _______, _______, _______, KC_P0, KC_00, KC_PDOT, KC_PSLS, KC_BTN1, KC_MS_U, KC_BTN2,
- _______, _______, _______, KC_PENT, _______, _______, KC_BTN3, KC_MS_L, KC_MS_D, KC_MS_R
- ),
-
- [_MOUSEKEY] = LAYOUT(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_WH_U,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_WH_D,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_BTN1, KC_MS_U, KC_BTN2,
- _______, _______, _______, _______, _______, _______, KC_BTN3, KC_MS_L, KC_MS_D, KC_MS_R
- ),
-
- #ifdef COLEMAK_LAYER_ENABLE
- [_COLEMAK] = LAYOUT(
- _______, 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_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_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_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_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_SPC, KC_RALT, _______, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
- ),
- #endif // COLEMAK_LAYER_ENABLE
-};
-
-#if defined(ENCODER_ENABLE) && !defined(ENCODER_DEFAULTACTIONS_ENABLE) // Encoder Functionality when not using userspace defaults
-void encoder_action_rgbhue(bool clockwise) {
- if (clockwise)
- rgblight_increase_hue_noeeprom();
- else
- rgblight_decrease_hue_noeeprom();
-}
-
-bool encoder_update_user(uint8_t index, bool clockwise) {
- uint8_t mods_state = get_mods();
- if (mods_state & MOD_BIT(KC_LSFT)) { // If you are holding L shift, encoder changes layers
- encoder_action_layerchange(clockwise);
- } else if (mods_state & MOD_BIT(KC_RSFT)) { // If you are holding R shift, Page up/dn
- unregister_mods(MOD_BIT(KC_RSFT));
- encoder_action_navpage(clockwise);
- register_mods(MOD_BIT(KC_RSFT));
- } else if (mods_state & MOD_BIT(KC_LCTL)) { // if holding Left Ctrl, navigate next/prev word
- encoder_action_navword(clockwise);
- } else if (mods_state & MOD_BIT(KC_RCTL)) { // if holding Right Ctrl, change rgb hue/colour
- encoder_action_rgbhue(clockwise);
- } else if (mods_state & MOD_BIT(KC_LALT)) { // if holding Left Alt, change media next/prev track
- encoder_action_mediatrack(clockwise);
- } else {
- switch (get_highest_layer(layer_state)) {
- case _FN1:
- #ifdef IDLE_TIMEOUT_ENABLE
- timeout_update_threshold(clockwise);
- #endif
- break;
- #ifdef GAME_ENABLE
- case _GAME:
- // Game: Paddle movement
- if (damage_count == 0) {
- if (clockwise) {
- if (paddle_pos_full < 15) ++paddle_pos_full;
- } else {
- if (paddle_pos_full > 0) --paddle_pos_full;
- }
- }
- break;
- #endif //GAME_ENABLE
- default:
- encoder_action_volume(clockwise); // Otherwise it just changes volume
- break;
- }
- }
- //return true; //set to return false to counteract enabled encoder in pro.c
- return false;
-}
-#endif // ENCODER_ENABLE && !ENCODER_DEFAULTACTIONS_ENABLE
-
-#ifdef RGB_MATRIX_ENABLE
-
-// Game logic
-#ifdef GAME_ENABLE
-void init_ball(uint8_t i) {
- i &= 1;
- ball[i].on = true;
- ball[i].up = false;
- ball[i].y = 0;
- ball[i].x = rand() % 16;
-
- // Set initial ball state
- if (ball[i].x < 8) {
- ball[i].left = false;
- } else {
- ball[i].x -= 4;
- ball[i].left = true;
- }
-
- // 1/4 chance of being an enemy ball after level 6
- if (level_number > 3) {
- ball[i].enemy = ((rand() % 4) == 0);
- } else {
- ball[i].enemy = false;
- }
-}
-
-void hurt_paddle(void) {
- if (paddle_lives > 0) {
- --paddle_lives;
- }
- damage_timer = timer_read();
- damage_count = 10;
-
- // Reset board
- init_ball(0);
- ball[1].on = false;
-}
-#endif //GAME_ENABLE
-
-// Capslock, Scroll lock and Numlock indicator on Left side lights.
-bool rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) {
- if (get_rgb_nightmode()) rgb_matrix_set_color_all(RGB_OFF);
-
- led_t led_state = host_keyboard_led_state();
-
- // Scroll Lock RGB setup
- if (led_state.scroll_lock) {
- rgb_matrix_set_color(LED_L3, RGB_RED);
- rgb_matrix_set_color(LED_L4, RGB_RED);
- rgb_matrix_set_color(LED_TAB, RGB_RED);
- rgb_matrix_set_color(LED_F12, RGB_RED);
- }
-
-/*
- // System NumLock warning indicator RGB setup
- #ifdef INVERT_NUMLOCK_INDICATOR
- if (!led_state.num_lock) { // on if NUM lock is OFF to bring attention to overlay numpad not functional when enabled
- rgb_matrix_set_color(LED_GRV, RGB_ORANGE2);
- rgb_matrix_set_color(LED_L1, RGB_ORANGE2);
- rgb_matrix_set_color(LED_L2, RGB_ORANGE2);
- rgb_matrix_set_color(LED_N, RGB_ORANGE2);
- rgb_matrix_set_color(LED_FN, RGB_ORANGE2);
- }
- #else
- if (led_state.num_lock) { // Normal, on if NUM lock is ON
- rgb_matrix_set_color(LED_GRV, RGB_ORANGE2);
- rgb_matrix_set_color(LED_L1, RGB_ORANGE2);
- rgb_matrix_set_color(LED_L2, RGB_ORANGE2);
- rgb_matrix_set_color(LED_N, RGB_ORANGE2);
- rgb_matrix_set_color(LED_FN, RGB_ORANGE2);
- }
- #endif // INVERT_NUMLOCK_INDICATOR
-*/
-
- // CapsLock RGB setup
- if (led_state.caps_lock) {
- if (user_config.rgb_hilite_caps) {
- if (user_config.rgb_english_caps) {
- for (uint8_t i = 0; i < ARRAYSIZE(LED_LIST_LETTERS); i++) {
- rgb_matrix_set_color(LED_LIST_LETTERS[i], RGB_CHARTREUSE);
- }
- }
- else {
- for (uint8_t i = 0; i < ARRAYSIZE(LED_LIST_LETTERS_DE); i++) {
- rgb_matrix_set_color(LED_LIST_LETTERS_DE[i], RGB_CHARTREUSE);
- }
- }
- rgb_matrix_set_color(LED_L7, RGB_CHARTREUSE);
- rgb_matrix_set_color(LED_L8, RGB_CHARTREUSE);
- rgb_matrix_set_color(LED_LSFT, RGB_CHARTREUSE);
- }
- else {
- rgb_matrix_set_color(LED_L7, RGB_CHARTREUSE);
- rgb_matrix_set_color(LED_L8, RGB_CHARTREUSE);
- rgb_matrix_set_color(LED_LSFT, RGB_CHARTREUSE);
- }
- }
-
- // Winkey disabled (gaming) mode RGB setup
- if (keymap_config.no_gui) {
- rgb_matrix_set_color(LED_LWIN, RGB_RED); //light up Winkey red when disabled
- rgb_matrix_set_color(LED_W, RGB_CHARTREUSE); //light up gaming keys with WSAD higlighted
- rgb_matrix_set_color(LED_S, RGB_CHARTREUSE);
- rgb_matrix_set_color(LED_A, RGB_CHARTREUSE);
- rgb_matrix_set_color(LED_D, RGB_CHARTREUSE);
- rgb_matrix_set_color(LED_Q, RGB_ORANGE2);
- rgb_matrix_set_color(LED_E, RGB_ORANGE2);
- rgb_matrix_set_color(LED_R, RGB_ORANGE2);
- rgb_matrix_set_color(LED_TAB, RGB_ORANGE2);
- rgb_matrix_set_color(LED_F, RGB_ORANGE2);
- rgb_matrix_set_color(LED_Z, RGB_ORANGE2);
- rgb_matrix_set_color(LED_X, RGB_ORANGE2);
- rgb_matrix_set_color(LED_C, RGB_ORANGE2);
- rgb_matrix_set_color(LED_V, RGB_ORANGE2);
- rgb_matrix_set_color(LED_SPC, RGB_ORANGE2);
- rgb_matrix_set_color(LED_LCTL, RGB_ORANGE2);
- rgb_matrix_set_color(LED_LSFT, RGB_ORANGE2);
- }
-
- // Fn selector mode RGB setup
- switch (get_highest_layer(layer_state)) { // special handling per layer
- case _FN1: // on Fn layer select what the encoder does when pressed
- rgb_matrix_set_color(LED_FN, RGB_RED); //FN key
-
- //NEW RGB LIGHTING TO RING KEYBOARD ON FN LAYER ACTIVATION:
- for (uint8_t j = 0; j < ARRAYSIZE(LED_LIST_FUNCROW); j++) {
- rgb_matrix_set_color(LED_LIST_FUNCROW[j], RGB_RED);
- }
- rgb_matrix_set_color(LED_LCTL, RGB_RED);
- rgb_matrix_set_color(LED_LALT, RGB_RED);
- rgb_matrix_set_color(LED_SPC, RGB_RED);
- rgb_matrix_set_color(LED_LWIN, RGB_RED);
- //rgb_matrix_set_color(LED_RALT, RGB_RED);
- rgb_matrix_set_color(LED_FN, RGB_OFFBLUE);
- //rgb_matrix_set_color(LED_RCTL, RGB_RED);
- rgb_matrix_set_color(LED_BSLS, RGB_RED);
- rgb_matrix_set_color(LED_L1, RGB_RED);
- rgb_matrix_set_color(LED_L2, RGB_RED);
- rgb_matrix_set_color(LED_L3, RGB_RED);
- rgb_matrix_set_color(LED_L4, RGB_RED);
- rgb_matrix_set_color(LED_L5, RGB_RED);
- rgb_matrix_set_color(LED_L6, RGB_RED);
- rgb_matrix_set_color(LED_L7, RGB_RED);
- rgb_matrix_set_color(LED_L8, RGB_RED);
- rgb_matrix_set_color(LED_DOWN, RGB_RED);
- rgb_matrix_set_color(LED_LEFT, RGB_RED);
- rgb_matrix_set_color(LED_RIGHT, RGB_RED);
- rgb_matrix_set_color(LED_R1, RGB_RED);
- rgb_matrix_set_color(LED_R2, RGB_RED);
- rgb_matrix_set_color(LED_R3, RGB_RED);
- rgb_matrix_set_color(LED_R4, RGB_RED);
- rgb_matrix_set_color(LED_R5, RGB_RED);
- rgb_matrix_set_color(LED_R6, RGB_RED);
- rgb_matrix_set_color(LED_R7, RGB_RED);
- rgb_matrix_set_color(LED_R8, RGB_RED);
- rgb_matrix_set_color(LED_MINS, RGB_OFFBLUE);
- rgb_matrix_set_color(LED_EQL, RGB_OFFBLUE);
-
- // Indicator for paddle game enabled in build
- #ifdef GAME_ENABLE
- rgb_matrix_set_color(LED_P, RGB_CHARTREUSE);
- #else
- rgb_matrix_set_color(LED_P, RGB_RED);
- #endif // GAME_ENABLE
-
- // System NumLock warning indicator RGB setup
- #ifdef INVERT_NUMLOCK_INDICATOR
- if (!led_state.num_lock) { // on if NUM lock is OFF to bring attention to overlay numpad not functional when enabled
- rgb_matrix_set_color(LED_N, RGB_ORANGE2);
- }
- #else
- if (led_state.num_lock) { // Normal, on if NUM lock is ON
- rgb_matrix_set_color(LED_N, RGB_ORANGE2);
- }
- #endif // INVERT_NUMLOCK_INDICATOR
-
- //Add RGB statuses for user.config toggles
- if (user_config.rgb_hilite_caps) {
- rgb_matrix_set_color(LED_1, RGB_GREEN);
- } else {
- rgb_matrix_set_color(LED_1, RGB_PURPLE);
- }
- if (user_config.rgb_hilite_numpad) {
- rgb_matrix_set_color(LED_2, RGB_GREEN);
- } else {
- rgb_matrix_set_color(LED_2, RGB_PURPLE);
- }
- if (user_config.esc_double_tap_to_baselyr) {
- rgb_matrix_set_color(LED_3, RGB_GREEN);
- } else {
- rgb_matrix_set_color(LED_3, RGB_PURPLE);
- }
- if (user_config.del_right_home_top) {
- rgb_matrix_set_color(LED_4, RGB_GREEN);
- } else {
- rgb_matrix_set_color(LED_4, RGB_PURPLE);
- }
- if (user_config.double_tap_shift_for_capslock) {
- rgb_matrix_set_color(LED_5, RGB_GREEN);
- } else {
- rgb_matrix_set_color(LED_5, RGB_PURPLE);
- }
- if (user_config.encoder_press_mute_or_media) {
- rgb_matrix_set_color(LED_6, RGB_GREEN);
- } else {
- rgb_matrix_set_color(LED_6, RGB_PURPLE);
- }
- if (user_config.ins_on_shft_bkspc_or_del) {
- rgb_matrix_set_color(LED_7, RGB_GREEN);
- } else {
- rgb_matrix_set_color(LED_7, RGB_PURPLE);
- }
- if (user_config.disable_space_mods) {
- rgb_matrix_set_color(LED_8, RGB_GREEN);
- } else {
- rgb_matrix_set_color(LED_8, RGB_PURPLE);
- }
- if (user_config.autocorrect) {
- rgb_matrix_set_color(LED_9, RGB_GREEN);
- } else {
- rgb_matrix_set_color(LED_9, RGB_PURPLE);
- }
- if (user_config.rgb_english_caps) {
- rgb_matrix_set_color(LED_0, RGB_GREEN);
- } else {
- rgb_matrix_set_color(LED_0, RGB_PURPLE);
- }
-
- // Add RGB Timeout Indicator -- shows 0 to 139 using F row and num row; larger numbers using 16bit code
- uint16_t timeout_threshold = get_timeout_threshold();
- if (timeout_threshold <= 10) rgb_matrix_set_color(LED_LIST_FUNCROW[timeout_threshold], RGB_BLUE);
- else if (timeout_threshold < 140) {
- rgb_matrix_set_color(LED_LIST_FUNCROW[(timeout_threshold / 10)], RGB_CYAN);
- rgb_matrix_set_color(LED_LIST_FUNCROW[(timeout_threshold % 10)], RGB_BLUE);
- } else { // >= 140 minutes, just show these 3 lights
- rgb_matrix_set_color(LED_LIST_FUNCROW[10], RGB_CYAN);
- rgb_matrix_set_color(LED_LIST_FUNCROW[11], RGB_CYAN);
- rgb_matrix_set_color(LED_LIST_FUNCROW[12], RGB_CYAN);
- }
- break;
-
- // Numpad & Mouse Keys overlay RGB
- case _NUMPADMOUSE:
- #ifdef INVERT_NUMLOCK_INDICATOR
- if (!led_state.num_lock) { // on if NUM lock is OFF to bring attention to overlay numpad not functional when enabled
- rgb_matrix_set_color(LED_N, RGB_ORANGE2);
- }
- #else
- if (led_state.num_lock) { // Normal, on if NUM lock is ON
- rgb_matrix_set_color(LED_N, RGB_ORANGE2);
- }
- #endif // INVERT_NUMLOCK_INDICATOR
- if (user_config.rgb_hilite_numpad) {
- for (uint8_t i = 0; i < ARRAYSIZE(LED_LIST_NUMPAD); i++) {
- rgb_matrix_set_color(LED_LIST_NUMPAD[i], RGB_OFFBLUE);
- }
- rgb_matrix_set_color(LED_L5, RGB_OFFBLUE);
- rgb_matrix_set_color(LED_L6, RGB_OFFBLUE);
- rgb_matrix_set_color(LED_CAPS, RGB_OFFBLUE);
- rgb_matrix_set_color(LED_UP, RGB_CHARTREUSE);
- rgb_matrix_set_color(LED_DOWN, RGB_CHARTREUSE);
- rgb_matrix_set_color(LED_LEFT, RGB_CHARTREUSE);
- rgb_matrix_set_color(LED_RIGHT, RGB_CHARTREUSE);
- rgb_matrix_set_color(LED_RCTL, RGB_CHARTREUSE);
- rgb_matrix_set_color(LED_RSFT, RGB_CHARTREUSE);
- rgb_matrix_set_color(LED_END, RGB_CHARTREUSE);
- rgb_matrix_set_color(LED_PGUP, RGB_CHARTREUSE);
- rgb_matrix_set_color(LED_PGDN, RGB_CHARTREUSE);
- } else {
- rgb_matrix_set_color(LED_L5, RGB_OFFBLUE);
- rgb_matrix_set_color(LED_L6, RGB_OFFBLUE);
- rgb_matrix_set_color(LED_CAPS, RGB_OFFBLUE);
- }
- break;
-
- // MOUSEKEYS mode RGB
- case _MOUSEKEY:
- rgb_matrix_set_color(LED_UP, RGB_CHARTREUSE);
- rgb_matrix_set_color(LED_DOWN, RGB_CHARTREUSE);
- rgb_matrix_set_color(LED_LEFT, RGB_CHARTREUSE);
- rgb_matrix_set_color(LED_RIGHT, RGB_CHARTREUSE);
- rgb_matrix_set_color(LED_RCTL, RGB_CYAN);
- rgb_matrix_set_color(LED_RSFT, RGB_CYAN);
- rgb_matrix_set_color(LED_END, RGB_CYAN);
- rgb_matrix_set_color(LED_PGUP, RGB_OFFBLUE);
- rgb_matrix_set_color(LED_PGDN, RGB_OFFBLUE);
- break;
-
- // Colemak layer RGB
- #ifdef COLEMAK_LAYER_ENABLE
- case _COLEMAK:
- for (uint8_t i = 0; i < ARRAYSIZE(LED_SIDE_RIGHT); i++) {
- rgb_matrix_set_color(LED_SIDE_RIGHT[i], RGB_MAGENTA);
- rgb_matrix_set_color(LED_SIDE_LEFT[i], RGB_MAGENTA);
- }
- break;
- #endif
-
- // Paddle game logic
- #ifdef GAME_ENABLE
- case _GAME:
- if (!game_start) {
- srand((unsigned int) timer_read());
-
- // Store user light settings
- last_hsv = rgb_matrix_get_hsv();
- rgb_matrix_sethsv_noeeprom(0, 0, 0);
-
- paddle_pos_full = 8;
- paddle_lives = 4;
- bounce_count = 0;
- level_number = 0;
- damage_count = 0;
-
- init_ball(0);
- ball[1].on = false;
- ball_timer = timer_read();
-
- game_start = true;
- }
-
- // Set level indicator
- if (level_number < 12) {
- rgb_matrix_set_color(GAME_R0[level_number], RGB_BLUE);
- }
-
- // Set life bar
- for (uint8_t i = 0; i < paddle_lives; i++) {
- rgb_matrix_set_color(GAME_LIVES[i], RGB_GREEN);
- }
-
- uint8_t paddle_pos = paddle_pos_full >> 1;
-
- if (damage_count > 0) {
- // Flash paddle when receiving damage
- if (timer_elapsed(damage_timer) > 500) {
- --damage_count;
- damage_timer = timer_read();
- }
- if ((damage_count & 1) == 0) {
- for (uint8_t i = 0; i < 3; i++) {
- rgb_matrix_set_color(GAME_PADDLE[paddle_pos + i], RGB_RED);
- }
- }
- if (damage_count == 0) {
- ball_timer = timer_read();
- }
-
- } else if (paddle_lives == 0) {
- // Game over
- for (uint8_t i = 0; i < ARRAY_SIZE(LED_GAME_OVER); i++) {
- rgb_matrix_set_color(LED_GAME_OVER[i], RGB_RED);
- }
-
- } else if (level_number >= 12) {
- // You win
- if (rgb_value.r == 0xff && rgb_value.g < 0xff) {
- if (rgb_value.b > 0) {
- --rgb_value.b;
- } else {
- ++rgb_value.g;
- }
- } else if (rgb_value.g == 0xff && rgb_value.b < 0xff) {
- if (rgb_value.r > 0) {
- --rgb_value.r;
- } else {
- ++rgb_value.b;
- }
- } else if (rgb_value.b == 0xff && rgb_value.r < 0xff) {
- if (rgb_value.g > 0) {
- --rgb_value.g;
- } else {
- ++rgb_value.r;
- }
- }
-
- for (uint8_t i = 0; i < 3; i++) {
- rgb_matrix_set_color(GAME_PADDLE[paddle_pos + i], rgb_value.r, rgb_value.g, rgb_value.b);
- }
- rgb_matrix_set_color(GAME_SMILE1[paddle_pos], rgb_value.r, rgb_value.g, rgb_value.b);
- rgb_matrix_set_color(GAME_SMILE1[paddle_pos + 3], rgb_value.r, rgb_value.g, rgb_value.b);
- rgb_matrix_set_color(GAME_SMILE2[paddle_pos], rgb_value.r, rgb_value.g, rgb_value.b);
- rgb_matrix_set_color(GAME_SMILE2[paddle_pos + 3], rgb_value.r, rgb_value.g, rgb_value.b);
-
- } else {
- // normal game loop
-
- // Set paddle position
- for (uint8_t i = 0; i < 3; i++) {
- rgb_matrix_set_color(GAME_PADDLE[paddle_pos + i], RGB_GREEN);
- }
-
- // Ball movement logic happens at intervals
- if (timer_elapsed(ball_timer) > GAME_TIMER[level_number]) {
- for (int i = 0; i < 2; ++i) {
- if (ball[i].on) {
- // Ball movement
- if (ball[i].up) {
- if (ball[i].y > 0) {
- --ball[i].y;
- if (!ball[i].left) ++ball[i].x;
- } else {
- // Count reflections. If > 10, increase level
- ++bounce_count;
- if (bounce_count >= 10) {
- bounce_count = 0;
- ++level_number;
- }
- ball[i].on = false;
- }
- } else {
- ++ball[i].y;
- if (ball[i].left) --ball[i].x;
- if (ball[i].y > 4) {
- // Remove a life if ball isn't returned and isn't enemy
- if (!ball[i].enemy) {
- hurt_paddle();
- i = 2;
- } else {
- ball[i].on = false;
- }
- }
- }
- }
- }
- if (ball[0].y == 4 && !ball[1].on) {
- init_ball(1);
- }
- if (ball[1].y == 4 && !ball[0].on) {
- init_ball(0);
- }
- if (!ball[0].on && !ball[1].on) {
- init_ball(0);
- }
- ball_timer = timer_read();
- }
-
- // Other ball stuff
- for (int i = 0; i < 2; ++i) {
- if (ball[i].on) {
- // Ball deflection logic
- if (!ball[i].up && ball[i].y == 4 && (ball[i].x == paddle_pos || ball[i].x == paddle_pos - 1 || ball[i].x == paddle_pos + 1)) {
- if (!ball[i].enemy) {
- --ball[i].y;
- if (!ball[i].left) {
- ++ball[i].x;
- }
- ball[i].up = true;
- } else {
- hurt_paddle();
- i = 2;
- }
- }
-
- // Ball display
- switch (ball[i].y) {
- case 0:
- if (ball[i].enemy) {
- rgb_matrix_set_color(GAME_R0[ball[i].x], RGB_RED);
- } else {
- rgb_matrix_set_color(GAME_R0[ball[i].x], RGB_WHITE);
- }
- break;
-
- case 1:
- if (ball[i].enemy) {
- rgb_matrix_set_color(GAME_R1[ball[i].x], RGB_RED);
- } else {
- rgb_matrix_set_color(GAME_R1[ball[i].x], RGB_WHITE);
- }
- break;
-
- case 2:
- if (ball[i].enemy) {
- rgb_matrix_set_color(GAME_R2[ball[i].x], RGB_RED);
- } else {
- rgb_matrix_set_color(GAME_R2[ball[i].x], RGB_WHITE);
- }
- break;
-
- case 3:
- if (ball[i].enemy) {
- rgb_matrix_set_color(GAME_R3[ball[i].x], RGB_RED);
- } else {
- rgb_matrix_set_color(GAME_R3[ball[i].x], RGB_WHITE);
- }
- break;
-
- case 4:
- if (ball[i].enemy) {
- rgb_matrix_set_color(GAME_R4[ball[i].x], RGB_RED);
- } else {
- rgb_matrix_set_color(GAME_R4[ball[i].x], RGB_WHITE);
- }
- break;
- }
- }
- }
- }
- break;
- #endif //GAME_ENABLE
- default:
- #ifdef GAME_ENABLE
- if (game_start) {
- // Reset lighting settings
- game_start = false;
- rgb_matrix_sethsv_noeeprom(last_hsv.h, last_hsv.s, last_hsv.v);
- }
- #endif //GAME_ENABLE
- break;
- }
- return false;
-}
-#endif
-
-void keyboard_post_init_keymap(void) {
- // keyboard_post_init_user() moved to userspace
- #ifdef RGB_MATRIX_ENABLE
- activate_rgb_nightmode(false); // Set to true if you want to startup in nightmode, otherwise use Fn + Z to toggle
- #endif
-}
diff --git a/keyboards/gmmk/pro/rev1/iso/keymaps/gourdo1/paddlegame.h b/keyboards/gmmk/pro/rev1/iso/keymaps/gourdo1/paddlegame.h
deleted file mode 100644
index 3d33975cfe..0000000000
--- a/keyboards/gmmk/pro/rev1/iso/keymaps/gourdo1/paddlegame.h
+++ /dev/null
@@ -1,48 +0,0 @@
-/* Copyright 2021 Glorious, LLC <salman@pcgamingrace.com>
- Copyright 2021 Tomas Guinan
-
-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/>.
-*/
-
-#ifdef GAME_ENABLE
-const uint16_t GAME_TIMER[] = {
- 400, 350, 300, 250, 400, 350, 300, 250, 225, 200, 175, 150
-};
-
-bool game_start = false;
-HSV last_hsv;
-static uint8_t paddle_pos_full;
-static uint8_t paddle_lives;
-static uint8_t level_number;
-static uint8_t bounce_count;
-static uint8_t damage_count;
-static uint16_t damage_timer;
-static uint16_t ball_timer;
-
-struct BallStruct
-{
- uint8_t x;
- uint8_t y;
- bool on;
- bool up;
- bool left;
- bool enemy;
-};
-
-struct BallStruct ball[2];
-
-void init_ball(uint8_t i);
-void hurt_paddle(void);
-
-#endif //GAME_ENABLE \ No newline at end of file
diff --git a/keyboards/gmmk/pro/rev1/iso/keymaps/gourdo1/readme.md b/keyboards/gmmk/pro/rev1/iso/keymaps/gourdo1/readme.md
deleted file mode 100644
index aebccf6d14..0000000000
--- a/keyboards/gmmk/pro/rev1/iso/keymaps/gourdo1/readme.md
+++ /dev/null
@@ -1,124 +0,0 @@
-# [gourdo1's](mailto:gourdo1@outlook.com) GMMK Pro Keyboard Layouts
-
-These Windows-centric layouts are based on Jonavin's GMMK Pro [layout](https://github.com/qmk/qmk_firmware/tree/master/keyboards/gmmk/pro/rev1/ansi/keymaps/jonavin) with many additions, fixes, a revamped keymap, persistent user customizations, updated layers, Pascal Getreuer's [autocorrect](https://getreuer.info/posts/keyboards/autocorrection/), Tomas Guinan's [paddle game](https://github.com/qmk/qmk_firmware/tree/master/keyboards/gmmk/pro/rev1/ansi/keymaps/paddlegame) and expanded RGB controls and effects.
-
-![image](https://raw.githubusercontent.com/gourdo1/media/main/susuwatari.jpg)
-
-* Up-to-date [Changelog](https://github.com/gourdo1/gmmkpro-media/blob/main/changelog.md)
-* Latest [ANSI firmware](https://github.com/gourdo1/gmmkpro-media/raw/main/gmmk_pro_rev1_ansi_gourdo1.bin) download. (Flash with [QMK Toolbox](https://github.com/qmk/qmk_toolbox/releases))
-* Latest [ISO firmware](https://github.com/gourdo1/gmmkpro-media/raw/main/gmmk_pro_rev1_iso_gourdo1.bin) download. (Flash with [QMK Toolbox](https://github.com/qmk/qmk_toolbox/releases))
-* Printable Keyboard [Cheatsheet](https://github.com/gourdo1/gmmkpro-media/raw/main/GMMK_Pro_Cheatsheet.pdf)
-
-## Features
-
-### Core Functionality
-
-* Support for both [ANSI](https://keebnews.com/ansi-vs-iso/) and [ISO](https://keebnews.com/ansi-vs-iso/) keyboard layouts.
-* Quick & Easy Customization: Open a text editor and hit [FN]` (tilde on ANSI; the key left of '1' on ISO layouts) to view toggle-able settings.
-* [VIA](https://www.caniusevia.com/) support enabled.
-* AutoCorrection: Pascal Getreuer's AutoCorrect code incorporated with 400 word dictionary on words > 4 characters.
-* Most [default Glorious shortcuts](https://cdn.shopify.com/s/files/1/0549/2681/files/GMMK_Pro_User_Guide.pdf) enabled
-* [N-key Rollover](https://en.wikipedia.org/wiki/Rollover_\(keyboard\)#n-key_rollover) (NKRO) -- toggled with [FN]R
-* 1000Hz polling rate with 5ms debounce time for quick response in games.
-* Mouse Keys! Don't want to move your hands off the keyboard or you didn't bring it with you? Use cursor keys to move the mouse.
-* Overlay numpad on 789-UIOP-JKL;-M,. & Space-bar mapped to Enter key for rapid number entry.
-* Gaming mode ([FN]Win-key) locks out Win-key and double-tap Shift Capslock; Also RGB highlights WSAD and nearby gaming keys.
-* Caps Word enabled: To capitalize the next word only, press and release left and right shift at the same time.
-* Multi-monitor app moving shortcuts: [FN] ],[ (square brackets) to move current app window to next monitor.
-* Capslock toggled by double tap of Left Shift key or FN + Capslock (RGB green highlighted).
-* Paddle game accessible via [FN]P. Hit [FN]P again or double tap [ESC] to exit.
-* Single-handed shortcut for Ctrl-Alt-Delete: [FN]/
-* Single-handed shortcut for WinKey-L (lock Windows): [FN]L
-* Domain shortcuts: [FN]. for .com, [FN]O for outlook.com, [FN]Y for yahoo.com, [FN]H for hotmail.com, [FN]G for gmail.com.
-* [Bootloader mode](https://github.com/qmk/qmk_firmware/blob/master/docs/newbs_flashing.md) accessible via [FN]Backslash for ANSI and FN(key next to Left Shift) for ISO
-* PrtScrn, Scroll Lock, Pause/Break are top right on the keyboard: [FN]F11, [FN]F12, [FN]F13
-* [Colemak](https://colemak.com/) key layout support (Accessible via Left Shift + turn Encoder clockwise until side LEDs light up purple)
-* Double tap ESC any time to revert to base layer.
-* RGB backlight effects expanded to include framebuffer effects and reactive keypress modes.
-* RGB backlight now remembers last color & effect settings after power down.
-
-### Quick & Easy Customization
-* Below features can be toggled by holding [FN] and pressing the number corresponding to that feature. Changes are saved to EEPROM for persistence.
-* Print current settings by opening a text editor and pressing [FN]~ (the key left of '1' on ISO layout keyboards)
-* Quick view current settings by holding [FN] and viewing RGB under number keys (green means ON, violet means OFF)
-
-#### Toggle-able Settings:
- 1. CapsLock RGB - Highlight under alpha keys
- 2. Numpad RGB - Highlight under numpad layer keys
- 3. ESC key - Double tap ESC key to go to base layer
- 4. Swap DEL and HOME - Default is DEL to the right of BKSPC & HOME is above BKSPC
- 5. Capslock function - Toggle between double tap LShift for CapsLock with Numpad on CapsLock key (default) and standard CapsLock
- 6. Encoder button - Default mutes volume; alternate plays/pauses media
- 7. Insert function - Toggle between SHIFT-BKSPC and SHIFT-DEL
- 8. Modded-Space override - Use standard Space in place of modded-Space functions
- 9. AutoCorrect - Internal (English) AutoCorrect; default is enabled
- 0. (ISO layouts only) CapsLock highlights extended alpha keys
-
-### Numpad + Mouse Keys (Capslock key)
-
-* Overlay numpad + [Mouse Keys](https://github.com/qmk/qmk_firmware/blob/master/docs/feature_mouse_keys.md) are accessed through Capslock key hold (temp) or double press (locked) with RGB highlighting
-* Numpad uses Space-bar as Enter for rapid number entry.
-* This layer disables much of the keyboard, except X/C/V for cut/copy/paste, WASD for cursor, Q/E for PgUp/PgDn, cursor keys become mouse keys, surrounding keys become mouse buttons and all number keys become numpad versions (so Alt char codes work regardless of which set you use)
-* FN and N keys light up orange if system numlock is off (inverted status), indicating numpad keys will not deliver expected output ([FN]N to toggle)
-* Double zero on comma key.
-* [Mouse Keys](https://github.com/qmk/qmk_firmware/blob/master/docs/feature_mouse_keys.md) allow you to use the mouse without taking your hand off the keyboard.
-* Mouse controls are: Cursor keys = move mouse; RShift = button1, End = button2, RCtrl = button3, PgUp/PgDn = Scroll wheel
-* Mouse Keys can also be accessed as a standalone layer by Left Shift-turning the Encoder until the cursor keys light up green
-
-### Encoder Functionality
-
-* Default knob turn changes volume; button press toggles mute
-* Exponential encoder: quick repeated volume up doubles increase; quick repeated volume down triples decrease.
-* FN + knob turn changes RGB idle timeout
-* FN + knob push puts PC to Sleep
-* holding Left Shift changes layers
-* holding Right Shift navigates page up/down
-* holding Left Ctrl navigates prev/next word
-* holding Right Ctrl changes RGB hue/color
-* holding Left Alt changes media prev/next track
-
-### Paddle Game
-
-* Based on [Tomas Guinan's excellent GMMK Pro paddle game](https://github.com/qmk/qmk_firmware/tree/master/keyboards/gmmk/pro/rev1/ansi/keymaps/paddlegame)
-* Paddle Game playable by pressing [FN]P (P lights up green in FN layer if game is enabled in firmware, otherwise it lights up red)
-* Use rotary encoder to control paddle
-* Contains 12 levels, indicated by blue LED on F-key row
-* Player has 4 lives, indicated by nav cluster
-* Deflect white balls while avoiding red ones
-* Use [FN]P, double tap ESC or otherwise change layer to quit game
-
-### Global RGB Controls
-
-* RGB backlight lighting effect: [FN]up/down
-* RGB backlight effect speed: [FN]left/right
-* RGB backlight hue cycle: [FN]A/D
-* RGB backlight brightness: [FN]W/S
-* RGB backlight saturation: [FN]Q/E
-* RGB backlight night mode toggle: [FN]Z (indicators still work)
-* RGB backlight timeout: [FN]Encoder or "-" and "=" (default 15 minutes)
- * F-key row indicator lights (cyan and blue) in FN layer display the current backlight timeout in minutes
-* [FN]Z to turn off RGB backlighting (indicator lights still work); press again to toggle
-* Left side RGB indicators in order from top: Scroll Lock (red), Numpad (blue), Capslock (green).
-
-### Advanced Controls
-
-* [FN]\ or [FN]B to get to bootloader mode (use key next to Left Shift on ISO)
-* [FN][ESC] to clear EEPROM
-* [FN]R to toggle N-key Rollover
-* [FN]N to toggle system numlock
-* [FN]/ is single-handed shortcut to Ctrl-Alt-Delete
-* [FN]L is single-handed shortcut to Win-L (lock Windows)
-* [FN][Encoder press] to sleep Windows PC
-
-## Layer Diagrams (ANSI)
-### Base layer
-![image](https://raw.githubusercontent.com/gourdo1/gmmkpro-media/main/base.png)
-
-### FN Layer
-![image](https://raw.githubusercontent.com/gourdo1/gmmkpro-media/main/fn1.png)
-
-### Layer 2 (Numpad)
-![image](https://raw.githubusercontent.com/gourdo1/gmmkpro-media/main/numpad.png)
-
-### COLEMAK layer
-![image](https://user-images.githubusercontent.com/71780717/131235050-980d2f54-2d23-4ae8-a83f-9fcdbe60d6cb.png)
diff --git a/keyboards/gmmk/pro/rev1/iso/keymaps/gourdo1/rgb_matrix_map.h b/keyboards/gmmk/pro/rev1/iso/keymaps/gourdo1/rgb_matrix_map.h
deleted file mode 100644
index abcdb82aeb..0000000000
--- a/keyboards/gmmk/pro/rev1/iso/keymaps/gourdo1/rgb_matrix_map.h
+++ /dev/null
@@ -1,433 +0,0 @@
-/* Copyright 2021 Jonavin Eng @Jonavin
- Copyright 2022 gourdo1 <gourdo1@outlook.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/>.
-*/
-
-#ifdef RGB_MATRIX_ENABLE
-
-//Define variables for Game
-bool fn_active = false;
-RGB rgb_value;
-
-// Custom GMMK Pro-specific RGB color customizations (defaults found in quantum/color.h)
-#define RGB_GODSPEED 0x00, 0xE4, 0xFF // color for matching keycaps
-#define RGB_NAUTILUS 0x00, 0xA4, 0xA9 // Nautilus Font colors
-#define RGB_OFFBLUE 0x00, 0x80, 0xFF // new color: blue with a hint of green
-#define RGB_DKRED 0x28, 0x00, 0x00 // new color: dark red
-#define RGB_ORANGE2 0xFF, 0x28, 0x00 // fix: reduced green from 80 to 28
-#define RGB_PURPLE2 0x80, 0x00, 0xFF // fix: increased red from 7A to 80
-#define RGB_SPRINGGREEN2 0x00, 0xFF, 0x10 // fix: blue was 80, now 10
-#define RGB_YELLOW2 0xFF, 0xB0, 0x00 // fix: green was FF, now B0
-#define RGB_OFF RGB_BLACK
-
-// Added by gourdo1 for RGB testing
-// Red Green Blue Expected GMMK Pro result
-#define RGB_TEST1 0xFF, 0x00, 0x00 // Q - red good!
-#define RGB_TEST2 0x0F, 0xFF, 0x00 // W - green good!
-#define RGB_TEST3 0x00, 0x00, 0xFF // E - blue good!
-#define RGB_TEST4 0xFF, 0xB0, 0x00 // R - yellow slightly green heavy - reduced green LED by quite a bit
-#define RGB_TEST5 0x00, 0xFF, 0xFF // T - cyan good!
-#define RGB_TEST6 0xFF, 0x00, 0xFF // Y - magenta very slightly blue heavy?
-#define RGB_TEST7 0xFF, 0x28, 0x00 // U - orange very green heavy at default
-#define RGB_TEST8 0xFF, 0x00, 0x80 // I - pink good!
-#define RGB_TEST9 0x80, 0xFF, 0x00 // O - chartreus good!
-#define RGB_TEST10 0x00, 0xFF, 0x10 // P - springgrn fixed: was too blue because green LED has blue in it already
-#define RGB_TEST11 0x00, 0x80, 0xFF // A - grn blue good!
-#define RGB_TEST12 0x80, 0x00, 0xFF // S - purple good!
-
-// RGB LED locations
-enum led_location_map {
- LED_ESC, // 0, ESC, k13
- LED_GRV, // 1, `, k16
- LED_TAB, // 2, Tab, k11
- LED_CAPS, // 3, Caps, k21
- LED_LSFT, // 4, Sh_L, k00
- LED_LCTL, // 5, Ct_L, k06
- LED_F1, // 6, F1, k26
- LED_1, // 7, 1, k17
- LED_Q, // 8, Q, k10
- LED_A, // 9, A, k12
- LED_Z, // 10, Z, k14
- LED_LWIN, // 11, Win_L, k90
- LED_F2, // 12, F2, k36
- LED_2, // 13, 2, k27
- LED_W, // 14, W, k20
- LED_S, // 15, S, k22
- LED_X, // 16, X, k24
- LED_LALT, // 17, Alt_L, k93
- LED_F3, // 18, F3, k31
- LED_3, // 19, 3, k37
- LED_E, // 20, E, k30
- LED_D, // 21, D, k32
- LED_C, // 22, C, k34
- LED_F4, // 23, F4, k33
- LED_4, // 24, 4, k47
- LED_R, // 25, R, k40
- LED_F, // 26, F, k42
- LED_V, // 27, V, k44
- LED_F5, // 28, F5, k07
- LED_5, // 29, 5, k46
- LED_T, // 30, T, k41
- LED_G, // 31, G, k43
- LED_B, // 32, B, k45
- LED_SPC, // 33, SPACE, k94
- LED_F6, // 34, F6, k63
- LED_6, // 35, 6, k56
- LED_Y, // 36, Y, k51
- LED_H, // 37, H, k53
- LED_N, // 38, N, k55
- LED_F7, // 39, F7, k71
- LED_7, // 40, 7, k57
- LED_U, // 41, U, k50
- LED_J, // 42, J, k52
- LED_M, // 43, M, k54
- LED_F8, // 44, F8, k76
- LED_8, // 45, 8, k67
- LED_I, // 46, I, k60
- LED_K, // 47, K, k62
- LED_COMM, // 48, ,, k64
- LED_RALT, // 49, Alt_R, k95
- LED_F9, // 50, F9, ka6
- LED_9, // 51, 9, k77
- LED_O, // 52, O, k70
- LED_L, // 53, L, k72
- LED_DOT, // 54, ., k74
- LED_FN, // 55, FN, k92
- LED_F10, // 56, F10, ka7
- LED_0, // 57, 0, k87
- LED_P, // 58, P, k80
- LED_SCLN, // 59, ;, k82
- LED_SLSH, // 60, ?, k85
- LED_F11, // 61, F11, ka3
- LED_MINS, // 62, -, k86
- LED_LBRC, // 63, [, k81
- LED_QUOT, // 64, ", k83
- LED_RCTL, // 65, Ct_R, k04
- LED_F12, // 66, F12, ka5
- LED_BSLS, // 67, \, k23
- LED_L1, // 68, LED, l01
- LED_R1, // 69, LED, l11
- LED_PRT, // 70, Prt, k97
- LED_L2, // 71, LED, l02
- LED_R2, // 72, LED, l12
- LED_DEL, // 73, Del, k65
- LED_L3, // 74, LED, l03
- LED_R3, // 75, LED, l13
- LED_PGUP, // 76, PgUp, k15
- LED_L4, // 77, LED, l04
- LED_R4, // 78, LED, l14
- LED_EQL, // 79, =, k66
- LED_RIGHT, // 80, Right, k05
- LED_L5, // 81, LED, l05
- LED_R5, // 82, LED, l15
- LED_END, // 83, End, k75
- LED_L6, // 84, LED, l06
- LED_R6, // 85, LED, l16
- LED_BSPC, // 86, BSpc, ka1
- LED_PGDN, // 87, PgDn, k25
- LED_L7, // 88, LED, l07
- LED_R7, // 89, LED, l17
- LED_RBRC, // 90, ], k61
- LED_RSFT, // 91, Sh_R, k91
- LED_L8, // 92, LED, l08
- LED_R8, // 93, LED, l18
- LED_UP, // 94, Up, k35
- LED_HASH, // 95, #, k84
- LED_LEFT, // 96, Left, k03
- LED_ENT, // 97, Enter, ka4
- LED_DOWN // 98, Down, k73
-};
-
-const uint8_t LED_LIST_WASD[] = {
- LED_W,
- LED_A,
- LED_S,
- LED_D
-};
-
-const uint8_t LED_LIST_ARROWS[] = {
- LED_LEFT,
- LED_RIGHT,
- LED_UP,
- LED_DOWN
-};
-
-const uint8_t LED_LIST_FUNCROW[] = {
- LED_ESC,
- LED_F1,
- LED_F2,
- LED_F3,
- LED_F4,
- LED_F5,
- LED_F6,
- LED_F7,
- LED_F8,
- LED_F9,
- LED_F10,
- LED_F11,
- LED_F12,
- LED_PRT
-};
-
-const uint8_t LED_LIST_NUMROW[] = {
- LED_GRV,
- LED_1,
- LED_2,
- LED_3,
- LED_4,
- LED_5,
- LED_6,
- LED_7,
- LED_8,
- LED_9,
- LED_0,
- LED_MINS,
- LED_EQL,
- LED_BSPC,
- LED_DEL
-};
-
-const uint8_t LED_LIST_LETTERS[] = {
- LED_Q,
- LED_W,
- LED_E,
- LED_R,
- LED_T,
- LED_Y,
- LED_U,
- LED_I,
- LED_O,
- LED_P,
- LED_A,
- LED_S,
- LED_D,
- LED_F,
- LED_G,
- LED_H,
- LED_J,
- LED_K,
- LED_L,
- LED_Z,
- LED_X,
- LED_C,
- LED_V,
- LED_B,
- LED_N,
- LED_M
-};
-
-const uint8_t LED_LIST_LETTERS_DE[] = {
- LED_Q,
- LED_W,
- LED_E,
- LED_R,
- LED_T,
- LED_Y,
- LED_U,
- LED_I,
- LED_O,
- LED_P,
- LED_A,
- LED_S,
- LED_D,
- LED_F,
- LED_G,
- LED_H,
- LED_J,
- LED_K,
- LED_L,
- LED_Z,
- LED_X,
- LED_C,
- LED_V,
- LED_B,
- LED_N,
- LED_M,
- LED_SCLN,
- LED_LBRC,
- LED_QUOT
-};
-
-const uint8_t LED_LIST_NUMPAD[] = {
- LED_1,
- LED_2,
- LED_3,
- LED_4,
- LED_5,
- LED_6,
- LED_7,
- LED_8,
- LED_9,
- LED_0,
- LED_MINS,
- LED_EQL,
- LED_U,
- LED_I,
- LED_O,
- LED_P,
- LED_J,
- LED_K,
- LED_L,
- LED_SCLN,
- LED_ENT,
- LED_M,
- LED_COMM,
- LED_DOT,
- LED_SLSH,
- LED_END,
- LED_RIGHT
-};
-
-const uint8_t LED_SIDE_LEFT[] = {
- LED_L1,
- LED_L2,
- LED_L3,
- LED_L4,
- LED_L5,
- LED_L6,
- LED_L7,
- LED_L8
-};
-
-const uint8_t LED_SIDE_RIGHT[] = {
- LED_R1,
- LED_R2,
- LED_R3,
- LED_R4,
- LED_R5,
- LED_R6,
- LED_R7,
- LED_R8
-};
-
-#ifdef GAME_ENABLE
-// Game LED rules
-const uint8_t GAME_LIVES[] = {
- LED_DEL,
- LED_PGUP,
- LED_PGDN,
- LED_END
-};
-const uint8_t GAME_PADDLE[] = {
- LED_Z,
- LED_X,
- LED_C,
- LED_V,
- LED_B,
- LED_N,
- LED_M,
- LED_COMM,
- LED_DOT,
- LED_SLSH
-};
-const uint8_t GAME_SMILE1[] = {
- LED_A,
- LED_S,
- LED_D,
- LED_F,
- LED_G,
- LED_H,
- LED_J,
- LED_K,
- LED_L,
- LED_SCLN,
- LED_QUOT
-};
-const uint8_t GAME_SMILE2[] = {
- LED_2,
- LED_3,
- LED_4,
- LED_5,
- LED_6,
- LED_7,
- LED_8,
- LED_9,
- LED_0,
- LED_MINS,
- LED_EQL
-};
-const uint8_t GAME_R4[] = {
- LED_X,
- LED_C,
- LED_V,
- LED_B,
- LED_N,
- LED_M,
- LED_COMM,
- LED_DOT
-};
-const uint8_t GAME_R3[] = {
- LED_S,
- LED_D,
- LED_F,
- LED_G,
- LED_H,
- LED_J,
- LED_K,
- LED_L,
- LED_SCLN
-};
-const uint8_t GAME_R2[] = {
- LED_W,
- LED_E,
- LED_R,
- LED_T,
- LED_Y,
- LED_U,
- LED_I,
- LED_O,
- LED_P,
- LED_LBRC
-};
-const uint8_t GAME_R1[] = {
- LED_2,
- LED_3,
- LED_4,
- LED_5,
- LED_6,
- LED_7,
- LED_8,
- LED_9,
- LED_0,
- LED_MINS,
- LED_EQL
-};
-const uint8_t GAME_R0[] = {
- LED_F1,
- LED_F2,
- LED_F3,
- LED_F4,
- LED_F5,
- LED_F6,
- LED_F7,
- LED_F8,
- LED_F9,
- LED_F10,
- LED_F11,
- LED_F12
-};
-const uint8_t LED_GAME_OVER[] = {
- LED_5,
- LED_8,
- LED_F,
- LED_G,
- LED_H,
- LED_J,
- LED_C,
- LED_M
-};
-#endif //GAME_ENABLE
-
-#endif \ No newline at end of file
diff --git a/keyboards/gmmk/pro/rev1/iso/keymaps/gourdo1/rules.mk b/keyboards/gmmk/pro/rev1/iso/keymaps/gourdo1/rules.mk
deleted file mode 100644
index 1eb14ebbef..0000000000
--- a/keyboards/gmmk/pro/rev1/iso/keymaps/gourdo1/rules.mk
+++ /dev/null
@@ -1,22 +0,0 @@
-LTO_ENABLE = yes # link time optimization -- achieves a smaller compiled size
-CONSOLE_ENABLE = no
-COMMAND_ENABLE = no
-MOUSEKEY_ENABLE = yes
-
-VIA_ENABLE = yes
-TAP_DANCE_ENABLE = no
-BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite
-CAPS_WORD_ENABLE = yes # Enable built-in Caps Word functionality
-
-TD_LSFT_CAPSLOCK_ENABLE = yes
-IDLE_TIMEOUT_ENABLE = yes
-STARTUP_NUMLOCK_ON = yes
-ENCODER_DEFAULTACTIONS_ENABLE = no
-
-COLEMAK_LAYER_ENABLE = yes # Enable Colemak layer / set to no to disable
-INVERT_NUMLOCK_INDICATOR = yes
-
-GAME_ENABLE ?= yes # Enable Paddle Game / set to no to disable
-ifeq ($(strip $(GAME_ENABLE)), yes)
- OPT_DEFS += -DGAME_ENABLE
-endif
diff --git a/keyboards/gmmk/pro/rev1/iso/keymaps/jonavin/config.h b/keyboards/gmmk/pro/rev1/iso/keymaps/jonavin/config.h
deleted file mode 100644
index 539f78874a..0000000000
--- a/keyboards/gmmk/pro/rev1/iso/keymaps/jonavin/config.h
+++ /dev/null
@@ -1,39 +0,0 @@
-/* Copyright 2021 Jonavin Eng
- *
- * 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 TAPPING_TOGGLE 2
-// TT set to two taps
-
-/* Handle GRAVESC combo keys */
-#define GRAVE_ESC_ALT_OVERRIDE
- //Always send Escape if Alt is pressed
-#define GRAVE_ESC_CTRL_OVERRIDE
- //Always send Escape if Control is pressed
-
-#define TAPPING_TERM 180
-
-#ifdef RGB_MATRIX_ENABLE
-# define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_SOLID_COLOR
-# define RGB_DISABLE_WHEN_USB_SUSPENDED
-#endif
-
-// add fifth layer for colemak -- set "COLEMAK_LAYER_ENABLE = yes" in rules.mk to enable
-#if defined COLEMAK_LAYER_ENABLE
-# define DYNAMIC_KEYMAP_LAYER_COUNT 5
-# define _COLEMAK 4
-#endif // COLEMAK_LAYER_ENABLE
diff --git a/keyboards/gmmk/pro/rev1/iso/keymaps/jonavin/keymap.c b/keyboards/gmmk/pro/rev1/iso/keymaps/jonavin/keymap.c
deleted file mode 100644
index 82359551d1..0000000000
--- a/keyboards/gmmk/pro/rev1/iso/keymaps/jonavin/keymap.c
+++ /dev/null
@@ -1,194 +0,0 @@
-/* Copyright 2021 Glorious, LLC <salman@pcgamingrace.com>
- Copyright 2021 Jonavin
- Copyright 2022 RustyBrakes (ISO conversion)
-
-This program is free software: you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 2 of the License, or
-(at your option) any later version.
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-You should have received a copy of the GNU General Public License
-along with this program. If not, see <http://www.gnu.org/licenses/>.
-*/
-
-#include QMK_KEYBOARD_H
-#include "rgb_matrix_map.h"
-#include "jonavin.h"
-
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
-// ESC F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 Ins Rotary(Mute)
-// ~ 1 2 3 4 5 6 7 8 9 0 - (=) BackSpc Del
-// Tab Q W E R T Y U I O P [ ] PgUp
-// Caps A S D F G H J K L ; " # Enter PgDn
-// Sh_L \ Z X C V B N M , . ? Sh_R Up End
-// Ct_L Win_L Alt_L SPACE Alt_R FN Ct_R Left Down Right
-
-
- [_BASE] = 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_INS, KC_MUTE,
- 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_DEL,
- 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,
- TT(_LOWER), 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_LSFTCAPSWIN, 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
- ),
-
- [_FN1] = LAYOUT(
- _______, KC_MYCM, KC_WHOM, KC_CALC, KC_MSEL, KC_MPRV, KC_MNXT, KC_MPLY, KC_MSTP, KC_MUTE, KC_VOLD, KC_VOLU, _______, KC_CALC, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_TOG,
- _______, _______, RGB_VAI, _______, _______, _______, _______, KC_PSCR, KC_SCRL, KC_PAUS, _______, _______, _______, KC_HOME,
- KC_CAPS, _______, RGB_VAD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_END,
- _______, QK_BOOT, RGB_NITE,RGB_HUI, _______, _______, _______, KC_NUM, _______, RGB_TOD, RGB_TOI, _______, _______, RGB_MOD, _______,
- _______, KC_WINLCK, _______, _______, _______, _______, _______, RGB_SPD, RGB_RMOD, RGB_SPI
- ),
-
- [_LOWER] = LAYOUT(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, KC_P7, KC_P8, KC_P9, KC_P0, KC_PMNS, KC_PPLS, _______, _______,
- _______, KC_HOME, KC_UP, KC_END, KC_PGUP, _______, KC_TAB, KC_P4, KC_P5, KC_P6, KC_PDOT, _______, _______, KC_HOME,
- _______, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, _______, _______, KC_P1, KC_P2, KC_P3, KC_NO, KC_PAST, _______, KC_PENT, KC_END,
- _______, _______, KC_NO, KC_DEL, KC_INS, KC_NO, KC_NO, KC_NO, KC_P0, KC_00, KC_PDOT, KC_PSLS, _______, RCTL(KC_PGUP), _______,
- _______, _______, _______, KC_BSPC, _______, _______, _______, RCTL(KC_LEFT), RCTL(KC_PGDN), RCTL(KC_RIGHT)
- ),
-
-#ifdef COLEMAK_LAYER_ENABLE
- [_COLEMAK] = 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_INS, KC_MUTE,
- 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_DEL,
- 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,
- TT(_LOWER), 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_LSFTCAPSWIN, 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
- ),
-#endif // COLEMAK_LAYER_ENABLE
-};
-
-#if defined(ENCODER_ENABLE) && !defined(ENCODER_DEFAULTACTIONS_ENABLE) // Encoder Functionality when not using userspace defaults
- void encoder_action_rgbhue(bool clockwise) {
- if (clockwise)
- rgblight_increase_hue_noeeprom();
- else
- rgblight_decrease_hue_noeeprom();
- }
-
- bool encoder_update_user(uint8_t index, bool clockwise) {
- uint8_t mods_state = get_mods();
- if (mods_state & MOD_BIT(KC_LSFT) ) { // If you are holding L shift, encoder changes layers
- encoder_action_layerchange(clockwise);
- } else if (mods_state & MOD_BIT(KC_RSFT) ) { // If you are holding R shift, Page up/dn
- unregister_mods(MOD_BIT(KC_RSFT));
- encoder_action_navpage(clockwise);
- register_mods(MOD_BIT(KC_RSFT));
- } else if (mods_state & MOD_BIT(KC_LCTL)) { // if holding Left Ctrl, navigate next/prev word
- encoder_action_navword(clockwise);
- } else if (mods_state & MOD_BIT(KC_RCTL)) { // if holding Right Ctrl, change rgb hue/colour
- encoder_action_rgbhue(clockwise);
- } else if (mods_state & MOD_BIT(KC_LALT)) { // if holding Left Alt, change media next/prev track
- encoder_action_mediatrack(clockwise);
- } else {
- switch(get_highest_layer(layer_state)) {
- case _FN1:
- #ifdef IDLE_TIMEOUT_ENABLE
- timeout_update_threshold(clockwise);
- #endif
- break;
- default:
- encoder_action_volume(clockwise); // Otherwise it just changes volume
- break;
- }
- }
- //return true; //set to return false to counteract enabled encoder in pro.c
- return false;
- }
-#endif // ENCODER_ENABLE && !ENCODER_DEFAULTACTIONS_ENABLE
-
-#ifdef RGB_MATRIX_ENABLE
- // Capslock, Scroll lock and Numlock indicator on Left side lights.
- bool rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) {
- led_t led_state = host_keyboard_led_state();
- if (get_rgb_nightmode()) rgb_matrix_set_color_all(RGB_OFF);
- if (led_state.scroll_lock) {
- rgb_matrix_set_color(LED_L1, RGB_GREEN);
- rgb_matrix_set_color(LED_L2, RGB_GREEN);
- }
-
- #ifdef INVERT_NUMLOCK_INDICATOR
- if (!led_state.num_lock) { // on if NUM lock is OFF
- rgb_matrix_set_color(LED_L3, RGB_MAGENTA);
- rgb_matrix_set_color(LED_L4, RGB_MAGENTA);
- }
- #else
- if (led_state.num_lock) { // Normal, on if NUM lock is ON
- rgb_matrix_set_color(LED_L3, RGB_MAGENTA);
- rgb_matrix_set_color(LED_L4, RGB_MAGENTA);
- }
- #endif // INVERT_NUMLOCK_INDICATOR
-
- if (led_state.caps_lock) {
- rgb_matrix_set_color(LED_L5, RGB_RED);
- rgb_matrix_set_color(LED_L6, RGB_RED);
- rgb_matrix_set_color(LED_L7, RGB_RED);
- }
- if (keymap_config.no_gui) {
- rgb_matrix_set_color(LED_LWIN, RGB_RED); //light up Win key when disabled
- }
- switch(get_highest_layer(layer_state)){ // special handling per layer
- case _FN1: // on Fn layer select what the encoder does when pressed
- rgb_matrix_set_color(LED_R2, RGB_RED);
- rgb_matrix_set_color(LED_R3, RGB_RED);
- rgb_matrix_set_color(LED_R4, RGB_RED);
- rgb_matrix_set_color(LED_FN, RGB_RED); //FN key
-
- // Add RGB Timeout Indicator -- shows 0 to 139 using F row and num row; larger numbers using 16bit code
- uint16_t timeout_threshold = get_timeout_threshold();
- if (timeout_threshold <= 10) rgb_matrix_set_color(LED_LIST_FUNCROW[timeout_threshold], RGB_RED);
- else if (timeout_threshold < 140) {
- rgb_matrix_set_color(LED_LIST_FUNCROW[(timeout_threshold / 10)], RGB_RED);
- rgb_matrix_set_color(LED_LIST_NUMROW[(timeout_threshold % 10)], RGB_RED);
- } else { // >= 140 minutes, just show these 3 lights
- rgb_matrix_set_color(LED_LIST_NUMROW[10], RGB_RED);
- rgb_matrix_set_color(LED_LIST_NUMROW[11], RGB_RED);
- rgb_matrix_set_color(LED_LIST_NUMROW[12], RGB_RED);
- }
- break;
- case _LOWER:
- for (uint8_t i=0; i<ARRAYSIZE(LED_LIST_NUMPAD); i++) {
- rgb_matrix_set_color(LED_LIST_NUMPAD[i], RGB_MAGENTA);
- }
- rgb_matrix_set_color(LED_R4, RGB_MAGENTA);
- rgb_matrix_set_color(LED_R5, RGB_MAGENTA);
- rgb_matrix_set_color(LED_R6, RGB_MAGENTA);
- break;
- case _RAISE:
- rgb_matrix_set_color(LED_R6, RGB_GREEN);
- rgb_matrix_set_color(LED_R7, RGB_GREEN);
- rgb_matrix_set_color(LED_R8, RGB_GREEN);
- break;
-#ifdef COLEMAK_LAYER_ENABLE
- case _COLEMAK:
- for (uint8_t i=0; i<ARRAYSIZE(LED_SIDE_RIGHT); i++) {
- rgb_matrix_set_color(LED_SIDE_RIGHT[i], RGB_BLUE);
- }
- break;
-#endif
- default:
- break;
- }
- return false;
- }
-#endif
-
-
-void keyboard_post_init_keymap(void) {
- // keyboard_post_init_user() moved to userspace
- #ifdef RGB_MATRIX_ENABLE
- rgb_matrix_mode(RGB_MATRIX_SOLID_COLOR);
- rgb_matrix_set_color_all(RGB_NAUTILUS); // Default startup colour
- activate_rgb_nightmode(false); // Set to true if you want to startup in nightmode, otherwise use Fn + Z to toggle
- #endif
-}
diff --git a/keyboards/gmmk/pro/rev1/iso/keymaps/jonavin/readme.md b/keyboards/gmmk/pro/rev1/iso/keymaps/jonavin/readme.md
deleted file mode 100644
index f94a5eabbd..0000000000
--- a/keyboards/gmmk/pro/rev1/iso/keymaps/jonavin/readme.md
+++ /dev/null
@@ -1,53 +0,0 @@
-# jonavin's GMMK Pro ISO layout
-# Thanks to RustyBrakes for the keymap adjustments and ISO Layout testing
-
-- Add Fn layer keys from Glorious Core mapping that's missing in the default qmk mapping
-- Add PrtScr, Scroll Lock, Break, NumLock to Fn layer
-- Implement Win key lock using Fn+Win like in Glorious Core firmware
-- Layer 2 mod on Caps Lock with double-tap to switch to this layer, double tap to switch back
-- Layer 2 provides arrows on WASD and additional nav keys + right hand numpad with 00; an be used for Alt Code entry
-- Layer 2 left spacebar Backspace
-- add double tap of Left Shift to toggle Caps Lock
-- additional encoder functionality
- - FN Layer - change rgb idle timeout
- - holding Left shift, change layers
- - holding right shift, Navigate page up/down
- - holding Left Ctrl, navigate prev/next word
- - holding Right Ctrl, changes RGB hue/colour
- - holding Left Alt, change media prev/next track
- - default is change volume
-
-- LED/RGB Functionality
- - RGB idle timeout (default 5 minutes)
- - Can be changed in FN layer with < and > or encoder
- - setting to zero disables timeout
- - indicators in FN layer using RGB in FN and number rows to show the timeout in minutes
- - LED address location map as enum definition in rgb_matrix_map.h
- - LED group lists for arrows, numpad, F row, num row, left and right side LEDs
- - default startup in single mode with default colour
- - Capslock, Scroll Lock, and Num Lock (not set) indicator on left side LED
- - Layer indicator on right side LED
- - Fn key light up red when Fn layer activate
- - Win Key light up red when Win Lock mode enabled
- - Layer 2 activation lights up Numpad area
- - Fn + Z to turn off all RGB lights except rgb indicators; press again to toggle
-
-rules.mk OPTIONS - Active features from userspace
-STARTUP_NUMLOCK_ON = yes
- - turns on NUMLOCK by default
-
-ENCODER_DEFAULTACTIONS_ENABLE = yes
- - Enabled default encoder funtions
-
-TD_LSFT_CAPSLOCK_ENABLE = yes
- - This will enable double tap on Left Shift to toggle CAPSLOCK when using KC_LSFTCAPS
-
-IDLE_TIMEOUT_ENABLE = yes
- - Enables Timer functionality; for RGB idle timeouts that can be changed dynamically
-
-INVERT_NUMLOCK_INDICATOR
- - inverts the Num lock indicator, LED is on when num lokc is off
-
-COLEMAK_LAYER_ENABLE = yes
- - Enabled optional 5th layer for COLEMAK layout
- - Use Shift and encoder to enter 5th layer, right led indicator lights up BLUE
diff --git a/keyboards/gmmk/pro/rev1/iso/keymaps/jonavin/rgb_matrix_map.h b/keyboards/gmmk/pro/rev1/iso/keymaps/jonavin/rgb_matrix_map.h
deleted file mode 100644
index 1aa31f2a0f..0000000000
--- a/keyboards/gmmk/pro/rev1/iso/keymaps/jonavin/rgb_matrix_map.h
+++ /dev/null
@@ -1,146 +0,0 @@
-/* Copyright 2021 Jonavin Eng
- * Copyright 2022 RustyBrakes (ISO conversion)
- *
- * 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/>.
- */
-
-#ifdef RGB_MATRIX_ENABLE
-
- // Custom RGB Colours
- #define RGB_GODSPEED 0x00, 0xE4, 0xFF // colour for matching keycaps
- #define RGB_NAUTILUS 0x00, 0xA4, 0xA9 // Naurilus Font colours
-
- // RGB LED locations
- enum led_location_map {
- LED_ESC, // 0, ESC, k13
- LED_GRV, // 1, `, k16
- LEB_TAB, // 2, Tab, k11
- LED_CAPS, // 3, Caps, k21
- LED_LSFT, // 4, Sh_L, k00
- LED_LCTL, // 5, Ct_L, k06
- LED_F1, // 6, F1, k26
- LED_1, // 7, 1, k17
- LED_Q, // 8, Q, k10
- LED_A, // 9, A, k12
- LED_Z, // 10, Z, k14
- LED_LWIN, // 11, Win_L, k90
- LED_F2, // 12, F2, k36
- LED_2, // 13, 2, k27
- LED_W, // 14, W, k20
- LED_S, // 15, S, k22
- LED_X, // 16, X, k24
- LED_LALT, // 17, Alt_L, k93
- LED_F3, // 18, F3, k31
- LED_3, // 19, 3, k37
- LED_E, // 20, E, k30
- LED_D, // 21, D, k32
- LED_C, // 22, C, k34
- LED_F4, // 23, F4, k33
- LED_4, // 24, 4, k47
- LED_R, // 25, R, k40
- LED_F, // 26, F, k42
- LED_V, // 27, V, k44
- LED_F5, // 28, F5, k07
- LED_5, // 29, 5, k46
- LED_T, // 30, T, k41
- LED_G, // 31, G, k43
- LED_B, // 32, B, k45
- LED_SPC, // 33, SPACE, k94
- LED_F6, // 34, F6, k63
- LED_6, // 35, 6, k56
- LED_Y, // 36, Y, k51
- LED_H, // 37, H, k53
- LED_N, // 38, N, k55
- LED_F7, // 39, F7, k71
- LED_7, // 40, 7, k57
- LED_U, // 41, U, k50
- LED_J, // 42, J, k52
- LED_M, // 43, M, k54
- LED_F8, // 44, F8, k76
- LED_8, // 45, 8, k67
- LED_I, // 46, I, k60
- LED_K, // 47, K, k62
- LED_COMM, // 48, ,, k64
- LED_RALT, // 49, Alt_R, k95
- LED_F9, // 50, F9, ka6
- LED_9, // 51, 9, k77
- LED_O, // 52, O, k70
- LED_L, // 53, L, k72
- LED_DOT, // 54, ., k74
- LED_FN, // 55, FN, k92
- LED_F10, // 56, F10, ka7
- LED_0, // 57, 0, k87
- LED_P, // 58, P, k80
- LED_SCLN, // 59, ;, k82
- LED_SLSH, // 60, /, k85
- LED_F11, // 61, F11, ka3
- LED_MINS, // 62, -, k86
- LED_LBRC, // 63, [, k81
- LED_QUOT, // 64, ", k83
- LED_RCTL, // 65, Ct_R, k04
- LED_F12, // 66, F12, ka5
- LED_BSLS, // 67, \, k23
- LED_L1, // 68, LED, l01
- LED_R1, // 69, LED, l11
- LED_PRT, // 70, Prt, k97
- LED_L2, // 71, LED, l02
- LED_R2, // 72, LED, l12
- LED_DEL, // 73, Del, k65
- LED_L3, // 74, LED, l03
- LED_R3, // 75, LED, l13
- LED_PGUP, // 76, PgUp, k15
- LED_L4, // 77, LED, l04
- LED_R4, // 78, LED, l14
- LED_EQL, // 79, =, k66
- LED_RIGHT, // 80, Right, k05
- LED_L5, // 81, LED, l05
- LED_R5, // 82, LED, l15
- LED_END, // 83, End, k75
- LED_L6, // 84, LED, l06
- LED_R6, // 85, LED, l16
- LED_BSPC, // 86, BSpc, ka1
- LED_PGDN, // 87, PgDn, k25
- LED_L7, // 88, LED, l07
- LED_R7, // 89, LED, l17
- LED_RBRC, // 90, ], k61
- LED_RSFT, // 91, Sh_R, k91
- LED_L8, // 92, LED, l08
- LED_R8, // 93, LED, l18
- LED_UP, // 94, Up, k35
- LED_HASH, // 95, #, k84
- LED_LEFT, // 96, Left, k03
- LED_ENT, // 97, Enter, ka4
- LED_DOWN // 98, Down, k73
- };
-
- const uint8_t LED_LIST_WASD[] = { LED_W, LED_A, LED_S, LED_D };
-
- const uint8_t LED_LIST_ARROWS[] = { LED_LEFT, LED_RIGHT, LED_UP, LED_DOWN };
-
- const uint8_t LED_LIST_FUNCROW[] = { LED_ESC, LED_F1, LED_F2, LED_F3, LED_F4, LED_F5, LED_F6, LED_F7, LED_F8, LED_F9, LED_F10, LED_F11, LED_F12, LED_PRT};
-
- const uint8_t LED_LIST_NUMROW[] = { LED_GRV, LED_1, LED_2, LED_3, LED_4, LED_5, LED_6, LED_7, LED_8, LED_9, LED_0, LED_MINS, LED_EQL, LED_BSPC, LED_DEL};
-
- const uint8_t LED_LIST_NUMPAD[] = {
- LED_7, LED_8, LED_9,
- LED_U, LED_I, LED_O,
- LED_J, LED_K, LED_L,
- LED_M, LED_COMM, LED_DOT
- };
-
- const uint8_t LED_SIDE_LEFT[] = { LED_L1, LED_L2, LED_L3, LED_L4, LED_L5, LED_L6, LED_L7, LED_L8};
-
- const uint8_t LED_SIDE_RIGHT[] = { LED_R1, LED_R2, LED_R3, LED_R4, LED_R5, LED_R6, LED_R7, LED_R8};
-
-#endif
diff --git a/keyboards/gmmk/pro/rev1/iso/keymaps/jonavin/rules.mk b/keyboards/gmmk/pro/rev1/iso/keymaps/jonavin/rules.mk
deleted file mode 100644
index 1ffc2058a2..0000000000
--- a/keyboards/gmmk/pro/rev1/iso/keymaps/jonavin/rules.mk
+++ /dev/null
@@ -1,12 +0,0 @@
-VIA_ENABLE = yes
-MOUSEKEY_ENABLE = no
-TAP_DANCE_ENABLE = yes
-BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite
-
-TD_LSFT_CAPSLOCK_ENABLE = yes
-IDLE_TIMEOUT_ENABLE = yes
-STARTUP_NUMLOCK_ON = yes
-ENCODER_DEFAULTACTIONS_ENABLE = no
-
-COLEMAK_LAYER_ENABLE = yes #Enable Colemak layer / set to no to disable
-INVERT_NUMLOCK_INDICATOR = yes
diff --git a/keyboards/gmmk/pro/rev1/iso/keymaps/vitoni/config.h b/keyboards/gmmk/pro/rev1/iso/keymaps/vitoni/config.h
deleted file mode 100644
index 91fce71359..0000000000
--- a/keyboards/gmmk/pro/rev1/iso/keymaps/vitoni/config.h
+++ /dev/null
@@ -1,20 +0,0 @@
-// Copyright 2021 Victor Toni (@vitoni)
-// SPDX-License-Identifier: GPL-2.0-or-later
-
-#pragma once
-
-#if defined(RGB_MATRIX_ENABLE)
- #define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_SOLID_COLOR
- // number of milliseconds to wait until turning off RGB automatically
- #define RGB_MATRIX_TIMEOUT 300000 // 300 seconds / 5 min
- // start fading out before getting disabled
- // fading out is timed (depending on the rgb_matrix_config.speed) to have finished before reaching RGB_MATRIX_TIMEOUT
- #define RGB_DISABLE_WITH_FADE_OUT
- #define RGB_DISABLE_WHEN_USB_SUSPENDED
- // number of milliseconds to wait until activating RGB idle effects
- #define RGB_IDLE_TIMEOUT 4500 // 4.5 seconds
- // activate breathe effect when idle
- #define RGB_IDLE_BREATHE
- // fade in when we have been suspended
- #define RGB_FADE_IN
-#endif
diff --git a/keyboards/gmmk/pro/rev1/iso/keymaps/vitoni/keymap.c b/keyboards/gmmk/pro/rev1/iso/keymaps/vitoni/keymap.c
deleted file mode 100644
index 2c8a67ef9b..0000000000
--- a/keyboards/gmmk/pro/rev1/iso/keymaps/vitoni/keymap.c
+++ /dev/null
@@ -1,149 +0,0 @@
-// Copyright 2021 Glorious, LLC <salman@pcgamingrace.com>,
-// Copyright 2021 Victor Toni (@vitoni)
-// SPDX-License-Identifier: GPL-2.0-or-later
-
-#include QMK_KEYBOARD_H
-
-#include "vitoni.h"
-
-enum layer_names {
- _BASE,
- _MOV,
- _RGB
-};
-
-// clang-format off
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
-// ESC F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 Prt Rotary(Mute)
-// ~ 1 2 3 4 5 6 7 8 9 0 - (=) BackSpc Del
-// Tab Q W E R T Y U I O P [ ] PgUp
-// Caps A S D F G H J K L ; " # Enter PgDn
-// Sh_L / Z X C V B N M , . ? Sh_R Up End
-// Ct_L Win_L Alt_L SPACE Alt_R FN Ct_R Left Down Right
-
-
- //
- // This keyboard defaults to 6KRO instead of NKRO for compatibility reasons (some KVMs and BIOSes are incompatible with NKRO).
- // Since this is, among other things, a "gaming" keyboard, a key combination to enable NKRO on the fly is provided for convenience.
- // Press CAPS+N to toggle between 6KRO and NKRO. This setting is persisted to the EEPROM and thus persists between restarts.
- [_BASE] = 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_PSCR, KC_MUTE,
- 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_DEL,
- 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,
- MO(_MOV), 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, TG(_RGB),KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
- ),
-
- [_MOV] = LAYOUT(
- QK_BOOT, KC_MYCM, KC_WHOM, KC_CALC, KC_MSEL, KC_MPRV, KC_MPLY, KC_MSTP, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_INS,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, KC_PGUP, _______,
- _______, _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_END
- ),
-
- [_RGB] = LAYOUT(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, QK_BOOT, RGB_MOD,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_RMOD,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_TOG, RGB_SPI,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_SAI, RGB_SPD,
- _______, _______, _______, _______, _______, _______, _______, RGB_HUD, RGB_SAD, RGB_HUI
- ),
-
-};
-// clang-format on
-
-#if defined(ENCODER_ENABLE)
-bool encoder_update_user(uint8_t index, bool clockwise) {
- switch (get_highest_layer(layer_state)) {
- case _MOV:
- if (clockwise) {
- tap_code16(C(KC_TAB));
- } else {
- tap_code16(S(C(KC_TAB)));
- }
- break;
-#if defined(RGB_MATRIX_ENABLE)
- case _RGB:
- if (clockwise) {
- rgb_matrix_increase_val_noeeprom();
- } else {
- rgb_matrix_decrease_val_noeeprom();
- }
- break;
-#endif // RGB_MATRIX_ENABLE
- default:
- if (clockwise) {
- tap_code(KC_VOLU);
- } else {
- tap_code(KC_VOLD);
- }
- break;
- }
- //return true; //set to return false to counteract enabled encoder in pro.c
- return false;
-}
-#endif // ENCODER_ENABLE
-
-#if defined(RGB_MATRIX_ENABLE)
-/*
-* Set up default RGB color.
-*/
-void rgb_matrix_set_default_color(void) {
- rgb_matrix_sethsv_noeeprom_user(HSV_CHARTREUSE);
-}
-
-/*
-* Set up RGB defaults.
-*/
-void rgb_matrix_configure_default_settings(void) {
- rgb_matrix_set_default_color();
-}
-
-void keyboard_post_init_user(void) {
- rgb_matrix_enable_noeeprom();
- rgb_matrix_configure_default_settings();
-}
-
-/*
-* Use RGB underglow to indicate specific layers.
-*/
-layer_state_t layer_state_set_user(layer_state_t state) {
- switch (get_highest_layer(state)) {
- case _MOV:
- rgb_matrix_sethsv_noeeprom_user(HSV_SPRINGGREEN);
- break;
- case _RGB:
- rgb_matrix_sethsv_noeeprom_user(HSV_GREEN);
- break;
- default: // for any other layer
- rgb_matrix_set_default_color();
- break;
- }
- return state;
-}
-
-void matrix_scan_user(void) {
- matrix_scan_user_rgb();
-}
-
-bool process_record_user(uint16_t keycode, keyrecord_t *record) {
- if (!process_record_user_rgb(keycode, record)) {
- return false;
- }
-
- switch (keycode) {
- case QK_BOOT: // when activating QK_BOOT mode for flashing
- if (record->event.pressed) {
- rgb_matrix_set_color_all(63, 0, 0);
- rgb_matrix_driver.flush();
- }
- return true;
- }
- return true; // Process all other keycodes normally
-}
-#endif // RGB_MATRIX_ENABLE
diff --git a/keyboards/gmmk/pro/rev1/iso/keymaps/vitoni/readme.adoc b/keyboards/gmmk/pro/rev1/iso/keymaps/vitoni/readme.adoc
deleted file mode 100644
index c34887ebd2..0000000000
--- a/keyboards/gmmk/pro/rev1/iso/keymaps/vitoni/readme.adoc
+++ /dev/null
@@ -1,104 +0,0 @@
-= ViToni's keymap for GMMK Pro ISO
-
-== Layout
-Based on the stock layout but making use of CAPS as FN similar to laptop keyboards.
-This frees up the left row for other uses (although not remapped yet).
-Since both Delete and Insert are used for coding they are part of the CAPS layer as well.
-
-The differences are as follows:
-
-=== Layer 0 (`_BASE`)
-Mostly stock + CAPS goes to layer `_MOV`.
-FN toggles the layer `_RGB`.
-
-=== Layer 1 (`_MOV`), accessed by pressing `CAPS` on layer `_BASE`
-[%header]
-|===
-| Key / Action | Mapped to
-| ESC | _RESET_
-| F1 | KC_MYCM
-| F2 | KC_WHOM
-| F3 | KC_CALC
-| F4 | KC_MSEL
-| F5 | KC_MPRV
-| F6 | KC_MPLY
-| F7 | KC_MSTP
-| F8 | KC_MNXT
-| F9 | KC_MUTE
-| F10 | KC_VOLD
-| F11 | KC_VOLU
-| N | NK_TOGG
-| Delete | Insert
-| Left | Home
-| Right | End
-| Up | PgUp
-| Down | PgDn
-|===
-
-=== Layer 2 (`_RGB`), accessed by pressing `FN` on layer `_BASE`
-Revamped the stock FN layer to focus on RGB only.
-
-[%header]
-|===
-| Key / Action | Mapped to
-| Knob clockwise | Value/Brightness up
-| Knob anti-clockwise | Value/Brightness down
-| Backspace | _RESET_
-| Enter | RGB_TOG
-| Del | RGB_MOD
-| PgUp | RGB_RMOD
-| PgDn | RGB_SPI
-| End | RGB_SPD
-| Left | RGB_HUD
-| Right | RGB_HUI
-| Up | RGB_SAI
-| Down | RGB_SAD
-|===
-
-No other changes have been made.
-
-== RGB light
-
-The code customizing RGB light usage is decribed here:
-
-* link:../../../../../../users/vitoni/readme.adoc[/users/vitoni/readme.adoc]
-
-When using `RGB_MATRIX_TIMEOUT` addtional options are available:
-
-* `RGB_FADE_IN` makes the RGB lights fade in instead of setting the value/brightness to 100% (implicitly due to HSV including the brightness) when resuming after RGB lights have been turned off.
-Fade in occurs when the keyboard is initialized and when the RGB brightness has been changed (e.g. suspending, fade out, etc.).
-* `RGB_DISABLE_WITH_FADE_OUT` activates fade out before the keyboard is disabled by `RGB_MATRIX_TIMEOUT`.
-
-Parameters used to define the behavior are:
-[%header]
-|===
-|Key | Default | Description
-
-| RGB_MATRIX_MAXIMUM_BRIGHTNESS
-| 200 (&lt;= UNIT8_MAX)
-| Maximum assumed value for brightness.
-Used to calculate lead time for fade out before suspend timeout.
-
-|===
-
-`RGB_IDLE_TIMEOUT` enables fading out after being idle for the defined time and allows
-* `RGB_IDLE_BREATHE` also activates a brethe effect while idling.
-
-[%header]
-|===
-|Key | Default | Description
-
-|RGB_IDLE_TIMEOUT
-|4500
-|Time in milliseconds without activity before considered to be idle.
-
-|RGB_IDLE_MINIMUM_BRIGHTNESS
-|`RGB_MATRIX_MAXIMUM_BRIGHTNESS` / 5
-|Brightness value RGB is dimmed to when starting to idle. +
-When breathing used as the lower bound of the brightness value.
-
-|RGB_IDLE_MAXIMUM_BRIGHTNESS
-|`RGB_MATRIX_MAXIMUM_BRIGHTNESS` * 2/5
-|Upper bound of brightness value of the RGB light while breathing.
-
-|===
diff --git a/keyboards/gmmk/pro/rev2/ansi/ansi.c b/keyboards/gmmk/pro/rev2/ansi/ansi.c
index ccdcd42726..322e94c938 100644
--- a/keyboards/gmmk/pro/rev2/ansi/ansi.c
+++ b/keyboards/gmmk/pro/rev2/ansi/ansi.c
@@ -136,7 +136,7 @@ led_config_t g_led_config = {{
4, 2, 2, 4, 4, 2, 2, 4, 2, 2, 4, 4, 2, 2, 4, 4, 2, 2, 4, 4, 4, 4, 4
}};
-const aw_led g_aw_leds[RGB_MATRIX_LED_COUNT] = {
+const aw20216s_led_t g_aw20216s_leds[RGB_MATRIX_LED_COUNT] = {
{0, CS1_SW1, CS2_SW1, CS3_SW1}, // 0, ESC, k13
{0, CS4_SW1, CS5_SW1, CS6_SW1}, // 1, ~, k16
{0, CS7_SW1, CS8_SW1, CS9_SW1}, // 2, Tab, k11
diff --git a/keyboards/gmmk/pro/rev2/ansi/info.json b/keyboards/gmmk/pro/rev2/ansi/info.json
index 082b5f8656..cd1fd31bf0 100644
--- a/keyboards/gmmk/pro/rev2/ansi/info.json
+++ b/keyboards/gmmk/pro/rev2/ansi/info.json
@@ -9,13 +9,20 @@
"device_version": "0.0.2"
},
"rgb_matrix": {
- "driver": "aw20216"
+ "driver": "aw20216s"
},
"matrix_pins": {
"cols": ["A0", "A1", "A2", "A3", "A4", "A8", "A9", "A10"],
"rows": ["B0", "B1", "B2", "B3", "B4", "B5", "B6", "B7", "B8", "B9", "B10"]
},
"diode_direction": "COL2ROW",
+ "eeprom": {
+ "driver": "wear_leveling",
+ "wear_leveling": {
+ "driver": "spi_flash",
+ "backing_size": 2048
+ }
+ },
"encoder": {
"rotary": [
{"pin_a": "C15", "pin_b": "C14"}
diff --git a/keyboards/gmmk/pro/rev2/ansi/rules.mk b/keyboards/gmmk/pro/rev2/ansi/rules.mk
index 2f50d82c82..6d23fe350a 100644
--- a/keyboards/gmmk/pro/rev2/ansi/rules.mk
+++ b/keyboards/gmmk/pro/rev2/ansi/rules.mk
@@ -12,5 +12,3 @@ RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
AUDIO_ENABLE = no # Audio output
ENCODER_ENABLE = yes
RGB_MATRIX_ENABLE = yes
-EEPROM_DRIVER = wear_leveling
-WEAR_LEVELING_DRIVER = spi_flash
diff --git a/keyboards/gmmk/pro/rev2/config.h b/keyboards/gmmk/pro/rev2/config.h
index fa409ba026..c393e04e45 100644
--- a/keyboards/gmmk/pro/rev2/config.h
+++ b/keyboards/gmmk/pro/rev2/config.h
@@ -19,7 +19,6 @@
/* External spi flash */
#define EXTERNAL_FLASH_SPI_SLAVE_SELECT_PIN B12
-#define WEAR_LEVELING_BACKING_SIZE 2048
/* SPI Config for LED Driver */
#define SPI_DRIVER SPIDQ
diff --git a/keyboards/gmmk/pro/rev2/iso/info.json b/keyboards/gmmk/pro/rev2/iso/info.json
index a4aef24e65..6233356616 100644
--- a/keyboards/gmmk/pro/rev2/iso/info.json
+++ b/keyboards/gmmk/pro/rev2/iso/info.json
@@ -9,13 +9,20 @@
"device_version": "0.0.2"
},
"rgb_matrix": {
- "driver": "aw20216"
+ "driver": "aw20216s"
},
"matrix_pins": {
"cols": ["A0", "A1", "A2", "A3", "A4", "A8", "A9", "A10"],
"rows": ["B0", "B1", "B2", "B3", "B4", "B5", "B6", "B7", "B8", "B9", "B10"]
},
"diode_direction": "COL2ROW",
+ "eeprom": {
+ "driver": "wear_leveling",
+ "wear_leveling": {
+ "driver": "spi_flash",
+ "backing_size": 2048
+ }
+ },
"encoder": {
"rotary": [
{"pin_a": "C15", "pin_b": "C14"}
diff --git a/keyboards/gmmk/pro/rev2/iso/iso.c b/keyboards/gmmk/pro/rev2/iso/iso.c
index e056ff6c12..3a5b21c014 100644
--- a/keyboards/gmmk/pro/rev2/iso/iso.c
+++ b/keyboards/gmmk/pro/rev2/iso/iso.c
@@ -137,7 +137,7 @@ led_config_t g_led_config = {{
2, 4, 2, 2, 4, 4, 2, 2, 4, 2, 2, 4, 4, 2, 2, 4, 4, 2, 2, 4, 4, 4, 4, 4
}};
-const aw_led g_aw_leds[RGB_MATRIX_LED_COUNT] = {
+const aw20216s_led_t g_aw20216s_leds[RGB_MATRIX_LED_COUNT] = {
{0, CS1_SW1, CS2_SW1, CS3_SW1}, // 0, ESC, k13
{0, CS4_SW1, CS5_SW1, CS6_SW1}, // 1, ~, k16
{0, CS7_SW1, CS8_SW1, CS9_SW1}, // 2, Tab, k11
diff --git a/keyboards/gmmk/pro/rev2/iso/rules.mk b/keyboards/gmmk/pro/rev2/iso/rules.mk
index db00e4c84c..46eda64be7 100644
--- a/keyboards/gmmk/pro/rev2/iso/rules.mk
+++ b/keyboards/gmmk/pro/rev2/iso/rules.mk
@@ -15,5 +15,3 @@ RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
AUDIO_ENABLE = no # Audio output
ENCODER_ENABLE = yes
RGB_MATRIX_ENABLE = yes
-EEPROM_DRIVER = wear_leveling
-WEAR_LEVELING_DRIVER = spi_flash
diff --git a/keyboards/gopolar/gg86/keymaps/horrortroll/keymap.c b/keyboards/gopolar/gg86/keymaps/horrortroll/keymap.c
deleted file mode 100644
index fc725ad3f0..0000000000
--- a/keyboards/gopolar/gg86/keymaps/horrortroll/keymap.c
+++ /dev/null
@@ -1,89 +0,0 @@
-/* Copyright 2023 HorrorTroll <https://github.com/HorrorTroll>
- *
- * 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 "horrortroll.h"
-#include "oled/oled_stuff.h"
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
-/*
- ┌───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┐
- │Esc│ │F1 │F2 │F3 │F4 │ │F5 │F6 │F7 │F8 │ │F9 │F10│F11│F12│ │PSc│Scr│Pse│
- └───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┘
- ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ ┌───┬───┬───┐
- │ ` │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │ Bckspc│ │Hom│Scr│Pse│
- ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ ├───┼───┼───┤
- │ Tab │ q │ w │ e │ r │ t │ y │ u │ i │ o │ p │ [ │ ] │ \ │ │End│Scr│Pse│
- ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ └───┴───┴───┘
- │ Caps │ a │ s │ d │ f │ g │ h │ j │ k │ l │ ; │ ' │ Enter│
- ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤ ┌───┐
- │LSft│ \ │ z │ x │ c │ v │ b │ n │ m │ , │ . │ / │ RSft │RSt│ │ ↑ │
- ├────┴┬──┴┬──┴──┬┴───┴───┴───┴───┴───┴───┴──┬┴───┴┬───┬─┴───┤ ┌───┼───┼───┐
- │LCrl │GUI│ LAlt│ Space │ RAlt│ Fn│ RCrl│ │ ← │ ↓ │ → │
- └─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘ └───┴───┴───┘
- ┌───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┐
- │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
- └───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┘
- ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ ┌───┬───┬───┐
- │ ~ │ ! │ @ │ # │ $ │ % │ ^ │ & │ * │ ( │ ) │ _ │ + │ │ │ │ │ │
- ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ ├───┼───┼───┤
- │ │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ { │ } │ | │ │ │ │ │
- ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ └───┴───┴───┘
- │ Caps │ A │ S │ D │ F │ G │ H │ J │ K │ L │ : │ " │ │
- ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤ ┌───┐
- │LSft│ | │ Z │ X │ C │ V │ B │ N │ M │ < │ > │ ? │ RSft │RSt│ │ │
- ├────┴┬──┴┬──┴──┬┴───┴───┴───┴───┴───┴───┴──┬┴───┴┬───┬─┴───┤ ┌───┼───┼───┐
- │ │ │ │ │ │ │ │ │ │ │ │
- └─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘ └───┴───┴───┘
-*/
- /* Row: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 */
- [_BASE] = LAYOUT_all(
- 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_PAUSE,
- 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,
- KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
- KC_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_RSFT, KC_UP,
- KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT
- ),
-
-/*
- ┌───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┐
- │Rst│ │MeP│VoD│VoU│Mut│ │Stp│Prv│Ply│Nxt│ │Mai│Hom│Cal│Sch│ │Rod│Mod│Tog│
- └───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┘
- ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ ┌───┬───┬───┐
- │NKO│ │ │ │ │ │ │ │ │ │ │Spd│Spi│ │ │C_E│ │ │
- ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ ├───┼───┼───┤
- │ │1Hd│1Hi│1Sd│1Si│1Vd│1Vi│ │ │ │ │ │ │ │ │ │ │ │
- ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ └───┴───┴───┘
- │ │2Hd│2Hi│2Sd│2Si│2Vd│2Vi│ │ │ │ │ │ │
- ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤ ┌───┐
- │ │ │Pre│Ref│Flp│ │ │ │ │ │ │ │ │ │ │Vai│
- ├────┴┬──┴┬──┴──┬┴───┴───┴───┴───┴───┴───┴──┬┴───┴┬───┬─┴───┤ ┌───┼───┼───┐
- │ │ │ │ │ │ Fn│ │ │Hud│Vad│Hui│
- └─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘ └───┴───┴───┘
-*/
- /* Row: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 */
- [_FN] = LAYOUT_all(
- QK_BOOT, KC_MSEL, KC_VOLD, KC_VOLU, KC_MUTE, KC_MSTP, KC_MPRV, KC_MPLY, KC_MNXT, KC_MAIL, KC_WHOM, KC_CALC, KC_WSCH, RGB_RMOD, RGB_MOD, RGB_TOG,
- NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_SPD, RGB_SPI, _______, RGB_C_E, _______, _______,
- _______, G1_HUD, G1_HUI, G1_SAD, G1_SAI, G1_VAD, G1_VAI, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, G2_HUD, G2_HUI, G2_SAD, G2_SAI, G2_VAD, G2_VAI, _______, _______, _______, _______, _______, _______,
- _______, _______, G_PRE, REF_G, G_FLIP, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_VAI,
- _______, _______, _______, _______, _______, _______, _______, RGB_HUD, RGB_VAD, RGB_HUI
- ),
-};
diff --git a/keyboards/gopolar/gg86/keymaps/horrortroll/oled/oled_stuff.h b/keyboards/gopolar/gg86/keymaps/horrortroll/oled/oled_stuff.h
deleted file mode 100644
index d67e5a18c5..0000000000
--- a/keyboards/gopolar/gg86/keymaps/horrortroll/oled/oled_stuff.h
+++ /dev/null
@@ -1,68 +0,0 @@
-/* Copyright 2021 HorrorTroll <https://github.com/HorrorTroll>
- *
- * 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/>.
- */
-
-// OLED animation
-#include "lib/wave.h"
-
-#ifdef OLED_ENABLE
- static void render_layer_info(void) {
- switch (get_highest_layer(layer_state)) {
- case 0:
- oled_write_P(PSTR(" QWERTY "), false);
- break;
- case 1:
- oled_write_P(PSTR(" Function "), false);
- break;
- default:
- oled_write_P(PSTR(" Undefined "), false);
- }
- }
-
- static void render_layer_number(void) {
- switch (get_highest_layer(layer_state)) {
- case 0:
- oled_write_P(PSTR("0"), false);
- break;
- case 1:
- oled_write_P(PSTR("1"), false);
- break;
- default:
- oled_write_P(PSTR("X"), false);
- }
- }
-
- bool oled_task_user(void) {
- render_layer_info();
-
- // sleep if it has been long enough since we last got a char
- if (timer_elapsed32(wave_sleep) > OLED_TIMEOUT) {
- oled_off();
- } else {
- oled_on();
- }
- // time for the next frame?
- if (timer_elapsed(wave_timer) > FRAME_TIMEOUT) {
- wave_timer = timer_read();
- render_frame();
- }
-
- oled_set_cursor(0, 3);
- oled_write_P(PSTR(" Layer: "), false);
- render_layer_number();
-
- return true;
- }
-#endif
diff --git a/keyboards/gray_studio/think65/solder/keymaps/brandonschlack/config.h b/keyboards/gray_studio/think65/solder/keymaps/brandonschlack/config.h
deleted file mode 100644
index 9b3ecffef1..0000000000
--- a/keyboards/gray_studio/think65/solder/keymaps/brandonschlack/config.h
+++ /dev/null
@@ -1,29 +0,0 @@
-/* Copyright 2019 Brandon Schlack
- *
- * 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 RGBLIGHT_EFFECT_BREATHING // Only have Breathing Animation
-
-#undef RGBLIGHT_EFFECT_RAINBOW_MOOD
-#undef RGBLIGHT_EFFECT_RAINBOW_SWIRL
-#undef RGBLIGHT_EFFECT_SNAKE
-#undef RGBLIGHT_EFFECT_KNIGHT
-#undef RGBLIGHT_EFFECT_CHRISTMAS
-#undef RGBLIGHT_EFFECT_STATIC_GRADIENT
-#undef RGBLIGHT_EFFECT_RGB_TEST
-#undef RGBLIGHT_EFFECT_ALTERNATING
-#undef RGBLIGHT_EFFECT_TWINKLE
diff --git a/keyboards/gray_studio/think65/solder/keymaps/brandonschlack/keymap.c b/keyboards/gray_studio/think65/solder/keymaps/brandonschlack/keymap.c
deleted file mode 100644
index a71389707d..0000000000
--- a/keyboards/gray_studio/think65/solder/keymaps/brandonschlack/keymap.c
+++ /dev/null
@@ -1,80 +0,0 @@
-/* Copyright 2019 Brandon Schlack
- *
- * 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 "brandonschlack.h"
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-/* Base Layer
- * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┬───┐
- * │Esc│! 1│@ 2│# 3│$ 4│% 5│^ 6│& 7│* 8│( 9│) 0│_ -│+ =│ Bckspc│PgU│
- * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┼───┤
- * │Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │{ [│} ]│| \│PgD│
- * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┤
- * │HyCaps│ A │ S │ D │ F │ G │ H │ J │ K │ L │: ;│" '│ Enter│ │
- * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤ │
- * │Shift │ Z │ X │ C │ V │ B │ N │ M │< ,│> .│? /│ Shift│ Up│ │
- * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬─┬───┼───┼───┤
- * │Ctrl│ Opt│ Cmd│ Space │Cmd │FnPy│ │Lef│Dow│Rig│
- * └────┴────┴────┴────────────────────────┴────┴────┴─┴───┴───┴───┘
- */
-[_BASE] = LAYOUT_65_ansi_blocker(
- KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_PGUP,
- KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGDN,
- HY_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, XXXXXXX,
- 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, XXXXXXX,
- KC_LCTL, KC_LOPT, KC_LCMD, KC_SPC, KC_RCMD, PLY_FN1, KC_LEFT, KC_DOWN, KC_RGHT
-),
-/* Function Layer
- * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┬───┐
- * │` ~│ F1│ F2│ F3│ F4│ F5│ F6│ F7│ F8│ F9│F10│F11│F12│ Delete│VlU│
- * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┼───┤
- * │RMod │RH+│RS+│RV+│ │ │ │ │ │ │F13│F14│F15│ SlpD│VlD│
- * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┤
- * │RTgl │RH-│RS-│RV-│ │ │ │ │ │ │MNC│LHP│ │ │
- * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤ │
- * │ │LYR│Thm│ │ │RST│ │Mke│Prv│Nxt│Ply│MteSft│PgU│ │
- * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬─┬───┼───┼───┤
- * │ │ │ │ │ │ │ │Hom│PgD│End│
- * └────┴────┴────┴────────────────────────┴────┴────┴─┴───┴───┴───┘
- */
-[_FN1] = LAYOUT_65_ansi_blocker(
- KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_VOLU,
- RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, _______, _______, _______, _______, _______, _______, KC_F13, KC_F14, KC_F15, MC_SLPD, KC_VOLD,
- RGB_TOG, RGB_HUD, RGB_SAD, RGB_VAD, _______, _______, _______, _______, _______, _______, MC_MSSN, MC_LHPD, _______, XXXXXXX,
- _______, RGB_LYR, RGB_THM, _______, _______, QK_BOOT, _______, QM_MAKE, KC_MPRV, KC_MNXT, KC_MPLY, MUT_SFT, KC_PGUP, XXXXXXX,
- _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_END
-),
-/* Blank Layout
- * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┬───┐
- * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
- * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┼───┤
- * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
- * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┤
- * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
- * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤ │
- * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
- * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬─┬───┼───┼───┤
- * │ │ │ │ │ │ │ │ │ │ │
- * └────┴────┴────┴────────────────────────┴────┴────┴─┴───┴───┴───┘
-[X] = LAYOUT_65_ansi_blocker(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, XXXXXXX, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, XXXXXXX, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______
-),
-*/
-};
diff --git a/keyboards/gray_studio/think65/solder/keymaps/brandonschlack/readme.md b/keyboards/gray_studio/think65/solder/keymaps/brandonschlack/readme.md
deleted file mode 100644
index 76174061a9..0000000000
--- a/keyboards/gray_studio/think65/solder/keymaps/brandonschlack/readme.md
+++ /dev/null
@@ -1,9 +0,0 @@
-# brandonschlack's Think6.5 keymap
-
-My keymap for the Think6.5. Using the `LAYOUT_65_ansi_blocker` LAYOUT and based on my keyboard-agnostic layout, some small changes for the navigation keys not present due to the badge.
-
-## [Base Layer](http://www.keyboard-layout-editor.com/#/gists/b396fee9f49d6e9493876e82a8ee99ac)
-![Base Layer](https://i.imgur.com/AZYVuZS.jpg)
-
-## [Function Layer](http://www.keyboard-layout-editor.com/#/gists/06e684133399bb63d8b72ac6982e0e68)
-![Function Layer](https://i.imgur.com/GbOOxME.jpg)
diff --git a/keyboards/gray_studio/think65/solder/keymaps/brandonschlack/rules.mk b/keyboards/gray_studio/think65/solder/keymaps/brandonschlack/rules.mk
deleted file mode 100644
index 4ce80104ef..0000000000
--- a/keyboards/gray_studio/think65/solder/keymaps/brandonschlack/rules.mk
+++ /dev/null
@@ -1,2 +0,0 @@
-# Build Options
-MOUSEKEY_ENABLE = no # Don't need mouse keys
diff --git a/keyboards/hadron/ver2/keymaps/side_numpad/keymap.c b/keyboards/hadron/ver2/keymaps/side_numpad/keymap.c
index f352b1c851..9cc621df2f 100644
--- a/keyboards/hadron/ver2/keymaps/side_numpad/keymap.c
+++ b/keyboards/hadron/ver2/keymaps/side_numpad/keymap.c
@@ -316,36 +316,3 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
}
return true;
}
-
-void matrix_init_user(void) {
-#ifdef AUDIO_ENABLE
- startup_user();
-#endif
-}
-
-#ifdef AUDIO_ENABLE
-
-void startup_user(void)
-{
- _delay_ms(20); // gets rid of tick
- PLAY_SONG(tone_startup);
-}
-
-void shutdown_user(void)
-{cc
- PLAY_SONG(tone_goodbye);
- _delay_ms(150);
- stop_all_notes();
-}
-
-void music_on_user(void)
-{
- music_scale_user();
-}
-
-void music_scale_user(void)
-{
- PLAY_SONG(music_scale);
-}
-
-#endif
diff --git a/keyboards/hadron/ver3/keymaps/ishtob/keymap.c b/keyboards/hadron/ver3/keymaps/ishtob/keymap.c
deleted file mode 100644
index a3b522fa04..0000000000
--- a/keyboards/hadron/ver3/keymaps/ishtob/keymap.c
+++ /dev/null
@@ -1,241 +0,0 @@
-#include QMK_KEYBOARD_H
-#include "ishtob.h"
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
-/* Qwerty
- * ,------+------+------+------+------+------------------------------------------------.
- * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | PSCR |
- * |------+------+------+------+------+------+------+------+------+------+------+------+--------------------.
- * | Tab | Q | W | E | R | T | 7 | 8 | 9 | Y | U | I | O | P | Bksp |
- * |------+------+------+------+------+------+------+------+------+------+------+------+------+------+------|
- * | LCTL | A | S | D | F | G | 4 | 5 | 6 | H | J | K | L | ;/Nav|Ctl/Et|
- * |------+------+------+------+------+------+------+------+------+------+------+------+------+------+------|
- * | Shift| Z | X | C | V | B | 1 | 2 | 3 | N | M | , | . | / | - |
- * |------+------+------+------+------+------+------+------+------+------+------+------+------+------+------|
- * | Esc | Ctrl | GUI | Alt |Lower |Space | 0 | . | = |Space |Raise | Alt | NumL | App | Del |
- * `--------------------------------------------------------------------------------------------------------'
- */
-[_QWERTY] = LAYOUT_wrapper(
- KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_PSCR,
- LT_FN(KC_TAB), _________________QWERTY_L1_________________, KC_P7, KC_P8, KC_P9, _________________QWERTY_R1_________________, KC_BSPC,
- KC_CAPS, _________________QWERTY_L2_________________, KC_P4, KC_P5, KC_P6, _________________QWERTY_R2_________________, CTL_ENT,
- KC_LSFT, _________________QWERTY_L3_________________, KC_P1, KC_P2, KC_P3, _________________QWERTY_R3_________________, LT_RAI(KC_MINS),
- KC_ESC, KC_LCTL, KC_LGUI, KC_LALT, LOWER, KC_SPC, KC_P0, KC_DOT, KC_EQL, KC_SPC, RAISE, KC_RALT, KC_RGUI, KC_APP, KC_DEL
-),
-
-/* Colemak
- * ,------+------+------+------+------+------------------------------------------------.
- * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | PSCR |
- * |------+------+------+------+------+------+------+------+------+------+------+------+--------------------.
- * | Tab | Q | W | F | P | G | 7 | 8 | 9 | J | L | U | Y | ; | Bksp |
- * |------+------+------+------+------+-------------+------+------+------+------+------+------+------+------|
- * | CAPS | A | R | S | T | D | 4 | 5 | 6 | H | N | E | I | O |Ctl/Et|
- * |------+------+------+------+------+------+------+------+------+------+------+------+------+------+------|
- * | Shift| Z | X | C | V | B | 1 | 2 | 3 | K | M | , | . | / | - |
- * |------+------+------+------+------+------+------+------+------+------+------+------+------+------+------|
- * | Esc | Ctrl | GUI | Alt |Lower |Space | 0 | . | = |Space |Raise | Alt | NumL | App | Del |
- * `--------------------------------------------------------------------------------------------------------'
- */
-[_COLEMAK] = LAYOUT_wrapper(
- KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_PSCR,
- LT_FN(KC_TAB), _________________COLEMAK_L1________________, KC_P7, KC_P8, KC_P9, _________________COLEMAK_R1________________, KC_BSPC,
- KC_LCTL, _________________COLEMAK_L2________________, KC_P4, KC_P5, KC_P6, _________________COLEMAK_R2________________, CTL_ENT,
- KC_LSFT, _________________COLEMAK_L3________________, KC_P1, KC_P2, KC_P3, _________________COLEMAK_R3________________, LT_RAI(KC_MINS),
- KC_ESC, KC_CAPS, KC_LGUI, KC_LALT, LOWER, KC_SPC, KC_P0, KC_DOT, KC_EQL, KC_SPC, RAISE, KC_RALT, KC_RGUI, KC_APP, KC_DEL
- ),
-
-/* Dvorak
- * ,------+------+------+------+------+------------------------------------------------.
- * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | PSCR |
- * |------+------+------+------+------+------+------+------+------+------+------+------+--------------------.
- * | Tab | " | , | . | P | Y | 7 | 8 | 9 | F | G | C | R | L | Bksp |
- * |------+------+------+------+------+-------------+------+------+------+------+------+------+------+------|
- * | Esc | A | O | E | U | I | 4 | 5 | 6 | D | H | T | N | S | / |
- * |------+------+------+------+------+------+------+------+------+------+------+------+------+------+------|
- * | Shift| ; | Q | J | K | X | 1 | 2 | 3 | B | M | W | V | Z |Ctl/Et|
- * |------+------+------+------+------+------+------+------+------+------+------+------+------+------+------|
- * | Esc | Ctrl | GUI | Alt |Lower |Space | 0 | . | = |Space |Raise | Alt | NumL | App | Del |
- * `--------------------------------------------------------------------------------------------------------'
- */
-[_DVORAK] = LAYOUT_wrapper(
- KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_PSCR,
- LT_FN(KC_TAB), _________________DVORAK_L1_________________, KC_P7, KC_P8, KC_P9, _________________DVORAK_R1_________________, KC_BSPC,
- KC_LCTL, _________________DVORAK_L2_________________, KC_P4, KC_P5, KC_P6, _________________DVORAK_R2_________________, CTL_ENT,
- KC_LSFT, _________________DVORAK_L3_________________, KC_P1, KC_P2, KC_P3, _________________DVORAK_R3_________________, LT_RAI(KC_MINS),
- KC_ESC, KC_CAPS, KC_LGUI, KC_LALT, LOWER, KC_SPC, KC_P0, KC_DOT, KC_EQL, KC_SPC, RAISE, KC_RALT, KC_RGUI, KC_APP, KC_DEL
-),
-
-/* Lower
- * ,------+------+------+------+------+------------------------------------------------.
- * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp |
- * |------+------+------+------+------+------+------+------+------+------+------+------+--------------------.
- * | ~ | ! | @ | # | $ | % | | | | ^ | & | * | ( | ) | Del |
- * |------+------+------+------+------+-------------+------+------+------+------+------+------+------+------|
- * | | F1 | F2 | F3 | F4 | F5 | | | | F6 | _ | + | { | } | | |
- * |------+------+------+------+------+------|------+------+------+------+------+------+------+------+------|
- * | | F7 | F8 | F9 | F10 | F11 | | | | F12 |ISO ~ |ISO | | | | |
- * |------+------+------+------+------+------+------+------+------+------+------+------+------+------+------|
- * | | | | | | | | | | | | Next | Vol- | Vol+ | Play |
- * `--------------------------------------------------------------------------------------------------------'
- */
-[_LOWER] = LAYOUT_wrapper(
- KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC,
- KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, _______, _______, _______, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL,
- _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, _______, _______, _______, KC_F6, KC_UNDS, KC_EQL, KC_LBRC, KC_RBRC, KC_PIPE,
- _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, _______, _______, _______, KC_F12,S(KC_NUHS),S(KC_NUBS),_______,_______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY
-),
-
-/* Raise
- * ,------+------+------+------+------+------------------------------------------------.
- * | Esc | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - |
- * |------+------+------+------+------+------+------+------+------+------+------+------+--------------------.
- * | ` | 1 | 2 | 3 | 4 | 5 | | | | 6 | 7 | 8 | 9 | 0 | Del |
- * |------+------+------+------+------+-------------+------+------+------+------+------+------+------+------|
- * | Del | F1 | F2 | F3 | F4 | F5 | | | | F6 | - | = | [ | ] | \ |
- * |------+------+------+------+------+------+------+------+------+------+------+------+------+------+------|
- * | | F7 | F8 | F9 | F10 | F11 | | | | F12 |ISO # |ISO / | | | |
- * |------+------+------+------+------+------+------+------+------+------+------+------+------+------+------|
- * | | | | | | | | | | | | Next | Vol- | Vol+ | Play |
- * `--------------------------------------------------------------------------------------------------------'
- */
-[_RAISE] = LAYOUT_wrapper(
- KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC,
- ________________NUMBER_LEFT________________, KC_6, _______, _______, _______, KC_7, KC_8, KC_9, KC_0, KC_PLUS, KC_BSLS,
- KC_DEL, KC_A, KC_UP, KC_D, KC_PSCR, KC_VOLU, _______, _______, _______, KC_4, KC_5, KC_6, KC_PAST, KC_COLN, KC_QUOT,
- _______, KC_LEFT, KC_DOWN, KC_RIGHT,KC_MUTE, KC_VOLD, _______, _______, _______, KC_1, KC_2, KC_3, KC_UP, KC_SLSH, _______,
- _______, _______, _______, _______, _______, KC_SPC, _______, _______, KC_SPC, KC_0, _______, KC_LEFT, KC_DOWN, KC_RIGHT, KC_NUM
-),
-
-/* FN layer on Esc key
- * ,------+------+------+------+------+------------------------------------------------.
- * | Esc | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - |
- * |------+------+------+------+------+------+------+------+------+------+------+------+--------------------.
- * | | ! | @ | # | $ | % | | | | ^ | & | * | ( | ) | + |
- * |------+------+------+------+------+-------------+------+------+------+------+------|
- * | | F1 | F2 | F3 | F4 | F5 | | | | F6 | _ | = | [ | ] | ' |
- * |------+------+------+------+------+-------------+------+------+------+------+------|
- * | | F7 | F8 | F9 | F10 | F11 | | | | F12 |ISO ~ |ISO | | { | } |Enter |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | | | | | | | | | | | | Next | Vol- | Vol+ | Play |
- * '------+------+------+------+------+------+------+------+------+------+------+------+--------------------'
- */
-[_FNLAYER] = LAYOUT_wrapper(
- KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC,
- _______, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, _______, _______, _______, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_PLUS,
- _______, __________________LONG_FUNC_LEFT___________________, _______, _______, _______, KC_UNDS, KC_EQL, KC_LBRC, KC_RBRC, KC_QUOT,
- _______, __________________LONG_FUNC_RIGHT__________________, _______, _______, _______,S(KC_NUHS),S(KC_NUBS),KC_LCBR, KC_RCBR, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY
-),
-
-/* Mouse Layer (semi-col)
- * ,------+------+------+------+------+------------------------------------------------.
- * | ACCL0| ACCL1| ACCL2| | | | | | | | | |
- * |------+------+------+------+------+------+------+------+------+------+------+------+--------------------.
- * | | | | | | | | | Home | Wh_Up| WHL_L| M_Up | WHL_R| Macro| |
- * |------+------+------+------+------+------+------+------+------+------+------+------+------+------+------|
- * | | | | | | | | | End | Wh_Dn| M_Lft| M_Dn | M_Rt | | |
- * |------+------+------+------+------+------+------+------+------+------+------+------+------+------+------|
- * | | | | | | | | | | BTN2 | BTN3 | BTN4 | BTN5 | | |
- * |------+------+------+------+------+------+------+------+------+------+------+------+------+------+------|
- * | | | | | | BTN1 | | | | BTN1 | | | | | |
- * `--------------------------------------------------------------------------------------------------------'
- */
-
-[_MOUSECURSOR] = LAYOUT_wrapper(
- KC_ACL0, KC_ACL1, KC_ACL2, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, M_EMAIL,M_EMAIL2, _______, _______, _______, KC_HOME, KC_PGUP, KC_WH_L, KC_MS_U, KC_WH_R, P_MPASS, P_META,
- _______, _______, _______, _______, O_RTQ6H, _______, _______, _______, KC_END , KC_PGDN, KC_MS_L, KC_MS_D, KC_MS_R, _______, O_DAYRN,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_BTN2, KC_BTN3, KC_BTN4, KC_BTN5, _______, _______,
- _______, _______, _______, _______, _______, KC_BTN1, _______, _______, _______, KC_BTN1, _______, _______, _______, P_CITRIX, O_AUTODC
-),
-
-/* Adjust (Lower + Raise)
- * ,------+------+------+------+------+------------------------------------------------.
- * | Reset|HPT TG|HPT FB|HPT M+|HPT M-|HPT RS| | | | | |EEP RS|
- * |------+------+------+------+------+------+------+------+------+------+------+------+--------------------.
- * | |RGB TG|RGB ST|RGBH -|RGBH +|RGBS -|RGBS +|RGBV -|RGBV +| | | | | | Del |
- * |------+------+------+------+------+------+------+------+------+------+------+------+------+------+------|
- * | | | |Aud on|Audoff|AGnorm| | | |AGswap|Qwerty|Colemk| | | |
- * |------+------+------+------+------+------+------+------+------+------+------+------+------+------+------|
- * | |Voice-|Voice+|Mus on|Musoff| | | | | | |BL - | BL + |BL ST |BL TG |
- * |------+------+------+------+------+------+------+------+------+------+------+------+------+------+------|
- * | | | | | | | | | | | |CK RS |CK - |CK + |CK TG |
- * `--------------------------------------------------------------------------------------------------------'
- */
-[_ADJUST] = LAYOUT_wrapper(
- _______, HF_TOGG, HF_FDBK, HF_NEXT, HF_PREV, HF_RST, _______, _______, _______, _______, _______, EE_CLR,
- QK_BOOT, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, _______, KC_DEL,
- _______, MAGIC_TOGGLE_NKRO, _______, AU_ON, AU_OFF, AG_NORM, _______, _______, _______, AG_SWAP, QWERTY, COLEMAK, _______, _______, _______,
- _______, AU_PREV, AU_NEXT, MU_ON, MU_OFF, MI_ON, MI_OFF, _______, _______, _______, _______, BL_DOWN, BL_UP, BL_STEP, BL_TOGG,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, CK_RST, CK_DOWN, CK_UP, CK_TOGG
-)
-
-
-
-};
-
-layer_state_t layer_state_set_user(layer_state_t state) {
- return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST);
-}
-
-
-bool process_record_keymap(uint16_t keycode, keyrecord_t *record) {
- switch (keycode) {
- case QWERTY:
- if (record->event.pressed) {
- set_single_persistent_default_layer(_QWERTY);
- }
- return false;
- break;
- case COLEMAK:
- if (record->event.pressed) {
- set_single_persistent_default_layer(_COLEMAK);
- }
- return false;
- break;
- case LOWER:
- if (record->event.pressed) {
- //not sure how to have keyboard check mode and set it to a variable, so my work around
- //uses another variable that would be set to true after the first time a reactive key is pressed.
- layer_on(_LOWER);
- } else {
- layer_off(_LOWER);
- }
- return false;
- break;
- case RAISE:
- if (record->event.pressed) {
- //not sure how to have keyboard check mode and set it to a variable, so my work around
- //uses another variable that would be set to true after the first time a reactive key is pressed.
- layer_on(_RAISE);
- } else {
- layer_off(_RAISE);
- }
- return false;
- break;
- case BACKLIT:
- if (record->event.pressed) {
- register_code(KC_RSFT);
- #ifdef BACKLIGHT_ENABLE
- backlight_step();
- #endif
- } else {
- unregister_code(KC_RSFT);
- }
- return false;
- break;
- }
- return true;
-}
-
-bool music_mask_user(uint16_t keycode) {
- switch (keycode) {
- case RAISE:
- case LOWER:
- return false;
- default:
- return true;
- }
-}
diff --git a/keyboards/hadron/ver3/keymaps/ishtob/readme.md b/keyboards/hadron/ver3/keymaps/ishtob/readme.md
deleted file mode 100644
index 88b958ec42..0000000000
--- a/keyboards/hadron/ver3/keymaps/ishtob/readme.md
+++ /dev/null
@@ -1,2 +0,0 @@
-# The Default Hadron Layout
-
diff --git a/keyboards/hadron/ver3/keymaps/xulkal/config.h b/keyboards/hadron/ver3/keymaps/xulkal/config.h
deleted file mode 100644
index 6f70f09bee..0000000000
--- a/keyboards/hadron/ver3/keymaps/xulkal/config.h
+++ /dev/null
@@ -1 +0,0 @@
-#pragma once
diff --git a/keyboards/hadron/ver3/keymaps/xulkal/keymap.c b/keyboards/hadron/ver3/keymaps/xulkal/keymap.c
deleted file mode 100644
index 4ae1d07170..0000000000
--- a/keyboards/hadron/ver3/keymaps/xulkal/keymap.c
+++ /dev/null
@@ -1,73 +0,0 @@
-#include QMK_KEYBOARD_H
-#include "xulkal.h"
-
-#define EXPAND_LAYOUT(...) LAYOUT(__VA_ARGS__)
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- /* Qwerty Layout
- * ,-----------------------------------------------------------------------------------.
- * | GESC | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | BkSp |
- * |------+------+------+------+------+------|------+------+------+------+------+------+--------------------.
- * | Tab | Q | W | E | R | T | Y | U | I | O | P | \ | 7 | 8 | 9 |
- * |------+------+------+------+------+------|------+------+------+------+------+------+------+------+------|
- * |FN(CAPS)| A | S | D | F | G | H | J | K | L | ; | Enter| 4 | 5 | 6 |
- * |------+------+------+------+------+------+------+------+------+------+------+------+------+------+------|
- * | Sft[ | Z | X | C | V | B | N | M | , | . | / | Sft] | 1 | 2 | 3 |
- * |------+------+------+------+------+------+------+------+------+------+------+------+------+------+------|
- * | Ctl- | Win | LOWER| RAISE| Alt | Space| Space| Left | Up | Down | Right| Ctl= | 0 | . | = |
- * |------+------+------+------+------+------+------+------+------+------+------+------+------+------+------'
- */
- [_QWERTY] = EXPAND_LAYOUT(
- _________________QWERTY_L1_________________, _________________QWERTY_R1_________________,
- _________________QWERTY_L2_________________, _________________QWERTY_R2_________________, KC_P7, KC_P8, KC_P9,
- _________________QWERTY_L3_________________, _________________QWERTY_R3_________________, KC_P4, KC_P5, KC_P6,
- _________________QWERTY_L4_________________, _________________QWERTY_R4_________________, KC_P1, KC_P2, KC_P3,
- _________________QWERTY_L5_________________, _________________QWERTY_R5_________________, KC_P0, KC_DOT, KC_EQL
- ),
-
-#ifndef GAMELAYER_DISABLE
- [_GAME] = EXPAND_LAYOUT(
- ___________________GAME_L1_________________, ___________________GAME_R1_________________,
- ___________________GAME_L2_________________, ___________________GAME_R2_________________, _______, _______, _______,
- ___________________GAME_L3_________________, ___________________GAME_R3_________________, _______, _______, _______,
- ___________________GAME_L4_________________, ___________________GAME_R4_________________, _______, _______, _______,
- ___________________GAME_L5_________________, ___________________GAME_R5_________________, _______, _______, _______
- ),
-#endif
-
- [_LOWER] = EXPAND_LAYOUT(
- __________________LOWER_L1_________________, __________________LOWER_R1_________________,
- __________________LOWER_L2_________________, __________________LOWER_R2_________________, _______, _______, _______,
- __________________LOWER_L3_________________, __________________LOWER_R3_________________, _______, _______, _______,
- __________________LOWER_L4_________________, __________________LOWER_R4_________________, _______, _______, _______,
- __________________LOWER_L5_________________, __________________LOWER_R5_________________, _______, _______, _______
- ),
-
- [_RAISE] = EXPAND_LAYOUT(
- __________________RAISE_L1_________________, __________________RAISE_R1_________________,
- __________________RAISE_L2_________________, __________________RAISE_R2_________________, _______, _______, _______,
- __________________RAISE_L3_________________, __________________RAISE_R3_________________, _______, _______, _______,
- __________________RAISE_L4_________________, __________________RAISE_R4_________________, _______, _______, _______,
- __________________RAISE_L5_________________, __________________RAISE_R5_________________, _______, _______, _______
- ),
-
-#ifdef TRILAYER_ENABLED
- [_ADJUST] = EXPAND_LAYOUT(
- _________________ADJUST_L1_________________, _________________ADJUST_R1_________________,
- _________________ADJUST_L2_________________, _________________ADJUST_R2_________________, _______, _______, _______,
- _________________ADJUST_L3_________________, _________________ADJUST_R3_________________, _______, _______, _______,
- _________________ADJUST_L4_________________, _________________ADJUST_R4_________________, _______, _______, _______,
- _________________ADJUST_L5_________________, _________________ADJUST_R5_________________, _______, _______, _______
- ),
-#endif
-};
-
-bool music_mask_user(uint16_t keycode) {
- switch (keycode) {
- case RAISE:
- case LOWER:
- return false;
- default:
- return true;
- }
-}
diff --git a/keyboards/hadron/ver3/keymaps/xulkal/rules.mk b/keyboards/hadron/ver3/keymaps/xulkal/rules.mk
deleted file mode 100644
index 0305226b32..0000000000
--- a/keyboards/hadron/ver3/keymaps/xulkal/rules.mk
+++ /dev/null
@@ -1,4 +0,0 @@
-# Overridden build options
-
-COMMAND_ENABLE = no
-ENCODER_ENABLER = no
diff --git a/keyboards/handwired/6key/config.h b/keyboards/handwired/6key/config.h
deleted file mode 100644
index 0ba89040c7..0000000000
--- a/keyboards/handwired/6key/config.h
+++ /dev/null
@@ -1,20 +0,0 @@
- /* Copyright 2020 Bratzworth
- *
- * 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
-
-/* dip switch */
-#define DIP_SWITCH_PINS { C6 }
diff --git a/keyboards/handwired/6key/info.json b/keyboards/handwired/6key/info.json
index 39c26006d6..8e33a60e2e 100644
--- a/keyboards/handwired/6key/info.json
+++ b/keyboards/handwired/6key/info.json
@@ -13,6 +13,9 @@
"rows": ["B4", "D0"]
},
"diode_direction": "COL2ROW",
+ "dip_switch": {
+ "pins": ["C6"]
+ },
"processor": "atmega32u4",
"bootloader": "caterina",
"layouts": {
diff --git a/keyboards/handwired/atreus50/keymaps/ajp10304/config.h b/keyboards/handwired/atreus50/keymaps/ajp10304/config.h
deleted file mode 100644
index 4f15c56269..0000000000
--- a/keyboards/handwired/atreus50/keymaps/ajp10304/config.h
+++ /dev/null
@@ -1,28 +0,0 @@
-/* Copyright 2021 Alan Pocklington
- *
- * 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/>.
- */
-
-#ifndef CONFIG_USER_H
-#define CONFIG_USER_H
-
-#include "../../config.h"
-
-#undef MATRIX_ROW_PINS
-#undef MATRIX_COL_PINS
-
-#define MATRIX_ROW_PINS { D4, D5, C7, C6 }
-#define MATRIX_COL_PINS { F0, F1, F4, F5, F6, D7, D1, B7, D0, B3, B2, B1, B0 }
-
-#endif
diff --git a/keyboards/handwired/atreus50/keymaps/ajp10304/keymap.c b/keyboards/handwired/atreus50/keymaps/ajp10304/keymap.c
deleted file mode 100644
index d807df047d..0000000000
--- a/keyboards/handwired/atreus50/keymaps/ajp10304/keymap.c
+++ /dev/null
@@ -1,222 +0,0 @@
-/* Copyright 2021 Alan Pocklington
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-#include QMK_KEYBOARD_H
-#include "keymap_uk.h"
-#include "ajp10304.h"
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
-/* Qwerty
- * ,-----------------------------------------| |-----------------------------------------.
- * | Esc | Q | W | E | R | T | | Y | U | I | O | P | Bksp |
- * |------+------+------+------+------+------| |------+------+------+------+------+------|
- * | Tab | A | S | D | F | G | | H | J | K | L | ;: | Enter|
- * |------+------+------+------+------+------| |------+------+------+------+------+------|
- * | Shft | Z | X | C | V | B | | N | M | ,< | .> | /? | Shft |
- * |------+------+------+------+------+------+------+------+------+------+------+------+------+------|
- * | Fn | Ctrl | Alt | GUI |Lower | Bksp | Ctrl | Alt |Space |Raise | Shift| MENU | Ctrl | Fn2 |
- * `-------------------------------------------------------------------------------------------------'
- */
-[_QWERTY] = LAYOUT(
- LT(_NUMPAD, KC_ESC), KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC ,
- MT(MOD_LSFT, KC_TAB), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, MT(MOD_RSFT, 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 ,
- MO(_FUNC), KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_BSPC, KC_LCTL, KC_LALT, KC_SPC, RAISE, KC_LSFT, KC_BTN2, KC_RCTL, MO(_FUNC2)
-),
-
-/* Colemak-DHm
- * ,-----------------------------------------| |-----------------------------------------.
- * | Esc | Q | W | F | P | B | | J | L | U | Y | ;: | Bksp |
- * |------+------+------+------+------+------| |------+------+------+------+------+------|
- * | Tab | A | R | S | T | G | | M | N | E | I | O | Enter|
- * |------+------+------+------+------+------| |------+------+------+------+------+------|
- * | Shft | Z | X | C | D | V | | K | H | ,< | .> | /? | Shft |
- * |------+------+------+------+------+------+------+------+------+------+------+------+------+------|
- * | Fn | Ctrl | Alt | GUI |Lower | Bksp | Ctrl | Alt |Space |Raise | Shift| MENU | Ctrl | Fn2 |
- * `-------------------------------------------------------------------------------------------------'
- */
-[_QWERTY] = LAYOUT(
- LT(_NUMPAD, KC_ESC), KC_Q, KC_W, KC_F, KC_P, KC_B, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC ,
- MT(MOD_LSFT, KC_TAB), KC_A, KC_R, KC_S, KC_T, KC_G, KC_M, KC_N, KC_E, KC_I, KC_O, MT(MOD_RSFT, KC_ENT) ,
- KC_LSFT, KC_Z, KC_X, KC_C, KC_D, KC_V, KC_K, KC_H, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT ,
- MO(_FUNC), KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_BSPC, KC_LCTL, KC_LALT, KC_SPC, RAISE, KC_LSFT, KC_BTN2, KC_RCTL, MO(_FUNC2)
-),
-
-/* Function
- * ,------------------------------------------ |-----------------------------------------.
- * | F1 | F2 | F3 | F4 | F5 | F6 | | F7 | F8 | F9 | F10 | F11 | F12 |
- * |------+------+------+------+------+------- |------+------+------+------+------+------|
- * | 1! | 2" | 3£ | 4$ | 5% | 6^ | | 7& | 8* | 9( | 0) | ~ |INSERT|
- * |------+------+------+------+------+------| |------+------+------+------+------+------|
- * | Shift| \| | `¬ | #~ | * | -_ | | =+ | \| | [{ | ]} | '@ |Shift |
- * |------+------+------+------+------+------+------+------+------+------+------+------+------+------|
- * | Fn | Ctrl | Alt | GUI |Lower | Bksp | Ctrl | Alt |Space |Mouse | MENU | Alt | Ctrl | Fn |
- * `-------------------------------------------------------------------------------------------------'
- */
-[_FUNC] = LAYOUT(
- 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_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, UK_TILD, KC_INSERT ,
- KC_LSFT, KC_NUBS, KC_GRAVE, KC_NONUS_HASH, KC_PAST, KC_MINS, KC_EQL, KC_BSLS, KC_LBRC, KC_RBRC, KC_QUOT, MT(MOD_RSFT, KC_ENT) ,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, MO(_MOUSE), _______, _______, _______, _______
-),
-
-/* Lower
- * ,------------------------------------------ |-----------------------------------------.
- * | 1! | 2" | 3£ | 4$ | 5% | 6^ | | 7& | 8* | 9( | 0) | DEL | Bksp |
- * |------+------+------+------+------+------- |------+------+------+------+------+------|
- * | ! | " | £ | $ | % | ^ | | & | * | ( | ) |WrdDel|WrdBks|
- * |------+------+------+------+------+------| |------+------+------+------+------+------|
- * | Shift| \| | `¬ | #~ | '@ | -_ | | =+ | #~ | [{ | ]} | '@ |Shift |
- * |------+------+------+------+------+------+------+------+------+------+------+------+------+------|
- * | | | | |Lower | Del | Ctrl | Alt |Space | | Next | Vol- | Vol+ | Play |
- * `-------------------------------------------------------------------------------------------------'
- */
-[_LOWER] = LAYOUT(
- KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL, KC_BSPC ,
- LSFT(KC_1), LSFT(KC_2), LSFT(KC_3), LSFT(KC_4), LSFT(KC_5), LSFT(KC_6), LSFT(KC_7), LSFT(KC_8), LSFT(KC_9), LSFT(KC_0), LCTL(KC_DEL), LCTL(KC_BSPC) ,
- SC_LSPO, KC_NUBS, KC_GRAVE, KC_NONUS_HASH, KC_QUOT, KC_MINS, KC_EQL, KC_NONUS_HASH, KC_LBRC, KC_RBRC, KC_QUOT, MT(MOD_RSFT, KC_ENT) ,
- _______, _______, _______, _______, _______, KC_DEL, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY
-),
-
-/* Raise
- * ,------------------------------------------ |-----------------------------------------.
- * | ` | |WRDSEL| [ | ] | | | | PGUP | HOME |PGDOWN| |PRNTSC|
- * |------+------+------+------+------+------- |------+------+------+------+------+------|
- * | ` | | | ( | ) | | | | HOME | UP | END | |ZOOM +|
- * |------+------+------+------+------+------| |------+------+------+------+------+------|
- * | | | | { | } | | | |< | LEFT | DOWN |RIGHT | >| |ZOOM -|
- * |------+------+------+------+------+------|------+------+------+------+------+------+------+------|
- * | Mouse| | | | | Alt | Ctrl | Alt |Enter |Raise | | | | |
- * `-------------------------------------------------------------------------------------------------'
- */
-[_RAISE] = LAYOUT(
- KC_GRV, XXXXXXX, M_WORD_SEL, KC_LBRC, KC_RBRC, XXXXXXX, XXXXXXX, KC_PGUP, KC_HOME, KC_PGDN, XXXXXXX, KC_PSCR ,
- KC_GRV, XXXXXXX, XXXXXXX, LSFT(KC_9), LSFT(KC_0), XXXXXXX, XXXXXXX, KC_HOME, KC_UP, KC_END, XXXXXXX, LCTL(LSFT(KC_EQL)) ,
- _______, XXXXXXX, XXXXXXX, LSFT(KC_LBRC), LSFT(KC_RBRC), XXXXXXX, LCTL(KC_LEFT), KC_LEFT, KC_DOWN, KC_RIGHT, LCTL(KC_RIGHT), LCTL(KC_MINS) ,
- MO(_MOUSE), _______, _______, _______, _______, KC_LALT, _______, _______, KC_ENT, _______, XXXXXXX, _______, _______, _______
-),
-
-/* Adjust (Lower + Raise)
- * ,------------------------------------------ |------------------------------------------.
- * | ???? | Reset|Qwerty| | | REC1 | | REC2 | | | | | Del |
- * |------+------+------+------+------+------- |------+------+------+------+------+-------|
- * | CAPS | | | | | PLAY1| | PLAY2| Mute | Vol+ | Play | |Qwerty |
- * |------+------+------+------+------+------| |------+------+------+------+------+-------|
- * | PC/MC| | | | | STOP | | STOP | Prev | Vol- | Next | |Colemak|
- * |------+------+------+------+------+------+------+------+------+------+------+------+------+-------|
- * | | | | | | | | | | | | | | |
- * `--------------------------------------------------------------------------------------------------'
- */
-[_ADJUST] = LAYOUT(
- M_CUSTOM, QK_BOOT, QWERTY, _______, _______, DM_REC1, DM_REC2, _______, _______, _______, _______, KC_DEL ,
- KC_CAPS, _______, _______, _______, _______, DM_PLY1, DM_PLY2, KC_AUDIO_MUTE, KC_AUDIO_VOL_UP, KC_MEDIA_PLAY_PAUSE, _______, QWERTY ,
- TG(_MAC), _______, _______, _______, _______, DM_RSTP, DM_RSTP, KC_MEDIA_PREV_TRACK, KC_AUDIO_VOL_DOWN, KC_MEDIA_NEXT_TRACK, _______, COLEMAK ,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
-),
-
-/* Mouse
- * ,------------------------------------------ |-----------------------------------------.
- * | ESC | | | | | | | WH_L | WH_UP| BTN3 | WH_D | WH_R | |
- * |------+------+------+------+------+------- |------+------+------+------+------+------|
- * | ACC0 | ACC1 | ACC2 | | | | | | BTN1 | UP | BTN2 | | |
- * |------+------+------+------+------+------| |------+------+------+------+------+------|
- * | ACC0 | ACC1 | ACC2 | | | | | | LEFT | DOWN |RIGHT | | |
- * |------+------+------+------+------+------|------+------+------+------+------+------+------+------|
- * | | | | | | | | | | | | | | |
- * `-------------------------------------------------------------------------------------------------'
- */
-[_MOUSE] = LAYOUT(
- KC_ESC , _______, _______, _______, _______, _______, KC_MS_WH_LEFT, KC_MS_WH_UP, KC_MS_BTN3, KC_MS_WH_DOWN, KC_MS_WH_RIGHT, _______ ,
- KC_MS_ACCEL0, KC_MS_ACCEL1, KC_MS_ACCEL2, _______, _______, _______, _______, KC_MS_BTN1, KC_MS_UP, KC_MS_BTN2, _______, _______ ,
- KC_MS_ACCEL0, KC_MS_ACCEL1, KC_MS_ACCEL2, _______, _______, _______, _______, KC_MS_LEFT, KC_MS_DOWN, KC_MS_RIGHT, _______, _______ ,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
-),
-
-
-/* Num Pad
- * ,------------------------------------------ |-----------------------------------------.
- * | ESC | | | | | | |NMLOCK| 7 | 8 | 9 | / | |
- * |------+------+------+------+------+------- |------+------+------+------+------+------|
- * | | | | | | | | | 4 | 5 | 6 | * | |
- * |------+------+------+------+------+------| |------+------+------+------+------+------|
- * | | | | | | | | | 1 | 2 | 3 | + | |
- * |------+------+------+------+------+------|------+------+------+------+------+------+------+------|
- * | | | | | | | | | | 0 | . | , | - | |
- * `-------------------------------------------------------------------------------------------------'
- */
-[_NUMPAD] = LAYOUT(
- _______, _______, _______, _______, _______, _______, KC_NUM, KC_KP_7, KC_KP_8, KC_KP_9, KC_KP_SLASH, _______,
- _______, _______, _______, _______, _______, _______, _______, KC_KP_4, KC_KP_5, KC_KP_6, KC_KP_ASTERISK, _______,
- _______, _______, _______, _______, _______, _______, _______, KC_KP_1, KC_KP_2, KC_KP_3, KC_KP_PLUS, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_KP_0, KC_KP_DOT, KC_COMM, KC_KP_MINUS, _______
-),
-
-
-/* Function 2 (Right hand side)
- * ,------------------------------------------ |-----------------------------------------.
- * | | |WRDSEL| | | | | LNDEL| | | | | |
- * |------+------+------+------+------+------- |------+------+------+------+------+------|
- * | | | LNSEL| DUP | | | | | |LNJOIN| | | |
- * |------+------+------+------+------+------| |------+------+------+------+------+------|
- * | | UNDO | CUT | COPY | PASTE| | | | | | | | MODE |
- * |------+------+------+------+------+------|------+------+------+------+------+------+------+------|
- * | | | | | | | | | | | | | | |
- * `-------------------------------------------------------------------------------------------------'
- */
-[_FUNC2] = LAYOUT(
- _______, _______, M_WORD_SEL, _______, _______, _______, M_LINE_DEL, _______, _______, _______, _______, _______,
- _______, _______, M_LINE_SEL, M_DUP, _______, _______, _______, M_JOIN, _______, _______, _______, _______,
- _______, LCTL(KC_Z), LCTL(KC_X), LCTL(KC_C), LCTL(KC_V), _______, _______, _______, _______, _______, _______, M_MODE,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
-),
-
-[_MAC] = LAYOUT(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- MFNC, _______, _______, _______, MLWR, _______, _______, _______, _______, MRSE, _______, _______, _______, MFNC2
-),
-
-[_MLWR] = LAYOUT(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
-),
-
-[_MRSE] = LAYOUT(
- _______, _______, M_WORD_SEL_MAC, _______, _______, _______, _______, _______, _______, _______, _______, _______ ,
- _______, _______, _______, _______, _______, _______, _______, LCTL(KC_A), _______, LCTL(KC_E), _______, LGUI(KC_EQL) ,
- _______, _______, _______, _______, _______, _______, LALT(KC_LEFT), _______, _______, _______, LALT(KC_RIGHT), LGUI(KC_MINS) ,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
-),
-
-[_MFNC] = LAYOUT(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, LGUI(KC_PENT) ,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
-),
-
-[_MFNC2] = LAYOUT(
- _______, _______, M_WORD_SEL_MAC, _______, _______, _______, M_LINE_DEL_MAC, _______, _______, _______, _______, _______,
- _______, _______, M_LINE_SEL_MAC, M_DUP_MAC, _______, _______, _______, M_JOIN_MAC, _______, _______, _______, _______,
- _______, LGUI(KC_Z), LGUI(KC_X), LGUI(KC_C), LGUI(KC_V), _______, _______, _______, _______, _______, _______, M_MODE_MAC,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
-)
-
-};
diff --git a/keyboards/handwired/atreus50/keymaps/ajp10304/readme.md b/keyboards/handwired/atreus50/keymaps/ajp10304/readme.md
deleted file mode 100644
index 6ba052065d..0000000000
--- a/keyboards/handwired/atreus50/keymaps/ajp10304/readme.md
+++ /dev/null
@@ -1,130 +0,0 @@
-# AJP10304 Custom Atreus50 Layout
-# Also available for the Planck, Shark, Quark and JJ40
-
-**Note:** In the tables below where there are two characters on a key,
-the second is the output when shift is applied.
-
-**Note:** The below tables assume a UK layout.
-
-#### Flashing
-Refer to the README.md of the keyboard you want to flash.
-
-##### Main Qwerty Layer
-
-* Tab: when held, operates as shift.
-* Enter: when held, operates as shift.
-* MENU: perform right-click
-
-| | | | | | | | | | | | | | |
-| ---- |:----:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| ----:|
-| Esc | Q | W | E | R | T | | | Y | U | I | O | P | Bksp |
-| Tab | A | S | D | F | G | | | H | J | K | L | ;: | Enter|
-| Shft | Z | X | C | V | B | | | N | M | ,< | .> | /? | Shft |
-| Fn | Ctrl | Alt | GUI |Lower | Bksp | Ctrl | Alt |Space |Raise | Shift| MENU | Ctrl | Fn2 |
-
-##### Main Colemak-DHm Layer
-
-| | | | | | | | | | | | | | |
-| ---- |:----:| :---:|:---:|:-----:|:----:| :---:| :---:|:-----:|:-----:|:-----:|:----:|:----:| ----:|
-| Esc | Q | W | F | P | B | | | J | L | U | Y | ;: | Bksp |
-| Tab | A | R | S | T | G | | | M | N | E | I | O | Enter|
-| Shft | Z | X | C | D | V | | | K | H | ,< | .> | /? | Shft |
-| Fn | Ctrl | Alt | GUI | Lower | Bksp | Ctrl | Alt | Space | Raise | Shift | MENU | Ctrl | Fn2 |
-
-
-##### Function Layer
-Activated when `fn` held in the above `qwerty` layer.
-
-| | | | | | | | | | | | | | |
-| :---: |:----:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:|
-| F1 | F2 | F3 | F4 | F5 | F6 | | | F7 | F8 | F9 | F10 | F11 | F12 |
-| 1! | 2" | 3£ | 4$ | 5% | 6^ | | | 7& | 8* | 9( | 0) | ~ |INSERT|
-| Shift | \| | `¬ | #~ | * | -_ | | | =+ | \| | [{ | ]} | '@ |Shift |
-| Fn | Ctrl | Alt | GUI |Lower | Bksp | Ctrl | Alt |Space |Mouse | MENU | Alt | Ctrl | Fn2 |
-
-##### Lower Layer
-Activated when `Lower` is held in the above `qwerty` layer.
-
-* Numbers are along the top row, their shifted counterparts are on row 2.
-* WrdBks: `backspace` with `ctrl` applied. I.e. delete a word.
-* WrdDel: `delete` with `ctrl` applied. I.e. forward delete a word.
-
-| | | | | | | | | | | | | | |
-| :---: |:----:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:|
-| 1! | 2" | 3£ | 4$ | 5% | 6^ | | | 7& | 8* | 9( | 0) | DEL | Bksp |
-| ! | " | £ | $ | % | ^ | | | & | * | ( | ) |WrdDel|WrdBks|
-| Shift | \| | `¬ | #~ | '@ | -_ | | | =+ | #~ | [{ | ]} | '@ |Shift |
-| | | | |Lower | Del | Ctrl | Alt |Space | | Next | Vol- | Vol+ | Play |
-
-##### Raise Layer
-Activated when `Raise` is held in the above `qwerty` layer.
-
-* Preferred layer for typing brackets.
-* Allows for cursor navigation to be used solely with the right hand.
-* WRDSEL: Select the word where the cursor is.
-* |< and >|: Apply `ctrl` to `left` and `right` respectively for word jumping.
-
-| | | | | | | | | | | | | | |
-| :---: |:----:| :---:| :---:| :---:| :---:| :---:| :---:| :---: | :---:| :---:| :---:| :---: | :---:|
-| ` | |WRDSEL| [ | ] | | | | | PGUP | HOME |PGDOWN| |PRNTSC|
-| ` | | | ( | ) | | | | | HOME | UP | END | |ZOOM +|
-| | | | { | } | | | |&#124;<| LEFT | DOWN |RIGHT |>&#124;|ZOOM -|
-| Mouse | | | | | Alt | Ctrl | Alt | Enter |Raise | | | | |
-
-##### Lower + Raise
-Activated when `Lower` and `Raise` are held together in the above `qwerty` layer.
-
-* Audio controls in the same position as cursor keys from the `Raise` layer.
-* ????: Runs a macro for outputting a text string. Do not use this store passwords.
-* Reset: Enter bootloader for flashing firmware to the keyboard.
-* CAPS: Toggle caps lock.
-* Macro functions: Allows recording of macros. To start recording the macro, press either REC1 or REC2.
-To finish the recording, press STOP. To replay the macro, press either PLAY1 or PLAY2.
-* MAC: Toggle MAC OS extensions to layers. This allows MLWR to be enabled with LOWER,
-MRSE with RAISE, MFNC with FUNC and MFNC2 with FUNC2 respectively.
-
-| | | | | | | | | | | | | | |
-| :---: |:----:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:|:-------:|
-| ???? | Reset|Qwerty| | | REC1 | | | REC2 | | | | | Del |
-| CAPS | | | | | PLAY1| | |PLAY2 | Mute | Vol+ | Play | | Qwerty |
-| MAC | | | | | STOP1| | |STOP2 | Prev | Vol- | Next | | Colemak |
-| | | | | | | Ctrl | Alt | | | DYN | | | |
-
-##### Function 2 Layer
-Activated when `fn` held in the above `qwerty` layer.
-* WRDSEL: Select the word where the cursor is.
-* LNDEL: Delete the line where the cursor is.
-* LNSEL: Select the line where the cursor is.
-* DUP: Duplicate the selected text.
-* LNJOIN: Join the line where the cursor is with the following line.
-* MODE: Print either `PC` or `OSX` depending on what layer mode is active.
-
-| | | | | | | | | | | | | | |
-| :---: | :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:|
-| | |WRDSEL| | | | | | LNDEL| | | | | |
-| | | LNSEL| DUP | | | | | | |LNJOIN| | | |
-| | UNDO | CUT | COPY | PASTE| | | | | | | | | MODE |
-| | | | | | | Ctrl | Alt | | | | | | |
-
-##### Mouse Layer
-Activated when `fn` and `raise` held together.
-
-| | | | | | | | | | | | | | |
-| :---: | :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:|
-| ESC | | | | | | | | W_L | W_UP | BTN3 | W_DWN| W_R | |
-| ACC0 | ACC1 | ACC2 | | | | | | | BTN1 | UP | BTN2 | | |
-| ACC0 | ACC1 | ACC2 | | | | | | | LEFT | DOWN | RIGHT| | |
-| | | | | | | Ctrl | Alt | | | | | | |
-
-##### Number Pad Layout
-Activated when holding `Esc` key.
-
-| | | | | | | | | | | | | | |
-| :---: | :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:|
-| | | | | | | | |NMLOCK| 7 | 8 | 9 | / | |
-| | | | | | | | | | 4 | 5 | 6 | * | |
-| | | | | | | | | | 1 | 2 | 3 | + | |
-| | | | | | | Ctrl | Alt | | 0 | . | , | - | |
-
-
-
diff --git a/keyboards/handwired/atreus50/keymaps/ajp10304/rules.mk b/keyboards/handwired/atreus50/keymaps/ajp10304/rules.mk
deleted file mode 100644
index 900dbaed11..0000000000
--- a/keyboards/handwired/atreus50/keymaps/ajp10304/rules.mk
+++ /dev/null
@@ -1,3 +0,0 @@
-AUDIO_ENABLE = no
-MOUSEKEY_ENABLE = yes
-BOOTLOADER = halfkay
diff --git a/keyboards/handwired/atreus50/keymaps/default/keymap.c b/keyboards/handwired/atreus50/keymaps/default/keymap.c
index cbcc5fc6f8..c9de095cf8 100644
--- a/keyboards/handwired/atreus50/keymaps/default/keymap.c
+++ b/keyboards/handwired/atreus50/keymaps/default/keymap.c
@@ -94,20 +94,17 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
};
#ifdef AUDIO_ENABLE
-float tone_startup[][2] = {
- {NOTE_B5, 20},
- {NOTE_B6, 8},
- {NOTE_DS6, 20},
- {NOTE_B6, 8}
-};
+// float tone_startup[][2] = {
+// {NOTE_B5, 20},
+// {NOTE_B6, 8},
+// {NOTE_DS6, 20},
+// {NOTE_B6, 8}
+// };
float tone_qwerty[][2] = SONG(QWERTY_SOUND);
float tone_dvorak[][2] = SONG(DVORAK_SOUND);
float tone_colemak[][2] = SONG(COLEMAK_SOUND);
-float tone_goodbye[][2] = SONG(GOODBYE_SOUND);
-
-float music_scale[][2] = SONG(MUSIC_SCALE_SOUND);
#endif
void persistent_default_layer_set(uint16_t default_layer) {
@@ -178,36 +175,3 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
}
return true;
};
-
-void matrix_init_user(void) {
- #ifdef AUDIO_ENABLE
- startup_user();
- #endif
-}
-
-#ifdef AUDIO_ENABLE
-
-void startup_user(void)
-{
- _delay_ms(20); // gets rid of tick
- PLAY_SONG(tone_startup);
-}
-
-void shutdown_user(void)
-{
- PLAY_SONG(tone_goodbye);
- _delay_ms(150);
- stop_all_notes();
-}
-
-void music_on_user(void)
-{
- music_scale_user();
-}
-
-void music_scale_user(void)
-{
- PLAY_SONG(music_scale);
-}
-
-#endif
diff --git a/keyboards/handwired/battleship_gamepad/rules.mk b/keyboards/handwired/battleship_gamepad/rules.mk
index 7422e73873..a41273f890 100644
--- a/keyboards/handwired/battleship_gamepad/rules.mk
+++ b/keyboards/handwired/battleship_gamepad/rules.mk
@@ -1,5 +1,3 @@
-SRC += analog.c
-
# Build Options
# change yes to no to disable
#
diff --git a/keyboards/handwired/brain/keymaps/klackygears/config.h b/keyboards/handwired/brain/keymaps/klackygears/config.h
deleted file mode 100644
index b572858448..0000000000
--- a/keyboards/handwired/brain/keymaps/klackygears/config.h
+++ /dev/null
@@ -1,40 +0,0 @@
-/*
-Copyright 2020 James Smith <bronzegears@gmail.com>
-
-This program is free software: you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program. If not, see <http://www.gnu.org/licenses/>.
-*/
-
-#pragma once
-
-#define PERMISSIVE_HOLD
-#define TAPPING_TERM 150
-
-#define RGBLIGHT_EFFECT_BREATHING
-#define RGBLIGHT_EFFECT_RAINBOW_MOOD
-#define RGBLIGHT_EFFECT_RAINBOW_SWIRL
-#undef RGBLIGHT_RAINBOW_SWIRL_RANGE
-#define RGBLIGHT_RAINBOW_SWIRL_RANGE 75
-#define RGBLIGHT_EFFECT_SNAKE
-#undef RGBLIGHT_EFFECT_SNAKE_LENGTH
-#define RGBLIGHT_EFFECT_SNAKE_LENGTH 20
-#define RGBLIGHT_EFFECT_KNIGHT
-#undef RGBLIGHT_EFFECT_KNIGHT_LENGTH
-#define RGBLIGHT_EFFECT_KNIGHT_LENGTH 20
-
-// #define RGBLIGHT_EFFECT_CHRISTMAS
-// #define RGBLIGHT_EFFECT_STATIC_GRADIENT
-// #define RGBLIGHT_EFFECT_RGB_TEST
-// #define RGBLIGHT_EFFECT_ALTERNATING
-#define RGBLIGHT_EFFECT_TWINKLE
-#define RGBLIGHT_EFFECT_TWINKLE_PROBABILITY 1 / 127
diff --git a/keyboards/handwired/brain/keymaps/klackygears/keymap.c b/keyboards/handwired/brain/keymaps/klackygears/keymap.c
deleted file mode 100644
index 07185446db..0000000000
--- a/keyboards/handwired/brain/keymaps/klackygears/keymap.c
+++ /dev/null
@@ -1,99 +0,0 @@
-#include QMK_KEYBOARD_H
-#include "klackygears.h"
-
-//For an explanation of what's going on here with the keymap wrappers, check out drashna's user folder.
-
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
- [_WINBASE] = LAYOUT_wrapper(
- _______________DVORAK_L1___________________, KC_ESC, KC_GAMER, _______________DVORAK_R1___________________,
- RGB_TOG, _______________DVORAK_L2___________________, _______, KC_GAMR1, _______________DVORAK_R2___________________, RGB_TOG,
- RGB_MOD, _______________WINDVK_L3___________________, _______, KC_GAMR2, _______________WINDVK_R3___________________, RGB_MOD,
- _______, _______, __________________WIN_THUMB_CLUSTER_V2______________ , _______, _______,
- KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO
- ),
-
- [_MACBASE] = LAYOUT_wrapper(
- _______________DVORAK_L1___________________, KC_ESC, _______, _______________DVORAK_R1___________________,
- RGB_TOG, _______________DVORAK_L2___________________, _______, _______, _______________DVORAK_R2___________________, RGB_TOG,
- RGB_MOD, _______________MACDVK_L3___________________, _______, _______, _______________MACDVK_R3___________________, RGB_MOD,
- _______, _______, __________________MAC_THUMB_CLUSTER_V2______________ , _______, _______,
- KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO
- ),
-
-
- [_QWERTY] = LAYOUT_wrapper(
- _________________QWERTY_L1_________________, KC_ESC, _______, _________________QWERTY_R1_________________,
- KC_CAPS, _________________QWERTY_L2_________________, _______, _______, _________________QWERTY_R2_________________, KC_ENT,
- KC_LSFT, _________________QWERTY_L3_________________, _______, _______, _________________QWERTY_R3_________________, KC_RSFT,
- KC_LCTL, KC_LALT, KC_LGUI, MO(_MNMB), MO(_SYMB), MO(_SYMB), MO(_MNMB), KC_RGUI, MO(_MDIA), MO(_FUNC),
- KC_LSFT, KC_SPC, KC_SPC, KC_SPC, KC_SPC, KC_RSFT
- ),
- //Jedi - Fallen Order
- [_GAMER] = LAYOUT_wrapper(
- KC_R, KC_Q, KC_W, KC_E, KC_1, KC_ESC, KC_WINBASE, _________________RGB_1_____________________,
- KC_TAB, KC_F, KC_A, KC_S, KC_D, KC_2, LSFT(KC_F2), KC_GAMR1, _________________RGB_2_____________________, RGB_TOG,
- KC_TAB, KC_TAB, KC_X, KC_Z, KC_C, KC_3, KC_M, KC_GAMR2, _________________MEDIA_____________________, RGB_MOD,
- KC_LCTL, KC_LALT, KC_LCTL, KC_LSFT, KC_SPC, _______, KC_UP, _______, _______, _______,
- KC_NO, KC_LSFT, KC_LSFT, KC_LEFT, KC_DOWN, KC_RIGHT
- ),
- //Borderlands
- [_GAMR1] = LAYOUT_wrapper(
- KC_R, KC_G, KC_W, KC_E, KC_1, KC_ESC, KC_WINBASE, _________________RGB_1_____________________,
- KC_TAB, KC_V, KC_A, KC_S, KC_D, KC_2, KC_L, KC_GAMR1, _________________RGB_2_____________________, RGB_TOG,
- KC_T, KC_I, KC_F, KC_Q, KC_4, KC_3, KC_M, KC_GAMR2, _________________MEDIA_____________________, RGB_MOD,
- KC_X, KC_K, KC_C, KC_LSFT, KC_SPC, _______, KC_UP, _______, _______, _______,
- KC_Z, KC_LSFT, KC_LSFT, KC_LEFT, KC_DOWN, KC_RIGHT
- ),
- //Witcher
- [_GAMR2] = LAYOUT_wrapper(
- KC_R, KC_Q, KC_W, KC_E, KC_1, KC_ESC, KC_WINBASE, _________________RGB_1_____________________,
- KC_TAB, KC_LALT, KC_A, KC_S, KC_D, KC_2, KC_J, KC_GAMR1, _________________RGB_2_____________________, RGB_TOG,
- KC_X, KC_I, KC_F, KC_C, KC_V, KC_3, KC_M, KC_GAMR2, _________________MEDIA_____________________, RGB_MOD,
- KC_LCTL, KC_V, KC_HOME, KC_LSFT, KC_SPC, _______, KC_UP, _______, _______, _______,
- KC_ENT, KC_LCTL, KC_LSFT, KC_LEFT, KC_DOWN, KC_RIGHT
- ),
-
- [_SYMB] = LAYOUT_wrapper(
- _________________PUNC_L1_ALT_______________, _______, _______, _________________PUNC_R1___________________,
- _______, _________________PUNC_L3___________________, _______, _______, _________________PUNC_R2___________________, _______,
- RGB_MOD, _________________PUNC_L3_ALT_______________, _______, _______, _________________PUNC_R3___________________, _______,
- _______, _______, _______, _______, KC_DEL, KC_CAPS, _______, _______, _______, _______,
- _______, _______, KC_DEL, KC_CAPS, _______, _______
- ),
-
- [_FUNC] = LAYOUT_wrapper(
- _____________FUNC_L1_______________________, _______, _______, _______, _____________FUNC_1_______________,
- _______, ________MAC_MISSION_CTRL__________, LGUI(KC_L), _______, _______, _______, _____________FUNC_2_______________, _______,
- RGB_MOD, _____________FUNC_L3_______________________, _______, _______, _______, _____________FUNC_3_______________, _______,
- _______, _______, _______, _______, _______, KC_CAPS, _______, _______, _______, _______,
- _______, _______, _______, KC_CAPS, _______, _______
- ),
-
- [_MNMB] = LAYOUT_wrapper(
- _________________MACNAV_L1_________________, _______, _______, _________________NUMB_R1___________________,
- _______, _________________MACNAV_L2_________________, _______, _______, _________________NUMB_R2___________________, _______,
- RGB_MOD, _________________MACNAV_L3_________________, _______, _______, _________________NUMB_R3_MAC_______________, _______,
- _______, _______, _______, _______, _______, _______, RSFT_T(KC_ENT), KC_RSFT, _______, _______,
- _______, _______, _______, _______, RSFT_T(KC_ENT), KC_RSFT
- ),
-
-
- [_NUMB] = LAYOUT_wrapper(
- _________________WINNAV_L1_________________, _______, _______, _________________NUMB_R1___________________,
- _______, _________________WINNAV_L2_________________, _______, _______, _________________NUMB_R2___________________, _______,
- RGB_MOD, _________________WINNAV_L3_________________, _______, _______, _________________NUMB_R3_WIN_______________, _______,
- _______, _______, _______, _______, _______, _______, RSFT_T(KC_ENT), KC_RSFT, _______, _______,
- _______, _______, _______, _______, RSFT_T(KC_ENT), KC_RSFT
- ),
-
- [_MDIA] = LAYOUT_wrapper(
- _________________LYOUT_____________________, _______, RGB_TOG, _________________RGB_1_____________________,
- _______, _________________KC_BLANK__________________, _______, _______, _________________RGB_2_____________________, _______,
- RGB_MOD, _________________KC_BLANK__________________, _______, _______, _________________MEDIA_____________________, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______
- )
-
- };
diff --git a/keyboards/handwired/brain/keymaps/klackygears/rules.mk b/keyboards/handwired/brain/keymaps/klackygears/rules.mk
deleted file mode 100644
index 26c9daf6ad..0000000000
--- a/keyboards/handwired/brain/keymaps/klackygears/rules.mk
+++ /dev/null
@@ -1,3 +0,0 @@
-
-RGBLIGHT_ENABLE = yes #Enable WS2812 RGB underlight.
-TAP_DANCE_ENABLE = yes
diff --git a/keyboards/handwired/co60/rev7/config.h b/keyboards/handwired/co60/rev7/config.h
index 7e50f570ed..b6b7cecec2 100644
--- a/keyboards/handwired/co60/rev7/config.h
+++ b/keyboards/handwired/co60/rev7/config.h
@@ -23,5 +23,5 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define LOCKING_RESYNC_ENABLE
/* RGB underglow configuration */
-#define WS2812_SPI SPID1
+#define WS2812_SPI_DRIVER SPID1
#define WS2812_SPI_MOSI_PAL_MODE 5
diff --git a/keyboards/handwired/d48/keymaps/anderson/keymap.c b/keyboards/handwired/d48/keymaps/anderson/keymap.c
deleted file mode 100644
index 5ae92d2360..0000000000
--- a/keyboards/handwired/d48/keymaps/anderson/keymap.c
+++ /dev/null
@@ -1,342 +0,0 @@
-#include QMK_KEYBOARD_H
-#include "taphold.h"
-#include "seq.h"
-#include "ds1307.h"
-#include "lightmode.h"
-#include <stdio.h>
-
-/* Note: don't forget there's some more code in qmk_firmware/users/anderson dir */
-
-#define _MAIN 0
-#define _ALPHA 1
-#define _BETA 2
-
-enum custom_keycodes {
- KC_MAIN = SAFE_RANGE,
- KC_ALPHA,
- KC_BETA,
-#ifdef LIGHTMODE_ENABLE
- KC_LIGHT_MODE,
-#endif
- KC_SEQ,
- KC_SET_TIME,
-};
-#ifdef LIGHTMODE_ENABLE
-#endif
-
-/* TapHold is my own implementation of the `LT` macro. It's processed in `process_record_user()`. */
-#define TAPHOLD_CONFIG_SIZE 3
-taphold_t taphold_config[TAPHOLD_CONFIG_SIZE] = {
- {.key=KC_ALPHA, .mode=TAPHOLD_LAYER, .shortAction=KC_ESC, .longAction=_ALPHA},
- {.key=KC_BETA, .mode=TAPHOLD_LAYER, .shortAction=KC_EQL, .longAction=_BETA},
- {.key=KC_RCTL, .mode=TAPHOLD_MOD, .shortAction=KC_MINS, .longAction=KC_LCTL},
-};
-uint16_t taphold_config_size = TAPHOLD_CONFIG_SIZE;
-uint32_t taphold_timeout = 90;
-
-/* Seq is implementation of unicode macros similar to UCIS, but with unicode strings. */
-#define SEQ_CONFIG_SIZE 3
-seq_t seq_config[SEQ_CONFIG_SIZE] = {
- {.sequence="temp", .result="42°C"},
- {.sequence="table", .result="┳━━┳"},
- {.sequence="shrug", .result="¯\\_(ツ)_/¯"}
-};
-uint16_t seq_config_size = SEQ_CONFIG_SIZE;
-
-/* Colors */
-uint32_t layer_colors[3] = {
- [_MAIN] = 0xFF0010,
- [_ALPHA] = 0x4020FF,
- [_BETA] = 0x20FF00,
-};
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- /* Main layer
- │MUTE │ │L_MOD│
- ┏━━━━━┳━━━━━┯━━━━━┯━━━━━┯━━━━━┯━━━━━┳━━━━━┯━━━━━┯━━━━━┯━━━━━┯━━━━━┳━━━━━┓
- ┃ TAB ┃ Q │ W │ E │ R │ T ┃ Y │ U │ I │ O │ P ┃ BSP ┃
- ┣━━━━━╉─────┼─────┼─────┼─────┼─────╂─────┼─────┼─────┼─────┼─────╊━━━━━┫
- ┃𝛼/ESC┃ A │ S │ D │ F │ G ┃ H │ J │ K │ L │ ; ┃ RET ┃
- ┣━━━━━╉─────┼─────┼─────┼─────┼─────╂─────┼─────┼─────┼─────┼─────╊━━━━━┫
- ┃SHIFT┃ Z │ X │ C │ V │ B ┃ N │ M │ , │ . │ / ┃CTL/-┃
- ┣━━━━━╉─────┼─────┼─────┼─────┼─────╂─────┼─────┼─────┼─────┼─────╊━━━━━┫
- ┃LCTRL┃ │ │ ALT │ GUI │SPACE┃SPACE│ 𝛽/= │ ' │ │ ┃ \ ┃
- ┗━━━━━┻━━━━━┷━━━━━┷━━━━━┷━━━━━┷━━━━━┻━━━━━┷━━━━━┷━━━━━┷━━━━━┷━━━━━┻━━━━━┛
- */
- [_MAIN] = LAYOUT(
- KC_MUTE, LCTL(KC_D),
- 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_ALPHA,KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, 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_RCTL,
- KC_LCTL, _______, _______, KC_LALT, KC_LGUI, KC_SPC, KC_SPC, KC_BETA, KC_QUOT, _______, _______, KC_BSLS
- ),
-
- /* Alpha layer (𝛼)
- │ │ │ │
- ┏━━━━━┳━━━━━┯━━━━━┯━━━━━┯━━━━━┯━━━━━┳━━━━━┯━━━━━┯━━━━━┯━━━━━┯━━━━━┳━━━━━┓
- ┃ ┃PREV │PLAY │NEXT │ │NUMLK┃ - │ ^^^ │ ^ │ vvv │ ~ ┃ DEL ┃
- ┣━━━━━╉─────┼─────┼─────┼─────┼─────╂─────┼─────┼─────┼─────┼─────╊━━━━━┫
- ┃ ┃ │VOL -│VOL +│ │CPSLK┃HOME │ <-- │ v │ --> │ ` ┃ \ ┃
- ┣━━━━━╉─────┼─────┼─────┼─────┼─────╂─────┼─────┼─────┼─────┼─────╊━━━━━┫
- ┃ ┃ │ │ │ │SCRLK┃ END │ = │ [ │ ] │ ( ┃ ) ┃
- ┣━━━━━╉─────┼─────┼─────┼─────┼─────╂─────┼─────┼─────┼─────┼─────╊━━━━━┫
- ┃ ┃ │ │ │ │ ┃ │ │ │ │ ┃ ┃
- ┗━━━━━┻━━━━━┷━━━━━┷━━━━━┷━━━━━┷━━━━━┻━━━━━┷━━━━━┷━━━━━┷━━━━━┷━━━━━┻━━━━━┛
- */
- [_ALPHA] = LAYOUT(
- _______, _______,
- _______, KC_MPRV, KC_MPLY, KC_MNXT, _______, KC_NUM, KC_MINS, KC_PGUP, KC_UP, KC_PGDN, KC_TILD, KC_DEL,
- _______, _______, KC_VOLD, KC_VOLU, _______, KC_CAPS, KC_HOME, KC_LEFT, KC_DOWN, KC_RIGHT,KC_GRV, KC_BSLS,
- _______, _______, _______, _______, _______, KC_SCRL, KC_END, KC_EQL, KC_LBRC, KC_RBRC, KC_LPRN ,KC_RPRN,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
- ),
-
- /* Beta layer (𝛽)
- │ │ │ │
- ┏━━━━━┳━━━━━┯━━━━━┯━━━━━┯━━━━━┯━━━━━┳━━━━━┯━━━━━┯━━━━━┯━━━━━┯━━━━━┳━━━━━┓
- ┃ RGB ┃ 1 │ 2 │ 3 │ 4 │ 5 ┃ 6 │ 7 │ 8 │ 9 │ 0 ┃ F12 ┃
- ┣━━━━━╉─────┼─────┼─────┼─────┼─────╂─────┼─────┼─────┼─────┼─────╊━━━━━┫
- ┃L_MOD┃ F1 │ F2 │ F3 │ F4 │ F5 ┃ F6 │ F7 │ F8 │ F9 │ F10 ┃ F11 ┃
- ┣━━━━━╉─────┼─────┼─────┼─────┼─────╂─────┼─────┼─────┼─────┼─────╊━━━━━┫
- ┃ ┃Boot │Debug│ │ │TIME ┃SLEEP│ SEQ │ { │ } │PTSCR┃ ┃
- ┣━━━━━╉─────┼─────┼─────┼─────┼─────╂─────┼─────┼─────┼─────┼─────╊━━━━━┫
- ┃ ┃ │ │ │ │ ┃ │ │ │ │ ┃ ┃
- ┗━━━━━┻━━━━━┷━━━━━┷━━━━━┷━━━━━┷━━━━━┻━━━━━┷━━━━━┷━━━━━┷━━━━━┷━━━━━┻━━━━━┛
- */
- [_BETA] = LAYOUT(
- _______, _______,
- RGB_TOG, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_F12,
-#ifdef LIGHTMODE_ENABLE
- KC_LIGHT_MODE,
-#else
- _______,
-#endif
- KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,
- _______, QK_BOOT, DB_TOGG, _______, _______, KC_SET_TIME,KC_SLEP,KC_SEQ,KC_LCBR, KC_RCBR, KC_PSCR, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
- )
-};
-
-static bool alpha_pressed = false;
-static bool beta_pressed = false;
-
-static bool ctrl_pressed = false;
-static bool alt_pressed = false;
-static bool shift_pressed = false;
-static bool gui_pressed = false;
-
-static bool is_in_seq = false;
-
-void keyboard_post_init_user(void) {
- /* debug_enable = true; */
- /* debug_matrix = true; */
-}
-
-void eeconfig_init_user(void) {
- set_unicode_input_mode(UNICODE_MODE_LINUX);
-}
-
-void matrix_init_user(void) {
-#ifdef LIGHTMODE_ENABLE
- set_light_mode(SMOOTHLED, layer_colors[_MAIN]);
-#endif
-}
-
-static uint32_t last_update = 0;
-static uint8_t hours, minutes, seconds;
-
-void matrix_scan_user(void) {
- uint32_t now = timer_read32();
- if (now - last_update > 500) {
- ds1307_get_time(&hours, &minutes, &seconds);
- last_update = now;
- }
-}
-
-static bool is_in_set_time = false;
-static char new_time[6];
-static uint8_t new_time_index = 0;
-
-bool process_record_user(uint16_t keycode, keyrecord_t *record) {
- if (keycode == KC_SEQ && record->event.pressed) {
- seq_start();
- layer_off(_BETA);
- is_in_seq = true;
- return false;
- } else if (is_in_seq) {
- if (record->event.pressed) {
- if (!seq_feed(keycode)) {
- is_in_seq = false;
- }
- }
- return false;
- }
- if (keycode == KC_SET_TIME && record->event.pressed) {
- is_in_set_time = true;
- new_time_index = 0;
- } else if (is_in_set_time) {
- if (!record->event.pressed && keycode >= KC_1 && keycode <= KC_0) {
- new_time[new_time_index++] = (keycode == KC_0) ? 0 : keycode - KC_1 + 1;
- if (new_time_index == 6) {
- is_in_set_time = false;
- ds1307_set_time(
- (new_time[0]) * 10 + (new_time[1]),
- (new_time[2]) * 10 + (new_time[3]),
- (new_time[4]) * 10 + (new_time[5])
- );
- for (int i = 0; i < 6; i++) {
- tap_code(KC_BACKSPACE);
- }
- }
- }
- }
-
- if (keycode == KC_LCTL || keycode == KC_RCTL) {
- ctrl_pressed = record->event.pressed;
- } else if (keycode == KC_LALT) {
- alt_pressed = record->event.pressed;
- } else if (keycode == KC_LSFT) {
- shift_pressed = record->event.pressed;
- } else if (keycode == KC_LGUI) {
- gui_pressed = record->event.pressed;
- } else if (keycode == KC_ALPHA) {
- alpha_pressed = record->event.pressed;
- } else if (keycode == KC_BETA) {
- beta_pressed = record->event.pressed;
- }
-
- if (keycode == QK_BOOT) {
- rgblight_setrgb(255, 255, 0);
- }
-#ifdef LIGHTMODE_ENABLE
- if (record->event.pressed && keycode == KC_LIGHT_MODE) {
- next_light_mode(layer_colors[_MAIN]);
- }
-#endif
- if (keycode == KC_LCTL) {
- /* Some Overlay1_Enable fuckery! */
- (record->event.pressed ? register_code : unregister_code)(KC_LCTL);
- return false;
- }
- return taphold_process(keycode, record);
-}
-
-layer_state_t layer_state_set_user(layer_state_t state) {
-#ifdef LIGHTMODE_ENABLE
- uint8_t layer = get_highest_layer(state);
- update_light_mode(layer_colors[layer]);
-#endif
- return state;
-}
-
-bool encoder_update_user(uint8_t index, bool clockwise) {
- if (index == 0) {
- if (!alpha_pressed) {
- tap_code(clockwise ? KC_VOLD : KC_VOLU);
- } else {
- tap_code(clockwise ? KC_MPRV : KC_MNXT);
- }
- } else if (index == 1) {
- if (!alpha_pressed) {
- tap_code(clockwise ? KC_UP : KC_DOWN);
- } else {
- tap_code(clockwise ? KC_PGUP : KC_PGDN);
- }
- }
- return true;
-}
-
-#ifdef OLED_ENABLE
-oled_rotation_t oled_init_user(oled_rotation_t rotation) {
- return OLED_ROTATION_0;
-}
-
-bool oled_task_user(void) {
- /* Host Keyboard Layer Status */
- uint8_t current_layer = get_highest_layer(layer_state);
-
- /* Layer */
- static const char PROGMEM icons[4][3][6] = {
- {
- { 0x80, 0x81, 0x82, 0x83, 0x84, 0 },
- { 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0 },
- { 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0 }
- },
- {
- { 0x85, 0x86, 0x87, 0x88, 0x89, 0 },
- { 0xa5, 0xa6, 0xa7, 0xa8, 0xa9, 0 },
- { 0xc5, 0xc6, 0xc7, 0xc8, 0xc9, 0 }
- },
- {
- { 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0 },
- { 0xaa, 0xab, 0xac, 0xad, 0xae, 0 },
- { 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0 }
- },
- {
- { 0x8f, 0x90, 0x91, 0x92, 0x93, 0 },
- { 0xaf, 0xb0, 0xb1, 0xb2, 0xb3, 0 },
- { 0xcf, 0xd0, 0xd1, 0xd2, 0xd3, 0 }
- }
- };
-
- uint8_t icon_index = current_layer == _MAIN ? 3 : current_layer == _ALPHA ? 1 : 2;
- for (int i = 0; i < 3; i++) {
- oled_set_cursor(0, i + 1);
- oled_write_P(icons[icon_index][i], false);
- }
-
- /* Time */
- oled_set_cursor(6, 0);
- // oled_write_P(PSTR("-D48 Custom-\n"), false);
- char buf[16];
- sprintf(
- buf,
- "%02d:%02d:%02d", hours, minutes, seconds
- );
- oled_write(buf, false);
-
- /* Modifiers */
- static const char PROGMEM mods[][2] = {
- {0x94, 0x95}, // CTL
- {0x96, 0x97}, // ALT
- {0x98, 0x99}, // GUI
- {0x9a, 0x9b}, // SFT
- /* {0x9c, 0x9d}, // EMPTY */
- };
-
- char mod_data[13] = "\x9c\x9d\x9c\x9d\x9c\x9d\x9c\x9d \x07\x07\x07\0";
- if (ctrl_pressed) strncpy(mod_data, mods[0], 2);
- if (alt_pressed) strncpy(mod_data + 2, mods[1], 2);
- if (gui_pressed) strncpy(mod_data + 4, mods[2], 2);
- if (shift_pressed) strncpy(mod_data + 6, mods[3], 2);
- led_t led_usb_state = host_keyboard_led_state();
- if (led_usb_state.num_lock) mod_data[9] = 'N';
- if (led_usb_state.caps_lock) mod_data[10] = 'C';
- if (led_usb_state.scroll_lock) mod_data[11] = 'S';
-
- oled_set_cursor(6, 1);
- oled_write(mod_data, false);
-
- /* Matrix */
- static const char PROGMEM matrix_chars[] = {
- 0xb4, // None
- 0xb5, // Upper
- 0xb6, // Lower
- 0xb7 // Both
- };
-
- for (uint8_t row = 1; row < MATRIX_ROWS; row += 2) {
- // Skip first row because it's used by the encoders.
- uint16_t bits1 = matrix_get_row(row);
- uint16_t bits2 = matrix_get_row(row + 1);
-
- for (uint8_t col = 0; col < MATRIX_COLS; col++) {
- uint8_t matrix_char = matrix_chars[((bits1 & (1 << col)) ? 1 : 0) | ((bits2 & (1 << col)) ? 2 : 0)];
- oled_set_cursor(6 + col, 2 + (row - 1) / 2);
- oled_write_char(matrix_char, false);
- }
- }
-
- return false;
-}
-#endif
diff --git a/keyboards/handwired/d48/keymaps/anderson/lightmode.c b/keyboards/handwired/d48/keymaps/anderson/lightmode.c
deleted file mode 100644
index bc05956214..0000000000
--- a/keyboards/handwired/d48/keymaps/anderson/lightmode.c
+++ /dev/null
@@ -1,44 +0,0 @@
-#include "lightmode.h"
-
-#ifdef LIGHTMODE_ENABLE
-
-/* Light modes switcher */
-
-uint8_t light_mode = SMOOTHLED;
-
-void set_light_mode(light_mode_t value, uint32_t color) {
- light_mode = value;
- if (light_mode == SMOOTHLED) {
- smoothled_set(color);
- } else {
- dmc12_start(color, true);
- }
-}
-
-void process_light_mode(void) {
- if (light_mode == SMOOTHLED) {
- smoothled_process();
- } else {
- dmc12_process();
- }
-}
-
-void update_light_mode(uint32_t color) {
- if (light_mode == SMOOTHLED) {
- smoothled_set(color);
- } else {
- dmc12_start(color, false);
- }
-}
-
-void next_light_mode(uint32_t color) {
- light_mode = (light_mode + 1) % LIGHT_MODE_SIZE;
- set_light_mode(light_mode, color);
-}
-
-void matrix_scan_kb(void) {
- process_light_mode();
- matrix_scan_user();
-}
-
-#endif
diff --git a/keyboards/handwired/d48/keymaps/anderson/lightmode.h b/keyboards/handwired/d48/keymaps/anderson/lightmode.h
deleted file mode 100644
index 0c81e476bb..0000000000
--- a/keyboards/handwired/d48/keymaps/anderson/lightmode.h
+++ /dev/null
@@ -1,12 +0,0 @@
-#include "smoothled.h"
-#include "dmc12.h"
-#include "quantum.h"
-
-/* Light modes */
-enum light_mode_enum { SMOOTHLED, DMC12, LIGHT_MODE_SIZE };
-typedef enum light_mode_enum light_mode_t;
-
-void set_light_mode(light_mode_t value, uint32_t color);
-void process_light_mode(void);
-void update_light_mode(uint32_t color);
-void next_light_mode(uint32_t color);
diff --git a/keyboards/handwired/d48/keymaps/anderson/rules.mk b/keyboards/handwired/d48/keymaps/anderson/rules.mk
deleted file mode 100644
index e925b9a89f..0000000000
--- a/keyboards/handwired/d48/keymaps/anderson/rules.mk
+++ /dev/null
@@ -1,2 +0,0 @@
-OPT_DEFS += -DLIGHTMODE_ENABLE
-SRC += smoothled.c dmc12.c seq.c lightmode.c
diff --git a/keyboards/handwired/dactyl/rules.mk b/keyboards/handwired/dactyl/rules.mk
index 830812f79a..bffd901b04 100644
--- a/keyboards/handwired/dactyl/rules.mk
+++ b/keyboards/handwired/dactyl/rules.mk
@@ -14,5 +14,5 @@ SWAP_HANDS_ENABLE = yes # Allow swapping hands of keyboard
RGBLIGHT_ENABLE = no
# project specific files
-QUANTUM_LIB_SRC += i2c_master.c
+I2C_DRIVER_REQUIRED = yes
SRC += matrix.c
diff --git a/keyboards/handwired/dactyl_manuform/4x5/keymaps/ibnuda/config.h b/keyboards/handwired/dactyl_manuform/4x5/keymaps/ibnuda/config.h
deleted file mode 100644
index a597d848e2..0000000000
--- a/keyboards/handwired/dactyl_manuform/4x5/keymaps/ibnuda/config.h
+++ /dev/null
@@ -1,27 +0,0 @@
-/*
-This is the c configuration file for the keymap
-
-Copyright 2012 Jun Wako <wakojun@gmail.com>
-Copyright 2015 Jack Humbert
-
-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
-
-/* Select hand configuration */
-
-#define MASTER_LEFT
-// #define MASTER_RIGHT
-// #define EE_HANDS
diff --git a/keyboards/handwired/dactyl_manuform/4x5/keymaps/ibnuda/keymap.c b/keyboards/handwired/dactyl_manuform/4x5/keymaps/ibnuda/keymap.c
deleted file mode 100644
index 9d613042c9..0000000000
--- a/keyboards/handwired/dactyl_manuform/4x5/keymaps/ibnuda/keymap.c
+++ /dev/null
@@ -1,60 +0,0 @@
-#include QMK_KEYBOARD_H
-
-#include "ibnuda.h"
-
-#define TAB KC_TAB
-#define GUI KC_LGUI
-#define MIN KC_MINS
-#define SLS KC_SLSH
-#define CTL KC_LCTL
-#define DEL KC_DEL
-#define QUE KC_QUES
-#define ___ KC_NO
-
-// clang-format off
-#define LAYOUT_dm_base( \
- K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, \
- K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, \
- K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, \
- KTA, KTB, KTC, KTD, KTE, KTF \
- ) \
- LAYOUT_wrapper( \
- K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, \
- K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, \
- K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, \
- TAB, KTA, KTF, SLS, \
- KTB, KTC, KTD, KTE, \
- CTL, DEL, QUE, CTL, \
- ___, ___, ___, ___ \
- )
-
-#define LAYOUT_dm_base_wrapper(...) LAYOUT_dm_base(__VA_ARGS__)
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-[_BASE] = LAYOUT_dm_base_wrapper(
- LUP, LUR, LUM, LUI, LUII, RUII, RUI, RUM, RUR, RUP,
- SHLP, CTLR, ALLM, LMI, GULII, GURII, RMI, ALRM, CTRR, SHRP,
- LLP, LLR, LLM, LLI, LLII, RLII, RLI, RLM, RLR, RLP,
- CT_ESC, LW_E, SF_BSPC, AL_ENT, RS_SPC, TRAISE
-),
-
-[_RAISE] = LAYOUT_dm_base_wrapper(
- KC_EXLM,KC_AT, KC_UP, KC_LCBR,KC_RCBR, KC_BSLS,KC_7, KC_8, KC_9, KC_ASTR ,
- KC_HASH,CT_LEFT,AL_DOWN,KC_RGHT,KC_DLR, GU_EQL, KC_4, AL_FIVE,CT_SIX, SH_ZERO ,
- KC_LBRC,KC_RBRC,KC_LPRN,KC_RPRN,KC_AMPR, KC_GRV, KC_1, KC_2, KC_3, KC_PLUS ,
- _______,ADDDD ,_______, _______,RS_SPC, _______
-),
-[_LOWER] = LAYOUT_dm_base_wrapper(
- KC_ESC, KC_QUES,KC_UNDS,KC_F1, KC_F2, KC_F3, KC_F4, KC_MINS,KC_SLSH,KC_BSPC ,
- KC_LSFT,KC_PSCR,KC_PGUP,KC_F5, KC_F6, KC_F7, KC_F8, KC_HOME,KC_LALT,KC_ENT ,
- KC_CAPS,KC_SCRL,KC_PGDN,KC_F9, KC_F10, KC_F11, KC_F12, KC_END, KC_INS, KC_SLSH ,
- _______,_______,_______, _______,ADDDD, _______
-),
-[_ADJUST] = LAYOUT_dm_base_wrapper(
- _______,EXPLR, KC_UP, PRVTAB, PRVWIN, NXTWIN, NXTTAB, _______,_______,LCKGUI,
- TSKMGR, KC_LEFT,KC_DOWN,KC_RGHT,UPTAB, DNTAB, KC_ENT, KC_LGUI,_______,CALDL,
- _______,CLSGUI, _______,CONPST, QK_BOOT, _______,_______,_______,_______,_______,
- _______,_______,_______, _______,_______,_______
-),};
-// clang-format on
-
diff --git a/keyboards/handwired/dactyl_manuform/4x5/keymaps/manna-harbour_miryoku/config.h b/keyboards/handwired/dactyl_manuform/4x5/keymaps/manna-harbour_miryoku/config.h
deleted file mode 100644
index 3860a696c8..0000000000
--- a/keyboards/handwired/dactyl_manuform/4x5/keymaps/manna-harbour_miryoku/config.h
+++ /dev/null
@@ -1,24 +0,0 @@
-// Copyright 2019 Manna Harbour
-// https://github.com/manna-harbour/miryoku
-
-// 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 XXX KC_NO
-
-#define LAYOUT_miryoku(\
-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,\
-N30, N31, K32, K33, K34, K35, K36, K37, N38, N39\
-)\
-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,\
- XXX, XXX, XXX, XXX, \
- K32, K33, K36, K37, \
- K34, XXX, XXX, K35, \
- XXX, XXX, XXX, XXX \
-)
diff --git a/keyboards/handwired/dactyl_manuform/4x5/keymaps/manna-harbour_miryoku/keymap.c b/keyboards/handwired/dactyl_manuform/4x5/keymaps/manna-harbour_miryoku/keymap.c
deleted file mode 100644
index dbab7f9820..0000000000
--- a/keyboards/handwired/dactyl_manuform/4x5/keymaps/manna-harbour_miryoku/keymap.c
+++ /dev/null
@@ -1,4 +0,0 @@
-// Copyright 2019 Manna Harbour
-// https://github.com/manna-harbour/miryoku
-
-// 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/>.
diff --git a/keyboards/handwired/dactyl_manuform/4x6/keymaps/manna-harbour_miryoku/config.h b/keyboards/handwired/dactyl_manuform/4x6/keymaps/manna-harbour_miryoku/config.h
deleted file mode 100644
index f50033a046..0000000000
--- a/keyboards/handwired/dactyl_manuform/4x6/keymaps/manna-harbour_miryoku/config.h
+++ /dev/null
@@ -1,24 +0,0 @@
-// Copyright 2022 Manna Harbour
-// https://github.com/manna-harbour/miryoku
-
-// 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 XXX KC_NO
-
-#define LAYOUT_miryoku(\
- 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, \
- N30, N31, K32, K33, K34, K35, K36, K37, N38, N39 \
-) \
-LAYOUT( \
-XXX, K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, XXX, \
-XXX, K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, XXX, \
-XXX, K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, XXX, \
- XXX, XXX, XXX, XXX, \
- K32, K33, K36, K37, \
- K34, XXX, XXX, K35, \
- XXX, XXX, XXX, XXX \
-)
diff --git a/keyboards/handwired/dactyl_manuform/4x6/keymaps/manna-harbour_miryoku/keymap.c b/keyboards/handwired/dactyl_manuform/4x6/keymaps/manna-harbour_miryoku/keymap.c
deleted file mode 100644
index dbab7f9820..0000000000
--- a/keyboards/handwired/dactyl_manuform/4x6/keymaps/manna-harbour_miryoku/keymap.c
+++ /dev/null
@@ -1,4 +0,0 @@
-// Copyright 2019 Manna Harbour
-// https://github.com/manna-harbour/miryoku
-
-// 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/>.
diff --git a/keyboards/handwired/dactyl_manuform/4x6/keymaps/scheikled/README.md b/keyboards/handwired/dactyl_manuform/4x6/keymaps/scheikled/README.md
deleted file mode 100644
index b7f7cbf938..0000000000
--- a/keyboards/handwired/dactyl_manuform/4x6/keymaps/scheikled/README.md
+++ /dev/null
@@ -1,8 +0,0 @@
-#### compile with
-
-`make handwired/dactyl_manuform/4x6:scheikled`
-
-
-#### flash with
-
-`qmk flash -kb handwired/dactyl_manuform/4x6 -km scheikled`
diff --git a/keyboards/handwired/dactyl_manuform/4x6/keymaps/scheikled/config.h b/keyboards/handwired/dactyl_manuform/4x6/keymaps/scheikled/config.h
deleted file mode 100644
index a68c21b215..0000000000
--- a/keyboards/handwired/dactyl_manuform/4x6/keymaps/scheikled/config.h
+++ /dev/null
@@ -1,60 +0,0 @@
-// Copyright 2021 Paul Maria Scheikl (@ScheiklP)
-// SPDX-License-Identifier: GPL-2.0-or-later
-
-
-#pragma once
-
-#define USE_I2C
-
-#define SPLIT_HAND_PIN F6
-
-// WS2812 RGB LED strip input and number of LEDs
-#undef WS2812_DI_PIN
-#undef RGBLED_NUM
-#define WS2812_DI_PIN F4
-#define RGBLED_NUM 52
-#define RGBLED_SPLIT {26, 26}
-#define RGBLIGHT_EFFECT_BREATHING
-#define RGBLIGHT_EFFECT_RAINBOW_SWIRL
-#define RGBLIGHT_EFFECT_RGB_TEST
-#define RGBLIGHT_EFFECT_SNAKE
-
-// Amoeba royale PCBs (https://github.com/mtl/keyboard-pcbs/tree/master/amoeba-royale) use row to column layout (current can flow from row pin to column pin).
-#undef DIODE_DIRECTION
-#define DIODE_DIRECTION ROW2COL
-
-#define DEBOUNCE 5
-
-#define AUTO_SHIFT_TIMEOUT 100
-#define NO_AUTO_SHIFT_SPECIAL
-#define NO_AUTO_SHIFT_NUMERIC
-
-// require two taps for a TT layer switch (default 5)
-#define TAPPING_TOGGLE 2
-
-// Mouse control
-// constant mode (velocity)
-#define MK_3_SPEED
-// KC_ACL0 < KC_ACL1 < unmodified < KC_ACL2
-
-// Cursor offset per movement (unmodified)
-#define MK_C_OFFSET_UNMOD 16
-// Time between cursor movements (unmodified)
-#define MK_C_INTERVAL_UNMOD 10
-/* #define MK_C_INTERVAL_UNMOD 16 */
-
-// Cursor offset per movement (KC_ACL0)
-#define MK_C_OFFSET_0 1
-// Time between cursor movements (KC_ACL0)
-#define MK_C_INTERVAL_0 32
-
-// Cursor offset per movement (KC_ACL1)
-#define MK_C_OFFSET_1 4
-// Time between cursor movements (KC_ACL1)
-#define MK_C_INTERVAL_1 16
-
-// Cursor offset per movement (KC_ACL2)
-#define MK_C_OFFSET_2 20
-/* #define MK_C_OFFSET_2 32 */
-// Time between cursor movements (KC_ACL2)
-#define MK_C_INTERVAL_2 16
diff --git a/keyboards/handwired/dactyl_manuform/4x6/keymaps/scheikled/keymap.c b/keyboards/handwired/dactyl_manuform/4x6/keymaps/scheikled/keymap.c
deleted file mode 100644
index 24f6b35f57..0000000000
--- a/keyboards/handwired/dactyl_manuform/4x6/keymaps/scheikled/keymap.c
+++ /dev/null
@@ -1,63 +0,0 @@
-// Copyright 2021 Paul Maria Scheikl (@ScheiklP)
-// SPDX-License-Identifier: GPL-2.0-or-later
-
-/* A K.O,Y layout for the Dactyl Manuform 4x6 Keyboard */
-
-#include QMK_KEYBOARD_H
-#include "koy_keys_on_quertz_de_latin1.h"
-
-enum custom_layers {
- _1,
- _3,
- _4,
- _7,
-};
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
- [_1] = LAYOUT(
- KC_TAB , KC_K , KC_DOT , KC_O , KC_COMM , N_Y , KC_V , KC_G , KC_C , KC_L , N_SS , N_Z ,
- MO(_3) , KC_H , KC_A , KC_E , KC_I , KC_U , KC_D , KC_T , KC_R , KC_N , KC_S , KC_F ,
- KC_LSFT , KC_X , KC_Q , N_AE , N_UE , N_OE , KC_B , KC_P , KC_W , KC_M , KC_J , KC_RSFT ,
- KC_LCTL , KC_LGUI , KC_CAPS , TT(_7) ,
- KC_LALT , KC_SPC , MO(_3) , MO(_4) ,
- N_COPY , N_CUT , KC_ESC , KC_ENTER ,
- N_PASTE , N_UNDO , KC_BSPC , KC_DEL
- ),
-
- [_3] = LAYOUT(
-
- KC_TAB , N_DOTS , N_USC , N_LSQBR , N_RSQBR , N_CIRC , N_EXKL , N_LT , N_GT , N_EQ , N_AMP , N_ACUT ,
- KC_TRNS , N_BSLS , N_SLSH , N_LCUBR , N_RCUBR , N_ASTR , N_QUES , N_LPARN , N_RPARN , N_MINS , N_COLN , N_AT ,
- KC_LSFT , N_HASH , N_DLR , N_PIPE , N_TILD , N_GRAVE , N_PLUS , N_PERC , N_QUOT , N_SING , N_SEMI , KC_RSFT ,
- KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS ,
- KC_LALT , KC_SPC , KC_TRNS , KC_TRNS ,
- N_COPY , N_CUT , KC_ESC , KC_ENTER ,
- N_PASTE , N_UNDO , KC_BSPC , KC_DEL
-
- ),
-
- [_4] = LAYOUT(
-
- KC_TAB , KC_PGUP , KC_BSPC , KC_UP , KC_DEL , KC_PGDN , KC_KP_SLASH , KC_7 , KC_8 , KC_9 , KC_KP_MINUS , KC_TRNS ,
- KC_TRNS , KC_HOME , KC_LEFT , KC_DOWN , KC_RIGHT , KC_END , KC_KP_ASTERISK , KC_4 , KC_5 , KC_6 , KC_KP_PLUS , KC_TRNS ,
- KC_LSFT , KC_ESC , KC_TAB , KC_INS , KC_ENTER , N_UNDO , KC_KP_ENTER , KC_1 , KC_2 , KC_3 , KC_KP_DOT , KC_RSFT ,
- KC_TRNS , KC_TRNS , KC_0 , KC_TRNS ,
- KC_LALT , KC_0 , KC_TRNS , KC_TRNS ,
- N_COPY , N_CUT , KC_ESC , KC_ENTER ,
- N_PASTE , N_UNDO , KC_BSPC , KC_DEL
-
- ),
-
- [_7] = LAYOUT(
-
- KC_TAB , KC_MS_WH_UP , KC_MS_BTN2 , KC_MS_UP , KC_MS_BTN1 , KC_MS_WH_DOWN , KC_TRNS , KC_F7 , KC_F8 , KC_F9 , RGB_HUI , QK_BOOT ,
- KC_TRNS , KC_MS_ACCEL0 , KC_MS_LEFT , KC_MS_DOWN , KC_MS_RIGHT , KC_TRNS , KC_TRNS , KC_F4 , KC_F5 , KC_F6 , RGB_SAI , RGB_TOG ,
- KC_LSFT , KC_MS_ACCEL1 , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_F1 , KC_F2 , KC_F3 , RGB_VAI , RGB_MODE_FORWARD ,
- KC_TRNS , KC_PSCR , KC_F10 , KC_TRNS ,
- KC_LALT , KC_F10 , KC_TRNS , KC_TRNS ,
- N_COPY , N_CUT , KC_ESC , KC_ENTER ,
- N_PASTE , N_UNDO , KC_BSPC , KC_DEL
-
- ),
-};
diff --git a/keyboards/handwired/dactyl_manuform/4x6/keymaps/scheikled/rules.mk b/keyboards/handwired/dactyl_manuform/4x6/keymaps/scheikled/rules.mk
deleted file mode 100644
index 53ce5a3190..0000000000
--- a/keyboards/handwired/dactyl_manuform/4x6/keymaps/scheikled/rules.mk
+++ /dev/null
@@ -1,11 +0,0 @@
-# Copyright 2021 Paul Maria Scheikl (@ScheiklP)
-# SPDX-License-Identifier: GPL-2.0-or-later
-
-BOOTLOADER = atmel-dfu
-AUTO_SHIFT_ENABLE = yes
-CONSOLE_ENABLE = no
-COMMAND_ENABLE = no
-NKRO_ENABLE = yes
-RGBLIGHT_ENABLE = yes
-DEBOUNCE_TYPE = asym_eager_defer_pk
-USER_NAME := scheiklp
diff --git a/keyboards/handwired/dactyl_manuform/4x6/keymaps/scheiklp/README.md b/keyboards/handwired/dactyl_manuform/4x6/keymaps/scheiklp/README.md
deleted file mode 100644
index 18c4d8e78d..0000000000
--- a/keyboards/handwired/dactyl_manuform/4x6/keymaps/scheiklp/README.md
+++ /dev/null
@@ -1,8 +0,0 @@
-#### compile with
-
-`make handwired/dactyl_manuform/4x6:scheiklp`
-
-
-#### flash with
-
-`qmk flash -kb handwired/dactyl_manuform/4x6 -km scheiklp`
diff --git a/keyboards/handwired/dactyl_manuform/4x6/keymaps/scheiklp/config.h b/keyboards/handwired/dactyl_manuform/4x6/keymaps/scheiklp/config.h
deleted file mode 100644
index 2db9052799..0000000000
--- a/keyboards/handwired/dactyl_manuform/4x6/keymaps/scheiklp/config.h
+++ /dev/null
@@ -1,47 +0,0 @@
-// Copyright 2021 Paul Maria Scheikl (@ScheiklP)
-// SPDX-License-Identifier: GPL-2.0-or-later
-
-#pragma once
-
-
-#define USE_I2C
-#define SPLIT_HAND_PIN F6
-
-#undef WS2812_DI_PIN
-#undef RGBLED_NUM
-
-#define DEBOUNCE 5
-
-#define AUTO_SHIFT_TIMEOUT 100
-#define NO_AUTO_SHIFT_SPECIAL
-#define NO_AUTO_SHIFT_NUMERIC
-
-// require two taps for a TT layer switch (default 5)
-#define TAPPING_TOGGLE 2
-
-// Mouse control
-// constant mode (velocity)
-#define MK_3_SPEED
-// KC_ACL0 < KC_ACL1 < unmodified < KC_ACL2
-
-// Cursor offset per movement (unmodified)
-#define MK_C_OFFSET_UNMOD 16
-// Time between cursor movements (unmodified)
-#define MK_C_INTERVAL_UNMOD 10
-/* #define MK_C_INTERVAL_UNMOD 16 */
-
-// Cursor offset per movement (KC_ACL0)
-#define MK_C_OFFSET_0 1
-// Time between cursor movements (KC_ACL0)
-#define MK_C_INTERVAL_0 32
-
-// Cursor offset per movement (KC_ACL1)
-#define MK_C_OFFSET_1 4
-// Time between cursor movements (KC_ACL1)
-#define MK_C_INTERVAL_1 16
-
-// Cursor offset per movement (KC_ACL2)
-#define MK_C_OFFSET_2 20
-/* #define MK_C_OFFSET_2 32 */
-// Time between cursor movements (KC_ACL2)
-#define MK_C_INTERVAL_2 16
diff --git a/keyboards/handwired/dactyl_manuform/4x6/keymaps/scheiklp/keymap.c b/keyboards/handwired/dactyl_manuform/4x6/keymaps/scheiklp/keymap.c
deleted file mode 100644
index 86a34c4f04..0000000000
--- a/keyboards/handwired/dactyl_manuform/4x6/keymaps/scheiklp/keymap.c
+++ /dev/null
@@ -1,64 +0,0 @@
-// Copyright 2021 Paul Maria Scheikl (@ScheiklP)
-// SPDX-License-Identifier: GPL-2.0-or-later
-
-/* A K.O,Y layout for the Dactyl Manuform 4x6 Keyboard */
-
-#include QMK_KEYBOARD_H
-#include "koy_keys_on_quertz_de_latin1.h"
-
-enum custom_layers {
- _1,
- _3,
- _4,
- _7,
-};
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
- [_1] = LAYOUT(
- KC_TAB , KC_K , KC_DOT , KC_O , KC_COMM , N_Y , KC_V , KC_G , KC_C , KC_L , N_SS , N_Z ,
- MO(_3) , KC_H , KC_A , KC_E , KC_I , KC_U , KC_D , KC_T , KC_R , KC_N , KC_S , KC_F ,
- KC_LSFT , KC_X , KC_Q , N_AE , N_UE , N_OE , KC_B , KC_P , KC_W , KC_M , KC_J , KC_RSFT ,
- KC_LCTL , KC_LGUI , KC_CAPS , TT(_7) ,
- KC_LALT , KC_SPC , MO(_3) , MO(_4) ,
- N_COPY , N_CUT , KC_ESC , KC_ENTER ,
- N_PASTE , N_UNDO , KC_BSPC , KC_DEL
- ),
-
- [_3] = LAYOUT(
-
- KC_TAB , N_DOTS , N_USC , N_LSQBR , N_RSQBR , N_CIRC , N_EXKL , N_LT , N_GT , N_EQ , N_AMP , N_ACUT ,
- KC_TRNS , N_BSLS , N_SLSH , N_LCUBR , N_RCUBR , N_ASTR , N_QUES , N_LPARN , N_RPARN , N_MINS , N_COLN , N_AT ,
- KC_LSFT , N_HASH , N_DLR , N_PIPE , N_TILD , N_GRAVE , N_PLUS , N_PERC , N_QUOT , N_SING , N_SEMI , KC_RSFT ,
- KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS ,
- KC_LALT , KC_SPC , KC_TRNS , KC_TRNS ,
- N_COPY , N_CUT , KC_ESC , KC_ENTER ,
- N_PASTE , N_UNDO , KC_BSPC , KC_DEL
-
- ),
-
- [_4] = LAYOUT(
-
- KC_TAB , KC_PGUP , KC_BSPC , KC_UP , KC_DEL , KC_PGDN , KC_KP_SLASH , KC_7 , KC_8 , KC_9 , KC_KP_MINUS , KC_TRNS ,
- KC_TRNS , KC_HOME , KC_LEFT , KC_DOWN , KC_RIGHT , KC_END , KC_KP_ASTERISK , KC_4 , KC_5 , KC_6 , KC_KP_PLUS , KC_TRNS ,
- KC_LSFT , KC_ESC , KC_TAB , KC_INS , KC_ENTER , N_UNDO , KC_KP_ENTER , KC_1 , KC_2 , KC_3 , KC_KP_DOT , KC_RSFT ,
- KC_TRNS , KC_TRNS , KC_0 , KC_TRNS ,
- KC_LALT , KC_0 , KC_TRNS , KC_TRNS ,
- N_COPY , N_CUT , KC_ESC , KC_ENTER ,
- N_PASTE , N_UNDO , KC_BSPC , KC_DEL
-
- ),
-
- [_7] = LAYOUT(
-
- KC_TAB , KC_MS_WH_UP , KC_MS_BTN2 , KC_MS_UP , KC_MS_BTN1 , KC_MS_WH_DOWN , KC_TRNS , KC_F7 , KC_F8 , KC_F9 , KC_TRNS , KC_TRNS ,
- KC_TRNS , KC_MS_ACCEL0 , KC_MS_LEFT , KC_MS_DOWN , KC_MS_RIGHT , KC_TRNS , KC_TRNS , KC_F4 , KC_F5 , KC_F6 , KC_TRNS , KC_TRNS ,
- KC_LSFT , KC_MS_ACCEL1 , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_TRNS , KC_F1 , KC_F2 , KC_F3 , KC_TRNS , KC_TRNS ,
- KC_TRNS , KC_PSCR , KC_F10 , KC_TRNS ,
- KC_LALT , KC_F10 , KC_TRNS , KC_TRNS ,
- N_COPY , N_CUT , KC_ESC , KC_ENTER ,
- N_PASTE , N_UNDO , KC_BSPC , KC_DEL
-
- ),
-
-};
diff --git a/keyboards/handwired/dactyl_manuform/4x6/keymaps/scheiklp/rules.mk b/keyboards/handwired/dactyl_manuform/4x6/keymaps/scheiklp/rules.mk
deleted file mode 100644
index db873a7522..0000000000
--- a/keyboards/handwired/dactyl_manuform/4x6/keymaps/scheiklp/rules.mk
+++ /dev/null
@@ -1,9 +0,0 @@
-# Copyright 2021 Paul Maria Scheikl (@ScheiklP)
-# SPDX-License-Identifier: GPL-2.0-or-later
-
-BOOTLOADER = atmel-dfu
-AUTO_SHIFT_ENABLE = yes
-CONSOLE_ENABLE = no
-COMMAND_ENABLE = no
-NKRO_ENABLE = yes
-DEBOUNCE_TYPE = asym_eager_defer_pk
diff --git a/keyboards/handwired/dactyl_manuform/4x6_5/keymaps/manna-harbour_miryoku/config.h b/keyboards/handwired/dactyl_manuform/4x6_5/keymaps/manna-harbour_miryoku/config.h
deleted file mode 100644
index 9532d1f67c..0000000000
--- a/keyboards/handwired/dactyl_manuform/4x6_5/keymaps/manna-harbour_miryoku/config.h
+++ /dev/null
@@ -1,24 +0,0 @@
-// Copyright 2019 Manna Harbour
-// https://github.com/manna-harbour/miryoku
-// generated -*- buffer-read-only: t -*-
-
-// 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 XXX KC_NO
-
-#define LAYOUT_miryoku(\
-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,\
-N30, N31, K32, K33, K34, K35, K36, K37, N38, N39\
-)\
-LAYOUT( \
-XXX, K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, XXX, \
-XXX, K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, XXX, \
-XXX, K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, XXX, \
- XXX, XXX, XXX, XXX, \
- K32, K33, K34, K35, K36, K37, \
- XXX, XXX, XXX, XXX \
-)
diff --git a/keyboards/handwired/dactyl_manuform/4x6_5/keymaps/manna-harbour_miryoku/keymap.c b/keyboards/handwired/dactyl_manuform/4x6_5/keymaps/manna-harbour_miryoku/keymap.c
deleted file mode 100644
index 7c5717a0fe..0000000000
--- a/keyboards/handwired/dactyl_manuform/4x6_5/keymaps/manna-harbour_miryoku/keymap.c
+++ /dev/null
@@ -1,5 +0,0 @@
-// Copyright 2019 Manna Harbour
-// https://github.com/manna-harbour/miryoku
-// generated -*- buffer-read-only: t -*-
-
-// 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/>.
diff --git a/keyboards/handwired/dactyl_manuform/5x6/keymaps/333fred/config.h b/keyboards/handwired/dactyl_manuform/5x6/keymaps/333fred/config.h
deleted file mode 100644
index 9ee1c3e3cb..0000000000
--- a/keyboards/handwired/dactyl_manuform/5x6/keymaps/333fred/config.h
+++ /dev/null
@@ -1,28 +0,0 @@
-/*
- Copyright (c) 2020 Fred Silberberg
-
- Permission is hereby granted, free of charge, to any person obtaining a copy
- of this software and associated documentation files (the "Software"), to deal
- in the Software without restriction, including without limitation the rights
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- copies of the Software, and to permit persons to whom the Software is
- furnished to do so, subject to the following conditions:
-
- The above copyright notice and this permission notice shall be included in all
- copies or substantial portions of the Software.
-
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- THE SOFTWARE.
-*/
-
-#pragma once
-
-#define EE_HANDS
-
-#undef TAPPING_TERM
-#define TAPPING_TERM 200
diff --git a/keyboards/handwired/dactyl_manuform/5x6/keymaps/333fred/keymap.c b/keyboards/handwired/dactyl_manuform/5x6/keymaps/333fred/keymap.c
deleted file mode 100644
index 326eded640..0000000000
--- a/keyboards/handwired/dactyl_manuform/5x6/keymaps/333fred/keymap.c
+++ /dev/null
@@ -1,76 +0,0 @@
-/*
- Copyright (c) 2020 Fred Silberberg
-
- Permission is hereby granted, free of charge, to any person obtaining a copy
- of this software and associated documentation files (the "Software"), to deal
- in the Software without restriction, including without limitation the rights
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- copies of the Software, and to permit persons to whom the Software is
- furnished to do so, subject to the following conditions:
-
- The above copyright notice and this permission notice shall be included in all
- copies or substantial portions of the Software.
-
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- THE SOFTWARE.
-*/
-
-#include QMK_KEYBOARD_H
-#include "333fred.h"
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
- [BASE] = LAYOUT_5x6(
- 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_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS,
- KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
- OSM(MOD_LSFT), CTL_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, OSM(MOD_RSFT),
- KC_F4, KC_F5, TG(CODEFLOW), KC_EQL,
- KC_LALT, KC_BSPC, KC_SPC, OSL(VIM),
- TD(TD_COPY_PASTE), TD(TD_SYM_VIM), KC_ENT, KC_RGUI,
- KC_LCTL, KC_DEL, KC_UP, KC_DOWN
- ),
-
- [CODEFLOW] = LAYOUT_5x6(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- KC_F7, KC_F8, _______, _______,
- _______, _______, _______, _______,
- _______, _______, _______, _______,
- _______, _______, _______, _______
- ),
-
- [SYMB] = LAYOUT_5x6(
- _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,
- _______, KC_EXLM, KC_AT, KC_LPRN, KC_RPRN, KC_PIPE, _______, KC_7, KC_8, KC_9, _______, KC_F12,
- _______, KC_HASH, KC_DLR, KC_LCBR, KC_RCBR, KC_GRV, _______, KC_4, KC_5, KC_6, _______, _______,
- _______, KC_PERC, KC_CIRC, KC_LBRC, KC_RBRC, KC_TILD, _______, KC_1, KC_2, KC_3, _______, _______,
- KC_F7, KC_F8, KC_0, KC_ENT,
- _______, _______, KC_MPLY, KC_MNXT,
- _______, _______, KC_MPRV, _______,
- _______, _______, KC_VOLU, KC_VOLD
- ),
-
- [VIM] = LAYOUT_5x6(
- _______, QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, QK_BOOT, _______,
- _______, _______, _______, _______, KC_LSFT, _______, _______, _______, _______, _______, _______, _______,
- _______, DLEFT, DRIGHT, KC_LCTL, KC_LGUI, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______,
- _______, _______, _______, _______,
- _______, _______, _______, _______,
- _______, _______, _______, _______
- ),
-};
-
-bool process_record_user(uint16_t keycode, keyrecord_t *record) {
- tap_dance_process_keycode(keycode);
- return !try_handle_macro(keycode, record);
-}
diff --git a/keyboards/handwired/dactyl_manuform/5x6/keymaps/333fred/rules.mk b/keyboards/handwired/dactyl_manuform/5x6/keymaps/333fred/rules.mk
deleted file mode 100644
index 5ad63b02b7..0000000000
--- a/keyboards/handwired/dactyl_manuform/5x6/keymaps/333fred/rules.mk
+++ /dev/null
@@ -1,3 +0,0 @@
-KEY_LOCK_ENABLE = yes
-CONSOLE_ENABLE = no
-LTO_ENABLE = yes
diff --git a/keyboards/handwired/dactyl_manuform/5x6/keymaps/manna-harbour_miryoku/config.h b/keyboards/handwired/dactyl_manuform/5x6/keymaps/manna-harbour_miryoku/config.h
deleted file mode 100644
index a213d43d39..0000000000
--- a/keyboards/handwired/dactyl_manuform/5x6/keymaps/manna-harbour_miryoku/config.h
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright 2019 Manna Harbour
-// https://github.com/manna-harbour/miryoku
-
-// 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 XXX KC_NO
-
-#define LAYOUT_miryoku(\
- 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, \
- N30, N31, K32, K33, K34, K35, K36, K37, N38, N39 \
-) \
-LAYOUT_5x6( \
-XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, \
-XXX, K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, XXX, \
-XXX, K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, XXX, \
-XXX, K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, XXX, \
- XXX, XXX, XXX, XXX, \
- K32, K33, K36, K37, \
- K34, XXX, XXX, K35, \
- XXX, XXX, XXX, XXX \
-)
diff --git a/keyboards/handwired/dactyl_manuform/5x6/keymaps/manna-harbour_miryoku/keymap.c b/keyboards/handwired/dactyl_manuform/5x6/keymaps/manna-harbour_miryoku/keymap.c
deleted file mode 100644
index dbab7f9820..0000000000
--- a/keyboards/handwired/dactyl_manuform/5x6/keymaps/manna-harbour_miryoku/keymap.c
+++ /dev/null
@@ -1,4 +0,0 @@
-// Copyright 2019 Manna Harbour
-// https://github.com/manna-harbour/miryoku
-
-// 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/>.
diff --git a/keyboards/handwired/dactyl_manuform/5x6/keymaps/rishka/config.h b/keyboards/handwired/dactyl_manuform/5x6/keymaps/rishka/config.h
deleted file mode 100644
index 7eaeceb44a..0000000000
--- a/keyboards/handwired/dactyl_manuform/5x6/keymaps/rishka/config.h
+++ /dev/null
@@ -1,47 +0,0 @@
-/*
-Copyright 2012 Jun Wako <wakojun@gmail.com>
-
-This program is free software: you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program. If not, see <http://www.gnu.org/licenses/>.
-*/
-
-
-#pragma once
-
-#define USE_I2C
-// #define MASTER_LEFT
-// #define MASTER_RIGHT
-#define EE_HANDS
-// Rows are doubled-up
-// #define DEBOUNCE 5
-#define TAPPING_TOGGLE 3
-#define ONESHOT_TAP_TOGGLE 3
-#define PERMISSIVE_HOLD
-#define TAPPING_TERM 300
-#ifdef RGBLED_NUM
-# undef RGBLED_NUM
-#endif
-#define RGBLED_NUM 54
-#define RGBLIGHT_LIMIT_VAL 200
-#define RGBLIGHT_EFFECT_BREATHING
-#define RGBLIGHT_EFFECT_RAINBOW_MOOD
-#define RGBLIGHT_EFFECT_RAINBOW_SWIRL
-#define RGBLIGHT_EFFECT_SNAKE
-#define RGBLIGHT_EFFECT_KNIGHT
-#define RGBLIGHT_EFFECT_CHRISTMAS
-#define RGBLIGHT_EFFECT_STATIC_GRADIENT
-#define RGBLIGHT_EFFECT_RGB_TEST
-#define RGBLIGHT_EFFECT_ALTERNATING
-#define RGBLIGHT_EFFECT_TWINKLE
-// #define RGBLIGHT_LED_MAP { 11,10,9,8,7,6,5,4,3,2,1,0,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26 }
-#define RGBLIGHT_SPLIT 27
diff --git a/keyboards/handwired/dactyl_manuform/5x6/keymaps/rishka/keymap.c b/keyboards/handwired/dactyl_manuform/5x6/keymaps/rishka/keymap.c
deleted file mode 100644
index 83b47f3ca9..0000000000
--- a/keyboards/handwired/dactyl_manuform/5x6/keymaps/rishka/keymap.c
+++ /dev/null
@@ -1,61 +0,0 @@
-/* A standard layout for the Dactyl Manuform 5x6 Keyboard */
-
-#include QMK_KEYBOARD_H
-#include "rishka.h"
-
-enum layers {
- BASE, // default layer
- WIN, // Switch keys that are needed in windows
- SYMB, // symbols
- MDIA // media keys
-};
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
- [BASE] = LAYOUT_5x6_wrapper(
- KC_EQL , ________________NUMBERS_L__________________, ________________NUMBERS_R__________________, KC_MINS,
- KC_ESC , _________________QWERTY_L1_________________, _________________QWERTY_R1_________________, KC_BSLS,
- KC_F1 , _____________MOD_QWERTY_L2_________________, _____________MOD_QWERTY_R2_________________, KC_QUOT,
- OS_LSFT, _________________QWERTY_L3_________________, _________________QWERTY_R3_________________, OS_RSFT,
- KC_LEFT,KC_RGHT, KC_UP, KC_DOWN,
- KC_BSPC, KC_SPC, KC_TAB, KC_ENT,
- KC_LGUI, MO(SYMB), MO(SYMB), TT(MDIA),
- KC_DEL, KC_GRV, TT(WIN), KC_LALT
- ),
- [WIN] = LAYOUT_5x6_wrapper(
-
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _________________QWERTY_L2_________________, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______,
- _______, _______, _______, _______,
- KC_LCTL, _______, _______, _______,
- _______, _______, _______, _______
- ),
-
- [SYMB] = LAYOUT_5x6_wrapper(
- KC_F12 , ______________________F_L__________________, ______________________F_R__________________, KC_F11,
- _______, _________________SYMBOL_L1_________________, _________________SYMBOL_R1_________________, KC_NUM,
- _______, _________________SYMBOL_L2_________________, _________________SYMBOL_R2_________________, _______,
- _______, _________________SYMBOL_L3_________________, _________________SYMBOL_R3_________________, _______,
- _______, _______, KC_P0 , KC_PDOT,
- _______, _______, _______, _______,
- QK_BOOT, _______, _______, _______,
- RGB_TOG, _______, _______, _______
- ),
- [MDIA] = LAYOUT_5x6_wrapper(
-
- RGB_MOD, RGB_HUI, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- RGB_M_SN, RGB_HUD, _______, KC_MS_U, _______, KC_WH_U, _______, _______, KC_WH_U, _______, _______, _______,
- RGB_VAI, RGB_SAI, KC_MS_L, KC_MS_D, KC_MS_R, KC_WH_D, _______, MOUSE_L, KC_WH_D, MOUSE_R, _______, _______,
- RGB_VAD, RGB_SAD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______,
- KC_BTN1, KC_BTN2, _______, _______,
- KC_BTN3, KC_BTN4, _______, _______,
- KC_BTN5, _______, _______, _______
-
- ),
-};
-
-
diff --git a/keyboards/handwired/dactyl_manuform/5x6/keymaps/rishka/rules.mk b/keyboards/handwired/dactyl_manuform/5x6/keymaps/rishka/rules.mk
deleted file mode 100644
index 7084862d13..0000000000
--- a/keyboards/handwired/dactyl_manuform/5x6/keymaps/rishka/rules.mk
+++ /dev/null
@@ -1,3 +0,0 @@
-BOOTLOADER=qmk-dfu
-RGBLIGHT_ENABLE = yes
-
diff --git a/keyboards/handwired/dactyl_manuform/5x6/keymaps/scheiklp/README.md b/keyboards/handwired/dactyl_manuform/5x6/keymaps/scheiklp/README.md
deleted file mode 100644
index 81a8004f7b..0000000000
--- a/keyboards/handwired/dactyl_manuform/5x6/keymaps/scheiklp/README.md
+++ /dev/null
@@ -1,8 +0,0 @@
-#### compile with
-
-`make handwired/dactyl_manuform/5x6:scheiklp`
-
-
-#### flash with
-
-`qmk flash -kb handwired/dactyl_manuform/5x6 -km scheiklp`
diff --git a/keyboards/handwired/dactyl_manuform/5x6/keymaps/scheiklp/config.h b/keyboards/handwired/dactyl_manuform/5x6/keymaps/scheiklp/config.h
deleted file mode 100644
index 613d8ae47f..0000000000
--- a/keyboards/handwired/dactyl_manuform/5x6/keymaps/scheiklp/config.h
+++ /dev/null
@@ -1,47 +0,0 @@
-// Copyright 2021 Paul Maria Scheikl (@ScheiklP)
-// SPDX-License-Identifier: GPL-2.0-or-later
-
-
-#pragma once
-
-
-#define USE_I2C
-
-/* #define MASTER_LEFT */
- /* #define MASTER_RIGHT */
-#define EE_HANDS
-// Rows are doubled-up
-
-#define AUTO_SHIFT_TIMEOUT 125
-#define NO_AUTO_SHIFT_SPECIAL
-#define NO_AUTO_SHIFT_NUMERIC
-
-// require two taps for a TT layer switch (default 5)
-#define TAPPING_TOGGLE 2
-
-// Mouse control
-// constant mode (velocity)
-#define MK_3_SPEED
-// KC_ACL0 < KC_ACL1 < unmodified < KC_ACL2
-
-// Cursor offset per movement (unmodified)
-#define MK_C_OFFSET_UNMOD 16
-// Time between cursor movements (unmodified)
-#define MK_C_INTERVAL_UNMOD 10
-/* #define MK_C_INTERVAL_UNMOD 16 */
-
-// Cursor offset per movement (KC_ACL0)
-#define MK_C_OFFSET_0 1
-// Time between cursor movements (KC_ACL0)
-#define MK_C_INTERVAL_0 32
-
-// Cursor offset per movement (KC_ACL1)
-#define MK_C_OFFSET_1 4
-// Time between cursor movements (KC_ACL1)
-#define MK_C_INTERVAL_1 16
-
-// Cursor offset per movement (KC_ACL2)
-#define MK_C_OFFSET_2 20
-/* #define MK_C_OFFSET_2 32 */
-// Time between cursor movements (KC_ACL2)
-#define MK_C_INTERVAL_2 16
diff --git a/keyboards/handwired/dactyl_manuform/5x6/keymaps/scheiklp/keymap.c b/keyboards/handwired/dactyl_manuform/5x6/keymaps/scheiklp/keymap.c
deleted file mode 100644
index 1f9102e829..0000000000
--- a/keyboards/handwired/dactyl_manuform/5x6/keymaps/scheiklp/keymap.c
+++ /dev/null
@@ -1,70 +0,0 @@
-// Copyright 2021 Paul Maria Scheikl (@ScheiklP)
-// SPDX-License-Identifier: GPL-2.0-or-later
-
-/* A K.O,Y layout for the Dactyl Manuform 5x6 Keyboard */
-
-#include QMK_KEYBOARD_H
-#include "koy_keys_on_quertz_de_latin1.h"
-
-
-enum custom_layers {
- _1,
- _3,
- _4,
- _7,
-};
-
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
- [_1] = LAYOUT_5x6(
- 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_K , KC_DOT , KC_O , KC_COMM , N_Y , KC_V , KC_G , KC_C , KC_L , N_SS , N_Z ,
- MO(_3) , KC_H , KC_A , KC_E , KC_I , KC_U , KC_D , KC_T , KC_R , KC_N , KC_S , KC_F ,
- KC_LSFT , KC_X , KC_Q , N_AE , N_UE , N_OE , KC_B , KC_P , KC_W , KC_M , KC_J , KC_RSFT ,
- KC_LCTL , KC_LGUI , KC_CAPS , TT(_7),
- KC_LALT, KC_SPC, MO(_3), MO(_4),
- N_COPY, N_CUT, DM_RSTP, KC_ENTER,
- N_PASTE, N_UNDO, DM_REC1, DM_PLY1
- ),
-
- [_3] = LAYOUT_5x6(
-
- KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_BSPC,
- KC_TAB, N_DOTS, N_USC, N_LSQBR, N_RSQBR, N_CIRC, N_EXKL, N_LT, N_GT, N_EQ, N_AMP, N_ACUT,
- KC_TRNS, N_BSLS, N_SLSH, N_LCUBR, N_RCUBR, N_ASTR, N_QUES, N_LPARN, N_RPARN, N_MINS, N_COLN, N_AT,
- KC_LSFT, N_HASH, N_DLR, N_PIPE, N_TILD, N_GRAVE, N_PLUS, N_PERC, N_QUOT, N_SING, N_SEMI, KC_RSFT,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_LALT,KC_SPC, KC_TRNS,KC_TRNS,
- N_COPY, N_CUT, DM_RSTP, KC_ENTER,
- N_PASTE, N_UNDO, DM_REC1, DM_PLY1
-
- ),
-
- [_4] = LAYOUT_5x6(
-
- KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_BSPC,
- KC_TAB, KC_PGUP, KC_BSPC, KC_UP, KC_DEL, KC_PGDN, KC_KP_SLASH, KC_7, KC_8, KC_9, KC_KP_MINUS, KC_TRNS,
- KC_TRNS, KC_HOME, KC_LEFT, KC_DOWN, KC_RIGHT, KC_END, KC_KP_ASTERISK, KC_4, KC_5, KC_6, KC_KP_PLUS, KC_TRNS,
- KC_LSFT, KC_ESC, KC_TAB, KC_INS, KC_ENTER, N_UNDO, KC_KP_ENTER, KC_1, KC_2, KC_3, KC_KP_DOT, KC_RSFT,
- KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS,
- KC_LALT,KC_0, KC_TRNS,KC_TRNS,
- N_COPY, N_CUT, DM_RSTP, KC_ENTER,
- N_PASTE, N_UNDO, DM_REC1, DM_PLY1
-
- ),
-
- [_7] = LAYOUT_5x6(
-
- KC_ESC, KC_TRNS, KC_TRNS, KC_MS_BTN3, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, QK_BOOT,
- KC_TAB, KC_MS_WH_UP, KC_MS_BTN2, KC_MS_UP, KC_MS_BTN1, KC_MS_WH_DOWN, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_MS_ACCEL0, KC_MS_LEFT, KC_MS_DOWN, KC_MS_RIGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_LSFT, KC_MS_ACCEL1, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS,KC_PSCR, KC_TRNS, KC_TRNS,
- KC_LALT,KC_0, KC_TRNS,KC_TRNS,
- N_COPY, N_CUT, DM_RSTP, KC_ENTER,
- N_PASTE, N_UNDO, DM_REC1, DM_PLY1
-
- ),
-
-};
diff --git a/keyboards/handwired/dactyl_manuform/5x6/keymaps/scheiklp/rules.mk b/keyboards/handwired/dactyl_manuform/5x6/keymaps/scheiklp/rules.mk
deleted file mode 100644
index a0b983c7ab..0000000000
--- a/keyboards/handwired/dactyl_manuform/5x6/keymaps/scheiklp/rules.mk
+++ /dev/null
@@ -1,10 +0,0 @@
-# Copyright 2021 Paul Maria Scheikl (@ScheiklP)
-# SPDX-License-Identifier: GPL-2.0-or-later
-
-AUTO_SHIFT_ENABLE = yes
-CONSOLE_ENABLE = no
-COMMAND_ENABLE = no
-NKRO_ENABLE = yes
-BOOTLOADER = atmel-dfu
-DYNAMIC_MACRO_ENABLE = yes
-
diff --git a/keyboards/handwired/dactyl_manuform/5x6/keymaps/uqs/config.h b/keyboards/handwired/dactyl_manuform/5x6/keymaps/uqs/config.h
deleted file mode 100644
index af5842e602..0000000000
--- a/keyboards/handwired/dactyl_manuform/5x6/keymaps/uqs/config.h
+++ /dev/null
@@ -1,9 +0,0 @@
-// Copyright 2022 Ulrich Spörlein (@uqs)
-// SPDX-License-Identifier: GPL-2.0-or-later
-#pragma once
-
-#define RGBLED_NUM 12
-#define RGBLED_SPLIT {6,6}
-#define RGBLIGHT_LIMIT_VAL 127
-
-#define EE_HANDS
diff --git a/keyboards/handwired/dactyl_manuform/5x6/keymaps/uqs/keymap.c b/keyboards/handwired/dactyl_manuform/5x6/keymaps/uqs/keymap.c
deleted file mode 100644
index 620994fc37..0000000000
--- a/keyboards/handwired/dactyl_manuform/5x6/keymaps/uqs/keymap.c
+++ /dev/null
@@ -1,170 +0,0 @@
-// Copyright 2022 Ulrich Spörlein (@uqs)
-// SPDX-License-Identifier: GPL-2.0-or-later
-// vi:et sw=4 cc=5,15,25,35,45,55,65:
-
-#include "uqs.h"
-
-/*
- * My custom layout macro that allows for easy diff(1) operations between
- * various keyboards. It probably doesn't make sense to you.
- */
-#define LAYOUT_uqs( \
- L00, L01, L02, L03, L04, L05, \
- L10, L11, L12, L13, L14, L15, \
- L20, L21, L22, L23, L24, L25, \
- L30, L31, L32, L33, L34, L35, \
- L42, L43, \
- L44, L45, L54, \
- L55, L52, L53, \
- R00, R01, R02, R03, R04, R05, \
- R10, R11, R12, R13, R14, R15, \
- R20, R21, R22, R23, R24, R25, \
- R30, R31, R32, R33, R34, R35, \
- R42, R43, \
- R51, R40, R41, \
- R50, R52, R53 \
-) \
-LAYOUT_5x6( \
- L00, L01, L02, L03, L04, L05, R00, R01, R02, R03, R04, R05, \
- L10, L11, L12, L13, L14, L15, R10, R11, R12, R13, R14, R15, \
- L20, L21, L22, L23, L24, L25, R20, R21, R22, R23, R24, R25, \
- L30, L31, L32, L33, L34, L35, R30, R31, R32, R33, R34, R35, \
- L42, L43, R42, R43, \
- L44, L45, R40, R41, \
- L54, L55, R50, R51, \
- L52, L53, R52, R53 \
-)
-
-// clang-format off
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [L_QWER] = LAYOUT_uqs(
- QK_GESC, KC_1, KC_2, KC_3, KC_4, KC_5,
- KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T,
- KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G,
- KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B,
- KC_LBRC, KC_RBRC,
- /*thumb*/ LT_EXTD_ESC, KC_SPC, LT_MOUSE_ALT_SHIFT_INS,
- /*aux*/ QK_LEAD, OSM_GUI, KC_LALT,
- KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINUS,
- KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS,
- KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
- KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, RSFT_T(KC_GRV),
- KC_MINS, KC_EQL,
- /*thumb*/ LT_FUNC_SHIFT_INS, KC_ENT, LT_NUM_BSPC,
- /*aux*/ KC_RALT, KC_APP, QK_LEAD
- ),
-
- [L_WASD] = LAYOUT_uqs(
- KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5,
- KC_T, KC_TAB, KC_Q, KC_W, KC_E, KC_R,
- KC_G, KC_LSFT, KC_A, KC_S, KC_D, KC_F,
- KC_B, KC_GRV, KC_Z, KC_X, KC_C, KC_V,
- KC_LBRC, KC_RBRC,
- /*thumb*/ KC_LCTL, KC_SPC, KC_R,
- /*aux*/ A(KC_M), KC_LGUI, KC_LALT,
- KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC,
- KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS,
- KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
- KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, RSFT_T(KC_GRV),
- KC_MINS, KC_EQL,
- /*thumb*/ DF(L_COLM), KC_ENT, KC_BSPC,
- /*aux*/ KC_F5, KC_RALT, KC_APP
- ),
-
- [L_COLM] = LAYOUT_uqs(
- KC_NO, KC_NO, KC_BTN2, KC_BTN3, KC_BTN1, KC_NO,
- KC_BTN2, KC_Q, KC_W, KC_F, KC_P, KC_B,
- KC_BTN1, KC_G_A, KC_A_R, KC_S_S, KC_C_T, KC_G,
- KC_BTN3, KC_Z, KC_X, KC_C, KC_D, KC_V,
- MS_WHUP, MS_WHDN,
- /*thumb*/ LT_EXTD_ESC, SFT_T(KC_SPC), LT(L_MOUSE, KC_TAB),
- /*aux*/ QK_LEAD, OSM_GUI, KC_LALT,
- KC_NO, KC_BTN1, KC_BTN2, KC_BTN3, KC_NO, KC_NO,
- KC_J, KC_L, KC_U, KC_Y, KC_QUOT, KC_NO,
- KC_M, KC_C_N, KC_S_E, KC_A_I, KC_G_O, KC_NO,
- KC_K, KC_H, KC_COMM, KC_DOT, KC_SLSH, KC_NO,
- KC_NO, KC_NO,
- /*thumb*/ LT_FUNC_SHIFT_INS, KC_ENT, LT_NUM_BSPC,
- /*aux*/ QK_LEAD, KC_RALT, KC_APP
- ),
-
- // Updated with inspiration from https://forum.colemak.com/topic/2014-extend-extra-extreme/
- // I like the AltGr trick from https://stevep99.github.io/seniply/ and should probably incorporate some stuff from it.
- [L_EXTD] = LAYOUT_uqs(
- _______, _______, _______, _______, _______, _______,
- _______, KC_BTN1, KC_SCTAB, KC_PGUP, KC_CTAB, QK_LEAD,
- _______, OSM_GUI, OSM_ALT, OSM_SFT, OSM_CTL, KC_RALT,
- _______, ALT_TAB, MS_WHUP, MS_WHDN, KC_PGDN, INS_HARD,
- _______, _______,
- /*thumb*/ _______, _______, _______,
- /*aux*/ _______, _______, _______,
- /* ^^^^ can't be used */
- _______, _______, _______, _______, _______, _______,
- KC_HOME, KC_PGDN, KC_PGUP, KC_END, KC_INS, KC_NO,
- KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_DEL, KC_NO,
- WIN_LEFT, WIN_DN, WIN_UP, WIN_RGHT, KC_PSTE, KC_NO, // KC_PSTE works in XTerm to emulate middle-click
- _______, _______,
- /*thumb*/ _______, _______, KC_BSPC,
- /*aux*/ _______, _______, _______
- /* ^^^^ use these */
- ),
-
- // TODO: maybe swap # with ;, that way I can roll :w or :wq which I need
- // often ... probably better to add a combo?
- [L_NUM] = LAYOUT_uqs(
- _______, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
- _______, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC,
- _______, KC_SCLN, KC_COLN, KC_LCBR, KC_LPRN, KC_LBRC,
- _______, KC_CIRC, KC_AMPR, KC_RCBR, KC_RPRN, KC_RBRC,
- KC_GRV, KC_TILDE,
- /*thumb*/ KC_ESC, KC_SPC, KC_0,
- /*aux*/ _______, _______, _______,
- /* ^^^^ use these */
- KC_NUM, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
- KC_EQUAL, KC_7, KC_8, KC_9, KC_KP_PLUS,_______,
- KC_KP_ASTERISK,KC_4,KC_5, KC_6, MINS_UNDSCR,_______,
- KC_COMM, KC_1, KC_2, KC_3, KC_KP_SLASH,KC_KP_ENTER, // Enter here, because thumb is occupied
- KC_0, KC_KP_DOT,
- /*thumb*/ _______, _______, _______,
- /*aux*/ _______, _______, _______
- /* ^^^^ can't be used */
- ),
-
- [L_FUNC] = LAYOUT_uqs(
- _______, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
- _______, KC_NO, KC_MUTE, KC_VOLD, KC_VOLU, DF(L_WASD),
- _______, KC_LGUI, KC_LALT, KC_LSFT, KC_LCTL, DF(L_QWER),
- _______, KC_NO, KC_NO, KC_NO, KC_NO, DF(L_COLM),
- KC_NO, KC_NO,
- /*thumb*/ _______, _______, _______,
- /*aux*/ _______, _______, _______,
- /* ^^^^ use these */
- KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
- KC_PSCR, KC_F7, KC_F8, KC_F9, KC_F10, KC_NO,
- KC_SCRL, KC_F4, KC_F5, KC_F6, KC_F11, KC_NO,
- KC_PAUS, KC_F1, KC_F2, KC_F3, KC_F12, KC_NO,
- KC_NO, KC_NO,
- /*thumb*/ _______, _______, _______,
- /*aux*/ _______, _______, _______
- /* ^^^^ can't be used */
- ),
-
- [L_MOUSE] = LAYOUT_uqs(
- _______, _______, _______, _______, _______, _______,
- _______, KC_NO, KC_BTN2, KC_BTN3, KC_BTN1, KC_VOLU,
- _______, KC_NO, KC_ACL0, KC_ACL1, KC_ACL2, KC_VOLD,
- _______, KC_NO, KC_NO, KC_NO, KC_NO, KC_MUTE,
- KC_NO, KC_NO,
- /*thumb*/ _______, _______, _______,
- /*aux*/ _______, _______, _______,
- /* ^^^^ can't be used */
- _______, _______, _______, _______, _______, _______,
- _______, _______, KC_MS_UP, MS_WHUP, _______, _______,
- MS_WHLEFT,KC_MS_L, KC_MS_D, KC_MS_R, MS_WHRGHT,_______,
- _______, MS_WHDN, KC_BTN3, KC_BTN4, KC_BTN5, _______,
- KC_NO, KC_NO,
- /*thumb*/ KC_NO, KC_BTN1, KC_BTN2,
- /*aux*/ _______, _______, _______
- /* use these ^^^^ */
- ),
-};
diff --git a/keyboards/handwired/dactyl_manuform/5x6/keymaps/uqs/rules.mk b/keyboards/handwired/dactyl_manuform/5x6/keymaps/uqs/rules.mk
deleted file mode 100644
index 2cd3745fa1..0000000000
--- a/keyboards/handwired/dactyl_manuform/5x6/keymaps/uqs/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-#VIA_ENABLE = yes # doesn't fit with 7 layers :/
diff --git a/keyboards/handwired/dactyl_manuform/5x6_5/keymaps/333fred/config.h b/keyboards/handwired/dactyl_manuform/5x6_5/keymaps/333fred/config.h
deleted file mode 100644
index 68ea3f1933..0000000000
--- a/keyboards/handwired/dactyl_manuform/5x6_5/keymaps/333fred/config.h
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
- Copyright (c) 2020 Fred Silberberg
-
- Permission is hereby granted, free of charge, to any person obtaining a copy
- of this software and associated documentation files (the "Software"), to deal
- in the Software without restriction, including without limitation the rights
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- copies of the Software, and to permit persons to whom the Software is
- furnished to do so, subject to the following conditions:
-
- The above copyright notice and this permission notice shall be included in all
- copies or substantial portions of the Software.
-
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- THE SOFTWARE.
-*/
-
-#pragma once
-
-#define EE_HANDS
-
-#undef TAPPING_TERM
-#define TAPPING_TERM 200
-
-#define OLED_DISPLAY_128X64
-
-#define ENCODERS_PAD_A { F4 }
-#define ENCODERS_PAD_B { F5 }
-
-#undef SOFT_SERIAL_PIN
-#define SOFT_SERIAL_PIN D2
-
-#undef OLED_TIMEOUT
-#define OLED_TIMEOUT 240000
diff --git a/keyboards/handwired/dactyl_manuform/5x6_5/keymaps/333fred/keymap.c b/keyboards/handwired/dactyl_manuform/5x6_5/keymaps/333fred/keymap.c
deleted file mode 100644
index 139cd1f510..0000000000
--- a/keyboards/handwired/dactyl_manuform/5x6_5/keymaps/333fred/keymap.c
+++ /dev/null
@@ -1,581 +0,0 @@
-/*
- Copyright (c) 2020 Fred Silberberg
-
- Permission is hereby granted, free of charge, to any person obtaining a copy
- of this software and associated documentation files (the "Software"), to deal
- in the Software without restriction, including without limitation the rights
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- copies of the Software, and to permit persons to whom the Software is
- furnished to do so, subject to the following conditions:
-
- The above copyright notice and this permission notice shall be included in all
- copies or substantial portions of the Software.
-
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- THE SOFTWARE.
-*/
-
-#include QMK_KEYBOARD_H
-#include "333fred.h"
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
- [BASE] = LAYOUT_5x6_5(
- 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_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS,
- KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
- OSM(MOD_LSFT), CTL_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, CTL_T(KC_SLSH), OSM(MOD_RSFT),
- KC_F4, KC_LALT, KC_BSPC, TD(TD_SYM_VIM), KC_DEL, KC_UP, KC_ENT, KC_SPC, OSL(VIM), KC_EQL,
- KC_LGUI, TD(TD_COPY_PASTE), KC_DOWN, OSM(MOD_RCTL)
- ),
-
- [SYMB] = LAYOUT_5x6_5(
- _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,
- _______, KC_EXLM, KC_AT, KC_LPRN, KC_RPRN, KC_PIPE, _______, KC_7, KC_8, KC_9, _______, KC_F12,
- _______, KC_HASH, KC_DLR, KC_LCBR, KC_RCBR, KC_GRV, _______, KC_4, KC_5, KC_6, _______, _______,
- _______, KC_PERC, KC_CIRC, KC_LBRC, KC_RBRC, KC_TILD, _______, KC_1, KC_2, KC_3, _______, _______,
- KC_F7, _______, _______, _______, _______, KC_VOLU, KC_MPRV, KC_MPLY, KC_MNXT, KC_ENT,
- _______, _______, KC_VOLD, _______
- ),
-
- [VIM] = LAYOUT_5x6_5(
- _______, QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, QK_BOOT, _______,
- _______, _______, _______, _______, KC_LSFT, _______, _______, _______, _______, _______, _______, _______,
- _______, DLEFT, DRIGHT, KC_LCTL, KC_LGUI, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______,_______, _______, TG(GAME), _______, _______, _______, _______,
- _______, _______, _______, _______
- ),
-
- [GAME] = LAYOUT_5x6_5(
- KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS,
- KC_T, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS,
- KC_G, KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
- KC_B, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,
- QK_LOCK, KC_LALT, KC_SPC, KC_ENT, KC_GRV, TG(GAME), _______, _______, _______, KC_EQL,
- KC_BSPC, KC_F5, KC_F6, _______
- ),
-};
-
-uint32_t quote_timer;
-
-void keyboard_post_init_user(void) { quote_timer = 0; }
-
-bool process_record_user(uint16_t keycode, keyrecord_t *record) {
- tap_dance_process_keycode(keycode);
- return !try_handle_macro(keycode, record);
-}
-
-static void render_logo(void) {
- static const char PROGMEM qmk_logo[] = {0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8A, 0x8B, 0x8C, 0x8D, 0x8E, 0x8F, 0x90, 0x91, 0x92, 0x93, 0x94, 0xA0, 0xA1, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7, 0xA8, 0xA9, 0xAA, 0xAB, 0xAC, 0xAD, 0xAE, 0xAF, 0xB0, 0xB1, 0xB2, 0xB3, 0xB4, 0xC0, 0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7, 0xC8, 0xC9, 0xCA, 0xCB, 0xCC, 0xCD, 0xCE, 0xCF, 0xD0, 0xD1, 0xD2, 0xD3, 0xD4, 0x00};
-
- oled_write_P(qmk_logo, false);
-}
-
-void render_led_status(void) {
- led_t led_state = host_keyboard_led_state();
- if (led_state.num_lock || led_state.caps_lock || led_state.scroll_lock) {
- oled_write_P(led_state.num_lock ? PSTR("NUM ") : PSTR(" "), false);
- oled_write_P(led_state.caps_lock ? PSTR("CAP ") : PSTR(" "), false);
- oled_write_ln_P(led_state.scroll_lock ? PSTR("SCR ") : PSTR(" "), false);
- }
-}
-
-void render_mods_status(void) {
- uint8_t mods = get_mods() | get_oneshot_mods();
- bool ctrl = mods & MOD_MASK_CTRL;
- bool shft = mods & MOD_MASK_SHIFT;
- bool alt = mods & MOD_MASK_ALT;
- bool gui = mods & MOD_MASK_GUI;
-
- oled_write_P(ctrl ? PSTR("CTRL ") : PSTR(" "), false);
- oled_write_P(shft ? PSTR("SHIFT ") : PSTR(" "), false);
- oled_write_P(alt ? PSTR("ALT ") : PSTR(" "), false);
- oled_write_ln_P(gui ? PSTR("GUI ") : PSTR(" "), false);
-}
-
-#define MAX_LINES 8
-
-void write_quote(const char* data, const uint8_t num_lines) {
- uint8_t current_line = 0;
- for (; current_line < (MAX_LINES - num_lines) / 2; current_line++) {
- oled_advance_page(true);
- }
-
- oled_write_ln_P(data, false);
-
- for (current_line += num_lines; current_line < MAX_LINES; current_line++)
- {
- oled_advance_page(true);
- }
-}
-
-bool oled_task_user(void) {
- if (is_keyboard_master()) {
- render_logo();
- oled_advance_page(/* clearPageRemainder */ true);
- oled_write_P(PSTR("Layer: "), false);
- switch (get_highest_layer(layer_state)) {
- case BASE:
- oled_write_ln_P(PSTR("Base"), false);
- break;
- case SYMB:
- oled_write_ln_P(PSTR("Symbols"), false);
- break;
- case VIM:
- oled_write_ln_P(PSTR("Vim"), false);
- break;
- case GAME:
- oled_write_ln_P(PSTR("Gaming"), false);
- break;
- }
-
- render_mods_status();
- render_led_status();
- } else {
- if ((quote_timer != 0 && timer_elapsed32(quote_timer) < 300000 /* 5 minutes */) || !is_oled_on()) {
- return;
- }
-
- srand(timer_read32());
- int currentQuote = rand() % 63;
- quote_timer = timer_read32();
-
- // Max character count on my screen is 20 characters per line.
- // Quotes are from various fantasy books, mostly either from
- // The Stormlight Archive or from The Wheel of Time.
- switch (currentQuote) {
- case 0:
- write_quote(PSTR(" Life before Death \n"
- " Strength before \n"
- " Weakness \n"
- " Journey before \n"
- " Destination"),
- 5);
- break;
- case 1:
- write_quote(PSTR(" Honor is dead, but \n"
- "I'll see what I can \n"
- " do."),
- 3);
- break;
- case 2:
- write_quote(PSTR(" You cannot have my \n"
- " pain!"),
- 2);
- break;
- case 3:
- write_quote(PSTR(" Pride doesn't win \n"
- " battles"),
- 2);
- break;
- case 4:
- write_quote(PSTR(" I have practice \n"
- " following fools in \n"
- " their reckless \n"
- " pursuits."),
- 4);
- break;
- case 5:
- write_quote(PSTR(" What is the most \n"
- " important step a \n"
- " man can take?"),
- 3);
- break;
- case 6:
- write_quote(PSTR(" It's the next one. \n"
- " Always the next \n"
- " step, Dalinar."),
- 3);
- break;
- case 7:
- write_quote(PSTR(" NO MATING."), 1);
- break;
- case 8:
- write_quote(PSTR(" Inappropriate? \n"
- "Such as... dividing \n"
- " by zero?"),
- 3);
- break;
- case 9:
- write_quote(PSTR(" I am a stick!"), 1);
- break;
- case 10:
- write_quote(PSTR(" But you could be \n"
- " fire!"),
- 1);
- break;
- case 11:
- write_quote(PSTR(" Sometimes a \n"
- " hyprocrite is \n"
- " nothing more than \n"
- " than a man in the \n"
- "process of changing"),
- 5);
- break;
- case 12:
- write_quote(PSTR(" You surrender when \n"
- " you are dead. Many \n"
- "a man has been given\n"
- " less."),
- 4);
- break;
- case 13:
- write_quote(PSTR(" Kneel and swear to \n"
- " the Lord Dragon,...\n"
- " or you will be \n"
- " knelt."),
- 4);
- break;
- case 14:
- write_quote(PSTR("I'm right, anyway. I\n"
- "wish I wasn't, but I\n"
- " am. I bloody am."),
- 3);
- break;
- case 15:
- write_quote(PSTR(" Death rides on my \n"
- " shoulder,. Death \n"
- " walks in my \n"
- " footsteps. I am \n"
- " death."),
- 5);
- break;
- case 16:
- write_quote(PSTR(" The Golden Crane \n"
- " flies for Tarmon \n"
- " Gai'don"),
- 3);
- break;
- case 17:
- write_quote(PSTR("You humans are very \n"
- " excitable"),
- 2);
- break;
- case 18:
- write_quote(PSTR(" Phaw!"), 1);
- break;
- case 19:
- write_quote(PSTR("I may be a fool, but\n"
- " I intend to be a \n"
- " live fool."),
- 3);
- break;
- case 20:
- write_quote(PSTR(" Anyone who claimed \n"
- " that old age had \n"
- " brought them \n"
- "patience was either \n"
- " lying or senile."),
- 5);
- break;
- case 21:
- write_quote(PSTR("Death is light as a \n"
- "feather; duty, heavy\n"
- " as a mountain"),
- 3);
- break;
- case 22:
- write_quote(PSTR("Dovie'andi se tovya \n"
- " sagain."),
- 2);
- break;
- case 23:
- write_quote(PSTR(" Carai an Caldazar! \n"
- "Carai an Ellisande! \n"
- " Al Ellisande!"),
- 3);
- break;
- case 24:
- write_quote(PSTR(" Mia dovienya \n"
- " nesodhin soende."),
- 2);
- break;
- case 25:
- write_quote(PSTR(" The Wheel of Time \n"
- "turns, and Ages come\n"
- " and pass, leaving \n"
- "memories that become\n"
- " legend."),
- 5);
- break;
- case 26:
- write_quote(PSTR(" Legend fades to \n"
- "myth, and even myth \n"
- " is long forgotten \n"
- " when the Age that \n"
- "gave it birth comes \n"
- " again."),
- 6);
- break;
- case 27:
- write_quote(PSTR(" What is too absurd \n"
- " to believe is \n"
- "believed because it \n"
- "is too absurd to be \n"
- " a lie."),
- 5);
- break;
- case 28:
- write_quote(PSTR("And you gave me the \n"
- " way out! Chew on \n"
- "that bitterness for \n"
- "lunch, you flaming, \n"
- "burning, misbegotten\n"
- " liars!"),
- 6);
- break;
- case 29:
- write_quote(PSTR(" He was going to \n"
- "start having, 'I am \n"
- "not a bloody Lord', \n"
- " embroidered on his \n"
- " coats."),
- 5);
- break;
- case 30:
- write_quote(PSTR("All was not lost, of\n"
- " course. All was \n"
- " never lost as long \n"
- " as you were alive."),
- 4);
- break;
- case 31:
- write_quote(PSTR(" Everything is just \n"
- " bloody fine!"),
- 2);
- break;
- case 32:
- write_quote(PSTR("The wheel weaves as \n"
- " the wheel wills"),
- 2);
- break;
- case 33:
- write_quote(PSTR(" Time to toss the \n"
- " dice"),
- 2);
- break;
- case 34:
- write_quote(PSTR("Always plan for the \n"
- " worst, child, that \n"
- " way all your \n"
- " surprises are \n"
- " pleasant ones."),
- 5);
- break;
- case 35:
- write_quote(PSTR("'Pessimism, she is a\n"
- " fond friend of \n"
- "yours, yes?' 'That's\n"
- " uncalled for. I \n"
- " barely know her. \n"
- "Mere acquaintances, \n"
- " at best.'"),
- 7);
- break;
- case 36:
- write_quote(PSTR(" Do not trouble \n"
- "trouble till trouble\n"
- " troubles you."),
- 3);
- break;
- case 37:
- write_quote(PSTR("If your enemy offers\n"
- " you two targets, \n"
- " strike at a third."),
- 3);
- break;
- case 38:
- write_quote(PSTR("The wind was not the\n"
- "beginning. There are\n"
- " neither beginnings \n"
- " nor endings to the \n"
- " turning of the \n"
- " Wheel of Time. But \n"
- " it was _a_ \n"
- " beginning."),
- 8);
- break;
- case 39:
- write_quote(PSTR("Bloody flaming ashes"), 1);
- break;
- case 40:
- write_quote(PSTR("Then follow Lord Mat\n"
- " whenever he calls \n"
- "To dance with Jak O'\n"
- " the Shadows."),
- 4);
- break;
- case 41:
- write_quote(PSTR(" There are no \n"
- " endings, and never \n"
- "will be endings, to \n"
- " the turning of the \n"
- " Wheel of Time. But \n"
- " it was an ending."),
- 6);
- break;
- case 42:
- write_quote(PSTR(" TAI'SHAR MALKIER!"), 1);
- break;
- case 43:
- write_quote(PSTR("I would not mind you\n"
- " in my head, if you \n"
- "were not so clearly \n"
- " mad."),
- 4);
- break;
- case 44:
- write_quote(PSTR(" ILYENA, MY LOVE, \n"
- " FORGIVE ME!"),
- 2);
- break;
- case 45:
- write_quote(PSTR(" Oh, Light. That's \n"
- "impossible! We can't\n"
- " use it! Cast it \n"
- "away! That is death \n"
- " we hold, death and \n"
- "betrayal. It is HIM."),
- 6);
- break;
- case 46:
- write_quote(PSTR("Nothing ever goes as\n"
- " you expect. Expect \n"
- " nothing, and you \n"
- " will not be \n"
- " surprised. Expect \n"
- " nothing. Hope for \n"
- " nothing. Nothing."),
- 7);
- break;
- case 47:
- write_quote(PSTR(" Distant Weeping"), 1);
- break;
- case 48:
- write_quote(PSTR("Are you real? Am I?"), 1);
- break;
- case 49:
- write_quote(PSTR(" I'm just an old \n"
- "gleeman, who could I\n"
- " possibly be \n"
- " dangerous to?"),
- 4);
- break;
- case 50:
- write_quote(PSTR(" Mat bloody Cauthon \n"
- " is no bloody hero!"),
- 2);
- break;
- case 51:
- write_quote(PSTR("You are a coward and\n"
- " a tyrant. I'd name \n"
- " you Darkfriend as \n"
- "well, but I suspect \n"
- " that the Dark One \n"
- " would perhaps be \n"
- " embarrassed to \n"
- "associate with you."),
- 8);
- break;
- case 52:
- write_quote(PSTR(" I win again, Lews \n"
- " Therin."),
- 2);
- break;
- case 53:
- write_quote(PSTR("May you always find \n"
- " water and shade."),
- 2);
- break;
- case 54:
- write_quote(PSTR(" I will never serve \n"
- "you, Father of Lies.\n"
- "In a thousand lives,\n"
- "I never have. I know\n"
- " that. I'm sure of \n"
- "it. Come. It is time\n"
- " to die."),
- 7);
- break;
- case 55:
- write_quote(PSTR(" There may be more \n"
- "than one way to skin\n"
- " a cat, but the cat \n"
- "isn't going to like \n"
- " any of them."),
- 5);
- break;
- case 56:
- write_quote(PSTR("Please see that they\n"
- " know, although the \n"
- "word Black may brand\n"
- "my name forever, my \n"
- "soul is Brown. Tell \n"
- " them..."),
- 6);
- break;
- case 57:
- write_quote(PSTR(" 'Your soul is of a \n"
- "pure white, Verin,' \n"
- "Egwene said softly. \n"
- " 'Like the Light \n"
- " itself.'"),
- 5);
- break;
- case 58:
- write_quote(PSTR(" Asha'man, Kill!"), 1);
- break;
- case 59:
- write_quote(PSTR(" Let the lord of \n"
- " chaos rule."),
- 2);
- break;
- case 60:
- write_quote(PSTR(" There's always \n"
- " another secret."),
- 2);
- break;
- case 61:
- write_quote(PSTR(" You see the great \n"
- "thing about madness \n"
- "is that it's all in \n"
- " your head."),
- 4);
- break;
- case 62:
- write_quote(PSTR(" In one Age, called \n"
- " the Third Age by \n"
- "some, an Age yet to \n"
- " come, an Age long \n"
- " past, a wind rose \n"
- " above..."),
- 6);
- break;
- }
- }
- return false;
-}
-
-bool encoder_update_user(uint8_t index, bool clockwise) {
- // On the left, control the volume. On the right, scroll the page
- if (index == 0) {
- if (clockwise) {
- tap_code(KC_WH_U);
- } else {
- tap_code(KC_WH_D);
- }
- } else {
- if (clockwise) {
- tap_code(KC_VOLU);
- } else {
- tap_code(KC_VOLD);
- }
- }
- return true;
-}
diff --git a/keyboards/handwired/dactyl_manuform/5x6_5/keymaps/333fred/rules.mk b/keyboards/handwired/dactyl_manuform/5x6_5/keymaps/333fred/rules.mk
deleted file mode 100644
index c83f96e102..0000000000
--- a/keyboards/handwired/dactyl_manuform/5x6_5/keymaps/333fred/rules.mk
+++ /dev/null
@@ -1,4 +0,0 @@
-KEY_LOCK_ENABLE = yes
-CONSOLE_ENABLE = no
-OLED_ENABLE = yes
-ENCODER_ENABLE = yes
diff --git a/keyboards/handwired/dactyl_manuform/dmote/62key/config.h b/keyboards/handwired/dactyl_manuform/dmote/62key/config.h
deleted file mode 100644
index e8bbf91d08..0000000000
--- a/keyboards/handwired/dactyl_manuform/dmote/62key/config.h
+++ /dev/null
@@ -1,5 +0,0 @@
-#pragma once
-
-// WS2812 RGB LED, normally used to indicate keyboard state:
-#define RGBLIGHT_EFFECT_KNIGHT_LENGTH 2
-#define RGBLIGHT_EFFECT_CHRISTMAS_STEP 1
diff --git a/keyboards/handwired/dactyl_manuform/dmote/62key/info.json b/keyboards/handwired/dactyl_manuform/dmote/62key/info.json
deleted file mode 100644
index 8e27a68f16..0000000000
--- a/keyboards/handwired/dactyl_manuform/dmote/62key/info.json
+++ /dev/null
@@ -1,116 +0,0 @@
-{
- "keyboard_name": "DMOTE (62-key)",
- "manufacturer": "tshort",
- "url": "",
- "maintainer": "veikman",
- "processor": "atmega32u4",
- "bootloader": "atmel-dfu",
- "usb": {
- "vid": "0x444D",
- "pid": "0x3632",
- "device_version": "0.0.1"
- },
- "rgblight": {
- "led_count": 6,
- "split_count": [3, 3],
- "animations": {
- "knight": true,
- "christmas": true
- }
- },
- "ws2812": {
- "pin": "D1"
- },
- "matrix_pins": {
- "cols": ["D4", "C6", "D7", "E6", "B4", "B5"],
- "rows": ["F6", "F7", "B1", "B3", "B2", "B6"]
- },
- "diode_direction": "COL2ROW",
- "split": {
- "enabled": true,
- "soft_serial_pin": "D0"
- },
- "layouts": {
- "LAYOUT_62key": {
- "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": [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": [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": [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": [4, 3], "x": 3, "y": 4},
-
- {"matrix": [4, 2], "x": 4.5, "y": 4.5},
- {"matrix": [3, 5], "x": 5.5, "y": 4.5},
-
- {"matrix": [5, 2], "x": 4, "y": 5.5},
- {"matrix": [4, 4], "x": 5, "y": 5.5},
- {"matrix": [4, 5], "x": 6, "y": 5.5},
-
- {"matrix": [5, 4], "x": 4.5, "y": 6.5},
- {"matrix": [5, 5], "x": 5.5, "y": 6.5},
-
- {"matrix": [6, 5], "x": 9, "y": 0},
- {"matrix": [6, 4], "x": 10, "y": 0},
- {"matrix": [6, 3], "x": 11, "y": 0},
- {"matrix": [6, 2], "x": 12, "y": 0},
- {"matrix": [6, 1], "x": 13, "y": 0},
- {"matrix": [6, 0], "x": 14, "y": 0},
-
- {"matrix": [7, 5], "x": 9, "y": 1},
- {"matrix": [7, 4], "x": 10, "y": 1},
- {"matrix": [7, 3], "x": 11, "y": 1},
- {"matrix": [7, 2], "x": 12, "y": 1},
- {"matrix": [7, 1], "x": 13, "y": 1},
- {"matrix": [7, 0], "x": 14, "y": 1},
-
- {"matrix": [8, 5], "x": 9, "y": 2},
- {"matrix": [8, 4], "x": 10, "y": 2},
- {"matrix": [8, 3], "x": 11, "y": 2},
- {"matrix": [8, 2], "x": 12, "y": 2},
- {"matrix": [8, 1], "x": 13, "y": 2},
- {"matrix": [8, 0], "x": 14, "y": 2},
-
- {"matrix": [9, 4], "x": 10, "y": 3},
- {"matrix": [9, 3], "x": 11, "y": 3},
- {"matrix": [9, 2], "x": 12, "y": 3},
- {"matrix": [9, 1], "x": 13, "y": 3},
- {"matrix": [9, 0], "x": 14, "y": 3},
-
- {"matrix": [9, 5], "x": 8.5, "y": 4.5},
- {"matrix": [10, 2], "x": 9.5, "y": 4.5},
-
- {"matrix": [10, 3], "x": 11, "y": 4},
-
- {"matrix": [10, 5], "x": 8, "y": 5.5},
- {"matrix": [10, 4], "x": 9, "y": 5.5},
- {"matrix": [11, 2], "x": 10, "y": 5.5},
-
- {"matrix": [11, 5], "x": 8.5, "y": 6.5},
- {"matrix": [11, 4], "x": 9.5, "y": 6.5}
- ]
- }
- }
-}
diff --git a/keyboards/handwired/dactyl_manuform/dmote/62key/keymaps/default/config.h b/keyboards/handwired/dactyl_manuform/dmote/62key/keymaps/default/config.h
deleted file mode 100644
index 1809262044..0000000000
--- a/keyboards/handwired/dactyl_manuform/dmote/62key/keymaps/default/config.h
+++ /dev/null
@@ -1,3 +0,0 @@
-#pragma once
-
-#define EE_HANDS
diff --git a/keyboards/handwired/dactyl_manuform/dmote/62key/keymaps/default/keymap.c b/keyboards/handwired/dactyl_manuform/dmote/62key/keymaps/default/keymap.c
deleted file mode 100644
index ce2c8a3702..0000000000
--- a/keyboards/handwired/dactyl_manuform/dmote/62key/keymaps/default/keymap.c
+++ /dev/null
@@ -1,141 +0,0 @@
-#include QMK_KEYBOARD_H
-
-#include "keymap_colemak.h"
-#include "sendstring_colemak.h"
-
-// Automatic Layer ID:
-enum layer_names {
- _QWERTY, // OS-side Colemak. Default.
- _COLEMAK, // Keyboard-side Colemak. Portability, emergency.
- _NUMERIC
-};
-
-// Shorthand:
-#define LAYER_N MO(_NUMERIC)
-#define LAYER_C TG(_COLEMAK)
-#define PASTE LSFT(KC_INS) // Terminal-compatible paste.
-#define SLQ RALT(KC_9) // Single left-side quotation mark (in Colemak).
-#define SRQ RALT(KC_0)
-#define EMDASH RALT(LSFT(KC_MINUS)) // Em dash character (in Colemak).
-#define BK_LCTL CTL_T(KC_LEFT_BRACKET)
-#define BK_RCTL RCTL_T(KC_RIGHT_BRACKET)
-// TODO: Mod-tap ALT with a curvilinear brace.
-// https://github.com/qmk/qmk_firmware/pull/2055
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [_QWERTY] = LAYOUT_62key(
- KC_VOLD, KC_VOLU, CM_W, CM_F, CM_P, CM_G,
- KC_TAB, CM_Q, CM_R, CM_S, CM_T, CM_D,
- KC_BSPC, CM_A, CM_X, CM_C, CM_V, CM_B,
- SLQ, CM_Z, KC_HOME, KC_PGUP, KC_END,
- KC_PGDN, KC_ENT, KC_SPC,
- SC_LSPO, KC_LGUI, KC_MINS,
- BK_LCTL, KC_LALT,
-
- CM_J, CM_L, CM_U, CM_Y, KC_MPLY, KC_MUTE,
- CM_H, CM_N, CM_E, CM_I, CM_SCLN, KC_BSLS,
- CM_K, CM_M, KC_COMM, KC_DOT, CM_O, KC_QUOT,
- KC_LEFT, KC_UP, KC_RGHT, KC_SLSH, SRQ,
- KC_DEL, KC_ESC, KC_DOWN,
- KC_EQL, LAYER_N, SC_RSPC,
- KC_RALT, BK_RCTL
- ),
-
- [_COLEMAK] = LAYOUT_62key(
- _______, _______, KC_W, KC_F, KC_P, KC_G,
- _______, KC_Q, KC_R, KC_S, KC_T, KC_D,
- _______, KC_A, KC_X, KC_C, KC_V, KC_B,
- _______, KC_Z, _______, _______, _______,
- _______, _______, _______,
- _______, _______, _______,
- _______, _______,
-
- KC_J, KC_L, KC_U, KC_Y, _______, _______,
- KC_H, KC_N, KC_E, KC_I, KC_SCLN, _______,
- KC_K, KC_M, _______, _______, KC_O, _______,
- _______, _______, _______, _______, _______,
- _______, _______, _______,
- _______, _______, _______,
- _______, _______
- ),
-
- [_NUMERIC] = LAYOUT_62key(
- LAYER_C, KC_INS, KC_F2, KC_F3, KC_F4, KC_F5,
- KC_F12, KC_F1, KC_2, KC_3, KC_4, KC_5,
- _______, KC_1, KC_AT, KC_HASH, KC_DLR, KC_PERC,
- KC_GRV, KC_EXLM, KC_BTN1, KC_WH_U, KC_BTN2,
- KC_WH_D, RGB_MOD, _______,
- _______, _______, EMDASH,
- _______, _______,
-
- KC_F6, KC_F7, KC_F8, KC_F9, QK_BOOT, KC_WAKE, // *
- KC_6, KC_7, KC_8, KC_9, KC_F10, KC_F11,
- KC_CIRC, KC_AMPR, KC_ASTR, KC_APP, KC_0, PASTE,
- KC_MS_L, KC_MS_U, KC_MS_R, KC_PSCR, RGB_TOG,
- KC_ACL1, KC_ACL2, KC_MS_D,
- KC_ACL0, _______, _______,
- _______, _______
- )
-};
-
-// *KC_WAKE: Used in place of KC_SLEP because X11 with i3 on prerelease
-// Debian 10 was seeing duplicate keypress and release events for sleep
-// (regardless of i3 binding), which ruined the function.
-
-
-/*
-The rest is all about lighting control.
-The logic here represents a pretty poor compromise solution between the
-following concerns:
-
-- Feedback on active modifiers.
-- Flexibility: Both sides of the keyboard are interchangeable.
-- Regular QMK RBG lighting modes. Specifically, Knight and Xmas.
-
-Currently, the last item suffers, because the first two seem to require
-calling a function that implements the RGBLIGHT_SPLIT_SET_CHANGE_HSVS macro,
-which most of the rgblight.c functions do not. In particular, functions that
-target an individual LED do not do so correctly across the wire, so instead
-we let HSV vary without ever targeting LEDs.
-*/
-
-// How long to wait between animation steps for "Knight" animation:
-const uint8_t RGBLED_KNIGHT_INTERVALS[] PROGMEM = {255, 200, 100};
-
-bool _initialized = false;
-bool _leds_dirty = false;
-
-void modal_leds(void) {
- uint8_t mods = get_mods();
- uint16_t hue = 355; // Rough match to printed case.
- uint8_t saturation = 255;
- uint8_t value = 0;
- if (layer_state_is(_COLEMAK)) { hue -= 50; saturation -= 20; value += 20; }
- if (layer_state_is(_NUMERIC)) { value += 30; }
- if (mods & MOD_MASK_SHIFT) { saturation -= 20; value += 30; }
- if (mods & MOD_MASK_ALT) { hue -= 100; saturation -= 20; value += 30; }
- if (mods & MOD_MASK_CTRL) { hue -= 200; saturation -= 20; value += 30; }
- // rgblight_sethsv_eeprom_helper is not a great API function but it does
- // affect both halves of a split keyboard.
- rgblight_sethsv_eeprom_helper(hue, saturation, value, false);
- _leds_dirty = false;
-}
-
-void matrix_scan_user(void) {
- if (_leds_dirty) { modal_leds(); }
-}
-
-bool process_record_user(uint16_t keycode, keyrecord_t *record) {
- if (!_initialized) {
- // Static lighting is amenable to customization.
- rgblight_mode(RGBLIGHT_MODE_STATIC_LIGHT);
- _initialized = true;
- }
- if (keycode == KC_WAKE) {
- // Turn the lights off before going to sleep.
- rgblight_sethsv_eeprom_helper(0, 0, 0, false);
- } else {
- _leds_dirty = true;
- }
- return true;
-}
diff --git a/keyboards/handwired/dactyl_manuform/dmote/62key/rules.mk b/keyboards/handwired/dactyl_manuform/dmote/62key/rules.mk
deleted file mode 100644
index a6a97a5c8e..0000000000
--- a/keyboards/handwired/dactyl_manuform/dmote/62key/rules.mk
+++ /dev/null
@@ -1,5 +0,0 @@
-# Build-process overrides for the DMOTE.
-MOUSEKEY_ENABLE = yes # Mouse keys
-EXTRAKEY_ENABLE = yes # Audio control and System control
-RGBLIGHT_ENABLE = yes # Needed for the C linker with lighting control.
-COMMAND_ENABLE = no # Not a good combo with Space Cadet shift.
diff --git a/keyboards/handwired/dactyl_manuform/dmote/readme.md b/keyboards/handwired/dactyl_manuform/dmote/readme.md
deleted file mode 100644
index 7aff2df524..0000000000
--- a/keyboards/handwired/dactyl_manuform/dmote/readme.md
+++ /dev/null
@@ -1,16 +0,0 @@
-DMOTE
-======
-
-The “Dactyl-ManuForm: Opposable Thumb Edition” is made from a Clojure
-application maintained [here](https://github.com/veikman/dactyl-keyboard).
-The application supports varied physical layouts and therefore matrices.
-This physical variability is its main feature; its QMK firmware is ordinary.
-
-Consult the general [Dactyl-ManuForm readme](../readme.md).
-
-## The `62key` layout
-
-This folder represents the default build target of the Clojure application
-as of its version 0.4.0. The default keymap for this layout has a QWERTY base
-layer but is intended for running Colemak on the OS side with the i3 tiling
-window manager. It’s also got a layer that forces Colemak from the QMK side.
diff --git a/keyboards/handwired/dactyl_minidox/info.json b/keyboards/handwired/dactyl_minidox/info.json
index a0bb416ce4..a94f517b52 100644
--- a/keyboards/handwired/dactyl_minidox/info.json
+++ b/keyboards/handwired/dactyl_minidox/info.json
@@ -8,6 +8,14 @@
"pid": "0x3536",
"device_version": "0.0.3"
},
+ "features": {
+ "bootmagic": true,
+ "console": false,
+ "command": false,
+ "extrakey": true,
+ "mousekey": true,
+ "nkro": true
+ },
"ws2812": {
"pin": "D3"
},
diff --git a/keyboards/handwired/dactyl_minidox/rules.mk b/keyboards/handwired/dactyl_minidox/rules.mk
index e22ac7f3ff..6e7633bfe0 100644
--- a/keyboards/handwired/dactyl_minidox/rules.mk
+++ b/keyboards/handwired/dactyl_minidox/rules.mk
@@ -1,12 +1 @@
-# Build Options
-# change yes to no to disable
-#
-BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite
-MOUSEKEY_ENABLE = yes # Mouse keys
-EXTRAKEY_ENABLE = yes # Audio control and System control
-CONSOLE_ENABLE = no # Console for debug
-COMMAND_ENABLE = no # Commands for debug and configuration
-NKRO_ENABLE = yes # Enable N-Key Rollover
-BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
-RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
-# AUDIO_ENABLE = yes # Audio output
+# This file intentionally left blank
diff --git a/keyboards/handwired/dmote/config.h b/keyboards/handwired/dmote/config.h
new file mode 100644
index 0000000000..4a2d46abe5
--- /dev/null
+++ b/keyboards/handwired/dmote/config.h
@@ -0,0 +1,23 @@
+/*
+Copyright 2012 Jun Wako <wakojun@gmail.com>
+Copyright 2015 Jack Humbert
+
+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
+
+// WS2812 RGB LED, normally used to indicate keyboard state:
+#define RGBLIGHT_EFFECT_KNIGHT_LENGTH 2
+#define RGBLIGHT_EFFECT_CHRISTMAS_STEP 1
diff --git a/keyboards/handwired/dmote/info.json b/keyboards/handwired/dmote/info.json
new file mode 100644
index 0000000000..fc52fee11e
--- /dev/null
+++ b/keyboards/handwired/dmote/info.json
@@ -0,0 +1,124 @@
+{
+ "keyboard_name": "DMOTE",
+ "manufacturer": "veikman",
+ "url": "https://github.com/veikman/dactyl-keyboard",
+ "maintainer": "veikman",
+ "development_board": "promicro",
+ "usb": {
+ "vid": "0x444D",
+ "pid": "0x3632",
+ "device_version": "1.0.0"
+ },
+ "features": {
+ "bootmagic": true,
+ "console": false,
+ "command": false,
+ "extrakey": true,
+ "mousekey": true,
+ "nkro": true,
+ "rgblight": true
+ },
+ "rgblight": {
+ "led_count": 6,
+ "split_count": [3, 3],
+ "animations": {
+ "christmas": true,
+ "knight": true
+ }
+ },
+ "ws2812": {
+ "pin": "D1"
+ },
+ "matrix_pins": {
+ "cols": ["D4", "C6", "D7", "E6", "B4", "B5"],
+ "rows": ["F6", "F7", "B1", "B3", "B2", "B6"]
+ },
+ "diode_direction": "COL2ROW",
+ "split": {
+ "enabled": true,
+ "soft_serial_pin": "D0"
+ },
+ "layouts": {
+ "LAYOUT": {
+ "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": [6, 5], "x": 9, "y": 0},
+ {"matrix": [6, 4], "x": 10, "y": 0},
+ {"matrix": [6, 3], "x": 11, "y": 0},
+ {"matrix": [6, 2], "x": 12, "y": 0},
+ {"matrix": [6, 1], "x": 13, "y": 0},
+ {"matrix": [6, 0], "x": 14, "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": [7, 5], "x": 9, "y": 1},
+ {"matrix": [7, 4], "x": 10, "y": 1},
+ {"matrix": [7, 3], "x": 11, "y": 1},
+ {"matrix": [7, 2], "x": 12, "y": 1},
+ {"matrix": [7, 1], "x": 13, "y": 1},
+ {"matrix": [7, 0], "x": 14, "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": [8, 5], "x": 9, "y": 2},
+ {"matrix": [8, 4], "x": 10, "y": 2},
+ {"matrix": [8, 3], "x": 11, "y": 2},
+ {"matrix": [8, 2], "x": 12, "y": 2},
+ {"matrix": [8, 1], "x": 13, "y": 2},
+ {"matrix": [8, 0], "x": 14, "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": [9, 4], "x": 10, "y": 3},
+ {"matrix": [9, 3], "x": 11, "y": 3},
+ {"matrix": [9, 2], "x": 12, "y": 3},
+ {"matrix": [9, 1], "x": 13, "y": 3},
+ {"matrix": [9, 0], "x": 14, "y": 3},
+
+ {"matrix": [4, 3], "x": 3, "y": 4},
+
+ {"matrix": [4, 2], "x": 4.5, "y": 4.5},
+ {"matrix": [3, 5], "x": 5.5, "y": 4.5},
+
+ {"matrix": [9, 5], "x": 8.5, "y": 4.5},
+ {"matrix": [10, 2], "x": 9.5, "y": 4.5},
+
+ {"matrix": [10, 3], "x": 11, "y": 4},
+
+ {"matrix": [5, 2], "x": 4, "y": 5.5},
+ {"matrix": [4, 4], "x": 5, "y": 5.5},
+ {"matrix": [4, 5], "x": 6, "y": 5.5},
+
+ {"matrix": [10, 5], "x": 8, "y": 5.5},
+ {"matrix": [10, 4], "x": 9, "y": 5.5},
+ {"matrix": [11, 2], "x": 10, "y": 5.5},
+
+ {"matrix": [5, 4], "x": 4.5, "y": 6.5},
+ {"matrix": [5, 5], "x": 5.5, "y": 6.5},
+
+ {"matrix": [11, 5], "x": 8.5, "y": 6.5},
+ {"matrix": [11, 4], "x": 9.5, "y": 6.5}
+ ]
+ }
+ }
+}
diff --git a/keyboards/handwired/dmote/keymaps/default/keymap.c b/keyboards/handwired/dmote/keymaps/default/keymap.c
new file mode 100644
index 0000000000..59a5b51f1b
--- /dev/null
+++ b/keyboards/handwired/dmote/keymaps/default/keymap.c
@@ -0,0 +1,134 @@
+/*
+Copyright 2012 Jun Wako <wakojun@gmail.com>
+Copyright 2015 Jack Humbert
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program. If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#include QMK_KEYBOARD_H
+
+#include "keymap_colemak.h"
+#include "sendstring_colemak.h"
+
+// Automatic Layer ID:
+enum layer_names {
+ _QWERTY, // OS-side Colemak. Default.
+ _COLEMAK, // Keyboard-side Colemak. Portability, emergency.
+ _NUMERIC,
+};
+
+// Shorthand:
+#define LAYER_N MO(_NUMERIC)
+#define LAYER_C TG(_COLEMAK)
+#define PASTE LSFT(KC_INS) // Terminal-compatible paste.
+#define SLQ RALT(KC_9) // Single left-side quotation mark (in Colemak).
+#define SRQ RALT(KC_0)
+#define EMDASH RALT(LSFT(KC_MINUS)) // Em dash character (in Colemak).
+#define BK_LCTL CTL_T(KC_LEFT_BRACKET)
+#define BK_RCTL RCTL_T(KC_RIGHT_BRACKET)
+// TODO: Mod-tap ALT with a curvilinear brace.
+// https://github.com/qmk/qmk_firmware/pull/2055
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ [_QWERTY] = LAYOUT(
+ KC_VOLD, KC_VOLU, CM_W, CM_F, CM_P, CM_G, CM_J, CM_L, CM_U, CM_Y, KC_MPLY, KC_MUTE,
+ KC_TAB, CM_Q, CM_R, CM_S, CM_T, CM_D, CM_H, CM_N, CM_E, CM_I, CM_SCLN, KC_BSLS,
+ KC_BSPC, CM_A, CM_X, CM_C, CM_V, CM_B, CM_K, CM_M, KC_COMM, KC_DOT, CM_O, KC_QUOT,
+ SLQ, CM_Z, KC_HOME, KC_PGUP, KC_END, KC_LEFT, KC_UP, KC_RGHT, KC_SLSH, SRQ,
+ KC_PGDN, KC_ENT, KC_SPC, KC_DEL, KC_ESC, KC_DOWN,
+ SC_LSPO, KC_LGUI, KC_MINS, KC_EQL, LAYER_N, SC_RSPC,
+ BK_LCTL, KC_LALT, KC_RALT, BK_RCTL
+ ),
+
+ [_COLEMAK] = LAYOUT(
+ _______, _______, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, _______, _______,
+ _______, KC_Q, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_SCLN, _______,
+ _______, KC_A, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, _______, _______, KC_O, _______,
+ _______, KC_Z, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______
+ ),
+
+ [_NUMERIC] = LAYOUT(
+ LAYER_C, KC_INS, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, QK_BOOT, KC_WAKE, // *
+ KC_F12, KC_F1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_F10, KC_F11,
+ _______, KC_1, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_APP, KC_0, PASTE,
+ KC_GRV, KC_EXLM, KC_BTN1, KC_WH_U, KC_BTN2, KC_MS_L, KC_MS_U, KC_MS_R, KC_PSCR, RGB_TOG,
+ KC_WH_D, RGB_MOD, _______, KC_ACL1, KC_ACL2, KC_MS_D,
+ _______, _______, EMDASH, KC_ACL0, _______, _______,
+ _______, _______, _______, _______
+ )
+};
+
+// *KC_WAKE: Used in place of KC_SLEP because X11 with i3 on prerelease
+// Debian 10 was seeing duplicate keypress and release events for sleep
+// (regardless of i3 binding), which ruined the function.
+
+/*
+The rest is all about lighting control.
+The logic here represents a pretty poor compromise solution between the
+following concerns:
+
+- Feedback on active modifiers.
+- Flexibility: Both sides of the keyboard are interchangeable.
+- Regular QMK RBG lighting modes. Specifically, Knight and Xmas.
+
+Currently, the last item suffers, because the first two seem to require
+calling a function that implements the RGBLIGHT_SPLIT_SET_CHANGE_HSVS macro,
+which most of the rgblight.c functions do not. In particular, functions that
+target an individual LED do not do so correctly across the wire, so instead
+we let HSV vary without ever targeting LEDs.
+*/
+
+// How long to wait between animation steps for "Knight" animation:
+const uint8_t RGBLED_KNIGHT_INTERVALS[] PROGMEM = {255, 200, 100};
+
+bool _initialized = false;
+bool _leds_dirty = false;
+
+void modal_leds(void) {
+ uint8_t mods = get_mods();
+ uint16_t hue = 355; // Rough match to printed case.
+ uint8_t saturation = 255;
+ uint8_t value = 0;
+ if (layer_state_is(_COLEMAK)) { hue -= 50; saturation -= 20; value += 20; }
+ if (layer_state_is(_NUMERIC)) { value += 30; }
+ if (mods & MOD_MASK_SHIFT) { saturation -= 20; value += 30; }
+ if (mods & MOD_MASK_ALT) { hue -= 100; saturation -= 20; value += 30; }
+ if (mods & MOD_MASK_CTRL) { hue -= 200; saturation -= 20; value += 30; }
+ // rgblight_sethsv_eeprom_helper is not a great API function but it does
+ // affect both halves of a split keyboard.
+ rgblight_sethsv_eeprom_helper(hue, saturation, value, false);
+ _leds_dirty = false;
+}
+
+void matrix_scan_user(void) {
+ if (_leds_dirty) { modal_leds(); }
+}
+
+bool process_record_user(uint16_t keycode, keyrecord_t *record) {
+ if (!_initialized) {
+ // Static lighting is amenable to customization.
+ rgblight_mode(RGBLIGHT_MODE_STATIC_LIGHT);
+ _initialized = true;
+ }
+ if (keycode == KC_WAKE) {
+ // Turn the lights off before going to sleep.
+ rgblight_sethsv_eeprom_helper(0, 0, 0, false);
+ } else {
+ _leds_dirty = true;
+ }
+ return true;
+}
diff --git a/keyboards/handwired/dmote/readme.md b/keyboards/handwired/dmote/readme.md
new file mode 100644
index 0000000000..9b6ff3a9f4
--- /dev/null
+++ b/keyboards/handwired/dmote/readme.md
@@ -0,0 +1,29 @@
+# DMOTE
+
+![DMOTE](https://i.imgur.com/JYkB6LBh.jpg)
+
+The “**D**actyl-**M**anuForm: **O**pposable **T**humb **E**dition” is made from a Clojure
+application maintained [here](https://github.com/veikman/dactyl-keyboard).
+The application supports varied physical layouts and therefore matrices.
+This physical variability is its main feature; its QMK firmware is ordinary.
+
+* Keyboard Maintainer: [Viktor Eikman](https://github.com/veikman/)
+* Hardware Supported: Pro Micro and clones
+
+Make example for this keyboard (after setting up your build environment):
+
+ make handwired/dmote:default
+
+Flashing example for this keyboard:
+
+ make handwired/dmote: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 (usually the top left key or Escape) and plug in the keyboard
+* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead
+* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available
diff --git a/keyboards/handwired/dmote/rules.mk b/keyboards/handwired/dmote/rules.mk
new file mode 100644
index 0000000000..876618b9d1
--- /dev/null
+++ b/keyboards/handwired/dmote/rules.mk
@@ -0,0 +1 @@
+# File is intentionally blank
diff --git a/keyboards/handwired/dqz11n1g/rules.mk b/keyboards/handwired/dqz11n1g/rules.mk
index 23f6b89cc2..220e353ab7 100644
--- a/keyboards/handwired/dqz11n1g/rules.mk
+++ b/keyboards/handwired/dqz11n1g/rules.mk
@@ -1,7 +1,7 @@
# Keyboard matrix uses shift-registers read via SPI
CUSTOM_MATRIX = lite
SRC += matrix.c
-QUANTUM_LIB_SRC += spi_master.c
+SPI_DRIVER_REQUIRED = yes
# Build Options
# change yes to no to disable
diff --git a/keyboards/handwired/dygma/raise/rules.mk b/keyboards/handwired/dygma/raise/rules.mk
index 761e075500..ecf156629a 100644
--- a/keyboards/handwired/dygma/raise/rules.mk
+++ b/keyboards/handwired/dygma/raise/rules.mk
@@ -19,7 +19,7 @@ CUSTOM_MATRIX = lite
# alternate usb endpoints.
RAW_ENABLE = yes
-QUANTUM_LIB_SRC += i2c_master.c
+I2C_DRIVER_REQUIRED = yes
SRC += matrix.c
DEFAULT_FOLDER = handwired/dygma/raise/ansi
diff --git a/keyboards/handwired/frenchdev/rules.mk b/keyboards/handwired/frenchdev/rules.mk
index c310966f1d..e226d0b517 100644
--- a/keyboards/handwired/frenchdev/rules.mk
+++ b/keyboards/handwired/frenchdev/rules.mk
@@ -13,5 +13,5 @@ AUDIO_ENABLE = no # Audio output
RGBLIGHT_ENABLE = no
# project specific files
-SRC = i2c_master.c \
- matrix.c
+SRC = matrix.c
+I2C_DRIVER_REQUIRED = yes
diff --git a/keyboards/handwired/lagrange/rules.mk b/keyboards/handwired/lagrange/rules.mk
index 61bfdfa4d3..f4af87851c 100644
--- a/keyboards/handwired/lagrange/rules.mk
+++ b/keyboards/handwired/lagrange/rules.mk
@@ -14,4 +14,5 @@ UNICODE_ENABLE = yes
SPLIT_KEYBOARD = yes
SPLIT_TRANSPORT = custom
-SRC += transport.c spi_master.c
+SRC += transport.c
+SPI_DRIVER_REQUIRED = yes
diff --git a/keyboards/handwired/lovelive9/keymaps/default/keymap.c b/keyboards/handwired/lovelive9/keymaps/default/keymap.c
index 605f722f44..6d863449fe 100644
--- a/keyboards/handwired/lovelive9/keymaps/default/keymap.c
+++ b/keyboards/handwired/lovelive9/keymaps/default/keymap.c
@@ -154,15 +154,15 @@ int aqours_color_v[] = {255, 255, 255, 255, 255, 255, 200, 255, 255};
void LED_default_set(void) {
- sethsv(aqours_color_h[2], aqours_color_s[2], aqours_color_v[2], (LED_TYPE *)&led[0]);
- sethsv(aqours_color_h[7], aqours_color_s[7], aqours_color_v[7], (LED_TYPE *)&led[1]);
- sethsv(aqours_color_h[1], aqours_color_s[1], aqours_color_v[1], (LED_TYPE *)&led[2]);
- sethsv(aqours_color_h[5], aqours_color_s[5], aqours_color_v[5], (LED_TYPE *)&led[3]);
- sethsv(aqours_color_h[8], aqours_color_s[8], aqours_color_v[8], (LED_TYPE *)&led[4]);
- sethsv(aqours_color_h[6], aqours_color_s[6], aqours_color_v[6], (LED_TYPE *)&led[5]);
- sethsv(aqours_color_h[0], aqours_color_s[0], aqours_color_v[0], (LED_TYPE *)&led[6]);
- sethsv(aqours_color_h[4], aqours_color_s[4], aqours_color_v[4], (LED_TYPE *)&led[7]);
- sethsv(aqours_color_h[3], aqours_color_s[3], aqours_color_v[3], (LED_TYPE *)&led[8]);
+ sethsv(aqours_color_h[2], aqours_color_s[2], aqours_color_v[2], (rgb_led_t *)&led[0]);
+ sethsv(aqours_color_h[7], aqours_color_s[7], aqours_color_v[7], (rgb_led_t *)&led[1]);
+ sethsv(aqours_color_h[1], aqours_color_s[1], aqours_color_v[1], (rgb_led_t *)&led[2]);
+ sethsv(aqours_color_h[5], aqours_color_s[5], aqours_color_v[5], (rgb_led_t *)&led[3]);
+ sethsv(aqours_color_h[8], aqours_color_s[8], aqours_color_v[8], (rgb_led_t *)&led[4]);
+ sethsv(aqours_color_h[6], aqours_color_s[6], aqours_color_v[6], (rgb_led_t *)&led[5]);
+ sethsv(aqours_color_h[0], aqours_color_s[0], aqours_color_v[0], (rgb_led_t *)&led[6]);
+ sethsv(aqours_color_h[4], aqours_color_s[4], aqours_color_v[4], (rgb_led_t *)&led[7]);
+ sethsv(aqours_color_h[3], aqours_color_s[3], aqours_color_v[3], (rgb_led_t *)&led[8]);
rgblight_set();
@@ -171,7 +171,7 @@ void LED_default_set(void) {
void LED_layer_set(int aqours_index) {
for (int c = 0; c < 9; c++) {
- sethsv(aqours_color_h[aqours_index], aqours_color_s[aqours_index], aqours_color_v[aqours_index], (LED_TYPE *)&led[c]);
+ sethsv(aqours_color_h[aqours_index], aqours_color_s[aqours_index], aqours_color_v[aqours_index], (rgb_led_t *)&led[c]);
}
rgblight_set();
}
diff --git a/keyboards/handwired/minorca/keymaps/ridingqwerty/config.h b/keyboards/handwired/minorca/keymaps/ridingqwerty/config.h
deleted file mode 100644
index c54aac3189..0000000000
--- a/keyboards/handwired/minorca/keymaps/ridingqwerty/config.h
+++ /dev/null
@@ -1,7 +0,0 @@
-#pragma once
-
-#undef MATRIX_COL_PINS
-#define MATRIX_COL_PINS { B3, B7, D0, D1, D2, D3, C6, C7, B5, B6, F7, F6 }
-
-#undef MATRIX_ROW_PINS
-#define MATRIX_ROW_PINS { F0, F1, F4, F5 }
diff --git a/keyboards/handwired/minorca/keymaps/ridingqwerty/keymap.c b/keyboards/handwired/minorca/keymaps/ridingqwerty/keymap.c
deleted file mode 100644
index 26e6fc630c..0000000000
--- a/keyboards/handwired/minorca/keymaps/ridingqwerty/keymap.c
+++ /dev/null
@@ -1,123 +0,0 @@
-/* Copyright 2019 George Koenig
- *
- * 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 "ridingqwerty.h"
-
-/* MinOrca
- ┏━━━━━━━━┯━━━━━━━━┯━━━━━━━━┯━━━━━━━━┯━━━━━━━━┯━━━━━━━━┯━━━━━━━━┯━━━━━━━━┯━━━━━━━━┯━━━━━━━━┯━━━━━━━━┯━━━━━━━━┓
- ┃ ⎋ │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ ❦ ⌫ ┃
- ┠────────┴─┬──────┴─┬──────┴─┬──────┴─┬──────┴─┬──────┴─┬──────┴─┬──────┴─┬──────┴─┬──────┴─┬──────┴────────┨
- ┃ ¶ ⇥ │ A │ S │ D │ F │ G │ H │ J │ K │ L │ 🔢 ↵ ┃
- ┠──────────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬───────────┨
- ┃ " ⇧ │ Z │ X │ C │ V │ B │ N │ M │ , │ 𝔽 . │ ⇧ / ┃
- ┠──────────┬───┴──────┬─┴────────┼────────┴────────┴──┬─────┴────────┴─────┬──┴───────┬┴───────┬┴───────────┨
- ┃ { ⎈ │ [ ⌘ │ ( ⌥ │ 🔢 ␣ │ ★ ␣ │ ) ⌥ │ ] ⌘ │ } ⎈ ┃
- ┗━━━━━━━━━━┷━━━━━━━━━━┷━━━━━━━━━━┷━━━━━━━━━━━━━━━━━━━━┷━━━━━━━━━━━━━━━━━━━━┷━━━━━━━━━━┷━━━━━━━━┷━━━━━━━━━━━━┛
-*/
-
-#define LAYOUT_minorca( \
- KA00, KA01, KA02, KA03, KA04, KA05, KA06, KA07, KA08, KA09, KA10, KA11, \
- KB00, KB01, KB02, KB03, KB04, KB05, KB06, KB07, KB08, KB09, KB11, \
- KC00, KC02, KC03, KC04, KC05, KC06, KC07, KC08, KC09, KC10, KC11, \
- KD00, KD02, KD03, KD04, KD07, KD09, KD10, KD11 \
-) { \
- { KA00, KA01, KA02, KA03, KA04, KA05, KA06, KA07, KA08, KA09, KA10, KA11 }, \
- { KB00, KB01, KB02, KB03, KB04, KB05, KB06, KB07, KB08, KB09, KC_NO, KB11 }, \
- { KC00, KC_NO, KC02, KC03, KC04, KC05, KC06, KC07, KC08, KC09, KC10, KC11 }, \
- { KD00, KC_NO, KD02, KD03, KD04, KC_NO, KC_NO, KD07, KC_NO, KD09, KD10, KD11 } \
-}
-
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [_QWERTY] = {
- {QK_GESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, SC(BSPC) },
- {ED(TAB), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, XXXXXXX, NM(SCLN) },
- {LS(QUOT), XXXXXXX, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, FK(DOT), RS(SLSH) },
- {LC(ESC), XXXXXXX, LG(LBRC), LA(RBRC), NM(BSPC), XXXXXXX, XXXXXXX, SM(SPC), XXXXXXX, RA(MINS), RG(EQL), RC(ENT) }
-/*
- //┌────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┐
- //├────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┴────────┤
- //├────────┴────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┬────────┤
- //├─────────────────┼────────┼────────┼────────┴────────┼────────┴────────┼────────┴────────┼────────┼────────┤
- //└─────────────────┴────────┴────────┴─────────────────┴─────────────────┴─────────────────┴────────┴────────┘
-*/
-
-
- },
-#ifdef UNICODE_H
- [_RUNE] = {
- {KC_ESC, UM(INGWZ), UM(WUNJO), UM(EHWAZ), UM(RAIDO), UM(TIWAZ), UM(IWAZ), UM(UR), UM(ISAZ), UM(ETHEL), UM(PERTH), SC(BSPC) },
- {ED(TAB), UM(ANSUZ), UM(SOWIL), UM(DAGAZ), UM(FE), UM(GEBO), UM(HAGLZ), UM(JERAN), UM(KAUNA), UM(LAUKZ), XXXXXXX, NM(SCLN) },
- {MT_QUOT, XXXXXXX, UM(ALGIZ), UM(THURS), UM(KAUNA), UM(WUNJO), UM(BEORC), UM(NAUDZ), UM(MANNZ), KC_COMM, FK(DOT), RS(SLSH) },
- {LC(ESC), XXXXXXX, LG(LBRC), LA(RBRC), NM(BSPC), XXXXXXX, XXXXXXX, SM(SPC), XXXXXXX, RA(MINS), RG(EQL), RC(ENT) }
- },
-#endif
- [_EDITOR] = {
- //┌────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┐
- {KC_GRV, _______, _______, KC_END, _______, KC_F5, _______, _______, KC_INS, _______, KC_PGUP, KC_DEL },
- //├────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┴────────┤
- {_______, KC_HOME, _______, KC_DEL, _______, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, XXXXXXX, KC_SCLN },
- //├────────┴────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┬────────┤
- {_______, XXXXXXX, KC_VOLD, KC_VOLU, KC_MUTE, _______, _______, KC_PGDN, _______, KC_SCLN, KC_QUOT, KC_BSLS },
- //├─────────────────┼────────┼────────┼────────┴────────┼────────┴────────┼────────┴────────┼────────┼────────┤
- {_______, XXXXXXX, _______, _______, KC_EQL, XXXXXXX, XXXXXXX, KC_MINS, XXXXXXX, KC_COLN, KC_DQUO, KC_PIPE }
- //└─────────────────┴────────┴────────┴─────────────────┴─────────────────┴─────────────────┴────────┴────────┘
- },
- [_NUMBER] = {
- //┌────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┐
- {KC_0, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC },
- //├────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┴────────┤
- {_______, KC_4, KC_5, KC_6, KC_PAST, _______, KC_PPLS, KC_4, KC_5, KC_6, XXXXXXX, _______ },
- //├────────┴────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┬────────┤
- {_______, KC_7, KC_8, KC_9, KC_SLSH, _______, _______, KC_MINS, KC_1, KC_2, KC_3, _______ },
- //├─────────────────┼────────┼────────┼────────┴────────┼────────┴────────┼────────┴────────┼────────┼────────┤
- {_______, XXXXXXX, KC_0, _______, _______, XXXXXXX, XXXXXXX, KC_0, XXXXXXX, KC_DOT, _______, _______ }
- //└─────────────────┴────────┴────────┴─────────────────┴─────────────────┴─────────────────┴────────┴────────┘
- },
- [_SYMBOL] = {
- //┌────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┐
- {KC_GRV, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL },
- //├────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┴────────┤
- {_______, _______, _______, _______, _______, _______, _______, _______, KC_LBRC, KC_RBRC, XXXXXXX, _______ },
- //├────────┴────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┬────────┤
- {_______, XXXXXXX, KC_VOLD, KC_VOLU, KC_MUTE, _______, _______, _______, _______, KC_SCLN, KC_QUOT, KC_BSLS },
- //├─────────────────┼────────┼────────┼────────┴────────┼────────┴────────┼────────┴────────┼────────┼────────┤
- {_______, XXXXXXX, _______, _______, _______, XXXXXXX, XXXXXXX, _______, XXXXXXX, KC_COLN, KC_DQUO, KC_PIPE }
- //└─────────────────┴────────┴────────┴─────────────────┴─────────────────┴─────────────────┴────────┴────────┘
- },
- [_SECRET] = {
- //┌────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┐
- {QK_BOOT, _______, _______, _______, SECRET0, SECRET1, _______, _______, _______, _______, VERSION, _______ },
- //├────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┴────────┤
- {_______, SECRET4, SECRET8, DB_TOGG, _______, _______, _______, _______, _______, SECRET7, XXXXXXX, MAKE },
- //├────────┴────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┬────────┤
- {_______, XXXXXXX, SECRET6, _______, SECRET2, SECRET5, _______, _______, SECRET3, _______, _______, _______ },
- //├─────────────────┼────────┼────────┼────────┴────────┼────────┴────────┼────────┴────────┼────────┼────────┤
- {_______, XXXXXXX, _______, _______, _______, XXXXXXX, XXXXXXX, _______, XXXXXXX, _______, _______, _______ }
- //└─────────────────┴────────┴────────┴─────────────────┴─────────────────┴─────────────────┴────────┴────────┘
- },
- [_F_KEYS] = {
- //┌────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┐
- {KC_F12, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11 },
- //├────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┴────────┤
- {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, XXXXXXX, _______ },
- //├────────┴────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┬────────┤
- {_______, XXXXXXX, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ },
- //├─────────────────┼────────┼────────┼────────┴────────┼────────┴────────┼────────┴────────┼────────┼────────┤
- {_______, XXXXXXX, _______, _______, _______, XXXXXXX, XXXXXXX, _______, XXXXXXX, _______, _______, _______ }
- //└─────────────────┴────────┴────────┴─────────────────┴─────────────────┴─────────────────┴────────┴────────┘
- },
-};
diff --git a/keyboards/handwired/minorca/keymaps/ridingqwerty/readme.md b/keyboards/handwired/minorca/keymaps/ridingqwerty/readme.md
deleted file mode 100644
index 4f0b3564b9..0000000000
--- a/keyboards/handwired/minorca/keymaps/ridingqwerty/readme.md
+++ /dev/null
@@ -1 +0,0 @@
-# Handwire of Minorca using teensy 2.0
diff --git a/keyboards/handwired/minorca/keymaps/ridingqwerty/rules.mk b/keyboards/handwired/minorca/keymaps/ridingqwerty/rules.mk
deleted file mode 100644
index 10f2309f01..0000000000
--- a/keyboards/handwired/minorca/keymaps/ridingqwerty/rules.mk
+++ /dev/null
@@ -1,6 +0,0 @@
-# Build Options
-# change to "no" to disable the options, or define them in the Makefile in
-# the appropriate keymap folder that will get included automatically
-#
-BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite
-UNICODEMAP_ENABLE = yes # Unicode Map
diff --git a/keyboards/handwired/onekey/kb2040/rules.mk b/keyboards/handwired/onekey/kb2040/rules.mk
index 0e5631b02b..dd68e9d3b0 100644
--- a/keyboards/handwired/onekey/kb2040/rules.mk
+++ b/keyboards/handwired/onekey/kb2040/rules.mk
@@ -1,3 +1 @@
OLED_ENABLE = yes
-
-OPT_DEFS += -DHAL_USE_I2C=TRUE
diff --git a/keyboards/handwired/onekey/keymaps/adc/rules.mk b/keyboards/handwired/onekey/keymaps/adc/rules.mk
index a691d5488f..8b36baccb0 100644
--- a/keyboards/handwired/onekey/keymaps/adc/rules.mk
+++ b/keyboards/handwired/onekey/keymaps/adc/rules.mk
@@ -1,3 +1,3 @@
-SRC += analog.c
-
CONSOLE_ENABLE = yes
+
+ANALOG_DRIVER_REQUIRED = yes
diff --git a/keyboards/handwired/onekey/keymaps/i2c_scanner/rules.mk b/keyboards/handwired/onekey/keymaps/i2c_scanner/rules.mk
index 04498a8831..3dec5cef29 100644
--- a/keyboards/handwired/onekey/keymaps/i2c_scanner/rules.mk
+++ b/keyboards/handwired/onekey/keymaps/i2c_scanner/rules.mk
@@ -1,3 +1,3 @@
CONSOLE_ENABLE = yes
-QUANTUM_LIB_SRC += i2c_master.c
+I2C_DRIVER_REQUIRED = yes
diff --git a/keyboards/handwired/onekey/nucleo_f446re/rules.mk b/keyboards/handwired/onekey/nucleo_f446re/rules.mk
index 8515c3fae0..e69de29bb2 100644
--- a/keyboards/handwired/onekey/nucleo_f446re/rules.mk
+++ b/keyboards/handwired/onekey/nucleo_f446re/rules.mk
@@ -1 +0,0 @@
-SRC += analog.c
diff --git a/keyboards/handwired/orbweaver/config.h b/keyboards/handwired/orbweaver/config.h
index ab7cb9d9d5..6a6670a6f6 100644
--- a/keyboards/handwired/orbweaver/config.h
+++ b/keyboards/handwired/orbweaver/config.h
@@ -17,8 +17,7 @@
#pragma once
-#define DRIVER_COUNT 1
-#define DRIVER_ADDR_1 0b1110100
+#define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND
#define RGB_MATRIX_LED_COUNT 20
#define I2C1_CLOCK_SPEED 100000
#define RGB_MATRIX_CENTER { 40, 30 }
diff --git a/keyboards/handwired/orbweaver/orbweaver.c b/keyboards/handwired/orbweaver/orbweaver.c
index f6485b6adf..63778ea52b 100644
--- a/keyboards/handwired/orbweaver/orbweaver.c
+++ b/keyboards/handwired/orbweaver/orbweaver.c
@@ -22,7 +22,7 @@
#include "rgb_matrix.h"
-const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = {
+const is31fl3731_led_t PROGMEM g_is31fl3731_leds[RGB_MATRIX_LED_COUNT] = {
/* Refer to IS31 manual for these locations
* driver
* | R location
diff --git a/keyboards/handwired/ortho5x13/keymaps/default/keymap.c b/keyboards/handwired/ortho5x13/keymaps/default/keymap.c
index ef975a215d..d725397199 100644
--- a/keyboards/handwired/ortho5x13/keymaps/default/keymap.c
+++ b/keyboards/handwired/ortho5x13/keymaps/default/keymap.c
@@ -163,20 +163,16 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
};
#ifdef AUDIO_ENABLE
-float tone_startup[][2] = {
- {NOTE_B5, 20},
- {NOTE_B6, 8},
- {NOTE_DS6, 20},
- {NOTE_B6, 8}
-};
+// float tone_startup[][2] = {
+// {NOTE_B5, 20},
+// {NOTE_B6, 8},
+// {NOTE_DS6, 20},
+// {NOTE_B6, 8}
+// };
float tone_qwerty[][2] = SONG(QWERTY_SOUND);
float tone_dvorak[][2] = SONG(DVORAK_SOUND);
float tone_colemak[][2] = SONG(COLEMAK_SOUND);
-
-float tone_goodbye[][2] = SONG(GOODBYE_SOUND);
-
-float music_scale[][2] = SONG(MUSIC_SCALE_SOUND);
#endif
void persistent_default_layer_set(uint16_t default_layer) {
@@ -247,36 +243,3 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
}
return true;
};
-
-void matrix_init_user(void) {
- #ifdef AUDIO_ENABLE
- startup_user();
- #endif
-}
-
-#ifdef AUDIO_ENABLE
-
-void startup_user(void)
-{
- _delay_ms(20); // gets rid of tick
- PLAY_SONG(tone_startup);
-}
-
-void shutdown_user(void)
-{
- PLAY_SONG(tone_goodbye);
- _delay_ms(150);
- stop_all_notes();
-}
-
-void music_on_user(void)
-{
- music_scale_user();
-}
-
-void music_scale_user(void)
-{
- PLAY_SONG(music_scale);
-}
-
-#endif
diff --git a/keyboards/handwired/phantagom/baragon/info.json b/keyboards/handwired/phantagom/baragon/info.json
index f86dfcf436..390f114dd9 100644
--- a/keyboards/handwired/phantagom/baragon/info.json
+++ b/keyboards/handwired/phantagom/baragon/info.json
@@ -15,6 +15,7 @@
"encoder": true
},
"ws2812": {
+ "driver": "vendor",
"pin": "GP15"
},
"rgblight": {
diff --git a/keyboards/handwired/phantagom/baragon/rules.mk b/keyboards/handwired/phantagom/baragon/rules.mk
index bffd02535d..6e7633bfe0 100644
--- a/keyboards/handwired/phantagom/baragon/rules.mk
+++ b/keyboards/handwired/phantagom/baragon/rules.mk
@@ -1,2 +1 @@
-# Needed for RP2040
-WS2812_DRIVER = vendor \ No newline at end of file
+# This file intentionally left blank
diff --git a/keyboards/handwired/phantagom/varan/info.json b/keyboards/handwired/phantagom/varan/info.json
index 636c2d00e6..a767d45de0 100644
--- a/keyboards/handwired/phantagom/varan/info.json
+++ b/keyboards/handwired/phantagom/varan/info.json
@@ -14,6 +14,7 @@
"rgblight": true
},
"ws2812": {
+ "driver": "vendor",
"pin": "GP28"
},
"rgblight": {
diff --git a/keyboards/handwired/phantagom/varan/rules.mk b/keyboards/handwired/phantagom/varan/rules.mk
index bffd02535d..6e7633bfe0 100644
--- a/keyboards/handwired/phantagom/varan/rules.mk
+++ b/keyboards/handwired/phantagom/varan/rules.mk
@@ -1,2 +1 @@
-# Needed for RP2040
-WS2812_DRIVER = vendor \ No newline at end of file
+# This file intentionally left blank
diff --git a/keyboards/handwired/promethium/rgbsps.c b/keyboards/handwired/promethium/rgbsps.c
index f439876911..957726e775 100644
--- a/keyboards/handwired/promethium/rgbsps.c
+++ b/keyboards/handwired/promethium/rgbsps.c
@@ -1,7 +1,7 @@
#include "ws2812.h"
#include "rgbsps.h"
-cRGB led[RGBSPS_NUM];
+rgb_led_t led[RGBSPS_NUM];
void rgbsps_set(uint8_t index, uint8_t r, uint8_t g, uint8_t b) {
led[index].r = r;
diff --git a/keyboards/handwired/promethium/rules.mk b/keyboards/handwired/promethium/rules.mk
index 609c4d0e7e..d6b97ed810 100644
--- a/keyboards/handwired/promethium/rules.mk
+++ b/keyboards/handwired/promethium/rules.mk
@@ -18,10 +18,11 @@ PS2_ENABLE = yes
PS2_DRIVER = interrupt
CUSTOM_MATRIX = yes
BLUETOOTH_ENABLE = yes
+
WS2812_DRIVER_REQUIRED = yes
+ANALOG_DRIVER_REQUIRED = yes
SRC += rgbsps.c
-SRC += analog.c
SRC += matrix.c
LTO_ENABLE = yes
diff --git a/keyboards/handwired/pterodactyl/rules.mk b/keyboards/handwired/pterodactyl/rules.mk
index 9f0cabc750..108e1498a8 100644
--- a/keyboards/handwired/pterodactyl/rules.mk
+++ b/keyboards/handwired/pterodactyl/rules.mk
@@ -18,4 +18,4 @@ CUSTOM_MATRIX = yes
BLUETOOTH_ENABLE = yes
SRC += matrix.c
-QUANTUM_LIB_SRC += i2c_master.c
+I2C_DRIVER_REQUIRED = yes
diff --git a/keyboards/handwired/rabijl/rotary_numpad/info.json b/keyboards/handwired/rabijl/rotary_numpad/info.json
new file mode 100644
index 0000000000..dafeec0fc0
--- /dev/null
+++ b/keyboards/handwired/rabijl/rotary_numpad/info.json
@@ -0,0 +1,66 @@
+{
+ "manufacturer": "rabijl",
+ "keyboard_name": "rotary_numpad",
+ "maintainer": "rabijl",
+ "url": "https://github.com/RABijl/",
+ "usb": {
+ "device_version": "1.0.0",
+ "pid": "0x0000",
+ "vid": "0xFEED"
+ },
+ "features": {
+ "bootmagic": true,
+ "command": false,
+ "console": false,
+ "extrakey": true,
+ "mousekey": true,
+ "nkro": true,
+ "encoder": true
+ },
+ "development_board": "promicro",
+ "diode_direction": "COL2ROW",
+ "matrix_pins": {
+ "cols": ["F5", "F4", "B5", "B4"],
+ "rows": ["F6", "F7", "B1", "B3", "B2", "B6"]
+ },
+ "encoder": {
+ "rotary": [
+ {"pin_a": "D1", "pin_b": "D0", "resolution": 3},
+ {"pin_a": "D4", "pin_b": "C6", "resolution": 3},
+ {"pin_a": "D7", "pin_b": "E6", "resolution": 3}
+ ]
+ },
+ "layouts": {
+ "LAYOUT": {
+ "layout": [
+ {"matrix": [5, 0],"x":0, "y":0.4},
+ {"matrix": [0, 0], "x":2, "y":0},
+ {"matrix": [0, 1], "x":3, "y":0},
+ {"matrix": [0, 2], "x":4, "y":0},
+ {"matrix": [0, 3], "x":5, "y":0},
+ {"matrix": [1, 0], "x":2, "y":1.25},
+ {"matrix": [1, 1], "x":3, "y":1.25},
+ {"matrix": [1, 2], "x":4, "y":1.25},
+ {"matrix": [1, 3], "x":5, "y":1.25},
+ {"matrix": [2, 0], "x":2, "y":2.25},
+ {"matrix": [2, 1], "x":3, "y":2.25},
+ {"matrix": [2, 2], "x":4, "y":2.25},
+ {"matrix": [2, 3], "x":5, "y":2.25, "h":2},
+
+ {"matrix": [3, 3], "x":0, "y":2.75},
+ {"matrix": [3, 0], "x":2, "y":3.25},
+ {"matrix": [3, 1], "x":3, "y":3.25},
+ {"matrix": [3, 2], "x":4, "y":3.25},
+
+ {"matrix": [4, 0], "x":2, "y":4.25},
+ {"matrix": [4, 1], "x":3, "y":4.25},
+ {"matrix": [4, 2], "x":4, "y":4.25},
+ {"matrix": [4, 3], "x":5, "y":4.25, "h":2},
+
+ {"matrix": [5, 3], "x":0, "y":5.05},
+ {"matrix": [5, 1], "x":2, "y":5.25, "w":2},
+ {"matrix": [5, 2], "x":4, "y":5.25}
+ ]
+ }
+ }
+}
diff --git a/keyboards/handwired/rabijl/rotary_numpad/keymaps/default/keymap.c b/keyboards/handwired/rabijl/rotary_numpad/keymaps/default/keymap.c
new file mode 100644
index 0000000000..d4462243b0
--- /dev/null
+++ b/keyboards/handwired/rabijl/rotary_numpad/keymaps/default/keymap.c
@@ -0,0 +1,62 @@
+// Copyright 2023 QMK
+// SPDX-License-Identifier: GPL-2.0-or-later
+//
+
+#include QMK_KEYBOARD_H
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ /*
+ * ┌───┐┌───┬───┬───┬───┐
+ * │Ply││Esc│Tab│MO1│Bsp│
+ * └───┘├───┼───┼───┼───┤
+ * │Num│ / │ * │ - │
+ * ├───┼───┼───┼───┤
+ * │ 7 │ 8 │ 9 │ │
+ * ┌───┐├───┼───┼───┤ + │
+ * │Esc││ 4 │ 5 │ 6 │ │
+ * └───┘├───┼───┼───┼───┤
+ * │ 1 │ 2 │ 3 │ │
+ * ┌───┐├───┴───┼───┤Ent│
+ * │ENT││ 0 │ . │ │
+ * └───┘└───────┴───┴───┘
+ */
+ [0] = LAYOUT(
+ KC_MPLY, KC_ESC, KC_TAB, MO(1), KC_BSPC,
+ KC_NUM, KC_PSLS, KC_PAST, KC_PMNS,
+ KC_P7, KC_P8, KC_P9, KC_PPLS,
+ KC_ESC, KC_P4, KC_P5, KC_P6,
+ KC_P1, KC_P2, KC_P3, KC_PENT,
+ KC_ENT, KC_P0, KC_PDOT
+ ),
+ /*
+ * ┌───┐┌───┬───┬───┬───┐
+ * │Ply││Rst│Tab│MO1│Bsp│
+ * └───┘├───┼───┼───┼───┤
+ * │Num│ / │ * │ - │
+ * ├───┼───┼───┼───┤
+ * │Hom│ ↑ │PgU│ │
+ * ┌───┐├───┼───┼───┤ + │
+ * │Esc││ ← │ │ → │ │
+ * └───┘├───┼───┼───┼───┤
+ * │End│ ↓ │PgD│ │
+ * ┌───┐├───┴───┼───┤Ent│
+ * │ENT││Insert │Del│ │
+ * └───┘└───────┴───┘───┘
+ */
+ [1] = LAYOUT(
+ _______, QK_BOOT, _______, _______, _______,
+ _______, _______, _______, _______,
+ KC_HOME, KC_UP, KC_PGUP, _______,
+ _______, KC_LEFT, KC_NO, KC_RGHT,
+ KC_END, KC_DOWN, KC_PGDN, _______,
+ _______, KC_INS, KC_DEL
+ )
+};
+
+#if defined(ENCODER_MAP_ENABLE)
+
+const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = {
+ [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(KC_DOWN, KC_UP), ENCODER_CCW_CW(KC_LEFT, KC_RIGHT) },
+ [1] = { ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(KC_LEFT, KC_RIGHT), ENCODER_CCW_CW(_______, _______) },
+};
+#endif
diff --git a/keyboards/handwired/rabijl/rotary_numpad/keymaps/default/rules.mk b/keyboards/handwired/rabijl/rotary_numpad/keymaps/default/rules.mk
new file mode 100644
index 0000000000..34789bf172
--- /dev/null
+++ b/keyboards/handwired/rabijl/rotary_numpad/keymaps/default/rules.mk
@@ -0,0 +1,2 @@
+
+ENCODER_MAP_ENABLE = yes
diff --git a/keyboards/handwired/rabijl/rotary_numpad/readme.md b/keyboards/handwired/rabijl/rotary_numpad/readme.md
new file mode 100644
index 0000000000..6eb2e1480f
--- /dev/null
+++ b/keyboards/handwired/rabijl/rotary_numpad/readme.md
@@ -0,0 +1,67 @@
+# Rotary Numpad
+
+
+![rotary_numpad](https://i.imgur.com/GwEH4WOh.jpeg)
+
+This is a personal project of mine where I wanted a number pad that I can put on the left side of keyboard that doesn't have a numberpad. I fell in love with the feel of rotary encoders on my 3d printer, so added three to be able to play around with.
+
+* Keyboard Maintainer: [rabijl](https://github.com/rabijl)
+* Hardware Supported: Sparkfun Pro Micro 5V (atmega32u4)
+* Hardware Availability: https://www.sparkfun.com/products/12640
+
+## How to build from scratch
+
+I handsoldered gateron blue switches to a 3D printed case. The design is modified from the [Ultipad](https://www.thingiverse.com/thing:4248565). \
+I used a sparkfun Pro Micro as my microcontroller and the pinout can be found in the `info.json`. I found this [site](https://golem.hu/article/pro-micro-pinout/) \
+to be very useful to identify different pins. You can find useful information on rotary encoders from the qmk docs [here](https://docs.qmk.fm/#/reference_info_json?id=encoders) and [here](https://docs.qmk.fm/#/feature_encoders).
+
+### matrix
+
+Due to the three rotary encoders, I had to use most of the available pins. Fortunately, all the buttons still fit in a 6x4 matrix. Looking at the diagram below, the three buttons in the first column correspond to each encoder button.
+
+```
+ ┌──┐┌──┐┌──┐┌──┐
+ │0A││0B││0C││0D│
+┌──┐ └──┘└──┘└──┘└──┘
+│5A│
+└──┘ ┌──┐┌──┐┌──┐┌──┐
+ │1A││1B││1C││1D│
+ └──┘└──┘└──┘└──┘
+ ┌──┐┌──┐┌──┐┌──┐
+ │2A││2B││2C││2D│
+┌──┐ └──┘└──┘└──┘│ │
+│3D│ ┌──┐┌──┐┌──┐│ │
+└──┘ │3A││3B││3C││ │
+ └──┘└──┘└──┘└──┘
+ ┌──┐┌──┐┌──┐┌──┐
+ │4A││4B││4C││4D│
+ └──┘└──┘└──┘│ │
+┌──┐ ┌──────┐┌──┐│ │
+│5D│ │5B ││5C││ │
+└──┘ └──────┘└──┘└──┘
+
+```
+
+## Flashing
+
+Make example for this keyboard (after setting up your build environment):
+
+ qmk compile -kb handwired/rabijl/rotary_numpad -km default
+
+Flashing example for this keyboard:
+
+ qmk flash -kb handwired/rabijl/rotary_numpad -km 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).
+
+## Bootloader
+
+Enter the bootloader in 3 ways:
+
+* **Short reset leads**: tap the reset lead to ground twice quickly after qmk is in flash mode
+* **Keycode in layout**: double tap the key mapped to `QK_BOOT`. On the default keymap this can be found by holding in key (0,C) and tapping key (0,A), see the matrix section for the positions of these keys.
+* **Bootmagic reset**: Hold down the key at (0,A) in the matrix (see matrix section) and plug in the keyboard
+
+**Note:** if the keyboard doesn't show up after putting the keyboard in reset mode, check that
+your user is added to the `tty` and/or `uucp` groups. \
+You may need to logout after adding these groups to your user, for the changes to take affect.
diff --git a/keyboards/handwired/rabijl/rotary_numpad/rules.mk b/keyboards/handwired/rabijl/rotary_numpad/rules.mk
new file mode 100644
index 0000000000..1287472e49
--- /dev/null
+++ b/keyboards/handwired/rabijl/rotary_numpad/rules.mk
@@ -0,0 +1 @@
+# file intentionally left blank
diff --git a/keyboards/handwired/reclined/keymaps/pdl/config.h b/keyboards/handwired/reclined/keymaps/pdl/config.h
deleted file mode 100644
index 3a89a0a4d2..0000000000
--- a/keyboards/handwired/reclined/keymaps/pdl/config.h
+++ /dev/null
@@ -1,23 +0,0 @@
-/*
-This is the c configuration file for the keymap
-
-Copyright 2012 Jun Wako <wakojun@gmail.com>
-Copyright 2015 Jack Humbert
-
-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 TAPPING_TERM 200
diff --git a/keyboards/handwired/reclined/keymaps/pdl/keymap.c b/keyboards/handwired/reclined/keymaps/pdl/keymap.c
deleted file mode 100644
index bb6976de9b..0000000000
--- a/keyboards/handwired/reclined/keymaps/pdl/keymap.c
+++ /dev/null
@@ -1,69 +0,0 @@
-/*
-This is the keymap for the reclined keyboard
-
-Copyright 2012 Jun Wako <wakojun@gmail.com>
-Copyright 2015 Jack Humbert
-Copyright 2017 Art Ortenburger
-Copyright 2018 Daniel Perrett
-
-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 "pdl.h"
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [_QWERTY] = LAYOUT_wrapper(
- KC_TAB, _________________QWERTY_L1_________________, _________________QWERTY_R1_________________, KC_BSPC,
- MY_SESC, _________________QWERTY_L2_________________, _________________QWERTY_R2_________________, MY_SQUO,
- MY_CBSL, _________________QWERTY_L3_________________, _________________QWERTY_R3_________________, MY_SQUO,
- KC_LCTL, KC_LGUI, KC_LALT, NUMBRS, NAVIGN, KC_SPC, MY_SSPC, NUMBRS, NAVIGN, MY_AMNU, FUNCTN, MY_CENT
- ),
- [_PROXIM] = LAYOUT_wrapper(
- MY_FESC, _________________PROXIM_L1_________________, _________________PROXIM_R1_________________, KC_BSPC,
- KC_TAB, _________________PROXIM_L2_________________, _________________PROXIM_R2_________________, MY_ASCL,
- MY_SBSL, _________________PROXIM_L3_________________, _________________PROXIM_R3_________________, MY_SENT,
- KC_LCTL, KC_LGUI, KC_LALT, NUMBRS, NAVIGN, KC_SPC, MY_SSPC, NUMBRS, NAVIGN, MY_AMNU, FUNCTN, MY_CENT
- ),
- [_NAVIGN] = LAYOUT_wrapper(
- _______, _________________NAVIGN_L1_________________, _______, _______, _______, _______, _______, _______,
- _______, _________________NAVIGN_L2_________________, _______, _______, _______, _______, _______, _______,
- _______, _________________NAVIGN_L3_________________, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
- ),
- [_PUNCTN] = LAYOUT_wrapper(
- _______, _______, _______, _______, _______, _______, _________________PUNCTN_R1_________________, _______,
- _______, _______, _______, _______, _______, _______, _________________PUNCTN_R2_________________, _______,
- _______, _______, _______, _______, _______, _______, _________________PUNCTN_R3_________________, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
- ),
- [_NUMBRS] = LAYOUT_wrapper(
- _______, _________________NUMBRS_L1_________________, _______, _______, _______, _______, _______, _______,
- _______, _________________NUMBRS_L2_________________, _______, _______, _______, _______, _______, _______,
- _______, _________________NUMBRS_L3_________________, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
- ),
- [_CODING] = LAYOUT_wrapper(
- _______, _______, _______, _______, _______, _______, _________________CODING_R1_________________, _______,
- _______, _______, _______, _______, _______, _______, _________________CODING_R2_________________, _______,
- _______, _______, _______, _______, _______, _______, _________________CODING_R3_________________, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
- ),
- [_FUNCTN] = LAYOUT_wrapper(
- _______, _________________FUNCTN_L1_________________, _________________FUNCTN_R1_________________, MY_CAD,
- _______, _________________FUNCTN_L2_________________, _________________FUNCTN_R2_________________, KC_PSCR,
- _______, _________________FUNCTN_L3_________________, _________________FUNCTN_R3_________________, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
- )
-};
diff --git a/keyboards/handwired/scottokeebs/scotto34/keymaps/scotto/config.h b/keyboards/handwired/scottokeebs/scotto34/keymaps/scotto/config.h
deleted file mode 100644
index 1a6512052c..0000000000
--- a/keyboards/handwired/scottokeebs/scotto34/keymaps/scotto/config.h
+++ /dev/null
@@ -1,23 +0,0 @@
-/*
-Copyright 2022 Joe Scotto
-
-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 options
-#define TAPPING_TERM 135
-#define PERMISSIVE_HOLD
-#define TAPPING_TERM_PER_KEY
diff --git a/keyboards/handwired/scottokeebs/scotto34/keymaps/scotto/keymap.c b/keyboards/handwired/scottokeebs/scotto34/keymaps/scotto/keymap.c
deleted file mode 100644
index f65f6aa17a..0000000000
--- a/keyboards/handwired/scottokeebs/scotto34/keymaps/scotto/keymap.c
+++ /dev/null
@@ -1,196 +0,0 @@
-/*
-Copyright 2022 Joe Scotto
-
-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
-
-// Tap dance declarations
-enum {
- TD_ESC_LALT_LCTL_SPOTLIGHT_EMOJI,
- TD_ESC_LCTL_LALT_WINDOWS_EMOJI
-};
-
-// Custom tapping term for multi function keys
-uint16_t get_tapping_term(uint16_t keycode, keyrecord_t *record) {
- switch (keycode) {
- case TD(TD_ESC_LALT_LCTL_SPOTLIGHT_EMOJI) :
- case TD(TD_ESC_LCTL_LALT_WINDOWS_EMOJI) :
- case LGUI_T(KC_SPC) :
- case LT(1, KC_SPC) :
- case LT(1, KC_TAB) :
- case LT(2, KC_ENT) :
- return 200;
- default:
- return TAPPING_TERM;
- }
-};
-
-// Begin quad TD
-typedef enum {
- TD_NONE,
- TD_UNKNOWN,
- TD_SINGLE_HOLD,
- TD_DOUBLE_HOLD,
- TD_TRIPLE_HOLD,
- TD_SINGLE_TAP,
- TD_DOUBLE_TAP,
- TD_TRIPLE_TAP
-} td_state_t;
-
-typedef struct {
- bool is_press_action;
- td_state_t state;
-} td_tap_t;
-
-// Create an instance of 'td_tap_t' for the 'x' tap dance.
-static td_tap_t xtap_state = {
- .is_press_action = true,
- .state = TD_NONE
-};
-
-td_state_t cur_dance(tap_dance_state_t *state) {
- if (state->count == 1) {
- if (state->interrupted || !state->pressed) {
- return TD_SINGLE_TAP;
- } else {
- return TD_SINGLE_HOLD;
- }
- } else if (state->count == 2) {
- if (state->interrupted || !state->pressed) {
- return TD_DOUBLE_TAP;
- } else {
- return TD_DOUBLE_HOLD;
- }
- } else if (state->count == 3) {
- if (state->interrupted || !state->pressed) {
- return TD_TRIPLE_TAP;
- } else {
- return TD_TRIPLE_HOLD;
- }
- }
-
- return TD_UNKNOWN;
-}
-
-void td_esc_lalt_lctl_spotlight_emoji_finished(tap_dance_state_t *state, void *user_data) {
- xtap_state.state = cur_dance(state);
- switch (xtap_state.state) {
- case TD_SINGLE_TAP: tap_code(KC_ESC); break;
- case TD_SINGLE_HOLD: register_code(KC_LALT); break;
- case TD_DOUBLE_HOLD: register_code(KC_LCTL); break;
- case TD_DOUBLE_TAP: tap_code16(G(KC_SPC)); break;
- case TD_TRIPLE_TAP: tap_code16(C(G(KC_SPC))); break;
- default: break;
- }
-}
-
-void td_esc_lalt_lctl_spotlight_emoji_reset(tap_dance_state_t *state, void *user_data) {
- switch (xtap_state.state) {
- case TD_SINGLE_TAP: unregister_code(KC_ESC); break;
- case TD_SINGLE_HOLD: unregister_code(KC_LALT); break;
- case TD_DOUBLE_HOLD: unregister_code(KC_LCTL); break;
- default: break;
- }
- xtap_state.state = TD_NONE;
-}
-
-void td_esc_lctl_lalt_windows_emoji_finished(tap_dance_state_t *state, void *user_data) {
- xtap_state.state = cur_dance(state);
- switch (xtap_state.state) {
- case TD_SINGLE_TAP: tap_code16(KC_ESC); break;
- case TD_SINGLE_HOLD: register_code(KC_LCTL); break;
- case TD_DOUBLE_HOLD: register_code(KC_LALT); break;
- case TD_DOUBLE_TAP: tap_code(KC_LGUI); break;
- case TD_TRIPLE_TAP: tap_code16(G(KC_DOT)); break;
- default: break;
- }
-}
-
-void td_esc_lctl_lalt_windows_emoji_reset(tap_dance_state_t *state, void *user_data) {
- switch (xtap_state.state) {
- case TD_SINGLE_TAP: unregister_code(KC_ESC); break;
- case TD_SINGLE_HOLD: unregister_code(KC_LCTL); break;
- case TD_DOUBLE_HOLD: unregister_code(KC_LALT); break;
- default: break;
- }
- xtap_state.state = TD_NONE;
-}
-
- // Tap Dance definitions
-tap_dance_action_t tap_dance_actions[] = {
- [TD_ESC_LALT_LCTL_SPOTLIGHT_EMOJI] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, td_esc_lalt_lctl_spotlight_emoji_finished, td_esc_lalt_lctl_spotlight_emoji_reset),
- [TD_ESC_LCTL_LALT_WINDOWS_EMOJI] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, td_esc_lctl_lalt_windows_emoji_finished, td_esc_lctl_lalt_windows_emoji_reset)
-};
-// For the x tap dance. Put it here so it can be used in any keymap
-void x_finished(tap_dance_state_t *state, void *user_data);
-void x_reset(tap_dance_state_t *state, void *user_data);
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [0] = LAYOUT_split_3x5_2(
- KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_BSPC,
- KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O,
- LSFT_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMMA, KC_DOT, RSFT_T(KC_SLSH),
- TD(TD_ESC_LALT_LCTL_SPOTLIGHT_EMOJI), LGUI_T(KC_SPC), LT(1, KC_TAB), LT(2, KC_ENT)
- ),
- [1] = LAYOUT_split_3x5_2(
- KC_UNDS, KC_MINS, KC_PLUS, KC_EQL, KC_COLN, KC_GRV, KC_MRWD, KC_MPLY, KC_MFFD, KC_DEL,
- KC_LCBR, KC_LPRN, KC_RPRN, KC_RCBR, KC_PIPE, KC_ESC, KC_LEFT, KC_UP, KC_DOWN, KC_RGHT,
- LSFT_T(KC_LBRC), KC_QUOT, KC_DQUO, KC_RBRC, KC_SCLN, KC_TILDE, KC_VOLD, KC_MUTE, KC_VOLU, RSFT_T(KC_BSLS),
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
- ),
- [2] = LAYOUT_split_3x5_2(
- KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_CAPS, KC_BSPC,
- KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0,
- KC_LSFT, KC_NO, KC_NO, KC_NO, MO(3), KC_NO, KC_NO, KC_COMM, KC_DOT, RSFT_T(KC_SLSH),
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
- ),
- [3] = LAYOUT_split_3x5_2(
- KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, TO(0), TO(5), TO(4),
- KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10,
- KC_F11, KC_NO, KC_NO, QK_BOOT, KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_F12,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
- ),
- [4] = LAYOUT_split_3x5_2(
- KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_BSPC,
- KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O,
- LSFT_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMMA, KC_DOT, RSFT_T(KC_SLSH),
- TD(TD_ESC_LCTL_LALT_WINDOWS_EMOJI), KC_SPC, LT(6, KC_TAB), LT(7, KC_ENT)
- ),
- [5] = LAYOUT_split_3x5_2(
- KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_BSPC,
- KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O,
- KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMMA, KC_DOT, KC_SLSH,
- KC_LCTL, KC_SPC, LT(6, KC_TAB), LT(7, KC_ENT)
- ),
- [6] = LAYOUT_split_3x5_2(
- KC_UNDS, KC_MINS, KC_PLUS, KC_EQL, KC_COLN, KC_GRV, KC_MRWD, KC_MPLY, KC_MFFD, KC_DEL,
- KC_LCBR, KC_LPRN, KC_RPRN, KC_RCBR, KC_PIPE, KC_ESC, KC_LEFT, KC_UP, KC_DOWN, KC_RGHT,
- LSFT_T(KC_LBRC), KC_QUOT, KC_DQUO, KC_RBRC, KC_SCLN, KC_TILDE, KC_VOLD, KC_MUTE, KC_VOLU, RSFT_T(KC_BSLS),
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
- ),
- [7] = LAYOUT_split_3x5_2(
- KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_CAPS, KC_BSPC,
- KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0,
- KC_LSFT, KC_NO, KC_NO, KC_NO, MO(8), KC_NO, KC_NO, KC_COMM, KC_DOT, RSFT_T(KC_SLSH),
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
- ),
- [8] = LAYOUT_split_3x5_2(
- KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, TO(4), TO(5), TO(0),
- KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10,
- KC_F11, KC_NO, KC_NO, QK_BOOT, KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_F12,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
- ),
-}; \ No newline at end of file
diff --git a/keyboards/handwired/scottokeebs/scotto34/keymaps/scotto/rules.mk b/keyboards/handwired/scottokeebs/scotto34/keymaps/scotto/rules.mk
deleted file mode 100644
index e5ddcae8d9..0000000000
--- a/keyboards/handwired/scottokeebs/scotto34/keymaps/scotto/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-TAP_DANCE_ENABLE = yes
diff --git a/keyboards/handwired/scottokeebs/scotto36/keymaps/scotto/config.h b/keyboards/handwired/scottokeebs/scotto36/keymaps/scotto/config.h
deleted file mode 100644
index 1a6512052c..0000000000
--- a/keyboards/handwired/scottokeebs/scotto36/keymaps/scotto/config.h
+++ /dev/null
@@ -1,23 +0,0 @@
-/*
-Copyright 2022 Joe Scotto
-
-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 options
-#define TAPPING_TERM 135
-#define PERMISSIVE_HOLD
-#define TAPPING_TERM_PER_KEY
diff --git a/keyboards/handwired/scottokeebs/scotto36/keymaps/scotto/keymap.c b/keyboards/handwired/scottokeebs/scotto36/keymaps/scotto/keymap.c
deleted file mode 100644
index 293082af66..0000000000
--- a/keyboards/handwired/scottokeebs/scotto36/keymaps/scotto/keymap.c
+++ /dev/null
@@ -1,281 +0,0 @@
-/*
-Copyright 2022 Joe Scotto
-
-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 <stdio.h>
-char wpm_str[10];
-
-// Tap Dance declarations
-enum {
- TD_ESC_SPOTLIGHT_EMOJI,
- TD_ESC_WINDOWS_EMOJI
-};
-
-void td_esc_spotlight_emoji (tap_dance_state_t *state, void *user_data) {
- if (state->count == 1) {
- tap_code(KC_ESC);
- } else if (state->count == 2) {
- tap_code16(G(KC_SPC));
- } else if (state->count == 3) {
- tap_code16(C(G(KC_SPC)));
- }
-}
-
-void td_esc_windows_emoji (tap_dance_state_t *state, void *user_data) {
- if (state->count == 1) {
- tap_code(KC_ESC);
- } else if (state->count == 2) {
- tap_code(KC_LGUI);
- } else if (state->count == 3) {
- tap_code16(G(KC_DOT));
- }
-};
-
- // Tap Dance definitions
-tap_dance_action_t tap_dance_actions[] = {
- [TD_ESC_SPOTLIGHT_EMOJI] = ACTION_TAP_DANCE_FN(td_esc_spotlight_emoji),
- [TD_ESC_WINDOWS_EMOJI] = ACTION_TAP_DANCE_FN(td_esc_windows_emoji)
-};
-
-uint16_t get_tapping_term(uint16_t keycode, keyrecord_t *record) {
- switch (keycode) {
- case TD(TD_ESC_SPOTLIGHT_EMOJI) :
- case TD(TD_ESC_WINDOWS_EMOJI) :
- case LGUI_T(KC_SPC) :
- case LT(1, KC_TAB) :
- case LT(2, KC_ENT) :
- return 200;
- default:
- return TAPPING_TERM;
- }
-};
-
-// Layer Names
-enum layer_names {
- _MAC_DEFAULT,
- _MAC_CODE,
- _MAC_NUM,
- _MAC_FUNC,
- _WIN_DEFAULT,
- _WIN_CODE,
- _WIN_NUM,
- _WIN_FUNC
-};
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [0] = LAYOUT_split_3x5_3(
- KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_BSPC,
- KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O,
- LSFT_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMMA, KC_DOT, RSFT_T(KC_SLSH),
- KC_LCTL, KC_LALT, LGUI_T(KC_SPC), LT(1, KC_TAB), LT(2, KC_ENT), TD(TD_ESC_SPOTLIGHT_EMOJI)
- ),
- [1] = LAYOUT_split_3x5_3(
- KC_UNDS, KC_MINS, KC_PLUS, KC_EQL, KC_COLN, KC_GRV, KC_MRWD, KC_MPLY, KC_MFFD, KC_DEL,
- KC_LCBR, KC_LPRN, KC_RPRN, KC_RCBR, KC_PIPE, KC_ESC, KC_LEFT, KC_UP, KC_DOWN, KC_RGHT,
- LSFT_T(KC_LBRC), KC_QUOT, KC_DQUO, KC_RBRC, KC_SCLN, KC_TILDE, KC_VOLD, KC_MUTE, KC_VOLU, RSFT_T(KC_BSLS),
- KC_LCTL, KC_LALT, LGUI_T(KC_SPC), KC_TRNS, KC_TRNS, TD(TD_ESC_SPOTLIGHT_EMOJI)
- ),
- [2] = LAYOUT_split_3x5_3(
- KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_CAPS, KC_BSPC,
- KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0,
- KC_LSFT, KC_NO, KC_NO, KC_NO, MO(3), KC_NO, KC_NO, KC_COMM, KC_DOT, RSFT_T(KC_SLSH),
- KC_LCTL, KC_LALT, LGUI_T(KC_SPC), KC_TRNS, KC_TRNS, TD(TD_ESC_SPOTLIGHT_EMOJI)
- ),
- [3] = LAYOUT_split_3x5_3(
- KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, TO(4),
- KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10,
- KC_F11, KC_NO, KC_NO, QK_BOOT, KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_F12,
- KC_LCTL, KC_LALT, LGUI_T(KC_SPC), KC_TRNS, KC_TRNS, TD(TD_ESC_SPOTLIGHT_EMOJI)
- ),
- [4] = LAYOUT_split_3x5_3(
- KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_BSPC,
- KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O,
- LSFT_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMMA, KC_DOT, RSFT_T(KC_SLSH),
- KC_LALT, KC_LCTL, KC_SPC, LT(5, KC_TAB), LT(6, KC_ENT), TD(TD_ESC_WINDOWS_EMOJI)
- ),
- [5] = LAYOUT_split_3x5_3(
- KC_UNDS, KC_MINS, KC_PLUS, KC_EQL, KC_COLN, KC_GRV, KC_MRWD, KC_MPLY, KC_MFFD, KC_DEL,
- KC_LCBR, KC_LPRN, KC_RPRN, KC_RCBR, KC_PIPE, KC_ESC, KC_LEFT, KC_UP, KC_DOWN, KC_RGHT,
- LSFT_T(KC_LBRC), KC_QUOT, KC_DQUO, KC_RBRC, KC_SCLN, KC_TILDE,KC_VOLD, KC_MUTE, KC_VOLU, RSFT_T(KC_BSLS),
- KC_LALT, KC_LCTL, KC_SPC, KC_TRNS, KC_TRNS, TD(TD_ESC_WINDOWS_EMOJI)
- ),
- [6] = LAYOUT_split_3x5_3(
- KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_CAPS, KC_BSPC,
- KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0,
- KC_LSFT, KC_NO, KC_NO, KC_NO, MO(7), KC_NO, KC_NO, KC_COMM, KC_DOT, RSFT_T(KC_SLSH),
- KC_LALT, KC_LCTL, KC_SPC, KC_TRNS, KC_TRNS, TD(TD_ESC_WINDOWS_EMOJI)
- ),
- [7] = LAYOUT_split_3x5_3(
- KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, TO(0),
- KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10,
- KC_F11, KC_NO, KC_NO, QK_BOOT, KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_F12,
- KC_LALT, KC_LCTL, KC_SPC, KC_TRNS, KC_TRNS, TD(TD_ESC_WINDOWS_EMOJI)
- )
-};
-
-// OLED
-#ifdef OLED_ENABLE
-// WPM responsiveness
-#define IDLE_FRAMES 5
-#define IDLE_SPEED 20 // Speed at which animation goes into idle
-#define TAP_FRAMES 2
-#define TAP_SPEED 40 // WPM to trigger Bongo
-#define ANIM_FRAME_DURATION 200 // Frame MS
-#define ANIM_SIZE 636 // Number of bytes in array, max 1024
-
-uint32_t anim_timer = 0;
-uint32_t anim_sleep = 0;
-uint8_t current_idle_frame = 0;
-uint8_t current_tap_frame = 0;
-
-static void render_animation(void) {
- static const char PROGMEM idle[IDLE_FRAMES][ANIM_SIZE] = {{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x20, 0x18, 0x04, 0x02, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x20, 0x40, 0x40, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xc1, 0x01, 0x01, 0x02, 0x02, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x40, 0x80, 0x80, 0x40, 0x00, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x04, 0x04, 0x08, 0x08, 0x10, 0x20, 0x40, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02, 0x02, 0x02, 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, 0xe0, 0x18, 0x06, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x83, 0x83, 0x40, 0x40, 0x40, 0x40, 0x20, 0x21, 0x21, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x04, 0x08, 0x30, 0x40, 0x80, 0x80, 0x00, 0x00, 0x01, 0x86, 0x98, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x0f, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x04, 0x08, 0x10, 0x10, 0x20, 0x20, 0x40, 0x40, 0x41, 0x42, 0x24, 0x18, 0x00, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
- {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0x40, 0x40, 0x40, 0x20, 0x10, 0x08, 0x04, 0x02, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xc1, 0x01, 0x01, 0x02, 0x02, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x80, 0x00, 0x00, 0x60, 0x60, 0x00, 0x00, 0x01, 0x02, 0x04, 0x04, 0x08, 0x08, 0x10, 0x10, 0x20, 0x20, 0x40, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02, 0x02, 0x02, 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, 0xc0, 0x30, 0x0c, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x86, 0x86, 0x40, 0x40, 0x40, 0x40, 0x21, 0x22, 0x22, 0x20, 0x11, 0x11, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x04, 0x08, 0x30, 0x40, 0x80, 0x80, 0x00, 0x00, 0x01, 0x86, 0x98, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x0f, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x04, 0x08, 0x10, 0x10, 0x20, 0x20, 0x40, 0x40, 0x41, 0x42, 0x24, 0x18, 0x00, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
- {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0x80, 0x40, 0x40, 0x20, 0x10, 0x08, 0x04, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x82, 0x02, 0x02, 0x04, 0x04, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x02, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x80, 0x00, 0x00, 0x60, 0x60, 0x00, 0x01, 0x01, 0x02, 0x04, 0x04, 0x08, 0x08, 0x10, 0x10, 0x20, 0x20, 0x40, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02, 0x02, 0x02, 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, 0xc0, 0x30, 0x0c, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x86, 0x86, 0x40, 0x40, 0x40, 0x40, 0x21, 0x22, 0x22, 0x20, 0x11, 0x11, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x04, 0x08, 0x30, 0x40, 0x80, 0x80, 0x00, 0x00, 0x01, 0x86, 0x98, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x0f, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x04, 0x08, 0x10, 0x10, 0x20, 0x20, 0x40, 0x40, 0x41, 0x42, 0x24, 0x18, 0x00, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
- {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0x80, 0x40, 0x40, 0x20, 0x10, 0x08, 0x04, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x34, 0xc4, 0x04, 0x04, 0x04, 0x08, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x02, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x40, 0x80, 0x80, 0x40, 0x00, 0x00, 0x30, 0x30, 0x00, 0x01, 0x01, 0x02, 0x02, 0x04, 0x04, 0x04, 0x08, 0x08, 0x10, 0x20, 0x40, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02, 0x02, 0x02, 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, 0xe0, 0x18, 0x06, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x83, 0x83, 0x40, 0x40, 0x40, 0x40, 0x20, 0x21, 0x21, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x04, 0x08, 0x30, 0x40, 0x80, 0x80, 0x00, 0x00, 0x01, 0x86, 0x98, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x0f, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x04, 0x08, 0x10, 0x10, 0x20, 0x20, 0x40, 0x40, 0x41, 0x42, 0x24, 0x18, 0x00, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
- {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x20, 0x18, 0x04, 0x02, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x20, 0x40, 0x40, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x0d, 0x31, 0xc1, 0x01, 0x01, 0x01, 0x02, 0x02, 0x02, 0x04, 0x04, 0x02, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x40, 0x80, 0x80, 0x40, 0x00, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x04, 0x04, 0x08, 0x08, 0x10, 0x20, 0x40, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02, 0x02, 0x02, 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, 0xe0, 0x18, 0x06, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x83, 0x83, 0x40, 0x40, 0x40, 0x40, 0x20, 0x21, 0x21, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x04, 0x08, 0x30, 0x40, 0x80, 0x80, 0x00, 0x00, 0x01, 0x86, 0x98, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x0f, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x04, 0x08, 0x10, 0x10, 0x20, 0x20, 0x40, 0x40, 0x41, 0x42, 0x24, 0x18, 0x00, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}};
- static const char PROGMEM prep[][ANIM_SIZE] = {{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0x40, 0x40, 0x20, 0x20, 0x10, 0x08, 0x04, 0x02, 0x04, 0x08, 0x10, 0x10, 0x20, 0x20, 0x40, 0x40, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xc1, 0x01, 0x01, 0x02, 0x02, 0x04, 0x84, 0x44, 0x44, 0x42, 0x82, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x40, 0x80, 0x80, 0x40, 0x00, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x64, 0x18, 0x04, 0x12, 0xc2, 0xca, 0x24, 0x88, 0xf0, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02, 0x02, 0x02, 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, 0xe0, 0x18, 0x06, 0x01, 0x00, 0x00, 0x0c, 0x03, 0x00, 0x02, 0x18, 0x19, 0x00, 0x05, 0xfe, 0x80, 0x83, 0x83, 0x40, 0x40, 0x40, 0x40, 0x20, 0x21, 0x21, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02, 0x02, 0x02, 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, 0x00, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x0f, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02, 0x02, 0x02, 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, 0x00}};
- static const char PROGMEM tap[TAP_FRAMES][ANIM_SIZE] = {
- {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0x40, 0x40, 0x20, 0x20, 0x10, 0x08, 0x04, 0x02, 0x04, 0x08, 0x10, 0x10, 0x20, 0x20, 0x40, 0x40, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xc1, 0x01, 0x01, 0x02, 0x02, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x40, 0x80, 0x80, 0x40, 0x00, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x64, 0x18, 0x04, 0x12, 0xc2, 0xca, 0x24, 0x88, 0xf0, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02, 0x02, 0x02, 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, 0xe0, 0x18, 0x06, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x83, 0x83, 0x40, 0x40, 0x40, 0x40, 0x20, 0x21, 0x21, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02, 0x02, 0x02, 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, 0x00, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x0f, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x04, 0x08, 0x10, 0x10, 0x20, 0x20, 0x40, 0x40, 0x41, 0x42, 0x24, 0x98, 0xc0, 0x88, 0x88, 0x8c, 0x9c, 0x1c, 0x1e, 0x0e, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
- {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0x40, 0x40, 0x20, 0x20, 0x10, 0x08, 0x04, 0x02, 0x04, 0x08, 0x10, 0x10, 0x20, 0x20, 0x40, 0x40, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xc1, 0x01, 0x01, 0x02, 0x02, 0x04, 0x84, 0x44, 0x44, 0x42, 0x82, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x40, 0x80, 0x80, 0x40, 0x00, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x04, 0x04, 0x08, 0x08, 0x10, 0x20, 0x40, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02, 0x02, 0x02, 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, 0xe0, 0x18, 0x06, 0x01, 0x00, 0x00, 0x0c, 0x03, 0x00, 0x02, 0x18, 0x19, 0x00, 0x05, 0xfe, 0x80, 0x83, 0x83, 0x40, 0x40, 0x40, 0x40, 0x20, 0x21, 0x21, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x04, 0x08, 0x30, 0x40, 0x80, 0x80, 0x00, 0x00, 0x01, 0x86, 0x98, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x0f, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02, 0x02, 0x02, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x0f, 0x0f, 0x07, 0x03, 0x03, 0x61, 0xf0, 0xf8, 0xfc, 0x60, 0x01, 0x01, 0x01, 0x3c, 0x78, 0xf8, 0xf0, 0x70, 0x00, 0x00, 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 animation_phase(void) {
- if (get_current_wpm() <= IDLE_SPEED) {
- current_idle_frame = (current_idle_frame + 1) % IDLE_FRAMES;
- oled_write_raw_P(idle[abs((IDLE_FRAMES - 1) - current_idle_frame)], ANIM_SIZE);
- }
-
- if (get_current_wpm() > IDLE_SPEED && get_current_wpm() < TAP_SPEED) {
- oled_write_raw_P(prep[0], ANIM_SIZE);
- }
-
- if (get_current_wpm() >= TAP_SPEED) {
- current_tap_frame = (current_tap_frame + 1) % TAP_FRAMES;
- oled_write_raw_P(tap[abs((TAP_FRAMES - 1) - current_tap_frame)], ANIM_SIZE);
- }
- }
- if (get_current_wpm() != 000) {
- oled_on(); // Enables OLED on any alpha keypress
-
- if (timer_elapsed32(anim_timer) > ANIM_FRAME_DURATION) {
- anim_timer = timer_read32();
- animation_phase();
- }
-
- anim_sleep = timer_read32();
- } else {
- if (timer_elapsed32(anim_sleep) > OLED_TIMEOUT) {
- oled_off();
- } else {
- if (timer_elapsed32(anim_timer) > ANIM_FRAME_DURATION) {
- anim_timer = timer_read32();
- animation_phase();
- }
- }
- }
-}
-
-// Draw to OLED
-bool oled_task_user(void) {
- // Render Bongo Cat
- render_animation();
-
- // WPM text
- oled_set_cursor(0, 0);
- sprintf(wpm_str, "%03d", get_current_wpm()); // %03d defines digits to display
- oled_write(wpm_str, false);
-
- // Layer text
- oled_set_cursor(0, 1);
- switch (get_highest_layer(layer_state)) {
- case _MAC_DEFAULT :
- oled_write_P(PSTR("MAC"), false);
- oled_set_cursor(0, 2);
- oled_write_P(PSTR("MAIN"), false);
- break;
- case _MAC_CODE :
- oled_write_P(PSTR("MAC"), false);
- oled_set_cursor(0, 2);
- oled_write_P(PSTR("CODE"), false);
- break;
- case _MAC_NUM :
- oled_write_P(PSTR("MAC"), false);
- oled_set_cursor(0, 2);
- oled_write_P(PSTR("NUM"), false);
- break;
- case _MAC_FUNC :
- oled_write_P(PSTR("MAC"), false);
- oled_set_cursor(0, 2);
- oled_write_P(PSTR("FUNC"), false);
- break;
- case _WIN_DEFAULT :
- oled_write_P(PSTR("WIN"), false);
- oled_set_cursor(0, 2);
- oled_write_P(PSTR("MAIN"), false);
- break;
- case _WIN_CODE :
- oled_write_P(PSTR("WIN"), false);
- oled_set_cursor(0, 2);
- oled_write_P(PSTR("CODE"), false);
- break;
- case _WIN_NUM :
- oled_write_P(PSTR("WIN"), false);
- oled_set_cursor(0, 2);
- oled_write_P(PSTR("NUM"), false);
- break;
- case _WIN_FUNC :
- oled_write_P(PSTR("WIN"), false);
- oled_set_cursor(0, 2);
- oled_write_P(PSTR("FUNC"), false);
- break;
- }
-
- // Caps lock text
- led_t led_state = host_keyboard_led_state();
- oled_set_cursor(0, 3);
- oled_write_P(led_state.caps_lock ? PSTR("CAPS") : PSTR(""), false);
-
- return false;
-}
-#endif
-
diff --git a/keyboards/handwired/scottokeebs/scotto36/keymaps/scotto/rules.mk b/keyboards/handwired/scottokeebs/scotto36/keymaps/scotto/rules.mk
deleted file mode 100644
index 6e339da6c6..0000000000
--- a/keyboards/handwired/scottokeebs/scotto36/keymaps/scotto/rules.mk
+++ /dev/null
@@ -1,4 +0,0 @@
-OLED_ENABLE = yes
-WPM_ENABLE = yes
-LTO_ENABLE = yes
-TAP_DANCE_ENABLE = yes \ No newline at end of file
diff --git a/keyboards/handwired/scottokeebs/scotto40/keymaps/scotto/config.h b/keyboards/handwired/scottokeebs/scotto40/keymaps/scotto/config.h
deleted file mode 100644
index 1a6512052c..0000000000
--- a/keyboards/handwired/scottokeebs/scotto40/keymaps/scotto/config.h
+++ /dev/null
@@ -1,23 +0,0 @@
-/*
-Copyright 2022 Joe Scotto
-
-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 options
-#define TAPPING_TERM 135
-#define PERMISSIVE_HOLD
-#define TAPPING_TERM_PER_KEY
diff --git a/keyboards/handwired/scottokeebs/scotto40/keymaps/scotto/keymap.c b/keyboards/handwired/scottokeebs/scotto40/keymaps/scotto/keymap.c
deleted file mode 100644
index ba5f7bc7a8..0000000000
--- a/keyboards/handwired/scottokeebs/scotto40/keymaps/scotto/keymap.c
+++ /dev/null
@@ -1,114 +0,0 @@
-/*
-Copyright 2022 Joe Scotto
-
-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
-
-// Tap Dance declarations
-enum {
- TD_ESC_SPOTLIGHT_EMOJI,
- TD_ESC_WINDOWS_EMOJI
-};
-
-void td_esc_spotlight_emoji (tap_dance_state_t *state, void *user_data) {
- if (state->count == 1) {
- tap_code(KC_ESC);
- } else if (state->count == 2) {
- tap_code16(G(KC_SPC));
- } else if (state->count == 3) {
- tap_code16(C(G(KC_SPC)));
- }
-}
-
-void td_esc_windows_emoji (tap_dance_state_t *state, void *user_data) {
- if (state->count == 1) {
- tap_code(KC_ESC);
- } else if (state->count == 2) {
- tap_code(KC_LGUI);
- } else if (state->count == 3) {
- tap_code16(G(KC_DOT));
- }
-};
-
- // Tap Dance definitions
-tap_dance_action_t tap_dance_actions[] = {
- [TD_ESC_SPOTLIGHT_EMOJI] = ACTION_TAP_DANCE_FN(td_esc_spotlight_emoji),
- [TD_ESC_WINDOWS_EMOJI] = ACTION_TAP_DANCE_FN(td_esc_windows_emoji)
-};
-
-uint16_t get_tapping_term(uint16_t keycode, keyrecord_t *record) {
- switch (keycode) {
- case TD(TD_ESC_SPOTLIGHT_EMOJI) :
- case TD(TD_ESC_WINDOWS_EMOJI) :
- case LGUI_T(KC_SPC) :
- case LT(1, KC_TAB) :
- case LT(2, KC_ENT) :
- return 200;
- default:
- return TAPPING_TERM;
- }
-};
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [0] = LAYOUT_ortho_3x10_7(
- KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_BSPC,
- KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O,
- LSFT_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMMA, KC_DOT, RSFT_T(KC_SLSH),
- KC_ESC, KC_LCTL, KC_LALT, LGUI_T(KC_SPC), LT(1, KC_TAB), LT(2, KC_ENT), TD(TD_ESC_SPOTLIGHT_EMOJI)
- ),
- [1] = LAYOUT_ortho_3x10_7(
- KC_UNDS, KC_MINS, KC_PLUS, KC_EQL, KC_COLN, KC_GRV, KC_MRWD, KC_MPLY, KC_MFFD, KC_DEL,
- KC_LCBR, KC_LPRN, KC_RPRN, KC_RCBR, KC_PIPE, KC_ESC, KC_LEFT, KC_UP, KC_DOWN, KC_RGHT,
- LSFT_T(KC_LBRC), KC_QUOT, KC_DQUO, KC_RBRC, KC_SCLN, KC_TILDE, KC_VOLD, KC_MUTE, KC_VOLU, RSFT_T(KC_BSLS),
- KC_ESC, KC_LCTL, KC_LALT, LGUI_T(KC_SPC), KC_TRNS, KC_TRNS, TD(TD_ESC_SPOTLIGHT_EMOJI)
- ),
- [2] = LAYOUT_ortho_3x10_7(
- KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_CAPS, KC_BSPC,
- KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0,
- KC_LSFT, KC_NO, KC_NO, KC_NO, MO(3), KC_NO, KC_NO, KC_COMM, KC_DOT, RSFT_T(KC_SLSH),
- KC_ESC, KC_LCTL, KC_LALT, LGUI_T(KC_SPC), KC_TRNS, KC_TRNS, TD(TD_ESC_SPOTLIGHT_EMOJI)
- ),
- [3] = LAYOUT_ortho_3x10_7(
- KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, TO(4),
- KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10,
- KC_F11, KC_NO, KC_NO, QK_BOOT, KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_F12,
- KC_ESC, KC_LCTL, KC_LALT, LGUI_T(KC_SPC), KC_TRNS, KC_TRNS, TD(TD_ESC_SPOTLIGHT_EMOJI)
- ),
- [4] = LAYOUT_ortho_3x10_7(
- KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_BSPC,
- KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O,
- LSFT_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMMA, KC_DOT, RSFT_T(KC_SLSH),
- KC_ESC, KC_LALT, KC_LCTL, KC_SPC, LT(5, KC_TAB), LT(6, KC_ENT), TD(TD_ESC_WINDOWS_EMOJI)
- ),
- [5] = LAYOUT_ortho_3x10_7(
- KC_UNDS, KC_MINS, KC_PLUS, KC_EQL, KC_COLN, KC_GRV, KC_MRWD, KC_MPLY, KC_MFFD, KC_DEL,
- KC_LCBR, KC_LPRN, KC_RPRN, KC_RCBR, KC_PIPE, KC_ESC, KC_LEFT, KC_UP, KC_DOWN, KC_RGHT,
- LSFT_T(KC_LBRC), KC_QUOT, KC_DQUO, KC_RBRC, KC_SCLN, KC_TILDE, KC_VOLD, KC_MUTE, KC_VOLU, RSFT_T(KC_BSLS),
- KC_ESC, KC_LALT, KC_LCTL, KC_SPC, LT(5, KC_TAB), LT(6, KC_ENT), TD(TD_ESC_WINDOWS_EMOJI)
- ),
- [6] = LAYOUT_ortho_3x10_7(
- KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_CAPS, KC_BSPC,
- KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0,
- KC_LSFT, KC_NO, KC_NO, KC_NO, MO(7), KC_NO, KC_NO, KC_COMM, KC_DOT, RSFT_T(KC_SLSH),
- KC_ESC, KC_LALT, KC_LCTL, KC_SPC, LT(5, KC_TAB), LT(6, KC_ENT), TD(TD_ESC_WINDOWS_EMOJI)
- ),
- [7] = LAYOUT_ortho_3x10_7(
- KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, TO(0),
- KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10,
- KC_F11, KC_NO, KC_NO, QK_BOOT, KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_F12,
- KC_ESC, KC_LALT, KC_LCTL, KC_SPC, LT(5, KC_TAB), LT(6, KC_ENT), TD(TD_ESC_WINDOWS_EMOJI)
- )
-};
diff --git a/keyboards/handwired/scottokeebs/scotto40/keymaps/scotto/rules.mk b/keyboards/handwired/scottokeebs/scotto40/keymaps/scotto/rules.mk
deleted file mode 100644
index e5ddcae8d9..0000000000
--- a/keyboards/handwired/scottokeebs/scotto40/keymaps/scotto/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-TAP_DANCE_ENABLE = yes
diff --git a/keyboards/handwired/scottokeebs/scottoalp/keymaps/scotto/config.h b/keyboards/handwired/scottokeebs/scottoalp/keymaps/scotto/config.h
deleted file mode 100644
index 1a6512052c..0000000000
--- a/keyboards/handwired/scottokeebs/scottoalp/keymaps/scotto/config.h
+++ /dev/null
@@ -1,23 +0,0 @@
-/*
-Copyright 2022 Joe Scotto
-
-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 options
-#define TAPPING_TERM 135
-#define PERMISSIVE_HOLD
-#define TAPPING_TERM_PER_KEY
diff --git a/keyboards/handwired/scottokeebs/scottoalp/keymaps/scotto/keymap.c b/keyboards/handwired/scottokeebs/scottoalp/keymaps/scotto/keymap.c
deleted file mode 100644
index dfe688267e..0000000000
--- a/keyboards/handwired/scottokeebs/scottoalp/keymaps/scotto/keymap.c
+++ /dev/null
@@ -1,174 +0,0 @@
-/*
-Copyright 2022 Joe Scotto
-
-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
-
-// Tap dance declarations
-enum {
- TD_LCTL_ESC_SPOTLIGHT_EMOJI,
- TD_LALT_ESC_WINDOWS_EMOJI
-};
-
-uint16_t get_tapping_term(uint16_t keycode, keyrecord_t *record) {
- switch (keycode) {
- case TD(TD_LCTL_ESC_SPOTLIGHT_EMOJI) :
- case TD(TD_LALT_ESC_WINDOWS_EMOJI) :
- case LGUI_T(KC_SPC) :
- case LT(1, KC_TAB) :
- case LT(2, KC_ENT) :
- return 200;
- default:
- return TAPPING_TERM;
- }
-};
-
-// Begin quad TD
-typedef enum {
- TD_NONE,
- TD_UNKNOWN,
- TD_SINGLE_HOLD,
- TD_SINGLE_TAP,
- TD_DOUBLE_TAP,
- TD_TRIPLE_TAP
-} td_state_t;
-
-typedef struct {
- bool is_press_action;
- td_state_t state;
-} td_tap_t;
-
-// Create an instance of 'td_tap_t' for the 'x' tap dance.
-static td_tap_t xtap_state = {
- .is_press_action = true,
- .state = TD_NONE
-};
-
-td_state_t cur_dance(tap_dance_state_t *state) {
- if (state->count == 1) {
- if (state->interrupted || !state->pressed) {
- return TD_SINGLE_TAP;
- } else {
- return TD_SINGLE_HOLD;
- }
- } else if (state->count == 2) {
- return TD_DOUBLE_TAP;
- } else if (state->count == 3) {
- return TD_TRIPLE_TAP;
- }
-
- return TD_UNKNOWN;
-}
-
-void td_lctl_esc_spotlight_emoji_finished(tap_dance_state_t *state, void *user_data) {
- xtap_state.state = cur_dance(state);
- switch (xtap_state.state) {
- case TD_SINGLE_TAP: register_code(KC_ESC); break;
- case TD_SINGLE_HOLD: register_code(KC_LCTL); break;
- case TD_DOUBLE_TAP: tap_code16(G(KC_SPC)); break;
- case TD_TRIPLE_TAP: tap_code16(C(G(KC_SPC))); break;
- default: break;
- }
-}
-
-void td_lctl_esc_spotlight_emoji_reset(tap_dance_state_t *state, void *user_data) {
- switch (xtap_state.state) {
- case TD_SINGLE_TAP: unregister_code(KC_ESC); break;
- case TD_SINGLE_HOLD: unregister_code(KC_LCTL); break;
- default: break;
- }
- xtap_state.state = TD_NONE;
-}
-
-void td_lalt_esc_windowr_emoji_finished(tap_dance_state_t *state, void *user_data) {
- xtap_state.state = cur_dance(state);
- switch (xtap_state.state) {
- case TD_SINGLE_TAP: register_code(KC_ESC); break;
- case TD_SINGLE_HOLD: register_code(KC_LALT); break;
- case TD_DOUBLE_TAP: tap_code(KC_LGUI); break;
- case TD_TRIPLE_TAP: tap_code16(G(KC_DOT)); break;
- default: break;
- }
-}
-
-void td_lalt_esc_windowr_emoji_reset(tap_dance_state_t *state, void *user_data) {
- switch (xtap_state.state) {
- case TD_SINGLE_TAP: unregister_code(KC_ESC); break;
- case TD_SINGLE_HOLD: unregister_code(KC_LALT); break;
- default: break;
- }
- xtap_state.state = TD_NONE;
-}
-
- // Tap Dance definitions
-tap_dance_action_t tap_dance_actions[] = {
- [TD_LCTL_ESC_SPOTLIGHT_EMOJI] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, td_lctl_esc_spotlight_emoji_finished, td_lctl_esc_spotlight_emoji_reset),
- [TD_LALT_ESC_WINDOWS_EMOJI] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, td_lalt_esc_windowr_emoji_finished, td_lalt_esc_windowr_emoji_reset),
-};
-// For the x tap dance. Put it here so it can be used in any keymap
-void x_finished(tap_dance_state_t *state, void *user_data);
-void x_reset(tap_dance_state_t *state, void *user_data);
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [0] = LAYOUT_ortho_3x10_5(
- KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_BSPC,
- KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O,
- LSFT_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMMA, KC_DOT, RSFT_T(KC_SLSH),
- TD(TD_LCTL_ESC_SPOTLIGHT_EMOJI), KC_LALT, LGUI_T(KC_SPC), LT(1, KC_TAB), LT(2, KC_ENT)
- ),
- [1] = LAYOUT_ortho_3x10_5(
- KC_UNDS, KC_MINS, KC_PLUS, KC_EQL, KC_COLN, KC_GRV, KC_MRWD, KC_MPLY, KC_MFFD, KC_DEL,
- KC_LCBR, KC_LPRN, KC_RPRN, KC_RCBR, KC_PIPE, KC_ESC, KC_LEFT, KC_UP, KC_DOWN, KC_RGHT,
- LSFT_T(KC_LBRC), KC_QUOT, KC_DQUO, KC_RBRC, KC_SCLN, KC_TILDE, KC_VOLD, KC_MUTE, KC_VOLU, RSFT_T(KC_BSLS),
- TD(TD_LCTL_ESC_SPOTLIGHT_EMOJI), KC_LALT, LGUI_T(KC_SPC), KC_TRNS, KC_TRNS
- ),
- [2] = LAYOUT_ortho_3x10_5(
- KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_CAPS, KC_BSPC,
- KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0,
- KC_LSFT, KC_NO, KC_NO, KC_NO, MO(3), KC_NO, KC_NO, KC_COMM, KC_DOT, RSFT_T(KC_SLSH),
- TD(TD_LCTL_ESC_SPOTLIGHT_EMOJI), KC_LALT, LGUI_T(KC_SPC), KC_TRNS, KC_TRNS
- ),
- [3] = LAYOUT_ortho_3x10_5(
- KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, TO(4),
- KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10,
- KC_F11, KC_NO, KC_NO, QK_BOOT, KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_F12,
- TD(TD_LCTL_ESC_SPOTLIGHT_EMOJI), KC_LALT, LGUI_T(KC_SPC), KC_TRNS, KC_TRNS
- ),
- [4] = LAYOUT_ortho_3x10_5(
- KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_BSPC,
- KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O,
- LSFT_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMMA, KC_DOT, RSFT_T(KC_SLSH),
- TD(TD_LALT_ESC_WINDOWS_EMOJI), KC_LCTL, KC_SPC, LT(5, KC_TAB), LT(6, KC_ENT)
- ),
- [5] = LAYOUT_ortho_3x10_5(
- KC_UNDS, KC_MINS, KC_PLUS, KC_EQL, KC_COLN, KC_GRV, KC_MRWD, KC_MPLY, KC_MFFD, KC_DEL,
- KC_LCBR, KC_LPRN, KC_RPRN, KC_RCBR, KC_PIPE, KC_ESC, KC_LEFT, KC_UP, KC_DOWN, KC_RGHT,
- LSFT_T(KC_LBRC), KC_QUOT, KC_DQUO, KC_RBRC, KC_SCLN, KC_TILDE, KC_VOLD, KC_MUTE, KC_VOLU, RSFT_T(KC_BSLS),
- TD(TD_LALT_ESC_WINDOWS_EMOJI), KC_LCTL, KC_SPC, LT(5, KC_TAB), LT(6, KC_ENT)
- ),
- [6] = LAYOUT_ortho_3x10_5(
- KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_CAPS, KC_BSPC,
- KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0,
- KC_LSFT, KC_NO, KC_NO, KC_NO, MO(7), KC_NO, KC_NO, KC_COMM, KC_DOT, RSFT_T(KC_SLSH),
- TD(TD_LALT_ESC_WINDOWS_EMOJI), KC_LCTL, KC_SPC, LT(5, KC_TAB), LT(6, KC_ENT)
- ),
- [7] = LAYOUT_ortho_3x10_5(
- KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, TO(0),
- KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10,
- KC_F11, KC_NO, KC_NO, QK_BOOT, KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_F12,
- TD(TD_LALT_ESC_WINDOWS_EMOJI), KC_LCTL, KC_SPC, LT(5, KC_TAB), LT(6, KC_ENT)
- )
-}; \ No newline at end of file
diff --git a/keyboards/handwired/scottokeebs/scottoalp/keymaps/scotto/rules.mk b/keyboards/handwired/scottokeebs/scottoalp/keymaps/scotto/rules.mk
deleted file mode 100644
index e5ddcae8d9..0000000000
--- a/keyboards/handwired/scottokeebs/scottoalp/keymaps/scotto/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-TAP_DANCE_ENABLE = yes
diff --git a/keyboards/handwired/scottokeebs/scottocmd/keymaps/scotto/config.h b/keyboards/handwired/scottokeebs/scottocmd/keymaps/scotto/config.h
deleted file mode 100644
index 1a6512052c..0000000000
--- a/keyboards/handwired/scottokeebs/scottocmd/keymaps/scotto/config.h
+++ /dev/null
@@ -1,23 +0,0 @@
-/*
-Copyright 2022 Joe Scotto
-
-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 options
-#define TAPPING_TERM 135
-#define PERMISSIVE_HOLD
-#define TAPPING_TERM_PER_KEY
diff --git a/keyboards/handwired/scottokeebs/scottocmd/keymaps/scotto/keymap.c b/keyboards/handwired/scottokeebs/scottocmd/keymaps/scotto/keymap.c
deleted file mode 100644
index c196c3b1e9..0000000000
--- a/keyboards/handwired/scottokeebs/scottocmd/keymaps/scotto/keymap.c
+++ /dev/null
@@ -1,511 +0,0 @@
-/*
-Copyright 2022 Joe Scotto
-
-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 <stdio.h>
-char wpm_str[10];
-
-// Tap Dance declarations
-enum {
- TD_ESC_SPOTLIGHT_EMOJI,
- TD_ESC_WINDOWS_EMOJI
-};
-
-void td_esc_spotlight_emoji (tap_dance_state_t *state, void *user_data) {
- if (state->count == 1) {
- tap_code(KC_ESC);
- } else if (state->count == 2) {
- tap_code16(G(KC_SPC));
- } else if (state->count == 3) {
- tap_code16(C(G(KC_SPC)));
- }
-}
-
-void td_esc_windows_emoji (tap_dance_state_t *state, void *user_data) {
- if (state->count == 1) {
- tap_code(KC_ESC);
- } else if (state->count == 2) {
- tap_code(KC_LGUI);
- } else if (state->count == 3) {
- tap_code16(G(KC_DOT));
- }
-};
-
- // Tap Dance definitions
-tap_dance_action_t tap_dance_actions[] = {
- [TD_ESC_SPOTLIGHT_EMOJI] = ACTION_TAP_DANCE_FN(td_esc_spotlight_emoji),
- [TD_ESC_WINDOWS_EMOJI] = ACTION_TAP_DANCE_FN(td_esc_windows_emoji)
-};
-
-uint16_t get_tapping_term(uint16_t keycode, keyrecord_t *record) {
- switch (keycode) {
- case TD(TD_ESC_SPOTLIGHT_EMOJI) :
- case TD(TD_ESC_WINDOWS_EMOJI) :
- case LGUI_T(KC_SPC) :
- case LT(1, KC_TAB) :
- case LT(2, KC_ENT) :
- return 200;
- default:
- return TAPPING_TERM;
- }
-};
-
-// Layer Names
-enum layer_names {
- _MAC_DEFAULT,
- _MAC_CODE,
- _MAC_NUM,
- _MAC_FUNC,
- _WIN_DEFAULT,
- _WIN_CODE,
- _WIN_NUM,
- _WIN_FUNC
-};
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [0] = LAYOUT_ortho_4_3x10_4(
- KC_LCTL, KC_2, KC_3, TD(TD_ESC_SPOTLIGHT_EMOJI),
- KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_BSPC,
- KC_ENT, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O,
- LSFT_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMMA, KC_DOT, RSFT_T(KC_SLSH),
- KC_LALT, LGUI_T(KC_SPC), LT(1, KC_TAB), LT(2, KC_ENT)
- ),
- [1] = LAYOUT_ortho_4_3x10_4(
- KC_LCTL, KC_2, KC_3, TD(TD_ESC_SPOTLIGHT_EMOJI),
- KC_TAB, KC_UNDS, KC_MINS, KC_PLUS, KC_EQL, KC_COLN, KC_GRV, KC_MRWD, KC_MPLY, KC_MFFD, KC_DEL,
- KC_ENT, KC_LCBR, KC_LPRN, KC_RPRN, KC_RCBR, KC_PIPE, KC_ESC, KC_LEFT, KC_UP, KC_DOWN, KC_RGHT,
- LSFT_T(KC_LBRC), KC_QUOT, KC_DQUO, KC_RBRC, KC_SCLN, KC_TILDE, KC_VOLD, KC_MUTE, KC_VOLU, RSFT_T(KC_BSLS),
- KC_LALT, LGUI_T(KC_SPC), KC_TRNS, KC_TRNS
- ),
- [2] = LAYOUT_ortho_4_3x10_4(
- KC_LCTL, KC_2, KC_3, TD(TD_ESC_SPOTLIGHT_EMOJI),
- KC_TAB, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_CAPS, KC_BSPC,
- KC_ENT, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0,
- KC_LSFT, KC_NO, KC_NO, KC_NO, MO(3), KC_NO, KC_NO, KC_COMM, KC_DOT, RSFT_T(KC_SLSH),
- KC_LALT, LGUI_T(KC_SPC), KC_TRNS, KC_TRNS
- ),
- [3] = LAYOUT_ortho_4_3x10_4(
- KC_LCTL, KC_2, KC_3, TD(TD_ESC_SPOTLIGHT_EMOJI),
- KC_TAB, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, TO(4),
- KC_ENT, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10,
- KC_F11, KC_NO, KC_NO, QK_BOOT, KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_F12,
- KC_LALT, LGUI_T(KC_SPC), KC_TRNS, KC_TRNS
- ),
- [4] = LAYOUT_ortho_4_3x10_4(
- KC_1, KC_2, KC_3, TD(TD_ESC_WINDOWS_EMOJI),
- KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_BSPC,
- KC_ENT, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O,
- LSFT_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMMA, KC_DOT, RSFT_T(KC_SLSH),
- KC_LCTL, KC_SPC, LT(5, KC_TAB), LT(6, KC_ENT)
- ),
- [5] = LAYOUT_ortho_4_3x10_4(
- KC_1, KC_2, KC_3, TD(TD_ESC_WINDOWS_EMOJI),
- KC_TAB, KC_UNDS, KC_MINS, KC_PLUS, KC_EQL, KC_COLN, KC_GRV, KC_MRWD, KC_MPLY, KC_MFFD, KC_DEL,
- KC_ENT, KC_LCBR, KC_LPRN, KC_RPRN, KC_RCBR, KC_PIPE, KC_ESC, KC_LEFT, KC_UP, KC_DOWN, KC_RGHT,
- LSFT_T(KC_LBRC), KC_QUOT, KC_DQUO, KC_RBRC, KC_SCLN, KC_TILDE, KC_VOLD, KC_MUTE, KC_VOLU, RSFT_T(KC_BSLS),
- KC_LCTL, KC_SPC, KC_TRNS, KC_TRNS
- ),
- [6] = LAYOUT_ortho_4_3x10_4(
- KC_1, KC_2, KC_3, TD(TD_ESC_WINDOWS_EMOJI),
- KC_TAB, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_CAPS, KC_BSPC,
- KC_ENT, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0,
- KC_LSFT, KC_NO, KC_NO, KC_NO, MO(7), KC_NO, KC_NO, KC_COMM, KC_DOT, RSFT_T(KC_SLSH),
- KC_LCTL, KC_SPC, KC_TRNS, KC_TRNS
- ),
- [7] = LAYOUT_ortho_4_3x10_4(
- KC_1, KC_2, KC_3, TD(TD_ESC_WINDOWS_EMOJI),
- KC_TAB, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, TO(0),
- KC_ENT, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10,
- KC_F11, KC_NO, KC_NO, QK_BOOT, KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_F12,
- KC_LCTL, KC_SPC, KC_TRNS, KC_TRNS
- )
-};
-
-// OLED
-#ifdef OLED_ENABLE
-// WPM responsiveness
-#define IDLE_FRAMES 5 // How many idle frames in animation
-#define IDLE_SPEED 20 // Speed at which animation idles
-#define TAP_FRAMES 2 // How many tapping frames
-#define TAP_SPEED 40 // WPM to trigger Bongo
-#define ANIMATION_FRAME_DURATION 200 // MS duration of each frame
-#define ANIMATION_SIZE 256 // Number of bytes per animation frame
-
-uint32_t anim_timer = 0;
-uint32_t anim_sleep = 0;
-uint8_t current_idle_frame = 0;
-uint8_t current_tap_frame = 0;
-
-static void render_animation(void) {
- static const char PROGMEM idle[IDLE_FRAMES][ANIMATION_SIZE] = {
- {
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x20, 0x18,
- 0x04, 0x02, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x20, 0x40, 0x40, 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, 0x06, 0x0d, 0x31, 0xc1, 0x01, 0x01, 0x01, 0x02, 0x02,
- 0x02, 0x04, 0x04, 0x02, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00,
- 0x00, 0x40, 0x80, 0x80, 0x40, 0x00, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x04,
- 0x04, 0x08, 0x08, 0x10, 0x20, 0x40, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x18, 0x06, 0x01, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x83, 0x83, 0x40, 0x40, 0x40, 0x40, 0x20, 0x21,
- 0x21, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x04, 0x08,
- 0x30, 0x40, 0x80, 0x80, 0x00, 0x00, 0x01, 0x86, 0x98, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x0f, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x04,
- 0x08, 0x10, 0x10, 0x20, 0x20, 0x40, 0x40, 0x41, 0x42, 0x24, 0x18, 0x00, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
- },
- {
- 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, 0x80, 0x40, 0x40, 0x20, 0x10,
- 0x08, 0x04, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 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, 0x1c, 0x34, 0xc4, 0x04, 0x04, 0x04, 0x08, 0x08,
- 0x08, 0x08, 0x08, 0x04, 0x04, 0x02, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00,
- 0x00, 0x40, 0x80, 0x80, 0x40, 0x00, 0x00, 0x30, 0x30, 0x00, 0x01, 0x01, 0x02, 0x02, 0x04, 0x04,
- 0x04, 0x08, 0x08, 0x10, 0x20, 0x40, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x18, 0x06, 0x01, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x83, 0x83, 0x40, 0x40, 0x40, 0x40, 0x20, 0x21,
- 0x21, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x04, 0x08,
- 0x30, 0x40, 0x80, 0x80, 0x00, 0x00, 0x01, 0x86, 0x98, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x0f, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x04,
- 0x08, 0x10, 0x10, 0x20, 0x20, 0x40, 0x40, 0x41, 0x42, 0x24, 0x18, 0x00, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
- },
- {
- 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, 0x80, 0x40, 0x40, 0x20, 0x10,
- 0x08, 0x04, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 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, 0x7e, 0x82, 0x02, 0x02, 0x04, 0x04, 0x08,
- 0x08, 0x08, 0x08, 0x04, 0x04, 0x02, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x80, 0x00, 0x00, 0x80, 0x00, 0x00, 0x60, 0x60, 0x00, 0x01, 0x01, 0x02, 0x04, 0x04, 0x08,
- 0x08, 0x10, 0x10, 0x20, 0x20, 0x40, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x30, 0x0c, 0x03, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x86, 0x86, 0x40, 0x40, 0x40, 0x40, 0x21, 0x22,
- 0x22, 0x20, 0x11, 0x11, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x04, 0x08,
- 0x30, 0x40, 0x80, 0x80, 0x00, 0x00, 0x01, 0x86, 0x98, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x0f, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x04,
- 0x08, 0x10, 0x10, 0x20, 0x20, 0x40, 0x40, 0x41, 0x42, 0x24, 0x18, 0x00, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
- },
- {
- 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, 0x40, 0x40, 0x40, 0x20, 0x10, 0x08,
- 0x04, 0x02, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 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, 0x3f, 0xc1, 0x01, 0x01, 0x02, 0x02, 0x04,
- 0x04, 0x04, 0x04, 0x02, 0x02, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x80, 0x00, 0x00, 0x80, 0x00, 0x00, 0x60, 0x60, 0x00, 0x00, 0x01, 0x02, 0x04, 0x04, 0x08,
- 0x08, 0x10, 0x10, 0x20, 0x20, 0x40, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x30, 0x0c, 0x03, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x86, 0x86, 0x40, 0x40, 0x40, 0x40, 0x21, 0x22,
- 0x22, 0x20, 0x11, 0x11, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x04, 0x08,
- 0x30, 0x40, 0x80, 0x80, 0x00, 0x00, 0x01, 0x86, 0x98, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x0f, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x04,
- 0x08, 0x10, 0x10, 0x20, 0x20, 0x40, 0x40, 0x41, 0x42, 0x24, 0x18, 0x00, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x20, 0x18,
- 0x04, 0x02, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x20, 0x40, 0x40, 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, 0x3f, 0xc1, 0x01, 0x01, 0x02, 0x02, 0x04,
- 0x04, 0x04, 0x04, 0x02, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00,
- 0x00, 0x40, 0x80, 0x80, 0x40, 0x00, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x04,
- 0x04, 0x08, 0x08, 0x10, 0x20, 0x40, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x18, 0x06, 0x01, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x83, 0x83, 0x40, 0x40, 0x40, 0x40, 0x20, 0x21,
- 0x21, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x04, 0x08,
- 0x30, 0x40, 0x80, 0x80, 0x00, 0x00, 0x01, 0x86, 0x98, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x0f, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x04,
- 0x08, 0x10, 0x10, 0x20, 0x20, 0x40, 0x40, 0x41, 0x42, 0x24, 0x18, 0x00, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
- }
- };
- static const char PROGMEM prep[][ANIMATION_SIZE] = {
- {
- 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, 0x40, 0x40, 0x20, 0x20, 0x10,
- 0x08, 0x04, 0x02, 0x04, 0x08, 0x10, 0x10, 0x20, 0x20, 0x40, 0x40, 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, 0x3f, 0xc1, 0x01, 0x01, 0x02, 0x02, 0x04,
- 0x84, 0x44, 0x44, 0x42, 0x82, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00,
- 0x00, 0x40, 0x80, 0x80, 0x40, 0x00, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x64,
- 0x18, 0x04, 0x12, 0xc2, 0xca, 0x24, 0x88, 0xf0, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x18, 0x06, 0x01, 0x00, 0x00, 0x0c, 0x03,
- 0x00, 0x02, 0x18, 0x19, 0x00, 0x05, 0xfe, 0x80, 0x83, 0x83, 0x40, 0x40, 0x40, 0x40, 0x20, 0x21,
- 0x21, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02,
- 0x02, 0x02, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x0f, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02,
- 0x02, 0x02, 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
- }
- };
- static const char PROGMEM tap[TAP_FRAMES][ANIMATION_SIZE] = {
- {
- 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, 0x40, 0x40, 0x20, 0x20, 0x10,
- 0x08, 0x04, 0x02, 0x04, 0x08, 0x10, 0x10, 0x20, 0x20, 0x40, 0x40, 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, 0x3f, 0xc1, 0x01, 0x01, 0x02, 0x02, 0x04,
- 0x04, 0x04, 0x04, 0x02, 0x02, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00,
- 0x00, 0x40, 0x80, 0x80, 0x40, 0x00, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x64,
- 0x18, 0x04, 0x12, 0xc2, 0xca, 0x24, 0x88, 0xf0, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x18, 0x06, 0x01, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x83, 0x83, 0x40, 0x40, 0x40, 0x40, 0x20, 0x21,
- 0x21, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02,
- 0x02, 0x02, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x0f, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x04,
- 0x08, 0x10, 0x10, 0x20, 0x20, 0x40, 0x40, 0x41, 0x42, 0x24, 0x98, 0xc0, 0x88, 0x88, 0x8c, 0x9c,
- 0x1c, 0x1e, 0x0e, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
- },
- {
- 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, 0x40, 0x40, 0x20, 0x20, 0x10,
- 0x08, 0x04, 0x02, 0x04, 0x08, 0x10, 0x10, 0x20, 0x20, 0x40, 0x40, 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, 0x3f, 0xc1, 0x01, 0x01, 0x02, 0x02, 0x04,
- 0x84, 0x44, 0x44, 0x42, 0x82, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00,
- 0x00, 0x40, 0x80, 0x80, 0x40, 0x00, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x04,
- 0x04, 0x08, 0x08, 0x10, 0x20, 0x40, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x18, 0x06, 0x01, 0x00, 0x00, 0x0c, 0x03,
- 0x00, 0x02, 0x18, 0x19, 0x00, 0x05, 0xfe, 0x80, 0x83, 0x83, 0x40, 0x40, 0x40, 0x40, 0x20, 0x21,
- 0x21, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x04, 0x08,
- 0x30, 0x40, 0x80, 0x80, 0x00, 0x00, 0x01, 0x86, 0x98, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x0f, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02,
- 0x02, 0x02, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x0f, 0x0f, 0x07, 0x03, 0x03, 0x61,
- 0xf0, 0xf8, 0xfc, 0x60, 0x01, 0x01, 0x01, 0x3c, 0x78, 0xf8, 0xf0, 0x70, 0x00, 0x00, 0x00, 0x00
- }
- };
-
- void animation_phase(void) {
- // Set cursor to draw from the bottom up
- oled_set_cursor(128, 0);
-
- if (get_current_wpm() <= IDLE_SPEED) {
- current_idle_frame = (current_idle_frame + 1) % IDLE_FRAMES;
- oled_write_raw_P(idle[abs((IDLE_FRAMES - 1) - current_idle_frame)], ANIMATION_SIZE);
- }
-
- // Start prep image
- if (get_current_wpm() > IDLE_SPEED && get_current_wpm() < TAP_SPEED) {
- oled_write_raw_P(prep[0], ANIMATION_SIZE);
- }
-
- // Start tap animation
- if (get_current_wpm() >= TAP_SPEED) {
- current_tap_frame = (current_tap_frame + 1) % TAP_FRAMES;
- oled_write_raw_P(tap[abs((TAP_FRAMES - 1) - current_tap_frame)], ANIMATION_SIZE);
- }
- }
- if (get_current_wpm() != 000) {
- oled_on(); // Enables OLED on any alpha keypress
-
- if (timer_elapsed32(anim_timer) > ANIMATION_FRAME_DURATION) {
- anim_timer = timer_read32();
- animation_phase();
- }
-
- anim_sleep = timer_read32();
- } else {
- if (timer_elapsed32(anim_sleep) > OLED_TIMEOUT) {
- oled_off();
- } else {
- if (timer_elapsed32(anim_timer) > ANIMATION_FRAME_DURATION) {
- anim_timer = timer_read32();
- animation_phase();
- }
- }
- }
-}
-
-// Draw to OLED
-bool oled_task_user(void) {
- // Caps lock text
- led_t led_state = host_keyboard_led_state();
- oled_set_cursor(0,1);
- oled_write_P(led_state.caps_lock ? PSTR(" Caps Lock "): PSTR(" ScottoCMD "), false);
-
- //WPM text
- oled_set_cursor(0, 9);
- oled_write(get_u8_str(get_current_wpm(), '0'), false);
- oled_write_P(PSTR(" WPM"), false);
-
- static const char PROGMEM logos[][256] = {
- // Apple
- {
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x70, 0x78, 0x7c, 0x3e, 0x1f, 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, 0xc0, 0xf0, 0xfc, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xfe,
- 0xfe, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3e, 0x0e, 0x04, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 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, 0x00, 0x03, 0x0f, 0x1f, 0x7f, 0x7f, 0xff, 0xff, 0xff, 0x7f, 0x7f, 0x7f,
- 0x7f, 0x7f, 0x7f, 0x7f, 0xff, 0xff, 0xff, 0x7f, 0x7f, 0x3f, 0x0f, 0x07, 0x01, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
-
- },
-
- // Windows
- {
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xf0, 0xf8, 0xf8, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc,
- 0xf8, 0xf8, 0x00, 0x80, 0xe0, 0xc0, 0xc0, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0xc0, 0x40,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0xb8, 0x9f, 0x9f, 0x9f, 0x9f, 0x8f, 0x9f, 0x9f, 0x9f, 0x1f, 0x3f, 0x3f,
- 0x07, 0xc0, 0xf8, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, 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, 0xe0, 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x03, 0xe0,
- 0xfc, 0xfc, 0xf9, 0xf9, 0xf9, 0xf3, 0xf3, 0xf3, 0xfb, 0xfb, 0xf9, 0x19, 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,
- 0x02, 0x03, 0x03, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x03, 0x03, 0x07, 0x01, 0x00, 0x1e, 0x1f,
- 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x1f, 0x1f, 0x0f, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
-
- },
-
- // Code
- {
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0xe0, 0xf0, 0x78, 0x3c, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xe0,
- 0xf8, 0xfc, 0x3f, 0x0f, 0x03, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x3c, 0x78, 0xf0, 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,
- 0x01, 0x03, 0x07, 0x0f, 0x3e, 0x3c, 0x38, 0x00, 0x00, 0x00, 0xc0, 0xf0, 0xfc, 0x7e, 0x1f, 0x07,
- 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x3c, 0x3e, 0x0f, 0x07, 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
- },
-
- // Number
- {
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0xff, 0xff, 0x1f,
- 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x1e, 0x1e, 0x1e, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x1e,
- 0x1e, 0x1e, 0xbe, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x1e, 0x1e, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x78, 0x78, 0xf8, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x78, 0x78,
- 0x78, 0xf8, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x78, 0x78, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0xff, 0xff, 0xff, 0xff, 0x07, 0x00, 0x00, 0x00,
- 0xc0, 0xff, 0xff, 0xff, 0xff, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
-
- },
-
- // Function
- {
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0xf0,
- 0xf8, 0xfc, 0xfe, 0xfe, 0xff, 0x9f, 0x0f, 0x07, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0x80, 0xc0, 0xc0, 0x8f, 0x3f,
- 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xfc, 0xf8, 0xf8, 0xfc, 0xfe, 0x7f, 0x3f, 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, 0x80, 0xc0, 0xe0, 0xf0, 0xf8, 0xfc, 0xfe, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x3e,
- 0x1e, 0x0c, 0x01, 0x01, 0x03, 0x03, 0x03, 0x03, 0x03, 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,
- 0x78, 0xfc, 0xff, 0xff, 0xff, 0x7f, 0x7f, 0x3f, 0x1f, 0x0f, 0x07, 0x03, 0x01, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
- },
-
- // Caps Lock
- {
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0xc0, 0xc0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0,
- 0xc0, 0xc0, 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,
- 0xe0, 0xf8, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 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,
- 0x01, 0x03, 0x03, 0x07, 0x07, 0x0f, 0x0f, 0x1f, 0x1f, 0x3f, 0x3f, 0x3f, 0x7f, 0x7f, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0xf8, 0xf8, 0xf0, 0xe0, 0xe0, 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, 0x01,
- 0x01, 0x03, 0x03, 0x07, 0x07, 0x07, 0x07, 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
- }
- };
-
- // Layer images
- oled_set_cursor(32, 0);
- switch (get_highest_layer(layer_state)) {
- case _MAC_DEFAULT :
- oled_write_raw_P(logos[0], sizeof(logos[0]));
- break;
- case _WIN_DEFAULT :
- oled_write_raw_P(logos[1], sizeof(logos[1]));
- break;
- case _MAC_CODE :
- case _WIN_CODE :
- oled_write_raw_P(logos[2], sizeof(logos[2]));
- break;
- case _MAC_NUM :
- case _WIN_NUM :
- oled_write_raw_P(logos[3], sizeof(logos[3]));
- break;
- case _MAC_FUNC :
- case _WIN_FUNC :
- oled_write_raw_P(logos[4], sizeof(logos[4]));
- break;
- }
-
- // Render Bongo Cat
- render_animation();
-
- return false;
-}
-#endif
diff --git a/keyboards/handwired/scottokeebs/scottocmd/keymaps/scotto/rules.mk b/keyboards/handwired/scottokeebs/scottocmd/keymaps/scotto/rules.mk
deleted file mode 100644
index bcee933e75..0000000000
--- a/keyboards/handwired/scottokeebs/scottocmd/keymaps/scotto/rules.mk
+++ /dev/null
@@ -1,2 +0,0 @@
-WPM_ENABLE = yes
-TAP_DANCE_ENABLE = yes
diff --git a/keyboards/handwired/scottokeebs/scottoergo/keymaps/scotto/config.h b/keyboards/handwired/scottokeebs/scottoergo/keymaps/scotto/config.h
deleted file mode 100644
index 1a6512052c..0000000000
--- a/keyboards/handwired/scottokeebs/scottoergo/keymaps/scotto/config.h
+++ /dev/null
@@ -1,23 +0,0 @@
-/*
-Copyright 2022 Joe Scotto
-
-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 options
-#define TAPPING_TERM 135
-#define PERMISSIVE_HOLD
-#define TAPPING_TERM_PER_KEY
diff --git a/keyboards/handwired/scottokeebs/scottoergo/keymaps/scotto/keymap.c b/keyboards/handwired/scottokeebs/scottoergo/keymaps/scotto/keymap.c
deleted file mode 100644
index f4d0a0c7bb..0000000000
--- a/keyboards/handwired/scottokeebs/scottoergo/keymaps/scotto/keymap.c
+++ /dev/null
@@ -1,174 +0,0 @@
-/*
-Copyright 2022 Joe Scotto
-
-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
-
-// Tap dance declarations
-enum {
- TD_LCTL_ESC_SPOTLIGHT_EMOJI,
- TD_LALT_ESC_WINDOWS_EMOJI
-};
-
-uint16_t get_tapping_term(uint16_t keycode, keyrecord_t *record) {
- switch (keycode) {
- case TD(TD_LCTL_ESC_SPOTLIGHT_EMOJI) :
- case TD(TD_LALT_ESC_WINDOWS_EMOJI) :
- case LGUI_T(KC_SPC) :
- case LT(1, KC_TAB) :
- case LT(2, KC_ENT) :
- return 200;
- default:
- return TAPPING_TERM;
- }
-};
-
-// Begin quad TD
-typedef enum {
- TD_NONE,
- TD_UNKNOWN,
- TD_SINGLE_HOLD,
- TD_SINGLE_TAP,
- TD_DOUBLE_TAP,
- TD_TRIPLE_TAP
-} td_state_t;
-
-typedef struct {
- bool is_press_action;
- td_state_t state;
-} td_tap_t;
-
-// Create an instance of 'td_tap_t' for the 'x' tap dance.
-static td_tap_t xtap_state = {
- .is_press_action = true,
- .state = TD_NONE
-};
-
-td_state_t cur_dance(tap_dance_state_t *state) {
- if (state->count == 1) {
- if (state->interrupted || !state->pressed) {
- return TD_SINGLE_TAP;
- } else {
- return TD_SINGLE_HOLD;
- }
- } else if (state->count == 2) {
- return TD_DOUBLE_TAP;
- } else if (state->count == 3) {
- return TD_TRIPLE_TAP;
- }
-
- return TD_UNKNOWN;
-}
-
-void td_lctl_esc_spotlight_emoji_finished(tap_dance_state_t *state, void *user_data) {
- xtap_state.state = cur_dance(state);
- switch (xtap_state.state) {
- case TD_SINGLE_TAP: register_code(KC_ESC); break;
- case TD_SINGLE_HOLD: register_code(KC_LCTL); break;
- case TD_DOUBLE_TAP: tap_code16(G(KC_SPC)); break;
- case TD_TRIPLE_TAP: tap_code16(C(G(KC_SPC))); break;
- default: break;
- }
-}
-
-void td_lctl_esc_spotlight_emoji_reset(tap_dance_state_t *state, void *user_data) {
- switch (xtap_state.state) {
- case TD_SINGLE_TAP: unregister_code(KC_ESC); break;
- case TD_SINGLE_HOLD: unregister_code(KC_LCTL); break;
- default: break;
- }
- xtap_state.state = TD_NONE;
-}
-
-void td_lalt_esc_windowr_emoji_finished(tap_dance_state_t *state, void *user_data) {
- xtap_state.state = cur_dance(state);
- switch (xtap_state.state) {
- case TD_SINGLE_TAP: register_code(KC_ESC); break;
- case TD_SINGLE_HOLD: register_code(KC_LALT); break;
- case TD_DOUBLE_TAP: tap_code(KC_LGUI); break;
- case TD_TRIPLE_TAP: tap_code16(G(KC_DOT)); break;
- default: break;
- }
-}
-
-void td_lalt_esc_windowr_emoji_reset(tap_dance_state_t *state, void *user_data) {
- switch (xtap_state.state) {
- case TD_SINGLE_TAP: unregister_code(KC_ESC); break;
- case TD_SINGLE_HOLD: unregister_code(KC_LALT); break;
- default: break;
- }
- xtap_state.state = TD_NONE;
-}
-
- // Tap Dance definitions
-tap_dance_action_t tap_dance_actions[] = {
- [TD_LCTL_ESC_SPOTLIGHT_EMOJI] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, td_lctl_esc_spotlight_emoji_finished, td_lctl_esc_spotlight_emoji_reset),
- [TD_LALT_ESC_WINDOWS_EMOJI] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, td_lalt_esc_windowr_emoji_finished, td_lalt_esc_windowr_emoji_reset),
-};
-// For the x tap dance. Put it here so it can be used in any keymap
-void x_finished(tap_dance_state_t *state, void *user_data);
-void x_reset(tap_dance_state_t *state, void *user_data);
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [0] = LAYOUT_split_3x5_3(
- KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_BSPC,
- KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O,
- LSFT_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMMA, KC_DOT, RSFT_T(KC_SLSH),
- TD(TD_LCTL_ESC_SPOTLIGHT_EMOJI), KC_LALT, LGUI_T(KC_SPC), LT(1, KC_TAB), LT(2, KC_ENT), TD(TD_LCTL_ESC_SPOTLIGHT_EMOJI)
- ),
- [1] = LAYOUT_split_3x5_3(
- KC_UNDS, KC_MINS, KC_PLUS, KC_EQL, KC_COLN, KC_GRV, KC_MRWD, KC_MPLY, KC_MFFD, KC_DEL,
- KC_LCBR, KC_LPRN, KC_RPRN, KC_RCBR, KC_PIPE, KC_ESC, KC_LEFT, KC_UP, KC_DOWN, KC_RGHT,
- LSFT_T(KC_LBRC), KC_QUOT, KC_DQUO, KC_RBRC, KC_SCLN, KC_TILDE, KC_VOLD, KC_MUTE, KC_VOLU, RSFT_T(KC_BSLS),
- TD(TD_LCTL_ESC_SPOTLIGHT_EMOJI), KC_LALT, LGUI_T(KC_SPC), KC_TRNS, KC_TRNS, TD(TD_LCTL_ESC_SPOTLIGHT_EMOJI)
- ),
- [2] = LAYOUT_split_3x5_3(
- KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_CAPS, KC_BSPC,
- KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0,
- KC_LSFT, KC_NO, KC_NO, KC_NO, MO(3), KC_NO, KC_NO, KC_COMM, KC_DOT, RSFT_T(KC_SLSH),
- TD(TD_LCTL_ESC_SPOTLIGHT_EMOJI), KC_LALT, LGUI_T(KC_SPC), KC_TRNS, KC_TRNS, TD(TD_LCTL_ESC_SPOTLIGHT_EMOJI)
- ),
- [3] = LAYOUT_split_3x5_3(
- KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, TO(4),
- KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10,
- KC_F11, KC_NO, KC_NO, QK_BOOT, KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_F12,
- TD(TD_LCTL_ESC_SPOTLIGHT_EMOJI), KC_LALT, LGUI_T(KC_SPC), KC_TRNS, KC_TRNS, TD(TD_LCTL_ESC_SPOTLIGHT_EMOJI)
- ),
- [4] = LAYOUT_split_3x5_3(
- KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_BSPC,
- KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O,
- LSFT_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMMA, KC_DOT, RSFT_T(KC_SLSH),
- TD(TD_LALT_ESC_WINDOWS_EMOJI), KC_LCTL, KC_SPC, LT(5, KC_TAB), LT(6, KC_ENT), TD(TD_LALT_ESC_WINDOWS_EMOJI)
- ),
- [5] = LAYOUT_split_3x5_3(
- KC_UNDS, KC_MINS, KC_PLUS, KC_EQL, KC_COLN, KC_GRV, KC_MRWD, KC_MPLY, KC_MFFD, KC_DEL,
- KC_LCBR, KC_LPRN, KC_RPRN, KC_RCBR, KC_PIPE, KC_ESC, KC_LEFT, KC_UP, KC_DOWN, KC_RGHT,
- LSFT_T(KC_LBRC), KC_QUOT, KC_DQUO, KC_RBRC, KC_SCLN, KC_TILDE, KC_VOLD, KC_MUTE, KC_VOLU, RSFT_T(KC_BSLS),
- TD(TD_LALT_ESC_WINDOWS_EMOJI), KC_LCTL, KC_SPC, KC_TRNS, KC_TRNS, TD(TD_LALT_ESC_WINDOWS_EMOJI)
- ),
- [6] = LAYOUT_split_3x5_3(
- KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_CAPS, KC_BSPC,
- KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0,
- KC_LSFT, KC_NO, KC_NO, KC_NO, MO(7), KC_NO, KC_NO, KC_COMM, KC_DOT, RSFT_T(KC_SLSH),
- TD(TD_LALT_ESC_WINDOWS_EMOJI), KC_LCTL, KC_SPC, KC_TRNS, KC_TRNS, TD(TD_LALT_ESC_WINDOWS_EMOJI)
- ),
- [7] = LAYOUT_split_3x5_3(
- KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, TO(0),
- KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10,
- KC_F11, KC_NO, KC_NO, QK_BOOT, KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_F12,
- TD(TD_LALT_ESC_WINDOWS_EMOJI), KC_LCTL, KC_SPC, KC_TRNS, KC_TRNS, TD(TD_LALT_ESC_WINDOWS_EMOJI)
- )
-}; \ No newline at end of file
diff --git a/keyboards/handwired/scottokeebs/scottoergo/keymaps/scotto/rules.mk b/keyboards/handwired/scottokeebs/scottoergo/keymaps/scotto/rules.mk
deleted file mode 100644
index e5ddcae8d9..0000000000
--- a/keyboards/handwired/scottokeebs/scottoergo/keymaps/scotto/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-TAP_DANCE_ENABLE = yes
diff --git a/keyboards/handwired/scottokeebs/scottogame/keymaps/scotto/config.h b/keyboards/handwired/scottokeebs/scottogame/keymaps/scotto/config.h
deleted file mode 100644
index 1a6512052c..0000000000
--- a/keyboards/handwired/scottokeebs/scottogame/keymaps/scotto/config.h
+++ /dev/null
@@ -1,23 +0,0 @@
-/*
-Copyright 2022 Joe Scotto
-
-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 options
-#define TAPPING_TERM 135
-#define PERMISSIVE_HOLD
-#define TAPPING_TERM_PER_KEY
diff --git a/keyboards/handwired/scottokeebs/scottogame/keymaps/scotto/keymap.c b/keyboards/handwired/scottokeebs/scottogame/keymaps/scotto/keymap.c
deleted file mode 100644
index 09fdf5dd9a..0000000000
--- a/keyboards/handwired/scottokeebs/scottogame/keymaps/scotto/keymap.c
+++ /dev/null
@@ -1,289 +0,0 @@
-/*
-Copyright 2022 Joe Scotto
-
-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 <stdio.h>
-
-// Tap Dance declarations
-enum {
- TD_ESC_SPOTLIGHT_EMOJI,
- TD_ESC_WINDOWS_EMOJI
-};
-
-void td_esc_spotlight_emoji (tap_dance_state_t *state, void *user_data) {
- if (state->count == 1) {
- tap_code(KC_ESC);
- } else if (state->count == 2) {
- tap_code16(G(KC_SPC));
- } else if (state->count == 3) {
- tap_code16(C(G(KC_SPC)));
- }
-}
-
-void td_esc_windows_emoji (tap_dance_state_t *state, void *user_data) {
- if (state->count == 1) {
- tap_code(KC_ESC);
- } else if (state->count == 2) {
- tap_code(KC_LGUI);
- } else if (state->count == 3) {
- tap_code16(G(KC_DOT));
- }
-};
-
- // Tap Dance definitions
-tap_dance_action_t tap_dance_actions[] = {
- [TD_ESC_SPOTLIGHT_EMOJI] = ACTION_TAP_DANCE_FN(td_esc_spotlight_emoji),
- [TD_ESC_WINDOWS_EMOJI] = ACTION_TAP_DANCE_FN(td_esc_windows_emoji)
-};
-
-uint16_t get_tapping_term(uint16_t keycode, keyrecord_t *record) {
- switch (keycode) {
- case TD(TD_ESC_SPOTLIGHT_EMOJI) :
- case TD(TD_ESC_WINDOWS_EMOJI) :
- case LGUI_T(KC_SPC) :
- case LT(1, KC_TAB) :
- case LT(2, KC_ENT) :
- return 200;
- default:
- return TAPPING_TERM;
- }
-};
-
-// Layer Names
-enum layer_names {
- _MAC_DEFAULT,
- _MAC_CODE,
- _MAC_NUM,
- _MAC_FUNC,
- _WIN_DEFAULT,
- _WIN_CODE,
- _WIN_NUM,
- _WIN_FUNC
-};
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [0] = LAYOUT_ortho_6_3x10_6(
- KC_1, KC_2, KC_3, KC_4, KC_5, TD(TD_ESC_SPOTLIGHT_EMOJI),
- KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_BSPC,
- KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O,
- LSFT_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMMA, KC_DOT, RSFT_T(KC_SLSH),
- KC_LCTL, KC_LALT, LGUI_T(KC_SPC), LT(1, KC_TAB), LT(2, KC_ENT), TD(TD_ESC_SPOTLIGHT_EMOJI)
- ),
- [1] = LAYOUT_ortho_6_3x10_6(
- KC_1, KC_2, KC_3, KC_4, KC_5, TD(TD_ESC_SPOTLIGHT_EMOJI),
- KC_UNDS, KC_MINS, KC_PLUS, KC_EQL, KC_COLN, KC_GRV, KC_MRWD, KC_MPLY, KC_MFFD, KC_DEL,
- KC_LCBR, KC_LPRN, KC_RPRN, KC_RCBR, KC_PIPE, KC_ESC, KC_LEFT, KC_UP, KC_DOWN, KC_RGHT,
- LSFT_T(KC_LBRC), KC_QUOT, KC_DQUO, KC_RBRC, KC_SCLN, KC_TILDE, KC_VOLD, KC_MUTE, KC_VOLU, RSFT_T(KC_BSLS),
- KC_LCTL, KC_LALT, LGUI_T(KC_SPC), KC_TRNS, KC_TRNS, TD(TD_ESC_SPOTLIGHT_EMOJI)
- ),
- [2] = LAYOUT_ortho_6_3x10_6(
- KC_1, KC_2, KC_3, KC_4, KC_5, TD(TD_ESC_SPOTLIGHT_EMOJI),
- KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_CAPS, KC_BSPC,
- KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0,
- KC_LSFT, KC_NO, KC_NO, KC_NO, MO(3), KC_NO, KC_NO, KC_COMM, KC_DOT, RSFT_T(KC_SLSH),
- KC_LCTL, KC_LALT, LGUI_T(KC_SPC), KC_TRNS, KC_TRNS, TD(TD_ESC_SPOTLIGHT_EMOJI)
- ),
- [3] = LAYOUT_ortho_6_3x10_6(
- KC_1, KC_2, KC_3, KC_4, KC_5, TD(TD_ESC_SPOTLIGHT_EMOJI),
- KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, TO(4),
- KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10,
- KC_F11, KC_NO, KC_NO, QK_BOOT, KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_F12,
- KC_LCTL, KC_LALT, LGUI_T(KC_SPC), KC_TRNS, KC_TRNS, TD(TD_ESC_SPOTLIGHT_EMOJI)
- ),
- [4] = LAYOUT_ortho_6_3x10_6(
- KC_1, KC_2, KC_3, KC_4, KC_5, TD(TD_ESC_WINDOWS_EMOJI),
- KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_BSPC,
- KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O,
- LSFT_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMMA, KC_DOT, RSFT_T(KC_SLSH),
- KC_LALT, KC_LCTL, KC_SPC, LT(5, KC_TAB), LT(6, KC_ENT), TD(TD_ESC_WINDOWS_EMOJI)
- ),
- [5] = LAYOUT_ortho_6_3x10_6(
- KC_1, KC_2, KC_3, KC_4, KC_5, TD(TD_ESC_WINDOWS_EMOJI),
- KC_UNDS, KC_MINS, KC_PLUS, KC_EQL, KC_COLN, KC_GRV, KC_MRWD, KC_MPLY, KC_MFFD, KC_DEL,
- KC_LCBR, KC_LPRN, KC_RPRN, KC_RCBR, KC_PIPE, KC_ESC, KC_LEFT, KC_UP, KC_DOWN, KC_RGHT,
- LSFT_T(KC_LBRC), KC_QUOT, KC_DQUO, KC_RBRC, KC_SCLN, KC_TILDE, KC_VOLD, KC_MUTE, KC_VOLU, RSFT_T(KC_BSLS),
- KC_LALT, KC_LCTL, KC_SPC, KC_TRNS, KC_TRNS, TD(TD_ESC_WINDOWS_EMOJI)
- ),
- [6] = LAYOUT_ortho_6_3x10_6(
- KC_1, KC_2, KC_3, KC_4, KC_5, TD(TD_ESC_WINDOWS_EMOJI),
- KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_CAPS, KC_BSPC,
- KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0,
- KC_LSFT, KC_NO, KC_NO, KC_NO, MO(7), KC_NO, KC_NO, KC_COMM, KC_DOT, RSFT_T(KC_SLSH),
- KC_LALT, KC_LCTL, KC_SPC, KC_TRNS, KC_TRNS, TD(TD_ESC_WINDOWS_EMOJI)
- ),
- [7] = LAYOUT_ortho_6_3x10_6(
- KC_1, KC_2, KC_3, KC_4, KC_5, TD(TD_ESC_WINDOWS_EMOJI),
- KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, TO(0),
- KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10,
- KC_F11, KC_NO, KC_NO, QK_BOOT, KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_F12,
- KC_LALT, KC_LCTL, KC_SPC, KC_TRNS, KC_TRNS, TD(TD_ESC_WINDOWS_EMOJI)
- )
-};
-
-#ifdef OLED_ENABLE
-// WPM responsiveness
-#define IDLE_FRAMES 5
-#define IDLE_SPEED 20 // Speed at which animation goes into idle
-#define TAP_FRAMES 2
-#define TAP_SPEED 40 // WPM to trigger Bongo
-#define ANIM_FRAME_DURATION 200 // Frame MS
-#define ANIM_SIZE 636 // Number of bytes in array, max 1024
-
-uint32_t anim_timer = 0;
-uint32_t anim_sleep = 0;
-uint8_t current_idle_frame = 0;
-uint8_t current_tap_frame = 0;
-
-static void render_animation(void) {
- static const char PROGMEM idle[IDLE_FRAMES][ANIM_SIZE] = {{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x20, 0x18, 0x04, 0x02, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x20, 0x40, 0x40, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xc1, 0x01, 0x01, 0x02, 0x02, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x40, 0x80, 0x80, 0x40, 0x00, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x04, 0x04, 0x08, 0x08, 0x10, 0x20, 0x40, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02, 0x02, 0x02, 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, 0xe0, 0x18, 0x06, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x83, 0x83, 0x40, 0x40, 0x40, 0x40, 0x20, 0x21, 0x21, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x04, 0x08, 0x30, 0x40, 0x80, 0x80, 0x00, 0x00, 0x01, 0x86, 0x98, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x0f, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x04, 0x08, 0x10, 0x10, 0x20, 0x20, 0x40, 0x40, 0x41, 0x42, 0x24, 0x18, 0x00, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
- {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0x40, 0x40, 0x40, 0x20, 0x10, 0x08, 0x04, 0x02, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xc1, 0x01, 0x01, 0x02, 0x02, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x80, 0x00, 0x00, 0x60, 0x60, 0x00, 0x00, 0x01, 0x02, 0x04, 0x04, 0x08, 0x08, 0x10, 0x10, 0x20, 0x20, 0x40, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02, 0x02, 0x02, 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, 0xc0, 0x30, 0x0c, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x86, 0x86, 0x40, 0x40, 0x40, 0x40, 0x21, 0x22, 0x22, 0x20, 0x11, 0x11, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x04, 0x08, 0x30, 0x40, 0x80, 0x80, 0x00, 0x00, 0x01, 0x86, 0x98, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x0f, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x04, 0x08, 0x10, 0x10, 0x20, 0x20, 0x40, 0x40, 0x41, 0x42, 0x24, 0x18, 0x00, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
- {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0x80, 0x40, 0x40, 0x20, 0x10, 0x08, 0x04, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x82, 0x02, 0x02, 0x04, 0x04, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x02, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x80, 0x00, 0x00, 0x60, 0x60, 0x00, 0x01, 0x01, 0x02, 0x04, 0x04, 0x08, 0x08, 0x10, 0x10, 0x20, 0x20, 0x40, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02, 0x02, 0x02, 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, 0xc0, 0x30, 0x0c, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x86, 0x86, 0x40, 0x40, 0x40, 0x40, 0x21, 0x22, 0x22, 0x20, 0x11, 0x11, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x04, 0x08, 0x30, 0x40, 0x80, 0x80, 0x00, 0x00, 0x01, 0x86, 0x98, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x0f, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x04, 0x08, 0x10, 0x10, 0x20, 0x20, 0x40, 0x40, 0x41, 0x42, 0x24, 0x18, 0x00, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
- {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0x80, 0x40, 0x40, 0x20, 0x10, 0x08, 0x04, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x34, 0xc4, 0x04, 0x04, 0x04, 0x08, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x02, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x40, 0x80, 0x80, 0x40, 0x00, 0x00, 0x30, 0x30, 0x00, 0x01, 0x01, 0x02, 0x02, 0x04, 0x04, 0x04, 0x08, 0x08, 0x10, 0x20, 0x40, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02, 0x02, 0x02, 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, 0xe0, 0x18, 0x06, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x83, 0x83, 0x40, 0x40, 0x40, 0x40, 0x20, 0x21, 0x21, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x04, 0x08, 0x30, 0x40, 0x80, 0x80, 0x00, 0x00, 0x01, 0x86, 0x98, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x0f, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x04, 0x08, 0x10, 0x10, 0x20, 0x20, 0x40, 0x40, 0x41, 0x42, 0x24, 0x18, 0x00, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
- {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x20, 0x18, 0x04, 0x02, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x20, 0x40, 0x40, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x0d, 0x31, 0xc1, 0x01, 0x01, 0x01, 0x02, 0x02, 0x02, 0x04, 0x04, 0x02, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x40, 0x80, 0x80, 0x40, 0x00, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x04, 0x04, 0x08, 0x08, 0x10, 0x20, 0x40, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02, 0x02, 0x02, 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, 0xe0, 0x18, 0x06, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x83, 0x83, 0x40, 0x40, 0x40, 0x40, 0x20, 0x21, 0x21, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x04, 0x08, 0x30, 0x40, 0x80, 0x80, 0x00, 0x00, 0x01, 0x86, 0x98, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x0f, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x04, 0x08, 0x10, 0x10, 0x20, 0x20, 0x40, 0x40, 0x41, 0x42, 0x24, 0x18, 0x00, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}};
- static const char PROGMEM prep[][ANIM_SIZE] = {{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0x40, 0x40, 0x20, 0x20, 0x10, 0x08, 0x04, 0x02, 0x04, 0x08, 0x10, 0x10, 0x20, 0x20, 0x40, 0x40, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xc1, 0x01, 0x01, 0x02, 0x02, 0x04, 0x84, 0x44, 0x44, 0x42, 0x82, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x40, 0x80, 0x80, 0x40, 0x00, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x64, 0x18, 0x04, 0x12, 0xc2, 0xca, 0x24, 0x88, 0xf0, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02, 0x02, 0x02, 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, 0xe0, 0x18, 0x06, 0x01, 0x00, 0x00, 0x0c, 0x03, 0x00, 0x02, 0x18, 0x19, 0x00, 0x05, 0xfe, 0x80, 0x83, 0x83, 0x40, 0x40, 0x40, 0x40, 0x20, 0x21, 0x21, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02, 0x02, 0x02, 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, 0x00, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x0f, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02, 0x02, 0x02, 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, 0x00}};
- static const char PROGMEM tap[TAP_FRAMES][ANIM_SIZE] = {
- {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0x40, 0x40, 0x20, 0x20, 0x10, 0x08, 0x04, 0x02, 0x04, 0x08, 0x10, 0x10, 0x20, 0x20, 0x40, 0x40, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xc1, 0x01, 0x01, 0x02, 0x02, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x40, 0x80, 0x80, 0x40, 0x00, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x64, 0x18, 0x04, 0x12, 0xc2, 0xca, 0x24, 0x88, 0xf0, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02, 0x02, 0x02, 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, 0xe0, 0x18, 0x06, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x83, 0x83, 0x40, 0x40, 0x40, 0x40, 0x20, 0x21, 0x21, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02, 0x02, 0x02, 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, 0x00, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x0f, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x04, 0x08, 0x10, 0x10, 0x20, 0x20, 0x40, 0x40, 0x41, 0x42, 0x24, 0x98, 0xc0, 0x88, 0x88, 0x8c, 0x9c, 0x1c, 0x1e, 0x0e, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
- {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0x40, 0x40, 0x20, 0x20, 0x10, 0x08, 0x04, 0x02, 0x04, 0x08, 0x10, 0x10, 0x20, 0x20, 0x40, 0x40, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xc1, 0x01, 0x01, 0x02, 0x02, 0x04, 0x84, 0x44, 0x44, 0x42, 0x82, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x40, 0x80, 0x80, 0x40, 0x00, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x04, 0x04, 0x08, 0x08, 0x10, 0x20, 0x40, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02, 0x02, 0x02, 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, 0xe0, 0x18, 0x06, 0x01, 0x00, 0x00, 0x0c, 0x03, 0x00, 0x02, 0x18, 0x19, 0x00, 0x05, 0xfe, 0x80, 0x83, 0x83, 0x40, 0x40, 0x40, 0x40, 0x20, 0x21, 0x21, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x04, 0x08, 0x30, 0x40, 0x80, 0x80, 0x00, 0x00, 0x01, 0x86, 0x98, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x0f, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x02, 0x02, 0x02, 0x02, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x0f, 0x0f, 0x07, 0x03, 0x03, 0x61, 0xf0, 0xf8, 0xfc, 0x60, 0x01, 0x01, 0x01, 0x3c, 0x78, 0xf8, 0xf0, 0x70, 0x00, 0x00, 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 animation_phase(void) {
- if (get_current_wpm() <= IDLE_SPEED) {
- current_idle_frame = (current_idle_frame + 1) % IDLE_FRAMES;
- oled_write_raw_P(idle[abs((IDLE_FRAMES - 1) - current_idle_frame)], ANIM_SIZE);
- }
-
- if (get_current_wpm() > IDLE_SPEED && get_current_wpm() < TAP_SPEED) {
- oled_write_raw_P(prep[0], ANIM_SIZE);
- }
-
- if (get_current_wpm() >= TAP_SPEED) {
- current_tap_frame = (current_tap_frame + 1) % TAP_FRAMES;
- oled_write_raw_P(tap[abs((TAP_FRAMES - 1) - current_tap_frame)], ANIM_SIZE);
- }
- }
- if (get_current_wpm() != 000) {
- oled_on(); // Enables OLED on any alpha keypress
-
- if (timer_elapsed32(anim_timer) > ANIM_FRAME_DURATION) {
- anim_timer = timer_read32();
- animation_phase();
- }
-
- anim_sleep = timer_read32();
- } else {
- if (timer_elapsed32(anim_sleep) > OLED_TIMEOUT) {
- oled_off();
- } else {
- if (timer_elapsed32(anim_timer) > ANIM_FRAME_DURATION) {
- anim_timer = timer_read32();
- animation_phase();
- }
- }
- }
-}
-
-// Draw to OLED
-bool oled_task_user() {
- oled_set_cursor(0, 0);
- oled_write(" ScottoGame ", false);
-
- // Render Bongo Cat
- oled_set_cursor(86, 0);
- render_animation();
-
- // WPM text
- oled_set_cursor(0,5);
- oled_write(get_u8_str(get_current_wpm(), '0'), false);
-
- // Layer text
- oled_set_cursor(0, 6);
- switch (get_highest_layer(layer_state)) {
- case _MAC_DEFAULT :
- oled_write_P(PSTR("MAC"), false);
- oled_set_cursor(0, 7);
- oled_write_P(PSTR("MAIN"), false);
- break;
- case _MAC_CODE :
- oled_write_P(PSTR("MAC"), false);
- oled_set_cursor(0, 7);
- oled_write_P(PSTR("CODE"), false);
- break;
- case _MAC_NUM :
- oled_write_P(PSTR("MAC"), false);
- oled_set_cursor(0, 7);
- oled_write_P(PSTR("NUM"), false);
- break;
- case _MAC_FUNC :
- oled_write_P(PSTR("MAC"), false);
- oled_set_cursor(0, 7);
- oled_write_P(PSTR("FUNC"), false);
- break;
- case _WIN_DEFAULT :
- oled_write_P(PSTR("WIN"), false);
- oled_set_cursor(0, 7);
- oled_write_P(PSTR("MAIN"), false);
- break;
- case _WIN_CODE :
- oled_write_P(PSTR("WIN"), false);
- oled_set_cursor(0, 7);
- oled_write_P(PSTR("CODE"), false);
- break;
- case _WIN_NUM :
- oled_write_P(PSTR("WIN"), false);
- oled_set_cursor(0, 7);
- oled_write_P(PSTR("NUM"), false);
- break;
- case _WIN_FUNC :
- oled_write_P(PSTR("WIN"), false);
- oled_set_cursor(0, 7);
- oled_write_P(PSTR("FUNC"), false);
- break;
- }
-
- // Caps lock text
- led_t led_state = host_keyboard_led_state();
- oled_set_cursor(0, 4);
- oled_write_P(led_state.caps_lock ? PSTR("CAPS") : PSTR(" "), false);
-
- return false;
-}
-#endif
diff --git a/keyboards/handwired/scottokeebs/scottogame/keymaps/scotto/rules.mk b/keyboards/handwired/scottokeebs/scottogame/keymaps/scotto/rules.mk
deleted file mode 100644
index bcee933e75..0000000000
--- a/keyboards/handwired/scottokeebs/scottogame/keymaps/scotto/rules.mk
+++ /dev/null
@@ -1,2 +0,0 @@
-WPM_ENABLE = yes
-TAP_DANCE_ENABLE = yes
diff --git a/keyboards/handwired/scottokeebs/scottoinvader/keymaps/scotto/config.h b/keyboards/handwired/scottokeebs/scottoinvader/keymaps/scotto/config.h
deleted file mode 100644
index 1a6512052c..0000000000
--- a/keyboards/handwired/scottokeebs/scottoinvader/keymaps/scotto/config.h
+++ /dev/null
@@ -1,23 +0,0 @@
-/*
-Copyright 2022 Joe Scotto
-
-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 options
-#define TAPPING_TERM 135
-#define PERMISSIVE_HOLD
-#define TAPPING_TERM_PER_KEY
diff --git a/keyboards/handwired/scottokeebs/scottoinvader/keymaps/scotto/keymap.c b/keyboards/handwired/scottokeebs/scottoinvader/keymaps/scotto/keymap.c
deleted file mode 100644
index f4d0a0c7bb..0000000000
--- a/keyboards/handwired/scottokeebs/scottoinvader/keymaps/scotto/keymap.c
+++ /dev/null
@@ -1,174 +0,0 @@
-/*
-Copyright 2022 Joe Scotto
-
-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
-
-// Tap dance declarations
-enum {
- TD_LCTL_ESC_SPOTLIGHT_EMOJI,
- TD_LALT_ESC_WINDOWS_EMOJI
-};
-
-uint16_t get_tapping_term(uint16_t keycode, keyrecord_t *record) {
- switch (keycode) {
- case TD(TD_LCTL_ESC_SPOTLIGHT_EMOJI) :
- case TD(TD_LALT_ESC_WINDOWS_EMOJI) :
- case LGUI_T(KC_SPC) :
- case LT(1, KC_TAB) :
- case LT(2, KC_ENT) :
- return 200;
- default:
- return TAPPING_TERM;
- }
-};
-
-// Begin quad TD
-typedef enum {
- TD_NONE,
- TD_UNKNOWN,
- TD_SINGLE_HOLD,
- TD_SINGLE_TAP,
- TD_DOUBLE_TAP,
- TD_TRIPLE_TAP
-} td_state_t;
-
-typedef struct {
- bool is_press_action;
- td_state_t state;
-} td_tap_t;
-
-// Create an instance of 'td_tap_t' for the 'x' tap dance.
-static td_tap_t xtap_state = {
- .is_press_action = true,
- .state = TD_NONE
-};
-
-td_state_t cur_dance(tap_dance_state_t *state) {
- if (state->count == 1) {
- if (state->interrupted || !state->pressed) {
- return TD_SINGLE_TAP;
- } else {
- return TD_SINGLE_HOLD;
- }
- } else if (state->count == 2) {
- return TD_DOUBLE_TAP;
- } else if (state->count == 3) {
- return TD_TRIPLE_TAP;
- }
-
- return TD_UNKNOWN;
-}
-
-void td_lctl_esc_spotlight_emoji_finished(tap_dance_state_t *state, void *user_data) {
- xtap_state.state = cur_dance(state);
- switch (xtap_state.state) {
- case TD_SINGLE_TAP: register_code(KC_ESC); break;
- case TD_SINGLE_HOLD: register_code(KC_LCTL); break;
- case TD_DOUBLE_TAP: tap_code16(G(KC_SPC)); break;
- case TD_TRIPLE_TAP: tap_code16(C(G(KC_SPC))); break;
- default: break;
- }
-}
-
-void td_lctl_esc_spotlight_emoji_reset(tap_dance_state_t *state, void *user_data) {
- switch (xtap_state.state) {
- case TD_SINGLE_TAP: unregister_code(KC_ESC); break;
- case TD_SINGLE_HOLD: unregister_code(KC_LCTL); break;
- default: break;
- }
- xtap_state.state = TD_NONE;
-}
-
-void td_lalt_esc_windowr_emoji_finished(tap_dance_state_t *state, void *user_data) {
- xtap_state.state = cur_dance(state);
- switch (xtap_state.state) {
- case TD_SINGLE_TAP: register_code(KC_ESC); break;
- case TD_SINGLE_HOLD: register_code(KC_LALT); break;
- case TD_DOUBLE_TAP: tap_code(KC_LGUI); break;
- case TD_TRIPLE_TAP: tap_code16(G(KC_DOT)); break;
- default: break;
- }
-}
-
-void td_lalt_esc_windowr_emoji_reset(tap_dance_state_t *state, void *user_data) {
- switch (xtap_state.state) {
- case TD_SINGLE_TAP: unregister_code(KC_ESC); break;
- case TD_SINGLE_HOLD: unregister_code(KC_LALT); break;
- default: break;
- }
- xtap_state.state = TD_NONE;
-}
-
- // Tap Dance definitions
-tap_dance_action_t tap_dance_actions[] = {
- [TD_LCTL_ESC_SPOTLIGHT_EMOJI] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, td_lctl_esc_spotlight_emoji_finished, td_lctl_esc_spotlight_emoji_reset),
- [TD_LALT_ESC_WINDOWS_EMOJI] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, td_lalt_esc_windowr_emoji_finished, td_lalt_esc_windowr_emoji_reset),
-};
-// For the x tap dance. Put it here so it can be used in any keymap
-void x_finished(tap_dance_state_t *state, void *user_data);
-void x_reset(tap_dance_state_t *state, void *user_data);
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [0] = LAYOUT_split_3x5_3(
- KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_BSPC,
- KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O,
- LSFT_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMMA, KC_DOT, RSFT_T(KC_SLSH),
- TD(TD_LCTL_ESC_SPOTLIGHT_EMOJI), KC_LALT, LGUI_T(KC_SPC), LT(1, KC_TAB), LT(2, KC_ENT), TD(TD_LCTL_ESC_SPOTLIGHT_EMOJI)
- ),
- [1] = LAYOUT_split_3x5_3(
- KC_UNDS, KC_MINS, KC_PLUS, KC_EQL, KC_COLN, KC_GRV, KC_MRWD, KC_MPLY, KC_MFFD, KC_DEL,
- KC_LCBR, KC_LPRN, KC_RPRN, KC_RCBR, KC_PIPE, KC_ESC, KC_LEFT, KC_UP, KC_DOWN, KC_RGHT,
- LSFT_T(KC_LBRC), KC_QUOT, KC_DQUO, KC_RBRC, KC_SCLN, KC_TILDE, KC_VOLD, KC_MUTE, KC_VOLU, RSFT_T(KC_BSLS),
- TD(TD_LCTL_ESC_SPOTLIGHT_EMOJI), KC_LALT, LGUI_T(KC_SPC), KC_TRNS, KC_TRNS, TD(TD_LCTL_ESC_SPOTLIGHT_EMOJI)
- ),
- [2] = LAYOUT_split_3x5_3(
- KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_CAPS, KC_BSPC,
- KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0,
- KC_LSFT, KC_NO, KC_NO, KC_NO, MO(3), KC_NO, KC_NO, KC_COMM, KC_DOT, RSFT_T(KC_SLSH),
- TD(TD_LCTL_ESC_SPOTLIGHT_EMOJI), KC_LALT, LGUI_T(KC_SPC), KC_TRNS, KC_TRNS, TD(TD_LCTL_ESC_SPOTLIGHT_EMOJI)
- ),
- [3] = LAYOUT_split_3x5_3(
- KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, TO(4),
- KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10,
- KC_F11, KC_NO, KC_NO, QK_BOOT, KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_F12,
- TD(TD_LCTL_ESC_SPOTLIGHT_EMOJI), KC_LALT, LGUI_T(KC_SPC), KC_TRNS, KC_TRNS, TD(TD_LCTL_ESC_SPOTLIGHT_EMOJI)
- ),
- [4] = LAYOUT_split_3x5_3(
- KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_BSPC,
- KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O,
- LSFT_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMMA, KC_DOT, RSFT_T(KC_SLSH),
- TD(TD_LALT_ESC_WINDOWS_EMOJI), KC_LCTL, KC_SPC, LT(5, KC_TAB), LT(6, KC_ENT), TD(TD_LALT_ESC_WINDOWS_EMOJI)
- ),
- [5] = LAYOUT_split_3x5_3(
- KC_UNDS, KC_MINS, KC_PLUS, KC_EQL, KC_COLN, KC_GRV, KC_MRWD, KC_MPLY, KC_MFFD, KC_DEL,
- KC_LCBR, KC_LPRN, KC_RPRN, KC_RCBR, KC_PIPE, KC_ESC, KC_LEFT, KC_UP, KC_DOWN, KC_RGHT,
- LSFT_T(KC_LBRC), KC_QUOT, KC_DQUO, KC_RBRC, KC_SCLN, KC_TILDE, KC_VOLD, KC_MUTE, KC_VOLU, RSFT_T(KC_BSLS),
- TD(TD_LALT_ESC_WINDOWS_EMOJI), KC_LCTL, KC_SPC, KC_TRNS, KC_TRNS, TD(TD_LALT_ESC_WINDOWS_EMOJI)
- ),
- [6] = LAYOUT_split_3x5_3(
- KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_CAPS, KC_BSPC,
- KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0,
- KC_LSFT, KC_NO, KC_NO, KC_NO, MO(7), KC_NO, KC_NO, KC_COMM, KC_DOT, RSFT_T(KC_SLSH),
- TD(TD_LALT_ESC_WINDOWS_EMOJI), KC_LCTL, KC_SPC, KC_TRNS, KC_TRNS, TD(TD_LALT_ESC_WINDOWS_EMOJI)
- ),
- [7] = LAYOUT_split_3x5_3(
- KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, TO(0),
- KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10,
- KC_F11, KC_NO, KC_NO, QK_BOOT, KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_F12,
- TD(TD_LALT_ESC_WINDOWS_EMOJI), KC_LCTL, KC_SPC, KC_TRNS, KC_TRNS, TD(TD_LALT_ESC_WINDOWS_EMOJI)
- )
-}; \ No newline at end of file
diff --git a/keyboards/handwired/scottokeebs/scottoinvader/keymaps/scotto/rules.mk b/keyboards/handwired/scottokeebs/scottoinvader/keymaps/scotto/rules.mk
deleted file mode 100644
index e5ddcae8d9..0000000000
--- a/keyboards/handwired/scottokeebs/scottoinvader/keymaps/scotto/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-TAP_DANCE_ENABLE = yes
diff --git a/keyboards/handwired/scottokeebs/scottomouse/keymaps/scotto/config.h b/keyboards/handwired/scottokeebs/scottomouse/keymaps/scotto/config.h
deleted file mode 100644
index 4b0d2cd2fb..0000000000
--- a/keyboards/handwired/scottokeebs/scottomouse/keymaps/scotto/config.h
+++ /dev/null
@@ -1,26 +0,0 @@
-/*
-Copyright 2023 Joe Scotto
-
-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
-
-// Mouse key speed and acceleration.
-#define MOUSEKEY_DELAY 0
-#define MOUSEKEY_INTERVAL 16
-#define MOUSEKEY_WHEEL_DELAY 0
-#define MOUSEKEY_MAX_SPEED 6
-#define MOUSEKEY_TIME_TO_MAX 64
-
diff --git a/keyboards/handwired/scottokeebs/scottomouse/keymaps/scotto/keymap.c b/keyboards/handwired/scottokeebs/scottomouse/keymaps/scotto/keymap.c
deleted file mode 100644
index d17ed1f28a..0000000000
--- a/keyboards/handwired/scottokeebs/scottomouse/keymaps/scotto/keymap.c
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
-Copyright 2023 Joe Scotto
-
-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 scroll_down[] = {KC_MS_BTN1, KC_MS_BTN2, KC_MS_DOWN, COMBO_END};
-const uint16_t PROGMEM scroll_up[] = {KC_MS_BTN1, KC_MS_BTN2, KC_MS_UP, COMBO_END};
-const uint16_t PROGMEM middle_click[] = {KC_MS_BTN1, KC_MS_BTN2, COMBO_END};
-combo_t key_combos[] = {
- COMBO(scroll_down, KC_MS_WH_DOWN),
- COMBO(scroll_up, KC_MS_WH_UP),
- COMBO(middle_click, KC_MS_BTN3)
-};
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [0] = LAYOUT(
- KC_MS_BTN1, KC_MS_BTN2, KC_MS_LEFT, KC_MS_UP, KC_MS_DOWN, KC_MS_RIGHT
- )
-}; \ No newline at end of file
diff --git a/keyboards/handwired/scottokeebs/scottomouse/keymaps/scotto/rules.mk b/keyboards/handwired/scottokeebs/scottomouse/keymaps/scotto/rules.mk
deleted file mode 100644
index ab1e438182..0000000000
--- a/keyboards/handwired/scottokeebs/scottomouse/keymaps/scotto/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-COMBO_ENABLE = yes
diff --git a/keyboards/handwired/scottokeebs/scottoslant/keymaps/scotto/config.h b/keyboards/handwired/scottokeebs/scottoslant/keymaps/scotto/config.h
deleted file mode 100644
index 1a6512052c..0000000000
--- a/keyboards/handwired/scottokeebs/scottoslant/keymaps/scotto/config.h
+++ /dev/null
@@ -1,23 +0,0 @@
-/*
-Copyright 2022 Joe Scotto
-
-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 options
-#define TAPPING_TERM 135
-#define PERMISSIVE_HOLD
-#define TAPPING_TERM_PER_KEY
diff --git a/keyboards/handwired/scottokeebs/scottoslant/keymaps/scotto/keymap.c b/keyboards/handwired/scottokeebs/scottoslant/keymaps/scotto/keymap.c
deleted file mode 100644
index dc2d08d910..0000000000
--- a/keyboards/handwired/scottokeebs/scottoslant/keymaps/scotto/keymap.c
+++ /dev/null
@@ -1,69 +0,0 @@
-/*
-Copyright 2022 Joe Scotto
-
-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(
- KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_BSPC,
- KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O,
- LSFT_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMMA, KC_DOT, RSFT_T(KC_SLSH),
- KC_ESC, KC_LCTL, KC_LALT, LGUI_T(KC_SPC), LT(1, KC_TAB), LT(2, KC_ENT), KC_ESC
- ),
- [1] = LAYOUT(
- KC_UNDS, KC_MINS, KC_PLUS, KC_EQL, KC_COLN, KC_GRV, KC_MRWD, KC_MPLY, KC_MFFD, KC_DEL,
- KC_LCBR, KC_LPRN, KC_RPRN, KC_RCBR, KC_PIPE, KC_ESC, KC_LEFT, KC_UP, KC_DOWN, KC_RGHT,
- LSFT_T(KC_LBRC), KC_QUOT, KC_DQUO, KC_RBRC, KC_SCLN, KC_TILDE, KC_VOLD, KC_MUTE, KC_VOLU, RSFT_T(KC_BSLS),
- KC_ESC, KC_LCTL, KC_LALT, LGUI_T(KC_SPC), KC_TRNS, KC_TRNS, KC_ESC
- ),
- [2] = LAYOUT(
- KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_CAPS, KC_BSPC,
- KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0,
- KC_LSFT, KC_NO, KC_NO, KC_NO, MO(3), KC_NO, KC_NO, KC_COMM, KC_DOT, RSFT_T(KC_SLSH),
- KC_ESC, KC_LCTL, KC_LALT, LGUI_T(KC_SPC), KC_TRNS, KC_TRNS, KC_ESC
- ),
- [3] = LAYOUT(
- KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, TO(4),
- KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10,
- KC_F11, KC_NO, KC_NO, QK_BOOT, KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_F12,
- KC_ESC, KC_LCTL, KC_LALT, LGUI_T(KC_SPC), KC_TRNS, KC_TRNS, KC_ESC
- ),
- [4] = LAYOUT(
- KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_BSPC,
- KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O,
- LSFT_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMMA, KC_DOT, RSFT_T(KC_SLSH),
- KC_ESC, KC_LALT, KC_LCTL, KC_SPC, LT(5, KC_TAB), LT(6, KC_ENT), KC_ESC
- ),
- [5] = LAYOUT(
- KC_UNDS, KC_MINS, KC_PLUS, KC_EQL, KC_COLN, KC_GRV, KC_MRWD, KC_MPLY, KC_MFFD, KC_DEL,
- KC_LCBR, KC_LPRN, KC_RPRN, KC_RCBR, KC_PIPE, KC_ESC, KC_LEFT, KC_UP, KC_DOWN, KC_RGHT,
- LSFT_T(KC_LBRC), KC_QUOT, KC_DQUO, KC_RBRC, KC_SCLN, KC_TILDE, KC_VOLD, KC_MUTE, KC_VOLU, RSFT_T(KC_BSLS),
- KC_ESC, KC_LALT, KC_LCTL, KC_SPC, LT(5, KC_TAB), LT(6, KC_ENT), KC_ESC
- ),
- [6] = LAYOUT(
- KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_CAPS, KC_BSPC,
- KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0,
- KC_LSFT, KC_NO, KC_NO, KC_NO, MO(7), KC_NO, KC_NO, KC_COMM, KC_DOT, RSFT_T(KC_SLSH),
- KC_ESC, KC_LALT, KC_LCTL, KC_SPC, LT(5, KC_TAB), LT(6, KC_ENT), KC_ESC
- ),
- [7] = LAYOUT(
- KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, TO(0),
- KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10,
- KC_F11, KC_NO, KC_NO, QK_BOOT, KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_F12,
- KC_ESC, KC_LALT, KC_LCTL, KC_SPC, LT(5, KC_TAB), LT(6, KC_ENT), KC_ESC
- )
-};
diff --git a/keyboards/handwired/scottokeebs/scottoslant/keymaps/scotto/rules.mk b/keyboards/handwired/scottokeebs/scottoslant/keymaps/scotto/rules.mk
deleted file mode 100644
index e5ddcae8d9..0000000000
--- a/keyboards/handwired/scottokeebs/scottoslant/keymaps/scotto/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-TAP_DANCE_ENABLE = yes
diff --git a/keyboards/handwired/scottokeebs/scottosplit/keymaps/scotto/config.h b/keyboards/handwired/scottokeebs/scottosplit/keymaps/scotto/config.h
deleted file mode 100644
index 1a6512052c..0000000000
--- a/keyboards/handwired/scottokeebs/scottosplit/keymaps/scotto/config.h
+++ /dev/null
@@ -1,23 +0,0 @@
-/*
-Copyright 2022 Joe Scotto
-
-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 options
-#define TAPPING_TERM 135
-#define PERMISSIVE_HOLD
-#define TAPPING_TERM_PER_KEY
diff --git a/keyboards/handwired/scottokeebs/scottosplit/keymaps/scotto/keymap.c b/keyboards/handwired/scottokeebs/scottosplit/keymaps/scotto/keymap.c
deleted file mode 100644
index f4d0a0c7bb..0000000000
--- a/keyboards/handwired/scottokeebs/scottosplit/keymaps/scotto/keymap.c
+++ /dev/null
@@ -1,174 +0,0 @@
-/*
-Copyright 2022 Joe Scotto
-
-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
-
-// Tap dance declarations
-enum {
- TD_LCTL_ESC_SPOTLIGHT_EMOJI,
- TD_LALT_ESC_WINDOWS_EMOJI
-};
-
-uint16_t get_tapping_term(uint16_t keycode, keyrecord_t *record) {
- switch (keycode) {
- case TD(TD_LCTL_ESC_SPOTLIGHT_EMOJI) :
- case TD(TD_LALT_ESC_WINDOWS_EMOJI) :
- case LGUI_T(KC_SPC) :
- case LT(1, KC_TAB) :
- case LT(2, KC_ENT) :
- return 200;
- default:
- return TAPPING_TERM;
- }
-};
-
-// Begin quad TD
-typedef enum {
- TD_NONE,
- TD_UNKNOWN,
- TD_SINGLE_HOLD,
- TD_SINGLE_TAP,
- TD_DOUBLE_TAP,
- TD_TRIPLE_TAP
-} td_state_t;
-
-typedef struct {
- bool is_press_action;
- td_state_t state;
-} td_tap_t;
-
-// Create an instance of 'td_tap_t' for the 'x' tap dance.
-static td_tap_t xtap_state = {
- .is_press_action = true,
- .state = TD_NONE
-};
-
-td_state_t cur_dance(tap_dance_state_t *state) {
- if (state->count == 1) {
- if (state->interrupted || !state->pressed) {
- return TD_SINGLE_TAP;
- } else {
- return TD_SINGLE_HOLD;
- }
- } else if (state->count == 2) {
- return TD_DOUBLE_TAP;
- } else if (state->count == 3) {
- return TD_TRIPLE_TAP;
- }
-
- return TD_UNKNOWN;
-}
-
-void td_lctl_esc_spotlight_emoji_finished(tap_dance_state_t *state, void *user_data) {
- xtap_state.state = cur_dance(state);
- switch (xtap_state.state) {
- case TD_SINGLE_TAP: register_code(KC_ESC); break;
- case TD_SINGLE_HOLD: register_code(KC_LCTL); break;
- case TD_DOUBLE_TAP: tap_code16(G(KC_SPC)); break;
- case TD_TRIPLE_TAP: tap_code16(C(G(KC_SPC))); break;
- default: break;
- }
-}
-
-void td_lctl_esc_spotlight_emoji_reset(tap_dance_state_t *state, void *user_data) {
- switch (xtap_state.state) {
- case TD_SINGLE_TAP: unregister_code(KC_ESC); break;
- case TD_SINGLE_HOLD: unregister_code(KC_LCTL); break;
- default: break;
- }
- xtap_state.state = TD_NONE;
-}
-
-void td_lalt_esc_windowr_emoji_finished(tap_dance_state_t *state, void *user_data) {
- xtap_state.state = cur_dance(state);
- switch (xtap_state.state) {
- case TD_SINGLE_TAP: register_code(KC_ESC); break;
- case TD_SINGLE_HOLD: register_code(KC_LALT); break;
- case TD_DOUBLE_TAP: tap_code(KC_LGUI); break;
- case TD_TRIPLE_TAP: tap_code16(G(KC_DOT)); break;
- default: break;
- }
-}
-
-void td_lalt_esc_windowr_emoji_reset(tap_dance_state_t *state, void *user_data) {
- switch (xtap_state.state) {
- case TD_SINGLE_TAP: unregister_code(KC_ESC); break;
- case TD_SINGLE_HOLD: unregister_code(KC_LALT); break;
- default: break;
- }
- xtap_state.state = TD_NONE;
-}
-
- // Tap Dance definitions
-tap_dance_action_t tap_dance_actions[] = {
- [TD_LCTL_ESC_SPOTLIGHT_EMOJI] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, td_lctl_esc_spotlight_emoji_finished, td_lctl_esc_spotlight_emoji_reset),
- [TD_LALT_ESC_WINDOWS_EMOJI] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, td_lalt_esc_windowr_emoji_finished, td_lalt_esc_windowr_emoji_reset),
-};
-// For the x tap dance. Put it here so it can be used in any keymap
-void x_finished(tap_dance_state_t *state, void *user_data);
-void x_reset(tap_dance_state_t *state, void *user_data);
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [0] = LAYOUT_split_3x5_3(
- KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_BSPC,
- KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O,
- LSFT_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMMA, KC_DOT, RSFT_T(KC_SLSH),
- TD(TD_LCTL_ESC_SPOTLIGHT_EMOJI), KC_LALT, LGUI_T(KC_SPC), LT(1, KC_TAB), LT(2, KC_ENT), TD(TD_LCTL_ESC_SPOTLIGHT_EMOJI)
- ),
- [1] = LAYOUT_split_3x5_3(
- KC_UNDS, KC_MINS, KC_PLUS, KC_EQL, KC_COLN, KC_GRV, KC_MRWD, KC_MPLY, KC_MFFD, KC_DEL,
- KC_LCBR, KC_LPRN, KC_RPRN, KC_RCBR, KC_PIPE, KC_ESC, KC_LEFT, KC_UP, KC_DOWN, KC_RGHT,
- LSFT_T(KC_LBRC), KC_QUOT, KC_DQUO, KC_RBRC, KC_SCLN, KC_TILDE, KC_VOLD, KC_MUTE, KC_VOLU, RSFT_T(KC_BSLS),
- TD(TD_LCTL_ESC_SPOTLIGHT_EMOJI), KC_LALT, LGUI_T(KC_SPC), KC_TRNS, KC_TRNS, TD(TD_LCTL_ESC_SPOTLIGHT_EMOJI)
- ),
- [2] = LAYOUT_split_3x5_3(
- KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_CAPS, KC_BSPC,
- KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0,
- KC_LSFT, KC_NO, KC_NO, KC_NO, MO(3), KC_NO, KC_NO, KC_COMM, KC_DOT, RSFT_T(KC_SLSH),
- TD(TD_LCTL_ESC_SPOTLIGHT_EMOJI), KC_LALT, LGUI_T(KC_SPC), KC_TRNS, KC_TRNS, TD(TD_LCTL_ESC_SPOTLIGHT_EMOJI)
- ),
- [3] = LAYOUT_split_3x5_3(
- KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, TO(4),
- KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10,
- KC_F11, KC_NO, KC_NO, QK_BOOT, KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_F12,
- TD(TD_LCTL_ESC_SPOTLIGHT_EMOJI), KC_LALT, LGUI_T(KC_SPC), KC_TRNS, KC_TRNS, TD(TD_LCTL_ESC_SPOTLIGHT_EMOJI)
- ),
- [4] = LAYOUT_split_3x5_3(
- KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_BSPC,
- KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O,
- LSFT_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMMA, KC_DOT, RSFT_T(KC_SLSH),
- TD(TD_LALT_ESC_WINDOWS_EMOJI), KC_LCTL, KC_SPC, LT(5, KC_TAB), LT(6, KC_ENT), TD(TD_LALT_ESC_WINDOWS_EMOJI)
- ),
- [5] = LAYOUT_split_3x5_3(
- KC_UNDS, KC_MINS, KC_PLUS, KC_EQL, KC_COLN, KC_GRV, KC_MRWD, KC_MPLY, KC_MFFD, KC_DEL,
- KC_LCBR, KC_LPRN, KC_RPRN, KC_RCBR, KC_PIPE, KC_ESC, KC_LEFT, KC_UP, KC_DOWN, KC_RGHT,
- LSFT_T(KC_LBRC), KC_QUOT, KC_DQUO, KC_RBRC, KC_SCLN, KC_TILDE, KC_VOLD, KC_MUTE, KC_VOLU, RSFT_T(KC_BSLS),
- TD(TD_LALT_ESC_WINDOWS_EMOJI), KC_LCTL, KC_SPC, KC_TRNS, KC_TRNS, TD(TD_LALT_ESC_WINDOWS_EMOJI)
- ),
- [6] = LAYOUT_split_3x5_3(
- KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_CAPS, KC_BSPC,
- KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0,
- KC_LSFT, KC_NO, KC_NO, KC_NO, MO(7), KC_NO, KC_NO, KC_COMM, KC_DOT, RSFT_T(KC_SLSH),
- TD(TD_LALT_ESC_WINDOWS_EMOJI), KC_LCTL, KC_SPC, KC_TRNS, KC_TRNS, TD(TD_LALT_ESC_WINDOWS_EMOJI)
- ),
- [7] = LAYOUT_split_3x5_3(
- KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, TO(0),
- KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10,
- KC_F11, KC_NO, KC_NO, QK_BOOT, KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_F12,
- TD(TD_LALT_ESC_WINDOWS_EMOJI), KC_LCTL, KC_SPC, KC_TRNS, KC_TRNS, TD(TD_LALT_ESC_WINDOWS_EMOJI)
- )
-}; \ No newline at end of file
diff --git a/keyboards/handwired/scottokeebs/scottosplit/keymaps/scotto/rules.mk b/keyboards/handwired/scottokeebs/scottosplit/keymaps/scotto/rules.mk
deleted file mode 100644
index e5ddcae8d9..0000000000
--- a/keyboards/handwired/scottokeebs/scottosplit/keymaps/scotto/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-TAP_DANCE_ENABLE = yes
diff --git a/keyboards/handwired/split_cloud/keymaps/default/keymap.c b/keyboards/handwired/split_cloud/keymaps/default/keymap.c
index f94a112c07..ad7e64e6ad 100644
--- a/keyboards/handwired/split_cloud/keymaps/default/keymap.c
+++ b/keyboards/handwired/split_cloud/keymaps/default/keymap.c
@@ -15,7 +15,6 @@
*/
#include QMK_KEYBOARD_H
-#include "keymap_steno.h"
// clang-format off
diff --git a/keyboards/handwired/steamvan/rev1/config.h b/keyboards/handwired/steamvan/rev1/config.h
index 88323300f8..a779dcccab 100644
--- a/keyboards/handwired/steamvan/rev1/config.h
+++ b/keyboards/handwired/steamvan/rev1/config.h
@@ -22,7 +22,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
/* Locking resynchronize hack */
#define LOCKING_RESYNC_ENABLE
-#define WS2812_SPI SPID1
+#define WS2812_SPI_DRIVER SPID1
#define WS2812_SPI_MOSI_PAL_MODE 5
#define RGB_MATRIX_KEYPRESSES
diff --git a/keyboards/handwired/swiftrax/beegboy/config.h b/keyboards/handwired/swiftrax/beegboy/config.h
deleted file mode 100644
index 092f2ba0e9..0000000000
--- a/keyboards/handwired/swiftrax/beegboy/config.h
+++ /dev/null
@@ -1,21 +0,0 @@
-/*
-Copyright 2020 Swiftrax <swiftrax@gmail.com>
-
-This program is free software: you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program. If not, see <http://www.gnu.org/licenses/>.
-*/
-
-#pragma once
-
-/*EEPROM for via*/
-#define DYNAMIC_KEYMAP_LAYER_COUNT 3
diff --git a/keyboards/handwired/swiftrax/cowfish/config.h b/keyboards/handwired/swiftrax/cowfish/config.h
deleted file mode 100644
index 092f2ba0e9..0000000000
--- a/keyboards/handwired/swiftrax/cowfish/config.h
+++ /dev/null
@@ -1,21 +0,0 @@
-/*
-Copyright 2020 Swiftrax <swiftrax@gmail.com>
-
-This program is free software: you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program. If not, see <http://www.gnu.org/licenses/>.
-*/
-
-#pragma once
-
-/*EEPROM for via*/
-#define DYNAMIC_KEYMAP_LAYER_COUNT 3
diff --git a/keyboards/handwired/swiftrax/glacier/config.h b/keyboards/handwired/swiftrax/glacier/config.h
deleted file mode 100644
index 7f9b0b12d4..0000000000
--- a/keyboards/handwired/swiftrax/glacier/config.h
+++ /dev/null
@@ -1,21 +0,0 @@
-/*
-Copyright 2021 Swiftrax <swiftrax@gmail.com>
-
-This program is free software: you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program. If not, see <http://www.gnu.org/licenses/>.
-*/
-
-#pragma once
-
-/*EEPROM for via*/
-#define DYNAMIC_KEYMAP_LAYER_COUNT 3
diff --git a/keyboards/handwired/swiftrax/joypad/config.h b/keyboards/handwired/swiftrax/joypad/config.h
deleted file mode 100644
index 092f2ba0e9..0000000000
--- a/keyboards/handwired/swiftrax/joypad/config.h
+++ /dev/null
@@ -1,21 +0,0 @@
-/*
-Copyright 2020 Swiftrax <swiftrax@gmail.com>
-
-This program is free software: you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program. If not, see <http://www.gnu.org/licenses/>.
-*/
-
-#pragma once
-
-/*EEPROM for via*/
-#define DYNAMIC_KEYMAP_LAYER_COUNT 3
diff --git a/keyboards/handwired/swiftrax/koalafications/config.h b/keyboards/handwired/swiftrax/koalafications/config.h
deleted file mode 100644
index 7435ce54af..0000000000
--- a/keyboards/handwired/swiftrax/koalafications/config.h
+++ /dev/null
@@ -1,21 +0,0 @@
-/*
-Copyright 2021 Swiftrax <swiftrax@gmail.com>
-
-This program is free software: you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program. If not, see <http://www.gnu.org/licenses/>.
-*/
-
-#pragma once
-
-/*EEPROM for via*/
-#define DYNAMIC_KEYMAP_LAYER_COUNT 3 \ No newline at end of file
diff --git a/keyboards/handwired/swiftrax/nodu/config.h b/keyboards/handwired/swiftrax/nodu/config.h
deleted file mode 100644
index 6726795c45..0000000000
--- a/keyboards/handwired/swiftrax/nodu/config.h
+++ /dev/null
@@ -1,21 +0,0 @@
-/*
-Copyright 2020 Swiftrax <swiftrax@gmail.com>
-
-This program is free software: you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program. If not, see <http://www.gnu.org/licenses/>.
-*/
-
-#pragma once
-
-/*EEPROM for via*/
-#define DYNAMIC_KEYMAP_LAYER_COUNT 3 \ No newline at end of file
diff --git a/keyboards/handwired/swiftrax/pandamic/config.h b/keyboards/handwired/swiftrax/pandamic/config.h
deleted file mode 100644
index 092f2ba0e9..0000000000
--- a/keyboards/handwired/swiftrax/pandamic/config.h
+++ /dev/null
@@ -1,21 +0,0 @@
-/*
-Copyright 2020 Swiftrax <swiftrax@gmail.com>
-
-This program is free software: you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program. If not, see <http://www.gnu.org/licenses/>.
-*/
-
-#pragma once
-
-/*EEPROM for via*/
-#define DYNAMIC_KEYMAP_LAYER_COUNT 3
diff --git a/keyboards/handwired/swiftrax/the_galleon/config.h b/keyboards/handwired/swiftrax/the_galleon/config.h
deleted file mode 100644
index 7f9b0b12d4..0000000000
--- a/keyboards/handwired/swiftrax/the_galleon/config.h
+++ /dev/null
@@ -1,21 +0,0 @@
-/*
-Copyright 2021 Swiftrax <swiftrax@gmail.com>
-
-This program is free software: you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program. If not, see <http://www.gnu.org/licenses/>.
-*/
-
-#pragma once
-
-/*EEPROM for via*/
-#define DYNAMIC_KEYMAP_LAYER_COUNT 3
diff --git a/keyboards/handwired/swiftrax/the_galleon/info.json b/keyboards/handwired/swiftrax/the_galleon/info.json
index b12fc5c31f..2e0771e22c 100644
--- a/keyboards/handwired/swiftrax/the_galleon/info.json
+++ b/keyboards/handwired/swiftrax/the_galleon/info.json
@@ -13,6 +13,9 @@
"rows": ["B1", "B0", "D2", "B7", "D5", "D3", "D6", "D4", "B4", "D7", "B6", "B5", "C7", "C6"]
},
"diode_direction": "ROW2COL",
+ "dynamic_keymap": {
+ "layer_count": 3
+ },
"processor": "atmega32u4",
"bootloader": "atmel-dfu",
"layouts": {
diff --git a/keyboards/handwired/tractyl_manuform/4x6_right/keymaps/drashna/config.h b/keyboards/handwired/tractyl_manuform/4x6_right/keymaps/drashna/config.h
deleted file mode 100644
index d7bc0f5bd5..0000000000
--- a/keyboards/handwired/tractyl_manuform/4x6_right/keymaps/drashna/config.h
+++ /dev/null
@@ -1,35 +0,0 @@
-/* Copyright 2020 Christopher Courtney, aka Drashna Jael're (@drashna) <drashna@live.com>
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-#pragma once
-
-// #define USE_I2C
-// #define SELECT_SOFT_SERIAL_SPEED 1
-#define SPLIT_MODS_ENABLE
-#define EE_HANDS
-
-#define TRACKBALL_DPI_OPTIONS { 1200, 1800, 2600, 3400 }
-
-#define RGBLIGHT_MAX_BRIGHTNESS 60
-
-#undef DEBOUNCE
-#define DEBOUNCE 10
-
-#define SOLENOID_PIN F1
-#define SOLENOID_DEFAULT_DWELL 8
-
-#define OLED_DISPLAY_128X64
-#define OLED_BRIGHTNESS 50
diff --git a/keyboards/handwired/tractyl_manuform/4x6_right/keymaps/drashna/keymap.c b/keyboards/handwired/tractyl_manuform/4x6_right/keymaps/drashna/keymap.c
deleted file mode 100644
index a7d7528dfb..0000000000
--- a/keyboards/handwired/tractyl_manuform/4x6_right/keymaps/drashna/keymap.c
+++ /dev/null
@@ -1,117 +0,0 @@
-/* Copyright 2020 Christopher Courtney, aka Drashna Jael're (@drashna) <drashna@live.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 "drashna.h"
-
-// clang-format off
-#define LAYOUT_4x6_right_wrapper(...) LAYOUT_4x6_right(__VA_ARGS__)
-#define LAYOUT_4x6_right_base( \
- K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, \
- K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, \
- K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A \
- ) \
- LAYOUT_4x6_right_wrapper( \
- SH_TT, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, SH_TT, \
- LALT_T(KC_TAB), K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, RALT_T(K1B), \
- OS_LSFT, CTL_T(K21), K22, K23, K24, K25, K26, K27, K28, K29, RCTL_T(K2A), OS_RSFT, \
- OS_LGUI, OS_LALT, OS_RGUI, OS_RALT, \
- KC_PSCR, KC_GRV, MEH_T(KC_BTN3), \
- KC_SPC, OS_LGUI, KC_ENT, \
- BK_LWER, TT(_MOUSE), TT(_MOUSE), DL_RAIS \
- )
-#define LAYOUT_base_wrapper(...) LAYOUT_4x6_right_base(__VA_ARGS__)
-
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [_DEFAULT_LAYER_1] = LAYOUT_base_wrapper(
- _________________QWERTY_L1_________________, _________________QWERTY_R1_________________,
- _________________QWERTY_L2_________________, _________________QWERTY_R2_________________,
- _________________QWERTY_L3_________________, _________________QWERTY_R3_________________
- ),
-
- [_DEFAULT_LAYER_2] = LAYOUT_base_wrapper(
- ______________COLEMAK_MOD_DH_L1____________, ______________COLEMAK_MOD_DH_R1____________,
- ______________COLEMAK_MOD_DH_L2____________, ______________COLEMAK_MOD_DH_R2____________,
- ______________COLEMAK_MOD_DH_L3____________, ______________COLEMAK_MOD_DH_R3____________
- ),
- [_DEFAULT_LAYER_3] = LAYOUT_base_wrapper(
- _________________COLEMAK_L1________________, _________________COLEMAK_R1________________,
- _________________COLEMAK_L2________________, _________________COLEMAK_R2________________,
- _________________COLEMAK_L3________________, _________________COLEMAK_R3________________
- ),
-
- [_DEFAULT_LAYER_4] = LAYOUT_base_wrapper(
- _________________DVORAK_L1_________________, _________________DVORAK_R1_________________,
- _________________DVORAK_L2_________________, _________________DVORAK_R2_________________,
- _________________DVORAK_L3_________________, _________________DVORAK_R3_________________
- ),
-
- [_MOUSE] = LAYOUT_4x6_right(
- _______, _______, _______, _______, _______, _______, KC_WH_U, DPI_RMOD,DPI_MOD, S_D_RMOD,S_D_MOD, SNP_TOG,
- _______, _______, _______, _______, _______, _______, KC_WH_D, KC_BTN1, KC_BTN3, KC_BTN2, KC_BTN6, SNIPING,
- _______, _______, _______, _______, _______, _______, KC_BTN7, KC_BTN4, KC_BTN5, KC_BTN8, _______, _______,
- _______, _______, _______, _______,
- _______, _______, _______,
- _______, _______, _______,
- _______, _______, _______, _______
- ),
- [_GAMEPAD] = LAYOUT_4x6_right(
- KC_F1, KC_K, KC_Q, KC_W, KC_E, KC_R, _______, _______, _______, _______, _______, _______,
- KC_TAB, KC_G, KC_A, KC_S, KC_D, KC_F, _______, _______, _______, _______, _______, _______,
- KC_LCTL, KC_LSFT, KC_Z, KC_X, KC_C, KC_H, _______, _______, _______, _______, _______, _______,
- KC_I, KC_T, TG_GAME, KC_NO,
- KC_V, KC_O, _______,
- KC_SPC, KC_P, _______,
- KC_H, KC_LGUI, _______, _______
- ),
- [_DIABLO] = LAYOUT_4x6_right(
- KC_TAB, KC_S, KC_I, KC_F, KC_M, KC_T, _______, _______, _______, _______, _______, _______,
- KC_Q, KC_1, KC_2, KC_3, KC_4, KC_G, _______, _______, _______, _______, _______, _______,
- KC_LCTL, KC_D3_1, KC_D3_2, KC_D3_3, KC_D3_4, KC_Z, _______, _______, _______, _______, _______, _______,
- KC_F, KC_L, KC_NO, TG_DBLO,
- KC_DIABLO_CLEAR, KC_F, _______,
- SFT_T(KC_SPC), KC_J, _______,
- ALT_T(KC_Q), KC_LGUI, _______, _______
- ),
- [_LOWER] = LAYOUT_4x6_right_wrapper(
- KC_F12, _________________LOWER_L1__________________, _________________LOWER_R1__________________, KC_F11,
- _______, _________________LOWER_L2__________________, _________________LOWER_R2__________________, KC_PIPE,
- _______, _________________LOWER_L3__________________, _________________LOWER_R3__________________, _______,
- _______, _______, _______, _______,
- _______, _______, _______,
- _______, _______, _______,
- _______, _______, _______, _______
- ),
- [_RAISE] = LAYOUT_4x6_right_wrapper(
- KC_F12, _________________RAISE_L1__________________, _________________RAISE_R1__________________, KC_F11,
- _______, _________________RAISE_L2__________________, _________________RAISE_R2__________________, KC_BSLS,
- _______, _________________RAISE_L3__________________, _________________RAISE_R3__________________, _______,
- _______, _______, _______, _______,
- _______, _______, _______,
- _______, _______, _______,
- _______, _______, _______, _______
- ),
- [_ADJUST] = LAYOUT_4x6_right_wrapper(
- QK_MAKE, _________________ADJUST_L1_________________, _________________ADJUST_R1_________________, QK_BOOT,
- VRSN, _________________ADJUST_L2_________________, _________________ADJUST_R2_________________, EE_CLR,
- UC_NEXT, _________________ADJUST_L3_________________, _________________ADJUST_R3_________________, TG_MODS,
- HF_DWLU, HF_DWLD, TG_GAME, TG_DBLO,
- HF_TOGG, HF_BUZZ, KC_NUKE,
- _______, _______, _______,
- _______, _______, KC_NUKE, _______
- ),
-};
-// clang-format on
diff --git a/keyboards/handwired/tractyl_manuform/4x6_right/keymaps/drashna/rules.mk b/keyboards/handwired/tractyl_manuform/4x6_right/keymaps/drashna/rules.mk
deleted file mode 100644
index d2d2a9b874..0000000000
--- a/keyboards/handwired/tractyl_manuform/4x6_right/keymaps/drashna/rules.mk
+++ /dev/null
@@ -1,8 +0,0 @@
-RGBLIGHT_STARTUP_ANIMATION = yes
-AUDIO_ENABLE = yes
-HAPTIC_ENABLE = no
-COMMAND_ENABLE = no
-TAP_DANCE_ENABLE = yes
-UNICODE_ENABLE = yes
-OLED_ENABLE = yes
-WPM_ENABLE = yes
diff --git a/keyboards/handwired/tractyl_manuform/5x6_right/f303/info.json b/keyboards/handwired/tractyl_manuform/5x6_right/f303/info.json
index 62fa261ac7..eafb77fce2 100644
--- a/keyboards/handwired/tractyl_manuform/5x6_right/f303/info.json
+++ b/keyboards/handwired/tractyl_manuform/5x6_right/f303/info.json
@@ -5,6 +5,9 @@
"rows": ["B10", "B11", "B12", "A14", "A13", "A15"]
},
"diode_direction": "COL2ROW",
+ "eeprom": {
+ "driver": "spi"
+ },
"rgblight": {
"led_count": 20,
"split_count": [10, 10]
diff --git a/keyboards/handwired/tractyl_manuform/5x6_right/f303/rules.mk b/keyboards/handwired/tractyl_manuform/5x6_right/f303/rules.mk
index 3959814c8d..ab601e31f9 100644
--- a/keyboards/handwired/tractyl_manuform/5x6_right/f303/rules.mk
+++ b/keyboards/handwired/tractyl_manuform/5x6_right/f303/rules.mk
@@ -1,6 +1,5 @@
# KEYBOARD_SHARED_EP = yes
CONSOLE_ENABLE = yes
-EEPROM_DRIVER = spi
SERIAL_DRIVER = usart
AUDIO_DRIVER = dac_additive
diff --git a/keyboards/handwired/tractyl_manuform/5x6_right/f411/info.json b/keyboards/handwired/tractyl_manuform/5x6_right/f411/info.json
index 3f0c316928..e5a6dc6c7a 100644
--- a/keyboards/handwired/tractyl_manuform/5x6_right/f411/info.json
+++ b/keyboards/handwired/tractyl_manuform/5x6_right/f411/info.json
@@ -5,6 +5,9 @@
"rows": ["B12", "B13", "B14", "B15", "A8", "A10"]
},
"diode_direction": "COL2ROW",
+ "eeprom": {
+ "driver": "spi"
+ },
"rgblight": {
"led_count": 57,
"split_count": [26, 31]
diff --git a/keyboards/handwired/tractyl_manuform/5x6_right/f411/rules.mk b/keyboards/handwired/tractyl_manuform/5x6_right/f411/rules.mk
index b466a6234a..0c4b05ee7e 100644
--- a/keyboards/handwired/tractyl_manuform/5x6_right/f411/rules.mk
+++ b/keyboards/handwired/tractyl_manuform/5x6_right/f411/rules.mk
@@ -2,6 +2,5 @@ KEYBOARD_SHARED_EP = yes
CONSOLE_ENABLE = yes
MOUSE_SHARED_EP = yes
-EEPROM_DRIVER = spi
SERIAL_DRIVER = usart
AUDIO_DRIVER = pwm_hardware
diff --git a/keyboards/handwired/tractyl_manuform/5x6_right/keymaps/drashna/config.h b/keyboards/handwired/tractyl_manuform/5x6_right/keymaps/drashna/config.h
deleted file mode 100644
index 5cb2a76de2..0000000000
--- a/keyboards/handwired/tractyl_manuform/5x6_right/keymaps/drashna/config.h
+++ /dev/null
@@ -1,36 +0,0 @@
-/* Copyright 2020 Christopher Courtney, aka Drashna Jael're (@drashna) <drashna@live.com>
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-#pragma once
-
-#undef OLED_DISPLAY_128X64
-#define OLED_DISPLAY_128X128
-#define OLED_BRIGHTNESS 200
-
-#define CHARYBDIS_MINIMUM_DEFAULT_DPI 1200
-#define CHARYBDIS_DEFAULT_DPI_CONFIG_STEP 200
-#define CHARYBDIS_MINIMUM_SNIPING_DPI 400
-#define CHARYBDIS_SNIPING_DPI_CONFIG_STEP 200
-
-#define BOOTMAGIC_LITE_EEPROM_ROW 1
-#define BOOTMAGIC_LITE_EEPROM_COLUMN 0
-#define BOOTMAGIC_LITE_EEPROM_ROW_RIGHT 7
-#define BOOTMAGIC_LITE_EEPROM_COLUMN_RIGHT 5
-
-
-#define DRV2605L_FB_ERM_LRA 0
-#define DRV2605L_GREETING DRV2605L_EFFECT_750_MS_ALERT_100
-#define DRV2605L_DEFAULT_MODE DRV2605L_EFFECT_BUZZ_1_100
diff --git a/keyboards/handwired/tractyl_manuform/5x6_right/keymaps/drashna/keymap.c b/keyboards/handwired/tractyl_manuform/5x6_right/keymaps/drashna/keymap.c
deleted file mode 100644
index 380e17fb09..0000000000
--- a/keyboards/handwired/tractyl_manuform/5x6_right/keymaps/drashna/keymap.c
+++ /dev/null
@@ -1,161 +0,0 @@
-/* Copyright 2020 Christopher Courtney, aka Drashna Jael're (@drashna) <drashna@live.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 "drashna.h"
-
-// clang-format off
-#define LAYOUT_5x6_right_wrapper(...) LAYOUT_5x6_right(__VA_ARGS__)
-#define LAYOUT_5x6_right_base( \
- K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, \
- K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, \
- K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A \
- ) \
- LAYOUT_5x6_right_wrapper( \
- KC_ESC, ________________NUMBER_LEFT________________, ________________NUMBER_RIGHT_______________, UC_CLUE, \
- SH_TT, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, SH_TT, \
- LALT_T(KC_TAB), K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, RALT_T(K1B), \
- OS_LSFT, CTL_T(K21), K22, K23, K24, K25, K26, K27, K28, K29, RCTL_T(K2A), OS_RSFT, \
- OS_LALT, OS_LGUI, OS_RGUI, OS_RALT, \
- KC_MUTE, KC_GRV, KC_BTN3, \
- KC_SPC, UC_IRNY, KC_ENT, \
- BK_LWER, TT(_MOUSE), TT(_MOUSE), DL_RAIS \
- )
-#define LAYOUT_base_wrapper(...) LAYOUT_5x6_right_base(__VA_ARGS__)
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [_DEFAULT_LAYER_1] = LAYOUT_base_wrapper(
- _________________QWERTY_L1_________________, _________________QWERTY_R1_________________,
- _________________QWERTY_L2_________________, _________________QWERTY_R2_________________,
- _________________QWERTY_L3_________________, _________________QWERTY_R3_________________
- ),
-
- [_DEFAULT_LAYER_2] = LAYOUT_base_wrapper(
- ______________COLEMAK_MOD_DH_L1____________, ______________COLEMAK_MOD_DH_R1____________,
- ______________COLEMAK_MOD_DH_L2____________, ______________COLEMAK_MOD_DH_R2____________,
- ______________COLEMAK_MOD_DH_L3____________, ______________COLEMAK_MOD_DH_R3____________
- ),
- [_DEFAULT_LAYER_3] = LAYOUT_base_wrapper(
- _________________COLEMAK_L1________________, _________________COLEMAK_R1________________,
- _________________COLEMAK_L2________________, _________________COLEMAK_R2________________,
- _________________COLEMAK_L3________________, _________________COLEMAK_R3________________
- ),
-
- [_DEFAULT_LAYER_4] = LAYOUT_base_wrapper(
- _________________DVORAK_L1_________________, _________________DVORAK_R1_________________,
- _________________DVORAK_L2_________________, _________________DVORAK_R2_________________,
- _________________DVORAK_L3_________________, _________________DVORAK_R3_________________
- ),
-
- [_GAMEPAD] = LAYOUT_5x6_right(
- KC_ESC, KC_NO, KC_1, KC_2, KC_3, KC_4, _______, _______, _______, _______, _______, _______,
- KC_F1, KC_K, KC_Q, KC_W, KC_E, KC_R, _______, _______, _______, _______, _______, _______,
- KC_TAB, KC_G, KC_A, KC_S, KC_D, KC_F, _______, _______, _______, _______, _______, _______,
- KC_LCTL, KC_LSFT, KC_Z, KC_X, KC_C, KC_H, _______, _______, _______, _______, _______, _______,
- KC_I, KC_T, TG_GAME, KC_NO,
- KC_V, KC_O, _______,
- KC_SPC, KC_P, _______,
- KC_H, KC_LGUI, _______, _______
- ),
- [_DIABLO] = LAYOUT_5x6_right(
- KC_ESC, KC_V, KC_D, KC_LALT, KC_NO, KC_NO, KC_F9, KC_F10, KC_F11, KC_F12, KC_NO, KC_NO,
- KC_TAB, KC_S, KC_I, KC_F, KC_M, KC_T, _______, _______, _______, _______, _______, _______,
- KC_Q, KC_1, KC_2, KC_3, KC_4, KC_G, _______, _______, _______, _______, _______, _______,
- KC_LCTL, KC_D3_1, KC_D3_2, KC_D3_3, KC_D3_4, KC_Z, _______, _______, _______, _______, _______, _______,
- KC_F, KC_L, KC_NO, TG_DBLO,
- KC_DIABLO_CLEAR, KC_F, _______,
- SFT_T(KC_SPC), KC_J, _______,
- ALT_T(KC_Q), KC_LGUI, _______, _______
- ),
- [_DIABLOII] = LAYOUT_5x6_right(
- KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_GRV, _______, _______, _______, _______, _______, _______,
- KC_TAB, KC_A, KC_T, KC_Q, KC_I, KC_M, _______, _______, _______, _______, _______, _______,
- KC_S, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, _______, _______, _______, _______, _______, _______,
- KC_LCTL, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, _______, _______, _______, _______, _______, _______,
- KC_F, KC_L, KC_NO, TG(_DIABLOII),
- _______, KC_G, _______,
- KC_LSFT, _______, _______,
- KC_LCTL, KC_V, _______, _______
- ),
- [_MOUSE] = LAYOUT_5x6_right(
- _______, _______, _______, _______, _______, _______, _______, DPI_RMOD,DPI_MOD, S_D_RMOD,S_D_MOD, PD_JIGGLER,
- _______, _______, _______, _______, _______, _______, KC_WH_U, _______, _______, _______, _______, DRGSCRL,
- _______, _______, _______, _______, _______, _______, KC_WH_D, KC_BTN1, KC_BTN3, KC_BTN2, KC_BTN6, SNIPING,
- _______, _______, _______, _______, _______, _______, KC_BTN7, KC_BTN4, KC_BTN5, KC_BTN8, _______, _______,
- _______, _______, _______, _______,
- _______, _______, KC_BTN3,
- _______, _______, _______,
- _______, _______, _______, _______
- ),
- [_LOWER] = LAYOUT_5x6_right_wrapper(
- KC_F12, _________________FUNC_LEFT_________________, _________________FUNC_RIGHT________________, KC_F11,
- _______, _________________LOWER_L1__________________, _________________LOWER_R1__________________, _______,
- _______, _________________LOWER_L2__________________, _________________LOWER_R2__________________, KC_PIPE,
- _______, _________________LOWER_L3__________________, _________________LOWER_R3__________________, _______,
- _______, _______, _______, _______,
- _______, _______, _______,
- _______, _______, _______,
- _______, _______, _______, _______
- ),
- [_RAISE] = LAYOUT_5x6_right_wrapper(
- KC_F12, _________________FUNC_LEFT_________________, _________________FUNC_RIGHT________________, KC_F11,
- KC_GRV, _________________RAISE_L1__________________, _________________RAISE_R1__________________, _______,
- _______, _________________RAISE_L2__________________, _________________RAISE_R2__________________, KC_BSLS,
- _______, _________________RAISE_L3__________________, _________________RAISE_R3__________________, _______,
- _______, _______, _______, _______,
- OL_LOCK, _______, _______,
- _______, _______, _______,
- _______, _______, _______, _______
- ),
- [_ADJUST] = LAYOUT_5x6_right_wrapper(
- QK_MAKE, KC_WIDE,KC_AUSSIE,KC_SCRIPT,KC_ZALGO,KC_NOMODE, KC_NOMODE,KC_BLOCKS,KC_REGIONAL,_______,_______, QK_BOOT,
- VRSN, _________________ADJUST_L1_________________, _________________ADJUST_R1_________________, EE_CLR,
- KEYLOCK, _________________ADJUST_L2_________________, _________________ADJUST_R2_________________, TG_MODS,
- UC_NEXT, _________________ADJUST_L3_________________, _________________ADJUST_R3_________________, KC_MPLY,
- TG(_DIABLOII), AUTO_CTN, TG_GAME, TG_DBLO,
- _______, QK_RBT, KC_NUKE,
- HF_TOGG, _______, _______,
- _______, _______, KC_NUKE, _______
- ),
-};
-// clang-format on
-
-#ifdef ENCODER_MAP_ENABLE
-// clang-format off
-const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = {
- [_DEFAULT_LAYER_1] = { ENCODER_CCW_CW( KC_VOLU, KC_VOLD ), ENCODER_CCW_CW( KC_WH_U, KC_WH_D ) },
- [_DEFAULT_LAYER_2] = { ENCODER_CCW_CW( _______, _______ ), ENCODER_CCW_CW( _______, _______ ) },
- [_DEFAULT_LAYER_3] = { ENCODER_CCW_CW( _______, _______ ), ENCODER_CCW_CW( _______, _______ ) },
- [_DEFAULT_LAYER_4] = { ENCODER_CCW_CW( _______, _______ ), ENCODER_CCW_CW( _______, _______ ) },
- [_GAMEPAD] = { ENCODER_CCW_CW( _______, _______ ), ENCODER_CCW_CW( _______, _______ ) },
- [_DIABLO] = { ENCODER_CCW_CW( _______, _______ ), ENCODER_CCW_CW( _______, _______ ) },
- [_MOUSE] = { ENCODER_CCW_CW( _______, _______ ), ENCODER_CCW_CW( _______, _______ ) },
- [_MEDIA] = { ENCODER_CCW_CW( _______, _______ ), ENCODER_CCW_CW( _______, _______ ) },
- [_RAISE] = { ENCODER_CCW_CW( OL_BINC, OL_BDEC ), ENCODER_CCW_CW( KC_PGDN, KC_PGUP ) },
- [_LOWER] = { ENCODER_CCW_CW( RGB_MOD, RGB_RMOD), ENCODER_CCW_CW( RGB_HUI, RGB_HUD ) },
- [_ADJUST] = { ENCODER_CCW_CW( CK_UP, CK_DOWN ), ENCODER_CCW_CW( _______, _______ ) },
-};
-// clang-format on
-#endif
-
-#ifdef OLED_ENABLE
-oled_rotation_t oled_init_keymap(oled_rotation_t rotation) {
- return OLED_ROTATION_180;
-}
-
-void render_oled_title(bool side) {
- oled_write_P(side ? PSTR(" Tractyl ") : PSTR(" Manuform "), true);
-}
-#endif
diff --git a/keyboards/handwired/tractyl_manuform/5x6_right/keymaps/drashna/rgblight_breathe_table.h b/keyboards/handwired/tractyl_manuform/5x6_right/keymaps/drashna/rgblight_breathe_table.h
deleted file mode 100644
index fb921079bf..0000000000
--- a/keyboards/handwired/tractyl_manuform/5x6_right/keymaps/drashna/rgblight_breathe_table.h
+++ /dev/null
@@ -1,117 +0,0 @@
-#pragma once
-
-#define RGBLIGHT_EFFECT_BREATHE_TABLE
-
-// clang-format off
-
-// Breathing center: 1.85
-// Breathing max: 100
-
-const uint8_t PROGMEM rgblight_effect_breathe_table[] = {
-#if RGBLIGHT_BREATHE_TABLE_SIZE == 256
- 0x0D, 0x0E, 0x0E, 0x0F, 0x0F, 0x10, 0x10, 0x11,
- 0x11, 0x12, 0x13, 0x13, 0x14, 0x14, 0x15, 0x16,
- 0x16, 0x17, 0x18, 0x18, 0x19, 0x19, 0x1A, 0x1B,
- 0x1B, 0x1C, 0x1D, 0x1E, 0x1E, 0x1F, 0x20, 0x20,
- 0x21, 0x22, 0x22, 0x23, 0x24, 0x25, 0x25, 0x26,
- 0x27, 0x28, 0x28, 0x29, 0x2A, 0x2B, 0x2B, 0x2C,
- 0x2D, 0x2E, 0x2E, 0x2F, 0x30, 0x31, 0x31, 0x32,
- 0x33, 0x34, 0x34, 0x35, 0x36, 0x37, 0x38, 0x38,
- 0x39, 0x3A, 0x3B, 0x3B, 0x3C, 0x3D, 0x3D, 0x3E,
- 0x3F, 0x40, 0x40, 0x41, 0x42, 0x42, 0x43, 0x44,
- 0x44, 0x45, 0x46, 0x46, 0x47, 0x48, 0x48, 0x49,
- 0x4A, 0x4A, 0x4B, 0x4B, 0x4C, 0x4C, 0x4D, 0x4D,
- 0x4E, 0x4E, 0x4F, 0x4F, 0x50, 0x50, 0x51, 0x51,
- 0x51, 0x52, 0x52, 0x53, 0x53, 0x53, 0x54, 0x54,
- 0x54, 0x54, 0x55, 0x55, 0x55, 0x55, 0x55, 0x56,
- 0x56, 0x56, 0x56, 0x56, 0x56, 0x56, 0x56, 0x56,
- 0x56, 0x56, 0x56, 0x56, 0x56, 0x56, 0x56, 0x56,
- 0x56, 0x55, 0x55, 0x55, 0x55, 0x55, 0x54, 0x54,
- 0x54, 0x54, 0x53, 0x53, 0x53, 0x52, 0x52, 0x51,
- 0x51, 0x51, 0x50, 0x50, 0x4F, 0x4F, 0x4E, 0x4E,
- 0x4D, 0x4D, 0x4C, 0x4C, 0x4B, 0x4B, 0x4A, 0x4A,
- 0x49, 0x48, 0x48, 0x47, 0x46, 0x46, 0x45, 0x44,
- 0x44, 0x43, 0x42, 0x42, 0x41, 0x40, 0x40, 0x3F,
- 0x3E, 0x3D, 0x3D, 0x3C, 0x3B, 0x3B, 0x3A, 0x39,
- 0x38, 0x38, 0x37, 0x36, 0x35, 0x34, 0x34, 0x33,
- 0x32, 0x31, 0x31, 0x30, 0x2F, 0x2E, 0x2E, 0x2D,
- 0x2C, 0x2B, 0x2B, 0x2A, 0x29, 0x28, 0x28, 0x27,
- 0x26, 0x25, 0x25, 0x24, 0x23, 0x22, 0x22, 0x21,
- 0x20, 0x20, 0x1F, 0x1E, 0x1E, 0x1D, 0x1C, 0x1B,
- 0x1B, 0x1A, 0x19, 0x19, 0x18, 0x18, 0x17, 0x16,
- 0x16, 0x15, 0x14, 0x14, 0x13, 0x13, 0x12, 0x11,
- 0x11, 0x10, 0x10, 0x0F, 0x0F, 0x0E, 0x0E, 0x0D
-#endif
-
-#if RGBLIGHT_BREATHE_TABLE_SIZE == 128
- 0x0D, 0x0E, 0x0F, 0x10,
- 0x11, 0x13, 0x14, 0x15,
- 0x16, 0x18, 0x19, 0x1A,
- 0x1B, 0x1D, 0x1E, 0x20,
- 0x21, 0x22, 0x24, 0x25,
- 0x27, 0x28, 0x2A, 0x2B,
- 0x2D, 0x2E, 0x30, 0x31,
- 0x33, 0x34, 0x36, 0x38,
- 0x39, 0x3B, 0x3C, 0x3D,
- 0x3F, 0x40, 0x42, 0x43,
- 0x44, 0x46, 0x47, 0x48,
- 0x4A, 0x4B, 0x4C, 0x4D,
- 0x4E, 0x4F, 0x50, 0x51,
- 0x51, 0x52, 0x53, 0x54,
- 0x54, 0x55, 0x55, 0x55,
- 0x56, 0x56, 0x56, 0x56,
- 0x56, 0x56, 0x56, 0x56,
- 0x56, 0x55, 0x55, 0x54,
- 0x54, 0x53, 0x53, 0x52,
- 0x51, 0x50, 0x4F, 0x4E,
- 0x4D, 0x4C, 0x4B, 0x4A,
- 0x49, 0x48, 0x46, 0x45,
- 0x44, 0x42, 0x41, 0x40,
- 0x3E, 0x3D, 0x3B, 0x3A,
- 0x38, 0x37, 0x35, 0x34,
- 0x32, 0x31, 0x2F, 0x2E,
- 0x2C, 0x2B, 0x29, 0x28,
- 0x26, 0x25, 0x23, 0x22,
- 0x20, 0x1F, 0x1E, 0x1C,
- 0x1B, 0x19, 0x18, 0x17,
- 0x16, 0x14, 0x13, 0x12,
- 0x11, 0x10, 0x0F, 0x0E
-#endif
-
-#if RGBLIGHT_BREATHE_TABLE_SIZE == 64
- 0x0D, 0x0F,
- 0x11, 0x14,
- 0x16, 0x19,
- 0x1B, 0x1E,
- 0x21, 0x24,
- 0x27, 0x2A,
- 0x2D, 0x30,
- 0x33, 0x36,
- 0x39, 0x3C,
- 0x3F, 0x42,
- 0x44, 0x47,
- 0x4A, 0x4C,
- 0x4E, 0x50,
- 0x51, 0x53,
- 0x54, 0x55,
- 0x56, 0x56,
- 0x56, 0x56,
- 0x56, 0x55,
- 0x54, 0x53,
- 0x51, 0x4F,
- 0x4D, 0x4B,
- 0x49, 0x46,
- 0x44, 0x41,
- 0x3E, 0x3B,
- 0x38, 0x35,
- 0x32, 0x2F,
- 0x2C, 0x29,
- 0x26, 0x23,
- 0x20, 0x1E,
- 0x1B, 0x18,
- 0x16, 0x13,
- 0x11, 0x0F
-#endif
-};
-
-static const int table_scale = 256 / sizeof(rgblight_effect_breathe_table);
diff --git a/keyboards/handwired/tractyl_manuform/5x6_right/keymaps/drashna/rules.mk b/keyboards/handwired/tractyl_manuform/5x6_right/keymaps/drashna/rules.mk
deleted file mode 100644
index 1cf7a3fccf..0000000000
--- a/keyboards/handwired/tractyl_manuform/5x6_right/keymaps/drashna/rules.mk
+++ /dev/null
@@ -1,54 +0,0 @@
-AUTOCORRECT_ENABLE = no
-AUDIO_ENABLE = no
-ENCODER_ENABLE = no
-CUSTOM_BOOTMAGIC_ENABLE = no
-CUSTOM_UNICODE_ENABLE = no
-HAPTIC_ENABLE = no
-OLED_ENABLE = no
-RGBLIGHT_ENABLE = no
-SWAP_HANDS_ENABLE = no
-TAP_DANCE_ENABLE = no
-WPM_ENABLE = no
-
-ifeq ($(strip $(KEYBOARD)), handwired/tractyl_manuform/5x6_right/elite_c)
- BOOTLOADER = qmk-hid
- BOOTLOADER_SIZE = 512
- CUSTOM_SPLIT_TRANSPORT_SYNC = no
- LTO_ENABLE = yes
- MOUSEKEY_ENABLE = no
-endif
-ifeq ($(strip $(KEYBOARD)), handwired/tractyl_manuform/5x6_right/arduinomicro)
- BOOTLOADER = qmk-hid
- BOOTLOADER_SIZE = 512
- CUSTOM_SPLIT_TRANSPORT_SYNC = no
- LTO_ENABLE = yes
- MOUSEKEY_ENABLE = no
-endif
-ifeq ($(strip $(KEYBOARD)), handwired/tractyl_manuform/5x6_right/teensy2pp)
- AUTOCORRECT_ENABLE = no
- OVERLOAD_FEATURES = yes
- LTO_ENABLE = yes
-endif
-ifeq ($(strip $(KEYBOARD)), handwired/tractyl_manuform/5x6_right/f411)
- BOOTLOADER = tinyuf2
- AUTOCORRECT_ENABLE = yes
- LTO_SUPPORTED = no
- OVERLOAD_FEATURES = yes
- HAPTIC_ENABLE = yes
- HAPTIC_DRIVER = drv2605l
-endif
-
-ifeq ($(strip $(OVERLOAD_FEATURES)), yes)
- AUDIO_ENABLE = yes
- CAPS_WORD_ENABLE = yes
- CUSTOM_BOOTMAGIC_ENABLE = yes
- CUSTOM_UNICODE_ENABLE = yes
- ENCODER_ENABLE = yes
- ENCODER_MAP_ENABLE = yes
- OLED_ENABLE = yes
- RGBLIGHT_ENABLE = yes
- RGBLIGHT_STARTUP_ANIMATION = yes
- TAP_DANCE_ENABLE = yes
- SWAP_HANDS_ENABLE = yes
- WPM_ENABLE = yes
-endif
diff --git a/keyboards/handwired/traveller/keymaps/default/keymap.c b/keyboards/handwired/traveller/keymaps/default/keymap.c
index 2cd57db35f..5d2a3b3750 100644
--- a/keyboards/handwired/traveller/keymaps/default/keymap.c
+++ b/keyboards/handwired/traveller/keymaps/default/keymap.c
@@ -1,5 +1,4 @@
#include QMK_KEYBOARD_H
-#include "mousekey.h"
enum layer_names {
_QW,
diff --git a/keyboards/handwired/tsubasa/config.h b/keyboards/handwired/tsubasa/config.h
index 52b64de9f6..a2cd2dafe6 100644
--- a/keyboards/handwired/tsubasa/config.h
+++ b/keyboards/handwired/tsubasa/config.h
@@ -17,6 +17,3 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#pragma once
#define MASTER_RIGHT
-
-#define SPLIT_WPM_ENABLE
-#define SPLIT_LAYER_STATE_ENABLE
diff --git a/keyboards/handwired/tsubasa/info.json b/keyboards/handwired/tsubasa/info.json
index 245afe30cc..62c418c995 100644
--- a/keyboards/handwired/tsubasa/info.json
+++ b/keyboards/handwired/tsubasa/info.json
@@ -38,6 +38,12 @@
{"pin_a": "F4", "pin_b": "F5"}
]
}
+ },
+ "transport": {
+ "sync": {
+ "layer_state": true,
+ "wpm": true
+ }
}
},
"layouts": {
diff --git a/keyboards/handwired/wabi/keymaps/rossman360/keymap.c b/keyboards/handwired/wabi/keymaps/rossman360/keymap.c
deleted file mode 100644
index 3bd46bf191..0000000000
--- a/keyboards/handwired/wabi/keymaps/rossman360/keymap.c
+++ /dev/null
@@ -1,68 +0,0 @@
-/*
-Copyright 2020 Ross Montsinger
-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 "rossman360.h"
-
-#define PGMOD LT(_NUM, KC_PGDN)
-#define TABMOD LT(_FN1, KC_TAB)
-#define SPCMOD LT(_FN1, KC_SPACE)
-#define ENTMOD LT(_FN2, KC_ENTER)
-#define RSMOD LT(_FN1, KC_MINS)
-
-enum layer_names {
- _BASE,
- _DEL,
- _FN1,
- _FN2,
- _NUM,
-};
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-[_BASE] = LAYOUT(
- KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC,
- KC_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,
- JUMPBACK,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, RSMOD , KC_UP,
- CMDBSP, ALTDEL, CTRLSP, TABMOD, PGMOD , ENTMOD , SPCMOD , MO(_DEL), KC_LEFT, KC_DOWN, KC_RGHT
- ),
-[_DEL] = LAYOUT(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- REMCAPS, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, BLINE , KC_BSPC, BWORD , KC_NO , KC_NO , _______, _______, _______, _______
- ),
-[_FN1] = LAYOUT(
- QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, NTAB,
- _______, _______, _______, _______, _______, _______, _______, UNDO , _______, _______, _______, _______, _______, KC_SLSH,
- _______, _______, _______, _______, _______, _______, KC_HOME, KC_LEFT, KC_UP , KC_RIGHT,KC_END , _______, CTAB,
- _______, _______, XPANDR , _______, PMERGE , _______, _______, PMERGE , KC_DOWN, _______, _______, _______, _______,
- _______, _______, _______, LWORD , RWORD , KC_NO , _______, KC_NO , _______, _______, _______
- ),
-[_FN2] = LAYOUT(
- _______, SPEAK1 , SPEAK2 , SPEAK3 , _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, PARADOWN, CSPEAK, _______, _______, _______, _______, _______, _______
- ),
-[_NUM] = LAYOUT(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, KC_7 , KC_8 , KC_9 , _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, KC_MINS, KC_4 , KC_5 , KC_6 , KC_COLN, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, KC_1 , KC_2 , KC_3 , KC_BSLS, _______, _______,
- _______, _______, _______, KC_0 , _______, KC_NO , KC_SPC , KC_0 , _______, _______, _______
- ),
-};
diff --git a/keyboards/hazel/bad_wings/keymaps/miketronic/config.h b/keyboards/hazel/bad_wings/keymaps/miketronic/config.h
deleted file mode 100644
index 1f5c059c00..0000000000
--- a/keyboards/hazel/bad_wings/keymaps/miketronic/config.h
+++ /dev/null
@@ -1,16 +0,0 @@
-// Copyright 2023 @miketronic -- Mike B <mxb540@gmail.com>
-// SPDX-License-Identifier: GPL-2.0+
-
-#pragma once
-
-# define TAPPING_TERM 160
-# define TAPPING_TERM_PER_KEY
-# define HOLD_ON_OTHER_KEY_PRESS
-# define QUICK_TAP_TERM TAPPING_TERM / 2
-# define QUICK_TAP_TERM_PER_KEY
-
-# define CIRQUE_PINNACLE_TAP_ENABLE
-# define CIRQUE_PINNACLE_SECONDARY_TAP_ENABLE
-# define CIRQUE_PINNACLE_ATTENUATION_4X
-# define CIRQUE_PINNACLE_POSITION_MODE CIRQUE_PINNACLE_RELATIVE_MODE
-//# define CIRQUE_DEVICE_GESTURES_SCROLL_ENABLE
diff --git a/keyboards/hazel/bad_wings/keymaps/miketronic/keymap.c b/keyboards/hazel/bad_wings/keymaps/miketronic/keymap.c
deleted file mode 100644
index 3ebcc79fde..0000000000
--- a/keyboards/hazel/bad_wings/keymaps/miketronic/keymap.c
+++ /dev/null
@@ -1,258 +0,0 @@
-// Copyright 2023 @miketronic -- Mike B <mxb540@gmail.com>
-// SPDX-License-Identifier: GPL-2.0+
-
-#include "miketronic.h"
-
-
-/*
-layer_state_t layer_state_set_user(layer_state_t state) {
- return update_tri_layer_state(state, 1, 2, 3);
-}
-
-
- [0] = LAYOUT_split_3x5_3(
- 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_QUOT, \
- KC_Z, LGUI_T(KC_X), LALT_T(KC_C), KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, \
- KC_LCTL, OSL(1), OSM(MOD_LSFT), KC_SPC, LT(2, KC_BSPC), KC_ENT
- ),
- [1] = LAYOUT_split_3x5_3(
- KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_RBRC, KC_RCBR, KC_RPRN, KC_RABK, KC_NO, \
- KC_GRV, KC_TILD, KC_UNDS, KC_EQL, KC_NO, KC_LBRC, KC_LCBR, KC_LPRN, KC_LABK, KC_BACKSLASH, \
- KC_NO, KC_NO, KC_PLUS, KC_MINS, KC_NO, KC_NO, KC_NO, KC_COLN, KC_DOT, KC_SCLN, \
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
- ),
- [2] = LAYOUT_split_3x5_3(
- KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_PIPE, KC_NO, \
- KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, \
- KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_DOT, KC_NO, \
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
- ),
- [3] = LAYOUT_split_3x5_3(
- KC_ESC, KC_F1, KC_F4, KC_F7, KC_F10, KC_NO, KC_HOME, KC_UP, KC_END, KC_BSPC, \
- KC_TAB, KC_F2, KC_F5, KC_F8, KC_F11, KC_NO, KC_LEFT, KC_DOWN, KC_RIGHT, KC_ENT, \
- KC_NO, KC_F3, KC_F6, KC_F9, KC_F12, KC_NO, KC_MPRV, KC_MPLY, KC_MNXT, KC_DEL, \
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
- )
-*/
-
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- /* WORKMAN
- * ┌─────┬─────┬─────┬─────┬─────┐ ┌─────┬─────┬─────┬─────┬─────┐
- * │ Q │ D │ R │ W │ B │ │ J │ F │ U │ P │ BSPC│
- * │ ESC │ │ │ │ SYM │ │ SYM │ │ │ │ │
- * ├─────┼─────┼─────╆━━━━━╅─────┤ ├─────╆━━━━━╅─────┼─────┼─────┤
- * │ A │ S │ H ┃ T ┃ G │ │ Y ┃ N ┃ E │ O │ I │
- * │SHIFT│ │ ┃ EX ┃ │ │ ┃ ┃ │ │ │
- * ├─────┼─────┼─────╄━━━━━╃─────┤ ├─────╄━━━━━╃─────┼─────┼─────┤
- * │ Z │ X │ M │ C │ V │ │ K │ L │ SPC │ SPC │ENTER│
- * │ FN │ CTRL│ OS │ ALT │LOWER│ │RAISE│ │ , │ . │ │
- * └─────┴─────┼─────┼─────┼─────┤ ├─────┼─────┼─────┼─────┴─────┘
- * │OSM │SPACE│LOWER│ │RAISE│ENTER│COPY │
- * │SHIFT│ │ │ │ │ │PASTE│
- * └─────┴─────┴─────┘ └─────┴─────┴─────┘
-*/
- [_WM] = LAYOUT_split_3x5_3_wrapper (
- _____________WORKMAN_310_001_L_____________, _____________WORKMAN_310_001_R_____________,
- _____________WORKMAN_310_002_L_____________, _____________WORKMAN_310_002_R_____________,
- _____________WORKMAN_310_003_L_____________, _____________WORKMAN_310_003_R_____________,
- _________3KEY_LEFT___________, _________3KEY_RIGHT__________
- ),
-
- [_QW] = LAYOUT_split_3x5_3_wrapper (
- _________________QWERTY_L1_________________, _________________QWERTY_R1_________________,
- _________________QWERTY_L2_________________, _________________QWERTY_R2_________________,
- _________________QWERTY_L3_________________, _________________QWERTY_R3_________________,
- _________3KEY_LEFT___________, _________3KEY_RIGHT__________
- ),
-
-
-
- /* LOWER
- * ┌─────┬─────┬─────┬─────┬─────┐ ┌─────┬─────┬─────┬─────┬─────┐
- * │ () │ [] │ /\ │ │ │ │ │ 7 │ 8 │ 9 │ │
- * │ │ <> │ │ │ │ │ │ │ │ │ │
- * ├─────┼─────┼─────╆━━━━━╅─────┤ ├─────╆━━━━━╅─────┼─────┼─────┤
- * │ @ # │ & % │ ┃ ┃ │ │ . ┃ 4 ┃ 5 │ 6 │ UP │
- * │ │ │ ┃ ┃ │ │ENTER┃ ┃ │ │RIGHT│
- * ├─────┼─────┼─────╄━━━━━╃─────┤ ├─────╄━━━━━╃─────┼─────┼─────┤
- * │ │ │ │ │ │ │ 0 │ 1 │ 2 │ 3 │ DOWN│
- * │ │ │ │ │LOWER│ │ │ │ 0 │ │ LEFT│
- * └─────┴─────┼─────┼─────┼─────┤ ├─────┼─────┼─────┼─────┴─────┘
- * │OSM │SPACE│LOWER│ │RAISE│ENTER│COPY │
- * │SHIFT│ │ │ │ │ │PASTE│
- * └─────┴─────┴─────┘ └─────┴─────┴─────┘
-*/
- [_LOWER] = LAYOUT_split_3x5_3_wrapper (
- _______________LOWER_310_L1________________, _______________LOWER_310_R1________________,
- _______________LOWER_310_L2________________, _______________LOWER_310_R2________________,
- _______________LOWER_310_L3________________, _______________LOWER_310_R3________________,
- _________3KEY_LEFT___________, _________3KEY_RIGHT__________
- ),
-
-
-
- /* RAISE
- * ┌─────┬─────┬─────┬─────┬─────┐ ┌─────┬─────┬─────┬─────┬─────┐
- * │ BOOT│DEBUG│ │ │ MAKE│ │ │ F7 │ F8 │ F9 │ F10 │
- * │ │ │ │ │ │ │ │ │ │ │ │
- * ├─────┼─────┼─────╆━━━━━╅─────┤ ├─────╆━━━━━╅─────┼─────┼─────┤
- * │ │ RGB │ RGB ┃ RGB ┃ RGB │ │ _ ┃ F4 ┃ F5 │ F6 │ F11 │
- * │ │ TOG │ MOD ┃ HUI ┃ HUD │ │ - ┃ ┃ │ │ │
- * ├─────┼─────┼─────╄━━━━━╃─────┤ ├─────╄━━━━━╃─────┼─────┼─────┤
- * │ │ RGB │ RGB │ RGB │ RGB │ │ │ F1 │ F2 │ F3 │ F12 │
- * │ │ SAI │ SAD │ VAI │ VAD │ │RAISE│ │ │ │ │
- * └─────┴─────┼─────┼─────┼─────┤ ├─────┼─────┼─────┼─────┴─────┘
- * │OSM │SPACE│LOWER│ │RAISE│ENTER│COPY │
- * │SHIFT│ │ │ │ │ │PASTE│
- * └─────┴─────┴─────┘ └─────┴─────┴─────┘
-*/
- [_RAISE] = LAYOUT_split_3x5_3_wrapper (
- _______________RAISE_310_L1________________, _______________RAISE_310_R1________________,
- _______________RAISE_310_L2________________, _______________RAISE_310_R2________________,
- _______________RAISE_310_L3________________, _______________RAISE_310_R3________________,
- _________3KEY_LEFT___________, _________3KEY_RIGHT__________
- ),
-
-
-
- /* EXTRAS
- * ┌─────┬─────┬─────┬─────┬─────┐ ┌─────┬─────┬─────┬─────┬─────┐
- * │ ! │ │ │ │ │ │ │ /\ | () | [] | ; │
- * │ │ │ │ │ │ │ │ │ │ │ │
- * ├─────┼─────┼─────╆━━━━━╅─────┤ ├─────╆━━━━━╅─────┼─────┼─────┤
- * │ │ │ ┃EXTRA┃ │ │ ┃ @ # ┃ & % | │ ' │
- * │ │ │ ┃ ┃ │ │ ┃ ┃ │ │ │
- * ├─────┼─────┼─────╄━━━━━╃─────┤ ├─────╄━━━━━╃─────┼─────┼─────┤
- * │ │ │ │ │ │ │ │ │ , │ . │ ? │
- * │ │ │ │ │ │ │ │ │ │ │ │
- * └─────┴─────┼─────┼─────┼─────┤ ├─────┼─────┼─────┼─────┴─────┘
- * │OSM │SPACE│LOWER│ │RAISE│ENTER│COPY │
- * │SHIFT│ │ │ │ │ │PASTE│
- * └─────┴─────┴─────┘ └─────┴─────┴─────┘
-*/
- [_EX] = LAYOUT_split_3x5_3_wrapper (
- ______________EXTRAS_310_L1________________, ______________EXTRAS_310_R1________________,
- ______________EXTRAS_310_L2________________, ______________EXTRAS_310_R2________________,
- ______________EXTRAS_310_L3________________, ______________EXTRAS_310_R3________________,
- _________3KEY_LEFT___________, _________3KEY_RIGHT__________
- ),
-
-
-
- /* FUNCTION
- * ┌─────┬─────┬─────┬─────┬─────┐ ┌─────┬─────┬─────┬─────┬─────┐
- * │COPY │CLIP │ SS │ │ │ │ │ /\ │ UP │ │ DEL │
- * │PASTE│ │ │ │ │ │ │ │ │ │ │
- * ├─────┼─────┼─────╆━━━━━╅─────┤ ├─────╆━━━━━╅─────┼─────┼─────┤
- * │ TAB │ M05 │ M06 ┃ M07 ┃ M08 │ │ ┃ LEFT┃ DOWN│RIGHT│ UP │
- * │ │ │ ┃ ┃ │ │ ┃ ┃ │ │RIGHT│
- * ├─────┼─────┼─────╄━━━━━╃─────┤ ├─────╄━━━━━╃─────┼─────┼─────┤
- * │ │ M01 │ M02 │ M03 │ M04 │ │ │ │ , │ . │DOWN │
- * │ FN │ │ │ │ │ │ │ │ │ │LEFT │
- * └─────┴─────┼─────┼─────┼─────┤ ├─────┼─────┼─────┼─────┴─────┘
- * │OSM │SPACE│LOWER│ │RAISE│ENTER│COPY │
- * │SHIFT│ │ │ │ │ │PASTE│
- * └─────┴─────┴─────┘ └─────┴─────┴─────┘
-*/
- [_FN] = LAYOUT_split_3x5_3_wrapper (
- _____________FUNCTION_310_L1_______________, _____________FUNCTION_310_R1_______________,
- _____________FUNCTION_310_L2_______________, _____________FUNCTION_310_R2_______________,
- _____________FUNCTION_310_L3_______________, _____________FUNCTION_310_R3_______________,
- _________3KEY_LEFT___________, _________3KEY_RIGHT__________
- ),
-
-
-
- /* SYMBOLS
- * ┌─────┬─────┬─────┬─────┬─────┐ ┌─────┬─────┬─────┬─────┬─────┐
- * │ $ │ ^ │ < │ > │ │ │ │ | │ [ │ ] │ - │
- * │ │ │ │ │ SYMB│ │ SYMB│ │ │ │ │
- * ├─────┼─────┼─────╆━━━━━╅─────┤ ├─────╆━━━━━╅─────┼─────┼─────┤
- * │ % │ : │ ; ┃ + ┃ = │ │ ┃ ┃ ( │ ) │ _ │
- * │ │ │ ┃ ┃ │ │ ┃ ┃ │ │ │
- * ├─────┼─────┼─────╄━━━━━╃─────┤ ├─────╄━━━━━╃─────┼─────┼─────┤
- * │ & │ ' │ " │ * │ # │ │ ! │ ? │ / │ \ │ @ │
- * │ │ │ │ │ │ │ │ │ │ │ │
- * └─────┴─────┼─────┼─────┼─────┤ ├─────┼─────┼─────┼─────┴─────┘
- * │OSM │SPACE│LOWER│ │RAISE│ENTER│COPY │
- * │SHIFT│ │ │ │ │ │PASTE│
- * └─────┴─────┴─────┘ └─────┴─────┴─────┘
-*/
- [_SYMB] = LAYOUT_split_3x5_3_wrapper (
- KC_DLR, KC_CIRC, KC_LABK, KC_RABK, XXXX, XXXX, KC_PIPE, KC_LBRC, KC_RBRC, KC_MINS,
- KC_PERC, KC_COLN, KC_SCLN, KC_PLUS, KC_EQL, XXXX, XXXX, KC_LPRN, KC_RPRN, KC_UNDS,
- KC_AMPR, KC_QUOT, KC_DQUO, KC_ASTR, KC_HASH, KC_EXLM, KC_QUES, KC_SLSH, KC_BSLS, KC_AT,
- _________3KEY_LEFT___________, _________3KEY_RIGHT__________
- ),
-
-};
-
-
-bool get_hold_on_other_key_press(uint16_t keycode, keyrecord_t *record) {
- switch (keycode) {
- case SFT_T(KC_A):
- // Do not force the mod-tap key press to be handled as a modifier
- // if any other key was pressed while the mod-tap key is held down.
- return false;
- case TEX:
- return false;
- case CTRLX:
- return false;
- case FNZ:
- return false;
- case MGUI:
- return false;
- case VLOWER:
- return false;
- case KRAISE:
- return false;
- default:
- // Force the dual-role key press to be handled as a modifier if any
- // other key was pressed while the mod-tap key is held down.
- return true;
- }
-}
-
-
-#ifdef AUDIO_ENABLE
-float leader_start_song[][2] = SONG(ONE_UP_SOUND);
-float leader_succeed_song[][2] = SONG(ALL_STAR);
-float leader_fail_song[][2] = SONG(RICK_ROLL);
-#endif
-
-void matrix_scan_user(void);
-
-void leader_start_user(void) {
-#ifdef AUDIO_ENABLE
- PLAY_SONG(leader_start_song);
-#endif
-}
-
-bool did_leader_succeed;
-
-void leader_end_user(void) {
- did_leader_succeed = false;
-
- if (leader_sequence_one_key(KC_E)) {
- SEND_STRING(SS_LCTL(SS_LSFT("t")));
- did_leader_succeed = true;
- } else if (leader_sequence_two_keys(KC_E, KC_D)) {
- SEND_STRING(SS_LGUI("r") "cmd\n" SS_LCTL("c"));
- did_leader_succeed = true;
- } else if (leader_sequence_two_keys(KC_A, KC_T)) {
- SEND_STRING("@guidehouse.com");
- did_leader_succeed = true;
- }
-
-
-#ifdef AUDIO_ENABLE
- if (did_leader_succeed) {
- PLAY_SONG(leader_succeed_song);
- } else {
- PLAY_SONG(leader_fail_song);
- }
-#endif
-}
-
diff --git a/keyboards/hazel/bad_wings/keymaps/miketronic/rules.mk b/keyboards/hazel/bad_wings/keymaps/miketronic/rules.mk
deleted file mode 100644
index 72c338c157..0000000000
--- a/keyboards/hazel/bad_wings/keymaps/miketronic/rules.mk
+++ /dev/null
@@ -1,31 +0,0 @@
-# Common feature for all keyboards
-BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite
-EXTRAKEY_ENABLE = yes # Audio control and System control
-TAP_DANCE_ENABLE = yes # Tap Dance keys
-NKRO_ENABLE = yes # Enable N-Key Rollover
-MACROS_ENABLED = yes
-
-# Keyboard specific
-MOUSEKEY_ENABLE = yes # Mouse keys
-CAPS_WORD_ENABLE = yes
-KEY_OVERRIDE_ENABLE = yes
-LEADER_ENABLE = yes
-
-
- LTO_ENABLE = no # Enabled this causes longer build time, but smaller file.
- AUTO_SHIFT_ENABLE = no
- UNICODE_ENABLE = no # Unicode
- CONSOLE_ENABLE = no # Console for debug
- COMMAND_ENABLE = no # Commands for debug and configuration
- RGBLIGHT_ENABLE = no
- BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
- SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend (it uses the same timer as BACKLIGHT_ENABLE)
- AUDIO_ENABLE = no # Audio output on port C6
- MIDI_ENABLE = no # MIDI support
- BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
- GRAVE_ESC_ENABLE = no
- SPACE_CADET_ENABLE = no
- COMBO_ENABLE = no
- OLED_ENABLE = no
- ENCODER_ENABLE = no
- ENCODER_MAP_ENABLE = no
diff --git a/keyboards/hazel/bad_wings/rules.mk b/keyboards/hazel/bad_wings/rules.mk
index 1001af0186..47a188155f 100644
--- a/keyboards/hazel/bad_wings/rules.mk
+++ b/keyboards/hazel/bad_wings/rules.mk
@@ -3,7 +3,7 @@ CAPS_WORD_ENABLE = yes
SRC += matrix.c
-QUANTUM_LIB_SRC += spi_master.c
+SPI_DRIVER_REQUIRED = yes
CUSTOM_MATRIX = lite
POINTING_DEVICE_DRIVER = cirque_pinnacle_spi
diff --git a/keyboards/helix/pico/keymaps/default/keymap.c b/keyboards/helix/pico/keymaps/default/keymap.c
index 101a54bda6..3ee620360d 100644
--- a/keyboards/helix/pico/keymaps/default/keymap.c
+++ b/keyboards/helix/pico/keymaps/default/keymap.c
@@ -173,7 +173,6 @@ float tone_dvorak[][2] = SONG(DVORAK_SOUND);
float tone_colemak[][2] = SONG(COLEMAK_SOUND);
float tone_plover[][2] = SONG(PLOVER_SOUND);
float tone_plover_gb[][2] = SONG(PLOVER_GOODBYE_SOUND);
-float music_scale[][2] = SONG(MUSIC_SCALE_SOUND);
#endif
// define variables for reactive RGB
@@ -329,36 +328,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
}
void matrix_init_user(void) {
- #ifdef AUDIO_ENABLE
- startup_user();
- #endif
#ifdef RGBLIGHT_ENABLE
RGB_current_mode = rgblight_config.mode;
#endif
}
-
-
-#ifdef AUDIO_ENABLE
-
-void startup_user(void)
-{
- _delay_ms(50); // gets rid of tick
-}
-
-void shutdown_user(void)
-{
- _delay_ms(150);
- stop_all_notes();
-}
-
-void music_on_user(void)
-{
- music_scale_user();
-}
-
-void music_scale_user(void)
-{
- PLAY_SONG(music_scale);
-}
-
-#endif
diff --git a/keyboards/helix/pico/keymaps/mtei/config.h b/keyboards/helix/pico/keymaps/mtei/config.h
deleted file mode 100644
index a633105ff9..0000000000
--- a/keyboards/helix/pico/keymaps/mtei/config.h
+++ /dev/null
@@ -1,18 +0,0 @@
-// Copyright (c) 2022 Takeshi Ishii (mtei@github)
-// SPDX-License-Identifier: GPL-2.0-or-later
-
-#pragma once
-
-// place overrides here
-
-#ifdef AUDIO_ENABLE
- #define STARTUP_SONG SONG(STARTUP_SOUND)
- #define AUDIO_CLICKY
-#endif
-
-#undef TAPPING_TERM
-#define TAPPING_TERM 300
-#define PERMISSIVE_HOLD
-
-// If you need more program area, try select and reduce rgblight modes to use.
-
diff --git a/keyboards/helix/pico/keymaps/mtei/keymap.c b/keyboards/helix/pico/keymaps/mtei/keymap.c
deleted file mode 100644
index 6a5f7d295a..0000000000
--- a/keyboards/helix/pico/keymaps/mtei/keymap.c
+++ /dev/null
@@ -1,368 +0,0 @@
-/* Copyright 2018 mtei
- *
- * 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 "key_blocks.h"
-
-#define LAYOUT_wrapper(...) LAYOUT(__VA_ARGS__)
-#define kc5(a,b,c,d,e) KC_##a, KC_##b, KC_##c, KC_##d, KC_##e
-
-// Each layer gets a name for readability, which is then used in the keymap matrix below.
-// The underscores don't mean anything - you can have a layer called STUFF or any other name.
-// Layer names don't all need to be of the same length, obviously, and you can also skip them
-// entirely and just use numbers.
-enum layer_number {
- _QWERTY = 0,
- _COLEMAK,
- _DVORAK,
- _EUCALYN,
- _NUML,
- _NUMR,
- _LOWER,
- _RAISE,
- _ADJUST,
-};
-
-enum custom_keycodes {
- QWERTY = SAFE_RANGE,
- COLEMAK,
- DVORAK,
- EUCALYN,
- NUML,
- NUMR,
- xEISU,
- xKANA,
- ZERO2,
- RGBRST
-};
-
-// clang-format off
-
-//Macros
-#define LT_NUML_SP LT(_NUML,KC_SPC)
-#define LT_NUMR_SP LT(_NUMR,KC_SPC)
-#define LT_RA_BSPC LT(_RAISE,KC_BSPC)
-#define LT_RA_ENT LT(_RAISE,KC_ENT)
-#define ___ _______
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
- /* Qwerty */
-#define LOWER___LOWER__CAPS__LALT__LGUI__NUML__RABS MO(_LOWER), MO(_LOWER), KC_CAPS, KC_LALT, KC_LGUI, LT_NUML_SP, LT_RA_BSPC
-#define RAEN_NUMR__RGUI__RALT___APP_LOWER__LOWER LT_RA_ENT, LT_NUMR_SP, KC_RGUI, KC_RALT, KC_APP, MO(_LOWER), MO(_LOWER)
- /* ,-----------------------------------------. ,-----------------------------------------.
- * | ESC | Q | W | E | R | T | | Y | U | I | O | P | \ |
- * |------+------+------+------+------+------| |------+------+------+------+------+------|
- * | Ctrl | A | S | D | F | G | | H | J | K | L | ; | Ctrl |
- * |------+------+------+------+------+------| |------+------+------+------+------+------|
- * | Shift| Z | X | C | V | B | | N | M | , | . | / | Shift|
- * |------+------+------+------+------+------+------+------+------+------+------+------+------+------|
- * |Lower | Lower| Caps | Alt | GUI | Space| BS | Enter| Space| GUI | Alt | Menu |Lower |Lower |
- * `-------------------------------------------------------------------------------------------------'
- */
- [_QWERTY] = LAYOUT_wrapper(
- KC_ESC, Q_____W_____E_____R_____T, Y_____U_____I_____O_____P, KC_BSLS,
- KC_LCTL, A_____S_____D_____F_____G, H_____J_____K_____L____SCLN, KC_RCTL,
- KC_LSFT, Z_____X_____C_____V_____B, N_____M____COMM__DOT___SLSH, KC_RSFT,
- LOWER___LOWER__CAPS__LALT__LGUI__NUML__RABS, RAEN_NUMR__RGUI__RALT___APP_LOWER__LOWER
- ),
-
- /* Colemak */
- /* ,-----------------------------------------. ,-----------------------------------------.
- * | ESC | Q | W | F | P | G | | J | L | U | Y | ; | \ |
- * |------+------+------+------+------+------| |------+------+------+------+------+------|
- * | Ctrl | A | R | S | T | D | | H | N | E | I | O | Ctrl |
- * |------+------+------+------+------+------| |------+------+------+------+------+------|
- * | Shift| Z | X | C | V | B | | K | M | , | . | / | Shift|
- * |------+------+------+------+------+------+------+------+------+------+------+------+------+------|
- * |Lower | Lower| Caps | Alt | GUI | Space| BS | Enter| Space| GUI | Alt | Menu |Lower |Lower |
- * `-------------------------------------------------------------------------------------------------'
- */
- [_COLEMAK] = LAYOUT_wrapper(
- KC_ESC, Q_____W_____F_____P_____G, J_____L_____U_____Y____SCLN, KC_BSLS,
- KC_LCTL, A_____R_____S_____T_____D, H_____N_____E_____I_____O, KC_RCTL,
- KC_LSFT, Z_____X_____C_____V_____B, K_____M____COMM__DOT___SLSH, KC_RSFT,
- LOWER___LOWER__CAPS__LALT__LGUI__NUML__RABS, RAEN_NUMR__RGUI__RALT___APP_LOWER__LOWER
- ),
-
- /* Dvorak */
- /* ,-----------------------------------------. ,-----------------------------------------.
- * | ESC | ' | , | . | P | Y | | F | G | C | R | L | \ |
- * |------+------+------+------+------+------| |------+------+------+------+------+------|
- * | Ctrl | A | O | E | U | I | | D | H | T | N | S | Ctrl |
- * |------+------+------+------+------+------| |------+------+------+------+------+------|
- * | Shift| ; | Q | J | K | X | | B | M | W | V | Z | Shift|
- * |------+------+------+------+------+------+------+------+------+------+------+------+------+------|
- * |Lower | Lower| Caps | Alt | GUI | Space| BS | Enter| Space| GUI | Alt | Menu |Lower |Lower |
- * `-------------------------------------------------------------------------------------------------'
- */
- [_DVORAK] = LAYOUT_wrapper(
- KC_ESC, QUOT_COMM___DOT____P_____Y, F_____G_____C_____R_____L, KC_BSLS,
- KC_LCTL, A_____O_____E_____U_____I, D_____H_____T_____N_____S, KC_RCTL,
- KC_LSFT, SCLN___Q_____J_____K_____X, B_____M_____W_____V_____Z, KC_RSFT,
- LOWER___LOWER__CAPS__LALT__LGUI__NUML__RABS, RAEN_NUMR__RGUI__RALT___APP_LOWER__LOWER
- ),
-
- /* Eucalyn (http://eucalyn.hatenadiary.jp/entry/about-eucalyn-layout) */
- /* ,-----------------------------------------. ,-----------------------------------------.
- * | ESC | Q | W | , | . | ; | | M | R | D | Y | P | \ |
- * |------+------+------+------+------+------| |------+------+------+------+------+------|
- * | Ctrl | A | O | E | I | U | | G | T | K | S | N | Ctrl |
- * |------+------+------+------+------+------| |------+------+------+------+------+------|
- * | Shift| Z | X | C | V | F | | B | H | J | L | / | Shift|
- * |------+------+------+------+------+------+------+------+------+------+------+------+------+------|
- * |Lower | Lower| Caps | Alt | GUI | Space| BS | Enter| Space| GUI | Alt | Menu |Lower |Lower |
- * `-------------------------------------------------------------------------------------------------'
- */
- [_EUCALYN] = LAYOUT_wrapper(
- KC_ESC, Q_____W___COMM___DOT__SCLN, M_____R_____D_____Y_____P, KC_BSLS,
- KC_LCTL, A_____O_____E_____I_____U, G_____T_____K_____S_____N, KC_RCTL,
- KC_LSFT, Z_____X_____C_____V_____F, B_____H_____J_____L____SLSH, KC_RSFT,
- LOWER___LOWER__CAPS__LALT__LGUI__NUML__RABS, RAEN_NUMR__RGUI__RALT___APP_LOWER__LOWER
- ),
-
- /* Num */
-#define EXLM__AT__HASH___DLR__PERC kc5( EXLM, AT, HASH, DLR, PERC )
-#define CIRC_AMPR_ASTR__LPRN__RPRN kc5( CIRC, AMPR, ASTR, LPRN, RPRN )
-#define ____z_____z_____z_____z _______, _______, _______, _______
-#define ____z_____z_____z _______, _______, _______
-#define ____z_____z _______, _______
- /* ,-----------------------------------------. ,-----------------------------------------.
- * | | ! | @ | # | $ | % | | ^ | & | * | ( | ) | |
- * |------+------+------+------+------+------| |------+------+------+------+------+------|
- * | | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | F12 |
- * |------+------+------+------+------+------| |------+------+------+------+------+------|
- * | | F1 | F2 | F3 | F4 | F5 | | F6 | F7 | F8 | F9 | F10 | F11 |
- * |------+------+------+------+------+------+------+------+------+------+------+------+------+------|
- * | | | | | | | | | | | | | | |
- * `-------------------------------------------------------------------------------------------------'
- */
- [_NUML] = LAYOUT_wrapper(
- _______, EXLM__AT__HASH___DLR__PERC, CIRC_AMPR_ASTR__LPRN__RPRN, _______,
- _______, _1_____2_____3_____4_____5, _6_____7_____8_____9_____0, KC_F12,
- _______, F1____F2____F3____F4____F5, F6____F7____F8____F9____F10, KC_F11,
- _______, ____z_____z_____z_____z,____z_____z_____z,KC_SPC, ____z_____z_____z_____z, _______
- ),
- [_NUMR] = LAYOUT_wrapper(
- _______, EXLM__AT__HASH___DLR__PERC, CIRC_AMPR_ASTR__LPRN__RPRN, _______,
- _______, _1_____2_____3_____4_____5, _6_____7_____8_____9_____0, KC_F12,
- _______, F1____F2____F3____F4____F5, F6____F7____F8____F9____F10, KC_F11,
- _______, ____z_____z_____z_____z,KC_SPC, ____z_____z_____z,____z_____z_____z_____z, _______
- ),
- /* Lower */
-#define XXXX__PAUS__SLCK___INS__XXXX XXXXXXX, KC_PAUS, KC_SCRL, KC_INS, XXXXXXX
-#define XXXX___INS__SLCK__PAUS__XXXX XXXXXXX, KC_INS, KC_SCRL, KC_PAUS, XXXXXXX
-#define HOME__XXXX____UP___DEL__PGUP KC_HOME, XXXXXXX, KC_UP, KC_DEL, KC_PGUP
-#define PGUP___DEL____UP__XXXX__HOME KC_PGUP, KC_DEL, KC_UP, XXXXXXX, KC_HOME
-#define END___LEFT__DOWN__RGHT__PGDN kc5( END, LEFT, DOWN, RGHT, PGDN )
-#define PGDN__LEFT__DOWN__RGHT___END kc5( PGDN, LEFT, DOWN, RGHT, END )
-#define ______PSCR__________________ _______, KC_PSCR, _______, _______, _______
-#define __________________PSCR______ _______, _______, _______, KC_PSCR, _______
-#define ADJ___ADJ MO(_ADJUST), MO(_ADJUST)
- /* ,-----------------------------------------. ,-----------------------------------------.
- * | | |Pause | ScrLk| Ins | | | | Ins | ScrLk|Pause | | |
- * |------+------+------+------+------+------| |------+------+------+------+------+------|
- * | | Home | | Up |Delete| PgUp | | PgUp |Delete| Up | | Home | |
- * |------+------+------+------+------+------| |------+------+------+------+------+------|
- * | | End | Left | Down | Right| PgDn | | PgDn | Left | Down | Right| End | |
- * |------+------+------+------+------+------+------+------+------+------+------+------+------+------|
- * | | | PrtSc| | | |Adjust|Adjust| | | | PrtSc| | |
- * `-------------------------------------------------------------------------------------------------'
- */
- [_LOWER] = LAYOUT_wrapper(
- XXXXXXX, XXXX__PAUS__SLCK___INS__XXXX, XXXX___INS__SLCK__PAUS__XXXX, _______,
- _______, HOME__XXXX____UP___DEL__PGUP, PGUP___DEL____UP__XXXX__HOME, _______,
- _______, END___LEFT__DOWN__RGHT__PGDN, PGDN__LEFT__DOWN__RGHT___END, _______,
- _______, ______PSCR__________________, ADJ___ADJ, __________________PSCR______, _______
- ),
- /* Raise */
-#define XXXX__XXXX__XXXX__UNDS__MINS XXXXXXX, XXXXXXX, XXXXXXX, KC_UNDS, KC_MINS
-#define EQL__PLUS__XXXX__XXXX__XXXX KC_EQL, KC_PLUS, XXXXXXX, XXXXXXX, XXXXXXX
-#define XXXX__XXXX__XXXX__LCBR__LBRC XXXXXXX, XXXXXXX, XXXXXXX, KC_LCBR, KC_LBRC
-#define RBRC__RCBR__XXXX__XXXX__XXXX KC_RBRC, KC_RCBR, XXXXXXX, XXXXXXX, XXXXXXX
-#define XXXX__XXXX__XXXX__TILD___GRV XXXXXXX, XXXXXXX, XXXXXXX, KC_TILD, KC_GRV
-#define QUOT___DQT__XXXX__XXXX__XXXX KC_QUOT, KC_DQT, XXXXXXX, XXXXXXX, XXXXXXX
-#define XXXX______________XXXX XXXXXXX, _______, _______, XXXXXXX
- /* ,-----------------------------------------. ,-----------------------------------------.
- * | TAB | | | | _ | - | | = | + | | | | |
- * |------+------+------+------+------+------| |------+------+------+------+------+------|
- * | EISU | | | | { | [ | | ] | } | | | | KANA |
- * |------+------+------+------+------+------| |------+------+------+------+------+------|
- * | | | | | ~ | ` | | ' | " | | | | |
- * |------+------+------+------+------+------+------+------+------+------+------+------+------+------|
- * | | | | | | | | | | | | | | |
- * `-------------------------------------------------------------------------------------------------'
- */
- [_RAISE] = LAYOUT_wrapper(
- KC_TAB, XXXX__XXXX__XXXX__UNDS__MINS, EQL__PLUS__XXXX__XXXX__XXXX, XXXXXXX,
- xEISU, XXXX__XXXX__XXXX__LCBR__LBRC, RBRC__RCBR__XXXX__XXXX__XXXX, xKANA,
- XXXXXXX, XXXX__XXXX__XXXX__TILD___GRV, QUOT___DQT__XXXX__XXXX__XXXX, XXXXXXX,
- ADJ___ADJ, XXXX______________XXXX, ____z_____z, XXXX______________XXXX, ADJ___ADJ
- ),
- /* Adjust (Lower + Raise)
- * ,-----------------------------------------. ,-----------------------------------------.
- * | | Reset|RGBRST|RGB ON|Aud on| Win | | Win | |Qwerty|Euclyn|Colemk|Dvorak|
- * |------+------+------+------+------+------| |------+------+------+------+------+------|
- * | HUE+ | SAT+ | VAL+ |RGB md|Audoff| Mac | | Mac | | | | | |
- * |------+------+------+------+------+------| |------+------+------+------+------+------|
- * | HUE- | SAT- | VAL- | | | | | | | | | | |
- * |------+------+------+------+------+------+------+------+------+------+------+------+------+------|
- * | | | | | | | | | | | | | | |
- * `-------------------------------------------------------------------------------------------------'
- */
- [_ADJUST] = LAYOUT(
- XXXXXXX, QK_BOOT, RGBRST, RGB_TOG, AU_ON, AG_SWAP, AG_SWAP, XXXXXXX, QWERTY, EUCALYN, COLEMAK, DVORAK,
- RGB_HUI, RGB_SAI, RGB_VAI, RGB_MOD, AU_OFF, AG_NORM, AG_NORM, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
- RGB_HUD, RGB_SAD, RGB_VAD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
- _______, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, ___,___, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, _______
- )
-};
-
-#ifdef AUDIO_ENABLE
-
-float tone_qwerty[][2] = SONG(QWERTY_SOUND);
-float tone_dvorak[][2] = SONG(DVORAK_SOUND);
-float tone_colemak[][2] = SONG(COLEMAK_SOUND);
-float tone_plover[][2] = SONG(PLOVER_SOUND);
-float tone_plover_gb[][2] = SONG(PLOVER_GOODBYE_SOUND);
-float music_scale[][2] = SONG(MUSIC_SCALE_SOUND);
-#endif
-
-static int current_default_layer;
-
-layer_state_t default_layer_state_set_kb(layer_state_t state) {
- // 1<<_QWERTY - 1 == 1 - 1 == _QWERTY (=0)
- // 1<<_COLEMAK - 1 == 2 - 1 == _COLEMAK (=1)
- current_default_layer = state - 1;
- // 1<<_DVORAK - 2 == 4 - 2 == _DVORAK (=2)
- if ( current_default_layer == 3 ) current_default_layer -= 1;
- // 1<<_EUCALYN - 5 == 8 - 5 == _EUCALYN (=3)
- if ( current_default_layer == 7 ) current_default_layer -= 4;
- return state;
-}
-
-void update_base_layer(int base)
-{
- if( current_default_layer != base ) {
- eeconfig_update_default_layer(1UL<<base);
- default_layer_set(1UL<<base);
- }
-}
-
-bool process_record_user(uint16_t keycode, keyrecord_t *record) {
- switch (keycode) {
- case QWERTY:
- if (record->event.pressed) {
- #ifdef AUDIO_ENABLE
- PLAY_SONG(tone_qwerty);
- #endif
- update_base_layer(_QWERTY);
- }
- return false;
- break;
- case COLEMAK:
- if (record->event.pressed) {
- #ifdef AUDIO_ENABLE
- PLAY_SONG(tone_colemak);
- #endif
- update_base_layer(_COLEMAK);
- }
- return false;
- break;
- case DVORAK:
- if (record->event.pressed) {
- #ifdef AUDIO_ENABLE
- PLAY_SONG(tone_dvorak);
- #endif
- update_base_layer(_DVORAK);
- }
- return false;
- break;
- case EUCALYN:
- if (record->event.pressed) {
- #ifdef AUDIO_ENABLE
- PLAY_SONG(tone_dvorak);
- #endif
- update_base_layer(_EUCALYN);
- }
- return false;
- break;
- case xEISU:
- if (record->event.pressed) {
- if(keymap_config.swap_lalt_lgui==false){
- register_code(KC_LNG2);
- }else{
- SEND_STRING(SS_LALT("`"));
- }
- } else {
- unregister_code(KC_LNG2);
- }
- return false;
- break;
- case xKANA:
- if (record->event.pressed) {
- if(keymap_config.swap_lalt_lgui==false){
- register_code(KC_LNG1);
- }else{
- SEND_STRING(SS_LALT("`"));
- }
- } else {
- unregister_code(KC_LNG1);
- }
- return false;
- break;
- case RGBRST:
- #ifdef RGBLIGHT_ENABLE
- if (record->event.pressed) {
- eeconfig_update_rgblight_default();
- rgblight_enable();
- }
- #endif
- break;
- }
- return true;
-}
-
-void matrix_init_user(void) {
- #ifdef AUDIO_ENABLE
- startup_user();
- #endif
-}
-
-
-#ifdef AUDIO_ENABLE
-
-void startup_user(void)
-{
- _delay_ms(50); // gets rid of tick
-}
-
-void shutdown_user(void)
-{
- _delay_ms(150);
- stop_all_notes();
-}
-
-void music_on_user(void)
-{
- music_scale_user();
-}
-
-void music_scale_user(void)
-{
- PLAY_SONG(music_scale);
-}
-
-#endif
diff --git a/keyboards/helix/pico/keymaps/mtei/rules.mk b/keyboards/helix/pico/keymaps/mtei/rules.mk
deleted file mode 100644
index 413d0519d6..0000000000
--- a/keyboards/helix/pico/keymaps/mtei/rules.mk
+++ /dev/null
@@ -1,18 +0,0 @@
-# QMK Standard Build Options
-# change to "no" to disable the options, or define them in the Makefile in
-# the appropriate keymap folder that will get included automatically
-#
-# See TOP/keyboards/helix/rules.mk for a list of options that can be set.
-# See TOP/docs/config_options.md for more information.
-#
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-AUDIO_ENABLE = yes # Audio output on port B5
-LTO_ENABLE = no # if firmware size over limit, try this option
-
-# Helix Spacific Build Options
-# you can uncomment and edit follows 4 Variables
-# jp: 以下の4つの変数を必要に応じて編集し、コメントアウトをはずします。
-# LED_BACK_ENABLE = no # LED backlight (Enable WS2812 RGB underlight.)
-# LED_UNDERGLOW_ENABLE = no # LED underglow (Enable WS2812 RGB underlight.)
-# LED_ANIMATIONS = yes # LED animations
-# IOS_DEVICE_ENABLE = no # connect to IOS device (iPad,iPhone)
diff --git a/keyboards/helix/rev2/config.h b/keyboards/helix/rev2/config.h
index 212d0e1e38..7ab494522a 100644
--- a/keyboards/helix/rev2/config.h
+++ b/keyboards/helix/rev2/config.h
@@ -21,9 +21,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define QUICK_TAP_TERM 0
-#define SPLIT_LAYER_STATE_ENABLE
-#define SPLIT_LED_STATE_ENABLE
-
/* Select hand configuration */
#define MASTER_LEFT
// #define MASTER_RIGHT
diff --git a/keyboards/helix/rev2/info.json b/keyboards/helix/rev2/info.json
index 0056ba90b1..aac3cc9dbb 100644
--- a/keyboards/helix/rev2/info.json
+++ b/keyboards/helix/rev2/info.json
@@ -14,7 +14,13 @@
},
"diode_direction": "COL2ROW",
"split": {
- "soft_serial_pin": "D2"
+ "soft_serial_pin": "D2",
+ "transport": {
+ "sync": {
+ "indicators": true,
+ "layer_state": true
+ }
+ }
},
"tapping": {
"term": 100
diff --git a/keyboards/helix/rev2/keymaps/default/keymap.c b/keyboards/helix/rev2/keymaps/default/keymap.c
index b777d35d45..f23ff07b4f 100644
--- a/keyboards/helix/rev2/keymaps/default/keymap.c
+++ b/keyboards/helix/rev2/keymaps/default/keymap.c
@@ -185,7 +185,6 @@ float tone_dvorak[][2] = SONG(DVORAK_SOUND);
float tone_colemak[][2] = SONG(COLEMAK_SOUND);
float tone_plover[][2] = SONG(PLOVER_SOUND);
float tone_plover_gb[][2] = SONG(PLOVER_GOODBYE_SOUND);
-float music_scale[][2] = SONG(MUSIC_SCALE_SOUND);
#endif
// define variables for reactive RGB
@@ -341,36 +340,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
}
void matrix_init_user(void) {
- #ifdef AUDIO_ENABLE
- startup_user();
- #endif
#ifdef RGBLIGHT_ENABLE
RGB_current_mode = rgblight_get_mode();
#endif
}
-
-
-#ifdef AUDIO_ENABLE
-
-void startup_user(void)
-{
- _delay_ms(20); // gets rid of tick
-}
-
-void shutdown_user(void)
-{
- _delay_ms(150);
- stop_all_notes();
-}
-
-void music_on_user(void)
-{
- music_scale_user();
-}
-
-void music_scale_user(void)
-{
- PLAY_SONG(music_scale);
-}
-
-#endif
diff --git a/keyboards/helix/rev2/keymaps/edvorakjp/config.h b/keyboards/helix/rev2/keymaps/edvorakjp/config.h
deleted file mode 100644
index 0dff4b59ca..0000000000
--- a/keyboards/helix/rev2/keymaps/edvorakjp/config.h
+++ /dev/null
@@ -1,22 +0,0 @@
-#pragma once
-
-#define SWAP_SCLN
-
-#undef QUICK_TAP_TERM
-#undef TAPPING_TERM
-#define TAPPING_TERM 300
-
-// If you need more program area, try select and reduce rgblight modes to use.
-
-// Selection of RGBLIGHT MODE to use.
-#if defined(LED_ANIMATIONS)
-// # define RGBLIGHT_EFFECT_BREATHING
-// # define RGBLIGHT_EFFECT_RAINBOW_MOOD
-// # define RGBLIGHT_EFFECT_RAINBOW_SWIRL
-// # define RGBLIGHT_EFFECT_SNAKE
-// # define RGBLIGHT_EFFECT_KNIGHT
-// # define RGBLIGHT_EFFECT_CHRISTMAS
-# define RGBLIGHT_EFFECT_STATIC_GRADIENT
-// # define RGBLIGHT_EFFECT_RGB_TEST
-// # define RGBLIGHT_EFFECT_ALTERNATING
-#endif // LED_ANIMATIONS
diff --git a/keyboards/helix/rev2/keymaps/edvorakjp/keymap.c b/keyboards/helix/rev2/keymaps/edvorakjp/keymap.c
deleted file mode 100644
index 6910bef535..0000000000
--- a/keyboards/helix/rev2/keymaps/edvorakjp/keymap.c
+++ /dev/null
@@ -1,75 +0,0 @@
-#include QMK_KEYBOARD_H
-#include "split_util.h"
-#include "edvorakjp.h"
-
-#define LAYOUT_wrapper(...) LAYOUT(__VA_ARGS__)
-
-#define __KC_TRNS_x4__ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
-#define __KC_TRNS_x6__ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
-
-// clang-format off
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [L_EDVORAKJP_BASE] = LAYOUT_wrapper(
- //,-----------------------------------------------------. ,-----------------------------------------------------.
- KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_F21, KC_F22, KC_F23, KC_F24,
- //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
- KC_GRV, __EDVORAKJP_BASE_L1__ , __EDVORAKJP_BASE_R1__ , KC_BSLS,
- //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
- KC_EQL, __EDVORAKJP_BASE_L2__ , __EDVORAKJP_BASE_R2__ , KC_MINS,
- //|--------+--------+--------+--------+--------+--------+--------. ,--------+--------+--------+--------+--------+--------+--------|
- KC_ESC, __EDVORAKJP_BASE_L3__ , XXXXXXX, XXXXXXX, __EDVORAKJP_BASE_R3__ , KC_SLSH,
- //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
- __EDVORAKJP_PAGE__ , LA_TAB, LS_SPC,LOWER_TD, RAISE_TD, RC_BSPC, RG_ENT, __EDVORAKJP_CURSOR__
- //`--------------------------------------------------------------' `--------------------------------------------------------------'
- ),
-
- [L_EDVORAKJP_LOWER] = LAYOUT_wrapper(
- //,-----------------------------------------------------. ,-----------------------------------------------------.
- __KC_TRNS_x6__ , __KC_TRNS_x6__ ,
- //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
- XXXXXXX, XXXXXXX, __EDVORAKJP_BRACKET_L__ , XXXXXXX, XXXXXXX, __EDVORAKJP_BRACKET_R__ , XXXXXXX, XXXXXXX,
- //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
- __EDVORAKJP_FUNCTION_L__ , __EDVORAKJP_FUNCTION_R__ ,
- //|--------+--------+--------+--------+--------+--------+--------. ,--------+--------+--------+--------+--------+--------+--------|
- KC_PSCR, XXXXXXX, __EDVORAKJP_PAGE__ , KC_TRNS, KC_TRNS, __EDVORAKJP_CURSOR__ , XXXXXXX, XXXXXXX,
- //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
- __KC_TRNS_x4__ , KC_TRNS, KC_TRNS, XXXXXXX, KC_MAC, RC_DEL, KC_TRNS, __KC_TRNS_x4__
- //`--------------------------------------------------------------' `--------------------------------------------------------------'
- ),
-
- [L_EDVORAKJP_RAISE] = LAYOUT_wrapper(
- //,-----------------------------------------------------. ,-----------------------------------------------------.
- __KC_TRNS_x6__ , __KC_TRNS_x6__ ,
- //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
- XXXXXXX, XXXXXXX, __EDVORAKJP_SYMBOL_L__ , __EDVORAKJP_SYMBOL_R__ , XXXXXXX, XXXXXXX,
- //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
- XXXXXXX, __EDVORAKJP_NUMBER_L__ , __EDVORAKJP_NUMBER_R__ , XXXXXXX,
- //|--------+--------+--------+--------+--------+--------+--------. ,--------+--------+--------+--------+--------+--------+--------|
- KC_PSCR, XXXXXXX, __EDVORAKJP_PAGE__ , KC_TRNS, KC_TRNS, __EDVORAKJP_CURSOR__ , XXXXXXX, XXXXXXX,
- //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
- __KC_TRNS_x4__ , KC_TRNS, KC_TRNS, KC_WIN, XXXXXXX, KC_TRNS, KC_TRNS, __KC_TRNS_x4__
- //`--------------------------------------------------------------' `--------------------------------------------------------------'
- )
-};
-// clang-format on
-
-// keymaps definitions are moved to keymap_Xrows.c.
-
-#ifdef RGBLIGHT_ENABLE
-layer_state_t layer_state_set_keymap(layer_state_t state) {
- rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_LIGHT);
- switch (get_highest_layer(state)) {
- case L_EDVORAKJP_LOWER:
- rgblight_sethsv_noeeprom(HSV_RED);
- break;
- case L_EDVORAKJP_RAISE:
- rgblight_sethsv_noeeprom(HSV_GREEN);
- break;
- default: // for any other layers, or the default layer
- rgblight_mode(RGBLIGHT_MODE_STATIC_GRADIENT + 3);
- rgblight_sethsv(HSV_RED);
- break;
- }
- return state;
-}
-#endif
diff --git a/keyboards/helix/rev2/keymaps/edvorakjp/oled.c b/keyboards/helix/rev2/keymaps/edvorakjp/oled.c
deleted file mode 100644
index 38a91c1639..0000000000
--- a/keyboards/helix/rev2/keymaps/edvorakjp/oled.c
+++ /dev/null
@@ -1,65 +0,0 @@
-#include <stdio.h>
-#include <string.h>
-#include "oled.h"
-
-#ifdef OLED_ENABLE
-void render_host_led_state(void) {
- char led_state_str[24];
- led_t led_state = host_keyboard_led_state();
-
- snprintf(led_state_str, sizeof(led_state_str), "NL:%s CL:%s SL:%s", led_state.num_lock ? "on" : "- ", led_state.caps_lock ? "on" : "- ", led_state.scroll_lock ? "on" : "- ");
- oled_write(led_state_str, false);
-}
-
-void render_layer_state(void) {
- char layer_name[17];
- oled_write_P(PSTR("Layer: "), false);
-
- switch (get_highest_layer(layer_state)) {
- case L_EDVORAKJP_BASE:
- oled_write_ln_P(PSTR("Default"), false);
- break;
- case L_EDVORAKJP_LOWER:
- oled_write_ln_P(PSTR("Lower"), false);
- break;
- case L_EDVORAKJP_RAISE:
- oled_write_ln_P(PSTR("Raise"), false);
- break;
- default:
- snprintf(layer_name, sizeof(layer_name), "Undef-%ld", layer_state);
- oled_write_ln(layer_name, false);
- }
-}
-
-void render_logo(void) {
- static const char helix_logo[] PROGMEM = {0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, 0x90, 0x91, 0x92, 0x93, 0x94, 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0};
- oled_write_P(helix_logo, false);
-}
-
-void render_mode_icon(bool is_windows) {
- static const char logo[][2][3] = {
- {{0x95, 0x96, 0}, {0xb5, 0xb6, 0}},
- {{0x97, 0x98, 0}, {0xb7, 0xb8, 0}},
- };
- static char mode_icon[10];
-
- snprintf(mode_icon, sizeof(mode_icon), "%s\n%s ", logo[is_windows][0], logo[is_windows][1]);
- oled_write(mode_icon, false);
-}
-
-oled_rotation_t oled_init_user(oled_rotation_t rotation) {
- // flips the display 180 degrees if offhand
- return is_keyboard_left() ? rotation : rotation ^ OLED_ROTATION_180;
-}
-
-bool oled_task_user(void) {
- if (is_keyboard_left()) {
- render_mode_icon(!get_enable_kc_lang());
- render_layer_state();
- render_host_led_state();
- } else {
- render_logo();
- }
- return false;
-}
-#endif // OLED_ENABLE
diff --git a/keyboards/helix/rev2/keymaps/edvorakjp/oled.h b/keyboards/helix/rev2/keymaps/edvorakjp/oled.h
deleted file mode 100644
index d0c5685283..0000000000
--- a/keyboards/helix/rev2/keymaps/edvorakjp/oled.h
+++ /dev/null
@@ -1,12 +0,0 @@
-#pragma once
-
-#include "edvorakjp.h"
-
-extern bool japanese_mode;
-
-void render_host_led_state(void);
-void render_layer_state(void);
-void render_logo(void);
-void render_mode_icon(bool is_windows);
-oled_rotation_t oled_init_user(oled_rotation_t rotation);
-bool oled_task_user(void);
diff --git a/keyboards/helix/rev2/keymaps/edvorakjp/readme.md b/keyboards/helix/rev2/keymaps/edvorakjp/readme.md
deleted file mode 100644
index dd406523d2..0000000000
--- a/keyboards/helix/rev2/keymaps/edvorakjp/readme.md
+++ /dev/null
@@ -1,21 +0,0 @@
-# edvorakjp
-
-Epaew's Enhanced Dvorak layout for Japanese Programmer
-see [here](/users/edvorakjp) for more informations.
-
-## License
-
-Copyright 2018 Ryo Maeda epaew.333@gmail.com @epaew
-
-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/>.
diff --git a/keyboards/helix/rev2/keymaps/edvorakjp/rules.mk b/keyboards/helix/rev2/keymaps/edvorakjp/rules.mk
deleted file mode 100644
index 66d33e5e46..0000000000
--- a/keyboards/helix/rev2/keymaps/edvorakjp/rules.mk
+++ /dev/null
@@ -1,33 +0,0 @@
-# QMK Standard Build Options
-# change to "no" to disable the options, or define them in the Makefile in
-# the appropriate keymap folder that will get included automatically
-#
-# See TOP/keyboards/helix/rules.mk for a list of options that can be set.
-# See TOP/docs/config_options.md for more information.
-#
-SPLIT_KEYBOARD = yes
-LTO_ENABLE = no # if firmware size over limit, try this option
-TAP_DANCE_ENABLE = yes
-
-# Helix Spacific Build Options
-# you can uncomment and edit follows 7 Variables
-# jp: 以下の7つの変数を必要に応じて編集し、コメントアウトをはずします。
-# OLED_ENABLE = no # OLED_ENABLE
-# LOCAL_GLCDFONT = no # use each keymaps "helixfont.h" instead of "common/glcdfont.c"
-# LED_BACK_ENABLE = no # LED backlight (Enable WS2812 RGB underlight.)
-# LED_UNDERGLOW_ENABLE = no # LED underglow (Enable WS2812 RGB underlight.)
-# LED_ANIMATIONS = yes # LED animations
-# IOS_DEVICE_ENABLE = no # connect to IOS device (iPad,iPhone)
-OLED_SELECT = core
-
-# convert Helix-specific options (that represent combinations of standard options)
-# into QMK standard options.
-include $(strip $(KEYBOARD_LOCAL_FEATURES_MK))
-
-ifeq ($(strip $(LED_UNDERGLOW_ENABLE)), yes)
- OPT_DEFS += -DRGBLED_BACK
-endif
-
-ifeq ($(strip $(OLED_ENABLE)), yes)
- SRC += oled.c
-endif
diff --git a/keyboards/helix/rev2/keymaps/five_rows/README.md b/keyboards/helix/rev2/keymaps/five_rows/README.md
deleted file mode 100644
index 10a4fa942c..0000000000
--- a/keyboards/helix/rev2/keymaps/five_rows/README.md
+++ /dev/null
@@ -1,84 +0,0 @@
-# Keymap for 5 rows Helix keyboard
-
-This keymap is only for 5 rows Helix keyboard.
-
-## Layout
-
-![fig1](https://gist.github.com/mtei/c81a3688206aa50996339cb9ced4751d/raw/827632dda7db87cf88d41a0d3b476c5962c29213/helix-five_rows_r3.png)
-
-## Layer
-
-|Priority|Number|Name|Discription|
-| ---- | ---- | --- | --- |
-|high|9|Adjust| keyboard local functions (violet)|
-||8|KFunction| TenkeyPad function keys (bule)|
-||7|Extra char| some charactors (red)|
-||6|Function| function keys (blue)|
-||2|Keypad|TenkeyPad|
-||2|Dvorak|Dvorak|
-||1|Colemak|Colemak|
-|low|0|Qwerty|QWERTY (base)|
-
-### Adjust Layer
-
-Adjust Layer has keyboard local function keys.
-
-* LED control.
-* Mac/Win mode change.
-* Qwerty/Colemak/Dvorak/TenkeyPad change.
-
-![fig2](https://gist.github.com/mtei/c81a3688206aa50996339cb9ced4751d/raw/827632dda7db87cf88d41a0d3b476c5962c29213/helix-five_rows_r3adj.png)
-
-### Mac mode and Win mode
-
-Mac mode swap Alt/Win(GUI) key.
-
-|mode|key|code|
-| ---- | ---- | --- |
-|Mac mode|Adjust + g(Qwerty)|AG_NORM|
-| |Adjust + h(Qwerty)| |
-|Win mode|Adjust + t(Qwerty)|AG_SWAP|
-| |Adjust + y(Qwerty)| |
-
-### LED control
-
-|command|key|code|
-| ---- | ---- | --- |
-|on/off|Adjust + e(Qwerty)|RGB_TOG|
-| |Adjust + i(Qwerty)| |
-|change mode|Adjust + d(Qwerty) |RGB_MOD|
-| |Adjust + k(Qwerty)| |
-|HUE +|Adjust + Left Control|RGB_HUI|
-| |Adjust + Right Control| |
-|HUE -|Adjust + Left Shift |RGB_HUD|
-| |Adjust + Right Shift | |
-|SAT +|Adjust + ;(Qwerty) |RGB_SAI|
-| |Adjust + a(Qwerty) | |
-|SAT -|Adjust + z(Qwerty) |RGB_SAD|
-| |Adjust + /(Qwerty) | |
-|Bright +|Adjust + s(Qwerty) |RGB_VAI|
-| |Adjust + l(Qwerty) | |
-|Bright -|Adjust + x(Qwerty) |RGB_VAD|
-| |Adjust + >(Qwerty) | |
-|reset|Adjust + w|RGBRST|
-
-### Qwerty, Colemak, Dvorak, TenkeyPad selection
-
-|char layout|key|
-| ---- | ---- |
-|Qwerty | Adjust + 5 |
-| | Adjust + 6 |
-|Calemak| Adjust + 4 |
-| | Adjust + 7 |
-|Dvorak | Adjust + 3 |
-| | Adjust + 8 |
-|Keypad | Adjust + 2 |
-| | Adjust + 9 |
-
-## TenkeyPad layout
-
-![fig3](https://gist.github.com/mtei/c81a3688206aa50996339cb9ced4751d/raw/827632dda7db87cf88d41a0d3b476c5962c29213/helix-five_rows_r3key.png)
-
-## Note
-
-![fig4](https://gist.github.com/mtei/c81a3688206aa50996339cb9ced4751d/raw/d6e9af7684c051de4744b9dee9cd96b762bf4e2d/five_rows_making2.jpg)
diff --git a/keyboards/helix/rev2/keymaps/five_rows/README_jp.md b/keyboards/helix/rev2/keymaps/five_rows/README_jp.md
deleted file mode 100644
index 317ffdd71d..0000000000
--- a/keyboards/helix/rev2/keymaps/five_rows/README_jp.md
+++ /dev/null
@@ -1,121 +0,0 @@
-# Keymap for 5 rows Helix keyboard
-
-本キーマップは、Helix キーボードの5行版専用のキーマップです。
-
-普通のキーボード使用者が、Helix キーボードを使うときになるべく違いが少なく戸惑いが少なくなるように意図したキーマップです。(意図通り成功しているかどうかは使用する人の判断で、、、)
-
-## キー配置
-以下に、Qwerty配列時の、文字配列の図を示します。
-
-![fig1](https://gist.github.com/mtei/c81a3688206aa50996339cb9ced4751d/raw/827632dda7db87cf88d41a0d3b476c5962c29213/helix-five_rows_r3.png)
-
-## レイヤー
-
-|優先順位|番号|名称|内容|
-| ---- | ---- | --- | --- |
-|高い|9|Adjust|機能キー(紫)|
-||8|KFunction|テンキーパッド用ファンクションキー類(青)|
-||7|Extra char|記号類(赤)|
-||6|Function|ファンクションキー類(青)|
-||3|Keypad|テンキーパッド配列|
-||2|Dvorak|Dvorak配列|
-||1|Colemak|Colemak配列|
-|低い|0|Qwerty|QWERTY配列(ベース)|
-
-Qwerty/Colemak/Dvorak/Keypad の各レイヤーは、後述する、Ajuestレイヤーの キーによる選択で、いずれか一つだけが有効になり、標準のキーマップとなります。
-
-Function レイヤーは、下段両端の4つのFnキーのどれかひとつを押している間だけ有効になり、矢印キー等のナビゲーションキーや F1, F2, ...F12キーなどが配置されています。
-上の図の青色の刻印のキーのあるレイヤーです。
-
-Extra レイヤーは、下段中央部の Enter キーか BS キーを一定時間(0.2秒)以上押していると押している間だけ有効になり、'+=-_[]{}' の 8つの記号と「英数」キー、「かな」キーが配置されています。
-このため、Enter/BS キーで Enter/BS を入力するには、Enter/BSキーを押して短時間ですぐ離してください。
-上の図の赤色の刻印のキーのあるレイヤーです。
-
-Adjust レイヤーは、Adjust キーを押している間有効になります。
-Adjust キーは Function レイヤーに有り、下段両端の4つのFnキーのどれか一つを押しながら、下段中央部の Enter キーか BS キーを押すことで Adjust レイヤーが有効になります。
-Adjust キー (Enter/BS)を押した後は、Fnキーは離して構いません。
-
-### Adjust レイヤー
-Ajust レイヤーは、LEDのコントロール、Mac/Win モードの切り替え、Qwerty配列, Colemak配列, Dvorak配列, TenkeyPad配列の切り替えが行えます。
-
-![fig2](https://gist.github.com/mtei/c81a3688206aa50996339cb9ced4751d/raw/827632dda7db87cf88d41a0d3b476c5962c29213/helix-five_rows_r3adj.png)
-
-### MacモードとWinモード
-キーボードには、Mac モードと、Win モードの二つのモードがあります。
-
-現在のモードはOLEDにアイコンとして表示されます。
-(以下の指定キーは、Qwerty配列時の文字を使ってキーを表示しています)
-
-|コマンド|指定キー|コード|
-| ---- | ---- | --- |
-|Macモード|Adjust + g(Qwerty)|AG_NORM|
-| |Adjust + h(Qwerty)| |
-|Winモード|Adjust + t(Qwerty)|AG_SWAP|
-| |Adjust + y(Qwerty)| |
-
-Mac モードと Win モードでは、AltキーとWin(GUI)キーが入れ替わります。
-
-Mac モードでは、Extra レイヤー の「英数」キーと「かな」キーで英語モードと日本語モードの切り替えができます。
-
-Winモードでは、該当のキーはどちらも共に Alt + `(日本語IMEの切り替え)として入力されます。
-
-### LEDコントロール
-
-バックライトやUnderglowをコントロールするにはAdjustレイヤーにある機能キーを使います。
-(以下の指定キーは、Qwerty配列時の文字を使ってキーを表示しています)
-
-|コマンド|指定キー|コード|
-| ---- | ---- | --- |
-|オン/オフ|Adjust + e(Qwerty)|RGB_TOG|
-| |Adjust + i(Qwerty)| |
-|モード切り替え|Adjust + d(Qwerty) |RGB_MOD|
-| |Adjust + k(Qwerty)| |
-|色相 +|Adjust + Left Control|RGB_HUI|
-| |Adjust + Right Control| |
-|色相 -|Adjust + Left Shift |RGB_HUD|
-| |Adjust + Right Shift | |
-|彩度 +|Adjust + ;(Qwerty) |RGB_SAI|
-| |Adjust + a(Qwerty) | |
-|彩度 -|Adjust + z(Qwerty) |RGB_SAD|
-| |Adjust + /(Qwerty) | |
-|明度 +|Adjust + s(Qwerty) |RGB_VAI|
-| |Adjust + l(Qwerty) | |
-|明度 -|Adjust + x(Qwerty) |RGB_VAD|
-| |Adjust + >(Qwerty) | |
-|リセット|Adjust + w|RGBRST|
-
-### 文字配列選択
-Qwerty, Colemak, Dvorak, Keypad それぞれの文字配列の選択は以下のキーを使います。
-
-|選択配列|指定キー|
-| ---- | ---- |
-|Qwerty | Adjust + 5 |
-| | Adjust + 6 |
-|Calemak| Adjust + 4 |
-| | Adjust + 7 |
-|Dvorak | Adjust + 3 |
-| | Adjust + 8 |
-|Keypad | Adjust + 2 |
-| | Adjust + 9 |
-
-## テンキーパッドのキー配置
-以下に、テンキーパッド配列時の、文字配列の図を示します。
-
-![fig3](https://gist.github.com/mtei/c81a3688206aa50996339cb9ced4751d/raw/827632dda7db87cf88d41a0d3b476c5962c29213/helix-five_rows_r3key.png)
-
-図でわかるように、テンキーと F1,F2..F12 のキー入力ができる配列です。
-F12キーは一定時間(0.2秒)以上押していると KFunc キーとして働き、押している間は、青色の刻印のキー入力を行えます。
-F12 そのものを入力するときは押して短時間ですぐ離してください。
-F12キーを押しているときは、F11キー は Adjust キーとなり、Adjust レイヤーが有効になります。
-これによって、Qwerty 配列などに戻すことが可能になります。
-
-## 備考
-本キーマップは、通常のキーボードの主要部分のホームポジション周辺をなるべくそのまま踏襲する方針で作成しました。
-変更点は以下の通りです。
-
- * 右手小指により多く割り当たっていた5つの記号と左上の1つの記号を中央に集め人差し指の担当とする。
- * Enter キーを親指担当として中央手前に移動。
- * Control キーを左右共にホームポジションの行に移動。
- * 左手親指に BackSpace キーを割り当てる。
-
-![fig4](https://gist.github.com/mtei/c81a3688206aa50996339cb9ced4751d/raw/d6e9af7684c051de4744b9dee9cd96b762bf4e2d/five_rows_making2.jpg)
diff --git a/keyboards/helix/rev2/keymaps/five_rows/config.h b/keyboards/helix/rev2/keymaps/five_rows/config.h
deleted file mode 100644
index 43f14aaf2c..0000000000
--- a/keyboards/helix/rev2/keymaps/five_rows/config.h
+++ /dev/null
@@ -1,16 +0,0 @@
-// Copyright (c) 2022 Takeshi Ishii (mtei@github)
-// SPDX-License-Identifier: GPL-2.0-or-later
-
-#pragma once
-
-#undef TAPPING_TERM
-#define TAPPING_TERM 300
-#define PERMISSIVE_HOLD
-
-#undef OLED_UPDATE_INTERVAL
-#ifdef DEBUG_MATRIX_SCAN_RATE
-# define OLED_UPDATE_INTERVAL 500
-#else
-# define OLED_UPDATE_INTERVAL 50
-#endif
-
diff --git a/keyboards/helix/rev2/keymaps/five_rows/keymap.c b/keyboards/helix/rev2/keymaps/five_rows/keymap.c
deleted file mode 100644
index dc2759d5b6..0000000000
--- a/keyboards/helix/rev2/keymaps/five_rows/keymap.c
+++ /dev/null
@@ -1,474 +0,0 @@
-/* Copyright 2020 mtei
- *
- * 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 "key_blocks.h"
-#include "layer_number_util.h"
-
-#ifdef ENABLE_COLEMAK
-# define COLEMAK_Colemak (COLEMAK, " Colemak"),
-#else
-# define COLEMAK_Colemak
-#endif
-#ifdef ENABLE_DVORAK
-# define DVORAK_Dvorak (DVORAK, " Dvorak"),
-#else
-# define DVORAK_Dvorak
-#endif
-#ifdef ENABLE_EUCALYN
-# define EUCALYN_Eucalyn (EUCALYN, " Eucalyn"),
-#else
-# define EUCALYN_Eucalyn
-#endif
-
-#define LAYER_NAME_LIST \
- (QWERTY, " Qwerty"), \
- COLEMAK_Colemak \
- DVORAK_Dvorak \
- EUCALYN_Eucalyn \
- (KEYPAD, " Keypad"), \
- (AUX, ":AUX"), \
- (KAUX, ":00"), \
- (LOWER, ":Func"), \
- (RAISE, ":Extra"), \
- (PADFUNC, ":PadFunc"), \
- (ADJUST, ":Adjust")
-
-enum layer_number {
- // _QWERTY, _COLEMAK, ...
- MAP(BUILD_LAYER_ENUM_NUMBER, LAYER_NAME_LIST)
-};
-
-#ifdef OLED_ENABLE
-// static const char QWERTY_name[] PROGMEM = " Qwerty"; ...
-MAP(BUILD_LAYER_NAME_STR, LAYER_NAME_LIST)
-
-const char *layer_names[] = {
- // [_QWERTY] = QWERTY_name, ...
- MAP(BUILD_LAYER_NAME_TABLE, LAYER_NAME_LIST)
-};
-#endif
-
-const size_t num_of_layer_names = GET_ITEM_COUNT(LAYER_NAME_LIST);
-
-extern keymap_config_t keymap_config;
-
-extern uint8_t is_master;
-
-enum custom_keycodes {
- QWERTY = SAFE_RANGE,
- COLEMAK,
- DVORAK,
- EUCALYN,
- KEYPAD,
- xEISU,
- xKANA,
- ZERO2,
- RGBRST
-};
-
-// clang-format off
-
-#define LAYOUT_wrapper(...) LAYOUT(__VA_ARGS__)
-
-//Macros
-#define KC_LOWER MO(_LOWER)
-#define XXXX XXXXXXX
-#define ____ _______
-#define KC_ADJ MO(_ADJUST)
-
-#define LOWER__LOWER__CAPS__LALT__LGUI__SPC__RABS \
- KC_LOWER, KC_LOWER, KC_CAPS, KC_LALT, KC_LGUI, KC_SPC, LT(_RAISE,KC_BSPC)
-#define RAEN___SPC___RGUI__RALT__APP___LOWER__LOWER \
- LT(_RAISE,KC_ENT), KC_SPC, KC_RGUI, KC_RALT, KC_APP, KC_LOWER, KC_LOWER
-#define GRV__QUOT KC_GRV, KC_QUOT
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
- /* Qwerty */
- /* ,-----------------------------------. ,-----------------------------------.
- * | ESC | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | BS |
- * |-----+-----+-----+-----+-----+-----| |-----+-----+-----+-----+-----+-----|
- * | Tab | Q | W | E | R | T | | Y | U | I | O | P | \ |
- * |-----+-----+-----+-----+-----+-----| |-----+-----+-----+-----+-----+-----|
- * | Ctrl| A | S | D | F | G | | H | J | K | L | ; |Ctrl |
- * |-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----|
- * |Shift| Z | X | C | V | B | ` | ' | N | M | , | . | / |Shift|
- * |-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----|
- * |Lower|Lower|Caps | Alt | GUI |Space| BS |Enter|Space| GUI | Alt |Menu |Lower|Lower|
- * `-----------------------------------------------------------------------------------'
- */
- [_QWERTY] = LAYOUT_wrapper(
- KC_ESC, _1_____2_____3_____4_____5, _6_____7_____8_____9_____0, KC_BSPC,
- KC_TAB, Q_____W_____E_____R_____T, Y_____U_____I_____O_____P, KC_BSLS,
- KC_LCTL, A_____S_____D_____F_____G, H_____J_____K_____L____SCLN, KC_RCTL,
- KC_LSFT, Z_____X_____C_____V_____B, GRV__QUOT, N_____M____COMM__DOT___SLSH, KC_RSFT,
- LOWER__LOWER__CAPS__LALT__LGUI__SPC__RABS, RAEN___SPC___RGUI__RALT__APP___LOWER__LOWER
- ),
-
- /* Colemak */
- /* ,-----------------------------------. ,-----------------------------------.
- * | ESC | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | BS |
- * |-----+-----+-----+-----+-----+-----| |-----+-----+-----+-----+-----+-----|
- * | Tab | Q | W | F | P | G | | J | L | U | Y | ; | \ |
- * |-----+-----+-----+-----+-----+-----| |-----+-----+-----+-----+-----+-----|
- * | Ctrl| A | R | S | T | D | | H | N | E | I | O |Ctrl |
- * |-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----|
- * |Shift| Z | X | C | V | B | ` | ' | K | M | , | . | / |Shift|
- * |-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----|
- * |Lower|Lower|Caps | Alt | GUI |Space| BS |Enter|Space| GUI | Alt |Menu |Lower|Lower|
- * `-----------------------------------------------------------------------------------'
- */
-#ifdef ENABLE_COLEMAK
- [_COLEMAK] = LAYOUT_wrapper(
- KC_ESC, _1_____2_____3_____4_____5, _6_____7_____8_____9_____0, KC_BSPC,
- KC_TAB, Q_____W_____F_____P_____G, J_____L_____U_____Y____SCLN, KC_BSLS,
- KC_LCTL, A_____R_____S_____T_____D, H_____N_____E_____I_____O, KC_RCTL,
- KC_LSFT, Z_____X_____C_____V_____B, GRV__QUOT, K_____M____COMM__DOT___SLSH, KC_RSFT,
- LOWER__LOWER__CAPS__LALT__LGUI__SPC__RABS, RAEN___SPC___RGUI__RALT__APP___LOWER__LOWER
- ),
-#endif
-
- /* Dvorak */
-#define GRV__SLSH KC_GRV, KC_SLSH
- /* ,-----------------------------------. ,-----------------------------------.
- * | ESC | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | BS |
- * |-----+-----+-----+-----+-----+-----| |-----+-----+-----+-----+-----+-----|
- * | Tab | ' | , | . | P | Y | | F | G | C | R | L | \ |
- * |-----+-----+-----+-----+-----+-----| |-----+-----+-----+-----+-----+-----|
- * | Ctrl| A | O | E | U | I | | D | H | T | N | S |Ctrl |
- * |-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----|
- * |Shift| ; | Q | J | K | X | ` | / | B | M | W | V | Z |Shift|
- * |-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----|
- * |Lower|Lower|Caps | Alt | GUI |Space| BS |Enter|Space| GUI | Alt |Menu |Lower|Lower|
- * `-----------------------------------------------------------------------------------'
- */
-#ifdef ENABLE_DVORAK
- [_DVORAK] = LAYOUT_wrapper(
- KC_ESC, _1_____2_____3_____4_____5, _6_____7_____8_____9_____0, KC_BSPC,
- KC_TAB, QUOT_COMM___DOT____P_____Y, F_____G_____C_____R_____L, KC_BSLS,
- KC_LCTL, A_____O_____E_____U_____I, D_____H_____T_____N_____S, KC_RCTL,
- KC_LSFT, SCLN___Q_____J_____K_____X, GRV__SLSH, B_____M_____W_____V_____Z, KC_RSFT,
- LOWER__LOWER__CAPS__LALT__LGUI__SPC__RABS, RAEN___SPC___RGUI__RALT__APP___LOWER__LOWER
- ),
-#endif
-
- /* Eucalyn (http://eucalyn.hatenadiary.jp/entry/about-eucalyn-layout) */
- /* ,-----------------------------------. ,-----------------------------------.
- * | ESC | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | BS |
- * |-----+-----+-----+-----+-----+-----| |-----+-----+-----+-----+-----+-----|
- * | Tab | Q | W | , | . | ; | | M | R | D | Y | P | \ |
- * |-----+-----+-----+-----+-----+-----| |-----+-----+-----+-----+-----+-----|
- * | Ctrl| A | O | E | I | U | | G | T | K | S | N |Ctrl |
- * |-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----|
- * |Shift| Z | X | C | V | F | ` | ' | B | H | J | L | / |Shift|
- * |-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----|
- * |Lower|Lower|Caps | Alt | GUI |Space| BS |Enter|Space| GUI | Alt |Menu |Lower|Lower|
- * `-----------------------------------------------------------------------------------'
- */
-#ifdef ENABLE_EUCALYN
- [_EUCALYN] = LAYOUT_wrapper(
- KC_ESC, _1_____2_____3_____4_____5, _6_____7_____8_____9_____0, KC_BSPC,
- KC_TAB, Q_____W___COMM___DOT__SCLN, M_____R_____D_____Y_____P, KC_BSLS,
- KC_LCTL, A_____O_____E_____I_____U, G_____T_____K_____S_____N, KC_RCTL,
- KC_LSFT, Z_____X_____C_____V_____F, GRV__QUOT, B_____H_____J_____L____SLSH, KC_RSFT,
- LOWER__LOWER__CAPS__LALT__LGUI__SPC__RABS, RAEN___SPC___RGUI__RALT__APP___LOWER__LOWER
- ),
-#endif
-
- /* Keypad */
-#define KP_TAB__PSLS_PAST KC_TAB, KC_PSLS, KC_PAST
-#define KP__7_____8_____9 KC_KP_7, KC_KP_8, KC_KP_9
-#define KP__4_____5_____6 KC_KP_4, KC_KP_5, KC_KP_6
-#define KP__1_____2_____3 KC_KP_1, KC_KP_2, KC_KP_3
-#define KP__0___COMM_PDOT KC_KP_0, KC_COMM, KC_PDOT
-#define F1___F6 KC_F1, KC_F6
-#define F2___F7 KC_F2, KC_F7
-#define F3___F8 KC_F3, KC_F8
-#define F4___F9 KC_F4, KC_F9
-#define F5__F10 KC_F5, KC_F10
-#define FF12 LT(_PADFUNC,KC_F12)
- /* ,-----------------------------------. ,-----------------------------------.
- * | Tab | / | * | Del | F1 | F6 | | F1 | F6 | Del | Tab | / | * |
- * |-----+-----+-----+-----+-----+-----| |-----+-----+-----+-----+-----+-----|
- * | 7 | 8 | 9 | BS | F2 | F7 | | F2 | F7 | BS | 7 | 8 | 9 |
- * |-----+-----+-----+-----+-----+-----| |-----+-----+-----+-----+-----+-----|
- * | 4 | 5 | 6 | - | F3 | F8 | | F3 | F8 | - | 4 | 5 | 6 |
- * |-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----|
- * | 1 | 2 | 3 | + | F4 | F9 | F11 | F11 | F4 | F9 | + | 1 | 2 | 3 |
- * |-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----|
- * | 0 | , | . |Enter| F5 | F10| F12 | F12 | F5 | F10|Enter| 0 | , | . |
- * `-----------------------------------------------------------------------------------'
- */
- [_KEYPAD] = LAYOUT_wrapper(
- KP_TAB__PSLS_PAST, KC_DEL, F1___F6, F1___F6, KC_DEL, KP_TAB__PSLS_PAST,
- KP__7_____8_____9, KC_BSPC, F2___F7, F2___F7, KC_BSPC, KP__7_____8_____9,
- KP__4_____5_____6, KC_PMNS, F3___F8, F3___F8, KC_PMNS, KP__4_____5_____6,
- KP__1_____2_____3, KC_PPLS, F4___F9, KC_F11,KC_F11, F4___F9, KC_PPLS, KP__1_____2_____3,
- KP__0___COMM_PDOT, KC_PENT, F5__F10, FF12, FF12, F5__F10, KC_PENT, KP__0___COMM_PDOT
- ),
-
- /* AUX modifier key layer
- * ,-----------------------------------. ,-----------------------------------.
- * | | | | | | | | | | | | | |
- * |-----+-----+-----+-----+-----+-----| |-----+-----+-----+-----+-----+-----|
- * | | | | | | | | | | | | | |
- * |-----+-----+-----+-----+-----+-----| |-----+-----+-----+-----+-----+-----|
- * | | | | | | | | | | | | | |
- * |-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----|
- * | | | | | | | | | | | | | | |
- * |-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----|
- * | | 00 | | | | | | | | | | | 00 | |
- * `-----------------------------------------------------------------------------------'
- */
- [_KAUX] = LAYOUT(
- ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____,
- ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____,
- ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____,
- ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____,
- ____,ZERO2, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____,ZERO2, ____
- ),
-
- /* Keypad function layer */
-#define PAUS__SLCK__PSCR KC_PAUS, KC_SCRL, KC_PSCR
-#define PSCR__SLCK__PAUS KC_PSCR, KC_SCRL, KC_PAUS
-#define HOME___UP___PGUP KC_HOME, KC_UP, KC_PGUP
-#define PGUP___UP___HOME KC_PGUP, KC_UP, KC_HOME
-#define DEL____INS__LEFT__DOWN__RGHT KC_DEL, KC_INS, KC_LEFT, KC_DOWN, KC_RGHT
-#define LEFT__DOWN__RGHT___INS___DEL KC_LEFT, KC_DOWN, KC_RGHT, KC_INS, KC_DEL
-#define PGDN___ADJ___ADJ__PGDN KC_PGDN, KC_ADJ, KC_ADJ, KC_PGDN
- /* ,-----------------------------------------. ,-----------------------------------------.
- * | | | | Pause| ScrLk| PtrSc| | PtrSc| ScrLk| Pause| | | |
- * |------+------+------+------+------+------| |------+------+------+------+------+------|
- * | | | | Home | Up | PgUp | | PgUp | Up | Home | | | |
- * |------+------+------+------+------+------| |------+------+------+------+------+------|
- * | |Delete|Insert| Left | Down | Right| | Left | Down | Right|Insert|Delete| |
- * |------+------+------+------+------+------+------+------+------+------+------+------+------+------|
- * | | | | End | | PgDn |Adjust|Adjust| PgDn | | End | | | |
- * |------+------+------+------+------+------+------+------+------+------+------+------+------+------|
- * | | | | | | | | | | | | | | |
- * `-------------------------------------------------------------------------------------------------'
- */
- [_PADFUNC] = LAYOUT_wrapper(
- XXXX, XXXX, XXXX, PAUS__SLCK__PSCR, PSCR__SLCK__PAUS, XXXX, XXXX, XXXX,
- XXXX, XXXX, XXXX, HOME___UP___PGUP, PGUP___UP___HOME, XXXX, XXXX, XXXX,
- XXXX, DEL____INS__LEFT__DOWN__RGHT, LEFT__DOWN__RGHT___INS___DEL, XXXX,
- XXXX, XXXX, XXXX,KC_END,XXXX, PGDN___ADJ___ADJ__PGDN, XXXX,KC_END,XXXX, XXXX, XXXX,
- XXXX, XXXX, XXXX, XXXX, XXXX, XXXX, ____, ____, XXXX, XXXX, XXXX, XXXX, XXXX, XXXX
- ),
-
- /* Lower */
-#define XXXX__PAUS__SLCK___INS XXXX, KC_PAUS, KC_SCRL, KC_INS
-#define XXXX___INS__SLCK__PAUS__XXXX XXXX, KC_INS, KC_SCRL, KC_PAUS, XXXX
-#define ADJ___ADJ KC_ADJ, KC_ADJ
-#define HOME__XXXX___UP____DEL__PGUP KC_HOME, XXXX, KC_UP, KC_DEL, KC_PGUP
-#define PGUP___DEL___UP___XXXX__HOME KC_PGUP, KC_DEL, KC_UP, XXXX, KC_HOME
-#define END__LEFT__DOWN__RGHT__PGDN KC_END, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN
-#define PGDN__LEFT__DOWN__RGHT___END KC_PGDN, KC_LEFT, KC_DOWN, KC_RGHT, KC_END
- /* ,-----------------------------------------. ,-----------------------------------------.
- * | | F1 | F2 | F3 | F4 | F5 | | F6 | F7 | F8 | F9 | F10 | F11 |
- * |------+------+------+------+------+------| |------+------+------+------+------+------|
- * | | |Pause | ScrLk| Ins | | | | Ins | ScrLk|Pause | | F12 |
- * |------+------+------+------+------+------| |------+------+------+------+------+------|
- * | | Home | | Up |Delete| PgUp | | PgUp |Delete| Up | | Home | |
- * |------+------+------+------+------+------+------+------+------+------+------+------+------+------|
- * | | End | Left | Down | Right| PgDn |Adjust|Adjust| PgDn | Left | Down | Right| End | |
- * |------+------+------+------+------+------+------+------+------+------+------+------+------+------|
- * | | | PrtSc| | | | | | | | | PrtSc| | |
- * `-------------------------------------------------------------------------------------------------'
- */
- [_LOWER] = LAYOUT_wrapper(
- XXXX, F1____F2____F3____F4____F5, F6____F7____F8____F9____F10, KC_F11,
- XXXX, XXXX__PAUS__SLCK___INS, XXXX, XXXX___INS__SLCK__PAUS__XXXX, KC_F12,
- ____, HOME__XXXX___UP____DEL__PGUP, PGUP___DEL___UP___XXXX__HOME, ____,
- ____, END__LEFT__DOWN__RGHT__PGDN, XXXX, XXXX, PGDN__LEFT__DOWN__RGHT___END, ____,
- ____, ____,KC_PSCR,____, ____, ____, ADJ___ADJ, ____, ____, ____,KC_PSCR,____, ____
- ),
-
- /* Raise */
-#define UNDS__MINS KC_UNDS, KC_MINS
-#define EQL___PLUS KC_EQL, KC_PLUS
-#define LCBR__LBRC KC_LCBR, KC_LBRC
-#define RBRC__RCBR KC_RBRC, KC_RCBR
-#define MNXT__VOLD__VOLU__MPLY KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY
-#define EISU__EISU xEISU, xEISU
-#define KANA__KANA xKANA, xKANA
- /* ,-----------------------------------------. ,-----------------------------------------.
- * | | | | | | | | | | | | | |
- * |------+------+------+------+------+------| |------+------+------+------+------+------|
- * | | | | | _ | - | | = | + | | | | |
- * |------+------+------+------+------+------| |------+------+------+------+------+------|
- * | | | | | { | [ | | ] | } | | | | |
- * |------+------+------+------+------+------+------+------+------+------+------+------+------+------|
- * | | | | | | EISU | EISU | KANA | KANA | Next | Vol- | Vol+ | Play | |
- * |------+------+------+------+------+------+------+------+------+------+------+------+------+------|
- * | | | | | | | | | | | | | | |
- * `-------------------------------------------------------------------------------------------------'
- */
- [_RAISE] = LAYOUT_wrapper(
- XXXX, XXXX, XXXX, XXXX, XXXX, XXXX, XXXX, XXXX, XXXX, XXXX, XXXX, XXXX,
- XXXX, XXXX, XXXX, XXXX, UNDS__MINS, EQL___PLUS, XXXX, XXXX, XXXX, XXXX,
- ____, XXXX, XXXX, XXXX, LCBR__LBRC, RBRC__RCBR, XXXX, XXXX, XXXX, ____,
- ____, XXXX, XXXX, XXXX, XXXX, EISU__EISU, KANA__KANA, MNXT__VOLD__VOLU__MPLY, ____,
- ADJ___ADJ, XXXX, ____, ____, XXXX, ____, ____, XXXX, ____, ____, XXXX, ADJ___ADJ
- ),
-
- /* Adjust (Lower + Raise)
- * ,-----------------------------------------. ,-----------------------------------------.
- * | |Keypad|Dvorak|Colemk|Euclyn|Qwerty| |Qwerty|Euclyn|Colemk|Dvorak|Keypad| |
- * |------+------+------+------+------+------| |------+------+------+------+------+------|
- * | | Reset|RGBRST|RGB ON|Aud on| Win | | Win |Aud on|RGB ON|RGBRST| | |
- * |------+------+------+------+------+------| |------+------+------+------+------+------|
- * | HUE+ | SAT+ | VAL+ |RGB md|Audoff| Mac | | Mac |Audoff|RGB md| VAL+ | SAT+ | HUE+ |
- * |------+------+------+------+------+------+------+------+------+------+------+------+------+------|
- * | HUE- | SAT- | VAL- | | | | | | | | | VAL- | SAT- | HUE- |
- * |------+------+------+------+------+------+------+------+------+------+------+------+------+------|
- * | | | | | | | | | | | | | | |
- * `-------------------------------------------------------------------------------------------------'
- */
- [_ADJUST] = LAYOUT(
- XXXXXXX, KEYPAD, DVORAK, COLEMAK, EUCALYN, QWERTY, QWERTY, EUCALYN, COLEMAK, DVORAK, KEYPAD, XXXXXXX,
- XXXXXXX, QK_BOOT, RGBRST, RGB_TOG, AU_ON, AG_SWAP, AG_SWAP, AU_ON, RGB_TOG, RGBRST, XXXXXXX, XXXXXXX,
- RGB_HUI, RGB_SAI, RGB_VAI, RGB_MOD, AU_OFF, AG_NORM, AG_NORM, AU_OFF, RGB_MOD, RGB_VAI, RGB_SAI, RGB_HUI,
- RGB_HUD, RGB_SAD, RGB_VAD, XXXXXXX, XXXXXXX, XXXXXXX,____,____,XXXXXXX, XXXXXXX, XXXXXXX, RGB_VAD, RGB_SAD, RGB_HUD,
- _______, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,____,____,XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, _______
- ),
-
- /* AUX modifier key layer */
-#define BSPC__RAEN KC_BSPC, LT(_RAISE,KC_ENT)
- /* ,-----------------------------------------. ,-----------------------------------------.
- * | | | | | | | | | | | | | |
- * |------+------+------+------+------+------| |------+------+------+------+------+------|
- * | | | | | | | | | | | | | |
- * |------+------+------+------+------+------| |------+------+------+------+------+------|
- * | | | | | | | | | | | | | |
- * |------+------+------+------+------+------+------+------+------+------+------+------+------+------|
- * | | | | | | | | | | | | | | |
- * |------+------+------+------+------+------+------+------+------+------+------+------+------+------|
- * | | | | | | BS | Enter| | | | | | | |
- * `-------------------------------------------------------------------------------------------------'
- */
- [_AUX] = LAYOUT_wrapper(
- ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____,
- ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____,
- ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____,
- ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____,
- ____, ____, ____, ____, ____, BSPC__RAEN, ____, ____, ____, ____, ____, ____, ____
- )
-};
-
-int current_default_layer;
-
-layer_state_t default_layer_state_set_user(layer_state_t state) {
- current_default_layer = get_highest_layer(state);
- return state;
-}
-
-void update_base_layer(int base)
-{
- if( current_default_layer != base ) {
- eeconfig_update_default_layer(1UL<<base);
- default_layer_set(1UL<<base);
- layer_off(_AUX);
- layer_off(_KAUX);
- } else {
- if( base < _KEYPAD )
- layer_invert(_AUX);
- else
- layer_invert(_KAUX);
- }
-}
-
-bool process_record_user(uint16_t keycode, keyrecord_t *record) {
- switch (keycode) {
- case QWERTY:
- if (record->event.pressed) {
- update_base_layer(_QWERTY);
- }
- return false;
- break;
- case COLEMAK:
-#ifdef ENABLE_COLEMAK
- if (record->event.pressed) {
- update_base_layer(_COLEMAK);
- }
-#endif
- return false;
- break;
- case DVORAK:
-#ifdef ENABLE_DVORAK
- if (record->event.pressed) {
- update_base_layer(_DVORAK);
- }
-#endif
- return false;
- break;
- case EUCALYN:
-#ifdef ENABLE_EUCALYN
- if (record->event.pressed) {
- update_base_layer(_EUCALYN);
- }
-#endif
- return false;
- break;
- case KEYPAD:
- if (record->event.pressed) {
- update_base_layer(_KEYPAD);
- }
- return false;
- break;
- case ZERO2:
- if (record->event.pressed) {
- SEND_STRING("00");
- }
- return false;
- break;
- case xEISU:
- if (record->event.pressed) {
- if(keymap_config.swap_lalt_lgui==false){
- register_code(KC_LNG2);
- }else{
- SEND_STRING(SS_LALT("`"));
- }
- } else {
- unregister_code(KC_LNG2);
- }
- return false;
- break;
- case xKANA:
- if (record->event.pressed) {
- if(keymap_config.swap_lalt_lgui==false){
- register_code(KC_LNG1);
- }else{
- SEND_STRING(SS_LALT("`"));
- }
- } else {
- unregister_code(KC_LNG1);
- }
- return false;
- break;
- case RGBRST:
- #ifdef RGBLIGHT_ENABLE
- if (record->event.pressed) {
- eeconfig_update_rgblight_default();
- rgblight_enable();
- }
- #endif
- break;
- }
- return true;
-}
diff --git a/keyboards/helix/rev2/keymaps/five_rows/rules.mk b/keyboards/helix/rev2/keymaps/five_rows/rules.mk
deleted file mode 100644
index 3097316fba..0000000000
--- a/keyboards/helix/rev2/keymaps/five_rows/rules.mk
+++ /dev/null
@@ -1,24 +0,0 @@
-USER_NAME := mtei
-SPLIT_KEYBOARD = yes
-
- CONSOLE_ENABLE = no # Console for debug
- COMMAND_ENABLE = no # Commands for debug and configuration
- # CONSOLE_ENABLE and COMMAND_ENABLE
- # yes, no +1500
- # yes, yes +3200
- # no, yes +400
-LTO_ENABLE = no # if firmware size over limit, try this option
-LED_ANIMATIONS = yes
-
-# Helix Spacific Build Options
-# you can uncomment and edit follows 7 Variables
-# jp: 以下の7つの変数を必要に応じて編集し、コメントアウトをはずします。
-# OLED_ENABLE = no # OLED_ENABLE
-# LOCAL_GLCDFONT = no # use each keymaps "helixfont.h" insted of "common/glcdfont.c"
-# LED_BACK_ENABLE = no # LED backlight (Enable WS2812 RGB underlight.)
-# LED_UNDERGLOW_ENABLE = no # LED underglow (Enable WS2812 RGB underlight.)
-# LED_ANIMATIONS = yes # LED animations
-# IOS_DEVICE_ENABLE = no # connect to IOS device (iPad,iPhone)
-OLED_SELECT = core
-
-SRC += oled_display.c
diff --git a/keyboards/helix/rev2/keymaps/froggy/keymap.c b/keyboards/helix/rev2/keymaps/froggy/keymap.c
index dc047d3118..1680147157 100644
--- a/keyboards/helix/rev2/keymaps/froggy/keymap.c
+++ b/keyboards/helix/rev2/keymaps/froggy/keymap.c
@@ -181,7 +181,6 @@ float tone_dvorak[][2] = SONG(DVORAK_SOUND);
float tone_colemak[][2] = SONG(COLEMAK_SOUND);
float tone_plover[][2] = SONG(PLOVER_SOUND);
float tone_plover_gb[][2] = SONG(PLOVER_GOODBYE_SOUND);
-float music_scale[][2] = SONG(MUSIC_SCALE_SOUND);
#endif
// define variables for reactive RGB
@@ -440,41 +439,12 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
//keyboard start-up code. Runs once when the firmware starts up.
void matrix_init_user(void) {
- #ifdef AUDIO_ENABLE
- startup_user();
- #endif
#ifdef RGBLIGHT_ENABLE
RGB_current_mode = rgblight_get_mode();
#endif
}
-#ifdef AUDIO_ENABLE
-
-void startup_user(void)
-{
- _delay_ms(20); // gets rid of tick
-}
-
-void shutdown_user(void)
-{
- _delay_ms(150);
- stop_all_notes();
-}
-
-void music_on_user(void)
-{
- music_scale_user();
-}
-
-void music_scale_user(void)
-{
- PLAY_SONG(music_scale);
-}
-
-#endif
-
-
//assign the right code to your layers for OLED display
#define L_BASE 0
#define L_OPT 2
diff --git a/keyboards/helix/rev2/keymaps/xulkal/config.h b/keyboards/helix/rev2/keymaps/xulkal/config.h
deleted file mode 100644
index e2b325450a..0000000000
--- a/keyboards/helix/rev2/keymaps/xulkal/config.h
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
-This is the c configuration file for the keymap
-
-Copyright 2012 Jun Wako <wakojun@gmail.com>
-Copyright 2015 Jack Humbert
-
-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
-
-// place overrides here
-
-// If you need more program area, try select and reduce rgblight modes to use.
-
-// Selection of RGBLIGHT MODE to use.
-#if defined(LED_ANIMATIONS)
-# define RGBLIGHT_EFFECT_BREATHING
-# define RGBLIGHT_EFFECT_RAINBOW_MOOD
-# define RGBLIGHT_EFFECT_RAINBOW_SWIRL
-# define RGBLIGHT_EFFECT_SNAKE
-# define RGBLIGHT_EFFECT_KNIGHT
-# define RGBLIGHT_EFFECT_CHRISTMAS
-# define RGBLIGHT_EFFECT_STATIC_GRADIENT
-//#define RGBLIGHT_EFFECT_RGB_TEST
-//#define RGBLIGHT_EFFECT_ALTERNATING
-#endif
diff --git a/keyboards/helix/rev2/keymaps/xulkal/keymap.c b/keyboards/helix/rev2/keymaps/xulkal/keymap.c
deleted file mode 100644
index 28ca2e807b..0000000000
--- a/keyboards/helix/rev2/keymaps/xulkal/keymap.c
+++ /dev/null
@@ -1,69 +0,0 @@
-#include QMK_KEYBOARD_H
-#include "xulkal.h"
-
-#ifdef PROTOCOL_LUFA
-#include "lufa.h"
-#include "split_util.h"
-#endif
-
-#define EXPAND_LAYOUT(...) LAYOUT(__VA_ARGS__)
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
- /* Qwerty
- * ,-----------------------------------------. ,-----------------------------------------.
- * | ` | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | BkSp |
- * |------+------+------+------+------+------| |------+------+------+------+------+------|
- * | Tab | Q | W | E | R | T | | Y | U | I | O | P | \ |
- * |------+------+------+------+------+------| |------+------+------+------+------+------|
- * |FN(CAPS)| A | S | D | F | G | | H | J | K | L | ; | Enter|
- * |------+------+------+------+------+------+------+------+------+------+------+------+------+------|
- * | Sft[ | Z | X | C | V | B |RGBTOG|RGBRST| N | M | , | . | / | Sft] |
- * |------+------+------+------+------+------+------+------+------+------+------+------+------+------|
- * | Ctl- | Win | LOWER| RAISE| Alt | Space|RGBRMOD|RGBMOD|Space| Left | Up | Down | Right| Ctl= |
- * `-------------------------------------------------------------------------------------------------'
- */
- [_QWERTY] = EXPAND_LAYOUT(
- _________________QWERTY_L1_________________, _________________QWERTY_R1_________________,
- _________________QWERTY_L2_________________, _________________QWERTY_R2_________________,
- _________________QWERTY_L3_________________, _________________QWERTY_R3_________________,
- _________________QWERTY_L4_________________, KC_MINS, KC_EQL, _________________QWERTY_R4_________________,
- _________________QWERTY_L5_________________, KC_LBRC, KC_RBRC, _________________QWERTY_R5_________________
- ),
-
-#ifndef GAMELAYER_DISABLE
- [_GAME] = EXPAND_LAYOUT(
- ___________________GAME_L1_________________, ___________________GAME_R1_________________,
- ___________________GAME_L2_________________, ___________________GAME_R2_________________,
- ___________________GAME_L3_________________, ___________________GAME_R3_________________,
- ___________________GAME_L4_________________, KC_MINS, KC_EQL, ___________________GAME_R4_________________,
- ___________________GAME_L5_________________, KC_LBRC, KC_RBRC, ___________________GAME_R5_________________
- ),
-#endif
-
- [_LOWER] = EXPAND_LAYOUT(
- __________________LOWER_L1_________________, __________________LOWER_R1_________________,
- __________________LOWER_L2_________________, __________________LOWER_R2_________________,
- __________________LOWER_L3_________________, __________________LOWER_R3_________________,
- __________________LOWER_L4_________________, _______, _______, __________________LOWER_R4_________________,
- __________________LOWER_L5_________________, _______, _______, __________________LOWER_R5_________________
- ),
-
- [_RAISE] = EXPAND_LAYOUT(
- __________________RAISE_L1_________________, __________________RAISE_R1_________________,
- __________________RAISE_L2_________________, __________________RAISE_R2_________________,
- __________________RAISE_L3_________________, __________________RAISE_R3_________________,
- __________________RAISE_L4_________________, _______, _______, __________________RAISE_R4_________________,
- __________________RAISE_L5_________________, _______, _______, __________________RAISE_R5_________________
- ),
-
-#ifdef TRILAYER_ENABLED
- [_ADJUST] = EXPAND_LAYOUT(
- _________________ADJUST_L1_________________, _________________ADJUST_R1_________________,
- _________________ADJUST_L2_________________, _________________ADJUST_R2_________________,
- _________________ADJUST_L3_________________, _________________ADJUST_R3_________________,
- _________________ADJUST_L4_________________, _______, _______, _________________ADJUST_R4_________________,
- _________________ADJUST_L5_________________, _______, _______, _________________ADJUST_R5_________________
- ),
-#endif
-};
diff --git a/keyboards/helix/rev2/keymaps/xulkal/rules.mk b/keyboards/helix/rev2/keymaps/xulkal/rules.mk
deleted file mode 100644
index 09e14f46ee..0000000000
--- a/keyboards/helix/rev2/keymaps/xulkal/rules.mk
+++ /dev/null
@@ -1,14 +0,0 @@
-RGBLIGHT_ENABLE = yes
-# Helix specific define for correct RGBLED_NUM
-OPT_DEFS += -DRGBLED_BACK
-
-OLED_ENABLE = yes
-# Helix specific font file
-OPT_DEFS += -DOLED_FONT_H=\"common/glcdfont.c\"
-# Xulkal specific oled define
-OPT_DEFS += -DOLED_90ROTATION
-
-SPLIT_KEYBOARD = yes
-
-# Explicitly disable helix standard post-processing
-KEYBOARD_LOCAL_FEATURES_MK :=
diff --git a/keyboards/helix/rev2/keymaps/yshrsmz/keymap.c b/keyboards/helix/rev2/keymaps/yshrsmz/keymap.c
index 20fa181d77..6c060aadec 100644
--- a/keyboards/helix/rev2/keymaps/yshrsmz/keymap.c
+++ b/keyboards/helix/rev2/keymaps/yshrsmz/keymap.c
@@ -171,7 +171,6 @@ float tone_dvorak[][2] = SONG(DVORAK_SOUND);
float tone_colemak[][2] = SONG(COLEMAK_SOUND);
float tone_plover[][2] = SONG(PLOVER_SOUND);
float tone_plover_gb[][2] = SONG(PLOVER_GOODBYE_SOUND);
-float music_scale[][2] = SONG(MUSIC_SCALE_SOUND);
#endif
// define variables for reactive RGB
@@ -322,40 +321,11 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
}
void matrix_init_user(void) {
- #ifdef AUDIO_ENABLE
- startup_user();
- #endif
#ifdef RGBLIGHT_ENABLE
RGB_current_mode = rgblight_get_mode();
#endif
}
-
-#ifdef AUDIO_ENABLE
-
-void startup_user(void)
-{
- _delay_ms(20); // gets rid of tick
-}
-
-void shutdown_user(void)
-{
- _delay_ms(150);
- stop_all_notes();
-}
-
-void music_on_user(void)
-{
- music_scale_user();
-}
-
-void music_scale_user(void)
-{
- PLAY_SONG(music_scale);
-}
-
-#endif
-
#ifdef OLED_ENABLE
oled_rotation_t oled_init_user(oled_rotation_t rotation) {
if (is_keyboard_master()) {
diff --git a/keyboards/helix/rev3_4rows/config.h b/keyboards/helix/rev3_4rows/config.h
index 1e60ed1f0f..000f99834a 100644
--- a/keyboards/helix/rev3_4rows/config.h
+++ b/keyboards/helix/rev3_4rows/config.h
@@ -41,9 +41,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define SPLIT_HAND_MATRIX_GRID D7,B2
#define SPLIT_HAND_MATRIX_GRID_LOW_IS_RIGHT
-/* Dip switch on matrix grid */
-#define DIP_SWITCH_MATRIX_GRID { {0,6}, {1,6}, {5,6}, {6,6} }
-
#ifdef RGB_MATRIX_ENABLE
#define RGB_MATRIX_LED_COUNT 50
# define RGB_MATRIX_KEYPRESSES // reacts to keypresses
diff --git a/keyboards/helix/rev3_4rows/info.json b/keyboards/helix/rev3_4rows/info.json
index ffe1c987e2..79d4847c7b 100644
--- a/keyboards/helix/rev3_4rows/info.json
+++ b/keyboards/helix/rev3_4rows/info.json
@@ -12,7 +12,10 @@
"driver": "ws2812",
"sat_steps": 8,
"val_steps": 8,
- "speed_steps": 10,
+ "speed_steps": 10
+ },
+ "dip_switch": {
+ "matrix_grid": [ [0,6], [1,6], [5,6], [6,6] ]
},
"encoder": {
"rotary": [
diff --git a/keyboards/helix/rev3_5rows/config.h b/keyboards/helix/rev3_5rows/config.h
index f48115663c..44bbc5f194 100644
--- a/keyboards/helix/rev3_5rows/config.h
+++ b/keyboards/helix/rev3_5rows/config.h
@@ -41,9 +41,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define SPLIT_HAND_MATRIX_GRID D7,B2
#define SPLIT_HAND_MATRIX_GRID_LOW_IS_RIGHT
-/* Dip switch on matrix grid */
-#define DIP_SWITCH_MATRIX_GRID { {0,6}, {1,6}, {5,6}, {6,6} }
-
#ifdef RGB_MATRIX_ENABLE
#define RGB_MATRIX_LED_COUNT 64
# define RGB_MATRIX_KEYPRESSES // reacts to keypresses
diff --git a/keyboards/helix/rev3_5rows/info.json b/keyboards/helix/rev3_5rows/info.json
index f7546b1322..43cb20dd5e 100644
--- a/keyboards/helix/rev3_5rows/info.json
+++ b/keyboards/helix/rev3_5rows/info.json
@@ -14,6 +14,9 @@
"val_steps": 8,
"speed_steps": 10
},
+ "dip_switch": {
+ "matrix_grid": [ [0,6], [1,6], [5,6], [6,6] ]
+ },
"encoder": {
"rotary": [
{"pin_a": "B6", "pin_b": "B5"}
diff --git a/keyboards/helix/rev3_5rows/keymaps/five_rows/config.h b/keyboards/helix/rev3_5rows/keymaps/five_rows/config.h
deleted file mode 100644
index a6fd32c613..0000000000
--- a/keyboards/helix/rev3_5rows/keymaps/five_rows/config.h
+++ /dev/null
@@ -1,18 +0,0 @@
-// Copyright (c) 2022 Takeshi Ishii (mtei@github)
-// SPDX-License-Identifier: GPL-2.0-or-later
-
-#pragma once
-
-#undef TAPPING_TERM
-#define TAPPING_TERM 300
-#define PERMISSIVE_HOLD
-
-#undef OLED_UPDATE_INTERVAL
-#ifdef DEBUG_MATRIX_SCAN_RATE
-# define OLED_UPDATE_INTERVAL 500
-#else
-# define OLED_UPDATE_INTERVAL 50
-#endif
-
-#define PSEUDO_SPRINTF_DEFINED
-
diff --git a/keyboards/helix/rev3_5rows/keymaps/five_rows/keymap.c b/keyboards/helix/rev3_5rows/keymaps/five_rows/keymap.c
deleted file mode 100644
index dc2759d5b6..0000000000
--- a/keyboards/helix/rev3_5rows/keymaps/five_rows/keymap.c
+++ /dev/null
@@ -1,474 +0,0 @@
-/* Copyright 2020 mtei
- *
- * 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 "key_blocks.h"
-#include "layer_number_util.h"
-
-#ifdef ENABLE_COLEMAK
-# define COLEMAK_Colemak (COLEMAK, " Colemak"),
-#else
-# define COLEMAK_Colemak
-#endif
-#ifdef ENABLE_DVORAK
-# define DVORAK_Dvorak (DVORAK, " Dvorak"),
-#else
-# define DVORAK_Dvorak
-#endif
-#ifdef ENABLE_EUCALYN
-# define EUCALYN_Eucalyn (EUCALYN, " Eucalyn"),
-#else
-# define EUCALYN_Eucalyn
-#endif
-
-#define LAYER_NAME_LIST \
- (QWERTY, " Qwerty"), \
- COLEMAK_Colemak \
- DVORAK_Dvorak \
- EUCALYN_Eucalyn \
- (KEYPAD, " Keypad"), \
- (AUX, ":AUX"), \
- (KAUX, ":00"), \
- (LOWER, ":Func"), \
- (RAISE, ":Extra"), \
- (PADFUNC, ":PadFunc"), \
- (ADJUST, ":Adjust")
-
-enum layer_number {
- // _QWERTY, _COLEMAK, ...
- MAP(BUILD_LAYER_ENUM_NUMBER, LAYER_NAME_LIST)
-};
-
-#ifdef OLED_ENABLE
-// static const char QWERTY_name[] PROGMEM = " Qwerty"; ...
-MAP(BUILD_LAYER_NAME_STR, LAYER_NAME_LIST)
-
-const char *layer_names[] = {
- // [_QWERTY] = QWERTY_name, ...
- MAP(BUILD_LAYER_NAME_TABLE, LAYER_NAME_LIST)
-};
-#endif
-
-const size_t num_of_layer_names = GET_ITEM_COUNT(LAYER_NAME_LIST);
-
-extern keymap_config_t keymap_config;
-
-extern uint8_t is_master;
-
-enum custom_keycodes {
- QWERTY = SAFE_RANGE,
- COLEMAK,
- DVORAK,
- EUCALYN,
- KEYPAD,
- xEISU,
- xKANA,
- ZERO2,
- RGBRST
-};
-
-// clang-format off
-
-#define LAYOUT_wrapper(...) LAYOUT(__VA_ARGS__)
-
-//Macros
-#define KC_LOWER MO(_LOWER)
-#define XXXX XXXXXXX
-#define ____ _______
-#define KC_ADJ MO(_ADJUST)
-
-#define LOWER__LOWER__CAPS__LALT__LGUI__SPC__RABS \
- KC_LOWER, KC_LOWER, KC_CAPS, KC_LALT, KC_LGUI, KC_SPC, LT(_RAISE,KC_BSPC)
-#define RAEN___SPC___RGUI__RALT__APP___LOWER__LOWER \
- LT(_RAISE,KC_ENT), KC_SPC, KC_RGUI, KC_RALT, KC_APP, KC_LOWER, KC_LOWER
-#define GRV__QUOT KC_GRV, KC_QUOT
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
- /* Qwerty */
- /* ,-----------------------------------. ,-----------------------------------.
- * | ESC | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | BS |
- * |-----+-----+-----+-----+-----+-----| |-----+-----+-----+-----+-----+-----|
- * | Tab | Q | W | E | R | T | | Y | U | I | O | P | \ |
- * |-----+-----+-----+-----+-----+-----| |-----+-----+-----+-----+-----+-----|
- * | Ctrl| A | S | D | F | G | | H | J | K | L | ; |Ctrl |
- * |-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----|
- * |Shift| Z | X | C | V | B | ` | ' | N | M | , | . | / |Shift|
- * |-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----|
- * |Lower|Lower|Caps | Alt | GUI |Space| BS |Enter|Space| GUI | Alt |Menu |Lower|Lower|
- * `-----------------------------------------------------------------------------------'
- */
- [_QWERTY] = LAYOUT_wrapper(
- KC_ESC, _1_____2_____3_____4_____5, _6_____7_____8_____9_____0, KC_BSPC,
- KC_TAB, Q_____W_____E_____R_____T, Y_____U_____I_____O_____P, KC_BSLS,
- KC_LCTL, A_____S_____D_____F_____G, H_____J_____K_____L____SCLN, KC_RCTL,
- KC_LSFT, Z_____X_____C_____V_____B, GRV__QUOT, N_____M____COMM__DOT___SLSH, KC_RSFT,
- LOWER__LOWER__CAPS__LALT__LGUI__SPC__RABS, RAEN___SPC___RGUI__RALT__APP___LOWER__LOWER
- ),
-
- /* Colemak */
- /* ,-----------------------------------. ,-----------------------------------.
- * | ESC | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | BS |
- * |-----+-----+-----+-----+-----+-----| |-----+-----+-----+-----+-----+-----|
- * | Tab | Q | W | F | P | G | | J | L | U | Y | ; | \ |
- * |-----+-----+-----+-----+-----+-----| |-----+-----+-----+-----+-----+-----|
- * | Ctrl| A | R | S | T | D | | H | N | E | I | O |Ctrl |
- * |-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----|
- * |Shift| Z | X | C | V | B | ` | ' | K | M | , | . | / |Shift|
- * |-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----|
- * |Lower|Lower|Caps | Alt | GUI |Space| BS |Enter|Space| GUI | Alt |Menu |Lower|Lower|
- * `-----------------------------------------------------------------------------------'
- */
-#ifdef ENABLE_COLEMAK
- [_COLEMAK] = LAYOUT_wrapper(
- KC_ESC, _1_____2_____3_____4_____5, _6_____7_____8_____9_____0, KC_BSPC,
- KC_TAB, Q_____W_____F_____P_____G, J_____L_____U_____Y____SCLN, KC_BSLS,
- KC_LCTL, A_____R_____S_____T_____D, H_____N_____E_____I_____O, KC_RCTL,
- KC_LSFT, Z_____X_____C_____V_____B, GRV__QUOT, K_____M____COMM__DOT___SLSH, KC_RSFT,
- LOWER__LOWER__CAPS__LALT__LGUI__SPC__RABS, RAEN___SPC___RGUI__RALT__APP___LOWER__LOWER
- ),
-#endif
-
- /* Dvorak */
-#define GRV__SLSH KC_GRV, KC_SLSH
- /* ,-----------------------------------. ,-----------------------------------.
- * | ESC | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | BS |
- * |-----+-----+-----+-----+-----+-----| |-----+-----+-----+-----+-----+-----|
- * | Tab | ' | , | . | P | Y | | F | G | C | R | L | \ |
- * |-----+-----+-----+-----+-----+-----| |-----+-----+-----+-----+-----+-----|
- * | Ctrl| A | O | E | U | I | | D | H | T | N | S |Ctrl |
- * |-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----|
- * |Shift| ; | Q | J | K | X | ` | / | B | M | W | V | Z |Shift|
- * |-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----|
- * |Lower|Lower|Caps | Alt | GUI |Space| BS |Enter|Space| GUI | Alt |Menu |Lower|Lower|
- * `-----------------------------------------------------------------------------------'
- */
-#ifdef ENABLE_DVORAK
- [_DVORAK] = LAYOUT_wrapper(
- KC_ESC, _1_____2_____3_____4_____5, _6_____7_____8_____9_____0, KC_BSPC,
- KC_TAB, QUOT_COMM___DOT____P_____Y, F_____G_____C_____R_____L, KC_BSLS,
- KC_LCTL, A_____O_____E_____U_____I, D_____H_____T_____N_____S, KC_RCTL,
- KC_LSFT, SCLN___Q_____J_____K_____X, GRV__SLSH, B_____M_____W_____V_____Z, KC_RSFT,
- LOWER__LOWER__CAPS__LALT__LGUI__SPC__RABS, RAEN___SPC___RGUI__RALT__APP___LOWER__LOWER
- ),
-#endif
-
- /* Eucalyn (http://eucalyn.hatenadiary.jp/entry/about-eucalyn-layout) */
- /* ,-----------------------------------. ,-----------------------------------.
- * | ESC | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | BS |
- * |-----+-----+-----+-----+-----+-----| |-----+-----+-----+-----+-----+-----|
- * | Tab | Q | W | , | . | ; | | M | R | D | Y | P | \ |
- * |-----+-----+-----+-----+-----+-----| |-----+-----+-----+-----+-----+-----|
- * | Ctrl| A | O | E | I | U | | G | T | K | S | N |Ctrl |
- * |-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----|
- * |Shift| Z | X | C | V | F | ` | ' | B | H | J | L | / |Shift|
- * |-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----|
- * |Lower|Lower|Caps | Alt | GUI |Space| BS |Enter|Space| GUI | Alt |Menu |Lower|Lower|
- * `-----------------------------------------------------------------------------------'
- */
-#ifdef ENABLE_EUCALYN
- [_EUCALYN] = LAYOUT_wrapper(
- KC_ESC, _1_____2_____3_____4_____5, _6_____7_____8_____9_____0, KC_BSPC,
- KC_TAB, Q_____W___COMM___DOT__SCLN, M_____R_____D_____Y_____P, KC_BSLS,
- KC_LCTL, A_____O_____E_____I_____U, G_____T_____K_____S_____N, KC_RCTL,
- KC_LSFT, Z_____X_____C_____V_____F, GRV__QUOT, B_____H_____J_____L____SLSH, KC_RSFT,
- LOWER__LOWER__CAPS__LALT__LGUI__SPC__RABS, RAEN___SPC___RGUI__RALT__APP___LOWER__LOWER
- ),
-#endif
-
- /* Keypad */
-#define KP_TAB__PSLS_PAST KC_TAB, KC_PSLS, KC_PAST
-#define KP__7_____8_____9 KC_KP_7, KC_KP_8, KC_KP_9
-#define KP__4_____5_____6 KC_KP_4, KC_KP_5, KC_KP_6
-#define KP__1_____2_____3 KC_KP_1, KC_KP_2, KC_KP_3
-#define KP__0___COMM_PDOT KC_KP_0, KC_COMM, KC_PDOT
-#define F1___F6 KC_F1, KC_F6
-#define F2___F7 KC_F2, KC_F7
-#define F3___F8 KC_F3, KC_F8
-#define F4___F9 KC_F4, KC_F9
-#define F5__F10 KC_F5, KC_F10
-#define FF12 LT(_PADFUNC,KC_F12)
- /* ,-----------------------------------. ,-----------------------------------.
- * | Tab | / | * | Del | F1 | F6 | | F1 | F6 | Del | Tab | / | * |
- * |-----+-----+-----+-----+-----+-----| |-----+-----+-----+-----+-----+-----|
- * | 7 | 8 | 9 | BS | F2 | F7 | | F2 | F7 | BS | 7 | 8 | 9 |
- * |-----+-----+-----+-----+-----+-----| |-----+-----+-----+-----+-----+-----|
- * | 4 | 5 | 6 | - | F3 | F8 | | F3 | F8 | - | 4 | 5 | 6 |
- * |-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----|
- * | 1 | 2 | 3 | + | F4 | F9 | F11 | F11 | F4 | F9 | + | 1 | 2 | 3 |
- * |-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----|
- * | 0 | , | . |Enter| F5 | F10| F12 | F12 | F5 | F10|Enter| 0 | , | . |
- * `-----------------------------------------------------------------------------------'
- */
- [_KEYPAD] = LAYOUT_wrapper(
- KP_TAB__PSLS_PAST, KC_DEL, F1___F6, F1___F6, KC_DEL, KP_TAB__PSLS_PAST,
- KP__7_____8_____9, KC_BSPC, F2___F7, F2___F7, KC_BSPC, KP__7_____8_____9,
- KP__4_____5_____6, KC_PMNS, F3___F8, F3___F8, KC_PMNS, KP__4_____5_____6,
- KP__1_____2_____3, KC_PPLS, F4___F9, KC_F11,KC_F11, F4___F9, KC_PPLS, KP__1_____2_____3,
- KP__0___COMM_PDOT, KC_PENT, F5__F10, FF12, FF12, F5__F10, KC_PENT, KP__0___COMM_PDOT
- ),
-
- /* AUX modifier key layer
- * ,-----------------------------------. ,-----------------------------------.
- * | | | | | | | | | | | | | |
- * |-----+-----+-----+-----+-----+-----| |-----+-----+-----+-----+-----+-----|
- * | | | | | | | | | | | | | |
- * |-----+-----+-----+-----+-----+-----| |-----+-----+-----+-----+-----+-----|
- * | | | | | | | | | | | | | |
- * |-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----|
- * | | | | | | | | | | | | | | |
- * |-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----|
- * | | 00 | | | | | | | | | | | 00 | |
- * `-----------------------------------------------------------------------------------'
- */
- [_KAUX] = LAYOUT(
- ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____,
- ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____,
- ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____,
- ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____,
- ____,ZERO2, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____,ZERO2, ____
- ),
-
- /* Keypad function layer */
-#define PAUS__SLCK__PSCR KC_PAUS, KC_SCRL, KC_PSCR
-#define PSCR__SLCK__PAUS KC_PSCR, KC_SCRL, KC_PAUS
-#define HOME___UP___PGUP KC_HOME, KC_UP, KC_PGUP
-#define PGUP___UP___HOME KC_PGUP, KC_UP, KC_HOME
-#define DEL____INS__LEFT__DOWN__RGHT KC_DEL, KC_INS, KC_LEFT, KC_DOWN, KC_RGHT
-#define LEFT__DOWN__RGHT___INS___DEL KC_LEFT, KC_DOWN, KC_RGHT, KC_INS, KC_DEL
-#define PGDN___ADJ___ADJ__PGDN KC_PGDN, KC_ADJ, KC_ADJ, KC_PGDN
- /* ,-----------------------------------------. ,-----------------------------------------.
- * | | | | Pause| ScrLk| PtrSc| | PtrSc| ScrLk| Pause| | | |
- * |------+------+------+------+------+------| |------+------+------+------+------+------|
- * | | | | Home | Up | PgUp | | PgUp | Up | Home | | | |
- * |------+------+------+------+------+------| |------+------+------+------+------+------|
- * | |Delete|Insert| Left | Down | Right| | Left | Down | Right|Insert|Delete| |
- * |------+------+------+------+------+------+------+------+------+------+------+------+------+------|
- * | | | | End | | PgDn |Adjust|Adjust| PgDn | | End | | | |
- * |------+------+------+------+------+------+------+------+------+------+------+------+------+------|
- * | | | | | | | | | | | | | | |
- * `-------------------------------------------------------------------------------------------------'
- */
- [_PADFUNC] = LAYOUT_wrapper(
- XXXX, XXXX, XXXX, PAUS__SLCK__PSCR, PSCR__SLCK__PAUS, XXXX, XXXX, XXXX,
- XXXX, XXXX, XXXX, HOME___UP___PGUP, PGUP___UP___HOME, XXXX, XXXX, XXXX,
- XXXX, DEL____INS__LEFT__DOWN__RGHT, LEFT__DOWN__RGHT___INS___DEL, XXXX,
- XXXX, XXXX, XXXX,KC_END,XXXX, PGDN___ADJ___ADJ__PGDN, XXXX,KC_END,XXXX, XXXX, XXXX,
- XXXX, XXXX, XXXX, XXXX, XXXX, XXXX, ____, ____, XXXX, XXXX, XXXX, XXXX, XXXX, XXXX
- ),
-
- /* Lower */
-#define XXXX__PAUS__SLCK___INS XXXX, KC_PAUS, KC_SCRL, KC_INS
-#define XXXX___INS__SLCK__PAUS__XXXX XXXX, KC_INS, KC_SCRL, KC_PAUS, XXXX
-#define ADJ___ADJ KC_ADJ, KC_ADJ
-#define HOME__XXXX___UP____DEL__PGUP KC_HOME, XXXX, KC_UP, KC_DEL, KC_PGUP
-#define PGUP___DEL___UP___XXXX__HOME KC_PGUP, KC_DEL, KC_UP, XXXX, KC_HOME
-#define END__LEFT__DOWN__RGHT__PGDN KC_END, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN
-#define PGDN__LEFT__DOWN__RGHT___END KC_PGDN, KC_LEFT, KC_DOWN, KC_RGHT, KC_END
- /* ,-----------------------------------------. ,-----------------------------------------.
- * | | F1 | F2 | F3 | F4 | F5 | | F6 | F7 | F8 | F9 | F10 | F11 |
- * |------+------+------+------+------+------| |------+------+------+------+------+------|
- * | | |Pause | ScrLk| Ins | | | | Ins | ScrLk|Pause | | F12 |
- * |------+------+------+------+------+------| |------+------+------+------+------+------|
- * | | Home | | Up |Delete| PgUp | | PgUp |Delete| Up | | Home | |
- * |------+------+------+------+------+------+------+------+------+------+------+------+------+------|
- * | | End | Left | Down | Right| PgDn |Adjust|Adjust| PgDn | Left | Down | Right| End | |
- * |------+------+------+------+------+------+------+------+------+------+------+------+------+------|
- * | | | PrtSc| | | | | | | | | PrtSc| | |
- * `-------------------------------------------------------------------------------------------------'
- */
- [_LOWER] = LAYOUT_wrapper(
- XXXX, F1____F2____F3____F4____F5, F6____F7____F8____F9____F10, KC_F11,
- XXXX, XXXX__PAUS__SLCK___INS, XXXX, XXXX___INS__SLCK__PAUS__XXXX, KC_F12,
- ____, HOME__XXXX___UP____DEL__PGUP, PGUP___DEL___UP___XXXX__HOME, ____,
- ____, END__LEFT__DOWN__RGHT__PGDN, XXXX, XXXX, PGDN__LEFT__DOWN__RGHT___END, ____,
- ____, ____,KC_PSCR,____, ____, ____, ADJ___ADJ, ____, ____, ____,KC_PSCR,____, ____
- ),
-
- /* Raise */
-#define UNDS__MINS KC_UNDS, KC_MINS
-#define EQL___PLUS KC_EQL, KC_PLUS
-#define LCBR__LBRC KC_LCBR, KC_LBRC
-#define RBRC__RCBR KC_RBRC, KC_RCBR
-#define MNXT__VOLD__VOLU__MPLY KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY
-#define EISU__EISU xEISU, xEISU
-#define KANA__KANA xKANA, xKANA
- /* ,-----------------------------------------. ,-----------------------------------------.
- * | | | | | | | | | | | | | |
- * |------+------+------+------+------+------| |------+------+------+------+------+------|
- * | | | | | _ | - | | = | + | | | | |
- * |------+------+------+------+------+------| |------+------+------+------+------+------|
- * | | | | | { | [ | | ] | } | | | | |
- * |------+------+------+------+------+------+------+------+------+------+------+------+------+------|
- * | | | | | | EISU | EISU | KANA | KANA | Next | Vol- | Vol+ | Play | |
- * |------+------+------+------+------+------+------+------+------+------+------+------+------+------|
- * | | | | | | | | | | | | | | |
- * `-------------------------------------------------------------------------------------------------'
- */
- [_RAISE] = LAYOUT_wrapper(
- XXXX, XXXX, XXXX, XXXX, XXXX, XXXX, XXXX, XXXX, XXXX, XXXX, XXXX, XXXX,
- XXXX, XXXX, XXXX, XXXX, UNDS__MINS, EQL___PLUS, XXXX, XXXX, XXXX, XXXX,
- ____, XXXX, XXXX, XXXX, LCBR__LBRC, RBRC__RCBR, XXXX, XXXX, XXXX, ____,
- ____, XXXX, XXXX, XXXX, XXXX, EISU__EISU, KANA__KANA, MNXT__VOLD__VOLU__MPLY, ____,
- ADJ___ADJ, XXXX, ____, ____, XXXX, ____, ____, XXXX, ____, ____, XXXX, ADJ___ADJ
- ),
-
- /* Adjust (Lower + Raise)
- * ,-----------------------------------------. ,-----------------------------------------.
- * | |Keypad|Dvorak|Colemk|Euclyn|Qwerty| |Qwerty|Euclyn|Colemk|Dvorak|Keypad| |
- * |------+------+------+------+------+------| |------+------+------+------+------+------|
- * | | Reset|RGBRST|RGB ON|Aud on| Win | | Win |Aud on|RGB ON|RGBRST| | |
- * |------+------+------+------+------+------| |------+------+------+------+------+------|
- * | HUE+ | SAT+ | VAL+ |RGB md|Audoff| Mac | | Mac |Audoff|RGB md| VAL+ | SAT+ | HUE+ |
- * |------+------+------+------+------+------+------+------+------+------+------+------+------+------|
- * | HUE- | SAT- | VAL- | | | | | | | | | VAL- | SAT- | HUE- |
- * |------+------+------+------+------+------+------+------+------+------+------+------+------+------|
- * | | | | | | | | | | | | | | |
- * `-------------------------------------------------------------------------------------------------'
- */
- [_ADJUST] = LAYOUT(
- XXXXXXX, KEYPAD, DVORAK, COLEMAK, EUCALYN, QWERTY, QWERTY, EUCALYN, COLEMAK, DVORAK, KEYPAD, XXXXXXX,
- XXXXXXX, QK_BOOT, RGBRST, RGB_TOG, AU_ON, AG_SWAP, AG_SWAP, AU_ON, RGB_TOG, RGBRST, XXXXXXX, XXXXXXX,
- RGB_HUI, RGB_SAI, RGB_VAI, RGB_MOD, AU_OFF, AG_NORM, AG_NORM, AU_OFF, RGB_MOD, RGB_VAI, RGB_SAI, RGB_HUI,
- RGB_HUD, RGB_SAD, RGB_VAD, XXXXXXX, XXXXXXX, XXXXXXX,____,____,XXXXXXX, XXXXXXX, XXXXXXX, RGB_VAD, RGB_SAD, RGB_HUD,
- _______, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,____,____,XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, _______
- ),
-
- /* AUX modifier key layer */
-#define BSPC__RAEN KC_BSPC, LT(_RAISE,KC_ENT)
- /* ,-----------------------------------------. ,-----------------------------------------.
- * | | | | | | | | | | | | | |
- * |------+------+------+------+------+------| |------+------+------+------+------+------|
- * | | | | | | | | | | | | | |
- * |------+------+------+------+------+------| |------+------+------+------+------+------|
- * | | | | | | | | | | | | | |
- * |------+------+------+------+------+------+------+------+------+------+------+------+------+------|
- * | | | | | | | | | | | | | | |
- * |------+------+------+------+------+------+------+------+------+------+------+------+------+------|
- * | | | | | | BS | Enter| | | | | | | |
- * `-------------------------------------------------------------------------------------------------'
- */
- [_AUX] = LAYOUT_wrapper(
- ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____,
- ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____,
- ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____,
- ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____,
- ____, ____, ____, ____, ____, BSPC__RAEN, ____, ____, ____, ____, ____, ____, ____
- )
-};
-
-int current_default_layer;
-
-layer_state_t default_layer_state_set_user(layer_state_t state) {
- current_default_layer = get_highest_layer(state);
- return state;
-}
-
-void update_base_layer(int base)
-{
- if( current_default_layer != base ) {
- eeconfig_update_default_layer(1UL<<base);
- default_layer_set(1UL<<base);
- layer_off(_AUX);
- layer_off(_KAUX);
- } else {
- if( base < _KEYPAD )
- layer_invert(_AUX);
- else
- layer_invert(_KAUX);
- }
-}
-
-bool process_record_user(uint16_t keycode, keyrecord_t *record) {
- switch (keycode) {
- case QWERTY:
- if (record->event.pressed) {
- update_base_layer(_QWERTY);
- }
- return false;
- break;
- case COLEMAK:
-#ifdef ENABLE_COLEMAK
- if (record->event.pressed) {
- update_base_layer(_COLEMAK);
- }
-#endif
- return false;
- break;
- case DVORAK:
-#ifdef ENABLE_DVORAK
- if (record->event.pressed) {
- update_base_layer(_DVORAK);
- }
-#endif
- return false;
- break;
- case EUCALYN:
-#ifdef ENABLE_EUCALYN
- if (record->event.pressed) {
- update_base_layer(_EUCALYN);
- }
-#endif
- return false;
- break;
- case KEYPAD:
- if (record->event.pressed) {
- update_base_layer(_KEYPAD);
- }
- return false;
- break;
- case ZERO2:
- if (record->event.pressed) {
- SEND_STRING("00");
- }
- return false;
- break;
- case xEISU:
- if (record->event.pressed) {
- if(keymap_config.swap_lalt_lgui==false){
- register_code(KC_LNG2);
- }else{
- SEND_STRING(SS_LALT("`"));
- }
- } else {
- unregister_code(KC_LNG2);
- }
- return false;
- break;
- case xKANA:
- if (record->event.pressed) {
- if(keymap_config.swap_lalt_lgui==false){
- register_code(KC_LNG1);
- }else{
- SEND_STRING(SS_LALT("`"));
- }
- } else {
- unregister_code(KC_LNG1);
- }
- return false;
- break;
- case RGBRST:
- #ifdef RGBLIGHT_ENABLE
- if (record->event.pressed) {
- eeconfig_update_rgblight_default();
- rgblight_enable();
- }
- #endif
- break;
- }
- return true;
-}
diff --git a/keyboards/helix/rev3_5rows/keymaps/five_rows/rules.mk b/keyboards/helix/rev3_5rows/keymaps/five_rows/rules.mk
deleted file mode 100644
index a6ce7de118..0000000000
--- a/keyboards/helix/rev3_5rows/keymaps/five_rows/rules.mk
+++ /dev/null
@@ -1,11 +0,0 @@
-USER_NAME := mtei
-
- CONSOLE_ENABLE = no # Console for debug
- COMMAND_ENABLE = no # Commands for debug and configuration
- # CONSOLE_ENABLE and COMMAND_ENABLE
- # yes, no +1500
- # yes, yes +3200
- # no, yes +400
-ENCODER_ENABLE = no
-LTO_ENABLE = no # if firmware size over limit, try this option
-LED_ANIMATIONS = yes
diff --git a/keyboards/hfdkb/ac001/config.h b/keyboards/hfdkb/ac001/config.h
index 6c0c2a2cf6..7d38c7392c 100644
--- a/keyboards/hfdkb/ac001/config.h
+++ b/keyboards/hfdkb/ac001/config.h
@@ -32,7 +32,6 @@
#define SPI_MOSI_PAL_MODE 5
#define EXTERNAL_FLASH_SPI_SLAVE_SELECT_PIN C12
-#define WEAR_LEVELING_BACKING_SIZE (8 * 1024)
#define RGB_DISABLE_WHEN_USB_SUSPENDED // turn off effects when suspended
diff --git a/keyboards/hfdkb/ac001/info.json b/keyboards/hfdkb/ac001/info.json
index 0a361d63ed..3f896d5988 100644
--- a/keyboards/hfdkb/ac001/info.json
+++ b/keyboards/hfdkb/ac001/info.json
@@ -17,6 +17,13 @@
"rows": ["B15"]
},
"diode_direction": "ROW2COL",
+ "eeprom": {
+ "driver": "wear_leveling",
+ "wear_leveling": {
+ "driver": "spi_flash",
+ "backing_size": 8192
+ }
+ },
"ws2812": {
"pin": "A1"
},
diff --git a/keyboards/hfdkb/ac001/rules.mk b/keyboards/hfdkb/ac001/rules.mk
index 81b7e82c3f..1358ab075a 100644
--- a/keyboards/hfdkb/ac001/rules.mk
+++ b/keyboards/hfdkb/ac001/rules.mk
@@ -10,5 +10,3 @@ NKRO_ENABLE = yes # Enable N-Key Rollover
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
RGB_MATRIX_ENABLE = yes
-EEPROM_DRIVER = wear_leveling
-WEAR_LEVELING_DRIVER = spi_flash
diff --git a/keyboards/hhkb/ansi/keymaps/brett/config.h b/keyboards/hhkb/ansi/keymaps/brett/config.h
deleted file mode 100644
index 0711122d74..0000000000
--- a/keyboards/hhkb/ansi/keymaps/brett/config.h
+++ /dev/null
@@ -1,14 +0,0 @@
-#pragma once
-
-// Define mousekey settings
-#define MOUSEKEY_DELAY 0
-#define MOUSEKEY_INTERVAL 20
-#define MOUSEKEY_MAX_SPEED 2
-#define MOUSEKEY_TIME_TO_MAX 5
-#define MOUSEKEY_WHEEL_DELAY 0
-
-#define LSPO_KEY KC_9
-#define RSPC_KEY KC_0
-#define LSPO_MOD KC_LSFT
-#define RSPC_MOD KC_RSFT
-
diff --git a/keyboards/hhkb/ansi/keymaps/brett/keymap.c b/keyboards/hhkb/ansi/keymaps/brett/keymap.c
deleted file mode 100644
index 04e3517a95..0000000000
--- a/keyboards/hhkb/ansi/keymaps/brett/keymap.c
+++ /dev/null
@@ -1,119 +0,0 @@
-/* -*- eval: (turn-on-orgtbl); -*-
- * Brettm12345 HHKB Layout
- */
-#include QMK_KEYBOARD_H
-#include "brett.h"
-
-enum layers {
- BASE = 0,
- HHKB = 1,
- PROG = 2,
- MOUSE = 3
-};
-
-// Tap for tab hold for MOUSE
-#define TAB_MOUSE LT(MOUSE, KC_TAB)
-
-// Tap for space hold for PROG
-#define SPACE_PROG LT(PROG, KC_SPC)
-
-// Tap for ESC hold for CTRL
-#define CTL_ESC CTL_T(KC_ESC)
-
-// Tab for ; hold for PROG
-#define PROG_SCLN LT(PROG, KC_SCLN)
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- /* BASE Level: Default Layer
- |---------+---+---+---+---+---+---+---+---+---+---+--------+--------+-----------+---|
- | Esc | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | \ | ` |
- |---------+---+---+---+---+---+---+---+---+---+---+--------+--------+-----------+---|
- | Tab | Q | W | E | R | T | Y | U | I | O | P | [ | ] | Backspace | * |
- |---------+---+---+---+---+---+---+---+---+---+---+--------+--------+-----------+---|
- | Control | A | S | D | F | G | H | J | K | L | ; | ' | Return | ****** | * |
- |---------+---+---+---+---+---+---+---+---+---+---+--------+--------+-----------+---|
- | LShift | Z | X | C | V | B | N | M | , | . | / | RShift | HHKB | ****** | * |
- |---------+---+---+---+---+---+---+---+---+---+---+--------+--------+-----------+---|
-
- |------+------+----------------------------+------+------|
- | LAlt | LGUI | ******* Space/Prog ******* | RGUI | RAlt |
- |------+------+----------------------------+------+------|
- */
-
- [BASE] = LAYOUT(
- QK_GESC, 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_BSLS, KC_GRV,
- TAB_MOUSE, 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_BSPC,
- CTL_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, PROG_SCLN, KC_QUOT, KC_ENT,
- SC_LSPO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, SC_RSPC, MO(HHKB),
- KC_LALT, KC_LGUI, SPACE_PROG, KC_RGUI, KC_RALT),
-
- /* HHKB Level: Function Layer
- |---------+------+------+--------+---------+-------+-----------+---------+---------+---------+----------------+--------+------+--------+-----|
- | Flash | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | Ins | Del |
- |---------+------+------+--------+---------+-------+-----------+---------+---------+---------+----------------+--------+------+--------+-----|
- | Caps | Calc | Mail | Media | Browser | My PC | Browser | u | i | o | Print | [ | ] | Backsp | * |
- | | | | Player | Refresh | | Favorites | | | | Screen | | | | |
- |---------+------+------+--------+---------+-------+-----------+---------+---------+---------+----------------+--------+------+--------+-----|
- | Control | Prev | Next | Find | f | g | Browser | Browser | Browser | Browser | ; | ' | Exec | ****** | * |
- | | | | | | | Back | Home | Search | Forward | | | | | |
- |---------+------+------+--------+---------+-------+-----------+---------+---------+---------+----------------+--------+------+--------+-----|
- | LShift | Vol+ | Vol- | Mute | Select | b | n | m | , | Again | Browser Search | RShift | HHKB | ****** | * |
- |---------+------+------+--------+---------+-------+-----------+---------+---------+---------+----------------+--------+------+--------+-----|
-
- |------+------+----------------------+------+------|
- | Menu | LGUI | ******* Play ******* | RGUI | Menu |
- |------+------+----------------------+------+------|
- */
- [HHKB] = LAYOUT(
- FLASH, 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_INS, KC_DEL,
- KC_CAPS, KC_CALC, KC_MAIL, KC_MSEL, KC_WREF, KC_MYCM, KC_WFAV, KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR, KC_TRNS, KC_TRNS, KC_BSPC,
- KC_TRNS, KC_MPRV, KC_MNXT, KC_FIND, KC_TRNS, KC_TRNS, KC_WBAK, KC_WHOM, KC_WSCH, KC_WFWD, KC_TRNS, KC_TRNS, KC_EXEC,
- KC_TRNS, KC_VOLU, KC_VOLD, KC_MUTE, KC_SLCT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_AGIN, KC_WSCH, KC_TRNS, KC_TRNS,
- KC_MENU, KC_TRNS, KC_MPLY, KC_TRNS, KC_MENU),
-
-
- /* Programming Level: Symbols Layer
- |--------------+-------+-------+-------+-------+-------+-------+-------+-------+-------+--------+--------+--------+--------+---|
- | Esc | TTY 1 | TTY 2 | TTY 3 | TTY 4 | TTY 5 | TTY 6 | TTY 7 | TTY 8 | TTY 9 | TTY 10 | TTY 11 | TTY 12 | \ | ` |
- |--------------+-------+-------+-------+-------+-------+-------+-------+-------+-------+--------+--------+--------+--------+---|
- | Tab/Mouse | => | @ | >>= | =<< | ‖ | <> | <|> | <*> | <@> | |> | <$ | $> | Backsp | * |
- |--------------+-------+-------+-------+-------+-------+-------+-------+-------+-------+--------+--------+--------+--------+---|
- | Toggle Mouse | -> | * | <$> | <#> | && | Left | Down | Up | Right | :: | ` | Return | ****** | * |
- |--------------+-------+-------+-------+-------+-------+-------+-------+-------+-------+--------+--------+--------+--------+---|
- | LShift | z | x | c | v | b | n | m | <- | -> | <> | Shift | HHKB | ****** | * |
- |--------------+-------+-------+-------+-------+-------+-------+-------+-------+-------+--------+--------+--------+--------+---|
-
- |------+------+----------------------------+------+------|
- | LAlt | LGUI | ******* Space/Prog ******* | RGUI | RAlt |
- |------+------+----------------------------+------+------|
- */
- [PROG] = LAYOUT(
- QK_GESC, LCA(KC_F1), LCA(KC_F2), LCA(KC_F3), LCA(KC_F4), LCA(KC_F5), LCA(KC_F6), LCA(KC_F7), LCA(KC_F8), LCA(KC_F9), LCA(KC_F10), LCA(KC_F11), LCA(KC_F12), KC_TRNS, KC_TRNS,
- KC_TRNS, FAT_ARROW, KC_AT, BIND, BIND_FLIPPED, OR, CONCAT, ALT, APPLY, FLAP, PIPE, VOID_LEFT, VOID_RIGHT, KC_TRNS,
- TG(MOUSE), SKINNY_ARROW, KC_ASTR, MAP, MAP_FLIPPED, AND, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, DOUBLE_COLON, KC_GRV, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, REVERSE_ARROW, SKINNY_ARROW, CONCAT, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
-
-
- /* Mouse Level: Mouse Layer
- |--------------+---------+---------+---------+---------+---------+-------+-------+---------+---------+---------+-----------+-----------------+--------+---|
- | Esc | Speed 1 | Speed 2 | Speed 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | \ | ` |
- |--------------+---------+---------+---------+---------+---------+-------+-------+---------+---------+---------+-----------+-----------------+--------+---|
- | Mouse(Tab) | Q | Up | Button3 | Button4 | Button5 | Y | U | Button3 | Button4 | Button5 | [ | ] | Backsp | * |
- |--------------+---------+---------+---------+---------+---------+-------+-------+---------+---------+---------+-----------+-----------------+--------+---|
- | Control(Esc) | Left | Down | Right | Button1 | Button2 | SLeft | SDown | SUp | SRight | Button1 | Button2 | Control(Return) | ****** | * |
- |--------------+---------+---------+---------+---------+---------+-------+-------+---------+---------+---------+-----------+-----------------+--------+---|
- | LShift(() | Z | X | C | V | B | N | M | Button5 | Button4 | Button3 | RShift()) | HHKB | ****** | * |
- |--------------+---------+---------+---------+---------+---------+-------+-------+---------+---------+---------+-----------+-----------------+--------+---|
-
- |---------+---------+----------------------------+---------+---------|
- | LAlt([) | LGUI({) | ******* Space/Prog ******* | RGUI(}) | RAlt(]) |
- |---------+---------+----------------------------+---------+---------|
- */
- [MOUSE] = LAYOUT(
- KC_TRNS, KC_ACL0, KC_ACL1, KC_ACL2, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_MS_U, KC_BTN3, KC_BTN4, KC_BTN5, KC_TRNS, KC_TRNS, KC_BTN3, KC_BTN4, KC_BTN5, KC_TRNS, KC_TRNS, KC_TRNS,
- TG(MOUSE), KC_MS_L, KC_MS_D, KC_MS_R, KC_BTN1, KC_BTN2, KC_WH_L, KC_WH_D, KC_WH_U, KC_WH_R, KC_BTN1, KC_BTN2, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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/hhkb/ansi/keymaps/brett/readme.md b/keyboards/hhkb/ansi/keymaps/brett/readme.md
deleted file mode 100644
index fd07b155fb..0000000000
--- a/keyboards/hhkb/ansi/keymaps/brett/readme.md
+++ /dev/null
@@ -1,13 +0,0 @@
-# Generated Keymap Layout
-
-This layout was generated by the QMK API. You can find the JSON data used to
-generate this keymap in the file layers.json.
-
-To make use of this file you will need follow the following steps:
-
-* Download or Clone QMK Firmware: <https://github.com/qmk/qmk_firmware/>
-* Extract QMK Firmware to a location on your hard drive
-* Copy this folder into %s
-* You are now ready to compile or use your keymap with the source
-
-More information can be found in the QMK docs: <https://docs.qmk.fm> \ No newline at end of file
diff --git a/keyboards/hhkb/ansi/keymaps/brett/rules.mk b/keyboards/hhkb/ansi/keymaps/brett/rules.mk
deleted file mode 100644
index 88f57515f1..0000000000
--- a/keyboards/hhkb/ansi/keymaps/brett/rules.mk
+++ /dev/null
@@ -1,4 +0,0 @@
-MOUSEKEY_ENABLE = yes
-TAP_DANCE_ENABLE = no
-LEADER_ENABLE = no
-UNICODE_ENABLE = no
diff --git a/keyboards/hhkb/ansi/keymaps/tominabox1/.gitignore b/keyboards/hhkb/ansi/keymaps/tominabox1/.gitignore
deleted file mode 100644
index 4b8c99bfb8..0000000000
--- a/keyboards/hhkb/ansi/keymaps/tominabox1/.gitignore
+++ /dev/null
@@ -1,3 +0,0 @@
-*.h
-matrix.c
-rules.mk
diff --git a/keyboards/hhkb/ansi/keymaps/tominabox1/keymap.c b/keyboards/hhkb/ansi/keymaps/tominabox1/keymap.c
deleted file mode 100644
index 61688d399a..0000000000
--- a/keyboards/hhkb/ansi/keymaps/tominabox1/keymap.c
+++ /dev/null
@@ -1,12 +0,0 @@
-#include QMK_KEYBOARD_H
-#include "tominabox1.h"
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [0] = LAYOUT(QK_GESC, 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_BSLS, KC_DEL, 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_BSPC, KC_LCTL, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT, KC_ENT, TD(TD_SFT_CPS), KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1), KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(2)),
-
- [1] = 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_INS, KC_DEL, KC_CAPS, KC_MFFD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_MUTE, KC_VOLD, KC_VOLU, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_END, KC_PGDN, KC_DOWN, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
-
- [2] = LAYOUT(KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, QK_BOOT, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_TRNS),
-
- [3] = LAYOUT(QK_GESC, KC_EXLM, KC_EML, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_PGDN, KC_UP, KC_PGUP, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_LEFT, KC_DOWN, KC_RGHT, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_TRNS, KC_NO, KC_TRNS)
-};
diff --git a/keyboards/hhkb/jp/keymaps/dhertz/config.h b/keyboards/hhkb/jp/keymaps/dhertz/config.h
deleted file mode 100644
index af2fb9d8a5..0000000000
--- a/keyboards/hhkb/jp/keymaps/dhertz/config.h
+++ /dev/null
@@ -1 +0,0 @@
-#define USB_MAX_POWER_CONSUMPTION 100
diff --git a/keyboards/hhkb/jp/keymaps/dhertz/keymap.c b/keyboards/hhkb/jp/keymaps/dhertz/keymap.c
deleted file mode 100644
index 5c2511df64..0000000000
--- a/keyboards/hhkb/jp/keymaps/dhertz/keymap.c
+++ /dev/null
@@ -1,84 +0,0 @@
-#include QMK_KEYBOARD_H
-#include "keymap.h"
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- /* Layer 0: Default Layer
- * ,-----------------------------------------------------------.
- * |Esc| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|Del|Bsp|
- * |-----------------------------------------------------------|
- * |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]|Enter |
- * |------------------------------------------------------` |
- * |SrCtl | A| S| D| F| G| H| J| K| L| ;| '| \| |
- * |-----------------------------------------------------------|
- * |Shift | Z| X| C| V| B| N| M| ,| .| /| `|Up |Shi|
- * |-----------------------------------------------------------|
- * |NCt|| #|Alt|CmT|CmT| LyrSpc |CGv|Iso|Gui|CSL||Rig|Dow|Lef|
- * `-----------------------------------------------------------'
- */
- [0] = LAYOUT_jp(
- KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0,KC_MINS, KC_EQL, KC_DEL,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_LBRC,KC_RBRC,
- SRCH_CTL, 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_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M,KC_COMM, KC_DOT, KC_SLSH,KC_NUBS, KC_UP, KC_RSFT,
- NC_CTL, HSH_TLD,KC_LALT,CMD_TAB_CMD,CMD_TAB_CMD, LT(2, KC_SPC) , CMD_GRV_CMD, ISO_COUNTRY_CODE,KC_RGUI, CMD_SFT_L, KC_LEFT,KC_DOWN,KC_RGHT
- ),
-
- /* Layer 1: iPad mode (Fixed)
- * ,-----------------------------------------------------------.
- * | | | | | | | | | | | | | | | |
- * |-----------------------------------------------------------|
- * | | | | | | | | | | | | | | |
- * |------------------------------------------------------` |
- * |CmdSpc| | | | | | | | | | | | | |
- * |-----------------------------------------------------------|
- * | | | | | | | | | | | | | | |
- * |-----------------------------------------------------------|
- * | || ~| |CAD| | |CmH| | | || | | |
- * `-----------------------------------------------------------'
- */
- [1] = LAYOUT_jp(
- KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
- KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS,KC_TRNS,
- CMD_SPC,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
- KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
- KC_TRNS, KC_TRNS,KC_TRNS,CMD_ALT_D,KC_TRNS, KC_TRNS ,CMD_H,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS,KC_TRNS, KC_TRNS
- ),
-
- /* Layer 2: HHKB mode (Space)
- * ,-----------------------------------------------------------.
- * |Pwr| F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12|Ins|Del|
- * |-----------------------------------------------------------|
- * |Caps |DL0|DL1| | | | | |Psc|Slk|Pus|Up | | |
- * |------------------------------------------------------` |
- * | |VoD|VoU|Mut| | | |Bsp|Del|CSL|Lef|Rig| | |
- * |-----------------------------------------------------------|
- * | | | |CAC| | | | | | |Dow| |PgU| |
- * |-----------------------------------------------------------|
- * | || ~| | | | | | | | ||Hom|PgD|End|
- * `-----------------------------------------------------------'
- */
- [2] = LAYOUT_jp(
- KC_PWR, 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_INS,KC_DEL,
- KC_CAPS, DF(0), DF(1),KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_PSCR,KC_SCRL,KC_PAUS, KC_UP,KC_TRNS,
- KC_TRNS, KC_VOLD,KC_VOLU,KC_MUTE,KC_TRNS,KC_TRNS,KC_TRNS,KC_BSPC, KC_DEL,CMD_SFT_L,KC_LEFT,KC_RGHT,KC_TRNS,KC_PENT,
- KC_TRNS, KC_TRNS,KC_TRNS,CMD_ALT_C,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_DOWN,KC_TRNS,KC_PGUP,KC_TRNS,
- KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS ,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_HOME,KC_PGDN, KC_END
- ),
-};
-
-bool process_record_keymap(uint16_t keycode, keyrecord_t *record) {
- switch(keycode) {
- case CMD_SPC:
- mod_or_mod_with_macro(record, KC_LGUI, " ");
- break;
- case CMD_H:
- mod_or_mod_with_macro(record, KC_RGUI, "H");
- break;
- case CMD_ALT_D:
- mod_or_mod_with_macro(record, KC_LGUI, SS_LALT("D"));
- break;
- default:
- return true;
- }
- return false;
-}
diff --git a/keyboards/hhkb/jp/keymaps/dhertz/keymap.h b/keyboards/hhkb/jp/keymaps/dhertz/keymap.h
deleted file mode 100644
index dbefc63800..0000000000
--- a/keyboards/hhkb/jp/keymaps/dhertz/keymap.h
+++ /dev/null
@@ -1,7 +0,0 @@
-#include "dhertz.h"
-
-enum dhertz_keycodes {
- CMD_SPC = NEW_SAFE_RANGE,
- CMD_H,
- CMD_ALT_D,
-};
diff --git a/keyboards/hhkb/jp/keymaps/dhertz/rules.mk b/keyboards/hhkb/jp/keymaps/dhertz/rules.mk
deleted file mode 100644
index 5656057b43..0000000000
--- a/keyboards/hhkb/jp/keymaps/dhertz/rules.mk
+++ /dev/null
@@ -1,2 +0,0 @@
-OPT_DEFS += -DHHKB_JP
-
diff --git a/keyboards/hidtech/bastyl/keymaps/nstickney/keymap.c b/keyboards/hidtech/bastyl/keymaps/nstickney/keymap.c
deleted file mode 100644
index e068f81a73..0000000000
--- a/keyboards/hidtech/bastyl/keymaps/nstickney/keymap.c
+++ /dev/null
@@ -1,70 +0,0 @@
-/*
- * Copyright 2020 Quentin LEBASTARD <qlebastard@gmail.com>
- * Copyright 2020 Anthony MARIN <anthony@hidtech.ca>
- * Copyright 2021 Stick <stick@stma.is>
- *
- * 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 "nstickney.h"
-#include "unicodemap.h"
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
- [BASE] = LAYOUT(KC_GRV, 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_DEL,
- //-------------------------------//
- CC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, CC_QUOT,
- //-------------------------------//
- SC_LSPO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, SC_RSPC,
- //-------------------------------//
- AC_SLSH, FC_BSLS, KC_SPC, KC_ENT, FC_MINS, AC_EQL,
- //-------------------------------//
- KC_LBRC, TD(LOCKS), TD(LAYERS), KC_RBRC),
-
- [SYMB] = LAYOUT(_______, UP(IEX, SS1), UM(SS2), UM(SS3), UP(CUR, GBP), UM(EUR), UM(V14), UM(V12), UM(V34), UP(LSQ, LDQ), UP(RSQ, RDQ), _______,
- //-------------------------------//
- _______, UP(A_D, AXD), UP(A_R, ACR), UP(E_A, ECA), UP(REG, CPL), UM(THR), UP(U_D, UCD), UP(U_A, UCA), UP(I_A, ICA), UP(O_A, OCA), UP(O_D, OCD), _______,
- //-------------------------------//
- _______, UP(A_A, ACA), UP(S_S, SEC), UP(ETH, ETC), UM(EMD), _______, _______, _______, _______, UP(O_S, OCS), UP(PLC, DEG), UP(ACT, DIS),
- //-------------------------------//
- _______, UP(AEL, AEC), _______, UP(CPR, CNT), _______, _______, _______, _______, UP(N_T, NCT), UM(MCR), UP(C_C, CCC), _______,
- //-------------------------------//
- UM(IQM), UP(NOT, BKB), _______, _______, UM(YEN), UP(MLT, DIV),
- //-------------------------------//
- _______, _______, _______, _______),
-
- [NUMP] = LAYOUT(_______, _______, KC_P7, KC_P8, KC_P9, KC_PSLS, _______, KC_P7, KC_P8, KC_P9, KC_PSLS, _______,
- //-------------------------------//
- _______, _______, KC_P4, KC_P5, KC_P6, KC_PAST, _______, KC_P4, KC_P5, KC_P6, KC_PAST, _______,
- //-------------------------------//
- _______, _______, KC_P1, KC_P2, KC_P3, KC_PMNS, _______, KC_P1, KC_P2, KC_P3, KC_PMNS, _______,
- //-------------------------------//
- _______, _______, KC_P0, KC_PCMM, KC_PDOT, KC_PPLS, _______, KC_P0, KC_PCMM, KC_PDOT, KC_PPLS, _______,
- //-------------------------------//
- _______, _______, _______, KC_PENT, _______, _______,
- //-------------------------------//
- _______, _______, _______, _______),
-
- [FCTN] = LAYOUT(KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_SYRQ,
- //-------------------------------//
- KC_PSCR, RGB_TOG, KC_HOME, KC_UP, KC_END, KC_PGUP, QK_LOCK, KC_LBRC, KC_RBRC, S(KC_LBRC), S(KC_RBRC), KC_INS,
- //-------------------------------//
- KC_PAUS, RGB_VAI, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_BRIU, KC_CLR,
- //-------------------------------//
- _______, KC_MPRV, KC_MRWD, KC_MPLY, KC_MFFD, KC_MNXT, KC_MSTP, KC_MUTE, KC_VOLD, KC_VOLU, KC_BRID, _______,
- //-------------------------------//
- QK_BOOT, _______, _______, _______, _______, QK_BOOT,
- //-------------------------------//
- _______, KC_F11, KC_F12, _______)};
diff --git a/keyboards/hillside/46/keymaps/manna-harbour_miryoku/config.h b/keyboards/hillside/46/keymaps/manna-harbour_miryoku/config.h
deleted file mode 100644
index fa808ef681..0000000000
--- a/keyboards/hillside/46/keymaps/manna-harbour_miryoku/config.h
+++ /dev/null
@@ -1,38 +0,0 @@
-// Copyright 2022 Davide Masserut (@mssdvd)
-// Copyright 2019 Manna Harbour
-// https://github.com/manna-harbour/miryoku
-
-// 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 XXX KC_NO
-
-// clang-format off
-#if defined MIRYOKU_MAPPING_EXTENDED_THUMBS
-#define LAYOUT_miryoku( \
- 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, \
- N30, N31, K32, K33, K34, K35, K36, K37, N38, N39 \
-) \
-LAYOUT( \
-XXX, K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, XXX, \
-XXX, K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, XXX, \
-XXX, K20, K21, K22, K23, K24, XXX, XXX, K25, K26, K27, K28, K29, XXX, \
- XXX, K32, K33, K34, K35, K36, K37, XXX \
-)
-#else
-#define LAYOUT_miryoku( \
- 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, \
- N30, N31, K32, K33, K34, K35, K36, K37, N38, N39 \
-) \
-LAYOUT( \
-XXX, K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, XXX, \
-XXX, K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, XXX, \
-XXX, K20, K21, K22, K23, K24, XXX, XXX, K25, K26, K27, K28, K29, XXX, \
- K32, K33, K34, XXX, XXX, K35, K36, K37 \
-)
-#endif
diff --git a/keyboards/hillside/46/keymaps/manna-harbour_miryoku/keymap.c b/keyboards/hillside/46/keymaps/manna-harbour_miryoku/keymap.c
deleted file mode 100644
index dbab7f9820..0000000000
--- a/keyboards/hillside/46/keymaps/manna-harbour_miryoku/keymap.c
+++ /dev/null
@@ -1,4 +0,0 @@
-// Copyright 2019 Manna Harbour
-// https://github.com/manna-harbour/miryoku
-
-// 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/>.
diff --git a/keyboards/hillside/48/0_1/info.json b/keyboards/hillside/48/0_1/info.json
index 2159d1ca68..b6007f1f72 100644
--- a/keyboards/hillside/48/0_1/info.json
+++ b/keyboards/hillside/48/0_1/info.json
@@ -23,7 +23,6 @@
},
"split": {
"soft_serial_pin": "D2",
- "main": "left",
"encoder": {
"right": {
"rotary": [
diff --git a/keyboards/hillside/48/keymaps/manna-harbour_miryoku/config.h b/keyboards/hillside/48/keymaps/manna-harbour_miryoku/config.h
deleted file mode 100644
index e779de8a99..0000000000
--- a/keyboards/hillside/48/keymaps/manna-harbour_miryoku/config.h
+++ /dev/null
@@ -1,38 +0,0 @@
-// Copyright 2022 Davide Masserut (@mssdvd)
-// Copyright 2019 Manna Harbour
-// https://github.com/manna-harbour/miryoku
-
-// 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 XXX KC_NO
-
-// clang-format off
-#if defined MIRYOKU_MAPPING_EXTENDED_THUMBS
-#define LAYOUT_miryoku( \
- 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, \
- N30, N31, K32, K33, K34, K35, K36, K37, N38, N39 \
-) \
-LAYOUT( \
-XXX, K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, XXX, \
-XXX, K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, XXX, \
-XXX, K20, K21, K22, K23, K24, XXX, XXX, K25, K26, K27, K28, K29, XXX, \
- XXX, XXX, K32, K33, K34, K35, K36, K37, XXX, XXX \
-)
-#else
-#define LAYOUT_miryoku( \
- 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, \
- N30, N31, K32, K33, K34, K35, K36, K37, N38, N39 \
-) \
-LAYOUT( \
-XXX, K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, XXX, \
-XXX, K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, XXX, \
-XXX, K20, K21, K22, K23, K24, XXX, XXX, K25, K26, K27, K28, K29, XXX, \
- XXX, K32, K33, K34, XXX, XXX, K35, K36, K37, XXX \
-)
-#endif
diff --git a/keyboards/hillside/48/keymaps/manna-harbour_miryoku/keymap.c b/keyboards/hillside/48/keymaps/manna-harbour_miryoku/keymap.c
deleted file mode 100644
index dbab7f9820..0000000000
--- a/keyboards/hillside/48/keymaps/manna-harbour_miryoku/keymap.c
+++ /dev/null
@@ -1,4 +0,0 @@
-// Copyright 2019 Manna Harbour
-// https://github.com/manna-harbour/miryoku
-
-// 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/>.
diff --git a/keyboards/hillside/52/keymaps/manna-harbour_miryoku/config.h b/keyboards/hillside/52/keymaps/manna-harbour_miryoku/config.h
deleted file mode 100644
index 388f6b9a91..0000000000
--- a/keyboards/hillside/52/keymaps/manna-harbour_miryoku/config.h
+++ /dev/null
@@ -1,38 +0,0 @@
-// Copyright 2022 Davide Masserut (@mssdvd)
-// Copyright 2019 Manna Harbour
-// https://github.com/manna-harbour/miryoku
-
-// 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 XXX KC_NO
-
-// clang-format off
-#if defined MIRYOKU_MAPPING_EXTENDED_THUMBS
-#define LAYOUT_miryoku( \
- 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, \
- N30, N31, K32, K33, K34, K35, K36, K37, N38, N39 \
-) \
-LAYOUT( \
-XXX, K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, XXX, \
-XXX, K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, XXX, \
-XXX, K20, K21, K22, K23, K24, XXX, XXX, K25, K26, K27, K28, K29, XXX, \
-XXX, XXX, XXX, XXX, K32, K33, K34, K35, K36, K37, XXX, XXX, XXX, XXX \
-)
-#else
-#define LAYOUT_miryoku( \
- 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, \
- N30, N31, K32, K33, K34, K35, K36, K37, N38, N39 \
-) \
-LAYOUT( \
-XXX, K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, XXX, \
-XXX, K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, XXX, \
-XXX, K20, K21, K22, K23, K24, XXX, XXX, K25, K26, K27, K28, K29, XXX, \
-XXX, XXX, XXX, K32, K33, K34, XXX, XXX, K35, K36, K37, XXX, XXX, XXX \
-)
-#endif
diff --git a/keyboards/hillside/52/keymaps/manna-harbour_miryoku/keymap.c b/keyboards/hillside/52/keymaps/manna-harbour_miryoku/keymap.c
deleted file mode 100644
index dbab7f9820..0000000000
--- a/keyboards/hillside/52/keymaps/manna-harbour_miryoku/keymap.c
+++ /dev/null
@@ -1,4 +0,0 @@
-// Copyright 2019 Manna Harbour
-// https://github.com/manna-harbour/miryoku
-
-// 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/>.
diff --git a/keyboards/hineybush/hbcp/hbcp.c b/keyboards/hineybush/hbcp/hbcp.c
index 7d0f5ecf73..df17650f27 100644
--- a/keyboards/hineybush/hbcp/hbcp.c
+++ b/keyboards/hineybush/hbcp/hbcp.c
@@ -49,19 +49,19 @@ bool led_update_kb(led_t led_state) {
bool res = led_update_user(led_state);
if (res) {
if (led_state.caps_lock) {
- sethsv_raw(HSV_CAPS, (LED_TYPE *)&led[0]);
+ sethsv_raw(HSV_CAPS, (rgb_led_t *)&led[0]);
} else {
- sethsv(HSV_BLACK, (LED_TYPE *)&led[0]);
+ sethsv(HSV_BLACK, (rgb_led_t *)&led[0]);
}
if (led_state.num_lock) {
- sethsv_raw(HSV_NLCK, (LED_TYPE *)&led[1]);
+ sethsv_raw(HSV_NLCK, (rgb_led_t *)&led[1]);
} else {
- sethsv(HSV_BLACK, (LED_TYPE *)&led[1]);
+ sethsv(HSV_BLACK, (rgb_led_t *)&led[1]);
}
if (led_state.scroll_lock) {
- sethsv_raw(HSV_SCRL, (LED_TYPE *)&led[2]);
+ sethsv_raw(HSV_SCRL, (rgb_led_t *)&led[2]);
} else {
- sethsv(HSV_BLACK, (LED_TYPE *)&led[2]);
+ sethsv(HSV_BLACK, (rgb_led_t *)&led[2]);
}
rgblight_set();
}
@@ -83,7 +83,7 @@ void keyboard_post_init_user(void) {
__attribute__ ((weak))
void hbcp_sethsv_range(uint8_t hue, uint8_t sat, uint8_t val, uint8_t start, uint8_t end) {
- LED_TYPE tmp_led;
+ rgb_led_t tmp_led;
sethsv_raw(hue, sat, val, &tmp_led);
for (uint8_t i = start; i < end; i++) {
led[i] = tmp_led;
diff --git a/keyboards/hineybush/hbcp/keymaps/hiney/keymap.c b/keyboards/hineybush/hbcp/keymaps/hiney/keymap.c
index 26a67fe7ca..2311d4020f 100644
--- a/keyboards/hineybush/hbcp/keymaps/hiney/keymap.c
+++ b/keyboards/hineybush/hbcp/keymaps/hiney/keymap.c
@@ -79,19 +79,19 @@ void matrix_scan_user(void) {
// The first three LEDs are used as indicators for CAPS_LOCK, NUM_LOCK and SCROLL_LOCK.
bool led_update_user(led_t led_state) {
if (led_state.caps_lock) {
- sethsv_raw(HSV_SOFT_RED, (LED_TYPE *)&led[0]);
+ sethsv_raw(HSV_SOFT_RED, (rgb_led_t *)&led[0]);
} else {
- sethsv(HSV_BLACK, (LED_TYPE *)&led[0]);
+ sethsv(HSV_BLACK, (rgb_led_t *)&led[0]);
}
if (led_state.num_lock) {
- sethsv_raw(HSV_WARM_WHITE, (LED_TYPE *)&led[1]);
+ sethsv_raw(HSV_WARM_WHITE, (rgb_led_t *)&led[1]);
} else {
- sethsv(HSV_BLACK, (LED_TYPE *)&led[1]);
+ sethsv(HSV_BLACK, (rgb_led_t *)&led[1]);
}
if (led_state.scroll_lock) {
- sethsv_raw(HSV_SOFT_BLUE, (LED_TYPE *)&led[2]);
+ sethsv_raw(HSV_SOFT_BLUE, (rgb_led_t *)&led[2]);
} else {
- sethsv(HSV_BLACK, (LED_TYPE *)&led[2]);
+ sethsv(HSV_BLACK, (rgb_led_t *)&led[2]);
}
rgblight_set();
return false;
diff --git a/keyboards/horrortroll/handwired_k552/config.h b/keyboards/horrortroll/handwired_k552/config.h
index bec0ac055b..11461a9418 100644
--- a/keyboards/horrortroll/handwired_k552/config.h
+++ b/keyboards/horrortroll/handwired_k552/config.h
@@ -30,10 +30,6 @@
#define EXTERNAL_FLASH_BLOCK_SIZE 4096
#define EXTERNAL_FLASH_SIZE (256 * 1024) // 2M-bit flash size
-// Wear-leveling driver configuration
-#define WEAR_LEVELING_LOGICAL_SIZE 1024
-#define WEAR_LEVELING_BACKING_SIZE (WEAR_LEVELING_LOGICAL_SIZE * 2)
-
#ifdef OLED_ENABLE
/* Mapping I2C2 for OLED */
#define I2C1_SCL_PIN B10
diff --git a/keyboards/horrortroll/handwired_k552/info.json b/keyboards/horrortroll/handwired_k552/info.json
index d137a03a52..b064df38c2 100644
--- a/keyboards/horrortroll/handwired_k552/info.json
+++ b/keyboards/horrortroll/handwired_k552/info.json
@@ -20,6 +20,13 @@
"rows": ["C12", "C10", "A10", "A8", "C8", "C9"]
},
"diode_direction": "ROW2COL",
+ "eeprom": {
+ "driver": "wear_leveling",
+ "wear_leveling": {
+ "driver": "spi_flash",
+ "backing_size": 2048
+ }
+ },
"community_layouts": ["tkl_ansi"],
"layouts": {
"LAYOUT_tkl_ansi": {
diff --git a/keyboards/horrortroll/handwired_k552/rules.mk b/keyboards/horrortroll/handwired_k552/rules.mk
index fd1825af35..6d6ec253db 100644
--- a/keyboards/horrortroll/handwired_k552/rules.mk
+++ b/keyboards/horrortroll/handwired_k552/rules.mk
@@ -32,7 +32,3 @@ RGB_MATRIX_ENABLE = yes
# OLED enabled
OLED_ENABLE = yes
WPM_ENABLE = yes
-
-# Wear-levelling driver
-EEPROM_DRIVER = wear_leveling
-WEAR_LEVELING_DRIVER = spi_flash
diff --git a/keyboards/horrortroll/lemon40/info.json b/keyboards/horrortroll/lemon40/info.json
index 7162e2c2c7..7b0b1c394b 100644
--- a/keyboards/horrortroll/lemon40/info.json
+++ b/keyboards/horrortroll/lemon40/info.json
@@ -19,8 +19,7 @@
"knight": true,
"christmas": true,
"static_gradient": true,
- "alternating": true,
- "twinkle": true
+ "alternating": true
}
},
"ws2812": {
diff --git a/keyboards/hotdox/keymaps/imchipwood/keymap.c b/keyboards/hotdox/keymaps/imchipwood/keymap.c
deleted file mode 100644
index 497a038ad3..0000000000
--- a/keyboards/hotdox/keymaps/imchipwood/keymap.c
+++ /dev/null
@@ -1,151 +0,0 @@
-/* Copyright 2021 imchipwood
- *
- * 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 "imchipwood.h"
-
-// Layer names
-enum custom_layers {
- _QWERTY,
- _NUM,
- _MED
-};
-
-// Layer definitions
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [_QWERTY] = LAYOUT_ergodox_pretty(
-/* Keymap 0: Basic layer
- * ,--------------------------------------------------. ,--------------------------------------------------.
- * | = | 1 | 2 | 3 | 4 | 5 | ESC | |BkTick| 6 | 7 | 8 | 9 | 0 | - |
- * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | Tab | Q | W | E | R | T | MEH | | | Y | U | I | O | P | [ |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | BkSlsh | A | S | D | F | G |------| |------| H | J | K | L | ; | ' |
- * |--------+------+------+------+------+------|MO(2) | |MO(2) |------+------+------+------+------+--------|
- * | LSHIFT | Z | X | C | V | B | | | | N | M | , | . | / |SHFT/CAP|
- * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * |RCTRL | LALT | GUI |L/HOME|R/END | | Up | Down | LEFT |RIGHT |PRSCR |
- * `----------------------------------' `----------------------------------'
- * ,-------------. ,-------------.
- * | DEL | INS | | Ctrl | Alt |
- * ,------|------|------| |------+--------+------.
- * | | | Home | | PgUp | | |
- * |Enter |MO(1) |------| |------| Bksp |Space |
- * | | | End | | PgDn | | |
- * `--------------------' `----------------------'
- */
-// Left hand Right hand
-// ,------------------------------------------------------------------------------------------. ,------------------------------------------------------------------------------------------.
- KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, KC_ESC, KC_GRV, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS,
-// |------------+------------+------------+------------+------------+------------+------------| |------------+------------+------------+------------+------------+------------+------------|
- KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_MEH, KC_TRNS, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC,
-// |------------+------------+------------+------------+------------+------------+ | | +------------+------------+------------+------------+------------+------------|
- KC_BSLS, 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, MO(_MED), MO(_MED), KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, TD(TD_RSFT_CAPS),
-// |------------+------------+------------+------------+------------+------------+------------| |------------+------------+------------+------------+------------+------------+------------|
- KC_LCTL, KC_LALT, KC_LGUI, TD(TD_LOME), TD(TD_REND), KC_UP, KC_DOWN, KC_LEFT, KC_RGHT, KC_PSCR,
-// `---------------------------------------------------------------' `----------------------------------------------------------------'
-// ,-------------------------. ,-------------------------.
- KC_DEL, KC_INS, KC_TRNS, KC_TRNS,
-// ,------------+------------+------------| |------------+------------+------------.
- KC_TRNS, KC_TRNS,
-// | | +------------| |------------+ | |
- KC_ENT, MO(_NUM), KC_TRNS, KC_TRNS, KC_BSPC, KC_SPC
-// `--------------------------------------' `--------------------------------------'
- ),
- [_NUM] = LAYOUT_ergodox_pretty(
-/* Keymap 1: Numpad, function keys, and some convenience keys
- * ,---------------------------------------------------. ,--------------------------------------------------.
- * | | F1 | F2 | F3 | F4 | F5 | | | F12 | F6 | F7 | F8 | F9 | F10 | F11 |
- * |---------+------+------+------+------+------+------| |------+------+------+------+------+------+--------|
- * | | | up | | | | | | | 7 | 8 | 9 | * | / | ] |
- * |---------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | left | down |right | | |------| |------| 4 | 5 | 6 | + | - | |
- * |---------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | | | | | | | | | 1 | 2 | 3 | = | up | enter |
- * `---------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * | | | | PgUp | PgDn | | 0 | . | left | down |right |
- * `-----------------------------------' `----------------------------------'
- * ,-------------. ,-------------.
- * | | | | | |
- * ,------|------|------| |------+------+------.
- * | | | | | | | |
- * | | |------| |------| Del | Esc |
- * | | | | | | | |
- * `--------------------' `--------------------'
- */
-// Left hand Right hand
-// ,------------------------------------------------------------------------------------------. ,------------------------------------------------------------------------------------------.
- KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, TD(CTL_F5), KC_TRNS, KC_F12, KC_F6, TD(ALT_F7), KC_F8, KC_F9, KC_F10, KC_F11,
-// |------------+------------+------------+------------+------------+------------+------------| |------------+------------+------------+------------+------------+------------+------------|
- KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_7, KC_8, KC_9, KC_PAST, KC_PSLS, KC_RBRC,
-// |------------+------------+------------+------------+------------+------------+ | | +------------+------------+------------+------------+------------+------------|
- KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, KC_TRNS, KC_4, KC_5, KC_6, KC_PPLS, KC_PMNS, KC_TRNS,
-// |------------+------------+------------+------------+------------+------------+------------| |------------+------------+------------+------------+------------+------------+------------|
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_1, KC_2, KC_3, KC_PEQL, KC_UP, KC_PENT,
-// |------------+------------+------------+------------+------------+------------+------------| |------------+------------+------------+------------+------------+------------+------------|
- KC_TRNS, KC_TRNS, KC_TRNS, KC_PGUP, KC_PGDN, KC_0, KC_PDOT, KC_LEFT, KC_DOWN, KC_RGHT,
-// `---------------------------------------------------------------' `----------------------------------------------------------------'
-// ,-------------------------. ,-------------------------.
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
-// ,------------+------------+------------| |------------+------------+------------.
- KC_TRNS, KC_TRNS,
-// | | +------------| |------------+ | |
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_DEL, KC_ESC
-// `--------------------------------------' `--------------------------------------'
- ),
- [_MED] = LAYOUT_ergodox_pretty(
-/* Keymap 2: Media and mouse keys
- * ,--------------------------------------------------. ,--------------------------------------------------.
- * | | | | | | | | | | | | | | | Mute |
- * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | | | MsUp | | | | | | | MP7 | MP8 | MP9 | | | |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | |MsLeft|MsDown|MsRght| | |------| |------| MP4 | MP5 | MP6 | | | |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | | | | | | | | | MP1 | MP2 | MP3 | |VolUp | |
- * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * | | | | Lclk | Rclk | | | | Prev |VolDn | Next |
- * `----------------------------------' `----------------------------------'
- * ,-------------. ,-------------.
- * |QK_BOOT | | | | |
- * ,------|------|------| |------+------+------.
- * | | | | | | | |
- * |MPENT | |------| |------| |Play |
- * | | | | | | | |
- * `--------------------' `--------------------'
- */
-// Left hand Right hand
-// ,------------------------------------------------------------------------------------------. ,------------------------------------------------------------------------------------------.
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MUTE,
-// |------------+------------+------------+------------+------------+------------+------------| |------------+------------+------------+------------+------------+------------+------------|
- KC_TRNS, KC_TRNS, KC_MS_U, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, MEH(KC_P7), MEH(KC_P8), MEH(KC_P9), KC_TRNS, KC_TRNS, KC_TRNS,
-// |------------+------------+------------+------------+------------+------------+ | | +------------+------------+------------+------------+------------+------------|
- KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_R, KC_TRNS, KC_TRNS, MEH(KC_P4), MEH(KC_P5), MEH(KC_P6), KC_TRNS, KC_TRNS, KC_TRNS,
-// |------------+------------+------------+------------+------------+------------+------------| |------------+------------+------------+------------+------------+------------+------------|
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, MEH(KC_P1), MEH(KC_P2), MEH(KC_P3), KC_TRNS, KC_VOLU, KC_TRNS,
-// |------------+------------+------------+------------+------------+------------+------------| |------------+------------+------------+------------+------------+------------+------------|
- KC_TRNS, KC_TRNS, KC_TRNS, KC_BTN1, KC_BTN2, KC_TRNS, KC_TRNS, KC_MPRV, KC_VOLD, KC_MNXT,
-// `---------------------------------------------------------------' `----------------------------------------------------------------'
-// ,-------------------------. ,-------------------------.
- QK_BOOT, KC_TRNS, KC_TRNS, KC_TRNS,
-// ,------------+------------+------------| |------------+------------+------------.
- KC_TRNS, KC_TRNS,
-// | | +------------| |------------+ | |
- MEH(KC_PENT), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY
-// `--------------------------------------' `--------------------------------------'
- )
-};
diff --git a/keyboards/hotdox/keymaps/ninjonas/README.md b/keyboards/hotdox/keymaps/ninjonas/README.md
deleted file mode 100644
index be733fde2d..0000000000
--- a/keyboards/hotdox/keymaps/ninjonas/README.md
+++ /dev/null
@@ -1,106 +0,0 @@
-# ninjonas Keymap for [ErgoDox (HotDox)](https://www.alpacakeyboards.com/)
-
-## Setup
-- Ensure you've cloned the [qmk](https://github.com/qmk/qmk_firmware) repo
-- Create directory `ninjonas` on `/keyboards/hotdox/keymaps/`
-- Run `copy_keymap.sh`. This copies the contents of this repo into `%qmk_firmware%/ninjonas/` directory
-- To push your keymap to your keyboard run this command `make clean hotdox:ninjonas:dfu`
- - this compiles your keymap and creates a `hotdox_ninjonas.hex` file and will atempt to flash your board
- - if you get the following message:
- ```
- dfu-programmer: no device present.
- Error: Bootloader not found. Trying again in 5s.
- ```
- - Press the reset button underneath your ErgoDox keyboard
- - The following messages should show up and your board has successfuly been flashed
- ```
- Bootloader Version: 0x00 (0)
- Erasing flash... Success
- Checking memory from 0x0 to 0x6FFF... Empty.
- Checking memory from 0x0 to 0x5D7F... Empty.
- 0% 100% Programming 0x5D80 bytes...
- [>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>] Success
- 0% 100% Reading 0x7000 bytes...
- [>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>] Success
- Validating... Success
- 0x5D80 bytes written into 0x7000 bytes memory (83.48%).
- ```
- - The alterenative is follow the steps on [Hotdox flashing guide](https://www.alpacakeyboards.com/flash/hot-dox-ergodox-76-flashing-instructions)
-
-## Keymap
-This keymap is designed based off my typing habits and is subject to change. Information about custom user macros and tap dances can be found [here](https://github.com/ninjonas/qmk-yonas/tree/master/users/ninjonas).
-
-### QWERTY
-```c
-/* QWERTY
- *
- * ,--------------------------------------------------. ,--------------------------------------------------.
- * | ` | 1 | 2 | 3 | 4 | 5 | Play | |K_LOCK | 6 | 7 | 8 | 9 | 0 | - |
- * |--------+------+------+------+------+-------------| |-------+------+------+------+------+------+--------|
- * | Tab | Q | W | E | R | T | | | | Y | U | I | O | P | \ |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | Esc | A | S | D | F | G |------| |-------| H | J | K | L | ; | ' |
- * |--------+------+------+------+------+------| [ | | ] |------+------+------+------+------+--------|
- * | LShift | Z | X | C | V | B | | | | N | M | , | . | / | = |
- * `--------+------+------+------+------+-------------' `--------------+------+------+------+------+--------'
- * | | | Alt | Cmd | Ctl | | BkSP | Del |LOWER | | |
- * `----------------------------------' `----------------------------------'
- * ,-------------. ,-------------.
- * | Up | Down | | Left | Right|
- * ,------|------|------| |------+------+------.
- * | | | Home | | PgUp | | |
- * | Space|Backsp|------| |------| Del |Enter |
- * | |ace | End | | PgDn | | |
- * `--------------------' `--------------------'
- */
-```
-
-### LOWER
-```c
-/* LOWER
- *
- * ,--------------------------------------------------. ,----------------------------------------------------.
- * | F11 | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | F12 |
- * |--------+------+------+------+------+-------------| |-------+------+------+------+------+-------+--------|
- * | | |KC_BRU| Play | Mute | | | | | PgUp | Home | Up | End | | |
- * |--------+------+------+------+------+------| | | |------+------+------+------+-------+--------|
- * | | |KC_BRD| Next |VolUp | |------| |-------| PgDn | Left | Down |Right |K_LOCK | |
- * |--------+------+------+------+------+------| | | |------+------+------+------+-------+--------|
- * | | | | Prev |VolDn | | | | | | | | | | |
- * `--------+------+------+------+------+-------------' `--------------+------+------+------+-------+--------'
- * | | | | | | | | | |M_CODE | |
- * `----------------------------------' `-----------------------------------'
- * ,-------------. ,-------------.
- * | | | | | |
- * ,------|------|------| |------+------+------.
- * | | | | | | | |
- * | | |------| |------| | |
- * | | | | | | | |
- * `--------------------' `--------------------'
- */
-```
-
-### RAISE
-```c
-/* RAISE
- *
- * ,--------------------------------------------------. ,----------------------------------------------------.
- * | | | | | | | | | | | | | | | |
- * |--------+------+------+------+------+-------------| |-------+------+------+------+------+-------+--------|
- * | | | MS_1 | MS_U | MS_2 | WH_U | | | | | | | | | |
- * |--------+------+------+------+------+------| | | |------+------+------+------+-------+--------|
- * | | | MS_L | MS_D | MS_R | WH_D |------| |-------| | | | | | |
- * |--------+------+------+------+------+------| | | |------+------+------+------+-------+--------|
- * | | | | | | | | | | | | | | | |
- * `--------+------+------+------+------+-------------' `--------------+------+------+------+-------+--------'
- * | | | | | | | | | | | |
- * `----------------------------------' `-----------------------------------'
- * ,-------------. ,-------------.
- * | | | | | |
- * ,------|------|------| |------+------+------.
- * | | | | | | | |
- * | | |------| |------| | |
- * | | | | | | | |
- * `--------------------' `--------------------'
- */
-``` \ No newline at end of file
diff --git a/keyboards/hotdox/keymaps/ninjonas/keymap.c b/keyboards/hotdox/keymaps/ninjonas/keymap.c
deleted file mode 100644
index 2f9609c5c5..0000000000
--- a/keyboards/hotdox/keymaps/ninjonas/keymap.c
+++ /dev/null
@@ -1,348 +0,0 @@
-/* Copyright 2019 @ninjonas
- *
- * 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 "ninjonas.h"
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-/* QWERTY
- *
- * ,--------------------------------------------------. ,--------------------------------------------------.
- * | ` | 1 | 2 | 3 | 4 | 5 | Play | |K_LOCK | 6 | 7 | 8 | 9 | 0 | - |
- * |--------+------+------+------+------+-------------| |-------+------+------+------+------+------+--------|
- * | Tab | Q | W | E | R | T | | | | Y | U | I | O | P | \ |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | Esc | A | S | D | F | G |------| |-------| H | J | K | L | ; | ' |
- * |--------+------+------+------+------+------| [ | | ] |------+------+------+------+------+--------|
- * | LShift | Z | X | C | V | B | | | | N | M | , | . | / | = |
- * `--------+------+------+------+------+-------------' `--------------+------+------+------+------+--------'
- * | | | Alt | Cmd | Ctl | | BkSP | Del |LOWER | | |
- * `----------------------------------' `----------------------------------'
- * ,-------------. ,-------------.
- * | Up | Down | | Left | Right|
- * ,------|------|------| |------+------+------.
- * | | | Home | | PgUp | | |
- * | Space|Backsp|------| |------| Del |Enter |
- * | |ace | End | | PgDn | | |
- * `--------------------' `--------------------'
- */
- [_QWERTY] = LAYOUT_ergodox_wrapper(
- // LEFT HAND
- _____________________NUM_LEFT_______________________, KC_MPLY,
- _____________________QWERTY_L1______________________, XXXXXXX,
- _____________________QWERTY_L2______________________,
- _____________________QWERTY_L3______________________, T_LBRC,
- XXXXXXX, XXXXXXX, ________MOD_LEFT_________,
- // LEFT THUMB
- KC_UP, KC_DOWN,
- KC_HOME,
- LT_RAI, KC_BSPC,
- KC_END,
-
- //RIGHT HAND
- K_LOCK, _____________________NUM_RIGHT______________________,
- XXXXXXX,_____________________QWERTY_R1______________________,
- _____________________QWERTY_R2______________________,
- T_RBRC, _____________________QWERTY_R3______________________,
- ________MOD_RIGHT________, XXXXXXX, XXXXXXX,
- // RIGHT THUMB
- KC_LEFT, KC_RGHT,
- KC_PGUP,
- KC_PGDN,
- MT_DEL, LT_LOW
- ),
-
-/* DVORAK
- *
- * ,--------------------------------------------------. ,--------------------------------------------------.
- * | ` | 1 | 2 | 3 | 4 | 5 | Play | |K_LOCK | 6 | 7 | 8 | 9 | 0 | - |
- * |--------+------+------+------+------+-------------| |-------+------+------+------+------+------+--------|
- * | Tab | ' | , | . | P | Y | | | | F | G | C | R | L | \ |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | Esc | A | O | E | U | I |------| |-------| D | H | T | N | S | / |
- * |--------+------+------+------+------+------| [ | | ] |------+------+------+------+------+--------|
- * | LShift | ; | Q | J | K | X | | | | B | M | W | V | Z | = |
- * `--------+------+------+------+------+-------------' `--------------+------+------+------+------+--------'
- * | | | Alt | Cmd | Ctl | | BkSP | Del |LOWER | | |
- * `----------------------------------' `----------------------------------'
- * ,-------------. ,-------------.
- * | Up | Down | | Left | Right|
- * ,------|------|------| |------+------+------.
- * | | | Home | | PgUp | | |
- * | Space|Backsp|------| |------| Del |Enter |
- * | |ace | End | | PgDn | | |
- * `--------------------' `--------------------'
- */
- [_DVORAK] = LAYOUT_ergodox_wrapper(
- // LEFT HAND
- _____________________NUM_LEFT_______________________, KC_MPLY,
- _____________________DVORAK_L1______________________, XXXXXXX,
- _____________________DVORAK_L2______________________,
- _____________________DVORAK_L3______________________, T_LBRC,
- XXXXXXX, XXXXXXX, ________MOD_LEFT_________,
- // LEFT THUMB
- KC_UP, KC_DOWN,
- KC_HOME,
- LT_RAI, KC_BSPC,
- KC_END,
-
- //RIGHT HAND
- K_LOCK, _____________________NUM_RIGHT______________________,
- XXXXXXX,_____________________DVORAK_R1______________________,
- _____________________DVORAK_R2______________________,
- T_RBRC, _____________________DVORAK_R3______________________,
- ________MOD_RIGHT________, XXXXXXX, XXXXXXX,
- // RIGHT THUMB
- KC_LEFT, KC_RGHT,
- KC_PGUP,
- KC_PGDN,
- MT_DEL, LT_LOW
- ),
-
-/* COLEMAK
- *
- * ,--------------------------------------------------. ,--------------------------------------------------.
- * | ` | 1 | 2 | 3 | 4 | 5 | Play | |K_LOCK | 6 | 7 | 8 | 9 | 0 | - |
- * |--------+------+------+------+------+-------------| |-------+------+------+------+------+------+--------|
- * | Tab | Q | W | F | P | G | | | | J | L | U | Y | ; | \ |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | Esc | A | R | S | T | D |------| |-------| H | N | E | I | O | ' |
- * |--------+------+------+------+------+------| [ | | ] |------+------+------+------+------+--------|
- * | LShift | Z | X | C | V | B | | | | K | M | , | . | / | = |
- * `--------+------+------+------+------+-------------' `--------------+------+------+------+------+--------'
- * | | | Alt | Cmd | Ctl | | BkSP | Del |LOWER | | |
- * `----------------------------------' `----------------------------------'
- * ,-------------. ,-------------.
- * | Up | Down | | Left | Right|
- * ,------|------|------| |------+------+------.
- * | | | Home | | PgUp | | |
- * | Space|Backsp|------| |------| Del |Enter |
- * | |ace | End | | PgDn | | |
- * `--------------------' `--------------------'
- */
- [_COLEMAK] = LAYOUT_ergodox_wrapper(
- // LEFT HAND
- _____________________NUM_LEFT_______________________, KC_MPLY,
- _____________________COLEMAK_L1_____________________, XXXXXXX,
- _____________________COLEMAK_L2_____________________,
- _____________________COLEMAK_L3_____________________, T_LBRC,
- XXXXXXX, XXXXXXX, ________MOD_LEFT_________,
- // LEFT THUMB
- KC_UP, KC_DOWN,
- KC_HOME,
- LT_RAI, KC_BSPC,
- KC_END,
-
- //RIGHT HAND
- K_LOCK, _____________________NUM_RIGHT______________________,
- XXXXXXX,_____________________COLEMAK_R1_____________________,
- _____________________COLEMAK_R2_____________________,
- T_RBRC, _____________________COLEMAK_R3_____________________,
- ________MOD_RIGHT________, XXXXXXX, XXXXXXX,
- // RIGHT THUMB
- KC_LEFT, KC_RGHT,
- KC_PGUP,
- KC_PGDN,
- MT_DEL, LT_LOW
- ),
-
-/* LOWER
- *
- * ,--------------------------------------------------. ,----------------------------------------------------.
- * | F11 | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | F12 |
- * |--------+------+------+------+------+-------------| |-------+------+------+------+------+-------+--------|
- * | | |KC_BRU| Play | Mute | | | | | PgUp | Home | Up | End | | |
- * |--------+------+------+------+------+------| | | |------+------+------+------+-------+--------|
- * | | |KC_BRD| Next |VolUp | |------| |-------| PgDn | Left | Down |Right |K_LOCK | |
- * |--------+------+------+------+------+------| | | |------+------+------+------+-------+--------|
- * | | | | Prev |VolDn | | | | | | | | | | |
- * `--------+------+------+------+------+-------------' `--------------+------+------+------+-------+--------'
- * | | | | | | | | | |M_CODE | |
- * `----------------------------------' `-----------------------------------'
- * ,-------------. ,-------------.
- * | | | | | |
- * ,------|------|------| |------+------+------.
- * | | | | | | | |
- * | | |------| |------| | |
- * | | | | | | | |
- * `--------------------' `--------------------'
- */
- [_LOWER] = LAYOUT_ergodox_wrapper(
- //LEFT HAND
- _____________________FUNC_LEFT______________________, _______,
- _____________________LOWER_L1_______________________, _______,
- _____________________LOWER_L2_______________________,
- _____________________LOWER_L3_______________________, _______,
- _______, _______, _______, _______, _______,
- // LEFT THUMB
- _______, _______,
- _______,
- _______, _______,
- _______,
-
- //RIGHT HAND
- _______, _____________________FUNC_RIGHT_____________________,
- _______, _____________________LOWER_R1_______________________,
- _____________________LOWER_R2_______________________,
- _______, _____________________LOWER_R3_______________________,
- _______, _______, _______, M_CODE, _______,
- // RIGHT THUMB
- _______, _______,
- _______,
- _______,
- _______, _______
- ),
-
-/* RAISE
- *
- * ,--------------------------------------------------. ,----------------------------------------------------.
- * | | | | | | | | | | | | | | | |
- * |--------+------+------+------+------+-------------| |-------+------+------+------+------+-------+--------|
- * | | | MS_1 | MS_U | MS_2 | WH_U | | | | | | | | | |
- * |--------+------+------+------+------+------| | | |------+------+------+------+-------+--------|
- * | | | MS_L | MS_D | MS_R | WH_D |------| |-------| | | | | | |
- * |--------+------+------+------+------+------| | | |------+------+------+------+-------+--------|
- * | | | | | | | | | | | | | | | |
- * `--------+------+------+------+------+-------------' `--------------+------+------+------+-------+--------'
- * | | | | | | | | | | | |
- * `----------------------------------' `-----------------------------------'
- * ,-------------. ,-------------.
- * | | | | | |
- * ,------|------|------| |------+------+------.
- * | | | | | | | |
- * | | |------| |------| | |
- * | | | | | | | |
- * `--------------------' `--------------------'
- */
- [_RAISE] = LAYOUT_ergodox_wrapper(
- //LEFT HAND
- XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
- XXXXXXX, XXXXXXX, _____________MOUSE_1______________, XXXXXXX,
- XXXXXXX, XXXXXXX, _____________MOUSE_2______________,
- XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
- XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
- // LEFT THUMB
- _______, _______,
- _______,
- _______, _______,
- _______,
-
- //RIGHT HAND
- XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
- XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
- XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
- XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
- XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
- // RIGHT THUMB
- _______, _______,
- _______,
- _______,
- _______, _______
- ),
-
-/* ADJUST
- *
- * ,--------------------------------------------------. ,----------------------------------------------------.
- * | | | | | | | | | | | | | | | |
- * |--------+------+------+------+------+-------------| |-------+------+------+------+------+-------+--------|
- * | M_MAKE |QK_BOOT | | | | | | | | | | |COLMAK|DVORAK |QWERTY |
- * |--------+------+------+------+------+------| | | |------+------+------+------+-------+--------|
- * | M_VRSN |M_MALL| | | | |------| |-------| | | | | | |
- * |--------+------+------+------+------+------| | | |------+------+------+------+-------+--------|
- * | M_FLSH | | | | | | | | | | | | | | |
- * `--------+------+------+------+------+-------------' `--------------+------+------+------+-------+--------'
- * | | | | | | | | | | | |
- * `----------------------------------' `-----------------------------------'
- * ,-------------. ,-------------.
- * | | | | | |
- * ,------|------|------| |------+------+------.
- * | | | | | | | |
- * | | |------| |------| | |
- * | | | | | | | |
- * `--------------------' `--------------------'
- */
- [_ADJUST] = LAYOUT_ergodox_wrapper(
- //LEFT HAND
- XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
- _____________________ADJUST_L1______________________, XXXXXXX,
- _____________________ADJUST_L1______________________,
- _____________________ADJUST_L1______________________, XXXXXXX,
- XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
- // LEFT THUMB
- _______, _______,
- _______,
- _______, _______,
- _______,
-
- //RIGHT HAND
- XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
- XXXXXXX, _____________________ADJUST_R1______________________,
- _____________________ADJUST_R1______________________,
- XXXXXXX, _____________________ADJUST_R1______________________,
- XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
- // RIGHT THUMB
- _______, _______,
- _______,
- _______,
- _______, _______
- ),
-/* Keymap XX: TEMPLATE
- *
- * ,--------------------------------------------------. ,----------------------------------------------------.
- * | | | | | | | | | | | | | | | |
- * |--------+------+------+------+------+-------------| |-------+------+------+------+------+-------+--------|
- * | | | | | | | | | | | | | | | |
- * |--------+------+------+------+------+------| | | |------+------+------+------+-------+--------|
- * | | | | | | |------| |-------| | | | | | |
- * |--------+------+------+------+------+------| | | |------+------+------+------+-------+--------|
- * | | | | | | | | | | | | | | | |
- * `--------+------+------+------+------+-------------' `--------------+------+------+------+-------+--------'
- * | | | | | | | | | | | |
- * `----------------------------------' `-----------------------------------'
- * ,-------------. ,-------------.
- * | | | | | |
- * ,------|------|------| |------+------+------.
- * | | | | | | | |
- * | | |------| |------| | |
- * | | | | | | | |
- * `--------------------' `--------------------'
-[_XXLAYER] = LAYOUT_ergodox_wrapper(
- //LEFT HAND
- _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______,
- // LEFT THUMB
- _______, _______,
- _______,
- _______, _______,
- _______,
-
- //RIGHT HAND
- _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______,
- // RIGHT THUMB
- _______, _______,
- _______,
- _______,
- _______, _______
- ),
-
- */
-}; \ No newline at end of file
diff --git a/keyboards/hotdox/keymaps/ninjonas/rules.mk b/keyboards/hotdox/keymaps/ninjonas/rules.mk
deleted file mode 100644
index 4da205a168..0000000000
--- a/keyboards/hotdox/keymaps/ninjonas/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-LTO_ENABLE = yes
diff --git a/keyboards/hotdox/rules.mk b/keyboards/hotdox/rules.mk
index 1088cbc14b..8e11eeabe0 100644
--- a/keyboards/hotdox/rules.mk
+++ b/keyboards/hotdox/rules.mk
@@ -15,5 +15,5 @@ RGBLIGHT_ENABLE = no
# project specific files
SRC = matrix.c \
- i2c_master.c \
left.c
+I2C_DRIVER_REQUIRED = yes
diff --git a/keyboards/hotdox76v2/config.h b/keyboards/hotdox76v2/config.h
index f469aa475f..3d80775073 100644
--- a/keyboards/hotdox76v2/config.h
+++ b/keyboards/hotdox76v2/config.h
@@ -30,11 +30,6 @@
#define RGB_MATRIX_CENTER \
{ 112, 32 }
-#define SPLIT_TRANSPORT_MIRROR
-#define SPLIT_MODS_ENABLE
-#define SPLIT_LAYER_STATE_ENABLE
-#define SPLIT_LED_STATE_ENABLE
-#define SPLIT_OLED_ENABLE
#define SPLIT_TRANSACTION_IDS_KB KEYBOARD_CURRENT_ALPA_SYNC
#define ENABLE_RGB_MATRIX_GRADIENT_UP_DOWN
diff --git a/keyboards/hotdox76v2/info.json b/keyboards/hotdox76v2/info.json
index c66bd5eb8a..a42bdb3a79 100644
--- a/keyboards/hotdox76v2/info.json
+++ b/keyboards/hotdox76v2/info.json
@@ -27,7 +27,16 @@
},
"split": {
"enabled": true,
- "soft_serial_pin": "D2"
+ "soft_serial_pin": "D2",
+ "transport": {
+ "sync": {
+ "indicators": true,
+ "layer_state": true,
+ "matrix_state": true,
+ "modifiers": true,
+ "oled": true
+ }
+ }
},
"ws2812": {
"pin": "D3"
diff --git a/keyboards/hs60/v1/config.h b/keyboards/hs60/v1/config.h
index 62c800b9bc..c864464390 100644
--- a/keyboards/hs60/v1/config.h
+++ b/keyboards/hs60/v1/config.h
@@ -41,10 +41,9 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
// #define RGB_DISABLE_WHEN_USB_SUSPENDED // turn off effects when suspended
#define RGB_MATRIX_MAXIMUM_BRIGHTNESS 215
-#define DRIVER_ADDR_1 0b1110100
-#define DRIVER_ADDR_2 0b1110101
+#define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND
+#define IS31FL3731_I2C_ADDRESS_2 IS31FL3731_I2C_ADDRESS_SCL
-#define DRIVER_COUNT 2
#define DRIVER_1_LED_TOTAL 30
#ifdef HS60_ANSI
diff --git a/keyboards/hs60/v1/v1.c b/keyboards/hs60/v1/v1.c
index 6c5f03f428..50f6215a02 100644
--- a/keyboards/hs60/v1/v1.c
+++ b/keyboards/hs60/v1/v1.c
@@ -91,7 +91,7 @@ void raw_hid_receive( uint8_t *data, uint8_t length )
#ifdef HS60_ANSI
-const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = {
+const is31fl3731_led_t PROGMEM g_is31fl3731_leds[RGB_MATRIX_LED_COUNT] = {
/* Refer to IS31 manual for these locations
* driver
* | R location
@@ -199,7 +199,7 @@ led_config_t g_led_config = { {
#else
-const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = {
+const is31fl3731_led_t PROGMEM g_is31fl3731_leds[RGB_MATRIX_LED_COUNT] = {
/* Refer to IS31 manual for these locations
* driver
* | R location
diff --git a/keyboards/hs60/v2/ansi/config.h b/keyboards/hs60/v2/ansi/config.h
index 614b44d4d4..e96c36313c 100644
--- a/keyboards/hs60/v2/ansi/config.h
+++ b/keyboards/hs60/v2/ansi/config.h
@@ -53,8 +53,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define RGB_BACKLIGHT_COLOR_1 { .h = 0, .s = 255 }
#define RGB_BACKLIGHT_COLOR_2 { .h = 127, .s = 255 }
-#define DRIVER_COUNT 2
-#define RGB_MATRIX_LED_COUNT 64
+#define IS31FL3733_I2C_ADDRESS_1 IS31FL3733_I2C_ADDRESS_GND_GND
+#define IS31FL3733_LED_COUNT 64
// These define which keys in the matrix are alphas/mods
// Used for backlight effects so colors are different for
diff --git a/keyboards/hs60/v2/ansi/keymaps/stanrc85/config.h b/keyboards/hs60/v2/ansi/keymaps/stanrc85/config.h
deleted file mode 100644
index bf39aae3a2..0000000000
--- a/keyboards/hs60/v2/ansi/keymaps/stanrc85/config.h
+++ /dev/null
@@ -1,38 +0,0 @@
-#pragma once
-
-// disable backlight after timeout in minutes, 0 = no timeout
-#undef RGB_BACKLIGHT_DISABLE_AFTER_TIMEOUT
-#define RGB_BACKLIGHT_DISABLE_AFTER_TIMEOUT 20
-
-#undef RGB_BACKLIGHT_ALPHAS_MODS_ROW_0
-#undef RGB_BACKLIGHT_ALPHAS_MODS_ROW_1
-#undef RGB_BACKLIGHT_ALPHAS_MODS_ROW_2
-#undef RGB_BACKLIGHT_ALPHAS_MODS_ROW_3
-#undef RGB_BACKLIGHT_ALPHAS_MODS_ROW_4
-
-#define RGB_BACKLIGHT_ALPHAS_MODS_ROW_0 0b0010000000000001
-#define RGB_BACKLIGHT_ALPHAS_MODS_ROW_1 0b0000000000000001
-#define RGB_BACKLIGHT_ALPHAS_MODS_ROW_2 0b0011000000000001 //Setting \ key to "MOD" instead of "ALPHA" for lighting
-#define RGB_BACKLIGHT_ALPHAS_MODS_ROW_3 0b0010000000000001
-#define RGB_BACKLIGHT_ALPHAS_MODS_ROW_4 0b0011110000000111
-
-#undef RGB_BACKLIGHT_CAPS_LOCK_INDICATOR
-#undef RGB_BACKLIGHT_LAYER_1_INDICATOR
-#undef RGB_BACKLIGHT_LAYER_2_INDICATOR
-#undef RGB_BACKLIGHT_LAYER_3_INDICATOR
-
-#define RGB_BACKLIGHT_CAPS_LOCK_INDICATOR { .color = { .h = 200, .s = 255 }, .index = 3-1 } //purple
-#define RGB_BACKLIGHT_LAYER_1_INDICATOR { .color = { .h = 100, .s = 255 }, .index = 60-1 } //green
-#define RGB_BACKLIGHT_LAYER_2_INDICATOR { .color = { .h = 150, .s = 255 }, .index = 60-1 } //blue
-#define RGB_BACKLIGHT_LAYER_3_INDICATOR { .color = { .h = 0, .s = 0 }, .index = 60-1 } //white
-
-#undef RGB_BACKLIGHT_BRIGHTNESS
-#define RGB_BACKLIGHT_BRIGHTNESS 175
-
-#undef RGB_BACKLIGHT_COLOR_1
-#undef RGB_BACKLIGHT_COLOR_2
-
-#define RGB_BACKLIGHT_COLOR_1 { .h = 0, .s = 255 }
-#define RGB_BACKLIGHT_COLOR_2 { .h = 150, .s = 255 }
-
-#define RGB_MATRIX_KEYPRESSES
diff --git a/keyboards/hs60/v2/ansi/keymaps/stanrc85/keymap.c b/keyboards/hs60/v2/ansi/keymaps/stanrc85/keymap.c
deleted file mode 100644
index 13fb7f005b..0000000000
--- a/keyboards/hs60/v2/ansi/keymaps/stanrc85/keymap.c
+++ /dev/null
@@ -1,59 +0,0 @@
-/* Copyright 2018 Stanrc85
- *
- * 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 "stanrc85.h"
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [_QWERTY] = LAYOUT_60_ansi(
- TD_TESC, 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_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_CTLE, 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_LCTL, KC_LGUI, KC_LALT, LT_SPCF, KC_RALT, TD_TWIN, MO(_FN2_60), TD_TCTL),
-
- [_DEFAULT] = LAYOUT_60_ansi(
- QK_GESC, 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_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_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_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,
- KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(_FN1_60), MO(_FN2_60), KC_RCTL),
-
- [_FN1_60] = LAYOUT_60_ansi(
- KC_TILD, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL,
- _______, _______, CA_QUOT, KC_VOLU, CA_SCLN, _______, KC_PGUP, KC_HOME, KC_UP, KC_END, KC_PSCR, _______, _______, KC_INS,
- KC_CAPS, _______, KC_MUTE, KC_VOLD, KC_MPLY, _______, KC_PGDN, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______,
- _______, KC_RDP, _______, _______, _______, _______, _______, _______, KC_WBAK, KC_WFWD, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______),
-
- [_FN2_60] = LAYOUT_60_ansi(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, EE_CLR,
- _______, EF_INC, ES_INC, S1_INC, H1_INC, S2_INC, H2_INC, BR_INC, _______, _______, _______, _______, _______, QK_BOOT,
- _______, EF_DEC, ES_DEC, S1_DEC, H1_DEC, S2_DEC, H2_DEC, BR_DEC, _______, _______, _______, _______, KC_MAKE,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, TG(_DEFAULT))
-};
-
-// Backlight specific keys:
-// EF_INC, EF_DEC, // next/previous backlight effect
-// H1_INC, H1_DEC, // Color 1 hue increase/decrease
-// S1_INC, S1_DEC, // Color 1 saturation increase/decrease
-// H2_INC, H2_DEC, // Color 2 hue increase/decrease
-// S2_INC, S2_DEC, // Color 2 saturation increase/decrease
-// BR_INC, BR_DEC, // backlight brightness increase/decrease
-
-bool process_record_keymap(uint16_t keycode, keyrecord_t *record) {
- return true;
-}
diff --git a/keyboards/hs60/v2/ansi/keymaps/stanrc85/readme.md b/keyboards/hs60/v2/ansi/keymaps/stanrc85/readme.md
deleted file mode 100644
index 430d363f37..0000000000
--- a/keyboards/hs60/v2/ansi/keymaps/stanrc85/readme.md
+++ /dev/null
@@ -1,48 +0,0 @@
-<!-- Copyright 2019 Stanrc85
-
-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/>.-->
-
-# Stanrc85's Standard ANSI 60% Layout
-
-## Keymap Notes
-- Layer 0 is default QWERTY layout with additional custom features:
- - SpaceFN to function layer 2 on `Space`
- - `CTRL` when held and `ESC` when tapped on `CAPS LOCK`
- - Tap Dance on `Fn1` for `CTRL+ALT+DEL` and `WIN+L`
- - Tap Dance on `ESC` for `ESC` and ` ` `
-
-![Base QWERTY Layer](https://imgur.com/lGcyLJx.png)
-
-- Layer 1 is default QWERTY with no custom features used mostly for gaming
- - Enabled by `Fn2+CAPS` from base layer
-
-![Default ANSI Layer](https://imgur.com/M7T9PNT.png)
-
-- Layer 2 is Function layer:
- - F keys
- - Arrows
- - Volume and Media controls
- - AutoHotkey shortcuts based on [Speaker Control](https://github.com/stanrc85/Speaker-Control) script
- - AHK Mic is used to mute/unmute microphone
- - AHK Speaker switches audio output between headphones and speakers
-
-![Function Layer](https://imgur.com/YPl0JrU.png)
-
-- Layer 3 is Backlight control and RESET
- - `Fn2+CAPS` used to toggle Default QWERTY layer on and off
-
-![RGB and RESET Layer](https://imgur.com/mMHoJPa.png)
-
-### Build
-To build the firmware file associated with this keymap, simply run `make your_keyboard:stanrc85`.
diff --git a/keyboards/hs60/v2/ansi/rules.mk b/keyboards/hs60/v2/ansi/rules.mk
index a231765dff..bc8cb00131 100644
--- a/keyboards/hs60/v2/ansi/rules.mk
+++ b/keyboards/hs60/v2/ansi/rules.mk
@@ -22,5 +22,5 @@ CIE1931_CURVE = yes
SRC = keyboards/wilba_tech/wt_main.c \
keyboards/wilba_tech/wt_rgb_backlight.c \
drivers/led/issi/is31fl3733.c \
- quantum/color.c \
- i2c_master.c
+ quantum/color.c
+I2C_DRIVER_REQUIRED = yes
diff --git a/keyboards/hs60/v2/hhkb/config.h b/keyboards/hs60/v2/hhkb/config.h
index e834616068..6a6fa375bc 100644
--- a/keyboards/hs60/v2/hhkb/config.h
+++ b/keyboards/hs60/v2/hhkb/config.h
@@ -53,8 +53,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define RGB_BACKLIGHT_COLOR_1 { .h = 0, .s = 255 }
#define RGB_BACKLIGHT_COLOR_2 { .h = 127, .s = 255 }
-#define DRIVER_COUNT 2
-#define RGB_MATRIX_LED_COUNT 64
+#define IS31FL3733_I2C_ADDRESS_1 IS31FL3733_I2C_ADDRESS_GND_GND
+#define IS31FL3733_LED_COUNT 64
// These define which keys in the matrix are alphas/mods
// Used for backlight effects so colors are different for
diff --git a/keyboards/hs60/v2/hhkb/rules.mk b/keyboards/hs60/v2/hhkb/rules.mk
index a231765dff..bc8cb00131 100644
--- a/keyboards/hs60/v2/hhkb/rules.mk
+++ b/keyboards/hs60/v2/hhkb/rules.mk
@@ -22,5 +22,5 @@ CIE1931_CURVE = yes
SRC = keyboards/wilba_tech/wt_main.c \
keyboards/wilba_tech/wt_rgb_backlight.c \
drivers/led/issi/is31fl3733.c \
- quantum/color.c \
- i2c_master.c
+ quantum/color.c
+I2C_DRIVER_REQUIRED = yes
diff --git a/keyboards/hs60/v2/iso/config.h b/keyboards/hs60/v2/iso/config.h
index 7421f1bf12..5f1a55b1d1 100644
--- a/keyboards/hs60/v2/iso/config.h
+++ b/keyboards/hs60/v2/iso/config.h
@@ -50,8 +50,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define RGB_BACKLIGHT_COLOR_1 { .h = 0, .s = 255 }
#define RGB_BACKLIGHT_COLOR_2 { .h = 127, .s = 255 }
-#define DRIVER_COUNT 2
-#define RGB_MATRIX_LED_COUNT 64
+#define IS31FL3733_I2C_ADDRESS_1 IS31FL3733_I2C_ADDRESS_GND_GND
+#define IS31FL3733_LED_COUNT 64
// These define which keys in the matrix are alphas/mods
// Used for backlight effects so colors are different for
diff --git a/keyboards/hs60/v2/iso/rules.mk b/keyboards/hs60/v2/iso/rules.mk
index a231765dff..bc8cb00131 100644
--- a/keyboards/hs60/v2/iso/rules.mk
+++ b/keyboards/hs60/v2/iso/rules.mk
@@ -22,5 +22,5 @@ CIE1931_CURVE = yes
SRC = keyboards/wilba_tech/wt_main.c \
keyboards/wilba_tech/wt_rgb_backlight.c \
drivers/led/issi/is31fl3733.c \
- quantum/color.c \
- i2c_master.c
+ quantum/color.c
+I2C_DRIVER_REQUIRED = yes
diff --git a/keyboards/hs60/v2/v2.c b/keyboards/hs60/v2/v2.c
index f817ef19e7..45b1f54d5f 100644
--- a/keyboards/hs60/v2/v2.c
+++ b/keyboards/hs60/v2/v2.c
@@ -15,5 +15,82 @@
*/
#ifndef RGB_BACKLIGHT_HS60
-#error RGB_BACKLIGHT_HS60 not defined, recheck config.h
+# error RGB_BACKLIGHT_HS60 not defined, recheck config.h
+#else
+# include "drivers/led/issi/is31fl3733.h"
+#endif
+
+#if defined(RGB_MATRIX_ENABLE) || defined(RGB_BACKLIGHT_HS60)
+const is31fl3733_led_t PROGMEM g_is31fl3733_leds[IS31FL3733_LED_COUNT] = {
+/* Refer to IS31 manual for these locations
+ * driver
+ * | R location
+ * | | G location
+ * | | | B location
+ * | | | | */
+ {0, B_1, A_1, C_1}, //LA1
+ {0, E_1, D_1, F_1}, //LA2
+ {0, H_1, G_1, I_1}, //LA3
+ {0, K_1, J_1, L_1}, //LA4
+ {0, B_2, A_2, C_2}, //LA5
+ {0, E_2, D_2, F_2}, //LA6
+ {0, H_2, G_2, I_2}, //LA7
+ {0, K_2, J_2, L_2}, //LA8
+ {0, B_3, A_3, C_3}, //LA9
+ {0, E_3, D_3, F_3}, //LA10
+ {0, H_3, G_3, I_3}, //LA11
+ {0, K_3, J_3, L_3}, //LA12
+ {0, B_4, A_4, C_4}, //LA13
+ {0, E_4, D_4, F_4}, //LA14
+ {0, H_4, G_4, I_4}, //LA15
+ {0, K_4, J_4, L_4}, //LA16
+ {0, B_5, A_5, C_5}, //LA17
+ {0, E_5, D_5, F_5}, //LA18
+ {0, H_5, G_5, I_5}, //LA19
+ {0, K_5, J_5, L_5}, //LA20
+ {0, B_6, A_6, C_6}, //LA21
+ {0, E_6, D_6, F_6}, //LA22
+ {0, H_6, G_6, I_6}, //LA23
+ {0, K_6, J_6, L_6}, //LA24
+ {0, B_7, A_7, C_7}, //LA25
+ {0, E_7, D_7, F_7}, //LA26
+ {0, H_7, G_7, I_7}, //LA27
+ {0, K_7, J_7, L_7}, //LA28
+ {0, B_8, A_8, C_8}, //LA29
+ {0, E_8, D_8, F_8}, //LA30
+ {0, H_8, G_8, I_8}, //LA31
+ {0, K_8, J_8, L_8}, //LA32
+ {0, B_9, A_9, C_9}, //LA33
+ {0, E_9, D_9, F_9}, //LA34
+ {0, H_9, G_9, I_9}, //LA35
+ {0, K_9, J_9, L_9}, //LA36
+ {0, B_10, A_10, C_10}, //LA37
+ {0, E_10, D_10, F_10}, //LA38
+ {0, H_10, G_10, I_10}, //LA39
+ {0, K_10, J_10, L_10}, //LA40
+ {0, B_11, A_11, C_11}, //LA41
+ {0, E_11, D_11, F_11}, //LA42
+ {0, H_11, G_11, I_11}, //LA43
+ {0, K_11, J_11, L_11}, //LA44
+ {0, B_12, A_12, C_12}, //LA45
+ {0, E_12, D_12, F_12}, //LA46
+ {0, H_12, G_12, I_12}, //LA47
+ {0, K_12, J_12, L_12}, //LA48
+ {0, B_13, A_13, C_13}, //LA49
+ {0, E_13, D_13, F_13}, //LA50
+ {0, H_13, G_13, I_13}, //LA51
+ {0, K_13, J_13, L_13}, //LA52
+ {0, B_14, A_14, C_14}, //LA53
+ {0, E_14, D_14, F_14}, //LA54
+ {0, H_14, G_14, I_14}, //LA55
+ {0, K_14, J_14, L_14}, //LA56
+ {0, B_15, A_15, C_15}, //LA57
+ {0, E_15, D_15, F_15}, //LA58
+ {0, H_15, G_15, I_15}, //LA59
+ {0, K_15, J_15, L_15}, //LA60
+ {0, B_16, A_16, C_16}, //LA61
+ {0, E_16, D_16, F_16}, //LA62
+ {0, H_16, G_16, I_16}, //LA63
+ {0, K_16, J_16, L_16}, //LA64
+};
#endif
diff --git a/keyboards/ibm/model_m/mschwingen/mschwingen.c b/keyboards/ibm/model_m/mschwingen/mschwingen.c
index b764660e21..8e3810cd23 100644
--- a/keyboards/ibm/model_m/mschwingen/mschwingen.c
+++ b/keyboards/ibm/model_m/mschwingen/mschwingen.c
@@ -39,26 +39,26 @@ static uint8_t isRecording = 0;
# if RGBLED_NUM < 3
# error we need at least 3 RGB LEDs!
# endif
-static cRGB led[RGBLED_NUM] = {{255, 255, 255}, {255, 255, 255}, {255, 255, 255}};
+static rgb_led_t led[RGBLED_NUM] = {{255, 255, 255}, {255, 255, 255}, {255, 255, 255}};
# define BRIGHT 32
# define DIM 6
-static const cRGB black = {.r = 0, .g = 0, .b = 0};
+static const rgb_led_t black = {.r = 0, .g = 0, .b = 0};
-static const __attribute__((unused)) cRGB green = {.r = 0, .g = BRIGHT, .b = 0};
-static const __attribute__((unused)) cRGB lgreen = {.r = 0, .g = DIM, .b = 0};
+static const __attribute__((unused)) rgb_led_t green = {.r = 0, .g = BRIGHT, .b = 0};
+static const __attribute__((unused)) rgb_led_t lgreen = {.r = 0, .g = DIM, .b = 0};
-static const __attribute__((unused)) cRGB red = {.r = BRIGHT, .g = 0, .b = 0};
-static const __attribute__((unused)) cRGB lred = {.r = DIM, .g = 0, .b = 0};
+static const __attribute__((unused)) rgb_led_t red = {.r = BRIGHT, .g = 0, .b = 0};
+static const __attribute__((unused)) rgb_led_t lred = {.r = DIM, .g = 0, .b = 0};
-static const __attribute__((unused)) cRGB blue = {.r = 0, .g = 0, .b = BRIGHT};
-static const __attribute__((unused)) cRGB lblue = {.r = 0, .g = 0, .b = DIM};
+static const __attribute__((unused)) rgb_led_t blue = {.r = 0, .g = 0, .b = BRIGHT};
+static const __attribute__((unused)) rgb_led_t lblue = {.r = 0, .g = 0, .b = DIM};
-static const __attribute__((unused)) cRGB turq = {.r = 0, .g = BRIGHT, .b = BRIGHT};
-static const __attribute__((unused)) cRGB lturq = {.r = 0, .g = DIM, .b = DIM};
+static const __attribute__((unused)) rgb_led_t turq = {.r = 0, .g = BRIGHT, .b = BRIGHT};
+static const __attribute__((unused)) rgb_led_t lturq = {.r = 0, .g = DIM, .b = DIM};
-static const __attribute__((unused)) cRGB white = {.r = BRIGHT, .g = BRIGHT, .b = BRIGHT};
+static const __attribute__((unused)) rgb_led_t white = {.r = BRIGHT, .g = BRIGHT, .b = BRIGHT};
static led_t led_state;
static uint8_t layer;
diff --git a/keyboards/ibm/model_m/mschwingen/rules.mk b/keyboards/ibm/model_m/mschwingen/rules.mk
index 5ccab87d9b..7d81ffe326 100644
--- a/keyboards/ibm/model_m/mschwingen/rules.mk
+++ b/keyboards/ibm/model_m/mschwingen/rules.mk
@@ -19,8 +19,8 @@ DYNAMIC_MACRO_ENABLE = yes
UART_DEBUG = no
SRC += matrix.c
-QUANTUM_LIB_SRC += uart.c \
- spi_master.c
+UART_DRIVER_REQUIRED = yes
+SPI_DRIVER_REQUIRED = yes
OPT_DEFS += -DSLEEP_LED_ENABLE # we need our own sleep callbacks to turn of WS2812 LEDs
diff --git a/keyboards/ibm/model_m/yugo_m/config.h b/keyboards/ibm/model_m/yugo_m/config.h
index 2b7fc4d157..0e6881ded3 100644
--- a/keyboards/ibm/model_m/yugo_m/config.h
+++ b/keyboards/ibm/model_m/yugo_m/config.h
@@ -36,7 +36,3 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-
-/* redefine available (emulated) EEPROM as 4 kB rather than the default 2 kB to let VIA use more of the on-chip Flash of the STM32F303 to store 4 layers (since 4 layers * 8 rows * 16 columns * 2 = 1024 bytes but the default max available is 1023 bytes due to ATMEGA32U4 etc. only having 1 kB of EEPROM) */
-#define WEAR_LEVELING_BACKING_SIZE 4096
-#define WEAR_LEVELING_LOGICAL_SIZE 2048
diff --git a/keyboards/ibm/model_m/yugo_m/info.json b/keyboards/ibm/model_m/yugo_m/info.json
index 6e3a0b39c6..f4d9cc1d94 100644
--- a/keyboards/ibm/model_m/yugo_m/info.json
+++ b/keyboards/ibm/model_m/yugo_m/info.json
@@ -13,6 +13,11 @@
"rows": ["B8", "B7", "B6", "B5", "B4", "B3", "A15", "A14"]
},
"diode_direction": "ROW2COL",
+ "eeprom": {
+ "wear_leveling": {
+ "backing_size": 4096
+ }
+ },
"processor": "STM32F303",
"bootloader": "stm32-dfu",
"board": "QMK_PROTON_C",
diff --git a/keyboards/idobao/id80/v2/ansi/keymaps/rverst/keymap.c b/keyboards/idobao/id80/v2/ansi/keymaps/rverst/keymap.c
deleted file mode 100644
index 595e76cbb3..0000000000
--- a/keyboards/idobao/id80/v2/ansi/keymaps/rverst/keymap.c
+++ /dev/null
@@ -1,80 +0,0 @@
-/* Copyright 2021 Robert Verst <robert@verst.eu> @rverst
- *
- * 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 "rverst.h"
-
-//#define CLOSED_CASE // no underglow RGB visible
-
-// clang-format off
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [0] = LAYOUT_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 , MO(4) , 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_PGUP,
- KC_TAB , KC_Q , KC_W , KC_E , KC_R , KC_T , KC_Y , KC_U , KC_I , KC_O , KC_P , KC_LBRC, KC_RBRC, KC_BSLS, KC_PGDN,
- KC_ESC , 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_LALT, KC_LGUI, KC_SPC , OSL(1) , KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
- ),
- [1] = LAYOUT_ansi(
- RV_SNAP, KC_F13 , KC_F14 , KC_F15 , KC_F16 , KC_F17 , KC_F18 , KC_F19 , KC_F20 , KC_F21 , KC_F22 , KC_F23 , KC_F24 , KC_TRNS, KC_MUTE,
- RV_DEG , RV_SUP1, RV_SUP2, RV_SUP3, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RV_UNEQ, RV_PM , KC_TRNS, KC_VOLU,
- KC_TRNS, KC_TRNS, KC_TRNS, RV_EUR , RV_RT , RV_TM , KC_TRNS, RV_UUML, KC_TRNS, RV_OUML, KC_TRNS, RV_VDEC, RV_VINC, RV_SEQU, KC_VOLD,
- KC_CAPS, RV_AUML, RV_SZ , KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RV_LOCK, KC_TRNS, RV_SINC, KC_PENT,
- KC_TRNS, KC_TRNS, KC_TRNS, RV_CC , KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RV_SDEC, KC_TRNS, KC_MSTP,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_RGUI, KC_MPRV, KC_MPLY, KC_MNXT
- ),
- [2] = LAYOUT_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_TRNS, MO(4) , KC_MUTE,
- 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_VOLU,
- 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_VOLD,
- KC_ESC , 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_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_LCTL, KC_LALT, KC_LGUI, KC_SPC , OSL(3) , KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
- ),
- [3] = LAYOUT_ansi(
- RV_SNAP, KC_F13 , KC_F14 , KC_F15 , KC_F16 , KC_F17 , KC_F18 , KC_F19 , KC_F20 , KC_F21 , KC_F22 , KC_F23 , KC_F24 , KC_TRNS, KC_MUTE,
- RV_DEG , RV_SUP1, RV_SUP2, RV_SUP3, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RV_UNEQ, RV_PM , KC_TRNS, KC_VOLU,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RV_LOCK, RV_UUML, KC_TRNS, KC_TRNS, RV_VDEC, RV_VINC, RV_SEQU, KC_VOLD,
- KC_CAPS, RV_AUML, RV_RT , RV_SZ , RV_TM , KC_TRNS, KC_TRNS, KC_TRNS, RV_EUR , KC_TRNS, RV_OUML, RV_SINC, KC_PENT,
- KC_TRNS, KC_TRNS, KC_TRNS, RV_CC , KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RV_SDEC, KC_TRNS, KC_MSTP,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_RGUI, KC_MPRV, KC_MPLY, KC_MNXT
- ),
- [4] = LAYOUT_ansi(
- DB_TOGG, RV_SM0 , RV_SM1 , RV_SM2 , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , DF(0) , DF(2) , KC_TRNS, MO(5) ,
- RV_SAYM, RV_SM3 , RV_SM4 , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO ,
- KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO ,
- KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO ,
- KC_TRNS, RGB_HUI, RGB_SAI, RGB_VAI, KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , RGB_TOG,
- KC_NO , KC_NO , GUI_ON , KC_NO , KC_NO , RCG_SWP, RGB_RMOD,RGB_M_P, RGB_MOD
- ),
- [5] = LAYOUT_ansi(
- QK_BOOT, RV_SM0S, RV_SM1S, RV_SM2S, KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_TRNS,
- KC_NO , RV_SM3S, RV_SM4S, KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO ,
- KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO ,
- KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO ,
- KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO ,
- KC_NO , KC_NO , GUI_OFF, KC_NO , KC_NO , RCG_NRM, KC_NO , KC_NO , KC_NO
- )
-};
-// clang-format on
-
-void keyboard_post_init_keymap(void) {
-#ifdef CLOSED_CASE
- if (rgblight_is_enabled()) {
- rgblight_disable();
- }
-#endif
-}
diff --git a/keyboards/idobao/id80/v2/ansi/keymaps/rverst/readme.md b/keyboards/idobao/id80/v2/ansi/keymaps/rverst/readme.md
deleted file mode 100644
index 66dd2b5287..0000000000
--- a/keyboards/idobao/id80/v2/ansi/keymaps/rverst/readme.md
+++ /dev/null
@@ -1,23 +0,0 @@
-# IDOBAO ID80
-
-This is my layout for the IDOBAO ID80. It depends of my [user files](../../../../users/rverst)
-and the main goal is to give an convenient and unified access to some special keys
-(umlauts, ß, €) for different operating systems (Mac, Windows and Linux).
-
-## Overview
-
-- Layer 0 is the base US-ANSI layout with Mac-style system keys and a OSL-Key for Layer 1 right of the space bar.
-- Layer 1 has the special keys and some media-functions like mute, volume up/down etc.
-- Layer 2 and 3 are basically the same as Layer 0 and 1 but in Colemak-Layout
-- Layer 4 and 5 has some functions like switching the keyboard mode, switching the default layer etc.
-
-
-## Keyboard modes
-
-- *F1:* Mac Unicode mode (use 'Unicode Hex Input' as input source)
-- *F2:* Windows Unicode mode (use [WinCompse](https://github.com/SamHocevar/wincompose) software)
-- *F3:* Linux Unicode mode (not tested yet but should work out of the box)
-- *1:* Mac legacy mode (uses option-sequences, e.g. `<option>+u a` for an `ä`), if I'm not able to set the input source
-- *2:* Windows legacy mode (uses altgr-sequences e.g. `<altgr>+0228` for an `ä`, if I'm not able to use WinCompose)
-
-Layer 4 to switch the modes temporary, layer 5 to switch and save to eeprom.
diff --git a/keyboards/idobao/id80/v2/ansi/keymaps/rverst/rverst.json b/keyboards/idobao/id80/v2/ansi/keymaps/rverst/rverst.json
deleted file mode 100644
index d37aef89aa..0000000000
--- a/keyboards/idobao/id80/v2/ansi/keymaps/rverst/rverst.json
+++ /dev/null
@@ -1,499 +0,0 @@
-{
- "keyboard": "ID80",
- "keymap": "rverst",
- "layout": "LAYOUT_ansi",
- "layers": [
- [
- "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",
- "MO(4)",
- "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_PGUP",
- "KC_TAB",
- "KC_Q",
- "KC_W",
- "KC_E",
- "KC_R",
- "KC_T",
- "KC_Y",
- "KC_U",
- "KC_I",
- "KC_O",
- "KC_P",
- "KC_LBRC",
- "KC_RBRC",
- "KC_BSLS",
- "KC_PGDN",
- "KC_ESC",
- "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_LALT",
- "KC_LGUI",
- "KC_SPC",
- "OSL(1)",
- "KC_RCTL",
- "KC_LEFT",
- "KC_DOWN",
- "KC_RGHT"
- ],
- [
- "RV_SNAP",
- "KC_F13",
- "KC_F14",
- "KC_F15",
- "KC_F16",
- "KC_F17",
- "KC_F18",
- "KC_F19",
- "KC_F20",
- "KC_F21",
- "KC_F22",
- "KC_F23",
- "KC_F24",
- "KC_TRNS",
- "KC_MUTE",
- "RV_DEG",
- "RV_SUP1",
- "RV_SUP2",
- "RV_SUP3",
- "KC_TRNS",
- "KC_TRNS",
- "KC_TRNS",
- "KC_TRNS",
- "KC_TRNS",
- "KC_TRNS",
- "KC_TRNS",
- "RV_UNEQ",
- "RV_PM",
- "KC_TRNS",
- "KC_VOLU",
- "KC_TRNS",
- "KC_TRNS",
- "KC_TRNS",
- "RV_EUR",
- "RV_RT",
- "RV_TM",
- "KC_TRNS",
- "RV_UUML",
- "KC_TRNS",
- "RV_OUML",
- "KC_TRNS",
- "RV_VDEC",
- "RV_VINC",
- "RV_SEQU",
- "KC_VOLD",
- "KC_CAPS",
- "RV_AUML",
- "RV_SZ",
- "KC_TRNS",
- "KC_TRNS",
- "KC_TRNS",
- "KC_TRNS",
- "KC_TRNS",
- "KC_TRNS",
- "RV_LOCK",
- "KC_TRNS",
- "RV_SINC",
- "KC_PENT",
- "KC_TRNS",
- "KC_TRNS",
- "KC_TRNS",
- "RV_CC",
- "KC_TRNS",
- "KC_TRNS",
- "KC_TRNS",
- "KC_TRNS",
- "KC_TRNS",
- "KC_PDOT",
- "RV_SDEC",
- "KC_TRNS",
- "KC_MSTP",
- "KC_TRNS",
- "KC_TRNS",
- "KC_TRNS",
- "KC_TRNS",
- "KC_TRNS",
- "KC_RGUI",
- "KC_MPRV",
- "KC_MPLY",
- "KC_MNXT"
- ],
- [
- "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_TRNS",
- "MO(4)",
- "KC_MUTE",
- "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_VOLU",
- "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_VOLD",
- "KC_ESC",
- "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_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_LCTL",
- "KC_LALT",
- "KC_LGUI",
- "KC_SPC",
- "OSL(3)",
- "KC_RCTL",
- "KC_LEFT",
- "KC_DOWN",
- "KC_RGHT"
- ],
- [
- "RV_SNAP",
- "KC_F13",
- "KC_F14",
- "KC_F15",
- "KC_F16",
- "KC_F17",
- "KC_F18",
- "KC_F19",
- "KC_F20",
- "KC_F21",
- "KC_F22",
- "KC_F23",
- "KC_F24",
- "KC_TRNS",
- "KC_MUTE",
- "RV_DEG",
- "RV_SUP1",
- "RV_SUP2",
- "RV_SUP3",
- "KC_TRNS",
- "KC_TRNS",
- "KC_TRNS",
- "KC_TRNS",
- "KC_TRNS",
- "KC_TRNS",
- "KC_TRNS",
- "RV_UNEQ",
- "RV_PM",
- "KC_TRNS",
- "KC_VOLU",
- "KC_TRNS",
- "KC_TRNS",
- "KC_TRNS",
- "KC_TRNS",
- "KC_TRNS",
- "KC_TRNS",
- "KC_TRNS",
- "RV_LOCK",
- "RV_UUML",
- "KC_TRNS",
- "KC_TRNS",
- "RV_VDEC",
- "RV_VINC",
- "RV_SEQU",
- "KC_VOLD",
- "KC_CAPS",
- "RV_AUML",
- "RV_RT",
- "RV_SZ",
- "RV_TM",
- "KC_TRNS",
- "KC_TRNS",
- "KC_TRNS",
- "RV_EUR",
- "KC_TRNS",
- "RV_OUML",
- "RV_SINC",
- "KC_PENT",
- "KC_TRNS",
- "KC_TRNS",
- "KC_TRNS",
- "RV_CC",
- "KC_TRNS",
- "KC_TRNS",
- "KC_TRNS",
- "KC_TRNS",
- "KC_TRNS",
- "KC_PDOT",
- "RV_SDEC",
- "KC_TRNS",
- "KC_MSTP",
- "KC_TRNS",
- "KC_TRNS",
- "KC_TRNS",
- "KC_TRNS",
- "KC_TRNS",
- "KC_RGUI",
- "KC_MPRV",
- "KC_MPLY",
- "KC_MNXT"
- ],
- [
- "EE_CLR",
- "RV_SM0",
- "RV_SM1",
- "RV_SM2",
- "KC_NO",
- "KC_NO",
- "KC_NO",
- "KC_NO",
- "KC_NO",
- "KC_NO",
- "KC_NO",
- "DF(0)",
- "DF(2)",
- "KC_TRNS",
- "MO(5)",
- "RV_SAYM",
- "RV_SM3",
- "RV_SM4",
- "KC_NO",
- "KC_NO",
- "KC_NO",
- "KC_NO",
- "KC_NO",
- "KC_NO",
- "KC_NO",
- "KC_NO",
- "KC_NO",
- "KC_NO",
- "KC_NO",
- "KC_NO",
- "KC_NO",
- "KC_NO",
- "KC_NO",
- "KC_NO",
- "KC_NO",
- "KC_NO",
- "KC_NO",
- "KC_NO",
- "KC_NO",
- "KC_NO",
- "KC_NO",
- "KC_NO",
- "KC_NO",
- "KC_NO",
- "KC_NO",
- "KC_NO",
- "KC_NO",
- "KC_NO",
- "KC_NO",
- "KC_NO",
- "KC_NO",
- "KC_NO",
- "KC_NO",
- "KC_NO",
- "KC_NO",
- "KC_NO",
- "KC_NO",
- "KC_NO",
- "KC_TRNS",
- "RGB_HUI",
- "RGB_SAI",
- "RGB_VAI",
- "KC_NO",
- "KC_NO",
- "KC_NO",
- "KC_NO",
- "KC_NO",
- "KC_NO",
- "KC_NO",
- "KC_NO",
- "RGB_TOG",
- "KC_NO",
- "KC_NO",
- "GUI_ON",
- "KC_NO",
- "KC_NO",
- "RCG_SWP",
- "RGB_RMOD",
- "RGB_M_P",
- "RGB_MOD"
- ],
- [
- "QK_BOOT",
- "RV_SM0S",
- "RV_SM1S",
- "RV_SM2S",
- "KC_NO",
- "KC_NO",
- "KC_NO",
- "KC_NO",
- "KC_NO",
- "KC_NO",
- "KC_NO",
- "KC_NO",
- "KC_NO",
- "KC_NO",
- "KC_TRNS",
- "KC_NO",
- "RV_SM3S",
- "RV_SM4S",
- "KC_NO",
- "KC_NO",
- "KC_NO",
- "KC_NO",
- "KC_NO",
- "KC_NO",
- "KC_NO",
- "KC_NO",
- "KC_NO",
- "KC_NO",
- "KC_NO",
- "KC_NO",
- "KC_NO",
- "KC_NO",
- "KC_NO",
- "KC_NO",
- "KC_NO",
- "KC_NO",
- "KC_NO",
- "KC_NO",
- "KC_NO",
- "KC_NO",
- "KC_NO",
- "KC_NO",
- "KC_NO",
- "KC_NO",
- "KC_NO",
- "KC_NO",
- "KC_NO",
- "KC_NO",
- "KC_NO",
- "KC_NO",
- "KC_NO",
- "KC_NO",
- "KC_NO",
- "KC_NO",
- "KC_NO",
- "KC_NO",
- "KC_NO",
- "KC_NO",
- "KC_NO",
- "KC_NO",
- "KC_NO",
- "KC_NO",
- "KC_NO",
- "KC_NO",
- "KC_NO",
- "KC_NO",
- "KC_NO",
- "KC_NO",
- "KC_NO",
- "KC_NO",
- "KC_NO",
- "KC_NO",
- "KC_NO",
- "GUI_OFF",
- "KC_NO",
- "KC_NO",
- "RCG_NRM",
- "KC_NO",
- "KC_NO",
- "KC_NO"
- ]
- ]
-}
diff --git a/keyboards/idyllic/tinny50_rgb/config.h b/keyboards/idyllic/tinny50_rgb/config.h
index 15e1a6ff5c..0cb5eac432 100644
--- a/keyboards/idyllic/tinny50_rgb/config.h
+++ b/keyboards/idyllic/tinny50_rgb/config.h
@@ -17,9 +17,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#pragma once
-
-#define DYNAMIC_KEYMAP_LAYER_COUNT 6
-
#ifdef RGB_MATRIX_ENABLE
#define RGB_MATRIX_MAXIMUM_BRIGHTNESS 255
#define RGB_MATRIX_STARTUP_VAL RGB_MATRIX_MAXIMUM_BRIGHTNESS * 7/8
diff --git a/keyboards/idyllic/tinny50_rgb/info.json b/keyboards/idyllic/tinny50_rgb/info.json
index f02e88f459..7e68b960f5 100644
--- a/keyboards/idyllic/tinny50_rgb/info.json
+++ b/keyboards/idyllic/tinny50_rgb/info.json
@@ -22,6 +22,9 @@
"rgb_matrix": true
},
"diode_direction": "COL2ROW",
+ "dynamic_keymap": {
+ "layer_count": 6
+ },
"matrix_pins": {
"rows": ["GP0", "GP2", "GP3", "GP4", "GP7"],
"cols": ["GP29", "GP28", "GP27", "GP26", "GP25", "GP24", "GP23", "GP20", "GP19", "GP1", "GP6", "GP5"]
diff --git a/keyboards/ilumkb/simpler61/config.h b/keyboards/ilumkb/simpler61/config.h
index 151eba96c9..7978b495de 100644
--- a/keyboards/ilumkb/simpler61/config.h
+++ b/keyboards/ilumkb/simpler61/config.h
@@ -21,8 +21,7 @@
#define RGB_MATRIX_LED_PROCESS_LIMIT 4
#define RGB_MATRIX_LED_FLUSH_LIMIT 26
#define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_CYCLE_ALL
-#define DRIVER_ADDR_1 0b0110000
-#define DRIVER_COUNT 1
+#define IS31FL3741_I2C_ADDRESS_1 IS31FL3741_I2C_ADDRESS_GND
#define DRIVER_1_LED_TOTAL 61
#define RGB_MATRIX_LED_COUNT DRIVER_1_LED_TOTAL
#define DRIVER_INDICATOR_LED_TOTAL 0
diff --git a/keyboards/ilumkb/simpler61/simpler61.c b/keyboards/ilumkb/simpler61/simpler61.c
index 32670396da..f29f05defe 100644
--- a/keyboards/ilumkb/simpler61/simpler61.c
+++ b/keyboards/ilumkb/simpler61/simpler61.c
@@ -17,7 +17,7 @@
#include "quantum.h"
#ifdef RGB_MATRIX_ENABLE
-const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = {
+const is31fl3741_led_t PROGMEM g_is31fl3741_leds[RGB_MATRIX_LED_COUNT] = {
{0, CS3_SW1, CS2_SW1, CS1_SW1},
{0, CS3_SW2, CS2_SW2, CS1_SW2},
{0, CS3_SW3, CS2_SW3, CS1_SW3},
diff --git a/keyboards/ilumkb/simpler64/config.h b/keyboards/ilumkb/simpler64/config.h
index 5554f56bd1..09dc7dc80f 100644
--- a/keyboards/ilumkb/simpler64/config.h
+++ b/keyboards/ilumkb/simpler64/config.h
@@ -21,8 +21,7 @@
#define RGB_MATRIX_LED_PROCESS_LIMIT 4
#define RGB_MATRIX_LED_FLUSH_LIMIT 26
#define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_CYCLE_ALL
-#define DRIVER_ADDR_1 0b0110000
-#define DRIVER_COUNT 1
+#define IS31FL3741_I2C_ADDRESS_1 IS31FL3741_I2C_ADDRESS_GND
#define DRIVER_1_LED_TOTAL 64
#define RGB_MATRIX_LED_COUNT DRIVER_1_LED_TOTAL
#define DRIVER_INDICATOR_LED_TOTAL 0
diff --git a/keyboards/ilumkb/simpler64/simpler64.c b/keyboards/ilumkb/simpler64/simpler64.c
index 130898f037..a562fa5c8b 100644
--- a/keyboards/ilumkb/simpler64/simpler64.c
+++ b/keyboards/ilumkb/simpler64/simpler64.c
@@ -17,7 +17,7 @@
#include "quantum.h"
#ifdef RGB_MATRIX_ENABLE
-const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = {
+const is31fl3741_led_t PROGMEM g_is31fl3741_leds[RGB_MATRIX_LED_COUNT] = {
{0, CS3_SW1, CS2_SW1, CS1_SW1},
{0, CS3_SW2, CS2_SW2, CS1_SW2},
{0, CS3_SW3, CS2_SW3, CS1_SW3},
diff --git a/keyboards/inett_studio/sqx/hotswap/config.h b/keyboards/inett_studio/sqx/hotswap/config.h
index f698867ffb..a53a2132fa 100644
--- a/keyboards/inett_studio/sqx/hotswap/config.h
+++ b/keyboards/inett_studio/sqx/hotswap/config.h
@@ -32,9 +32,8 @@
//rgb matrix setting
#define DRIVER_1_LED_TOTAL 33
#define DRIVER_2_LED_TOTAL 31
-#define DRIVER_ADDR_1 0b1110100
-#define DRIVER_ADDR_2 0b1110111
-#define DRIVER_COUNT 2
+#define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND
+#define IS31FL3731_I2C_ADDRESS_2 IS31FL3731_I2C_ADDRESS_VCC
#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL)
#if defined(RGB_MATRIX_ENABLE) && defined(RGBLIGHT_ENABLE)
diff --git a/keyboards/inett_studio/sqx/hotswap/hotswap.c b/keyboards/inett_studio/sqx/hotswap/hotswap.c
index 7f5e298c4c..4d77a4829e 100644
--- a/keyboards/inett_studio/sqx/hotswap/hotswap.c
+++ b/keyboards/inett_studio/sqx/hotswap/hotswap.c
@@ -20,7 +20,7 @@
#include "hotswap.h"
#ifdef RGB_MATRIX_ENABLE
-const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = {
+const is31fl3731_led_t PROGMEM g_is31fl3731_leds[RGB_MATRIX_LED_COUNT] = {
/* Refer to IS31 manual for these locations
* driver
* | R location
diff --git a/keyboards/inett_studio/sqx/universal/config.h b/keyboards/inett_studio/sqx/universal/config.h
index 30903b5803..dd123bd7a9 100644
--- a/keyboards/inett_studio/sqx/universal/config.h
+++ b/keyboards/inett_studio/sqx/universal/config.h
@@ -32,9 +32,8 @@
//rgb matrix setting
#define DRIVER_1_LED_TOTAL 36
#define DRIVER_2_LED_TOTAL 36
-#define DRIVER_ADDR_1 0b1110100
-#define DRIVER_ADDR_2 0b1110111
-#define DRIVER_COUNT 2
+#define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND
+#define IS31FL3731_I2C_ADDRESS_2 IS31FL3731_I2C_ADDRESS_VCC
#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL)
#if defined(RGB_MATRIX_ENABLE) && defined(RGBLIGHT_ENABLE)
diff --git a/keyboards/inett_studio/sqx/universal/universal.c b/keyboards/inett_studio/sqx/universal/universal.c
index 9715f28b78..3ba42e9995 100644
--- a/keyboards/inett_studio/sqx/universal/universal.c
+++ b/keyboards/inett_studio/sqx/universal/universal.c
@@ -20,7 +20,7 @@
#include "universal.h"
#ifdef RGB_MATRIX_ENABLE
-const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = {
+const is31fl3731_led_t PROGMEM g_is31fl3731_leds[RGB_MATRIX_LED_COUNT] = {
/* Refer to IS31 manual for these locations
* driver
* | R location
diff --git a/keyboards/ingrained/rules.mk b/keyboards/ingrained/rules.mk
index 8dd9805257..e9a8002f90 100644
--- a/keyboards/ingrained/rules.mk
+++ b/keyboards/ingrained/rules.mk
@@ -16,4 +16,4 @@ NO_USB_STARTUP_CHECK = yes
LTO_ENABLE = yes
SRC += matrix.c
-QUANTUM_LIB_SRC += i2c_master.c
+I2C_DRIVER_REQUIRED = yes
diff --git a/keyboards/inland/kb83/config.h b/keyboards/inland/kb83/config.h
index d1e7d11acc..be26cf869c 100644
--- a/keyboards/inland/kb83/config.h
+++ b/keyboards/inland/kb83/config.h
@@ -16,13 +16,8 @@
#pragma once
-
#define RGB_TRIGGER_ON_KEYDOWN
-/* DIP switch */
-#define DIP_SWITCH_PINS \
- { A9 }
-
/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
#define LOCKING_SUPPORT_ENABLE
/* Locking resynchronize hack */
@@ -36,12 +31,10 @@
#define SPI_MOSI_PAL_MODE 5
#define EXTERNAL_FLASH_SPI_SLAVE_SELECT_PIN C12
-#define WEAR_LEVELING_BACKING_SIZE (8 * 1024)
/* I2C Config for LED Driver */
-#define DRIVER_COUNT 2
-#define DRIVER_ADDR_1 0b1110100
-#define DRIVER_ADDR_2 0b1110111
+#define SNLED27351_I2C_ADDRESS_1 SNLED27351_I2C_ADDRESS_GND
+#define SNLED27351_I2C_ADDRESS_2 SNLED27351_I2C_ADDRESS_VDDIO
#define I2C1_SDA_PIN B7
#define I2C1_SCL_PIN B6
#define I2C1_SCL_PAL_MODE 4
diff --git a/keyboards/inland/kb83/info.json b/keyboards/inland/kb83/info.json
index ce577fb029..d8e029c5fa 100644
--- a/keyboards/inland/kb83/info.json
+++ b/keyboards/inland/kb83/info.json
@@ -9,7 +9,7 @@
"force_nkro": true
},
"rgb_matrix": {
- "driver": "is31fl3733"
+ "driver": "snled27351"
},
"processor": "WB32FQ95",
"bootloader": "wb32-dfu",
@@ -18,6 +18,16 @@
"rows": ["B15", "C6", "C7", "C8", "C9", "A8"]
},
"diode_direction": "ROW2COL",
+ "dip_switch": {
+ "pins": ["A9"]
+ },
+ "eeprom": {
+ "driver": "wear_leveling",
+ "wear_leveling": {
+ "driver": "spi_flash",
+ "backing_size": 8192
+ }
+ },
"encoder": {
"rotary": [
{"pin_a": "B14", "pin_b": "B13", "resolution": 4}
diff --git a/keyboards/inland/kb83/kb83.c b/keyboards/inland/kb83/kb83.c
index 86b52cfe92..49604b93be 100644
--- a/keyboards/inland/kb83/kb83.c
+++ b/keyboards/inland/kb83/kb83.c
@@ -18,8 +18,8 @@
// clang-format off
#ifdef RGB_MATRIX_ENABLE
-const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = {
-/* Refer to IS31 manual for these locations
+const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = {
+/* Refer to SNLED27351 manual for these locations
* driver
* | R location
* | | G location
diff --git a/keyboards/inland/kb83/rules.mk b/keyboards/inland/kb83/rules.mk
index 756d0c0719..aefdb5a168 100644
--- a/keyboards/inland/kb83/rules.mk
+++ b/keyboards/inland/kb83/rules.mk
@@ -14,6 +14,4 @@ AUDIO_ENABLE = no # Audio output
DIP_SWITCH_ENABLE = yes # DPI Switch
ENCODER_ENABLE = yes
RGB_MATRIX_ENABLE = yes
-EEPROM_DRIVER = wear_leveling
-WEAR_LEVELING_DRIVER = spi_flash
#RGB_MATRIX_CUSTOM_USER = yes #Add turnoff LED
diff --git a/keyboards/inland/mk47/config.h b/keyboards/inland/mk47/config.h
index 678686555a..e5026bd0e7 100644
--- a/keyboards/inland/mk47/config.h
+++ b/keyboards/inland/mk47/config.h
@@ -23,11 +23,10 @@
#define SPI_MISO_PIN B4
#define EXTERNAL_FLASH_SPI_SLAVE_SELECT_PIN C12
-#define WEAR_LEVELING_BACKING_SIZE (4 * 1024)
/* I2C Config for LED Driver */
-#define DRIVER_COUNT 1
-#define DRIVER_ADDR_1 0b1110100
+#define SNLED27351_I2C_ADDRESS_1 SNLED27351_I2C_ADDRESS_GND
+
/* WB32 MCU has no default definition */
#define I2C1_OPMODE OPMODE_I2C
#define I2C1_CLOCK_SPEED 400000
diff --git a/keyboards/inland/mk47/info.json b/keyboards/inland/mk47/info.json
index 45a11e913a..e647723ed8 100644
--- a/keyboards/inland/mk47/info.json
+++ b/keyboards/inland/mk47/info.json
@@ -25,8 +25,16 @@
"cols": ["C1","C2","C3","A0","A1","A2","A3","A4","A5","A6","A7","C4"],
"rows": ["C6", "C7", "C8", "C9"]
},
+ "diode_direction": "ROW2COL",
+ "eeprom": {
+ "driver": "wear_leveling",
+ "wear_leveling": {
+ "driver": "spi_flash",
+ "backing_size": 4096
+ }
+ },
"rgb_matrix": {
- "driver": "is31fl3733",
+ "driver": "snled27351",
"max_brightness": 200,
"animations": {
"breathing": true,
@@ -99,7 +107,6 @@
{ "flags": 4, "matrix": [3, 11], "x": 224, "y": 64}
]
},
- "diode_direction": "ROW2COL",
"layout_aliases": {
"LAYOUT": "LAYOUT_planck_mit"
},
diff --git a/keyboards/inland/mk47/mk47.c b/keyboards/inland/mk47/mk47.c
index f247855944..5a34527c6c 100644
--- a/keyboards/inland/mk47/mk47.c
+++ b/keyboards/inland/mk47/mk47.c
@@ -16,8 +16,8 @@
#include "quantum.h"
#ifdef RGB_MATRIX_ENABLE
-const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = {
-/* Refer to IS31 manual for these locations
+const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = {
+/* Refer to SNLED27351 manual for these locations
* driver
* | R location
* | | G location
diff --git a/keyboards/inland/mk47/rules.mk b/keyboards/inland/mk47/rules.mk
index 24d5f6f52e..6e7633bfe0 100644
--- a/keyboards/inland/mk47/rules.mk
+++ b/keyboards/inland/mk47/rules.mk
@@ -1,2 +1 @@
-EEPROM_DRIVER = wear_leveling
-WEAR_LEVELING_DRIVER = spi_flash
+# This file intentionally left blank
diff --git a/keyboards/inland/v83p/config.h b/keyboards/inland/v83p/config.h
index c433b568dd..c39cb6421f 100644
--- a/keyboards/inland/v83p/config.h
+++ b/keyboards/inland/v83p/config.h
@@ -4,14 +4,9 @@
#define ENCODER_DEFAULT_POS 0x3
-/* DIP switch */
-#define DIP_SWITCH_PINS \
- { C11 }
-
/* I2C Config for LED Driver */
-#define DRIVER_COUNT 2
-#define DRIVER_ADDR_1 0b1110100
-#define DRIVER_ADDR_2 0b1110111
+#define SNLED27351_I2C_ADDRESS_1 SNLED27351_I2C_ADDRESS_GND
+#define SNLED27351_I2C_ADDRESS_2 SNLED27351_I2C_ADDRESS_VDDIO
#define I2C1_SDA_PIN B7
#define I2C1_SCL_PIN B6
#define I2C1_SCL_PAL_MODE 4
@@ -29,7 +24,6 @@
#define SPI_MOSI_PAL_MODE 5
#define EXTERNAL_FLASH_SPI_SLAVE_SELECT_PIN C12
-#define WEAR_LEVELING_BACKING_SIZE (4 * 1024)
#define RGB_MATRIX_FRAMEBUFFER_EFFECTS
#define RGB_MATRIX_KEYPRESSES
diff --git a/keyboards/inland/v83p/info.json b/keyboards/inland/v83p/info.json
index d7a418bccf..69df93e6d0 100644
--- a/keyboards/inland/v83p/info.json
+++ b/keyboards/inland/v83p/info.json
@@ -12,6 +12,13 @@
"suspend_wakeup_delay": 1000
},
"diode_direction": "ROW2COL",
+ "eeprom": {
+ "driver": "wear_leveling",
+ "wear_leveling": {
+ "driver": "spi_flash",
+ "backing_size": 4096
+ }
+ },
"features": {
"bootmagic": true,
"command": false,
@@ -27,13 +34,16 @@
"cols": ["C1","C2","C3","A0","A1","A2","A3","A4","A5","A6","A7","C4","C5","B0","B1","B2"],
"rows": ["B15", "C6", "C7", "C8", "C9", "B14"]
},
+ "dip_switch": {
+ "pins": ["C11"]
+ },
"encoder": {
"rotary": [
{ "pin_a": "A8", "pin_b": "B13" }
]
},
"rgb_matrix": {
- "driver": "ckled2001",
+ "driver": "snled27351",
"max_brightness": 180,
"animations": {
"solid_color": true,
diff --git a/keyboards/inland/v83p/rules.mk b/keyboards/inland/v83p/rules.mk
index 24d5f6f52e..6e7633bfe0 100644
--- a/keyboards/inland/v83p/rules.mk
+++ b/keyboards/inland/v83p/rules.mk
@@ -1,2 +1 @@
-EEPROM_DRIVER = wear_leveling
-WEAR_LEVELING_DRIVER = spi_flash
+# This file intentionally left blank
diff --git a/keyboards/inland/v83p/v83p.c b/keyboards/inland/v83p/v83p.c
index 26ab62784a..3cb9c06cb0 100644
--- a/keyboards/inland/v83p/v83p.c
+++ b/keyboards/inland/v83p/v83p.c
@@ -5,7 +5,7 @@
// clang-format off
#ifdef RGB_MATRIX_ENABLE
-const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = {
+const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = {
/* Refer to IS31 manual for these locations
* driver
* | R location
diff --git a/keyboards/input_club/ergodox_infinity/config.h b/keyboards/input_club/ergodox_infinity/config.h
index 7db6119a1c..3757ca3d60 100644
--- a/keyboards/input_club/ergodox_infinity/config.h
+++ b/keyboards/input_club/ergodox_infinity/config.h
@@ -43,8 +43,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define LED_BRIGHTNESS_HI 255
/* LED matrix driver */
-#define LED_DRIVER_ADDR_1 0x74
-#define LED_DRIVER_COUNT 1
+#define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND
#define LED_MATRIX_LED_COUNT 76
#define LED_MATRIX_SPLIT { 38, 38 }
#define LED_DISABLE_WHEN_USB_SUSPENDED
diff --git a/keyboards/input_club/ergodox_infinity/ergodox_infinity.c b/keyboards/input_club/ergodox_infinity/ergodox_infinity.c
index b8f0d4ae13..8f245d9fa3 100644
--- a/keyboards/input_club/ergodox_infinity/ergodox_infinity.c
+++ b/keyboards/input_club/ergodox_infinity/ergodox_infinity.c
@@ -117,9 +117,6 @@ void matrix_init_kb(void) {
* Since K20x is stuck with a 32 byte EEPROM (see tmk_core/common/chibios/eeprom_teensy.c),
* and neither led_matrix_eeconfig.speed or .flags fit in this boundary, just force their values to default on boot.
*/
-# if !defined(LED_MATRIX_DEFAULT_SPD)
-# define LED_MATRIX_DEFAULT_SPD UINT8_MAX / 2
-# endif
led_matrix_set_speed(LED_MATRIX_DEFAULT_SPD);
led_matrix_set_flags(LED_FLAG_ALL);
#endif
@@ -174,7 +171,7 @@ const keypos_t PROGMEM hand_swap_config[MATRIX_ROWS][MATRIX_COLS] = {
#endif
#ifdef LED_MATRIX_ENABLE
-const is31_led PROGMEM g_is31_leds[LED_MATRIX_LED_COUNT] = {
+const is31fl3731_led_t PROGMEM g_is31fl3731_leds[LED_MATRIX_LED_COUNT] = {
// The numbers in the comments are the led numbers DXX on the PCB
/* Refer to IS31 manual for these locations
* driver
@@ -198,7 +195,7 @@ const is31_led PROGMEM g_is31_leds[LED_MATRIX_LED_COUNT] = {
// 71 70 69
{ 0, C3_7 }, { 0, C2_7 }, { 0, C1_7 },
// Right half (mirrored)
-// Due to how LED_MATRIX_SPLIT is implemented, only the first half of g_is31_leds is actually used.
+// Due to how LED_MATRIX_SPLIT is implemented, only the first half of g_is31fl3731_leds is actually used.
// Luckily, the right half has the same LED pinouts, just mirrored.
// 45 44 43 42 41 40 39
{ 0, C2_2 }, { 0, C1_2 }, { 0, C5_1 }, { 0, C4_1 }, { 0, C3_1 }, { 0, C2_1 }, { 0, C1_1 },
diff --git a/keyboards/input_club/ergodox_infinity/keymaps/dudeofawesome/README.md b/keyboards/input_club/ergodox_infinity/keymaps/dudeofawesome/README.md
deleted file mode 100644
index a0e4565b10..0000000000
--- a/keyboards/input_club/ergodox_infinity/keymaps/dudeofawesome/README.md
+++ /dev/null
@@ -1,30 +0,0 @@
-# DudeOfAwesome's ErgoDox Infinity Layout
-
-A basic ErgoDox layout with Planck-like tri-layer support.
-
-![ErgoDox Layout](https://i.imgur.com/ae0Phzb.png)
-
-## Features
-
-- Base Layers
- - QWERTY
- - Workman
- - Dvorak
- - Colemak
-- Planck-like tri-layer
-- In-progress gaming layer
-- Numpad layer
- ![numpad layer](https://i.imgur.com/oHDYpzf.png)
-- LCD colors are linked together, like the default KLL firmware
-
-## Building and flashing
-
-1. Put your board in DFU mode with either the button on the bottom, or with a software key in your current firmware
-1. Flash left half:
- ```bash
- $ make ergodox_infinity:dudeofawesome:dfu-util
- ```
-1. Flash right half:
- ```bash
- $ make ergodox_infinity:dudeofawesome:dfu-util MASTER=right
- ```
diff --git a/keyboards/input_club/ergodox_infinity/keymaps/dudeofawesome/config.h b/keyboards/input_club/ergodox_infinity/keymaps/dudeofawesome/config.h
deleted file mode 100644
index 9dcf8a7f43..0000000000
--- a/keyboards/input_club/ergodox_infinity/keymaps/dudeofawesome/config.h
+++ /dev/null
@@ -1,9 +0,0 @@
-#ifndef CONFIG_USER_H
-#define CONFIG_USER_H
-
-#undef TAPPING_TOGGLE
-
-#include "../../config.h"
-#include "dudeofawesome.h"
-
-#endif
diff --git a/keyboards/input_club/ergodox_infinity/keymaps/dudeofawesome/keymap.c b/keyboards/input_club/ergodox_infinity/keymaps/dudeofawesome/keymap.c
deleted file mode 100644
index d1665ecb1f..0000000000
--- a/keyboards/input_club/ergodox_infinity/keymaps/dudeofawesome/keymap.c
+++ /dev/null
@@ -1,551 +0,0 @@
-#include QMK_KEYBOARD_H
-#include "version.h"
-#include "layers.h"
-
-enum custom_keycodes {
- QWERTY = SAFE_RANGE,
- WORKMAN,
- DVORAK,
- COLEMAK,
- LOWER,
- RAISE,
- GAME,
- MOUSE,
- EPRM,
- VRSN,
- RGB_SLD,
-};
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-/* Keymap 0: Basic QWERTY layer
- *
- * ,---------------------------------------------. ,---------------------------------------------.
- * | ` | 1 | 2 | 3 | 4 | 5 | Esc | | Esc | 6 | 7 | 8 | 9 | 0 | Del |
- * |--------+-----+-----+-----+-----+------------| |------+-----+-----+-----+-----+-----+--------|
- * | Tab | Q | W | E | R | T | [{ | | ]} | Y | U | I | O | P | BSPC |
- * |--------+-----+-----+-----+-----+-----| | | |-----+-----+-----+-----+-----+--------|
- * | ESC | A | S | D | F | G |------| |------| H | J | K | L | ; | ' |
- * |--------+-----+-----+-----+-----+-----| | | |-----+-----+-----+-----+-----+--------|
- * | LShift | Z | X | C | V | B | | | | N | M | , | . | / | Enter |
- * `--------+-----+-----+-----+-----+------------' `------------+-----+-----+-----+-----+--------'
- * | Num |Ctrl | Alt |LGUI |Lower| |Raise|Left |Down | Up |Right |
- * `------------------------------' `------------------------------'
- * ,------------. ,------------.
- * |Play | | | |Play |
- * ,-----|-----|------| |------+-----+-----.
- * | | | Alt | | Alt | | |
- * |Space|LOWER|------| |------|RAISE|Space|
- * | | | LGUI | | LGUI | | |
- * `------------------' `------------------'
- */
-[_QWERTY] = LAYOUT_ergodox(
- // left hand
- KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_ESC,
- KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_LBRC,
- KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G,
- KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, _______,
- TT(_NUM), KC_LCTL, KC_LALT, KC_LGUI, LOWER,
-
- KC_MPLY, _______,
- KC_LALT,
- KC_SPACE, LOWER, KC_LGUI,
-
- // right hand
- KC_ESC, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL,
- KC_RBRC, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,
- KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOTE,
- _______, KC_N, KC_M, KC_COMM, KC_DOT, LT(_MOUSE, KC_SLSH), RSFT_T(KC_ENT),
- RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT,
-
- _______, KC_MPLY,
- KC_LALT,
- KC_LGUI, RAISE, KC_SPACE
-),
-
-/* Keymap 0: Basic Workman layer
- *
- * ,---------------------------------------------. ,--------------------------------------------.
- * | ` | 1 | 2 | 3 | 4 | 5 | Esc | | Esc | 6 | 7 | 8 | 9 | 0 | Del |
- * |--------+-----+-----+-----+-----+------------| |------+-----+-----+-----+-----+-----+--------|
- * | Tab | Q | D | R | W | B | [{ | | ]} | J | F | U | P | ; | BSPC |
- * |--------+-----+-----+-----+-----+-----| | | |-----+-----+-----+-----+-----+--------|
- * | ESC | A | S | H | T | G |------| |------| Y | N | E | O | I | ' |
- * |--------+-----+-----+-----+-----+-----| | | |-----+-----+-----+-----+-----+--------|
- * | LShift | Z | X | M | C | V | | | | K | L | , | . | / | Enter |
- * `--------+-----+-----+-----+-----+------------' `------------+-----+-----+-----+-----+--------'
- * | Num |Ctrl | Alt |LGUI |Lower| |Raise|Left |Down | Up |Right |
- * `------------------------------' `------------------------------'
- * ,------------. ,------------.
- * |Play | | | |Play |
- * ,-----|-----|------| |------+-----+-----.
- * | | | Alt | | Alt | | |
- * |Space|LOWER|------| |------|RAISE|Space|
- * | | | LGUI | | LGUI | | |
- * `------------------' `------------------'
- */
-[_WORKMAN] = LAYOUT_ergodox(
- // left hand
- KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_ESC,
- KC_TAB, KC_Q, KC_D, KC_R, KC_W, KC_B, KC_LBRC,
- KC_ESC, KC_A, KC_S, KC_H, KC_T, KC_G,
- KC_LSFT, KC_Z, KC_X, KC_M, KC_C, KC_V, _______,
- TT(_NUM), KC_LCTL, KC_LALT, KC_LGUI, LOWER,
-
- KC_MPLY, _______,
- KC_LALT,
- KC_SPACE, LOWER, KC_LGUI,
-
- // right hand
- KC_ESC, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL,
- KC_RBRC, KC_J, KC_F, KC_U, KC_P, KC_SCLN, KC_BSPC,
- KC_Y, KC_N, KC_E, KC_O, KC_I, KC_QUOTE,
- _______, KC_K, KC_L, KC_COMM, KC_DOT, LT(_MOUSE, KC_SLSH), RSFT_T(KC_ENT),
- RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT,
-
- _______, KC_MPLY,
- KC_LALT,
- KC_LGUI, RAISE, KC_SPACE
-),
-
-/* Keymap 0: Basic Dvorak layer
- *
- * ,---------------------------------------------. ,--------------------------------------------.
- * | ` | 1 | 2 | 3 | 4 | 5 | Esc | | Esc | 6 | 7 | 8 | 9 | 0 | Del |
- * |--------+-----+-----+-----+-----+------------| |------+-----+-----+-----+-----+-----+--------|
- * | Tab | ' | , | . | P | Y | [{ | | ]} | F | G | C | R | L | BSPC |
- * |--------+-----+-----+-----+-----+-----| | | |-----+-----+-----+-----+-----+--------|
- * | ESC | A | O | E | U | I |------| |------| D | H | T | N | S | / |
- * |--------+-----+-----+-----+-----+-----| | | |-----+-----+-----+-----+-----+--------|
- * | LShift | ; | Q | J | K | X | | | | B | M | W | V | Z | Enter |
- * `--------+-----+-----+-----+-----+------------' `------------+-----+-----+-----+-----+--------'
- * | Num |Ctrl | Alt |LGUI |Lower| |Raise|Left |Down | Up |Right |
- * `------------------------------' `------------------------------'
- * ,------------. ,------------.
- * |Play | | | |Play |
- * ,-----|-----|------| |------+-----+-----.
- * | | | Alt | | Alt | | |
- * |Space|LOWER|------| |------|RAISE|Space|
- * | | | LGUI | | LGUI | | |
- * `------------------' `------------------'
- */
-[_DVORAK] = LAYOUT_ergodox(
- // left hand
- KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_ESC,
- KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_LBRC,
- KC_ESC, KC_A, KC_O, KC_E, KC_U, KC_I,
- KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, _______,
- TT(_NUM), KC_LCTL, KC_LALT, KC_LGUI, LOWER,
-
- KC_MPLY, _______,
- KC_LALT,
- KC_SPACE, LOWER, KC_LGUI,
-
- // right hand
- KC_ESC, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL,
- KC_RBRC, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSPC,
- KC_D, KC_H, KC_T, KC_N, KC_S, LT(MOUSE, KC_SLSH),
- _______, KC_B, KC_M, KC_W, KC_V, KC_Z, RSFT_T(KC_ENT),
- RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT,
-
- _______, KC_MPLY,
- KC_LALT,
- KC_LGUI, RAISE, KC_SPACE
-),
-
-/* Keymap 0: Basic Colemak layer
- *
- * ,---------------------------------------------. ,--------------------------------------------.
- * | ` | 1 | 2 | 3 | 4 | 5 | Esc | | Esc | 6 | 7 | 8 | 9 | 0 | Del |
- * |--------+-----+-----+-----+-----+------------| |------+-----+-----+-----+-----+-----+--------|
- * | Tab | Q | W | F | P | G | [{ | | ]} | J | L | U | Y | ; | BSPC |
- * |--------+-----+-----+-----+-----+-----| | | |-----+-----+-----+-----+-----+--------|
- * | ESC | A | R | S | T | D |------| |------| H | N | E | I | O | ' |
- * |--------+-----+-----+-----+-----+-----| | | |-----+-----+-----+-----+-----+--------|
- * | LShift | Z | X | C | V | B | | | | K | M | , | . | / | Enter |
- * `--------+-----+-----+-----+-----+------------' `------------+-----+-----+-----+-----+--------'
- * | Num |Ctrl | Alt |LGUI |Lower| |Raise|Left |Down | Up |Right |
- * `------------------------------' `------------------------------'
- * ,------------. ,------------.
- * |Play | | | |Play |
- * ,-----|-----|------| |------+-----+-----.
- * | | | Alt | | Alt | | |
- * |Space|LOWER|------| |------|RAISE|Space|
- * | | | LGUI | | LGUI | | |
- * `------------------' `------------------'
- */
-[_COLEMAK] = LAYOUT_ergodox(
- // left hand
- KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_ESC,
- KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_LBRC,
- KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_D,
- KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, _______,
- TT(_NUM), KC_LCTL, KC_LALT, KC_LGUI, LOWER,
-
- KC_MPLY, _______,
- KC_LALT,
- KC_SPACE, LOWER, KC_LGUI,
-
- // right hand
- KC_ESC, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL,
- KC_RBRC, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC,
- KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOTE,
- _______, KC_K, KC_M, KC_COMM, KC_DOT, LT(_MOUSE, KC_SLSH), RSFT_T(KC_ENT),
- RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT,
-
- _______, KC_MPLY,
- KC_LALT,
- KC_LGUI, RAISE, KC_SPACE
-),
-
-/* Lower
- *
- * ,---------------------------------------------------. ,--------------------------------------------------.
- * | Version | F1 | F2 | F3 | F4 | F5 | F11 | | F12 | F6 | F7 | F8 | F9 | F10 | |
- * |---------+------+------+------+------+------+------| |------+------+------+------+------+------+--------|
- * | ~ | ! | @ | # | $ | % | F6 | | F5 | ^ | & | * | ( | ) | |
- * |---------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | Del | F1 | F2 | F3 | F4 | F5 |------| |------| F6 | _ | + | { | } | | |
- * |---------+------+------+------+------+------| F12 | | F11 |------+------+------+------+------+--------|
- * | | F7 | F8 | F9 | F10 | F11 | | | | F12 |ISO ~ |ISO | | Home | End | |
- * `---------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * | | | | | | | | Play | Vol- | Vol+ | Next |
- * `-----------------------------------' `----------------------------------'
- * ,-------------. ,-------------.
- * | | | | | |
- * ,------|------|------| |------+------+------.
- * | | | | | | | |
- * | | |------| |------| | |
- * | | | | | | | |
- * `--------------------' `--------------------'
- */
-[_LOWER] = LAYOUT_ergodox(
- // left hand
- VRSN, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F11,
- KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_F6,
- KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5,
- _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,
- _______, _______, _______, _______, _______,
-
- _______, _______,
- _______,
- _______, _______, _______,
-
- // right hand
- KC_F12, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,
- KC_F5, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, _______,
- KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE,
- KC_F11, KC_F12, S(KC_NUHS), S(KC_NUBS), KC_HOME, KC_END, _______,
- _______, KC_MPLY, KC_VOLD, KC_VOLU, KC_MNXT,
-
- _______, _______,
- _______,
- _______, _______, _______
-),
-
-/* Raise
- *
- * ,---------------------------------------------------. ,--------------------------------------------------.
- * | Version | F1 | F2 | F3 | F4 | F5 | F11 | | F12 | F6 | F7 | F8 | F9 | F10 | F11 |
- * |---------+------+------+------+------+------+------| |------+------+------+------+------+------+--------|
- * | ` | 1 | 2 | 3 | 4 | 5 | F6 | | F5 | 6 | 7 | 8 | 9 | 0 | |
- * |---------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | Del | F1 | F2 | F3 | F4 | F5 |------| |------| F6 | - | = | [ | ] | \ |
- * |---------+------+------+------+------+------| F12 | | F11 |------+------+------+------+------+--------|
- * | | F7 | F8 | F9 | F10 | F11 | | | | F12 |ISO # |ISO / |Pg Up |Pg Dn | |
- * `---------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * | | | | | | | | Play | Vol- | Vol+ | Next |
- * `-----------------------------------' `----------------------------------'
- * ,-------------. ,-------------.
- * |Animat| | |Toggle|Solid |
- * ,------|------|------| |------+------+------.
- * |Bright|Bright| | | |Hue- |Hue+ |
- * |ness- |ness+ |------| |------| | |
- * | | | | | | | |
- * `--------------------' `--------------------'
- */
-[_RAISE] = LAYOUT_ergodox(
- // left hand
- VRSN, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F11,
- KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_F6,
- KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5,
- _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,
- _______, _______, _______, _______, _______,
-
- _______, _______,
- _______,
- _______, _______, _______,
-
- // right hand
- KC_F12, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,
- KC_F5, KC_6, KC_7, KC_8, KC_9, KC_0, _______,
- KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS,
- KC_F11, KC_F12, KC_NUHS, KC_NUBS, KC_PGUP, KC_PGDN, _______,
- _______, KC_MPLY, KC_VOLD, KC_VOLU, KC_MNXT,
-
- _______, _______,
- _______,
- _______, _______, _______
-),
-
-/* Adjust
- *
- * ,--------------------------------------------------. ,--------------------------------------------------.
- * |Version | | | | | | | | | | | | | | |
- * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | |Reset |Debug | | | | | | | |TRM on|TRMoff| | | Del |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | CPSLCK | | | | |AG Nrm|------| |------|AG Swp|QWERTY|Wrkman|Dvorak|Colmak| |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | | | | | | | | | | | Prev | Next | | |
- * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * | | | | | | |VolUp |VolDn | Mute | | |
- * `----------------------------------' `----------------------------------'
- * ,-------------. ,-------------.
- * | | | | | |
- * ,------|------|------| |------+------+------.
- * | | | | | | | |
- * | | |------| |------| | |
- * | | | | | | | |
- * `--------------------' `--------------------'
- */
-[_ADJUST] = LAYOUT_ergodox(
- // left hand
- VRSN, _______, _______, _______, _______, _______, _______,
- _______, QK_BOOT, DB_TOGG, BL_TOGG, BL_STEP, _______, _______,
- KC_CAPS, _______, _______, _______, _______, AG_NORM,
- _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______,
-
- _______, _______,
- _______,
- _______, _______, _______,
-
- // right hand
- _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, KC_DEL,
- AG_SWAP, QWERTY, WORKMAN, DVORAK, COLEMAK, _______,
- _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______,
-
- _______, _______,
- _______,
- _______, _______, _______
-),
-
-/* Keymap 2: Media and mouse keys
- *
- * ,--------------------------------------------------. ,--------------------------------------------------.
- * | | | | | | | | | | | | | | | |
- * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | | | Lclk | MsUp | Rclk |Wh Up | | | | | | | | | |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | |MsLeft|MsDown|MsRght|Wh Dn |------| |------| | | | | | Play |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | | | | | | | | | | | Prev | Next | | |
- * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * | | | | | | |VolUp |VolDn | Mute | | |
- * `----------------------------------' `----------------------------------'
- * ,-------------. ,-------------.
- * | | | | | |
- * ,------|------|------| |------+------+------.
- * | | | | | |Brwser|Brwser|
- * | Lclk | Rclk |------| |------|Back |Fwd |
- * | | | | | | | |
- * `--------------------' `--------------------'
- */
-// MOUSE
-[_MOUSE] = LAYOUT_ergodox(
- // left hand
- _______, _______, _______, _______, _______, _______, _______,
- _______, _______, KC_BTN2, KC_MS_U, KC_BTN1, KC_WH_D, _______,
- _______, _______, KC_MS_L, KC_MS_D, KC_MS_R, KC_WH_U,
- _______, _______, KC_WH_L, KC_BTN3, KC_WH_R, _______, TO(_GAME),
- _______, _______, _______, _______, _______,
-
- _______, _______,
- KC_WH_D,
- KC_BTN1, KC_BTN2, KC_WH_U,
-
- // right hand
- _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, KC_MPLY,
- TO(_GAME), _______, _______, KC_MPRV, KC_MNXT, _______, _______,
- KC_VOLU, KC_VOLD, KC_MUTE, _______, _______,
-
- _______, _______,
- _______,
- _______, KC_WBAK, KC_WFWD
-),
-
-/* Keymap 2: GAME
- *
- * ,--------------------------------------------------. ,--------------------------------------------------.
- * | | | | | | | | | | | | | | | |
- * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | | | Lclk | MsUp | Rclk | | | | | | | | | | |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | |MsLeft|MsDown|MsRght| |------| |------| | | | | | Play |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | | | | | | | | | | | Prev | Next | | |
- * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * | | | | | | |VolUp |VolDn | Mute | | |
- * `----------------------------------' `----------------------------------'
- * ,-------------. ,-------------.
- * | | | | | |
- * ,------|------|------| |------+------+------.
- * | | | | | |Brwser|Brwser|
- * | Lclk | Rclk |------| |------|Back |Fwd |
- * | | | | | | | |
- * `--------------------' `--------------------'
- */
-[_GAME] = LAYOUT_ergodox(
- // left hand
- _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______,
-
- _______, _______,
- _______,
- KC_SPACE, KC_LGUI, KC_LALT,
-
- // right hand
- _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______,
-
- TG(_MOUSE), TT(_NUM),
- _______,
- _______, _______, _______
-),
-
-/* Keymap 2: NUMPAD
- *
- * ,--------------------------------------------------. ,--------------------------------------------------.
- * | | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | | ✗ | ✗ | ✗ | / | * | - | |
- * |--------+------+------+------+------+------+------| |------+------+------+------+------+------+--------|
- * | | ✗ | Home | Up | End | PgUp | | | | ✗ | 7 | 8 | 9 | + | |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | ✗ | Left | Down | Right| PgDn |------| |------| ✗ | 4 | 5 | 6 | + | ✗ |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | / | * | - | + | Enter| | | | ✗ | 1 | 2 | 3 | Enter| Enter |
- * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * | | | | | ✗ | | 0 | 0 | . | Enter| = |
- * `----------------------------------' `----------------------------------'
- * ,-------------. ,-------------.
- * | | | | | |
- * ,------|------|------| |------+------+------.
- * | | | | | | | |
- * | | |------| |------| | |
- * | | | | | | | |
- * `--------------------' `--------------------'
- */
-[_NUM] = LAYOUT_ergodox(
- // left hand
- _______, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
- _______, KC_NO, KC_HOME, KC_UP, KC_END, KC_PGUP, KC_NO,
- _______, KC_NO, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN,
- _______, KC_PSLS, KC_PAST, KC_PMNS, KC_PPLS, KC_PENT, KC_NO,
- _______, _______, _______, _______, KC_NO,
-
- _______, _______,
- _______,
- _______, _______, _______,
-
- // right hand
- KC_NO, KC_NO, KC_NO, KC_PSLS, KC_PAST, KC_PMNS, _______,
- KC_NO, KC_NO, KC_P7, KC_P8, KC_P9, KC_PPLS, _______,
- KC_NO, KC_P4, KC_P5, KC_P6, KC_PPLS, KC_NO,
- KC_NO, KC_NO, KC_P1, KC_P2, KC_P3, KC_PENT, KC_PENT,
- KC_P0, KC_P0, KC_PDOT, KC_PENT, KC_PEQL,
-
- _______, _______,
- _______,
- _______, _______, _______
-),
-
-};
-
-void matrix_init_user(void) {
- led_matrix_enable_noeeprom();
- led_matrix_set_val_noeeprom(UINT8_MAX);
-}
-
-bool process_record_user(uint16_t keycode, keyrecord_t *record) {
- switch (keycode) {
- case QWERTY:
- if (record->event.pressed) {
- set_single_persistent_default_layer(_QWERTY);
- }
- return false;
- case WORKMAN:
- if (record->event.pressed) {
- set_single_persistent_default_layer(_WORKMAN);
- }
- return false;
- case DVORAK:
- if (record->event.pressed) {
- set_single_persistent_default_layer(_DVORAK);
- }
- return false;
- case COLEMAK:
- if (record->event.pressed) {
- set_single_persistent_default_layer(_COLEMAK);
- }
- return false;
- case LOWER:
- if (record->event.pressed) {
- layer_on(_LOWER);
- update_tri_layer(_LOWER, _RAISE, _ADJUST);
- if (IS_LAYER_ON(_ADJUST)) {
- layer_off(_LOWER);
- layer_off(_RAISE);
- }
- } else {
- layer_off(_LOWER);
- if (IS_LAYER_ON(_ADJUST)) {
- layer_off(_ADJUST);
- layer_on(_RAISE);
- }
- }
- return false;
- case RAISE:
- if (record->event.pressed) {
- layer_on(_RAISE);
- update_tri_layer(_LOWER, _RAISE, _ADJUST);
- if (IS_LAYER_ON(_ADJUST)) {
- layer_off(_RAISE);
- layer_off(_LOWER);
- }
- } else {
- layer_off(_RAISE);
- if (IS_LAYER_ON(_ADJUST)) {
- layer_off(_ADJUST);
- layer_on(_LOWER);
- }
- }
- return false;
- case EPRM:
- if (record->event.pressed) {
- eeconfig_init();
- }
- return false;
- case VRSN:
- if (record->event.pressed) {
- SEND_STRING (QMK_KEYBOARD "/" QMK_KEYMAP " @ " QMK_VERSION);
- }
- return false;
- case RGB_SLD:
- if (record->event.pressed) {
- #ifdef RGBLIGHT_ENABLE
- rgblight_mode(1);
- #endif
- }
- return false;
- }
- return true;
-}
diff --git a/keyboards/input_club/ergodox_infinity/keymaps/dudeofawesome/layers.h b/keyboards/input_club/ergodox_infinity/keymaps/dudeofawesome/layers.h
deleted file mode 100644
index d852fe9803..0000000000
--- a/keyboards/input_club/ergodox_infinity/keymaps/dudeofawesome/layers.h
+++ /dev/null
@@ -1,14 +0,0 @@
-#include QMK_KEYBOARD_H
-
-enum custom_layers {
- _QWERTY,
- _WORKMAN,
- _DVORAK,
- _COLEMAK,
- _LOWER,
- _RAISE,
- _ADJUST,
- _GAME,
- _MOUSE,
- _NUM,
-};
diff --git a/keyboards/input_club/ergodox_infinity/keymaps/halfkeyboard/keymap.c b/keyboards/input_club/ergodox_infinity/keymaps/halfkeyboard/keymap.c
index ca0442103d..35f459fab5 100644
--- a/keyboards/input_club/ergodox_infinity/keymaps/halfkeyboard/keymap.c
+++ b/keyboards/input_club/ergodox_infinity/keymaps/halfkeyboard/keymap.c
@@ -1,8 +1,5 @@
#include QMK_KEYBOARD_H
-#include "debug.h"
-#include "action_layer.h"
#include "version.h"
-#include "keymap_steno.h"
#ifndef MIDI_ENABLE
#error "Midi is not enabled"
#endif
diff --git a/keyboards/input_club/ergodox_infinity/keymaps/narze/config.h b/keyboards/input_club/ergodox_infinity/keymaps/narze/config.h
deleted file mode 100644
index 9c9bca5961..0000000000
--- a/keyboards/input_club/ergodox_infinity/keymaps/narze/config.h
+++ /dev/null
@@ -1,13 +0,0 @@
-#pragma once
-
-#undef TAPPING_TERM
-#define TAPPING_TERM 150
-
-#define COMBO_TERM 20
-
-#define PERMISSIVE_HOLD
-
-#undef MOUSEKEY_DELAY
-#define MOUSEKEY_DELAY 100
-
-#define USB_POLLING_INTERVAL_MS 1
diff --git a/keyboards/input_club/ergodox_infinity/keymaps/narze/default.png.md b/keyboards/input_club/ergodox_infinity/keymaps/narze/default.png.md
deleted file mode 100644
index 744e7d172a..0000000000
--- a/keyboards/input_club/ergodox_infinity/keymaps/narze/default.png.md
+++ /dev/null
@@ -1 +0,0 @@
-https://i.imgur.com/fKX0Zbs.png
diff --git a/keyboards/input_club/ergodox_infinity/keymaps/narze/default_highres.png.md b/keyboards/input_club/ergodox_infinity/keymaps/narze/default_highres.png.md
deleted file mode 100644
index 074e0634d2..0000000000
--- a/keyboards/input_club/ergodox_infinity/keymaps/narze/default_highres.png.md
+++ /dev/null
@@ -1 +0,0 @@
-https://i.imgur.com/giAc3M9.jpg
diff --git a/keyboards/input_club/ergodox_infinity/keymaps/narze/keymap.c b/keyboards/input_club/ergodox_infinity/keymaps/narze/keymap.c
deleted file mode 100644
index 2ad9151bed..0000000000
--- a/keyboards/input_club/ergodox_infinity/keymaps/narze/keymap.c
+++ /dev/null
@@ -1,697 +0,0 @@
-#include QMK_KEYBOARD_H
-#include "narze.h"
-#include "version.h"
-#include "keymap_colemak.h"
-
-extern keymap_config_t keymap_config;
-
-enum ergodox_layers {
- _QWERTY,
- _COLEMAK,
- _QWOC,
- _LOWER,
- _RAISE,
- _PLOVER,
- // Intermediate layers for SuperDuper (Combo keys does not work on Infinity yet)
- _SUPERDUPER,
- _DEV,
- _MOUSE,
- _ADJUST,
- _MDIA,
- _SYMB,
-};
-
-enum ergodox_keycodes {
- QWERTY = SAFE_RANGE,
- COLEMAK,
- QWOC,
- LOWER,
- RAISE,
- PLOVER,
- SUPERDUPER,
- DEV,
- MOUSE,
- BACKLIT,
- EXT_PLV,
- SDTOGG, // Toggle SuperDuper
- EPRM,
- VRSN,
- RGB_SLD,
- GUI_UNDS,
- LSFT_LPRN,
- RSFT_RPRN,
-};
-
-// Narze : Custom Macros
-#define SFT_PO LSFT_LPRN
-#define SFT_PC RSFT_RPRN
-
-enum process_combo_event {
- CB_SUPERDUPER,
-};
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-/* Qwerty
- *
- * ,--------------------------------------------------. ,--------------------------------------------------.
- * | ` | 1 | 2 | 3 | 4 | 5 | Mdia | | Mdia | 6 | 7 | 8 | 9 | 0 | - |
- * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | Tab | Q | W | E | R | T | Symb | | Symb | Y | U | I | O | P | \ |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | Hp/Esc | A | S | D | F | G |------| |------| H | J | K | L | ; | ' |
- * |--------+------+------+------+------+------| Hyper| | Meh |------+------+------+------+------+--------|
- * | Sft/( | Z/Dv | X | C | V | B | | | | N | M | , | . | SD-/ | Sft/) |
- * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * |Rse/[ | Ctrl | Alt | Gui/_| Lwr | | Rse/B| Bksp | Alt | Ctrl | Low/] |
- * `----------------------------------' `----------------------------------'
- * ,-------------. ,-------------.
- * | Enter| LGui | | Alt |Ctrl/Esc|
- * ,------|------|------| |------+--------+------.
- * | | | Home | | PgUp | | |
- * | Space| Back |------| |------| Back |Enter |
- * | | Space| End | | PgDn | Space | |
- * `--------------------' `----------------------'
- */
-[_QWERTY] = LAYOUT_ergodox(
- // left hand
- KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, LT(_MDIA, KC_NO),
- KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, LT(_SYMB, KC_NO),
- HPR_ESC, KC_A, KC_S, KC_D, KC_F, KC_G,
- SFT_PO, LT(_DEV, KC_Z), KC_X, KC_C, KC_V, KC_B, ALL_T(KC_NO),
- LT(_RAISE, KC_LBRC),KC_LCTL, KC_LALT, GUI_UNDS, LOWER,
- KC_ENT, KC_LGUI,
- KC_HOME,
- KC_SPC,KC_BSPC,KC_END,
- // right hand
- LT(_MDIA, KC_NO), KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS,
- LT(_SYMB, KC_NO), KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS,
- KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
- MEH_T(KC_NO),KC_N, KC_M, KC_COMM,KC_DOT, LT(_SUPERDUPER, KC_SLSH), SFT_PC,
- RAISE, KC_BSPC,ALT_COLN,KC_RCTL, LT(_LOWER, KC_RBRC),
- KC_LALT, CTL_T(KC_ESC),
- KC_PGUP,
- KC_PGDN,KC_BSPC, KC_ENT
- ),
-/* Colemak
- *
- * ,--------------------------------------------------. ,--------------------------------------------------.
- * | ` | 1 | 2 | 3 | 4 | 5 | Mdia | | Mdia | 6 | 7 | 8 | 9 | 0 | - |
- * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | Tab | Q | W | F | P | G | Symb | | Symb | J | L | U | Y | ; | \ |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | Hp/Esc | A | R | S | T | D |------| |------| H | N | E | I | O | ' |
- * |--------+------+------+------+------+------| Hyper| | Meh |------+------+------+------+------+--------|
- * | Sft/( | Z/Dv | X | C | V | B | | | | K | M | , | . | SD-/ | Sft/) |
- * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * |Rse/[ | Ctrl | Alt | Gui/_| Lwr | | Rse/B| Bksp | Alt | Ctrl | Low/] |
- * `----------------------------------' `----------------------------------'
- * ,-------------. ,-------------.
- * | Enter| LGui | | Alt |Ctrl/Esc|
- * ,------|------|------| |------+--------+------.
- * | | | Home | | PgUp | | |
- * | Space| Back |------| |------| Back |Enter |
- * | | Space| End | | PgDn | Space | |
- * `--------------------' `----------------------'
- */
-[_COLEMAK] = LAYOUT_ergodox(
- // left hand
- KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, LT(_MDIA, KC_NO),
- KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, LT(_SYMB, KC_NO),
- HPR_ESC, KC_A, KC_R, KC_S, KC_T, KC_D,
- SFT_PO, LT(_DEV, KC_Z), KC_X, KC_C, KC_V, KC_B, ALL_T(KC_NO),
- LT(_RAISE, KC_LBRC),KC_LCTL, KC_LALT, GUI_UNDS, LOWER,
- KC_ENT, KC_LGUI,
- KC_HOME,
- KC_SPC,KC_BSPC,KC_END,
- // right hand
- LT(_MDIA, KC_NO), KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS,
- LT(_SYMB, KC_NO), KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSLS,
- KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT,
- MEH_T(KC_NO),KC_K, KC_M, KC_COMM,KC_DOT, LT(_SUPERDUPER, KC_SLSH), SFT_PC,
- RAISE, KC_BSPC,ALT_COLN,KC_RCTL, LT(_LOWER, KC_RBRC),
- KC_LALT, CTL_T(KC_ESC),
- KC_PGUP,
- KC_PGDN,KC_BSPC, KC_ENT
- ),
-/* Qwerty on software Colemak : Useful for gaming with qwerty keymaps! */
-[_QWOC] = LAYOUT_ergodox(
- // left hand
- KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, LT(_MDIA, KC_NO),
- KC_TAB, CM_Q, CM_W, CM_E, CM_R, CM_T, LT(_SYMB, KC_NO),
- HPR_ESC, CM_A, CM_S, CM_D, CM_F, CM_G,
- SFT_PO, LT(_MOUSE, CM_Z), CM_X, CM_C, CM_V, CM_B, ALL_T(KC_NO),
- LT(_RAISE, KC_LBRC),KC_LCTL, KC_LALT, GUI_UNDS, LOWER,
- KC_ENT, KC_LGUI,
- KC_HOME,
- KC_SPC,KC_BSPC,KC_END,
- // right hand
- LT(_MDIA, KC_NO), KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS,
- LT(_SYMB, KC_NO), CM_Y, CM_U, CM_I, CM_O, CM_P, KC_BSLS,
- CM_H, CM_J, CM_K, CM_L, CM_SCLN, KC_QUOT,
- MEH_T(KC_NO),CM_N, CM_M, CM_COMM,CM_DOT, LT(_SUPERDUPER, KC_SLSH), SFT_PC,
- RAISE, KC_BSPC,ALT_COLN,KC_RCTL, LT(_LOWER, KC_RBRC),
- KC_LALT, CTL_T(KC_ESC),
- KC_PGUP,
- KC_PGDN,KC_BSPC, KC_ENT
- ),
-/* Lower
- *
- * ,--------------------------------------------------. ,--------------------------------------------------.
- * | | | | | | | | | | | | | | | |
- * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | | ! | @ | # | $ | % | | | | ^ | & | * | ( | ) | |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | F1 | F2 | F3 | F4 | F5 |------| |------| F6 | _ | + | { | } | | |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | F7 | F8 | F9 | F10 | F11 | | | | F12 |ISO ~ |ISO | | | | |
- * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * | | | | | | | | | | | |
- * `----------------------------------' `----------------------------------'
- * ,-------------. ,-------------.
- * | | | | | |
- * ,------|------|------| |------+------+------.
- * | | | | | | | |
- * | | |------| |------| | |
- * | | | | | | | |
- * `--------------------' `--------------------'
- */
-[_LOWER] = LAYOUT_ergodox(
- _______, _______, _______, _______, _______, _______, _______,
- _______, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, _______,
- _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5,
- _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, _______,
- _______, _______, _______, KC_BTN1, KC_BTN2,
- _______, _______,
- _______,
- _______, _______, _______,
- // right hand
- _______, _______, _______, _______, _______, _______, _______,
- _______, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, _______,
- KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE,
- _______, KC_F12,S(KC_NUHS),S(KC_NUBS), _______, _______, _______,
- _______, _______, _______, _______, _______,
- _______, _______,
- _______,
- _______, _______, _______
-),
-/* Raise
- *
- * ,--------------------------------------------------. ,--------------------------------------------------.
- * | | | | | | | | | | | | | | | |
- * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | | 1 | 2 | 3 | 4 | 5 | | | | 6 | 7 | 8 | 9 | 0 | |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | F1 | F2 | F3 | F4 | F5 |------| |------| F6 | - | = | [ | ] | \ |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | F7 | F8 | F9 | F10 | F11 | | | | F12 |ISO ~ |ISO | | | | |
- * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * | | | | | | | | | | | |
- * `----------------------------------' `----------------------------------'
- * ,-------------. ,-------------.
- * | | | | | |
- * ,------|------|------| |------+------+------.
- * | | | | | | | |
- * | | |------| |------| | |
- * | | | | | | | |
- * `--------------------' `--------------------'
- */
-[_RAISE] = LAYOUT_ergodox(
- _______, _______, _______, _______, _______, _______, _______,
- _______, KC_1, KC_2, KC_3, KC_4, KC_5, _______,
- _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5,
- _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, _______,
- _______, _______, _______, KC_BTN1, KC_BTN2,
- _______, _______,
- _______,
- _______, _______, _______,
- // right hand
- _______, _______, _______, _______, _______, _______, _______,
- _______, KC_6, KC_7, KC_8, KC_9, KC_0, _______,
- KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS,
- _______, KC_F12,S(KC_NUHS),S(KC_NUBS), _______, _______, _______,
- _______, _______, _______, _______, _______,
- _______, _______,
- _______,
- _______, _______, _______
-),
-
-/* Plover
- *
- * ,--------------------------------------------------. ,--------------------------------------------------.
- * | # | # | # | # | # | # | | | | # | # | # | # | # | # |
- * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | | # | # | # | # | # | | | | # | # | # | # | # | # |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | Hp/Esc | S | T | P | H | * |------| |------| * | F | P | L | T | D |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | Sft/( | S | K | W | R | * | | | | * | R | B | G | S | Z |
- * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * | Exit | | | A | O | | E | U | | | |
- * `----------------------------------' `----------------------------------'
- * ,-------------. ,-------------.
- * | Enter| LGui | | Alt |Ctrl/Esc|
- * ,------|------|------| |------+--------+------.
- * | | | Home | | PgUp | | |
- * | Space| Back |------| |------| Back |Enter |
- * | | Space| End | | PgDn | Space | |
- * `--------------------' `----------------------'
- */
-[_PLOVER] = LAYOUT_ergodox(
- // left hand
- KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, XXXXXXX,
- XXXXXXX, KC_1, KC_1, KC_1, KC_1, KC_1, XXXXXXX,
- XXXXXXX, KC_Q, KC_W, KC_E, KC_R, KC_T,
- XXXXXXX, KC_A, KC_S, KC_D, KC_F, KC_G, XXXXXXX,
- EXT_PLV, XXXXXXX, XXXXXXX,KC_C, KC_V,
- KC_ENT, KC_LGUI,
- KC_HOME,
- KC_SPC,KC_BSPC,KC_END,
- // right hand
- XXXXXXX, KC_1, KC_1, KC_1, KC_1, KC_1, XXXXXXX,
- XXXXXXX, KC_1, KC_1, KC_1, KC_1, KC_1, XXXXXXX,
- KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS,
- XXXXXXX, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
- KC_N, KC_M,XXXXXXX,XXXXXXX, XXXXXXX,
- KC_LALT, CTL_T(KC_ESC),
- KC_PGUP,
- KC_PGDN,KC_BSPC, KC_ENT
- ),
-
-/* SuperDuper : https://gist.github.com/narze/861e2167784842d38771
- *
- * ,--------------------------------------------------. ,--------------------------------------------------.
- * | | | | | | | | | | | | | | | |
- * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | | | | | | | | | | | | T← | T→ | | |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | A | [SuperDuper]| Bksp | Gui |------| |------| ← | ↓ | ↑ | → | Del | |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | | | | | | | | | | | | | | |
- * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * | | | | | | | | | | | |
- * `----------------------------------' `----------------------------------'
- * ,-------------. ,-------------.
- * | | | | | |
- * ,------|------|------| |------+--------+------.
- * | | | | | | | |
- * | Shift| |------| |------| |Shift |
- * | | | | | | | |
- * `--------------------' `----------------------'
- */
-[_SUPERDUPER] = LAYOUT_ergodox(
- // left hand
- _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______,
- _______, KC_LALT, _______, _______, KC_BSPC, KC_LGUI,
- _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______,
- _______, _______,
- _______,
- KC_LSFT,_______,_______,
- // right hand
- _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, S(LGUI(KC_LBRC)), S(LGUI(KC_RBRC)), _______, _______,
- KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_DEL, _______,
- _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______,
- _______, _______,
- _______,
- _______,_______, KC_LSFT
- ),
-
-/* Dev Layer
- *
- * ,--------------------------------------------------. ,--------------------------------------------------.
- * | | | | | | | | | | | | | | | |
- * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | | | | | | | | | | | - | + | ( | ) | |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | | | | | |------| |------| _ | [ | ] | { | } | |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | | | | | | | | | = | | | < | > | ? | |
- * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * | | | | | | | | | | | |
- * `----------------------------------' `----------------------------------'
- * ,-------------. ,-------------.
- * | | | | | |
- * ,------|------|------| |------+--------+------.
- * | | | | | | | |
- * | | |------| |------| | |
- * | | | | | | | |
- * `--------------------' `----------------------'
- */
-[_DEV] = LAYOUT_ergodox(
- // left hand
- _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______,
- _______, _______,
- _______,
- _______,_______,_______,
- // right hand
- _______, _______, _______, _______, _______, _______, _______,
- _______, _______, KC_MINS, S(KC_EQL), S(KC_9), S(KC_0), _______,
- S(KC_MINS), KC_LBRC, KC_RBRC, S(KC_LBRC), S(KC_RBRC), _______,
- _______, KC_EQL, S(KC_BSLS), S(KC_COMM), S(KC_DOT), S(KC_SLSH), _______,
- _______, _______, _______, _______, _______,
- _______, _______,
- _______,
- _______,_______, _______
- ),
-
-/* Mouse
- *
- * ,--------------------------------------------------. ,--------------------------------------------------.
- * | | | | | | | | | | | | | | | |
- * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | | | S↑ | M↑ | S↓ | | | | | | | S↑ | S↓ | | |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | | M← | M↓ | M→ | |------| |------| M← | M↓ | M↑ | M→ | | |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | |[Mouse| | | | M3 | | | | M3 | | | | | |
- * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * | | | | | M2 | | M2 | | | | |
- * `----------------------------------' `----------------------------------'
- * ,-------------. ,-------------.
- * | | | | | |
- * ,------|------|------| |------+--------+------.
- * | | | | | | | |
- * | Left | |------| |------| | Left |
- * | Click| | | | | | Click|
- * `--------------------' `----------------------'
- */
-[_MOUSE] = LAYOUT_ergodox(
- // left hand
- _______, _______, _______, _______, _______, _______, _______,
- _______, _______, KC_WH_U, KC_MS_U, KC_WH_D, _______, _______,
- _______, _______, KC_MS_L, KC_MS_D, KC_MS_R, _______,
- _______, _______, _______, _______, _______, KC_BTN3, _______,
- _______, _______, _______, _______, KC_BTN2,
- _______, _______,
- _______,
- KC_BTN1,_______,_______,
- // right hand
- _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, KC_WH_U, KC_WH_D, _______, _______,
- KC_MS_L, KC_MS_D, KC_MS_U, KC_MS_R, _______, _______,
- _______, KC_BTN3, _______, _______, _______, _______, _______,
- KC_BTN2, _______, _______, _______, _______,
- _______, _______,
- _______,
- _______,_______, KC_BTN1
- ),
-
-/* Adjust (Lower + Raise)
- *
- * ,--------------------------------------------------. ,--------------------------------------------------.
- * | | | | | | | | | | | | | | | |
- * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | |Reset | | | | | | | | | | | | | Del |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | | | | |AGnorm|------| |------|AGswap|Qwerty|Colemk|QwOnCo|Plover| |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | | | | | | | | |SDTogg| | | | | |
- * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * | | | | | | | | | | | BACKLIT|
- * `----------------------------------' `----------------------------------'
- * ,-------------. ,-------------.
- * | | | | | |
- * ,------|------|------| |------+--------+------.
- * | | | | | | | |
- * | | |------| |------| | |
- * | | | | | | | |
- * `--------------------' `----------------------'
- */
-[_ADJUST] = LAYOUT_ergodox(
- // left hand
- _______, _______, _______, _______, _______, _______, _______,
- _______, QK_BOOT, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, AG_NORM,
- _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______,
- _______, _______,
- _______,
- _______,_______,_______,
- // right hand
- _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, KC_DEL,
- AG_SWAP, QWERTY, COLEMAK, QWOC, PLOVER, _______,
- _______, SDTOGG, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, BACKLIT,
- _______, _______,
- _______,
- _______,_______, _______
- ),
-
-/* Layers below are not actively used but kept for future reference */
-
-/* Symbol
- * ,---------------------------------------------------. ,--------------------------------------------------.
- * |Version | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | F11 |
- * |---------+------+------+------+------+------+------| |------+------+------+------+------+------+--------|
- * | | ! | @ | { | } | | | | | | Up | 7 | 8 | 9 | * | F12 |
- * |---------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | # | $ | ( | ) | ` |------| |------| Down | 4 | 5 | 6 | + | |
- * |---------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | % | ^ | [ | ] | ~ | | | | & | 1 | 2 | 3 | \ | |
- * `---------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * | EPRM | | | | | | | . | 0 | = | |
- * `-----------------------------------' `----------------------------------'
- * ,-------------. ,-------------.
- * |Animat| | |Toggle|Solid |
- * ,------|------|------| |------+------+------.
- * |Bright|Bright| | | |Hue- |Hue+ |
- * |ness- |ness+ |------| |------| | |
- * | | | | | | | |
- * `--------------------' `--------------------'
- */
-// SYMBOLS
-[_SYMB] = LAYOUT_ergodox(
- // left hand
- VRSN, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_TRNS,
- _______,KC_EXLM,KC_AT, KC_LCBR,KC_RCBR,KC_PIPE,_______,
- _______,KC_HASH,KC_DLR, KC_LPRN,KC_RPRN,KC_GRV,
- _______,KC_PERC,KC_CIRC,KC_LBRC,KC_RBRC,KC_TILD,_______,
- EPRM,_______,_______,_______,_______,
- RGB_MOD,_______,
- _______,
- RGB_VAD,RGB_VAI,_______,
- // right hand
- _______, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,
- _______, KC_UP, KC_7, KC_8, KC_9, KC_ASTR, KC_F12,
- KC_DOWN, KC_4, KC_5, KC_6, KC_PLUS, _______,
- _______, KC_AMPR, KC_1, KC_2, KC_3, KC_BSLS, _______,
- _______,KC_DOT, KC_0, KC_EQL, _______,
- RGB_TOG, RGB_SLD,
- _______,
- _______, RGB_HUD, RGB_HUI
-),
-/* Media and mouse keys
- *
- * ,--------------------------------------------------. ,--------------------------------------------------.
- * | | | | | | | | | | | | | | | |
- * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | | | | MsUp | | | | | | | | | | | |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | |MsLeft|MsDown|MsRght| |------| |------| | | | | | Play |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | | | | | | | | | | | Prev | Next | | |
- * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * | | | | Lclk | Rclk | |VolUp |VolDn | Mute | | |
- * `----------------------------------' `----------------------------------'
- * ,-------------. ,-------------.
- * | | | | | |
- * ,------|------|------| |------+------+------.
- * | | | | | | |Brwser|
- * | | |------| |------| |Back |
- * | | | | | | | |
- * `--------------------' `--------------------'
- */
-// MEDIA AND MOUSE
-[_MDIA] = LAYOUT_ergodox(
- _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, KC_MS_U, _______, _______, _______,
- _______, _______, KC_MS_L, KC_MS_D, KC_MS_R, _______,
- _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, KC_BTN1, KC_BTN2,
- _______, _______,
- _______,
- _______, _______, _______,
- // right hand
- _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, KC_MPLY,
- _______, _______, _______, KC_MPRV, KC_MNXT, _______, _______,
- KC_VOLU, KC_VOLD, KC_MUTE, _______, _______,
- _______, _______,
- _______,
- _______, _______, KC_WBAK
-)
-};
-
-bool process_record_user(uint16_t keycode, keyrecord_t *record) {
- switch (keycode) {
- case QWERTY:
- if (record->event.pressed) {
- set_single_persistent_default_layer(_QWERTY);
-
- set_superduper_key_combo_layer(_QWERTY);
- }
- return false;
-
- case COLEMAK:
- if (record->event.pressed) {
- set_single_persistent_default_layer(_COLEMAK);
-
- set_superduper_key_combo_layer(_COLEMAK);
- }
- return false;
-
- case QWOC:
- if (record->event.pressed) {
- set_single_persistent_default_layer(_QWOC);
-
- set_superduper_key_combo_layer(_QWOC);
- }
- return false;
-
- case LOWER:
- if (record->event.pressed) {
- layer_on(_LOWER);
- update_tri_layer(_LOWER, _RAISE, _ADJUST);
- } else {
- layer_off(_LOWER);
- update_tri_layer(_LOWER, _RAISE, _ADJUST);
- }
- return false;
-
- case RAISE:
- if (record->event.pressed) {
- layer_on(_RAISE);
- update_tri_layer(_LOWER, _RAISE, _ADJUST);
- } else {
- layer_off(_RAISE);
- update_tri_layer(_LOWER, _RAISE, _ADJUST);
- }
- return false;
-
- case BACKLIT:
- if (record->event.pressed) {
- register_code(KC_RSFT);
- #ifdef BACKLIGHT_ENABLE
- backlight_step();
- #endif
- } else {
- unregister_code(KC_RSFT);
- }
- return false;
-
- case PLOVER:
- if (record->event.pressed) {
- layer_off(_RAISE);
- layer_off(_LOWER);
- layer_off(_ADJUST);
- layer_on(_PLOVER);
- if (!eeconfig_is_enabled()) {
- eeconfig_init();
- }
- keymap_config.raw = eeconfig_read_keymap();
- keymap_config.nkro = 1;
- eeconfig_update_keymap(keymap_config.raw);
- }
- return false;
-
- case EXT_PLV:
- if (record->event.pressed) {
- layer_off(_PLOVER);
- }
- return false;
-
- case SDTOGG:
- if (record->event.pressed) {
- toggle_superduper_mode();
- }
- return false;
-
- case VRSN:
- if (record->event.pressed) {
- SEND_STRING(QMK_KEYBOARD "/" QMK_KEYMAP " @ " QMK_VERSION);
- }
- return false;
-
- case RGB_SLD:
- if (record->event.pressed) {
- #ifdef RGBLIGHT_ENABLE
- rgblight_mode(1);
- #endif
- }
- return false;
-
- // Macros
-
- // 1. Hold for LGUI, tap for Underscore
- case GUI_UNDS:
- perform_space_cadet(record, keycode, KC_LGUI, KC_LSFT, KC_MINS);
- return false;
-
- // 2. Hold for LSHIFT, tap for Parens open
- case LSFT_LPRN:
- perform_space_cadet(record, keycode, KC_LSFT, KC_LSFT, KC_9);
- return false;
-
- // 3. Hold for RSHIFT, tap for Parens close
- case RSFT_RPRN:
- perform_space_cadet(record, keycode, KC_RSFT, KC_RSFT, KC_0);
- return false;
-
- }
- return true;
-}
-
-void matrix_init_user(void) {
-
-}
-
-void matrix_setup(void) {
- set_superduper_key_combos();
-}
-
-void matrix_scan_user(void) {
- // uint8_t layer = get_highest_layer(layer_state);
-
- // ergodox_board_led_off();
- // ergodox_right_led_1_off();
- // ergodox_right_led_2_off();
- // ergodox_right_led_3_off();
- // switch (layer) {
- // // TODO: Make this relevant to the ErgoDox EZ.
- // case 1:
- // ergodox_right_led_1_on();
- // break;
- // case 2:
- // ergodox_right_led_2_on();
- // break;
- // default:
- // // none
- // break;
- // }
-}
-
-// Combos
-
-void process_combo_event(uint16_t combo_index, bool pressed) {
- if (pressed) {
- switch(combo_index) {
- case CB_SUPERDUPER:
- layer_on(_SUPERDUPER);
- ergodox_board_led_on();
- break;
- }
- } else {
- layer_off(_SUPERDUPER);
- ergodox_board_led_off();
- unregister_mods(MOD_BIT(KC_LGUI) | MOD_BIT(KC_LCTL) | MOD_BIT(KC_LALT)); // Sometimes mods are held, unregister them
- }
-}
diff --git a/keyboards/input_club/ergodox_infinity/keymaps/narze/readme.md b/keyboards/input_club/ergodox_infinity/keymaps/narze/readme.md
deleted file mode 100644
index 3094b021e0..0000000000
--- a/keyboards/input_club/ergodox_infinity/keymaps/narze/readme.md
+++ /dev/null
@@ -1,31 +0,0 @@
-# narze's layout
-
-## Notes
-- SuperDuper mode for Ergodox is still under development, since combo keys does not work very well on Ergodox firmware.
- Now it is using multiple layers as a workaround. Actual implementation using combos are on my Planck layout.
-
-## Key features
-- Qwerty + [Colemak](https://colemak.com) layouts, and you can type Qwerty on software-level Colemak as well. Very useful for gaming or when your friend wanna type something but don't use Colemak.
-- [(S)uper (D)uper Mode](/users/narze/readme.md)
-- Mouse keys with Z
-
-## Build instructions
-If your environment is ready to build with `make`, don't use docker since it takes 5m+ to compile.
-Use the instructions in Ergodox Infinity's readme.
-
-#### Left side (Docker)
-```
-cd /path/to/qmk_firmware
-util/docker_build.sh ergodox_infinity:narze
-avr-objcopy -Iihex -Obinary .build/ergodox_infinity_narze.hex .build/ergodox_infinity_narze_left.bin
-dfu-util --device 1c11:b007 -D .build/ergodox_infinity_narze_left.bin
-```
-
-#### Right side (Docker)
-You have to override `usb_args` in order to pass `MASTER=right` to docker using provided build script.
-```
-cd /path/to/qmk_firmware
-usb_args="-e MASTER=right" util/docker_build.sh ergodox_infinity:narze
-avr-objcopy -Iihex -Obinary .build/ergodox_infinity_narze.hex .build/ergodox_infinity_narze_right.bin
-dfu-util --device 1c11:b007 -D .build/ergodox_infinity_narze_right.bin
-```
diff --git a/keyboards/input_club/ergodox_infinity/keymaps/narze/rules.mk b/keyboards/input_club/ergodox_infinity/keymaps/narze/rules.mk
deleted file mode 100644
index 4a4ed58610..0000000000
--- a/keyboards/input_club/ergodox_infinity/keymaps/narze/rules.mk
+++ /dev/null
@@ -1,23 +0,0 @@
-
-
-# Build Options
-# change to "no" to disable the options, or define them in the Makefile in
-# the appropriate keymap folder that will get included automatically
-#
-BOOTMAGIC_ENABLE = no # Enable Bootmagic Lite
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
-COMMAND_ENABLE = yes # Commands for debug and configuration
-NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
-BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
-MIDI_ENABLE = no # MIDI controls
-AUDIO_ENABLE = no # Audio output on port C6
-UNICODE_ENABLE = no # Unicode
-BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
-RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight.
-
-# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
-SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
-
-COMBO_ENABLE = yes
diff --git a/keyboards/input_club/ergodox_infinity/keymaps/narze/visualizer.c b/keyboards/input_club/ergodox_infinity/keymaps/narze/visualizer.c
deleted file mode 100644
index 88f658d6b9..0000000000
--- a/keyboards/input_club/ergodox_infinity/keymaps/narze/visualizer.c
+++ /dev/null
@@ -1,94 +0,0 @@
-/*
-Copyright 2017 Fred Sundvik
-
-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 "simple_visualizer.h"
-#include "util.h"
-
-// Copied from keymap.c
-enum ergodox_layers {
- _QWERTY,
- _COLEMAK,
- _QWOC,
- _LOWER,
- _RAISE,
- _PLOVER,
-// Intermediate layers for SuperDuper (Combo keys does not work on Infinity yet)
- _SUPER,
- _DUPER,
- _SUPERDUPER,
- _MOUSE,
- _ADJUST,
- _MDIA,
- _SYMB,
-};
-
-// This function should be implemented by the keymap visualizer
-// Don't change anything else than state->target_lcd_color and state->layer_text as that's the only thing
-// that the simple_visualizer assumes that you are updating
-// Also make sure that the buffer passed to state->layer_text remains valid until the previous animation is
-// stopped. This can be done by either double buffering it or by using constant strings
-static void get_visualizer_layer_and_color(visualizer_state_t* state) {
- uint8_t saturation = 255;
-
- uint8_t layer = biton32(state->status.layer);
- state->target_lcd_color = LCD_COLOR(layer << 2, saturation, 0xFF);
-
- switch(layer) {
- case _QWERTY:
- state->layer_text = "QWERTY";
- break;
- case _COLEMAK:
- state->layer_text = "COLEMAK";
- break;
- case _QWOC:
- state->layer_text = "QWERTY on COLEMAK";
- break;
- case _LOWER:
- state->layer_text = "LOWER";
- break;
- case _RAISE:
- state->layer_text = "RAISE";
- break;
- case _PLOVER:
- state->layer_text = "PLOVER";
- break;
- case _SUPERDUPER:
- state->layer_text = "SUPERDUPER";
- break;
- case _SUPER:
- state->layer_text = "SUPER";
- break;
- case _DUPER:
- state->layer_text = "DUPER";
- break;
- case _MOUSE:
- state->layer_text = "MOUSE";
- break;
- case _ADJUST:
- state->layer_text = "ADJUST";
- break;
- case _MDIA:
- state->layer_text = "MDIA";
- break;
- case _SYMB:
- state->layer_text = "SYMB";
- break;
- default:
- state->layer_text = "NONE";
- break;
- }
-}
diff --git a/keyboards/input_club/ergodox_infinity/keymaps/not-quite-neo/keymap.c b/keyboards/input_club/ergodox_infinity/keymaps/not-quite-neo/keymap.c
deleted file mode 100644
index a49fe882ea..0000000000
--- a/keyboards/input_club/ergodox_infinity/keymaps/not-quite-neo/keymap.c
+++ /dev/null
@@ -1,267 +0,0 @@
-#include QMK_KEYBOARD_H
-
-/*
-NQN is not-quite-neo
-A layout based on neo2
-*/
-
-#include "action_layer.h"
-#include "version.h"
-
-#include "nqn-keys-on-quertz-de-latin1.h"
-#include "nqn-basic-layout.h"
-
-// Since our quirky block definitions are basically a list of comma separated
-// arguments, we need a wrapper in order for these definitions to be
-// expanded before being used as arguments to the LAYOUT_xxx macro.
-#define LAYOUT_ergodox_wrapper(...) LAYOUT_ergodox(__VA_ARGS__)
-
-#ifdef LEADER_TIMEOUT
-#undef LEADER_TIMEOUT
-#endif
-#define LEADER_TIMEOUT 300
-
-// Automatic number generation of important keywords
-enum my_keycodes{
- // Layer numbers follow the neo2 terminology, i.e. base layer = layer 1
- L01 = 0,
- /* L02, SHIFT is not (yet) implemented as a fully customizable layer */
- L03,
- L04,
- L05,
- /* L06, UNSPECIFIED not (yet) needed */
- LFN
-};
-
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-/* L01 -> default: BASE LAYER
- * ,--------------------------------------------------. ,--------------------------------------------------.
- * | TAB | 1 | 2 | 3 | 4 | 5 | | | | 6 | 7 | 8 | 9 | 0 | BACKSP |
- * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | ESC | | LEADR| | LEADR| | ENTER |
- * |--------+ | | | | +--------|
- * | L03 | L01_LEFT |------| |------| L01_RIGHT | L03 |
- * |--------+ | LFN | | LFN | +--------|
- * | SHIFT | | | | | | SHIFT |
- * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * | CTRL | GUI | ALT | L05 | L04 | | L04 | L05 | ALTGR| LFN | CTRL |
- * `----------------------------------' `----------------------------------'
- * ,-------------. ,-------------.
- * | HOME | END | | LEFT | RIGHT|
- * ,------|------|------| |------+------+------.
- * | | | PGUP | | UP | | |
- * | SPACE| SHIFT|------| |------| SHIFT| SPACE|
- * | | | PGDN | | DOWN | | |
- * `--------------------' `--------------------'
- */
-[L01] = LAYOUT_ergodox_wrapper(
- KC_TAB, KC_1, KC_2, KC_3, KC_4, KC_5, XXXXXXX,
- KC_ESC, L01_LEFT_01, QK_LEAD,
- MO(L03), L01_LEFT_02,
- KC_LSFT, L01_LEFT_03, MO(LFN),
- KC_LCTL, KC_LGUI,KC_LALT, MO(L05), MO(L04),
- XXXXXXX, XXXXXXX,
- KC_PGUP,
- KC_SPACE,KC_LSFT, KC_PGDN,
- //--
- XXXXXXX, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC,
- QK_LEAD, L01_RIGHT_01, KC_ENTER,
- L01_RIGHT_02, MO(L03),
- MO(LFN), L01_RIGHT_03, KC_RSFT,
- MO(L04), MO(L05), KC_RALT, MO(LFN), KC_RCTL,
- KC_LEFT, KC_RIGHT,
- KC_UP,
- KC_DOWN, KC_RSFT, KC_SPACE
-),
-
-
-/*
-L02 -> MO(L02): SHIFT (as a layer not used, not defined, not reachable)
- */
-
-
-/* L03 -> MO(L03): PROGRAMMING
- * ,--------------------------------------------------. ,--------------------------------------------------.
- * | | | | | | | | | | | | | | | |
- * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | | | | | | | |
- * |--------+ | | | | +--------|
- * | | L03_LEFT |------| |------| L03_RIGHT | |
- * |--------+ | | | | +--------|
- * | | | | | | | |
- * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * | | | | | | | | | | | |
- * `----------------------------------' `----------------------------------'
- * ,-------------. ,-------------.
- * | | | | | |
- * ,------|------|------| |------+------+------.
- * | | | | | | | |
- * | | |------| |------| | |
- * | | | | | | | |
- * `--------------------' `--------------------'
- */
-[L03] = LAYOUT_ergodox_wrapper(
- _______, _______, _______, _______, _______, _______, _______,
- _______, L03_LEFT_01, _______,
- _______, L03_LEFT_02,
- _______, L03_LEFT_03, _______,
- _______, _______, _______, _______, _______,
- _______, _______,
- _______,
- _______, _______, _______,
- //--
- _______, _______, _______, _______, _______, _______, _______,
- _______, L03_RIGHT_01, _______,
- L03_RIGHT_02, _______,
- _______, L03_RIGHT_03, _______,
- _______, _______, _______, _______, _______,
- _______, _______,
- _______,
- _______, _______, _______
-),
-
-/* L04 -> MO(L04): NAVIGATION AND NUMBERS
- * ,--------------------------------------------------. ,--------------------------------------------------.
- * | | | | | | | | | | | | | | | |
- * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | | | | | | | |
- * |--------+ | | | | +--------|
- * | | L04_LEFT |------| |------| L04_RIGHT | |
- * |--------+ | | | | +--------|
- * | | | | | | | |
- * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * | | | | | | | | | | | |
- * `----------------------------------' `----------------------------------'
- * ,-------------. ,-------------.
- * | | | | | |
- * ,------|------|------| |------+------+------.
- * | | | | | | | |
- * | 0 | |------| |------| | 0 |
- * | | | | | | | |
- * `--------------------' `--------------------'
- */
-[L04] = LAYOUT_ergodox_wrapper(
- _______, _______, _______, _______, _______, _______, _______,
- _______, L04_LEFT_01, _______,
- _______, L04_LEFT_02,
- _______, L04_LEFT_03, _______,
- _______, _______, _______, _______, _______,
- _______, _______,
- _______,
- KC_0, _______, _______,
- //--
- _______, _______, _______, _______, _______, _______, _______,
- _______, L04_RIGHT_01, _______,
- L04_RIGHT_02, _______,
- _______, L04_RIGHT_03, _______,
- _______, _______, _______, _______, _______,
- _______, _______,
- _______,
- _______, _______, KC_0
-),
-
-
-/* L05 -> MO(L05): ALTERNATE
- * ,--------------------------------------------------. ,--------------------------------------------------.
- * | | | | | | | | | | | | | | | |
- * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | | | | | | | |
- * |--------+ | | | | +--------|
- * | | L05_LEFT |------| |------| L05_RIGHT | |
- * |--------+ | | | | +--------|
- * | | | | | | | |
- * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * | | | | | | | | | | | |
- * `----------------------------------' `----------------------------------'
- * ,-------------. ,-------------.
- * | | | | | |
- * ,------|------|------| |------+------+------.
- * | | | | | | | |
- * | | |------| |------| | |
- * | | | | | | | |
- * `--------------------' `--------------------'
- */
-[L05] = LAYOUT_ergodox_wrapper(
- _______, _______, _______, _______, _______, _______, _______,
- _______, L05_LEFT_01, _______,
- _______, L05_LEFT_02,
- _______, L05_LEFT_03, _______,
- _______, _______, _______, _______, _______,
- _______, _______,
- _______,
- _______, _______, _______,
- //--
- _______, _______, _______, _______, _______, _______, _______,
- _______, L05_RIGHT_01, _______,
- L05_RIGHT_02, _______,
- _______, L05_RIGHT_03, _______,
- _______, _______, _______, _______, _______,
- _______, _______,
- _______,
- _______, _______, _______
-),
-
-
-/*
-L06 -> <TBD>: UNSPECIFIED
-*/
-
-
-/* LFN -> MO(FN): FUNCTION
- * ,--------------------------------------------------. ,--------------------------------------------------.
- * | QK_BOOT | | | | | | | | | | | | | | QK_BOOT |
- * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | | | | | | | BACKSPC|
- * |--------+ | | | | +--------|
- * | | L06_LEFT |------| |------| L06_RIGHT | INSERT |
- * |--------+ | | | | +--------|
- * | | | | | | | DELETE |
- * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * | | | | | | | VOL+ | VOL- | MUTE | | |
- * `----------------------------------' `----------------------------------'
- * ,-------------. ,-------------.
- * | | | | | |
- * ,------|------|------| |------+------+------.
- * | | | | | | | |
- * | | |------| |------| | |
- * | | | | | | | |
- * `--------------------' `--------------------'
- */
-[LFN] = LAYOUT_ergodox_wrapper(
- QK_BOOT, _______, _______, _______, _______, _______, _______,
- _______, L06_LEFT_01, _______,
- _______, L06_LEFT_02,
- _______, L06_LEFT_03, _______,
- _______, _______, _______, _______, _______,
- _______, _______,
- _______,
- _______, _______, _______,
- //--
- _______, _______, _______, _______, _______, _______, QK_BOOT,
- _______, L06_RIGHT_01, KC_BSPC,
- L06_RIGHT_02, KC_INSERT,
- _______, L06_RIGHT_03, KC_DELETE,
- KC_VOLU, KC_VOLD, KC_MUTE, _______, _______,
- _______, _______,
- _______,
- _______, _______, _______
-)
-
-};
-
-void leader_end_user(void) {
- if (leader_sequence_one_key(KC_1)) {
- send_unicode_string("¯\\_(ツ)_/¯");
- }
-
- if (leader_sequence_one_key(KC_2)) {
- send_unicode_string("凸(ツ)凸");
- }
-}
-
-
-// Runs just one time when the keyboard initializes.
-void matrix_init_user(void) {
- set_unicode_input_mode(UNICODE_MODE_LINUX);
-};
diff --git a/keyboards/input_club/ergodox_infinity/keymaps/not-quite-neo/readme.md b/keyboards/input_club/ergodox_infinity/keymaps/not-quite-neo/readme.md
deleted file mode 100644
index 3fcb4edf0d..0000000000
--- a/keyboards/input_club/ergodox_infinity/keymaps/not-quite-neo/readme.md
+++ /dev/null
@@ -1,5 +0,0 @@
-# not-quite-neo
-
-This is my personal take on porting the [neo2 layout](https://www.neo-layout.org/) to support multiple keyboards.
-
-Refer to the [readme.md](../../../../users/not-quite-neo/readme.md) of the generic parts of the implementation. \ No newline at end of file
diff --git a/keyboards/input_club/ergodox_infinity/keymaps/not-quite-neo/rules.mk b/keyboards/input_club/ergodox_infinity/keymaps/not-quite-neo/rules.mk
deleted file mode 100644
index 74505bd69e..0000000000
--- a/keyboards/input_club/ergodox_infinity/keymaps/not-quite-neo/rules.mk
+++ /dev/null
@@ -1,3 +0,0 @@
-BACKLIGHT_ENABLE = yes
-UNICODE_ENABLE = yes
-LEADER_ENABLE = yes
diff --git a/keyboards/input_club/infinity60/halconf.h b/keyboards/input_club/infinity60/halconf.h
deleted file mode 100644
index f2a330b416..0000000000
--- a/keyboards/input_club/infinity60/halconf.h
+++ /dev/null
@@ -1,27 +0,0 @@
-/* Copyright 2020 QMK
- *
- * 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/>.
- */
-
-/*
- * This file was auto-generated by:
- * `qmk chibios-confmigrate -i keyboards/infinity60/halconf.h -r platforms/chibios/common/configs/halconf.h`
- */
-
-#pragma once
-
-#define HAL_USE_I2C TRUE
-
-#include_next <halconf.h>
-
diff --git a/keyboards/input_club/infinity60/keymaps/default/keymap.c b/keyboards/input_club/infinity60/keymaps/default/keymap.c
index 8f571a2b9e..29ee5a378e 100644
--- a/keyboards/input_club/infinity60/keymaps/default/keymap.c
+++ b/keyboards/input_club/infinity60/keymaps/default/keymap.c
@@ -1,3 +1,6 @@
+// Copyright 2023 QMK
+// SPDX-License-Identifier: GPL-2.0-or-later
+
#include QMK_KEYBOARD_H
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
diff --git a/keyboards/input_club/infinity60/keymaps/jpetermans/config.h b/keyboards/input_club/infinity60/keymaps/jpetermans/config.h
deleted file mode 100644
index 1949a9ad9d..0000000000
--- a/keyboards/input_club/infinity60/keymaps/jpetermans/config.h
+++ /dev/null
@@ -1,6 +0,0 @@
-#pragma once
-
-//overrides
-#undef TAPPING_TOGGLE
-#define TAPPING_TOGGLE 2
-
diff --git a/keyboards/input_club/infinity60/keymaps/jpetermans/keymap.c b/keyboards/input_club/infinity60/keymaps/jpetermans/keymap.c
deleted file mode 100644
index d82517b662..0000000000
--- a/keyboards/input_club/infinity60/keymaps/jpetermans/keymap.c
+++ /dev/null
@@ -1,264 +0,0 @@
-#include QMK_KEYBOARD_H
-#include "led_controller.h"
-
-//Define Layer Names
-#define _BASE 0
-#define _NUMPAD 1
-#define _FNAV 2
-#define _MEDIA 3
-#define _TILDE 4
-
-//IS31 chip has 8 available led pages, using 0 for all leds and 7 for single toggles
-#define max_pages 6
-
-enum led_modes {
- MODE_ALL,
- MODE_GAME,
- MODE_SINGLE,
- MODE_PAGE,
- MODE_FLASH
-};
-
-enum macro_id {
- LED_ALL = SAFE_RANGE,
- LED_GAME,
- LED_BACKLIGHT,
- LED_BRIGHT,
- LED_DIM,
- LED_SINGLE,
- LED_PAGE,
- LED_FLASH
-};
-
-uint8_t current_layer_global = 0;
-uint8_t led_mode_global = MODE_SINGLE;
-uint8_t backlight_status_global = 1; //init on/off state of backlight
-uint32_t led_layer_state = 0;
-
-/* ==================================
- * KEYMAPS
- * ==================================*/
-
-const uint16_t keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- /* Layer 0: Default Layer
- * ,-----------------------------------------------------------.
- * |Esc| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =| Backs|
- * |-----------------------------------------------------------|
- * |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \|
- * |-----------------------------------------------------------|
- * |CapsLo| A| S| D| F| G| H| J| K| L| ;| '|Enter |
- * |-----------------------------------------------------------|
- * |Shif| | Z| X| C| V| B| N| M| ,| .| /|Shift |
- * |-----------------------------------------------------------|
- * |Ctrl|Gui |Alt | Space |Alt |Gui | FN | Ctrl |
- * `-----------------------------------------------------------'
- */
- /* default */
- [_BASE] = LAYOUT_60_ansi_split_bs_rshift(
- KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS,KC_EQL, KC_BSLS,KC_NO,
- 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_BSPC,
- TT(_FNAV), 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,LM(_TILDE, MOD_LSFT),KC_NO,
- KC_LCTL, KC_LGUI,KC_LALT, LT(_FNAV, KC_SPC), KC_RALT,TG(_NUMPAD),MO(_MEDIA), KC_RCTL
- ),
-
- /* numpad */
- [_NUMPAD] = LAYOUT_60_ansi_split_bs_rshift(
- _______,_______,_______,_______,_______,_______,_______, KC_P7, KC_P8, KC_P9, KC_PSLS, _______,_______,_______,KC_NO,
- _______,_______,_______,_______,_______,_______,_______, KC_P4, KC_P5, KC_P6, KC_PAST, _______,_______,_______,
- MO(_FNAV),_______,_______,_______,_______,_______,_______, KC_P1, KC_P2, KC_P3, KC_PMNS, _______,_______,
- _______,_______,_______,_______,_______,_______,_______, KC_P0,KC_COMM,KC_PDOT,KC_PPLS, _______,KC_NO,
- _______,_______,_______, TO(_BASE), _______,_______,_______,_______
- ),
-
- /* F-, arrow, and media keys */
- [_FNAV] = LAYOUT_60_ansi_split_bs_rshift(
- KC_GRV, 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_CAPS,_______,_______,_______,_______,_______,_______,KC_PGUP,KC_UP,KC_PGDN,KC_PSCR,_______,_______,KC_DEL,
- _______,_______,KC_BTN2,_______,_______,_______,KC_HOME,KC_LEFT,KC_DOWN,KC_RGHT,KC_INS,_______,_______,
- _______,KC_APP,KC_BTN1,KC_CALC,_______,_______,KC_END,_______,_______,_______,_______,_______,KC_NO,
- _______,_______,_______, _______, C(A(KC_DEL)),KC_NUM,_______,_______
- ),
-
- /* media */
- [_MEDIA] = LAYOUT_60_ansi_split_bs_rshift(
- _______,LED_SINGLE,LED_PAGE,LED_FLASH,_______,_______,_______, _______, _______, _______,KC_MUTE, KC_VOLD, KC_VOLU,_______,KC_NO,
- _______,_______,_______,_______,_______,_______,_______, _______, _______, _______,_______, _______,_______,_______,
- _______,_______,_______,_______,_______,LED_GAME,_______, _______, _______, _______,_______, _______,_______,
- _______,_______,LED_ALL ,LED_BRIGHT,LED_DIM,LED_BACKLIGHT,_______, _______, KC_MPRV, KC_MNXT,KC_MSTP, _______,KC_NO,
- _______,_______,_______, KC_MPLY, _______,_______, _______,_______
- ),
- /* ~ */
- [_TILDE] = LAYOUT_60_ansi_split_bs_rshift(
- KC_GRV,_______,_______,_______,_______,_______,_______, _______, _______, _______,_______, _______,_______,_______,KC_NO,
- _______,_______,_______,_______,_______,_______,_______, _______, _______, _______,_______, _______,_______,_______,
- _______,_______,_______,_______,_______,_______,_______, _______, _______, _______,_______, _______,_______,
- _______,_______,_______,_______,_______,_______,_______, _______, _______, _______,_______, _______,KC_NO,
- _______,_______,_______, _______, _______,_______, _______,_______
- ),
- /* template */
- [5] = LAYOUT_60_ansi_split_bs_rshift(
- _______,_______,_______,_______,_______,_______,_______, _______, _______, _______,_______, _______,_______,_______,KC_NO,
- _______,_______,_______,_______,_______,_______,_______, _______, _______, _______,_______, _______,_______,_______,
- _______,_______,_______,_______,_______,_______,_______, _______, _______, _______,_______, _______,_______,
- _______,_______,_______,_______,_______,_______,_______, _______, _______, _______,_______, _______,KC_NO,
- _______,_______,_______, _______, _______,_______, _______,_______
- ),
-};
-
-/* ==================================
- * LED MAPPING
- * ==================================*/
-
-/*
- Infinity60 LED MAP
- 11 12 13 14 15 16 17 18 21 22 23 24 25 26 27*
- 28 31 32 33 34 35 36 37 38 41 42 43 44 45
- 46 47 48 51 52 53 54 55 56 57 58 61 62
- 63 64 65 66 67 68 71 72 73 74 75 76 77*
- 78 81 82 83 84 85 86 87
- *Unused in Alphabet Layout
-*/
-
-//======== full page arrays =========
-//any change in array size needs to be mirrored in matrix_init_user
-uint8_t led_numpad[16] = {
- 18,21,22,23,
- 37,38,41,42,
- 55,56,57,58,
- 72,73,74,75
-};
-//LED Page 2 - _Nav
-uint8_t led_nav[12] = {
- 38,
- 47,48, 55,56,57,
- 64,65,66
-};
-//LED Page 3 - _Media
-uint8_t led_media[15] = {
- 12,13,14, 23,24,25,
- 65,66,67,68, 73,74,75,
- 83, 86
-};
-//LED Page 4 - _Game "WASD"
-uint8_t led_game[5] = {
- 11,
- 32,
- 47,48,51
-};
-
-bool process_record_user(uint16_t keycode, keyrecord_t *record) {
- msg_t msg;
-
- switch(keycode) {
- case LED_ALL:
- if(record->event.pressed) {
- led_mode_global = led_mode_global == MODE_ALL ? MODE_SINGLE : MODE_ALL;
- msg=TOGGLE_ALL;
- chMBPost(&led_mailbox, msg, TIME_IMMEDIATE);
- }
- return false;
-
- case LED_BACKLIGHT:
- if(record->event.pressed) {
- backlight_status_global ^= 1;
- msg=(backlight_status_global << 8) | TOGGLE_BACKLIGHT;
- chMBPost(&led_mailbox, msg, TIME_IMMEDIATE);
- }
- return false;
-
- case LED_GAME:
- if(record->event.pressed) {
- led_mode_global = led_mode_global == MODE_GAME ? MODE_SINGLE : MODE_GAME;
-
- msg=(4 << 8) | DISPLAY_PAGE;
- chMBPost(&led_mailbox, msg, TIME_IMMEDIATE);
- }
- return false;
-
- case LED_BRIGHT:
- if(record->event.pressed) {
- msg=(1 << 8) | STEP_BRIGHTNESS;
- chMBPost(&led_mailbox, msg, TIME_IMMEDIATE);
- }
- return false;
-
- case LED_DIM:
- if(record->event.pressed) {
- msg=(0 << 8) | STEP_BRIGHTNESS;
- chMBPost(&led_mailbox, msg, TIME_IMMEDIATE);
- }
- return false;
-
- //set led_mode for matrix_scan to toggle leds
- case LED_SINGLE:
- led_mode_global = MODE_SINGLE;
- return false;
- case LED_PAGE:
- led_mode_global = MODE_PAGE;
- return false;
- case LED_FLASH:
- led_mode_global = MODE_FLASH;
- return false;
-
- }
- return true;
-}
-
-// Runs just one time when the keyboard initializes.
-void matrix_init_user(void) {
-
- led_controller_init();
-
- // Write predefined led pages.
- write_led_page(_NUMPAD, led_numpad, 16);
- chThdSleepMilliseconds(10);
-
- write_led_page(_FNAV, led_nav, 12);
- chThdSleepMilliseconds(10);
-
- write_led_page(_MEDIA, led_media, 15);
- chThdSleepMilliseconds(10);
-
- write_led_page(4, led_game, 5);
- chThdSleepMilliseconds(1000);
-};
-
-// Loops constantly in the background.
-void matrix_scan_user(void) {
- uint8_t page;
- uint8_t led_pin_byte;
- msg_t msg;
-
- if (backlight_status_global == 0) {//backlight is off, skip the rest
- return;
- }
-
- if (led_layer_state != layer_state && led_mode_global != MODE_GAME && led_mode_global != MODE_ALL) {
- //check mode
- //Turn on layer indicator or page depending on mode
- switch(led_mode_global) {
- case MODE_FLASH: //flash preset page leds then single indicator
- page = get_highest_layer(layer_state) > max_pages ? 7 : get_highest_layer(layer_state);
- msg=(page << 8) | DISPLAY_PAGE;
- chMBPost(&led_mailbox, msg, TIME_IMMEDIATE);
- chThdSleepMilliseconds(500);
- //flow to display single layer leds
-
- case MODE_SINGLE: //light layer indicators for all active layers
- led_pin_byte = layer_state & 0xFF;
- msg=(7 << 8) | DISPLAY_PAGE;
- chMBPost(&led_mailbox, msg, TIME_IMMEDIATE);
- msg=(1 << 16) | (led_pin_byte << 8) | SET_FULL_ROW;
- chMBPost(&led_mailbox, msg, TIME_IMMEDIATE);
- break;
-
- case MODE_PAGE: //display pre-defined led page
- page = get_highest_layer(layer_state) > max_pages ? 7 : get_highest_layer(layer_state);
- msg=(page << 8) | DISPLAY_PAGE;
- chMBPost(&led_mailbox, msg, TIME_IMMEDIATE);
- break;
- }
- led_layer_state = layer_state;
- }
-}
diff --git a/keyboards/input_club/infinity60/keymaps/jpetermans/readme.md b/keyboards/input_club/infinity60/keymaps/jpetermans/readme.md
deleted file mode 100644
index 00421015bd..0000000000
--- a/keyboards/input_club/infinity60/keymaps/jpetermans/readme.md
+++ /dev/null
@@ -1,87 +0,0 @@
-Backlight for Infinity60
-========================
-
-## Led Controller Specs
-
-The Infinity60 (revision 1.1a) pcb uses the IS31FL3731C matrix LED driver from ISSI [(datasheet)](http://www.issi.com/WW/pdf/31FL3731C.pdf). The IS31 has the ability to control two led matrices (A & B), each matrix controlling 9 pins, each pin controlling 8 leds. The Infinity only utilizes matrix A.
-
-Infinity60 LED Map:
-digits mean "row" and "col", i.e. 45 means pin 4, column 5 in the IS31 datasheet
-```c
- 11 12 13 14 15 16 17 18 21 22 23 24 25 26 27*
- 28 31 32 33 34 35 36 37 38 41 42 43 44 45
- 46 47 48 51 52 53 54 55 56 57 58 61 62
- 63 64 65 66 67 68 71 72 73 74 75 76 77*
- 78 81 82 83 84 85 86 87
-```
-*Unused in Alphabet Layout
-
-The IS31 includes 8 led pages (or frames) 0-7 than can be displayed, and each page consists of 144 bytes.
-- **bytes 0 - 17** - LED control (on/off).
- * 18 bytes which alternate between A and B matrices (A1, B1, A2, B2, ..).
- * Each byte controls the 8 leds on that pin with bits (8 to 1).
-- **bytes 8 - 35** - Blink control.
- * Same as LED control above, but sets blink on/off.
-- **bytes 36 - 143** - PWM control.
- * One byte per LED, sets PWM from 0 to 255.
- * Same as above, the register alternates, every 8 *bytes* (not bits) between the A & B matrices.
-
-## Led Controller Code
-In the Infinity60 project folder, led_controller.c sets up ability to write led layers at startup or control leds on demand as part of fn_actions. By default led_controller.c assumes page 0 will be used for full on/off. The remaining 7 pages (1-7) are free for preset led maps or single led actions at init or on demand. Communication with the IS31 is primarily done through the led_mailbox using chMBPost described further below under "Sending messages in Keymap.c". This code is based on work matt3o and flabbergast did for tmk firmware on the [whitefox](https://github.com/tmk/whitefox).
-
-One function is available to directly set leds without the mailbox:
-```
-write_led_page(page#, array of leds by address, # of addresses in array)
-```
-This function saves a full page to the controller using a supplied array of led locations such as:
-```c
-uint8_t led_numpad[16] = {
- 18,21,22,23,
- 37,38,41,42,
- 55,56,57,58,
- 72,73,74,75
-}
-write_led_page(5, led_numpad, 16);
-```
-
-Remaining led control is done through the led mailbox using these message types:
-- **SET_FULL_ROW** (3 bytes) - message type, 8-bit mask, and row#. Sets all leds on one pin per the bit mask.
-- **OFF_LED, ON_LED, TOGGLE_LED** (3 bytes) - message type, led address, and page#. Off/on/toggle specific led.
-- **BLINK_OFF_LED, BLINK_ON_LED, BLINK_TOGGLE_LED** (3 bytes) - message type, led address, and page#. Set blink Off/on/toggle for specific led.
-- **TOGGLE_ALL** (1 byte) - Turn on/off full backlight.
-- **TOGGLE_BACKLIGHT** (2 bytes) - message type, on/off. Sets backlight completely off, no leds will display.
-- **DISPLAY_PAGE** (2 bytes) - message type, page to display. Switch to specific pre-set page.
-- **RESET_PAGE** (2 bytes) - message type, page to reset. Reset/erase specific page.
-- **TOGGLE_NUM_LOCK** (2 bytes) - message type, on/off (NUM_LOCK_LED_ADDRESS). Toggle numlock on/off. Usually run with the `set_leds` function to check state of numlock or capslock. If all leds are on (e.i. TOGGLE_ALL) then this sets numlock to blink instead (this is still a little buggy if toggling on/off quickly).
-- **TOGGLE_CAPS_LOCK** (2 bytes) - message type, on/off (CAPS_LOCK_LED_ADDRESS). Same as numlock.
-- **STEP_BRIGHTNESS** (2 bytes) - message type, and step up (1) or step down (0). Increase or decrease led brightness.
-
-## Sending messages in Keymap.c
-Sending an action to the led mailbox is done using chMBPost:
-```
-chMBPost(&led_mailbox, message, timeout);
-```
-- &led_mailbox - pointer to led mailbox
-- message - up to 4 bytes but most messages use only 2. First byte (LSB) is the message type, the remaining three bytes are the message to process.
-- timeout is TIME_IMMEDIATE
-
-An example:
-```c
-//set the message to be sent. First byte (LSB) is the message type, and second is the led address
-msg=(42 << 8) | ON_LED;
-
-//send msg to the led mailbox
-chMBPost(&led_mailbox, msg, TIME_IMMEDIATE);
-```
-
-Another:
-```c
-msg=(46 << 8) | BLINK_TOGGLE_LED;
-chMBPost(&led_mailbox, msg, TIME_IMMEDIATE);
-```
-
-Finally, SET_FULL_ROW requires an extra byte with row information in the message so sending this message looks like:
-```c
-msg=(row<<16) | (led_pin_byte << 8) | SET_FULL_ROW;
-chMBPost(&led_mailbox, msg, TIME_IMMEDIATE);
-```
diff --git a/keyboards/input_club/infinity60/led.c b/keyboards/input_club/infinity60/led.c
deleted file mode 100644
index 33871bcc49..0000000000
--- a/keyboards/input_club/infinity60/led.c
+++ /dev/null
@@ -1,58 +0,0 @@
-/*
-Copyright 2015 Jun Wako <wakojun@gmail.com>
-Copyright 2017 jpetermans <tibcmhhm@gmail.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 <hal.h>
-
-#include "led.h"
-
-#include "led_controller.h"
-
-/* WARNING! This function needs to be callable from
- * both regular threads and ISRs, unlocked (during resume-from-sleep).
- * In particular, I2C functions (interrupt-driven) should NOT be called from here.
- */
-bool led_update_kb(led_t led_state) {
- bool res = led_update_user(led_state);
- if (res) {
- msg_t msg;
-
- if (led_state.num_lock) {
- chSysUnconditionalLock();
- msg=(1 << 8) | TOGGLE_NUM_LOCK;
- chMBPostI(&led_mailbox, msg);
- chSysUnconditionalUnlock();
- } else {
- chSysUnconditionalLock();
- msg=(0 << 8) | TOGGLE_NUM_LOCK;
- chMBPostI(&led_mailbox, msg);
- chSysUnconditionalUnlock();
- }
- if (led_state.caps_lock) {
- chSysUnconditionalLock();
- msg=(1 << 8) | TOGGLE_CAPS_LOCK;
- chMBPostI(&led_mailbox, msg);
- chSysUnconditionalUnlock();
- } else {
- chSysUnconditionalLock();
- msg=(0 << 8) | TOGGLE_CAPS_LOCK;
- chMBPostI(&led_mailbox, msg);
- chSysUnconditionalUnlock();
- }
- }
- return false;
-}
diff --git a/keyboards/input_club/infinity60/led/config.h b/keyboards/input_club/infinity60/led/config.h
new file mode 100644
index 0000000000..293b192d60
--- /dev/null
+++ b/keyboards/input_club/infinity60/led/config.h
@@ -0,0 +1,14 @@
+// Copyright 2023 QMK
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#pragma once
+
+#define LED_MATRIX_LED_COUNT 63
+
+#define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND
+
+#define I2C1_CLOCK_SPEED 400000
+#define I2C1_SCL_PIN B0
+#define I2C1_SDA_PIN B1
+#define I2C1_SCL_PAL_MODE PAL_MODE_ALTERNATIVE_2
+#define I2C1_SDA_PAL_MODE PAL_MODE_ALTERNATIVE_2
diff --git a/keyboards/input_club/infinity60/led/halconf.h b/keyboards/input_club/infinity60/led/halconf.h
new file mode 100644
index 0000000000..50c7d00001
--- /dev/null
+++ b/keyboards/input_club/infinity60/led/halconf.h
@@ -0,0 +1,8 @@
+// Copyright 2023 QMK
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#pragma once
+
+#define HAL_USE_I2C TRUE
+
+#include_next <halconf.h>
diff --git a/keyboards/input_club/infinity60/led/info.json b/keyboards/input_club/infinity60/led/info.json
index 7a9b924a71..f16554d245 100644
--- a/keyboards/input_club/infinity60/led/info.json
+++ b/keyboards/input_club/infinity60/led/info.json
@@ -3,5 +3,97 @@
"cols": ["C0", "C1", "C2", "C3", "C4", "C5", "C6", "C7", "D0"],
"rows": ["D1", "D2", "D3", "D4", "D5", "D6", "D7"]
},
- "diode_direction": "COL2ROW"
+ "diode_direction": "COL2ROW",
+ "features": {
+ "led_matrix": true
+ },
+ "led_matrix": {
+ "driver": "is31fl3731",
+ "animations": {
+ "breathing": true,
+ "cycle_left_right": true,
+ "cycle_up_down": true,
+ "cycle_out_in": true,
+ "solid_reactive_simple": true,
+ "solid_reactive_wide": true,
+ "solid_reactive_multiwide": true,
+ "solid_reactive_cross": true,
+ "solid_reactive_multicross": true,
+ "solid_reactive_nexus": true,
+ "solid_reactive_multinexus": true,
+ "solid_splash": true,
+ "solid_multisplash": true,
+ "wave_left_right": true,
+ "wave_up_down": true
+ },
+ "layout": [
+ {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1},
+ {"matrix": [0, 1], "x": 16, "y": 0, "flags": 4},
+ {"matrix": [0, 2], "x": 32, "y": 0, "flags": 4},
+ {"matrix": [0, 3], "x": 48, "y": 0, "flags": 4},
+ {"matrix": [0, 4], "x": 64, "y": 0, "flags": 4},
+ {"matrix": [0, 5], "x": 80, "y": 0, "flags": 4},
+ {"matrix": [0, 6], "x": 96, "y": 0, "flags": 4},
+ {"matrix": [0, 7], "x": 112, "y": 0, "flags": 4},
+ {"matrix": [0, 8], "x": 128, "y": 0, "flags": 4},
+ {"matrix": [1, 0], "x": 144, "y": 0, "flags": 4},
+ {"matrix": [1, 1], "x": 160, "y": 0, "flags": 4},
+ {"matrix": [1, 2], "x": 176, "y": 0, "flags": 4},
+ {"matrix": [1, 3], "x": 192, "y": 0, "flags": 4},
+ {"matrix": [1, 4], "x": 208, "y": 0, "flags": 1},
+ {"matrix": [1, 5], "x": 224, "y": 0, "flags": 1},
+
+ {"matrix": [1, 6], "x": 0, "y": 16, "flags": 1},
+ {"matrix": [1, 7], "x": 17, "y": 16, "flags": 4},
+ {"matrix": [1, 8], "x": 35, "y": 16, "flags": 4},
+ {"matrix": [2, 0], "x": 52, "y": 16, "flags": 4},
+ {"matrix": [2, 1], "x": 69, "y": 16, "flags": 4},
+ {"matrix": [2, 2], "x": 86, "y": 16, "flags": 4},
+ {"matrix": [2, 3], "x": 103, "y": 16, "flags": 4},
+ {"matrix": [2, 4], "x": 121, "y": 16, "flags": 4},
+ {"matrix": [2, 5], "x": 138, "y": 16, "flags": 4},
+ {"matrix": [2, 6], "x": 155, "y": 16, "flags": 4},
+ {"matrix": [2, 7], "x": 172, "y": 16, "flags": 4},
+ {"matrix": [2, 8], "x": 190, "y": 16, "flags": 4},
+ {"matrix": [3, 0], "x": 207, "y": 16, "flags": 4},
+ {"matrix": [3, 1], "x": 224, "y": 16, "flags": 4},
+
+ {"matrix": [3, 2], "x": 0, "y": 32, "flags": 9},
+ {"matrix": [3, 3], "x": 19, "y": 32, "flags": 4},
+ {"matrix": [3, 4], "x": 37, "y": 32, "flags": 4},
+ {"matrix": [3, 5], "x": 56, "y": 32, "flags": 4},
+ {"matrix": [3, 6], "x": 75, "y": 32, "flags": 4},
+ {"matrix": [3, 7], "x": 93, "y": 32, "flags": 4},
+ {"matrix": [3, 8], "x": 112, "y": 32, "flags": 4},
+ {"matrix": [4, 0], "x": 131, "y": 32, "flags": 4},
+ {"matrix": [4, 1], "x": 149, "y": 32, "flags": 4},
+ {"matrix": [4, 2], "x": 168, "y": 32, "flags": 4},
+ {"matrix": [4, 3], "x": 187, "y": 32, "flags": 4},
+ {"matrix": [4, 4], "x": 205, "y": 32, "flags": 4},
+ {"matrix": [4, 5], "x": 224, "y": 32, "flags": 1},
+
+ {"matrix": [4, 6], "x": 0, "y": 48, "flags": 1},
+ {"matrix": [4, 7], "x": 19, "y": 48, "flags": 4},
+ {"matrix": [4, 8], "x": 37, "y": 48, "flags": 4},
+ {"matrix": [5, 0], "x": 56, "y": 48, "flags": 4},
+ {"matrix": [5, 1], "x": 75, "y": 48, "flags": 4},
+ {"matrix": [5, 2], "x": 93, "y": 48, "flags": 4},
+ {"matrix": [5, 3], "x": 112, "y": 48, "flags": 4},
+ {"matrix": [5, 4], "x": 131, "y": 48, "flags": 4},
+ {"matrix": [5, 5], "x": 149, "y": 48, "flags": 4},
+ {"matrix": [5, 6], "x": 168, "y": 48, "flags": 4},
+ {"matrix": [5, 7], "x": 187, "y": 48, "flags": 4},
+ {"matrix": [5, 8], "x": 205, "y": 48, "flags": 1},
+ {"matrix": [6, 0], "x": 224, "y": 48, "flags": 1},
+
+ {"matrix": [6, 1], "x": 0, "y": 64, "flags": 1},
+ {"matrix": [6, 2], "x": 32, "y": 64, "flags": 1},
+ {"matrix": [6, 3], "x": 64, "y": 64, "flags": 1},
+ {"matrix": [6, 4], "x": 96, "y": 64, "flags": 4},
+ {"matrix": [6, 5], "x": 128, "y": 64, "flags": 1},
+ {"matrix": [6, 6], "x": 160, "y": 64, "flags": 1},
+ {"matrix": [6, 7], "x": 192, "y": 64, "flags": 1},
+ {"matrix": [6, 8], "x": 224, "y": 64, "flags": 1}
+ ]
+ }
}
diff --git a/keyboards/input_club/infinity60/led/led.c b/keyboards/input_club/infinity60/led/led.c
new file mode 100644
index 0000000000..a6a63e202d
--- /dev/null
+++ b/keyboards/input_club/infinity60/led/led.c
@@ -0,0 +1,83 @@
+// Copyright 2023 QMK
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#include "quantum.h"
+
+#ifdef LED_MATRIX_ENABLE
+const is31fl3731_led_t g_is31fl3731_leds[LED_MATRIX_LED_COUNT] = {
+/* Refer to IS31 manual for these locations
+ * driver
+ * | LED address
+ * | | */
+ {0, C1_1}, // LED1
+ {0, C1_2}, // LED2
+ {0, C1_3}, // LED3
+ {0, C1_4}, // LED4
+ {0, C1_5}, // LED5
+ {0, C1_6}, // LED6
+ {0, C1_7}, // LED7
+ {0, C1_8}, // LED8
+
+ {0, C2_1}, // LED9
+ {0, C2_2}, // LED10
+ {0, C2_3}, // LED11
+ {0, C2_4}, // LED12
+ {0, C2_5}, // LED13
+ {0, C2_6}, // LED14/114
+ {0, C2_7}, // LED15
+ {0, C2_8}, // LED16
+
+ {0, C3_1}, // LED17
+ {0, C3_2}, // LED18
+ {0, C3_3}, // LED19
+ {0, C3_4}, // LED20
+ {0, C3_5}, // LED21
+ {0, C3_6}, // LED22
+ {0, C3_7}, // LED23
+ {0, C3_8}, // LED24
+
+ {0, C4_1}, // LED25
+ {0, C4_2}, // LED26
+ {0, C4_3}, // LED27
+ {0, C4_4}, // LED28
+ {0, C4_5}, // LED29
+ {0, C4_6}, // LED30
+ {0, C4_7}, // LED31
+ {0, C4_8}, // LED32
+
+ {0, C5_1}, // LED33
+ {0, C5_2}, // LED34
+ {0, C5_3}, // LED35
+ {0, C5_4}, // LED36
+ {0, C5_5}, // LED37
+ {0, C5_6}, // LED38
+ {0, C5_7}, // LED39
+ {0, C5_8}, // LED40
+
+ {0, C6_1}, // LED41
+ {0, C6_2}, // LED42
+ {0, C6_3}, // LED43
+ {0, C6_4}, // LED44
+ {0, C6_5}, // LED45
+ {0, C6_6}, // LED46
+ {0, C6_7}, // LED47
+ {0, C6_8}, // LED48
+
+ {0, C7_1}, // LED49
+ {0, C7_2}, // LED50
+ {0, C7_3}, // LED51
+ {0, C7_4}, // LED52
+ {0, C7_5}, // LED53
+ {0, C7_6}, // LED54/154
+ {0, C7_7}, // LED55
+ {0, C7_8}, // LED56/156
+
+ {0, C8_1}, // LED57/157
+ {0, C8_2}, // LED58/158
+ {0, C8_3}, // LED59/159
+ {0, C8_4}, // LED60/160
+ {0, C8_5}, // LED61/161
+ {0, C8_6}, // LED62/162
+ {0, C8_7} // LED63/163
+};
+#endif
diff --git a/keyboards/input_club/infinity60/led/rules.mk b/keyboards/input_club/infinity60/led/rules.mk
index d48f3b73a5..e69de29bb2 100644
--- a/keyboards/input_club/infinity60/led/rules.mk
+++ b/keyboards/input_club/infinity60/led/rules.mk
@@ -1,3 +0,0 @@
-# project specific files
-SRC += led.c \
- led_controller.c \ No newline at end of file
diff --git a/keyboards/input_club/infinity60/led_controller.c b/keyboards/input_club/infinity60/led_controller.c
deleted file mode 100644
index 5ea0ae804c..0000000000
--- a/keyboards/input_club/infinity60/led_controller.c
+++ /dev/null
@@ -1,488 +0,0 @@
-/*
-Copyright 2016 flabbergast <s3+flabbergast@sdfeu.org>
-Copyright 2017 jpetermans <tibcmhhm@gmail.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/>.
-*/
-
-/*
- * LED controller code
- * IS31FL3731C matrix LED driver from ISSI
- * datasheet: http://www.issi.com/WW/pdf/31FL3731C.pdf
- */
-
-#include <ch.h>
-#include <hal.h>
-#include "print.h"
-#include "led.h"
-#include "host.h"
-
-#include "led_controller.h"
-
-#include "suspend.h"
-
-#include "usb_main.h"
-
-/* Infinity60 LED MAP
- - digits mean "row" and "col", i.e. 45 means C4-5 in the IS31 datasheet, matrix A
-
- 11 12 13 14 15 16 17 18 21 22 23 24 25 26 27*
- 28 31 32 33 34 35 36 37 38 41 42 43 44 45
- 46 47 48 51 52 53 54 55 56 57 58 61 62
- 63 64 65 66 67 68 71 72 73 74 75 76 77*
- 78 81 82 83 84 85 86 87
-
-*Unused in Alphabet Layout
-*/
-
-/*
- each page has 0xB4 bytes
- 0 - 0x11: LED control (on/off):
- order: CA1, CB1, CA2, CB2, .... (CA - matrix A, CB - matrix B)
- CAn controls Cn-8 .. Cn-1 (LSbit)
- 0x12 - 0x23: blink control (like "LED control")
- 0x24 - 0xB3: PWM control: byte per LED, 0xFF max on
- order same as above (CA 1st row (8bytes), CB 1st row (8bytes), ...)
-*/
-
-// Which LED should be used for CAPS LOCK indicator
-#if !defined(CAPS_LOCK_LED_ADDRESS)
-#define CAPS_LOCK_LED_ADDRESS 46
-#endif
-
-#if !defined(NUM_LOCK_LED_ADDRESS)
-#define NUM_LOCK_LED_ADDRESS 85
-#endif
-
-/* Which LED should breathe during sleep */
-#if !defined(BREATHE_LED_ADDRESS)
-#define BREATHE_LED_ADDRESS CAPS_LOCK_LED_ADDRESS
-#endif
-
-/* =================
- * ChibiOS I2C setup
- * ================= */
-static const I2CConfig i2ccfg = {
- 400000 // clock speed (Hz); 400kHz max for IS31
-};
-
-/* ==============
- * variables
- * ============== */
-// internal communication buffers
-uint8_t tx[2] __attribute__((aligned(2)));
-uint8_t rx[1] __attribute__((aligned(2)));
-
-// buffer for sending the whole page at once (used also as a temp buffer)
-uint8_t full_page[0xB4+1] = {0};
-
-// LED mask (which LEDs are present, selected by bits)
-// IC60 pcb uses only CA matrix.
-// Each byte is a control pin for 8 leds ordered 8-1
-const uint8_t all_on_leds_mask[0x12] = {
- 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF,
- 0x00, 0xFF, 0x00, 0xFF, 0x00, 0x7F, 0x00, 0x00, 0x00
-};
-
-// array to hold brightness pwm steps
-const uint8_t pwm_levels[5] = {
- 0x00, 0x16, 0x4E, 0xA1, 0xFF
-};
-
-// array to write to pwm register
-uint8_t pwm_register_array[9] = {0};
-
-
-/* ============================
- * communication functions
- * ============================ */
-msg_t is31_select_page(uint8_t page) {
- tx[0] = IS31_COMMANDREGISTER;
- tx[1] = page;
- return i2cMasterTransmitTimeout(&I2CD1, IS31_ADDR_DEFAULT, tx, 2, NULL, 0, TIME_US2I(IS31_TIMEOUT));
-}
-
-msg_t is31_write_data(uint8_t page, uint8_t *buffer, uint8_t size) {
- is31_select_page(page);
- return i2cMasterTransmitTimeout(&I2CD1, IS31_ADDR_DEFAULT, buffer, size, NULL, 0, TIME_US2I(IS31_TIMEOUT));
-}
-
-msg_t is31_write_register(uint8_t page, uint8_t reg, uint8_t data) {
- is31_select_page(page);
- tx[0] = reg;
- tx[1] = data;
- return i2cMasterTransmitTimeout(&I2CD1, IS31_ADDR_DEFAULT, tx, 2, NULL, 0, TIME_US2I(IS31_TIMEOUT));
-}
-
-msg_t is31_read_register(uint8_t page, uint8_t reg, uint8_t *result) {
- is31_select_page(page);
-
- tx[0] = reg;
- return i2cMasterTransmitTimeout(&I2CD1, IS31_ADDR_DEFAULT, tx, 1, result, 1, TIME_US2I(IS31_TIMEOUT));
-}
-
-/* ========================
- * initialise the IS31 chip
- * ======================== */
-void is31_init(void) {
- // just to be sure that it's all zeroes
- __builtin_memset(full_page,0,0xB4+1);
- // zero function page, all registers (assuming full_page is all zeroes)
- is31_write_data(IS31_FUNCTIONREG, full_page, 0xD + 1);
- // disable hardware shutdown
- palSetPadMode(GPIOB, 16, PAL_MODE_OUTPUT_PUSHPULL);
- palSetPad(GPIOB, 16);
- chThdSleepMilliseconds(10);
- // software shutdown
- is31_write_register(IS31_FUNCTIONREG, IS31_REG_SHUTDOWN, IS31_REG_SHUTDOWN_ON);
- chThdSleepMilliseconds(10);
- // zero function page, all registers
- is31_write_data(IS31_FUNCTIONREG, full_page, 0xD + 1);
- chThdSleepMilliseconds(10);
- // software shutdown disable (i.e. turn stuff on)
- is31_write_register(IS31_FUNCTIONREG, IS31_REG_SHUTDOWN, IS31_REG_SHUTDOWN_OFF);
- chThdSleepMilliseconds(10);
- // zero all LED registers on all 8 pages
- uint8_t i;
- for(i=0; i<8; i++) {
- is31_write_data(i, full_page, 0xB4 + 1);
- chThdSleepMilliseconds(5);
- }
-}
-
-/* ==================
- * LED control thread
- * ================== */
-#define LED_MAILBOX_NUM_MSGS 5
-static msg_t led_mailbox_queue[LED_MAILBOX_NUM_MSGS];
-mailbox_t led_mailbox;
-static THD_WORKING_AREA(waLEDthread, 256);
-static THD_FUNCTION(LEDthread, arg) {
- (void)arg;
- chRegSetThreadName("LEDthread");
-
- uint8_t i;
- uint8_t control_register_word[2] = {0};//2 bytes: register address, byte to write
- uint8_t led_control_reg[0x13] = {0};//led control register start address + 0x12 bytes
-
- //persistent status variables
- uint8_t pwm_step_status, page_status, capslock_status, numlock_status;
-
- //mailbox variables
- uint8_t temp, msg_type;
- uint8_t msg_args[3];
- msg_t msg;
-
- // initialize persistent variables
- pwm_step_status = 4; //full brightness
- page_status = 0; //start frame 0 (all off/on)
- led_t led_state = host_keyboard_led_state();
- numlock_status = led_state.num_lock ? 1 : 0;
- capslock_status = led_state.caps_lock ? 1 : 0;
-
- while(true) {
- // wait for a message (asynchronous)
- // (messages are queued (up to LED_MAILBOX_NUM_MSGS) if they can't
- // be processed right away
- chMBFetchTimeout(&led_mailbox, &msg, TIME_INFINITE);
- msg_type = msg & 0xFF; //first byte is action information
- msg_args[0] = (msg >> 8) & 0xFF;
- msg_args[1] = (msg >> 16) & 0XFF;
- msg_args[2] = (msg >> 24) & 0xFF;
-
-
- switch (msg_type){
- case SET_FULL_ROW:
- //write full byte to pin address, msg_args[1] = pin #, msg_args[0] = 8 bits to write
- //writes only to currently displayed page
- write_led_byte(page_status, msg_args[1], msg_args[0]);
- break;
-
- case OFF_LED:
- //on/off/toggle single led, msg_args[0] = row/col of led, msg_args[1] = page
- set_led_bit(msg_args[1], control_register_word, msg_args[0], 0);
- break;
- case ON_LED:
- set_led_bit(msg_args[1], control_register_word, msg_args[0], 1);
- break;
- case TOGGLE_LED:
- set_led_bit(msg_args[1], control_register_word, msg_args[0], 2);
- break;
-
- case BLINK_OFF_LED:
- //on/off/toggle single led, msg_args[0] = row/col of led
- set_led_bit(msg_args[1], control_register_word, msg_args[0], 4);
- break;
- case BLINK_ON_LED:
- set_led_bit(msg_args[1], control_register_word, msg_args[0], 5);
- break;
- case BLINK_TOGGLE_LED:
- set_led_bit(msg_args[1], control_register_word, msg_args[0], 6);
- break;
-
- case TOGGLE_ALL:
- //turn on/off all leds, msg_args = unused
- is31_write_register(IS31_FUNCTIONREG, IS31_REG_SHUTDOWN, IS31_REG_SHUTDOWN_ON);
- chThdSleepMilliseconds(5);
- is31_read_register(0, 0x00, &temp);
- is31_write_register(IS31_FUNCTIONREG, IS31_REG_SHUTDOWN, IS31_REG_SHUTDOWN_OFF);
-
- led_control_reg[0] = 0;
-
- //toggle led mask based on current state (temp)
- if (temp==0 || page_status > 0) {
- __builtin_memcpy(led_control_reg+1, all_on_leds_mask, 0x12);
- } else {
- __builtin_memset(led_control_reg+1, 0, 0x12);
- }
- is31_write_data(0, led_control_reg, 0x13);
-
- if (page_status > 0) {
- is31_write_register(IS31_FUNCTIONREG, IS31_REG_PICTDISP, 0);
-
- page_status=0;
-
- //maintain lock leds, reset to off and force recheck to blink of all leds toggled on
- numlock_status = 0;
- capslock_status = 0;
- led_set(host_keyboard_leds());
- }
- break;
-
- case TOGGLE_BACKLIGHT:
- //msg_args[0] = on/off
-
- //populate 9 byte rows to be written to each pin, first byte is register (pin) address
- if (msg_args[0] == 1) {
- __builtin_memset(pwm_register_array+1, pwm_levels[pwm_step_status], 8);
- } else {
- __builtin_memset(pwm_register_array+1, 0, 8);
- }
-
- for(i=0; i<8; i++) {
- //first byte is register address, every 0x10 9 bytes is A-matrix pwm pins
- pwm_register_array[0] = 0x24 + (i * 0x10);
- is31_write_data(0,pwm_register_array,9);
- }
- break;
-
- case DISPLAY_PAGE:
- //msg_args[0] = page to toggle on
- if (page_status != msg_args[0]) {
- is31_write_register(IS31_FUNCTIONREG, IS31_REG_PICTDISP, msg_args[0]);
- page_status = msg_args[0];
-
- //maintain lock leds, reset to off and force recheck for new page
- numlock_status = 0;
- capslock_status = 0;
- led_set(host_keyboard_leds());
- }
- break;
-
- case RESET_PAGE:
- //led_args[0] = page to reset
- led_control_reg[0] = 0;
- __builtin_memset(led_control_reg+1, 0, 0x12);
- is31_write_data(msg_args[0], led_control_reg, 0x13);
-
- //repeat for blink register
- led_control_reg[0] = 0x12;
- is31_write_data(msg_args[0], led_control_reg, 0x13);
- break;
-
- case TOGGLE_NUM_LOCK:
- //msg_args[0] = 0 or 1, off/on
- if (numlock_status != msg_args[0]) {
- set_lock_leds(NUM_LOCK_LED_ADDRESS, msg_args[0], page_status);
- numlock_status = msg_args[0];
- }
- break;
- case TOGGLE_CAPS_LOCK:
- //msg_args[0] = 0 or 1, off/on
- if (capslock_status != msg_args[0]) {
- set_lock_leds(CAPS_LOCK_LED_ADDRESS, msg_args[0], page_status);
- capslock_status = msg_args[0];
- }
- break;
-
- case STEP_BRIGHTNESS:
- //led_args[0] = step up (1) or down (0)
- switch (msg_args[0]) {
- case 0:
- if (pwm_step_status == 0) {
- pwm_step_status = 4;
- } else {
- pwm_step_status--;
- }
- break;
-
- case 1:
- if (pwm_step_status == 4) {
- pwm_step_status = 0;
- } else {
- pwm_step_status++;
- }
- break;
- }
-
- //populate 8 byte arrays to write on each pin
- //first byte is register address, every 0x10 9 bytes are A-matrix pwm pins
- __builtin_memset(pwm_register_array+1, pwm_levels[pwm_step_status], 8);
-
- for(i=0; i<8; i++) {
- pwm_register_array[0] = 0x24 + (i * 0x10);
- is31_write_data(0,pwm_register_array,9);
- }
- break;
- }
- }
-}
-
-/* ==============================
- * led processing functions
- * ============================== */
-
-void set_led_bit (uint8_t page, uint8_t *led_control_word, uint8_t led_addr, uint8_t action) {
- //returns 2 bytes: led control register address and byte to write
- //action: 0 - off, 1 - on, 2 - toggle, 4 - blink on, 5 - blink off, 6 - toggle blink
-
- uint8_t control_reg_addr, column_bit, column_byte, temp, blink_bit;
-
- //check for valid led address
- if (led_addr < 0 || led_addr > 87 || led_addr % 10 > 8) {
- return;
- }
-
- blink_bit = action>>2;//check for blink bit
- action &= ~(1<<2); //strip blink bit
-
- //led_addr tens column is pin#, ones column is bit position in 8-bit mask
- control_reg_addr = ((led_addr / 10) % 10 - 1 ) * 0x02;// A-matrix is every other byte
- control_reg_addr += blink_bit == 1 ? 0x12 : 0x00;//if blink_bit, shift 12 bytes to blink register
-
- is31_write_register(IS31_FUNCTIONREG, IS31_REG_SHUTDOWN, IS31_REG_SHUTDOWN_ON);
- chThdSleepMilliseconds(5);
- is31_read_register(page, control_reg_addr, &temp);//maintain status of leds on this byte
- is31_write_register(IS31_FUNCTIONREG, IS31_REG_SHUTDOWN, IS31_REG_SHUTDOWN_OFF);
-
- column_bit = 1<<(led_addr % 10 - 1);
- column_byte = temp;
-
- switch(action) {
- case 0:
- column_byte &= ~column_bit;
- break;
- case 1:
- column_byte |= column_bit;
- break;
- case 2:
- column_byte ^= column_bit;
- break;
- }
-
- //return word to be written in register
- led_control_word[0] = control_reg_addr;
- led_control_word[1] = column_byte;
- is31_write_data (page, led_control_word, 0x02);
-}
-
-void write_led_byte (uint8_t page, uint8_t row, uint8_t led_byte) {
- uint8_t led_control_word[2] = {0};//register address and on/off byte
-
- led_control_word[0] = (row - 1 ) * 0x02;// A-matrix is every other byte
- led_control_word[1] = led_byte;
- is31_write_data(page, led_control_word, 0x02);
-}
-
-void write_led_page (uint8_t page, uint8_t *user_led_array, uint8_t led_count) {
- uint8_t i;
- uint8_t pin, col;
- uint8_t led_control_register[0x13] = {0};
-
- __builtin_memset(led_control_register,0,13);
-
- for(i=0;i<led_count;i++){
- //shift pin by 1 for led register 0x00 address
- pin = ((user_led_array[i] / 10) % 10 - 1 ) * 2 + 1;
- col = user_led_array[i] % 10 - 1;
- led_control_register[pin] |= 1<<(col);
- }
-
- is31_write_data(page, led_control_register, 0x13);
-}
-
-void set_lock_leds(uint8_t led_addr, uint8_t led_action, uint8_t page) {
- uint8_t temp;
- uint8_t led_control_word[2] = {0};
-
- //blink if all leds are on
- if (page == 0) {
- is31_write_register(IS31_FUNCTIONREG, IS31_REG_SHUTDOWN, IS31_REG_SHUTDOWN_ON);
- chThdSleepMilliseconds(5);
- is31_read_register(0, 0x00, &temp);
- is31_write_register(IS31_FUNCTIONREG, IS31_REG_SHUTDOWN, IS31_REG_SHUTDOWN_OFF);
-
- if (temp == 0xFF) {
- led_action |= (1<<2); //set blink bit
- }
- }
-
- set_led_bit(page,led_control_word,led_addr,led_action);
-}
-
-/* =====================
- * hook into user keymap
- * ===================== */
-void led_controller_init(void) {
- uint8_t i;
-
- /* initialise I2C */
- /* I2C pins */
- palSetPadMode(GPIOB, 0, PAL_MODE_ALTERNATIVE_2); // PTB0/I2C0/SCL
- palSetPadMode(GPIOB, 1, PAL_MODE_ALTERNATIVE_2); // PTB1/I2C0/SDA
- /* start I2C */
- i2cStart(&I2CD1, &i2ccfg);
- // try high drive (from kiibohd)
- I2CD1.i2c->C2 |= I2Cx_C2_HDRS;
- // try glitch fixing (from kiibohd)
- I2CD1.i2c->FLT = 4;
-
- chThdSleepMilliseconds(10);
-
- /* initialise IS31 chip */
- is31_init();
-
- //set Display Option Register so all pwm intensity is controlled from page 0
- //enable blink and set blink period to 0.27s x rate
- is31_write_register(IS31_FUNCTIONREG, IS31_REG_DISPLAYOPT, IS31_REG_DISPLAYOPT_INTENSITY_SAME + IS31_REG_DISPLAYOPT_BLINK_ENABLE + 4);
-
- /* set full pwm on page 1 */
- pwm_register_array[0] = 0;
- __builtin_memset(pwm_register_array+1, 0xFF, 8);
- for(i=0; i<8; i++) {
- pwm_register_array[0] = 0x24 + (i * 0x10);//first byte of 9 bytes must be register address
- is31_write_data(0, pwm_register_array, 9);
- chThdSleepMilliseconds(5);
- }
-
- /* enable breathing when the displayed page changes */
- // Fade-in Fade-out, time = 26ms * 2^N, N=3
- is31_write_register(IS31_FUNCTIONREG, IS31_REG_BREATHCTRL1, (3<<4)|3);
- is31_write_register(IS31_FUNCTIONREG, IS31_REG_BREATHCTRL2, IS31_REG_BREATHCTRL2_ENABLE|3);
-
- /* more time consuming LED processing should be offloaded into
- * a thread, with asynchronous messaging. */
- chMBObjectInit(&led_mailbox, led_mailbox_queue, LED_MAILBOX_NUM_MSGS);
- chThdCreateStatic(waLEDthread, sizeof(waLEDthread), LOWPRIO, LEDthread, NULL);
-}
diff --git a/keyboards/input_club/infinity60/led_controller.h b/keyboards/input_club/infinity60/led_controller.h
deleted file mode 100644
index e4b4717646..0000000000
--- a/keyboards/input_club/infinity60/led_controller.h
+++ /dev/null
@@ -1,121 +0,0 @@
-/*
-Copyright 2016 flabbergast <s3+flabbergast@sdfeu.org>
-Copyright 2017 jpetermans <tibcmhhm@gmail.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/>.
-*/
-
-#ifndef _LED_CONTROLLER_H_
-#define _LED_CONTROLLER_H_
-
-/* =========================
- * communication functions
- * ========================= */
-
-msg_t is31_write_data(uint8_t page, uint8_t *buffer, uint8_t size);
-msg_t is31_write_register(uint8_t page, uint8_t reg, uint8_t data);
-msg_t is31_read_register(uint8_t page, uint8_t reg, uint8_t *result);
-
-/* ============================
- * init functions/definitions
- * ============================*/
-
-void led_controller_init(void);
-
-#define CAPS_LOCK_LED_ADDRESS 46 //pin matrix location
-#define NUM_LOCK_LED_ADDRESS 85
-
-/* =============================
- * IS31 chip related definitions
- * ============================= */
-
-#define IS31_ADDR_DEFAULT 0x74
-
-#define IS31_REG_CONFIG 0x00
-// bits in reg
-#define IS31_REG_CONFIG_PICTUREMODE 0x00
-#define IS31_REG_CONFIG_AUTOPLAYMODE 0x08
-#define IS31_REG_CONFIG_AUDIOPLAYMODE 0x18
-// D2:D0 bits are starting frame for autoplay mode
-
-#define IS31_REG_PICTDISP 0x01 // D2:D0 frame select for picture mode
-
-#define IS31_REG_AUTOPLAYCTRL1 0x02
-// D6:D4 number of loops (000=infty)
-// D2:D0 number of frames to be used
-
-#define IS31_REG_AUTOPLAYCTRL2 0x03 // D5:D0 delay time (*11ms)
-
-#define IS31_REG_DISPLAYOPT 0x05
-#define IS31_REG_DISPLAYOPT_INTENSITY_SAME 0x20 // same intensity for all frames
-#define IS31_REG_DISPLAYOPT_BLINK_ENABLE 0x08
-// D2:D0 bits blink period time (*0.27s)
-
-#define IS31_REG_AUDIOSYNC 0x06
-#define IS31_REG_AUDIOSYNC_ENABLE 0x1
-
-#define IS31_REG_FRAMESTATE 0x07
-
-#define IS31_REG_BREATHCTRL1 0x08
-// D6:D4 fade out time (26ms*2^i)
-// D2:D0 fade in time (26ms*2^i)
-
-#define IS31_REG_BREATHCTRL2 0x09
-#define IS31_REG_BREATHCTRL2_ENABLE 0x10
-// D2:D0 extinguish time (3.5ms*2^i)
-
-#define IS31_REG_SHUTDOWN 0x0A
-#define IS31_REG_SHUTDOWN_OFF 0x1
-#define IS31_REG_SHUTDOWN_ON 0x0
-
-#define IS31_REG_AGCCTRL 0x0B
-#define IS31_REG_ADCRATE 0x0C
-
-#define IS31_COMMANDREGISTER 0xFD
-#define IS31_FUNCTIONREG 0x0B // helpfully called 'page nine'
-
-#define IS31_TIMEOUT 10000 // needs to be long enough to write a whole page
-
-/* ========================================
- * LED Thread related items
- * ========================================*/
-
-extern mailbox_t led_mailbox;
-
-void set_led_bit (uint8_t page, uint8_t *led_control_reg, uint8_t led_addr, uint8_t action);
-void set_lock_leds (uint8_t led_addr, uint8_t led_action, uint8_t page);
-void write_led_byte (uint8_t page, uint8_t row, uint8_t led_byte);
-void write_led_page (uint8_t page, uint8_t *led_array, uint8_t led_count);
-
-// constants for signaling the LED controller thread
-enum led_msg_t {
- KEY_LIGHT,
- SET_FULL_ROW,
- OFF_LED,
- ON_LED,
- TOGGLE_LED,
- BLINK_OFF_LED,
- BLINK_ON_LED,
- BLINK_TOGGLE_LED,
- TOGGLE_ALL,
- TOGGLE_BACKLIGHT,
- DISPLAY_PAGE,
- RESET_PAGE,
- TOGGLE_NUM_LOCK,
- TOGGLE_CAPS_LOCK,
- TOGGLE_BREATH,
- STEP_BRIGHTNESS
-};
-
-#endif /* _LED_CONTROLLER_H_ */
diff --git a/keyboards/input_club/k_type/config.h b/keyboards/input_club/k_type/config.h
index 2a4c7d057c..c188038a82 100644
--- a/keyboards/input_club/k_type/config.h
+++ b/keyboards/input_club/k_type/config.h
@@ -34,7 +34,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
//#define NO_ACTION_ONESHOT
#ifdef RGB_MATRIX_ENABLE
-//#include "gpio.h"
// RGB Matrix Animation modes. Explicitly enabled
// For full list of effects, see:
// https://docs.qmk.fm/#/feature_rgb_matrix?id=rgb-matrix-effects
@@ -103,10 +102,11 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
# define I2C2_SCL_PAL_MODE PAL_MODE_ALTERNATIVE_2
# define I2C2_SDA_PAL_MODE PAL_MODE_ALTERNATIVE_2
-# define DRIVER_ADDR_1 0b1010000
-# define DRIVER_ADDR_2 0b1010000
-# define DRIVER_COUNT 2
+# define IS31FL3733_I2C_ADDRESS_1 IS31FL3733_I2C_ADDRESS_GND_GND
+# define IS31FL3733_I2C_ADDRESS_2 IS31FL3733_I2C_ADDRESS_GND_GND
+# define IS31FL3733_DRIVER_COUNT 2
+# define IS31FL3733_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL)
# define DRIVER_1_LED_TOTAL 64
# define DRIVER_2_LED_TOTAL 55
-# define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL)
+# define RGB_MATRIX_LED_COUNT IS31FL3733_LED_COUNT
#endif
diff --git a/keyboards/input_club/k_type/i2c_master.h b/keyboards/input_club/k_type/i2c_master.h
index d4e9d6878f..db4f12e43c 100644
--- a/keyboards/input_club/k_type/i2c_master.h
+++ b/keyboards/input_club/k_type/i2c_master.h
@@ -26,6 +26,7 @@
#include <ch.h>
#include <hal.h>
+#include "gpio.h"
#ifndef I2C_COUNT
# define I2C_COUNT 1
diff --git a/keyboards/input_club/k_type/is31fl3733-dual.c b/keyboards/input_club/k_type/is31fl3733-dual.c
index 2dec2b0a26..e471cf0b71 100644
--- a/keyboards/input_club/k_type/is31fl3733-dual.c
+++ b/keyboards/input_club/k_type/is31fl3733-dual.c
@@ -16,46 +16,48 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
-#ifdef RGB_MATRIX_ENABLE
-
#include "is31fl3733-dual.h"
#include "i2c_master.h"
#include "wait.h"
-// This is a 7-bit address, that gets left-shifted and bit 0
-// set to 0 for write, 1 for read (as per I2C protocol)
-// The address will vary depending on your wiring:
-// 00 <-> GND
-// 01 <-> SCL
-// 10 <-> SDA
-// 11 <-> VCC
-// ADDR1 represents A1:A0 of the 7-bit address.
-// ADDR2 represents A3:A2 of the 7-bit address.
-// The result is: 0b101(ADDR2)(ADDR1)
-#define ISSI_ADDR_DEFAULT 0x50
-
-#define ISSI_COMMANDREGISTER 0xFD
-#define ISSI_COMMANDREGISTER_WRITELOCK 0xFE
-#define ISSI_INTERRUPTMASKREGISTER 0xF0
-#define ISSI_INTERRUPTSTATUSREGISTER 0xF1
-
-#define ISSI_PAGE_LEDCONTROL 0x00 // PG0
-#define ISSI_PAGE_PWM 0x01 // PG1
-#define ISSI_PAGE_AUTOBREATH 0x02 // PG2
-#define ISSI_PAGE_FUNCTION 0x03 // PG3
-
-#define ISSI_REG_CONFIGURATION 0x00 // PG3
-#define ISSI_REG_GLOBALCURRENT 0x01 // PG3
-#define ISSI_REG_RESET 0x11 // PG3
-#define ISSI_REG_SWPULLUP 0x0F // PG3
-#define ISSI_REG_CSPULLUP 0x10 // PG3
-
-#ifndef ISSI_TIMEOUT
-# define ISSI_TIMEOUT 5000
+#define IS31FL3733_PWM_REGISTER_COUNT 192
+#define IS31FL3733_LED_CONTROL_REGISTER_COUNT 24
+
+#ifndef IS31FL3733_I2C_TIMEOUT
+# define IS31FL3733_I2C_TIMEOUT 100
+#endif
+
+#ifndef IS31FL3733_I2C_PERSISTENCE
+# define IS31FL3733_I2C_PERSISTENCE 0
+#endif
+
+#ifndef IS31FL3733_PWM_FREQUENCY
+# define IS31FL3733_PWM_FREQUENCY IS31FL3733_PWM_FREQUENCY_8K4_HZ // PFS - IS31FL3733B only
+#endif
+
+#ifndef IS31FL3733_SW_PULLUP
+# define IS31FL3733_SW_PULLUP IS31FL3733_PUR_0_OHM
#endif
-#ifndef ISSI_PERSISTENCE
-# define ISSI_PERSISTENCE 0
+#ifndef IS31FL3733_CS_PULLDOWN
+# define IS31FL3733_CS_PULLDOWN IS31FL3733_PDR_0_OHM
+#endif
+
+#ifndef IS31FL3733_GLOBAL_CURRENT
+# define IS31FL3733_GLOBAL_CURRENT 0xFF
+#endif
+
+#ifndef IS31FL3733_SYNC_1
+# define IS31FL3733_SYNC_1 IS31FL3733_SYNC_NONE
+#endif
+#ifndef IS31FL3733_SYNC_2
+# define IS31FL3733_SYNC_2 IS31FL3733_SYNC_NONE
+#endif
+#ifndef IS31FL3733_SYNC_3
+# define IS31FL3733_SYNC_3 IS31FL3733_SYNC_NONE
+#endif
+#ifndef IS31FL3733_SYNC_4
+# define IS31FL3733_SYNC_4 IS31FL3733_SYNC_NONE
#endif
// Transfer buffer for TWITransmitData()
@@ -67,25 +69,25 @@ uint8_t g_twi_transfer_buffer[20];
// We could optimize this and take out the unused registers from these
// buffers and the transfers in is31fl3733_write_pwm_buffer() but it's
// probably not worth the extra complexity.
-uint8_t g_pwm_buffer[DRIVER_COUNT][192];
-bool g_pwm_buffer_update_required[DRIVER_COUNT] = {false};
+uint8_t g_pwm_buffer[IS31FL3733_DRIVER_COUNT][IS31FL3733_PWM_REGISTER_COUNT];
+bool g_pwm_buffer_update_required[IS31FL3733_DRIVER_COUNT] = {false};
-uint8_t g_led_control_registers[DRIVER_COUNT][24] = {{0}, {0}};
-bool g_led_control_registers_update_required[DRIVER_COUNT] = {false};
+uint8_t g_led_control_registers[IS31FL3733_DRIVER_COUNT][IS31FL3733_LED_CONTROL_REGISTER_COUNT] = {0};
+bool g_led_control_registers_update_required[IS31FL3733_DRIVER_COUNT] = {false};
bool is31fl3733_write_register(uint8_t index, uint8_t addr, uint8_t reg, uint8_t data) {
// If the transaction fails function returns false.
g_twi_transfer_buffer[0] = reg;
g_twi_transfer_buffer[1] = data;
-#if ISSI_PERSISTENCE > 0
- for (uint8_t i = 0; i < ISSI_PERSISTENCE; i++) {
- if (i2c_transmit(index, addr << 1, g_twi_transfer_buffer, 2, TIME_US2I(ISSI_TIMEOUT)) != 0) {
+#if IS31FL3733_I2C_PERSISTENCE > 0
+ for (uint8_t i = 0; i < IS31FL3733_I2C_PERSISTENCE; i++) {
+ if (i2c_transmit(index, addr << 1, g_twi_transfer_buffer, 2, IS31FL3733_I2C_TIMEOUT) != 0) {
return false;
}
}
#else
- if (i2c_transmit(index, addr << 1, g_twi_transfer_buffer, 2, TIME_US2I(ISSI_TIMEOUT)) != 0) {
+ if (i2c_transmit(index, addr << 1, g_twi_transfer_buffer, 2, IS31FL3733_I2C_TIMEOUT) != 0) {
return false;
}
#endif
@@ -99,7 +101,7 @@ bool is31fl3733_write_pwm_buffer(uint8_t index, uint8_t addr, uint8_t *pwm_buffe
// g_twi_transfer_buffer[] is 20 bytes
// Iterate over the pwm_buffer contents at 16 byte intervals.
- for (int i = 0; i < 192; i += 16) {
+ for (int i = 0; i < IS31FL3733_PWM_REGISTER_COUNT; i += 16) {
g_twi_transfer_buffer[0] = i;
// Copy the data from i to i+15.
// Device will auto-increment register for data after the first byte
@@ -108,14 +110,14 @@ bool is31fl3733_write_pwm_buffer(uint8_t index, uint8_t addr, uint8_t *pwm_buffe
g_twi_transfer_buffer[1 + j] = pwm_buffer[i + j];
}
-#if ISSI_PERSISTENCE > 0
- for (uint8_t i = 0; i < ISSI_PERSISTENCE; i++) {
- if (i2c_transmit(index, addr << 1, g_twi_transfer_buffer, 17, TIME_US2I(ISSI_TIMEOUT)) != 0) {
+#if IS31FL3733_I2C_PERSISTENCE > 0
+ for (uint8_t i = 0; i < IS31FL3733_I2C_PERSISTENCE; i++) {
+ if (i2c_transmit(index, addr << 1, g_twi_transfer_buffer, 17, IS31FL3733_I2C_TIMEOUT) != 0) {
return false;
}
}
#else
- if (i2c_transmit(index, addr << 1, g_twi_transfer_buffer, 17, TIME_US2I(ISSI_TIMEOUT)) != 0) {
+ if (i2c_transmit(index, addr << 1, g_twi_transfer_buffer, 17, IS31FL3733_I2C_TIMEOUT) != 0) {
return false;
}
#endif
@@ -123,6 +125,24 @@ bool is31fl3733_write_pwm_buffer(uint8_t index, uint8_t addr, uint8_t *pwm_buffe
return true;
}
+void is31fl3733_init_drivers(void) {
+ i2c_init(&I2CD1, I2C1_SCL_PIN, I2C1_SDA_PIN);
+ is31fl3733_init(0, IS31FL3733_I2C_ADDRESS_1, IS31FL3733_SYNC_1);
+# ifdef USE_I2C2
+ i2c_init(&I2CD2, I2C2_SCL_PIN, I2C2_SDA_PIN);
+ is31fl3733_init(1, IS31FL3733_I2C_ADDRESS_2, IS31FL3733_SYNC_2);
+# endif
+
+ for (int i = 0; i < IS31FL3733_LED_COUNT; i++) {
+ is31fl3733_set_led_control_register(i, true, true, true);
+ }
+
+ is31fl3733_update_led_control_registers(IS31FL3733_I2C_ADDRESS_1, 0);
+# ifdef USE_I2C2
+ is31fl3733_update_led_control_registers(IS31FL3733_I2C_ADDRESS_2, 1);
+# endif
+}
+
void is31fl3733_init(uint8_t bus, uint8_t addr, uint8_t sync) {
// In order to avoid the LEDs being driven with garbage data
// in the LED driver's PWM registers, shutdown is enabled last.
@@ -131,38 +151,52 @@ void is31fl3733_init(uint8_t bus, uint8_t addr, uint8_t sync) {
// Sync is passed so set it according to the datasheet.
// Unlock the command register.
- is31fl3733_write_register(bus, addr, ISSI_COMMANDREGISTER_WRITELOCK, 0xC5);
+ is31fl3733_write_register(bus, addr, IS31FL3733_REG_COMMAND_WRITE_LOCK, IS31FL3733_COMMAND_WRITE_LOCK_MAGIC);
+
// Select PG0
- is31fl3733_write_register(bus, addr, ISSI_COMMANDREGISTER, ISSI_PAGE_LEDCONTROL);
+ is31fl3733_write_register(bus, addr, IS31FL3733_REG_COMMAND, IS31FL3733_COMMAND_LED_CONTROL);
// Turn off all LEDs.
- for (int i = 0x00; i <= 0x17; i++) {
+ for (int i = 0; i < IS31FL3733_LED_CONTROL_REGISTER_COUNT; i++) {
is31fl3733_write_register(bus, addr, i, 0x00);
}
+
// Unlock the command register.
- is31fl3733_write_register(bus, addr, ISSI_COMMANDREGISTER_WRITELOCK, 0xC5);
+ is31fl3733_write_register(bus, addr, IS31FL3733_REG_COMMAND_WRITE_LOCK, IS31FL3733_COMMAND_WRITE_LOCK_MAGIC);
+
// Select PG1
- is31fl3733_write_register(bus, addr, ISSI_COMMANDREGISTER, ISSI_PAGE_PWM);
+ is31fl3733_write_register(bus, addr, IS31FL3733_REG_COMMAND, IS31FL3733_COMMAND_PWM);
// Set PWM on all LEDs to 0
// No need to setup Breath registers to PWM as that is the default.
- for (int i = 0x00; i <= 0xBF; i++) {
+ for (int i = 0; i < IS31FL3733_PWM_REGISTER_COUNT; i++) {
is31fl3733_write_register(bus, addr, i, 0x00);
}
+
// Unlock the command register.
- is31fl3733_write_register(bus, addr, ISSI_COMMANDREGISTER_WRITELOCK, 0xC5);
+ is31fl3733_write_register(bus, addr, IS31FL3733_REG_COMMAND_WRITE_LOCK, IS31FL3733_COMMAND_WRITE_LOCK_MAGIC);
+
// Select PG3
- is31fl3733_write_register(bus, addr, ISSI_COMMANDREGISTER, ISSI_PAGE_FUNCTION);
+ is31fl3733_write_register(bus, addr, IS31FL3733_REG_COMMAND, IS31FL3733_COMMAND_FUNCTION);
+ // Set de-ghost pull-up resistors (SWx)
+ is31fl3733_write_register(bus, addr, IS31FL3733_FUNCTION_REG_SW_PULLUP, IS31FL3733_SW_PULLUP);
+ // Set de-ghost pull-down resistors (CSx)
+ is31fl3733_write_register(bus, addr, IS31FL3733_FUNCTION_REG_CS_PULLDOWN, IS31FL3733_CS_PULLDOWN);
// Set global current to maximum.
- is31fl3733_write_register(bus, addr, ISSI_REG_GLOBALCURRENT, 0xFF);
+ is31fl3733_write_register(bus, addr, IS31FL3733_FUNCTION_REG_GLOBAL_CURRENT, IS31FL3733_GLOBAL_CURRENT);
// Disable software shutdown.
- is31fl3733_write_register(bus, addr, ISSI_REG_CONFIGURATION, (sync << 6) | 0x01);
+ is31fl3733_write_register(bus, addr, IS31FL3733_FUNCTION_REG_CONFIGURATION, ((sync & 0b11) << 6) | ((IS31FL3733_PWM_FREQUENCY & 0b111) << 3) | 0x01);
+
// Wait 10ms to ensure the device has woken up.
wait_ms(10);
}
void is31fl3733_set_color(int index, uint8_t red, uint8_t green, uint8_t blue) {
- if (index >= 0 && index < RGB_MATRIX_LED_COUNT) {
- is31_led led = g_is31_leds[index];
+ is31fl3733_led_t led;
+ if (index >= 0 && index < IS31FL3733_LED_COUNT) {
+ memcpy_P(&led, (&g_is31fl3733_leds[index]), sizeof(led));
+ if (g_pwm_buffer[led.driver][led.r] == red && g_pwm_buffer[led.driver][led.g] == green && g_pwm_buffer[led.driver][led.b] == blue) {
+ return;
+ }
g_pwm_buffer[led.driver][led.r] = red;
g_pwm_buffer[led.driver][led.g] = green;
g_pwm_buffer[led.driver][led.b] = blue;
@@ -171,13 +205,14 @@ void is31fl3733_set_color(int index, uint8_t red, uint8_t green, uint8_t blue) {
}
void is31fl3733_set_color_all(uint8_t red, uint8_t green, uint8_t blue) {
- for (int i = 0; i < RGB_MATRIX_LED_COUNT; i++) {
+ for (int i = 0; i < IS31FL3733_LED_COUNT; i++) {
is31fl3733_set_color(i, red, green, blue);
}
}
void is31fl3733_set_led_control_register(uint8_t index, bool red, bool green, bool blue) {
- is31_led led = g_is31_leds[index];
+ is31fl3733_led_t led;
+ memcpy_P(&led, (&g_is31fl3733_leds[index]), sizeof(led));
uint8_t control_register_r = led.r / 8;
uint8_t control_register_g = led.g / 8;
@@ -208,8 +243,8 @@ void is31fl3733_set_led_control_register(uint8_t index, bool red, bool green, bo
void is31fl3733_update_pwm_buffers(uint8_t addr, uint8_t index) {
if (g_pwm_buffer_update_required[index]) {
// Firstly we need to unlock the command register and select PG1.
- is31fl3733_write_register(index, addr, ISSI_COMMANDREGISTER_WRITELOCK, 0xC5);
- is31fl3733_write_register(index, addr, ISSI_COMMANDREGISTER, ISSI_PAGE_PWM);
+ is31fl3733_write_register(index, addr, IS31FL3733_REG_COMMAND_WRITE_LOCK, IS31FL3733_COMMAND_WRITE_LOCK_MAGIC);
+ is31fl3733_write_register(index, addr, IS31FL3733_REG_COMMAND, IS31FL3733_COMMAND_PWM);
// If any of the transactions fail we risk writing dirty PG0,
// refresh page 0 just in case.
@@ -223,14 +258,18 @@ void is31fl3733_update_pwm_buffers(uint8_t addr, uint8_t index) {
void is31fl3733_update_led_control_registers(uint8_t addr, uint8_t index) {
if (g_led_control_registers_update_required[index]) {
// Firstly we need to unlock the command register and select PG0
- is31fl3733_write_register(index, addr, ISSI_COMMANDREGISTER_WRITELOCK, 0xC5);
- is31fl3733_write_register(index, addr, ISSI_COMMANDREGISTER, ISSI_PAGE_LEDCONTROL);
- for (int i = 0; i < 24; i++) {
+ is31fl3733_write_register(index, addr, IS31FL3733_REG_COMMAND_WRITE_LOCK, IS31FL3733_COMMAND_WRITE_LOCK_MAGIC);
+ is31fl3733_write_register(index, addr, IS31FL3733_REG_COMMAND, IS31FL3733_COMMAND_LED_CONTROL);
+ for (int i = 0; i < IS31FL3733_LED_CONTROL_REGISTER_COUNT; i++) {
is31fl3733_write_register(index, addr, i, g_led_control_registers[index][i]);
}
}
g_led_control_registers_update_required[index] = false;
}
-
-#endif
+void is31fl3733_flush(void) {
+ is31fl3733_update_pwm_buffers(IS31FL3733_I2C_ADDRESS_1, 0);
+# ifdef USE_I2C2
+ is31fl3733_update_pwm_buffers(IS31FL3733_I2C_ADDRESS_2, 1);
+# endif
+}
diff --git a/keyboards/input_club/k_type/is31fl3733-dual.h b/keyboards/input_club/k_type/is31fl3733-dual.h
index 1becefbf93..2f7d58f7e7 100644
--- a/keyboards/input_club/k_type/is31fl3733-dual.h
+++ b/keyboards/input_club/k_type/is31fl3733-dual.h
@@ -22,15 +22,52 @@
#include <stdbool.h>
#include "progmem.h"
-typedef struct is31_led {
+#define IS31FL3733_REG_INTERRUPT_MASK 0xF0
+#define IS31FL3733_REG_INTERRUPT_STATUS 0xF1
+
+#define IS31FL3733_REG_COMMAND 0xFD
+
+#define IS31FL3733_COMMAND_LED_CONTROL 0x00
+#define IS31FL3733_COMMAND_PWM 0x01
+#define IS31FL3733_COMMAND_AUTO_BREATH 0x02
+#define IS31FL3733_COMMAND_FUNCTION 0x03
+
+#define IS31FL3733_FUNCTION_REG_CONFIGURATION 0x00
+#define IS31FL3733_FUNCTION_REG_GLOBAL_CURRENT 0x01
+#define IS31FL3733_FUNCTION_REG_SW_PULLUP 0x0F
+#define IS31FL3733_FUNCTION_REG_CS_PULLDOWN 0x10
+#define IS31FL3733_FUNCTION_REG_RESET 0x11
+
+#define IS31FL3733_REG_COMMAND_WRITE_LOCK 0xFE
+#define IS31FL3733_COMMAND_WRITE_LOCK_MAGIC 0xC5
+
+#define IS31FL3733_I2C_ADDRESS_GND_GND 0x50
+#define IS31FL3733_I2C_ADDRESS_GND_SCL 0x51
+#define IS31FL3733_I2C_ADDRESS_GND_SDA 0x52
+#define IS31FL3733_I2C_ADDRESS_GND_VCC 0x53
+#define IS31FL3733_I2C_ADDRESS_SCL_GND 0x54
+#define IS31FL3733_I2C_ADDRESS_SCL_SCL 0x55
+#define IS31FL3733_I2C_ADDRESS_SCL_SDA 0x56
+#define IS31FL3733_I2C_ADDRESS_SCL_VCC 0x57
+#define IS31FL3733_I2C_ADDRESS_SDA_GND 0x58
+#define IS31FL3733_I2C_ADDRESS_SDA_SCL 0x59
+#define IS31FL3733_I2C_ADDRESS_SDA_SDA 0x5A
+#define IS31FL3733_I2C_ADDRESS_SDA_VCC 0x5B
+#define IS31FL3733_I2C_ADDRESS_VCC_GND 0x5C
+#define IS31FL3733_I2C_ADDRESS_VCC_SCL 0x5D
+#define IS31FL3733_I2C_ADDRESS_VCC_SDA 0x5E
+#define IS31FL3733_I2C_ADDRESS_VCC_VCC 0x5F
+
+typedef struct is31fl3733_led_t {
uint8_t driver : 2;
uint8_t r;
uint8_t g;
uint8_t b;
-} __attribute__((packed)) is31_led;
+} __attribute__((packed)) is31fl3733_led_t;
-extern const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT];
+extern const is31fl3733_led_t PROGMEM g_is31fl3733_leds[IS31FL3733_LED_COUNT];
+void is31fl3733_init_drivers(void);
void is31fl3733_init(uint8_t bus, uint8_t addr, uint8_t sync);
bool is31fl3733_write_register(uint8_t index, uint8_t addr, uint8_t reg, uint8_t data);
bool is31fl3733_write_pwm_buffer(uint8_t index, uint8_t addr, uint8_t *pwm_buffer);
@@ -47,6 +84,36 @@ void is31fl3733_set_led_control_register(uint8_t index, bool red, bool green, bo
void is31fl3733_update_pwm_buffers(uint8_t addr, uint8_t index); // index is the driver index
void is31fl3733_update_led_control_registers(uint8_t addr, uint8_t index);
+void is31fl3733_flush(void);
+
+#define IS31FL3733_PDR_0_OHM 0b000 // No pull-down resistor
+#define IS31FL3733_PDR_0K5_OHM 0b001 // 0.5 kOhm resistor
+#define IS31FL3733_PDR_1K_OHM 0b010 // 1 kOhm resistor
+#define IS31FL3733_PDR_2K_OHM 0b011 // 2 kOhm resistor
+#define IS31FL3733_PDR_4K_OHM 0b100 // 4 kOhm resistor
+#define IS31FL3733_PDR_8K_OHM 0b101 // 8 kOhm resistor
+#define IS31FL3733_PDR_16K_OHM 0b110 // 16 kOhm resistor
+#define IS31FL3733_PDR_32K_OHM 0b111 // 32 kOhm resistor
+
+#define IS31FL3733_PUR_0_OHM 0b000 // No pull-up resistor
+#define IS31FL3733_PUR_0K5_OHM 0b001 // 0.5 kOhm resistor
+#define IS31FL3733_PUR_1K_OHM 0b010 // 1 kOhm resistor
+#define IS31FL3733_PUR_2K_OHM 0b011 // 2 kOhm resistor
+#define IS31FL3733_PUR_4K_OHM 0b100 // 4 kOhm resistor
+#define IS31FL3733_PUR_8K_OHM 0b101 // 8 kOhm resistor
+#define IS31FL3733_PUR_16K_OHM 0b110 // 16 kOhm resistor
+#define IS31FL3733_PUR_32K_OHM 0b111 // 32 kOhm resistor
+
+#define IS31FL3733_PWM_FREQUENCY_8K4_HZ 0b000
+#define IS31FL3733_PWM_FREQUENCY_4K2_HZ 0b001
+#define IS31FL3733_PWM_FREQUENCY_26K7_HZ 0b010
+#define IS31FL3733_PWM_FREQUENCY_2K1_HZ 0b011
+#define IS31FL3733_PWM_FREQUENCY_1K05_HZ 0b100
+
+#define IS31FL3733_SYNC_NONE 0b00
+#define IS31FL3733_SYNC_MASTER 0b01
+#define IS31FL3733_SYNC_SLAVE 0b10
+
#define A_1 0x00
#define A_2 0x01
#define A_3 0x02
diff --git a/keyboards/input_club/k_type/k_type-rgbdriver.c b/keyboards/input_club/k_type/k_type-rgbdriver.c
index dc5d4abd67..e4d2d2d04b 100644
--- a/keyboards/input_club/k_type/k_type-rgbdriver.c
+++ b/keyboards/input_club/k_type/k_type-rgbdriver.c
@@ -15,42 +15,13 @@
*/
#ifdef RGB_MATRIX_ENABLE
-
-#include "rgb_matrix.h"
-#include "i2c_master.h"
-#include "is31fl3733-dual.h"
-#include "gpio.h"
-
-static void init(void) {
- i2c_init(&I2CD1, I2C1_SCL_PIN, I2C1_SDA_PIN);
- is31fl3733_init(0, DRIVER_ADDR_1, 0);
-# ifdef USE_I2C2
- i2c_init(&I2CD2, I2C2_SCL_PIN, I2C2_SDA_PIN);
- is31fl3733_init(1, DRIVER_ADDR_2, 0);
-# endif
- for (int index = 0; index < RGB_MATRIX_LED_COUNT; index++) {
- bool enabled = true;
- // This only caches it for later
- is31fl3733_set_led_control_register(index, enabled, enabled, enabled);
- }
- is31fl3733_update_led_control_registers(DRIVER_ADDR_1, 0);
-# ifdef USE_I2C2
- is31fl3733_update_led_control_registers(DRIVER_ADDR_2, 1);
-# endif
-}
-
-static void flush(void) {
- is31fl3733_update_pwm_buffers(DRIVER_ADDR_1, 0);
-# ifdef USE_I2C2
- is31fl3733_update_pwm_buffers(DRIVER_ADDR_2, 1);
-# endif
-}
+# include "rgb_matrix.h"
+# include "is31fl3733-dual.h"
const rgb_matrix_driver_t rgb_matrix_driver = {
- .init = init,
- .flush = flush,
+ .init = is31fl3733_init_drivers,
+ .flush = is31fl3733_flush,
.set_color = is31fl3733_set_color,
.set_color_all = is31fl3733_set_color_all,
};
-
#endif
diff --git a/keyboards/input_club/k_type/k_type.c b/keyboards/input_club/k_type/k_type.c
index 23a3895408..e97007fc70 100644
--- a/keyboards/input_club/k_type/k_type.c
+++ b/keyboards/input_club/k_type/k_type.c
@@ -18,11 +18,9 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#include "quantum.h"
#ifdef RGB_MATRIX_ENABLE
+# include "is31fl3733-dual.h"
-#include "is31fl3733-dual.h"
-
-
-const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = {
+const is31fl3733_led_t PROGMEM g_is31fl3733_leds[IS31FL3733_LED_COUNT] = {
{ 0, B_1, A_1, C_1 },
{ 0, B_2, A_2, C_2 },
{ 0, B_3, A_3, C_3 },
@@ -202,15 +200,12 @@ led_config_t g_led_config = {
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
}
};
-#endif
-
void keyboard_pre_init_kb(void) {
-#ifdef RGB_MATRIX_ENABLE
// Turn on LED controller
setPinOutput(B16);
writePinHigh(B16);
-#endif
+
keyboard_pre_init_user();
}
@@ -218,17 +213,13 @@ void matrix_init_kb(void) {
// put your keyboard start-up code here
// runs once when the firmware starts up
-#ifdef RGB_MATRIX_ENABLE
/*
* Since K20x is stuck with a 32 byte EEPROM (see tmk_core/common/chibios/eeprom_teensy.c),
* and neither led_matrix_eeconfig.speed or .flags fit in this boundary, just force their values to default on boot.
*/
-# if !defined(RGB_MATRIX_DEFAULT_SPD)
-# define RGB_MATRIX_DEFAULT_SPD UINT8_MAX / 2
-# endif
rgb_matrix_set_speed(RGB_MATRIX_DEFAULT_SPD),
rgb_matrix_set_flags(LED_FLAG_ALL);
-#endif
matrix_init_user();
}
+#endif
diff --git a/keyboards/input_club/k_type/post_rules.mk b/keyboards/input_club/k_type/post_rules.mk
new file mode 100644
index 0000000000..ba750e2624
--- /dev/null
+++ b/keyboards/input_club/k_type/post_rules.mk
@@ -0,0 +1,5 @@
+ifeq ($(strip $(RGB_MATRIX_ENABLE)), yes)
+ # Additional files for RGB lighting
+ SRC += k_type-rgbdriver.c is31fl3733-dual.c
+ QUANTUM_LIB_SRC += i2c_master.c
+endif
diff --git a/keyboards/input_club/k_type/rules.mk b/keyboards/input_club/k_type/rules.mk
index d7776bb755..684de50562 100644
--- a/keyboards/input_club/k_type/rules.mk
+++ b/keyboards/input_club/k_type/rules.mk
@@ -13,8 +13,3 @@ AUDIO_ENABLE = no # Audio output
# RGB options
RGB_MATRIX_ENABLE = no
-
-# Additional files for RGB lighting
-SRC += k_type-rgbdriver.c
-QUANTUM_LIB_SRC += i2c_master.c is31fl3733-dual.c
-
diff --git a/keyboards/input_club/whitefox/board_is31fl3731c.h b/keyboards/input_club/whitefox/board_is31fl3731c.h
deleted file mode 100644
index 238d30cb44..0000000000
--- a/keyboards/input_club/whitefox/board_is31fl3731c.h
+++ /dev/null
@@ -1,106 +0,0 @@
-/*
-Copyright 2016 Fred Sundvik <fsundvik@gmail.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/>.
-*/
-
-#ifndef _GDISP_LLD_BOARD_H
-#define _GDISP_LLD_BOARD_H
-
-static const I2CConfig i2ccfg = {
- 400000 // clock speed (Hz); 400kHz max for IS31
-};
-
-static const uint8_t led_mask[] = {
- 0xFF, 0x00, /* C1-1 -> C1-16 */
- 0xFF, 0x00, /* C2-1 -> C2-16 */
- 0xFF, 0x00, /* C3-1 -> C3-16 */
- 0xFF, 0x00, /* C4-1 -> C4-16 */
- 0xFF, 0x00, /* C5-1 -> C5-16 */
- 0xFF, 0x00, /* C6-1 -> C6-16 */
- 0xFF, 0x00, /* C7-1 -> C7-16 */
- 0xFF, 0x00, /* C8-1 -> C8-16 */
- 0xFF, 0x00, /* C9-1 -> C9-16 */
-};
-
-// The address of the LED
-#define LA(c, r) (c + r * 16 )
-// Need to be an address that is not mapped, but inside the range of the controller matrix
-#define NA LA(8, 8)
-
-// The numbers in the comments are the led numbers DXX on the PCB
-// The mapping is taken from the schematic of left hand side
-static const uint8_t led_mapping[GDISP_SCREEN_HEIGHT][GDISP_SCREEN_WIDTH] = {
-// 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
- { LA(0, 0), LA(1, 0), LA(2, 0), LA(3, 0), LA(4, 0), LA(5, 0), LA(6, 0), LA(7, 0), LA(0, 1), LA(1, 1), LA(2, 1), LA(3, 1), LA(4, 1), LA(5, 1), LA(6, 1), LA(7, 1)},
-// 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
- { LA(0, 2), LA(1, 2), LA(2, 2), LA(3, 2), LA(4, 2), LA(5, 2), LA(6, 2), LA(7, 2), LA(0, 3), LA(1, 3), NA, LA(2, 3), LA(3, 3), LA(4, 3), LA(5, 3), LA(6, 3)},
-// 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46
- { LA(7, 3), LA(0, 4), LA(1, 4), LA(2, 4), LA(3, 4), LA(4, 4), LA(5, 4), LA(6, 4), LA(7, 4), LA(0, 5), NA, LA(1, 5), LA(2, 5), LA(3, 5), LA(4, 5), LA(5, 5)},
-// 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61
- { LA(6, 5), LA(7, 5), LA(0, 6), LA(1, 6), LA(2, 6), LA(3, 6), LA(4, 6), LA(5, 6), LA(6, 6), LA(7, 6), NA, LA(0, 7), LA(1, 7), LA(2, 7), LA(3, 7), LA(4, 7)},
-// 62 63 64 65 66 67 68 69 70 71
- { LA(5, 7), LA(6, 7), LA(7, 7), NA, NA, NA, LA(0, 8), NA, NA, NA, LA(1, 8), LA(2, 8), LA(3, 8), LA(4, 8), LA(5, 8), LA(6, 8)},
-};
-
-
-#define IS31_ADDR_DEFAULT 0x74 // AD connected to GND
-#define IS31_TIMEOUT 5000
-
-static GFXINLINE void init_board(GDisplay *g) {
- (void) g;
- /* I2C pins */
- palSetPadMode(GPIOB, 0, PAL_MODE_ALTERNATIVE_2); // PTB0/I2C0/SCL
- palSetPadMode(GPIOB, 1, PAL_MODE_ALTERNATIVE_2); // PTB1/I2C0/SDA
- palSetPadMode(GPIOB, 16, PAL_MODE_OUTPUT_PUSHPULL);
- palClearPad(GPIOB, 16);
- /* start I2C */
- i2cStart(&I2CD1, &i2ccfg);
- // try high drive (from kiibohd)
- I2CD1.i2c->C2 |= I2Cx_C2_HDRS;
- // try glitch fixing (from kiibohd)
- I2CD1.i2c->FLT = 4;
-}
-
-static GFXINLINE void post_init_board(GDisplay *g) {
- (void) g;
-}
-
-static GFXINLINE const uint8_t* get_led_mask(GDisplay* g) {
- (void) g;
- return led_mask;
-}
-
-static GFXINLINE uint8_t get_led_address(GDisplay* g, uint16_t x, uint16_t y)
-{
- (void) g;
- return led_mapping[y][x];
-}
-
-static GFXINLINE void set_hardware_shutdown(GDisplay* g, bool shutdown) {
- (void) g;
- if(!shutdown) {
- palSetPad(GPIOB, 16);
- }
- else {
- palClearPad(GPIOB, 16);
- }
-}
-
-static GFXINLINE void write_data(GDisplay *g, uint8_t* data, uint16_t length) {
- (void) g;
- i2cMasterTransmitTimeout(&I2CD1, IS31_ADDR_DEFAULT, data, length, 0, 0, TIME_US2I(IS31_TIMEOUT));
-}
-
-#endif /* _GDISP_LLD_BOARD_H */
diff --git a/keyboards/input_club/whitefox/config.h b/keyboards/input_club/whitefox/config.h
index 067b7f4e59..2d6affe84a 100644
--- a/keyboards/input_club/whitefox/config.h
+++ b/keyboards/input_club/whitefox/config.h
@@ -21,8 +21,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define LED_BRIGHTNESS_HI 255
/* LED matrix driver */
-#define LED_DRIVER_ADDR_1 0x74
-#define LED_DRIVER_COUNT 1
+#define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND
#define LED_MATRIX_LED_COUNT 71
#define LED_DISABLE_WHEN_USB_SUSPENDED
diff --git a/keyboards/input_club/whitefox/keymaps/billypython/config.h b/keyboards/input_club/whitefox/keymaps/billypython/config.h
deleted file mode 100644
index 4b511eb848..0000000000
--- a/keyboards/input_club/whitefox/keymaps/billypython/config.h
+++ /dev/null
@@ -1,3 +0,0 @@
-#pragma once
-
-#define LAYER_FN
diff --git a/keyboards/input_club/whitefox/keymaps/billypython/keymap.c b/keyboards/input_club/whitefox/keymaps/billypython/keymap.c
deleted file mode 100644
index 25b8a8572b..0000000000
--- a/keyboards/input_club/whitefox/keymaps/billypython/keymap.c
+++ /dev/null
@@ -1,46 +0,0 @@
-#include QMK_KEYBOARD_H
-#include "billypython.h"
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- /* Base layer
- * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
- * │Esc│ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │ \ │ ` │PSc│
- * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┼───┤
- * │ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │Bspc │Del│
- * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┤
- * │FnCaps│ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ Enter │PgU│
- * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┤
- * │ LShift │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │SftCtl│ ↑ │PgD│
- * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬─┬───┼───┼───┤
- * │LCtl│LGui│LAlt│ Space │RAlt│FnLk│ │ ← │ ↓ │ → │
- * └────┴────┴────┴────────────────────────┴────┴────┘ └───┴───┴───┘
- */
- [L_BASE] = LAYOUT_truefox(
- KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS, KC_GRV, KC_PSCR,
- 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_BSPC, KC_DEL,
- FN_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_PGUP,
- KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, RSF_RCT, KC_UP, KC_PGDN,
- KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, FN_FNLK, KC_LEFT, KC_DOWN, KC_RGHT
- ),
-
- /* Function layer
- * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
- * │ │F1 │F2 │F3 │F4 │F5 │F6 │F7 │F8 │F9 │F10│F11│F12│Num│Scr│Pau│
- * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┼───┤
- * │ M4 │M2 │M↑ │M1 │M3 │M5 │ │PgU│ ↑ │PgD│Ply│Prv│Nxt│Clear│Ins│
- * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┤
- * │ │M← │M↓ │M→ │MW↑│ │Hom│ ← │ ↓ │ → │End│ │ │Top│
- * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┤
- * │ │MA0│MA2│MW←│MW→│ │ │ │VoD│VoU│Mut│ App │PgU│Btm│
- * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬─┬───┼───┼───┤
- * │ │ │ │ MW↓ │ │ │ │Hom│PgD│End│
- * └────┴────┴────┴────────────────────────┴────┴────┘ └───┴───┴───┘
- */
- [L_FN] = LAYOUT_truefox(
- _______, 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_NUM, KC_SCRL, KC_PAUS,
- KC_BTN4, KC_BTN2, KC_MS_U, KC_BTN1, KC_BTN3, KC_BTN5, _______, KC_PGUP, KC_UP, KC_PGDN, KC_MPLY, KC_MPRV, KC_MNXT, CLEAR, KC_INS,
- _______, KC_MS_L, KC_MS_D, KC_MS_R, KC_WH_U, _______, KC_HOME, KC_LEFT, KC_DOWN, KC_RGHT, KC_END, _______, _______, TOP,
- _______, KC_ACL0, KC_ACL2, KC_WH_L, KC_WH_R, _______, _______, _______, KC_VOLD, KC_VOLU, KC_MUTE, KC_APP, KC_PGUP, BOTTOM,
- _______, _______, _______, KC_WH_D, _______, _______, KC_HOME, KC_PGDN, KC_END
- ),
-};
diff --git a/keyboards/input_club/whitefox/keymaps/billypython/rules.mk b/keyboards/input_club/whitefox/keymaps/billypython/rules.mk
deleted file mode 100644
index 4bb1fdfaf7..0000000000
--- a/keyboards/input_club/whitefox/keymaps/billypython/rules.mk
+++ /dev/null
@@ -1,6 +0,0 @@
-BACKLIGHT_ENABLE = no
-BOOTMAGIC_ENABLE = no # Enable Bootmagic Lite
-COMMAND_ENABLE = yes
-CONSOLE_ENABLE = yes
-TAP_DANCE_ENABLE = yes
-VISUALIZER_ENABLE = no
diff --git a/keyboards/input_club/whitefox/keymaps/dhertz/keymap.c b/keyboards/input_club/whitefox/keymaps/dhertz/keymap.c
deleted file mode 100644
index 57338a43d1..0000000000
--- a/keyboards/input_club/whitefox/keymaps/dhertz/keymap.c
+++ /dev/null
@@ -1,58 +0,0 @@
-/*
-Copyright 2015 Jun Wako <wakojun@gmail.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 QMK_KEYBOARD_H
-#include "dhertz.h"
-
-const uint16_t keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- /* Layer 0: Default Layer
- * ,---------------------------------------------------------------.
- * |Esc| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =| Backsp|Del|
- * |---------------------------------------------------------------|
- * |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]|Enter|PgU|
- * |------------------------------------------------------` |---|
- * |SrCtl | A| S| D| F| G| H| J| K| L| ;| '| \| |PgD|
- * |---------------------------------------------------------------|
- * |Shif| #| Z| X| C| V| B| N| M| ,| .| /|Shift |Up |Hom|
- * |---------------------------------------------------------------|
- * |NcCtl| Alt| CTab| LyrSpc |CGv|Iso|CSL|Lef|Dow|Rig|
- * `---------------------------------------------------------------'
- */
- [0] = LAYOUT_iso(
- KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL,
- 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,
- SRCH_CTL,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,HSH_TLD,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_HOME,
- NC_CTL, KC_LALT,CMD_TAB_CMD, LYR_SPC, CMD_GRV_CMD,ISO_COUNTRY_CODE,CMD_SFT_L, KC_LEFT,KC_DOWN,KC_RGHT
- ),
- /* Layer 1: HHKB mode (Space)
- * ,---------------------------------------------------------------.
- * | §| F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12| Backsp|Ins|
- * |---------------------------------------------------------------|
- * |Caps | | | | | | | |Psc|Slk|Pus| Up| | |Del|
- * |------------------------------------------------------` |---|
- * | |VoD|VoU|Mut| | | |Bsp|Del|CSL|Lef|Rig| `| |PgU|
- * |---------------------------------------------------------------|
- * | | `| | |CAC| | | | | | |Dow| |PgU|PgD|
- * |---------------------------------------------------------------|
- * | | | | | | | |Hom|PgD|End|
- * `---------------------------------------------------------------'
- */
- [1] = LAYOUT_iso(
- KC_GRV, 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_BSPC, KC_INS,
- KC_CAPS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,BL_UP, KC_TRNS,KC_TRNS,KC_PSCR,KC_SCRL,KC_TRNS,KC_PAUS, KC_UP, KC_DEL,
- KC_TRNS,KC_VOLD,KC_VOLU,KC_MUTE,KC_TRNS,BL_TOGG,KC_TRNS,KC_BSPC,KC_DEL, CMD_SFT_L,KC_LEFT,KC_RGHT,KC_NUBS, KC_PENT,KC_PGUP,
- KC_TRNS,KC_NUBS,KC_TRNS,KC_TRNS,CMD_ALT_C, BL_DOWN,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_DOWN,KC_TRNS,KC_TRNS, KC_PGUP,KC_PGDN,
- KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS, KC_HOME,KC_PGDN,KC_END
- ),
-};
diff --git a/keyboards/input_club/whitefox/keymaps/dudeofawesome/keymap.c b/keyboards/input_club/whitefox/keymaps/dudeofawesome/keymap.c
deleted file mode 100644
index 6c4d046881..0000000000
--- a/keyboards/input_club/whitefox/keymaps/dudeofawesome/keymap.c
+++ /dev/null
@@ -1,146 +0,0 @@
-#include QMK_KEYBOARD_H
-
-enum whitefox_layers {
- _QWERTY,
- _WORKMAN,
- _COLEMAK,
- _DVORAK,
- _FUNC,
-};
-
-enum whitefox_keycodes {
- QWERTY = SAFE_RANGE,
- WORKMAN,
- COLEMAK,
- DVORAK,
- FUNC,
-};
-
-const uint16_t keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- /* QWERTY (Default Layer)
- * ,---------------------------------------------------------------.
- * |Esc| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =| \| `|Prt|
- * |---------------------------------------------------------------|
- * |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]|Backs|Del|
- * |---------------------------------------------------------------|
- * |Fn/CL | A| S| D| F| G| H| J| K| L| ;| '|Enter |PgU|
- * |---------------------------------------------------------------|
- * |Shif| | Z| X| C| V| B| N| M| ,| .| /|Shift |Up |PgD|
- * |---------------------------------------------------------------|
- * |Ctrl|Alt |Gui | Space |Gui |Alt |Ctrl| |Lef|Dow|Rig|
- * `---------------------------------------------------------------'
- */
- [_QWERTY] = LAYOUT(
- KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS,KC_EQL, KC_BSLS,KC_GRV, KC_PSCR,
- 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_BSPC, KC_DEL,
- LT(_FUNC,KC_CAPS),KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN,KC_QUOT,KC_NUHS,KC_ENT, KC_PGUP,
- 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_PGDN,
- KC_LCTL, KC_LALT,KC_LGUI, KC_SPC, KC_RGUI,KC_RALT,KC_RCTL, KC_LEFT,KC_DOWN,KC_RGHT
- ),
- /* Workman
- * ,---------------------------------------------------------------.
- * |Esc| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =| \| `|Prt|
- * |---------------------------------------------------------------|
- * |Tab | Q| D| R| W| B| J| F| U| P| ;| [| ]|Backs|Del|
- * |---------------------------------------------------------------|
- * |Fn/CL | A| S| H| T| G| Y| N| E| O| I| '|Enter |PgU|
- * |---------------------------------------------------------------|
- * |Shif| | Z| X| M| C| V| K| L| ,| .| /|Shift |Up |PgD|
- * |---------------------------------------------------------------|
- * |Ctrl|Alt |Gui | Space |Gui |Alt |Ctrl| |Lef|Dow|Rig|
- * `---------------------------------------------------------------'
- */
- [_WORKMAN] = LAYOUT(
- KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS,KC_EQL, KC_BSLS,KC_GRV, KC_PSCR,
- KC_TAB, KC_Q, KC_D, KC_R, KC_W, KC_B, KC_J, KC_F, KC_U, KC_P, KC_SCLN,KC_LBRC,KC_RBRC,KC_BSPC, KC_DEL,
- LT(_FUNC,KC_CAPS),KC_A, KC_S, KC_H, KC_T, KC_G, KC_Y, KC_N, KC_E, KC_O, KC_I, KC_QUOT,KC_NUHS,KC_ENT, KC_PGUP,
- KC_LSFT, KC_NUBS,KC_Z, KC_X, KC_M, KC_C, KC_V, KC_K, KC_L, KC_COMM,KC_DOT, KC_SLSH,KC_RSFT, KC_UP, KC_PGDN,
- KC_LCTL, KC_LALT,KC_LGUI, KC_SPC, KC_RGUI,KC_RALT,KC_RCTL, KC_LEFT,KC_DOWN,KC_RGHT
- ),
- /* Dvorak
- * ,---------------------------------------------------------------.
- * |Esc| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| [| ]| `| \|Prt|
- * |---------------------------------------------------------------|
- * |Tab | '| ,| .| P| Y| F| G| C| R| L| /| =|Backs|Del|
- * |---------------------------------------------------------------|
- * |Fn/CL | A| O| E| U| I| D| H| T| N| S| -|Enter |PgU|
- * |---------------------------------------------------------------|
- * |Shif| | ;| Q| J| K| X| B| M| W| V| Z|Shift |Up |PgD|
- * |---------------------------------------------------------------|
- * |Ctrl|Alt |Gui | Space |Gui |Alt |Ctrl| |Lef|Dow|Rig|
- * `---------------------------------------------------------------'
- */
- [_DVORAK] = LAYOUT(
- KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS,KC_EQL, KC_BSLS,KC_GRV, KC_PSCR,
- 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_BSPC, KC_DEL,
- LT(_FUNC,KC_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_PGUP,
- 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_PGDN,
- KC_LCTL, KC_LALT,KC_LGUI, KC_SPC, KC_RGUI,KC_RALT,KC_RCTL, KC_LEFT,KC_DOWN,KC_RGHT
- ),
- /* Colemak
- * ,---------------------------------------------------------------.
- * |Esc| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| +| `| \|Prt|
- * |---------------------------------------------------------------|
- * |Tab | Q| W| F| P| G| J| L| U| Y| ;| [| ]|Backs|Del|
- * |---------------------------------------------------------------|
- * |Fn/CL | A| R| S| T| D| H| N| E| I| O| '|Enter |PgU|
- * |---------------------------------------------------------------|
- * |Shif| | Z| X| C| V| B| K| M| ,| .| /|Shift |Up |PgD|
- * |---------------------------------------------------------------|
- * |Ctrl|Alt |Gui | Space |Gui |Alt |Ctrl| |Lef|Dow|Rig|
- * `---------------------------------------------------------------'
- */
- [_COLEMAK] = LAYOUT(
- KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS,KC_EQL, KC_BSLS,KC_GRV, KC_PSCR,
- 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_BSPC, KC_DEL,
- LT(_FUNC,KC_CAPS),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_PGUP,
- 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_PGDN,
- KC_LCTL, KC_LALT,KC_LGUI, KC_SPC, KC_RGUI,KC_RALT,KC_RCTL, KC_LEFT,KC_DOWN,KC_RGHT
- ),
- /* Function
- * ,---------------------------------------------------------------.
- * | | F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12| | | |
- * |---------------------------------------------------------------|
- * | | | | | | | | | | | | | | | |
- * |---------------------------------------------------------------|
- * | | | | | | | | | | | | | | |
- * |---------------------------------------------------------------|
- * | | | | | | | | | | | | | | | |
- * |---------------------------------------------------------------|
- * | | | | | | | | | | | |
- * `---------------------------------------------------------------'
- */
- [_FUNC] = LAYOUT(
- QK_BOOT, 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_WH_D,KC_BTN2,KC_MS_U,KC_BTN1,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______,
- _______,KC_WH_U,KC_MS_L,KC_MS_D,KC_MS_R,AG_NORM,AG_SWAP,QWERTY, WORKMAN,DVORAK, COLEMAK,_______,_______,_______, _______,
- _______,_______,KC_WH_L,KC_BTN3,KC_WH_R,_______,_______,_______,_______,_______,_______,_______,_______, KC_VOLU,_______,
- _______,_______,_______, KC_MPLY, _______,_______,_______, KC_MPRV,KC_VOLD,KC_MNXT
- ),
-};
-
-bool process_record_user(uint16_t keycode, keyrecord_t *record) {
- switch (keycode) {
- case QWERTY:
- if (record->event.pressed) {
- set_single_persistent_default_layer(_QWERTY);
- }
- return false;
- case WORKMAN:
- if (record->event.pressed) {
- set_single_persistent_default_layer(_WORKMAN);
- }
- return false;
- case DVORAK:
- if (record->event.pressed) {
- set_single_persistent_default_layer(_DVORAK);
- }
- return false;
- case COLEMAK:
- if (record->event.pressed) {
- set_single_persistent_default_layer(_COLEMAK);
- }
- return false;
- }
- return true;
-}
diff --git a/keyboards/input_club/whitefox/keymaps/dudeofawesome/readme.md b/keyboards/input_club/whitefox/keymaps/dudeofawesome/readme.md
deleted file mode 100644
index b5a33e74f6..0000000000
--- a/keyboards/input_club/whitefox/keymaps/dudeofawesome/readme.md
+++ /dev/null
@@ -1,20 +0,0 @@
-# DudeOfAwesome's WhiteFox layout
-
-![WhiteFox Layout](https://i.imgur.com/TYYqJbP.png)
-
-## Features
-
-- Base Layers
- - QWERTY
- - Workman
- - Dvorak
- - Colemak
-- Mouse Keys
-
-## Building and flashing
-
-1. Put your board in DFU mode with either the button on the bottom, or with a software key in your current firmware
-1. Flash:
- ```bash
- $ make whitefox:dudeofawesome:dfu-util
- ```
diff --git a/keyboards/input_club/whitefox/keymaps/konstantin/config.h b/keyboards/input_club/whitefox/keymaps/konstantin/config.h
deleted file mode 100644
index 3c2583e2d4..0000000000
--- a/keyboards/input_club/whitefox/keymaps/konstantin/config.h
+++ /dev/null
@@ -1,4 +0,0 @@
-#pragma once
-
-#define LAYER_FN
-#define LAYER_NUMPAD
diff --git a/keyboards/input_club/whitefox/keymaps/konstantin/keymap.c b/keyboards/input_club/whitefox/keymaps/konstantin/keymap.c
deleted file mode 100644
index d89888aa59..0000000000
--- a/keyboards/input_club/whitefox/keymaps/konstantin/keymap.c
+++ /dev/null
@@ -1,67 +0,0 @@
-#include QMK_KEYBOARD_H
-#include "konstantin.h"
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- /* Base layer
- * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
- * │Esc│ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │ \ │ ` │PSc│
- * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┼───┤
- * │ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │Bspc │Del│
- * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┤
- * │FnCaps│ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ Enter │PgU│
- * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┤
- * │ LShift │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │RSfRCt│ ↑ │PgD│
- * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬─┬───┼───┼───┤
- * │LCtl│LGui│LAlt│ Space │RAlG│FnFL│ │ ← │ ↓ │ → │
- * └────┴────┴────┴────────────────────────┴────┴────┘ └───┴───┴───┘
- */
- [L_BASE] = LAYOUT_truefox(
- KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS, KC_GRV, KC_PSCR,
- 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_BSPC, KC_DEL,
- FN_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_PGUP,
- KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, RSF_RCT, KC_UP, KC_PGDN,
- KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, RAL_RGU, FN_FNLK, KC_LEFT, KC_DOWN, KC_RGHT
- ),
-
- /* Fn layer
- * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
- * │ │F1 │F2 │F3 │F4 │F5 │F6 │F7 │F8 │F9 │F10│F11│F12│Num│SLk│Pau│
- * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┼───┤
- * │ M4 │M2 │M↑ │M1 │M3 │M5 │ │UCM│ │Stp│Ply│Prv│Nxt│Clear│Ins│
- * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┤
- * │ │M← │M↓ │M→ │MW↑│ │ │ │ │ │ │ │ │Top│
- * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┤
- * │ │MA0│MA2│MW←│MW→│ │ │App│Vo-│Vo+│Mut│ │PgU│Btm│
- * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬─┬───┼───┼───┤
- * │ │DtPR│DtNA│ MW↓ │ │ │ │Hom│PgD│End│
- * └────┴────┴────┴────────────────────────┴────┴────┘ └───┴───┴───┘
- */
- [L_FN] = LAYOUT_truefox(
- _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, NUMPAD, KC_SCRL, KC_PAUS,
- KC_BTN4, KC_BTN2, KC_MS_U, KC_BTN1, KC_BTN3, KC_BTN5, _______, UC_NEXT, _______, KC_MSTP, KC_MPLY, KC_MPRV, KC_MNXT, CLEAR, KC_INS,
- _______, KC_MS_L, KC_MS_D, KC_MS_R, KC_WH_U, _______, _______, _______, _______, _______, _______, _______, _______, TOP,
- _______, KC_ACL0, KC_ACL2, KC_WH_L, KC_WH_R, _______, _______, KC_APP, KC_VOLD, KC_VOLU, KC_MUTE, _______, KC_PGUP, BOTTOM,
- _______, DST_P_R, DST_N_A, KC_WH_D, _______, _______, KC_HOME, KC_PGDN, KC_END
- ),
-
- /* Numpad layer
- * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
- * │ │ │ │ │ │ │ │P7 │P8 │P9 │P- │ − │ = │Num│ │ │
- * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┼───┤
- * │ │ │ │ │ │ │ │P4 │P5 │P6 │P+ │ ( │ ) │ │ │
- * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┤
- * │ │ │ │ │ │ │ │P1 │P2 │P3 │P* │ × │ PEnter │ │
- * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┤
- * │ │ │ │ │ │ │P0 │P0 │ , │P. │P/ │ ÷ │ │ │
- * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬─┬───┼───┼───┤
- * │ │ │ │ │ │ │ │ │ │ │
- * └────┴────┴────┴────────────────────────┴────┴────┘ └───┴───┴───┘
- */
- [L_NUMPAD] = LAYOUT_truefox(
- _______, _______, _______, _______, _______, _______, _______, KC_P7, KC_P8, KC_P9, KC_PMNS, MINUS, EQUALS, NUMPAD, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, KC_P4, KC_P5, KC_P6, KC_PPLS, L_PAREN, R_PAREN, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, KC_P1, KC_P2, KC_P3, KC_PAST, TIMES, KC_PENT, _______,
- _______, _______, _______, _______, _______, _______, KC_P0, KC_P0, COMMA, KC_PDOT, KC_PSLS, DIVIDE, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______
- ),
-};
diff --git a/keyboards/input_club/whitefox/keymaps/konstantin/rules.mk b/keyboards/input_club/whitefox/keymaps/konstantin/rules.mk
deleted file mode 100644
index db238f1d04..0000000000
--- a/keyboards/input_club/whitefox/keymaps/konstantin/rules.mk
+++ /dev/null
@@ -1,18 +0,0 @@
-# Generic features
-BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite
-COMMAND_ENABLE = yes
-CONSOLE_ENABLE = yes
-EXTRAKEY_ENABLE = yes
-MOUSEKEY_ENABLE = yes
-NKRO_ENABLE = yes
-TAP_DANCE_ENABLE = yes
-UNICODEMAP_ENABLE = yes
-
-# Keyboard-specific features
-BACKLIGHT_ENABLE = no
-VISUALIZER_ENABLE = no
-
-# Firmware size reduction
-GRAVE_ESC_ENABLE = no
-MAGIC_ENABLE = no
-SPACE_CADET_ENABLE = no
diff --git a/keyboards/input_club/whitefox/whitefox.c b/keyboards/input_club/whitefox/whitefox.c
index 4aa12586f3..63c6a49240 100644
--- a/keyboards/input_club/whitefox/whitefox.c
+++ b/keyboards/input_club/whitefox/whitefox.c
@@ -18,7 +18,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#include "quantum.h"
#ifdef LED_MATRIX_ENABLE
-const is31_led PROGMEM g_is31_leds[LED_MATRIX_LED_COUNT] = {
+const is31fl3731_led_t PROGMEM g_is31fl3731_leds[LED_MATRIX_LED_COUNT] = {
// The numbers in the comments are the led numbers DXX on the PCB
/* Refer to IS31 manual for these locations
* driver
@@ -83,9 +83,6 @@ void matrix_init_kb(void) {
* Since K20x is stuck with a 32 byte EEPROM (see tmk_core/common/chibios/eeprom_teensy.c),
* and neither led_matrix_eeconfig.speed or .flags fit in this boundary, just force their values to default on boot.
*/
-# if !defined(LED_MATRIX_DEFAULT_SPD)
-# define LED_MATRIX_DEFAULT_SPD UINT8_MAX / 2
-# endif
led_matrix_set_speed(LED_MATRIX_DEFAULT_SPD),
led_matrix_set_flags(LED_FLAG_ALL);
#endif
diff --git a/keyboards/jacky_studio/bear_65/keymaps/stanrc85/keymap.c b/keyboards/jacky_studio/bear_65/keymaps/stanrc85/keymap.c
deleted file mode 100644
index 8f0ce714ec..0000000000
--- a/keyboards/jacky_studio/bear_65/keymaps/stanrc85/keymap.c
+++ /dev/null
@@ -1,49 +0,0 @@
-/* Copyright 2021 Stanrc85
- *
- * 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 "stanrc85.h"
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [_QWERTY] = LAYOUT_full_bs(
- KC_ESC, 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_DEL,
- 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,
- MO(_FN2_60), KC_CTLE, 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_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP,
- KC_LCTL, KC_LALT, LT_BPCF, KC_LGUI, LT_SPCF, TD_TWIN, KC_LEFT, KC_DOWN, KC_RGHT
- ),
- [_DEFAULT] = LAYOUT_full_bs(
- KC_ESC, 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_DEL,
- KC_PGUP, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS,
- KC_PGDN, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
- KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP,
- KC_LCTL, KC_LALT, KC_SPC, MO(_FN1_60), KC_SPC, MO(_FN2_60), KC_LEFT, KC_DOWN, KC_RGHT
- ),
- [_FN1_60] = LAYOUT_full_bs(
- _______, _______, 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_INS,
- _______, _______, _______, _______, _______, _______, KC_VOLU, KC_PGUP, KC_BSPC, KC_UP, KC_DEL, KC_PSCR, _______, _______, _______,
- _______, KC_CAPS, _______, _______, KC_LCTL, KC_LSFT, KC_VOLD, KC_PGDN, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______,
- _______, KC_RDP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______
- ),
- [_FN2_60] = LAYOUT_full_bs(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_TOG,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, QK_BOOT,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MAKE,
- _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, RGB_MOD, RGB_VAI,
- TG(_DEFAULT), _______, _______, _______, _______, _______, RGB_HUD, RGB_VAD, RGB_HUI
- )
-};
diff --git a/keyboards/jacky_studio/bear_65/keymaps/stanrc85/rules.mk b/keyboards/jacky_studio/bear_65/keymaps/stanrc85/rules.mk
deleted file mode 100644
index 89d03e8c1f..0000000000
--- a/keyboards/jacky_studio/bear_65/keymaps/stanrc85/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-USER_NAME := stanrc85
diff --git a/keyboards/jacky_studio/piggy60/rev2/info.json b/keyboards/jacky_studio/piggy60/rev2/info.json
index 50f2849e73..6d5db8874f 100644
--- a/keyboards/jacky_studio/piggy60/rev2/info.json
+++ b/keyboards/jacky_studio/piggy60/rev2/info.json
@@ -1,5 +1,4 @@
{
- "board": "STM32_F103_STM32DUINO",
"bootloader": "uf2boot",
"diode_direction": "ROW2COL",
"community_layouts": ["60_hhkb", "60_tsangan_hhkb"],
diff --git a/keyboards/jd45/keymaps/talljoe/config.h b/keyboards/jd45/keymaps/talljoe/config.h
deleted file mode 100644
index 8b06cefd52..0000000000
--- a/keyboards/jd45/keymaps/talljoe/config.h
+++ /dev/null
@@ -1,32 +0,0 @@
-/* Copyright 2020 Joseph Wasson
- *
- * 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 PREVENT_STUCK_MODIFIERS
-#define SPACE_COUNT 2
-
-#define TEMPLATE( \
- K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K2D, \
- K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \
- K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, \
- K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, \
- K40, K41, K42, K44, K45, K46, K48, K49, K4B, K4C \
-) { \
- { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K0D, K1D }, \
- { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, KC_NO }, \
- { K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, KC_NO }, \
- { K40, K00, K41, K42, K44, KC_NO, K46, KC_NO, K48, K49, K3D, K4C, KC_NO } \
-}
diff --git a/keyboards/jd45/keymaps/talljoe/keymap.c b/keyboards/jd45/keymaps/talljoe/keymap.c
deleted file mode 100644
index 7812add812..0000000000
--- a/keyboards/jd45/keymaps/talljoe/keymap.c
+++ /dev/null
@@ -1 +0,0 @@
-// This space intentionally left blank
diff --git a/keyboards/jian/keymaps/advanced/config.h b/keyboards/jian/keymaps/advanced/config.h
index 1a033d8311..edeab03fb1 100644
--- a/keyboards/jian/keymaps/advanced/config.h
+++ b/keyboards/jian/keymaps/advanced/config.h
@@ -24,3 +24,5 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
//#define AUTO_SHIFT_MODIFIERS
#define ALT_LAYOUTS_ENABLE
//#define TRAINING_HALFES_LOCK
+
+#define LAYER_STATE_32BIT
diff --git a/keyboards/jian/keymaps/advanced/keymap.c b/keyboards/jian/keymaps/advanced/keymap.c
index a825e061b5..7702fc20b7 100644
--- a/keyboards/jian/keymaps/advanced/keymap.c
+++ b/keyboards/jian/keymaps/advanced/keymap.c
@@ -11,7 +11,6 @@ typedef union {
user_config_t user_config;
#ifdef STENO_ENABLE
-#include "keymap_steno.h"
#endif // STENO_ENABLE
@@ -86,9 +85,6 @@ enum jian_layers {
_LEFT,
_RIGHT,
#endif //TRAINING_HALFES_LOCK
-#ifdef DIPS_ENABLE
- _DIPS,
-#endif // DIPS_ENABLE
#ifdef STENO_ENABLE
_PLOVER
#endif // STENO_ENABLE
@@ -107,7 +103,7 @@ enum jian_keycodes {
CH_QWE,
CH_DVK,
//endif // ALT_LAYOUTS_ENABLE
-#ifdef DIPS_ENABLE
+#ifdef DIP_SWITCH_ENABLE
LAYOUT0,
LAYOUT1,
LAYOUT2,
@@ -120,18 +116,18 @@ enum jian_keycodes {
DIP9,
DIP10,
DIP11,
-#endif // DIPS_ENABLE
+#endif // DIP_SWITCH_ENABLE
};
#ifdef TRAINING_HALFES_LOCK
static uint8_t lock_timeout = 1;
static uint8_t lock_cooldown = 0;
#endif //TRAINING_HALFES_LOCK
-#ifdef DIPS_ENABLE
+#ifdef DIP_SWITCH_ENABLE
#ifdef ALT_LAYOUTS_ENABLE
static uint8_t layout_conversion_dip_state = 0;
#endif // ALT_LAYOUTS_ENABLE
-#endif // DIPS_ENABLE
+#endif // DIP_SWITCH_ENABLE
#define LOWER MO(_LOWER)
#define RAISE MO(_RAISE)
@@ -190,13 +186,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_QWERTY] = LAYOUT_base_wrapper(QWERTY_base),
-#ifdef DIPS_ENABLE
-[_DIPS] = LAYOUT_dips(
- LAYOUT0, LAYOUT1, LAYOUT2, LAYOUT3, DIP_ISO, FLIP_TH,
- LAYOUT0, LAYOUT1, LAYOUT2, LAYOUT3, DIP_ISO, FLIP_TH
-),
-#endif // DIPS_ENABLE
-
[_LOWER] = LAYOUT(
_______, KC_UNDS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, F12_RGU,
EQL_LCT, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, MIN_RCT,
@@ -282,7 +271,7 @@ layer_state_t layer_state_set_user(layer_state_t state) {
return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST);
}
-#ifdef DIPS_ENABLE
+#ifdef DIP_SWITCH_ENABLE
#ifdef ALT_LAYOUTS_ENABLE
void layout_convert(uint8_t statuses) {
switch (0b1111 & statuses) {
@@ -337,13 +326,7 @@ void layout_convert(uint8_t statuses) {
}
}
#endif // ALT_LAYOUTS_ENABLE
-#endif // DIPS_ENABLE
-
-void matrix_init_user(void) {
-#ifdef DIPS_ENABLE
- layer_on(_DIPS);
-#endif // DIPS_ENABLE
-}
+#endif // DIP_SWITCH_ENABLE
void keyboard_post_init_user(void) {
user_config.raw = eeconfig_read_user();
@@ -515,70 +498,83 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
}
return false;
#endif // ALT_LAYOUTS_ENABLE
-#ifdef DIPS_ENABLE
-#ifdef ALT_LAYOUTS_ENABLE
- case LAYOUT0:
+ case THUMB_ALT:
+ if (record->event.pressed) {
+ layer_invert(_THUMB_ALT);
+ user_config.thumb_alt ^= 1;
+ eeconfig_update_user(user_config.raw);
+ }
+ return false;
+ case ISO:
if (record->event.pressed) {
+ layer_invert(_ISO);
+ user_config.iso ^= 1;
+ eeconfig_update_user(user_config.raw);
+ }
+ return false;
+ }
+ return true;
+}
+
+#if defined(DIP_SWITCH_ENABLE)
+bool dip_switch_update_user(uint8_t index, bool active) {
+ switch (index) {
+# if defined(ALT_LAYOUTS_ENABLE)
+ case 0: // LAYOUT0
+ case 6:
+ if (active) {
layout_conversion_dip_state |= 1 << 0;
} else {
layout_conversion_dip_state &= ~(1 << 0);
}
layout_convert(layout_conversion_dip_state);
- return false;
- case LAYOUT1:
- if (record->event.pressed) {
+ break;
+ case 1: // LAYOUT1
+ case 7:
+ if (active) {
layout_conversion_dip_state |= 1 << 1;
} else {
layout_conversion_dip_state &= ~(1 << 1);
}
layout_convert(layout_conversion_dip_state);
- return false;
- case LAYOUT2:
- if (record->event.pressed) {
+ break;
+ case 2: // LAYOUT2
+ case 8:
+ if (active) {
layout_conversion_dip_state |= 1 << 2;
} else {
layout_conversion_dip_state &= ~(1 << 2);
}
layout_convert(layout_conversion_dip_state);
- return false;
- case LAYOUT3:
- if (record->event.pressed) {
+ break;
+ case 3: // LAYOUT3
+ case 9:
+ if (active) {
layout_conversion_dip_state |= 1 << 3;
} else {
layout_conversion_dip_state &= ~(1 << 3);
}
layout_convert(layout_conversion_dip_state);
- return false;
-#endif // ALT_LAYOUTS_ENABLE
- case DIP_ISO:
- if (record->event.pressed) {
- layer_on(_ISO);
+ break;
+ case 4: // DIP_ISO
+ case 10:
+ if (active) {
+ layer_on(_ISO);
} else {
- layer_off(_ISO);
+ layer_off(_ISO);
}
- return false;
- case FLIP_TH:
- if (record->event.pressed) {
- layer_on(_THUMB_ALT);
+ break;
+ case 5: // FLIP_TH
+ case 11:
+ if (active) {
+ layer_on(_THUMB_ALT);
} else {
- layer_off(_THUMB_ALT);
- }
- return false;
-#endif // DIPS_ENABLE
- case THUMB_ALT:
- if (record->event.pressed) {
- layer_invert(_THUMB_ALT);
- user_config.thumb_alt ^= 1;
- eeconfig_update_user(user_config.raw);
- }
- return false;
- case ISO:
- if (record->event.pressed) {
- layer_invert(_ISO);
- user_config.iso ^= 1;
- eeconfig_update_user(user_config.raw);
+ layer_off(_THUMB_ALT);
}
- return false;
+ break;
+# endif
}
+
return true;
}
+#endif
diff --git a/keyboards/jian/rev1/config.h b/keyboards/jian/rev1/config.h
index 8f1a34c2ff..fcdf59f044 100644
--- a/keyboards/jian/rev1/config.h
+++ b/keyboards/jian/rev1/config.h
@@ -25,7 +25,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define EE_HANDS
// different Jian configs
-#define DIPS_ENABLE
#define PHYSICAL_LEDS_ENABLE
#define NUM_LOCK_LED_PIN C6
#define CAPS_LOCK_LED_PIN D7
diff --git a/keyboards/jian/rev1/info.json b/keyboards/jian/rev1/info.json
index 27c5c957a6..68a6efe47b 100644
--- a/keyboards/jian/rev1/info.json
+++ b/keyboards/jian/rev1/info.json
@@ -8,6 +8,12 @@
"rows": ["D3", "D2", "E6", "B4"]
},
"diode_direction": "COL2ROW",
+ "dip_switch": {
+ "matrix_grid": [
+ [1, 0], [2, 0], [3, 0], [3, 1], [3, 2], [3, 3],
+ [7, 3], [7, 2], [7, 1], [7, 0], [6, 0], [5, 0]
+ ]
+ },
"backlight": {
"pin": "B6",
"levels": 5
@@ -90,23 +96,6 @@
{"matrix": [7, 5], "x": 10, "y": 3.375},
{"matrix": [7, 4], "x": 11, "y": 3.25}
]
- },
- "LAYOUT_dips": {
- "layout": [
- {"matrix": [1, 0], "x": 0, "y": 0},
- {"matrix": [2, 0], "x": 1, "y": 0},
- {"matrix": [3, 0], "x": 2, "y": 0},
- {"matrix": [3, 1], "x": 3, "y": 0},
- {"matrix": [3, 2], "x": 4, "y": 0},
- {"matrix": [3, 3], "x": 5, "y": 0},
-
- {"matrix": [7, 3], "x": 6, "y": 0},
- {"matrix": [7, 2], "x": 7, "y": 0},
- {"matrix": [7, 1], "x": 8, "y": 0},
- {"matrix": [7, 0], "x": 9, "y": 0},
- {"matrix": [6, 0], "x": 10, "y": 0},
- {"matrix": [5, 0], "x": 11, "y": 0}
- ]
}
}
}
diff --git a/keyboards/jian/rev1/rules.mk b/keyboards/jian/rev1/rules.mk
index 8e6da2d84f..33588c1755 100644
--- a/keyboards/jian/rev1/rules.mk
+++ b/keyboards/jian/rev1/rules.mk
@@ -5,3 +5,4 @@ CONSOLE_ENABLE = no
SPLIT_KEYBOARD = yes
BACKLIGHT_ENABLE = yes
RGBLIGHT_ENABLE = yes
+DIP_SWITCH_ENABLE = yes
diff --git a/keyboards/jolofsor/denial75/info.json b/keyboards/jolofsor/denial75/info.json
index 545243e410..18becc3ffb 100644
--- a/keyboards/jolofsor/denial75/info.json
+++ b/keyboards/jolofsor/denial75/info.json
@@ -27,8 +27,12 @@
},
"processor": "atmega32u4",
"bootloader": "atmel-dfu",
+ "community_layouts": ["75_ansi"],
+ "layout_aliases": {
+ "LAYOUT_denial75_ansi": "LAYOUT_75_ansi"
+ },
"layouts": {
- "LAYOUT_denial75_ansi": {
+ "LAYOUT_75_ansi": {
"layout": [
{"x": 0, "y": 0, "matrix": [0, 0]},
{"x": 1.25, "y": 0, "matrix": [0, 1]},
diff --git a/keyboards/jolofsor/denial75/keymaps/default/keymap.c b/keyboards/jolofsor/denial75/keymaps/default/keymap.c
index b324f24558..cf3be1f3e7 100644
--- a/keyboards/jolofsor/denial75/keymaps/default/keymap.c
+++ b/keyboards/jolofsor/denial75/keymaps/default/keymap.c
@@ -114,7 +114,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [0] = LAYOUT_denial75_ansi(
+ [0] = LAYOUT_75_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_PSCR, KC_INS, 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,
@@ -123,12 +123,12 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
),
- [1] = LAYOUT_denial75_ansi(
+ [1] = LAYOUT_75_ansi(
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_MUTE, KC_AUDIO_VOL_DOWN, KC_AUDIO_VOL_UP,
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_BRIU,
KC_NO, LEDRED, LEDBLUE, LEDYELLOW, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_BRID,
KC_NO, LEDORANGE, LEDGREEN, LEDPURPLE, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, RGB_VAI,
KC_NO, LEDWHITE, LEDPINK, LEDBLACK, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, RGB_VAD,
- KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, MO(1), RGB_TOG, KC_NO, KC_NO, KC_NO
+ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_TRNS, RGB_TOG, KC_NO, KC_NO, KC_NO
)
};
diff --git a/keyboards/jolofsor/denial75/keymaps/via/keymap.c b/keyboards/jolofsor/denial75/keymaps/via/keymap.c
index 678522ddfb..cf3be1f3e7 100644
--- a/keyboards/jolofsor/denial75/keymaps/via/keymap.c
+++ b/keyboards/jolofsor/denial75/keymaps/via/keymap.c
@@ -114,7 +114,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [0] = LAYOUT_denial75_ansi(
+ [0] = LAYOUT_75_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_PSCR, KC_INS, 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,
@@ -123,30 +123,12 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
),
- [1] = LAYOUT_denial75_ansi(
+ [1] = LAYOUT_75_ansi(
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_MUTE, KC_AUDIO_VOL_DOWN, KC_AUDIO_VOL_UP,
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_BRIU,
KC_NO, LEDRED, LEDBLUE, LEDYELLOW, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_BRID,
KC_NO, LEDORANGE, LEDGREEN, LEDPURPLE, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, RGB_VAI,
KC_NO, LEDWHITE, LEDPINK, LEDBLACK, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, RGB_VAD,
- KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, MO(1), RGB_TOG, KC_NO, KC_NO, KC_NO
- ),
-
- [2] = LAYOUT_denial75_ansi(
- KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
- KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
- KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
- KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
- KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
- KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO
- ),
-
- [3] = LAYOUT_denial75_ansi(
- KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
- KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
- KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
- KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
- KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
- KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO
+ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_TRNS, RGB_TOG, KC_NO, KC_NO, KC_NO
)
};
diff --git a/keyboards/jones/v1/config.h b/keyboards/jones/v1/config.h
index e36574e56a..541a6ae2f0 100644
--- a/keyboards/jones/v1/config.h
+++ b/keyboards/jones/v1/config.h
@@ -32,8 +32,3 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
/* External EEPROM */
// Use 24LC64 EEPROM
#define EEPROM_I2C_24LC64
-// Set MAX_ADDR to specify actual EEPROM size.
-// If it's not set, EEPROM size will be set ATmega32u4's 1023.
-#define DYNAMIC_KEYMAP_EEPROM_MAX_ADDR 8191
-// How many layers to use with VIA / Remap.
-#define DYNAMIC_KEYMAP_LAYER_COUNT 6 // default:4
diff --git a/keyboards/jones/v1/info.json b/keyboards/jones/v1/info.json
index fdc5cbd310..54496d3164 100644
--- a/keyboards/jones/v1/info.json
+++ b/keyboards/jones/v1/info.json
@@ -21,6 +21,12 @@
"pin": "F1"
},
"diode_direction": "COL2ROW",
+ "dynamic_keymap": {
+ "layer_count": 6
+ },
+ "eeprom": {
+ "driver": "i2c"
+ },
"encoder": {
"rotary": [
{"pin_a": "F5", "pin_b": "F4"},
diff --git a/keyboards/jones/v1/rules.mk b/keyboards/jones/v1/rules.mk
index cfc8879b74..6f522a4365 100644
--- a/keyboards/jones/v1/rules.mk
+++ b/keyboards/jones/v1/rules.mk
@@ -12,7 +12,4 @@ RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
AUDIO_ENABLE = yes # Audio output
ENCODER_ENABLE = yes # Rotary Encoder
-# Use I2C connected External EEPROM
-EEPROM_DRIVER = i2c
-
LTO_ENABLE = yes
diff --git a/keyboards/jorne/keymaps/manna-harbour_miryoku/config.h b/keyboards/jorne/keymaps/manna-harbour_miryoku/config.h
deleted file mode 100644
index 76b24aa99e..0000000000
--- a/keyboards/jorne/keymaps/manna-harbour_miryoku/config.h
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright 2022 Manna Harbour
-// https://github.com/manna-harbour/miryoku
-
-// 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 XXX KC_NO
-
-#define LAYOUT_miryoku( \
- 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, \
- N30, N31, K32, K33, K34, K35, K36, K37, N38, N39 \
-) \
-LAYOUT( \
-XXX, XXX, K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, XXX, XXX, \
- XXX, K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, XXX, \
- XXX, K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, XXX, \
- K32, K33, K34, K35, K36, K37 \
-)
diff --git a/keyboards/jorne/keymaps/manna-harbour_miryoku/keymap.c b/keyboards/jorne/keymaps/manna-harbour_miryoku/keymap.c
deleted file mode 100644
index dbab7f9820..0000000000
--- a/keyboards/jorne/keymaps/manna-harbour_miryoku/keymap.c
+++ /dev/null
@@ -1,4 +0,0 @@
-// Copyright 2019 Manna Harbour
-// https://github.com/manna-harbour/miryoku
-
-// 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/>.
diff --git a/keyboards/jorne/rev1/config.h b/keyboards/jorne/rev1/config.h
index 623aaf149c..3b854d3afc 100644
--- a/keyboards/jorne/rev1/config.h
+++ b/keyboards/jorne/rev1/config.h
@@ -7,5 +7,3 @@
/* Locking resynchronize hack */
#define LOCKING_RESYNC_ENABLE
-#define SPLIT_LAYER_STATE_ENABLE
-#define SPLIT_LED_STATE_ENABLE
diff --git a/keyboards/jorne/rev1/info.json b/keyboards/jorne/rev1/info.json
index 1b1f156fa5..f76b9c0e7d 100644
--- a/keyboards/jorne/rev1/info.json
+++ b/keyboards/jorne/rev1/info.json
@@ -14,7 +14,13 @@
},
"diode_direction": "COL2ROW",
"split": {
- "soft_serial_pin": "D2"
+ "soft_serial_pin": "D2",
+ "transport": {
+ "sync": {
+ "indicators": true,
+ "layer_state": true
+ }
+ }
},
"rgblight": {
"led_count": 56,
diff --git a/keyboards/jukaie/jk01/config.h b/keyboards/jukaie/jk01/config.h
index 8a7ea71db4..62c709a917 100644
--- a/keyboards/jukaie/jk01/config.h
+++ b/keyboards/jukaie/jk01/config.h
@@ -25,7 +25,6 @@
/* External spi flash */
#define EXTERNAL_FLASH_SPI_SLAVE_SELECT_PIN B14
-#define WEAR_LEVELING_BACKING_SIZE (8 * 1024)
/* SPI Config for LED Driver */
#define SPI_DRIVER SPIDQ
@@ -38,7 +37,6 @@
#define DRIVER_1_EN C13
#define DRIVER_2_EN C13
-#define DRIVER_COUNT 2
#define DRIVER_1_LED_TOTAL 66
#define DRIVER_2_LED_TOTAL 19
#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL)
diff --git a/keyboards/jukaie/jk01/info.json b/keyboards/jukaie/jk01/info.json
index 87c787158c..c53a59a5a3 100644
--- a/keyboards/jukaie/jk01/info.json
+++ b/keyboards/jukaie/jk01/info.json
@@ -7,6 +7,13 @@
"matrix": [1, 3]
},
"diode_direction": "COL2ROW",
+ "eeprom": {
+ "driver": "wear_leveling",
+ "wear_leveling": {
+ "driver": "spi_flash",
+ "backing_size": 8192
+ }
+ },
"encoder": {
"rotary": [
{"pin_a": "C2", "pin_b": "C3"}
@@ -175,9 +182,6 @@
"pid": "0x0002",
"vid": "0x4141"
},
- "eeprom": {
- "driver": "wear_leveling"
- },
"layouts": {
"LAYOUT": {
"layout": [
diff --git a/keyboards/jukaie/jk01/rules.mk b/keyboards/jukaie/jk01/rules.mk
index 002458405e..6e7633bfe0 100644
--- a/keyboards/jukaie/jk01/rules.mk
+++ b/keyboards/jukaie/jk01/rules.mk
@@ -1 +1 @@
-WEAR_LEVELING_DRIVER = spi_flash
+# This file intentionally left blank
diff --git a/keyboards/kabedon/kabedon980/config.h b/keyboards/kabedon/kabedon980/config.h
deleted file mode 100644
index 3623c508cc..0000000000
--- a/keyboards/kabedon/kabedon980/config.h
+++ /dev/null
@@ -1,20 +0,0 @@
-/*
-Copyright 2012 Jun Wako <wakojun@gmail.com>
-
-This program is free software: you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program. If not, see <http://www.gnu.org/licenses/>.
-*/
-
-#pragma once
-
-#define DYNAMIC_KEYMAP_LAYER_COUNT 3
diff --git a/keyboards/kabedon/kabedon980/info.json b/keyboards/kabedon/kabedon980/info.json
index ae15a51ea3..f443f58a3d 100644
--- a/keyboards/kabedon/kabedon980/info.json
+++ b/keyboards/kabedon/kabedon980/info.json
@@ -33,6 +33,9 @@
"rows": ["D0", "D2", "F7", "B1", "B0", "D6", "C7", "D7", "B5", "B2"]
},
"diode_direction": "ROW2COL",
+ "dynamic_keymap": {
+ "layer_count": 3
+ },
"processor": "atmega32u4",
"bootloader": "atmel-dfu",
"layouts": {
diff --git a/keyboards/kagizaraya/chidori/rules.mk b/keyboards/kagizaraya/chidori/rules.mk
index cbec27a8cb..f94317cf22 100644
--- a/keyboards/kagizaraya/chidori/rules.mk
+++ b/keyboards/kagizaraya/chidori/rules.mk
@@ -16,4 +16,4 @@ CUSTOM_MATRIX = lite
# project specific files
SRC += matrix.c
SRC += board.c
-QUANTUM_LIB_SRC += i2c_master.c
+I2C_DRIVER_REQUIRED = yes
diff --git a/keyboards/kapl/rev1/config.h b/keyboards/kapl/rev1/config.h
index c5c9ada22b..db7eaaee49 100644
--- a/keyboards/kapl/rev1/config.h
+++ b/keyboards/kapl/rev1/config.h
@@ -8,7 +8,6 @@
#define RGB_MATRIX_LED_COUNT 88
#define RGB_MATRIX_SPLIT { 44, 44 }
#define RGB_MATRIX_MAXIMUM_BRIGHTNESS 120 // limits maximum brightness of LEDs to 150 out of 255. Higher may cause the controller to crash.
-#define SPLIT_TRANSPORT_MIRROR
#ifdef RGB_MATRIX_ENABLE
// EFFECTS
@@ -41,6 +40,3 @@
#define LOCKING_SUPPORT_ENABLE
/* Locking resynchronize hack */
#define LOCKING_RESYNC_ENABLE
-
-#define SPLIT_LAYER_STATE_ENABLE
-#define SPLIT_LED_STATE_ENABLE
diff --git a/keyboards/kapl/rev1/info.json b/keyboards/kapl/rev1/info.json
index 5ef44ccaaa..b649c055ac 100644
--- a/keyboards/kapl/rev1/info.json
+++ b/keyboards/kapl/rev1/info.json
@@ -36,7 +36,14 @@
},
"diode_direction": "COL2ROW",
"split": {
- "soft_serial_pin": "D2"
+ "soft_serial_pin": "D2",
+ "transport": {
+ "sync": {
+ "indicators": true,
+ "layer_state": true,
+ "matrix_state": true
+ }
+ }
},
"processor": "atmega32u4",
"bootloader": "caterina",
diff --git a/keyboards/kbdcraft/adam64/adam64.c b/keyboards/kbdcraft/adam64/adam64.c
index c23bd489a5..b0712aec39 100644
--- a/keyboards/kbdcraft/adam64/adam64.c
+++ b/keyboards/kbdcraft/adam64/adam64.c
@@ -19,7 +19,7 @@
#include "quantum.h"
#ifdef RGB_MATRIX_ENABLE
-const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = {
+const is31fl3741_led_t PROGMEM g_is31fl3741_leds[RGB_MATRIX_LED_COUNT] = {
/* Refer to IS31 manual for these locations
* driver
* | R location
diff --git a/keyboards/kbdcraft/adam64/config.h b/keyboards/kbdcraft/adam64/config.h
index 81101bbb61..511eb7f8ab 100644
--- a/keyboards/kbdcraft/adam64/config.h
+++ b/keyboards/kbdcraft/adam64/config.h
@@ -23,8 +23,7 @@
#define I2C1_CLOCK_SPEED 400000
#define I2C1_DUTY_CYCLE FAST_DUTY_CYCLE_16_9
-#define DRIVER_COUNT 1
-#define DRIVER_ADDR_1 0b0110000
+#define IS31FL3741_I2C_ADDRESS_1 IS31FL3741_I2C_ADDRESS_GND
#define RGB_MATRIX_LED_COUNT 64
/* turn off effects when suspended */
diff --git a/keyboards/kbdfans/bella/rgb/config.h b/keyboards/kbdfans/bella/rgb/config.h
index c8114dc57b..754f4e1eb8 100644
--- a/keyboards/kbdfans/bella/rgb/config.h
+++ b/keyboards/kbdfans/bella/rgb/config.h
@@ -71,8 +71,7 @@
// # define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH
//#define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_SOLID_COLOR
#define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_CYCLE_ALL
-#define DRIVER_ADDR_1 0b0110000
-#define DRIVER_COUNT 1
+#define IS31FL3741_I2C_ADDRESS_1 IS31FL3741_I2C_ADDRESS_GND
#define RGB_MATRIX_LED_COUNT 108
#define DRIVER_INDICATOR_LED_TOTAL 0
#endif
diff --git a/keyboards/kbdfans/bella/rgb/rgb.c b/keyboards/kbdfans/bella/rgb/rgb.c
index aac16dd820..8bdc1d8fdf 100644
--- a/keyboards/kbdfans/bella/rgb/rgb.c
+++ b/keyboards/kbdfans/bella/rgb/rgb.c
@@ -15,7 +15,7 @@
*/
#include "quantum.h"
#ifdef RGB_MATRIX_ENABLE
-const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = {
+const is31fl3741_led_t PROGMEM g_is31fl3741_leds[RGB_MATRIX_LED_COUNT] = {
{0, CS18_SW1, CS17_SW1, CS16_SW1}, /* RGB6 */
{0, CS18_SW3, CS17_SW3, CS16_SW3}, /* RGB32 */
{0, CS18_SW4, CS17_SW4, CS16_SW4}, /* RGB45 */
diff --git a/keyboards/kbdfans/bella/rgb_iso/config.h b/keyboards/kbdfans/bella/rgb_iso/config.h
index 8dea9c2164..48284a5160 100644
--- a/keyboards/kbdfans/bella/rgb_iso/config.h
+++ b/keyboards/kbdfans/bella/rgb_iso/config.h
@@ -71,8 +71,7 @@
// # define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH
//#define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_SOLID_COLOR
#define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_CYCLE_ALL
-#define DRIVER_ADDR_1 0b0110000
-#define DRIVER_COUNT 1
+#define IS31FL3741_I2C_ADDRESS_1 IS31FL3741_I2C_ADDRESS_GND
#define RGB_MATRIX_LED_COUNT 109
#define DRIVER_INDICATOR_LED_TOTAL 0
#endif
diff --git a/keyboards/kbdfans/bella/rgb_iso/rgb_iso.c b/keyboards/kbdfans/bella/rgb_iso/rgb_iso.c
index 30371614d8..e36b811bbc 100644
--- a/keyboards/kbdfans/bella/rgb_iso/rgb_iso.c
+++ b/keyboards/kbdfans/bella/rgb_iso/rgb_iso.c
@@ -15,7 +15,7 @@
*/
#include "quantum.h"
#ifdef RGB_MATRIX_ENABLE
-const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = {
+const is31fl3741_led_t PROGMEM g_is31fl3741_leds[RGB_MATRIX_LED_COUNT] = {
{0, CS18_SW1, CS17_SW1, CS16_SW1}, /* RGB6 */
{0, CS18_SW3, CS17_SW3, CS16_SW3}, /* RGB32 */
{0, CS18_SW4, CS17_SW4, CS16_SW4}, /* RGB45 */
diff --git a/keyboards/kbdfans/boop65/rgb/config.h b/keyboards/kbdfans/boop65/rgb/config.h
index c1955ac84f..e37e2d1763 100644
--- a/keyboards/kbdfans/boop65/rgb/config.h
+++ b/keyboards/kbdfans/boop65/rgb/config.h
@@ -26,8 +26,7 @@
# define RGB_MATRIX_MAXIMUM_BRIGHTNESS 200 // limits maximum brightness of LEDs to 200 out of 255. If not defined maximum brightness is set to 255
# define RGB_MATRIX_DEFAULT_VAL RGB_MATRIX_MAXIMUM_BRIGHTNESS // Sets the default brightness value, if none has been set
# define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_CYCLE_ALL
-# define DRIVER_ADDR_1 0b0110000
-# define DRIVER_COUNT 1
+# define IS31FL3741_I2C_ADDRESS_1 IS31FL3741_I2C_ADDRESS_GND
# define RGB_MATRIX_LED_COUNT 83
# define DRIVER_INDICATOR_LED_TOTAL 0
#define ENABLE_RGB_MATRIX_ALPHAS_MODS
diff --git a/keyboards/kbdfans/boop65/rgb/rgb.c b/keyboards/kbdfans/boop65/rgb/rgb.c
index 985f877e85..f2b5858966 100644
--- a/keyboards/kbdfans/boop65/rgb/rgb.c
+++ b/keyboards/kbdfans/boop65/rgb/rgb.c
@@ -18,7 +18,7 @@
#ifdef RGB_MATRIX_ENABLE
-const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = {
+const is31fl3741_led_t PROGMEM g_is31fl3741_leds[RGB_MATRIX_LED_COUNT] = {
{0, CS21_SW1, CS20_SW1, CS19_SW1},
{0, CS21_SW2, CS20_SW2, CS19_SW2},
{0, CS21_SW3, CS20_SW3, CS19_SW3},
diff --git a/keyboards/kbdfans/kbd67/hotswap/keymaps/brandonschlack/keymap.c b/keyboards/kbdfans/kbd67/hotswap/keymaps/brandonschlack/keymap.c
deleted file mode 100644
index 9a60c81f95..0000000000
--- a/keyboards/kbdfans/kbd67/hotswap/keymaps/brandonschlack/keymap.c
+++ /dev/null
@@ -1,102 +0,0 @@
-/* Copyright 2019 Brandon Schlack
- *
- * 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 "brandonschlack.h"
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-/* Base Layer
- * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
- * │Esc│! 1│@ 2│# 3│$ 4│% 5│^ 6│& 7│* 8│( 9│) 0│_ -│+ =│| \│~ `│Hom│
- * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┼───┤
- * │Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │{ [│} ]│ Bspc│PgU│
- * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┤
- * │Caps │ A │ S │ D │ F │ G │ H │ J │ K │ L │: ;│" '│ Enter│PgD│
- * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┤
- * │Shift │ Z │ X │ C │ V │ B │ N │ M │< ,│> .│? /│ Shift│ Up│End│
- * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬─┬───┼───┼───┤
- * │Ctrl│ Opt│ Cmd│ Space │Cmd │FnPy│ │Lef│Dow│Rig│
- * └────┴────┴────┴────────────────────────┴────┴────┴─┴───┴───┴───┘
- */
-[_BASE] = LAYOUT(
- KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS, KC_GRV, 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_BSPC, KC_PGUP,
- HY_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_LOPT, KC_LCMD, KC_SPC, KC_RCMD, PLY_FN1, KC_LEFT, KC_DOWN, KC_RGHT),
-
-/* Function Layer
- * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
- * │MKE│ F1│ F2│ F3│ F4│ F5│ F6│ F7│ F8│ F9│F10│F11│F12│LHP│MSN│SLP│
- * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┼───┤
- * │ │ │ │ │RST│ │ │ │ │ │F13│F14│F15│ Del│VlU│
- * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┤
- * │ │ │ │ │ │ │ │ │KMP│ │ │ │ Adjust │VlD│
- * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┤
- * │ │ │ │ │VRN│ │ │ │Prv│Nxt│Ply│ │PgU│Mut│
- * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬─┬───┼───┼───┤
- * │ │ │ │ │ │ │ │Hom│PgD│End│
- * └────┴────┴────┴────────────────────────┴────┴────┴─┴───┴───┴───┘
- */
-[_FN1] = LAYOUT(
- QM_MAKE, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, MC_LHPD, MC_MSSN, MC_SLPD,
- _______, _______, _______, _______, QK_BOOT, _______, _______, _______, _______, _______, KC_F13, KC_F14, KC_F15, KC_DEL, KC_VOLU,
- _______, _______, _______, _______, _______, _______, _______, _______, QM_KYMP, _______, _______, _______, TG_ADJT, KC_VOLD,
- _______, _______, _______, _______, QM_VRSN, _______, _______, _______, KC_MPRV, KC_MNXT, KC_MPLY, _______, KC_PGUP, KC_MUTE,
- _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_END ),
-
-/* Adjust Layer Layer
- * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
- * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
- * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┼───┤
- * │ │ │ │EEP│RST│ │ │ │ │ │ │ │ │ │ │
- * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┤
- * │ │ │ │ │ │ │ │ │ │ │ │ │ Adjust │ │
- * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┤
- * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
- * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬─┬───┼───┼───┤
- * │ │ │ │ │ │ │ │ │ │ │
- * └────┴────┴────┴────────────────────────┴────┴────┴─┴───┴───┴───┘
- */
-[_ADJUST] = LAYOUT(
- XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
- XXXXXXX, XXXXXXX, XXXXXXX, EE_CLR, QK_BOOT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
- XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, TG_ADJT, XXXXXXX,
- _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, XXXXXXX, XXXXXXX,
- _______, _______, _______, XXXXXXX, _______, _______, XXXXXXX, XXXXXXX, XXXXXXX),
-};
-
-/* Blank Template
- * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
- * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
- * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┼───┤
- * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
- * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┤
- * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
- * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┤
- * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
- * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬─┬───┼───┼───┤
- * │ │ │ │ │ │ │ │ │ │ │
- * └────┴────┴────┴────────────────────────┴────┴────┴─┴───┴───┴───┘
- */
-/*
-[_BLANK] = LAYOUT(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______),
-};
-*/
diff --git a/keyboards/kbdfans/kbd67/hotswap/keymaps/brandonschlack/rules.mk b/keyboards/kbdfans/kbd67/hotswap/keymaps/brandonschlack/rules.mk
deleted file mode 100644
index 673e15f81f..0000000000
--- a/keyboards/kbdfans/kbd67/hotswap/keymaps/brandonschlack/rules.mk
+++ /dev/null
@@ -1,2 +0,0 @@
-# Build Options
-BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite
diff --git a/keyboards/kbdfans/kbd67/mkiirgb/keymaps/jonavin/config.h b/keyboards/kbdfans/kbd67/mkiirgb/keymaps/jonavin/config.h
deleted file mode 100644
index 2b0947ace5..0000000000
--- a/keyboards/kbdfans/kbd67/mkiirgb/keymaps/jonavin/config.h
+++ /dev/null
@@ -1,39 +0,0 @@
-/* Copyright 2021 Jonavin Eng
- *
- * 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 TAPPING_TOGGLE 2
-// TT set to two taps
-
-/* Handle GRAVESC combo keys */
-#define GRAVE_ESC_ALT_OVERRIDE
- //Always send Escape if Alt is pressed
-#define GRAVE_ESC_CTRL_OVERRIDE
- //Always send Escape if Control is pressed
-
-#define TAPPING_TERM 180
-
-#ifdef RGB_MATRIX_ENABLE
- #ifdef RGB_MATRIX_DEFAULT_MODE
- #undef RGB_MATRIX_DEFAULT_MODE
- #endif
- #define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_SOLID_COLOR
- #define RGB_DISABLE_WHEN_USB_SUSPENDED
-#endif
-
-// Reduce layers to 3 to save memory
-#define DYNAMIC_KEYMAP_LAYER_COUNT 3
diff --git a/keyboards/kbdfans/kbd67/mkiirgb/keymaps/jonavin/keymap.c b/keyboards/kbdfans/kbd67/mkiirgb/keymaps/jonavin/keymap.c
deleted file mode 100644
index aad7893f51..0000000000
--- a/keyboards/kbdfans/kbd67/mkiirgb/keymaps/jonavin/keymap.c
+++ /dev/null
@@ -1,125 +0,0 @@
-/* Copyright 2021 Jonavin
-
-This program is free software: you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program. If not, see <http://www.gnu.org/licenses/>.
-*/
-
-#include QMK_KEYBOARD_H
-#include "rgb_matrix_map.h"
-#include "jonavin.h"
-
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [_BASE] = LAYOUT_65_ansi_blocker(
- QK_GESC, 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_DEL,
- 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,
- TT(_LOWER), 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_LSFTCAPSWIN, 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, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT
- ),
- [_FN1] = LAYOUT_65_ansi_blocker(
- QK_GESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_CALC,
- _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, KC_PSCR, KC_SCRL, KC_PAUS, _______, _______, _______, QK_BOOT, KC_HOME,
- KC_CAPS, RGB_SPI, RGB_SPD, RGB_VAD, RGB_VAI, _______, _______, _______, _______, _______, _______, _______, EE_CLR, KC_END,
- KC_LSFT, RGB_NITE, _______, _______, _______, _______, KC_NUM, _______, RGB_TOD, RGB_TOI, KC_MPLY, _______, KC_VOLU, KC_MUTE,
- _______, KC_WINLCK, _______, _______, _______, _______, KC_MPRV, KC_VOLD, KC_MNXT
- ),
- [_LOWER] = LAYOUT_65_ansi_blocker(
- KC_TILD, _______, _______, _______, _______, _______, _______, KC_P7, KC_P8, KC_P9, KC_P0, KC_PMNS, KC_PPLS, _______, _______,
- _______, KC_HOME, KC_UP, KC_END, KC_PGUP, _______, KC_TAB, KC_P4, KC_P5, KC_P6, KC_PDOT, _______, _______, _______, KC_HOME,
- _______, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, _______, _______, KC_P1, KC_P2, KC_P3, KC_NO, KC_PAST, KC_PENT, KC_END,
- _______, KC_NO, KC_DEL, KC_INS, KC_NO, KC_NO, KC_NO, KC_P0, KC_00, KC_PDOT, KC_PSLS, _______, _______, _______,
- _______, _______, _______, KC_BSPC, _______, _______, _______, _______, _______
- ),
-};
-
-#ifdef RGB_MATRIX_ENABLE
- // Capslock, Scroll lock and Numlock indicator
- bool rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) {
- led_t led_state = host_keyboard_led_state();
- if (get_rgb_nightmode()) rgb_matrix_set_color_all(RGB_OFF);
- if (led_state.scroll_lock) {
- rgb_matrix_set_color(LED_I, RGB_GREEN);
- }
-
- #ifdef INVERT_NUMLOCK_INDICATOR
- if (!led_state.num_lock) { // on if NUM lock is OFF
- rgb_matrix_set_color(LED_B, RGB_GREEN);
- rgb_matrix_set_color(LED_N, RGB_GREEN);
- rgb_matrix_set_color(LED_M, RGB_GREEN);
- }
- #else
- if (led_state.num_lock) { // Normal, on if NUM lock is ON
- rgb_matrix_set_color(LED_B, RGB_GREEN);
- rgb_matrix_set_color(LED_N, RGB_GREEN);
- rgb_matrix_set_color(LED_M, RGB_GREEN);
- }
- #endif // INVERT_NUMLOCK_INDICATOR
-
- if (led_state.caps_lock) {
- rgb_matrix_set_color(LED_CAPS, RGB_RED);
- rgb_matrix_set_color(LED_Q, RGB_RED);
- rgb_matrix_set_color(LED_A, RGB_RED);
- }
- if (keymap_config.no_gui) {
- rgb_matrix_set_color(LED_LCTL, RGB_RED); //light up Win key when disabled
- rgb_matrix_set_color(LED_LWIN, RGB_RED); //light up Win key when disabled
- rgb_matrix_set_color(LED_LALT, RGB_RED); //light up Win key when disabled
- }
- switch(get_highest_layer(layer_state)){ // special handling per layer
- case _FN1: // on Fn layer select what the encoder does when pressed
- rgb_matrix_set_color(LED_FN, RGB_GOLD);
- rgb_matrix_set_color(LED_RCTL, RGB_GOLD);
-
- #ifdef IDLE_TIMEOUT_ENABLE
- // Add RGB Timeout Indicator -- shows 0 to 139 using num row and qwerty row
- uint16_t timeout_threshold = get_timeout_threshold();
- if (timeout_threshold <= 10) rgb_matrix_set_color(LED_LIST_NUMROW[timeout_threshold], RGB_GOLD);
- else if (timeout_threshold < 140) {
- rgb_matrix_set_color(LED_LIST_NUMROW[(timeout_threshold % 10)], RGB_GOLD);
- rgb_matrix_set_color(LED_LIST_QWERTYROW[(timeout_threshold / 10)], RGB_GOLD);
- } else { // >= 140 minutes, just show these 3 lights
- rgb_matrix_set_color(LED_LIST_NUMROW[10], RGB_GOLD);
- rgb_matrix_set_color(LED_LIST_NUMROW[11], RGB_GOLD);
- rgb_matrix_set_color(LED_LIST_NUMROW[12], RGB_GOLD);
- }
- #endif // IDLE_TIMEOUT_ENABLE
-
- break;
- case _LOWER:
- for (uint8_t i=0; i<ARRAYSIZE(LED_LIST_NUMPAD); i++) {
- rgb_matrix_set_color(LED_LIST_NUMPAD[i], RGB_BLUE);
- }
- for (uint8_t i=0; i<ARRAYSIZE(LED_LIST_WASD); i++) {
- rgb_matrix_set_color(LED_LIST_WASD[i], RGB_BLUE);
- }
- break;
- case _RAISE:
- rgb_matrix_set_color(LED_SPC, RGB_GREEN);
- break;
- default:
- break;
- }
- return false;
- }
-
-#endif
-
-
-void keyboard_post_init_keymap(void) {
- // keyboard_post_init_user() moved to userspace
- #ifdef RGB_MATRIX_ENABLE
- rgb_matrix_mode(RGB_MATRIX_SOLID_COLOR);
- activate_rgb_nightmode(false); // Set to true if you want to startup in nightmode, otherwise use Fn + Z to toggle
- #endif
-}
diff --git a/keyboards/kbdfans/kbd67/mkiirgb/keymaps/jonavin/readme.md b/keyboards/kbdfans/kbd67/mkiirgb/keymaps/jonavin/readme.md
deleted file mode 100644
index a28e945cd1..0000000000
--- a/keyboards/kbdfans/kbd67/mkiirgb/keymaps/jonavin/readme.md
+++ /dev/null
@@ -1,41 +0,0 @@
-# jonavin's KBD 67 Lite keymap
-
-NOTE: This keymap uses features from qmk userspace in user/jonavin. I fyou copy this keymap you should also the user folder.
-
-- Add PrtScr, Scroll Lock, Break, NumLock to Fn layer
-- add double tap of Left Shift to toggle Caps Lock
-- Implement Win key lock using Fn+Win
-- Layer 2 mod on Caps Lock with double-tap to switch to this layer, double tap to switch back
-- Layer 2 provides arrows on WASD and additional nav keys + right hand numpad with 00; an be used for Alt Code entry
-- Layer 2 spacebar Backspace
-
-- LED/RGB Functionality
- - RGB idle timeout (default 5 minutes)
- - Can be changed in FN layer with < and >
- - setting to zero disables timeout
- - indicators in FN layer using RGB in number and qwerty rows to show the timeout in minutes
- - LED address location map as enum definition in rgb_matrix_map.h
- - LED group lists for arrows, numpad, qwerty row, num row LEDs
- - default startup in single colour mode
- - Capslock, Scroll Lock, and Num Lock (not set) indicator
- - Fn key light up GOLD when Fn layer activate
- - Win Key light up red when Win Lock mode enabled
- - Layer 2 activation lights up Numpad area
- - Fn + Z to turn off all RGB lights except rgb indicators; press again to toggle
-
-rules.mk OPTIONS - Active features from userspace
-STARTUP_NUMLOCK_ON = yes
- - turns on NUMLOCK by default
-
-TD_LSFT_CAPSLOCK_ENABLE = yes
- - This will enable double tap on Left Shift to toggle CAPSLOCK when using KC_LSFTCAPS
-
-IDLE_TIMEOUT_ENABLE = yes
- - Enables Timer functionality; for RGB idle timeouts that can be changed dynamically
-
-INVERT_NUMLOCK_INDICATOR = yes
- - inverts the Num lock indicator, LED is on when num lock is off
-
-## All layers diagram
-![image](https://user-images.githubusercontent.com/71780717/146864247-4ec05ef7-7936-45db-9db9-02fb17d3f7ed.png)
-
diff --git a/keyboards/kbdfans/kbd67/mkiirgb/keymaps/jonavin/rgb_matrix_map.h b/keyboards/kbdfans/kbd67/mkiirgb/keymaps/jonavin/rgb_matrix_map.h
deleted file mode 100644
index 66608ba6e6..0000000000
--- a/keyboards/kbdfans/kbd67/mkiirgb/keymaps/jonavin/rgb_matrix_map.h
+++ /dev/null
@@ -1,109 +0,0 @@
-/* Copyright 2021 Jonavin Eng
- *
- * 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/>.
- */
-
-#ifdef RGB_MATRIX_ENABLE
-
- // Custom RGB Colours
- #define RGB_GODSPEED 0x00, 0xE4, 0xFF // colour for matching keycaps
- #define RGB_NAUTILUS 0x00, 0xA4, 0xA9 // Naurilus Font colours
- #define RGB_PURPLELITE 0x80, 0x00, 0x80 // Purple colours
-
- // RGB LED locations
- enum led_location_map {
- LED_ESC, // 0
- LED_1, // 1
- LED_2, // 2
- LED_3, // 3
- LED_4, // 4
- LED_5, // 5
- LED_6, // 6
- LED_7, // 7
- LED_8, // 8
- LED_9, // 9
- LED_0, // 10
- LED_MINS, // 11
- LED_EQL, // 12
- LED_BSPC, // 13
- LED_DEL, // 14
- LED_TAB, // 15
- LED_Q, // 16
- LED_W, // 17
- LED_E, // 18
- LED_R, // 19
- LED_T, // 20
- LED_Y, // 21
- LED_U, // 22
- LED_I, // 23
- LED_O, // 24
- LED_P, // 25
- LED_LBRC, // 26 [
- LED_RBRC, // 27 ]
- LED_BSLS, // 28 |
- LED_PGUP, // 29
- LED_CAPS, // 30
- LED_A, // 31
- LED_S, // 32
- LED_D, // 33
- LED_F, // 34
- LED_G, // 35
- LED_H, // 36
- LED_J, // 37
- LED_K, // 38
- LED_L, // 39
- LED_SCLN, // 40 ;
- LED_QUOT, // 41 "
- LED_ENT, // 42
- LED_PGDN, // 43
- LED_LSFT, // 44
- LED_Z, // 45
- LED_X, // 46
- LED_C, // 47
- LED_V, // 48
- LED_B, // 49
- LED_N, // 50
- LED_M, // 51
- LED_COMM, // 52 ,
- LED_DOT, // 53 .
- LED_SLSH, // 54 /
- LED_RSFT, // 55
- LED_UP, // 56
- LED_END, // 57
- LED_LCTL, // 58
- LED_LWIN, // 59
- LED_LALT, // 60
- LED_SPC, // 61
- LED_FN, // 62
- LED_RCTL, // 63
- LED_LEFT, // 64
- LED_DOWN, // 65
- LED_RIGHT // 66
- };
-
- const uint8_t LED_LIST_WASD[] = { LED_W, LED_A, LED_S, LED_D };
-
- const uint8_t LED_LIST_ARROWS[] = { LED_LEFT, LED_RIGHT, LED_UP, LED_DOWN };
-
- const uint8_t LED_LIST_NUMROW[] = { LED_ESC, LED_1, LED_2, LED_3, LED_4, LED_5, LED_6, LED_7, LED_8, LED_9, LED_0, LED_MINS, LED_EQL, LED_BSPC, LED_DEL};
- const uint8_t LED_LIST_QWERTYROW[] = { LED_TAB, LED_Q, LED_W, LED_E, LED_R, LED_T, LED_Y, LED_U, LED_I, LED_O, LED_P, LED_LBRC, LED_RBRC, LED_BSLS, LED_PGUP};
-
- const uint8_t LED_LIST_NUMPAD[] = {
- LED_7, LED_8, LED_9,
- LED_U, LED_I, LED_O,
- LED_J, LED_K, LED_L,
- LED_M, LED_COMM, LED_DOT
- };
-
-#endif
diff --git a/keyboards/kbdfans/kbd67/mkiirgb/keymaps/jonavin/rules.mk b/keyboards/kbdfans/kbd67/mkiirgb/keymaps/jonavin/rules.mk
deleted file mode 100644
index c26db537ee..0000000000
--- a/keyboards/kbdfans/kbd67/mkiirgb/keymaps/jonavin/rules.mk
+++ /dev/null
@@ -1,12 +0,0 @@
-VIA_ENABLE = yes
-LTO_ENABLE = yes
-CONSOLE_ENABLE = no
-MOUSEKEY_ENABLE = no
-TAP_DANCE_ENABLE = yes
-BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite
-EXTRAKEY_ENABLE = no
-
-TD_LSFT_CAPSLOCK_ENABLE = yes
-IDLE_TIMEOUT_ENABLE = yes
-STARTUP_NUMLOCK_ON = yes
-INVERT_NUMLOCK_INDICATOR = yes
diff --git a/keyboards/kbdfans/kbd67/mkiirgb/v1/config.h b/keyboards/kbdfans/kbd67/mkiirgb/v1/config.h
index f2ee16dac2..51b88510e5 100644
--- a/keyboards/kbdfans/kbd67/mkiirgb/v1/config.h
+++ b/keyboards/kbdfans/kbd67/mkiirgb/v1/config.h
@@ -55,9 +55,8 @@
#define RGB_MATRIX_MAXIMUM_BRIGHTNESS 200
#define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_CYCLE_ALL
-#define DRIVER_ADDR_1 0b1110100
-#define DRIVER_ADDR_2 0b1110111
-#define DRIVER_COUNT 2
+#define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND
+#define IS31FL3731_I2C_ADDRESS_2 IS31FL3731_I2C_ADDRESS_VCC
#define DRIVER_1_LED_TOTAL 35
#define DRIVER_2_LED_TOTAL 32
#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL)
diff --git a/keyboards/kbdfans/kbd67/mkiirgb/v1/v1.c b/keyboards/kbdfans/kbd67/mkiirgb/v1/v1.c
index 336526eb11..c70622dd56 100644
--- a/keyboards/kbdfans/kbd67/mkiirgb/v1/v1.c
+++ b/keyboards/kbdfans/kbd67/mkiirgb/v1/v1.c
@@ -16,7 +16,7 @@
#include "quantum.h"
#ifdef RGB_MATRIX_ENABLE
-const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = {
+const is31fl3731_led_t PROGMEM g_is31fl3731_leds[RGB_MATRIX_LED_COUNT] = {
{0, C8_8, C7_8, C6_8}, // LA17
{0, C9_8, C7_7, C6_7}, // LA16
diff --git a/keyboards/kbdfans/kbd67/mkiirgb/v2/config.h b/keyboards/kbdfans/kbd67/mkiirgb/v2/config.h
index cf7f488280..bba655107d 100644
--- a/keyboards/kbdfans/kbd67/mkiirgb/v2/config.h
+++ b/keyboards/kbdfans/kbd67/mkiirgb/v2/config.h
@@ -55,9 +55,8 @@
// #define ENABLE_RGB_MATRIX_SOLID_SPLASH
// #define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH
# define RGB_MATRIX_MAXIMUM_BRIGHTNESS 255
-# define DRIVER_ADDR_1 0b1110100
-# define DRIVER_ADDR_2 0b1110111
-# define DRIVER_COUNT 2
+# define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND
+# define IS31FL3731_I2C_ADDRESS_2 IS31FL3731_I2C_ADDRESS_VCC
# define DRIVER_1_LED_TOTAL 35
# define DRIVER_2_LED_TOTAL 32
# define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL)
diff --git a/keyboards/kbdfans/kbd67/mkiirgb/v2/v2.c b/keyboards/kbdfans/kbd67/mkiirgb/v2/v2.c
index 3bb336c0a2..7de8060d7a 100644
--- a/keyboards/kbdfans/kbd67/mkiirgb/v2/v2.c
+++ b/keyboards/kbdfans/kbd67/mkiirgb/v2/v2.c
@@ -16,7 +16,7 @@
#include "quantum.h"
#ifdef RGB_MATRIX_ENABLE
-const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = {
+const is31fl3731_led_t PROGMEM g_is31fl3731_leds[RGB_MATRIX_LED_COUNT] = {
{0, C8_8, C7_8, C6_8}, // LA17
{0, C9_8, C7_7, C6_7}, // LA16
diff --git a/keyboards/kbdfans/kbd67/mkiirgb/v3/config.h b/keyboards/kbdfans/kbd67/mkiirgb/v3/config.h
index e291fa6368..8dd12678ee 100755
--- a/keyboards/kbdfans/kbd67/mkiirgb/v3/config.h
+++ b/keyboards/kbdfans/kbd67/mkiirgb/v3/config.h
@@ -72,8 +72,7 @@
#define RGB_MATRIX_LED_PROCESS_LIMIT 4
#define RGB_MATRIX_LED_FLUSH_LIMIT 26
#define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_CYCLE_ALL
-#define DRIVER_ADDR_1 0b0110000
-#define DRIVER_COUNT 1
+#define IS31FL3741_I2C_ADDRESS_1 IS31FL3741_I2C_ADDRESS_GND
#define RGB_MATRIX_LED_COUNT 67
#define DRIVER_INDICATOR_LED_TOTAL 0
#endif
diff --git a/keyboards/kbdfans/kbd67/mkiirgb/v3/info.json b/keyboards/kbdfans/kbd67/mkiirgb/v3/info.json
index 165db96293..284461c2a7 100644
--- a/keyboards/kbdfans/kbd67/mkiirgb/v3/info.json
+++ b/keyboards/kbdfans/kbd67/mkiirgb/v3/info.json
@@ -5,7 +5,8 @@
"device_version": "0.0.3"
},
"rgb_matrix": {
- "driver": "is31fl3741"
+ "driver": "is31fl3741",
+ "val_steps": 8
},
"matrix_pins": {
"cols": ["F7", "F6", "F5", "C7", "B0", "B1", "B2", "B3", "B4", "D7", "D6", "D4", "D5", "D3", "D2"],
diff --git a/keyboards/kbdfans/kbd67/mkiirgb/v3/v3.c b/keyboards/kbdfans/kbd67/mkiirgb/v3/v3.c
index 4329893ac1..7347a365bc 100755
--- a/keyboards/kbdfans/kbd67/mkiirgb/v3/v3.c
+++ b/keyboards/kbdfans/kbd67/mkiirgb/v3/v3.c
@@ -18,7 +18,7 @@
#ifdef RGB_MATRIX_ENABLE
-const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = {
+const is31fl3741_led_t PROGMEM g_is31fl3741_leds[RGB_MATRIX_LED_COUNT] = {
{0, CS21_SW1, CS20_SW1, CS19_SW1},
{0, CS21_SW2, CS20_SW2, CS19_SW2},
{0, CS21_SW3, CS20_SW3, CS19_SW3},
@@ -125,16 +125,12 @@ led_config_t g_led_config = { {
#if defined(RGB_MATRIX_ENABLE) && defined(CAPS_LOCK_LED_INDEX)
-#ifdef RGB_MATRIX_MAXIMUM_BRIGHTNESS
+#if !defined(CAPS_LOCK_MAX_BRIGHTNESS)
#define CAPS_LOCK_MAX_BRIGHTNESS RGB_MATRIX_MAXIMUM_BRIGHTNESS
-#else
- #define CAPS_LOCK_MAX_BRIGHTNESS 0xFF
#endif
-#ifdef RGB_MATRIX_VAL_STEP
+#if !defined(CAPS_LOCK_VAL_STEP)
#define CAPS_LOCK_VAL_STEP RGB_MATRIX_VAL_STEP
-#else
- #define CAPS_LOCK_VAL_STEP 8
#endif
bool rgb_matrix_indicators_kb(void) {
diff --git a/keyboards/kbdfans/kbd67/rev1/info.json b/keyboards/kbdfans/kbd67/rev1/info.json
index 9119477584..f279c5a2c9 100644
--- a/keyboards/kbdfans/kbd67/rev1/info.json
+++ b/keyboards/kbdfans/kbd67/rev1/info.json
@@ -38,7 +38,6 @@
"knight": true,
"christmas": true,
"static_gradient": true,
- "rgb_test": true,
"alternating": true,
"twinkle": true
}
diff --git a/keyboards/kbdfans/kbd67/rev2/keymaps/brandonschlack/keymap.c b/keyboards/kbdfans/kbd67/rev2/keymaps/brandonschlack/keymap.c
deleted file mode 100644
index c695227114..0000000000
--- a/keyboards/kbdfans/kbd67/rev2/keymaps/brandonschlack/keymap.c
+++ /dev/null
@@ -1,102 +0,0 @@
-/* Copyright 2019 Brandon Schlack
- *
- * 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 "brandonschlack.h"
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-/* Base Layer
- * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
- * │Esc│! 1│@ 2│# 3│$ 4│% 5│^ 6│& 7│* 8│( 9│) 0│_ -│+ =│| \│~ `│Hom│
- * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┼───┤
- * │Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │{ [│} ]│ Bspc│PgU│
- * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┤
- * │Caps │ A │ S │ D │ F │ G │ H │ J │ K │ L │: ;│" '│ Enter│PgD│
- * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┤
- * │Shift │ Z │ X │ C │ V │ B │ N │ M │< ,│> .│? /│ Shift│ Up│End│
- * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬─┬───┼───┼───┤
- * │Ctrl│ Opt│ Cmd│ Space │Cmd │FnPy│ │Lef│Dow│Rig│
- * └────┴────┴────┴────────────────────────┴────┴────┴─┴───┴───┴───┘
- */
-[_BASE] = LAYOUT_all(
- KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS, KC_GRV, 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_BSPC, KC_PGUP,
- HY_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, XXXXXXX, 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_LOPT, KC_LCMD, XXXXXXX, KC_SPC, XXXXXXX, KC_RCMD, PLY_FN1, XXXXXXX, KC_LEFT, KC_DOWN, KC_RGHT),
-
-/* Function Layer
- * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
- * │MKE│ F1│ F2│ F3│ F4│ F5│ F6│ F7│ F8│ F9│F10│F11│F12│LHP│MSN│SLP│
- * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┼───┤
- * │RMod │RH+│RS+│RV+│RST│ │ │ │ │ │F13│F14│F15│ Del│VlU│
- * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┤
- * │ │RH-│RS-│RV-│ │ │ │ │KMP│ │ │ │ Adjust │VlD│
- * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┤
- * │ │RTg│RLy│RTh│VRN│ │ │ │Prv│Nxt│Ply│ │PgU│Mut│
- * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬─┬───┼───┼───┤
- * │ │ │ │ │ │ │ │Hom│PgD│End│
- * └────┴────┴────┴────────────────────────┴────┴────┴─┴───┴───┴───┘
- */
-[_FN1] = LAYOUT_all(
- QM_MAKE, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, MC_LHPD, MC_MSSN, MC_SLPD,
- RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, QK_BOOT, _______, _______, _______, _______, _______, KC_F13, KC_F14, KC_F15, KC_DEL, KC_VOLU,
- _______, RGB_HUD, RGB_SAD, RGB_VAD, _______, _______, _______, _______, QM_KYMP, _______, _______, _______, TG_ADJT, KC_VOLD,
- _______, XXXXXXX, RGB_TOG, RGB_LYR, RGB_THM, QM_VRSN, _______, _______, _______, KC_MPRV, KC_MNXT, KC_MPLY, _______, KC_PGUP, KC_MUTE,
- _______, _______, _______, XXXXXXX, _______, XXXXXXX, _______, _______, XXXXXXX, KC_HOME, KC_PGDN, KC_END ),
-
-/* Adjust Layer Layer
- * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
- * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
- * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┼───┤
- * │ │ │ │EEP│RST│ │ │ │ │ │ │ │ │ │ │
- * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┤
- * │ │ │ │ │ │ │ │ │ │ │ │ │ Adjust │ │
- * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┤
- * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
- * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬─┬───┼───┼───┤
- * │ │ │ │ │ │ │ │ │ │ │
- * └────┴────┴────┴────────────────────────┴────┴────┴─┴───┴───┴───┘
- */
-[_ADJUST] = LAYOUT_all(
- XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
- XXXXXXX, XXXXXXX, XXXXXXX, EE_CLR, QK_BOOT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
- XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, TG_ADJT, XXXXXXX,
- _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, XXXXXXX, XXXXXXX,
- _______, _______, _______, XXXXXXX, XXXXXXX, XXXXXXX, _______, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX),
-};
-
-/* Blank Template
- * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
- * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
- * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┼───┤
- * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
- * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┤
- * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
- * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┤
- * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
- * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬─┬───┼───┼───┤
- * │ │ │ │ │ │ │ │ │ │ │
- * └────┴────┴────┴────────────────────────┴────┴────┴─┴───┴───┴───┘
- */
-/*
-[_BLANK] = LAYOUT(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______),
-};
-*/
diff --git a/keyboards/kbdfans/kbd67/rev2/keymaps/brandonschlack/rules.mk b/keyboards/kbdfans/kbd67/rev2/keymaps/brandonschlack/rules.mk
deleted file mode 100644
index 348eeaee3d..0000000000
--- a/keyboards/kbdfans/kbd67/rev2/keymaps/brandonschlack/rules.mk
+++ /dev/null
@@ -1,3 +0,0 @@
-# Build Options
-MOUSEKEY_ENABLE = no # Don't need mouse keys
-BACKLIGHT_ENABLE = no # Backlights not installed
diff --git a/keyboards/kbdfans/kbd6x/keymaps/konstantin/config.h b/keyboards/kbdfans/kbd6x/keymaps/konstantin/config.h
deleted file mode 100644
index 4b511eb848..0000000000
--- a/keyboards/kbdfans/kbd6x/keymaps/konstantin/config.h
+++ /dev/null
@@ -1,3 +0,0 @@
-#pragma once
-
-#define LAYER_FN
diff --git a/keyboards/kbdfans/kbd6x/keymaps/konstantin/keymap.c b/keyboards/kbdfans/kbd6x/keymaps/konstantin/keymap.c
deleted file mode 100644
index a8a369a611..0000000000
--- a/keyboards/kbdfans/kbd6x/keymaps/konstantin/keymap.c
+++ /dev/null
@@ -1,181 +0,0 @@
-#include QMK_KEYBOARD_H
-#include "konstantin.h"
-
-enum layers_keymap {
- L_RCTRL = LAYERS_KEYMAP,
-};
-
-enum keycodes_keymap {
- RCTRL = RANGE_KEYMAP,
-};
-
-static inline void reset_light(void) {
- rgblight_mode(RGBLIGHT_MODE_RAINBOW_SWIRL);
- rgblight_sethsv(MODERN_DOLCH_RED);
-}
-
-static inline void fn_light(void) {
- rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_LIGHT);
- rgblight_sethsv_noeeprom(modern_dolch_red.h, modern_dolch_red.s, rgblight_get_val());
-}
-
-static inline void caps_light(void) {
- rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_LIGHT);
- rgblight_sethsv_noeeprom(modern_dolch_cyan.h, modern_dolch_cyan.s, rgblight_get_val());
-}
-
-static inline void restore_light(void) {
- rgblight_config_t saved = { .raw = eeconfig_read_rgblight() };
- rgblight_mode_noeeprom(saved.mode);
- rgblight_sethsv_noeeprom(saved.hue, saved.sat, saved.val);
-}
-
-static bool last_checked_layer;
-
-static void check_light_layer(layer_state_t state) {
- if (IS_LAYER_ON_STATE(state, L_FN)) {
- fn_light();
- } else if (host_keyboard_led_state().caps_lock) {
- caps_light();
- } else {
- restore_light();
- }
- last_checked_layer = true;
-}
-
-static void check_light_led(led_t led_state) {
- if (led_state.caps_lock) {
- caps_light();
- } else if (IS_LAYER_ON(L_FN)) {
- fn_light();
- } else {
- restore_light();
- }
- last_checked_layer = false;
-}
-
-static void inline check_light(void) {
- last_checked_layer
- ? check_light_layer(layer_state)
- : check_light_led(host_keyboard_led_state());
-}
-
-void eeconfig_init_keymap(void) {
- reset_light();
-}
-
-static bool skip_led = false;
-
-layer_state_t layer_state_set_keymap(layer_state_t state) {
- static layer_state_t prev_state = L_BASE;
- if (IS_LAYER_ON_STATE(state, L_FN) != IS_LAYER_ON_STATE(prev_state, L_FN)) {
- check_light_layer(state); // Fn state changed since last time
- skip_led = IS_LAYER_ON_STATE(state, L_FN);
- // led_set_keymap will be called automatically after this
- }
- return prev_state = state;
-}
-
-void led_set_keymap(uint8_t usb_led) {
- if (skip_led) {
- skip_led = false;
- return; // Skip calls triggered by the Fn layer turning on
- }
- check_light_led(usb_led);
-}
-
-bool process_record_keymap(uint16_t keycode, keyrecord_t *record) {
- switch (keycode) {
- case RGB_TOG ... RGB_SPD:
- if (record->event.pressed) {
- // Shift+Toggle = reset RGB
- if (keycode == RGB_TOG && get_mods() & MOD_MASK_SHIFT) {
- reset_light();
- return false;
- }
- restore_light();
- } else {
- check_light();
- }
- break;
-
- // Combined RCtrl and layer
- // Cannot use LM(L_RCTRL, MOD_RCTL) because it sends LCtrl instead of RCtrl
- case RCTRL:
- if (record->event.pressed) {
- register_code(KC_RCTL);
- layer_on(L_RCTRL);
- } else {
- unregister_code(KC_RCTL);
- layer_off(L_RCTRL);
- }
- break;
- }
-
- return true;
-}
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- /* Base layer
- * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
- * │Esc│ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │ \ │ ` │
- * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤
- * │ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │Bspc │
- * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤
- * │LCtCps│ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ Enter │
- * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤
- * │LShiftFn│ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │RShift│FnF│
- * └─────┬──┴┬──┴──┬┴───┴───┴───┴───┴───┴───┴──┬┴───┴┬───┬─┴───┘
- * │LGu│LAlt │ Space │RAlGu│RCt│
- * └───┴─────┴───────────────────────────┴─────┴───┘
- */
- [L_BASE] = LAYOUT(
- KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS, KC_GRV,
- 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_BSPC,
- LCT_CPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
- LSFT_FN, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, FN_FNLK,
- XXXXXXX, KC_LGUI, KC_LALT, KC_SPC, RAL_RGU, RCTRL, XXXXXXX
- ),
-
- /* Fn layer
- * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
- * │ │F1 │F2 │F3 │F4 │F5 │F6 │F7 │F8 │F9 │F10│F11│F12│PSc│Ins│
- * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤
- * │ │Hom│ ↑ │End│PgU│ │ │ │ │M1 │M↑ │М2 │M3 │ Del │
- * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤
- * │ │ ← │ ↓ │ → │PgD│ │ │ │ │M← │M↓ │M→ │ │
- * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤
- * │ │Mut│Vo-│Vo+│Ply│Prv│Nxt│App│MW↑│M4 │М5 │ │ │
- * └─────┬──┴┬──┴──┬┴───┴───┴───┴───┴───┴───┴──┬┴───┴┬───┬─┴───┘
- * │ │ │ MW↓ │MAcl2│ │
- * └───┴─────┴───────────────────────────┴─────┴───┘
- */
- [L_FN] = LAYOUT(
- _______, 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_INS,
- _______, KC_HOME, KC_UP, KC_END, KC_PGUP, _______, _______, _______, _______, KC_BTN1, KC_MS_U, KC_BTN2, KC_BTN3, KC_DEL,
- _______, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, _______, _______, _______, _______, KC_MS_L, KC_MS_D, KC_MS_R, _______,
- _______, KC_MUTE, KC_VOLD, KC_VOLU, KC_MPLY, KC_MPRV, KC_MNXT, KC_APP, KC_WH_U, KC_BTN4, KC_BTN5, _______, _______,
- XXXXXXX, _______, _______, KC_WH_D, KC_ACL2, _______, XXXXXXX
- ),
-
- /* RCtrl layer
- * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
- * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │Clr│
- * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤
- * │ │Top│Mv↑│Btm│TPr│ │ │ │ │ │ │ │ │DelNx│
- * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤
- * │ │Mv←│Mv↓│Mv→│TNx│ │ │ │ │ │ │ │ │
- * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤
- * │ │RTg│RV-│RV+│RMd│ │ │ │ │ │ │ │ │
- * └─────┬──┴┬──┴──┬┴───┴───┴───┴───┴───┴───┴──┬┴───┴┬───┬─┴───┘
- * │DPR│DstNA│ │RGui │ │
- * └───┴─────┴───────────────────────────┴─────┴───┘
- */
- [L_RCTRL] = LAYOUT(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, CLEAR,
- _______, TOP, MV_UP, BOTTOM, TAB_PRV, _______, _______, _______, _______, _______, _______, _______, _______, DEL_NXT,
- _______, MV_LEFT, MV_DOWN, MV_RGHT, TAB_NXT, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, RGB_TOG, RGB_VAD, RGB_VAI, RGB_MOD, _______, _______, _______, _______, _______, _______, _______, _______,
- XXXXXXX, DST_P_R, DST_N_A, _______, KC_RGUI, _______, XXXXXXX
- ),
-};
diff --git a/keyboards/kbdfans/kbd6x/keymaps/konstantin/rules.mk b/keyboards/kbdfans/kbd6x/keymaps/konstantin/rules.mk
deleted file mode 100644
index 9ce299ed68..0000000000
--- a/keyboards/kbdfans/kbd6x/keymaps/konstantin/rules.mk
+++ /dev/null
@@ -1,19 +0,0 @@
-# Generic features
-BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite
-COMMAND_ENABLE = yes
-CONSOLE_ENABLE = yes
-EXTRAKEY_ENABLE = yes
-MOUSEKEY_ENABLE = yes
-NKRO_ENABLE = yes
-TAP_DANCE_ENABLE = yes
-UNICODEMAP_ENABLE = no
-
-# Keyboard-specific features
-BACKLIGHT_ENABLE = no
-RGBLIGHT_ENABLE = yes
-VIA_ENABLE = yes
-
-# Firmware size reduction
-GRAVE_ESC_ENABLE = no
-MAGIC_ENABLE = no
-SPACE_CADET_ENABLE = no
diff --git a/keyboards/kbdfans/kbd6x/keymaps/wanleg/keymap.c b/keyboards/kbdfans/kbd6x/keymaps/wanleg/keymap.c
deleted file mode 100644
index 75eb2f6074..0000000000
--- a/keyboards/kbdfans/kbd6x/keymaps/wanleg/keymap.c
+++ /dev/null
@@ -1,82 +0,0 @@
-/* Copyright 2018 wanleg
- *
- * 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 "wanleg.h"
-
-
-#define LAYOUT_kbd6x_base( \
- K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, \
- K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, \
- K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A \
- ) \
- LAYOUT_wrapper( \
- KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL, \
- KC_TAB, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, KC_LBRC, KC_RBRC, KC_BSLS, \
- KC_CAPS, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, KC_QUOT, KC_ENT, \
- KC_LSFT, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, KC_LSFT, FUNCTION, \
- KC_LCTL, KC_LGUI, KC_LALT, LT(gDIR,KC_SPC), KC_RALT, KC_RGUI, KC_RCTL \
- )
-#define LAYOUT_kbd6x_base_wrapper(...) LAYOUT_kbd6x_base(__VA_ARGS__)
-
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-[gGK] = LAYOUT_kbd6x_base_wrapper(
- _______________Gherkin_Row_0_______________,
- _______________Gherkin_Row_1_______________,
- _______________Gherkin_Row_2_______________
-),
-
-[gNUM] = LAYOUT_kbd6x_base_wrapper(
- _______________Gherkin_NUM_0_______________,
- _______________Gherkin_NUM_1_______________,
- _______________Gherkin_NUM_2_______________
-),
-
-[gDIR] = LAYOUT_kbd6x_base_wrapper(
- _______________Gherkin_DIR_0_______________,
- _______________Gherkin_DIR_1_______________,
- _______________Gherkin_DIR_2_______________
-),
-
-[gETC] = LAYOUT_kbd6x_base_wrapper(
- _______________Gherkin_ETC_0_______________,
- _______________Gherkin_ETC_1_______________,
- _______________Gherkin_ETC_2_______________
-),
-
-[_FN] = LAYOUT_kbd6x_base_wrapper(
- _______________Gherkin_FN_0________________,
- _______________Gherkin_FN_1________________,
- _______________Gherkin_FN_2________________
-),
-
-//mac layout
-[_QW] = LAYOUT_wrapper(
- KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL,
- 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_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_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(ONE),
- KC_LCTL, MO(ONE), KC_LGUI, KC_SPACE, KC_RGUI, KC_RALT, KC_RCTL
- ),
-
-[ONE] = LAYOUT_wrapper(
- KC_GRV, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, QK_BOOT,
- _______, BL_BRTG, BL_DOWN, BL_UP, BL_TOGG, BL_STEP, BL_ON, KC_PGUP, KC_HOME, _______, _______, _______, _______, _______,
- _______, RGB_M_B, RGB_VAD, RGB_VAI, RGB_TOG, RGB_MOD, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, _______, _______, _______,
- _______, RGB_HUD, RGB_HUI, RGB_SAD, RGB_SAI, _______, _______, KC_PGDN, KC_END, _______, gGHERKIN,_______, _______,
- _______, _______, _______, _______, _______, _______, _______
- ),
-};
diff --git a/keyboards/kbdfans/kbd6x/keymaps/wanleg/rules.mk b/keyboards/kbdfans/kbd6x/keymaps/wanleg/rules.mk
deleted file mode 100644
index 76c2575819..0000000000
--- a/keyboards/kbdfans/kbd6x/keymaps/wanleg/rules.mk
+++ /dev/null
@@ -1,3 +0,0 @@
-BOOTMAGIC_ENABLE = no # Enable Bootmagic Lite
-EXTRAKEY_ENABLE = no # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400) \ No newline at end of file
diff --git a/keyboards/kbdfans/kbd75/keymaps/noroadsleft/config.h b/keyboards/kbdfans/kbd75/keymaps/noroadsleft/config.h
deleted file mode 100644
index 0b28746081..0000000000
--- a/keyboards/kbdfans/kbd75/keymaps/noroadsleft/config.h
+++ /dev/null
@@ -1,22 +0,0 @@
-/* Copyright 2020 James Young (@noroadsleft)
- *
- * 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 BACKLIGHT_BREATHING
-
-#define ANSI_NUBS_ROW 4
-#define ANSI_NUBS_COL 2
diff --git a/keyboards/kbdfans/kbd75/keymaps/noroadsleft/keymap.c b/keyboards/kbdfans/kbd75/keymaps/noroadsleft/keymap.c
deleted file mode 100644
index f1a08c2edd..0000000000
--- a/keyboards/kbdfans/kbd75/keymaps/noroadsleft/keymap.c
+++ /dev/null
@@ -1,94 +0,0 @@
-/* Copyright 2020-2022 James Young (@noroadsleft)
- *
- * 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 "noroadsleft.h"
-
-enum layer_names {
- _DV,
- _QW,
- _Q2,
- _FN,
- _SY
-};
-
-// Tap Dance declarations
-enum tap_dances {
- LAG,
- RAG,
-};
-
-// Tap Dance definitions
-tap_dance_action_t tap_dance_actions[] = {
- // Tap once for Escape, twice for Caps Lock
- [LAG] = ACTION_TAP_DANCE_DOUBLE(KC_LALT, KC_LGUI),
- [RAG] = ACTION_TAP_DANCE_DOUBLE(KC_RALT, KC_RGUI),
-};
-
-#define FN_CAPS LT(_FN,KC_CAPS)
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
- [_DV] = LAYOUT_75_ansi_wkl(
- 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, _______, _______, MO(_SY),
- 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,
- FN_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, TD(LAG), KC_SPC, TD(RAG), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
- ),
-
- [_QW] = LAYOUT_75_ansi_wkl(
- 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, _______, _______, MO(_SY),
- 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,
- FN_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, TD(LAG), KC_SPC, TD(RAG), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
- ),
-
- [_Q2] = LAYOUT_75_ansi_wkl(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, KC_LALT, _______, KC_RALT, _______, _______, _______, _______
- ),
-
- [_FN] = LAYOUT_75_ansi_wkl(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL, DM_REC1,
- _______, KC_CALC, KC_APP, G_PUSH, _______, _______, KC_INS, KC_HOME, KC_UP, KC_END, KC_PGUP, KC_PSCR, KC_SCRL, KC_PAUS, DM_REC2,
- _______, M_SALL, _______, G_FTCH, G_PWD, _______, KC_DEL, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, _______, DM_RSTP, DM_PLY1,
- _______, M_UNDO, M_CUT, M_COPY, M_PASTE, G_BRCH, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, _______, DM_PLY2,
- _______, _______, _______, _______, _______, _______, _______, _______
- ),
-
- [_SY] = LAYOUT_75_ansi_wkl(
- TG(_SY), TO(_DV), TO(_QW), XXXXXXX, TG(_Q2), XXXXXXX, XXXXXXX, XXXXXXX, QK_BOOT, EE_CLR, DB_TOGG, XXXXXXX, VRSN, XXXXXXX, XXXXXXX, XXXXXXX,
- XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_DEL, XXXXXXX,
- XXXXXXX, RGB_TOG, RGB_HUI, RGB_SAI, RGB_VAI, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
- XXXXXXX, RGB_MOD, RGB_HUD, RGB_SAD, RGB_VAD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
- XXXXXXX, XXXXXXX, XXXXXXX, BL_DOWN, BL_TOGG, BL_UP, BL_BRTG, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
- XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX
- ),
-
-};
-
-bool led_update_user(led_t led_state) {
- writePin(B2, !led_state.caps_lock);
- return false;
-}
diff --git a/keyboards/kbdfans/kbd75/keymaps/noroadsleft/rules.mk b/keyboards/kbdfans/kbd75/keymaps/noroadsleft/rules.mk
deleted file mode 100644
index 20e13b74a2..0000000000
--- a/keyboards/kbdfans/kbd75/keymaps/noroadsleft/rules.mk
+++ /dev/null
@@ -1,8 +0,0 @@
-BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite
-MOUSEKEY_ENABLE = no
-CONSOLE_ENABLE = no
-TAP_DANCE_ENABLE = yes
-DYNAMIC_MACRO_ENABLE = yes
-
-VIA_ENABLE = no
-LTO_ENABLE = yes
diff --git a/keyboards/kbdfans/kbdmini/config.h b/keyboards/kbdfans/kbdmini/config.h
index a3e8408094..be985880d0 100644
--- a/keyboards/kbdfans/kbdmini/config.h
+++ b/keyboards/kbdfans/kbdmini/config.h
@@ -53,7 +53,6 @@
// #define ENABLE_RGB_MATRIX_SOLID_SPLASH
// #define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH
-#define DRIVER_ADDR_1 0b1010000
-#define DRIVER_COUNT 1
+#define IS31FL3733_I2C_ADDRESS_1 IS31FL3733_I2C_ADDRESS_GND_GND
#define RGB_MATRIX_LED_COUNT 52
#endif
diff --git a/keyboards/kbdfans/kbdmini/kbdmini.c b/keyboards/kbdfans/kbdmini/kbdmini.c
index 4dd76e974e..d46283b973 100644
--- a/keyboards/kbdfans/kbdmini/kbdmini.c
+++ b/keyboards/kbdfans/kbdmini/kbdmini.c
@@ -1,6 +1,6 @@
#include "quantum.h"
-const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = {
+const is31fl3733_led_t PROGMEM g_is31fl3733_leds[RGB_MATRIX_LED_COUNT] = {
{ 0, B_9, A_9, C_9 }, //LA33
{ 0, B_10, A_10, C_10 }, //LA37
{ 0, B_11, A_11, C_11 }, //LA41
diff --git a/keyboards/kbdfans/maja/config.h b/keyboards/kbdfans/maja/config.h
index 8f15d2619f..e07c5adf93 100755
--- a/keyboards/kbdfans/maja/config.h
+++ b/keyboards/kbdfans/maja/config.h
@@ -54,9 +54,8 @@
// #define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH
#define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_CYCLE_ALL
-#define DRIVER_ADDR_1 0b1110100
-#define DRIVER_ADDR_2 0b1110110
-#define DRIVER_COUNT 2
+#define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND
+#define IS31FL3731_I2C_ADDRESS_2 IS31FL3731_I2C_ADDRESS_SDA
#define DRIVER_1_LED_TOTAL 36
#define DRIVER_2_LED_TOTAL 31
#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL)
diff --git a/keyboards/kbdfans/maja/maja.c b/keyboards/kbdfans/maja/maja.c
index 43153808d9..d30d327113 100755
--- a/keyboards/kbdfans/maja/maja.c
+++ b/keyboards/kbdfans/maja/maja.c
@@ -1,6 +1,6 @@
#include "quantum.h"
-const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = {
+const is31fl3731_led_t PROGMEM g_is31fl3731_leds[RGB_MATRIX_LED_COUNT] = {
{0, C2_1, C3_1, C4_1}, // LA0
{0, C1_1, C3_2, C4_2}, // LA1
{0, C1_2, C2_2, C4_3}, // LA2
diff --git a/keyboards/kbdfans/niu_mini/keymaps/xtonhasvim/config.h b/keyboards/kbdfans/niu_mini/keymaps/xtonhasvim/config.h
deleted file mode 100644
index c79bb54ad2..0000000000
--- a/keyboards/kbdfans/niu_mini/keymaps/xtonhasvim/config.h
+++ /dev/null
@@ -1,40 +0,0 @@
-#ifndef CONFIG_USER_H
-#define CONFIG_USER_H
-
-#include "../../config.h"
-
-// #define MUSIC_MASK (keycode != KC_NO)
-
-/*
- * MIDI options
- */
-
-/* enable basic MIDI features:
- - MIDI notes can be sent when in Music mode is on
-*/
-
-// #define MIDI_BASIC
-
-/* enable advanced MIDI features:
- - MIDI notes can be added to the keymap
- - Octave shift and transpose
- - Virtual sustain, portamento, and modulation wheel
- - etc.
-*/
-//#define MIDI_ADVANCED
-
-/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
-//#define MIDI_TONE_KEYCODE_OCTAVES 2
-
-// help for fast typist+dual function keys?
-#define PERMISSIVE_HOLD
-
-/* speed up mousekeys a bit */
-#define MOUSEKEY_DELAY 50
-#define MOUSEKEY_INTERVAL 20
-#define MOUSEKEY_MAX_SPEED 8
-#define MOUSEKEY_TIME_TO_MAX 30
-#define MOUSEKEY_WHEEL_MAX_SPEED 8
-#define MOUSEKEY_WHEEL_TIME_TO_MAX 40
-
-#endif
diff --git a/keyboards/kbdfans/niu_mini/keymaps/xtonhasvim/keymap.c b/keyboards/kbdfans/niu_mini/keymaps/xtonhasvim/keymap.c
deleted file mode 100644
index 78fdb0713c..0000000000
--- a/keyboards/kbdfans/niu_mini/keymaps/xtonhasvim/keymap.c
+++ /dev/null
@@ -1,264 +0,0 @@
- /* Copyright 2015-2017 Christon DeWan
- *
- * 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 "xtonhasvim.h"
-#include "fancylighting.h"
-
-/************************************
- * states
- ************************************/
-
-enum layers {
- _QWERTY,
- _LOWER,
- _RAISE,
- _ADJUST,
- _MOVE,
- _MOUSE,
- _CMD
-};
-
-extern uint8_t vim_cmd_layer(void) { return _CMD; }
-
-enum keymap_keycodes {
- RAISE = VIM_SAFE_RANGE,
- LOWER
-};
-
-/************************************
- * keymaps!
- ************************************/
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
-/* Qwerty
- * ,-----------------------------------------------------------------------------------.
- * | Tab | Q | W | E | R | T | Y | U | I | O | P | Bksp |
- * |------+------+------+------+------+-------------+------+------+------+------+------|
- * | Ctrl*| A* | S | D | F | G | H | J | K | L | ;* | " |
- * |------+------+------+------+------+------|------+------+------+------+------+------|
- * | Shift| Z | X | C | V | B | N | M | , | . | / |Enter |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | Mouse| | Alt | GUI |Lower*| Space |Raise*| GUI | Alt | | Vim |
- * `-----------------------------------------------------------------------------------'
- *
- * - Ctrl acts as Esc when tapped.
- * - Holding ; switches to movement layer.
- * - Raise and Lower are one-shot layers.
- */
-[_QWERTY] = LAYOUT_planck_mit(
- KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,
- LCTL_T(KC_ESC), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, LT(_MOVE,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, RSFT_T(KC_ENT),
- LSFT(KC_LALT), TG(_MOUSE), KC_LALT, KC_LGUI, LOWER, KC_SPC, RAISE, KC_LGUI, KC_LALT, X_____X, VIM_START
-),
-
-/* Lower
- * ,-----------------------------------------------------------------------------------.
- * | ~ | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | Bksp |
- * |------+------+------+------+------+-------------+------+------+------+------+------|
- * | Del | ! | @ | # | $ | % | ^ | & | * | ( | ) | | |
- * |------+------+------+------+------+------|------+------+------+------+------+------|
- * | | F7 | F8 | F9 | F10 | F11 | F12 | | Next | Vol- | Vol+ | Play |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | | Bail | | | | | | | | Bail | |
- * `-----------------------------------------------------------------------------------'
- */
-[_LOWER] = LAYOUT_planck_mit(
- KC_TILD, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_BSPC,
- KC_DEL, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_PIPE,
- _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, X_____X, X_____X, X_____X, X_____X, FIREY_RETURN,
- _______, TO(_QWERTY), _______, _______, _______, KC_BSPC, _______, _______, _______, TO(_QWERTY), X_____X
-),
-
-/* Raise
- * ,-----------------------------------------------------------------------------------.
- * | ` | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | Bksp |
- * |------+------+------+------+------+-------------+------+------+------+------+------|
- * | Del | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | \ |
- * |------+------+------+------+------+------|------+------+------+------+------+------|
- * | | F7 | F8 | F9 | F10 | F11 | F12 | | Next | Vol- | Vol+ | Play |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | | Bail | | | | | | | | Bail | |
- * `-----------------------------------------------------------------------------------'
- */
-[_RAISE] = LAYOUT_planck_mit(
- KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSPC,
- KC_DEL, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSLS,
- _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, X_____X, X_____X, X_____X, X_____X, FIREY_RETURN,
- _______, TO(_QWERTY), _______, _______, _______, KC_BSPC, _______, _______, _______, TO(_QWERTY), X_____X
-),
-
-
-/* Adjust (Lower + Raise)
- * ,-------------------------------------------------------------------------------------.
- * |RGBPlain| Reset| | | | | | | | | | Del |
- * |--------+------+------+------+------+-------------+------+------+------+------+------|
- * |RGBMode-| | | | | | | | | | |Lite+ |
- * |--------+------+------+------+------+------|------+------+------+------+------+------|
- * |RGBMode+| | | | | | | Next | Vol- | Vol+ | Play |Lite- |
- * |--------+------+------+------+------+------+------+------+------+------+------+------|
- * | RGB | Bail | | | | | | | | Bail | |
- * `-------------------------------------------------------------------------------------'
- */
-[_ADJUST] = LAYOUT_planck_mit(
- RGB_MODE_PLAIN, QK_BOOT, DB_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL,
- RGB_MODE_REVERSE, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_VAI,
- RGB_MODE_FORWARD, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY, RGB_VAD,
- RGB_TOG, TO(_QWERTY), _______, _______, _______, _______, _______, _______, _______, TO(_QWERTY), X_____X
-),
-
-
-/* movement layer (hold semicolon)
- */
-[_MOVE] = LAYOUT_planck_mit(
- TO(_QWERTY), X_____X, X_____X, X_____X, X_____X, X_____X, KC_HOME, KC_PGDN, KC_PGUP, KC_END, X_____X, X_____X,
- _______, X_____X, LGUI(KC_LBRC), LGUI(LSFT(KC_LBRC)), LGUI(LSFT(KC_RBRC)), LGUI(KC_RBRC), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, X_____X, X_____X,
- _______, X_____X, X_____X, X_____X, X_____X, X_____X, X_____X, X_____X, X_____X, X_____X, X_____X, _______,
- _______, TO(_QWERTY), _______, _______, _______, X_____X, _______, _______, _______, TO(_QWERTY), X_____X
-),
-
-/* mouse layer
- */
-[_MOUSE] = LAYOUT_planck_mit(
- TO(_QWERTY), X_____X, X_____X, KC_MS_UP, X_____X, X_____X, KC_MS_WH_LEFT, KC_MS_WH_DOWN, KC_MS_WH_UP, KC_MS_WH_RIGHT, X_____X, X_____X,
- _______, X_____X, KC_MS_LEFT, KC_MS_DOWN, KC_MS_RIGHT, X_____X, X_____X, KC_MS_BTN1, KC_MS_BTN2, KC_MS_BTN3, X_____X, X_____X,
- _______, X_____X, X_____X, X_____X, X_____X, X_____X, X_____X, X_____X, X_____X, X_____X, X_____X, _______,
- _______, TO(_QWERTY), _______, _______, _______, X_____X, _______, _______, _______, TO(_QWERTY), X_____X
-),
-
-/* vim command layer.
- */
-[_CMD] = LAYOUT_planck_mit(
- X_____X, X_____X, VIM_W, VIM_E, X_____X, X_____X, VIM_Y, VIM_U, VIM_I, VIM_O, VIM_P, X_____X,
- VIM_ESC, VIM_A, VIM_S, VIM_D, X_____X, VIM_G, VIM_H, VIM_J, VIM_K, VIM_L, X_____X, X_____X,
- VIM_SHIFT, X_____X, VIM_X, VIM_C, VIM_V, VIM_B, X_____X, X_____X, VIM_COMMA, VIM_PERIOD, X_____X, VIM_SHIFT,
- _______, TO(_QWERTY), _______, _______, X_____X, X_____X, X_____X, _______, _______, TO(_QWERTY), X_____X
-)
-
-};
-
-#define C_RED 0xFF, 0x00, 0x00
-#define C_GRN 0x00, 0xFF, 0x00
-#define C_BLU 0x00, 0x00, 0xFF
-
-#define C_YAN 0x00, 0xFF, 0xFF
-#define C_PRP 0x7A, 0x00, 0xFF
-#define C_ORG 0xFF, 0x93, 0x00
-
-/** Set just 4 LEDs closest to the user. Slightly less annoying to bystanders.*/
-void rgbflag(uint8_t r, uint8_t g, uint8_t b, uint8_t rr, uint8_t gg, uint8_t bb) {
- LED_TYPE *target_led = user_rgb_mode ? shadowed_led : led;
- for (int i = 0; i < RGBLED_NUM; i++) {
- switch (i) {
- case 12: case 13:
- target_led[i].r = r;
- target_led[i].g = g;
- target_led[i].b = b;
- break;
- case 8: case 9:
- target_led[i].r = rr;
- target_led[i].g = gg;
- target_led[i].b = bb;
- break;
- default:
- target_led[i].r = 0;
- target_led[i].g = 0;
- target_led[i].b = 0;
- break;
- }
- }
- rgblight_set();
-}
-
-void set_state_leds(void) {
- if (rgblight_get_mode() == 1) {
- switch (get_highest_layer(layer_state)) {
- case _RAISE:
- rgbflag(C_BLU, C_GRN);
- break;
- case _LOWER:
- rgbflag(C_BLU, C_RED);
- break;
- case _ADJUST:
- rgbflag(C_BLU, C_PRP);
- break;
- case _MOVE:
- rgbflag(C_RED, C_PRP);
- break;
- case _MOUSE:
- rgbflag(C_RED, C_GRN);
- break;
- case _CMD:
- switch(vstate) {
- case VIM_V:
- case VIM_VI:
- case VIM_VS:
- rgbflag(C_GRN, C_YAN);
- break;
- case VIM_C:
- case VIM_CI:
- rgbflag(C_GRN, C_ORG);
- break;
- case VIM_D:
- case VIM_DI:
- rgbflag(C_GRN, C_RED);
- break;
- case VIM_G:
- rgbflag(C_GRN, C_BLU);
- break;
- case VIM_Y:
- rgbflag(C_GRN, C_PRP);
- break;
- case VIM_START:
- default:
- rgbflag(C_GRN, C_GRN);
- break;
- }
- break;
- default: // for any other layers, or the default layer
- rgbflag(C_YAN, C_YAN);
- break;
- }
- }
-}
-
-bool process_record_keymap(uint16_t keycode, keyrecord_t *record) {
- switch(keycode) {
- case LOWER:
- if (record->event.pressed) {
- layer_on(_LOWER);
- update_tri_layer(_LOWER, _RAISE, _ADJUST);
- } else {
- layer_off(_LOWER);
- update_tri_layer(_LOWER, _RAISE, _ADJUST);
- }
- return false;
- break;
- case RAISE:
- if (record->event.pressed) {
- layer_on(_RAISE);
- update_tri_layer(_LOWER, _RAISE, _ADJUST);
- } else {
- layer_off(_RAISE);
- update_tri_layer(_LOWER, _RAISE, _ADJUST);
- }
- return false;
- break;
- }
- return true;
-}
diff --git a/keyboards/kbdfans/niu_mini/keymaps/xtonhasvim/readme.md b/keyboards/kbdfans/niu_mini/keymaps/xtonhasvim/readme.md
deleted file mode 100644
index 9ff4ce1f19..0000000000
--- a/keyboards/kbdfans/niu_mini/keymaps/xtonhasvim/readme.md
+++ /dev/null
@@ -1,9 +0,0 @@
-# Xton has a tiny keyboard! With Vim!
-
-Based on the standard Planck layout with a few changes:
-
-* Escape moved to dual-function with control.
-* Dedicated movement and mouse layers.
-* Top and middle row swapped in `_RAISE` and `_LOWER` because I never use F-keys.
-* Vim layers! See `users/xtonhasvim`.
-
diff --git a/keyboards/kbdfans/niu_mini/keymaps/xtonhasvim/rules.mk b/keyboards/kbdfans/niu_mini/keymaps/xtonhasvim/rules.mk
deleted file mode 100644
index 00946ff227..0000000000
--- a/keyboards/kbdfans/niu_mini/keymaps/xtonhasvim/rules.mk
+++ /dev/null
@@ -1,5 +0,0 @@
-MOUSEKEY_ENABLE = yes
-BACKLIGHT_ENABLE = no
-AUDIO_ENABLE = no
-CONSOLE_ENABLE = no # Console for debug(+400)
-
diff --git a/keyboards/kbdfans/niu_mini/keymaps/yttyx/keymap.c b/keyboards/kbdfans/niu_mini/keymaps/yttyx/keymap.c
index 55d5a80228..53ed794da8 100644
--- a/keyboards/kbdfans/niu_mini/keymaps/yttyx/keymap.c
+++ b/keyboards/kbdfans/niu_mini/keymaps/yttyx/keymap.c
@@ -1,6 +1,5 @@
#include QMK_KEYBOARD_H
-#include "keymap_steno.h"
enum layers {
_BA, // Base (Balance Twelve mirror variant)
diff --git a/keyboards/kc60/info.json b/keyboards/kc60/info.json
index ea0e7998b8..5dbead0c5f 100644
--- a/keyboards/kc60/info.json
+++ b/keyboards/kc60/info.json
@@ -41,7 +41,7 @@
},
"processor": "atmega32u4",
"bootloader": "atmel-dfu",
- "community_layouts": ["60_ansi"],
+ "community_layouts": ["60_ansi", "60_ansi_split_bs_rshift", "60_ansi_tsangan", "60_tsangan_hhkb", "60_hhkb", "60_abnt2", "60_iso", "60_iso_split_bs_rshift", "60_iso_tsangan"],
"layouts": {
"LAYOUT_all": {
"layout": [
@@ -116,7 +116,7 @@
{"matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25}
]
},
- "LAYOUT": {
+ "LAYOUT_60_ansi": {
"layout": [
{"matrix": [0, 0], "x": 0, "y": 0},
{"matrix": [0, 1], "x": 1, "y": 0},
@@ -131,7 +131,7 @@
{"matrix": [0, 10], "x": 10, "y": 0},
{"matrix": [0, 11], "x": 11, "y": 0},
{"matrix": [0, 12], "x": 12, "y": 0},
- {"matrix": [0, 13], "x": 13, "y": 0},
+ {"matrix": [0, 13], "x": 13, "y": 0, "w": 2},
{"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
{"matrix": [1, 1], "x": 1.5, "y": 1},
@@ -160,11 +160,9 @@
{"matrix": [2, 9], "x": 9.75, "y": 2},
{"matrix": [2, 10], "x": 10.75, "y": 2},
{"matrix": [2, 11], "x": 11.75, "y": 2},
- {"matrix": [2, 12], "x": 12.75, "y": 2},
- {"matrix": [2, 13], "x": 13.75, "y": 2, "w": 1.25},
+ {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25},
- {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25},
- {"matrix": [3, 1], "x": 1.25, "y": 3},
+ {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25},
{"matrix": [3, 2], "x": 2.25, "y": 3},
{"matrix": [3, 3], "x": 3.25, "y": 3},
{"matrix": [3, 4], "x": 4.25, "y": 3},
@@ -175,21 +173,90 @@
{"matrix": [3, 9], "x": 9.25, "y": 3},
{"matrix": [3, 10], "x": 10.25, "y": 3},
{"matrix": [3, 11], "x": 11.25, "y": 3},
- {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75},
- {"matrix": [3, 13], "x": 14, "y": 3},
+ {"matrix": [3, 13], "x": 12.25, "y": 3, "w": 2.75},
{"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25},
{"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25},
{"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25},
{"matrix": [4, 5], "x": 3.75, "y": 4, "w": 6.25},
+ {"matrix": [4, 10], "x": 10, "y": 4, "w": 1.25},
+ {"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25},
+ {"matrix": [4, 12], "x": 12.5, "y": 4, "w": 1.25},
+ {"matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25}
+ ]
+ },
+ "LAYOUT_60_ansi_split_bs_rshift": {
+ "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": [0, 6], "x": 6, "y": 0},
+ {"matrix": [0, 7], "x": 7, "y": 0},
+ {"matrix": [0, 8], "x": 8, "y": 0},
+ {"matrix": [0, 9], "x": 9, "y": 0},
+ {"matrix": [0, 10], "x": 10, "y": 0},
+ {"matrix": [0, 11], "x": 11, "y": 0},
+ {"matrix": [0, 12], "x": 12, "y": 0},
+ {"matrix": [0, 13], "x": 13, "y": 0},
{"matrix": [4, 9], "x": 14, "y": 0},
+
+ {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
+ {"matrix": [1, 1], "x": 1.5, "y": 1},
+ {"matrix": [1, 2], "x": 2.5, "y": 1},
+ {"matrix": [1, 3], "x": 3.5, "y": 1},
+ {"matrix": [1, 4], "x": 4.5, "y": 1},
+ {"matrix": [1, 5], "x": 5.5, "y": 1},
+ {"matrix": [1, 6], "x": 6.5, "y": 1},
+ {"matrix": [1, 7], "x": 7.5, "y": 1},
+ {"matrix": [1, 8], "x": 8.5, "y": 1},
+ {"matrix": [1, 9], "x": 9.5, "y": 1},
+ {"matrix": [1, 10], "x": 10.5, "y": 1},
+ {"matrix": [1, 11], "x": 11.5, "y": 1},
+ {"matrix": [1, 12], "x": 12.5, "y": 1},
+ {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5},
+
+ {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
+ {"matrix": [2, 1], "x": 1.75, "y": 2},
+ {"matrix": [2, 2], "x": 2.75, "y": 2},
+ {"matrix": [2, 3], "x": 3.75, "y": 2},
+ {"matrix": [2, 4], "x": 4.75, "y": 2},
+ {"matrix": [2, 5], "x": 5.75, "y": 2},
+ {"matrix": [2, 6], "x": 6.75, "y": 2},
+ {"matrix": [2, 7], "x": 7.75, "y": 2},
+ {"matrix": [2, 8], "x": 8.75, "y": 2},
+ {"matrix": [2, 9], "x": 9.75, "y": 2},
+ {"matrix": [2, 10], "x": 10.75, "y": 2},
+ {"matrix": [2, 11], "x": 11.75, "y": 2},
+ {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25},
+
+ {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25},
+ {"matrix": [3, 2], "x": 2.25, "y": 3},
+ {"matrix": [3, 3], "x": 3.25, "y": 3},
+ {"matrix": [3, 4], "x": 4.25, "y": 3},
+ {"matrix": [3, 5], "x": 5.25, "y": 3},
+ {"matrix": [3, 6], "x": 6.25, "y": 3},
+ {"matrix": [3, 7], "x": 7.25, "y": 3},
+ {"matrix": [3, 8], "x": 8.25, "y": 3},
+ {"matrix": [3, 9], "x": 9.25, "y": 3},
+ {"matrix": [3, 10], "x": 10.25, "y": 3},
+ {"matrix": [3, 11], "x": 11.25, "y": 3},
+ {"matrix": [3, 13], "x": 12.25, "y": 3, "w": 1.75},
+ {"matrix": [3, 12], "x": 14, "y": 3},
+
+ {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25},
+ {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25},
+ {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25},
+ {"matrix": [4, 5], "x": 3.75, "y": 4, "w": 6.25},
{"matrix": [4, 10], "x": 10, "y": 4, "w": 1.25},
{"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25},
{"matrix": [4, 12], "x": 12.5, "y": 4, "w": 1.25},
{"matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25}
]
},
- "LAYOUT_60_ansi": {
+ "LAYOUT_60_ansi_tsangan": {
"layout": [
{"matrix": [0, 0], "x": 0, "y": 0},
{"matrix": [0, 1], "x": 1, "y": 0},
@@ -248,6 +315,424 @@
{"matrix": [3, 11], "x": 11.25, "y": 3},
{"matrix": [3, 13], "x": 12.25, "y": 3, "w": 2.75},
+ {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5},
+ {"matrix": [4, 1], "x": 1.5, "y": 4},
+ {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5},
+ {"matrix": [4, 5], "x": 4, "y": 4, "w": 7},
+ {"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5},
+ {"matrix": [4, 12], "x": 12.5, "y": 4},
+ {"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5}
+ ]
+ },
+ "LAYOUT_60_tsangan_hhkb": {
+ "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": [0, 6], "x": 6, "y": 0},
+ {"matrix": [0, 7], "x": 7, "y": 0},
+ {"matrix": [0, 8], "x": 8, "y": 0},
+ {"matrix": [0, 9], "x": 9, "y": 0},
+ {"matrix": [0, 10], "x": 10, "y": 0},
+ {"matrix": [0, 11], "x": 11, "y": 0},
+ {"matrix": [0, 12], "x": 12, "y": 0},
+ {"matrix": [0, 13], "x": 13, "y": 0},
+ {"matrix": [4, 9], "x": 14, "y": 0},
+
+ {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
+ {"matrix": [1, 1], "x": 1.5, "y": 1},
+ {"matrix": [1, 2], "x": 2.5, "y": 1},
+ {"matrix": [1, 3], "x": 3.5, "y": 1},
+ {"matrix": [1, 4], "x": 4.5, "y": 1},
+ {"matrix": [1, 5], "x": 5.5, "y": 1},
+ {"matrix": [1, 6], "x": 6.5, "y": 1},
+ {"matrix": [1, 7], "x": 7.5, "y": 1},
+ {"matrix": [1, 8], "x": 8.5, "y": 1},
+ {"matrix": [1, 9], "x": 9.5, "y": 1},
+ {"matrix": [1, 10], "x": 10.5, "y": 1},
+ {"matrix": [1, 11], "x": 11.5, "y": 1},
+ {"matrix": [1, 12], "x": 12.5, "y": 1},
+ {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5},
+
+ {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
+ {"matrix": [2, 1], "x": 1.75, "y": 2},
+ {"matrix": [2, 2], "x": 2.75, "y": 2},
+ {"matrix": [2, 3], "x": 3.75, "y": 2},
+ {"matrix": [2, 4], "x": 4.75, "y": 2},
+ {"matrix": [2, 5], "x": 5.75, "y": 2},
+ {"matrix": [2, 6], "x": 6.75, "y": 2},
+ {"matrix": [2, 7], "x": 7.75, "y": 2},
+ {"matrix": [2, 8], "x": 8.75, "y": 2},
+ {"matrix": [2, 9], "x": 9.75, "y": 2},
+ {"matrix": [2, 10], "x": 10.75, "y": 2},
+ {"matrix": [2, 11], "x": 11.75, "y": 2},
+ {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25},
+
+ {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25},
+ {"matrix": [3, 2], "x": 2.25, "y": 3},
+ {"matrix": [3, 3], "x": 3.25, "y": 3},
+ {"matrix": [3, 4], "x": 4.25, "y": 3},
+ {"matrix": [3, 5], "x": 5.25, "y": 3},
+ {"matrix": [3, 6], "x": 6.25, "y": 3},
+ {"matrix": [3, 7], "x": 7.25, "y": 3},
+ {"matrix": [3, 8], "x": 8.25, "y": 3},
+ {"matrix": [3, 9], "x": 9.25, "y": 3},
+ {"matrix": [3, 10], "x": 10.25, "y": 3},
+ {"matrix": [3, 11], "x": 11.25, "y": 3},
+ {"matrix": [3, 13], "x": 12.25, "y": 3, "w": 1.75},
+ {"matrix": [3, 12], "x": 14, "y": 3},
+
+ {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5},
+ {"matrix": [4, 1], "x": 1.5, "y": 4},
+ {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5},
+ {"matrix": [4, 5], "x": 4, "y": 4, "w": 7},
+ {"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5},
+ {"matrix": [4, 12], "x": 12.5, "y": 4},
+ {"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5}
+ ]
+ },
+ "LAYOUT_60_hhkb": {
+ "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": [0, 6], "x": 6, "y": 0},
+ {"matrix": [0, 7], "x": 7, "y": 0},
+ {"matrix": [0, 8], "x": 8, "y": 0},
+ {"matrix": [0, 9], "x": 9, "y": 0},
+ {"matrix": [0, 10], "x": 10, "y": 0},
+ {"matrix": [0, 11], "x": 11, "y": 0},
+ {"matrix": [0, 12], "x": 12, "y": 0},
+ {"matrix": [0, 13], "x": 13, "y": 0},
+ {"matrix": [4, 9], "x": 14, "y": 0},
+
+ {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
+ {"matrix": [1, 1], "x": 1.5, "y": 1},
+ {"matrix": [1, 2], "x": 2.5, "y": 1},
+ {"matrix": [1, 3], "x": 3.5, "y": 1},
+ {"matrix": [1, 4], "x": 4.5, "y": 1},
+ {"matrix": [1, 5], "x": 5.5, "y": 1},
+ {"matrix": [1, 6], "x": 6.5, "y": 1},
+ {"matrix": [1, 7], "x": 7.5, "y": 1},
+ {"matrix": [1, 8], "x": 8.5, "y": 1},
+ {"matrix": [1, 9], "x": 9.5, "y": 1},
+ {"matrix": [1, 10], "x": 10.5, "y": 1},
+ {"matrix": [1, 11], "x": 11.5, "y": 1},
+ {"matrix": [1, 12], "x": 12.5, "y": 1},
+ {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5},
+
+ {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
+ {"matrix": [2, 1], "x": 1.75, "y": 2},
+ {"matrix": [2, 2], "x": 2.75, "y": 2},
+ {"matrix": [2, 3], "x": 3.75, "y": 2},
+ {"matrix": [2, 4], "x": 4.75, "y": 2},
+ {"matrix": [2, 5], "x": 5.75, "y": 2},
+ {"matrix": [2, 6], "x": 6.75, "y": 2},
+ {"matrix": [2, 7], "x": 7.75, "y": 2},
+ {"matrix": [2, 8], "x": 8.75, "y": 2},
+ {"matrix": [2, 9], "x": 9.75, "y": 2},
+ {"matrix": [2, 10], "x": 10.75, "y": 2},
+ {"matrix": [2, 11], "x": 11.75, "y": 2},
+ {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25},
+
+ {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25},
+ {"matrix": [3, 2], "x": 2.25, "y": 3},
+ {"matrix": [3, 3], "x": 3.25, "y": 3},
+ {"matrix": [3, 4], "x": 4.25, "y": 3},
+ {"matrix": [3, 5], "x": 5.25, "y": 3},
+ {"matrix": [3, 6], "x": 6.25, "y": 3},
+ {"matrix": [3, 7], "x": 7.25, "y": 3},
+ {"matrix": [3, 8], "x": 8.25, "y": 3},
+ {"matrix": [3, 9], "x": 9.25, "y": 3},
+ {"matrix": [3, 10], "x": 10.25, "y": 3},
+ {"matrix": [3, 11], "x": 11.25, "y": 3},
+ {"matrix": [3, 13], "x": 12.25, "y": 3, "w": 1.75},
+ {"matrix": [3, 12], "x": 14, "y": 3},
+
+ {"matrix": [4, 1], "x": 1.5, "y": 4},
+ {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5},
+ {"matrix": [4, 5], "x": 4, "y": 4, "w": 7},
+ {"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5},
+ {"matrix": [4, 12], "x": 12.5, "y": 4}
+ ]
+ },
+ "LAYOUT_60_true_hhkb": {
+ "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": [0, 6], "x": 6, "y": 0},
+ {"matrix": [0, 7], "x": 7, "y": 0},
+ {"matrix": [0, 8], "x": 8, "y": 0},
+ {"matrix": [0, 9], "x": 9, "y": 0},
+ {"matrix": [0, 10], "x": 10, "y": 0},
+ {"matrix": [0, 11], "x": 11, "y": 0},
+ {"matrix": [0, 12], "x": 12, "y": 0},
+ {"matrix": [0, 13], "x": 13, "y": 0},
+ {"matrix": [4, 9], "x": 14, "y": 0},
+
+ {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
+ {"matrix": [1, 1], "x": 1.5, "y": 1},
+ {"matrix": [1, 2], "x": 2.5, "y": 1},
+ {"matrix": [1, 3], "x": 3.5, "y": 1},
+ {"matrix": [1, 4], "x": 4.5, "y": 1},
+ {"matrix": [1, 5], "x": 5.5, "y": 1},
+ {"matrix": [1, 6], "x": 6.5, "y": 1},
+ {"matrix": [1, 7], "x": 7.5, "y": 1},
+ {"matrix": [1, 8], "x": 8.5, "y": 1},
+ {"matrix": [1, 9], "x": 9.5, "y": 1},
+ {"matrix": [1, 10], "x": 10.5, "y": 1},
+ {"matrix": [1, 11], "x": 11.5, "y": 1},
+ {"matrix": [1, 12], "x": 12.5, "y": 1},
+ {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5},
+
+ {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
+ {"matrix": [2, 1], "x": 1.75, "y": 2},
+ {"matrix": [2, 2], "x": 2.75, "y": 2},
+ {"matrix": [2, 3], "x": 3.75, "y": 2},
+ {"matrix": [2, 4], "x": 4.75, "y": 2},
+ {"matrix": [2, 5], "x": 5.75, "y": 2},
+ {"matrix": [2, 6], "x": 6.75, "y": 2},
+ {"matrix": [2, 7], "x": 7.75, "y": 2},
+ {"matrix": [2, 8], "x": 8.75, "y": 2},
+ {"matrix": [2, 9], "x": 9.75, "y": 2},
+ {"matrix": [2, 10], "x": 10.75, "y": 2},
+ {"matrix": [2, 11], "x": 11.75, "y": 2},
+ {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25},
+
+ {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25},
+ {"matrix": [3, 2], "x": 2.25, "y": 3},
+ {"matrix": [3, 3], "x": 3.25, "y": 3},
+ {"matrix": [3, 4], "x": 4.25, "y": 3},
+ {"matrix": [3, 5], "x": 5.25, "y": 3},
+ {"matrix": [3, 6], "x": 6.25, "y": 3},
+ {"matrix": [3, 7], "x": 7.25, "y": 3},
+ {"matrix": [3, 8], "x": 8.25, "y": 3},
+ {"matrix": [3, 9], "x": 9.25, "y": 3},
+ {"matrix": [3, 10], "x": 10.25, "y": 3},
+ {"matrix": [3, 11], "x": 11.25, "y": 3},
+ {"matrix": [3, 13], "x": 12.25, "y": 3, "w": 1.75},
+ {"matrix": [3, 12], "x": 14, "y": 3},
+
+ {"matrix": [4, 1], "x": 1.5, "y": 4},
+ {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5},
+ {"matrix": [4, 5], "x": 4, "y": 4, "w": 6},
+ {"matrix": [4, 10], "x": 10, "y": 4, "w": 1.5},
+ {"matrix": [4, 11], "x": 11.5, "y": 4}
+ ]
+ },
+ "LAYOUT_60_abnt2": {
+ "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": [0, 6], "x": 6, "y": 0},
+ {"matrix": [0, 7], "x": 7, "y": 0},
+ {"matrix": [0, 8], "x": 8, "y": 0},
+ {"matrix": [0, 9], "x": 9, "y": 0},
+ {"matrix": [0, 10], "x": 10, "y": 0},
+ {"matrix": [0, 11], "x": 11, "y": 0},
+ {"matrix": [0, 12], "x": 12, "y": 0},
+ {"matrix": [0, 13], "x": 13, "y": 0, "w": 2},
+
+ {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
+ {"matrix": [1, 1], "x": 1.5, "y": 1},
+ {"matrix": [1, 2], "x": 2.5, "y": 1},
+ {"matrix": [1, 3], "x": 3.5, "y": 1},
+ {"matrix": [1, 4], "x": 4.5, "y": 1},
+ {"matrix": [1, 5], "x": 5.5, "y": 1},
+ {"matrix": [1, 6], "x": 6.5, "y": 1},
+ {"matrix": [1, 7], "x": 7.5, "y": 1},
+ {"matrix": [1, 8], "x": 8.5, "y": 1},
+ {"matrix": [1, 9], "x": 9.5, "y": 1},
+ {"matrix": [1, 10], "x": 10.5, "y": 1},
+ {"matrix": [1, 11], "x": 11.5, "y": 1},
+ {"matrix": [1, 12], "x": 12.5, "y": 1},
+
+ {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
+ {"matrix": [2, 1], "x": 1.75, "y": 2},
+ {"matrix": [2, 2], "x": 2.75, "y": 2},
+ {"matrix": [2, 3], "x": 3.75, "y": 2},
+ {"matrix": [2, 4], "x": 4.75, "y": 2},
+ {"matrix": [2, 5], "x": 5.75, "y": 2},
+ {"matrix": [2, 6], "x": 6.75, "y": 2},
+ {"matrix": [2, 7], "x": 7.75, "y": 2},
+ {"matrix": [2, 8], "x": 8.75, "y": 2},
+ {"matrix": [2, 9], "x": 9.75, "y": 2},
+ {"matrix": [2, 10], "x": 10.75, "y": 2},
+ {"matrix": [2, 11], "x": 11.75, "y": 2},
+ {"matrix": [2, 12], "x": 12.75, "y": 2},
+ {"matrix": [2, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 2},
+
+ {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25},
+ {"matrix": [3, 1], "x": 1.25, "y": 3},
+ {"matrix": [3, 2], "x": 2.25, "y": 3},
+ {"matrix": [3, 3], "x": 3.25, "y": 3},
+ {"matrix": [3, 4], "x": 4.25, "y": 3},
+ {"matrix": [3, 5], "x": 5.25, "y": 3},
+ {"matrix": [3, 6], "x": 6.25, "y": 3},
+ {"matrix": [3, 7], "x": 7.25, "y": 3},
+ {"matrix": [3, 8], "x": 8.25, "y": 3},
+ {"matrix": [3, 9], "x": 9.25, "y": 3},
+ {"matrix": [3, 10], "x": 10.25, "y": 3},
+ {"matrix": [3, 11], "x": 11.25, "y": 3},
+ {"matrix": [3, 12], "x": 12.25, "y": 3},
+ {"matrix": [3, 13], "x": 13.25, "y": 3, "w": 1.75},
+
+ {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25},
+ {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25},
+ {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25},
+ {"matrix": [4, 5], "x": 3.75, "y": 4, "w": 6.25},
+ {"matrix": [4, 10], "x": 10, "y": 4, "w": 1.25},
+ {"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25},
+ {"matrix": [4, 12], "x": 12.5, "y": 4, "w": 1.25},
+ {"matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25}
+ ]
+ },
+ "LAYOUT_60_iso": {
+ "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": [0, 6], "x": 6, "y": 0},
+ {"matrix": [0, 7], "x": 7, "y": 0},
+ {"matrix": [0, 8], "x": 8, "y": 0},
+ {"matrix": [0, 9], "x": 9, "y": 0},
+ {"matrix": [0, 10], "x": 10, "y": 0},
+ {"matrix": [0, 11], "x": 11, "y": 0},
+ {"matrix": [0, 12], "x": 12, "y": 0},
+ {"matrix": [0, 13], "x": 13, "y": 0, "w": 2},
+
+ {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
+ {"matrix": [1, 1], "x": 1.5, "y": 1},
+ {"matrix": [1, 2], "x": 2.5, "y": 1},
+ {"matrix": [1, 3], "x": 3.5, "y": 1},
+ {"matrix": [1, 4], "x": 4.5, "y": 1},
+ {"matrix": [1, 5], "x": 5.5, "y": 1},
+ {"matrix": [1, 6], "x": 6.5, "y": 1},
+ {"matrix": [1, 7], "x": 7.5, "y": 1},
+ {"matrix": [1, 8], "x": 8.5, "y": 1},
+ {"matrix": [1, 9], "x": 9.5, "y": 1},
+ {"matrix": [1, 10], "x": 10.5, "y": 1},
+ {"matrix": [1, 11], "x": 11.5, "y": 1},
+ {"matrix": [1, 12], "x": 12.5, "y": 1},
+
+ {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
+ {"matrix": [2, 1], "x": 1.75, "y": 2},
+ {"matrix": [2, 2], "x": 2.75, "y": 2},
+ {"matrix": [2, 3], "x": 3.75, "y": 2},
+ {"matrix": [2, 4], "x": 4.75, "y": 2},
+ {"matrix": [2, 5], "x": 5.75, "y": 2},
+ {"matrix": [2, 6], "x": 6.75, "y": 2},
+ {"matrix": [2, 7], "x": 7.75, "y": 2},
+ {"matrix": [2, 8], "x": 8.75, "y": 2},
+ {"matrix": [2, 9], "x": 9.75, "y": 2},
+ {"matrix": [2, 10], "x": 10.75, "y": 2},
+ {"matrix": [2, 11], "x": 11.75, "y": 2},
+ {"matrix": [2, 12], "x": 12.75, "y": 2},
+ {"matrix": [2, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 2},
+
+ {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25},
+ {"matrix": [3, 1], "x": 1.25, "y": 3},
+ {"matrix": [3, 2], "x": 2.25, "y": 3},
+ {"matrix": [3, 3], "x": 3.25, "y": 3},
+ {"matrix": [3, 4], "x": 4.25, "y": 3},
+ {"matrix": [3, 5], "x": 5.25, "y": 3},
+ {"matrix": [3, 6], "x": 6.25, "y": 3},
+ {"matrix": [3, 7], "x": 7.25, "y": 3},
+ {"matrix": [3, 8], "x": 8.25, "y": 3},
+ {"matrix": [3, 9], "x": 9.25, "y": 3},
+ {"matrix": [3, 10], "x": 10.25, "y": 3},
+ {"matrix": [3, 11], "x": 11.25, "y": 3},
+ {"matrix": [3, 13], "x": 12.25, "y": 3, "w": 2.75},
+
+ {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25},
+ {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25},
+ {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25},
+ {"matrix": [4, 5], "x": 3.75, "y": 4, "w": 6.25},
+ {"matrix": [4, 10], "x": 10, "y": 4, "w": 1.25},
+ {"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25},
+ {"matrix": [4, 12], "x": 12.5, "y": 4, "w": 1.25},
+ {"matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25}
+ ]
+ },
+ "LAYOUT_60_iso_split_bs_rshift": {
+ "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": [0, 6], "x": 6, "y": 0},
+ {"matrix": [0, 7], "x": 7, "y": 0},
+ {"matrix": [0, 8], "x": 8, "y": 0},
+ {"matrix": [0, 9], "x": 9, "y": 0},
+ {"matrix": [0, 10], "x": 10, "y": 0},
+ {"matrix": [0, 11], "x": 11, "y": 0},
+ {"matrix": [0, 12], "x": 12, "y": 0},
+ {"matrix": [0, 13], "x": 13, "y": 0},
+ {"matrix": [4, 9], "x": 14, "y": 0},
+
+ {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
+ {"matrix": [1, 1], "x": 1.5, "y": 1},
+ {"matrix": [1, 2], "x": 2.5, "y": 1},
+ {"matrix": [1, 3], "x": 3.5, "y": 1},
+ {"matrix": [1, 4], "x": 4.5, "y": 1},
+ {"matrix": [1, 5], "x": 5.5, "y": 1},
+ {"matrix": [1, 6], "x": 6.5, "y": 1},
+ {"matrix": [1, 7], "x": 7.5, "y": 1},
+ {"matrix": [1, 8], "x": 8.5, "y": 1},
+ {"matrix": [1, 9], "x": 9.5, "y": 1},
+ {"matrix": [1, 10], "x": 10.5, "y": 1},
+ {"matrix": [1, 11], "x": 11.5, "y": 1},
+ {"matrix": [1, 12], "x": 12.5, "y": 1},
+
+ {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
+ {"matrix": [2, 1], "x": 1.75, "y": 2},
+ {"matrix": [2, 2], "x": 2.75, "y": 2},
+ {"matrix": [2, 3], "x": 3.75, "y": 2},
+ {"matrix": [2, 4], "x": 4.75, "y": 2},
+ {"matrix": [2, 5], "x": 5.75, "y": 2},
+ {"matrix": [2, 6], "x": 6.75, "y": 2},
+ {"matrix": [2, 7], "x": 7.75, "y": 2},
+ {"matrix": [2, 8], "x": 8.75, "y": 2},
+ {"matrix": [2, 9], "x": 9.75, "y": 2},
+ {"matrix": [2, 10], "x": 10.75, "y": 2},
+ {"matrix": [2, 11], "x": 11.75, "y": 2},
+ {"matrix": [2, 12], "x": 12.75, "y": 2},
+ {"matrix": [2, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 2},
+
+ {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25},
+ {"matrix": [3, 1], "x": 1.25, "y": 3},
+ {"matrix": [3, 2], "x": 2.25, "y": 3},
+ {"matrix": [3, 3], "x": 3.25, "y": 3},
+ {"matrix": [3, 4], "x": 4.25, "y": 3},
+ {"matrix": [3, 5], "x": 5.25, "y": 3},
+ {"matrix": [3, 6], "x": 6.25, "y": 3},
+ {"matrix": [3, 7], "x": 7.25, "y": 3},
+ {"matrix": [3, 8], "x": 8.25, "y": 3},
+ {"matrix": [3, 9], "x": 9.25, "y": 3},
+ {"matrix": [3, 10], "x": 10.25, "y": 3},
+ {"matrix": [3, 11], "x": 11.25, "y": 3},
+ {"matrix": [3, 13], "x": 12.25, "y": 3, "w": 1.75},
+ {"matrix": [3, 12], "x": 14, "y": 3},
+
{"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25},
{"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25},
{"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25},
@@ -257,6 +742,146 @@
{"matrix": [4, 12], "x": 12.5, "y": 4, "w": 1.25},
{"matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25}
]
+ },
+ "LAYOUT_60_iso_tsangan": {
+ "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": [0, 6], "x": 6, "y": 0},
+ {"matrix": [0, 7], "x": 7, "y": 0},
+ {"matrix": [0, 8], "x": 8, "y": 0},
+ {"matrix": [0, 9], "x": 9, "y": 0},
+ {"matrix": [0, 10], "x": 10, "y": 0},
+ {"matrix": [0, 11], "x": 11, "y": 0},
+ {"matrix": [0, 12], "x": 12, "y": 0},
+ {"matrix": [0, 13], "x": 13, "y": 0, "w": 2},
+
+ {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
+ {"matrix": [1, 1], "x": 1.5, "y": 1},
+ {"matrix": [1, 2], "x": 2.5, "y": 1},
+ {"matrix": [1, 3], "x": 3.5, "y": 1},
+ {"matrix": [1, 4], "x": 4.5, "y": 1},
+ {"matrix": [1, 5], "x": 5.5, "y": 1},
+ {"matrix": [1, 6], "x": 6.5, "y": 1},
+ {"matrix": [1, 7], "x": 7.5, "y": 1},
+ {"matrix": [1, 8], "x": 8.5, "y": 1},
+ {"matrix": [1, 9], "x": 9.5, "y": 1},
+ {"matrix": [1, 10], "x": 10.5, "y": 1},
+ {"matrix": [1, 11], "x": 11.5, "y": 1},
+ {"matrix": [1, 12], "x": 12.5, "y": 1},
+
+ {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
+ {"matrix": [2, 1], "x": 1.75, "y": 2},
+ {"matrix": [2, 2], "x": 2.75, "y": 2},
+ {"matrix": [2, 3], "x": 3.75, "y": 2},
+ {"matrix": [2, 4], "x": 4.75, "y": 2},
+ {"matrix": [2, 5], "x": 5.75, "y": 2},
+ {"matrix": [2, 6], "x": 6.75, "y": 2},
+ {"matrix": [2, 7], "x": 7.75, "y": 2},
+ {"matrix": [2, 8], "x": 8.75, "y": 2},
+ {"matrix": [2, 9], "x": 9.75, "y": 2},
+ {"matrix": [2, 10], "x": 10.75, "y": 2},
+ {"matrix": [2, 11], "x": 11.75, "y": 2},
+ {"matrix": [2, 12], "x": 12.75, "y": 2},
+ {"matrix": [2, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 2},
+
+ {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25},
+ {"matrix": [3, 1], "x": 1.25, "y": 3},
+ {"matrix": [3, 2], "x": 2.25, "y": 3},
+ {"matrix": [3, 3], "x": 3.25, "y": 3},
+ {"matrix": [3, 4], "x": 4.25, "y": 3},
+ {"matrix": [3, 5], "x": 5.25, "y": 3},
+ {"matrix": [3, 6], "x": 6.25, "y": 3},
+ {"matrix": [3, 7], "x": 7.25, "y": 3},
+ {"matrix": [3, 8], "x": 8.25, "y": 3},
+ {"matrix": [3, 9], "x": 9.25, "y": 3},
+ {"matrix": [3, 10], "x": 10.25, "y": 3},
+ {"matrix": [3, 11], "x": 11.25, "y": 3},
+ {"matrix": [3, 13], "x": 12.25, "y": 3, "w": 2.75},
+
+ {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5},
+ {"matrix": [4, 1], "x": 1.5, "y": 4},
+ {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5},
+ {"matrix": [4, 5], "x": 4, "y": 4, "w": 7},
+ {"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5},
+ {"matrix": [4, 12], "x": 12.5, "y": 4},
+ {"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5}
+ ]
+ },
+ "LAYOUT_60_iso_tsangan_split_bs_rshift": {
+ "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": [0, 6], "x": 6, "y": 0},
+ {"matrix": [0, 7], "x": 7, "y": 0},
+ {"matrix": [0, 8], "x": 8, "y": 0},
+ {"matrix": [0, 9], "x": 9, "y": 0},
+ {"matrix": [0, 10], "x": 10, "y": 0},
+ {"matrix": [0, 11], "x": 11, "y": 0},
+ {"matrix": [0, 12], "x": 12, "y": 0},
+ {"matrix": [0, 13], "x": 13, "y": 0},
+ {"matrix": [4, 9], "x": 14, "y": 0},
+
+ {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
+ {"matrix": [1, 1], "x": 1.5, "y": 1},
+ {"matrix": [1, 2], "x": 2.5, "y": 1},
+ {"matrix": [1, 3], "x": 3.5, "y": 1},
+ {"matrix": [1, 4], "x": 4.5, "y": 1},
+ {"matrix": [1, 5], "x": 5.5, "y": 1},
+ {"matrix": [1, 6], "x": 6.5, "y": 1},
+ {"matrix": [1, 7], "x": 7.5, "y": 1},
+ {"matrix": [1, 8], "x": 8.5, "y": 1},
+ {"matrix": [1, 9], "x": 9.5, "y": 1},
+ {"matrix": [1, 10], "x": 10.5, "y": 1},
+ {"matrix": [1, 11], "x": 11.5, "y": 1},
+ {"matrix": [1, 12], "x": 12.5, "y": 1},
+
+ {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
+ {"matrix": [2, 1], "x": 1.75, "y": 2},
+ {"matrix": [2, 2], "x": 2.75, "y": 2},
+ {"matrix": [2, 3], "x": 3.75, "y": 2},
+ {"matrix": [2, 4], "x": 4.75, "y": 2},
+ {"matrix": [2, 5], "x": 5.75, "y": 2},
+ {"matrix": [2, 6], "x": 6.75, "y": 2},
+ {"matrix": [2, 7], "x": 7.75, "y": 2},
+ {"matrix": [2, 8], "x": 8.75, "y": 2},
+ {"matrix": [2, 9], "x": 9.75, "y": 2},
+ {"matrix": [2, 10], "x": 10.75, "y": 2},
+ {"matrix": [2, 11], "x": 11.75, "y": 2},
+ {"matrix": [2, 12], "x": 12.75, "y": 2},
+ {"matrix": [2, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 2},
+
+ {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25},
+ {"matrix": [3, 1], "x": 1.25, "y": 3},
+ {"matrix": [3, 2], "x": 2.25, "y": 3},
+ {"matrix": [3, 3], "x": 3.25, "y": 3},
+ {"matrix": [3, 4], "x": 4.25, "y": 3},
+ {"matrix": [3, 5], "x": 5.25, "y": 3},
+ {"matrix": [3, 6], "x": 6.25, "y": 3},
+ {"matrix": [3, 7], "x": 7.25, "y": 3},
+ {"matrix": [3, 8], "x": 8.25, "y": 3},
+ {"matrix": [3, 9], "x": 9.25, "y": 3},
+ {"matrix": [3, 10], "x": 10.25, "y": 3},
+ {"matrix": [3, 11], "x": 11.25, "y": 3},
+ {"matrix": [3, 13], "x": 12.25, "y": 3, "w": 1.75},
+ {"matrix": [3, 12], "x": 14, "y": 3},
+
+ {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5},
+ {"matrix": [4, 1], "x": 1.5, "y": 4},
+ {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5},
+ {"matrix": [4, 5], "x": 4, "y": 4, "w": 7},
+ {"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5},
+ {"matrix": [4, 12], "x": 12.5, "y": 4},
+ {"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5}
+ ]
}
}
}
diff --git a/keyboards/kc60/keymaps/dbroqua/keymap.c b/keyboards/kc60/keymaps/dbroqua/keymap.c
index ee489bbe91..22ef319103 100644
--- a/keyboards/kc60/keymaps/dbroqua/keymap.c
+++ b/keyboards/kc60/keymaps/dbroqua/keymap.c
@@ -1,82 +1,73 @@
#include QMK_KEYBOARD_H
-#define _QWERTY 0
-#define _FNCAPS 1
-#define _FNRIGHTSHIFT 2
-
-// Fillers to make layering more clear
-#define ______ KC_TRNS
-
-/*
- * | | |
- * | | |
- * | | |
- * | | |
- * | |
- */
+enum layer_names {
+ _QWERTY,
+ _FNCAPS,
+ _FNRIGHTSHIFT
+};
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-/* Qwerty
- * ,-----------------------------------------------------------------------------------------.
- * | Esc | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | \ | ` |
- * |-----------------------------------------------------------------------------------------+
- * | Tab | Q | W | E | R | T | Y | U | I | O | P | [ | ] | Bksp |
- * |-----------------------------------------------------------------------------------------+
- * | Caps/FN1| A | S | D | F | G | H | J | K | L | ; | ' | Enter |
- * |-----------------------------------------------------------------------------------------+
- * | Shift | Z | X | C | V | B | N | M | , | . | / | Up | FN2 |
- * |-----------------------------------------------------------------------------------------+
- * | Ctrl | Gui | Alt | Space | AltGr | Left | Down | Right |
- * `-----------------------------------------------------------------------------------------'
- */
- [0] = LAYOUT( /* Basic QWERTY */
- KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS,
- 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_BSPC,
- LT(_FNCAPS, KC_CAPS), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NO, KC_ENT,
- KC_LSFT, KC_NO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, MO(_FNRIGHTSHIFT), KC_UP,
- KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_GRV, KC_RALT, KC_LEFT, KC_DOWN, KC_RIGHT
- ),
+ /* Qwerty
+ * ,-----------------------------------------------------------------------------------------.
+ * | Esc | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | \ | ` |
+ * |-----------------------------------------------------------------------------------------+
+ * | Tab | Q | W | E | R | T | Y | U | I | O | P | [ | ] | Bksp |
+ * |-----------------------------------------------------------------------------------------+
+ * | Caps/FN1| A | S | D | F | G | H | J | K | L | ; | ' | Enter |
+ * |-----------------------------------------------------------------------------------------+
+ * | Shift | Z | X | C | V | B | N | M | , | . | / | Up | FN2 |
+ * |-----------------------------------------------------------------------------------------+
+ * | Ctrl | Gui | Alt | Space | AltGr | Left | Down | Right |
+ * `-----------------------------------------------------------------------------------------'
+ */
+ [0] = LAYOUT_all( /* Basic QWERTY */
+ KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS, KC_GRV,
+ 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_BSPC,
+ LT(_FNCAPS, KC_CAPS), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NO, KC_ENT,
+ KC_LSFT, KC_NO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_UP, MO(_FNRIGHTSHIFT),
+ KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_LEFT, KC_DOWN, KC_RIGHT
+ ),
-/* Layer 1
- * ,-----------------------------------------------------------------------------------------.
- * | | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | Ins | Del |
- * |-----------------------------------------------------------------------------------------+
- * | | | | | | | | | | | | | | |
- * |-----------------------------------------------------------------------------------------+
- * | | | | | | | | Psc | | | | | |
- * |-----------------------------------------------------------------------------------------+
- * | | Led | Led+| Led-| | Mute| Vol+| Vol-| | | | Play | |
- * |-----------------------------------------------------------------------------------------+
- * | | | | | | Prev | Stop | Next |
- * `-----------------------------------------------------------------------------------------'
- */
- [_FNCAPS] = LAYOUT( /* Layer 1 */
- ______, 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_INS,
- ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______,
- ______, ______, ______, ______, ______, ______, ______, KC_PSCR,______, ______, ______, ______, ______, ______,
- ______, ______, BL_TOGG, BL_UP, BL_DOWN,______,KC_MUTE,KC_VOLU,KC_VOLD,______, ______, ______, ______,KC_MPLY,
- ______, ______, ______, ______, KC_DEL, ______, KC_MPRV, KC_MSTP, KC_MNXT
- ),
+ /* Layer 1
+ * ,-----------------------------------------------------------------------------------------.
+ * | | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | Ins | Del |
+ * |-----------------------------------------------------------------------------------------+
+ * | | | | | | | | | | | | | | |
+ * |-----------------------------------------------------------------------------------------+
+ * | | | | | | | | Psc | | | | | |
+ * |-----------------------------------------------------------------------------------------+
+ * | | Led | Led+| Led-| | Mute| Vol+| Vol-| | | | Play | |
+ * |-----------------------------------------------------------------------------------------+
+ * | | | | | | Prev | Stop | Next |
+ * `-----------------------------------------------------------------------------------------'
+ */
+ [_FNCAPS] = LAYOUT_all( /* Layer 1 */
+ _______, 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_INS, KC_DEL,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, KC_PSCR, _______, _______, _______, _______, _______, _______,
+ _______, _______, BL_TOGG, BL_UP, BL_DOWN, _______, KC_MUTE, KC_VOLU, KC_VOLD, _______, _______, _______, KC_MPLY, _______,
+ _______, _______, _______, _______, _______, KC_MPRV, KC_MSTP, KC_MNXT
+ ),
-/* Layer 2
- * ,-----------------------------------------------------------------------------------------.
- * | | | | | | | | | | | | | | | |
- * |-----------------------------------------------------------------------------------------+
- * | | | | | | | | | | | | | | |
- * |-----------------------------------------------------------------------------------------+
- * | | | | | | | | | | | | | |
- * |-----------------------------------------------------------------------------------------+
- * | | | | | | | | | | | | PgUp | |
- * |-----------------------------------------------------------------------------------------+
- * | | | | | | Home | PgDown| End |
- * `-----------------------------------------------------------------------------------------'
- */
- [_FNRIGHTSHIFT] = LAYOUT( /* Layer 2 */
- ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______,
- ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______,
- ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______,
- ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, KC_PGUP,
- ______, ______, ______, ______, ______, ______, KC_HOME,KC_PGDN,KC_END
- ),
+ /* Layer 2
+ * ,-----------------------------------------------------------------------------------------.
+ * | | | | | | | | | | | | | | | |
+ * |-----------------------------------------------------------------------------------------+
+ * | | | | | | | | | | | | | | |
+ * |-----------------------------------------------------------------------------------------+
+ * | | | | | | | | | | | | | |
+ * |-----------------------------------------------------------------------------------------+
+ * | | | | | | | | | | | | PgUp | |
+ * |-----------------------------------------------------------------------------------------+
+ * | | | | | | Home | PgDown| End |
+ * `-----------------------------------------------------------------------------------------'
+ */
+ [_FNRIGHTSHIFT] = LAYOUT_all( /* Layer 2 */
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PGUP, _______,
+ _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_END
+ ),
};
diff --git a/keyboards/kc60/keymaps/dbroqua_hhkb/keymap.c b/keyboards/kc60/keymaps/dbroqua_hhkb/keymap.c
index be15be6174..2189e5bc5c 100644
--- a/keyboards/kc60/keymaps/dbroqua_hhkb/keymap.c
+++ b/keyboards/kc60/keymaps/dbroqua_hhkb/keymap.c
@@ -1,52 +1,51 @@
#include QMK_KEYBOARD_H
-#define _QWERTY 0
-#define _FN 1
-
-// Fillers to make layering more clear
-#define ______ KC_TRNS
+enum layer_names {
+ _QWERTY,
+ _FN
+};
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-/* Qwerty
- * ,-----------------------------------------------------------------------------------------.
- * | Esc | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | \ | ` |
- * |-----------------------------------------------------------------------------------------+
- * | Tab | Q | W | E | R | T | Y | U | I | O | P | [ | ] | Bksp |
- * |-----------------------------------------------------------------------------------------+
- * | Ctrl | A | S | D | F | G | H | J | K | L | ; | ' | Enter |
- * |-----------------------------------------------------------------------------------------+
- * | Shift | Z | X | C | V | B | N | M | , | . | / | RShift | FN |
- * |-----------------------------------------------------------------------------------------+
- * | LGUI | LAlt | Space | RAlt | RGUI |
- * `-----------------------------------------------------------------'
- */
- [0] = LAYOUT( /* Basic QWERTY */
- KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS,
- 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_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_NO, KC_ENT,
- KC_LSFT, KC_NO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, MO(_FN), KC_RSFT,
- ______, KC_LGUI, KC_LALT, KC_SPC, KC_GRV, KC_RALT, KC_RGUI, ______, ______
- ),
+ /* Qwerty
+ * ,-----------------------------------------------------------------------------------------.
+ * | Esc | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | \ | ` |
+ * |-----------------------------------------------------------------------------------------+
+ * | Tab | Q | W | E | R | T | Y | U | I | O | P | [ | ] | Bksp |
+ * |-----------------------------------------------------------------------------------------+
+ * | Ctrl | A | S | D | F | G | H | J | K | L | ; | ' | Enter |
+ * |-----------------------------------------------------------------------------------------+
+ * | Shift | Z | X | C | V | B | N | M | , | . | / | RShift | FN |
+ * |-----------------------------------------------------------------------------------------+
+ * | LGUI | LAlt | Space | RAlt | RGUI |
+ * `-----------------------------------------------------------------'
+ */
+ [0] = LAYOUT_all( /* Basic QWERTY */
+ KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS, KC_GRV,
+ 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_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_NO, KC_ENT,
+ KC_LSFT, KC_NO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(_FN),
+ _______, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, _______, _______
+ ),
-/* Layer 1
- * ,-----------------------------------------------------------------------------------------.
- * | | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | Ins | Del |
- * |-----------------------------------------------------------------------------------------+
- * | CAPS | Led | Led-| Led+| | | | | Psc | Slck| Paus| Up | | |
- * |-----------------------------------------------------------------------------------------+
- * | | Vol-| Vol+| Mute| | | * | / | Home| PgUp| Left|Right| |
- * |-----------------------------------------------------------------------------------------+
- * | | Prev| Play| Next| | | + | - | End |PgDn| Down| | |
- * |-----------------------------------------------------------------------------------------+
- * | | | | Stop | |
- * `-----------------------------------------------------------------'
- */
- [_FN] = LAYOUT( /* Layer 1 */
- ______, 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_INS,
- KC_CAPS, BL_TOGG, BL_UP, BL_DOWN,______, ______, ______, ______, KC_PSCR, KC_SCRL, KC_PAUS, KC_UP, ______, ______,
- ______, KC_VOLD, KC_VOLU, KC_MUTE, ______, ______, KC_PAST, KC_PSLS,KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, ______, ______,
- ______, ______, KC_MPRV, KC_MPLY, KC_MNXT,______,______,KC_PPLS,KC_PMNS,KC_END, KC_PGDN, KC_DOWN, ______,______,
- ______, ______, ______, ______, KC_DEL, KC_MSTP, ______, ______, ______
- )
+ /* Layer 1
+ * ,-----------------------------------------------------------------------------------------.
+ * | | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | Ins | Del |
+ * |-----------------------------------------------------------------------------------------+
+ * | CAPS | Led | Led-| Led+| | | | | Psc | Slck| Paus| Up | | |
+ * |-----------------------------------------------------------------------------------------+
+ * | | Vol-| Vol+| Mute| | | * | / | Home| PgUp| Left|Right| |
+ * |-----------------------------------------------------------------------------------------+
+ * | | Prev| Play| Next| | | + | - | End |PgDn| Down| | |
+ * |-----------------------------------------------------------------------------------------+
+ * | | | | Stop | |
+ * `-----------------------------------------------------------------'
+ */
+ [_FN] = LAYOUT_all( /* Layer 1 */
+ _______, 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_INS, KC_DEL,
+ KC_CAPS, BL_TOGG, BL_UP, BL_DOWN, _______, _______, _______, _______, KC_PSCR, KC_SCRL, KC_PAUS, KC_UP, _______, _______,
+ _______, KC_VOLD, KC_VOLU, KC_MUTE, _______, _______, KC_PAST, KC_PSLS, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, _______, _______,
+ _______, _______, KC_MPRV, KC_MPLY, KC_MNXT, _______, _______, KC_PPLS, KC_PMNS, KC_END, KC_PGDN, KC_DOWN, _______, _______,
+ _______, _______, _______, _______, KC_MSTP, _______, _______, _______
+ )
};
diff --git a/keyboards/kc60/keymaps/default/keymap.c b/keyboards/kc60/keymaps/default/keymap.c
index dfadce34d8..b135569e91 100644
--- a/keyboards/kc60/keymaps/default/keymap.c
+++ b/keyboards/kc60/keymaps/default/keymap.c
@@ -9,7 +9,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, LT(1, KC_APP), KC_RCTL
),
[1] = LAYOUT_all(
- QK_BOOT, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, XXXXXXX, XXXXXXX,
+ QK_BOOT, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, XXXXXXX, XXXXXXX,
XXXXXXX, XXXXXXX, KC_UP, XXXXXXX, XXXXXXX, XXXXXXX, KC_INS, KC_HOME, KC_UP, KC_END, KC_PGUP, KC_PSCR, KC_SCRL, KC_PAUS,
XXXXXXX, KC_LEFT, KC_DOWN, KC_RGHT, XXXXXXX, XXXXXXX, KC_DEL, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, XXXXXXX, XXXXXXX, XXXXXXX,
_______, XXXXXXX, XXXXXXX, BL_DOWN, BL_TOGG, BL_UP, BL_BRTG, XXXXXXX, KC_MUTE, KC_VOLD, KC_VOLU, XXXXXXX, _______, _______,
diff --git a/keyboards/kc60/keymaps/noroadsleft/config.h b/keyboards/kc60/keymaps/noroadsleft/config.h
deleted file mode 100644
index 1078f3b025..0000000000
--- a/keyboards/kc60/keymaps/noroadsleft/config.h
+++ /dev/null
@@ -1,36 +0,0 @@
-/* Copyright 2018-2020 James Young (@noroadsleft)
- *
- * 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 PERMISSIVE_HOLD // https://docs.qmk.fm/#/feature_advanced_keycodes?id=permissive-hold
-
-// Enable single-color backlighting
-#define BACKLIGHT_BREATHING
-#define BACKLIGHT_LEVELS 5
-#define BREATHING_PERIOD 4
-
-#ifdef LOCKING_SUPPORT_ENABLE
-# undef LOCKING_SUPPORT_ENABLE
-#endif
-#ifdef LOCKING_RESYNC_ENABLE
-# undef LOCKING_RESYNC_ENABLE
-#endif
-
-#define NO_ACTION_ONESHOT
-
-#define ANSI_NUBS_ROW 3
-#define ANSI_NUBS_COL 2
diff --git a/keyboards/kc60/keymaps/noroadsleft/keymap.c b/keyboards/kc60/keymaps/noroadsleft/keymap.c
deleted file mode 100644
index eb528c3448..0000000000
--- a/keyboards/kc60/keymaps/noroadsleft/keymap.c
+++ /dev/null
@@ -1,117 +0,0 @@
-/* Copyright 2018-2022 James Young (@noroadsleft)
- *
- * 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 "noroadsleft.h"
-
-
-// LAYER DEFINITIONS
-enum layer_names {
- // BASE LAYERS
- _DV,
- _QW,
- _CM,
- // QUAKE 2 OVERLAY
- _Q2,
- // FUNCTION LAYER
- _FN,
- // OTHER LAYERS
- _NP,
- _MA,
- _SY,
-};
-
-
-// KEYCODE DEFINITIONS
-#define FN_CAPS LT(_FN, KC_CAPS) // Function Layer when held, Caps Lock when tapped
-#define CTL_GRV MT(MOD_LCTL, KC_GRV) // Left Control when held, Grave accent when tapped
-
-
-// KEYMAPS
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
- // BASE LAYERS
-
- [_DV] = LAYOUT_60_ansi(
- KC_ESC, 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_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,
- FN_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_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_RSFT,
- CTL_GRV, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(_MA), MO(_FN), KC_RCTL
- ),
-
- [_QW] = LAYOUT_60_ansi(
- KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC,
- KC_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,
- FN_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_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,
- CTL_GRV, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(_MA), MO(_FN), KC_RCTL
- ),
-
- [_CM] = LAYOUT_60_ansi(
- KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC,
- KC_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,
- FN_CAPS, 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_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,
- CTL_GRV, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(_MA), MO(_FN), KC_RCTL
- ),
-
- // QUAKE 2 OVERLAYS
-
- [_Q2] = LAYOUT_60_ansi(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- KC_GRV, _______, _______, _______, _______, _______, _______, _______
- ),
-
- // FUNCTION LAYER
-
- [_FN] = LAYOUT_60_ansi(
- KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL,
- _______, KC_CALC, KC_APP, _______, _______, _______, KC_INS, KC_HOME, KC_UP, KC_END, KC_PGUP, KC_PSCR, KC_SCRL, KC_PAUS,
- _______, M_SALL, _______, _______, _______, _______, KC_DEL, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, _______, KC_PENT,
- _______, M_UNDO, M_CUT, M_COPY, M_PASTE, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, TG(_SY), _______,
- _______, _______, _______, TG(_NP), _______, _______, _______, _______
- ),
-
- // OTHER LAYERS
-
- [_NP] = LAYOUT_60_ansi(
- _______, _______, _______, _______, _______, _______, _______, KC_P7, KC_P8, KC_P9, _______, _______, _______, _______,
- _______, _______, _______, _______, KC_E, KC_F, _______, KC_P4, KC_P5, KC_P6, KC_PAST, KC_PSLS, KC_PEQL, _______,
- _______, _______, _______, _______, KC_C, KC_D, _______, KC_P1, KC_P2, KC_P3, KC_PPLS, KC_PMNS, KC_PENT,
- _______, _______, _______, _______, KC_A, KC_B, _______, KC_P0, _______, KC_PDOT, _______, _______,
- _______, _______, _______, TG(_NP), _______, _______, _______, _______
- ),
-
- [_MA] = LAYOUT_60_ansi(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, DM_REC1, DM_REC2, _______,
- _______, _______, _______, G_PUSH, _______, _______, _______, _______, _______, _______, _______, DM_PLY1, DM_PLY2, DM_RSTP,
- _______, _______, _______, G_FTCH, G_PWD, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, G_BRCH, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______
- ),
-
- [_SY] = LAYOUT_60_ansi(
- TG(_SY), TO(_DV), TO(_QW), TO(_CM), TG(_Q2), XXXXXXX, XXXXXXX, XXXXXXX, QK_BOOT, XXXXXXX, DB_TOGG, XXXXXXX, VRSN, XXXXXXX,
- XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
- XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
- XXXXXXX, XXXXXXX, XXXXXXX, BL_DOWN, BL_TOGG, BL_UP, BL_BRTG, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
- XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, XXXXXXX
- ),
-
-};
diff --git a/keyboards/kc60/keymaps/noroadsleft/readme.md b/keyboards/kc60/keymaps/noroadsleft/readme.md
deleted file mode 100644
index cddc1fd976..0000000000
--- a/keyboards/kc60/keymaps/noroadsleft/readme.md
+++ /dev/null
@@ -1,135 +0,0 @@
-# @noroadsleft's KC60 keymap
-
-### Last updated: November 9, 2021, 9:47 (-0800)
-
-![](https://i.imgur.com/tzhXQYIl.jpg)
-
-I am a full-time Dvorak typist, and occasional semi-serious FPS gamer. The layers are oriented towards a mix of typing and gaming.
-
-
-----
-
-## Preface
-
-Images in this readme follow the following format:
-
-![Legend](https://raw.githubusercontent.com/noroadsleft/qmk_images/master/keyboards/kc60/keymaps/noroadsleft/legend.png)
-*Legend*
-
-Descriptions of the physical locations of keys will use the key's function in a US QWERTY layout, even if the layout itself is not QWERTY.
-
-
-----
-
-## Outline
-
-- [Base Layers](#base-layers)
- - Layer 0: Dvorak `_DV`
- - Layer 1: QWERTY `_QW`
- - Layer 2: Colemak `_CM`
-- [Quake 2 Layer](#quake-2-layer)
- - Layer 3: Quake 2 `_Q2`
-- [Function Layer](#function-layer)
- - Layer 4: Fn layer `_FN`
-- [Other Layers](#other-layers)
- - Layer 5: Numpad layer `_NP`
- - Layer 6: Macro layer `_MA`
- - Layer 7: System layer `_SY`
-
-
-----
-
-## Base Layers
-
-My base layers are pretty standard for a 60%, with the following changes:
-
-- The `Menu` key has been replaced by `MO(_FN)`, which moves to my Function layer when held.
-- The Right `GUI` key has been replaced with a `MO(_MA)` key, which moves to the Macro layer when held.
-- The `Caps Lock` key has been replaced with a dual function `LT()` key, which opens the Function layer when held, and is `Caps Lock` when tapped.
-- The Left `Control` key has been replaced with a `MT(MOD_CTRL, KC_GRV)` key, which is `Ctrl` when held and <code>&#96; ~</code> when tapped.
-- The Number Row `1` through `0` keys will send Numeric Keypad keycodes instead of Number Row keycodes if tapped while `Right Alt` is active. This functionality is documented in [my userspace readme](../../../../users/noroadsleft/readme.md#emulated-numeric-keypad).
-
-### Layer 0: Dvorak - `_DV`
-
-A hardware-based Dvorak Simplified layout. In this layer, I can leave the host system in QWERTY, plug my keyboard in, and still type in Dvorak.
-
-![Dvorak layer](https://raw.githubusercontent.com/noroadsleft/qmk_images/master/keyboards/kc60/keymaps/noroadsleft/dvorak.png)
-
-
-### Layer 1: QWERTY - `_QW`
-
-- Accessed by holding either `Fn` and tapping `/?` key, then tapping `2@`.
-
-For when other people need to use my keyboard. :)
-
-![QWERTY layer](https://raw.githubusercontent.com/noroadsleft/qmk_images/master/keyboards/kc60/keymaps/noroadsleft/qwerty.png)
-
-
-### Layer 2: Hardware Colemak `_CM`
-
-- Accessed by holding either `Fn` and tapping `/?` key, then tapping `3#`.
-
-A hardware-based Colemak layout. Been thinking of trying it, so it's here.
-
-![Colemak layer](https://raw.githubusercontent.com/noroadsleft/qmk_images/master/keyboards/kc60/keymaps/noroadsleft/colemak.png)
-
-
-----
-
-## Quake 2 Layer
-
-### Layer 3: Quake 2 `_Q2`
-
-- Accessed by holding either `Fn` key and tapping the `/?` key, then tapping `4$`
-
-I used to have some macro craziness here. I've now switched to leaving my main system in QWERTY and having the Dvorak stuff happen on the keyboard, and setting my in-game key assignments to the Dvorak mapping (`.OEU` instead of `ESDF`).
-
-![Quake 2](https://raw.githubusercontent.com/noroadsleft/qmk_images/master/keyboards/kc60/keymaps/noroadsleft/quake2.png)
-
-
-----
-
-## Function Layer
-
-### Layer 4: Function layer - `_FN`
-
-- Accessed by holding either `Fn` key from any base layer
-
-Arrows, Navigation keys (Insert, Home, Page Up, etc.), and Function keys are here. Also has keys for Calculator, Menu, Volume Control, and shortcuts for Select All, Undo, Cut, Copy, and Paste. Numpad Enter for when I'm working in Adobe Photoshop, because it treats Numpad Enter differently from the regular Enter key.
-
-Similarly to my Emulated Numeric Keypad functionality, the `F1` through `F12` keys will change to `F13` through `F24` while `Right Alt` is active. This functionality is documented in [my userspace readme](../../../../users/noroadsleft/readme.md#emulated-extended-function-keys).
-
-![Fn layer](https://raw.githubusercontent.com/noroadsleft/qmk_images/master/keyboards/kc60/keymaps/noroadsleft/function.png)
-
-
-----
-
-## Other Layers
-
-### Layer 5: Numpad layer - `_NP`
-
-- Accessed by holding either `Fn` key and tapping `Space`, from any of the Base Layers
-
-Puts a Numpad on the right-hand side of the keyboard. A through F included for hexadecimal input. Tapping `Space` returns to the previous Base Layer.
-
-![Numpad layer](https://raw.githubusercontent.com/noroadsleft/qmk_images/master/keyboards/kc60/keymaps/noroadsleft/numpad.png)
-
-
-### Layer 6: Macro layer - `_MA`
-
-- Accessed by holding the right-side `Win` key
-
-Has some macros that I use in Git, and keys for use with the [Dynamic Macros feature](https://docs.qmk.fm/#/feature_dynamic_macros).
-
-For macro documentation, see [my userspace readme](../../../../users/noroadsleft/readme.md).
-
-![Macro layer](https://raw.githubusercontent.com/noroadsleft/qmk_images/master/keyboards/kc60/keymaps/noroadsleft/macros.png)
-
-
-### Layer 7: System layer - `_SY`
-
-- Accessed by holding either `Fn` key and tapping the `/?` key
-
-This is where I change my keyboard function. Base layer select on `1` through `4`, Backlight controls on `C` through `N`, Reset on `8*`, Debug on `0)`. Hitting `Esc` exits the layer.
-
-![System layer](https://raw.githubusercontent.com/noroadsleft/qmk_images/master/keyboards/kc60/keymaps/noroadsleft/system.png)
diff --git a/keyboards/kc60/keymaps/noroadsleft/rules.mk b/keyboards/kc60/keymaps/noroadsleft/rules.mk
deleted file mode 100644
index cd417e76b1..0000000000
--- a/keyboards/kc60/keymaps/noroadsleft/rules.mk
+++ /dev/null
@@ -1,6 +0,0 @@
-MOUSEKEY_ENABLE = no # Mouse keys
-# COMMAND_ENABLE = no # Commands for debug and configuration
-SPACE_CADET_ENABLE = no # Space Cadet
-DYNAMIC_MACRO_ENABLE = yes
-
-LTO_ENABLE = yes
diff --git a/keyboards/kc60/keymaps/sgoodwin/keymap.c b/keyboards/kc60/keymaps/sgoodwin/keymap.c
index 75091a1557..e62e89d016 100644
--- a/keyboards/kc60/keymaps/sgoodwin/keymap.c
+++ b/keyboards/kc60/keymaps/sgoodwin/keymap.c
@@ -2,29 +2,29 @@
#include QMK_KEYBOARD_H
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- /*
- * Toggles between colemak and qwerty by tapping the bottom right key.
- * Holding capslock key gives a layer like the KBParadise v60.
- */
- [0] = LAYOUT( /* Basic Colemak */
- KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC,
- KC_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,
- MO(2), KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT, KC_NO, KC_ENT,
- KC_LSFT, KC_NO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_NO, KC_RSFT,
- KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_NO, KC_RGUI, KC_RALT, KC_RCTL, DF(1)
- ),
- [1] = LAYOUT( /* Basic QWERTY */
- KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC,
- KC_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,
- MO(2), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NO, KC_ENT,
- KC_LSFT, KC_NO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_NO, KC_RSFT,
- KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_NO, KC_RGUI, KC_RALT, KC_RCTL, DF(0)
- ),
- [2] = LAYOUT( /* KBP v60-like arrows, media keys, etc */
- KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL,
- KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_UP, BL_UP, BL_DOWN, BL_STEP,
- KC_TRNS, KC_LEFT, KC_DOWN, KC_RIGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_RIGHT, KC_NO, KC_TRNS,
- KC_TRNS, KC_NO, KC_MPRV, KC_MPLY, KC_MNXT, KC_VOLD, KC_VOLU, KC_MUTE, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_NO, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_SPC, KC_NO, DB_TOGG, QK_BOOT, KC_TRNS, KC_NO
- ),
+ /*
+ * Toggles between colemak and qwerty by tapping the bottom right key.
+ * Holding capslock key gives a layer like the KBParadise v60.
+ */
+ [0] = LAYOUT_all( /* Basic Colemak */
+ KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_NO,
+ 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,
+ MO(2), KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT, KC_NO, KC_ENT,
+ KC_LSFT, KC_NO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_NO,
+ KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_RGUI, KC_RALT, KC_RCTL, DF(1)
+ ),
+ [1] = LAYOUT_all( /* Basic QWERTY */
+ KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_NO,
+ 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,
+ MO(2), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NO, KC_ENT,
+ KC_LSFT, KC_NO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_NO,
+ KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_RGUI, KC_RALT, KC_RCTL, DF(0)
+ ),
+ [2] = LAYOUT_all( /* KBP v60-like arrows, media keys, etc */
+ KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_NO,
+ KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_UP, BL_UP, BL_DOWN, BL_STEP,
+ KC_TRNS, KC_LEFT, KC_DOWN, KC_RIGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_RIGHT, KC_NO, KC_TRNS,
+ KC_TRNS, KC_NO, KC_MPRV, KC_MPLY, KC_MNXT, KC_VOLD, KC_VOLU, KC_MUTE, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_NO,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_SPC, DB_TOGG, QK_BOOT, KC_TRNS, KC_NO
+ ),
};
diff --git a/keyboards/kc60/keymaps/stanleylai/config.h b/keyboards/kc60/keymaps/stanleylai/config.h
deleted file mode 100644
index b5024a6d02..0000000000
--- a/keyboards/kc60/keymaps/stanleylai/config.h
+++ /dev/null
@@ -1,3 +0,0 @@
-// Use configs from WS2812 enabled Keymap
-
-#include "../ws2812/config.h"
diff --git a/keyboards/kc60/keymaps/stanleylai/keymap.c b/keyboards/kc60/keymaps/stanleylai/keymap.c
index 9440ab1c78..6a1503ce64 100644
--- a/keyboards/kc60/keymaps/stanleylai/keymap.c
+++ b/keyboards/kc60/keymaps/stanleylai/keymap.c
@@ -5,45 +5,47 @@
// The underscores don't mean anything - you can have a layer called STUFF or any other name.
// Layer names don't all need to be of the same length, obviously, and you can also skip them
// entirely and just use numbers.
-#define _BL 0
-#define _FL 1
-#define _RGBL 2
+enum layer_names {
+ _BL,
+ _FL,
+ _RGBL
+};
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-// See base_layer.png and rgb_layer.png for layout reference
+ // See base_layer.png and rgb_layer.png for layout reference
-// Base Default Layer
-// Mac Modifier Layout. Use BootMagic to toggle GUI and ALT positions.
-[_BL] = LAYOUT(
- QK_GESC, 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_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,
- LT(_FL, KC_CAPS), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN,KC_QUOT, KC_NO, KC_ENT,
- KC_LSFT, KC_NO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH, MO(_FL), KC_UP,
- KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_NO, KC_RGUI,KC_LEFT, KC_DOWN, KC_RGHT),
+ // Base Default Layer
+ // Mac Modifier Layout. Use BootMagic to toggle GUI and ALT positions.
+ [_BL] = LAYOUT_all(
+ QK_GESC, 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_NO,
+ 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,
+ LT(_FL, KC_CAPS), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NO, KC_ENT,
+ KC_LSFT, KC_NO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_UP, MO(_FL),
+ KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_RGUI, KC_LEFT, KC_DOWN, KC_RGHT),
-// Function layer
-[_FL] = LAYOUT(
- KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL,
- KC_NO, KC_MPRV,KC_UP, KC_MNXT,KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_PSCR,KC_SCRL, KC_PAUS, KC_INS,
- KC_TRNS,KC_LEFT,KC_DOWN,KC_RGHT,KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
- KC_TRNS,KC_NO, KC_MUTE,KC_VOLD,KC_VOLU,KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_TRNS, LT(_RGBL, KC_PGUP),
- KC_TRNS,KC_TRNS,KC_TRNS, KC_MPLY, KC_NO, KC_TRNS,KC_HOME, KC_PGDN, KC_END),
+ // Function layer
+ [_FL] = LAYOUT_all(
+ KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_NO,
+ KC_NO, KC_MPRV, KC_UP, KC_MNXT, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_PSCR, KC_SCRL, KC_PAUS, KC_INS,
+ KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
+ KC_TRNS, KC_NO, KC_MUTE, KC_VOLD, KC_VOLU, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, LT(_RGBL, KC_PGUP), KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY, KC_TRNS, KC_HOME, KC_PGDN, KC_END),
-// RGB Layer
-[_RGBL] = LAYOUT(
- #ifdef RGBLIGHT_ENABLE
- QK_BOOT, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
- KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
- KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
- KC_TRNS,KC_NO, RGB_TOG,RGB_MOD,RGB_HUI,RGB_HUD,RGB_SAI,RGB_SAD,RGB_VAI,RGB_VAD,BL_STEP,BL_TOGG, KC_TRNS, KC_TRNS,
- KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_NO, KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS
- #else
- QK_BOOT, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
- KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
- KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
- KC_TRNS,KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, BL_STEP,BL_TOGG, KC_TRNS, KC_TRNS,
- KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_NO, KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS
- #endif
- ),
+ // RGB Layer
+ [_RGBL] = LAYOUT_all(
+ #ifdef RGBLIGHT_ENABLE
+ QK_BOOT, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
+ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
+ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
+ KC_TRNS, KC_NO, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, BL_STEP, BL_TOGG, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
+ #else
+ QK_BOOT, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
+ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
+ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
+ KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, BL_STEP, BL_TOGG, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
+ #endif
+ ),
};
diff --git a/keyboards/kc60/keymaps/via/keymap.c b/keyboards/kc60/keymaps/via/keymap.c
index d8925172fd..877d62e04f 100644
--- a/keyboards/kc60/keymaps/via/keymap.c
+++ b/keyboards/kc60/keymaps/via/keymap.c
@@ -9,7 +9,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, LT(1, KC_APP), KC_RCTL
),
[1] = LAYOUT_all(
- QK_BOOT, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, XXXXXXX, XXXXXXX,
+ QK_BOOT, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, XXXXXXX, XXXXXXX,
XXXXXXX, XXXXXXX, KC_UP, XXXXXXX, XXXXXXX, XXXXXXX, KC_INS, KC_HOME, KC_UP, KC_END, KC_PGUP, KC_PSCR, KC_SCRL, KC_PAUS,
XXXXXXX, KC_LEFT, KC_DOWN, KC_RGHT, XXXXXXX, XXXXXXX, KC_DEL, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, XXXXXXX, XXXXXXX, XXXXXXX,
_______, XXXXXXX, XXXXXXX, BL_DOWN, BL_TOGG, BL_UP, BL_BRTG, XXXXXXX, KC_MUTE, KC_VOLD, KC_VOLU, XXXXXXX, _______, _______,
diff --git a/keyboards/kc60/keymaps/wigguno/keymap.c b/keyboards/kc60/keymaps/wigguno/keymap.c
index 8d1ae5f1c5..ba4571c4e4 100644
--- a/keyboards/kc60/keymaps/wigguno/keymap.c
+++ b/keyboards/kc60/keymaps/wigguno/keymap.c
@@ -6,47 +6,47 @@
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- /* Basic QWERTY
- * ,-----------------------------------------------------------.
- * |Esc | 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|Backsp |
- * |-----------------------------------------------------------|
- * |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \ |
- * |-----------------------------------------------------------|
- * |CAPS | A| S| D| F| G| H| J| K| L| ;| '|Return |
- * |-----------------------------------------------------------|
- * |Shift | Z| X| C| V| B| N| M| ,| .| /|Shift |
- * |-----------------------------------------------------------|
- * |Ctrl|Gui |Alt | Space |Alt |FN |Gui |Ctrl |
- * `-----------------------------------------------------------'
- */
- [0] = LAYOUT(
- KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC,
- KC_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_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NO, KC_ENT,
- KC_LSFT, KC_NO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_NO, KC_RSFT,
- KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_NO, KC_RALT, MO(1), KC_RGUI, KC_RCTL
- ),
+ /* Basic QWERTY
+ * ,-----------------------------------------------------------.
+ * |Esc | 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|Backsp |
+ * |-----------------------------------------------------------|
+ * |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \ |
+ * |-----------------------------------------------------------|
+ * |CAPS | A| S| D| F| G| H| J| K| L| ;| '|Return |
+ * |-----------------------------------------------------------|
+ * |Shift | Z| X| C| V| B| N| M| ,| .| /|Shift |
+ * |-----------------------------------------------------------|
+ * |Ctrl|Gui |Alt | Space |Alt |FN |Gui |Ctrl |
+ * `-----------------------------------------------------------'
+ */
+ [0] = LAYOUT_all(
+ KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_NO,
+ 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_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NO, KC_ENT,
+ KC_LSFT, KC_NO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_NO,
+ KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RGUI, KC_RCTL
+ ),
- /*
- * ,-----------------------------------------------------------.
- * | ` |F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12| Del |
- * |-----------------------------------------------------------|
- * | | | Up| | | | | | | | PS| | | |
- * |-----------------------------------------------------------|
- * | |Lft|Dwn|Rgt| |BL-|BL+| | | | | | |
- * |-----------------------------------------------------------|
- * | |Prv| PP|Nxt| | | | |Hom|End| | |
- * |-----------------------------------------------------------|
- * | Rst| | | BL | | | | |
- * `-----------------------------------------------------------'
- * PS = Print Screen
- * PP = Play/Pause
- */
- [1] = LAYOUT( /* Function Layer */
- KC_GRV, 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_DELETE,
- KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, BL_DOWN, BL_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_MPRV, KC_MPLY, KC_MNXT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_END, KC_TRNS, KC_TRNS, KC_TRNS,
- QK_BOOT, KC_TRNS, KC_TRNS, BL_TOGG, KC_NO, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
- ),
+ /*
+ * ,-----------------------------------------------------------.
+ * | ` |F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12| Del |
+ * |-----------------------------------------------------------|
+ * | | | Up| | | | | | | | PS| | | |
+ * |-----------------------------------------------------------|
+ * | |Lft|Dwn|Rgt| |BL-|BL+| | | | | | |
+ * |-----------------------------------------------------------|
+ * | |Prv| PP|Nxt| | | | |Hom|End| | |
+ * |-----------------------------------------------------------|
+ * | Rst| | | BL | | | | |
+ * `-----------------------------------------------------------'
+ * PS = Print Screen
+ * PP = Play/Pause
+ */
+ [1] = LAYOUT_all( /* Function Layer */
+ KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_NO,
+ KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, BL_DOWN, BL_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_MPRV, KC_MPLY, KC_MNXT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_END, KC_TRNS, KC_TRNS, KC_TRNS,
+ QK_BOOT, KC_TRNS, KC_TRNS, BL_TOGG, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
+ ),
};
diff --git a/keyboards/kc60/matrix_diagram.md b/keyboards/kc60/matrix_diagram.md
new file mode 100644
index 0000000000..d8d63ca5ec
--- /dev/null
+++ b/keyboards/kc60/matrix_diagram.md
@@ -0,0 +1,33 @@
+# Matrix Diagram for NPKC KC60
+
+```
+ ┌───────┐
+ 2u Backspace │0D │
+ └───────┘
+┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
+│00 │01 │02 │03 │04 │05 │06 │07 │08 │09 │0A │0B │0C │0D │49 │
+├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤ ┌─────┐
+│10 │11 │12 │13 │14 │15 │16 │17 │18 │19 │1A │1B │1C │1D │ │ │
+├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ ┌──┴┐2D │ ISO Enter
+│20 │21 │22 │23 │24 │25 │26 │27 │28 │29 │2A │2B │2D │ │2C │ │
+├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤ └───┴────┘
+│30 │31 │32 │33 │34 │35 │36 │37 │38 │39 │3A │3B │3D │3C │
+├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬┴───┤
+│40 │41 │42 │45 │4A │4B │4C │4D │
+└────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
+┌────────┐ ┌──────────┐
+│30 │ 2.25u LShift 2.75u RShift │3D │
+└────────┘ └──────────┘
+ ┌───┬──────┐
+ 1u/1.75u RShift (JIS) │3C │3D │
+ └───┴──────┘
+┌─────┬───┬─────┬───────────────────────────┬─────┬───┬─────┐
+│40 │41 │42 │45 │4B │4C │4D │ Tsangan/WKL/HHKB
+└─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘
+┌─────┬───┬─────┬───────────────────────┬─────┬───┬───┬─────┐
+│40 │41 │42 │45 │4A │4B │4C │4D │ 6u Spacebar
+└─────┴───┴─────┴───────────────────────┴─────┴───┴───┴─────┘
+ ┌───┬─────┬───────────────────────┬─────┬───┐
+ │41 │42 │45 │4A │4B │ True HHKB
+ └───┴─────┴───────────────────────┴─────┴───┘
+```
diff --git a/keyboards/keebio/bdn9/keymaps/bcat/keymap.c b/keyboards/keebio/bdn9/keymaps/bcat/keymap.c
deleted file mode 100644
index 9d4c26f8cb..0000000000
--- a/keyboards/keebio/bdn9/keymaps/bcat/keymap.c
+++ /dev/null
@@ -1,54 +0,0 @@
-/* Copyright 2021 Jonathan Rascher
- *
- * 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 "bcat.h"
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- // clang-format off
- [LAYER_DEFAULT] = LAYOUT(
- KC_MUTE, LY_FN1, BL_BRTG,
- KC_F4, KC_F5, KC_F6,
- KC_F1, KC_F2, KC_F3
- ),
- [LAYER_FUNCTION_1] = LAYOUT(
- EE_CLR, _______, QK_BOOT,
- KC_F10, KC_F11, KC_F12,
- KC_F7, KC_F8, KC_F9
- ),
- // clang-format on
-};
-
-bool encoder_update_user(uint8_t index, bool clockwise) {
- switch (index) {
- /* Top-left encoder (volume) */
- case 0:
- tap_code(clockwise ? KC_VOLU : KC_VOLD);
- return false;
- /* Top-right encoder (backlight brightness) */
- case 1:
-#if defined(BACKLIGHT_ENABLE)
- if (clockwise) {
- backlight_increase();
- } else {
- backlight_decrease();
- }
-#endif
- return false;
- }
- return true;
-}
diff --git a/keyboards/keebio/bdn9/keymaps/bcat/readme.md b/keyboards/keebio/bdn9/keymaps/bcat/readme.md
deleted file mode 100644
index 277d9bfb18..0000000000
--- a/keyboards/keebio/bdn9/keymaps/bcat/readme.md
+++ /dev/null
@@ -1,7 +0,0 @@
-# bcat's BDN9 layout
-
-This is a simple macropad with seven keys and two rotary encoders. We use one
-encoder for volume and the other for backlight brightness. Six of the keys are
-F keys (for gaming, since I use keyboards without function keys normally), with
-the remaining key a layer toggle that switches the function keys between F1-F6
-and F7-F12.
diff --git a/keyboards/keebio/bdn9/keymaps/brandonschlack/config.h b/keyboards/keebio/bdn9/keymaps/brandonschlack/config.h
deleted file mode 100644
index 16d5bf6ea8..0000000000
--- a/keyboards/keebio/bdn9/keymaps/brandonschlack/config.h
+++ /dev/null
@@ -1,34 +0,0 @@
-/* Copyright 2020 Brandon Schlack
- *
- * 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 ENCODER_DIRECTION_FLIP
-
-#define RGBLIGHT_EFFECT_BREATHING // Only have Breathing Animation
-#undef RGBLIGHT_EFFECT_RAINBOW_MOOD
-#undef RGBLIGHT_EFFECT_RAINBOW_SWIRL
-#undef RGBLIGHT_EFFECT_SNAKE
-#undef RGBLIGHT_EFFECT_KNIGHT
-#undef RGBLIGHT_EFFECT_CHRISTMAS
-#undef RGBLIGHT_EFFECT_STATIC_GRADIENT
-#undef RGBLIGHT_EFFECT_RGB_TEST
-#undef RGBLIGHT_EFFECT_ALTERNATING
-#undef RGBLIGHT_EFFECT_TWINKLE
-
-
-/* Mouse Keys Configuration */
-#define MK_3_SPEED
-#define MK_W_INTERVAL_UNMOD 20
diff --git a/keyboards/keebio/bdn9/keymaps/brandonschlack/keymap.c b/keyboards/keebio/bdn9/keymaps/brandonschlack/keymap.c
deleted file mode 100644
index afe150cc60..0000000000
--- a/keyboards/keebio/bdn9/keymaps/brandonschlack/keymap.c
+++ /dev/null
@@ -1,394 +0,0 @@
-/* Copyright 2020 Brandon Schlack
- *
- * 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 "brandonschlack.h"
-
-/**
- * Layer Names
- */
-enum bdn9_layers {
- _REEDER = 0,
- _MEDIA,
- _NAVI,
- _KARABINER,
- LR_NAV,
- LR_REVIEW,
- LR_EDIT
-};
-
-#define _AUDIO 13
-#define _LIGHT 14
-
-/**
- * Keycodes & Macros
- */
-#define DF_REDR DF(_REEDER) // Set Default Layer to Reeder shortcuts
-#define DF_MEDA DF(_MEDIA) // Set Default Layer to Media controls
-#define DF_NAVI DF(_NAVI) // Set Default Layer to Navigation shortcuts
-#define DF_KBNR DF(_KARABINER) // Set Default Layer to Basic Macro keys
-
-enum bdn9_keycodes {
- TG_LNAV = KEYMAP_SAFE_RANGE,
- TG_REVW,
- TG_EDIT
-};
-
-/**
- * Tap Dances
- *
- * Use tap dance for layer changes
- */
-enum bdn9_dances {
- TD_DTAP_ADIO = 0,
- TD_DTAP_LGHT,
- TD_DTAP_ADJT
-};
-// Tap Dance Definitions
-tap_dance_action_t tap_dance_actions[] = {
- [TD_DTAP_ADIO] = ACTION_TAP_DANCE_TRIGGER_LAYER(DOUBLE_TAP, _AUDIO),
- [TD_DTAP_LGHT] = ACTION_TAP_DANCE_TRIGGER_LAYER(DOUBLE_TAP, _LIGHT),
- [TD_DTAP_ADJT] = ACTION_TAP_DANCE_TRIGGER_LAYER(DOUBLE_TAP, _ADJUST),
-};
-// Tap Dance Aliases
-#if defined(RGBLIGHT_ENABLE)
-#define DTP_AVC TD(TD_DTAP_LGHT) //
-#elif defined(AUDIO_ENABLE)
-#define DTP_AVC TD(TD_DTAP_ADIO)
-#endif
-#define DTP_ADJ TD(TD_DTAP_ADJT)
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- /*
- Layer: Reeder
- ┌───────────┐ ┌───────────┐
- │   Items   │  │    Subs   │
- │  Prv  Nxt │  │  Prv  Nxt │
- ├────────┬──┴──┴──┬────────┤
- │ VwBrsw │  Star  │  Sync  │
- ├────────┼────────┼────────┤
- │ CmdTab │ TgRead │  Clear │
- ├────────┼────────┼────────┤
- │ VwStard│ VwUnrd │  VwAll │
- └────────┴────────┴────────┘
- */
- [_REEDER] = LAYOUT(
- KC_H, KC_S, KC_R,
- CMD_TAB, KC_M, DTP_AVC,
- G(KC_1), G(KC_2), DTP_ADJ
- ),
- /*
- Layer: Media
- ┌───────────┐  ┌───────────┐
- │    Vol    │  │   Track   │
- │  Prv  Nxt │  │  Prv  Nxt │
- ├────────┬──┴──┴──┬────────┤
- │  Mute  │ Player │  Sync  │
- ├────────┼────────┼────────┤
- │ YT<10s │ YT Ply │ YT>10s │
- ├────────┼────────┼────────┤
- │  Left  │  Spce  │  Rght  │
- └────────┴────────┴────────┘
- */
- [_MEDIA] = LAYOUT(
- KC_MUTE, MC_PLYR, KC_MPLY,
- KC_J, KC_K, DTP_AVC,
- KC_LEFT, KC_SPC, DTP_ADJ
- ),
- /*
- Layer: Navigation
- ┌───────────┐  ┌───────────┐
- │  Scroll   │  │    Tab    │
- │  Up   Dn  │  │  Prv  Nxt │
- ├────────┬──┴──┴──┬────────┤
- │ ReOTab │ CmdTab │ ClsTab │
- ├────────┼────────┼────────┤
- │  PgDn  │   Up   │  PgUp  │
- ├────────┼────────┼────────┤
- │  Left  │  Down  │  Rght  │
- └────────┴────────┴────────┘
- */
- [_NAVI] = LAYOUT(
- REO_TAB, CMD_TAB, CLS_TAB,
- KC_PGDN, KC_UP, DTP_AVC,
- KC_LEFT, KC_DOWN, DTP_ADJ
- ),
- /*
- Layer: Macro/Karabiner
- ┌───────────┐  ┌───────────┐
- │           │  │           │
- │   -    +  │  │   .    =  │
- ├────────┬──┴──┴──┬────────┤
- │    1   │    2   │    3   │
- ├────────┼────────┼────────┤
- │    4   │    5   │    6   │
- ├────────┼────────┼────────┤
- │    7   │    8   │    9   │
- └────────┴────────┴────────┘
- */
- [_KARABINER] = LAYOUT(
- KC_P1, KC_P2, KC_P3,
- KC_P4, KC_P5, DTP_AVC,
- KC_P7, KC_P8, DTP_ADJ
- ),
- /*
- Layer: Lightroom Navigation
- ┌───────────┐  ┌───────────┐
- │ Thumbnail │  │ Scrl Grid │
- │ Dec   Inc │  │ Up     Dn │
- ├────────┬──┴──┴──┬────────┤
- │ TgRevw │CylGrdVw│ TgEdit │
- ├────────┼────────┼────────┤
- │  Start │   Up   │  End   │
- ├────────┼────────┼────────┤
- │  Left  │  Down  │  Rght  │
- └────────┴────────┴────────┘
- */
- [LR_NAV] = LAYOUT(
- TG_REVW, KC_J, TG_EDIT,
- KC_HOME, KC_UP, DTP_AVC,
- KC_LEFT, KC_DOWN, DTP_ADJ
- ),
- /*
- Layer: Review/Rate
- ┌───────────┐  ┌───────────┐
- │   Stars   │  │   Flag    │
- │ Dec   Inc │  │ Dec   Inc │
- ├────────┬──┴──┴──┬────────┤
- │ TgLNav │ Yellow │ TgEdit │
- ├────────┼────────┼────────┤
- │ NoStar │  Green │ UnFlag │
- ├────────┼────────┼────────┤
- │  Left  │  Blue  │  Rght  │
- └────────┴────────┴────────┘
- */
- [LR_REVIEW] = LAYOUT(
- TG_LNAV, KC_7, TG_EDIT,
- KC_0, KC_8, DTP_AVC,
- KC_LEFT, KC_6, DTP_ADJ
- ),
- /*
- Layer: Edit/Develop
- ┌───────────┐  ┌───────────┐
- │  Sliders  │  │   Value   │
- │ Prv   Nxt │  │ Dec   Inc │
- ├────────┬──┴──┴──┬────────┤
- │ TgRevw │ Bf/Aft │ TgLNav │
- ├────────┼────────┼────────┤
- │ FlgRjt │  Undo  │ FlgPkd │
- ├────────┼────────┼────────┤
- │  Left  │  Redo  │  Rght  │
- └────────┴────────┴────────┘
- */
- [LR_EDIT] = LAYOUT(
- TG_REVW, KC_BSLS, TG_LNAV,
- KC_X, MC_UNDO, DTP_AVC,
- KC_LEFT, MC_REDO, DTP_ADJ
- ),
- /*
- Layer: Light
- ┌───────────┐  ┌───────────┐
- │  RGB Hue  │  │  RGB Sat  │
- │ Prv   Nxt │  │ Dec   Inc │
- ├────────┬──┴──┴──┬────────┤
- │ RGBTgl │  Val+  │ TgLNav │
- ├────────┼────────┼────────┤
- │  Mode- │  Val-  │  Mode+ │
- ├────────┼────────┼────────┤
- │ LyrTgl │ NxtThm │  XXXX  │
- └────────┴────────┴────────┘
- */
- [_LIGHT] = LAYOUT(
- RGB_TOG, RGB_VAI, TG_LGHT,
- RGB_RMOD,RGB_VAD, RGB_MOD,
- RGB_LYR, RGB_THM, XXXXXXX
- ),
- /*
- Layer: ADJUST
- ┌───────────┐  ┌───────────┐
- │    XXXX   │  │   XXXX    │
- │           │  │           │
- ├────────┬──┴──┴──┬────────┤
- │  MAKE  │ Reeder │  Light │
- ├────────┼────────┼────────┤
- │  Media │  Navi  │  Macro │
- ├────────┼────────┼────────┤
- │ LR Rvw │ LR Nav │ LR Edt │
- └────────┴────────┴────────┘
- */
- [_ADJUST] = LAYOUT(
- QM_MAKE, DF_REDR, TG_LGHT,
- DF_MEDA, DF_NAVI, DF_KBNR,
- TG_REVW, TG_LNAV, TG_EDIT
- ),
-};
-
-void keyboard_post_init_keymap(void){
- // Debug to Console by default
- debug_enable = true;
-}
-
-/**
- * Encoder
- */
-const uint16_t PROGMEM encoders[][2][2] = {
- [_REEDER] = {{ KC_K, KC_J }, { KC_P, KC_N }},
- [_MEDIA] = {{ KC_VOLD, KC_VOLU }, { KC_MPRV, KC_MNXT }},
- [_NAVI] = {{ MC_WH_U, MC_WH_D }, { PRV_TAB, NXT_TAB }},
- [_KARABINER] = {{ KC_PMNS, KC_PPLS }, { KC_PDOT, KC_PEQL }},
- [LR_NAV] = {{ KC_MINS, KC_EQL }, { KC_PGDN, KC_PGUP }},
- [LR_REVIEW] = {{ KC_LBRC, KC_RBRC }, { G(KC_DOWN), G(KC_UP) }},
- [LR_EDIT] = {{ KC_COMM, KC_DOT }, { KC_MINS, KC_EQL }},
-};
-
-bool encoder_update_user(uint8_t index, bool clockwise) {
- uint8_t layer = get_highest_layer(layer_state);
-
- switch (layer) {
- case _AUDIO:
- #ifdef AUDIO_ENABLE
- #endif
- break;
- case _LIGHT:
- #ifdef RGBLIGHT_ENABLE
- switch (index) {
- case 0:
- if (clockwise) {
- rgblight_increase_hue();
- } else {
- rgblight_decrease_hue();
- }
- break;
- case 1:
- if (clockwise) {
- rgblight_increase_sat();
- } else {
- rgblight_decrease_sat();
- }
- break;
- }
- #endif
- break;
- default:
- tap_code16(pgm_read_word(&encoders[layer][index][clockwise]));
- break;
- }
- return true;
-}
-
-/**
- * Keycodes
- */
-bool process_record_keymap(uint16_t keycode, keyrecord_t *record) {
- switch (keycode) {
- case TG_LNAV:
- if (!record->event.pressed) {
- tap_code(KC_G);
- layer_move(LR_NAV);
- }
- break;
- case TG_REVW:
- if (!record->event.pressed) {
- tap_code(KC_E);
- layer_move(LR_REVIEW);
- }
- break;
- case TG_EDIT:
- if (!record->event.pressed) {
- tap_code(KC_D);
- layer_move(LR_EDIT);
- }
- break;
- }
- return true;
-}
-
-/**
- * Layer Switch
- */
-layer_state_t layer_state_set_keymap (layer_state_t state) {
- switch (get_highest_layer(state)) {
- case LR_NAV:
- #if defined(RGBLIGHT_ENABLE)
- rgb_layer_helper(HSV_TEAL);
- #endif
- break;
- case LR_REVIEW:
- #if defined(RGBLIGHT_ENABLE)
- rgb_layer_helper(HSV_CYAN);
- #endif
- break;
- case LR_EDIT:
- #if defined(RGBLIGHT_ENABLE)
- rgb_layer_helper(HSV_AZURE);
- #endif
- break;
- default:
- break;
- }
- return state;
-}
-
-/**
- * Tap Dances
- */
-void process_tap_dance_keycode (bool reset, uint8_t toggle_layer) {
- uint16_t keycode = 0;
- switch (toggle_layer) {
- case _LIGHT:
- switch (get_highest_layer(layer_state)) {
- case _REEDER:
- case _MEDIA:
- keycode = KC_L;
- break;
- case _NAVI:
- keycode = KC_PGUP;
- break;
- case _KARABINER:
- keycode = KC_P6;
- break;
- case LR_NAV:
- keycode = KC_END;
- case LR_REVIEW:
- keycode = KC_U;
- case LR_EDIT:
- keycode = KC_P;
- break;
- }
- break;
- case _ADJUST:
- switch (get_highest_layer(layer_state)) {
- case _REEDER:
- keycode = G(KC_3);
- break;
- case _KARABINER:
- keycode = KC_P9;
- break;
- case _MEDIA:
- case _NAVI:
- case LR_NAV:
- case LR_REVIEW:
- case LR_EDIT:
- keycode = KC_RGHT;
- break;
- }
- break;
- }
- if (!reset) {
- register_code16(keycode);
- } else {
- unregister_code16(keycode);
- }
-}
diff --git a/keyboards/keebio/bdn9/keymaps/brandonschlack/readme.md b/keyboards/keebio/bdn9/keymaps/brandonschlack/readme.md
deleted file mode 100644
index 54e460c2d9..0000000000
--- a/keyboards/keebio/bdn9/keymaps/brandonschlack/readme.md
+++ /dev/null
@@ -1,107 +0,0 @@
-# brandonschlack's Macropad/Lightroom layout for BDN9
-##### 2 encoders required
-
-![brandonschlack BDN9](https://i.imgur.com/pai9M0m.jpg)
-
-I built this pad to match my Lightroom photo editing workflow using
-[Lightroom Classic Keyboard shortcuts](https://helpx.adobe.com/lightroom-classic/help/keyboard-shortcuts.html), and added on general macropad layers along the way.
-
-I use macOS, so shortcuts and macros are configured as such. Encoder functionality is in the header of the tables, as clockwise/counterclockwise.
-
----
-
-## Macropad Layers
-
-### Reeder Layer
-This layer is used for browsing [Reeder](https://reederapp.com/), an awesome RSS reader for Mac
-
-| Prev/Next Item | **Knobs** | Prev/Next Subscription |
-| --- | --- | --- |
-| Open Item in Browser | Star Item/Save for Later | Sync |
-| Command+Tab | Toggle Read Status | Clear Read Items |
-| Starred Items | Unread Items | All Items |
-
-
-### Media Layer
-This layer is used for media controls. Player button is a hotkey to focus the current media player with [BeardedSpice](https://beardedspice.github.io/)
-
-| Volume Down/Up | **Knobs** | Prev/Next Track |
-| --- | --- | --- |
-| Mute | Current Player | Play/Pause |
-| YouTube Rewind 10s (J) | YouTube Play/Pause (K) | YouTube Forward 10s (L) |
-| Left | Space | Right |
-
-
-### Navigation Layer
-This layer is used for general window navigation around macOS
-
-| Scroll Up/Down | **Knobs** | Next/Prev Tab |
-| --- | --- | --- |
-| Reopen Tab | Cmd+Tab | Close Tab |
-| Page Down | Up | Page Up |
-| Left | Down | Right |
-
-
-### Macro Layer
-This layer is used to send generic macro keys, meant to be remapped based on current app with [Karabiner](https://pqrs.org/osx/karabiner/)
-
-| +/- | **Knobs** | =/. |
-| --- | --- | --- |
-| 1 | 2 | 3 |
-| 4 | 5 | 6 |
-| 7 | 8 | 9 |
-
-
-## Lightroom Layers
-
-### LR Navigation Layer
-This layer is used for navigating Grid View in the Library Module.
-
-| Inc/Dec Thumbnail Size | **Knobs** | Scroll Up/Dn Grid Thumbnails |
-| --- | --- | --- |
-| Review Layer | Cycle Grid View options | Edit Layer |
-| Start of Grid View | Up | End of Grid View |
-| Left | Down | Right |
-
-
-### Lightroom Review Layer
-This layer is used for Reviewing, Rating, and Culling images with the Loupe View in the Library Module.
-
-| Inc/Dec Star Rating | **Knobs** | Inc/Dec Flag Status |
-| --- | --- | --- |
-| LR Navigation Layer | Yellow Label | Edit Layer |
-| Remove Star Rating | Green Label | Unflag Photo |
-| Left | Blue Label | Right |
-
-
-### Lightroom Edit Layer
-This layer is used for editing photos in the Develop Module
-
-| Next/Prev Basic Panel Settings | **Knobs** | Inc/Dec Selected Slider |
-| --- | --- | --- |
-| Review Layer | Toggle Before View | LR Navigation Layer |
-| Flag Rejected | Undo | Flag Picked |
-| Left | Redo | Right |
-
-
-## Meta Layers
-
-### Light Layer
-This layer is used to control lighting for the pad. Currently nothing is saved in EEPROM, so it will reset after power loss. Also currently my userspace layer colors take priority until I build out that feature. This layer is accessed with a double tap of the middle right key via [tap dance](https://docs.qmk.fm/#/feature_tap_dance). A triple tap of the middle right key will also toggle lights on/off.
-
-| Inc/Dec RGB Hue | **Knobs** | Inc/Dec RGB Saturation |
-| --- | --- | --- |
-| RGB Toggle | RGB Value Increase | Toggle Layer Off |
-| RGB Mode Prev | RGB Value Decrease | RGB Mode Next |
-| RGB Layer Indication | Cycle RGB Themes | XXX |
-
-
-### Adjust Layer
-This layer is used as a meta layer for the pad. This layer is accessed with a double tap of the bottom right key via [tap dance](https://docs.qmk.fm/#/feature_tap_dance).
-
-| XXX | **Knobs** | XXX |
-| --- | --- | --- |
-| MAKE | **Reeder** Layer | **Light** Layer |
-| **Media** Layer | **Navigation** Layer | **Keypad** Layer |
-| **Lightroom Review** Layer | **Lightroom Navigation** Layer | **Lightroom Edit** Layer |
-
diff --git a/keyboards/keebio/bdn9/keymaps/brandonschlack/rules.mk b/keyboards/keebio/bdn9/keymaps/brandonschlack/rules.mk
deleted file mode 100644
index 847ef9d368..0000000000
--- a/keyboards/keebio/bdn9/keymaps/brandonschlack/rules.mk
+++ /dev/null
@@ -1,11 +0,0 @@
-# Use macropad-specific defines, layers, functions. Flash bootloader with QM_MAKE
-IS_MACROPAD = yes
-
-# Use dfu bootloader for Elite-C
-BOOTLOADER = atmel-dfu
-
-# Build Options
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-COMMAND_ENABLE = no # Disable Command, breaks with Mouse Keys set to constant.
-BACKLIGHT_ENABLE = no # No backlights installed
-TAP_DANCE_ENABLE = yes # Use tap dance
diff --git a/keyboards/keebio/bdn9/keymaps/rishka/config.h b/keyboards/keebio/bdn9/keymaps/rishka/config.h
deleted file mode 100644
index 05f1bada99..0000000000
--- a/keyboards/keebio/bdn9/keymaps/rishka/config.h
+++ /dev/null
@@ -1,5 +0,0 @@
-#pragma once
-
-#define QMK_ESC_OUTPUT B4
-#define QMK_ESC_INPUT F7
-#define QMK_LED B0
diff --git a/keyboards/keebio/bdn9/keymaps/rishka/keymap.c b/keyboards/keebio/bdn9/keymaps/rishka/keymap.c
deleted file mode 100644
index f164f66567..0000000000
--- a/keyboards/keebio/bdn9/keymaps/rishka/keymap.c
+++ /dev/null
@@ -1,67 +0,0 @@
-/* Copyright 2019 Danny Nguyen <danny@keeb.io>
- *
- * 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] = {
- /*
- | Knob 1: Vol Dn/Up | | Knob 2: Page Dn/Up |
- | Press: Mute | Home | Press: Play/Pause |
- | Hold: Layer 2 | Up | RGB Mode |
- | Left | Down | Right |
- */
- [0] = LAYOUT(
- KC_MUTE, KC_UP, TO(0),
- KC_F12 , _______ , KC_F1,
- KC_LEFT, KC_DOWN, KC_RGHT
- ),
- /*
- | QK_BOOT | N/A | Media Stop |
- | Held: Layer 2 | Home | RGB Mode |
- | Media Previous | End | Media Next |
- */
- [1] = LAYOUT(
- QK_BOOT, KC_HOME, _______,
- _______, _______, _______,
- KC_MPRV, KC_END , KC_MNXT
- ),
-};
-bool encoder_update_user(uint8_t index, bool clockwise) {
- if (index == 0) {
- if (clockwise) {
- tap_code(KC_VOLD);
- } else {
- tap_code(KC_VOLU);
- }
- }
- else if (index == 1) {
- int mod = 0;
- if (clockwise) {
- mod = 1;
- } else {
- mod = -1;
- }
- int n = 2; //sizeof(PROGMEM);
- int new_layer = ((layer_state + mod) % n + n) % n;
- uprintf("new: %d\n", new_layer);
- layer_on(new_layer);
- for(int i=0; i < n; i++) {
- if (new_layer != i) {
- layer_off(i);
- }
- }
- }
- return true;
-}
diff --git a/keyboards/keebio/bdn9/keymaps/rishka/rules.mk b/keyboards/keebio/bdn9/keymaps/rishka/rules.mk
deleted file mode 100644
index 0613ea8667..0000000000
--- a/keyboards/keebio/bdn9/keymaps/rishka/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-BOOTLOADER = qmk-dfu
diff --git a/keyboards/keebio/cepstrum/rev1/info.json b/keyboards/keebio/cepstrum/rev1/info.json
index b5bf188c92..b4b764c889 100644
--- a/keyboards/keebio/cepstrum/rev1/info.json
+++ b/keyboards/keebio/cepstrum/rev1/info.json
@@ -121,6 +121,7 @@
}
},
"ws2812": {
+ "driver": "vendor",
"pin": "GP18"
},
"rgb_matrix": {
diff --git a/keyboards/keebio/cepstrum/rev1/rules.mk b/keyboards/keebio/cepstrum/rev1/rules.mk
index 8fb51ec82d..161ec22b16 100644
--- a/keyboards/keebio/cepstrum/rev1/rules.mk
+++ b/keyboards/keebio/cepstrum/rev1/rules.mk
@@ -1,2 +1 @@
SERIAL_DRIVER = vendor
-WS2812_DRIVER = vendor
diff --git a/keyboards/keebio/iris/keymaps/333fred/config.h b/keyboards/keebio/iris/keymaps/333fred/config.h
deleted file mode 100644
index 0c0250291c..0000000000
--- a/keyboards/keebio/iris/keymaps/333fred/config.h
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- Copyright (c) 2020 Fred Silberberg
-
- Permission is hereby granted, free of charge, to any person obtaining a copy
- of this software and associated documentation files (the "Software"), to deal
- in the Software without restriction, including without limitation the rights
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- copies of the Software, and to permit persons to whom the Software is
- furnished to do so, subject to the following conditions:
-
- The above copyright notice and this permission notice shall be included in all
- copies or substantial portions of the Software.
-
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- THE SOFTWARE.
-*/
-
-#pragma once
-
-#define EE_HANDS
-#define NO_ACTION_MACRO
-
-#undef TAPPING_TERM
-#define TAPPING_TERM 200
-
-#undef RGBLED_NUM
-#define RGBLED_NUM 24
-#define RGBLIGHT_SLEEP
diff --git a/keyboards/keebio/iris/keymaps/333fred/keymap.c b/keyboards/keebio/iris/keymaps/333fred/keymap.c
deleted file mode 100644
index 1141e6b009..0000000000
--- a/keyboards/keebio/iris/keymaps/333fred/keymap.c
+++ /dev/null
@@ -1,76 +0,0 @@
-/*
- Copyright (c) 2020 Fred Silberberg
-
- Permission is hereby granted, free of charge, to any person obtaining a copy
- of this software and associated documentation files (the "Software"), to deal
- in the Software without restriction, including without limitation the rights
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- copies of the Software, and to permit persons to whom the Software is
- furnished to do so, subject to the following conditions:
-
- The above copyright notice and this permission notice shall be included in all
- copies or substantial portions of the Software.
-
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- THE SOFTWARE.
-*/
-
-#include QMK_KEYBOARD_H
-#include "333fred.h"
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
- [BASE] = LAYOUT(
- //┌──────────────┬────────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┬──────────────┐
- 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_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS,
- //├──────────────┼────────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼──────────────┤
- CTL_T(KC_ESC), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
- //├──────────────┼────────────┼────────┼────────┼────────┼────────┼───────────────┐ ┌────────┼────────┼────────┼────────┼────────┼────────┼──────────────┤
- OSM(MOD_LSFT), CTL_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_DEL, KC_DOWN, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, OSM(MOD_RSFT),
- //└──────────────┴────────────┴────────┴────────┼────────┼────────┼───────────────┤ ├────────┼────────┼────────┼────────┴────────┴────────┴──────────────┘
- KC_LALT, KC_BSPC, TD(TD_SYM_VIM), KC_ENT, KC_SPC, KC_RGUI
- // └────────┴────────┴───────────────┘ └────────┴────────┴────────┘
- ),
-
-
- [SYMB] = LAYOUT(
- //┌────────┬────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┐
- _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,
- //├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤
- _______, KC_EXLM, KC_AT, KC_LPRN, KC_RPRN, KC_PLUS, _______, KC_7, KC_8, KC_9, _______, KC_F12,
- //├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤
- _______, KC_HASH, KC_DLR, KC_LCBR, KC_RCBR, KC_EQL, _______, KC_4, KC_5, KC_6, _______, KC_VOLU,
- //├────────┼────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┤
- _______, KC_PERC, KC_CIRC, KC_LBRC, KC_RBRC, KC_TILD, KC_UP, KC_UP, KC_0, KC_1, KC_2, KC_3, _______, KC_VOLD,
- //└────────┴────────┴────────┴───┬────┴───┬────┴───────┴─────┬───┴────┐ └───┬────┴───┬────┴───┬────┴───┬────┴────────┴────────┴────────┘
- _______, TD(TD_COPY_PASTE), _______, KC_MPRV, KC_MPLY, KC_MNXT
- // └────────┴──────────────────┴────────┘ └────────┴────────┴────────┘
- ),
-
-
- [VIM] = LAYOUT(
- //┌────────┬────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┐
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- //├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤
- _______, _______, _______, _______, KC_LSFT, _______, _______, _______, _______, _______, _______, _______,
- //├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤
- _______, DLEFT, DRIGHT, KC_LCTL, KC_LGUI, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, _______, _______,
- //├────────┼────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┤
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- //└────────┴────────┴────────┴───┬────┴───┬────┴───┬────┴───┬────┘ └───┬────┴───┬────┴───┬────┴───┬────┴────────┴────────┴────────┘
- _______, _______, _______, _______, _______, _______
- // └────────┴────────┴────────┘ └────────┴────────┴────────┘
- ),
-};
-
-bool process_record_user(uint16_t keycode, keyrecord_t *record) {
- tap_dance_process_keycode(keycode);
- return !try_handle_macro(keycode, record);
-}
diff --git a/keyboards/keebio/iris/keymaps/333fred/rules.mk b/keyboards/keebio/iris/keymaps/333fred/rules.mk
deleted file mode 100644
index 5ad63b02b7..0000000000
--- a/keyboards/keebio/iris/keymaps/333fred/rules.mk
+++ /dev/null
@@ -1,3 +0,0 @@
-KEY_LOCK_ENABLE = yes
-CONSOLE_ENABLE = no
-LTO_ENABLE = yes
diff --git a/keyboards/keebio/iris/keymaps/csc027/config.h b/keyboards/keebio/iris/keymaps/csc027/config.h
deleted file mode 100644
index a32a595481..0000000000
--- a/keyboards/keebio/iris/keymaps/csc027/config.h
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
-Copyright 2017 Danny Nguyen <danny@keeb.io>
-
-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 EE_HANDS
-
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
-#undef RGBLED_NUM
-#define RGBLIGHT_EFFECT_BREATHING
-#define RGBLIGHT_EFFECT_RAINBOW_MOOD
-#define RGBLIGHT_EFFECT_RAINBOW_SWIRL
-#define RGBLIGHT_EFFECT_SNAKE
-#define RGBLIGHT_EFFECT_KNIGHT
-#define RGBLIGHT_EFFECT_CHRISTMAS
-#define RGBLIGHT_EFFECT_STATIC_GRADIENT
-#define RGBLIGHT_EFFECT_RGB_TEST
-#define RGBLIGHT_EFFECT_ALTERNATING
-#define RGBLIGHT_EFFECT_TWINKLE
-#define RGBLED_NUM 12
-#define RGBLIGHT_HUE_STEP 8
-#define RGBLIGHT_SAT_STEP 8
-#define RGBLIGHT_VAL_STEP 8
diff --git a/keyboards/keebio/iris/keymaps/csc027/keymap.c b/keyboards/keebio/iris/keymaps/csc027/keymap.c
deleted file mode 100644
index b9bc4c272e..0000000000
--- a/keyboards/keebio/iris/keymaps/csc027/keymap.c
+++ /dev/null
@@ -1,87 +0,0 @@
-/*
-Copyright 2020 Constantine Chen @csc027
-
-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 "csc027.h"
-
-#define LAYOUT_wrapper(...) LAYOUT(__VA_ARGS__)
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [_QW] = LAYOUT_wrapper(
- _____________________QWERTY_L1_____________________, _____________________QWERTY_R1_____________________,
- _____________________QWERTY_L2_____________________, _____________________QWERTY_R2_____________________,
- _____________________QWERTY_L3_____________________, _____________________QWERTY_R3_____________________,
- _____________________QWERTY_L4_____________________, KC_SPC, KC_SPC, _____________________QWERTY_R4_____________________,
- KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_RALT, KC_RGUI
- ),
-
- [_RS] = LAYOUT_wrapper(
- ______________________RAISE_L1_____________________, ______________________RAISE_R1_____________________,
- ______________________RAISE_L2_____________________, ______________________RAISE_R2_____________________,
- ______________________RAISE_L3_____________________, ______________________RAISE_R3_____________________,
- ______________________RAISE_L4_____________________, _______, _______, ______________________RAISE_R4_____________________,
- _______, _______, _______, _______, _______, _______
- ),
-
- [_LW] = LAYOUT_wrapper(
- ______________________LOWER_L1_____________________, ______________________LOWER_R1_____________________,
- ______________________LOWER_L2_____________________, ______________________LOWER_R2_____________________,
- ______________________LOWER_L3_____________________, ______________________LOWER_R3_____________________,
- ______________________LOWER_L4_____________________, _______, _______, ______________________LOWER_R4_____________________,
- _______, _______, _______, _______, _______, _______
- ),
-
- [_MS] = LAYOUT_wrapper(
- ______________________MOUSE_L1_____________________, ______________________MOUSE_R1_____________________,
- ______________________MOUSE_L2_____________________, ______________________MOUSE_R2_____________________,
- ______________________MOUSE_L3_____________________, ______________________MOUSE_R3_____________________,
- ______________________MOUSE_L4_____________________, _______, _______, ______________________MOUSE_R4_____________________,
- _______, _______, _______, _______, _______, _______
- ),
-
- [_WT] = LAYOUT_wrapper(
- ________________WINDOWS_TERMINAL_L1________________, ________________WINDOWS_TERMINAL_R1________________,
- ________________WINDOWS_TERMINAL_L2________________, ________________WINDOWS_TERMINAL_R2________________,
- ________________WINDOWS_TERMINAL_L3________________, ________________WINDOWS_TERMINAL_R3________________,
- ________________WINDOWS_TERMINAL_L4________________, _______, _______, ________________WINDOWS_TERMINAL_R4________________,
- _______, _______, _______, _______, _______, _______
- ),
-
- [_CN] = LAYOUT_wrapper(
- ___________________CONVENIENCE_L1__________________, ___________________CONVENIENCE_R1__________________,
- ___________________CONVENIENCE_L2__________________, ___________________CONVENIENCE_R2__________________,
- ___________________CONVENIENCE_L3__________________, ___________________CONVENIENCE_R3__________________,
- ___________________CONVENIENCE_L4__________________, _______, _______, ___________________CONVENIENCE_R4__________________,
- _______, _______, _______, _______, _______, _______
- ),
-
- [_GG] = LAYOUT(
- KC_5, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC,
- KC_T, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS,
- KC_G, MC_LSEC, KC_A, KC_S, KC_D, KC_F, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_ENT,
- KC_B, KC_LCTL, KC_Z, KC_X, KC_C, KC_SPC, KC_SPC, _______, KC_N, KC_M, KC_COMM, KC_DOT, TO(_CS), TO(_QW),
- KC_LALT, KC_V, KC_SPC, _______, KC_M, KC_B
- ),
-
- [_CS] = LAYOUT(
- XXXXXXX, KC_5, KC_1, KC_2, KC_3, KC_4, KC_6, KC_P7, KC_P8, KC_P9, KC_0, KC_BSPC,
- XXXXXXX, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_Y, KC_P4, KC_P5, KC_P6, XXXXXXX, KC_NUM,
- KC_G, KC_LSFT, KC_A, KC_S, KC_D, KC_F, KC_H, KC_P1, KC_P2, KC_P3, KC_PENT, KC_ESC,
- XXXXXXX, KC_LCTL, XXXXXXX, KC_X, XXXXXXX, XXXXXXX, KC_SPC, _______, KC_N, KC_P0, KC_P0, KC_PDOT, TO(_QW), TO(_QW),
- KC_B, KC_SPC, KC_SPC, _______, KC_N, KC_P0
- )
-};
diff --git a/keyboards/keebio/iris/keymaps/csc027/rules.mk b/keyboards/keebio/iris/keymaps/csc027/rules.mk
deleted file mode 100644
index 6fff152f60..0000000000
--- a/keyboards/keebio/iris/keymaps/csc027/rules.mk
+++ /dev/null
@@ -1,6 +0,0 @@
-BACKLIGHT_ENABLE = yes
-CONSOLE_ENABLE = no
-EXTRAKEY_ENABLE = yes
-LTO_ENABLE = yes
-MOUSEKEY_ENABLE = yes
-NKRO_ENABLE = yes
diff --git a/keyboards/keebio/iris/keymaps/drashna/config.h b/keyboards/keebio/iris/keymaps/drashna/config.h
deleted file mode 100644
index a4d2def67c..0000000000
--- a/keyboards/keebio/iris/keymaps/drashna/config.h
+++ /dev/null
@@ -1,75 +0,0 @@
-/* Copyright 2020 Christopher Courtney, aka Drashna Jael're (@drashna) <drashna@live.com>
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-#pragma once
-
-#define EE_HANDS
-
-#ifdef RGBLIGHT_ENABLE
-# undef RGBLED_NUM
-# define RGBLED_NUM 18 // Number of LEDs
-# undef RGBLED_SPLIT
-# define RGBLED_SPLIT \
- { 9, 9 }
-# define RGBLIGHT_HUE_STEP 8
-# define RGBLIGHT_SAT_STEP 8
-# define RGBLIGHT_VAL_STEP 8
-# define RGBLIGHT_EFFECT_KNIGHT_LENGTH 2
-# define RGBLIGHT_EFFECT_SNAKE_LENGTH 2
-
-# ifndef RGBLIGHT_LIMIT_VAL
-# define RGBLIGHT_LIMIT_VAL 225
-# endif
-#endif // RGBLIGHT_ENABLE
-
-#ifdef AUDIO_ENABLE
-# define AUDIO_PIN C6
-# ifdef RGBLIGHT_ENABLE
-# ifndef __arm__
-# define NO_MUSIC_MODE
-# endif
-# endif // RGBLIGHT_ENABLE
-#endif // AUDIO_ENABLE
-
-#if defined(KEYBOARD_keebio_iris_rev1) || defined(KEYBOARD_keebio_iris_rev2)
-# define QMK_ESC_OUTPUT F6 // usually COL
-# define QMK_ESC_INPUT D7 // usually ROW
-# define QMK_LED B0
-# define QMK_SPEAKER C6
-#endif
-
-#if defined(KEYBOARD_keebio_iris_rev2)
-# undef PRODUCT
-# define PRODUCT "Drashna Hacked Iris Rev 2"
-#elif defined(KEYBOARD_keebio_iris_rev3)
-# undef PRODUCT
-# define PRODUCT "Drashna Hacked Iris Rev 3"
-#elif defined(KEYBOARD_keebio_iris_rev4)
-# undef PRODUCT
-# define PRODUCT "Drashna Hacked Iris Rev 4"
-#endif
-
-#define SHFT_LED1 6
-#define SHFT_LED2 11
-
-#define CTRL_LED1 7
-#define CTRL_LED2 10
-
-#define ALT_LED1 8
-#define GUI_LED1 9
-
-#define BOOTMAGIC_LITE_ROW 4
-#define BOOTMAGIC_LITE_COLUMN 3
diff --git a/keyboards/keebio/iris/keymaps/drashna/keymap.c b/keyboards/keebio/iris/keymaps/drashna/keymap.c
deleted file mode 100644
index 02d0011f5c..0000000000
--- a/keyboards/keebio/iris/keymaps/drashna/keymap.c
+++ /dev/null
@@ -1,112 +0,0 @@
-/* Copyright 2020 Christopher Courtney, aka Drashna Jael're (@drashna) <drashna@live.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 "drashna.h"
-
-/*
- * The `LAYOUT_iris_base` macro is a template to allow the use of identical
- * modifiers for the default layouts (eg QWERTY, Colemak, Dvorak, etc), so
- * that there is no need to set them up for each layout, and modify all of
- * them if I want to change them. This helps to keep consistency and ease
- * of use. K## is a placeholder to pass through the individual keycodes
- */
-
-// clang-format off
-#define LAYOUT_wrapper(...) LAYOUT(__VA_ARGS__)
-#define LAYOUT_iris_base( \
- K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, \
- K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, \
- K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A \
- ) \
- LAYOUT_wrapper( \
- KC_ESC, ________________NUMBER_LEFT________________, ________________NUMBER_RIGHT_______________, KC_MINS, \
- LALT_T(KC_TAB), K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, KC_BSLS, \
- KC_C1R3, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, RALT_T(K1B), \
- OS_LSFT, CTL_T(K21), K22, K23, K24, K25, OS_LALT, OS_RGUI, K26, K27, K28, K29, RCTL_T(K2A), OS_RSFT, \
- KC_GRV, KC_SPC, LT(_LOWER,KC_BSPC), LT(_RAISE,KC_DEL), KC_ENT, RAISE \
- )
-#define LAYOUT_base_wrapper(...) LAYOUT_iris_base(__VA_ARGS__)
-
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [_DEFAULT_LAYER_1] = LAYOUT_base_wrapper(
- _________________QWERTY_L1_________________, _________________QWERTY_R1_________________,
- _________________QWERTY_L2_________________, _________________QWERTY_R2_________________,
- _________________QWERTY_L3_________________, _________________QWERTY_R3_________________
- ),
-
- [_DEFAULT_LAYER_2] = LAYOUT_base_wrapper(
- ______________COLEMAK_MOD_DH_L1____________, ______________COLEMAK_MOD_DH_R1____________,
- ______________COLEMAK_MOD_DH_L2____________, ______________COLEMAK_MOD_DH_R2____________,
- ______________COLEMAK_MOD_DH_L3____________, ______________COLEMAK_MOD_DH_R3____________
- ),
- [_DEFAULT_LAYER_3] = LAYOUT_base_wrapper(
- _________________COLEMAK_L1________________, _________________COLEMAK_R1________________,
- _________________COLEMAK_L2________________, _________________COLEMAK_R2________________,
- _________________COLEMAK_L3________________, _________________COLEMAK_R3________________
- ),
-
- [_DEFAULT_LAYER_4] = LAYOUT_base_wrapper(
- _________________DVORAK_L1_________________, _________________DVORAK_R1_________________,
- _________________DVORAK_L2_________________, _________________DVORAK_R2_________________,
- _________________DVORAK_L3_________________, _________________DVORAK_R3_________________
- ),
-
- [_GAMEPAD] = LAYOUT_wrapper(
- KC_ESC, KC_NO, KC_1, KC_2, KC_3, KC_4, _______, _______, _______, _______, _______, _______,
- KC_F1, KC_K, KC_Q, KC_W, KC_E, KC_R, _______, _______, _______, _______, _______, _______,
- KC_TAB, KC_G, KC_A, KC_S, KC_D, KC_F, _______, _______, _______, _______, _______, _______,
- KC_LCTL, KC_LSFT, KC_Z, KC_X, KC_C, KC_H, TG_GAME, _______, _______, _______, _______, _______, _______, _______,
- KC_GRV, KC_V, KC_SPC, _______, _______, _______
- ),
-
-
- [_LOWER] = LAYOUT_wrapper(
- KC_F12, _________________FUNC_LEFT_________________, _________________FUNC_RIGHT________________, KC_F11,
- KC_TILD, _________________LOWER_L1__________________, _________________LOWER_R1__________________, _______,
- _______, ___________________BLANK___________________, _________________LOWER_R2__________________, KC_PIPE,
- _______, ___________________BLANK___________________, _______, _______, _________________LOWER_R3__________________, _______,
- _______, _______, _______, _______, _______, _______
- ),
-
- [_RAISE] = LAYOUT_wrapper(
- KC_F12, _________________FUNC_LEFT_________________, _________________FUNC_RIGHT________________, KC_F11,
- KC_GRV, _________________RAISE_L1__________________, _________________RAISE_R1__________________, _______,
- _______, _________________RAISE_L2__________________, _________________RAISE_R2__________________, KC_BSLS,
- _______, _________________RAISE_L3__________________, _______, _______, _________________RAISE_R3__________________, _______,
- _______, _______, _______, _______, _______, _______
- ),
-
- [_ADJUST] = LAYOUT_wrapper(
- QK_MAKE, _______, _______, _______, _______, _______, _________________ADJUST_R1_________________, QK_BOOT,
- VRSN, _________________ADJUST_L1_________________, KC_NUKE, _______, _______, _______, _______, EE_CLR,
- _______, _________________ADJUST_L2_________________, _________________ADJUST_R2_________________, TG_MODS,
- _______, _________________ADJUST_L3_________________, TG_GAME, _______, _________________ADJUST_R3_________________, KC_MPLY,
- _______, _______, _______, _______, _______, _______
- )
-
-};
-// clang-format on
-
-void keyboard_post_init_keymap(void) {
-#if BACKLIGHT_ENABLE
- backlight_enable();
- backlight_level(5);
-# ifdef BACKLIGHT_BREATHING
- breathing_enable();
-# endif
-#endif
-}
diff --git a/keyboards/keebio/iris/keymaps/drashna/rules.mk b/keyboards/keebio/iris/keymaps/drashna/rules.mk
deleted file mode 100644
index f531c74a56..0000000000
--- a/keyboards/keebio/iris/keymaps/drashna/rules.mk
+++ /dev/null
@@ -1,16 +0,0 @@
-BOOTMAGIC_ENABLE = no # Enable Bootmagic Lite
-MOUSEKEY_ENABLE = no # Mouse keys
-EXTRAKEY_ENABLE = yes # Audio control and System control
-CONSOLE_ENABLE = no # Console for debug
-COMMAND_ENABLE = no # Commands for debug and configuration
-TAP_DANCE_ENABLE = no
-AUDIO_ENABLE = no
-NKRO_ENABLE = yes
-BACKLIGHT_ENABLE = no
-SWAP_HANDS_ENABLE = no
-BOOTLOADER = qmk-dfu
-
-INDICATOR_LIGHTS = no
-RGBLIGHT_STARTUP_ANIMATION = no
-CUSTOM_UNICODE_ENABLE = no
-CUSTOM_SPLIT_TRANSPORT_SYNC = no
diff --git a/keyboards/keebio/iris/keymaps/edvorakjp/config.h b/keyboards/keebio/iris/keymaps/edvorakjp/config.h
deleted file mode 100644
index d5caa23369..0000000000
--- a/keyboards/keebio/iris/keymaps/edvorakjp/config.h
+++ /dev/null
@@ -1,18 +0,0 @@
-#pragma once
-
-/* Select hand configuration */
-
-#define MASTER_LEFT
-// #define MASTER_RIGHT
-// #define EE_HANDS
-
-#define SWAP_SCLN
-#define TAPPING_TERM 300
-
-#undef RGBLED_NUM
-#define RGBLIGHT_EFFECT_STATIC_GRADIENT
-#define RGBLED_NUM 10
-#define RGBLIGHT_LIMIT_VAL 100
-#define RGBLIGHT_HUE_STEP 10
-#define RGBLIGHT_SAT_STEP 8
-#define RGBLIGHT_VAL_STEP 8
diff --git a/keyboards/keebio/iris/keymaps/edvorakjp/keymap.c b/keyboards/keebio/iris/keymaps/edvorakjp/keymap.c
deleted file mode 100644
index 97c9f48f89..0000000000
--- a/keyboards/keebio/iris/keymaps/edvorakjp/keymap.c
+++ /dev/null
@@ -1,72 +0,0 @@
-#include QMK_KEYBOARD_H
-#include "edvorakjp.h"
-
-#define LAYOUT_wrapper(...) LAYOUT(__VA_ARGS__)
-#define __KC_TRNS_x6__ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
-
-// clang-format off
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [L_EDVORAKJP_BASE] = LAYOUT_wrapper(
- //┌────────┬────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┐
- KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_F21, KC_F22, KC_F23, KC_F24,
- //├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤
- KC_GRV, __EDVORAKJP_BASE_L1__ , __EDVORAKJP_BASE_R1__ , KC_BSLS,
- //├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤
- KC_EQL, __EDVORAKJP_BASE_L2__ , __EDVORAKJP_BASE_R2__ , KC_MINS,
- //├────────┼────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┤
- KC_ESC, __EDVORAKJP_BASE_L3__ , XXXXXXX, XXXXXXX, __EDVORAKJP_BASE_R3__ , KC_SLSH,
- //└────────┴────────┴────────┴───┬────┴───┬────┴───┬────┴───┬────┘ └───┬────┴───┬────┴───┬────┴───┬────┴────────┴────────┴────────┘
- LA_TAB, LS_SPC,LOWER_TD, RAISE_TD, RC_BSPC, RG_ENT
- // └────────┴────────┴────────┘ └────────┴────────┴────────┘
- ),
-
- [L_EDVORAKJP_LOWER] = LAYOUT_wrapper(
- //┌────────┬────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┐
- __KC_TRNS_x6__ , __KC_TRNS_x6__ ,
- //├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤
- XXXXXXX, XXXXXXX, __EDVORAKJP_BRACKET_L__ , XXXXXXX, XXXXXXX, __EDVORAKJP_BRACKET_R__ , XXXXXXX, XXXXXXX,
- //├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤
- __EDVORAKJP_FUNCTION_L__ , __EDVORAKJP_FUNCTION_R__ ,
- //├────────┼────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┤
- KC_PSCR, XXXXXXX, __EDVORAKJP_PAGE__ , XXXXXXX, XXXXXXX, __EDVORAKJP_CURSOR__ , XXXXXXX, XXXXXXX,
- //└────────┴────────┴────────┴───┬────┴───┬────┴───┬────┴───┬────┘ └───┬────┴───┬────┴───┬────┴───┬────┴────────┴────────┴────────┘
- KC_TRNS, KC_TRNS, XXXXXXX, KC_MAC, RC_DEL, KC_TRNS
- // └────────┴────────┴────────┘ └────────┴────────┴────────┘
- ),
-
- [L_EDVORAKJP_RAISE] = LAYOUT_wrapper(
- //┌────────┬────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┐
- __KC_TRNS_x6__ , __KC_TRNS_x6__ ,
- //├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤
- XXXXXXX, XXXXXXX, __EDVORAKJP_SYMBOL_L__ , __EDVORAKJP_SYMBOL_R__ , XXXXXXX, XXXXXXX,
- //├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤
- XXXXXXX, __EDVORAKJP_NUMBER_L__ , __EDVORAKJP_NUMBER_R__ , XXXXXXX,
- //├────────┼────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┤
- KC_PSCR, XXXXXXX, __EDVORAKJP_PAGE__ , XXXXXXX, XXXXXXX, __EDVORAKJP_CURSOR__ , XXXXXXX, XXXXXXX,
- //└────────┴────────┴────────┴───┬────┴───┬────┴───┬────┴───┬────┘ └───┬────┴───┬────┴───┬────┴───┬────┴────────┴────────┴────────┘
- KC_TRNS, KC_TRNS, KC_WIN, XXXXXXX, KC_TRNS, KC_TRNS
- // └────────┴────────┴────────┘ └────────┴────────┴────────┘
- )
-};
-// clang-format on
-
-void matrix_init_keymap(void) {}
-
-#ifdef RGBLIGHT_EFFECT_STATIC_GRADIENT
-layer_state_t layer_state_set_keymap(layer_state_t state) {
- rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_LIGHT);
- switch (get_highest_layer(state)) {
- case L_EDVORAKJP_LOWER:
- rgblight_sethsv_noeeprom(HSV_RED);
- break;
- case L_EDVORAKJP_RAISE:
- rgblight_sethsv_noeeprom(HSV_GREEN);
- break;
- default: // for any other layers, or the default layer
- rgblight_mode(RGBLIGHT_MODE_STATIC_GRADIENT + 3);
- rgblight_sethsv(HSV_RED);
- break;
- }
- return state;
-}
-#endif
diff --git a/keyboards/keebio/iris/keymaps/edvorakjp/readme.md b/keyboards/keebio/iris/keymaps/edvorakjp/readme.md
deleted file mode 100644
index dd406523d2..0000000000
--- a/keyboards/keebio/iris/keymaps/edvorakjp/readme.md
+++ /dev/null
@@ -1,21 +0,0 @@
-# edvorakjp
-
-Epaew's Enhanced Dvorak layout for Japanese Programmer
-see [here](/users/edvorakjp) for more informations.
-
-## License
-
-Copyright 2018 Ryo Maeda epaew.333@gmail.com @epaew
-
-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/>.
diff --git a/keyboards/keebio/iris/keymaps/edvorakjp/rules.mk b/keyboards/keebio/iris/keymaps/edvorakjp/rules.mk
deleted file mode 100644
index 685b3b2cfc..0000000000
--- a/keyboards/keebio/iris/keymaps/edvorakjp/rules.mk
+++ /dev/null
@@ -1,18 +0,0 @@
-# Build Options
-# change to "no" to disable the options, or define them in the Makefile in
-# the appropriate keymap folder that will get included automatically
-#
-BOOTMAGIC_ENABLE = no # Enable Bootmagic Lite
-MOUSEKEY_ENABLE = no # Mouse keys(+4700)
-EXTRAKEY_ENABLE = no # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
-COMMAND_ENABLE = no # Commands for debug and configuration
-NKRO_ENABLE = no # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
-BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
-MIDI_ENABLE = no # MIDI controls
-AUDIO_ENABLE = no # Audio output on port C6
-UNICODE_ENABLE = no # Unicode
-BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
-RGBLIGHT_ENABLE = yes # Enable WS2812 RGB underlight.
-SWAP_HANDS_ENABLE = no # Enable one-hand typing
-TAP_DANCE_ENABLE = yes
diff --git a/keyboards/keebio/iris/keymaps/gary/README.md b/keyboards/keebio/iris/keymaps/gary/README.md
deleted file mode 100644
index fd50751d89..0000000000
--- a/keyboards/keebio/iris/keymaps/gary/README.md
+++ /dev/null
@@ -1,18 +0,0 @@
-# Gary's Iris Layout
-
-My personal keymap for my Iris.
-
-Copyright 2019 Gary @garyjzhao
-
-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/>.
diff --git a/keyboards/keebio/iris/keymaps/gary/config.h b/keyboards/keebio/iris/keymaps/gary/config.h
deleted file mode 100644
index e337f4403f..0000000000
--- a/keyboards/keebio/iris/keymaps/gary/config.h
+++ /dev/null
@@ -1,7 +0,0 @@
-#pragma once
-
-/* Select hand configuration */
-
-#define MASTER_LEFT
-// #define MASTER_RIGHT
-// #define EE_HANDS
diff --git a/keyboards/keebio/iris/keymaps/gary/keymap.c b/keyboards/keebio/iris/keymaps/gary/keymap.c
deleted file mode 100644
index 0a178ecb05..0000000000
--- a/keyboards/keebio/iris/keymaps/gary/keymap.c
+++ /dev/null
@@ -1,47 +0,0 @@
-#include "gary.h"
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
- [_QWERTY] = LAYOUT(
- //,----+----+----+----+----+----. ,----+----+----+----+----+----.
- 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_DEL ,
- //|----+----+----+----+----+----| |----+----+----+----+----+----|
- KC_RASE, 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_NEXT, KC_FULL , KC_N , KC_M ,KC_COMM,KC_DOT ,KC_SLSH,SC_SENT,
- //`----+----+----+--+-+----+----+----/ \----+----+----+----+----+----+----'
- KC_LGUI,KC_LOWR,KC_SPC , KC_GARY, KC_ENT,KC_LALT
- // `----+----+----' `----+----+----'
- ),
-
-
- [_LOWER] = LAYOUT(
- //,----+----+----+----+----+----. ,----+----+----+----+----+----.
- KC_GRV ,KC_EXLM, KC_AT ,KC_HASH,KC_DLR ,KC_PERC, KC_CIRC,KC_AMPR,KC_ASTR,KC_LPRN,KC_RPRN,KC_BSPC,
- //|----+----+----+----+----+----| |----+----+----+----+----+----|
- KC_CLTB,_______,KC_CNTR,KC_UPLF,KC_UPRG,_______, _______,_______,KC_PLUS,KC_LBRC,KC_RBRC,KC_OPASS,
- //|----+----+----+----+----+----| |----+----+----+----+----+----|
- _______,KC_LHLF,KC_RHLF,KC_DNLF,KC_DNRG,_______, _______,_______,KC_MINS,_______,_______,KC_PIPE,
- //|----+----+----+----+----+----+----. ,----|----+----+----+----+----+----|`
- _______,_______,_______,KC_CTLC,_______,_______,_______, _______,_______,_______,_______,KC_EQL ,_______,KC_UNDS ,
- //`----+----+----+--+-+----+----+----/ \----+----+----+----+----+----+----'
- _______,_______,KC_DEL , KC_BSPC ,_______, _______
- // `----+----+----' `----+----+----'
- ),
-
- [_RAISE] = LAYOUT(
- //,----+----+----+----+----+----. ,----+----+----+----+----+----.
- KC_TILD, KC_F1 , KC_F2 , KC_F3 ,KC_SHOT, KC_F5 , KC_F6 , KC_F7 , KC_F8 , KC_F9 ,KC_F10 ,KC_F11 ,
- //|----+----+----+----+----+----| |----+----+----+----+----+----|
- _______,KC_MPRV,KC_MPLY,KC_MNXT,_______,_______, _______,KC_PGUP, KC_UP ,KC_PGDN,_______,_______,
- //|----+----+----+----+----+----| |----+----+----+----+----+----|
- _______,_______,KC_VOLD,KC_VOLU,KC_MUTE,_______, _______,KC_LEFT,KC_DOWN,KC_RGHT,_______,_______,
- //|----+----+----+----+----+----+----. ,----|----+----+----+----+----+----|
- _______,_______,_______,_______,_______,_______,_______, KC_RST,_______,_______,_______,_______,_______,_______,
- //`----+----+----+--+-+----+----+----/ \----+----+----+----+----+----+----'
- _______,KC_LALT,_______, _______,_______, _______
- // `----+----+----' `----+----+----'
- ),
-};
diff --git a/keyboards/keebio/iris/keymaps/gary/rules.mk b/keyboards/keebio/iris/keymaps/gary/rules.mk
deleted file mode 100644
index 2df7e9a203..0000000000
--- a/keyboards/keebio/iris/keymaps/gary/rules.mk
+++ /dev/null
@@ -1,2 +0,0 @@
-RGBLIGHT_ENABLE = no
-EXTRAKEY_ENABLE = yes
diff --git a/keyboards/keebio/iris/keymaps/manna-harbour_miryoku/config.h b/keyboards/keebio/iris/keymaps/manna-harbour_miryoku/config.h
deleted file mode 100644
index 17a89bb1e1..0000000000
--- a/keyboards/keebio/iris/keymaps/manna-harbour_miryoku/config.h
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright 2019 Manna Harbour
-// https://github.com/manna-harbour/miryoku
-
-// 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 XXX KC_NO
-
-#define LAYOUT_miryoku(\
- 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,\
- N30, N31, K32, K33, K34, K35, K36, K37, N38, N39\
-)\
-LAYOUT(\
-XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX,\
-XXX, K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, XXX,\
-XXX, K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, XXX,\
-XXX, K20, K21, K22, K23, K24, XXX, XXX, K25, K26, K27, K28, K29, XXX,\
- K32, K33, K34, K35, K36, K37\
-)
diff --git a/keyboards/keebio/iris/keymaps/manna-harbour_miryoku/keymap.c b/keyboards/keebio/iris/keymaps/manna-harbour_miryoku/keymap.c
deleted file mode 100644
index dbab7f9820..0000000000
--- a/keyboards/keebio/iris/keymaps/manna-harbour_miryoku/keymap.c
+++ /dev/null
@@ -1,4 +0,0 @@
-// Copyright 2019 Manna Harbour
-// https://github.com/manna-harbour/miryoku
-
-// 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/>.
diff --git a/keyboards/keebio/iris/keymaps/mattly/config.h b/keyboards/keebio/iris/keymaps/mattly/config.h
deleted file mode 100644
index a3ee1ec898..0000000000
--- a/keyboards/keebio/iris/keymaps/mattly/config.h
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
-Copyright 2017 Danny Nguyen <danny@keeb.io>
-
-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 USE_I2C
-#define EE_HANDS
-
-#undef RGBLED_NUM
-#define RGBLIGHT_EFFECT_BREATHING
-#undef RGBLIGHT_EFFECT_RAINBOW_MOOD
-#undef RGBLIGHT_EFFECT_RAINBOW_SWIRL
-#undef RGBLIGHT_EFFECT_KNIGHT
-#undef RGBLIGHT_EFFECT_CHRISTMAS
-#undef RGBLIGHT_EFFECT_STATIC_GRADIENT
-#undef RGBLIGHT_EFFECT_RGB_TEST
-#undef RGBLIGHT_EFFECT_ALTERNATING
-#undef RGBLIGHT_EFFECT_TWINKLE
-#undef RGBLIGHT_DEFAULT_MODE
-#define RGBLIGHT_DEFAULT_MODE (RGBLIGHT_MODE_BREATHING + 2)
-#define RGBLED_NUM 12
-#define RGBLIGHT_HUE_STEP 8
-#define RGBLIGHT_SAT_STEP 8
-#define RGBLIGHT_VAL_STEP 8
diff --git a/keyboards/keebio/iris/keymaps/mattly/keymap.c b/keyboards/keebio/iris/keymaps/mattly/keymap.c
deleted file mode 100644
index 0f7121b7be..0000000000
--- a/keyboards/keebio/iris/keymaps/mattly/keymap.c
+++ /dev/null
@@ -1,70 +0,0 @@
-#include QMK_KEYBOARD_H
-#include "mattly.h"
-
-// extern keymap_config_t keymap_config;
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
- [_BASE_MAC] = LAYOUT(
- KC_DEL, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_ESC,
- KC_BSPC, KC_Q, W_CTL, E_ALT, R_GUI, KC_T, KC_Y, U_GUI, I_ALT, O_CTL, KC_P, KC_SCLN,
- KC_CAPS, A_CTL, S_ALT, D_GUI, F_SFT, KC_G, KC_H, J_SFT, K_GUI, L_ALT, MINSCTL, KC_QUOT,
- NAVLOCK, KC_Z, KC_X, KC_C, KC_V, KC_B, ENT_SYM, TAB_NUM, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT,
- ESC_HYP, TAB_NUM, SPC_SFT, SPC_SFT, BSP_SYM, DEL_WRP
-),
-
- [_OVER_WIN] = LAYOUT(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, W_GUI, _______, R_CTL, _______, _______, U_CTL, _______, O_GUI, _______, _______,
- _______, A_GUI, _______, D_CTL, _______, _______, _______, _______, K_CTL, _______, MINSGUI, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______
- ),
-
- [_SYMBOL] = LAYOUT(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, KC_AMPR, KC_GRV, KC_TILD, KC_LBRC, KC_RBRC, KC_LABK, KC_RABK, KC_PLUS, KC_ASTR, XXXXXXX, _______,
- _______, KC_DLR, KC_PERC, KC_EQL, KC_LPRN, KC_RPRN, KC_SCLN, KC_COLN, KC_EXLM, KC_AT, KC_UNDS, _______,
- _______, XXXXXXX, KC_CIRC, KC_HASH, KC_LCBR, KC_RCBR, _______, _______, KC_QUOT, KC_DQUO, KC_PIPE, KC_BSLS, KC_QUES, _______,
- _______, _______, _______, _______, _______, _______
- ),
-
- [_NAVNUM] = LAYOUT(
- M_PVWIN, M_NXWIN, XXXXXXX, M_BPARA, XXXXXXX, KC_HOME, XXXXXXX, KC_SLSH, KC_ASTR, KC_MINS, KC_PLUS, XXXXXXX,
- M_PVTAB, M_NAVFW, M_BWORD, KC_UP, M_FWORD, KC_PGUP, KC_DLR, KC_P7, KC_P8, KC_P9, KC_DOT, XXXXXXX,
- XXXXXXX, M_NAVBK, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, KC_PERC, KC_P4, KC_P5, KC_P6, KC_EQL, XXXXXXX,
- _______, M_NAVFW, M_BLINE, M_NPARA, M_ELINE, KC_END, _______, _______, KC_P0, KC_P1, KC_P2, KC_P3, KC_COMM, _______,
- _______, _______, _______, _______, _______, KC_P0
- ),
- [_NAVNUM_WIN] = LAYOUT(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, W_NAVFW, W_BWORD, _______, W_FWORD, _______, _______, _______, _______, _______, _______, _______,
- _______, W_NAVBK, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______
- ),
-
- [_GAME] = LAYOUT(
- KC_BSPC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL,
- KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_SCLN,
- KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_MINS, KC_QUOT,
- KC_ESC, KC_Z, KC_X, KC_C, KC_V, KC_B, MO(_NAVNUM), MO(_SYMBOL), KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT,
- KC_LCTL, KC_LALT, KC_SPC, KC_SPC, KC_LGUI, KC_LSFT
- ),
-
- [_FUNCT] = LAYOUT(
- KC_F12, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,
- QK_BOOT, M_NAVFW, XXXXXXX, M_NXWIN, XXXXXXX, XXXXXXX, XXXXXXX, RGB_TOG, RGB_M_P, RGB_M_B, XXXXXXX, QK_BOOT,
- DB_TOGG, M_NAVBK, M_PVTAB, M_PVWIN, M_NXTAB, XXXXXXX, XXXXXXX, TOG_WIN, TOG_GAM, XXXXXXX, XXXXXXX, XXXXXXX,
- KC_MUTE, KC_VOLD, KC_VOLU, KC_MRWD, KC_MFFD, KC_MPLY, _______, _______, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD,
- _______, _______, _______, _______, _______, _______
- ),
-[_FUNCT_WIN] = LAYOUT(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, W_NAVFW, _______, W_NXWIN, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, W_NAVBK, W_PVTAB, W_PVWIN, W_NXTAB, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______
- ),
-};
-
diff --git a/keyboards/keebio/iris/keymaps/mattly/readme.md b/keyboards/keebio/iris/keymaps/mattly/readme.md
deleted file mode 100644
index 4e8c7f17c6..0000000000
--- a/keyboards/keebio/iris/keymaps/mattly/readme.md
+++ /dev/null
@@ -1 +0,0 @@
-See my readme in [users/mattly](../../../../../users/mattly/readme.md) \ No newline at end of file
diff --git a/keyboards/keebio/iris/keymaps/mnil/config.h b/keyboards/keebio/iris/keymaps/mnil/config.h
deleted file mode 100644
index e8118c1c4b..0000000000
--- a/keyboards/keebio/iris/keymaps/mnil/config.h
+++ /dev/null
@@ -1,38 +0,0 @@
-/* Copyright 2021 Mats Nilsson
- *
- * 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 EE_HANDS
-
-#undef RGBLED_NUM
-#define RGBLIGHT_EFFECT_BREATHING
-#define RGBLIGHT_EFFECT_RAINBOW_MOOD
-#define RGBLIGHT_EFFECT_RAINBOW_SWIRL
-#define RGBLIGHT_EFFECT_SNAKE
-#define RGBLIGHT_EFFECT_KNIGHT
-#define RGBLIGHT_EFFECT_CHRISTMAS
-#define RGBLIGHT_EFFECT_STATIC_GRADIENT
-#define RGBLIGHT_EFFECT_RGB_TEST
-#define RGBLIGHT_EFFECT_ALTERNATING
-#define RGBLIGHT_EFFECT_TWINKLE
-#define RGBLED_NUM 12
-#define RGBLIGHT_HUE_STEP 8
-#define RGBLIGHT_SAT_STEP 8
-#define RGBLIGHT_VAL_STEP 8
-#define RGBLIGHT_SPLIT \
- { 6, 6 }
-#define RGBLIGHT_SLEEP
diff --git a/keyboards/keebio/iris/keymaps/mnil/keymap.c b/keyboards/keebio/iris/keymaps/mnil/keymap.c
deleted file mode 100644
index 1cac3be141..0000000000
--- a/keyboards/keebio/iris/keymaps/mnil/keymap.c
+++ /dev/null
@@ -1,94 +0,0 @@
-/* Copyright 2021 Mats Nilsson
- *
- * 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 "mnil.h"
-
-const uint8_t RGBLED_BREATHING_INTERVALS[] PROGMEM = {5, 5, 5, 5};
-
-#define HSV_DEFAULT 32, 255, 255
-
-layer_state_t layer_state_set_user(layer_state_t state) {
- state = update_tri_layer_state(state, _SYMBOLS, _NAVIGATION, _NUMPAD);
-
- switch (get_highest_layer(state)) {
- case _NUMPAD:
- rgblight_sethsv_noeeprom(HSV_GREEN);
- break;
- case _NAVIGATION:
- rgblight_sethsv_noeeprom(HSV_MAGENTA);
- break;
- case _SYMBOLS:
- rgblight_sethsv_noeeprom(HSV_AZURE);
- break;
- default: // for any other layers, or the default layer
- rgblight_sethsv_noeeprom(HSV_DEFAULT);
- break;
- }
- return state;
-}
-
-// clang-format off
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [_COLEMAK] = LAYOUT(
- //┌────────┬────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┐
- 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_F, KC_P, KC_B, KC_J, KC_L, KC_U, KC_Y, TD(OAA), KC_NO,
- //├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤
- KC_LSFT, TD(AAE), KC_R, KC_S, KC_T, KC_G, KC_M, KC_N, KC_E, KC_I, KC_O, KC_NO,
- //├────────┼────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┤
- KC_LCTL, KC_Z, KC_X, KC_C, KC_D, KC_V, _NAV_SPC, _SYM_ENT,KC_K, KC_H, KC_COMM, KC_DOT, SE_MINS, KC_LGUI,
- //└────────┴────────┴────────┴───┬────┴───┬────┴───┬────┴───┬────┘ └───┬────┴───┬────┴───┬────┴───┬────┴────────┴────────┴────────┘
- KC_LGUI, SFT_TAB, _NAV_SPC, _SYM_ENT,CTL_BSPC,ALT_DEL),
- // └────────┴────────┴────────┘ └────────┴────────┴────────┘
- [_SYMBOLS] = LAYOUT(
- //┌────────┬────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┐
- KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_TRNS,
- //├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤
- KC_TRNS, KC_NO, SE_PIPE, SE_LBRC, SE_RBRC, KC_NO, S(KC_5), SE_QUES, SE_AT, SE_EQL, SE_DLR, KC_TRNS,
- //├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤
- KC_TRNS, SE_LCBR, SE_RCBR, SE_LPRN, SE_RPRN, KC_NO, SE_PLUS, S(KC_1), S(KC_2), S(KC_3), SE_AMPR, KC_TRNS,
- //├────────┼────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┤
- KC_TRNS, M_TILD, M_CIRC, SE_LABK, SE_RABK, KC_NO, KC_TRNS, KC_TRNS, SE_QUOT, SE_SLSH, SE_BSLS, SE_ASTR, M_BTCK, KC_TRNS,
- //└────────┴────────┴────────┴───┬────┴───┬────┴───┬────┴───┬────┘ └───┬────┴───┬────┴───┬────┴───┬────┴────────┴────────┴────────┘
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ),
- // └────────┴────────┴────────┘ └────────┴────────┴────────┘
- [_NAVIGATION] = LAYOUT(
- //┌────────┬────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┐
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- //├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤
- KC_TRNS, KC_NO, CUT, COPY, PASTE, AUTOFILL, KC_NO, KC_HOME, KC_WH_D, KC_WH_U, KC_END, KC_NO,
- //├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤
- KC_TRNS, KC_ACL0, KC_ACL1, KC_BTN2, KC_BTN1, KC_LCTL, KC_WH_L, KC_MS_L, KC_MS_D, KC_MS_U, KC_MS_R, KC_WH_R,
- //├────────┼────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┤
- KC_TRNS, KC_ACL2, KC_BTN4, KC_BTN3, KC_BTN5, KC_NO, KC_TRNS, KC_TRNS, KC_NO, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_LCTL,
- //└────────┴────────┴────────┴───┬────┴───┬────┴───┬────┴───┬────┘ └───┬────┴───┬────┴───┬────┴───┬────┴────────┴────────┴────────┘
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ),
- // └────────┴────────┴────────┘ └────────┴────────┴────────┘
- [_NUMPAD] = LAYOUT(
- //┌────────┬────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┐
- RGB_TOG, RGB_M_P, RGB_M_B, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, QK_BOOT,
- //├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤
- KC_TRNS, QUIT, WIN, MVWSL , MVWSR, CRYWS, TERM, KC_7, KC_8, KC_9, KC_COMM, KC_NO,
- //├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤
- KC_TRNS, CS_TAB, C_TAB, PRVWS, NXTWS, I3MOD, OPEN, KC_4, KC_5, KC_6, KC_0, KC_NO,
- //├────────┼────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┤
- KC_TRNS, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, MOVWS, KC_TRNS, KC_TRNS, BROWSER, KC_1, KC_2, KC_3, KC_DOT, KC_NO,
- //└────────┴────────┴────────┴───┬────┴───┬────┴───┬────┴───┬────┘ └───┬────┴───┬────┴───┬────┴───┬────┴────────┴────────┴────────┘
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ),
- // └────────┴────────┴────────┘ └────────┴────────┴────────┘
-};
-// clang-format on
diff --git a/keyboards/keebio/iris/keymaps/mnil/readme.md b/keyboards/keebio/iris/keymaps/mnil/readme.md
deleted file mode 100644
index e74eea4715..0000000000
--- a/keyboards/keebio/iris/keymaps/mnil/readme.md
+++ /dev/null
@@ -1,2 +0,0 @@
-# mnil's iris keymap
-Read my user settings [here](../../../../../users/mnil/readme.md) for more details.
diff --git a/keyboards/keebio/iris/keymaps/mnil/rules.mk b/keyboards/keebio/iris/keymaps/mnil/rules.mk
deleted file mode 100644
index 22e6c8fccc..0000000000
--- a/keyboards/keebio/iris/keymaps/mnil/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-RGBLIGHT_ENABLE = yes
diff --git a/keyboards/keebio/iris/keymaps/nstickney/config.h b/keyboards/keebio/iris/keymaps/nstickney/config.h
deleted file mode 100644
index da682cb921..0000000000
--- a/keyboards/keebio/iris/keymaps/nstickney/config.h
+++ /dev/null
@@ -1,20 +0,0 @@
-/* Copyright 2021 @nstickney
- *
- * 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 RGBLED_NUM 12
-#define RGBLIGHT_SPLIT
diff --git a/keyboards/keebio/iris/keymaps/nstickney/keymap.c b/keyboards/keebio/iris/keymaps/nstickney/keymap.c
deleted file mode 100644
index cf53ffd934..0000000000
--- a/keyboards/keebio/iris/keymaps/nstickney/keymap.c
+++ /dev/null
@@ -1,53 +0,0 @@
-/* Copyright 2021 @nstickney
- *
- * 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 "nstickney.h"
-#include "unicodemap.h"
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
- [BASE] = LAYOUT(
- KC_GRV, 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_DEL,
- CC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, CC_QUOT,
- SC_LSPO, KC_Z, KC_X, KC_C, KC_V, KC_B, TD(LOCKS), TD(LAYERS), KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, SC_RSPC,
- AC_SLSH, FC_BSLS, KC_SPC, KC_ENT, FC_MINS, AC_EQL
- ),
-
- [SYMB] = LAYOUT(
- _______, UP(IEX, SS1), UM(SS2), UM(SS3), UP(CUR, GBP), UM(EUR), UM(V14), UM(V12), UM(V34), UP(LSQ, LDQ), UP(RSQ, RDQ), _______,
- _______, UP(A_D, AXD), UP(A_R, ACR), UP(E_A, ECA), UP(REG, CPL), UM(THR), UP(U_D, UCD), UP(U_A, UCA), UP(I_A, ICA), UP(O_A, OCA), UP(O_D, OCD), _______,
- _______, UP(A_A, ACA), UP(S_S, SEC), UP(ETH, ETC), UM(EMD), _______, _______, _______, _______, UP(O_S, OCS), UP(PLC, DEG), UP(ACT, DIS),
- _______, UP(AEL, AEC), _______, UP(CPR, CNT), _______, _______, _______, _______, UP(N_T, NCT), UM(MCR), UP(C_C, CCC), _______, _______, _______,
- UM(IQM), UP(NOT, BKB), _______, _______, UM(YEN), UP(MLT, DIV)
- ),
-
- [NUMP] = LAYOUT(
- _______, _______, KC_P7, KC_P8, KC_P9, KC_PSLS, _______, KC_P7, KC_P8, KC_P9, KC_PSLS, _______,
- _______, _______, KC_P4, KC_P5, KC_P6, KC_PAST, _______, KC_P4, KC_P5, KC_P6, KC_PAST, _______,
- _______, _______, KC_P1, KC_P2, KC_P3, KC_PMNS, _______, KC_P1, KC_P2, KC_P3, KC_PMNS, _______,
- _______, _______, KC_P0, KC_PCMM, KC_PDOT, KC_PPLS, _______, _______, _______, KC_P0, KC_PCMM, KC_PDOT, KC_PPLS, _______,
- _______, _______, _______, KC_PENT, _______, _______
- ),
-
- [FCTN] = LAYOUT(
- KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_SYRQ,
- KC_PSCR, RGB_TOG, KC_HOME, KC_UP, KC_END, KC_PGUP, QK_LOCK, KC_LBRC, KC_RBRC, S(KC_LBRC), S(KC_RBRC), KC_INS,
- KC_PAUS, RGB_VAI, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_BRIU, KC_CLR,
- _______, KC_MPRV, KC_MRWD, KC_MPLY, KC_MFFD, KC_MNXT, KC_F11, KC_F12, KC_MSTP, KC_MUTE, KC_VOLD, KC_VOLU, KC_BRID, _______,
- _______, _______, _______, _______, _______, _______
- )
-
-};
diff --git a/keyboards/keebio/iris/keymaps/pvinis/config.h b/keyboards/keebio/iris/keymaps/pvinis/config.h
deleted file mode 100644
index 861c474e54..0000000000
--- a/keyboards/keebio/iris/keymaps/pvinis/config.h
+++ /dev/null
@@ -1,32 +0,0 @@
-#pragma once
-
-#ifdef PRODUCT
-# undef PRODUCT
-# define PRODUCT "Iris Keyboard - pvinis"
-#endif
-
-// Select hand configuration.
-// #define MASTER_LEFT
-#define MASTER_RIGHT
-// #define EE_HANDS
-
-// Choose pin to use for audio. C6 is the one iris uses.
-#ifdef AUDIO_ENABLE
-# define AUDIO_PIN C6
-# define STARTUP_SONG SONG(NO_SOUND) // No startup song.
-#endif
-
-#ifdef RGBLIGHT_ENABLE
-# undef RGBLED_NUM
-# define RGBLED_NUM 16
-#endif
-
-#ifdef ENCODER_ENABLE
-# define ENCODERS_PAD_A \
- { F5 } // I connected the encoder to F4 and F5.
-# define ENCODERS_PAD_B \
- { F4 }
-// #define ENCODERS_PAD_A_RIGHT { B5 }
-// #define ENCODERS_PAD_B_RIGHT { C6 }
-# define ENCODER_RESOLUTION 2
-#endif
diff --git a/keyboards/keebio/iris/keymaps/pvinis/keymap.c b/keyboards/keebio/iris/keymaps/pvinis/keymap.c
deleted file mode 100644
index 0c8706de6c..0000000000
--- a/keyboards/keebio/iris/keymaps/pvinis/keymap.c
+++ /dev/null
@@ -1,198 +0,0 @@
-// pvinis iris
-// make keebio/iris/rev2:pvinis:avrdude
-// ,-----------------------------. ┌────┬────┬────┬────┬────┬────┐
-// | | | | | | | │ │ │ │ │ │ │
-// |----+----+----+----+----+----| ├────┼────┼────┼────┼────┼────┤
-// | | | | | | | │ │ │ │ │ │ │
-// |----+----+----+----x----x----| ├────╆━━━━╅────┼────┼────┼────┤
-// | | | | | | | │ ┃ ┃ │ │ │ │
-// |----+----+----+----x----x----+----. ┌────┼────╄━━━━╃────┼────┼────┼────┤
-// | | | | | | | | │ │ │ │ │ │ │ │
-// `-------------------+----+----+----/ └┬───┴┬───┴┬───┴┬───┴────┴────┴────┘
-// | | | | │ │ │ │
-// `----+---------' └────┴────┴────┘
-
-#include QMK_KEYBOARD_H
-#include "pvinis.h"
-//#include "iris.h"
-//#include "action_layer.h"
-//#include "eeconfig.h"
-
-#ifdef AUDIO_ENABLE
-# include "audio.h"
-#endif
-
-#ifdef AUDIO_ENABLE
-// #define STARTUP_SONG SONG(SONIC_RING)
-#endif
-
-#ifdef AUDIO_ENABLE
-// float n04[][2] = SONG(CLOSE_ENCOUNTERS_5_NOTE);
-// float n10[][2] = SONG(STARTUP_SOUND);
-// float n11[][2] = SONG(GOODBYE_SOUND);
-// float n12[][2] = SONG(PLANCK_SOUND);
-// float n19[][2] = SONG(MUSIC_ON_SOUND);
-// float n20[][2] = SONG(AUDIO_ON_SOUND);
-// float n29[][2] = SONG(CAPS_LOCK_ON_SOUND);
-// float n30[][2] = SONG(CAPS_LOCK_OFF_SOUND);
-// float n31[][2] = SONG(SCROLL_LOCK_ON_SOUND);
-// float n32[][2] = SONG(SCROLL_LOCK_OFF_SOUND);
-// float n33[][2] = SONG(NUM_LOCK_ON_SOUND);
-// float n34[][2] = SONG(NUM_LOCK_OFF_SOUND);
-// float n40[][2] = SONG(ONE_UP_SOUND);
-// float n49[][2] = SONG(E1M1_DOOM);
-// float n53[][2] = SONG(OLD_SPICE);
-// float n56[][2] = SONG(RICK_ROLL);
-// float n57[][2] = SONG(FF_PRELUDE);
-// RGB_MODE_KNIGHT
-// float n78[][2] = SONG(KATAMARI_ROLLING_STAR);
-#endif
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
- // ,-----------------------------. ,-----------------------------.
- // | | | | |GAME|QWER| | | | | | | |
- // |----+----+----+----+----+----| |----+----+----+----+----+----|
- // |Tab | | | | |CRPL| | | | | | |Del |
- // |----+----+----+----x----x----| |----x----x----+----+----+----|
- // |EscC| | | | | | | | | | | |Ent |
- // |----+----+----+----x----x----+----. ,----|----x----x----+----+----+----|
- // |LSft| | | | | |Home| |End | | | | | |Rsft|
- // `-------------------+----+----+----/ \----+----+----+-------------------'
- // |Cmd |LOWR|Bspc| |Spc |RASE|RAlt|
- // `----+---------' `--------------'
- [LR_BASE] = LAYOUT_wrapper(
- // clang-format off
- KC_MUTE, _______, _______, _______, GAME1 , QWERTY , KC_1 , _______, _______, _______, _______, _______,
- KC_TAB , ___________________________________________, ___________________________________________, KC_DEL ,
- PV_ESCC, ___________________________________________, ___________________________________________, KC_ENT ,
- KC_LSFT, ___________________________________________, _______, _______, _______, _______, _______, _______, _______, KC_RSFT,
- KC_LGUI, SYMBOL , KC_BSPC, KC_SPC , SYSCTL , KC_RALT
- // clang-format on
- ),
-
- // ,-----------------------------. ,-----------------------------.
- // | | NUMBERS_L | | NUMBERS_R | |
- // |----+----+----+----+----+----| |----+----+----+----+----+----|
- // | | | | | |
- // |----+ | | +----|
- // | | QWERTY_L | | QWERTY_R | |
- // |----+ +----. ,----| +----|
- // | | | | | | | |
- // `-------------------+----+----+----/ \----+----+----+-------------------'
- // | | | | | | | |
- // `----+---------' `--------------'
- [LR_QWERTY] = LAYOUT_wrapper(
- // clang-format off
- _______, ________________NUMBERS_L__________________, ________________NUMBERS_R__________________, _______,
- _______, _________________QWERTY_L1_________________, _________________QWERTY_R1_________________, _______,
- _______, _____________MOD_QWERTY_L2_________________, _________________QWERTY_R2_________________, _______,
- _______, _________________QWERTY_L3_________________, _______, _______, _________________QWERTY_R3_________________, _______,
- _______, _______, _______, _______, _______, _______
- // clang-format on
- ),
-
- // ,-----------------------------. ,-----------------------------.
- // | | NUMBERS_L | | NUMBERS_R | |
- // |----+----+----+----+----+----| |----+----+----+----+----+----|
- // | | | | | |
- // |----+ | | +----|
- // | | CARPALX_L | | CARPALX_R | |
- // |----+ +----. ,----| +----|
- // | | | | | | | |
- // `-------------------+----+----+----/ \----+----+----+-------------------'
- // | | | | | | | |
- // `----+---------' `--------------'
- [LR_CARPALX] = LAYOUT_wrapper(
- // clang-format off
- _______, ________________NUMBERS_L__________________, ________________NUMBERS_R__________________, _______,
- _______, ________________CARPALX_L1_________________, ________________CARPALX_R1_________________, _______,
- _______, ________________CARPALX_L2_________________, ________________CARPALX_R2_________________, _______,
- _______, ________________CARPALX_L3_________________, _______, _______, ________________CARPALX_R3_________________, _______,
- _______, _______, _______, _______, _______, _______
- // clang-format on
- ),
-
- [LR_SYMBOL] = LAYOUT_wrapper(
- // clang-format off
- KC_F12 , ______________________F_L__________________, ______________________F_R__________________, KC_F11 ,
- _______, _________________SYMBOL_L1_________________, _________________SYMBOL_R1_________________, _______,
- _______, _________________SYMBOL_L2_________________, _________________SYMBOL_R2_________________, _______,
- _______, _________________SYMBOL_L3_________________, _______, _______, _________________SYMBOL_R3_________________, _______,
- _______, _______, _______, _______, _______, _______
- // clang-format on
- ),
-
- [LR_SYSCTL] = LAYOUT_wrapper(
- // clang-format off
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _________________SYSCTL_L1_________________, _________________SYSCTL_R1_________________, _______,
- _______, _________________SYSCTL_L2_________________, _________________SYSCTL_R2_________________, _______,
- _______, _________________SYSCTL_L3_________________, _______, _______, _________________SYSCTL_R3_________________, _______,
- _______, _______, _______, _______, _______, _______
- // clang-format on
- ),
-
- [LR_KBCTL] = LAYOUT_wrapper(
- // clang-format off
- XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
- XXXXXXX, __________________KBCTL_L1_________________, __________________KBCTL_R1_________________, XXXXXXX,
- XXXXXXX, __________________KBCTL_L2_________________, __________________KBCTL_R2_________________, XXXXXXX,
- BASE , __________________KBCTL_L3_________________, XXXXXXX, XXXXXXX, __________________KBCTL_R3_________________, XXXXXXX,
- XXXXXXX, _______, XXXXXXX, XXXXXXX, _______, XXXXXXX
- // clang-format on
- ),
-
- // ,-----------------------------. ,-----------------------------.
- // | | NUMBERS_L | | NUMBERS_R | |
- // |----+----+----+----+----+----| |----+----+----+----+----+----|
- // | | | | | |
- // |----+ | | +----|
- // |ESC | QWERTY_L | | QWERTY_R | |
- // |----+ +----. ,----| +----|
- // | | | | | | | |
- // `-------------------+----+----+----/ \----+----+----+-------------------'
- // | |SPC | | | | | |
- // `----+---------' `--------------'
- [LR_GAME1] = LAYOUT_wrapper(
- // clang-format off
- _______, ________________NUMBERS_L__________________, ________________NUMBERS_R__________________, KC_BSPC,
- _______, _________________QWERTY_L1_________________, _________________QWERTY_R1_________________, QWERTY ,
- KC_ESC , _________________QWERTY_L2_________________, _________________QWERTY_R2_________________, _______,
- _______, _________________QWERTY_L3_________________, _______, _______, _________________QWERTY_R3_________________, _______,
- _______, _______, KC_SPC , _______, _______, _______
- // clang-format on
- ),
-
- [LR_GAME2] = LAYOUT_wrapper(
- // clang-format off
- _______, ________________NUMBERS_L__________________, ________________NUMBERS_R__________________, KC_BSPC,
- _______, _________________QWERTY_L1_________________, KC_Y , KC_U , KC_UP , KC_O , KC_P , QWERTY ,
- KC_ESC , _________________QWERTY_L2_________________, KC_H , KC_LEFT, KC_DOWN, KC_RGHT, KC_SCLN, _______,
- _______, _________________QWERTY_L3_________________, _______, _______, _________________QWERTY_R3_________________, _______,
- _______, _______, KC_SPC , _______, _______, _______
- // clang-format on
- ),
-};
-
-#ifdef ENCODER_ENABLE
-bool encoder_update_user(uint8_t index, bool clockwise) {
- // if (index == 0) { /* First encoder */
- if (clockwise) {
- tap_code(KC_VOLU);
- } else {
- tap_code(KC_VOLD);
- }
- // }
- return true;
-}
-#endif
-
-bool process_record_keymap(uint16_t keycode, keyrecord_t *record) {
- switch (keycode) {
-#ifdef AUDIO_ENABLE
-// case PV_S04: if (record->event.pressed) PLAY_SONG(n04); return false; break;
-#endif
- }
- return true; // Process everything else normally
-}
diff --git a/keyboards/keebio/iris/keymaps/pvinis/rules.mk b/keyboards/keebio/iris/keymaps/pvinis/rules.mk
deleted file mode 100644
index 1e7e2d417a..0000000000
--- a/keyboards/keebio/iris/keymaps/pvinis/rules.mk
+++ /dev/null
@@ -1,9 +0,0 @@
-TAP_DANCE_ENABLE = yes
-AUDIO_ENABLE = no # piezo speaker sounds
-RGBLIGHT_ENABLE = yes # rgb leds underlight
-ENCODER_ENABLE = yes # rotary knob
-
-# Some extra stuff to make firmware smaller.
-LTO_ENABLE = yes
-CONSOLE_ENABLE = no
-COMMAND_ENABLE = no
diff --git a/keyboards/keebio/iris/keymaps/rs/config.h b/keyboards/keebio/iris/keymaps/rs/config.h
deleted file mode 100644
index 8aed71e202..0000000000
--- a/keyboards/keebio/iris/keymaps/rs/config.h
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
-Copyright 2017 Danny Nguyen <danny@hexwire.com>
-
-This program is free software: you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program. If not, see <http://www.gnu.org/licenses/>.
-*/
-
-#pragma once
-
-/* Select hand configuration */
-
-#define MASTER_LEFT
-// #define MASTER_RIGHT
-// #define EE_HANDS
-
-#define TAPPING_TERM 150
-
-#undef RGBLED_NUM
-#define RGBLED_NUM 6
-#define RGBLIGHT_SLEEP
-#define RGBLIGHT_HUE_STEP 1
-#define RGBLIGHT_SAT_STEP 1
-#define RGBLIGHT_VAL_STEP 1
diff --git a/keyboards/keebio/iris/keymaps/rs/keymap.c b/keyboards/keebio/iris/keymaps/rs/keymap.c
deleted file mode 100644
index 40c62bbc81..0000000000
--- a/keyboards/keebio/iris/keymaps/rs/keymap.c
+++ /dev/null
@@ -1,45 +0,0 @@
-#include QMK_KEYBOARD_H
-#include "rs.h"
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [_QWERTY] = LAYOUT(
- //,----+----+----+----+----+----. ,----+----+----+----+----+----.
- 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_TAB , KC_Q , KC_W , KC_E , KC_R , KC_T , KC_Y , KC_U , KC_I , KC_O , KC_P ,KC_EQL ,
- //|----+----+----+----+----+----| |----+----+----+----+----+----|
- KC_ESCC, 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_SPC, KC_BSPC, KC_N , KC_M ,KC_COMM,KC_DOT ,KC_SLSH,KC_ENTS,
- //`----+----+----+--+-+----+----+----/ \----+----+----+----+----+----+----'
- KC_LALT,KC_LGUI,KC_SPC , KC_BSPC,KC_CODE,KC_FN
- // `----+----+----' `+---+----+----'
- ),
- [_CODE] = LAYOUT(
- //,----+----+----+----+----+----. ,----+----+----+----+----+----.
- _______,_______,_______,_______,_______,_______, _______,_______,_______,_______,_______,_______,
- //|----+----+----+----+----+----| |----+----+----+----+----+----|
- KC_GRV ,KC_EXLM, KC_AT ,KC_HASH, KC_DLR,KC_PERC, KC_CIRC,KC_LPLT,KC_ASTR,KC_RPGT,KC_NEQL,_______,
- //|----+----+----+----+----+----| |----+----+----+----+----+----|
- _______, KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_MINS,KC_LBRC, KC_UP ,KC_RBRC,_______,KC_BSLS,
- //|----+----+----+----+----+----+----. ,----|----+----+----+----+----+----|
- _______, KC_6 , KC_7 , KC_8 , KC_9 , KC_0 ,_______, _______,KC_AMPR,KC_LEFT,KC_DOWN,KC_RGHT,_______,KC_PIPE,
- //`----+----+----+--+-+----+----+----/ \----+----+----+----+----+----+----'
- _______,_______, KC_DOT, _______,_______, _______
- // `----+----+----' `----+----+----'
- ),
- [_FN] = LAYOUT(
- //,----+----+----+----+----+----. ,----+----+----+----+----+----.
- _______, KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_F5 , KC_F6 , KC_F7 , KC_F8 , KC_F9 , KC_F10, KC_F11,
- //|----+----+----+----+----+----| |----+----+----+----+----+----|
- _______,_______,_______,_______,_______,_______, _______,_______,_______,_______,_______,_______,
- //|----+----+----+----+----+----| |----+----+----+----+----+----|
- KC_BLTG,KC_BLUP,_______,_______,_______,KC_BRMU, _______,_______,KC_PGUP,_______,_______,_______,
- //|----+----+----+----+----+----+----. ,----|----+----+----+----+----+----|
- _______,KC_BLDN,_______,_______,KC_RST ,KC_BRMD,_______, KC_VOLU,_______,KC_CTRA,KC_PGDN,KC_CTRE,_______,_______,
- //`----+----+----+--+-+----+----+----/ \----+----+----+----+----+----+----'
- _______,_______, _______, KC_VOLD,KC_MUTE, _______
- // `----+----+----' `----+----+----'
- ),
-};
-
diff --git a/keyboards/keebio/iris/keymaps/rs/readme.md b/keyboards/keebio/iris/keymaps/rs/readme.md
deleted file mode 100644
index d23ab66877..0000000000
--- a/keyboards/keebio/iris/keymaps/rs/readme.md
+++ /dev/null
@@ -1 +0,0 @@
-See [rs readme](../../../../users/rs/readme.md). \ No newline at end of file
diff --git a/keyboards/keebio/iris/keymaps/rs/rules.mk b/keyboards/keebio/iris/keymaps/rs/rules.mk
deleted file mode 100644
index b4f058b4b9..0000000000
--- a/keyboards/keebio/iris/keymaps/rs/rules.mk
+++ /dev/null
@@ -1,2 +0,0 @@
-BACKLIGHT_ENABLE = yes
-BOOTLOADER = atmel-dfu
diff --git a/keyboards/keebio/iris/keymaps/sethBarberee/config.h b/keyboards/keebio/iris/keymaps/sethBarberee/config.h
deleted file mode 100644
index 61aa24ff01..0000000000
--- a/keyboards/keebio/iris/keymaps/sethBarberee/config.h
+++ /dev/null
@@ -1,30 +0,0 @@
-/*
-Copyright 2017 Danny Nguyen <danny@keeb.io>
-
-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
-
-/* Select hand configuration */
-
-//#define MASTER_LEFT
-//#define MASTER_RIGHT
-#define EE_HANDS
-
-#undef RGBLED_NUM
-#define RGBLED_NUM 8
-
-#undef RGBLED_SPLIT
-#define RGBLED_SPLIT { RGBLED_NUM, 0}
diff --git a/keyboards/keebio/iris/keymaps/sethBarberee/keymap.c b/keyboards/keebio/iris/keymaps/sethBarberee/keymap.c
deleted file mode 100644
index b2dc3816f7..0000000000
--- a/keyboards/keebio/iris/keymaps/sethBarberee/keymap.c
+++ /dev/null
@@ -1,82 +0,0 @@
- /* Copyright 2021 SethBarberee <seth.barberee@gmail.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 "sethBarberee.h"
-
-extern backlight_config_t backlight_config;
-
-#define KC_RST QK_BOOT
-#define KC_BL_S BL_STEP
-#define KC_RTOG RGB_TOG
-#define KC_RMOD RGB_MOD
-#define KC_RHUI RGB_HUI
-#define KC_RHUD RGB_HUD
-#define KC_RSAI RGB_SAI
-#define KC_RSAD RGB_SAD
-#define KC_RVAI RGB_VAI
-#define KC_RVAD RGB_VAD
-#define KC_VK VK_TOGG
-
-#define LAYOUT_wrapper(...) LAYOUT(__VA_ARGS__)
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
- [_QWERTY] = LAYOUT_wrapper(
- KC_ECAP, ________________NUMBER_LEFT________________, ________________NUMBER_RIGHT_______________, KC_MINS,
- KC_TAB , _________________QWERTY_L1_________________, _________________QWERTY_R1_________________, KC_DEL ,
- KC_LSFT, _________________QWERTY_L2_________________, _________________QWERTY_R2_________________,
- KC_LCTL, _________________QWERTY_L3_________________, KC_SPC, KC_RASE, _________________QWERTY_R3_________________,KC_RSFT,
- KC_LGUI, KC_LOWR, KC_SPC, KC_BSPC , KC_ENT, KC_LALT
- ),
-
- [_LOWER] = LAYOUT(
- KC_TILD,KC_EXLM, KC_AT ,KC_HASH,KC_DLR ,KC_PERC, KC_CIRC,KC_AMPR,KC_ASTR,KC_LPRN,KC_RPRN,KC_BSPC,
- KC_RST ,_______,_______, KC_UP ,_______,_______, KC_GRV , KC_P7 , KC_P8 , KC_P9 ,_______,_______,
- KC_DEL ,_______,KC_LEFT,KC_DOWN,KC_RGHT,KC_LBRC, KC_RBRC, KC_P4 , KC_P5 , KC_P6 ,KC_PLUS,KC_PIPE,
- KC_BL_S,_______,_______,_______,_______,KC_LCBR,KC_LPRN, KC_RPRN,KC_RCBR, KC_P1 , KC_P2 , KC_P3 ,KC_MINS,_______,
- _______,_______,KC_LPRN, KC_DEL ,_______, KC_P0
- ),
-
- [_RAISE] = LAYOUT(
- KC_F12 , KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_F5 , KC_F6 , KC_F7 , KC_F8 , KC_F9 ,KC_F10 ,KC_F11 ,
- _______,_______,_______,_______,_______,_______, _______, _______,_______,_______,_______,_______,
- _______,KC_MPRV,KC_MNXT,KC_VOLU,KC_PGUP,KC_UNDS, KC_EQL ,KC_HOME,_______,_______,_______,KC_BSLS,
- KC_MUTE,KC_MSTP,KC_MPLY,KC_VOLD,KC_PGDN,KC_MINS,_______, _______,KC_PLUS,KC_END ,_______,_______,_______,_______,
- _______,_______,_______, _______,_______, _______
- ),
-
- [_ADJUST] = LAYOUT(
- //,----+----+----+----+----+----. ,----+----+----+----+----+----.
- _______,_______,_______,_______,_______,_______, _______,_______,_______,_______,_______,_______,
- //|----+----+----+----+----+----| |----+----+----+----+----+----|
- KC_RTOG,KC_RMOD,KC_RHUI,KC_RSAI,KC_RVAI,_______, _______,_______,_______,_______,_______,_______,
- //|----+----+----+----+----+----| |----+----+----+----+----+----|
- KC_VK, _______,KC_RHUD,KC_RSAD,KC_RVAD,_______, _______,_______,_______,_______,_______,_______,
- //|----+----+----+----+----+----+----. ,----|----+----+----+----+----+----|
- KC_BL_S,KC_RST ,_______,_______,_______,_______,_______, _______,_______,_______,_______,_______,_______,_______,
- //`----+----+----+--+-+----+----+----/ \----+----+----+----+----+----+----'
- _______,_______,_______, _______,_______, _______
- // `----+----+----' `----+----+----'
- )
-
-};
-
-void suspend_power_down_keymap(void){
- backlight_config.enable = false; // disable LED backlight
-}
-
-void suspend_wakeup_init_keymap(void){
- backlight_config.enable = true; // enable LED backlight
-}
diff --git a/keyboards/keebio/iris/keymaps/sethBarberee/rules.mk b/keyboards/keebio/iris/keymaps/sethBarberee/rules.mk
deleted file mode 100644
index b282b1aa4c..0000000000
--- a/keyboards/keebio/iris/keymaps/sethBarberee/rules.mk
+++ /dev/null
@@ -1,5 +0,0 @@
-CONSOLE_ENABLE = no
-NKRO_ENABLE = yes
-VELOCIKEY_ENABLE = yes # I like RGB
-TAP_DANCE_ENABLE = yes # fancy fancy Caps
-LTO_ENABLE = yes # Enable link time optimization
diff --git a/keyboards/keebio/iris/keymaps/wanleg/config.h b/keyboards/keebio/iris/keymaps/wanleg/config.h
deleted file mode 100644
index 6e774d9de7..0000000000
--- a/keyboards/keebio/iris/keymaps/wanleg/config.h
+++ /dev/null
@@ -1,30 +0,0 @@
-/*
-Copyright 2017 Danny Nguyen <danny@keeb.io>
-
-This program is free software: you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program. If not, see <http://www.gnu.org/licenses/>.
-*/
-
-#pragma once
-
-#undef USE_I2C
-
-/* Select hand configuration */
-
-// #define MASTER_LEFT
-// #define MASTER_RIGHT
-#define EE_HANDS
-
-#define QMK_ESC_OUTPUT F6 // usually COL
-#define QMK_ESC_INPUT D7 // usually ROW
-#define QMK_LED B0
diff --git a/keyboards/keebio/iris/keymaps/wanleg/keymap.c b/keyboards/keebio/iris/keymaps/wanleg/keymap.c
deleted file mode 100644
index 6f8ff90661..0000000000
--- a/keyboards/keebio/iris/keymaps/wanleg/keymap.c
+++ /dev/null
@@ -1,76 +0,0 @@
-
-#include QMK_KEYBOARD_H
-#include "wanleg.h"
-
-
-#define LAYOUT_iris_base( \
- K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, \
- K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, \
- K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, \
- K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C \
- ) \
- LAYOUT_wrapper( \
- K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, \
- K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, \
- K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, \
- K31, K32, K33, K34, K35, K36, _______, _______, K37, K38, K39, K3A, K3B, K3C, \
- _______, _______, _______, _______, _______, _______ \
- )
-#define LAYOUT_iris_base_wrapper(...) LAYOUT_iris_base(__VA_ARGS__)
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
- [_GK] = LAYOUT_iris_base_wrapper(
- _______________GherkinLike_0_______________,
- _______________GherkinLike_1_______________,
- _______________GherkinLike_2_______________,
- _______________GherkinLike_3_OneHand_______
- ),
- [ONE] = LAYOUT_wrapper(
- _______________Qwerty_Row__0_______________,
- _______________Qwerty_Row__1_______________,
- _______________Qwerty_Row__2_______________,
- KC_LCTL, KC_LGUI, KC_LALT, GHERKIN, SUBTER, SH_T(KC_SPC), _______, _______, SH_T(KC_SPC), SUPRA, KC_RGUI, KC_RALT, GHERKIN, KC_RCTL,
- _______, _______, _______, _______, _______, _______
- ),
- [SUP] = LAYOUT_iris_base_wrapper(
- ________________SUPRA_Row_0________________,
- ________________SUPRA_Row_1________________,
- ________________SUPRA_Row_2________________,
- ________________SUPRA_Row_3________________
- ),
- [SUB] = LAYOUT_iris_base_wrapper(
- _______________SUBTER_Row__0_______________,
- _______________SUBTER_Row__1_______________,
- _______________SUBTER_Row__2_______________,
- _______________SUBTER_Row__3_______________
- ),
- [NUM] = LAYOUT_iris_base_wrapper(
- _______________NUMBERS_Row_0_______________,
- _______________NUMBERS_Row_1_______________,
- _______________NUMBERS_Row_2_______________,
- _______________NUMBERS_Row_3_______________
- ),
- [DIR] = LAYOUT_iris_base_wrapper(
- _____________DIRECTIONS_Row__0_____________,
- _____________DIRECTIONS_Row__1_____________,
- _____________DIRECTIONS_Row__2_____________,
- _______, _______, ONEHAND, _______, _______, _______, _______, _______, _______, _______, _______, _______
- ),
- [ETC] = LAYOUT_iris_base_wrapper(
- ______________ETCETERA_Row__0______________,
- ______________ETCETERA_Row__1______________,
- ______________ETCETERA_Row__2______________,
- ______________ETCETERA_Row__3______________
- )
-
-};
-
-
-void matrix_init_keymap(void) {
- DDRD &= ~(1<<5);
- PORTD &= ~(1<<5);
-
- DDRB &= ~(1<<0);
- PORTB &= ~(1<<0);
-}
diff --git a/keyboards/keebio/iris/keymaps/wanleg/rules.mk b/keyboards/keebio/iris/keymaps/wanleg/rules.mk
deleted file mode 100644
index bbb05a5b48..0000000000
--- a/keyboards/keebio/iris/keymaps/wanleg/rules.mk
+++ /dev/null
@@ -1,5 +0,0 @@
-RGBLIGHT_ENABLE = no
-BACKLIGHT_ENABLE = no
-
-SWAP_HANDS_ENABLE = yes
-BOOTLOADER = qmk-dfu
diff --git a/keyboards/keebio/iris/rev8/info.json b/keyboards/keebio/iris/rev8/info.json
index 7d75640801..998cde201d 100644
--- a/keyboards/keebio/iris/rev8/info.json
+++ b/keyboards/keebio/iris/rev8/info.json
@@ -31,7 +31,9 @@
}
},
"transport": {
- "sync_matrix_state": true
+ "sync" :{
+ "matrix_state": true
+ }
}
},
"processor": "RP2040",
diff --git a/keyboards/keebio/levinson/keymaps/dcompact/keymap.c b/keyboards/keebio/levinson/keymaps/dcompact/keymap.c
index f501ef7cef..0495649c42 100644
--- a/keyboards/keebio/levinson/keymaps/dcompact/keymap.c
+++ b/keyboards/keebio/levinson/keymaps/dcompact/keymap.c
@@ -1,7 +1,5 @@
#include QMK_KEYBOARD_H
-#include "keymap_steno.h"
-
// Custom Keycodes and Combinations Used
#define DEL_SHF SFT_T(KC_DEL)
#define QUAKE LCTL(KC_GRV)
diff --git a/keyboards/keebio/levinson/keymaps/drogglbecher/rules.mk b/keyboards/keebio/levinson/keymaps/drogglbecher/rules.mk
index b2a5451c82..a22dc3d2a9 100644
--- a/keyboards/keebio/levinson/keymaps/drogglbecher/rules.mk
+++ b/keyboards/keebio/levinson/keymaps/drogglbecher/rules.mk
@@ -1,5 +1,4 @@
AUTO_SHIFT_ENABLE = no
-AUTO_SHIFT_MODIFIERS = no
RGBLIGHT_ENABLE = no
BACKLIGHT_ENABLE = no
UNICODE_ENABLE = yes
diff --git a/keyboards/keebio/levinson/keymaps/issmirnov/README.md b/keyboards/keebio/levinson/keymaps/issmirnov/README.md
deleted file mode 100644
index b6a94c6c3d..0000000000
--- a/keyboards/keebio/levinson/keymaps/issmirnov/README.md
+++ /dev/null
@@ -1,15 +0,0 @@
-# Levinson
-
-## Colors
-
-- https://github.com/qmk/qmk_firmware/blob/master/docs/feature_rgblight.md
- - main docs.
-- https://github.com/qmk/qmk_firmware/blob/master/quantum/color.h
- - list of colors
-- https://github.com/qmk/qmk_firmware/blob/master/quantum/rgblight.h
- - list of functions for RGB manipulation
-
-## Troubleshooting
-
-- When in doubt, flash both sides of the keyboard. For some reason that helps with LEDs and reponsiveness.
- - `cd qmk_firmware && make keebio/levinson/rev2:issmirnov:dfu-split-right`
diff --git a/keyboards/keebio/levinson/keymaps/issmirnov/asci-keymap.txt b/keyboards/keebio/levinson/keymaps/issmirnov/asci-keymap.txt
deleted file mode 100644
index aa5bd08b3d..0000000000
--- a/keyboards/keebio/levinson/keymaps/issmirnov/asci-keymap.txt
+++ /dev/null
@@ -1,55 +0,0 @@
- Qwerty
-,-----------------------------------. ,-----------------------------------.
-| Esc | Q | W | E | R | T | | Y | U | I | O | P |⌘ + d|
-|-----+-----+-----+-----+-----+-----| |-----+-----+-----+-----+-----+-----|
-| Tab | A | S | D | F | G | | H | J | K | L |TapTo|Mo(Na|
-|-----+-----+-----+-----+-----+-----| |-----+-----+-----+-----+-----+-----|
-|⇧(1) | Z | X | C | V | B | | N | M | . |Comma|Tg(Nu| ' |
-|-----+-----+-----+-----+-----+-----| |-----+-----+-----+-----+-----+-----|
-|Ctrl | ⌘⇧ | Alt | Mod | ⌫ | Spc | |Enter| Tab | ↑ | ↓ | ← | → |
-`-----------------------------------' ------------------------------------'
-
- Symb
-,-----------------------------------. ,-----------------------------------.
-| | - | @ | { | } | ` | | * | ! | | | % | + | Esc |
-|-----+-----+-----+-----+-----+-----| |-----+-----+-----+-----+-----+-----|
-| | ^ | _ | ( | ) | $ | | # | = | : | ; |TapTo| " |
-|-----+-----+-----+-----+-----+-----| |-----+-----+-----+-----+-----+-----|
-| | < | > | [ | ] | ~ | | & | ? | / | \ |Tg(Nu| ' |
-|-----+-----+-----+-----+-----+-----| |-----+-----+-----+-----+-----+-----|
-| | | | | | | | | | Esc | : | % | 🔒 |
-`-----------------------------------' ------------------------------------'
-
- Nump
-,-----------------------------------. ,-----------------------------------.
-| | No | No |Lgui(| | | | , | 7 | 8 | 9 | |Reset|
-|-----+-----+-----+-----+-----+-----| |-----+-----+-----+-----+-----+-----|
-| | |Lgui(|Lgui(|Lgui(| | | 0 | 4 | 5 | 6 |To(Sy| |
-|-----+-----+-----+-----+-----+-----| |-----+-----+-----+-----+-----+-----|
-| | | | |Audio|Audio| | . | 1 | 2 | 3 |To(Qw| |
-|-----+-----+-----+-----+-----+-----| |-----+-----+-----+-----+-----+-----|
-| | | | | | | | | | | |To(Ov| |
-`-----------------------------------' ------------------------------------'
-
- Overwatch
-,-----------------------------------. ,-----------------------------------.
-| Tab | Q | W | E | R | T | |To(0)| | | | |Clear|
-|-----+-----+-----+-----+-----+-----| |-----+-----+-----+-----+-----+-----|
-|Ctrl | A | S | D | F | P | |RgbMo|RgbMo|RgbVa|RgbVa| |RgbTo|
-|-----+-----+-----+-----+-----+-----| |-----+-----+-----+-----+-----+-----|
-|Lshif| Z | X | C | V |Grave| |RgbMo|RgbMo|RgbMo|RgbMo|RgbMo|RgbMo|
-|-----+-----+-----+-----+-----+-----| |-----+-----+-----+-----+-----+-----|
-|Ctrl | F9 |Pscre| H | R | ⎵ | |RgbHu|RgbHu|RgbSa|RgbSa|RgbMo|RgbMo|
-`-----------------------------------' ------------------------------------'
-
- Navi
-,-----------------------------------. ,-----------------------------------.
-| | | | ↑ | | | | | | | | | |
-|-----+-----+-----+-----+-----+-----| |-----+-----+-----+-----+-----+-----|
-| | | ← | ↓ | → | | | |Ctrl | | | | |
-|-----+-----+-----+-----+-----+-----| |-----+-----+-----+-----+-----+-----|
-| | | | | | | | | | | | | |
-|-----+-----+-----+-----+-----+-----| |-----+-----+-----+-----+-----+-----|
-| | | | | |⌘ + d| | Mod | ⌘⇧ | | | | |
-`-----------------------------------' ------------------------------------'
-
diff --git a/keyboards/keebio/levinson/keymaps/issmirnov/config.h b/keyboards/keebio/levinson/keymaps/issmirnov/config.h
deleted file mode 100644
index 033f6dbfe0..0000000000
--- a/keyboards/keebio/levinson/keymaps/issmirnov/config.h
+++ /dev/null
@@ -1,39 +0,0 @@
-#pragma once
-
-#ifdef RGBLIGHT_ENABLE
- // Enable animations. +5500 bytes
-#define RGBLIGHT_EFFECT_BREATHING
-#define RGBLIGHT_EFFECT_RAINBOW_MOOD
-#define RGBLIGHT_EFFECT_RAINBOW_SWIRL
-#define RGBLIGHT_EFFECT_SNAKE
-#define RGBLIGHT_EFFECT_KNIGHT
-#define RGBLIGHT_EFFECT_CHRISTMAS
-#define RGBLIGHT_EFFECT_STATIC_GRADIENT
-#define RGBLIGHT_EFFECT_RGB_TEST
-#define RGBLIGHT_EFFECT_ALTERNATING
-#define RGBLIGHT_EFFECT_TWINKLE
-
-
- // Map my custom number of LED's
- #undef RGBLED_NUM
- #define RGBLED_NUM 16
- #define RGBLIGHT_LED_MAP { 0, 1, 2, 3, 4, 5, 6, 7, 15, 14, 13, 12, 11, 10, 9, 8 } // When changed, BE SURE to flash EEPROM on both halves and clear it.
-
- // DO NOT USE RGBLED_SPLIT - the slave board will stop responding.
-
- // Turn off RGB when computer sleeps
- #define RGBLIGHT_SLEEP
-
- // custom colors
- #define RGB_CLEAR 0x00, 0x00, 0x00
-
- // MOD indicators
- #define SHFT_LED1 7
- #define GUI_LED1 8
-#endif
-
-#ifdef AUDIO_ENABLE
- #define QMK_SPEAKER C6
- #define AUDIO_PIN C6
- #define NO_MUSIC_MODE // Save 2000 bytes
-#endif
diff --git a/keyboards/keebio/levinson/keymaps/issmirnov/keymap.c b/keyboards/keebio/levinson/keymaps/issmirnov/keymap.c
deleted file mode 100644
index f5fbe16c9d..0000000000
--- a/keyboards/keebio/levinson/keymaps/issmirnov/keymap.c
+++ /dev/null
@@ -1,124 +0,0 @@
-#include "tap_tog.h"
-
-#ifdef AUDIO_ENABLE
- #include "audio.h"
- #include "sounds.h"
-#endif
-
-
-#ifdef RGBLIGHT_ENABLE
- #include "rgb.h"
-#endif
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
-// Run `./qmk show levinson` from parent dir to see this layer.
-[_QWERTY] = LAYOUT_ortho_4x12_wrapper(
-KC_ESC , _________________QWERTY_L1_________________, _________________QWERTY_R1_________________ , APPS ,
-KC_TAB , _________________QWERTY_L2_________________, _________________QWERTY_R2_________________ , MO(_NAVI) ,
-OSMSFT , _________________QWERTY_L3_________________, _________________QWERTY_R3_________________ , KC_QUOTE ,
-KC_LCTL , MODSFT , KC_LALT , KC_LGUI , KC_BSPC , KC_SPC , KC_ENTER , KC_TAB , KC_UP , KC_DOWN , KC_LEFT , KC_RGHT
-), // Note: visualizer expects this closing parens to be right at the start of the line.
-
-// Run `./qmk show levinson` from parent dir to see this layer.
-[_SYMB] = LAYOUT_ortho_4x12_wrapper(
-_______ , _________________SYMB_L1___________________, _________________SYMB_R1___________________ , KC_ESC ,
-_______ , _________________SYMB_L2___________________, _________________SYMB_R2___________________ , KC_DQT ,
-_______ , _________________SYMB_L3___________________, _________________SYMB_R3___________________ , KC_QUOTE ,
-_______ , ___________________BLANK___________________, _______ , _______ , KC_ESC , KC_COLN , KC_PERC , LOCK
-), // Note: visualizer expects this closing parens to be right at the start of the line.
-
-// Run `./qmk show levinson` from parent dir to see this layer.
-[_NUMP] = LAYOUT_ortho_4x12_wrapper(
-_______ , _________________NUMP_L1___________________ , _________________NUMP_R1___________________ , QK_BOOT,
-_______ , _________________NUMP_L2___________________ , _________________NUMP_R2___________________ , _______ ,
-_______ , _________________NUMP_L3___________________ , _________________NUMP_R3___________________ , _______ ,
-_______ , ___________________BLANK___________________ , _______ , _______ , _______ , _______ , TO(_OVERWATCH) , _______
-), // Note: visualizer expects this closing parens to be right at the start of the line.
-
-// Run `./qmk show levinson` from parent dir to see this layer.
-[_OVERWATCH] = LAYOUT_ortho_4x12_wrapper(
-______________OVERWATCH_L1_________________ , TO(0) , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , EE_CLR ,
-______________OVERWATCH_L2_________________ , RGB_MODE_FORWARD , RGB_MODE_REVERSE , RGB_VAI , RGB_VAD , XXXXXXX , RGB_TOG ,
-______________OVERWATCH_L3_________________ , RGB_MODE_PLAIN , RGB_MODE_BREATHE , RGB_MODE_RAINBOW , RGB_MODE_SWIRL , RGB_MODE_SNAKE , RGB_MODE_XMAS ,
-______________OVERWATCH_L4_________________ , KC_SPACE, RGB_HUI , RGB_HUD , RGB_SAI , RGB_SAD , RGB_MODE_RGBTEST , RGB_MODE_GRADIENT
-), // Note: visualizer expects this closing parens to be right at the start of the line.
-
-// Run `./qmk show levinson` from parent dir to see this layer.
-[_NAVI] = LAYOUT_ortho_4x12_wrapper(
-XXXXXXX , _________________NAVI_L1___________________ , _________________NAVI_R1___________________ , XXXXXXX ,
-XXXXXXX , _________________NAVI_L2___________________ , _________________NAVI_R2___________________ , XXXXXXX ,
-XXXXXXX , _________________NAVI_L3___________________ , _________________NAVI_R3___________________ , XXXXXXX ,
-XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , APPS , KC_LGUI , MODSFT , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX
-), // Note: visualizer expects this closing parens to be right at the start of the line.
-
-};
-
-// called by QMK during key processing before the actual key event is handled. Useful for macros.
-bool process_record_user(uint16_t keycode, keyrecord_t *record) {
- switch (keycode) {
- case LOCK:
- if (record->event.pressed) {
- rgblight_mode(RGBLIGHT_MODE_RAINBOW_SWIRL);
- }
- return true; // Let QMK send the press/release events
- break;
-
- case TAP_TOG_LAYER:
- process_tap_tog(_SYMB,record);
- return false;
- break;
- default:
- tap_tog_count = 0; // reset counter.
- tap_tog_layer_other_key_pressed = true; // always set this to true, TAP_TOG_LAYER handlers will handle interpreting this
- break;
- }
- return true;
-}
-
-
-// Runs constantly in the background, in a loop every 100ms or so.
-// Best used for LED status output triggered when user isn't actively typing.
-void matrix_scan_user(void) {
- #ifdef RGBLIGHT_ENABLE
- matrix_scan_rgb();
- #endif // RGBLIGHT_ENABLE
-}
-
-// only runs when when the layer is changed, good for updating LED's and clearing sticky state
-// RGB modes: https://github.com/qmk/qmk_firmware/blob/master/quantum/rgblight.h
-layer_state_t layer_state_set_user(layer_state_t state) {
- #ifdef RGBLIGHT_ENABLE
- layer_state_set_rgb(state);
- #endif
- uint8_t layer = get_highest_layer(state);
- combo_enable(); // by default, enable combos.
- switch (layer) {
- case 0:
- break;
- case 1:
- clear_mods();
- break;
- case 2:
- clear_mods();
- break;
- case _OVERWATCH:
- clear_mods();
- combo_disable(); // We don't want combos in overwatch
- #ifdef AUDIO_ENABLE
- // PLAY_SONG(song_overwatch);
- #endif
- break;
- default:
- break;
- }
- return state;
-};
-
-// Runs boot tasks for keyboard.
-// Plays a welcome song and clears RGB state.
-void matrix_init_user(void) {
- #ifdef RGBLIGHT_ENABLE
- keyboard_post_init_rgb();
- #endif
-}
diff --git a/keyboards/keebio/levinson/keymaps/issmirnov/rgb.c b/keyboards/keebio/levinson/keymaps/issmirnov/rgb.c
deleted file mode 100644
index 0b123bb8d2..0000000000
--- a/keyboards/keebio/levinson/keymaps/issmirnov/rgb.c
+++ /dev/null
@@ -1,61 +0,0 @@
-#include "rgb.h"
-
-// TODO gate this debugging header
-#include <print.h>
-
-// Wired up in layer_state_set_user in keymap.c
-layer_state_t layer_state_set_rgb(layer_state_t state) {
- switch (get_highest_layer(state)) {
- case _QWERTY:
- rgblight_mode(RGBLIGHT_MODE_STATIC_LIGHT);
- rgblight_sethsv_noeeprom(RGB_CLEAR);
- break;
- case _SYMB:
- rgblight_sethsv_noeeprom(HSV_RED);
- break;
- case _NUMP:
- rgblight_sethsv_noeeprom(HSV_GREEN);
- break;
- case _OVERWATCH:
- rgblight_sethsv_noeeprom(HSV_BLUE);
- // TODO set up animated rainbow swirl with overwatch colors.
- // rgblight_mode_noeeprom(RGBLIGHT_MODE_RAINBOW_SWIRL);
- // rgblight_effect_breathing(&animation_status);
- // rgblight_mode_noeeprom(RGBLIGHT_MODE_BREATHING + 3);
- break;
- case _NAVI:
- rgblight_sethsv_noeeprom(HSV_AZURE);
- break;
- default: // for any other layers, or the default layer
- break;
- }
- return state;
-}
-
-
-void keyboard_post_init_rgb(void) {
- rgblight_enable();
- rgblight_mode(RGBLIGHT_MODE_STATIC_LIGHT);
- rgblight_setrgb(RGB_CLEAR);
- uprintf("Reset RGB colors");
-}
-
-void matrix_scan_rgb(void) {
- set_rgb_indicators(get_mods(), get_oneshot_mods());
-}
-
-void set_rgb_indicators(uint8_t this_mod, uint8_t this_osm) {
- if (get_highest_layer(layer_state) == _QWERTY) {
- if ((this_mod | this_osm) & MOD_MASK_SHIFT) {
- rgblight_setrgb_at(RGB_GOLD, SHFT_LED1);
- } else {
- rgblight_setrgb_at(RGB_CLEAR, SHFT_LED1);
- }
-
- if ((this_mod | this_osm) & MOD_MASK_GUI) {
- rgblight_setrgb_purple_at(GUI_LED1);
- } else {
- rgblight_setrgb_at(RGB_CLEAR, GUI_LED1);
- }
- }
-}
diff --git a/keyboards/keebio/levinson/keymaps/issmirnov/rgb.h b/keyboards/keebio/levinson/keymaps/issmirnov/rgb.h
deleted file mode 100644
index 8b14d8571d..0000000000
--- a/keyboards/keebio/levinson/keymaps/issmirnov/rgb.h
+++ /dev/null
@@ -1,15 +0,0 @@
-#pragma once
-#include "quantum.h"
-#include "issmirnov.h"
-
-// Welcome animation when keyboard boots
-void keyboard_post_init_rgb(void);
-
-// If rgb enabled, set underglow for layer
-layer_state_t layer_state_set_rgb(layer_state_t state);
-
-// Enhance matrix scan code. Note: keep this light, since it runs every 100ms
-void matrix_scan_rgb(void);
-
-// Light up SHIFT and GUI indicator when pressed.
-void set_rgb_indicators(uint8_t this_mod, uint8_t this_osm);
diff --git a/keyboards/keebio/levinson/keymaps/issmirnov/rules.mk b/keyboards/keebio/levinson/keymaps/issmirnov/rules.mk
deleted file mode 100644
index 6cbed2f770..0000000000
--- a/keyboards/keebio/levinson/keymaps/issmirnov/rules.mk
+++ /dev/null
@@ -1,14 +0,0 @@
-# Enable RGB underglow
-# https://beta.docs.qmk.fm/features/feature_rgblight
-RGBLIGHT_ENABLE = yes # +5500 bytes
-ifeq ($(strip $(RGBLIGHT_ENABLE)), yes)
- # Include my fancy rgb functions source here
- SRC += rgb.c
-endif
-
-# Disable backlight, since I use RGB underglow.
-# https://beta.docs.qmk.fm/features/feature_backlight
-BACKLIGHT_ENABLE = no
-
-# Control piezo speaker on C6
-AUDIO_ENABLE = yes # +4000 bytes
diff --git a/keyboards/keebio/levinson/keymaps/issmirnov/sounds.h b/keyboards/keebio/levinson/keymaps/issmirnov/sounds.h
deleted file mode 100644
index dac9d276c1..0000000000
--- a/keyboards/keebio/levinson/keymaps/issmirnov/sounds.h
+++ /dev/null
@@ -1,9 +0,0 @@
-// ................................................................ Audio Sounds
-#pragma once
-#ifdef AUDIO_ENABLE
-// Songs come from quantum/audio/song_list.h
-float song_startup [][2] = SONG(STARTUP_SOUND);
-float song_goodbye [][2] = SONG(GOODBYE_SOUND);
-float song_overwatch[][2] = SONG(OVERWATCH_THEME);
-#undef AUDIO_VOICES
-#endif
diff --git a/keyboards/keebio/levinson/keymaps/issmirnov/template.txt b/keyboards/keebio/levinson/keymaps/issmirnov/template.txt
deleted file mode 100644
index 8787cee7b5..0000000000
--- a/keyboards/keebio/levinson/keymaps/issmirnov/template.txt
+++ /dev/null
@@ -1,9 +0,0 @@
-,-----------------------------------. ,-----------------------------------.
-| 0 | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 10 | 11 |
-|-----+-----+-----+-----+-----+-----| |-----+-----+-----+-----+-----+-----|
-| 12 | 13 | 14 | 15 | 16 | 17 | | 18 | 19 | 20 | 21 | 22 | 23 |
-|-----+-----+-----+-----+-----+-----| |-----+-----+-----+-----+-----+-----|
-| 24 | 25 | 26 | 27 | 28 | 29 | | 30 | 31 | 32 | 33 | 34 | 35 |
-|-----+-----+-----+-----+-----+-----| |-----+-----+-----+-----+-----+-----|
-| 36 | 37 | 38 | 39 | 40 | 41 | | 42 | 43 | 44 | 45 | 46 | 47 |
-`-----------------------------------' ------------------------------------'
diff --git a/keyboards/keebio/levinson/keymaps/losinggeneration/README.md b/keyboards/keebio/levinson/keymaps/losinggeneration/README.md
deleted file mode 100644
index 44c904508a..0000000000
--- a/keyboards/keebio/levinson/keymaps/losinggeneration/README.md
+++ /dev/null
@@ -1,28 +0,0 @@
-losinggeneration's Levinson Layout
-============================
-
-See description of the layout in the common folder
-[here](../../../../users/losinggeneration/README.md)
-
-## Features
-- Adjust
- - Removed AGSwap, AGNorm, & Del
- - Added Caps Lock, F1-F12 in a 4x3 grid, backlight control, arrow cluster,
- and layer transitions to the new layers.
- - Moved Reset & Audio control to the right side
-
-## Layouts
-
-### Adjust (Lower + Raise)
-
-```
- ,-----------------------------------------..-----------------------------------------.
- | | F1 | F2 | F3 | F4 |BL Off|| RESET| Game |Numpad|Mouse | |Sleep |
- |------+------+------+------+------+------||------+------+------+------+------+------|
- | | F5 | F6 | F7 | F8 |BL Tg ||Aud on|Qwerty|Colmak|Workmn|Dvorak| |
- |------+------+------+------+------+------||------+------+------+------+------+------|
- | CAPS | F9 | F10 | F11 | F12 |BL On ||Audoff| | | | Up | |
- |------+------+------+------+------+------||------+------+------+------+------+------|
- | | | | | | || | | XXX | Left | Down |Right |
- `-----------------------------------------''-----------------------------------------'
-```
diff --git a/keyboards/keebio/levinson/keymaps/losinggeneration/config.h b/keyboards/keebio/levinson/keymaps/losinggeneration/config.h
deleted file mode 100644
index 5c8956ab69..0000000000
--- a/keyboards/keebio/levinson/keymaps/losinggeneration/config.h
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
-Copyright 2017 Danny Nguyen <danny@hexwire.com>
-Copyright 2018 Harley Laue <losinggeneration@gmail.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
-long with this program. If not, see <http://www.gnu.org/licenses/>.
-*/
-
-#pragma once
-
-/* Select hand configuration */
-
-#define MASTER_LEFT
-/* #define _MASTER_RIGHT */
-/* #define EE_HANDS */
-
-#undef RGBLED_NUM
-#define RGBLIGHT_EFFECT_BREATHING
-#define RGBLIGHT_EFFECT_RAINBOW_MOOD
-#define RGBLIGHT_EFFECT_RAINBOW_SWIRL
-#define RGBLIGHT_EFFECT_SNAKE
-#define RGBLIGHT_EFFECT_KNIGHT
-#define RGBLIGHT_EFFECT_CHRISTMAS
-#define RGBLIGHT_EFFECT_STATIC_GRADIENT
-#define RGBLIGHT_EFFECT_RGB_TEST
-#define RGBLIGHT_EFFECT_ALTERNATING
-#define RGBLIGHT_EFFECT_TWINKLE
-#define RGBLED_NUM 12
-#define RGBLIGHT_HUE_STEP 8
-#define RGBLIGHT_SAT_STEP 8
-#define RGBLIGHT_VAL_STEP 8
diff --git a/keyboards/keebio/levinson/keymaps/losinggeneration/keymap.c b/keyboards/keebio/levinson/keymaps/losinggeneration/keymap.c
deleted file mode 100644
index d943d1cc16..0000000000
--- a/keyboards/keebio/levinson/keymaps/losinggeneration/keymap.c
+++ /dev/null
@@ -1,38 +0,0 @@
-#include QMK_KEYBOARD_H
-#include "losinggeneration-config.h"
-#include "losinggeneration-keymap.h"
-
-extern keymap_config_t keymap_config;
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
-[_QWERTY] = CATMAP( QWERTY_LAYER ),
-[_COLEMAK] = CATMAP( COLEMAK_LAYER ),
-[_WORKMAN] = CATMAP( WORKMAN_LAYER ),
-[_DVORAK] = CATMAP( DVORAK_LAYER ),
-[_GAME] = CATMAP( GAME_LAYER ),
-[_NUMPAD] = CATMAP( NUMPAD_LAYER ),
-[_MOUSE] = CATMAP( MOUSE_LAYER ),
-[_LOWER] = CATMAP( LOWER_LAYER ),
-[_RAISE] = CATMAP( RAISE_LAYER ),
-
-/* Adjust (Lower + Raise)
- * ,-----------------------------------------..-----------------------------------------.
- * | | F1 | F2 | F3 | F4 |BL Off|| QK_BOOT| Game |Numpad|Mouse | |Sleep |
- * |------+------+------+------+------+------||------+------+------+------+------+------|
- * | | F5 | F6 | F7 | F8 |BL Tg ||Aud on|Qwerty|Colmak|Workmn|Dvorak| |
- * |------+------+------+------+------+------||------+------+------+------+------+------|
- * | CAPS | F9 | F10 | F11 | F12 |BL On ||Audoff| | | | Up | |
- * |------+------+------+------+------+------||------+------+------+------+------+------|
- * | | | | | | || | | XXX | Left | Down |Right |
- * `-----------------------------------------''-----------------------------------------'
- */
-[_ADJUST] = CATMAP(
- _______, KC_F1 , KC_F2 , KC_F3 , KC_F4 , BL_OFF , QK_BOOT, TO_GAME, TO_NUM , TO_MS , _______, KC_SLEP,
- _______, KC_F5 , KC_F6 , KC_F7 , KC_F8 , BL_TOGG, AU_ON , QWERTY , COLEMAK, WORKMAN, DVORAK , _______,
- KC_CAPS, KC_F9 , KC_F10, KC_F11 , KC_F12 , BL_ON , AU_OFF , _______, _______, _______, KC_UP , _______,
- _______, _______, _______, _______, _______, _______, _______, _______, XXXXXXX, KC_LEFT, KC_DOWN, KC_RGHT
-)
-
-};
-
diff --git a/keyboards/keebio/levinson/keymaps/losinggeneration/rules.mk b/keyboards/keebio/levinson/keymaps/losinggeneration/rules.mk
deleted file mode 100644
index b10c462f74..0000000000
--- a/keyboards/keebio/levinson/keymaps/losinggeneration/rules.mk
+++ /dev/null
@@ -1,14 +0,0 @@
-# Build Options
-# change to "no" to disable the options, or define them in the Makefile in
-# the appropriate keymap folder that will get included automatically
-#
-AUDIO_ENABLE = no # Audio output on port C6
-BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
-BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
-BOOTMAGIC_ENABLE = no # Enable Bootmagic Lite
-COMMAND_ENABLE = no # Commands for debug and configuration
-CONSOLE_ENABLE = no # Console for debug(+400)
-MIDI_ENABLE = no # MIDI controls
-NKRO_ENABLE = no # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
-RGBLIGHT_ENABLE = yes # Enable WS2812 RGB underlight.
-
diff --git a/keyboards/keebio/levinson/keymaps/rossman360/keymap.c b/keyboards/keebio/levinson/keymaps/rossman360/keymap.c
deleted file mode 100644
index aeb501bf1b..0000000000
--- a/keyboards/keebio/levinson/keymaps/rossman360/keymap.c
+++ /dev/null
@@ -1,135 +0,0 @@
-#include QMK_KEYBOARD_H
-
-#define PGMOD LT(_NUM, KC_PGDN)
-#define TABMOD LT(_FN1, KC_TAB)
-#define SPCMOD LT(_FN1, KC_SPACE)
-#define ENTMOD LT(_FN2, KC_ENTER)
-#define ESCMOD LT(_NUM, KC_ESC)
-#define RSMOD LT(_FN1, KC_RSFT)
-#define CMDBSP MT(MOD_LGUI, KC_BSPC)
-#define ALTDEL MT(MOD_LALT, KC_DEL)
-#define CTRLSP MT(MOD_LCTL, KC_SPACE)
-#define BWORD LCTL(KC_BSPC)
-#define JUMPBACK LSFT(KC_TAB)
-#define LWORD LCTL(KC_LEFT)
-#define RWORD LCTL(KC_RIGHT)
-#define UNDO LCTL(KC_Z)
-#define NTAB LCTL(KC_T)
-#define CTAB LCTL(KC_W)
-#define XPANDR LCTL(LSFT(KC_X))
-#define TAB1 LCTL(KC_1)
-#define TAB2 LCTL(KC_2)
-#define TAB3 LCTL(KC_3)
-#define TAB4 LCTL(KC_4)
-#define RVOLU LCTL(KC_RBRC)
-#define RVOLD LCTL(KC_LBRC)
-
-enum layer_names {
- _BASE,
- _DEL,
- _FN1,
- _FN2,
- _NUM,
-};
-
-enum custom_keycodes {
- QWERTY = SAFE_RANGE,
- CSPEAK,
- PARADOWN,
- PMERGE,
- WREFRESH,
- REMCAPS,
- SPEAK1,
- SPEAK2,
- SPEAK3,
- SPEAK4
-};
-
-bool process_record_user(uint16_t keycode, keyrecord_t *record) {
-switch (keycode) {
- case CSPEAK:
- if (record->event.pressed) {
- SEND_STRING(SS_TAP(X_PAGEDOWN) SS_TAP(X_ENTER) SS_TAP(X_ENTER) SS_TAP(X_PAGEDOWN));
- }
- break;
- case SPEAK1:
- if (record->event.pressed) {
- SEND_STRING(SS_TAP(X_PAGEDOWN) SS_TAP(X_ENTER) SS_TAP(X_ENTER) SS_TAP(X_PAGEDOWN) SS_LCTL(SS_TAP(X_1)));
- }
- break;
- case SPEAK2:
- if (record->event.pressed) {
- SEND_STRING(SS_TAP(X_PAGEDOWN) SS_TAP(X_ENTER) SS_TAP(X_ENTER) SS_TAP(X_PAGEDOWN) SS_LCTL(SS_TAP(X_2)));
- }
- break;
- case SPEAK3:
- if (record->event.pressed) {
- SEND_STRING(SS_TAP(X_PAGEDOWN) SS_TAP(X_ENTER) SS_TAP(X_ENTER) SS_TAP(X_PAGEDOWN) SS_LCTL(SS_TAP(X_3)));
- }
- break;
- case SPEAK4:
- if (record->event.pressed) {
- SEND_STRING(SS_TAP(X_PAGEDOWN) SS_TAP(X_ENTER) SS_TAP(X_ENTER) SS_TAP(X_PAGEDOWN) SS_LCTL(SS_TAP(X_4)));
- }
- break;
- case PARADOWN:
- if (record->event.pressed) {
- SEND_STRING(SS_TAP(X_PAGEDOWN) SS_TAP(X_ENTER) SS_TAP(X_PAGEDOWN));
- }
- break;
- case PMERGE:
- if (record->event.pressed) {
- SEND_STRING(SS_TAP(X_HOME) SS_TAP(X_BACKSPACE) SS_TAP(X_SPACE) SS_LCTL(SS_TAP(X_BACKSPACE)) SS_TAP(X_SPACE));
- }
- break;
- case WREFRESH:
- if (record->event.pressed) {
- SEND_STRING(SS_TAP(X_SPACE) SS_TAP(X_BACKSPACE));
- }
- break;
- case REMCAPS:
- if (record->event.pressed) {
- SEND_STRING(SS_TAP(X_LEFT) SS_TAP(X_LEFT) SS_LCTL(SS_TAP(X_LEFT)) SS_TAP(X_DELETE));
- }
- break;
-};
-return true;
-};
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
-[_BASE] = LAYOUT_ortho_4x12(
- KC_ESC , KC_Q , KC_W , KC_E , KC_R , KC_T , KC_Y , KC_U , KC_I , KC_O , KC_P , NTAB ,
- JUMPBACK, 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_MINS,
- CMDBSP , ALTDEL , KC_NO , CTRLSP , TABMOD , PGMOD , ENTMOD , SPCMOD , MO(_DEL),KC_NO , KC_BSPC, KC_DEL
- ),
-
-[_FN1] = LAYOUT_ortho_4x12(
- _______, TAB1 , TAB2 , TAB3 , TAB4 , _______, _______, UNDO , _______, _______, _______, CTAB ,
- KC_CAPS, _______, _______, _______, _______, _______, KC_HOME, KC_LEFT, KC_UP , KC_RIGHT,KC_END , KC_NO ,
- _______, _______, XPANDR , _______, _______, _______, _______, PMERGE , KC_DOWN, _______, _______, _______,
- WREFRESH,_______, _______, _______, LWORD , RWORD , RVOLD , RVOLU , _______, _______, _______, _______
- ),
-
-[_FN2] = LAYOUT_ortho_4x12(
- _______, SPEAK1 , SPEAK2 , SPEAK3 , SPEAK4 , _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, PARADOWN, CSPEAK, _______, _______, _______, _______, _______, _______
- ),
-
-[_DEL] = LAYOUT_ortho_4x12(
- _______, _______, _______, _______, _______, _______, _______, UNDO , _______, _______, _______, CTAB ,
- REMCAPS, _______, _______, _______, _______, _______, _______, KC_LEFT, KC_UP ,KC_RIGHT, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, KC_DOWN, _______, _______, _______,
- _______, _______, _______, KC_DEL , KC_BSPC, BWORD , _______, _______, _______, _______, _______, _______
- ),
-
-[_NUM] = LAYOUT_ortho_4x12(
- _______, KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_MINS, KC_EQL,
- KC_CAPS, _______, _______, _______, _______, _______, KC_MINS, KC_4 , KC_5 , KC_6 , KC_COLN, _______,
- _______, _______, _______, _______, _______, KC_LBRC, KC_RBRC, KC_1 , KC_2 , KC_3 , KC_BSLS, _______,
- _______, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, KC_0 , _______, _______, _______
- )
-};
diff --git a/keyboards/keebio/levinson/keymaps/steno/keymap.c b/keyboards/keebio/levinson/keymaps/steno/keymap.c
index 854ef41999..067e560d1b 100644
--- a/keyboards/keebio/levinson/keymaps/steno/keymap.c
+++ b/keyboards/keebio/levinson/keymaps/steno/keymap.c
@@ -1,5 +1,4 @@
#include QMK_KEYBOARD_H
-#include "keymap_steno.h"
extern keymap_config_t keymap_config;
diff --git a/keyboards/keebio/levinson/keymaps/xtonhasvim/config.h b/keyboards/keebio/levinson/keymaps/xtonhasvim/config.h
deleted file mode 100644
index 53847db93a..0000000000
--- a/keyboards/keebio/levinson/keymaps/xtonhasvim/config.h
+++ /dev/null
@@ -1,30 +0,0 @@
-#pragma once
-
-// #define MUSIC_MASK (keycode != KC_NO)
-
-/*
- * MIDI options
- */
-
-/* enable basic MIDI features:
- - MIDI notes can be sent when in Music mode is on
-*/
-
-// #define MIDI_BASIC
-
-/* enable advanced MIDI features:
- - MIDI notes can be added to the keymap
- - Octave shift and transpose
- - Virtual sustain, portamento, and modulation wheel
- - etc.
-*/
-//#define MIDI_ADVANCED
-
-/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
-//#define MIDI_TONE_KEYCODE_OCTAVES 2
-
-// help for fast typist+dual function keys?
-#define PERMISSIVE_HOLD
-
-// where is the cord plugged in?
-#define MASTER_LEFT
diff --git a/keyboards/keebio/levinson/keymaps/xtonhasvim/keymap.c b/keyboards/keebio/levinson/keymaps/xtonhasvim/keymap.c
deleted file mode 100644
index b260f5d43c..0000000000
--- a/keyboards/keebio/levinson/keymaps/xtonhasvim/keymap.c
+++ /dev/null
@@ -1,237 +0,0 @@
- /* Copyright 2015-2017 Christon DeWan
- *
- * 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 "xtonhasvim.h"
-#include "fancylighting.h"
-
-/************************************
- * states
- ************************************/
-
-enum layers {
- _QWERTY,
- _LOWER,
- _RAISE,
- _ADJUST,
- _MOVE,
- _MOUSE,
- _CMD
-};
-
-extern uint8_t vim_cmd_layer(void) { return _CMD; }
-
-/************************************
- * keymaps!
- ************************************/
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
-/* Qwerty
- * ,-----------------------------------------------------------------------------------.
- * | Tab | Q | W | E | R | T | Y | U | I | O | P | Bksp |
- * |------+------+------+------+------+-------------+------+------+------+------+------|
- * | Ctrl*| A* | S | D | F | G | H | J | K | L | ;* | ' |
- * |------+------+------+------+------+------|------+------+------+------+------+------|
- * | Shift| Z | X | C | V | B | N | M | , | . | / |Enter |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | chkwm| | Alt | GUI |Lower*| Sp|ace |Raise*| SPC | GUI | | Vim |
- * `-----------------------------------------------------------------------------------'
- *
- * - Ctrl acts as Esc when tapped.
- * - Holding A or ; switches to movement layer.
- * - Raise and Lower are one-shot layers.
- */
-[_QWERTY] = LAYOUT_ortho_4x12(
- KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,
- LCTL_T(KC_ESC), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, LT(_MOVE,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, RSFT_T(KC_ENT) ,
- LSFT(KC_LALT), MO(_MOVE), KC_LALT, KC_LGUI, MO(_LOWER), KC_SPC, KC_SPC, MO(_RAISE), KC_RGUI, KC_RALT, MO(_MOVE), VIM_START
-),
-
-/* Lower
- * ,-----------------------------------------------------------------------------------.
- * | ~ | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | Bksp |
- * |------+------+------+------+------+-------------+------+------+------+------+------|
- * | Del | ! | @ | # | $ | % | ^ | & | * | ( | ) | | |
- * |------+------+------+------+------+------|------+------+------+------+------+------|
- * | | F7 | F8 | F9 | F10 | F11 | F12 | | Next | Vol- | Vol+ | Play |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | | Bail | | | | | |Raise | | | Bail | |
- * `-----------------------------------------------------------------------------------'
- */
-[_LOWER] = LAYOUT_ortho_4x12(
- KC_TILD, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_BSPC,
- KC_DEL, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_PIPE,
- _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, X_____X, X_____X, X_____X, X_____X, FIREY_RETURN,
- QK_BOOT, TO(_QWERTY), _______, _______, _______, _______, _______, MO(_RAISE), _______, _______, TO(_QWERTY), X_____X
-),
-
-/* Raise
- * ,-----------------------------------------------------------------------------------.
- * | ` | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | Bksp |
- * |------+------+------+------+------+-------------+------+------+------+------+------|
- * | Del | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | \ |
- * |------+------+------+------+------+------|------+------+------+------+------+------|
- * | | F7 | F8 | F9 | F10 | F11 | F12 | | Next | Vol- | Vol+ | Play |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | | Bail | | |Lower | | | | | | Bail | |
- * `-----------------------------------------------------------------------------------'
- */
-[_RAISE] = LAYOUT_ortho_4x12(
- KC_GRV, X_____X, X_____X, X_____X, X_____X, X_____X, X_____X, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSPC,
- KC_DEL, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSLS,
- _______, X_____X, X_____X, X_____X, X_____X, X_____X, X_____X, X_____X, X_____X, X_____X, X_____X, FIREY_RETURN,
- X_____X, TO(_QWERTY), _______, _______, MO(_LOWER), _______, _______, _______, _______, _______, TO(_QWERTY), QK_BOOT
-),
-
-
-/* Adjust (Lower + Raise)
- * ,-------------------------------------------------------------------------------------.
- * |BL Raise| | | | | | | | | | | |
- * |--------+------+------+------+------+-------------+------+------+------+------+------|
- * |BL Lower| | | | | | | | | | | |
- * |--------+------+------+------+------+------|------+------+------+------+------+------|
- * |BL STEP | | | | | | | Next | Vol- | Vol+ | Play | |
- * |--------+------+------+------+------+------+------+------+------+------+------+------|
- * |Backlite| Bail | | | | | | | | | Bail | |
- * `-------------------------------------------------------------------------------------'
- */
-[_ADJUST] = LAYOUT_ortho_4x12(
- BL_UP, X_____X, X_____X, X_____X, X_____X, X_____X, X_____X, X_____X, X_____X, X_____X, X_____X, RGB_MODE_PLAIN,
- BL_DOWN, X_____X, X_____X, X_____X, X_____X, X_____X, X_____X, X_____X, X_____X, X_____X, X_____X, RGB_MODE_REVERSE,
- BL_STEP, X_____X, X_____X, X_____X, X_____X, X_____X, X_____X, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY, RGB_MODE_FORWARD,
- BL_TOGG, TO(_MOUSE), _______, _______, _______, _______, _______, _______, _______, _______, TO(_QWERTY), RGB_TOG
-),
-
-
-/* movement layer (hold semicolon) */
-[_MOVE] = LAYOUT_ortho_4x12(
- TO(_QWERTY), X_____X, X_____X, X_____X, X_____X, X_____X, KC_HOME, KC_PGDN, KC_PGUP, KC_END, X_____X, X_____X,
- _______, X_____X, LGUI(KC_LBRC), LGUI(LSFT(KC_LBRC)), LGUI(LSFT(KC_RBRC)), LGUI(KC_RBRC), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, _______, X_____X,
- _______, X_____X, X_____X, X_____X, X_____X, X_____X, X_____X, X_____X, X_____X, X_____X, X_____X, _______,
- _______, _______, _______, _______, _______, X_____X, X_____X, _______, _______, _______, _______, X_____X
-),
-
-/* mouse layer
- */
-[_MOUSE] = LAYOUT_ortho_4x12(
- TO(_QWERTY), X_____X, X_____X, KC_MS_UP, X_____X, X_____X, KC_MS_WH_LEFT, KC_MS_WH_DOWN, KC_MS_WH_UP, KC_MS_WH_RIGHT, X_____X, X_____X,
- _______, X_____X, KC_MS_LEFT, KC_MS_DOWN, KC_MS_RIGHT, X_____X, X_____X, KC_MS_BTN1, KC_MS_BTN2, KC_MS_BTN3, X_____X, X_____X,
- _______, X_____X, X_____X, X_____X, X_____X, X_____X, X_____X, X_____X, X_____X, X_____X, X_____X, _______,
- _______, TO(_QWERTY), _______, _______, _______, X_____X, X_____X, _______, _______, _______, TO(_QWERTY), X_____X
-),
-
-/* vim command layer.
- */
-[_CMD] = LAYOUT_ortho_4x12(
- X_____X, X_____X, VIM_W, VIM_E, X_____X, X_____X, VIM_Y, VIM_U, VIM_I, VIM_O, VIM_P, X_____X,
- VIM_ESC, VIM_A, VIM_S, VIM_D, X_____X, VIM_G, VIM_H, VIM_J, VIM_K, VIM_L, X_____X, X_____X,
- VIM_SHIFT, X_____X, VIM_X, VIM_C, VIM_V, VIM_B, X_____X, X_____X, VIM_COMMA, VIM_PERIOD, X_____X, VIM_SHIFT,
- _______, TO(_QWERTY), _______, _______, X_____X, X_____X, X_____X, X_____X, _______, _______, TO(_QWERTY), X_____X
-)
-
-};
-
-
-
-#define C_RED 0xFF, 0x00, 0x00
-#define C_GRN 0x00, 0xFF, 0x00
-#define C_BLU 0x00, 0x00, 0xFF
-
-#define C_YAN 0x00, 0xFF, 0xFF
-#define C_PRP 0x7A, 0x00, 0xFF
-#define C_ORG 0xFF, 0x93, 0x00
-
-void rgbflag(uint8_t r, uint8_t g, uint8_t b, uint8_t rr, uint8_t gg, uint8_t bb) {
- LED_TYPE *target_led = user_rgb_mode ? shadowed_led : led;
- for (int i = 0; i < RGBLED_NUM; i++) {
- switch (i) {
- case 10: case 11:
- target_led[i].r = r;
- target_led[i].g = g;
- target_led[i].b = b;
- break;
- case 0: case 1:
- target_led[i].r = rr;
- target_led[i].g = gg;
- target_led[i].b = bb;
- break;
- default:
- target_led[i].r = 0;
- target_led[i].g = 0;
- target_led[i].b = 0;
- break;
- }
- }
- rgblight_set();
-}
-
-void set_state_leds(void) {
- if (rgblight_get_mode() == 1) {
- switch (get_highest_layer(layer_state)) {
- case _RAISE:
- rgbflag(C_BLU, C_GRN);
- break;
- case _LOWER:
- rgbflag(C_BLU, C_RED);
- break;
- case _ADJUST:
- rgbflag(C_BLU, C_PRP);
- break;
- case _MOVE:
- rgbflag(C_RED, C_PRP);
- break;
- case _MOUSE:
- rgbflag(C_RED, C_GRN);
- break;
- case _CMD:
- switch(vstate) {
- case VIM_V:
- case VIM_VI:
- case VIM_VS:
- rgbflag(C_GRN, C_YAN);
- break;
- case VIM_C:
- case VIM_CI:
- rgbflag(C_GRN, C_ORG);
- break;
- case VIM_D:
- case VIM_DI:
- rgbflag(C_GRN, C_RED);
- break;
- case VIM_G:
- rgbflag(C_GRN, C_BLU);
- break;
- case VIM_Y:
- rgbflag(C_GRN, C_PRP);
- break;
- case VIM_START:
- default:
- rgbflag(C_GRN, C_GRN);
- break;
- }
- break;
- default: // for any other layers, or the default layer
- rgbflag(C_YAN, C_YAN);
- break;
- }
- }
-}
-
-layer_state_t layer_state_set_user(layer_state_t state) {
- return update_tri_layer_state(state, _RAISE, _LOWER, _ADJUST);
-}
diff --git a/keyboards/keebio/levinson/keymaps/xtonhasvim/readme.md b/keyboards/keebio/levinson/keymaps/xtonhasvim/readme.md
deleted file mode 100644
index 9ff4ce1f19..0000000000
--- a/keyboards/keebio/levinson/keymaps/xtonhasvim/readme.md
+++ /dev/null
@@ -1,9 +0,0 @@
-# Xton has a tiny keyboard! With Vim!
-
-Based on the standard Planck layout with a few changes:
-
-* Escape moved to dual-function with control.
-* Dedicated movement and mouse layers.
-* Top and middle row swapped in `_RAISE` and `_LOWER` because I never use F-keys.
-* Vim layers! See `users/xtonhasvim`.
-
diff --git a/keyboards/keebio/levinson/keymaps/xtonhasvim/rules.mk b/keyboards/keebio/levinson/keymaps/xtonhasvim/rules.mk
deleted file mode 100644
index ad5466991c..0000000000
--- a/keyboards/keebio/levinson/keymaps/xtonhasvim/rules.mk
+++ /dev/null
@@ -1,5 +0,0 @@
-# MOUSEKEY_ENABLE = yes
-# BACKLIGHT_ENABLE = yes
-# AUDIO_ENABLE = no
-
-RGBLIGHT_ENABLE = yes # Enable WS2812 RGB underlight.
diff --git a/keyboards/keebio/nyquist/keymaps/losinggeneration/README.md b/keyboards/keebio/nyquist/keymaps/losinggeneration/README.md
deleted file mode 100644
index b03f81583d..0000000000
--- a/keyboards/keebio/nyquist/keymaps/losinggeneration/README.md
+++ /dev/null
@@ -1,29 +0,0 @@
-losinggeneration's Nyquist Layout
-============================
-
-See description of the layout in the common folder
-[here](../../../../users/losinggeneration/README.md)
-
-## Features
-- Adjust
- - Removed AGSwap, AGNorm, & Del
- - Added Caps Lock, F1-F12 in a 4x3 grid, arrow cluster, and layer transitions
- to the new layers.
-
-## Layouts
-
-### Adjust (Lower + Raise)
-
-```
- ,-----------------------------------------..-----------------------------------------.
- | RESET|Debug | | | | || | | | | | |
- |------+------+------+------+------+------||------+------+------+------+------+------|
- | | F1 | F2 | F3 | F4 | || | Game |Numpad| Mouse| |Sleep |
- |------+------+------+------+------+------||------+------+------+------+------+------|
- | | F5 | F6 | F7 | F8 | || |Qwerty|Colmak|Workmn|Dvorak| |
- |------+------+------+------+------+------||------+------+------+------+------+------|
- | CAPS | F9 | F10 | F11 | F12 | || | | | | Up | |
- |------+------+------+------+------+------||------+------+------+------+------+------|
- | | | | | | || | | XXX | Left | Down |Right |
- `-----------------------------------------''-----------------------------------------'
-```
diff --git a/keyboards/keebio/nyquist/keymaps/losinggeneration/config.h b/keyboards/keebio/nyquist/keymaps/losinggeneration/config.h
deleted file mode 100644
index 38d1939580..0000000000
--- a/keyboards/keebio/nyquist/keymaps/losinggeneration/config.h
+++ /dev/null
@@ -1,25 +0,0 @@
-/*
-Copyright 2017 Danny Nguyen <danny@hexwire.com>
-Copyright 2018 Harley Laue <losinggeneration@gmail.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
-long with this program. If not, see <http://www.gnu.org/licenses/>.
-*/
-
-#pragma once
-
-/* Select hand configuration */
-
-#define MASTER_LEFT
-/* #define _MASTER_RIGHT */
-/* #define EE_HANDS */
diff --git a/keyboards/keebio/nyquist/keymaps/losinggeneration/keymap.c b/keyboards/keebio/nyquist/keymaps/losinggeneration/keymap.c
deleted file mode 100644
index d8c2daded8..0000000000
--- a/keyboards/keebio/nyquist/keymaps/losinggeneration/keymap.c
+++ /dev/null
@@ -1,55 +0,0 @@
-#include QMK_KEYBOARD_H
-#include "losinggeneration-config.h"
-#include "losinggeneration-keymap.h"
-
-extern keymap_config_t keymap_config;
-
-#define NUMBER_ROW \
- KC_GRV ,KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , KC_DEL
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
-[_QWERTY] = CATMAP( NUMBER_ROW, QWERTY_LAYER ),
-[_COLEMAK] = CATMAP( NUMBER_ROW, COLEMAK_LAYER ),
-[_WORKMAN] = CATMAP( NUMBER_ROW, WORKMAN_LAYER ),
-[_DVORAK] = CATMAP( NUMBER_ROW, DVORAK_LAYER ),
-[_GAME] = CATMAP( NUMBER_ROW, GAME_LAYER ),
-[_NUMPAD] = CATMAP(
- XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_NUM, KC_PAST, KC_PSLS, KC_BSPC, KC_BSPC,
- NUMPAD_LAYER
-),
-
-[_MOUSE] = CATMAP(
- XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
- MOUSE_LAYER
-),
-
-[_LOWER] = CATMAP(
- KC_TILD, KC_EXLM, KC_AT , KC_HASH, KC_DLR , KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL ,
- LOWER_LAYER
-),
-
-[_RAISE] = CATMAP(NUMBER_ROW, RAISE_LAYER ),
-
-/* Adjust (Lower + Raise)
- * ,-----------------------------------------..-----------------------------------------.
- * | Boot |Debug | | | | || | | | | | |
- * |------+------+------+------+------+------||------+------+------+------+------+------|
- * | | F1 | F2 | F3 | F4 | || | Game |Numpad| Mouse| |Sleep |
- * |------+------+------+------+------+------||------+------+------+------+------+------|
- * | | F5 | F6 | F7 | F8 | || |Qwerty|Colmak|Workmn|Dvorak| |
- * |------+------+------+------+------+------||------+------+------+------+------+------|
- * | CAPS | F9 | F10 | F11 | F12 | || | | | | Up | |
- * |------+------+------+------+------+------||------+------+------+------+------+------|
- * | | | | | | || | | XXX | Left | Down |Right |
- * `-----------------------------------------''-----------------------------------------'
- */
-[_ADJUST] = CATMAP(
- QK_BOOT, DB_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, KC_F1 , KC_F2 , KC_F3 , KC_F4 , _______, _______, TO_GAME, TO_NUM , TO_MS , _______, KC_SLEP,
- _______, KC_F5 , KC_F6 , KC_F7 , KC_F8 , _______, _______, QWERTY , COLEMAK, WORKMAN, DVORAK , _______,
- KC_CAPS, KC_F9 , KC_F10, KC_F11 , KC_F12 , _______, _______, _______, _______, _______, KC_UP , _______,
- _______, _______, _______, _______, _______, _______, _______, _______, XXXXXXX, KC_LEFT, KC_DOWN, KC_RGHT
-)
-};
-
diff --git a/keyboards/keebio/nyquist/keymaps/losinggeneration/rules.mk b/keyboards/keebio/nyquist/keymaps/losinggeneration/rules.mk
deleted file mode 100644
index 34b0ba318f..0000000000
--- a/keyboards/keebio/nyquist/keymaps/losinggeneration/rules.mk
+++ /dev/null
@@ -1,14 +0,0 @@
-# Build Options
-# change to "no" to disable the options, or define them in the Makefile in
-# the appropriate keymap folder that will get included automatically
-#
-AUDIO_ENABLE = no # Audio output on port C6
-BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
-BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
-BOOTMAGIC_ENABLE = no # Enable Bootmagic Lite
-COMMAND_ENABLE = no # Commands for debug and configuration
-CONSOLE_ENABLE = no # Console for debug(+400)
-MIDI_ENABLE = no # MIDI controls
-NKRO_ENABLE = no # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
-RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight.
-
diff --git a/keyboards/keebio/nyquist/rev4/info.json b/keyboards/keebio/nyquist/rev4/info.json
index d18af71952..043bb02f01 100644
--- a/keyboards/keebio/nyquist/rev4/info.json
+++ b/keyboards/keebio/nyquist/rev4/info.json
@@ -28,7 +28,9 @@
}
},
"transport": {
- "sync_matrix_state": true
+ "sync" :{
+ "matrix_state": true
+ }
}
},
"matrix_pins": {
diff --git a/keyboards/keebio/quefrency/keymaps/bcat/config.h b/keyboards/keebio/quefrency/keymaps/bcat/config.h
deleted file mode 100644
index 32510e9031..0000000000
--- a/keyboards/keebio/quefrency/keymaps/bcat/config.h
+++ /dev/null
@@ -1,26 +0,0 @@
-/* Copyright 2021 Jonathan Rascher
- *
- * 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
-
-/* Use an extra LED on the right side since it's wider on the 65% PCB. */
-#undef RGBLED_NUM
-#define RGBLED_NUM 17
-
-/* Set up RGB lighting so it works with either side as master. */
-#undef RGBLED_SPLIT
-#define RGBLED_SPLIT \
- { 8, 9 }
diff --git a/keyboards/keebio/quefrency/keymaps/bcat/keymap.c b/keyboards/keebio/quefrency/keymaps/bcat/keymap.c
deleted file mode 100644
index a11bfc4eb0..0000000000
--- a/keyboards/keebio/quefrency/keymaps/bcat/keymap.c
+++ /dev/null
@@ -1,40 +0,0 @@
-/* Copyright 2021 Jonathan Rascher
- *
- * 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 "bcat.h"
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- // clang-format off
- /* Default layer: http://www.keyboard-layout-editor.com/#/gists/60a262432bb340b37d364a4424f3037b */
- [LAYER_DEFAULT] = LAYOUT_65(
- KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS, KC_GRV, 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_BSPC, KC_PGUP,
- 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_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, LY_FN1, KC_SPC, KC_SPC, XXXXXXX, KC_RALT, LY_FN1, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
- ),
- /* Function layer: http://www.keyboard-layout-editor.com/#/gists/59636898946da51f91fb290f8e078b4d */
- [LAYER_FUNCTION_1] = LAYOUT_65(
- _______, 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_INS, KC_DEL, RGB_HUI,
- KC_CAPS, _______, KC_MPLY, KC_VOLU, KC_MSTP, _______, EE_CLR, QK_BOOT, KC_PSCR, KC_SCRL, KC_PAUS, _______, _______, _______, RGB_SAI,
- _______, _______, KC_MPRV, KC_VOLD, KC_MNXT, _______, _______, _______, _______, _______, _______, _______, RGB_TOG, RGB_SAD,
- _______, KC_APP, _______, KC_MUTE, _______, _______, _______, _______, _______, _______, _______, _______, RGB_VAI, RGB_HUD,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_RMOD, RGB_VAD, RGB_MOD
- ),
- // clang-format on
-};
diff --git a/keyboards/keebio/quefrency/keymaps/bcat/readme.md b/keyboards/keebio/quefrency/keymaps/bcat/readme.md
deleted file mode 100644
index 59a691654d..0000000000
--- a/keyboards/keebio/quefrency/keymaps/bcat/readme.md
+++ /dev/null
@@ -1,17 +0,0 @@
-# bcat's Quefrency 65% layout
-
-This is a standard 65% keyboard layout, with a split spacebar, an HHKB-style
-(split) backspace, media controls in the function layer (centered around the
-ESDF cluster), and RGB controls in the function layer (on the arrow/nav keys).
-
-## Default layer
-
-![Default layer layout](https://i.imgur.com/gfVTuPO.png)
-
-([KLE](http://www.keyboard-layout-editor.com/#/gists/60a262432bb340b37d364a4424f3037b))
-
-## Function layer
-
-![Function layer layout](https://i.imgur.com/7oCdN86.png)
-
-([KLE](http://www.keyboard-layout-editor.com/#/gists/59636898946da51f91fb290f8e078b4d))
diff --git a/keyboards/keebio/quefrency/keymaps/bcat/rules.mk b/keyboards/keebio/quefrency/keymaps/bcat/rules.mk
deleted file mode 100644
index c87b447c1e..0000000000
--- a/keyboards/keebio/quefrency/keymaps/bcat/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-BOOTLOADER = atmel-dfu # Elite-C
diff --git a/keyboards/keebio/quefrency/keymaps/draevin/keymap.c b/keyboards/keebio/quefrency/keymaps/draevin/keymap.c
deleted file mode 100644
index 00a933ddb4..0000000000
--- a/keyboards/keebio/quefrency/keymaps/draevin/keymap.c
+++ /dev/null
@@ -1,61 +0,0 @@
-/* Copyright 2020 Draevin Luke <contact@drae.vin> @draevin
- *
- * 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 "draevin.h"
-
-#define LAYOUT_65wm_wrapped(...) LAYOUT_65_with_macro(__VA_ARGS__)
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [_CM] = LAYOUT_65wm_wrapped(
- HYPR_T(KC_MPLY), KC_ESC, KC_GRV, ________________NUMBER_LEFT________________, ________________NUMBER_RIGHT_______________, KC_MINS, KC_EQL, XXXXXXX, KC_BSPC, KC_DEL,
- KC_MPRV, KC_MNXT, KC_TAB, _________________COLEMAK_L1________________, _________________COLEMAK_R1________________, KC_LBRC, KC_RBRC, KC_BSLS, KC_HOME,
- KC_F15, KC_F16, KC_BSPC, _________________COLEMAK_L2________________, _________________COLEMAK_R2________________, KC_QUOT, KC_ENT, KC_END,
- KC_F17, KC_F18, TD(TD_CAPS), _________________COLEMAK_L3________________, _________________COLEMAK_R3________________, KC_RSFT, KC_UP, MO(_FN),
- KC_F19, KC_F20, KC_LCTL, KC_LGUI, KC_LALT, MO(_FN), KC_SPC, XXXXXXX, KC_SPC, KC_RCTL, KC_RALT, KC_RGUI, KC_LEFT, KC_DOWN, KC_RGHT
- ),
- [_QW] = LAYOUT_65wm_wrapped(
- HYPR_T(KC_MPLY), KC_ESC, KC_GRV, ________________NUMBER_LEFT________________, ________________NUMBER_RIGHT_______________, KC_MINS, KC_EQL, XXXXXXX, KC_BSPC, KC_DEL,
- KC_MPRV, KC_MNXT, KC_TAB, _________________QWERTY_L1_________________, _________________QWERTY_L1_________________, KC_LBRC, KC_RBRC, KC_BSLS, KC_HOME,
- KC_F15, KC_F16, KC_BSPC, _________________QWERTY_L2_________________, _________________QWERTY_L2_________________, KC_QUOT, KC_ENT, KC_END,
- KC_F17, KC_F18, TD(TD_CAPS), _________________QWERTY_L3_________________, _________________QWERTY_L3_________________, KC_RSFT, KC_UP, MO(_FN),
- KC_F19, KC_F20, KC_LCTL, KC_LGUI, KC_LALT, MO(_FN), KC_SPC, XXXXXXX, KC_SPC, KC_RCTL, KC_RALT, KC_RGUI, KC_LEFT, KC_DOWN, KC_RGHT
- ),
- [_FN] = LAYOUT_65wm_wrapped(
- _______, _______, _______, _________________FROW_LEFT_________________, _________________FROW_RIGHT________________, KC_F11, KC_F12, XXXXXXX, _______, _______,
- RGB_TOG, RGB_MOD, _______, ___________________FN_L1___________________, ___________________FN_R1___________________, _______, _______, KC_MAKE, KC_PGUP,
- _______, _______, KC_DEL, ___________________FN_L2___________________, ___________________FN_R2___________________, _______, _______, KC_PGDN,
- _______, _______, _______, ___________________BLANK___________________, ___________________FN_R3___________________, _______, _______, _______,
- _______, CM_QW, _______, ___________________BLANK___________________, ___________________BLANK___________________, _______, _______//_______
- ),
-};
-
-bool encoder_update_user(uint8_t index, bool clockwise) {
- if (layer_state_is(_FN)) {
- if (clockwise) {
- tap_code(KC_PGDN);
- } else {
- tap_code(KC_PGUP);
- }
- } else {
- if (clockwise) {
- tap_code(KC_VOLU);
- } else {
- tap_code(KC_VOLD);
- }
- }
- return true;
-}
diff --git a/keyboards/keebio/quefrency/keymaps/draevin/rules.mk b/keyboards/keebio/quefrency/keymaps/draevin/rules.mk
deleted file mode 100644
index fcfd2225bc..0000000000
--- a/keyboards/keebio/quefrency/keymaps/draevin/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-EXTRAKEY_ENABLE = yes
diff --git a/keyboards/keebio/quefrency/keymaps/jonavin/config.h b/keyboards/keebio/quefrency/keymaps/jonavin/config.h
deleted file mode 100644
index 495638123a..0000000000
--- a/keyboards/keebio/quefrency/keymaps/jonavin/config.h
+++ /dev/null
@@ -1,40 +0,0 @@
-/*
-This is the c configuration file for the keymap
-
-Copyright 2012 Jun Wako <wakojun@gmail.com>
-Copyright 2015 Jack Humbert
-Copyright 2018 Danny Nguyen <danny@keeb.io>
-Copyright 2021 Jonavin Eng
-
-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 TAPPING_TOGGLE 2
-// TT set to two taps
-
-/* Handle GRAVESC combo keys */
-#define GRAVE_ESC_ALT_OVERRIDE
- //Always send Escape if Alt is pressed
-#define GRAVE_ESC_CTRL_OVERRIDE
- //Always send Escape if Control is pressed
-
-#define TAPPING_TERM 180
-
-#ifdef RGBLIGHT_ENABLE
- #define RGBLIGHT_LAYERS
- #define RGBLIGHT_SLEEP
-#endif // RGBLIGHT_ENABLE
-
diff --git a/keyboards/keebio/quefrency/keymaps/jonavin/keymap.c b/keyboards/keebio/quefrency/keymaps/jonavin/keymap.c
deleted file mode 100644
index c2375514f0..0000000000
--- a/keyboards/keebio/quefrency/keymaps/jonavin/keymap.c
+++ /dev/null
@@ -1,152 +0,0 @@
-/* Copyright 2021 Jonavin Eng @Jonavin
- *
- * 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 "jonavin.h"
-
-#ifdef RGBLIGHT_ENABLE
- // Custom RGB Colours
- #define RGB_GODSPEED 0x00, 0xE4, 0xFF // colour for matching keycaps
-#endif // RGBLIGHT_ENABLE
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [_BASE] = LAYOUT_65(
- QK_GESC, 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_BSLS, KC_INS,
- KC_PSCR, 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_BSPC, KC_DEL,
- TT(_LOWER), 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_PGUP,
- KC_LSFTCAPS, 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_PGDN,
- KC_LCTL, KC_LGUI, KC_LALT, LT(_FN1, KC_SPC), KC_SPC, KC_SPC, KC_SPC, KC_RALT, MO(_FN1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT),
- [_FN1] = LAYOUT_65(
- KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_F13, KC_CALC, KC_NO,
- RGB_TOG, RGB_MOD, RGB_VAI, KC_NO, KC_NO, KC_NO, KC_NO, KC_PSCR, KC_SCRL, KC_PAUS, KC_NO, KC_NO, KC_NO, KC_NO, KC_DEL,
- KC_CAPS, KC_NO, RGB_VAD, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_TRNS, KC_HOME,
- KC_TRNS, KC_NO, RGB_HUI, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_TRNS, RGB_MOD, KC_END,
- KC_TRNS, KC_WINLCK, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_APP, RGB_SPD, RGB_RMOD, RGB_SPI),
- [_LOWER] = LAYOUT_65(
- KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_P7, KC_P8, KC_P9, KC_P0, KC_PMNS, KC_PPLS, KC_PSLS, KC_PEQL, KC_TRNS,
- KC_TAB, KC_HOME, KC_UP, KC_END, KC_PGUP, KC_NO, KC_NO, KC_P4, KC_P5, KC_P6, KC_NO, KC_NO, KC_NO, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, KC_NO, KC_TAB, KC_P1, KC_P2, KC_P3, KC_NO, KC_PAST, KC_PENT, KC_HOME,
- KC_TRNS, KC_NO, KC_DEL, KC_INS, KC_NO, KC_NO, KC_NUM, KC_P0, KC_00, KC_PDOT, KC_PSLS, KC_TRNS, RCTL(KC_PGUP), KC_END,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_BSPC, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RCTL(KC_LEFT), RCTL(KC_PGDN), RCTL(KC_RIGHT)),
- [_RAISE] = LAYOUT_65(
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_DOWN, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
-};
-
-
-bool process_record_keymap(uint16_t keycode, keyrecord_t *record) {
- // process_record_user() moved to userspace
- return true;
-};
-
-#ifdef ENCODER_ENABLE // Encoder Functionality
- bool encoder_update_user(uint8_t index, bool clockwise) {
- uint8_t mods_state = get_mods();
- switch (index) {
- case 0: // first encoder (Left Macro set)
- encoder_action_navpage(clockwise);
- break;
-
- default: // other encoder (Top right)
- if (mods_state & MOD_BIT(KC_LSFT) ) { // If you are holding Left shift, change layers
- encoder_action_layerchange(clockwise);
- } else if (mods_state & MOD_BIT(KC_RSFT) ) { // If you are holding Right shift, Page up
- unregister_mods(MOD_BIT(KC_RSFT));
- encoder_action_navpage(clockwise);
- register_mods(MOD_BIT(KC_RSFT));
- } else if (mods_state & MOD_BIT(KC_LCTL)) { // if holding Left Ctrl, navigate next/prev word
- encoder_action_navword(clockwise);
- } else if (mods_state & MOD_BIT(KC_LALT)) { // if holding Left Alt, change media next/prev track
- encoder_action_mediatrack(clockwise);
- } else {
- encoder_action_volume(clockwise); // Otherwise it just changes volume
- }
- break;
- }
- return true;
- }
-#endif
-
-#ifdef RGBLIGHT_ENABLE
-
- enum custom_rgblight_layers
- {
- _rgbCAPS,
- _rgbNUMLOCK,
- _rgbWINLOCK,
- _rgbFN,
- _rgbNUMPAD,
- };
-
- // RGB map LEFT 1, 2, 3, 12, 13, 14, 15, 0 RIGHT 7, 6, 5, 4, 11, 10, 9, 8
- const rgblight_segment_t PROGMEM _rgb_capslock_layer[] = RGBLIGHT_LAYER_SEGMENTS(
- {14, 1, HSV_RED} // Light 4 LEDs, starting with LED 6
- );
- const rgblight_segment_t PROGMEM _rgb_numlock_layer[] = RGBLIGHT_LAYER_SEGMENTS(
- {15, 1, HSV_BLUE}
- ); const rgblight_segment_t PROGMEM _rgb_winlock_layer[] = RGBLIGHT_LAYER_SEGMENTS(
- {13, 1, HSV_PURPLE} // Light 4 LEDs, starting with LED 6
- );
- const rgblight_segment_t PROGMEM _rgb_fn_layer[] = RGBLIGHT_LAYER_SEGMENTS(
- {9, 2, HSV_ORANGE},
- {12, 2, HSV_ORANGE}
- );
- // Light LEDs 9 & 10 in cyan when keyboard layer 1 is active
- const rgblight_segment_t PROGMEM _rgb_numpad_layer[] = RGBLIGHT_LAYER_SEGMENTS(
- {4, 3, HSV_PURPLE},
- {9, 3, HSV_PURPLE}
- );
-
- const rgblight_segment_t* const PROGMEM _rgb_layers[] = RGBLIGHT_LAYERS_LIST(
- _rgb_capslock_layer,
- _rgb_numlock_layer,
- _rgb_winlock_layer,
- _rgb_fn_layer,
- _rgb_numpad_layer
- );
-
- bool led_update_user(led_t led_state) {
- rgblight_set_layer_state(_rgbCAPS, led_state.caps_lock);
-
- #ifdef INVERT_NUMLOCK_INDICATOR
- rgblight_set_layer_state(_rgbNUMLOCK, !led_state.num_lock); // inverse numlock indicator override
- #else
- rgblight_set_layer_state(_rgbNUMLOCK, led_state.num_lock); // normal, light LED when numlock on
- #endif // INVERT_NUMLOCK_INDICATOR
-
- rgblight_set_layer_state(_rgbWINLOCK, keymap_config.no_gui);
- return true;
- }
-
- layer_state_t layer_state_set_user(layer_state_t state) {
- rgblight_set_layer_state(_rgbFN, layer_state_cmp(state, _FN1));
- rgblight_set_layer_state(_rgbNUMPAD, layer_state_cmp(state, _LOWER));
- return state;
- }
-#endif // RGBLIGHT_ENABLE
-
-void keyboard_post_init_keymap(void) {
- // keyboard_post_init_user() moved to userspace
- #ifdef RGBLIGHT_ENABLE
- rgblight_mode(1); // single colour mode
- rgblight_setrgb(RGB_GODSPEED); // Default startup colour
- rgblight_layers = _rgb_layers;
- #endif
-}
diff --git a/keyboards/keebio/quefrency/keymaps/jonavin/readme.md b/keyboards/keebio/quefrency/keymaps/jonavin/readme.md
deleted file mode 100644
index dad817e8ec..0000000000
--- a/keyboards/keebio/quefrency/keymaps/jonavin/readme.md
+++ /dev/null
@@ -1,38 +0,0 @@
-# jonavin's Quefrency layout - No Macros 65%
-
-- ANSI qwerty layout with split Backspace, 1.25 Left mods, 1u right
-- Left Fn key is Spacebar tap and Fn when held
-- Layer 2 mod on Caps Lock with double-tap to switch to this layer, double tap to switch back
-- Layer 2 provides arrows on WASD and additional nav keys + right hand numpad with 00
-- ESC is set to GRAVESC (Esc when pressed, Shift-Esc is ~ and Win-ESC is `), plus handling for Ctrl-Shift-ESC to bring up Task Manager in Windows
-- Layer 2 left spacebar Backspace
-- add double tap of Left Shift to toggle Caps Lock
-- add Win Key lock function using Fn+Win
-- additional encoder functionality
- - holding L shift, Navigate page up/down
- - holding Left Ctrl, navigate prev/next word
- - holding Left Alt, change media prev/next track
- - default is change volume
-- RGB Functionality
- - additional RGB function key binds to arrow on Fn layer
- - Add capslock indicator, win key lock indicator
- - Fn and layer 2 indicators using RGB underglow
- - Inverted NUM lock indicator (light on when NUM lock is off when INVERT_NUMLOCK_INDICATOR = yes in rules.mk)
-
-rules.mk OPTIONS - Active features from userspace
-STARTUP_NUMLOCK_ON = yes
- - turns on NUMLOCK by default
-
-TD_LSFT_CAPSLOCK_ENABLE = yes
- - This will enable double tap on Left Shift to toggle CAPSLOCK when using KC_LSFTCAPS
-
-## All layers diagram
-
-Default Layer
-![image](https://user-images.githubusercontent.com/71780717/127251683-ad445b40-95a9-4d2a-b164-a96f3a13464e.png)
-
-MO(1) / FN layer
-![image](https://user-images.githubusercontent.com/71780717/127251736-047f2f73-dfff-4fcc-bf0e-a5378e2fee08.png)
-
-MO(2) / Numpad layer
-![image](https://user-images.githubusercontent.com/71780717/127251985-4f564a56-8836-4db0-9cbd-ec859755a8d9.png)
diff --git a/keyboards/keebio/quefrency/keymaps/jonavin/rules.mk b/keyboards/keebio/quefrency/keymaps/jonavin/rules.mk
deleted file mode 100644
index ac2865f600..0000000000
--- a/keyboards/keebio/quefrency/keymaps/jonavin/rules.mk
+++ /dev/null
@@ -1,10 +0,0 @@
-VIA_ENABLE = yes
-CONSOLE_ENABLE = no
-LTO_ENABLE = yes
-
-MOUSEKEY_ENABLE = no
-TAP_DANCE_ENABLE = yes
-
-TD_LSFT_CAPSLOCK_ENABLE = yes
-STARTUP_NUMLOCK_ON = yes
-INVERT_NUMLOCK_INDICATOR = yes
diff --git a/keyboards/keebio/sinc/keymaps/draevin/keymap.c b/keyboards/keebio/sinc/keymaps/draevin/keymap.c
deleted file mode 100644
index d9d4be1b2b..0000000000
--- a/keyboards/keebio/sinc/keymaps/draevin/keymap.c
+++ /dev/null
@@ -1,47 +0,0 @@
-/* Copyright 2020 Draevin Luke <contact@drae.vin> @draevin
- *
- * 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 "draevin.h"
-
-#define LAYOUT_80_wrapper(...) LAYOUT_80(__VA_ARGS__)
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [_CM] = LAYOUT_80_wrapper(
- HYPR_T(KC_ESC), _________________FROW_LEFT_________________, _________________FROW_RIGHT________________, KC_F11, KC_F12, KC_F13, KC_HYPR,
- KC_GRV, ________________NUMBER_LEFT________________, ________________NUMBER_RIGHT_______________, KC_MINS, KC_EQL, XXXXXXX, KC_BSPC, KC_DEL,
- KC_TAB, _________________COLEMAK_L1________________, _________________COLEMAK_R1________________, KC_LBRC, KC_RBRC, KC_BSLS, KC_HOME,
- KC_BSPC, _________________COLEMAK_L2________________, _________________COLEMAK_R2________________, KC_QUOT, KC_ENT, KC_END,
- TD(TD_CAPS), _________________COLEMAK_L3________________, _________________COLEMAK_R3________________, KC_RSFT, KC_UP, MO(_FN),
- KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, XXXXXXX, MO(_FN), XXXXXXX, KC_SPC, KC_RCTL, KC_RALT, KC_RGUI, KC_LEFT, KC_DOWN, KC_RGHT
- ),
- [_QW] = LAYOUT_80_wrapper(
- HYPR_T(KC_ESC), _________________FROW_LEFT_________________, _________________FROW_RIGHT________________, KC_F11, KC_F12, KC_F13, KC_HYPR,
- KC_GRV, ________________NUMBER_LEFT________________, ________________NUMBER_RIGHT_______________, KC_MINS, KC_EQL, XXXXXXX, KC_BSPC, KC_DEL,
- KC_TAB, _________________QWERTY_L1_________________, _________________QWERTY_L1_________________, KC_LBRC, KC_RBRC, KC_BSLS, KC_HOME,
- KC_BSPC, _________________QWERTY_L2_________________, _________________QWERTY_L2_________________, KC_QUOT, KC_ENT, KC_END,
- TD(TD_CAPS), _________________QWERTY_L3_________________, _________________QWERTY_L3_________________, KC_RSFT, KC_UP, MO(_FN),
- KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, XXXXXXX, MO(_FN), XXXXXXX, KC_SPC, KC_RCTL, KC_RALT, KC_RGUI, KC_LEFT, KC_DOWN, KC_RGHT
- ),
- [_FN] = LAYOUT_80_wrapper(
- _______, ___________________BLANK___________________, ___________________BLANK___________________, _______, _______, _______, CM_QW,
- _______, ___________________BLANK___________________, ___________________BLANK___________________, ___________________BLANK___________________,
- _______, ___________________FN_L1___________________, ___________________FN_R1___________________, _______, _______, KC_MAKE, KC_PGUP,
- _______, ___________________FN_L2___________________, ___________________FN_R2___________________, _______, _______, KC_PGDN,
- _______, ___________________BLANK___________________, ___________________FN_R3___________________, _______, _______, _______,
- _______, ___________________BLANK___________________, ___________________BLANK___________________, _______, _______, _______
- ),
-};
diff --git a/keyboards/keebio/sinc/keymaps/sethBarberee/config.h b/keyboards/keebio/sinc/keymaps/sethBarberee/config.h
deleted file mode 100644
index 343567273d..0000000000
--- a/keyboards/keebio/sinc/keymaps/sethBarberee/config.h
+++ /dev/null
@@ -1,25 +0,0 @@
-/*
-Copyright 2017 Danny Nguyen <danny@keeb.io>
-
-This program is free software: you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program. If not, see <http://www.gnu.org/licenses/>.
-*/
-
-#pragma once
-
-//#ifdef RGBLIGHT_ENABLE
-//# ifdef NORMAL_MODE
-//# undef NORMAL_MODE
-//# define NORMAL_MODE RGBLIGHT_MODE_TWINKLE + 4
-//# endif
-//#endif
diff --git a/keyboards/keebio/sinc/keymaps/sethBarberee/keymap.c b/keyboards/keebio/sinc/keymaps/sethBarberee/keymap.c
deleted file mode 100644
index 2bd560c199..0000000000
--- a/keyboards/keebio/sinc/keymaps/sethBarberee/keymap.c
+++ /dev/null
@@ -1,82 +0,0 @@
- /* Copyright 2021 SethBarberee <seth.barberee@gmail.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 "sethBarberee.h"
-
-#define LAYOUT_80_with_macro_wrapper(...) LAYOUT_80_with_macro(__VA_ARGS__)
-
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [_QWERTY] = LAYOUT_80_with_macro_wrapper(
- KC_MUTE, KC_ECAP, _________________FUNC_LEFT_________________, _________________FUNC_RIGHT________________, KC_F11, KC_F12, KC_DEL, KC_MUTE,
- KC_F1, KC_F2, KC_GRV, ________________NUMBER_LEFT________________, ________________NUMBER_RIGHT_______________,KC_MINS, KC_EQL, _______, KC_BSPC, KC_HOME,
- KC_F3, KC_F4, KC_TAB, _________________QWERTY_L1_________________, _________________QWERTY_R1_________________, KC_LBRC, KC_RBRC, KC_BSLS, KC_END,
- KC_F5, KC_F6, KC_LSFT, _________________QWERTY_L2_________________, _________________QWERTY_R2_________________, KC_ENT, KC_PGUP,
- KC_F7, KC_F8, KC_LSFT, _________________QWERTY_L3_________________, _________________QWERTY_R3_________________, KC_RSFT, KC_UP, KC_PGDN,
- KC_F9, KC_F10, KC_LCTL, KC_LALT, KC_LGUI, KC_LOWR, _______, KC_SPC, KC_BSPC, KC_RASE, KC_RALT, KC_RCTL, KC_RGUI, KC_LEFT, KC_DOWN, KC_RGHT
- ),
-
- [_DVORAK] = LAYOUT_80_with_macro_wrapper(
- KC_MUTE, KC_ECAP, _________________FUNC_LEFT_________________, _________________FUNC_RIGHT________________, KC_F11, KC_F12, KC_DEL, KC_MUTE,
- KC_F1, KC_F2, KC_GRV, ________________NUMBER_LEFT________________, ________________NUMBER_RIGHT_______________,KC_MINS, KC_EQL, _______, KC_BSPC, KC_HOME,
- KC_F3, KC_F4, KC_TAB, _________________DVORAK_L1_________________, _________________DVORAK_R1_________________, KC_LBRC, KC_RBRC, KC_BSLS, KC_END,
- KC_F5, KC_F6, KC_LSFT, _________________DVORAK_L2_________________, _________________DVORAK_R2_________________, KC_ENT, KC_PGUP,
- KC_F7, KC_F8, KC_LSFT, _________________DVORAK_L3_________________, _________________DVORAK_R3_________________, KC_RSFT, KC_UP, KC_PGDN,
- KC_F9, KC_F10, KC_LCTL, KC_LALT, KC_LGUI, KC_LOWR, _______, KC_SPC, KC_BSPC, KC_RASE, KC_RALT, KC_RCTL, KC_RGUI, KC_LEFT, KC_DOWN, KC_RGHT
- ),
-
- [_LOWER] = LAYOUT_80_with_macro_wrapper(
- RGB_TOG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PSCR,
- RGB_HUI, RGB_HUD, QK_GESC, _________________FUNC_LEFT_________________, _________________FUNC_RIGHT________________, KC_F11, KC_F12, _______, _______, KC_MPRV,
- RGB_SAI, RGB_SAD, RGB_TOG, _______, _______, _______, _______, KC_LPRN, KC_RPRN, _______, _______, _______, _______, _______, _______, _______, KC_MNXT,
- RGB_VAI, RGB_VAD, _______, _______, _______, _______, _______, KC_LCBR, KC_RCBR, _______, _______, _______, _______, _______, _______, KC_VOLU,
- RGB_MOD, RGB_RMOD, _______, _______, _______, _______, _______, KC_LBRC, KC_RBRC, _______, _______, _______, _______, _______, _______, KC_VOLD,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
- ),
-
- [_RAISE] = LAYOUT_80_with_macro_wrapper(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- QK_BOOT, KC_VRSN, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
- ),
- [_ADJUST] = LAYOUT_80_with_macro_wrapper(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, KC_QWER, KC_DVOR, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
- ),
-};
-
-bool encoder_update_user(uint8_t index, bool clockwise) {
- if (index == 0) {
- if (clockwise) {
- tap_code(KC_PGDN);
- } else {
- tap_code(KC_PGUP);
- }
- } else if (index == 1) {
- if (clockwise) {
- tap_code(KC_VOLU);
- } else {
- tap_code(KC_VOLD);
- }
- }
- return true;
-}
diff --git a/keyboards/keebio/sinc/keymaps/sethBarberee/rules.mk b/keyboards/keebio/sinc/keymaps/sethBarberee/rules.mk
deleted file mode 100644
index 1475c36e7c..0000000000
--- a/keyboards/keebio/sinc/keymaps/sethBarberee/rules.mk
+++ /dev/null
@@ -1,4 +0,0 @@
-BACKLIGHT_ENABLE=no
-CONSOLE_ENABLE=no
-TAP_DANCE_ENABLE=yes
-MUSIC_ENABLE=no
diff --git a/keyboards/keebio/sinc/rev1/config.h b/keyboards/keebio/sinc/rev1/config.h
index 8894354d43..2d2c772422 100644
--- a/keyboards/keebio/sinc/rev1/config.h
+++ b/keyboards/keebio/sinc/rev1/config.h
@@ -23,8 +23,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define LOCKING_SUPPORT_ENABLE
/* Locking resynchronize hack */
#define LOCKING_RESYNC_ENABLE
-/* Synchronize Caps Lock LED across halves */
-#define SPLIT_LED_STATE_ENABLE
#define RGBLIGHT_DEFAULT_MODE (RGBLIGHT_MODE_RAINBOW_SWIRL + 2)
diff --git a/keyboards/keebio/sinc/rev1/info.json b/keyboards/keebio/sinc/rev1/info.json
index 5ddb54ee60..0829cae6e7 100644
--- a/keyboards/keebio/sinc/rev1/info.json
+++ b/keyboards/keebio/sinc/rev1/info.json
@@ -18,7 +18,10 @@
"enabled": true,
"soft_serial_pin": "D0",
"transport": {
- "protocol": "serial"
+ "protocol": "serial",
+ "sync" :{
+ "indicators": true
+ }
},
"encoder": {
"right": {
diff --git a/keyboards/keebio/sinc/rev2/config.h b/keyboards/keebio/sinc/rev2/config.h
index 8894354d43..2d2c772422 100644
--- a/keyboards/keebio/sinc/rev2/config.h
+++ b/keyboards/keebio/sinc/rev2/config.h
@@ -23,8 +23,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define LOCKING_SUPPORT_ENABLE
/* Locking resynchronize hack */
#define LOCKING_RESYNC_ENABLE
-/* Synchronize Caps Lock LED across halves */
-#define SPLIT_LED_STATE_ENABLE
#define RGBLIGHT_DEFAULT_MODE (RGBLIGHT_MODE_RAINBOW_SWIRL + 2)
diff --git a/keyboards/keebio/sinc/rev2/info.json b/keyboards/keebio/sinc/rev2/info.json
index 0c86727abe..5b74d17b1a 100644
--- a/keyboards/keebio/sinc/rev2/info.json
+++ b/keyboards/keebio/sinc/rev2/info.json
@@ -18,7 +18,10 @@
"enabled": true,
"soft_serial_pin": "D0",
"transport": {
- "protocol": "serial"
+ "protocol": "serial",
+ "sync" :{
+ "indicators": true
+ }
},
"encoder": {
"right": {
diff --git a/keyboards/keebio/tragicforce68/keymaps/rossman360/keymap.c b/keyboards/keebio/tragicforce68/keymaps/rossman360/keymap.c
deleted file mode 100755
index 68dd9ef7d3..0000000000
--- a/keyboards/keebio/tragicforce68/keymaps/rossman360/keymap.c
+++ /dev/null
@@ -1,71 +0,0 @@
-#include QMK_KEYBOARD_H
-#include "rossman360.h"
-
-#define PGMOD LT(_MOD, KC_PGDN)
-#define SPCMOD LT(_MOD, KC_SPACE)
-#define VOLMOD LT(_MOD, KC_MUTE)
-
-enum layer_names {
- _BASE,
- _REV,
- _MOD,
- _DEL,
-};
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-[_BASE] = LAYOUT_split_space(
- //┌────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────────────┐ ┌────────┬────────┐
- KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL, NTAB,
- //├────────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────────────┤ ├────────┼────────┤
- 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, MO(_MOD),CTAB,
- //├────────────┴─┬──────┴─┬──────┴─┬──────┴─┬──────┴─┬──────┴─┬──────┴─┬──────┴─┬──────┴─┬──────┴─┬──────┴─┬──────┴─┬──────┴────────────┤ └────────┴────────┘
- KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENTER,
- //├──────────────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───────────────────┤ ┌────────┐
- 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,
- //├──────────┬───────┴──┬─────┴────┬───┴────────┴─────┬───┴────────┴───┬─────┴────────┴┬────────┴────────┼────────┴─┬──────────┬────┬──────┴─┬────────┼────────┐
- CMDBSP, ALTDEL, KC_LCTL, KC_SPACE, SPCMOD, SPCMOD, MO(_DEL), KC_LCTL, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
- //└──────────┴──────────┴──────────┴──────────────────┴────────────────┴───────────────┴─────────────────┴──────────┴──────────┘ └────────┴────────┴────────┘
- ),
-
-[_REV] = LAYOUT_split_space(
- //┌────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────────────┐ ┌────────┬────────┐
- _______, _______, _______, _______, _______, _______,_______, _______,_______, _______, _______, _______, _______, _______, _______, _______,
- //├────────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────────────┤ ├────────┼────────┤
- KC_LEFT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,KC_HOME, KC_END, KC_RIGHT, _______, _______,
- //├────────────┴─┬──────┴─┬──────┴─┬──────┴─┬──────┴─┬──────┴─┬──────┴─┬──────┴─┬──────┴─┬──────┴─┬──────┴─┬──────┴─┬──────┴────────────┤ └────────┴────────┘
- JUMPBACK, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- //├──────────────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───────────────────┤ ┌────────┐
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, CSPEAK, _______,
- //├──────────┬───────┴──┬─────┴────┬───┴────────┴──────┬──┴────────┴────┬────┴────────┴┬────────┴────────┼────────┴─┬──────────┬────┬──────┴─┬────────┼────────┐
- _______, _______, _______, KC_TAB, PGMOD, _______, _______, _______, _______, _______, _______, _______
- //└──────────┴──────────┴──────────┴───────────────────┴────────────────┴──────────────┴─────────────────┴──────────┴──────────┘ └────────┴────────┴────────┘
- ),
-
-[_MOD] = LAYOUT_split_space(
- //┌────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────────────┐ ┌────────┬────────┐
- QK_BOOT, _______, _______, _______, _______, _______,_______, _______,KC_F8 , _______, _______, _______, _______, _______, KC_VOLD, KC_VOLU,
- //├────────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────────────┤ ├────────┼────────┤
- _______, _______, WREFRESH,_______, DF(_REV), _______, _______, UNDO, _______, _______, _______, _______, _______, _______, _______, _______,
- //├────────────┴─┬──────┴─┬──────┴─┬──────┴─┬──────┴─┬──────┴─┬──────┴─┬──────┴─┬──────┴─┬──────┴─┬──────┴─┬──────┴─┬──────┴────────────┤ └────────┴────────┘
- KC_CAPS, _______, _______, _______, _______, _______, KC_HOME, KC_LEFT, KC_UP, KC_RIGHT, KC_END, _______, PARADOWN,
- //├──────────────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───────────────────┤ ┌────────┐
- _______, _______, XPANDR, _______, _______, _______, _______, PMERGE, KC_DOWN, _______, _______, _______, KC_F1 ,
- //├──────────┬───────┴──┬─────┴────┬───┴────────┴──────┬──┴────────┴────┬────┴────────┴┬────────┴────────┼────────┴─┬──────────┬────┬──────┴─┬────────┼────────┐
- _______, _______, _______, LWORD, RWORD, LWORD, RWORD, _______, _______, _______, KC_F2 , _______
- //└──────────┴──────────┴──────────┴───────────────────┴────────────────┴──────────────┴─────────────────┴──────────┴──────────┘ └────────┴────────┴────────┘
- ),
-
-[_DEL] = LAYOUT_split_space(
- //┌────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────────────┐ ┌────────┬────────┐
- _______, SPEAK1, SPEAK2, SPEAK3, SPEAK4, _______,_______, _______,_______, _______, _______, _______, _______, _______, _______, _______,
- //├────────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────────────┤ ├────────┼────────┤
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- //├────────────┴─┬──────┴─┬──────┴─┬──────┴─┬──────┴─┬──────┴─┬──────┴─┬──────┴─┬──────┴─┬──────┴─┬──────┴─┬──────┴─┬──────┴────────────┤ └────────┴────────┘
- REMCAPS, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- //├──────────────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───────────────────┤ ┌────────┐
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- //├──────────┬───────┴──┬─────┴────┬───┴────────┴──────┬──┴────────┴────┬────┴────────┴┬────────┴────────┼────────┴─┬──────────┬────┬──────┴─┬────────┼────────┐
- _______, _______, KC_DEL, KC_BSPC, BWORD, _______, _______, _______, _______, _______, _______, _______
- //└──────────┴──────────┴──────────┴───────────────────┴────────────────┴──────────────┴─────────────────┴──────────┴──────────┘ └────────┴────────┴────────┘
- ),
-};
diff --git a/keyboards/keebio/tragicforce68/keymaps/rossman360/readme.md b/keyboards/keebio/tragicforce68/keymaps/rossman360/readme.md
deleted file mode 100644
index 95e76d6308..0000000000
--- a/keyboards/keebio/tragicforce68/keymaps/rossman360/readme.md
+++ /dev/null
@@ -1,3 +0,0 @@
-#Rossman360's Tragicforce68 Layout
-
-This is a split-space layout that, like a lot of my layouts, has a lot of macros specific to the transcription service Rev. Moving back through text, deleting characters or whole words and returning to the end of the document can all be done using thumbs.
diff --git a/keyboards/keebio/tragicforce68/keymaps/rossman360/rules.mk b/keyboards/keebio/tragicforce68/keymaps/rossman360/rules.mk
deleted file mode 100644
index d10eda0fbe..0000000000
--- a/keyboards/keebio/tragicforce68/keymaps/rossman360/rules.mk
+++ /dev/null
@@ -1,2 +0,0 @@
-MACROS_ENABLED = yes
-BOOTLOADER = atmel-dfu
diff --git a/keyboards/keebio/viterbi/keymaps/drashna/config.h b/keyboards/keebio/viterbi/keymaps/drashna/config.h
deleted file mode 100644
index cd640ec8d5..0000000000
--- a/keyboards/keebio/viterbi/keymaps/drashna/config.h
+++ /dev/null
@@ -1,61 +0,0 @@
-/* Copyright 2020 Christopher Courtney, aka Drashna Jael're (@drashna) <drashna@live.com>
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-#pragma once
-
-#undef MATRIX_ROWS
-#define MATRIX_ROWS 5
-
-#ifdef RGBLIGHT_ENABLE
-# undef RGBLED_NUM
-# define RGBLED_NUM 16
-
-# define RGBLIGHT_HUE_STEP 8
-# define RGBLIGHT_SAT_STEP 8
-# define RGBLIGHT_VAL_STEP 8
-# define RGBLIGHT_EFFECT_KNIGHT_LENGTH 2
-# define RGBLIGHT_EFFECT_SNAKE_LENGTH 2
-#endif // RGBLIGHT_ENABLE
-
-#undef PRODUCT
-#define PRODUCT "Drashnas Viterbi Macro Pad"
-
-#ifdef AUDIO_ENABLE
-# define AUDIO_PIN C6
-# define NO_MUSIC_MODE
-#endif
-
-// clang-format off
-#define LAYOUT_ortho_5x7( \
- L00, L01, L02, L03, L04, L05, L06, \
- L10, L11, L12, L13, L14, L15, L16, \
- L20, L21, L22, L23, L24, L25, L26, \
- L30, L31, L32, L33, L34, L35, L36, \
- L40, L41, L42, L43, L44, L45, L46 \
- ) \
- { \
- { L00, L01, L02, L03, L04, L05, L06 }, \
- { L10, L11, L12, L13, L14, L15, L16 }, \
- { L20, L21, L22, L23, L24, L25, L26 }, \
- { L30, L31, L32, L33, L34, L35, L36 }, \
- { L40, L41, L42, L43, L44, L45, L46 }, \
- }
-// clang-format on
-
-#define QMK_ESC_OUTPUT F5 // usually COL
-#define QMK_ESC_INPUT D4 // usually ROW
-#define QMK_LED B0
-#define QMK_SPEAKER C6
diff --git a/keyboards/keebio/viterbi/keymaps/drashna/keymap.c b/keyboards/keebio/viterbi/keymaps/drashna/keymap.c
deleted file mode 100644
index 9b33f35e0e..0000000000
--- a/keyboards/keebio/viterbi/keymaps/drashna/keymap.c
+++ /dev/null
@@ -1,76 +0,0 @@
-/* Copyright 2020 Christopher Courtney, aka Drashna Jael're (@drashna) <drashna@live.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 "drashna.h"
-
-// Fillers to make layering more clear
-#define TT_MDIA TT(_MEDIA)
-
-// enum more_custom_keycodes {
-// KC_P00 = USER_SAFE_RANGE
-//};
-
-// clang-format off
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
- [_NUMLOCK] = LAYOUT_ortho_5x7(
- KC_NO, TG_DBLO, TG_GAME, KC_NUM, KC_SCRL, KC_COLN, KC_PSLS,
- TT_MDIA, KC_CALC, XXXXXXX, KC_P7, KC_P8, KC_P9, KC_PAST,
- KC_HOME, KC_DEL, KC_PGUP, KC_P4, KC_P5, KC_P6, KC_PMNS,
- KC_END, KC_UP, KC_PGDN, KC_P1, KC_P2, KC_P3, KC_PPLS,
- KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT, KC_COLN, KC_PENT
- ),
-
- [_DIABLO] = LAYOUT_ortho_5x7(
- KC_ESC, _______, KC_V, KC_D, XXXXXXX, XXXXXXX, KC_L,
- KC_TAB, KC_S, KC_F, KC_I, KC_M, KC_T, KC_J,
- KC_Q, KC_1, KC_2, KC_3, KC_4, KC_G, KC_F,
- KC_LCTL, KC_D3_3, KC_D3_3, KC_D3_3, KC_D3_3, KC_Z, KC_DIABLO_CLEAR,
- KC_LALT, KC_F4, KC_F5, KC_F8, KC_F9, KC_F10, SFT_T(KC_SPACE)
- ),
-
- [_GAMEPAD] = LAYOUT_ortho_5x7( // Game pad layout designed primarily for Overwatch
- KC_NO, KC_ESC, _______, KC_1, KC_2, KC_3, KC_4,
- TT_MDIA, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T,
- KC_Z, KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G,
- KC_Y, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B,
- KC_F1, KC_U, KC_I, KC_Y, KC_V, KC_SPC, KC_V
- ),
-
- [_MEDIA] = LAYOUT_ortho_5x7(
- QK_MAKE, QK_BOOT, MU_TOGG, AU_ON, AU_OFF, CK_TOGG, RGB_SAD,
- _______, EE_CLR, KC_RGB_T,RGB_M_P, RGB_M_B, RGB_M_R, RGB_SAI,
- RGB_TOG, RGB_MOD, RGB_RMOD,RGB_M_SW,RGB_M_SN,RGB_M_K, RGB_HUD,
- KC_MPLY, KC_MPRV, KC_MNXT, RGB_M_X, RGB_M_G, RGB_M_P, RGB_HUI,
- KC_MUTE, KC_VOLD, KC_VOLU, XXXXXXX, XXXXXXX, RGB_VAD, RGB_VAI
- )
-
-
-};
-// clang-format on
-
-bool process_record_keymap(uint16_t keycode, keyrecord_t *record) {
- // switch (keycode) {
- // case KC_P00:
- // if (!record->event.pressed) {
- // tap(KC_KP_0);
- // tap(KC_KP_0);
- // }
- // return false;
- // break;
- //}
- return true;
-}
diff --git a/keyboards/keebio/viterbi/keymaps/drashna/rules.mk b/keyboards/keebio/viterbi/keymaps/drashna/rules.mk
deleted file mode 100644
index 86a693c3b1..0000000000
--- a/keyboards/keebio/viterbi/keymaps/drashna/rules.mk
+++ /dev/null
@@ -1,25 +0,0 @@
-BOOTMAGIC_ENABLE = no # Enable Bootmagic Lite
-MOUSEKEY_ENABLE = no # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
-COMMAND_ENABLE = no # Commands for debug and configuration
-TAP_DANCE_ENABLE = no
-RGBLIGHT_ENABLE = yes
-AUDIO_ENABLE = yes
-NKRO_ENABLE = yes
-SPLIT_KEYBOARD = no
-SPACE_CADET_ENABLE = no
-
-NO_SECRETS = yes
-INDICATOR_LIGHTS = no
-LAYOUTS = ortho_5x7
-
-# SRC := $(filter-out serial.c matrix.c i2c.c split_util.c,$(SRC))
-# SRC := $(filter-out serial.c,$(SRC))
-# SRC := $(filter-out matrix.c,$(SRC))
-# SRC := $(filter-out i2c.c,$(SRC))
-# SRC := $(filter-out split_util.c,$(SRC))
-# SRC += quantum/matrix.c
-
-BOOTLOADER = qmk-hid
-BOOTLOADER_SIZE = 512
diff --git a/keyboards/keebio/viterbi/keymaps/ericgebhart/config.h b/keyboards/keebio/viterbi/keymaps/ericgebhart/config.h
deleted file mode 100644
index c5f8fff090..0000000000
--- a/keyboards/keebio/viterbi/keymaps/ericgebhart/config.h
+++ /dev/null
@@ -1,24 +0,0 @@
-#pragma once
-
-// #define USE_I2C
-
-/* Select hand configuration */
-
-// #define MASTER_RIGHT
-// #define EE_HANDS
-
-#undef RGBLED_NUM
-#define RGBLIGHT_EFFECT_BREATHING
-#define RGBLIGHT_EFFECT_RAINBOW_MOOD
-#define RGBLIGHT_EFFECT_RAINBOW_SWIRL
-#define RGBLIGHT_EFFECT_SNAKE
-#define RGBLIGHT_EFFECT_KNIGHT
-#define RGBLIGHT_EFFECT_CHRISTMAS
-#define RGBLIGHT_EFFECT_STATIC_GRADIENT
-#define RGBLIGHT_EFFECT_RGB_TEST
-#define RGBLIGHT_EFFECT_ALTERNATING
-#define RGBLIGHT_EFFECT_TWINKLE
-#define RGBLED_NUM 12
-#define RGBLIGHT_HUE_STEP 8
-#define RGBLIGHT_SAT_STEP 8
-#define RGBLIGHT_VAL_STEP 8
diff --git a/keyboards/keebio/viterbi/keymaps/ericgebhart/keymap.c b/keyboards/keebio/viterbi/keymaps/ericgebhart/keymap.c
deleted file mode 100644
index c534fe3c6d..0000000000
--- a/keyboards/keebio/viterbi/keymaps/ericgebhart/keymap.c
+++ /dev/null
@@ -1,18 +0,0 @@
-/*
- Copyright 2018-2022 Eric Gebhart <e.a.gebhart@gmail.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/>.
-*/
-
-// See: users/ericgebhart.
diff --git a/keyboards/keebio/viterbi/keymaps/vosechu/config.h b/keyboards/keebio/viterbi/keymaps/vosechu/config.h
deleted file mode 100644
index a808f80f85..0000000000
--- a/keyboards/keebio/viterbi/keymaps/vosechu/config.h
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
-Copyright 2017 Chuck Lauer Vose <vosechu@gmail.com>
-
-This program is free software: you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program. If not, see <http://www.gnu.org/licenses/>.
-*/
-
-#pragma once
-
-#undef RGBLED_NUM
-#define RGBLIGHT_EFFECT_BREATHING
-#define RGBLIGHT_EFFECT_RAINBOW_MOOD
-#define RGBLIGHT_EFFECT_RAINBOW_SWIRL
-#define RGBLIGHT_EFFECT_SNAKE
-#define RGBLIGHT_EFFECT_KNIGHT
-#define RGBLIGHT_EFFECT_CHRISTMAS
-#define RGBLIGHT_EFFECT_STATIC_GRADIENT
-#define RGBLIGHT_EFFECT_RGB_TEST
-#define RGBLIGHT_EFFECT_ALTERNATING
-#define RGBLIGHT_EFFECT_TWINKLE
-#define RGBLED_NUM 3
-#define RGBLIGHT_HUE_STEP 8
-#define RGBLIGHT_SAT_STEP 8
-
-#define RGBLIGHT_SLEEP // Put the keyboard to sleep when USB goes dark
-
-#define LAYOUT_ortho_half_5x7( \
- L00, L01, L02, L03, L04, L05, L06, \
- L10, L11, L12, L13, L14, L15, L16, \
- L20, L21, L22, L23, L24, L25, L26, \
- L30, L31, L32, L33, L34, L35, L36, \
- L40, L41, L42, L43, L44, L45, L46 \
- ) \
- LAYOUT_ortho_5x14( \
- L00, L01, L02, L03, L04, L05, L06, KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO, \
- L10, L11, L12, L13, L14, L15, L16, KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO, \
- L20, L21, L22, L23, L24, L25, L26, KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO, \
- L30, L31, L32, L33, L34, L35, L36, KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO, \
- L40, L41, L42, L43, L44, L45, L46, KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO \
- )
diff --git a/keyboards/keebio/viterbi/keymaps/vosechu/keymap.c b/keyboards/keebio/viterbi/keymaps/vosechu/keymap.c
deleted file mode 100644
index 0d2677d22b..0000000000
--- a/keyboards/keebio/viterbi/keymaps/vosechu/keymap.c
+++ /dev/null
@@ -1,91 +0,0 @@
-#include QMK_KEYBOARD_H
-#include "vosechu.h"
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
-[BASE] = LAYOUT_ortho_half_5x7( // Base layer
- KC_GRV , KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_9 ,
- ALT_TAB , KC_Q , KC_W , KC_E , KC_R , KC_T , TT(TT1) ,
- CTL_ESC , KC_A , KC_S , KC_D , KC_F , KC_G , TT(TT2) ,
- KC_F13 , KC_Z , KC_X , KC_C , KC_V , KC_B , TT(TT3) ,
- KC_MEH , CTL_GRV , ALT_TAB , KC_LALT , MO(LWR) , LFT_BK , SFT_SPC
-),
-[LWR] = LAYOUT_ortho_half_5x7( // EVE layer
- _______ , _______ , _______ , _______ , _______ , _______ , _______ ,
- A(KC_LEFT), KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_F5 , KC_F9 ,
- SFT_SPC , A(KC_F1), A(KC_F2), A(KC_F3), A(KC_F4), _______ , _______ ,
- A(KC_RGHT), C(KC_F1), C(KC_F2), C(KC_F3), C(KC_F4), _______ , _______ ,
- _______ , QK_BOOT, _______ , _______ , _LAYER_ , KC_DEL , KC_ENT
-),
-[LFT] = LAYOUT_ortho_half_5x7( // Media
- _______ , KC_F10 , KC_F11 , KC_F12 , KC_PSCR , KC_SCRL , KC_PAUS ,
- _______ , KC_F7 , KC_F8 , KC_F9 , KC_INS , KC_HOME , KC_PGUP ,
- RGB_TOG , KC_F4 , KC_F5 , KC_F6 , KC_DEL , KC_END , KC_PGDN ,
- _______ , KC_F1 , KC_F2 , KC_F3 , KC_VOLU , KC_VOLD , KC_MUTE ,
- _______ , _______ , _______ , _______ , PSWD , _LAYER_ , PSWD_ALT
-),
-[TT1] = LAYOUT_ortho_half_5x7( // Override WASD with arrows
- _______ , _______ , _______ , _______ , _______ , _______ , _______ ,
- _______ , _______ , KC_UP , _______ , _______ , _______ , _______ ,
- _______ , KC_LEFT , KC_DOWN , KC_RGHT , _______ , _______ , _______ ,
- _______ , _______ , _______ , _______ , _______ , _______ , _______ ,
- _______ , _______ , _______ , _______ , _______ , _______ , _______
-),
-[TT2] = LAYOUT_ortho_half_5x7( // Browser layer
- C(KC_W) , C(KC_1) , C(KC_T) , C(KC_9) , _______ , _______ , _______ ,
- WBWSRBK , WTABLFT , KC_UP , WTABRGT , WBWSRFW , _______ , _______ ,
- KC_ESC , KC_LEFT , KC_DOWN , KC_RGHT , C(KC_R) , _______ , _______ ,
- _______ , _______ , _______ , _______ , _______ , _______ , TT(T23X),
- _______ , _______ , _______ , _______ , _______ , _______ , _______
-),
-[TT3] = LAYOUT_ortho_half_5x7( // OS X override layer
- _______ , _______ , _______ , _______ , _______ , _______ , _______ ,
- _______ , _______ , _______ , _______ , _______ , _______ , _______ ,
- _______ , _______ , _______ , _______ , _______ , _______ , TT(T23X),
- _______ , _______ , _______ , _______ , _______ , _______ , _______ ,
- _______ , _______ , _______ , KC_LGUI , _______ , _______ , _______
-),
-[T23X] = LAYOUT_ortho_half_5x7( // Browser layer
- G(KC_W) , G(KC_1) , G(KC_T) , G(KC_9) , _______ , SLACKTB , _______ ,
- BWSR_BK , TAB_LFT , KC_UP , TAB_RGT , BWSR_FW , SLACKUP , _______ ,
- KC_ESC , KC_LEFT , KC_DOWN , KC_RGHT , G(KC_R) , SLACKDN , _______ ,
- _______ , _______ , KC_Q , KC_J , KC_K , _______ , _______ ,
- _______ , _______ , _______ , KC_LGUI , _______ , _______ , _______
-),
-// [_EMPTY] = LAYOUT(
-// _______ , _______ , _______ , _______ , _______ , _______ , _______ ,
-// _______ , _______ , _______ , _______ , _______ , _______ , _______ ,
-// _______ , _______ , _______ , _______ , _______ , _______ , _______ ,
-// _______ , _______ , _______ , _______ , _______ , _______ , _______ ,
-// _______ , _______ , _______ , _______ , _______ , _______ , _______
-// ),
-};
-
-void keyboard_post_init_user(void) {
- // Call the post init code.
- rgblight_enable_noeeprom(); // enables Rgb, without saving settings
- rgblight_mode_noeeprom(0);
- rgblight_sethsv_noeeprom(0, 0, 0);
-}
-
-layer_state_t layer_state_set_user(layer_state_t state) {
- switch (get_highest_layer(state)) {
- case TT1:
- rgblight_sethsv_noeeprom(HSV_BLUE);
- break;
- case TT2:
- rgblight_sethsv_noeeprom(HSV_PURPLE);
- break;
- case T23X:
- rgblight_sethsv_noeeprom(HSV_GOLD);
- break;
- case TT3:
- rgblight_sethsv_noeeprom(HSV_GREEN);
- break;
- default: // for any other layers, or the default layer
- rgblight_sethsv_noeeprom(0, 0, 0);
- break;
- }
-
- return state;
-}
diff --git a/keyboards/keebio/viterbi/keymaps/vosechu/rules.mk b/keyboards/keebio/viterbi/keymaps/vosechu/rules.mk
deleted file mode 100644
index 1e3cebb145..0000000000
--- a/keyboards/keebio/viterbi/keymaps/vosechu/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-RGBLIGHT_ENABLE = yes
diff --git a/keyboards/keebsforall/coarse60/config.h b/keyboards/keebsforall/coarse60/config.h
index a9cd3b03b0..6ea9b9aae2 100644
--- a/keyboards/keebsforall/coarse60/config.h
+++ b/keyboards/keebsforall/coarse60/config.h
@@ -25,7 +25,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
/* Locking resynchronize hack */
#define LOCKING_RESYNC_ENABLE
-#define WS2812_SPI SPID2
+#define WS2812_SPI_DRIVER SPID2
#define WS2812_SPI_MOSI_PAL_MODE 0
#define WS2812_SPI_SCK_PAL_MODE 0
#define WS2812_SPI_SCK_PIN B13
diff --git a/keyboards/keebwerk/mega/ansi/ansi.c b/keyboards/keebwerk/mega/ansi/ansi.c
index 4494ffd9ff..4b10cdde66 100755
--- a/keyboards/keebwerk/mega/ansi/ansi.c
+++ b/keyboards/keebwerk/mega/ansi/ansi.c
@@ -20,6 +20,146 @@
#include "ansi.h"
#include "drivers/led/issi/is31fl3733.h"
+#if defined(RGB_MATRIX_ENABLE) || defined(RGB_BACKLIGHT_KW_MEGA)
+const is31fl3733_led_t PROGMEM g_is31fl3733_leds[IS31FL3733_LED_COUNT] = {
+/* Refer to IS31 manual for these locations
+ * driver
+ * | R location
+ * | | G location
+ * | | | B location
+ * | | | | */
+ {0, B_1, A_1, C_1}, //LA1
+ {0, E_1, D_1, F_1}, //LA2
+ {0, H_1, G_1, I_1}, //LA3
+ {0, K_1, J_1, L_1}, //LA4
+ {0, B_2, A_2, C_2}, //LA5
+ {0, E_2, D_2, F_2}, //LA6
+ {0, H_2, G_2, I_2}, //LA7
+ {0, K_2, J_2, L_2}, //LA8
+ {0, B_3, A_3, C_3}, //LA9
+ {0, E_3, D_3, F_3}, //LA10
+ {0, H_3, G_3, I_3}, //LA11
+ {0, K_3, J_3, L_3}, //LA12
+ {0, B_4, A_4, C_4}, //LA13
+ {0, E_4, D_4, F_4}, //LA14
+ {0, H_4, G_4, I_4}, //LA15
+ {0, K_4, J_4, L_4}, //LA16
+ {0, B_5, A_5, C_5}, //LA17
+ {0, E_5, D_5, F_5}, //LA18
+ {0, H_5, G_5, I_5}, //LA19
+ {0, K_5, J_5, L_5}, //LA20
+ {0, B_6, A_6, C_6}, //LA21
+ {0, E_6, D_6, F_6}, //LA22
+ {0, H_6, G_6, I_6}, //LA23
+ {0, K_6, J_6, L_6}, //LA24
+ {0, B_7, A_7, C_7}, //LA25
+ {0, E_7, D_7, F_7}, //LA26
+ {0, H_7, G_7, I_7}, //LA27
+ {0, K_7, J_7, L_7}, //LA28
+ {0, B_8, A_8, C_8}, //LA29
+ {0, E_8, D_8, F_8}, //LA30
+ {0, H_8, G_8, I_8}, //LA31
+ {0, K_8, J_8, L_8}, //LA32
+ {0, B_9, A_9, C_9}, //LA33
+ {0, E_9, D_9, F_9}, //LA34
+ {0, H_9, G_9, I_9}, //LA35
+ {0, K_9, J_9, L_9}, //LA36
+ {0, B_10, A_10, C_10}, //LA37
+ {0, E_10, D_10, F_10}, //LA38
+ {0, H_10, G_10, I_10}, //LA39
+ {0, K_10, J_10, L_10}, //LA40
+ {0, B_11, A_11, C_11}, //LA41
+ {0, E_11, D_11, F_11}, //LA42
+ {0, H_11, G_11, I_11}, //LA43
+ {0, K_11, J_11, L_11}, //LA44
+ {0, B_12, A_12, C_12}, //LA45
+ {0, E_12, D_12, F_12}, //LA46
+ {0, H_12, G_12, I_12}, //LA47
+ {0, K_12, J_12, L_12}, //LA48
+ {0, B_13, A_13, C_13}, //LA49
+ {0, E_13, D_13, F_13}, //LA50
+ {0, H_13, G_13, I_13}, //LA51
+ {0, K_13, J_13, L_13}, //LA52
+ {0, B_14, A_14, C_14}, //LA53
+ {0, E_14, D_14, F_14}, //LA54
+ {0, H_14, G_14, I_14}, //LA55
+ {0, K_14, J_14, L_14}, //LA56
+ {0, B_15, A_15, C_15}, //LA57
+ {0, E_15, D_15, F_15}, //LA58
+ {0, H_15, G_15, I_15}, //LA59
+ {0, K_15, J_15, L_15}, //LA60
+ {0, B_16, A_16, C_16}, //LA61
+ {0, E_16, D_16, F_16}, //LA62
+ {0, H_16, G_16, I_16}, //LA63
+ {0, K_16, J_16, L_16}, //LA64
+
+ {1, B_1, A_1, C_1}, //LB1
+ {1, E_1, D_1, F_1}, //LB2
+ {1, H_1, G_1, I_1}, //LB3
+ {1, K_1, J_1, L_1}, //LB4
+ {1, B_2, A_2, C_2}, //LB5
+ {1, E_2, D_2, F_2}, //LB6
+ {1, H_2, G_2, I_2}, //LB7
+ {1, K_2, J_2, L_2}, //LB8
+ {1, B_3, A_3, C_3}, //LB9
+ {1, E_3, D_3, F_3}, //LB10
+ {1, H_3, G_3, I_3}, //LB11
+ {1, K_3, J_3, L_3}, //LB12
+ {1, B_4, A_4, C_4}, //LB13
+ {1, E_4, D_4, F_4}, //LB14
+ {1, H_4, G_4, I_4}, //LB15
+ {1, K_4, J_4, L_4}, //LB16
+ {1, B_5, A_5, C_5}, //LB17
+ {1, E_5, D_5, F_5}, //LB18
+ {1, H_5, G_5, I_5}, //LB19
+ {1, K_5, J_5, L_5}, //LB20
+ {1, B_6, A_6, C_6}, //LB21
+ {1, E_6, D_6, F_6}, //LB22
+ {1, H_6, G_6, I_6}, //LB23
+ {1, K_6, J_6, L_6}, //LB24
+ {1, B_7, A_7, C_7}, //LB25
+ {1, E_7, D_7, F_7}, //LB26
+ {1, H_7, G_7, I_7}, //LB27
+ {1, K_7, J_7, L_7}, //LB28
+ {1, B_8, A_8, C_8}, //LB29
+ {1, E_8, D_8, F_8}, //LB30
+ {1, H_8, G_8, I_8}, //LB31
+ {1, K_8, J_8, L_8}, //LB32
+ {1, B_9, A_9, C_9}, //LB33
+ {1, E_9, D_9, F_9}, //LB34
+ {1, H_9, G_9, I_9}, //LB35
+ {1, K_9, J_9, L_9}, //LB36
+ {1, B_10, A_10, C_10}, //LB37
+ {1, E_10, D_10, F_10}, //LB38
+ {1, H_10, G_10, I_10}, //LB39
+ {1, K_10, J_10, L_10}, //LB40
+ {1, B_11, A_11, C_11}, //LB41
+ {1, E_11, D_11, F_11}, //LB42
+ {1, H_11, G_11, I_11}, //LB43
+ {1, K_11, J_11, L_11}, //LB44
+ {1, B_12, A_12, C_12}, //LB45
+ {1, E_12, D_12, F_12}, //LB46
+ {1, H_12, G_12, I_12}, //LB47
+ {1, K_12, J_12, L_12}, //LB48
+ {1, B_13, A_13, C_13}, //LB49
+ {1, E_13, D_13, F_13}, //LB50
+ {1, H_13, G_13, I_13}, //LB51
+ {1, K_13, J_13, L_13}, //LB52
+ {1, B_14, A_14, C_14}, //LB53
+ {1, E_14, D_14, F_14}, //LB54
+ {1, H_14, G_14, I_14}, //LB55
+ {1, K_14, J_14, L_14}, //LB56
+ {1, B_15, A_15, C_15}, //LB57
+ {1, E_15, D_15, F_15}, //LB58
+ {1, H_15, G_15, I_15}, //LB59
+ {1, K_15, J_15, L_15}, //LB60
+ {1, B_16, A_16, C_16}, //LB61
+ {1, E_16, D_16, F_16}, //LB62
+ {1, H_16, G_16, I_16}, //LB63
+ {1, K_16, J_16, L_16}, //LB64
+};
+#endif
+
uint8_t R = 0;
uint8_t G = 0;
uint8_t B = 0;
diff --git a/keyboards/keebwerk/mega/ansi/config.h b/keyboards/keebwerk/mega/ansi/config.h
index c02f298e84..8a110a91dc 100755
--- a/keyboards/keebwerk/mega/ansi/config.h
+++ b/keyboards/keebwerk/mega/ansi/config.h
@@ -50,8 +50,9 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define RGB_BACKLIGHT_COLOR_1 { .h = 0, .s = 255 }
#define RGB_BACKLIGHT_COLOR_2 { .h = 127, .s = 255 }
-#define DRIVER_COUNT 2
-#define RGB_MATRIX_LED_COUNT 128
+#define IS31FL3733_I2C_ADDRESS_1 IS31FL3733_I2C_ADDRESS_GND_GND
+#define IS31FL3733_I2C_ADDRESS_2 IS31FL3733_I2C_ADDRESS_GND_SDA
+#define IS31FL3733_LED_COUNT 128
// These define which keys in the matrix are alphas/mods
// Used for backlight effects so colors are different for
diff --git a/keyboards/keebwerk/mega/ansi/keymaps/jesusvallejo/keymap.c b/keyboards/keebwerk/mega/ansi/keymaps/jesusvallejo/keymap.c
index 2b5d658f02..307eac90e1 100644
--- a/keyboards/keebwerk/mega/ansi/keymaps/jesusvallejo/keymap.c
+++ b/keyboards/keebwerk/mega/ansi/keymaps/jesusvallejo/keymap.c
@@ -14,7 +14,7 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include QMK_KEYBOARD_H
-#include "drivers/issi/is31fl3733.h"
+#include "drivers/led/issi/is31fl3733.h"
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
@@ -50,9 +50,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
static uint16_t ledTimer;
-uint8_t R = 0; /* First led*/
-uint8_t G = 0; /* Second led*/
-uint8_t B = 0; /* Third led*/
+uint8_t r = 0; /* First led*/
+uint8_t g = 0; /* Second led*/
+uint8_t b = 0; /* Third led*/
/* Boot animation parameters */
@@ -74,44 +74,44 @@ bool bootAnimation(void){
if (bootFirst>0 || bootSec>0){
if(bootFirst!=0){
if (timer_elapsed(ledTimer) > 150){
- G = 255;
- R = 0;
- B = 0;
- is31fl3733_set_color( 6+64-1, R, G, B );
+ g = 255;
+ r = 0;
+ b = 0;
+ is31fl3733_set_color( 6+64-1, r, g, b );
}
if (timer_elapsed(ledTimer) > 300){
- G = 255;
- R = 255;
- B = 0;
- is31fl3733_set_color( 6+64-1, R, G, B );
+ g = 255;
+ r = 255;
+ b = 0;
+ is31fl3733_set_color( 6+64-1, r, g, b );
}
if (timer_elapsed(ledTimer) > 400){
- G = 255;
- R = 255;
- B = 255;
- is31fl3733_set_color( 6+64-1, R, G, B );
+ g = 255;
+ r = 255;
+ b = 255;
+ is31fl3733_set_color( 6+64-1, r, g, b );
}
if (timer_elapsed(ledTimer) > 500){
- G = 0;
- R = 0;
- B = 0;
- is31fl3733_set_color( 6+64-1, R, G, B );
+ g = 0;
+ r = 0;
+ b = 0;
+ is31fl3733_set_color( 6+64-1, r, g, b );
ledTimer = timer_read();
bootFirst--;
}
}
if (bootFirst==0 && bootSec!=0){
if (timer_elapsed(ledTimer) > 200) {
- G = 255;
- R = 255;
- B = 255;
- is31fl3733_set_color( 6+64-1, R, G, B );
+ g = 255;
+ r = 255;
+ b = 255;
+ is31fl3733_set_color( 6+64-1, r, g, b );
}
if (timer_elapsed(ledTimer) > 400){
- G = 0;
- R = 0;
- B = 0;
- is31fl3733_set_color( 6+64-1, R, G, B );
+ g = 0;
+ r = 0;
+ b = 0;
+ is31fl3733_set_color( 6+64-1, r, g, b );
ledTimer = timer_read();
bootSec--;
}
@@ -125,29 +125,29 @@ bool bootAnimation(void){
void breathing(void) {
if(timer_elapsed(ledTimer)<travelTime){
time = timer_elapsed(ledTimer);
- if((time - previousTime) > fadeTime && R<maxBrightness){
- G+=fadeStep;
- R+=fadeStep;
- B+=fadeStep;
- is31fl3733_set_color( 6+64-1, R, G, B );
+ if((time - previousTime) > fadeTime && r<maxBrightness){
+ g+=fadeStep;
+ r+=fadeStep;
+ b+=fadeStep;
+ is31fl3733_set_color( 6+64-1, r, g, b );
previousTime = time;
}
}
else if(timer_elapsed(ledTimer)<(travelTime * 2)){
time = timer_elapsed(ledTimer);
- if((time - previousTime) > fadeTime && R>minBrightness){
- G-=fadeStep;
- R-=fadeStep;
- B-=fadeStep;
- is31fl3733_set_color( 6+64-1, R, G, B );
+ if((time - previousTime) > fadeTime && r>minBrightness){
+ g-=fadeStep;
+ r-=fadeStep;
+ b-=fadeStep;
+ is31fl3733_set_color( 6+64-1, r, g, b );
previousTime = time;
}
}
else {
- R=0;
- G=0;
- B=0;
- is31fl3733_set_color( 6+64-1, R, G, B );
+ r=0;
+ g=0;
+ b=0;
+ is31fl3733_set_color( 6+64-1, r, g, b );
previousTime = 0;
time = 0;
ledTimer=timer_read();
@@ -166,10 +166,10 @@ void matrix_scan_user(void){
prevCapsState = capsState;
}
else if(!capsState && capsState != prevCapsState){
- G = 0;
- R = 0;
- B = 0;
- is31fl3733_set_color( 6+64-1, R, G, B );
+ g = 0;
+ r = 0;
+ b = 0;
+ is31fl3733_set_color( 6+64-1, r, g, b );
prevCapsState = capsState;
}
}
diff --git a/keyboards/keebwerk/mega/ansi/rules.mk b/keyboards/keebwerk/mega/ansi/rules.mk
index 5546dc18d4..e257f3063f 100755
--- a/keyboards/keebwerk/mega/ansi/rules.mk
+++ b/keyboards/keebwerk/mega/ansi/rules.mk
@@ -24,4 +24,4 @@ SRC += keyboards/wilba_tech/wt_main.c \
keyboards/wilba_tech/wt_rgb_backlight.c \
drivers/led/issi/is31fl3733.c \
quantum/color.c
-QUANTUM_LIB_SRC += i2c_master.c
+I2C_DRIVER_REQUIRED = yes
diff --git a/keyboards/keebwerk/nano_slider/rules.mk b/keyboards/keebwerk/nano_slider/rules.mk
index a7fcafd4b9..d133bb6d6e 100644
--- a/keyboards/keebwerk/nano_slider/rules.mk
+++ b/keyboards/keebwerk/nano_slider/rules.mk
@@ -13,4 +13,4 @@ MIDI_ENABLE = yes # MIDI support
AUDIO_ENABLE = no # Audio output
LTO_ENABLE = yes
-SRC += analog.c
+ANALOG_DRIVER_REQUIRED = yes
diff --git a/keyboards/keyboardio/atreus/keymaps/dshields/keymap.c b/keyboards/keyboardio/atreus/keymaps/dshields/keymap.c
deleted file mode 100644
index 4ee528ce52..0000000000
--- a/keyboards/keyboardio/atreus/keymaps/dshields/keymap.c
+++ /dev/null
@@ -1,45 +0,0 @@
-/* Copyright 2021 Daniel Shields
- *
- * 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 "dshields.h"
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [DEF] = LAYOUT(
- KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P ,
- MT_A, MT_S, MT_D, MT_F, LT_G, LT_H, MT_J, MT_K, MT_L, MT_SCLN,
- KC_Z, KC_X, KC_C, KC_V, KC_B, KC_TAB, KC_ENT, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH,
- OSMLCTL, MT_ESC, OSMLALT, OSL_FUN, MT_BSPC, OSL_LWR, OSL_RSE, MT_SPC, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT
- ),
- [LWR] = LAYOUT(
- KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN,
- KC_TILD, _______, _______, _______, _______, KC_UNDS, KC_PLUS, _______, KC_LCBR, KC_RCBR,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DQUO, KC_PIPE,
- _______, _______, _______, _______, KC_DEL, _______, _______, KC_ENT, KC_HOME, KC_PGDN, KC_PGUP, KC_END
- ),
-
- [RSE] = LAYOUT(
- KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0 ,
- KC_GRV, _______, _______, _______, _______, KC_MINS, KC_EQL, _______, KC_LBRC, KC_RBRC,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_QUOT, KC_BSLS,
- _______, _______, _______, _______, KC_DEL, _______, _______, KC_ENT, KC_HOME, KC_PGDN, KC_PGUP, KC_END
- ),
- [FUN] = LAYOUT(
- 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_F13, KC_F14, KC_F15, _______, KC_WH_L, KC_WH_D, KC_WH_U, KC_WH_R,
- _______, _______, _______, _______, _______, QK_BOOT, EE_CLR, _______, _______, KC_BTN1, KC_BTN2, KC_BTN3,
- _______, _______, _______, _______, _______, _______, _______, _______, KC_MS_L, KC_MS_D, KC_MS_U, KC_MS_R
- )
-};
diff --git a/keyboards/keyboardio/atreus/keymaps/manna-harbour_miryoku/config.h b/keyboards/keyboardio/atreus/keymaps/manna-harbour_miryoku/config.h
deleted file mode 100644
index 4251834da2..0000000000
--- a/keyboards/keyboardio/atreus/keymaps/manna-harbour_miryoku/config.h
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright 2019 Manna Harbour
-// https://github.com/manna-harbour/miryoku
-
-// 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 XXX KC_NO
-
-#define LAYOUT_miryoku( \
-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, \
-N30, N31, K32, K33, K34, K35, K36, K37, N38, N39 \
-) \
-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, XXX, XXX, K25, K26, K27, K28, K29, \
-XXX, XXX, XXX, K32, K33, K34, K35, K36, K37, XXX, XXX, XXX \
-)
diff --git a/keyboards/keyboardio/atreus/keymaps/manna-harbour_miryoku/keymap.c b/keyboards/keyboardio/atreus/keymaps/manna-harbour_miryoku/keymap.c
deleted file mode 100644
index dbab7f9820..0000000000
--- a/keyboards/keyboardio/atreus/keymaps/manna-harbour_miryoku/keymap.c
+++ /dev/null
@@ -1,4 +0,0 @@
-// Copyright 2019 Manna Harbour
-// https://github.com/manna-harbour/miryoku
-
-// 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/>.
diff --git a/keyboards/keyboardio/model01/keymaps/dshields/config.h b/keyboards/keyboardio/model01/keymaps/dshields/config.h
deleted file mode 100644
index fdb23d46ba..0000000000
--- a/keyboards/keyboardio/model01/keymaps/dshields/config.h
+++ /dev/null
@@ -1,4 +0,0 @@
-#pragma once
-
-#define RGB_DIGITAL_RAIN_DROPS 18
-
diff --git a/keyboards/keyboardio/model01/keymaps/dshields/keymap.c b/keyboards/keyboardio/model01/keymaps/dshields/keymap.c
deleted file mode 100644
index aa5ef5d4ca..0000000000
--- a/keyboards/keyboardio/model01/keymaps/dshields/keymap.c
+++ /dev/null
@@ -1,28 +0,0 @@
-#include QMK_KEYBOARD_H
-#include "dshields.h"
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-[DEF] = LAYOUT(
- QK_BOOT, KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , _______,
- KC_GRV , KC_Q , KC_W , KC_E , KC_R , KC_T , RGB_TOG, DM_REC1, KC_Y , KC_U , KC_I , KC_O , KC_P , KC_EQL ,
- KC_PGUP, MT_A , MT_S , MT_D , MT_F , LT_G , KC_TAB , KC_ENT , LT_H , MT_J , MT_K , MT_L , MT_SCLN, KC_QUOT,
- KC_PGDN, KC_Z , KC_X , KC_C , KC_V , KC_B , KC_ESC , DM_PLY1, KC_N , KC_M , KC_COMM, KC_DOT , KC_SLSH, KC_MINS,
- OSMLCTL, OSMRCTL,
- KC_BSPC, KC_SPC ,
- KC_LGUI, OSMRALT,
- OSMLSFT, OSMRSFT,
- OSL_FUN, OSL_FUN
- ),
-[FUN] = LAYOUT(
- EE_CLR, KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_F5 , KC_F6 , KC_F7 , KC_F8 , KC_F9 , KC_F10 , KC_F11 ,
- KC_TAB , _______, KC_MS_U, _______, KC_BTN3, _______, RGB_MOD, DM_REC2, _______, KC_LCBR, KC_RCBR, KC_LBRC, KC_RBRC, KC_F12 ,
- KC_HOME, KC_MS_L, KC_MS_D, KC_MS_R, KC_BTN1, _______, RGB_HUI, DM_RSTP, KC_LEFT, KC_DOWN, KC_UP , KC_RGHT, _______, _______,
- KC_END , KC_PSCR, KC_INS , _______, KC_BTN2, _______, RGB_HUD, DM_PLY2, _______, _______, _______, _______, KC_BSLS, KC_PIPE,
- _______, _______,
- KC_DEL , KC_ENT ,
- _______, _______,
- _______, _______,
- _______, _______
- )
-};
-
diff --git a/keyboards/keyboardio/model01/keymaps/dshields/readme.md b/keyboards/keyboardio/model01/keymaps/dshields/readme.md
deleted file mode 100644
index ead1c1aad2..0000000000
--- a/keyboards/keyboardio/model01/keymaps/dshields/readme.md
+++ /dev/null
@@ -1,10 +0,0 @@
-
-About
-------
-
-A lightly modded version of the default keymap.
-
-- One-shot modifiers and layers.
-- Dynamic macros
-- No num lock layer
-
diff --git a/keyboards/keyboardio/model01/keymaps/manna-harbour_miryoku/config.h b/keyboards/keyboardio/model01/keymaps/manna-harbour_miryoku/config.h
deleted file mode 100644
index b97a66c264..0000000000
--- a/keyboards/keyboardio/model01/keymaps/manna-harbour_miryoku/config.h
+++ /dev/null
@@ -1,26 +0,0 @@
-// Copyright 2022 Manna Harbour
-// https://github.com/manna-harbour/miryoku
-
-// 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 XXX KC_NO
-
-#define LAYOUT_miryoku( \
- 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, \
- N30, N31, K32, K33, K34, K35, K36, K37, N38, N39 \
-) \
-LAYOUT( \
-XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, \
-XXX, K00, K01, K02, K03, K04, XXX, XXX, K05, K06, K07, K08, K09, XXX, \
-XXX, K10, K11, K12, K13, K14, XXX, XXX, K15, K16, K17, K18, K19, XXX, \
-XXX, K20, K21, K22, K23, K24, XXX, XXX, K25, K26, K27, K28, K29, XXX, \
- K32, K37, \
- K33, K36, \
- K34, K35, \
- XXX, XXX, \
- XXX, XXX \
-)
diff --git a/keyboards/keyboardio/model01/keymaps/manna-harbour_miryoku/keymap.c b/keyboards/keyboardio/model01/keymaps/manna-harbour_miryoku/keymap.c
deleted file mode 100644
index dbab7f9820..0000000000
--- a/keyboards/keyboardio/model01/keymaps/manna-harbour_miryoku/keymap.c
+++ /dev/null
@@ -1,4 +0,0 @@
-// Copyright 2019 Manna Harbour
-// https://github.com/manna-harbour/miryoku
-
-// 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/>.
diff --git a/keyboards/keyboardio/model01/keymaps/manna-harbour_miryoku/rules.mk b/keyboards/keyboardio/model01/keymaps/manna-harbour_miryoku/rules.mk
deleted file mode 100644
index 6a111feef0..0000000000
--- a/keyboards/keyboardio/model01/keymaps/manna-harbour_miryoku/rules.mk
+++ /dev/null
@@ -1,4 +0,0 @@
-# Copyright 2022 Manna Harbour
-# https://github.com/manna-harbour/miryoku
-
-CONSOLE_ENABLE = no
diff --git a/keyboards/keyboardio/model01/rules.mk b/keyboards/keyboardio/model01/rules.mk
index e653ec5f73..29e1f4fea8 100644
--- a/keyboards/keyboardio/model01/rules.mk
+++ b/keyboards/keyboardio/model01/rules.mk
@@ -9,7 +9,7 @@ COMMAND_ENABLE = no # Commands for debug and configuration
NKRO_ENABLE = no # Enable N-Key Rollover
CUSTOM_MATRIX = yes
-QUANTUM_LIB_SRC += i2c_master.c
+I2C_DRIVER_REQUIRED = yes
SRC += leds.c \
matrix.c
diff --git a/keyboards/keychron/c1_pro/ansi/rgb/config.h b/keyboards/keychron/c1_pro/ansi/rgb/config.h
index a103d190d0..a88319a63d 100644
--- a/keyboards/keychron/c1_pro/ansi/rgb/config.h
+++ b/keyboards/keychron/c1_pro/ansi/rgb/config.h
@@ -20,19 +20,17 @@
// #define MATRIX_UNSELECT_DRIVE_HIGH
/* RGB Matrix Driver Configuration */
-#define DRIVER_COUNT 2
-#define DRIVER_ADDR_1 0b1110111
-#define DRIVER_ADDR_2 0b1110100
+#define SNLED27351_I2C_ADDRESS_1 SNLED27351_I2C_ADDRESS_VDDIO
+#define SNLED27351_I2C_ADDRESS_2 SNLED27351_I2C_ADDRESS_GND
/* RGB Matrix Configuration */
#define DRIVER_1_LED_TOTAL 49
#define DRIVER_2_LED_TOTAL 39
#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL)
-/* Scan phase of led driver set as MSKPHASE_9CHANNEL(defined as 0x03 in CKLED2001.h) */
-#define PHASE_CHANNEL MSKPHASE_9CHANNEL
+#define SNLED27351_PHASE_CHANNEL SNLED27351_SCAN_PHASE_9_CHANNEL
/* Set led driver current */
-#define CKLED2001_CURRENT_TUNE \
+#define SNLED27351_CURRENT_TUNE \
{ 0x9D, 0x9D, 0x44, 0x9D, 0x9D, 0x44, 0x9D, 0x9D, 0x44, 0x9D, 0x9D, 0x44 }
/* turn off effects when suspended */
diff --git a/keyboards/keychron/c1_pro/ansi/rgb/info.json b/keyboards/keychron/c1_pro/ansi/rgb/info.json
index c6011a2837..fcd805706b 100644
--- a/keyboards/keychron/c1_pro/ansi/rgb/info.json
+++ b/keyboards/keychron/c1_pro/ansi/rgb/info.json
@@ -105,7 +105,7 @@
}
},
"rgb_matrix": {
- "driver": "ckled2001",
+ "driver": "snled27351",
"animations": {
"breathing": true,
"band_spiral_val": true,
diff --git a/keyboards/keychron/c1_pro/ansi/rgb/rgb.c b/keyboards/keychron/c1_pro/ansi/rgb/rgb.c
index 04565f3b01..c04e82a44e 100644
--- a/keyboards/keychron/c1_pro/ansi/rgb/rgb.c
+++ b/keyboards/keychron/c1_pro/ansi/rgb/rgb.c
@@ -18,8 +18,8 @@
// clang-format off
#ifdef RGB_MATRIX_ENABLE
-const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = {
-/* Refer to CKLED2001 manual for these locations
+const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = {
+/* Refer to SNLED27351 manual for these locations
* driver
* | R location
* | | G location
diff --git a/keyboards/keychron/c1_pro/ansi/white/config.h b/keyboards/keychron/c1_pro/ansi/white/config.h
index dd3e1da477..a8a836c5dd 100644
--- a/keyboards/keychron/c1_pro/ansi/white/config.h
+++ b/keyboards/keychron/c1_pro/ansi/white/config.h
@@ -20,16 +20,14 @@
// #define MATRIX_UNSELECT_DRIVE_HIGH
/* LED Matrix Driver Configuration */
-#define DRIVER_COUNT 1
-#define DRIVER_ADDR_1 0b1110100
+#define SNLED27351_I2C_ADDRESS_1 SNLED27351_I2C_ADDRESS_GND
/* LED Matrix Configuration */
#define LED_MATRIX_LED_COUNT 90
-/* Scan phase of led driver set as MSKPHASE_9CHANNEL(defined as 0x03 in CKLED2001.h) */
-#define PHASE_CHANNEL MSKPHASE_9CHANNEL
+#define SNLED27351_PHASE_CHANNEL SNLED27351_SCAN_PHASE_9_CHANNEL
/* Set led driver current */
-#define CKLED2001_CURRENT_TUNE \
+#define SNLED27351_CURRENT_TUNE \
{ 0x9D, 0x9D, 0x44, 0x9D, 0x9D, 0x44, 0x9D, 0x9D, 0x44, 0x9D, 0x9D, 0x44 }
/* turn off effects when suspended */
diff --git a/keyboards/keychron/c1_pro/ansi/white/info.json b/keyboards/keychron/c1_pro/ansi/white/info.json
index 070ed6c427..4a6c6e2b8d 100644
--- a/keyboards/keychron/c1_pro/ansi/white/info.json
+++ b/keyboards/keychron/c1_pro/ansi/white/info.json
@@ -105,7 +105,7 @@
}
},
"led_matrix": {
- "driver": "ckled2001",
+ "driver": "snled27351",
"animations": {
"none": true,
"solid": true,
diff --git a/keyboards/keychron/c1_pro/ansi/white/white.c b/keyboards/keychron/c1_pro/ansi/white/white.c
index 72e9ad4db1..15f291e80c 100644
--- a/keyboards/keychron/c1_pro/ansi/white/white.c
+++ b/keyboards/keychron/c1_pro/ansi/white/white.c
@@ -18,8 +18,8 @@
// clang-format off
#ifdef LED_MATRIX_ENABLE
-const ckled2001_led PROGMEM g_ckled2001_leds[LED_MATRIX_LED_COUNT] = {
-/* Refer to CKLED2001 manual for these locations
+const snled27351_led_t PROGMEM g_snled27351_leds[LED_MATRIX_LED_COUNT] = {
+/* Refer to SNLED27351 manual for these locations
* driver
* | LED address
* | | */
diff --git a/keyboards/keychron/c2_pro/ansi/rgb/config.h b/keyboards/keychron/c2_pro/ansi/rgb/config.h
index d62b756f5a..47b47b920d 100644
--- a/keyboards/keychron/c2_pro/ansi/rgb/config.h
+++ b/keyboards/keychron/c2_pro/ansi/rgb/config.h
@@ -17,12 +17,11 @@
#pragma once
/* RGB Matrix Driver Configuration */
-#define DRIVER_COUNT 2
-#define DRIVER_ADDR_1 0b1110111
-#define DRIVER_ADDR_2 0b1110100
+#define SNLED27351_I2C_ADDRESS_1 SNLED27351_I2C_ADDRESS_VDDIO
+#define SNLED27351_I2C_ADDRESS_2 SNLED27351_I2C_ADDRESS_GND
/* Set LED driver current */
-#define CKLED2001_CURRENT_TUNE \
+#define SNLED27351_CURRENT_TUNE \
{ 0xAA, 0xAA, 0x56, 0xAA, 0xAA, 0x56, 0xAA, 0xAA, 0x56, 0xAA, 0xAA, 0x56 }
/* RGB Matrix Configuration */
diff --git a/keyboards/keychron/c2_pro/ansi/rgb/info.json b/keyboards/keychron/c2_pro/ansi/rgb/info.json
index e527af3371..1eee0ee1cd 100644
--- a/keyboards/keychron/c2_pro/ansi/rgb/info.json
+++ b/keyboards/keychron/c2_pro/ansi/rgb/info.json
@@ -122,7 +122,7 @@
}
},
"rgb_matrix": {
- "driver": "ckled2001",
+ "driver": "snled27351",
"animations": {
"breathing": true,
"band_spiral_val": true,
diff --git a/keyboards/keychron/c2_pro/ansi/rgb/rgb.c b/keyboards/keychron/c2_pro/ansi/rgb/rgb.c
index 998933081f..d42c2de39e 100644
--- a/keyboards/keychron/c2_pro/ansi/rgb/rgb.c
+++ b/keyboards/keychron/c2_pro/ansi/rgb/rgb.c
@@ -17,8 +17,8 @@
#include "quantum.h"
#ifdef RGB_MATRIX_ENABLE
-const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = {
-/* Refer to CKLED2001 manual for these locations
+const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = {
+/* Refer to SNLED27351 manual for these locations
* driver
* | R location
* | | G location
diff --git a/keyboards/keychron/c2_pro/ansi/white/config.h b/keyboards/keychron/c2_pro/ansi/white/config.h
index d2a0e27b57..26c812ffef 100644
--- a/keyboards/keychron/c2_pro/ansi/white/config.h
+++ b/keyboards/keychron/c2_pro/ansi/white/config.h
@@ -17,11 +17,10 @@
#pragma once
/* LED Matrix Driver Configuration */
-#define DRIVER_COUNT 1
-#define DRIVER_ADDR_1 0b1110100
+#define SNLED27351_I2C_ADDRESS_1 SNLED27351_I2C_ADDRESS_GND
/* Set LED driver current */
-#define CKLED2001_CURRENT_TUNE \
+#define SNLED27351_CURRENT_TUNE \
{ 0xA0, 0xA0, 0xA0, 0xA0, 0xA0, 0xA0, 0xA0, 0xA0, 0xA0, 0xA0, 0xA0, 0xA0 }
/* LED Matrix Configuration */
diff --git a/keyboards/keychron/c2_pro/ansi/white/info.json b/keyboards/keychron/c2_pro/ansi/white/info.json
index dc58d1943b..4d9b1e12b8 100644
--- a/keyboards/keychron/c2_pro/ansi/white/info.json
+++ b/keyboards/keychron/c2_pro/ansi/white/info.json
@@ -122,7 +122,7 @@
}
},
"led_matrix": {
- "driver": "ckled2001",
+ "driver": "snled27351",
"animations": {
"none": true,
"solid": true,
diff --git a/keyboards/keychron/c2_pro/ansi/white/white.c b/keyboards/keychron/c2_pro/ansi/white/white.c
index 963ac8755f..9c75e73c6d 100644
--- a/keyboards/keychron/c2_pro/ansi/white/white.c
+++ b/keyboards/keychron/c2_pro/ansi/white/white.c
@@ -18,8 +18,8 @@
// clang-format off
#ifdef LED_MATRIX_ENABLE
-const ckled2001_led PROGMEM g_ckled2001_leds[LED_MATRIX_LED_COUNT] = {
-/* Refer to CKLED2001 manual for these locations
+const snled27351_led_t PROGMEM g_snled27351_leds[LED_MATRIX_LED_COUNT] = {
+/* Refer to SNLED27351 manual for these locations
* driver
* | LED address
* | | */
diff --git a/keyboards/keychron/q0/base/base.c b/keyboards/keychron/q0/base/base.c
new file mode 100644
index 0000000000..05803234c0
--- /dev/null
+++ b/keyboards/keychron/q0/base/base.c
@@ -0,0 +1,57 @@
+/* Copyright 2022 @ Keychron (https://www.keychron.com)
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include "quantum.h"
+
+#ifdef RGB_MATRIX_ENABLE
+
+// clang-format off
+
+const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = {
+/* Refer to SNLED27351 manual for these locations
+ * driver
+ * | R location
+ * | | G location
+ * | | | B location
+ * | | | | */
+ {0, F_5, D_5, E_5}, // 0
+ {0, I_5, G_5, H_5}, // 1
+ {0, L_5, J_5, K_5}, // 2
+ {0, C_5, A_5, B_5}, // 3
+
+ {0, F_4, D_4, E_4}, // 4
+ {0, I_4, G_4, H_4}, // 5
+ {0, L_4, J_4, K_4}, // 6
+ {0, C_4, A_4, B_4}, // 7
+
+ {0, F_6, D_6, E_6}, // 8
+ {0, I_6, G_6, H_6}, // 9
+ {0, L_6, J_6, K_6}, // 10
+
+ {0, F_3, D_3, E_3}, // 11
+ {0, I_3, G_3, H_3}, // 12
+ {0, L_3, J_3, K_3}, // 13
+ {0, C_6, A_6, B_6}, // 14
+
+ {0, F_2, D_2, E_2}, // 15
+ {0, I_2, G_2, H_2}, // 16
+ {0, L_2, J_2, K_2}, // 17
+
+ {0, F_1, D_1, E_1}, // 18
+ {0, L_1, J_1, K_1}, // 19
+ {0, C_2, A_2, B_2}, // 20
+};
+#endif // RGB_MATRIX_ENABLE
diff --git a/keyboards/keychron/q0/base/config.h b/keyboards/keychron/q0/base/config.h
new file mode 100644
index 0000000000..1d6c1a6757
--- /dev/null
+++ b/keyboards/keychron/q0/base/config.h
@@ -0,0 +1,26 @@
+/* Copyright 2022 @ Keychron (https://www.keychron.com)
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#pragma once
+
+/* RGB Matrix Driver Configuration */
+#define SNLED27351_I2C_ADDRESS_1 SNLED27351_I2C_ADDRESS_GND
+
+/* RGB Matrix Configuration */
+#define RGB_MATRIX_LED_COUNT 21
+
+/* Enable num-lock LED */
+#define NUM_LOCK_LED_INDEX 4
diff --git a/keyboards/keychron/q0/base/info.json b/keyboards/keychron/q0/base/info.json
new file mode 100644
index 0000000000..ad89cf84da
--- /dev/null
+++ b/keyboards/keychron/q0/base/info.json
@@ -0,0 +1,75 @@
+{
+ "keyboard_name": "Q0",
+ "usb": {
+ "pid": "0x0130",
+ "device_version": "1.0.2"
+ },
+ "matrix_pins": {
+ "cols": ["A5", "A6", "A7", "B0"],
+ "rows": ["B5", "B4", "B3", "A15", "A14", "A13"]
+ },
+ "rgb_matrix": {
+ "center_point": [56, 16],
+ "layout": [
+ {"flags": 1, "matrix": [0, 0], "x": 0, "y": 0},
+ {"flags": 1, "matrix": [0, 1], "x": 37, "y": 0},
+ {"flags": 1, "matrix": [0, 2], "x": 75, "y": 0},
+ {"flags": 1, "matrix": [0, 3], "x": 112, "y": 0},
+
+ {"flags": 9, "matrix": [1, 0], "x": 0, "y": 6},
+ {"flags": 4, "matrix": [1, 1], "x": 37, "y": 6},
+ {"flags": 4, "matrix": [1, 2], "x": 75, "y": 6},
+ {"flags": 4, "matrix": [1, 3], "x": 112, "y": 6},
+
+ {"flags": 4, "matrix": [2, 0], "x": 0, "y": 13},
+ {"flags": 4, "matrix": [2, 1], "x": 37, "y": 13},
+ {"flags": 4, "matrix": [2, 2], "x": 75, "y": 13},
+
+ {"flags": 4, "matrix": [3, 0], "x": 0, "y": 19},
+ {"flags": 4, "matrix": [3, 1], "x": 37, "y": 19},
+ {"flags": 4, "matrix": [3, 2], "x": 75, "y": 19},
+ {"flags": 4, "matrix": [2, 3], "x": 112, "y": 16},
+
+ {"flags": 4, "matrix": [4, 0], "x": 0, "y": 25},
+ {"flags": 4, "matrix": [4, 1], "x": 37, "y": 25},
+ {"flags": 4, "matrix": [4, 2], "x": 75, "y": 25},
+
+ {"flags": 4, "matrix": [5, 0], "x": 18, "y": 32},
+ {"flags": 4, "matrix": [5, 2], "x": 75, "y": 32},
+ {"flags": 1, "matrix": [4, 3], "x": 112, "y": 29}
+ ]
+ },
+ "community_layouts": ["numpad_6x4"],
+ "layouts": {
+ "LAYOUT_numpad_6x4": {
+ "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": [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": [2, 0], "x": 0, "y": 2},
+ {"matrix": [2, 1], "x": 1, "y": 2},
+ {"matrix": [2, 2], "x": 2, "y": 2},
+
+ {"matrix": [3, 0], "x": 0, "y": 3},
+ {"matrix": [3, 1], "x": 1, "y": 3},
+ {"matrix": [3, 2], "x": 2, "y": 3},
+ {"matrix": [2, 3], "x": 3, "y": 2, "h": 2},
+
+ {"matrix": [4, 0], "x": 0, "y": 4},
+ {"matrix": [4, 1], "x": 1, "y": 4},
+ {"matrix": [4, 2], "x": 2, "y": 4},
+
+ {"matrix": [5, 0], "x": 0, "y": 5, "w": 2},
+ {"matrix": [5, 2], "x": 2, "y": 5},
+ {"matrix": [4, 3], "x": 3, "y": 4, "h": 2}
+ ]
+ }
+ }
+}
diff --git a/keyboards/keychron/q0/rev_0130/keymaps/default/keymap.c b/keyboards/keychron/q0/base/keymaps/default/keymap.c
index 387ff2d686..387ff2d686 100644
--- a/keyboards/keychron/q0/rev_0130/keymaps/default/keymap.c
+++ b/keyboards/keychron/q0/base/keymaps/default/keymap.c
diff --git a/keyboards/keychron/q0/rev_0130/keymaps/keychron/keymap.c b/keyboards/keychron/q0/base/keymaps/keychron/keymap.c
index 73826716fc..73826716fc 100644
--- a/keyboards/keychron/q0/rev_0130/keymaps/keychron/keymap.c
+++ b/keyboards/keychron/q0/base/keymaps/keychron/keymap.c
diff --git a/keyboards/keychron/q0/rev_0130/keymaps/keychron/rules.mk b/keyboards/keychron/q0/base/keymaps/keychron/rules.mk
index 495e8907b4..495e8907b4 100644
--- a/keyboards/keychron/q0/rev_0130/keymaps/keychron/rules.mk
+++ b/keyboards/keychron/q0/base/keymaps/keychron/rules.mk
diff --git a/keyboards/keychron/q0/rev_0130/keymaps/via/keymap.c b/keyboards/keychron/q0/base/keymaps/via/keymap.c
index 32fd198cf0..32fd198cf0 100644
--- a/keyboards/keychron/q0/rev_0130/keymaps/via/keymap.c
+++ b/keyboards/keychron/q0/base/keymaps/via/keymap.c
diff --git a/keyboards/dztech/og60/keymaps/via/rules.mk b/keyboards/keychron/q0/base/keymaps/via/rules.mk
index 1e5b99807c..1e5b99807c 100644
--- a/keyboards/dztech/og60/keymaps/via/rules.mk
+++ b/keyboards/keychron/q0/base/keymaps/via/rules.mk
diff --git a/keyboards/keychron/q0/rev_0130/readme.md b/keyboards/keychron/q0/base/readme.md
index a6db5bc015..a6db5bc015 100644
--- a/keyboards/keychron/q0/rev_0130/readme.md
+++ b/keyboards/keychron/q0/base/readme.md
diff --git a/keyboards/soda/mango/rules.mk b/keyboards/keychron/q0/base/rules.mk
index 7ff128fa69..7ff128fa69 100644
--- a/keyboards/soda/mango/rules.mk
+++ b/keyboards/keychron/q0/base/rules.mk
diff --git a/keyboards/keychron/q0/config.h b/keyboards/keychron/q0/config.h
index c0366b1ed8..24b629a520 100644
--- a/keyboards/keychron/q0/config.h
+++ b/keyboards/keychron/q0/config.h
@@ -16,14 +16,10 @@
#pragma once
-#define CKLED2001_CURRENT_TUNE { 0xFF, 0xFF, 0x70, 0xFF, 0xFF, 0x70, 0xFF, 0xFF, 0x70, 0xFF, 0xFF, 0x70 }
+#define SNLED27351_CURRENT_TUNE { 0xFF, 0xFF, 0x70, 0xFF, 0xFF, 0x70, 0xFF, 0xFF, 0x70, 0xFF, 0xFF, 0x70 }
/* turn off effects when suspended */
#define RGB_DISABLE_WHEN_USB_SUSPENDED
-/* EEPROM Driver Configuration */
-#define WEAR_LEVELING_LOGICAL_SIZE 2048
-#define WEAR_LEVELING_BACKING_SIZE (WEAR_LEVELING_LOGICAL_SIZE * 2)
-
#define RGB_MATRIX_KEYPRESSES
#define RGB_MATRIX_FRAMEBUFFER_EFFECTS \ No newline at end of file
diff --git a/keyboards/keychron/q0/info.json b/keyboards/keychron/q0/info.json
new file mode 100644
index 0000000000..70a726c520
--- /dev/null
+++ b/keyboards/keychron/q0/info.json
@@ -0,0 +1,52 @@
+{
+ "manufacturer": "Keychron",
+ "maintainer": "lalalademaxiya1",
+ "bootloader": "stm32-dfu",
+ "diode_direction": "ROW2COL",
+ "eeprom": {
+ "wear_leveling": {
+ "backing_size": 4096
+ }
+ },
+ "features": {
+ "bootmagic": true,
+ "command": false,
+ "console": false,
+ "extrakey": true,
+ "mousekey": true,
+ "nkro": true,
+ "rgb_matrix": true
+ },
+ "processor": "STM32L432",
+ "rgb_matrix": {
+ "animations": {
+ "band_spiral_val": true,
+ "breathing": true,
+ "cycle_all": true,
+ "cycle_left_right": true,
+ "cycle_out_in": true,
+ "cycle_out_in_dual": true,
+ "cycle_pinwheel": true,
+ "cycle_spiral": true,
+ "cycle_up_down": true,
+ "digital_rain": true,
+ "dual_beacon": true,
+ "jellybean_raindrops": true,
+ "pixel_rain": true,
+ "rainbow_beacon": true,
+ "rainbow_moving_chevron": true,
+ "solid_reactive_multinexus": true,
+ "solid_reactive_multiwide": true,
+ "solid_reactive_simple": true,
+ "solid_splash": true,
+ "splash": true,
+ "typing_heatmap": true
+ },
+ "driver": "snled27351"
+ },
+ "url": "https://github.com/Keychron",
+ "usb": {
+ "force_nkro": true,
+ "vid": "0x3434"
+ }
+} \ No newline at end of file
diff --git a/keyboards/keychron/q0/plus/config.h b/keyboards/keychron/q0/plus/config.h
new file mode 100644
index 0000000000..01320b1f31
--- /dev/null
+++ b/keyboards/keychron/q0/plus/config.h
@@ -0,0 +1,31 @@
+/* Copyright 2023 @ Keychron (https://www.keychron.com)
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#pragma once
+
+/* RGB Matrix Driver Configuration */
+#define SNLED27351_I2C_ADDRESS_1 SNLED27351_I2C_ADDRESS_VDDIO
+
+/* RGB Matrix Configuration */
+#define RGB_MATRIX_LED_COUNT 26
+
+#define SNLED27351_PHASE_CHANNEL SNLED27351_SCAN_PHASE_9_CHANNEL
+
+/* Encoder Configuration*/
+#define ENCODER_DEFAULT_POS 0x3
+
+/* Enable num-lock LED */
+#define NUM_LOCK_LED_INDEX 5
diff --git a/keyboards/keychron/q0/plus/info.json b/keyboards/keychron/q0/plus/info.json
new file mode 100644
index 0000000000..b187a79139
--- /dev/null
+++ b/keyboards/keychron/q0/plus/info.json
@@ -0,0 +1,94 @@
+{
+ "keyboard_name": "Keychron Q0 Plus",
+ "usb": {
+ "pid": "0x0131",
+ "device_version": "1.0.0"
+ },
+ "matrix_pins": {
+ "cols": ["C14", "C15", "A0", "A1", "A2"],
+ "rows": ["B5", "B4", "B3", "A15", "A14", "A13"]
+ },
+ "encoder": {
+ "enabled": true,
+ "rotary": [
+ {"pin_a": "A3", "pin_b": "A4"}
+ ]
+ },
+ "bootmagic": {
+ "matrix": [0, 1]
+ },
+ "rgb_matrix": {
+ "layout": [
+ {"flags": 1, "matrix": [0, 1], "x": 56, "y": 0},
+ {"flags": 1, "matrix": [0, 2], "x": 112, "y": 0},
+ {"flags": 1, "matrix": [0, 3], "x": 168, "y": 0},
+ {"flags": 1, "matrix": [0, 4], "x": 224, "y": 0},
+
+ {"flags": 4, "matrix": [1, 0], "x": 0, "y": 15},
+ {"flags": 8, "matrix": [1, 1], "x": 56, "y": 15},
+ {"flags": 4, "matrix": [1, 2], "x": 112, "y": 15},
+ {"flags": 4, "matrix": [1, 3], "x": 168, "y": 15},
+ {"flags": 4, "matrix": [1, 4], "x": 224, "y": 15},
+
+ {"flags": 4, "matrix": [2, 0], "x": 0, "y": 27},
+ {"flags": 4, "matrix": [2, 1], "x": 56, "y": 27},
+ {"flags": 4, "matrix": [2, 2], "x": 112, "y": 27},
+ {"flags": 4, "matrix": [2, 3], "x": 168, "y": 27},
+ {"flags": 4, "matrix": [2, 4], "x": 224, "y": 34},
+
+ {"flags": 4, "matrix": [3, 0], "x": 0, "y": 40},
+ {"flags": 4, "matrix": [3, 1], "x": 56, "y": 40},
+ {"flags": 4, "matrix": [3, 2], "x": 112, "y": 40},
+ {"flags": 4, "matrix": [3, 3], "x": 168, "y": 40},
+
+ {"flags": 4, "matrix": [4, 0], "x": 0, "y": 52},
+ {"flags": 4, "matrix": [4, 1], "x": 56, "y": 52},
+ {"flags": 4, "matrix": [4, 2], "x": 112, "y": 52},
+ {"flags": 4, "matrix": [4, 3], "x": 168, "y": 52},
+ {"flags": 4, "matrix": [4, 4], "x": 224, "y": 58},
+
+ {"flags": 4, "matrix": [5, 0], "x": 0, "y": 64},
+ {"flags": 4, "matrix": [5, 1], "x": 84, "y": 64},
+ {"flags": 1, "matrix": [5, 3], "x": 168, "y": 64}
+ ]
+ },
+ "community_layouts": ["numpad_6x5"],
+ "layouts": {
+ "LAYOUT_numpad_6x5": {
+ "layout": [
+ {"matrix": [0, 0], "x": 0, "y": 0},
+ {"matrix": [0, 1], "x": 1.25, "y": 0},
+ {"matrix": [0, 2], "x": 2.25, "y": 0},
+ {"matrix": [0, 3], "x": 3.25, "y": 0},
+ {"matrix": [0, 4], "x": 4.25, "y": 0},
+
+ {"matrix": [1, 0], "x": 0, "y": 1.25},
+ {"matrix": [1, 1], "x": 1.25, "y": 1.25},
+ {"matrix": [1, 2], "x": 2.25, "y": 1.25},
+ {"matrix": [1, 3], "x": 3.25, "y": 1.25},
+ {"matrix": [1, 4], "x": 4.25, "y": 1.25},
+
+ {"matrix": [2, 0], "x": 0, "y": 2.25},
+ {"matrix": [2, 1], "x": 1.25, "y": 2.25},
+ {"matrix": [2, 2], "x": 2.25, "y": 2.25},
+ {"matrix": [2, 3], "x": 3.25, "y": 2.25},
+ {"matrix": [2, 4], "x": 4.25, "y": 2.25, "h": 2},
+
+ {"matrix": [3, 0], "x": 0, "y": 3.25},
+ {"matrix": [3, 1], "x": 1.25, "y": 3.25},
+ {"matrix": [3, 2], "x": 2.25, "y": 3.25},
+ {"matrix": [3, 3], "x": 3.25, "y": 3.25},
+
+ {"matrix": [4, 0], "x": 0, "y": 4.25},
+ {"matrix": [4, 1], "x": 1.25, "y": 4.25},
+ {"matrix": [4, 2], "x": 2.25, "y": 4.25},
+ {"matrix": [4, 3], "x": 3.25, "y": 4.25},
+ {"matrix": [4, 4], "x": 4.25, "y": 4.25, "h": 2},
+
+ {"matrix": [5, 0], "x": 0, "y": 5.25},
+ {"matrix": [5, 1], "x": 1.25, "y": 5.25, "w": 2},
+ {"matrix": [5, 3], "x": 3.25, "y": 5.25}
+ ]
+ }
+ }
+}
diff --git a/keyboards/keychron/q0/rev_0131/keymaps/default/keymap.c b/keyboards/keychron/q0/plus/keymaps/default/keymap.c
index 4e281d4d7d..4e281d4d7d 100644
--- a/keyboards/keychron/q0/rev_0131/keymaps/default/keymap.c
+++ b/keyboards/keychron/q0/plus/keymaps/default/keymap.c
diff --git a/keyboards/keychron/q0/plus/keymaps/default/rules.mk b/keyboards/keychron/q0/plus/keymaps/default/rules.mk
new file mode 100644
index 0000000000..ee32568148
--- /dev/null
+++ b/keyboards/keychron/q0/plus/keymaps/default/rules.mk
@@ -0,0 +1 @@
+ENCODER_MAP_ENABLE = yes
diff --git a/keyboards/keychron/q0/rev_0131/keymaps/keychron/keymap.c b/keyboards/keychron/q0/plus/keymaps/keychron/keymap.c
index 795c275543..795c275543 100644
--- a/keyboards/keychron/q0/rev_0131/keymaps/keychron/keymap.c
+++ b/keyboards/keychron/q0/plus/keymaps/keychron/keymap.c
diff --git a/keyboards/keychron/q0/rev_0131/keymaps/keychron/rules.mk b/keyboards/keychron/q0/plus/keymaps/keychron/rules.mk
index 9cf1a9b56c..9cf1a9b56c 100644
--- a/keyboards/keychron/q0/rev_0131/keymaps/keychron/rules.mk
+++ b/keyboards/keychron/q0/plus/keymaps/keychron/rules.mk
diff --git a/keyboards/keychron/q0/rev_0131/keymaps/via/keymap.c b/keyboards/keychron/q0/plus/keymaps/via/keymap.c
index 935d3edb76..935d3edb76 100644
--- a/keyboards/keychron/q0/rev_0131/keymaps/via/keymap.c
+++ b/keyboards/keychron/q0/plus/keymaps/via/keymap.c
diff --git a/keyboards/keychron/q0/rev_0131/keymaps/via/rules.mk b/keyboards/keychron/q0/plus/keymaps/via/rules.mk
index f1adcab005..f1adcab005 100644
--- a/keyboards/keychron/q0/rev_0131/keymaps/via/rules.mk
+++ b/keyboards/keychron/q0/plus/keymaps/via/rules.mk
diff --git a/keyboards/keychron/q0/plus/plus.c b/keyboards/keychron/q0/plus/plus.c
new file mode 100644
index 0000000000..0466e1a584
--- /dev/null
+++ b/keyboards/keychron/q0/plus/plus.c
@@ -0,0 +1,62 @@
+/* Copyright 2023 @ Keychron (https://www.keychron.com)
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include "quantum.h"
+
+#ifdef RGB_MATRIX_ENABLE
+
+// clang-format off
+
+const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = {
+/* Refer to SNLED27351 manual for these locations
+ * driver
+ * | R location
+ * | | G location
+ * | | | B location
+ * | | | | */
+ {0, I_2, G_2, H_2},
+ {0, I_3, G_3, H_3},
+ {0, I_4, G_4, H_4},
+ {0, I_5, G_5, H_5},
+
+ {0, C_1, A_1, B_1},
+ {0, C_2, A_2, B_2},
+ {0, C_3, A_3, B_3},
+ {0, C_4, A_4, B_4},
+ {0, C_5, A_5, B_5},
+
+ {0, F_1, D_1, E_1},
+ {0, F_2, D_2, E_2},
+ {0, F_3, D_3, E_3},
+ {0, F_4, D_4, E_4},
+ {0, F_5, D_5, E_5},
+
+ {0, I_6, G_6, H_6},
+ {0, I_7, G_7, H_7},
+ {0, I_8, G_8, H_8},
+ {0, I_9, G_9, H_9},
+
+ {0, C_6, A_6, B_6},
+ {0, C_7, A_7, B_7},
+ {0, C_8, A_8, B_8},
+ {0, C_9, A_9, B_9},
+ {0, C_10, A_10, B_10},
+
+ {0, F_6, D_6, E_6},
+ {0, F_7, D_7, E_7},
+ {0, F_9, D_9, E_9},
+};
+#endif // RGB_MATRIX_ENABLE
diff --git a/keyboards/keychron/q0/plus/readme.md b/keyboards/keychron/q0/plus/readme.md
new file mode 100644
index 0000000000..6cc6e263f4
--- /dev/null
+++ b/keyboards/keychron/q0/plus/readme.md
@@ -0,0 +1,12 @@
+# Keychron Q0 Plus
+
+![Keychron Q0 Plus](https://i.imgur.com/EDbfVVOh.jpg)
+
+* Keyboard Maintainer: [Keychron](https://github.com/keychron)
+* Hardware Supported: Keychron Q0 Plus
+* Hardware Availability: [Keychron Q0 Plus QMK Custom Number Pad](https://www.keychron.com/products/keychron-q0-plus-qmk-custom-number-pad)
+
+1. The name of this keyboard is "Keychron Q0 Plus"
+2. Enables EC11 rotary encoder
+ - Turn clockwise to increase volume and turn anti-clockwise to decrease volume
+ - Press the knob button to mute
diff --git a/keyboards/keychron/q0/plus/rules.mk b/keyboards/keychron/q0/plus/rules.mk
new file mode 100644
index 0000000000..7ff128fa69
--- /dev/null
+++ b/keyboards/keychron/q0/plus/rules.mk
@@ -0,0 +1 @@
+# This file intentionally left blank \ No newline at end of file
diff --git a/keyboards/keychron/q0/readme.md b/keyboards/keychron/q0/readme.md
index d0180d386e..aa6d109a29 100644
--- a/keyboards/keychron/q0/readme.md
+++ b/keyboards/keychron/q0/readme.md
@@ -1,18 +1,22 @@
# Keychron Q0
+![Keychron Q0](https://i.imgur.com/cLbEiZ0h.jpg)
+
A customizable number keypad.
* Keyboard Maintainer: [Keychron](https://github.com/keychron)
* Hardware Supported: Keychron Q0
-* Hardware Availability: [Keychron](https://www.keychron.com)
+* Hardware Availability: [Keychron Q0 QMK Custom Number Pad](https://www.keychron.com/products/keychron-q0-qmk-custom-number-pad)
Make example for this keyboard (after setting up your build environment):
- make keychron/q0/rev_0130:default
+ make keychron/q0/base:default
+ make keychron/q0/plus:default
Flashing example for this keyboard:
- make keychron/q0/rev_0130:default:flash
+ make keychron/q0/base:default:flash
+ make keychron/q0/plus:default:flash
**Reset Key**: Hold down the key located at *K00*, commonly programmed as *Esc* while plugging in the keyboard.
diff --git a/keyboards/keychron/q0/rev_0130/config.h b/keyboards/keychron/q0/rev_0130/config.h
deleted file mode 100644
index 12ecfe1356..0000000000
--- a/keyboards/keychron/q0/rev_0130/config.h
+++ /dev/null
@@ -1,28 +0,0 @@
-/* Copyright 2022 @ Keychron (https://www.keychron.com)
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-#pragma once
-
-/* RGB Matrix Driver Configuration */
-#define DRIVER_COUNT 1
-#define DRIVER_ADDR_1 0b1110100
-
-/* RGB Matrix Configuration */
-#define DRIVER_1_LED_TOTAL 21
-#define RGB_MATRIX_LED_COUNT DRIVER_1_LED_TOTAL
-
-/* Enable num-lock LED */
-#define NUM_LOCK_LED_INDEX 4
diff --git a/keyboards/keychron/q0/rev_0130/info.json b/keyboards/keychron/q0/rev_0130/info.json
deleted file mode 100644
index f6225c884a..0000000000
--- a/keyboards/keychron/q0/rev_0130/info.json
+++ /dev/null
@@ -1,118 +0,0 @@
-{
- "keyboard_name": "Q0",
- "manufacturer": "Keychron",
- "url": "https://github.com/Keychron",
- "maintainer": "lalalademaxiya1",
- "usb": {
- "vid": "0x3434",
- "pid": "0x0130",
- "device_version": "1.0.2",
- "force_nkro": true
- },
- "matrix_pins": {
- "cols": ["A5", "A6", "A7", "B0"],
- "rows": ["B5", "B4", "B3", "A15", "A14", "A13"]
- },
- "features": {
- "audio": false,
- "backlight": false,
- "bootmagic": true,
- "command": false,
- "console": false,
- "extrakey": true,
- "mousekey": true,
- "nkro": true,
- "rgb_matrix": true,
- "rgblight": false
- },
- "diode_direction": "ROW2COL",
- "processor": "STM32L432",
- "bootloader": "stm32-dfu",
- "rgb_matrix": {
- "driver": "ckled2001",
- "animations": {
- "band_spiral_val": true,
- "breathing": true,
- "cycle_all": true,
- "cycle_left_right": true,
- "cycle_up_down": true,
- "rainbow_moving_chevron": true,
- "cycle_out_in": true,
- "cycle_out_in_dual": true,
- "cycle_pinwheel": true,
- "cycle_spiral": true,
- "dual_beacon": true,
- "rainbow_beacon": true,
- "jellybean_raindrops": true,
- "pixel_rain": true,
- "typing_heatmap": true,
- "digital_rain": true,
- "solid_reactive_simple": true,
- "solid_reactive_multiwide": true,
- "solid_reactive_multinexus": true,
- "splash": true,
- "solid_splash": true
- },
- "center_point": [56, 16],
- "layout": [
- {"flags": 1, "matrix": [0, 0], "x": 0, "y": 0},
- {"flags": 1, "matrix": [0, 1], "x": 37, "y": 0},
- {"flags": 1, "matrix": [0, 2], "x": 75, "y": 0},
- {"flags": 1, "matrix": [0, 3], "x": 112, "y": 0},
-
- {"flags": 9, "matrix": [1, 0], "x": 0, "y": 6},
- {"flags": 4, "matrix": [1, 1], "x": 37, "y": 6},
- {"flags": 4, "matrix": [1, 2], "x": 75, "y": 6},
- {"flags": 4, "matrix": [1, 3], "x": 112, "y": 6},
-
- {"flags": 4, "matrix": [2, 0], "x": 0, "y": 13},
- {"flags": 4, "matrix": [2, 1], "x": 37, "y": 13},
- {"flags": 4, "matrix": [2, 2], "x": 75, "y": 13},
-
- {"flags": 4, "matrix": [3, 0], "x": 0, "y": 19},
- {"flags": 4, "matrix": [3, 1], "x": 37, "y": 19},
- {"flags": 4, "matrix": [3, 2], "x": 75, "y": 19},
- {"flags": 4, "matrix": [2, 3], "x": 112, "y": 16},
-
- {"flags": 4, "matrix": [4, 0], "x": 0, "y": 25},
- {"flags": 4, "matrix": [4, 1], "x": 37, "y": 25},
- {"flags": 4, "matrix": [4, 2], "x": 75, "y": 25},
-
- {"flags": 4, "matrix": [5, 0], "x": 18, "y": 32},
- {"flags": 4, "matrix": [5, 2], "x": 75, "y": 32},
- {"flags": 1, "matrix": [4, 3], "x": 112, "y": 29}
- ]
- },
- "layouts": {
- "LAYOUT_numpad_6x4": {
- "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": [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": [2, 0], "x": 0, "y": 2},
- {"matrix": [2, 1], "x": 1, "y": 2},
- {"matrix": [2, 2], "x": 2, "y": 2},
-
- {"matrix": [3, 0], "x": 0, "y": 3},
- {"matrix": [3, 1], "x": 1, "y": 3},
- {"matrix": [3, 2], "x": 2, "y": 3},
- {"matrix": [2, 3], "x": 3, "y": 2, "h": 2},
-
- {"matrix": [4, 0], "x": 0, "y": 4},
- {"matrix": [4, 1], "x": 1, "y": 4},
- {"matrix": [4, 2], "x": 2, "y": 4},
-
- {"matrix": [5, 0], "x": 0, "y": 5, "w": 2},
- {"matrix": [5, 2], "x": 2, "y": 5},
- {"matrix": [4, 3], "x": 3, "y": 4, "h": 2}
- ]
- }
- }
-}
diff --git a/keyboards/keychron/q0/rev_0130/rev_0130.c b/keyboards/keychron/q0/rev_0130/rev_0130.c
deleted file mode 100644
index ffe82a6d8c..0000000000
--- a/keyboards/keychron/q0/rev_0130/rev_0130.c
+++ /dev/null
@@ -1,57 +0,0 @@
-/* Copyright 2022 @ Keychron (https://www.keychron.com)
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-#include "quantum.h"
-
-#ifdef RGB_MATRIX_ENABLE
-
-// clang-format off
-
-const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = {
-/* Refer to CKLED manual for these locations
- * driver
- * | R location
- * | | G location
- * | | | B location
- * | | | | */
- {0, F_5, D_5, E_5}, // 0
- {0, I_5, G_5, H_5}, // 1
- {0, L_5, J_5, K_5}, // 2
- {0, C_5, A_5, B_5}, // 3
-
- {0, F_4, D_4, E_4}, // 4
- {0, I_4, G_4, H_4}, // 5
- {0, L_4, J_4, K_4}, // 6
- {0, C_4, A_4, B_4}, // 7
-
- {0, F_6, D_6, E_6}, // 8
- {0, I_6, G_6, H_6}, // 9
- {0, L_6, J_6, K_6}, // 10
-
- {0, F_3, D_3, E_3}, // 11
- {0, I_3, G_3, H_3}, // 12
- {0, L_3, J_3, K_3}, // 13
- {0, C_6, A_6, B_6}, // 14
-
- {0, F_2, D_2, E_2}, // 15
- {0, I_2, G_2, H_2}, // 16
- {0, L_2, J_2, K_2}, // 17
-
- {0, F_1, D_1, E_1}, // 18
- {0, L_1, J_1, K_1}, // 19
- {0, C_2, A_2, B_2}, // 20
-};
-#endif // RGB_MATRIX_ENABLE
diff --git a/keyboards/keychron/q0/rev_0130/rules.mk b/keyboards/keychron/q0/rev_0130/rules.mk
deleted file mode 100644
index f6868e88e3..0000000000
--- a/keyboards/keychron/q0/rev_0130/rules.mk
+++ /dev/null
@@ -1,3 +0,0 @@
-EEPROM_DRIVER = wear_leveling
-WEAR_LEVELING_DRIVER = embedded_flash
-
diff --git a/keyboards/keychron/q0/rev_0131/config.h b/keyboards/keychron/q0/rev_0131/config.h
deleted file mode 100644
index e4c5c2d3fc..0000000000
--- a/keyboards/keychron/q0/rev_0131/config.h
+++ /dev/null
@@ -1,34 +0,0 @@
-/* Copyright 2023 @ Keychron (https://www.keychron.com)
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-#pragma once
-
-/* RGB Matrix Driver Configuration */
-#define DRIVER_COUNT 1
-#define DRIVER_ADDR_1 0b1110111
-
-/* RGB Matrix Configuration */
-#define DRIVER_1_LED_TOTAL 26
-#define RGB_MATRIX_LED_COUNT DRIVER_1_LED_TOTAL
-
-/* Scan phase of led driver set as MSKPHASE_9CHANNEL(defined as 0x03 in CKLED2001.h) */
-#define PHASE_CHANNEL MSKPHASE_9CHANNEL
-
-/* Enable num-lock LED */
-#define NUM_LOCK_LED_INDEX 5
-
-/* Encoder Configuration */
-#define ENCODER_DEFAULT_POS 0x3
diff --git a/keyboards/keychron/q0/rev_0131/info.json b/keyboards/keychron/q0/rev_0131/info.json
deleted file mode 100644
index c569e498f4..0000000000
--- a/keyboards/keychron/q0/rev_0131/info.json
+++ /dev/null
@@ -1,137 +0,0 @@
-{
- "keyboard_name": "Keychron Q0 Plus",
- "manufacturer": "Keychron",
- "url": "https://github.com/Keychron",
- "maintainer": "lalalademaxiya1",
- "usb": {
- "vid": "0x3434",
- "pid": "0x0131",
- "device_version": "1.0.0",
- "force_nkro": true
- },
- "matrix_pins": {
- "cols": ["C14", "C15", "A0", "A1", "A2"],
- "rows": ["B5", "B4", "B3", "A15", "A14", "A13"]
- },
- "features": {
- "audio": false,
- "backlight": false,
- "bootmagic": true,
- "command": false,
- "console": false,
- "encoder": true,
- "extrakey": true,
- "mousekey": true,
- "nkro": true,
- "rgb_matrix": true,
- "rgblight": false
- },
- "diode_direction": "ROW2COL",
- "encoder": {
- "rotary": [
- {"pin_a": "A3", "pin_b": "A4"}
- ]
- },
- "bootmagic": {
- "matrix": [0, 1]
- },
- "processor": "STM32L432",
- "bootloader": "stm32-dfu",
- "rgb_matrix": {
- "driver": "ckled2001",
- "animations": {
- "band_spiral_val": true,
- "breathing": true,
- "cycle_all": true,
- "cycle_left_right": true,
- "cycle_up_down": true,
- "rainbow_moving_chevron": true,
- "cycle_out_in": true,
- "cycle_out_in_dual": true,
- "cycle_pinwheel": true,
- "cycle_spiral": true,
- "dual_beacon": true,
- "rainbow_beacon": true,
- "jellybean_raindrops": true,
- "pixel_rain": true,
- "typing_heatmap": true,
- "digital_rain": true,
- "solid_reactive_simple": true,
- "solid_reactive_multiwide": true,
- "solid_reactive_multinexus": true,
- "splash": true,
- "solid_splash": true
- },
- "layout": [
- {"flags": 1, "matrix": [0, 1], "x": 56, "y": 0},
- {"flags": 1, "matrix": [0, 2], "x": 112, "y": 0},
- {"flags": 1, "matrix": [0, 3], "x": 168, "y": 0},
- {"flags": 1, "matrix": [0, 4], "x": 224, "y": 0},
-
- {"flags": 4, "matrix": [1, 0], "x": 0, "y": 15},
- {"flags": 8, "matrix": [1, 1], "x": 56, "y": 15},
- {"flags": 4, "matrix": [1, 2], "x": 112, "y": 15},
- {"flags": 4, "matrix": [1, 3], "x": 168, "y": 15},
- {"flags": 4, "matrix": [1, 4], "x": 224, "y": 15},
-
- {"flags": 4, "matrix": [2, 0], "x": 0, "y": 27},
- {"flags": 4, "matrix": [2, 1], "x": 56, "y": 27},
- {"flags": 4, "matrix": [2, 2], "x": 112, "y": 27},
- {"flags": 4, "matrix": [2, 3], "x": 168, "y": 27},
- {"flags": 4, "matrix": [2, 4], "x": 224, "y": 34},
-
- {"flags": 4, "matrix": [3, 0], "x": 0, "y": 40},
- {"flags": 4, "matrix": [3, 1], "x": 56, "y": 40},
- {"flags": 4, "matrix": [3, 2], "x": 112, "y": 40},
- {"flags": 4, "matrix": [3, 3], "x": 168, "y": 40},
-
- {"flags": 4, "matrix": [4, 0], "x": 0, "y": 52},
- {"flags": 4, "matrix": [4, 1], "x": 56, "y": 52},
- {"flags": 4, "matrix": [4, 2], "x": 112, "y": 52},
- {"flags": 4, "matrix": [4, 3], "x": 168, "y": 52},
- {"flags": 4, "matrix": [4, 4], "x": 224, "y": 58},
-
- {"flags": 4, "matrix": [5, 0], "x": 0, "y": 64},
- {"flags": 4, "matrix": [5, 1], "x": 84, "y": 64},
- {"flags": 1, "matrix": [5, 3], "x": 168, "y": 64}
- ]
- },
- "layouts": {
- "LAYOUT_numpad_6x5": {
- "layout": [
- {"matrix": [0, 0], "x": 0, "y": 0},
- {"matrix": [0, 1], "x": 1.25, "y": 0},
- {"matrix": [0, 2], "x": 2.25, "y": 0},
- {"matrix": [0, 3], "x": 3.25, "y": 0},
- {"matrix": [0, 4], "x": 4.25, "y": 0},
-
- {"matrix": [1, 0], "x": 0, "y": 1.25},
- {"matrix": [1, 1], "x": 1.25, "y": 1.25},
- {"matrix": [1, 2], "x": 2.25, "y": 1.25},
- {"matrix": [1, 3], "x": 3.25, "y": 1.25},
- {"matrix": [1, 4], "x": 4.25, "y": 1.25},
-
- {"matrix": [2, 0], "x": 0, "y": 2.25},
- {"matrix": [2, 1], "x": 1.25, "y": 2.25},
- {"matrix": [2, 2], "x": 2.25, "y": 2.25},
- {"matrix": [2, 3], "x": 3.25, "y": 2.25},
- {"matrix": [2, 4], "x": 4.25, "y": 2.25, "h": 2},
-
- {"matrix": [3, 0], "x": 0, "y": 3.25},
- {"matrix": [3, 1], "x": 1.25, "y": 3.25},
- {"matrix": [3, 2], "x": 2.25, "y": 3.25},
- {"matrix": [3, 3], "x": 3.25, "y": 3.25},
-
- {"matrix": [4, 0], "x": 0, "y": 4.25},
- {"matrix": [4, 1], "x": 1.25, "y": 4.25},
- {"matrix": [4, 2], "x": 2.25, "y": 4.25},
- {"matrix": [4, 3], "x": 3.25, "y": 4.25},
- {"matrix": [4, 4], "x": 4.25, "y": 4.25, "h": 2},
-
- {"matrix": [5, 0], "x": 0, "y": 5.25},
- {"matrix": [5, 1], "x": 1.25, "y": 5.25, "w": 2},
- {"matrix": [5, 3], "x": 3.25, "y": 5.25}
- ]
- }
- }
-}
diff --git a/keyboards/keychron/q0/rev_0131/readme.md b/keyboards/keychron/q0/rev_0131/readme.md
deleted file mode 100644
index df07c40e49..0000000000
--- a/keyboards/keychron/q0/rev_0131/readme.md
+++ /dev/null
@@ -1,6 +0,0 @@
-# The enhanced version with encoder of the Keychron Q0
-
-- The name of this keyboard is "Q0 Plus"
-- Enable EC11 rotary encoder
-- Turn clockwise to increase volume and turn anti-clockwise to decrease volume
-- Press the knob button to mute
diff --git a/keyboards/keychron/q0/rev_0131/rev_0131.c b/keyboards/keychron/q0/rev_0131/rev_0131.c
deleted file mode 100644
index 282c511ce2..0000000000
--- a/keyboards/keychron/q0/rev_0131/rev_0131.c
+++ /dev/null
@@ -1,62 +0,0 @@
-/* Copyright 2023 @ Keychron (https://www.keychron.com)
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-#include "quantum.h"
-
-#ifdef RGB_MATRIX_ENABLE
-
-// clang-format off
-
-const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = {
-/* Refer to CKLED manual for these locations
- * driver
- * | R location
- * | | G location
- * | | | B location
- * | | | | */
- {0, I_2, G_2, H_2},
- {0, I_3, G_3, H_3},
- {0, I_4, G_4, H_4},
- {0, I_5, G_5, H_5},
-
- {0, C_1, A_1, B_1},
- {0, C_2, A_2, B_2},
- {0, C_3, A_3, B_3},
- {0, C_4, A_4, B_4},
- {0, C_5, A_5, B_5},
-
- {0, F_1, D_1, E_1},
- {0, F_2, D_2, E_2},
- {0, F_3, D_3, E_3},
- {0, F_4, D_4, E_4},
- {0, F_5, D_5, E_5},
-
- {0, I_6, G_6, H_6},
- {0, I_7, G_7, H_7},
- {0, I_8, G_8, H_8},
- {0, I_9, G_9, H_9},
-
- {0, C_6, A_6, B_6},
- {0, C_7, A_7, B_7},
- {0, C_8, A_8, B_8},
- {0, C_9, A_9, B_9},
- {0, C_10, A_10, B_10},
-
- {0, F_6, D_6, E_6},
- {0, F_7, D_7, E_7},
- {0, F_9, D_9, E_9},
-};
-#endif // RGB_MATRIX_ENABLE
diff --git a/keyboards/keychron/q0/rev_0131/rules.mk b/keyboards/keychron/q0/rev_0131/rules.mk
deleted file mode 100644
index f6868e88e3..0000000000
--- a/keyboards/keychron/q0/rev_0131/rules.mk
+++ /dev/null
@@ -1,3 +0,0 @@
-EEPROM_DRIVER = wear_leveling
-WEAR_LEVELING_DRIVER = embedded_flash
-
diff --git a/keyboards/keychron/q1/ansi/ansi.c b/keyboards/keychron/q1/ansi/ansi.c
deleted file mode 100644
index ee586fef93..0000000000
--- a/keyboards/keychron/q1/ansi/ansi.c
+++ /dev/null
@@ -1,150 +0,0 @@
-/* Copyright 2021 @ Keychron (https://www.keychron.com)
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-#include "quantum.h"
-
-#ifdef RGB_MATRIX_ENABLE
-
-const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = {
-/* Refer to IS31 manual for these locations
- * driver
- * | R location
- * | | G location
- * | | | B location
- * | | | | */
- {0, C_1, A_1, B_1},
- {0, C_3, A_3, B_3},
- {0, C_4, A_4, B_4},
- {0, C_5, A_5, B_5},
- {0, C_6, A_6, B_6},
- {0, C_7, A_7, B_7},
- {0, C_8, A_8, B_8},
- {0, C_9, A_9, B_9},
- {0, C_10, A_10, B_10},
- {0, C_11, A_11, B_11},
- {0, C_12, A_12, B_12},
- {0, C_13, A_13, B_13},
- {0, C_14, A_14, B_14},
- {0, C_15, A_15, B_15},
- {0, C_16, A_16, B_16},
-
- {0, F_1, D_1, E_1},
- {0, F_2, D_2, E_2},
- {0, F_3, D_3, E_3},
- {0, F_4, D_4, E_4},
- {0, F_5, D_5, E_5},
- {0, F_6, D_6, E_6},
- {0, F_7, D_7, E_7},
- {0, F_8, D_8, E_8},
- {0, F_9, D_9, E_9},
- {0, F_10, D_10, E_10},
- {0, F_11, D_11, E_11},
- {0, F_12, D_12, E_12},
- {0, F_13, D_13, E_13},
- {0, F_14, D_14, E_14},
- {0, F_16, D_16, E_16},
-
- {0, I_1, G_1, H_1},
- {0, I_2, G_2, H_2},
- {0, I_3, G_3, H_3},
- {0, I_4, G_4, H_4},
- {0, I_5, G_5, H_5},
- {0, I_6, G_6, H_6},
- {0, I_7, G_7, H_7},
- {0, I_8, G_8, H_8},
- {0, I_9, G_9, H_9},
- {0, I_10, G_10, H_10},
- {0, I_11, G_11, H_11},
- {0, I_12, G_12, H_12},
- {0, I_13, G_13, H_13},
- {0, I_14, G_14, H_14},
- {0, I_16, G_16, H_16},
-
- {0, L_1, J_1, K_1},
- {0, L_2, J_2, K_2},
- {0, L_3, J_3, K_3},
- {0, L_4, J_4, K_4},
- {0, L_5, J_5, K_5},
- {0, L_6, J_6, K_6},
- {0, L_7, J_7, K_7},
- {0, L_8, J_8, K_8},
- {0, L_9, J_9, K_9},
- {0, L_10, J_10, K_10},
- {0, L_11, J_11, K_11},
- {0, L_12, J_12, K_12},
- {0, L_14, J_14, K_14},
- {0, L_16, J_16, K_16},
-
- {1, C_1, A_1, B_1},
- {1, C_3, A_3, B_3},
- {1, C_4, A_4, B_4},
- {1, C_5, A_5, B_5},
- {1, C_6, A_6, B_6},
- {1, C_7, A_7, B_7},
- {1, C_8, A_8, B_8},
- {1, C_9, A_9, B_9},
- {1, C_10, A_10, B_10},
- {1, C_11, A_11, B_11},
- {1, C_12, A_12, B_12},
- {1, C_14, A_14, B_14},
- {1, C_15, A_15, B_15},
-
- {1, F_1, D_1, E_1},
- {1, F_2, D_2, E_2},
- {1, F_3, D_3, E_3},
- {1, F_7, D_7, E_7},
- {1, F_11, D_11, E_11},
- {1, F_12, D_12, E_12},
- {1, F_13, D_13, E_13},
- {1, F_14, D_14, E_14},
- {1, F_15, D_15, E_15},
- {1, F_16, D_16, E_16}
-
-};
-
-#define __ NO_LED
-
-led_config_t g_led_config = {
- {
- // Key Matrix to LED Index
- { 0, __, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 14 },
- { 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29 },
- { 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44 },
- { 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 71, 57, 58 },
- { 59, __, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 80, 70, 13 },
- { 72, 73, 74, __, __, __, 75, __, __, __, 76, 77, 78, 79, 81 }
- },
- {
- // LED Index to Physical Position
- {0,0}, {18,0}, {33,0}, {48,0}, {62,0}, {81,0}, {95,0}, {110,0}, {125,0}, {143,0}, {158,0}, {173,0}, {187,0}, {206,0}, {224,0},
- {0,15}, {15,15}, {29,15}, {44,15}, {59,15}, {73,15}, {88,15}, {103,15}, {118,15}, {132,15}, {147,15}, {162,15}, {176,15}, {198,15}, {224,15},
- {4,26}, {22,26}, {37,26}, {51,26}, {66,26}, {81,26}, {95,26}, {110,26}, {125,26}, {140,26}, {154,26}, {169,26}, {184,26}, {202,26}, {224,26},
- {6,38}, {26,38}, {40,38}, {55,38}, {70,38}, {84,38}, {99,38}, {114,38}, {129,38}, {143,38}, {158,38}, {173,38}, {196,38}, {224,38},
- {9,49}, {33,49}, {48,49}, {62,49}, {77,49}, {92,49}, {106,49}, {121,49}, {136,49}, {151,49}, {165,49}, {185,49}, {209,52},
- {2,61}, {20,61}, {39,61}, {94,61}, {147,61}, {162,61}, {176,61}, {195,64}, {209,64}, {224,64}
- },
- {
- // RGB LED Index to Flag
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1,
- 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
- 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1,
- 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1,
- 1, 1, 1, 4, 1, 1, 1, 1, 1, 1
- }
-};
-
-#endif // RGB_MATRIX_ENABLE
diff --git a/keyboards/keychron/q1/ansi/config.h b/keyboards/keychron/q1/ansi/config.h
deleted file mode 100644
index c6d4e44c87..0000000000
--- a/keyboards/keychron/q1/ansi/config.h
+++ /dev/null
@@ -1,22 +0,0 @@
-/* Copyright 2021 @ Keychron (https://www.keychron.com)
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-#pragma once
-
-/* RGB Matrix Configuration */
-#define DRIVER_1_LED_TOTAL 59
-#define DRIVER_2_LED_TOTAL 23
-#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) \ No newline at end of file
diff --git a/keyboards/keychron/q1/ansi/info.json b/keyboards/keychron/q1/ansi/info.json
deleted file mode 100644
index 8ff2075747..0000000000
--- a/keyboards/keychron/q1/ansi/info.json
+++ /dev/null
@@ -1,115 +0,0 @@
-{
- "keyboard_name": "Q1",
- "manufacturer": "Keychron",
- "url": "https://github.com/Keychron",
- "maintainer": "lalalademaxiya1",
- "usb": {
- "vid": "0x3434",
- "pid": "0x0100",
- "device_version": "1.0.0",
- "force_nkro": true
- },
- "rgb_matrix": {
- "driver": "is31fl3733"
- },
- "matrix_pins": {
- "cols": ["D5", "D4", "D6", "D7", "B4", "B5", "B6", "C6", "C7", "F7", "F6", "F5", "F4", "F1", "F0"],
- "rows": ["D3", "D2", "B3", "B2", "B1", "B0"]
- },
- "diode_direction": "ROW2COL",
- "processor": "atmega32u4",
- "bootloader": "atmel-dfu",
- "layouts": {
- "LAYOUT_ansi_82": {
- "layout": [
- {"matrix": [0, 0], "x": 0, "y": 0},
- {"matrix": [0, 2], "x": 1.25, "y": 0},
- {"matrix": [0, 3], "x": 2.25, "y": 0},
- {"matrix": [0, 4], "x": 3.25, "y": 0},
- {"matrix": [0, 5], "x": 4.25, "y": 0},
- {"matrix": [0, 6], "x": 5.5, "y": 0},
- {"matrix": [0, 7], "x": 6.5, "y": 0},
- {"matrix": [0, 8], "x": 7.5, "y": 0},
- {"matrix": [0, 9], "x": 8.5, "y": 0},
- {"matrix": [0, 10], "x": 9.75, "y": 0},
- {"matrix": [0, 11], "x": 10.75, "y": 0},
- {"matrix": [0, 12], "x": 11.75, "y": 0},
- {"matrix": [0, 13], "x": 12.75, "y": 0},
- {"matrix": [4, 14], "x": 14, "y": 0},
- {"matrix": [0, 14], "x": 15.25, "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": [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.25, "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.25, "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.25, "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, 13], "x": 12.25, "y": 4, "w": 1.75},
- {"matrix": [3, 12], "x": 14.25, "y": 4.25},
-
- {"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, 6], "x": 3.75, "y": 5, "w": 6.25},
- {"matrix": [5, 10], "x": 10, "y": 5},
- {"matrix": [5, 11], "x": 11, "y": 5},
- {"matrix": [5, 12], "x": 12, "y": 5},
- {"matrix": [5, 13], "x": 13.25, "y": 5.25},
- {"matrix": [4, 12], "x": 14.25, "y": 5.25},
- {"matrix": [5, 14], "x": 15.25, "y": 5.25}
- ]
- }
- }
-}
diff --git a/keyboards/keychron/q1/ansi/rules.mk b/keyboards/keychron/q1/ansi/rules.mk
deleted file mode 100644
index 0379fdb94c..0000000000
--- a/keyboards/keychron/q1/ansi/rules.mk
+++ /dev/null
@@ -1,15 +0,0 @@
-# Build Options
-# change yes to no to disable
-#
-BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite
-MOUSEKEY_ENABLE = no # Mouse keys
-EXTRAKEY_ENABLE = yes # Audio control and System control
-CONSOLE_ENABLE = no # Console for debug
-COMMAND_ENABLE = no # Commands for debug and configuration
-NKRO_ENABLE = yes # Enable N-Key Rollover
-BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
-RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
-AUDIO_ENABLE = no # Audio output
-DIP_SWITCH_ENABLE = yes
-RGB_MATRIX_ENABLE = yes
-LTO_ENABLE = yes
diff --git a/keyboards/keychron/q1/ansi_encoder/ansi_encoder.c b/keyboards/keychron/q1/ansi_encoder/ansi_encoder.c
deleted file mode 100644
index bc559b3541..0000000000
--- a/keyboards/keychron/q1/ansi_encoder/ansi_encoder.c
+++ /dev/null
@@ -1,148 +0,0 @@
-/* Copyright 2021 @ Keychron (https://www.keychron.com)
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-#include "quantum.h"
-
-#ifdef RGB_MATRIX_ENABLE
-const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = {
-/* Refer to IS31 manual for these locations
- * driver
- * | R location
- * | | G location
- * | | | B location
- * | | | | */
- {0, C_1, A_1, B_1},
- {0, C_3, A_3, B_3},
- {0, C_4, A_4, B_4},
- {0, C_5, A_5, B_5},
- {0, C_6, A_6, B_6},
- {0, C_7, A_7, B_7},
- {0, C_8, A_8, B_8},
- {0, C_9, A_9, B_9},
- {0, C_10, A_10, B_10},
- {0, C_11, A_11, B_11},
- {0, C_12, A_12, B_12},
- {0, C_13, A_13, B_13},
- {0, C_14, A_14, B_14},
- {0, C_15, A_15, B_15},
- {0, C_16, A_16, B_16},
-
- {0, F_1, D_1, E_1},
- {0, F_2, D_2, E_2},
- {0, F_3, D_3, E_3},
- {0, F_4, D_4, E_4},
- {0, F_5, D_5, E_5},
- {0, F_6, D_6, E_6},
- {0, F_7, D_7, E_7},
- {0, F_8, D_8, E_8},
- {0, F_9, D_9, E_9},
- {0, F_10, D_10, E_10},
- {0, F_11, D_11, E_11},
- {0, F_12, D_12, E_12},
- {0, F_13, D_13, E_13},
- {0, F_14, D_14, E_14},
- {0, F_16, D_16, E_16},
-
- {0, I_1, G_1, H_1},
- {0, I_2, G_2, H_2},
- {0, I_3, G_3, H_3},
- {0, I_4, G_4, H_4},
- {0, I_5, G_5, H_5},
- {0, I_6, G_6, H_6},
- {0, I_7, G_7, H_7},
- {0, I_8, G_8, H_8},
- {0, I_9, G_9, H_9},
- {0, I_10, G_10, H_10},
- {0, I_11, G_11, H_11},
- {0, I_12, G_12, H_12},
- {0, I_13, G_13, H_13},
- {0, I_14, G_14, H_14},
- {0, I_16, G_16, H_16},
-
- {0, L_1, J_1, K_1},
- {0, L_2, J_2, K_2},
- {0, L_3, J_3, K_3},
- {0, L_4, J_4, K_4},
- {0, L_5, J_5, K_5},
- {0, L_6, J_6, K_6},
- {0, L_7, J_7, K_7},
- {0, L_8, J_8, K_8},
- {0, L_9, J_9, K_9},
- {0, L_10, J_10, K_10},
- {0, L_11, J_11, K_11},
- {0, L_12, J_12, K_12},
- {0, L_14, J_14, K_14},
- {0, L_16, J_16, K_16},
-
- {1, C_1, A_1, B_1},
- {1, C_3, A_3, B_3},
- {1, C_4, A_4, B_4},
- {1, C_5, A_5, B_5},
- {1, C_6, A_6, B_6},
- {1, C_7, A_7, B_7},
- {1, C_8, A_8, B_8},
- {1, C_9, A_9, B_9},
- {1, C_10, A_10, B_10},
- {1, C_11, A_11, B_11},
- {1, C_12, A_12, B_12},
- {1, C_14, A_14, B_14},
- {1, C_15, A_15, B_15},
-
- {1, F_1, D_1, E_1},
- {1, F_2, D_2, E_2},
- {1, F_3, D_3, E_3},
- {1, F_7, D_7, E_7},
- {1, F_11, D_11, E_11},
- {1, F_12, D_12, E_12},
- {1, F_13, D_13, E_13},
- {1, F_14, D_14, E_14},
- {1, F_15, D_15, E_15},
- {1, F_16, D_16, E_16}
-};
-
-#define __ NO_LED
-
-led_config_t g_led_config = {
- {
- // Key Matrix to LED Index
- { 0, __, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 14 },
- { 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29 },
- { 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44 },
- { 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 71, 57, 58 },
- { 59, __, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 80, 70, 13 },
- { 72, 73, 74, __, __, __, 75, __, __, __, 76, 77, 78, 79, 81 }
- },
- {
- // LED Index to Physical Position
- {0,0}, {18,0}, {33,0}, {48,0}, {62,0}, {81,0}, {95,0}, {110,0}, {125,0}, {143,0}, {158,0}, {173,0}, {187,0}, {206,0}, {224,0},
- {0,15}, {15,15}, {29,15}, {44,15}, {59,15}, {73,15}, {88,15}, {103,15}, {118,15}, {132,15}, {147,15}, {162,15}, {176,15}, {198,15}, {224,15},
- {4,26}, {22,26}, {37,26}, {51,26}, {66,26}, {81,26}, {95,26}, {110,26}, {125,26}, {140,26}, {154,26}, {169,26}, {184,26}, {202,26}, {224,26},
- {6,38}, {26,38}, {40,38}, {55,38}, {70,38}, {84,38}, {99,38}, {114,38}, {129,38}, {143,38}, {158,38}, {173,38}, {196,38}, {224,38},
- {9,49}, {33,49}, {48,49}, {62,49}, {77,49}, {92,49}, {106,49}, {121,49}, {136,49}, {151,49}, {165,49}, {185,49}, {209,52},
- {2,61}, {20,61}, {39,61}, {94,61}, {147,61}, {162,61}, {176,61}, {195,64}, {209,64}, {224,64}
- },
- {
- // RGB LED Index to Flag
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1,
- 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
- 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1,
- 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1,
- 1, 1, 1, 4, 1, 1, 1, 1, 1, 1
- }
-};
-
-#endif // RGB_MATRIX_ENABLE
diff --git a/keyboards/keychron/q1/ansi_encoder/config.h b/keyboards/keychron/q1/ansi_encoder/config.h
deleted file mode 100644
index 28bbea9087..0000000000
--- a/keyboards/keychron/q1/ansi_encoder/config.h
+++ /dev/null
@@ -1,22 +0,0 @@
-/* Copyright 2021 @ Keychron (https://www.keychron.com)
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-#pragma once
-
-/* RGB Matrix Configuration */
-#define DRIVER_1_LED_TOTAL 59
-#define DRIVER_2_LED_TOTAL 23
-#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL)
diff --git a/keyboards/keychron/q1/ansi_encoder/info.json b/keyboards/keychron/q1/ansi_encoder/info.json
deleted file mode 100644
index ef361257f0..0000000000
--- a/keyboards/keychron/q1/ansi_encoder/info.json
+++ /dev/null
@@ -1,120 +0,0 @@
-{
- "keyboard_name": "Q1",
- "manufacturer": "Keychron",
- "url": "https://github.com/Keychron",
- "maintainer": "lalalademaxiya1",
- "usb": {
- "vid": "0x3434",
- "pid": "0x0101",
- "device_version": "1.0.0",
- "force_nkro": true
- },
- "rgb_matrix": {
- "driver": "is31fl3733"
- },
- "matrix_pins": {
- "cols": ["D5", "D4", "D6", "D7", "B4", "B5", "B6", "C6", "C7", "F7", "F6", "F5", "F4", "F1", "F0"],
- "rows": ["D3", "D2", "B3", "B2", "B1", "B0"]
- },
- "diode_direction": "ROW2COL",
- "encoder": {
- "rotary": [
- {"pin_a": "E6", "pin_b": "B7"}
- ]
- },
- "processor": "atmega32u4",
- "bootloader": "atmel-dfu",
- "layouts": {
- "LAYOUT_ansi_82": {
- "layout": [
- {"matrix": [0, 0], "x": 0, "y": 0},
- {"matrix": [0, 2], "x": 1.25, "y": 0},
- {"matrix": [0, 3], "x": 2.25, "y": 0},
- {"matrix": [0, 4], "x": 3.25, "y": 0},
- {"matrix": [0, 5], "x": 4.25, "y": 0},
- {"matrix": [0, 6], "x": 5.5, "y": 0},
- {"matrix": [0, 7], "x": 6.5, "y": 0},
- {"matrix": [0, 8], "x": 7.5, "y": 0},
- {"matrix": [0, 9], "x": 8.5, "y": 0},
- {"matrix": [0, 10], "x": 9.75, "y": 0},
- {"matrix": [0, 11], "x": 10.75, "y": 0},
- {"matrix": [0, 12], "x": 11.75, "y": 0},
- {"matrix": [0, 13], "x": 12.75, "y": 0},
- {"matrix": [4, 14], "x": 14, "y": 0},
- {"matrix": [0, 14], "x": 15.25, "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": [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.25, "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.25, "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.25, "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, 13], "x": 12.25, "y": 4, "w": 1.75},
- {"matrix": [3, 12], "x": 14.25, "y": 4.25},
-
- {"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, 6], "x": 3.75, "y": 5, "w": 6.25},
- {"matrix": [5, 10], "x": 10, "y": 5},
- {"matrix": [5, 11], "x": 11, "y": 5},
- {"matrix": [5, 12], "x": 12, "y": 5},
- {"matrix": [5, 13], "x": 13.25, "y": 5.25},
- {"matrix": [4, 12], "x": 14.25, "y": 5.25},
- {"matrix": [5, 14], "x": 15.25, "y": 5.25}
- ]
- }
- }
-}
diff --git a/keyboards/keychron/q1/ansi_encoder/rules.mk b/keyboards/keychron/q1/ansi_encoder/rules.mk
deleted file mode 100644
index d60167579e..0000000000
--- a/keyboards/keychron/q1/ansi_encoder/rules.mk
+++ /dev/null
@@ -1,16 +0,0 @@
-# Build Options
-# change yes to no to disable
-#
-BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite
-MOUSEKEY_ENABLE = no # Mouse keys
-EXTRAKEY_ENABLE = yes # Audio control and System control
-CONSOLE_ENABLE = no # Console for debug
-COMMAND_ENABLE = no # Commands for debug and configuration
-NKRO_ENABLE = yes # Enable N-Key Rollover
-BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
-RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
-AUDIO_ENABLE = no # Audio output
-ENCODER_ENABLE = yes # Enable Encoder
-DIP_SWITCH_ENABLE = yes
-RGB_MATRIX_ENABLE = yes
-LTO_ENABLE = yes
diff --git a/keyboards/keychron/q1/config.h b/keyboards/keychron/q1/config.h
deleted file mode 100644
index c78453dc5f..0000000000
--- a/keyboards/keychron/q1/config.h
+++ /dev/null
@@ -1,80 +0,0 @@
-/* Copyright 2021 @ Keychron(https://www.keychron.com)
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-#pragma once
-
-/* RGB Matrix Driver Configuration */
-#define DRIVER_COUNT 2
-#define DRIVER_ADDR_1 0b1010000
-#define DRIVER_ADDR_2 0b1011111
-
-/* DIP switch */
-#define DIP_SWITCH_MATRIX_GRID { {0,1} }
-
-/* Disable DIP switch in matrix data */
-#define MATRIX_MASKED
-
-/* Disable RGB lighting when PC is in suspend */
-#define RGB_DISABLE_WHEN_USB_SUSPENDED
-
-// RGB Matrix Animation modes. Explicitly enabled
-// For full list of effects, see:
-// https://docs.qmk.fm/#/feature_rgb_matrix?id=rgb-matrix-effects
-// #define ENABLE_RGB_MATRIX_ALPHAS_MODS
-// #define ENABLE_RGB_MATRIX_GRADIENT_UP_DOWN
-// #define ENABLE_RGB_MATRIX_GRADIENT_LEFT_RIGHT
-#define ENABLE_RGB_MATRIX_BREATHING
-// #define ENABLE_RGB_MATRIX_BAND_SAT
-// #define ENABLE_RGB_MATRIX_BAND_VAL
-// #define ENABLE_RGB_MATRIX_BAND_PINWHEEL_SAT
-// #define ENABLE_RGB_MATRIX_BAND_PINWHEEL_VAL
-// #define ENABLE_RGB_MATRIX_BAND_SPIRAL_SAT
-#define ENABLE_RGB_MATRIX_BAND_SPIRAL_VAL
-#define ENABLE_RGB_MATRIX_CYCLE_ALL
-#define ENABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT
-#define ENABLE_RGB_MATRIX_CYCLE_UP_DOWN
-#define ENABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON
-#define ENABLE_RGB_MATRIX_CYCLE_OUT_IN
-#define ENABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL
-#define ENABLE_RGB_MATRIX_CYCLE_PINWHEEL
-#define ENABLE_RGB_MATRIX_CYCLE_SPIRAL
-#define ENABLE_RGB_MATRIX_DUAL_BEACON
-#define ENABLE_RGB_MATRIX_RAINBOW_BEACON
-// #define ENABLE_RGB_MATRIX_RAINBOW_PINWHEELS
-// #define ENABLE_RGB_MATRIX_RAINDROPS
-#define ENABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS
-// #define ENABLE_RGB_MATRIX_HUE_BREATHING
-// #define ENABLE_RGB_MATRIX_HUE_PENDULUM
-// #define ENABLE_RGB_MATRIX_HUE_WAVE
-#define ENABLE_RGB_MATRIX_PIXEL_RAIN
-// #define ENABLE_RGB_MATRIX_PIXEL_FLOW
-// #define ENABLE_RGB_MATRIX_PIXEL_FRACTAL
-// enabled only if RGB_MATRIX_FRAMEBUFFER_EFFECTS is defined
-#define ENABLE_RGB_MATRIX_TYPING_HEATMAP
-#define ENABLE_RGB_MATRIX_DIGITAL_RAIN
-// enabled only of RGB_MATRIX_KEYPRESSES or RGB_MATRIX_KEYRELEASES is defined
-#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE
-// #define ENABLE_RGB_MATRIX_SOLID_REACTIVE
-// #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE
-#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE
-// #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS
-// #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS
-// #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS
-#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS
-#define ENABLE_RGB_MATRIX_SPLASH
-// #define ENABLE_RGB_MATRIX_MULTISPLASH
-#define ENABLE_RGB_MATRIX_SOLID_SPLASH
-#define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH
diff --git a/keyboards/keychron/q1/iso/config.h b/keyboards/keychron/q1/iso/config.h
deleted file mode 100644
index cb7b05560a..0000000000
--- a/keyboards/keychron/q1/iso/config.h
+++ /dev/null
@@ -1,22 +0,0 @@
-/* Copyright 2021 @ Keychron (https://www.keychron.com)
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-#pragma once
-
-/* RGB Matrix Configuration */
-#define DRIVER_1_LED_TOTAL 59
-#define DRIVER_2_LED_TOTAL 24
-#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) \ No newline at end of file
diff --git a/keyboards/keychron/q1/iso/info.json b/keyboards/keychron/q1/iso/info.json
deleted file mode 100644
index 424ed021e1..0000000000
--- a/keyboards/keychron/q1/iso/info.json
+++ /dev/null
@@ -1,116 +0,0 @@
-{
- "keyboard_name": "Q1",
- "manufacturer": "Keychron",
- "url": "https://github.com/Keychron",
- "maintainer": "lalalademaxiya1",
- "usb": {
- "vid": "0x3434",
- "pid": "0x0102",
- "device_version": "1.0.0",
- "force_nkro": true
- },
- "rgb_matrix": {
- "driver": "is31fl3733"
- },
- "matrix_pins": {
- "cols": ["D5", "D4", "D6", "D7", "B4", "B5", "B6", "C6", "C7", "F7", "F6", "F5", "F4", "F1", "F0"],
- "rows": ["D3", "D2", "B3", "B2", "B1", "B0"]
- },
- "diode_direction": "ROW2COL",
- "processor": "atmega32u4",
- "bootloader": "atmel-dfu",
- "layouts": {
- "LAYOUT_iso_83": {
- "layout": [
- {"matrix": [0, 0], "x": 0, "y": 0},
- {"matrix": [0, 2], "x": 1.25, "y": 0},
- {"matrix": [0, 3], "x": 2.25, "y": 0},
- {"matrix": [0, 4], "x": 3.25, "y": 0},
- {"matrix": [0, 5], "x": 4.25, "y": 0},
- {"matrix": [0, 6], "x": 5.5, "y": 0},
- {"matrix": [0, 7], "x": 6.5, "y": 0},
- {"matrix": [0, 8], "x": 7.5, "y": 0},
- {"matrix": [0, 9], "x": 8.5, "y": 0},
- {"matrix": [0, 10], "x": 9.75, "y": 0},
- {"matrix": [0, 11], "x": 10.75, "y": 0},
- {"matrix": [0, 12], "x": 11.75, "y": 0},
- {"matrix": [0, 13], "x": 12.75, "y": 0},
- {"matrix": [4, 14], "x": 14, "y": 0},
- {"matrix": [0, 14], "x": 15.25, "y": 0},
-
- {"matrix": [1, 0], "x": 0, "y": 1.25},
- {"matrix": [1, 1], "x": 1, "y": 1.25},
- {"matrix": [1, 2], "x": 2, "y": 1.25},
- {"matrix": [1, 3], "x": 3, "y": 1.25},
- {"matrix": [1, 4], "x": 4, "y": 1.25},
- {"matrix": [1, 5], "x": 5, "y": 1.25},
- {"matrix": [1, 6], "x": 6, "y": 1.25},
- {"matrix": [1, 7], "x": 7, "y": 1.25},
- {"matrix": [1, 8], "x": 8, "y": 1.25},
- {"matrix": [1, 9], "x": 9, "y": 1.25},
- {"matrix": [1, 10], "x": 10, "y": 1.25},
- {"matrix": [1, 11], "x": 11, "y": 1.25},
- {"matrix": [1, 12], "x": 12, "y": 1.25},
- {"matrix": [1, 13], "x": 13, "y": 1.25, "w": 2},
- {"matrix": [1, 14], "x": 15.25, "y": 1.25},
-
- {"matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5},
- {"matrix": [2, 1], "x": 1.5, "y": 2.25},
- {"matrix": [2, 2], "x": 2.5, "y": 2.25},
- {"matrix": [2, 3], "x": 3.5, "y": 2.25},
- {"matrix": [2, 4], "x": 4.5, "y": 2.25},
- {"matrix": [2, 5], "x": 5.5, "y": 2.25},
- {"matrix": [2, 6], "x": 6.5, "y": 2.25},
- {"matrix": [2, 7], "x": 7.5, "y": 2.25},
- {"matrix": [2, 8], "x": 8.5, "y": 2.25},
- {"matrix": [2, 9], "x": 9.5, "y": 2.25},
- {"matrix": [2, 10], "x": 10.5, "y": 2.25},
- {"matrix": [2, 11], "x": 11.5, "y": 2.25},
- {"matrix": [2, 12], "x": 12.5, "y": 2.25},
- {"matrix": [2, 14], "x": 15.25, "y": 2.25},
-
- {"matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75},
- {"matrix": [3, 1], "x": 1.75, "y": 3.25},
- {"matrix": [3, 2], "x": 2.75, "y": 3.25},
- {"matrix": [3, 3], "x": 3.75, "y": 3.25},
- {"matrix": [3, 4], "x": 4.75, "y": 3.25},
- {"matrix": [3, 5], "x": 5.75, "y": 3.25},
- {"matrix": [3, 6], "x": 6.75, "y": 3.25},
- {"matrix": [3, 7], "x": 7.75, "y": 3.25},
- {"matrix": [3, 8], "x": 8.75, "y": 3.25},
- {"matrix": [3, 9], "x": 9.75, "y": 3.25},
- {"matrix": [3, 10], "x": 10.75, "y": 3.25},
- {"matrix": [3, 11], "x": 11.75, "y": 3.25},
- {"matrix": [3, 13], "x": 12.75, "y": 3.25},
- {"matrix": [2, 13], "x": 13.75, "y": 2.25, "w": 1.25, "h": 2},
- {"matrix": [3, 14], "x": 15.25, "y": 3.25},
-
- {"matrix": [4, 0], "x": 0, "y": 4.25, "w": 1.25},
- {"matrix": [4, 1], "x": 1.25, "y": 4.25},
- {"matrix": [4, 2], "x": 2.25, "y": 4.25},
- {"matrix": [4, 3], "x": 3.25, "y": 4.25},
- {"matrix": [4, 4], "x": 4.25, "y": 4.25},
- {"matrix": [4, 5], "x": 5.25, "y": 4.25},
- {"matrix": [4, 6], "x": 6.25, "y": 4.25},
- {"matrix": [4, 7], "x": 7.25, "y": 4.25},
- {"matrix": [4, 8], "x": 8.25, "y": 4.25},
- {"matrix": [4, 9], "x": 9.25, "y": 4.25},
- {"matrix": [4, 10], "x": 10.25, "y": 4.25},
- {"matrix": [4, 11], "x": 11.25, "y": 4.25},
- {"matrix": [4, 13], "x": 12.25, "y": 4.25, "w": 1.75},
- {"matrix": [3, 12], "x": 14.25, "y": 4.5},
-
- {"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.25},
- {"matrix": [5, 1], "x": 1.25, "y": 5.25, "w": 1.25},
- {"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.25},
- {"matrix": [5, 6], "x": 3.75, "y": 5.25, "w": 6.25},
- {"matrix": [5, 10], "x": 10, "y": 5.25},
- {"matrix": [5, 11], "x": 11, "y": 5.25},
- {"matrix": [5, 12], "x": 12, "y": 5.25},
- {"matrix": [5, 13], "x": 13.25, "y": 5.5},
- {"matrix": [4, 12], "x": 14.25, "y": 5.5},
- {"matrix": [5, 14], "x": 15.25, "y": 5.5}
- ]
- }
- }
-}
diff --git a/keyboards/keychron/q1/iso/iso.c b/keyboards/keychron/q1/iso/iso.c
deleted file mode 100644
index 619d89dffc..0000000000
--- a/keyboards/keychron/q1/iso/iso.c
+++ /dev/null
@@ -1,149 +0,0 @@
-/* Copyright 2021 @ Keychron (https://www.keychron.com)
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-#include "quantum.h"
-
-#ifdef RGB_MATRIX_ENABLE
-const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = {
-/* Refer to IS31 manual for these locations
- * driver
- * | R location
- * | | G location
- * | | | B location
- * | | | | */
- {0, C_1, A_1, B_1},
- {0, C_3, A_3, B_3},
- {0, C_4, A_4, B_4},
- {0, C_5, A_5, B_5},
- {0, C_6, A_6, B_6},
- {0, C_7, A_7, B_7},
- {0, C_8, A_8, B_8},
- {0, C_9, A_9, B_9},
- {0, C_10, A_10, B_10},
- {0, C_11, A_11, B_11},
- {0, C_12, A_12, B_12},
- {0, C_13, A_13, B_13},
- {0, C_14, A_14, B_14},
- {0, C_15, A_15, B_15},
- {0, C_16, A_16, B_16},
-
- {0, F_1, D_1, E_1},
- {0, F_2, D_2, E_2},
- {0, F_3, D_3, E_3},
- {0, F_4, D_4, E_4},
- {0, F_5, D_5, E_5},
- {0, F_6, D_6, E_6},
- {0, F_7, D_7, E_7},
- {0, F_8, D_8, E_8},
- {0, F_9, D_9, E_9},
- {0, F_10, D_10, E_10},
- {0, F_11, D_11, E_11},
- {0, F_12, D_12, E_12},
- {0, F_13, D_13, E_13},
- {0, F_14, D_14, E_14},
- {0, F_16, D_16, E_16},
-
- {0, I_1, G_1, H_1},
- {0, I_2, G_2, H_2},
- {0, I_3, G_3, H_3},
- {0, I_4, G_4, H_4},
- {0, I_5, G_5, H_5},
- {0, I_6, G_6, H_6},
- {0, I_7, G_7, H_7},
- {0, I_8, G_8, H_8},
- {0, I_9, G_9, H_9},
- {0, I_10, G_10, H_10},
- {0, I_11, G_11, H_11},
- {0, I_12, G_12, H_12},
- {0, I_13, G_13, H_13},
- {0, I_16, G_16, H_16},
-
- {0, L_1, J_1, K_1},
- {0, L_2, J_2, K_2},
- {0, L_3, J_3, K_3},
- {0, L_4, J_4, K_4},
- {0, L_5, J_5, K_5},
- {0, L_6, J_6, K_6},
- {0, L_7, J_7, K_7},
- {0, L_8, J_8, K_8},
- {0, L_9, J_9, K_9},
- {0, L_10, J_10, K_10},
- {0, L_11, J_11, K_11},
- {0, L_12, J_12, K_12},
- {0, L_14, J_14, K_14},
- {0, I_14, G_14, H_14},
- {0, L_16, J_16, K_16},
-
- {1, C_1, A_1, B_1},
- {1, C_2, A_2, B_2},
- {1, C_3, A_3, B_3},
- {1, C_4, A_4, B_4},
- {1, C_5, A_5, B_5},
- {1, C_6, A_6, B_6},
- {1, C_7, A_7, B_7},
- {1, C_8, A_8, B_8},
- {1, C_9, A_9, B_9},
- {1, C_10, A_10, B_10},
- {1, C_11, A_11, B_11},
- {1, C_12, A_12, B_12},
- {1, C_14, A_14, B_14},
- {1, C_15, A_15, B_15},
-
- {1, F_1, D_1, E_1},
- {1, F_2, D_2, E_2},
- {1, F_3, D_3, E_3},
- {1, F_7, D_7, E_7},
- {1, F_11, D_11, E_11},
- {1, F_12, D_12, E_12},
- {1, F_13, D_13, E_13},
- {1, F_14, D_14, E_14},
- {1, F_15, D_15, E_15},
- {1, F_16, D_16, E_16}
-};
-
-#define __ NO_LED
-
-led_config_t g_led_config = {
- {
- // Key Matrix to LED Index
- { 0, __, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 14 },
- { 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29 },
- { 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 57, 43 },
- { 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 72, 56, 58 },
- { 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 81, 71, 13 },
- { 73, 74, 75, __, __, __, 76, __, __, __, 77, 78, 79, 80, 82 }
- },
- {
- // LED Index to Physical Position
- {0,0}, {18,0}, {33,0}, {48,0}, {62,0}, {81,0}, {95,0}, {110,0}, {125,0}, {143,0}, {158,0}, {173,0}, {187,0}, {206,0}, {224,0},
- {0,15}, {15,15}, {29,15}, {44,15}, {59,15}, {73,15}, {88,15}, {103,15}, {118,15}, {132,15}, {147,15}, {162,15}, {176,15}, {198,15}, {224,15},
- {4,26}, {22,26}, {37,26}, {51,26}, {66,26}, {81,26}, {95,26}, {110,26}, {125,26}, {140,26}, {154,26}, {169,26}, {184,26}, {224,26},
- {6,38}, {26,38}, {40,38}, {55,38}, {70,38}, {84,38}, {99,38}, {114,38}, {129,38}, {143,38}, {158,38}, {173,38}, {187,38}, {203,32}, {224,38},
- {2,49}, {18,49}, {33,49}, {48,49}, {62,49}, {77,49}, {92,49}, {106,49}, {121,49}, {136,49}, {151,49}, {165,49}, {185,49}, {209,52},
- {2,61}, {20,61}, {39,61}, {94,61}, {147,61}, {162,61}, {176,61}, {195,64}, {209,64}, {224,64}
- },
- {
- // RGB LED Index to Flag
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1,
- 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
- 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1,
- 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1,
- 1, 1, 1, 4, 1, 1, 1, 1, 1, 1
- }
-};
-
-#endif // RGB_MATRIX_ENABLE
diff --git a/keyboards/keychron/q1/iso/rules.mk b/keyboards/keychron/q1/iso/rules.mk
deleted file mode 100644
index 0379fdb94c..0000000000
--- a/keyboards/keychron/q1/iso/rules.mk
+++ /dev/null
@@ -1,15 +0,0 @@
-# Build Options
-# change yes to no to disable
-#
-BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite
-MOUSEKEY_ENABLE = no # Mouse keys
-EXTRAKEY_ENABLE = yes # Audio control and System control
-CONSOLE_ENABLE = no # Console for debug
-COMMAND_ENABLE = no # Commands for debug and configuration
-NKRO_ENABLE = yes # Enable N-Key Rollover
-BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
-RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
-AUDIO_ENABLE = no # Audio output
-DIP_SWITCH_ENABLE = yes
-RGB_MATRIX_ENABLE = yes
-LTO_ENABLE = yes
diff --git a/keyboards/keychron/q1/iso_encoder/config.h b/keyboards/keychron/q1/iso_encoder/config.h
deleted file mode 100644
index c1e84e44d3..0000000000
--- a/keyboards/keychron/q1/iso_encoder/config.h
+++ /dev/null
@@ -1,33 +0,0 @@
-/* Copyright 2021 @ Keychron (https://www.keychron.com)
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-#pragma once
-
-/* DIP switch */
-#define DIP_SWITCH_MATRIX_GRID { {0,1} }
-
-/* RGB Matrix Driver Configuration */
-#define DRIVER_COUNT 2
-#define DRIVER_ADDR_1 0b1010000
-#define DRIVER_ADDR_2 0b1011111
-
-/* RGB Matrix Configuration */
-#define DRIVER_1_LED_TOTAL 59
-#define DRIVER_2_LED_TOTAL 24
-#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL)
-
-/* Enable caps-lock LED */
-#define CAPS_LOCK_LED_INDEX 44
diff --git a/keyboards/keychron/q1/iso_encoder/info.json b/keyboards/keychron/q1/iso_encoder/info.json
deleted file mode 100644
index 250cd1ffb4..0000000000
--- a/keyboards/keychron/q1/iso_encoder/info.json
+++ /dev/null
@@ -1,121 +0,0 @@
-{
- "keyboard_name": "Keychron Q1",
- "manufacturer": "Keychron",
- "url": "https://github.com/Keychron",
- "maintainer": "lalalademaxiya1",
- "usb": {
- "vid": "0x3434",
- "pid": "0x0103",
- "device_version": "1.0.2",
- "force_nkro": true
- },
- "rgb_matrix": {
- "driver": "is31fl3733"
- },
- "matrix_pins": {
- "cols": ["D5", "D4", "D6", "D7", "B4", "B5", "B6", "C6", "C7", "F7", "F6", "F5", "F4", "F1", "F0"],
- "rows": ["D3", "D2", "B3", "B2", "B1", "B0"]
- },
- "diode_direction": "ROW2COL",
- "encoder": {
- "rotary": [
- {"pin_a": "E6", "pin_b": "B7"}
- ]
- },
- "processor": "atmega32u4",
- "bootloader": "atmel-dfu",
- "layouts": {
- "LAYOUT_iso_83": {
- "layout": [
- {"matrix": [0, 0], "x": 0, "y": 0},
- {"matrix": [0, 2], "x": 1.25, "y": 0},
- {"matrix": [0, 3], "x": 2.25, "y": 0},
- {"matrix": [0, 4], "x": 3.25, "y": 0},
- {"matrix": [0, 5], "x": 4.25, "y": 0},
- {"matrix": [0, 6], "x": 5.5, "y": 0},
- {"matrix": [0, 7], "x": 6.5, "y": 0},
- {"matrix": [0, 8], "x": 7.5, "y": 0},
- {"matrix": [0, 9], "x": 8.5, "y": 0},
- {"matrix": [0, 10], "x": 9.75, "y": 0},
- {"matrix": [0, 11], "x": 10.75, "y": 0},
- {"matrix": [0, 12], "x": 11.75, "y": 0},
- {"matrix": [0, 13], "x": 12.75, "y": 0},
- {"matrix": [4, 14], "x": 14, "y": 0},
- {"matrix": [0, 14], "x": 15.25, "y": 0},
-
- {"matrix": [1, 0], "x": 0, "y": 1.25},
- {"matrix": [1, 1], "x": 1, "y": 1.25},
- {"matrix": [1, 2], "x": 2, "y": 1.25},
- {"matrix": [1, 3], "x": 3, "y": 1.25},
- {"matrix": [1, 4], "x": 4, "y": 1.25},
- {"matrix": [1, 5], "x": 5, "y": 1.25},
- {"matrix": [1, 6], "x": 6, "y": 1.25},
- {"matrix": [1, 7], "x": 7, "y": 1.25},
- {"matrix": [1, 8], "x": 8, "y": 1.25},
- {"matrix": [1, 9], "x": 9, "y": 1.25},
- {"matrix": [1, 10], "x": 10, "y": 1.25},
- {"matrix": [1, 11], "x": 11, "y": 1.25},
- {"matrix": [1, 12], "x": 12, "y": 1.25},
- {"matrix": [1, 13], "x": 13, "y": 1.25, "w": 2},
- {"matrix": [1, 14], "x": 15.25, "y": 1.25},
-
- {"matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5},
- {"matrix": [2, 1], "x": 1.5, "y": 2.25},
- {"matrix": [2, 2], "x": 2.5, "y": 2.25},
- {"matrix": [2, 3], "x": 3.5, "y": 2.25},
- {"matrix": [2, 4], "x": 4.5, "y": 2.25},
- {"matrix": [2, 5], "x": 5.5, "y": 2.25},
- {"matrix": [2, 6], "x": 6.5, "y": 2.25},
- {"matrix": [2, 7], "x": 7.5, "y": 2.25},
- {"matrix": [2, 8], "x": 8.5, "y": 2.25},
- {"matrix": [2, 9], "x": 9.5, "y": 2.25},
- {"matrix": [2, 10], "x": 10.5, "y": 2.25},
- {"matrix": [2, 11], "x": 11.5, "y": 2.25},
- {"matrix": [2, 12], "x": 12.5, "y": 2.25},
- {"matrix": [2, 14], "x": 15.25, "y": 2.25},
-
- {"matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75},
- {"matrix": [3, 1], "x": 1.75, "y": 3.25},
- {"matrix": [3, 2], "x": 2.75, "y": 3.25},
- {"matrix": [3, 3], "x": 3.75, "y": 3.25},
- {"matrix": [3, 4], "x": 4.75, "y": 3.25},
- {"matrix": [3, 5], "x": 5.75, "y": 3.25},
- {"matrix": [3, 6], "x": 6.75, "y": 3.25},
- {"matrix": [3, 7], "x": 7.75, "y": 3.25},
- {"matrix": [3, 8], "x": 8.75, "y": 3.25},
- {"matrix": [3, 9], "x": 9.75, "y": 3.25},
- {"matrix": [3, 10], "x": 10.75, "y": 3.25},
- {"matrix": [3, 11], "x": 11.75, "y": 3.25},
- {"matrix": [3, 13], "x": 12.75, "y": 3.25},
- {"matrix": [2, 13], "x": 13.75, "y": 2.25, "w": 1.25, "h": 2},
- {"matrix": [3, 14], "x": 15.25, "y": 3.25},
-
- {"matrix": [4, 0], "x": 0, "y": 4.25, "w": 1.25},
- {"matrix": [4, 1], "x": 1.25, "y": 4.25},
- {"matrix": [4, 2], "x": 2.25, "y": 4.25},
- {"matrix": [4, 3], "x": 3.25, "y": 4.25},
- {"matrix": [4, 4], "x": 4.25, "y": 4.25},
- {"matrix": [4, 5], "x": 5.25, "y": 4.25},
- {"matrix": [4, 6], "x": 6.25, "y": 4.25},
- {"matrix": [4, 7], "x": 7.25, "y": 4.25},
- {"matrix": [4, 8], "x": 8.25, "y": 4.25},
- {"matrix": [4, 9], "x": 9.25, "y": 4.25},
- {"matrix": [4, 10], "x": 10.25, "y": 4.25},
- {"matrix": [4, 11], "x": 11.25, "y": 4.25},
- {"matrix": [4, 13], "x": 12.25, "y": 4.25, "w": 1.75},
- {"matrix": [3, 12], "x": 14.25, "y": 4.5},
-
- {"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.25},
- {"matrix": [5, 1], "x": 1.25, "y": 5.25, "w": 1.25},
- {"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.25},
- {"matrix": [5, 6], "x": 3.75, "y": 5.25, "w": 6.25},
- {"matrix": [5, 10], "x": 10, "y": 5.25},
- {"matrix": [5, 11], "x": 11, "y": 5.25},
- {"matrix": [5, 12], "x": 12, "y": 5.25},
- {"matrix": [5, 13], "x": 13.25, "y": 5.5},
- {"matrix": [4, 12], "x": 14.25, "y": 5.5},
- {"matrix": [5, 14], "x": 15.25, "y": 5.5}
- ]
- }
- }
-}
diff --git a/keyboards/keychron/q1/iso_encoder/iso_encoder.c b/keyboards/keychron/q1/iso_encoder/iso_encoder.c
deleted file mode 100644
index c6b091fff1..0000000000
--- a/keyboards/keychron/q1/iso_encoder/iso_encoder.c
+++ /dev/null
@@ -1,150 +0,0 @@
-/* Copyright 2021 @ Keychron (https://www.keychron.com)
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-#include "quantum.h"
-
-#ifdef RGB_MATRIX_ENABLE
-
-const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = {
-/* Refer to IS31 manual for these locations
- * driver
- * | R location
- * | | G location
- * | | | B location
- * | | | | */
- {0, C_1, A_1, B_1},
- {0, C_3, A_3, B_3},
- {0, C_4, A_4, B_4},
- {0, C_5, A_5, B_5},
- {0, C_6, A_6, B_6},
- {0, C_7, A_7, B_7},
- {0, C_8, A_8, B_8},
- {0, C_9, A_9, B_9},
- {0, C_10, A_10, B_10},
- {0, C_11, A_11, B_11},
- {0, C_12, A_12, B_12},
- {0, C_13, A_13, B_13},
- {0, C_14, A_14, B_14},
- {0, C_15, A_15, B_15},
- {0, C_16, A_16, B_16},
-
- {0, F_1, D_1, E_1},
- {0, F_2, D_2, E_2},
- {0, F_3, D_3, E_3},
- {0, F_4, D_4, E_4},
- {0, F_5, D_5, E_5},
- {0, F_6, D_6, E_6},
- {0, F_7, D_7, E_7},
- {0, F_8, D_8, E_8},
- {0, F_9, D_9, E_9},
- {0, F_10, D_10, E_10},
- {0, F_11, D_11, E_11},
- {0, F_12, D_12, E_12},
- {0, F_13, D_13, E_13},
- {0, F_14, D_14, E_14},
- {0, F_16, D_16, E_16},
-
- {0, I_1, G_1, H_1},
- {0, I_2, G_2, H_2},
- {0, I_3, G_3, H_3},
- {0, I_4, G_4, H_4},
- {0, I_5, G_5, H_5},
- {0, I_6, G_6, H_6},
- {0, I_7, G_7, H_7},
- {0, I_8, G_8, H_8},
- {0, I_9, G_9, H_9},
- {0, I_10, G_10, H_10},
- {0, I_11, G_11, H_11},
- {0, I_12, G_12, H_12},
- {0, I_13, G_13, H_13},
- {0, I_16, G_16, H_16},
-
- {0, L_1, J_1, K_1},
- {0, L_2, J_2, K_2},
- {0, L_3, J_3, K_3},
- {0, L_4, J_4, K_4},
- {0, L_5, J_5, K_5},
- {0, L_6, J_6, K_6},
- {0, L_7, J_7, K_7},
- {0, L_8, J_8, K_8},
- {0, L_9, J_9, K_9},
- {0, L_10, J_10, K_10},
- {0, L_11, J_11, K_11},
- {0, L_12, J_12, K_12},
- {0, L_14, J_14, K_14},
- {0, I_14, G_14, H_14},
- {0, L_16, J_16, K_16},
-
- {1, C_1, A_1, B_1},
- {1, C_2, A_2, B_2},
- {1, C_3, A_3, B_3},
- {1, C_4, A_4, B_4},
- {1, C_5, A_5, B_5},
- {1, C_6, A_6, B_6},
- {1, C_7, A_7, B_7},
- {1, C_8, A_8, B_8},
- {1, C_9, A_9, B_9},
- {1, C_10, A_10, B_10},
- {1, C_11, A_11, B_11},
- {1, C_12, A_12, B_12},
- {1, C_14, A_14, B_14},
- {1, C_15, A_15, B_15},
-
- {1, F_1, D_1, E_1},
- {1, F_2, D_2, E_2},
- {1, F_3, D_3, E_3},
- {1, F_7, D_7, E_7},
- {1, F_11, D_11, E_11},
- {1, F_12, D_12, E_12},
- {1, F_13, D_13, E_13},
- {1, F_14, D_14, E_14},
- {1, F_15, D_15, E_15},
- {1, F_16, D_16, E_16}
-};
-
-#define __ NO_LED
-
-led_config_t g_led_config = {
- {
- // Key Matrix to LED Index
- { 0, __, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 14 },
- { 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29 },
- { 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 57, 43 },
- { 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 72, 56, 58 },
- { 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 81, 71, 13 },
- { 73, 74, 75, __, __, __, 76, __, __, __, 77, 78, 79, 80, 82 }
- },
- {
- // LED Index to Physical Position
- {0,0}, {18,0}, {33,0}, {48,0}, {62,0}, {81,0}, {95,0}, {110,0}, {125,0}, {143,0}, {158,0}, {173,0}, {187,0}, {206,0}, {224,0},
- {0,15}, {15,15}, {29,15}, {44,15}, {59,15}, {73,15}, {88,15}, {103,15}, {118,15}, {132,15}, {147,15}, {162,15}, {176,15}, {198,15}, {224,15},
- {4,26}, {22,26}, {37,26}, {51,26}, {66,26}, {81,26}, {95,26}, {110,26}, {125,26}, {140,26}, {154,26}, {169,26}, {184,26}, {224,26},
- {6,38}, {26,38}, {40,38}, {55,38}, {70,38}, {84,38}, {99,38}, {114,38}, {129,38}, {143,38}, {158,38}, {173,38}, {187,38}, {203,32}, {224,38},
- {2,49}, {18,49}, {33,49}, {48,49}, {62,49}, {77,49}, {92,49}, {106,49}, {121,49}, {136,49}, {151,49}, {165,49}, {185,49}, {209,52},
- {2,61}, {20,61}, {39,61}, {94,61}, {147,61}, {162,61}, {176,61}, {195,64}, {209,64}, {224,64}
- },
- {
- // RGB LED Index to Flag
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1,
- 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
- 9, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1,
- 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1,
- 1, 1, 1, 4, 1, 1, 1, 1, 1, 1
- }
-};
-
-#endif // RGB_MATRIX_ENABLE
diff --git a/keyboards/keychron/q1/iso_encoder/rules.mk b/keyboards/keychron/q1/iso_encoder/rules.mk
deleted file mode 100644
index d994ac1fad..0000000000
--- a/keyboards/keychron/q1/iso_encoder/rules.mk
+++ /dev/null
@@ -1,18 +0,0 @@
-# Build Options
-# change yes to no to disable
-#
-BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite
-MOUSEKEY_ENABLE = yes # Mouse keys
-EXTRAKEY_ENABLE = yes # Audio control and System control
-CONSOLE_ENABLE = no # Console for debug
-COMMAND_ENABLE = no # Commands for debug and configuration
-NKRO_ENABLE = yes # Enable N-Key Rollover
-BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
-RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
-AUDIO_ENABLE = no # Audio output
-ENCODER_ENABLE = yes # Enable Encoder
-DIP_SWITCH_ENABLE = yes
-RGB_MATRIX_ENABLE = yes
-RAW_ENABLE = yes
-LTO_ENABLE = yes
-
diff --git a/keyboards/keychron/q1/q1.c b/keyboards/keychron/q1/q1.c
deleted file mode 100644
index 3df62c4339..0000000000
--- a/keyboards/keychron/q1/q1.c
+++ /dev/null
@@ -1,38 +0,0 @@
-/* Copyright 2021 @ Keychron (https://www.keychron.com)
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-#include "quantum.h"
-
-const matrix_row_t matrix_mask[] = {
- 0b0111111111111101,
- 0b0111111111111111,
- 0b0111111111111111,
- 0b0111111111111111,
- 0b0111111111111111,
- 0b0111111111111111,
-};
-
-#ifdef DIP_SWITCH_ENABLE
-
-bool dip_switch_update_kb(uint8_t index, bool active) {
- if (!dip_switch_update_user(index, active)) { return false;}
- if (index == 0) {
- default_layer_set(1UL << (active ? 2 : 0));
- }
- return true;
-}
-
-#endif // DIP_SWITCH_ENABLE
diff --git a/keyboards/keychron/q1/readme.md b/keyboards/keychron/q1/readme.md
deleted file mode 100644
index 94b7a21f5b..0000000000
--- a/keyboards/keychron/q1/readme.md
+++ /dev/null
@@ -1,21 +0,0 @@
-# Keychron Q1
-
-![Keychron Q1](https://cdn.shopify.com/s/files/1/0059/0630/1017/t/5/assets/pf-823ebdc7--1073.jpg)
-
-A customizable 75% keyboard.
-
-* Keyboard Maintainer: [Keychron](https://github.com/keychron)
-* Hardware Supported: Keychron Q1
-* Hardware Availability: [Keychron](https://www.keychron.com)
-
-Make example for this keyboard (after setting up your build environment):
-
- make keychron/q1/ansi:default
-
-Flashing example for this keyboard:
-
- make keychron/q1/ansi:default:flash
-
-**Reset Key**: Hold down the key located at *K00*, commonly programmed as *Esc* while plugging in the keyboard.
-
-See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
diff --git a/keyboards/keychron/q10/ansi_encoder/ansi_encoder.c b/keyboards/keychron/q10/ansi_encoder/ansi_encoder.c
index c5abcb4f6e..a9df1609e0 100644
--- a/keyboards/keychron/q10/ansi_encoder/ansi_encoder.c
+++ b/keyboards/keychron/q10/ansi_encoder/ansi_encoder.c
@@ -20,8 +20,8 @@
// clang-format off
-const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = {
-/* Refer to IS31 manual for these locations
+const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = {
+/* Refer to SNLED27351 manual for these locations
* driver
* | R location
* | | G location
diff --git a/keyboards/keychron/q10/ansi_encoder/info.json b/keyboards/keychron/q10/ansi_encoder/info.json
index 8a8a624154..da2cb106e3 100644
--- a/keyboards/keychron/q10/ansi_encoder/info.json
+++ b/keyboards/keychron/q10/ansi_encoder/info.json
@@ -9,7 +9,7 @@
"device_version": "1.0.0"
},
"rgb_matrix": {
- "driver": "ckled2001"
+ "driver": "snled27351"
},
"encoder": {
"rotary": [
diff --git a/keyboards/keychron/q10/ansi_encoder/rules.mk b/keyboards/keychron/q10/ansi_encoder/rules.mk
index 7da353fbd1..4c6e5bebf0 100644
--- a/keyboards/keychron/q10/ansi_encoder/rules.mk
+++ b/keyboards/keychron/q10/ansi_encoder/rules.mk
@@ -13,8 +13,6 @@ AUDIO_ENABLE = no # Audio output
ENCODER_ENABLE = yes # Enable Encoder
DIP_SWITCH_ENABLE = yes
RGB_MATRIX_ENABLE = yes
-EEPROM_DRIVER = wear_leveling
-WEAR_LEVELING_DRIVER = embedded_flash
# custom matrix setup
CUSTOM_MATRIX = lite
diff --git a/keyboards/keychron/q10/config.h b/keyboards/keychron/q10/config.h
index 0ef4edf245..eb3a56e9ad 100644
--- a/keyboards/keychron/q10/config.h
+++ b/keyboards/keychron/q10/config.h
@@ -30,9 +30,8 @@
#define DIODE_DIRECTION ROW2COL
/* RGB Matrix Driver Configuration */
-#define DRIVER_COUNT 2
-#define DRIVER_ADDR_1 0b1110111
-#define DRIVER_ADDR_2 0b1110100
+#define SNLED27351_I2C_ADDRESS_1 SNLED27351_I2C_ADDRESS_VDDIO
+#define SNLED27351_I2C_ADDRESS_2 SNLED27351_I2C_ADDRESS_GND
/* Increase I2C speed to 1000 KHz */
#define I2C1_TIMINGR_PRESC 0U
@@ -41,9 +40,8 @@
#define I2C1_TIMINGR_SCLH 15U
#define I2C1_TIMINGR_SCLL 51U
-/* Scan phase of led driver set as MSKPHASE_9CHANNEL(defined as 0x03 in CKLED2001.h) */
-#define PHASE_CHANNEL MSKPHASE_9CHANNEL
-#define CKLED2001_CURRENT_TUNE \
+#define SNLED27351_PHASE_CHANNEL SNLED27351_SCAN_PHASE_9_CHANNEL
+#define SNLED27351_CURRENT_TUNE \
{ 0x98, 0x98, 0x4A, 0x98, 0x98, 0x4A, 0x98, 0x98, 0x4A, 0x98, 0x98, 0x4A }
/* DIP switch */
diff --git a/keyboards/keychron/q10/iso_encoder/info.json b/keyboards/keychron/q10/iso_encoder/info.json
index d7e1bf2885..08e6b2deae 100644
--- a/keyboards/keychron/q10/iso_encoder/info.json
+++ b/keyboards/keychron/q10/iso_encoder/info.json
@@ -9,7 +9,7 @@
"device_version": "1.0.0"
},
"rgb_matrix": {
- "driver": "ckled2001"
+ "driver": "snled27351"
},
"encoder": {
"rotary": [
diff --git a/keyboards/keychron/q10/iso_encoder/iso_encoder.c b/keyboards/keychron/q10/iso_encoder/iso_encoder.c
index 1e8f80ddd8..fbe4bca637 100644
--- a/keyboards/keychron/q10/iso_encoder/iso_encoder.c
+++ b/keyboards/keychron/q10/iso_encoder/iso_encoder.c
@@ -20,8 +20,8 @@
// clang-format off
-const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = {
-/* Refer to IS31 manual for these locations
+const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = {
+/* Refer to SNLED27351 manual for these locations
* driver
* | R location
* | | G location
diff --git a/keyboards/keychron/q10/iso_encoder/rules.mk b/keyboards/keychron/q10/iso_encoder/rules.mk
index 7da353fbd1..4c6e5bebf0 100644
--- a/keyboards/keychron/q10/iso_encoder/rules.mk
+++ b/keyboards/keychron/q10/iso_encoder/rules.mk
@@ -13,8 +13,6 @@ AUDIO_ENABLE = no # Audio output
ENCODER_ENABLE = yes # Enable Encoder
DIP_SWITCH_ENABLE = yes
RGB_MATRIX_ENABLE = yes
-EEPROM_DRIVER = wear_leveling
-WEAR_LEVELING_DRIVER = embedded_flash
# custom matrix setup
CUSTOM_MATRIX = lite
diff --git a/keyboards/keychron/q11/ansi_encoder/ansi_encoder.c b/keyboards/keychron/q11/ansi_encoder/ansi_encoder.c
index 0585ae9c96..f7acae7add 100755
--- a/keyboards/keychron/q11/ansi_encoder/ansi_encoder.c
+++ b/keyboards/keychron/q11/ansi_encoder/ansi_encoder.c
@@ -17,8 +17,8 @@
#include "quantum.h"
#ifdef RGB_MATRIX_ENABLE
-const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = {
-/* Refer to IS31 manual for these locations
+const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = {
+/* Refer to SNLED27351 manual for these locations
* driver
* | R location
* | | G location
diff --git a/keyboards/keychron/q11/ansi_encoder/rules.mk b/keyboards/keychron/q11/ansi_encoder/rules.mk
index 60d5c6bea2..c6e2988321 100644
--- a/keyboards/keychron/q11/ansi_encoder/rules.mk
+++ b/keyboards/keychron/q11/ansi_encoder/rules.mk
@@ -1,6 +1 @@
-# Build Options
-# change yes to no to disable
-#
-EEPROM_DRIVER = wear_leveling
-WEAR_LEVELING_DRIVER = embedded_flash
SERIAL_DRIVER = usart
diff --git a/keyboards/keychron/q11/config.h b/keyboards/keychron/q11/config.h
index d2c7ad4a96..0d6b9c9c48 100755
--- a/keyboards/keychron/q11/config.h
+++ b/keyboards/keychron/q11/config.h
@@ -27,8 +27,7 @@
#define MATRIX_MASKED // actual mask is defined by `matrix_mask` in `q11.c`
/* RGB Matrix Driver Configuration */
-#define DRIVER_COUNT 1
-#define DRIVER_ADDR_1 0b1110100
+#define SNLED27351_I2C_ADDRESS_1 SNLED27351_I2C_ADDRESS_GND
/* Increase I2C speed to 1000 KHz */
#define I2C1_TIMINGR_PRESC 0U
@@ -37,7 +36,7 @@
#define I2C1_TIMINGR_SCLH 15U
#define I2C1_TIMINGR_SCLL 51U
-#define CKLED2001_CURRENT_TUNE \
+#define SNLED27351_CURRENT_TUNE \
{ 0x80, 0xFF, 0xFF, 0x80, 0xFF, 0xFF, 0x80, 0xFF, 0xFF, 0x80, 0xFF, 0xFF } // 300mA
/* EEPROM Driver Configuration */
diff --git a/keyboards/keychron/q11/info.json b/keyboards/keychron/q11/info.json
index cd2864979d..f240c70801 100755
--- a/keyboards/keychron/q11/info.json
+++ b/keyboards/keychron/q11/info.json
@@ -44,7 +44,9 @@
},
"transport": {
"protocol": "serial_usart",
- "sync_matrix_state": true
+ "sync" :{
+ "matrix_state": true
+ }
},
"bootmagic": {
"matrix": [6, 7]
@@ -59,7 +61,7 @@
]
},
"rgb_matrix": {
- "driver": "ckled2001",
+ "driver": "snled27351",
"animations": {
"breathing": true,
"band_spiral_val": true,
diff --git a/keyboards/keychron/q11/iso_encoder/iso_encoder.c b/keyboards/keychron/q11/iso_encoder/iso_encoder.c
index 08858d9b79..a2db569710 100755
--- a/keyboards/keychron/q11/iso_encoder/iso_encoder.c
+++ b/keyboards/keychron/q11/iso_encoder/iso_encoder.c
@@ -17,8 +17,8 @@
#include "quantum.h"
#ifdef RGB_MATRIX_ENABLE
-const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = {
-/* Refer to CKLED2001 manual for these locations
+const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = {
+/* Refer to SNLED27351 manual for these locations
* driver
* | R location
* | | G location
diff --git a/keyboards/keychron/q12/ansi_encoder/ansi_encoder.c b/keyboards/keychron/q12/ansi_encoder/ansi_encoder.c
index 2cfaeae8fc..350da52661 100644
--- a/keyboards/keychron/q12/ansi_encoder/ansi_encoder.c
+++ b/keyboards/keychron/q12/ansi_encoder/ansi_encoder.c
@@ -17,8 +17,8 @@
#include "quantum.h"
#ifdef RGB_MATRIX_ENABLE
-const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = {
-/* Refer to IS31 manual for these locations
+const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = {
+/* Refer to SNLED27351 manual for these locations
* driver
* | R location
* | | G location
diff --git a/keyboards/keychron/q12/ansi_encoder/info.json b/keyboards/keychron/q12/ansi_encoder/info.json
index 97c1334ffd..291fd1774c 100644
--- a/keyboards/keychron/q12/ansi_encoder/info.json
+++ b/keyboards/keychron/q12/ansi_encoder/info.json
@@ -9,7 +9,7 @@
"device_version": "1.0.0"
},
"rgb_matrix": {
- "driver": "ckled2001"
+ "driver": "snled27351"
},
"encoder": {
"rotary": [
diff --git a/keyboards/keychron/q12/ansi_encoder/rules.mk b/keyboards/keychron/q12/ansi_encoder/rules.mk
index 80a3f300bd..213c733c9c 100644
--- a/keyboards/keychron/q12/ansi_encoder/rules.mk
+++ b/keyboards/keychron/q12/ansi_encoder/rules.mk
@@ -13,8 +13,6 @@ AUDIO_ENABLE = no # Audio output
ENCODER_ENABLE = yes # Enable Encoder
DIP_SWITCH_ENABLE = yes
RGB_MATRIX_ENABLE = yes
-EEPROM_DRIVER = wear_leveling
-WEAR_LEVELING_DRIVER = embedded_flash
# custom matrix setup
CUSTOM_MATRIX = lite
diff --git a/keyboards/keychron/q12/config.h b/keyboards/keychron/q12/config.h
index 95281b4854..cc24578c16 100644
--- a/keyboards/keychron/q12/config.h
+++ b/keyboards/keychron/q12/config.h
@@ -26,9 +26,8 @@
#define DIODE_DIRECTION ROW2COL
/* RGB Matrix Driver Configuration */
-#define DRIVER_COUNT 2
-#define DRIVER_ADDR_1 0b1110111
-#define DRIVER_ADDR_2 0b1110100
+#define SNLED27351_I2C_ADDRESS_1 SNLED27351_I2C_ADDRESS_VDDIO
+#define SNLED27351_I2C_ADDRESS_2 SNLED27351_I2C_ADDRESS_GND
/* Increase I2C speed to 1000 KHz */
#define I2C1_TIMINGR_PRESC 0U
@@ -37,7 +36,7 @@
#define I2C1_TIMINGR_SCLH 15U
#define I2C1_TIMINGR_SCLL 51U
-#define CKLED2001_CURRENT_TUNE \
+#define SNLED27351_CURRENT_TUNE \
{ 0xAD, 0xAD, 0x55, 0xAD, 0xAD, 0x55, 0xAD, 0xAD, 0x55, 0xAD, 0xAD, 0x55 }
/* DIP switch */
diff --git a/keyboards/keychron/q12/iso_encoder/info.json b/keyboards/keychron/q12/iso_encoder/info.json
index cd848c86b6..edd0d0ea43 100644
--- a/keyboards/keychron/q12/iso_encoder/info.json
+++ b/keyboards/keychron/q12/iso_encoder/info.json
@@ -9,7 +9,7 @@
"device_version": "1.0.0"
},
"rgb_matrix": {
- "driver": "ckled2001"
+ "driver": "snled27351"
},
"encoder": {
"rotary": [
diff --git a/keyboards/keychron/q12/iso_encoder/iso_encoder.c b/keyboards/keychron/q12/iso_encoder/iso_encoder.c
index 8090649d33..37d9db10b4 100644
--- a/keyboards/keychron/q12/iso_encoder/iso_encoder.c
+++ b/keyboards/keychron/q12/iso_encoder/iso_encoder.c
@@ -18,8 +18,8 @@
#ifdef RGB_MATRIX_ENABLE
-const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = {
-/* Refer to IS31 manual for these locations
+const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = {
+/* Refer to SNLED27351 manual for these locations
* driver
* | R location
* | | G location
diff --git a/keyboards/keychron/q12/iso_encoder/rules.mk b/keyboards/keychron/q12/iso_encoder/rules.mk
index 9867724957..39b0594039 100644
--- a/keyboards/keychron/q12/iso_encoder/rules.mk
+++ b/keyboards/keychron/q12/iso_encoder/rules.mk
@@ -13,8 +13,6 @@ AUDIO_ENABLE = no # Audio output
ENCODER_ENABLE = yes # Enable Encoder
DIP_SWITCH_ENABLE = yes
RGB_MATRIX_ENABLE = yes
-EEPROM_DRIVER = wear_leveling
-WEAR_LEVELING_DRIVER = embedded_flash
# custom matrix setup
CUSTOM_MATRIX = lite
diff --git a/keyboards/keychron/q1v1/ansi/ansi.c b/keyboards/keychron/q1v1/ansi/ansi.c
new file mode 100644
index 0000000000..5f74267bf4
--- /dev/null
+++ b/keyboards/keychron/q1v1/ansi/ansi.c
@@ -0,0 +1,126 @@
+/* Copyright 2021 @ Keychron (https://www.keychron.com)
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include "quantum.h"
+
+const matrix_row_t matrix_mask[] = {
+ 0b0111111111111101,
+ 0b0111111111111111,
+ 0b0111111111111111,
+ 0b0111111111111111,
+ 0b0111111111111111,
+ 0b0111111111111111,
+};
+
+#ifdef RGB_MATRIX_ENABLE
+const is31fl3733_led_t PROGMEM g_is31fl3733_leds[RGB_MATRIX_LED_COUNT] = {
+/* Refer to IS31 manual for these locations
+ * driver
+ * | R location
+ * | | G location
+ * | | | B location
+ * | | | | */
+ {0, C_1, A_1, B_1},
+ {0, C_3, A_3, B_3},
+ {0, C_4, A_4, B_4},
+ {0, C_5, A_5, B_5},
+ {0, C_6, A_6, B_6},
+ {0, C_7, A_7, B_7},
+ {0, C_8, A_8, B_8},
+ {0, C_9, A_9, B_9},
+ {0, C_10, A_10, B_10},
+ {0, C_11, A_11, B_11},
+ {0, C_12, A_12, B_12},
+ {0, C_13, A_13, B_13},
+ {0, C_14, A_14, B_14},
+ {0, C_15, A_15, B_15},
+ {0, C_16, A_16, B_16},
+
+ {0, F_1, D_1, E_1},
+ {0, F_2, D_2, E_2},
+ {0, F_3, D_3, E_3},
+ {0, F_4, D_4, E_4},
+ {0, F_5, D_5, E_5},
+ {0, F_6, D_6, E_6},
+ {0, F_7, D_7, E_7},
+ {0, F_8, D_8, E_8},
+ {0, F_9, D_9, E_9},
+ {0, F_10, D_10, E_10},
+ {0, F_11, D_11, E_11},
+ {0, F_12, D_12, E_12},
+ {0, F_13, D_13, E_13},
+ {0, F_14, D_14, E_14},
+ {0, F_16, D_16, E_16},
+
+ {0, I_1, G_1, H_1},
+ {0, I_2, G_2, H_2},
+ {0, I_3, G_3, H_3},
+ {0, I_4, G_4, H_4},
+ {0, I_5, G_5, H_5},
+ {0, I_6, G_6, H_6},
+ {0, I_7, G_7, H_7},
+ {0, I_8, G_8, H_8},
+ {0, I_9, G_9, H_9},
+ {0, I_10, G_10, H_10},
+ {0, I_11, G_11, H_11},
+ {0, I_12, G_12, H_12},
+ {0, I_13, G_13, H_13},
+ {0, I_14, G_14, H_14},
+ {0, I_16, G_16, H_16},
+
+ {0, L_1, J_1, K_1},
+ {0, L_2, J_2, K_2},
+ {0, L_3, J_3, K_3},
+ {0, L_4, J_4, K_4},
+ {0, L_5, J_5, K_5},
+ {0, L_6, J_6, K_6},
+ {0, L_7, J_7, K_7},
+ {0, L_8, J_8, K_8},
+ {0, L_9, J_9, K_9},
+ {0, L_10, J_10, K_10},
+ {0, L_11, J_11, K_11},
+ {0, L_12, J_12, K_12},
+ {0, L_14, J_14, K_14},
+ {0, L_16, J_16, K_16},
+
+ {1, C_1, A_1, B_1},
+ {1, C_3, A_3, B_3},
+ {1, C_4, A_4, B_4},
+ {1, C_5, A_5, B_5},
+ {1, C_6, A_6, B_6},
+ {1, C_7, A_7, B_7},
+ {1, C_8, A_8, B_8},
+ {1, C_9, A_9, B_9},
+ {1, C_10, A_10, B_10},
+ {1, C_11, A_11, B_11},
+ {1, C_12, A_12, B_12},
+ {1, C_14, A_14, B_14},
+ {1, C_15, A_15, B_15},
+
+ {1, F_1, D_1, E_1},
+ {1, F_2, D_2, E_2},
+ {1, F_3, D_3, E_3},
+ {1, F_7, D_7, E_7},
+ {1, F_11, D_11, E_11},
+ {1, F_12, D_12, E_12},
+ {1, F_13, D_13, E_13},
+ {1, F_14, D_14, E_14},
+ {1, F_15, D_15, E_15},
+ {1, F_16, D_16, E_16}
+
+};
+
+#endif // RGB_MATRIX_ENABLE
diff --git a/keyboards/keychron/q1v1/ansi/config.h b/keyboards/keychron/q1v1/ansi/config.h
new file mode 100644
index 0000000000..5eaa1e82f1
--- /dev/null
+++ b/keyboards/keychron/q1v1/ansi/config.h
@@ -0,0 +1,23 @@
+/* Copyright 2021 @ Keychron (https://www.keychron.com)
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#pragma once
+
+/* RGB Matrix Configuration */
+#define RGB_MATRIX_LED_COUNT 82
+
+/* Enable caps-lock LED */
+#define CAPS_LOCK_LED_INDEX 45 \ No newline at end of file
diff --git a/keyboards/keychron/q1v1/ansi/info.json b/keyboards/keychron/q1v1/ansi/info.json
new file mode 100644
index 0000000000..028967d608
--- /dev/null
+++ b/keyboards/keychron/q1v1/ansi/info.json
@@ -0,0 +1,190 @@
+{
+ "usb": {
+ "pid": "0x0100",
+ "device_version": "1.0.0"
+ },
+ "rgb_matrix": {
+ "layout": [
+ {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1},
+ {"matrix": [0, 2], "x": 18, "y": 0, "flags": 1},
+ {"matrix": [0, 3], "x": 33, "y": 0, "flags": 1},
+ {"matrix": [0, 4], "x": 48, "y": 0, "flags": 1},
+ {"matrix": [0, 5], "x": 62, "y": 0, "flags": 1},
+ {"matrix": [0, 6], "x": 81, "y": 0, "flags": 1},
+ {"matrix": [0, 7], "x": 95, "y": 0, "flags": 1},
+ {"matrix": [0, 8], "x": 110, "y": 0, "flags": 1},
+ {"matrix": [0, 9], "x": 125, "y": 0, "flags": 1},
+ {"matrix": [0, 10], "x": 143, "y": 0, "flags": 1},
+ {"matrix": [0, 11], "x": 158, "y": 0, "flags": 1},
+ {"matrix": [0, 12], "x": 173, "y": 0, "flags": 1},
+ {"matrix": [0, 13], "x": 187, "y": 0, "flags": 1},
+ {"matrix": [4, 14], "x": 206, "y": 0, "flags": 1},
+ {"matrix": [0, 14], "x": 224, "y": 0, "flags": 1},
+
+ {"matrix": [1, 0], "x": 0, "y": 15, "flags": 1},
+ {"matrix": [1, 1], "x": 15, "y": 15, "flags": 4},
+ {"matrix": [1, 2], "x": 29, "y": 15, "flags": 4},
+ {"matrix": [1, 3], "x": 44, "y": 15, "flags": 4},
+ {"matrix": [1, 4], "x": 59, "y": 15, "flags": 4},
+ {"matrix": [1, 5], "x": 73, "y": 15, "flags": 4},
+ {"matrix": [1, 6], "x": 88, "y": 15, "flags": 4},
+ {"matrix": [1, 7], "x": 103, "y": 15, "flags": 4},
+ {"matrix": [1, 8], "x": 118, "y": 15, "flags": 4},
+ {"matrix": [1, 9], "x": 132, "y": 15, "flags": 4},
+ {"matrix": [1, 10], "x": 147, "y": 15, "flags": 4},
+ {"matrix": [1, 11], "x": 162, "y": 15, "flags": 4},
+ {"matrix": [1, 12], "x": 176, "y": 15, "flags": 4},
+ {"matrix": [1, 13], "x": 198, "y": 15, "flags": 1},
+ {"matrix": [1, 14], "x": 224, "y": 15, "flags": 1},
+
+ {"matrix": [2, 0], "x": 4, "y": 26, "flags": 1},
+ {"matrix": [2, 1], "x": 22, "y": 26, "flags": 4},
+ {"matrix": [2, 2], "x": 37, "y": 26, "flags": 4},
+ {"matrix": [2, 3], "x": 51, "y": 26, "flags": 4},
+ {"matrix": [2, 4], "x": 66, "y": 26, "flags": 4},
+ {"matrix": [2, 5], "x": 81, "y": 26, "flags": 4},
+ {"matrix": [2, 6], "x": 95, "y": 26, "flags": 4},
+ {"matrix": [2, 7], "x": 110, "y": 26, "flags": 4},
+ {"matrix": [2, 8], "x": 125, "y": 26, "flags": 4},
+ {"matrix": [2, 9], "x": 140, "y": 26, "flags": 4},
+ {"matrix": [2, 10], "x": 154, "y": 26, "flags": 4},
+ {"matrix": [2, 11], "x": 169, "y": 26, "flags": 4},
+ {"matrix": [2, 12], "x": 184, "y": 26, "flags": 4},
+ {"matrix": [2, 13], "x": 202, "y": 26, "flags": 4},
+ {"matrix": [2, 14], "x": 224, "y": 26, "flags": 1},
+
+ {"matrix": [3, 0], "x": 6, "y": 38, "flags": 1},
+ {"matrix": [3, 1], "x": 26, "y": 38, "flags": 4},
+ {"matrix": [3, 2], "x": 40, "y": 38, "flags": 4},
+ {"matrix": [3, 3], "x": 55, "y": 38, "flags": 4},
+ {"matrix": [3, 4], "x": 70, "y": 38, "flags": 4},
+ {"matrix": [3, 5], "x": 84, "y": 38, "flags": 4},
+ {"matrix": [3, 6], "x": 99, "y": 38, "flags": 4},
+ {"matrix": [3, 7], "x": 114, "y": 38, "flags": 4},
+ {"matrix": [3, 8], "x": 129, "y": 38, "flags": 4},
+ {"matrix": [3, 9], "x": 143, "y": 38, "flags": 4},
+ {"matrix": [3, 10], "x": 158, "y": 38, "flags": 4},
+ {"matrix": [3, 11], "x": 173, "y": 38, "flags": 4},
+ {"matrix": [3, 13], "x": 196, "y": 38, "flags": 1},
+ {"matrix": [3, 14], "x": 224, "y": 38, "flags": 1},
+
+ {"matrix": [4, 0], "x": 9, "y": 49, "flags": 1},
+ {"matrix": [4, 2], "x": 33, "y": 49, "flags": 4},
+ {"matrix": [4, 3], "x": 48, "y": 49, "flags": 4},
+ {"matrix": [4, 4], "x": 62, "y": 49, "flags": 4},
+ {"matrix": [4, 5], "x": 77, "y": 49, "flags": 4},
+ {"matrix": [4, 6], "x": 92, "y": 49, "flags": 4},
+ {"matrix": [4, 7], "x": 106, "y": 49, "flags": 4},
+ {"matrix": [4, 8], "x": 121, "y": 49, "flags": 4},
+ {"matrix": [4, 9], "x": 136, "y": 49, "flags": 4},
+ {"matrix": [4, 10], "x": 151, "y": 49, "flags": 4},
+ {"matrix": [4, 11], "x": 165, "y": 49, "flags": 4},
+ {"matrix": [4, 13], "x": 185, "y": 49, "flags": 1},
+ {"matrix": [3, 12], "x": 209, "y": 52, "flags": 1},
+
+ {"matrix": [5, 0], "x":2, "y": 61, "flags": 1},
+ {"matrix": [5, 1], "x":20, "y": 61, "flags": 1},
+ {"matrix": [5, 2], "x":39, "y": 61, "flags": 1},
+ {"matrix": [5, 6], "x":94, "y": 61, "flags": 4},
+ {"matrix": [5, 10], "x":147, "y": 61, "flags": 1},
+ {"matrix": [5, 11], "x":162, "y": 61, "flags": 1},
+ {"matrix": [5, 12], "x":176, "y": 61, "flags": 1},
+ {"matrix": [5, 13], "x":195, "y": 64, "flags": 1},
+ {"matrix": [4, 12], "x":209, "y": 64, "flags": 1},
+ {"matrix": [5, 14], "x":224, "y": 64, "flags": 1}
+ ]
+ },
+ "layouts": {
+ "LAYOUT_ansi_82": {
+ "layout": [
+ {"matrix": [0, 0], "x": 0, "y": 0},
+ {"matrix": [0, 2], "x": 1.25, "y": 0},
+ {"matrix": [0, 3], "x": 2.25, "y": 0},
+ {"matrix": [0, 4], "x": 3.25, "y": 0},
+ {"matrix": [0, 5], "x": 4.25, "y": 0},
+ {"matrix": [0, 6], "x": 5.5, "y": 0},
+ {"matrix": [0, 7], "x": 6.5, "y": 0},
+ {"matrix": [0, 8], "x": 7.5, "y": 0},
+ {"matrix": [0, 9], "x": 8.5, "y": 0},
+ {"matrix": [0, 10], "x": 9.75, "y": 0},
+ {"matrix": [0, 11], "x": 10.75, "y": 0},
+ {"matrix": [0, 12], "x": 11.75, "y": 0},
+ {"matrix": [0, 13], "x": 12.75, "y": 0},
+ {"matrix": [4, 14], "x": 14, "y": 0},
+ {"matrix": [0, 14], "x": 15.25, "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": [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.25, "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.25, "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.25, "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, 13], "x": 12.25, "y": 4, "w": 1.75},
+ {"matrix": [3, 12], "x": 14.25, "y": 4.25},
+
+ {"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, 6], "x": 3.75, "y": 5, "w": 6.25},
+ {"matrix": [5, 10], "x": 10, "y": 5},
+ {"matrix": [5, 11], "x": 11, "y": 5},
+ {"matrix": [5, 12], "x": 12, "y": 5},
+ {"matrix": [5, 13], "x": 13.25, "y": 5.25},
+ {"matrix": [4, 12], "x": 14.25, "y": 5.25},
+ {"matrix": [5, 14], "x": 15.25, "y": 5.25}
+ ]
+ }
+ }
+}
diff --git a/keyboards/keychron/q1/ansi/keymaps/default/keymap.c b/keyboards/keychron/q1v1/ansi/keymaps/default/keymap.c
index 092d446773..092d446773 100644
--- a/keyboards/keychron/q1/ansi/keymaps/default/keymap.c
+++ b/keyboards/keychron/q1v1/ansi/keymaps/default/keymap.c
diff --git a/keyboards/keychron/q1/ansi/keymaps/gtg465x/README.md b/keyboards/keychron/q1v1/ansi/keymaps/gtg465x/README.md
index c2d5799bb8..c2d5799bb8 100644
--- a/keyboards/keychron/q1/ansi/keymaps/gtg465x/README.md
+++ b/keyboards/keychron/q1v1/ansi/keymaps/gtg465x/README.md
diff --git a/keyboards/keychron/q1/ansi/keymaps/gtg465x/config.h b/keyboards/keychron/q1v1/ansi/keymaps/gtg465x/config.h
index 5ac05d04c1..5ac05d04c1 100644
--- a/keyboards/keychron/q1/ansi/keymaps/gtg465x/config.h
+++ b/keyboards/keychron/q1v1/ansi/keymaps/gtg465x/config.h
diff --git a/keyboards/keychron/q1/ansi/keymaps/gtg465x/keymap.c b/keyboards/keychron/q1v1/ansi/keymaps/gtg465x/keymap.c
index 8da475c3c6..8da475c3c6 100644
--- a/keyboards/keychron/q1/ansi/keymaps/gtg465x/keymap.c
+++ b/keyboards/keychron/q1v1/ansi/keymaps/gtg465x/keymap.c
diff --git a/keyboards/keychron/q1/ansi/keymaps/gtg465x/keymap_user.h b/keyboards/keychron/q1v1/ansi/keymaps/gtg465x/keymap_user.h
index 728114d556..728114d556 100644
--- a/keyboards/keychron/q1/ansi/keymaps/gtg465x/keymap_user.h
+++ b/keyboards/keychron/q1v1/ansi/keymaps/gtg465x/keymap_user.h
diff --git a/keyboards/keychron/q1/ansi/keymaps/gtg465x/rgb_matrix_user.c b/keyboards/keychron/q1v1/ansi/keymaps/gtg465x/rgb_matrix_user.c
index b7d12f9466..b7d12f9466 100644
--- a/keyboards/keychron/q1/ansi/keymaps/gtg465x/rgb_matrix_user.c
+++ b/keyboards/keychron/q1v1/ansi/keymaps/gtg465x/rgb_matrix_user.c
diff --git a/keyboards/keychron/q1/ansi/keymaps/gtg465x/rgb_matrix_user.h b/keyboards/keychron/q1v1/ansi/keymaps/gtg465x/rgb_matrix_user.h
index dead454167..dead454167 100644
--- a/keyboards/keychron/q1/ansi/keymaps/gtg465x/rgb_matrix_user.h
+++ b/keyboards/keychron/q1v1/ansi/keymaps/gtg465x/rgb_matrix_user.h
diff --git a/keyboards/keychron/q1/ansi/keymaps/gtg465x/rules.mk b/keyboards/keychron/q1v1/ansi/keymaps/gtg465x/rules.mk
index 42ba38028d..42ba38028d 100644
--- a/keyboards/keychron/q1/ansi/keymaps/gtg465x/rules.mk
+++ b/keyboards/keychron/q1v1/ansi/keymaps/gtg465x/rules.mk
diff --git a/keyboards/keychron/q1/ansi/keymaps/keychron/keymap.c b/keyboards/keychron/q1v1/ansi/keymaps/keychron/keymap.c
index e7c9fddcdc..e7c9fddcdc 100644
--- a/keyboards/keychron/q1/ansi/keymaps/keychron/keymap.c
+++ b/keyboards/keychron/q1v1/ansi/keymaps/keychron/keymap.c
diff --git a/keyboards/keychron/q1/ansi/keymaps/keychron/rules.mk b/keyboards/keychron/q1v1/ansi/keymaps/keychron/rules.mk
index 495e8907b4..495e8907b4 100644
--- a/keyboards/keychron/q1/ansi/keymaps/keychron/rules.mk
+++ b/keyboards/keychron/q1v1/ansi/keymaps/keychron/rules.mk
diff --git a/keyboards/keychron/q1/ansi/keymaps/mkillewald/config.h b/keyboards/keychron/q1v1/ansi/keymaps/mkillewald/config.h
index bc9fe405c3..bc9fe405c3 100644
--- a/keyboards/keychron/q1/ansi/keymaps/mkillewald/config.h
+++ b/keyboards/keychron/q1v1/ansi/keymaps/mkillewald/config.h
diff --git a/keyboards/keychron/q1/ansi/keymaps/mkillewald/keymap.c b/keyboards/keychron/q1v1/ansi/keymaps/mkillewald/keymap.c
index 4fc8ad58e5..4fc8ad58e5 100644
--- a/keyboards/keychron/q1/ansi/keymaps/mkillewald/keymap.c
+++ b/keyboards/keychron/q1v1/ansi/keymaps/mkillewald/keymap.c
diff --git a/keyboards/keychron/q1/ansi/keymaps/mkillewald/keymap_user.h b/keyboards/keychron/q1v1/ansi/keymaps/mkillewald/keymap_user.h
index 87b1baf47f..87b1baf47f 100644
--- a/keyboards/keychron/q1/ansi/keymaps/mkillewald/keymap_user.h
+++ b/keyboards/keychron/q1v1/ansi/keymaps/mkillewald/keymap_user.h
diff --git a/keyboards/keychron/q1/ansi/keymaps/mkillewald/readme.md b/keyboards/keychron/q1v1/ansi/keymaps/mkillewald/readme.md
index 8ff2dbcc2c..8ff2dbcc2c 100644
--- a/keyboards/keychron/q1/ansi/keymaps/mkillewald/readme.md
+++ b/keyboards/keychron/q1v1/ansi/keymaps/mkillewald/readme.md
diff --git a/keyboards/keychron/q1/ansi/keymaps/mkillewald/rgb_matrix_user.c b/keyboards/keychron/q1v1/ansi/keymaps/mkillewald/rgb_matrix_user.c
index c6fa5f1f15..c6fa5f1f15 100644
--- a/keyboards/keychron/q1/ansi/keymaps/mkillewald/rgb_matrix_user.c
+++ b/keyboards/keychron/q1v1/ansi/keymaps/mkillewald/rgb_matrix_user.c
diff --git a/keyboards/keychron/q1/ansi/keymaps/mkillewald/rgb_matrix_user.h b/keyboards/keychron/q1v1/ansi/keymaps/mkillewald/rgb_matrix_user.h
index 1fb79c0b2a..1fb79c0b2a 100644
--- a/keyboards/keychron/q1/ansi/keymaps/mkillewald/rgb_matrix_user.h
+++ b/keyboards/keychron/q1v1/ansi/keymaps/mkillewald/rgb_matrix_user.h
diff --git a/keyboards/keychron/q1/ansi/keymaps/mkillewald/rules.mk b/keyboards/keychron/q1v1/ansi/keymaps/mkillewald/rules.mk
index af720e37ee..af720e37ee 100644
--- a/keyboards/keychron/q1/ansi/keymaps/mkillewald/rules.mk
+++ b/keyboards/keychron/q1v1/ansi/keymaps/mkillewald/rules.mk
diff --git a/keyboards/keychron/q1/ansi/keymaps/teimor/config.h b/keyboards/keychron/q1v1/ansi/keymaps/teimor/config.h
index 4378af4f58..4378af4f58 100644
--- a/keyboards/keychron/q1/ansi/keymaps/teimor/config.h
+++ b/keyboards/keychron/q1v1/ansi/keymaps/teimor/config.h
diff --git a/keyboards/keychron/q1/ansi/keymaps/teimor/keymap.c b/keyboards/keychron/q1v1/ansi/keymaps/teimor/keymap.c
index 77af30c5b6..77af30c5b6 100644
--- a/keyboards/keychron/q1/ansi/keymaps/teimor/keymap.c
+++ b/keyboards/keychron/q1v1/ansi/keymaps/teimor/keymap.c
diff --git a/keyboards/keychron/q1/ansi/keymaps/teimor/keymap_user.h b/keyboards/keychron/q1v1/ansi/keymaps/teimor/keymap_user.h
index 57ac5258c2..57ac5258c2 100644
--- a/keyboards/keychron/q1/ansi/keymaps/teimor/keymap_user.h
+++ b/keyboards/keychron/q1v1/ansi/keymaps/teimor/keymap_user.h
diff --git a/keyboards/keychron/q1/ansi/keymaps/teimor/readme.md b/keyboards/keychron/q1v1/ansi/keymaps/teimor/readme.md
index 9aa16f9a89..9aa16f9a89 100644
--- a/keyboards/keychron/q1/ansi/keymaps/teimor/readme.md
+++ b/keyboards/keychron/q1v1/ansi/keymaps/teimor/readme.md
diff --git a/keyboards/keychron/q1/ansi/keymaps/teimor/rgb_matrix_user.c b/keyboards/keychron/q1v1/ansi/keymaps/teimor/rgb_matrix_user.c
index fbc37fb5bf..fbc37fb5bf 100644
--- a/keyboards/keychron/q1/ansi/keymaps/teimor/rgb_matrix_user.c
+++ b/keyboards/keychron/q1v1/ansi/keymaps/teimor/rgb_matrix_user.c
diff --git a/keyboards/keychron/q1/ansi/keymaps/teimor/rgb_matrix_user.h b/keyboards/keychron/q1v1/ansi/keymaps/teimor/rgb_matrix_user.h
index 5b53b5b8ec..5b53b5b8ec 100644
--- a/keyboards/keychron/q1/ansi/keymaps/teimor/rgb_matrix_user.h
+++ b/keyboards/keychron/q1v1/ansi/keymaps/teimor/rgb_matrix_user.h
diff --git a/keyboards/keychron/q1/ansi/keymaps/teimor/rules.mk b/keyboards/keychron/q1v1/ansi/keymaps/teimor/rules.mk
index bafb40484b..bafb40484b 100644
--- a/keyboards/keychron/q1/ansi/keymaps/teimor/rules.mk
+++ b/keyboards/keychron/q1v1/ansi/keymaps/teimor/rules.mk
diff --git a/keyboards/keychron/q1/ansi/keymaps/teimor/tap_dance_mac_caps.c b/keyboards/keychron/q1v1/ansi/keymaps/teimor/tap_dance_mac_caps.c
index dfb0346ff1..dfb0346ff1 100644
--- a/keyboards/keychron/q1/ansi/keymaps/teimor/tap_dance_mac_caps.c
+++ b/keyboards/keychron/q1v1/ansi/keymaps/teimor/tap_dance_mac_caps.c
diff --git a/keyboards/keychron/q1/ansi/keymaps/teimor/tap_dance_mac_caps.h b/keyboards/keychron/q1v1/ansi/keymaps/teimor/tap_dance_mac_caps.h
index ef552a2c2c..ef552a2c2c 100644
--- a/keyboards/keychron/q1/ansi/keymaps/teimor/tap_dance_mac_caps.h
+++ b/keyboards/keychron/q1v1/ansi/keymaps/teimor/tap_dance_mac_caps.h
diff --git a/keyboards/keychron/q1/ansi/keymaps/teimor/tap_dance_setup.c b/keyboards/keychron/q1v1/ansi/keymaps/teimor/tap_dance_setup.c
index 07257e556a..07257e556a 100644
--- a/keyboards/keychron/q1/ansi/keymaps/teimor/tap_dance_setup.c
+++ b/keyboards/keychron/q1v1/ansi/keymaps/teimor/tap_dance_setup.c
diff --git a/keyboards/keychron/q1/ansi/keymaps/teimor/tap_dance_setup.h b/keyboards/keychron/q1v1/ansi/keymaps/teimor/tap_dance_setup.h
index 5d2f4acd57..5d2f4acd57 100644
--- a/keyboards/keychron/q1/ansi/keymaps/teimor/tap_dance_setup.h
+++ b/keyboards/keychron/q1v1/ansi/keymaps/teimor/tap_dance_setup.h
diff --git a/keyboards/keychron/q1/ansi/keymaps/teimor/tap_dance_user.c b/keyboards/keychron/q1v1/ansi/keymaps/teimor/tap_dance_user.c
index ed8120572e..ed8120572e 100644
--- a/keyboards/keychron/q1/ansi/keymaps/teimor/tap_dance_user.c
+++ b/keyboards/keychron/q1v1/ansi/keymaps/teimor/tap_dance_user.c
diff --git a/keyboards/keychron/q1/ansi/keymaps/teimor/tap_dance_win_caps.c b/keyboards/keychron/q1v1/ansi/keymaps/teimor/tap_dance_win_caps.c
index 1c7c438d2e..1c7c438d2e 100644
--- a/keyboards/keychron/q1/ansi/keymaps/teimor/tap_dance_win_caps.c
+++ b/keyboards/keychron/q1v1/ansi/keymaps/teimor/tap_dance_win_caps.c
diff --git a/keyboards/keychron/q1/ansi/keymaps/teimor/tap_dance_win_caps.h b/keyboards/keychron/q1v1/ansi/keymaps/teimor/tap_dance_win_caps.h
index 2289cce326..2289cce326 100644
--- a/keyboards/keychron/q1/ansi/keymaps/teimor/tap_dance_win_caps.h
+++ b/keyboards/keychron/q1v1/ansi/keymaps/teimor/tap_dance_win_caps.h
diff --git a/keyboards/keychron/q1/ansi/keymaps/via/keymap.c b/keyboards/keychron/q1v1/ansi/keymaps/via/keymap.c
index 6cbf71baf5..6cbf71baf5 100644
--- a/keyboards/keychron/q1/ansi/keymaps/via/keymap.c
+++ b/keyboards/keychron/q1v1/ansi/keymaps/via/keymap.c
diff --git a/keyboards/hs60/v2/ansi/keymaps/stanrc85/rules.mk b/keyboards/keychron/q1v1/ansi/keymaps/via/rules.mk
index 1e5b99807c..1e5b99807c 100644
--- a/keyboards/hs60/v2/ansi/keymaps/stanrc85/rules.mk
+++ b/keyboards/keychron/q1v1/ansi/keymaps/via/rules.mk
diff --git a/keyboards/keychron/q1/ansi/readme.md b/keyboards/keychron/q1v1/ansi/readme.md
index 5cf488f048..5cf488f048 100644
--- a/keyboards/keychron/q1/ansi/readme.md
+++ b/keyboards/keychron/q1v1/ansi/readme.md
diff --git a/keyboards/keychron/q1v1/ansi/rules.mk b/keyboards/keychron/q1v1/ansi/rules.mk
new file mode 100644
index 0000000000..7ff128fa69
--- /dev/null
+++ b/keyboards/keychron/q1v1/ansi/rules.mk
@@ -0,0 +1 @@
+# This file intentionally left blank \ No newline at end of file
diff --git a/keyboards/keychron/q1v1/ansi_encoder/ansi_encoder.c b/keyboards/keychron/q1v1/ansi_encoder/ansi_encoder.c
new file mode 100644
index 0000000000..c4fc884bc2
--- /dev/null
+++ b/keyboards/keychron/q1v1/ansi_encoder/ansi_encoder.c
@@ -0,0 +1,125 @@
+/* Copyright 2021 @ Keychron (https://www.keychron.com)
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include "quantum.h"
+
+const matrix_row_t matrix_mask[] = {
+ 0b0111111111111101,
+ 0b0111111111111111,
+ 0b0111111111111111,
+ 0b0111111111111111,
+ 0b0111111111111111,
+ 0b0111111111111111,
+};
+
+#ifdef RGB_MATRIX_ENABLE
+const is31fl3733_led_t PROGMEM g_is31fl3733_leds[RGB_MATRIX_LED_COUNT] = {
+/* Refer to IS31 manual for these locations
+ * driver
+ * | R location
+ * | | G location
+ * | | | B location
+ * | | | | */
+ {0, C_1, A_1, B_1},
+ {0, C_3, A_3, B_3},
+ {0, C_4, A_4, B_4},
+ {0, C_5, A_5, B_5},
+ {0, C_6, A_6, B_6},
+ {0, C_7, A_7, B_7},
+ {0, C_8, A_8, B_8},
+ {0, C_9, A_9, B_9},
+ {0, C_10, A_10, B_10},
+ {0, C_11, A_11, B_11},
+ {0, C_12, A_12, B_12},
+ {0, C_13, A_13, B_13},
+ {0, C_14, A_14, B_14},
+ {0, C_15, A_15, B_15},
+ {0, C_16, A_16, B_16},
+
+ {0, F_1, D_1, E_1},
+ {0, F_2, D_2, E_2},
+ {0, F_3, D_3, E_3},
+ {0, F_4, D_4, E_4},
+ {0, F_5, D_5, E_5},
+ {0, F_6, D_6, E_6},
+ {0, F_7, D_7, E_7},
+ {0, F_8, D_8, E_8},
+ {0, F_9, D_9, E_9},
+ {0, F_10, D_10, E_10},
+ {0, F_11, D_11, E_11},
+ {0, F_12, D_12, E_12},
+ {0, F_13, D_13, E_13},
+ {0, F_14, D_14, E_14},
+ {0, F_16, D_16, E_16},
+
+ {0, I_1, G_1, H_1},
+ {0, I_2, G_2, H_2},
+ {0, I_3, G_3, H_3},
+ {0, I_4, G_4, H_4},
+ {0, I_5, G_5, H_5},
+ {0, I_6, G_6, H_6},
+ {0, I_7, G_7, H_7},
+ {0, I_8, G_8, H_8},
+ {0, I_9, G_9, H_9},
+ {0, I_10, G_10, H_10},
+ {0, I_11, G_11, H_11},
+ {0, I_12, G_12, H_12},
+ {0, I_13, G_13, H_13},
+ {0, I_14, G_14, H_14},
+ {0, I_16, G_16, H_16},
+
+ {0, L_1, J_1, K_1},
+ {0, L_2, J_2, K_2},
+ {0, L_3, J_3, K_3},
+ {0, L_4, J_4, K_4},
+ {0, L_5, J_5, K_5},
+ {0, L_6, J_6, K_6},
+ {0, L_7, J_7, K_7},
+ {0, L_8, J_8, K_8},
+ {0, L_9, J_9, K_9},
+ {0, L_10, J_10, K_10},
+ {0, L_11, J_11, K_11},
+ {0, L_12, J_12, K_12},
+ {0, L_14, J_14, K_14},
+ {0, L_16, J_16, K_16},
+
+ {1, C_1, A_1, B_1},
+ {1, C_3, A_3, B_3},
+ {1, C_4, A_4, B_4},
+ {1, C_5, A_5, B_5},
+ {1, C_6, A_6, B_6},
+ {1, C_7, A_7, B_7},
+ {1, C_8, A_8, B_8},
+ {1, C_9, A_9, B_9},
+ {1, C_10, A_10, B_10},
+ {1, C_11, A_11, B_11},
+ {1, C_12, A_12, B_12},
+ {1, C_14, A_14, B_14},
+ {1, C_15, A_15, B_15},
+
+ {1, F_1, D_1, E_1},
+ {1, F_2, D_2, E_2},
+ {1, F_3, D_3, E_3},
+ {1, F_7, D_7, E_7},
+ {1, F_11, D_11, E_11},
+ {1, F_12, D_12, E_12},
+ {1, F_13, D_13, E_13},
+ {1, F_14, D_14, E_14},
+ {1, F_15, D_15, E_15},
+ {1, F_16, D_16, E_16}
+};
+
+#endif // RGB_MATRIX_ENABLE
diff --git a/keyboards/keychron/q1v1/ansi_encoder/config.h b/keyboards/keychron/q1v1/ansi_encoder/config.h
new file mode 100644
index 0000000000..e608b42c8d
--- /dev/null
+++ b/keyboards/keychron/q1v1/ansi_encoder/config.h
@@ -0,0 +1,23 @@
+/* Copyright 2021 @ Keychron (https://www.keychron.com)
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#pragma once
+
+/* RGB Matrix Configuration */
+#define RGB_MATRIX_LED_COUNT 82
+
+/* Enable caps-lock LED */
+#define CAPS_LOCK_LED_INDEX 45
diff --git a/keyboards/keychron/q1v1/ansi_encoder/info.json b/keyboards/keychron/q1v1/ansi_encoder/info.json
new file mode 100644
index 0000000000..786c297fd3
--- /dev/null
+++ b/keyboards/keychron/q1v1/ansi_encoder/info.json
@@ -0,0 +1,196 @@
+{
+ "usb": {
+ "pid": "0x0101",
+ "device_version": "1.0.0"
+ },
+ "encoder": {
+ "enabled": true,
+ "rotary": [
+ {"pin_a": "E6", "pin_b": "B7"}
+ ]
+ },
+ "rgb_matrix": {
+ "layout": [
+ {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1},
+ {"matrix": [0, 2], "x": 18, "y": 0, "flags": 1},
+ {"matrix": [0, 3], "x": 33, "y": 0, "flags": 1},
+ {"matrix": [0, 4], "x": 48, "y": 0, "flags": 1},
+ {"matrix": [0, 5], "x": 62, "y": 0, "flags": 1},
+ {"matrix": [0, 6], "x": 81, "y": 0, "flags": 1},
+ {"matrix": [0, 7], "x": 95, "y": 0, "flags": 1},
+ {"matrix": [0, 8], "x": 110, "y": 0, "flags": 1},
+ {"matrix": [0, 9], "x": 125, "y": 0, "flags": 1},
+ {"matrix": [0, 10], "x": 143, "y": 0, "flags": 1},
+ {"matrix": [0, 11], "x": 158, "y": 0, "flags": 1},
+ {"matrix": [0, 12], "x": 173, "y": 0, "flags": 1},
+ {"matrix": [0, 13], "x": 187, "y": 0, "flags": 1},
+ {"matrix": [4, 14], "x": 206, "y": 0, "flags": 1},
+ {"matrix": [0, 14], "x": 224, "y": 0, "flags": 1},
+
+ {"matrix": [1, 0], "x": 0, "y": 15, "flags": 1},
+ {"matrix": [1, 1], "x": 15, "y": 15, "flags": 4},
+ {"matrix": [1, 2], "x": 29, "y": 15, "flags": 4},
+ {"matrix": [1, 3], "x": 44, "y": 15, "flags": 4},
+ {"matrix": [1, 4], "x": 59, "y": 15, "flags": 4},
+ {"matrix": [1, 5], "x": 73, "y": 15, "flags": 4},
+ {"matrix": [1, 6], "x": 88, "y": 15, "flags": 4},
+ {"matrix": [1, 7], "x": 103, "y": 15, "flags": 4},
+ {"matrix": [1, 8], "x": 118, "y": 15, "flags": 4},
+ {"matrix": [1, 9], "x": 132, "y": 15, "flags": 4},
+ {"matrix": [1, 10], "x": 147, "y": 15, "flags": 4},
+ {"matrix": [1, 11], "x": 162, "y": 15, "flags": 4},
+ {"matrix": [1, 12], "x": 176, "y": 15, "flags": 4},
+ {"matrix": [1, 13], "x": 198, "y": 15, "flags": 1},
+ {"matrix": [1, 14], "x": 224, "y": 15, "flags": 1},
+
+ {"matrix": [2, 0], "x": 4, "y": 26, "flags": 1},
+ {"matrix": [2, 1], "x": 22, "y": 26, "flags": 4},
+ {"matrix": [2, 2], "x": 37, "y": 26, "flags": 4},
+ {"matrix": [2, 3], "x": 51, "y": 26, "flags": 4},
+ {"matrix": [2, 4], "x": 66, "y": 26, "flags": 4},
+ {"matrix": [2, 5], "x": 81, "y": 26, "flags": 4},
+ {"matrix": [2, 6], "x": 95, "y": 26, "flags": 4},
+ {"matrix": [2, 7], "x": 110, "y": 26, "flags": 4},
+ {"matrix": [2, 8], "x": 125, "y": 26, "flags": 4},
+ {"matrix": [2, 9], "x": 140, "y": 26, "flags": 4},
+ {"matrix": [2, 10], "x": 154, "y": 26, "flags": 4},
+ {"matrix": [2, 11], "x": 169, "y": 26, "flags": 4},
+ {"matrix": [2, 12], "x": 184, "y": 26, "flags": 4},
+ {"matrix": [2, 13], "x": 202, "y": 26, "flags": 4},
+ {"matrix": [2, 14], "x": 224, "y": 26, "flags": 1},
+
+ {"matrix": [3, 0], "x": 6, "y": 38, "flags": 1},
+ {"matrix": [3, 1], "x": 26, "y": 38, "flags": 4},
+ {"matrix": [3, 2], "x": 40, "y": 38, "flags": 4},
+ {"matrix": [3, 3], "x": 55, "y": 38, "flags": 4},
+ {"matrix": [3, 4], "x": 70, "y": 38, "flags": 4},
+ {"matrix": [3, 5], "x": 84, "y": 38, "flags": 4},
+ {"matrix": [3, 6], "x": 99, "y": 38, "flags": 4},
+ {"matrix": [3, 7], "x": 114, "y": 38, "flags": 4},
+ {"matrix": [3, 8], "x": 129, "y": 38, "flags": 4},
+ {"matrix": [3, 9], "x": 143, "y": 38, "flags": 4},
+ {"matrix": [3, 10], "x": 158, "y": 38, "flags": 4},
+ {"matrix": [3, 11], "x": 173, "y": 38, "flags": 4},
+ {"matrix": [3, 13], "x": 196, "y": 38, "flags": 1},
+ {"matrix": [3, 14], "x": 224, "y": 38, "flags": 1},
+
+ {"matrix": [4, 0], "x": 9, "y": 49, "flags": 1},
+ {"matrix": [4, 2], "x": 33, "y": 49, "flags": 4},
+ {"matrix": [4, 3], "x": 48, "y": 49, "flags": 4},
+ {"matrix": [4, 4], "x": 62, "y": 49, "flags": 4},
+ {"matrix": [4, 5], "x": 77, "y": 49, "flags": 4},
+ {"matrix": [4, 6], "x": 92, "y": 49, "flags": 4},
+ {"matrix": [4, 7], "x": 106, "y": 49, "flags": 4},
+ {"matrix": [4, 8], "x": 121, "y": 49, "flags": 4},
+ {"matrix": [4, 9], "x": 136, "y": 49, "flags": 4},
+ {"matrix": [4, 10], "x": 151, "y": 49, "flags": 4},
+ {"matrix": [4, 11], "x": 165, "y": 49, "flags": 4},
+ {"matrix": [4, 13], "x": 185, "y": 49, "flags": 1},
+ {"matrix": [3, 12], "x": 209, "y": 52, "flags": 1},
+
+ {"matrix": [5, 0], "x":2, "y": 61, "flags": 1},
+ {"matrix": [5, 1], "x":20, "y": 61, "flags": 1},
+ {"matrix": [5, 2], "x":39, "y": 61, "flags": 1},
+ {"matrix": [5, 6], "x":94, "y": 61, "flags": 4},
+ {"matrix": [5, 10], "x":147, "y": 61, "flags": 1},
+ {"matrix": [5, 11], "x":162, "y": 61, "flags": 1},
+ {"matrix": [5, 12], "x":176, "y": 61, "flags": 1},
+ {"matrix": [5, 13], "x":195, "y": 64, "flags": 1},
+ {"matrix": [4, 12], "x":209, "y": 64, "flags": 1},
+ {"matrix": [5, 14], "x":224, "y": 64, "flags": 1}
+ ]
+ },
+ "layouts": {
+ "LAYOUT_ansi_82": {
+ "layout": [
+ {"matrix": [0, 0], "x": 0, "y": 0},
+ {"matrix": [0, 2], "x": 1.25, "y": 0},
+ {"matrix": [0, 3], "x": 2.25, "y": 0},
+ {"matrix": [0, 4], "x": 3.25, "y": 0},
+ {"matrix": [0, 5], "x": 4.25, "y": 0},
+ {"matrix": [0, 6], "x": 5.5, "y": 0},
+ {"matrix": [0, 7], "x": 6.5, "y": 0},
+ {"matrix": [0, 8], "x": 7.5, "y": 0},
+ {"matrix": [0, 9], "x": 8.5, "y": 0},
+ {"matrix": [0, 10], "x": 9.75, "y": 0},
+ {"matrix": [0, 11], "x": 10.75, "y": 0},
+ {"matrix": [0, 12], "x": 11.75, "y": 0},
+ {"matrix": [0, 13], "x": 12.75, "y": 0},
+ {"matrix": [4, 14], "x": 14, "y": 0},
+ {"matrix": [0, 14], "x": 15.25, "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": [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.25, "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.25, "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.25, "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, 13], "x": 12.25, "y": 4, "w": 1.75},
+ {"matrix": [3, 12], "x": 14.25, "y": 4.25},
+
+ {"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, 6], "x": 3.75, "y": 5, "w": 6.25},
+ {"matrix": [5, 10], "x": 10, "y": 5},
+ {"matrix": [5, 11], "x": 11, "y": 5},
+ {"matrix": [5, 12], "x": 12, "y": 5},
+ {"matrix": [5, 13], "x": 13.25, "y": 5.25},
+ {"matrix": [4, 12], "x": 14.25, "y": 5.25},
+ {"matrix": [5, 14], "x": 15.25, "y": 5.25}
+ ]
+ }
+ }
+}
diff --git a/keyboards/keychron/q1/ansi_encoder/keymaps/default/keymap.c b/keyboards/keychron/q1v1/ansi_encoder/keymaps/default/keymap.c
index a4febc93c7..a4febc93c7 100644
--- a/keyboards/keychron/q1/ansi_encoder/keymaps/default/keymap.c
+++ b/keyboards/keychron/q1v1/ansi_encoder/keymaps/default/keymap.c
diff --git a/keyboards/keychron/q1/ansi_encoder/keymaps/default/rules.mk b/keyboards/keychron/q1v1/ansi_encoder/keymaps/default/rules.mk
index a40474b4d5..a40474b4d5 100644
--- a/keyboards/keychron/q1/ansi_encoder/keymaps/default/rules.mk
+++ b/keyboards/keychron/q1v1/ansi_encoder/keymaps/default/rules.mk
diff --git a/keyboards/keychron/q1/ansi_encoder/keymaps/keychron/keymap.c b/keyboards/keychron/q1v1/ansi_encoder/keymaps/keychron/keymap.c
index 88d0b49efd..88d0b49efd 100644
--- a/keyboards/keychron/q1/ansi_encoder/keymaps/keychron/keymap.c
+++ b/keyboards/keychron/q1v1/ansi_encoder/keymaps/keychron/keymap.c
diff --git a/keyboards/keychron/q1/ansi_encoder/keymaps/keychron/rules.mk b/keyboards/keychron/q1v1/ansi_encoder/keymaps/keychron/rules.mk
index 9cf1a9b56c..9cf1a9b56c 100644
--- a/keyboards/keychron/q1/ansi_encoder/keymaps/keychron/rules.mk
+++ b/keyboards/keychron/q1v1/ansi_encoder/keymaps/keychron/rules.mk
diff --git a/keyboards/keychron/q1/ansi_encoder/keymaps/via/keymap.c b/keyboards/keychron/q1v1/ansi_encoder/keymaps/via/keymap.c
index 9372a1d814..9372a1d814 100644
--- a/keyboards/keychron/q1/ansi_encoder/keymaps/via/keymap.c
+++ b/keyboards/keychron/q1v1/ansi_encoder/keymaps/via/keymap.c
diff --git a/keyboards/keychron/q1/ansi_encoder/keymaps/via/rules.mk b/keyboards/keychron/q1v1/ansi_encoder/keymaps/via/rules.mk
index f1adcab005..f1adcab005 100644
--- a/keyboards/keychron/q1/ansi_encoder/keymaps/via/rules.mk
+++ b/keyboards/keychron/q1v1/ansi_encoder/keymaps/via/rules.mk
diff --git a/keyboards/keychron/q1/ansi_encoder/readme.md b/keyboards/keychron/q1v1/ansi_encoder/readme.md
index b89c9ad7ad..b89c9ad7ad 100644
--- a/keyboards/keychron/q1/ansi_encoder/readme.md
+++ b/keyboards/keychron/q1v1/ansi_encoder/readme.md
diff --git a/keyboards/keychron/q1v1/ansi_encoder/rules.mk b/keyboards/keychron/q1v1/ansi_encoder/rules.mk
new file mode 100644
index 0000000000..6e7633bfe0
--- /dev/null
+++ b/keyboards/keychron/q1v1/ansi_encoder/rules.mk
@@ -0,0 +1 @@
+# This file intentionally left blank
diff --git a/keyboards/keychron/q1v1/config.h b/keyboards/keychron/q1v1/config.h
new file mode 100644
index 0000000000..ec1bcc5794
--- /dev/null
+++ b/keyboards/keychron/q1v1/config.h
@@ -0,0 +1,36 @@
+/* Copyright 2021 @ Keychron(https://www.keychron.com)
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#pragma once
+
+/* RGB Matrix Driver Configuration */
+#define IS31FL3733_I2C_ADDRESS_1 IS31FL3733_I2C_ADDRESS_GND_GND
+#define IS31FL3733_I2C_ADDRESS_2 IS31FL3733_I2C_ADDRESS_GND_VCC
+
+/* DIP switch */
+#define DIP_SWITCH_MATRIX_GRID { {0,1} }
+
+/* Disable DIP switch in matrix data */
+#define MATRIX_MASKED
+
+/* Encoder Configuration*/
+#define ENCODER_DEFAULT_POS 0x3
+
+/* Disable RGB lighting when PC is in suspend */
+#define RGB_DISABLE_WHEN_USB_SUSPENDED
+
+#define RGB_MATRIX_KEYPRESSES
+#define RGB_MATRIX_FRAMEBUFFER_EFFECTS \ No newline at end of file
diff --git a/keyboards/keychron/q1v1/info.json b/keyboards/keychron/q1v1/info.json
new file mode 100644
index 0000000000..26c846927b
--- /dev/null
+++ b/keyboards/keychron/q1v1/info.json
@@ -0,0 +1,54 @@
+{
+ "keyboard_name": "Keychron Q1v1",
+ "manufacturer": "Keychron",
+ "maintainer": "lalalademaxiya1",
+ "bootloader": "atmel-dfu",
+ "diode_direction": "ROW2COL",
+ "features": {
+ "bootmagic": true,
+ "command": false,
+ "console": false,
+ "dip_switch": true,
+ "extrakey": true,
+ "lto": true,
+ "mousekey": true,
+ "nkro": true,
+ "rgb_matrix": true
+ },
+ "matrix_pins": {
+ "cols": ["D5", "D4", "D6", "D7", "B4", "B5", "B6", "C6", "C7", "F7", "F6", "F5", "F4", "F1", "F0"],
+ "rows": ["D3", "D2", "B3", "B2", "B1", "B0"]
+ },
+ "processor": "atmega32u4",
+ "rgb_matrix": {
+ "animations": {
+ "band_spiral_val": true,
+ "breathing": true,
+ "cycle_all": true,
+ "cycle_left_right": true,
+ "cycle_out_in": true,
+ "cycle_out_in_dual": true,
+ "cycle_pinwheel": true,
+ "cycle_spiral": true,
+ "cycle_up_down": true,
+ "digital_rain": true,
+ "dual_beacon": true,
+ "jellybean_raindrops": true,
+ "pixel_rain": true,
+ "rainbow_beacon": true,
+ "rainbow_moving_chevron": true,
+ "solid_reactive_multinexus": true,
+ "solid_reactive_multiwide": true,
+ "solid_reactive_simple": true,
+ "solid_splash": true,
+ "splash": true,
+ "typing_heatmap": true
+ },
+ "driver": "is31fl3733"
+ },
+ "url": "https://github.com/Keychron",
+ "usb": {
+ "force_nkro": true,
+ "vid": "0x3434"
+ }
+} \ No newline at end of file
diff --git a/keyboards/keychron/q1v1/iso/config.h b/keyboards/keychron/q1v1/iso/config.h
new file mode 100644
index 0000000000..b6a2563986
--- /dev/null
+++ b/keyboards/keychron/q1v1/iso/config.h
@@ -0,0 +1,23 @@
+/* Copyright 2021 @ Keychron (https://www.keychron.com)
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#pragma once
+
+/* RGB Matrix Configuration */
+#define RGB_MATRIX_LED_COUNT 83
+
+/* Enable caps-lock LED */
+#define CAPS_LOCK_LED_INDEX 44 \ No newline at end of file
diff --git a/keyboards/keychron/q1v1/iso/info.json b/keyboards/keychron/q1v1/iso/info.json
new file mode 100644
index 0000000000..2bd353803e
--- /dev/null
+++ b/keyboards/keychron/q1v1/iso/info.json
@@ -0,0 +1,192 @@
+{
+ "usb": {
+ "pid": "0x0102",
+ "device_version": "1.0.0"
+ },
+ "rgb_matrix": {
+ "layout": [
+ {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1},
+ {"matrix": [0, 2], "x": 18, "y": 0, "flags": 1},
+ {"matrix": [0, 3], "x": 33, "y": 0, "flags": 1},
+ {"matrix": [0, 4], "x": 48, "y": 0, "flags": 1},
+ {"matrix": [0, 5], "x": 62, "y": 0, "flags": 1},
+ {"matrix": [0, 6], "x": 81, "y": 0, "flags": 1},
+ {"matrix": [0, 7], "x": 95, "y": 0, "flags": 1},
+ {"matrix": [0, 8], "x": 110, "y": 0, "flags": 1},
+ {"matrix": [0, 9], "x": 125, "y": 0, "flags": 1},
+ {"matrix": [0, 10], "x": 143, "y": 0, "flags": 1},
+ {"matrix": [0, 11], "x": 158, "y": 0, "flags": 1},
+ {"matrix": [0, 12], "x": 173, "y": 0, "flags": 1},
+ {"matrix": [0, 13], "x": 187, "y": 0, "flags": 1},
+ {"matrix": [4, 14], "x": 206, "y": 0, "flags": 1},
+ {"matrix": [0, 14], "x": 224, "y": 0, "flags": 1},
+
+ {"matrix": [1, 0], "x": 0, "y": 15, "flags": 1},
+ {"matrix": [1, 1], "x": 15, "y": 15, "flags": 4},
+ {"matrix": [1, 2], "x": 29, "y": 15, "flags": 4},
+ {"matrix": [1, 3], "x": 44, "y": 15, "flags": 4},
+ {"matrix": [1, 4], "x": 59, "y": 15, "flags": 4},
+ {"matrix": [1, 5], "x": 73, "y": 15, "flags": 4},
+ {"matrix": [1, 6], "x": 88, "y": 15, "flags": 4},
+ {"matrix": [1, 7], "x": 103, "y": 15, "flags": 4},
+ {"matrix": [1, 8], "x": 118, "y": 15, "flags": 4},
+ {"matrix": [1, 9], "x": 132, "y": 15, "flags": 4},
+ {"matrix": [1, 10], "x": 147, "y": 15, "flags": 4},
+ {"matrix": [1, 12], "x": 162, "y": 15, "flags": 4},
+ {"matrix": [1, 12], "x": 176, "y": 15, "flags": 4},
+ {"matrix": [1, 13], "x": 198, "y": 15, "flags": 1},
+ {"matrix": [1, 14], "x": 224, "y": 15, "flags": 1},
+
+ {"matrix": [2, 0], "x": 4, "y": 26, "flags": 1},
+ {"matrix": [2, 1], "x": 22, "y": 26, "flags": 4},
+ {"matrix": [2, 2], "x": 37, "y": 26, "flags": 4},
+ {"matrix": [2, 3], "x": 51, "y": 26, "flags": 4},
+ {"matrix": [2, 4], "x": 66, "y": 26, "flags": 4},
+ {"matrix": [2, 5], "x": 81, "y": 26, "flags": 4},
+ {"matrix": [2, 6], "x": 95, "y": 26, "flags": 4},
+ {"matrix": [2, 7], "x": 110, "y": 26, "flags": 4},
+ {"matrix": [2, 8], "x": 125, "y": 26, "flags": 4},
+ {"matrix": [2, 9], "x": 140, "y": 26, "flags": 4},
+ {"matrix": [2, 10], "x": 154, "y": 26, "flags": 4},
+ {"matrix": [2, 11], "x": 169, "y": 26, "flags": 4},
+ {"matrix": [2, 12], "x": 184, "y": 26, "flags": 4},
+ {"matrix": [2, 14], "x": 224, "y": 26, "flags": 1},
+
+ {"matrix": [3, 0], "x": 6, "y": 38, "flags": 1},
+ {"matrix": [3, 1], "x": 26, "y": 38, "flags": 4},
+ {"matrix": [3, 2], "x": 40, "y": 38, "flags": 4},
+ {"matrix": [3, 3], "x": 55, "y": 38, "flags": 4},
+ {"matrix": [3, 4], "x": 70, "y": 38, "flags": 4},
+ {"matrix": [3, 5], "x": 84, "y": 38, "flags": 4},
+ {"matrix": [3, 6], "x": 99, "y": 38, "flags": 4},
+ {"matrix": [3, 7], "x": 114, "y": 38, "flags": 4},
+ {"matrix": [3, 8], "x": 129, "y": 38, "flags": 4},
+ {"matrix": [3, 9], "x": 143, "y": 38, "flags": 4},
+ {"matrix": [3, 10], "x": 158, "y": 38, "flags": 4},
+ {"matrix": [3, 11], "x": 173, "y": 38, "flags": 4},
+ {"matrix": [3, 13], "x": 187, "y": 38, "flags": 4},
+ {"matrix": [2, 13], "x": 203, "y": 32, "flags": 1},
+ {"matrix": [3, 14], "x": 224, "y": 38, "flags": 1},
+
+ {"matrix": [4, 0], "x": 2, "y": 49, "flags": 1},
+ {"matrix": [4, 1], "x": 18, "y": 49, "flags": 4},
+ {"matrix": [4, 2], "x": 33, "y": 49, "flags": 4},
+ {"matrix": [4, 3], "x": 48, "y": 49, "flags": 4},
+ {"matrix": [4, 4], "x": 62, "y": 49, "flags": 4},
+ {"matrix": [4, 5], "x": 77, "y": 49, "flags": 4},
+ {"matrix": [4, 6], "x": 92, "y": 49, "flags": 4},
+ {"matrix": [4, 7], "x": 106, "y": 49, "flags": 4},
+ {"matrix": [4, 8], "x": 121, "y": 49, "flags": 4},
+ {"matrix": [4, 9], "x": 136, "y": 49, "flags": 4},
+ {"matrix": [4, 10], "x": 151, "y": 49, "flags": 4},
+ {"matrix": [4, 11], "x": 165, "y": 49, "flags": 4},
+ {"matrix": [4, 13], "x": 185, "y": 49, "flags": 1},
+ {"matrix": [3, 12], "x": 209, "y": 52, "flags": 1},
+
+ {"matrix": [5, 0], "x": 2, "y": 61, "flags": 1},
+ {"matrix": [5, 1], "x": 20, "y": 61, "flags": 1},
+ {"matrix": [5, 2], "x": 39, "y": 61, "flags": 1},
+ {"matrix": [5, 6], "x": 94, "y": 61, "flags": 4},
+ {"matrix": [5, 10], "x": 147, "y": 61, "flags": 1},
+ {"matrix": [5, 11], "x": 162, "y": 61, "flags": 1},
+ {"matrix": [5, 12], "x": 176, "y": 61, "flags": 1},
+ {"matrix": [5, 13], "x": 195, "y": 64, "flags": 1},
+ {"matrix": [4, 12], "x": 209, "y": 64, "flags": 1},
+ {"matrix": [5, 14], "x": 224, "y": 64, "flags": 1}
+ ]
+ },
+ "layouts": {
+ "LAYOUT_iso_83": {
+ "layout": [
+ {"matrix": [0, 0], "x": 0, "y": 0},
+ {"matrix": [0, 2], "x": 1.25, "y": 0},
+ {"matrix": [0, 3], "x": 2.25, "y": 0},
+ {"matrix": [0, 4], "x": 3.25, "y": 0},
+ {"matrix": [0, 5], "x": 4.25, "y": 0},
+ {"matrix": [0, 6], "x": 5.5, "y": 0},
+ {"matrix": [0, 7], "x": 6.5, "y": 0},
+ {"matrix": [0, 8], "x": 7.5, "y": 0},
+ {"matrix": [0, 9], "x": 8.5, "y": 0},
+ {"matrix": [0, 10], "x": 9.75, "y": 0},
+ {"matrix": [0, 11], "x": 10.75, "y": 0},
+ {"matrix": [0, 12], "x": 11.75, "y": 0},
+ {"matrix": [0, 13], "x": 12.75, "y": 0},
+ {"matrix": [4, 14], "x": 14, "y": 0},
+ {"matrix": [0, 14], "x": 15.25, "y": 0},
+
+ {"matrix": [1, 0], "x": 0, "y": 1.25},
+ {"matrix": [1, 1], "x": 1, "y": 1.25},
+ {"matrix": [1, 2], "x": 2, "y": 1.25},
+ {"matrix": [1, 3], "x": 3, "y": 1.25},
+ {"matrix": [1, 4], "x": 4, "y": 1.25},
+ {"matrix": [1, 5], "x": 5, "y": 1.25},
+ {"matrix": [1, 6], "x": 6, "y": 1.25},
+ {"matrix": [1, 7], "x": 7, "y": 1.25},
+ {"matrix": [1, 8], "x": 8, "y": 1.25},
+ {"matrix": [1, 9], "x": 9, "y": 1.25},
+ {"matrix": [1, 10], "x": 10, "y": 1.25},
+ {"matrix": [1, 11], "x": 11, "y": 1.25},
+ {"matrix": [1, 12], "x": 12, "y": 1.25},
+ {"matrix": [1, 13], "x": 13, "y": 1.25, "w": 2},
+ {"matrix": [1, 14], "x": 15.25, "y": 1.25},
+
+ {"matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5},
+ {"matrix": [2, 1], "x": 1.5, "y": 2.25},
+ {"matrix": [2, 2], "x": 2.5, "y": 2.25},
+ {"matrix": [2, 3], "x": 3.5, "y": 2.25},
+ {"matrix": [2, 4], "x": 4.5, "y": 2.25},
+ {"matrix": [2, 5], "x": 5.5, "y": 2.25},
+ {"matrix": [2, 6], "x": 6.5, "y": 2.25},
+ {"matrix": [2, 7], "x": 7.5, "y": 2.25},
+ {"matrix": [2, 8], "x": 8.5, "y": 2.25},
+ {"matrix": [2, 9], "x": 9.5, "y": 2.25},
+ {"matrix": [2, 10], "x": 10.5, "y": 2.25},
+ {"matrix": [2, 11], "x": 11.5, "y": 2.25},
+ {"matrix": [2, 12], "x": 12.5, "y": 2.25},
+ {"matrix": [2, 14], "x": 15.25, "y": 2.25},
+
+ {"matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75},
+ {"matrix": [3, 1], "x": 1.75, "y": 3.25},
+ {"matrix": [3, 2], "x": 2.75, "y": 3.25},
+ {"matrix": [3, 3], "x": 3.75, "y": 3.25},
+ {"matrix": [3, 4], "x": 4.75, "y": 3.25},
+ {"matrix": [3, 5], "x": 5.75, "y": 3.25},
+ {"matrix": [3, 6], "x": 6.75, "y": 3.25},
+ {"matrix": [3, 7], "x": 7.75, "y": 3.25},
+ {"matrix": [3, 8], "x": 8.75, "y": 3.25},
+ {"matrix": [3, 9], "x": 9.75, "y": 3.25},
+ {"matrix": [3, 10], "x": 10.75, "y": 3.25},
+ {"matrix": [3, 11], "x": 11.75, "y": 3.25},
+ {"matrix": [3, 13], "x": 12.75, "y": 3.25},
+ {"matrix": [2, 13], "x": 13.75, "y": 2.25, "w": 1.25, "h": 2},
+ {"matrix": [3, 14], "x": 15.25, "y": 3.25},
+
+ {"matrix": [4, 0], "x": 0, "y": 4.25, "w": 1.25},
+ {"matrix": [4, 1], "x": 1.25, "y": 4.25},
+ {"matrix": [4, 2], "x": 2.25, "y": 4.25},
+ {"matrix": [4, 3], "x": 3.25, "y": 4.25},
+ {"matrix": [4, 4], "x": 4.25, "y": 4.25},
+ {"matrix": [4, 5], "x": 5.25, "y": 4.25},
+ {"matrix": [4, 6], "x": 6.25, "y": 4.25},
+ {"matrix": [4, 7], "x": 7.25, "y": 4.25},
+ {"matrix": [4, 8], "x": 8.25, "y": 4.25},
+ {"matrix": [4, 9], "x": 9.25, "y": 4.25},
+ {"matrix": [4, 10], "x": 10.25, "y": 4.25},
+ {"matrix": [4, 11], "x": 11.25, "y": 4.25},
+ {"matrix": [4, 13], "x": 12.25, "y": 4.25, "w": 1.75},
+ {"matrix": [3, 12], "x": 14.25, "y": 4.5},
+
+ {"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.25},
+ {"matrix": [5, 1], "x": 1.25, "y": 5.25, "w": 1.25},
+ {"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.25},
+ {"matrix": [5, 6], "x": 3.75, "y": 5.25, "w": 6.25},
+ {"matrix": [5, 10], "x": 10, "y": 5.25},
+ {"matrix": [5, 11], "x": 11, "y": 5.25},
+ {"matrix": [5, 12], "x": 12, "y": 5.25},
+ {"matrix": [5, 13], "x": 13.25, "y": 5.5},
+ {"matrix": [4, 12], "x": 14.25, "y": 5.5},
+ {"matrix": [5, 14], "x": 15.25, "y": 5.5}
+ ]
+ }
+ }
+}
diff --git a/keyboards/keychron/q1v1/iso/iso.c b/keyboards/keychron/q1v1/iso/iso.c
new file mode 100644
index 0000000000..874f5c8539
--- /dev/null
+++ b/keyboards/keychron/q1v1/iso/iso.c
@@ -0,0 +1,158 @@
+/* Copyright 2021 @ Keychron (https://www.keychron.com)
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include "quantum.h"
+
+const matrix_row_t matrix_mask[] = {
+ 0b0111111111111101,
+ 0b0111111111111111,
+ 0b0111111111111111,
+ 0b0111111111111111,
+ 0b0111111111111111,
+ 0b0111111111111111,
+};
+
+#ifdef RGB_MATRIX_ENABLE
+const is31fl3733_led_t PROGMEM g_is31fl3733_leds[RGB_MATRIX_LED_COUNT] = {
+/* Refer to IS31 manual for these locations
+ * driver
+ * | R location
+ * | | G location
+ * | | | B location
+ * | | | | */
+ {0, C_1, A_1, B_1},
+ {0, C_3, A_3, B_3},
+ {0, C_4, A_4, B_4},
+ {0, C_5, A_5, B_5},
+ {0, C_6, A_6, B_6},
+ {0, C_7, A_7, B_7},
+ {0, C_8, A_8, B_8},
+ {0, C_9, A_9, B_9},
+ {0, C_10, A_10, B_10},
+ {0, C_11, A_11, B_11},
+ {0, C_12, A_12, B_12},
+ {0, C_13, A_13, B_13},
+ {0, C_14, A_14, B_14},
+ {0, C_15, A_15, B_15},
+ {0, C_16, A_16, B_16},
+
+ {0, F_1, D_1, E_1},
+ {0, F_2, D_2, E_2},
+ {0, F_3, D_3, E_3},
+ {0, F_4, D_4, E_4},
+ {0, F_5, D_5, E_5},
+ {0, F_6, D_6, E_6},
+ {0, F_7, D_7, E_7},
+ {0, F_8, D_8, E_8},
+ {0, F_9, D_9, E_9},
+ {0, F_10, D_10, E_10},
+ {0, F_11, D_11, E_11},
+ {0, F_12, D_12, E_12},
+ {0, F_13, D_13, E_13},
+ {0, F_14, D_14, E_14},
+ {0, F_16, D_16, E_16},
+
+ {0, I_1, G_1, H_1},
+ {0, I_2, G_2, H_2},
+ {0, I_3, G_3, H_3},
+ {0, I_4, G_4, H_4},
+ {0, I_5, G_5, H_5},
+ {0, I_6, G_6, H_6},
+ {0, I_7, G_7, H_7},
+ {0, I_8, G_8, H_8},
+ {0, I_9, G_9, H_9},
+ {0, I_10, G_10, H_10},
+ {0, I_11, G_11, H_11},
+ {0, I_12, G_12, H_12},
+ {0, I_13, G_13, H_13},
+ {0, I_16, G_16, H_16},
+
+ {0, L_1, J_1, K_1},
+ {0, L_2, J_2, K_2},
+ {0, L_3, J_3, K_3},
+ {0, L_4, J_4, K_4},
+ {0, L_5, J_5, K_5},
+ {0, L_6, J_6, K_6},
+ {0, L_7, J_7, K_7},
+ {0, L_8, J_8, K_8},
+ {0, L_9, J_9, K_9},
+ {0, L_10, J_10, K_10},
+ {0, L_11, J_11, K_11},
+ {0, L_12, J_12, K_12},
+ {0, L_14, J_14, K_14},
+ {0, I_14, G_14, H_14},
+ {0, L_16, J_16, K_16},
+
+ {1, C_1, A_1, B_1},
+ {1, C_2, A_2, B_2},
+ {1, C_3, A_3, B_3},
+ {1, C_4, A_4, B_4},
+ {1, C_5, A_5, B_5},
+ {1, C_6, A_6, B_6},
+ {1, C_7, A_7, B_7},
+ {1, C_8, A_8, B_8},
+ {1, C_9, A_9, B_9},
+ {1, C_10, A_10, B_10},
+ {1, C_11, A_11, B_11},
+ {1, C_12, A_12, B_12},
+ {1, C_14, A_14, B_14},
+ {1, C_15, A_15, B_15},
+
+ {1, F_1, D_1, E_1},
+ {1, F_2, D_2, E_2},
+ {1, F_3, D_3, E_3},
+ {1, F_7, D_7, E_7},
+ {1, F_11, D_11, E_11},
+ {1, F_12, D_12, E_12},
+ {1, F_13, D_13, E_13},
+ {1, F_14, D_14, E_14},
+ {1, F_15, D_15, E_15},
+ {1, F_16, D_16, E_16}
+};
+
+#define __ NO_LED
+
+led_config_t g_led_config = {
+ {
+ // Key Matrix to LED Index
+ { 0, __, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 14 },
+ { 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29 },
+ { 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44 },
+ { 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 71, 57, 58 },
+ { 59, __, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 80, 70, 13 },
+ { 72, 73, 74, __, __, __, 75, __, __, __, 76, 77, 78, 79, 81 }
+ },
+ {
+ // LED Index to Physical Position
+ {0,0}, {18,0}, {33,0}, {48,0}, {62,0}, {81,0}, {95,0}, {110,0}, {125,0}, {143,0}, {158,0}, {173,0}, {187,0}, {206,0}, {224,0},
+ {0,15}, {15,15}, {29,15}, {44,15}, {59,15}, {73,15}, {88,15}, {103,15}, {118,15}, {132,15}, {147,15}, {162,15}, {176,15}, {198,15}, {224,15},
+ {4,26}, {22,26}, {37,26}, {51,26}, {66,26}, {81,26}, {95,26}, {110,26}, {125,26}, {140,26}, {154,26}, {169,26}, {184,26}, {202,26}, {224,26},
+ {6,38}, {26,38}, {40,38}, {55,38}, {70,38}, {84,38}, {99,38}, {114,38}, {129,38}, {143,38}, {158,38}, {173,38}, {196,38}, {224,38},
+ {9,49}, {33,49}, {48,49}, {62,49}, {77,49}, {92,49}, {106,49}, {121,49}, {136,49}, {151,49}, {165,49}, {185,49}, {209,52},
+ {2,61}, {20,61}, {39,61}, {94,61}, {147,61}, {162,61}, {176,61}, {195,64}, {209,64}, {224,64}
+ },
+ {
+ // RGB LED Index to Flag
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1,
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1,
+ 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1,
+ 1, 1, 1, 4, 1, 1, 1, 1, 1, 1
+ }
+};
+
+#endif // RGB_MATRIX_ENABLE
diff --git a/keyboards/keychron/q1/iso/keymaps/default/keymap.c b/keyboards/keychron/q1v1/iso/keymaps/default/keymap.c
index 080e2839c8..080e2839c8 100644
--- a/keyboards/keychron/q1/iso/keymaps/default/keymap.c
+++ b/keyboards/keychron/q1v1/iso/keymaps/default/keymap.c
diff --git a/keyboards/keychron/q1/iso/keymaps/keychron/keymap.c b/keyboards/keychron/q1v1/iso/keymaps/keychron/keymap.c
index d641f62c3f..d641f62c3f 100644
--- a/keyboards/keychron/q1/iso/keymaps/keychron/keymap.c
+++ b/keyboards/keychron/q1v1/iso/keymaps/keychron/keymap.c
diff --git a/keyboards/keychron/q1/iso/keymaps/keychron/rules.mk b/keyboards/keychron/q1v1/iso/keymaps/keychron/rules.mk
index 495e8907b4..495e8907b4 100644
--- a/keyboards/keychron/q1/iso/keymaps/keychron/rules.mk
+++ b/keyboards/keychron/q1v1/iso/keymaps/keychron/rules.mk
diff --git a/keyboards/keychron/q1/iso/keymaps/kubahorak/README.md b/keyboards/keychron/q1v1/iso/keymaps/kubahorak/README.md
index 3cfae17543..3cfae17543 100644
--- a/keyboards/keychron/q1/iso/keymaps/kubahorak/README.md
+++ b/keyboards/keychron/q1v1/iso/keymaps/kubahorak/README.md
diff --git a/keyboards/keychron/q1/iso/keymaps/kubahorak/config.h b/keyboards/keychron/q1v1/iso/keymaps/kubahorak/config.h
index 55dbb74d4a..55dbb74d4a 100644
--- a/keyboards/keychron/q1/iso/keymaps/kubahorak/config.h
+++ b/keyboards/keychron/q1v1/iso/keymaps/kubahorak/config.h
diff --git a/keyboards/keychron/q1/iso/keymaps/kubahorak/keymap.c b/keyboards/keychron/q1v1/iso/keymaps/kubahorak/keymap.c
index 479988dfa9..479988dfa9 100644
--- a/keyboards/keychron/q1/iso/keymaps/kubahorak/keymap.c
+++ b/keyboards/keychron/q1v1/iso/keymaps/kubahorak/keymap.c
diff --git a/keyboards/keychron/q1/iso/keymaps/kubahorak/keymap_user.h b/keyboards/keychron/q1v1/iso/keymaps/kubahorak/keymap_user.h
index 728114d556..728114d556 100644
--- a/keyboards/keychron/q1/iso/keymaps/kubahorak/keymap_user.h
+++ b/keyboards/keychron/q1v1/iso/keymaps/kubahorak/keymap_user.h
diff --git a/keyboards/keychron/q1/iso/keymaps/kubahorak/rgb_matrix_user.c b/keyboards/keychron/q1v1/iso/keymaps/kubahorak/rgb_matrix_user.c
index 638aa77eb0..638aa77eb0 100644
--- a/keyboards/keychron/q1/iso/keymaps/kubahorak/rgb_matrix_user.c
+++ b/keyboards/keychron/q1v1/iso/keymaps/kubahorak/rgb_matrix_user.c
diff --git a/keyboards/keychron/q1/iso/keymaps/kubahorak/rgb_matrix_user.h b/keyboards/keychron/q1v1/iso/keymaps/kubahorak/rgb_matrix_user.h
index dead454167..dead454167 100644
--- a/keyboards/keychron/q1/iso/keymaps/kubahorak/rgb_matrix_user.h
+++ b/keyboards/keychron/q1v1/iso/keymaps/kubahorak/rgb_matrix_user.h
diff --git a/keyboards/keychron/q1/iso/keymaps/kubahorak/rules.mk b/keyboards/keychron/q1v1/iso/keymaps/kubahorak/rules.mk
index af720e37ee..af720e37ee 100644
--- a/keyboards/keychron/q1/iso/keymaps/kubahorak/rules.mk
+++ b/keyboards/keychron/q1v1/iso/keymaps/kubahorak/rules.mk
diff --git a/keyboards/keychron/q1/iso/keymaps/mkillewald_iso/config.h b/keyboards/keychron/q1v1/iso/keymaps/mkillewald_iso/config.h
index bc9fe405c3..bc9fe405c3 100644
--- a/keyboards/keychron/q1/iso/keymaps/mkillewald_iso/config.h
+++ b/keyboards/keychron/q1v1/iso/keymaps/mkillewald_iso/config.h
diff --git a/keyboards/keychron/q1/iso/keymaps/mkillewald_iso/keymap.c b/keyboards/keychron/q1v1/iso/keymaps/mkillewald_iso/keymap.c
index f86a84e468..f86a84e468 100644
--- a/keyboards/keychron/q1/iso/keymaps/mkillewald_iso/keymap.c
+++ b/keyboards/keychron/q1v1/iso/keymaps/mkillewald_iso/keymap.c
diff --git a/keyboards/keychron/q1/iso/keymaps/mkillewald_iso/keymap_user.h b/keyboards/keychron/q1v1/iso/keymaps/mkillewald_iso/keymap_user.h
index 87b1baf47f..87b1baf47f 100644
--- a/keyboards/keychron/q1/iso/keymaps/mkillewald_iso/keymap_user.h
+++ b/keyboards/keychron/q1v1/iso/keymaps/mkillewald_iso/keymap_user.h
diff --git a/keyboards/keychron/q1/iso/keymaps/mkillewald_iso/readme.md b/keyboards/keychron/q1v1/iso/keymaps/mkillewald_iso/readme.md
index 25d835b1c0..25d835b1c0 100644
--- a/keyboards/keychron/q1/iso/keymaps/mkillewald_iso/readme.md
+++ b/keyboards/keychron/q1v1/iso/keymaps/mkillewald_iso/readme.md
diff --git a/keyboards/keychron/q1/iso/keymaps/mkillewald_iso/rgb_matrix_user.c b/keyboards/keychron/q1v1/iso/keymaps/mkillewald_iso/rgb_matrix_user.c
index c6fa5f1f15..c6fa5f1f15 100644
--- a/keyboards/keychron/q1/iso/keymaps/mkillewald_iso/rgb_matrix_user.c
+++ b/keyboards/keychron/q1v1/iso/keymaps/mkillewald_iso/rgb_matrix_user.c
diff --git a/keyboards/keychron/q1/iso/keymaps/mkillewald_iso/rgb_matrix_user.h b/keyboards/keychron/q1v1/iso/keymaps/mkillewald_iso/rgb_matrix_user.h
index 1fb79c0b2a..1fb79c0b2a 100644
--- a/keyboards/keychron/q1/iso/keymaps/mkillewald_iso/rgb_matrix_user.h
+++ b/keyboards/keychron/q1v1/iso/keymaps/mkillewald_iso/rgb_matrix_user.h
diff --git a/keyboards/keychron/q1/iso/keymaps/mkillewald_iso/rules.mk b/keyboards/keychron/q1v1/iso/keymaps/mkillewald_iso/rules.mk
index af720e37ee..af720e37ee 100644
--- a/keyboards/keychron/q1/iso/keymaps/mkillewald_iso/rules.mk
+++ b/keyboards/keychron/q1v1/iso/keymaps/mkillewald_iso/rules.mk
diff --git a/keyboards/keychron/q1/iso/keymaps/via/keymap.c b/keyboards/keychron/q1v1/iso/keymaps/via/keymap.c
index 4d9f158e1e..4d9f158e1e 100644
--- a/keyboards/keychron/q1/iso/keymaps/via/keymap.c
+++ b/keyboards/keychron/q1v1/iso/keymaps/via/keymap.c
diff --git a/keyboards/keychron/q0/rev_0130/keymaps/via/rules.mk b/keyboards/keychron/q1v1/iso/keymaps/via/rules.mk
index 1e5b99807c..1e5b99807c 100644
--- a/keyboards/keychron/q0/rev_0130/keymaps/via/rules.mk
+++ b/keyboards/keychron/q1v1/iso/keymaps/via/rules.mk
diff --git a/keyboards/keychron/q1/iso/keymaps/victorsavu3/config.h b/keyboards/keychron/q1v1/iso/keymaps/victorsavu3/config.h
index 02f08db4a7..02f08db4a7 100644
--- a/keyboards/keychron/q1/iso/keymaps/victorsavu3/config.h
+++ b/keyboards/keychron/q1v1/iso/keymaps/victorsavu3/config.h
diff --git a/keyboards/keychron/q1/iso/keymaps/victorsavu3/keymap.c b/keyboards/keychron/q1v1/iso/keymaps/victorsavu3/keymap.c
index 5256c97dca..5256c97dca 100644
--- a/keyboards/keychron/q1/iso/keymaps/victorsavu3/keymap.c
+++ b/keyboards/keychron/q1v1/iso/keymaps/victorsavu3/keymap.c
diff --git a/keyboards/keychron/q1/iso/keymaps/victorsavu3/readme.md b/keyboards/keychron/q1v1/iso/keymaps/victorsavu3/readme.md
index c96130816e..c96130816e 100644
--- a/keyboards/keychron/q1/iso/keymaps/victorsavu3/readme.md
+++ b/keyboards/keychron/q1v1/iso/keymaps/victorsavu3/readme.md
diff --git a/keyboards/keychron/q1/iso/keymaps/victorsavu3/rules.mk b/keyboards/keychron/q1v1/iso/keymaps/victorsavu3/rules.mk
index 853c414ec7..853c414ec7 100644
--- a/keyboards/keychron/q1/iso/keymaps/victorsavu3/rules.mk
+++ b/keyboards/keychron/q1v1/iso/keymaps/victorsavu3/rules.mk
diff --git a/keyboards/keychron/q1/iso/readme.md b/keyboards/keychron/q1v1/iso/readme.md
index 777ce04773..777ce04773 100644
--- a/keyboards/keychron/q1/iso/readme.md
+++ b/keyboards/keychron/q1v1/iso/readme.md
diff --git a/keyboards/keychron/q1v1/iso/rules.mk b/keyboards/keychron/q1v1/iso/rules.mk
new file mode 100644
index 0000000000..7ff128fa69
--- /dev/null
+++ b/keyboards/keychron/q1v1/iso/rules.mk
@@ -0,0 +1 @@
+# This file intentionally left blank \ No newline at end of file
diff --git a/keyboards/keychron/q1v1/iso_encoder/config.h b/keyboards/keychron/q1v1/iso_encoder/config.h
new file mode 100644
index 0000000000..0907aa14af
--- /dev/null
+++ b/keyboards/keychron/q1v1/iso_encoder/config.h
@@ -0,0 +1,23 @@
+/* Copyright 2021 @ Keychron (https://www.keychron.com)
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#pragma once
+
+/* RGB Matrix Configuration */
+#define RGB_MATRIX_LED_COUNT 83
+
+/* Enable caps-lock LED */
+#define CAPS_LOCK_LED_INDEX 44
diff --git a/keyboards/keychron/q1v1/iso_encoder/info.json b/keyboards/keychron/q1v1/iso_encoder/info.json
new file mode 100644
index 0000000000..780fc7ae82
--- /dev/null
+++ b/keyboards/keychron/q1v1/iso_encoder/info.json
@@ -0,0 +1,199 @@
+{
+ "usb": {
+ "pid": "0x0103",
+ "device_version": "1.0.2"
+ },
+ "diode_direction": "ROW2COL",
+ "encoder": {
+ "enabled": true,
+ "rotary": [
+ {"pin_a": "E6", "pin_b": "B7"}
+ ]
+ },
+ "rgb_matrix": {
+ "layout": [
+ {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1},
+ {"matrix": [0, 2], "x": 18, "y": 0, "flags": 1},
+ {"matrix": [0, 3], "x": 33, "y": 0, "flags": 1},
+ {"matrix": [0, 4], "x": 48, "y": 0, "flags": 1},
+ {"matrix": [0, 5], "x": 62, "y": 0, "flags": 1},
+ {"matrix": [0, 6], "x": 81, "y": 0, "flags": 1},
+ {"matrix": [0, 7], "x": 95, "y": 0, "flags": 1},
+ {"matrix": [0, 8], "x": 110, "y": 0, "flags": 1},
+ {"matrix": [0, 9], "x": 125, "y": 0, "flags": 1},
+ {"matrix": [0, 10], "x": 143, "y": 0, "flags": 1},
+ {"matrix": [0, 11], "x": 158, "y": 0, "flags": 1},
+ {"matrix": [0, 12], "x": 173, "y": 0, "flags": 1},
+ {"matrix": [0, 13], "x": 187, "y": 0, "flags": 1},
+ {"matrix": [4, 14], "x": 206, "y": 0, "flags": 1},
+ {"matrix": [0, 14], "x": 224, "y": 0, "flags": 1},
+
+ {"matrix": [1, 0], "x": 0, "y": 15, "flags": 1},
+ {"matrix": [1, 1], "x": 15, "y": 15, "flags": 4},
+ {"matrix": [1, 2], "x": 29, "y": 15, "flags": 4},
+ {"matrix": [1, 3], "x": 44, "y": 15, "flags": 4},
+ {"matrix": [1, 4], "x": 59, "y": 15, "flags": 4},
+ {"matrix": [1, 5], "x": 73, "y": 15, "flags": 4},
+ {"matrix": [1, 6], "x": 88, "y": 15, "flags": 4},
+ {"matrix": [1, 7], "x": 103, "y": 15, "flags": 4},
+ {"matrix": [1, 8], "x": 118, "y": 15, "flags": 4},
+ {"matrix": [1, 9], "x": 132, "y": 15, "flags": 4},
+ {"matrix": [1, 10], "x": 147, "y": 15, "flags": 4},
+ {"matrix": [1, 12], "x": 162, "y": 15, "flags": 4},
+ {"matrix": [1, 12], "x": 176, "y": 15, "flags": 4},
+ {"matrix": [1, 13], "x": 198, "y": 15, "flags": 1},
+ {"matrix": [1, 14], "x": 224, "y": 15, "flags": 1},
+
+ {"matrix": [2, 0], "x": 4, "y": 26, "flags": 1},
+ {"matrix": [2, 1], "x": 22, "y": 26, "flags": 4},
+ {"matrix": [2, 2], "x": 37, "y": 26, "flags": 4},
+ {"matrix": [2, 3], "x": 51, "y": 26, "flags": 4},
+ {"matrix": [2, 4], "x": 66, "y": 26, "flags": 4},
+ {"matrix": [2, 5], "x": 81, "y": 26, "flags": 4},
+ {"matrix": [2, 6], "x": 95, "y": 26, "flags": 4},
+ {"matrix": [2, 7], "x": 110, "y": 26, "flags": 4},
+ {"matrix": [2, 8], "x": 125, "y": 26, "flags": 4},
+ {"matrix": [2, 9], "x": 140, "y": 26, "flags": 4},
+ {"matrix": [2, 10], "x": 154, "y": 26, "flags": 4},
+ {"matrix": [2, 11], "x": 169, "y": 26, "flags": 4},
+ {"matrix": [2, 12], "x": 184, "y": 26, "flags": 4},
+ {"matrix": [2, 14], "x": 224, "y": 26, "flags": 1},
+
+ {"matrix": [3, 0], "x": 6, "y": 38, "flags": 1},
+ {"matrix": [3, 1], "x": 26, "y": 38, "flags": 4},
+ {"matrix": [3, 2], "x": 40, "y": 38, "flags": 4},
+ {"matrix": [3, 3], "x": 55, "y": 38, "flags": 4},
+ {"matrix": [3, 4], "x": 70, "y": 38, "flags": 4},
+ {"matrix": [3, 5], "x": 84, "y": 38, "flags": 4},
+ {"matrix": [3, 6], "x": 99, "y": 38, "flags": 4},
+ {"matrix": [3, 7], "x": 114, "y": 38, "flags": 4},
+ {"matrix": [3, 8], "x": 129, "y": 38, "flags": 4},
+ {"matrix": [3, 9], "x": 143, "y": 38, "flags": 4},
+ {"matrix": [3, 10], "x": 158, "y": 38, "flags": 4},
+ {"matrix": [3, 11], "x": 173, "y": 38, "flags": 4},
+ {"matrix": [3, 13], "x": 187, "y": 38, "flags": 4},
+ {"matrix": [2, 13], "x": 203, "y": 32, "flags": 1},
+ {"matrix": [3, 14], "x": 224, "y": 38, "flags": 1},
+
+ {"matrix": [4, 0], "x": 2, "y": 49, "flags": 1},
+ {"matrix": [4, 1], "x": 18, "y": 49, "flags": 4},
+ {"matrix": [4, 2], "x": 33, "y": 49, "flags": 4},
+ {"matrix": [4, 3], "x": 48, "y": 49, "flags": 4},
+ {"matrix": [4, 4], "x": 62, "y": 49, "flags": 4},
+ {"matrix": [4, 5], "x": 77, "y": 49, "flags": 4},
+ {"matrix": [4, 6], "x": 92, "y": 49, "flags": 4},
+ {"matrix": [4, 7], "x": 106, "y": 49, "flags": 4},
+ {"matrix": [4, 8], "x": 121, "y": 49, "flags": 4},
+ {"matrix": [4, 9], "x": 136, "y": 49, "flags": 4},
+ {"matrix": [4, 10], "x": 151, "y": 49, "flags": 4},
+ {"matrix": [4, 11], "x": 165, "y": 49, "flags": 4},
+ {"matrix": [4, 13], "x": 185, "y": 49, "flags": 1},
+ {"matrix": [3, 12], "x": 209, "y": 52, "flags": 1},
+
+ {"matrix": [5, 0], "x": 2, "y": 61, "flags": 1},
+ {"matrix": [5, 1], "x": 20, "y": 61, "flags": 1},
+ {"matrix": [5, 2], "x": 39, "y": 61, "flags": 1},
+ {"matrix": [5, 6], "x": 94, "y": 61, "flags": 4},
+ {"matrix": [5, 10], "x": 147, "y": 61, "flags": 1},
+ {"matrix": [5, 11], "x": 162, "y": 61, "flags": 1},
+ {"matrix": [5, 12], "x": 176, "y": 61, "flags": 1},
+ {"matrix": [5, 13], "x": 195, "y": 64, "flags": 1},
+ {"matrix": [4, 12], "x": 209, "y": 64, "flags": 1},
+ {"matrix": [5, 14], "x": 224, "y": 64, "flags": 1}
+ ]
+ },
+ "layouts": {
+ "LAYOUT_iso_83": {
+ "layout": [
+ {"matrix": [0, 0], "x": 0, "y": 0},
+ {"matrix": [0, 2], "x": 1.25, "y": 0},
+ {"matrix": [0, 3], "x": 2.25, "y": 0},
+ {"matrix": [0, 4], "x": 3.25, "y": 0},
+ {"matrix": [0, 5], "x": 4.25, "y": 0},
+ {"matrix": [0, 6], "x": 5.5, "y": 0},
+ {"matrix": [0, 7], "x": 6.5, "y": 0},
+ {"matrix": [0, 8], "x": 7.5, "y": 0},
+ {"matrix": [0, 9], "x": 8.5, "y": 0},
+ {"matrix": [0, 10], "x": 9.75, "y": 0},
+ {"matrix": [0, 11], "x": 10.75, "y": 0},
+ {"matrix": [0, 12], "x": 11.75, "y": 0},
+ {"matrix": [0, 13], "x": 12.75, "y": 0},
+ {"matrix": [4, 14], "x": 14, "y": 0},
+ {"matrix": [0, 14], "x": 15.25, "y": 0},
+
+ {"matrix": [1, 0], "x": 0, "y": 1.25},
+ {"matrix": [1, 1], "x": 1, "y": 1.25},
+ {"matrix": [1, 2], "x": 2, "y": 1.25},
+ {"matrix": [1, 3], "x": 3, "y": 1.25},
+ {"matrix": [1, 4], "x": 4, "y": 1.25},
+ {"matrix": [1, 5], "x": 5, "y": 1.25},
+ {"matrix": [1, 6], "x": 6, "y": 1.25},
+ {"matrix": [1, 7], "x": 7, "y": 1.25},
+ {"matrix": [1, 8], "x": 8, "y": 1.25},
+ {"matrix": [1, 9], "x": 9, "y": 1.25},
+ {"matrix": [1, 10], "x": 10, "y": 1.25},
+ {"matrix": [1, 11], "x": 11, "y": 1.25},
+ {"matrix": [1, 12], "x": 12, "y": 1.25},
+ {"matrix": [1, 13], "x": 13, "y": 1.25, "w": 2},
+ {"matrix": [1, 14], "x": 15.25, "y": 1.25},
+
+ {"matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5},
+ {"matrix": [2, 1], "x": 1.5, "y": 2.25},
+ {"matrix": [2, 2], "x": 2.5, "y": 2.25},
+ {"matrix": [2, 3], "x": 3.5, "y": 2.25},
+ {"matrix": [2, 4], "x": 4.5, "y": 2.25},
+ {"matrix": [2, 5], "x": 5.5, "y": 2.25},
+ {"matrix": [2, 6], "x": 6.5, "y": 2.25},
+ {"matrix": [2, 7], "x": 7.5, "y": 2.25},
+ {"matrix": [2, 8], "x": 8.5, "y": 2.25},
+ {"matrix": [2, 9], "x": 9.5, "y": 2.25},
+ {"matrix": [2, 10], "x": 10.5, "y": 2.25},
+ {"matrix": [2, 11], "x": 11.5, "y": 2.25},
+ {"matrix": [2, 12], "x": 12.5, "y": 2.25},
+ {"matrix": [2, 14], "x": 15.25, "y": 2.25},
+
+ {"matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75},
+ {"matrix": [3, 1], "x": 1.75, "y": 3.25},
+ {"matrix": [3, 2], "x": 2.75, "y": 3.25},
+ {"matrix": [3, 3], "x": 3.75, "y": 3.25},
+ {"matrix": [3, 4], "x": 4.75, "y": 3.25},
+ {"matrix": [3, 5], "x": 5.75, "y": 3.25},
+ {"matrix": [3, 6], "x": 6.75, "y": 3.25},
+ {"matrix": [3, 7], "x": 7.75, "y": 3.25},
+ {"matrix": [3, 8], "x": 8.75, "y": 3.25},
+ {"matrix": [3, 9], "x": 9.75, "y": 3.25},
+ {"matrix": [3, 10], "x": 10.75, "y": 3.25},
+ {"matrix": [3, 11], "x": 11.75, "y": 3.25},
+ {"matrix": [3, 13], "x": 12.75, "y": 3.25},
+ {"matrix": [2, 13], "x": 13.75, "y": 2.25, "w": 1.25, "h": 2},
+ {"matrix": [3, 14], "x": 15.25, "y": 3.25},
+
+ {"matrix": [4, 0], "x": 0, "y": 4.25, "w": 1.25},
+ {"matrix": [4, 1], "x": 1.25, "y": 4.25},
+ {"matrix": [4, 2], "x": 2.25, "y": 4.25},
+ {"matrix": [4, 3], "x": 3.25, "y": 4.25},
+ {"matrix": [4, 4], "x": 4.25, "y": 4.25},
+ {"matrix": [4, 5], "x": 5.25, "y": 4.25},
+ {"matrix": [4, 6], "x": 6.25, "y": 4.25},
+ {"matrix": [4, 7], "x": 7.25, "y": 4.25},
+ {"matrix": [4, 8], "x": 8.25, "y": 4.25},
+ {"matrix": [4, 9], "x": 9.25, "y": 4.25},
+ {"matrix": [4, 10], "x": 10.25, "y": 4.25},
+ {"matrix": [4, 11], "x": 11.25, "y": 4.25},
+ {"matrix": [4, 13], "x": 12.25, "y": 4.25, "w": 1.75},
+ {"matrix": [3, 12], "x": 14.25, "y": 4.5},
+
+ {"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.25},
+ {"matrix": [5, 1], "x": 1.25, "y": 5.25, "w": 1.25},
+ {"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.25},
+ {"matrix": [5, 6], "x": 3.75, "y": 5.25, "w": 6.25},
+ {"matrix": [5, 10], "x": 10, "y": 5.25},
+ {"matrix": [5, 11], "x": 11, "y": 5.25},
+ {"matrix": [5, 12], "x": 12, "y": 5.25},
+ {"matrix": [5, 13], "x": 13.25, "y": 5.5},
+ {"matrix": [4, 12], "x": 14.25, "y": 5.5},
+ {"matrix": [5, 14], "x": 15.25, "y": 5.5}
+ ]
+ }
+ }
+}
diff --git a/keyboards/keychron/q1v1/iso_encoder/iso_encoder.c b/keyboards/keychron/q1v1/iso_encoder/iso_encoder.c
new file mode 100644
index 0000000000..4a7496ed29
--- /dev/null
+++ b/keyboards/keychron/q1v1/iso_encoder/iso_encoder.c
@@ -0,0 +1,127 @@
+/* Copyright 2021 @ Keychron (https://www.keychron.com)
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include "quantum.h"
+
+const matrix_row_t matrix_mask[] = {
+ 0b0111111111111101,
+ 0b0111111111111111,
+ 0b0111111111111111,
+ 0b0111111111111111,
+ 0b0111111111111111,
+ 0b0111111111111111,
+};
+
+#ifdef RGB_MATRIX_ENABLE
+
+const is31fl3733_led_t PROGMEM g_is31fl3733_leds[RGB_MATRIX_LED_COUNT] = {
+/* Refer to IS31 manual for these locations
+ * driver
+ * | R location
+ * | | G location
+ * | | | B location
+ * | | | | */
+ {0, C_1, A_1, B_1},
+ {0, C_3, A_3, B_3},
+ {0, C_4, A_4, B_4},
+ {0, C_5, A_5, B_5},
+ {0, C_6, A_6, B_6},
+ {0, C_7, A_7, B_7},
+ {0, C_8, A_8, B_8},
+ {0, C_9, A_9, B_9},
+ {0, C_10, A_10, B_10},
+ {0, C_11, A_11, B_11},
+ {0, C_12, A_12, B_12},
+ {0, C_13, A_13, B_13},
+ {0, C_14, A_14, B_14},
+ {0, C_15, A_15, B_15},
+ {0, C_16, A_16, B_16},
+
+ {0, F_1, D_1, E_1},
+ {0, F_2, D_2, E_2},
+ {0, F_3, D_3, E_3},
+ {0, F_4, D_4, E_4},
+ {0, F_5, D_5, E_5},
+ {0, F_6, D_6, E_6},
+ {0, F_7, D_7, E_7},
+ {0, F_8, D_8, E_8},
+ {0, F_9, D_9, E_9},
+ {0, F_10, D_10, E_10},
+ {0, F_11, D_11, E_11},
+ {0, F_12, D_12, E_12},
+ {0, F_13, D_13, E_13},
+ {0, F_14, D_14, E_14},
+ {0, F_16, D_16, E_16},
+
+ {0, I_1, G_1, H_1},
+ {0, I_2, G_2, H_2},
+ {0, I_3, G_3, H_3},
+ {0, I_4, G_4, H_4},
+ {0, I_5, G_5, H_5},
+ {0, I_6, G_6, H_6},
+ {0, I_7, G_7, H_7},
+ {0, I_8, G_8, H_8},
+ {0, I_9, G_9, H_9},
+ {0, I_10, G_10, H_10},
+ {0, I_11, G_11, H_11},
+ {0, I_12, G_12, H_12},
+ {0, I_13, G_13, H_13},
+ {0, I_16, G_16, H_16},
+
+ {0, L_1, J_1, K_1},
+ {0, L_2, J_2, K_2},
+ {0, L_3, J_3, K_3},
+ {0, L_4, J_4, K_4},
+ {0, L_5, J_5, K_5},
+ {0, L_6, J_6, K_6},
+ {0, L_7, J_7, K_7},
+ {0, L_8, J_8, K_8},
+ {0, L_9, J_9, K_9},
+ {0, L_10, J_10, K_10},
+ {0, L_11, J_11, K_11},
+ {0, L_12, J_12, K_12},
+ {0, L_14, J_14, K_14},
+ {0, I_14, G_14, H_14},
+ {0, L_16, J_16, K_16},
+
+ {1, C_1, A_1, B_1},
+ {1, C_2, A_2, B_2},
+ {1, C_3, A_3, B_3},
+ {1, C_4, A_4, B_4},
+ {1, C_5, A_5, B_5},
+ {1, C_6, A_6, B_6},
+ {1, C_7, A_7, B_7},
+ {1, C_8, A_8, B_8},
+ {1, C_9, A_9, B_9},
+ {1, C_10, A_10, B_10},
+ {1, C_11, A_11, B_11},
+ {1, C_12, A_12, B_12},
+ {1, C_14, A_14, B_14},
+ {1, C_15, A_15, B_15},
+
+ {1, F_1, D_1, E_1},
+ {1, F_2, D_2, E_2},
+ {1, F_3, D_3, E_3},
+ {1, F_7, D_7, E_7},
+ {1, F_11, D_11, E_11},
+ {1, F_12, D_12, E_12},
+ {1, F_13, D_13, E_13},
+ {1, F_14, D_14, E_14},
+ {1, F_15, D_15, E_15},
+ {1, F_16, D_16, E_16}
+};
+
+#endif // RGB_MATRIX_ENABLE
diff --git a/keyboards/keychron/q1/iso_encoder/keymaps/default/keymap.c b/keyboards/keychron/q1v1/iso_encoder/keymaps/default/keymap.c
index 237d9a3f1e..237d9a3f1e 100644
--- a/keyboards/keychron/q1/iso_encoder/keymaps/default/keymap.c
+++ b/keyboards/keychron/q1v1/iso_encoder/keymaps/default/keymap.c
diff --git a/keyboards/keychron/q1/iso_encoder/keymaps/default/rules.mk b/keyboards/keychron/q1v1/iso_encoder/keymaps/default/rules.mk
index a40474b4d5..a40474b4d5 100644
--- a/keyboards/keychron/q1/iso_encoder/keymaps/default/rules.mk
+++ b/keyboards/keychron/q1v1/iso_encoder/keymaps/default/rules.mk
diff --git a/keyboards/keychron/q1/iso_encoder/keymaps/keychron/keymap.c b/keyboards/keychron/q1v1/iso_encoder/keymaps/keychron/keymap.c
index b007e56fba..b007e56fba 100644
--- a/keyboards/keychron/q1/iso_encoder/keymaps/keychron/keymap.c
+++ b/keyboards/keychron/q1v1/iso_encoder/keymaps/keychron/keymap.c
diff --git a/keyboards/keychron/q1/iso_encoder/keymaps/keychron/rules.mk b/keyboards/keychron/q1v1/iso_encoder/keymaps/keychron/rules.mk
index 2d17902f98..2d17902f98 100644
--- a/keyboards/keychron/q1/iso_encoder/keymaps/keychron/rules.mk
+++ b/keyboards/keychron/q1v1/iso_encoder/keymaps/keychron/rules.mk
diff --git a/keyboards/keychron/q1/iso_encoder/keymaps/via/keymap.c b/keyboards/keychron/q1v1/iso_encoder/keymaps/via/keymap.c
index 47f04d8a29..47f04d8a29 100644
--- a/keyboards/keychron/q1/iso_encoder/keymaps/via/keymap.c
+++ b/keyboards/keychron/q1v1/iso_encoder/keymaps/via/keymap.c
diff --git a/keyboards/keychron/q1/iso_encoder/keymaps/via/rules.mk b/keyboards/keychron/q1v1/iso_encoder/keymaps/via/rules.mk
index 4253f570f0..4253f570f0 100644
--- a/keyboards/keychron/q1/iso_encoder/keymaps/via/rules.mk
+++ b/keyboards/keychron/q1v1/iso_encoder/keymaps/via/rules.mk
diff --git a/keyboards/keychron/q1/iso_encoder/readme.md b/keyboards/keychron/q1v1/iso_encoder/readme.md
index 66db24a197..66db24a197 100644
--- a/keyboards/keychron/q1/iso_encoder/readme.md
+++ b/keyboards/keychron/q1v1/iso_encoder/readme.md
diff --git a/keyboards/keychron/q1v1/iso_encoder/rules.mk b/keyboards/keychron/q1v1/iso_encoder/rules.mk
new file mode 100644
index 0000000000..6968c52335
--- /dev/null
+++ b/keyboards/keychron/q1v1/iso_encoder/rules.mk
@@ -0,0 +1,2 @@
+# This file intentionally left blank
+
diff --git a/keyboards/keychron/q1v1/q1v1.c b/keyboards/keychron/q1v1/q1v1.c
new file mode 100644
index 0000000000..2ed907adb9
--- /dev/null
+++ b/keyboards/keychron/q1v1/q1v1.c
@@ -0,0 +1,73 @@
+/* Copyright 2021 @ Keychron (https://www.keychron.com)
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include "quantum.h"
+
+#ifdef DIP_SWITCH_ENABLE
+
+bool dip_switch_update_kb(uint8_t index, bool active) {
+ if (!dip_switch_update_user(index, active)) { return false;}
+ if (index == 0) {
+ default_layer_set(1UL << (active ? 2 : 0));
+ }
+ return true;
+}
+
+#endif // DIP_SWITCH_ENABLE
+
+#if defined(RGB_MATRIX_ENABLE) && defined(CAPS_LOCK_LED_INDEX)
+
+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 RGB_TOG:
+ if (record->event.pressed) {
+ switch (rgb_matrix_get_flags()) {
+ case LED_FLAG_ALL: {
+ rgb_matrix_set_flags(LED_FLAG_NONE);
+ rgb_matrix_set_color_all(0, 0, 0);
+ } break;
+ default: {
+ rgb_matrix_set_flags(LED_FLAG_ALL);
+ } break;
+ }
+ }
+ if (!rgb_matrix_is_enabled()) {
+ rgb_matrix_set_flags(LED_FLAG_ALL);
+ rgb_matrix_enable();
+ }
+ return false;
+#endif
+ }
+ return true;
+}
+
+bool rgb_matrix_indicators_advanced_kb(uint8_t led_min, uint8_t led_max) {
+ if (!rgb_matrix_indicators_advanced_user(led_min, led_max)) { return false; }
+ // RGB_MATRIX_INDICATOR_SET_COLOR(index, red, green, blue);
+
+ if (host_keyboard_led_state().caps_lock) {
+ RGB_MATRIX_INDICATOR_SET_COLOR(CAPS_LOCK_LED_INDEX, 255, 255, 255);
+ } else {
+ if (!rgb_matrix_get_flags()) {
+ RGB_MATRIX_INDICATOR_SET_COLOR(CAPS_LOCK_LED_INDEX, 0, 0, 0);
+ }
+ }
+ return true;
+}
+
+#endif // CAPS_LOCK_LED_INDEX \ No newline at end of file
diff --git a/keyboards/keychron/q1v1/readme.md b/keyboards/keychron/q1v1/readme.md
new file mode 100644
index 0000000000..af54da8195
--- /dev/null
+++ b/keyboards/keychron/q1v1/readme.md
@@ -0,0 +1,27 @@
+# Keychron Q1v1
+
+![Keychron Q1v1](https://i.imgur.com/BbJNGLY.jpg)
+
+A customizable 75% keyboard.
+
+* Keyboard Maintainer: [Keychron](https://github.com/keychron)
+* Hardware Supported: Keychron Q1v1
+* Hardware Availability: [Keychron Q1v1 QMK Custom Mechanical Keyboard](https://www.keychron.com/products/keychron-q1-qmk-custom-mechanical-keyboard)
+
+Make example for this keyboard (after setting up your build environment):
+
+ make keychron/q1v1/ansi:default
+ make keychron/q1v1/ansi_encoder:default
+ make keychron/q1v1/iso:default
+ make keychron/q1v1/iso_encoder:default
+
+Flashing example for this keyboard:
+
+ make keychron/q1v1/ansi:default:flash
+ make keychron/q1v1/ansi_encoder:default:flash
+ make keychron/q1v1/iso:default:flash
+ make keychron/q1v1/iso_encoder:default:flash
+
+**Reset Key**: Hold down the key located at *K00*, commonly programmed as *Esc* while plugging in the keyboard.
+
+See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). \ No newline at end of file
diff --git a/keyboards/keychron/q1v2/ansi/ansi.c b/keyboards/keychron/q1v2/ansi/ansi.c
index ea6c6278d1..3b80c9d5c4 100644
--- a/keyboards/keychron/q1v2/ansi/ansi.c
+++ b/keyboards/keychron/q1v2/ansi/ansi.c
@@ -18,8 +18,8 @@
#ifdef RGB_MATRIX_ENABLE
-const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = {
-/* Refer to CKLED2001 manual for these locations
+const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = {
+/* Refer to SNLED27351 manual for these locations
* driver
* | R location
* | | G location
diff --git a/keyboards/keychron/q1v2/ansi_encoder/ansi_encoder.c b/keyboards/keychron/q1v2/ansi_encoder/ansi_encoder.c
index ea6c6278d1..3b80c9d5c4 100644
--- a/keyboards/keychron/q1v2/ansi_encoder/ansi_encoder.c
+++ b/keyboards/keychron/q1v2/ansi_encoder/ansi_encoder.c
@@ -18,8 +18,8 @@
#ifdef RGB_MATRIX_ENABLE
-const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = {
-/* Refer to CKLED2001 manual for these locations
+const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = {
+/* Refer to SNLED27351 manual for these locations
* driver
* | R location
* | | G location
diff --git a/keyboards/keychron/q1v2/config.h b/keyboards/keychron/q1v2/config.h
index e2d331c1ac..5e2a7eaa54 100644
--- a/keyboards/keychron/q1v2/config.h
+++ b/keyboards/keychron/q1v2/config.h
@@ -17,9 +17,8 @@
#pragma once
/* RGB Matrix Driver Configuration */
-#define DRIVER_COUNT 2
-#define DRIVER_ADDR_1 0b1110111
-#define DRIVER_ADDR_2 0b1110100
+#define SNLED27351_I2C_ADDRESS_1 SNLED27351_I2C_ADDRESS_VDDIO
+#define SNLED27351_I2C_ADDRESS_2 SNLED27351_I2C_ADDRESS_GND
/* Increase I2C speed to 1000 KHz */
#define I2C1_TIMINGR_PRESC 0U
@@ -44,10 +43,9 @@
#define WEAR_LEVELING_LOGICAL_SIZE 2048
#define WEAR_LEVELING_BACKING_SIZE (WEAR_LEVELING_LOGICAL_SIZE * 2)
-/* Scan phase of led driver set as MSKPHASE_9CHANNEL(defined as 0x03 in CKLED2001.h) */
-#define PHASE_CHANNEL MSKPHASE_9CHANNEL
+#define SNLED27351_PHASE_CHANNEL SNLED27351_SCAN_PHASE_9_CHANNEL
/* Set LED driver current */
-#define CKLED2001_CURRENT_TUNE \
+#define SNLED27351_CURRENT_TUNE \
{ 0xA6, 0xA6, 0x50, 0xA6, 0xA6, 0x50, 0xA6, 0xA6, 0x50, 0xA6, 0xA6, 0x50 }
// RGB Matrix Animation modes. Explicitly enabled
diff --git a/keyboards/keychron/q1v2/info.json b/keyboards/keychron/q1v2/info.json
index c4a75f0283..b40c41c760 100644
--- a/keyboards/keychron/q1v2/info.json
+++ b/keyboards/keychron/q1v2/info.json
@@ -30,7 +30,7 @@
},
"diode_direction": "ROW2COL",
"rgb_matrix": {
- "driver": "ckled2001",
+ "driver": "snled27351",
"animations": {
"band_spiral_val": true,
"breathing": true,
diff --git a/keyboards/keychron/q1v2/iso/iso.c b/keyboards/keychron/q1v2/iso/iso.c
index eae39c8d61..d879e55083 100644
--- a/keyboards/keychron/q1v2/iso/iso.c
+++ b/keyboards/keychron/q1v2/iso/iso.c
@@ -18,8 +18,8 @@
#ifdef RGB_MATRIX_ENABLE
-const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = {
-/* Refer to CKLED2001 manual for these locations
+const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = {
+/* Refer to SNLED27351 manual for these locations
* driver
* | R location
* | | G location
diff --git a/keyboards/keychron/q1v2/iso_encoder/iso_encoder.c b/keyboards/keychron/q1v2/iso_encoder/iso_encoder.c
index eae39c8d61..d879e55083 100644
--- a/keyboards/keychron/q1v2/iso_encoder/iso_encoder.c
+++ b/keyboards/keychron/q1v2/iso_encoder/iso_encoder.c
@@ -18,8 +18,8 @@
#ifdef RGB_MATRIX_ENABLE
-const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = {
-/* Refer to CKLED2001 manual for these locations
+const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = {
+/* Refer to SNLED27351 manual for these locations
* driver
* | R location
* | | G location
diff --git a/keyboards/keychron/q1v2/jis/jis.c b/keyboards/keychron/q1v2/jis/jis.c
index 6bfcbad3e4..e8c0112649 100644
--- a/keyboards/keychron/q1v2/jis/jis.c
+++ b/keyboards/keychron/q1v2/jis/jis.c
@@ -18,8 +18,8 @@
#ifdef RGB_MATRIX_ENABLE
-const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = {
-/* Refer to CKLED2001 manual for these locations
+const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = {
+/* Refer to SNLED27351 manual for these locations
* driver
* | R location
* | | G location
diff --git a/keyboards/keychron/q1v2/jis_encoder/jis_encoder.c b/keyboards/keychron/q1v2/jis_encoder/jis_encoder.c
index 6bfcbad3e4..e8c0112649 100644
--- a/keyboards/keychron/q1v2/jis_encoder/jis_encoder.c
+++ b/keyboards/keychron/q1v2/jis_encoder/jis_encoder.c
@@ -18,8 +18,8 @@
#ifdef RGB_MATRIX_ENABLE
-const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = {
-/* Refer to CKLED2001 manual for these locations
+const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = {
+/* Refer to SNLED27351 manual for these locations
* driver
* | R location
* | | G location
diff --git a/keyboards/keychron/q2/ansi/ansi.c b/keyboards/keychron/q2/ansi/ansi.c
index 28f91269c4..d0ff0a1869 100644
--- a/keyboards/keychron/q2/ansi/ansi.c
+++ b/keyboards/keychron/q2/ansi/ansi.c
@@ -17,8 +17,8 @@
#include "quantum.h"
#ifdef RGB_MATRIX_ENABLE
-const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = {
-/* Refer to CKLED manual for these locations
+const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = {
+/* Refer to SNLED27351 manual for these locations
* driver
* | R location
* | | G location
@@ -97,33 +97,4 @@ const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = {
{1, F_16, D_16, E_16},
};
-#define __ NO_LED
-
-led_config_t g_led_config = {
- {
- // Key Matrix to LED Index
- { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 },
- { 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29 },
- { 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 65, 42, 43 },
- { 44, __, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, __, 55, 56 },
- { 57, 58, 59, __, __, __, 60, __, __, __, 61, 62, 63, 64, 66 }
- },
- {
- // LED Index to Physical Position
- {0,0}, {15,0}, {29,0}, {44,0}, {59,0}, {73,0}, {88,0}, {103,0}, {118,0}, {132,0}, {147,0}, {162,0}, {176,0}, {198,0}, {224,0},
- {4,15}, {22,15}, {37,15}, {51,15}, {66,15}, {81,15}, {95,15}, {110,15}, {125,15}, {140,15}, {154,15}, {169,15}, {184,15}, {202,15}, {224,15},
- {6,30}, {26,30}, {40,30}, {55,30}, {70,30}, {84,30}, {99,30}, {114,30}, {129,30}, {143,30}, {158,30}, {173,30}, {196,30}, {224,30},
- {9,45}, {33,45}, {48,45}, {62,45}, {77,45}, {92,45}, {106,45}, {121,45}, {136,45}, {151,45}, {165,45}, {185,45}, {209,49},
- {2,60}, {20,60}, {39,60}, {94,60}, {147,60}, {162,60}, {176,60}, {195,64}, {209,64}, {224,64}
- },
- {
- // RGB LED Index to Flag
- 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1,
- 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1,
- 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1,
- 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1,
- 1, 1, 1, 4, 1, 1, 1, 1, 1, 1
- }
-};
-
#endif // RGB_MATRIX_ENABLE
diff --git a/keyboards/keychron/q2/ansi/config.h b/keyboards/keychron/q2/ansi/config.h
index 6c39432b74..41b92074be 100644
--- a/keyboards/keychron/q2/ansi/config.h
+++ b/keyboards/keychron/q2/ansi/config.h
@@ -17,6 +17,7 @@
#pragma once
/* RGB Matrix Configuration */
-#define DRIVER_1_LED_TOTAL 34
-#define DRIVER_2_LED_TOTAL 33
-#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL)
+#define RGB_MATRIX_LED_COUNT 67
+
+/* Enable caps-lock LED */
+#define CAPS_LOCK_LED_INDEX 30 \ No newline at end of file
diff --git a/keyboards/keychron/q2/ansi/info.json b/keyboards/keychron/q2/ansi/info.json
index 8ed601fe8f..d419d31eef 100644
--- a/keyboards/keychron/q2/ansi/info.json
+++ b/keyboards/keychron/q2/ansi/info.json
@@ -1,23 +1,84 @@
{
- "keyboard_name": "Q2",
- "manufacturer": "Keychron",
- "url": "https://github.com/Keychron",
- "maintainer": "lalalademaxiya1",
"usb": {
- "vid": "0x3434",
"pid": "0x0110",
"device_version": "1.0.0"
},
"rgb_matrix": {
- "driver": "ckled2001"
- },
- "matrix_pins": {
- "cols": ["C14", "C15", "A0", "A1", "A2", "A3", "A4", "A5", "A6", "A7", "B0", "B1", "A8", "A9", "H3"],
- "rows": ["B4", "B3", "A15", "A14", "A13"]
+ "layout": [
+ {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1},
+ {"matrix": [0, 1], "x": 15, "y": 0, "flags": 4},
+ {"matrix": [0, 2], "x": 29, "y": 0, "flags": 4},
+ {"matrix": [0, 3], "x": 44, "y": 0, "flags": 4},
+ {"matrix": [0, 4], "x": 59, "y": 0, "flags": 4},
+ {"matrix": [0, 5], "x": 73, "y": 0, "flags": 4},
+ {"matrix": [0, 6], "x": 88, "y": 0, "flags": 4},
+ {"matrix": [0, 7], "x": 103, "y": 0, "flags": 4},
+ {"matrix": [0, 8], "x": 118, "y": 0, "flags": 4},
+ {"matrix": [0, 9], "x": 132, "y": 0, "flags": 4},
+ {"matrix": [0, 10], "x": 147, "y": 0, "flags": 4},
+ {"matrix": [0, 11], "x": 162, "y": 0, "flags": 4},
+ {"matrix": [0, 12], "x": 176, "y": 0, "flags": 4},
+ {"matrix": [0, 13], "x": 198, "y": 0, "flags": 1},
+ {"matrix": [0, 14], "x": 224, "y": 0, "flags": 1},
+
+ {"matrix": [1, 0], "x": 4, "y": 15, "flags": 1},
+ {"matrix": [1, 1], "x": 22, "y": 15, "flags": 4},
+ {"matrix": [1, 2], "x": 37, "y": 15, "flags": 4},
+ {"matrix": [1, 3], "x": 51, "y": 15, "flags": 4},
+ {"matrix": [1, 4], "x": 66, "y": 15, "flags": 4},
+ {"matrix": [1, 5], "x": 81, "y": 15, "flags": 4},
+ {"matrix": [1, 6], "x": 95, "y": 15, "flags": 4},
+ {"matrix": [1, 7], "x": 110, "y": 15, "flags": 4},
+ {"matrix": [1, 8], "x": 125, "y": 15, "flags": 4},
+ {"matrix": [1, 9], "x": 140, "y": 15, "flags": 4},
+ {"matrix": [1, 10], "x": 154, "y": 15, "flags": 4},
+ {"matrix": [1, 11], "x": 169, "y": 15, "flags": 4},
+ {"matrix": [1, 12], "x": 184, "y": 15, "flags": 4},
+ {"matrix": [1, 13], "x": 202, "y": 15, "flags": 1},
+ {"matrix": [1, 14], "x": 224, "y": 15, "flags": 1},
+
+ {"matrix": [2, 0], "x": 6, "y": 30, "flags": 1},
+ {"matrix": [2, 1], "x": 26, "y": 30, "flags": 4},
+ {"matrix": [2, 2], "x": 40, "y": 30, "flags": 4},
+ {"matrix": [2, 3], "x": 55, "y": 30, "flags": 4},
+ {"matrix": [2, 4], "x": 70, "y": 30, "flags": 4},
+ {"matrix": [2, 5], "x": 84, "y": 30, "flags": 4},
+ {"matrix": [2, 6], "x": 99, "y": 30, "flags": 4},
+ {"matrix": [2, 7], "x": 114, "y": 30, "flags": 4},
+ {"matrix": [2, 8], "x": 129, "y": 30, "flags": 4},
+ {"matrix": [2, 9], "x": 143, "y": 30, "flags": 4},
+ {"matrix": [2, 10], "x": 158, "y": 30, "flags": 4},
+ {"matrix": [2, 11], "x": 173, "y": 30, "flags": 4},
+ {"matrix": [2, 13], "x": 196, "y": 30, "flags": 1},
+ {"matrix": [2, 14], "x": 224, "y": 30, "flags": 1},
+
+ {"matrix": [3, 0], "x": 9, "y": 45, "flags": 1},
+ {"matrix": [3, 2], "x": 33, "y": 45, "flags": 4},
+ {"matrix": [3, 3], "x": 48, "y": 45, "flags": 4},
+ {"matrix": [3, 4], "x": 62, "y": 45, "flags": 4},
+ {"matrix": [3, 5], "x": 77, "y": 45, "flags": 4},
+ {"matrix": [3, 6], "x": 92, "y": 45, "flags": 4},
+ {"matrix": [3, 7], "x": 106, "y": 45, "flags": 4},
+ {"matrix": [3, 8], "x": 121, "y": 45, "flags": 4},
+ {"matrix": [3, 9], "x": 136, "y": 45, "flags": 4},
+ {"matrix": [3, 10], "x": 151, "y": 45, "flags": 4},
+ {"matrix": [3, 11], "x": 165, "y": 45, "flags": 4},
+ {"matrix": [3, 13], "x": 185, "y": 45, "flags": 1},
+ {"matrix": [3, 14], "x": 209, "y": 49, "flags": 1},
+
+ {"matrix": [4, 0], "x": 2, "y": 60, "flags": 1},
+ {"matrix": [4, 1], "x": 20, "y": 60, "flags": 1},
+ {"matrix": [4, 2], "x": 39, "y": 60, "flags": 1},
+ {"matrix": [4, 6], "x": 94, "y": 60, "flags": 4},
+ {"matrix": [4, 10], "x": 147, "y": 60, "flags": 1},
+ {"matrix": [4, 11], "x": 162, "y": 60, "flags": 1},
+ {"matrix": [4, 12], "x": 176, "y": 60, "flags": 1},
+ {"matrix": [4, 13], "x": 195, "y": 64, "flags": 1},
+ {"matrix": [2, 12], "x": 209, "y": 64, "flags": 1},
+ {"matrix": [4, 14], "x": 224, "y": 64, "flags": 1}
+
+ ]
},
- "diode_direction": "ROW2COL",
- "processor": "STM32L432",
- "bootloader": "stm32-dfu",
"layouts": {
"LAYOUT_ansi_67": {
"layout": [
diff --git a/keyboards/keychron/q2/ansi/rules.mk b/keyboards/keychron/q2/ansi/rules.mk
index ede7d6fab2..7ff128fa69 100644
--- a/keyboards/keychron/q2/ansi/rules.mk
+++ b/keyboards/keychron/q2/ansi/rules.mk
@@ -1,18 +1 @@
-# Build Options
-# change yes to no to disable
-#
-BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite
-MOUSEKEY_ENABLE = yes # Mouse keys
-EXTRAKEY_ENABLE = yes # Audio control and System control
-CONSOLE_ENABLE = no # Console for debug
-COMMAND_ENABLE = no # Commands for debug and configuration
-NKRO_ENABLE = yes # Enable N-Key Rollover
-BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
-RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
-AUDIO_ENABLE = no # Audio output
-ENCODER_ENABLE = no # Enable Encoder
-DIP_SWITCH_ENABLE = yes
-RGB_MATRIX_ENABLE = yes
-EEPROM_DRIVER = wear_leveling
-WEAR_LEVELING_DRIVER = embedded_flash
-
+# This file intentionally left blank \ No newline at end of file
diff --git a/keyboards/keychron/q2/ansi_encoder/ansi_encoder.c b/keyboards/keychron/q2/ansi_encoder/ansi_encoder.c
index 28f91269c4..d0ff0a1869 100644
--- a/keyboards/keychron/q2/ansi_encoder/ansi_encoder.c
+++ b/keyboards/keychron/q2/ansi_encoder/ansi_encoder.c
@@ -17,8 +17,8 @@
#include "quantum.h"
#ifdef RGB_MATRIX_ENABLE
-const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = {
-/* Refer to CKLED manual for these locations
+const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = {
+/* Refer to SNLED27351 manual for these locations
* driver
* | R location
* | | G location
@@ -97,33 +97,4 @@ const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = {
{1, F_16, D_16, E_16},
};
-#define __ NO_LED
-
-led_config_t g_led_config = {
- {
- // Key Matrix to LED Index
- { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 },
- { 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29 },
- { 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 65, 42, 43 },
- { 44, __, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, __, 55, 56 },
- { 57, 58, 59, __, __, __, 60, __, __, __, 61, 62, 63, 64, 66 }
- },
- {
- // LED Index to Physical Position
- {0,0}, {15,0}, {29,0}, {44,0}, {59,0}, {73,0}, {88,0}, {103,0}, {118,0}, {132,0}, {147,0}, {162,0}, {176,0}, {198,0}, {224,0},
- {4,15}, {22,15}, {37,15}, {51,15}, {66,15}, {81,15}, {95,15}, {110,15}, {125,15}, {140,15}, {154,15}, {169,15}, {184,15}, {202,15}, {224,15},
- {6,30}, {26,30}, {40,30}, {55,30}, {70,30}, {84,30}, {99,30}, {114,30}, {129,30}, {143,30}, {158,30}, {173,30}, {196,30}, {224,30},
- {9,45}, {33,45}, {48,45}, {62,45}, {77,45}, {92,45}, {106,45}, {121,45}, {136,45}, {151,45}, {165,45}, {185,45}, {209,49},
- {2,60}, {20,60}, {39,60}, {94,60}, {147,60}, {162,60}, {176,60}, {195,64}, {209,64}, {224,64}
- },
- {
- // RGB LED Index to Flag
- 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1,
- 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1,
- 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1,
- 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1,
- 1, 1, 1, 4, 1, 1, 1, 1, 1, 1
- }
-};
-
#endif // RGB_MATRIX_ENABLE
diff --git a/keyboards/keychron/q2/ansi_encoder/config.h b/keyboards/keychron/q2/ansi_encoder/config.h
index b7e4b1e7f8..41b92074be 100644
--- a/keyboards/keychron/q2/ansi_encoder/config.h
+++ b/keyboards/keychron/q2/ansi_encoder/config.h
@@ -17,9 +17,7 @@
#pragma once
/* RGB Matrix Configuration */
-#define DRIVER_1_LED_TOTAL 34
-#define DRIVER_2_LED_TOTAL 33
-#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL)
+#define RGB_MATRIX_LED_COUNT 67
-/* Encoder used pins */
-#define ENCODER_DEFAULT_POS 0x3
+/* Enable caps-lock LED */
+#define CAPS_LOCK_LED_INDEX 30 \ No newline at end of file
diff --git a/keyboards/keychron/q2/ansi_encoder/info.json b/keyboards/keychron/q2/ansi_encoder/info.json
index c9587d20ea..1e1f22bada 100644
--- a/keyboards/keychron/q2/ansi_encoder/info.json
+++ b/keyboards/keychron/q2/ansi_encoder/info.json
@@ -1,28 +1,90 @@
{
- "keyboard_name": "Q2",
- "manufacturer": "Keychron",
- "url": "https://github.com/Keychron",
- "maintainer": "lalalademaxiya1",
"usb": {
- "vid": "0x3434",
"pid": "0x0111",
"device_version": "1.0.0"
},
- "rgb_matrix": {
- "driver": "ckled2001"
- },
- "matrix_pins": {
- "cols": ["C14", "C15", "A0", "A1", "A2", "A3", "A4", "A5", "A6", "A7", "B0", "B1", "A8", "A9", "H3"],
- "rows": ["B4", "B3", "A15", "A14", "A13"]
- },
- "diode_direction": "ROW2COL",
"encoder": {
+ "enabled": true,
"rotary": [
{"pin_a": "A10", "pin_b": "B5"}
]
},
- "processor": "STM32L432",
- "bootloader": "stm32-dfu",
+ "rgb_matrix": {
+ "layout": [
+ {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1},
+ {"matrix": [0, 1], "x": 15, "y": 0, "flags": 4},
+ {"matrix": [0, 2], "x": 29, "y": 0, "flags": 4},
+ {"matrix": [0, 3], "x": 44, "y": 0, "flags": 4},
+ {"matrix": [0, 4], "x": 59, "y": 0, "flags": 4},
+ {"matrix": [0, 5], "x": 73, "y": 0, "flags": 4},
+ {"matrix": [0, 6], "x": 88, "y": 0, "flags": 4},
+ {"matrix": [0, 7], "x": 103, "y": 0, "flags": 4},
+ {"matrix": [0, 8], "x": 118, "y": 0, "flags": 4},
+ {"matrix": [0, 9], "x": 132, "y": 0, "flags": 4},
+ {"matrix": [0, 10], "x": 147, "y": 0, "flags": 4},
+ {"matrix": [0, 11], "x": 162, "y": 0, "flags": 4},
+ {"matrix": [0, 12], "x": 176, "y": 0, "flags": 4},
+ {"matrix": [0, 13], "x": 198, "y": 0, "flags": 1},
+ {"matrix": [0, 14], "x": 224, "y": 0, "flags": 1},
+
+ {"matrix": [1, 0], "x": 4, "y": 15, "flags": 1},
+ {"matrix": [1, 1], "x": 22, "y": 15, "flags": 4},
+ {"matrix": [1, 2], "x": 37, "y": 15, "flags": 4},
+ {"matrix": [1, 3], "x": 51, "y": 15, "flags": 4},
+ {"matrix": [1, 4], "x": 66, "y": 15, "flags": 4},
+ {"matrix": [1, 5], "x": 81, "y": 15, "flags": 4},
+ {"matrix": [1, 6], "x": 95, "y": 15, "flags": 4},
+ {"matrix": [1, 7], "x": 110, "y": 15, "flags": 4},
+ {"matrix": [1, 8], "x": 125, "y": 15, "flags": 4},
+ {"matrix": [1, 9], "x": 140, "y": 15, "flags": 4},
+ {"matrix": [1, 10], "x": 154, "y": 15, "flags": 4},
+ {"matrix": [1, 11], "x": 169, "y": 15, "flags": 4},
+ {"matrix": [1, 12], "x": 184, "y": 15, "flags": 4},
+ {"matrix": [1, 13], "x": 202, "y": 15, "flags": 1},
+ {"matrix": [1, 14], "x": 224, "y": 15, "flags": 1},
+
+ {"matrix": [2, 0], "x": 6, "y": 30, "flags": 1},
+ {"matrix": [2, 1], "x": 26, "y": 30, "flags": 4},
+ {"matrix": [2, 2], "x": 40, "y": 30, "flags": 4},
+ {"matrix": [2, 3], "x": 55, "y": 30, "flags": 4},
+ {"matrix": [2, 4], "x": 70, "y": 30, "flags": 4},
+ {"matrix": [2, 5], "x": 84, "y": 30, "flags": 4},
+ {"matrix": [2, 6], "x": 99, "y": 30, "flags": 4},
+ {"matrix": [2, 7], "x": 114, "y": 30, "flags": 4},
+ {"matrix": [2, 8], "x": 129, "y": 30, "flags": 4},
+ {"matrix": [2, 9], "x": 143, "y": 30, "flags": 4},
+ {"matrix": [2, 10], "x": 158, "y": 30, "flags": 4},
+ {"matrix": [2, 11], "x": 173, "y": 30, "flags": 4},
+ {"matrix": [2, 13], "x": 196, "y": 30, "flags": 1},
+ {"matrix": [2, 14], "x": 224, "y": 30, "flags": 1},
+
+ {"matrix": [3, 0], "x": 9, "y": 45, "flags": 1},
+ {"matrix": [3, 2], "x": 33, "y": 45, "flags": 4},
+ {"matrix": [3, 3], "x": 48, "y": 45, "flags": 4},
+ {"matrix": [3, 4], "x": 62, "y": 45, "flags": 4},
+ {"matrix": [3, 5], "x": 77, "y": 45, "flags": 4},
+ {"matrix": [3, 6], "x": 92, "y": 45, "flags": 4},
+ {"matrix": [3, 7], "x": 106, "y": 45, "flags": 4},
+ {"matrix": [3, 8], "x": 121, "y": 45, "flags": 4},
+ {"matrix": [3, 9], "x": 136, "y": 45, "flags": 4},
+ {"matrix": [3, 10], "x": 151, "y": 45, "flags": 4},
+ {"matrix": [3, 11], "x": 165, "y": 45, "flags": 4},
+ {"matrix": [3, 13], "x": 185, "y": 45, "flags": 1},
+ {"matrix": [3, 14], "x": 209, "y": 49, "flags": 1},
+
+ {"matrix": [4, 0], "x": 2, "y": 60, "flags": 1},
+ {"matrix": [4, 1], "x": 20, "y": 60, "flags": 1},
+ {"matrix": [4, 2], "x": 39, "y": 60, "flags": 1},
+ {"matrix": [4, 6], "x": 94, "y": 60, "flags": 4},
+ {"matrix": [4, 10], "x": 147, "y": 60, "flags": 1},
+ {"matrix": [4, 11], "x": 162, "y": 60, "flags": 1},
+ {"matrix": [4, 12], "x": 176, "y": 60, "flags": 1},
+ {"matrix": [4, 13], "x": 195, "y": 64, "flags": 1},
+ {"matrix": [2, 12], "x": 209, "y": 64, "flags": 1},
+ {"matrix": [4, 14], "x": 224, "y": 64, "flags": 1}
+
+ ]
+ },
"layouts": {
"LAYOUT_ansi_67": {
"layout": [
diff --git a/keyboards/keychron/q2/ansi_encoder/rules.mk b/keyboards/keychron/q2/ansi_encoder/rules.mk
index b294cf950e..7ff128fa69 100644
--- a/keyboards/keychron/q2/ansi_encoder/rules.mk
+++ b/keyboards/keychron/q2/ansi_encoder/rules.mk
@@ -1,18 +1 @@
-# Build Options
-# change yes to no to disable
-#
-BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite
-MOUSEKEY_ENABLE = yes # Mouse keys
-EXTRAKEY_ENABLE = yes # Audio control and System control
-CONSOLE_ENABLE = no # Console for debug
-COMMAND_ENABLE = no # Commands for debug and configuration
-NKRO_ENABLE = yes # Enable N-Key Rollover
-BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
-RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
-AUDIO_ENABLE = no # Audio output
-ENCODER_ENABLE = yes # Enable Encoder
-DIP_SWITCH_ENABLE = yes
-RGB_MATRIX_ENABLE = yes
-EEPROM_DRIVER = wear_leveling
-WEAR_LEVELING_DRIVER = embedded_flash
-
+# This file intentionally left blank \ No newline at end of file
diff --git a/keyboards/keychron/q2/config.h b/keyboards/keychron/q2/config.h
index 63e31cd01d..831612326b 100644
--- a/keyboards/keychron/q2/config.h
+++ b/keyboards/keychron/q2/config.h
@@ -22,12 +22,10 @@
#define DIP_SWITCH_MATRIX_GRID { {4, 4} }
/* RGB Matrix Driver Configuration */
-#define DRIVER_COUNT 2
-#define DRIVER_ADDR_1 0b1110111
-#define DRIVER_ADDR_2 0b1110100
+#define SNLED27351_I2C_ADDRESS_1 SNLED27351_I2C_ADDRESS_VDDIO
+#define SNLED27351_I2C_ADDRESS_2 SNLED27351_I2C_ADDRESS_GND
-/* Scan phase of led driver set as MSKPHASE_9CHANNEL(defined as 0x03 in CKLED2001.h) */
-#define PHASE_CHANNEL MSKPHASE_9CHANNEL
+#define SNLED27351_PHASE_CHANNEL SNLED27351_SCAN_PHASE_9_CHANNEL
/* Disable DIP switch in matrix data */
#define MATRIX_MASKED
@@ -35,61 +33,8 @@
/* turn off effects when suspended */
#define RGB_DISABLE_WHEN_USB_SUSPENDED
-/* Use 5 dynamic keymap layers */
-#define DYNAMIC_KEYMAP_LAYER_COUNT 5
-
-/* EEPROM Driver Configuration */
-#define WEAR_LEVELING_LOGICAL_SIZE 2048
-#define WEAR_LEVELING_BACKING_SIZE (WEAR_LEVELING_LOGICAL_SIZE * 2)
-
-// RGB Matrix Animation modes. Explicitly enabled
-// For full list of effects, see:
-// https://docs.qmk.fm/#/feature_rgb_matrix?id=rgb-matrix-effects
-// #define ENABLE_RGB_MATRIX_ALPHAS_MODS
-// #define ENABLE_RGB_MATRIX_GRADIENT_UP_DOWN
-// #define ENABLE_RGB_MATRIX_GRADIENT_LEFT_RIGHT
-#define ENABLE_RGB_MATRIX_BREATHING
-// #define ENABLE_RGB_MATRIX_BAND_SAT
-// #define ENABLE_RGB_MATRIX_BAND_VAL
-// #define ENABLE_RGB_MATRIX_BAND_PINWHEEL_SAT
-// #define ENABLE_RGB_MATRIX_BAND_PINWHEEL_VAL
-// #define ENABLE_RGB_MATRIX_BAND_SPIRAL_SAT
-#define ENABLE_RGB_MATRIX_BAND_SPIRAL_VAL
-#define ENABLE_RGB_MATRIX_CYCLE_ALL
-#define ENABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT
-#define ENABLE_RGB_MATRIX_CYCLE_UP_DOWN
-#define ENABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON
-#define ENABLE_RGB_MATRIX_CYCLE_OUT_IN
-#define ENABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL
-#define ENABLE_RGB_MATRIX_CYCLE_PINWHEEL
-#define ENABLE_RGB_MATRIX_CYCLE_SPIRAL
-#define ENABLE_RGB_MATRIX_DUAL_BEACON
-#define ENABLE_RGB_MATRIX_RAINBOW_BEACON
-// #define ENABLE_RGB_MATRIX_RAINBOW_PINWHEELS
-// #define ENABLE_RGB_MATRIX_RAINDROPS
-#define ENABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS
-// #define ENABLE_RGB_MATRIX_HUE_BREATHING
-// #define ENABLE_RGB_MATRIX_HUE_PENDULUM
-// #define ENABLE_RGB_MATRIX_HUE_WAVE
-#define ENABLE_RGB_MATRIX_PIXEL_RAIN
-// #define ENABLE_RGB_MATRIX_PIXEL_FLOW
-// #define ENABLE_RGB_MATRIX_PIXEL_FRACTAL
-// enabled only if RGB_MATRIX_FRAMEBUFFER_EFFECTS is defined
-#define ENABLE_RGB_MATRIX_TYPING_HEATMAP
-#define ENABLE_RGB_MATRIX_DIGITAL_RAIN
-// enabled only of RGB_MATRIX_KEYPRESSES or RGB_MATRIX_KEYRELEASES is defined
-#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE
-// #define ENABLE_RGB_MATRIX_SOLID_REACTIVE
-// #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE
-#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE
-// #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS
-// #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS
-// #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS
-#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS
-#define ENABLE_RGB_MATRIX_SPLASH
-// #define ENABLE_RGB_MATRIX_MULTISPLASH
-#define ENABLE_RGB_MATRIX_SOLID_SPLASH
-// #define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH
+/* Encoder Configuration*/
+#define ENCODER_DEFAULT_POS 0x3
#define RGB_MATRIX_KEYPRESSES
#define RGB_MATRIX_FRAMEBUFFER_EFFECTS
diff --git a/keyboards/keychron/q2/info.json b/keyboards/keychron/q2/info.json
new file mode 100644
index 0000000000..47d9aa83b1
--- /dev/null
+++ b/keyboards/keychron/q2/info.json
@@ -0,0 +1,60 @@
+{
+ "keyboard_name": "Keychron Q2",
+ "manufacturer": "Keychron",
+ "maintainer": "lalalademaxiya1",
+ "bootloader": "stm32-dfu",
+ "diode_direction": "ROW2COL",
+ "dynamic_keymap": {
+ "layer_count": 5
+ },
+ "eeprom": {
+ "wear_leveling": {
+ "backing_size": 4096
+ }
+ },
+ "features": {
+ "bootmagic": true,
+ "command": false,
+ "console": false,
+ "dip_switch": true,
+ "extrakey": true,
+ "mousekey": true,
+ "nkro": true,
+ "rgb_matrix": true
+ },
+ "matrix_pins": {
+ "cols": ["C14", "C15", "A0", "A1", "A2", "A3", "A4", "A5", "A6", "A7", "B0", "B1", "A8", "A9", "H3"],
+ "rows": ["B4", "B3", "A15", "A14", "A13"]
+ },
+ "processor": "STM32L432",
+ "rgb_matrix": {
+ "animations": {
+ "band_spiral_val": true,
+ "breathing": true,
+ "cycle_all": true,
+ "cycle_left_right": true,
+ "cycle_out_in": true,
+ "cycle_out_in_dual": true,
+ "cycle_pinwheel": true,
+ "cycle_spiral": true,
+ "cycle_up_down": true,
+ "digital_rain": true,
+ "dual_beacon": true,
+ "jellybean_raindrops": true,
+ "pixel_rain": true,
+ "rainbow_beacon": true,
+ "rainbow_moving_chevron": true,
+ "solid_reactive_multinexus": true,
+ "solid_reactive_multiwide": true,
+ "solid_reactive_simple": true,
+ "solid_splash": true,
+ "splash": true,
+ "typing_heatmap": true
+ },
+ "driver": "snled27351"
+ },
+ "url": "https://github.com/Keychron",
+ "usb": {
+ "vid": "0x3434"
+ }
+} \ No newline at end of file
diff --git a/keyboards/keychron/q2/iso/config.h b/keyboards/keychron/q2/iso/config.h
index 35a86d5839..b463f7886e 100644
--- a/keyboards/keychron/q2/iso/config.h
+++ b/keyboards/keychron/q2/iso/config.h
@@ -17,6 +17,7 @@
#pragma once
/* RGB Matrix Configuration */
-#define DRIVER_1_LED_TOTAL 34
-#define DRIVER_2_LED_TOTAL 34
-#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL)
+#define RGB_MATRIX_LED_COUNT 68
+
+/* Enable caps-lock LED */
+#define CAPS_LOCK_LED_INDEX 29 \ No newline at end of file
diff --git a/keyboards/keychron/q2/iso/info.json b/keyboards/keychron/q2/iso/info.json
index e3cad79b14..8a2023320d 100644
--- a/keyboards/keychron/q2/iso/info.json
+++ b/keyboards/keychron/q2/iso/info.json
@@ -1,23 +1,85 @@
{
- "keyboard_name": "Q2",
- "manufacturer": "Keychron",
- "url": "https://github.com/Keychron",
- "maintainer": "lalalademaxiya1",
"usb": {
- "vid": "0x3434",
"pid": "0x0112",
"device_version": "1.0.0"
},
"rgb_matrix": {
- "driver": "ckled2001"
- },
- "matrix_pins": {
- "cols": ["C14", "C15", "A0", "A1", "A2", "A3", "A4", "A5", "A6", "A7", "B0", "B1", "A8", "A9", "H3"],
- "rows": ["B4", "B3", "A15", "A14", "A13"]
+ "layout": [
+ {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1},
+ {"matrix": [0, 1], "x": 15, "y": 0, "flags": 4},
+ {"matrix": [0, 2], "x": 29, "y": 0, "flags": 4},
+ {"matrix": [0, 3], "x": 44, "y": 0, "flags": 4},
+ {"matrix": [0, 4], "x": 59, "y": 0, "flags": 4},
+ {"matrix": [0, 5], "x": 73, "y": 0, "flags": 4},
+ {"matrix": [0, 6], "x": 88, "y": 0, "flags": 4},
+ {"matrix": [0, 7], "x": 103, "y": 0, "flags": 4},
+ {"matrix": [0, 8], "x": 118, "y": 0, "flags": 4},
+ {"matrix": [0, 9], "x": 132, "y": 0, "flags": 4},
+ {"matrix": [0, 10], "x": 147, "y": 0, "flags": 4},
+ {"matrix": [0, 11], "x": 162, "y": 0, "flags": 4},
+ {"matrix": [0, 12], "x": 176, "y": 0, "flags": 4},
+ {"matrix": [0, 13], "x": 198, "y": 0, "flags": 1},
+ {"matrix": [0, 14], "x": 224, "y": 0, "flags": 1},
+
+ {"matrix": [1, 0], "x": 4, "y": 15, "flags": 1},
+ {"matrix": [1, 1], "x": 22, "y": 15, "flags": 4},
+ {"matrix": [1, 2], "x": 37, "y": 15, "flags": 4},
+ {"matrix": [1, 3], "x": 51, "y": 15, "flags": 4},
+ {"matrix": [1, 4], "x": 66, "y": 15, "flags": 4},
+ {"matrix": [1, 5], "x": 81, "y": 15, "flags": 4},
+ {"matrix": [1, 6], "x": 95, "y": 15, "flags": 4},
+ {"matrix": [1, 7], "x": 110, "y": 15, "flags": 4},
+ {"matrix": [1, 8], "x": 125, "y": 15, "flags": 4},
+ {"matrix": [1, 9], "x": 140, "y": 15, "flags": 4},
+ {"matrix": [1, 10], "x": 154, "y": 15, "flags": 4},
+ {"matrix": [1, 11], "x": 169, "y": 15, "flags": 4},
+ {"matrix": [1, 12], "x": 184, "y": 15, "flags": 4},
+ {"matrix": [1, 14], "x": 224, "y": 15, "flags": 1},
+
+ {"matrix": [2, 0], "x": 6, "y": 30, "flags": 1},
+ {"matrix": [2, 1], "x": 26, "y": 30, "flags": 4},
+ {"matrix": [2, 2], "x": 40, "y": 30, "flags": 4},
+ {"matrix": [2, 3], "x": 55, "y": 30, "flags": 4},
+ {"matrix": [2, 4], "x": 70, "y": 30, "flags": 4},
+ {"matrix": [2, 5], "x": 84, "y": 30, "flags": 4},
+ {"matrix": [2, 6], "x": 99, "y": 30, "flags": 4},
+ {"matrix": [2, 7], "x": 114, "y": 30, "flags": 4},
+ {"matrix": [2, 8], "x": 129, "y": 30, "flags": 4},
+ {"matrix": [2, 9], "x": 143, "y": 30, "flags": 4},
+ {"matrix": [2, 10], "x": 158, "y": 30, "flags": 4},
+ {"matrix": [2, 11], "x": 173, "y": 30, "flags": 4},
+ {"matrix": [2, 13], "x": 187, "y": 30, "flags": 4},
+ {"matrix": [1, 13], "x": 204, "y": 23, "flags": 1},
+ {"matrix": [2, 14], "x": 224, "y": 30, "flags": 1},
+
+ {"matrix": [3, 0], "x": 9, "y": 45, "flags": 1},
+ {"matrix": [3, 1], "x": 18, "y": 45, "flags": 4},
+ {"matrix": [3, 2], "x": 33, "y": 45, "flags": 4},
+ {"matrix": [3, 3], "x": 48, "y": 45, "flags": 4},
+ {"matrix": [3, 4], "x": 62, "y": 45, "flags": 4},
+ {"matrix": [3, 5], "x": 77, "y": 45, "flags": 4},
+ {"matrix": [3, 6], "x": 92, "y": 45, "flags": 4},
+ {"matrix": [3, 7], "x": 106, "y": 45, "flags": 4},
+ {"matrix": [3, 8], "x": 121, "y": 45, "flags": 4},
+ {"matrix": [3, 9], "x": 136, "y": 45, "flags": 4},
+ {"matrix": [3, 10], "x": 151, "y": 45, "flags": 4},
+ {"matrix": [3, 11], "x": 165, "y": 45, "flags": 4},
+ {"matrix": [3, 13], "x": 185, "y": 45, "flags": 1},
+ {"matrix": [3, 14], "x": 209, "y": 49, "flags": 1},
+
+ {"matrix": [4, 0], "x": 2, "y": 60, "flags": 1},
+ {"matrix": [4, 1], "x": 20, "y": 60, "flags": 1},
+ {"matrix": [4, 2], "x": 39, "y": 60, "flags": 1},
+ {"matrix": [4, 6], "x": 94, "y": 60, "flags": 4},
+ {"matrix": [4, 10], "x": 147, "y": 60, "flags": 1},
+ {"matrix": [4, 11], "x": 162, "y": 60, "flags": 1},
+ {"matrix": [4, 12], "x": 176, "y": 60, "flags": 1},
+ {"matrix": [4, 13], "x": 195, "y": 64, "flags": 1},
+ {"matrix": [2, 12], "x": 209, "y": 64, "flags": 1},
+ {"matrix": [4, 14], "x": 224, "y": 64, "flags": 1}
+
+ ]
},
- "diode_direction": "ROW2COL",
- "processor": "STM32L432",
- "bootloader": "stm32-dfu",
"layouts": {
"LAYOUT_iso_68": {
"layout": [
diff --git a/keyboards/keychron/q2/iso/iso.c b/keyboards/keychron/q2/iso/iso.c
index 1f2c76468e..a54c90bc4b 100644
--- a/keyboards/keychron/q2/iso/iso.c
+++ b/keyboards/keychron/q2/iso/iso.c
@@ -17,8 +17,8 @@
#include "quantum.h"
#ifdef RGB_MATRIX_ENABLE
-const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = {
-/* Refer to IS31 manual for these locations
+const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = {
+/* Refer to SNLED27351 manual for these locations
* driver
* | R location
* | | G location
@@ -98,33 +98,4 @@ const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = {
{1, F_16, D_16, E_16}
};
-#define __ NO_LED
-
-led_config_t g_led_config = {
- {
- // Key Matrix to LED Index
- { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 },
- { 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 42, 28 },
- { 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 66, 41, 43 },
- { 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, __, 56, 57 },
- { 58, 59, 60, __, __, __, 61, __, __, __, 62, 63, 64, 65, 67 }
- },
- {
- // LED Index to Physical Position
- {0,0}, {15,0}, {29,0}, {44,0}, {59,0}, {73,0}, {88,0}, {103,0}, {118,0}, {132,0}, {147,0}, {162,0}, {176,0}, {198,0}, {224,0},
- {4,15}, {22,15}, {37,15}, {51,15}, {66,15}, {81,15}, {95,15}, {110,15}, {125,15}, {140,15}, {154,15}, {169,15}, {184,15}, {224,15},
- {6,30}, {26,30}, {40,30}, {55,30}, {70,30}, {84,30}, {99,30}, {114,30}, {129,30}, {143,30}, {158,30}, {173,30}, {187,30}, {204,23}, {224,30},
- {2,45}, {18,45}, {33,45}, {48,45}, {62,45}, {77,45}, {92,45}, {106,45}, {121,45}, {136,45}, {151,45}, {165,45}, {185,45}, {209,49},
- {2,60}, {20,60}, {39,60}, {94,60}, {147,60}, {162,60}, {176,60}, {195,64}, {209,64}, {224,64}
- },
- {
- // RGB LED Index to Flag
- 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1,
- 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
- 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1,
- 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1,
- 1, 1, 1, 4, 1, 1, 1, 1, 1, 1
- }
-};
-
#endif // RGB_MATRIX_ENABLE
diff --git a/keyboards/keychron/q2/iso/rules.mk b/keyboards/keychron/q2/iso/rules.mk
index b3de962291..7ff128fa69 100644
--- a/keyboards/keychron/q2/iso/rules.mk
+++ b/keyboards/keychron/q2/iso/rules.mk
@@ -1,18 +1 @@
-# Build Options
-# change yes to no to disable
-#
-BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite
-MOUSEKEY_ENABLE = no # Mouse keys
-EXTRAKEY_ENABLE = yes # Audio control and System control
-CONSOLE_ENABLE = no # Console for debug
-COMMAND_ENABLE = no # Commands for debug and configuration
-NKRO_ENABLE = yes # Enable N-Key Rollover
-BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
-RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
-AUDIO_ENABLE = no # Audio output
-ENCODER_ENABLE = no # Enable Encoder
-DIP_SWITCH_ENABLE = yes
-RGB_MATRIX_ENABLE = yes
-EEPROM_DRIVER = wear_leveling
-WEAR_LEVELING_DRIVER = embedded_flash
-
+# This file intentionally left blank \ No newline at end of file
diff --git a/keyboards/keychron/q2/iso_encoder/config.h b/keyboards/keychron/q2/iso_encoder/config.h
index 376b92b6fa..b463f7886e 100644
--- a/keyboards/keychron/q2/iso_encoder/config.h
+++ b/keyboards/keychron/q2/iso_encoder/config.h
@@ -17,9 +17,7 @@
#pragma once
/* RGB Matrix Configuration */
-#define DRIVER_1_LED_TOTAL 34
-#define DRIVER_2_LED_TOTAL 34
-#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL)
+#define RGB_MATRIX_LED_COUNT 68
-/* Encoder used pins */
-#define ENCODER_DEFAULT_POS 0x3
+/* Enable caps-lock LED */
+#define CAPS_LOCK_LED_INDEX 29 \ No newline at end of file
diff --git a/keyboards/keychron/q2/iso_encoder/info.json b/keyboards/keychron/q2/iso_encoder/info.json
index 5030e6be42..b828c88931 100644
--- a/keyboards/keychron/q2/iso_encoder/info.json
+++ b/keyboards/keychron/q2/iso_encoder/info.json
@@ -1,28 +1,91 @@
{
- "keyboard_name": "Q2",
- "manufacturer": "Keychron",
- "url": "https://github.com/Keychron",
- "maintainer": "lalalademaxiya1",
"usb": {
- "vid": "0x3434",
"pid": "0x0113",
"device_version": "1.0.0"
},
- "rgb_matrix": {
- "driver": "ckled2001"
- },
- "matrix_pins": {
- "cols": ["C14", "C15", "A0", "A1", "A2", "A3", "A4", "A5", "A6", "A7", "B0", "B1", "A8", "A9", "H3"],
- "rows": ["B4", "B3", "A15", "A14", "A13"]
- },
- "diode_direction": "ROW2COL",
"encoder": {
+ "enabled": true,
"rotary": [
{"pin_a": "A10", "pin_b": "B5"}
]
},
- "processor": "STM32L432",
- "bootloader": "stm32-dfu",
+ "rgb_matrix": {
+ "layout": [
+ {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1},
+ {"matrix": [0, 1], "x": 15, "y": 0, "flags": 4},
+ {"matrix": [0, 2], "x": 29, "y": 0, "flags": 4},
+ {"matrix": [0, 3], "x": 44, "y": 0, "flags": 4},
+ {"matrix": [0, 4], "x": 59, "y": 0, "flags": 4},
+ {"matrix": [0, 5], "x": 73, "y": 0, "flags": 4},
+ {"matrix": [0, 6], "x": 88, "y": 0, "flags": 4},
+ {"matrix": [0, 7], "x": 103, "y": 0, "flags": 4},
+ {"matrix": [0, 8], "x": 118, "y": 0, "flags": 4},
+ {"matrix": [0, 9], "x": 132, "y": 0, "flags": 4},
+ {"matrix": [0, 10], "x": 147, "y": 0, "flags": 4},
+ {"matrix": [0, 11], "x": 162, "y": 0, "flags": 4},
+ {"matrix": [0, 12], "x": 176, "y": 0, "flags": 4},
+ {"matrix": [0, 13], "x": 198, "y": 0, "flags": 1},
+ {"matrix": [0, 14], "x": 224, "y": 0, "flags": 1},
+
+ {"matrix": [1, 0], "x": 4, "y": 15, "flags": 1},
+ {"matrix": [1, 1], "x": 22, "y": 15, "flags": 4},
+ {"matrix": [1, 2], "x": 37, "y": 15, "flags": 4},
+ {"matrix": [1, 3], "x": 51, "y": 15, "flags": 4},
+ {"matrix": [1, 4], "x": 66, "y": 15, "flags": 4},
+ {"matrix": [1, 5], "x": 81, "y": 15, "flags": 4},
+ {"matrix": [1, 6], "x": 95, "y": 15, "flags": 4},
+ {"matrix": [1, 7], "x": 110, "y": 15, "flags": 4},
+ {"matrix": [1, 8], "x": 125, "y": 15, "flags": 4},
+ {"matrix": [1, 9], "x": 140, "y": 15, "flags": 4},
+ {"matrix": [1, 10], "x": 154, "y": 15, "flags": 4},
+ {"matrix": [1, 11], "x": 169, "y": 15, "flags": 4},
+ {"matrix": [1, 12], "x": 184, "y": 15, "flags": 4},
+ {"matrix": [1, 14], "x": 224, "y": 15, "flags": 1},
+
+ {"matrix": [2, 0], "x": 6, "y": 30, "flags": 1},
+ {"matrix": [2, 1], "x": 26, "y": 30, "flags": 4},
+ {"matrix": [2, 2], "x": 40, "y": 30, "flags": 4},
+ {"matrix": [2, 3], "x": 55, "y": 30, "flags": 4},
+ {"matrix": [2, 4], "x": 70, "y": 30, "flags": 4},
+ {"matrix": [2, 5], "x": 84, "y": 30, "flags": 4},
+ {"matrix": [2, 6], "x": 99, "y": 30, "flags": 4},
+ {"matrix": [2, 7], "x": 114, "y": 30, "flags": 4},
+ {"matrix": [2, 8], "x": 129, "y": 30, "flags": 4},
+ {"matrix": [2, 9], "x": 143, "y": 30, "flags": 4},
+ {"matrix": [2, 10], "x": 158, "y": 30, "flags": 4},
+ {"matrix": [2, 11], "x": 173, "y": 30, "flags": 4},
+ {"matrix": [2, 13], "x": 187, "y": 30, "flags": 4},
+ {"matrix": [1, 13], "x": 204, "y": 23, "flags": 1},
+ {"matrix": [2, 14], "x": 224, "y": 30, "flags": 1},
+
+ {"matrix": [3, 0], "x": 9, "y": 45, "flags": 1},
+ {"matrix": [3, 1], "x": 18, "y": 45, "flags": 4},
+ {"matrix": [3, 2], "x": 33, "y": 45, "flags": 4},
+ {"matrix": [3, 3], "x": 48, "y": 45, "flags": 4},
+ {"matrix": [3, 4], "x": 62, "y": 45, "flags": 4},
+ {"matrix": [3, 5], "x": 77, "y": 45, "flags": 4},
+ {"matrix": [3, 6], "x": 92, "y": 45, "flags": 4},
+ {"matrix": [3, 7], "x": 106, "y": 45, "flags": 4},
+ {"matrix": [3, 8], "x": 121, "y": 45, "flags": 4},
+ {"matrix": [3, 9], "x": 136, "y": 45, "flags": 4},
+ {"matrix": [3, 10], "x": 151, "y": 45, "flags": 4},
+ {"matrix": [3, 11], "x": 165, "y": 45, "flags": 4},
+ {"matrix": [3, 13], "x": 185, "y": 45, "flags": 1},
+ {"matrix": [3, 14], "x": 209, "y": 49, "flags": 1},
+
+ {"matrix": [4, 0], "x": 2, "y": 60, "flags": 1},
+ {"matrix": [4, 1], "x": 20, "y": 60, "flags": 1},
+ {"matrix": [4, 2], "x": 39, "y": 60, "flags": 1},
+ {"matrix": [4, 6], "x": 94, "y": 60, "flags": 4},
+ {"matrix": [4, 10], "x": 147, "y": 60, "flags": 1},
+ {"matrix": [4, 11], "x": 162, "y": 60, "flags": 1},
+ {"matrix": [4, 12], "x": 176, "y": 60, "flags": 1},
+ {"matrix": [4, 13], "x": 195, "y": 64, "flags": 1},
+ {"matrix": [2, 12], "x": 209, "y": 64, "flags": 1},
+ {"matrix": [4, 14], "x": 224, "y": 64, "flags": 1}
+
+ ]
+ },
"layouts": {
"LAYOUT_iso_68": {
"layout": [
diff --git a/keyboards/keychron/q2/iso_encoder/iso_encoder.c b/keyboards/keychron/q2/iso_encoder/iso_encoder.c
index 1f2c76468e..a54c90bc4b 100644
--- a/keyboards/keychron/q2/iso_encoder/iso_encoder.c
+++ b/keyboards/keychron/q2/iso_encoder/iso_encoder.c
@@ -17,8 +17,8 @@
#include "quantum.h"
#ifdef RGB_MATRIX_ENABLE
-const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = {
-/* Refer to IS31 manual for these locations
+const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = {
+/* Refer to SNLED27351 manual for these locations
* driver
* | R location
* | | G location
@@ -98,33 +98,4 @@ const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = {
{1, F_16, D_16, E_16}
};
-#define __ NO_LED
-
-led_config_t g_led_config = {
- {
- // Key Matrix to LED Index
- { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 },
- { 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 42, 28 },
- { 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 66, 41, 43 },
- { 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, __, 56, 57 },
- { 58, 59, 60, __, __, __, 61, __, __, __, 62, 63, 64, 65, 67 }
- },
- {
- // LED Index to Physical Position
- {0,0}, {15,0}, {29,0}, {44,0}, {59,0}, {73,0}, {88,0}, {103,0}, {118,0}, {132,0}, {147,0}, {162,0}, {176,0}, {198,0}, {224,0},
- {4,15}, {22,15}, {37,15}, {51,15}, {66,15}, {81,15}, {95,15}, {110,15}, {125,15}, {140,15}, {154,15}, {169,15}, {184,15}, {224,15},
- {6,30}, {26,30}, {40,30}, {55,30}, {70,30}, {84,30}, {99,30}, {114,30}, {129,30}, {143,30}, {158,30}, {173,30}, {187,30}, {204,23}, {224,30},
- {2,45}, {18,45}, {33,45}, {48,45}, {62,45}, {77,45}, {92,45}, {106,45}, {121,45}, {136,45}, {151,45}, {165,45}, {185,45}, {209,49},
- {2,60}, {20,60}, {39,60}, {94,60}, {147,60}, {162,60}, {176,60}, {195,64}, {209,64}, {224,64}
- },
- {
- // RGB LED Index to Flag
- 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1,
- 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
- 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1,
- 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1,
- 1, 1, 1, 4, 1, 1, 1, 1, 1, 1
- }
-};
-
#endif // RGB_MATRIX_ENABLE
diff --git a/keyboards/keychron/q2/iso_encoder/keymaps/dhertz/keymap.c b/keyboards/keychron/q2/iso_encoder/keymaps/dhertz/keymap.c
deleted file mode 100644
index 0d4f7e6a22..0000000000
--- a/keyboards/keychron/q2/iso_encoder/keymaps/dhertz/keymap.c
+++ /dev/null
@@ -1,95 +0,0 @@
-// Copyright 2022 Dan Hertz (@dhertz)
-// SPDX-License-Identifier: GPL-3.0
-
-#include QMK_KEYBOARD_H
-#include "dhertz.h"
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- /* Layer 0: Default Layer
- * ,---------------------------------------------------------------.
- * |Esc| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =| Backsp|( )|
- * |---------------------------------------------------------------|
- * |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]|Enter|Del|
- * |------------------------------------------------------` |---|
- * |SrCtl | A| S| D| F| G| H| J| K| L| ;| '| \| |Hom|
- * |---------------------------------------------------------------|
- * |Shif| #| Z| X| C| V| B| N| M| ,| .| /|Shift |Up | |
- * |---------------------------------------------------------------|
- * |NcCtl| Alt| CTab| LyrSpc |CGv|Alt|CSL|Lef|Dow|Rig|
- * `---------------------------------------------------------------'
- */
- [0] = LAYOUT_iso_68(
- KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_MUTE,
- 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_DEL,
- SRCH_CTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, KC_HOME,
- KC_LSFT, HSH_TLD, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP,
- NC_CTL, KC_LALT, CMD_TAB_CMD, LYR_SPC, CMD_GRV_CMD, KC_RALT, CMD_SFT_ALT_A, KC_LEFT, KC_DOWN, KC_RIGHT
- ),
- /* Layer 1: Special
- * ,---------------------------------------------------------------.
- * | §| F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12| |( )|
- * |---------------------------------------------------------------|
- * | | | | | | | | | | | | | | | |
- * |------------------------------------------------------` |---|
- * | | | | | | | | | |CSL| | | `| | |
- * |---------------------------------------------------------------|
- * | | `| | |CAC| | | | | | | | |PgU| |
- * |---------------------------------------------------------------|
- * | | | | | | | |Hom|PgD|End|
- * `---------------------------------------------------------------'
- */
- [1] = LAYOUT_iso_68(
- KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F10, KC_F11, KC_TRNS, CMD_SFT_A,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, CMD_SFT_L, KC_TRNS, KC_TRNS, KC_NUBS, KC_TRNS, KC_END,
- KC_TRNS, KC_NUBS, KC_TRNS, KC_TRNS, CMD_ALT_C, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PGUP,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_PGDN, KC_END
- ),
-};
-
-void keyboard_post_init_user(void) {
- rgb_matrix_mode(RGB_MATRIX_NONE);
- rgb_matrix_set_color_all(RGB_BLACK);
-}
-
-uint32_t cancel_cmd(uint32_t trigger_time, void *cb_arg) {
- if (get_highest_layer(layer_state|default_layer_state) > 0) {
- return 20;
- }
- unregister_code(KC_LCMD);
- return 0;
-}
-
-bool encoder_update_user(uint8_t index, bool clockwise) {
- if (get_highest_layer(layer_state|default_layer_state) == 0) {
- if (clockwise) {
- tap_code_delay(KC_VOLU, 10);
- } else {
- tap_code_delay(KC_VOLD, 10);
- }
- } else {
- if ((get_mods() & MOD_BIT(KC_LCMD)) != MOD_BIT(KC_LCMD)) {
- register_code(KC_LCMD);
- defer_exec(20, cancel_cmd, NULL);
- }
- if (clockwise) {
- tap_code(KC_TAB);
- } else {
- tap_code16(S(KC_TAB));
- }
- }
- return false;
-}
-
-bool rgb_matrix_indicators_user(void) {
- switch(get_highest_layer(layer_state|default_layer_state)) {
- case 1:
- rgb_matrix_set_color_all(RGB_BLACK);
- rgb_matrix_set_color_all(25, 25, 112);
- break;
- default:
- rgb_matrix_set_color_all(RGB_BLACK);
- break;
- }
- return false;
-}
diff --git a/keyboards/keychron/q2/iso_encoder/keymaps/dhertz/rules.mk b/keyboards/keychron/q2/iso_encoder/keymaps/dhertz/rules.mk
deleted file mode 100644
index 199bad85f3..0000000000
--- a/keyboards/keychron/q2/iso_encoder/keymaps/dhertz/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-DEFERRED_EXEC_ENABLE = yes
diff --git a/keyboards/keychron/q2/iso_encoder/rules.mk b/keyboards/keychron/q2/iso_encoder/rules.mk
index aba76c0944..7ff128fa69 100644
--- a/keyboards/keychron/q2/iso_encoder/rules.mk
+++ b/keyboards/keychron/q2/iso_encoder/rules.mk
@@ -1,18 +1 @@
-# Build Options
-# change yes to no to disable
-#
-BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite
-MOUSEKEY_ENABLE = no # Mouse keys
-EXTRAKEY_ENABLE = yes # Audio control and System control
-CONSOLE_ENABLE = no # Console for debug
-COMMAND_ENABLE = no # Commands for debug and configuration
-NKRO_ENABLE = yes # Enable N-Key Rollover
-BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
-RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
-AUDIO_ENABLE = no # Audio output
-ENCODER_ENABLE = yes # Enable Encoder
-DIP_SWITCH_ENABLE = yes
-RGB_MATRIX_ENABLE = yes
-EEPROM_DRIVER = wear_leveling
-WEAR_LEVELING_DRIVER = embedded_flash
-
+# This file intentionally left blank \ No newline at end of file
diff --git a/keyboards/keychron/q2/jis/config.h b/keyboards/keychron/q2/jis/config.h
index 2d83933f9a..0d811e0845 100644
--- a/keyboards/keychron/q2/jis/config.h
+++ b/keyboards/keychron/q2/jis/config.h
@@ -17,11 +17,9 @@
#pragma once
/* RGB Matrix Configuration */
-#define DRIVER_1_LED_TOTAL 35
-#define DRIVER_2_LED_TOTAL 36
-#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL)
+#define RGB_MATRIX_LED_COUNT 71
-#define CKLED2001_CURRENT_TUNE { 0xC0, 0xC0, 0x5D, 0xC0, 0xC0, 0x5D, 0xC0, 0xC0, 0x5D, 0xC0, 0xC0, 0x5D }
+#define SNLED27351_CURRENT_TUNE { 0xC0, 0xC0, 0x5D, 0xC0, 0xC0, 0x5D, 0xC0, 0xC0, 0x5D, 0xC0, 0xC0, 0x5D }
/* Enable caps-lock LED */
#define CAPS_LOCK_LED_INDEX 30
diff --git a/keyboards/keychron/q2/jis/info.json b/keyboards/keychron/q2/jis/info.json
index d0af24b29d..834b89332e 100644
--- a/keyboards/keychron/q2/jis/info.json
+++ b/keyboards/keychron/q2/jis/info.json
@@ -1,23 +1,86 @@
{
- "keyboard_name": "Keychron Q2",
- "manufacturer": "Keychron",
- "url": "https://github.com/Keychron",
- "maintainer": "lalalademaxiya1",
"usb": {
- "vid": "0x3434",
"pid": "0x0114",
"device_version": "1.0.0"
},
"rgb_matrix": {
- "driver": "ckled2001"
- },
- "matrix_pins": {
- "cols": ["C14", "C15", "A0", "A1", "A2", "A3", "A4", "A5", "A6", "A7", "B0", "B1", "A8", "A9", "H3"],
- "rows": ["B4", "B3", "A15", "A14", "A13"]
+ "layout": [
+ {"matrix": [0, 0], "x": 0, "y": 4, "flags": 1},
+ {"matrix": [0, 1], "x": 15, "y": 4, "flags": 4},
+ {"matrix": [0, 2], "x": 29, "y": 4, "flags": 4},
+ {"matrix": [0, 3], "x": 44, "y": 4, "flags": 4},
+ {"matrix": [0, 4], "x": 59, "y": 4, "flags": 4},
+ {"matrix": [0, 5], "x": 73, "y": 4, "flags": 4},
+ {"matrix": [0, 6], "x": 88, "y": 4, "flags": 4},
+ {"matrix": [0, 7], "x": 103, "y": 4, "flags": 4},
+ {"matrix": [0, 8], "x": 117, "y": 4, "flags": 4},
+ {"matrix": [0, 9], "x": 132, "y": 4, "flags": 4},
+ {"matrix": [0, 10], "x": 146, "y": 4, "flags": 4},
+ {"matrix": [0, 11], "x": 161, "y": 4, "flags": 4},
+ {"matrix": [0, 12], "x": 176, "y": 4, "flags": 4},
+ {"matrix": [0, 13], "x": 190, "y": 4, "flags": 4},
+ {"matrix": [3, 1], "x": 205, "y": 4, "flags": 1},
+ {"matrix": [0, 14], "x": 224, "y": 0, "flags": 1},
+
+ {"matrix": [1, 0], "x": 4, "y": 19, "flags": 1},
+ {"matrix": [1, 1], "x": 22, "y": 19, "flags": 4},
+ {"matrix": [1, 2], "x": 37, "y": 19, "flags": 4},
+ {"matrix": [1, 3], "x": 51, "y": 19, "flags": 4},
+ {"matrix": [1, 4], "x": 66, "y": 19, "flags": 4},
+ {"matrix": [1, 5], "x": 81, "y": 19, "flags": 4},
+ {"matrix": [1, 6], "x": 95, "y": 19, "flags": 4},
+ {"matrix": [1, 7], "x": 110, "y": 19, "flags": 4},
+ {"matrix": [1, 8], "x": 125, "y": 19, "flags": 4},
+ {"matrix": [1, 9], "x": 139, "y": 19, "flags": 4},
+ {"matrix": [1, 10], "x": 154, "y": 19, "flags": 4},
+ {"matrix": [1, 11], "x": 168, "y": 19, "flags": 4},
+ {"matrix": [1, 12], "x": 183, "y": 19, "flags": 4},
+ {"matrix": [1, 14], "x": 224, "y": 19, "flags": 1},
+
+ {"matrix": [2, 0], "x": 6, "y": 34, "flags": 1},
+ {"matrix": [2, 1], "x": 26, "y": 34, "flags": 4},
+ {"matrix": [2, 2], "x": 40, "y": 34, "flags": 4},
+ {"matrix": [2, 3], "x": 55, "y": 34, "flags": 4},
+ {"matrix": [2, 4], "x": 70, "y": 34, "flags": 4},
+ {"matrix": [2, 5], "x": 84, "y": 34, "flags": 4},
+ {"matrix": [2, 6], "x": 99, "y": 34, "flags": 4},
+ {"matrix": [2, 7], "x": 114, "y": 34, "flags": 4},
+ {"matrix": [2, 8], "x": 128, "y": 34, "flags": 4},
+ {"matrix": [2, 9], "x": 143, "y": 34, "flags": 4},
+ {"matrix": [2, 10], "x": 158, "y": 34, "flags": 4},
+ {"matrix": [2, 11], "x": 172, "y": 34, "flags": 4},
+ {"matrix": [2, 13], "x": 187, "y": 34, "flags": 4},
+ {"matrix": [1, 13], "x": 207, "y": 29, "flags": 1},
+ {"matrix": [2, 14], "x": 224, "y": 34, "flags": 1},
+
+ {"matrix": [3, 0], "x": 9, "y": 49, "flags": 1},
+ {"matrix": [3, 2], "x": 33, "y": 49, "flags": 4},
+ {"matrix": [3, 3], "x": 48, "y": 49, "flags": 4},
+ {"matrix": [3, 4], "x": 62, "y": 49, "flags": 4},
+ {"matrix": [3, 5], "x": 77, "y": 49, "flags": 4},
+ {"matrix": [3, 6], "x": 92, "y": 49, "flags": 4},
+ {"matrix": [3, 7], "x": 106, "y": 49, "flags": 4},
+ {"matrix": [3, 8], "x": 121, "y": 49, "flags": 4},
+ {"matrix": [3, 9], "x": 136, "y": 49, "flags": 4},
+ {"matrix": [3, 10], "x": 150, "y": 49, "flags": 4},
+ {"matrix": [3, 11], "x": 179, "y": 49, "flags": 4},
+ {"matrix": [3, 13], "x": 194, "y": 49, "flags": 1},
+ {"matrix": [3, 14], "x": 209, "y": 49, "flags": 1},
+
+ {"matrix": [4, 0], "x": 2, "y": 64, "flags": 1},
+ {"matrix": [4, 1], "x": 18, "y": 64, "flags": 1},
+ {"matrix": [4, 2], "x": 35, "y": 64, "flags": 1},
+ {"matrix": [4, 3], "x": 51, "y": 64, "flags": 1},
+ {"matrix": [4, 6], "x": 92, "y": 64, "flags": 4},
+ {"matrix": [4, 9], "x": 134, "y": 64, "flags": 1},
+ {"matrix": [4, 10], "x": 150, "y": 64, "flags": 1},
+ {"matrix": [4, 11], "x": 165, "y": 64, "flags": 1},
+ {"matrix": [4, 12], "x": 179, "y": 64, "flags": 1},
+ {"matrix": [4, 13], "x": 194, "y": 64, "flags": 1},
+ {"matrix": [2, 12], "x": 209, "y": 64, "flags": 1},
+ {"matrix": [4, 14], "x": 223, "y": 64, "flags": 1}
+ ]
},
- "diode_direction": "ROW2COL",
- "processor": "STM32L432",
- "bootloader": "stm32-dfu",
"layouts": {
"LAYOUT_jis_71": {
"layout": [
diff --git a/keyboards/keychron/q2/jis/jis.c b/keyboards/keychron/q2/jis/jis.c
index 31ed1edc58..d877e225d9 100644
--- a/keyboards/keychron/q2/jis/jis.c
+++ b/keyboards/keychron/q2/jis/jis.c
@@ -18,8 +18,8 @@
#ifdef RGB_MATRIX_ENABLE
-const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = {
-/* Refer to IS31 manual for these locations
+const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = {
+/* Refer to SNLED27351 manual for these locations
* driver
* | R location
* | | G location
@@ -102,33 +102,4 @@ const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = {
{1, F_16, D_16, E_16}
};
-#define __ NO_LED
-
-led_config_t g_led_config = {
- {
- // Key Matrix to LED Index
- { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 15 },
- { 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 43, 29 },
- { 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 69, 42, 44 },
- { 45, 14, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58 },
- { 59, 60, 61, 62, __, __, 63, __, __, 64, 65, 66, 67, 68, 70 }
- },
- {
- // LED Index to Physical Position
- {0,4}, {15,4}, {29,4}, {44,4}, {59,4}, {73,4}, {88,4}, {103,4}, {117,4}, {132,4}, {146,4}, {161,4}, {176,4}, {190,4}, {205,4}, {224,0},
- {4,19}, {22,19}, {37,19}, {51,19}, {66,19}, {81,19}, {95,19}, {110,19}, {125,19}, {139,19}, {154,19}, {168,19}, {183,19}, {224,19},
- {6,34}, {26,34}, {40,34}, {55,34}, {70,34}, {84,34}, {99,34}, {114,34}, {128,34}, {143,34}, {158,34}, {172,34}, {187,34}, {207,29}, {224,34},
- {9,49}, {33,49}, {48,49}, {62,49}, {77,49}, {92,49}, {106,49}, {121,49}, {136,49}, {150,49}, {165,49}, {179,49}, {194,49}, {209,49},
- {2,64}, {18,64}, {35,64}, {51,64}, {92,64}, {134,64}, {150,64}, {165,64}, {179,64}, {194,64}, {209,64}, {223,64},
- },
- {
- // RGB LED Index to Flag
- 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1,
- 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
- 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1,
- 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1,
- 1, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 1
- }
-};
-
#endif // RGB_MATRIX_ENABLE
diff --git a/keyboards/keychron/q2/jis/rules.mk b/keyboards/keychron/q2/jis/rules.mk
index c37beecb9e..6e7633bfe0 100644
--- a/keyboards/keychron/q2/jis/rules.mk
+++ b/keyboards/keychron/q2/jis/rules.mk
@@ -1,17 +1 @@
-# Build Options
-# change yes to no to disable
-#
-BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite
-MOUSEKEY_ENABLE = yes # Mouse keys
-EXTRAKEY_ENABLE = yes # Audio control and System control
-CONSOLE_ENABLE = no # Console for debug
-COMMAND_ENABLE = no # Commands for debug and configuration
-NKRO_ENABLE = yes # Enable USB N-key Rollover
-BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
-RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
-AUDIO_ENABLE = no # Audio output
-DIP_SWITCH_ENABLE = yes
-RGB_MATRIX_ENABLE = yes
-EEPROM_DRIVER = wear_leveling
-WEAR_LEVELING_DRIVER = embedded_flash
-
+# This file intentionally left blank
diff --git a/keyboards/keychron/q2/jis_encoder/config.h b/keyboards/keychron/q2/jis_encoder/config.h
index 5e7ab55143..0d811e0845 100644
--- a/keyboards/keychron/q2/jis_encoder/config.h
+++ b/keyboards/keychron/q2/jis_encoder/config.h
@@ -17,14 +17,9 @@
#pragma once
/* RGB Matrix Configuration */
-#define DRIVER_1_LED_TOTAL 35
-#define DRIVER_2_LED_TOTAL 36
-#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL)
+#define RGB_MATRIX_LED_COUNT 71
-#define CKLED2001_CURRENT_TUNE { 0xC0, 0xC0, 0x5D, 0xC0, 0xC0, 0x5D, 0xC0, 0xC0, 0x5D, 0xC0, 0xC0, 0x5D }
-
-/* Encoder Configuration */
-#define ENCODER_DEFAULT_POS 0x3
+#define SNLED27351_CURRENT_TUNE { 0xC0, 0xC0, 0x5D, 0xC0, 0xC0, 0x5D, 0xC0, 0xC0, 0x5D, 0xC0, 0xC0, 0x5D }
/* Enable caps-lock LED */
#define CAPS_LOCK_LED_INDEX 30
diff --git a/keyboards/keychron/q2/jis_encoder/info.json b/keyboards/keychron/q2/jis_encoder/info.json
index e409fb63a6..32b691742b 100644
--- a/keyboards/keychron/q2/jis_encoder/info.json
+++ b/keyboards/keychron/q2/jis_encoder/info.json
@@ -1,28 +1,92 @@
{
- "keyboard_name": "Keychron Q2",
- "manufacturer": "Keychron",
- "url": "https://github.com/Keychron",
- "maintainer": "lalalademaxiya1",
"usb": {
- "vid": "0x3434",
"pid": "0x0115",
"device_version": "1.0.0"
},
- "rgb_matrix": {
- "driver": "ckled2001"
- },
- "matrix_pins": {
- "cols": ["C14", "C15", "A0", "A1", "A2", "A3", "A4", "A5", "A6", "A7", "B0", "B1", "A8", "A9", "H3"],
- "rows": ["B4", "B3", "A15", "A14", "A13"]
- },
- "diode_direction": "ROW2COL",
"encoder": {
+ "enabled": true,
"rotary": [
{"pin_a": "A10", "pin_b": "B5"}
]
},
- "processor": "STM32L432",
- "bootloader": "stm32-dfu",
+ "rgb_matrix": {
+ "layout": [
+ {"matrix": [0, 0], "x": 0, "y": 4, "flags": 1},
+ {"matrix": [0, 1], "x": 15, "y": 4, "flags": 4},
+ {"matrix": [0, 2], "x": 29, "y": 4, "flags": 4},
+ {"matrix": [0, 3], "x": 44, "y": 4, "flags": 4},
+ {"matrix": [0, 4], "x": 59, "y": 4, "flags": 4},
+ {"matrix": [0, 5], "x": 73, "y": 4, "flags": 4},
+ {"matrix": [0, 6], "x": 88, "y": 4, "flags": 4},
+ {"matrix": [0, 7], "x": 103, "y": 4, "flags": 4},
+ {"matrix": [0, 8], "x": 117, "y": 4, "flags": 4},
+ {"matrix": [0, 9], "x": 132, "y": 4, "flags": 4},
+ {"matrix": [0, 10], "x": 146, "y": 4, "flags": 4},
+ {"matrix": [0, 11], "x": 161, "y": 4, "flags": 4},
+ {"matrix": [0, 12], "x": 176, "y": 4, "flags": 4},
+ {"matrix": [0, 13], "x": 190, "y": 4, "flags": 4},
+ {"matrix": [3, 1], "x": 205, "y": 4, "flags": 1},
+ {"matrix": [0, 14], "x": 224, "y": 0, "flags": 1},
+
+ {"matrix": [1, 0], "x": 4, "y": 19, "flags": 1},
+ {"matrix": [1, 1], "x": 22, "y": 19, "flags": 4},
+ {"matrix": [1, 2], "x": 37, "y": 19, "flags": 4},
+ {"matrix": [1, 3], "x": 51, "y": 19, "flags": 4},
+ {"matrix": [1, 4], "x": 66, "y": 19, "flags": 4},
+ {"matrix": [1, 5], "x": 81, "y": 19, "flags": 4},
+ {"matrix": [1, 6], "x": 95, "y": 19, "flags": 4},
+ {"matrix": [1, 7], "x": 110, "y": 19, "flags": 4},
+ {"matrix": [1, 8], "x": 125, "y": 19, "flags": 4},
+ {"matrix": [1, 9], "x": 139, "y": 19, "flags": 4},
+ {"matrix": [1, 10], "x": 154, "y": 19, "flags": 4},
+ {"matrix": [1, 11], "x": 168, "y": 19, "flags": 4},
+ {"matrix": [1, 12], "x": 183, "y": 19, "flags": 4},
+ {"matrix": [1, 14], "x": 224, "y": 19, "flags": 1},
+
+ {"matrix": [2, 0], "x": 6, "y": 34, "flags": 1},
+ {"matrix": [2, 1], "x": 26, "y": 34, "flags": 4},
+ {"matrix": [2, 2], "x": 40, "y": 34, "flags": 4},
+ {"matrix": [2, 3], "x": 55, "y": 34, "flags": 4},
+ {"matrix": [2, 4], "x": 70, "y": 34, "flags": 4},
+ {"matrix": [2, 5], "x": 84, "y": 34, "flags": 4},
+ {"matrix": [2, 6], "x": 99, "y": 34, "flags": 4},
+ {"matrix": [2, 7], "x": 114, "y": 34, "flags": 4},
+ {"matrix": [2, 8], "x": 128, "y": 34, "flags": 4},
+ {"matrix": [2, 9], "x": 143, "y": 34, "flags": 4},
+ {"matrix": [2, 10], "x": 158, "y": 34, "flags": 4},
+ {"matrix": [2, 11], "x": 172, "y": 34, "flags": 4},
+ {"matrix": [2, 13], "x": 187, "y": 34, "flags": 4},
+ {"matrix": [1, 13], "x": 207, "y": 29, "flags": 1},
+ {"matrix": [2, 14], "x": 224, "y": 34, "flags": 1},
+
+ {"matrix": [3, 0], "x": 9, "y": 49, "flags": 1},
+ {"matrix": [3, 2], "x": 33, "y": 49, "flags": 4},
+ {"matrix": [3, 3], "x": 48, "y": 49, "flags": 4},
+ {"matrix": [3, 4], "x": 62, "y": 49, "flags": 4},
+ {"matrix": [3, 5], "x": 77, "y": 49, "flags": 4},
+ {"matrix": [3, 6], "x": 92, "y": 49, "flags": 4},
+ {"matrix": [3, 7], "x": 106, "y": 49, "flags": 4},
+ {"matrix": [3, 8], "x": 121, "y": 49, "flags": 4},
+ {"matrix": [3, 9], "x": 136, "y": 49, "flags": 4},
+ {"matrix": [3, 10], "x": 150, "y": 49, "flags": 4},
+ {"matrix": [3, 11], "x": 179, "y": 49, "flags": 4},
+ {"matrix": [3, 13], "x": 194, "y": 49, "flags": 1},
+ {"matrix": [3, 14], "x": 209, "y": 49, "flags": 1},
+
+ {"matrix": [4, 0], "x": 2, "y": 64, "flags": 1},
+ {"matrix": [4, 1], "x": 18, "y": 64, "flags": 1},
+ {"matrix": [4, 2], "x": 35, "y": 64, "flags": 1},
+ {"matrix": [4, 3], "x": 51, "y": 64, "flags": 1},
+ {"matrix": [4, 6], "x": 92, "y": 64, "flags": 4},
+ {"matrix": [4, 9], "x": 134, "y": 64, "flags": 1},
+ {"matrix": [4, 10], "x": 150, "y": 64, "flags": 1},
+ {"matrix": [4, 11], "x": 165, "y": 64, "flags": 1},
+ {"matrix": [4, 12], "x": 179, "y": 64, "flags": 1},
+ {"matrix": [4, 13], "x": 194, "y": 64, "flags": 1},
+ {"matrix": [2, 12], "x": 209, "y": 64, "flags": 1},
+ {"matrix": [4, 14], "x": 223, "y": 64, "flags": 1}
+ ]
+ },
"layouts": {
"LAYOUT_jis_71": {
"layout": [
diff --git a/keyboards/keychron/q2/jis_encoder/jis_encoder.c b/keyboards/keychron/q2/jis_encoder/jis_encoder.c
index de20255e0b..d877e225d9 100644
--- a/keyboards/keychron/q2/jis_encoder/jis_encoder.c
+++ b/keyboards/keychron/q2/jis_encoder/jis_encoder.c
@@ -18,8 +18,8 @@
#ifdef RGB_MATRIX_ENABLE
-const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = {
-/* Refer to IS31 manual for these locations
+const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = {
+/* Refer to SNLED27351 manual for these locations
* driver
* | R location
* | | G location
@@ -102,33 +102,4 @@ const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = {
{1, F_16, D_16, E_16}
};
-#define __ NO_LED
-
-led_config_t g_led_config = {
- {
- // Key Matrix to LED Index
- { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 15 },
- { 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 43, 29 },
- { 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 69, 42, 44 },
- { 45, 14, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58 },
- { 59, 60, 61, 62, __, __, 63, __, __, 64, 65, 66, 67, 68, 70 },
- },
- {
- // LED Index to Physical Position
- {0,4}, {15,4}, {29,4}, {44,4}, {59,4}, {73,4}, {88,4}, {103,4}, {117,4}, {132,4}, {146,4}, {161,4}, {176,4}, {190,4}, {205,4}, {224,0},
- {4,19}, {22,19}, {37,19}, {51,19}, {66,19}, {81,19}, {95,19}, {110,19}, {125,19}, {139,19}, {154,19}, {168,19}, {183,19}, {224,19},
- {6,34}, {26,34}, {40,34}, {55,34}, {70,34}, {84,34}, {99,34}, {114,34}, {128,34}, {143,34}, {158,34}, {172,34}, {187,34}, {207,29}, {224,34},
- {9,49}, {33,49}, {48,49}, {62,49}, {77,49}, {92,49}, {106,49}, {121,49}, {136,49}, {150,49}, {165,49}, {179,49}, {194,49}, {209,49},
- {2,64}, {18,64}, {35,64}, {51,64}, {92,64}, {134,64}, {150,64}, {165,64}, {179,64}, {194,64}, {209,64}, {223,64},
- },
- {
- // RGB LED Index to Flag
- 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1,
- 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
- 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1,
- 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1,
- 1, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 1,
- }
-};
-
#endif // RGB_MATRIX_ENABLE
diff --git a/keyboards/keychron/q2/jis_encoder/rules.mk b/keyboards/keychron/q2/jis_encoder/rules.mk
index 5091fe9414..6e7633bfe0 100644
--- a/keyboards/keychron/q2/jis_encoder/rules.mk
+++ b/keyboards/keychron/q2/jis_encoder/rules.mk
@@ -1,18 +1 @@
-# Build Options
-# change yes to no to disable
-#
-BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite
-MOUSEKEY_ENABLE = yes # Mouse keys
-EXTRAKEY_ENABLE = yes # Audio control and System control
-CONSOLE_ENABLE = no # Console for debug
-COMMAND_ENABLE = no # Commands for debug and configuration
-NKRO_ENABLE = yes # Enable USB N-key Rollover
-BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
-RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
-AUDIO_ENABLE = no # Audio output
-ENCODER_ENABLE = yes # Enable Encoder
-DIP_SWITCH_ENABLE = yes
-RGB_MATRIX_ENABLE = yes
-EEPROM_DRIVER = wear_leveling
-WEAR_LEVELING_DRIVER = embedded_flash
-
+# This file intentionally left blank
diff --git a/keyboards/keychron/q2/readme.md b/keyboards/keychron/q2/readme.md
index 60144a1079..69a2d892ff 100644
--- a/keyboards/keychron/q2/readme.md
+++ b/keyboards/keychron/q2/readme.md
@@ -1,19 +1,31 @@
# Keychron Q2
+![Keychron Q2](https://i.imgur.com/9bJ6Moh.jpg)
+
A customizable 65% keyboard.
* Keyboard Maintainer: [Keychron](https://github.com/keychron)
* Hardware Supported: Keychron Q2
-* Hardware Availability: [Keychron](https://www.keychron.com)
+* Hardware Availability: [Keychron Q2 QMK Custom Mechanical Keyboard](https://www.keychron.com/products/keychron-q2-qmk-custom-mechanical-keyboard)
Make example for this keyboard (after setting up your build environment):
make keychron/q2/ansi:default
+ make keychron/q2/ansi_encoder:default
+ make keychron/q2/iso:default
+ make keychron/q2/iso_encoder:default
+ make keychron/q2/jis:default
+ make keychron/q2/jis_encoder:default
Flashing example for this keyboard ([after setting up the bootloadHID flashing environment](https://docs.qmk.fm/#/flashing_bootloadhid))
make keychron/q2/ansi:default:flash
+ make keychron/q2/ansi_encoder:default:flash
+ make keychron/q2/iso:default:flash
+ make keychron/q2/iso_encoder:default:flash
+ make keychron/q2/jis:default:flash
+ make keychron/q2/jis_encoder:default:flash
**Reset Key**: Hold down the key located at *K00*, commonly programmed as *Esc* while plugging in the keyboard.
-See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
+See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). \ No newline at end of file
diff --git a/keyboards/keychron/q3/ansi/ansi.c b/keyboards/keychron/q3/ansi/ansi.c
index 432a914058..8327ee430b 100644
--- a/keyboards/keychron/q3/ansi/ansi.c
+++ b/keyboards/keychron/q3/ansi/ansi.c
@@ -18,8 +18,8 @@
#ifdef RGB_MATRIX_ENABLE
-const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = {
-/* Refer to IS31 manual for these locations
+const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = {
+/* Refer to SNLED27351 manual for these locations
* driver
* | R location
* | | G location
@@ -119,36 +119,4 @@ const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = {
{1, C_15, A_15, B_15},
};
-#define __ NO_LED
-
-led_config_t g_led_config = {
- {
- // Key Matrix to LED Index
- { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, __, 13, 14 },
- { 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31 },
- { 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48 },
- { 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 49, 62, 15, 32 },
- { 63, __, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, __, 74, 86, 75 },
- { 76, 77, 78, __, __, __, 79, __, __, __, 80, 81, 82, 83, 84, 85 },
- },
- {
- // LED Index to Physical Position
- {0,0}, {26,0}, {39,0}, {52,0}, {65,0}, {85,0}, {98,0}, {111,0}, {124,0}, {143,0}, {156,0}, {169,0}, {182,0}, {198,0}, {211,0}, {224,0},
- {0,15}, {13,15}, {26,15}, {39,15}, {52,15}, {65,15}, {78,15}, {91,15}, {104,15}, {117,15}, {130,15}, {143,15}, {156,15}, {176,15}, {198,15}, {211,15}, {224,15},
- {3,28}, {20,28}, {33,28}, {46,28}, {59,28}, {72,28}, {85,28}, {98,28}, {111,28}, {124,28}, {137,28}, {150,28}, {163,28}, {179,28}, {198,28}, {211,28}, {224,28},
- {5,40}, {23,40}, {36,40}, {49,40}, {62,40}, {75,40}, {88,40}, {101,40}, {114,40}, {127,40}, {140,40}, {153,40}, {174,40},
- {8,52}, {29,52}, {42,52}, {55,52}, {68,52}, {81,52}, {94,52}, {107,52}, {120,52}, {133,52}, {146,52}, {171,52}, {211,52},
- {2,64}, {18,64}, {34,64}, {83,64}, {131,64}, {148,64}, {164,64}, {180,64}, {198,64}, {211,64}, {224,64},
- },
- {
- // RGB LED Index to Flag
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, 1,
- 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1,
- 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
- 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1,
- 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 1,
- }
-};
-
#endif // RGB_MATRIX_ENABLE
diff --git a/keyboards/keychron/q3/ansi/config.h b/keyboards/keychron/q3/ansi/config.h
index f7c1c16931..77afc9b9b6 100644
--- a/keyboards/keychron/q3/ansi/config.h
+++ b/keyboards/keychron/q3/ansi/config.h
@@ -16,19 +16,13 @@
#pragma once
-/* key matrix pins */
-#define MATRIX_ROW_PINS { B5, B4, B3, A15, A14, A13 }
-#define MATRIX_COL_PINS { C14, C15, A0, A1, A2, A3, A4, A5, A6, A7, B0, B1, A8, A9, A10, H3 }
-
-/* We uses a pin with a stronger pull resistor than the internal MCU pins */
+/* We use a pin with a stronger pull resistor than the internal MCU pins */
// #define MATRIX_UNSELECT_DRIVE_HIGH
/* RGB Matrix Configuration */
-#define DRIVER_1_LED_TOTAL 48
-#define DRIVER_2_LED_TOTAL 39
-#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL)
+#define RGB_MATRIX_LED_COUNT 87
-#define CKLED2001_CURRENT_TUNE \
+#define SNLED27351_CURRENT_TUNE \
{ 0x9D, 0x9D, 0x44, 0x9D, 0x9D, 0x44, 0x9D, 0x9D, 0x44, 0x9D, 0x9D, 0x44 }
/* Enable CapsLcok LED */
diff --git a/keyboards/keychron/q3/ansi/info.json b/keyboards/keychron/q3/ansi/info.json
index 124ac1bdcc..2162208082 100644
--- a/keyboards/keychron/q3/ansi/info.json
+++ b/keyboards/keychron/q3/ansi/info.json
@@ -1,18 +1,109 @@
{
- "keyboard_name": "Keychron Q3",
- "manufacturer": "Keychron",
- "url": "https://github.com/Keychron",
- "maintainer": "lalalademaxiya1",
"usb": {
- "vid": "0x3434",
"pid": "0x0120",
"device_version": "1.0.0"
},
"rgb_matrix": {
- "driver": "ckled2001"
+ "layout": [
+ {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1},
+ {"matrix": [0, 1], "x": 26, "y": 0, "flags": 1},
+ {"matrix": [0, 2], "x": 39, "y": 0, "flags": 1},
+ {"matrix": [0, 3], "x": 52, "y": 0, "flags": 1},
+ {"matrix": [0, 4], "x": 65, "y": 0, "flags": 1},
+ {"matrix": [0, 5], "x": 85, "y": 0, "flags": 1},
+ {"matrix": [0, 6], "x": 98, "y": 0, "flags": 1},
+ {"matrix": [0, 7], "x": 111, "y": 0, "flags": 1},
+ {"matrix": [0, 8], "x": 124, "y": 0, "flags": 1},
+ {"matrix": [0, 9], "x": 143, "y": 0, "flags": 1},
+ {"matrix": [0, 10], "x": 156, "y": 0, "flags": 1},
+ {"matrix": [0, 11], "x": 169, "y": 0, "flags": 1},
+ {"matrix": [0, 12], "x": 182, "y": 0, "flags": 1},
+ {"matrix": [0, 14], "x": 198, "y": 0, "flags": 1},
+ {"matrix": [0, 15], "x": 211, "y": 0, "flags": 1},
+ {"matrix": [3, 14], "x": 224, "y": 0, "flags": 1},
+
+ {"matrix": [1, 0], "x": 0, "y": 15, "flags": 1},
+ {"matrix": [1, 1], "x": 13, "y": 15, "flags": 4},
+ {"matrix": [1, 2], "x": 26, "y": 15, "flags": 4},
+ {"matrix": [1, 3], "x": 39, "y": 15, "flags": 4},
+ {"matrix": [1, 4], "x": 52, "y": 15, "flags": 4},
+ {"matrix": [1, 5], "x": 65, "y": 15, "flags": 4},
+ {"matrix": [1, 6], "x": 78, "y": 15, "flags": 4},
+ {"matrix": [1, 7], "x": 91, "y": 15, "flags": 4},
+ {"matrix": [1, 8], "x": 104, "y": 15, "flags": 4},
+ {"matrix": [1, 9], "x": 117, "y": 15, "flags": 4},
+ {"matrix": [1, 10], "x": 130, "y": 15, "flags": 4},
+ {"matrix": [1, 11], "x": 143, "y": 15, "flags": 4},
+ {"matrix": [1, 12], "x": 156, "y": 15, "flags": 4},
+ {"matrix": [1, 13], "x": 176, "y": 15, "flags": 1},
+ {"matrix": [1, 14], "x": 198, "y": 15, "flags": 1},
+ {"matrix": [1, 15], "x": 211, "y": 15, "flags": 1},
+ {"matrix": [3, 15], "x": 224, "y": 15, "flags": 1},
+
+ {"matrix": [2, 0], "x": 3, "y": 28, "flags": 1},
+ {"matrix": [2, 1], "x": 20, "y": 28, "flags": 4},
+ {"matrix": [2, 2], "x": 33, "y": 28, "flags": 4},
+ {"matrix": [2, 3], "x": 46, "y": 28, "flags": 4},
+ {"matrix": [2, 4], "x": 59, "y": 28, "flags": 4},
+ {"matrix": [2, 5], "x": 72, "y": 28, "flags": 4},
+ {"matrix": [2, 6], "x": 85, "y": 28, "flags": 4},
+ {"matrix": [2, 7], "x": 98, "y": 28, "flags": 4},
+ {"matrix": [2, 8], "x": 111, "y": 28, "flags": 4},
+ {"matrix": [2, 9], "x": 124, "y": 28, "flags": 4},
+ {"matrix": [2, 10], "x": 137, "y": 28, "flags": 4},
+ {"matrix": [2, 11], "x": 150, "y": 28, "flags": 4},
+ {"matrix": [2, 12], "x": 163, "y": 28, "flags": 4},
+ {"matrix": [2, 13], "x": 179, "y": 28, "flags": 4},
+ {"matrix": [2, 14], "x": 198, "y": 28, "flags": 1},
+ {"matrix": [2, 15], "x": 211, "y": 28, "flags": 1},
+ {"matrix": [3, 12], "x": 224, "y": 28, "flags": 1},
+
+ {"matrix": [3, 0], "x": 5, "y": 40, "flags": 8},
+ {"matrix": [3, 1], "x": 23, "y": 40, "flags": 4},
+ {"matrix": [3, 2], "x": 36, "y": 40, "flags": 4},
+ {"matrix": [3, 3], "x": 49, "y": 40, "flags": 4},
+ {"matrix": [3, 4], "x": 62, "y": 40, "flags": 4},
+ {"matrix": [3, 5], "x": 75, "y": 40, "flags": 4},
+ {"matrix": [3, 6], "x": 88, "y": 40, "flags": 4},
+ {"matrix": [3, 7], "x": 101, "y": 40, "flags": 4},
+ {"matrix": [3, 8], "x": 114, "y": 40, "flags": 4},
+ {"matrix": [3, 9], "x": 127, "y": 40, "flags": 4},
+ {"matrix": [3, 10], "x": 140, "y": 40, "flags": 4},
+ {"matrix": [3, 11], "x": 153, "y": 40, "flags": 4},
+ {"matrix": [3, 13], "x": 174, "y": 40, "flags": 1},
+
+ {"matrix": [4, 0], "x": 8, "y": 52, "flags": 1},
+ {"matrix": [4, 2], "x": 29, "y": 52, "flags": 4},
+ {"matrix": [4, 3], "x": 42, "y": 52, "flags": 4},
+ {"matrix": [4, 4], "x": 55, "y": 52, "flags": 4},
+ {"matrix": [4, 5], "x": 68, "y": 52, "flags": 4},
+ {"matrix": [4, 6], "x": 81, "y": 52, "flags": 4},
+ {"matrix": [4, 7], "x": 94, "y": 52, "flags": 4},
+ {"matrix": [4, 8], "x": 107, "y": 52, "flags": 4},
+ {"matrix": [4, 9], "x": 120, "y": 52, "flags": 4},
+ {"matrix": [4, 10], "x": 133, "y": 52, "flags": 4},
+ {"matrix": [4, 11], "x": 146, "y": 52, "flags": 4},
+ {"matrix": [4, 13], "x": 171, "y": 52, "flags": 1},
+ {"matrix": [4, 15], "x": 211, "y": 52, "flags": 1},
+
+ {"matrix": [5, 0], "x": 2, "y": 64, "flags": 1},
+ {"matrix": [5, 1], "x": 18, "y": 64, "flags": 1},
+ {"matrix": [5, 2], "x": 34, "y": 64, "flags": 1},
+ {"matrix": [5, 6], "x": 83, "y": 64, "flags": 4},
+ {"matrix": [5, 10], "x": 131, "y": 64, "flags": 1},
+ {"matrix": [5, 11], "x": 148, "y": 64, "flags": 1},
+ {"matrix": [5, 12], "x": 164, "y": 64, "flags": 1},
+ {"matrix": [5, 13], "x": 180, "y": 64, "flags": 1},
+ {"matrix": [5, 14], "x": 198, "y": 64, "flags": 1},
+ {"matrix": [5, 15], "x": 211, "y": 64, "flags": 1},
+ {"matrix": [4, 14], "x": 224, "y": 64, "flags": 1}
+ ]
+ },
+ "matrix_pins": {
+ "rows": ["B5", "B4", "B3", "A15", "A14", "A13"],
+ "cols": ["C14", "C15", "A0", "A1", "A2", "A3", "A4", "A5", "A6", "A7", "B0", "B1", "A8", "A9", "A10", "H3"]
},
- "processor": "STM32L432",
- "bootloader": "stm32-dfu",
+ "community_layouts": ["tkl_ansi"],
"layouts": {
"LAYOUT_tkl_ansi": {
"layout": [
diff --git a/keyboards/keychron/q3/ansi/rules.mk b/keyboards/keychron/q3/ansi/rules.mk
index 58bbb89a72..7ff128fa69 100644
--- a/keyboards/keychron/q3/ansi/rules.mk
+++ b/keyboards/keychron/q3/ansi/rules.mk
@@ -1,18 +1 @@
-# Build Options
-# change yes to no to disable
-#
-BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite
-MOUSEKEY_ENABLE = yes # Mouse keys
-EXTRAKEY_ENABLE = yes # Audio control and System control
-CONSOLE_ENABLE = no # Console for debug
-COMMAND_ENABLE = no # Commands for debug and configuration
-NKRO_ENABLE = yes # Enable USB N-key Rollover
-BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
-RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
-AUDIO_ENABLE = no # Audio output
-DIP_SWITCH_ENABLE = yes
-RGB_MATRIX_ENABLE = yes
-LTO_ENABLE = yes
-EEPROM_DRIVER = wear_leveling
-WEAR_LEVELING_DRIVER = embedded_flash
-
+# This file intentionally left blank \ No newline at end of file
diff --git a/keyboards/keychron/q3/ansi_encoder/ansi_encoder.c b/keyboards/keychron/q3/ansi_encoder/ansi_encoder.c
index f873f77d12..a386e87a01 100644
--- a/keyboards/keychron/q3/ansi_encoder/ansi_encoder.c
+++ b/keyboards/keychron/q3/ansi_encoder/ansi_encoder.c
@@ -18,8 +18,8 @@
#ifdef RGB_MATRIX_ENABLE
-const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = {
-/* Refer to IS31 manual for these locations
+const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = {
+/* Refer to SNLED27351 manual for these locations
* driver
* | R location
* | | G location
@@ -119,36 +119,4 @@ const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = {
{1, C_15, A_15, B_15},
};
-#define __ NO_LED
-
-led_config_t g_led_config = {
- {
- // Key Matrix to LED Index
- { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, __, 13, 14 },
- { 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31 },
- { 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48 },
- { 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 49, 62, 15, 32 },
- { 63, __, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, __, 74, 86, 75 },
- { 76, 77, 78, __, __, __, 79, __, __, __, 80, 81, 82, 83, 84, 85 },
- },
- {
- // LED Index to Physical Position
- {0,0}, {16,0}, {29,0}, {42,0}, {55,0}, {71,0}, {84,0}, {97,0}, {110,0}, {126,0}, {139,0}, {152,0}, {165,0}, {198,0}, {211,0}, {224,0},
- {0,15}, {13,15}, {26,15}, {39,15}, {52,15}, {65,15}, {78,15}, {91,15}, {104,15}, {117,15}, {130,15}, {143,15}, {156,15}, {176,15}, {198,15}, {211,15}, {224,15},
- {3,28}, {19,28}, {32,28}, {45,28}, {59,28}, {72,28}, {85,28}, {98,28}, {111,28}, {124,28}, {137,28}, {150,28}, {163,28}, {179,28}, {198,28}, {211,28}, {224,28},
- {5,40}, {23,40}, {36,40}, {49,40}, {62,40}, {75,40}, {88,40}, {101,40}, {114,40}, {127,40}, {140,40}, {153,40}, {174,40},
- {8,52}, {29,52}, {42,52}, {55,52}, {68,52}, {81,52}, {94,52}, {107,52}, {120,52}, {133,52}, {146,52}, {171,52}, {211,52},
- {2,64}, {18,64}, {34,64}, {83,64}, {131,64}, {148,64}, {164,64}, {180,64}, {198,64}, {211,64}, {224,64},
- },
- {
- // RGB LED Index to Flag
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, 1,
- 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1,
- 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
- 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1,
- 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 1,
- }
-};
-
#endif // RGB_MATRIX_ENABLE
diff --git a/keyboards/keychron/q3/ansi_encoder/config.h b/keyboards/keychron/q3/ansi_encoder/config.h
index 201288841a..2a6f9ba4c5 100644
--- a/keyboards/keychron/q3/ansi_encoder/config.h
+++ b/keyboards/keychron/q3/ansi_encoder/config.h
@@ -21,14 +21,9 @@
#define MATRIX_COL_PINS { C14, C15, A0, A1, A2, A3, A4, A5, NO_PIN, NO_PIN, NO_PIN, NO_PIN, NO_PIN, NO_PIN, NO_PIN, NO_PIN }
/* RGB Matrix Configuration */
-#define DRIVER_1_LED_TOTAL 48
-#define DRIVER_2_LED_TOTAL 39
-#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL)
+#define RGB_MATRIX_LED_COUNT 87
-/* Encoder Configuration */
-#define ENCODER_DEFAULT_POS 0x3
-
-#define CKLED2001_CURRENT_TUNE \
+#define SNLED27351_CURRENT_TUNE \
{ 0x9D, 0x9D, 0x44, 0x9D, 0x9D, 0x44, 0x9D, 0x9D, 0x44, 0x9D, 0x9D, 0x44 }
/* Enable CapsLcok LED */
diff --git a/keyboards/keychron/q3/ansi_encoder/info.json b/keyboards/keychron/q3/ansi_encoder/info.json
index 2dd2f18bf9..f3bab2768f 100644
--- a/keyboards/keychron/q3/ansi_encoder/info.json
+++ b/keyboards/keychron/q3/ansi_encoder/info.json
@@ -1,23 +1,111 @@
{
- "keyboard_name": "Keychron Q3",
- "manufacturer": "Keychron",
- "url": "https://github.com/Keychron",
- "maintainer": "lalalademaxiya1",
"usb": {
- "vid": "0x3434",
"pid": "0x0121",
"device_version": "1.0.0"
},
- "rgb_matrix": {
- "driver": "ckled2001"
- },
"encoder": {
+ "enabled": true,
"rotary": [
{"pin_a": "A10", "pin_b": "A8"}
]
},
- "processor": "STM32L432",
- "bootloader": "stm32-dfu",
+ "rgb_matrix": {
+ "layout": [
+ {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1},
+ {"matrix": [0, 1], "x": 16, "y": 0, "flags": 1},
+ {"matrix": [0, 2], "x": 29, "y": 0, "flags": 1},
+ {"matrix": [0, 3], "x": 42, "y": 0, "flags": 1},
+ {"matrix": [0, 4], "x": 55, "y": 0, "flags": 1},
+ {"matrix": [0, 5], "x": 71, "y": 0, "flags": 1},
+ {"matrix": [0, 6], "x": 84, "y": 0, "flags": 1},
+ {"matrix": [0, 7], "x": 97, "y": 0, "flags": 1},
+ {"matrix": [0, 8], "x": 110, "y": 0, "flags": 1},
+ {"matrix": [0, 9], "x": 126, "y": 0, "flags": 1},
+ {"matrix": [0, 10], "x": 139, "y": 0, "flags": 1},
+ {"matrix": [0, 11], "x": 152, "y": 0, "flags": 1},
+ {"matrix": [0, 12], "x": 165, "y": 0, "flags": 1},
+ {"matrix": [0, 14], "x": 198, "y": 0, "flags": 1},
+ {"matrix": [0, 15], "x": 211, "y": 0, "flags": 1},
+ {"matrix": [3, 14], "x": 224, "y": 0, "flags": 1},
+
+ {"matrix": [1, 0], "x": 0, "y": 15, "flags": 1},
+ {"matrix": [1, 1], "x": 13, "y": 15, "flags": 4},
+ {"matrix": [1, 2], "x": 26, "y": 15, "flags": 4},
+ {"matrix": [1, 3], "x": 39, "y": 15, "flags": 4},
+ {"matrix": [1, 4], "x": 52, "y": 15, "flags": 4},
+ {"matrix": [1, 5], "x": 65, "y": 15, "flags": 4},
+ {"matrix": [1, 6], "x": 78, "y": 15, "flags": 4},
+ {"matrix": [1, 7], "x": 91, "y": 15, "flags": 4},
+ {"matrix": [1, 8], "x": 104, "y": 15, "flags": 4},
+ {"matrix": [1, 9], "x": 117, "y": 15, "flags": 4},
+ {"matrix": [1, 10], "x": 130, "y": 15, "flags": 4},
+ {"matrix": [1, 11], "x": 143, "y": 15, "flags": 4},
+ {"matrix": [1, 12], "x": 156, "y": 15, "flags": 4},
+ {"matrix": [1, 13], "x": 176, "y": 15, "flags": 1},
+ {"matrix": [1, 14], "x": 198, "y": 15, "flags": 1},
+ {"matrix": [1, 15], "x": 211, "y": 15, "flags": 1},
+ {"matrix": [3, 15], "x": 224, "y": 15, "flags": 1},
+
+ {"matrix": [2, 0], "x": 3, "y": 28, "flags": 1},
+ {"matrix": [2, 1], "x": 19, "y": 28, "flags": 4},
+ {"matrix": [2, 2], "x": 32, "y": 28, "flags": 4},
+ {"matrix": [2, 3], "x": 45, "y": 28, "flags": 4},
+ {"matrix": [2, 4], "x": 59, "y": 28, "flags": 4},
+ {"matrix": [2, 5], "x": 72, "y": 28, "flags": 4},
+ {"matrix": [2, 6], "x": 85, "y": 28, "flags": 4},
+ {"matrix": [2, 7], "x": 98, "y": 28, "flags": 4},
+ {"matrix": [2, 8], "x": 111, "y": 28, "flags": 4},
+ {"matrix": [2, 9], "x": 124, "y": 28, "flags": 4},
+ {"matrix": [2, 10], "x": 137, "y": 28, "flags": 4},
+ {"matrix": [2, 11], "x": 150, "y": 28, "flags": 4},
+ {"matrix": [2, 12], "x": 163, "y": 28, "flags": 4},
+ {"matrix": [2, 13], "x": 179, "y": 28, "flags": 4},
+ {"matrix": [2, 14], "x": 198, "y": 28, "flags": 1},
+ {"matrix": [2, 15], "x": 211, "y": 28, "flags": 1},
+ {"matrix": [3, 12], "x": 224, "y": 28, "flags": 1},
+
+ {"matrix": [3, 0], "x": 5, "y": 40, "flags": 8},
+ {"matrix": [3, 1], "x": 23, "y": 40, "flags": 4},
+ {"matrix": [3, 2], "x": 36, "y": 40, "flags": 4},
+ {"matrix": [3, 3], "x": 49, "y": 40, "flags": 4},
+ {"matrix": [3, 4], "x": 62, "y": 40, "flags": 4},
+ {"matrix": [3, 5], "x": 75, "y": 40, "flags": 4},
+ {"matrix": [3, 6], "x": 88, "y": 40, "flags": 4},
+ {"matrix": [3, 7], "x": 101, "y": 40, "flags": 4},
+ {"matrix": [3, 8], "x": 114, "y": 40, "flags": 4},
+ {"matrix": [3, 9], "x": 127, "y": 40, "flags": 4},
+ {"matrix": [3, 10], "x": 140, "y": 40, "flags": 4},
+ {"matrix": [3, 11], "x": 153, "y": 40, "flags": 4},
+ {"matrix": [3, 13], "x": 174, "y": 40, "flags": 1},
+
+ {"matrix": [4, 0], "x": 8, "y": 52, "flags": 1},
+ {"matrix": [4, 2], "x": 29, "y": 52, "flags": 4},
+ {"matrix": [4, 3], "x": 42, "y": 52, "flags": 4},
+ {"matrix": [4, 4], "x": 55, "y": 52, "flags": 4},
+ {"matrix": [4, 5], "x": 68, "y": 52, "flags": 4},
+ {"matrix": [4, 6], "x": 81, "y": 52, "flags": 4},
+ {"matrix": [4, 7], "x": 94, "y": 52, "flags": 4},
+ {"matrix": [4, 8], "x": 107, "y": 52, "flags": 4},
+ {"matrix": [4, 9], "x": 120, "y": 52, "flags": 4},
+ {"matrix": [4, 10], "x": 133, "y": 52, "flags": 4},
+ {"matrix": [4, 11], "x": 146, "y": 52, "flags": 4},
+ {"matrix": [4, 13], "x": 171, "y": 52, "flags": 1},
+ {"matrix": [4, 15], "x": 211, "y": 52, "flags": 1},
+
+ {"matrix": [5, 0], "x": 2, "y": 64, "flags": 1},
+ {"matrix": [5, 1], "x": 18, "y": 64, "flags": 1},
+ {"matrix": [5, 2], "x": 34, "y": 64, "flags": 1},
+ {"matrix": [5, 6], "x": 83, "y": 64, "flags": 4},
+ {"matrix": [5, 10], "x": 131, "y": 64, "flags": 1},
+ {"matrix": [5, 11], "x": 148, "y": 64, "flags": 1},
+ {"matrix": [5, 12], "x": 164, "y": 64, "flags": 1},
+ {"matrix": [5, 13], "x": 180, "y": 64, "flags": 1},
+ {"matrix": [5, 14], "x": 198, "y": 64, "flags": 1},
+ {"matrix": [5, 15], "x": 211, "y": 64, "flags": 1},
+ {"matrix": [4, 14], "x": 224, "y": 64, "flags": 1}
+ ]
+ },
+ "community_layouts": ["tkl_f13_ansi"],
"layouts": {
"LAYOUT_tkl_f13_ansi": {
"layout": [
diff --git a/keyboards/keychron/q3/ansi_encoder/rules.mk b/keyboards/keychron/q3/ansi_encoder/rules.mk
index 77b90f2466..5f0634f6d3 100644
--- a/keyboards/keychron/q3/ansi_encoder/rules.mk
+++ b/keyboards/keychron/q3/ansi_encoder/rules.mk
@@ -1,23 +1,4 @@
-# Build Options
-# change yes to no to disable
-#
-BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite
-MOUSEKEY_ENABLE = yes # Mouse keys
-EXTRAKEY_ENABLE = yes # Audio control and System control
-CONSOLE_ENABLE = no # Console for debug
-COMMAND_ENABLE = no # Commands for debug and configuration
-NKRO_ENABLE = yes # Enable USB N-key Rollover
-BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
-RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
-AUDIO_ENABLE = no # Audio output
-ENCODER_ENABLE = yes # Enable Encoder
-DIP_SWITCH_ENABLE = yes
-RGB_MATRIX_ENABLE = yes
-LTO_ENABLE = yes
-EEPROM_DRIVER = wear_leveling
-WEAR_LEVELING_DRIVER = embedded_flash
-
-# custom matrix setup
+# Custom matrix setup
CUSTOM_MATRIX = lite
SRC += matrix.c
diff --git a/keyboards/keychron/q3/config.h b/keyboards/keychron/q3/config.h
index 79f07d0390..f93da42353 100644
--- a/keyboards/keychron/q3/config.h
+++ b/keyboards/keychron/q3/config.h
@@ -16,17 +16,9 @@
#pragma once
-/* key matrix size */
-#define MATRIX_ROWS 6
-#define MATRIX_COLS 16
-
-/* COL2ROW or ROW2COL */
-#define DIODE_DIRECTION ROW2COL
-
/* RGB Matrix Driver Configuration */
-#define DRIVER_COUNT 2
-#define DRIVER_ADDR_1 0b1110111
-#define DRIVER_ADDR_2 0b1110100
+#define SNLED27351_I2C_ADDRESS_1 SNLED27351_I2C_ADDRESS_VDDIO
+#define SNLED27351_I2C_ADDRESS_2 SNLED27351_I2C_ADDRESS_GND
/* Increase I2C speed to 1000 KHz */
#define I2C1_TIMINGR_PRESC 0U
@@ -35,8 +27,7 @@
#define I2C1_TIMINGR_SCLH 15U
#define I2C1_TIMINGR_SCLL 51U
-/* Scan phase of led driver set as MSKPHASE_9CHANNEL(defined as 0x03 in CKLED2001.h) */
-#define PHASE_CHANNEL MSKPHASE_9CHANNEL
+#define SNLED27351_PHASE_CHANNEL SNLED27351_SCAN_PHASE_9_CHANNEL
/* DIP switch */
#define DIP_SWITCH_MATRIX_GRID { {5, 4} }
@@ -44,61 +35,11 @@
/* Disable DIP switch in matrix data */
#define MATRIX_MASKED
+/* Encoder Configuration*/
+#define ENCODER_DEFAULT_POS 0x3
+
/* turn off effects when suspended */
#define RGB_DISABLE_WHEN_USB_SUSPENDED
-/* EEPROM Driver Configuration */
-#define WEAR_LEVELING_LOGICAL_SIZE 2048
-#define WEAR_LEVELING_BACKING_SIZE (WEAR_LEVELING_LOGICAL_SIZE * 2)
-
-// RGB Matrix Animation modes. Explicitly enabled
-// For full list of effects, see:
-// https://docs.qmk.fm/#/feature_rgb_matrix?id=rgb-matrix-effects
-// #define ENABLE_RGB_MATRIX_ALPHAS_MODS
-// #define ENABLE_RGB_MATRIX_GRADIENT_UP_DOWN
-// #define ENABLE_RGB_MATRIX_GRADIENT_LEFT_RIGHT
-#define ENABLE_RGB_MATRIX_BREATHING
-// #define ENABLE_RGB_MATRIX_BAND_SAT
-// #define ENABLE_RGB_MATRIX_BAND_VAL
-// #define ENABLE_RGB_MATRIX_BAND_PINWHEEL_SAT
-// #define ENABLE_RGB_MATRIX_BAND_PINWHEEL_VAL
-// #define ENABLE_RGB_MATRIX_BAND_SPIRAL_SAT
-#define ENABLE_RGB_MATRIX_BAND_SPIRAL_VAL
-#define ENABLE_RGB_MATRIX_CYCLE_ALL
-#define ENABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT
-#define ENABLE_RGB_MATRIX_CYCLE_UP_DOWN
-#define ENABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON
-#define ENABLE_RGB_MATRIX_CYCLE_OUT_IN
-#define ENABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL
-#define ENABLE_RGB_MATRIX_CYCLE_PINWHEEL
-#define ENABLE_RGB_MATRIX_CYCLE_SPIRAL
-#define ENABLE_RGB_MATRIX_DUAL_BEACON
-#define ENABLE_RGB_MATRIX_RAINBOW_BEACON
-// #define ENABLE_RGB_MATRIX_RAINBOW_PINWHEELS
-// #define ENABLE_RGB_MATRIX_RAINDROPS
-#define ENABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS
-// #define ENABLE_RGB_MATRIX_HUE_BREATHING
-// #define ENABLE_RGB_MATRIX_HUE_PENDULUM
-// #define ENABLE_RGB_MATRIX_HUE_WAVE
-#define ENABLE_RGB_MATRIX_PIXEL_RAIN
-// #define ENABLE_RGB_MATRIX_PIXEL_FLOW
-// #define ENABLE_RGB_MATRIX_PIXEL_FRACTAL
-// enabled only if RGB_MATRIX_FRAMEBUFFER_EFFECTS is defined
-#define ENABLE_RGB_MATRIX_TYPING_HEATMAP
-#define ENABLE_RGB_MATRIX_DIGITAL_RAIN
-// enabled only of RGB_MATRIX_KEYPRESSES or RGB_MATRIX_KEYRELEASES is defined
-#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE
-// #define ENABLE_RGB_MATRIX_SOLID_REACTIVE
-// #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE
-#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE
-// #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS
-// #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS
-// #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS
-#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS
-#define ENABLE_RGB_MATRIX_SPLASH
-// #define ENABLE_RGB_MATRIX_MULTISPLASH
-#define ENABLE_RGB_MATRIX_SOLID_SPLASH
-// #define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH
-
#define RGB_MATRIX_KEYPRESSES
#define RGB_MATRIX_FRAMEBUFFER_EFFECTS
diff --git a/keyboards/keychron/q3/info.json b/keyboards/keychron/q3/info.json
new file mode 100644
index 0000000000..c08d73f26a
--- /dev/null
+++ b/keyboards/keychron/q3/info.json
@@ -0,0 +1,52 @@
+{
+ "manufacturer": "Keychron Q3",
+ "maintainer": "lalalademaxiya1",
+ "bootloader": "stm32-dfu",
+ "diode_direction": "ROW2COL",
+ "eeprom": {
+ "wear_leveling": {
+ "backing_size": 4096
+ }
+ },
+ "features": {
+ "bootmagic": true,
+ "dip_switch": true,
+ "command": false,
+ "console": false,
+ "extrakey": true,
+ "mousekey": true,
+ "nkro": true,
+ "rgb_matrix": true
+ },
+ "processor": "STM32L432",
+ "rgb_matrix": {
+ "animations": {
+ "band_spiral_val": true,
+ "breathing": true,
+ "cycle_all": true,
+ "cycle_left_right": true,
+ "cycle_out_in": true,
+ "cycle_out_in_dual": true,
+ "cycle_pinwheel": true,
+ "cycle_spiral": true,
+ "cycle_up_down": true,
+ "digital_rain": true,
+ "dual_beacon": true,
+ "jellybean_raindrops": true,
+ "pixel_rain": true,
+ "rainbow_beacon": true,
+ "rainbow_moving_chevron": true,
+ "solid_reactive_multinexus": true,
+ "solid_reactive_multiwide": true,
+ "solid_reactive_simple": true,
+ "solid_splash": true,
+ "splash": true,
+ "typing_heatmap": true
+ },
+ "driver": "snled27351"
+ },
+ "url": "https://github.com/Keychron",
+ "usb": {
+ "vid": "0x3434"
+ }
+} \ No newline at end of file
diff --git a/keyboards/keychron/q3/iso/config.h b/keyboards/keychron/q3/iso/config.h
index c6992eb52b..3ffda1ce1e 100644
--- a/keyboards/keychron/q3/iso/config.h
+++ b/keyboards/keychron/q3/iso/config.h
@@ -16,19 +16,13 @@
#pragma once
-/* key matrix pins */
-#define MATRIX_ROW_PINS { B5, B4, B3, A15, A14, A13 }
-#define MATRIX_COL_PINS { C14, C15, A0, A1, A2, A3, A4, A5, A6, A7, B0, B1, A8, A9, A10, H3 }
-
-/* We uses a pin with a stronger pull resistor than the internal MCU pins */
+/* We use a pin with a stronger pull resistor than the internal MCU pins */
// #define MATRIX_UNSELECT_DRIVE_HIGH
/* RGB Matrix Configuration */
-#define DRIVER_1_LED_TOTAL 48
-#define DRIVER_2_LED_TOTAL 40
-#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL)
+#define RGB_MATRIX_LED_COUNT 88
-#define CKLED2001_CURRENT_TUNE \
+#define SNLED27351_CURRENT_TUNE \
{ 0x9D, 0x9D, 0x44, 0x9D, 0x9D, 0x44, 0x9D, 0x9D, 0x44, 0x9D, 0x9D, 0x44 }
/* Enable caps-lock LED */
diff --git a/keyboards/keychron/q3/iso/info.json b/keyboards/keychron/q3/iso/info.json
index c9618c5b47..14e1e96629 100644
--- a/keyboards/keychron/q3/iso/info.json
+++ b/keyboards/keychron/q3/iso/info.json
@@ -1,18 +1,110 @@
{
- "keyboard_name": "Keychron Q3",
- "manufacturer": "Keychron",
- "url": "https://github.com/Keychron",
- "maintainer": "lalalademaxiya1",
"usb": {
- "vid": "0x3434",
"pid": "0x0122",
"device_version": "1.0.0"
},
"rgb_matrix": {
- "driver": "ckled2001"
+ "layout": [
+ {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1},
+ {"matrix": [0, 1], "x": 26, "y": 0, "flags": 1},
+ {"matrix": [0, 2], "x": 39, "y": 0, "flags": 1},
+ {"matrix": [0, 3], "x": 52, "y": 0, "flags": 1},
+ {"matrix": [0, 4], "x": 65, "y": 0, "flags": 1},
+ {"matrix": [0, 5], "x": 84, "y": 0, "flags": 1},
+ {"matrix": [0, 6], "x": 97, "y": 0, "flags": 1},
+ {"matrix": [0, 7], "x": 111, "y": 0, "flags": 1},
+ {"matrix": [0, 8], "x": 124, "y": 0, "flags": 1},
+ {"matrix": [0, 9], "x": 143, "y": 0, "flags": 1},
+ {"matrix": [0, 10], "x": 156, "y": 0, "flags": 1},
+ {"matrix": [0, 11], "x": 169, "y": 0, "flags": 1},
+ {"matrix": [0, 12], "x": 182, "y": 0, "flags": 1},
+ {"matrix": [0, 14], "x": 198, "y": 0, "flags": 1},
+ {"matrix": [0, 15], "x": 211, "y": 0, "flags": 1},
+ {"matrix": [3, 14], "x": 224, "y": 0, "flags": 1},
+
+ {"matrix": [1, 0], "x": 0, "y": 15, "flags": 1},
+ {"matrix": [1, 1], "x": 13, "y": 15, "flags": 4},
+ {"matrix": [1, 2], "x": 26, "y": 15, "flags": 4},
+ {"matrix": [1, 3], "x": 39, "y": 15, "flags": 4},
+ {"matrix": [1, 4], "x": 52, "y": 15, "flags": 4},
+ {"matrix": [1, 5], "x": 65, "y": 15, "flags": 4},
+ {"matrix": [1, 6], "x": 78, "y": 15, "flags": 4},
+ {"matrix": [1, 7], "x": 91, "y": 15, "flags": 4},
+ {"matrix": [1, 8], "x": 104, "y": 15, "flags": 4},
+ {"matrix": [1, 9], "x": 117, "y": 15, "flags": 4},
+ {"matrix": [1, 10], "x": 130, "y": 15, "flags": 4},
+ {"matrix": [1, 11], "x": 143, "y": 15, "flags": 4},
+ {"matrix": [1, 12], "x": 156, "y": 15, "flags": 4},
+ {"matrix": [1, 13], "x": 176, "y": 15, "flags": 1},
+ {"matrix": [1, 14], "x": 198, "y": 15, "flags": 1},
+ {"matrix": [1, 15], "x": 211, "y": 15, "flags": 1},
+ {"matrix": [3, 15], "x": 224, "y": 15, "flags": 1},
+
+ {"matrix": [2, 0], "x": 3, "y": 28, "flags": 1},
+ {"matrix": [2, 1], "x": 19, "y": 28, "flags": 4},
+ {"matrix": [2, 2], "x": 32, "y": 28, "flags": 4},
+ {"matrix": [2, 3], "x": 45, "y": 28, "flags": 4},
+ {"matrix": [2, 4], "x": 59, "y": 28, "flags": 4},
+ {"matrix": [2, 5], "x": 72, "y": 28, "flags": 4},
+ {"matrix": [2, 6], "x": 85, "y": 28, "flags": 4},
+ {"matrix": [2, 7], "x": 98, "y": 28, "flags": 4},
+ {"matrix": [2, 8], "x": 111, "y": 28, "flags": 4},
+ {"matrix": [2, 9], "x": 124, "y": 28, "flags": 4},
+ {"matrix": [2, 10], "x": 137, "y": 28, "flags": 4},
+ {"matrix": [2, 11], "x": 150, "y": 28, "flags": 4},
+ {"matrix": [2, 12], "x": 163, "y": 28, "flags": 4},
+ {"matrix": [2, 14], "x": 198, "y": 28, "flags": 1},
+ {"matrix": [2, 15], "x": 211, "y": 28, "flags": 1},
+ {"matrix": [3, 12], "x": 224, "y": 28, "flags": 1},
+
+ {"matrix": [3, 0], "x": 5, "y": 40, "flags": 8},
+ {"matrix": [3, 1], "x": 23, "y": 40, "flags": 4},
+ {"matrix": [3, 2], "x": 36, "y": 40, "flags": 4},
+ {"matrix": [3, 3], "x": 49, "y": 40, "flags": 4},
+ {"matrix": [3, 4], "x": 62, "y": 40, "flags": 4},
+ {"matrix": [3, 5], "x": 75, "y": 40, "flags": 4},
+ {"matrix": [3, 6], "x": 88, "y": 40, "flags": 4},
+ {"matrix": [3, 7], "x": 101, "y": 40, "flags": 4},
+ {"matrix": [3, 8], "x": 114, "y": 40, "flags": 4},
+ {"matrix": [3, 9], "x": 127, "y": 40, "flags": 4},
+ {"matrix": [3, 10], "x": 140, "y": 40, "flags": 4},
+ {"matrix": [3, 11], "x": 153, "y": 40, "flags": 4},
+ {"matrix": [3, 13], "x": 166, "y": 40, "flags": 4},
+ {"matrix": [2, 13], "x": 183, "y": 36, "flags": 1},
+
+ {"matrix": [4, 0], "x": 2, "y": 52, "flags": 1},
+ {"matrix": [4, 1], "x": 16, "y": 52, "flags": 4},
+ {"matrix": [4, 2], "x": 29, "y": 52, "flags": 4},
+ {"matrix": [4, 3], "x": 42, "y": 52, "flags": 4},
+ {"matrix": [4, 4], "x": 55, "y": 52, "flags": 4},
+ {"matrix": [4, 5], "x": 68, "y": 52, "flags": 4},
+ {"matrix": [4, 6], "x": 81, "y": 52, "flags": 4},
+ {"matrix": [4, 7], "x": 94, "y": 52, "flags": 4},
+ {"matrix": [4, 8], "x": 107, "y": 52, "flags": 4},
+ {"matrix": [4, 9], "x": 120, "y": 52, "flags": 4},
+ {"matrix": [4, 10], "x": 133, "y": 52, "flags": 4},
+ {"matrix": [4, 11], "x": 146, "y": 52, "flags": 4},
+ {"matrix": [4, 13], "x": 171, "y": 52, "flags": 1},
+ {"matrix": [4, 15], "x": 211, "y": 52, "flags": 1},
+
+ {"matrix": [5, 0], "x": 2, "y": 64, "flags": 1},
+ {"matrix": [5, 1], "x": 18, "y": 64, "flags": 1},
+ {"matrix": [5, 2], "x": 34, "y": 64, "flags": 1},
+ {"matrix": [5, 6], "x": 83, "y": 64, "flags": 4},
+ {"matrix": [5, 10], "x": 131, "y": 64, "flags": 1},
+ {"matrix": [5, 11], "x": 148, "y": 64, "flags": 1},
+ {"matrix": [5, 12], "x": 164, "y": 64, "flags": 1},
+ {"matrix": [5, 13], "x": 180, "y": 64, "flags": 1},
+ {"matrix": [5, 14], "x": 198, "y": 64, "flags": 1},
+ {"matrix": [5, 15], "x": 211, "y": 64, "flags": 1},
+ {"matrix": [4, 14], "x": 224, "y": 64, "flags": 1}
+ ]
+ },
+ "matrix_pins": {
+ "rows": ["B5", "B4", "B3", "A15", "A14", "A13"],
+ "cols": ["C14", "C15", "A0", "A1", "A2", "A3", "A4", "A5", "A6", "A7", "B0", "B1", "A8", "A9", "A10", "H3"]
},
- "processor": "STM32L432",
- "bootloader": "stm32-dfu",
+ "community_layouts": ["tkl_iso"],
"layouts": {
"LAYOUT_tkl_iso": {
"layout": [
diff --git a/keyboards/keychron/q3/iso/iso.c b/keyboards/keychron/q3/iso/iso.c
index d747d55115..725af67006 100644
--- a/keyboards/keychron/q3/iso/iso.c
+++ b/keyboards/keychron/q3/iso/iso.c
@@ -18,8 +18,8 @@
#ifdef RGB_MATRIX_ENABLE
-const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = {
-/* Refer to IS31 manual for these locations
+const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = {
+/* Refer to SNLED27351 manual for these locations
* driver
* | R location
* | | G location
@@ -120,36 +120,4 @@ const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = {
{1, C_15, A_15, B_15},
};
-#define __ NO_LED
-
-led_config_t g_led_config = {
- {
- // Key Matrix to LED Index
- { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, __, 13, 14 },
- { 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31 },
- { 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 62, 46, 47 },
- { 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 48, 61, 15, 32 },
- { 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, __, 75, 87, 76 },
- { 77, 78, 79, __, __, __, 80, __, __, __, 81, 82, 83, 84, 85, 86 },
- },
- {
- // LED Index to Physical Position
- {0,0}, {26,0}, {39,0}, {52,0}, {65,0}, {84,0}, {97,0}, {111,0}, {124,0}, {143,0}, {156,0}, {169,0}, {182,0}, {198,0}, {211,0}, {224,0},
- {0,15}, {13,15}, {26,15}, {39,15}, {52,15}, {65,15}, {78,15}, {91,15}, {104,15}, {117,15}, {130,15}, {143,15}, {156,15}, {176,15}, {198,15}, {211,15}, {224,15},
- {3,28}, {19,28}, {32,28}, {45,28}, {59,28}, {72,28}, {85,28}, {98,28}, {111,28}, {124,28}, {137,28}, {150,28}, {163,28}, {198,28}, {211,28}, {224,28},
- {5,40}, {23,40}, {36,40}, {49,40}, {62,40}, {75,40}, {88,40}, {101,40}, {114,40}, {127,40}, {140,40}, {153,40}, {166,40}, {183,36},
- {2,52}, {16,52}, {29,52}, {42,52}, {55,52}, {68,52}, {81,52}, {94,52}, {107,52}, {120,52}, {133,52}, {146,52}, {171,52}, {211,52},
- {2,64}, {18,64}, {34,64}, {83,64}, {131,64}, {148,64}, {164,64}, {180,64}, {198,64}, {211,64}, {224,64},
- },
- {
- // RGB LED Index to Flag
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, 1,
- 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1,
- 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
- 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1,
- 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 1,
- }
-};
-
#endif // RGB_MATRIX_ENABLE
diff --git a/keyboards/keychron/q3/iso/rules.mk b/keyboards/keychron/q3/iso/rules.mk
index 58bbb89a72..7ff128fa69 100644
--- a/keyboards/keychron/q3/iso/rules.mk
+++ b/keyboards/keychron/q3/iso/rules.mk
@@ -1,18 +1 @@
-# Build Options
-# change yes to no to disable
-#
-BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite
-MOUSEKEY_ENABLE = yes # Mouse keys
-EXTRAKEY_ENABLE = yes # Audio control and System control
-CONSOLE_ENABLE = no # Console for debug
-COMMAND_ENABLE = no # Commands for debug and configuration
-NKRO_ENABLE = yes # Enable USB N-key Rollover
-BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
-RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
-AUDIO_ENABLE = no # Audio output
-DIP_SWITCH_ENABLE = yes
-RGB_MATRIX_ENABLE = yes
-LTO_ENABLE = yes
-EEPROM_DRIVER = wear_leveling
-WEAR_LEVELING_DRIVER = embedded_flash
-
+# This file intentionally left blank \ No newline at end of file
diff --git a/keyboards/keychron/q3/iso_encoder/config.h b/keyboards/keychron/q3/iso_encoder/config.h
index 2ee93a4fae..6893c2e8ff 100644
--- a/keyboards/keychron/q3/iso_encoder/config.h
+++ b/keyboards/keychron/q3/iso_encoder/config.h
@@ -21,14 +21,9 @@
#define MATRIX_COL_PINS { C14, C15, A0, A1, A2, A3, A4, A5, NO_PIN, NO_PIN, NO_PIN, NO_PIN, NO_PIN, NO_PIN, NO_PIN, NO_PIN }
/* RGB Matrix Configuration */
-#define DRIVER_1_LED_TOTAL 48
-#define DRIVER_2_LED_TOTAL 40
-#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL)
+#define RGB_MATRIX_LED_COUNT 88
-/* Encoder Configuration */
-#define ENCODER_DEFAULT_POS 0x3
-
-#define CKLED2001_CURRENT_TUNE \
+#define SNLED27351_CURRENT_TUNE \
{ 0x9D, 0x9D, 0x44, 0x9D, 0x9D, 0x44, 0x9D, 0x9D, 0x44, 0x9D, 0x9D, 0x44 }
/* Enable caps-lock LED */
diff --git a/keyboards/keychron/q3/iso_encoder/info.json b/keyboards/keychron/q3/iso_encoder/info.json
index 8571445087..f86e425c9d 100644
--- a/keyboards/keychron/q3/iso_encoder/info.json
+++ b/keyboards/keychron/q3/iso_encoder/info.json
@@ -1,23 +1,112 @@
{
- "keyboard_name": "Keychron Q3",
- "manufacturer": "Keychron",
- "url": "https://github.com/Keychron",
- "maintainer": "lalalademaxiya1",
"usb": {
- "vid": "0x3434",
"pid": "0x0123",
"device_version": "1.0.0"
},
- "rgb_matrix": {
- "driver": "ckled2001"
- },
"encoder": {
+ "enabled": true,
"rotary": [
{"pin_a": "A10", "pin_b": "A8"}
]
},
- "processor": "STM32L432",
- "bootloader": "stm32-dfu",
+ "rgb_matrix": {
+ "layout": [
+ {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1},
+ {"matrix": [0, 1], "x": 16, "y": 0, "flags": 1},
+ {"matrix": [0, 2], "x": 29, "y": 0, "flags": 1},
+ {"matrix": [0, 3], "x": 42, "y": 0, "flags": 1},
+ {"matrix": [0, 4], "x": 55, "y": 0, "flags": 1},
+ {"matrix": [0, 5], "x": 71, "y": 0, "flags": 1},
+ {"matrix": [0, 6], "x": 84, "y": 0, "flags": 1},
+ {"matrix": [0, 7], "x": 97, "y": 0, "flags": 1},
+ {"matrix": [0, 8], "x": 110, "y": 0, "flags": 1},
+ {"matrix": [0, 9], "x": 126, "y": 0, "flags": 1},
+ {"matrix": [0, 10], "x": 139, "y": 0, "flags": 1},
+ {"matrix": [0, 11], "x": 152, "y": 0, "flags": 1},
+ {"matrix": [0, 12], "x": 165, "y": 0, "flags": 1},
+ {"matrix": [0, 14], "x": 198, "y": 0, "flags": 1},
+ {"matrix": [0, 15], "x": 211, "y": 0, "flags": 1},
+ {"matrix": [3, 14], "x": 224, "y": 0, "flags": 1},
+
+ {"matrix": [1, 0], "x": 0, "y": 15, "flags": 1},
+ {"matrix": [1, 1], "x": 13, "y": 15, "flags": 4},
+ {"matrix": [1, 2], "x": 26, "y": 15, "flags": 4},
+ {"matrix": [1, 3], "x": 39, "y": 15, "flags": 4},
+ {"matrix": [1, 4], "x": 52, "y": 15, "flags": 4},
+ {"matrix": [1, 5], "x": 65, "y": 15, "flags": 4},
+ {"matrix": [1, 6], "x": 78, "y": 15, "flags": 4},
+ {"matrix": [1, 7], "x": 91, "y": 15, "flags": 4},
+ {"matrix": [1, 8], "x": 104, "y": 15, "flags": 4},
+ {"matrix": [1, 9], "x": 117, "y": 15, "flags": 4},
+ {"matrix": [1, 10], "x": 130, "y": 15, "flags": 4},
+ {"matrix": [1, 11], "x": 143, "y": 15, "flags": 4},
+ {"matrix": [1, 12], "x": 156, "y": 15, "flags": 4},
+ {"matrix": [1, 13], "x": 176, "y": 15, "flags": 1},
+ {"matrix": [1, 14], "x": 198, "y": 15, "flags": 1},
+ {"matrix": [1, 15], "x": 211, "y": 15, "flags": 1},
+ {"matrix": [3, 15], "x": 224, "y": 15, "flags": 1},
+
+ {"matrix": [2, 0], "x": 3, "y": 28, "flags": 1},
+ {"matrix": [2, 1], "x": 19, "y": 28, "flags": 4},
+ {"matrix": [2, 2], "x": 32, "y": 28, "flags": 4},
+ {"matrix": [2, 3], "x": 45, "y": 28, "flags": 4},
+ {"matrix": [2, 4], "x": 59, "y": 28, "flags": 4},
+ {"matrix": [2, 5], "x": 72, "y": 28, "flags": 4},
+ {"matrix": [2, 6], "x": 85, "y": 28, "flags": 4},
+ {"matrix": [2, 7], "x": 98, "y": 28, "flags": 4},
+ {"matrix": [2, 8], "x": 111, "y": 28, "flags": 4},
+ {"matrix": [2, 9], "x": 124, "y": 28, "flags": 4},
+ {"matrix": [2, 10], "x": 137, "y": 28, "flags": 4},
+ {"matrix": [2, 11], "x": 150, "y": 28, "flags": 4},
+ {"matrix": [2, 12], "x": 163, "y": 28, "flags": 4},
+ {"matrix": [2, 14], "x": 198, "y": 28, "flags": 1},
+ {"matrix": [2, 15], "x": 211, "y": 28, "flags": 1},
+ {"matrix": [3, 12], "x": 224, "y": 28, "flags": 1},
+
+ {"matrix": [3, 0], "x": 5, "y": 40, "flags": 8},
+ {"matrix": [3, 1], "x": 23, "y": 40, "flags": 4},
+ {"matrix": [3, 2], "x": 36, "y": 40, "flags": 4},
+ {"matrix": [3, 3], "x": 49, "y": 40, "flags": 4},
+ {"matrix": [3, 4], "x": 62, "y": 40, "flags": 4},
+ {"matrix": [3, 5], "x": 75, "y": 40, "flags": 4},
+ {"matrix": [3, 6], "x": 88, "y": 40, "flags": 4},
+ {"matrix": [3, 7], "x": 101, "y": 40, "flags": 4},
+ {"matrix": [3, 8], "x": 114, "y": 40, "flags": 4},
+ {"matrix": [3, 9], "x": 127, "y": 40, "flags": 4},
+ {"matrix": [3, 10], "x": 140, "y": 40, "flags": 4},
+ {"matrix": [3, 11], "x": 153, "y": 40, "flags": 4},
+ {"matrix": [3, 13], "x": 166, "y": 40, "flags": 4},
+ {"matrix": [2, 13], "x": 183, "y": 36, "flags": 1},
+
+ {"matrix": [4, 0], "x": 2, "y": 52, "flags": 1},
+ {"matrix": [4, 1], "x": 16, "y": 52, "flags": 4},
+ {"matrix": [4, 2], "x": 29, "y": 52, "flags": 4},
+ {"matrix": [4, 3], "x": 42, "y": 52, "flags": 4},
+ {"matrix": [4, 4], "x": 55, "y": 52, "flags": 4},
+ {"matrix": [4, 5], "x": 68, "y": 52, "flags": 4},
+ {"matrix": [4, 6], "x": 81, "y": 52, "flags": 4},
+ {"matrix": [4, 7], "x": 94, "y": 52, "flags": 4},
+ {"matrix": [4, 8], "x": 107, "y": 52, "flags": 4},
+ {"matrix": [4, 9], "x": 120, "y": 52, "flags": 4},
+ {"matrix": [4, 10], "x": 133, "y": 52, "flags": 4},
+ {"matrix": [4, 11], "x": 146, "y": 52, "flags": 4},
+ {"matrix": [4, 13], "x": 171, "y": 52, "flags": 1},
+ {"matrix": [4, 15], "x": 211, "y": 52, "flags": 1},
+
+ {"matrix": [5, 0], "x": 2, "y": 64, "flags": 1},
+ {"matrix": [5, 1], "x": 18, "y": 64, "flags": 1},
+ {"matrix": [5, 2], "x": 34, "y": 64, "flags": 1},
+ {"matrix": [5, 6], "x": 83, "y": 64, "flags": 4},
+ {"matrix": [5, 10], "x": 131, "y": 64, "flags": 1},
+ {"matrix": [5, 11], "x": 148, "y": 64, "flags": 1},
+ {"matrix": [5, 12], "x": 164, "y": 64, "flags": 1},
+ {"matrix": [5, 13], "x": 180, "y": 64, "flags": 1},
+ {"matrix": [5, 14], "x": 198, "y": 64, "flags": 1},
+ {"matrix": [5, 15], "x": 211, "y": 64, "flags": 1},
+ {"matrix": [4, 14], "x": 224, "y": 64, "flags": 1}
+ ]
+ },
+ "community_layouts": ["tkl_f13_iso"],
"layouts": {
"LAYOUT_tkl_f13_iso": {
"layout": [
diff --git a/keyboards/keychron/q3/iso_encoder/iso_encoder.c b/keyboards/keychron/q3/iso_encoder/iso_encoder.c
index d2bb169aac..725af67006 100644
--- a/keyboards/keychron/q3/iso_encoder/iso_encoder.c
+++ b/keyboards/keychron/q3/iso_encoder/iso_encoder.c
@@ -18,8 +18,8 @@
#ifdef RGB_MATRIX_ENABLE
-const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = {
-/* Refer to IS31 manual for these locations
+const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = {
+/* Refer to SNLED27351 manual for these locations
* driver
* | R location
* | | G location
@@ -120,36 +120,4 @@ const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = {
{1, C_15, A_15, B_15},
};
-#define __ NO_LED
-
-led_config_t g_led_config = {
- {
- // Key Matrix to LED Index
- { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, __, 13, 14 },
- { 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31 },
- { 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 62, 46, 47 },
- { 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 48, 61, 15, 32 },
- { 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, __, 75, 87, 76 },
- { 77, 78, 79, __, __, __, 80, __, __, __, 81, 82, 83, 84, 85, 86 },
- },
- {
- // LED Index to Physical Position
- {0,0}, {16,0}, {29,0}, {42,0}, {55,0}, {71,0}, {84,0}, {97,0}, {110,0}, {126,0}, {139,0}, {152,0}, {165,0}, {198,0}, {211,0}, {224,0},
- {0,15}, {13,15}, {26,15}, {39,15}, {52,15}, {65,15}, {78,15}, {91,15}, {104,15}, {117,15}, {130,15}, {143,15}, {156,15}, {176,15}, {198,15}, {211,15}, {224,15},
- {3,28}, {19,28}, {32,28}, {45,28}, {59,28}, {72,28}, {85,28}, {98,28}, {111,28}, {124,28}, {137,28}, {150,28}, {163,28}, {198,28}, {211,28}, {224,28},
- {5,40}, {23,40}, {36,40}, {49,40}, {62,40}, {75,40}, {88,40}, {101,40}, {114,40}, {127,40}, {140,40}, {153,40}, {166,40}, {183,36},
- {2,52}, {16,52}, {29,52}, {42,52}, {55,52}, {68,52}, {81,52}, {94,52}, {107,52}, {120,52}, {133,52}, {146,52}, {171,52}, {211,52},
- {2,64}, {18,64}, {34,64}, {83,64}, {131,64}, {148,64}, {164,64}, {180,64}, {198,64}, {211,64}, {224,64},
- },
- {
- // RGB LED Index to Flag
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, 1,
- 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1,
- 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
- 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1,
- 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 1,
- }
-};
-
#endif // RGB_MATRIX_ENABLE
diff --git a/keyboards/keychron/q3/iso_encoder/rules.mk b/keyboards/keychron/q3/iso_encoder/rules.mk
index 77b90f2466..5f0634f6d3 100644
--- a/keyboards/keychron/q3/iso_encoder/rules.mk
+++ b/keyboards/keychron/q3/iso_encoder/rules.mk
@@ -1,23 +1,4 @@
-# Build Options
-# change yes to no to disable
-#
-BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite
-MOUSEKEY_ENABLE = yes # Mouse keys
-EXTRAKEY_ENABLE = yes # Audio control and System control
-CONSOLE_ENABLE = no # Console for debug
-COMMAND_ENABLE = no # Commands for debug and configuration
-NKRO_ENABLE = yes # Enable USB N-key Rollover
-BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
-RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
-AUDIO_ENABLE = no # Audio output
-ENCODER_ENABLE = yes # Enable Encoder
-DIP_SWITCH_ENABLE = yes
-RGB_MATRIX_ENABLE = yes
-LTO_ENABLE = yes
-EEPROM_DRIVER = wear_leveling
-WEAR_LEVELING_DRIVER = embedded_flash
-
-# custom matrix setup
+# Custom matrix setup
CUSTOM_MATRIX = lite
SRC += matrix.c
diff --git a/keyboards/keychron/q3/jis/config.h b/keyboards/keychron/q3/jis/config.h
index 856dd14df4..1ea4386bba 100644
--- a/keyboards/keychron/q3/jis/config.h
+++ b/keyboards/keychron/q3/jis/config.h
@@ -16,21 +16,13 @@
#pragma once
-/* key matrix pins */
-#define MATRIX_ROW_PINS \
- { B5, B4, B3, A15, A14, A13 }
-#define MATRIX_COL_PINS \
- { C14, C15, A0, A1, A2, A3, A4, A5, A6, A7, B0, B1, A8, A9, A10, H3 }
-
/* If PH3 used with a stronger pull resistor then the following definition needs be included */
// #define MATRIX_UNSELECT_DRIVE_HIGH
/* RGB Matrix Configuration */
-#define DRIVER_1_LED_TOTAL 48
-#define DRIVER_2_LED_TOTAL 43
-#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL)
+#define RGB_MATRIX_LED_COUNT 91
-#define CKLED2001_CURRENT_TUNE \
+#define SNLED27351_CURRENT_TUNE \
{ 0x94, 0x94, 0x44, 0x94, 0x94, 0x44, 0x94, 0x94, 0x44, 0x94, 0x94, 0x44 }
/* Enable CapsLcok LED */
diff --git a/keyboards/keychron/q3/jis/info.json b/keyboards/keychron/q3/jis/info.json
index 6f17a7cf9d..7a45046f82 100644
--- a/keyboards/keychron/q3/jis/info.json
+++ b/keyboards/keychron/q3/jis/info.json
@@ -1,18 +1,116 @@
{
- "keyboard_name": "Keychron Q3",
- "manufacturer": "Keychron",
- "url": "https://github.com/Keychron",
- "maintainer": "lalalademaxiya1",
"usb": {
- "vid": "0x3434",
"pid": "0x0124",
"device_version": "1.0.0"
},
"rgb_matrix": {
- "driver": "ckled2001"
+ "layout": [
+ {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1},
+ {"matrix": [0, 1], "x": 26, "y": 0, "flags": 1},
+ {"matrix": [0, 2], "x": 39, "y": 0, "flags": 1},
+ {"matrix": [0, 3], "x": 52, "y": 0, "flags": 1},
+ {"matrix": [0, 4], "x": 65, "y": 0, "flags": 1},
+ {"matrix": [0, 5], "x": 84, "y": 0, "flags": 1},
+ {"matrix": [0, 6], "x": 97, "y": 0, "flags": 1},
+ {"matrix": [0, 7], "x": 111, "y": 0, "flags": 1},
+ {"matrix": [0, 8], "x": 124, "y": 0, "flags": 1},
+ {"matrix": [0, 9], "x": 143, "y": 0, "flags": 1},
+ {"matrix": [0, 10], "x": 156, "y": 0, "flags": 1},
+ {"matrix": [0, 11], "x": 169, "y": 0, "flags": 1},
+ {"matrix": [0, 12], "x": 182, "y": 0, "flags": 1},
+ {"matrix": [0, 14], "x": 198, "y": 0, "flags": 1},
+ {"matrix": [0, 15], "x": 211, "y": 0, "flags": 1},
+ {"matrix": [3, 14], "x": 224, "y": 0, "flags": 1},
+
+ {"matrix": [1, 0], "x": 0, "y": 15, "flags": 1},
+ {"matrix": [1, 1], "x": 13, "y": 15, "flags": 4},
+ {"matrix": [1, 2], "x": 26, "y": 15, "flags": 4},
+ {"matrix": [1, 3], "x": 39, "y": 15, "flags": 4},
+ {"matrix": [1, 4], "x": 52, "y": 15, "flags": 4},
+ {"matrix": [1, 5], "x": 65, "y": 15, "flags": 4},
+ {"matrix": [1, 6], "x": 78, "y": 15, "flags": 4},
+ {"matrix": [1, 7], "x": 91, "y": 15, "flags": 4},
+ {"matrix": [1, 8], "x": 104, "y": 15, "flags": 4},
+ {"matrix": [1, 9], "x": 117, "y": 15, "flags": 4},
+ {"matrix": [1, 10], "x": 130, "y": 15, "flags": 4},
+ {"matrix": [1, 11], "x": 143, "y": 15, "flags": 4},
+ {"matrix": [1, 12], "x": 156, "y": 15, "flags": 4},
+ {"matrix": [1, 13], "x": 169, "y": 15, "flags": 4},
+ {"matrix": [0, 13], "x": 182, "y": 15, "flags": 1},
+ {"matrix": [1, 14], "x": 198, "y": 15, "flags": 1},
+ {"matrix": [1, 15], "x": 211, "y": 15, "flags": 1},
+ {"matrix": [3, 15], "x": 224, "y": 15, "flags": 1},
+
+ {"matrix": [2, 0], "x": 3, "y": 28, "flags": 1},
+ {"matrix": [2, 1], "x": 19, "y": 28, "flags": 4},
+ {"matrix": [2, 2], "x": 32, "y": 28, "flags": 4},
+ {"matrix": [2, 3], "x": 45, "y": 28, "flags": 4},
+ {"matrix": [2, 4], "x": 59, "y": 28, "flags": 4},
+ {"matrix": [2, 5], "x": 72, "y": 28, "flags": 4},
+ {"matrix": [2, 6], "x": 85, "y": 28, "flags": 4},
+ {"matrix": [2, 7], "x": 98, "y": 28, "flags": 4},
+ {"matrix": [2, 8], "x": 111, "y": 28, "flags": 4},
+ {"matrix": [2, 9], "x": 124, "y": 28, "flags": 4},
+ {"matrix": [2, 10], "x": 137, "y": 28, "flags": 4},
+ {"matrix": [2, 11], "x": 150, "y": 28, "flags": 4},
+ {"matrix": [2, 12], "x": 163, "y": 28, "flags": 4},
+ {"matrix": [2, 14], "x": 198, "y": 28, "flags": 1},
+ {"matrix": [2, 15], "x": 211, "y": 28, "flags": 1},
+ {"matrix": [3, 12], "x": 224, "y": 28, "flags": 1},
+
+ {"matrix": [3, 0], "x": 5, "y": 40, "flags": 8},
+ {"matrix": [3, 1], "x": 23, "y": 40, "flags": 4},
+ {"matrix": [3, 2], "x": 36, "y": 40, "flags": 4},
+ {"matrix": [3, 3], "x": 49, "y": 40, "flags": 4},
+ {"matrix": [3, 4], "x": 62, "y": 40, "flags": 4},
+ {"matrix": [3, 5], "x": 75, "y": 40, "flags": 4},
+ {"matrix": [3, 6], "x": 88, "y": 40, "flags": 4},
+ {"matrix": [3, 7], "x": 101, "y": 40, "flags": 4},
+ {"matrix": [3, 8], "x": 114, "y": 40, "flags": 4},
+ {"matrix": [3, 9], "x": 127, "y": 40, "flags": 4},
+ {"matrix": [3, 10], "x": 140, "y": 40, "flags": 4},
+ {"matrix": [3, 11], "x": 153, "y": 40, "flags": 4},
+ {"matrix": [3, 13], "x": 166, "y": 40, "flags": 4},
+ {"matrix": [2, 13], "x": 183, "y": 36, "flags": 1},
+
+ {"matrix": [4, 0], "x": 8, "y": 52, "flags": 1},
+ {"matrix": [4, 2], "x": 29, "y": 52, "flags": 4},
+ {"matrix": [4, 3], "x": 42, "y": 52, "flags": 4},
+ {"matrix": [4, 4], "x": 55, "y": 52, "flags": 4},
+ {"matrix": [4, 5], "x": 68, "y": 52, "flags": 4},
+ {"matrix": [4, 6], "x": 81, "y": 52, "flags": 4},
+ {"matrix": [4, 7], "x": 94, "y": 52, "flags": 4},
+ {"matrix": [4, 8], "x": 107, "y": 52, "flags": 4},
+ {"matrix": [4, 9], "x": 120, "y": 52, "flags": 4},
+ {"matrix": [4, 10], "x": 133, "y": 52, "flags": 4},
+ {"matrix": [4, 11], "x": 146, "y": 52, "flags": 4},
+ {"matrix": [4, 12], "x": 159, "y": 52, "flags": 4},
+ {"matrix": [4, 13], "x": 177, "y": 52, "flags": 1},
+ {"matrix": [4, 15], "x": 211, "y": 52, "flags": 1},
+
+ {"matrix": [5, 0], "x": 2, "y": 64, "flags": 1},
+ {"matrix": [5, 1], "x": 16, "y": 64, "flags": 1},
+ {"matrix": [5, 2], "x": 31, "y": 64, "flags": 1},
+ {"matrix": [5, 3], "x": 45, "y": 64, "flags": 1},
+ {"matrix": [5, 6], "x": 83, "y": 64, "flags": 4},
+ {"matrix": [5, 9], "x": 119, "y": 64, "flags": 1},
+ {"matrix": [5, 10], "x": 135, "y": 64, "flags": 1},
+ {"matrix": [5, 11], "x": 151, "y": 64, "flags": 1},
+ {"matrix": [5, 12], "x": 166, "y": 64, "flags": 1},
+ {"matrix": [5, 13], "x": 180, "y": 64, "flags": 1},
+ {"matrix": [5, 14], "x": 198, "y": 64, "flags": 1},
+ {"matrix": [5, 15], "x": 211, "y": 64, "flags": 1},
+ {"matrix": [4, 14], "x": 224, "y": 64, "flags": 1}
+ ]
+ },
+ "matrix_pins": {
+ "rows": ["B5", "B4", "B3", "A15", "A14", "A13"],
+ "cols": ["C14", "C15", "A0", "A1", "A2", "A3", "A4", "A5", "A6", "A7", "B0", "B1", "A8", "A9", "A10", "H3"]
+ },
+ "layout_aliases": {
+ "LAYOUT_tkl_jis": "LAYOUT_jis_91"
},
- "processor": "STM32L432",
- "bootloader": "stm32-dfu",
+ "community_layouts": ["tkl_jis"],
"layouts": {
"LAYOUT_jis_91": {
"layout": [
diff --git a/keyboards/keychron/q3/jis/jis.c b/keyboards/keychron/q3/jis/jis.c
index f262d3c7d8..4b19eca52f 100644
--- a/keyboards/keychron/q3/jis/jis.c
+++ b/keyboards/keychron/q3/jis/jis.c
@@ -18,8 +18,8 @@
#ifdef RGB_MATRIX_ENABLE
-const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = {
-/* Refer to IS31 manual for these locations
+const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = {
+/* Refer to SNLED27351 manual for these locations
* driver
* | R location
* | | G location
@@ -123,36 +123,4 @@ const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = {
{1, C_15, A_15, B_15}, // Right
};
-#define __ NO_LED
-
-led_config_t g_led_config = {
- {
- // Key Matrix to LED Index
- { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 30, 13, 14 },
- { 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 31, 32 },
- { 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 63, 47, 48 },
- { 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 49, 62, 15, 33 },
- { 64, __, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 90, 77 },
- { 78, 79, 80, 81, __, __, 82, __, __, 83, 84, 85, 86, 87, 88, 89 },
- },
- {
- // LED Index to Physical Position
- {0,0}, {26,0}, {39,0}, {52,0}, {65,0}, {84,0}, {97,0}, {111,0}, {124,0}, {143,0}, {156,0}, {169,0}, {182,0}, {198,0}, {211,0}, {224,0},
- {0,15}, {13,15}, {26,15}, {39,15}, {52,15}, {65,15}, {78,15}, {91,15}, {104,15}, {117,15}, {130,15}, {143,15}, {156,15}, {169,15}, {182,15}, {198,15}, {211,15}, {224,15},
- {3,28}, {19,28}, {32,28}, {45,28}, {59,28}, {72,28}, {85,28}, {98,28}, {111,28}, {124,28}, {137,28}, {150,28}, {163,28}, {198,28}, {211,28}, {224,28},
- {5,40}, {23,40}, {36,40}, {49,40}, {62,40}, {75,40}, {88,40}, {101,40}, {114,40}, {127,40}, {140,40}, {153,40}, {166,40}, {183,36},
- {8,52}, {29,52}, {42,52}, {55,52}, {68,52}, {81,52}, {94,52}, {107,52}, {120,52}, {133,52}, {146,52}, {159,52}, {177,52}, {211,52},
- {2,64}, {16,64}, {31,64}, {45,64}, {81,64}, {119,64}, {135,64}, {151,64}, {166,64}, {180,64}, {198,64}, {211,64}, {224,64}
- },
- {
- // RGB LED Index to Flag
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, 1,
- 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1,
- 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
- 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1,
- 1, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1,
- }
-};
-
#endif // GB_MATRIX_ENABLE
diff --git a/keyboards/keychron/q3/jis/rules.mk b/keyboards/keychron/q3/jis/rules.mk
index 58bbb89a72..7ff128fa69 100644
--- a/keyboards/keychron/q3/jis/rules.mk
+++ b/keyboards/keychron/q3/jis/rules.mk
@@ -1,18 +1 @@
-# Build Options
-# change yes to no to disable
-#
-BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite
-MOUSEKEY_ENABLE = yes # Mouse keys
-EXTRAKEY_ENABLE = yes # Audio control and System control
-CONSOLE_ENABLE = no # Console for debug
-COMMAND_ENABLE = no # Commands for debug and configuration
-NKRO_ENABLE = yes # Enable USB N-key Rollover
-BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
-RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
-AUDIO_ENABLE = no # Audio output
-DIP_SWITCH_ENABLE = yes
-RGB_MATRIX_ENABLE = yes
-LTO_ENABLE = yes
-EEPROM_DRIVER = wear_leveling
-WEAR_LEVELING_DRIVER = embedded_flash
-
+# This file intentionally left blank \ No newline at end of file
diff --git a/keyboards/keychron/q3/jis_encoder/config.h b/keyboards/keychron/q3/jis_encoder/config.h
index 9fca0cfc73..5c5efb4ff6 100644
--- a/keyboards/keychron/q3/jis_encoder/config.h
+++ b/keyboards/keychron/q3/jis_encoder/config.h
@@ -17,21 +17,14 @@
#pragma once
/* key matrix pins */
-#define MATRIX_ROW_PINS \
- { B5, B4, B3, A15, A14, A13 }
-#define MATRIX_COL_PINS \
- { C14, C15, A0, A1, A2, A3, A4, A5, NO_PIN, NO_PIN, NO_PIN, NO_PIN, NO_PIN, NO_PIN, NO_PIN, NO_PIN }
+#define MATRIX_ROW_PINS { B5, B4, B3, A15, A14, A13 }
+#define MATRIX_COL_PINS { C14, C15, A0, A1, A2, A3, A4, A5, NO_PIN, NO_PIN, NO_PIN, NO_PIN, NO_PIN, NO_PIN, NO_PIN, NO_PIN }
/* RGB Matrix Configuration */
-#define DRIVER_1_LED_TOTAL 49
-#define DRIVER_2_LED_TOTAL 43
-#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL)
+#define RGB_MATRIX_LED_COUNT 92
-#define CKLED2001_CURRENT_TUNE \
+#define SNLED27351_CURRENT_TUNE \
{ 0x94, 0x94, 0x44, 0x94, 0x94, 0x44, 0x94, 0x94, 0x44, 0x94, 0x94, 0x44 }
-/* Encoder Configuration */
-#define ENCODER_DEFAULT_POS 0x3
-
/* Enable CapsLcok LED */
#define CAPS_LOCK_LED_INDEX 51
diff --git a/keyboards/keychron/q3/jis_encoder/info.json b/keyboards/keychron/q3/jis_encoder/info.json
index fd1f361f57..9fc61c7e6c 100644
--- a/keyboards/keychron/q3/jis_encoder/info.json
+++ b/keyboards/keychron/q3/jis_encoder/info.json
@@ -1,23 +1,119 @@
{
- "keyboard_name": "Keychron Q3",
- "manufacturer": "Keychron",
- "url": "https://github.com/Keychron",
- "maintainer": "lalalademaxiya1",
"usb": {
- "vid": "0x3434",
"pid": "0x0125",
"device_version": "1.0.0"
},
- "rgb_matrix": {
- "driver": "ckled2001"
- },
"encoder": {
+ "enabled": true,
"rotary": [
{"pin_a": "A10", "pin_b": "A8"}
]
},
- "processor": "STM32L432",
- "bootloader": "stm32-dfu",
+ "rgb_matrix": {
+ "layout": [
+ {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1},
+ {"matrix": [0, 1], "x": 16, "y": 0, "flags": 1},
+ {"matrix": [0, 2], "x": 29, "y": 0, "flags": 1},
+ {"matrix": [0, 3], "x": 42, "y": 0, "flags": 1},
+ {"matrix": [0, 4], "x": 55, "y": 0, "flags": 1},
+ {"matrix": [0, 5], "x": 71, "y": 0, "flags": 1},
+ {"matrix": [0, 6], "x": 84, "y": 0, "flags": 1},
+ {"matrix": [0, 7], "x": 97, "y": 0, "flags": 1},
+ {"matrix": [0, 8], "x": 110, "y": 0, "flags": 1},
+ {"matrix": [0, 9], "x": 126, "y": 0, "flags": 1},
+ {"matrix": [0, 10], "x": 139, "y": 0, "flags": 1},
+ {"matrix": [0, 11], "x": 152, "y": 0, "flags": 1},
+ {"matrix": [0, 12], "x": 165, "y": 0, "flags": 1},
+ {"matrix": [0, 13], "x": 182, "y": 0, "flags": 1},
+ {"matrix": [0, 14], "x": 198, "y": 0, "flags": 1},
+ {"matrix": [0, 15], "x": 211, "y": 0, "flags": 1},
+ {"matrix": [3, 14], "x": 224, "y": 0, "flags": 1},
+
+ {"matrix": [1, 0], "x": 0, "y": 15, "flags": 1},
+ {"matrix": [1, 1], "x": 13, "y": 15, "flags": 4},
+ {"matrix": [1, 2], "x": 26, "y": 15, "flags": 4},
+ {"matrix": [1, 3], "x": 39, "y": 15, "flags": 4},
+ {"matrix": [1, 4], "x": 52, "y": 15, "flags": 4},
+ {"matrix": [1, 5], "x": 65, "y": 15, "flags": 4},
+ {"matrix": [1, 6], "x": 78, "y": 15, "flags": 4},
+ {"matrix": [1, 7], "x": 91, "y": 15, "flags": 4},
+ {"matrix": [1, 8], "x": 104, "y": 15, "flags": 4},
+ {"matrix": [1, 9], "x": 117, "y": 15, "flags": 4},
+ {"matrix": [1, 10], "x": 130, "y": 15, "flags": 4},
+ {"matrix": [1, 11], "x": 143, "y": 15, "flags": 4},
+ {"matrix": [1, 12], "x": 156, "y": 15, "flags": 4},
+ {"matrix": [1, 13], "x": 169, "y": 15, "flags": 4},
+ {"matrix": [0, 13], "x": 182, "y": 15, "flags": 1},
+ {"matrix": [1, 14], "x": 198, "y": 15, "flags": 1},
+ {"matrix": [1, 15], "x": 211, "y": 15, "flags": 1},
+ {"matrix": [3, 15], "x": 224, "y": 15, "flags": 1},
+
+ {"matrix": [2, 0], "x": 3, "y": 28, "flags": 1},
+ {"matrix": [2, 1], "x": 19, "y": 28, "flags": 4},
+ {"matrix": [2, 2], "x": 32, "y": 28, "flags": 4},
+ {"matrix": [2, 3], "x": 45, "y": 28, "flags": 4},
+ {"matrix": [2, 4], "x": 59, "y": 28, "flags": 4},
+ {"matrix": [2, 5], "x": 72, "y": 28, "flags": 4},
+ {"matrix": [2, 6], "x": 85, "y": 28, "flags": 4},
+ {"matrix": [2, 7], "x": 98, "y": 28, "flags": 4},
+ {"matrix": [2, 8], "x": 111, "y": 28, "flags": 4},
+ {"matrix": [2, 9], "x": 124, "y": 28, "flags": 4},
+ {"matrix": [2, 10], "x": 137, "y": 28, "flags": 4},
+ {"matrix": [2, 11], "x": 150, "y": 28, "flags": 4},
+ {"matrix": [2, 12], "x": 163, "y": 28, "flags": 4},
+ {"matrix": [2, 14], "x": 198, "y": 28, "flags": 1},
+ {"matrix": [2, 15], "x": 211, "y": 28, "flags": 1},
+ {"matrix": [3, 12], "x": 224, "y": 28, "flags": 1},
+
+ {"matrix": [3, 0], "x": 5, "y": 40, "flags": 8},
+ {"matrix": [3, 1], "x": 23, "y": 40, "flags": 4},
+ {"matrix": [3, 2], "x": 36, "y": 40, "flags": 4},
+ {"matrix": [3, 3], "x": 49, "y": 40, "flags": 4},
+ {"matrix": [3, 4], "x": 62, "y": 40, "flags": 4},
+ {"matrix": [3, 5], "x": 75, "y": 40, "flags": 4},
+ {"matrix": [3, 6], "x": 88, "y": 40, "flags": 4},
+ {"matrix": [3, 7], "x": 101, "y": 40, "flags": 4},
+ {"matrix": [3, 8], "x": 114, "y": 40, "flags": 4},
+ {"matrix": [3, 9], "x": 127, "y": 40, "flags": 4},
+ {"matrix": [3, 10], "x": 140, "y": 40, "flags": 4},
+ {"matrix": [3, 11], "x": 153, "y": 40, "flags": 4},
+ {"matrix": [3, 13], "x": 166, "y": 40, "flags": 4},
+ {"matrix": [2, 13], "x": 183, "y": 36, "flags": 1},
+
+ {"matrix": [4, 0], "x": 8, "y": 52, "flags": 1},
+ {"matrix": [4, 2], "x": 29, "y": 52, "flags": 4},
+ {"matrix": [4, 3], "x": 42, "y": 52, "flags": 4},
+ {"matrix": [4, 4], "x": 55, "y": 52, "flags": 4},
+ {"matrix": [4, 5], "x": 68, "y": 52, "flags": 4},
+ {"matrix": [4, 6], "x": 81, "y": 52, "flags": 4},
+ {"matrix": [4, 7], "x": 94, "y": 52, "flags": 4},
+ {"matrix": [4, 8], "x": 107, "y": 52, "flags": 4},
+ {"matrix": [4, 9], "x": 120, "y": 52, "flags": 4},
+ {"matrix": [4, 10], "x": 133, "y": 52, "flags": 4},
+ {"matrix": [4, 11], "x": 146, "y": 52, "flags": 4},
+ {"matrix": [4, 12], "x": 159, "y": 52, "flags": 4},
+ {"matrix": [4, 13], "x": 177, "y": 52, "flags": 1},
+ {"matrix": [4, 15], "x": 211, "y": 52, "flags": 1},
+
+ {"matrix": [5, 0], "x": 2, "y": 64, "flags": 1},
+ {"matrix": [5, 1], "x": 16, "y": 64, "flags": 1},
+ {"matrix": [5, 2], "x": 31, "y": 64, "flags": 1},
+ {"matrix": [5, 3], "x": 45, "y": 64, "flags": 1},
+ {"matrix": [5, 6], "x": 81, "y": 64, "flags": 4},
+ {"matrix": [5, 9], "x": 119, "y": 64, "flags": 1},
+ {"matrix": [5, 10], "x": 135, "y": 64, "flags": 1},
+ {"matrix": [5, 11], "x": 151, "y": 64, "flags": 1},
+ {"matrix": [5, 12], "x": 166, "y": 64, "flags": 1},
+ {"matrix": [5, 13], "x": 180, "y": 64, "flags": 1},
+ {"matrix": [5, 14], "x": 198, "y": 64, "flags": 1},
+ {"matrix": [5, 15], "x": 211, "y": 64, "flags": 1},
+ {"matrix": [4, 14], "x": 224, "y": 64, "flags": 1}
+ ]
+ },
+ "layout_aliases": {
+ "LAYOUT_tkl_f13_jis": "LAYOUT_jis_92"
+ },
+ "community_layouts": ["tkl_f13_jis"],
"layouts": {
"LAYOUT_jis_92": {
"layout": [
diff --git a/keyboards/keychron/q3/jis_encoder/jis_encoder.c b/keyboards/keychron/q3/jis_encoder/jis_encoder.c
index 0a97c5ca68..8770f9d33c 100644
--- a/keyboards/keychron/q3/jis_encoder/jis_encoder.c
+++ b/keyboards/keychron/q3/jis_encoder/jis_encoder.c
@@ -18,8 +18,8 @@
#ifdef RGB_MATRIX_ENABLE
-const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = {
-/* Refer to IS31 manual for these locations
+const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = {
+/* Refer to SNLED27351 manual for these locations
* driver
* | R location
* | | G location
@@ -124,36 +124,4 @@ const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = {
{1, C_15, A_15, B_15}, // Right
};
-#define __ NO_LED
-
-led_config_t g_led_config = {
- {
- // Key Matrix to LED Index
- { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 },
- { 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 32, 33 },
- { 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 64, 48, 49 },
- { 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 50, 63, 16, 34 },
- { 65, __, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 91, 78 },
- { 79, 80, 81, 82, __, 31, 83, __, __, 84, 85, 86, 87, 88, 89, 90 },
- },
- {
- // LED Index to Physical Position
- {0,0}, {16,0}, {29,0}, {42,0}, {55,0}, {71,0}, {84,0}, {97,0}, {110,0}, {126,0}, {139,0}, {152,0}, {165,0}, {182,0}, {198,0}, {211,0}, {224,0},
- {0,15}, {13,15}, {26,15}, {39,15}, {52,15}, {65,15}, {78,15}, {91,15}, {104,15}, {117,15}, {130,15}, {143,15}, {156,15}, {169,15}, {182,15}, {198,15}, {211,15}, {224,15},
- {3,28}, {19,28}, {32,28}, {45,28}, {59,28}, {72,28}, {85,28}, {98,28}, {111,28}, {124,28}, {137,28}, {150,28}, {163,28}, {198,28}, {211,28}, {224,28},
- {5,40}, {23,40}, {36,40}, {49,40}, {62,40}, {75,40}, {88,40}, {101,40}, {114,40}, {127,40}, {140,40}, {153,40}, {166,40}, {183,36},
- {8,52}, {29,52}, {42,52}, {55,52}, {68,52}, {81,52}, {94,52}, {107,52}, {120,52}, {133,52}, {146,52}, {159,52}, {177,52}, {211,52},
- {2,64}, {16,64}, {31,64}, {45,64}, {81,64}, {119,64}, {135,64}, {151,64}, {166,64}, {180,64}, {198,64}, {211,64}, {224,64},
- },
- {
- // RGB LED Index to Flag
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, 1,
- 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1,
- 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
- 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1,
- 1, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1,
- }
-};
-
#endif // RGB_MATRIX_ENABLE
diff --git a/keyboards/keychron/q3/jis_encoder/rules.mk b/keyboards/keychron/q3/jis_encoder/rules.mk
index 77b90f2466..5f0634f6d3 100644
--- a/keyboards/keychron/q3/jis_encoder/rules.mk
+++ b/keyboards/keychron/q3/jis_encoder/rules.mk
@@ -1,23 +1,4 @@
-# Build Options
-# change yes to no to disable
-#
-BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite
-MOUSEKEY_ENABLE = yes # Mouse keys
-EXTRAKEY_ENABLE = yes # Audio control and System control
-CONSOLE_ENABLE = no # Console for debug
-COMMAND_ENABLE = no # Commands for debug and configuration
-NKRO_ENABLE = yes # Enable USB N-key Rollover
-BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
-RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
-AUDIO_ENABLE = no # Audio output
-ENCODER_ENABLE = yes # Enable Encoder
-DIP_SWITCH_ENABLE = yes
-RGB_MATRIX_ENABLE = yes
-LTO_ENABLE = yes
-EEPROM_DRIVER = wear_leveling
-WEAR_LEVELING_DRIVER = embedded_flash
-
-# custom matrix setup
+# Custom matrix setup
CUSTOM_MATRIX = lite
SRC += matrix.c
diff --git a/keyboards/keychron/q3/readme.md b/keyboards/keychron/q3/readme.md
index 8e25a1b332..073455336f 100644
--- a/keyboards/keychron/q3/readme.md
+++ b/keyboards/keychron/q3/readme.md
@@ -1,22 +1,30 @@
# Keychron Q3
+![Keychron Q3](https://i.imgur.com/KjP4nqdh.jpg)
+
A customizable 80% keyboard.
* Keyboard Maintainer: [Keychron](https://github.com/keychron)
* Hardware Supported: Keychron Q3
-* Hardware Availability: [Keychron](https://www.keychron.com)
+* Hardware Availability: [Keychron Q3 QMK Custom Mechanical Keyboard](https://www.keychron.com/products/keychron-q3-qmk-custom-mechanical-keyboard)
Make example for this keyboard (after setting up your build environment):
-```
- make keychron/q3/ansi:default
-```
+ make keychron/q3/ansi:default
+ make keychron/q3/ansi_encoder:default
+ make keychron/q3/iso:default
+ make keychron/q3/iso_encoder:default
+ make keychron/q3/jis:default
+ make keychron/q3/jis_encoder:default
Flashing example for this keyboard:
-```
- make keychron/q3/ansi:default:flash
-```
+ make keychron/q3/ansi:default:flash
+ make keychron/q3/ansi_encoder:default:flash
+ make keychron/q3/iso:default:flash
+ make keychron/q3/iso_encoder:default:flash
+ make keychron/q3/jis:default:flash
+ make keychron/q3/jis_encoder:default:flash
**Reset Key**: Hold down the key located at *K00*, commonly programmed as *Esc* while plugging in the keyboard.
diff --git a/keyboards/keychron/q4/ansi/config.h b/keyboards/keychron/q4/ansi/config.h
new file mode 100644
index 0000000000..c05e8f73a0
--- /dev/null
+++ b/keyboards/keychron/q4/ansi/config.h
@@ -0,0 +1,20 @@
+/* Copyright 2022 @ Keychron (https://www.keychron.com)
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#pragma once
+
+/* Enable CapsLcok LED*/
+#define CAPS_LOCK_LED_INDEX 28
diff --git a/keyboards/keychron/q4/ansi/info.json b/keyboards/keychron/q4/ansi/info.json
new file mode 100644
index 0000000000..392ef8fc45
--- /dev/null
+++ b/keyboards/keychron/q4/ansi/info.json
@@ -0,0 +1,147 @@
+{
+ "usb": {
+ "pid": "0x0140",
+ "device_version": "1.0.6"
+ },
+ "rgb_matrix": {
+ "layout": [
+ {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1},
+ {"matrix": [0, 1], "x": 16, "y": 0, "flags": 4},
+ {"matrix": [0, 2], "x": 32, "y": 0, "flags": 4},
+ {"matrix": [0, 3], "x": 48, "y": 0, "flags": 4},
+ {"matrix": [0, 4], "x": 64, "y": 0, "flags": 4},
+ {"matrix": [0, 5], "x": 81, "y": 0, "flags": 4},
+ {"matrix": [0, 6], "x": 97, "y": 0, "flags": 4},
+ {"matrix": [0, 7], "x": 113, "y": 0, "flags": 4},
+ {"matrix": [0, 8], "x": 129, "y": 0, "flags": 4},
+ {"matrix": [0, 9], "x": 145, "y": 0, "flags": 4},
+ {"matrix": [0, 10], "x": 161, "y": 0, "flags": 4},
+ {"matrix": [0, 11], "x": 177, "y": 0, "flags": 4},
+ {"matrix": [0, 12], "x": 193, "y": 0, "flags": 4},
+ {"matrix": [0, 13], "x": 218, "y": 0, "flags": 1},
+
+ {"matrix": [1, 0], "x": 4,"y": 16, "flags": 1},
+ {"matrix": [1, 1], "x": 24,"y": 16, "flags": 4},
+ {"matrix": [1, 2], "x": 40,"y": 16, "flags": 4},
+ {"matrix": [1, 3], "x": 56,"y": 16, "flags": 4},
+ {"matrix": [1, 4], "x": 73,"y": 16, "flags": 4},
+ {"matrix": [1, 5], "x": 89,"y": 16, "flags": 4},
+ {"matrix": [1, 6], "x": 105,"y": 16, "flags": 4},
+ {"matrix": [1, 7], "x": 121,"y": 16, "flags": 4},
+ {"matrix": [1, 8], "x": 137,"y": 16, "flags": 4},
+ {"matrix": [1, 9], "x": 153,"y": 16, "flags": 4},
+ {"matrix": [1, 10], "x": 169,"y": 16, "flags": 4},
+ {"matrix": [1, 11], "x": 185,"y": 16, "flags": 4},
+ {"matrix": [1, 12], "x": 202,"y": 16, "flags": 4},
+ {"matrix": [1, 13], "x": 222,"y": 16, "flags": 4},
+
+ {"matrix": [2, 0], "x": 6, "y": 32, "flags": 8},
+ {"matrix": [2, 1], "x": 28, "y": 32, "flags": 4},
+ {"matrix": [2, 2], "x": 44, "y": 32, "flags": 4},
+ {"matrix": [2, 3], "x": 60, "y": 32, "flags": 4},
+ {"matrix": [2, 4], "x": 77, "y": 32, "flags": 4},
+ {"matrix": [2, 5], "x": 93, "y": 32, "flags": 4},
+ {"matrix": [2, 6], "x": 109, "y": 32, "flags": 4},
+ {"matrix": [2, 7], "x": 125, "y": 32, "flags": 4},
+ {"matrix": [2, 8], "x": 141, "y": 32, "flags": 4},
+ {"matrix": [2, 9], "x": 157, "y": 32, "flags": 4},
+ {"matrix": [2, 10], "x": 173, "y": 32, "flags": 4},
+ {"matrix": [2, 11], "x": 189, "y": 32, "flags": 4},
+ {"matrix": [2, 13], "x": 216, "y": 32, "flags": 1},
+
+ {"matrix": [3, 0], "x": 10, "y": 48, "flags": 1},
+ {"matrix": [3, 2], "x": 36, "y": 48, "flags": 4},
+ {"matrix": [3, 3], "x": 52, "y": 48, "flags": 4},
+ {"matrix": [3, 4], "x": 69, "y": 48, "flags": 4},
+ {"matrix": [3, 5], "x": 85, "y": 48, "flags": 4},
+ {"matrix": [3, 6], "x": 101, "y": 48, "flags": 4},
+ {"matrix": [3, 7], "x": 117, "y": 48, "flags": 4},
+ {"matrix": [3, 8], "x": 133, "y": 48, "flags": 4},
+ {"matrix": [3, 9], "x": 149, "y": 48, "flags": 4},
+ {"matrix": [3, 10], "x": 165, "y": 48, "flags": 4},
+ {"matrix": [3, 11], "x": 181, "y": 48, "flags": 4},
+ {"matrix": [3, 13], "x": 212, "y": 48, "flags": 1},
+
+ {"matrix": [4, 0], "x": 2, "y": 64, "flags": 1},
+ {"matrix": [4, 1], "x": 22, "y": 64, "flags": 1},
+ {"matrix": [4, 2], "x": 42, "y": 64, "flags": 1},
+ {"matrix": [4, 6], "x": 103, "y": 64, "flags": 4},
+ {"matrix": [4, 10], "x": 164, "y": 64, "flags": 1},
+ {"matrix": [4, 11], "x": 184, "y": 64, "flags": 1},
+ {"matrix": [4, 12], "x": 204, "y": 64, "flags": 1},
+ {"matrix": [4, 13], "x": 224, "y": 64, "flags": 1}
+
+ ]
+ },
+ "layouts": {
+ "LAYOUT_ansi_61": {
+ "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": [0, 6], "x": 6, "y": 0},
+ {"matrix": [0, 7], "x": 7, "y": 0},
+ {"matrix": [0, 8], "x": 8, "y": 0},
+ {"matrix": [0, 9], "x": 9, "y": 0},
+ {"matrix": [0, 10], "x": 10, "y": 0},
+ {"matrix": [0, 11], "x": 11, "y": 0},
+ {"matrix": [0, 12], "x": 12, "y": 0},
+ {"matrix": [0, 13], "x": 13, "y": 0, "w": 2},
+
+ {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
+ {"matrix": [1, 1], "x": 1.5, "y": 1},
+ {"matrix": [1, 2], "x": 2.5, "y": 1},
+ {"matrix": [1, 3], "x": 3.5, "y": 1},
+ {"matrix": [1, 4], "x": 4.5, "y": 1},
+ {"matrix": [1, 5], "x": 5.5, "y": 1},
+ {"matrix": [1, 6], "x": 6.5, "y": 1},
+ {"matrix": [1, 7], "x": 7.5, "y": 1},
+ {"matrix": [1, 8], "x": 8.5, "y": 1},
+ {"matrix": [1, 9], "x": 9.5, "y": 1},
+ {"matrix": [1, 10], "x": 10.5, "y": 1},
+ {"matrix": [1, 11], "x": 11.5, "y": 1},
+ {"matrix": [1, 12], "x": 12.5, "y": 1},
+ {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5},
+
+ {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
+ {"matrix": [2, 1], "x": 1.75, "y": 2},
+ {"matrix": [2, 2], "x": 2.75, "y": 2},
+ {"matrix": [2, 3], "x": 3.75, "y": 2},
+ {"matrix": [2, 4], "x": 4.75, "y": 2},
+ {"matrix": [2, 5], "x": 5.75, "y": 2},
+ {"matrix": [2, 6], "x": 6.75, "y": 2},
+ {"matrix": [2, 7], "x": 7.75, "y": 2},
+ {"matrix": [2, 8], "x": 8.75, "y": 2},
+ {"matrix": [2, 9], "x": 9.75, "y": 2},
+ {"matrix": [2, 10], "x": 10.75, "y": 2},
+ {"matrix": [2, 11], "x": 11.75, "y": 2},
+ {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25},
+
+ {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25},
+ {"matrix": [3, 2], "x": 2.25, "y": 3},
+ {"matrix": [3, 3], "x": 3.25, "y": 3},
+ {"matrix": [3, 4], "x": 4.25, "y": 3},
+ {"matrix": [3, 5], "x": 5.25, "y": 3},
+ {"matrix": [3, 6], "x": 6.25, "y": 3},
+ {"matrix": [3, 7], "x": 7.25, "y": 3},
+ {"matrix": [3, 8], "x": 8.25, "y": 3},
+ {"matrix": [3, 9], "x": 9.25, "y": 3},
+ {"matrix": [3, 10], "x": 10.25, "y": 3},
+ {"matrix": [3, 11], "x": 11.25, "y": 3},
+ {"matrix": [3, 13], "x": 12.25, "y": 3, "w": 2.75},
+
+ {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25},
+ {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25},
+ {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25},
+ {"matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25},
+ {"matrix": [4, 10], "x": 10, "y": 4, "w": 1.25},
+ {"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25},
+ {"matrix": [4, 12], "x": 12.5, "y": 4, "w": 1.25},
+ {"matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25}
+ ]
+ }
+ }
+}
diff --git a/keyboards/keychron/q4/ansi_v1/keymaps/default/keymap.c b/keyboards/keychron/q4/ansi/keymaps/default/keymap.c
index dd8669c3fb..dd8669c3fb 100644
--- a/keyboards/keychron/q4/ansi_v1/keymaps/default/keymap.c
+++ b/keyboards/keychron/q4/ansi/keymaps/default/keymap.c
diff --git a/keyboards/keychron/q4/ansi_v1/keymaps/keychron/keymap.c b/keyboards/keychron/q4/ansi/keymaps/keychron/keymap.c
index d58af0f244..d58af0f244 100644
--- a/keyboards/keychron/q4/ansi_v1/keymaps/keychron/keymap.c
+++ b/keyboards/keychron/q4/ansi/keymaps/keychron/keymap.c
diff --git a/keyboards/keychron/q4/ansi_v1/keymaps/keychron/rules.mk b/keyboards/keychron/q4/ansi/keymaps/keychron/rules.mk
index 1f273de340..1f273de340 100644
--- a/keyboards/keychron/q4/ansi_v1/keymaps/keychron/rules.mk
+++ b/keyboards/keychron/q4/ansi/keymaps/keychron/rules.mk
diff --git a/keyboards/keychron/q4/ansi_v1/keymaps/via/keymap.c b/keyboards/keychron/q4/ansi/keymaps/via/keymap.c
index dd8669c3fb..dd8669c3fb 100644
--- a/keyboards/keychron/q4/ansi_v1/keymaps/via/keymap.c
+++ b/keyboards/keychron/q4/ansi/keymaps/via/keymap.c
diff --git a/keyboards/keychron/q4/ansi_v1/keymaps/via/rules.mk b/keyboards/keychron/q4/ansi/keymaps/via/rules.mk
index 036bd6d1c3..036bd6d1c3 100644
--- a/keyboards/keychron/q4/ansi_v1/keymaps/via/rules.mk
+++ b/keyboards/keychron/q4/ansi/keymaps/via/rules.mk
diff --git a/keyboards/keychron/q4/ansi_v1/readme.md b/keyboards/keychron/q4/ansi/readme.md
index bd2f3fd8a8..bd2f3fd8a8 100644
--- a/keyboards/keychron/q4/ansi_v1/readme.md
+++ b/keyboards/keychron/q4/ansi/readme.md
diff --git a/keyboards/keychron/q4/ansi/v1/config.h b/keyboards/keychron/q4/ansi/v1/config.h
new file mode 100644
index 0000000000..2f437c72c6
--- /dev/null
+++ b/keyboards/keychron/q4/ansi/v1/config.h
@@ -0,0 +1,26 @@
+/* Copyright 2022 @ Keychron (https://www.keychron.com)
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#pragma once
+
+/* RGB Matrix Driver Configuration */
+#define SNLED27351_I2C_ADDRESS_1 SNLED27351_I2C_ADDRESS_VDDIO
+#define SNLED27351_I2C_ADDRESS_2 SNLED27351_I2C_ADDRESS_GND
+
+/* RGB Matrix Configuration */
+#define RGB_MATRIX_LED_COUNT 61
+
+#define SNLED27351_PHASE_CHANNEL SNLED27351_SCAN_PHASE_9_CHANNEL
diff --git a/keyboards/keychron/q4/ansi/v1/rules.mk b/keyboards/keychron/q4/ansi/v1/rules.mk
new file mode 100644
index 0000000000..7ff128fa69
--- /dev/null
+++ b/keyboards/keychron/q4/ansi/v1/rules.mk
@@ -0,0 +1 @@
+# This file intentionally left blank \ No newline at end of file
diff --git a/keyboards/keychron/q4/ansi/v1/v1.c b/keyboards/keychron/q4/ansi/v1/v1.c
new file mode 100644
index 0000000000..6c1fecefec
--- /dev/null
+++ b/keyboards/keychron/q4/ansi/v1/v1.c
@@ -0,0 +1,95 @@
+/* Copyright 2022 @ Keychron (https://www.keychron.com)
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include "quantum.h"
+
+#ifdef RGB_MATRIX_ENABLE
+
+const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = {
+/* Refer to SNLED27351 manual for these locations
+ * driver
+ * | R location
+ * | | G location
+ * | | | B location
+ * | | | | */
+ {0, C_1, A_1, B_1},
+ {0, C_2, A_2, B_2},
+ {0, C_3, A_3, B_3},
+ {0, C_4, A_4, B_4},
+ {0, C_5, A_5, B_5},
+ {0, C_6, A_6, B_6},
+ {0, C_7, A_7, B_7},
+ {0, C_8, A_8, B_8},
+ {0, C_9, A_9, B_9},
+ {0, C_10, A_10, B_10},
+ {0, C_11, A_11, B_11},
+ {0, C_12, A_12, B_12},
+ {0, C_13, A_13, B_13},
+ {0, C_14, A_14, B_14},
+
+ {0, F_1, D_1, E_1},
+ {0, F_2, D_2, E_2},
+ {0, F_3, D_3, E_3},
+ {0, F_4, D_4, E_4},
+ {0, F_5, D_5, E_5},
+ {0, F_6, D_6, E_6},
+ {0, F_7, D_7, E_7},
+ {0, F_8, D_8, E_8},
+ {0, F_9, D_9, E_9},
+ {0, F_10, D_10, E_10},
+ {0, F_11, D_11, E_11},
+ {0, F_12, D_12, E_12},
+ {0, F_13, D_13, E_13},
+ {0, F_14, D_14, E_14},
+
+ {0, I_1, G_1, H_1},
+ {0, I_2, G_2, H_2},
+ {0, I_3, G_3, H_3},
+ {1, I_4, G_4, H_4},
+ {1, I_5, G_5, H_5},
+ {1, I_6, G_6, H_6},
+ {1, I_7, G_7, H_7},
+ {1, I_8, G_8, H_8},
+ {1, I_9, G_9, H_9},
+ {1, I_10, G_10, H_10},
+ {1, I_11, G_11, H_11},
+ {1, I_12, G_12, H_12},
+ {1, I_14, G_14, H_14},
+
+ {1, C_1, A_1, B_1},
+ {1, C_3, A_3, B_3},
+ {1, C_4, A_4, B_4},
+ {1, C_5, A_5, B_5},
+ {1, C_6, A_6, B_6},
+ {1, C_7, A_7, B_7},
+ {1, C_8, A_8, B_8},
+ {1, C_9, A_9, B_9},
+ {1, C_10, A_10, B_10},
+ {1, C_11, A_11, B_11},
+ {1, C_12, A_12, B_12},
+ {1, C_14, A_14, B_14},
+
+ {1, F_1, D_1, E_1},
+ {1, F_2, D_2, E_2},
+ {1, F_3, D_3, E_3},
+ {1, F_7, D_7, E_7},
+ {1, F_11, D_11, E_11},
+ {1, F_12, D_12, E_12},
+ {1, F_13, D_13, E_13},
+ {1, F_14, D_14, E_14},
+};
+
+#endif
diff --git a/keyboards/keychron/q4/ansi/v2/config.h b/keyboards/keychron/q4/ansi/v2/config.h
new file mode 100644
index 0000000000..029e7727a8
--- /dev/null
+++ b/keyboards/keychron/q4/ansi/v2/config.h
@@ -0,0 +1,23 @@
+/* Copyright 2022 @ Keychron (https://www.keychron.com)
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#pragma once
+
+/* RGB Matrix Driver Configuration */
+#define SNLED27351_I2C_ADDRESS_1 SNLED27351_I2C_ADDRESS_GND
+
+/* RGB Matrix Configuration */
+#define RGB_MATRIX_LED_COUNT 61
diff --git a/keyboards/keychron/q4/ansi/v2/rules.mk b/keyboards/keychron/q4/ansi/v2/rules.mk
new file mode 100644
index 0000000000..7ff128fa69
--- /dev/null
+++ b/keyboards/keychron/q4/ansi/v2/rules.mk
@@ -0,0 +1 @@
+# This file intentionally left blank \ No newline at end of file
diff --git a/keyboards/keychron/q4/ansi/v2/v2.c b/keyboards/keychron/q4/ansi/v2/v2.c
new file mode 100644
index 0000000000..468a87af41
--- /dev/null
+++ b/keyboards/keychron/q4/ansi/v2/v2.c
@@ -0,0 +1,95 @@
+/* Copyright 2022 @ Keychron (https://www.keychron.com)
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include "quantum.h"
+
+#ifdef RGB_MATRIX_ENABLE
+
+const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = {
+/* Refer to SNLED27351 manual for these locations
+ * driver
+ * | R location
+ * | | G location
+ * | | | B location
+ * | | | | */
+ {0, F_1, D_1, E_1},
+ {0, F_2, D_2, E_2},
+ {0, F_3, D_3, E_3},
+ {0, F_4, D_4, E_4},
+ {0, F_5, D_5, E_5},
+ {0, F_6, D_6, E_6},
+ {0, F_7, D_7, E_7},
+ {0, F_8, D_8, E_8},
+ {0, F_9, D_9, E_9},
+ {0, F_10, D_10, E_10},
+ {0, F_11, D_11, E_11},
+ {0, F_12, D_12, E_12},
+ {0, F_13, D_13, E_13},
+ {0, F_14, D_14, E_14},
+
+ {0, I_1, G_1, H_1},
+ {0, I_2, G_2, H_2},
+ {0, I_3, G_3, H_3},
+ {0, I_4, G_4, H_4},
+ {0, I_5, G_5, H_5},
+ {0, I_6, G_6, H_6},
+ {0, I_7, G_7, H_7},
+ {0, I_8, G_8, H_8},
+ {0, I_9, G_9, H_9},
+ {0, I_10, G_10, H_10},
+ {0, I_11, G_11, H_11},
+ {0, I_12, G_12, H_12},
+ {0, I_13, G_13, H_13},
+ {0, I_14, G_14, H_14},
+
+ {0, L_1, J_1, K_1},
+ {0, L_2, J_2, K_2},
+ {0, L_3, J_3, K_3},
+ {0, L_4, J_4, K_4},
+ {0, L_5, J_5, K_5},
+ {0, L_6, J_6, K_6},
+ {0, L_7, J_7, K_7},
+ {0, L_8, J_8, K_8},
+ {0, L_9, J_9, K_9},
+ {0, L_10, J_10, K_10},
+ {0, L_11, J_11, K_11},
+ {0, L_12, J_12, K_12},
+ {0, L_14, J_14, K_14},
+
+ {0, C_1, A_1, B_1},
+ {0, C_3, A_3, B_3},
+ {0, C_4, A_4, B_4},
+ {0, C_5, A_5, B_5},
+ {0, C_6, A_6, B_6},
+ {0, C_7, A_7, B_7},
+ {0, C_8, A_8, B_8},
+ {0, C_9, A_9, B_9},
+ {0, C_10, A_10, B_10},
+ {0, C_11, A_11, B_11},
+ {0, C_12, A_12, B_12},
+ {0, C_14, A_14, B_14},
+
+ {0, C_15, A_15, B_15},
+ {0, C_16, A_16, B_16},
+ {0, L_15, J_15, K_15},
+ {0, L_16, J_16, K_16},
+ {0, I_15, G_15, H_15},
+ {0, I_16, G_16, H_16},
+ {0, F_15, D_15, E_15},
+ {0, F_16, D_16, E_16},
+};
+
+#endif
diff --git a/keyboards/keychron/q4/ansi_v1/ansi_v1.c b/keyboards/keychron/q4/ansi_v1/ansi_v1.c
deleted file mode 100644
index 88599103ef..0000000000
--- a/keyboards/keychron/q4/ansi_v1/ansi_v1.c
+++ /dev/null
@@ -1,124 +0,0 @@
-/* Copyright 2022 @ Keychron (https://www.keychron.com)
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-#include "quantum.h"
-
-#ifdef RGB_MATRIX_ENABLE
-
-const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = {
-/* Refer to CKLED manual for these locations
- * driver
- * | R location
- * | | G location
- * | | | B location
- * | | | | */
- {0, C_1, A_1, B_1},
- {0, C_2, A_2, B_2},
- {0, C_3, A_3, B_3},
- {0, C_4, A_4, B_4},
- {0, C_5, A_5, B_5},
- {0, C_6, A_6, B_6},
- {0, C_7, A_7, B_7},
- {0, C_8, A_8, B_8},
- {0, C_9, A_9, B_9},
- {0, C_10, A_10, B_10},
- {0, C_11, A_11, B_11},
- {0, C_12, A_12, B_12},
- {0, C_13, A_13, B_13},
- {0, C_14, A_14, B_14},
-
- {0, F_1, D_1, E_1},
- {0, F_2, D_2, E_2},
- {0, F_3, D_3, E_3},
- {0, F_4, D_4, E_4},
- {0, F_5, D_5, E_5},
- {0, F_6, D_6, E_6},
- {0, F_7, D_7, E_7},
- {0, F_8, D_8, E_8},
- {0, F_9, D_9, E_9},
- {0, F_10, D_10, E_10},
- {0, F_11, D_11, E_11},
- {0, F_12, D_12, E_12},
- {0, F_13, D_13, E_13},
- {0, F_14, D_14, E_14},
-
- {0, I_1, G_1, H_1},
- {0, I_2, G_2, H_2},
- {0, I_3, G_3, H_3},
- {1, I_4, G_4, H_4},
- {1, I_5, G_5, H_5},
- {1, I_6, G_6, H_6},
- {1, I_7, G_7, H_7},
- {1, I_8, G_8, H_8},
- {1, I_9, G_9, H_9},
- {1, I_10, G_10, H_10},
- {1, I_11, G_11, H_11},
- {1, I_12, G_12, H_12},
- {1, I_14, G_14, H_14},
-
- {1, C_1, A_1, B_1},
- {1, C_3, A_3, B_3},
- {1, C_4, A_4, B_4},
- {1, C_5, A_5, B_5},
- {1, C_6, A_6, B_6},
- {1, C_7, A_7, B_7},
- {1, C_8, A_8, B_8},
- {1, C_9, A_9, B_9},
- {1, C_10, A_10, B_10},
- {1, C_11, A_11, B_11},
- {1, C_12, A_12, B_12},
- {1, C_14, A_14, B_14},
-
- {1, F_1, D_1, E_1},
- {1, F_2, D_2, E_2},
- {1, F_3, D_3, E_3},
- {1, F_7, D_7, E_7},
- {1, F_11, D_11, E_11},
- {1, F_12, D_12, E_12},
- {1, F_13, D_13, E_13},
- {1, F_14, D_14, E_14},
-};
-
-#define __ NO_LED
-
-led_config_t g_led_config = {
- {
- // Key Matrix to LED Index
- { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13 },
- { 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27 },
- { 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, __, 40 },
- { 41, __, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, __, 52 },
- { 53, 54, 55, __, __, __, 56, __, __, __, 57, 58, 59, 60 },
- },
- {
- // LED Index to Physical Position
- {0,0}, {16,0}, {32,0}, {48,0}, {64,0}, {81,0}, {97,0}, {113,0}, {129,0}, {145,0}, {161,0}, {177,0}, {193,0}, {218,0},
- {4,16}, {24,16}, {40,16}, {56,16}, {73,16}, {89,16}, {105,16}, {121,16}, {137,16}, {153,16}, {169,16}, {185,16}, {202,16}, {222,16},
- {6,32}, {28,32}, {44,32}, {60,32}, {77,32}, {93,32}, {109,32}, {125,32}, {141,32}, {157,32}, {173,32}, {189,32}, {216,32},
- {10,48}, {36,48}, {52,48}, {69,48}, {85,48}, {101,48}, {117,48}, {133,48}, {149,48}, {165,48}, {181,48}, {212,48},
- {2,64}, {22,64}, {42,64}, {103,64}, {164,64}, {184,64}, {204,64}, {224,64},
- },
- {
- // RGB LED Index to Flag
- 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
- 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
- 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
- 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
- 1, 1, 1, 4, 1, 1, 1, 1,
- }
-};
-
-#endif
diff --git a/keyboards/keychron/q4/ansi_v1/config.h b/keyboards/keychron/q4/ansi_v1/config.h
deleted file mode 100644
index e11ab12b93..0000000000
--- a/keyboards/keychron/q4/ansi_v1/config.h
+++ /dev/null
@@ -1,35 +0,0 @@
-/* Copyright 2022 @ Keychron (https://www.keychron.com)
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-#pragma once
-
-/* RGB Matrix Driver Configuration */
-#define DRIVER_COUNT 2
-#define DRIVER_ADDR_1 0b1110111
-#define DRIVER_ADDR_2 0b1110100
-
-/* RGB Matrix Configuration */
-#define DRIVER_1_LED_TOTAL 31
-#define DRIVER_2_LED_TOTAL 30
-#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL)
-
-/* Scan phase of led driver set as MSKPHASE_9CHANNEL(defined as 0x03 in CKLED2001.h) */
-#define PHASE_CHANNEL MSKPHASE_9CHANNEL
-#define CKLED2001_CURRENT_TUNE \
- { 0xCA, 0xCA, 0x60, 0xCA, 0xCA, 0x60, 0xCA, 0xCA, 0x60, 0xCA, 0xCA, 0x60 }
-
-/* Enable CapsLcok LED*/
-#define CAPS_LOCK_LED_INDEX 28
diff --git a/keyboards/keychron/q4/ansi_v1/info.json b/keyboards/keychron/q4/ansi_v1/info.json
deleted file mode 100644
index 8ee286c481..0000000000
--- a/keyboards/keychron/q4/ansi_v1/info.json
+++ /dev/null
@@ -1,92 +0,0 @@
-{
- "keyboard_name": "Keychron Q4",
- "manufacturer": "Keychron",
- "url": "https://github.com/Keychron",
- "maintainer": "lalalademaxiya1",
- "usb": {
- "vid": "0x3434",
- "pid": "0x0140",
- "device_version": "1.0.0"
- },
- "rgb_matrix": {
- "driver": "ckled2001"
- },
- "matrix_pins": {
- "cols": ["C14", "C15", "A0", "A1", "A2", "A3", "A4", "A5", "A6", "A7", "B0", "B1", "A8", "A9"],
- "rows": ["B4", "B3", "A15", "A14", "A13"]
- },
- "diode_direction": "ROW2COL",
- "processor": "STM32L432",
- "bootloader": "stm32-dfu",
- "layouts": {
- "LAYOUT_ansi_61": {
- "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": [0, 6], "x": 6, "y": 0},
- {"matrix": [0, 7], "x": 7, "y": 0},
- {"matrix": [0, 8], "x": 8, "y": 0},
- {"matrix": [0, 9], "x": 9, "y": 0},
- {"matrix": [0, 10], "x": 10, "y": 0},
- {"matrix": [0, 11], "x": 11, "y": 0},
- {"matrix": [0, 12], "x": 12, "y": 0},
- {"matrix": [0, 13], "x": 13, "y": 0, "w": 2},
-
- {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
- {"matrix": [1, 1], "x": 1.5, "y": 1},
- {"matrix": [1, 2], "x": 2.5, "y": 1},
- {"matrix": [1, 3], "x": 3.5, "y": 1},
- {"matrix": [1, 4], "x": 4.5, "y": 1},
- {"matrix": [1, 5], "x": 5.5, "y": 1},
- {"matrix": [1, 6], "x": 6.5, "y": 1},
- {"matrix": [1, 7], "x": 7.5, "y": 1},
- {"matrix": [1, 8], "x": 8.5, "y": 1},
- {"matrix": [1, 9], "x": 9.5, "y": 1},
- {"matrix": [1, 10], "x": 10.5, "y": 1},
- {"matrix": [1, 11], "x": 11.5, "y": 1},
- {"matrix": [1, 12], "x": 12.5, "y": 1},
- {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5},
-
- {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
- {"matrix": [2, 1], "x": 1.75, "y": 2},
- {"matrix": [2, 2], "x": 2.75, "y": 2},
- {"matrix": [2, 3], "x": 3.75, "y": 2},
- {"matrix": [2, 4], "x": 4.75, "y": 2},
- {"matrix": [2, 5], "x": 5.75, "y": 2},
- {"matrix": [2, 6], "x": 6.75, "y": 2},
- {"matrix": [2, 7], "x": 7.75, "y": 2},
- {"matrix": [2, 8], "x": 8.75, "y": 2},
- {"matrix": [2, 9], "x": 9.75, "y": 2},
- {"matrix": [2, 10], "x": 10.75, "y": 2},
- {"matrix": [2, 11], "x": 11.75, "y": 2},
- {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25},
-
- {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25},
- {"matrix": [3, 2], "x": 2.25, "y": 3},
- {"matrix": [3, 3], "x": 3.25, "y": 3},
- {"matrix": [3, 4], "x": 4.25, "y": 3},
- {"matrix": [3, 5], "x": 5.25, "y": 3},
- {"matrix": [3, 6], "x": 6.25, "y": 3},
- {"matrix": [3, 7], "x": 7.25, "y": 3},
- {"matrix": [3, 8], "x": 8.25, "y": 3},
- {"matrix": [3, 9], "x": 9.25, "y": 3},
- {"matrix": [3, 10], "x": 10.25, "y": 3},
- {"matrix": [3, 11], "x": 11.25, "y": 3},
- {"matrix": [3, 13], "x": 12.25, "y": 3, "w": 2.75},
-
- {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25},
- {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25},
- {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25},
- {"matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25},
- {"matrix": [4, 10], "x": 10, "y": 4, "w": 1.25},
- {"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25},
- {"matrix": [4, 12], "x": 12.5, "y": 4, "w": 1.25},
- {"matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25}
- ]
- }
- }
-}
diff --git a/keyboards/keychron/q4/ansi_v1/rules.mk b/keyboards/keychron/q4/ansi_v1/rules.mk
deleted file mode 100644
index cad488b009..0000000000
--- a/keyboards/keychron/q4/ansi_v1/rules.mk
+++ /dev/null
@@ -1,18 +0,0 @@
-# Build Options
-# change yes to no to disable.
-#
-BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite
-MOUSEKEY_ENABLE = yes # Mouse keys
-EXTRAKEY_ENABLE = yes # Audio control and System control
-CONSOLE_ENABLE = no # Console for debug
-COMMAND_ENABLE = no # Commands for debug and configuration
-NKRO_ENABLE = yes # Enable USB N-key Rollover
-BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
-RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
-AUDIO_ENABLE = no # Audio output
-DIP_SWITCH_ENABLE = yes
-RGB_MATRIX_ENABLE = yes
-LTO_ENABLE = no
-EEPROM_DRIVER = wear_leveling
-WEAR_LEVELING_DRIVER = embedded_flash
-
diff --git a/keyboards/keychron/q4/ansi_v2/ansi_v2.c b/keyboards/keychron/q4/ansi_v2/ansi_v2.c
deleted file mode 100644
index d454a796fa..0000000000
--- a/keyboards/keychron/q4/ansi_v2/ansi_v2.c
+++ /dev/null
@@ -1,124 +0,0 @@
-/* Copyright 2022 @ Keychron (https://www.keychron.com)
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-#include "quantum.h"
-
-#ifdef RGB_MATRIX_ENABLE
-
-const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = {
-/* Refer to CKLED manual for these locations
- * driver
- * | R location
- * | | G location
- * | | | B location
- * | | | | */
- {0, F_1, D_1, E_1},
- {0, F_2, D_2, E_2},
- {0, F_3, D_3, E_3},
- {0, F_4, D_4, E_4},
- {0, F_5, D_5, E_5},
- {0, F_6, D_6, E_6},
- {0, F_7, D_7, E_7},
- {0, F_8, D_8, E_8},
- {0, F_9, D_9, E_9},
- {0, F_10, D_10, E_10},
- {0, F_11, D_11, E_11},
- {0, F_12, D_12, E_12},
- {0, F_13, D_13, E_13},
- {0, F_14, D_14, E_14},
-
- {0, I_1, G_1, H_1},
- {0, I_2, G_2, H_2},
- {0, I_3, G_3, H_3},
- {0, I_4, G_4, H_4},
- {0, I_5, G_5, H_5},
- {0, I_6, G_6, H_6},
- {0, I_7, G_7, H_7},
- {0, I_8, G_8, H_8},
- {0, I_9, G_9, H_9},
- {0, I_10, G_10, H_10},
- {0, I_11, G_11, H_11},
- {0, I_12, G_12, H_12},
- {0, I_13, G_13, H_13},
- {0, I_14, G_14, H_14},
-
- {0, L_1, J_1, K_1},
- {0, L_2, J_2, K_2},
- {0, L_3, J_3, K_3},
- {0, L_4, J_4, K_4},
- {0, L_5, J_5, K_5},
- {0, L_6, J_6, K_6},
- {0, L_7, J_7, K_7},
- {0, L_8, J_8, K_8},
- {0, L_9, J_9, K_9},
- {0, L_10, J_10, K_10},
- {0, L_11, J_11, K_11},
- {0, L_12, J_12, K_12},
- {0, L_14, J_14, K_14},
-
- {0, C_1, A_1, B_1},
- {0, C_3, A_3, B_3},
- {0, C_4, A_4, B_4},
- {0, C_5, A_5, B_5},
- {0, C_6, A_6, B_6},
- {0, C_7, A_7, B_7},
- {0, C_8, A_8, B_8},
- {0, C_9, A_9, B_9},
- {0, C_10, A_10, B_10},
- {0, C_11, A_11, B_11},
- {0, C_12, A_12, B_12},
- {0, C_14, A_14, B_14},
-
- {0, C_15, A_15, B_15},
- {0, C_16, A_16, B_16},
- {0, L_15, J_15, K_15},
- {0, L_16, J_16, K_16},
- {0, I_15, G_15, H_15},
- {0, I_16, G_16, H_16},
- {0, F_15, D_15, E_15},
- {0, F_16, D_16, E_16},
-};
-
-#define __ NO_LED
-
-led_config_t g_led_config = {
- {
- // Key Matrix to LED Index
- { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13 },
- { 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27 },
- { 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, __, 40 },
- { 41, __, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, __, 52 },
- { 53, 54, 55, __, __, __, 56, __, __, __, 57, 58, 59, 60 },
- },
- {
- // LED Index to Physical Position
- {0,0}, {16,0}, {32,0}, {48,0}, {64,0}, {81,0}, {97,0}, {113,0}, {129,0}, {145,0}, {161,0}, {177,0}, {193,0}, {218,0},
- {4,16}, {24,16}, {40,16}, {56,16}, {73,16}, {89,16}, {105,16}, {121,16}, {137,16}, {153,16}, {169,16}, {185,16}, {202,16}, {222,16},
- {6,32}, {28,32}, {44,32}, {60,32}, {77,32}, {93,32}, {109,32}, {125,32}, {141,32}, {157,32}, {173,32}, {189,32}, {216,32},
- {10,48}, {36,48}, {52,48}, {69,48}, {85,48}, {101,48}, {117,48}, {133,48}, {149,48}, {165,48}, {181,48}, {212,48},
- {2,64}, {22,64}, {42,64}, {103,64}, {164,64}, {184,64}, {204,64}, {224,64},
- },
- {
- // RGB LED Index to Flag
- 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
- 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
- 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
- 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
- 1, 1, 1, 4, 1, 1, 1, 1,
- }
-};
-
-#endif
diff --git a/keyboards/keychron/q4/ansi_v2/config.h b/keyboards/keychron/q4/ansi_v2/config.h
deleted file mode 100644
index cc906fed03..0000000000
--- a/keyboards/keychron/q4/ansi_v2/config.h
+++ /dev/null
@@ -1,31 +0,0 @@
-/* Copyright 2022 @ Keychron (https://www.keychron.com)
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-#pragma once
-
-/* RGB Matrix Driver Configuration */
-#define DRIVER_COUNT 1
-#define DRIVER_ADDR_1 0b1110100
-
-/* RGB Matrix Configuration */
-#define DRIVER_1_LED_TOTAL 61
-#define RGB_MATRIX_LED_COUNT DRIVER_1_LED_TOTAL
-
-#define CKLED2001_CURRENT_TUNE \
- { 0xCA, 0xCA, 0x60, 0xCA, 0xCA, 0x60, 0xCA, 0xCA, 0x60, 0xCA, 0xCA, 0x60 }
-
-/* Enable CapsLcok LED*/
-#define CAPS_LOCK_LED_INDEX 28
diff --git a/keyboards/keychron/q4/ansi_v2/info.json b/keyboards/keychron/q4/ansi_v2/info.json
deleted file mode 100644
index 8ee286c481..0000000000
--- a/keyboards/keychron/q4/ansi_v2/info.json
+++ /dev/null
@@ -1,92 +0,0 @@
-{
- "keyboard_name": "Keychron Q4",
- "manufacturer": "Keychron",
- "url": "https://github.com/Keychron",
- "maintainer": "lalalademaxiya1",
- "usb": {
- "vid": "0x3434",
- "pid": "0x0140",
- "device_version": "1.0.0"
- },
- "rgb_matrix": {
- "driver": "ckled2001"
- },
- "matrix_pins": {
- "cols": ["C14", "C15", "A0", "A1", "A2", "A3", "A4", "A5", "A6", "A7", "B0", "B1", "A8", "A9"],
- "rows": ["B4", "B3", "A15", "A14", "A13"]
- },
- "diode_direction": "ROW2COL",
- "processor": "STM32L432",
- "bootloader": "stm32-dfu",
- "layouts": {
- "LAYOUT_ansi_61": {
- "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": [0, 6], "x": 6, "y": 0},
- {"matrix": [0, 7], "x": 7, "y": 0},
- {"matrix": [0, 8], "x": 8, "y": 0},
- {"matrix": [0, 9], "x": 9, "y": 0},
- {"matrix": [0, 10], "x": 10, "y": 0},
- {"matrix": [0, 11], "x": 11, "y": 0},
- {"matrix": [0, 12], "x": 12, "y": 0},
- {"matrix": [0, 13], "x": 13, "y": 0, "w": 2},
-
- {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
- {"matrix": [1, 1], "x": 1.5, "y": 1},
- {"matrix": [1, 2], "x": 2.5, "y": 1},
- {"matrix": [1, 3], "x": 3.5, "y": 1},
- {"matrix": [1, 4], "x": 4.5, "y": 1},
- {"matrix": [1, 5], "x": 5.5, "y": 1},
- {"matrix": [1, 6], "x": 6.5, "y": 1},
- {"matrix": [1, 7], "x": 7.5, "y": 1},
- {"matrix": [1, 8], "x": 8.5, "y": 1},
- {"matrix": [1, 9], "x": 9.5, "y": 1},
- {"matrix": [1, 10], "x": 10.5, "y": 1},
- {"matrix": [1, 11], "x": 11.5, "y": 1},
- {"matrix": [1, 12], "x": 12.5, "y": 1},
- {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5},
-
- {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
- {"matrix": [2, 1], "x": 1.75, "y": 2},
- {"matrix": [2, 2], "x": 2.75, "y": 2},
- {"matrix": [2, 3], "x": 3.75, "y": 2},
- {"matrix": [2, 4], "x": 4.75, "y": 2},
- {"matrix": [2, 5], "x": 5.75, "y": 2},
- {"matrix": [2, 6], "x": 6.75, "y": 2},
- {"matrix": [2, 7], "x": 7.75, "y": 2},
- {"matrix": [2, 8], "x": 8.75, "y": 2},
- {"matrix": [2, 9], "x": 9.75, "y": 2},
- {"matrix": [2, 10], "x": 10.75, "y": 2},
- {"matrix": [2, 11], "x": 11.75, "y": 2},
- {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25},
-
- {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25},
- {"matrix": [3, 2], "x": 2.25, "y": 3},
- {"matrix": [3, 3], "x": 3.25, "y": 3},
- {"matrix": [3, 4], "x": 4.25, "y": 3},
- {"matrix": [3, 5], "x": 5.25, "y": 3},
- {"matrix": [3, 6], "x": 6.25, "y": 3},
- {"matrix": [3, 7], "x": 7.25, "y": 3},
- {"matrix": [3, 8], "x": 8.25, "y": 3},
- {"matrix": [3, 9], "x": 9.25, "y": 3},
- {"matrix": [3, 10], "x": 10.25, "y": 3},
- {"matrix": [3, 11], "x": 11.25, "y": 3},
- {"matrix": [3, 13], "x": 12.25, "y": 3, "w": 2.75},
-
- {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25},
- {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25},
- {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25},
- {"matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25},
- {"matrix": [4, 10], "x": 10, "y": 4, "w": 1.25},
- {"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25},
- {"matrix": [4, 12], "x": 12.5, "y": 4, "w": 1.25},
- {"matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25}
- ]
- }
- }
-}
diff --git a/keyboards/keychron/q4/ansi_v2/keymaps/default/keymap.c b/keyboards/keychron/q4/ansi_v2/keymaps/default/keymap.c
deleted file mode 100644
index dd8669c3fb..0000000000
--- a/keyboards/keychron/q4/ansi_v2/keymaps/default/keymap.c
+++ /dev/null
@@ -1,66 +0,0 @@
-/* Copyright 2022 @ Keychron (https://www.keychron.com)
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-#include QMK_KEYBOARD_H
-
-// clang-format off
-
-enum layers {
- MAC_BASE,
- WIN_BASE,
- _FN1,
- _FN2,
- _FN3
-};
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [MAC_BASE] = LAYOUT_ansi_61(
- KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC,
- KC_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_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_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,
- KC_LCTL, KC_LOPT, KC_LCMD, KC_SPC, KC_RCMD, MO(_FN1), MO(_FN3), KC_RCTL),
-
- [WIN_BASE] = LAYOUT_ansi_61(
- KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC,
- KC_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_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_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,
- KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(_FN2), MO(_FN3), KC_RCTL),
-
- [_FN1] = LAYOUT_ansi_61(
- KC_GRV, KC_BRID, KC_BRIU, KC_NO, KC_NO, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, RGB_MOD,
- RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, KC_INS, KC_PGUP, KC_HOME, _______,
- _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, KC_UP, KC_NO, KC_PGDN, KC_END, _______,
- _______, _______, _______, _______, _______, _______, NK_TOGG, KC_LEFT, KC_DOWN, KC_RIGHT, KC_DEL, _______,
- _______, _______, _______, _______, _______, _______, _______, _______),
-
- [_FN2] = LAYOUT_ansi_61(
- KC_GRV, KC_BRID, KC_BRIU, KC_NO, KC_NO, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, RGB_MOD,
- RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, KC_APP, KC_SCRL, KC_INS, KC_PGUP, KC_HOME, _______,
- _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, KC_UP, KC_PSCR, KC_PGDN, KC_END, _______,
- _______, _______, _______, _______, _______, _______, NK_TOGG, KC_LEFT, KC_DOWN, KC_RIGHT, KC_DEL, _______,
- _______, _______, _______, _______, _______, _______, _______, _______),
-
- [_FN3] = LAYOUT_ansi_61(
- KC_TILD, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______,
- RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______)
-};
-
-// clang-format on \ No newline at end of file
diff --git a/keyboards/keychron/q4/ansi_v2/keymaps/keychron/keymap.c b/keyboards/keychron/q4/ansi_v2/keymaps/keychron/keymap.c
deleted file mode 100644
index d58af0f244..0000000000
--- a/keyboards/keychron/q4/ansi_v2/keymaps/keychron/keymap.c
+++ /dev/null
@@ -1,75 +0,0 @@
-/* Copyright 2022 @ Keychron (https://www.keychron.com)
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-#include QMK_KEYBOARD_H
-#include "keychron_common.h"
-
-// clang-format off
-
-enum layers {
- MAC_BASE,
- WIN_BASE,
- _FN1,
- _FN2,
- _FN3
-};
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [MAC_BASE] = LAYOUT_ansi_61(
- KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC,
- KC_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_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_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,
- KC_LCTL, KC_LOPT, KC_LCMD, KC_SPC, KC_RCMD, MO(_FN1), MO(_FN3), KC_RCTL),
-
- [WIN_BASE] = LAYOUT_ansi_61(
- KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC,
- KC_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_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_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,
- KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(_FN2), MO(_FN3), KC_RCTL),
-
- [_FN1] = LAYOUT_ansi_61(
- KC_GRV, KC_BRID, KC_BRIU, KC_NO, KC_NO, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, RGB_MOD,
- RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, KC_INS, KC_PGUP, KC_HOME, _______,
- _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, KC_UP, KC_NO, KC_PGDN, KC_END, _______,
- _______, _______, _______, _______, _______, _______, NK_TOGG, KC_LEFT, KC_DOWN, KC_RIGHT, KC_DEL, _______,
- _______, _______, _______, _______, _______, _______, _______, _______),
-
- [_FN2] = LAYOUT_ansi_61(
- KC_GRV, KC_BRID, KC_BRIU, KC_NO, KC_NO, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, RGB_MOD,
- RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, KC_APP, KC_SCRL, KC_INS, KC_PGUP, KC_HOME, _______,
- _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, KC_UP, KC_PSCR, KC_PGDN, KC_END, _______,
- _______, _______, _______, _______, _______, _______, NK_TOGG, KC_LEFT, KC_DOWN, KC_RIGHT, KC_DEL, _______,
- _______, _______, _______, _______, _______, _______, _______, _______),
-
- [_FN3] = LAYOUT_ansi_61(
- KC_TILD, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______,
- RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______)
-};
-
-// clang-format on
-
-bool process_record_user(uint16_t keycode, keyrecord_t *record) {
- if (!process_record_keychron(keycode, record)) {
- return false;
- }
-
- return true;
-} \ No newline at end of file
diff --git a/keyboards/keychron/q4/ansi_v2/keymaps/keychron/rules.mk b/keyboards/keychron/q4/ansi_v2/keymaps/keychron/rules.mk
deleted file mode 100644
index 1f273de340..0000000000
--- a/keyboards/keychron/q4/ansi_v2/keymaps/keychron/rules.mk
+++ /dev/null
@@ -1,4 +0,0 @@
-VIA_ENABLE = yes
-
-VPATH += keyboards/keychron/common
-SRC += keychron_common.c \ No newline at end of file
diff --git a/keyboards/keychron/q4/ansi_v2/keymaps/via/keymap.c b/keyboards/keychron/q4/ansi_v2/keymaps/via/keymap.c
deleted file mode 100644
index dd8669c3fb..0000000000
--- a/keyboards/keychron/q4/ansi_v2/keymaps/via/keymap.c
+++ /dev/null
@@ -1,66 +0,0 @@
-/* Copyright 2022 @ Keychron (https://www.keychron.com)
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-#include QMK_KEYBOARD_H
-
-// clang-format off
-
-enum layers {
- MAC_BASE,
- WIN_BASE,
- _FN1,
- _FN2,
- _FN3
-};
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [MAC_BASE] = LAYOUT_ansi_61(
- KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC,
- KC_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_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_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,
- KC_LCTL, KC_LOPT, KC_LCMD, KC_SPC, KC_RCMD, MO(_FN1), MO(_FN3), KC_RCTL),
-
- [WIN_BASE] = LAYOUT_ansi_61(
- KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC,
- KC_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_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_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,
- KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(_FN2), MO(_FN3), KC_RCTL),
-
- [_FN1] = LAYOUT_ansi_61(
- KC_GRV, KC_BRID, KC_BRIU, KC_NO, KC_NO, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, RGB_MOD,
- RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, KC_INS, KC_PGUP, KC_HOME, _______,
- _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, KC_UP, KC_NO, KC_PGDN, KC_END, _______,
- _______, _______, _______, _______, _______, _______, NK_TOGG, KC_LEFT, KC_DOWN, KC_RIGHT, KC_DEL, _______,
- _______, _______, _______, _______, _______, _______, _______, _______),
-
- [_FN2] = LAYOUT_ansi_61(
- KC_GRV, KC_BRID, KC_BRIU, KC_NO, KC_NO, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, RGB_MOD,
- RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, KC_APP, KC_SCRL, KC_INS, KC_PGUP, KC_HOME, _______,
- _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, KC_UP, KC_PSCR, KC_PGDN, KC_END, _______,
- _______, _______, _______, _______, _______, _______, NK_TOGG, KC_LEFT, KC_DOWN, KC_RIGHT, KC_DEL, _______,
- _______, _______, _______, _______, _______, _______, _______, _______),
-
- [_FN3] = LAYOUT_ansi_61(
- KC_TILD, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______,
- RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______)
-};
-
-// clang-format on \ No newline at end of file
diff --git a/keyboards/keychron/q4/ansi_v2/keymaps/via/rules.mk b/keyboards/keychron/q4/ansi_v2/keymaps/via/rules.mk
deleted file mode 100644
index 036bd6d1c3..0000000000
--- a/keyboards/keychron/q4/ansi_v2/keymaps/via/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-VIA_ENABLE = yes \ No newline at end of file
diff --git a/keyboards/keychron/q4/ansi_v2/readme.md b/keyboards/keychron/q4/ansi_v2/readme.md
deleted file mode 100644
index bd2f3fd8a8..0000000000
--- a/keyboards/keychron/q4/ansi_v2/readme.md
+++ /dev/null
@@ -1 +0,0 @@
-# The ANSI variant of the Keychron Q4
diff --git a/keyboards/keychron/q4/ansi_v2/rules.mk b/keyboards/keychron/q4/ansi_v2/rules.mk
deleted file mode 100644
index cad488b009..0000000000
--- a/keyboards/keychron/q4/ansi_v2/rules.mk
+++ /dev/null
@@ -1,18 +0,0 @@
-# Build Options
-# change yes to no to disable.
-#
-BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite
-MOUSEKEY_ENABLE = yes # Mouse keys
-EXTRAKEY_ENABLE = yes # Audio control and System control
-CONSOLE_ENABLE = no # Console for debug
-COMMAND_ENABLE = no # Commands for debug and configuration
-NKRO_ENABLE = yes # Enable USB N-key Rollover
-BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
-RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
-AUDIO_ENABLE = no # Audio output
-DIP_SWITCH_ENABLE = yes
-RGB_MATRIX_ENABLE = yes
-LTO_ENABLE = no
-EEPROM_DRIVER = wear_leveling
-WEAR_LEVELING_DRIVER = embedded_flash
-
diff --git a/keyboards/keychron/q4/config.h b/keyboards/keychron/q4/config.h
index 940ee44e77..62f8294966 100644
--- a/keyboards/keychron/q4/config.h
+++ b/keyboards/keychron/q4/config.h
@@ -25,60 +25,8 @@
/* turn off effects when suspended */
#define RGB_DISABLE_WHEN_USB_SUSPENDED
-#define DYNAMIC_KEYMAP_LAYER_COUNT 5
-
-/* EEPROM Driver Configuration */
-#define WEAR_LEVELING_LOGICAL_SIZE 2048
-#define WEAR_LEVELING_BACKING_SIZE (WEAR_LEVELING_LOGICAL_SIZE * 2)
-
-// RGB Matrix Animation modes. Explicitly enabled
-// For full list of effects, see:
-// https://docs.qmk.fm/#/feature_rgb_matrix?id=rgb-matrix-effects
-// #define ENABLE_RGB_MATRIX_ALPHAS_MODS
-// #define ENABLE_RGB_MATRIX_GRADIENT_UP_DOWN
-// #define ENABLE_RGB_MATRIX_GRADIENT_LEFT_RIGHT
-#define ENABLE_RGB_MATRIX_BREATHING
-// #define ENABLE_RGB_MATRIX_BAND_SAT
-// #define ENABLE_RGB_MATRIX_BAND_VAL
-// #define ENABLE_RGB_MATRIX_BAND_PINWHEEL_SAT
-// #define ENABLE_RGB_MATRIX_BAND_PINWHEEL_VAL
-// #define ENABLE_RGB_MATRIX_BAND_SPIRAL_SAT
-#define ENABLE_RGB_MATRIX_BAND_SPIRAL_VAL
-#define ENABLE_RGB_MATRIX_CYCLE_ALL
-#define ENABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT
-#define ENABLE_RGB_MATRIX_CYCLE_UP_DOWN
-#define ENABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON
-#define ENABLE_RGB_MATRIX_CYCLE_OUT_IN
-#define ENABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL
-#define ENABLE_RGB_MATRIX_CYCLE_PINWHEEL
-#define ENABLE_RGB_MATRIX_CYCLE_SPIRAL
-#define ENABLE_RGB_MATRIX_DUAL_BEACON
-#define ENABLE_RGB_MATRIX_RAINBOW_BEACON
-// #define ENABLE_RGB_MATRIX_RAINBOW_PINWHEELS
-// #define ENABLE_RGB_MATRIX_RAINDROPS
-#define ENABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS
-// #define ENABLE_RGB_MATRIX_HUE_BREATHING
-// #define ENABLE_RGB_MATRIX_HUE_PENDULUM
-// #define ENABLE_RGB_MATRIX_HUE_WAVE
-#define ENABLE_RGB_MATRIX_PIXEL_RAIN
-// #define ENABLE_RGB_MATRIX_PIXEL_FLOW
-// #define ENABLE_RGB_MATRIX_PIXEL_FRACTAL
-// enabled only if RGB_MATRIX_FRAMEBUFFER_EFFECTS is defined
-#define ENABLE_RGB_MATRIX_TYPING_HEATMAP
-#define ENABLE_RGB_MATRIX_DIGITAL_RAIN
-// enabled only of RGB_MATRIX_KEYPRESSES or RGB_MATRIX_KEYRELEASES is defined
-#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE
-// #define ENABLE_RGB_MATRIX_SOLID_REACTIVE
-// #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE
-#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE
-// #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS
-// #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS
-// #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS
-#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS
-#define ENABLE_RGB_MATRIX_SPLASH
-// #define ENABLE_RGB_MATRIX_MULTISPLASH
-#define ENABLE_RGB_MATRIX_SOLID_SPLASH
-// #define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH
+#define SNLED27351_CURRENT_TUNE \
+ { 0xCA, 0xCA, 0x60, 0xCA, 0xCA, 0x60, 0xCA, 0xCA, 0x60, 0xCA, 0xCA, 0x60 }
#define RGB_MATRIX_KEYPRESSES
#define RGB_MATRIX_FRAMEBUFFER_EFFECTS \ No newline at end of file
diff --git a/keyboards/keychron/q4/info.json b/keyboards/keychron/q4/info.json
new file mode 100644
index 0000000000..0a9dcf4957
--- /dev/null
+++ b/keyboards/keychron/q4/info.json
@@ -0,0 +1,62 @@
+{
+ "manufacturer": "Keychron",
+ "keyboard_name": "Keychron Q4",
+ "maintainer": "lalalademaxiya1",
+ "bootloader": "stm32-dfu",
+ "diode_direction": "ROW2COL",
+ "dynamic_keymap": {
+ "layer_count": 5
+ },
+ "eeprom": {
+ "wear_leveling": {
+ "backing_size": 4096
+ }
+ },
+ "features": {
+ "audio": false,
+ "backlight": false,
+ "bootmagic": true,
+ "command": false,
+ "console": false,
+ "extrakey": true,
+ "mousekey": true,
+ "nkro": true,
+ "rgb_matrix": true,
+ "rgblight": false
+ },
+ "matrix_pins": {
+ "cols": ["C14", "C15", "A0", "A1", "A2", "A3", "A4", "A5", "A6", "A7", "B0", "B1", "A8", "A9"],
+ "rows": ["B4", "B3", "A15", "A14", "A13"]
+ },
+ "processor": "STM32L432",
+ "rgb_matrix": {
+ "animations": {
+ "band_spiral_val": true,
+ "breathing": true,
+ "cycle_all": true,
+ "cycle_left_right": true,
+ "cycle_out_in": true,
+ "cycle_out_in_dual": true,
+ "cycle_pinwheel": true,
+ "cycle_spiral": true,
+ "cycle_up_down": true,
+ "digital_rain": true,
+ "dual_beacon": true,
+ "jellybean_raindrops": true,
+ "pixel_rain": true,
+ "rainbow_beacon": true,
+ "rainbow_moving_chevron": true,
+ "solid_reactive_multinexus": true,
+ "solid_reactive_multiwide": true,
+ "solid_reactive_simple": true,
+ "solid_splash": true,
+ "splash": true,
+ "typing_heatmap": true
+ },
+ "driver": "snled27351"
+ },
+ "url": "https://github.com/Keychron",
+ "usb": {
+ "vid": "0x3434"
+ }
+} \ No newline at end of file
diff --git a/keyboards/keychron/q4/iso/config.h b/keyboards/keychron/q4/iso/config.h
index 9e4a1fc3e5..8231b9eba8 100644
--- a/keyboards/keychron/q4/iso/config.h
+++ b/keyboards/keychron/q4/iso/config.h
@@ -17,15 +17,10 @@
#pragma once
/* RGB Matrix Driver Configuration */
-#define DRIVER_COUNT 1
-#define DRIVER_ADDR_1 0b1110100
+#define SNLED27351_I2C_ADDRESS_1 SNLED27351_I2C_ADDRESS_GND
/* RGB Matrix Configuration */
-#define DRIVER_1_LED_TOTAL 62
-#define RGB_MATRIX_LED_COUNT DRIVER_1_LED_TOTAL
-
-#define CKLED2001_CURRENT_TUNE \
- { 0xCA, 0xCA, 0x60, 0xCA, 0xCA, 0x60, 0xCA, 0xCA, 0x60, 0xCA, 0xCA, 0x60 }
+#define RGB_MATRIX_LED_COUNT 62
/* Enable CapsLcok LED*/
#define CAPS_LOCK_LED_INDEX 27
diff --git a/keyboards/keychron/q4/iso/info.json b/keyboards/keychron/q4/iso/info.json
index f8945cda61..13b25f74e0 100644
--- a/keyboards/keychron/q4/iso/info.json
+++ b/keyboards/keychron/q4/iso/info.json
@@ -1,23 +1,78 @@
{
- "keyboard_name": "Keychron Q4",
- "manufacturer": "Keychron",
- "url": "https://github.com/Keychron",
- "maintainer": "lalalademaxiya1",
"usb": {
- "vid": "0x3434",
"pid": "0x0142",
"device_version": "1.0.0"
},
"rgb_matrix": {
- "driver": "ckled2001"
- },
- "matrix_pins": {
- "cols": ["C14", "C15", "A0", "A1", "A2", "A3", "A4", "A5", "A6", "A7", "B0", "B1", "A8", "A9"],
- "rows": ["B4", "B3", "A15", "A14", "A13"]
+ "layout": [
+ {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1},
+ {"matrix": [0, 1], "x": 16, "y": 0, "flags": 4},
+ {"matrix": [0, 2], "x": 32, "y": 0, "flags": 4},
+ {"matrix": [0, 3], "x": 48, "y": 0, "flags": 4},
+ {"matrix": [0, 4], "x": 64, "y": 0, "flags": 4},
+ {"matrix": [0, 5], "x": 81, "y": 0, "flags": 4},
+ {"matrix": [0, 6], "x": 97, "y": 0, "flags": 4},
+ {"matrix": [0, 7], "x": 113, "y": 0, "flags": 4},
+ {"matrix": [0, 8], "x": 129, "y": 0, "flags": 4},
+ {"matrix": [0, 9], "x": 145, "y": 0, "flags": 4},
+ {"matrix": [0, 10], "x": 161, "y": 0, "flags": 4},
+ {"matrix": [0, 11], "x": 177, "y": 0, "flags": 4},
+ {"matrix": [0, 12], "x": 193, "y": 0, "flags": 4},
+ {"matrix": [0, 13], "x": 218, "y": 0, "flags": 1},
+
+ {"matrix": [1, 0], "x": 4, "y": 16, "flags": 1},
+ {"matrix": [1, 1], "x": 24, "y": 16, "flags": 4},
+ {"matrix": [1, 2], "x": 40, "y": 16, "flags": 4},
+ {"matrix": [1, 3], "x": 56, "y": 16, "flags": 4},
+ {"matrix": [1, 4], "x": 73, "y": 16, "flags": 4},
+ {"matrix": [1, 5], "x": 89, "y": 16, "flags": 4},
+ {"matrix": [1, 6], "x": 105, "y": 16, "flags": 4},
+ {"matrix": [1, 7], "x": 121, "y": 16, "flags": 4},
+ {"matrix": [1, 8], "x": 137, "y": 16, "flags": 4},
+ {"matrix": [1, 9], "x": 153, "y": 16, "flags": 4},
+ {"matrix": [1, 10], "x": 169, "y": 16, "flags": 4},
+ {"matrix": [1, 11], "x": 185, "y": 16, "flags": 4},
+ {"matrix": [1, 12], "x": 202, "y": 16, "flags": 4},
+
+ {"matrix": [2, 0], "x": 6, "y": 32, "flags": 8},
+ {"matrix": [2, 1], "x": 28, "y": 32, "flags": 4},
+ {"matrix": [2, 2], "x": 44, "y": 32, "flags": 4},
+ {"matrix": [2, 3], "x": 60, "y": 32, "flags": 4},
+ {"matrix": [2, 4], "x": 77, "y": 32, "flags": 4},
+ {"matrix": [2, 5], "x": 93, "y": 32, "flags": 4},
+ {"matrix": [2, 6], "x": 109, "y": 32, "flags": 4},
+ {"matrix": [2, 7], "x": 125, "y": 32, "flags": 4},
+ {"matrix": [2, 8], "x": 141, "y": 32, "flags": 4},
+ {"matrix": [2, 9], "x": 157, "y": 32, "flags": 4},
+ {"matrix": [2, 10], "x": 173, "y": 32, "flags": 4},
+ {"matrix": [2, 11], "x": 189, "y": 32, "flags": 4},
+ {"matrix": [2, 13], "x": 206, "y": 32, "flags": 4},
+ {"matrix": [1, 13], "x": 224, "y": 24, "flags": 1},
+
+ {"matrix": [3, 0], "x": 2, "y": 48, "flags": 1},
+ {"matrix": [3, 1], "x": 20, "y": 48, "flags": 4},
+ {"matrix": [3, 2], "x": 36, "y": 48, "flags": 4},
+ {"matrix": [3, 3], "x": 52, "y": 48, "flags": 4},
+ {"matrix": [3, 4], "x": 69, "y": 48, "flags": 4},
+ {"matrix": [3, 5], "x": 85, "y": 48, "flags": 4},
+ {"matrix": [3, 6], "x": 101, "y": 48, "flags": 4},
+ {"matrix": [3, 7], "x": 117, "y": 48, "flags": 4},
+ {"matrix": [3, 8], "x": 133, "y": 48, "flags": 4},
+ {"matrix": [3, 9], "x": 149, "y": 48, "flags": 4},
+ {"matrix": [3, 10], "x": 165, "y": 48, "flags": 4},
+ {"matrix": [3, 11], "x": 181, "y": 48, "flags": 4},
+ {"matrix": [3, 13], "x": 212, "y": 48, "flags": 1},
+
+ {"matrix": [4, 0], "x": 2, "y": 64, "flags": 1},
+ {"matrix": [4, 1], "x": 22, "y": 64, "flags": 1},
+ {"matrix": [4, 2], "x": 42, "y": 64, "flags": 1},
+ {"matrix": [4, 6], "x": 103, "y": 64, "flags": 4},
+ {"matrix": [4, 10], "x": 164, "y": 64, "flags": 1},
+ {"matrix": [4, 11], "x": 184, "y": 64, "flags": 1},
+ {"matrix": [4, 12], "x": 204, "y": 64, "flags": 1},
+ {"matrix": [4, 13], "x": 224, "y": 64, "flags": 1}
+ ]
},
- "diode_direction": "ROW2COL",
- "processor": "STM32L432",
- "bootloader": "stm32-dfu",
"layouts": {
"LAYOUT_iso_62": {
"layout": [
diff --git a/keyboards/keychron/q4/iso/iso.c b/keyboards/keychron/q4/iso/iso.c
index 24cbcfd745..a808c3ad74 100644
--- a/keyboards/keychron/q4/iso/iso.c
+++ b/keyboards/keychron/q4/iso/iso.c
@@ -18,8 +18,8 @@
#ifdef RGB_MATRIX_ENABLE
-const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = {
-/* Refer to CKLED manual for these locations
+const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = {
+/* Refer to SNLED27351 manual for these locations
* driver
* | R location
* | | G location
@@ -93,33 +93,4 @@ const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = {
{0, F_16, D_16, E_16},
};
-#define __ NO_LED
-
-led_config_t g_led_config = {
- {
- // Key Matrix to LED Index
- { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13 },
- { 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 40 },
- { 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, __, 39 },
- { 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, __, 53 },
- { 54, 55, 56, __, __, __, 57, __, __, __, 58, 59, 60, 61 },
- },
- {
- // LED Index to Physical Position
- {0, 0}, {16, 0}, {32, 0}, {48, 0}, {64, 0}, {81, 0}, { 97, 0}, {113, 0}, {129, 0}, {145, 0}, {161, 0}, {177, 0}, {193, 0}, {218, 0},
- {4,16}, {24,16}, {40,16}, {56,16}, {73,16}, {89,16}, {105,16}, {121,16}, {137,16}, {153,16}, {169,16}, {185,16}, {202,16},
- {6,32}, {28,32}, {44,32}, {60,32}, {77,32}, {93,32}, {109,32}, {125,32}, {141,32}, {157,32}, {173,32}, {189,32}, {206,32}, {224,24},
- {2,48}, {20,48}, {36,48}, {52,48}, {69,48}, {85,48}, {101,48}, {117,48}, {133,48}, {149,48}, {165,48}, {181,48}, {212,48},
- {2,64}, {22,64}, {42,64}, {103,64}, {164,64}, {184,64}, {204,64}, {224,64},
- },
- {
- // RGB LED Index to Flag
- 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
- 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
- 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
- 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
- 1, 1, 1, 4, 1, 1, 1, 1,
- }
-};
-
#endif
diff --git a/keyboards/keychron/q4/iso/rules.mk b/keyboards/keychron/q4/iso/rules.mk
index cad488b009..7ff128fa69 100644
--- a/keyboards/keychron/q4/iso/rules.mk
+++ b/keyboards/keychron/q4/iso/rules.mk
@@ -1,18 +1 @@
-# Build Options
-# change yes to no to disable.
-#
-BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite
-MOUSEKEY_ENABLE = yes # Mouse keys
-EXTRAKEY_ENABLE = yes # Audio control and System control
-CONSOLE_ENABLE = no # Console for debug
-COMMAND_ENABLE = no # Commands for debug and configuration
-NKRO_ENABLE = yes # Enable USB N-key Rollover
-BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
-RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
-AUDIO_ENABLE = no # Audio output
-DIP_SWITCH_ENABLE = yes
-RGB_MATRIX_ENABLE = yes
-LTO_ENABLE = no
-EEPROM_DRIVER = wear_leveling
-WEAR_LEVELING_DRIVER = embedded_flash
-
+# This file intentionally left blank \ No newline at end of file
diff --git a/keyboards/keychron/q4/readme.md b/keyboards/keychron/q4/readme.md
index 2c3d9c8572..711eeadbb4 100644
--- a/keyboards/keychron/q4/readme.md
+++ b/keyboards/keychron/q4/readme.md
@@ -1,18 +1,26 @@
# Keychron Q4
+![Keychron Q4](https://i.imgur.com/daIVjVGh.jpg)
+
A customizable 60% keyboard.
+Q4 Version 1 uses only 2 ICs for CKLED2001 and Q4 Version 2 uses only one IC.
+
* Keyboard Maintainer: [Keychron](https://github.com/keychron)
* Hardware Supported: Keychron Q4
-* Hardware Availability: [Keychron](https://www.keychron.com)
+* Hardware Availability: [Keychron Q4 QMK Custom Mechanical Keyboard](https://www.keychron.com/products/keychron-q4-qmk-via-custom-mechanical-keyboard)
Make example for this keyboard (after setting up your build environment):
- make keychron/q4/ansi_v2:default
+ make keychron/q4/ansi/v1:default
+ make keychron/q4/ansi/v2:default
+ make keychron/q4/iso:default
Flashing example for this keyboard ([after setting up the bootloadHID flashing environment](https://docs.qmk.fm/#/flashing_bootloadhid))
- make keychron/q4/ansi_v2:default:flash
+ make keychron/q4/ansi/v1:default:flash
+ make keychron/q4/ansi/v2:default:flash
+ make keychron/q4/iso:default:flash
**Reset Key**: Hold down the key located at *K00*, commonly programmed as *Esc* while plugging in the keyboard.
diff --git a/keyboards/keychron/q5/ansi/ansi.c b/keyboards/keychron/q5/ansi/ansi.c
index dda563cd79..8c80245fbc 100644
--- a/keyboards/keychron/q5/ansi/ansi.c
+++ b/keyboards/keychron/q5/ansi/ansi.c
@@ -18,8 +18,8 @@
#ifdef RGB_MATRIX_ENABLE
-const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = {
-/* Refer to IS31 manual for these locations
+const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = {
+/* Refer to SNLED27351 manual for these locations
* driver
* | R location
* | | G location
diff --git a/keyboards/keychron/q5/ansi/info.json b/keyboards/keychron/q5/ansi/info.json
index 55d7ae0165..8795957c45 100644
--- a/keyboards/keychron/q5/ansi/info.json
+++ b/keyboards/keychron/q5/ansi/info.json
@@ -9,7 +9,7 @@
"device_version": "1.0.0"
},
"rgb_matrix": {
- "driver": "ckled2001"
+ "driver": "snled27351"
},
"processor": "STM32L432",
"bootloader": "stm32-dfu",
diff --git a/keyboards/keychron/q5/ansi/rules.mk b/keyboards/keychron/q5/ansi/rules.mk
index e859eb9c34..465dfa9348 100644
--- a/keyboards/keychron/q5/ansi/rules.mk
+++ b/keyboards/keychron/q5/ansi/rules.mk
@@ -12,8 +12,6 @@ RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
AUDIO_ENABLE = no # Audio output
DIP_SWITCH_ENABLE = yes
RGB_MATRIX_ENABLE = yes
-EEPROM_DRIVER = wear_leveling
-WEAR_LEVELING_DRIVER = embedded_flash
# custom matrix setup
CUSTOM_MATRIX = lite
diff --git a/keyboards/keychron/q5/ansi_encoder/ansi_encoder.c b/keyboards/keychron/q5/ansi_encoder/ansi_encoder.c
index 4d3cc0f036..d5f67f1297 100644
--- a/keyboards/keychron/q5/ansi_encoder/ansi_encoder.c
+++ b/keyboards/keychron/q5/ansi_encoder/ansi_encoder.c
@@ -20,8 +20,8 @@
// clang-format off
-const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = {
-/* Refer to IS31 manual for these locations
+const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = {
+/* Refer to SNLED27351 manual for these locations
* driver
* | R location
* | | G location
diff --git a/keyboards/keychron/q5/ansi_encoder/info.json b/keyboards/keychron/q5/ansi_encoder/info.json
index 468261b1e9..ae4a58e55d 100644
--- a/keyboards/keychron/q5/ansi_encoder/info.json
+++ b/keyboards/keychron/q5/ansi_encoder/info.json
@@ -9,7 +9,7 @@
"device_version": "1.0.0"
},
"rgb_matrix": {
- "driver": "ckled2001"
+ "driver": "snled27351"
},
"encoder": {
"rotary": [
diff --git a/keyboards/keychron/q5/ansi_encoder/rules.mk b/keyboards/keychron/q5/ansi_encoder/rules.mk
index 7da353fbd1..4c6e5bebf0 100644
--- a/keyboards/keychron/q5/ansi_encoder/rules.mk
+++ b/keyboards/keychron/q5/ansi_encoder/rules.mk
@@ -13,8 +13,6 @@ AUDIO_ENABLE = no # Audio output
ENCODER_ENABLE = yes # Enable Encoder
DIP_SWITCH_ENABLE = yes
RGB_MATRIX_ENABLE = yes
-EEPROM_DRIVER = wear_leveling
-WEAR_LEVELING_DRIVER = embedded_flash
# custom matrix setup
CUSTOM_MATRIX = lite
diff --git a/keyboards/keychron/q5/config.h b/keyboards/keychron/q5/config.h
index bf25cb7441..0640331997 100644
--- a/keyboards/keychron/q5/config.h
+++ b/keyboards/keychron/q5/config.h
@@ -30,11 +30,10 @@
#define DIODE_DIRECTION ROW2COL
/* RGB Matrix Driver Configuration */
-#define DRIVER_COUNT 2
-#define DRIVER_ADDR_1 0b1110111
-#define DRIVER_ADDR_2 0b1110100
+#define SNLED27351_I2C_ADDRESS_1 SNLED27351_I2C_ADDRESS_VDDIO
+#define SNLED27351_I2C_ADDRESS_2 SNLED27351_I2C_ADDRESS_GND
-#define CKLED2001_CURRENT_TUNE \
+#define SNLED27351_CURRENT_TUNE \
{ 0xB6, 0xB6, 0x56, 0xB6, 0xB6, 0x56, 0xB6, 0xB6, 0x56, 0xB6, 0xB6, 0x56 }
/* DIP switch */
diff --git a/keyboards/keychron/q5/iso/info.json b/keyboards/keychron/q5/iso/info.json
index 3b0b2ea1a0..2cc2ce9640 100644
--- a/keyboards/keychron/q5/iso/info.json
+++ b/keyboards/keychron/q5/iso/info.json
@@ -9,7 +9,7 @@
"device_version": "1.0.0"
},
"rgb_matrix": {
- "driver": "ckled2001"
+ "driver": "snled27351"
},
"processor": "STM32L432",
"bootloader": "stm32-dfu",
diff --git a/keyboards/keychron/q5/iso/iso.c b/keyboards/keychron/q5/iso/iso.c
index 65924abd76..8a7cb863ec 100644
--- a/keyboards/keychron/q5/iso/iso.c
+++ b/keyboards/keychron/q5/iso/iso.c
@@ -20,8 +20,8 @@
// clang-format off
-const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = {
-/* Refer to IS31 manual for these locations
+const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = {
+/* Refer to SNLED27351 manual for these locations
* driver
* | R location
* | | G location
diff --git a/keyboards/keychron/q5/iso/rules.mk b/keyboards/keychron/q5/iso/rules.mk
index e859eb9c34..465dfa9348 100644
--- a/keyboards/keychron/q5/iso/rules.mk
+++ b/keyboards/keychron/q5/iso/rules.mk
@@ -12,8 +12,6 @@ RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
AUDIO_ENABLE = no # Audio output
DIP_SWITCH_ENABLE = yes
RGB_MATRIX_ENABLE = yes
-EEPROM_DRIVER = wear_leveling
-WEAR_LEVELING_DRIVER = embedded_flash
# custom matrix setup
CUSTOM_MATRIX = lite
diff --git a/keyboards/keychron/q5/iso_encoder/info.json b/keyboards/keychron/q5/iso_encoder/info.json
index eefa6dc693..a425cf3145 100644
--- a/keyboards/keychron/q5/iso_encoder/info.json
+++ b/keyboards/keychron/q5/iso_encoder/info.json
@@ -9,7 +9,7 @@
"device_version": "1.0.0"
},
"rgb_matrix": {
- "driver": "ckled2001"
+ "driver": "snled27351"
},
"encoder": {
"rotary": [
diff --git a/keyboards/keychron/q5/iso_encoder/iso_encoder.c b/keyboards/keychron/q5/iso_encoder/iso_encoder.c
index 22ba9e2d4e..009e8043db 100644
--- a/keyboards/keychron/q5/iso_encoder/iso_encoder.c
+++ b/keyboards/keychron/q5/iso_encoder/iso_encoder.c
@@ -20,8 +20,8 @@
// clang-format off
-const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = {
-/* Refer to IS31 manual for these locations
+const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = {
+/* Refer to SNLED27351 manual for these locations
* driver
* | R location
* | | G location
diff --git a/keyboards/keychron/q5/iso_encoder/rules.mk b/keyboards/keychron/q5/iso_encoder/rules.mk
index 7da353fbd1..4c6e5bebf0 100644
--- a/keyboards/keychron/q5/iso_encoder/rules.mk
+++ b/keyboards/keychron/q5/iso_encoder/rules.mk
@@ -13,8 +13,6 @@ AUDIO_ENABLE = no # Audio output
ENCODER_ENABLE = yes # Enable Encoder
DIP_SWITCH_ENABLE = yes
RGB_MATRIX_ENABLE = yes
-EEPROM_DRIVER = wear_leveling
-WEAR_LEVELING_DRIVER = embedded_flash
# custom matrix setup
CUSTOM_MATRIX = lite
diff --git a/keyboards/keychron/q6/ansi/ansi.c b/keyboards/keychron/q6/ansi/ansi.c
index a81d5f9e9f..80eaad02b3 100644
--- a/keyboards/keychron/q6/ansi/ansi.c
+++ b/keyboards/keychron/q6/ansi/ansi.c
@@ -20,8 +20,8 @@
// clang-format off
-const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = {
-/* Refer to IS31 manual for these locations
+const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = {
+/* Refer to SNLED27351 manual for these locations
* driver
* | R location
* | | G location
diff --git a/keyboards/keychron/q6/ansi/info.json b/keyboards/keychron/q6/ansi/info.json
index fdec220e80..108cc46379 100644
--- a/keyboards/keychron/q6/ansi/info.json
+++ b/keyboards/keychron/q6/ansi/info.json
@@ -9,7 +9,7 @@
"device_version": "1.0.0"
},
"rgb_matrix": {
- "driver": "ckled2001"
+ "driver": "snled27351"
},
"processor": "STM32L432",
"bootloader": "stm32-dfu",
diff --git a/keyboards/keychron/q6/ansi/rules.mk b/keyboards/keychron/q6/ansi/rules.mk
index ec47b77d0f..9383cc955f 100644
--- a/keyboards/keychron/q6/ansi/rules.mk
+++ b/keyboards/keychron/q6/ansi/rules.mk
@@ -13,8 +13,6 @@ AUDIO_ENABLE = no # Audio output
DIP_SWITCH_ENABLE = yes
RGB_MATRIX_ENABLE = yes
LTO_ENABLE = yes
-EEPROM_DRIVER = wear_leveling
-WEAR_LEVELING_DRIVER = embedded_flash
# custom matrix setup
CUSTOM_MATRIX = lite
diff --git a/keyboards/keychron/q6/ansi_encoder/ansi_encoder.c b/keyboards/keychron/q6/ansi_encoder/ansi_encoder.c
index 6fbece3678..9c88533620 100644
--- a/keyboards/keychron/q6/ansi_encoder/ansi_encoder.c
+++ b/keyboards/keychron/q6/ansi_encoder/ansi_encoder.c
@@ -20,8 +20,8 @@
// clang-format off
-const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = {
-/* Refer to IS31 manual for these locations
+const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = {
+/* Refer to SNLED27351 manual for these locations
* driver
* | R location
* | | G location
diff --git a/keyboards/keychron/q6/ansi_encoder/info.json b/keyboards/keychron/q6/ansi_encoder/info.json
index df3902f44a..fc2da19f73 100644
--- a/keyboards/keychron/q6/ansi_encoder/info.json
+++ b/keyboards/keychron/q6/ansi_encoder/info.json
@@ -9,7 +9,7 @@
"device_version": "1.0.0"
},
"rgb_matrix": {
- "driver": "ckled2001"
+ "driver": "snled27351"
},
"encoder": {
"rotary": [
diff --git a/keyboards/keychron/q6/ansi_encoder/rules.mk b/keyboards/keychron/q6/ansi_encoder/rules.mk
index 77b90f2466..929c4532a0 100644
--- a/keyboards/keychron/q6/ansi_encoder/rules.mk
+++ b/keyboards/keychron/q6/ansi_encoder/rules.mk
@@ -14,8 +14,6 @@ ENCODER_ENABLE = yes # Enable Encoder
DIP_SWITCH_ENABLE = yes
RGB_MATRIX_ENABLE = yes
LTO_ENABLE = yes
-EEPROM_DRIVER = wear_leveling
-WEAR_LEVELING_DRIVER = embedded_flash
# custom matrix setup
CUSTOM_MATRIX = lite
diff --git a/keyboards/keychron/q6/config.h b/keyboards/keychron/q6/config.h
index 060804057f..2edceb09d7 100644
--- a/keyboards/keychron/q6/config.h
+++ b/keyboards/keychron/q6/config.h
@@ -24,11 +24,10 @@
#define DIODE_DIRECTION ROW2COL
/* RGB Matrix Driver Configuration */
-#define DRIVER_COUNT 2
-#define DRIVER_ADDR_1 0b1110111
-#define DRIVER_ADDR_2 0b1110100
+#define SNLED27351_I2C_ADDRESS_1 SNLED27351_I2C_ADDRESS_VDDIO
+#define SNLED27351_I2C_ADDRESS_2 SNLED27351_I2C_ADDRESS_GND
-#define CKLED2001_CURRENT_TUNE \
+#define SNLED27351_CURRENT_TUNE \
{ 0xA4, 0xA4, 0x52, 0xA4, 0xA4, 0x52, 0xA4, 0xA4, 0x52, 0xA4, 0xA4, 0x52 }
/* DIP switch */
diff --git a/keyboards/keychron/q6/iso/info.json b/keyboards/keychron/q6/iso/info.json
index dfaa20aa93..269605ff8b 100644
--- a/keyboards/keychron/q6/iso/info.json
+++ b/keyboards/keychron/q6/iso/info.json
@@ -9,7 +9,7 @@
"device_version": "1.0.0"
},
"rgb_matrix": {
- "driver": "ckled2001"
+ "driver": "snled27351"
},
"processor": "STM32L432",
"bootloader": "stm32-dfu",
diff --git a/keyboards/keychron/q6/iso/iso.c b/keyboards/keychron/q6/iso/iso.c
index f2081177e9..d2aa010c05 100644
--- a/keyboards/keychron/q6/iso/iso.c
+++ b/keyboards/keychron/q6/iso/iso.c
@@ -20,8 +20,8 @@
// clang-format off
-const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = {
-/* Refer to IS31 manual for these locations
+const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = {
+/* Refer to SNLED27351 manual for these locations
* driver
* | R location
* | | G location
diff --git a/keyboards/keychron/q6/iso/rules.mk b/keyboards/keychron/q6/iso/rules.mk
index 6548448302..f16a475f61 100644
--- a/keyboards/keychron/q6/iso/rules.mk
+++ b/keyboards/keychron/q6/iso/rules.mk
@@ -14,8 +14,6 @@ DIP_SWITCH_ENABLE = yes
RGB_MATRIX_ENABLE = yes
RAW_ENABLE = yes
LTO_ENABLE = yes
-EEPROM_DRIVER = wear_leveling
-WEAR_LEVELING_DRIVER = embedded_flash
# custom matrix setup
CUSTOM_MATRIX = lite
diff --git a/keyboards/keychron/q6/iso_encoder/info.json b/keyboards/keychron/q6/iso_encoder/info.json
index 4590616831..e5aa0bd8f5 100644
--- a/keyboards/keychron/q6/iso_encoder/info.json
+++ b/keyboards/keychron/q6/iso_encoder/info.json
@@ -9,7 +9,7 @@
"device_version": "1.0.0"
},
"rgb_matrix": {
- "driver": "ckled2001"
+ "driver": "snled27351"
},
"encoder": {
"rotary": [
diff --git a/keyboards/keychron/q6/iso_encoder/iso_encoder.c b/keyboards/keychron/q6/iso_encoder/iso_encoder.c
index e9a6f6edfc..66e066b839 100644
--- a/keyboards/keychron/q6/iso_encoder/iso_encoder.c
+++ b/keyboards/keychron/q6/iso_encoder/iso_encoder.c
@@ -20,8 +20,8 @@
// clang-format off
-const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = {
-/* Refer to IS31 manual for these locations
+const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = {
+/* Refer to SNLED27351 manual for these locations
* driver
* | R location
* | | G location
diff --git a/keyboards/keychron/q6/iso_encoder/rules.mk b/keyboards/keychron/q6/iso_encoder/rules.mk
index 548b0d696b..712c2ef1fd 100644
--- a/keyboards/keychron/q6/iso_encoder/rules.mk
+++ b/keyboards/keychron/q6/iso_encoder/rules.mk
@@ -15,8 +15,6 @@ DIP_SWITCH_ENABLE = yes
RGB_MATRIX_ENABLE = yes
RAW_ENABLE = yes
LTO_ENABLE = yes
-EEPROM_DRIVER = wear_leveling
-WEAR_LEVELING_DRIVER = embedded_flash
# custom matrix setup
CUSTOM_MATRIX = lite
diff --git a/keyboards/keychron/q60/ansi/ansi.c b/keyboards/keychron/q60/ansi/ansi.c
index bb3c84b64a..ac72737146 100644
--- a/keyboards/keychron/q60/ansi/ansi.c
+++ b/keyboards/keychron/q60/ansi/ansi.c
@@ -20,8 +20,8 @@
// clang-format off
-const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = {
-/* Refer to CKLED manual for these locations
+const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = {
+/* Refer to SNLED27351 manual for these locations
* driver
* | R location
* | | G location
diff --git a/keyboards/keychron/q60/ansi/info.json b/keyboards/keychron/q60/ansi/info.json
index 95b1c4e472..f5832b2d8f 100644
--- a/keyboards/keychron/q60/ansi/info.json
+++ b/keyboards/keychron/q60/ansi/info.json
@@ -9,7 +9,7 @@
"device_version": "1.0.0"
},
"rgb_matrix": {
- "driver": "ckled2001"
+ "driver": "snled27351"
},
"matrix_pins": {
"cols": ["C14", "C15", "A0", "A1", "A2", "A3", "A4", "A5", "A6", "A7", "B0", "B1", "A8", "A9"],
diff --git a/keyboards/keychron/q60/ansi/rules.mk b/keyboards/keychron/q60/ansi/rules.mk
index 46f5aef144..468ed6fae3 100644
--- a/keyboards/keychron/q60/ansi/rules.mk
+++ b/keyboards/keychron/q60/ansi/rules.mk
@@ -12,6 +12,3 @@ RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
AUDIO_ENABLE = no # Audio output
DIP_SWITCH_ENABLE = yes
RGB_MATRIX_ENABLE = yes
-EEPROM_DRIVER = wear_leveling
-WEAR_LEVELING_DRIVER = embedded_flash
-
diff --git a/keyboards/keychron/q60/config.h b/keyboards/keychron/q60/config.h
index 779feea4ce..6b6c3c5f48 100644
--- a/keyboards/keychron/q60/config.h
+++ b/keyboards/keychron/q60/config.h
@@ -17,8 +17,7 @@
#pragma once
/* RGB Matrix Driver Configuration */
-#define DRIVER_COUNT 1
-#define DRIVER_ADDR_1 0b1110100
+#define SNLED27351_I2C_ADDRESS_1 SNLED27351_I2C_ADDRESS_GND
/* Increase I2C speed to 1000 KHz */
#define I2C1_TIMINGR_PRESC 0U
@@ -27,7 +26,7 @@
#define I2C1_TIMINGR_SCLH 15U
#define I2C1_TIMINGR_SCLL 51U
-#define CKLED2001_CURRENT_TUNE \
+#define SNLED27351_CURRENT_TUNE \
{ 0xD8, 0xD8, 0x60, 0xD8, 0xD8, 0x60, 0xD8, 0xD8, 0x60, 0xD8, 0xD8, 0x60 }
/* DIP switch */
diff --git a/keyboards/keychron/q65/ansi_encoder/ansi_encoder.c b/keyboards/keychron/q65/ansi_encoder/ansi_encoder.c
index fffa00194d..8e9b37b806 100644
--- a/keyboards/keychron/q65/ansi_encoder/ansi_encoder.c
+++ b/keyboards/keychron/q65/ansi_encoder/ansi_encoder.c
@@ -18,8 +18,8 @@
#ifdef RGB_MATRIX_ENABLE
-const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = {
-/* Refer to CKLED manual for these locations
+const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = {
+/* Refer to SNLED27351 manual for these locations
* driver
* | R location
* | | G location
diff --git a/keyboards/keychron/q65/ansi_encoder/info.json b/keyboards/keychron/q65/ansi_encoder/info.json
index 0f7679945a..a42d7d289c 100644
--- a/keyboards/keychron/q65/ansi_encoder/info.json
+++ b/keyboards/keychron/q65/ansi_encoder/info.json
@@ -9,7 +9,7 @@
"device_version": "1.0.0"
},
"rgb_matrix": {
- "driver": "ckled2001"
+ "driver": "snled27351"
},
"encoder": {
"rotary": [
diff --git a/keyboards/keychron/q65/ansi_encoder/rules.mk b/keyboards/keychron/q65/ansi_encoder/rules.mk
index 7da353fbd1..4c6e5bebf0 100644
--- a/keyboards/keychron/q65/ansi_encoder/rules.mk
+++ b/keyboards/keychron/q65/ansi_encoder/rules.mk
@@ -13,8 +13,6 @@ AUDIO_ENABLE = no # Audio output
ENCODER_ENABLE = yes # Enable Encoder
DIP_SWITCH_ENABLE = yes
RGB_MATRIX_ENABLE = yes
-EEPROM_DRIVER = wear_leveling
-WEAR_LEVELING_DRIVER = embedded_flash
# custom matrix setup
CUSTOM_MATRIX = lite
diff --git a/keyboards/keychron/q65/config.h b/keyboards/keychron/q65/config.h
index 148ea9ad14..84c4e9fc17 100644
--- a/keyboards/keychron/q65/config.h
+++ b/keyboards/keychron/q65/config.h
@@ -26,9 +26,8 @@
{ NO_PIN, NO_PIN, NO_PIN, NO_PIN, NO_PIN, NO_PIN, NO_PIN, NO_PIN, A2, A3, A4, A5, A6, A7, B0, B1 }
/* RGB Matrix Driver Configuration */
-#define DRIVER_COUNT 2
-#define DRIVER_ADDR_1 0b1110111
-#define DRIVER_ADDR_2 0b1110100
+#define SNLED27351_I2C_ADDRESS_1 SNLED27351_I2C_ADDRESS_VDDIO
+#define SNLED27351_I2C_ADDRESS_2 SNLED27351_I2C_ADDRESS_GND
/* Increase I2C speed to 1000 KHz */
#define I2C1_TIMINGR_PRESC 0U
@@ -37,9 +36,8 @@
#define I2C1_TIMINGR_SCLH 15U
#define I2C1_TIMINGR_SCLL 30U
-/* Scan phase of led driver set as MSKPHASE_9CHANNEL(defined as 0x03 in CKLED2001.h) */
-#define PHASE_CHANNEL MSKPHASE_9CHANNEL
-#define CKLED2001_CURRENT_TUNE \
+#define SNLED27351_PHASE_CHANNEL SNLED27351_SCAN_PHASE_9_CHANNEL
+#define SNLED27351_CURRENT_TUNE \
{ 0xB8, 0xB8, 0x58, 0xB8, 0xB8, 0x58, 0xB8, 0xB8, 0x58, 0xB8, 0xB8, 0x58 }
/* Disable DIP switch in matrix data */
diff --git a/keyboards/keychron/q7/ansi/ansi.c b/keyboards/keychron/q7/ansi/ansi.c
index 3dccb8b660..190c110a77 100644
--- a/keyboards/keychron/q7/ansi/ansi.c
+++ b/keyboards/keychron/q7/ansi/ansi.c
@@ -20,8 +20,8 @@
// clang-format off
-const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = {
-/* Refer to CKLED manual for these locations
+const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = {
+/* Refer to SNLED27351 manual for these locations
* driver
* | R location
* | | G location
diff --git a/keyboards/keychron/q7/ansi/info.json b/keyboards/keychron/q7/ansi/info.json
index 2549e329f2..717fe357b7 100644
--- a/keyboards/keychron/q7/ansi/info.json
+++ b/keyboards/keychron/q7/ansi/info.json
@@ -9,7 +9,7 @@
"device_version": "1.0.0"
},
"rgb_matrix": {
- "driver": "ckled2001"
+ "driver": "snled27351"
},
"matrix_pins": {
"cols": ["C14", "C15", "A0", "A1", "A2", "A3", "A4", "A5", "A6", "A7", "B0", "B1", "A8", "A9", "A10", "B5"],
diff --git a/keyboards/keychron/q7/ansi/rules.mk b/keyboards/keychron/q7/ansi/rules.mk
index c37beecb9e..cf31e094cb 100644
--- a/keyboards/keychron/q7/ansi/rules.mk
+++ b/keyboards/keychron/q7/ansi/rules.mk
@@ -12,6 +12,3 @@ RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
AUDIO_ENABLE = no # Audio output
DIP_SWITCH_ENABLE = yes
RGB_MATRIX_ENABLE = yes
-EEPROM_DRIVER = wear_leveling
-WEAR_LEVELING_DRIVER = embedded_flash
-
diff --git a/keyboards/keychron/q7/config.h b/keyboards/keychron/q7/config.h
index 0ea9ee5f46..4794c80011 100644
--- a/keyboards/keychron/q7/config.h
+++ b/keyboards/keychron/q7/config.h
@@ -17,9 +17,8 @@
#pragma once
/* RGB Matrix Driver Configuration */
-#define DRIVER_COUNT 2
-#define DRIVER_ADDR_1 0b1110111
-#define DRIVER_ADDR_2 0b1110100
+#define SNLED27351_I2C_ADDRESS_1 SNLED27351_I2C_ADDRESS_VDDIO
+#define SNLED27351_I2C_ADDRESS_2 SNLED27351_I2C_ADDRESS_GND
/* Increase I2C speed to 1000 KHz */
#define I2C1_TIMINGR_PRESC 0U
@@ -28,9 +27,8 @@
#define I2C1_TIMINGR_SCLH 15U
#define I2C1_TIMINGR_SCLL 51U
-/* Scan phase of led driver set as MSKPHASE_9CHANNEL(defined as 0x03 in CKLED2001.h) */
-#define SCAN_PHASE_CHANNEL MSKPHASE_9CHANNEL
-#define CKLED2001_CURRENT_TUNE \
+#define SNLED27351_PHASE_CHANNEL SNLED27351_SCAN_PHASE_9_CHANNEL
+#define SNLED27351_CURRENT_TUNE \
{ 0xF8, 0xF8, 0x80, 0xF8, 0xF8, 0x80, 0xF8, 0xF8, 0x80, 0xF8, 0xF8, 0x80 }
/* DIP switch */
diff --git a/keyboards/keychron/q7/iso/info.json b/keyboards/keychron/q7/iso/info.json
index 27262eb4f3..d57c5b17b9 100644
--- a/keyboards/keychron/q7/iso/info.json
+++ b/keyboards/keychron/q7/iso/info.json
@@ -9,7 +9,7 @@
"device_version": "1.0.0"
},
"rgb_matrix": {
- "driver": "ckled2001"
+ "driver": "snled27351"
},
"matrix_pins": {
"cols": ["C14", "C15", "A0", "A1", "A2", "A3", "A4", "A5", "A6", "A7", "B0", "B1", "A8", "A9", "A10", "B5"],
diff --git a/keyboards/keychron/q7/iso/iso.c b/keyboards/keychron/q7/iso/iso.c
index 039bd13836..13354b9f0b 100644
--- a/keyboards/keychron/q7/iso/iso.c
+++ b/keyboards/keychron/q7/iso/iso.c
@@ -18,8 +18,8 @@
#ifdef RGB_MATRIX_ENABLE
-const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = {
-/* Refer to CKLED manual for these locations
+const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = {
+/* Refer to SNLED27351 manual for these locations
* driver
* | R location
* | | G location
diff --git a/keyboards/keychron/q7/iso/rules.mk b/keyboards/keychron/q7/iso/rules.mk
index c37beecb9e..cf31e094cb 100644
--- a/keyboards/keychron/q7/iso/rules.mk
+++ b/keyboards/keychron/q7/iso/rules.mk
@@ -12,6 +12,3 @@ RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
AUDIO_ENABLE = no # Audio output
DIP_SWITCH_ENABLE = yes
RGB_MATRIX_ENABLE = yes
-EEPROM_DRIVER = wear_leveling
-WEAR_LEVELING_DRIVER = embedded_flash
-
diff --git a/keyboards/keychron/q8/ansi/ansi.c b/keyboards/keychron/q8/ansi/ansi.c
index e9c4edeb3e..3bb10b383d 100644
--- a/keyboards/keychron/q8/ansi/ansi.c
+++ b/keyboards/keychron/q8/ansi/ansi.c
@@ -20,8 +20,8 @@
// clang-format off
-const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = {
-/* Refer to CKLED manual for these locations
+const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = {
+/* Refer to SNLED27351 manual for these locations
* driver
* | R location
* | | G location
diff --git a/keyboards/keychron/q8/ansi/info.json b/keyboards/keychron/q8/ansi/info.json
index 7ee5b6c21f..f733004270 100644
--- a/keyboards/keychron/q8/ansi/info.json
+++ b/keyboards/keychron/q8/ansi/info.json
@@ -9,7 +9,7 @@
"device_version": "1.0.0"
},
"rgb_matrix": {
- "driver": "ckled2001"
+ "driver": "snled27351"
},
"matrix_pins": {
"cols": ["C14", "C15", "A0", "A1", "A2", "A3", "A4", "A5", "A6", "A7", "B0", "B1", "A8", "A9", "H3"],
diff --git a/keyboards/keychron/q8/ansi/rules.mk b/keyboards/keychron/q8/ansi/rules.mk
index c37beecb9e..cf31e094cb 100644
--- a/keyboards/keychron/q8/ansi/rules.mk
+++ b/keyboards/keychron/q8/ansi/rules.mk
@@ -12,6 +12,3 @@ RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
AUDIO_ENABLE = no # Audio output
DIP_SWITCH_ENABLE = yes
RGB_MATRIX_ENABLE = yes
-EEPROM_DRIVER = wear_leveling
-WEAR_LEVELING_DRIVER = embedded_flash
-
diff --git a/keyboards/keychron/q8/ansi_encoder/ansi_encoder.c b/keyboards/keychron/q8/ansi_encoder/ansi_encoder.c
index e9c4edeb3e..3bb10b383d 100644
--- a/keyboards/keychron/q8/ansi_encoder/ansi_encoder.c
+++ b/keyboards/keychron/q8/ansi_encoder/ansi_encoder.c
@@ -20,8 +20,8 @@
// clang-format off
-const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = {
-/* Refer to CKLED manual for these locations
+const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = {
+/* Refer to SNLED27351 manual for these locations
* driver
* | R location
* | | G location
diff --git a/keyboards/keychron/q8/ansi_encoder/info.json b/keyboards/keychron/q8/ansi_encoder/info.json
index a4c3ac77e1..ccf9453d53 100644
--- a/keyboards/keychron/q8/ansi_encoder/info.json
+++ b/keyboards/keychron/q8/ansi_encoder/info.json
@@ -9,7 +9,7 @@
"device_version": "1.0.0"
},
"rgb_matrix": {
- "driver": "ckled2001"
+ "driver": "snled27351"
},
"matrix_pins": {
"cols": ["C14", "C15", "A0", "A1", "A2", "A3", "A4", "A5", "A6", "A7", "B0", "B1", "A8", "A9", "H3"],
diff --git a/keyboards/keychron/q8/ansi_encoder/rules.mk b/keyboards/keychron/q8/ansi_encoder/rules.mk
index 5091fe9414..5d77f09971 100644
--- a/keyboards/keychron/q8/ansi_encoder/rules.mk
+++ b/keyboards/keychron/q8/ansi_encoder/rules.mk
@@ -13,6 +13,3 @@ AUDIO_ENABLE = no # Audio output
ENCODER_ENABLE = yes # Enable Encoder
DIP_SWITCH_ENABLE = yes
RGB_MATRIX_ENABLE = yes
-EEPROM_DRIVER = wear_leveling
-WEAR_LEVELING_DRIVER = embedded_flash
-
diff --git a/keyboards/keychron/q8/config.h b/keyboards/keychron/q8/config.h
index e0f6c673a5..7ecbf40b23 100644
--- a/keyboards/keychron/q8/config.h
+++ b/keyboards/keychron/q8/config.h
@@ -20,9 +20,8 @@
// #define MATRIX_UNSELECT_DRIVE_HIGH
/* RGB Matrix Driver Configuration */
-#define DRIVER_COUNT 2
-#define DRIVER_ADDR_1 0b1110111
-#define DRIVER_ADDR_2 0b1110100
+#define SNLED27351_I2C_ADDRESS_1 SNLED27351_I2C_ADDRESS_VDDIO
+#define SNLED27351_I2C_ADDRESS_2 SNLED27351_I2C_ADDRESS_GND
/* Increase I2C speed to 1000 KHz */
#define I2C1_TIMINGR_PRESC 0U
@@ -31,9 +30,8 @@
#define I2C1_TIMINGR_SCLH 15U
#define I2C1_TIMINGR_SCLL 51U
-/* Scan phase of led driver set as MSKPHASE_9CHANNEL(defined as 0x03 in CKLED2001.h) */
-#define PHASE_CHANNEL MSKPHASE_9CHANNEL
-#define CKLED2001_CURRENT_TUNE \
+#define SNLED27351_PHASE_CHANNEL SNLED27351_SCAN_PHASE_9_CHANNEL
+#define SNLED27351_CURRENT_TUNE \
{ 0xC4, 0xC4, 0x60, 0xC4, 0xC4, 0x60, 0xC4, 0xC4, 0x60, 0xC4, 0xC4, 0x60 }
/* DIP switch */
diff --git a/keyboards/keychron/q8/iso/info.json b/keyboards/keychron/q8/iso/info.json
index 03a6cd1fdd..28d586984e 100644
--- a/keyboards/keychron/q8/iso/info.json
+++ b/keyboards/keychron/q8/iso/info.json
@@ -9,7 +9,7 @@
"device_version": "1.0.0"
},
"rgb_matrix": {
- "driver": "ckled2001"
+ "driver": "snled27351"
},
"matrix_pins": {
"cols": ["C14", "C15", "A0", "A1", "A2", "A3", "A4", "A5", "A6", "A7", "B0", "B1", "A8", "A9", "H3"],
diff --git a/keyboards/keychron/q8/iso/iso.c b/keyboards/keychron/q8/iso/iso.c
index 205989383e..dbcefd76c0 100644
--- a/keyboards/keychron/q8/iso/iso.c
+++ b/keyboards/keychron/q8/iso/iso.c
@@ -20,8 +20,8 @@
// clang-format off
-const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = {
-/* Refer to CKLED manual for these locations
+const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = {
+/* Refer to SNLED27351 manual for these locations
* driver
* | R location
* | | G location
diff --git a/keyboards/keychron/q8/iso/rules.mk b/keyboards/keychron/q8/iso/rules.mk
index c37beecb9e..cf31e094cb 100644
--- a/keyboards/keychron/q8/iso/rules.mk
+++ b/keyboards/keychron/q8/iso/rules.mk
@@ -12,6 +12,3 @@ RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
AUDIO_ENABLE = no # Audio output
DIP_SWITCH_ENABLE = yes
RGB_MATRIX_ENABLE = yes
-EEPROM_DRIVER = wear_leveling
-WEAR_LEVELING_DRIVER = embedded_flash
-
diff --git a/keyboards/keychron/q8/iso_encoder/info.json b/keyboards/keychron/q8/iso_encoder/info.json
index eb9dc22503..0d96f3f193 100644
--- a/keyboards/keychron/q8/iso_encoder/info.json
+++ b/keyboards/keychron/q8/iso_encoder/info.json
@@ -9,7 +9,7 @@
"device_version": "1.0.0"
},
"rgb_matrix": {
- "driver": "ckled2001"
+ "driver": "snled27351"
},
"matrix_pins": {
"cols": ["C14", "C15", "A0", "A1", "A2", "A3", "A4", "A5", "A6", "A7", "B0", "B1", "A8", "A9", "H3"],
diff --git a/keyboards/keychron/q8/iso_encoder/iso_encoder.c b/keyboards/keychron/q8/iso_encoder/iso_encoder.c
index 205989383e..dbcefd76c0 100644
--- a/keyboards/keychron/q8/iso_encoder/iso_encoder.c
+++ b/keyboards/keychron/q8/iso_encoder/iso_encoder.c
@@ -20,8 +20,8 @@
// clang-format off
-const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = {
-/* Refer to CKLED manual for these locations
+const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = {
+/* Refer to SNLED27351 manual for these locations
* driver
* | R location
* | | G location
diff --git a/keyboards/keychron/q8/iso_encoder/rules.mk b/keyboards/keychron/q8/iso_encoder/rules.mk
index 5091fe9414..5d77f09971 100644
--- a/keyboards/keychron/q8/iso_encoder/rules.mk
+++ b/keyboards/keychron/q8/iso_encoder/rules.mk
@@ -13,6 +13,3 @@ AUDIO_ENABLE = no # Audio output
ENCODER_ENABLE = yes # Enable Encoder
DIP_SWITCH_ENABLE = yes
RGB_MATRIX_ENABLE = yes
-EEPROM_DRIVER = wear_leveling
-WEAR_LEVELING_DRIVER = embedded_flash
-
diff --git a/keyboards/keychron/q9/ansi/ansi.c b/keyboards/keychron/q9/ansi/ansi.c
index b98149a5f8..9178c8dcc7 100644
--- a/keyboards/keychron/q9/ansi/ansi.c
+++ b/keyboards/keychron/q9/ansi/ansi.c
@@ -20,8 +20,8 @@
// clang-format off
-const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = {
-/* Refer to CKLED manual for these locations
+const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = {
+/* Refer to SNLED27351 manual for these locations
* driver
* | R location
* | | G location
diff --git a/keyboards/keychron/q9/ansi/info.json b/keyboards/keychron/q9/ansi/info.json
index 952d3158c8..ccb29a749b 100644
--- a/keyboards/keychron/q9/ansi/info.json
+++ b/keyboards/keychron/q9/ansi/info.json
@@ -9,7 +9,7 @@
"device_version": "1.0.0"
},
"rgb_matrix": {
- "driver": "ckled2001"
+ "driver": "snled27351"
},
"matrix_pins": {
"cols": ["A10", "A9", "A8", "B1", "B0", "A7", "A6", "A5", "A4", "A3", "A2", "A1", "A0", "C15", "C14"],
diff --git a/keyboards/keychron/q9/ansi/rules.mk b/keyboards/keychron/q9/ansi/rules.mk
index c37beecb9e..cf31e094cb 100644
--- a/keyboards/keychron/q9/ansi/rules.mk
+++ b/keyboards/keychron/q9/ansi/rules.mk
@@ -12,6 +12,3 @@ RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
AUDIO_ENABLE = no # Audio output
DIP_SWITCH_ENABLE = yes
RGB_MATRIX_ENABLE = yes
-EEPROM_DRIVER = wear_leveling
-WEAR_LEVELING_DRIVER = embedded_flash
-
diff --git a/keyboards/keychron/q9/ansi_encoder/ansi_encoder.c b/keyboards/keychron/q9/ansi_encoder/ansi_encoder.c
index de0eda1c02..58d66e0473 100644
--- a/keyboards/keychron/q9/ansi_encoder/ansi_encoder.c
+++ b/keyboards/keychron/q9/ansi_encoder/ansi_encoder.c
@@ -20,8 +20,8 @@
// clang-format off
-const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = {
-/* Refer to CKLED manual for these locations
+const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = {
+/* Refer to SNLED27351 manual for these locations
* driver
* | R location
* | | G location
diff --git a/keyboards/keychron/q9/ansi_encoder/info.json b/keyboards/keychron/q9/ansi_encoder/info.json
index 4fd5352638..3826a1b768 100644
--- a/keyboards/keychron/q9/ansi_encoder/info.json
+++ b/keyboards/keychron/q9/ansi_encoder/info.json
@@ -9,7 +9,7 @@
"device_version": "1.0.0"
},
"rgb_matrix": {
- "driver": "ckled2001"
+ "driver": "snled27351"
},
"matrix_pins": {
"cols": ["A10", "A9", "A8", "B1", "B0", "A7", "A6", "A5", "A4", "A3", "A2", "A1", "A0", "C15", "C14"],
diff --git a/keyboards/keychron/q9/ansi_encoder/rules.mk b/keyboards/keychron/q9/ansi_encoder/rules.mk
index 911c497043..ed8fd33800 100644
--- a/keyboards/keychron/q9/ansi_encoder/rules.mk
+++ b/keyboards/keychron/q9/ansi_encoder/rules.mk
@@ -14,6 +14,3 @@ ENCODER_ENABLE = yes # Enable Encoder
ENCODER_MAP_ENBALE = no
DIP_SWITCH_ENABLE = yes
RGB_MATRIX_ENABLE = yes
-EEPROM_DRIVER = wear_leveling
-WEAR_LEVELING_DRIVER = embedded_flash
-
diff --git a/keyboards/keychron/q9/config.h b/keyboards/keychron/q9/config.h
index 742dde3ff2..4226980d3e 100644
--- a/keyboards/keychron/q9/config.h
+++ b/keyboards/keychron/q9/config.h
@@ -23,8 +23,7 @@
#define DIP_SWITCH_MATRIX_GRID { { 3, 4 } }
/* RGB Matrix Driver Configuration */
-#define DRIVER_COUNT 1
-#define DRIVER_ADDR_1 0b1110100
+#define SNLED27351_I2C_ADDRESS_1 SNLED27351_I2C_ADDRESS_GND
/* Increase I2C speed to 1000 KHz */
#define I2C1_TIMINGR_PRESC 0U
@@ -33,7 +32,7 @@
#define I2C1_TIMINGR_SCLH 15U
#define I2C1_TIMINGR_SCLL 51U
-#define CKLED2001_CURRENT_TUNE \
+#define SNLED27351_CURRENT_TUNE \
{ 0xF8, 0xF8, 0x70, 0xF8, 0xF8, 0x70, 0xF8, 0xF8, 0x70, 0xF8, 0xF8, 0x70 }
/* turn off effects when suspended */
diff --git a/keyboards/keychron/q9/iso/info.json b/keyboards/keychron/q9/iso/info.json
index 3e9a7690c1..a9586d6d91 100644
--- a/keyboards/keychron/q9/iso/info.json
+++ b/keyboards/keychron/q9/iso/info.json
@@ -9,7 +9,7 @@
"device_version": "1.0.0"
},
"rgb_matrix": {
- "driver": "ckled2001"
+ "driver": "snled27351"
},
"matrix_pins": {
"cols": ["A10", "A9", "A8", "B1", "B0", "A7", "A6", "A5", "A4", "A3", "A2", "A1", "A0", "C15", "C14"],
diff --git a/keyboards/keychron/q9/iso/iso.c b/keyboards/keychron/q9/iso/iso.c
index 0e258e8c63..1917b61f37 100644
--- a/keyboards/keychron/q9/iso/iso.c
+++ b/keyboards/keychron/q9/iso/iso.c
@@ -20,8 +20,8 @@
// clang-format off
-const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = {
-/* Refer to CKLED manual for these locations
+const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = {
+/* Refer to SNLED27351 manual for these locations
* driver
* | R location
* | | G location
diff --git a/keyboards/keychron/q9/iso/rules.mk b/keyboards/keychron/q9/iso/rules.mk
index c37beecb9e..cf31e094cb 100644
--- a/keyboards/keychron/q9/iso/rules.mk
+++ b/keyboards/keychron/q9/iso/rules.mk
@@ -12,6 +12,3 @@ RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
AUDIO_ENABLE = no # Audio output
DIP_SWITCH_ENABLE = yes
RGB_MATRIX_ENABLE = yes
-EEPROM_DRIVER = wear_leveling
-WEAR_LEVELING_DRIVER = embedded_flash
-
diff --git a/keyboards/keychron/q9/iso_encoder/info.json b/keyboards/keychron/q9/iso_encoder/info.json
index ecf944744d..1c74566da1 100644
--- a/keyboards/keychron/q9/iso_encoder/info.json
+++ b/keyboards/keychron/q9/iso_encoder/info.json
@@ -9,7 +9,7 @@
"device_version": "1.0.0"
},
"rgb_matrix": {
- "driver": "ckled2001"
+ "driver": "snled27351"
},
"matrix_pins": {
"cols": ["A10", "A9", "A8", "B1", "B0", "A7", "A6", "A5", "A4", "A3", "A2", "A1", "A0", "C15", "C14"],
diff --git a/keyboards/keychron/q9/iso_encoder/iso_encoder.c b/keyboards/keychron/q9/iso_encoder/iso_encoder.c
index 0804f33671..3a161fe9d7 100644
--- a/keyboards/keychron/q9/iso_encoder/iso_encoder.c
+++ b/keyboards/keychron/q9/iso_encoder/iso_encoder.c
@@ -20,8 +20,8 @@
// clang-format off
-const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = {
-/* Refer to CKLED manual for these locations
+const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = {
+/* Refer to SNLED27351 manual for these locations
* driver
* | R location
* | | G location
diff --git a/keyboards/keychron/q9/iso_encoder/rules.mk b/keyboards/keychron/q9/iso_encoder/rules.mk
index 911c497043..ed8fd33800 100644
--- a/keyboards/keychron/q9/iso_encoder/rules.mk
+++ b/keyboards/keychron/q9/iso_encoder/rules.mk
@@ -14,6 +14,3 @@ ENCODER_ENABLE = yes # Enable Encoder
ENCODER_MAP_ENBALE = no
DIP_SWITCH_ENABLE = yes
RGB_MATRIX_ENABLE = yes
-EEPROM_DRIVER = wear_leveling
-WEAR_LEVELING_DRIVER = embedded_flash
-
diff --git a/keyboards/keychron/q9_plus/ansi_encoder/ansi_encoder.c b/keyboards/keychron/q9_plus/ansi_encoder/ansi_encoder.c
index c0b4b3a32d..d264334fa0 100755
--- a/keyboards/keychron/q9_plus/ansi_encoder/ansi_encoder.c
+++ b/keyboards/keychron/q9_plus/ansi_encoder/ansi_encoder.c
@@ -17,8 +17,8 @@
#include "quantum.h"
#ifdef RGB_MATRIX_ENABLE
-const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = {
-/* Refer to CKLED2001 manual for these locations
+const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = {
+/* Refer to SNLED27351 manual for these locations
* driver
* | R location
* | | G location
diff --git a/keyboards/keychron/q9_plus/config.h b/keyboards/keychron/q9_plus/config.h
index a8cba07e90..c9ef05b613 100755
--- a/keyboards/keychron/q9_plus/config.h
+++ b/keyboards/keychron/q9_plus/config.h
@@ -23,8 +23,7 @@
#define DIP_SWITCH_MATRIX_GRID {{ 3, 4 }}
/* RGB Matrix Driver Configuration */
-#define DRIVER_COUNT 1
-#define DRIVER_ADDR_1 0b1110100
+#define SNLED27351_I2C_ADDRESS_1 SNLED27351_I2C_ADDRESS_GND
/* Increase I2C speed to 1000 KHz */
#define I2C1_TIMINGR_PRESC 0U
@@ -34,7 +33,7 @@
#define I2C1_TIMINGR_SCLL 51U
/* Set LED driver current */
-#define CKLED2001_CURRENT_TUNE \
+#define SNLED27351_CURRENT_TUNE \
{ 0xF8, 0xF8, 0x70, 0xF8, 0xF8, 0x70, 0xF8, 0xF8, 0x70, 0xF8, 0xF8, 0x70 }
/* turn off effects when suspended */
diff --git a/keyboards/keychron/q9_plus/info.json b/keyboards/keychron/q9_plus/info.json
index c56650cb1d..9f8703de37 100755
--- a/keyboards/keychron/q9_plus/info.json
+++ b/keyboards/keychron/q9_plus/info.json
@@ -96,7 +96,7 @@
}
},
"rgb_matrix": {
- "driver": "ckled2001",
+ "driver": "snled27351",
"animations": {
"breathing": true,
"band_spiral_val": true,
diff --git a/keyboards/keychron/s1/ansi/rgb/config.h b/keyboards/keychron/s1/ansi/rgb/config.h
index 9cf8df3b82..647a877a4c 100644
--- a/keyboards/keychron/s1/ansi/rgb/config.h
+++ b/keyboards/keychron/s1/ansi/rgb/config.h
@@ -17,16 +17,14 @@
#pragma once
/* RGB Matrix Driver Configuration */
-#define DRIVER_COUNT 2
-#define DRIVER_ADDR_1 0b1110111
-#define DRIVER_ADDR_2 0b1110100
+#define SNLED27351_I2C_ADDRESS_1 SNLED27351_I2C_ADDRESS_VDDIO
+#define SNLED27351_I2C_ADDRESS_2 SNLED27351_I2C_ADDRESS_GND
#define DRIVER_1_LED_TOTAL 46
#define DRIVER_2_LED_TOTAL 38
#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL)
-/* Scan phase of led driver set as MSKPHASE_9CHANNEL(defined as 0x03 in CKLED2001.h) */
-#define PHASE_CHANNEL MSKPHASE_9CHANNEL
-#define CKLED2001_CURRENT_TUNE \
+#define SNLED27351_PHASE_CHANNEL SNLED27351_SCAN_PHASE_9_CHANNEL
+#define SNLED27351_CURRENT_TUNE \
{ 0xA0, 0xA0, 0x48, 0xA0, 0xA0, 0x48, 0xA0, 0xA0, 0x48, 0xA0, 0xA0, 0x48 }
/* Disable RGB lighting when PC is in suspend */
diff --git a/keyboards/keychron/s1/ansi/rgb/info.json b/keyboards/keychron/s1/ansi/rgb/info.json
index 3bef5f343c..6b49cb18e0 100644
--- a/keyboards/keychron/s1/ansi/rgb/info.json
+++ b/keyboards/keychron/s1/ansi/rgb/info.json
@@ -9,7 +9,7 @@
"device_version": "1.0.0"
},
"rgb_matrix": {
- "driver": "ckled2001"
+ "driver": "snled27351"
},
"matrix_pins": {
"cols": ["A10", "A9", "A8", "B1", "B0", "A7", "A6", "A5", "A4", "A3", "A2", "A1", "A0", "C15", "C14"],
diff --git a/keyboards/keychron/s1/ansi/rgb/rgb.c b/keyboards/keychron/s1/ansi/rgb/rgb.c
index a0a2d25f94..ca39b0c796 100644
--- a/keyboards/keychron/s1/ansi/rgb/rgb.c
+++ b/keyboards/keychron/s1/ansi/rgb/rgb.c
@@ -20,8 +20,8 @@
// clang-format off
-const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = {
-/* Refer to CKLED2001 manual for these locations
+const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = {
+/* Refer to SNLED27351 manual for these locations
* driver
* | R location
* | | G location
diff --git a/keyboards/keychron/s1/ansi/rgb/rules.mk b/keyboards/keychron/s1/ansi/rgb/rules.mk
index c37beecb9e..cf31e094cb 100644
--- a/keyboards/keychron/s1/ansi/rgb/rules.mk
+++ b/keyboards/keychron/s1/ansi/rgb/rules.mk
@@ -12,6 +12,3 @@ RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
AUDIO_ENABLE = no # Audio output
DIP_SWITCH_ENABLE = yes
RGB_MATRIX_ENABLE = yes
-EEPROM_DRIVER = wear_leveling
-WEAR_LEVELING_DRIVER = embedded_flash
-
diff --git a/keyboards/keychron/s1/ansi/white/config.h b/keyboards/keychron/s1/ansi/white/config.h
index 65a79726ca..fbe02caeb1 100644
--- a/keyboards/keychron/s1/ansi/white/config.h
+++ b/keyboards/keychron/s1/ansi/white/config.h
@@ -17,14 +17,12 @@
#pragma once
/* LED Matrix Driver Configuration */
-#define DRIVER_COUNT 1
-#define DRIVER_ADDR_1 0b1110100
+#define SNLED27351_I2C_ADDRESS_1 SNLED27351_I2C_ADDRESS_GND
#define DRIVER_1_LED_TOTAL 84
#define LED_MATRIX_LED_COUNT DRIVER_1_LED_TOTAL
-/* Scan phase of led driver set as MSKPHASE_9CHANNEL(defined as 0x03 in CKLED2001.h) */
-#define PHASE_CHANNEL MSKPHASE_6CHANNEL
-#define CKLED2001_CURRENT_TUNE \
+#define SNLED27351_PHASE_CHANNEL SNLED27351_SCAN_PHASE_6_CHANNEL
+#define SNLED27351_CURRENT_TUNE \
{ 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 } // 250mA
// { 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40 } // 127mA
diff --git a/keyboards/keychron/s1/ansi/white/info.json b/keyboards/keychron/s1/ansi/white/info.json
index ff0a6b69cb..bcd64eea59 100644
--- a/keyboards/keychron/s1/ansi/white/info.json
+++ b/keyboards/keychron/s1/ansi/white/info.json
@@ -9,7 +9,7 @@
"device_version": "1.0.0"
},
"led_matrix": {
- "driver": "ckled2001"
+ "driver": "snled27351"
},
"matrix_pins": {
"cols": ["A10", "A9", "A8", "B1", "B0", "A7", "A6", "A5", "A4", "A3", "A2", "A1", "A0", "C15", "C14"],
diff --git a/keyboards/keychron/s1/ansi/white/rules.mk b/keyboards/keychron/s1/ansi/white/rules.mk
index cb70ced917..afcbe18d62 100644
--- a/keyboards/keychron/s1/ansi/white/rules.mk
+++ b/keyboards/keychron/s1/ansi/white/rules.mk
@@ -12,6 +12,3 @@ RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
AUDIO_ENABLE = no # Audio output
DIP_SWITCH_ENABLE = yes
LED_MATRIX_ENABLE = yes
-EEPROM_DRIVER = wear_leveling
-WEAR_LEVELING_DRIVER = embedded_flash
-
diff --git a/keyboards/keychron/s1/ansi/white/white.c b/keyboards/keychron/s1/ansi/white/white.c
index e41ba06401..b3a49ae9eb 100644
--- a/keyboards/keychron/s1/ansi/white/white.c
+++ b/keyboards/keychron/s1/ansi/white/white.c
@@ -20,8 +20,8 @@
// clang-format off
-const ckled2001_led PROGMEM g_ckled2001_leds[LED_MATRIX_LED_COUNT] = {
-/* Refer to CKLED2001 manual for these locations
+const snled27351_led_t PROGMEM g_snled27351_leds[LED_MATRIX_LED_COUNT] = {
+/* Refer to SNLED27351 manual for these locations
* driver
* | LED address
* | | */
diff --git a/keyboards/keychron/v1/ansi/ansi.c b/keyboards/keychron/v1/ansi/ansi.c
index dc488d1b73..ed8a6ed1af 100644
--- a/keyboards/keychron/v1/ansi/ansi.c
+++ b/keyboards/keychron/v1/ansi/ansi.c
@@ -20,8 +20,8 @@
// clang-format off
-const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = {
-/* Refer to IS31 manual for these locations
+const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = {
+/* Refer to SNLED27351 manual for these locations
* driver
* | R location
* | | G location
diff --git a/keyboards/keychron/v1/ansi/config.h b/keyboards/keychron/v1/ansi/config.h
index 143042076d..5d10cae886 100644
--- a/keyboards/keychron/v1/ansi/config.h
+++ b/keyboards/keychron/v1/ansi/config.h
@@ -21,7 +21,7 @@
#define DRIVER_2_LED_TOTAL 37
#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL)
-#define CKLED2001_CURRENT_TUNE \
+#define SNLED27351_CURRENT_TUNE \
{ 0xA6, 0xA6, 0x50, 0xA6, 0xA6, 0x50, 0xA6, 0xA6, 0x50, 0xA6, 0xA6, 0x50 }
/* Enable caps-lock LED */
diff --git a/keyboards/keychron/v1/ansi/info.json b/keyboards/keychron/v1/ansi/info.json
index f4c526bfdc..34fdd6ac31 100644
--- a/keyboards/keychron/v1/ansi/info.json
+++ b/keyboards/keychron/v1/ansi/info.json
@@ -9,7 +9,7 @@
"device_version": "1.0.0"
},
"rgb_matrix": {
- "driver": "ckled2001"
+ "driver": "snled27351"
},
"processor": "STM32L432",
"bootloader": "stm32-dfu",
diff --git a/keyboards/keychron/v1/ansi/keymaps/vnmm/keymap.c b/keyboards/keychron/v1/ansi/keymaps/vnmm/keymap.c
deleted file mode 100644
index 6f26cc8729..0000000000
--- a/keyboards/keychron/v1/ansi/keymaps/vnmm/keymap.c
+++ /dev/null
@@ -1,54 +0,0 @@
-/* Copyright 2021 @ Keychron (https://www.keychron.com)
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-#include QMK_KEYBOARD_H
-#include "vnmm.h"
-
-// clang-format off
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [MAC_BASE] = LAYOUT_ansi_82(
- KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_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_PGUP,
- KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGDN,
- KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_HOME,
- KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP,
- KC_LCTL, KC_LOPT, KC_LCMD, KC_SPC, KC_RCMD, MAC_F, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT),
-
- [MAC_FN] = LAYOUT_ansi_82(
- _______, KC_BRID, KC_BRIU, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_INS,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MPLY,
- RGB_TOG, RGB_MOD, RGB_VAI, RGB_SPI, RGB_SAI, RGB_HUI, _______, _______, _______, _______, _______, _______, _______, _______, KC_MUTE,
- _______, RGB_RMOD, RGB_VAD, RGB_SPD, RGB_SAD, RGB_HUD, _______, _______, _______, _______, _______, _______, _______, KC_MUTE,
- _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, KC_VOLU,
- EE_CLR, _______, _______, QK_BOOT, _______, _______, _______, KC_MPRV, KC_VOLD, KC_MNXT),
-
- [WIN_BASE] = LAYOUT_ansi_82(
- KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_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_PGUP,
- KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGDN,
- KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_HOME,
- KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP,
- KC_LCTL, KC_LWIN, KC_LALT, KC_SPC, KC_RALT, WIN_F, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT),
-
- [WIN_FN] = LAYOUT_ansi_82(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_INS,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MPLY,
- RGB_TOG, RGB_MOD, RGB_VAI, RGB_SPI, RGB_SAI, RGB_HUI, _______, _______, _______, _______, _______, _______, _______, _______, KC_MUTE,
- _______, RGB_RMOD, RGB_VAD, RGB_SPD, RGB_SAD, RGB_HUD, _______, _______, _______, _______, _______, _______, _______, KC_END,
- _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, KC_VOLU,
- EE_CLR, _______, _______, QK_BOOT, _______, _______, _______, KC_MPRV, KC_VOLD, KC_MNXT),
-};
diff --git a/keyboards/keychron/v1/ansi/keymaps/vnmm/readme.md b/keyboards/keychron/v1/ansi/keymaps/vnmm/readme.md
deleted file mode 100644
index 1ee0e0b117..0000000000
--- a/keyboards/keychron/v1/ansi/keymaps/vnmm/readme.md
+++ /dev/null
@@ -1,10 +0,0 @@
-# Vnmm's Keychron V1 ansi layout
-
-This keymap builds on the default but with some extras I use on all my keyboards
-
-## Features
-
-- Alphabet keys light up red when caps lock is on or shift is pressed
-- Pressing either FN shows keys that have a definition
-- Via enabled
-- Reset to bootloader with FN+Space
diff --git a/keyboards/keychron/v1/ansi/rules.mk b/keyboards/keychron/v1/ansi/rules.mk
index e859eb9c34..465dfa9348 100644
--- a/keyboards/keychron/v1/ansi/rules.mk
+++ b/keyboards/keychron/v1/ansi/rules.mk
@@ -12,8 +12,6 @@ RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
AUDIO_ENABLE = no # Audio output
DIP_SWITCH_ENABLE = yes
RGB_MATRIX_ENABLE = yes
-EEPROM_DRIVER = wear_leveling
-WEAR_LEVELING_DRIVER = embedded_flash
# custom matrix setup
CUSTOM_MATRIX = lite
diff --git a/keyboards/keychron/v1/ansi_encoder/ansi_encoder.c b/keyboards/keychron/v1/ansi_encoder/ansi_encoder.c
index dc488d1b73..ed8a6ed1af 100644
--- a/keyboards/keychron/v1/ansi_encoder/ansi_encoder.c
+++ b/keyboards/keychron/v1/ansi_encoder/ansi_encoder.c
@@ -20,8 +20,8 @@
// clang-format off
-const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = {
-/* Refer to IS31 manual for these locations
+const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = {
+/* Refer to SNLED27351 manual for these locations
* driver
* | R location
* | | G location
diff --git a/keyboards/keychron/v1/ansi_encoder/config.h b/keyboards/keychron/v1/ansi_encoder/config.h
index c32e4d104a..ea0733eeaf 100644
--- a/keyboards/keychron/v1/ansi_encoder/config.h
+++ b/keyboards/keychron/v1/ansi_encoder/config.h
@@ -21,7 +21,7 @@
#define DRIVER_2_LED_TOTAL 37
#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL)
-#define CKLED2001_CURRENT_TUNE \
+#define SNLED27351_CURRENT_TUNE \
{ 0xA6, 0xA6, 0x50, 0xA6, 0xA6, 0x50, 0xA6, 0xA6, 0x50, 0xA6, 0xA6, 0x50 }
/* Encoder Configuration */
diff --git a/keyboards/keychron/v1/ansi_encoder/info.json b/keyboards/keychron/v1/ansi_encoder/info.json
index 9beffb9f6a..43e07609ae 100644
--- a/keyboards/keychron/v1/ansi_encoder/info.json
+++ b/keyboards/keychron/v1/ansi_encoder/info.json
@@ -9,7 +9,7 @@
"device_version": "1.0.0"
},
"rgb_matrix": {
- "driver": "ckled2001"
+ "driver": "snled27351"
},
"encoder": {
"rotary": [
diff --git a/keyboards/keychron/v1/ansi_encoder/rules.mk b/keyboards/keychron/v1/ansi_encoder/rules.mk
index 7da353fbd1..4c6e5bebf0 100644
--- a/keyboards/keychron/v1/ansi_encoder/rules.mk
+++ b/keyboards/keychron/v1/ansi_encoder/rules.mk
@@ -13,8 +13,6 @@ AUDIO_ENABLE = no # Audio output
ENCODER_ENABLE = yes # Enable Encoder
DIP_SWITCH_ENABLE = yes
RGB_MATRIX_ENABLE = yes
-EEPROM_DRIVER = wear_leveling
-WEAR_LEVELING_DRIVER = embedded_flash
# custom matrix setup
CUSTOM_MATRIX = lite
diff --git a/keyboards/keychron/v1/config.h b/keyboards/keychron/v1/config.h
index e5b82a143d..e5b6805859 100644
--- a/keyboards/keychron/v1/config.h
+++ b/keyboards/keychron/v1/config.h
@@ -32,9 +32,8 @@
#define DIP_SWITCH_MATRIX_GRID { {5,4} }
/* RGB Matrix Driver Configuration */
-#define DRIVER_COUNT 2
-#define DRIVER_ADDR_1 0b1110111
-#define DRIVER_ADDR_2 0b1110100
+#define SNLED27351_I2C_ADDRESS_1 SNLED27351_I2C_ADDRESS_VDDIO
+#define SNLED27351_I2C_ADDRESS_2 SNLED27351_I2C_ADDRESS_GND
/* Increase I2C speed to 1000 KHz */
#define I2C1_TIMINGR_PRESC 0U
@@ -43,8 +42,7 @@
#define I2C1_TIMINGR_SCLH 15U
#define I2C1_TIMINGR_SCLL 51U
-/* Scan phase of led driver set as MSKPHASE_9CHANNEL(defined as 0x03 in CKLED2001.h) */
-#define PHASE_CHANNEL MSKPHASE_9CHANNEL
+#define SNLED27351_PHASE_CHANNEL SNLED27351_SCAN_PHASE_9_CHANNEL
/* turn off effects when suspended */
#define RGB_DISABLE_WHEN_USB_SUSPENDED
diff --git a/keyboards/keychron/v1/iso/config.h b/keyboards/keychron/v1/iso/config.h
index 13ebd695f3..acb35ac7ac 100644
--- a/keyboards/keychron/v1/iso/config.h
+++ b/keyboards/keychron/v1/iso/config.h
@@ -21,7 +21,7 @@
#define DRIVER_2_LED_TOTAL 38
#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL)
-#define CKLED2001_CURRENT_TUNE \
+#define SNLED27351_CURRENT_TUNE \
{ 0xA6, 0xA6, 0x50, 0xA6, 0xA6, 0x50, 0xA6, 0xA6, 0x50, 0xA6, 0xA6, 0x50 }
/* Enable caps-lock LED */
diff --git a/keyboards/keychron/v1/iso/info.json b/keyboards/keychron/v1/iso/info.json
index 5a4c74234c..6dbf50a931 100644
--- a/keyboards/keychron/v1/iso/info.json
+++ b/keyboards/keychron/v1/iso/info.json
@@ -9,7 +9,7 @@
"device_version": "1.0.0"
},
"rgb_matrix": {
- "driver": "ckled2001"
+ "driver": "snled27351"
},
"processor": "STM32L432",
"bootloader": "stm32-dfu",
diff --git a/keyboards/keychron/v1/iso/iso.c b/keyboards/keychron/v1/iso/iso.c
index 1d9ef76997..00909c85e3 100644
--- a/keyboards/keychron/v1/iso/iso.c
+++ b/keyboards/keychron/v1/iso/iso.c
@@ -20,8 +20,8 @@
// clang-format off
-const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = {
-/* Refer to IS31 manual for these locations
+const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = {
+/* Refer to SNLED27351 manual for these locations
* driver
* | R location
* | | G location
diff --git a/keyboards/keychron/v1/iso/rules.mk b/keyboards/keychron/v1/iso/rules.mk
index e859eb9c34..465dfa9348 100644
--- a/keyboards/keychron/v1/iso/rules.mk
+++ b/keyboards/keychron/v1/iso/rules.mk
@@ -12,8 +12,6 @@ RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
AUDIO_ENABLE = no # Audio output
DIP_SWITCH_ENABLE = yes
RGB_MATRIX_ENABLE = yes
-EEPROM_DRIVER = wear_leveling
-WEAR_LEVELING_DRIVER = embedded_flash
# custom matrix setup
CUSTOM_MATRIX = lite
diff --git a/keyboards/keychron/v1/iso_encoder/config.h b/keyboards/keychron/v1/iso_encoder/config.h
index fd231aa98a..1a928cd9b7 100644
--- a/keyboards/keychron/v1/iso_encoder/config.h
+++ b/keyboards/keychron/v1/iso_encoder/config.h
@@ -21,7 +21,7 @@
#define DRIVER_2_LED_TOTAL 38
#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL)
-#define CKLED2001_CURRENT_TUNE \
+#define SNLED27351_CURRENT_TUNE \
{ 0xA6, 0xA6, 0x50, 0xA6, 0xA6, 0x50, 0xA6, 0xA6, 0x50, 0xA6, 0xA6, 0x50 }
/* Encoder Configuration */
diff --git a/keyboards/keychron/v1/iso_encoder/info.json b/keyboards/keychron/v1/iso_encoder/info.json
index 106b43b5e7..1f009ac0c7 100644
--- a/keyboards/keychron/v1/iso_encoder/info.json
+++ b/keyboards/keychron/v1/iso_encoder/info.json
@@ -9,7 +9,7 @@
"device_version": "1.0.0"
},
"rgb_matrix": {
- "driver": "ckled2001"
+ "driver": "snled27351"
},
"encoder": {
"rotary": [
diff --git a/keyboards/keychron/v1/iso_encoder/iso_encoder.c b/keyboards/keychron/v1/iso_encoder/iso_encoder.c
index 1d9ef76997..00909c85e3 100644
--- a/keyboards/keychron/v1/iso_encoder/iso_encoder.c
+++ b/keyboards/keychron/v1/iso_encoder/iso_encoder.c
@@ -20,8 +20,8 @@
// clang-format off
-const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = {
-/* Refer to IS31 manual for these locations
+const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = {
+/* Refer to SNLED27351 manual for these locations
* driver
* | R location
* | | G location
diff --git a/keyboards/keychron/v1/iso_encoder/rules.mk b/keyboards/keychron/v1/iso_encoder/rules.mk
index 7da353fbd1..4c6e5bebf0 100644
--- a/keyboards/keychron/v1/iso_encoder/rules.mk
+++ b/keyboards/keychron/v1/iso_encoder/rules.mk
@@ -13,8 +13,6 @@ AUDIO_ENABLE = no # Audio output
ENCODER_ENABLE = yes # Enable Encoder
DIP_SWITCH_ENABLE = yes
RGB_MATRIX_ENABLE = yes
-EEPROM_DRIVER = wear_leveling
-WEAR_LEVELING_DRIVER = embedded_flash
# custom matrix setup
CUSTOM_MATRIX = lite
diff --git a/keyboards/keychron/v1/jis/config.h b/keyboards/keychron/v1/jis/config.h
index 300beba867..ef778528fe 100644
--- a/keyboards/keychron/v1/jis/config.h
+++ b/keyboards/keychron/v1/jis/config.h
@@ -16,17 +16,12 @@
#pragma once
-/* RGB Matrix Driver Configuration */
-#define DRIVER_COUNT 2
-#define DRIVER_ADDR_1 0b1110111
-#define DRIVER_ADDR_2 0b1110100
-
/* RGB Matrix Configuration */
#define DRIVER_1_LED_TOTAL 46
#define DRIVER_2_LED_TOTAL 40
#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL)
-#define CKLED2001_CURRENT_TUNE \
+#define SNLED27351_CURRENT_TUNE \
{ 0xA0, 0xA0, 0x4D, 0xA0, 0xA0, 0x4D, 0xA0, 0xA0, 0x4D, 0xA0, 0xA0, 0x4D }
/* Enable caps-lock LED */
diff --git a/keyboards/keychron/v1/jis/info.json b/keyboards/keychron/v1/jis/info.json
index 16365ccd9e..28425b5b50 100644
--- a/keyboards/keychron/v1/jis/info.json
+++ b/keyboards/keychron/v1/jis/info.json
@@ -9,7 +9,7 @@
"device_version": "1.0.0"
},
"rgb_matrix": {
- "driver": "ckled2001"
+ "driver": "snled27351"
},
"processor": "STM32L432",
"bootloader": "stm32-dfu",
diff --git a/keyboards/keychron/v1/jis/jis.c b/keyboards/keychron/v1/jis/jis.c
index 7f2f02bfa5..6bc647656d 100644
--- a/keyboards/keychron/v1/jis/jis.c
+++ b/keyboards/keychron/v1/jis/jis.c
@@ -20,8 +20,8 @@
// clang-format off
-const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = {
-/* Refer to IS31 manual for these locations
+const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = {
+/* Refer to SNLED27351 manual for these locations
* driver
* | R location
* | | G location
diff --git a/keyboards/keychron/v1/jis/rules.mk b/keyboards/keychron/v1/jis/rules.mk
index e859eb9c34..465dfa9348 100644
--- a/keyboards/keychron/v1/jis/rules.mk
+++ b/keyboards/keychron/v1/jis/rules.mk
@@ -12,8 +12,6 @@ RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
AUDIO_ENABLE = no # Audio output
DIP_SWITCH_ENABLE = yes
RGB_MATRIX_ENABLE = yes
-EEPROM_DRIVER = wear_leveling
-WEAR_LEVELING_DRIVER = embedded_flash
# custom matrix setup
CUSTOM_MATRIX = lite
diff --git a/keyboards/keychron/v1/jis_encoder/config.h b/keyboards/keychron/v1/jis_encoder/config.h
index 93d2a72d98..25db44a84c 100644
--- a/keyboards/keychron/v1/jis_encoder/config.h
+++ b/keyboards/keychron/v1/jis_encoder/config.h
@@ -21,7 +21,7 @@
#define DRIVER_2_LED_TOTAL 40
#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL)
-#define CKLED2001_CURRENT_TUNE \
+#define SNLED27351_CURRENT_TUNE \
{ 0xA0, 0xA0, 0x4D, 0xA0, 0xA0, 0x4D, 0xA0, 0xA0, 0x4D, 0xA0, 0xA0, 0x4D }
/* Encoder Configuration */
diff --git a/keyboards/keychron/v1/jis_encoder/info.json b/keyboards/keychron/v1/jis_encoder/info.json
index 702e579758..018f154537 100644
--- a/keyboards/keychron/v1/jis_encoder/info.json
+++ b/keyboards/keychron/v1/jis_encoder/info.json
@@ -9,7 +9,7 @@
"device_version": "1.0.0"
},
"rgb_matrix": {
- "driver": "ckled2001"
+ "driver": "snled27351"
},
"encoder": {
"rotary": [
diff --git a/keyboards/keychron/v1/jis_encoder/jis_encoder.c b/keyboards/keychron/v1/jis_encoder/jis_encoder.c
index 7f2f02bfa5..6bc647656d 100644
--- a/keyboards/keychron/v1/jis_encoder/jis_encoder.c
+++ b/keyboards/keychron/v1/jis_encoder/jis_encoder.c
@@ -20,8 +20,8 @@
// clang-format off
-const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = {
-/* Refer to IS31 manual for these locations
+const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = {
+/* Refer to SNLED27351 manual for these locations
* driver
* | R location
* | | G location
diff --git a/keyboards/keychron/v1/jis_encoder/rules.mk b/keyboards/keychron/v1/jis_encoder/rules.mk
index 7da353fbd1..4c6e5bebf0 100644
--- a/keyboards/keychron/v1/jis_encoder/rules.mk
+++ b/keyboards/keychron/v1/jis_encoder/rules.mk
@@ -13,8 +13,6 @@ AUDIO_ENABLE = no # Audio output
ENCODER_ENABLE = yes # Enable Encoder
DIP_SWITCH_ENABLE = yes
RGB_MATRIX_ENABLE = yes
-EEPROM_DRIVER = wear_leveling
-WEAR_LEVELING_DRIVER = embedded_flash
# custom matrix setup
CUSTOM_MATRIX = lite
diff --git a/keyboards/keychron/v10/ansi_encoder/ansi_encoder.c b/keyboards/keychron/v10/ansi_encoder/ansi_encoder.c
index bada8af6e9..8b787aad18 100644
--- a/keyboards/keychron/v10/ansi_encoder/ansi_encoder.c
+++ b/keyboards/keychron/v10/ansi_encoder/ansi_encoder.c
@@ -20,8 +20,8 @@
// clang-format off
-const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = {
-/* Refer to IS31 manual for these locations
+const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = {
+/* Refer to SNLED27351 manual for these locations
* driver
* | R location
* | | G location
diff --git a/keyboards/keychron/v10/ansi_encoder/info.json b/keyboards/keychron/v10/ansi_encoder/info.json
index 2a7dc307cb..a416601d02 100644
--- a/keyboards/keychron/v10/ansi_encoder/info.json
+++ b/keyboards/keychron/v10/ansi_encoder/info.json
@@ -9,7 +9,7 @@
"device_version": "1.0.0"
},
"rgb_matrix": {
- "driver": "ckled2001"
+ "driver": "snled27351"
},
"encoder": {
"rotary": [
diff --git a/keyboards/keychron/v10/ansi_encoder/rules.mk b/keyboards/keychron/v10/ansi_encoder/rules.mk
index 7da353fbd1..4c6e5bebf0 100644
--- a/keyboards/keychron/v10/ansi_encoder/rules.mk
+++ b/keyboards/keychron/v10/ansi_encoder/rules.mk
@@ -13,8 +13,6 @@ AUDIO_ENABLE = no # Audio output
ENCODER_ENABLE = yes # Enable Encoder
DIP_SWITCH_ENABLE = yes
RGB_MATRIX_ENABLE = yes
-EEPROM_DRIVER = wear_leveling
-WEAR_LEVELING_DRIVER = embedded_flash
# custom matrix setup
CUSTOM_MATRIX = lite
diff --git a/keyboards/keychron/v10/config.h b/keyboards/keychron/v10/config.h
index 9bc5d0f559..d643049c03 100644
--- a/keyboards/keychron/v10/config.h
+++ b/keyboards/keychron/v10/config.h
@@ -31,9 +31,8 @@
#define DIODE_DIRECTION ROW2COL
/* RGB Matrix Driver Configuration */
-#define DRIVER_COUNT 2
-#define DRIVER_ADDR_1 0b1110111
-#define DRIVER_ADDR_2 0b1110100
+#define SNLED27351_I2C_ADDRESS_1 SNLED27351_I2C_ADDRESS_VDDIO
+#define SNLED27351_I2C_ADDRESS_2 SNLED27351_I2C_ADDRESS_GND
/* Increase I2C speed to 1000 KHz */
#define I2C1_TIMINGR_PRESC 0U
@@ -42,9 +41,8 @@
#define I2C1_TIMINGR_SCLH 15U
#define I2C1_TIMINGR_SCLL 51U
-/* Scan phase of led driver set as MSKPHASE_9CHANNEL(defined as 0x03 in CKLED2001.h) */
-#define PHASE_CHANNEL MSKPHASE_9CHANNEL
-#define CKLED2001_CURRENT_TUNE { 0x98, 0x98, 0x4A, 0x98, 0x98, 0x4A, 0x98, 0x98, 0x4A, 0x98, 0x98, 0x4A }
+#define SNLED27351_PHASE_CHANNEL SNLED27351_SCAN_PHASE_9_CHANNEL
+#define SNLED27351_CURRENT_TUNE { 0x98, 0x98, 0x4A, 0x98, 0x98, 0x4A, 0x98, 0x98, 0x4A, 0x98, 0x98, 0x4A }
/* DIP switch */
#define DIP_SWITCH_MATRIX_GRID { {5,5} }
diff --git a/keyboards/keychron/v10/iso_encoder/info.json b/keyboards/keychron/v10/iso_encoder/info.json
index 455b375472..4c6b6580e0 100644
--- a/keyboards/keychron/v10/iso_encoder/info.json
+++ b/keyboards/keychron/v10/iso_encoder/info.json
@@ -9,7 +9,7 @@
"device_version": "1.0.0"
},
"rgb_matrix": {
- "driver": "ckled2001"
+ "driver": "snled27351"
},
"encoder": {
"rotary": [
diff --git a/keyboards/keychron/v10/iso_encoder/iso_encoder.c b/keyboards/keychron/v10/iso_encoder/iso_encoder.c
index 070a01a8a8..f7e0a10470 100644
--- a/keyboards/keychron/v10/iso_encoder/iso_encoder.c
+++ b/keyboards/keychron/v10/iso_encoder/iso_encoder.c
@@ -20,8 +20,8 @@
// clang-format off
-const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = {
-/* Refer to IS31 manual for these locations
+const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = {
+/* Refer to SNLED27351 manual for these locations
* driver
* | R location
* | | G location
diff --git a/keyboards/keychron/v10/iso_encoder/rules.mk b/keyboards/keychron/v10/iso_encoder/rules.mk
index 7da353fbd1..4c6e5bebf0 100644
--- a/keyboards/keychron/v10/iso_encoder/rules.mk
+++ b/keyboards/keychron/v10/iso_encoder/rules.mk
@@ -13,8 +13,6 @@ AUDIO_ENABLE = no # Audio output
ENCODER_ENABLE = yes # Enable Encoder
DIP_SWITCH_ENABLE = yes
RGB_MATRIX_ENABLE = yes
-EEPROM_DRIVER = wear_leveling
-WEAR_LEVELING_DRIVER = embedded_flash
# custom matrix setup
CUSTOM_MATRIX = lite
diff --git a/keyboards/keychron/v2/ansi/ansi.c b/keyboards/keychron/v2/ansi/ansi.c
index a2524d36cc..d98a96fdf9 100644
--- a/keyboards/keychron/v2/ansi/ansi.c
+++ b/keyboards/keychron/v2/ansi/ansi.c
@@ -20,8 +20,8 @@
// clang-format off
-const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = {
-/* Refer to CKLED manual for these locations
+const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = {
+/* Refer to SNLED27351 manual for these locations
* driver
* | R location
* | | G location
diff --git a/keyboards/keychron/v2/ansi/config.h b/keyboards/keychron/v2/ansi/config.h
index b6c31201a7..094038d5b3 100644
--- a/keyboards/keychron/v2/ansi/config.h
+++ b/keyboards/keychron/v2/ansi/config.h
@@ -21,7 +21,7 @@
#define DRIVER_2_LED_TOTAL 33
#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL)
-#define CKLED2001_CURRENT_TUNE \
+#define SNLED27351_CURRENT_TUNE \
{ 0xCA, 0xCA, 0x60, 0xCA, 0xCA, 0x60, 0xCA, 0xCA, 0x60, 0xCA, 0xCA, 0x60 }
/* Enable caps-lock LED */
diff --git a/keyboards/keychron/v2/ansi/info.json b/keyboards/keychron/v2/ansi/info.json
index d07fba97b8..3b54b90201 100644
--- a/keyboards/keychron/v2/ansi/info.json
+++ b/keyboards/keychron/v2/ansi/info.json
@@ -9,7 +9,7 @@
"device_version": "1.0.0"
},
"rgb_matrix": {
- "driver": "ckled2001"
+ "driver": "snled27351"
},
"matrix_pins": {
"cols": ["C14", "C15", "A0", "A1", "A2", "A3", "A4", "A5", "A6", "A7", "B0", "B1", "A8", "A9", "H3"],
diff --git a/keyboards/keychron/v2/ansi/keymaps/vnmm/keymap.c b/keyboards/keychron/v2/ansi/keymaps/vnmm/keymap.c
deleted file mode 100644
index 8e93b07639..0000000000
--- a/keyboards/keychron/v2/ansi/keymaps/vnmm/keymap.c
+++ /dev/null
@@ -1,57 +0,0 @@
-/* Copyright 2021 @ Keychron (https://www.keychron.com)
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-#include QMK_KEYBOARD_H
-#include "vnmm.h"
-
-// clang-format off
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [MAC_BASE] = LAYOUT_ansi_67(
- QK_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS,
- KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL,
- KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_HOME,
- KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP,
- KC_LCTL, KC_LOPT, KC_LCMD, KC_SPC, KC_RCMD, MAC_F, EXT_F, KC_LEFT, KC_DOWN, KC_RGHT),
-
- [WIN_BASE] = LAYOUT_ansi_67(
- QK_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS,
- KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL,
- KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_HOME,
- KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP,
- KC_LCTL, KC_LWIN, KC_LALT, KC_SPC, KC_RALT, WIN_F, EXT_F, KC_LEFT, KC_DOWN, KC_RGHT),
-
- [MAC_FN] = LAYOUT_ansi_67(
- KC_GRV, KC_BRID, KC_BRIU, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- RGB_TOG, RGB_MOD, RGB_VAI, RGB_SPI, RGB_SAI, RGB_HUI, _______, _______, _______, _______, _______, _______, _______, _______, KC_MPLY,
- _______, RGB_RMOD, RGB_VAD, RGB_SPD, RGB_SAD, RGB_HUD, _______, _______, _______, _______, _______, _______, _______, KC_MUTE,
- _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, KC_VOLU,
- EE_CLR, _______, _______, QK_BOOT, _______, _______, _______, KC_MPRV, KC_VOLD, KC_MNXT),
-
- [WIN_FN] = LAYOUT_ansi_67(
- KC_GRV, KC_BRID, KC_BRIU, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- RGB_TOG, RGB_MOD, RGB_VAI, RGB_SPI, RGB_SAI, RGB_HUI, _______, _______, _______, _______, _______, _______, _______, _______, KC_MPLY,
- _______, RGB_RMOD, RGB_VAD, RGB_SPD, RGB_SAD, RGB_HUD, _______, _______, _______, _______, _______, _______, _______, KC_MUTE,
- _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, KC_VOLU,
- EE_CLR, _______, _______, QK_BOOT, _______, _______, _______, KC_MPRV, KC_VOLD, KC_MNXT),
-
- [EXTRA_FN] = LAYOUT_ansi_67(
- _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, QK_BOOT, _______, _______, _______, _______, _______, _______)
-};
diff --git a/keyboards/keychron/v2/ansi/keymaps/vnmm/readme.md b/keyboards/keychron/v2/ansi/keymaps/vnmm/readme.md
deleted file mode 100644
index c4fd5e9d01..0000000000
--- a/keyboards/keychron/v2/ansi/keymaps/vnmm/readme.md
+++ /dev/null
@@ -1,10 +0,0 @@
-# Vnmm's Keychron V2 ansi layout
-
-This keymap builds on the default but with some extras I use on all my keyboards
-
-## Features
-
-- Alphabet keys light up red when caps lock is on or shift is pressed
-- Pressing either FN shows keys that have a definition
-- Via enabled
-- Reset to bootloader with FN+Space
diff --git a/keyboards/keychron/v2/ansi/rules.mk b/keyboards/keychron/v2/ansi/rules.mk
index c37beecb9e..cf31e094cb 100644
--- a/keyboards/keychron/v2/ansi/rules.mk
+++ b/keyboards/keychron/v2/ansi/rules.mk
@@ -12,6 +12,3 @@ RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
AUDIO_ENABLE = no # Audio output
DIP_SWITCH_ENABLE = yes
RGB_MATRIX_ENABLE = yes
-EEPROM_DRIVER = wear_leveling
-WEAR_LEVELING_DRIVER = embedded_flash
-
diff --git a/keyboards/keychron/v2/ansi_encoder/ansi_encoder.c b/keyboards/keychron/v2/ansi_encoder/ansi_encoder.c
index 2c9fe0e8e2..64153d4251 100644
--- a/keyboards/keychron/v2/ansi_encoder/ansi_encoder.c
+++ b/keyboards/keychron/v2/ansi_encoder/ansi_encoder.c
@@ -20,8 +20,8 @@
// clang-format off
-const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = {
-/* Refer to CKLED manual for these locations
+const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = {
+/* Refer to SNLED27351 manual for these locations
* driver
* | R location
* | | G location
diff --git a/keyboards/keychron/v2/ansi_encoder/info.json b/keyboards/keychron/v2/ansi_encoder/info.json
index c733b389e6..f1998272e9 100644
--- a/keyboards/keychron/v2/ansi_encoder/info.json
+++ b/keyboards/keychron/v2/ansi_encoder/info.json
@@ -9,7 +9,7 @@
"device_version": "1.0.0"
},
"rgb_matrix": {
- "driver": "ckled2001"
+ "driver": "snled27351"
},
"matrix_pins": {
"cols": ["C14", "C15", "A0", "A1", "A2", "A3", "A4", "A5", "A6", "A7", "B0", "B1", "A8", "A9", "H3"],
diff --git a/keyboards/keychron/v2/ansi_encoder/rules.mk b/keyboards/keychron/v2/ansi_encoder/rules.mk
index 5091fe9414..5d77f09971 100644
--- a/keyboards/keychron/v2/ansi_encoder/rules.mk
+++ b/keyboards/keychron/v2/ansi_encoder/rules.mk
@@ -13,6 +13,3 @@ AUDIO_ENABLE = no # Audio output
ENCODER_ENABLE = yes # Enable Encoder
DIP_SWITCH_ENABLE = yes
RGB_MATRIX_ENABLE = yes
-EEPROM_DRIVER = wear_leveling
-WEAR_LEVELING_DRIVER = embedded_flash
-
diff --git a/keyboards/keychron/v2/config.h b/keyboards/keychron/v2/config.h
index 08cc5b8e84..7efbf8c549 100644
--- a/keyboards/keychron/v2/config.h
+++ b/keyboards/keychron/v2/config.h
@@ -20,9 +20,8 @@
// #define MATRIX_UNSELECT_DRIVE_HIGH
/* RGB Matrix Driver Configuration */
-#define DRIVER_COUNT 2
-#define DRIVER_ADDR_1 0b1110111
-#define DRIVER_ADDR_2 0b1110100
+#define SNLED27351_I2C_ADDRESS_1 SNLED27351_I2C_ADDRESS_VDDIO
+#define SNLED27351_I2C_ADDRESS_2 SNLED27351_I2C_ADDRESS_GND
/* Increase I2C speed to 1000 KHz */
#define I2C1_TIMINGR_PRESC 0U
@@ -31,8 +30,7 @@
#define I2C1_TIMINGR_SCLH 15U
#define I2C1_TIMINGR_SCLL 51U
-/* Scan phase of led driver set as MSKPHASE_9CHANNEL(defined as 0x03 in CKLED2001.h) */
-#define PHASE_CHANNEL MSKPHASE_9CHANNEL
+#define SNLED27351_PHASE_CHANNEL SNLED27351_SCAN_PHASE_9_CHANNEL
/* Disable DIP switch in matrix data */
#define MATRIX_MASKED
diff --git a/keyboards/keychron/v2/iso/info.json b/keyboards/keychron/v2/iso/info.json
index 0d8376f7b7..cfc5ef3c5b 100644
--- a/keyboards/keychron/v2/iso/info.json
+++ b/keyboards/keychron/v2/iso/info.json
@@ -9,7 +9,7 @@
"device_version": "1.0.0"
},
"rgb_matrix": {
- "driver": "ckled2001"
+ "driver": "snled27351"
},
"matrix_pins": {
"cols": ["C14", "C15", "A0", "A1", "A2", "A3", "A4", "A5", "A6", "A7", "B0", "B1", "A8", "A9", "H3"],
diff --git a/keyboards/keychron/v2/iso/iso.c b/keyboards/keychron/v2/iso/iso.c
index 385f566252..37cac7337d 100644
--- a/keyboards/keychron/v2/iso/iso.c
+++ b/keyboards/keychron/v2/iso/iso.c
@@ -20,8 +20,8 @@
// clang-format off
-const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = {
-/* Refer to IS31 manual for these locations
+const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = {
+/* Refer to SNLED27351 manual for these locations
* driver
* | R location
* | | G location
diff --git a/keyboards/keychron/v2/iso/rules.mk b/keyboards/keychron/v2/iso/rules.mk
index c37beecb9e..cf31e094cb 100644
--- a/keyboards/keychron/v2/iso/rules.mk
+++ b/keyboards/keychron/v2/iso/rules.mk
@@ -12,6 +12,3 @@ RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
AUDIO_ENABLE = no # Audio output
DIP_SWITCH_ENABLE = yes
RGB_MATRIX_ENABLE = yes
-EEPROM_DRIVER = wear_leveling
-WEAR_LEVELING_DRIVER = embedded_flash
-
diff --git a/keyboards/keychron/v2/iso_encoder/info.json b/keyboards/keychron/v2/iso_encoder/info.json
index 0241cdb21e..d5f630a3c3 100644
--- a/keyboards/keychron/v2/iso_encoder/info.json
+++ b/keyboards/keychron/v2/iso_encoder/info.json
@@ -9,7 +9,7 @@
"device_version": "1.0.0"
},
"rgb_matrix": {
- "driver": "ckled2001"
+ "driver": "snled27351"
},
"matrix_pins": {
"cols": ["C14", "C15", "A0", "A1", "A2", "A3", "A4", "A5", "A6", "A7", "B0", "B1", "A8", "A9", "H3"],
diff --git a/keyboards/keychron/v2/iso_encoder/iso_encoder.c b/keyboards/keychron/v2/iso_encoder/iso_encoder.c
index 385f566252..37cac7337d 100644
--- a/keyboards/keychron/v2/iso_encoder/iso_encoder.c
+++ b/keyboards/keychron/v2/iso_encoder/iso_encoder.c
@@ -20,8 +20,8 @@
// clang-format off
-const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = {
-/* Refer to IS31 manual for these locations
+const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = {
+/* Refer to SNLED27351 manual for these locations
* driver
* | R location
* | | G location
diff --git a/keyboards/keychron/v2/iso_encoder/rules.mk b/keyboards/keychron/v2/iso_encoder/rules.mk
index 5091fe9414..5d77f09971 100644
--- a/keyboards/keychron/v2/iso_encoder/rules.mk
+++ b/keyboards/keychron/v2/iso_encoder/rules.mk
@@ -13,6 +13,3 @@ AUDIO_ENABLE = no # Audio output
ENCODER_ENABLE = yes # Enable Encoder
DIP_SWITCH_ENABLE = yes
RGB_MATRIX_ENABLE = yes
-EEPROM_DRIVER = wear_leveling
-WEAR_LEVELING_DRIVER = embedded_flash
-
diff --git a/keyboards/keychron/v2/jis/config.h b/keyboards/keychron/v2/jis/config.h
index f258f9edd1..1b3fd5a27a 100644
--- a/keyboards/keychron/v2/jis/config.h
+++ b/keyboards/keychron/v2/jis/config.h
@@ -21,7 +21,7 @@
#define DRIVER_2_LED_TOTAL 36
#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL)
-#define CKLED2001_CURRENT_TUNE \
+#define SNLED27351_CURRENT_TUNE \
{ 0xBD, 0xBD, 0x5D, 0xBD, 0xBD, 0x5D, 0xBD, 0xBD, 0x5D, 0xBD, 0xBD, 0x5D }
/* Enable caps-lock LED */
diff --git a/keyboards/keychron/v2/jis/info.json b/keyboards/keychron/v2/jis/info.json
index f65e2b51d2..124cb0ecc6 100644
--- a/keyboards/keychron/v2/jis/info.json
+++ b/keyboards/keychron/v2/jis/info.json
@@ -9,7 +9,7 @@
"device_version": "1.0.0"
},
"rgb_matrix": {
- "driver": "ckled2001"
+ "driver": "snled27351"
},
"matrix_pins": {
"cols": ["C14", "C15", "A0", "A1", "A2", "A3", "A4", "A5", "A6", "A7", "B0", "B1", "A8", "A9", "H3"],
diff --git a/keyboards/keychron/v2/jis/jis.c b/keyboards/keychron/v2/jis/jis.c
index b9060cafb2..42285e56ca 100644
--- a/keyboards/keychron/v2/jis/jis.c
+++ b/keyboards/keychron/v2/jis/jis.c
@@ -18,8 +18,8 @@
#ifdef RGB_MATRIX_ENABLE
-const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = {
-/* Refer to IS31 manual for these locations
+const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = {
+/* Refer to SNLED27351 manual for these locations
* driver
* | R location
* | | G location
diff --git a/keyboards/keychron/v2/jis/rules.mk b/keyboards/keychron/v2/jis/rules.mk
index c37beecb9e..cf31e094cb 100644
--- a/keyboards/keychron/v2/jis/rules.mk
+++ b/keyboards/keychron/v2/jis/rules.mk
@@ -12,6 +12,3 @@ RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
AUDIO_ENABLE = no # Audio output
DIP_SWITCH_ENABLE = yes
RGB_MATRIX_ENABLE = yes
-EEPROM_DRIVER = wear_leveling
-WEAR_LEVELING_DRIVER = embedded_flash
-
diff --git a/keyboards/keychron/v2/jis_encoder/config.h b/keyboards/keychron/v2/jis_encoder/config.h
index a9a3438ab7..aacac818a4 100644
--- a/keyboards/keychron/v2/jis_encoder/config.h
+++ b/keyboards/keychron/v2/jis_encoder/config.h
@@ -21,7 +21,7 @@
#define DRIVER_2_LED_TOTAL 36
#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL)
-#define CKLED2001_CURRENT_TUNE \
+#define SNLED27351_CURRENT_TUNE \
{ 0xBD, 0xBD, 0x5D, 0xBD, 0xBD, 0x5D, 0xBD, 0xBD, 0x5D, 0xBD, 0xBD, 0x5D }
/* Encoder Configuration */
diff --git a/keyboards/keychron/v2/jis_encoder/info.json b/keyboards/keychron/v2/jis_encoder/info.json
index 263e403167..d3df93819f 100644
--- a/keyboards/keychron/v2/jis_encoder/info.json
+++ b/keyboards/keychron/v2/jis_encoder/info.json
@@ -9,7 +9,7 @@
"device_version": "1.0.0"
},
"rgb_matrix": {
- "driver": "ckled2001"
+ "driver": "snled27351"
},
"matrix_pins": {
"cols": ["C14", "C15", "A0", "A1", "A2", "A3", "A4", "A5", "A6", "A7", "B0", "B1", "A8", "A9", "H3"],
diff --git a/keyboards/keychron/v2/jis_encoder/jis_encoder.c b/keyboards/keychron/v2/jis_encoder/jis_encoder.c
index 661ee0c1d6..5ccbb807cb 100644
--- a/keyboards/keychron/v2/jis_encoder/jis_encoder.c
+++ b/keyboards/keychron/v2/jis_encoder/jis_encoder.c
@@ -18,8 +18,8 @@
#ifdef RGB_MATRIX_ENABLE
-const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = {
-/* Refer to IS31 manual for these locations
+const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = {
+/* Refer to SNLED27351 manual for these locations
* driver
* | R location
* | | G location
diff --git a/keyboards/keychron/v2/jis_encoder/rules.mk b/keyboards/keychron/v2/jis_encoder/rules.mk
index 5091fe9414..5d77f09971 100644
--- a/keyboards/keychron/v2/jis_encoder/rules.mk
+++ b/keyboards/keychron/v2/jis_encoder/rules.mk
@@ -13,6 +13,3 @@ AUDIO_ENABLE = no # Audio output
ENCODER_ENABLE = yes # Enable Encoder
DIP_SWITCH_ENABLE = yes
RGB_MATRIX_ENABLE = yes
-EEPROM_DRIVER = wear_leveling
-WEAR_LEVELING_DRIVER = embedded_flash
-
diff --git a/keyboards/keychron/v3/ansi/ansi.c b/keyboards/keychron/v3/ansi/ansi.c
index 6d56122c52..16d6b77131 100644
--- a/keyboards/keychron/v3/ansi/ansi.c
+++ b/keyboards/keychron/v3/ansi/ansi.c
@@ -18,8 +18,8 @@
#ifdef RGB_MATRIX_ENABLE
-const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = {
-/* Refer to IS31 manual for these locations
+const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = {
+/* Refer to SNLED27351 manual for these locations
* driver
* | R location
* | | G location
diff --git a/keyboards/keychron/v3/ansi/config.h b/keyboards/keychron/v3/ansi/config.h
index ff756dc046..ba64aa96da 100644
--- a/keyboards/keychron/v3/ansi/config.h
+++ b/keyboards/keychron/v3/ansi/config.h
@@ -30,7 +30,7 @@
#define DRIVER_2_LED_TOTAL 39
#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL)
-#define CKLED2001_CURRENT_TUNE \
+#define SNLED27351_CURRENT_TUNE \
{ 0x95, 0x95, 0x55, 0x95, 0x95, 0x55, 0x95, 0x95, 0x55, 0x95, 0x95, 0x55 }
/* Enable CapsLcok LED */
diff --git a/keyboards/keychron/v3/ansi/info.json b/keyboards/keychron/v3/ansi/info.json
index 6572066329..49792690a7 100644
--- a/keyboards/keychron/v3/ansi/info.json
+++ b/keyboards/keychron/v3/ansi/info.json
@@ -9,7 +9,7 @@
"device_version": "1.0.0"
},
"rgb_matrix": {
- "driver": "ckled2001"
+ "driver": "snled27351"
},
"processor": "STM32L432",
"bootloader": "stm32-dfu",
diff --git a/keyboards/keychron/v3/ansi/rules.mk b/keyboards/keychron/v3/ansi/rules.mk
index c37beecb9e..cf31e094cb 100644
--- a/keyboards/keychron/v3/ansi/rules.mk
+++ b/keyboards/keychron/v3/ansi/rules.mk
@@ -12,6 +12,3 @@ RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
AUDIO_ENABLE = no # Audio output
DIP_SWITCH_ENABLE = yes
RGB_MATRIX_ENABLE = yes
-EEPROM_DRIVER = wear_leveling
-WEAR_LEVELING_DRIVER = embedded_flash
-
diff --git a/keyboards/keychron/v3/ansi_encoder/ansi_encoder.c b/keyboards/keychron/v3/ansi_encoder/ansi_encoder.c
index 5ed38074e3..39fa354539 100644
--- a/keyboards/keychron/v3/ansi_encoder/ansi_encoder.c
+++ b/keyboards/keychron/v3/ansi_encoder/ansi_encoder.c
@@ -18,8 +18,8 @@
#ifdef RGB_MATRIX_ENABLE
-const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = {
-/* Refer to IS31 manual for these locations
+const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = {
+/* Refer to SNLED27351 manual for these locations
* driver
* | R location
* | | G location
diff --git a/keyboards/keychron/v3/ansi_encoder/info.json b/keyboards/keychron/v3/ansi_encoder/info.json
index cffbc85158..ad46ae7a62 100644
--- a/keyboards/keychron/v3/ansi_encoder/info.json
+++ b/keyboards/keychron/v3/ansi_encoder/info.json
@@ -9,7 +9,7 @@
"device_version": "1.0.0"
},
"rgb_matrix": {
- "driver": "ckled2001"
+ "driver": "snled27351"
},
"encoder": {
"rotary": [
diff --git a/keyboards/keychron/v3/ansi_encoder/keymaps/vnmm/keymap.c b/keyboards/keychron/v3/ansi_encoder/keymaps/vnmm/keymap.c
deleted file mode 100644
index e32c683016..0000000000
--- a/keyboards/keychron/v3/ansi_encoder/keymaps/vnmm/keymap.c
+++ /dev/null
@@ -1,77 +0,0 @@
-/* Copyright 2021 @ Keychron (https://www.keychron.com)
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-#include QMK_KEYBOARD_H
-#include "vnmm.h"
-
-// clang-format off
-
-#define KC_TASK LGUI(KC_TAB)
-#define KC_FLXP LGUI(KC_E)
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [MAC_BASE] = LAYOUT_tkl_f13_ansi(
- KC_ESC, KC_BRID, KC_BRIU, KC_NO, KC_NO, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_MUTE, 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,
- KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
- KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP,
- KC_LCTL, KC_LOPT, KC_LCMD, KC_SPC, KC_RCMD, KC_ROPT, MO(MAC_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT),
-
- [WIN_BASE] = LAYOUT_tkl_f13_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_MUTE, 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,
- KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
- KC_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_LWIN, KC_LALT, KC_SPC, KC_RALT, KC_RWIN, MO(WIN_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT),
-
- [MAC_FN] = LAYOUT_tkl_f13_ansi(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MPLY, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- RGB_TOG, RGB_MOD, RGB_VAI, RGB_SPI, RGB_SAI, RGB_HUI, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, RGB_RMOD, RGB_VAD, RGB_SPD, RGB_SAD, RGB_HUD, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______,
- EE_CLR, _______, _______, QK_BOOT, _______, _______, _______, _______, KC_MPRV, _______, KC_MNXT),
-
- [WIN_FN] = LAYOUT_tkl_f13_ansi(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MPLY, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- RGB_TOG, RGB_MOD, RGB_VAI, RGB_SPI, RGB_SAI, RGB_HUI, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, RGB_RMOD, RGB_VAD, RGB_SPD, RGB_SAD, RGB_HUD, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______,
- EE_CLR, _______, _______, QK_BOOT, _______, _______, _______, _______, KC_MPRV, _______, KC_MNXT),
-};
-
-#ifdef ENCODER_MAP_ENABLE
-const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = {
- [WIN_BASE] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU)},
- [MAC_BASE] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU)},
- [MAC_FN] = { ENCODER_CCW_CW(RGB_VAD, RGB_VAI)},
- [WIN_FN] = { ENCODER_CCW_CW(RGB_VAD, RGB_VAI)},
-};
-#endif // ENCODER_MAP_ENABLE
-
-#ifdef DIP_SWITCH_ENABLE
-
-bool dip_switch_update_user(uint8_t index, bool active) {
- if (index == 0) {
- default_layer_set(1UL << (active ? 1 : 0));
- }
- return false;
-}
-
-#endif // DIP_SWITCH_ENABLE \ No newline at end of file
diff --git a/keyboards/keychron/v3/ansi_encoder/rules.mk b/keyboards/keychron/v3/ansi_encoder/rules.mk
index 7da353fbd1..4c6e5bebf0 100644
--- a/keyboards/keychron/v3/ansi_encoder/rules.mk
+++ b/keyboards/keychron/v3/ansi_encoder/rules.mk
@@ -13,8 +13,6 @@ AUDIO_ENABLE = no # Audio output
ENCODER_ENABLE = yes # Enable Encoder
DIP_SWITCH_ENABLE = yes
RGB_MATRIX_ENABLE = yes
-EEPROM_DRIVER = wear_leveling
-WEAR_LEVELING_DRIVER = embedded_flash
# custom matrix setup
CUSTOM_MATRIX = lite
diff --git a/keyboards/keychron/v3/config.h b/keyboards/keychron/v3/config.h
index 87ab3c8667..d3e02d8f81 100644
--- a/keyboards/keychron/v3/config.h
+++ b/keyboards/keychron/v3/config.h
@@ -20,9 +20,8 @@
#define DIODE_DIRECTION ROW2COL
/* RGB Matrix Driver Configuration */
-#define DRIVER_COUNT 2
-#define DRIVER_ADDR_1 0b1110111
-#define DRIVER_ADDR_2 0b1110100
+#define SNLED27351_I2C_ADDRESS_1 SNLED27351_I2C_ADDRESS_VDDIO
+#define SNLED27351_I2C_ADDRESS_2 SNLED27351_I2C_ADDRESS_GND
/* Increase I2C speed to 1000 KHz */
#define I2C1_TIMINGR_PRESC 0U
@@ -31,8 +30,7 @@
#define I2C1_TIMINGR_SCLH 15U
#define I2C1_TIMINGR_SCLL 51U
-/* Scan phase of led driver set as MSKPHASE_9CHANNEL(defined as 0x03 in CKLED2001.h) */
-#define PHASE_CHANNEL MSKPHASE_9CHANNEL
+#define SNLED27351_PHASE_CHANNEL SNLED27351_SCAN_PHASE_9_CHANNEL
/* DIP switch */
#define DIP_SWITCH_MATRIX_GRID { {5, 4} }
diff --git a/keyboards/keychron/v3/iso/info.json b/keyboards/keychron/v3/iso/info.json
index 18c73a8f58..56796b5eb2 100644
--- a/keyboards/keychron/v3/iso/info.json
+++ b/keyboards/keychron/v3/iso/info.json
@@ -9,7 +9,7 @@
"device_version": "1.0.0"
},
"rgb_matrix": {
- "driver": "ckled2001"
+ "driver": "snled27351"
},
"processor": "STM32L432",
"bootloader": "stm32-dfu",
diff --git a/keyboards/keychron/v3/iso/iso.c b/keyboards/keychron/v3/iso/iso.c
index 95b324d11b..24b406467a 100644
--- a/keyboards/keychron/v3/iso/iso.c
+++ b/keyboards/keychron/v3/iso/iso.c
@@ -18,8 +18,8 @@
#ifdef RGB_MATRIX_ENABLE
-const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = {
-/* Refer to IS31 manual for these locations
+const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = {
+/* Refer to SNLED27351 manual for these locations
* driver
* | R location
* | | G location
diff --git a/keyboards/keychron/v3/iso/rules.mk b/keyboards/keychron/v3/iso/rules.mk
index 2eadfbded9..118bf40e5a 100644
--- a/keyboards/keychron/v3/iso/rules.mk
+++ b/keyboards/keychron/v3/iso/rules.mk
@@ -12,6 +12,3 @@ RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
AUDIO_ENABLE = no # Audio output
DIP_SWITCH_ENABLE = yes
RGB_MATRIX_ENABLE = yes
-EEPROM_DRIVER = wear_leveling
-WEAR_LEVELING_DRIVER = embedded_flash
-
diff --git a/keyboards/keychron/v3/iso_encoder/info.json b/keyboards/keychron/v3/iso_encoder/info.json
index 60c56a6b87..057e4a8d7d 100644
--- a/keyboards/keychron/v3/iso_encoder/info.json
+++ b/keyboards/keychron/v3/iso_encoder/info.json
@@ -9,7 +9,7 @@
"device_version": "1.0.0"
},
"rgb_matrix": {
- "driver": "ckled2001"
+ "driver": "snled27351"
},
"encoder": {
"rotary": [
diff --git a/keyboards/keychron/v3/iso_encoder/iso_encoder.c b/keyboards/keychron/v3/iso_encoder/iso_encoder.c
index 6231172fde..53fe99aac0 100644
--- a/keyboards/keychron/v3/iso_encoder/iso_encoder.c
+++ b/keyboards/keychron/v3/iso_encoder/iso_encoder.c
@@ -18,8 +18,8 @@
#ifdef RGB_MATRIX_ENABLE
-const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = {
-/* Refer to IS31 manual for these locations
+const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = {
+/* Refer to SNLED27351 manual for these locations
* driver
* | R location
* | | G location
diff --git a/keyboards/keychron/v3/iso_encoder/rules.mk b/keyboards/keychron/v3/iso_encoder/rules.mk
index 7da353fbd1..4c6e5bebf0 100644
--- a/keyboards/keychron/v3/iso_encoder/rules.mk
+++ b/keyboards/keychron/v3/iso_encoder/rules.mk
@@ -13,8 +13,6 @@ AUDIO_ENABLE = no # Audio output
ENCODER_ENABLE = yes # Enable Encoder
DIP_SWITCH_ENABLE = yes
RGB_MATRIX_ENABLE = yes
-EEPROM_DRIVER = wear_leveling
-WEAR_LEVELING_DRIVER = embedded_flash
# custom matrix setup
CUSTOM_MATRIX = lite
diff --git a/keyboards/keychron/v3/jis/config.h b/keyboards/keychron/v3/jis/config.h
index f19e7538c2..10c77c74f0 100644
--- a/keyboards/keychron/v3/jis/config.h
+++ b/keyboards/keychron/v3/jis/config.h
@@ -30,7 +30,7 @@
#define DRIVER_2_LED_TOTAL 43
#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL)
-#define CKLED2001_CURRENT_TUNE \
+#define SNLED27351_CURRENT_TUNE \
{ 0x94, 0x94, 0x44, 0x94, 0x94, 0x44, 0x94, 0x94, 0x44, 0x94, 0x94, 0x44 }
/* Enable CapsLcok LED */
diff --git a/keyboards/keychron/v3/jis/info.json b/keyboards/keychron/v3/jis/info.json
index 9b97707b2f..d5601a3b34 100644
--- a/keyboards/keychron/v3/jis/info.json
+++ b/keyboards/keychron/v3/jis/info.json
@@ -9,7 +9,7 @@
"device_version": "1.0.0"
},
"rgb_matrix": {
- "driver": "ckled2001"
+ "driver": "snled27351"
},
"processor": "STM32L432",
"bootloader": "stm32-dfu",
diff --git a/keyboards/keychron/v3/jis/jis.c b/keyboards/keychron/v3/jis/jis.c
index 7e05aa4063..70dbf812fa 100644
--- a/keyboards/keychron/v3/jis/jis.c
+++ b/keyboards/keychron/v3/jis/jis.c
@@ -18,8 +18,8 @@
#ifdef RGB_MATRIX_ENABLE
-const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = {
-/* Refer to IS31 manual for these locations
+const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = {
+/* Refer to SNLED27351 manual for these locations
* driver
* | R location
* | | G location
diff --git a/keyboards/keychron/v3/jis/rules.mk b/keyboards/keychron/v3/jis/rules.mk
index c37beecb9e..cf31e094cb 100644
--- a/keyboards/keychron/v3/jis/rules.mk
+++ b/keyboards/keychron/v3/jis/rules.mk
@@ -12,6 +12,3 @@ RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
AUDIO_ENABLE = no # Audio output
DIP_SWITCH_ENABLE = yes
RGB_MATRIX_ENABLE = yes
-EEPROM_DRIVER = wear_leveling
-WEAR_LEVELING_DRIVER = embedded_flash
-
diff --git a/keyboards/keychron/v3/jis_encoder/config.h b/keyboards/keychron/v3/jis_encoder/config.h
index 5f67d6a870..27f37cbed4 100644
--- a/keyboards/keychron/v3/jis_encoder/config.h
+++ b/keyboards/keychron/v3/jis_encoder/config.h
@@ -27,7 +27,7 @@
#define DRIVER_2_LED_TOTAL 43
#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL)
-#define CKLED2001_CURRENT_TUNE \
+#define SNLED27351_CURRENT_TUNE \
{ 0x94, 0x94, 0x44, 0x94, 0x94, 0x44, 0x94, 0x94, 0x44, 0x94, 0x94, 0x44 }
/* Encoder Configuration */
diff --git a/keyboards/keychron/v3/jis_encoder/info.json b/keyboards/keychron/v3/jis_encoder/info.json
index 585cf4519e..968c0396e9 100644
--- a/keyboards/keychron/v3/jis_encoder/info.json
+++ b/keyboards/keychron/v3/jis_encoder/info.json
@@ -9,7 +9,7 @@
"device_version": "1.0.0"
},
"rgb_matrix": {
- "driver": "ckled2001"
+ "driver": "snled27351"
},
"encoder": {
"rotary": [
diff --git a/keyboards/keychron/v3/jis_encoder/jis_encoder.c b/keyboards/keychron/v3/jis_encoder/jis_encoder.c
index 41b1c1e5af..cf1065eed9 100644
--- a/keyboards/keychron/v3/jis_encoder/jis_encoder.c
+++ b/keyboards/keychron/v3/jis_encoder/jis_encoder.c
@@ -18,8 +18,8 @@
#ifdef RGB_MATRIX_ENABLE
-const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = {
-/* Refer to IS31 manual for these locations
+const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = {
+/* Refer to SNLED27351 manual for these locations
* driver
* | R location
* | | G location
diff --git a/keyboards/keychron/v3/jis_encoder/rules.mk b/keyboards/keychron/v3/jis_encoder/rules.mk
index 7da353fbd1..4c6e5bebf0 100644
--- a/keyboards/keychron/v3/jis_encoder/rules.mk
+++ b/keyboards/keychron/v3/jis_encoder/rules.mk
@@ -13,8 +13,6 @@ AUDIO_ENABLE = no # Audio output
ENCODER_ENABLE = yes # Enable Encoder
DIP_SWITCH_ENABLE = yes
RGB_MATRIX_ENABLE = yes
-EEPROM_DRIVER = wear_leveling
-WEAR_LEVELING_DRIVER = embedded_flash
# custom matrix setup
CUSTOM_MATRIX = lite
diff --git a/keyboards/keychron/v4/ansi/ansi.c b/keyboards/keychron/v4/ansi/ansi.c
index 44056459f9..6326405380 100644
--- a/keyboards/keychron/v4/ansi/ansi.c
+++ b/keyboards/keychron/v4/ansi/ansi.c
@@ -20,8 +20,8 @@
// clang-format off
-const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = {
-/* Refer to CKLED manual for these locations
+const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = {
+/* Refer to SNLED27351 manual for these locations
* driver
* | R location
* | | G location
diff --git a/keyboards/keychron/v4/ansi/info.json b/keyboards/keychron/v4/ansi/info.json
index 812aec53a7..5fad0ca9b1 100644
--- a/keyboards/keychron/v4/ansi/info.json
+++ b/keyboards/keychron/v4/ansi/info.json
@@ -9,7 +9,7 @@
"device_version": "1.0.0"
},
"rgb_matrix": {
- "driver": "ckled2001"
+ "driver": "snled27351"
},
"matrix_pins": {
"cols": ["C14", "C15", "A0", "A1", "A2", "A3", "A4", "A5", "A6", "A7", "B0", "B1", "A8", "A9"],
diff --git a/keyboards/keychron/v4/ansi/rules.mk b/keyboards/keychron/v4/ansi/rules.mk
index 46f5aef144..468ed6fae3 100644
--- a/keyboards/keychron/v4/ansi/rules.mk
+++ b/keyboards/keychron/v4/ansi/rules.mk
@@ -12,6 +12,3 @@ RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
AUDIO_ENABLE = no # Audio output
DIP_SWITCH_ENABLE = yes
RGB_MATRIX_ENABLE = yes
-EEPROM_DRIVER = wear_leveling
-WEAR_LEVELING_DRIVER = embedded_flash
-
diff --git a/keyboards/keychron/v4/config.h b/keyboards/keychron/v4/config.h
index 8d92219f20..8325317c27 100644
--- a/keyboards/keychron/v4/config.h
+++ b/keyboards/keychron/v4/config.h
@@ -17,8 +17,7 @@
#pragma once
/* RGB Matrix Driver Configuration */
-#define DRIVER_COUNT 1
-#define DRIVER_ADDR_1 0b1110111
+#define SNLED27351_I2C_ADDRESS_1 SNLED27351_I2C_ADDRESS_VDDIO
/* Increase I2C speed to 1000 KHz */
#define I2C1_TIMINGR_PRESC 0U
@@ -27,7 +26,7 @@
#define I2C1_TIMINGR_SCLH 15U
#define I2C1_TIMINGR_SCLL 51U
-#define CKLED2001_CURRENT_TUNE \
+#define SNLED27351_CURRENT_TUNE \
{ 0xD0, 0xD0, 0x60, 0xD0, 0xD0, 0x60, 0xD0, 0xD0, 0x60, 0xD0, 0xD0, 0x60 }
/* DIP switch */
diff --git a/keyboards/keychron/v4/iso/info.json b/keyboards/keychron/v4/iso/info.json
index 7d4a8eae1d..a53d3ee6a4 100644
--- a/keyboards/keychron/v4/iso/info.json
+++ b/keyboards/keychron/v4/iso/info.json
@@ -9,7 +9,7 @@
"device_version": "1.0.0"
},
"rgb_matrix": {
- "driver": "ckled2001"
+ "driver": "snled27351"
},
"matrix_pins": {
"cols": ["C14", "C15", "A0", "A1", "A2", "A3", "A4", "A5", "A6", "A7", "B0", "B1", "A8", "A9"],
diff --git a/keyboards/keychron/v4/iso/iso.c b/keyboards/keychron/v4/iso/iso.c
index 8f86aa0498..9116135a4a 100644
--- a/keyboards/keychron/v4/iso/iso.c
+++ b/keyboards/keychron/v4/iso/iso.c
@@ -20,8 +20,8 @@
// clang-format off
-const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = {
-/* Refer to CKLED manual for these locations
+const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = {
+/* Refer to SNLED27351 manual for these locations
* driver
* | R location
* | | G location
diff --git a/keyboards/keychron/v4/iso/rules.mk b/keyboards/keychron/v4/iso/rules.mk
index 46f5aef144..468ed6fae3 100644
--- a/keyboards/keychron/v4/iso/rules.mk
+++ b/keyboards/keychron/v4/iso/rules.mk
@@ -12,6 +12,3 @@ RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
AUDIO_ENABLE = no # Audio output
DIP_SWITCH_ENABLE = yes
RGB_MATRIX_ENABLE = yes
-EEPROM_DRIVER = wear_leveling
-WEAR_LEVELING_DRIVER = embedded_flash
-
diff --git a/keyboards/keychron/v5/ansi/ansi.c b/keyboards/keychron/v5/ansi/ansi.c
index f4525dc3dc..073fb0cde0 100644
--- a/keyboards/keychron/v5/ansi/ansi.c
+++ b/keyboards/keychron/v5/ansi/ansi.c
@@ -20,8 +20,8 @@
// clang-format off
-const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = {
-/* Refer to IS31 manual for these locations
+const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = {
+/* Refer to SNLED27351 manual for these locations
* driver
* | R location
* | | G location
diff --git a/keyboards/keychron/v5/ansi/info.json b/keyboards/keychron/v5/ansi/info.json
index bc5eec2ca5..eb5cdca90b 100644
--- a/keyboards/keychron/v5/ansi/info.json
+++ b/keyboards/keychron/v5/ansi/info.json
@@ -9,7 +9,7 @@
"device_version": "1.0.0"
},
"rgb_matrix": {
- "driver": "ckled2001"
+ "driver": "snled27351"
},
"processor": "STM32L432",
"bootloader": "stm32-dfu",
diff --git a/keyboards/keychron/v5/ansi/rules.mk b/keyboards/keychron/v5/ansi/rules.mk
index e859eb9c34..465dfa9348 100644
--- a/keyboards/keychron/v5/ansi/rules.mk
+++ b/keyboards/keychron/v5/ansi/rules.mk
@@ -12,8 +12,6 @@ RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
AUDIO_ENABLE = no # Audio output
DIP_SWITCH_ENABLE = yes
RGB_MATRIX_ENABLE = yes
-EEPROM_DRIVER = wear_leveling
-WEAR_LEVELING_DRIVER = embedded_flash
# custom matrix setup
CUSTOM_MATRIX = lite
diff --git a/keyboards/keychron/v5/ansi_encoder/ansi_encoder.c b/keyboards/keychron/v5/ansi_encoder/ansi_encoder.c
index 1e3b303896..62ebc3f7b3 100644
--- a/keyboards/keychron/v5/ansi_encoder/ansi_encoder.c
+++ b/keyboards/keychron/v5/ansi_encoder/ansi_encoder.c
@@ -20,8 +20,8 @@
// clang-format off
-const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = {
-/* Refer to IS31 manual for these locations
+const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = {
+/* Refer to SNLED27351 manual for these locations
* driver
* | R location
* | | G location
diff --git a/keyboards/keychron/v5/ansi_encoder/info.json b/keyboards/keychron/v5/ansi_encoder/info.json
index 8a4aec4e36..00079fca47 100644
--- a/keyboards/keychron/v5/ansi_encoder/info.json
+++ b/keyboards/keychron/v5/ansi_encoder/info.json
@@ -9,7 +9,7 @@
"device_version": "1.0.0"
},
"rgb_matrix": {
- "driver": "ckled2001"
+ "driver": "snled27351"
},
"encoder": {
"rotary": [
diff --git a/keyboards/keychron/v5/ansi_encoder/rules.mk b/keyboards/keychron/v5/ansi_encoder/rules.mk
index 7da353fbd1..4c6e5bebf0 100644
--- a/keyboards/keychron/v5/ansi_encoder/rules.mk
+++ b/keyboards/keychron/v5/ansi_encoder/rules.mk
@@ -13,8 +13,6 @@ AUDIO_ENABLE = no # Audio output
ENCODER_ENABLE = yes # Enable Encoder
DIP_SWITCH_ENABLE = yes
RGB_MATRIX_ENABLE = yes
-EEPROM_DRIVER = wear_leveling
-WEAR_LEVELING_DRIVER = embedded_flash
# custom matrix setup
CUSTOM_MATRIX = lite
diff --git a/keyboards/keychron/v5/config.h b/keyboards/keychron/v5/config.h
index 142dfead34..8c4128a43e 100644
--- a/keyboards/keychron/v5/config.h
+++ b/keyboards/keychron/v5/config.h
@@ -26,9 +26,8 @@
#define DIODE_DIRECTION ROW2COL
/* RGB Matrix Driver Configuration */
-#define DRIVER_COUNT 2
-#define DRIVER_ADDR_1 0b1110111
-#define DRIVER_ADDR_2 0b1110100
+#define SNLED27351_I2C_ADDRESS_1 SNLED27351_I2C_ADDRESS_VDDIO
+#define SNLED27351_I2C_ADDRESS_2 SNLED27351_I2C_ADDRESS_GND
/* Increase I2C speed to 1000 KHz */
#define I2C1_TIMINGR_PRESC 0U
@@ -37,7 +36,7 @@
#define I2C1_TIMINGR_SCLH 15U
#define I2C1_TIMINGR_SCLL 51U
-#define CKLED2001_CURRENT_TUNE \
+#define SNLED27351_CURRENT_TUNE \
{ 0xB6, 0xB6, 0x56, 0xB6, 0xB6, 0x56, 0xB6, 0xB6, 0x56, 0xB6, 0xB6, 0x56 }
/* DIP switch */
diff --git a/keyboards/keychron/v5/iso/info.json b/keyboards/keychron/v5/iso/info.json
index 02db87e9ac..badac7f49a 100644
--- a/keyboards/keychron/v5/iso/info.json
+++ b/keyboards/keychron/v5/iso/info.json
@@ -9,7 +9,7 @@
"device_version": "1.0.0"
},
"rgb_matrix": {
- "driver": "ckled2001"
+ "driver": "snled27351"
},
"processor": "STM32L432",
"bootloader": "stm32-dfu",
diff --git a/keyboards/keychron/v5/iso/iso.c b/keyboards/keychron/v5/iso/iso.c
index d67be2d530..1552de7d47 100644
--- a/keyboards/keychron/v5/iso/iso.c
+++ b/keyboards/keychron/v5/iso/iso.c
@@ -20,8 +20,8 @@
// clang-format off
-const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = {
-/* Refer to IS31 manual for these locations
+const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = {
+/* Refer to SNLED27351 manual for these locations
* driver
* | R location
* | | G location
diff --git a/keyboards/keychron/v5/iso/rules.mk b/keyboards/keychron/v5/iso/rules.mk
index e859eb9c34..465dfa9348 100644
--- a/keyboards/keychron/v5/iso/rules.mk
+++ b/keyboards/keychron/v5/iso/rules.mk
@@ -12,8 +12,6 @@ RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
AUDIO_ENABLE = no # Audio output
DIP_SWITCH_ENABLE = yes
RGB_MATRIX_ENABLE = yes
-EEPROM_DRIVER = wear_leveling
-WEAR_LEVELING_DRIVER = embedded_flash
# custom matrix setup
CUSTOM_MATRIX = lite
diff --git a/keyboards/keychron/v5/iso_encoder/info.json b/keyboards/keychron/v5/iso_encoder/info.json
index b0be43fc50..cbf77fc93a 100644
--- a/keyboards/keychron/v5/iso_encoder/info.json
+++ b/keyboards/keychron/v5/iso_encoder/info.json
@@ -9,7 +9,7 @@
"device_version": "1.0.0"
},
"rgb_matrix": {
- "driver": "ckled2001"
+ "driver": "snled27351"
},
"encoder": {
"rotary": [
diff --git a/keyboards/keychron/v5/iso_encoder/iso_encoder.c b/keyboards/keychron/v5/iso_encoder/iso_encoder.c
index 5719da5e34..95eb62ae1f 100644
--- a/keyboards/keychron/v5/iso_encoder/iso_encoder.c
+++ b/keyboards/keychron/v5/iso_encoder/iso_encoder.c
@@ -20,8 +20,8 @@
// clang-format off
-const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = {
-/* Refer to IS31 manual for these locations
+const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = {
+/* Refer to SNLED27351 manual for these locations
* driver
* | R location
* | | G location
diff --git a/keyboards/keychron/v5/iso_encoder/rules.mk b/keyboards/keychron/v5/iso_encoder/rules.mk
index 7da353fbd1..4c6e5bebf0 100644
--- a/keyboards/keychron/v5/iso_encoder/rules.mk
+++ b/keyboards/keychron/v5/iso_encoder/rules.mk
@@ -13,8 +13,6 @@ AUDIO_ENABLE = no # Audio output
ENCODER_ENABLE = yes # Enable Encoder
DIP_SWITCH_ENABLE = yes
RGB_MATRIX_ENABLE = yes
-EEPROM_DRIVER = wear_leveling
-WEAR_LEVELING_DRIVER = embedded_flash
# custom matrix setup
CUSTOM_MATRIX = lite
diff --git a/keyboards/keychron/v6/ansi/ansi.c b/keyboards/keychron/v6/ansi/ansi.c
index 4011529883..a3f1032a1e 100644
--- a/keyboards/keychron/v6/ansi/ansi.c
+++ b/keyboards/keychron/v6/ansi/ansi.c
@@ -18,8 +18,8 @@
#ifdef RGB_MATRIX_ENABLE
-const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = {
-/* Refer to IS31 manual for these locations
+const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = {
+/* Refer to SNLED27351 manual for these locations
* driver
* | R location
* | | G location
diff --git a/keyboards/keychron/v6/ansi/info.json b/keyboards/keychron/v6/ansi/info.json
index 3f12305f06..3eee229ea8 100644
--- a/keyboards/keychron/v6/ansi/info.json
+++ b/keyboards/keychron/v6/ansi/info.json
@@ -9,7 +9,7 @@
"device_version": "1.0.0"
},
"rgb_matrix": {
- "driver": "ckled2001"
+ "driver": "snled27351"
},
"processor": "STM32L432",
"bootloader": "stm32-dfu",
diff --git a/keyboards/keychron/v6/ansi/rules.mk b/keyboards/keychron/v6/ansi/rules.mk
index 980311d3f2..eff255ee8c 100644
--- a/keyboards/keychron/v6/ansi/rules.mk
+++ b/keyboards/keychron/v6/ansi/rules.mk
@@ -12,8 +12,6 @@ RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
AUDIO_ENABLE = no # Audio output
DIP_SWITCH_ENABLE = yes
RGB_MATRIX_ENABLE = yes
-EEPROM_DRIVER = wear_leveling
-WEAR_LEVELING_DRIVER = embedded_flash
# custom matrix setup
CUSTOM_MATRIX = lite
diff --git a/keyboards/keychron/v6/ansi_encoder/ansi_encoder.c b/keyboards/keychron/v6/ansi_encoder/ansi_encoder.c
index 91831bf3c1..02e0de0b3d 100644
--- a/keyboards/keychron/v6/ansi_encoder/ansi_encoder.c
+++ b/keyboards/keychron/v6/ansi_encoder/ansi_encoder.c
@@ -20,8 +20,8 @@
#ifdef RGB_MATRIX_ENABLE
-const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = {
-/* Refer to IS31 manual for these locations
+const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = {
+/* Refer to SNLED27351 manual for these locations
* driver
* | R location
* | | G location
diff --git a/keyboards/keychron/v6/ansi_encoder/info.json b/keyboards/keychron/v6/ansi_encoder/info.json
index ad0ea78318..86ecc82e35 100644
--- a/keyboards/keychron/v6/ansi_encoder/info.json
+++ b/keyboards/keychron/v6/ansi_encoder/info.json
@@ -9,7 +9,7 @@
"device_version": "1.0.0"
},
"rgb_matrix": {
- "driver": "ckled2001"
+ "driver": "snled27351"
},
"encoder": {
"rotary": [
diff --git a/keyboards/keychron/v6/ansi_encoder/rules.mk b/keyboards/keychron/v6/ansi_encoder/rules.mk
index 80a3f300bd..213c733c9c 100644
--- a/keyboards/keychron/v6/ansi_encoder/rules.mk
+++ b/keyboards/keychron/v6/ansi_encoder/rules.mk
@@ -13,8 +13,6 @@ AUDIO_ENABLE = no # Audio output
ENCODER_ENABLE = yes # Enable Encoder
DIP_SWITCH_ENABLE = yes
RGB_MATRIX_ENABLE = yes
-EEPROM_DRIVER = wear_leveling
-WEAR_LEVELING_DRIVER = embedded_flash
# custom matrix setup
CUSTOM_MATRIX = lite
diff --git a/keyboards/keychron/v6/config.h b/keyboards/keychron/v6/config.h
index 38cff19e6b..eb2296a172 100644
--- a/keyboards/keychron/v6/config.h
+++ b/keyboards/keychron/v6/config.h
@@ -20,9 +20,8 @@
#define DIODE_DIRECTION ROW2COL
/* RGB Matrix Driver Configuration */
-#define DRIVER_COUNT 2
-#define DRIVER_ADDR_1 0b1110111
-#define DRIVER_ADDR_2 0b1110100
+#define SNLED27351_I2C_ADDRESS_1 SNLED27351_I2C_ADDRESS_VDDIO
+#define SNLED27351_I2C_ADDRESS_2 SNLED27351_I2C_ADDRESS_GND
/* Increase I2C speed to 1000 KHz */
#define I2C1_TIMINGR_PRESC 0U
@@ -32,7 +31,7 @@
#define I2C1_TIMINGR_SCLL 51U
/* Limit the maximum brigtness current of colour white to 500mA */
-#define CKLED2001_CURRENT_TUNE { 0xA8, 0xA8, 0x48, 0xA8, 0xA8, 0x48, 0xA8, 0xA8, 0x48, 0xA8, 0xA8, 0x48 }
+#define SNLED27351_CURRENT_TUNE { 0xA8, 0xA8, 0x48, 0xA8, 0xA8, 0x48, 0xA8, 0xA8, 0x48, 0xA8, 0xA8, 0x48 }
/* DIP switch */
#define DIP_SWITCH_MATRIX_GRID { {5, 4} }
diff --git a/keyboards/keychron/v6/iso/info.json b/keyboards/keychron/v6/iso/info.json
index 0840ee9cc8..242e904cf0 100644
--- a/keyboards/keychron/v6/iso/info.json
+++ b/keyboards/keychron/v6/iso/info.json
@@ -9,7 +9,7 @@
"device_version": "1.0.0"
},
"rgb_matrix": {
- "driver": "ckled2001"
+ "driver": "snled27351"
},
"processor": "STM32L432",
"bootloader": "stm32-dfu",
diff --git a/keyboards/keychron/v6/iso/iso.c b/keyboards/keychron/v6/iso/iso.c
index 5c0e2fa396..7804ca3600 100644
--- a/keyboards/keychron/v6/iso/iso.c
+++ b/keyboards/keychron/v6/iso/iso.c
@@ -20,8 +20,8 @@
#ifdef RGB_MATRIX_ENABLE
-const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = {
-/* Refer to IS31 manual for these locations
+const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = {
+/* Refer to SNLED27351 manual for these locations
* driver
* | R location
* | | G location
diff --git a/keyboards/keychron/v6/iso/rules.mk b/keyboards/keychron/v6/iso/rules.mk
index 980311d3f2..eff255ee8c 100644
--- a/keyboards/keychron/v6/iso/rules.mk
+++ b/keyboards/keychron/v6/iso/rules.mk
@@ -12,8 +12,6 @@ RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
AUDIO_ENABLE = no # Audio output
DIP_SWITCH_ENABLE = yes
RGB_MATRIX_ENABLE = yes
-EEPROM_DRIVER = wear_leveling
-WEAR_LEVELING_DRIVER = embedded_flash
# custom matrix setup
CUSTOM_MATRIX = lite
diff --git a/keyboards/keychron/v6/iso_encoder/info.json b/keyboards/keychron/v6/iso_encoder/info.json
index a40d4d66b6..d4237a69f4 100644
--- a/keyboards/keychron/v6/iso_encoder/info.json
+++ b/keyboards/keychron/v6/iso_encoder/info.json
@@ -9,7 +9,7 @@
"device_version": "1.0.0"
},
"rgb_matrix": {
- "driver": "ckled2001"
+ "driver": "snled27351"
},
"encoder": {
"rotary": [
diff --git a/keyboards/keychron/v6/iso_encoder/iso_encoder.c b/keyboards/keychron/v6/iso_encoder/iso_encoder.c
index 8268e5b0a9..bd9189f8b5 100644
--- a/keyboards/keychron/v6/iso_encoder/iso_encoder.c
+++ b/keyboards/keychron/v6/iso_encoder/iso_encoder.c
@@ -20,8 +20,8 @@
#ifdef RGB_MATRIX_ENABLE
-const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = {
-/* Refer to IS31 manual for these locations
+const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = {
+/* Refer to SNLED27351 manual for these locations
* driver
* | R location
* | | G location
diff --git a/keyboards/keychron/v6/iso_encoder/rules.mk b/keyboards/keychron/v6/iso_encoder/rules.mk
index 9867724957..39b0594039 100644
--- a/keyboards/keychron/v6/iso_encoder/rules.mk
+++ b/keyboards/keychron/v6/iso_encoder/rules.mk
@@ -13,8 +13,6 @@ AUDIO_ENABLE = no # Audio output
ENCODER_ENABLE = yes # Enable Encoder
DIP_SWITCH_ENABLE = yes
RGB_MATRIX_ENABLE = yes
-EEPROM_DRIVER = wear_leveling
-WEAR_LEVELING_DRIVER = embedded_flash
# custom matrix setup
CUSTOM_MATRIX = lite
diff --git a/keyboards/keychron/v7/ansi/ansi.c b/keyboards/keychron/v7/ansi/ansi.c
index c0deea7845..07a98622a4 100644
--- a/keyboards/keychron/v7/ansi/ansi.c
+++ b/keyboards/keychron/v7/ansi/ansi.c
@@ -20,8 +20,8 @@
// clang-format off
-const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = {
-/* Refer to CKLED manual for these locations
+const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = {
+/* Refer to SNLED27351 manual for these locations
* driver
* | R location
* | | G location
diff --git a/keyboards/keychron/v7/ansi/info.json b/keyboards/keychron/v7/ansi/info.json
index 26f31786b5..4088a20ced 100644
--- a/keyboards/keychron/v7/ansi/info.json
+++ b/keyboards/keychron/v7/ansi/info.json
@@ -9,7 +9,7 @@
"device_version": "1.0.0"
},
"rgb_matrix": {
- "driver": "ckled2001"
+ "driver": "snled27351"
},
"matrix_pins": {
"cols": ["C14", "C15", "A0", "A1", "A2", "A3", "A4", "A5", "A6", "A7", "B0", "B1", "A8", "A9", "A10", "B5"],
diff --git a/keyboards/keychron/v7/ansi/rules.mk b/keyboards/keychron/v7/ansi/rules.mk
index 46f5aef144..468ed6fae3 100644
--- a/keyboards/keychron/v7/ansi/rules.mk
+++ b/keyboards/keychron/v7/ansi/rules.mk
@@ -12,6 +12,3 @@ RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
AUDIO_ENABLE = no # Audio output
DIP_SWITCH_ENABLE = yes
RGB_MATRIX_ENABLE = yes
-EEPROM_DRIVER = wear_leveling
-WEAR_LEVELING_DRIVER = embedded_flash
-
diff --git a/keyboards/keychron/v7/config.h b/keyboards/keychron/v7/config.h
index c439a7e366..cff96774e3 100644
--- a/keyboards/keychron/v7/config.h
+++ b/keyboards/keychron/v7/config.h
@@ -17,9 +17,8 @@
#pragma once
/* RGB Matrix Driver Configuration */
-#define DRIVER_COUNT 2
-#define DRIVER_ADDR_1 0b1110111
-#define DRIVER_ADDR_2 0b1110100
+#define SNLED27351_I2C_ADDRESS_1 SNLED27351_I2C_ADDRESS_VDDIO
+#define SNLED27351_I2C_ADDRESS_2 SNLED27351_I2C_ADDRESS_GND
/* Increase I2C speed to 1000 KHz */
#define I2C1_TIMINGR_PRESC 0U
@@ -28,9 +27,8 @@
#define I2C1_TIMINGR_SCLH 15U
#define I2C1_TIMINGR_SCLL 51U
-/* Scan phase of led driver set as MSKPHASE_9CHANNEL(defined as 0x03 in CKLED2001.h) */
-#define SCAN_PHASE_CHANNEL MSKPHASE_9CHANNEL
-#define CKLED2001_CURRENT_TUNE { 0xFC, 0xFC, 0x70, 0xFC, 0xFC, 0x70, 0xFC, 0xFC, 0x70, 0xFC, 0xFC, 0x70 }
+#define SNLED27351_PHASE_CHANNEL SNLED27351_SCAN_PHASE_9_CHANNEL
+#define SNLED27351_CURRENT_TUNE { 0xFC, 0xFC, 0x70, 0xFC, 0xFC, 0x70, 0xFC, 0xFC, 0x70, 0xFC, 0xFC, 0x70 }
/* DIP switch */
#define DIP_SWITCH_MATRIX_GRID { {4,4} }
diff --git a/keyboards/keychron/v7/iso/info.json b/keyboards/keychron/v7/iso/info.json
index f29d9d9a32..97588498ed 100644
--- a/keyboards/keychron/v7/iso/info.json
+++ b/keyboards/keychron/v7/iso/info.json
@@ -9,7 +9,7 @@
"device_version": "1.0.0"
},
"rgb_matrix": {
- "driver": "ckled2001"
+ "driver": "snled27351"
},
"matrix_pins": {
"cols": ["C14", "C15", "A0", "A1", "A2", "A3", "A4", "A5", "A6", "A7", "B0", "B1", "A8", "A9", "A10", "B5"],
diff --git a/keyboards/keychron/v7/iso/iso.c b/keyboards/keychron/v7/iso/iso.c
index 4630059be4..a35dcb2092 100644
--- a/keyboards/keychron/v7/iso/iso.c
+++ b/keyboards/keychron/v7/iso/iso.c
@@ -20,8 +20,8 @@
// clang-format off
-const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = {
-/* Refer to CKLED manual for these locations
+const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = {
+/* Refer to SNLED27351 manual for these locations
* driver
* | R location
* | | G location
diff --git a/keyboards/keychron/v7/iso/rules.mk b/keyboards/keychron/v7/iso/rules.mk
index 46f5aef144..468ed6fae3 100644
--- a/keyboards/keychron/v7/iso/rules.mk
+++ b/keyboards/keychron/v7/iso/rules.mk
@@ -12,6 +12,3 @@ RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
AUDIO_ENABLE = no # Audio output
DIP_SWITCH_ENABLE = yes
RGB_MATRIX_ENABLE = yes
-EEPROM_DRIVER = wear_leveling
-WEAR_LEVELING_DRIVER = embedded_flash
-
diff --git a/keyboards/keychron/v8/ansi/ansi.c b/keyboards/keychron/v8/ansi/ansi.c
index 670ff2fbdb..bda7ba1d74 100644
--- a/keyboards/keychron/v8/ansi/ansi.c
+++ b/keyboards/keychron/v8/ansi/ansi.c
@@ -20,8 +20,8 @@
// clang-format off
-const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = {
-/* Refer to CKLED manual for these locations
+const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = {
+/* Refer to SNLED27351 manual for these locations
* driver
* | R location
* | | G location
diff --git a/keyboards/keychron/v8/ansi/info.json b/keyboards/keychron/v8/ansi/info.json
index 02780ffcde..06a657a5a8 100644
--- a/keyboards/keychron/v8/ansi/info.json
+++ b/keyboards/keychron/v8/ansi/info.json
@@ -9,7 +9,7 @@
"device_version": "1.0.0"
},
"rgb_matrix": {
- "driver": "ckled2001"
+ "driver": "snled27351"
},
"matrix_pins": {
"cols": ["C14", "C15", "A0", "A1", "A2", "A3", "A4", "A5", "A6", "A7", "B0", "B1", "A8", "A9", "H3"],
diff --git a/keyboards/keychron/v8/ansi/rules.mk b/keyboards/keychron/v8/ansi/rules.mk
index e506e322d5..08a7658da3 100644
--- a/keyboards/keychron/v8/ansi/rules.mk
+++ b/keyboards/keychron/v8/ansi/rules.mk
@@ -14,6 +14,3 @@ ENCODER_ENABLE = no # Enable Encoder
ENCODER_MAP_ENABLE = no
DIP_SWITCH_ENABLE = yes
RGB_MATRIX_ENABLE = yes
-EEPROM_DRIVER = wear_leveling
-WEAR_LEVELING_DRIVER = embedded_flash
-
diff --git a/keyboards/keychron/v8/ansi_encoder/ansi_encoder.c b/keyboards/keychron/v8/ansi_encoder/ansi_encoder.c
index 670ff2fbdb..bda7ba1d74 100644
--- a/keyboards/keychron/v8/ansi_encoder/ansi_encoder.c
+++ b/keyboards/keychron/v8/ansi_encoder/ansi_encoder.c
@@ -20,8 +20,8 @@
// clang-format off
-const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = {
-/* Refer to CKLED manual for these locations
+const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = {
+/* Refer to SNLED27351 manual for these locations
* driver
* | R location
* | | G location
diff --git a/keyboards/keychron/v8/ansi_encoder/info.json b/keyboards/keychron/v8/ansi_encoder/info.json
index c3fc389780..6202a306c5 100644
--- a/keyboards/keychron/v8/ansi_encoder/info.json
+++ b/keyboards/keychron/v8/ansi_encoder/info.json
@@ -9,7 +9,7 @@
"device_version": "1.0.0"
},
"rgb_matrix": {
- "driver": "ckled2001"
+ "driver": "snled27351"
},
"matrix_pins": {
"cols": ["C14", "C15", "A0", "A1", "A2", "A3", "A4", "A5", "A6", "A7", "B0", "B1", "A8", "A9", "H3"],
diff --git a/keyboards/keychron/v8/ansi_encoder/rules.mk b/keyboards/keychron/v8/ansi_encoder/rules.mk
index e3b0d8f03f..d53dc0f5d5 100644
--- a/keyboards/keychron/v8/ansi_encoder/rules.mk
+++ b/keyboards/keychron/v8/ansi_encoder/rules.mk
@@ -14,6 +14,3 @@ ENCODER_ENABLE = yes # Enable Encoder
ENCODER_MAP_ENABLE = no
DIP_SWITCH_ENABLE = yes
RGB_MATRIX_ENABLE = yes
-EEPROM_DRIVER = wear_leveling
-WEAR_LEVELING_DRIVER = embedded_flash
-
diff --git a/keyboards/keychron/v8/config.h b/keyboards/keychron/v8/config.h
index 7c6076e199..3a860e8eb6 100644
--- a/keyboards/keychron/v8/config.h
+++ b/keyboards/keychron/v8/config.h
@@ -20,9 +20,8 @@
// #define MATRIX_UNSELECT_DRIVE_HIGH
/* RGB Matrix Driver Configuration */
-#define DRIVER_COUNT 2
-#define DRIVER_ADDR_1 0b1110111
-#define DRIVER_ADDR_2 0b1110100
+#define SNLED27351_I2C_ADDRESS_1 SNLED27351_I2C_ADDRESS_VDDIO
+#define SNLED27351_I2C_ADDRESS_2 SNLED27351_I2C_ADDRESS_GND
/* Increase I2C speed to 1000 KHz */
#define I2C1_TIMINGR_PRESC 0U
@@ -31,9 +30,8 @@
#define I2C1_TIMINGR_SCLH 15U
#define I2C1_TIMINGR_SCLL 51U
-/* Scan phase of led driver set as MSKPHASE_9CHANNEL(defined as 0x03 in CKLED2001.h) */
-#define PHASE_CHANNEL MSKPHASE_9CHANNEL
-#define CKLED2001_CURRENT_TUNE { 0xC4, 0xC4, 0x60, 0xC4, 0xC4, 0x60, 0xC4, 0xC4, 0x60, 0xC4, 0xC4, 0x60 }
+#define SNLED27351_PHASE_CHANNEL SNLED27351_SCAN_PHASE_9_CHANNEL
+#define SNLED27351_CURRENT_TUNE { 0xC4, 0xC4, 0x60, 0xC4, 0xC4, 0x60, 0xC4, 0xC4, 0x60, 0xC4, 0xC4, 0x60 }
/* DIP switch */
#define DIP_SWITCH_MATRIX_GRID { {4, 4} }
diff --git a/keyboards/keychron/v8/iso/info.json b/keyboards/keychron/v8/iso/info.json
index 5f30af5b1a..8b40b7d065 100644
--- a/keyboards/keychron/v8/iso/info.json
+++ b/keyboards/keychron/v8/iso/info.json
@@ -9,7 +9,7 @@
"device_version": "1.0.0"
},
"rgb_matrix": {
- "driver": "ckled2001"
+ "driver": "snled27351"
},
"matrix_pins": {
"cols": ["C14", "C15", "A0", "A1", "A2", "A3", "A4", "A5", "A6", "A7", "B0", "B1", "A8", "A9", "H3"],
diff --git a/keyboards/keychron/v8/iso/iso.c b/keyboards/keychron/v8/iso/iso.c
index f64d3c4c56..88040c3ab8 100644
--- a/keyboards/keychron/v8/iso/iso.c
+++ b/keyboards/keychron/v8/iso/iso.c
@@ -20,8 +20,8 @@
// clang-format off
-const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = {
-/* Refer to CKLED manual for these locations
+const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = {
+/* Refer to SNLED27351 manual for these locations
* driver
* | R location
* | | G location
diff --git a/keyboards/keychron/v8/iso/rules.mk b/keyboards/keychron/v8/iso/rules.mk
index 8edab2465b..4aa9221c24 100644
--- a/keyboards/keychron/v8/iso/rules.mk
+++ b/keyboards/keychron/v8/iso/rules.mk
@@ -13,6 +13,3 @@ AUDIO_ENABLE = no # Audio output
ENCODER_ENABLE = no # Enable Encoder
DIP_SWITCH_ENABLE = yes
RGB_MATRIX_ENABLE = yes
-EEPROM_DRIVER = wear_leveling
-WEAR_LEVELING_DRIVER = embedded_flash
-
diff --git a/keyboards/keychron/v8/iso_encoder/info.json b/keyboards/keychron/v8/iso_encoder/info.json
index e13261a2d6..3d04699651 100644
--- a/keyboards/keychron/v8/iso_encoder/info.json
+++ b/keyboards/keychron/v8/iso_encoder/info.json
@@ -9,7 +9,7 @@
"device_version": "1.0.0"
},
"rgb_matrix": {
- "driver": "ckled2001"
+ "driver": "snled27351"
},
"matrix_pins": {
"cols": ["C14", "C15", "A0", "A1", "A2", "A3", "A4", "A5", "A6", "A7", "B0", "B1", "A8", "A9", "H3"],
diff --git a/keyboards/keychron/v8/iso_encoder/iso_encoder.c b/keyboards/keychron/v8/iso_encoder/iso_encoder.c
index f64d3c4c56..88040c3ab8 100644
--- a/keyboards/keychron/v8/iso_encoder/iso_encoder.c
+++ b/keyboards/keychron/v8/iso_encoder/iso_encoder.c
@@ -20,8 +20,8 @@
// clang-format off
-const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = {
-/* Refer to CKLED manual for these locations
+const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = {
+/* Refer to SNLED27351 manual for these locations
* driver
* | R location
* | | G location
diff --git a/keyboards/keychron/v8/iso_encoder/rules.mk b/keyboards/keychron/v8/iso_encoder/rules.mk
index e3b0d8f03f..d53dc0f5d5 100644
--- a/keyboards/keychron/v8/iso_encoder/rules.mk
+++ b/keyboards/keychron/v8/iso_encoder/rules.mk
@@ -14,6 +14,3 @@ ENCODER_ENABLE = yes # Enable Encoder
ENCODER_MAP_ENABLE = no
DIP_SWITCH_ENABLE = yes
RGB_MATRIX_ENABLE = yes
-EEPROM_DRIVER = wear_leveling
-WEAR_LEVELING_DRIVER = embedded_flash
-
diff --git a/keyboards/keyhive/honeycomb/rules.mk b/keyboards/keyhive/honeycomb/rules.mk
index 040710a460..bfa5252a03 100755
--- a/keyboards/keyhive/honeycomb/rules.mk
+++ b/keyboards/keyhive/honeycomb/rules.mk
@@ -14,4 +14,4 @@ NKRO_ENABLE = yes # Enable N-Key Rollover
# # project specific files
SRC += matrix.c
-QUANTUM_LIB_SRC += uart.c
+UART_DRIVER_REQUIRED = yes
diff --git a/keyboards/keyhive/navi10/keymaps/devdev/config.h b/keyboards/keyhive/navi10/keymaps/devdev/config.h
deleted file mode 100644
index 8d8a6df8c9..0000000000
--- a/keyboards/keyhive/navi10/keymaps/devdev/config.h
+++ /dev/null
@@ -1,35 +0,0 @@
-/*
-Copyright 2019 Ethan Durrant (emdarcher)
-
-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
-/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
-#undef DEBOUNCE
-#define DEBOUNCE 1
-
-#define TAPPING_TERM 220
-
-#ifdef RGBLIGHT_ENABLE
- #define WS2812_DI_PIN D3
- #define RGBLED_NUM 3
-
- #define RGBLIGHT_LIMIT_VAL 120
- #define RGBLIGHT_HUE_STEP 10
- #define RGBLIGHT_SAT_STEP 17
- #define RGBLIGHT_VAL_STEP 17
-
-
-#endif
diff --git a/keyboards/keyhive/navi10/keymaps/devdev/keymap.c b/keyboards/keyhive/navi10/keymaps/devdev/keymap.c
deleted file mode 100644
index 36a76c50ce..0000000000
--- a/keyboards/keyhive/navi10/keymaps/devdev/keymap.c
+++ /dev/null
@@ -1,263 +0,0 @@
-/* Copyright 2019 Ethan Durrant (emdarcher)
- *
- * 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/>.
- */
-
- // NAVI 10
-#include QMK_KEYBOARD_H
-
-#define INDICATOR_LED B5
-
-
-#define _ML1 2
-#define _FN2 3
-#define _PR3 4
-#define _GI4 4
-
-
-#define HS_RED 0,255
-#define HS_WHITE 0, 0
-#define HS_ORANGE 28, 255
-#define HS_GREEN 85, 255
-#define HS_TURQUOISE 123, 90
-#define HS_CYAN 128, 255
-#define HS_AZURE 132, 102
-#define HS_BLUE 170, 255
-#define HS_PURPLE 191, 255
-#define HS_MAGENTA 213, 255
-
-
-//create the tap type
-typedef struct {
- bool is_press_action;
- int state;
-} tap;
-
-//tap dance states
-enum {
- // uses https://beta.docs.qmk.fm/using-qmk/software-features/feature_tap_dance
- SINGLE_TAP = 1,
- SINGLE_HOLD = 2,
- DOUBLE_TAP = 3,
- TRIPLE_TAP = 4,
-};
-
-//tap dance keys
-enum {
- TAPPY_KEY = 0
-};
-
-enum custom_keycodes { // git macros
- M_G_HERE = SAFE_RANGE,
- M_G_PUSH,
- M_G_PULL,
- M_G_ADD,
- M_G_COMM
-};
-
-//function to handle all the tap dances
-int cur_dance(tap_dance_state_t *state);
-
-//functions for each tap dance
-void tk_finished(tap_dance_state_t *state, void *user_data);
-void tk_reset(tap_dance_state_t *state, void *user_data);
-
-// define the macros in here
-bool process_record_user(uint16_t keycode, keyrecord_t *record) {
- switch (keycode) {
- // open git bash here
- case M_G_HERE:
- if (record->event.pressed) {
- SEND_STRING(SS_TAP(X_APP)"s");
- } else {
- // when keycode M_G_HERE is released
- }
- break;
-
- //git push
- case M_G_PUSH:
- if (record->event.pressed) {
- // when keycode M_G_PUSH is pressed
- SEND_STRING("git push"SS_TAP(X_ENTER));
- } else {
- // when keycode M_G_PUSH is released
- }
- break;
-
- // git pull
- case M_G_PULL:
- if (record->event.pressed) {
- SEND_STRING("git pull"SS_TAP(X_ENTER));
- }
- break;
-
- // git add
- case M_G_ADD:
- if (record->event.pressed) {
- SEND_STRING("git add ");
- }
- break;
-
- // git commit
- case M_G_COMM: // git commit
- if (record->event.pressed) {
- SEND_STRING("git commit -m ' ");
- }
- break;
- }
- return true;
-};
-
-
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- // Base
- [0] = LAYOUT(
- TD(TAPPY_KEY),KC_HOME, KC_PGUP,
- KC_DEL, KC_END, KC_PGDN,
-
- KC_UP,
- KC_LEFT, KC_DOWN, KC_RIGHT),
-
- // media function layer, toggled on a single tap
- [_ML1] = LAYOUT(
- KC_TRNS, KC_BSPC, KC_VOLU,
- KC_MUTE, KC_ENTER, KC_VOLD,
-
- KC_SPC,
- KC_MRWD, KC_MPLY, KC_MFFD),
-
- // F keys, double tap to get here
- [_FN2] = LAYOUT(
- TO(0), KC_F3, KC_F5,
- KC_F2, KC_F4, KC_F6,
-
- KC_F7,
- KC_F9, KC_F8, KC_F10),
-
- // programming, triple tap to get here
- [_PR3] = LAYOUT(
- TO(0), A(KC_F7), S(KC_F10), //atmel, segger, pycharm
- KC_F2, KC_F4, S(KC_F9),
-
- KC_UP,
- KC_LEFT, KC_DOWN, KC_RIGHT),
-
- // git function layer, hold to get here
- [_GI4] = LAYOUT(
- KC_TRNS, M_G_PUSH, M_G_ADD,
- M_G_HERE, M_G_PULL, M_G_COMM,
-
- RGB_VAI,
- RGB_TOG, RGB_VAD, RGB_MOD),
-
-
-
-};
-
-//determine the current tap dance state
-int cur_dance (tap_dance_state_t *state){
- if(state->count == 1)
- {
- //if a tap was registered
- if(!state->pressed)
- {
- //if not still pressed, then was a single tap
- return SINGLE_TAP;
- } else
- {
- //if still pressed/held down, then it's a single hold
- return SINGLE_HOLD;
- }
- }
- else if (state->count == 2)
- {
- return DOUBLE_TAP;
- }
-
- else if (state->count == 3)
- {
- return TRIPLE_TAP;
- }
- else
- {
- return 8;
- }
-}
-
-//initialize the tap structure for the tap key
-static tap tk_tap_state = {
- .is_press_action = true,
- .state = 0
-};
-
-//functions that control what our tap dance key does
-void tk_finished(tap_dance_state_t *state, void *user_data){
- tk_tap_state.state = cur_dance(state);
- uint8_t val = rgblight_get_val();
- switch(tk_tap_state.state){
- case SINGLE_TAP:
- //send desired key when tapped:
- //setting to the media layer
- if(layer_state_is(_ML1)){
- //if already active, toggle it to off
- layer_off(_ML1);
- rgblight_sethsv(HS_PURPLE, val);
- } else {
- //turn on the media layer
- layer_on(_ML1);
- rgblight_sethsv_at(HS_RED, 0, 0);
- rgblight_sethsv_at(HS_GREEN, 0, 1);
- rgblight_sethsv_at(HS_BLUE, val, 2);
- }
- break;
-
- case DOUBLE_TAP:
- layer_on(_FN2);
- rgblight_sethsv_at(HS_RED, 0, 0);
- rgblight_sethsv_at(HS_GREEN, val, 1);
- rgblight_sethsv_at(HS_BLUE, 0, 2);
- break;
- case TRIPLE_TAP:
- layer_on(_PR3);
- rgblight_sethsv_at(HS_RED, 0, 0);
- rgblight_sethsv_at(HS_GREEN, val, 1);
- rgblight_sethsv_at(HS_BLUE, val, 2);
- break;
- case SINGLE_HOLD:
- //set to desired layer when held:
- //setting to the function layer
- layer_on(_GI4);
- rgblight_sethsv_at(HS_RED, val, 0);
- rgblight_sethsv_at(HS_GREEN, val, 1);
- rgblight_sethsv_at(HS_BLUE, val, 2);
- break;
- }
-}
-
-void tk_reset(tap_dance_state_t *state, void *user_data){
- //if held and released, leave the layer
- if(tk_tap_state.state == SINGLE_HOLD){
- layer_off(_GI4);
- uint8_t val = rgblight_get_val();
- rgblight_sethsv(HS_PURPLE, val);
- }
- //reset the state
- tk_tap_state.state = 0;
-}
-
-//associate the tap dance key with its functionality
-tap_dance_action_t tap_dance_actions[] = {
- [TAPPY_KEY] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, tk_finished, tk_reset)
-};
diff --git a/keyboards/keyhive/navi10/keymaps/devdev/rules.mk b/keyboards/keyhive/navi10/keymaps/devdev/rules.mk
deleted file mode 100644
index 1c1ed316a0..0000000000
--- a/keyboards/keyhive/navi10/keymaps/devdev/rules.mk
+++ /dev/null
@@ -1,2 +0,0 @@
-RGBLIGHT_ENABLE = yes
-TAP_DANCE_ENABLE = yes \ No newline at end of file
diff --git a/keyboards/keyhive/ut472/keymaps/hvp/config.h b/keyboards/keyhive/ut472/keymaps/hvp/config.h
deleted file mode 100644
index a2a492ff27..0000000000
--- a/keyboards/keyhive/ut472/keymaps/hvp/config.h
+++ /dev/null
@@ -1,19 +0,0 @@
-/* Copyright 2018 Carlos Filoteo
- *
- * 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 TAPPING_TERM 200
-#define TAPPING_TERM_PER_KEY
diff --git a/keyboards/keyhive/ut472/keymaps/hvp/keymap.c b/keyboards/keyhive/ut472/keymaps/hvp/keymap.c
deleted file mode 100644
index 49bfedcc3f..0000000000
--- a/keyboards/keyhive/ut472/keymaps/hvp/keymap.c
+++ /dev/null
@@ -1,67 +0,0 @@
-/* Copyright 2018 Carlos Filoteo
- *
- * 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 "hvp.c"
-
-#define LT3_ESC LT(3, KC_ESC)
-#define LT4_TAB LT(5, KC_TAB)
-#define LT2 LT(2, KC_LEFT_CURLY_BRACE)
-#define LT1 LT(1, KC_RIGHT_CURLY_BRACE)
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
-[0] = LAYOUT(
- LT4_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,
- LT3_ESC, LG_A, LA_S, LS_D, LC_F, LT(4,KC_G), RC_H, RS_J, RA_K, RG_L, TD(TD1), TD(TD2),
- KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, TD(TD3), SC_SENT,
- SC_LCPO, KC_RPRN, KC_LGUI, KC_LALT, LT2, KC_SPC, LT1, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT
-),
-
-[1] = LAYOUT( /* Right */
- KC_TILDE, KC_EXCLAIM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC,
- KC_DELETE, KC_LGUI, KC_LALT, KC_LSFT, KC_LCTL, XXXXXXX, KC_MINS, KC_EQL, KC_LCBR, KC_RCBR, KC_PIPE, KC_GRV,
- _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_UNDS, KC_PLUS, KC_LBRC, KC_RBRC, KC_BSLS, KC_TILD,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
-),
-
-[2] = LAYOUT( /* Left */
- KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC,
- KC_DELETE, KC_LGUI, KC_LALT, KC_LSFT, KC_LCTL, XXXXXXX, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, XXXXXXX, XXXXXXX,
- _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_HOME, KC_PGDN, KC_PGUP, KC_END, XXXXXXX, XXXXXXX,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
-),
-
-[3] = LAYOUT( /* 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_LGUI, KC_LALT, KC_LSFT, KC_LCTL, XXXXXXX, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, _______, KC_PSCR,
- _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_HOME, KC_PGDN, KC_PGUP, KC_END, _______, _______,
- _______, _______, _______, _______, KC_MUTE, KC_MPLY, KC_MSTP, KC_MPRV, KC_VOLD, KC_VOLU, KC_MNXT
-),
-
-[4] = LAYOUT( /* G */
- _______, LGUI(KC_1), LGUI(KC_2), LGUI(KC_3), LGUI(KC_4), LGUI(KC_5), LGUI(KC_6), LGUI(KC_7), KC_7, KC_8, KC_9, KC_BSPC,
- _______, _______, _______, _______, _______, _______, _______, XXXXXXX, KC_4, KC_5, KC_6, KC_0,
- _______, _______, _______, _______, _______, _______, XXXXXXX, KC_0, KC_1, KC_2, KC_3, _______,
- QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
-),
-
-[5] = LAYOUT( /* Tab */
- _______, G(S(KC_1)), G(S(KC_2)), G(S(KC_3)), G(S(KC_4)), G(S(KC_5)), G(S(KC_6)), G(S(KC_7)), G(S(KC_8)), G(S(KC_9)), G(S(KC_0)), _______,
- RGB_TOG, RGB_MOD, RGB_M_P, RGB_HUD, RGB_HUI, _______, _______, _______, _______, _______, _______, _______,
- KC_PSCR, _______, RGB_RMOD, RGB_SAD, RGB_SAI, _______, _______, _______, _______, _______, _______, KC_CAPS,
- QK_BOOT, _______, RGB_VAD, RGB_VAI, _______, _______, _______, _______, _______, _______, KC_NUM
-),
-};
diff --git a/keyboards/keyhive/ut472/keymaps/hvp/readme.md b/keyboards/keyhive/ut472/keymaps/hvp/readme.md
deleted file mode 100644
index a249201ded..0000000000
--- a/keyboards/keyhive/ut472/keymaps/hvp/readme.md
+++ /dev/null
@@ -1,10 +0,0 @@
-Keyboard: UT47.2
-Keys: 47key staggered 40% keyboard
-Layout: Swedish characters on main layer using tap dance. Built for Eurkey keyboard layout.
-Flash instructions: Flash using dfu, will req the hvp user space to compile.
-
-> make ut472:hvp:dfu
-
-Links:
-Github - https://github.com/ai03-2725/UT47.2
-Eurkey layout - https://eurkey.steffen.bruentjen.eu/
diff --git a/keyboards/keyhive/ut472/keymaps/hvp/rules.mk b/keyboards/keyhive/ut472/keymaps/hvp/rules.mk
deleted file mode 100644
index 1ba2fa8fbe..0000000000
--- a/keyboards/keyhive/ut472/keymaps/hvp/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-TAP_DANCE_ENABLE = yes \ No newline at end of file
diff --git a/keyboards/kikoslab/kl90/config.h b/keyboards/kikoslab/kl90/config.h
deleted file mode 100644
index 7f9b0b12d4..0000000000
--- a/keyboards/kikoslab/kl90/config.h
+++ /dev/null
@@ -1,21 +0,0 @@
-/*
-Copyright 2021 Swiftrax <swiftrax@gmail.com>
-
-This program is free software: you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program. If not, see <http://www.gnu.org/licenses/>.
-*/
-
-#pragma once
-
-/*EEPROM for via*/
-#define DYNAMIC_KEYMAP_LAYER_COUNT 3
diff --git a/keyboards/kinesis/keymaps/ericgebhart/keymap.c b/keyboards/kinesis/keymaps/ericgebhart/keymap.c
deleted file mode 100644
index c534fe3c6d..0000000000
--- a/keyboards/kinesis/keymaps/ericgebhart/keymap.c
+++ /dev/null
@@ -1,18 +0,0 @@
-/*
- Copyright 2018-2022 Eric Gebhart <e.a.gebhart@gmail.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/>.
-*/
-
-// See: users/ericgebhart.
diff --git a/keyboards/kinesis/keymaps/ericgebhart/readme.md b/keyboards/kinesis/keymaps/ericgebhart/readme.md
deleted file mode 100644
index 3a47968596..0000000000
--- a/keyboards/kinesis/keymaps/ericgebhart/readme.md
+++ /dev/null
@@ -1,5 +0,0 @@
-Overview
-========
-
-These are my keymaps. There isn't much here. Go take a look at my Userspace readme.
-That's where all the code is.
diff --git a/keyboards/kinesis/keymaps/ericgebhart/rules.mk b/keyboards/kinesis/keymaps/ericgebhart/rules.mk
deleted file mode 100644
index dd62550343..0000000000
--- a/keyboards/kinesis/keymaps/ericgebhart/rules.mk
+++ /dev/null
@@ -1,15 +0,0 @@
-# Build Options
-# change yes to no to disable
-#
-BOOTMAGIC_ENABLE = no # Enable Bootmagic Lite
-MOUSEKEY_ENABLE = yes # Mouse keys
-EXTRAKEY_ENABLE = yes # Audio control and System control
-CONSOLE_ENABLE = no # Console for debug
-COMMAND_ENABLE = yes # Commands for debug and configuration
-NKRO_ENABLE = yes # Enable N-Key Rollover
-BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
-MIDI_ENABLE = no # MIDI controls
-AUDIO_ENABLE = no # Audio output
-UNICODE_ENABLE = no # Unicode
-RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight.
-SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
diff --git a/keyboards/kingly_keys/ave/ortho/keymaps/default/keymap.c b/keyboards/kingly_keys/ave/ortho/keymaps/default/keymap.c
index c8dbb6c18d..7c0dc92812 100644
--- a/keyboards/kingly_keys/ave/ortho/keymaps/default/keymap.c
+++ b/keyboards/kingly_keys/ave/ortho/keymaps/default/keymap.c
@@ -217,7 +217,7 @@ void keyboard_post_init_user(void) {
rgblight_sethsv_noeeprom(50, 255, 100);
rgblight_mode_noeeprom(RGBLIGHT_EFFECT_BREATHING + 2);
// Init the second LED to a static color:
- setrgb(225, 185, 0, (LED_TYPE *)&led[1]);
+ setrgb(225, 185, 0, (rgb_led_t *)&led[1]);
rgblight_set();
#endif // RGBLIGHT_ENABLE
}
@@ -232,7 +232,7 @@ layer_state_t layer_state_set_user(layer_state_t state){
if (layer_state_cmp(state, 3)) {
led1r = 200;
}
- setrgb(led1r, led1g, led1b, (LED_TYPE *)&led[1]);
+ setrgb(led1r, led1g, led1b, (rgb_led_t *)&led[1]);
rgblight_set();
#endif //RGBLIGHT_ENABLE
return state;
diff --git a/keyboards/kingly_keys/ave/staggered/keymaps/default/keymap.c b/keyboards/kingly_keys/ave/staggered/keymaps/default/keymap.c
index 4a56915ae5..8c5033302c 100644
--- a/keyboards/kingly_keys/ave/staggered/keymaps/default/keymap.c
+++ b/keyboards/kingly_keys/ave/staggered/keymaps/default/keymap.c
@@ -217,7 +217,7 @@ void keyboard_post_init_user(void) {
rgblight_sethsv_noeeprom(50, 255, 100);
rgblight_mode_noeeprom(RGBLIGHT_EFFECT_BREATHING + 2);
// Init the second LED to a static color:
- setrgb(225, 185, 0, (LED_TYPE *)&led[1]);
+ setrgb(225, 185, 0, (rgb_led_t *)&led[1]);
rgblight_set();
#endif // RGBLIGHT_ENABLE
}
@@ -232,7 +232,7 @@ layer_state_t layer_state_set_user(layer_state_t state){
if (layer_state_cmp(state, 3)) {
led1r = 200;
}
- setrgb(led1r, led1g, led1b, (LED_TYPE *)&led[1]);
+ setrgb(led1r, led1g, led1b, (rgb_led_t *)&led[1]);
rgblight_set();
#endif //RGBLIGHT_ENABLE
return state;
diff --git a/keyboards/kingly_keys/little_foot/keymaps/yanfali/config.h b/keyboards/kingly_keys/little_foot/keymaps/yanfali/config.h
deleted file mode 100644
index 72892851e0..0000000000
--- a/keyboards/kingly_keys/little_foot/keymaps/yanfali/config.h
+++ /dev/null
@@ -1,10 +0,0 @@
-#pragma once
-
-#define TAPPING_TERM 150
-#define RETRO_TAPPING
-
-#ifdef AUDIO_ENABLE
- #define STARTUP_SONG SONG(NOCTURNE_OP_9_NO_1)
- #define AUDIO_CLICKY
- #define AUDIO_CLICKY_FREQ_RANDOMNESS 0.8f
-#endif
diff --git a/keyboards/kingly_keys/little_foot/keymaps/yanfali/keymap.c b/keyboards/kingly_keys/little_foot/keymaps/yanfali/keymap.c
deleted file mode 100644
index 44b561d642..0000000000
--- a/keyboards/kingly_keys/little_foot/keymaps/yanfali/keymap.c
+++ /dev/null
@@ -1,40 +0,0 @@
-
-#include QMK_KEYBOARD_H
-
-// Layer names
-enum{
- // - Base layer:
- _BASE,
- // - Symbols, numbers, and functions:
- _FN,
- // - Alternate Function layer:
- _LN
-};
-
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
- [_BASE] = LAYOUT_split_space_base(
- KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0,
- KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P,
- LCTL_T(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,
- LSFT_T(KC_ESC), LGUI_T(KC_SPACE), LT(_LN, KC_BSPC), LT(_FN, KC_ENT)
- ),
-
- [_FN] = LAYOUT_split_space_base(
- LT(_LN, KC_ESC), _______, _______, _______, _______, _______, _______, _______, KC_MINS, QK_BOOT,
- KC_TAB, _______, _______, _______, _______, _______, _______, _______, LSFT(KC_MINS), KC_BSLS,
- KC_LSFT, _______, _______, _______, _______, _______, _______, KC_LBRC, KC_RBRC, KC_QUOT,
- AU_TOGG, CK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, KC_LALT, RGB_MOD, _______
- ),
-
- [_LN] = LAYOUT_split_space_base(
- _______, KC_F1, KC_F2, KC_F3, _______, _______, _______, KC_7, KC_8, KC_9,
- _______, KC_F4, KC_F5, KC_F6, _______, _______, _______, KC_4, KC_5, KC_6,
- _______, KC_F7, KC_F8, KC_F9, _______, _______, _______, KC_1, KC_2, KC_3,
- _______, KC_F10, KC_F11, KC_F12, _______, _______, _______, _______, KC_0, _______,
- _______, _______, _______, _______
- )
-};
diff --git a/keyboards/kingly_keys/little_foot/keymaps/yanfali/rules.mk b/keyboards/kingly_keys/little_foot/keymaps/yanfali/rules.mk
deleted file mode 100644
index 9cd1546348..0000000000
--- a/keyboards/kingly_keys/little_foot/keymaps/yanfali/rules.mk
+++ /dev/null
@@ -1,4 +0,0 @@
-CONVERT_TO=proton_c
-CONSOLE_ENABLE = yes # Console for debug
-COMMAND_ENABLE = yes # Commands for debug and configuration
-AUDIO_ENABLE = yes
diff --git a/keyboards/kingly_keys/romac/keymaps/brandonschlack/keymap.c b/keyboards/kingly_keys/romac/keymaps/brandonschlack/keymap.c
deleted file mode 100644
index 670c3e16c7..0000000000
--- a/keyboards/kingly_keys/romac/keymaps/brandonschlack/keymap.c
+++ /dev/null
@@ -1,67 +0,0 @@
-/* Copyright 2019 Brandon Schlack
- *
- * 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 "brandonschlack.h"
-
-enum romac_layers {
- NUMPAD = 0,
- FN,
- NUMLOCK,
- KARABINER
-};
-
-#define DF_NMPD DF(NUMPAD)
-#define DF_NMLK DF(NUMLOCK)
-#undef DF_KBNR
-#define DF_KBNR DF(KARABINER)
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
- [NUMPAD] = LAYOUT(
- KC_P7, KC_P8, KC_P9,
- KC_P4, KC_P5, KC_P6,
- KC_P1, KC_P2, KC_P3,
- OSL(FN), KC_P0, KC_PDOT
- ),
-
- [FN] = LAYOUT(
- KC_PSLS, KC_PAST, KC_BSPC,
- KC_TRNS, KC_TRNS, KC_PMNS,
- DF_NMLK, DF_KBNR, KC_PPLS,
- KC_TRNS, TG_ADJT, KC_PENT
- ),
-
- [NUMLOCK] = LAYOUT(
- KC_HOME, KC_UP, KC_PGUP,
- KC_LEFT, CMD_TAB, KC_RGHT,
- KC_END, KC_DOWN, KC_PGDN,
- DF_NMPD, KC_INS, KC_DEL
- ),
-
- [KARABINER] = LAYOUT(
- KC_F13, KC_F14, KC_F15,
- KC_F16, KC_F17, KC_F18,
- KC_F19, KC_F20, KC_F21,
- LT(_ADJUST,KC_F22), KC_F23, KC_F24
- ),
-
- [_ADJUST] = LAYOUT(
- QM_MAKE, EE_CLR, XXXXXXX,
- XXXXXXX, XXXXXXX, XXXXXXX,
- DF_NMPD, DF_NMLK, DF_KBNR,
- KC_TRNS, XXXXXXX, XXXXXXX
- )
-};
diff --git a/keyboards/kingly_keys/romac/keymaps/brandonschlack/rules.mk b/keyboards/kingly_keys/romac/keymaps/brandonschlack/rules.mk
deleted file mode 100644
index 719dbee401..0000000000
--- a/keyboards/kingly_keys/romac/keymaps/brandonschlack/rules.mk
+++ /dev/null
@@ -1,8 +0,0 @@
-# Use macropad-specific defines, layers, functions. Flash bootloader with QM_MAKE
-IS_MACROPAD = yes
-
-# Use dfu bootloader for Elite-C
-BOOTLOADER = atmel-dfu
-
-# Build Options
-# TAP_DANCE_ENABLE = yes # Use tap dance
diff --git a/keyboards/kingly_keys/romac/keymaps/jarred/keymap.c b/keyboards/kingly_keys/romac/keymaps/jarred/keymap.c
deleted file mode 100644
index 0ab492fa43..0000000000
--- a/keyboards/kingly_keys/romac/keymaps/jarred/keymap.c
+++ /dev/null
@@ -1,37 +0,0 @@
-/* Copyright 2019 Jarred Steenvoorden
- *
- * 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
-
-#define _BASE 0
-#define _FN1 1
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
- [_BASE] = LAYOUT(
- KC_7, KC_8, KC_9,
- KC_4, KC_5, KC_6,
- KC_1, KC_2, KC_3,
- LT(_FN1, KC_0), KC_ENT, KC_DOT
- ),
-
- [_FN1] = LAYOUT(
- KC_HOME, KC_UP , KC_PGUP ,
- KC_LEFT, KC_DOWN, KC_RIGHT,
- KC_END , KC_BSPC, KC_PGDN ,
- KC_TRNS, XXXXXXX, KC_DEL
- )
-};
diff --git a/keyboards/kingly_keys/romac/keymaps/stanrc85/config.h b/keyboards/kingly_keys/romac/keymaps/stanrc85/config.h
deleted file mode 100644
index c2bd34ed27..0000000000
--- a/keyboards/kingly_keys/romac/keymaps/stanrc85/config.h
+++ /dev/null
@@ -1,17 +0,0 @@
-#undef RGBLED_NUM
-#define RGBLED_NUM 16
-
-#define WS2812_DI_PIN F4
- #define RGBLIGHT_HUE_STEP 8
- #define RGBLIGHT_SAT_STEP 8
- #define RGBLIGHT_VAL_STEP 8
-#define RGBLIGHT_EFFECT_BREATHING
-#define RGBLIGHT_EFFECT_RAINBOW_MOOD
-#define RGBLIGHT_EFFECT_RAINBOW_SWIRL
-#define RGBLIGHT_EFFECT_SNAKE
-#define RGBLIGHT_EFFECT_KNIGHT
-#define RGBLIGHT_EFFECT_CHRISTMAS
-#define RGBLIGHT_EFFECT_STATIC_GRADIENT
-#define RGBLIGHT_EFFECT_RGB_TEST
-#define RGBLIGHT_EFFECT_ALTERNATING
-#define RGBLIGHT_EFFECT_TWINKLE
diff --git a/keyboards/kingly_keys/romac/keymaps/stanrc85/keymap.c b/keyboards/kingly_keys/romac/keymaps/stanrc85/keymap.c
deleted file mode 100644
index 1f19882d48..0000000000
--- a/keyboards/kingly_keys/romac/keymaps/stanrc85/keymap.c
+++ /dev/null
@@ -1,78 +0,0 @@
-/* Copyright 2019 Stanrc85
- *
- * 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 "stanrc85.h"
-
-enum keys {
- U_LAYR = SAFE_RANGE,
- D_LAYR
-};
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [_NUMPAD] = LAYOUT(
- KC_7, KC_8, KC_9,
- KC_4, KC_5, KC_6,
- KC_1, KC_2, KC_3,
- U_LAYR, KC_0, KC_ENT),
-
- [_NAVKEY] = LAYOUT(
- KC_HOME, KC_INS, KC_PGUP,
- KC_END, KC_UP, KC_PGDN,
- KC_LEFT, KC_DOWN, KC_RGHT,
- U_LAYR, TD_TWIN, D_LAYR),
-
- [_MEDIA] = LAYOUT(
- KC_MUTE, KC_VOLD, KC_VOLU,
- CA_QUOT, KC_MPLY, CA_SCLN,
- CA_COPY, CA_PSTE, KC_NO,
- U_LAYR, KC_NO, D_LAYR),
-
- [_RGB] = LAYOUT(
- RGB_SAI, RGB_VAI, RGB_HUI,
- RGB_SAD, RGB_VAD, RGB_HUD,
- RGB_TOG, RGB_MOD, KC_NO,
- U_LAYR, KC_NO, D_LAYR),
-
- [_FN1PAD] = LAYOUT(
- KC_NO, KC_NO, KC_NO,
- KC_NO, KC_NO, QK_BOOT,
- KC_NO, KC_NO, KC_MAKE,
- KC_NO, KC_LSFT, D_LAYR)
-};
-
-bool process_record_kb(uint16_t keycode, keyrecord_t *record) {
- keypos_t key;
- uint8_t current_layer;
- uint8_t next_layer;
- switch (keycode) {
- case U_LAYR: //cycles up the layers
- if (!record->event.pressed) {
- current_layer = layer_switch_get_layer(key);
- next_layer = current_layer+1;
- layer_move(next_layer);
- }
- break;
- case D_LAYR: //cycles down the layers
- if (!record->event.pressed) {
- current_layer = layer_switch_get_layer(key);
- next_layer = current_layer-1;
- layer_move(next_layer);
- }
- break;
- }
- return true;
-};
diff --git a/keyboards/kingly_keys/romac/keymaps/stanrc85/rules.mk b/keyboards/kingly_keys/romac/keymaps/stanrc85/rules.mk
deleted file mode 100644
index 5e60b284cc..0000000000
--- a/keyboards/kingly_keys/romac/keymaps/stanrc85/rules.mk
+++ /dev/null
@@ -1,3 +0,0 @@
-RGBLIGHT_ENABLE = yes
-VIA_ENABLE = yes
-LTO_ENABLE = yes
diff --git a/keyboards/kiwikey/wanderland/keymaps/stanrc85/config.h b/keyboards/kiwikey/wanderland/keymaps/stanrc85/config.h
deleted file mode 100644
index 9a29d5b8e4..0000000000
--- a/keyboards/kiwikey/wanderland/keymaps/stanrc85/config.h
+++ /dev/null
@@ -1,18 +0,0 @@
- /* Copyright 2021 Stanrc85
- *
- * 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 OLED_FADE_OUT
diff --git a/keyboards/kiwikey/wanderland/keymaps/stanrc85/keymap.c b/keyboards/kiwikey/wanderland/keymaps/stanrc85/keymap.c
deleted file mode 100644
index 5c84cc1e99..0000000000
--- a/keyboards/kiwikey/wanderland/keymaps/stanrc85/keymap.c
+++ /dev/null
@@ -1,87 +0,0 @@
-/* Copyright 2021 Stanrc85
- *
- * 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 "stanrc85.h"
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [_QWERTY] = LAYOUT_alice(
- KC_ESC, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC,
- KC_PGUP, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS,
- KC_PGDN, KC_CTLE, 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_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(_FN2_60),
- KC_LCTL, KC_LALT, LT_BPCF, KC_LGUI, LT_SPCF, TD_TWIN, TD_TCTL
- ),
-
- [_DEFAULT] = LAYOUT_alice(
- KC_ESC, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC,
- KC_PGUP, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS,
- KC_PGDN, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
- _______, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(_FN2_60),
- KC_LCTL, KC_LALT, KC_SPC, MO(_FN1_60), KC_SPC, KC_RALT, KC_RCTL
- ),
-
- [_FN1_60] = LAYOUT_alice(
- _______, KC_TILD, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL,
- _______, _______, _______, CA_QUOT, _______, CA_SCLN, KC_VOLU, KC_PGUP, KC_BSPC, KC_UP, KC_DEL, KC_PSCR, _______, _______, KC_INS,
- _______, KC_CAPS, _______, _______, KC_LCTL, KC_LSFT, KC_VOLD, KC_PGDN, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______,
- _______, _______, KC_RDP, _______, _______, _______, _______, _______, _______, KC_WBAK, KC_WFWD, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______
- ),
-
- [_FN2_60] = LAYOUT_alice(
- BL_TOGG, RGB_TOG, RGB_MOD, RGB_VAD, RGB_VAI, RGB_SAI, RGB_HUD, RGB_HUI, _______, _______, _______, _______, _______, _______, _______,
- BL_UP, VK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, QK_BOOT,
- BL_DOWN, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MAKE,
- _______, _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, TG(_DEFAULT)
- )
-};
-
-#ifdef OLED_ENABLE
-bool oled_task_user(void) {
- static const char PROGMEM qmk_logo[] = {
- 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8A, 0x8B, 0x8C, 0x8D, 0x8E, 0x8F, 0x90, 0x91, 0x92, 0x93, 0x94,
- 0xA0, 0xA1, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7, 0xA8, 0xA9, 0xAA, 0xAB, 0xAC, 0xAD, 0xAE, 0xAF, 0xB0, 0xB1, 0xB2, 0xB3, 0xB4,
- 0xC0, 0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7, 0xC8, 0xC9, 0xCA, 0xCB, 0xCC, 0xCD, 0xCE, 0xCF, 0xD0, 0xD1, 0xD2, 0xD3, 0xD4, 0x00
- };
-
- switch (get_highest_layer(layer_state)) {
- case _QWERTY:
- oled_write_P(qmk_logo, false);
- break;
- case _DEFAULT:
- oled_write_ln_P(PSTR(" Layer: Game\n\n"), false);
- break;
- case _FN1_60:
- oled_write_ln_P(PSTR(" Layer: FN\n\n"), false);
- break;
- case _FN2_60:
- oled_write_ln_P(PSTR(" Layer: RGB\n\n"), false);
- break;
- default:
- // Or use the write_ln shortcut over adding '\n' to the end of your string
- oled_write_ln_P(PSTR("Undefined"), false);
- }
-
- // Host Keyboard LED Status
- led_t led_state = host_keyboard_led_state();
- oled_write_P(led_state.num_lock ? PSTR("NUM ") : PSTR(" "), false);
- oled_write_P(led_state.caps_lock ? PSTR("CAP ") : PSTR(" "), false);
- oled_write_P(led_state.scroll_lock ? PSTR("SCR ") : PSTR(" "), false);
-
- return false;
-}
-#endif
diff --git a/keyboards/kiwikey/wanderland/keymaps/stanrc85/rules.mk b/keyboards/kiwikey/wanderland/keymaps/stanrc85/rules.mk
deleted file mode 100644
index dd68e9d3b0..0000000000
--- a/keyboards/kiwikey/wanderland/keymaps/stanrc85/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-OLED_ENABLE = yes
diff --git a/keyboards/knobgoblin/keymaps/moults31/keymap.c b/keyboards/knobgoblin/keymaps/moults31/keymap.c
deleted file mode 100644
index af3ffea8b6..0000000000
--- a/keyboards/knobgoblin/keymaps/moults31/keymap.c
+++ /dev/null
@@ -1,171 +0,0 @@
-/* Copyright 2020 MrT1ddl3s
- *
- * 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 "moults31.h"
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
- [0] = LAYOUT_ortho(
- KC_NUM, KC_PSLS, KC_PAST, KC_PMNS,
- KC_P7, KC_P8, KC_P9, KC_PPLS,
- KC_P4, KC_P5, KC_P6, KC_PPLS,
- KC_MPLY, KC_P1, KC_P2, KC_P3, KC_PENT,
- KC_MUTE, MO(10), KC_P0, KC_PDOT, KC_PENT
- ),
-
- [1] = LAYOUT_ortho(
- KC_ESC, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_HOME, KC_TRNS, KC_PGUP, KC_TRNS,
- KC_END , KC_UP, KC_PGDN, KC_TRNS,
- KC_TRNS, KC_LEFT, KC_DOWN, KC_RIGHT, KC_SPC,
- KC_TRNS, MO(10), KC_BSPC, KC_DEL, KC_TRNS
- ),
-
- [2] = LAYOUT_ortho(
- KC_2, KC_TRNS, KC_TRNS, KC_TRNS,
- M_VSC_MVEDTRPRVGRP, M_VSC_MVEDTRNXTGRP, KC_TRNS, KC_TRNS,
- M_VSC_EDGRPPRV, M_VSC_EDGRPNXT, KC_TRNS, KC_TRNS,
- KC_TRNS, M_VSC_SIDEBARFOCUS, M_VSC_SIDEBARCLOSE, M_VSC_TERMFOCUS, KC_TRNS,
- M_VSC_FILECLOSE, MO(10), KC_TRNS, KC_TRNS, KC_TRNS
- ),
-
- [3] = LAYOUT_ortho(
- KC_3, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, M_GDB_PAUSE,
- M_GDB_RESTART, M_GDB_STOP, KC_TRNS, M_GDB_PAUSE,
- M_VSC_DBGCNSLFOCUS, M_GDB_STEPOVER, M_GDB_STEPIN, M_GDB_STEPOUT, M_GDB_PLAY,
- KC_TRNS, MO(10), KC_TRNS, KC_TRNS, M_GDB_PLAY
- ),
-
- [4] = LAYOUT_ortho(
- KC_4, KC_TRNS, KC_TRNS, KC_TRNS,
- M_OBS_VOICE_UNMUTE, M_OBS_MOOSIC_MUTE, M_OBS_MOOSIC_UNMUTE, KC_TRNS,
- M_OBS_DSKT_MUTE, M_OBS_DSKT_UNMUTE, M_OBS_VOICE_MUTE, KC_TRNS,
- KC_TRNS, M_OBS_BRB, M_OBS_GAME, M_OBS_JSTCHT, KC_TRNS,
- KC_TRNS, MO(10), KC_TRNS, KC_TRNS, KC_TRNS
- ),
-
- [5] = LAYOUT_ortho(
- KC_5, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, MO(10), KC_TRNS, KC_TRNS, KC_TRNS
- ),
-
- [6] = LAYOUT_ortho(
- KC_6, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, MO(10), KC_TRNS, KC_TRNS, KC_TRNS
- ),
-
- [7] = LAYOUT_ortho(
- KC_7, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, MO(10), KC_TRNS, KC_TRNS, KC_TRNS
- ),
-
- [8] = LAYOUT_ortho(
- KC_8, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, MO(10), KC_TRNS, KC_TRNS, KC_TRNS
- ),
-
- [9] = LAYOUT_ortho(
- KC_9, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, MO(10), KC_TRNS, KC_TRNS, KC_TRNS
- ),
-
- [10] = LAYOUT_ortho(
- QK_BOOT, KC_TRNS, KC_TRNS, KC_TRNS,
- TO(7), TO(8), TO(9), KC_TRNS,
- TO(4), TO(5), TO(6), KC_TRNS,
- KC_TRNS, TO(1), TO(2), TO(3), KC_TRNS,
- KC_TRNS, KC_TRNS, TO(0), KC_TRNS, KC_TRNS
- ),
-
-
-
-};
-
-/* byte map for the goblin logo, knob goblin text, and level text */
-static void render_goblin_logo(void) {
- static const char PROGMEM my_logo[] = {
- 0x00, 0xe0, 0x40, 0x80, 0x80, 0x00, 0x00, 0x80, 0x80, 0xc0, 0x60, 0x20, 0x10, 0x08, 0x08, 0x08,
- 0x08, 0x08, 0x08, 0x10, 0x20, 0x60, 0xc0, 0x80, 0x80, 0x00, 0x00, 0x80, 0x80, 0x40, 0xe0, 0x00,
- 0x00, 0x03, 0x06, 0x3c, 0x49, 0x91, 0x21, 0x00, 0x40, 0x80, 0x80, 0x80, 0x80, 0x00, 0x60, 0x00,
- 0x00, 0x60, 0x00, 0x80, 0x80, 0x80, 0x80, 0x40, 0x00, 0x21, 0x91, 0x49, 0x3c, 0x06, 0x03, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x1f, 0x60, 0x40, 0xc0, 0x06, 0x0e, 0x0f, 0x67, 0x50, 0xc0,
- 0xc0, 0x50, 0x67, 0x0f, 0x0e, 0x06, 0xc0, 0x40, 0x60, 0x1f, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x7b, 0xc7, 0x8e, 0x1e, 0x3e, 0x3e,
- 0x3e, 0x3e, 0x1e, 0x8e, 0xc7, 0x7b, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x06, 0x04,
- 0x04, 0x06, 0x03, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x03, 0x03, 0x03, 0x03, 0x03, 0x83, 0x03, 0x03, 0x03, 0x83, 0x03, 0x83, 0x03, 0x03, 0x03, 0x83,
- 0x03, 0x03, 0x83, 0x83, 0x83, 0x03, 0x03, 0x83, 0x83, 0x83, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x04, 0x06, 0x09, 0x10, 0x00, 0x1f, 0x03, 0x06, 0x0c, 0x1f,
- 0x00, 0x0f, 0x10, 0x10, 0x10, 0x0f, 0x00, 0x1f, 0x12, 0x12, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x78, 0xfc, 0x84, 0xa4, 0xa4, 0x68, 0x00, 0x78, 0x84, 0x84, 0x84, 0x78, 0x00, 0xfc, 0x94,
- 0x94, 0x68, 0x00, 0xfc, 0x80, 0x80, 0x80, 0x00, 0xfc, 0x00, 0xfc, 0x18, 0x30, 0x60, 0xfc, 0x00,
- 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60,
- 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60,
- 0x00, 0x00, 0x00, 0xf0, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x50, 0x50, 0x50, 0x00, 0xf0, 0x00, 0x00,
- 0x00, 0xf0, 0x00, 0xf0, 0x50, 0x50, 0x50, 0x00, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x03, 0x02, 0x02, 0x02, 0x00, 0x03, 0x02, 0x02, 0x02, 0x00, 0x00, 0x01, 0x02,
- 0x01, 0x00, 0x00, 0x03, 0x02, 0x02, 0x02, 0x00, 0x03, 0x02, 0x02, 0x02, 0x00, 0x00, 0x00, 0x00
- };
- oled_write_raw_P(my_logo, sizeof(my_logo));
-}
-
-bool oled_task_user(void) {
-
- render_goblin_logo();
-
- oled_set_cursor(0,11);
-
- switch (get_highest_layer(layer_state)) {
- case 0:
- oled_write_P(PSTR(" NUM\n"), false);
- break;
- case 1:
- oled_write_P(PSTR(" NAV\n"), false);
- break;
- case 2:
- oled_write_P(PSTR(" CODE\n"), false);
- break;
- case 3:
- oled_write_P(PSTR(" GDB\n"), false);
- break;
- case 4:
- oled_write_P(PSTR(" OBS\n"), false);
- break;
- default:
- oled_write_P(PSTR(" NONE\n"), false);
- break;
- }
- return false;
-}
diff --git a/keyboards/knobgoblin/keymaps/moults31/readme.md b/keyboards/knobgoblin/keymaps/moults31/readme.md
deleted file mode 100644
index f137c78c3a..0000000000
--- a/keyboards/knobgoblin/keymaps/moults31/readme.md
+++ /dev/null
@@ -1,3 +0,0 @@
-# Ortho Knob Goblin Layout
-
-Via functionality for the Knob Goblin. Ortho layout. \ No newline at end of file
diff --git a/keyboards/knobgoblin/keymaps/moults31/rules.mk b/keyboards/knobgoblin/keymaps/moults31/rules.mk
deleted file mode 100644
index 533af592e5..0000000000
--- a/keyboards/knobgoblin/keymaps/moults31/rules.mk
+++ /dev/null
@@ -1,3 +0,0 @@
-VIA_ENABLE = YES
-LTO_ENABLE = YES
-BOOTLOADER = atmel-dfu
diff --git a/keyboards/knops/mini/keymaps/mverteuil/config.h b/keyboards/knops/mini/keymaps/mverteuil/config.h
deleted file mode 100644
index 584296cfaa..0000000000
--- a/keyboards/knops/mini/keymaps/mverteuil/config.h
+++ /dev/null
@@ -1,25 +0,0 @@
-/* Copyright 2017 Pawnerd, 2019 Matthew de Verteuil
- *
- * 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
-
-#if defined(AUDIO_ENABLE)
- #define AUDIO_CLICKY
- #define AUDIO_PIN_ALT B5
- #define AUDIO_PIN C6
- #define STARTUP_SONG SONG(ZELDA_PUZZLE)
- #define GOODBYE_SONG SONG(COIN_SOUND)
-#endif
diff --git a/keyboards/knops/mini/keymaps/mverteuil/keymap.c b/keyboards/knops/mini/keymaps/mverteuil/keymap.c
deleted file mode 100644
index 2e8d678f26..0000000000
--- a/keyboards/knops/mini/keymaps/mverteuil/keymap.c
+++ /dev/null
@@ -1,306 +0,0 @@
-#include QMK_KEYBOARD_H
-
-#define MAXIMIZ A(G(KC_F))
-#define NXTDSPL C(A(G(KC_RIGHT)))
-#define BTMHALF A(G(KC_DOWN))
-#define TOPHALF A(G(KC_UP))
-#define NXTTHRD SS_LCTL(SS_LALT(SS_TAP(X_RIGHT)))
-#define PRVTHRD C(A(KC_LEFT))
-
-#define LT_MSTP LT(_LAYER_SELECT, KC_MSTP)
-#define LT_ESC LT(_LAYER_SELECT, KC_ESC)
-#define LT_NXTH TD(TD_SPEC)
-
-#define writeLayerLedState(layer) writePin(layer)
-#define layer_led_0_off B6, false
-#define layer_led_1_off D5, true
-#define layer_led_2_off B0, false
-#define layer_led_0_on B6, true
-#define layer_led_1_on D5, false
-#define layer_led_2_on B0, true
-
-void led_init_animation(void);
-void led_set_layer(int layer);
-void td_spectacles_finish(tap_dance_state_t *state, void *user_data);
-void td_spectacles_reset(tap_dance_state_t *state, void *user_data);
-
-enum layer_led_mode {
- ALL_LAYERS_OFF = -1,
- LAYER_0,
- LAYER_1,
- LAYER_2,
- LAYER_3,
- LAYER_4,
- LAYER_5,
- ALL_LAYERS_ON,
-};
-
-enum mini_layers {
- _MEDIA,
- _COPYPASTA,
- _SPECTACLES,
- _LAYER_3,
- _LAYER_4,
- _LAYER_5,
- _LAYER_SELECT,
-};
-
-enum { TD_SPEC = 0 };
-
-tap_dance_action_t tap_dance_actions[] = {
- /* Tap once for spectacles macro, hold for layer toggle */
- [TD_SPEC] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, td_spectacles_finish, td_spectacles_reset),
-};
-
-/*
- * Key Layout
- * _____ _____ _____
- * | | | | | |
- * | 1 | | 2 | | 3 |
- * |_____| |_____| |_____|
- * _____ _____ _____
- * | | | | | |
- * | 4 | | 5 | | 6 |
- * |_____| |_____| |_____|
- *
- * Hold 1 and:
- * - press 4, 5, or 6 to change layers
- * - press 3 to reset, or press and hold 3 to enter DFU programming mode
- *
- * If something prevents you from using the above to reprogram, you can hold 3 while powering on as a fallback.
- */
-
-/* clang-format off */
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- /*
- * Layer 0 (Media Keys)
- * _____ _____ _____
- * | | | | | |
- * |Stop | |VolUp| |Play |
- * |_____| |_____| |_____|
- * _____ _____ _____
- * | | | | | |
- * |Prev | |VolDn| |Next |
- * |_____| |_____| |_____|
- *
- */
- [_MEDIA] = LAYOUT(
- LT_MSTP, KC_VOLU, KC_MPLY,
- KC_MPRV, KC_VOLD, KC_MNXT
- ),
-
- /*
- * Layer 1 (Copy and Paste Macros)
- * _____ _____ _____
- * | | | | | |
- * | ESC | |Ctl+Z| |CSf+Z|
- * |_____| |_____| |_____|
- * _____ _____ _____
- * | | | | | |
- * |Ctl+X| |Ctl+C| |Ctl+V|
- * |_____| |_____| |_____|
- *
- */
-
- [_COPYPASTA] = LAYOUT(
- LT_ESC, C(KC_Z), C(S(KC_Z)),
- C(KC_X), C(KC_C), C(KC_V)
- ),
-
- /*
- * Layer 2 (Spectacles Macros)
- * _LT&_ _____ _____
- * | Win | | Win | | Win |
- * | Next| | Top | |Mximze
- * |_1/3_| |_1/2_| |_____|
- * _____ _____ _____
- * | Win | | Win | | Win |
- * | Prev| | Bot | | Next|
- * |_1/3_| |_1/2_| |Displ|
- *
- */
- [_SPECTACLES] = LAYOUT(
- LT_NXTH,TOPHALF,MAXIMIZ,
- PRVTHRD,BTMHALF,NXTDSPL
- ),
-
- /*
- * Layer 6 (Layer Select/Reset)
- * _____ _____ _____
- * | | | | | |
- * |None | |None | |Reset|
- * |_____| |_____| |_____|
- * _____ _____ _____
- * |Layer| |Layer| |Layer|
- * | 0 | | 1 | | 2 |
- * |_____| |_____| |_____|
- *
- * Layers 0, 1, and 2 have the top left button held to activate this layer.
- * Then press the specific layer to switch to it.
- *
- */
- [_LAYER_SELECT] = LAYOUT(
- _______, _______, QK_BOOT,
- TO(_MEDIA),TO(_COPYPASTA),TO(_SPECTACLES)
- )
-};
-/* clang-format on */
-
-/*
- * Knops Mini LED Numbers:
- * _____ _____ _____
- * | | | | | |
- * | 1 | | 2 | | 3 | <---
- * |_____| |_____| |_____| | These LEDs are called 'Switch LEDs'
- * _____ _____ _____ |----- To turn on/off these leds, use:
- * | | | | | | | set_switch_led( [1-6], [true/false]);
- * | 4 | | 5 | | 6 | <---
- * |_____| |_____| |_____|
- *
- * < 0 > < 1 > < 2 > <--- These front-LEDs are called 'Layer LEDs'
- * To turn on/off these leds, use:
- * set_layer_led( [0-2], [true/false] );
- */
-
-void set_switch_led(int ledId, bool state) {
- switch (ledId) {
- case 1:
- writePin(D7, state);
- break;
- case 2:
- writePin(readPin(B7) ? C6 : C7, state);
- break;
- case 3:
- writePin(D4, state);
- break;
- case 4:
- writePin(E6, state);
- break;
- case 5:
- writePin(B4, state);
- break;
- case 6:
- writePin(D6, state);
- break;
- }
-}
-
-void set_layer_led(int layerLedMode) {
- writeLayerLedState(layer_led_0_off);
- writeLayerLedState(layer_led_1_off);
- writeLayerLedState(layer_led_2_off);
-
- switch (layerLedMode) {
- case ALL_LAYERS_OFF:
- break;
- case LAYER_0:
- writeLayerLedState(layer_led_0_on);
- break;
- case LAYER_1:
- writeLayerLedState(layer_led_1_on);
- break;
- case LAYER_2:
- writeLayerLedState(layer_led_2_on);
- break;
- case LAYER_3:
- writeLayerLedState(layer_led_0_on);
- writeLayerLedState(layer_led_1_on);
- break;
- case LAYER_4:
- writeLayerLedState(layer_led_1_on);
- writeLayerLedState(layer_led_2_on);
- break;
- case LAYER_5:
- writeLayerLedState(layer_led_0_on);
- writeLayerLedState(layer_led_2_on);
- break;
- default:
- writeLayerLedState(layer_led_0_on);
- writeLayerLedState(layer_led_1_on);
- writeLayerLedState(layer_led_2_on);
- break;
- }
-}
-
-void led_init_animation(void) {
- for (int i = ALL_LAYERS_OFF; i <= ALL_LAYERS_ON; i++) {
- led_set_layer(i);
- }
-
- led_set_layer(LAYER_0);
-}
-
-/*
- * This function led_set_layer gets called when you switch between layers.
- * It allows you to turn on and off leds for each different layer and do
- * other cool stuff.
- */
-void led_set_layer(int layer) {
- switch (layer) {
- case ALL_LAYERS_OFF:
- set_switch_led(1, false);
- set_switch_led(2, false);
- set_switch_led(3, false);
- set_switch_led(4, false);
- set_switch_led(5, false);
- set_switch_led(6, false);
-
- case _LAYER_SELECT:
- set_switch_led(1, false);
- set_switch_led(2, false);
- set_switch_led(3, false);
- set_switch_led(4, true);
- set_switch_led(5, true);
- set_switch_led(6, true);
- break;
-
- default:
- set_switch_led(1, true);
- set_switch_led(2, true);
- set_switch_led(3, true);
- set_switch_led(4, true);
- set_switch_led(5, true);
- set_switch_led(6, true);
- break;
- }
-
- set_layer_led(layer);
-}
-
-/*
- * Prepare all LED ports for output
- */
-void led_init_ports_user(void) {
- setPinOutput(D7); // Switch 1 LED
- setPinOutput(C6); // Switch 2 LED Pin1
- setPinOutput(C7); // Switch 2 LED Pin2
- setPinOutput(D4); // Switch 3 LED
- setPinOutput(E6); // Switch 4 LED
- setPinOutput(B4); // Switch 5 LED
- setPinOutput(D6); // Switch 6 LED
- setPinOutput(D5); // Layer 0 LED
- setPinOutput(B6); // Layer 1 LED
- setPinOutput(B0); // Layer 2 LED
-}
-
-// Runs on layer change, no matter where the change was initiated
-layer_state_t layer_state_set_user(layer_state_t state) {
- set_layer_led(get_highest_layer(state));
- led_set_layer(get_highest_layer(state));
- return state;
-}
-
-void matrix_init_user(void) {
- led_init_ports_user();
- led_init_animation();
-}
-
-void td_spectacles_finish(tap_dance_state_t *state, void *user_data) {
- if (state->pressed) {
- layer_on(_LAYER_SELECT);
- } else {
- SEND_STRING(NXTTHRD);
- }
-}
-
-void td_spectacles_reset(tap_dance_state_t *state, void *user_data) { layer_off(_LAYER_SELECT); }
diff --git a/keyboards/knops/mini/keymaps/mverteuil/readme.md b/keyboards/knops/mini/keymaps/mverteuil/readme.md
deleted file mode 100644
index 46ea015832..0000000000
--- a/keyboards/knops/mini/keymaps/mverteuil/readme.md
+++ /dev/null
@@ -1 +0,0 @@
-# mverteuil does knops mini
diff --git a/keyboards/knops/mini/keymaps/mverteuil/rules.mk b/keyboards/knops/mini/keymaps/mverteuil/rules.mk
deleted file mode 100644
index 91a53d56ac..0000000000
--- a/keyboards/knops/mini/keymaps/mverteuil/rules.mk
+++ /dev/null
@@ -1,6 +0,0 @@
-BACKLIGHT_ENABLE = no
-CONSOLE_ENABLE = no
-TAP_DANCE_ENABLE = yes
-MOUSEKEY_ENABLE = no
-AUDIO_ENABLE = no
-
diff --git a/keyboards/kprepublic/bm40hsrgb/keymaps/wolff_abnt2/config.h b/keyboards/kprepublic/bm40hsrgb/keymaps/wolff_abnt2/config.h
deleted file mode 100755
index 418b182c3b..0000000000
--- a/keyboards/kprepublic/bm40hsrgb/keymaps/wolff_abnt2/config.h
+++ /dev/null
@@ -1,74 +0,0 @@
-/* Copyright 2020 lmlask
- *
- * 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 MOUSEKEY_DELAY 50
-#define MIDI_ADVANCED
-#define TAPPING_TERM 175 //For fast typing
-#define QUICK_TAP_TERM 0 //No autorepeat in tap-hold keys
-#define HOLD_ON_OTHER_KEY_PRESS //For fast typing
-
-// Min 0, max 32
-#define JOYSTICK_BUTTON_COUNT 32
-// Min 0, max 6: X, Y, Z, Rx, Ry, Rz
-#define JOYSTICK_AXIS_COUNT 0
-// Min 8, max 16
-#define JOYSTICK_AXIS_RESOLUTION 8
-
-#define RGB_DISABLE_WHEN_USB_SUSPENDED // turn off effects when suspended
-
-//#undef ENABLE_RGB_MATRIX_ALPHAS_MODS // Enables RGB_MATRIX_ALPHAS_MODS
-#undef ENABLE_RGB_MATRIX_GRADIENT_UP_DOWN // Enables RGB_MATRIX_GRADIENT_UP_DOWN
-#undef ENABLE_RGB_MATRIX_GRADIENT_LEFT_RIGHT // Enables RGB_MATRIX_GRADIENT_LEFT_RIGHT
-//#undef ENABLE_RGB_MATRIX_BREATHING // Enables RGB_MATRIX_BREATHING
-//#undef ENABLE_RGB_MATRIX_BAND_SAT // Enables RGB_MATRIX_BAND_SAT
-//#undef ENABLE_RGB_MATRIX_BAND_VAL //Enables RGB_MATRIX_BAND_VAL
-#undef ENABLE_RGB_MATRIX_BAND_PINWHEEL_SAT // Enables RGB_MATRIX_BAND_PINWHEEL_SAT
-#undef ENABLE_RGB_MATRIX_BAND_PINWHEEL_VAL // Enables RGB_MATRIX_BAND_PINWHEEL_VAL
-#undef ENABLE_RGB_MATRIX_BAND_SPIRAL_SAT // Enables RGB_MATRIX_BAND_SPIRAL_SAT
-#undef ENABLE_RGB_MATRIX_BAND_SPIRAL_VAL // Enables RGB_MATRIX_BAND_SPIRAL_VAL
-#undef ENABLE_RGB_MATRIX_CYCLE_ALL // Enables RGB_MATRIX_CYCLE_ALL
-#undef ENABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT // Enables RGB_MATRIX_CYCLE_LEFT_RIGHT
-#undef ENABLE_RGB_MATRIX_CYCLE_UP_DOWN // Enables RGB_MATRIX_CYCLE_UP_DOWN
-#undef ENABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON // Enables RGB_MATRIX_RAINBOW_MOVING_CHEVRON
-#undef ENABLE_RGB_MATRIX_CYCLE_OUT_IN //Enables RGB_MATRIX_CYCLE_OUT_IN
-#undef ENABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL // Enables RGB_MATRIX_CYCLE_OUT_IN_DUAL
-#undef ENABLE_RGB_MATRIX_CYCLE_PINWHEEL // Enables RGB_MATRIX_CYCLE_PINWHEEL
-#undef ENABLE_RGB_MATRIX_CYCLE_SPIRAL // Enables RGB_MATRIX_CYCLE_SPIRAL
-#undef ENABLE_RGB_MATRIX_DUAL_BEACON //Enables RGB_MATRIX_DUAL_BEACON
-#undef ENABLE_RGB_MATRIX_RAINBOW_BEACON// Enables RGB_MATRIX_RAINBOW_BEACON
-#undef ENABLE_RGB_MATRIX_RAINBOW_PINWHEELS // Enables RGB_MATRIX_RAINBOW_PINWHEELS
-#undef ENABLE_RGB_MATRIX_RAINDROPS //Enables RGB_MATRIX_RAINDROPS
-#undef ENABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS// Enables RGB_MATRIX_JELLYBEAN_RAINDROPS
-//#undef ENABLE_RGB_MATRIX_HUE_BREATHING // Enables RGB_MATRIX_HUE_BREATHING
-#undef ENABLE_RGB_MATRIX_HUE_PENDULUM //Enables RGB_MATRIX_HUE_PENDULUM
-#undef ENABLE_RGB_MATRIX_HUE_WAVE //Enables RGB_MATRIX_HUE_WAVE
-#undef ENABLE_RGB_MATRIX_PIXEL_FRACTAL //Enables RGB_MATRIX_PIXEL_FRACTAL
-#undef ENABLE_RGB_MATRIX_PIXEL_FLOW //Enables RGB_MATRIX_PIXEL_FLOW
-#undef ENABLE_RGB_MATRIX_PIXEL_RAIN //Enables RGB_MATRIX_PIXEL_RAIN
-//#undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE // Enables RGB_MATRIX_SOLID_REACTIVE_SIMPLE
-//#undef ENABLE_RGB_MATRIX_SOLID_REACTIVE // Enables RGB_MATRIX_SOLID_REACTIVE
-//#undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE //Enables RGB_MATRIX_SOLID_REACTIVE_WIDE
-//#undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE // Enables RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE
-//#undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS // Enables RGB_MATRIX_SOLID_REACTIVE_CROSS
-#undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS // Enables RGB_MATRIX_SOLID_REACTIVE_MULTICROSS
-//#undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS //Enables RGB_MATRIX_SOLID_REACTIVE_NEXUS
-#undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS //Enables RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS
-//#undef ENABLE_RGB_MATRIX_SPLASH //Enables RGB_MATRIX_SPLASH
-#undef ENABLE_RGB_MATRIX_MULTISPLASH // Enables RGB_MATRIX_MULTISPLASH
-//#undef ENABLE_RGB_MATRIX_SOLID_SPLASH //Enables RGB_MATRIX_SOLID_SPLASH
-#undef ENABLE_RGB_MATRIX_SOLID_MULTISPLASH // Enables RGB_MATRIX_SOLID_MULTISPLASH
diff --git a/keyboards/kprepublic/bm40hsrgb/keymaps/wolff_abnt2/rules.mk b/keyboards/kprepublic/bm40hsrgb/keymaps/wolff_abnt2/rules.mk
deleted file mode 100755
index c69721fa47..0000000000
--- a/keyboards/kprepublic/bm40hsrgb/keymaps/wolff_abnt2/rules.mk
+++ /dev/null
@@ -1,19 +0,0 @@
-LTO_ENABLE = yes
-CONSOLE_ENABLE = no # Console for debug
-COMMAND_ENABLE = no # Commands for debug and configuration
-TERMINAL_ENABLE = no
-
-SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
-SPLIT_KEYBOARD = no
-KEY_LOCK_ENABLE = no
-RGB_MATRIX_ENABLE = yes
-LAYOUTS = planck_mit
-
-MIDI_ENABLE = yes
-JOYSTICK_ENABLE = yes
-JOYSTICK_DRIVER = digital
-MOUSEKEY_ENABLE = yes # Mouse keys
-EXTRAKEY_ENABLE = yes # Audio control and System control
-SWAP_HANDS_ENABLE = yes
-
-STENO_ENABLE = no # Enabling steno requires disabling all options in the previous block.
diff --git a/keyboards/kprepublic/bm40hsrgb/readme.md b/keyboards/kprepublic/bm40hsrgb/readme.md
index 609b3c4184..fd84dfb81b 100644
--- a/keyboards/kprepublic/bm40hsrgb/readme.md
+++ b/keyboards/kprepublic/bm40hsrgb/readme.md
@@ -1,6 +1,6 @@
# bm40hsrgb
-![BM40 RGB](https://rgoulter.com/images/keyboards/bm40rgb/bm40rgb_large.jpg)
+![BM40 RGB](https://i.imgur.com/eOqXMlNh.jpg)
An ortholinear 40% hotswap keyboard with per-key RGB in-switch LEDs and RGB Backlighting, from KP Republic.
@@ -12,10 +12,12 @@ This firmware was originally taken from a kbfirmware.json and manually converted
Make example for this keyboard (after setting up your build environment):
- make kprepublic/bm40hsrgb:default
+ for rev1: make kprepublic/bm40hsrgb/rev1:default
+ for rev2: make kprepublic/bm40hsrgb/rev2:default
Flashing example for this keyboard:
- make kprepublic/bm40hsrgb:default:flash
+ for rev1: make kprepublic/bm40hsrgb/rev1:default:flash
+ for rev2: make kprepublic/bm40hsrgb/rev2: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).
diff --git a/keyboards/kprepublic/bm40hsrgb/config.h b/keyboards/kprepublic/bm40hsrgb/rev1/config.h
index ac0261a608..ac0261a608 100755
--- a/keyboards/kprepublic/bm40hsrgb/config.h
+++ b/keyboards/kprepublic/bm40hsrgb/rev1/config.h
diff --git a/keyboards/kprepublic/bm40hsrgb/info.json b/keyboards/kprepublic/bm40hsrgb/rev1/info.json
index c0ba89dbab..c0ba89dbab 100644
--- a/keyboards/kprepublic/bm40hsrgb/info.json
+++ b/keyboards/kprepublic/bm40hsrgb/rev1/info.json
diff --git a/keyboards/kprepublic/bm40hsrgb/keymaps/default/keymap.c b/keyboards/kprepublic/bm40hsrgb/rev1/keymaps/default/keymap.c
index 838561269a..838561269a 100755
--- a/keyboards/kprepublic/bm40hsrgb/keymaps/default/keymap.c
+++ b/keyboards/kprepublic/bm40hsrgb/rev1/keymaps/default/keymap.c
diff --git a/keyboards/kprepublic/bm40hsrgb/keymaps/default/readme.md b/keyboards/kprepublic/bm40hsrgb/rev1/keymaps/default/readme.md
index 7fc64a7a05..7fc64a7a05 100644
--- a/keyboards/kprepublic/bm40hsrgb/keymaps/default/readme.md
+++ b/keyboards/kprepublic/bm40hsrgb/rev1/keymaps/default/readme.md
diff --git a/keyboards/kprepublic/bm40hsrgb/keymaps/gabustoledo/config.h b/keyboards/kprepublic/bm40hsrgb/rev1/keymaps/gabustoledo/config.h
index a669c31c24..a669c31c24 100644
--- a/keyboards/kprepublic/bm40hsrgb/keymaps/gabustoledo/config.h
+++ b/keyboards/kprepublic/bm40hsrgb/rev1/keymaps/gabustoledo/config.h
diff --git a/keyboards/kprepublic/bm40hsrgb/keymaps/gabustoledo/keymap.c b/keyboards/kprepublic/bm40hsrgb/rev1/keymaps/gabustoledo/keymap.c
index a08fd535d3..a08fd535d3 100755
--- a/keyboards/kprepublic/bm40hsrgb/keymaps/gabustoledo/keymap.c
+++ b/keyboards/kprepublic/bm40hsrgb/rev1/keymaps/gabustoledo/keymap.c
diff --git a/keyboards/kprepublic/bm40hsrgb/keymaps/gabustoledo/readme.md b/keyboards/kprepublic/bm40hsrgb/rev1/keymaps/gabustoledo/readme.md
index 7540bc56bf..7540bc56bf 100644
--- a/keyboards/kprepublic/bm40hsrgb/keymaps/gabustoledo/readme.md
+++ b/keyboards/kprepublic/bm40hsrgb/rev1/keymaps/gabustoledo/readme.md
diff --git a/keyboards/kprepublic/bm40hsrgb/keymaps/gabustoledo/rules.mk b/keyboards/kprepublic/bm40hsrgb/rev1/keymaps/gabustoledo/rules.mk
index 6e27e2f523..6e27e2f523 100644
--- a/keyboards/kprepublic/bm40hsrgb/keymaps/gabustoledo/rules.mk
+++ b/keyboards/kprepublic/bm40hsrgb/rev1/keymaps/gabustoledo/rules.mk
diff --git a/keyboards/kprepublic/bm40hsrgb/keymaps/signynt/config.h b/keyboards/kprepublic/bm40hsrgb/rev1/keymaps/signynt/config.h
index 40ba18a293..40ba18a293 100644
--- a/keyboards/kprepublic/bm40hsrgb/keymaps/signynt/config.h
+++ b/keyboards/kprepublic/bm40hsrgb/rev1/keymaps/signynt/config.h
diff --git a/keyboards/kprepublic/bm40hsrgb/keymaps/signynt/keymap.c b/keyboards/kprepublic/bm40hsrgb/rev1/keymaps/signynt/keymap.c
index eb20a1a25b..eb20a1a25b 100644
--- a/keyboards/kprepublic/bm40hsrgb/keymaps/signynt/keymap.c
+++ b/keyboards/kprepublic/bm40hsrgb/rev1/keymaps/signynt/keymap.c
diff --git a/keyboards/kprepublic/bm40hsrgb/keymaps/signynt/readme.md b/keyboards/kprepublic/bm40hsrgb/rev1/keymaps/signynt/readme.md
index 97c09be255..97c09be255 100644
--- a/keyboards/kprepublic/bm40hsrgb/keymaps/signynt/readme.md
+++ b/keyboards/kprepublic/bm40hsrgb/rev1/keymaps/signynt/readme.md
diff --git a/keyboards/kprepublic/bm40hsrgb/keymaps/signynt/rules.mk b/keyboards/kprepublic/bm40hsrgb/rev1/keymaps/signynt/rules.mk
index 754f3f1f70..754f3f1f70 100644
--- a/keyboards/kprepublic/bm40hsrgb/keymaps/signynt/rules.mk
+++ b/keyboards/kprepublic/bm40hsrgb/rev1/keymaps/signynt/rules.mk
diff --git a/keyboards/kprepublic/bm40hsrgb/keymaps/signynt_2_loud/config.h b/keyboards/kprepublic/bm40hsrgb/rev1/keymaps/signynt_2_loud/config.h
index 508f98c053..508f98c053 100644
--- a/keyboards/kprepublic/bm40hsrgb/keymaps/signynt_2_loud/config.h
+++ b/keyboards/kprepublic/bm40hsrgb/rev1/keymaps/signynt_2_loud/config.h
diff --git a/keyboards/kprepublic/bm40hsrgb/keymaps/signynt_2_loud/keymap.c b/keyboards/kprepublic/bm40hsrgb/rev1/keymaps/signynt_2_loud/keymap.c
index f53e061843..f53e061843 100644
--- a/keyboards/kprepublic/bm40hsrgb/keymaps/signynt_2_loud/keymap.c
+++ b/keyboards/kprepublic/bm40hsrgb/rev1/keymaps/signynt_2_loud/keymap.c
diff --git a/keyboards/kprepublic/bm40hsrgb/keymaps/signynt_2_loud/readme.md b/keyboards/kprepublic/bm40hsrgb/rev1/keymaps/signynt_2_loud/readme.md
index 97c09be255..97c09be255 100644
--- a/keyboards/kprepublic/bm40hsrgb/keymaps/signynt_2_loud/readme.md
+++ b/keyboards/kprepublic/bm40hsrgb/rev1/keymaps/signynt_2_loud/readme.md
diff --git a/keyboards/kprepublic/bm40hsrgb/keymaps/signynt_2_loud/rules.mk b/keyboards/kprepublic/bm40hsrgb/rev1/keymaps/signynt_2_loud/rules.mk
index 754f3f1f70..754f3f1f70 100644
--- a/keyboards/kprepublic/bm40hsrgb/keymaps/signynt_2_loud/rules.mk
+++ b/keyboards/kprepublic/bm40hsrgb/rev1/keymaps/signynt_2_loud/rules.mk
diff --git a/keyboards/kprepublic/bm40hsrgb/keymaps/signynt_2_quiet/config.h b/keyboards/kprepublic/bm40hsrgb/rev1/keymaps/signynt_2_quiet/config.h
index 70f92bafde..70f92bafde 100644
--- a/keyboards/kprepublic/bm40hsrgb/keymaps/signynt_2_quiet/config.h
+++ b/keyboards/kprepublic/bm40hsrgb/rev1/keymaps/signynt_2_quiet/config.h
diff --git a/keyboards/kprepublic/bm40hsrgb/keymaps/signynt_2_quiet/keymap.c b/keyboards/kprepublic/bm40hsrgb/rev1/keymaps/signynt_2_quiet/keymap.c
index e958071c20..e958071c20 100644
--- a/keyboards/kprepublic/bm40hsrgb/keymaps/signynt_2_quiet/keymap.c
+++ b/keyboards/kprepublic/bm40hsrgb/rev1/keymaps/signynt_2_quiet/keymap.c
diff --git a/keyboards/kprepublic/bm40hsrgb/keymaps/signynt_2_quiet/readme.md b/keyboards/kprepublic/bm40hsrgb/rev1/keymaps/signynt_2_quiet/readme.md
index 97c09be255..97c09be255 100644
--- a/keyboards/kprepublic/bm40hsrgb/keymaps/signynt_2_quiet/readme.md
+++ b/keyboards/kprepublic/bm40hsrgb/rev1/keymaps/signynt_2_quiet/readme.md
diff --git a/keyboards/kprepublic/bm40hsrgb/keymaps/signynt_2_quiet/rules.mk b/keyboards/kprepublic/bm40hsrgb/rev1/keymaps/signynt_2_quiet/rules.mk
index 754f3f1f70..754f3f1f70 100644
--- a/keyboards/kprepublic/bm40hsrgb/keymaps/signynt_2_quiet/rules.mk
+++ b/keyboards/kprepublic/bm40hsrgb/rev1/keymaps/signynt_2_quiet/rules.mk
diff --git a/keyboards/kprepublic/bm40hsrgb/keymaps/via/keymap.c b/keyboards/kprepublic/bm40hsrgb/rev1/keymaps/via/keymap.c
index 838561269a..838561269a 100644
--- a/keyboards/kprepublic/bm40hsrgb/keymaps/via/keymap.c
+++ b/keyboards/kprepublic/bm40hsrgb/rev1/keymaps/via/keymap.c
diff --git a/keyboards/kprepublic/bm40hsrgb/keymaps/via/readme.md b/keyboards/kprepublic/bm40hsrgb/rev1/keymaps/via/readme.md
index bff946f327..bff946f327 100644
--- a/keyboards/kprepublic/bm40hsrgb/keymaps/via/readme.md
+++ b/keyboards/kprepublic/bm40hsrgb/rev1/keymaps/via/readme.md
diff --git a/keyboards/durgod/k320/keymaps/moults31/rules.mk b/keyboards/kprepublic/bm40hsrgb/rev1/keymaps/via/rules.mk
index 36b7ba9cbc..36b7ba9cbc 100644
--- a/keyboards/durgod/k320/keymaps/moults31/rules.mk
+++ b/keyboards/kprepublic/bm40hsrgb/rev1/keymaps/via/rules.mk
diff --git a/keyboards/kprepublic/bm40hsrgb/keymaps/wolff_abnt2/keymap.c b/keyboards/kprepublic/bm40hsrgb/rev1/keymaps/wolff_abnt2/keymap.c
index 1583392a48..1583392a48 100755
--- a/keyboards/kprepublic/bm40hsrgb/keymaps/wolff_abnt2/keymap.c
+++ b/keyboards/kprepublic/bm40hsrgb/rev1/keymaps/wolff_abnt2/keymap.c
diff --git a/keyboards/kprepublic/bm40hsrgb/keymaps/wolff_abnt2/readme.md b/keyboards/kprepublic/bm40hsrgb/rev1/keymaps/wolff_abnt2/readme.md
index 69130dbfec..69130dbfec 100755
--- a/keyboards/kprepublic/bm40hsrgb/keymaps/wolff_abnt2/readme.md
+++ b/keyboards/kprepublic/bm40hsrgb/rev1/keymaps/wolff_abnt2/readme.md
diff --git a/keyboards/kprepublic/bm40hsrgb/rev1/readme.md b/keyboards/kprepublic/bm40hsrgb/rev1/readme.md
new file mode 100644
index 0000000000..00df7b02ad
--- /dev/null
+++ b/keyboards/kprepublic/bm40hsrgb/rev1/readme.md
@@ -0,0 +1,21 @@
+# bm40hsrgb
+
+![BM40 RGB](https://imgur.com/eOqXMlNh.jpeg)
+
+An ortholinear 40% hotswap keyboard with per-key RGB in-switch LEDs and RGB Backlighting, from KP Republic.
+
+This firmware was originally taken from a kbfirmware.json and manually converted. You may find the original `.json` files [here](https://drive.google.com/drive/folders/1tlTHQIFcluK2mjZ4UbbKCsdRLgSRSPw6).
+
+* Keyboard Maintainer: [rgoulter](https://github.com/rgoulter)
+* Hardware Supported: bm40hsrgb PCB
+* Hardware Availability: [KPRepublic](https://www.aliexpress.com/item/4001147779116.html)
+
+Make example for this keyboard (after setting up your build environment):
+
+ make kprepublic/bm40hsrgb/rev1:default
+
+Flashing example for this keyboard:
+
+ make kprepublic/bm40hsrgb/rev1: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).
diff --git a/keyboards/kprepublic/bm40hsrgb/bm40hsrgb.c b/keyboards/kprepublic/bm40hsrgb/rev1/rev1.c
index 16e515042d..16e515042d 100755
--- a/keyboards/kprepublic/bm40hsrgb/bm40hsrgb.c
+++ b/keyboards/kprepublic/bm40hsrgb/rev1/rev1.c
diff --git a/keyboards/kprepublic/bm40hsrgb/rules.mk b/keyboards/kprepublic/bm40hsrgb/rev1/rules.mk
index 7e0de4a3e8..7e0de4a3e8 100755
--- a/keyboards/kprepublic/bm40hsrgb/rules.mk
+++ b/keyboards/kprepublic/bm40hsrgb/rev1/rules.mk
diff --git a/keyboards/kprepublic/bm40hsrgb/rev2/config.h b/keyboards/kprepublic/bm40hsrgb/rev2/config.h
new file mode 100755
index 0000000000..1cd3f7a6d3
--- /dev/null
+++ b/keyboards/kprepublic/bm40hsrgb/rev2/config.h
@@ -0,0 +1,21 @@
+/* Copyright 2020 tominabox1
+ *
+ * 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 IS31FL3733_I2C_ADDRESS_1 IS31FL3733_I2C_ADDRESS_GND_GND
+#define RGB_MATRIX_LED_COUNT 47
+#define RGB_MATRIX_KEYPRESSES
+#define RGB_DISABLE_WHEN_USB_SUSPENDED // turn off effects when suspended
diff --git a/keyboards/kprepublic/bm40hsrgb/rev2/info.json b/keyboards/kprepublic/bm40hsrgb/rev2/info.json
new file mode 100644
index 0000000000..dac848ed52
--- /dev/null
+++ b/keyboards/kprepublic/bm40hsrgb/rev2/info.json
@@ -0,0 +1,197 @@
+{
+ "keyboard_name": "BM40 Hotswap RGB",
+ "manufacturer": "KPRepublic",
+ "url": "",
+ "maintainer": "qmk",
+ "features": {
+ "bootmagic": true,
+ "mousekey": true,
+ "extrakey": true,
+ "rgblight": true,
+ "rgb_matrix": true,
+ "tri_layer": true,
+ "console": false,
+ "command": false,
+ "nkro": false,
+ "backlight": false,
+ "audio": false
+ },
+ "usb": {
+ "vid": "0x4B50",
+ "pid": "0x3430",
+ "device_version": "0.0.2"
+ },
+ "ws2812": {
+ "pin": "B0"
+ },
+ "rgblight": {
+ "led_count": 6,
+ "max_brightness": 150,
+ "animations": {
+ "knight": true,
+ "rainbow_swirl": true
+ }
+ },
+ "rgb_matrix": {
+ "driver": "is31fl3733",
+ "max_brightness": 150,
+ "animations": {
+ "alphas_mods": true,
+ "gradient_up_down": true,
+ "gradient_left_right": true,
+ "breathing": true,
+ "band_sat": true,
+ "band_val": true,
+ "band_pinwheel_sat": true,
+ "band_pinwheel_val": true,
+ "band_spiral_sat": true,
+ "band_spiral_val": true,
+ "cycle_all": true,
+ "cycle_left_right": true,
+ "cycle_up_down": true,
+ "rainbow_moving_chevron": true,
+ "cycle_out_in": true,
+ "cycle_out_in_dual": true,
+ "cycle_pinwheel": true,
+ "cycle_spiral": true,
+ "dual_beacon": true,
+ "rainbow_beacon": true,
+ "rainbow_pinwheels": true,
+ "raindrops": true,
+ "jellybean_raindrops": true,
+ "hue_breathing": true,
+ "hue_pendulum": true,
+ "hue_wave": true,
+ "pixel_rain": true,
+ "pixel_flow": true,
+ "pixel_fractal": true,
+ "typing_heatmap": true,
+ "digital_rain": true,
+ "solid_reactive_simple": true,
+ "solid_reactive": true,
+ "solid_reactive_wide": true,
+ "solid_reactive_multiwide": true,
+ "solid_reactive_cross": true,
+ "solid_reactive_multicross": true,
+ "solid_reactive_nexus": true,
+ "solid_reactive_multinexus": true,
+ "splash": true,
+ "multisplash": true,
+ "solid_splash": true,
+ "solid_multisplash": true
+ },
+ "layout": [
+ {"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": 224, "y": 0, "flags": 1},
+ {"matrix": [1, 0], "x": 0, "y": 21, "flags": 1},
+ {"matrix": [1, 1], "x": 20, "y": 21, "flags": 4},
+ {"matrix": [1, 2], "x": 40, "y": 21, "flags": 4},
+ {"matrix": [1, 3], "x": 61, "y": 21, "flags": 4},
+ {"matrix": [1, 4], "x": 81, "y": 21, "flags": 4},
+ {"matrix": [1, 5], "x": 101, "y": 21, "flags": 4},
+ {"matrix": [1, 6], "x": 122, "y": 21, "flags": 4},
+ {"matrix": [1, 7], "x": 142, "y": 21, "flags": 4},
+ {"matrix": [1, 8], "x": 162, "y": 21, "flags": 4},
+ {"matrix": [1, 9], "x": 183, "y": 21, "flags": 4},
+ {"matrix": [1, 10], "x": 203, "y": 21, "flags": 4},
+ {"matrix": [1, 11], "x": 224, "y": 21, "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": 224, "y": 42, "flags": 1},
+ {"matrix": [3, 0], "x": 0, "y": 64, "flags": 1},
+ {"matrix": [3, 1], "x": 20, "y": 64, "flags": 1},
+ {"matrix": [3, 2], "x": 40, "y": 64, "flags": 1},
+ {"matrix": [3, 3], "x": 61, "y": 64, "flags": 1},
+ {"matrix": [3, 4], "x": 81, "y": 64, "flags": 1},
+ {"matrix": [3, 5], "x": 111, "y": 64, "flags": 1},
+ {"matrix": [3, 7], "x": 142, "y": 64, "flags": 1},
+ {"matrix": [3, 8], "x": 162, "y": 64, "flags": 1},
+ {"matrix": [3, 9], "x": 183, "y": 64, "flags": 1},
+ {"matrix": [3, 10], "x": 203, "y": 64, "flags": 1},
+ {"matrix": [3, 11], "x": 224, "y": 64, "flags": 1}
+ ]
+ },
+ "matrix_pins": {
+ "cols": ["B2", "B3", "D5", "D3", "D2", "B7", "F0", "B4", "B5", "B6", "C6", "C7"],
+ "rows": ["D7", "F7", "F6", "F5"]
+ },
+ "diode_direction": "ROW2COL",
+ "processor": "atmega32u4",
+ "bootloader": "atmel-dfu",
+ "community_layouts": ["planck_mit"],
+ "layout_aliases": {
+ "LAYOUT_planck_mit": "LAYOUT_ortho_4x12_1x2uC"
+ },
+ "layouts": {
+ "LAYOUT_ortho_4x12_1x2uC": {
+ "layout": [
+ {"label":"K00", "matrix": [0, 0], "x":0, "y":0},
+ {"label":"K01", "matrix": [0, 1], "x":1, "y":0},
+ {"label":"K02", "matrix": [0, 2], "x":2, "y":0},
+ {"label":"K03", "matrix": [0, 3], "x":3, "y":0},
+ {"label":"K04", "matrix": [0, 4], "x":4, "y":0},
+ {"label":"K05", "matrix": [0, 5], "x":5, "y":0},
+ {"label":"K06", "matrix": [0, 6], "x":6, "y":0},
+ {"label":"K07", "matrix": [0, 7], "x":7, "y":0},
+ {"label":"K08", "matrix": [0, 8], "x":8, "y":0},
+ {"label":"K09", "matrix": [0, 9], "x":9, "y":0},
+ {"label":"K0A", "matrix": [0, 10], "x":10, "y":0},
+ {"label":"K0B", "matrix": [0, 11], "x":11, "y":0},
+ {"label":"K10", "matrix": [1, 0], "x":0, "y":1},
+ {"label":"K11", "matrix": [1, 1], "x":1, "y":1},
+ {"label":"K12", "matrix": [1, 2], "x":2, "y":1},
+ {"label":"K13", "matrix": [1, 3], "x":3, "y":1},
+ {"label":"K14", "matrix": [1, 4], "x":4, "y":1},
+ {"label":"K15", "matrix": [1, 5], "x":5, "y":1},
+ {"label":"K16", "matrix": [1, 6], "x":6, "y":1},
+ {"label":"K17", "matrix": [1, 7], "x":7, "y":1},
+ {"label":"K18", "matrix": [1, 8], "x":8, "y":1},
+ {"label":"K19", "matrix": [1, 9], "x":9, "y":1},
+ {"label":"K1A", "matrix": [1, 10], "x":10, "y":1},
+ {"label":"K1B", "matrix": [1, 11], "x":11, "y":1},
+ {"label":"K20", "matrix": [2, 0], "x":0, "y":2},
+ {"label":"K21", "matrix": [2, 1], "x":1, "y":2},
+ {"label":"K22", "matrix": [2, 2], "x":2, "y":2},
+ {"label":"K23", "matrix": [2, 3], "x":3, "y":2},
+ {"label":"K24", "matrix": [2, 4], "x":4, "y":2},
+ {"label":"K25", "matrix": [2, 5], "x":5, "y":2},
+ {"label":"K26", "matrix": [2, 6], "x":6, "y":2},
+ {"label":"K27", "matrix": [2, 7], "x":7, "y":2},
+ {"label":"K28", "matrix": [2, 8], "x":8, "y":2},
+ {"label":"K29", "matrix": [2, 9], "x":9, "y":2},
+ {"label":"K2A", "matrix": [2, 10], "x":10, "y":2},
+ {"label":"K2B", "matrix": [2, 11], "x":11, "y":2},
+ {"label":"K30", "matrix": [3, 0], "x":0, "y":3},
+ {"label":"K31", "matrix": [3, 1], "x":1, "y":3},
+ {"label":"K32", "matrix": [3, 2], "x":2, "y":3},
+ {"label":"K33", "matrix": [3, 3], "x":3, "y":3},
+ {"label":"K34", "matrix": [3, 4], "x":4, "y":3},
+ {"label":"K35", "matrix": [3, 5], "x":5, "y":3, "w":2},
+ {"label":"K37", "matrix": [3, 7], "x":7, "y":3},
+ {"label":"K38", "matrix": [3, 8], "x":8, "y":3},
+ {"label":"K39", "matrix": [3, 9], "x":9, "y":3},
+ {"label":"K3A", "matrix": [3, 10], "x":10, "y":3},
+ {"label":"K3B", "matrix": [3, 11], "x":11, "y":3}
+ ]
+ }
+ }
+}
diff --git a/keyboards/kprepublic/bm40hsrgb/rev2/keymaps/default/keymap.c b/keyboards/kprepublic/bm40hsrgb/rev2/keymaps/default/keymap.c
new file mode 100755
index 0000000000..5f389e4caf
--- /dev/null
+++ b/keyboards/kprepublic/bm40hsrgb/rev2/keymaps/default/keymap.c
@@ -0,0 +1,101 @@
+/* Copyright 2020 tominabox1
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+#include QMK_KEYBOARD_H
+
+enum layers {
+ _QWERTY,
+ _LOWER,
+ _RAISE,
+ _ADJUST
+};
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+/* Qwerty
+ * ,-----------------------------------------------------------------------------------.
+ * | Tab | Q | W | E | R | T | Y | U | I | O | P | Bksp |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | Esc | A | S | D | F | G | H | J | K | L | ; | " |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | Shift| Z | X | C | V | B | N | M | , | . | / |Enter |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | BLTog| Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right |
+ * `-----------------------------------------------------------------------------------'
+ */
+[_QWERTY] = LAYOUT_ortho_4x12_1x2uC(
+ 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_ESC, 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_ENT ,
+ RGB_TOG, KC_LCTL, KC_LALT, KC_LGUI, TL_LOWR, KC_SPC, TL_UPPR, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT
+),
+
+/* Lower
+ * ,-----------------------------------------------------------------------------------.
+ * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | Del | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | F7 | F8 | F9 | F10 | F11 | F12 |ISO ~ |ISO | | Home | End | |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | | | | | | | Next | Vol- | Vol+ | Play |
+ * `-----------------------------------------------------------------------------------'
+ */
+[_LOWER] = LAYOUT_ortho_4x12_1x2uC(
+ KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC,
+ KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE,
+ _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, S(KC_NUHS), S(KC_NUBS), KC_HOME, KC_END, _______,
+ _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY
+),
+
+/* Raise
+ * ,-----------------------------------------------------------------------------------.
+ * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | Del | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | F7 | F8 | F9 | F10 | F11 | F12 |ISO # |ISO / |Pg Up |Pg Dn | |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | | | | | | | Next | Vol- | Vol+ | Play |
+ * `-----------------------------------------------------------------------------------'
+ */
+[_RAISE] = LAYOUT_ortho_4x12_1x2uC(
+ KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC,
+ KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS,
+ _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NUHS, KC_NUBS, KC_PGUP, KC_PGDN, _______,
+ _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY
+),
+
+/* Adjust (Lower + Raise)
+ * v------------------------RGB CONTROL--------------------v
+ * ,-----------------------------------------------------------------------------------.
+ * | | Reset|Debug | RGB |RGBMOD| HUE+ | HUE- | SAT+ | SAT- |BRGTH+|BRGTH-| Del |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | | | | | | | | | | | |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | | | | | | | | | | | |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | | | | | | | | | | |
+ * `-----------------------------------------------------------------------------------'
+ */
+[_ADJUST] = LAYOUT_ortho_4x12_1x2uC(
+ _______, QK_BOOT, DB_TOGG, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_DEL ,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
+)
+
+};
+
diff --git a/keyboards/clickety_split/leeloo/keymaps/default/rules.mk b/keyboards/kprepublic/bm40hsrgb/rev2/keymaps/default/rules.mk
index 4da205a168..4da205a168 100644
--- a/keyboards/clickety_split/leeloo/keymaps/default/rules.mk
+++ b/keyboards/kprepublic/bm40hsrgb/rev2/keymaps/default/rules.mk
diff --git a/keyboards/kprepublic/bm40hsrgb/rev2/keymaps/via/keymap.c b/keyboards/kprepublic/bm40hsrgb/rev2/keymaps/via/keymap.c
new file mode 100644
index 0000000000..216d7cb888
--- /dev/null
+++ b/keyboards/kprepublic/bm40hsrgb/rev2/keymaps/via/keymap.c
@@ -0,0 +1,100 @@
+/* Copyright 2020 tominabox1
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+#include QMK_KEYBOARD_H
+
+enum layers {
+ _QWERTY,
+ _LOWER,
+ _RAISE,
+ _ADJUST
+};
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+/* Qwerty
+ * ,-----------------------------------------------------------------------------------.
+ * | Tab | Q | W | E | R | T | Y | U | I | O | P | Bksp |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | Esc | A | S | D | F | G | H | J | K | L | ; | " |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | Shift| Z | X | C | V | B | N | M | , | . | / |Enter |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | BLTog| Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right |
+ * `-----------------------------------------------------------------------------------'
+ */
+[_QWERTY] = LAYOUT_ortho_4x12_1x2uC(
+ 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_ESC, 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_ENT ,
+ RGB_TOG, KC_LCTL, KC_LALT, KC_LGUI, TL_LOWR, KC_SPC, TL_UPPR, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT
+),
+
+/* Lower
+ * ,-----------------------------------------------------------------------------------.
+ * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | Del | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | F7 | F8 | F9 | F10 | F11 | F12 |ISO ~ |ISO | | Home | End | |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | | | | | | | Next | Vol- | Vol+ | Play |
+ * `-----------------------------------------------------------------------------------'
+ */
+[_LOWER] = LAYOUT_ortho_4x12_1x2uC(
+ KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC,
+ KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE,
+ _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, S(KC_NUHS), S(KC_NUBS), KC_HOME, KC_END, _______,
+ _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY
+),
+
+/* Raise
+ * ,-----------------------------------------------------------------------------------.
+ * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | Del | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | F7 | F8 | F9 | F10 | F11 | F12 |ISO # |ISO / |Pg Up |Pg Dn | |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | | | | | | | Next | Vol- | Vol+ | Play |
+ * `-----------------------------------------------------------------------------------'
+ */
+[_RAISE] = LAYOUT_ortho_4x12_1x2uC(
+ KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC,
+ KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS,
+ _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NUHS, KC_NUBS, KC_PGUP, KC_PGDN, _______,
+ _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY
+),
+
+/* Adjust (Lower + Raise)
+ * v------------------------RGB CONTROL--------------------v
+ * ,-----------------------------------------------------------------------------------.
+ * | | Reset|Debug | RGB |RGBMOD| HUE+ | HUE- | SAT+ | SAT- |BRGTH+|BRGTH-| Del |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | | | | | | | | | | | |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | | | | | | | | | | | |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | | | | | | | | | | |
+ * `-----------------------------------------------------------------------------------'
+ */
+[_ADJUST] = LAYOUT_ortho_4x12_1x2uC(
+ _______, QK_BOOT, DB_TOGG, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_DEL ,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
+)
+
+};
diff --git a/keyboards/kprepublic/bm40hsrgb/rev2/keymaps/via/rules.mk b/keyboards/kprepublic/bm40hsrgb/rev2/keymaps/via/rules.mk
new file mode 100644
index 0000000000..0cea9288cc
--- /dev/null
+++ b/keyboards/kprepublic/bm40hsrgb/rev2/keymaps/via/rules.mk
@@ -0,0 +1,3 @@
+VIA_ENABLE = yes
+LTO_ENABLE = yes
+RGBLIGHT_ENABLE = no
diff --git a/keyboards/kprepublic/bm40hsrgb/rev2/readme.md b/keyboards/kprepublic/bm40hsrgb/rev2/readme.md
new file mode 100644
index 0000000000..2c2264e4e8
--- /dev/null
+++ b/keyboards/kprepublic/bm40hsrgb/rev2/readme.md
@@ -0,0 +1,29 @@
+# bm40hsrgb
+
+![BM40 RGB](https://i.imgur.com/eOqXMlNh.jpg)
+
+An ortholinear 40% hotswap keyboard with per-key RGB in-switch LEDs and RGB Backlighting, from KP Republic.
+
+This firmware was originally taken from a kbfirmware.json and manually converted. You may find the original `.json` files [here](https://drive.google.com/drive/folders/1tlTHQIFcluK2mjZ4UbbKCsdRLgSRSPw6).
+
+* Keyboard Maintainer: [rgoulter](https://github.com/rgoulter)
+* Hardware Supported: bm40hsrgb PCB
+* Hardware Availability: [KPRepublic](https://www.aliexpress.com/item/4001147779116.html)
+
+Make example for this keyboard (after setting up your build environment):
+
+ make kprepublic/bm40hsrgb/rev2:default
+
+Flashing example for this keyboard:
+
+ make kprepublic/bm40hsrgb/rev2: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
+
+There are multiple ways to enter the bootloader so that firmware can be flashed onto the keyboard:
+
+* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (the top left key) and plug in the keyboard.
+* **Physical reset button**: Briefly press the button labeled 'RST' on the back of the PCB.
+* **Keycode in layout**: Press the key mapped to `RESET` if it is available.
diff --git a/keyboards/kprepublic/bm40hsrgb/rev2/rev2.c b/keyboards/kprepublic/bm40hsrgb/rev2/rev2.c
new file mode 100755
index 0000000000..4bf9168935
--- /dev/null
+++ b/keyboards/kprepublic/bm40hsrgb/rev2/rev2.c
@@ -0,0 +1,73 @@
+/* Copyright 2020 tominabox1, Richard Goulter <richard.goulter@gmail.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"
+
+#if defined(RGB_MATRIX_ENABLE)
+
+const is31fl3733_led_t PROGMEM g_is31fl3733_leds[RGB_MATRIX_LED_COUNT] = {
+ { 0, B_1, A_1, C_1 },
+ { 0, B_2, A_2, C_2 },
+ { 0, B_3, A_3, C_3 },
+ { 0, B_4, A_4, C_4 },
+ { 0, B_5, A_5, C_5 },
+ { 0, B_6, A_6, C_6 },
+ { 0, B_7, A_7, C_7 },
+ { 0, B_8, A_8, C_8 },
+ { 0, B_9, A_9, C_9 },
+ { 0, B_10, A_10, C_10 },
+ { 0, B_11, A_11, C_11 },
+ { 0, B_12, A_12, C_12 },
+
+ { 0, E_1, D_1, F_1 },
+ { 0, E_2, D_2, F_2 },
+ { 0, E_3, D_3, F_3 },
+ { 0, E_4, D_4, F_4 },
+ { 0, E_5, D_5, F_5 },
+ { 0, E_6, D_6, F_6 },
+ { 0, E_7, D_7, F_7 },
+ { 0, E_8, D_8, F_8 },
+ { 0, E_9, D_9, F_9 },
+ { 0, E_10, D_10, F_10 },
+ { 0, E_11, D_11, F_11 },
+ { 0, E_12, D_12, F_12 },
+
+ { 0, H_1, G_1, I_1 },
+ { 0, H_2, G_2, I_2 },
+ { 0, H_3, G_3, I_3 },
+ { 0, H_4, G_4, I_4 },
+ { 0, H_5, G_5, I_5 },
+ { 0, H_6, G_6, I_6 },
+ { 0, H_7, G_7, I_7 },
+ { 0, H_8, G_8, I_8 },
+ { 0, H_9, G_9, I_9 },
+ { 0, H_10, G_10, I_10 },
+ { 0, H_11, G_11, I_11 },
+ { 0, H_12, G_12, I_12 },
+
+ { 0, K_1, J_1, L_1 },
+ { 0, K_2, J_2, L_2 },
+ { 0, K_3, J_3, L_3 },
+ { 0, K_4, J_4, L_4 },
+ { 0, K_5, J_5, L_5 },
+ { 0, K_6, J_6, L_6 },
+ { 0, K_8, J_8, L_8 },
+ { 0, K_9, J_9, L_9 },
+ { 0, K_10, J_10, L_10 },
+ { 0, K_11, J_11, L_11 },
+ { 0, K_12, J_12, L_12 }
+};
+
+#endif /* RGB_MATRIX_ENABLE */
diff --git a/layouts/community/65_ansi/mechmerlin/rules.mk b/keyboards/kprepublic/bm40hsrgb/rev2/rules.mk
index e69de29bb2..e69de29bb2 100644
--- a/layouts/community/65_ansi/mechmerlin/rules.mk
+++ b/keyboards/kprepublic/bm40hsrgb/rev2/rules.mk
diff --git a/keyboards/kprepublic/bm60hsrgb/rev2/config.h b/keyboards/kprepublic/bm60hsrgb/rev2/config.h
index 82a3a14e9e..e4089e9fd5 100644
--- a/keyboards/kprepublic/bm60hsrgb/rev2/config.h
+++ b/keyboards/kprepublic/bm60hsrgb/rev2/config.h
@@ -18,7 +18,7 @@
#define RGBLIGHT_DEFAULT_MODE RGBLIGHT_MODE_RAINBOW_MOOD
#define RGB_DISABLE_WHEN_USB_SUSPENDED true // turn off effects when suspended
-#define DRIVER_ADDR_1 0b1010000
+#define IS31FL3733_I2C_ADDRESS_1 IS31FL3733_I2C_ADDRESS_GND_GND
#define RGB_MATRIX_KEYPRESSES
// RGB Matrix Animation modes. Explicitly enabled
@@ -64,7 +64,6 @@
#define ENABLE_RGB_MATRIX_SOLID_SPLASH
#define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH
-#define DRIVER_COUNT 2
#define DRIVER_1_LED_TOTAL 63
//#define RGB_MATRIX_LED_COUNT DRIVER_1_LED_TOTAL
@@ -74,7 +73,7 @@
#define RGB_MATRIX_MAXIMUM_BRIGHTNESS 120
-#define ISSI_LED_TOTAL DRIVER_1_LED_TOTAL
+#define IS31FL3733_LED_COUNT DRIVER_1_LED_TOTAL
// Underglow LEDs are WS2812, but someone might want to use RGBLIGHT for them;
// don't use those LEDs in RGB Matrix in that case.
@@ -84,7 +83,7 @@
# define WS2812_LED_TOTAL 6
#endif
-#define RGB_MATRIX_LED_COUNT (ISSI_LED_TOTAL + WS2812_LED_TOTAL)
+#define RGB_MATRIX_LED_COUNT (IS31FL3733_LED_COUNT + WS2812_LED_TOTAL)
#ifdef RGB_MATRIX_ENABLE
# define RGB_MATRIX_KEYPRESSES
diff --git a/keyboards/kprepublic/bm60hsrgb/rev2/rev2.c b/keyboards/kprepublic/bm60hsrgb/rev2/rev2.c
index bbc3e8db52..0e9b3d318d 100644
--- a/keyboards/kprepublic/bm60hsrgb/rev2/rev2.c
+++ b/keyboards/kprepublic/bm60hsrgb/rev2/rev2.c
@@ -22,7 +22,7 @@
# include "is31fl3733.h"
# include "ws2812.h"
-const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = {
+const is31fl3733_led_t PROGMEM g_is31fl3733_leds[IS31FL3733_LED_COUNT] = {
{ 0, B_1, A_1, C_1 },
{ 0, B_2, A_2, C_2 },
{ 0, B_3, A_3, C_3 },
@@ -148,34 +148,34 @@ bool rgb_matrix_indicators_kb(void) {
// ==========================================================================
# if WS2812_LED_TOTAL > 0
-LED_TYPE rgb_matrix_ws2812_array[WS2812_LED_TOTAL];
+rgb_led_t rgb_matrix_ws2812_array[WS2812_LED_TOTAL];
# endif
static void rgb_matrix_driver_init(void) {
i2c_init();
- is31fl3733_init(DRIVER_ADDR_1, 0);
- for (uint8_t index = 0; index < ISSI_LED_TOTAL; index++) {
+ is31fl3733_init(IS31FL3733_I2C_ADDRESS_1, IS31FL3733_SYNC_NONE);
+ for (uint8_t index = 0; index < IS31FL3733_LED_COUNT; index++) {
bool enabled = true;
is31fl3733_set_led_control_register(index, enabled, enabled, enabled);
}
- is31fl3733_update_led_control_registers(DRIVER_ADDR_1, 0);
+ is31fl3733_update_led_control_registers(IS31FL3733_I2C_ADDRESS_1, 0);
}
static void rgb_matrix_driver_flush(void) {
- is31fl3733_update_pwm_buffers(DRIVER_ADDR_1, 0);
+ is31fl3733_update_pwm_buffers(IS31FL3733_I2C_ADDRESS_1, 0);
# if WS2812_LED_TOTAL > 0
ws2812_setleds(rgb_matrix_ws2812_array, WS2812_LED_TOTAL);
# endif
}
static void rgb_matrix_driver_set_color(int index, uint8_t red, uint8_t green, uint8_t blue) {
- if (index < ISSI_LED_TOTAL) {
+ if (index < IS31FL3733_LED_COUNT) {
is31fl3733_set_color(index, red, green, blue);
} else {
# if WS2812_LED_TOTAL > 0
- rgb_matrix_ws2812_array[index - ISSI_LED_TOTAL].r = red;
- rgb_matrix_ws2812_array[index - ISSI_LED_TOTAL].g = green;
- rgb_matrix_ws2812_array[index - ISSI_LED_TOTAL].b = blue;
+ rgb_matrix_ws2812_array[index - IS31FL3733_LED_COUNT].r = red;
+ rgb_matrix_ws2812_array[index - IS31FL3733_LED_COUNT].g = green;
+ rgb_matrix_ws2812_array[index - IS31FL3733_LED_COUNT].b = blue;
# endif
}
}
diff --git a/keyboards/kprepublic/bm60hsrgb/rev2/rules.mk b/keyboards/kprepublic/bm60hsrgb/rev2/rules.mk
index 534a21dbf3..805593ed5b 100644
--- a/keyboards/kprepublic/bm60hsrgb/rev2/rules.mk
+++ b/keyboards/kprepublic/bm60hsrgb/rev2/rules.mk
@@ -17,4 +17,4 @@ WS2812_DRIVER_REQUIRED = yes
COMMON_VPATH += $(DRIVER_PATH)/led/issi
SRC += is31fl3733.c
-QUANTUM_LIB_SRC += i2c_master.c
+I2C_DRIVER_REQUIRED = yes
diff --git a/keyboards/kprepublic/bm60hsrgb_ec/rev2/config.h b/keyboards/kprepublic/bm60hsrgb_ec/rev2/config.h
index b7e95393e5..eb1b76382b 100644
--- a/keyboards/kprepublic/bm60hsrgb_ec/rev2/config.h
+++ b/keyboards/kprepublic/bm60hsrgb_ec/rev2/config.h
@@ -18,8 +18,7 @@
#define RGBLIGHT_DEFAULT_MODE RGBLIGHT_MODE_RAINBOW_MOOD
# define RGB_DISABLE_WHEN_USB_SUSPENDED true // turn off effects when suspended
-# define DRIVER_ADDR_1 0b1010000
-# define DRIVER_COUNT 2
+# define IS31FL3733_I2C_ADDRESS_1 IS31FL3733_I2C_ADDRESS_GND_GND
# define DRIVER_1_LED_TOTAL 63
# define RGB_MATRIX_LED_COUNT DRIVER_1_LED_TOTAL
diff --git a/keyboards/kprepublic/bm60hsrgb_ec/rev2/rev2.c b/keyboards/kprepublic/bm60hsrgb_ec/rev2/rev2.c
index e738b47c40..fc40e0fa9a 100644
--- a/keyboards/kprepublic/bm60hsrgb_ec/rev2/rev2.c
+++ b/keyboards/kprepublic/bm60hsrgb_ec/rev2/rev2.c
@@ -15,7 +15,7 @@
#include "quantum.h"
#ifdef RGB_MATRIX_ENABLE
-const is31_led g_is31_leds[RGB_MATRIX_LED_COUNT] = {
+const is31fl3733_led_t g_is31fl3733_leds[RGB_MATRIX_LED_COUNT] = {
{ 0, B_1, A_1, C_1 },
{ 0, B_2, A_2, C_2 },
{ 0, B_3, A_3, C_3 },
diff --git a/keyboards/kprepublic/bm60hsrgb_iso/rev2/config.h b/keyboards/kprepublic/bm60hsrgb_iso/rev2/config.h
index 8ad699ed9a..00d55f8ee0 100644
--- a/keyboards/kprepublic/bm60hsrgb_iso/rev2/config.h
+++ b/keyboards/kprepublic/bm60hsrgb_iso/rev2/config.h
@@ -26,8 +26,7 @@
# define DISABLE_RGB_MATRIX_BAND_SPIRAL_SAT
# define DISABLE_RGB_MATRIX_RAINDROPS
# define DISABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS
-# define DRIVER_ADDR_1 0b1010000
-# define DRIVER_COUNT 1
+# define IS31FL3733_I2C_ADDRESS_1 IS31FL3733_I2C_ADDRESS_GND_GND
# define DRIVER_1_LED_TOTAL 64
@@ -82,7 +81,7 @@
// IS31FL3733+WS2812 driver setup used by this board the LED controller drivers
// are compiled unconditionally).
-#define ISSI_LED_TOTAL DRIVER_1_LED_TOTAL
+#define IS31FL3733_LED_COUNT DRIVER_1_LED_TOTAL
#define RGB_MATRIX_MAXIMUM_BRIGHTNESS 180
@@ -94,7 +93,7 @@
# define WS2812_LED_TOTAL 6
#endif
-#define RGB_MATRIX_LED_COUNT (ISSI_LED_TOTAL + WS2812_LED_TOTAL)
+#define RGB_MATRIX_LED_COUNT (IS31FL3733_LED_COUNT + WS2812_LED_TOTAL)
#ifdef RGB_MATRIX_ENABLE
# define RGB_MATRIX_KEYPRESSES
diff --git a/keyboards/kprepublic/bm60hsrgb_iso/rev2/rev2.c b/keyboards/kprepublic/bm60hsrgb_iso/rev2/rev2.c
index c4ac03e447..2cfe18e08e 100644
--- a/keyboards/kprepublic/bm60hsrgb_iso/rev2/rev2.c
+++ b/keyboards/kprepublic/bm60hsrgb_iso/rev2/rev2.c
@@ -24,7 +24,7 @@
# include "ws2812.h"
-const PROGMEM is31_led g_is31_leds[RGB_MATRIX_LED_COUNT] = {
+const PROGMEM is31fl3733_led_t g_is31fl3733_leds[IS31FL3733_LED_COUNT] = {
{ 0, B_1, A_1, C_1 },
{ 0, B_2, A_2, C_2 },
{ 0, B_3, A_3, C_3 },
@@ -148,34 +148,34 @@ bool rgb_matrix_indicators_kb(void) {
// ==========================================================================
# if WS2812_LED_TOTAL > 0
-LED_TYPE rgb_matrix_ws2812_array[WS2812_LED_TOTAL];
+rgb_led_t rgb_matrix_ws2812_array[WS2812_LED_TOTAL];
# endif
static void rgb_matrix_driver_init(void) {
i2c_init();
- is31fl3733_init(DRIVER_ADDR_1, 0);
- for (uint8_t index = 0; index < ISSI_LED_TOTAL; index++) {
+ is31fl3733_init(IS31FL3733_I2C_ADDRESS_1, IS31FL3733_SYNC_NONE);
+ for (uint8_t index = 0; index < IS31FL3733_LED_COUNT; index++) {
bool enabled = true;
is31fl3733_set_led_control_register(index, enabled, enabled, enabled);
}
- is31fl3733_update_led_control_registers(DRIVER_ADDR_1, 0);
+ is31fl3733_update_led_control_registers(IS31FL3733_I2C_ADDRESS_1, 0);
}
static void rgb_matrix_driver_flush(void) {
- is31fl3733_update_pwm_buffers(DRIVER_ADDR_1, 0);
+ is31fl3733_update_pwm_buffers(IS31FL3733_I2C_ADDRESS_1, 0);
# if WS2812_LED_TOTAL > 0
ws2812_setleds(rgb_matrix_ws2812_array, WS2812_LED_TOTAL);
# endif
}
static void rgb_matrix_driver_set_color(int index, uint8_t red, uint8_t green, uint8_t blue) {
- if (index < ISSI_LED_TOTAL) {
+ if (index < IS31FL3733_LED_COUNT) {
is31fl3733_set_color(index, red, green, blue);
} else {
# if WS2812_LED_TOTAL > 0
- rgb_matrix_ws2812_array[index - ISSI_LED_TOTAL].r = red;
- rgb_matrix_ws2812_array[index - ISSI_LED_TOTAL].g = green;
- rgb_matrix_ws2812_array[index - ISSI_LED_TOTAL].b = blue;
+ rgb_matrix_ws2812_array[index - IS31FL3733_LED_COUNT].r = red;
+ rgb_matrix_ws2812_array[index - IS31FL3733_LED_COUNT].g = green;
+ rgb_matrix_ws2812_array[index - IS31FL3733_LED_COUNT].b = blue;
# endif
}
}
diff --git a/keyboards/kprepublic/bm60hsrgb_iso/rev2/rules.mk b/keyboards/kprepublic/bm60hsrgb_iso/rev2/rules.mk
index b6b9ff1110..d84cbc0bf1 100644
--- a/keyboards/kprepublic/bm60hsrgb_iso/rev2/rules.mk
+++ b/keyboards/kprepublic/bm60hsrgb_iso/rev2/rules.mk
@@ -20,5 +20,5 @@ RGB_MATRIX_ENABLE = yes
# here manually.
COMMON_VPATH += $(DRIVER_PATH)/led/issi
SRC += is31fl3733.c
-QUANTUM_LIB_SRC += i2c_master.c
+I2C_DRIVER_REQUIRED = yes
WS2812_DRIVER_REQUIRED = yes
diff --git a/keyboards/kprepublic/bm60hsrgb_poker/rev2/config.h b/keyboards/kprepublic/bm60hsrgb_poker/rev2/config.h
index 2c0710bfe4..a877e182a6 100644
--- a/keyboards/kprepublic/bm60hsrgb_poker/rev2/config.h
+++ b/keyboards/kprepublic/bm60hsrgb_poker/rev2/config.h
@@ -77,11 +77,10 @@
// are compiled unconditionally).
// Configure the IS31FL3733 driver for per-key RGB LEDs
-#define DRIVER_COUNT 1
-#define DRIVER_ADDR_1 0b1010000
+#define IS31FL3733_I2C_ADDRESS_1 IS31FL3733_I2C_ADDRESS_GND_GND
#define DRIVER_1_LED_TOTAL 61
-#define ISSI_LED_TOTAL DRIVER_1_LED_TOTAL
+#define IS31FL3733_LED_COUNT DRIVER_1_LED_TOTAL
// Underglow LEDs are WS2812, but someone might want to use RGBLIGHT for them;
// don't use those LEDs in RGB Matrix in that case.
@@ -91,7 +90,7 @@
# define WS2812_LED_TOTAL 6
#endif
-#define RGB_MATRIX_LED_COUNT (ISSI_LED_TOTAL + WS2812_LED_TOTAL)
+#define RGB_MATRIX_LED_COUNT (IS31FL3733_LED_COUNT + WS2812_LED_TOTAL)
#ifdef RGB_MATRIX_ENABLE
# define RGB_MATRIX_KEYPRESSES
diff --git a/keyboards/kprepublic/bm60hsrgb_poker/rev2/rev2.c b/keyboards/kprepublic/bm60hsrgb_poker/rev2/rev2.c
index bd976f315a..2e66a3096e 100644
--- a/keyboards/kprepublic/bm60hsrgb_poker/rev2/rev2.c
+++ b/keyboards/kprepublic/bm60hsrgb_poker/rev2/rev2.c
@@ -21,7 +21,7 @@
# include "is31fl3733.h"
# include "ws2812.h"
-const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = {
+const is31fl3733_led_t PROGMEM g_is31fl3733_leds[IS31FL3733_LED_COUNT] = {
{ 0, B_1, A_1, C_1 },
{ 0, B_2, A_2, C_2 },
{ 0, B_3, A_3, C_3 },
@@ -144,34 +144,34 @@ bool rgb_matrix_indicators_kb(void) {
// ==========================================================================
# if WS2812_LED_TOTAL > 0
-LED_TYPE rgb_matrix_ws2812_array[WS2812_LED_TOTAL];
+rgb_led_t rgb_matrix_ws2812_array[WS2812_LED_TOTAL];
# endif
static void rgb_matrix_driver_init(void) {
i2c_init();
- is31fl3733_init(DRIVER_ADDR_1, 0);
- for (uint8_t index = 0; index < ISSI_LED_TOTAL; index++) {
+ is31fl3733_init(IS31FL3733_I2C_ADDRESS_1, IS31FL3733_SYNC_NONE);
+ for (uint8_t index = 0; index < IS31FL3733_LED_COUNT; index++) {
bool enabled = true;
is31fl3733_set_led_control_register(index, enabled, enabled, enabled);
}
- is31fl3733_update_led_control_registers(DRIVER_ADDR_1, 0);
+ is31fl3733_update_led_control_registers(IS31FL3733_I2C_ADDRESS_1, 0);
}
static void rgb_matrix_driver_flush(void) {
- is31fl3733_update_pwm_buffers(DRIVER_ADDR_1, 0);
+ is31fl3733_update_pwm_buffers(IS31FL3733_I2C_ADDRESS_1, 0);
# if WS2812_LED_TOTAL > 0
ws2812_setleds(rgb_matrix_ws2812_array, WS2812_LED_TOTAL);
# endif
}
static void rgb_matrix_driver_set_color(int index, uint8_t red, uint8_t green, uint8_t blue) {
- if (index < ISSI_LED_TOTAL) {
+ if (index < IS31FL3733_LED_COUNT) {
is31fl3733_set_color(index, red, green, blue);
} else {
# if WS2812_LED_TOTAL > 0
- rgb_matrix_ws2812_array[index - ISSI_LED_TOTAL].r = red;
- rgb_matrix_ws2812_array[index - ISSI_LED_TOTAL].g = green;
- rgb_matrix_ws2812_array[index - ISSI_LED_TOTAL].b = blue;
+ rgb_matrix_ws2812_array[index - IS31FL3733_LED_COUNT].r = red;
+ rgb_matrix_ws2812_array[index - IS31FL3733_LED_COUNT].g = green;
+ rgb_matrix_ws2812_array[index - IS31FL3733_LED_COUNT].b = blue;
# endif
}
}
diff --git a/keyboards/kprepublic/bm60hsrgb_poker/rev2/rules.mk b/keyboards/kprepublic/bm60hsrgb_poker/rev2/rules.mk
index 5db18e7cfa..92b33edc1f 100644
--- a/keyboards/kprepublic/bm60hsrgb_poker/rev2/rules.mk
+++ b/keyboards/kprepublic/bm60hsrgb_poker/rev2/rules.mk
@@ -19,5 +19,5 @@ RGB_MATRIX_ENABLE = yes
# here manually.
COMMON_VPATH += $(DRIVER_PATH)/led/issi
SRC += is31fl3733.c
-QUANTUM_LIB_SRC += i2c_master.c
+I2C_DRIVER_REQUIRED = yes
WS2812_DRIVER_REQUIRED = yes
diff --git a/keyboards/kprepublic/bm68hsrgb/rev2/config.h b/keyboards/kprepublic/bm68hsrgb/rev2/config.h
index 3e74f353f9..078085779b 100644
--- a/keyboards/kprepublic/bm68hsrgb/rev2/config.h
+++ b/keyboards/kprepublic/bm68hsrgb/rev2/config.h
@@ -18,9 +18,8 @@
#define RGBLIGHT_DEFAULT_MODE RGBLIGHT_MODE_RAINBOW_MOOD
-#define DRIVER_ADDR_1 0b0110000
+#define IS31FL3741_I2C_ADDRESS_1 IS31FL3741_I2C_ADDRESS_GND
-#define DRIVER_COUNT 1
#define DRIVER_1_LED_TOTAL 68
#define RGB_MATRIX_LED_COUNT DRIVER_1_LED_TOTAL
#define DRIVER_INDICATOR_LED_TOTAL 0
diff --git a/keyboards/kprepublic/bm68hsrgb/rev2/rev2.c b/keyboards/kprepublic/bm68hsrgb/rev2/rev2.c
index 7251a24067..057b4669f5 100644
--- a/keyboards/kprepublic/bm68hsrgb/rev2/rev2.c
+++ b/keyboards/kprepublic/bm68hsrgb/rev2/rev2.c
@@ -17,7 +17,7 @@
#ifdef RGB_MATRIX_ENABLE
-const is31_led g_is31_leds[RGB_MATRIX_LED_COUNT] = {
+const is31fl3741_led_t g_is31fl3741_leds[RGB_MATRIX_LED_COUNT] = {
{0, CS6_SW1, CS5_SW1, CS4_SW1},
{0, CS6_SW2, CS5_SW2, CS4_SW2},
{0, CS6_SW3, CS5_SW3, CS4_SW3},
diff --git a/keyboards/kprepublic/bm80v2/bm80v2.c b/keyboards/kprepublic/bm80v2/bm80v2.c
index 7a224c9ad0..13d67cdd56 100644
--- a/keyboards/kprepublic/bm80v2/bm80v2.c
+++ b/keyboards/kprepublic/bm80v2/bm80v2.c
@@ -16,7 +16,7 @@
#ifdef RGB_MATRIX_ENABLE
-const is31_led g_is31_leds[RGB_MATRIX_LED_COUNT] = {
+const is31fl3741_led_t g_is31fl3741_leds[RGB_MATRIX_LED_COUNT] = {
{0, CS6_SW1, CS5_SW1, CS4_SW1},
{0, CS6_SW3, CS5_SW3, CS4_SW3},
{0, CS6_SW4, CS5_SW4, CS4_SW4},
diff --git a/keyboards/kprepublic/bm80v2/config.h b/keyboards/kprepublic/bm80v2/config.h
index 98a784d638..91ad6350e0 100644
--- a/keyboards/kprepublic/bm80v2/config.h
+++ b/keyboards/kprepublic/bm80v2/config.h
@@ -53,8 +53,7 @@
#define ENABLE_RGB_MATRIX_MULTISPLASH
#define ENABLE_RGB_MATRIX_SOLID_SPLASH
#define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH
-#define DRIVER_ADDR_1 0b0110000
-#define DRIVER_COUNT 1
+#define IS31FL3741_I2C_ADDRESS_1 IS31FL3741_I2C_ADDRESS_GND
#define DRIVER_1_LED_TOTAL 87
#define RGB_MATRIX_LED_COUNT DRIVER_1_LED_TOTAL
diff --git a/keyboards/kprepublic/bm80v2_iso/bm80v2_iso.c b/keyboards/kprepublic/bm80v2_iso/bm80v2_iso.c
index dea1a76d78..3b8daf5fee 100644
--- a/keyboards/kprepublic/bm80v2_iso/bm80v2_iso.c
+++ b/keyboards/kprepublic/bm80v2_iso/bm80v2_iso.c
@@ -16,7 +16,7 @@
#ifdef RGB_MATRIX_ENABLE
-const is31_led g_is31_leds[RGB_MATRIX_LED_COUNT] = {
+const is31fl3741_led_t g_is31fl3741_leds[RGB_MATRIX_LED_COUNT] = {
{0, CS6_SW1, CS5_SW1, CS4_SW1},
{0, CS6_SW3, CS5_SW3, CS4_SW3},
{0, CS6_SW4, CS5_SW4, CS4_SW4},
diff --git a/keyboards/kprepublic/bm80v2_iso/config.h b/keyboards/kprepublic/bm80v2_iso/config.h
index 526150acbd..a086185993 100644
--- a/keyboards/kprepublic/bm80v2_iso/config.h
+++ b/keyboards/kprepublic/bm80v2_iso/config.h
@@ -54,8 +54,7 @@
#define ENABLE_RGB_MATRIX_MULTISPLASH
#define ENABLE_RGB_MATRIX_SOLID_SPLASH
#define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH
-#define DRIVER_ADDR_1 0b0110000
-#define DRIVER_COUNT 1
+#define IS31FL3741_I2C_ADDRESS_1 IS31FL3741_I2C_ADDRESS_GND
#define DRIVER_1_LED_TOTAL 88
#define RGB_MATRIX_LED_COUNT DRIVER_1_LED_TOTAL
diff --git a/keyboards/kprepublic/cstc40/config.h b/keyboards/kprepublic/cstc40/config.h
index c430986895..75ddd104ae 100644
--- a/keyboards/kprepublic/cstc40/config.h
+++ b/keyboards/kprepublic/cstc40/config.h
@@ -6,7 +6,6 @@
#define I2C1_SDA_PIN B9
#define I2C1_SCL_PIN B8
#define DRIVER_ADDR_1 0b1010000
-#define DRIVER_COUNT 1
#define RGB_MATRIX_LED_COUNT 47
#define RGB_MATRIX_FRAMEBUFFER_EFFECTS
diff --git a/keyboards/kprepublic/jj40/keymaps/ajp10304/readme.md b/keyboards/kprepublic/jj40/keymaps/ajp10304/readme.md
deleted file mode 100644
index 9362c10650..0000000000
--- a/keyboards/kprepublic/jj40/keymaps/ajp10304/readme.md
+++ /dev/null
@@ -1,126 +0,0 @@
-# AJP10304 Custom JJ40 Layout
-# Also available for the Planck, Shark, Quark and Atreus50
-
-**Note:** In the tables below where there are two characters on a key,
-the second is the output when shift is applied.
-
-**Note:** The below tables assume a UK layout.
-
-#### Flashing
-Refer to the README.md of the keyboard you want to flash.
-
-##### Main Qwerty Layer
-
-* Tab: when held, operates as shift.
-* Enter: when held, operates as shift.
-* MENU: perform right-click
-
-| | | | | | | | | | | | |
-| ---- |:----:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| ----:|
-| Esc | Q | W | E | R | T | Y | U | I | O | P | Bksp |
-| Tab | A | S | D | F | G | H | J | K | L | ;: | Enter|
-| Shft | Z | X | C | V | B | N | M | ,< | .> | /? | Shft |
-| Fn | Ctrl | Alt | GUI |Lower | Bksp |Space |Raise | Shift| MENU | Ctrl | Fn2 |
-
-##### Main Colemak-DHm Layer
-
-| | | | | | | | | | | | |
-| ---- |:----:| :---:|:---:|:-----:|:----:|:-----:|:-----:|:-----:|:----:|:----:| ----:|
-| Esc | Q | W | F | P | B | J | L | U | Y | ;: | Bksp |
-| Tab | A | R | S | T | G | M | N | E | I | O | Enter|
-| Shft | Z | X | C | D | V | K | H | ,< | .> | /? | Shft |
-| Fn | Ctrl | Alt | GUI | Lower | Bksp | Space | Raise | Shift | MENU | Ctrl | Fn2 |
-
-##### Function Layer
-Activated when `fn` held in the above `qwerty` layer.
-
-| | | | | | | | | | | | |
-| :---: |:----:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:|
-| F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 |
-| 1! | 2" | 3£ | 4$ | 5% | 6^ | 7& | 8* | 9( | 0) | ~ |INSERT|
-| Shift | \| | `¬ | #~ | * | -_ | =+ | \| | [{ | ]} | '@ |Shift |
-| Fn | Ctrl | Alt | GUI |Lower | Bksp |Space |Mouse | MENU | Alt | Ctrl | Fn2 |
-
-##### Lower Layer
-Activated when `Lower` is held in the above `qwerty` layer.
-
-* Numbers are along the top row, their shifted counterparts are on row 2.
-* WrdBks: `backspace` with `ctrl` applied. I.e. delete a word.
-* WrdDel: `delete` with `ctrl` applied. I.e. forward delete a word.
-
-| | | | | | | | | | | | |
-| :---: |:----:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:|
-| 1! | 2" | 3£ | 4$ | 5% | 6^ | 7& | 8* | 9( | 0) | DEL | Bksp |
-| ! | " | £ | $ | % | ^ | & | * | ( | ) |WrdDel|WrdBks|
-| Shift | \| | `¬ | #~ | '@ | -_ | =+ | #~ | [{ | ]} | '@ |Shift |
-| | | | |Lower | Del |Space | | Next | Vol- | Vol+ | Play |
-
-##### Raise Layer
-Activated when `Raise` is held in the above `qwerty` layer.
-
-* Preferred layer for typing brackets.
-* Allows for cursor navigation to be used solely with the right hand.
-* WRDSEL: Select the word where the cursor is.
-* |< and >|: Apply `ctrl` to `left` and `right` respectively for word jumping.
-
-| | | | | | | | | | | | |
-| :---: |:----:| :---:| :---:| :---:| :---:| :---: | :---:| :---:| :---:| :---: | :---:|
-| ` | |WRDSEL| [ | ] | | | PGUP | HOME |PGDOWN| |PRNTSC|
-| ` | | | ( | ) | | | HOME | UP | END | |ZOOM +|
-| | | | { | } | |&#124;<| LEFT | DOWN |RIGHT |>&#124;|ZOOM -|
-| Mouse | | | | | Alt | Enter |Raise | | | | |
-
-##### Lower + Raise
-Activated when `Lower` and `Raise` are held together in the above `qwerty` layer.
-
-* Audio controls in the same position as cursor keys from the `Raise` layer.
-* ????: Runs a macro for outputting a text string. Do not use this store passwords.
-* Reset: Enter bootloader for flashing firmware to the keyboard.
-* CAPS: Toggle caps lock.
-* Macro functions: Allows recording of macros. To start recording the macro, press either REC1 or REC2.
-To finish the recording, press STOP. To replay the macro, press either PLAY1 or PLAY2.
-* MAC: Toggle MAC OS extensions to layers. This allows MLWR to be enabled with LOWER,
-MRSE with RAISE, MFNC with FUNC and MFNC2 with FUNC2 respectively.
-
-| | | | | | | | | | | | |
-| :---: |:----:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:|:-------:|
-| ???? | Reset|Qwerty| | | REC1 | REC2 | | | | | Del |
-| CAPS | | | | | PLAY1|PLAY2 | Mute | Vol+ | Play | | Qwerty |
-| MAC | | | | | STOP1|STOP2 | Prev | Vol- | Next | | Colemak |
-| | | | | | | | | DYN | | | |
-
-##### Function 2 Layer
-Activated when `fn` held in the above `qwerty` layer.
-* WRDSEL: Select the word where the cursor is.
-* LNDEL: Delete the line where the cursor is.
-* LNSEL: Select the line where the cursor is.
-* DUP: Duplicate the selected text.
-* LNJOIN: Join the line where the cursor is with the following line.
-* MODE: Print either `PC` or `OSX` depending on what layer mode is active.
-
-| | | | | | | | | | | | |
-| :---: | :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:|
-| | |WRDSEL| | | | LNDEL| | | | | |
-| | | LNSEL| DUP | | | | |LNJOIN| | | |
-| | UNDO | CUT | COPY | PASTE| | | | | | | MODE |
-| | | | | | | | | | | | |
-
-##### Mouse Layer
-Activated when `fn` and `raise` held together.
-
-| | | | | | | | | | | | |
-| :---: | :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:|
-| ESC | | | | | | W_L | W_UP | BTN3 | W_DWN| W_R | |
-| ACC0 | ACC1 | ACC2 | | | | | BTN1 | UP | BTN2 | | |
-| ACC0 | ACC1 | ACC2 | | | | | LEFT | DOWN | RIGHT| | |
-| | | | | | | | | | | | |
-
-##### Number Pad Layout
-Activated when holding `Esc` key.
-
-| | | | | | | | | | | | |
-| :---: | :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:|
-| | | | | | |NMLOCK| 7 | 8 | 9 | / | |
-| | | | | | | | 4 | 5 | 6 | * | |
-| | | | | | | | 1 | 2 | 3 | + | |
-| | | | | | | | 0 | . | , | - | |
diff --git a/keyboards/ktec/ergodone/keymaps/art/.gitignore b/keyboards/ktec/ergodone/keymaps/art/.gitignore
deleted file mode 100644
index 46bb98e431..0000000000
--- a/keyboards/ktec/ergodone/keymaps/art/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-*user_config.c \ No newline at end of file
diff --git a/keyboards/ktec/ergodone/keymaps/art/keymap.c b/keyboards/ktec/ergodone/keymaps/art/keymap.c
deleted file mode 100644
index 9942b7b307..0000000000
--- a/keyboards/ktec/ergodone/keymaps/art/keymap.c
+++ /dev/null
@@ -1,453 +0,0 @@
-// Copyright 2022 Artjoms Rizihs (@artjomsR)
-// SPDX-License-Identifier: GPL-2.0-or-later
-
-#include "art.h"
-#include "sendstring_workman_zxcvm.h"
-
-enum custom_keycodes {
- keyboardSpecificKeyCode = NEW_SAFE_RANGE //not used
-};
-
-void num_led_on(void) {
- ergodox_right_led_1_on();
-}
-
-void num_led_off(void) {
- ergodox_right_led_1_off();
-}
-
-void caps_led_on(void) {
- ergodox_right_led_2_on();
-}
-
-void caps_led_off(void) {
- ergodox_right_led_2_off();
-}
-
-void scroll_led_on(void) {
- ergodox_right_led_3_on();
-}
-
-void scroll_led_off(void) {
- ergodox_right_led_3_off();
-}
-
-layer_state_t layer_state_set_user(layer_state_t state) {
- num_led_off();
- scroll_led_off();
- switch (get_highest_layer(state)) {
- case MEDIA:
- case WORKMAN:
- scroll_led_on();
- case NAV:
- case CTRL_NAV:
- case SHIFT_NAV:
- num_led_on();
- break;
- case FKEYS:
- scroll_led_on();
- break;
- }
- return state;
-};
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-/* Base qwerty layer
- *
- * ,--------------------------------------------------. ,--------------------------------------------------.
- * | ` ~ | 1 | 2 | 3 | 4 | 5 | ESC | | - _ | 6 | 7 | 8 | 9 | 0 | ] |
- * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | Tab | Q | W | E | R | T | \ | | = | Y | U | I | O | P | [ |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | Caps | A | S | D | F | G |------| |------| H | J | K | L | ; | ' |
- * |--------+------+------+------+------+------| FKEYS| | FKEYS|------+------+------+------+------+--------|
- * | LShift | Z | X | C | V | B | | | | N | M | , | . | / git| RShift |
- * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * | <- | -> | Win |Alt | ctrl | | Home | End |Workmn| | RCtrl|
- * `----------------------------------' `----------------------------------'
- * ,-------------. ,---------------.
- * | Del | Ins | | Left | Right |
- * ,------|------|------| |------+--------+------.
- * | | | PgUp | |SFT_NV| | |
- * | Space|BSpace|------| |------| NAV |Enter |
- * | | | PgDn | |CTR_NV| | |
- * `--------------------' `----------------------'
- */
-[QWERTY] = LAYOUT_ergodox(
- // -----------------------------------------------------left hand-----------------------------------------------------
- KC_GRAVE, KC_1, KC_2, KC_3, KC_4, KC_5, KC_ESCAPE,
- KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_BSLS,
- KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G,
- KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, TT(FKEYS),
- KC_LEFT, KC_RIGHT, KC_LWIN, KC_LALT, KC_LCTL,
-
- KC_INS, KC_PGUP,
- LT(MEDIA,KC_PGDN),
- LT(NAV,KC_SPC), KC_BSPC, LT(COMBOS,KC_DEL),
-
- // -----------------------------------------------------right hand-----------------------------------------------------
- KC_MINS, KC_6, KC_7, KC_8, KC_9, KC_0, KC_RBRC,
- KC_EQL, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC,
- KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
- TT(FKEYS), KC_N, KC_M, KC_COMM, KC_DOT, LT(GIT,KC_SLSH), KC_RSFT,
- KC_HOME, KC_END, TO(WORKMAN), KC_RALT, KC_RCTL,
-
- KC_LEFT, KC_RIGHT,
- LT(SHIFT_NAV, KC_UP),
- LT(CTRL_NAV, KC_DOWN), TT(NAV), KC_ENT
-),
-/* Workman
- *
- * ,--------------------------------------------------. ,--------------------------------------------------.
- * | | | | | | | | | | | | | | | |
- * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | | Q | D | R | W | B | | | | J | F | U | P | ; | |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | A | S | H | T | G |------| |------| Y | N | E | O | I | |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | Z | X | C | V | M | | | | K | L | , | . | / | |
- * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * | | | | | | | | |QWERTY| | |
- * `----------------------------------' `----------------------------------'
- * ,-------------. ,---------------.
- * | | | | | |
- * ,------|------|------| |------+--------+------.
- * | | | | | | | |
- * | | |------| |------| | |
- * | | | | | | | |
- * `--------------------' `----------------------'
- */
-[WORKMAN] = LAYOUT_ergodox(
- // -----------------------------------------------------left hand-----------------------------------------------------
- _______, _______, _______, _______, _______, _______, _______,
- _______, KC_Q, KC_D, KC_R, KC_W, KC_B, _______,
- _______, KC_A, KC_S, KC_H, KC_T, KC_G,
- _______, KC_Z, KC_X, KC_C, KC_V, KC_M, _______,
- _______, _______, _______, _______, _______,
-
- _______, _______,
- _______,
- _______, _______, _______,
-
- // -----------------------------------------------------right hand-----------------------------------------------------
- _______, _______, _______, _______, _______, _______, _______,
- _______, KC_J, KC_F, KC_U, KC_P, KC_SCLN, _______,
- KC_Y, KC_N, KC_E, KC_O, KC_I, _______,
- _______, KC_K, KC_L, _______, _______, _______, _______,
- _______, _______, TO(QWERTY), _______, _______,
-
- _______, _______,
- _______,
- _______, _______, _______
-),
-
-[FKEYS] = LAYOUT_ergodox(
- // -----------------------------------------------------left hand-----------------------------------------------------
- _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, _______,
- _______, _______, _______, _______, _______, _______, KC_LALT,
- _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______,
-
- _______, _______,
- _______,
- _______, _______, _______,
- // -----------------------------------------------------right hand-----------------------------------------------------
- _______, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, _______,
- KC_LALT, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, KC_F11,
- _______, _______, _______, KC_PSCR, KC_F12,
-
- _______, _______,
- _______,
- _______, _______, _______
-),
-
-[NAV] = LAYOUT_ergodox(
- // -----------------------------------------------------left hand-----------------------------------------------------
- _______, _______, _______, _______, _______, _______, _______,
- _______, KC_ESC, KC_HOME, KC_UP, KC_END, KC_PGUP, _______,
- _______, XXXXXXX, KC_LEFT, KC_DOWN, KC_RIGHT, KC_PGDN,
- _______, LCTL(KC_Z), LCTL(KC_X), LCTL(KC_C), LCTL(KC_V), XXXXXXX, _______,
- _______, _______, _______, _______, _______,
-
- _______, _______,
- _______,
- KC_DEL, _______, _______,
- // -----------------------------------------------------right hand-----------------------------------------------------
- _______, _______, _______, _______, _______, _______, _______,
- _______, XXXXXXX, KC_MS_BTN1, KC_MS_BTN3, KC_MS_BTN2, _______, _______,
- KC_APP, CTR_ALT, KC_RSFT, CTR_ALT_SHIFT, _______, _______,
- _______, XXXXXXX, XXXXXXX, _______, _______, _______, _______,
- _______, _______, _______, _______, _______,
-
- _______, _______,
- _______,
- _______, _______, _______
-),
-
-[CTRL_NAV] = LAYOUT_ergodox(
- // -----------------------------------------------------left hand-----------------------------------------------------
- _______, _______, _______, _______, _______, _______, _______,
- _______, _______, CTL_ALT(KC_HOME), CTL_ALT(KC_UP), CTL_ALT(KC_END), CTL_ALT(KC_PGUP), _______,
- _______, _______, CTL_ALT(KC_LEFT), CTL_ALT(KC_DOWN), CTL_ALT(KC_RIGHT),CTL_ALT(KC_PGDN),
- _______, _______, LCTL(KC_X), LCTL(KC_C), LCTL(KC_V), _______, _______,
- _______, _______, _______, _______, _______,
-
- CTL_ALT(KC_DEL), _______,
- _______,
- _______, CTL_ALT(KC_BSPC), CTL_ALT(KC_DEL),
- // -----------------------------------------------------right hand-----------------------------------------------------
- _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______,
- CTL_ALT(KC_HOME), CTL_ALT(KC_END), _______, _______, _______,
-
- CTL_ALT(KC_LEFT), CTL_ALT(KC_RIGHT),
- KC_RSFT,
- _______, _______, _______
-),
-
-[SHIFT_NAV] = LAYOUT_ergodox(
- // -----------------------------------------------------left hand-----------------------------------------------------
- _______, _______, _______, _______, _______, _______, _______,
- _______, _______, LSFT(KC_HOME), LSFT(KC_UP), LSFT(KC_END), LSFT(KC_PGUP), _______,
- _______, _______, LSFT(KC_LEFT), LSFT(KC_DOWN), LSFT(KC_RIGHT), LSFT(KC_PGDN),
- _______, _______, LCTL(KC_X), LCTL(KC_C), LCTL(KC_V), _______, _______,
- _______, _______, _______, _______, _______,
-
- _______, _______,
- _______,
- _______, _______, _______,
-
-
- // -----------------------------------------------------right hand-----------------------------------------------------
- _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______,
- LSFT(KC_HOME), LSFT(KC_END), _______, _______, _______,
-
- LSFT(KC_LEFT), LSFT(KC_RIGHT),
- _______,
- CTR_ALT, _______, _______
-),
-
-[COMBOS] = LAYOUT_ergodox(
- // -----------------------------------------------------left hand-----------------------------------------------------
- TILD_BLOCK, _______, QUOTES_RU, K_CUST1, K_CUST2, K_CUST3, _______,
- _______, _______, _______, NEUTRAL_COPY, _______, BEAT_BROWSER, _______,
- _______, ADMINS, SARCASM, ALL_BEST, CTRL_CTV, _______,
- _______, _______, _______, CTRL_CAV, _______, LMB_SPAM, _______,
- _______, _______, _______, _______, _______,
-
- _______, _______,
- _______,
- _______, _______, _______,
-
- // -----------------------------------------------------right hand-----------------------------------------------------
- DASHES, _______, _______, STARS, PARENTHS, _______, TOG_OS,
- _______, K_SECR1, K_SECR2, K_SECR3, K_SECR4, _______, BRACES,
- AT_EMAIL, _______, _______, _______, _______, QUOTES,
- _______, _______, CTRL_LCTV, _______, _______, _______, _______,
- _______, _______, _______, _______, _______,
-
- _______, _______,
- _______,
- _______, _______, _______
-),
-
-// [STRINGS] = LAYOUT_ergodox(
-// // -----------------------------------------------------left hand-----------------------------------------------------
-// _______, _______, _______, _______, _______, _______, _______,
-// _______, _______, _______, _______, _______, _______, _______,
-// _______, _______, _______, _______, _______, _______,
-// _______, _______, _______, _______, _______, _______, _______,
-// _______, _______, _______, _______, _______,
-
-// _______, _______,
-// _______,
-// _______, _______, _______,
-
-// // -----------------------------------------------------right hand-----------------------------------------------------
-// _______, _______, _______, _______, _______, _______, _______,
-// _______, _______, _______, _______, _______, _______, _______,
-// _______, _______, _______, _______, _______, _______,
-// _______, _______, _______, _______, _______, _______, _______,
-// _______, _______, _______, _______, _______,
-
-// _______, _______,
-// _______,
-// _______, _______, _______
-// ),
-
-[MEDIA] = LAYOUT_ergodox(
- // -----------------------------------------------------left hand-----------------------------------------------------
- _______, _______, _______, _______, _______, _______, _______,
- XXXXXXX, KC_MPRV, KC_VOLU, KC_MNXT, _______, _______, _______,
- _______, _______, KC_VOLD, _______, _______, _______,
- _______, _______, KC_MUTE, KC_MPLY, _______, _______, _______,
- _______, _______, _______, _______, _______,
-
- _______, _______,
- _______,
- _______, _______, _______,
-
- // -----------------------------------------------------right hand-----------------------------------------------------
- _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______,
-
- _______, _______,
- _______,
- _______, _______, _______
-),
-
-[GIT] = LAYOUT_ergodox(
- // -----------------------------------------------------left hand-----------------------------------------------------
- _______, _______, _______, _______, _______, _______, _______,
- _______, _______, G_DIFF, G_R, _______, G_BRCH, _______,
- _______, G_ADD, G_S, _______, _______, _______,
- _______, G_DEV, _______, G_C, _______, G_MERG, _______,
- _______, _______, _______, _______, _______,
-
- _______, _______,
- _______,
- _______, _______, _______,
-
- // -----------------------------------------------------right hand-----------------------------------------------------
- _______, _______, _______, _______, _______, _______, _______,
- _______, _______, G_FTCH, G_PULL, G_PUSH, _______, _______,
- _______, _______, _______, _______, _______, _______,
- _______, _______, G_LOG, _______, XXXXXXX, _______, _______,
- _______, _______, _______, _______, _______,
-
- _______, _______,
- _______,
- _______, _______, _______
-),
-
-[GIT_C] = LAYOUT_ergodox(
- // -----------------------------------------------------left hand-----------------------------------------------------
- XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
- XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
- XXXXXXX, XXXXXXX, XXXXXXX, G_CHEC, XXXXXXX, XXXXXXX,
- _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
- XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______,
-
- XXXXXXX, XXXXXXX,
- XXXXXXX,
- XXXXXXX, KC_BSPC, XXXXXXX,
-
- // -----------------------------------------------------right hand-----------------------------------------------------
- XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
- XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
- XXXXXXX, XXXXXXX, XXXXXXX, G_COMM, XXXXXXX, XXXXXXX,
- XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______,
- XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______,
-
- XXXXXXX, XXXXXXX,
- XXXXXXX,
- XXXXXXX, XXXXXXX, XXXXXXX
-),
-
-[GIT_R] = LAYOUT_ergodox(
- // -----------------------------------------------------left hand-----------------------------------------------------
- XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
- XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, G_RBASE, XXXXXXX,
- XXXXXXX, XXXXXXX, G_RST, XXXXXXX, XXXXXXX, XXXXXXX,
- _______, XXXXXXX, XXXXXXX, XXXXXXX, G_RVERT, XXXXXXX, XXXXXXX,
- XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______,
-
- XXXXXXX, XXXXXXX,
- XXXXXXX,
- XXXXXXX, KC_BSPC, XXXXXXX,
-
- // -----------------------------------------------------right hand-----------------------------------------------------
- XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
- XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
- XXXXXXX, XXXXXXX, XXXXXXX, G_COMM, XXXXXXX, XXXXXXX,
- XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______,
- XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______,
-
- XXXXXXX, XXXXXXX,
- XXXXXXX,
- XXXXXXX, XXXXXXX, XXXXXXX
-),
-
-[GIT_S] = LAYOUT_ergodox(
- // -----------------------------------------------------left hand-----------------------------------------------------
- XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
- XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
- XXXXXXX, XXXXXXX, G_STSH, G_SHOW, G_STAT, XXXXXXX,
- _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
- XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______,
-
- XXXXXXX, XXXXXXX,
- XXXXXXX,
- XXXXXXX, KC_BSPC, XXXXXXX,
-
- // -----------------------------------------------------right hand-----------------------------------------------------
- XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
- XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
- XXXXXXX, XXXXXXX, XXXXXXX, G_COMM, XXXXXXX, XXXXXXX,
- XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______,
- XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______,
-
- XXXXXXX, XXXXXXX,
- XXXXXXX,
- XXXXXXX, XXXXXXX, XXXXXXX
-),
-
-
-/* Numpad
- *
- * ,--------------------------------------------------.
- * | | | | | | / | |
- * |------+------+------+------+------+------+--------|
- * | | | 7 | 8 | 9 | * | |
- * | |------+------+------+------+------+--------|
- * |------| | 4 | 5 | 6 | - | Enter |
- * | |------+------+------+------+------+--------|
- * | | | 1 | 2 | 3 | + | Enter |
- * `-------------+------+------+------+------+--------'
- * | | 0 | . | Calc | Calc |
- * `----------------------------------'
- */
-
-// [] = LAYOUT_ergodox(
-// // -----------------------------------------------------left hand-----------------------------------------------------
-// _______, _______, _______, _______, _______, _______, _______,
-// _______, _______, _______, _______, _______, _______, _______,
-// _______, _______, _______, _______, _______, _______,
-// _______, _______, _______, _______, _______, _______, _______,
-// _______, _______, _______, _______, _______,
-
-// _______, _______,
-// _______,
-// _______, _______, _______,
-
-// // -----------------------------------------------------right hand-----------------------------------------------------
-// _______, _______, _______, _______, _______, _______, _______,
-// _______, _______, _______, _______, _______, _______, _______,
-// _______, _______, _______, _______, _______, _______,
-// _______, _______, _______, _______, _______, _______, _______,
-// _______, _______, _______, _______, _______,
-
-// _______, _______,
-// _______,
-// _______, _______, _______
-// ),
-
-};
-
-bool process_record_keymap(uint16_t keycode, keyrecord_t *record) {
- switch (keycode) {
-
- }
- return true;
-}
diff --git a/keyboards/ktec/ergodone/keymaps/art/rules.mk b/keyboards/ktec/ergodone/keymaps/art/rules.mk
deleted file mode 100644
index e1e10174a2..0000000000
--- a/keyboards/ktec/ergodone/keymaps/art/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-SRC += user_config.c
diff --git a/keyboards/ktec/ergodone/keymaps/art/user_config.c.example b/keyboards/ktec/ergodone/keymaps/art/user_config.c.example
deleted file mode 100644
index baa169f9a3..0000000000
--- a/keyboards/ktec/ergodone/keymaps/art/user_config.c.example
+++ /dev/null
@@ -1,6 +0,0 @@
-// Copyright 2022 Artjoms Rizihs (@artjomsR)
-// SPDX-License-Identifier: GPL-2.0-or-later
-
-#include QMK_KEYBOARD_H
-
-bool is_win = true;
diff --git a/keyboards/ktec/ergodone/rules.mk b/keyboards/ktec/ergodone/rules.mk
index 3ec1a7cf43..d9b0148499 100644
--- a/keyboards/ktec/ergodone/rules.mk
+++ b/keyboards/ktec/ergodone/rules.mk
@@ -3,4 +3,4 @@ CUSTOM_MATRIX = lite
VPATH += drivers/gpio
SRC += mcp23018.c matrix.c
-QUANTUM_LIB_SRC += i2c_master.c
+I2C_DRIVER_REQUIRED = yes
diff --git a/keyboards/latincompass/latin17rgb/config.h b/keyboards/latincompass/latin17rgb/config.h
index 7908e4ceca..fbeb499c4e 100644
--- a/keyboards/latincompass/latin17rgb/config.h
+++ b/keyboards/latincompass/latin17rgb/config.h
@@ -69,17 +69,9 @@
// # define ENABLE_RGB_MATRIX_SOLID_SPLASH
// # define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH
- // This is a 7-bit address, that gets left-shifted and bit 0
- // set to 0 for write, 1 for read (as per I2C protocol)
- // The address will vary depending on your wiring:
- // 0b1110100 AD <-> GND
- // 0b1110111 AD <-> VCC
- // 0b1110101 AD <-> SCL
- // 0b1110110 AD <-> SDA
-# define DRIVER_ADDR_1 0b1110100
-# define DRIVER_ADDR_2 0b1110110
+# define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND
+# define IS31FL3731_I2C_ADDRESS_2 IS31FL3731_I2C_ADDRESS_SDA
-# define DRIVER_COUNT 2
# define DRIVER_1_LED_TOTAL 25
# define DRIVER_2_LED_TOTAL 24
# define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL)
diff --git a/keyboards/latincompass/latin17rgb/latin17rgb.c b/keyboards/latincompass/latin17rgb/latin17rgb.c
index c758e8eb35..b75a11d965 100644
--- a/keyboards/latincompass/latin17rgb/latin17rgb.c
+++ b/keyboards/latincompass/latin17rgb/latin17rgb.c
@@ -17,7 +17,7 @@
#ifdef RGB_MATRIX_ENABLE
-const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = {
+const is31fl3731_led_t PROGMEM g_is31fl3731_leds[RGB_MATRIX_LED_COUNT] = {
/* Refer to IS31 manual for these locations
* driver
* | R location
diff --git a/keyboards/latincompass/latin60rgb/config.h b/keyboards/latincompass/latin60rgb/config.h
index 96e8b75a8e..a25d3b0696 100644
--- a/keyboards/latincompass/latin60rgb/config.h
+++ b/keyboards/latincompass/latin60rgb/config.h
@@ -67,7 +67,6 @@
// # define ENABLE_RGB_MATRIX_MULTISPLASH
// # define ENABLE_RGB_MATRIX_SOLID_SPLASH
// # define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH
-# define DRIVER_ADDR_1 0b1010000
-# define DRIVER_COUNT 1
+# define IS31FL3733_I2C_ADDRESS_1 IS31FL3733_I2C_ADDRESS_GND_GND
# define RGB_MATRIX_LED_COUNT 60
#endif
diff --git a/keyboards/latincompass/latin60rgb/latin60rgb.c b/keyboards/latincompass/latin60rgb/latin60rgb.c
index 26431fa61b..a915bede80 100644
--- a/keyboards/latincompass/latin60rgb/latin60rgb.c
+++ b/keyboards/latincompass/latin60rgb/latin60rgb.c
@@ -16,7 +16,7 @@
#include "quantum.h"
#ifdef RGB_MATRIX_ENABLE
-const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = {
+const is31fl3733_led_t PROGMEM g_is31fl3733_leds[RGB_MATRIX_LED_COUNT] = {
{ 0, K_13, J_13, L_13 },
{ 0, K_12, J_12, L_12 },
{ 0, K_11, J_11, L_11 },
diff --git a/keyboards/latincompass/latin6rgb/config.h b/keyboards/latincompass/latin6rgb/config.h
index 1a6518c897..584e39a327 100644
--- a/keyboards/latincompass/latin6rgb/config.h
+++ b/keyboards/latincompass/latin6rgb/config.h
@@ -70,16 +70,8 @@
// # define ENABLE_RGB_MATRIX_SOLID_SPLASH
// # define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH
-// This is a 7-bit address, that gets left-shifted and bit 0
-// set to 0 for write, 1 for read (as per I2C protocol)
-// The address will vary depending on your wiring:
-// 0b1110100 AD <-> GND
-// 0b1110111 AD <-> VCC
-// 0b1110101 AD <-> SCL
-// 0b1110110 AD <-> SDA
-#define DRIVER_ADDR_1 0b1110100
+#define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND
-#define DRIVER_COUNT 1
#define RGB_MATRIX_LED_COUNT 6
#endif
diff --git a/keyboards/latincompass/latin6rgb/latin6rgb.c b/keyboards/latincompass/latin6rgb/latin6rgb.c
index b7c05dd4ad..a1eb38b9af 100644
--- a/keyboards/latincompass/latin6rgb/latin6rgb.c
+++ b/keyboards/latincompass/latin6rgb/latin6rgb.c
@@ -17,7 +17,7 @@
#ifdef RGB_MATRIX_ENABLE
-const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = {
+const is31fl3731_led_t PROGMEM g_is31fl3731_leds[RGB_MATRIX_LED_COUNT] = {
/* Refer to IS31 manual for these locations
* driver
* | R location
diff --git a/keyboards/lazydesigners/dimple/staggered/keymaps/tominabox1/keymap.c b/keyboards/lazydesigners/dimple/staggered/keymaps/tominabox1/keymap.c
deleted file mode 100644
index d1917e4aa7..0000000000
--- a/keyboards/lazydesigners/dimple/staggered/keymaps/tominabox1/keymap.c
+++ /dev/null
@@ -1,110 +0,0 @@
-#include QMK_KEYBOARD_H
-#include "tominabox1.h"
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
-/* Base COLEMAK layer
- * ,---------------------------------------------------------------.
- * |GEsc| Q | W | F | P | G | J | L | U | Y | : | Bspc |
- * |---------------------------------------------------------------|
- * |Tab-Ctl| A | R | S | T | D | H | N | E | I | O |Quote|
- * |---------------------------------------------------------------|
- * |Shft/Cap| Z | X | C | V | B | K | M | , | Up | . |
- * |---------------------------------------------------------------|
- * |Ctrl|Gui |Alt | Spc/Lwr | Spc/Rse |Left|Down|Rght|
- * `-----------------------------------------------------'
- */
-
- [_BASE] = LAYOUT_wrapper(
- __________________DIMPLE1__________________,
- __________________DIMPLE2__________________,
- __________________DIMPLE3L_________________,__________________DIMPLE3R_________________,
- __________________DIMPLE4__________________
- ),
-
-/* Lower Symbol Layer
- * ,---------------------------------------------------------------.
- * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Del |
- * |---------------------------------------------------------------|
- * | Del | | | | | | | _ | + | { | } | | |
- * |---------------------------------------------------------------|
- * | | | | | | | | | ; |PgUp| ? |
- * |---------------------------------------------------------------|
- * | | | | | |Home|PgDn|End |
- * `-----------------------------------------------------'
- */
-
- [_LOWER] = LAYOUT_wrapper(
- _________________LOWER_1___________________,
- _________________LOWER_2___________________,
- _________________LOWER_3___________________,
- _________________LOWER_4___________________
- ),
-
-/* Raise Number Layer
- * ,---------------------------------------------------------------.
- * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bspc |
- * |---------------------------------------------------------------|
- * | Ins | | | | | | | - | = | [ | ] | \ |
- * |---------------------------------------------------------------|
- * | | | | | | | | | | . | / |
- * |---------------------------------------------------------------|
- * |VolD|Mute|VolU| | | | | |
- * `-----------------------------------------------------'
- */
-
- [_RAISE] = LAYOUT_wrapper(
- ___________________RAISE1__________________,
- ___________________RAISE2__________________,
- ___________________RAISE3__________________,
- ___________________RAISE4__________________
-
- ),
-
-/* Adjust Layer
- * ,---------------------------------------------------------------.
- * |RST |EEP | | | | | | | | | | |
- * |---------------------------------------------------------------|
- * | MP | | | | | | | | | | | |
- * |---------------------------------------------------------------|
- * | MODE | HUI| HUD|M_SN| | | | | | | |
- * |---------------------------------------------------------------|
- * |RGB-|RGB |RGB+| | | | | |
- * `-----------------------------------------------------'
- */
-
- [_ADJUST] = LAYOUT_wrapper(
- ___________________ADJST1__________________,
- ___________________ADJST2__________________,
- ___________________ADJST3__________________,
- ___________________ADJST4__________________
-
- ),
-/* Fkey Layer
-* ,---------------------------------------------------------------.
-* | | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10| |
-* |---------------------------------------------------------------|
-* | | | | | | | | | | F11| F12| |
-* |---------------------------------------------------------------|
-* | | | | | | | | | | | |
-* |---------------------------------------------------------------|
-* | | | | | |FKEY| | |
-* `-----------------------------------------------------'
-*/
-
- [_FKEY] = LAYOUT_wrapper(
- ___________________FKEY1___________________,
- ___________________FKEY2___________________,
- ___________________FKEY3___________________,
- ___________________FKEY4___________________
- ),
-};
-
-bool led_update_user(led_t led_state) {
-if (led_state.caps_lock) {
- writePinLow(E6);
- } else {
- writePinHigh(E6);
- }
- return false;
-}
diff --git a/keyboards/lets_split/keymaps/hvp/config.h b/keyboards/lets_split/keymaps/hvp/config.h
deleted file mode 100644
index 9f705b0fb7..0000000000
--- a/keyboards/lets_split/keymaps/hvp/config.h
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
-This is the c configuration file for the keymap
-
-Copyright 2012 Jun Wako <wakojun@gmail.com>
-Copyright 2015 Jack Humbert
-
-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
-
- // place overrides here
-#define DEFAULT_LAYER_SONGS { SONG(QWERTY_SOUND), \
- SONG(COLEMAK_SOUND), \
- SONG(DVORAK_SOUND) \
- }
-
-/* Select hand configuration */
-#define MASTER_LEFT
-// #define MASTER_RIGHT
-// #define EE_HANDS
-
-#undef RGBLED_NUM
-#define RGBLIGHT_EFFECT_BREATHING
-#define RGBLIGHT_EFFECT_RAINBOW_MOOD
-#define RGBLIGHT_EFFECT_RAINBOW_SWIRL
-#define RGBLIGHT_EFFECT_SNAKE
-#define RGBLIGHT_EFFECT_KNIGHT
-#define RGBLIGHT_EFFECT_CHRISTMAS
-#define RGBLIGHT_EFFECT_STATIC_GRADIENT
-#define RGBLIGHT_EFFECT_RGB_TEST
-#define RGBLIGHT_EFFECT_ALTERNATING
-#define RGBLIGHT_EFFECT_TWINKLE
-#define RGBLED_NUM 10
diff --git a/keyboards/lets_split/keymaps/hvp/keymap.c b/keyboards/lets_split/keymaps/hvp/keymap.c
deleted file mode 100644
index 6246404231..0000000000
--- a/keyboards/lets_split/keymaps/hvp/keymap.c
+++ /dev/null
@@ -1,65 +0,0 @@
-#include QMK_KEYBOARD_H
-#include "hvp.c"
-
-// Each layer gets a name for readability, which is then used in the keymap matrix below.
-// The underscores don't mean anything - you can have a layer called STUFF or any other name.
-// Layer names don't all need to be of the same length, obviously, and you can also skip them
-// entirely and just use numbers.
-#define _QWERTY 0
-#define _LOWER 3
-#define _RAISE 4
-#define _NAVI 5
-#define _ADJUST 6
-
-enum custom_keycodes {
- QWERTY = SAFE_RANGE
-};
-
-
-#define LOWER MO(_LOWER)
-#define RAISE MO(_RAISE)
-#define ADJUST MO(_ADJUST)
-
-#define LT3_ESC LT(5, KC_ESC)
-#define LT4_TAB LT(6, KC_TAB)
-#define F_NAVI LT(5, KC_F)
-
-
-
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
-[_QWERTY] = LAYOUT_ortho_4x12(
- LT4_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,
- LT3_ESC, KC_A, KC_S, KC_D, F_NAVI, LT(6,KC_G), KC_H, KC_J, KC_K, KC_L, TD(TD1), TD(TD2),
- KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, TD(TD3), SC_SENT ,
- KC_LCTL, KC_APP, KC_LGUI, KC_LALT, LT(3,KC_SPC), SFT_T(KC_SPC), SC_SENT, LT(4,KC_SPC), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT
-),
-
-[_RAISE] = LAYOUT_ortho_4x12( /* Right */
- KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC,
- KC_DEL, _______, _______, _______, _______, _______, _______, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS,
- _______, _______, _______, _______, _______, _______, _______, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE,
- _______, _______, _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_PGUP, KC_END
-),
-
-[_LOWER] = LAYOUT_ortho_4x12( /* Left */
- KC_TILDE, KC_EXCLAIM, KC_AT, KC_HASH, KC_DOLLAR, KC_PERCENT, KC_CIRCUMFLEX, KC_AMPERSAND, KC_ASTERISK, KC_LEFT_PAREN, KC_RIGHT_PAREN, KC_BSPC,
- KC_DEL, _______, _______, _______, _______, _______, _______, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_BSLS,
- _______, _______, _______, _______, _______, _______, _______, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_TILD,
- _______, _______, _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_PGUP, KC_END
-),
-
-[_NAVI] = LAYOUT_ortho_4x12( /* 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,
- _______, _______, _______, D_NAVI, _______, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, _______, _______,
- _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_PGUP, KC_END, _______, _______,
- _______, _______, _______, _______, _______,KC_MUTE, KC_MPLY, KC_MSTP, KC_MPRV, KC_VOLD, KC_VOLU, KC_MNXT
-),
-
-[_ADJUST] = LAYOUT_ortho_4x12( /* Tab */
- _______, RGB_TOG, RGB_MOD, RGB_RMOD, _______, _______, _______, KC_7, KC_8, KC_9, KC_0, _______,
- _______, RGB_M_P, RGB_HUD, RGB_HUI, _______, _______, _______, KC_4, KC_5, KC_6, _______, _______,
- KC_PSCR, _______, RGB_SAD, RGB_SAI, _______, _______, KC_0, KC_1, KC_2, KC_3, _______, _______,
- QK_BOOT, _______, RGB_VAD, RGB_VAI, _______, _______, _______, _______, _______, _______, _______, _______
-)};
diff --git a/keyboards/lets_split/keymaps/hvp/readme.md b/keyboards/lets_split/keymaps/hvp/readme.md
deleted file mode 100644
index a43b9d52ec..0000000000
--- a/keyboards/lets_split/keymaps/hvp/readme.md
+++ /dev/null
@@ -1,10 +0,0 @@
-Keyboard: Lets split!
-Keys: 48key ortho 40% keyboard
-Layout: Swedish characters on main layer using tapdance. Built for eurkey keyboard layout.
-Flash instructions: Flash using avrdude, will req the hvp user space to compile.
-
-> make lets_split/rev2:hvp:avrdude
-
-Links:
-Github - https://github.com/qmk/qmk_firmware/tree/master/keyboards/lets_split
-Eurkey layout - https://eurkey.steffen.bruentjen.eu/
diff --git a/keyboards/lets_split/keymaps/hvp/rules.mk b/keyboards/lets_split/keymaps/hvp/rules.mk
deleted file mode 100644
index 1c1ed316a0..0000000000
--- a/keyboards/lets_split/keymaps/hvp/rules.mk
+++ /dev/null
@@ -1,2 +0,0 @@
-RGBLIGHT_ENABLE = yes
-TAP_DANCE_ENABLE = yes \ No newline at end of file
diff --git a/keyboards/lets_split/keymaps/pdl/config.h b/keyboards/lets_split/keymaps/pdl/config.h
deleted file mode 100644
index 89fd6ac202..0000000000
--- a/keyboards/lets_split/keymaps/pdl/config.h
+++ /dev/null
@@ -1,31 +0,0 @@
-/*
-This is the c configuration file for the keymap
-
-Copyright 2012 Jun Wako <wakojun@gmail.com>
-Copyright 2015 Jack Humbert
-Copyright 2018 Daniel Perrett
-
-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 TAPPING_TERM 200
-
-/* Select hand configuration */
-
-//#define MASTER_LEFT
-#define MASTER_RIGHT
-// #define EE_HANDS
diff --git a/keyboards/lets_split/keymaps/pdl/keymap.c b/keyboards/lets_split/keymaps/pdl/keymap.c
deleted file mode 100644
index b112e2270f..0000000000
--- a/keyboards/lets_split/keymaps/pdl/keymap.c
+++ /dev/null
@@ -1,69 +0,0 @@
-/*
-This is the keymap for the keyboard
-
-Copyright 2012 Jun Wako <wakojun@gmail.com>
-Copyright 2015 Jack Humbert
-Copyright 2017 Art Ortenburger
-Copyright 2018 Daniel Perrett
-
-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 "pdl.h"
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [_QWERTY] = LAYOUT_wrapper(
- KC_TAB, _________________QWERTY_L1_________________, _________________QWERTY_R1_________________, KC_BSPC,
- MY_SESC, _________________QWERTY_L2_________________, _________________QWERTY_R2_________________, MY_SQUO,
- MY_CBSL, _________________QWERTY_L3_________________, _________________QWERTY_R3_________________, MY_SQUO,
- KC_LCTL, KC_LGUI, KC_LALT, NUMBRS, NAVIGN, KC_SPC, MY_SSPC, NUMBRS, NAVIGN, MY_AMNU, FUNCTN, MY_CENT
- ),
- [_PROXIM] = LAYOUT_wrapper(
- MY_FESC, _________________PROXIM_L1_________________, _________________PROXIM_R1_________________, KC_BSPC,
- KC_TAB, _________________PROXIM_L2_________________, _________________PROXIM_R2_________________, MY_ASCL,
- MY_SBSL, _________________PROXIM_L3_________________, _________________PROXIM_R3_________________, MY_SENT,
- KC_LCTL, KC_LGUI, KC_LALT, NUMBRS, NAVIGN, KC_SPC, MY_SSPC, NUMBRS, NAVIGN, MY_AMNU, FUNCTN, MY_CENT
- ),
- [_NAVIGN] = LAYOUT_wrapper(
- _______, _________________NAVIGN_L1_________________, _______, _______, _______, _______, _______, _______,
- _______, _________________NAVIGN_L2_________________, _______, _______, _______, _______, _______, _______,
- _______, _________________NAVIGN_L3_________________, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
- ),
- [_PUNCTN] = LAYOUT_wrapper(
- _______, _______, _______, _______, _______, _______, _________________PUNCTN_R1_________________, _______,
- _______, _______, _______, _______, _______, _______, _________________PUNCTN_R2_________________, _______,
- _______, _______, _______, _______, _______, _______, _________________PUNCTN_R3_________________, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
- ),
- [_NUMBRS] = LAYOUT_wrapper(
- _______, _________________NUMBRS_L1_________________, _______, _______, _______, _______, _______, _______,
- _______, _________________NUMBRS_L2_________________, _______, _______, _______, _______, _______, _______,
- _______, _________________NUMBRS_L3_________________, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
- ),
- [_CODING] = LAYOUT_wrapper(
- _______, _______, _______, _______, _______, _______, _________________CODING_R1_________________, _______,
- _______, _______, _______, _______, _______, _______, _________________CODING_R2_________________, _______,
- _______, _______, _______, _______, _______, _______, _________________CODING_R3_________________, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
- ),
- [_FUNCTN] = LAYOUT_wrapper(
- _______, _________________FUNCTN_L1_________________, _________________FUNCTN_R1_________________, MY_CAD,
- _______, _________________FUNCTN_L2_________________, _________________FUNCTN_R2_________________, KC_PSCR,
- _______, _________________FUNCTN_L3_________________, _________________FUNCTN_R3_________________, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
- )
-};
diff --git a/keyboards/lets_split/keymaps/pdl/rules.mk b/keyboards/lets_split/keymaps/pdl/rules.mk
deleted file mode 100644
index ae71cbf491..0000000000
--- a/keyboards/lets_split/keymaps/pdl/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-USER_NAME = pdl
diff --git a/keyboards/lets_split/keymaps/zer09/config.h b/keyboards/lets_split/keymaps/zer09/config.h
deleted file mode 100644
index 6cdb6dd8b4..0000000000
--- a/keyboards/lets_split/keymaps/zer09/config.h
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
-This is the c configuration file for the keymap
-
-Copyright 2012 Jun Wako <wakojun@gmail.com>
-Copyright 2015 Jack Humbert
-
-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/>.
-*/
-
-#ifndef CONFIG_USER_H
-#define CONFIG_USER_H
-
-#include "../../config.h"
-
-/* key matrix size */
-/* Rows are doubled-up */
-#undef MATRIX_ROWS
-#undef MATRIX_COLS
-#define MATRIX_ROWS 10
-#define MATRIX_COLS 5
-
-#undef MATRIX_ROW_PINS
-#undef MATRIX_COL_PINS
-#define MATRIX_ROW_PINS { C6, D7, E6, B4, B5 }
-#define MATRIX_COL_PINS { F7, B1, B3, B2, B6 }
-
-#define USB_MAX_POWER_CONSUMPTION 50
-
-/* Select hand configuration */
-
-/* #define MASTER_LEFT */
-// #define MASTER_RIGHT
-#define EE_HANDS
-
-/* ws2812 RGB LED */
-#undef RGBLED_NUM
-#define WS2812_DI_PIN D3
-
-#define RGBLED_NUM 50
-#endif
diff --git a/keyboards/lets_split/keymaps/zer09/keymap.c b/keyboards/lets_split/keymaps/zer09/keymap.c
deleted file mode 100644
index e09fa0d318..0000000000
--- a/keyboards/lets_split/keymaps/zer09/keymap.c
+++ /dev/null
@@ -1,76 +0,0 @@
-#include "zer09.h"
-
-#undef LAYOUT
-#define LAYOUT( \
- L00, L01, L02, L03, L04, R00, R01, R02, R03, R04, \
- L10, L11, L12, L13, L14, R10, R11, R12, R13, R14, \
- L20, L21, L22, L23, L24, R20, R21, R22, R23, R24, \
- L30, L31, L32, L33, L34, R30, R31, R32, R33, R34, \
- L40, L41, L42, L43, L44, R40, R41, R42, R43, R44 \
-) { \
- { L00, L01, L02, L03, L04 }, \
- { L10, L11, L12, L13, L14 }, \
- { L20, L21, L22, L23, L24 }, \
- { L30, L31, L32, L33, L34 }, \
- { L40, L41, L42, L43, L44 }, \
- { R00, R01, R02, R03, R04 }, \
- { R10, R11, R12, R13, R14 }, \
- { R20, R21, R22, R23, R24 }, \
- { R30, R31, R32, R33, R34 }, \
- { R40, R41, R42, R43, R44 } \
-}
-
-#define _baseLayer LAYOUT( \
- KC_QUOTE, KC_COMMA, KC_DOT, KC_P, KC_Y, /**/KC_F, KC_G, KC_C, KC_R, KC_L, \
- CTL_T(KC_A), SFT_T(KC_O), ALT_T(KC_E), KC_U, KC_I, /**/KC_D, KC_H, ALT_T(KC_T), SFT_T(KC_N), CTL_T(KC_S), \
- KC_SCLN, KC_Q, KC_J, KC_K, KC_X, /**/KC_B, KC_M, KC_W, KC_V, KC_Z, \
- TD(DA_UPLY), MO(_VL), KC_TAB, KC_BSPC, KC_ESC, /**/KC_INS, KC_HOME, KC_PGUP, MO(_VL), TD(DA_UPLY), \
- TD(DA_DWLY), TD(DA_LCTL), KC_SPC, TD(DA_LSPR), LSFT_T(KC_CAPS),/**/SFT_T(KC_CAPS), TD(DA_RALT), KC_ENT, TD(DA_RCTL), TD(DA_DWLY))
-
-#define _GMLayer LAYOUT( \
- KC_QUOTE, KC_COMMA, KC_DOT, KC_P, KC_Y, /**/KC_F, KC_G, KC_C, KC_R, KC_L, \
- KC_A, KC_O, KC_E, KC_U, KC_I, /**/KC_D, KC_H, ALT_T(KC_T), SFT_T(KC_N), CTL_T(KC_S), \
- KC_SCLN, KC_Q, KC_J, KC_K, KC_X, /**/KC_B, KC_M, KC_W, KC_V, KC_Z, \
- TD(DA_UPLY), MO(_VL), KC_TAB, KC_BSPC, KC_ESC, /**/KC_INS, KC_HOME, KC_PGUP, MO(_VL), TD(DA_UPLY), \
- TD(DA_DWLY), TD(DA_LCTL), KC_SPC, TD(DA_LSPR), LSFT_T(KC_CAPS),/**/SFT_T(KC_CAPS), TD(DA_RALT), KC_ENT, TD(DA_RCTL), TD(DA_DWLY))
-
-#define _upLayer LAYOUT( \
- KC_4, KC_5, KC_6, KC_YREG, _______,/**/ _______, KC_RBRC, _______, _______, _______, \
- LCTL_T(KC_1), LSFT_T(KC_2), LALT_T(KC_3), _______, _______,/**/ KC_LBRC, KC_BSLS, _______, _______, _______, \
- KC_7, KC_8, KC_9, KC_0, KC_GRV, /**/ KC_SLSH, _______, _______, _______, _______, \
- _______, _______, _______, _______, _______,/**/ KC_DEL, KC_END, KC_PGDN, _______, _______, \
- _______, _______, _______, _______, _______,/**/ _______, _______, _______, _______, _______)
-
-#define _downLayer LAYOUT( \
- KC_F4, KC_F5, KC_F6, KC_F12, _______,/**/ _______, KC_RPRN, _______, _______, _______, \
- LCTL_T(KC_F1), LSFT_T(KC_F2), LALT_T(KC_F3), KC_F11, _______,/**/ KC_LPRN, KC_EQUAL, KC_LEFT, KC_UP, KC_RIGHT, \
- KC_F7, KC_F8, KC_F9, KC_F10, _______,/**/ KC_MINUS, _______, _______, KC_DOWN, _______, \
- _______, _______, _______, _______, _______,/**/ KC_PSCR, KC_SCRL, KC_PAUSE, _______, _______, \
- _______, _______, _______, _______, _______,/**/ _______, _______, _______, _______, _______)
-
-#define _astdLayer LAYOUT( \
- KC_MPRV, KC_MUTE, _______, _______, _______,/**/KC_PSCR, KC_SCRL, KC_PAUSE, _______, KC_RGUP, \
- KC_MPLY, KC_VOLD, _______, _______, _______,/**/_______, _______, _______, _______, KC_RGDWN, \
- KC_MNXT, KC_VOLU, QK_BOOT, _______, _______,/**/_______, _______, QK_BOOT, _______, _______, \
- _______, _______, _______, _______, _______,/**/_______, _______, _______, _______, _______, \
- _______, _______, _______, _______, _______,/**/_______, _______, _______, _______, _______)
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [_BL] = _baseLayer,
- [_UL] = _upLayer,
- [_DL] = _downLayer,
- [_VL] = _upLayer,
- [_AL] = _astdLayer,
- [_GM] = _GMLayer};
-
-bool process_record_keymap(uint16_t keycode, keyrecord_t *record) {
- if (record->event.pressed) {
- switch (keycode) {
- case YREG:
- SEND_STRING("\"0p");
- return false;
- }
- }
-
- return true;
-}
diff --git a/keyboards/lets_split/keymaps/zer09/rules.mk b/keyboards/lets_split/keymaps/zer09/rules.mk
deleted file mode 100644
index d2259fe9d5..0000000000
--- a/keyboards/lets_split/keymaps/zer09/rules.mk
+++ /dev/null
@@ -1,3 +0,0 @@
-RGBLIGHT_ENABLE = yes
-TAP_DANCE_ENABLE = yes
-
diff --git a/keyboards/lfkeyboards/TWIlib.c b/keyboards/lfkeyboards/TWIlib.c
deleted file mode 100644
index 0d52322c64..0000000000
--- a/keyboards/lfkeyboards/TWIlib.c
+++ /dev/null
@@ -1,296 +0,0 @@
-/*
- * TWIlib.c
- *
- * Created: 6/01/2014 10:41:33 PM
- * Author: Chris Herring
- */
-
-#include <avr/io.h>
-#include <avr/interrupt.h>
-#include "TWIlib.h"
-#include <util/delay.h>
-#include "print.h"
-
-// Global transmit buffer
-volatile uint8_t *TWITransmitBuffer;
-// Global receive buffer
-volatile uint8_t TWIReceiveBuffer[RXMAXBUFLEN];
-// Buffer indexes
-volatile int TXBuffIndex; // Index of the transmit buffer. Is volatile, can change at any time.
-int RXBuffIndex; // Current index in the receive buffer
-// Buffer lengths
-int TXBuffLen; // The total length of the transmit buffer
-int RXBuffLen; // The total number of bytes to read (should be less than RXMAXBUFFLEN)
-
-TWIInfoStruct TWIInfo;
-
-void TWIInit(void)
-{
- TWIInfo.mode = Ready;
- TWIInfo.errorCode = 0xFF;
- TWIInfo.repStart = 0;
- // Set pre-scalers (no pre-scaling)
- TWSR = 0;
- // Set bit rate
- TWBR = ((F_CPU / TWI_FREQ) - 16) / 2;
- // Enable TWI and interrupt
- TWCR = (1 << TWIE) | (1 << TWEN);
-}
-
-uint8_t isTWIReady(void)
-{
- if ( (TWIInfo.mode == Ready) | (TWIInfo.mode == RepeatedStartSent) )
- {
- return 1;
- }
- else
- {
- if(TWIInfo.mode == Initializing){
- switch(TWIInfo.errorCode){
- case TWI_SUCCESS:
- case TWI_NO_RELEVANT_INFO:
- break;
- case TWI_LOST_ARBIT:
- case TWI_MT_DATA_NACK:
- // Some kind of I2C error, reset and re-init
- xprintf("I2C init error: %d\n", TWIInfo.errorCode);
- TWCR = (1 << TWINT)|(1 << TWSTO);
- TWIInit();
- break;
- default:
- xprintf("Other i2c init error: %d\n", TWIInfo.errorCode);
- }
- }
- return 0;
- }
-}
-
-
-void TWITransmitData(void *const TXdata, uint8_t dataLen, uint8_t repStart, uint8_t blocking)
-{
- // Wait until ready
- while (!isTWIReady()) {_delay_us(1);}
- // Reset the I2C stuff
- TWCR = (1 << TWINT)|(1 << TWSTO);
- TWIInit();
- // Set repeated start mode
- TWIInfo.repStart = repStart;
- // Copy transmit info to global variables
- TWITransmitBuffer = (uint8_t *)TXdata;
- TXBuffLen = dataLen;
- TXBuffIndex = 0;
-
- // If a repeated start has been sent, then devices are already listening for an address
- // and another start does not need to be sent.
- if (TWIInfo.mode == RepeatedStartSent)
- {
- TWIInfo.mode = Initializing;
- TWDR = TWITransmitBuffer[TXBuffIndex++]; // Load data to transmit buffer
- TWISendTransmit(); // Send the data
- }
- else // Otherwise, just send the normal start signal to begin transmission.
- {
- TWIInfo.mode = Initializing;
- TWISendStart();
- }
- if(blocking){
- // Wait until ready
- while (!isTWIReady()){_delay_us(1);}
- }
-}
-
-
-// uint8_t TWITransmitData(void *const TXdata, uint8_t dataLen, uint8_t repStart)
-// {
-// if (dataLen <= TXMAXBUFLEN)
-// {
-// // Wait until ready
-// while (!isTWIReady()) {_delay_us(1);}
-// // Set repeated start mode
-// TWIInfo.repStart = repStart;
-// // Copy data into the transmit buffer
-// uint8_t *data = (uint8_t *)TXdata;
-// for (int i = 0; i < dataLen; i++)
-// {
-// TWITransmitBuffer[i] = data[i];
-// }
-// // Copy transmit info to global variables
-// TXBuffLen = dataLen;
-// TXBuffIndex = 0;
-
-// // If a repeated start has been sent, then devices are already listening for an address
-// // and another start does not need to be sent.
-// if (TWIInfo.mode == RepeatedStartSent)
-// {
-// TWIInfo.mode = Initializing;
-// TWDR = TWITransmitBuffer[TXBuffIndex++]; // Load data to transmit buffer
-// TWISendTransmit(); // Send the data
-// }
-// else // Otherwise, just send the normal start signal to begin transmission.
-// {
-// TWIInfo.mode = Initializing;
-// TWISendStart();
-// }
-
-// }
-// else
-// {
-// return 1; // return an error if data length is longer than buffer
-// }
-// return 0;
-// }
-
-uint8_t TWIReadData(uint8_t TWIaddr, uint8_t bytesToRead, uint8_t repStart)
-{
- // Check if number of bytes to read can fit in the RXbuffer
- if (bytesToRead < RXMAXBUFLEN)
- {
- // Reset buffer index and set RXBuffLen to the number of bytes to read
- RXBuffIndex = 0;
- RXBuffLen = bytesToRead;
- // Create the one value array for the address to be transmitted
- uint8_t TXdata[1];
- // Shift the address and AND a 1 into the read write bit (set to write mode)
- TXdata[0] = (TWIaddr << 1) | 0x01;
- // Use the TWITransmitData function to initialize the transfer and address the slave
- TWITransmitData(TXdata, 1, repStart, 0);
- }
- else
- {
- return 0;
- }
- return 1;
-}
-
-ISR (TWI_vect)
-{
- switch (TWI_STATUS)
- {
- // ----\/ ---- MASTER TRANSMITTER OR WRITING ADDRESS ----\/ ---- //
- case TWI_MT_SLAW_ACK: // SLA+W transmitted and ACK received
- // Set mode to Master Transmitter
- TWIInfo.mode = MasterTransmitter;
- case TWI_START_SENT: // Start condition has been transmitted
- case TWI_MT_DATA_ACK: // Data byte has been transmitted, ACK received
- if (TXBuffIndex < TXBuffLen) // If there is more data to send
- {
- TWDR = TWITransmitBuffer[TXBuffIndex++]; // Load data to transmit buffer
- TWIInfo.errorCode = TWI_NO_RELEVANT_INFO;
- TWISendTransmit(); // Send the data
- }
- // This transmission is complete however do not release bus yet
- else if (TWIInfo.repStart)
- {
- TWIInfo.errorCode = 0xFF;
- TWISendStart();
- }
- // All transmissions are complete, exit
- else
- {
- TWIInfo.mode = Ready;
- TWIInfo.errorCode = 0xFF;
- TWISendStop();
- }
- break;
-
- // ----\/ ---- MASTER RECEIVER ----\/ ---- //
-
- case TWI_MR_SLAR_ACK: // SLA+R has been transmitted, ACK has been received
- // Switch to Master Receiver mode
- TWIInfo.mode = MasterReceiver;
- // If there is more than one byte to be read, receive data byte and return an ACK
- if (RXBuffIndex < RXBuffLen-1)
- {
- TWIInfo.errorCode = TWI_NO_RELEVANT_INFO;
- TWISendACK();
- }
- // Otherwise when a data byte (the only data byte) is received, return NACK
- else
- {
- TWIInfo.errorCode = TWI_NO_RELEVANT_INFO;
- TWISendNACK();
- }
- break;
-
- case TWI_MR_DATA_ACK: // Data has been received, ACK has been transmitted.
-
- /// -- HANDLE DATA BYTE --- ///
- TWIReceiveBuffer[RXBuffIndex++] = TWDR;
- // If there is more than one byte to be read, receive data byte and return an ACK
- if (RXBuffIndex < RXBuffLen-1)
- {
- TWIInfo.errorCode = TWI_NO_RELEVANT_INFO;
- TWISendACK();
- }
- // Otherwise when a data byte (the only data byte) is received, return NACK
- else
- {
- TWIInfo.errorCode = TWI_NO_RELEVANT_INFO;
- TWISendNACK();
- }
- break;
-
- case TWI_MR_DATA_NACK: // Data byte has been received, NACK has been transmitted. End of transmission.
-
- /// -- HANDLE DATA BYTE --- ///
- TWIReceiveBuffer[RXBuffIndex++] = TWDR;
- // This transmission is complete however do not release bus yet
- if (TWIInfo.repStart)
- {
- TWIInfo.errorCode = 0xFF;
- TWISendStart();
- }
- // All transmissions are complete, exit
- else
- {
- TWIInfo.mode = Ready;
- TWIInfo.errorCode = 0xFF;
- TWISendStop();
- }
- break;
-
- // ----\/ ---- MT and MR common ----\/ ---- //
-
- case TWI_MR_SLAR_NACK: // SLA+R transmitted, NACK received
- case TWI_MT_SLAW_NACK: // SLA+W transmitted, NACK received
- case TWI_MT_DATA_NACK: // Data byte has been transmitted, NACK received
- case TWI_LOST_ARBIT: // Arbitration has been lost
- // Return error and send stop and set mode to ready
- if (TWIInfo.repStart)
- {
- TWIInfo.errorCode = TWI_STATUS;
- TWISendStart();
- }
- // All transmissions are complete, exit
- else
- {
- TWIInfo.mode = Ready;
- TWIInfo.errorCode = TWI_STATUS;
- TWISendStop();
- }
- break;
- case TWI_REP_START_SENT: // Repeated start has been transmitted
- // Set the mode but DO NOT clear TWINT as the next data is not yet ready
- TWIInfo.mode = RepeatedStartSent;
- break;
-
- // ----\/ ---- SLAVE RECEIVER ----\/ ---- //
-
- // TODO IMPLEMENT SLAVE RECEIVER FUNCTIONALITY
-
- // ----\/ ---- SLAVE TRANSMITTER ----\/ ---- //
-
- // TODO IMPLEMENT SLAVE TRANSMITTER FUNCTIONALITY
-
- // ----\/ ---- MISCELLANEOUS STATES ----\/ ---- //
- case TWI_NO_RELEVANT_INFO: // It is not really possible to get into this ISR on this condition
- // Rather, it is there to be manually set between operations
- break;
- case TWI_ILLEGAL_START_STOP: // Illegal START/STOP, abort and return error
- TWIInfo.errorCode = TWI_ILLEGAL_START_STOP;
- TWIInfo.mode = Ready;
- TWISendStop();
- break;
- }
-
-}
diff --git a/keyboards/lfkeyboards/TWIlib.h b/keyboards/lfkeyboards/TWIlib.h
deleted file mode 100644
index 8ba261c6e5..0000000000
--- a/keyboards/lfkeyboards/TWIlib.h
+++ /dev/null
@@ -1,71 +0,0 @@
-/*
- * TWIlib.h
- *
- * Created: 6/01/2014 10:38:42 PM
- * Author: Chris Herring
- */
-
-
-#ifndef TWILIB_H_
-#define TWILIB_H_
-// TWI bit rate
-#define TWI_FREQ 400000
-// Get TWI status
-#define TWI_STATUS (TWSR & 0xF8)
-// Transmit buffer length
-#define TXMAXBUFLEN 20
-// Receive buffer length
-#define RXMAXBUFLEN 20
-
-typedef enum {
- Ready,
- Initializing,
- RepeatedStartSent,
- MasterTransmitter,
- MasterReceiver,
- SlaceTransmitter,
- SlaveReciever
- } TWIMode;
-
- typedef struct TWIInfoStruct{
- TWIMode mode;
- uint8_t errorCode;
- uint8_t repStart;
- }TWIInfoStruct;
-
-extern TWIInfoStruct TWIInfo;
-
-// TWI Status Codes
-#define TWI_START_SENT 0x08 // Start sent
-#define TWI_REP_START_SENT 0x10 // Repeated Start sent
-// Master Transmitter Mode
-#define TWI_MT_SLAW_ACK 0x18 // SLA+W sent and ACK received
-#define TWI_MT_SLAW_NACK 0x20 // SLA+W sent and NACK received
-#define TWI_MT_DATA_ACK 0x28 // DATA sent and ACK received
-#define TWI_MT_DATA_NACK 0x30 // DATA sent and NACK received
-// Master Receiver Mode
-#define TWI_MR_SLAR_ACK 0x40 // SLA+R sent, ACK received
-#define TWI_MR_SLAR_NACK 0x48 // SLA+R sent, NACK received
-#define TWI_MR_DATA_ACK 0x50 // Data received, ACK returned
-#define TWI_MR_DATA_NACK 0x58 // Data received, NACK returned
-
-// Miscellaneous States
-#define TWI_LOST_ARBIT 0x38 // Arbitration has been lost
-#define TWI_NO_RELEVANT_INFO 0xF8 // No relevant information available
-#define TWI_ILLEGAL_START_STOP 0x00 // Illegal START or STOP condition has been detected
-#define TWI_SUCCESS 0xFF // Successful transfer, this state is impossible from TWSR as bit2 is 0 and read only
-
-
-#define TWISendStart() (TWCR = (1<<TWINT)|(1<<TWSTA)|(1<<TWEN)|(1<<TWIE)) // Send the START signal, enable interrupts and TWI, clear TWINT flag to resume transfer.
-#define TWISendStop() (TWCR = (1<<TWINT)|(1<<TWSTO)|(1<<TWEN)|(1<<TWIE)) // Send the STOP signal, enable interrupts and TWI, clear TWINT flag.
-#define TWISendTransmit() (TWCR = (1<<TWINT)|(1<<TWEN)|(1<<TWIE)) // Used to resume a transfer, clear TWINT and ensure that TWI and interrupts are enabled.
-#define TWISendACK() (TWCR = (1<<TWINT)|(1<<TWEN)|(1<<TWIE)|(1<<TWEA)) // FOR MR mode. Resume a transfer, ensure that TWI and interrupts are enabled and respond with an ACK if the device is addressed as a slave or after it receives a byte.
-#define TWISendNACK() (TWCR = (1<<TWINT)|(1<<TWEN)|(1<<TWIE)) // FOR MR mode. Resume a transfer, ensure that TWI and interrupts are enabled but DO NOT respond with an ACK if the device is addressed as a slave or after it receives a byte.
-
-// Function declarations
-void TWITransmitData(void *const TXdata, uint8_t dataLen, uint8_t repStart, uint8_t blocking);
-void TWIInit(void);
-uint8_t TWIReadData(uint8_t TWIaddr, uint8_t bytesToRead, uint8_t repStart);
-uint8_t isTWIReady(void);
-
-#endif // TWICOMMS_H_ \ No newline at end of file
diff --git a/keyboards/lfkeyboards/issi.c b/keyboards/lfkeyboards/issi.c
deleted file mode 100644
index e675a59868..0000000000
--- a/keyboards/lfkeyboards/issi.c
+++ /dev/null
@@ -1,244 +0,0 @@
-#ifdef ISSI_ENABLE
-
-#include <stdlib.h>
-#include <stdint.h>
-#include <util/delay.h>
-#include <avr/sfr_defs.h>
-#include <avr/io.h>
-#include <util/twi.h>
-#include "issi.h"
-#include "print.h"
-#include "TWIlib.h"
-
-#define ISSI_ADDR_DEFAULT 0xE8
-
-#define ISSI_REG_CONFIG 0x00
-#define ISSI_REG_CONFIG_PICTUREMODE 0x00
-#define ISSI_REG_CONFIG_AUTOPLAYMODE 0x08
-
-#define ISSI_CONF_PICTUREMODE 0x00
-#define ISSI_CONF_AUTOFRAMEMODE 0x04
-#define ISSI_CONF_AUDIOMODE 0x08
-
-#define ISSI_REG_PICTUREFRAME 0x01
-
-#define ISSI_REG_SHUTDOWN 0x0A
-#define ISSI_REG_AUDIOSYNC 0x06
-
-#define ISSI_COMMANDREGISTER 0xFD
-#define ISSI_BANK_FUNCTIONREG 0x0B // helpfully called 'page nine'
-uint8_t control[8][9] = {
- {0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0},
- {0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0},
- {0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0},
- {0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0},
-};
-ISSIDeviceStruct *issi_devices[4] = {0, 0, 0, 0};
-
-#ifndef cbi
-#define cbi(sfr, bit) (_SFR_BYTE(sfr) &= ~_BV(bit))
-#endif
-
-#ifndef sbi
-#define sbi(sfr, bit) (_SFR_BYTE(sfr) |= _BV(bit))
-#endif
-
-#define I2C_WRITE 0
-#define F_SCL 400000UL // SCL frequency
-#define Prescaler 1
-#define TWBR_val ((((F_CPU / F_SCL) / Prescaler) - 16 ) / 2)
-
-uint8_t i2c_start(uint8_t address)
-{
- // reset TWI control register
- TWCR = 0;
- // transmit START condition
- TWCR = (1<<TWINT) | (1<<TWSTA) | (1<<TWEN);
- // wait for end of transmission
- while( !(TWCR & (1<<TWINT)) );
-
- // check if the start condition was successfully transmitted
- if((TWSR & 0xF8) != TW_START){ return 1; }
-
- // load slave address into data register
- TWDR = address;
- // start transmission of address
- TWCR = (1<<TWINT) | (1<<TWEN);
- // wait for end of transmission
- while( !(TWCR & (1<<TWINT)) );
-
- // check if the device has acknowledged the READ / WRITE mode
- uint8_t twst = TW_STATUS & 0xF8;
- if ( (twst != TW_MT_SLA_ACK) && (twst != TW_MR_SLA_ACK) ) return 1;
-
- return 0;
-}
-
-uint8_t i2c_write(uint8_t data)
-{
- // load data into data register
- TWDR = data;
- // start transmission of data
- TWCR = (1 << TWINT) | (1 << TWEN);
- // wait for end of transmission
- while (!(TWCR & (1 << TWINT)))
- ;
-
- if ((TWSR & 0xF8) != TW_MT_DATA_ACK) {
- return 1;
- }
- return 0;
-}
-
-uint8_t i2c_transmit(uint8_t address, uint8_t* data, uint16_t length)
-{
- TWBR = (uint8_t)TWBR_val;
- if (i2c_start(address | I2C_WRITE))
- return 1;
- for (uint16_t i = 0; i < length; i++) {
- if (i2c_write(data[i]))
- return 1;
- }
- // transmit STOP condition
- TWCR = (1 << TWINT) | (1 << TWEN) | (1 << TWSTO);
- return 0;
-}
-
-void setFrame(uint8_t device, uint8_t frame)
-{
- static uint8_t current_frame = -1;
- if(current_frame != frame){
- uint8_t payload[] = {
- ISSI_ADDR_DEFAULT | device << 1,
- ISSI_COMMANDREGISTER,
- frame
- };
- TWITransmitData(payload, sizeof(payload), 0, 1);
- }
- // static uint8_t current_frame = 0xFF;
- // if(current_frame == frame){
- // // return;
- // }
- // uint8_t payload[2] = { ISSI_COMMANDREGISTER, frame };
- // i2c_transmit(ISSI_ADDR_DEFAULT | device << 1, payload, 2);
- // current_frame = frame;
-}
-
-void writeRegister8(uint8_t device, uint8_t frame, uint8_t reg, uint8_t data)
-{
- // Set the frame
- setFrame(device, frame);
-
- // Write to the register
- uint8_t payload[] = {
- ISSI_ADDR_DEFAULT | device << 1,
- reg,
- data
- };
- TWITransmitData(payload, sizeof(payload), 0, 1);
-}
-
-void activateLED(uint8_t matrix, uint8_t cx, uint8_t cy, uint8_t pwm)
-{
- uint8_t device_addr = (matrix & 0x06) >> 1;
- ISSIDeviceStruct *device = issi_devices[device_addr];
- if(device == 0){
- return;
- }
- // xprintf("activeLED: %02X %02X %02X %02X\n", matrix, cy, cx, pwm);
- uint8_t x = cx - 1; // funciton takes 1 based counts, but we need 0...
- uint8_t y = cy - 1; // creating them once for less confusion
- uint8_t control_reg = (y << 1) | (matrix & 0x01);
- if(pwm == 0){
- cbi(device->led_ctrl[control_reg], x);
- cbi(device->led_blink_ctrl[control_reg], x);
- }else{
- sbi(device->led_ctrl[control_reg], x);
- sbi(device->led_blink_ctrl[control_reg], x);
- }
- uint8_t pwm_reg = 0;
- switch(matrix & 0x01){
- case 0:
- pwm_reg = 0x00;
- break;
- case 1:
- pwm_reg = 0x08;
- break;
- }
- pwm_reg += (y << 4) + x;
- device->led_pwm[pwm_reg] = pwm;
- device->led_dirty = 1;
-}
-
-void update_issi(uint8_t device_addr, uint8_t blocking)
-{
- // This seems to take about 6ms
- ISSIDeviceStruct *device = issi_devices[device_addr];
- if(device != 0){
- if(device->fn_dirty){
- device->fn_dirty = 0;
- setFrame(device_addr, ISSI_BANK_FUNCTIONREG);
- TWITransmitData(&device->fn_device_addr, sizeof(device->fn_registers) + 2, 0, 1);
- }
- if(device->led_dirty){
- device->led_dirty = 0;
- setFrame(device_addr, 0);
- TWITransmitData(&device->led_device_addr, 0xB6, 0, blocking);
- }
- }
-}
-
-void issi_init(void)
-{
- TWIInit();
- for(uint8_t device_addr = 0; device_addr < 4; device_addr++){
- // If this device has been previously allocated, free it
- if(issi_devices[device_addr] != 0){
- free(issi_devices[device_addr]);
- }
- // Try to shutdown the device, if this fails skip this device
- writeRegister8(device_addr, ISSI_BANK_FUNCTIONREG, ISSI_REG_SHUTDOWN, 0x00);
- while (!isTWIReady()){_delay_us(1);}
- if(TWIInfo.errorCode != 0xFF){
- xprintf("ISSI init failed %d %02X %02X\n", device_addr, TWIInfo.mode, TWIInfo.errorCode);
- continue;
- }
- // Allocate the device structure - calloc zeros it for us
- ISSIDeviceStruct *device = (ISSIDeviceStruct *)calloc(sizeof(ISSIDeviceStruct) * 2, 1);
- issi_devices[device_addr] = device;
- device->fn_device_addr = ISSI_ADDR_DEFAULT | device_addr << 1;
- device->fn_register_addr = 0;
- device->led_device_addr = ISSI_ADDR_DEFAULT | device_addr << 1;
- device->led_register_addr = 0;
- // set dirty bits so that all of the buffered data is written out
- device->fn_dirty = 1;
- device->led_dirty = 1;
- update_issi(device_addr, 1);
- // Set the function register to picture mode
- // device->fn_reg[ISSI_REG_CONFIG] = ISSI_REG_CONFIG_PICTUREMODE;
- writeRegister8(device_addr, ISSI_BANK_FUNCTIONREG, ISSI_REG_SHUTDOWN, 0x01);
- }
-
- // Shutdown and set all registers to 0
- // writeRegister8(device_addr, ISSI_BANK_FUNCTIONREG, ISSI_REG_SHUTDOWN, 0x00);
- // for(uint8_t bank = 0; bank <= 7; bank++){
- // for (uint8_t reg = 0x00; reg <= 0xB3; reg++) {
- // writeRegister8(device_addr, bank, reg, 0x00);
- // }
- // }
- // for (uint8_t reg = 0; reg <= 0x0C; reg++) {
- // writeRegister8(device_addr, ISSI_BANK_FUNCTIONREG, reg, 0x00);
- // }
- // writeRegister8(device_addr, ISSI_BANK_FUNCTIONREG, ISSI_REG_CONFIG, ISSI_REG_CONFIG_PICTUREMODE);
- // writeRegister8(device_addr, ISSI_BANK_FUNCTIONREG, ISSI_REG_SHUTDOWN, 0x01);
- // picture mode
- // writeRegister8(ISSI_BANK_FUNCTIONREG, 0x01, 0x01);
-
- //Enable blink
- // writeRegister8(ISSI_BANK_FUNCTIONREG, 0x05, 0x48B);
-
- //Enable Breath
-
-}
-
-#endif \ No newline at end of file
diff --git a/keyboards/lfkeyboards/issi.h b/keyboards/lfkeyboards/issi.h
deleted file mode 100644
index 74379ddbc8..0000000000
--- a/keyboards/lfkeyboards/issi.h
+++ /dev/null
@@ -1,39 +0,0 @@
-#pragma once
-
-#ifdef ISSI_ENABLE
-
-typedef struct ISSIDeviceStruct{
- uint8_t fn_dirty; // function registers need to be resent
- uint8_t fn_device_addr;
- uint8_t fn_register_addr;
- uint8_t fn_registers[13];
- uint8_t led_dirty; // LED data has changed and needs to be resent
- uint8_t led_device_addr;
- uint8_t led_register_addr;
- uint8_t led_ctrl[18];
- uint8_t led_blink_ctrl[18];
- uint8_t led_pwm[144];
-}ISSIDeviceStruct;
-
-extern ISSIDeviceStruct *issi_devices[];
-
-// Low level commands- 'device' is the 2-bit i2c id.
-void issi_init(void);
-void set_shutdown(uint8_t device, uint8_t shutdown);
-void writeRegister8(uint8_t device, uint8_t frame, uint8_t reg, uint8_t data);
-
-// Higher level, no device is given, but it is calculated from 'matrix'
-// Each device has 2 blocks, max of 4 devices:
-// Device | Block = Matrix
-// 0 A 0
-// 0 B 1
-// 1 A 2
-// 1 B 3
-// 2 A 4
-// 2 B 5
-// 3 A 6
-// 3 B 7
-void activateLED(uint8_t matrix, uint8_t cx, uint8_t cy, uint8_t pwm);
-void update_issi(uint8_t device_addr, uint8_t blocking);
-
-#endif
diff --git a/keyboards/lfkeyboards/lfk65_hs/config.h b/keyboards/lfkeyboards/lfk65_hs/config.h
index 221eee1bd4..7bc78f68d6 100644
--- a/keyboards/lfkeyboards/lfk65_hs/config.h
+++ b/keyboards/lfkeyboards/lfk65_hs/config.h
@@ -1,7 +1,5 @@
#pragma once
-#define BACKLIGHT_PWM_MAP {8, 16, 40, 55, 70, 128, 200, 255}
-
/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
#define LOCKING_SUPPORT_ENABLE
/* Locking resynchronize hack */
diff --git a/keyboards/lfkeyboards/lfk65_hs/info.json b/keyboards/lfkeyboards/lfk65_hs/info.json
index ca2e2c695b..0034fced4a 100644
--- a/keyboards/lfkeyboards/lfk65_hs/info.json
+++ b/keyboards/lfkeyboards/lfk65_hs/info.json
@@ -13,28 +13,6 @@
"rows": ["B0", "B3", "B2", "B1", "F5"]
},
"diode_direction": "COL2ROW",
- "backlight": {
- "levels": 8
- },
- "rgblight": {
- "hue_steps": 10,
- "led_count": 20,
- "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": "C7"
- },
"processor": "atmega32u4",
"bootloader": "atmel-dfu",
"layouts": {
diff --git a/keyboards/lfkeyboards/lfk65_hs/lfk65_hs.c b/keyboards/lfkeyboards/lfk65_hs/lfk65_hs.c
index 47ad655ddc..ee8d8b2e73 100644
--- a/keyboards/lfkeyboards/lfk65_hs/lfk65_hs.c
+++ b/keyboards/lfkeyboards/lfk65_hs/lfk65_hs.c
@@ -1,13 +1,10 @@
-#include <avr/sfr_defs.h>
-#include <avr/timer_avr.h>
-#include <avr/wdt.h>
#include "lfk65_hs.h"
+#include <avr/wdt.h>
bool process_record_kb(uint16_t keycode, keyrecord_t* record)
{
if (keycode == QK_BOOT) {
reset_keyboard_kb();
- } else {
}
return process_record_user(keycode, record);
}
diff --git a/keyboards/lfkeyboards/lfk65_hs/lfk65_hs.h b/keyboards/lfkeyboards/lfk65_hs/lfk65_hs.h
index 2be617b404..90031022d3 100644
--- a/keyboards/lfkeyboards/lfk65_hs/lfk65_hs.h
+++ b/keyboards/lfkeyboards/lfk65_hs/lfk65_hs.h
@@ -1,8 +1,5 @@
#pragma once
#include "quantum.h"
-#include "matrix.h"
-#include <avr/sfr_defs.h>
-#include <stdint.h>
void reset_keyboard_kb(void);
diff --git a/keyboards/lfkeyboards/lfk65_hs/rules.mk b/keyboards/lfkeyboards/lfk65_hs/rules.mk
index 5589209fdd..e69de29bb2 100644
--- a/keyboards/lfkeyboards/lfk65_hs/rules.mk
+++ b/keyboards/lfkeyboards/lfk65_hs/rules.mk
@@ -1,2 +0,0 @@
-# Extra source files for IS3731 lighting
-SRC = TWIlib.c issi.c lighting.c
diff --git a/keyboards/lfkeyboards/lfk78/config.h b/keyboards/lfkeyboards/lfk78/config.h
index 89d9c4b243..99c3904213 100644
--- a/keyboards/lfkeyboards/lfk78/config.h
+++ b/keyboards/lfkeyboards/lfk78/config.h
@@ -17,8 +17,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#pragma once
-#define BACKLIGHT_PWM_MAP { 8, 16, 40, 55, 70, 128, 200, 255 }
-
#define AUDIO_PIN C6
#define AUDIO_VOICES
diff --git a/keyboards/lfkeyboards/lfk78/keymaps/ca178858/keymap.c b/keyboards/lfkeyboards/lfk78/keymaps/ca178858/keymap.c
index f4d1e010ee..80e267e458 100644
--- a/keyboards/lfkeyboards/lfk78/keymaps/ca178858/keymap.c
+++ b/keyboards/lfkeyboards/lfk78/keymaps/ca178858/keymap.c
@@ -15,23 +15,6 @@ enum {
bool spam_space = false;
-// {0x00000000, 0xFFFFFFFF, {0x0000, 0x0FFF, 0x0000}}, // base layer - green
-// {0x00000008, 0xFFFFFFF8, {0x07FF, 0x07FF, 0x0000}}, // CSGO layer - orange
-// {0x00000010, 0xFFFFFFF0, {0x0000, 0x0000, 0x0FFF}}, // function layer - blue
-// {0x00000020, 0xFFFFFFE0, {0x0FFF, 0x0000, 0x0FFF}}, // settings layer - magenta
-// {0xFFFFFFFF, 0xFFFFFFFF, {0x0FFF, 0x0FFF, 0x0FFF}}, // unknown layer - REQUIRED - white
-
-// Colors of the layer indicator LED
-// This list needs to define layer 0xFFFFFFFF, it is the end of the list, and the unknown layer
-const Layer_Info layer_info[] = {
- // Layer Mask Red Green Blue
- {0x00000000, 0xFFFFFFFF, {0x0000, 0x0FFF, 0x0000}}, // base layer - green
- {0x00000002, 0xFFFFFFFE, {0x07FF, 0x07FF, 0x0000}}, // CSGO layer - orange
- {0x00000004, 0xFFFFFFFC, {0x0000, 0x0000, 0x0FFF}}, // function layer - blue
- {0x00000008, 0xFFFFFFE8, {0x0FFF, 0x0000, 0x0FFF}}, // settings layer - magenta
- {0xFFFFFFFF, 0xFFFFFFFF, {0x0FFF, 0x0FFF, 0x0FFF}}, // unknown layer - REQUIRED - white
-};
-
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* Keymap BASE: (Base Layer) Default Layer
* ,---------. ,------------------------------------------------------------. ,---------.
@@ -55,7 +38,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
),
[CS_GO] = LAYOUT_split_rshift(
- _______, _______, QK_GESC, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, F(0), _______,
+ _______, _______, QK_GESC, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, KC_LCTL, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
diff --git a/keyboards/lfkeyboards/lfk78/keymaps/ca178858/rules.mk b/keyboards/lfkeyboards/lfk78/keymaps/ca178858/rules.mk
index 481ff1407b..732bfcfa8f 100644
--- a/keyboards/lfkeyboards/lfk78/keymaps/ca178858/rules.mk
+++ b/keyboards/lfkeyboards/lfk78/keymaps/ca178858/rules.mk
@@ -1,34 +1,3 @@
-BOOTMAGIC_ENABLE = no # Enable Bootmagic Lite
-MOUSEKEY_ENABLE = no # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
-COMMAND_ENABLE = no # Commands for debug and configuration
-NKRO_ENABLE = yes
-BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
-MIDI_ENABLE = no # MIDI controls
-AUDIO_ENABLE = no # Audio output on port C6
-UNICODE_ENABLE = no # Unicode
-BLUETOOTH_ENABLE = no # Disable Bluetooth with the Adafruit EZ-Key HID
-RGBLIGHT_ENABLE = no # Enable RGB underlight
-SLEEP_LED_ENABLE = yes
+AUDIO_ENABLE = no
TAP_DANCE_ENABLE = yes
-
-ISSI_ENABLE = yes # If the I2C pullup resistors aren't install this must be disabled
WATCHDOG_ENABLE = yes # Resets keyboard if matrix_scan isn't run every 250ms
-
-
-# # Set the LFK78 hardware version. This is defined in rules.mk, but can be overidden here if desired
-# #
-# # RevB - first public release, uses atmega32u4, has audio, ISSI matrix split between RGB and backlight
-# # RevC/D - at90usb1286, no audio, ISSI device 0 is backlight, 4 is RGB
-# #
-# # Set to B, C or D
-# LFK_REV = D
-
-# ifeq ($(LFK_REV), B)
-# MCU = atmega32u4
-# else
-# MCU = at90usb1286
-# endif
-# OPT_DEFS += -DLFK_REV_$(LFK_REV)
-# OPT_DEFS += -DUSB_PRODUCT=\"LFK_Rev$(LFK_REV)\"
diff --git a/keyboards/lfkeyboards/lfk78/keymaps/default/keymap.c b/keyboards/lfkeyboards/lfk78/keymaps/default/keymap.c
index 4b0a7e2196..d81ed91814 100644
--- a/keyboards/lfkeyboards/lfk78/keymaps/default/keymap.c
+++ b/keyboards/lfkeyboards/lfk78/keymaps/default/keymap.c
@@ -6,16 +6,6 @@ enum keymap_layout {
SETTINGS
};
-// Colors of the layer indicator LED
-// This list needs to define layer 0xFFFFFFFF, it is the end of the list, and the unknown layer
-const Layer_Info layer_info[] = {
- // Layer Mask Red Green Blue
- { 0x00000000, 0xFFFFFFFF, { 0x0000, 0x0FFF, 0x0000 } }, // base layer - green
- { 0x00000002, 0xFFFFFFFE, { 0x0000, 0x0000, 0x0FFF } }, // function layer - blue
- { 0x00000004, 0xFFFFFFFC, { 0x0FFF, 0x0000, 0x0FFF } }, // settings layer - magenta
- { 0xFFFFFFFF, 0xFFFFFFFF, { 0x0FFF, 0x0FFF, 0x0FFF } } // unknown layer - REQUIRED - white
-};
-
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* Keymap VANILLA: (Base Layer) Default Layer
* ,---------. ,------------------------------------------------------------. ,---------.
diff --git a/keyboards/lfkeyboards/lfk78/keymaps/iso/keymap.c b/keyboards/lfkeyboards/lfk78/keymaps/iso/keymap.c
index 7db914604d..1f3ef6fc8e 100644
--- a/keyboards/lfkeyboards/lfk78/keymaps/iso/keymap.c
+++ b/keyboards/lfkeyboards/lfk78/keymaps/iso/keymap.c
@@ -6,16 +6,6 @@ enum keymap_layout {
SETTINGS
};
-// Colors of the layer indicator LED
-// This list needs to define layer 0xFFFFFFFF, it is the end of the list, and the unknown layer
-const Layer_Info layer_info[] = {
- // Layer Mask Red Green Blue
- { 0x00000000, 0xFFFFFFFF, { 0x0000, 0x0FFF, 0x0000 } }, // base layer - green
- { 0x00000002, 0xFFFFFFFE, { 0x0000, 0x0000, 0x0FFF } }, // function layer - blue
- { 0x00000004, 0xFFFFFFFC, { 0x0FFF, 0x0000, 0x0FFF } }, // settings layer - magenta
- { 0xFFFFFFFF, 0xFFFFFFFF, { 0x0FFF, 0x0FFF, 0x0FFF } } // unknown layer - REQUIRED - white
-};
-
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* Keymap VANILLA: (Base Layer) Default Layer
* ,---------. ,------------------------------------------------------------. ,---------.
diff --git a/keyboards/lfkeyboards/lfk78/keymaps/split_bs_osx/keymap.c b/keyboards/lfkeyboards/lfk78/keymaps/split_bs_osx/keymap.c
index 00e292d61f..041c3cdfd0 100644
--- a/keyboards/lfkeyboards/lfk78/keymaps/split_bs_osx/keymap.c
+++ b/keyboards/lfkeyboards/lfk78/keymaps/split_bs_osx/keymap.c
@@ -6,16 +6,6 @@ enum keymap_layout {
SETTINGS
};
-// Colors of the layer indicator LED
-// This list needs to define layer 0xFFFFFFFF, it is the end of the list, and the unknown layer
-const Layer_Info layer_info[] = {
- // Layer Mask Red Green Blue
- { 0x00000000, 0xFFFFFFFF, { 0x0000, 0x0FFF, 0x0000 } }, // base layer - green
- { 0x00000002, 0xFFFFFFFE, { 0x0000, 0x0000, 0x0FFF } }, // function layer - blue
- { 0x00000004, 0xFFFFFFFC, { 0x0FFF, 0x0000, 0x0FFF } }, // settings layer - magenta
- { 0xFFFFFFFF, 0xFFFFFFFF, { 0x0FFF, 0x0FFF, 0x0FFF } } // unknown layer - REQUIRED - white
-};
-
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* Keymap VANILLA: (Base Layer) Default Layer
* ,---------. ,------------------------------------------------------------. ,---------.
diff --git a/keyboards/lfkeyboards/lfk78/lfk78.c b/keyboards/lfkeyboards/lfk78/lfk78.c
index 3a10f51cb6..50f1505050 100644
--- a/keyboards/lfkeyboards/lfk78/lfk78.c
+++ b/keyboards/lfkeyboards/lfk78/lfk78.c
@@ -1,55 +1,19 @@
#include "lfk78.h"
-
-#include <avr/timer_avr.h>
#include <avr/wdt.h>
-#include "issi.h"
-#include "TWIlib.h"
-#include "lighting.h"
-
-#ifdef AUDIO_ENABLE
-# include "audio.h"
-#endif
uint16_t click_hz = CLICK_HZ;
uint16_t click_time = CLICK_MS;
uint8_t click_toggle = CLICK_ENABLED;
-__attribute__((weak))
-const Layer_Info layer_info[] = {
- // Layer Mask Red Green Blue
- { 0x00000000, 0xFFFFFFFF, { 0x0000, 0x0FFF, 0x0000 } }, // base layer - green
- { 0x00000002, 0xFFFFFFFE, { 0x0000, 0x0000, 0x0FFF } }, // function layer - blue
- { 0x00000004, 0xFFFFFFFC, { 0x0FFF, 0x0000, 0x0FFF } }, // settings layer - magenta
- { 0xFFFFFFFF, 0xFFFFFFFF, { 0x0FFF, 0x0FFF, 0x0FFF } } // unknown layer - REQUIRED - white
-};
-
void matrix_init_kb(void) {
matrix_init_user();
- // Configure the Layer LED
- // Set up 16 bit PWM: Fast PWM, mode 14, inverted
- TCCR1A = _BV(COM1A1) | _BV(COM1A0) | _BV(COM1B1) | _BV(COM1B0) | _BV(COM1C1) | _BV(COM1C0) | _BV(WGM11);
- TCCR1B = _BV(WGM13) | _BV(WGM12) | _BV(CS10);
- ICR1 = 0xFFFF;
- // PWM values - 0xFFFF = off, 0x0000 = max
- OCR1A = 0x0FFF; // B5 - Red
- OCR1B = 0x0000; // B6 - Green
- OCR1C = 0x0000; // B7 - Blue
- // Set as output
- setPinOutput(B5);
- setPinOutput(B6);
- setPinOutput(B7);
-
#ifndef AUDIO_ENABLE
// If we're not using the audio pin, drive it low
setPinOutput(C6);
writePinLow(C6);
#endif
-#ifdef ISSI_ENABLE
- issi_init();
-#endif
-
#ifdef WATCHDOG_ENABLE
// This is done after turning the layer LED red, if we're caught in a loop
// we should get a flashing red light
@@ -62,54 +26,6 @@ void matrix_scan_kb(void) {
wdt_reset();
#endif
-#ifdef ISSI_ENABLE
- // switch/underglow lighting update
- static uint32_t issi_device = 0;
- static uint32_t twi_last_ready = 0;
-
- if (twi_last_ready > 1000) {
- // It's been way too long since the last ISSI update, reset the I2C bus and start again
- dprintf("TWI failed to recover, TWI re-init\n");
- twi_last_ready = 0;
- TWIInit();
- force_issi_refresh();
- }
-
- if (isTWIReady()) {
- twi_last_ready = 0;
- // If the i2c bus is available, kick off the issi update, alternate between devices
- update_issi(issi_device, issi_device);
-
- if (issi_device) {
- issi_device = 0;
- } else {
- issi_device = 3;
- }
- } else {
- twi_last_ready++;
- }
-#endif
-
- // Update layer indicator LED
- //
- // Not sure how else to reliably do this... TMK has the 'hook_layer_change'
- // but can't find QMK equiv
- static uint32_t layer_indicator = -1;
-
- if (layer_indicator != layer_state) {
- for (uint32_t i = 0; ; i++) {
- // the layer_info list should end with layer 0xFFFFFFFF
- // it will break this out of the loop and define the unknown layer color
- if ((layer_info[i].layer == (layer_state & layer_info[i].mask)) || (layer_info[i].layer == 0xFFFFFFFF)) {
- OCR1A = layer_info[i].color.red;
- OCR1B = layer_info[i].color.green;
- OCR1C = layer_info[i].color.blue;
- layer_indicator = layer_state;
- break;
- }
- }
- }
-
matrix_scan_user();
}
@@ -144,34 +60,5 @@ void reset_keyboard_kb(void) {
wdt_reset();
#endif
- OCR1A = 0x0000; // B5 - Red
- OCR1B = 0x0FFF; // B6 - Green
- OCR1C = 0x0FFF; // B7 - Blue
-
reset_keyboard();
}
-
-bool led_update_kb(led_t led_state) {
- bool res = led_update_user(led_state);
- if(res) {
-#ifdef ISSI_ENABLE
-# ifdef CAPSLOCK_LED
- if (led_state.caps_lock) {
- activateLED(0, 3, 7, 255);
- } else {
- activateLED(0, 3, 7, 0);
- }
-# endif // CAPSLOCK_LED
-#endif // ISS_ENABLE
-
- }
- return res;
-}
-
-// LFK lighting info
-const uint8_t switch_matrices[] = { 0, 1 };
-const uint8_t rgb_matrices[] = { 6, 7 };
-const uint8_t rgb_sequence[] = {
- 12, 11, 10, 9, 16, 32, 31, 30, 28, 25, 24, 22, 21,
- 20, 19, 18, 17, 1, 2, 3, 4, 5, 6, 7, 8, 14, 13
-};
diff --git a/keyboards/lfkeyboards/lfk78/lfk78.h b/keyboards/lfkeyboards/lfk78/lfk78.h
index 1be53181cd..ee6f8d47e0 100644
--- a/keyboards/lfkeyboards/lfk78/lfk78.h
+++ b/keyboards/lfkeyboards/lfk78/lfk78.h
@@ -2,21 +2,6 @@
#include "quantum.h"
-typedef struct RGB_Color {
- uint16_t red;
- uint16_t green;
- uint16_t blue;
-} RGB_Color;
-
-typedef struct Layer_Info {
- uint32_t layer;
- uint32_t mask;
- RGB_Color color;
-} Layer_Info;
-
-extern const uint32_t layer_count;
-extern const Layer_Info layer_info[];
-
#define CLICK_HZ 500
#define CLICK_MS 2
#define CLICK_ENABLED 0
diff --git a/keyboards/lfkeyboards/lfk78/post_rules.mk b/keyboards/lfkeyboards/lfk78/post_rules.mk
index 817a085f5e..1b087d7e1e 100644
--- a/keyboards/lfkeyboards/lfk78/post_rules.mk
+++ b/keyboards/lfkeyboards/lfk78/post_rules.mk
@@ -1,14 +1,3 @@
-# Extra source files for IS3731 lighting
-SRC += TWIlib.c issi.c lighting.c
-
-ifeq ($(strip $(ISSI_ENABLE)), yes)
- OPT_DEFS += -DISSI_ENABLE
-endif
-
ifeq ($(strip $(WATCHDOG_ENABLE)), yes)
OPT_DEFS += -DWATCHDOG_ENABLE
endif
-
-ifeq ($(strip $(CAPSLOCK_LED)), yes)
- OPT_DEFS += -DCAPSLOCK_LED
-endif
diff --git a/keyboards/lfkeyboards/lfk78/revb/info.json b/keyboards/lfkeyboards/lfk78/revb/info.json
index 1431ce1cc6..ac98455afa 100644
--- a/keyboards/lfkeyboards/lfk78/revb/info.json
+++ b/keyboards/lfkeyboards/lfk78/revb/info.json
@@ -13,30 +13,6 @@
"rows": ["B0", "B1", "B2", "B3", "B4", "F0", "F1", "F4", "F5", "F6"]
},
"diode_direction": "COL2ROW",
- "backlight": {
- "driver": "custom",
- "levels": 8
- },
- "rgblight": {
- "driver": "custom",
- "hue_steps": 10,
- "led_count": 31,
- "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": "C7"
- },
"processor": "atmega32u4",
"bootloader": "atmel-dfu",
"layouts": {
diff --git a/keyboards/lfkeyboards/lfk78/revb/revb.c b/keyboards/lfkeyboards/lfk78/revb/revb.c
deleted file mode 100644
index d5b6b47b03..0000000000
--- a/keyboards/lfkeyboards/lfk78/revb/revb.c
+++ /dev/null
@@ -1,19 +0,0 @@
-#include "quantum.h"
-
-// Maps switch LEDs from Row/Col to ISSI matrix.
-// Value breakdown:
-// Bit | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
-// / \ ISSI Col | ISSI Row |
-// matrix idx
-const uint8_t switch_leds[MATRIX_ROWS][MATRIX_COLS] = {
- {0x19, 0x18, 0x17, 0x16, 0x15, 0x14, 0x13, 0x12},
- {0x29, 0x28, 0x27, 0x26, 0x25, 0x24, 0x23, 0x22},
- {0x39, 0x38, 0x37, 0x36, 0x35, 0x34, 0x33, 0x32},
- {0x49, 0x48, 0x47, 0x45, 0x44, 0x43, 0x42, 0x41},
- {0x59, 0x58, 0x57, 0x56, 0x55, 0x51, 0xD6, 0xE5},
- {0x11, 0x99, 0x98, 0x97, 0x96, 0x95, 0x94, 0x93},
- {0x21, 0xA9, 0xA8, 0xA7, 0xA6, 0xA5, 0xA4, 0xA3},
- {0x31, 0xB9, 0xB8, 0xB7, 0xB6, 0xB5, 0xB3, 0x00},
- {0xC9, 0xC8, 0xC7, 0xC6, 0xC5, 0xC4, 0xC2, 0x00},
- {0xE4, 0xE3, 0xE2, 0xE1, 0x92, 0x91, 0xA2, 0xA1}
-};
diff --git a/keyboards/lfkeyboards/lfk78/revc/info.json b/keyboards/lfkeyboards/lfk78/revc/info.json
index 980ffafc63..7bfaf8cac6 100644
--- a/keyboards/lfkeyboards/lfk78/revc/info.json
+++ b/keyboards/lfkeyboards/lfk78/revc/info.json
@@ -13,30 +13,6 @@
"rows": ["D2", "D3", "D4", "D5", "D6"]
},
"diode_direction": "COL2ROW",
- "backlight": {
- "driver": "custom",
- "levels": 8
- },
- "rgblight": {
- "driver": "custom",
- "hue_steps": 10,
- "led_count": 27,
- "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": "C7"
- },
"processor": "at90usb1286",
"bootloader": "atmel-dfu",
"layouts": {
diff --git a/keyboards/lfkeyboards/lfk78/revc/revc.c b/keyboards/lfkeyboards/lfk78/revc/revc.c
deleted file mode 100644
index a31aea365b..0000000000
--- a/keyboards/lfkeyboards/lfk78/revc/revc.c
+++ /dev/null
@@ -1,14 +0,0 @@
-#include "quantum.h"
-
-// Maps switch LEDs from Row/Col to ISSI matrix.
-// Value breakdown:
-// Bit | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
-// / \ ISSI Col | ISSI Row |
-// matrix idx
-const uint8_t switch_leds[MATRIX_ROWS][MATRIX_COLS] = {
- {0x19, 0x18, 0x17, 0x16, 0x15, 0x14, 0x13, 0x12, 0x11, 0x99, 0x98, 0x97, 0x96, 0x95, 0x94, 0x93, 0x92, 0x91},
- {0x29, 0x28, 0x27, 0x26, 0x25, 0x24, 0x23, 0x22, 0x21, 0xA9, 0xA8, 0xA7, 0xA6, 0xA5, 0xA4, 0xA3, 0xA2, 0xA1},
- {0x39, 0x38, 0x37, 0x36, 0x35, 0x34, 0x33, 0x32, 0x31, 0xB9, 0xB8, 0xB7, 0xB6, 0xB5, 0xB3, 0x00, 0x00, 0x00},
- {0x49, 0x48, 0x47, 0x00, 0x45, 0x44, 0x43, 0x42, 0x41, 0xC9, 0xC8, 0xC7, 0xC6, 0xC5, 0xC4, 0x00, 0xC2, 0x00},
- {0x59, 0x58, 0x57, 0x56, 0x55, 0x00, 0x00, 0x00, 0x51, 0x00, 0x00, 0x00, 0xD6, 0xE5, 0xE4, 0xE3, 0xE2, 0xE1}
-};
diff --git a/keyboards/lfkeyboards/lfk78/revj/info.json b/keyboards/lfkeyboards/lfk78/revj/info.json
index 5ff7bcbbfd..f99df02ed9 100644
--- a/keyboards/lfkeyboards/lfk78/revj/info.json
+++ b/keyboards/lfkeyboards/lfk78/revj/info.json
@@ -13,30 +13,6 @@
"rows": ["D2", "D3", "D4", "D5", "D6"]
},
"diode_direction": "COL2ROW",
- "backlight": {
- "driver": "custom",
- "levels": 8
- },
- "rgblight": {
- "driver": "custom",
- "hue_steps": 10,
- "led_count": 27,
- "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": "C7"
- },
"processor": "at90usb646",
"bootloader": "atmel-dfu",
"layouts": {
diff --git a/keyboards/lfkeyboards/lfk78/revj/revj.c b/keyboards/lfkeyboards/lfk78/revj/revj.c
deleted file mode 100644
index a31aea365b..0000000000
--- a/keyboards/lfkeyboards/lfk78/revj/revj.c
+++ /dev/null
@@ -1,14 +0,0 @@
-#include "quantum.h"
-
-// Maps switch LEDs from Row/Col to ISSI matrix.
-// Value breakdown:
-// Bit | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
-// / \ ISSI Col | ISSI Row |
-// matrix idx
-const uint8_t switch_leds[MATRIX_ROWS][MATRIX_COLS] = {
- {0x19, 0x18, 0x17, 0x16, 0x15, 0x14, 0x13, 0x12, 0x11, 0x99, 0x98, 0x97, 0x96, 0x95, 0x94, 0x93, 0x92, 0x91},
- {0x29, 0x28, 0x27, 0x26, 0x25, 0x24, 0x23, 0x22, 0x21, 0xA9, 0xA8, 0xA7, 0xA6, 0xA5, 0xA4, 0xA3, 0xA2, 0xA1},
- {0x39, 0x38, 0x37, 0x36, 0x35, 0x34, 0x33, 0x32, 0x31, 0xB9, 0xB8, 0xB7, 0xB6, 0xB5, 0xB3, 0x00, 0x00, 0x00},
- {0x49, 0x48, 0x47, 0x00, 0x45, 0x44, 0x43, 0x42, 0x41, 0xC9, 0xC8, 0xC7, 0xC6, 0xC5, 0xC4, 0x00, 0xC2, 0x00},
- {0x59, 0x58, 0x57, 0x56, 0x55, 0x00, 0x00, 0x00, 0x51, 0x00, 0x00, 0x00, 0xD6, 0xE5, 0xE4, 0xE3, 0xE2, 0xE1}
-};
diff --git a/keyboards/lfkeyboards/lfk78/rules.mk b/keyboards/lfkeyboards/lfk78/rules.mk
index 4e3f7b9256..82ffed96f5 100644
--- a/keyboards/lfkeyboards/lfk78/rules.mk
+++ b/keyboards/lfkeyboards/lfk78/rules.mk
@@ -7,13 +7,7 @@ EXTRAKEY_ENABLE = yes # Audio control and System control
CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
NKRO_ENABLE = yes # Enable N-Key Rollover
-BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
AUDIO_ENABLE = no # Audio output
-RGBLIGHT_ENABLE = yes # Enable WS2812 RGB underlight.
-SLEEP_LED_ENABLE = yes
-
-ISSI_ENABLE = yes # If the I2C pullup resistors aren't install this must be disabled
WATCHDOG_ENABLE = no # Resets keyboard if matrix_scan isn't run every 250ms
-CAPSLOCK_LED = no # Toggle back light LED of Caps Lock
DEFAULT_FOLDER = lfkeyboards/lfk78/revj
diff --git a/keyboards/lfkeyboards/lfk87/config.h b/keyboards/lfkeyboards/lfk87/config.h
index 20aba2ad6b..84c2fd11dc 100644
--- a/keyboards/lfkeyboards/lfk87/config.h
+++ b/keyboards/lfkeyboards/lfk87/config.h
@@ -20,8 +20,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define AUDIO_VOICES
#define AUDIO_PIN C6
-#define BACKLIGHT_PWM_MAP {2, 4, 8, 16, 40, 55, 70, 128, 200, 255}
-
/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
#define LOCKING_SUPPORT_ENABLE
/* Locking resynchronize hack */
diff --git a/keyboards/lfkeyboards/lfk87/info.json b/keyboards/lfkeyboards/lfk87/info.json
index 6a2d5eb796..0b53928421 100644
--- a/keyboards/lfkeyboards/lfk87/info.json
+++ b/keyboards/lfkeyboards/lfk87/info.json
@@ -8,15 +8,5 @@
"pid": "0x6060",
"device_version": "0.0.1"
},
- "backlight": {
- "driver": "custom",
- "levels": 10
- },
- "rgblight": {
- "driver": "custom"
- },
- "ws2812": {
- "pin": "F4"
- },
"community_layouts": ["tkl_ansi", "tkl_iso"]
}
diff --git a/keyboards/lfkeyboards/lfk87/keymaps/ca178858/keymap.c b/keyboards/lfkeyboards/lfk87/keymaps/ca178858/keymap.c
index 0dfba1afac..3be46837c1 100644
--- a/keyboards/lfkeyboards/lfk87/keymaps/ca178858/keymap.c
+++ b/keyboards/lfkeyboards/lfk87/keymaps/ca178858/keymap.c
@@ -13,17 +13,6 @@ enum {
TD_ESC_FUNC = 0,
};
-// Colors of the layer indicator LED
-// This list needs to define layer 0xFFFFFFFF, it is the end of the list, and the unknown layer
-const Layer_Info layer_info[] = {
- // Layer Mask Red Green Blue
- {0x00000000, 0xFFFFFFF8, {0x00, 0xFF, 0x00}}, // base layers (VANILLA, DEFAULT_WKL, DEFAULT_OSX) - green
- {0x00000008, 0xFFFFFFF8, {0x07FF, 0x07FF, 0x0000}}, // CSGO layer - orange
- {0x00000010, 0xFFFFFFF0, {0x0000, 0x0000, 0x0FFF}}, // function layer - blue
- {0x00000020, 0xFFFFFFE0, {0x0FFF, 0x0000, 0x0FFF}}, // settings layer - magenta
- {0xFFFFFFFF, 0xFFFFFFFF, {0x0FFF, 0x0FFF, 0x0FFF}}, // unknown layer - REQUIRED - white
-};
-
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* Keymap VANILLA: (Base Layer) Default Layer
* ,-----------------------------------------------------------------------------.
diff --git a/keyboards/lfkeyboards/lfk87/keymaps/ca178858/rules.mk b/keyboards/lfkeyboards/lfk87/keymaps/ca178858/rules.mk
index 8d2c18f6dd..eb12c33f4a 100644
--- a/keyboards/lfkeyboards/lfk87/keymaps/ca178858/rules.mk
+++ b/keyboards/lfkeyboards/lfk87/keymaps/ca178858/rules.mk
@@ -1,17 +1,2 @@
-BOOTMAGIC_ENABLE = no # Enable Bootmagic Lite
-MOUSEKEY_ENABLE = no # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = yes # Console for debug(+400)
-COMMAND_ENABLE = yes # Commands for debug and configuration
-NKRO_ENABLE = yes
-BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
-MIDI_ENABLE = no # MIDI controls
-AUDIO_ENABLE = yes # Audio output on port C6
-UNICODE_ENABLE = no # Unicode
-BLUETOOTH_ENABLE = no # Disable Bluetooth with the Adafruit EZ-Key HID
-RGBLIGHT_ENABLE = yes # Enable RGB underlight
-SLEEP_LED_ENABLE = yes
TAP_DANCE_ENABLE = yes
-
-ISSI_ENABLE = yes # If the I2C pullup resistors aren't install this must be disabled
WATCHDOG_ENABLE = yes # Resets keyboard if matrix_scan isn't run every 250ms
diff --git a/keyboards/lfkeyboards/lfk87/keymaps/default/keymap.c b/keyboards/lfkeyboards/lfk87/keymaps/default/keymap.c
index 2b1860fab3..b9057e9047 100644
--- a/keyboards/lfkeyboards/lfk87/keymaps/default/keymap.c
+++ b/keyboards/lfkeyboards/lfk87/keymaps/default/keymap.c
@@ -6,16 +6,6 @@ enum keymap_layout {
SETTINGS, // 0x10
};
-// Colors of the layer indicator LED
-// This list needs to define layer 0xFFFFFFFF, it is the end of the list, and the unknown layer
-const Layer_Info layer_info[] = {
- // Layer Mask Red Green Blue
- {0x00000000, 0xFFFFFFFF, {0x00, 0xFF, 0x00}}, // base layers - green
- {0x00000002, 0xFFFFFFFE, {0x00, 0x00, 0xFF}}, // function layer - blue
- {0x00000004, 0xFFFFFFFC, {0xFF, 0x00, 0xFF}}, // settings layer - magenta
- {0xFFFFFFFF, 0xFFFFFFFF, {0xFF, 0xFF, 0xFF}}, // unknown layer - REQUIRED - white
-};
-
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* Keymap VANILLA: (Base Layer) Default Layer
* ,-----------------------------------------------------------------------------.
diff --git a/keyboards/lfkeyboards/lfk87/keymaps/default/rules.mk b/keyboards/lfkeyboards/lfk87/keymaps/default/rules.mk
index ec4ce1afba..bcd6b23d23 100644
--- a/keyboards/lfkeyboards/lfk87/keymaps/default/rules.mk
+++ b/keyboards/lfkeyboards/lfk87/keymaps/default/rules.mk
@@ -1,13 +1 @@
-BOOTMAGIC_ENABLE = no # Enable Bootmagic Lite
-MOUSEKEY_ENABLE = no # Mouse keys
-EXTRAKEY_ENABLE = yes # Audio control and System control
-CONSOLE_ENABLE = no # Console for debug
-COMMAND_ENABLE = no # Commands for debug and configuration
-NKRO_ENABLE = yes
-BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
-AUDIO_ENABLE = yes # Audio output
-RGBLIGHT_ENABLE = yes # Enable RGB underlight
-SLEEP_LED_ENABLE = yes
-
-ISSI_ENABLE = yes # If the I2C pullup resistors aren't install this must be disabled
WATCHDOG_ENABLE = no # Resets keyboard if matrix_scan isn't run every 250ms
diff --git a/keyboards/lfkeyboards/lfk87/keymaps/gbchk/keymap.c b/keyboards/lfkeyboards/lfk87/keymaps/gbchk/keymap.c
index 48726503ab..0191b3570f 100644
--- a/keyboards/lfkeyboards/lfk87/keymaps/gbchk/keymap.c
+++ b/keyboards/lfkeyboards/lfk87/keymaps/gbchk/keymap.c
@@ -6,16 +6,6 @@ enum keymap_layout {
SETTINGS, // 0x10
};
-// Colors of the layer indicator LED
-// This list needs to define layer 0xFFFFFFFF, it is the end of the list, and the unknown layer
-const Layer_Info layer_info[] = {
- // Layer Mask Red Green Blue
- {0x00000000, 0xFFFFFFFF, {0x00, 0x00, 0x00}}, // base layers - off
- {0x00000002, 0xFFFFFFFE, {0x00, 0x00, 0xFF}}, // function layer - blue
- {0x00000004, 0xFFFFFFFC, {0xFF, 0x00, 0xFF}}, // settings layer - magenta
- {0xFFFFFFFF, 0xFFFFFFFF, {0xFF, 0xFF, 0xFF}}, // unknown layer - REQUIRED - white
-};
-
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* Keymap VANILLA: (Base Layer) Default Layer
* ,-----------------------------------------------------------------------------.
diff --git a/keyboards/lfkeyboards/lfk87/keymaps/gbchk/rules.mk b/keyboards/lfkeyboards/lfk87/keymaps/gbchk/rules.mk
index 01b8506d3a..bcd6b23d23 100644
--- a/keyboards/lfkeyboards/lfk87/keymaps/gbchk/rules.mk
+++ b/keyboards/lfkeyboards/lfk87/keymaps/gbchk/rules.mk
@@ -1,16 +1 @@
-BOOTMAGIC_ENABLE = no # Enable Bootmagic Lite
-MOUSEKEY_ENABLE = no # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
-COMMAND_ENABLE = no # Commands for debug and configuration
-NKRO_ENABLE = yes
-BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
-MIDI_ENABLE = no # MIDI controls
-AUDIO_ENABLE = yes # Audio output on port C6
-UNICODE_ENABLE = no # Unicode
-BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
-RGBLIGHT_ENABLE = yes # Enable RGB underlight
-SLEEP_LED_ENABLE = yes
-
-ISSI_ENABLE = yes # If the I2C pullup resistors aren't install this must be disabled
WATCHDOG_ENABLE = no # Resets keyboard if matrix_scan isn't run every 250ms
diff --git a/keyboards/lfkeyboards/lfk87/keymaps/iso/keymap.c b/keyboards/lfkeyboards/lfk87/keymaps/iso/keymap.c
index 56ca013b0d..510aa6730f 100644
--- a/keyboards/lfkeyboards/lfk87/keymaps/iso/keymap.c
+++ b/keyboards/lfkeyboards/lfk87/keymaps/iso/keymap.c
@@ -6,16 +6,6 @@ enum keymap_layout {
SETTINGS, // 0x04
};
-// Colors of the layer indicator LED
-// This list needs to define layer 0xFFFFFFFF, it is the end of the list, and the unknown layer
-const Layer_Info layer_info[] = {
- // Layer Mask Red Green Blue
- {0x00000000, 0xFFFFFFFF, {0x00, 0x00, 0x00}}, // base layer - off
- {0x00000002, 0xFFFFFFFE, {0x00, 0x00, 0x7F}}, // function layer - blue
- {0x00000004, 0xFFFFFFFC, {0x7F, 0x00, 0x00}}, // settings layer - red
- {0xFFFFFFFF, 0xFFFFFFFF, {0x0F, 0x0F, 0x0F}}, // unknown layer - REQUIRED - white
-};
-
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* Keymap VANILLA: (Base Layer) Default Layer
* ,-----------------------------------------------------------------------------.
diff --git a/keyboards/lfkeyboards/lfk87/keymaps/iso/rules.mk b/keyboards/lfkeyboards/lfk87/keymaps/iso/rules.mk
index 7baa40317a..a5f96a8317 100644
--- a/keyboards/lfkeyboards/lfk87/keymaps/iso/rules.mk
+++ b/keyboards/lfkeyboards/lfk87/keymaps/iso/rules.mk
@@ -1,13 +1,2 @@
-BOOTMAGIC_ENABLE = no # Enable Bootmagic Lite
-MOUSEKEY_ENABLE = no # Mouse keys
-EXTRAKEY_ENABLE = yes # Audio control and System control
-CONSOLE_ENABLE = no # Console for debug
-COMMAND_ENABLE = no # Commands for debug and configuration
-NKRO_ENABLE = yes
-BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
-AUDIO_ENABLE = yes # Audio output
-RGBLIGHT_ENABLE = yes # Enable RGB underlight
-SLEEP_LED_ENABLE = yes
-
-ISSI_ENABLE = yes # If the I2C pullup resistors aren't install this must be disabled
+AUDIO_ENABLE = yes
WATCHDOG_ENABLE = no # Resets keyboard if matrix_scan isn't run every 250ms
diff --git a/keyboards/lfkeyboards/lfk87/lfk87.c b/keyboards/lfkeyboards/lfk87/lfk87.c
index 3e95361a33..849f0ebcc5 100644
--- a/keyboards/lfkeyboards/lfk87/lfk87.c
+++ b/keyboards/lfkeyboards/lfk87/lfk87.c
@@ -1,42 +1,20 @@
-
-#include <avr/sfr_defs.h>
-#include <avr/timer_avr.h>
-#include <avr/wdt.h>
#include "lfk87.h"
-#include "issi.h"
-#include "TWIlib.h"
-#include "lighting.h"
-#include "debug.h"
-#include "quantum.h"
+#include <avr/wdt.h>
uint16_t click_hz = CLICK_HZ;
uint16_t click_time = CLICK_MS;
uint8_t click_toggle = CLICK_ENABLED;
-__attribute__((weak))
-const Layer_Info layer_info[] = {
- // Layer Mask Red Green Blue
- {0x00000000, 0xFFFFFFFF, {0x00, 0xFF, 0x00}}, // base layers - green
- {0x00000002, 0xFFFFFFFE, {0x00, 0x00, 0xFF}}, // function layer - blue
- {0x00000004, 0xFFFFFFFC, {0xFF, 0x00, 0xFF}}, // settings layer - magenta
- {0xFFFFFFFF, 0xFFFFFFFF, {0xFF, 0xFF, 0xFF}}, // unknown layer - REQUIRED - white
-};
-
void matrix_init_kb(void)
{
// put your keyboard start-up code here
// runs once when the firmware starts up
matrix_init_user();
- set_rgb(31, 0x00, 0x00, 0x00); // Caps lock
- set_rgb(32, 0xFF, 0x00, 0x00); // Layer indicator, start red
#ifndef AUDIO_ENABLE
// If we're not using the audio pin, drive it low
setPinOutput(C6);
writePinLow(C6);
#endif
-#ifdef ISSI_ENABLE
- issi_init();
-#endif
#ifdef WATCHDOG_ENABLE
// This is done after turning the layer LED red, if we're caught in a loop
// we should get a flashing red light
@@ -49,49 +27,10 @@ void matrix_scan_kb(void)
#ifdef WATCHDOG_ENABLE
wdt_reset();
#endif
-#ifdef ISSI_ENABLE
- // switch/underglow lighting update
- static uint32_t issi_device = 0;
- static uint32_t twi_last_ready = 0;
- if(twi_last_ready > 1000){
- // Its been way too long since the last ISSI update, reset the I2C bus and start again
- twi_last_ready = 0;
- TWIInit();
- force_issi_refresh();
- }
- if(isTWIReady()){
- twi_last_ready = 0;
- // If the i2c bus is available, kick off the issi update, alternate between devices
- update_issi(issi_device, issi_device);
- if(issi_device){
- issi_device = 0;
- }else{
- issi_device = 3;
- }
- }else{
- twi_last_ready++;
- }
-#endif
- // Update layer indicator LED
- //
- // Not sure how else to reliably do this... TMK has the 'hook_layer_change'
- // but can't find QMK equiv
- static uint32_t layer_indicator = -1;
- if(layer_indicator != layer_state){
- for(uint32_t i=0;; i++){
- // the layer_info list should end with layer 0xFFFF
- // it will break this out of the loop and define the unknown layer color
- if((layer_info[i].layer == (layer_state & layer_info[i].mask)) || (layer_info[i].layer == 0xFFFFFFFF)){
- set_rgb(32, layer_info[i].color.red, layer_info[i].color.green, layer_info[i].color.blue);
- layer_indicator = layer_state;
- break;
- }
- }
- }
matrix_scan_user();
}
-void click(uint16_t freq, uint16_t duration){
+void clicking_notes(uint16_t freq, uint16_t duration){
#ifdef AUDIO_ENABLE
if(freq >= 100 && freq <= 20000 && duration < 100){
play_note(freq, 10);
@@ -106,11 +45,10 @@ void click(uint16_t freq, uint16_t duration){
bool process_record_kb(uint16_t keycode, keyrecord_t* record)
{
if (click_toggle && record->event.pressed){
- click(click_hz, click_time);
+ clicking_notes(click_hz, click_time);
}
if (keycode == QK_BOOT) {
reset_keyboard_kb();
- } else {
}
return process_record_user(keycode, record);
}
@@ -121,35 +59,5 @@ void reset_keyboard_kb(void){
wdt_disable();
wdt_reset();
#endif
- set_rgb(31, 0x00, 0xFF, 0xFF);
- set_rgb(32, 0x00, 0xFF, 0xFF);
- force_issi_refresh();
reset_keyboard();
}
-
-bool led_update_kb(led_t led_state) {
- bool res = led_update_user(led_state);
- if(res) {
- // Set capslock LED to Blue
- if (led_state.caps_lock) {
- set_rgb(31, 0x00, 0x00, 0x7F);
- } else{
- set_rgb(31, 0x00, 0x00, 0x00);
- }
- }
- return res;
-}
-
-// Lighting info, see lighting.h for details
-const uint8_t switch_matrices[] = {0, 1};
-const uint8_t rgb_matrices[] = {6, 7};
-
-// RGB Map:
-// 27 29 10 9 8 7 6
-// 26 5
-// 25 4
-// 24 3
-// 23 22 21 20 14 15 11 1 2
-const uint8_t rgb_sequence[] = {
- 27, 29, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 11, 15, 14, 20, 21, 22, 23, 24, 25, 26
-};
diff --git a/keyboards/lfkeyboards/lfk87/lfk87.h b/keyboards/lfkeyboards/lfk87/lfk87.h
index d17c1da26f..ee6f8d47e0 100644
--- a/keyboards/lfkeyboards/lfk87/lfk87.h
+++ b/keyboards/lfkeyboards/lfk87/lfk87.h
@@ -1,27 +1,10 @@
#pragma once
#include "quantum.h"
-#include "matrix.h"
-#include <avr/sfr_defs.h>
-
-typedef struct RGB_Color {
- uint16_t red;
- uint16_t green;
- uint16_t blue;
-} RGB_Color;
-
-typedef struct Layer_Info {
- uint32_t layer;
- uint32_t mask;
- RGB_Color color;
-} Layer_Info;
-
-extern const uint32_t layer_count;
-extern const Layer_Info layer_info[];
#define CLICK_HZ 500
#define CLICK_MS 2
#define CLICK_ENABLED 0
void reset_keyboard_kb(void);
-void click(uint16_t freq, uint16_t duration);
+void clicking_notes(uint16_t freq, uint16_t duration);
diff --git a/keyboards/lfkeyboards/lfk87/post_rules.mk b/keyboards/lfkeyboards/lfk87/post_rules.mk
index 044d9754f1..1b087d7e1e 100644
--- a/keyboards/lfkeyboards/lfk87/post_rules.mk
+++ b/keyboards/lfkeyboards/lfk87/post_rules.mk
@@ -1,7 +1,3 @@
-ifeq ($(strip $(ISSI_ENABLE)), yes)
- OPT_DEFS += -DISSI_ENABLE
-endif
-
ifeq ($(strip $(WATCHDOG_ENABLE)), yes)
OPT_DEFS += -DWATCHDOG_ENABLE
endif
diff --git a/keyboards/lfkeyboards/lfk87/reva/info.json b/keyboards/lfkeyboards/lfk87/reva/info.json
index ad3ad7f877..95b5ff81b7 100644
--- a/keyboards/lfkeyboards/lfk87/reva/info.json
+++ b/keyboards/lfkeyboards/lfk87/reva/info.json
@@ -6,22 +6,6 @@
"rows": ["D2", "D3", "D4", "D5", "D6", "D7"]
},
"diode_direction": "COL2ROW",
- "rgblight": {
- "hue_steps": 10,
- "led_count": 25,
- "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
- }
- },
"layouts": {
"LAYOUT_tkl_ansi": {
"layout": [
diff --git a/keyboards/lfkeyboards/lfk87/reva/reva.c b/keyboards/lfkeyboards/lfk87/reva/reva.c
deleted file mode 100644
index 86289c7a01..0000000000
--- a/keyboards/lfkeyboards/lfk87/reva/reva.c
+++ /dev/null
@@ -1,16 +0,0 @@
-#include "quantum.h"
-
-// Maps switch LEDs from Row/Col to ISSI matrix.
-// Value breakdown:
-// Bit | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
-// | | ISSI Col | ISSI Row |
-// / |
-// Device
-const uint8_t switch_leds[MATRIX_ROWS][MATRIX_COLS] = {
- {0x19, 0x00, 0x18, 0x17, 0x16, 0x15, 0x14, 0x13, 0x12, 0x11, 0x99, 0x98, 0x97, 0x96, 0x95, 0x94, 0x93},
- {0x92, 0x91, 0x29, 0x28, 0x27, 0x26, 0x25, 0x24, 0x23, 0x22, 0x21, 0xA9, 0xA8, 0xA7, 0xA6, 0xA5, 0xA4},
- {0xA3, 0xA2, 0xA1, 0x39, 0x38, 0x37, 0x36, 0x35, 0x34, 0x33, 0x32, 0x31, 0xB9, 0xB8, 0xB7, 0xB6, 0xB5},
- {0xB3, 0x49, 0x48, 0x47, 0x45, 0x44, 0x43, 0x42, 0x41, 0xC9, 0xC8, 0xC7, 0xC6, 0x00, 0x00, 0x00, 0x00},
- {0xC5, 0x00, 0xC4, 0xC2, 0x59, 0x58, 0x57, 0x56, 0x55, 0x51, 0xD6, 0xE5, 0xE4, 0x00, 0x00, 0xE3, 0x00},
- {0xE2, 0xE1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
-};
diff --git a/keyboards/lfkeyboards/lfk87/revc/info.json b/keyboards/lfkeyboards/lfk87/revc/info.json
index cf627facdf..cf8c74397f 100644
--- a/keyboards/lfkeyboards/lfk87/revc/info.json
+++ b/keyboards/lfkeyboards/lfk87/revc/info.json
@@ -6,22 +6,6 @@
"rows": ["F2", "D7", "D6", "D5", "D4", "D3", "F3"]
},
"diode_direction": "COL2ROW",
- "rgblight": {
- "hue_steps": 10,
- "led_count": 24,
- "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
- }
- },
"layouts": {
"LAYOUT_tkl_ansi": {
"layout": [
diff --git a/keyboards/lfkeyboards/lfk87/revc/revc.c b/keyboards/lfkeyboards/lfk87/revc/revc.c
deleted file mode 100644
index f14a1f38e5..0000000000
--- a/keyboards/lfkeyboards/lfk87/revc/revc.c
+++ /dev/null
@@ -1,17 +0,0 @@
-#include "quantum.h"
-
-// Maps switch LEDs from Row/Col to ISSI matrix.
-// Value breakdown:
-// Bit | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
-// | | ISSI Col | ISSI Row |
-// / |
-// Device
-const uint8_t switch_leds[MATRIX_ROWS][MATRIX_COLS] = {
- {0x18, 0x17, 0x16, 0x15, 0x14, 0x13, 0x12, 0x11, 0x99, 0x98, 0x97, 0x96, 0x00, 0x95, 0x94, 0x93},
- {0x29, 0x28, 0x27, 0x26, 0x25, 0x24, 0x23, 0x22, 0x21, 0xA9, 0xA8, 0xA7, 0x00, 0xA6, 0xA5, 0xA4},
- {0xA2, 0xA1, 0x39, 0x38, 0x37, 0x36, 0x35, 0x34, 0x33, 0x32, 0x31, 0xB9, 0xB8, 0xB7, 0xB6, 0xB5},
- {0x49, 0x48, 0x47, 0x45, 0x44, 0x43, 0x42, 0x41, 0xC9, 0xC8, 0xC7, 0xC6, 0x00, 0x00, 0x00, 0x00},
- {0x00, 0xC4, 0xC2, 0x59, 0x58, 0x57, 0x56, 0x55, 0x51, 0xD6, 0xE5, 0xE4, 0x00, 0x00, 0xE3, 0x00},
- {0xB3, 0xC5, 0xE2, 0xE1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
- {0x19, 0x92, 0x91, 0xA3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
-};
diff --git a/keyboards/lfkeyboards/lfk87/rules.mk b/keyboards/lfkeyboards/lfk87/rules.mk
index 154e03fe77..3a1399d693 100644
--- a/keyboards/lfkeyboards/lfk87/rules.mk
+++ b/keyboards/lfkeyboards/lfk87/rules.mk
@@ -8,15 +8,7 @@ EXTRAKEY_ENABLE = yes # Audio control and System control
CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
NKRO_ENABLE = yes # Enable N-Key Rollover
-BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
AUDIO_ENABLE = yes # Audio output
-RGBLIGHT_ENABLE = yes # Enable RGB underlight
-SLEEP_LED_ENABLE = yes
-
-ISSI_ENABLE = yes # If the I2C pullup resistors aren't install this must be disabled
WATCHDOG_ENABLE = no # Resets keyboard if matrix_scan isn't run every 250ms
-# Extra source files for IS3731 lighting
-SRC += TWIlib.c issi.c lighting.c
-
DEFAULT_FOLDER = lfkeyboards/lfk78/revc
diff --git a/keyboards/lfkeyboards/lfkpad/info.json b/keyboards/lfkeyboards/lfkpad/info.json
index a3910b0df5..0a41696cdc 100644
--- a/keyboards/lfkeyboards/lfkpad/info.json
+++ b/keyboards/lfkeyboards/lfkpad/info.json
@@ -8,26 +8,6 @@
"pid": "0x3231",
"device_version": "0.0.1"
},
- "rgblight": {
- "driver": "custom",
- "hue_steps": 10,
- "led_count": 28,
- "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": "C7"
- },
"matrix_pins": {
"cols": ["F1", "F0", "D4", "D6"],
"rows": ["D5", "F4", "F6", "F7", "C7", "C6"]
diff --git a/keyboards/lfkeyboards/lfkpad/keymaps/pascalpfeil/keymap.c b/keyboards/lfkeyboards/lfkpad/keymaps/pascalpfeil/keymap.c
index 94f66e78b2..466adfea47 100644
--- a/keyboards/lfkeyboards/lfkpad/keymaps/pascalpfeil/keymap.c
+++ b/keyboards/lfkeyboards/lfkpad/keymaps/pascalpfeil/keymap.c
@@ -56,18 +56,3 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
_______, _______, _______
),
};
-
-const uint8_t number_leds[] = {8, 9, 10, 11, 12, 13, 15, 16, 17};
-const uint8_t number_leds_size = ARRAY_SIZE(number_leds);
-
-bool led_update_user(led_t led_state) {
- for (uint8_t i = 0; i < number_leds_size; i++)
- if (led_state.num_lock)
- // set to whatever the other leds are doing
- // this is needed so that upon disabling num lock, the leds don't stay red
- rgblight_sethsv_at(rgblight_get_hue(), rgblight_get_sat(), rgblight_get_val(), numer_leds[i]);
- else
- rgblight_setrgb_at(RGB_RED, numer_leds[i]); // set to red
-
- return true;
-}
diff --git a/keyboards/lfkeyboards/lfkpad/lfkpad.c b/keyboards/lfkeyboards/lfkpad/lfkpad.c
index 7d8dd865fb..8769c2c531 100644
--- a/keyboards/lfkeyboards/lfkpad/lfkpad.c
+++ b/keyboards/lfkeyboards/lfkpad/lfkpad.c
@@ -1,18 +1,9 @@
#include "quantum.h"
-
-#include <avr/timer_avr.h>
#include <avr/wdt.h>
-#include "issi.h"
-#include "TWIlib.h"
-#include "lighting.h"
void matrix_init_kb(void) {
matrix_init_user();
-#ifdef ISSI_ENABLE
- issi_init();
-#endif
-
#ifdef WATCHDOG_ENABLE
// This is done after turning the layer LED red, if we're caught in a loop
// we should get a flashing red light
@@ -25,48 +16,5 @@ void matrix_scan_kb(void) {
wdt_reset();
#endif
-#ifdef ISSI_ENABLE
- // switch/underglow lighting update
- static uint32_t issi_device = 0;
- static uint32_t twi_last_ready = 0;
-
- if (twi_last_ready > 1000) {
- // It's been way too long since the last ISSI update, reset the I2C bus and start again
- dprintf("TWI failed to recover, TWI re-init\n");
- twi_last_ready = 0;
- TWIInit();
- force_issi_refresh();
- }
-
- if (isTWIReady()) {
- twi_last_ready = 0;
- // If the i2c bus is available, kick off the issi update, alternate between devices
- update_issi(issi_device, issi_device);
-
- if (issi_device) {
- issi_device = 0;
- } else {
- issi_device = 3;
- }
- } else {
- twi_last_ready++;
- }
-#endif
-
matrix_scan_user();
}
-
-// LFK lighting info
-const uint8_t rgb_matrices[] = { 0, 1 };
-const uint8_t rgb_sequence[] = {
- 32, 1, 2, 3,
- 31, 30, 5, 6,
- 28, 27, 7,
- 17, 18, 9, 8,
- 19, 21, 11,
- 22, 14, 12,
- 16, 26,
- 4, 25,
- 13, 24,
- 20
-};
diff --git a/keyboards/lfkeyboards/lfkpad/post_rules.mk b/keyboards/lfkeyboards/lfkpad/post_rules.mk
index 044d9754f1..1b087d7e1e 100644
--- a/keyboards/lfkeyboards/lfkpad/post_rules.mk
+++ b/keyboards/lfkeyboards/lfkpad/post_rules.mk
@@ -1,7 +1,3 @@
-ifeq ($(strip $(ISSI_ENABLE)), yes)
- OPT_DEFS += -DISSI_ENABLE
-endif
-
ifeq ($(strip $(WATCHDOG_ENABLE)), yes)
OPT_DEFS += -DWATCHDOG_ENABLE
endif
diff --git a/keyboards/lfkeyboards/lfkpad/rules.mk b/keyboards/lfkeyboards/lfkpad/rules.mk
index ec8efa88bf..996d454d74 100644
--- a/keyboards/lfkeyboards/lfkpad/rules.mk
+++ b/keyboards/lfkeyboards/lfkpad/rules.mk
@@ -7,12 +7,5 @@ EXTRAKEY_ENABLE = yes # Audio control and System control
CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
NKRO_ENABLE = no # Enable N-Key Rollover
-BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
-RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
AUDIO_ENABLE = no # Audio output
-SLEEP_LED_ENABLE = yes
-
-ISSI_ENABLE = yes # If the I2C pullup resistors aren't installed this must be disabled
WATCHDOG_ENABLE = no # Resets keyboard if matrix_scan() isn't run every 250ms
-
-SRC = TWIlib.c issi.c lighting.c
diff --git a/keyboards/lfkeyboards/lighting.c b/keyboards/lfkeyboards/lighting.c
deleted file mode 100644
index 5f3ab46e46..0000000000
--- a/keyboards/lfkeyboards/lighting.c
+++ /dev/null
@@ -1,158 +0,0 @@
-#ifdef ISSI_ENABLE
-
-
-#include <avr/sfr_defs.h>
-#include <avr/timer_avr.h>
-#include <avr/wdt.h>
-#include "quantum.h"
-// #include "lfk87.h"
-#include "issi.h"
-#include "TWIlib.h"
-#include "lighting.h"
-#include "debug.h"
-#include "rgblight.h"
-
-
-extern rgblight_config_t rgblight_config; // Declared in rgblight.c
-
-#ifdef BACKLIGHT_ENABLE
- const uint8_t backlight_pwm_map[BACKLIGHT_LEVELS] = BACKLIGHT_PWM_MAP;
-#endif
-
-// RGB# to ISSI matrix, this is the same across all revisions
-const uint8_t rgb_leds[][3][2] = {
- {{0, 0}, {0, 0}, {0, 0}},
- {{1, 1}, {2, 3}, {2, 4}}, // RGB1/RGB17
- {{2, 1}, {2, 2}, {3, 4}}, // RGB2/RGB18
- {{3, 1}, {3, 2}, {3, 3}}, // RGB3/RGB19
- {{4, 1}, {4, 2}, {4, 3}}, // RGB4/RGB20
- {{5, 1}, {5, 2}, {5, 3}}, // RGB5/RGB21
- {{6, 1}, {6, 2}, {6, 3}}, // RGB6/RGB22
- {{7, 1}, {7, 2}, {7, 3}}, // RGB6/RGB23
- {{8, 1}, {8, 2}, {8, 3}}, // RGB8/RGB24
- {{1, 9}, {1, 8}, {1, 7}}, // RGB9/RGB25
- {{2, 9}, {2, 8}, {2, 7}}, // RGB10/RGB26
- {{3, 9}, {3, 8}, {3, 7}}, // RGB11/RGB27
- {{4, 9}, {4, 8}, {4, 7}}, // RGB12/RGB28
- {{5, 9}, {5, 8}, {5, 7}}, // RGB13/RGB29
- {{6, 9}, {6, 8}, {6, 7}}, // RGB14/RGB30
- {{7, 9}, {7, 8}, {6, 6}}, // RGB15/RGB31
- {{8, 9}, {7, 7}, {7, 6}} // RGB16/RGB32
- };
-
-void set_rgb(uint8_t rgb_led, uint8_t red, uint8_t green, uint8_t blue){
-#ifdef RGBLIGHT_ENABLE
- uint8_t matrix = rgb_matrices[0];
- if(rgb_led >= 17){
- matrix = rgb_matrices[1];
- rgb_led -= 16;
- }
- if(rgb_leds[rgb_led][0][1] != 0){
- activateLED(matrix, rgb_leds[rgb_led][0][0], rgb_leds[rgb_led][0][1], red);
- }
- if(rgb_leds[rgb_led][1][1] != 0){
- activateLED(matrix, rgb_leds[rgb_led][1][0], rgb_leds[rgb_led][1][1], green);
- }
- if(rgb_leds[rgb_led][2][1] != 0){
- activateLED(matrix, rgb_leds[rgb_led][2][0], rgb_leds[rgb_led][2][1], blue);
- }
-#endif
-}
-
-void backlight_set(uint8_t level){
-#ifdef BACKLIGHT_ENABLE
- uint8_t pwm_value = 0;
- if(level >= BACKLIGHT_LEVELS){
- level = BACKLIGHT_LEVELS;
- }
- if(level > 0){
- pwm_value = backlight_pwm_map[level-1];
- }
- for(int x = 1; x <= 9; x++){
- for(int y = 1; y <= 9; y++){
- activateLED(switch_matrices[0], x, y, pwm_value);
- activateLED(switch_matrices[1], x, y, pwm_value);
- }
- }
-#endif
-}
-
-void set_underglow(uint8_t red, uint8_t green, uint8_t blue){
-#ifdef RGBLIGHT_ENABLE
- for(uint8_t x = 1; x <= 32; x++){
- set_rgb(x, red, green, blue);
- }
-#endif
-}
-
-
-void rgblight_set(void) {
-#ifdef RGBLIGHT_ENABLE
- for(uint8_t i = 0; (i < sizeof(rgb_sequence)) && (i < RGBLED_NUM); i++){
- if(rgblight_config.enable){
- set_rgb(rgb_sequence[i], led[i].r, led[i].g, led[i].b);
- }else{
- set_rgb(rgb_sequence[i], 0, 0, 0);
- }
- }
-#endif
-}
-
-void set_backlight_by_keymap(uint8_t col, uint8_t row){
-#ifdef RGBLIGHT_ENABLE
- uint8_t lookup_value = switch_leds[row][col];
- uint8_t matrix = switch_matrices[0];
- if(lookup_value & 0x80){
- matrix = switch_matrices[1];
- }
- issi_devices[0]->led_dirty = 1;
- uint8_t led_col = (lookup_value & 0x70) >> 4;
- uint8_t led_row = lookup_value & 0x0F;
- activateLED(matrix, led_col, led_row, 255);
-#endif
-}
-
-void force_issi_refresh(void){
-#ifdef ISSI_ENABLE
- issi_devices[0]->led_dirty = true;
- update_issi(0, true);
- issi_devices[3]->led_dirty = true;
- update_issi(3, true);
-#endif
-}
-
-void led_test(void){
-#ifdef ISSI_ENABLE
-#ifdef WATCHDOG_ENABLE
- // This test take a long time to run, disable the WTD until its complete
- wdt_disable();
-#endif
- backlight_set(0);
- set_underglow(0, 0, 0);
- force_issi_refresh();
- set_underglow(0, 0, 0);
- for(uint8_t x = 0; x < sizeof(rgb_sequence); x++){
- set_rgb(rgb_sequence[x], 255, 0, 0);
- force_issi_refresh();
- _delay_ms(250);
- set_rgb(rgb_sequence[x], 0, 255, 0);
- force_issi_refresh();
- _delay_ms(250);
- set_rgb(rgb_sequence[x], 0, 0, 255);
- force_issi_refresh();
- _delay_ms(250);
- set_rgb(rgb_sequence[x], 0, 0, 0);
- force_issi_refresh();
- }
-#ifdef WATCHDOG_ENABLE
- wdt_enable(WDTO_250MS);
-#endif
-#endif
-}
-
-void backlight_init_ports(void){
- issi_init();
-}
-
-#endif
-
diff --git a/keyboards/lfkeyboards/lighting.h b/keyboards/lfkeyboards/lighting.h
deleted file mode 100644
index cb07755c53..0000000000
--- a/keyboards/lfkeyboards/lighting.h
+++ /dev/null
@@ -1,49 +0,0 @@
-#pragma once
-
-// rgb_sequence[RGBLED_NUM]
-//
-// Array used for sequential lighting effects.
-//
-// Example LFK78 RevC+ RGB Map:
-// 27 29 10 9 8 7 6
-// 26 5
-// 25 4
-// 24 3
-// 23 22 21 20 14 15 11 1 2
-//
-// const uint8_t rgb_sequence[] = {
-// 27, 29, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1,
-// 11, 15, 14, 20, 21, 22, 23, 24, 25, 26
-// };
-extern const uint8_t rgb_sequence[RGBLED_NUM];
-
-// switch_matrices[]
-//
-// The ISSI matrices for switch backlighting
-//
-// Example LFK78 RevC+ - ISSI Device 0, banks 0 and 1:
-// switch_matrices[] = {0, 1};
-extern const uint8_t switch_matrices[];
-
-// rgb_matrices[]
-// The ISSI matrices for RGB Underglow
-//
-// Example LFK78 RevC+ - ISSI Device 3, banks 0 and 1:
-// rgb_matrices[] = {6, 7};
-extern const uint8_t rgb_matrices[];
-
-// switch_leds[MATRIX_ROWS][MATRIX_COLS]
-// Maps switch LEDs from Row/Col to ISSI matrix.
-// Value breakdown:
-// Bit | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
-// | | ISSI Col | ISSI Row |
-// | |
-// Device
-extern const uint8_t switch_leds[MATRIX_ROWS][MATRIX_COLS];
-
-void led_test(void);
-void force_issi_refresh(void);
-void set_backlight(uint8_t level);
-void set_underglow(uint8_t red, uint8_t green, uint8_t blue);
-void set_rgb(uint8_t rgb_led, uint8_t red, uint8_t green, uint8_t blue);
-void set_backlight_by_keymap(uint8_t col, uint8_t row);
diff --git a/keyboards/lfkeyboards/mini1800/config.h b/keyboards/lfkeyboards/mini1800/config.h
index 20aba2ad6b..84c2fd11dc 100644
--- a/keyboards/lfkeyboards/mini1800/config.h
+++ b/keyboards/lfkeyboards/mini1800/config.h
@@ -20,8 +20,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define AUDIO_VOICES
#define AUDIO_PIN C6
-#define BACKLIGHT_PWM_MAP {2, 4, 8, 16, 40, 55, 70, 128, 200, 255}
-
/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
#define LOCKING_SUPPORT_ENABLE
/* Locking resynchronize hack */
diff --git a/keyboards/lfkeyboards/mini1800/info.json b/keyboards/lfkeyboards/mini1800/info.json
index 6737c1baca..35bb1c15a8 100644
--- a/keyboards/lfkeyboards/mini1800/info.json
+++ b/keyboards/lfkeyboards/mini1800/info.json
@@ -13,30 +13,6 @@
"rows": ["D7", "E1", "F2", "F0", "F1"]
},
"diode_direction": "COL2ROW",
- "backlight": {
- "driver": "custom",
- "levels": 10
- },
- "rgblight": {
- "driver": "custom",
- "hue_steps": 10,
- "led_count": 26,
- "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": "F4"
- },
"layouts": {
"LAYOUT": {
"layout": [
diff --git a/keyboards/lfkeyboards/mini1800/keymaps/ca178858/keymap.c b/keyboards/lfkeyboards/mini1800/keymaps/ca178858/keymap.c
index 75abdc258c..9e3927f545 100644
--- a/keyboards/lfkeyboards/mini1800/keymaps/ca178858/keymap.c
+++ b/keyboards/lfkeyboards/mini1800/keymaps/ca178858/keymap.c
@@ -12,16 +12,6 @@ enum {
TD_SPC_SPAM
};
-// Colors of the layer indicator LED
-// This list needs to define layer 0xFFFFFFFF, it is the end of the list, and the unknown layer
-const Layer_Info layer_info[] = {
- // Layer Mask Red Green Blue
- {0x00000000, 0xFFFFFFFF, {0x00, 0xFF, 0x00}}, // base layers - green
- {0x00000002, 0xFFFFFFFE, {0x00, 0x00, 0xFF}}, // function layer - blue
- {0x00000004, 0xFFFFFFFC, {0xFF, 0x00, 0xFF}}, // settings layer - magenta
- {0xFFFFFFFF, 0xFFFFFFFF, {0xFF, 0xFF, 0xFF}}, // unknown layer - REQUIRED - white
-};
-
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* Keymap VANILLA: (Base Layer) Default Layer
* ,-----------------------------------------------------------------------------.
diff --git a/keyboards/lfkeyboards/mini1800/keymaps/default/keymap.c b/keyboards/lfkeyboards/mini1800/keymaps/default/keymap.c
index 7341bdc053..c2abd12843 100644
--- a/keyboards/lfkeyboards/mini1800/keymaps/default/keymap.c
+++ b/keyboards/lfkeyboards/mini1800/keymaps/default/keymap.c
@@ -6,16 +6,6 @@ enum keymap_layout {
SETTINGS, // 0x10
};
-// Colors of the layer indicator LED
-// This list needs to define layer 0xFFFFFFFF, it is the end of the list, and the unknown layer
-const Layer_Info layer_info[] = {
- // Layer Mask Red Green Blue
- {0x00000000, 0xFFFFFFFF, {0x00, 0xFF, 0x00}}, // base layers - green
- {0x00000002, 0xFFFFFFFE, {0x00, 0x00, 0xFF}}, // function layer - blue
- {0x00000004, 0xFFFFFFFC, {0xFF, 0x00, 0xFF}}, // settings layer - magenta
- {0xFFFFFFFF, 0xFFFFFFFF, {0xFF, 0xFF, 0xFF}}, // unknown layer - REQUIRED - white
-};
-
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* Keymap VANILLA: (Base Layer) Default Layer
* ,-----------------------------------------------------------------------------.
diff --git a/keyboards/lfkeyboards/mini1800/mini1800.c b/keyboards/lfkeyboards/mini1800/mini1800.c
index e1fa3a988d..2ca87cfdb6 100644
--- a/keyboards/lfkeyboards/mini1800/mini1800.c
+++ b/keyboards/lfkeyboards/mini1800/mini1800.c
@@ -1,47 +1,22 @@
-
-#include <avr/sfr_defs.h>
-#include <avr/timer_avr.h>
-#include <avr/wdt.h>
#include "mini1800.h"
-#include "issi.h"
-#include "TWIlib.h"
-#include "lighting.h"
-#include "debug.h"
-
-#include "quantum.h"
+#include <avr/wdt.h>
uint16_t click_hz = CLICK_HZ;
uint16_t click_time = CLICK_MS;
uint8_t click_toggle = CLICK_ENABLED;
float my_song[][2] = SONG(ZELDA_PUZZLE);
-// Colors of the layer indicator LED
-// This list needs to define layer 0xFFFFFFFF, it is the end of the list, and the unknown layer
-__attribute__((weak))
-const Layer_Info layer_info[] = {
- // Layer Mask Red Green Blue
- {0x00000000, 0xFFFFFFFF, {0x00, 0xFF, 0x00}}, // base layers - green
- {0x00000002, 0xFFFFFFFE, {0x00, 0x00, 0xFF}}, // function layer - blue
- {0x00000004, 0xFFFFFFFC, {0xFF, 0x00, 0xFF}}, // settings layer - magenta
- {0xFFFFFFFF, 0xFFFFFFFF, {0xFF, 0xFF, 0xFF}}, // unknown layer - REQUIRED - white
-};
-
void matrix_init_kb(void)
{
// put your keyboard start-up code here
// runs once when the firmware starts up
matrix_init_user();
- set_rgb(31, 0x00, 0x00, 0x00); // Caps lock
- set_rgb(32, 0xFF, 0x00, 0x00); // Layer indicator, start red
#ifndef AUDIO_ENABLE
// If we're not using the audio pin, drive it low
setPinOutput(C6);
writePinLow(C6);
#endif
_delay_ms(500);
-#ifdef ISSI_ENABLE
- issi_init();
-#endif
#ifdef WATCHDOG_ENABLE
// This is done after turning the layer LED red, if we're caught in a loop
// we should get a flashing red light
@@ -54,45 +29,6 @@ void matrix_scan_kb(void)
#ifdef WATCHDOG_ENABLE
wdt_reset();
#endif
-#ifdef ISSI_ENABLE
- // switch/underglow lighting update
- static uint32_t issi_device = 0;
- static uint32_t twi_last_ready = 0;
- if(twi_last_ready > 1000){
- // Its been way too long since the last ISSI update, reset the I2C bus and start again
- twi_last_ready = 0;
- TWIInit();
- force_issi_refresh();
- }
- if(isTWIReady()){
- twi_last_ready = 0;
- // If the i2c bus is available, kick off the issi update, alternate between devices
- update_issi(issi_device, issi_device);
- if(issi_device){
- issi_device = 0;
- }else{
- issi_device = 3;
- }
- }else{
- twi_last_ready++;
- }
-#endif
- // Update layer indicator LED
- //
- // Not sure how else to reliably do this... TMK has the 'hook_layer_change'
- // but can't find QMK equiv
- static uint32_t layer_indicator = -1;
- if(layer_indicator != layer_state){
- for(uint32_t i=0;; i++){
- // the layer_info list should end with layer 0xFFFF
- // it will break this out of the loop and define the unknown layer color
- if((layer_info[i].layer == (layer_state & layer_info[i].mask)) || (layer_info[i].layer == 0xFFFFFFFF)){
- set_rgb(32, layer_info[i].color.red, layer_info[i].color.green, layer_info[i].color.blue);
- layer_indicator = layer_state;
- break;
- }
- }
- }
matrix_scan_user();
}
@@ -115,7 +51,6 @@ bool process_record_kb(uint16_t keycode, keyrecord_t* record)
}
if (keycode == QK_BOOT) {
reset_keyboard_kb();
- } else {
}
return process_record_user(keycode, record);
}
@@ -126,49 +61,5 @@ void reset_keyboard_kb(void){
wdt_disable();
wdt_reset();
#endif
- set_rgb(31, 0x00, 0xFF, 0xFF);
- set_rgb(32, 0x00, 0xFF, 0xFF);
- force_issi_refresh();
reset_keyboard();
}
-
-bool led_update_kb(led_t led_state) {
- bool res = led_update_user(led_state);
- if(res) {
- // Set capslock LED to Blue
- if (led_state.caps_lock) {
- set_rgb(31, 0x00, 0x00, 0x7F);
- } else{
- set_rgb(31, 0x00, 0x00, 0x00);
- }
- }
- return res;
-}
-
-// Lighting info, see lighting.h for details
-const uint8_t switch_matrices[] = {0, 1};
-const uint8_t rgb_matrices[] = {6, 7};
-
-// RGB Map:
-// 27 29 10 9 8 7 6
-// 26 5
-// 25 4
-// 24 3
-// 23 22 21 20 14 15 11 1 2
-const uint8_t rgb_sequence[] = {
- 30, 29, 28, 27, 26, 25, 24, 23, 22, 21, 20, 19, 18, 17, 1, 2, 3, 4, 5, 6, 7, 8, 13, 14, 15, 16
-};
-
-// Maps switch LEDs from Row/Col to ISSI matrix.
-// Value breakdown:
-// Bit | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
-// | | ISSI Col | ISSI Row |
-// / |
-// Device
-const uint8_t switch_leds[MATRIX_ROWS][MATRIX_COLS] = {
- {0x19, 0x18, 0x17, 0x16, 0x15, 0x14, 0x13, 0x12, 0x11, 0x99, 0x98, 0x97, 0x96, 0x00, 0x95, 0x94, 0x93, 0x92, 0x91},
- {0x29, 0x28, 0x27, 0x26, 0x25, 0x24, 0x23, 0x22, 0x21, 0xA9, 0xA8, 0xA7, 0xA6, 0xA5, 0xB6, 0xA4, 0xA3, 0xA2, 0xA1},
- {0x39, 0x38, 0x37, 0x36, 0x35, 0x34, 0x33, 0x32, 0x31, 0xB9, 0xB8, 0xB7, 0x00, 0x00, 0x00, 0xB5, 0xB3, 0x49, 0x48},
- {0x47, 0x00, 0x45, 0x44, 0x43, 0x42, 0x41, 0xC9, 0xC8, 0xC7, 0xC6, 0xC5, 0xC4, 0x00, 0xC2, 0x59, 0x58, 0x57, 0x56},
- {0x55, 0x51, 0xD6, 0x00, 0x00, 0xE5, 0x00, 0x00, 0x00, 0x00, 0xE4, 0xE3, 0xE2, 0x00, 0xE1, 0x00, 0x00, 0x00, 0x00}
-};
diff --git a/keyboards/lfkeyboards/mini1800/mini1800.h b/keyboards/lfkeyboards/mini1800/mini1800.h
index c412058096..36797efd8f 100644
--- a/keyboards/lfkeyboards/mini1800/mini1800.h
+++ b/keyboards/lfkeyboards/mini1800/mini1800.h
@@ -1,22 +1,6 @@
#pragma once
-#include "matrix.h"
-#include <avr/sfr_defs.h>
-
-typedef struct RGB_Color {
- uint16_t red;
- uint16_t green;
- uint16_t blue;
-} RGB_Color;
-
-typedef struct Layer_Info {
- uint32_t layer;
- uint32_t mask;
- RGB_Color color;
-} Layer_Info;
-
-extern const uint32_t layer_count;
-extern const Layer_Info layer_info[];
+#include "quantum.h"
#define CLICK_HZ 500
#define CLICK_MS 2
diff --git a/keyboards/lfkeyboards/mini1800/reva/post_rules.mk b/keyboards/lfkeyboards/mini1800/reva/post_rules.mk
index 044d9754f1..1b087d7e1e 100644
--- a/keyboards/lfkeyboards/mini1800/reva/post_rules.mk
+++ b/keyboards/lfkeyboards/mini1800/reva/post_rules.mk
@@ -1,7 +1,3 @@
-ifeq ($(strip $(ISSI_ENABLE)), yes)
- OPT_DEFS += -DISSI_ENABLE
-endif
-
ifeq ($(strip $(WATCHDOG_ENABLE)), yes)
OPT_DEFS += -DWATCHDOG_ENABLE
endif
diff --git a/keyboards/lfkeyboards/mini1800/reva/rules.mk b/keyboards/lfkeyboards/mini1800/reva/rules.mk
index 473bcb10ae..fa0a6ab5b7 100644
--- a/keyboards/lfkeyboards/mini1800/reva/rules.mk
+++ b/keyboards/lfkeyboards/mini1800/reva/rules.mk
@@ -7,13 +7,5 @@ EXTRAKEY_ENABLE = yes # Audio control and System control
CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
NKRO_ENABLE = yes # Enable N-Key Rollover
-BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
-RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
AUDIO_ENABLE = yes # Audio output
-SLEEP_LED_ENABLE = yes
-
-ISSI_ENABLE = yes # If the I2C pullup resistors aren't install this must be disabled
WATCHDOG_ENABLE = yes # Resets keyboard if matrix_scan isn't run every 250ms
-
-# Extra source files for IS3731 lighting
-SRC = TWIlib.c issi.c lighting.c
diff --git a/keyboards/lfkeyboards/mini1800/revc/post_rules.mk b/keyboards/lfkeyboards/mini1800/revc/post_rules.mk
index 044d9754f1..1b087d7e1e 100644
--- a/keyboards/lfkeyboards/mini1800/revc/post_rules.mk
+++ b/keyboards/lfkeyboards/mini1800/revc/post_rules.mk
@@ -1,7 +1,3 @@
-ifeq ($(strip $(ISSI_ENABLE)), yes)
- OPT_DEFS += -DISSI_ENABLE
-endif
-
ifeq ($(strip $(WATCHDOG_ENABLE)), yes)
OPT_DEFS += -DWATCHDOG_ENABLE
endif
diff --git a/keyboards/lfkeyboards/mini1800/revc/rules.mk b/keyboards/lfkeyboards/mini1800/revc/rules.mk
index 473bcb10ae..fa0a6ab5b7 100644
--- a/keyboards/lfkeyboards/mini1800/revc/rules.mk
+++ b/keyboards/lfkeyboards/mini1800/revc/rules.mk
@@ -7,13 +7,5 @@ EXTRAKEY_ENABLE = yes # Audio control and System control
CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
NKRO_ENABLE = yes # Enable N-Key Rollover
-BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
-RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
AUDIO_ENABLE = yes # Audio output
-SLEEP_LED_ENABLE = yes
-
-ISSI_ENABLE = yes # If the I2C pullup resistors aren't install this must be disabled
WATCHDOG_ENABLE = yes # Resets keyboard if matrix_scan isn't run every 250ms
-
-# Extra source files for IS3731 lighting
-SRC = TWIlib.c issi.c lighting.c
diff --git a/keyboards/lfkeyboards/smk65/keymaps/default/rules.mk b/keyboards/lfkeyboards/smk65/keymaps/default/rules.mk
deleted file mode 100644
index 1f0147bd38..0000000000
--- a/keyboards/lfkeyboards/smk65/keymaps/default/rules.mk
+++ /dev/null
@@ -1,8 +0,0 @@
-# Build Options
-# change yes to no to disable
-#
-AUDIO_ENABLE = no # Audio output
-RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
-
-ISSI_ENABLE = no # If the I2C pullup resistors aren't install this must be disabled
-WATCHDOG_ENABLE = no # Resets keyboard if matrix_scan isn't run every 250ms
diff --git a/keyboards/lfkeyboards/smk65/keymaps/iso/rules.mk b/keyboards/lfkeyboards/smk65/keymaps/iso/rules.mk
deleted file mode 100644
index 1f0147bd38..0000000000
--- a/keyboards/lfkeyboards/smk65/keymaps/iso/rules.mk
+++ /dev/null
@@ -1,8 +0,0 @@
-# Build Options
-# change yes to no to disable
-#
-AUDIO_ENABLE = no # Audio output
-RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
-
-ISSI_ENABLE = no # If the I2C pullup resistors aren't install this must be disabled
-WATCHDOG_ENABLE = no # Resets keyboard if matrix_scan isn't run every 250ms
diff --git a/keyboards/lfkeyboards/smk65/post_rules.mk b/keyboards/lfkeyboards/smk65/post_rules.mk
index 044d9754f1..1b087d7e1e 100644
--- a/keyboards/lfkeyboards/smk65/post_rules.mk
+++ b/keyboards/lfkeyboards/smk65/post_rules.mk
@@ -1,7 +1,3 @@
-ifeq ($(strip $(ISSI_ENABLE)), yes)
- OPT_DEFS += -DISSI_ENABLE
-endif
-
ifeq ($(strip $(WATCHDOG_ENABLE)), yes)
OPT_DEFS += -DWATCHDOG_ENABLE
endif
diff --git a/keyboards/lfkeyboards/smk65/revb/config.h b/keyboards/lfkeyboards/smk65/revb/config.h
index c758caa92c..38b0529178 100644
--- a/keyboards/lfkeyboards/smk65/revb/config.h
+++ b/keyboards/lfkeyboards/smk65/revb/config.h
@@ -30,8 +30,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define AUDIO_VOICES
#define AUDIO_PIN C6
-#define BACKLIGHT_PWM_MAP {8, 16, 40, 55, 70, 128, 200, 255}
-
/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
#define LOCKING_SUPPORT_ENABLE
/* Locking resynchronize hack */
diff --git a/keyboards/lfkeyboards/smk65/revb/info.json b/keyboards/lfkeyboards/smk65/revb/info.json
index 39df87cc23..148465d27d 100644
--- a/keyboards/lfkeyboards/smk65/revb/info.json
+++ b/keyboards/lfkeyboards/smk65/revb/info.json
@@ -2,29 +2,6 @@
"usb": {
"pid": "0x565B"
},
- "backlight": {
- "levels": 8
- },
- "rgblight": {
- "driver": "custom",
- "hue_steps": 10,
- "led_count": 20,
- "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": "C7"
- },
"processor": "at90usb646",
"bootloader": "atmel-dfu",
"layout_aliases": {
diff --git a/keyboards/lfkeyboards/smk65/revb/revb.c b/keyboards/lfkeyboards/smk65/revb/revb.c
index 32dbce8fd5..8eb9b9afe2 100644
--- a/keyboards/lfkeyboards/smk65/revb/revb.c
+++ b/keyboards/lfkeyboards/smk65/revb/revb.c
@@ -12,14 +12,8 @@ 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 <avr/sfr_defs.h>
-#include <avr/timer_avr.h>
-#include <avr/wdt.h>
#include "revb.h"
-#include "debug.h"
-#include "issi.h"
-#include "TWIlib.h"
-#include "lighting.h"
+#include <avr/wdt.h>
uint16_t click_hz = CLICK_HZ;
uint16_t click_time = CLICK_MS;
@@ -40,10 +34,6 @@ void matrix_init_kb(void)
setPinOutput(C6);
writePinLow(C6);
#endif
-
-#ifdef ISSI_ENABLE
- issi_init();
-#endif
}
void matrix_scan_kb(void)
@@ -75,7 +65,6 @@ bool process_record_kb(uint16_t keycode, keyrecord_t* record)
}
if (keycode == QK_BOOT) {
reset_keyboard_kb();
- } else {
}
return process_record_user(keycode, record);
}
@@ -88,27 +77,3 @@ void reset_keyboard_kb(void){
#endif
reset_keyboard();
}
-
-// LFK lighting info
-const uint8_t switch_matrices[] = {0, 1};
-const uint8_t rgb_matrices[] = {6, 7};
-// const uint8_t rgb_sequence[] = {
-// 14, 24, 23, 22, 21, 20, 19, 18, 26, 25, 28, 29,
-// 30, 31, 32, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13
-// };
-const uint8_t rgb_sequence[] = {
- 25, 28, 29,
- 30, 31, 32, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14
-};
-// Maps switch LEDs from Row/Col to ISSI matrix.
-// Value breakdown:
-// Bit | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
-// / \ ISSI Col | ISSI Row |
-// matrix idx
-// const uint8_t switch_leds[MATRIX_ROWS][MATRIX_COLS] =
-// KEYMAP(
-// 0x19, 0x18, 0x17, 0x16, 0x15, 0x14, 0x13, 0x12, 0x11, 0x99, 0x98, 0x97, 0x96, 0x95, 0x94, 0x93, 0x92, 0x91,
-// 0x29, 0x28, 0x27, 0x26, 0x25, 0x24, 0x23, 0x22, 0x21, 0xA9, 0xA8, 0xA7, 0xA6, 0xA5, 0xA4, 0xA3, 0xA2, 0xA1,
-// 0x39, 0x38, 0x37, 0x36, 0x35, 0x34, 0x33, 0x32, 0x31, 0xB9, 0xB8, 0xB7, 0xB6, 0xB5, 0xB3,
-// 0x49, 0x48, 0x47, 0x45, 0x44, 0x43, 0x42, 0x41, 0xC9, 0xC8, 0xC7, 0xC6, 0xC5, 0xC4, 0xC2,
-// 0x59, 0x58, 0x57, 0x56, 0x55, 0x51, 0xD6, 0xE5, 0xE4, 0xE3, 0xE2, 0xE1);
diff --git a/keyboards/lfkeyboards/smk65/revb/revb.h b/keyboards/lfkeyboards/smk65/revb/revb.h
index 6b63eb7944..61973b0b9d 100644
--- a/keyboards/lfkeyboards/smk65/revb/revb.h
+++ b/keyboards/lfkeyboards/smk65/revb/revb.h
@@ -15,23 +15,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#pragma once
#include "quantum.h"
-#include "matrix.h"
-#include <avr/sfr_defs.h>
-
-typedef struct RGB_Color {
- uint16_t red;
- uint16_t green;
- uint16_t blue;
-} RGB_Color;
-
-typedef struct Layer_Info {
- uint32_t layer;
- uint32_t mask;
- RGB_Color color;
-} Layer_Info;
-
-extern const uint32_t layer_count;
-extern const Layer_Info layer_info[];
#define CLICK_HZ 500
#define CLICK_MS 2
diff --git a/keyboards/lfkeyboards/smk65/revb/rules.mk b/keyboards/lfkeyboards/smk65/revb/rules.mk
index 1bd6ebc6a6..e69de29bb2 100644
--- a/keyboards/lfkeyboards/smk65/revb/rules.mk
+++ b/keyboards/lfkeyboards/smk65/revb/rules.mk
@@ -1,9 +0,0 @@
-# Build Options
-# change yes to no to disable
-#
-BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
-RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
-AUDIO_ENABLE = no # Audio output
-
-# Extra source files for IS3731 lighting
-SRC += TWIlib.c issi.c lighting.c
diff --git a/keyboards/lfkeyboards/smk65/revf/info.json b/keyboards/lfkeyboards/smk65/revf/info.json
index 50c039b76c..63e9d0abc7 100644
--- a/keyboards/lfkeyboards/smk65/revf/info.json
+++ b/keyboards/lfkeyboards/smk65/revf/info.json
@@ -4,10 +4,6 @@
},
"processor": "atmega32u4",
"bootloader": "halfkay",
- "rgblight": {
- "driver": "custom",
- "led_count": 28
- },
"layouts": {
"LAYOUT_65_ansi": {
"layout": [
diff --git a/keyboards/lfkeyboards/smk65/revf/rules.mk b/keyboards/lfkeyboards/smk65/revf/rules.mk
index e372473a50..e69de29bb2 100644
--- a/keyboards/lfkeyboards/smk65/revf/rules.mk
+++ b/keyboards/lfkeyboards/smk65/revf/rules.mk
@@ -1,4 +0,0 @@
-# Build Options
-# change yes to no to disable
-#
-RGBLIGHT_ENABLE = no # TODO: Enable keyboard RGB underglow
diff --git a/keyboards/lily58/keymaps/bcat/config.h b/keyboards/lily58/keymaps/bcat/config.h
deleted file mode 100644
index 2ee0071bda..0000000000
--- a/keyboards/lily58/keymaps/bcat/config.h
+++ /dev/null
@@ -1,21 +0,0 @@
-/* Copyright 2021 Jonathan Rascher
- *
- * 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 BCAT_ORTHO_LAYERS
-
-#define EE_HANDS
diff --git a/keyboards/lily58/keymaps/bcat/keymap.c b/keyboards/lily58/keymaps/bcat/keymap.c
deleted file mode 100644
index 09b6a3969b..0000000000
--- a/keyboards/lily58/keymaps/bcat/keymap.c
+++ /dev/null
@@ -1,74 +0,0 @@
-/* Copyright 2020 Jonathan Rascher
- *
- * 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 "bcat.h"
-
-#if defined(OLED_ENABLE)
-# include "bcat_oled.h"
-#endif
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- // clang-format off
- /* Default layer: http://www.keyboard-layout-editor.com/#/gists/e0eb3af65961e9fd612dcff3ddd88e4f */
- [LAYER_DEFAULT] = LAYOUT(
- KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS,
- 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_ESC, 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_WBAK, KC_WFWD, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,
- KC_LALT, KC_LCTL, LY_LWR, KC_SPC, KC_ENT, LY_RSE, KC_RALT, KC_RGUI
- ),
- /* Lower layer: http://www.keyboard-layout-editor.com/#/gists/19ad0d3b5d745fbb2818db09740f5a11 */
- [LAYER_LOWER] = LAYOUT(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- MC_ALTT, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, _______,
- KY_CSPC, KY_ZMRST, KY_ZMOUT, KY_ZMIN, KC_WBAK, KC_WFWD, KC_PIPE, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_TILD,
- _______, KC_APP, KC_PSCR, KC_SCRL, KC_PAUS, KC_LGUI, _______, _______, KC_BSLS, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_GRV,
- _______, _______, _______, _______, _______, _______, _______, _______
- ),
- /* Raise layer: http://www.keyboard-layout-editor.com/#/gists/912be7955f781cdaf692cc4d4c0b5823 */
- [LAYER_RAISE] = LAYOUT(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- KC_CAPS, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, _______,
- _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_F11, KC_DEL,
- _______, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, _______, _______, KC_HOME, KC_PGDN, KC_PGUP, KC_END, KC_F12, KC_INS,
- _______, _______, _______, _______, _______, _______, _______, _______
- ),
- /* Adjust layer: http://www.keyboard-layout-editor.com/#/gists/8f6a3f08350a9bbe1d414b22bca4e6c7 */
- [LAYER_ADJUST] = LAYOUT(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, KC_MPLY, KC_VOLU, KC_MSTP, _______, EE_CLR, QK_BOOT, _______, _______, _______, _______,
- _______, _______, KC_MPRV, KC_VOLD, KC_MNXT, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, KC_MUTE, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______
- ),
- // clang-format on
-};
-
-#if defined(OLED_ENABLE)
-oled_rotation_t oled_init_user(oled_rotation_t rotation) { return is_keyboard_master() ? OLED_ROTATION_270 : OLED_ROTATION_180; }
-
-void oled_task_keymap(const oled_keyboard_state_t *keyboard_state) {
- render_oled_layers();
- oled_advance_page(/*clearPageRemainder=*/false);
- render_oled_indicators(keyboard_state->leds);
- oled_advance_page(/*clearPageRemainder=*/false);
- oled_advance_page(/*clearPageRemainder=*/false);
- render_oled_wpm(keyboard_state->wpm);
- render_oled_pet(/*col=*/0, /*line=*/12, keyboard_state);
-}
-#endif
diff --git a/keyboards/lily58/keymaps/bcat/readme.md b/keyboards/lily58/keymaps/bcat/readme.md
deleted file mode 100644
index 8b0e77e1b7..0000000000
--- a/keyboards/lily58/keymaps/bcat/readme.md
+++ /dev/null
@@ -1,42 +0,0 @@
-# bcat's Lily58 layout
-
-This split ergo layout follows my preferred [split 3x6 + 3 thumb
-keys](https://github.com/qmk/qmk_firmware/tree/master/layouts/community/split_3x6_3/bcat)
-(Crkbd) layout with a few changes:
-
-* There's an optional number row at the top of the keyboard. I am quite used to
-using layers for numbers and symbols, so in practice this goes unused.
-
-* The dedicated Hyphen/Underscore and Equals/Plus keys on the number row are
-placed in the same positions as on the ErgoDox EZ. (There's no real reason for
-this; I just had to do _something_ with those keys.)
-
-* The extra thumb keys on the bottom row are used for a Left Alt key (for easier
-Alt+Tab, Alt+F4, etc.) and a dedicated Super key.
-
-* The harder-to-reach thumb keys below the controllers are bound to browser
-back/forward navigation keys.
-
-## Default layer
-
-![Default layer layout](https://i.imgur.com/0stG2GT.png)
-
-([KLE](http://www.keyboard-layout-editor.com/#/gists/e0eb3af65961e9fd612dcff3ddd88e4f))
-
-## Lower layer
-
-![Lower layer layout](https://i.imgur.com/sNKWpUC.png)
-
-([KLE](http://www.keyboard-layout-editor.com/#/gists/19ad0d3b5d745fbb2818db09740f5a11))
-
-## Raise layer
-
-![Raise layer layout](https://i.imgur.com/NaWTavA.png)
-
-([KLE](http://www.keyboard-layout-editor.com/#/gists/912be7955f781cdaf692cc4d4c0b5823))
-
-## Adjust layer
-
-![Adjust layer layout](https://i.imgur.com/XC2eR2M.png)
-
-([KLE](http://www.keyboard-layout-editor.com/#/gists/8f6a3f08350a9bbe1d414b22bca4e6c7))
diff --git a/keyboards/lily58/keymaps/bcat/rules.mk b/keyboards/lily58/keymaps/bcat/rules.mk
deleted file mode 100644
index 62d1007a54..0000000000
--- a/keyboards/lily58/keymaps/bcat/rules.mk
+++ /dev/null
@@ -1,3 +0,0 @@
-BCAT_OLED_PET = luna
-
-BOOTLOADER = atmel-dfu # Elite-C
diff --git a/keyboards/lily58/keymaps/curry/config.h b/keyboards/lily58/keymaps/curry/config.h
deleted file mode 100644
index f724d23167..0000000000
--- a/keyboards/lily58/keymaps/curry/config.h
+++ /dev/null
@@ -1,21 +0,0 @@
-#pragma once
-
-#define EE_HANDS
-
-#define OLED_DISABLE_TIMEOUT
-#define TAPPING_TERM_PER_KEY
-
-#if defined(RGBLIGHT_ENABLE)
-# undef RGBLED_NUM
-# define RGBLED_NUM 27
-
-# define RGBLIGHT_HUE_STEP 8
-# define RGBLIGHT_SAT_STEP 8
-# define RGBLIGHT_VAL_STEP 5
-# define RGBLIGHT_LIMIT_VAL 120
-#endif
-
-// comment out unnecessary layouts
-#define ENABLE_QWERTY
-#define ENABLE_COLEMAK
-#define ENABLE_DVORAK
diff --git a/keyboards/lily58/keymaps/curry/keymap.c b/keyboards/lily58/keymaps/curry/keymap.c
deleted file mode 100644
index 0456a6b99a..0000000000
--- a/keyboards/lily58/keymaps/curry/keymap.c
+++ /dev/null
@@ -1,77 +0,0 @@
-#include "curry.h"
-
-#define LAYOUT_lily58_base( \
- K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, \
- K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, \
- K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, \
- K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A \
- ) \
- LAYOUT_wrapper( \
- KC_ESC, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, KC_GRV, \
- KC_TAB, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, KC_BSLS, \
- KC_LCTL, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, KC_QUOT, \
- OS_LSFT, K31, K32, K33, K34, K35, KC_LBRC, KC_RBRC, K36, K37, K38, K39, K3A, OS_RSFT, \
- QK_LEAD, OS_LALT, LOWER, KC_SPC, KC_ENT, RAISE, KC_BSPC, OS_RGUI \
- )
-#define LAYOUT_lily58_base_wrapper(...) LAYOUT_lily58_base(__VA_ARGS__)
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-#if defined(ENABLE_QWERTY)
- [_QWERTY] = LAYOUT_lily58_base_wrapper(
- ________________NUMBER_LEFT________________, ________________NUMBER_RIGHT_______________,
- _________________QWERTY_L1_________________, _________________QWERTY_R1_________________,
- _________________QWERTY_L2_________________, _________________QWERTY_R2_________________,
- _________________QWERTY_L3_________________, _________________QWERTY_R3_________________
- ),
-#endif
-
-#if defined(ENABLE_COLEMAK)
- [_COLEMAK] = LAYOUT_lily58_base_wrapper(
- ________________NUMBER_LEFT________________, ________________NUMBER_RIGHT_______________,
- _________________COLEMAK_L1________________, _________________COLEMAK_R1________________,
- _________________COLEMAK_L2________________, _________________COLEMAK_R2________________,
- _________________COLEMAK_L3________________, _________________COLEMAK_R3________________
- ),
-#endif
-
-#if defined(ENABLE_DVORAK)
- [_DVORAK] = LAYOUT_lily58_base_wrapper(
- ________________NUMBER_LEFT________________, ________________NUMBER_RIGHT_______________,
- _________________DVORAK_L1_________________, _________________DVORAK_R1_________________,
- _________________DVORAK_L2_________________, _________________DVORAK_R2_________________,
- _________________DVORAK_L3_________________, _________________DVORAK_R3_________________
- ),
-#endif
-
- [_MODS] = LAYOUT_wrapper(
- _______, ___________________BLANK___________________, ___________________BLANK___________________, _______,
- _______, ___________________BLANK___________________, ___________________BLANK___________________, _______,
- _______, ___________________BLANK___________________, ___________________BLANK___________________, _______,
- KC_LSFT, ___________________BLANK___________________, _______, _______, ___________________BLANK___________________, KC_RSFT,
- _______, _______, _______, _______, _______, _______, _______, _______
- ),
-
- [_LOWER] = LAYOUT_wrapper(
- _______, ___________________BLANK___________________, ___________________BLANK___________________, _______,
- KC_F11, _________________LOWER_L1__________________, _________________LOWER_R1__________________, KC_F12,
- _______, _________________LOWER_L2__________________, _________________LOWER_R2__________________, _______,
- _______, _________________LOWER_L3__________________, _______, _______, _________________LOWER_R3__________________, _______,
- _______, _______, _______, _______, _______, _______, _______, _______
- ),
-
- [_RAISE] = LAYOUT_wrapper(
- _______, ___________________BLANK___________________, ___________________BLANK___________________, _______,
- _______, _________________RAISE_L1__________________, _________________RAISE_R1__________________, _______,
- _______, _________________RAISE_L2__________________, _________________RAISE_R2__________________, _______,
- _______, _________________RAISE_L3__________________, _______, _______, _________________RAISE_R3__________________, _______,
- _______, _______, _______, _______, _______, _______, _______, _______
- ),
-
- [_ADJUST] = LAYOUT_wrapper(
- _______, ___________________BLANK___________________, ___________________BLANK___________________, _______,
- KC_MAKE, _________________ADJUST_L1_________________, _________________ADJUST_R1_________________, KC_RST,
- VRSN, _________________ADJUST_L2_________________, _________________ADJUST_R2_________________, EE_CLR,
- MG_NKRO, _________________ADJUST_L3_________________, _______, _______, _________________ADJUST_R3_________________, RGB_IDL,
- _______, _______, _______, _______, _______, _______, _______, _______
- ),
-};
diff --git a/keyboards/lily58/keymaps/curry/rules.mk b/keyboards/lily58/keymaps/curry/rules.mk
deleted file mode 100644
index 1ff1fad968..0000000000
--- a/keyboards/lily58/keymaps/curry/rules.mk
+++ /dev/null
@@ -1,16 +0,0 @@
-# Build Options
-# change to "no" to disable the options, or define them in the Makefile in
-# the appropriate keymap folder that will get included automatically
-#
-BOOTMAGIC_ENABLE = no # Enable Bootmagic Lite
-MOUSEKEY_ENABLE = no
-CONSOLE_ENABLE = no
-COMMAND_ENABLE = no
-
-RGBLIGHT_ENABLE = no
-RGB_MATRIX_ENABLE = no
-
-OLED_ENABLE = yes
-
-BOOTLOADER = atmel-dfu
-SPLIT_TRANSPORT = mirror
diff --git a/keyboards/lily58/keymaps/hvp/config.h b/keyboards/lily58/keymaps/hvp/config.h
deleted file mode 100644
index 35c0f25f2c..0000000000
--- a/keyboards/lily58/keymaps/hvp/config.h
+++ /dev/null
@@ -1,59 +0,0 @@
-/*
-This is the c configuration file for the keymap
-
-Copyright 2012 Jun Wako <wakojun@gmail.com>
-Copyright 2015 Jack Humbert
-
-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 USE_MATRIX_I2C
-
-/* Select hand configuration */
-
-#define MASTER_LEFT
-// #define MASTER_RIGHT
-// #define EE_HANDS
-
-#define TAPPING_TERM 100
-#undef TAPPING_TERM
-#define TAPPING_TERM 150
-
-#define PERMISSIVE_HOLD
-
-#undef RGBLED_NUM
-#define RGBLIGHT_EFFECT_BREATHING
-#define RGBLIGHT_EFFECT_RAINBOW_MOOD
-#define RGBLIGHT_EFFECT_RAINBOW_SWIRL
-#define RGBLIGHT_EFFECT_SNAKE
-#define RGBLIGHT_EFFECT_KNIGHT
-#define RGBLIGHT_EFFECT_CHRISTMAS
-#define RGBLIGHT_EFFECT_STATIC_GRADIENT
-#define RGBLIGHT_EFFECT_RGB_TEST
-#define RGBLIGHT_EFFECT_ALTERNATING
-#define RGBLIGHT_EFFECT_TWINKLE
-#define RGBLED_NUM 27
-#define RGBLIGHT_LIMIT_VAL 120
-#define RGBLIGHT_HUE_STEP 10
-#define RGBLIGHT_SAT_STEP 17
-#define RGBLIGHT_VAL_STEP 17
-
-// Underglow
-/*
-#undef RGBLED_NUM
-#define RGBLED_NUM 14 // Number of LEDs
-#define RGBLIGHT_SLEEP
-*/
diff --git a/keyboards/lily58/keymaps/hvp/keymap.c b/keyboards/lily58/keymaps/hvp/keymap.c
deleted file mode 100644
index b94ea9397c..0000000000
--- a/keyboards/lily58/keymaps/hvp/keymap.c
+++ /dev/null
@@ -1,124 +0,0 @@
-#include QMK_KEYBOARD_H
-#include "hvp.c"
-
-#ifdef PROTOCOL_LUFA
- #include "lufa.h"
- #include "split_util.h"
-#endif
-
-#ifdef RGBLIGHT_ENABLE
-//Following line allows macro to read current RGB settings
-extern rgblight_config_t rgblight_config;
-#endif
-
-extern uint8_t is_master;
-
-#define _QWERTY 0
-#define _LOWER 1
-#define _RAISE 2
-#define _ADJUST 3
-#define _NAVI 4
-
-enum custom_keycodes {
- QWERTY = SAFE_RANGE,
- LOWER,
- RAISE,
- NAVI,
- ADJUST
-};
-
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
- [_QWERTY] = LAYOUT(
- LT(3,KC_ESC), KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC,
- LT(_NAVI,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, LT(4,KC_F), LT(3,KC_G), KC_H, KC_J, KC_K, KC_L, TD(TD1), TD(TD2),
- KC_LCTL, KC_Z, KC_X, KC_C, KC_V, KC_B, MT(MOD_LSFT,KC_BSPC), MT(MOD_LSFT,KC_ENTER), KC_N, KC_M, KC_COMM, KC_DOT, TD(TD3), MT(MOD_RSFT,KC_ENT),
- KC_LALT, KC_LGUI, LOWER,LT(1,KC_SPC), LT(2,KC_SPC), RAISE, KC_RALT, KC_RGUI
-),
-[_RAISE] = LAYOUT( /* Right */
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC,
- KC_DEL, _______, _______, _______, _______, _______, _______, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS,
- _______, _______, _______, _______, _______, _______, MT(MOD_LCTL,KC_LBRC), MT(MOD_LALT,KC_RBRC), _______, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE,
- _______, _______, _______, _______, _______, _______, _______, _______
-),
-
-[_LOWER] = LAYOUT( /* Left */
- _______, _______, _______, _______, _______, _______, _______, _______, _______,_______, _______, _______,
- KC_TILD,KC_EXLM,KC_AT,KC_HASH,KC_DLR,KC_PERC, KC_CIRC,KC_AMPR,KC_ASTR,KC_LPRN,KC_RPRN,KC_BSPC,
- KC_DEL, _______, _______, _______, _______, _______, _______, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_BSLS,
- _______, _______, _______, _______, _______, _______, MT(MOD_LCTL,KC_LCBR), MT(MOD_LALT,KC_RCBR), _______, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_TILD,
- _______, _______, _______, _______, _______, _______, _______, _______
-),
-
- [_NAVI] = LAYOUT( /* Tab */
- KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, D_NAVI, _______, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_PGUP, KC_END, _______, _______,
- _______, KC_VOLD, KC_MPRV, KC_MSTP, KC_MPLY, KC_MNXT, KC_VOLU, _______
- ),
-
- [_ADJUST] = LAYOUT( /* Esc */
- _______, RGB_TOG, RGB_MOD, RGB_RMOD, _______, _______, _______, KC_7, KC_8, KC_9, KC_0, _______,
- _______, RGB_M_P, RGB_HUD, RGB_HUI, _______, _______, _______, KC_4, KC_5, KC_6, _______, _______,
- KC_PSCR, _______, RGB_SAD, RGB_SAI, _______, _______, KC_0, KC_1, KC_2, KC_3, _______, _______,
- QK_BOOT, _______, RGB_VAD, RGB_VAI, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, KC_VOLD, KC_MPRV, KC_MSTP, KC_MPLY, KC_MNXT, KC_VOLU, _______
- )
-};
-
-int RGB_current_mode;
-
-// Setting ADJUST layer RGB back to default
-void update_tri_layer_RGB(uint8_t layer1, uint8_t layer2, uint8_t layer3) {
-
-}
-
-void matrix_init_user(void) {
- #ifdef RGBLIGHT_ENABLE
- RGB_current_mode = rgblight_config.mode;
- #endif
-}
-
-bool process_record_user(uint16_t keycode, keyrecord_t *record) {
- switch (keycode) {
- case QWERTY:
- if (record->event.pressed) {
- set_single_persistent_default_layer(_QWERTY);
- }
- return false;
- break;
- case LOWER:
- if (record->event.pressed) {
- layer_on(_LOWER);
- update_tri_layer_RGB(_LOWER, _RAISE, _ADJUST);
- } else {
- layer_off(_LOWER);
- update_tri_layer_RGB(_LOWER, _RAISE, _ADJUST);
- }
- return false;
- break;
- case RAISE:
- if (record->event.pressed) {
- layer_on(_RAISE);
- update_tri_layer_RGB(_LOWER, _RAISE, _ADJUST);
- } else {
- layer_off(_RAISE);
- update_tri_layer_RGB(_LOWER, _RAISE, _ADJUST);
- }
- return false;
- break;
- case ADJUST:
- if (record->event.pressed) {
- layer_on(_ADJUST);
- } else {
- layer_off(_ADJUST);
- }
- return false;
- break;
- }
- return true;
-} \ No newline at end of file
diff --git a/keyboards/lily58/keymaps/hvp/readme.md b/keyboards/lily58/keymaps/hvp/readme.md
deleted file mode 100644
index 971bd2800e..0000000000
--- a/keyboards/lily58/keymaps/hvp/readme.md
+++ /dev/null
@@ -1,10 +0,0 @@
-Keyboard: Lily58
-Keys: Lily58 is 6×4+5keys column-staggered split keyboard.
-Layout: Swedish characters on main layer using tap dance. Built for Eurkey keyboard layout.
-Flash instructions: Flash using dfu, will req the hvp user space to compile.
-
-> make lily58:hvp:dfu
-
-Links:
-Github - https://github.com/qmk/qmk_firmware/tree/master/keyboards/lily58
-Eurkey layout - https://eurkey.steffen.bruentjen.eu/
diff --git a/keyboards/lily58/keymaps/hvp/rules.mk b/keyboards/lily58/keymaps/hvp/rules.mk
deleted file mode 100644
index b1ee4e8318..0000000000
--- a/keyboards/lily58/keymaps/hvp/rules.mk
+++ /dev/null
@@ -1,13 +0,0 @@
-EXTRAKEY_ENABLE = yes
-RGBLIGHT_ENABLE = yes
-TAP_DANCE_ENABLE = yes
-
-# If you want to change the display of OLED, you need to change here
-SRC += ./lib/glcdfont.c \
- ./lib/rgb_state_reader.c \
- ./lib/layer_state_reader.c \
- ./lib/logo_reader.c \
- ./lib/keylogger.c \
- # ./lib/mode_icon_reader.c \
- # ./lib/host_led_state_reader.c \
- # ./lib/timelogger.c \ \ No newline at end of file
diff --git a/keyboards/lily58/keymaps/manna-harbour_miryoku/config.h b/keyboards/lily58/keymaps/manna-harbour_miryoku/config.h
deleted file mode 100644
index b4249396da..0000000000
--- a/keyboards/lily58/keymaps/manna-harbour_miryoku/config.h
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright 2019 Manna Harbour
-// https://github.com/manna-harbour/miryoku
-
-// 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 XXX KC_NO
-
-#define LAYOUT_miryoku(\
- 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,\
- N30, N31, K32, K33, K34, K35, K36, K37, N38, N39\
-)\
-LAYOUT(\
-XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX,\
-XXX, K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, XXX,\
-XXX, K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, XXX,\
-XXX, K20, K21, K22, K23, K24, XXX, XXX, K25, K26, K27, K28, K29, XXX,\
- XXX, K32, K33, K34, K35, K36, K37, XXX\
-)
diff --git a/keyboards/lily58/keymaps/manna-harbour_miryoku/keymap.c b/keyboards/lily58/keymaps/manna-harbour_miryoku/keymap.c
deleted file mode 100644
index dbab7f9820..0000000000
--- a/keyboards/lily58/keymaps/manna-harbour_miryoku/keymap.c
+++ /dev/null
@@ -1,4 +0,0 @@
-// Copyright 2019 Manna Harbour
-// https://github.com/manna-harbour/miryoku
-
-// 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/>.
diff --git a/keyboards/lily58/keymaps/muppetjones/README.md b/keyboards/lily58/keymaps/muppetjones/README.md
deleted file mode 100644
index 38cea9cfc2..0000000000
--- a/keyboards/lily58/keymaps/muppetjones/README.md
+++ /dev/null
@@ -1,13 +0,0 @@
-# Lily58
-
-```shell
-qmk compile -kb lily58/rev1 -km muppetjones
-```
-
-```
-qmk flash -kb lily58/rev1 -km muppetjones -bl avrdude-split-left
-```
-
-```
-qmk flash -kb lily58/rev1 -km muppetjones -bl avrdude-split-right
-```
diff --git a/keyboards/lily58/keymaps/muppetjones/config.h b/keyboards/lily58/keymaps/muppetjones/config.h
deleted file mode 100644
index 81bc728d5a..0000000000
--- a/keyboards/lily58/keymaps/muppetjones/config.h
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
-This is the c configuration file for the keymap
-
-Copyright 2012 Jun Wako <wakojun@gmail.com>
-Copyright 2015 Jack Humbert
-
-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
-
-/* Select hand configuration */
-
-// 1 minute
-#ifdef OLED_ENABLE
-# define OLED_TIMEOUT 60000
-#endif
-
-
-// Change "hold" time (default is 200 ms)
-#define TAPPING_TERM 200
-
-// Enable rapid switch from tap to hold, disables double tap hold auto-repeat.
-#define QUICK_TAP_TERM 0
-
-#undef RGBLED_NUM
-
-// Allows to use either side as the master. Look at the documentation for info:
-// https://docs.qmk.fm/#/config_options?id=setting-handedness
-#define EE_HANDS
diff --git a/keyboards/lily58/keymaps/muppetjones/features/bongo_cat.c b/keyboards/lily58/keymaps/muppetjones/features/bongo_cat.c
deleted file mode 100644
index 23f6493efc..0000000000
--- a/keyboards/lily58/keymaps/muppetjones/features/bongo_cat.c
+++ /dev/null
@@ -1,127 +0,0 @@
-/**
- * BONGO CAT!
-
-WPM-responsive animation of bongo cat!
-
-Source:
- https://github.com/qmk/qmk_firmware/blob/master/keyboards/kyria/keymaps/j-inc/keymap.c
-*/
-
-#include QMK_KEYBOARD_H
-
-#ifdef OLED_ENABLE
-
-# define IDLE_FRAMES 5
-# define IDLE_SPEED 30 // below this wpm value your animation will idle
-
-// #define PREP_FRAMES 1 // uncomment if >1
-
-# define TAP_FRAMES 2
-# define TAP_SPEED 40 // above this wpm value typing animation to triggere
-
-# define ANIM_FRAME_DURATION 200 // how long each frame lasts in ms
-// #define SLEEP_TIMER 60000 // should sleep after this period of 0 wpm, needs fixing
-# define ANIM_SIZE 636 // number of bytes in array, minimize for adequate firmware size, max is 1024
-
-uint32_t anim_timer = 0;
-uint32_t anim_sleep = 0;
-uint8_t current_idle_frame = 0;
-// uint8_t current_prep_frame = 0; // uncomment if PREP_FRAMES >1
-uint8_t current_tap_frame = 0;
-
-/* Animation */
-
-static const char PROGMEM ANIM_IDLE[IDLE_FRAMES][ANIM_SIZE] = {
- // clang-format off
- {
- 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,64,64,32,32,32,32,16,16,16,16,16,8,8,4,4,4,8,48,64,128,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,128,128,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,24,100,130,2,2,2,2,2,1,0,0,0,0,128,128,0,0,0,0,0,0,0,0,0,128,0,48,48,0,192,193,193,194,4,8,16,32,64,128,0,0,0,128,128,128,128,64,64,
- 64,64,32,32,32,32,16,16,16,16,8,8,8,8,8,4,4,4,4,4,2,2,2,2,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,192,56,4,3,0,0,0,0,0,0,0,12,12,12,13,1,0,64,160,33,34,18,17,17,17,9,8,8,8,8,4,4,8,8,16,16,16,16,16,17,15,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,128,128,128,128,64,64,64,64,64,32,32,32,32,32,16,16,16,16,16,8,8,8,8,8,4,4,4,4,4,2,3,2,2,1,1,1,1,1,1,2,2,4,4,8,8,8,8,8,7,
- 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
- },
- {
- 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,64,64,32,32,32,32,16,16,16,16,16,8,8,4,4,4,8,48,64,128,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,128,128,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,24,100,130,2,2,2,2,2,1,0,0,0,0,128,128,0,0,0,0,0,0,0,0,0,128,0,48,48,0,192,193,193,194,4,8,16,32,64,128,0,0,0,128,128,128,128,64,64,
- 64,64,32,32,32,32,16,16,16,16,8,8,8,8,8,4,4,4,4,4,2,2,2,2,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,192,56,4,3,0,0,0,0,0,0,0,12,12,12,13,1,0,64,160,33,34,18,17,17,17,9,8,8,8,8,4,4,8,8,16,16,16,16,16,17,15,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,128,128,128,128,64,64,64,64,64,32,32,32,32,32,16,16,16,16,16,8,8,8,8,8,4,4,4,4,4,2,3,2,2,1,1,1,1,1,1,2,2,4,4,8,8,8,8,8,
- 7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
- },
- {
- 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,128,64,64,64,64,32,32,32,32,16,8,4,2,2,4,24,96,128,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,128,128,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,60,194,1,1,2,2,4,4,2,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,96,96,0,129,130,130,132,8,16,32,64,128,0,0,0,0,128,128,128,128,64,64,64,64,32,
- 32,32,32,16,16,16,16,8,8,8,8,8,4,4,4,4,4,2,2,2,2,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,112,25,6,0,0,0,0,0,0,0,24,24,24,27,3,0,64,160,34,36,20,18,18,18,11,8,8,8,8,5,5,9,9,16,16,16,16,16,17,15,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,128,128,128,128,64,64,64,64,64,32,32,32,32,32,16,16,16,16,16,8,8,8,8,8,4,4,4,4,4,2,3,2,2,1,1,1,1,1,1,2,2,4,4,8,8,8,8,8,7,0,0,0,
- 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
- },
- {
- 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,128,0,0,0,0,0,128,64,64,32,32,32,32,16,16,16,16,8,4,2,1,1,2,12,48,64,128,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,128,128,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,30,225,0,0,1,1,2,2,1,0,0,0,0,128,128,0,0,0,0,0,0,0,0,0,128,0,48,48,0,192,193,193,194,4,8,16,32,64,128,0,0,0,128,128,128,128,64,64,
- 64,64,32,32,32,32,16,16,16,16,8,8,8,8,8,4,4,4,4,4,2,2,2,2,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,112,12,3,0,0,0,0,0,0,0,12,12,12,13,1,0,64,160,33,34,18,17,17,17,9,8,8,8,8,4,4,8,8,16,16,16,16,16,17,15,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,128,128,128,128,64,64,64,64,64,32,32,32,32,32,16,16,16,16,16,8,8,8,8,8,4,4,4,4,4,2,3,2,2,1,1,1,1,1,1,2,2,4,4,8,8,8,8,8,
- 7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
- },
- {
- 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,64,64,32,32,32,32,16,16,16,16,8,8,4,2,2,2,4,56,64,128,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,128,128,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,28,226,1,1,2,2,2,2,1,0,0,0,0,128,128,0,0,0,0,0,0,0,0,0,128,0,48,48,0,192,193,193,194,4,8,16,32,64,128,0,0,0,128,128,128,128,64,64,64,64,
- 32,32,32,32,16,16,16,16,8,8,8,8,8,4,4,4,4,4,2,2,2,2,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,112,12,3,0,0,0,0,0,0,0,12,12,12,13,1,0,64,160,33,34,18,17,17,17,9,8,8,8,8,4,4,8,8,16,16,16,16,16,17,15,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,128,128,128,128,64,64,64,64,64,32,32,32,32,32,16,16,16,16,16,8,8,8,8,8,4,4,4,4,4,2,3,2,2,1,1,1,1,1,1,2,2,4,4,8,8,8,8,8,7,0,0,
- 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
- }
- // clang-format on
-};
-
-// Prep animation
-static const char PROGMEM ANIM_PREP[][ANIM_SIZE] = {
- // clang-format off
- {
- 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,128,0,0,0,0,0,128,64,64,32,32,32,32,16,16,16,16,8,4,2,1,1,2,12,48,64,128,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,128,128,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,30,225,0,0,1,1,2,2,129,128,128,0,0,128,128,0,0,0,0,0,0,0,0,0,128,0,48,48,0,0,1,225,26,6,9,49,53,1,138,124,0,0,128,128,128,128,64,64,
- 64,64,32,32,32,32,16,16,16,16,8,8,8,8,8,4,4,4,4,4,2,2,2,2,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,112,12,3,0,0,24,6,5,152,153,132,195,124,65,65,64,64,32,33,34,18,17,17,17,9,8,8,8,8,4,4,4,4,4,4,2,2,2,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,128,128,128,128,64,64,64,64,64,32,32,32,32,32,16,16,16,16,16,8,8,8,8,8,4,4,4,4,4,2,3,2,2,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
- }
- // clang-format on
-};
-
-// Typing animation
-static const char PROGMEM ANIM_TAP[TAP_FRAMES][ANIM_SIZE] = {
- // clang-format off
- {
- 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,128,0,0,0,0,0,128,64,64,32,32,32,32,16,16,16,16,8,4,2,1,1,2,12,48,64,128,0,0,0,0,0,0,0,248,248,248,248,0,0,0,0,0,128,128,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,128,128,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,30,225,0,0,1,1,2,2,129,128,128,0,0,128,128,0,0,0,0,0,0,0,0,0,128,0,48,48,0,0,1,1,2,4,8,16,32,67,135,7,1,0,184,188,190,159,
- 95,95,79,76,32,32,32,32,16,16,16,16,8,8,8,8,8,4,4,4,4,4,2,2,2,2,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,112,12,3,0,0,24,6,5,152,153,132,67,124,65,65,64,64,32,33,34,18,17,17,17,9,8,8,8,8,4,4,8,8,16,16,16,16,16,17,15,1,61,124,252,252,252,252,252,60,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,128,128,128,128,64,64,64,64,64,32,32,32,32,32,16,16,16,16,16,8,8,8,8,8,4,4,4,4,4,2,3,2,2,1,1,1,
- 1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,3,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
- },
- {
- 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,128,0,0,0,0,0,128,64,64,32,32,32,32,16,16,16,16,8,4,2,1,1,2,12,48,64,128,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,128,128,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,30,225,0,0,1,1,2,2,1,0,0,0,0,128,128,0,0,0,0,0,0,0,0,0,128,0,48,48,0,0,1,225,26,6,9,49,53,1,138,124,0,0,128,128,128,128,64,64,64,64,32,
- 32,32,32,16,16,16,16,8,8,8,8,8,4,4,4,4,4,2,2,2,2,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,112,12,3,0,0,0,0,0,0,0,0,0,0,1,1,0,64,160,33,34,18,17,17,17,9,8,8,8,8,4,4,4,4,4,4,2,2,2,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,128,128,128,128,128,64,64,64,64,64,32,32,32,32,32,16,16,16,16,16,8,8,8,8,8,4,4,4,4,4,2,3,122,122,121,121,121,121,57,49,2,2,4,4,8,8,8,136,136,135,128,
- 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
- }
- // clang-format on
-};
-
-/* Functions */
-
-
-void animation_phase(uint8_t wpm) {
- // NOTE: Optimized the conditional. We don't need to recheck each.
- // NOTE: Move this and the animation outside of the function.
-
- if (IDLE_SPEED >= wpm) {
- current_idle_frame = (current_idle_frame + 1) % IDLE_FRAMES;
- oled_write_raw_P(ANIM_IDLE[abs((IDLE_FRAMES - 1) - current_idle_frame)], ANIM_SIZE);
- } else if (TAP_SPEED > wpm) {
- oled_write_raw_P(ANIM_PREP[0], ANIM_SIZE);
- } else {
- current_tap_frame = (current_tap_frame + 1) % TAP_FRAMES;
- oled_write_raw_P(ANIM_TAP[abs((TAP_FRAMES - 1) - current_tap_frame)], ANIM_SIZE);
- }
-}
-
-// Images credit j-inc(/James Incandenza) and pixelbenny. Credit to obosob for initial animation approach.
-void render_bongo_cat(void) {
- const uint8_t curr_wpm = get_current_wpm();
-
- if (curr_wpm > 000) {
- oled_on();
- anim_sleep = timer_read32();
- } else if (timer_elapsed32(anim_sleep) > OLED_TIMEOUT) {
- oled_off();
- return;
- }
-
- if (timer_elapsed32(anim_timer) > ANIM_FRAME_DURATION) {
- anim_timer = timer_read32();
- animation_phase(curr_wpm);
- }
-}
-
-#endif
diff --git a/keyboards/lily58/keymaps/muppetjones/features/bongo_cat.h b/keyboards/lily58/keymaps/muppetjones/features/bongo_cat.h
deleted file mode 100644
index 1025ccfa1b..0000000000
--- a/keyboards/lily58/keymaps/muppetjones/features/bongo_cat.h
+++ /dev/null
@@ -1,14 +0,0 @@
-/**
- * BONGO CAT!
-
-WPM-responsive animation of bongo cat!
-
-Source:
- https://github.com/qmk/qmk_firmware/blob/master/keyboards/kyria/keymaps/j-inc/keymap.c
-*/
-
-#pragma once
-
-const char *wpm_state(void);
-void animation_phase(uint8_t wpm);
-void render_bongo_cat(void);
diff --git a/keyboards/lily58/keymaps/muppetjones/keymap.c b/keyboards/lily58/keymaps/muppetjones/keymap.c
deleted file mode 100644
index 1eea90fce1..0000000000
--- a/keyboards/lily58/keymaps/muppetjones/keymap.c
+++ /dev/null
@@ -1,240 +0,0 @@
-/* Copyright 2020 Stephen J. Bush
- *
- * 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 "muppetjones.h"
-#include "features/bongo_cat.h"
-#define LAYOUT_wrapper(...) LAYOUT(__VA_ARGS__)
-
-/*
- * qmk compile -kb lily58/rev1 -km muppetjones
- */
-
-// GACS (Lower)
-#define HR_LBRC LCTL_T(KC_LBRC)
-#define HR_RBRC LSFT_T(KC_RBRC)
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- // clang-format off
-
-/* Colemak DH
- * ,-----------------------------------------. ,-----------------------------------------.
- * | ` | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | BADJ |
- * |------+------+------+------+------+------| |------+------+------+------+------+------|
- * | Tab | Q | W | F | P | B | | J | L | U | Y | ; | Bksp |
- * |------+------+------+------+------+------| |------+------+------+------+------+------|
- * | Esc | A | R | S | T | G |-------. ,-------| M | N | E | I | O | ' |
- * |------+------+------+------+------+------| Raise | | Lower |------+------+------+------+------+------|
- * |LShift| Z | X | C | D | V |-------| |-------| K | H | , | . | / |Enter |
- * `-----------------------------------------/ / \ \-----------------------------------------'
- * | Alt | LGUI |LOWER | /Space / \Space \ |RAISE | Ctrl | RGUI |
- * | | | |/ / \ \ | | | |
- * `----------------------------' '------''--------------------'
- */
-[_CLMK_DH] = LAYOUT_wrapper(
- KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_CAPS, __BLANK____________________________________, KC_BSPC,
- KC_CAPS, __COLEMAK_MOD_DH_L1________________________, __COLEMAK_MOD_DH_R1_W_QUOT_________________, KC_BSPC,
- HY_ESC, __COLEMAK_MOD_DH_L2_W_GACS_________________, __COLEMAK_MOD_DH_R2_W_SCAG_________________, KC_QUOT,
- TD_LAYR, __COLEMAK_MOD_DH_L3_W_SFTV_________________, KC_CAPS, KC_TAB, __COLEMAK_MOD_DH_R3________________________, SC_SENT,
- XXXXXXX, XXXXXXX, HY_ESC, LOW_ENT, NAV_SPC, HY_BSPC, XXXXXXX, XXXXXXX
-),
-
-/* QWERTY
- * ,-----------------------------------------. ,-----------------------------------------.
- * | ESC | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | ` |
- * |------+------+------+------+------+------| |------+------+------+------+------+------|
- * | Tab | Q | W | E | R | T | | Y | U | I | O | P | - |
- * |------+------+------+------+------+------| |------+------+------+------+------+------|
- * |LCTRL | A | S | D | F | G |-------. ,-------| H | J | K | L | ; | ' |
- * |------+------+------+------+------+------| [ | | ] |------+------+------+------+------+------|
- * |LShift| Z | X | C | V | B |-------| |-------| N | M | , | . | / |RShift|
- * `-----------------------------------------/ / \ \-----------------------------------------'
- * | LAlt | LGUI |LOWER | /Space / \Enter \ |RAISE |BackSP| RGUI |
- * | | | |/ / \ \ | | | |
- * `----------------------------' '------''--------------------'
- */
-[_QWERTY] = LAYOUT_wrapper(
- _______, __BLANK____________________________________, __BLANK____________________________________, _______,
- _______, __QWERTY_L1________________________________, __QWERTY_R1________________________________, _______,
- _______, __QWERTY_L2________________________________, __QWERTY_R2________________________________, _______,
- _______, __QWERTY_L3________________________________, _______, _______, __QWERTY_R3________________________________, _______,
- _______, _______, _______, _______, _______, _______, _______, _______
-),
-[_MOUSE] = LAYOUT_wrapper(
- _______, __BLANK____________________________________, __BLANK____________________________________, _______,
- _______, __BLANK____________________________________, __BLANK____________________________________, _______,
- _______, __BLANK____________________________________, __BLANK____________________________________, _______,
- _______, __BLANK____________________________________, _______, _______, __BLANK____________________________________, _______,
- KC_BTN1, __BLANK____________________________________, _______, KC_BTN2
-),
-
-/* LOWER
- * ,-----------------------------------------. ,-----------------------------------------.
- * | ` | | Mute | Vol- | Vol+ | | | | | | | | |
- * |------+------+------+------+------+------| |------+------+------+------+------+------|
- * | ~ | | | ` | | ( | | ) | 7 | 8 | 9 | \ | Bksp |
- * |------+------+------+------+------+------| |------+------+------+------+------+------|
- * | | GUI | ALT | _ | - | { |-------. ,-------| } | 4 | 5 | 6 | * | ` |
- * |------+------+------+------+------+------| | | |------+------+------+------+------+------|
- * | | | | + | = | [ |-------| |-------| ] | 1 | 2 | 3 | | |Enter |
- * `-----------------------------------------/ / \ \-----------------------------------------'
- * | | |LOWER | / / \ \ | 0 | . | = |
- * | | | |/ / \ \ | | | |
- * `----------------------------' '------''--------------------'
- */
-[_LOWER] = LAYOUT_wrapper(
- _______, __BLANK____________________________________, __BLANK____________________________________, _______,
- _______, __SYMBOLS_L1_______________________________, __NUMPAD_R1________________________________, _______,
- _______, __SYMBOLS_L2_______________________________, __NUMPAD_R2________________________________, KC_COMM,
- _______, __SYMBOLS_L3_______________________________, _______, _______, __NUMPAD_R3________________________________, KC_DOT,
- _______, _______, _______, _______, KC_SPC, KC_0, KC_DOT, _______
-),
-/* RAISE
- * ,-----------------------------------------. ,-----------------------------------------.
- * | |MS_A_0|MS_A_1|MS_A_2| | | | | | | | | |
- * |------+------+------+------+------+------| |------+------+------+------+------+------|
- * | | | | | |MS_W_U| | | | | | | |
- * |------+------+------+------+------+------| |------+------+------+------+------+------|
- * | | GUI | ALT | CTL | SFT |MS_W_D|-------. ,-------| | Left | Down | Up |Right | |
- * |------+------+------+------+------+------|MS_W_L | |MS_W_R |------+------+------+------+------+------|
- * | | MS_L | MS_D | MS_U | MS_R | |-------| |-------| |MS_W_L|MS_W_D|MS_W_U|MS_W_R| |
- * `-----------------------------------------/ / \ \-----------------------------------------'
- * | | | MS_2 | / MS_1 / \ \ |RAISE | | |
- * | | | |/ / \ \ | | | |
- * `----------------------------' '------''--------------------'
- // */
-
-[_RAISE] = LAYOUT_wrapper(
- _______, __BLANK____________________________________, __BLANK____________________________________, _______,
- _______, __SYMBOLS_L1_______________________________, __NAV_R1___________________________________, _______,
- _______, __SYMBOLS_L2_______________________________, __NAV_R2___________________________________, _______,
- _______, __SYMBOLS_L3_______________________________, _______, _______, __NAV_R3___________________________________, _______,
- _______, _______, _______, _______, _______, _______, _______, _______
-),
-[_NAV] = LAYOUT_wrapper(
- _______, __BLANK____________________________________, __BLANK____________________________________, _______,
- _______, __VIM_L1___________________________________, __NAV_R1___________________________________, _______,
- _______, __BLANK_W_GACS_____________________________, __NAV_R2___________________________________, _______,
- _______, __BLANK____________________________________, _______, _______, __NAV_R3___________________________________, _______,
- _______, _______, _______, _______, _______, _______, _______, _______
-),
-
-/* ADJUST
- * ,-----------------------------------------. ,-----------------------------------------.
- * | | Reset| | | | | | Reset| | | | | |
- * |------+------+------+------+------+------| |------+------+------+------+------+------|
- * | | | | | | | | | | | | | |
- * |------+------+------+------+------+------| |------+------+------+------+------+------|
- * | | | | | | |-------. ,-------| | |RGB ON| HUE+ | SAT+ | VAL+ |
- * |------+------+------+------+------+------| | | |------+------+------+------+------+------|
- * | | | | | | |-------| |-------| | | MODE | HUE- | SAT- | VAL- |
- * `-----------------------------------------/ / \ \-----------------------------------------'
- * | LAlt | LGUI |LOWER | /Space / \Enter \ |RAISE |BackSP| RGUI |
- * | | | |/ / \ \ | | | |
- * `----------------------------' '------''--------------------'
- */
-[_ADJUST] = LAYOUT_wrapper(
- _______, __BLANK____________________________________, _______, CLMK_DH, QWERTY, _______, _______, _______,
- QK_BOOT, __ADJUST_L1________________________________, __MEDIA_R1_________________________________, _______,
- _______, __ADJUST_L2________________________________, __MEDIA_R2_________________________________, _______,
- _______, __ADJUST_L3________________________________, _______, _______, __MEDIA_R3_________________________________, _______,
- _______, _______, _______, _______, _______, _______, _______, _______
-)
-
- // clang-format on
-};
-
-// SSD1306 OLED update loop, make sure to enable OLED_DRIVER_ENABLE=yes in rules.mk
-#ifdef OLED_ENABLE
-
-oled_rotation_t oled_init_user(oled_rotation_t rotation) {
- if (!is_keyboard_master()) return OLED_ROTATION_180; // flips the display 180 degrees if offhand
- return rotation;
-}
-
-// When you add source files to SRC in rules.mk, you can use functions.
-const char *read_layer_state_user(void);
-void set_keylog(uint16_t keycode, keyrecord_t *record);
-const char *read_keylog(void);
-const char *read_keylogs(void);
-
-char layer_state_str[24];
-
-const char *read_layer_state_user(void) {
- // NOTE;
- switch (get_highest_layer(layer_state)) {
- case _CLMK_DH:
- return "Layer: Colemak";
- break;
- case _QWERTY:
- return "Layer: QWERTY ";
- break;
- case _MOUSE:
- return "Layer: Mouse ";
- break;
- case _LOWER:
- return "Layer: Lower ";
- break;
- case _RAISE:
- return "Layer: Raise ";
- break;
- case _NAV:
- return "Layer: Nav ";
- break;
- case _ADJUST:
- return "Layer: Adjust ";
- break;
- default:
- break;
- }
-
- char *layer_state_str = "Layer: Und- ";
- layer_state_str[10] = '0' + layer_state % 10;
- return layer_state_str;
-}
-
-bool oled_task_user(void) {
- if (is_keyboard_master()) {
- // If you want to change the display of OLED, you need to change here
- oled_write_ln(read_layer_state_user(), false);
- oled_write_ln(read_keylog(), false);
- oled_write_ln(read_keylogs(), false);
- } else {
- render_bongo_cat();
- oled_set_cursor(0, 6);
- oled_write_P(PSTR("WPM: "), false);
- oled_write(get_u8_str(get_current_wpm(), ' '), false);
- }
- return false;
-}
-#endif // OLED_DRIVER_ENABLE
-
-bool process_record_keymap(uint16_t keycode, keyrecord_t *record) {
- if (record->event.pressed) {
-#ifdef OLED_ENABLE
- set_keylog(keycode, record);
-#endif
- // set_timelog();
- }
-
- // Regular user keycode case statement
- switch (keycode) {
- default:
- return true;
- }
-
- return true;
-}
diff --git a/keyboards/lily58/keymaps/muppetjones/rules.mk b/keyboards/lily58/keymaps/muppetjones/rules.mk
deleted file mode 100644
index 1323bea893..0000000000
--- a/keyboards/lily58/keymaps/muppetjones/rules.mk
+++ /dev/null
@@ -1,17 +0,0 @@
-OLED_ENABLE= yes # OLED display
-WPM_ENABLE = yes
-TAP_DANCE_ENABLE = yes
-COMBO_ENABLE = yes
-EXTRAKEY_ENABLE = yes
-
-# If you want to change the display of OLED, you need to change here
-# SRC += ./lib/rgb_state_reader.c
-SRC += ./lib/layer_state_reader.c
-SRC += ./lib/logo_reader.c
-SRC += ./lib/keylogger.c
-SRC += ./features/bongo_cat.c
-
-# Reduce firmware size
-# https://thomasbaart.nl/2018/12/01/reducing-firmware-size-in-qmk/
-# also requires in config.h
-LTO_ENABLE = yes
diff --git a/keyboards/lily58/keymaps/narze/config.h b/keyboards/lily58/keymaps/narze/config.h
deleted file mode 100644
index 300321b3db..0000000000
--- a/keyboards/lily58/keymaps/narze/config.h
+++ /dev/null
@@ -1,62 +0,0 @@
-/*
-This is the c configuration file for the keymap
-
-Copyright 2012 Jun Wako <wakojun@gmail.com>
-Copyright 2015 Jack Humbert
-
-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 USE_MATRIX_I2C
-
-/* Select hand configuration */
-
-// #define MASTER_LEFT
-#define MASTER_RIGHT
-// #define EE_HANDS
-
-#define COMBO_TERM 20
-
-#define PERMISSIVE_HOLD
-
-#define QUICK_TAP_TERM 0
-#define TAPPING_TERM 100
-
-#undef RGBLED_NUM
-#define RGBLIGHT_EFFECT_BREATHING
-#define RGBLIGHT_EFFECT_RAINBOW_MOOD
-#define RGBLIGHT_EFFECT_RAINBOW_SWIRL
-#define RGBLIGHT_EFFECT_SNAKE
-#define RGBLIGHT_EFFECT_KNIGHT
-#define RGBLIGHT_EFFECT_CHRISTMAS
-#define RGBLIGHT_EFFECT_STATIC_GRADIENT
-#define RGBLIGHT_EFFECT_RGB_TEST
-#define RGBLIGHT_EFFECT_ALTERNATING
-#define RGBLIGHT_EFFECT_TWINKLE
-#define RGBLED_NUM 27
-#define RGBLIGHT_LIMIT_VAL 120
-#define RGBLIGHT_HUE_STEP 10
-#define RGBLIGHT_SAT_STEP 17
-#define RGBLIGHT_VAL_STEP 17
-
-#define FORCE_NKRO
-
-// Underglow
-/*
-#undef RGBLED_NUM
-#define RGBLED_NUM 14 // Number of LEDs
-#define RGBLIGHT_SLEEP
-*/
diff --git a/keyboards/lily58/keymaps/narze/keymap.c b/keyboards/lily58/keymaps/narze/keymap.c
deleted file mode 100644
index 7438e72751..0000000000
--- a/keyboards/lily58/keymaps/narze/keymap.c
+++ /dev/null
@@ -1,468 +0,0 @@
-#include QMK_KEYBOARD_H
-#include "narze.h"
-#include "keymap_colemak.h"
-#include "keymap_steno.h"
-
-
-#ifdef RGBLIGHT_ENABLE
-//Following line allows macro to read current RGB settings
-extern rgblight_config_t rgblight_config;
-#endif
-
-enum layers {
- _QWERTY,
- _COLEMAK,
- _QWOC,
- _LOWER,
- _RAISE,
- _PLOVER,
- _SUPERDUPER,
- _DEV,
- _ADJUST
-};
-
-enum custom_keycodes {
- QWERTY = SAFE_RANGE,
- PLOVER,
- LOWER,
- RAISE,
- ADJUST,
- SUPERDUPER,
- DEV,
- SDTOGG, // Toggle SuperDuper
- GUI_UNDS,
- LSFT_LPRN,
- RSFT_RPRN,
- EXT_PLV,
-};
-
-// Narze : Custom Macros
-#define HPR_ESC ALL_T(KC_ESC)
-#define SFT_ENT SFT_T(KC_ENT)
-
-enum process_combo_event {
- CB_SUPERDUPER,
-};
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
-/* QWERTY
- * ,-----------------------------------------. ,-----------------------------------------.
- * | Tab | Q | W | E | R | T | | Y | U | I | O | P | F19 |
- * |------+------+------+------+------+------| |------+------+------+------+------+------|
- * |Hp/Esc| A | S | D | F | G | | H | J | K | L | ; | ' |
- * |------+------+------+------+------+------| |------+------+------+------+------+------|
- * |Sft/( | Z | X | C | V | B |-------. ,-------| N | M | , | . | / |Sft/) |
- * |------+------+------+------+------+------| Swap | | Swap |------+------+------+------+------+------|
- * |Rse/[ | Ctrl | Alt | GUI/_|Lower | Space|-------| |-------| Space| Raise| Bksp | Alt | Ctrl | Low/]|
- * `-----------------------------------------/ / \ \-----------------------------------------'
- * | | | | /Space / \Enter \ | | | |
- * | | | |/ / \ \ | | | |
- * `----------------------------' '------''--------------------'
- */
-
- [_QWERTY] = LAYOUT(
- KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_F19,
- HPR_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
- LSFT_LPRN, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, RSFT_RPRN,
- LT(_RAISE, KC_LBRC), KC_LCTL, KC_LALT, GUI_UNDS,LOWER, KC_SPC, SH_TT, SH_TT, KC_SPC, RAISE, KC_BSPC, KC_RALT, KC_RCTL, LT(_LOWER, KC_RBRC),
- _______, _______, _______, KC_SPC, KC_ENT, _______, _______, _______
-),
-/* LOWER
- * ,-----------------------------------------. ,-----------------------------------------.
- * | ` | ! | @ | # | $ | % | | ^ | & | * | ( | ) | - |
- * |------+------+------+------+------+------| |------+------+------+------+------+------|
- * | F1 | F2 | F3 | F4 | F5 | F6 | | | _ | + | { | } | | |
- * |------+------+------+------+------+------| |------+------+------+------+------+------|
- * | F7 | F8 | F9 | F10 | F11 | F12 |-------. ,-------| | | | | | |
- * |------+------+------+------+------+------| [ | | ] |------+------+------+------+------+------|
- * | | | | | | |-------| |-------| | _ | + | { | } | | |
- * `-----------------------------------------/ / \ \-----------------------------------------'
- * | | | | / / \ \ | | | |
- * | | | |/ / \ \ | | | |
- * `----------------------------' '------''--------------------'
- */
-[_LOWER] = LAYOUT(
- KC_GRV, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_TILD,
- KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, _______, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE,
- KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______,_______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE,
- _______, _______, _______, _______, _______, _______, _______, _______
-),
-/* RAISE
- * ,-----------------------------------------. ,-----------------------------------------.
- * | ~ | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | |
- * |------+------+------+------+------+------| |------+------+------+------+------+------|
- * | F1 | F2 | F3 | F4 | F5 | F6 | | | - | = | [ | ] | \ |
- * |------+------+------+------+------+------| |------+------+------+------+------+------|
- * | F7 | F8 | F9 | F10 | F11 | F12 |-------. ,-------| | | | | | |
- * |------+------+------+------+------+------| [ | | ] |------+------+------+------+------+------|
- * | | | | | | |-------| |-------| | | | | | |
- * `-----------------------------------------/ / \ \-----------------------------------------'
- * | LAlt | LGUI |LOWER | /Space / \Enter \ |RAISE |BackSP| RGUI |
- * | | | |/ / \ \ | | | |
- * `----------------------------' '------''--------------------'
- */
-
-[_RAISE] = LAYOUT(
- S(KC_GRV),KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, _______,
- KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, _______, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS,
- KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______
-),
-/* ADJUST
- * ,-----------------------------------------. ,-----------------------------------------.
- * | | | | | | | | | | | | | |
- * |------+------+------+------+------+------| |------+------+------+------+------+------|
- * | | | | | | | | | | | | | |
- * |------+------+------+------+------+------| |------+------+------+------+------+------|
- * | | | | | | |-------. ,-------| | |RGB ON| HUE+ | SAT+ | VAL+ |
- * |------+------+------+------+------+------| | | |------+------+------+------+------+------|
- * | | | | | | |-------| |-------| | | MODE | HUE- | SAT- | VAL- |
- * `-----------------------------------------/ / \ \-----------------------------------------'
- * | LAlt | LGUI |LOWER | /Space / \Enter \ |RAISE |BackSP| RGUI |
- * | | | |/ / \ \ | | | |
- * `----------------------------' '------''--------------------'
- */
-[_ADJUST] = LAYOUT(
- XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX , XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
- XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
- XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_TOG, RGB_HUI, RGB_SAI, RGB_VAI,
- PLOVER, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_MOD, RGB_HUD, RGB_SAD, RGB_VAD,
- _______, _______, _______, _______, _______, _______, _______, _______
-),
-/* Plover layer (http://opensteno.org)
- * ,-----------------------------------------------------------------------------------.
- * | # | # | # | # | # | # | # | # | # | # | # | # |
- * |------+------+------+------+------+-------------+------+------+------+------+------|
- * | FN | S | T | P | H | * | * | F | P | L | T | D |
- * |------+------+------+------+------+------|------+------+------+------+------+------|
- * | | S | K | W | R | * | * | R | B | G | S | Z |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | Exit | | | A | O | | E | U | PWR | RES1 | RES2 |
- * `-----------------------------------------------------------------------------------'
- */
-
-// [_PLOVER] = {
-// {STN_N1, STN_N2, STN_N3, STN_N4, STN_N5, STN_N6, STN_N7, STN_N8, STN_N9, STN_NA, STN_NB, STN_NC },
-// {STN_FN, STN_S1, STN_TL, STN_PL, STN_HL, STN_ST1, STN_ST3, STN_FR, STN_PR, STN_LR, STN_TR, STN_DR },
-// {XXXXXXX, STN_S2, STN_KL, STN_WL, STN_RL, STN_ST2, STN_ST4, STN_RR, STN_BR, STN_GR, STN_SR, STN_ZR },
-// {EXT_PLV, XXXXXXX, XXXXXXX, STN_A, STN_O, XXXXXXX, XXXXXXX, STN_E, STN_U, STN_PWR, STN_RE1, STN_RE2}
-// },
-/* Plover
- * ,-----------------------------------------. ,-----------------------------------------.
- * | | | | | | | | | | T← | T→ | | |
- * |------+------+------+------+------+------| |------+------+------+------+------+------|
- * | | Alt | [SuperDuper]| Bksp | Gui | | ← | ↓ | ↑ | → | Del | |
- * |------+------+------+------+------+------| |------+------+------+------+------+------|
- * | | | | | | |-------. ,-------| | | | | | |
- * |------+------+------+------+------+------| | | |------+------+------+------+------+------|
- * | | | | | | |-------| |-------| | | | | | |
- * `-----------------------------------------/ / \ \-----------------------------------------'
- * | LAlt | LGUI |LOWER | /Space / \Enter \ |RAISE |BackSP| RGUI |
- * | | | |/ / \ \ | | | |
- * `----------------------------' '------''--------------------'
- */
-[_PLOVER] = LAYOUT(
- STN_N1, STN_N2, STN_N3, STN_N4, STN_N5, STN_N6, STN_N7, STN_N8, STN_N9, STN_NA, STN_NB, STN_NC,
- STN_FN, STN_S1, STN_TL, STN_PL, STN_HL, STN_ST1, STN_ST3, STN_FR, STN_PR, STN_LR, STN_TR, STN_DR,
- XXXXXXX, STN_S2, STN_KL, STN_WL, STN_RL, STN_ST2, STN_ST4, STN_RR, STN_BR, STN_GR, STN_SR, STN_ZR,
- EXT_PLV, XXXXXXX, XXXXXXX, STN_A, STN_O, XXXXXXX, KC_LSFT, KC_LSFT, XXXXXXX, STN_E, STN_U, STN_PWR, STN_RE1, STN_RE2,
- QK_STENO_GEMINI, QK_STENO_BOLT, _______, KC_LSFT, KC_LSFT, _______, _______, _______
-),
-/* SuperDuper : https://gist.github.com/narze/861e2167784842d38771
- * ,-----------------------------------------. ,-----------------------------------------.
- * | | | | | | | | | | T← | T→ | | |
- * |------+------+------+------+------+------| |------+------+------+------+------+------|
- * | | Alt | [SuperDuper]| Bksp | Gui | | ← | ↓ | ↑ | → | Del | |
- * |------+------+------+------+------+------| |------+------+------+------+------+------|
- * | | | | | | |-------. ,-------| | | | | | |
- * |------+------+------+------+------+------| | | |------+------+------+------+------+------|
- * | | | | | | |-------| |-------| | | | | | |
- * `-----------------------------------------/ / \ \-----------------------------------------'
- * | LAlt | LGUI |LOWER | /Space / \Enter \ |RAISE |BackSP| RGUI |
- * | | | |/ / \ \ | | | |
- * `----------------------------' '------''--------------------'
- */
-[_SUPERDUPER] = LAYOUT(
- _______, _______, _______, _______, _______, _______, _______, _______, S(LGUI(KC_LBRC)), S(LGUI(KC_RBRC)), _______, _______,
- _______, KC_LALT, _______, _______, KC_BSPC, KC_LGUI, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_DEL, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, KC_LSFT, KC_LSFT, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, KC_LSFT, KC_LSFT, _______, _______, _______
-),
-/* Dev Layer
- * ,-----------------------------------------. ,-----------------------------------------.
- * | | | | | | | | | | | | | |
- * |------+------+------+------+------+------| |------+------+------+------+------+------|
- * | | | | | | | | | | | | | |
- * |------+------+------+------+------+------| |------+------+------+------+------+------|
- * | | | | | | |-------. ,-------| | | | | | |
- * |------+------+------+------+------+------| | | |------+------+------+------+------+------|
- * | | | | | | |-------| |-------| | | | | | |
- * `-----------------------------------------/ / \ \-----------------------------------------'
- * | LAlt | LGUI |LOWER | /Space / \Enter \ |RAISE |BackSP| RGUI |
- * | | | |/ / \ \ | | | |
- * `----------------------------' '------''--------------------'
- */
-[_DEV] = LAYOUT(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______
-),
-/* Colemak
- * ,-----------------------------------------. ,-----------------------------------------.
- * | | | | | | | | | | | | | |
- * |------+------+------+------+------+------| |------+------+------+------+------+------|
- * | | | | | | | | | | | | | |
- * |------+------+------+------+------+------| |------+------+------+------+------+------|
- * | | | | | | |-------. ,-------| | | | | | |
- * |------+------+------+------+------+------| | | |------+------+------+------+------+------|
- * | | | | | | |-------| |-------| | | | | | |
- * `-----------------------------------------/ / \ \-----------------------------------------'
- * | LAlt | LGUI |LOWER | /Space / \Enter \ |RAISE |BackSP| RGUI |
- * | | | |/ / \ \ | | | |
- * `----------------------------' '------''--------------------'
- */
-[_COLEMAK] = LAYOUT(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______
-),
-/* QWOC
- * ,-----------------------------------------. ,-----------------------------------------.
- * | | | | | | | | | | | | | |
- * |------+------+------+------+------+------| |------+------+------+------+------+------|
- * | | | | | | | | | | | | | |
- * |------+------+------+------+------+------| |------+------+------+------+------+------|
- * | | | | | | |-------. ,-------| | | | | | |
- * |------+------+------+------+------+------| | | |------+------+------+------+------+------|
- * | | | | | | |-------| |-------| | | | | | |
- * `-----------------------------------------/ / \ \-----------------------------------------'
- * | LAlt | LGUI |LOWER | /Space / \Enter \ |RAISE |BackSP| RGUI |
- * | | | |/ / \ \ | | | |
- * `----------------------------' '------''--------------------'
- */
-[_QWOC] = LAYOUT(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______
-),
-};
-
-int RGB_current_mode;
-
-// Setting ADJUST layer RGB back to default
-void update_tri_layer_RGB(uint8_t layer1, uint8_t layer2, uint8_t layer3) {
- if (IS_LAYER_ON(layer1) && IS_LAYER_ON(layer2)) {
- layer_on(layer3);
- } else {
- layer_off(layer3);
- }
-}
-
-void matrix_init_user(void) {
- set_superduper_key_combos();
- steno_set_mode(STENO_MODE_GEMINI);
-
- #ifdef RGBLIGHT_ENABLE
- RGB_current_mode = rgblight_config.mode;
- #endif
-}
-
-#ifdef OLED_ENABLE
-
-oled_rotation_t oled_init_user(oled_rotation_t rotation) {
- if (!is_keyboard_master())
- return OLED_ROTATION_180; // flips the display 180 degrees if offhand
- return rotation;
-}
-
-// When add source files to SRC in rules.mk, you can use functions.
-const char *read_layer_state(void);
-const char *read_logo(void);
-void set_keylog(uint16_t keycode, keyrecord_t *record);
-const char *read_keylog(void);
-const char *read_keylogs(void);
-
-const char *read_mode_icon(bool swap);
-const char *read_host_led_state(void);
-void set_timelog(void);
-const char *read_timelog(void);
-
-char encoder_debug[24];
-
-bool oled_task_user(void) {
- // Host Keyboard Layer Status
- if (is_keyboard_master()) {
- // If you want to change the display of OLED, you need to change here
- oled_write_ln(read_layer_state(), false);
- oled_write_ln(read_keylog(), false);
- oled_write_ln(read_keylogs(), false);
- // oled_write_ln(read_mode_icon(keymap_config.swap_lalt_lgui), false);
- oled_write_ln(read_host_led_state(), false);
- // oled_write_ln(read_timelog(), false);
- } else {
- oled_write(read_logo(), false);
- // oled_write_ln(encoder_debug, false);
- }
- return false;
-}
-
-#endif //OLED_ENABLE
-
-#ifdef SWAP_HANDS_ENABLE
-__attribute__ ((weak))
-const keypos_t PROGMEM hand_swap_config[MATRIX_ROWS][MATRIX_COLS] = {
- // Left
- {{5,5},{4,5},{3,5},{2,5},{1,5},{0,5}},
- {{5,6},{4,6},{3,6},{2,6},{1,6},{0,6}},
- {{5,7},{4,7},{3,7},{2,7},{1,7},{0,7}},
- {{5,8},{4,8},{3,8},{2,8},{1,8},{0,8}},
- {{5,9},{4,9},{3,9},{2,9},{1,9},{0,9}},
- // Right
- {{0,0},{1,0},{2,0},{3,0},{4,0},{5,0}},
- {{0,1},{1,1},{2,1},{3,1},{4,1},{5,1}},
- {{0,2},{1,2},{2,2},{3,2},{4,2},{5,2}},
- {{0,3},{1,3},{2,3},{3,3},{4,3},{5,3}},
- {{0,4},{1,4},{2,4},{3,4},{4,4},{5,4}},
-};
-#endif
-
-bool process_record_user(uint16_t keycode, keyrecord_t *record) {
- if (record->event.pressed) {
-#ifdef OLED_ENABLE
- set_keylog(keycode, record);
-#endif
- // set_timelog();
- }
-
- switch (keycode) {
- case QWERTY:
- if (record->event.pressed) {
- set_single_persistent_default_layer(_QWERTY);
- set_superduper_key_combo_layer(_QWERTY);
- }
- return false;
- break;
- case LOWER:
- if (record->event.pressed) {
- layer_on(_LOWER);
- update_tri_layer_RGB(_LOWER, _RAISE, _ADJUST);
- } else {
- layer_off(_LOWER);
- update_tri_layer_RGB(_LOWER, _RAISE, _ADJUST);
- }
- return false;
- break;
- case RAISE:
- if (record->event.pressed) {
- layer_on(_RAISE);
- update_tri_layer_RGB(_LOWER, _RAISE, _ADJUST);
- } else {
- layer_off(_RAISE);
- update_tri_layer_RGB(_LOWER, _RAISE, _ADJUST);
- }
- return false;
- break;
- case ADJUST:
- if (record->event.pressed) {
- layer_on(_ADJUST);
- } else {
- layer_off(_ADJUST);
- }
- return false;
- break;
- case PLOVER:
- if (!record->event.pressed) {
- layer_on(_PLOVER);
- }
- return false;
- break;
- case EXT_PLV:
- if (record->event.pressed) {
- layer_off(_PLOVER);
- }
- return false;
- break;
-
- // Macros
-
- // 1. Hold for LGUI, tap for Underscore
- case GUI_UNDS:
- perform_space_cadet(record, keycode, KC_LGUI, KC_LSFT, KC_MINS);
- return false;
-
- // 2. Hold for LSHIFT, tap for Parens open
- case LSFT_LPRN:
- perform_space_cadet(record, keycode, KC_LSFT, KC_LSFT, KC_9);
- return false;
-
- // 3. Hold for RSHIFT, tap for Parens close
- case RSFT_RPRN:
- perform_space_cadet(record, keycode, KC_RSFT, KC_RSFT, KC_0);
- return false;
- }
- return true;
-}
-
-void process_combo_event(uint16_t combo_index, bool pressed) {
- if (pressed) {
- switch(combo_index) {
- case CB_SUPERDUPER:
- layer_on(_SUPERDUPER);
- break;
- }
- } else {
- layer_off(_SUPERDUPER);
- unregister_mods(MOD_BIT(KC_LGUI) | MOD_BIT(KC_LCTL) | MOD_BIT(KC_LALT)); // Sometimes mods are held, unregister them
- }
-}
-
-// matrix_setup is already used
-void keyboard_pre_init_user(void) {
- set_superduper_key_combos();
-}
-
-char layer_state_str[24];
-
-const char *read_layer(void) {
- switch (layer_state)
- {
- case _QWERTY:
- snprintf(layer_state_str, sizeof(layer_state_str), "Layer: Default");
- break;
- case 1 << _COLEMAK:
- snprintf(layer_state_str, sizeof(layer_state_str), "Layer: Colemak");
- break;
- case 1 << _QWOC:
- snprintf(layer_state_str, sizeof(layer_state_str), "Layer: Qwerty2Colemak");
- break;
- case 1 << _LOWER:
- snprintf(layer_state_str, sizeof(layer_state_str), "Layer: Lower");
- break;
- case 1 << _RAISE:
- snprintf(layer_state_str, sizeof(layer_state_str), "Layer: Raise");
- break;
- case 1 << _SUPERDUPER:
- snprintf(layer_state_str, sizeof(layer_state_str), "Layer: SuperDuper");
- break;
- case 1 << _DEV:
- snprintf(layer_state_str, sizeof(layer_state_str), "Layer: Dev");
- break;
- case 1 << _ADJUST:
- snprintf(layer_state_str, sizeof(layer_state_str), "Layer: Adjust");
- break;
- default:
- snprintf(layer_state_str, sizeof(layer_state_str), "Layer: Undef-%ld", layer_state);
- }
-
- return layer_state_str;
-}
diff --git a/keyboards/lily58/keymaps/narze/readme.md b/keyboards/lily58/keymaps/narze/readme.md
deleted file mode 100644
index 9d522f5cae..0000000000
--- a/keyboards/lily58/keymaps/narze/readme.md
+++ /dev/null
@@ -1,13 +0,0 @@
-# narze's layout
-
-## Key features
-
-- Qwerty + [Colemak](https://colemak.com) layouts, and you can type Qwerty on software-level Colemak as well. Very useful for gaming or when your friend wanna type something but don't use Colemak.
-- [(S)uper (D)uper Mode](/users/narze/readme.md)
-
-## Build instructions
-
-- `cd /path/to/qmk_firmware`
-- Ensure latest libraries are loaded `make git-submodule`
-- Flash to right hand side (Elite C) with `make lily58:narze:dfu` or `qmk flash -kb lily58 -km narze -b dfu`
-- Flash to left hand side (Pro Micro) with `make lily58:narze:avrdude` or `qmk flash -kb lily58 -km narze -b avrdude`
diff --git a/keyboards/lily58/keymaps/narze/rules.mk b/keyboards/lily58/keymaps/narze/rules.mk
deleted file mode 100644
index 0fe1d92356..0000000000
--- a/keyboards/lily58/keymaps/narze/rules.mk
+++ /dev/null
@@ -1,13 +0,0 @@
-NKRO_ENABLE = yes
-SWAP_HANDS_ENABLE = yes
-STENO_ENABLE = yes
-FORCE_NKRO = yes
-COMBO_ENABLE = yes
-
-SRC += ./lib/rgb_state_reader.c \
- ./lib/layer_state_reader.c \
- ./lib/logo_reader.c \
- ./lib/mode_icon_reader.c \
- ./lib/host_led_state_reader.c \
- ./lib/timelogger.c \
- ./lib/keylogger.c \
diff --git a/keyboards/lily58/keymaps/ninjonas/README.md b/keyboards/lily58/keymaps/ninjonas/README.md
deleted file mode 100644
index 8a51b17862..0000000000
--- a/keyboards/lily58/keymaps/ninjonas/README.md
+++ /dev/null
@@ -1,134 +0,0 @@
-# ninjonas Keymap for [Lily58 Pro](https://github.com/kata0510/Lily58)
-
-## Keymap
-This keymap is designed based off my typing habits and is subject to change. Information about custom user macros and tap dances can be found [here](../../../../users/ninjonas).
-
-More information about the Lily58 pro keyboard can be found [here](https://yuchi-kbd.hatenablog.com/entry/2018/12/23/214342)
-
-### QWERTY
-```c
-/* QWERTY
- * ,-----------------------------------------. ,-----------------------------------------.
- * | ` | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | - |
- * |------+------+------+------+------+------| |------+------+------+------+------+------|
- * | Tab | Q | W | E | R | T | | Y | U | I | O | P | \ |
- * |------+------+------+------+------+------| |------+------+------+------+------+------|
- * | ESC | A | S | D | F | G |-------. ,-------| H | J | K | L | ; | ' |
- * |------+------+------+------+------+------| [ | | ] |------+------+------+------+------+------|
- * |LShift| Z | X | C | V | B |-------| |-------| N | M | , | . | / | = |
- * `-----------------------------------------/ / \ \-----------------------------------------'
- * | Alt | Cmd | Ctrl | /Space / \Enter \ |BackSP| Del |LOWER |
- * | | | |/ / \ \ | | | |
- * `----------------------------' '------''--------------------'
- */
-```
-
-### DVORAK
-```c
-/* DVORAK
- * ,-----------------------------------------. ,-----------------------------------------.
- * | ` | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | - |
- * |------+------+------+------+------+------| |------+------+------+------+------+------|
- * | Tab | ' | , | . | P | Y | | F | G | C | R | L | \ |
- * |------+------+------+------+------+------| |------+------+------+------+------+------|
- * | ESC | A | O | E | U | I |-------. ,-------| D | H | T | N | S | / |
- * |------+------+------+------+------+------| [ | | ] |------+------+------+------+------+------|
- * |LShift| ; | Q | J | K | X |-------| |-------| B | M | W | V | Z | = |
- * `-----------------------------------------/ / \ \-----------------------------------------'
- * | Alt | Cmd | Ctrl | /Space / \Enter \ |BackSP| Del |LOWER |
- * | | | |/ / \ \ | | | |
- * `----------------------------' '------''--------------------'
- */
-```
-
-### COLEMAK
-```c
-/* COLEMAK
- * ,-----------------------------------------. ,-----------------------------------------.
- * | ` | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | - |
- * |------+------+------+------+------+------| |------+------+------+------+------+------|
- * | Tab | Q | W | F | P | G | | J | L | U | Y | ; | \ |
- * |------+------+------+------+------+------| |------+------+------+------+------+------|
- * | ESC | A | R | S | T | D |-------. ,-------| H | N | E | I | O | ' |
- * |------+------+------+------+------+------| [ | | ] |------+------+------+------+------+------|
- * |LShift| Z | X | C | V | B |-------| |-------| K | M | , | . | / | = |
- * `-----------------------------------------/ / \ \-----------------------------------------'
- * | Alt | Cmd | Ctrl | /Space / \Enter \ |BackSP| Del |LOWER |
- * | | | |/ / \ \ | | | |
- * `----------------------------' '------''--------------------'
- */
-```
-
-### LOWER
-```c
-/* LOWER
- * ,------------------------------------------. ,------------------------------------------.
- * | F11 | F1 | F2 | F3 | F4 | F5 | | F6 | F7 | F8 | F9 | F10 | F12 |
- * |------+------+------+-------+------+------| |------+------+------+------+-------+------|
- * | | |KC_BRIU| Play | Mute | | | PgUp | Home | Up | End | |K_MDSH|
- * |------+------+------+-------+------+------| |------+------+------+------+-------+------|
- * | | |KC_BRID| Next |VolUp | |-------. ,-------| PgDn | Left | Down |Right |K_LOCK | |
- * |------+------+------+-------+------+------| | | |------+------+------+------+-------+------|
- * |M_SHFT| | | Prev |VolDn | |-------| |-------| | | | | |M_PYNV|
- * `------------------------------------------/ / \ \------------------------------------------'
- * | | | | / / \ \ | |M_CODE| |
- * | | | |/ / \ \ | | | |
- * `----------------------------' '------''--------------------'
- */
-```
-
-### RAISE
-```c
-/* RAISE
- * ,-----------------------------------------. ,-----------------------------------------.
- * | | | | |K_CSCN| | | | | | | | |
- * |------+------+------+------+------+------| |------+------+------+------+------+------|
- * | | | MS_1 | MS_U | MS_2 | WH_U | | | | | | | |
- * |------+------+------+------+------+------| |------+------+------+------+------+------|
- * | | | MS_L | MS_D | MS_R | WH_D |-------. ,-------| | | | | | |
- * |------+------+------+------+------+------| | | |------+------+------+------+------+------|
- * | | | | | | |-------| |-------| | | | | | |
- * `-----------------------------------------/ / \ \-----------------------------------------'
- * | | | | / / \ \ | | | |
- * | | | |/ / \ \ | | | |
- * `----------------------------' '------''--------------------'
- */
-```
-
-### ADJUST
-```c
-/* ADJUST
- * ,------------------------------------------. ,-----------------------------------------.
- * |EE_CLR | | | | | | | | | |COLMAK|DVORAK|QWERTY|
- * |-------+------+------+------+------+------| |------+------+------+------+------+------|
- * |M_MAKE | | | | | | | | | | | | |
- * |-------+------+------+------+------+------| |------+------+------+------+------+------|
- * |M_VRSN | | | | | |-------. ,-------| | | | | | |
- * |-------+------+------+------+------+------| | | |------+------+------+------+------+------|
- * |M_FLSH | | | | | |-------| |-------| | | | | | |
- * `------------------------------------------/ / \ \-----------------------------------------'
- * | | | | / / \ \ | | | |
- * | | | |/ / \ \ | | | |
- * `----------------------------' '------''--------------------'
- */
-```
-
-<!--
-### TEMPLATE
-```c
-/* TEMPLATE
- * ,-----------------------------------------. ,-----------------------------------------.
- * | | | | | | | | | | | | | |
- * |------+------+------+------+------+------| |------+------+------+------+------+------|
- * | | | | | | | | | | | | | |
- * |------+------+------+------+------+------| |------+------+------+------+------+------|
- * | | | | | | |-------. ,-------| | | | | | |
- * |------+------+------+------+------+------| | | |------+------+------+------+------+------|
- * | | | | | | |-------| |-------| | | | | | |
- * `-----------------------------------------/ / \ \-----------------------------------------'
- * | | | | / / \ \ | | | |
- * | | | |/ / \ \ | | | |
- * `----------------------------' '------''--------------------'
- */
-```
---> \ No newline at end of file
diff --git a/keyboards/lily58/keymaps/ninjonas/config.h b/keyboards/lily58/keymaps/ninjonas/config.h
deleted file mode 100644
index 9c97dc9e3f..0000000000
--- a/keyboards/lily58/keymaps/ninjonas/config.h
+++ /dev/null
@@ -1,32 +0,0 @@
-/*
-This is the c configuration file for the keymap
-
-Copyright 2012 Jun Wako <wakojun@gmail.com>
-Copyright 2015 Jack Humbert
-
-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
-
-/* Select hand configuration */
-
-#define MASTER_LEFT
-// #define MASTER_RIGHT
-// #define EE_HANDS
-
-#define QUICK_TAP_TERM 0
-
-#define OLED_FONT_H "keyboards/lily58/lib/glcdfont.c"
-#define OLED_DISABLE_TIMEOUT
diff --git a/keyboards/lily58/keymaps/ninjonas/keymap.c b/keyboards/lily58/keymaps/ninjonas/keymap.c
deleted file mode 100644
index 6c9c0da07d..0000000000
--- a/keyboards/lily58/keymaps/ninjonas/keymap.c
+++ /dev/null
@@ -1,196 +0,0 @@
-/* Copyright 2019 @ninjonas
- *
- * 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 "ninjonas.h"
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
-/* QWERTY
- * ,-----------------------------------------. ,-----------------------------------------.
- * | ` | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | - |
- * |------+------+------+------+------+------| |------+------+------+------+------+------|
- * | Tab | Q | W | E | R | T | | Y | U | I | O | P | \ |
- * |------+------+------+------+------+------| |------+------+------+------+------+------|
- * | ESC | A | S | D | F | G |-------. ,-------| H | J | K | L | ; | ' |
- * |------+------+------+------+------+------| [ | | ] |------+------+------+------+------+------|
- * |LShift| Z | X | C | V | B |-------| |-------| N | M | , | . | / | = |
- * `-----------------------------------------/ / \ \-----------------------------------------'
- * | Alt | Cmd | Ctrl | /Space / \Enter \ |BackSP| Del |LOWER |
- * | | | |/ / \ \ | | | |
- * `----------------------------' '------''--------------------'
- */
- [_QWERTY] = LAYOUT_wrapper(
- _____________________NUM_LEFT_______________________, _____________________NUM_RIGHT______________________,
- _____________________QWERTY_L1______________________, _____________________QWERTY_R1______________________,
- _____________________QWERTY_L2______________________, _____________________QWERTY_R2______________________,
- _____________________QWERTY_L3______________________, T_LBRC, T_RBRC, _____________________QWERTY_R3______________________,
- _____________MOD_LEFT_____________, _____________MOD_RIGHT____________
- ),
-
-/* DVORAK
- * ,-----------------------------------------. ,-----------------------------------------.
- * | ` | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | - |
- * |------+------+------+------+------+------| |------+------+------+------+------+------|
- * | Tab | ' | , | . | P | Y | | F | G | C | R | L | \ |
- * |------+------+------+------+------+------| |------+------+------+------+------+------|
- * | ESC | A | O | E | U | I |-------. ,-------| D | H | T | N | S | / |
- * |------+------+------+------+------+------| [ | | ] |------+------+------+------+------+------|
- * |LShift| ; | Q | J | K | X |-------| |-------| B | M | W | V | Z | = |
- * `-----------------------------------------/ / \ \-----------------------------------------'
- * | Alt | Cmd | Ctrl | /Space / \Enter \ |BackSP| Del |LOWER |
- * | | | |/ / \ \ | | | |
- * `----------------------------' '------''--------------------'
- */
- [_DVORAK] = LAYOUT_wrapper(
- _____________________NUM_LEFT_______________________, _____________________NUM_RIGHT______________________,
- _____________________DVORAK_L1______________________, _____________________DVORAK_R1______________________,
- _____________________DVORAK_L2______________________, _____________________DVORAK_R2______________________,
- _____________________DVORAK_L3______________________, T_LBRC, T_RBRC, _____________________DVORAK_R3______________________,
- _____________MOD_LEFT_____________, _____________MOD_RIGHT____________
- ),
-
-/* COLEMAK
- * ,-----------------------------------------. ,-----------------------------------------.
- * | ` | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | - |
- * |------+------+------+------+------+------| |------+------+------+------+------+------|
- * | Tab | Q | W | F | P | G | | J | L | U | Y | ; | \ |
- * |------+------+------+------+------+------| |------+------+------+------+------+------|
- * | ESC | A | R | S | T | D |-------. ,-------| H | N | E | I | O | ' |
- * |------+------+------+------+------+------| [ | | ] |------+------+------+------+------+------|
- * |LShift| Z | X | C | V | B |-------| |-------| K | M | , | . | / | = |
- * `-----------------------------------------/ / \ \-----------------------------------------'
- * | Alt | Cmd | Ctrl | /Space / \Enter \ |BackSP| Del |LOWER |
- * | | | |/ / \ \ | | | |
- * `----------------------------' '------''--------------------'
- */
- [_COLEMAK] = LAYOUT_wrapper(
- _____________________NUM_LEFT_______________________, _____________________NUM_RIGHT______________________,
- _____________________COLEMAK_L1_____________________, _____________________COLEMAK_R1_____________________,
- _____________________COLEMAK_L2_____________________, _____________________COLEMAK_R2_____________________,
- _____________________COLEMAK_L3_____________________, T_LBRC, T_RBRC, _____________________COLEMAK_R3_____________________,
- _____________MOD_LEFT_____________, _____________MOD_RIGHT____________
- ),
-
-/* LOWER
- * ,------------------------------------------. ,------------------------------------------.
- * | F11 | F1 | F2 | F3 | F4 | F5 | | F6 | F7 | F8 | F9 | F10 | F12 |
- * |------+------+------+-------+------+------| |------+------+------+------+-------+------|
- * | | |KC_BRIU| Play | Mute | | | PgUp | Home | Up | End | |K_MDSH|
- * |------+------+------+-------+------+------| |------+------+------+------+-------+------|
- * | | |KC_BRID| Next |VolUp | |-------. ,-------| PgDn | Left | Down |Right |K_LOCK | |
- * |------+------+------+-------+------+------| | | |------+------+------+------+-------+------|
- * | |M_SHFT| | Prev |VolDn | |-------| |-------| | M | | | |M_PYNV|
- * `------------------------------------------/ / \ \------------------------------------------'
- * | | | | / / \ \ | |M_CODE| |
- * | | | |/ / \ \ | | | |
- * `----------------------------' '------''--------------------'
- */
-[_LOWER] = LAYOUT_wrapper(
- _____________________FUNC_LEFT______________________, _____________________FUNC_RIGHT_____________________,
- _____________________LOWER_L1_______________________, _____________________LOWER_R1_______________________,
- _____________________LOWER_L2_______________________, _____________________LOWER_R2_______________________,
- _____________________LOWER_L3_______________________, _______, _______, _____________________LOWER_R3_______________________,
- __________________________________, _______, _______, M_CODE, _______
- ),
-
-/* RAISE
- * ,-----------------------------------------. ,-----------------------------------------.
- * | | | | |K_CSCN| | | | | | | | |
- * |------+------+------+------+------+------| |------+------+------+------+------+------|
- * | | | MS_1 | MS_U | MS_2 | WH_U | | | | | | | |
- * |------+------+------+------+------+------| |------+------+------+------+------+------|
- * | | | MS_L | MS_D | MS_R | WH_D |-------. ,-------| | | | | | |
- * |------+------+------+------+------+------| | | |------+------+------+------+------+------|
- * | | | | | | |-------| |-------| | | | | | |
- * `-----------------------------------------/ / \ \-----------------------------------------'
- * | | | | / / \ \ | | | |
- * | | | |/ / \ \ | | | |
- * `----------------------------' '------''--------------------'
- */
-[_RAISE] = LAYOUT_wrapper(
- XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
- XXXXXXX, XXXXXXX, _____________MOUSE_1______________, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
- XXXXXXX, XXXXXXX, _____________MOUSE_2______________, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
- XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
- __________________________________, _______, _______, _______, K_CPRF
- ),
-
-/* ADJUST
- * ,------------------------------------------. ,-----------------------------------------.
- * | | | | | | | | | | | | | |
- * |-------+------+------+------+------+------| |------+------+------+------+------+------|
- * |M_MAKE |EEPRST| | | | | | | | |COLMAK|DVORAK|QWERTY|
- * |-------+------+------+------+------+------| |------+------+------+------+------+------|
- * |M_VRSN |M_MALL| | | | |-------. ,-------| | | | | | |
- * |-------+------+------+------+------+------| | | |------+------+------+------+------+------|
- * |M_FLSH | | | | | |-------| |-------| | | | | | |
- * `------------------------------------------/ / \ \-----------------------------------------'
- * | | | | / / \ \ | | | |
- * | | | |/ / \ \ | | | |
- * `----------------------------' '------''--------------------'
- */
-[_ADJUST] = LAYOUT_wrapper(
- XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
- _____________________ADJUST_L1______________________, _____________________ADJUST_R1______________________,
- _____________________ADJUST_L2______________________, _____________________ADJUST_R2______________________,
- _____________________ADJUST_L3______________________, XXXXXXX, XXXXXXX, _____________________ADJUST_R3______________________,
- __________________________________, __________________________________
- ),
- /* TEMPLATE
- * ,-----------------------------------------. ,-----------------------------------------.
- * | | | | | | | | | | | | | |
- * |------+------+------+------+------+------| |------+------+------+------+------+------|
- * | | | | | | | | | | | | | |
- * |------+------+------+------+------+------| |------+------+------+------+------+------|
- * | | | | | | |-------. ,-------| | | | | | |
- * |------+------+------+------+------+------| | | |------+------+------+------+------+------|
- * | | | | | | |-------| |-------| | | | | | |
- * `-----------------------------------------/ / \ \-----------------------------------------'
- * | | | | / / \ \ | | | |
- * | | | |/ / \ \ | | | |
- * `----------------------------' '------''--------------------'
- */
-[_NUMPAD] = LAYOUT_wrapper(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _____________________NUMPAD_1_______________________,
- _______, _______, _______, _______, _______, _______, _____________________NUMPAD_2_______________________,
- _______, _______, _______, _______, _______, _______, _______, _______, _____________________NUMPAD_3_______________________,
- __________________________________, __________________________________
- ),
-};
-
-/* TEMPLATE
- * ,-----------------------------------------. ,-----------------------------------------.
- * | | | | | | | | | | | | | |
- * |------+------+------+------+------+------| |------+------+------+------+------+------|
- * | | | | | | | | | | | | | |
- * |------+------+------+------+------+------| |------+------+------+------+------+------|
- * | | | | | | |-------. ,-------| | | | | | |
- * |------+------+------+------+------+------| | | |------+------+------+------+------+------|
- * | | | | | | |-------| |-------| | | | | | |
- * `-----------------------------------------/ / \ \-----------------------------------------'
- * | | | | / / \ \ | | | |
- * | | | |/ / \ \ | | | |
- * `----------------------------' '------''--------------------'
- *
-[_TEMPLATE] = LAYOUT_wrapper(
- XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
- XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
- XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
- XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
- __________________________________, __________________________________
- ),
-*/ \ No newline at end of file
diff --git a/keyboards/lily58/keymaps/ninjonas/rules.mk b/keyboards/lily58/keymaps/ninjonas/rules.mk
deleted file mode 100644
index 9f00574d5d..0000000000
--- a/keyboards/lily58/keymaps/ninjonas/rules.mk
+++ /dev/null
@@ -1,2 +0,0 @@
-OLED_ENABLE = yes
-LTO_ENABLE = yes
diff --git a/keyboards/lime/keymaps/default/rules.mk b/keyboards/lime/keymaps/default/rules.mk
index b4572ce79a..dd69af3a2e 100644
--- a/keyboards/lime/keymaps/default/rules.mk
+++ b/keyboards/lime/keymaps/default/rules.mk
@@ -5,5 +5,3 @@ JOYSTICK_DRIVER = analog
EXTRAKEY_ENABLE = yes
WPM_ENABLE = yes
LTO_ENABLE = yes
-
-SRC += analog.c
diff --git a/keyboards/lime/rev1/config.h b/keyboards/lime/rev1/config.h
index ef4f99076d..ec2c061372 100644
--- a/keyboards/lime/rev1/config.h
+++ b/keyboards/lime/rev1/config.h
@@ -24,8 +24,3 @@
#endif
#define SPLIT_USB_DETECT
-
-#ifdef WPM_ENABLE
-# define SPLIT_WPM_ENABLE
-#endif
-
diff --git a/keyboards/lime/rev1/info.json b/keyboards/lime/rev1/info.json
index 13caf33841..19ac7dfda2 100644
--- a/keyboards/lime/rev1/info.json
+++ b/keyboards/lime/rev1/info.json
@@ -26,6 +26,11 @@
{"pin_a": "F4", "pin_b": "F5", "resolution": 2}
]
}
+ },
+ "transport": {
+ "sync": {
+ "wpm": true
+ }
}
},
"tapping": {
diff --git a/keyboards/soda/mango/config.h b/keyboards/magic_force/mf17/config.h
index 6e9f18cd5d..6e9f18cd5d 100644
--- a/keyboards/soda/mango/config.h
+++ b/keyboards/magic_force/mf17/config.h
diff --git a/keyboards/magic_force/mf17/info.json b/keyboards/magic_force/mf17/info.json
new file mode 100644
index 0000000000..397a5c879a
--- /dev/null
+++ b/keyboards/magic_force/mf17/info.json
@@ -0,0 +1,124 @@
+{
+ "manufacturer": "MagicForce",
+ "keyboard_name": "MF17",
+ "url": "https://github.com/gezhaoyou",
+ "maintainer": "MagicForce",
+ "diode_direction": "ROW2COL",
+ "processor": "STM32F072",
+ "bootloader": "stm32-dfu",
+ "matrix_pins": {
+ "cols": ["A6", "A5", "A4", "A3"],
+ "rows": ["B10", "B2", "B1", "B0", "A7"]
+ },
+ "usb": {
+ "device_version": "1.0.0",
+ "force_nkro": true,
+ "vid": "0x3A54",
+ "pid": "0x4F5D"
+ },
+ "features": {
+ "bootmagic": true,
+ "extrakey": true,
+ "mousekey": true,
+ "nkro": true,
+ "rgb_matrix": true
+ },
+ "ws2812": {
+ "pin": "A2"
+ },
+ "rgb_matrix": {
+ "animations": {
+ "alphas_mods": true,
+ "gradient_up_down": true,
+ "gradient_left_right": true,
+ "breathing": true,
+ "band_sat": true,
+ "band_val": true,
+ "band_pinwheel_sat": true,
+ "band_pinwheel_val": true,
+ "band_spiral_sat": true,
+ "band_spiral_val": true,
+ "cycle_all": true,
+ "cycle_left_right": true,
+ "cycle_up_down": true,
+ "cycle_out_in": true,
+ "cycle_out_in_dual": true,
+ "rainbow_moving_chevron": true,
+ "cycle_pinwheel": true,
+ "cycle_spiral": true,
+ "dual_beacon": true,
+ "rainbow_beacon": true,
+ "rainbow_pinwheels": true,
+ "raindrops": true,
+ "jellybean_raindrops": true,
+ "hue_breathing": true,
+ "hue_pendulum": true,
+ "hue_wave": true,
+ "pixel_fractal": true,
+ "pixel_flow": true,
+ "pixel_rain": true,
+ "typing_heatmap": true,
+ "digital_rain": true,
+ "solid_reactive_simple": true,
+ "solid_reactive": true,
+ "solid_reactive_wide": true,
+ "solid_reactive_multiwide": true,
+ "solid_reactive_cross": true,
+ "solid_reactive_multicross": true,
+ "solid_reactive_nexus": true,
+ "solid_reactive_multinexus": true,
+ "splash": true,
+ "multisplash": true,
+ "solid_splash": true,
+ "solid_multisplash": true
+ },
+ "driver": "ws2812",
+ "layout": [
+ {"flags": 1, "matrix": [0, 0], "x": 0, "y": 0},
+ {"flags": 1, "matrix": [0, 1], "x": 75, "y": 0},
+ {"flags": 1, "matrix": [0, 2], "x": 150, "y": 0},
+ {"flags": 1, "matrix": [0, 3], "x": 224, "y": 0},
+ {"flags": 1, "matrix": [1, 0], "x": 0, "y": 16},
+ {"flags": 1, "matrix": [1, 1], "x": 75, "y": 16},
+ {"flags": 1, "matrix": [1, 2], "x": 150, "y": 16},
+ {"flags": 1, "matrix": [2, 0], "x": 0, "y": 32},
+ {"flags": 1, "matrix": [2, 1], "x": 75, "y": 32},
+ {"flags": 1, "matrix": [2, 2], "x": 150, "y": 32},
+ {"flags": 1, "matrix": [2, 3], "x": 224, "y": 24},
+ {"flags": 1, "matrix": [3, 0], "x": 0, "y": 48},
+ {"flags": 1, "matrix": [3, 1], "x": 75, "y": 48},
+ {"flags": 1, "matrix": [3, 2], "x": 150, "y": 48},
+ {"flags": 1, "matrix": [4, 0], "x": 32, "y": 64},
+ {"flags": 1, "matrix": [4, 1], "x": 150, "y": 64},
+ {"flags": 1, "matrix": [4, 2], "x": 224, "y": 64}
+ ]
+ },
+ "indicators": {
+ "caps_lock": "B15",
+ "on_state": 0
+ },
+ "community_layouts": ["numpad_5x4"],
+ "layouts": {
+ "LAYOUT_numpad_5x4": {
+ "layout": [
+ {"label": "Num Lock", "matrix": [0, 0], "x": 0, "y": 0},
+ {"label": "/", "matrix": [0, 1], "x": 1, "y": 0},
+ {"label": "*", "matrix": [0, 2], "x": 2, "y": 0},
+ {"label": "-", "matrix": [0, 3], "x": 3, "y": 0},
+ {"label": "7", "matrix": [1, 0], "x": 0, "y": 1},
+ {"label": "8", "matrix": [1, 1], "x": 1, "y": 1},
+ {"label": "9", "matrix": [1, 2], "x": 2, "y": 1},
+ {"label": "4", "matrix": [2, 0], "x": 0, "y": 2},
+ {"label": "5", "matrix": [2, 1], "x": 1, "y": 2},
+ {"label": "6", "matrix": [2, 2], "x": 2, "y": 2},
+ {"h": 2, "label": "+", "matrix": [1, 3], "x": 3, "y": 1},
+ {"label": "1", "matrix": [3, 0], "x": 0, "y": 3},
+ {"label": "2", "matrix": [3, 1], "x": 1, "y": 3},
+ {"label": "3", "matrix": [3, 2], "x": 2, "y": 3},
+ {"label": "0", "matrix": [4, 0], "w": 2, "x": 0, "y": 4},
+ {"label": ".", "matrix": [4, 2], "x": 2, "y": 4},
+ {"h": 2, "label": "Enter", "matrix": [3, 3], "x": 3, "y": 3}
+ ]
+ }
+ }
+}
diff --git a/keyboards/soda/mango/keymaps/default/keymap.c b/keyboards/magic_force/mf17/keymaps/default/keymap.c
index 7497c87514..7497c87514 100755
--- a/keyboards/soda/mango/keymaps/default/keymap.c
+++ b/keyboards/magic_force/mf17/keymaps/default/keymap.c
diff --git a/keyboards/soda/mango/keymaps/via/keymap.c b/keyboards/magic_force/mf17/keymaps/via/keymap.c
index 059598a680..059598a680 100755
--- a/keyboards/soda/mango/keymaps/via/keymap.c
+++ b/keyboards/magic_force/mf17/keymaps/via/keymap.c
diff --git a/keyboards/keychron/q1/ansi/keymaps/via/rules.mk b/keyboards/magic_force/mf17/keymaps/via/rules.mk
index 1e5b99807c..1e5b99807c 100644
--- a/keyboards/keychron/q1/ansi/keymaps/via/rules.mk
+++ b/keyboards/magic_force/mf17/keymaps/via/rules.mk
diff --git a/keyboards/magic_force/mf17/readme.md b/keyboards/magic_force/mf17/readme.md
new file mode 100644
index 0000000000..bb75cadfe9
--- /dev/null
+++ b/keyboards/magic_force/mf17/readme.md
@@ -0,0 +1,22 @@
+# MF-17
+
+A customizable 17 keyboard, support both HOTSWAP and SOLDER.
+
+* Keyboard Maintainer: [gezhaoyou](https://github.com/gezhaoyou)
+* Hardware Supported: [gezhaoyou](https://github.com/gezhaoyou)
+Make example for this keyboard (after setting up your build environment):
+
+ make magic_force/mf17:default
+
+Flashing example for this keyboard:
+
+ make magic_force/mf17: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 2 ways:
+
+* **Physical reset button**: Briefly press the button: [boot] first, then press button: [reset] on the back of the PCB
+* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available
diff --git a/keyboards/magic_force/mf17/rules.mk b/keyboards/magic_force/mf17/rules.mk
new file mode 100644
index 0000000000..7ff128fa69
--- /dev/null
+++ b/keyboards/magic_force/mf17/rules.mk
@@ -0,0 +1 @@
+# This file intentionally left blank \ No newline at end of file
diff --git a/keyboards/soda/pocket/chconf.h b/keyboards/magic_force/mf34/chconf.h
index 61b37ebf37..61b37ebf37 100644
--- a/keyboards/soda/pocket/chconf.h
+++ b/keyboards/magic_force/mf34/chconf.h
diff --git a/keyboards/soda/pocket/config.h b/keyboards/magic_force/mf34/config.h
index ce02ad5d68..ce02ad5d68 100644
--- a/keyboards/soda/pocket/config.h
+++ b/keyboards/magic_force/mf34/config.h
diff --git a/keyboards/magic_force/mf34/info.json b/keyboards/magic_force/mf34/info.json
new file mode 100644
index 0000000000..86b08087cb
--- /dev/null
+++ b/keyboards/magic_force/mf34/info.json
@@ -0,0 +1,78 @@
+{
+ "keyboard_name": "MagicForce",
+ "url": "",
+ "maintainer": "MagicForce",
+ "manufacturer": "MagicForce",
+ "usb": {
+ "vid": "0x1A53",
+ "pid": "0x4F51",
+ "device_version": "1.0.2",
+ "force_nkro": true
+ },
+ "indicators": {
+ "num_lock": "B15"
+ },
+ "ws2812": {
+ "pin": "C15"
+ },
+ "rgb_matrix": {
+ "driver": "ws2812"
+ },
+ "matrix_pins": {
+ "cols": ["A2", "A1", "B14", "B4", "B5", "B6", "B7"],
+ "rows": ["A7", "B0", "B1", "B2", "B10", "B11"]
+ },
+ "diode_direction": "ROW2COL",
+ "processor": "STM32F072",
+ "bootloader": "stm32-dfu",
+ "layouts": {
+ "LAYOUT": {
+ "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.25, "y": 0},
+ {"matrix": [0, 4], "x": 4.25, "y": 0},
+ {"matrix": [0, 5], "x": 5.25, "y": 0},
+ {"matrix": [0, 6], "x": 6.25, "y": 0},
+
+ {"matrix": [1, 0], "x": 0, "y": 1.25},
+ {"matrix": [1, 1], "x": 1, "y": 1.25},
+ {"matrix": [1, 2], "x": 2, "y": 1.25},
+
+ {"matrix": [1, 3], "x": 3.25, "y": 1.25},
+ {"matrix": [1, 4], "x": 4.25, "y": 1.25},
+ {"matrix": [1, 5], "x": 5.25, "y": 1.25},
+ {"matrix": [1, 6], "x": 6.25, "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.25},
+
+ {"matrix": [2, 3], "x": 3.25, "y": 2.25},
+ {"matrix": [2, 4], "x": 4.25, "y": 2.25},
+ {"matrix": [2, 5], "x": 5.25, "y": 2.25},
+
+ {"matrix": [3, 3], "x": 3.25, "y": 3.25},
+ {"matrix": [3, 4], "x": 4.25, "y": 3.25},
+ {"matrix": [3, 5], "x": 5.25, "y": 3.25},
+ {"matrix": [3, 6], "x": 6.25, "y": 2.25, "h": 2},
+
+ {"matrix": [4, 1], "x": 1, "y": 4.25},
+
+ {"matrix": [4, 3], "x": 3.25, "y": 4.25},
+ {"matrix": [4, 4], "x": 4.25, "y": 4.25},
+ {"matrix": [4, 5], "x": 5.25, "y": 4.25},
+
+ {"matrix": [5, 0], "x": 0, "y": 5.25},
+ {"matrix": [5, 1], "x": 1, "y": 5.25},
+ {"matrix": [5, 2], "x": 2, "y": 5.25},
+
+ {"matrix": [5, 4], "x": 3.25, "y": 5.25, "w": 2},
+ {"matrix": [5, 5], "x": 5.25, "y": 5.25},
+ {"matrix": [5, 6], "x": 6.25, "y": 4.25, "h": 2}
+ ]
+ }
+ }
+}
diff --git a/keyboards/soda/pocket/keymaps/default/keymap.c b/keyboards/magic_force/mf34/keymaps/default/keymap.c
index 4d65df2d73..4d65df2d73 100755
--- a/keyboards/soda/pocket/keymaps/default/keymap.c
+++ b/keyboards/magic_force/mf34/keymaps/default/keymap.c
diff --git a/keyboards/soda/pocket/keymaps/via/keymap.c b/keyboards/magic_force/mf34/keymaps/via/keymap.c
index 4d65df2d73..4d65df2d73 100755
--- a/keyboards/soda/pocket/keymaps/via/keymap.c
+++ b/keyboards/magic_force/mf34/keymaps/via/keymap.c
diff --git a/keyboards/keychron/q1/iso/keymaps/via/rules.mk b/keyboards/magic_force/mf34/keymaps/via/rules.mk
index 1e5b99807c..1e5b99807c 100644
--- a/keyboards/keychron/q1/iso/keymaps/via/rules.mk
+++ b/keyboards/magic_force/mf34/keymaps/via/rules.mk
diff --git a/keyboards/soda/pocket/mcuconf.h b/keyboards/magic_force/mf34/mcuconf.h
index e139ee3683..e139ee3683 100644
--- a/keyboards/soda/pocket/mcuconf.h
+++ b/keyboards/magic_force/mf34/mcuconf.h
diff --git a/keyboards/soda/pocket/pocket.c b/keyboards/magic_force/mf34/mf34.c
index 8cced36866..8cced36866 100644
--- a/keyboards/soda/pocket/pocket.c
+++ b/keyboards/magic_force/mf34/mf34.c
diff --git a/keyboards/magic_force/mf34/readme.md b/keyboards/magic_force/mf34/readme.md
new file mode 100644
index 0000000000..25a72d644f
--- /dev/null
+++ b/keyboards/magic_force/mf34/readme.md
@@ -0,0 +1,23 @@
+# MF-34
+
+A customizable 34 keyboard, support both HOTSWAP and SOLDER.
+
+* Keyboard Maintainer: [gezhaoyou](https://github.com/gezhaoyou)
+* Hardware Supported: [gezhaoyou](https://github.com/gezhaoyou)
+
+Make example for this keyboard (after setting up your build environment):
+
+ make magic_force/mf34:default
+
+Flashing example for this keyboard:
+
+ make magic_force/mf34:default:flash
+
+## Bootloader
+
+Enter the bootloader in 2 ways:
+
+* **Physical reset button**: Briefly press the button: [boot] first, then press button: [reset] on the back of the PCB
+* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available
+
+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).
diff --git a/keyboards/soda/pocket/rules.mk b/keyboards/magic_force/mf34/rules.mk
index 24a8c52e48..24a8c52e48 100644
--- a/keyboards/soda/pocket/rules.mk
+++ b/keyboards/magic_force/mf34/rules.mk
diff --git a/keyboards/manyboard/macro/keymaps/default/keymap.c b/keyboards/manyboard/macro/keymaps/default/keymap.c
index 0b9d2ac927..d068fa8d3d 100644
--- a/keyboards/manyboard/macro/keymaps/default/keymap.c
+++ b/keyboards/manyboard/macro/keymaps/default/keymap.c
@@ -41,15 +41,15 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
layer_state_t layer_state_set_user(layer_state_t state) {
switch (get_highest_layer(state)) {
case 0:
- sethsv(HSV_WHITE, (LED_TYPE *)&led[0]);
+ sethsv(HSV_WHITE, (rgb_led_t *)&led[0]);
rgblight_set();
break;
case 1:
- sethsv(HSV_GREEN, (LED_TYPE *)&led[0]);
+ sethsv(HSV_GREEN, (rgb_led_t *)&led[0]);
rgblight_set();
break;
case 2:
- sethsv(HSV_BLUE, (LED_TYPE *)&led[0]);
+ sethsv(HSV_BLUE, (rgb_led_t *)&led[0]);
rgblight_set();
break;
}
diff --git a/keyboards/manyboard/macro/keymaps/via/keymap.c b/keyboards/manyboard/macro/keymaps/via/keymap.c
index 0b9d2ac927..d068fa8d3d 100644
--- a/keyboards/manyboard/macro/keymaps/via/keymap.c
+++ b/keyboards/manyboard/macro/keymaps/via/keymap.c
@@ -41,15 +41,15 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
layer_state_t layer_state_set_user(layer_state_t state) {
switch (get_highest_layer(state)) {
case 0:
- sethsv(HSV_WHITE, (LED_TYPE *)&led[0]);
+ sethsv(HSV_WHITE, (rgb_led_t *)&led[0]);
rgblight_set();
break;
case 1:
- sethsv(HSV_GREEN, (LED_TYPE *)&led[0]);
+ sethsv(HSV_GREEN, (rgb_led_t *)&led[0]);
rgblight_set();
break;
case 2:
- sethsv(HSV_BLUE, (LED_TYPE *)&led[0]);
+ sethsv(HSV_BLUE, (rgb_led_t *)&led[0]);
rgblight_set();
break;
}
diff --git a/keyboards/maple_computing/c39/keymaps/kuchosauronad0/config.h b/keyboards/maple_computing/c39/keymaps/kuchosauronad0/config.h
deleted file mode 100644
index bc77f77e49..0000000000
--- a/keyboards/maple_computing/c39/keymaps/kuchosauronad0/config.h
+++ /dev/null
@@ -1,34 +0,0 @@
-
-/*
-This is the c configuration file for the keymap
-
-Copyright 2012 Jun Wako <wakojun@gmail.com>
-Copyright 2015 Jack Humbert
-Copyright 2017 Art Ortenburger
-
-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
-
-/* key combination for magic key command */
-#undef IS_COMMAND
-#define IS_COMMAND() ( \
- get_mods() == (MOD_BIT(KC_LSFT) | MOD_BIT(KC_LALT)) \
-)
-
-#ifdef RGBLIGHT_ENABLE
-# define WS2812_DI_PIN D0
-# define RGBLED_NUM 4
-#endif // !RGBLIGHT_ENABLE
diff --git a/keyboards/maple_computing/c39/keymaps/kuchosauronad0/keymap.c b/keyboards/maple_computing/c39/keymaps/kuchosauronad0/keymap.c
deleted file mode 100644
index 3ce476e46d..0000000000
--- a/keyboards/maple_computing/c39/keymaps/kuchosauronad0/keymap.c
+++ /dev/null
@@ -1,131 +0,0 @@
-/*
-This is the keymap for the keyboard
-
-Copyright 2012 Jun Wako <wakojun@gmail.com>
-Copyright 2015 Jack Humbert
-Copyright 2017 Art Ortenburger
-
-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 "kuchosauronad0.h"
-
-#ifdef RGBLIGHT_ENABLE
- extern rgblight_config_t rgblight_config;
-#endif
-
-#ifdef INDICATOR_LIGHTS
- extern userspace_config_t userspace_config;
- uint8_t last_mod;
- uint8_t last_led;
- uint8_t last_osm;
-#endif
-
-
-#define LAYOUT_collide39_base( \
- K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, \
- K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, \
- K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A \
- ) \
- LAYOUT_wrapper( \
- MT(MOD_LALT,KC_TAB), K01, K02, K03, K04, K05, LT(RAISE,KC_PGUP), K06, K07, K08, K09, K0A, KC_BSPC, \
- SFT_T(KC_ESC), K11, K12, K13, K14, K15, LT(LOWER,KC_PGDN), K16, K17, K18, K19, K1A, SFT_T(KC_ENT), \
- MT(MOD_LCTL,KC_DEL), K21, K22, K23, K24, K25, KC_SPACE, K26, K27, K28, K29, K2A, QK_LEAD \
- )
-
-/*
- * ,------. ,----------------------------------------------------------------------------. ,------.
- * |ALTTAB| | Q | W | E | R | T |RSE/PU| Y | U | I | O | P | | BSPC |
- * |------| |------+------+------+------+------+------+------+------+------+------+------+ |------|
- * |SF/ESC| | A | S | D | F | G |LWR/PD| H | J | K | L | ; | | ENTER|
- * |------| |------+------+------+------+------+------+------+------+------+------+------+ |------|
- * |CTLDEL| | Z | X | C | V | B |SPACE | N | M | , | . | / | |LEADER|
- * `------' `----------------------------------------------------------------------------' `------'
- */
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
- [_QWERTY] = LAYOUT_collide39_base_wrapper(
- _________________QWERTY_L1_________________, _________________QWERTY_R1_________________,
- _________________QWERTY_L2_________________, _________________QWERTY_R2_________________,
- _________________QWERTY_L3_________________, _________________QWERTY_R3_________________
- ),
-
- [_COLEMAK] = LAYOUT_collide39_base_wrapper(
- _________________COLEMAK_L1________________, _________________COLEMAK_R1________________,
- _________________COLEMAK_L2________________, _________________COLEMAK_R2________________,
- _________________COLEMAK_L3________________, _________________COLEMAK_R3________________
- ),
-
- [_DVORAK] = LAYOUT_collide39_base_wrapper(
- _________________DVORAK_L1_________________, _________________DVORAK_R1_________________,
- _________________DVORAK_L2_________________, _________________DVORAK_R2_________________,
- _________________DVORAK_L3_________________, _________________DVORAK_R3_________________
- ),
-
-#ifdef UNICODEMAP_ENABLE
- [_UNICODE] = LAYOUT_collide39_base_wrapper(
- _______________UNICODE_L1__________________, _______________UNICODE_R1__________________,
- _______________UNICODE_L2__________________, _______________UNICODE_R2__________________,
- _______________UNICODE_L3__________________, _______________UNICODE_R3__________________
- ),
-#endif
- [_WORKMAN] = LAYOUT_collide39_base_wrapper(
- _________________RGB_UP____________________, _________________RGB_UP____________________,
- _________________RGB_CENTER________________, _________________RGB_CENTER________________,
- _________________RGB_DOWN__________________, _________________RGB_DOWN__________________
- ),
-
- [_PLOVER] = LAYOUT_wrapper(
- KC_1, _________________PLOVER_L1_________________, _______, _________________PLOVER_R1_________________, KC_1,
- KC_NO, _________________PLOVER_L2_________________, _______, _________________PLOVER_R2_________________, KC_NO,
- KC_NO, _________________PLOVER_L3_________________, _______, _________________PLOVER_R3_________________, _______
- ),
-
- [_MODS] = LAYOUT_wrapper(
- KC_LALT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_RALT,
- KC_LCTL, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_RCTL,
- KC_LSFT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
- ),
-
- [_LOWER] = LAYOUT_wrapper(
- KC_TILD, _________________LOWER_L1__________________, _______, _________________LOWER_R1__________________, KC_BSPC,
- KC_F11, _________________LOWER_L2__________________, _______, _________________LOWER_R2__________________, KC_PIPE,
- KC_F12, _________________LOWER_L3__________________, _______, _________________LOWER_R3__________________, _______
- ),
-
- [_RAISE] = LAYOUT_wrapper(
- KC_GRV, _________________RAISE_L1__________________, _______, _________________RAISE_R1__________________, KC_BSPC,
- _______, _________________RAISE_L2__________________, _______, _________________RAISE_R2__________________, KC_BSLS,
- _______, _________________RAISE_L3__________________, _______, _________________RAISE_R3__________________, _______
- ),
-
- [_ADJUST] = LAYOUT_wrapper(
- KC_MAKE, _________________ADJUST_L1_________________, _______, _________________ADJUST_R1_________________, KC_RESET,
- VRSN, _________________ADJUST_L2_________________, _______, _________________ADJUST_R2_________________, EE_CLR,
- DB_TOGG, _________________ADJUST_L3_________________, _______, _________________ADJUST_R3_________________, _______
- )
-
-};
-
-void matrix_init_keymap(void) {
- #ifndef CONVERT_TO_PROTON_C
- setPinOutput(D5);
- writePinHigh(D5);
- setPinOutput(B0);
- writePinHigh(B0);
- #endif
-}
-
diff --git a/keyboards/maple_computing/c39/keymaps/kuchosauronad0/readme.md b/keyboards/maple_computing/c39/keymaps/kuchosauronad0/readme.md
deleted file mode 100644
index ff01fb5ffa..0000000000
--- a/keyboards/maple_computing/c39/keymaps/kuchosauronad0/readme.md
+++ /dev/null
@@ -1,10 +0,0 @@
-# Personal keymap for the collide39
-
-## Features:
-
-- leader key
-- combos
-- tap dance
-- rgb backlight for the space key using a chameleon 4x WS28xx leds
-
-#
diff --git a/keyboards/maple_computing/c39/keymaps/kuchosauronad0/rules.mk b/keyboards/maple_computing/c39/keymaps/kuchosauronad0/rules.mk
deleted file mode 100644
index a6304cdf4a..0000000000
--- a/keyboards/maple_computing/c39/keymaps/kuchosauronad0/rules.mk
+++ /dev/null
@@ -1,20 +0,0 @@
-BOOTLOADER = caterina
-BOOTMAGIC_ENABLE = no # Enable Bootmagic Lite
-MOUSEKEY_ENABLE = no # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
-COMMAND_ENABLE = no # Commands for debug and configuration
-LEADER_ENABLE = yes # default is yes
-TAP_DANCE_ENABLE = no #(+1254)
-COMBO_ENABLE = yes
-UNICODE_ENABLE = no #(+1134)
-UNICODEMAP_ENABLE = yes
-RGBLIGHT_ENABLE = yes
-AUDIO_ENABLE = no
-NKRO_ENABLE = yes
-
-INDICATOR_LIGHTS = yes
-MACROS_ENABLED = no
-RGBLIGHT_STARTUP_ANIMATION = yes
-
-NO_SECRETS = no
diff --git a/keyboards/maple_computing/launchpad/keymaps/brandonschlack/config.h b/keyboards/maple_computing/launchpad/keymaps/brandonschlack/config.h
deleted file mode 100644
index 6b65e2dcc3..0000000000
--- a/keyboards/maple_computing/launchpad/keymaps/brandonschlack/config.h
+++ /dev/null
@@ -1,30 +0,0 @@
-/* Copyright 2020 Brandon Schlack
- *
- * 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
-
-/* Underlight Configuration */
- #undef WS2812_DI_PIN
- #define WS2812_DI_PIN F4
- #undef RGBLED_NUM
- #define RGBLED_NUM 2 // Number of LEDs
-#define RGBLIGHT_EFFECT_BREATHING // Only have Breathing Animation
-#define RGBLIGHT_HUE_STEP 10
-#define RGBLIGHT_SAT_STEP 17
-#define RGBLIGHT_VAL_STEP 17
-
-/* Mouse Keys Configuration */
-#define MK_3_SPEED
-#define MK_W_INTERVAL_UNMOD 20
diff --git a/keyboards/maple_computing/launchpad/keymaps/brandonschlack/keymap.c b/keyboards/maple_computing/launchpad/keymaps/brandonschlack/keymap.c
deleted file mode 100644
index 4f47777fa2..0000000000
--- a/keyboards/maple_computing/launchpad/keymaps/brandonschlack/keymap.c
+++ /dev/null
@@ -1,213 +0,0 @@
-/* Copyright 2020 Brandon Schlack
- *
- * 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 "brandonschlack.h"
-
-/**
- * Layer Names
- */
-#define _REEDER _BASE
-enum bdn9_layers {
- _MEDIA = KEYMAP_LAYERS,
- _NAVI,
- _KARABINER
-};
-
-/**
- * Keycodes & Macros
- */
-#define DF_REDR DF(_REEDER) // Set Default Layer to Reeder shortcuts
-#define DF_MEDA DF(_MEDIA) // Set Default Layer to Media controls
-#define DF_NAVI DF(_NAVI) // Set Default Layer to Navigation shortcuts
-#define DF_KBNR DF(_KARABINER) // Set Default Layer to Basic Macro keys
-
-// Tap Dances
-enum launchpad_dances {
- TD_SHLD_LGHT = 0,
- TD_SHLD_ADJT,
- TD_REDR_H
-};
-//Tap Dance Definitions
-tap_dance_action_t tap_dance_actions[] = {
- [TD_SHLD_LGHT] = ACTION_TAP_DANCE_TRIGGER_LAYER(SINGLE_HOLD, _LIGHT),
- [TD_SHLD_ADJT] = ACTION_TAP_DANCE_TRIGGER_LAYER(SINGLE_HOLD, _ADJUST),
- [TD_REDR_H] = ACTION_TAP_DANCE_DOUBLE(KC_H, KC_R)
-};
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
-/* Reeder
- * ┌──────┬──────┐
- * │CmdTab│ View │
- * ├──────┼──────┤
- * │PrvSub│PrvItm│
- * ├──────┼──────┤
- * │NxtSub│NxtItm│
- * ├──────┼──────┤
- * │ Clr │ Sync │
- * └──────┴──────┘
- */
-[_REEDER] = LAYOUT(
- CMD_TAB, TD(TD_REDR_H),
- KC_P, KC_K,
- KC_N, KC_J,
- TD(TD_SHLD_LGHT), TD(TD_SHLD_ADJT)
-),
-
-/* Media
- * ┌──────┬──────┐
- * │ Mute │ Play │
- * ├──────┼──────┤
- * │ Vol+ │PrvTrk│
- * ├──────┼──────┤
- * │ Vol- │NxtTrk│
- * ├──────┼──────┤
- * │ Spce │ Plyr │
- * └──────┴──────┘
- */
-[_MEDIA] = LAYOUT(
- KC_MUTE, KC_MPLY,
- KC_VOLU, KC_MNXT,
- KC_VOLD, KC_MPRV,
- TD(TD_SHLD_LGHT), TD(TD_SHLD_ADJT)
-),
-
-/* Navigation
- * ┌──────┬──────┐
- * │ PTab │ NTab │
- * ├──────┼──────┤
- * │ SclL │ SclU │
- * ├──────┼──────┤
- * │ SclR │ SclD │
- * ├──────┼──────┤
- * │LstTab│ClsTab│
- * └──────┴──────┘
- */
-[_NAVI] = LAYOUT(
- PRV_TAB, NXT_TAB,
- MC_WH_L, MC_WH_U,
- MC_WH_R, MC_WH_D,
- TD(TD_SHLD_LGHT), TD(TD_SHLD_ADJT)
-),
-
-/* Macro
- * ┌──────┬──────┐
- * │ 1 │ 2 │
- * ├──────┼──────┤
- * │ 3 │ 4 │
- * ├──────┼──────┤
- * │ 5 │ 6 │
- * ├──────┼──────┤
- * │ 7 │ 8 │
- * └──────┴──────┘
- */
-[_KARABINER] = LAYOUT(
- KC_P1, KC_P2,
- KC_P3, KC_P4,
- KC_P5, KC_P6,
- TD(TD_SHLD_LGHT), TD(TD_SHLD_ADJT)
-),
-
-/* Lights
- * ┌──────┬──────┐
- * │ THM+ │ HUE+ │
- * ├──────┼──────┤
- * │ SAT- │ SAT+ │
- * ├──────┼──────┤
- * │ VAL- │ VAL+ │
- * ├──────┼──────┤
- * │ XXXX │ Mde+ │
- * └──────┴──────┘
- */
-[_LIGHT] = LAYOUT(
- RGB_THM, RGB_HUI,
- RGB_SAD, RGB_SAI,
- RGB_VAD, RGB_VAI,
- XXXXXXX, RGB_MOD
-),
-
-/* Adjust
- * ┌──────┬──────┐
- * │ Make │ Rset │
- * ├──────┼──────┤
- * │ Redr │ Meda │
- * ├──────┼──────┤
- * │ Navi │ Mcro │
- * ├──────┼──────┤
- * │ Lght │ XXXX │
- * └──────┴──────┘
- */
-[_ADJUST] = LAYOUT(
- QM_MAKE, QK_BOOT,
- DF_REDR, DF_MEDA,
- DF_NAVI, DF_KBNR,
- TG_LGHT, XXXXXXX
-)
-
-};
-
-void matrix_init_keymap(void) {
-}
-
-// Runs once after keyboard initializes
-void keyboard_post_init_keymap(void) {
-};
-
-/**
- * Tap Dances
- */
-void process_tap_dance_keycode (bool reset, uint8_t toggle_layer) {
- uint16_t keycode = 0;
- switch (toggle_layer) {
- case _LIGHT:
- switch (get_highest_layer(layer_state)) {
- case _REEDER:
- keycode = KC_L;
- break;
- case _MEDIA:
- keycode = KC_SPC;
- break;
- case _NAVI:
- keycode = REO_TAB;
- break;
- case _KARABINER:
- keycode = KC_P7;
- break;
- }
- break;
- case _ADJUST:
- switch (get_highest_layer(layer_state)) {
- case _REEDER:
- keycode = KC_R;
- break;
- case _MEDIA:
- keycode = MC_PLYR;
- break;
- case _NAVI:
- keycode = CLS_TAB;
- break;
- case _KARABINER:
- keycode = KC_P8;
- break;
- }
- break;
- }
- if (!reset) {
- register_code16(keycode);
- } else {
- unregister_code16(keycode);
- }
-}
diff --git a/keyboards/maple_computing/launchpad/keymaps/brandonschlack/readme.md b/keyboards/maple_computing/launchpad/keymaps/brandonschlack/readme.md
deleted file mode 100644
index a91a1b80ac..0000000000
--- a/keyboards/maple_computing/launchpad/keymaps/brandonschlack/readme.md
+++ /dev/null
@@ -1,31 +0,0 @@
-# brandonschlack's layout for Launchpad
-Fun little macropad build, with an awesome case from [StrataKB](https://stratakb.com/store/cases/launchpad-v2-full-case).
-
-## Media Layer
-This layer is used for media controls. Player button is a hotkey to focus the current media player with [BeardedSpice](https://beardedspice.github.io/)
-| | |
-|:-:|:-:|
-| Mute | Play/Pause |
-| Vol + | Next Track |
-| Vol - | Prev Track |
-| | Current Player |
----
-
-## Keypad Layer
-This layer is used to send keypad keys, meant to be remapped based on current app with [Karabiner](https://pqrs.org/osx/karabiner/)
-| | |
-|:-:|:-:|
-| 1 | 2 |
-| 3 | 4 |
-| 5 | 6 |
-| 7 | 8 |
----
-
-## Magic Layer
-This layer is used as a meta layer for the pad. This layer is accessed by holding key in Row 3, Col 0
-| | |
-|:-:|:-:|
-| MAKE | RESET |
-| **Media** Layer | **Keypad** Layer|
-| XXX | XXX |
-| ___ | XXX |
diff --git a/keyboards/maple_computing/launchpad/keymaps/brandonschlack/rules.mk b/keyboards/maple_computing/launchpad/keymaps/brandonschlack/rules.mk
deleted file mode 100644
index 31c8f7b39d..0000000000
--- a/keyboards/maple_computing/launchpad/keymaps/brandonschlack/rules.mk
+++ /dev/null
@@ -1,13 +0,0 @@
-# Use macropad-specific defines, layers, functions. Flash bootloader with QM_MAKE
-IS_MACROPAD = yes
-
-# Use dfu bootloader for Elite-C
-BOOTLOADER = atmel-dfu
-
-# Build Options
-BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite
-RGBLIGHT_ENABLE = yes # Enable WS2812 RGB underlight.
-CONSOLE_ENABLE = yes # Console for debug(+400)
-MOUSEKEY_ENABLE = yes # Use mouse keys for scrolling.
-COMMAND_ENABLE = no # Disable Command, breaks with Mouse Keys set to constant.
-TAP_DANCE_ENABLE = yes # Use tap dance
diff --git a/keyboards/maple_computing/launchpad/keymaps/drashna/config.h b/keyboards/maple_computing/launchpad/keymaps/drashna/config.h
deleted file mode 100644
index fb64366e6f..0000000000
--- a/keyboards/maple_computing/launchpad/keymaps/drashna/config.h
+++ /dev/null
@@ -1,40 +0,0 @@
-/* Copyright 2020 Christopher Courtney, aka Drashna Jael're (@drashna) <drashna@live.com>
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-#pragma once
-
-/* Underlight Configuration */
-#undef WS2812_DI_PIN
-#define WS2812_DI_PIN F5
-#define RGBLIGHT_EFFECT_BREATHING
-#define RGBLIGHT_EFFECT_RAINBOW_MOOD
-#define RGBLIGHT_EFFECT_RAINBOW_SWIRL
-#define RGBLIGHT_EFFECT_SNAKE
-#define RGBLIGHT_EFFECT_KNIGHT
-#define RGBLIGHT_EFFECT_CHRISTMAS
-#define RGBLIGHT_EFFECT_STATIC_GRADIENT
-#define RGBLIGHT_EFFECT_RGB_TEST
-#define RGBLIGHT_EFFECT_ALTERNATING
-#define RGBLIGHT_EFFECT_TWINKLE
-#undef RGBLED_NUM
-#define RGBLED_NUM 8 // Number of LEDs
-#define RGBLIGHT_HUE_STEP 10
-#define RGBLIGHT_SAT_STEP 17
-#define RGBLIGHT_VAL_STEP 17
-
-#define RGB_MATRIX_LED_COUNT RGBLED_NUM
-#define AUDIO_PIN B7
-#define AUDIO_CLICKY
diff --git a/keyboards/maple_computing/launchpad/keymaps/drashna/keymap.c b/keyboards/maple_computing/launchpad/keymaps/drashna/keymap.c
deleted file mode 100644
index da9161831b..0000000000
--- a/keyboards/maple_computing/launchpad/keymaps/drashna/keymap.c
+++ /dev/null
@@ -1,107 +0,0 @@
-/* Copyright 2020 Christopher Courtney, aka Drashna Jael're (@drashna) <drashna@live.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 QMK_KEYBOARD_H
-
-enum local_layers {
- _QWERTY,
- _RGB,
- _FUNC,
-};
-
-// Defines for task manager and such
-#define CALTDEL LCTL(LALT(KC_DEL))
-#define TSKMGR LCTL(LSFT(KC_ESC))
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
- /* Qwerty
- * ,-------------.
- * | 1 | 2 |
- * |------+------|
- * | 3 | 4 |
- * |------+------|
- * | 5 | 6 |
- * |------+------|
- * | FUNC | RGB |
- * `-------------'
- */
- [_QWERTY] = LAYOUT(
- KC_1, KC_2,
- KC_3, KC_4,
- KC_5, KC_6,
- MO(_FUNC), TG(_RGB)
- ),
-
- /* RGB
- * ,-------------.
- * | Mode-| Mode+|
- * |------+------|
- * | HUE- | HUE+ |
- * |------+------|
- * | SAT- | SAT+ |
- * |------+------|
- * |RGBTOG| |
- * `-------------'
- */
- [_RGB] = LAYOUT(
- RGB_RMOD, RGB_MOD,
- RGB_HUD, RGB_HUI,
- RGB_SAD, RGB_SAI,
- RGB_TOG, KC_TRNS
- ),
-
- /* Function
- * ,-------------.
- * | Q |CALDEL|
- * |------+------|
- * | A |TSKMGR|
- * |------+------|
- * | Z | X |
- * |------+------|
- * | | C |
- * `-------------'
- */
- [_FUNC] = LAYOUT(
- KC_Q, CALTDEL,
- KC_A, TSKMGR,
- KC_Z, KC_X,
- _______, QK_BOOT
- )
-
-};
-
-
-
-
-#ifdef RGB_MATRIX_ENABLE
- led_config_t g_led_config = {
- {
- { 7, 0 },
- { 6, 1 },
- { 5, 2 },
- { 4, 3 },
- },{
- { 121, 2 }, { 121, 23 },
- { 121, 41 }, { 121, 60 },
- { 103, 2 }, { 103, 23 },
- { 103, 41 }, { 103, 60 },
- },{
- 1, 1, 1, 1,
- 1, 1, 1, 1,
- }
- };
-#endif
diff --git a/keyboards/maple_computing/launchpad/keymaps/drashna/rules.mk b/keyboards/maple_computing/launchpad/keymaps/drashna/rules.mk
deleted file mode 100644
index 9fa73f2406..0000000000
--- a/keyboards/maple_computing/launchpad/keymaps/drashna/rules.mk
+++ /dev/null
@@ -1,7 +0,0 @@
-BOOTLOADER = atmel-dfu
-
-RGBLIGHT_ENABLE = no
-AUDIO_ENABLE = no
-BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite
-RGB_MATRIX_ENABLE = yes
-RGB_MATRIX_DRIVER = ws2812
diff --git a/keyboards/maple_computing/lets_split_eh/keymaps/romus/README.md b/keyboards/maple_computing/lets_split_eh/keymaps/romus/README.md
deleted file mode 100644
index d54ed6856f..0000000000
--- a/keyboards/maple_computing/lets_split_eh/keymaps/romus/README.md
+++ /dev/null
@@ -1,7 +0,0 @@
-# Lets Split Eh Layout
-
-Check out [user readme](../../../../users/romus/README.md) for more info.
-
-# Usage
-
-Fill in after flashing
diff --git a/keyboards/maple_computing/lets_split_eh/keymaps/romus/keymap.c b/keyboards/maple_computing/lets_split_eh/keymaps/romus/keymap.c
deleted file mode 100644
index 398a324a0f..0000000000
--- a/keyboards/maple_computing/lets_split_eh/keymaps/romus/keymap.c
+++ /dev/null
@@ -1,28 +0,0 @@
-#include QMK_KEYBOARD_H
-#include "romus.h"
-
-
-void matrix_init_keymap (void) {
-}
-
-layer_state_t layer_state_set_keymap(layer_state_t state) {
-
- return state;
-}
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- // Main Dvorak layer
- [_DV] = LAYOUT_letssplit_wrapper(DVORAK),
- // Turkish and special character overlay
- [_AL] = LAYOUT_letssplit_wrapper(ALTCHAR),
- // Gaming layer
- [_GA] = LAYOUT_letssplit_wrapper(GAME),
- // Numbers layer
- [_NU] = LAYOUT_letssplit_wrapper(NUMBERS),
- // Settings layer
- [_SE] = LAYOUT_letssplit_wrapper(SETTINGS),
- // Mouse emulation layer
- [_MO] = LAYOUT_letssplit_wrapper(MOUSE),
- // Music layer
- [_MU] = LAYOUT_letssplit_wrapper(MUSIC),
-};
diff --git a/keyboards/maple_computing/lets_split_eh/keymaps/romus/rules.mk b/keyboards/maple_computing/lets_split_eh/keymaps/romus/rules.mk
deleted file mode 100644
index ad7dd4c474..0000000000
--- a/keyboards/maple_computing/lets_split_eh/keymaps/romus/rules.mk
+++ /dev/null
@@ -1,7 +0,0 @@
-# Build options
-
-BACKLIGHT_ENABLE = no # Switch LEDs
-MOUSEKEY_ENABLE = yes # Emulates mouse key using keypresses
-RGBLIGHT_ENABLE = yes # LED strips
-TAP_DANCE_ENABLE = yes # Use multi-tap features
-AUDIO_ENABLE = no # Audio stuff
diff --git a/keyboards/massdrop/alt/keymaps/charlesrocket/config.h b/keyboards/massdrop/alt/keymaps/charlesrocket/config.h
deleted file mode 100644
index 119477f80d..0000000000
--- a/keyboards/massdrop/alt/keymaps/charlesrocket/config.h
+++ /dev/null
@@ -1,19 +0,0 @@
-/* Copyright 2022 charlesrocket
- *
- * 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 UNICODE_SELECTED_MODES UNICODE_MODE_BSD, UNICODE_MODE_MACOS, UNICODE_MODE_LINUX
diff --git a/keyboards/massdrop/alt/keymaps/charlesrocket/keymap.c b/keyboards/massdrop/alt/keymaps/charlesrocket/keymap.c
deleted file mode 100644
index 8df4376806..0000000000
--- a/keyboards/massdrop/alt/keymaps/charlesrocket/keymap.c
+++ /dev/null
@@ -1,279 +0,0 @@
-/* Copyright 2022 charlesrocket
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-#include QMK_KEYBOARD_H
-
-enum alt_keycodes {
- L_BRI = SAFE_RANGE, //LED Brightness Increase //Working
- L_BRD, //LED Brightness Decrease //Working
- L_EDG_I, //LED Edge Brightness Increase
- L_EDG_D, //LED Edge Brightness Decrease
- L_EDG_M, //LED Edge lighting mode
- L_PTN, //LED Pattern Select Next //Working
- L_PTP, //LED Pattern Select Previous //Working
- L_PSI, //LED Pattern Speed Increase //Working
- L_PSD, //LED Pattern Speed Decrease //Working
- L_RATIOD,
- L_RATIOI,
- L_T_MD, //LED Toggle Mode //Working
- L_T_ONF, //LED Toggle On / Off //Broken
- L_ON, //LED On //Broken
- L_OFF, //LED Off //Broken
- L_T_BR, //LED Toggle Breath Effect //Working
- L_T_PTD, //LED Toggle Scrolling Pattern Direction //Working
- U_T_AGCR, //USB Toggle Automatic GCR control //Working
- DBG_TOG, //DEBUG Toggle On / Off //
- DBG_MTRX, //DEBUG Toggle Matrix Prints //
- DBG_KBD, //DEBUG Toggle Keyboard Prints //
- DBG_MOU, //DEBUG Toggle Mouse Prints //
- DBG_FAC, //DEBUG Factory light testing (All on white)
- MD_BOOT //Restart into bootloader after hold timeout //Working
-};
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [0] = LAYOUT(
- KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL,
- 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_HOME,
- KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGUP,
- 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_PGDN,
- KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT
- ),
- [1] = LAYOUT(
- KC_GRV, 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_MUTE,
- L_T_BR, L_PSD, L_BRI, L_PSI, L_EDG_I, _______, _______, _______, U_T_AGCR,_______, KC_PSCR, KC_SCRL, KC_PAUS, _______, KC_END,
- L_T_PTD, L_PTP, L_BRD, L_PTN, L_EDG_D, _______, _______, _______, _______, _______, _______, _______, _______, KC_VOLU,
- _______, L_T_MD, L_T_ONF, _______, L_EDG_M, MD_BOOT, NK_TOGG, _______, _______, _______, _______, _______, KC_PGUP, KC_VOLD,
- MO(2), _______, _______, DBG_FAC, KC_APP, _______, KC_HOME, KC_PGDN, KC_END
- ),
- [2] = LAYOUT(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, EE_CLR, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, UC_PREV, UC_NEXT, _______, _______, QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, LAG_SWP, LAG_NRM, _______, _______, TG(3), _______, _______, _______
- ),
- [3] = LAYOUT(
- UP(0,1), UP(2,3), UP(4,5), UP(6,7), UP(8,9), UP(10,11), UP(12,13), UP(14,15), UP(16,17), UP(18,19), UP(20,21), UP(22,23), UP(24,25), _______, _______,
- _______, KC_QUES, UP(27,28), UP(29,31), UM(32), UP(33,34), UM(35), UM(36), UP(37,38), UP(39,40), UP(41,42), UP(43,44), UP(45,46), _______, _______,
- _______, UP(47,48), UM(49), UM(50), KC_UNDS, UP(52,5), UP(53,54), UP(55,56), KC_QUOT, UP(59,60), UP(61,62), UP(63,64), _______, _______,
- _______, UP(65,66), UM(67), UP(68,69), UM(70), UM(71), UM(72), UM(73), KC_PIPE, UP(75,76), UM(77), UP(78,79), _______, _______,
- _______, _______, _______, _______, _______, TG(3), _______, _______, _______
- ),
-};
-#define MODS_SHIFT (get_mods() & MOD_BIT(KC_LSFT) || get_mods() & MOD_BIT(KC_RSFT))
-#define MODS_CTRL (get_mods() & MOD_BIT(KC_LCTL) || get_mods() & MOD_BIT(KC_RCTL))
-#define MODS_ALT (get_mods() & MOD_BIT(KC_LALT) || get_mods() & MOD_BIT(KC_RALT))
-bool process_record_user(uint16_t keycode, keyrecord_t *record) {
- static uint32_t key_timer;
- static uint8_t scroll_effect = 0;
- switch (keycode) {
- case L_BRI ... U_T_AGCR:
- if (record->event.pressed) {
- md_led_changed();
- }
- break;
- }
- switch (keycode) {
- case L_BRI:
- if (record->event.pressed) {
- if (LED_GCR_STEP > LED_GCR_MAX - gcr_desired) gcr_desired = LED_GCR_MAX;
- else gcr_desired += LED_GCR_STEP;
- if (led_animation_breathing) gcr_breathe = gcr_desired;
- }
- return false;
- case L_BRD:
- if (record->event.pressed) {
- if (LED_GCR_STEP > gcr_desired) gcr_desired = 0;
- else gcr_desired -= LED_GCR_STEP;
- if (led_animation_breathing) gcr_breathe = gcr_desired;
- }
- return false;
- case L_EDG_M:
- if (record->event.pressed) {
- led_edge_mode++;
- if (led_edge_mode > LED_EDGE_MODE_MAX) {
- led_edge_mode = LED_EDGE_MODE_ALL;
- }
- }
- return false;
- case L_EDG_I:
- if (record->event.pressed) {
- led_edge_brightness += 0.1;
- if (led_edge_brightness > 1) { led_edge_brightness = 1; }
- }
- return false;
- case L_EDG_D:
- if (record->event.pressed) {
- led_edge_brightness -= 0.1;
- if (led_edge_brightness < 0) { led_edge_brightness = 0; }
- }
- return false;
- case L_RATIOI:
- if (record->event.pressed) {
- led_ratio_brightness += 0.2;
- if (led_ratio_brightness > 2.0) { led_ratio_brightness = 2.0; }
- }
- return false;
- case L_RATIOD:
- if (record->event.pressed) {
- led_ratio_brightness -= 0.2;
- if (led_ratio_brightness < 0.0) { led_ratio_brightness = 0.0; }
- }
- return false;
- case L_PTN:
- if (record->event.pressed) {
- if (led_animation_id == led_setups_count - 1) led_animation_id = 0;
- else led_animation_id++;
- }
- return false;
- case L_PTP:
- if (record->event.pressed) {
- if (led_animation_id == 0) led_animation_id = led_setups_count - 1;
- else led_animation_id--;
- }
- return false;
- case L_PSI:
- if (record->event.pressed) {
- led_animation_speed += ANIMATION_SPEED_STEP;
- }
- return false;
- case L_PSD:
- if (record->event.pressed) {
- led_animation_speed -= ANIMATION_SPEED_STEP;
- if (led_animation_speed < 0) led_animation_speed = 0;
- }
- return false;
- case L_T_MD:
- if (record->event.pressed) {
- led_lighting_mode++;
- if (led_lighting_mode > LED_MODE_MAX_INDEX) led_lighting_mode = LED_MODE_NORMAL;
- }
- return false;
- case L_T_ONF:
- if (record->event.pressed) {
- led_enabled = !led_enabled;
- I2C3733_Control_Set(led_enabled);
- }
- return false;
- case L_ON:
- if (record->event.pressed) {
- led_enabled = 1;
- I2C3733_Control_Set(led_enabled);
- }
- return false;
- case L_OFF:
- if (record->event.pressed) {
- led_enabled = 0;
- I2C3733_Control_Set(led_enabled);
- }
- return false;
- case L_T_BR:
- if (record->event.pressed) {
- led_animation_breathing = !led_animation_breathing;
- if (led_animation_breathing) {
- gcr_breathe = gcr_desired;
- led_animation_breathe_cur = BREATHE_MIN_STEP;
- breathe_dir = 1;
- }
- }
- return false;
- case L_T_PTD:
- if (record->event.pressed) {
- scroll_effect++;
- if (scroll_effect == 1) { //Patterns with scroll move horizontal (Right to left)
- led_animation_direction = 1;
- led_animation_orientation = 0;
- led_animation_circular = 0;
- } else if (scroll_effect == 2) { //Patterns with scroll move vertical (Top to bottom)
- led_animation_direction = 1;
- led_animation_orientation = 1;
- led_animation_circular = 0;
- } else if (scroll_effect == 3) { //Patterns with scroll move vertical (Bottom to top)
- led_animation_direction = 0;
- led_animation_orientation = 1;
- led_animation_circular = 0;
- } else if (scroll_effect == 4) { //Patterns with scroll explode from center
- led_animation_direction = 0;
- led_animation_orientation = 0;
- led_animation_circular = 1;
- } else if (scroll_effect == 5) { //Patterns with scroll implode on center
- led_animation_direction = 1;
- led_animation_orientation = 0;
- led_animation_circular = 1;
- } else { //Patterns with scroll move horizontal (Left to right)
- scroll_effect = 0;
- led_animation_direction = 0;
- led_animation_orientation = 0;
- led_animation_circular = 0;
- }
- }
- return false;
- case U_T_AGCR:
- if (record->event.pressed && MODS_SHIFT && MODS_CTRL) {
- TOGGLE_FLAG_AND_PRINT(usb_gcr_auto, "USB GCR auto mode");
- }
- return false;
- case DBG_FAC:
- if (record->event.pressed && MODS_SHIFT && MODS_CTRL) {
- led_lighting_mode = LED_MODE_NORMAL;
- led_edge_brightness = 1;
- led_edge_mode = LED_EDGE_MODE_ALL;
- led_animation_breathing = 0;
- led_animation_id = 7; //led_programs.c led_setups leds_white index
- gcr_desired = LED_GCR_MAX;
- led_enabled = 1;
- I2C3733_Control_Set(led_enabled);
- }
- return false;
- case DBG_TOG:
- if (record->event.pressed) {
- TOGGLE_FLAG_AND_PRINT(debug_enable, "Debug mode");
- }
- return false;
- case DBG_MTRX:
- if (record->event.pressed) {
- TOGGLE_FLAG_AND_PRINT(debug_matrix, "Debug matrix");
- }
- return false;
- case DBG_KBD:
- if (record->event.pressed) {
- TOGGLE_FLAG_AND_PRINT(debug_keyboard, "Debug keyboard");
- }
- return false;
- case DBG_MOU:
- if (record->event.pressed) {
- TOGGLE_FLAG_AND_PRINT(debug_mouse, "Debug mouse");
- }
- return false;
- case MD_BOOT:
- if (record->event.pressed) {
- key_timer = timer_read32();
- } else {
- if (timer_elapsed32(key_timer) >= 500) {
- reset_keyboard();
- }
- }
- return false;
- default:
- return true;
- }
-}
- led_instruction_t led_instructions[] = {
- { .flags = LED_FLAG_USE_ROTATE_PATTERN },
- { .flags = LED_FLAG_MATCH_ID | LED_FLAG_MATCH_LAYER | LED_FLAG_USE_RGB, .id0 = 0x1, .b = 253, .layer = 1 },
- { .flags = LED_FLAG_MATCH_ID | LED_FLAG_MATCH_LAYER | LED_FLAG_USE_RGB, .id0 = 0x1, .r = 253, .b = 253, .layer = 2 },
- { .flags = LED_FLAG_MATCH_LAYER | LED_FLAG_USE_PATTERN, .pattern_id = 8, .layer = 3 },
- { .end = 1 }
- };
diff --git a/keyboards/massdrop/alt/keymaps/charlesrocket/rules.mk b/keyboards/massdrop/alt/keymaps/charlesrocket/rules.mk
deleted file mode 100644
index d684e3a615..0000000000
--- a/keyboards/massdrop/alt/keymaps/charlesrocket/rules.mk
+++ /dev/null
@@ -1,3 +0,0 @@
-OPT_DEFS += -DUSE_MASSDROP_CONFIGURATOR
-UNICODEMAP_ENABLE = yes
-APL_ENABLE = yes
diff --git a/keyboards/massdrop/alt/keymaps/jdelkins/config.h b/keyboards/massdrop/alt/keymaps/jdelkins/config.h
deleted file mode 100644
index 6efa3dbaee..0000000000
--- a/keyboards/massdrop/alt/keymaps/jdelkins/config.h
+++ /dev/null
@@ -1,23 +0,0 @@
-/*
- Copyright 2020 Joel Elkins <joel@elkins.com>
-
- This program is free software: you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>.
-*/
-
-#pragma once
-
-#define RGB_MATRIX_DEFAULT_SPD 20
-#define AUTO_SHIFT_TIMEOUT 160
-#define LEADER_TIMEOUT 400
-#define LEADER_PER_KEY_TIMING
diff --git a/keyboards/massdrop/alt/keymaps/jdelkins/keymap.c b/keyboards/massdrop/alt/keymaps/jdelkins/keymap.c
deleted file mode 100644
index 64a9f6f598..0000000000
--- a/keyboards/massdrop/alt/keymaps/jdelkins/keymap.c
+++ /dev/null
@@ -1,500 +0,0 @@
-/*
- Copyright 2020 Joel Elkins <joel@elkins.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 "jdelkins.h"
-#include "print.h"
-
-// Idle handling
-
-#define IDLE_TIMEOUT 360
-#define _LAYERS _RPT
-
-uint16_t rgb_idle_seconds = 0;
-uint16_t rgb_timer;
-uint8_t save_layer;
-
-// Macro keycodes
-
-enum alt_keycodes {
- U_T_AUTO = USER_SAFE_RANGE, //USB Extra Port Toggle Auto Detect / Always Active
- U_T_AGCR, //USB Toggle Automatic GCR control
- DBG_TOG, //DEBUG Toggle On / Off
- DBG_MTRX, //DEBUG Toggle Matrix Prints
- DBG_KBD, //DEBUG Toggle Keyboard Prints
- DBG_MOU, //DEBUG Toggle Mouse Prints
-};
-
-// Tap Dance
-
-int ctl_state = 0;
-
-void ctl_finished(tap_dance_state_t *state, void *user_data) {
- ctl_state = cur_dance(state);
- switch(ctl_state) {
- case SINGLE_TAP: leader_start(); break;
- case SINGLE_HOLD: register_code(KC_LCTL); break;
- case DOUBLE_TAP: tap_code(KC_RCTL); break;
- case DOUBLE_HOLD: register_code(KC_RCTL); break;
- case TRIPLE_TAP: tap_code(KC_RCTL); tap_code(KC_RCTL); break;
- case TRIPLE_HOLD: tap_code(KC_RCTL); register_code(KC_RCTL); break;
- }
-}
-
-void ctl_reset(tap_dance_state_t *state, void *user_data) {
- switch(ctl_state) {
- case SINGLE_HOLD: unregister_code(KC_LCTL); break;
- case DOUBLE_HOLD:
- case TRIPLE_HOLD: unregister_code(KC_RCTL); break;
- }
- ctl_state = 0;
-}
-
-void g_finished(tap_dance_state_t *state, void *user_data) {
- switch (cur_dance(state)) {
- case SINGLE_TAP:
- tap_code16(C(KC_END));
- break;
- case DOUBLE_TAP:
- tap_code16(C(KC_HOME));
- break;
- }
-}
-
-enum {
- TD_LDCTL,
- TD_GUI,
- TD_G,
-};
-
-tap_dance_action_t tap_dance_actions[] = {
- [TD_LDCTL] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, ctl_finished, ctl_reset),
- [TD_GUI] = ACTION_TAP_DANCE_DOUBLE(KC_LGUI, KC_RGUI),
- [TD_G] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, g_finished, NULL),
-};
-
-// Layers
-
-const uint16_t PROGMEM keymaps[_LAYER_MAX][MATRIX_ROWS][MATRIX_COLS] = {
- [_QWERTY] = LAYOUT(
- QK_GESC, 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_DEL,
- 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_HOME,
- MY_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_PGUP,
- 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_PGDN,
- TD(TD_LDCTL), TD(TD_GUI), KC_LALT, MY_SPC, KC_RALT, MO(_ADJUST),KC_LEFT, KC_DOWN, KC_RGHT
- ),
- [_GAME] = LAYOUT(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- KC_LCTL, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, KC_NO, _______, KC_SPC, _______, _______, _______, _______, _______
- ),
- [_FUNC] = LAYOUT(
- KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_INS,
- _______, _______, FW_WRD, KC_END, _______, _______, C(KC_INS),KC_PGUP, _______, _______, S(KC_INS),KC_SCRL, KC_PAUS, KC_CALC, KC_END,
- _______, KC_HOME, _______, KC_PGDN, _______, TD(TD_G), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, _______, _______, _______, _______,
- _______, _______, KC_DEL, _______, _______, BK_WRD, _______, _______, _______, _______, _______, _______, KC_PGUP, _______,
- _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_END
- ),
- [_LAYERS] = LAYOUT(
- KC_NO, TO(_QWERTY),TO(_GAME), KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
- KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
- KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
- KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
- KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, _______, KC_NO, KC_NO, KC_NO
- ),
- [_KP] = LAYOUT(
- _______, _______, _______, _______, _______, _______, _______, _______, KC_KP_ASTERISK, _______, _______, _______, _______, _______, _______,
- KC_NUM, KC_KP_7, KC_KP_8, KC_KP_9, _______, _______, _______, KC_KP_7, KC_KP_8, KC_KP_9, KC_KP_MINUS, _______, _______, _______, _______,
- _______, KC_KP_4, KC_KP_5, KC_KP_6, _______, _______, _______, KC_KP_4, KC_KP_5, KC_KP_6, KC_KP_PLUS, _______, _______, _______,
- _______, KC_KP_1, KC_KP_2, KC_KP_3, _______, _______, _______, KC_KP_1, KC_KP_2, KC_KP_3, KC_KP_SLASH, _______, _______, _______,
- _______, _______, _______, KC_KP_0, KC_KP_DOT, TG(_KP), _______, _______, _______
- ),
- [_SECRETS] = LAYOUT(
- KC_NO, KC_SEC1, KC_SEC2, KC_SEC3, KC_SEC4, KC_SEC5, KC_SEC6, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
- KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
- KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
- KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
- KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, _______, KC_NO, KC_NO, KC_NO
- ),
- [_ADJUST] = LAYOUT(
- KC_GRV, 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_F13, KC_INS,
- _______, RGB_SPD, RGB_VAI, RGB_SPI, RGB_HUI, RGB_SAI, _______, U_T_AUTO,U_T_AGCR,_______, KC_PSCR, KC_SCRL, KC_PAUS, KC_CALC, KC_END,
- _______, RGB_RMOD,RGB_VAD, RGB_MOD, RGB_HUD, RGB_SAD, _______, _______, TG(_KP), OSL(_LAYERS), OSL(_SECRETS), _______, _______, KC_MPLY,
- _______, RGB_TOG, KB_MAKE, KB_FLSH, KB_VRSN, KB_BOOT, NK_TOGG, DBG_TOG, _______, _______, _______, _______, KC_VOLU, KC_MUTE,
- _______, _______, _______, _______, _______, _______, KC_MPRV, KC_VOLD, KC_MNXT
- ),
- /*
- [X] = LAYOUT(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______
- ),
- */
-};
-
-#ifdef _______
-#undef _______
-#endif
-
-#define RGB_NULL 254, 254, 254
-#define RGB_IS_NULL(rgb) ((rgb).r == 254 && (rgb).g == 254 && (rgb).b == 254)
-
-#define DEFAULT_HSV 255, 255, 128
-#define R(COL) { RGB_ ## COL }
-#define _______ R(NULL)
-#define xxxxxxx R(BLACK)
-
-struct layer_rgb PROGMEM rgbs[_LAYER_MAX] = {
- [_QWERTY] = LAYOUT_hsv(LED_FLAG_ALL, RGB_MATRIX_CYCLE_ALL, DEFAULT_HSV),
- [_GAME] = LAYOUT_hsv(LED_FLAG_KEYLIGHT, RGB_MATRIX_SOLID_COLOR, DEFAULT_HSV),
- [_FUNC] = LAYOUT_rgb(LED_FLAG_KEYLIGHT, RGB_LINK_TO_LAYER(_QWERTY),
- R(BLUE), R(RED), R(RED), R(RED), R(RED), R(RED), R(RED), R(RED), R(RED), R(RED), R(RED), R(RED), R(RED), R(RED), R(BLUE),
- R(BLUE), _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, R(BLUE),
- R(BLUE), _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, R(BLUE),
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- R(BLUE), _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, R(BLUE),
- R(BLUE), _______, _______, _______, _______, _______, _______, _______, _______, _______, R(BLUE),
- R(BLUE), R(RED), R(RED), R(RED), R(RED), R(RED), R(RED), R(RED), R(RED), R(RED), R(RED), R(RED), R(RED), R(RED), R(BLUE)
- ),
- [_LAYERS] = LAYOUT_rgb(LED_FLAG_NONE, RGB_MATRIX_SOLID_COLOR,
- R(CYAN), R(CYAN), R(CYAN), R(CYAN), R(CYAN), R(CYAN), R(CYAN), R(CYAN), R(CYAN), R(CYAN), R(CYAN), R(CYAN), R(CYAN), R(CYAN), R(CYAN),
- R(CYAN), xxxxxxx, R(RED), R(GREEN), xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, R(CYAN),
- R(CYAN), xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, R(CYAN),
- xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx,
- R(CYAN), xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, R(CYAN),
- R(CYAN), xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, R(CYAN),
- R(CYAN), R(CYAN), R(CYAN), R(CYAN), R(CYAN), R(CYAN), R(CYAN), R(CYAN), R(CYAN), R(CYAN), R(CYAN), R(CYAN), R(CYAN), R(CYAN), R(CYAN)
- ),
- [_KP] = LAYOUT_rgb(LED_FLAG_NONE, RGB_MATRIX_SOLID_COLOR,
- xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx,
- xxxxxxx, R(GREEN), xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, R(YELLOW),xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx,
- xxxxxxx, xxxxxxx, R(WHITE), R(WHITE), R(WHITE), xxxxxxx, xxxxxxx, xxxxxxx, R(WHITE), R(WHITE), R(WHITE), R(YELLOW), xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx,
- xxxxxxx, R(WHITE), R(WHITE), R(WHITE), xxxxxxx, xxxxxxx, xxxxxxx, R(WHITE), R(WHITE), R(WHITE), R(YELLOW), xxxxxxx, xxxxxxx, xxxxxxx,
- xxxxxxx, xxxxxxx, R(WHITE), R(WHITE), R(WHITE), xxxxxxx, xxxxxxx, xxxxxxx, R(WHITE), R(WHITE), R(WHITE), R(YELLOW), xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx,
- xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, R(WHITE), R(YELLOW), R(GREEN), xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx,
- xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx
- ),
- [_SECRETS] = LAYOUT_rgb(LED_FLAG_NONE, RGB_MATRIX_SOLID_COLOR,
- xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx,
- xxxxxxx, xxxxxxx, R(GREEN), R(GREEN), R(GREEN), R(GREEN), R(GREEN), R(GREEN), xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx,
- xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx,
- xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx,
- xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx,
- xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx,
- xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx
- ),
- [_ADJUST] = LAYOUT_rgb(LED_FLAG_NONE, RGB_MATRIX_SOLID_COLOR,
- R(GREEN), R(GREEN), R(GREEN), R(GREEN), R(GREEN), R(GREEN), R(GREEN), R(GREEN), R(GREEN), R(GREEN), R(GREEN), R(GREEN), R(GREEN), R(GREEN), R(GREEN),
- R(GREEN), xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, R(GREEN),
- R(GREEN), xxxxxxx, R(BLUE), R(YELLOW), R(BLUE), R(GREEN), R(ORANGE),xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, R(GREEN),
- xxxxxxx, R(MAGENTA),R(YELLOW), R(MAGENTA),R(GREEN),R(ORANGE),xxxxxxx, xxxxxxx, R(CORAL), R(CORAL), R(CORAL), xxxxxxx, xxxxxxx, xxxxxxx,
- R(GREEN), xxxxxxx, R(WHITE), R(CYAN), R(CYAN), R(CYAN), R(CYAN), xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, R(GREEN),
- R(GREEN), xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, R(GREEN),
- R(GREEN), R(GREEN), R(GREEN), R(GREEN), R(GREEN), R(GREEN), R(GREEN), R(GREEN), R(GREEN), R(GREEN), R(GREEN), R(GREEN), R(GREEN), R(GREEN), R(GREEN)
- ),
- /*
- [X] = LAYOUT_rgb(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
- ),
- */
-};
-
-#undef _______
-#define _______ KC_TRANS
-
-static void set_rgb_layer(int layer) {
- const struct layer_rgb *cur = &rgbs[layer];
-
- switch (cur->type) {
- case type_hsv:
- for (uint8_t i = 0; i < RGB_MATRIX_LED_COUNT ; i++) {
- if (!(g_led_config.flags[i] & cur->flags))
- rgb_matrix_set_color(i, 0, 0, 0);
- }
- rgb_matrix_set_flags(cur->flags);
- if (cur->mode >= RGB_MATRIX_EFFECT_MAX)
- rgb_matrix_mode_noeeprom(rgbs[cur->mode - RGB_MATRIX_EFFECT_MAX].mode);
- else
- rgb_matrix_mode_noeeprom(cur->mode);
- rgb_matrix_sethsv_noeeprom(cur->hsv.h, cur->hsv.s, cur->hsv.v);
- break;
- case type_rgb:
- rgb_matrix_set_flags(cur->flags);
- if (cur->mode >= RGB_MATRIX_EFFECT_MAX)
- rgb_matrix_mode_noeeprom(rgbs[cur->mode - RGB_MATRIX_EFFECT_MAX].mode);
- else
- rgb_matrix_mode_noeeprom(cur->mode);
- for (uint8_t i = 0; i < RGB_MATRIX_LED_COUNT; i++) {
- const RGB *m = &cur->rgb[i];
- if (!RGB_IS_NULL(*m))
- rgb_matrix_set_color(i, m->r, m->g, m->b);
- }
- break;
- }
-}
-
-void leader_end_user(void) {
- if (leader_sequence_one_key(KC_K)) {
- layer_invert(_KP);
- }
- if (leader_sequence_one_key(KC_G)) {
- layer_invert(_GAME);
- }
- if (leader_sequence_one_key(KC_KP_5)) {
- layer_invert(_KP);
- }
- if (leader_sequence_two_keys(KC_SCLN, KC_1)) {
- send_secret_string(0);
- }
- if (leader_sequence_two_keys(KC_SCLN, KC_2)) {
- send_secret_string(1);
- }
- if (leader_sequence_two_keys(KC_SCLN, KC_3)) {
- send_secret_string(2);
- }
- if (leader_sequence_two_keys(KC_SCLN, KC_4)) {
- send_secret_string(3);
- }
- if (leader_sequence_two_keys(KC_SCLN, KC_5)) {
- send_secret_string(4);
- }
- if (leader_sequence_two_keys(KC_SCLN, KC_6)) {
- send_secret_string(5);
- }
- if (leader_sequence_two_keys(KC_SCLN, KC_M)) {
- send_secret_string(0);
- }
- if (leader_sequence_two_keys(KC_SCLN, KC_COMM)) {
- send_secret_string(1);
- }
- if (leader_sequence_two_keys(KC_SCLN, KC_DOT)) {
- send_secret_string(2);
- }
- if (leader_sequence_two_keys(KC_SCLN, KC_J)) {
- send_secret_string(3);
- }
- if (leader_sequence_two_keys(KC_SCLN, KC_K)) {
- send_secret_string(4);
- }
- if (leader_sequence_two_keys(KC_SCLN, KC_L)) {
- send_secret_string(5);
- }
-}
-
-// Runs just one time when the keyboard initializes.
-void matrix_init_keymap(void) {
- // force numlock on upon startup
- if (!NUMLOCK_ON) {
- tap_code(KC_NUM_LOCK);
- }
-};
-
-// Runs constantly in the background, in a loop.
-void matrix_scan_keymap(void) {
- if (rgb_matrix_get_flags() != LED_FLAG_NONE && timer_elapsed(rgb_timer) > 1000) {
- rgb_idle_seconds++;
- rgb_timer = timer_read();
- }
- if (rgb_idle_seconds > IDLE_TIMEOUT) {
- rgb_matrix_disable_noeeprom();
- rgb_idle_seconds = 0;
- }
- if (IS_LAYER_ON(_KP)) {
- if (NUMLOCK_ON)
- rgb_matrix_set_color(15, RGB_GOLD);
- else
- rgb_matrix_set_color(15, 0, 0, 0);
- }
-};
-
-layer_state_t layer_state_set_keymap(layer_state_t state) {
- dprintf("layer: %d\n", get_highest_layer(state));
- set_rgb_layer(get_highest_layer(state));
-#ifdef AUTO_SHIFT_ENABLE
- autoshift_enable();
-#endif
- if (layer_state_cmp(state, _GAME)) {
- save_layer = _GAME;
-#ifdef AUTO_SHIFT_ENABLE
- autoshift_disable();
-#endif
- }
- else if (layer_state_cmp(state, _QWERTY))
- save_layer = _QWERTY;
- return state;
-}
-
-bool process_record_keymap(uint16_t keycode, keyrecord_t *record) {
- struct layer_rgb *rgb_base_layer = &rgbs[save_layer];
-
- rgb_idle_seconds = 0;
- rgb_matrix_enable_noeeprom();
-
- switch (keycode) {
- // custom handle QK_GESC to emulate auto shift on it
- case QK_GRAVE_ESCAPE:
-#ifdef AUTO_SHIFT_ENABLE
- if (get_autoshift_state()) {
- static uint16_t gesc_timer;
- if (record->event.pressed)
- gesc_timer = timer_read();
- else {
- if (timer_elapsed(gesc_timer) > AUTO_SHIFT_TIMEOUT || MODS_SHIFT) {
- tap_code16(S(KC_GRV));
- } else if (MODS_GUI)
- tap_code(KC_GRV);
- else
- tap_code(KC_ESC);
- }
- return false;
- }
-#else // AUTO_SHIFT_ENABLE
- return true;
-#endif // AUTO_SHIFT_ENABLE
- break;
-
- case U_T_AUTO:
- if (record->event.pressed && MODS_SHIFT && MODS_CTRL) {
- TOGGLE_FLAG_AND_PRINT(usb_extra_manual, "USB extra port manual mode");
- }
- return false;
- case U_T_AGCR:
- if (record->event.pressed && MODS_SHIFT && MODS_CTRL) {
- TOGGLE_FLAG_AND_PRINT(usb_gcr_auto, "USB GCR auto mode");
- }
- return false;
- case DBG_TOG:
- if (record->event.pressed) {
- TOGGLE_FLAG_AND_PRINT(debug_enable, "Debug mode");
- }
- return false;
- case DBG_MTRX:
- if (record->event.pressed) {
- TOGGLE_FLAG_AND_PRINT(debug_matrix, "Debug matrix");
- }
- return false;
- case DBG_KBD:
- if (record->event.pressed) {
- TOGGLE_FLAG_AND_PRINT(debug_keyboard, "Debug keyboard");
- }
- return false;
- case DBG_MOU:
- if (record->event.pressed) {
- TOGGLE_FLAG_AND_PRINT(debug_mouse, "Debug mouse");
- }
- return false;
- case RGB_MOD:
- if (record->event.pressed) {
- if (++rgb_base_layer->mode >= RGB_MATRIX_EFFECT_MAX)
- rgb_base_layer->mode = RGB_MATRIX_NONE;
- set_rgb_layer(save_layer);
- }
- return false;
- case RGB_RMOD:
- if (record->event.pressed) {
- if (--rgb_base_layer->mode <= RGB_MATRIX_NONE)
- rgb_base_layer->mode = RGB_MATRIX_EFFECT_MAX - 1;
- set_rgb_layer(save_layer);
- }
- return false;
- case RGB_HUI:
- if (rgb_base_layer->type == type_hsv && record->event.pressed) {
- if (rgb_base_layer->hsv.h > 235)
- rgb_base_layer->hsv.h = 255;
- else
- rgb_base_layer->hsv.h += 20;
- }
- set_rgb_layer(save_layer);
- return false;
- case RGB_HUD:
- if (rgb_base_layer->type == type_hsv && record->event.pressed) {
- if (rgb_base_layer->hsv.h < 20)
- rgb_base_layer->hsv.h = 0;
- else
- rgb_base_layer->hsv.h -= 20;
- }
- set_rgb_layer(save_layer);
- return false;
- case RGB_SAI:
- if (rgb_base_layer->type == type_hsv && record->event.pressed) {
- if (rgb_base_layer->hsv.s > 235)
- rgb_base_layer->hsv.s = 255;
- else
- rgb_base_layer->hsv.s += 20;
- }
- set_rgb_layer(save_layer);
- return false;
- case RGB_SAD:
- if (rgb_base_layer->type == type_hsv && record->event.pressed) {
- if (rgb_base_layer->hsv.s < 20)
- rgb_base_layer->hsv.s = 0;
- else
- rgb_base_layer->hsv.s -= 20;
- }
- set_rgb_layer(save_layer);
- return false;
- case RGB_VAI:
- if (rgb_base_layer->type == type_hsv && record->event.pressed) {
- if (rgb_base_layer->hsv.v > 235)
- rgb_base_layer->hsv.v = 255;
- else
- rgb_base_layer->hsv.v += 20;
- }
- set_rgb_layer(save_layer);
- return false;
- case RGB_VAD:
- if (rgb_base_layer->type == type_hsv && record->event.pressed) {
- if (rgb_base_layer->hsv.v < 20)
- rgb_base_layer->hsv.v = 0;
- else
- rgb_base_layer->hsv.v -= 20;
- }
- set_rgb_layer(save_layer);
- return false;
- case RGB_TOG:
- if (record->event.pressed) {
- switch (rgb_base_layer->flags) {
- case LED_FLAG_ALL:
- rgb_base_layer->flags = LED_FLAG_KEYLIGHT;
- break;
- case LED_FLAG_KEYLIGHT:
- rgb_base_layer->flags = LED_FLAG_UNDERGLOW;
- break;
- case LED_FLAG_UNDERGLOW:
- rgb_base_layer->flags = LED_FLAG_NONE;
- break;
- default:
- rgb_base_layer->flags = LED_FLAG_ALL;
- break;
- }
- }
- set_rgb_layer(save_layer);
- return false;
- default:
- return true; //Process all other keycodes normally
- }
- return true;
-}
diff --git a/keyboards/massdrop/alt/keymaps/jdelkins/rgb_matrix.h b/keyboards/massdrop/alt/keymaps/jdelkins/rgb_matrix.h
deleted file mode 100644
index 146de00447..0000000000
--- a/keyboards/massdrop/alt/keymaps/jdelkins/rgb_matrix.h
+++ /dev/null
@@ -1,94 +0,0 @@
-/*
- Copyright 2020 Joel Elkins <joel@elkins.com>
-
- This program is free software: you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>.
-*/
-
-#pragma once
-
-/* RGB LED Layout on the Massdrop ALT
- *
- * ┌────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
- * │ │
- * │ 100 99 98 97 96 95 94 93 92 91 90 89 88 │
- * │ 101 87 |
- * │ ┌───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┬────────────┬───────┐ │
- * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
- * │ │ ` │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │ BackSpace │ Home │ │
- * │ │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 10 │ 11 │ 12 │ 13 │ 14 │ 15 │ │
- * │ 102 ├───────┴──┬────┴──┬────┴──┬────┴──┬────┴──┬────┴──┬────┴──┬────┴──┬────┴──┬────┴──┬────┴──┬────┴──┬────┴──┬─────────┼───────┤ 86 │
- * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
- * │ │ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │ \ │ Del │ │
- * │ │ 16 │ 17 │ 18 │ 19 │ 20 │ 21 │ 22 │ 23 │ 24 │ 25 │ 26 │ 27 │ 28 │ 29 │ 30 │ │
- * │ 103 ├──────────┴─┬─────┴─┬─────┴─┬─────┴─┬─────┴─┬─────┴─┬─────┴─┬─────┴─┬─────┴─┬─────┴─┬─────┴─┬─────┴─┬─────┴─────────┼───────┤ 85 │
- * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
- * │ │ Ctrl/Esc │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ Return │ PgUp │ │
- * │ │ 31 │ 32 │ 33 │ 34 │ 35 │ 36 │ 37 │ 38 │ 39 │ 40 │ 41 │ 42 │ 43 │ 44 │ │
- * │ 104 ├────────────┴──┬────┴──┬────┴──┬────┴──┬────┴──┬────┴──┬────┴──┬────┴──┬────┴──┬────┴──┬────┴──┬────┴───────┬───────┼───────┤ 84 │
- * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
- * │ │ Shift │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │ Shift │ Up │ PgDn │ │
- * │ │ 45 │ 46 │ 47 │ 48 │ 49 │ 50 │ 51 │ 52 │ 53 │ 54 │ 55 │ 56 │ 57 │ 58 │ │
- * │ 105 ├─────────┬─────┴───┬───┴─────┬─┴───────┴───────┴───────┴───────┴───────┴─────┬─┴───────┼───────┴─┬──┬───────┼───────┼───────┤ 83 │
- * │ │ │ │ │ │ │ │▒▒│ │ │ │ │
- * │ │ Ctrl │ GUI │ Alt │ Space │ Alt │ Func │▒▒│ Left │ Down │ Right │ │
- * │ │ 59 │ 60 │ 61 │ 62 │ 63 │ 64 │▒▒│ 65 │ 66 │ 67 │ │
- * │ └─────────┴─────────┴─────────┴───────────────────────────────────────────────┴─────────┴─────────┴──┴───────┴───────┴───────┘ │
- * │ 68 82 │
- * │ 69 70 71 72 73 74 75 76 77 78 79 80 81 │
- * │ │
- * └────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
- */
-
-enum layer_rgb_type {
- type_hsv,
- type_rgb,
-};
-
-#define RGB_LINK_TO_LAYER(layer) (layer + RGB_MATRIX_EFFECT_MAX)
-
-struct layer_rgb {
- uint8_t type;
- led_flags_t flags;
- uint8_t mode;
- union {
- HSV hsv;
- RGB rgb[RGB_MATRIX_LED_COUNT];
- };
-};
-
-#define LAYOUT_rgb(_flags, _mode, \
- R101, R100, R99, R98, R97, R96, R95, R94, R93, R92, R91, R90, R89, R88, R87, \
- R102, R1, R2, R3, R4, R5, R6, R7, R8, R9, R10, R11, R12, R13, R14, R15, R86, \
- R103, R16, R17, R18, R19, R20, R21, R22, R23, R24, R25, R26, R27, R28, R29, R30, R85, \
- R31, R32, R33, R34, R35, R36, R37, R38, R39, R40, R41, R42, R43, R44, \
- R104, R45, R46, R47, R48, R49, R50, R51, R52, R53, R54, R55, R56, R57, R58, R84, \
- R105, R59, R60, R61, R62, R63, R64, R65, R66, R67, R83, \
- R68, R69, R70, R71, R72, R73, R74, R75, R76, R77, R78, R79, R80, R81, R82 \
- ) (struct layer_rgb) { .type = type_rgb, .flags = _flags, .mode = _mode, .rgb = { \
- R1, R2, R3, R4, R5, R6, R7, R8, R9, R10, R11, R12, R13, R14, R15, R16, R17, R18, R19, R20, R21, \
- R22, R23, R24, R25, R26, R27, R28, R29, R30, R31, R32, R33, R34, R35, R36, R37, R38, R39, R40, \
- R41, R42, R43, R44, R45, R46, R47, R48, R49, R50, R51, R52, R53, R54, R55, R56, R57, R58, R59, \
- R60, R61, R62, R63, R64, R65, R66, R67, R68, R69, R70, R71, R72, R73, R74, R75, R76, R77, R78, \
- R79, R80, R81, R82, R83, R84, R85, R86, R87, R88, R89, R90, R91, R92, R93, R94, R95, R96, R97, \
- R98, R99, R100, R101, R102, R103, R104, R105 \
- }}
-
-#define LAYOUT_hsv(_flags, _mode, _hsv) \
- (struct layer_rgb) { \
- .type = type_hsv, \
- .flags = _flags, \
- .mode = _mode, \
- .hsv = {_hsv} \
- }
-
diff --git a/keyboards/massdrop/alt/keymaps/jdelkins/rules.mk b/keyboards/massdrop/alt/keymaps/jdelkins/rules.mk
deleted file mode 100644
index 17d80b8ca2..0000000000
--- a/keyboards/massdrop/alt/keymaps/jdelkins/rules.mk
+++ /dev/null
@@ -1,17 +0,0 @@
-ifeq ($(OS),Windows_NT)
- PROGRAM_CMD = bin/mdloader_windows --first --download $(TARGET).hex --restart
-else
- UNAME_S := $(shell uname -s)
- ifeq ($(UNAME_S),Darwin)
- PROGRAM_CMD = bin/mdloader_mac --first --download $(TARGET).hex --restart
- else
- PROGRAM_CMD = sudo bin/mdloader_linux --first --download $(TARGET).hex --restart
- endif
-endif
-
-LEADER_ENABLE = yes
-MOUSEKEY_ENABLE = no
-CONSOLE_ENABLE = no
-NKRO_ENABLE = no
-TAP_DANCE_ENABLE = yes
-AUTO_SHIFT_ENABLE = no
diff --git a/keyboards/massdrop/alt/keymaps/jdelkins_ss/config.h b/keyboards/massdrop/alt/keymaps/jdelkins_ss/config.h
deleted file mode 100644
index 20efebec16..0000000000
--- a/keyboards/massdrop/alt/keymaps/jdelkins_ss/config.h
+++ /dev/null
@@ -1,20 +0,0 @@
-/*
- Copyright 2020 Joel Elkins <joel@elkins.com>
-
- This program is free software: you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>.
-*/
-
-#pragma once
-
-#define RGB_MATRIX_DEFAULT_SPD 20
diff --git a/keyboards/massdrop/alt/keymaps/jdelkins_ss/keymap.c b/keyboards/massdrop/alt/keymaps/jdelkins_ss/keymap.c
deleted file mode 100644
index c974fb9e2b..0000000000
--- a/keyboards/massdrop/alt/keymaps/jdelkins_ss/keymap.c
+++ /dev/null
@@ -1,279 +0,0 @@
-/*
- Copyright 2020 Joel Elkins <joel@elkins.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 QMK_KEYBOARD_H
-
-#include "print.h"
-
-// Idle handling
-
-#define IDLE_TIMEOUT 360
-uint16_t rgb_idle_seconds = 0;
-uint16_t rgb_timer;
-uint8_t save_layer;
-
-#define MODS_SHIFT (get_mods() & MOD_MASK_SHIFT)
-#define MODS_CTRL (get_mods() & MOD_MASK_CTRL)
-
-// Macro keycodes
-
-enum alt_keycodes {
- KB_BOOT = SAFE_RANGE,
-};
-
-enum layers {
- _QWERTY,
- _ADJUST,
-};
-
-// Layers
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [_QWERTY] = LAYOUT(
- QK_GESC, 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_DEL,
- 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_HOME,
- KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGUP,
- 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_PGDN,
- KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_RALT, MO(_ADJUST),KC_LEFT, KC_DOWN, KC_RGHT
- ),
- [_ADJUST] = LAYOUT(
- KC_GRV, 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_F13, KC_INS,
- _______, RGB_SPD, RGB_VAI, RGB_SPI, RGB_HUI, RGB_SAI, _______, _______, _______, _______, KC_PSCR, KC_SCRL, KC_PAUS, KC_CALC, KC_END,
- _______, RGB_RMOD,RGB_VAD, RGB_MOD, RGB_HUD, RGB_SAD, _______, _______, _______, _______, _______, _______, _______, KC_MPLY,
- _______, RGB_TOG, _______, _______, _______, KB_BOOT, _______, _______, _______, _______, _______, _______, KC_VOLU, KC_MUTE,
- _______, _______, _______, _______, _______, _______, KC_MPRV, KC_VOLD, KC_MNXT
- ),
- /*
- [X] = LAYOUT(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______
- ),
- */
-};
-
-#ifdef _______
-#undef _______
-#endif
-
-#define RGB_NULL 254, 254, 254
-#define RGB_IS_NULL(rgb) ((rgb).r == 254 && (rgb).g == 254 && (rgb).b == 254)
-
-#define DEFAULT_HSV 255, 255, 128
-#define R(COL) { RGB_ ## COL }
-#define _______ R(NULL)
-#define xxxxxxx R(BLACK)
-
-struct layer_rgb PROGMEM rgbs[] = {
- [_QWERTY] = LAYOUT_hsv(LED_FLAG_ALL, RGB_MATRIX_CYCLE_ALL, DEFAULT_HSV),
- [_ADJUST] = LAYOUT_rgb(LED_FLAG_NONE, RGB_MATRIX_SOLID_COLOR,
- R(GREEN), R(GREEN), R(GREEN), R(GREEN), R(GREEN), R(GREEN), R(GREEN), R(GREEN), R(GREEN), R(GREEN), R(GREEN), R(GREEN), R(GREEN), R(GREEN), R(GREEN),
- R(GREEN), R(WHITE), R(WHITE), R(WHITE), R(WHITE), R(WHITE), R(WHITE), R(WHITE), R(WHITE), R(WHITE), R(WHITE), R(WHITE), R(WHITE), R(WHITE), R(WHITE), R(WHITE), R(GREEN),
- R(GREEN), xxxxxxx, R(BLUE), R(YELLOW), R(BLUE), R(GREEN), R(ORANGE),xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, R(GREEN),
- xxxxxxx, R(MAGENTA),R(YELLOW), R(MAGENTA),R(GREEN),R(ORANGE),xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, R(BLUE),
- R(GREEN), xxxxxxx, R(WHITE), xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, R(YELLOW),R(ORANGE), R(GREEN),
- R(GREEN), xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, R(RED), R(YELLOW),R(RED), R(GREEN),
- R(GREEN), R(GREEN), R(GREEN), R(GREEN), R(GREEN), R(GREEN), R(GREEN), R(GREEN), R(GREEN), R(GREEN), R(GREEN), R(GREEN), R(GREEN), R(GREEN), R(GREEN)
- ),
- /*
- [X] = LAYOUT_rgb(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
- ),
- */
-};
-
-#undef _______
-#define _______ KC_TRANS
-
-static void set_rgb_layer(int layer) {
- const struct layer_rgb *cur = &rgbs[layer];
-
- switch (cur->type) {
- case type_hsv:
- for (uint8_t i = 0; i < RGB_MATRIX_LED_COUNT ; i++) {
- if (!(g_led_config.flags[i] & cur->flags))
- rgb_matrix_set_color(i, 0, 0, 0);
- }
- rgb_matrix_set_flags(cur->flags);
- if (cur->mode >= RGB_MATRIX_EFFECT_MAX)
- rgb_matrix_mode_noeeprom(rgbs[cur->mode - RGB_MATRIX_EFFECT_MAX].mode);
- else
- rgb_matrix_mode_noeeprom(cur->mode);
- rgb_matrix_sethsv_noeeprom(cur->hsv.h, cur->hsv.s, cur->hsv.v);
- break;
- case type_rgb:
- rgb_matrix_set_flags(cur->flags);
- if (cur->mode >= RGB_MATRIX_EFFECT_MAX)
- rgb_matrix_mode_noeeprom(rgbs[cur->mode - RGB_MATRIX_EFFECT_MAX].mode);
- else
- rgb_matrix_mode_noeeprom(cur->mode);
- for (uint8_t i = 0; i < RGB_MATRIX_LED_COUNT; i++) {
- const RGB *m = &cur->rgb[i];
- if (!RGB_IS_NULL(*m))
- rgb_matrix_set_color(i, m->r, m->g, m->b);
- }
- break;
- }
-}
-
-// Runs just one time when the keyboard initializes.
-void matrix_init_keymap(void) {
- set_rgb_layer(_QWERTY);
- // force numlock on upon startup
- if (!host_keyboard_led_state().num_lock) {
- tap_code(KC_NUM_LOCK);
- }
-};
-
-// Runs constantly in the background, in a loop.
-void matrix_scan_keymap(void) {
- if (rgb_matrix_get_flags() != LED_FLAG_NONE && timer_elapsed(rgb_timer) > 1000) {
- rgb_idle_seconds++;
- rgb_timer = timer_read();
- }
- if (rgb_idle_seconds > IDLE_TIMEOUT) {
- rgb_matrix_disable_noeeprom();
- rgb_idle_seconds = 0;
- }
-};
-
-layer_state_t layer_state_set_keymap(layer_state_t state) {
- set_rgb_layer(get_highest_layer(state));
- if (layer_state_cmp(state, _QWERTY))
- save_layer = _QWERTY;
- return state;
-}
-
-bool process_record_keymap(uint16_t keycode, keyrecord_t *record) {
- static uint32_t boot_timer;
- struct layer_rgb *rgb_base_layer = &rgbs[save_layer];
- rgb_idle_seconds = 0;
- rgb_matrix_enable_noeeprom();
-
- switch (keycode) {
- case KB_BOOT:
- if (!get_mods()) {
- if (record->event.pressed) {
- boot_timer = timer_read32();
- } else {
- if (timer_elapsed32(boot_timer) >= 750) {
- reset_keyboard();
- }
- }
- return false;
- }
- break;
- case RGB_MOD:
- if (record->event.pressed) {
- if (++rgb_base_layer->mode >= RGB_MATRIX_EFFECT_MAX)
- rgb_base_layer->mode = RGB_MATRIX_NONE;
- set_rgb_layer(save_layer);
- }
- return false;
- case RGB_RMOD:
- if (record->event.pressed) {
- if (--rgb_base_layer->mode <= RGB_MATRIX_NONE)
- rgb_base_layer->mode = RGB_MATRIX_EFFECT_MAX - 1;
- set_rgb_layer(save_layer);
- }
- return false;
- case RGB_HUI:
- if (rgb_base_layer->type == type_hsv && record->event.pressed) {
- if (rgb_base_layer->hsv.h > 235)
- rgb_base_layer->hsv.h = 255;
- else
- rgb_base_layer->hsv.h += 20;
- }
- set_rgb_layer(save_layer);
- return false;
- case RGB_HUD:
- if (rgb_base_layer->type == type_hsv && record->event.pressed) {
- if (rgb_base_layer->hsv.h < 20)
- rgb_base_layer->hsv.h = 0;
- else
- rgb_base_layer->hsv.h -= 20;
- }
- set_rgb_layer(save_layer);
- return false;
- case RGB_SAI:
- if (rgb_base_layer->type == type_hsv && record->event.pressed) {
- if (rgb_base_layer->hsv.s > 235)
- rgb_base_layer->hsv.s = 255;
- else
- rgb_base_layer->hsv.s += 20;
- }
- set_rgb_layer(save_layer);
- return false;
- case RGB_SAD:
- if (rgb_base_layer->type == type_hsv && record->event.pressed) {
- if (rgb_base_layer->hsv.s < 20)
- rgb_base_layer->hsv.s = 0;
- else
- rgb_base_layer->hsv.s -= 20;
- }
- set_rgb_layer(save_layer);
- return false;
- case RGB_VAI:
- if (rgb_base_layer->type == type_hsv && record->event.pressed) {
- if (rgb_base_layer->hsv.v > 235)
- rgb_base_layer->hsv.v = 255;
- else
- rgb_base_layer->hsv.v += 20;
- }
- set_rgb_layer(save_layer);
- return false;
- case RGB_VAD:
- if (rgb_base_layer->type == type_hsv && record->event.pressed) {
- if (rgb_base_layer->hsv.v < 20)
- rgb_base_layer->hsv.v = 0;
- else
- rgb_base_layer->hsv.v -= 20;
- }
- set_rgb_layer(save_layer);
- return false;
- case RGB_TOG:
- if (record->event.pressed) {
- switch (rgb_base_layer->flags) {
- case LED_FLAG_ALL:
- rgb_base_layer->flags = LED_FLAG_KEYLIGHT;
- break;
- case LED_FLAG_KEYLIGHT:
- rgb_base_layer->flags = LED_FLAG_UNDERGLOW;
- break;
- case LED_FLAG_UNDERGLOW:
- rgb_base_layer->flags = LED_FLAG_NONE;
- break;
- default:
- rgb_base_layer->flags = LED_FLAG_ALL;
- break;
- }
- }
- set_rgb_layer(save_layer);
- return false;
- default:
- return true; //Process all other keycodes normally
- }
- return true;
-}
diff --git a/keyboards/massdrop/alt/keymaps/jdelkins_ss/rgb_matrix.h b/keyboards/massdrop/alt/keymaps/jdelkins_ss/rgb_matrix.h
deleted file mode 100644
index 146de00447..0000000000
--- a/keyboards/massdrop/alt/keymaps/jdelkins_ss/rgb_matrix.h
+++ /dev/null
@@ -1,94 +0,0 @@
-/*
- Copyright 2020 Joel Elkins <joel@elkins.com>
-
- This program is free software: you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>.
-*/
-
-#pragma once
-
-/* RGB LED Layout on the Massdrop ALT
- *
- * ┌────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
- * │ │
- * │ 100 99 98 97 96 95 94 93 92 91 90 89 88 │
- * │ 101 87 |
- * │ ┌───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┬────────────┬───────┐ │
- * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
- * │ │ ` │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │ BackSpace │ Home │ │
- * │ │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 10 │ 11 │ 12 │ 13 │ 14 │ 15 │ │
- * │ 102 ├───────┴──┬────┴──┬────┴──┬────┴──┬────┴──┬────┴──┬────┴──┬────┴──┬────┴──┬────┴──┬────┴──┬────┴──┬────┴──┬─────────┼───────┤ 86 │
- * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
- * │ │ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │ \ │ Del │ │
- * │ │ 16 │ 17 │ 18 │ 19 │ 20 │ 21 │ 22 │ 23 │ 24 │ 25 │ 26 │ 27 │ 28 │ 29 │ 30 │ │
- * │ 103 ├──────────┴─┬─────┴─┬─────┴─┬─────┴─┬─────┴─┬─────┴─┬─────┴─┬─────┴─┬─────┴─┬─────┴─┬─────┴─┬─────┴─┬─────┴─────────┼───────┤ 85 │
- * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
- * │ │ Ctrl/Esc │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ Return │ PgUp │ │
- * │ │ 31 │ 32 │ 33 │ 34 │ 35 │ 36 │ 37 │ 38 │ 39 │ 40 │ 41 │ 42 │ 43 │ 44 │ │
- * │ 104 ├────────────┴──┬────┴──┬────┴──┬────┴──┬────┴──┬────┴──┬────┴──┬────┴──┬────┴──┬────┴──┬────┴──┬────┴───────┬───────┼───────┤ 84 │
- * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
- * │ │ Shift │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │ Shift │ Up │ PgDn │ │
- * │ │ 45 │ 46 │ 47 │ 48 │ 49 │ 50 │ 51 │ 52 │ 53 │ 54 │ 55 │ 56 │ 57 │ 58 │ │
- * │ 105 ├─────────┬─────┴───┬───┴─────┬─┴───────┴───────┴───────┴───────┴───────┴─────┬─┴───────┼───────┴─┬──┬───────┼───────┼───────┤ 83 │
- * │ │ │ │ │ │ │ │▒▒│ │ │ │ │
- * │ │ Ctrl │ GUI │ Alt │ Space │ Alt │ Func │▒▒│ Left │ Down │ Right │ │
- * │ │ 59 │ 60 │ 61 │ 62 │ 63 │ 64 │▒▒│ 65 │ 66 │ 67 │ │
- * │ └─────────┴─────────┴─────────┴───────────────────────────────────────────────┴─────────┴─────────┴──┴───────┴───────┴───────┘ │
- * │ 68 82 │
- * │ 69 70 71 72 73 74 75 76 77 78 79 80 81 │
- * │ │
- * └────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
- */
-
-enum layer_rgb_type {
- type_hsv,
- type_rgb,
-};
-
-#define RGB_LINK_TO_LAYER(layer) (layer + RGB_MATRIX_EFFECT_MAX)
-
-struct layer_rgb {
- uint8_t type;
- led_flags_t flags;
- uint8_t mode;
- union {
- HSV hsv;
- RGB rgb[RGB_MATRIX_LED_COUNT];
- };
-};
-
-#define LAYOUT_rgb(_flags, _mode, \
- R101, R100, R99, R98, R97, R96, R95, R94, R93, R92, R91, R90, R89, R88, R87, \
- R102, R1, R2, R3, R4, R5, R6, R7, R8, R9, R10, R11, R12, R13, R14, R15, R86, \
- R103, R16, R17, R18, R19, R20, R21, R22, R23, R24, R25, R26, R27, R28, R29, R30, R85, \
- R31, R32, R33, R34, R35, R36, R37, R38, R39, R40, R41, R42, R43, R44, \
- R104, R45, R46, R47, R48, R49, R50, R51, R52, R53, R54, R55, R56, R57, R58, R84, \
- R105, R59, R60, R61, R62, R63, R64, R65, R66, R67, R83, \
- R68, R69, R70, R71, R72, R73, R74, R75, R76, R77, R78, R79, R80, R81, R82 \
- ) (struct layer_rgb) { .type = type_rgb, .flags = _flags, .mode = _mode, .rgb = { \
- R1, R2, R3, R4, R5, R6, R7, R8, R9, R10, R11, R12, R13, R14, R15, R16, R17, R18, R19, R20, R21, \
- R22, R23, R24, R25, R26, R27, R28, R29, R30, R31, R32, R33, R34, R35, R36, R37, R38, R39, R40, \
- R41, R42, R43, R44, R45, R46, R47, R48, R49, R50, R51, R52, R53, R54, R55, R56, R57, R58, R59, \
- R60, R61, R62, R63, R64, R65, R66, R67, R68, R69, R70, R71, R72, R73, R74, R75, R76, R77, R78, \
- R79, R80, R81, R82, R83, R84, R85, R86, R87, R88, R89, R90, R91, R92, R93, R94, R95, R96, R97, \
- R98, R99, R100, R101, R102, R103, R104, R105 \
- }}
-
-#define LAYOUT_hsv(_flags, _mode, _hsv) \
- (struct layer_rgb) { \
- .type = type_hsv, \
- .flags = _flags, \
- .mode = _mode, \
- .hsv = {_hsv} \
- }
-
diff --git a/keyboards/massdrop/alt/keymaps/jdelkins_ss/rules.mk b/keyboards/massdrop/alt/keymaps/jdelkins_ss/rules.mk
deleted file mode 100644
index e7fb783e61..0000000000
--- a/keyboards/massdrop/alt/keymaps/jdelkins_ss/rules.mk
+++ /dev/null
@@ -1,12 +0,0 @@
-ifeq ($(OS),Windows_NT)
- PROGRAM_CMD = bin/mdloader_windows --first --download $(TARGET).hex --restart
-else
- UNAME_S := $(shell uname -s)
- ifeq ($(UNAME_S),Darwin)
- PROGRAM_CMD = bin/mdloader_mac --first --download $(TARGET).hex --restart
- else
- PROGRAM_CMD = sudo bin/mdloader_linux --first --download $(TARGET).hex --restart
- endif
-endif
-
-USER_NAME := jdelkins
diff --git a/keyboards/massdrop/alt/keymaps/xulkal/config.h b/keyboards/massdrop/alt/keymaps/xulkal/config.h
deleted file mode 100644
index a078fece0f..0000000000
--- a/keyboards/massdrop/alt/keymaps/xulkal/config.h
+++ /dev/null
@@ -1,23 +0,0 @@
-/*
-This is the c configuration file for the keymap
-
-Copyright 2012 Jun Wako <wakojun@gmail.com>
-Copyright 2015 Jack Humbert
-
-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 RGB_MATRIX_TOG_LAYERS
diff --git a/keyboards/massdrop/alt/keymaps/xulkal/keymap.c b/keyboards/massdrop/alt/keymaps/xulkal/keymap.c
deleted file mode 100644
index 17fc65cbfc..0000000000
--- a/keyboards/massdrop/alt/keymaps/xulkal/keymap.c
+++ /dev/null
@@ -1,79 +0,0 @@
-#include QMK_KEYBOARD_H
-#include "xulkal.h"
-
-enum ctrl_keycodes {
- U_T_AUTO = SAFE_RANGE, //USB Extra Port Toggle Auto Detect / Always Active
- U_T_AGCR, //USB Toggle Automatic GCR control
- DBG_TOG, //DEBUG Toggle On / Off
- DBG_MTRX, //DEBUG Toggle Matrix Prints
- DBG_KBD, //DEBUG Toggle Keyboard Prints
- DBG_MOU, //DEBUG Toggle Mouse Prints
-};
-
-#define TG_NKRO MAGIC_TOGGLE_NKRO //Toggle 6KRO / NKRO mode
-
-#define EXPAND_LAYOUT(...) LAYOUT(__VA_ARGS__)
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [_QWERTY] = LAYOUT(
- QK_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, TD_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_END,
- KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGUP,
- SC_LSPO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, TD_COMM, KC_DOT, KC_SLSH, SC_RSPC, KC_UP, KC_PGDN,
- SC_LCPO, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, LOWER, KC_LEFT, KC_DOWN, KC_RGHT
- ),
-
-#ifndef GAMELAYER_DISABLE
- [_GAME] = LAYOUT(
- QK_GESC, 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_END,
- KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGUP,
- 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_PGDN,
- KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, LOWER, KC_LEFT, KC_DOWN, KC_RGHT
- ),
-#endif
-
- [_LOWER] = LAYOUT(
- _______, RGB_RMOD,RGB_MOD, RGB_TOG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- RGB_SPI, RGB_SAI, RGB_VAI, RGB_HUI, QK_BOOT, QWERTY, _______, U_T_AUTO,U_T_AGCR,_______, _______, _______, _______, _______, _______,
- RGB_SPD, RGB_SAD, RGB_VAD, RGB_HUD, RGBRST, GAME, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, TG_NKRO, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______
- )
-};
-
-#define MODS_SHIFT (get_mods() & MOD_BIT(KC_LSFT) || get_mods() & MOD_BIT(KC_RSFT))
-#define MODS_CTRL (get_mods() & MOD_BIT(KC_LCTL) || get_mods() & MOD_BIT(KC_RCTL))
-#define MODS_ALT (get_mods() & MOD_BIT(KC_LALT) || get_mods() & MOD_BIT(KC_RALT))
-
-bool process_record_keymap(uint16_t keycode, keyrecord_t *record)
-{
- switch (keycode) {
- case U_T_AUTO:
- if (record->event.pressed && MODS_SHIFT && MODS_CTRL)
- TOGGLE_FLAG_AND_PRINT(usb_extra_manual, "USB extra port manual mode");
- return false;
- case U_T_AGCR:
- if (record->event.pressed && MODS_SHIFT && MODS_CTRL)
- TOGGLE_FLAG_AND_PRINT(usb_gcr_auto, "USB GCR auto mode");
- return false;
- case DBG_TOG:
- if (record->event.pressed)
- TOGGLE_FLAG_AND_PRINT(debug_enable, "Debug mode");
- return false;
- case DBG_MTRX:
- if (record->event.pressed)
- TOGGLE_FLAG_AND_PRINT(debug_matrix, "Debug matrix");
- return false;
- case DBG_KBD:
- if (record->event.pressed)
- TOGGLE_FLAG_AND_PRINT(debug_keyboard, "Debug keyboard");
- return false;
- case DBG_MOU:
- if (record->event.pressed)
- TOGGLE_FLAG_AND_PRINT(debug_mouse, "Debug mouse");
- return false;
- }
-
- return true;
-}
diff --git a/keyboards/massdrop/alt/keymaps/xulkal/rules.mk b/keyboards/massdrop/alt/keymaps/xulkal/rules.mk
deleted file mode 100644
index f78fb3237b..0000000000
--- a/keyboards/massdrop/alt/keymaps/xulkal/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-DISABLE_LTO = yes
diff --git a/keyboards/massdrop/ctrl/keymaps/xulkal/config.h b/keyboards/massdrop/ctrl/keymaps/xulkal/config.h
deleted file mode 100644
index a078fece0f..0000000000
--- a/keyboards/massdrop/ctrl/keymaps/xulkal/config.h
+++ /dev/null
@@ -1,23 +0,0 @@
-/*
-This is the c configuration file for the keymap
-
-Copyright 2012 Jun Wako <wakojun@gmail.com>
-Copyright 2015 Jack Humbert
-
-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 RGB_MATRIX_TOG_LAYERS
diff --git a/keyboards/massdrop/ctrl/keymaps/xulkal/keymap.c b/keyboards/massdrop/ctrl/keymaps/xulkal/keymap.c
deleted file mode 100644
index 660b76e2a8..0000000000
--- a/keyboards/massdrop/ctrl/keymaps/xulkal/keymap.c
+++ /dev/null
@@ -1,92 +0,0 @@
-#include QMK_KEYBOARD_H
-#include "xulkal.h"
-
-enum ctrl_keycodes {
- U_T_AUTO = SAFE_RANGE, //USB Extra Port Toggle Auto Detect / Always Active
- U_T_AGCR, //USB Toggle Automatic GCR control
- DBG_TOG, //DEBUG Toggle On / Off
- DBG_MTRX, //DEBUG Toggle Matrix Prints
- DBG_KBD, //DEBUG Toggle Keyboard Prints
- DBG_MOU, //DEBUG Toggle Mouse Prints
-};
-
-#define TG_NKRO MAGIC_TOGGLE_NKRO //Toggle 6KRO / NKRO mode
-
-#define EXPAND_LAYOUT(...) LAYOUT(__VA_ARGS__)
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [_QWERTY] = LAYOUT(
- QK_GESC, 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, TD_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, TD_DEL, KC_END, KC_PGDN,
- KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
- SC_LSPO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, TD_COMM, KC_DOT, KC_SLSH, SC_RSPC, KC_UP,
- SC_LCPO, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, LOWER, KC_APP, SC_RCPC, KC_LEFT, KC_DOWN, KC_RGHT
- ),
-
-#ifndef GAMELAYER_DISABLE
- [_GAME] = 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_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,
- KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
- KC_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, LOWER, KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
- ),
-#endif
-
- [_LOWER] = LAYOUT(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MUTE, _______, _______,
- _______, RGB_RMOD,RGB_MOD, RGB_TOG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MPLY, KC_MSTP, KC_VOLU,
- RGB_SPI, RGB_SAI, RGB_VAI, RGB_HUI, QK_BOOT, QWERTY, _______, U_T_AUTO,U_T_AGCR,_______, _______, _______, _______, _______, KC_MPRV, KC_MNXT, KC_VOLD,
- RGB_SPD, RGB_SAD, RGB_VAD, RGB_HUD, RGBRST, GAME, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, TG_NKRO, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
- ),
- /*
- [X] = LAYOUT(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, TG_NKRO, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
- ),
- */
-};
-
-#define MODS_SHIFT (get_mods() & MOD_BIT(KC_LSFT) || get_mods() & MOD_BIT(KC_RSFT))
-#define MODS_CTRL (get_mods() & MOD_BIT(KC_LCTL) || get_mods() & MOD_BIT(KC_RCTL))
-#define MODS_ALT (get_mods() & MOD_BIT(KC_LALT) || get_mods() & MOD_BIT(KC_RALT))
-
-bool process_record_keymap(uint16_t keycode, keyrecord_t *record)
-{
- switch (keycode) {
- case U_T_AUTO:
- if (record->event.pressed && MODS_SHIFT && MODS_CTRL)
- TOGGLE_FLAG_AND_PRINT(usb_extra_manual, "USB extra port manual mode");
- return false;
- case U_T_AGCR:
- if (record->event.pressed && MODS_SHIFT && MODS_CTRL)
- TOGGLE_FLAG_AND_PRINT(usb_gcr_auto, "USB GCR auto mode");
- return false;
- case DBG_TOG:
- if (record->event.pressed)
- TOGGLE_FLAG_AND_PRINT(debug_enable, "Debug mode");
- return false;
- case DBG_MTRX:
- if (record->event.pressed)
- TOGGLE_FLAG_AND_PRINT(debug_matrix, "Debug matrix");
- return false;
- case DBG_KBD:
- if (record->event.pressed)
- TOGGLE_FLAG_AND_PRINT(debug_keyboard, "Debug keyboard");
- return false;
- case DBG_MOU:
- if (record->event.pressed)
- TOGGLE_FLAG_AND_PRINT(debug_mouse, "Debug mouse");
- return false;
- }
-
- return true;
-}
diff --git a/keyboards/massdrop/ctrl/keymaps/xulkal/rules.mk b/keyboards/massdrop/ctrl/keymaps/xulkal/rules.mk
deleted file mode 100644
index f78fb3237b..0000000000
--- a/keyboards/massdrop/ctrl/keymaps/xulkal/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-DISABLE_LTO = yes
diff --git a/keyboards/matchstickworks/southpad/info.json b/keyboards/matchstickworks/southpad/info.json
index 887c0484cb..dcf34cac3c 100644
--- a/keyboards/matchstickworks/southpad/info.json
+++ b/keyboards/matchstickworks/southpad/info.json
@@ -1,50 +1,4 @@
{
- "keyboard_name": "SouthPad",
"manufacturer": "MatchstickWorks",
- "url": "",
"maintainer": "MatchstickWorks",
- "usb": {
- "vid": "0xFEED",
- "pid": "0x6060",
- "device_version": "0.0.1"
- },
- "matrix_pins": {
- "cols": ["B0", "B1", "B2", "B4"],
- "rows": ["B3", "B5", "B6", "B7", "C7", "C6"]
- },
- "diode_direction": "COL2ROW",
- "processor": "atmega32u2",
- "bootloader": "atmel-dfu",
- "layouts": {
- "LAYOUT_numpad_6x4_southpaw": {
- "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": [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": [2, 1], "x": 1, "y": 2},
- {"matrix": [2, 2], "x": 2, "y": 2},
- {"matrix": [2, 3], "x": 3, "y": 2},
- {"matrix": [2, 0], "x": 0, "y": 2, "h": 2},
-
- {"matrix": [3, 1], "x": 1, "y": 3},
- {"matrix": [3, 2], "x": 2, "y": 3},
- {"matrix": [3, 3], "x": 3, "y": 3},
-
- {"matrix": [4, 1], "x": 1, "y": 4},
- {"matrix": [4, 2], "x": 2, "y": 4},
- {"matrix": [4, 3], "x": 3, "y": 4},
- {"matrix": [4, 0], "x": 0, "y": 4, "h": 2},
-
- {"matrix": [5, 1], "x": 1, "y": 5},
- {"matrix": [5, 3], "x": 2, "y": 5, "w": 2}
- ]
- }
- }
-}
+} \ No newline at end of file
diff --git a/keyboards/matchstickworks/southpad/keymaps/default/keymap.c b/keyboards/matchstickworks/southpad/keymaps/default/keymap.c
deleted file mode 100644
index 6d0f1252d4..0000000000
--- a/keyboards/matchstickworks/southpad/keymaps/default/keymap.c
+++ /dev/null
@@ -1,27 +0,0 @@
-/* Copyright 2021 Logan Butler
- *
- * 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_numpad_6x4_southpaw( /* Base */
- KC_BSPC, KC_EQL, KC_LPRN, KC_RPRN,
- KC_PMNS, KC_PAST, KC_PSLS, KC_NUM,
- KC_P9, KC_P8, KC_P7,
- KC_PPLS, KC_P6, KC_P5, KC_P4,
- KC_P3, KC_P2, KC_P1,
- KC_PENT, KC_PDOT, KC_P0
- ),
-};
diff --git a/keyboards/matchstickworks/southpad/readme.md b/keyboards/matchstickworks/southpad/readme.md
deleted file mode 100644
index 8c8007c2e7..0000000000
--- a/keyboards/matchstickworks/southpad/readme.md
+++ /dev/null
@@ -1,23 +0,0 @@
-# SouthPad
-
-![Southpad](https://i.imgur.com/Wl71thnh.jpg)
-
-This is a left-handed (or mirrored) numberpad with USB-C connections.
-
-Default layout is such:
-
-![SouthPad Layout](https://i.imgur.com/jc7T2jl.jpg)
-
-* Keyboard Maintainer: [Logan Butler](https://github.com/MatchstickWorks)
-* Hardware Supported: SouthPad PCB
-* Hardware Availability: Either via [my Etsy Store](https://www.etsy.com/shop/MatchstickWorksShop) or by messaging directly
-
-Getting the board into bootloader mode:
-
-In order to flash the firmware to this board, simply press the Reset button on the back of the PCB. You should head a USB disconnect and reconnect sound shortly following.
-
-Make example for this keyboard (after setting up your build environment):
-
- make matchstickworks/southpad: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).
diff --git a/keyboards/matchstickworks/southpad/rev1/info.json b/keyboards/matchstickworks/southpad/rev1/info.json
new file mode 100644
index 0000000000..15db9823b1
--- /dev/null
+++ b/keyboards/matchstickworks/southpad/rev1/info.json
@@ -0,0 +1,55 @@
+{
+ "keyboard_name": "SouthPad",
+ "processor": "atmega32u2",
+ "bootloader": "atmel-dfu",
+ "usb": {
+ "vid": "0xFEED",
+ "pid": "0x6060",
+ "device_version": "0.0.1"
+ },
+ "features": {
+ "bootmagic": true,
+ "command": false,
+ "console": false,
+ "extrakey": true,
+ "mousekey": true,
+ "nkro": false
+ },
+ "diode_direction": "COL2ROW",
+ "matrix_pins": {
+ "cols": ["B0", "B1", "B2", "B4"],
+ "rows": ["B3", "B5", "B6", "B7", "C7", "C6"]
+ },
+ "layouts": {
+ "LAYOUT": {
+ "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": [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": [2, 1], "x": 1, "y": 2},
+ {"matrix": [2, 2], "x": 2, "y": 2},
+ {"matrix": [2, 3], "x": 3, "y": 2},
+ {"matrix": [2, 0], "x": 0, "y": 2, "h": 2},
+
+ {"matrix": [3, 1], "x": 1, "y": 3},
+ {"matrix": [3, 2], "x": 2, "y": 3},
+ {"matrix": [3, 3], "x": 3, "y": 3},
+
+ {"matrix": [4, 1], "x": 1, "y": 4},
+ {"matrix": [4, 2], "x": 2, "y": 4},
+ {"matrix": [4, 3], "x": 3, "y": 4},
+ {"matrix": [4, 0], "x": 0, "y": 4, "h": 2},
+
+ {"matrix": [5, 1], "x": 1, "y": 5},
+ {"matrix": [5, 3], "x": 2, "y": 5, "w": 2}
+ ]
+ }
+ }
+} \ No newline at end of file
diff --git a/keyboards/matchstickworks/southpad/rev1/keymaps/default/keymap.c b/keyboards/matchstickworks/southpad/rev1/keymaps/default/keymap.c
new file mode 100644
index 0000000000..7d5d5cf2b3
--- /dev/null
+++ b/keyboards/matchstickworks/southpad/rev1/keymaps/default/keymap.c
@@ -0,0 +1,27 @@
+/* Copyright 2021 Logan Butler
+ *
+ * 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( /* Base */
+ KC_BSPC, KC_EQL, KC_LPRN, KC_RPRN,
+ KC_PMNS, KC_PAST, KC_PSLS, KC_NUM,
+ KC_P9, KC_P8, KC_P7,
+ KC_PPLS, KC_P6, KC_P5, KC_P4,
+ KC_P3, KC_P2, KC_P1,
+ KC_PENT, KC_PDOT, KC_P0
+ ),
+}; \ No newline at end of file
diff --git a/keyboards/matchstickworks/southpad/rev1/readme.md b/keyboards/matchstickworks/southpad/rev1/readme.md
new file mode 100644
index 0000000000..20b5a58085
--- /dev/null
+++ b/keyboards/matchstickworks/southpad/rev1/readme.md
@@ -0,0 +1,23 @@
+# SouthPad
+
+![Southpad](https://i.imgur.com/Wl71thnh.jpg)
+
+This is a left-handed (or mirrored) numberpad with USB-C connections.
+
+Default layout is such:
+
+![SouthPad Layout](https://i.imgur.com/jc7T2jl.jpg)
+
+* Keyboard Maintainer: [Logan Butler](https://github.com/MatchstickWorks)
+* Hardware Supported: SouthPad v1 PCB
+* Hardware Availability: Either via [my storefront](https://matchstick.works), [my Etsy Store](https://www.etsy.com/shop/MatchstickWorksShop), or by messaging directly
+
+Getting the board into bootloader mode:
+
+In order to flash the firmware to this board, simply press the Reset button on the back of the PCB. You should head a USB disconnect and reconnect sound shortly following.
+
+Make example for this keyboard (after setting up your build environment):
+
+ make matchstickworks/southpad/rev1: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).
diff --git a/layouts/community/ortho_4x12/alfrdmalr/rules.mk b/keyboards/matchstickworks/southpad/rev1/rules.mk
index e69de29bb2..e69de29bb2 100644
--- a/layouts/community/ortho_4x12/alfrdmalr/rules.mk
+++ b/keyboards/matchstickworks/southpad/rev1/rules.mk
diff --git a/keyboards/matchstickworks/southpad/rev2/info.json b/keyboards/matchstickworks/southpad/rev2/info.json
new file mode 100644
index 0000000000..717b56ef63
--- /dev/null
+++ b/keyboards/matchstickworks/southpad/rev2/info.json
@@ -0,0 +1,55 @@
+{
+ "keyboard_name": "SouthPad v2",
+ "processor": "RP2040",
+ "bootloader": "rp2040",
+ "usb": {
+ "vid": "0x4D57",
+ "pid": "0x0002",
+ "device_version": "0.0.1"
+ },
+ "features": {
+ "bootmagic": true,
+ "command": false,
+ "console": false,
+ "extrakey": true,
+ "mousekey": true,
+ "nkro": true
+ },
+ "diode_direction": "COL2ROW",
+ "matrix_pins": {
+ "rows": ["GP13", "GP29", "GP28", "GP20", "GP19", "GP18"],
+ "cols": ["GP2", "GP4", "GP11", "GP12"]
+ },
+ "layouts": {
+ "LAYOUT": {
+ "layout": [
+ { "label": "Bksp", "matrix": [0, 0], "x": 0, "y": 0 },
+ { "label": "=", "matrix": [0, 1], "x": 1, "y": 0 },
+ { "label": "(", "matrix": [0, 2], "x": 2, "y": 0 },
+ { "label": ")", "matrix": [0, 3], "x": 3, "y": 0 },
+
+ { "label": "-", "matrix": [1, 0], "x": 0, "y": 1 },
+ { "label": "*", "matrix": [1, 1], "x": 1, "y": 1 },
+ { "label": "/", "matrix": [1, 2], "x": 2, "y": 1 },
+ { "label": "Num Lock", "matrix": [1, 3], "x": 3, "y": 1 },
+
+ { "label": "+", "matrix": [2, 0], "x": 0, "y": 2, "h": 2 },
+ { "label": "9", "matrix": [2, 1], "x": 1, "y": 2 },
+ { "label": "8", "matrix": [2, 2], "x": 2, "y": 2 },
+ { "label": "7", "matrix": [2, 3], "x": 3, "y": 2 },
+
+ { "label": "6", "matrix": [3, 1], "x": 1, "y": 3 },
+ { "label": "5", "matrix": [3, 2], "x": 2, "y": 3 },
+ { "label": "4", "matrix": [3, 3], "x": 3, "y": 3 },
+
+ { "label": "Enter", "matrix": [4, 0], "x": 0, "y": 4, "h": 2 },
+ { "label": "3", "matrix": [4, 1], "x": 1, "y": 4 },
+ { "label": "2", "matrix": [4, 2], "x": 2, "y": 4 },
+ { "label": "1", "matrix": [4, 3], "x": 3, "y": 4 },
+
+ { "label": ".", "matrix": [5, 1], "x": 1, "y": 5 },
+ { "label": "0", "matrix": [5, 3], "x": 2, "y": 5, "w": 2 }
+ ]
+ }
+ }
+}
diff --git a/keyboards/matchstickworks/southpad/rev2/keymaps/default/keymap.c b/keyboards/matchstickworks/southpad/rev2/keymaps/default/keymap.c
new file mode 100644
index 0000000000..2dd332fdf5
--- /dev/null
+++ b/keyboards/matchstickworks/southpad/rev2/keymaps/default/keymap.c
@@ -0,0 +1,25 @@
+/* Copyright 2023 Logan Butler*/
+/* SPDX-License-Identifier: GPL-2.0-or-later */
+
+#include QMK_KEYBOARD_H
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+ [0] = LAYOUT(
+ KC_BSPC, KC_EQL, LSFT(KC_9),LSFT(KC_0),
+ KC_PMNS, KC_PAST, KC_PSLS, TG(1),
+ KC_PPLS, KC_P9, KC_P8, KC_P7,
+ KC_P6, KC_P5, KC_P4,
+ KC_PENT, KC_P3, KC_P2, KC_P1,
+ KC_PDOT, KC_P0
+ ),
+
+ [1] = LAYOUT(
+ _______, _______, _______, _______,
+ _______, _______, _______, _______,
+ _______, KC_PGUP, KC_UP, KC_HOME,
+ KC_LEFT, _______, KC_RGHT,
+ _______, KC_PGDN, KC_DOWN, KC_END,
+ KC_DEL, KC_INS
+ ),
+}; \ No newline at end of file
diff --git a/keyboards/matchstickworks/southpad/rev2/keymaps/via/keymap.c b/keyboards/matchstickworks/southpad/rev2/keymaps/via/keymap.c
new file mode 100644
index 0000000000..eabe8dd5d5
--- /dev/null
+++ b/keyboards/matchstickworks/southpad/rev2/keymaps/via/keymap.c
@@ -0,0 +1,26 @@
+/* Copyright 2023 Logan Butler*/
+/* SPDX-License-Identifier: GPL-2.0-or-later */
+
+#include QMK_KEYBOARD_H
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+ [0] = LAYOUT(
+ KC_BSPC, KC_EQL, LSFT(KC_9),LSFT(KC_0),
+ KC_PMNS, KC_PAST, KC_PSLS, TG(1),
+ KC_PPLS, KC_P9, KC_P8, KC_P7,
+ KC_P6, KC_P5, KC_P4,
+ KC_PENT, KC_P3, KC_P2, KC_P1,
+ KC_PDOT, KC_P0
+ ),
+
+ [1] = LAYOUT(
+ _______, _______, _______, _______,
+ _______, _______, _______, _______,
+ _______, KC_PGUP, KC_UP, KC_HOME,
+ KC_LEFT, _______, KC_RGHT,
+ _______, KC_PGDN, KC_DOWN, KC_END,
+ KC_DEL, KC_INS
+ ),
+
+}; \ No newline at end of file
diff --git a/keyboards/keychron/v1/ansi/keymaps/vnmm/rules.mk b/keyboards/matchstickworks/southpad/rev2/keymaps/via/rules.mk
index 1e5b99807c..1e5b99807c 100644
--- a/keyboards/keychron/v1/ansi/keymaps/vnmm/rules.mk
+++ b/keyboards/matchstickworks/southpad/rev2/keymaps/via/rules.mk
diff --git a/keyboards/matchstickworks/southpad/rev2/readme.md b/keyboards/matchstickworks/southpad/rev2/readme.md
new file mode 100644
index 0000000000..b249265f29
--- /dev/null
+++ b/keyboards/matchstickworks/southpad/rev2/readme.md
@@ -0,0 +1,23 @@
+# SouthPad
+
+![Southpad](https://i.imgur.com/oXi69cuh.png)
+
+This is a left-handed, mirrored numberpad with USB-C connection and Kailh hotswap sockets, built on the RP2040 MCU.
+
+Default layout is such:
+
+![SouthPad Layout](https://i.imgur.com/Zwxpa7ah.png)
+
+* Keyboard Maintainer: [Logan Butler](https://github.com/MatchstickWorks)
+* Hardware Supported: SouthPad v2 PCB
+* Hardware Availability: Either via [my storefront](https://matchstick.works), [my Etsy Store](https://www.etsy.com/shop/MatchstickWorksShop), or by messaging directly
+
+Getting the board into bootloader mode:
+
+In order to flash the firmware to this board, simply press both the RESET and BOOT buttons on the back of the PCB. You will hear a reconnect sound on your computer and a file explorer window should open where you can drag and drop the compiled UF2 into.
+
+Make example for this keyboard (after setting up your build environment):
+
+ make matchstickworks/southpad/rev2: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).
diff --git a/layouts/community/ortho_4x12/grahampheath/rules.mk b/keyboards/matchstickworks/southpad/rev2/rules.mk
index e69de29bb2..e69de29bb2 100644
--- a/layouts/community/ortho_4x12/grahampheath/rules.mk
+++ b/keyboards/matchstickworks/southpad/rev2/rules.mk
diff --git a/keyboards/matchstickworks/southpad/rules.mk b/keyboards/matchstickworks/southpad/rules.mk
deleted file mode 100644
index 59c896dbff..0000000000
--- a/keyboards/matchstickworks/southpad/rules.mk
+++ /dev/null
@@ -1,12 +0,0 @@
-# Build Options
-# change yes to no to disable
-#
-BOOTMAGIC_ENABLE = no # Enable Bootmagic Lite
-MOUSEKEY_ENABLE = yes # Mouse keys
-EXTRAKEY_ENABLE = yes # Audio control and System control
-CONSOLE_ENABLE = no # Console for debug
-COMMAND_ENABLE = no # Commands for debug and configuration
-NKRO_ENABLE = no # Enable N-Key Rollover
-BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
-RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
-AUDIO_ENABLE = no # Audio output
diff --git a/keyboards/matrix/abelx/abelx.c b/keyboards/matrix/abelx/abelx.c
index 9585948e0c..a05934238a 100644
--- a/keyboards/matrix/abelx/abelx.c
+++ b/keyboards/matrix/abelx/abelx.c
@@ -66,7 +66,7 @@ const aw9523b_led g_aw9523b_leds[AW9523B_RGB_NUM] = {
{AW9523B_P07_PWM, AW9523B_P06_PWM, AW9523B_P05_PWM},
};
-void rgblight_call_driver(LED_TYPE *start_led, uint8_t num_leds)
+void rgblight_call_driver(rgb_led_t *start_led, uint8_t num_leds)
{
uint8_t num = num_leds < AW9523B_RGB_NUM ? num_leds : AW9523B_RGB_NUM;
@@ -92,13 +92,8 @@ bool led_update_kb(led_t led_state) {
}
#define REBOOT_MAGIC 0x41544B42
-void shutdown_user(void)
-{
- // set the magic number for resetting to the bootloader
- *(uint32_t *)(&(RTCD1.rtc->BKP0R)) = REBOOT_MAGIC;
-}
void bootloader_jump(void) {
- shutdown_user();
+ *(uint32_t *)(&(RTCD1.rtc->BKP0R)) = REBOOT_MAGIC;
NVIC_SystemReset();
}
diff --git a/keyboards/matrix/abelx/rules.mk b/keyboards/matrix/abelx/rules.mk
index 7a5d01e5cb..1c2fc05ffe 100644
--- a/keyboards/matrix/abelx/rules.mk
+++ b/keyboards/matrix/abelx/rules.mk
@@ -45,4 +45,4 @@ NO_USB_STARTUP_CHECK = yes # Disable initialization only when usb is plugged in
CUSTOM_MATRIX = lite
# project specific files
SRC += matrix.c tca6424.c aw9523b.c
-QUANTUM_LIB_SRC += i2c_master.c
+I2C_DRIVER_REQUIRED = yes
diff --git a/keyboards/matrix/m20add/config.h b/keyboards/matrix/m20add/config.h
index 8d4c69bb9c..f79cbb123b 100644
--- a/keyboards/matrix/m20add/config.h
+++ b/keyboards/matrix/m20add/config.h
@@ -78,6 +78,5 @@
#define I2C1_CLOCK_SPEED 400000
#define I2C1_DUTY_CYCLE FAST_DUTY_CYCLE_2
-#define DRIVER_ADDR_1 0b1110100
-#define DRIVER_COUNT 1
-#define RGB_MATRIX_LED_COUNT 20
+#define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND
+#define IS31FL3731_LED_COUNT 20
diff --git a/keyboards/matrix/m20add/m20add.c b/keyboards/matrix/m20add/m20add.c
index cdcafb9779..ac483e8aab 100644
--- a/keyboards/matrix/m20add/m20add.c
+++ b/keyboards/matrix/m20add/m20add.c
@@ -54,13 +54,9 @@ bool led_update_kb(led_t led_state) {
}
#define REBOOT_MAGIC 0x41544B42
-void shutdown_user(void)
-{
- // set the magic number for resetting to the bootloader
- *(uint32_t *)(&(RTCD1.rtc->BKP0R)) = REBOOT_MAGIC;
-}
void bootloader_jump(void) {
- shutdown_user();
+ // set the magic number for resetting to the bootloader
+ *(uint32_t *)(&(RTCD1.rtc->BKP0R)) = REBOOT_MAGIC;
NVIC_SystemReset();
}
diff --git a/keyboards/matrix/m20add/rgb_ring.c b/keyboards/matrix/m20add/rgb_ring.c
index 4567f0348d..f3fbe83d72 100644
--- a/keyboards/matrix/m20add/rgb_ring.c
+++ b/keyboards/matrix/m20add/rgb_ring.c
@@ -30,7 +30,7 @@
#endif
// rgb ring leds setting
-const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = {
+const is31fl3731_led_t PROGMEM g_is31fl3731_leds[IS31FL3731_LED_COUNT] = {
/* Refer to IS31 manual for these locations
* driver
* | R location
@@ -357,7 +357,7 @@ static void custom_effects(void)
effect_funcs[rgb_ring.effect]();
}
-void rgblight_call_driver(LED_TYPE *start_led, uint8_t num_leds)
+void rgblight_call_driver(rgb_led_t *start_led, uint8_t num_leds)
{
if (rgb_ring.state != RING_STATE_QMK) {
return;
@@ -371,13 +371,7 @@ void rgblight_call_driver(LED_TYPE *start_led, uint8_t num_leds)
void rgb_ring_init(void)
{
- i2c_init();
- is31fl3731_init(DRIVER_ADDR_1);
- for (int index = 0; index < RGB_MATRIX_LED_COUNT; index++) {
- bool enabled = true;
- is31fl3731_set_led_control_register(index, enabled, enabled, enabled);
- }
- is31fl3731_update_led_control_registers(DRIVER_ADDR_1, 0);
+ is31fl3731_init_drivers();
}
void rgb_ring_task(void)
@@ -396,7 +390,7 @@ void rgb_ring_task(void)
break;
};
- is31fl3731_update_pwm_buffers(DRIVER_ADDR_1, 0);
+ is31fl3731_flush();
}
bool process_record_kb(uint16_t keycode, keyrecord_t *record)
diff --git a/keyboards/matrix/m20add/rules.mk b/keyboards/matrix/m20add/rules.mk
index 86bd6b9371..1b005b8c17 100644
--- a/keyboards/matrix/m20add/rules.mk
+++ b/keyboards/matrix/m20add/rules.mk
@@ -29,4 +29,4 @@ RGBLIGHT_ENABLE = yes
CUSTOM_MATRIX = lite
# project specific files
SRC += matrix.c tca6424.c rgb_ring.c drivers/led/issi/is31fl3731.c
-QUANTUM_LIB_SRC += i2c_master.c
+I2C_DRIVER_REQUIRED = yes
diff --git a/keyboards/matrix/noah/config.h b/keyboards/matrix/noah/config.h
index 452fef4cee..a4d4c5a36a 100644
--- a/keyboards/matrix/noah/config.h
+++ b/keyboards/matrix/noah/config.h
@@ -19,9 +19,8 @@
#define PAL_MODE_STM32_ALTERNATE_OPENDRAIN (PAL_MODE_ALTERNATE(4) | PAL_STM32_OTYPE_OPENDRAIN)
// rgb matrix setting
-#define DRIVER_ADDR_1 0b1110100
-#define DRIVER_ADDR_2 0b1110110
-#define DRIVER_COUNT 2
+#define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND
+#define IS31FL3731_I2C_ADDRESS_2 IS31FL3731_I2C_ADDRESS_SDA
#define DRIVER_1_LED_TOTAL 36
#define DRIVER_2_LED_TOTAL 36
#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL)
diff --git a/keyboards/matrix/noah/noah.c b/keyboards/matrix/noah/noah.c
index 0969998fa9..8246da809c 100644
--- a/keyboards/matrix/noah/noah.c
+++ b/keyboards/matrix/noah/noah.c
@@ -20,7 +20,7 @@ extern rgblight_config_t rgblight_config;
#if RGBLED_NUM < 7
#error "MUST set the RGBLED_NUM bigger than 7"
#endif
-LED_TYPE noah_leds[RGBLED_NUM];
+rgb_led_t noah_leds[RGBLED_NUM];
static bool noah_led_mode = false;
void rgblight_set(void) {
memset(&noah_leds[0], 0, sizeof(noah_leds));
@@ -63,7 +63,7 @@ void matrix_scan_kb(void) {
}
#ifdef RGB_MATRIX_ENABLE
-const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = {
+const is31fl3731_led_t PROGMEM g_is31fl3731_leds[RGB_MATRIX_LED_COUNT] = {
/* Refer to IS31 manual for these locations
* driver
* | R location
diff --git a/keyboards/mechkeys/alu84/keymaps/turbomech/config.h b/keyboards/mechkeys/alu84/keymaps/turbomech/config.h
deleted file mode 100644
index 2a60c1f381..0000000000
--- a/keyboards/mechkeys/alu84/keymaps/turbomech/config.h
+++ /dev/null
@@ -1,20 +0,0 @@
-/* Copyright 2017 @TurboMech /u/TurboMech <discord> @A9entOran9e#6134
- *
- * 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
-
-// place overrides here
-#define TAPPING_TOGGLE 2
diff --git a/keyboards/mechkeys/alu84/keymaps/turbomech/keymap.c b/keyboards/mechkeys/alu84/keymaps/turbomech/keymap.c
deleted file mode 100644
index 64ea7c139b..0000000000
--- a/keyboards/mechkeys/alu84/keymaps/turbomech/keymap.c
+++ /dev/null
@@ -1,88 +0,0 @@
-/* Copyright 2017 @TurboMech /u/TurboMech <discord> @A9entOran9e#6134
- * 2021 QMK
- *
- * 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 "turbomech.h"
-
-#define _QWERTY 0 //BASE layer
-#define _FUNCTION 1 //Function layer
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
-/* BL
- * ,- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -.
- * | Esc | Scrn | Scrn | Expose |Launchpad| Show |Dock Hide| Screen | Shortcut| Shortcut| Shortcut| Shortcut| Play | Mute | Vol Up | Vol Down|
- * | |Brght Up | Brght Dn| | | Desktop | Toggle | Capture | | | | | Pause | | | |
- * |- - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - - - - - - -+- - - - -|
- * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | + | Backspace | POWER |
- * | | | | | | | | | | | | | | | |
- * |- - - - - - - +- - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - - - - +- - - - -|
- * | TAB | Q | W | E | R | T | Y | U | I | O | P | [ | ] | \ | Shortcut|
- * | | | | | | | | | | | | | | | |
- * |- - - - - - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - - - - - - - -+- - - - -|
- * | CAPS | A | S | D | F | G | H | J | K | L | ; | ' | Enter | Page |
- * | | | | | | | | | | | | | | Up |
- * |- - - - - - - - - - - +- - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - - - - - +- - - - -+- - - - -+
- * | Shift | Z | X | C | V | B | N | M | , | . | / | Shift | Up | Page |
- * | | | | | | | | | | | | | | Down |
- * |- - - - - +- - - - - - +- - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - -|
- * | Control | Option | Gui | Space | Gui | Opt | Fn | Left | Down | Right |
- * | | /Alt | | | | Alt | | | | |
- * `- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -'
- */
-
- [_QWERTY] = LAYOUT_75_ansi(
- KC_ESC, KC_F14, KC_F15, C(KC_UP), C(KC_L), KC_F11, A(G(KC_D)), C(KC_S), C(S(KC_O)), C(G(KC_1)), C(G(KC_2)), C(G(KC_3)), KC_MPLY, KC_MUTE, KC_VOLD, KC_VOLU,
- 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_PWR,
- 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, C(G(KC_N)),
- KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGUP,
- SC_LSPO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, SC_RSPC, KC_UP, KC_PGDN,
- KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_RGUI, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT
- ),
-
-/* FN1 - SEE readme.md
- * ,- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -.
- * | Quit | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | Trns | Trns | DFU |
- * | All | | | | | | | | | | | | | | | Reset |
- * |- - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - - - - - - -+- - - - -|
- * | Trns | Trns | Trns | Trns | Trns | Trns | Trns | Trns | Trns | Trns | Trns | Trns | Trns | Delete | Lock |
- * | | | | | | | | | | | | | | |Shortcut |
- * |- - - - - - - +- - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - - - - +- - - - -|
- * | Trns | RGB | RGB | RGB | RGB | RGB Hue | RGB Hue | RGB Sat | RGB Sat | Trns | Trns | Trns | Trns | Trns | Trns |
- * | | Toggle | Mode | Increase| Decrease| Increase| Decrease| Increase| Decrease| | | | | | |
- * |- - - - - - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - - - - - - - -+- - - - -|
- * | Trns | Trns | Trns | Trns | Trns | Trns | Trns | Trns | Trns | Trns | Trns | Trns | Trns | Trns |
- * | | | | | | | | | | | | | | |
- * |- - - - - - - - - - - +- - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - - - - - +- - - - -+- - - - -+
- * | Trns |Backlight|Backlight|Backlight|Backlight| Trns | Trns | Trns | Trns | Trns | Trns | Trns | Trns | Trns |
- * | | Toggle | Increase| Decrease| Step | | | | | | | | | |
- * |- - - - - +- - - - - - +- - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - -|
- * | Trns | Trns | Trns | Trns | Trns | Trns | Trns | Trns | Trns | Trns |
- * | | | | | | | | | | |
- * `- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -'
- */
-
- [_FUNCTION] = LAYOUT_75_ansi(
- A(G(KC_Q)), 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_RESET,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL, C(A(G(KC_S))),
- _______, RGB_TOG, RGB_MOD, RGB_VAI, RGB_VAD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, BL_TOGG, BL_UP, BL_DOWN, BL_STEP, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
- ),
-
-};
diff --git a/keyboards/mechkeys/alu84/keymaps/turbomech/readme.md b/keyboards/mechkeys/alu84/keymaps/turbomech/readme.md
deleted file mode 100644
index b78d7a5e7e..0000000000
--- a/keyboards/mechkeys/alu84/keymaps/turbomech/readme.md
+++ /dev/null
@@ -1,93 +0,0 @@
-# This is u/TurboMech's keyboard layout for ALU84.
-
-## It is designed for Mac OS, due to the specific functions I created.
-
-### Here is the layout found in the keymap.c file.
-##### I use shortcuts for the Function row (above number row) listed below
- - Scrn Bright Up: F14
- - Scrn Bright Down: F15
- - Expose: LCTRL + Up
- - Launchpad: LCTRL + L
- - Show Desktop: F11
- - Show/Hide Dock: LALT + LGUI + D
- - Screen Capture: LCTRL + S
- - Custom Shortcut (setup for an application I use frequently): LCTRL + LSHFT + O
- - Custom Shortcut 1: LCTRL + LGUI + 1
- - Custom Shortcut 2: LCTRL + LGUI + 2
- - Custom Shortcut 3: LCTRL + LGUI + 3
- - use the custom shortcuts for whatever you want: launch an application, a macro, etc.
- - Play/Pause: exactly that
- - Mute / Volume Up / Volume Down: exactly what it says
-
- ##### Going down the right side from Vol Down:
- - POWER: this serves as the power button on Mac's only. Press and hold the button as you would on your Macbook or iMac keyboard.
- - Menu: this slides the notification bar on the right side (its the same as on iPhones/ iPads)
-
-### See below keymaps for how to setup shortcuts on Mac
-
-#### Base Layer
-```
-.- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -.
-| Esc | Scrn | Scrn | Expose |Launchpad| Show |Dock Hide| Screen | Shortcut| Shortcut| Shortcut| Shortcut| Play | Mute | Vol Up | Vol Down|
-| |Brght Up | Brght Dn| | | Desktop | Toggle | Capture | | | | | Pause | | | |
-|- - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - - - - - - -+- - - - -|
-| ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | + | Backspace | POWER |
-| | | | | | | | | | | | | | | |
-|- - - - - - - +- - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - - - - +- - - - -|
-| TAB | Q | W | E | R | T | Y | U | I | O | P | [ | ] | \ | Shortcut|
-| | | | | | | | | | | | | | | |
-|- - - - - - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - - - - - - - -+- - - - -|
-| CAPS | A | S | D | F | G | H | J | K | L | ; | ' | Enter | Page |
-| | | | | | | | | | | | | | Up |
-|- - - - - - - - - - - +- - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - - - - - +- - - - -+- - - - -+
-| Shift | Z | X | C | V | B | N | M | , | . | / | Shift | Up | Page |
-| | | | | | | | | | | | | | Down |
-|- - - - - +- - - - - - +- - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - -|
-| Control | Option | Gui | Space | Gui | Opt | Fn | Left | Down | Right |
-| | /Alt | | | | Alt | | | | |
-'- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -'
-```
-#### Function Layer 1 - See above for shortcuts
-```
-.- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -.
-| Quit | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | Trns | Trns | DFU |
-| All | | | | | | | | | | | | | | | Reset |
-|- - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - - - - - - -+- - - - -|
-| Trns | Trns | Trns | Trns | Trns | Trns | Trns | Trns | Trns | Trns | Trns | Trns | Trns | Delete | Lock |
-| | | | | | | | | | | | | | |Shortcut |
-|- - - - - - - +- - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - - - - +- - - - -|
-| Trns | RGB | RGB | RGB | RGB | RGB Hue | RGB Hue | RGB Sat | RGB Sat | Trns | Trns | Trns | Trns | Trns | Trns |
-| | Toggle | Mode | Increase| Decrease| Increase| Decrease| Increase| Decrease| | | | | | |
-|- - - - - - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - - - - - - - -+- - - - -|
-| Trns | Trns | Trns | Trns | Trns | Trns | Trns | Trns | Trns | Trns | Trns | Trns | Trns | Trns |
-| | | | | | | | | | | | | | |
-|- - - - - - - - - - - +- - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - - - - - +- - - - -+- - - - -+
-| Trns |Backlight|Backlight|Backlight|Backlight| Trns | Trns | Trns | Trns | Trns | Trns | Trns | Trns | Trns |
-| | Toggle | Increase| Decrease| Step | | | | | | | | | |
-|- - - - - +- - - - - - +- - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - -+- - - - -|
-| Trns | Trns | Trns | Trns | Trns | Trns | Trns | Trns | Trns | Trns |
-| | | | | | | | | | |
-'- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -'
-```
-
-#### How to use/ setup shortcuts on Mac
-- First navigate to System Preferences > Keyboard > Shortcuts
- - You can use any of them in here
- - Just set them to the shortcut keys listed above
-
-#### How to make your own (to launch applications, quit all, etc.)
-- Navigate to Automator > New Document > click Service > Choose
-- Now we have to setup our shortcut
- - Here's how to setup the Quit All Shortcut
- - In the right window select the Service recieves dropdown > select No Input
- - At the top left click the Name (Search) > type quit > click and hold Quit All Applications > drag to the right hand box (under the Service Recieves)
- - **IMPORTANT** You have to click the Run button at the upper right hand corner in order for these to actually work.
- - Now click File > Save > save it as Quit All Apps (or whatever you want) / you can also just exit out and it'll ask you if you want to save
-- Navigate back to System Preferences > Keyboard > Shortcuts
- - The new shortcut can be found under services, set it to one of the shortcuts I listed above and done
-- The same applies for applications in the Name (search) just type the application you want to have as shortcut. Don't forget to run it, then do the same steps
- to set it up as a shortcut.
-
-
-
-
diff --git a/keyboards/mechkeys/alu84/keymaps/turbomech/rules.mk b/keyboards/mechkeys/alu84/keymaps/turbomech/rules.mk
deleted file mode 100644
index 6c0a79b110..0000000000
--- a/keyboards/mechkeys/alu84/keymaps/turbomech/rules.mk
+++ /dev/null
@@ -1,2 +0,0 @@
-SLEEP_LED_ENABLE = no
-UNICODE_ENABLE = yes
diff --git a/keyboards/mechkeys/mechmini/v2/keymaps/arkag/config.h b/keyboards/mechkeys/mechmini/v2/keymaps/arkag/config.h
deleted file mode 100644
index 966289459b..0000000000
--- a/keyboards/mechkeys/mechmini/v2/keymaps/arkag/config.h
+++ /dev/null
@@ -1,23 +0,0 @@
-/* Copyright 2021 Alex Kagno
- *
- * 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
-
-// save me space!
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-// #define DISABLE_LEADER
-#define NO_MUSIC_MODE
diff --git a/keyboards/mechkeys/mechmini/v2/keymaps/arkag/keymap.c b/keyboards/mechkeys/mechmini/v2/keymaps/arkag/keymap.c
deleted file mode 100644
index 09c0e901cd..0000000000
--- a/keyboards/mechkeys/mechmini/v2/keymaps/arkag/keymap.c
+++ /dev/null
@@ -1,63 +0,0 @@
-/* Copyright 2021 Alex Kagno
- *
- * 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 "arkag.h"
-
-/*
- Userspace:
- https://github.com/arkag/qmk_firmware/blob/master/users/arkag/arkag.c
-*/
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
- [_QWERTY] = LAYOUT_2u_space_ortho(
- KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,
- KC_TAB, 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_ENT,
- M_PMOD, M_SMOD, KC_LALT, MEDIA, SYMBOL, KC_SPC, ARROW, FUNCT, XXXXXXX, KC_RALT, QK_LEAD),
-
-
- [_SYMBOL] = LAYOUT_2u_space_ortho(
- KC_GRV, KC_LPRN, KC_RPRN, KC_PLUS, KC_UNDS, KC_CIRC, KC_AMPR, KC_7, KC_8, KC_9, _______, _______,
- KC_LCBR, KC_LBRC, KC_RBRC, KC_EQL, KC_MINS, KC_ASTR, KC_PIPE, KC_4, KC_5, KC_6, _______, KC_NUM,
- KC_RCBR, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_PDOT, KC_1, KC_2, KC_3, KC_BSLS, KC_PENT,
- M_DASH, KC_TILD, _______, KEEB, _______, _______, KC_0, KC_PSLS, KC_PMNS, KC_PPLS, KC_PAST),
-
- [_MEDIA] = LAYOUT_2u_space_ortho(
- _______, _______, _______, KC_VOLU, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, KC_MPRV, KC_VOLD, KC_MNXT, _______, _______, _______, _______, _______, _______, _______,
- KC_MPLY, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- KC_MUTE, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______),
-
- [_ARROW] = LAYOUT_2u_space_ortho(
- _______, _______, _______, _______, _______, _______, _______, _______, KC_UP, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______),
-
- [_FUNCT] = LAYOUT_2u_space_ortho(
- 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_CAPS, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, M_OS ),
-
- [_KEEB] = LAYOUT_2u_space_ortho(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, BL_TOGG, BL_STEP, BL_UP, BL_DOWN, BL_BRTG, _______, _______, _______, _______, _______, _______,
- RGB_M_P, RGB_TOG, RGB_MOD, RGB_VAI, RGB_VAD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, _______, _______, _______,
- QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______),
-
-};
diff --git a/keyboards/mechkeys/mechmini/v2/keymaps/arkag/rules.mk b/keyboards/mechkeys/mechmini/v2/keymaps/arkag/rules.mk
deleted file mode 100644
index 735d573d73..0000000000
--- a/keyboards/mechkeys/mechmini/v2/keymaps/arkag/rules.mk
+++ /dev/null
@@ -1,14 +0,0 @@
-BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite
-MOUSEKEY_ENABLE = no
-STENO_ENABLE = no
-EXTRAKEY_ENABLE = yes
-CONSOLE_ENABLE = no
-COMMAND_ENABLE = no
-SLEEP_LED_ENABLE = no
-NKRO_ENABLE = yes
-BACKLIGHT_ENABLE = no
-AUDIO_ENABLE = no
-RGBLIGHT_ENABLE = yes
-TAP_DANCE_ENABLE = no
-UNICODE_ENABLE = yes
-LEADER_ENABLE = yes
diff --git a/keyboards/mechkeys/mechmini/v2/keymaps/spacebarracecar/config.h b/keyboards/mechkeys/mechmini/v2/keymaps/spacebarracecar/config.h
deleted file mode 100644
index 45dcbb04b5..0000000000
--- a/keyboards/mechkeys/mechmini/v2/keymaps/spacebarracecar/config.h
+++ /dev/null
@@ -1,3 +0,0 @@
-#pragma once
-
-
diff --git a/keyboards/mechkeys/mechmini/v2/keymaps/spacebarracecar/keymap.c b/keyboards/mechkeys/mechmini/v2/keymaps/spacebarracecar/keymap.c
deleted file mode 100644
index 13179a5f1a..0000000000
--- a/keyboards/mechkeys/mechmini/v2/keymaps/spacebarracecar/keymap.c
+++ /dev/null
@@ -1,139 +0,0 @@
-#include QMK_KEYBOARD_H
-#include "spacebarracecar.h"
-
-#define LOWER MO(_LOWER)
-#define RAISE MO(_RAISE)
-
-enum layers {
- _BASE,
- _RAISE,
- _LOWER,
- _MUSICMODE
-};
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
-/* Base
-,-----------------------------------------------------------------------------------------------------------------------.
-|Tab |Q |W |E |R |T |Z |U |I |O |P |Backspace|
-|---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------|
-|Esc/Nav |A |S |D |F |G |H |J |K |L |; |' |
-|---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------|
-|Shift |Y |X |C |V |B |N |M |, |. |/ |Shift |
-|---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------|
-|LCtrl | |Win |Alt |Lower |Space |Enter |Raise |AltGr |Win |Menu |RCtrl |
-`-----------------------------------------------------------------------------------------------------------------------'
-*/
-
-[_BASE] = LAYOUT_ortho(
- KC_TAB, DE_Q, DE_W, DE_E, DE_R, DE_T, CU_Z, DE_U, DE_I, DE_O, DE_P, KC_BSPC,
- CU_NAV, DE_A, DE_S, DE_D, DE_F, DE_G, DE_H, DE_J, DE_K, DE_L, CU_SCLN, CU_QUOT,
- CU_LSFT, CU_Y, DE_X, DE_C, DE_V, DE_B, DE_N, DE_M, CU_COMM, CU_DOT, CU_SLSH, CU_RSFT,
- KC_LCTL, XXXXXXX, KC_LGUI, KC_LALT, LOWER, KC_SPC, CTLENT, RAISE, KC_RALT, KC_RGUI, KC_APP, KC_RCTL
-),
-
-/* Lower
-,-----------------------------------------------------------------------------------------------------------------------.
-|~ |! |" |# |$ |% |^ |& |* |( |) | |
-|---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------|
-| |@ |Strg+X |Strg+C |Strg+V | | |_ |+ |{ |} || |
-|---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------|
-| |? | | | | | | | | | | |
-|---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------|
-| | | | | | | | | | | | |
-`-----------------------------------------------------------------------------------------------------------------------'
-*/
-[_LOWER] = LAYOUT_ortho(
- DE_TILD, DE_EXLM, DE_DQUO, DE_HASH, DE_DLR, DE_PERC, CU_CIRC, DE_AMPR, DE_ASTR, DE_LPRN, DE_RPRN, _______,
- _______, DE_AT, CTRLX, CTRLC, CTRLV, XXXXXXX, XXXXXXX, DE_UNDS, DE_PLUS, DE_LCBR, DE_RCBR, DE_PIPE,
- _______, DE_EURO, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, DE_MINS, CU_EQL, CU_LBRC, CU_RBRC, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
-),
-
-/* Raise
-,-----------------------------------------------------------------------------------------------------------------------.
-|` |1 |2 |3 |4 |5 |6 |7 |8 |9 |0 | |
-|---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------|
-| |F1 |F2 |F3 |F4 |F5 |F6 |- |= |[ |] |\ |
-|---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------|
-| |F7 |F8 |F9 |F10 |F11 |F12 | | | | | |
-|---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------|
-| | | | | | | | | | | | |
-`-----------------------------------------------------------------------------------------------------------------------'
-*/
-
-[_RAISE] = LAYOUT_ortho(
- CU_GRV, DE_1, DE_2, CU_3, DE_4, DE_5, CU_6, CU_7, CU_8, CU_9, CU_0, _______,
- _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, DE_MINS, CU_EQL, CU_LBRC, CU_RBRC, CU_BSLS,
- _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, XXXXXXX, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
-),
-
-/* Deadkey
-,-----------------------------------------------------------------------------------------------------------------------.
-| | | | | | | |Ü | |Ö | | |
-|---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------|
-| |Ä |ß | | | | | | | | | |
-|---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------|
-| | | | | | | | | | | | |
-|---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------|
-| | | | | |" |" | | | | | |
-`-----------------------------------------------------------------------------------------------------------------------'
-*/
-
-[_DEADKEY] = LAYOUT_ortho(
- KC_TAB, CU_ED, CU_ED, CU_ED, CU_ED, CU_ED, CU_ED, CU_UE, CU_ED, CU_OE, CU_ED, KC_BSPC,
- CU_NAV, CU_AE, CU_SS, CU_ED, CU_ED, CU_ED, CU_ED, CU_ED, CU_ED, CU_ED, CU_ED, CU_DDQ,
- CU_LSFT, CU_ED, CU_ED, CU_ED, CU_ED, CU_ED, CU_ED, CU_ED, CU_ED, CU_ED, CU_ED, CU_RSFT,
- KC_LCTL, XXXXXXX, KC_LGUI, KC_LALT, LOWER, CU_DDQ, CU_DDQ, RAISE, KC_RALT, KC_RGUI, KC_APP, KC_RCTL
-),
-
-/* Navigation
-,-----------------------------------------------------------------------------------------------------------------------.
-|ALT F4 |PageDown |Up |PageUp |Home | | | |Win+Up | | |Del |
-|---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------|
-| |Left |Down |Right |End | | |Win+Left |Win+Down |Win+Right| |Enter |
-|---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------|
-| |Prev |Pause |Next |LowerVol |RaiseVol |Mute | | | | | |
-|---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------|
-|QK_BOOT |ESCT | | | | | | | | | |Game |
-`-----------------------------------------------------------------------------------------------------------------------'
-*/
-
-[_NAV] = LAYOUT_ortho(
- _______, KC_PGDN, KC_UP, KC_PGUP, KC_HOME, XXXXXXX, XXXXXXX, XXXXXXX, GUIU, XXXXXXX, XXXXXXX, KC_DEL,
- _______, KC_LEFT, KC_DOWN, KC_RGHT, KC_END, XXXXXXX, XXXXXXX, GUIL, GUID, GUIR, EMOJI, KC_ENT,
- _______, KC_MPRV, KC_MPLY, KC_MNXT, KC_VOLD, KC_VOLU, KC_MUTE, RGB_TOG, RGB_MOD, RGB_HUI, CU_RGBV, _______,
- QK_BOOT, CU_ESCT, ALTF4, _______, _______, KC_SPC, CTLENT, RGB_M_P, _______, _______, _______, CU_GAME
-)
-
-};
-
-bool process_record_keymap(uint16_t keycode, keyrecord_t *record) {
-switch (keycode) {
- case MO(_LOWER):
- if (game){
- if(record->event.pressed) {
- register_code(KC_SPC);
- } else {
- unregister_code(KC_SPC);
- }
- return false;
- } else {
- return true;
- }
- case KC_LALT:
- if (game) {
- if (record->event.pressed){
- layer_on(_RAISE);
- } else {
- layer_off(_RAISE);
- }
- return false;
- } else {
- return true;
- }
- default:
- return true;
- }
-}
diff --git a/keyboards/mechkeys/mechmini/v2/keymaps/spacebarracecar/readme.md b/keyboards/mechkeys/mechmini/v2/keymaps/spacebarracecar/readme.md
deleted file mode 100644
index d4039713a5..0000000000
--- a/keyboards/mechkeys/mechmini/v2/keymaps/spacebarracecar/readme.md
+++ /dev/null
@@ -1,5 +0,0 @@
-# SpacebarRacecar US-International Mechmini 2 Keymap for German PCs
-
-This keymap emulates most keys of the US-International layout on PCs that have German set as input language.
-This allows the use of the keyboard on any PC in Germany without the need to change any settings.
-The keymap is mostly based on the Planck default layout but adds essential features for german input, like access to Ä, Ö, Ü, ß.
diff --git a/keyboards/mechkeys/mechmini/v2/keymaps/spacebarracecar/rules.mk b/keyboards/mechkeys/mechmini/v2/keymaps/spacebarracecar/rules.mk
deleted file mode 100644
index 82f1f96f64..0000000000
--- a/keyboards/mechkeys/mechmini/v2/keymaps/spacebarracecar/rules.mk
+++ /dev/null
@@ -1,22 +0,0 @@
-# Build Options
-# change to "no" to disable the options, or define them in the Makefile in
-# the appropriate keymap folder that will get included automatically
-#
-BOOTMAGIC_ENABLE = no # Enable Bootmagic Lite
-MOUSEKEY_ENABLE = no # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
-COMMAND_ENABLE = no # Commands for debug and configuration
-NKRO_ENABLE = no # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
-BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
-MIDI_ENABLE = no # MIDI controls
-AUDIO_ENABLE = no # Audio output on port C6
-UNICODE_ENABLE = no # Unicode
-BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
-RGBLIGHT_ENABLE = yes # Enable WS2812 RGB underlight.
-
-# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
-SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
-
-# Userspace defines
-GERMAN_ENABLE = yes # Enable Custom US Ansi Keycodes for PC with German set as input language
diff --git a/keyboards/mechlovin/adelais/keymaps/brandonschlack/config.h b/keyboards/mechlovin/adelais/keymaps/brandonschlack/config.h
deleted file mode 100644
index f277bcfa3e..0000000000
--- a/keyboards/mechlovin/adelais/keymaps/brandonschlack/config.h
+++ /dev/null
@@ -1,30 +0,0 @@
-/* Copyright 2020 Brandon Schlack
- *
- * 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 USE_LEDS_FOR_LAYERS
-#define STOPLIGHT_LED
-
-// LEDs
-#define TOP_LED B2
-#define MIDDLE_LED C15
-#define BOTTOM_LED B9
-// #define LED_PIN_FLIP
-#ifdef LED_PIN_FLIP
- #define LED_ON(flag) !flag
-#else
- #define LED_ON(flag) flag
-#endif
diff --git a/keyboards/mechlovin/adelais/keymaps/brandonschlack/keymap.c b/keyboards/mechlovin/adelais/keymaps/brandonschlack/keymap.c
deleted file mode 100644
index 740148e0e7..0000000000
--- a/keyboards/mechlovin/adelais/keymaps/brandonschlack/keymap.c
+++ /dev/null
@@ -1,271 +0,0 @@
-/* Copyright 2020 Brandon Schlack
- *
- * 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 "brandonschlack.h"
-
-/**
- * Layer Names
- *
- * Layers mostly used for macro keys
- */
-#define _REEDER _M1
-#define _MAIL _M2
-#define _REEDER_FN _M1_FN1
-#define _MAIL_FN _M2_FN1
-
-/**
- * Keycodes & Macros
- */
-#define TG_BASE TO(_BASE)
-#define TG_REDR TO(_REEDER)
-#define TG_MAIL TO(_MAIL)
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-/* Base
- * ┌───┐ ┌───┬───┬───┬───┬───┬───┬───┐         ┌───┬───┬───┬───┬───┬───┬───┬───┐
- * │Ply│ │Esc│! 1│@ 2│# 3│$ 4│% 5│^ 6│         │& 7│* 8│( 9│) 0│_ -│+ =│| \│~ `│
- * ├───┤ ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┘       ┌─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤
- * │VlU│ │Tab  │ Q │ W │ E │ R │ T │         │ Y │ U │ I │ O │ P │{ [│} ]│ Bspc│
- * ├───┤ ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┐        └┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤
- * │VlD│ │HyCaps│ A │ S │ D │ F │ G │         │ H │ J │ K │ L │: ;│" '│   Enter│
- * └───┘ ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┐     ┌─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤
- *       │LShift  │ Z │ X │ C │ V │ B │     │ B │ N │ M │< ,│> .│? /│  Shft│Fn │
- *       ├─────┬──┴──┬┴───┴┬──┴───┴┬──┴─┐   ├───┴───┴──┬┴───┴┬──┴───┴────┬─┴───┤
- *       │Opt  │     │Cmd  │Spc/Lwr│Ctrl│   │   Spc/Rai│  Cmd│           │  Opt│
- *       └─────┘     └─────┴───────┴────┘   └──────────┴─────┘           └─────┘
- */
-[_BASE] = LAYOUT_all(
- KC_MPLY, KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS, KC_GRV,
- KC_VOLU, 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_BSPC,
- KC_VOLD, HY_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_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, LOWER, KC_RSFT, KC_SLSH,
- KC_LOPT, KC_LCMD, SPC_LWR, KC_LCTL, SPC_RAI, KC_RCMD, KC_ROPT
-),
-/* Reeder
- * ┌───┐ ┌───┬───┬───┬───┬───┬───┬───┐         ┌───┬───┬───┬───┬───┬───┬───┬───┐
- * │ H │ │   │   │   │   │   │   │   │         │   │   │   │   │   │   │   │   │
- * ├───┤ ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┘       ┌─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤
- * │ K │ │     │   │   │   │   │   │         │   │   │   │   │   │   │   │     │
- * ├───┤ ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┐        └┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤
- * │ J │ │      │   │   │   │   │   │         │   │   │   │   │   │   │        │
- * └───┘ ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┐     ┌─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤
- *       │        │   │   │   │   │   │     │   │   │   │   │   │   │      │   │
- *       ├─────┬──┴──┬┴───┴┬──┴───┴┬──┴─┐   ├───┴───┴──┬┴───┴┬──┴───┴────┬─┴───┤
- *       │     │     │     │       │    │   │          │     │           │     │
- *       └─────┘     └─────┴───────┴────┘   └──────────┴─────┘           └─────┘
- */
-[_REEDER] = LAYOUT_all(
- KC_H, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- KC_K, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- KC_J, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______
-
-),
-/* Mail
- * ┌───┐ ┌───┬───┬───┬───┬───┬───┬───┐         ┌───┬───┬───┬───┬───┬───┬───┬───┐
- * │Del│ │   │   │   │   │   │   │   │         │   │   │   │   │   │   │   │   │
- * ├───┤ ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┘       ┌─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤
- * │It+│ │     │   │   │   │   │   │         │   │   │   │   │   │   │   │     │
- * ├───┤ ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┐        └┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤
- * │It-│ │      │   │   │   │   │   │         │   │   │   │   │   │   │        │
- * └───┘ ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┐     ┌─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤
- *       │        │   │   │   │   │   │     │   │   │   │   │   │   │      │   │
- *       ├─────┬──┴──┬┴───┴┬──┴───┴┬──┴─┐   ├───┴───┴──┬┴───┴┬──┴───┴────┬─┴───┤
- *       │     │     │     │       │    │   │          │     │           │     │
- *       └─────┘     └─────┴───────┴────┘   └──────────┴─────┘           └─────┘
- */
-[_MAIL] = LAYOUT_all(
- G(KC_BSPC), _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- KC_DOWN, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______
-
-),
-/* Lower
- * ┌───┐ ┌───┬───┬───┬───┬───┬───┬───┐         ┌───┬───┬───┬───┬───┬───┬───┬───┐
- * │Mut│ │Mke│ F1│ F2│ F3│ F4│ F5│ F6│         │ F7│ F8│ F9│F10│F11│F12│LHP│SLP│
- * ├───┤ ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┘       ┌─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤
- * │Nxt│ │RMod │RH+│RS+│RV+│Sp+│   │         │   │   │   │   │PgU│Hom│End│  Del│
- * ├───┤ ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┐        └┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤
- * │Prv│ │RTgl  │RH-│RS-│RV-│Sp-│   │         │   │   │Prv│Nxt│PgD│ ↑ │   Play │
- * └───┘ ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┐     ┌─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤
- *       │        │LYR│Thm│   │   │   │     │   │   │   │   │ ← │ ↓ │→ Shft│   │
- *       ├─────┬──┴──┬┴───┴┬──┴───┴┬──┴─┐   ├───┴───┴──┬┴───┴┬──┴───┴────┬─┴───┤
- *       │     │     │     │       │    │   │          │     │           │     │
- *       └─────┘     └─────┴───────┴────┘   └──────────┴─────┘           └─────┘
- */
-[_LOWER] = LAYOUT_all(
- KC_MUTE, QM_MAKE, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, MC_LHPD, MC_SLPD,
- KC_MNXT, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, RGB_SPI, _______, _______, _______, _______, _______, KC_PGUP, KC_HOME, KC_END, KC_DEL,
- KC_MPRV, RGB_TOG, RGB_HUD, RGB_SAD, RGB_VAD, RGB_SPD, _______, _______, _______, KC_MPRV, KC_MNXT, KC_PGDN, KC_UP, KC_MPLY,
- _______, RGB_LYR, RGB_THM, _______, _______, _______, _______, _______, _______, _______, KC_LEFT, _______, RGT_SFT, KC_DOWN,
- _______, _______, _______, _______, _______, _______, _______
-
-),
-/* Reeder Function
- * ┌───┐ ┌───┬───┬───┬───┬───┬───┬───┐         ┌───┬───┬───┬───┬───┬───┬───┬───┐
- * │ L │ │   │   │   │   │   │   │   │         │   │   │   │   │   │   │   │   │
- * ├───┤ ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┘       ┌─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤
- * │ P │ │     │   │   │   │   │   │         │   │   │   │   │   │   │   │     │
- * ├───┤ ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┐        └┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤
- * │ N │ │      │   │   │   │   │   │         │   │   │   │   │   │   │        │
- * └───┘ ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┐     ┌─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤
- *       │        │   │   │   │   │   │     │   │   │   │   │   │   │      │   │
- *       ├─────┬──┴──┬┴───┴┬──┴───┴┬──┴─┐   ├───┴───┴──┬┴───┴┬──┴───┴────┬─┴───┤
- *       │     │     │     │       │    │   │          │     │           │     │
- *       └─────┘     └─────┴───────┴────┘   └──────────┴─────┘           └─────┘
- */
-[_REEDER_FN] = LAYOUT_all(
- KC_L, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- KC_P, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- KC_N, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______
-
-),
-/* Mail
- * ┌───┐ ┌───┬───┬───┬───┬───┬───┬───┐         ┌───┬───┬───┬───┬───┬───┬───┬───┐
- * │Del│ │   │   │   │   │   │   │   │         │   │   │   │   │   │   │   │   │
- * ├───┤ ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┘       ┌─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤
- * │It+│ │     │   │   │   │   │   │         │   │   │   │   │   │   │   │     │
- * ├───┤ ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┐        └┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤
- * │It-│ │      │   │   │   │   │   │         │   │   │   │   │   │   │        │
- * └───┘ ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┐     ┌─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤
- *       │        │   │   │   │   │   │     │   │   │   │   │   │   │      │   │
- *       ├─────┬──┴──┬┴───┴┬──┴───┴┬──┴─┐   ├───┴───┴──┬┴───┴┬──┴───┴────┬─┴───┤
- *       │     │     │     │       │    │   │          │     │           │     │
- *       └─────┘     └─────┴───────┴────┘   └──────────┴─────┘           └─────┘
- */
-[_MAIL_FN] = LAYOUT_all(
- KC_BSPC, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- A(G(KC_LBRC)), _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- A(G(KC_RBRC)), _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______
-
-),
-/* Raise
- * ┌───┐ ┌───┬───┬───┬───┬───┬───┬───┐         ┌───┬───┬───┬───┬───┬───┬───┬───┐
- * │   │ │   │   │   │   │   │   │   │         │   │   │   │   │   │   │   │   │
- * ├───┤ ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┘       ┌─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤
- * │   │ │     │   │   │   │   │   │         │   │   │   │   │   │   │   │     │
- * ├───┤ ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┐        └┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤
- * │   │ │      │   │   │   │   │   │         │   │   │   │   │   │   │        │
- * └───┘ ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┐     ┌─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤
- *       │        │   │   │   │   │   │     │   │   │   │   │   │   │      │   │
- *       ├─────┬──┴──┬┴───┴┬──┴───┴┬──┴─┐   ├───┴───┴──┬┴───┴┬──┴───┴────┬─┴───┤
- *       │     │     │     │       │    │   │          │     │           │     │
- *       └─────┘     └─────┴───────┴────┘   └──────────┴─────┘           └─────┘
- */
-[_RAISE] = LAYOUT_all(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______
-
-),
-/* Adjust
- * ┌───┐ ┌───┬───┬───┬───┬───┬───┬───┐         ┌───┬───┬───┬───┬───┬───┬───┬───┐
- * │Bse│ │Mke│   │   │   │   │   │   │         │   │   │   │   │   │   │   │   │
- * ├───┤ ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┘       ┌─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤
- * │Rdr│ │RMod │RH+│RS+│RV+│Sp+│   │         │   │   │   │   │   │   │   │     │
- * ├───┤ ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┐        └┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤
- * │Mai│ │RTgl  │RH-│RS-│RV-│Sp-│   │         │   │   │   │   │   │   │        │
- * └───┘ ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┐     ┌─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤
- *       │        │LYR│Thm│   │EEP│Rst│     │Rst│   │   │   │   │   │      │   │
- *       ├─────┬──┴──┬┴───┴┬──┴───┴┬──┴─┐   ├───┴───┴──┬┴───┴┬──┴───┴────┬─┴───┤
- *       │     │     │     │       │    │   │          │     │           │     │
- *       └─────┘     └─────┴───────┴────┘   └──────────┴─────┘           └─────┘
- */
-[_ADJUST] = LAYOUT_all(
- TG_BASE, QM_MAKE, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- TG_REDR, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- TG_MAIL, RGB_TOG, RGB_HUD, RGB_SAD, RGB_VAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, RGB_LYR, RGB_THM, _______, EE_CLR, QK_BOOT, QK_BOOT, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______
-
-)
-/* Layout
- * ┌───┐ ┌───┬───┬───┬───┬───┬───┬───┐         ┌───┬───┬───┬───┬───┬───┬───┬───┐
- * │   │ │   │   │   │   │   │   │   │         │   │   │   │   │   │   │   │   │
- * ├───┤ ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┘       ┌─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤
- * │   │ │     │   │   │   │   │   │         │   │   │   │   │   │   │   │     │
- * ├───┤ ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┐        └┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤
- * │   │ │      │   │   │   │   │   │         │   │   │   │   │   │   │        │
- * └───┘ ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┐     ┌─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤
- *       │        │   │   │   │   │   │     │   │   │   │   │   │   │      │   │
- *       ├─────┬──┴──┬┴───┴┬──┴───┴┬──┴─┐   ├───┴───┴──┬┴───┴┬──┴───┴────┬─┴───┤
- *       │     │     │     │       │    │   │          │     │           │     │
- *       └─────┘     └─────┴───────┴────┘   └──────────┴─────┘           └─────┘
- */
-/*
-[_BLANK] = LAYOUT(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______
-
-)
-*/
-};
-
-layer_state_t layer_state_set_keymap(layer_state_t state) {
- state = update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST);
- state = update_tri_layer_state(state, _REEDER, _LOWER, _REEDER_FN);
- state = update_tri_layer_state(state, _MAIL, _LOWER, _MAIL_FN);
- return state;
-}
-
-#ifdef USE_LEDS_FOR_LAYERS
-bool led_update_keymap(led_t led_state) {
- writePin(TOP_LED, LED_ON(IS_LAYER_ON(_REEDER) || IS_LAYER_ON(_MAIL))); // Use for Macro Layer
- writePin(MIDDLE_LED, LED_ON(IS_LAYER_ON(_FN1))); // Use for Layer 2
- writePin(BOTTOM_LED, LED_ON(led_state.caps_lock)); // Use for Caps Lock
- return false; // Override default set by KB
-}
-#endif
-
-#ifdef ENCODER_ENABLE
-bool encoder_update_user(uint8_t index, bool clockwise) {
- if (index == 0) {
- if (clockwise) {
- tap_code(KC_VOLU);
- } else {
- tap_code(KC_VOLD);
- }
- }
- else if (index == 1) {
- if (clockwise) {
- tap_code(KC_LEFT);
- } else {
- tap_code(KC_RGHT);
- }
- }
- else if (index == 2) {
- if (clockwise) {
- tap_code(KC_UP);
- } else {
- tap_code(KC_DOWN);
- }
- }
- return true;
-}
-
- #endif
diff --git a/keyboards/mechlovin/adelais/keymaps/brandonschlack/readme.md b/keyboards/mechlovin/adelais/keymaps/brandonschlack/readme.md
deleted file mode 100644
index 54d78d873b..0000000000
--- a/keyboards/mechlovin/adelais/keymaps/brandonschlack/readme.md
+++ /dev/null
@@ -1 +0,0 @@
-# The default keymap for adelais
diff --git a/keyboards/mechlovin/adelais/rgb_led/rev2/config.h b/keyboards/mechlovin/adelais/rgb_led/rev2/config.h
index d4b34ff48e..6bdd06aba8 100644
--- a/keyboards/mechlovin/adelais/rgb_led/rev2/config.h
+++ b/keyboards/mechlovin/adelais/rgb_led/rev2/config.h
@@ -1,16 +1,8 @@
#pragma once
//rgb matrix setting
-// This is a 7-bit address, that gets left-shifted and bit 0
-// set to 0 for write, 1 for read (as per I2C protocol)
-// The address will vary depending on your wiring:
-// 0b1110100 AD <-> GND
-// 0b1110111 AD <-> VCC
-// 0b1110101 AD <-> SCL
-// 0b1110110 AD <-> SDA
-#define DRIVER_ADDR_1 0b1110100
-#define DRIVER_ADDR_2 0b1110110
-#define DRIVER_COUNT 2
+#define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND
+#define IS31FL3731_I2C_ADDRESS_2 IS31FL3731_I2C_ADDRESS_SDA
#define DRIVER_1_LED_TOTAL 32
#define DRIVER_2_LED_TOTAL 36
#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL)
diff --git a/keyboards/mechlovin/adelais/rgb_led/rev2/rev2.c b/keyboards/mechlovin/adelais/rgb_led/rev2/rev2.c
index e51e92ed6f..9e5fe11895 100644
--- a/keyboards/mechlovin/adelais/rgb_led/rev2/rev2.c
+++ b/keyboards/mechlovin/adelais/rgb_led/rev2/rev2.c
@@ -17,7 +17,7 @@
#include "quantum.h"
#ifdef RGB_MATRIX_ENABLE
-const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = {
+const is31fl3731_led_t PROGMEM g_is31fl3731_leds[RGB_MATRIX_LED_COUNT] = {
{0, C2_1, C3_1, C4_1}, //D102-A0-0
{0, C5_1, C6_1, C7_1}, //D108-A1-1
diff --git a/keyboards/mechlovin/adelais/rgb_led/rev3/config.h b/keyboards/mechlovin/adelais/rgb_led/rev3/config.h
index c4961c6492..ba93133857 100644
--- a/keyboards/mechlovin/adelais/rgb_led/rev3/config.h
+++ b/keyboards/mechlovin/adelais/rgb_led/rev3/config.h
@@ -17,20 +17,12 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#pragma once
-#define WS2812_SPI SPID1 // default: SPID1
+#define WS2812_SPI_DRIVER SPID1 // default: SPID1
#define WS2812_SPI_MOSI_PAL_MODE 5 // Pin "alternate function", see the respective datasheet for the appropriate values for your MCU. default: 5
#ifdef RGB_MATRIX_ENABLE
//rgb matrix setting
-// This is a 7-bit address, that gets left-shifted and bit 0
-// set to 0 for write, 1 for read (as per I2C protocol)
-// The address will vary depending on your wiring:
-// 0b1110100 AD <-> GND
-// 0b1110111 AD <-> VCC
-// 0b1110101 AD <-> SCL
-// 0b1110110 AD <-> SDA
-#define DRIVER_ADDR_1 0b0110010
-#define DRIVER_COUNT 1
+#define IS31FL3741_I2C_ADDRESS_1 IS31FL3741_I2C_ADDRESS_SDA
#define RGB_MATRIX_LED_COUNT 66
#define RGB_MATRIX_KEYPRESSES // reacts to keypresses
diff --git a/keyboards/mechlovin/adelais/rgb_led/rev3/rev3.c b/keyboards/mechlovin/adelais/rgb_led/rev3/rev3.c
index b7e03d0f1e..b13f223a1c 100644
--- a/keyboards/mechlovin/adelais/rgb_led/rev3/rev3.c
+++ b/keyboards/mechlovin/adelais/rgb_led/rev3/rev3.c
@@ -17,7 +17,7 @@
#include "quantum.h"
#ifdef RGB_MATRIX_ENABLE
-const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = {
+const is31fl3741_led_t PROGMEM g_is31fl3741_leds[RGB_MATRIX_LED_COUNT] = {
{0, CS3_SW5, CS2_SW5, CS1_SW5}, /* D9-K31-00 */
{0, CS6_SW5, CS5_SW5, CS4_SW5}, /* D46-K00-01 */
{0, CS6_SW9, CS5_SW9, CS4_SW9}, /* D59-K01-02 */
diff --git a/keyboards/mechlovin/delphine/rgb_led/config.h b/keyboards/mechlovin/delphine/rgb_led/config.h
index 9498e8914f..60dc290bfb 100644
--- a/keyboards/mechlovin/delphine/rgb_led/config.h
+++ b/keyboards/mechlovin/delphine/rgb_led/config.h
@@ -1,14 +1,7 @@
#pragma once
-//rgb matrix setting// This is a 7-bit address, that gets left-shifted and bit 0
-// set to 0 for write, 1 for read (as per I2C protocol)
-// The address will vary depending on your wiring:
-// 0b1110100 AD <-> GND
-// 0b1110111 AD <-> VCC
-// 0b1110101 AD <-> SCL
-// 0b1110110 AD <-> SDA
-#define DRIVER_ADDR_1 0b1110110
-#define DRIVER_COUNT 1
+//rgb matrix setting
+#define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_SDA
#define RGB_MATRIX_LED_COUNT 25
#define RGB_MATRIX_KEYPRESSES // reacts to keypresses
#define RGB_MATRIX_KEYRELEASES // reacts to keyreleases (instead of keypresses)
diff --git a/keyboards/mechlovin/delphine/rgb_led/rgb_led.c b/keyboards/mechlovin/delphine/rgb_led/rgb_led.c
index 02a011ba4b..a55143f2e1 100644
--- a/keyboards/mechlovin/delphine/rgb_led/rgb_led.c
+++ b/keyboards/mechlovin/delphine/rgb_led/rgb_led.c
@@ -18,7 +18,7 @@
#ifdef RGB_MATRIX_ENABLE
-const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = {
+const is31fl3731_led_t PROGMEM g_is31fl3731_leds[RGB_MATRIX_LED_COUNT] = {
// left CA
{0, C5_2, C6_2, C7_2}, //D2-0
{0, C1_1, C3_2, C4_2}, //D20-1
diff --git a/keyboards/mechlovin/hannah60rgb/rev2/config.h b/keyboards/mechlovin/hannah60rgb/rev2/config.h
index 7e9a918493..4a4f4c7556 100644
--- a/keyboards/mechlovin/hannah60rgb/rev2/config.h
+++ b/keyboards/mechlovin/hannah60rgb/rev2/config.h
@@ -1,15 +1,8 @@
#pragma once
-//rgb matrix setting// This is a 7-bit address, that gets left-shifted and bit 0
-// set to 0 for write, 1 for read (as per I2C protocol)
-// The address will vary depending on your wiring:
-// 0b1110100 AD <-> GND
-// 0b1110111 AD <-> VCC
-// 0b1110101 AD <-> SCL
-// 0b1110110 AD <-> SDA
-#define DRIVER_ADDR_1 0b1110100
-#define DRIVER_ADDR_2 0b1110110
-#define DRIVER_COUNT 2
+//rgb matrix setting
+#define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND
+#define IS31FL3731_I2C_ADDRESS_2 IS31FL3731_I2C_ADDRESS_SDA
#define DRIVER_1_LED_TOTAL 44
#define DRIVER_2_LED_TOTAL 34
#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL)
diff --git a/keyboards/mechlovin/hannah60rgb/rev2/rev2.c b/keyboards/mechlovin/hannah60rgb/rev2/rev2.c
index 246caa2963..2e3c8d0090 100644
--- a/keyboards/mechlovin/hannah60rgb/rev2/rev2.c
+++ b/keyboards/mechlovin/hannah60rgb/rev2/rev2.c
@@ -17,7 +17,7 @@
#include "quantum.h"
#ifdef RGB_MATRIX_ENABLE
-const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = {
+const is31fl3731_led_t PROGMEM g_is31fl3731_leds[RGB_MATRIX_LED_COUNT] = {
/* Refer to IS31 manual for these locations
* driver
* | R location
diff --git a/keyboards/mechlovin/hex6c/config.h b/keyboards/mechlovin/hex6c/config.h
index 4cfcaebcde..e74e7939c4 100644
--- a/keyboards/mechlovin/hex6c/config.h
+++ b/keyboards/mechlovin/hex6c/config.h
@@ -18,6 +18,3 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#pragma once
#define BACKLIGHT_PWM_DRIVER PWMD3
-
-#define WEAR_LEVELING_BACKING_SIZE 4096
-#define WEAR_LEVELING_LOGICAL_SIZE 2048
diff --git a/keyboards/mechlovin/hex6c/info.json b/keyboards/mechlovin/hex6c/info.json
index dfeb91e0ba..483566e7f4 100644
--- a/keyboards/mechlovin/hex6c/info.json
+++ b/keyboards/mechlovin/hex6c/info.json
@@ -13,6 +13,11 @@
"rows": ["A10", "B13", "B12", "B11", "C14", "C15"]
},
"diode_direction": "COL2ROW",
+ "eeprom": {
+ "wear_leveling": {
+ "backing_size": 4096
+ }
+ },
"encoder": {
"rotary": [
{"pin_a": "A15", "pin_b": "A2"}
diff --git a/keyboards/mechlovin/infinity87/rgb_rev1/config.h b/keyboards/mechlovin/infinity87/rgb_rev1/config.h
index 10fc42f830..6e73aba5d9 100644
--- a/keyboards/mechlovin/infinity87/rgb_rev1/config.h
+++ b/keyboards/mechlovin/infinity87/rgb_rev1/config.h
@@ -17,13 +17,6 @@
#pragma once
//rgb matrix setting
-// This is a 7-bit address, that gets left-shifted and bit 0
-// set to 0 for write, 1 for read (as per I2C protocol)
-// The address will vary depending on your wiring:
-// 0b0110000 AD <-> GND
-// 0b0110011 AD <-> VCC
-// 0b0110001 AD <-> SCL
-// 0b0110010 AD <-> SDA
#define RGB_DISABLE_WHEN_USB_SUSPENDED // turn off effects when suspended
#define RGB_MATRIX_KEYPRESSES
#undef ENABLE_RGB_MATRIX_SPLASH
@@ -80,7 +73,6 @@
//#define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_SOLID_COLOR
#define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_CYCLE_ALL
//#define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_SOLID_REACTIVE_SIMPLE
-#define DRIVER_ADDR_1 0b0110010
-#define DRIVER_COUNT 1
+#define IS31FL3741_I2C_ADDRESS_1 IS31FL3741_I2C_ADDRESS_SDA
#define RGB_MATRIX_LED_COUNT 91
#define DRIVER_INDICATOR_LED_TOTAL 0
diff --git a/keyboards/mechlovin/infinity87/rgb_rev1/rgb_rev1.c b/keyboards/mechlovin/infinity87/rgb_rev1/rgb_rev1.c
index c10d47d191..5649f80712 100644
--- a/keyboards/mechlovin/infinity87/rgb_rev1/rgb_rev1.c
+++ b/keyboards/mechlovin/infinity87/rgb_rev1/rgb_rev1.c
@@ -17,7 +17,7 @@
#include "quantum.h"
#ifdef RGB_MATRIX_ENABLE
-const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = {
+const is31fl3741_led_t PROGMEM g_is31fl3741_leds[RGB_MATRIX_LED_COUNT] = {
{0, CS34_SW1, CS35_SW1, CS36_SW1}, //D92-K00-0
{0, CS37_SW1, CS38_SW1, CS39_SW1}, //D94-K01-1
{0, CS31_SW1, CS32_SW1, CS33_SW1}, //D96-K02-2
diff --git a/keyboards/mechlovin/kanu/keymaps/dhertz/keymap.c b/keyboards/mechlovin/kanu/keymaps/dhertz/keymap.c
deleted file mode 100644
index d3b9987bd8..0000000000
--- a/keyboards/mechlovin/kanu/keymaps/dhertz/keymap.c
+++ /dev/null
@@ -1,62 +0,0 @@
-#include QMK_KEYBOARD_H
-#include "dhertz.h"
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- /* Layer 0: Default Layer
- * ,---------------------------------------------------------------.
- * |Esc| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =| Backsp|Del|
- * |---------------------------------------------------------------|
- * |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]|Enter|Hom|
- * |------------------------------------------------------` |---|
- * |SrCtl | A| S| D| F| G| H| J| K| L| ;| '| \| |End|
- * |---------------------------------------------------------------|
- * |Shif| #| Z| X| C| V| B| N| M| ,| .| /|Shift |Up |PgD|
- * |---------------------------------------------------------------|
- * |NcCtl| Alt| CTab| LyrSpc | CGv| Alt|Lef|Dow|Rig|
- * `---------------------------------------------------------------'
- */
- [0] = LAYOUT_65_iso_blocker(
- KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL,
- 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_HOME,
- SRCH_CTL, 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_END,
- KC_LSFT, HSH_TLD, 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_PGDN,
- NC_CTL, KC_LALT, CMD_TAB_CMD, LYR_SPC, CMD_GRV_CMD, KC_RALT, KC_LEFT, KC_DOWN, KC_RIGHT
- ),
- /* Layer 1: Special
- * ,---------------------------------------------------------------.
- * | §| F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12| |Iso|
- * |---------------------------------------------------------------|
- * | | | | | | | | | | | | | | | |
- * |------------------------------------------------------` |---|
- * | | | | | | | | | |CSL| | | `| | |
- * |---------------------------------------------------------------|
- * | | `| | |CAC| | | | | | | | |PgU| |
- * |---------------------------------------------------------------|
- * | | | | | | |Hom|PgD|End|
- * `---------------------------------------------------------------'
- */
- [1] = LAYOUT_65_iso_blocker(
- KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, ISO_COUNTRY_CODE,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, CMD_SFT_L, KC_TRNS, KC_TRNS, KC_NUBS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_NUBS, KC_TRNS, KC_TRNS, CMD_ALT_C, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PGUP, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_PGDN, KC_END
- ),
-};
-
-void keyboard_post_init_user(void) {
- rgblight_enable_noeeprom();
- rgblight_sethsv(HSV_TEAL);
-}
-
-layer_state_t layer_state_set_keymap(layer_state_t state) {
- switch (get_highest_layer(state)) {
- case 1:
- rgblight_sethsv_noeeprom(HSV_MAGENTA);
- break;
- default: // for any other layers, or the default layer
- rgblight_sethsv_noeeprom(HSV_TEAL);
- break;
- }
- return state;
-}
diff --git a/keyboards/mechlovin/olly/octagon/config.h b/keyboards/mechlovin/olly/octagon/config.h
index 4e502b6154..88918506eb 100644
--- a/keyboards/mechlovin/olly/octagon/config.h
+++ b/keyboards/mechlovin/olly/octagon/config.h
@@ -18,18 +18,10 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#pragma once
#ifdef LED_MATRIX_ENABLE
-// This is a 7-bit address, that gets left-shifted and bit 0
-// set to 0 for write, 1 for read (as per I2C protocol)
-// The address will vary depending on your wiring:
-// 0b1110100 AD <-> GND
-// 0b1110111 AD <-> VCC
-// 0b1110101 AD <-> SCL
-// 0b1110110 AD <-> SDA
-#define LED_DRIVER_ADDR_1 0b1110110
+#define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_SDA
#define I2C_DRIVER I2CD2
#define I2C1_SCL_PIN B10
#define I2C1_SDA_PIN B11
-#define LED_DRIVER_COUNT 1
#define LED_MATRIX_LED_COUNT 94
#define LED_MATRIX_KEYPRESSES // reacts to keypresses
#define LED_MATRIX_KEYRELEASES // reacts to keyreleases (instead of keypresses)
diff --git a/keyboards/mechlovin/olly/octagon/octagon.c b/keyboards/mechlovin/olly/octagon/octagon.c
index 41f9dbb438..b5eb828bc8 100644
--- a/keyboards/mechlovin/olly/octagon/octagon.c
+++ b/keyboards/mechlovin/olly/octagon/octagon.c
@@ -16,7 +16,7 @@
#include "quantum.h"
-const is31_led PROGMEM g_is31_leds[LED_MATRIX_LED_COUNT] = {
+const is31fl3731_led_t PROGMEM g_is31fl3731_leds[LED_MATRIX_LED_COUNT] = {
/* Refer to IS31 manual for these locations
* driver
* | LED address
diff --git a/keyboards/mechlovin/zed60/config.h b/keyboards/mechlovin/zed60/config.h
index cdbbd6dd0e..13e17a7bb6 100644
--- a/keyboards/mechlovin/zed60/config.h
+++ b/keyboards/mechlovin/zed60/config.h
@@ -17,5 +17,5 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#pragma once
-#define WS2812_SPI SPID1 // default: SPID1
+#define WS2812_SPI_DRIVER SPID1 // default: SPID1
#define WS2812_SPI_MOSI_PAL_MODE 6 // MOSI pin "alternate function", see the respective datasheet for the appropriate values for your MCU. default: 5
diff --git a/keyboards/mechlovin/zed65/910/config.h b/keyboards/mechlovin/zed65/910/config.h
index a5902fa9c1..f21653f5af 100644
--- a/keyboards/mechlovin/zed65/910/config.h
+++ b/keyboards/mechlovin/zed65/910/config.h
@@ -17,5 +17,5 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#pragma once
-#define WS2812_SPI SPID1 // default: SPID1
+#define WS2812_SPI_DRIVER SPID1 // default: SPID1
#define WS2812_SPI_MOSI_PAL_MODE 6 // MOSI pin "alternate function", see the respective datasheet for the appropriate values for your MCU. default: 5
diff --git a/keyboards/mechlovin/zed65/mono_led/config.h b/keyboards/mechlovin/zed65/mono_led/config.h
index 1ec1746456..811841d7fe 100644
--- a/keyboards/mechlovin/zed65/mono_led/config.h
+++ b/keyboards/mechlovin/zed65/mono_led/config.h
@@ -18,18 +18,10 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#pragma once
#ifdef LED_MATRIX_ENABLE
-// This is a 7-bit address, that gets left-shifted and bit 0
-// set to 0 for write, 1 for read (as per I2C protocol)
-// The address will vary depending on your wiring:
-// 0b1110100 AD <-> GND
-// 0b1110111 AD <-> VCC
-// 0b1110101 AD <-> SCL
-// 0b1110110 AD <-> SDA
-#define LED_DRIVER_ADDR_1 0b1110110
+#define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_SDA
#define I2C_DRIVER I2CD2
#define I2C1_SCL_PIN B10
#define I2C1_SDA_PIN B11
-#define LED_DRIVER_COUNT 1
#define LED_MATRIX_LED_COUNT 70
#define LED_MATRIX_KEYPRESSES // reacts to keypresses
#define LED_MATRIX_KEYRELEASES // reacts to keyreleases (instead of keypresses)
diff --git a/keyboards/mechlovin/zed65/mono_led/mono_led.c b/keyboards/mechlovin/zed65/mono_led/mono_led.c
index e618d41489..f66c4b1359 100644
--- a/keyboards/mechlovin/zed65/mono_led/mono_led.c
+++ b/keyboards/mechlovin/zed65/mono_led/mono_led.c
@@ -19,7 +19,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
-const is31_led PROGMEM g_is31_leds[LED_MATRIX_LED_COUNT] = {
+const is31fl3731_led_t PROGMEM g_is31fl3731_leds[LED_MATRIX_LED_COUNT] = {
/* Refer to IS31 manual for these locations
* driver
* | LED address
diff --git a/keyboards/mechlovin/zed65/no_backlight/wearhaus66/config.h b/keyboards/mechlovin/zed65/no_backlight/wearhaus66/config.h
index 5cb2a00b88..3bec308941 100644
--- a/keyboards/mechlovin/zed65/no_backlight/wearhaus66/config.h
+++ b/keyboards/mechlovin/zed65/no_backlight/wearhaus66/config.h
@@ -17,5 +17,5 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#pragma once
-#define WS2812_SPI SPID2 // default: SPID1
+#define WS2812_SPI_DRIVER SPID2 // default: SPID1
#define WS2812_SPI_MOSI_PAL_MODE 0 // MOSI pin "alternate function", see the respective datasheet for the appropriate values for your MCU. default: 5
diff --git a/keyboards/mechlovin/zed65/rev1/config.h b/keyboards/mechlovin/zed65/rev1/config.h
index 24efedfffb..4ed1992992 100644
--- a/keyboards/mechlovin/zed65/rev1/config.h
+++ b/keyboards/mechlovin/zed65/rev1/config.h
@@ -18,7 +18,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#pragma once
#ifdef RGBLIGHT_ENABLE
-#define WS2812_SPI SPID1 // default: SPID1
+#define WS2812_SPI_DRIVER SPID1 // default: SPID1
#define WS2812_SPI_MOSI_PAL_MODE 6 // MOSI pin "alternate function", see the respective datasheet for the appropriate values for your MCU. default: 5
#define WS2812_SPI_USE_CIRCULAR_BUFFER
#endif
diff --git a/keyboards/mechwild/bbs/config.h b/keyboards/mechwild/bbs/config.h
index d19f39dd13..b626e5590d 100644
--- a/keyboards/mechwild/bbs/config.h
+++ b/keyboards/mechwild/bbs/config.h
@@ -3,10 +3,6 @@
#pragma once
-
-/* allows the "key" button on the blackpill to toggle caps lock for user testing before soldering */
-#define DIP_SWITCH_PINS { A0 }
-
/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
#define LOCKING_SUPPORT_ENABLE
/* Locking resynchronize hack */
diff --git a/keyboards/mechwild/bbs/info.json b/keyboards/mechwild/bbs/info.json
index 39c23e2fff..c0ba888d9a 100644
--- a/keyboards/mechwild/bbs/info.json
+++ b/keyboards/mechwild/bbs/info.json
@@ -14,6 +14,9 @@
"rows": ["B12", "B10", "B13", "B1", "B14"]
},
"diode_direction": "COL2ROW",
+ "dip_switch": {
+ "pins": ["A0"]
+ },
"indicators": {
"caps_lock": "C13",
"on_state": 0
diff --git a/keyboards/mechwild/bbs/keymaps/default/keymap.c b/keyboards/mechwild/bbs/keymaps/default/keymap.c
index 1eabdcd540..146099fba7 100644
--- a/keyboards/mechwild/bbs/keymaps/default/keymap.c
+++ b/keyboards/mechwild/bbs/keymaps/default/keymap.c
@@ -2,7 +2,6 @@
// SPDX-License-Identifier: GPL-2.0-or-later
#include QMK_KEYBOARD_H
-#include "keymap_steno.h"
// Defines names for use in layer keycodes and the keymap
enum layer_names {
diff --git a/keyboards/mechwild/bde/rev2/keymaps/miketronic/config.h b/keyboards/mechwild/bde/rev2/keymaps/miketronic/config.h
deleted file mode 100644
index 658c829f04..0000000000
--- a/keyboards/mechwild/bde/rev2/keymaps/miketronic/config.h
+++ /dev/null
@@ -1,10 +0,0 @@
-// Copyright 2023 @miketronic -- Mike B <mxb540@gmail.com>
-// SPDX-License-Identifier: GPL-2.0+
-
-#pragma once
-
-# define TAPPING_TERM 160
-# define TAPPING_TERM_PER_KEY
-# define HOLD_ON_OTHER_KEY_PRESS
-# define QUICK_TAP_TERM TAPPING_TERM / 2
-# define QUICK_TAP_TERM_PER_KEY
diff --git a/keyboards/mechwild/bde/rev2/keymaps/miketronic/keymap.c b/keyboards/mechwild/bde/rev2/keymaps/miketronic/keymap.c
deleted file mode 100644
index e8a26fd28a..0000000000
--- a/keyboards/mechwild/bde/rev2/keymaps/miketronic/keymap.c
+++ /dev/null
@@ -1,221 +0,0 @@
-// Copyright 2023 @miketronic -- Mike B <mxb540@gmail.com>
-// SPDX-License-Identifier: GPL-2.0+
-
-#include "miketronic.h"
-
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
- /* WORKMAN
- * ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐
- * │ Q │ D │ R │ W │ B │ 7 │ 8 │ 9 │ J │ F │ U │ P │ BSPC│BSPC │
- * │ ESC │ │ │ │ SYM │ │ │ │ SYM │ │ │ │ │ │
- * ├─────┼─────┼─────╆━━━━━╅─────┼─────┼─────┼─────┼─────╆━━━━━╅─────┼─────┼─────┼─────┤
- * │ A │ S │ H ┃ T ┃ G │ 4 │ 5 │ 6 │ Y ┃ N ┃ E │ O │ I │UP │
- * │SHIFT│ │ ┃ EX ┃ │ │ │ │ ┃ ┃ │ │ │RIGHT│
- * ├─────┼─────┼─────╄━━━━━╃─────┼─────┼─────┼─────┼─────╄━━━━━╃─────┼─────┼─────┼─────┤
- * │ Z │ X │ M │ C │ V │ 1 │ 2 │ 3 │ K │ L │ SPC │ SPC │ENTER│DOWN │
- * │ FN │ CTRL│ OS │ ALT │LOWER│ │ 0 │ │RAISE│RAISE│ │ │ │LEFT │
- * └─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘
- *
- */
-
- [_WM] = LAYOUT_3x14_wrapper (
- _____________WORKMAN_310_001_L_____________, _________NUMBER_01__________, _____________WORKMAN_310_001_R_____________, KC_BSPC,
- _____________WORKMAN_310_002_L_____________, _________NUMBER_02__________, _____________WORKMAN_310_002_R_____________, TD_UR,
- _____________WORKMAN_310_003_L_____________, _________NUMBER_03__________, _____________WORKMAN_310_003_R_____________, TD_DL
- ),
-
- [_QW] = LAYOUT_3x14_wrapper (
- _________________QWERTY_L1_________________, _________NUMBER_01__________, _________________QWERTY_R1_________________, KC_MUTE,
- _________________QWERTY_L2_________________, _________NUMBER_02__________, _________________QWERTY_R2_________________, TD_UR,
- _________________QWERTY_L3_________________, _________NUMBER_03__________, _________________QWERTY_R3_________________, TD_DL
- ),
-
-
- /* LOWER
- * ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐
- * │ () │ [] │ /\ │ │ │ │ 7 │ 8 │ 9 │ 0 │ │ │ │LEAD │
- * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
- * ├─────┼─────┼─────╆━━━━━╅─────┼─────╆━━━━━╅─────┼─────┼─────┼─────┼─────┼─────┼─────┤
- * │ @ # │ & % │ ┃ ┃ │ ┃ 4 ┃ 5 │ 6 │ │ │ │ │ │
- * │ │ │ ┃ ┃ │ ┃ ┃ │ │ │ │ │ │ │
- * ├─────┼─────┼─────╄━━━━━╃─────┼─────╄━━━━━╃─────┼─────┼─────┼─────┼─────┼─────┼─────┤
- * │ │ │ │ │ │ 0 │ 1 │ 2 │ 3 │ . │ │ │ │ │
- * │ │ │ │ │LOWER│ │ │ 0 │ │ ENT │ │ │ │ │
- * └─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘
- *
- */
-
- [_LOWER] = LAYOUT_3x14_wrapper (
- _______________LOWER_310_L1________________, _________NUMBER_01__________, _______________LOWER_310_R1________________, QK_LEAD,
- _______________LOWER_310_L2________________, _________NUMBER_02__________, _______________LOWER_310_R2________________, TD_UR,
- _______________LOWER_310_L3________________, _________NUMBER_03__________, _______________LOWER_310_R3________________, TD_DL
- ),
-
-
- /* RAISE
- * ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐
- * │ BOOT│DEBUG│ │ │ MAKE│ │ F7 │ F8 │ F9 │ F10 │ │ │ │LEAD │
- * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
- * ├─────┼─────┼─────╆━━━━━╅─────┼─────╆━━━━━╅─────┼─────┼─────┼─────┼─────┼─────┼─────┤
- * │ │ RGB │ RGB ┃ RGB ┃ RGB │ _ ┃ F4 ┃ F5 │ F6 │ F11 │ │ │ │ │
- * │ │ TOG │ MOD ┃ HUI ┃ HUD │ - ┃ ┃ _ │ │ │ │ │ │ │
- * ├─────┼─────┼─────╄━━━━━╃─────┼─────╄━━━━━╃─────┼─────┼─────┼─────┼─────┼─────┼─────┤
- * │ │ RGB │ RGB │ RGB │ RGB │RAISE│ F1 │ F2 │ F3 │ F12 │ │ │ │ │
- * │ │ SAI │ SAD │ VAI │ VAD │ │ │ │ │ │ │ │ │ │
- * └─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘
- *
- */
-
- [_RAISE] = LAYOUT_3x14_wrapper (
- _______________RAISE_310_L1________________, _________NUMBER_01__________, _______________RAISE_310_R1________________, QK_LEAD,
- _______________RAISE_310_L2________________, _________NUMBER_02__________, _______________RAISE_310_R2________________, TD_UR,
- _______________RAISE_310_L3________________, _________NUMBER_03__________, _______________RAISE_310_R3________________, TD_DL
- ),
-
-
- /* EXTRAS
- * ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐
- * │ ! │ │ │ │ │ │ /\ | () | [] | ; │ │ │ │LEAD │
- * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
- * ├─────┼─────┼─────╆━━━━━╅─────┼─────╆━━━━━╅─────┼─────┼─────┼─────┼─────┼─────┼─────┤
- * │ │ │ ┃EXTRA┃ │ ┃ @ # ┃ & % | | ' | │ │ │ │
- * │ │ │ ┃ ┃ │ ┃ ┃ _ │ │ │ │ │ │ │
- * ├─────┼─────┼─────╄━━━━━╃─────┼─────╄━━━━━╃─────┼─────┼─────┼─────┼─────┼─────┼─────┤
- * │ │ │ │ │ │ │ │ , | . | ? │ │ │ │ │
- * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
- * └─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘
- */
-
- [_EX] = LAYOUT_3x14_wrapper (
- ______________EXTRAS_310_L1________________, _________NUMBER_01__________, ______________EXTRAS_310_R1________________, QK_LEAD,
- ______________EXTRAS_310_L2________________, _________NUMBER_02__________, ______________EXTRAS_310_R2________________, TD_UR,
- ______________EXTRAS_310_L3________________, _________NUMBER_03__________, ______________EXTRAS_310_R3________________, TD_DL
-),
-
-
- /* FUNCTION
- * ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐
- * │COPY │CLIP │ SS │ │ │ │ │ │ | /\ │ UP │ │ DEL │LEAD │
- * │PASTE│ │ │ │ │ │ │ │ │ │ │ │ │ │
- * ├─────┼─────┼─────╆━━━━━╅─────┼─────┼─────┼─────┼─────╆━━━━━╅─────┼─────┼─────┼─────┤
- * │SHIFT│ M05 │ M06 ┃ M07 ┃ M08 │ │ │ │ ┃ LEFT┃ DOWN│RIGHT│ │ UP │
- * │ │ │ ┃ ┃ │ │ │ │ ┃ ┃ │ │ │RIGHT│
- * ├─────┼─────┼─────╄━━━━━╃─────┼─────┼─────┼─────┼─────╄━━━━━╃─────┼─────┼─────┼─────┤
- * │ │ M01 │ M02 │ M03 │ M04 │ │ │ | | │ , │ . │ │DOWN │
- * │ FN │ │ │ │ │ │ │ │ │ │ │ │ │LEFT │
- * └─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘
- */
-
- [_FN] = LAYOUT_3x14_wrapper (
- _____________FUNCTION_310_L1_______________, _________NUMBER_01__________, _____________FUNCTION_310_R1_______________, QK_LEAD,
- _____________FUNCTION_310_L2_______________, _________NUMBER_02__________, _____________FUNCTION_310_R2_______________, TD_UR,
- _____________FUNCTION_310_L3_______________, _________NUMBER_03__________, _____________FUNCTION_310_R3_______________, TD_DL
- ),
-
-
-
- /* SYMBOLS
- * ┌─────┬─────┬─────┬─────┬─────┐ ┌─────┬─────┬─────┬─────┬─────┐
- * │ $ │ ^ │ < │ > │ │ │ │ | │ [ │ ] │ - │
- * │ │ │ │ │ SYMB│ │ SYMB│ │ │ │ │
- * ├─────┼─────┼─────╆━━━━━╅─────┤ ├─────╆━━━━━╅─────┼─────┼─────┤
- * │ % │ : │ ; ┃ + ┃ = │ │ ┃ ┃ ( │ ) │ _ │
- * │ │ │ ┃ ┃ │ │ ┃ ┃ │ │ │
- * ├─────┼─────┼─────╄━━━━━╃─────┤ ├─────╄━━━━━╃─────┼─────┼─────┤
- * │ & │ ' │ " │ * │ # │ │ ! │ ? │ / │ \ │ @ │
- * │ │ │ │ │ │ │ │ │ │ │ │
- * └─────┴─────┴─────┴─────┴─────┘ └─────┴─────┴─────┴─────┴─────┘
- */
-
- [_SYMB] = LAYOUT_3x14_wrapper (
- _____________SYMBOLS_310_L1________________, _________NUMBER_01__________, _____________SYMBOLS_310_R1________________, QK_LEAD,
- _____________SYMBOLS_310_L2________________, _________NUMBER_02__________, _____________SYMBOLS_310_R2________________, TD_UR,
- _____________SYMBOLS_310_L3________________, _________NUMBER_03__________, _____________SYMBOLS_310_R3________________, TD_DL
- ),
-
-
-
-};
-
-
-#ifndef NUM_DIRECTIONS
-# define NUM_DIRECTIONS 2
-#endif
-#ifdef ENCODER_MAP_ENABLE
-const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = {
- [_WM] = { ENCODER_CCW_CW(LCTL(KC_V), LCTL(KC_C)) },
- [_QW] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) },
- [_LOWER] = { ENCODER_CCW_CW(____, ____) },
- [_RAISE] = { ENCODER_CCW_CW(____, ____) },
- [_EX] = { ENCODER_CCW_CW(____, ____) },
- [_FN] = { ENCODER_CCW_CW(RGB_MOD, RGB_RMOD) },
- [_SYMB] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }
-};
-#endif
-
-bool get_hold_on_other_key_press(uint16_t keycode, keyrecord_t *record) {
- switch (keycode) {
- case SFT_T(KC_A):
- // Do not force the mod-tap key press to be handled as a modifier
- // if any other key was pressed while the mod-tap key is held down.
- return false;
- case TEX:
- return false;
- case CTRLX:
- return false;
- case FNZ:
- return false;
- case MGUI:
- return false;
- case VLOWER:
- return false;
- case KRAISE:
- return false;
- default:
- // Force the dual-role key press to be handled as a modifier if any
- // other key was pressed while the mod-tap key is held down.
- return true;
- }
-}
-
-#ifdef AUDIO_ENABLE
-float leader_start_song[][2] = SONG(ONE_UP_SOUND);
-float leader_succeed_song[][2] = SONG(ALL_STAR);
-float leader_fail_song[][2] = SONG(RICK_ROLL);
-#endif
-
-void matrix_scan_user(void);
-
-void leader_start_user(void) {
-#ifdef AUDIO_ENABLE
- PLAY_SONG(leader_start_song);
-#endif
-}
-
-bool did_leader_succeed;
-
-void leader_end_user(void) {
- did_leader_succeed = false;
-
- if (leader_sequence_one_key(KC_E)) {
- SEND_STRING(SS_LCTL(SS_LSFT("t")));
- did_leader_succeed = true;
- } else if (leader_sequence_two_keys(KC_E, KC_D)) {
- SEND_STRING(SS_LGUI("r") "cmd\n" SS_LCTL("c"));
- did_leader_succeed = true;
- } else if (leader_sequence_two_keys(KC_A, KC_T)) {
- SEND_STRING("@guidehouse.com");
- did_leader_succeed = true;
- }
-
-
-#ifdef AUDIO_ENABLE
- if (did_leader_succeed) {
- PLAY_SONG(leader_succeed_song);
- } else {
- PLAY_SONG(leader_fail_song);
- }
-#endif
-} \ No newline at end of file
diff --git a/keyboards/mechwild/bde/rev2/keymaps/miketronic/rules.mk b/keyboards/mechwild/bde/rev2/keymaps/miketronic/rules.mk
deleted file mode 100644
index 6cdd598124..0000000000
--- a/keyboards/mechwild/bde/rev2/keymaps/miketronic/rules.mk
+++ /dev/null
@@ -1,12 +0,0 @@
-BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite
-EXTRAKEY_ENABLE = yes # Audio control and System control
-TAP_DANCE_ENABLE = yes # Tap Dance keys
-NKRO_ENABLE = yes # Enable N-Key Rollover
-MACROS_ENABLED = yes
-LEADER_ENABLE = yes
-
-ENCODER_ENABLE = yes
-ENCODER_MAP_ENABLE = yes
-OLED_ENABLE = yes # Enable OLED Screen
-
-RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
diff --git a/keyboards/mechwild/clunker/config.h b/keyboards/mechwild/clunker/config.h
index 62caa25bb3..ee32fde520 100644
--- a/keyboards/mechwild/clunker/config.h
+++ b/keyboards/mechwild/clunker/config.h
@@ -3,20 +3,4 @@
#pragma once
-/*
- * 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 SOLENOID_PIN F4
diff --git a/keyboards/mechwild/clunker/info.json b/keyboards/mechwild/clunker/info.json
index 530f0fe972..1a4114f8f2 100644
--- a/keyboards/mechwild/clunker/info.json
+++ b/keyboards/mechwild/clunker/info.json
@@ -2,88 +2,612 @@
"manufacturer": "MechWild",
"keyboard_name": "Clunker",
"maintainer": "kylemccreery",
- "bootloader": "caterina",
+ "development_board": "promicro",
"diode_direction": "COL2ROW",
+ "encoder": {
+ "rotary": [
+ {"pin_a": "D2", "pin_b": "D3"}
+ ]
+ },
"features": {
"bootmagic": true,
- "command": false,
- "console": false,
+ "encoder": true,
"extrakey": true,
+ "haptic": true,
"mousekey": true,
- "nkro": true,
- "encoder": true,
- "haptic": true
+ "nkro": true
},
"matrix_pins": {
- "rows": ["F5", "F6", "B3", "F7", "B2", "B1", "B6"],
- "cols": ["D1", "D0", "D4", "C6", "D7", "E6", "B4", "B5"]
+ "cols": ["D1", "D0", "D4", "C6", "D7", "E6", "B4", "B5"],
+ "rows": ["F5", "F6", "B3", "F7", "B2", "B1", "B6"]
},
- "processor": "atmega32u4",
"url": "https://mechwild.com/product/clunker/",
"usb": {
"device_version": "1.3.0",
"pid": "0x1711",
"vid": "0x6D77"
},
- "encoder": {
- "rotary": [
- {"pin_a": "D2", "pin_b": "D3"}
- ]
+ "layout_aliases": {
+ "LAYOUT": "LAYOUT_all"
},
"layouts": {
- "LAYOUT": {
+ "LAYOUT_625u": {
+ "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": [0, 6], "x": 6, "y": 0},
+ {"matrix": [0, 7], "x": 7, "y": 0},
+ {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
+ {"matrix": [1, 1], "x": 1.5, "y": 1},
+ {"matrix": [1, 2], "x": 2.5, "y": 1},
+ {"matrix": [1, 3], "x": 3.5, "y": 1},
+ {"matrix": [1, 4], "x": 4.5, "y": 1},
+ {"matrix": [1, 5], "x": 5.5, "y": 1},
+ {"matrix": [1, 6], "x": 6.5, "y": 1},
+ {"matrix": [1, 7], "x": 7.5, "y": 1},
+ {"matrix": [5, 7], "x": 8.5, "y": 1},
+ {"matrix": [5, 6], "x": 9.5, "y": 1},
+ {"matrix": [5, 5], "x": 10.5, "y": 1},
+ {"matrix": [5, 4], "x": 11.5, "y": 1},
+ {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
+ {"matrix": [2, 1], "x": 1.75, "y": 2},
+ {"matrix": [2, 2], "x": 2.75, "y": 2},
+ {"matrix": [2, 3], "x": 3.75, "y": 2},
+ {"matrix": [2, 4], "x": 4.75, "y": 2},
+ {"matrix": [2, 5], "x": 5.75, "y": 2},
+ {"matrix": [2, 6], "x": 6.75, "y": 2},
+ {"matrix": [2, 7], "x": 7.75, "y": 2},
+ {"matrix": [5, 1], "x": 8.75, "y": 2},
+ {"matrix": [5, 2], "x": 9.75, "y": 2},
+ {"matrix": [5, 3], "x": 10.75, "y": 2, "w": 1.75},
+ {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25},
+ {"matrix": [3, 2], "x": 2.25, "y": 3},
+ {"matrix": [3, 3], "x": 3.25, "y": 3},
+ {"matrix": [3, 4], "x": 4.25, "y": 3},
+ {"matrix": [3, 5], "x": 5.25, "y": 3},
+ {"matrix": [3, 6], "x": 6.25, "y": 3},
+ {"matrix": [3, 7], "x": 7.25, "y": 3},
+ {"matrix": [6, 7], "x": 8.25, "y": 3},
+ {"matrix": [6, 6], "x": 9.25, "y": 3},
+ {"matrix": [6, 5], "x": 10.25, "y": 3, "w": 2.25},
+ {"matrix": [4, 0], "x": 0, "y": 4},
+ {"matrix": [4, 1], "x": 1, "y": 4, "w": 1.25},
+ {"matrix": [4, 2], "x": 2.25, "y": 4},
+ {"matrix": [4, 3], "x": 3.25, "y": 4, "w": 6.25},
+ {"matrix": [4, 5], "x": 9.5, "y": 4},
+ {"matrix": [4, 6], "x": 10.5, "y": 4},
+ {"matrix": [4, 7], "x": 11.5, "y": 4}
+ ]
+ },
+ "LAYOUT_7u": {
+ "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": [0, 6], "x": 6, "y": 0},
+ {"matrix": [0, 7], "x": 7, "y": 0},
+ {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
+ {"matrix": [1, 1], "x": 1.5, "y": 1},
+ {"matrix": [1, 2], "x": 2.5, "y": 1},
+ {"matrix": [1, 3], "x": 3.5, "y": 1},
+ {"matrix": [1, 4], "x": 4.5, "y": 1},
+ {"matrix": [1, 5], "x": 5.5, "y": 1},
+ {"matrix": [1, 6], "x": 6.5, "y": 1},
+ {"matrix": [1, 7], "x": 7.5, "y": 1},
+ {"matrix": [5, 7], "x": 8.5, "y": 1},
+ {"matrix": [5, 6], "x": 9.5, "y": 1},
+ {"matrix": [5, 5], "x": 10.5, "y": 1},
+ {"matrix": [5, 4], "x": 11.5, "y": 1},
+ {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
+ {"matrix": [2, 1], "x": 1.75, "y": 2},
+ {"matrix": [2, 2], "x": 2.75, "y": 2},
+ {"matrix": [2, 3], "x": 3.75, "y": 2},
+ {"matrix": [2, 4], "x": 4.75, "y": 2},
+ {"matrix": [2, 5], "x": 5.75, "y": 2},
+ {"matrix": [2, 6], "x": 6.75, "y": 2},
+ {"matrix": [2, 7], "x": 7.75, "y": 2},
+ {"matrix": [5, 1], "x": 8.75, "y": 2},
+ {"matrix": [5, 2], "x": 9.75, "y": 2},
+ {"matrix": [5, 3], "x": 10.75, "y": 2, "w": 1.75},
+ {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25},
+ {"matrix": [3, 2], "x": 2.25, "y": 3},
+ {"matrix": [3, 3], "x": 3.25, "y": 3},
+ {"matrix": [3, 4], "x": 4.25, "y": 3},
+ {"matrix": [3, 5], "x": 5.25, "y": 3},
+ {"matrix": [3, 6], "x": 6.25, "y": 3},
+ {"matrix": [3, 7], "x": 7.25, "y": 3},
+ {"matrix": [6, 7], "x": 8.25, "y": 3},
+ {"matrix": [6, 6], "x": 9.25, "y": 3},
+ {"matrix": [6, 5], "x": 10.25, "y": 3, "w": 2.25},
+ {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25},
+ {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.5},
+ {"matrix": [4, 3], "x": 2.75, "y": 4, "w": 7},
+ {"matrix": [4, 6], "x": 9.75, "y": 4, "w": 1.5},
+ {"matrix": [4, 7], "x": 11.25, "y": 4, "w": 1.25}
+ ]
+ },
+ "LAYOUT_split_lshift_625u": {
+ "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": [0, 6], "x": 6, "y": 0},
+ {"matrix": [0, 7], "x": 7, "y": 0},
+ {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
+ {"matrix": [1, 1], "x": 1.5, "y": 1},
+ {"matrix": [1, 2], "x": 2.5, "y": 1},
+ {"matrix": [1, 3], "x": 3.5, "y": 1},
+ {"matrix": [1, 4], "x": 4.5, "y": 1},
+ {"matrix": [1, 5], "x": 5.5, "y": 1},
+ {"matrix": [1, 6], "x": 6.5, "y": 1},
+ {"matrix": [1, 7], "x": 7.5, "y": 1},
+ {"matrix": [5, 7], "x": 8.5, "y": 1},
+ {"matrix": [5, 6], "x": 9.5, "y": 1},
+ {"matrix": [5, 5], "x": 10.5, "y": 1},
+ {"matrix": [5, 4], "x": 11.5, "y": 1},
+ {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
+ {"matrix": [2, 1], "x": 1.75, "y": 2},
+ {"matrix": [2, 2], "x": 2.75, "y": 2},
+ {"matrix": [2, 3], "x": 3.75, "y": 2},
+ {"matrix": [2, 4], "x": 4.75, "y": 2},
+ {"matrix": [2, 5], "x": 5.75, "y": 2},
+ {"matrix": [2, 6], "x": 6.75, "y": 2},
+ {"matrix": [2, 7], "x": 7.75, "y": 2},
+ {"matrix": [5, 1], "x": 8.75, "y": 2},
+ {"matrix": [5, 2], "x": 9.75, "y": 2},
+ {"matrix": [5, 3], "x": 10.75, "y": 2, "w": 1.75},
+ {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25},
+ {"matrix": [3, 1], "x": 1.25, "y": 3},
+ {"matrix": [3, 2], "x": 2.25, "y": 3},
+ {"matrix": [3, 3], "x": 3.25, "y": 3},
+ {"matrix": [3, 4], "x": 4.25, "y": 3},
+ {"matrix": [3, 5], "x": 5.25, "y": 3},
+ {"matrix": [3, 6], "x": 6.25, "y": 3},
+ {"matrix": [3, 7], "x": 7.25, "y": 3},
+ {"matrix": [6, 7], "x": 8.25, "y": 3},
+ {"matrix": [6, 6], "x": 9.25, "y": 3},
+ {"matrix": [6, 5], "x": 10.25, "y": 3, "w": 2.25},
+ {"matrix": [4, 0], "x": 0, "y": 4},
+ {"matrix": [4, 1], "x": 1, "y": 4, "w": 1.25},
+ {"matrix": [4, 2], "x": 2.25, "y": 4},
+ {"matrix": [4, 3], "x": 3.25, "y": 4, "w": 6.25},
+ {"matrix": [4, 5], "x": 9.5, "y": 4},
+ {"matrix": [4, 6], "x": 10.5, "y": 4},
+ {"matrix": [4, 7], "x": 11.5, "y": 4}
+ ]
+ },
+ "LAYOUT_split_lshift_7u": {
+ "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": [0, 6], "x": 6, "y": 0},
+ {"matrix": [0, 7], "x": 7, "y": 0},
+ {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
+ {"matrix": [1, 1], "x": 1.5, "y": 1},
+ {"matrix": [1, 2], "x": 2.5, "y": 1},
+ {"matrix": [1, 3], "x": 3.5, "y": 1},
+ {"matrix": [1, 4], "x": 4.5, "y": 1},
+ {"matrix": [1, 5], "x": 5.5, "y": 1},
+ {"matrix": [1, 6], "x": 6.5, "y": 1},
+ {"matrix": [1, 7], "x": 7.5, "y": 1},
+ {"matrix": [5, 7], "x": 8.5, "y": 1},
+ {"matrix": [5, 6], "x": 9.5, "y": 1},
+ {"matrix": [5, 5], "x": 10.5, "y": 1},
+ {"matrix": [5, 4], "x": 11.5, "y": 1},
+ {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
+ {"matrix": [2, 1], "x": 1.75, "y": 2},
+ {"matrix": [2, 2], "x": 2.75, "y": 2},
+ {"matrix": [2, 3], "x": 3.75, "y": 2},
+ {"matrix": [2, 4], "x": 4.75, "y": 2},
+ {"matrix": [2, 5], "x": 5.75, "y": 2},
+ {"matrix": [2, 6], "x": 6.75, "y": 2},
+ {"matrix": [2, 7], "x": 7.75, "y": 2},
+ {"matrix": [5, 1], "x": 8.75, "y": 2},
+ {"matrix": [5, 2], "x": 9.75, "y": 2},
+ {"matrix": [5, 3], "x": 10.75, "y": 2, "w": 1.75},
+ {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25},
+ {"matrix": [3, 1], "x": 1.25, "y": 3},
+ {"matrix": [3, 2], "x": 2.25, "y": 3},
+ {"matrix": [3, 3], "x": 3.25, "y": 3},
+ {"matrix": [3, 4], "x": 4.25, "y": 3},
+ {"matrix": [3, 5], "x": 5.25, "y": 3},
+ {"matrix": [3, 6], "x": 6.25, "y": 3},
+ {"matrix": [3, 7], "x": 7.25, "y": 3},
+ {"matrix": [6, 7], "x": 8.25, "y": 3},
+ {"matrix": [6, 6], "x": 9.25, "y": 3},
+ {"matrix": [6, 5], "x": 10.25, "y": 3, "w": 2.25},
+ {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25},
+ {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.5},
+ {"matrix": [4, 3], "x": 2.75, "y": 4, "w": 7},
+ {"matrix": [4, 6], "x": 9.75, "y": 4, "w": 1.5},
+ {"matrix": [4, 7], "x": 11.25, "y": 4, "w": 1.25}
+ ]
+ },
+ "LAYOUT_split_lshift_split_rshift_625u": {
+ "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": [0, 6], "x": 6, "y": 0},
+ {"matrix": [0, 7], "x": 7, "y": 0},
+ {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
+ {"matrix": [1, 1], "x": 1.5, "y": 1},
+ {"matrix": [1, 2], "x": 2.5, "y": 1},
+ {"matrix": [1, 3], "x": 3.5, "y": 1},
+ {"matrix": [1, 4], "x": 4.5, "y": 1},
+ {"matrix": [1, 5], "x": 5.5, "y": 1},
+ {"matrix": [1, 6], "x": 6.5, "y": 1},
+ {"matrix": [1, 7], "x": 7.5, "y": 1},
+ {"matrix": [5, 7], "x": 8.5, "y": 1},
+ {"matrix": [5, 6], "x": 9.5, "y": 1},
+ {"matrix": [5, 5], "x": 10.5, "y": 1},
+ {"matrix": [5, 4], "x": 11.5, "y": 1},
+ {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
+ {"matrix": [2, 1], "x": 1.75, "y": 2},
+ {"matrix": [2, 2], "x": 2.75, "y": 2},
+ {"matrix": [2, 3], "x": 3.75, "y": 2},
+ {"matrix": [2, 4], "x": 4.75, "y": 2},
+ {"matrix": [2, 5], "x": 5.75, "y": 2},
+ {"matrix": [2, 6], "x": 6.75, "y": 2},
+ {"matrix": [2, 7], "x": 7.75, "y": 2},
+ {"matrix": [5, 1], "x": 8.75, "y": 2},
+ {"matrix": [5, 2], "x": 9.75, "y": 2},
+ {"matrix": [5, 3], "x": 10.75, "y": 2, "w": 1.75},
+ {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25},
+ {"matrix": [3, 1], "x": 1.25, "y": 3},
+ {"matrix": [3, 2], "x": 2.25, "y": 3},
+ {"matrix": [3, 3], "x": 3.25, "y": 3},
+ {"matrix": [3, 4], "x": 4.25, "y": 3},
+ {"matrix": [3, 5], "x": 5.25, "y": 3},
+ {"matrix": [3, 6], "x": 6.25, "y": 3},
+ {"matrix": [3, 7], "x": 7.25, "y": 3},
+ {"matrix": [6, 7], "x": 8.25, "y": 3},
+ {"matrix": [6, 6], "x": 9.25, "y": 3},
+ {"matrix": [6, 5], "x": 10.25, "y": 3},
+ {"matrix": [6, 4], "x": 11.25, "y": 3, "w": 1.25},
+ {"matrix": [4, 0], "x": 0, "y": 4},
+ {"matrix": [4, 1], "x": 1, "y": 4, "w": 1.25},
+ {"matrix": [4, 2], "x": 2.25, "y": 4},
+ {"matrix": [4, 3], "x": 3.25, "y": 4, "w": 6.25},
+ {"matrix": [4, 5], "x": 9.5, "y": 4},
+ {"matrix": [4, 6], "x": 10.5, "y": 4},
+ {"matrix": [4, 7], "x": 11.5, "y": 4}
+ ]
+ },
+ "LAYOUT_split_lshift_split_rshift_7u": {
+ "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": [0, 6], "x": 6, "y": 0},
+ {"matrix": [0, 7], "x": 7, "y": 0},
+ {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
+ {"matrix": [1, 1], "x": 1.5, "y": 1},
+ {"matrix": [1, 2], "x": 2.5, "y": 1},
+ {"matrix": [1, 3], "x": 3.5, "y": 1},
+ {"matrix": [1, 4], "x": 4.5, "y": 1},
+ {"matrix": [1, 5], "x": 5.5, "y": 1},
+ {"matrix": [1, 6], "x": 6.5, "y": 1},
+ {"matrix": [1, 7], "x": 7.5, "y": 1},
+ {"matrix": [5, 7], "x": 8.5, "y": 1},
+ {"matrix": [5, 6], "x": 9.5, "y": 1},
+ {"matrix": [5, 5], "x": 10.5, "y": 1},
+ {"matrix": [5, 4], "x": 11.5, "y": 1},
+ {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
+ {"matrix": [2, 1], "x": 1.75, "y": 2},
+ {"matrix": [2, 2], "x": 2.75, "y": 2},
+ {"matrix": [2, 3], "x": 3.75, "y": 2},
+ {"matrix": [2, 4], "x": 4.75, "y": 2},
+ {"matrix": [2, 5], "x": 5.75, "y": 2},
+ {"matrix": [2, 6], "x": 6.75, "y": 2},
+ {"matrix": [2, 7], "x": 7.75, "y": 2},
+ {"matrix": [5, 1], "x": 8.75, "y": 2},
+ {"matrix": [5, 2], "x": 9.75, "y": 2},
+ {"matrix": [5, 3], "x": 10.75, "y": 2, "w": 1.75},
+ {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25},
+ {"matrix": [3, 1], "x": 1.25, "y": 3},
+ {"matrix": [3, 2], "x": 2.25, "y": 3},
+ {"matrix": [3, 3], "x": 3.25, "y": 3},
+ {"matrix": [3, 4], "x": 4.25, "y": 3},
+ {"matrix": [3, 5], "x": 5.25, "y": 3},
+ {"matrix": [3, 6], "x": 6.25, "y": 3},
+ {"matrix": [3, 7], "x": 7.25, "y": 3},
+ {"matrix": [6, 7], "x": 8.25, "y": 3},
+ {"matrix": [6, 6], "x": 9.25, "y": 3},
+ {"matrix": [6, 5], "x": 10.25, "y": 3},
+ {"matrix": [6, 4], "x": 11.25, "y": 3, "w": 1.25},
+ {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25},
+ {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.5},
+ {"matrix": [4, 3], "x": 2.75, "y": 4, "w": 7},
+ {"matrix": [4, 6], "x": 9.75, "y": 4, "w": 1.5},
+ {"matrix": [4, 7], "x": 11.25, "y": 4, "w": 1.25}
+ ]
+ },
+ "LAYOUT_split_rshift_625u": {
+ "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": [0, 6], "x": 6, "y": 0},
+ {"matrix": [0, 7], "x": 7, "y": 0},
+ {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
+ {"matrix": [1, 1], "x": 1.5, "y": 1},
+ {"matrix": [1, 2], "x": 2.5, "y": 1},
+ {"matrix": [1, 3], "x": 3.5, "y": 1},
+ {"matrix": [1, 4], "x": 4.5, "y": 1},
+ {"matrix": [1, 5], "x": 5.5, "y": 1},
+ {"matrix": [1, 6], "x": 6.5, "y": 1},
+ {"matrix": [1, 7], "x": 7.5, "y": 1},
+ {"matrix": [5, 7], "x": 8.5, "y": 1},
+ {"matrix": [5, 6], "x": 9.5, "y": 1},
+ {"matrix": [5, 5], "x": 10.5, "y": 1},
+ {"matrix": [5, 4], "x": 11.5, "y": 1},
+ {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
+ {"matrix": [2, 1], "x": 1.75, "y": 2},
+ {"matrix": [2, 2], "x": 2.75, "y": 2},
+ {"matrix": [2, 3], "x": 3.75, "y": 2},
+ {"matrix": [2, 4], "x": 4.75, "y": 2},
+ {"matrix": [2, 5], "x": 5.75, "y": 2},
+ {"matrix": [2, 6], "x": 6.75, "y": 2},
+ {"matrix": [2, 7], "x": 7.75, "y": 2},
+ {"matrix": [5, 1], "x": 8.75, "y": 2},
+ {"matrix": [5, 2], "x": 9.75, "y": 2},
+ {"matrix": [5, 3], "x": 10.75, "y": 2, "w": 1.75},
+ {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25},
+ {"matrix": [3, 2], "x": 2.25, "y": 3},
+ {"matrix": [3, 3], "x": 3.25, "y": 3},
+ {"matrix": [3, 4], "x": 4.25, "y": 3},
+ {"matrix": [3, 5], "x": 5.25, "y": 3},
+ {"matrix": [3, 6], "x": 6.25, "y": 3},
+ {"matrix": [3, 7], "x": 7.25, "y": 3},
+ {"matrix": [6, 7], "x": 8.25, "y": 3},
+ {"matrix": [6, 6], "x": 9.25, "y": 3},
+ {"matrix": [6, 5], "x": 10.25, "y": 3},
+ {"matrix": [6, 4], "x": 11.25, "y": 3, "w": 1.25},
+ {"matrix": [4, 0], "x": 0, "y": 4},
+ {"matrix": [4, 1], "x": 1, "y": 4, "w": 1.25},
+ {"matrix": [4, 2], "x": 2.25, "y": 4},
+ {"matrix": [4, 3], "x": 3.25, "y": 4, "w": 6.25},
+ {"matrix": [4, 5], "x": 9.5, "y": 4},
+ {"matrix": [4, 6], "x": 10.5, "y": 4},
+ {"matrix": [4, 7], "x": 11.5, "y": 4}
+ ]
+ },
+ "LAYOUT_split_rshift_7u": {
+ "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": [0, 6], "x": 6, "y": 0},
+ {"matrix": [0, 7], "x": 7, "y": 0},
+ {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
+ {"matrix": [1, 1], "x": 1.5, "y": 1},
+ {"matrix": [1, 2], "x": 2.5, "y": 1},
+ {"matrix": [1, 3], "x": 3.5, "y": 1},
+ {"matrix": [1, 4], "x": 4.5, "y": 1},
+ {"matrix": [1, 5], "x": 5.5, "y": 1},
+ {"matrix": [1, 6], "x": 6.5, "y": 1},
+ {"matrix": [1, 7], "x": 7.5, "y": 1},
+ {"matrix": [5, 7], "x": 8.5, "y": 1},
+ {"matrix": [5, 6], "x": 9.5, "y": 1},
+ {"matrix": [5, 5], "x": 10.5, "y": 1},
+ {"matrix": [5, 4], "x": 11.5, "y": 1},
+ {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
+ {"matrix": [2, 1], "x": 1.75, "y": 2},
+ {"matrix": [2, 2], "x": 2.75, "y": 2},
+ {"matrix": [2, 3], "x": 3.75, "y": 2},
+ {"matrix": [2, 4], "x": 4.75, "y": 2},
+ {"matrix": [2, 5], "x": 5.75, "y": 2},
+ {"matrix": [2, 6], "x": 6.75, "y": 2},
+ {"matrix": [2, 7], "x": 7.75, "y": 2},
+ {"matrix": [5, 1], "x": 8.75, "y": 2},
+ {"matrix": [5, 2], "x": 9.75, "y": 2},
+ {"matrix": [5, 3], "x": 10.75, "y": 2, "w": 1.75},
+ {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25},
+ {"matrix": [3, 2], "x": 2.25, "y": 3},
+ {"matrix": [3, 3], "x": 3.25, "y": 3},
+ {"matrix": [3, 4], "x": 4.25, "y": 3},
+ {"matrix": [3, 5], "x": 5.25, "y": 3},
+ {"matrix": [3, 6], "x": 6.25, "y": 3},
+ {"matrix": [3, 7], "x": 7.25, "y": 3},
+ {"matrix": [6, 7], "x": 8.25, "y": 3},
+ {"matrix": [6, 6], "x": 9.25, "y": 3},
+ {"matrix": [6, 5], "x": 10.25, "y": 3},
+ {"matrix": [6, 4], "x": 11.25, "y": 3, "w": 1.25},
+ {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25},
+ {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.5},
+ {"matrix": [4, 3], "x": 2.75, "y": 4, "w": 7},
+ {"matrix": [4, 6], "x": 9.75, "y": 4, "w": 1.5},
+ {"matrix": [4, 7], "x": 11.25, "y": 4, "w": 1.25}
+ ]
+ },
+ "LAYOUT_split_lshift_split_space": {
+ "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": [0, 6], "x": 6, "y": 0},
+ {"matrix": [0, 7], "x": 7, "y": 0},
+ {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
+ {"matrix": [1, 1], "x": 1.5, "y": 1},
+ {"matrix": [1, 2], "x": 2.5, "y": 1},
+ {"matrix": [1, 3], "x": 3.5, "y": 1},
+ {"matrix": [1, 4], "x": 4.5, "y": 1},
+ {"matrix": [1, 5], "x": 5.5, "y": 1},
+ {"matrix": [1, 6], "x": 6.5, "y": 1},
+ {"matrix": [1, 7], "x": 7.5, "y": 1},
+ {"matrix": [5, 7], "x": 8.5, "y": 1},
+ {"matrix": [5, 6], "x": 9.5, "y": 1},
+ {"matrix": [5, 5], "x": 10.5, "y": 1},
+ {"matrix": [5, 4], "x": 11.5, "y": 1},
+ {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
+ {"matrix": [2, 1], "x": 1.75, "y": 2},
+ {"matrix": [2, 2], "x": 2.75, "y": 2},
+ {"matrix": [2, 3], "x": 3.75, "y": 2},
+ {"matrix": [2, 4], "x": 4.75, "y": 2},
+ {"matrix": [2, 5], "x": 5.75, "y": 2},
+ {"matrix": [2, 6], "x": 6.75, "y": 2},
+ {"matrix": [2, 7], "x": 7.75, "y": 2},
+ {"matrix": [5, 1], "x": 8.75, "y": 2},
+ {"matrix": [5, 2], "x": 9.75, "y": 2},
+ {"matrix": [5, 3], "x": 10.75, "y": 2, "w": 1.75},
+ {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25},
+ {"matrix": [3, 1], "x": 1.25, "y": 3},
+ {"matrix": [3, 2], "x": 2.25, "y": 3},
+ {"matrix": [3, 3], "x": 3.25, "y": 3},
+ {"matrix": [3, 4], "x": 4.25, "y": 3},
+ {"matrix": [3, 5], "x": 5.25, "y": 3},
+ {"matrix": [3, 6], "x": 6.25, "y": 3},
+ {"matrix": [3, 7], "x": 7.25, "y": 3},
+ {"matrix": [6, 7], "x": 8.25, "y": 3},
+ {"matrix": [6, 6], "x": 9.25, "y": 3},
+ {"matrix": [6, 5], "x": 10.25, "y": 3, "w": 2.25},
+ {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25},
+ {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25},
+ {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25},
+ {"matrix": [4, 3], "x": 3.75, "y": 4, "w": 2.75},
+ {"matrix": [4, 4], "x": 6.5, "y": 4, "w": 2.25},
+ {"matrix": [4, 5], "x": 8.75, "y": 4, "w": 1.25},
+ {"matrix": [4, 6], "x": 10, "y": 4, "w": 1.25},
+ {"matrix": [4, 7], "x": 11.25, "y": 4, "w": 1.25}
+ ]
+ },
+ "LAYOUT_split_rshift_split_space": {
+ "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": [0, 6], "x": 6, "y": 0},
+ {"matrix": [0, 7], "x": 7, "y": 0},
+ {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
+ {"matrix": [1, 1], "x": 1.5, "y": 1},
+ {"matrix": [1, 2], "x": 2.5, "y": 1},
+ {"matrix": [1, 3], "x": 3.5, "y": 1},
+ {"matrix": [1, 4], "x": 4.5, "y": 1},
+ {"matrix": [1, 5], "x": 5.5, "y": 1},
+ {"matrix": [1, 6], "x": 6.5, "y": 1},
+ {"matrix": [1, 7], "x": 7.5, "y": 1},
+ {"matrix": [5, 7], "x": 8.5, "y": 1},
+ {"matrix": [5, 6], "x": 9.5, "y": 1},
+ {"matrix": [5, 5], "x": 10.5, "y": 1},
+ {"matrix": [5, 4], "x": 11.5, "y": 1},
+ {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
+ {"matrix": [2, 1], "x": 1.75, "y": 2},
+ {"matrix": [2, 2], "x": 2.75, "y": 2},
+ {"matrix": [2, 3], "x": 3.75, "y": 2},
+ {"matrix": [2, 4], "x": 4.75, "y": 2},
+ {"matrix": [2, 5], "x": 5.75, "y": 2},
+ {"matrix": [2, 6], "x": 6.75, "y": 2},
+ {"matrix": [2, 7], "x": 7.75, "y": 2},
+ {"matrix": [5, 1], "x": 8.75, "y": 2},
+ {"matrix": [5, 2], "x": 9.75, "y": 2},
+ {"matrix": [5, 3], "x": 10.75, "y": 2, "w": 1.75},
+ {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25},
+ {"matrix": [3, 2], "x": 2.25, "y": 3},
+ {"matrix": [3, 3], "x": 3.25, "y": 3},
+ {"matrix": [3, 4], "x": 4.25, "y": 3},
+ {"matrix": [3, 5], "x": 5.25, "y": 3},
+ {"matrix": [3, 6], "x": 6.25, "y": 3},
+ {"matrix": [3, 7], "x": 7.25, "y": 3},
+ {"matrix": [6, 7], "x": 8.25, "y": 3},
+ {"matrix": [6, 6], "x": 9.25, "y": 3},
+ {"matrix": [6, 5], "x": 10.25, "y": 3},
+ {"matrix": [6, 4], "x": 11.25, "y": 3, "w": 1.25},
+ {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25},
+ {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25},
+ {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25},
+ {"matrix": [4, 3], "x": 3.75, "y": 4, "w": 2.75},
+ {"matrix": [4, 4], "x": 6.5, "y": 4, "w": 2.25},
+ {"matrix": [4, 5], "x": 8.75, "y": 4, "w": 1.25},
+ {"matrix": [4, 6], "x": 10, "y": 4, "w": 1.25},
+ {"matrix": [4, 7], "x": 11.25, "y": 4, "w": 1.25}
+ ]
+ },
+ "LAYOUT_all": {
"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": [0, 6], "x": 6, "y": 0},
- {"matrix": [0, 7], "x": 7, "y": 0},
- {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
- {"matrix": [1, 1], "x": 1.5, "y": 1},
- {"matrix": [1, 2], "x": 2.5, "y": 1},
- {"matrix": [1, 3], "x": 3.5, "y": 1},
- {"matrix": [1, 4], "x": 4.5, "y": 1},
- {"matrix": [1, 5], "x": 5.5, "y": 1},
- {"matrix": [1, 6], "x": 6.5, "y": 1},
- {"matrix": [1, 7], "x": 7.5, "y": 1},
- {"matrix": [5, 7], "x": 8.5, "y": 1},
- {"matrix": [5, 6], "x": 9.5, "y": 1},
- {"matrix": [5, 5], "x": 10.5, "y": 1},
- {"matrix": [5, 4], "x": 11.5, "y": 1},
- {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
- {"matrix": [2, 1], "x": 1.75, "y": 2},
- {"matrix": [2, 2], "x": 2.75, "y": 2},
- {"matrix": [2, 3], "x": 3.75, "y": 2},
- {"matrix": [2, 4], "x": 4.75, "y": 2},
- {"matrix": [2, 5], "x": 5.75, "y": 2},
- {"matrix": [2, 6], "x": 6.75, "y": 2},
- {"matrix": [2, 7], "x": 7.75, "y": 2},
- {"matrix": [5, 1], "x": 8.75, "y": 2},
- {"matrix": [5, 2], "x": 9.75, "y": 2},
- {"matrix": [5, 3], "x": 10.75, "y": 2, "w": 1.75},
- {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25},
- {"matrix": [3, 1], "x": 1.25, "y": 3},
- {"matrix": [3, 2], "x": 2.25, "y": 3},
- {"matrix": [3, 3], "x": 3.25, "y": 3},
- {"matrix": [3, 4], "x": 4.25, "y": 3},
- {"matrix": [3, 5], "x": 5.25, "y": 3},
- {"matrix": [3, 6], "x": 6.25, "y": 3},
- {"matrix": [3, 7], "x": 7.25, "y": 3},
- {"matrix": [6, 7], "x": 8.25, "y": 3},
- {"matrix": [6, 6], "x": 9.25, "y": 3},
- {"matrix": [6, 5], "x": 10.25, "y": 3},
- {"matrix": [6, 4], "x": 11.25, "y": 3, "w": 1.25},
- {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25},
- {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25},
- {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25},
- {"matrix": [4, 3], "x": 3.75, "y": 4, "w": 2.75},
- {"matrix": [4, 4], "x": 6.5, "y": 4, "w": 2.25},
- {"matrix": [4, 5], "x": 8.75, "y": 4, "w": 1.25},
- {"matrix": [4, 6], "x": 10, "y": 4, "w": 1.25},
- {"matrix": [4, 7], "x": 11.25, "y": 4, "w": 1.25}
+ {"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": [0, 6], "x": 6, "y": 0},
+ {"matrix": [0, 7], "x": 7, "y": 0},
+ {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
+ {"matrix": [1, 1], "x": 1.5, "y": 1},
+ {"matrix": [1, 2], "x": 2.5, "y": 1},
+ {"matrix": [1, 3], "x": 3.5, "y": 1},
+ {"matrix": [1, 4], "x": 4.5, "y": 1},
+ {"matrix": [1, 5], "x": 5.5, "y": 1},
+ {"matrix": [1, 6], "x": 6.5, "y": 1},
+ {"matrix": [1, 7], "x": 7.5, "y": 1},
+ {"matrix": [5, 7], "x": 8.5, "y": 1},
+ {"matrix": [5, 6], "x": 9.5, "y": 1},
+ {"matrix": [5, 5], "x": 10.5, "y": 1},
+ {"matrix": [5, 4], "x": 11.5, "y": 1},
+ {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
+ {"matrix": [2, 1], "x": 1.75, "y": 2},
+ {"matrix": [2, 2], "x": 2.75, "y": 2},
+ {"matrix": [2, 3], "x": 3.75, "y": 2},
+ {"matrix": [2, 4], "x": 4.75, "y": 2},
+ {"matrix": [2, 5], "x": 5.75, "y": 2},
+ {"matrix": [2, 6], "x": 6.75, "y": 2},
+ {"matrix": [2, 7], "x": 7.75, "y": 2},
+ {"matrix": [5, 1], "x": 8.75, "y": 2},
+ {"matrix": [5, 2], "x": 9.75, "y": 2},
+ {"matrix": [5, 3], "x": 10.75, "y": 2, "w": 1.75},
+ {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25},
+ {"matrix": [3, 1], "x": 1.25, "y": 3},
+ {"matrix": [3, 2], "x": 2.25, "y": 3},
+ {"matrix": [3, 3], "x": 3.25, "y": 3},
+ {"matrix": [3, 4], "x": 4.25, "y": 3},
+ {"matrix": [3, 5], "x": 5.25, "y": 3},
+ {"matrix": [3, 6], "x": 6.25, "y": 3},
+ {"matrix": [3, 7], "x": 7.25, "y": 3},
+ {"matrix": [6, 7], "x": 8.25, "y": 3},
+ {"matrix": [6, 6], "x": 9.25, "y": 3},
+ {"matrix": [6, 5], "x": 10.25, "y": 3},
+ {"matrix": [6, 4], "x": 11.25, "y": 3, "w": 1.25},
+ {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25},
+ {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25},
+ {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25},
+ {"matrix": [4, 3], "x": 3.75, "y": 4, "w": 2.75},
+ {"matrix": [4, 4], "x": 6.5, "y": 4, "w": 2.25},
+ {"matrix": [4, 5], "x": 8.75, "y": 4, "w": 1.25},
+ {"matrix": [4, 6], "x": 10, "y": 4, "w": 1.25},
+ {"matrix": [4, 7], "x": 11.25, "y": 4, "w": 1.25}
]
}
}
diff --git a/keyboards/mechwild/clunker/keymaps/default/keymap.c b/keyboards/mechwild/clunker/keymaps/default/keymap.c
index fd9c93fe87..28322a737e 100644
--- a/keyboards/mechwild/clunker/keymaps/default/keymap.c
+++ b/keyboards/mechwild/clunker/keymaps/default/keymap.c
@@ -15,28 +15,28 @@ enum layer_names {
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* Base */
- [_BASE] = LAYOUT(
+ [_BASE] = LAYOUT_all(
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_MUTE,
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,
MO(_FN1), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_ENT,
KC_LSFT, KC_SLSH, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_RSFT,
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_RALT, MO(_FN2), KC_RCTL
),
- [_FN1] = LAYOUT(
+ [_FN1] = LAYOUT_all(
KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, HF_TOGG,
_______, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL,
_______, _______, _______, _______, _______, _______, _______, KC_LBRC, KC_RBRC, KC_SCLN, KC_QUOT,
_______, _______, _______, _______, _______, _______, _______, _______, KC_MINS, KC_EQL, KC_UP, KC_SLSH,
_______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_RIGHT
),
- [_FN2] = LAYOUT(
+ [_FN2] = LAYOUT_all(
QK_BOOT, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______
),
- [_FN3] = LAYOUT(
+ [_FN3] = LAYOUT_all(
_______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
diff --git a/keyboards/mechwild/clunker/keymaps/via/keymap.c b/keyboards/mechwild/clunker/keymaps/via/keymap.c
index fd9c93fe87..28322a737e 100644
--- a/keyboards/mechwild/clunker/keymaps/via/keymap.c
+++ b/keyboards/mechwild/clunker/keymaps/via/keymap.c
@@ -15,28 +15,28 @@ enum layer_names {
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* Base */
- [_BASE] = LAYOUT(
+ [_BASE] = LAYOUT_all(
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_MUTE,
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,
MO(_FN1), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_ENT,
KC_LSFT, KC_SLSH, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_RSFT,
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_RALT, MO(_FN2), KC_RCTL
),
- [_FN1] = LAYOUT(
+ [_FN1] = LAYOUT_all(
KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, HF_TOGG,
_______, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL,
_______, _______, _______, _______, _______, _______, _______, KC_LBRC, KC_RBRC, KC_SCLN, KC_QUOT,
_______, _______, _______, _______, _______, _______, _______, _______, KC_MINS, KC_EQL, KC_UP, KC_SLSH,
_______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_RIGHT
),
- [_FN2] = LAYOUT(
+ [_FN2] = LAYOUT_all(
QK_BOOT, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______
),
- [_FN3] = LAYOUT(
+ [_FN3] = LAYOUT_all(
_______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
diff --git a/keyboards/mechwild/mercutio/keymaps/jonavin/config.h b/keyboards/mechwild/mercutio/keymaps/jonavin/config.h
deleted file mode 100644
index 1722a2c25c..0000000000
--- a/keyboards/mechwild/mercutio/keymaps/jonavin/config.h
+++ /dev/null
@@ -1,29 +0,0 @@
-/* Copyright 2021 Kyle McCreery
- * Copyright 2021 Jonavin Eng
- *
- * 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 TAPPING_TOGGLE 2
-// TT set to two taps
-
-/* Handle GRAVESC combo keys */
-#define GRAVE_ESC_ALT_OVERRIDE
- //Always send Escape if Alt is pressed
-#define GRAVE_ESC_CTRL_OVERRIDE
- //Always send Escape if Control is pressed
-
-#define TAPPING_TERM 180
diff --git a/keyboards/mechwild/mercutio/keymaps/jonavin/keymap.c b/keyboards/mechwild/mercutio/keymaps/jonavin/keymap.c
deleted file mode 100755
index b352a0d6ad..0000000000
--- a/keyboards/mechwild/mercutio/keymaps/jonavin/keymap.c
+++ /dev/null
@@ -1,268 +0,0 @@
-/* Copyright 2021 Kyle McCreery
- * Copyright 2021 Jonavin Eng
- *
- * 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 "jonavin.h"
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-[_BASE] = LAYOUT_all(
- KC_MUTE,
- KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,
- TT(_RAISE), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
- KC_LSFTCAPS, KC_SLSH, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, SC_SENT,
- KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, LT(_LOWER,KC_SPC), KC_SPC, KC_RALT, MO(_FN1), KC_RCTL ),
-
- [_FN1] = LAYOUT_all(
- ENCFUNC,
- KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_DEL,
- KC_CAPS, KC_F11, KC_F12, KC_NO, KC_NO, KC_NO, KC_NO, KC_PSCR, KC_SCRL, KC_PAUS, KC_NO, KC_NO,
- KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NUM, KC_NO, KC_NO, KC_NO, SC_SENT,
- KC_TRNS, KC_WINLCK, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ),
-
- [_LOWER] = LAYOUT_all(
- KC_TRNS,
- KC_GRAVE, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL,
- KC_TRNS, KC_MINS, KC_EQL, KC_NO, KC_NO, KC_NO, KC_NO, KC_QUES, KC_SLSH, KC_PIPE, KC_BSLS, KC_TILD,
- KC_TRNS, KC_TRNS, KC_UNDS, KC_PLUS, KC_NO, KC_NO, KC_NO, KC_LCBR, KC_RCBR, KC_LBRC, KC_RBRC, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ),
-
- [_RAISE] = LAYOUT_all(
- KC_TRNS,
- KC_TAB, KC_HOME, KC_UP, KC_END, KC_PGUP, KC_PMNS, KC_PPLS, KC_P7, KC_P8, KC_P9, KC_P0, KC_TRNS,
- TT(_RAISE), KC_LEFT, KC_DOWN, KC_RIGHT,KC_PGDN, KC_PSLS, KC_TAB, KC_P4, KC_P5, KC_P6, KC_PDOT, KC_PEQL,
- KC_TRNS, KC_TRNS, KC_NO, KC_DEL, KC_INS, KC_NO, KC_PAST, KC_P0, KC_P1, KC_P2, KC_P3, KC_PENT,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_BSPC, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS )
-};
-
-/* These are needed whether encoder function is enabled or not when ENCFUNC keycode is pressed.?
- Defaults never changes if no encoder present to change it
-*/
-typedef struct {
- char keydesc[6]; // this will be displayed on OLED
- uint16_t keycode; // this is the keycode that will be sent when activted
-} keycodedescType;
-
-static const keycodedescType PROGMEM keyselection[] = {
- // list of key codes that will be scrollled through by encoder and description
- {"TASK", KC_TASK},
- {"INS", KC_INS},
- {"DEL", KC_DEL},
- {"PrtSc", KC_PSCR},
- {"ScrLk", KC_SCLN},
- {"Break", KC_PAUS},
- {"C-A-D", KC_CAD}, // Ctrl-Alt-Del
- {"AltF4", KC_AF4},
- {"PLAY", KC_MEDIA_PLAY_PAUSE},
- {"FLASH", QK_BOOT}, // firmware flash mode
-};
-
-#define MAX_KEYSELECTION ARRAY_SIZE(keyselection)
-
-static uint8_t selectedkey_idx = 0;
-static keycodedescType selectedkey_rec;
-
-static void set_selectedkey(uint8_t idx) {
- // make a copy from PROGMEM
- memcpy_P (&selectedkey_rec, &keyselection[idx], sizeof selectedkey_rec);
-
- //selectedkey_rec = keyselection[idx];
-
-}
-
-void keyboard_post_init_keymap(void) {
- // Call the keyboard post init code.
- set_selectedkey(selectedkey_idx);
-}
-
-bool process_record_keymap(uint16_t keycode, keyrecord_t *record) {
- switch (keycode) {
- case ENCFUNC:
- if (record->event.pressed) {
- selectedkey_rec.keycode == QK_BOOT ? reset_keyboard() : tap_code16(selectedkey_rec.keycode); // handle QK_BOOT code
- } else {
- // when keycode is released
- }
- break;
- }
- return true;
-};
-
-
-
-#ifdef ENCODER_ENABLE // Encoder Functionality
- void encoder_action_selectkey(bool clockwise) {
- if ( clockwise ) {
- if ( selectedkey_idx < MAX_KEYSELECTION-1) {
- selectedkey_idx ++;
- } else {
- // do nothing
- }
- } else if ( !clockwise ) {
- if ( selectedkey_idx > 0){
- selectedkey_idx --;
- } else {
- // do nothing
- }
- }
- set_selectedkey(selectedkey_idx);
- }
-
- bool encoder_update_user(uint8_t index, bool clockwise) {
- #ifdef OLED_ENABLE
- oled_clear();
- oled_render();
- #endif
- uint8_t mods_state = get_mods();
- switch (index) {
- case 0: // This is the only encoder right now, keeping for consistency
- switch(get_highest_layer(layer_state)){ // special handling per layer
- case _FN1: // on Fn layer select what the encoder does when pressed
- if (!mods_state) {
- encoder_action_selectkey(clockwise);
- break;
- } else {
- // continue to default
- }
- default: // all other layers
- if (mods_state & MOD_BIT(KC_LSFT) ) { // If you are holding L shift, encoder changes layers
- encoder_action_layerchange(clockwise);
- } else if (mods_state & MOD_BIT(KC_LCTL)) { // if holding Left Ctrl, navigate next/prev word
- encoder_action_navword(clockwise);
- } else if (mods_state & MOD_BIT(KC_LALT)) { // if holding Left Alt, change media next/prev track
- encoder_action_mediatrack(clockwise);
- } else {
- encoder_action_volume(clockwise); // Otherwise it just changes volume
- }
- break;
- }
- break;
- }
- return false;
- }
-#endif
-
-#ifdef OLED_ENABLE // OLED Functionality
- oled_rotation_t oled_init_user(oled_rotation_t rotation) {
- return OLED_ROTATION_180; // flips the display 180 degrees if offhand
- }
-
- bool clear_screen = false; // used to manage singular screen clears to prevent display glitch
- static void render_name(void) { // Render Mercutio Script Text
- static const char PROGMEM mercutio_name[] = {
- 0xB6, 0xB6, 0xB6, 0xB6, 0xB6, 0xB6, 0xB6, 0xB6, 0xB6, 0xB6, 0xB6, 0xB6, 0xB6, 0xB6, 0xB6, 0x95, 0xB5, 0x96, 0xD5, 0xB6, 0xB6,
- 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8A, 0x8B, 0x8C, 0x8D, 0x8E, 0x8F, 0x90, 0x91, 0x92, 0x93, 0x94,
- 0xA0, 0xA1, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7, 0xA8, 0xA9, 0xAA, 0xAB, 0xAC, 0xAD, 0xAE, 0xAF, 0xB0, 0xB1, 0xB2, 0xB3, 0xB4,
- 0xC0, 0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7, 0xC8, 0xC9, 0xCA, 0xCB, 0xCC, 0xCD, 0xCE, 0xCF, 0xD0, 0xD1, 0xD2, 0xD3, 0xD4, 0x00
- };
- oled_write_P(mercutio_name, false);
- }
-
- static void render_logo(void) { // Render MechWild "MW" Logo
- static const char PROGMEM logo_1[] = {0x97, 0x98, 0x99, 0x9A,0x00};
- static const char PROGMEM logo_2[] = {0xB7, 0xB8, 0xB9, 0xBA, 0xBB, 0xBC, 0xBD, 0x00};
- static const char PROGMEM logo_3[] = {0xD7, 0xD8, 0xD9, 0xDA, 0xDB, 0xDC, 0xDD, 0xB6, 0x00};
- static const char PROGMEM logo_4[] = {0xB6, 0xB6, 0xB6, 0x9B, 0x9C, 0x9D, 0x9E, 0x00};
- oled_set_cursor(0,0);
- oled_write_P(logo_1, false);
- oled_set_cursor(0,1);
- oled_write_P(logo_2, false);
- oled_set_cursor(0,2);
- oled_write_P(logo_3, false);
- oled_set_cursor(0,3);
- oled_write_P(logo_4, false);
- }
-
- bool oled_task_user(void) {
- led_t led_state = host_keyboard_led_state();
- if ( !led_state.num_lock && !led_state.caps_lock && get_selected_layer() == 0 && get_highest_layer(layer_state) == 0 ) {
- render_name();
- clear_screen = true;
- } else {
- if (clear_screen == true) {
- oled_clear();
- oled_render();
- clear_screen = false;
- }
- render_logo();
- oled_set_cursor(8,2);
- switch(get_selected_layer()){
- case 0:
- oled_write_P(PSTR("BASE"), false);
- break;
- case 1:
- oled_write_P(PSTR("FN "), false);
- oled_write(selectedkey_rec.keydesc, false);
- break;
- case 2:
- oled_write_P(PSTR("LOWER"), false);
- break;
- case 3:
- oled_write_P(PSTR("RAISE"), false);
- break;
- default:
- oled_write_P(PSTR("Layer ?"), false); // Should never display, here as a catchall
- }
- oled_write_P(keymap_config.no_gui ? PSTR(" WL") : PSTR(" "), false);
- oled_set_cursor(8,3);
- if (get_highest_layer(layer_state) == get_selected_layer()) {
- oled_write_P(PSTR(" "), false);
- } else {
- switch (get_highest_layer(layer_state)) {
- case 0:
- oled_write_P(PSTR("Temp BASE"), false);
- break;
- case 1:
- oled_write_P(PSTR("Temp FN "), false);
- oled_write(selectedkey_rec.keydesc, false);
- break;
- case 2:
- oled_write_P(PSTR("Temp LOWER"), false);
- break;
- case 3:
- oled_write_P(PSTR("Temp RAISE"), false);
- break;
- default:
- oled_write_P(PSTR("Temp Layer ?"), false); // Should never display, here as a catchall
- }
- }
- led_t led_state = host_keyboard_led_state();
- oled_set_cursor(8,0);
- uint8_t wpm_count;
- wpm_count=get_current_wpm();
-
- if (wpm_count > 020) { // how wpm when > 20
- oled_write_P(PSTR(" WPM: "), false);
- oled_write(get_u8_str(wpm_count, ' '), false);
- } else {
- oled_write_P(PSTR(" JONAVIN "), false); // otherwise display keymap name
- }
-
- oled_set_cursor(8,1);
- oled_write_P(led_state.num_lock ? PSTR("NUM ") : PSTR(" "), false);
- oled_write_P(led_state.caps_lock ? PSTR("CAPS ") : PSTR(" "), false);
- oled_write_P(led_state.scroll_lock ? PSTR("SCR") : PSTR(" "), false);
-
- }
-
- return false;
- }
-
- void suspend_power_down_user(void) { // shutdown oled when powered down to prevent OLED from showing Mercutio all the time
- oled_off();
- }
-#endif
diff --git a/keyboards/mechwild/mercutio/keymaps/jonavin/readme.md b/keyboards/mechwild/mercutio/keymaps/jonavin/readme.md
deleted file mode 100644
index ed1395ede6..0000000000
--- a/keyboards/mechwild/mercutio/keymaps/jonavin/readme.md
+++ /dev/null
@@ -1,62 +0,0 @@
-Jonavin's Custom Mercutio Layout
- - Based on Fancy keymap
-
-Features
- - Split Enter, shftEnter, Split Backspace
- - standard shorten home row keys
- - numpad and nav keys in RAISE LAYER
- - symbols in LOWER layer
- - CAPS LOCK 2 taps for RAISE layer toggle
- - RAISE layer left spacebar Backspace
- - Shift+Encoder for layer changes (from mercutio/fancy keymap)
- - MOUSEKEYS is disbled
- - shutdown oled when powered down to prevent OLED from showing Mercutio all the time
- - add WPM indicator when wpm is > 20 wpm
- - add double tap of Left Shift to toggle Caps Lock
- - add WinLock feature with FN + Win; display WL on OLED when enabled
-
- - FN layer has encoder selectable key codes and displayed on OLED
-
- Change these in keymap.c to assign your desired key selection
-
- static const keycodedescType PROGMEM keyselection[] = {
- // list of key codes that will be scrollled through by encoder and description
- {"TASK", KC_TASK},
- {"INS", KC_INS},
- {"DEL", KC_DEL},
- {"PrtSc", KC_PSCR},
- {"ScrLk", KC_SCLN},
- {"Break", KC_PAUS},
- {"C-A-D", KC_CAD}, // Ctrl-Alt-Del
- {"AltF4", KC_AF4},
- {"PLAY", KC_MEDIA_PLAY_PAUSE},
- {"RESET", QK_BOOT}, // firmware flash mode
- };
-
- - Additional encoder functionality
- While holding Left Ctrl, navigates next or previous word
- While holding Left Alt, media next track or previous track
-
-
-rules.mk OPTIONS - Active features from userspace
-STARTUP_NUMLOCK_ON = yes
- - turns on NUMLOCK by default
-
-TD_LSFT_CAPSLOCK_ENABLE = yes
- - This will enable double tap on Left Shift to toggle CAPSLOCK when using KC_LSFTCAPS
-
-Default Layers
-![image](https://user-images.githubusercontent.com/71780717/127014682-3aa05136-6dc7-4a40-9be1-89a5b584848a.png)
-
-MO(1) / FN Layer
-![image](https://user-images.githubusercontent.com/71780717/127014620-a3a36dc6-6e22-4a9b-ad9a-6c6a5d18cbc5.png)
-
-MO(2) / Lower layer
-![image](https://user-images.githubusercontent.com/71780717/127014816-09598d62-2d23-42e5-a625-504a79a54ca9.png)
-
-MO(3) / Raise layer
-![image](https://user-images.githubusercontent.com/71780717/127014881-a181c198-a7e8-4f48-9789-a7a85eabcbd1.png)
-
-
-
-
diff --git a/keyboards/mechwild/mercutio/keymaps/jonavin/rules.mk b/keyboards/mechwild/mercutio/keymaps/jonavin/rules.mk
deleted file mode 100644
index 0b76c6e57c..0000000000
--- a/keyboards/mechwild/mercutio/keymaps/jonavin/rules.mk
+++ /dev/null
@@ -1,8 +0,0 @@
-VIA_ENABLE = yes
-
-MOUSEKEY_ENABLE = yes
-WPM_ENABLE = yes
-TAP_DANCE_ENABLE = yes
-
-TD_LSFT_CAPSLOCK_ENABLE = yes
-STARTUP_NUMLOCK_ON = yes
diff --git a/keyboards/mechwild/mokulua/mirrored/config.h b/keyboards/mechwild/mokulua/mirrored/config.h
index 219a4ec7b0..d62d7b49f0 100644
--- a/keyboards/mechwild/mokulua/mirrored/config.h
+++ b/keyboards/mechwild/mokulua/mirrored/config.h
@@ -7,10 +7,6 @@
#define MASTER_LEFT
//#define MASTER_RIGHT
-#define SPLIT_LAYER_STATE_ENABLE
-#define SPLIT_LED_STATE_ENABLE
-#define SPLIT_MODS_ENABLE
-#define SPLIT_OLED_ENABLE
/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
#define LOCKING_SUPPORT_ENABLE
diff --git a/keyboards/mechwild/mokulua/mirrored/info.json b/keyboards/mechwild/mokulua/mirrored/info.json
index 5221238784..7289147e6b 100644
--- a/keyboards/mechwild/mokulua/mirrored/info.json
+++ b/keyboards/mechwild/mokulua/mirrored/info.json
@@ -22,7 +22,15 @@
"tap_keycode_delay": 10
},
"split": {
- "soft_serial_pin": "D3"
+ "soft_serial_pin": "D3",
+ "transport": {
+ "sync": {
+ "indicators": true,
+ "layer_state": true,
+ "modifiers": true,
+ "oled": true
+ }
+ }
},
"rgblight": {
"saturation_steps": 8,
diff --git a/keyboards/mechwild/mokulua/standard/config.h b/keyboards/mechwild/mokulua/standard/config.h
index f13e1e582a..953e53c236 100644
--- a/keyboards/mechwild/mokulua/standard/config.h
+++ b/keyboards/mechwild/mokulua/standard/config.h
@@ -7,10 +7,6 @@
#define MASTER_LEFT
//#define MASTER_RIGHT
-#define SPLIT_LAYER_STATE_ENABLE
-#define SPLIT_LED_STATE_ENABLE
-#define SPLIT_MODS_ENABLE
-#define SPLIT_OLED_ENABLE
/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
#define LOCKING_SUPPORT_ENABLE
diff --git a/keyboards/mechwild/mokulua/standard/info.json b/keyboards/mechwild/mokulua/standard/info.json
index 05ca6775df..da82447980 100644
--- a/keyboards/mechwild/mokulua/standard/info.json
+++ b/keyboards/mechwild/mokulua/standard/info.json
@@ -22,7 +22,15 @@
"tap_keycode_delay": 10
},
"split": {
- "soft_serial_pin": "D3"
+ "soft_serial_pin": "D3",
+ "transport": {
+ "sync": {
+ "indicators": true,
+ "layer_state": true,
+ "modifiers": true,
+ "oled": true
+ }
+ }
},
"rgblight": {
"saturation_steps": 8,
diff --git a/keyboards/mechwild/murphpad/keymaps/jonavin/config.h b/keyboards/mechwild/murphpad/keymaps/jonavin/config.h
deleted file mode 100644
index 2636ea4051..0000000000
--- a/keyboards/mechwild/murphpad/keymaps/jonavin/config.h
+++ /dev/null
@@ -1,26 +0,0 @@
-/* Copyright 2021 Jonavin Eng
- *
- * 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
-
-// Standard encoder position. Set to 1 for top right optional position
-#define ENCODER_DEFAULTACTIONS_INDEX 0
-
-// Increase layers to 6 for VIA
-#define DYNAMIC_KEYMAP_LAYER_COUNT 6
-
-// Remove line below for vertical layout
-#define LANDSCAPE_MODE
diff --git a/keyboards/mechwild/murphpad/keymaps/jonavin/keymap.c b/keyboards/mechwild/murphpad/keymaps/jonavin/keymap.c
deleted file mode 100644
index 070b572507..0000000000
--- a/keyboards/mechwild/murphpad/keymaps/jonavin/keymap.c
+++ /dev/null
@@ -1,424 +0,0 @@
-/* Copyright 2021 Kyle McCreery
- * Copyright 2021 Jonavin Eng
- *
- * 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 "jonavin.h"
-#include "layout_landscape.h"
-
-
-// Defines names for use in layer keycodes and the keymap
-enum layer_names {
- _FN2 = 2,
- _FN3,
- _FN4,
- _RGB
-};
-
-#ifdef LANDSCAPE_MODE
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
- [_BASE] = LAYOUT_landscape(
- TT(_FN1), TT(_FN2), KC_MUTE,
-
- KC_NUM, KC_PSLS, KC_PAST, KC_PMNS, KC_PPLS, KC_BSPC,
- KC_TAB, KC_P7, KC_P8, KC_P9, KC_PDOT, KC_RGUI,
- KC_RSFT, KC_P4, KC_P5, KC_P6, KC_COMMA, KC_RCTL,
- KC_P0, KC_P1, KC_P2, KC_P3, KC_PENT, KC_RALT,
-
- TT(_FN3), TT(_FN4), TT(_RGB)
- ),
- [_FN1] = LAYOUT_landscape(
- _______, _______, ENCFUNC,
-
- _______, KC_F10, KC_F11, KC_F12, KC_PSCR, _______,
- _______, KC_F7, KC_F8, KC_F9, KC_SCRL, _______,
- _______, KC_F4, KC_F5, KC_F6, KC_PAUS, _______,
- _______, KC_F1, KC_F2, KC_F3, _______, _______,
-
- _______, _______, _______
- ),
- [_FN2] = LAYOUT_landscape(
- _______, _______, QK_BOOT,
-
- _______, _______, KC_MPLY, KC_MPRV, KC_MNXT, _______,
- _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______,
-
- _______, _______, _______
- ),
- [_FN3] = LAYOUT_landscape(
- _______, _______, _______,
-
- _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______,
-
- _______, _______, _______
- ),
- [_FN4] = LAYOUT_landscape(
- _______, _______, _______,
-
- _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______,
-
- _______, _______, _______
- ),
- [_RGB] = LAYOUT_landscape(
- _______, _______, _______,
-
- _______, _______, _______, _______, _______, _______,
- _______, RGB_HUD, RGB_SPI, RGB_HUI, RGB_SAI, _______,
- _______, RGB_RMOD, RGB_TOG, RGB_MOD, RGB_SAD, _______,
- _______, RGB_VAD, RGB_SPD, RGB_VAI, KC_NO, _______,
-
- _______, _______, _______
- ),
-};
-#endif // LANDSCAPE_MODE
-
-#ifndef LANDSCAPE_MODE
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- /* Base */
- [_BASE] = LAYOUT(
- TT(_FN2),TT(_FN3),TT(_FN4),LT(_RGB,KC_PSCR),
- KC_NUM, KC_PSLS, KC_PAST, KC_PMNS,
- KC_P7, KC_P8, KC_P9, KC_PPLS,
- KC_MUTE, KC_P4, KC_P5, KC_P6, _______,
- TT(_FN1), KC_P1, KC_P2, KC_P3, KC_PENT,
- KC_RALT, KC_P0, _______, KC_PDOT, _______,
-
- TT(_FN3), TT(_FN4), TT(_RGB)
- ),
- [_FN1] = LAYOUT(
- _______, _______, _______, QK_BOOT,
- KC_CALC, _______, _______, _______,
- _______, _______, _______, _______,
- ENCFUNC, KC_TAB, _______, _______, _______,
- _______, _______, _______, _______, _______,
- _______, KC_BSPC, _______, KC_DEL, _______,
-
- _______, _______, _______
- ),
- [_FN2] = LAYOUT(
- _______, _______, _______, _______,
- _______, _______, KC_MPLY, KC_MPRV,
- _______, _______, _______, KC_MNXT,
- QK_BOOT, _______, _______, _______, _______,
- _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______,
-
- _______, _______, _______
- ),
- [_FN3] = LAYOUT(
- _______, _______, _______, _______,
- _______, _______, _______, _______,
- _______, _______, _______, _______,
- _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______,
-
- _______, _______, _______
- ),
- [_FN4] = LAYOUT(
- _______, _______, _______, _______,
- _______, _______, _______, _______,
- _______, _______, _______, _______,
- _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______,
-
- _______, _______, _______
- ),
- [_RGB] = LAYOUT(
- _______, _______, _______, _______,
- _______, _______, _______, _______,
- RGB_HUD, RGB_SPI, RGB_HUI, _______,
- _______, RGB_RMOD, RGB_TOG, RGB_MOD, _______,
- _______, RGB_VAD, RGB_SPD, RGB_VAI, _______,
- _______, RGB_SAD, _______, RGB_SAI, _______,
-
- _______, _______, _______
- ),
-};
-#endif // !LANDSCAPE_MODE
-
-typedef struct {
- char keydesc[6]; // this will be displayed on OLED
- uint16_t keycode; // this is the keycode that will be sent when activted
-} keycodedescType;
-
-static const keycodedescType PROGMEM keyselection[] = {
- // list of key codes that will be scrolled through by encoder and description
- {"TASK ", KC_TASK},
- {"PREV ", KC_MEDIA_PREV_TRACK},
- {"NEXT ", KC_MEDIA_NEXT_TRACK},
- {"PLAY ", KC_MEDIA_PLAY_PAUSE},
- {"PrtScm", KC_PSCR},
- {"ScrLk", KC_SCLN},
- {"Break", KC_PAUS},
- {"C-A-D", KC_CAD}, // Ctrl-Alt-Del
- {"AltF4", KC_AF4},
- {"RESET", QK_BOOT}, // firmware flash mode
-};
-
-#define MAX_KEYSELECTION ARRAY_SIZE(keyselection)
-
-static uint8_t selectedkey_idx = 0;
-static keycodedescType selectedkey_rec;
-
-static void set_selectedkey(uint8_t idx) {
- // make a copy from PROGMEM
- memcpy_P (&selectedkey_rec, &keyselection[idx], sizeof selectedkey_rec);
-
- //selectedkey_rec = keyselection[idx];
-
-}
-
-void keyboard_post_init_keymap(void) {
- // Call the keyboard post init code.
- set_selectedkey(selectedkey_idx);
-}
-
-bool process_record_keymap(uint16_t keycode, keyrecord_t *record) {
- switch (keycode) {
- case ENCFUNC:
- if (record->event.pressed) {
- selectedkey_rec.keycode == QK_BOOT ? reset_keyboard() : tap_code16(selectedkey_rec.keycode); // handle QK_BOOT code
- } else {
- // when keycode is released
- }
- break;
- }
- return true;
-};
-
-
-#ifdef ENCODER_ENABLE // Encoder Functionality
- void encoder_action_selectkey(bool clockwise) {
- if ( clockwise ) {
- if ( selectedkey_idx < MAX_KEYSELECTION-1) {
- selectedkey_idx ++;
- } else {
- // do nothing
- }
- } else if ( !clockwise ) {
- if ( selectedkey_idx > 0){
- selectedkey_idx --;
- } else {
- // do nothing
- }
- }
- set_selectedkey(selectedkey_idx);
- }
-
- bool encoder_update_user(uint8_t index, bool clockwise) {
- #ifdef OLED_ENABLE
- oled_clear();
- oled_render();
- #endif
- uint8_t mods_state = get_mods();
- switch (index) {
- case 0: // main primary encoder
- switch(get_highest_layer(layer_state)){ // special handling per layer
- case _FN1: // on Fn layer select what the encoder does when pressed
- if (!mods_state) {
- encoder_action_selectkey(clockwise);
- break;
- } else {
- // continue to default
- }
- case _RGB:
- if (!mods_state) {
- encoder_action_rgb_hue(clockwise);
- break;
- }
- default: // all other layers
- if (mods_state & MOD_BIT(KC_RSFT) ) { // If you are holding R shift, encoder changes layers
- encoder_action_layerchange(clockwise);
- } else if (mods_state & MOD_BIT(KC_RCTL)) { // if holding Right Ctrl, navigate next/prev word
- encoder_action_navword(clockwise);
- } else if (mods_state & MOD_BIT(KC_RALT)) { // if holding Right Alt, change media next/prev track
- encoder_action_mediatrack(clockwise);
- } else {
- encoder_action_volume(clockwise); // Otherwise it just changes volume
- }
- break;
- }
- break;
- case 1: // optional secondary encoder
- switch(get_highest_layer(layer_state)){ // special handling per layer
- case _RGB:
- if (!mods_state) {
- encoder_action_rgb_mode(clockwise);
- break;
- }
- default: // all other layers
- encoder_action_mediatrack(clockwise); // Otherwise prev/next track
- break;
- }
- }
- return false;
- }
-#endif
-
-
-#ifdef OLED_ENABLE
- static void render_logo(void) { // Render MechWild "MW" Logo
- static const char PROGMEM logo_1[] = {0x8A, 0x8B, 0x8C, 0x8D, 0x00};
- static const char PROGMEM logo_2[] = {0xAA, 0xAB, 0xAC, 0xAD, 0xAE, 0x00};
- static const char PROGMEM logo_3[] = {0xCA, 0xCB, 0xCC, 0xCD, 0x00};
- static const char PROGMEM logo_4[] = {0x20, 0x8E, 0x8F, 0x90, 0x00};
- oled_set_cursor(0,0);
- oled_write_P(logo_1, false);
- oled_set_cursor(0,1);
- oled_write_P(logo_2, false);
- oled_set_cursor(0,2);
- oled_write_P(logo_3, false);
- oled_set_cursor(0,3);
- oled_write_P(logo_4, false);
- }
-
- #ifdef LANDSCAPE_MODE
- oled_rotation_t oled_init_user(oled_rotation_t rotation) {
- return OLED_ROTATION_0; // do not flip the display
- }
-
- bool oled_task_user(void) {
-
- render_logo();
- oled_set_cursor(8,2);
- switch(get_selected_layer()){
- case _BASE:
- oled_write_P(PSTR("BASE"), false);
- break;
- case _FN1:
- oled_write_P(PSTR("FN "), false);
- oled_write(selectedkey_rec.keydesc, false);
- break;
- case _FN2:
- oled_write_P(PSTR("FN2 "), false);
- break;
- case _FN3:
- oled_write_P(PSTR("FN3 "), false);
- break;
- case _FN4:
- oled_write_P(PSTR("FN4 "), false);
- break;
- case _RGB:
- oled_write_P(PSTR("RGB "), false);
- break;
- default:
- oled_write_P(PSTR(" ?? "), false); // Should never display, here as a catchall
- }
- oled_write_P(keymap_config.no_gui ? PSTR(" WL") : PSTR(" "), false);
- oled_set_cursor(8,3);
- if (get_highest_layer(layer_state) == get_selected_layer()) {
- oled_write_P(PSTR(" "), false);
- } else {
- switch (get_highest_layer(layer_state)) {
- case _BASE:
- oled_write_P(PSTR("Temp BASE"), false);
- break;
- case _FN1:
- oled_write_P(PSTR("Temp FN "), false);
- oled_write(selectedkey_rec.keydesc, false);
- break;
- case _FN2:
- oled_write_P(PSTR("Temp FN2 "), false);
- break;
- case _FN3:
- oled_write_P(PSTR("Temp FN3 "), false);
- break;
- case _FN4:
- oled_write_P(PSTR("Temp FN4 "), false);
- break;
- case _RGB:
- oled_write_P(PSTR("Temp RGB "), false);
- break;
- default:
- oled_write_P(PSTR("Temp ????"), false); // Should never display, here as a catchall
- }
- }
- led_t led_state = host_keyboard_led_state();
- oled_set_cursor(8,0);
- oled_write_P(PSTR(" JONAVIN "), false);
- oled_set_cursor(8,1);
- oled_write_P(led_state.num_lock ? PSTR("NUM ") : PSTR(" "), false);
- oled_write_P(led_state.caps_lock ? PSTR("CAPS ") : PSTR(" "), false);
- oled_write_P(led_state.scroll_lock ? PSTR("SCR") : PSTR(" "), false);
- return false;
- }
- #endif // LANDSCAPE_MODE
-
- // regular mode
- #ifndef LANDSCAPE_MODE
- bool oled_task_user(void) {
- render_logo();
- oled_set_cursor(0,5);
-
- oled_write_ln_P(PSTR("-JV-"), false);
- oled_write_ln_P(PSTR(" "), false);
-
- bool showSelectedKey = false;
- switch (get_highest_layer(layer_state)) {
- case _BASE:
- oled_write_ln_P(PSTR("BASE"), false);
- break;
- case _FN1:
- oled_write_ln_P(PSTR("FN 1"), false);
- showSelectedKey = true;
- break;
- case _FN2:
- oled_write_ln_P(PSTR("FN 2"), false);
- break;
- case _FN3:
- oled_write_ln_P(PSTR("FN 3"), false);
- break;
- case _FN4:
- oled_write_ln_P(PSTR("FN 4"), false);
- break;
- case _RGB:
- oled_write_ln_P(PSTR("RGB "), false);
- break;
- default:
- oled_write_ln_P(PSTR(" ?? "), false);
- }
- if (showSelectedKey) oled_write_ln(selectedkey_rec.keydesc, false);
- else oled_write_ln_P(PSTR(" "), false);
-
- // Host Keyboard LED Status
- led_t led_state = host_keyboard_led_state();
- oled_set_cursor(0,11);
- oled_write_ln_P(led_state.num_lock ? PSTR(" NUM") : PSTR(" "), false);
- oled_write_ln_P(led_state.caps_lock ? PSTR(" CAP") : PSTR(" "), false);
- oled_write_ln_P(led_state.scroll_lock ? PSTR(" SCR") : PSTR(" "), false);
- return false;
- }
- #endif // !LANDSCAPE_MODE
-
- void suspend_power_down_user(void) { // shutdown oled when powered down to prevent OLED from showing Mercutio all the time
- oled_off();
- rgblight_disable_noeeprom();
- }
-
- void suspend_wakeup_init_user(void) {
- rgblight_enable_noeeprom();
- }
-#endif
diff --git a/keyboards/mechwild/murphpad/keymaps/jonavin/layout_landscape.h b/keyboards/mechwild/murphpad/keymaps/jonavin/layout_landscape.h
deleted file mode 100644
index 2a3dce21d4..0000000000
--- a/keyboards/mechwild/murphpad/keymaps/jonavin/layout_landscape.h
+++ /dev/null
@@ -1,43 +0,0 @@
-/* Copyright 2021 Jonavin Eng
- *
- * 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"
-
-/* First section contains the physical layout of the board and position of keys.
- *
- * Second is a two-dimensional array which represents the switch matrix.
- */
-
-#define LAYOUT_landscape( \
- k50, k40, k30, \
- k51, k41, k31, k20, k10, k00, \
- k52, k42, k32, k21, k11, k01, \
- k53, k43, k33, k22, k12, k02, \
- k54, k44, k34, k23, k13, k03, \
- \
- BACK00, BACK01, BACK02 \
-\
-) { \
- { BACK00, k00, k01, k02, k03 }, \
- { BACK01, k10, k11, k12, k13 }, \
- { BACK02, k20, k21, k22, k23 }, \
- { k30, k31, k32, k33, k34 }, \
- { k40, k41, k42, k43, k44 }, \
- { k50, k51, k52, k53, k54 } \
-}
-
diff --git a/keyboards/mechwild/murphpad/keymaps/jonavin/readme.md b/keyboards/mechwild/murphpad/keymaps/jonavin/readme.md
deleted file mode 100644
index 95835343e1..0000000000
--- a/keyboards/mechwild/murphpad/keymaps/jonavin/readme.md
+++ /dev/null
@@ -1,76 +0,0 @@
-Jonavin's Custom MurphPad Landscape Layout
-
-This allows you to use Murphpad in a horizontal/landscape orientation with extra layers
-
- - OLED has been rotated for landscape mode
- - Keymap positions have been updated so it's easier to visualize the keymap in landscape
-
- [_BASE] = LAYOUT_landscape(
- TT(_FN1), TT(_FN2), KC_MUTE,
-
- KC_NUM, KC_PSLS, KC_PAST, KC_PMNS, KC_PPLS, KC_BSPC,
- KC_TAB, KC_P7, KC_P8, KC_P9, KC_PDOT, KC_RGUI,
- KC_RSFT, KC_P4, KC_P5, KC_P6, KC_COMMA, KC_RCTL,
- KC_P0, KC_P1, KC_P2, KC_P3, KC_PENT, KC_RALT,
-
- _______, _______, _______
- ),
-
-NOTE: VIA is enabled, but it will show it in the normal orientation until I build a landscape layout version
-
-Special Features
- - FN1 layer has encoder selectable key codes and displayed on OLED
-
- Change these in keymap.c to assign your desired key selection
-
- static const keycodedescType PROGMEM keyselection[] = {
- // list of key codes that will be scrollled through by encoder and description
- {"TASK ", KC_TASK},
- {"PREV ", KC_MEDIA_PREV_TRACK},
- {"NEXT ", KC_MEDIA_NEXT_TRACK},
- {"PLAY ", KC_MEDIA_PLAY_PAUSE},
- {"PrtScm", KC_PSCR},
- {"ScrLk", KC_SCLN},
- {"Break", KC_PAUS},
- {"C-A-D", KC_CAD}, // Ctrl-Alt-Del
- {"AltF4", KC_AF4},
- {"RESET", QK_BOOT}, // firmware flash mode
- };
-
- - Additional encoder functionality
- - While holding R Shift, changes layers
- - While holding R Ctrl, navigates next or previous word
- - While holding R Alt, media next track or previous track
- - Otherwise change volume up/dn
-
-
-rules.mk OPTIONS - Active features from userspace
-
- - STARTUP_NUMLOCK_ON = yes
- - turns on NUMLOCK by default
-
-DEFAULT LANDSCAPE MAPPING
-
-![image](https://user-images.githubusercontent.com/71780717/131718965-b20afef6-3bc5-49e4-952f-5755a9d6d539.png)
-
-
-FN1 Layer 1
-
-![image](https://user-images.githubusercontent.com/71780717/131719025-d41cbcd9-80b1-4a0a-abb5-55d878752dc6.png)
-
-
-FN2 Layer 2
-
-![image](https://user-images.githubusercontent.com/71780717/132967003-63268514-2ac3-4069-bca1-6d92992ca403.png)
-
-
-RGB Layer 5 - Use Shift+Encoder to get to RGB layer 5
-
-![image](https://user-images.githubusercontent.com/71780717/131719492-e2d05a75-3a7a-48ca-94a3-faa3ff891914.png)
-
---------------
-
-NORMAL / TRADITIONAL NON-LANDSCAPE NUMPAD LAYOUT
-
-![image](https://user-images.githubusercontent.com/71780717/132966975-3b463fb4-059f-42c5-b8b3-a3d35f4a0d6b.png)
-
diff --git a/keyboards/mechwild/murphpad/keymaps/jonavin/rules.mk b/keyboards/mechwild/murphpad/keymaps/jonavin/rules.mk
deleted file mode 100644
index 4887fb1bdc..0000000000
--- a/keyboards/mechwild/murphpad/keymaps/jonavin/rules.mk
+++ /dev/null
@@ -1,5 +0,0 @@
-VIA_ENABLE = yes
-LTO_ENABLE = yes
-
-STARTUP_NUMLOCK_ON = yes
-ENCODER_DEFAULTACTIONS_ENABLE = no
diff --git a/keyboards/mechwild/obe/keymaps/jonavin/config.h b/keyboards/mechwild/obe/keymaps/jonavin/config.h
deleted file mode 100644
index 8a812f1550..0000000000
--- a/keyboards/mechwild/obe/keymaps/jonavin/config.h
+++ /dev/null
@@ -1,39 +0,0 @@
-/* Copyright 2021 Jonavin Eng
- *
- * 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 TAPPING_TOGGLE 2
-// TT set to two taps
-
-/* Handle GRAVESC combo keys */
-#define GRAVE_ESC_ALT_OVERRIDE
- //Always send Escape if Alt is pressed
-#define GRAVE_ESC_CTRL_OVERRIDE
- //Always send Escape if Control is pressed
-
-#define TAPPING_TERM 180
-
-#ifdef RGBLIGHT_ENABLE
- // Redefine number of LED
- #ifdef RGBLED_NUM
- #undef RGBLED_NUM
- #endif // DEBUG
- #define RGBLED_NUM 20
-
- #define RGBLIGHT_LAYERS
- #define RGBLIGHT_SLEEP
-#endif // RGBLIGHT_ENABLE
diff --git a/keyboards/mechwild/obe/keymaps/jonavin/keymap.c b/keyboards/mechwild/obe/keymaps/jonavin/keymap.c
deleted file mode 100644
index 1fa3378c16..0000000000
--- a/keyboards/mechwild/obe/keymaps/jonavin/keymap.c
+++ /dev/null
@@ -1,119 +0,0 @@
-/* Copyright 2021 Kyle McCreery
- *
- * 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 "jonavin.h"
-
-#ifdef RGBLIGHT_ENABLE
- // Custom RGB Colours
- #define HSV_OBE_BOW 180, 100, 100 // colour for matching keycaps
-#endif // RGBLIGHT_ENABLE
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- /* Base */
- [_BASE] = LAYOUT(
- KC_TSTOG,QK_GESC, 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_BSLS, KC_DEL,
- 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_BSPC,
- KC_PGDN, TT(_RAISE), 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_LSFTCAPSWIN,KC_Z, KC_X, KC_C, KC_V, KC_B, LT(_LOWER,KC_B), KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_SFTUP,KC_RSFT,
- KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(_FN1), KC_RAISESPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
- ),
- [_FN1] = LAYOUT(
- KC_MUTE, 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_TRNS, KC_INS,
- KC_HOME, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_PSCR, KC_SCRL, KC_PAUS, KC_NO, KC_NO, KC_NO, QK_BOOT,
- KC_END, KC_CAPS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_TRNS,
- KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_TRNS, KC_NUM, KC_NO, KC_NO, KC_NO, KC_NO, KC_PGUP, KC_TRNS,
- KC_TRNS,KC_WINLCK,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_NO, KC_NO, KC_HOME, KC_PGDN, KC_END
- ),
- [_LOWER] = LAYOUT(
- EE_CLR, KC_TILD, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, RGB_VAD, RGB_VAI, KC_TRNS, KC_DEL,
- RGB_HUI, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, EMO_TEARS, EMO_SAD, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, RGB_TOG,
- RGB_HUD, KC_NO, KC_NO, EMO_SHRUG,KC_NO, KC_NO, KC_NO, KC_NO, EMO_JOY, KC_NO, KC_NO, KC_NO, KC_NO, KC_TRNS,
- KC_NO, KC_NO, KC_NO, EMO_CONFUSE,KC_NO,KC_NO,KC_TRNS,EMO_NERVOUS, KC_NO, KC_NO, KC_NO, KC_NO, RGB_MOD, KC_TRNS,
- KC_TRNS, KC_APP, KC_TRNS, KC_BSPC, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_SPD, RGB_RMOD,RGB_SPI
- ),
- [_RAISE] = LAYOUT(
- KC_NO, KC_GRV, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_P7, KC_P8, KC_P9, KC_P0, KC_PMNS, KC_PPLS, KC_PSLS, KC_DEL,
- KC_VOLU, KC_NO, KC_HOME,KC_UP, KC_END, KC_PGUP, KC_NO, KC_TAB, KC_P4, KC_P5, KC_P6, KC_NO, KC_NO, KC_NO, KC_PEQL,
- KC_VOLD,TT(_RAISE),KC_LEFT,KC_DOWN,KC_RGHT, KC_PGDN, KC_NO, KC_NO, KC_P1, KC_P2, KC_P3, KC_NO, KC_PAST, KC_PENT,
- KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_TRNS, KC_P0, KC_00, KC_NO, KC_PDOT, KC_PSLS, CT_PGUP, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_BSPC, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, CT_HOME, CT_PGDN, CT_END
- )
-};
-
-#ifdef RGBLIGHT_ENABLE
-
- enum custom_rgblight_layers
- {
- _rgbWINLOCK, _rgbFN,
- _rgbLOWER,
- _rgbRAISE
- };
-
- // Optional RGB Light Mapping Zones {LED Posiiton, Number of LEDs, Colour}
- const rgblight_segment_t PROGMEM _rgb_winlock_layer[] = RGBLIGHT_LAYER_SEGMENTS(
- {1, 3, HSV_RED},
- {15, 3, HSV_RED}
- );
- const rgblight_segment_t PROGMEM _rgb_fn_layer[] = RGBLIGHT_LAYER_SEGMENTS(
- {6, 6, HSV_PURPLE}
- );
- // Light LEDs 9 & 10 in cyan when keyboard layer 1 is active
- const rgblight_segment_t PROGMEM _rgb_lower_layer[] = RGBLIGHT_LAYER_SEGMENTS(
- {4, 10, HSV_YELLOW}
- );
-
- const rgblight_segment_t PROGMEM _rgb_raise_layer[] = RGBLIGHT_LAYER_SEGMENTS(
- {3, 5, HSV_GREEN},
- {10, 5, HSV_GREEN}
- );
-
- const rgblight_segment_t* const PROGMEM _rgb_layers[] = RGBLIGHT_LAYERS_LIST(
- _rgb_winlock_layer,
- _rgb_fn_layer,
- _rgb_lower_layer,
- _rgb_raise_layer
- );
-
- bool led_update_user(led_t led_state) {
- rgblight_set_layer_state(_rgbWINLOCK, keymap_config.no_gui);
- writePin(LED_CAPS_LOCK_PIN, led_state.caps_lock);
- #ifdef INVERT_NUMLOCK_INDICATOR
- writePin(LED_NUM_LOCK_PIN, !led_state.num_lock); // inverse numlock indicator override
- #else
- writePin(LED_NUM_LOCK_PIN, led_state.num_lock); // normal, light LED when numlock on
- #endif // INVERT_NUMLOCK_INDICATOR
- return false;
- }
-
- layer_state_t layer_state_set_user(layer_state_t state) {
- rgblight_set_layer_state(_rgbFN, layer_state_cmp(state, _FN1));
- rgblight_set_layer_state(_rgbLOWER, layer_state_cmp(state, _LOWER));
- rgblight_set_layer_state(_rgbRAISE, layer_state_cmp(state, _RAISE));
- return state;
- }
-#endif // RGBLIGHT_ENABLE
-
-void keyboard_post_init_keymap(void) {
- // keyboard_post_init_user() moved to userspace
- #ifdef RGBLIGHT_ENABLE
- rgblight_enable_noeeprom();
- rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_LIGHT);
- rgblight_sethsv_noeeprom(HSV_OBE_BOW); // Default startup colour
- rgblight_layers = _rgb_layers;
- #endif
-}
-
diff --git a/keyboards/mechwild/obe/keymaps/jonavin/readme.md b/keyboards/mechwild/obe/keymaps/jonavin/readme.md
deleted file mode 100644
index ec17981caf..0000000000
--- a/keyboards/mechwild/obe/keymaps/jonavin/readme.md
+++ /dev/null
@@ -1,54 +0,0 @@
-# Jonavin's MechWild Orange Boy Ergo keymap
-
---> This keymap makes use of user/jonavin userspace
-
-Features
- - Split spacebars, Split Backspace
- - Inverted Num Lock indicator (LED on when num lock if off)
- - RGB Winlock indicator (requires LED stripto be installed)
- - RGB Layer indicators: FN/MO1 - Purple; LOWER/MO2 - Yellow; RAISE/MO3/NumPad - Green
- - quick demo https://youtu.be/gR1awbsouLk
-
-- Add PrtScr, Scroll Lock, Break, NumLock to Fn layer
-- Implement Win key lock using Fn+Win
-- Layer 2 (LOWER) when right B is held -- for emoticons
-- Layer 2 RGB functions, and EEPROM Reset
-- Layer 3 (RAISE) mod on Caps Lock with double-tap to switch to this layer, double tap to switch back
- - provides arrows on WASD and additional nav keys + right hand numpad with 00; an be used for Alt Code entry
- - left spacebar Backspace
-- add double tap of Left Shift to toggle Caps Lock
-- Up arrow is also Shift when held
-- Pushing the encoder switches the default encoder scroll between volume control and Alt-Tab
-
-
-rules.mk OPTIONS - Active features from userspace
---------------------------------------------------
-
-STARTUP_NUMLOCK_ON = yes
-- turns on NUMLOCK by default
-
-ENCODER_DEFAULTACTIONS_ENABLE = yes
-- Enables default encoder funtions
- - holding Left shift, change layers
- - holding right shift, Navigate page up/down
- - holding Left Ctrl, navigate prev/next word
- - holding Left Alt, change media prev/next track
- - default is change volume
-
-TD_LSFT_CAPSLOCK_ENABLE = yes
- - This will enable double tap on Left Shift to toggle CAPSLOCK when using KC_LSFTCAPS
-
-IDLE_TIMEOUT_ENABLE = yes
- - Enables Timer functionality; for RGB idle timeouts that can be changed dynamically
-
-EMOTICON_ENABLE
- - adds EMO_ keycodes for text emojis
-
-INVERT_NUMLOCK_INDICATOR
- - inverts the Num lock indicator, LED is on when num lokc is off
-
-ALTTAB_SCROLL_ENABLE
- - bind KS_TSTOG to a different key to change how this toggle happens
-
-## All layers diagram
-![image](https://user-images.githubusercontent.com/71780717/137356366-6b23c71b-9499-473e-a1e3-c65644135fc6.png)
diff --git a/keyboards/mechwild/obe/keymaps/jonavin/rules.mk b/keyboards/mechwild/obe/keymaps/jonavin/rules.mk
deleted file mode 100644
index 6a9acf5d07..0000000000
--- a/keyboards/mechwild/obe/keymaps/jonavin/rules.mk
+++ /dev/null
@@ -1,14 +0,0 @@
-VIA_ENABLE = yes
-LTO_ENABLE = yes
-RGBLIGHT_ENABLE = yes
-
-MOUSEKEY_ENABLE = no
-TAP_DANCE_ENABLE = yes
-
-TD_LSFT_CAPSLOCK_ENABLE = yes
-STARTUP_NUMLOCK_ON = yes
-ENCODER_DEFAULTACTIONS_ENABLE = yes
-EMOTICON_ENABLE = yes
-INVERT_NUMLOCK_INDICATOR = yes
-
-ALTTAB_SCROLL_ENABLE = yes
diff --git a/keyboards/mechwild/puckbuddy/config.h b/keyboards/mechwild/puckbuddy/config.h
index 53263d764e..ad4823c741 100644
--- a/keyboards/mechwild/puckbuddy/config.h
+++ b/keyboards/mechwild/puckbuddy/config.h
@@ -7,9 +7,6 @@
/* Define custom font */
#define OLED_FONT_H "keyboards/mechwild/puckbuddy/glcdfont.c"
-/* allows the "key" button on the blackpill to toggle caps lock for user testing before soldering */
-#define DIP_SWITCH_PINS { A0 }
-
/* set the tapping term for glidepoint pad to register a tap click */
//#define CIRQUE_PINNACLE_TAPPING_TERM 0 // This is set to 0 to disable it
diff --git a/keyboards/mechwild/puckbuddy/info.json b/keyboards/mechwild/puckbuddy/info.json
index 503d9b4429..56bac432b8 100644
--- a/keyboards/mechwild/puckbuddy/info.json
+++ b/keyboards/mechwild/puckbuddy/info.json
@@ -13,6 +13,9 @@
"rows": ["B12", "B13", "B14", "B15"]
},
"diode_direction": "COL2ROW",
+ "dip_switch": {
+ "pins": ["A0"]
+ },
"encoder": {
"rotary": [
{"pin_a": "B1", "pin_b": "B0"},
diff --git a/keyboards/mechwild/sugarglider/config.h b/keyboards/mechwild/sugarglider/config.h
index 75aa26956c..b092db627b 100644
--- a/keyboards/mechwild/sugarglider/config.h
+++ b/keyboards/mechwild/sugarglider/config.h
@@ -3,8 +3,6 @@
#pragma once
-#define DYNAMIC_KEYMAP_LAYER_COUNT 5
-
/* Matrix COL and ROW definitions */
#define MATRIX_ROWS 9
#define MATRIX_COLS 6
@@ -16,9 +14,6 @@
/* Define custom font */
#define OLED_FONT_H "keyboards/mechwild/sugarglider/glcdfont.c"
-/* allows the "key" button on the blackpill to toggle caps lock for user testing before soldering */
-#define DIP_SWITCH_PINS { A0 }
-
#define CIRQUE_PINNACLE_TAP_ENABLE
#define POINTING_DEVICE_GESTURES_SCROLL_ENABLE
diff --git a/keyboards/mechwild/sugarglider/info.json b/keyboards/mechwild/sugarglider/info.json
index f8439dde11..c9095b3db4 100644
--- a/keyboards/mechwild/sugarglider/info.json
+++ b/keyboards/mechwild/sugarglider/info.json
@@ -23,6 +23,9 @@
"force_nkro": true
},
"diode_direction": "COL2ROW",
+ "dynamic_keymap": {
+ "layer_count": 5
+ },
"rgblight": {
"led_count": 10,
"max_brightness": 255,
@@ -51,6 +54,9 @@
"build": {
"debounce_type": "sym_eager_pk"
},
+ "dip_switch": {
+ "pins": ["A0"]
+ },
"encoder": {
"rotary": [
{"pin_a": "B0", "pin_b": "A2", "resolution": 4},
diff --git a/keyboards/mechwild/sugarglider/keymaps/default/keymap.c b/keyboards/mechwild/sugarglider/keymaps/default/keymap.c
index ad0470a139..344dabfd2d 100644
--- a/keyboards/mechwild/sugarglider/keymaps/default/keymap.c
+++ b/keyboards/mechwild/sugarglider/keymaps/default/keymap.c
@@ -2,7 +2,6 @@
// SPDX-License-Identifier: GPL-2.0-or-later
#include QMK_KEYBOARD_H
-#include "keymap_steno.h"
// Defines names for use in layer keycodes and the keymap
enum layer_names {
diff --git a/keyboards/mechwild/sugarglider/rules.mk b/keyboards/mechwild/sugarglider/rules.mk
index 9cfa6b7797..6fd0836a73 100644
--- a/keyboards/mechwild/sugarglider/rules.mk
+++ b/keyboards/mechwild/sugarglider/rules.mk
@@ -13,7 +13,7 @@ CUSTOM_MATRIX = lite
VPATH += drivers/gpio
SRC += mcp23018.c matrix.c
-QUANTUM_LIB_SRC += i2c_master.c
+I2C_DRIVER_REQUIRED = yes
DEFAULT_FOLDER = mechwild/sugarglider/wide_oled
diff --git a/keyboards/melgeek/mach80/config.h b/keyboards/melgeek/mach80/config.h
index f73ab7345c..cc4d7bc6bf 100755
--- a/keyboards/melgeek/mach80/config.h
+++ b/keyboards/melgeek/mach80/config.h
@@ -25,8 +25,7 @@
#define DISABLE_RGB_MATRIX_SOLID_MULTISPLASH
//#define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_SOLID_COLOR
#define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_CYCLE_ALL
-#define DRIVER_ADDR_1 0b0110000
-#define DRIVER_COUNT 1
+#define IS31FL3741_I2C_ADDRESS_1 IS31FL3741_I2C_ADDRESS_GND
#define ENABLE_RGB_MATRIX_ALPHAS_MODS
#define ENABLE_RGB_MATRIX_GRADIENT_UP_DOWN
diff --git a/keyboards/melgeek/mach80/rev1/rev1.c b/keyboards/melgeek/mach80/rev1/rev1.c
index da4c6b73d8..9e5c2d8b81 100755
--- a/keyboards/melgeek/mach80/rev1/rev1.c
+++ b/keyboards/melgeek/mach80/rev1/rev1.c
@@ -19,7 +19,7 @@
#ifdef RGB_MATRIX_ENABLE
-const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = {
+const is31fl3741_led_t PROGMEM g_is31fl3741_leds[RGB_MATRIX_LED_COUNT] = {
{0, CS9_SW1, CS8_SW1, CS7_SW1}, /* RGB1 */
{0, CS9_SW2, CS8_SW2, CS7_SW2}, /* RGB2 */
{0, CS9_SW3, CS8_SW3, CS7_SW3}, /* RGB3 */
@@ -144,7 +144,7 @@ led_config_t g_led_config = {
}
};
-const is31_led g_is31_indicator_leds[3] = {
+const is31fl3741_led_t g_is31_indicator_leds[3] = {
{0, CS6_SW1, CS5_SW1, CS4_SW1}, /* RGB107 */
{0, CS6_SW2, CS5_SW2, CS4_SW2}, /* RGB108 */
{0, CS6_SW3, CS5_SW3, CS4_SW3}, /* RGB109 */
@@ -175,11 +175,11 @@ bool led_update_kb(led_t led_state) {
void matrix_init_kb(void) {
for (int i = 0; i < DRIVER_INDICATOR_LED_TOTAL; ++i) {
- is31_led led = g_is31_indicator_leds[i];
+ is31fl3741_led_t led = g_is31_indicator_leds[i];
is31fl3741_set_scaling_registers(&led, 0xFF, 0xFF, 0xFF);
}
- is31fl3741_update_led_control_registers(DRIVER_ADDR_1, 0);
+ is31fl3741_update_led_control_registers(IS31FL3741_I2C_ADDRESS_1, 0);
matrix_init_user();
}
diff --git a/keyboards/melgeek/mach80/rev2/rev2.c b/keyboards/melgeek/mach80/rev2/rev2.c
index 632466376d..e9fdc2517f 100755
--- a/keyboards/melgeek/mach80/rev2/rev2.c
+++ b/keyboards/melgeek/mach80/rev2/rev2.c
@@ -19,7 +19,7 @@
#ifdef RGB_MATRIX_ENABLE
-const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = {
+const is31fl3741_led_t PROGMEM g_is31fl3741_leds[RGB_MATRIX_LED_COUNT] = {
{0, CS9_SW1, CS8_SW1, CS7_SW1}, /* RGB1 */
{0, CS9_SW2, CS8_SW2, CS7_SW2}, /* RGB2 */
{0, CS9_SW3, CS8_SW3, CS7_SW3}, /* RGB3 */
@@ -142,7 +142,7 @@ led_config_t g_led_config = {
}
};
-const is31_led g_is31_indicator_leds[3] = {
+const is31fl3741_led_t g_is31_indicator_leds[3] = {
{0, CS6_SW1, CS5_SW1, CS4_SW1}, /* RGB107 */
{0, CS6_SW2, CS5_SW2, CS4_SW2}, /* RGB108 */
{0, CS6_SW3, CS5_SW3, CS4_SW3}, /* RGB109 */
@@ -173,11 +173,11 @@ bool led_update_kb(led_t led_state) {
void matrix_init_kb(void) {
for (int i = 0; i < DRIVER_INDICATOR_LED_TOTAL; ++i) {
- is31_led led = g_is31_indicator_leds[i];
+ is31fl3741_led_t led = g_is31_indicator_leds[i];
is31fl3741_set_scaling_registers(&led, 0xFF, 0xFF, 0xFF);
}
- is31fl3741_update_led_control_registers(DRIVER_ADDR_1, 0);
+ is31fl3741_update_led_control_registers(IS31FL3741_I2C_ADDRESS_1, 0);
matrix_init_user();
}
diff --git a/keyboards/melgeek/mj61/config.h b/keyboards/melgeek/mj61/config.h
index af2393e5ec..704699ece9 100644
--- a/keyboards/melgeek/mj61/config.h
+++ b/keyboards/melgeek/mj61/config.h
@@ -70,5 +70,4 @@
// # define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH
//#define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_SOLID_COLOR
#define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_CYCLE_ALL
-#define DRIVER_ADDR_1 0b0110000
-#define DRIVER_COUNT 1
+#define IS31FL3741_I2C_ADDRESS_1 IS31FL3741_I2C_ADDRESS_GND
diff --git a/keyboards/melgeek/mj61/rev1/rev1.c b/keyboards/melgeek/mj61/rev1/rev1.c
index 8f8b48b017..76fcb64c37 100644
--- a/keyboards/melgeek/mj61/rev1/rev1.c
+++ b/keyboards/melgeek/mj61/rev1/rev1.c
@@ -17,7 +17,7 @@
#include "quantum.h"
#ifdef RGB_MATRIX_ENABLE
-const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = {
+const is31fl3741_led_t PROGMEM g_is31fl3741_leds[RGB_MATRIX_LED_COUNT] = {
{0, CS12_SW1, CS11_SW1, CS10_SW1}, /* RGB1 */
{0, CS12_SW2, CS11_SW2, CS10_SW2}, /* RGB2 */
{0, CS12_SW3, CS11_SW3, CS10_SW3}, /* RGB3 */
diff --git a/keyboards/melgeek/mj61/rev2/rev2.c b/keyboards/melgeek/mj61/rev2/rev2.c
index 448fa0bb18..9d13d52ebc 100644
--- a/keyboards/melgeek/mj61/rev2/rev2.c
+++ b/keyboards/melgeek/mj61/rev2/rev2.c
@@ -19,7 +19,7 @@
#ifdef RGB_MATRIX_ENABLE
-const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = {
+const is31fl3741_led_t PROGMEM g_is31fl3741_leds[RGB_MATRIX_LED_COUNT] = {
{0, CS9_SW1, CS8_SW1, CS7_SW1}, /* RGB1 */
{0, CS9_SW2, CS8_SW2, CS7_SW2}, /* RGB3 */
{0, CS9_SW3, CS8_SW3, CS7_SW3}, /* RGB4 */
diff --git a/keyboards/melgeek/mj63/config.h b/keyboards/melgeek/mj63/config.h
index af2393e5ec..704699ece9 100644
--- a/keyboards/melgeek/mj63/config.h
+++ b/keyboards/melgeek/mj63/config.h
@@ -70,5 +70,4 @@
// # define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH
//#define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_SOLID_COLOR
#define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_CYCLE_ALL
-#define DRIVER_ADDR_1 0b0110000
-#define DRIVER_COUNT 1
+#define IS31FL3741_I2C_ADDRESS_1 IS31FL3741_I2C_ADDRESS_GND
diff --git a/keyboards/melgeek/mj63/rev1/rev1.c b/keyboards/melgeek/mj63/rev1/rev1.c
index a0a9ac13cd..69e7ab5da6 100644
--- a/keyboards/melgeek/mj63/rev1/rev1.c
+++ b/keyboards/melgeek/mj63/rev1/rev1.c
@@ -19,7 +19,7 @@
#ifdef RGB_MATRIX_ENABLE
-const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = {
+const is31fl3741_led_t PROGMEM g_is31fl3741_leds[RGB_MATRIX_LED_COUNT] = {
{0, CS9_SW1, CS8_SW1, CS7_SW1}, /* RGB1 */
{0, CS9_SW2, CS8_SW2, CS7_SW2}, /* RGB2 */
{0, CS9_SW3, CS8_SW3, CS7_SW3}, /* RGB3 */
diff --git a/keyboards/melgeek/mj63/rev2/rev2.c b/keyboards/melgeek/mj63/rev2/rev2.c
index 2d6768e2aa..5ab9cdb65a 100644
--- a/keyboards/melgeek/mj63/rev2/rev2.c
+++ b/keyboards/melgeek/mj63/rev2/rev2.c
@@ -19,7 +19,7 @@
#ifdef RGB_MATRIX_ENABLE
-const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = {
+const is31fl3741_led_t PROGMEM g_is31fl3741_leds[RGB_MATRIX_LED_COUNT] = {
{0, CS9_SW1, CS8_SW1, CS7_SW1}, /* RGB1 */
{0, CS9_SW2, CS8_SW2, CS7_SW2}, /* RGB3 */
{0, CS9_SW3, CS8_SW3, CS7_SW3}, /* RGB4 */
diff --git a/keyboards/melgeek/mj64/config.h b/keyboards/melgeek/mj64/config.h
index af2393e5ec..704699ece9 100644
--- a/keyboards/melgeek/mj64/config.h
+++ b/keyboards/melgeek/mj64/config.h
@@ -70,5 +70,4 @@
// # define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH
//#define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_SOLID_COLOR
#define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_CYCLE_ALL
-#define DRIVER_ADDR_1 0b0110000
-#define DRIVER_COUNT 1
+#define IS31FL3741_I2C_ADDRESS_1 IS31FL3741_I2C_ADDRESS_GND
diff --git a/keyboards/melgeek/mj64/rev1/rev1.c b/keyboards/melgeek/mj64/rev1/rev1.c
index 0369d6b0da..fff946b20a 100644
--- a/keyboards/melgeek/mj64/rev1/rev1.c
+++ b/keyboards/melgeek/mj64/rev1/rev1.c
@@ -18,7 +18,7 @@
#ifdef RGB_MATRIX_ENABLE
-const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = {
+const is31fl3741_led_t PROGMEM g_is31fl3741_leds[RGB_MATRIX_LED_COUNT] = {
{0, CS9_SW1, CS8_SW1, CS7_SW1}, /* RGB1 */
{0, CS9_SW2, CS8_SW2, CS7_SW2}, /* RGB2 */
{0, CS9_SW3, CS8_SW3, CS7_SW3}, /* RGB3 */
diff --git a/keyboards/melgeek/mj64/rev2/rev2.c b/keyboards/melgeek/mj64/rev2/rev2.c
index bf3dc4cf86..35da35b2e4 100644
--- a/keyboards/melgeek/mj64/rev2/rev2.c
+++ b/keyboards/melgeek/mj64/rev2/rev2.c
@@ -18,7 +18,7 @@
#ifdef RGB_MATRIX_ENABLE
-const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = {
+const is31fl3741_led_t PROGMEM g_is31fl3741_leds[RGB_MATRIX_LED_COUNT] = {
{0, CS9_SW1, CS8_SW1, CS7_SW1}, /* RGB1 */
{0, CS9_SW2, CS8_SW2, CS7_SW2}, /* RGB2 */
{0, CS9_SW3, CS8_SW3, CS7_SW3}, /* RGB3 */
diff --git a/keyboards/melgeek/mj64/rev3/rev3.c b/keyboards/melgeek/mj64/rev3/rev3.c
index 4b28bb8b44..942bda1487 100644
--- a/keyboards/melgeek/mj64/rev3/rev3.c
+++ b/keyboards/melgeek/mj64/rev3/rev3.c
@@ -18,7 +18,7 @@
#ifdef RGB_MATRIX_ENABLE
-const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = {
+const is31fl3741_led_t PROGMEM g_is31fl3741_leds[RGB_MATRIX_LED_COUNT] = {
{0, CS9_SW1, CS8_SW1, CS7_SW1}, /* RGB1 */
{0, CS9_SW2, CS8_SW2, CS7_SW2}, /* RGB3 */
{0, CS9_SW3, CS8_SW3, CS7_SW3}, /* RGB4 */
diff --git a/keyboards/melgeek/mj65/config.h b/keyboards/melgeek/mj65/config.h
index af2393e5ec..704699ece9 100644
--- a/keyboards/melgeek/mj65/config.h
+++ b/keyboards/melgeek/mj65/config.h
@@ -70,5 +70,4 @@
// # define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH
//#define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_SOLID_COLOR
#define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_CYCLE_ALL
-#define DRIVER_ADDR_1 0b0110000
-#define DRIVER_COUNT 1
+#define IS31FL3741_I2C_ADDRESS_1 IS31FL3741_I2C_ADDRESS_GND
diff --git a/keyboards/melgeek/mj65/rev3/rev3.c b/keyboards/melgeek/mj65/rev3/rev3.c
index f44c412659..6d851aa847 100644
--- a/keyboards/melgeek/mj65/rev3/rev3.c
+++ b/keyboards/melgeek/mj65/rev3/rev3.c
@@ -18,7 +18,7 @@
#ifdef RGB_MATRIX_ENABLE
-const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = {
+const is31fl3741_led_t PROGMEM g_is31fl3741_leds[RGB_MATRIX_LED_COUNT] = {
{0, CS9_SW1, CS8_SW1, CS7_SW1}, /* RGB1 */
{0, CS9_SW2, CS8_SW2, CS7_SW2}, /* RGB2 */
{0, CS9_SW3, CS8_SW3, CS7_SW3}, /* RGB3 */
diff --git a/keyboards/melgeek/mojo68/config.h b/keyboards/melgeek/mojo68/config.h
index b5f846ae78..e661efb2a9 100755
--- a/keyboards/melgeek/mojo68/config.h
+++ b/keyboards/melgeek/mojo68/config.h
@@ -69,5 +69,4 @@
// # define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH
//#define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_SOLID_COLOR
#define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_CYCLE_ALL
-#define DRIVER_ADDR_1 0b0110000
-#define DRIVER_COUNT 1
+#define IS31FL3741_I2C_ADDRESS_1 IS31FL3741_I2C_ADDRESS_GND
diff --git a/keyboards/melgeek/mojo68/rev1/rev1.c b/keyboards/melgeek/mojo68/rev1/rev1.c
index bea523c84e..cd6d4ec413 100755
--- a/keyboards/melgeek/mojo68/rev1/rev1.c
+++ b/keyboards/melgeek/mojo68/rev1/rev1.c
@@ -18,7 +18,7 @@
#ifdef RGB_MATRIX_ENABLE
-const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = {
+const is31fl3741_led_t PROGMEM g_is31fl3741_leds[RGB_MATRIX_LED_COUNT] = {
{0, CS9_SW1, CS8_SW1, CS7_SW1}, /* RGB1 */
{0, CS9_SW2, CS8_SW2, CS7_SW2}, /* RGB2 */
{0, CS9_SW3, CS8_SW3, CS7_SW3}, /* RGB3 */
@@ -112,7 +112,7 @@ led_config_t g_led_config = {
}
};
-const is31_led g_is31_indicator_leds[3] = {
+const is31fl3741_led_t g_is31_indicator_leds[3] = {
{0, CS6_SW1, CS5_SW1, CS4_SW1}, /* RGB124 */
{0, CS6_SW2, CS5_SW2, CS4_SW2}, /* RGB125 */
{0, CS6_SW3, CS5_SW3, CS4_SW3}, /* RGB126 */
@@ -143,11 +143,11 @@ bool led_update_kb(led_t led_state) {
void matrix_init_kb(void) {
for (int i = 0; i < DRIVER_INDICATOR_LED_TOTAL; ++i) {
- is31_led led = g_is31_indicator_leds[i];
+ is31fl3741_led_t led = g_is31_indicator_leds[i];
is31fl3741_set_scaling_registers(&led, 0xFF, 0xFF, 0xFF);
}
- is31fl3741_update_led_control_registers(DRIVER_ADDR_1, 0);
+ is31fl3741_update_led_control_registers(IS31FL3741_I2C_ADDRESS_1, 0);
matrix_init_user();
}
diff --git a/keyboards/melgeek/mojo75/config.h b/keyboards/melgeek/mojo75/config.h
index bdee36b66b..a4e89e5a90 100644
--- a/keyboards/melgeek/mojo75/config.h
+++ b/keyboards/melgeek/mojo75/config.h
@@ -71,5 +71,4 @@
//#define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_SOLID_COLOR
#define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_CYCLE_ALL
//#define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_SOLID_REACTIVE_SIMPLE
-#define DRIVER_ADDR_1 0b0110000
-#define DRIVER_COUNT 1
+#define IS31FL3741_I2C_ADDRESS_1 IS31FL3741_I2C_ADDRESS_GND
diff --git a/keyboards/melgeek/mojo75/rev1/rev1.c b/keyboards/melgeek/mojo75/rev1/rev1.c
index a313a25cfe..e64c163c78 100644
--- a/keyboards/melgeek/mojo75/rev1/rev1.c
+++ b/keyboards/melgeek/mojo75/rev1/rev1.c
@@ -18,7 +18,7 @@
#ifdef RGB_MATRIX_ENABLE
-const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = {
+const is31fl3741_led_t PROGMEM g_is31fl3741_leds[RGB_MATRIX_LED_COUNT] = {
{0, CS6_SW1, CS5_SW1, CS4_SW1}, /* RGB1 */
{0, CS6_SW2, CS5_SW2, CS4_SW2}, /* RGB2 */
{0, CS6_SW3, CS5_SW3, CS4_SW3}, /* RGB3 */
diff --git a/keyboards/melgeek/tegic/config.h b/keyboards/melgeek/tegic/config.h
index e371af9552..723706d610 100755
--- a/keyboards/melgeek/tegic/config.h
+++ b/keyboards/melgeek/tegic/config.h
@@ -22,8 +22,7 @@
#define RGB_MATRIX_LED_FLUSH_LIMIT 26
//#define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_SOLID_COLOR
#define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_CYCLE_ALL
-#define DRIVER_ADDR_1 0b0110000
-#define DRIVER_COUNT 1
+#define IS31FL3741_I2C_ADDRESS_1 IS31FL3741_I2C_ADDRESS_GND
#define ENABLE_RGB_MATRIX_ALPHAS_MODS
#define ENABLE_RGB_MATRIX_GRADIENT_UP_DOWN
diff --git a/keyboards/melgeek/tegic/rev1/rev1.c b/keyboards/melgeek/tegic/rev1/rev1.c
index 24c7fd6cb7..6dc2e8d180 100755
--- a/keyboards/melgeek/tegic/rev1/rev1.c
+++ b/keyboards/melgeek/tegic/rev1/rev1.c
@@ -19,7 +19,7 @@
#ifdef RGB_MATRIX_ENABLE
-const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = {
+const is31fl3741_led_t PROGMEM g_is31fl3741_leds[RGB_MATRIX_LED_COUNT] = {
{0, CS9_SW1, CS8_SW1, CS7_SW1}, /* RGB1 */
{0, CS9_SW2, CS8_SW2, CS7_SW2}, /* RGB2 */
{0, CS9_SW3, CS8_SW3, CS7_SW3}, /* RGB3 */
diff --git a/keyboards/melgeek/z70ultra/config.h b/keyboards/melgeek/z70ultra/config.h
index 3c19a6f93c..d78cbab672 100644
--- a/keyboards/melgeek/z70ultra/config.h
+++ b/keyboards/melgeek/z70ultra/config.h
@@ -70,7 +70,6 @@
// # define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH
//#define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_SOLID_COLOR
#define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_CYCLE_ALL
-#define DRIVER_ADDR_1 0b0110000
-#define DRIVER_COUNT 1
+#define IS31FL3741_I2C_ADDRESS_1 IS31FL3741_I2C_ADDRESS_GND
#define RGB_MATRIX_LED_COUNT 69
#define DRIVER_INDICATOR_LED_TOTAL 6
diff --git a/keyboards/melgeek/z70ultra/z70ultra.c b/keyboards/melgeek/z70ultra/z70ultra.c
index d0b23c3bf8..f978edea92 100644
--- a/keyboards/melgeek/z70ultra/z70ultra.c
+++ b/keyboards/melgeek/z70ultra/z70ultra.c
@@ -18,7 +18,7 @@
#ifdef RGB_MATRIX_ENABLE
-const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = {
+const is31fl3741_led_t PROGMEM g_is31fl3741_leds[RGB_MATRIX_LED_COUNT] = {
{0, CS28_SW1, CS30_SW1, CS29_SW1}, /* RGB10 */
{0, CS28_SW2, CS30_SW2, CS29_SW2}, /* RGB11 */
{0, CS28_SW3, CS30_SW3, CS29_SW3}, /* RGB12 */
@@ -117,7 +117,7 @@ led_config_t g_led_config = {
}
};
-const is31_led g_is31_indicator_leds[6] = {
+const is31fl3741_led_t g_is31_indicator_leds[6] = {
{0, CS5_SW1, CS3_SW1, CS4_SW1}, /* RGB71 */
{0, CS5_SW2, CS3_SW2, CS4_SW2}, /* RGB72 */
{0, CS5_SW3, CS3_SW3, CS4_SW3}, /* RGB73 */
@@ -157,11 +157,11 @@ bool led_update_kb(led_t led_state) {
void matrix_init_kb(void) {
for (int i = 0; i < DRIVER_INDICATOR_LED_TOTAL; ++i) {
- is31_led led = g_is31_indicator_leds[i];
+ is31fl3741_led_t led = g_is31_indicator_leds[i];
is31fl3741_set_scaling_registers(&led, 0xFF, 0xFF, 0xFF);
}
- is31fl3741_update_led_control_registers(DRIVER_ADDR_1, 0);
+ is31fl3741_update_led_control_registers(IS31FL3741_I2C_ADDRESS_1, 0);
matrix_init_user();
}
diff --git a/keyboards/miiiw/blackio83/blackio83.c b/keyboards/miiiw/blackio83/blackio83.c
index 0d8412624e..8c80ebd73c 100644
--- a/keyboards/miiiw/blackio83/blackio83.c
+++ b/keyboards/miiiw/blackio83/blackio83.c
@@ -97,34 +97,37 @@ void keyboard_post_init_kb(void) {
loop10hz_token = defer_exec(LOOP_10HZ_PERIOD, loop_10Hz, NULL);
}
-__attribute__((weak)) void shutdown_user(void) {
+bool shutdown_kb(bool jump_to_bootloader) {
+ if (shutdown_user(jump_to_bootloader)) {
#ifdef RGB_MATRIX_ENABLE
- rgb_matrix_set_suspend_state(true);
-#endif // RGB_MATRIX_ENABLE
- wait_ms(10);
+ rgb_matrix_set_suspend_state(true);
+#endif // RGB_MATRIX_ENABLE
+ wait_ms(10);
+ }
ws2812_poweroff();
+ return true;
}
#ifdef DIP_SWITCH_ENABLE
bool dip_switch_update_mask_kb(uint32_t state) {
if (!dip_switch_update_mask_user(state)) { return false; }
-
+
if(state & 0x01) {
led_suspend();
usbDisconnectBus(&USB_DRIVER);
usbStop(&USB_DRIVER);
- shutdown_user();
+ shutdown_user(true);
setPinInputHigh(POWER_SWITCH_PIN);
palEnableLineEvent(POWER_SWITCH_PIN, PAL_EVENT_MODE_RISING_EDGE);
POWER_EnterSleep();
}
-
+
return true;
}
#endif
uint32_t loop_10Hz(uint32_t trigger_time, void *cb_arg) {
-
+
if(last_input_activity_elapsed() > 1000) {
static uint32_t pmu_timer = 0;
if(timer_elapsed32(pmu_timer) > 3000) {
@@ -144,7 +147,7 @@ uint32_t loop_10Hz(uint32_t trigger_time, void *cb_arg) {
extern matrix_row_t matrix[MATRIX_ROWS];
static uint32_t restore_tick = 0;
- if(matrix[0] == 0x4000 && matrix[1] == 0 &&
+ if(matrix[0] == 0x4000 && matrix[1] == 0 &&
matrix[2] == 0 && matrix[3] == 0 && matrix[4] == 0 && matrix[5] == 0x201) {
if(restore_tick++ > 50) {
restore_tick = 0;
diff --git a/keyboards/miiiw/blackio83/info.json b/keyboards/miiiw/blackio83/info.json
index 40fc6b7d89..107e288099 100644
--- a/keyboards/miiiw/blackio83/info.json
+++ b/keyboards/miiiw/blackio83/info.json
@@ -26,6 +26,9 @@
"cols": ["H0", "H1", "H2", "H3", "H4", "H5", "H6", "H7", "H8", "H9", "H10", "H11", "H12", "H13", "H14", "H15"],
"rows": ["A7", "A6", "A5", "A4", "A3", "A2"]
},
+ "dip_switch": {
+ "pins": ["B0", "B1", "B8", "B12"]
+ },
"processor": "STM32F072",
"rgb_matrix": {
"driver": "ws2812",
diff --git a/keyboards/miiiw/blackio83/rev_0100/config.h b/keyboards/miiiw/blackio83/rev_0100/config.h
index 803c8a8a3b..e68a9d0b16 100644
--- a/keyboards/miiiw/blackio83/rev_0100/config.h
+++ b/keyboards/miiiw/blackio83/rev_0100/config.h
@@ -16,20 +16,7 @@
#pragma once
-/*
- * Keyboard Matrix Assignments
- *
- * Change this to how you wired your keyboard
- * COLS: AVR pins used for columns, left to right
- * ROWS: AVR pins used for rows, top to bottom
- * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode)
- * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode)
- *
- */
-
-/* Dip Switch */
#define POWER_SWITCH_PIN B0
-#define DIP_SWITCH_PINS { B0, B1, B8, B12 }
/* 16 with dummy columns for shift registers */
#define SHR_SERIES_NUM 2
diff --git a/keyboards/miller/gm862/config.h b/keyboards/miller/gm862/config.h
index 4bd9748ab5..2bda7f75bb 100644
--- a/keyboards/miller/gm862/config.h
+++ b/keyboards/miller/gm862/config.h
@@ -53,7 +53,6 @@
// # define ENABLE_RGB_MATRIX_SOLID_SPLASH
// # define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH
-# define DRIVER_ADDR_1 0b1010000
-# define DRIVER_COUNT 1
+# define IS31FL3733_I2C_ADDRESS_1 IS31FL3733_I2C_ADDRESS_GND_GND
# define RGB_MATRIX_LED_COUNT 62
#endif
diff --git a/keyboards/miller/gm862/gm862.c b/keyboards/miller/gm862/gm862.c
index 73d1323cfb..b677ae3be4 100644
--- a/keyboards/miller/gm862/gm862.c
+++ b/keyboards/miller/gm862/gm862.c
@@ -1,7 +1,7 @@
#include "quantum.h"
#ifdef RGB_MATRIX_ENABLE
-const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = {
+const is31fl3733_led_t PROGMEM g_is31fl3733_leds[RGB_MATRIX_LED_COUNT] = {
{0, B_1, A_1, C_1},
{0, B_2, A_2, C_2},
{0, B_3, A_3, C_3},
diff --git a/keyboards/miniaxe/keymaps/wanleg/config.h b/keyboards/miniaxe/keymaps/wanleg/config.h
deleted file mode 100644
index 0f20ea455f..0000000000
--- a/keyboards/miniaxe/keymaps/wanleg/config.h
+++ /dev/null
@@ -1,11 +0,0 @@
-#pragma once
-
-/* Select hand configuration */
-
-// #define MASTER_LEFT
-// #define MASTER_RIGHT
-#define EE_HANDS
-
-//#define QMK_ESC_OUTPUT F1 // usually COL
-//#define QMK_ESC_INPUT D6 // usually ROW // connected to nothing on the miniaxe
-//#define QMK_LED D7 //connected to nothing on the miniaxe
diff --git a/keyboards/miniaxe/keymaps/wanleg/keymap.c b/keyboards/miniaxe/keymaps/wanleg/keymap.c
deleted file mode 100644
index 69233741ba..0000000000
--- a/keyboards/miniaxe/keymaps/wanleg/keymap.c
+++ /dev/null
@@ -1,49 +0,0 @@
-#include QMK_KEYBOARD_H
-#include "wanleg.h"
-
-#define LAYOUT_miniaxe_base( \
- K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, \
- K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, \
- K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A \
- ) \
- LAYOUT_wrapper( \
- K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, \
- K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, \
- K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, \
- _______, NUMBER, ETCETERA, KC_SPC, DIRECTION, KC_RGUI \
- )
-#define LAYOUT_miniaxe_base_wrapper(...) LAYOUT_miniaxe_base(__VA_ARGS__)
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-[_GK] = LAYOUT_miniaxe_base_wrapper(
- _______________Gherkin_Row_0_______________,
- _______________Gherkin_Row_1_______________,
- SFT_T(KC_Z), KC_X, KC_C, LT(NUM,KC_V), LT(ETC,KC_B), LT(_FN,KC_N), LT(DIR,KC_M), GUI_T(KC_COMM), ALT_T(KC_DOT), CTL_T(KC_BSPC)
-),
-
-[NUM] = LAYOUT_wrapper(
- _______________Gherkin_NUM_0_______________,
- _______________Gherkin_NUM_1_______________,
- _______________Gherkin_NUM_2_______________,
- _______, _______, _______, KC_ENT, KC_RSFT, _______
-),
-
-[DIR] = LAYOUT_miniaxe_base_wrapper(
- _______________Gherkin_DIR_0_______________,
- _______________Gherkin_DIR_1_______________,
- _______________Gherkin_DIR_2_______________
-),
-
-[ETC] = LAYOUT_wrapper(
- _______________Gherkin_ETC_0_______________,
- _______________Gherkin_ETC_1_______________,
- _______________Gherkin_ETC_2_______________,
- _______, NUMBER, ETCETERA, LALT(LCTL(KC_DEL)), DIRECTION, KC_RGUI
-),
-
-[_FN] = LAYOUT_miniaxe_base_wrapper(
- _______________Gherkin_FN_0________________,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
-),
-}; \ No newline at end of file
diff --git a/keyboards/miniaxe/keymaps/wanleg/rules.mk b/keyboards/miniaxe/keymaps/wanleg/rules.mk
deleted file mode 100644
index ae5ae549cc..0000000000
--- a/keyboards/miniaxe/keymaps/wanleg/rules.mk
+++ /dev/null
@@ -1,18 +0,0 @@
-# Bootloader selection
-# Teensy halfkay
-# Pro Micro caterina
-# Atmel DFU atmel-dfu
-# LUFA DFU lufa-dfu
-# QMK DFU qmk-dfu
-# atmega32a bootloadHID
-#BOOTLOADER = qmk-dfu
-
-
-# If you don't know the bootloader type, then you can specify the
-# Boot Section Size in *bytes* by uncommenting out the OPT_DEFS line
-# Teensy halfKay 512
-# Teensy++ halfKay 1024
-# Atmel DFU loader 4096
-# LUFA bootloader 4096
-# USBaspLoader 2048
-# OPT_DEFS += -DBOOTLOADER_SIZE=4096 \ No newline at end of file
diff --git a/keyboards/minimacro5/keymaps/devdev/keymap.c b/keyboards/minimacro5/keymaps/devdev/keymap.c
deleted file mode 100644
index cb183a91b7..0000000000
--- a/keyboards/minimacro5/keymaps/devdev/keymap.c
+++ /dev/null
@@ -1,124 +0,0 @@
-/* Copyright 2020 Dane Evans
- *
- * 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/>.
- */
-// MINI MACRO 5
-
-#include QMK_KEYBOARD_H
-
-enum layers {
- _MAIN,
- _MEDIA,
- _DISCORD,
- _PHOTOSHOP
-};
-
-// Tap Dance declarations
-enum tap_dances{
- TD_TO_DISCORD,
- TD_TO_PHOTOSHOP,
- TD_TO_MEDIA,
- TD_TO_MAIN,
- TD_RESET_SLIDER
-
-};
-
-
-bool encoder_update_user(uint8_t index, bool clockwise) {
- if (index == 0) { /* First encoder*/
- switch(get_highest_layer(layer_state)){
- case _MAIN:
- if (clockwise) {
- tap_code(KC_VOLU);
- } else {
- tap_code(KC_VOLD);
- }
- break;
- case _MEDIA:
- if (clockwise) {
- tap_code(KC_VOLU);
- } else {
- tap_code(KC_VOLD);
- }
- break;
- case _DISCORD:
- if (clockwise) {
- tap_code(KC_VOLU);
- } else {
- tap_code(KC_VOLD);
- }
- break;
- case _PHOTOSHOP:
- if (clockwise) {
- tap_code(KC_UP);
- } else {
- tap_code(KC_DOWN);
- }
- break;
- default:
- if (clockwise) {
- tap_code(KC_VOLU);
- } else {
- tap_code(KC_VOLD);
- }
- break;
- }
- }
- return true;
-}
-
-//
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { //buttion closest to usb is first
- [_MAIN] = LAYOUT_ortho_1x5(
- TD(TD_TO_DISCORD), TO(_DISCORD), KC_C, RGB_TOG, TD(TD_TO_PHOTOSHOP)
- ),
- [_MEDIA] = LAYOUT_ortho_1x5(
- TD(TD_TO_MAIN), KC_MEDIA_PREV_TRACK, KC_MEDIA_NEXT_TRACK, KC_MEDIA_PLAY_PAUSE, KC_MEDIA_STOP
- ),
- [_DISCORD] = LAYOUT_ortho_1x5(
- TD(TD_TO_MAIN), TD(TD_TO_MEDIA), KC_Q, KC_R, MEH(KC_UP)
- )
- ,
- [_PHOTOSHOP] = LAYOUT_ortho_1x5(
- TD(TD_RESET_SLIDER) , C(KC_Z), C(KC_Y), KC_P, KC_G
- )
-};
-
-layer_state_t layer_state_set_user(layer_state_t state) {
-
- if (layer_state_cmp(state, _MAIN)) // this one not working
- rgblight_sethsv_at(HSV_GREEN, 0);
- if (layer_state_cmp(state, _MEDIA))
- rgblight_sethsv_at(HSV_RED, 0);
- if (layer_state_cmp(state, _DISCORD))
- rgblight_sethsv_at(HSV_BLUE, 0);
- if (layer_state_cmp(state, _PHOTOSHOP))
- rgblight_sethsv_at(HSV_PURPLE, 0);
- return state;
-}
-
-void keyboard_post_init_user(void) {
- //rgblight_mode(1);
- rgblight_sethsv_at(HSV_GREEN, 0);
-}
-
-// Tap Dance definitions
-tap_dance_action_t tap_dance_actions[] = {
- // Tap once for Escape, twice for Caps Lock
- [TD_TO_DISCORD] = ACTION_TAP_DANCE_LAYER_MOVE(KC_MUTE, _DISCORD),
- [TD_TO_PHOTOSHOP] = ACTION_TAP_DANCE_LAYER_MOVE(KC_E, _PHOTOSHOP),
- [TD_TO_MEDIA] = ACTION_TAP_DANCE_LAYER_MOVE(KC_E, _MEDIA),
- [TD_TO_MAIN] = ACTION_TAP_DANCE_LAYER_MOVE(KC_MUTE, _MAIN),
- [TD_RESET_SLIDER] = ACTION_TAP_DANCE_LAYER_MOVE(KC_0, _MAIN)
-};
diff --git a/keyboards/minimacro5/keymaps/devdev/rules.mk b/keyboards/minimacro5/keymaps/devdev/rules.mk
deleted file mode 100644
index 1c1ed316a0..0000000000
--- a/keyboards/minimacro5/keymaps/devdev/rules.mk
+++ /dev/null
@@ -1,2 +0,0 @@
-RGBLIGHT_ENABLE = yes
-TAP_DANCE_ENABLE = yes \ No newline at end of file
diff --git a/keyboards/misterknife/knife66/keymaps/zyber/keymap.c b/keyboards/misterknife/knife66/keymaps/zyber/keymap.c
deleted file mode 100644
index aad3aeaf1c..0000000000
--- a/keyboards/misterknife/knife66/keymaps/zyber/keymap.c
+++ /dev/null
@@ -1,40 +0,0 @@
-/*
-Copyright 2012,2013 Jun Wako <wakojun@gmail.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 QMK_KEYBOARD_H
-#include "zyber.h"
-
-// Defines names for use in layer keycodes and the keymap
-enum layer_names {
- _BASE,
- _FN
-};
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [_BASE] = LAYOUT_split_space_split_bs(
- QK_GESC, KC_1, KC_2, KC_3, TD(SSHT), KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_NO, TD(END_HOME),
- KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, TD(LBRC), KC_RBRC, KC_BSLS, KC_DEL,
- CTRL_C_UP, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, TD(SCLN), TD(QUOT), KC_ENT, KC_PGUP,
- 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_PGDN,
- KC_NO, KC_LALT, KC_LGUI, KC_LGUI, LT(1, KC_SPC), KC_LGUI, KC_LALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT ),
-
- [_FN] = LAYOUT_split_space_split_bs(
- QK_BOOT, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_DEL, RGB_TOG,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY, KC_MPRV, KC_MNXT, KC_TRNS, RGB_MOD,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT,KC_TRNS, KC_TRNS, KC_INS, RGB_SPI,
- KC_CAPS, KC_TRNS, KC_TRNS, C(KC_C), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, C(KC_UP), RGB_SPD,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, C(KC_LEFT), C(KC_DOWN), C(KC_RGHT) ),
-}; \ No newline at end of file
diff --git a/keyboards/mitosis/keymaps/datagrok/config.h b/keyboards/mitosis/keymaps/datagrok/config.h
deleted file mode 100644
index 5f37d27e69..0000000000
--- a/keyboards/mitosis/keymaps/datagrok/config.h
+++ /dev/null
@@ -1,57 +0,0 @@
-#ifndef CONFIG_USER_H
-#define CONFIG_USER_H
-
-#ifdef MITOSIS_DATAGROK_SLOWUART
-// This is the highest possible baud rate that a pro micro clocked at 8Mhz can
-// support without errors. I don't notice any difference in behavior at this
-// slower speed. (So I think it should maybe be the default, to allow a single
-// codebase to support both available flavors of pro micro.) This requires a
-// corresponding change to the wireless module firmware; see
-// https://github.com/reversebias/mitosis/pull/10
-#undef SERIAL_UART_BAUD // avoids redefinition warning
-#define SERIAL_UART_BAUD 250000
-#endif
-
-// I want to place an underscore as tap behavior on the right shift key. But
-// RSFT_T(KC_UNDS) doesn't work; mod-tap doesn't work with pre-shifted keys. So
-// instead I take advantage of Space Cadet Shift that does something similar
-// and just tweak it to use the -/_ key instead of 0/). See
-// https://github.com/qmk/qmk_firmware/pull/2055
-#define RSPC_KEY KC_MINS
-
-// TODO: figure out which of these I can safely enable to reduce firmware size.
-//#define NO_ACTION_LAYER
-//#define NO_ACTION_TAPPING
-//#define NO_ACTION_ONESHOT // can't; errors
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
-
-#ifdef AUDIO_ENABLE
-#define STARTUP_SONG SONG(STARTUP_SOUND)
-#define DEFAULT_LAYER_SONGS { \
- SONG(QWERTY_SOUND), \
- SONG(COLEMAK_SOUND), \
- SONG(DVORAK_SOUND), \
- SONG(WORKMAN_SOUND), \
- }
-#define AUDIO_VOICES
-#define AUDIO_CLICKY
-#define AUDIO_PIN C6
-#endif
-
-#endif
-
-#define LAYOUT_bottomspace( \
- 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, \
- k31, k32, k33, k34, k35, k36, k37, k38, \
- k41, k42, k43, k44, k45, k46, k47, k48 \
- ) \
- { \
- { 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 }, \
- { KC_NO, k31, k32, k43, k44, k45, k46, k37, k38, KC_NO }, \
- { KC_NO, k41, k42, k33, k34, k35, k36, k47, k48, KC_NO } \
- }
diff --git a/keyboards/mitosis/keymaps/datagrok/keymap.c b/keyboards/mitosis/keymaps/datagrok/keymap.c
deleted file mode 100644
index 9a177a7b8d..0000000000
--- a/keyboards/mitosis/keymaps/datagrok/keymap.c
+++ /dev/null
@@ -1,237 +0,0 @@
-#include QMK_KEYBOARD_H
-
-#ifdef AUDIO_ENABLE
-#include "audio.h"
-#ifdef DEFAULT_LAYER_SONGS
-extern float default_layer_songs[][16][2];
-#endif
-#endif
-
-enum mitosis_layers
- {
- _xQ, // qwerty
- _xC, // colemak
- _xD, // dvorak
- _xW, // workman
- _xS, // symbols
- _xN, // numbers
- _xF // functions
- };
-
-enum mitosis_keycodes
- {
- KC_LAYO = SAFE_RANGE
- };
-
-// Setting MITOSIS_DATAGROK_BOTTOMSPACE in rules.mk will swap the upper and
-// lower center four thumb-keys. See keymaps/datagrok/rules.mk.
-#ifdef MITOSIS_DATAGROK_BOTTOMSPACE
-#undef LAYOUT
-#define LAYOUT LAYOUT_bottomspace
-#endif
-
-// I don't use Japanese myself, but I've placed henkan 変換 and muhenkan 無変換
-// in my layout to act as left and right HYPER
-
-// Momentary tri-state layers. Mitosis default keymap does this too but employs
-// new keymappings and a bunch of conditional code. This simpler keymap
-// accomplishes it but with a small quirk: triggering both layers then releasing
-// one out-of-order will leave the tri-state triggered until the other is
-// released. Which doesn't bother me.
-
-// The weird /*,*/ comments are a hack to get slightly better automatic
-// tabulation in my editor.
-
-// We use Space Cadet SC_RSPC to get _ on right shift. See config.h for details.
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [_xQ] = LAYOUT(
- 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_QUOT,
- /*, */ KC_LGUI, KC_LCTL, MO(_xS), KC_BSPC, KC_SPC, MO(_xS), KC_RCTL, KC_RGUI,
- /*, */ KC_INT4, KC_LALT, MO(_xN), LSFT_T(KC_TAB), SC_RSPC, MO(_xN), KC_RALT, KC_INT5),
- [_xC] = LAYOUT(
- KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN,
- KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O,
- KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_QUOT,
- /*, */ _______, _______, _______, _______, _______, _______, _______, _______,
- /*, */ _______, _______, _______, _______, _______, _______, _______, _______),
- [_xD] = LAYOUT(
- KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L,
- KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S,
- KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z,
- /*, */ _______, _______, _______, _______, _______, _______, _______, _______,
- /*, */ _______, _______, _______, _______, _______, _______, _______, _______),
- [_xW] = LAYOUT(
- 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_QUOT,
- /*, */ _______, _______, _______, _______, _______, _______, _______, _______,
- /*, */ _______, _______, _______, _______, _______, _______, _______, _______),
- [_xS] = LAYOUT(
- KC_ESC, KC_GRV , KC_UP, KC_EQL , KC_TILD, KC_PLUS, KC_CIRC, KC_AMPR, KC_PERC, KC_MINS,
- _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, KC_PIPE, KC_AT, KC_DLR, KC_HASH, KC_ENT,
- KC_BSLS, KC_LABK, KC_LCBR, KC_LPRN, KC_LBRC, KC_RBRC, KC_RPRN, KC_RCBR, KC_RABK, KC_SLSH,
- /*, */ _______, _______, _______, KC_DEL, _______, _______, _______, _______,
- /*, */ _______, _______, TT(_xF), _______, _______, TT(_xF), _______, _______),
- [_xN] = LAYOUT(
- KC_PSCR, KC_F7, KC_F8, KC_F9, KC_F10, KC_PPLS, KC_7, KC_8, KC_9, KC_PMNS,
- KC_SCRL, KC_F4, KC_F5, KC_F6, KC_F11, KC_NUM, KC_4, KC_5, KC_6, KC_PENT,
- KC_PAUS, KC_F1, KC_F2, KC_F3, KC_F12, KC_PAST, KC_1, KC_2, KC_3, KC_PSLS,
- /*, */ _______, _______, TT(_xF), _______, _______, TT(_xF), KC_0, KC_DOT,
- /*, */ _______, _______, _______, _______, _______, _______, _______, _______),
- [_xF] = LAYOUT(
- QK_BOOT, KC_INS, KC_PGUP, DB_TOGG, KC_VOLU, KC_PPLS, KC_P7, KC_P8, KC_P9, KC_PMNS,
- CK_TOGG, KC_HOME, KC_PGDN, KC_END, KC_VOLD, KC_NUM, KC_P4, KC_P5, KC_P6, KC_PENT,
- KC_LAYO, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_PAST, KC_P1, KC_P2, KC_P3, KC_PSLS,
- /*, */ CK_UP, MU_TOGG, _______, _______, _______, _______, KC_P0, KC_PDOT,
- /*, */ CK_DOWN, MU_NEXT, _______, _______, _______, _______, _______, _______),
-};
-const bool defaultlayers[] = {
- [_xQ] = true,
- [_xC] = true,
- [_xD] = true,
- [_xW] = true,
- [_xS] = false,
- [_xN] = false,
- [_xF] = false,
-};
-const size_t defaultlayers_n = ARRAY_SIZE(defaultlayers);
-
-// New keycode KC_LAYO rotates between available default layers (for e.g.,
-// selecting a base layout). Shift+KC_LAYO makes the current one persistent.
-bool process_record_layout(uint16_t keycode, keyrecord_t *record) {
- uint8_t default_layer;
- uint8_t i;
- #if defined(AUDIO_ENABLE)
- float saved_song[][2] = SONG(COIN_SOUND);
- #endif
-
- if (keycode != KC_LAYO || !record->event.pressed) {
- return true;
- }
-
- if (get_mods() & (MOD_BIT(KC_LSFT)|MOD_BIT(KC_RSFT))) { // shift pressed
- // save default layer. whatever the current default layer is, store that
- eeconfig_update_default_layer(default_layer_state);
- #if defined(AUDIO_ENABLE)
- PLAY_SONG(saved_song);
- #endif
- } else {
- // rotate default layer.
- // find the current default layer
- default_layer = get_highest_layer(default_layer_state);
- // find next valid default layer
- for (i = 1; i < defaultlayers_n; i++) {
- if (defaultlayers[(default_layer + i) % defaultlayers_n]) {
- break;
- }
- }
- if (i == defaultlayers_n) {
- // we fell out of the loop without finding another default layer to switch
- // to.
- return false;
- }
- default_layer = (default_layer + i) % defaultlayers_n;
- default_layer_set(1U<<default_layer);
- led_set(host_keyboard_leds());
- #if defined(AUDIO_ENABLE) && defined(DEFAULT_LAYER_SONGS)
- PLAY_SONG(default_layer_songs[default_layer]);
- #endif
- }
- return false;
-}
-
-// This is a hack to place <question mark> on <shift-comma> and <exclamation
-// mark> on <shift-period>, when using an operating system configured for a
-// US/qwerty layout.
-// cdeq = "comma dot exclamation question"
-bool comm_shifted = false;
-bool ques_shifted = false;
-bool process_record_cdeq(uint16_t keycode, keyrecord_t *record) {
- uint8_t shifted;
- uint16_t s_keycode;
- bool *k_shifted;
-
- switch (keycode) {
- case KC_COMM:
- s_keycode = KC_SLSH;
- k_shifted = &comm_shifted;
- break;
- case KC_DOT:
- s_keycode = KC_1;
- k_shifted = &ques_shifted;
- break;
- default:
- return true;
- }
-
- shifted = get_mods() & (MOD_BIT(KC_LSFT)|MOD_BIT(KC_RSFT));
-
- // Keydown. If shift is currently pressed, register its alternate keycode.
- if (record->event.pressed && shifted) {
- *k_shifted = true;
- register_code(s_keycode);
- return false;
- // Keyup. If shift was pressed back when the key was pressed, unregister
- // its alternate keycode.
- } else if (!(record->event.pressed) && *k_shifted) {
- *k_shifted = false;
- unregister_code(s_keycode);
- return false;
- // Otherwise, behave as normal.
- } else {
- return true;
- }
-}
-
-bool process_record_user(uint16_t keycode, keyrecord_t *record) {
- return \
- process_record_cdeq(keycode, record) && \
- process_record_layout(keycode, record);
-}
-
-// Set the bits of A selected by MASK to the corresponding bits of B
-#define setbits(A, B, MASK) A = (A & (B | ~MASK)) | (B & MASK)
-
-void led_set_user(uint8_t usb_leds) {
- // A simple (but technically inaccurate) model of the momentary layer state:
- // Red layer active -> indicator = red
- // Blue layer active -> indicator = blue
- // Purple layer active -> indicator = purple
- // the Pro Micro tx LED displays Num Lock status.
- //
- // Workman layout active -> indicator = green
- // Workman red layer -> indicator = yellow (red + green)
- // Workman blue layer -> indicator = cyan (blue + green)
- // Workman purple layer -> indicator = white (red + blue + green)
-
- // Bit # 7 6 5 4 3 2 1 0
- // layer_state: [ | _xF | _xN | _xS | _xW | _xD | _xC | _xQ ]
- // usb_led [ | | |kana |cmps |scrl |caps | num ]
- // PORTB: [ NC | 10 | 9 | 8 | 14 | 16 | 15 |rxled]
- // PORTC: [ NC | 5 | | | | | | ]
- // PORTD: [ 6 | NC |txled| 4 | tx* | rx* | grn | p29 ]
- // PORTE: [ | 7 | | | | | | ]
- // PORTF: [ a0 | a1 | red | blu | | | NC | NC ]
- //
- // PD0 is connected to the pairing switch and p29 on the wireless module.
- // PF0,PF1,PB7,PC7,PD6 are not broken out by the pro micro board. I don't understand why.
- // PB1-PB6,PD4,PD5,PD6,PF6,PF7 are not connected to the Mitosis receiver
- // board. Each may be connected to an LED by way of a resistor (4.7k to
- // match the others) for a total of 14 additional indicators.
-
- uint32_t portf_bits = \
- ((layer_state|default_layer_state)&0b01100000)>>1 | \
- ((layer_state|default_layer_state)&0b00010000)<<1 | \
- ((layer_state|default_layer_state)&0b01000000)>>2;
- uint32_t portd_bits = \
- (usb_leds&0b1)<<5 | \
- ((layer_state|default_layer_state)&0b1000)>>2;
- // negated because for ports 0=LED on.
- setbits(PORTF, ~portf_bits, 0b00110000);
- setbits(PORTD, ~portd_bits, 0b00100010);
-}
-
-// vim: set sw=2 et:
diff --git a/keyboards/mitosis/keymaps/datagrok/readme.md b/keyboards/mitosis/keymaps/datagrok/readme.md
deleted file mode 100644
index 22d7f4d2fc..0000000000
--- a/keyboards/mitosis/keymaps/datagrok/readme.md
+++ /dev/null
@@ -1,274 +0,0 @@
-# a layout for the Mitosis
-
-- Emphasis on momentary modifiers, all usable from either hand, arranged symmetrically, but left/right distinguishable by the OS.
- I place left- and right-versions of Shift, GUI ("Super"), and Alt ("Meta"), and Henkan/Muhenkan (which I plan to overload for "Hyper").
-
- I'm going for a [Space Cadet](https://en.wikipedia.org/wiki/Space-cadet_keyboard) aesthetic;
- I want a keyboard that can (even just in theory) make use of all the bucky bits my operating system can support.
-
-- Red key and Blue key momentary-enable (like a shift key) one of three layers:
-
- - Red: Symbols layer
- - Blue: Numbers layer
- - "Purple" (both Red and Blue): Functions layer
-
- This tri-state layer mechanism is a bit similar to Planck and Preonic's "Raise," "Lower," and "Adjust."
-
-- The base layer is QWERTY.
- [Colemak][], [Dvorak][], and [Workman][] may be toggled using `Red`+`Blue`+`Z`.
- When you find the one you like, save it with `Shift`+`Red`+`Blue`+`Z`.
-
-- Minimize hand travel, so as not to lose orientation with home row.
-
-- `?` and `!` are moved to take the place of `<` and `>`.
- Rationale: unmodded and shifted keys should be for prose, while symbols useful for programming should be colocated on their own layer.
-
-- Key positions chosen for mnemonics.
- For example, you can distinguish between alphanumeric numerals and keypad numerals, but they occupy the same key positions.
-
-## Layout Images
-
-![mitosis:datagrok layout base layer](https://i.imgur.com/tap5Pjf.png)
-
-Base layer. Notes:
-- customized comma and period, which have exclamation point and question mark on their shift layer.
-- tap right-shift for underscore, tap left-shift for tab.
-
-![mitosis:datagrok layout red layer](https://i.imgur.com/sMGr34T.png)
-
-Red layer. Intended for common navigation and programming symbols. Notes:
-- symmetric layout of paired braces/brackets/slashes for easier memorization
-- arrows placed directly on home position
-
-![mitosis:datagrok layout blue layer](https://i.imgur.com/dDb2563.png)
-
-Blue layer. Intended for "number pad." Notes:
-- Keycodes generated for numbers, enter key, and mathematical symbols are from the alphanumeric keys, not keypad.
- This way they are not influenced by the state of Num Lock.
- If you want to send the keypad equivalents, just press Blue as well to access keypad numbers in the same positions in the Purple layer.
-
-![mitosis:datagrok layout purple layer](https://i.imgur.com/pESzy2u.png)
-
-Purple (Red+Blue) layer. Intended for "true keypad" and various functions. Notes:
-- Numbers on this layer send Keypad codes, so the result will be affected by the state of Num Lock.
-- "Switch Layout" toggles the alphabet keys between QWERTY, Colemak, Dvorak, and Workman.
- Shift + "Switch Layout" stores the currently selected alphabet layout in eeprom, so the selection persists across reboots and computers.
-- Page Up / Page Down / Home / End are placed on corresponding arrow keys.
-
-Keyboard layout editor sources:
-[base](http://www.keyboard-layout-editor.com/#/gists/bc2d06a3203d1bc3a14ed2245cf39643)
-[red](http://www.keyboard-layout-editor.com/#/gists/dbbf65f726a5522824b75117a62a321e)
-[blue](http://www.keyboard-layout-editor.com/#/gists/240e807f3d7e1d3ddabe1b69ee675048)
-[purple](http://www.keyboard-layout-editor.com/#/gists/9559f0f8bb1ee47677c8f2b4d766829d)
-
-[Imgur album](https://imgur.com/a/hm4bbdM)
-
-## Indicators
-
-- When Red layer is active, the RGB indicator turns red.
-- When Blue layer is active, the RGB indicator turns blue.
-- When Purple layer is active, the RGB indicator turns purple.
-- When the Workman layer is active, the RGB indicator turns green.
- Currently, this means that activating the Red layer while using the Workman layout will make the indicator show yellow. (red + green.)
-- The Num Lock status is shown on the Pro Micro tx LED.
-- If you attach a speaker to PC6 (pin 5) and compile with AUDIO_ENABLE=yes, music will be played at startup, when switching default layers, and when saving the default layer.
-
-## Variants
-
-Some additional compile-time options for this layout are available by editing rules.mk or compiling like so:
-
-Normal compilation:
-
-```make mitosis:datagrok```
-
-Swap Space onto bottom thumb row: swaps Red/Backspace/Space/Red with Blue/Shift/Shift/Blue:
-
-```make mitosis:datagrok MITOSIS_DATAGROK_BOTTOMSPACE=yes```
-
-Lower baud UART. Useful when using an 8Mhz pro micro; corresponding changes required in wireless firmware. See rules.mk for details.
-
-```make mitosis:datagrok MITOSIS_DATAGROK_SLOWUART=yes```
-
-## Design notes
-
-### Workman layout
-
-- I'm learning a new physical key placement, so I might as well go all-out and use an optimal non-QWERTY layout.
- Bonus: it's easy to switch back to QWERTY on a traditional row-staggered keyboard.
- The designer of the Mitosis had [a similar experience](https://www.reddit.com/r/MechanicalKeyboards/comments/66588f/wireless_split_qmk_mitosis/dgfr22q/).
-
-- I like the way Workman feels and some of its advantages over Colemak.
- Unfortunately, it was designed using a weighting system based on a standard
- row-staggered keyboard so is probably not as optimal as one could achieve
- on an ergonomic board like the Mitosis. Maybe run an optimizer routine after I
- determine good values for key difficulty on the Mitosis.
-
-### 8Mhz Pro Micro
-
-- I (used to) use a 3.3v Pro Micro clocked at 8Mhz rather than the 5v 16Mhz specified in the Mitosis design.
- That can't communicate with the connected wireless module at the default speed of 1M baud.
- The next fastest baudrate that works without errors is 250k baud.
- So if you want to do the same:
-
- - Set the Pro Micro clock and baud rate correctly in `rules.mk`:
- ```
- F_CPU = 800000
- MITOSIS_DATAGROK_SLOWUART = yes
- ```
- - Configure the receiver's wireless module to communicate at 250k baud in `main.c`. See https://github.com/reversebias/mitosis/pull/10
- ```
- - UART_BAUDRATE_BAUDRATE_Baud1M
- + UART_BAUDRATE_BAUDRATE_Baud250000
- ```
-
-### Layout mnemonics
-
-- Paired programming symbols (braces, brackets, parentheses) are arranged symmetrically in the Red layer.
-
-- Arrow keys are in the home position on the Red layer.
-
- - Blue+Arrows = PgUp/PgDn/Home/End, which is intuitive for me and similar to what is done on Apple and some Dell keyboards.
-
-- The number pad: I placed the ten-key number pad on the Blue layer.
- However, this would do the wrong thing when Num Lock was not enabled.
- Rather than attempt to manage the state of Num Lock, I arranged the normal number keys in a ten-key layout on the Blue layer instead.
- If you explicitly want the keypad keys, they're in the same position on the Red+Blue layer.
-
-- Number-pad add, subtract, multiply, and divide are located on the same keys as alphanumeric plus, dash, asterisk, and slash, respectively.
-
-- The Function-keys are arranged to mimic the order of the ten-key pad.
-
-- Enter is now in a more qwerty-familiar location, and may be activated with one hand.
- Numpad Enter is in the same position for mnemonics.
-
-- Why do I dislike [snake\_case](https://en.wikipedia.org/wiki/Snake_case) (`__variable_names_that_use_underscores_`)?
- Maybe because it's hard to type all those underscores requiring the shift key?
- Hypothesis: I'll be less annoyed by snake case by placing `_` at an unmodded position, right near the `space` key.
-
-
-## Changelog
-
-### Current
-
-- Discard "intentionally difficult backspace" idea.
- Tab returns to left-shift.
- Del returns to Red+Backspace
-- "High Profile mode:" Swap Red/Backspace/Space/Red with Blue/Shift/Shift/Blue (placing space on lower thumb keys) using `MITOSIS_DATAGROK_BOTTOMSPACE=yes` when compiling.
-- Move Print Screen / Scroll Lock / Pause to pinky column on Blue layer.
-- Let's try using TT instead of MO so we can e.g. lock-on the keypad.
- - We still use MO for first modifier, so e.g. Red + tapping Blue will lock purple.
- So far it feels a bit janky, we'll see.
-- One key `KC_LAYO` to cycle through available base layers instead of a dedicated key for each;
- Shift + `KC_LAYO` stores current base layer selection in eeprom so it comes back after disconnecting or a reset.
-- Added Colemak and Dvorak as default layers that may be selected.
-- Set UART to 250kbaud with make argument `MITOSIS_DATAGROK_SLOWUART=yes`, for use with 8Mhz Pro Micros.
-- Display Num Lock status on tx LED
-
-### 0.6.60
-
-- Experiment: no-modifier underscore on right shift key.
-- New combined numbers + keypad arrangement.
- No more worrying about Num Lock key.
-- Move F-keys to left board to make room.
- Calling them "the Numbers layer" and "the Functions layer" is now less accurate but the arrangement feels better.
-- Audio working!
-- Move Tab and Space to upper thumb row.
- I discarded the high-profile acrylic case from my Mitosis.
- With a low-profile case, it's easier to hit the upper row of thumb keys.
-- Discard all my `#defines` for "Meta", "Super", and "Hyper".
- I can call them that without making the code confusing to others.
-- Move Backspace to Red+A. I shouldn't be using it much anyway.
- This means Tab and Shift might as well be separate keys again.
-- Distribute paired symbols symmetrically across boards like `\<{([ ])}>/`.
- Opening-symbols on the right hand was a failed experiment.
-- Change default back to target a 16Mhz/5v Pro Micro.
- I damaged the 8Mhz Pro Micro I was using so now I'm back to using a 16mhz Pro Micro again.
-
-### 0.6.1
-
-- Place Tab on Shift without a modifier. We use it frequently for autocomplete.
-- Make QWERTY the default layout. So more people can try it out. My customized Workman is easily toggled-on.
-- Don't use redundant `#define` for `KC_TRNS`
-- Place Num Lock somewhere. Otherwise (if it gets turned off) we can't type any numbers!
-- Add some media keys
-
-### 0.5.155
-
-- Enable use with my 3.3v Pro Micro
-- Add a toggle-able QWERTY layer
-- Golf down the LED-setting code
-- Place `!` and `?` on `Shift`+`,` and `Shift`+`.`.
-- Distribute paired symbols symmetrically across boards like `\)}]> <[{(/`
-
-### 0.5.129
-
-- A modified Workman variant for Mitosis
-- Arrows in home position, modifier + Arrow = PgUp/PgDn/Home/End
-- Load all paired symbols onto angle-bracket keys.
-
-### Abandoned ideas
-
-- Abandoned: intentionally-difficult backspace.
- "Backspace is one of the keys I most dislike on a QWERTY keyboard because it moves me away from homerow and I need to use it so often.
- Rather than make it easier to strike, I want to discourage myself from using it and train myself to type more accurately."
-
- - Many other people like an easy-to-reach backspace.
- - Many other split-spacebar ergo boards place backspace at the thumbs.
- - I can still train myself to type well with it in an easy location.
- - I couldn't think of anything really better to put opposite space.
-
-- Abandoned: pile all brackets onto one pair of keys.
- "Since QWERTY and Workman keep angle brackets together, place other enclosing symbols on the same keys."
-
- - I didn't like having to pick the right modifier to get the right flavor of bracket.
- Instead, now, one modifier activates a symbols layer where all brackets are easily accessible.
-
-- Abandoned: chorded Enter without proper chording detection
-
- - I tried to make Red+Space = Enter with the intention that I could hit both with my thumb.
- That didn't work well; I always trigger space first when mashing the keys
- simultaneously. ~~This might not continue to be true if I change the angle
- at which I strike the keys e.g. with a neoprene base or a wrist support.~~
- Even with a wrist rest or low-profile, this is hard to do with one hand.
- Need to adjust the firmware to understand chorded thumb keys.
-
-## To do
-
-- Ctrl+'+' doesn't seem to work; fix.
-- **Shared Layouts.**
- Figure out how to make use of QMK's common `layouts/`
-- **Chorded Combos.**
- Since the thumb keys are arranged such that it's easy to smash pairs of keys with just one thumb, figure out how to enable chording.
- For example, a single-finger Shift+Space or Red+Space that doesn't do the wrong thing if Space happens to trigger first.
-- Improve **LED indications** (may require modding bluetooth firmware):
- - Num Lock status
- - Is any board nonresponsive (which one?)
- - Does either board have a low battery?
-- **Num Lock management.**
- Num lock currently occupies prime real estate, but I never use it except to fix it when it's wrong.
- Do any of my applications use it?
- Should I have the firmware ensure it is set how I want it?
- Maybe cause it to be momentary active with Blue?
- See [@drashna's comment](https://github.com/qmk/qmk_firmware/pull/2366#issuecomment-404951953) for code to force it always-on, which I don't know if I want.
-- ~~Store default layer in eeprom?~~
-- Allow "!? on ,." to be easily toggled-off.
-- Modularize "!? on ,." so it can be easily used on any QMK keyboard. (about half done)
-- See if the henkan/muhenkan placement is at all useful for Japanese speakers,
- or abuse different keysyms for Left/Right Hyper. (Original space cadet used
- scancodes 145/175. 145 is LANG2, 175 is "reserved" in USB HID spec.)
-- Implement "layer lock" key
-- Feature parity with popular boards e.g. Planck?
- - Layers for ~~Dvorak, Coleman,~~ Plover
- - More music and midi stuff
- - Macros?
-- Improve tri-layer behavior
-- Find out what `update_tri_layer_state` offers that my simple layers arrangement lacks.
-- ~~Find a better location for Caps Lock, PrintScr/SysRq, Scroll Lock, Pause/Break,~~.
- Placed on Blue layer. Caps will be Shift+"Layer Lock," once I get that working.
-- ~~Figure out where to place non-numpad numbers so we don't need num lock turned on to type them?~~
-- ~~Add Insert, PrintScr, Pause/Break~~
-- ~~Make QWERTY base layer for people who customize layout in software?~~
- I default to QWERTY now.
-- ~~Mod a buzzer onto my receiver and enable tones~~ Easy and works!
-
-[Workman]: https://viralintrospection.wordpress.com/2010/09/06/a-different-philosophy-in-designing-keyboard-layouts/
diff --git a/keyboards/mitosis/keymaps/datagrok/rules.mk b/keyboards/mitosis/keymaps/datagrok/rules.mk
deleted file mode 100644
index 7ee0852d79..0000000000
--- a/keyboards/mitosis/keymaps/datagrok/rules.mk
+++ /dev/null
@@ -1,34 +0,0 @@
-# Space and "Red" modifier are keys I want in the easiest-to-reach position in
-# the thumb row. Depending on the angle and height of the Mitosis and the type
-# of keycaps you use, the upper row or the lower row of thumb keys might be more
-# comfortable for you. I put red/space on the upper row and blue/shift on the
-# lower, but to swap that, set MITOSIS_DATAGROK_BOTTOMSPACE = yes. This has the
-# effect of swapping only the four center keys on the upper row of thumb keys with that
-# of the lower row of thumb keys.
-MITOSIS_DATAGROK_BOTTOMSPACE = no
-
-# I used to use a pro micro clocked at 8Mhz. It can't reach the same baud rate
-# that the standard 16Mhz-clocked pro micro can, so the baud rate needs to be
-# lowered. Set this to "yes" to do that. See also
-# https://github.com/reversebias/mitosis/pull/10
-MITOSIS_DATAGROK_SLOWUART = no
-
-AUDIO_ENABLE = no # audio output
-BOOTMAGIC_ENABLE = no # Enable Bootmagic Lite
-MOUSEKEY_ENABLE = no # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
-COMMAND_ENABLE = no # Commands for debug and configuration
-UNICODE_ENABLE = no # Unicode
-BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
-BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
-MIDI_ENABLE = no # MIDI controls
-
-ifeq ($(strip $(MITOSIS_DATAGROK_BOTTOMSPACE)), yes)
- OPT_DEFS += -DMITOSIS_DATAGROK_BOTTOMSPACE
-endif
-ifeq ($(strip $(MITOSIS_DATAGROK_SLOWUART)), yes)
- OPT_DEFS += -DMITOSIS_DATAGROK_SLOWUART
-endif
-
-# vim: set ts=8 noet:
diff --git a/keyboards/mitosis/rules.mk b/keyboards/mitosis/rules.mk
index 6b1876f87c..539a2d1004 100644
--- a/keyboards/mitosis/rules.mk
+++ b/keyboards/mitosis/rules.mk
@@ -15,4 +15,4 @@ CUSTOM_MATRIX = lite
# project specific files
SRC += matrix.c
-QUANTUM_LIB_SRC += uart.c
+UART_DRIVER_REQUIRED = yes
diff --git a/keyboards/mlego/m60_split/rev1/config.h b/keyboards/mlego/m60_split/rev1/config.h
index b351e66d2c..90ea0bd56c 100644
--- a/keyboards/mlego/m60_split/rev1/config.h
+++ b/keyboards/mlego/m60_split/rev1/config.h
@@ -15,10 +15,6 @@
*/
#pragma once
-#define SPLIT_LAYER_STATE_ENABLE
-#define SPLIT_LED_STATE_ENABLE
-
-
#define SPLIT_HAND_PIN B9
#define SERIAL_USART_TX_PIN B6
#define SERIAL_USART_SPEED 921600
diff --git a/keyboards/mlego/m60_split/rev1/info.json b/keyboards/mlego/m60_split/rev1/info.json
index 3d66633ac9..89744c8b86 100644
--- a/keyboards/mlego/m60_split/rev1/info.json
+++ b/keyboards/mlego/m60_split/rev1/info.json
@@ -47,6 +47,12 @@
"cols": ["B0", "A3", "A2", "A1", "B7", "B5"],
"rows": ["B1", "A4", "A5", "A6", "A7"]
}
+ },
+ "transport": {
+ "sync": {
+ "indicators": true,
+ "layer_state": true
+ }
}
},
"processor": "STM32F401",
diff --git a/keyboards/mlego/m60_split/rev2/config.h b/keyboards/mlego/m60_split/rev2/config.h
index bf60a6966c..82ea1b37e3 100644
--- a/keyboards/mlego/m60_split/rev2/config.h
+++ b/keyboards/mlego/m60_split/rev2/config.h
@@ -15,10 +15,6 @@
*/
#pragma once
-#define SPLIT_LAYER_STATE_ENABLE
-#define SPLIT_LED_STATE_ENABLE
-
-
#define SPLIT_HAND_PIN B9
#define SERIAL_USART_TX_PIN B6
diff --git a/keyboards/mlego/m60_split/rev2/info.json b/keyboards/mlego/m60_split/rev2/info.json
index 1ba28e0a52..4ba6442443 100644
--- a/keyboards/mlego/m60_split/rev2/info.json
+++ b/keyboards/mlego/m60_split/rev2/info.json
@@ -46,6 +46,12 @@
"cols": ["B0", "A3", "A2", "A1", "B7", "B5"],
"rows": ["B1", "A4", "A5", "A6", "A7"]
}
+ },
+ "transport": {
+ "sync": {
+ "indicators": true,
+ "layer_state": true
+ }
}
},
"processor": "STM32F411",
diff --git a/keyboards/mlego/m65/config.h b/keyboards/mlego/m65/config.h
deleted file mode 100644
index bdb0c16621..0000000000
--- a/keyboards/mlego/m65/config.h
+++ /dev/null
@@ -1,21 +0,0 @@
-/*
-Copyright 2021-2022 Alin M Elena <alinm.elena@gmail.com>
-
-This program is free software: you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program. If not, see <http://www.gnu.org/licenses/>.
-*/
-
-#pragma once
-
-#define LOCKING_SUPPORT_ENABLE
-#define LOCKING_RESYNC_ENABLE
diff --git a/keyboards/mlego/m65/info.json b/keyboards/mlego/m65/info.json
deleted file mode 100644
index c032cda3fe..0000000000
--- a/keyboards/mlego/m65/info.json
+++ /dev/null
@@ -1,84 +0,0 @@
-{
- "keyboard_name": "m65",
- "manufacturer": "Alin Elena",
- "url": "https://gitlab.com/m-lego/m65",
- "maintainer": "alin elena",
- "usb": {
- "vid": "0xBABA"
- },
- "layouts": {
- "LAYOUT_ortho_5x13": {
- "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": [0, 6], "x": 6, "y": 0},
- {"matrix": [0, 7], "x": 7, "y": 0},
- {"matrix": [0, 8], "x": 8, "y": 0},
- {"matrix": [0, 9], "x": 9, "y": 0},
- {"matrix": [0, 10], "x": 10, "y": 0},
- {"matrix": [0, 11], "x": 11, "y": 0},
- {"matrix": [0, 12], "x": 12, "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": [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": [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": [2, 6], "x": 6, "y": 2},
- {"matrix": [2, 7], "x": 7, "y": 2},
- {"matrix": [2, 8], "x": 8, "y": 2},
- {"matrix": [2, 9], "x": 9, "y": 2},
- {"matrix": [2, 10], "x": 10, "y": 2},
- {"matrix": [2, 11], "x": 11, "y": 2},
- {"matrix": [2, 12], "x": 12, "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": [3, 6], "x": 6, "y": 3},
- {"matrix": [3, 7], "x": 7, "y": 3},
- {"matrix": [3, 8], "x": 8, "y": 3},
- {"matrix": [3, 9], "x": 9, "y": 3},
- {"matrix": [3, 10], "x": 10, "y": 3},
- {"matrix": [3, 11], "x": 11, "y": 3},
- {"matrix": [3, 12], "x": 12, "y": 3},
-
- {"matrix": [4, 0], "x": 0, "y": 4},
- {"matrix": [4, 1], "x": 1, "y": 4},
- {"matrix": [4, 2], "x": 2, "y": 4},
- {"matrix": [4, 3], "x": 3, "y": 4},
- {"matrix": [4, 4], "x": 4, "y": 4},
- {"matrix": [4, 5], "x": 5, "y": 4},
- {"matrix": [4, 6], "x": 6, "y": 4},
- {"matrix": [4, 7], "x": 7, "y": 4},
- {"matrix": [4, 8], "x": 8, "y": 4},
- {"matrix": [4, 9], "x": 9, "y": 4},
- {"matrix": [4, 10], "x": 10, "y": 4},
- {"matrix": [4, 11], "x": 11, "y": 4},
- {"matrix": [4, 12], "x": 12, "y": 4}
- ]
- }
- }
-}
diff --git a/keyboards/mlego/m65/keymaps/default/config.h b/keyboards/mlego/m65/keymaps/default/config.h
index 637c0a8faf..dba9c658ae 100644
--- a/keyboards/mlego/m65/keymaps/default/config.h
+++ b/keyboards/mlego/m65/keymaps/default/config.h
@@ -1,19 +1,5 @@
-/*
-Copyright 2021-2022 Alin M Elena <alinm.elena@gmail.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/>.
-*/
+// Copyright 2020-2023 alin m elena (@alinelena)
+// SPDX-License-Identifier: GPL-2.0-or-later
#pragma once
diff --git a/keyboards/mlego/m65/keymaps/default/keymap.c b/keyboards/mlego/m65/keymaps/default/keymap.c
index 00e144e221..d7421f659c 100644
--- a/keyboards/mlego/m65/keymaps/default/keymap.c
+++ b/keyboards/mlego/m65/keymaps/default/keymap.c
@@ -1,19 +1,5 @@
-/*
-Copyright 2021-2022 Alin M Elena <alinm.elena@gmail.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/>.
-*/
+// Copyright 2020-2023 alin m elena (@alinelena)
+// SPDX-License-Identifier: GPL-2.0-or-later
#include QMK_KEYBOARD_H
@@ -51,69 +37,17 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
};
// clang-format on
-bool led_update_user(led_t led_state) {
- // Disable the default LED update code, so that lock LEDs could be reused to show layer status.
- return false;
-}
-
-void matrix_scan_user(void) {
-
- toggle_leds();
-
-}
-
-bool process_record_user(uint16_t keycode, keyrecord_t* record) {
- switch (keycode) {
- case (TT(_LWR)):
- if (!record->event.pressed && record->tap.count == TAPPING_TOGGLE) {
- // This runs before the TT() handler toggles the layer state, so the current layer state is the opposite of the final one after toggle.
- set_led_toggle(_LWR, !layer_state_is(_LWR));
- }
- return true;
- break;
- case (TT(_RSE)):
- if (record->event.pressed && record->tap.count == TAPPING_TOGGLE) {
- set_led_toggle(_RSE, !layer_state_is(_RSE));
- }
- return true;
- break;
- default:
- return true;
- }
-}
-
-layer_state_t layer_state_set_user(layer_state_t state) {
-
-#ifdef RGBLIGHT_ENABLE
-
- set_rgb_layers(state);
-
+#if defined(ENCODER_MAP_ENABLE)
+const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = {
+ [_QW] = {ENCODER_CCW_CW(KC_VOLD, KC_VOLU)},
+#if defined(RGBLIGHT_ENABLE)
+ [_LWR] = {ENCODER_CCW_CW(RGB_HUD, RGB_HUI)},
+ [_RSE] = {ENCODER_CCW_CW(RGB_VAD, RGB_VAI)},
+ [_ADJ] = {ENCODER_CCW_CW(RGB_RMOD, RGB_MOD)},
+# else
+ [_LWR] = {ENCODER_CCW_CW(KC_MNXT, KC_MPRV)},
+ [_RSE] = {ENCODER_CCW_CW(KC_MFFD, KC_MRWD)},
+ [_ADJ] = {ENCODER_CCW_CW(KC_PGDN, KC_PGUP)},
#endif
-
- return update_tri_layer_state(state, _LWR, _RSE, _ADJ);
-}
-
-#ifdef RGBLIGHT_ENABLE
-
-layer_state_t default_layer_state_set_user(layer_state_t state) {
- set_default_rgb_layers(state);
- return state;
-}
-
-#endif
-
-void keyboard_post_init_user(void) {
-
-#ifdef RGBLIGHT_ENABLE
-
- // Enable the LED layers
- rgblight_layers = my_rgb();
-
-#endif
-
-#ifdef OLED_ENABLE
-
- init_timer();
-
+};
#endif
-}
diff --git a/keyboards/mlego/m65/keymaps/default/rules.mk b/keyboards/mlego/m65/keymaps/default/rules.mk
new file mode 100644
index 0000000000..ee32568148
--- /dev/null
+++ b/keyboards/mlego/m65/keymaps/default/rules.mk
@@ -0,0 +1 @@
+ENCODER_MAP_ENABLE = yes
diff --git a/keyboards/mlego/m65/keymaps/dk/config.h b/keyboards/mlego/m65/keymaps/dk/config.h
deleted file mode 100644
index 637c0a8faf..0000000000
--- a/keyboards/mlego/m65/keymaps/dk/config.h
+++ /dev/null
@@ -1,20 +0,0 @@
-/*
-Copyright 2021-2022 Alin M Elena <alinm.elena@gmail.com>
-
-This program is free software: you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program. If not, see <http://www.gnu.org/licenses/>.
-*/
-
-#pragma once
-
-#define TAPPING_TOGGLE 2
diff --git a/keyboards/mlego/m65/keymaps/dk/keymap.c b/keyboards/mlego/m65/keymaps/dk/keymap.c
deleted file mode 100644
index 2bf20bf2f6..0000000000
--- a/keyboards/mlego/m65/keymaps/dk/keymap.c
+++ /dev/null
@@ -1,121 +0,0 @@
-/*
-Copyright 2021-2022 Alin M Elena <alinm.elena@gmail.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 QMK_KEYBOARD_H
-#include "keymap_danish.h"
-
-// clang-format off
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
- [_QW] = LAYOUT_ortho_5x13(
- KC_ESC, DK_1 , DK_2 , DK_3 , DK_4 , DK_5 , DK_6 , DK_7 , DK_8 , DK_9 , DK_0 , DK_PLUS, KC_BSPC ,
- KC_TAB, DK_Q , DK_W , DK_E , DK_R , DK_T , DK_Y , DK_U , DK_I , DK_O , DK_P , DK_ARNG, DK_DIAE ,
- DK_QUOT, DK_A , DK_S , DK_D , DK_F , DK_G , DK_H , DK_J , DK_K , DK_L , DK_AE , DK_OSTR, KC_ENT ,
- SC_LSPO, DK_LABK, DK_Z , DK_X , DK_C , DK_V , DK_B , DK_N , DK_M , DK_COMM, DK_DOT , KC_UP , DK_MINS ,
- KC_LCTL, KC_LGUI, TT(_LWR), KC_LALT, TT(_RSE), KC_SPC, KC_SPC, KC_SPC, KC_RALT, SC_RSPC, KC_LEFT, KC_DOWN, KC_RGHT),
-
- [_LWR] = LAYOUT_ortho_5x13(
- DK_HALF, KC_MUTE, KC_VOLU, KC_VOLD, KC_MPRV, KC_MPLY, KC_MNXT, G(KC_P), KC_SLEP, KC_WAKE, KC_PSCR, KC_DEL , DK_ACUT ,
- KC_BTN3, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ,
- KC_BTN2, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ,
- _______, KC_BTN1, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MS_U, _______ ,
- _______, KC_BTN4, _______, _______, _______, _______, _______, _______, _______, _______, KC_MS_L, KC_MS_D, KC_MS_R),
-
- [_RSE] = LAYOUT_ortho_5x13(
- 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_CAPS, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_WH_U, _______ ,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_WH_L, KC_WH_D, KC_WH_R),
-
- [_ADJ] = LAYOUT_ortho_5x13(
- RGB_MOD,RGB_RMOD, A(KC_F2), _______, _______, _______, _______, _______, _______, _______, _______, RGB_M_T, RGB_M_SW ,
- RGB_HUI, RGB_HUD, RGB_M_P , _______, QK_BOOT, _______, _______, _______, _______, _______, _______, _______, RGB_M_SN ,
- RGB_SAI, RGB_SAD, RGB_M_B , _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_M_K ,
- RGB_VAI, RGB_VAD, RGB_M_R , _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_M_X ,
- RGB_TOG, _______, _______ , _______, _______, _______, _______, _______, _______, _______, _______, RGB_M_TW, RGB_M_G),
-
-};
-// clang-format on
-
-bool led_update_user(led_t led_state) {
- // Disable the default LED update code, so that lock LEDs could be reused to show layer status.
- return false;
-}
-
-void matrix_scan_user(void) {
-
- toggle_leds();
-
-}
-
-bool process_record_user(uint16_t keycode, keyrecord_t* record) {
- switch (keycode) {
- case (TT(_LWR)):
- if (!record->event.pressed && record->tap.count == TAPPING_TOGGLE) {
- // This runs before the TT() handler toggles the layer state, so the current layer state is the opposite of the final one after toggle.
- set_led_toggle(_LWR, !layer_state_is(_LWR));
- }
- return true;
- break;
- case (TT(_RSE)):
- if (record->event.pressed && record->tap.count == TAPPING_TOGGLE) {
- set_led_toggle(_RSE, !layer_state_is(_RSE));
- }
- return true;
- break;
- default:
- return true;
- }
-}
-
-layer_state_t layer_state_set_user(layer_state_t state) {
-
-#ifdef RGBLIGHT_ENABLE
-
- set_rgb_layers(state);
-
-#endif
-
- return update_tri_layer_state(state, _LWR, _RSE, _ADJ);
-}
-
-#ifdef RGBLIGHT_ENABLE
-
-layer_state_t default_layer_state_set_user(layer_state_t state) {
- set_default_rgb_layers(state);
- return state;
-}
-
-#endif
-
-void keyboard_post_init_user(void) {
-
-#ifdef RGBLIGHT_ENABLE
-
- // Enable the LED layers
- rgblight_layers = my_rgb();
-
-#endif
-
-#ifdef OLED_ENABLE
-
- init_timer();
-
-#endif
-
-}
diff --git a/keyboards/mlego/m65/keymaps/dk/readme.md b/keyboards/mlego/m65/keymaps/dk/readme.md
deleted file mode 100644
index 76ecd8c139..0000000000
--- a/keyboards/mlego/m65/keymaps/dk/readme.md
+++ /dev/null
@@ -1,13 +0,0 @@
-![M65 Layout Image](https://i.imgur.com/RQqsM4gh.png)
-
-# Default M65 Layout
-
-This is the Danish keymap for M65. For the most part it's a straightforward and easy to follow layout inspired by ISO with a DK
-turn. The only unusual key is the key in the upper left, which sends Escape normally, but Grave when in layer 1 aka LWR. Similarly
-number row in layer 1 give the usual audio KC_GRV, KC_AUDIO_MUTE, KC_AUDIO_VOL_UP, KC_AUDIO_VOL_DOWN, KC_MEDIA_PREV_TRACK,
-KC_MEDIA_PLAY_PAUSE, KC_MEDIA_NEXT_TRACK, M_EXTDISP, KC_SYSTEM_SLEEP, KC_SYSTEM_WAKE, KC_PRINT_SCREEN, KC_DEL, DK_ACUT in layer 2 aka
-RSE one gets F1-F12 mouse emulation can be used in layer 1 and 2.
-
-flashing is done by LWR+RSE+r
-
-full layout below see in keymap.c
diff --git a/keyboards/mlego/m65/keymaps/uk/config.h b/keyboards/mlego/m65/keymaps/uk/config.h
index b0c6cfd639..c1f9816c99 100644
--- a/keyboards/mlego/m65/keymaps/uk/config.h
+++ b/keyboards/mlego/m65/keymaps/uk/config.h
@@ -1,29 +1,14 @@
-/*
-Copyright 2021-2022 Alin M Elena <alinm.elena@gmail.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/>.
-*/
+// Copyright 2020-2023 alin m elena (@alinelena)
+// SPDX-License-Identifier: GPL-2.0-or-later
#pragma once
#define TAPPING_TOGGLE 2
-#define UNICODE_SELECTED_MODES UNICODE_MODE_LINUX
-//#define UNICODE_SELECTED_MODES UNICODE_MODE_LINUX, UNICODE_MODE_MACOS, UNICODE_MODE_WINCOMPOSE
+#define UNICODE_SELECTED_MODES UNICODE_MODE_LINUX, UNICODE_MODE_MACOS, UNICODE_MODE_WINDOWS, UNICODE_MODE_WINCOMPOSE
#ifdef WPM_ENABLE
-#define WPM_SAMPLE_SECONDS 10
-#define WPM_SAMPLE_PERIODS 100
-#define WPM_ALLOW_COUNT_REGRESSION
+# define WPM_SAMPLE_SECONDS 10
+# define WPM_SAMPLE_PERIODS 100
+# define WPM_ALLOW_COUNT_REGRESSION
#endif
diff --git a/keyboards/mlego/m65/keymaps/uk/keymap.c b/keyboards/mlego/m65/keymaps/uk/keymap.c
index ee48872433..e021756cdd 100644
--- a/keyboards/mlego/m65/keymaps/uk/keymap.c
+++ b/keyboards/mlego/m65/keymaps/uk/keymap.c
@@ -1,106 +1,101 @@
-/*
-Copyright 2021-2022 Alin M Elena <alinm.elena@gmail.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/>.
-*/
+// Copyright 2020-2023 alin m elena (@alinelena)
+// SPDX-License-Identifier: GPL-2.0-or-later
#include QMK_KEYBOARD_H
#include "keymap_uk.h"
-#ifdef CONSOLE_ENABLE
-
-#include "print.h"
-
-#endif
-
const uint32_t unicode_map[] PROGMEM = {
- [la] = 0x03B1 , // α
- [lA] = 0x0391 , // Α
- [lb] = 0x03B2 , // β
- [lB] = 0x0392 , // Β
- [lc] = 0x03C7 , // χ
- [lC] = 0x0307 , //
- [ld] = 0x03B4 , // δ
- [lD] = 0x2202 , // ∂
- [le] = 0x03B5 , // ε
- [lE] = 0x2107 , // ℇ
- [lf] = 0x03C6 , // φ
- [lF] = 0x03C8 , // ψ
- [lg] = 0x03B3 , // γ
- [lG] = 0x0393 , // Γ
- [lh] = 0x210F , // ℏ
- [lH] = 0x1D4D7, // 𝓗
- [li] = 0x222B , // ∫
- [lI] = 0x222E , // ∮
- [lj] = 0x2208 , // ∈
- [lJ] = 0x2209 , // ∉
- [lk] = 0x03F0 , // ϰ
- [lK] = 0x2206 , // ∆
- [ll] = 0x03BB , // λ
- [lL] = 0x039B , // Λ
- [lm] = 0x03BC , // μ
- [lM] = 0x2218 , // ∘
- [ln] = 0x03B7 , // η
- [lN] = 0x222A , // ∪
- [lo] = 0x221E , // ∞
- [lO] = 0x2297 , // ⊗
- [lp] = 0x03C0 , // π
- [lP] = 0x220F , // ∏
- [lq] = 0x03C3 , // σ
- [lQ] = 0x03D5 , // ϕ
- [lr] = 0x03C1 , // ρ
- [lR] = 0x2207 , // ∇
- [ls] = 0x2211 , // ∑
- [lS] = 0x2A0B , // ⨋
- [lt] = 0x03D1 , // ϑ
- [lT] = 0x03B8 , // θ
- [lu] = 0x03C4 , // τ
- [lU] = 0x2102 , // ℂ
- [lv] = 0x03BD , // χ
- [lV] = 0x039D , // Ν
- [lw] = 0x03C9 , // ω
- [lW] = 0x03A9 , // Ω
- [lx] = 0x03BE , // ξ
- [lX] = 0x039E , // Ξ
- [ly] = 0x211d , // ℝ
- [lY] = 0x2124 , // ℤ
- [lz] = 0x03B6 , // ζ
- [lZ] = 0x2221 , // ∡
- [lc1] = 0x224A , // ≊
- [lC1] = 0x2248 , // ≈
- [lp1] = 0x00B1 , // ±
- [lP1] = 0x2213 , // ∓
- [lq1] = 0x00D7 , // ×
- [lQ1] = 0x22C5 , // ⋅
- [ll1] = 0x1D53C, // 𝔼
- [lL1] = 0x212b , // Å
- [lk1] = 0x221D , // ∝
- [lK1] = 0x2112 , // ℒ
- [ra] = 0x0103 , // ă
- [rA] = 0x0102 , // Ă
- [ra1] = 0x00E2 , // â
- [rA1] = 0x00C2 , // Â
- [rc] = 0x00E7 , // ç
- [rC] = 0x00C7 , // Ç
- [ri] = 0x00EE , // î
- [rI] = 0x00CE , // Î
- [rs] = 0x0219 , // ș
- [rS] = 0x0218 , // Ș
- [rt] = 0x021B , // ț
- [rT] = 0x021A , // Ț
+ [la] = 0x03B1, // α
+ [lA] = 0x0307, //
+ [lb] = 0x03B2, // β
+ [lB] = 0x2229, // ∩
+ [lc] = 0x03C7, // χ
+ [lC] = 0x2282, // ⊂
+ [ld] = 0x03B4, // δ
+ [lD] = 0x2202, // ∂
+ [le] = 0x03B5, // ε
+ [lE] = 0x2107, // ℇ
+ [lf] = 0x03C6, // φ
+ [lF] = 0x03C8, // ψ
+ [lg] = 0x03B3, // γ
+ [lG] = 0x0393, // Γ
+ [lh] = 0x210F, // ℏ
+ [lH] = 0x1D4D7, // 𝓗
+ [li] = 0x222B, // ∫
+ [lI] = 0x222E, // ∮
+ [lj] = 0x2208, // ∈
+ [lJ] = 0x2209, // ∉
+ [lk] = 0x03F0, // ϰ
+ [lK] = 0x2206, // ∆
+ [ll] = 0x03BB, // λ
+ [lL] = 0x039B, // Λ
+ [lm] = 0x03BC, // μ
+ [lM] = 0x2218, // ∘
+ [ln] = 0x03B7, // η
+ [lN] = 0x222A, // ∪
+ [lo] = 0x221E, // ∞
+ [lO] = 0x2297, // ⊗
+ [lp] = 0x03C0, // π
+ [lP] = 0x220F, // ∏
+ [lq] = 0x03C3, // σ
+ [lQ] = 0x03D5, // ϕ
+ [lr] = 0x03C1, // ρ
+ [lR] = 0x2207, // ∇
+ [ls] = 0x2211, // ∑
+ [lS] = 0x2A0B, // ⨋
+ [lt] = 0x03D1, // ϑ
+ [lT] = 0x03B8, // θ
+ [lu] = 0x03C4, // τ
+ [lU] = 0x2102, // ℂ
+ [lv] = 0x03BD, // χ
+ [lV] = 0x2283, // ⊃
+ [lw] = 0x03C9, // ω
+ [lW] = 0x03A9, // Ω
+ [lx] = 0x03BE, // ξ
+ [lX] = 0x039E, // Ξ
+ [ly] = 0x211d, // ℝ
+ [lY] = 0x2124, // ℤ
+ [lz] = 0x03B6, // ζ
+ [lZ] = 0x2221, // ∡
+ [lc1] = 0x2248, // ≈
+ [lC1] = 0x2249, // ≉
+ [lp1] = 0x00B1, // ±
+ [lP1] = 0x2213, // ∓
+ [lq1] = 0x00D7, // ×
+ [lQ1] = 0x22C5, // ⋅
+ [ll1] = 0x1D53C, // 𝔼
+ [lL1] = 0x212b, // Å
+ [lk1] = 0x221D, // ∝
+ [lK1] = 0x2112, // ℒ
+ [lbo1] = 0x22DC, // ⋜
+ [lbo2] = 0x2260, // ≠
+ [lbc1] = 0x22DD, // ⋝
+ [lbc2] = 0x2245, // ≅
+ [ls1] = 0x2261, // ≡
+ [ls2] = 0x2262, // ≢
+ [ra] = 0x0103, // ă
+ [rA] = 0x0102, // Ă
+ [ra1] = 0x00E2, // â
+ [rA1] = 0x00C2, // Â
+ [rx] = 0x00E7, // ç
+ [rX] = 0x00C7, // Ç
+ [ri] = 0x00EE, // î
+ [rI] = 0x00CE, // Î
+ [rs] = 0x0219, // ș⊄
+ [rS] = 0x0218, // Ș
+ [rt] = 0x021B, // ț
+ [rT] = 0x021A, // Ț
+ [rc] = 0x2284, // ⊄
+ [rC] = 0x2286, // ⊆
+ [rv] = 0x2285, // ⊅
+ [rV] = 0x2287, // ⊇
+ [rb] = 0x2227, // ∧
+ [rB] = 0x22BC, // ⊼
+ [rn] = 0x2228, // ∨
+ [rN] = 0x22BB, // ⊻
};
+
// clang-format off
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/*
@@ -161,29 +156,29 @@ altgr shift symbols
KC_LCTL, KC_LGUI, TT(_LWR), KC_LALT, TT(_RSE), KC_SPC, KC_SPC, KC_SPC, KC_RALT, SC_RSPC, KC_LEFT, KC_DOWN, KC_RGHT),
/*
-lower layer
+raise layer
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
* │ ` │MUT│Vup│Vdn│prv│ply│nxt│EXT│SLP│WAK│PSC│ ⌫ │ = │
* ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
- * │ │ σ │ ω │ ε │ ρ │ ϑ │ ℝ │ τ │ ∫ │ ∞ │ π │ [ │ ] │
+ * │ │ σ │ ω │ ε │ ρ │ ϑ │ ℝ │ τ │ ∫ │ ∞ │ π │ ⋜ │ ⋝ │
* ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
* │ │ α │ ∑ │ δ │ φ │ γ │ ℏ │ ∈ │ ϰ │ λ │ 𝔼 │ ∝ │ ⏎ │
* ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
- * │ ⇧(│ │ ζ │ ξ │ χ │ ν │ β │ η │ μ │ ≊ │ ± │ │ × │
+ * │ ⇧(│ ≡ │ ζ │ ξ │ χ │ ν │ β │ η │ μ │ ≈ │ ± │ │ × │
* ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
- * │ ⎈ │ │lwr│⎇ │rse│ │ │ │⎇ │ ⇧)│ │ │ │
+ * │ │ │lwr│⎇ │rse│ │ │ │⎇ │ ⇧)│ │ │ │
* └───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┘
-lower layer shifted
+raise layer shifted
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
- * │ ¬ │ │ │ │ │ │ │ │ │ │ │ ⌫ │ = │
+ * │ ¬ │ │ │ │ │ │ │ │ │ │ │ ⌫ │ + │
* ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
- * │MB3│ ϕ │ Ω │ ℇ │ ∇ │ θ │ ℤ │ ℂ │ ∮ │ ⊗ │ ∏ │ { │ } │
+ * │MB3│ ϕ │ Ω │ ℇ │ ∇ │ θ │ ℤ │ ℂ │ ∮ │ ⊗ │ ∏ │ ≠ │ ≅ │
* ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
- * │MB2│ Α │ ⨋ │ ∂ │ ψ │ Γ │ 𝓗 │ ∉ │ ∆ │ Λ │ Å │ ℒ │ ⏎ │
+ * │MB2│ ̇ │ ⨋ │ ∂ │ ψ │ Γ │ 𝓗 │ ∉ │ ∆ │ Λ │ Å │ ℒ │ ⏎ │
* ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
- * │ ⇧(│MB1│ ∡ │ Ξ │ ̇ │ Ν │ Β │ ∪ │ ∘ │ ≈ │ ∓ │MSU│ ⋅ │
+ * │ ⇧(│ ≢ │ ∡ │ Ξ │ ⊂ │ ⊃ │ ∩ │ ∪ │ ∘ │ ≉ │ ∓ │MSU│ ⋅ │
* ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
- * │ ⎈ │MB4│lwr│⎇ │rse│ │ │ │⎇ │ ⇧)│MSL│MSD│MSR│
+ * │MB1│MB4│lwr│⎇ │rse│ │ │ │⎇ │ ⇧)│MSL│MSD│MSR│
* └───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┘
MB - mouse buttons
MS - mouse directions
@@ -196,7 +191,7 @@ MS - mouse directions
_______, KC_BTN4, _______, _______, _______, _______, _______, _______, _______, _______, KC_MS_L, KC_MS_D, KC_MS_R),
/*
-raise layer
+lower layer
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
* │ ⎋ │ F1│ F2│ F3│ F4│ F5│ F6│ F7│ F8│ F9│F10│F11│F12│
* ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
@@ -204,7 +199,7 @@ raise layer
* ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
* │ ⇪ │ ă │ ș │ │ │ │ │ │ │ │ │ │ │
* ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
- * │ │ │ │ │ ç │ │ │ │ │ │ │MWU│ │
+ * │ │ │ │ ç │ ⊄ │ ⊅ │ ∧ │ ∨ │ │ │ │MWU│ │
* ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
* │ │ │ │ │ │ │ │ │ │ │MWL│MWD│MWR│
* └───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┘
@@ -217,7 +212,7 @@ raise layer shifted
* ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
* │ │ Ă │ Ș │ │ │ │ │ │ │ │ │ │ │
* ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
- * │ │ │ │ │ Ç │ │ │ │ │ │ │ │ │
+ * │ │ │ │ Ç │ ⊆ │ ⊇ │ ⊼ │ ⊻ │ │ │ │ │ │
* ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
* │ │ │ │ │ │ │ │ │ │ │ │ │ │
* └───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┘
@@ -245,90 +240,23 @@ adj layer
[_ADJ] = LAYOUT_ortho_5x13(
RGB_MOD, RGB_RMOD, A(KC_F2), _______, _______, _______, _______, _______, _______, _______, _______, RGB_M_T , RGB_M_SW,
RGB_HUI, RGB_HUD , RGB_M_P , _______, QK_BOOT, _______, _______, _______, _______, _______, _______, _______ , RGB_M_SN,
- RGB_SAI, RGB_SAD , RGB_M_B , _______, _______, _______, _______, _______, _______, _______, _______, _______ , RGB_M_K ,
- RGB_VAI, RGB_VAD , RGB_M_R , _______, _______, _______, _______, _______, _______, _______, _______, _______ , RGB_M_X ,
+ RGB_SAI, RGB_SAD , RGB_M_B , _______, UC_NEXT, _______, _______, _______, _______, _______, _______, _______ , RGB_M_K ,
+ RGB_VAI, RGB_VAD , RGB_M_R , _______, UC_PREV, UC_LINX, UC_WIN, UC_WINC, UC_MAC, UC_EMAC, _______, _______ , RGB_M_X ,
RGB_TOG, _______ , _______ , _______, _______, _______, _______, _______, _______, _______, _______, RGB_M_TW, RGB_M_G),
};
// clang-format on
-bool led_update_user(led_t led_state) {
- // Disable the default LED update code, so that lock LEDs could be reused to show layer status.
- return false;
-}
-
-void matrix_scan_user(void) {
-
- toggle_leds();
-
-}
-
-bool process_record_user(uint16_t keycode, keyrecord_t* record) {
-
-#ifdef CONSOLE_ENABLE
-
- uprintf("KL: kc: 0x%04X, col: %u, row: %u, pressed: %b, time: %u, interrupt: %b, count: %u\n", keycode, record->event.key.col, record->event.key.row, record->event.pressed, record->event.time, record->tap.interrupted, record->tap.count);
-
-#endif
-
- switch (keycode) {
- case (TT(_LWR)):
- if (!record->event.pressed && record->tap.count == TAPPING_TOGGLE) {
- // This runs before the TT() handler toggles the layer state, so the current layer state is the opposite of the final one after toggle.
- set_led_toggle(_LWR, !layer_state_is(_LWR));
- }
- return true;
- break;
- case (TT(_RSE)):
- if (record->event.pressed && record->tap.count == TAPPING_TOGGLE) {
- set_led_toggle(_RSE, !layer_state_is(_RSE));
- }
- return true;
- break;
- default:
- return true;
- }
-}
-
-layer_state_t layer_state_set_user(layer_state_t state) {
-
-#ifdef RGBLIGHT_ENABLE
-
- set_rgb_layers(state);
-
-#endif
-
- return update_tri_layer_state(state, _LWR, _RSE, _ADJ);
-}
-
-#ifdef RGBLIGHT_ENABLE
-
-layer_state_t default_layer_state_set_user(layer_state_t state) {
-
- set_default_rgb_layers(state);
- return state;
-}
-
+#if defined(ENCODER_MAP_ENABLE)
+const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = {
+ [_QW] = {ENCODER_CCW_CW(KC_VOLD, KC_VOLU)},
+#if defined(RGBLIGHT_ENABLE)
+ [_LWR] = {ENCODER_CCW_CW(RGB_HUD, RGB_HUI)},
+ [_RSE] = {ENCODER_CCW_CW(RGB_VAD, RGB_VAI)},
+ [_ADJ] = {ENCODER_CCW_CW(RGB_RMOD, RGB_MOD)},
+#else
+ [_LWR] = {ENCODER_CCW_CW(KC_MNXT, KC_MPRV)},
+ [_RSE] = {ENCODER_CCW_CW(KC_MFFD, KC_MRWD)},
+ [_ADJ] = {ENCODER_CCW_CW(KC_PGDN, KC_PGUP)},
#endif
-
-void keyboard_post_init_user(void) {
-#ifdef RGBLIGHT_ENABLE
-
- // Enable the LED layers
- rgblight_layers = my_rgb();
-
-#endif
-
-#ifdef OLED_ENABLE
-
- init_timer();
-
-#endif
-
-#ifdef CONSOLE_ENABLE
-
- debug_enable = true;
- debug_matrix = true;
- debug_keyboard = true;
-
+};
#endif
-}
diff --git a/keyboards/mlego/m65/keymaps/uk/rules.mk b/keyboards/mlego/m65/keymaps/uk/rules.mk
index 502b2def76..846f3443f6 100644
--- a/keyboards/mlego/m65/keymaps/uk/rules.mk
+++ b/keyboards/mlego/m65/keymaps/uk/rules.mk
@@ -1 +1,2 @@
UNICODEMAP_ENABLE = yes
+ENCODER_MAP_ENABLE = yes
diff --git a/keyboards/mlego/m65/keymaps/via/config.h b/keyboards/mlego/m65/keymaps/via/config.h
deleted file mode 100644
index 637c0a8faf..0000000000
--- a/keyboards/mlego/m65/keymaps/via/config.h
+++ /dev/null
@@ -1,20 +0,0 @@
-/*
-Copyright 2021-2022 Alin M Elena <alinm.elena@gmail.com>
-
-This program is free software: you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program. If not, see <http://www.gnu.org/licenses/>.
-*/
-
-#pragma once
-
-#define TAPPING_TOGGLE 2
diff --git a/keyboards/mlego/m65/keymaps/via/keymap.c b/keyboards/mlego/m65/keymaps/via/keymap.c
deleted file mode 100644
index bfdcacc039..0000000000
--- a/keyboards/mlego/m65/keymaps/via/keymap.c
+++ /dev/null
@@ -1,118 +0,0 @@
-/*
-Copyright 2021-2022 Alin M Elena <alinm.elena@gmail.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 QMK_KEYBOARD_H
-
-// clang-format off
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
- [_QW] = LAYOUT_ortho_5x13(
- KC_ESC, KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , KC_MINS, KC_BSPC ,
- 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_NUHS, KC_A , KC_S , KC_D , KC_F , KC_G , KC_H , KC_J , KC_K , KC_L , KC_SCLN, KC_QUOT, KC_ENT ,
- SC_LSPO, KC_NUBS, KC_Z , KC_X , KC_C , KC_V , KC_B , KC_N , KC_M , KC_COMM, KC_DOT , KC_UP , KC_SLSH ,
- KC_LCTL, KC_LGUI, TT(_LWR), KC_LALT, TT(_RSE), KC_SPC, KC_SPC, KC_SPC, KC_RALT, SC_RSPC, KC_LEFT, KC_DOWN, KC_RGHT),
-
- [_LWR] = LAYOUT_ortho_5x13(
- KC_GRV , KC_MUTE, KC_VOLU, KC_VOLD, KC_MPRV, KC_MPLY, KC_MNXT, G(KC_P), KC_SLEP, KC_WAKE, KC_PSCR, KC_DEL , KC_EQL ,
- KC_BTN3, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ,
- KC_BTN2, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ,
- _______, KC_BTN1, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MS_U, _______ ,
- _______, KC_BTN4, _______, _______, _______, _______, _______, _______, _______, _______, KC_MS_L, KC_MS_D, KC_MS_R),
-
- [_RSE] = LAYOUT_ortho_5x13(
- 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_CAPS, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_WH_U, _______ ,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_WH_L, KC_WH_D, KC_WH_R),
-
- [_ADJ] = LAYOUT_ortho_5x13(
- RGB_MOD, RGB_RMOD, A(KC_F2), _______, _______, _______, _______, _______, _______, _______, _______, RGB_M_T , RGB_M_SW,
- RGB_HUI, RGB_HUD , RGB_M_P , _______, QK_BOOT , _______, _______, _______, _______, _______, _______, _______ , RGB_M_SN,
- RGB_SAI, RGB_SAD , RGB_M_B , _______, _______, _______, _______, _______, _______, _______, _______, _______ , RGB_M_K ,
- RGB_VAI, RGB_VAD , RGB_M_R , _______, _______, _______, _______, _______, _______, _______, _______, _______ , RGB_M_X ,
- RGB_TOG, _______ , _______ , _______, _______, _______, _______, _______, _______, _______, _______, RGB_M_TW, RGB_M_G),
-};
-// clang-format on
-
-bool led_update_user(led_t led_state) {
- // Disable the default LED update code, so that lock LEDs could be reused to show layer status.
- return false;
-}
-
-void matrix_scan_user(void) {
-
- toggle_leds();
-
-}
-
-bool process_record_user(uint16_t keycode, keyrecord_t* record) {
- switch (keycode) {
- case (TT(_LWR)):
- if (!record->event.pressed && record->tap.count == TAPPING_TOGGLE) {
- // This runs before the TT() handler toggles the layer state, so the current layer state is the opposite of the final one after toggle.
- set_led_toggle(_LWR, !layer_state_is(_LWR));
- }
- return true;
- break;
- case (TT(_RSE)):
- if (record->event.pressed && record->tap.count == TAPPING_TOGGLE) {
- set_led_toggle(_RSE, !layer_state_is(_RSE));
- }
- return true;
- break;
- default:
- return true;
- }
-}
-
-layer_state_t layer_state_set_user(layer_state_t state) {
-
-#ifdef RGBLIGHT_ENABLE
-
- set_rgb_layers(state);
-
-#endif
-
- return update_tri_layer_state(state, _LWR, _RSE, _ADJ);
-}
-
-#ifdef RGBLIGHT_ENABLE
-
-layer_state_t default_layer_state_set_user(layer_state_t state) {
- set_default_rgb_layers(state);
- return state;
-}
-
-#endif
-
-void keyboard_post_init_user(void) {
-
-#ifdef RGBLIGHT_ENABLE
-
- // Enable the LED layers
- rgblight_layers = my_rgb();
-
-#endif
-
-#ifdef OLED_ENABLE
-
- init_timer();
-
-#endif
-}
diff --git a/keyboards/mlego/m65/lib/glcdfont.c b/keyboards/mlego/m65/lib/glcdfont.c
index 4b354756b6..3f64f032cf 100644
--- a/keyboards/mlego/m65/lib/glcdfont.c
+++ b/keyboards/mlego/m65/lib/glcdfont.c
@@ -4,228 +4,13 @@
#include "progmem.h"
static const unsigned char PROGMEM font[] = {
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x3E, 0x5B, 0x4F, 0x5B, 0x3E, 0x00,
- 0x3E, 0x6B, 0x4F, 0x6B, 0x3E, 0x00,
- 0x1C, 0x3E, 0x7C, 0x3E, 0x1C, 0x00,
- 0x18, 0x3C, 0x7E, 0x3C, 0x18, 0x00,
- 0x1C, 0x57, 0x7D, 0x57, 0x1C, 0x00,
- 0x1C, 0x5E, 0x7F, 0x5E, 0x1C, 0x00,
- 0x00, 0x18, 0x3C, 0x18, 0x00, 0x00,
- 0xFF, 0xE7, 0xC3, 0xE7, 0xFF, 0x00,
- 0x00, 0x18, 0x24, 0x18, 0x00, 0x00,
- 0xFF, 0xE7, 0xDB, 0xE7, 0xFF, 0x00,
- 0x30, 0x48, 0x3A, 0x06, 0x0E, 0x00,
- 0x26, 0x29, 0x79, 0x29, 0x26, 0x00,
- 0x40, 0x7F, 0x05, 0x05, 0x07, 0x00,
- 0x40, 0x7F, 0x05, 0x25, 0x3F, 0x00,
- 0x5A, 0x3C, 0xE7, 0x3C, 0x5A, 0x00,
- 0x7F, 0x3E, 0x1C, 0x1C, 0x08, 0x00,
- 0x08, 0x1C, 0x1C, 0x3E, 0x7F, 0x00,
- 0x14, 0x22, 0x7F, 0x22, 0x14, 0x00,
- 0x5F, 0x5F, 0x00, 0x5F, 0x5F, 0x00,
- 0x06, 0x09, 0x7F, 0x01, 0x7F, 0x00,
- 0x00, 0x66, 0x89, 0x95, 0x6A, 0x00,
- 0x60, 0x60, 0x60, 0x60, 0x60, 0x00,
- 0x94, 0xA2, 0xFF, 0xA2, 0x94, 0x00,
- 0x08, 0x04, 0x7E, 0x04, 0x08, 0x00,
- 0x10, 0x20, 0x7E, 0x20, 0x10, 0x00,
- 0x08, 0x08, 0x2A, 0x1C, 0x08, 0x00,
- 0x08, 0x1C, 0x2A, 0x08, 0x08, 0x00,
- 0x1E, 0x10, 0x10, 0x10, 0x10, 0x00,
- 0x0C, 0x1E, 0x0C, 0x1E, 0x0C, 0x00,
- 0x30, 0x38, 0x3E, 0x38, 0x30, 0x00,
- 0x06, 0x0E, 0x3E, 0x0E, 0x06, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x5F, 0x00, 0x00, 0x00,
- 0x00, 0x07, 0x00, 0x07, 0x00, 0x00,
- 0x14, 0x7F, 0x14, 0x7F, 0x14, 0x00,
- 0x24, 0x2A, 0x7F, 0x2A, 0x12, 0x00,
- 0x23, 0x13, 0x08, 0x64, 0x62, 0x00,
- 0x36, 0x49, 0x56, 0x20, 0x50, 0x00,
- 0x00, 0x08, 0x07, 0x03, 0x00, 0x00,
- 0x00, 0x1C, 0x22, 0x41, 0x00, 0x00,
- 0x00, 0x41, 0x22, 0x1C, 0x00, 0x00,
- 0x2A, 0x1C, 0x7F, 0x1C, 0x2A, 0x00,
- 0x08, 0x08, 0x3E, 0x08, 0x08, 0x00,
- 0x00, 0x80, 0x70, 0x30, 0x00, 0x00,
- 0x08, 0x08, 0x08, 0x08, 0x08, 0x00,
- 0x00, 0x00, 0x60, 0x60, 0x00, 0x00,
- 0x20, 0x10, 0x08, 0x04, 0x02, 0x00,
- 0x3E, 0x51, 0x49, 0x45, 0x3E, 0x00,
- 0x00, 0x42, 0x7F, 0x40, 0x00, 0x00,
- 0x72, 0x49, 0x49, 0x49, 0x46, 0x00,
- 0x21, 0x41, 0x49, 0x4D, 0x33, 0x00,
- 0x18, 0x14, 0x12, 0x7F, 0x10, 0x00,
- 0x27, 0x45, 0x45, 0x45, 0x39, 0x00,
- 0x3C, 0x4A, 0x49, 0x49, 0x31, 0x00,
- 0x41, 0x21, 0x11, 0x09, 0x07, 0x00,
- 0x36, 0x49, 0x49, 0x49, 0x36, 0x00,
- 0x46, 0x49, 0x49, 0x29, 0x1E, 0x00,
- 0x00, 0x00, 0x14, 0x00, 0x00, 0x00,
- 0x00, 0x40, 0x34, 0x00, 0x00, 0x00,
- 0x00, 0x08, 0x14, 0x22, 0x41, 0x00,
- 0x14, 0x14, 0x14, 0x14, 0x14, 0x00,
- 0x00, 0x41, 0x22, 0x14, 0x08, 0x00,
- 0x02, 0x01, 0x59, 0x09, 0x06, 0x00,
- 0x3E, 0x41, 0x5D, 0x59, 0x4E, 0x00,
- 0x7C, 0x12, 0x11, 0x12, 0x7C, 0x00,
- 0x7F, 0x49, 0x49, 0x49, 0x36, 0x00,
- 0x3E, 0x41, 0x41, 0x41, 0x22, 0x00,
- 0x7F, 0x41, 0x41, 0x41, 0x3E, 0x00,
- 0x7F, 0x49, 0x49, 0x49, 0x41, 0x00,
- 0x7F, 0x09, 0x09, 0x09, 0x01, 0x00,
- 0x3E, 0x41, 0x41, 0x51, 0x73, 0x00,
- 0x7F, 0x08, 0x08, 0x08, 0x7F, 0x00,
- 0x00, 0x41, 0x7F, 0x41, 0x00, 0x00,
- 0x20, 0x40, 0x41, 0x3F, 0x01, 0x00,
- 0x7F, 0x08, 0x14, 0x22, 0x41, 0x00,
- 0x7F, 0x40, 0x40, 0x40, 0x40, 0x00,
- 0x7F, 0x02, 0x1C, 0x02, 0x7F, 0x00,
- 0x7F, 0x04, 0x08, 0x10, 0x7F, 0x00,
- 0x3E, 0x41, 0x41, 0x41, 0x3E, 0x00,
- 0x7F, 0x09, 0x09, 0x09, 0x06, 0x00,
- 0x3E, 0x41, 0x51, 0x21, 0x5E, 0x00,
- 0x7F, 0x09, 0x19, 0x29, 0x46, 0x00,
- 0x26, 0x49, 0x49, 0x49, 0x32, 0x00,
- 0x03, 0x01, 0x7F, 0x01, 0x03, 0x00,
- 0x3F, 0x40, 0x40, 0x40, 0x3F, 0x00,
- 0x1F, 0x20, 0x40, 0x20, 0x1F, 0x00,
- 0x3F, 0x40, 0x38, 0x40, 0x3F, 0x00,
- 0x63, 0x14, 0x08, 0x14, 0x63, 0x00,
- 0x03, 0x04, 0x78, 0x04, 0x03, 0x00,
- 0x61, 0x59, 0x49, 0x4D, 0x43, 0x00,
- 0x00, 0x7F, 0x41, 0x41, 0x41, 0x00,
- 0x02, 0x04, 0x08, 0x10, 0x20, 0x00,
- 0x00, 0x41, 0x41, 0x41, 0x7F, 0x00,
- 0x04, 0x02, 0x01, 0x02, 0x04, 0x00,
- 0x40, 0x40, 0x40, 0x40, 0x40, 0x00,
- 0x00, 0x03, 0x07, 0x08, 0x00, 0x00,
- 0x20, 0x54, 0x54, 0x78, 0x40, 0x00,
- 0x7F, 0x28, 0x44, 0x44, 0x38, 0x00,
- 0x38, 0x44, 0x44, 0x44, 0x28, 0x00,
- 0x38, 0x44, 0x44, 0x28, 0x7F, 0x00,
- 0x38, 0x54, 0x54, 0x54, 0x18, 0x00,
- 0x00, 0x08, 0x7E, 0x09, 0x02, 0x00,
- 0x18, 0x24, 0x24, 0x1C, 0x78, 0x00,
- 0x7F, 0x08, 0x04, 0x04, 0x78, 0x00,
- 0x00, 0x44, 0x7D, 0x40, 0x00, 0x00,
- 0x20, 0x40, 0x40, 0x3D, 0x00, 0x00,
- 0x7F, 0x10, 0x28, 0x44, 0x00, 0x00,
- 0x00, 0x41, 0x7F, 0x40, 0x00, 0x00,
- 0x7C, 0x04, 0x78, 0x04, 0x78, 0x00,
- 0x7C, 0x08, 0x04, 0x04, 0x78, 0x00,
- 0x38, 0x44, 0x44, 0x44, 0x38, 0x00,
- 0x7C, 0x18, 0x24, 0x24, 0x18, 0x00,
- 0x18, 0x24, 0x24, 0x18, 0x7C, 0x00,
- 0x7C, 0x08, 0x04, 0x04, 0x08, 0x00,
- 0x48, 0x54, 0x54, 0x54, 0x24, 0x00,
- 0x04, 0x04, 0x3F, 0x44, 0x24, 0x00,
- 0x3C, 0x40, 0x40, 0x20, 0x7C, 0x00,
- 0x1C, 0x20, 0x40, 0x20, 0x1C, 0x00,
- 0x3C, 0x40, 0x30, 0x40, 0x3C, 0x00,
- 0x44, 0x28, 0x10, 0x28, 0x44, 0x00,
- 0x4C, 0x90, 0x90, 0x90, 0x7C, 0x00,
- 0x44, 0x64, 0x54, 0x4C, 0x44, 0x00,
- 0x00, 0x08, 0x36, 0x41, 0x00, 0x00,
- 0x00, 0x00, 0x77, 0x00, 0x00, 0x00,
- 0x00, 0x41, 0x36, 0x08, 0x00, 0x00,
- 0x02, 0x01, 0x02, 0x04, 0x02, 0x00,
- 0x3C, 0x26, 0x23, 0x26, 0x3C, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0xE0, 0x18, 0x02,
- 0x00, 0x3C, 0x1E, 0x06, 0x0E, 0x0A,
- 0x1A, 0x0E, 0x26, 0xFF, 0xBF, 0x0D,
- 0x00, 0x80, 0x80, 0x81, 0xFF, 0xFE,
- 0xF8, 0x01, 0x01, 0x03, 0x03, 0x03,
- 0x03, 0x05, 0x05, 0x02, 0x02, 0x0A,
- 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A,
- 0x0C, 0x04, 0x10, 0x18, 0x20, 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, 0xD0, 0x58, 0x78,
- 0x68, 0x2C, 0x24, 0x34, 0xF4, 0xF4,
- 0x3C, 0x3C, 0xFC, 0xF8, 0xF8, 0x70,
- 0xF0, 0xE0, 0xE0, 0xC0, 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, 0xC0, 0x7C, 0x07, 0x80, 0xE0,
- 0x60, 0x64, 0xE2, 0x60, 0x10, 0x10,
- 0x20, 0x22, 0x12, 0x17, 0x3F, 0x0B,
- 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, 0x21,
- 0x6F, 0xFC, 0xE0, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x40,
- 0x60, 0x60, 0x70, 0x70, 0xF0, 0xF0,
- 0xD0, 0xD0, 0xD0, 0xD0, 0x50, 0x50,
- 0x50, 0x70, 0x78, 0x78, 0x78, 0x7C,
- 0x7F, 0x7D, 0x7C, 0x5E, 0x4F, 0x44,
- 0x40, 0x40, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x38, 0x30, 0x30, 0x30, 0x30,
- 0x30, 0x30, 0x58, 0x46, 0x47, 0x41,
- 0x41, 0x01, 0x01, 0x03, 0x03, 0x42,
- 0x42, 0x42, 0x46, 0x46, 0x46, 0x46,
- 0x42, 0x43, 0x43, 0x73, 0x77, 0x72,
- 0x70, 0x60, 0x60, 0x60, 0x60, 0x60,
- 0x60, 0x61, 0x67, 0x6F, 0x7E, 0x78,
- 0x78, 0x70, 0x70, 0x70, 0x70, 0x70,
- 0x60, 0x60, 0x60, 0x60, 0x60, 0x60,
- 0x60, 0x60, 0x60, 0x60, 0x60, 0x60,
- 0x60, 0x60, 0x60, 0x60, 0x60, 0x60,
- 0x40, 0x40, 0x40, 0x48, 0x58, 0x58,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3E, 0x5B, 0x4F, 0x5B, 0x3E, 0x00, 0x3E, 0x6B, 0x4F, 0x6B, 0x3E, 0x00, 0x1C, 0x3E, 0x7C, 0x3E, 0x1C, 0x00, 0x18, 0x3C, 0x7E, 0x3C, 0x18, 0x00, 0x1C, 0x57, 0x7D, 0x57, 0x1C, 0x00, 0x1C, 0x5E, 0x7F, 0x5E, 0x1C, 0x00, 0x00, 0x18, 0x3C, 0x18, 0x00, 0x00, 0xFF, 0xE7, 0xC3, 0xE7, 0xFF, 0x00, 0x00, 0x18, 0x24, 0x18, 0x00, 0x00, 0xFF, 0xE7, 0xDB, 0xE7, 0xFF, 0x00, 0x30, 0x48, 0x3A, 0x06, 0x0E, 0x00, 0x26, 0x29, 0x79, 0x29, 0x26, 0x00, 0x40, 0x7F, 0x05, 0x05, 0x07, 0x00, 0x40, 0x7F, 0x05, 0x25, 0x3F, 0x00, 0x5A, 0x3C, 0xE7, 0x3C, 0x5A, 0x00, 0x7F, 0x3E, 0x1C, 0x1C, 0x08, 0x00, 0x08, 0x1C, 0x1C, 0x3E, 0x7F, 0x00, 0x14, 0x22, 0x7F, 0x22, 0x14, 0x00, 0x5F, 0x5F, 0x00, 0x5F, 0x5F, 0x00, 0x06, 0x09, 0x7F, 0x01, 0x7F, 0x00, 0x00, 0x66, 0x89, 0x95, 0x6A, 0x00, 0x60, 0x60, 0x60, 0x60, 0x60, 0x00, 0x94, 0xA2, 0xFF, 0xA2, 0x94, 0x00, 0x08, 0x04, 0x7E, 0x04, 0x08, 0x00,
+ 0x10, 0x20, 0x7E, 0x20, 0x10, 0x00, 0x08, 0x08, 0x2A, 0x1C, 0x08, 0x00, 0x08, 0x1C, 0x2A, 0x08, 0x08, 0x00, 0x1E, 0x10, 0x10, 0x10, 0x10, 0x00, 0x0C, 0x1E, 0x0C, 0x1E, 0x0C, 0x00, 0x30, 0x38, 0x3E, 0x38, 0x30, 0x00, 0x06, 0x0E, 0x3E, 0x0E, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5F, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x07, 0x00, 0x00, 0x14, 0x7F, 0x14, 0x7F, 0x14, 0x00, 0x24, 0x2A, 0x7F, 0x2A, 0x12, 0x00, 0x23, 0x13, 0x08, 0x64, 0x62, 0x00, 0x36, 0x49, 0x56, 0x20, 0x50, 0x00, 0x00, 0x08, 0x07, 0x03, 0x00, 0x00, 0x00, 0x1C, 0x22, 0x41, 0x00, 0x00, 0x00, 0x41, 0x22, 0x1C, 0x00, 0x00, 0x2A, 0x1C, 0x7F, 0x1C, 0x2A, 0x00, 0x08, 0x08, 0x3E, 0x08, 0x08, 0x00, 0x00, 0x80, 0x70, 0x30, 0x00, 0x00, 0x08, 0x08, 0x08, 0x08, 0x08, 0x00, 0x00, 0x00, 0x60, 0x60, 0x00, 0x00, 0x20, 0x10, 0x08, 0x04, 0x02, 0x00, 0x3E, 0x51, 0x49, 0x45, 0x3E, 0x00, 0x00, 0x42, 0x7F, 0x40, 0x00, 0x00,
+ 0x72, 0x49, 0x49, 0x49, 0x46, 0x00, 0x21, 0x41, 0x49, 0x4D, 0x33, 0x00, 0x18, 0x14, 0x12, 0x7F, 0x10, 0x00, 0x27, 0x45, 0x45, 0x45, 0x39, 0x00, 0x3C, 0x4A, 0x49, 0x49, 0x31, 0x00, 0x41, 0x21, 0x11, 0x09, 0x07, 0x00, 0x36, 0x49, 0x49, 0x49, 0x36, 0x00, 0x46, 0x49, 0x49, 0x29, 0x1E, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x00, 0x40, 0x34, 0x00, 0x00, 0x00, 0x00, 0x08, 0x14, 0x22, 0x41, 0x00, 0x14, 0x14, 0x14, 0x14, 0x14, 0x00, 0x00, 0x41, 0x22, 0x14, 0x08, 0x00, 0x02, 0x01, 0x59, 0x09, 0x06, 0x00, 0x3E, 0x41, 0x5D, 0x59, 0x4E, 0x00, 0x7C, 0x12, 0x11, 0x12, 0x7C, 0x00, 0x7F, 0x49, 0x49, 0x49, 0x36, 0x00, 0x3E, 0x41, 0x41, 0x41, 0x22, 0x00, 0x7F, 0x41, 0x41, 0x41, 0x3E, 0x00, 0x7F, 0x49, 0x49, 0x49, 0x41, 0x00, 0x7F, 0x09, 0x09, 0x09, 0x01, 0x00, 0x3E, 0x41, 0x41, 0x51, 0x73, 0x00, 0x7F, 0x08, 0x08, 0x08, 0x7F, 0x00, 0x00, 0x41, 0x7F, 0x41, 0x00, 0x00, 0x20, 0x40, 0x41, 0x3F, 0x01, 0x00,
+ 0x7F, 0x08, 0x14, 0x22, 0x41, 0x00, 0x7F, 0x40, 0x40, 0x40, 0x40, 0x00, 0x7F, 0x02, 0x1C, 0x02, 0x7F, 0x00, 0x7F, 0x04, 0x08, 0x10, 0x7F, 0x00, 0x3E, 0x41, 0x41, 0x41, 0x3E, 0x00, 0x7F, 0x09, 0x09, 0x09, 0x06, 0x00, 0x3E, 0x41, 0x51, 0x21, 0x5E, 0x00, 0x7F, 0x09, 0x19, 0x29, 0x46, 0x00, 0x26, 0x49, 0x49, 0x49, 0x32, 0x00, 0x03, 0x01, 0x7F, 0x01, 0x03, 0x00, 0x3F, 0x40, 0x40, 0x40, 0x3F, 0x00, 0x1F, 0x20, 0x40, 0x20, 0x1F, 0x00, 0x3F, 0x40, 0x38, 0x40, 0x3F, 0x00, 0x63, 0x14, 0x08, 0x14, 0x63, 0x00, 0x03, 0x04, 0x78, 0x04, 0x03, 0x00, 0x61, 0x59, 0x49, 0x4D, 0x43, 0x00, 0x00, 0x7F, 0x41, 0x41, 0x41, 0x00, 0x02, 0x04, 0x08, 0x10, 0x20, 0x00, 0x00, 0x41, 0x41, 0x41, 0x7F, 0x00, 0x04, 0x02, 0x01, 0x02, 0x04, 0x00, 0x40, 0x40, 0x40, 0x40, 0x40, 0x00, 0x00, 0x03, 0x07, 0x08, 0x00, 0x00, 0x20, 0x54, 0x54, 0x78, 0x40, 0x00, 0x7F, 0x28, 0x44, 0x44, 0x38, 0x00, 0x38, 0x44, 0x44, 0x44, 0x28, 0x00,
+ 0x38, 0x44, 0x44, 0x28, 0x7F, 0x00, 0x38, 0x54, 0x54, 0x54, 0x18, 0x00, 0x00, 0x08, 0x7E, 0x09, 0x02, 0x00, 0x18, 0x24, 0x24, 0x1C, 0x78, 0x00, 0x7F, 0x08, 0x04, 0x04, 0x78, 0x00, 0x00, 0x44, 0x7D, 0x40, 0x00, 0x00, 0x20, 0x40, 0x40, 0x3D, 0x00, 0x00, 0x7F, 0x10, 0x28, 0x44, 0x00, 0x00, 0x00, 0x41, 0x7F, 0x40, 0x00, 0x00, 0x7C, 0x04, 0x78, 0x04, 0x78, 0x00, 0x7C, 0x08, 0x04, 0x04, 0x78, 0x00, 0x38, 0x44, 0x44, 0x44, 0x38, 0x00, 0x7C, 0x18, 0x24, 0x24, 0x18, 0x00, 0x18, 0x24, 0x24, 0x18, 0x7C, 0x00, 0x7C, 0x08, 0x04, 0x04, 0x08, 0x00, 0x48, 0x54, 0x54, 0x54, 0x24, 0x00, 0x04, 0x04, 0x3F, 0x44, 0x24, 0x00, 0x3C, 0x40, 0x40, 0x20, 0x7C, 0x00, 0x1C, 0x20, 0x40, 0x20, 0x1C, 0x00, 0x3C, 0x40, 0x30, 0x40, 0x3C, 0x00, 0x44, 0x28, 0x10, 0x28, 0x44, 0x00, 0x4C, 0x90, 0x90, 0x90, 0x7C, 0x00, 0x44, 0x64, 0x54, 0x4C, 0x44, 0x00, 0x00, 0x08, 0x36, 0x41, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x00, 0x00,
+ 0x00, 0x41, 0x36, 0x08, 0x00, 0x00, 0x02, 0x01, 0x02, 0x04, 0x02, 0x00, 0x3C, 0x26, 0x23, 0x26, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0x18, 0x02, 0x00, 0x3C, 0x1E, 0x06, 0x0E, 0x0A, 0x1A, 0x0E, 0x26, 0xFF, 0xBF, 0x0D, 0x00, 0x80, 0x80, 0x81, 0xFF, 0xFE, 0xF8, 0x01, 0x01, 0x03, 0x03, 0x03, 0x03, 0x05, 0x05, 0x02, 0x02, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0C, 0x04, 0x10, 0x18, 0x20, 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, 0xD0, 0x58, 0x78, 0x68, 0x2C, 0x24, 0x34, 0xF4, 0xF4, 0x3C, 0x3C, 0xFC, 0xF8, 0xF8, 0x70, 0xF0, 0xE0, 0xE0, 0xC0, 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, 0xC0, 0x7C, 0x07, 0x80, 0xE0, 0x60, 0x64, 0xE2, 0x60, 0x10, 0x10, 0x20, 0x22, 0x12, 0x17, 0x3F, 0x0B, 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, 0x21, 0x6F, 0xFC, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x60, 0x60, 0x70, 0x70, 0xF0, 0xF0, 0xD0, 0xD0, 0xD0, 0xD0, 0x50, 0x50, 0x50, 0x70, 0x78, 0x78, 0x78, 0x7C, 0x7F, 0x7D, 0x7C, 0x5E, 0x4F, 0x44, 0x40, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x30, 0x30, 0x30, 0x30,
+ 0x30, 0x30, 0x58, 0x46, 0x47, 0x41, 0x41, 0x01, 0x01, 0x03, 0x03, 0x42, 0x42, 0x42, 0x46, 0x46, 0x46, 0x46, 0x42, 0x43, 0x43, 0x73, 0x77, 0x72, 0x70, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x61, 0x67, 0x6F, 0x7E, 0x78, 0x78, 0x70, 0x70, 0x70, 0x70, 0x70, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x40, 0x40, 0x40, 0x48, 0x58, 0x58, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};
diff --git a/keyboards/mlego/m65/m65.c b/keyboards/mlego/m65/m65.c
index 3f71a27790..12ea866f1e 100644
--- a/keyboards/mlego/m65/m65.c
+++ b/keyboards/mlego/m65/m65.c
@@ -1,139 +1,74 @@
-/*
-Copyright 2021-2022 Alin M Elena <alinm.elena@gmail.com>
+// Copyright 2020-2023 alin m elena (@alinelena)
+// SPDX-License-Identifier: GPL-2.0-or-later
-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 "m65.h"
+#include QMK_KEYBOARD_H
// let us assume we start with both layers off
static bool toggle_lwr = false;
static bool toggle_rse = false;
-#ifdef RGBLIGHT_ENABLE
+#if defined(RGBLIGHT_ENABLE)
-const rgblight_segment_t PROGMEM my_qwerty_layer[] = RGBLIGHT_LAYER_SEGMENTS({0, RGBLED_NUM, HSV_PURPLE});
-const rgblight_segment_t PROGMEM my_lwr_layer[] = RGBLIGHT_LAYER_SEGMENTS({0, RGBLED_NUM, HSV_CYAN});
-const rgblight_segment_t PROGMEM my_rse_layer[] = RGBLIGHT_LAYER_SEGMENTS({0, RGBLED_NUM, HSV_RED});
-const rgblight_segment_t PROGMEM my_adj_layer[] = RGBLIGHT_LAYER_SEGMENTS({0, RGBLED_NUM, HSV_GREEN});
+const rgblight_segment_t PROGMEM my_qwerty_layer[] = RGBLIGHT_LAYER_SEGMENTS({0, RGBLED_NUM, HSV_OFF});
+const rgblight_segment_t PROGMEM my_lwr_layer[] = RGBLIGHT_LAYER_SEGMENTS({0, RGBLED_NUM, HSV_AZURE});
+const rgblight_segment_t PROGMEM my_rse_layer[] = RGBLIGHT_LAYER_SEGMENTS({0, RGBLED_NUM, HSV_CORAL});
+const rgblight_segment_t PROGMEM my_adj_layer[] = RGBLIGHT_LAYER_SEGMENTS({0, RGBLED_NUM, HSV_RED});
const rgblight_segment_t* const PROGMEM my_rgb_layers[] = RGBLIGHT_LAYERS_LIST(my_qwerty_layer, my_lwr_layer, my_rse_layer, my_adj_layer);
#endif
-#ifdef OLED_ENABLE
-
-static uint32_t oled_logo_timer = 0;
-static bool clear_logo = true;
-static const char PROGMEM m65_logo[] = {
- 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, 0x98, 0x99, 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa5, 0xa5, 0xa5, 0xa5, 0xa5, 0xa5,
- 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, 0x90, 0x91, 0x92, 0x93, 0x94,
- 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, 0xb0, 0xb1, 0xb2, 0xb3, 0xb4,
- 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, 0xd0, 0xd1, 0xd2, 0xd3, 0xd4,
- 0};
-
+#if defined(OLED_ENABLE)
+static uint32_t oled_logo_timer = 0;
+static bool clear_logo = true;
+static const char PROGMEM m65_logo[] = {0x92, 0x92, 0x93, 0x94, 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8A, 0x8B, 0x8C, 0x8D, 0x8E, 0x8F, 0x90, 0x92, 0x92, 0x93, 0x94, 0xA0, 0xA1, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7, 0xA8, 0xA9, 0xAA, 0xAB, 0xAC, 0xAD, 0xAE, 0xAF, 0xB0, 0xB2, 0x92, 0xB3, 0xB4, 0xC0, 0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7, 0xC8, 0xC9, 0xCA, 0xCB, 0xCC, 0xCD, 0xCE, 0xCF, 0xD0, 0};
#endif
-#ifdef RGBLIGHT_ENABLE
-
-void set_rgb_layers(layer_state_t state){
+#if defined(RGBLIGHT_ENABLE)
+void set_rgb_layers(layer_state_t state) {
rgblight_set_layer_state(0, layer_state_cmp(state, _QW));
rgblight_set_layer_state(1, layer_state_cmp(state, _LWR));
rgblight_set_layer_state(2, layer_state_cmp(state, _RSE));
rgblight_set_layer_state(3, layer_state_cmp(state, _ADJ));
-
}
-void set_default_rgb_layers(layer_state_t state){
+void set_default_rgb_layers(layer_state_t state) {
rgblight_set_layer_state(0, layer_state_cmp(state, _QW));
}
-const rgblight_segment_t * const* my_rgb(void){
+const rgblight_segment_t* const* my_rgb(void) {
return my_rgb_layers;
}
#endif
-void set_led_toggle(const uint8_t layer, const bool state){
-
+void set_led_toggle(const uint8_t layer, const bool state) {
switch (layer) {
case _LWR:
- toggle_lwr = state;
- break;
+ toggle_lwr = state;
+ break;
case _RSE:
- toggle_rse = state;
- break;
+ toggle_rse = state;
+ break;
default:
- break;
+ break;
}
}
-void toggle_leds(void){
-
+void toggle_leds(const bool toggle_lwr, const bool toggle_rse) {
led_lwr(toggle_lwr);
led_rse(toggle_rse);
- led_t led_state = host_keyboard_led_state();
- led_caps(led_state.caps_lock);
if (layer_state_is(_ADJ)) {
led_lwr(true);
led_rse(true);
}
-
}
-#ifdef ENCODER_ENABLE
-
-# define MEDIA_KEY_DELAY 10
+#if defined(OLED_ENABLE)
-void my_encoders(const uint8_t index, const bool clockwise) {
- if (index == 0) { /* First encoder */
- if (IS_LAYER_ON(_LWR)) {
- if (clockwise) {
- rgblight_decrease_val_noeeprom();
- } else {
- rgblight_increase_val_noeeprom();
- }
- } else if (IS_LAYER_ON(_RSE)) {
- if (clockwise) {
- rgblight_decrease_hue_noeeprom();
- } else {
- rgblight_increase_hue_noeeprom();
- }
-
- } else {
- if (clockwise) {
- tap_code_delay(KC_VOLD, MEDIA_KEY_DELAY);
- } else {
- tap_code_delay(KC_VOLU, MEDIA_KEY_DELAY);
- }
- }
- }
-}
-
-bool encoder_update_kb(uint8_t index, bool clockwise) {
- if (!encoder_update_user(index, clockwise)) { return false; }
- my_encoders(index, clockwise);
- return false;
-}
-
-#endif
-
-#ifdef OLED_ENABLE
-
-void init_timer(void){
- oled_logo_timer = timer_read32();
+void init_timer(void) {
+ oled_logo_timer = timer_read32();
};
void user_oled_magic(void) {
@@ -163,11 +98,38 @@ void user_oled_magic(void) {
oled_write_P(led_state.num_lock ? PSTR("Lower ") : PSTR(" "), false);
oled_write_P(led_state.scroll_lock ? PSTR("Raise ") : PSTR(" "), false);
oled_write_P(led_state.caps_lock ? PSTR("CapsLock ") : PSTR(" "), false);
-#ifdef WPM_ENABLE
+
+# if defined(UNICODE_COMMON_ENABLE)
+ oled_write_P(PSTR("\nunicode: "), false);
+ switch (get_unicode_input_mode()) {
+ case UNICODE_MODE_LINUX:
+ oled_write_P(PSTR("Linux"), false);
+ break;
+ case UNICODE_MODE_MACOS:
+ oled_write_P(PSTR("apple"), false);
+ break;
+ case UNICODE_MODE_WINDOWS:
+ oled_write_P(PSTR("windows"), false);
+ break;
+ case UNICODE_MODE_WINCOMPOSE:
+ oled_write_P(PSTR("windows c"), false);
+ break;
+ case UNICODE_MODE_BSD:
+ oled_write_P(PSTR("bsd"), false);
+ break;
+ case UNICODE_MODE_EMACS:
+ oled_write_P(PSTR("emacs"), false);
+ break;
+ default:
+ oled_write_ln_P(PSTR("not supported"), false);
+ }
+# endif
+
+# if defined(WPM_ENABLE)
oled_write_P(PSTR("\nwpm: "), false);
uint8_t wpm = get_current_wpm();
- oled_write_P(wpm != 0 ? get_u8_str(wpm,' ') : PSTR(" "), false);
-#endif
+ oled_write_P(wpm != 0 ? get_u8_str(wpm, ' ') : PSTR(" "), false);
+# endif
}
void render_logo(void) {
@@ -175,13 +137,13 @@ void render_logo(void) {
}
void clear_screen(void) {
- if (clear_logo){
- for (uint8_t i = 0; i < OLED_DISPLAY_HEIGHT; ++i) {
- for (uint8_t j = 0; j < OLED_DISPLAY_WIDTH; ++j) {
- oled_write_raw_byte(0x0, i*OLED_DISPLAY_WIDTH + j);
+ if (clear_logo) {
+ for (uint8_t i = 0; i < OLED_DISPLAY_HEIGHT; ++i) {
+ for (uint8_t j = 0; j < OLED_DISPLAY_WIDTH; ++j) {
+ oled_write_raw_byte(0x0, i * OLED_DISPLAY_WIDTH + j);
+ }
}
- }
- clear_logo = false;
+ clear_logo = false;
}
}
@@ -191,14 +153,91 @@ oled_rotation_t oled_init_user(oled_rotation_t rotation) {
# define SHOW_LOGO 5000
bool oled_task_kb(void) {
- if (!oled_task_user()) { return false; }
- if ((timer_elapsed32(oled_logo_timer) < SHOW_LOGO)){
+ if (!oled_task_user()) {
+ return false;
+ }
+ if ((timer_elapsed32(oled_logo_timer) < SHOW_LOGO)) {
render_logo();
- }else{
- clear_screen();
- user_oled_magic();
+ } else {
+ clear_screen();
+ user_oled_magic();
}
return false;
}
#endif
+
+void matrix_scan_kb(void) {
+ matrix_scan_user();
+ toggle_leds(toggle_lwr, toggle_rse);
+}
+
+bool process_record_kb(uint16_t keycode, keyrecord_t* record) {
+#if defined(CONSOLE_ENABLE)
+ uprintf("KL: kc: 0x%04X, col: %2u, row: %2u, pressed: %u, time: %5u, int: %u, count: %u\n", keycode, record->event.key.col, record->event.key.row, record->event.pressed, record->event.time, record->tap.interrupted, record->tap.count);
+#endif
+
+ switch (keycode) {
+ case (TT(_LWR)):
+ if (!record->event.pressed && record->tap.count == TAPPING_TOGGLE) {
+ // This runs before the TT() handler toggles the layer state, so the current layer state is the opposite of the final one after toggle.
+ set_led_toggle(_LWR, !layer_state_is(_LWR));
+ }
+ return true;
+ break;
+ case (TT(_RSE)):
+ if (record->event.pressed && record->tap.count == TAPPING_TOGGLE) {
+ set_led_toggle(_RSE, !layer_state_is(_RSE));
+ }
+ return true;
+ break;
+ default:
+ return true;
+ }
+ return process_record_user(keycode, record);
+}
+
+layer_state_t layer_state_set_kb(layer_state_t state) {
+ state = layer_state_set_user(state);
+
+#if defined(RGBLIGHT_ENABLE)
+
+ set_rgb_layers(state);
+
+#endif
+
+ return update_tri_layer_state(state, _LWR, _RSE, _ADJ);
+}
+
+#if defined(RGBLIGHT_ENABLE)
+
+layer_state_t default_layer_state_set_kb(layer_state_t state) {
+ state = default_layer_state_set_user(state);
+
+ set_default_rgb_layers(state);
+
+ return state;
+}
+
+#endif
+
+void keyboard_post_init_kb(void) {
+ init_lwr_rse_led();
+
+#if defined(RGBLIGHT_ENABLE)
+ // Enable the LED layers
+ rgblight_layers = my_rgb();
+#endif
+
+#if defined(OLED_ENABLE)
+ init_timer();
+#endif
+
+#if defined(CONSOLE_ENABLE)
+ debug_enable = true;
+ debug_matrix = true;
+ debug_keyboard = true;
+#endif
+
+ keyboard_post_init_user();
+}
diff --git a/keyboards/mlego/m65/m65.h b/keyboards/mlego/m65/m65.h
index 0c3f3b5ba6..1c5589c111 100644
--- a/keyboards/mlego/m65/m65.h
+++ b/keyboards/mlego/m65/m65.h
@@ -1,154 +1,65 @@
-/*
-Copyright 2021-2022 Alin M Elena <alinm.elena@gmail.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/>.
-*/
+// Copyright 2020-2023 alin m elena (@alinelena)
+// SPDX-License-Identifier: GPL-2.0-or-later
#pragma once
#include "quantum.h"
-enum unicode_names {
- la = 0,
- lA,
- lb,
- lB,
- lc,
- lC,
- ld,
- lD,
- le,
- lE,
- lf,
- lF,
- lg,
- lG,
- lh,
- lH,
- li,
- lI,
- lj,
- lJ,
- lk,
- lK,
- ll,
- lL,
- lm,
- lM,
- ln,
- lN,
- lo,
- lO,
- lp,
- lP,
- lq,
- lQ,
- lr,
- lR,
- ls,
- lS,
- lt,
- lT,
- lu,
- lU,
- lv,
- lV,
- lw,
- lW,
- lx,
- lX,
- ly,
- lY,
- lz,
- lZ,
- lc1,
- lC1,
- lp1,
- lP1,
- lq1,
- lQ1,
- ll1,
- lL1,
- lk1,
- lK1,
- ra,
- rA,
- ra1,
- rA1,
- rc,
- rC,
- ri,
- rI,
- rs,
- rS,
- rt,
- rT,
- ro,
- rO,
- ra2,
- rA2,
- ra3,
- rA3
-};
+#if defined(UNICODEMAP_ENABLE)
+enum unicode_names { la = 0, lA, lb, lB, lc, lC, ld, lD, le, lE, lf, lF, lg, lG, lh, lH, li, lI, lj, lJ, lk, lK, ll, lL, lm, lM, ln, lN, lo, lO, lp, lP, lq, lQ, lr, lR, ls, lS, lt, lT, lu, lU, lv, lV, lw, lW, lx, lX, ly, lY, lz, lZ, lc1, lC1, lp1, lP1, lq1, lQ1, ll1, lL1, lk1, lK1, lbo1, lbo2, lbc1, lbc2, ls1, ls2, ra, rA, ra1, rA1, rc, rC, ri, rI, rs, rS, rt, rT, ro, rO, ra2, rA2, ra3, rA3, rx, rX, rv, rV, rb, rB, rn, rN };
+#endif
+enum layer_names { _QW = 0, _LWR, _RSE, _ADJ };
-enum layer_names {
- _QW = 0,
- _LWR,
- _RSE,
- _ADJ
-};
-#ifdef OLED_ENABLE
+#if defined(OLED_ENABLE)
void user_oled_magic(void);
void render_logo(void);
void clear_screen(void);
void init_timer(void);
#endif
-#ifdef ENCODER_ENABLE
-void my_encoders(const uint8_t, const bool);
-bool encoder_update_user(uint8_t, bool);
+#if defined(RGBLIGHT_ENABLE)
+void set_rgb_layers(layer_state_t);
+const rgblight_segment_t* const* my_rgb(void);
+void set_default_rgb_layers(layer_state_t);
#endif
-#ifdef RGBLIGHT_ENABLE
-void set_rgb_layers(layer_state_t);
-const rgblight_segment_t * const* my_rgb(void);
-void set_default_rgb_layers(layer_state_t);
-#endif
+void toggle_leds(const bool, const bool);
+void set_led_toggle(const uint8_t, const bool);
+static inline void init_lwr_rse_led(void) {
+#if defined(LED_LWR_PIN)
+ setPinOutput(LED_LWR_PIN);
+ writePin(LED_LWR_PIN, false);
+ wait_ms(30);
+#endif
-void toggle_leds(void);
-void set_led_toggle(const uint8_t, const bool);
+#if defined(LED_RSE_PIN)
+ setPinOutput(LED_RSE_PIN);
+ writePin(LED_RSE_PIN, false);
+ wait_ms(30);
+#endif
+}
static inline void led_lwr(const bool on) {
-#ifdef LED_NUM_LOCK_PIN
- writePin(LED_NUM_LOCK_PIN, on);
+#if defined(LED_LWR_PIN)
+ if ((PRODUCT_ID == 0x6064) || (PRODUCT_ID == 0x6065) ||
+ (PRODUCT_ID == 0x6066) || (PRODUCT_ID == 0x6067)) {
+ writePin(LED_LWR_PIN, !on);
+ }else{
+ writePin(LED_LWR_PIN, on);
+ }
#endif
}
static inline void led_rse(const bool on) {
-#ifdef LED_SCROLL_LOCK_PIN
- writePin(LED_SCROLL_LOCK_PIN, on);
-#endif
-}
-static inline void led_caps(const bool on) {
-#ifdef LED_CAPS_LOCK_PIN
- if ((PRODUCT_ID == 0x6061) && (DEVICE_VER == 0x0002)) {
- writePin(LED_CAPS_LOCK_PIN, on);
- } else {
- writePin(LED_CAPS_LOCK_PIN, !on);
+#if defined(LED_RSE_PIN)
+ if ((PRODUCT_ID == 0x6064) || (PRODUCT_ID == 0x6065) ||
+ (PRODUCT_ID == 0x6066) || (PRODUCT_ID == 0x6067)) {
+ writePin(LED_RSE_PIN, !on);
+ }else{
+ writePin(LED_RSE_PIN, on);
}
#endif
}
diff --git a/keyboards/mlego/m65/readme.md b/keyboards/mlego/m65/readme.md
index 8076697a2b..d53475fd57 100644
--- a/keyboards/mlego/m65/readme.md
+++ b/keyboards/mlego/m65/readme.md
@@ -7,7 +7,7 @@ A (13x5) ortholinear keyboard that can be hand wired or using a pcb.
* Keyboard Maintainer: [Alin Elena](https://github.com/alinelena) ([@drFaustroll on GitLab](https://gitlab.com/drFaustroll))
* Hardware Supported: custom pcb [see](https://gitlab.com/m-lego/m65) STM/APM32F103C8T6, aka Black Pill (rev1),
GD32F303CCT6 from we act aka Blue Pill Plus (rev2), STM32F401 from we act (rev3,rev4) STM32F411 can also be used just ask
-* Hardware Availability: [custom how to](https://alin.elena.space/blog/keeblego/)
+* Hardware Availability: [custom how to](https://mlego.elena.space/m65)
Make example for this keyboard (after setting up your build environment):
diff --git a/keyboards/mlego/m65/rev1/config.h b/keyboards/mlego/m65/rev1/config.h
index 847dd11823..e832af8fee 100644
--- a/keyboards/mlego/m65/rev1/config.h
+++ b/keyboards/mlego/m65/rev1/config.h
@@ -1,20 +1,7 @@
-/*
-Copyright 2021-2022 Alin M Elena <alinm.elena@gmail.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/>.
-*/
+// Copyright 2020-2023 alin m elena (@alinelena)
+// SPDX-License-Identifier: GPL-2.0-or-later
#pragma once
-#define RGBLIGHT_LAYERS
+#define LED_RSE_PIN B13
+#define LED_LWR_PIN B12
diff --git a/keyboards/mlego/m65/rev1/info.json b/keyboards/mlego/m65/rev1/info.json
index 960b9325c8..d8bb91de30 100644
--- a/keyboards/mlego/m65/rev1/info.json
+++ b/keyboards/mlego/m65/rev1/info.json
@@ -1,42 +1,134 @@
{
- "usb": {
- "pid": "0x6061",
- "device_version": "0.0.1"
- },
- "matrix_pins": {
- "cols": ["A10", "A15", "B3", "B4", "B5", "B9", "B8", "B7", "B6", "C15", "A0", "A7", "B10"],
- "rows": ["B11", "B0", "B1", "A2", "A3"]
- },
+ "manufacturer": "Alin Elena",
+ "keyboard_name": "mlego/m65 rev1",
+ "maintainer": "alin elena",
+ "bootloader": "stm32duino",
+ "debounce": 5,
"diode_direction": "COL2ROW",
"encoder": {
"rotary": [
{"pin_a": "A8", "pin_b": "A9"}
]
},
+ "features": {
+ "audio": false,
+ "backlight": false,
+ "bootmagic": true,
+ "command": false,
+ "console": false,
+ "encoder": true,
+ "extrakey": true,
+ "mousekey": true,
+ "nkro": true,
+ "rgblight": true
+ },
"indicators": {
"caps_lock": "C13",
- "num_lock": "B12",
- "scroll_lock": "B13"
+ "on_state": 0
},
+ "matrix_pins": {
+ "cols": ["A10", "A15", "B3", "B4", "B5", "B9", "B8", "B7", "B6", "C15", "A0", "A7", "B10"],
+ "rows": ["B11", "B0", "B1", "A2", "A3"]
+ },
+ "processor": "STM32F103",
"rgblight": {
- "saturation_steps": 8,
- "led_count": 20,
"animations": {
+ "alternating": true,
"breathing": true,
+ "christmas": true,
+ "knight": true,
"rainbow_mood": true,
"rainbow_swirl": true,
+ "rgb_test": true,
"snake": true,
- "knight": true,
- "christmas": true,
"static_gradient": true,
- "rgb_test": true,
- "alternating": true,
"twinkle": true
- }
+ },
+ "hue_steps": 8,
+ "layers": {
+ "enabled": true
+ },
+ "led_count": 20,
+ "saturation_steps": 8
+ },
+ "url": "https://gitlab.com/m-lego/m65",
+ "usb": {
+ "device_version": "0.0.1",
+ "pid": "0x6061",
+ "vid": "0xBABA"
},
"ws2812": {
"pin": "B15"
},
- "processor": "STM32F103",
- "bootloader": "stm32duino"
+ "layouts": {
+ "LAYOUT_ortho_5x13": {
+ "layout": [
+ {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0},
+ {"label": "1", "matrix": [0, 1], "x": 1, "y": 0},
+ {"label": "2", "matrix": [0, 2], "x": 2, "y": 0},
+ {"label": "3", "matrix": [0, 3], "x": 3, "y": 0},
+ {"label": "4", "matrix": [0, 4], "x": 4, "y": 0},
+ {"label": "5", "matrix": [0, 5], "x": 5, "y": 0},
+ {"label": "6", "matrix": [0, 6], "x": 6, "y": 0},
+ {"label": "7", "matrix": [0, 7], "x": 7, "y": 0},
+ {"label": "8", "matrix": [0, 8], "x": 8, "y": 0},
+ {"label": "9", "matrix": [0, 9], "x": 9, "y": 0},
+ {"label": "0", "matrix": [0, 10], "x": 10, "y": 0},
+ {"label": "-", "matrix": [0, 11], "x": 11, "y": 0},
+ {"label": "Backspace", "matrix": [0, 12], "x": 12, "y": 0},
+ {"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1},
+ {"label": "q", "matrix": [1, 1], "x": 1, "y": 1},
+ {"label": "w", "matrix": [1, 2], "x": 2, "y": 1},
+ {"label": "e", "matrix": [1, 3], "x": 3, "y": 1},
+ {"label": "r", "matrix": [1, 4], "x": 4, "y": 1},
+ {"label": "t", "matrix": [1, 5], "x": 5, "y": 1},
+ {"label": "y", "matrix": [1, 6], "x": 6, "y": 1},
+ {"label": "u", "matrix": [1, 7], "x": 7, "y": 1},
+ {"label": "i", "matrix": [1, 8], "x": 8, "y": 1},
+ {"label": "o", "matrix": [1, 9], "x": 9, "y": 1},
+ {"label": "p", "matrix": [1, 10], "x": 10, "y": 1},
+ {"label": "[", "matrix": [1, 11], "x": 11, "y": 1},
+ {"label": "]", "matrix": [1, 12], "x": 12, "y": 1},
+ {"label": "#", "matrix": [2, 0], "x": 0, "y": 2},
+ {"label": "a", "matrix": [2, 1], "x": 1, "y": 2},
+ {"label": "s", "matrix": [2, 2], "x": 2, "y": 2},
+ {"label": "d", "matrix": [2, 3], "x": 3, "y": 2},
+ {"label": "f", "matrix": [2, 4], "x": 4, "y": 2},
+ {"label": "g", "matrix": [2, 5], "x": 5, "y": 2},
+ {"label": "h", "matrix": [2, 6], "x": 6, "y": 2},
+ {"label": "j", "matrix": [2, 7], "x": 7, "y": 2},
+ {"label": "k", "matrix": [2, 8], "x": 8, "y": 2},
+ {"label": "l", "matrix": [2, 9], "x": 9, "y": 2},
+ {"label": ";", "matrix": [2, 10], "x": 10, "y": 2},
+ {"label": "'", "matrix": [2, 11], "x": 11, "y": 2},
+ {"label": "Enter", "matrix": [2, 12], "x": 12, "y": 2},
+ {"label": "Left Shift", "matrix": [3, 0], "x": 0, "y": 3},
+ {"label": "\\", "matrix": [3, 1], "x": 1, "y": 3},
+ {"label": "z", "matrix": [3, 2], "x": 2, "y": 3},
+ {"label": "x", "matrix": [3, 3], "x": 3, "y": 3},
+ {"label": "c", "matrix": [3, 4], "x": 4, "y": 3},
+ {"label": "v", "matrix": [3, 5], "x": 5, "y": 3},
+ {"label": "b", "matrix": [3, 6], "x": 6, "y": 3},
+ {"label": "n", "matrix": [3, 7], "x": 7, "y": 3},
+ {"label": "m", "matrix": [3, 8], "x": 8, "y": 3},
+ {"label": ",", "matrix": [3, 9], "x": 9, "y": 3},
+ {"label": ".", "matrix": [3, 10], "x": 10, "y": 3},
+ {"label": "Up", "matrix": [3, 11], "x": 11, "y": 3},
+ {"label": "/", "matrix": [3, 12], "x": 12, "y": 3},
+ {"label": "Ctrl", "matrix": [4, 0], "x": 0, "y": 4},
+ {"label": "Menu", "matrix": [4, 1], "x": 1, "y": 4},
+ {"label": "Lower", "matrix": [4, 2], "x": 2, "y": 4},
+ {"label": "Alt", "matrix": [4, 3], "x": 3, "y": 4},
+ {"label": "Raise", "matrix": [4, 4], "x": 4, "y": 4},
+ {"label": "Space", "matrix": [4, 5], "x": 5, "y": 4},
+ {"label": "Space", "matrix": [4, 6], "x": 6, "y": 4},
+ {"label": "Space", "matrix": [4, 7], "x": 7, "y": 4},
+ {"label": "Alt Gr", "matrix": [4, 8], "x": 8, "y": 4},
+ {"label": "Right Shift", "matrix": [4, 9], "x": 9, "y": 4},
+ {"label": "Left", "matrix": [4, 10], "x": 10, "y": 4},
+ {"label": "Down", "matrix": [4, 11], "x": 11, "y": 4},
+ {"label": "Right", "matrix": [4, 12], "x": 12, "y": 4}
+ ]
+ }
+ }
}
diff --git a/keyboards/mlego/m65/rev1/mcuconf.h b/keyboards/mlego/m65/rev1/mcuconf.h
index 6ba4f72b40..a8e4fbb319 100644
--- a/keyboards/mlego/m65/rev1/mcuconf.h
+++ b/keyboards/mlego/m65/rev1/mcuconf.h
@@ -1,23 +1,5 @@
-/* Copyright 2021-2022 QMK
- *
- * 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/>.
- */
-
-/*
- * This file was auto-generated by:
- * `qmk chibios-confmigrate -i keyboards/m65/rev1/mcuconf.h -r platforms/chibios/STM32_F103_STM32DUINO/configs/mcuconf.h`
- */
+// Copyright 2020-2022 alin m elena (@alinelena)
+// SPDX-License-Identifier: GPL-2.0-or-later
#pragma once
diff --git a/keyboards/mlego/m65/rev1/rules.mk b/keyboards/mlego/m65/rev1/rules.mk
index fa351eadba..48c755b14e 100644
--- a/keyboards/mlego/m65/rev1/rules.mk
+++ b/keyboards/mlego/m65/rev1/rules.mk
@@ -1,13 +1 @@
-# Build Options
-# change yes to no to disable
-#
-BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite
-MOUSEKEY_ENABLE = yes # Mouse keys
-EXTRAKEY_ENABLE = yes # Audio control and System control
-CONSOLE_ENABLE = no # Console for debug
-COMMAND_ENABLE = no # Commands for debug and configuration
-NKRO_ENABLE = yes # Enable N-Key Rollover
-BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
-RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
-AUDIO_ENABLE = no # Audio output
-ENCODER_ENABLE = yes # Enable encoder
+#intentionally blanck
diff --git a/keyboards/mlego/m65/rev2/board.h b/keyboards/mlego/m65/rev2/board.h
index e0d0865776..15ec270599 100644
--- a/keyboards/mlego/m65/rev2/board.h
+++ b/keyboards/mlego/m65/rev2/board.h
@@ -1,18 +1,5 @@
-/* Copyright 2021-2022 Alin M Elena <alinm.elena@gmail.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/>.
-*/
+// Copyright 2020-2022 alin m elena (@alinelena)
+// SPDX-License-Identifier: GPL-2.0-or-later
#pragma once
#include_next <board.h>
diff --git a/keyboards/mlego/m65/rev2/config.h b/keyboards/mlego/m65/rev2/config.h
index 666d296ede..32f7b4eca3 100644
--- a/keyboards/mlego/m65/rev2/config.h
+++ b/keyboards/mlego/m65/rev2/config.h
@@ -1,23 +1,10 @@
-/*
-Copyright 2021-2022 Alin M Elena <alinm.elena@gmail.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/>.
-*/
+// Copyright 2020-2023 alin m elena (@alinelena)
+// SPDX-License-Identifier: GPL-2.0-or-later
#pragma once
-#define RGBLIGHT_LAYERS
+#define LED_RSE_PIN B13
+#define LED_LWR_PIN B12
#define EEPROM_PAGE_SIZE
#define FEE_PAGE_SIZE 0x800
diff --git a/keyboards/mlego/m65/rev2/info.json b/keyboards/mlego/m65/rev2/info.json
index 8d822ae4e7..e8575e23e8 100644
--- a/keyboards/mlego/m65/rev2/info.json
+++ b/keyboards/mlego/m65/rev2/info.json
@@ -1,42 +1,133 @@
{
- "usb": {
- "pid": "0x6061",
- "device_version": "0.0.2"
- },
- "matrix_pins": {
- "cols": ["A10", "A15", "B3", "B4", "B5", "B9", "B8", "B7", "B6", "C15", "A0", "A7", "B10"],
- "rows": ["B11", "B0", "B1", "A2", "A3"]
- },
+ "manufacturer": "Alin Elena",
+ "keyboard_name": "mlego/m65 rev2",
+ "maintainer": "alin elena",
+ "bootloader": "stm32duino",
"diode_direction": "COL2ROW",
"encoder": {
"rotary": [
{"pin_a": "A8", "pin_b": "A9"}
]
},
+ "features": {
+ "audio": false,
+ "backlight": false,
+ "bootmagic": true,
+ "command": true,
+ "console": false,
+ "encoder": true,
+ "extrakey": true,
+ "mousekey": true,
+ "nkro": true,
+ "rgblight": true
+ },
"indicators": {
"caps_lock": "B2",
- "num_lock": "B12",
- "scroll_lock": "B13"
+ "on_state": 0
},
+ "matrix_pins": {
+ "cols": ["A10", "A15", "B3", "B4", "B5", "B9", "B8", "B7", "B6", "C15", "A0", "A7", "B10"],
+ "rows": ["B11", "B0", "B1", "A2", "A3"]
+ },
+ "processor": "STM32F103",
"rgblight": {
- "saturation_steps": 8,
- "led_count": 20,
"animations": {
+ "alternating": true,
"breathing": true,
+ "christmas": true,
+ "knight": true,
"rainbow_mood": true,
"rainbow_swirl": true,
+ "rgb_test": true,
"snake": true,
- "knight": true,
- "christmas": true,
"static_gradient": true,
- "rgb_test": true,
- "alternating": true,
"twinkle": true
- }
+ },
+ "hue_steps": 8,
+ "layers": {
+ "enabled": true
+ },
+ "led_count": 20,
+ "saturation_steps": 8
+ },
+ "url": "https://gitlab.com/m-lego/m65",
+ "usb": {
+ "device_version": "0.0.2",
+ "pid": "0x6061",
+ "vid": "0xBABA"
},
"ws2812": {
"pin": "B15"
},
- "processor": "STM32F103", // GD32F303CCT6
- "bootloader": "stm32duino"
+ "layouts": {
+ "LAYOUT_ortho_5x13": {
+ "layout": [
+ {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0},
+ {"label": "1", "matrix": [0, 1], "x": 1, "y": 0},
+ {"label": "2", "matrix": [0, 2], "x": 2, "y": 0},
+ {"label": "3", "matrix": [0, 3], "x": 3, "y": 0},
+ {"label": "4", "matrix": [0, 4], "x": 4, "y": 0},
+ {"label": "5", "matrix": [0, 5], "x": 5, "y": 0},
+ {"label": "6", "matrix": [0, 6], "x": 6, "y": 0},
+ {"label": "7", "matrix": [0, 7], "x": 7, "y": 0},
+ {"label": "8", "matrix": [0, 8], "x": 8, "y": 0},
+ {"label": "9", "matrix": [0, 9], "x": 9, "y": 0},
+ {"label": "0", "matrix": [0, 10], "x": 10, "y": 0},
+ {"label": "-", "matrix": [0, 11], "x": 11, "y": 0},
+ {"label": "Backspace", "matrix": [0, 12], "x": 12, "y": 0},
+ {"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1},
+ {"label": "q", "matrix": [1, 1], "x": 1, "y": 1},
+ {"label": "w", "matrix": [1, 2], "x": 2, "y": 1},
+ {"label": "e", "matrix": [1, 3], "x": 3, "y": 1},
+ {"label": "r", "matrix": [1, 4], "x": 4, "y": 1},
+ {"label": "t", "matrix": [1, 5], "x": 5, "y": 1},
+ {"label": "y", "matrix": [1, 6], "x": 6, "y": 1},
+ {"label": "u", "matrix": [1, 7], "x": 7, "y": 1},
+ {"label": "i", "matrix": [1, 8], "x": 8, "y": 1},
+ {"label": "o", "matrix": [1, 9], "x": 9, "y": 1},
+ {"label": "p", "matrix": [1, 10], "x": 10, "y": 1},
+ {"label": "[", "matrix": [1, 11], "x": 11, "y": 1},
+ {"label": "]", "matrix": [1, 12], "x": 12, "y": 1},
+ {"label": "#", "matrix": [2, 0], "x": 0, "y": 2},
+ {"label": "a", "matrix": [2, 1], "x": 1, "y": 2},
+ {"label": "s", "matrix": [2, 2], "x": 2, "y": 2},
+ {"label": "d", "matrix": [2, 3], "x": 3, "y": 2},
+ {"label": "f", "matrix": [2, 4], "x": 4, "y": 2},
+ {"label": "g", "matrix": [2, 5], "x": 5, "y": 2},
+ {"label": "h", "matrix": [2, 6], "x": 6, "y": 2},
+ {"label": "j", "matrix": [2, 7], "x": 7, "y": 2},
+ {"label": "k", "matrix": [2, 8], "x": 8, "y": 2},
+ {"label": "l", "matrix": [2, 9], "x": 9, "y": 2},
+ {"label": ";", "matrix": [2, 10], "x": 10, "y": 2},
+ {"label": "'", "matrix": [2, 11], "x": 11, "y": 2},
+ {"label": "Enter", "matrix": [2, 12], "x": 12, "y": 2},
+ {"label": "Left Shift", "matrix": [3, 0], "x": 0, "y": 3},
+ {"label": "\\", "matrix": [3, 1], "x": 1, "y": 3},
+ {"label": "z", "matrix": [3, 2], "x": 2, "y": 3},
+ {"label": "x", "matrix": [3, 3], "x": 3, "y": 3},
+ {"label": "c", "matrix": [3, 4], "x": 4, "y": 3},
+ {"label": "v", "matrix": [3, 5], "x": 5, "y": 3},
+ {"label": "b", "matrix": [3, 6], "x": 6, "y": 3},
+ {"label": "n", "matrix": [3, 7], "x": 7, "y": 3},
+ {"label": "m", "matrix": [3, 8], "x": 8, "y": 3},
+ {"label": ",", "matrix": [3, 9], "x": 9, "y": 3},
+ {"label": ".", "matrix": [3, 10], "x": 10, "y": 3},
+ {"label": "Up", "matrix": [3, 11], "x": 11, "y": 3},
+ {"label": "/", "matrix": [3, 12], "x": 12, "y": 3},
+ {"label": "Ctrl", "matrix": [4, 0], "x": 0, "y": 4},
+ {"label": "Menu", "matrix": [4, 1], "x": 1, "y": 4},
+ {"label": "Lower", "matrix": [4, 2], "x": 2, "y": 4},
+ {"label": "Alt", "matrix": [4, 3], "x": 3, "y": 4},
+ {"label": "Raise", "matrix": [4, 4], "x": 4, "y": 4},
+ {"label": "Space", "matrix": [4, 5], "x": 5, "y": 4},
+ {"label": "Space", "matrix": [4, 6], "x": 6, "y": 4},
+ {"label": "Space", "matrix": [4, 7], "x": 7, "y": 4},
+ {"label": "Alt Gr", "matrix": [4, 8], "x": 8, "y": 4},
+ {"label": "Right Shift", "matrix": [4, 9], "x": 9, "y": 4},
+ {"label": "Left", "matrix": [4, 10], "x": 10, "y": 4},
+ {"label": "Down", "matrix": [4, 11], "x": 11, "y": 4},
+ {"label": "Right", "matrix": [4, 12], "x": 12, "y": 4}
+ ]
+ }
+ }
}
diff --git a/keyboards/mlego/m65/rev2/mcuconf.h b/keyboards/mlego/m65/rev2/mcuconf.h
index 6ba4f72b40..a8e4fbb319 100644
--- a/keyboards/mlego/m65/rev2/mcuconf.h
+++ b/keyboards/mlego/m65/rev2/mcuconf.h
@@ -1,23 +1,5 @@
-/* Copyright 2021-2022 QMK
- *
- * 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/>.
- */
-
-/*
- * This file was auto-generated by:
- * `qmk chibios-confmigrate -i keyboards/m65/rev1/mcuconf.h -r platforms/chibios/STM32_F103_STM32DUINO/configs/mcuconf.h`
- */
+// Copyright 2020-2022 alin m elena (@alinelena)
+// SPDX-License-Identifier: GPL-2.0-or-later
#pragma once
diff --git a/keyboards/mlego/m65/rev2/rules.mk b/keyboards/mlego/m65/rev2/rules.mk
index 51070f9718..9a795b953e 100644
--- a/keyboards/mlego/m65/rev2/rules.mk
+++ b/keyboards/mlego/m65/rev2/rules.mk
@@ -1,13 +1 @@
-# Build Options
-# change yes to no to disable
-#
-BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite
-MOUSEKEY_ENABLE = yes # Mouse keys
-EXTRAKEY_ENABLE = yes # Audio control and System control
-CONSOLE_ENABLE = yes # Console for debug
-COMMAND_ENABLE = yes # Commands for debug and configuration
-NKRO_ENABLE = yes # Enable N-Key Rollover
-BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
-RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
-AUDIO_ENABLE = no # Audio output
-ENCODER_ENABLE = yes # Enable encoder
+#blank purpose
diff --git a/keyboards/mlego/m65/rev3/config.h b/keyboards/mlego/m65/rev3/config.h
index 847dd11823..1b351c540a 100644
--- a/keyboards/mlego/m65/rev3/config.h
+++ b/keyboards/mlego/m65/rev3/config.h
@@ -1,20 +1,7 @@
-/*
-Copyright 2021-2022 Alin M Elena <alinm.elena@gmail.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/>.
-*/
+// Copyright 2021-2023 alin m elena (@alinelena)
+// SPDX-License-Identifier: GPL-2.0-or-later
#pragma once
-#define RGBLIGHT_LAYERS
+#define LED_RSE_PIN B13
+#define LED_LWR_PIN B12
diff --git a/keyboards/mlego/m65/rev3/halconf.h b/keyboards/mlego/m65/rev3/halconf.h
index 89815e23b7..decadcb011 100644
--- a/keyboards/mlego/m65/rev3/halconf.h
+++ b/keyboards/mlego/m65/rev3/halconf.h
@@ -1,23 +1,5 @@
-/* Copyright 2020 QMK
- *
- * 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/>.
- */
-
-/*
- * This file was auto-generated by:
- * `qmk chibios-confmigrate -i keyboards/zvecr/zv48/f401/halconf.h -r platforms/chibios/common/configs/halconf.h`
- */
+// Copyright 2020-2022 alin m elena (@alinelena)
+// SPDX-License-Identifier: GPL-2.0-or-later
#pragma once
diff --git a/keyboards/mlego/m65/rev3/info.json b/keyboards/mlego/m65/rev3/info.json
index 4f9b866565..d48d52d9d9 100644
--- a/keyboards/mlego/m65/rev3/info.json
+++ b/keyboards/mlego/m65/rev3/info.json
@@ -1,43 +1,134 @@
{
- "usb": {
- "pid": "0x6062",
- "device_version": "0.0.1"
- },
- "matrix_pins": {
- "cols": ["A10", "A15", "B3", "B4", "B5", "B9", "B8", "B7", "A1", "A2", "A3", "A4", "B1"],
- "rows": ["B10", "A5", "A6", "A7", "B0"]
- },
+ "manufacturer": "Alin Elena",
+ "keyboard_name": "mlego/m65 rev3",
+ "maintainer": "alin elena",
+ "board": "BLACKPILL_STM32_F401",
+ "bootloader": "tinyuf2",
"diode_direction": "COL2ROW",
"encoder": {
"rotary": [
{"pin_a": "A0", "pin_b": "B6"}
]
},
+ "features": {
+ "audio": false,
+ "backlight": false,
+ "bootmagic": true,
+ "command": false,
+ "console": false,
+ "encoder": true,
+ "extrakey": true,
+ "mousekey": true,
+ "nkro": true,
+ "rgblight": true
+ },
"indicators": {
"caps_lock": "C13",
- "num_lock": "B12",
- "scroll_lock": "B13"
+ "on_state": 0
+ },
+ "matrix_pins": {
+ "cols": ["A10", "A15", "B3", "B4", "B5", "B9", "B8", "B7", "A1", "A2", "A3", "A4", "B1"],
+ "rows": ["B10", "A5", "A6", "A7", "B0"]
},
+ "processor": "STM32F401",
"rgblight": {
- "saturation_steps": 8,
- "led_count": 20,
"animations": {
+ "alternating": true,
"breathing": true,
+ "christmas": true,
+ "knight": true,
"rainbow_mood": true,
"rainbow_swirl": true,
+ "rgb_test": true,
"snake": true,
- "knight": true,
- "christmas": true,
"static_gradient": true,
- "rgb_test": true,
- "alternating": true,
"twinkle": true
- }
+ },
+ "hue_steps": 8,
+ "layers": {
+ "enabled": true
+ },
+ "led_count": 20,
+ "saturation_steps": 8
+ },
+ "url": "https://gitlab.com/m-lego/m65",
+ "usb": {
+ "device_version": "0.0.1",
+ "pid": "0x6062",
+ "vid": "0xBABA"
},
"ws2812": {
"pin": "B15"
},
- "processor": "STM32F401",
- "bootloader": "tinyuf2",
- "board": "BLACKPILL_STM32_F401"
+ "layouts": {
+ "LAYOUT_ortho_5x13": {
+ "layout": [
+ {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0},
+ {"label": "1", "matrix": [0, 1], "x": 1, "y": 0},
+ {"label": "2", "matrix": [0, 2], "x": 2, "y": 0},
+ {"label": "3", "matrix": [0, 3], "x": 3, "y": 0},
+ {"label": "4", "matrix": [0, 4], "x": 4, "y": 0},
+ {"label": "5", "matrix": [0, 5], "x": 5, "y": 0},
+ {"label": "6", "matrix": [0, 6], "x": 6, "y": 0},
+ {"label": "7", "matrix": [0, 7], "x": 7, "y": 0},
+ {"label": "8", "matrix": [0, 8], "x": 8, "y": 0},
+ {"label": "9", "matrix": [0, 9], "x": 9, "y": 0},
+ {"label": "0", "matrix": [0, 10], "x": 10, "y": 0},
+ {"label": "-", "matrix": [0, 11], "x": 11, "y": 0},
+ {"label": "Backspace", "matrix": [0, 12], "x": 12, "y": 0},
+ {"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1},
+ {"label": "q", "matrix": [1, 1], "x": 1, "y": 1},
+ {"label": "w", "matrix": [1, 2], "x": 2, "y": 1},
+ {"label": "e", "matrix": [1, 3], "x": 3, "y": 1},
+ {"label": "r", "matrix": [1, 4], "x": 4, "y": 1},
+ {"label": "t", "matrix": [1, 5], "x": 5, "y": 1},
+ {"label": "y", "matrix": [1, 6], "x": 6, "y": 1},
+ {"label": "u", "matrix": [1, 7], "x": 7, "y": 1},
+ {"label": "i", "matrix": [1, 8], "x": 8, "y": 1},
+ {"label": "o", "matrix": [1, 9], "x": 9, "y": 1},
+ {"label": "p", "matrix": [1, 10], "x": 10, "y": 1},
+ {"label": "[", "matrix": [1, 11], "x": 11, "y": 1},
+ {"label": "]", "matrix": [1, 12], "x": 12, "y": 1},
+ {"label": "#", "matrix": [2, 0], "x": 0, "y": 2},
+ {"label": "a", "matrix": [2, 1], "x": 1, "y": 2},
+ {"label": "s", "matrix": [2, 2], "x": 2, "y": 2},
+ {"label": "d", "matrix": [2, 3], "x": 3, "y": 2},
+ {"label": "f", "matrix": [2, 4], "x": 4, "y": 2},
+ {"label": "g", "matrix": [2, 5], "x": 5, "y": 2},
+ {"label": "h", "matrix": [2, 6], "x": 6, "y": 2},
+ {"label": "j", "matrix": [2, 7], "x": 7, "y": 2},
+ {"label": "k", "matrix": [2, 8], "x": 8, "y": 2},
+ {"label": "l", "matrix": [2, 9], "x": 9, "y": 2},
+ {"label": ";", "matrix": [2, 10], "x": 10, "y": 2},
+ {"label": "'", "matrix": [2, 11], "x": 11, "y": 2},
+ {"label": "Enter", "matrix": [2, 12], "x": 12, "y": 2},
+ {"label": "Left Shift", "matrix": [3, 0], "x": 0, "y": 3},
+ {"label": "\\", "matrix": [3, 1], "x": 1, "y": 3},
+ {"label": "z", "matrix": [3, 2], "x": 2, "y": 3},
+ {"label": "x", "matrix": [3, 3], "x": 3, "y": 3},
+ {"label": "c", "matrix": [3, 4], "x": 4, "y": 3},
+ {"label": "v", "matrix": [3, 5], "x": 5, "y": 3},
+ {"label": "b", "matrix": [3, 6], "x": 6, "y": 3},
+ {"label": "n", "matrix": [3, 7], "x": 7, "y": 3},
+ {"label": "m", "matrix": [3, 8], "x": 8, "y": 3},
+ {"label": ",", "matrix": [3, 9], "x": 9, "y": 3},
+ {"label": ".", "matrix": [3, 10], "x": 10, "y": 3},
+ {"label": "Up", "matrix": [3, 11], "x": 11, "y": 3},
+ {"label": "/", "matrix": [3, 12], "x": 12, "y": 3},
+ {"label": "Ctrl", "matrix": [4, 0], "x": 0, "y": 4},
+ {"label": "Menu", "matrix": [4, 1], "x": 1, "y": 4},
+ {"label": "Lower", "matrix": [4, 2], "x": 2, "y": 4},
+ {"label": "Alt", "matrix": [4, 3], "x": 3, "y": 4},
+ {"label": "Raise", "matrix": [4, 4], "x": 4, "y": 4},
+ {"label": "Space", "matrix": [4, 5], "x": 5, "y": 4},
+ {"label": "Space", "matrix": [4, 6], "x": 6, "y": 4},
+ {"label": "Space", "matrix": [4, 7], "x": 7, "y": 4},
+ {"label": "Alt Gr", "matrix": [4, 8], "x": 8, "y": 4},
+ {"label": "Right Shift", "matrix": [4, 9], "x": 9, "y": 4},
+ {"label": "Left", "matrix": [4, 10], "x": 10, "y": 4},
+ {"label": "Down", "matrix": [4, 11], "x": 11, "y": 4},
+ {"label": "Right", "matrix": [4, 12], "x": 12, "y": 4}
+ ]
+ }
+ }
}
diff --git a/keyboards/mlego/m65/rev3/mcuconf.h b/keyboards/mlego/m65/rev3/mcuconf.h
index 4d90ec07ea..05c6656170 100644
--- a/keyboards/mlego/m65/rev3/mcuconf.h
+++ b/keyboards/mlego/m65/rev3/mcuconf.h
@@ -1,23 +1,5 @@
-/* Copyright 2020 QMK
- *
- * 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/>.
- */
-
-/*
- * This file was auto-generated by:
- * `qmk chibios-confmigrate -i keyboards/zvecr/zv48/f401/mcuconf.h -r platforms/chibios/BLACKPILL_STM32_F401/configs/mcuconf.h`
- */
+// Copyright 2020-2022 alin m elena (@alinelena)
+// SPDX-License-Identifier: GPL-2.0-or-later
#pragma once
diff --git a/keyboards/mlego/m65/rev3/rules.mk b/keyboards/mlego/m65/rev3/rules.mk
index fa351eadba..8b4c953989 100644
--- a/keyboards/mlego/m65/rev3/rules.mk
+++ b/keyboards/mlego/m65/rev3/rules.mk
@@ -1,13 +1 @@
-# Build Options
-# change yes to no to disable
-#
-BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite
-MOUSEKEY_ENABLE = yes # Mouse keys
-EXTRAKEY_ENABLE = yes # Audio control and System control
-CONSOLE_ENABLE = no # Console for debug
-COMMAND_ENABLE = no # Commands for debug and configuration
-NKRO_ENABLE = yes # Enable N-Key Rollover
-BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
-RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
-AUDIO_ENABLE = no # Audio output
-ENCODER_ENABLE = yes # Enable encoder
+#blank on purpose
diff --git a/keyboards/mlego/m65/rev4/config.h b/keyboards/mlego/m65/rev4/config.h
index d0475aabaf..181ebc565a 100644
--- a/keyboards/mlego/m65/rev4/config.h
+++ b/keyboards/mlego/m65/rev4/config.h
@@ -1,28 +1,14 @@
-/*
-Copyright 2021-2022 Alin M Elena <alinm.elena@gmail.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/>.
-*/
+// Copyright 2021-2023 alin m elena (@alinelena)
+// SPDX-License-Identifier: GPL-2.0-or-later
#pragma once
-#define RGBLIGHT_LAYERS
+#define LED_RSE_PIN B13
+#define LED_LWR_PIN B12
#ifdef OLED_ENABLE
-# define OLED_DISPLAY_128X32
-#define I2C1_SCL_PIN B9
-#define I2C1_SDA_PIN B8
-#define OLED_BRIGHTNESS 128
-#define OLED_FONT_H "keyboards/mlego/m65/lib/glcdfont.c"
+# define I2C1_SCL_PIN B9
+# define I2C1_SDA_PIN B8
+# define OLED_BRIGHTNESS 128
+# define OLED_FONT_H "keyboards/mlego/m65/lib/glcdfont.c"
#endif
diff --git a/keyboards/mlego/m65/rev4/halconf.h b/keyboards/mlego/m65/rev4/halconf.h
index c1a060ad71..99f8ae4bf1 100644
--- a/keyboards/mlego/m65/rev4/halconf.h
+++ b/keyboards/mlego/m65/rev4/halconf.h
@@ -1,23 +1,5 @@
-/* Copyright 2020 QMK
- *
- * 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/>.
- */
-
-/*
- * This file was auto-generated by:
- * `qmk chibios-confmigrate -i keyboards/zvecr/zv48/f401/halconf.h -r platforms/chibios/common/configs/halconf.h`
- */
+// Copyright 2021-2022 alin m elena (@alinelena)
+// SPDX-License-Identifier: GPL-2.0-or-later
#pragma once
diff --git a/keyboards/mlego/m65/rev4/info.json b/keyboards/mlego/m65/rev4/info.json
index a97c734ff8..56fed15317 100644
--- a/keyboards/mlego/m65/rev4/info.json
+++ b/keyboards/mlego/m65/rev4/info.json
@@ -1,43 +1,136 @@
{
- "usb": {
- "pid": "0x6062",
- "device_version": "0.0.2"
- },
- "matrix_pins": {
- "cols": ["B14", "A8", "A10", "A15", "B3", "B4", "B5", "B7", "A1", "A2", "A3", "A4", "B1"],
- "rows": ["B10", "A5", "A6", "A7", "B0"]
- },
+ "manufacturer": "Alin Elena",
+ "keyboard_name": "mlego/m65 rev4",
+ "maintainer": "alin elena",
+ "board": "BLACKPILL_STM32_F401",
+ "bootloader": "tinyuf2",
"diode_direction": "COL2ROW",
"encoder": {
"rotary": [
{"pin_a": "A0", "pin_b": "B6"}
]
},
+ "features": {
+ "audio": false,
+ "backlight": false,
+ "bootmagic": true,
+ "command": false,
+ "console": true,
+ "encoder": true,
+ "extrakey": true,
+ "mousekey": true,
+ "nkro": true,
+ "oled": true,
+ "rgblight": true,
+ "wpm": true
+ },
"indicators": {
"caps_lock": "C13",
- "num_lock": "B12",
- "scroll_lock": "B13"
+ "on_state": 0
+ },
+ "matrix_pins": {
+ "cols": ["B14", "A8", "A10", "A15", "B3", "B4", "B5", "B7", "A1", "A2", "A3", "A4", "B1"],
+ "rows": ["B10", "A5", "A6", "A7", "B0"]
},
+ "processor": "STM32F401",
"rgblight": {
- "saturation_steps": 8,
- "led_count": 20,
"animations": {
+ "alternating": true,
"breathing": true,
+ "christmas": true,
+ "knight": true,
"rainbow_mood": true,
"rainbow_swirl": true,
+ "rgb_test": true,
"snake": true,
- "knight": true,
- "christmas": true,
"static_gradient": true,
- "rgb_test": true,
- "alternating": true,
"twinkle": true
- }
+ },
+ "hue_steps": 8,
+ "layers": {
+ "enabled": true
+ },
+ "led_count": 20,
+ "saturation_steps": 8
+ },
+ "url": "https://gitlab.com/m-lego/m65",
+ "usb": {
+ "device_version": "0.0.2",
+ "pid": "0x6062",
+ "vid": "0xBABA"
},
"ws2812": {
"pin": "B15"
},
- "processor": "STM32F401",
- "bootloader": "tinyuf2",
- "board": "BLACKPILL_STM32_F401"
+ "layouts": {
+ "LAYOUT_ortho_5x13": {
+ "layout": [
+ {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0},
+ {"label": "1", "matrix": [0, 1], "x": 1, "y": 0},
+ {"label": "2", "matrix": [0, 2], "x": 2, "y": 0},
+ {"label": "3", "matrix": [0, 3], "x": 3, "y": 0},
+ {"label": "4", "matrix": [0, 4], "x": 4, "y": 0},
+ {"label": "5", "matrix": [0, 5], "x": 5, "y": 0},
+ {"label": "6", "matrix": [0, 6], "x": 6, "y": 0},
+ {"label": "7", "matrix": [0, 7], "x": 7, "y": 0},
+ {"label": "8", "matrix": [0, 8], "x": 8, "y": 0},
+ {"label": "9", "matrix": [0, 9], "x": 9, "y": 0},
+ {"label": "0", "matrix": [0, 10], "x": 10, "y": 0},
+ {"label": "-", "matrix": [0, 11], "x": 11, "y": 0},
+ {"label": "Backspace", "matrix": [0, 12], "x": 12, "y": 0},
+ {"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1},
+ {"label": "q", "matrix": [1, 1], "x": 1, "y": 1},
+ {"label": "w", "matrix": [1, 2], "x": 2, "y": 1},
+ {"label": "e", "matrix": [1, 3], "x": 3, "y": 1},
+ {"label": "r", "matrix": [1, 4], "x": 4, "y": 1},
+ {"label": "t", "matrix": [1, 5], "x": 5, "y": 1},
+ {"label": "y", "matrix": [1, 6], "x": 6, "y": 1},
+ {"label": "u", "matrix": [1, 7], "x": 7, "y": 1},
+ {"label": "i", "matrix": [1, 8], "x": 8, "y": 1},
+ {"label": "o", "matrix": [1, 9], "x": 9, "y": 1},
+ {"label": "p", "matrix": [1, 10], "x": 10, "y": 1},
+ {"label": "[", "matrix": [1, 11], "x": 11, "y": 1},
+ {"label": "]", "matrix": [1, 12], "x": 12, "y": 1},
+ {"label": "#", "matrix": [2, 0], "x": 0, "y": 2},
+ {"label": "a", "matrix": [2, 1], "x": 1, "y": 2},
+ {"label": "s", "matrix": [2, 2], "x": 2, "y": 2},
+ {"label": "d", "matrix": [2, 3], "x": 3, "y": 2},
+ {"label": "f", "matrix": [2, 4], "x": 4, "y": 2},
+ {"label": "g", "matrix": [2, 5], "x": 5, "y": 2},
+ {"label": "h", "matrix": [2, 6], "x": 6, "y": 2},
+ {"label": "j", "matrix": [2, 7], "x": 7, "y": 2},
+ {"label": "k", "matrix": [2, 8], "x": 8, "y": 2},
+ {"label": "l", "matrix": [2, 9], "x": 9, "y": 2},
+ {"label": ";", "matrix": [2, 10], "x": 10, "y": 2},
+ {"label": "'", "matrix": [2, 11], "x": 11, "y": 2},
+ {"label": "Enter", "matrix": [2, 12], "x": 12, "y": 2},
+ {"label": "Left Shift", "matrix": [3, 0], "x": 0, "y": 3},
+ {"label": "\\", "matrix": [3, 1], "x": 1, "y": 3},
+ {"label": "z", "matrix": [3, 2], "x": 2, "y": 3},
+ {"label": "x", "matrix": [3, 3], "x": 3, "y": 3},
+ {"label": "c", "matrix": [3, 4], "x": 4, "y": 3},
+ {"label": "v", "matrix": [3, 5], "x": 5, "y": 3},
+ {"label": "b", "matrix": [3, 6], "x": 6, "y": 3},
+ {"label": "n", "matrix": [3, 7], "x": 7, "y": 3},
+ {"label": "m", "matrix": [3, 8], "x": 8, "y": 3},
+ {"label": ",", "matrix": [3, 9], "x": 9, "y": 3},
+ {"label": ".", "matrix": [3, 10], "x": 10, "y": 3},
+ {"label": "Up", "matrix": [3, 11], "x": 11, "y": 3},
+ {"label": "/", "matrix": [3, 12], "x": 12, "y": 3},
+ {"label": "Ctrl", "matrix": [4, 0], "x": 0, "y": 4},
+ {"label": "Menu", "matrix": [4, 1], "x": 1, "y": 4},
+ {"label": "Lower", "matrix": [4, 2], "x": 2, "y": 4},
+ {"label": "Alt", "matrix": [4, 3], "x": 3, "y": 4},
+ {"label": "Raise", "matrix": [4, 4], "x": 4, "y": 4},
+ {"label": "Space", "matrix": [4, 5], "x": 5, "y": 4},
+ {"label": "Space", "matrix": [4, 6], "x": 6, "y": 4},
+ {"label": "Space", "matrix": [4, 7], "x": 7, "y": 4},
+ {"label": "Alt Gr", "matrix": [4, 8], "x": 8, "y": 4},
+ {"label": "Right Shift", "matrix": [4, 9], "x": 9, "y": 4},
+ {"label": "Left", "matrix": [4, 10], "x": 10, "y": 4},
+ {"label": "Down", "matrix": [4, 11], "x": 11, "y": 4},
+ {"label": "Right", "matrix": [4, 12], "x": 12, "y": 4}
+ ]
+ }
+ }
}
diff --git a/keyboards/mlego/m65/rev4/mcuconf.h b/keyboards/mlego/m65/rev4/mcuconf.h
index ba1cd32fd3..abae5f94bd 100644
--- a/keyboards/mlego/m65/rev4/mcuconf.h
+++ b/keyboards/mlego/m65/rev4/mcuconf.h
@@ -1,23 +1,5 @@
-/* Copyright 2020 QMK
- *
- * 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/>.
- */
-
-/*
- * This file was auto-generated by:
- * `qmk chibios-confmigrate -i keyboards/zvecr/zv48/f401/mcuconf.h -r platforms/chibios/BLACKPILL_STM32_F401/configs/mcuconf.h`
- */
+// Copyright 2021-2022 alin m elena (@alinelena)
+// SPDX-License-Identifier: GPL-2.0-or-later
#pragma once
diff --git a/keyboards/mlego/m65/rev4/rules.mk b/keyboards/mlego/m65/rev4/rules.mk
index 3e44c80fe0..e69de29bb2 100644
--- a/keyboards/mlego/m65/rev4/rules.mk
+++ b/keyboards/mlego/m65/rev4/rules.mk
@@ -1,15 +0,0 @@
-# Build Options
-# change yes to no to disable
-#
-BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite
-MOUSEKEY_ENABLE = yes # Mouse keys
-EXTRAKEY_ENABLE = yes # Audio control and System control
-CONSOLE_ENABLE = no # Console for debug
-COMMAND_ENABLE = no # Commands for debug and configuration
-NKRO_ENABLE = yes # Enable N-Key Rollover
-BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
-RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
-AUDIO_ENABLE = no # Audio output
-ENCODER_ENABLE = yes # Enable encoder
-OLED_ENABLE = yes # Enable OLED
-WPM_ENABLE = yes # Enable WPM Counter
diff --git a/keyboards/mode/m65ha_alpha/info.json b/keyboards/mode/m65ha_alpha/info.json
index a7afd10663..3332182127 100644
--- a/keyboards/mode/m65ha_alpha/info.json
+++ b/keyboards/mode/m65ha_alpha/info.json
@@ -13,6 +13,9 @@
"rows": ["A7", "A10", "D2", "C12", "B1", "C11"]
},
"diode_direction": "COL2ROW",
+ "eeprom": {
+ "driver": "i2c"
+ },
"indicators": {
"caps_lock": "A6"
},
diff --git a/keyboards/mode/m65ha_alpha/rules.mk b/keyboards/mode/m65ha_alpha/rules.mk
index da4b493847..942e6c1061 100644
--- a/keyboards/mode/m65ha_alpha/rules.mk
+++ b/keyboards/mode/m65ha_alpha/rules.mk
@@ -10,5 +10,3 @@ NKRO_ENABLE = no # Enable N-Key Rollover
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
AUDIO_ENABLE = no # Audio output
-EEPROM_DRIVER = i2c
-
diff --git a/keyboards/mode/m65hi_alpha/info.json b/keyboards/mode/m65hi_alpha/info.json
index 1899284f8c..a2a4416efe 100644
--- a/keyboards/mode/m65hi_alpha/info.json
+++ b/keyboards/mode/m65hi_alpha/info.json
@@ -13,6 +13,9 @@
"rows": ["A7", "A10", "D2", "C12", "B1", "C11"]
},
"diode_direction": "COL2ROW",
+ "eeprom": {
+ "driver": "i2c"
+ },
"indicators": {
"caps_lock": "A6"
},
diff --git a/keyboards/mode/m65hi_alpha/rules.mk b/keyboards/mode/m65hi_alpha/rules.mk
index da4b493847..942e6c1061 100644
--- a/keyboards/mode/m65hi_alpha/rules.mk
+++ b/keyboards/mode/m65hi_alpha/rules.mk
@@ -10,5 +10,3 @@ NKRO_ENABLE = no # Enable N-Key Rollover
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
AUDIO_ENABLE = no # Audio output
-EEPROM_DRIVER = i2c
-
diff --git a/keyboards/mode/m65s/info.json b/keyboards/mode/m65s/info.json
index 0a0c93f3f8..b187502736 100644
--- a/keyboards/mode/m65s/info.json
+++ b/keyboards/mode/m65s/info.json
@@ -16,6 +16,9 @@
"rows": ["A3", "B14", "B15", "C9", "C6", "C11"]
},
"diode_direction": "COL2ROW",
+ "eeprom": {
+ "driver": "i2c"
+ },
"indicators": {
"caps_lock": "C8"
},
diff --git a/keyboards/mode/m65s/rules.mk b/keyboards/mode/m65s/rules.mk
index 5dd8d547ab..4d827a4254 100644
--- a/keyboards/mode/m65s/rules.mk
+++ b/keyboards/mode/m65s/rules.mk
@@ -10,5 +10,3 @@ NKRO_ENABLE = no # Enable N-Key Rollover
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
AUDIO_ENABLE = no # Audio output
-EEPROM_DRIVER = i2c
-
diff --git a/keyboards/mode/m75h/config.h b/keyboards/mode/m75h/config.h
deleted file mode 100644
index c6d7d037ec..0000000000
--- a/keyboards/mode/m75h/config.h
+++ /dev/null
@@ -1,21 +0,0 @@
-/*
- Copyright 2020 Álvaro "Gondolindrim" Volpato <alvaro.volpato@usp.br>
-
-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 WEAR_LEVELING_LOGICAL_SIZE 2048
-#define WEAR_LEVELING_BACKING_SIZE 4096
diff --git a/keyboards/mode/m75h/info.json b/keyboards/mode/m75h/info.json
index f57aac383e..8314dbf99d 100644
--- a/keyboards/mode/m75h/info.json
+++ b/keyboards/mode/m75h/info.json
@@ -13,6 +13,11 @@
"rows": ["C5", "B0", "B14", "B15", "A8", "C9", "A15"]
},
"diode_direction": "COL2ROW",
+ "eeprom": {
+ "wear_leveling": {
+ "backing_size": 4096
+ }
+ },
"processor": "STM32F401",
"bootloader": "stm32-dfu",
"layout_aliases": {
diff --git a/keyboards/mode/m75s/config.h b/keyboards/mode/m75s/config.h
index 7fdb18d26a..4d3a7d5ca4 100644
--- a/keyboards/mode/m75s/config.h
+++ b/keyboards/mode/m75s/config.h
@@ -20,6 +20,3 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define BACKLIGHT_DEFAULT_LEVEL 20
#define BACKLIGHT_PWM_DRIVER PWMD3
#define BACKLIGHT_PWM_CHANNEL 1
-
-#define WEAR_LEVELING_LOGICAL_SIZE 2048
-#define WEAR_LEVELING_BACKING_SIZE 4096
diff --git a/keyboards/mode/m75s/info.json b/keyboards/mode/m75s/info.json
index bf60aebd56..df4d1ab451 100644
--- a/keyboards/mode/m75s/info.json
+++ b/keyboards/mode/m75s/info.json
@@ -13,6 +13,11 @@
"rows": ["C5", "B0", "B14", "B15", "C7", "C9", "A15"]
},
"diode_direction": "COL2ROW",
+ "eeprom": {
+ "wear_leveling": {
+ "backing_size": 4096
+ }
+ },
"backlight": {
"pin": "C6",
"levels": 20,
diff --git a/keyboards/molecule/rules.mk b/keyboards/molecule/rules.mk
index 35280e22e3..06a8f490ee 100755
--- a/keyboards/molecule/rules.mk
+++ b/keyboards/molecule/rules.mk
@@ -15,4 +15,4 @@ AUDIO_ENABLE = no # Audio output
POINTING_DEVICE_ENABLE = yes
POINTING_DEVICE_DRIVER = custom
SRC += adns.c
-QUANTUM_LIB_SRC += spi_master.c
+SPI_DRIVER_REQUIRED = yes
diff --git a/keyboards/monsgeek/m1/config.h b/keyboards/monsgeek/m1/config.h
index 3e44e815fa..3963f1fbae 100644
--- a/keyboards/monsgeek/m1/config.h
+++ b/keyboards/monsgeek/m1/config.h
@@ -16,9 +16,6 @@
#pragma once
-/* Use 6 dynamic keymap layers */
-#define DYNAMIC_KEYMAP_LAYER_COUNT 6
-
/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
#define LOCKING_SUPPORT_ENABLE
/* Locking resynchronize hack */
@@ -34,12 +31,10 @@
#define SPI_MOSI_PAL_MODE 5
#define EXTERNAL_FLASH_SPI_SLAVE_SELECT_PIN C12
-#define WEAR_LEVELING_BACKING_SIZE (8 * 1024)
/* I2C Config for LED Driver */
-#define DRIVER_COUNT 2
-#define DRIVER_ADDR_1 0b1110100
-#define DRIVER_ADDR_2 0b1110111
+#define SNLED27351_I2C_ADDRESS_1 SNLED27351_I2C_ADDRESS_GND
+#define SNLED27351_I2C_ADDRESS_2 SNLED27351_I2C_ADDRESS_VDDIO
#define I2C1_OPMODE OPMODE_I2C
#define I2C1_CLOCK_SPEED 400000 /* 400000 */
diff --git a/keyboards/monsgeek/m1/info.json b/keyboards/monsgeek/m1/info.json
index 4de1803818..23d3d714c6 100644
--- a/keyboards/monsgeek/m1/info.json
+++ b/keyboards/monsgeek/m1/info.json
@@ -26,13 +26,23 @@
"rows": ["B15", "C6", "C7", "C8", "C9", "A8"]
},
"diode_direction": "ROW2COL",
+ "dynamic_keymap": {
+ "layer_count": 6
+ },
+ "eeprom": {
+ "driver": "wear_leveling",
+ "wear_leveling": {
+ "driver": "spi_flash",
+ "backing_size": 8192
+ }
+ },
"encoder": {
"rotary": [
{"pin_a": "B14", "pin_b": "B13"}
]
},
"rgb_matrix": {
- "driver": "is31fl3733",
+ "driver": "snled27351",
"max_brightness": 200,
"val_steps": 20,
"animations": {
diff --git a/keyboards/monsgeek/m1/m1.c b/keyboards/monsgeek/m1/m1.c
index ac00bb4e2b..b85adbc0bf 100644
--- a/keyboards/monsgeek/m1/m1.c
+++ b/keyboards/monsgeek/m1/m1.c
@@ -17,8 +17,8 @@
#include "quantum.h"
#ifdef RGB_MATRIX_ENABLE
-const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = {
-/* Refer to IS31 manual for these locations
+const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = {
+/* Refer to SNLED27351 manual for these locations
* driver
* | R location
* | | G location
diff --git a/keyboards/monsgeek/m1/rules.mk b/keyboards/monsgeek/m1/rules.mk
index b753f0682e..6e7633bfe0 100644
--- a/keyboards/monsgeek/m1/rules.mk
+++ b/keyboards/monsgeek/m1/rules.mk
@@ -1,6 +1 @@
-# Build Options
-# change yes to no to disable
-#
-EEPROM_DRIVER = wear_leveling
-WEAR_LEVELING_DRIVER = spi_flash
-
+# This file intentionally left blank
diff --git a/keyboards/monsgeek/m3/config.h b/keyboards/monsgeek/m3/config.h
index 85eb5b8e99..02c0fc6abc 100644
--- a/keyboards/monsgeek/m3/config.h
+++ b/keyboards/monsgeek/m3/config.h
@@ -33,12 +33,10 @@
#define SPI_MOSI_PAL_MODE 5
#define EXTERNAL_FLASH_SPI_SLAVE_SELECT_PIN C12
-#define WEAR_LEVELING_BACKING_SIZE (8 * 1024)
/* I2C Config for LED Driver */
-#define DRIVER_COUNT 2
-#define DRIVER_ADDR_1 0b1110100
-#define DRIVER_ADDR_2 0b1110111
+#define SNLED27351_I2C_ADDRESS_1 SNLED27351_I2C_ADDRESS_GND
+#define SNLED27351_I2C_ADDRESS_2 SNLED27351_I2C_ADDRESS_VDDIO
#define I2C1_OPMODE OPMODE_I2C
#define I2C1_CLOCK_SPEED 400000 /* 400000 */
diff --git a/keyboards/monsgeek/m3/info.json b/keyboards/monsgeek/m3/info.json
index db646103f1..df99a6a22c 100644
--- a/keyboards/monsgeek/m3/info.json
+++ b/keyboards/monsgeek/m3/info.json
@@ -11,6 +11,13 @@
},
"processor": "WB32FQ95",
"bootloader": "wb32-dfu",
+ "eeprom": {
+ "driver": "wear_leveling",
+ "wear_leveling": {
+ "driver": "spi_flash",
+ "backing_size": 8192
+ }
+ },
"features": {
"bootmagic": true,
"extrakey": true,
@@ -31,7 +38,7 @@
"caps_lock": "A15"
},
"rgb_matrix": {
- "driver": "ckled2001",
+ "driver": "snled27351",
"max_brightness": 160,
"animations": {
"breathing": true,
diff --git a/keyboards/monsgeek/m3/m3.c b/keyboards/monsgeek/m3/m3.c
index 95bfb34789..b7e197e6ac 100644
--- a/keyboards/monsgeek/m3/m3.c
+++ b/keyboards/monsgeek/m3/m3.c
@@ -17,7 +17,7 @@
#include "quantum.h"
// clang-format off
#ifdef RGB_MATRIX_ENABLE
-const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = {
+const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = {
/* Refer to IS31 manual for these locations
* driver
* | R location
diff --git a/keyboards/monsgeek/m3/rules.mk b/keyboards/monsgeek/m3/rules.mk
index 24d5f6f52e..6e7633bfe0 100644
--- a/keyboards/monsgeek/m3/rules.mk
+++ b/keyboards/monsgeek/m3/rules.mk
@@ -1,2 +1 @@
-EEPROM_DRIVER = wear_leveling
-WEAR_LEVELING_DRIVER = spi_flash
+# This file intentionally left blank
diff --git a/keyboards/monsgeek/m5/config.h b/keyboards/monsgeek/m5/config.h
index 6d43bd4f26..20c69b34f1 100644
--- a/keyboards/monsgeek/m5/config.h
+++ b/keyboards/monsgeek/m5/config.h
@@ -16,9 +16,6 @@
#pragma once
-/* Use 5 dynamic keymap layers */
-#define DYNAMIC_KEYMAP_LAYER_COUNT 6
-
/* LED Indicators */
#define LED_WIN_LOCK_PIN C11
@@ -35,12 +32,10 @@
#define SPI_MOSI_PAL_MODE 5
#define EXTERNAL_FLASH_SPI_SLAVE_SELECT_PIN C12
-#define WEAR_LEVELING_BACKING_SIZE (8 * 1024)
/* I2C Config for LED Driver */
-#define DRIVER_COUNT 2
-#define DRIVER_ADDR_1 0b1110100
-#define DRIVER_ADDR_2 0b1110111
+#define SNLED27351_I2C_ADDRESS_1 SNLED27351_I2C_ADDRESS_GND
+#define SNLED27351_I2C_ADDRESS_2 SNLED27351_I2C_ADDRESS_VDDIO
#define I2C1_OPMODE OPMODE_I2C
#define I2C1_CLOCK_SPEED 400000 /* 400000 */
#define I2C1_SCL_PAL_MODE 4
diff --git a/keyboards/monsgeek/m5/info.json b/keyboards/monsgeek/m5/info.json
index 4e504b8663..e4ecba91ce 100644
--- a/keyboards/monsgeek/m5/info.json
+++ b/keyboards/monsgeek/m5/info.json
@@ -25,12 +25,22 @@
"rows": ["B15", "C6", "C7", "C8", "C9", "A8"]
},
"diode_direction": "ROW2COL",
+ "dynamic_keymap": {
+ "layer_count": 6
+ },
+ "eeprom": {
+ "driver": "wear_leveling",
+ "wear_leveling": {
+ "driver": "spi_flash",
+ "backing_size": 8192
+ }
+ },
"indicators": {
"num_lock":"A15",
"caps_lock": "C10"
},
"rgb_matrix": {
- "driver": "is31fl3733",
+ "driver": "snled27351",
"max_brightness": 180,
"animations": {
"breathing": true,
diff --git a/keyboards/monsgeek/m5/m5.c b/keyboards/monsgeek/m5/m5.c
index 7dbc3111bf..83dd4b6b79 100644
--- a/keyboards/monsgeek/m5/m5.c
+++ b/keyboards/monsgeek/m5/m5.c
@@ -17,8 +17,8 @@
#include "quantum.h"
// clang-format off
#ifdef RGB_MATRIX_ENABLE
-const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = {
-/* Refer to IS31 manual for these locations
+const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = {
+/* Refer to SNLED27351 manual for these locations
* driver
* | R location
* | | G location
diff --git a/keyboards/monsgeek/m5/rules.mk b/keyboards/monsgeek/m5/rules.mk
index 24d5f6f52e..6e7633bfe0 100644
--- a/keyboards/monsgeek/m5/rules.mk
+++ b/keyboards/monsgeek/m5/rules.mk
@@ -1,2 +1 @@
-EEPROM_DRIVER = wear_leveling
-WEAR_LEVELING_DRIVER = spi_flash
+# This file intentionally left blank
diff --git a/keyboards/monsgeek/m6/config.h b/keyboards/monsgeek/m6/config.h
index 5fcd897429..f01b8abb68 100644
--- a/keyboards/monsgeek/m6/config.h
+++ b/keyboards/monsgeek/m6/config.h
@@ -16,9 +16,6 @@
#pragma once
-/* Use 6 dynamic keymap layers */
-#define DYNAMIC_KEYMAP_LAYER_COUNT 6
-
/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
#define LOCKING_SUPPORT_ENABLE
/* Locking resynchronize hack */
@@ -32,12 +29,10 @@
#define SPI_MOSI_PAL_MODE 5
#define EXTERNAL_FLASH_SPI_SLAVE_SELECT_PIN C12
-#define WEAR_LEVELING_BACKING_SIZE (8 * 1024)
/* I2C Config for LED Driver */
-#define DRIVER_COUNT 2
-#define DRIVER_ADDR_1 0b1110100
-#define DRIVER_ADDR_2 0b1110111
+#define SNLED27351_I2C_ADDRESS_1 SNLED27351_I2C_ADDRESS_GND
+#define SNLED27351_I2C_ADDRESS_2 SNLED27351_I2C_ADDRESS_VDDIO
#define I2C1_SCL_PAL_MODE 4
#define I2C1_OPMODE OPMODE_I2C
#define I2C1_CLOCK_SPEED 400000 /* 400000 */
diff --git a/keyboards/monsgeek/m6/info.json b/keyboards/monsgeek/m6/info.json
index d23d2f8322..3ec89cc497 100644
--- a/keyboards/monsgeek/m6/info.json
+++ b/keyboards/monsgeek/m6/info.json
@@ -25,8 +25,18 @@
"rows": ["C6", "C7", "C8", "C9", "A8"]
},
"diode_direction": "ROW2COL",
+ "dynamic_keymap": {
+ "layer_count": 6
+ },
+ "eeprom": {
+ "driver": "wear_leveling",
+ "wear_leveling": {
+ "driver": "spi_flash",
+ "backing_size": 8192
+ }
+ },
"rgb_matrix": {
- "driver": "is31fl3733",
+ "driver": "snled27351",
"max_brightness": 200,
"val_steps": 20,
"animations": {
diff --git a/keyboards/monsgeek/m6/m6.c b/keyboards/monsgeek/m6/m6.c
index 1823d865cc..dc20a9916f 100644
--- a/keyboards/monsgeek/m6/m6.c
+++ b/keyboards/monsgeek/m6/m6.c
@@ -17,8 +17,8 @@
#include "quantum.h"
// clang-format off
#ifdef RGB_MATRIX_ENABLE
-const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = {
-/* Refer to IS31 manual for these locations
+const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = {
+/* Refer to SNLED27351 manual for these locations
* driver
* | R location
* | | G location
diff --git a/keyboards/monsgeek/m6/rules.mk b/keyboards/monsgeek/m6/rules.mk
index 24d5f6f52e..6e7633bfe0 100644
--- a/keyboards/monsgeek/m6/rules.mk
+++ b/keyboards/monsgeek/m6/rules.mk
@@ -1,2 +1 @@
-EEPROM_DRIVER = wear_leveling
-WEAR_LEVELING_DRIVER = spi_flash
+# This file intentionally left blank
diff --git a/keyboards/montsinger/rebound/rev1/keymaps/curry/config.h b/keyboards/montsinger/rebound/rev1/keymaps/curry/config.h
deleted file mode 100644
index 2c9f97d587..0000000000
--- a/keyboards/montsinger/rebound/rev1/keymaps/curry/config.h
+++ /dev/null
@@ -1,7 +0,0 @@
-#pragma once
-
-// comment out unnecessary layouts
-#define ENABLE_QWERTY
-#define ENABLE_COLEMAK
-#define ENABLE_DVORAK
-#define ENABLE_WORKMAN
diff --git a/keyboards/montsinger/rebound/rev1/keymaps/curry/keymap.c b/keyboards/montsinger/rebound/rev1/keymaps/curry/keymap.c
deleted file mode 100644
index c1068a4d2b..0000000000
--- a/keyboards/montsinger/rebound/rev1/keymaps/curry/keymap.c
+++ /dev/null
@@ -1,71 +0,0 @@
-#include "curry.h"
-
-#define LAYOUT_rebound_base( \
- K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, \
- K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, \
- K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A \
- ) \
- LAYOUT_ortho_4x12_wrapper( \
- KC_TAB, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, KC_BSPC, \
- KC_ESC, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, KC_QUOT, \
- KC_LSFT, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, KC_ENT, \
- ADJUST, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT \
- )
-#define LAYOUT_rebound_base_wrapper(...) LAYOUT_rebound_base(__VA_ARGS__)
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-#if defined(ENABLE_QWERTY)
- [_QWERTY] = LAYOUT_rebound_base_wrapper(
- _________________QWERTY_L1_________________, _________________QWERTY_R1_________________,
- _________________QWERTY_L2_________________, _________________QWERTY_R2_________________,
- _________________QWERTY_L3_________________, _________________QWERTY_R3_________________
- ),
-#endif
-
-#if defined(ENABLE_COLEMAK)
- [_COLEMAK] = LAYOUT_rebound_base_wrapper(
- _________________COLEMAK_L1________________, _________________COLEMAK_R1________________,
- _________________COLEMAK_L2________________, _________________COLEMAK_R2________________,
- _________________COLEMAK_L3________________, _________________COLEMAK_R3________________
- ),
-#endif
-
-#if defined(ENABLE_DVORAK)
- [_DVORAK] = LAYOUT_rebound_base_wrapper(
- _________________DVORAK_L1_________________, _________________DVORAK_R1_________________,
- _________________DVORAK_L2_________________, _________________DVORAK_R2_________________,
- _________________DVORAK_L3_________________, _________________DVORAK_R3_________________
- ),
-#endif
-
-#if defined(ENABLE_WORKMAN)
- [_WORKMAN] = LAYOUT_rebound_base_wrapper(
- _________________WORKMAN_L1________________, _________________WORKMAN_R1________________,
- _________________WORKMAN_L2________________, _________________WORKMAN_R2________________,
- _________________WORKMAN_L3________________, _________________WORKMAN_R3________________
- ),
-#endif
-
- [_LOWER] = LAYOUT_ortho_4x12_wrapper(
- KC_F11, _________________LOWER_L1__________________, _________________LOWER_R1__________________, KC_F12,
- KC_GRV, _________________LOWER_L2__________________, _________________LOWER_R2__________________, KC_PIPE,
- _______, _________________LOWER_L3__________________, _________________LOWER_R3__________________, _______,
- _______, ___________________BLANK___________________, ___________________BLANK___________________, _______
- ),
-
- [_RAISE] = LAYOUT_ortho_4x12_wrapper(
- _______, _________________RAISE_L1__________________, _________________RAISE_R1__________________, KC_DEL,
- KC_TILD, _________________RAISE_L2__________________, _________________RAISE_R2__________________, KC_BSLS,
- _______, _________________RAISE_L3__________________, _________________RAISE_R3__________________, _______,
- _______, ___________________BLANK___________________, ___________________BLANK___________________, _______
- ),
-
- [_ADJUST] = LAYOUT_ortho_4x12_wrapper(
- KC_MAKE, ___________________BLANK___________________, _________________ADJUST_R1_________________, KC_RST,
- VRSN, _________________ADJUST_L2_________________, _________________ADJUST_R2_________________, EE_CLR,
- MG_NKRO, ___________________BLANK___________________, _________________ADJUST_R3_________________, _______,
- _______, ___________________BLANK___________________, ___________________BLANK___________________, _______
- )
-
-
-};
diff --git a/keyboards/montsinger/rebound/rev1/keymaps/curry/rules.mk b/keyboards/montsinger/rebound/rev1/keymaps/curry/rules.mk
deleted file mode 100644
index 7300873397..0000000000
--- a/keyboards/montsinger/rebound/rev1/keymaps/curry/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-CONVERT_TO=proton_c
diff --git a/keyboards/montsinger/rebound/rev2/keymaps/rossman360/keymap.c b/keyboards/montsinger/rebound/rev2/keymaps/rossman360/keymap.c
deleted file mode 100644
index eeb20b5c76..0000000000
--- a/keyboards/montsinger/rebound/rev2/keymaps/rossman360/keymap.c
+++ /dev/null
@@ -1,57 +0,0 @@
-#include QMK_KEYBOARD_H
-#include "rossman360.h"
-
-#define PGMOD LT(_NUM, KC_PGDN)
-#define TABMOD LT(_FN1, KC_TAB)
-#define SPCMOD LT(_FN1, KC_SPACE)
-#define ENTMOD LT(_FN2, KC_ENTER)
-#define ESCMOD LT(_NUM, KC_ESC)
-#define RSMOD LT(_FN1, KC_RSFT)
-
-enum layer_names {
- _BASE,
- _DEL,
- _FN1,
- _FN2,
- _NUM,
-};
-
-
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
-[_BASE] = LAYOUT_all(
- KC_ESC , KC_Q , KC_W , KC_E , KC_R , KC_T , KC_Y , KC_U , KC_I , KC_O , KC_P , NTAB ,
- JUMPBACK, 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_MINS,
- CMDBSP , ALTDEL , KC_NO , CTRLSP , TABMOD , PGMOD , KC_Y , ENTMOD , SPCMOD , MO(_DEL),KC_NO , KC_BSPC, KC_DEL
- ),
-
-[_FN1] = LAYOUT_all(
- _______, TAB1 , TAB2 , TAB3 , TAB4 , _______, _______, UNDO , _______, _______, _______, CTAB ,
- KC_CAPS, _______, _______, _______, _______, _______, KC_HOME, KC_LEFT, KC_UP , KC_RIGHT,KC_END , KC_NO ,
- _______, _______, XPANDR , _______, _______, _______, _______, PMERGE , KC_DOWN, _______, _______, _______,
- WREFRESH,_______, _______, _______, LWORD , RWORD , KC_Y , RVOLD , RVOLU , _______, _______, _______, _______
- ),
-
-[_FN2] = LAYOUT_all(
- _______, SPEAK1 , SPEAK2 , SPEAK3 , SPEAK4 , _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, PARADOWN, CSPEAK, KC_Y , _______, _______, _______, _______, _______, _______
- ),
-
-[_DEL] = LAYOUT_all(
- _______, _______, _______, _______, _______, _______, _______, UNDO , _______, _______, _______, CTAB ,
- REMCAPS, _______, _______, _______, _______, _______, _______, KC_LEFT, KC_UP ,KC_RIGHT, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, KC_DOWN, _______, _______, _______,
- _______, _______, _______, KC_DEL , KC_BSPC, BWORD , KC_Y , _______, _______, _______, _______, _______, _______
- ),
-
-[_NUM] = LAYOUT_all(
- _______, KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_MINS, KC_EQL,
- KC_CAPS, _______, _______, _______, _______, _______, KC_MINS, KC_4 , KC_5 , KC_6 , KC_COLN, _______,
- _______, _______, _______, _______, _______, KC_LBRC, KC_RBRC, KC_1 , KC_2 , KC_3 , KC_BSLS, _______,
- _______, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, KC_Y , _______, _______, KC_0 , _______, _______, _______
- )
-};
diff --git a/keyboards/montsinger/rebound/rev3/keymaps/rossman360/keymap.c b/keyboards/montsinger/rebound/rev3/keymaps/rossman360/keymap.c
deleted file mode 100644
index f82aa822d1..0000000000
--- a/keyboards/montsinger/rebound/rev3/keymaps/rossman360/keymap.c
+++ /dev/null
@@ -1,113 +0,0 @@
-#include QMK_KEYBOARD_H
-#include "rossman360.h"
-
-#define PGMOD LT(_NUM, KC_PGDN)
-#define TABMOD LT(_FN1, KC_TAB)
-#define SPCMOD LT(_FN1, KC_SPACE)
-#define ENTMOD LT(_FN2, KC_ENTER)
-#define ESCMOD LT(_NUM, KC_ESC)
-#define RSMOD LT(_FN1, KC_RSFT)
-
-enum layer_names {
- _BASE,
- _DEL,
- _FN1,
- _FN2,
- _NUM,
-};
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
-[_BASE] = LAYOUT_all(
- KC_ESC , KC_Q , KC_W , KC_E , KC_R , KC_T , KC_Y , KC_U , KC_I , KC_O , KC_P , NTAB ,
- JUMPBACK, KC_A , KC_S , KC_D , KC_F , KC_G ,MO(_DEL), KC_H , KC_J , KC_K , KC_L , KC_SCLN, KC_QUOT,
- KC_LSFT , KC_Z , KC_X , KC_C , KC_V , KC_B , LM(_FN1, MOD_LALT), KC_N , KC_M , KC_COMM, KC_DOT , KC_SLSH, KC_MINS,
- CMDBSP , ALTDEL , KC_NO , CTRLSP , KC_TAB , PGMOD , QUIT , ENTMOD , SPCMOD , MO(_DEL),KC_NO , KC_BSPC, KC_DEL
- ),
-
-[_FN1] = LAYOUT_all(
- _______, TAB1 , TAB2 , TAB3 , TAB4 , _______, _______, UNDO , _______, _______, _______, CTAB ,
- KC_CAPS, _______, _______, _______, _______, _______, _______, KC_HOME, KC_LEFT, KC_UP , KC_RIGHT,KC_END , KC_NO ,
- _______, _______, XPANDR , _______, _______, _______, _______, _______, PMERGE , KC_DOWN, _______, _______, EMDASH ,
- WREFRESH,_______, _______, _______, LWORD , RWORD , _______, KC_NO , _______, KC_NO , _______, _______, _______
- ),
-
-[_FN2] = LAYOUT_all(
- _______, SPEAK1 , SPEAK2 , SPEAK3 , SPEAK4 , _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, PARADOWN, CSPEAK, _______, _______, KC_NO , KC_NO , _______, _______, _______
- ),
-
-[_DEL] = LAYOUT_all(
- QK_BOOT, _______, _______, _______, _______, _______, _______, UNDO , _______, _______, _______, CTAB ,
- REMCAPS, _______, _______, _______, _______, _______, _______, _______, KC_LEFT, KC_UP ,KC_RIGHT, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DOWN, _______, _______, _______,
- _______, _______, _______, KC_DEL , KC_BSPC, BWORD , _______, KC_NO , KC_NO , _______, _______, _______, _______
- ),
-
-[_NUM] = LAYOUT_all(
- KC_GRV , KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_MINS, KC_EQL,
- KC_CAPS, _______, _______, _______, _______, _______, _______, KC_MINS, KC_4 , KC_5 , KC_6 , KC_COLN, _______,
- _______, _______, _______, _______, _______, KC_LBRC, _______, KC_RBRC, KC_1 , KC_2 , KC_3 , KC_BSLS, _______,
- _______, _______, _______, _______, _______, _______, _______, KC_NO , KC_NO , KC_0 , _______, _______, _______
- )
-};
-
-bool encoder_update_user(uint8_t index, bool clockwise) {
- switch(get_highest_layer(layer_state)){
-case _BASE:
- if (clockwise) {
- tap_code16(KC_VOLD);
- } else {
- tap_code16(KC_VOLU);
- }
- break;
- case _FN1:
- if (clockwise) {
- tap_code16(S(KC_TAB));
- } else {
- tap_code16(KC_TAB);
- }
- break;
-}
- return true;
-}
-
-#ifdef OLED_ENABLE
-bool oled_task_user(void) {
- // Host Keyboard Layer Status
- oled_write_P(PSTR(""), false);
-
- switch (get_highest_layer(layer_state)) {
- case _BASE:
- oled_write_P(PSTR("Rebound\n"), false);
- oled_write_P(PSTR("Rev3.1\n"), false);
- break;
- case _FN1:
- oled_write_P(PSTR("Fn\n"), false);
- break;
- case _FN2:
- oled_write_P(PSTR("Para\n"), false);
- break;
- case _NUM:
- oled_write_P(PSTR("Num\n"), false);
- break;
- case _DEL:
- oled_write_P(PSTR("Del\n"), false);
- break;
- default:
- // Or use the write_ln shortcut over adding '\n' to the end of your string
- oled_write_ln_P(PSTR("Undefined"), false);
-}
-
- // Host Keyboard LED Status
- led_t led_state = host_keyboard_led_state();
- oled_write_P(led_state.num_lock ? PSTR("NUM ") : PSTR(" "), false);
- oled_write_P(led_state.caps_lock ? PSTR("CAPS") : PSTR(" "), false);
- oled_write_P(led_state.scroll_lock ? PSTR("SCR ") : PSTR(" "), false);
-
- return false;
-}
-
-#endif
diff --git a/keyboards/montsinger/rebound/rev3/keymaps/rossman360/rules.mk b/keyboards/montsinger/rebound/rev3/keymaps/rossman360/rules.mk
deleted file mode 100644
index 59f78f834d..0000000000
--- a/keyboards/montsinger/rebound/rev3/keymaps/rossman360/rules.mk
+++ /dev/null
@@ -1,4 +0,0 @@
-MOUSEKEY_ENABLE = no # Mouse keys
-CONSOLE_ENABLE = no # Console for debug
-COMMAND_ENABLE = no # Commands for debug and configuration
-OLED_ENABLE = no
diff --git a/keyboards/montsinger/rebound/rev4/keymaps/ericgebhart/keymap.c b/keyboards/montsinger/rebound/rev4/keymaps/ericgebhart/keymap.c
deleted file mode 100644
index c534fe3c6d..0000000000
--- a/keyboards/montsinger/rebound/rev4/keymaps/ericgebhart/keymap.c
+++ /dev/null
@@ -1,18 +0,0 @@
-/*
- Copyright 2018-2022 Eric Gebhart <e.a.gebhart@gmail.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/>.
-*/
-
-// See: users/ericgebhart.
diff --git a/keyboards/montsinger/rebound/rev4/keymaps/ericgebhart/readme.md b/keyboards/montsinger/rebound/rev4/keymaps/ericgebhart/readme.md
deleted file mode 100644
index 3a47968596..0000000000
--- a/keyboards/montsinger/rebound/rev4/keymaps/ericgebhart/readme.md
+++ /dev/null
@@ -1,5 +0,0 @@
-Overview
-========
-
-These are my keymaps. There isn't much here. Go take a look at my Userspace readme.
-That's where all the code is.
diff --git a/keyboards/montsinger/rebound/rev4/keymaps/ericgebhart/rules.mk b/keyboards/montsinger/rebound/rev4/keymaps/ericgebhart/rules.mk
deleted file mode 100644
index 28b8714100..0000000000
--- a/keyboards/montsinger/rebound/rev4/keymaps/ericgebhart/rules.mk
+++ /dev/null
@@ -1,18 +0,0 @@
-# Build Options
-# change yes to no to disable
-#
-#
-BOOTMAGIC_ENABLE = no # Enable Bootmagic Lite
-MOUSEKEY_ENABLE = yes # Mouse keys
-EXTRAKEY_ENABLE = yes # Audio control and System control
-CONSOLE_ENABLE = no # Console for debug
-COMMAND_ENABLE = yes # Commands for debug and configuration
-NKRO_ENABLE = yes # Enable N-Key Rollover
-BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
-MIDI_ENABLE = no # MIDI controls
-AUDIO_ENABLE = no # Audio output
-UNICODE_ENABLE = no # Unicode
-BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
-RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight.
-SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
-TAP_DANCE_ENABLE = yes # Enable the tap dance feature.
diff --git a/keyboards/montsinger/rebound/rev4/keymaps/rossman360/keymap.c b/keyboards/montsinger/rebound/rev4/keymaps/rossman360/keymap.c
deleted file mode 100644
index 16cc4393d0..0000000000
--- a/keyboards/montsinger/rebound/rev4/keymaps/rossman360/keymap.c
+++ /dev/null
@@ -1,122 +0,0 @@
-#include QMK_KEYBOARD_H
-#include "rossman360.h"
-
-#define PGMOD LT(_NUM, KC_PGDN)
-#define TABMOD LT(_FN1, KC_TAB)
-#define SPCMOD LT(_FN1, KC_SPACE)
-#define ENTMOD LT(_FN2, KC_ENTER)
-#define ESCMOD LT(_NUM, KC_ESC)
-#define RSMOD LT(_FN1, KC_RSFT)
-#
-
-enum layer_names {
- _BASE,
- _DEL,
- _FN1,
- _FN2,
- _NUM,
-};
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
-[_BASE] = LAYOUT_all(
- KC_ESC , KC_Q , KC_W , KC_E , KC_R , KC_T , KC_Y , KC_U , KC_I , KC_O , KC_P , NTAB ,
- JUMPBACK, KC_A , KC_S , KC_D , KC_F , KC_G ,MO(_DEL), KC_H , KC_J , KC_K , KC_L , KC_SCLN, KC_QUOT,
- KC_LSFT , KC_Z , KC_X , KC_C , KC_V , KC_B , LM(_FN1, MOD_LALT), KC_N , KC_M , KC_COMM, KC_DOT , KC_SLSH, KC_MINS,
- CMDBSP , ALTDEL , KC_NO , CTRLSP , TABMOD , PGMOD , QUIT , ENTMOD , SPCMOD , MO(_DEL),KC_NO , KC_BSPC, KC_DEL
- ),
-
-[_FN1] = LAYOUT_all(
- _______, TAB1 , TAB2 , TAB3 , TAB4 , _______, _______, UNDO , _______, _______, _______, CTAB ,
- KC_CAPS, _______, _______, _______, _______, _______, _______, KC_HOME, KC_LEFT, KC_UP , KC_RIGHT,KC_END , KC_NO ,
- _______, _______, XPANDR , _______, PMERGE , _______, _______, _______, PMERGE , KC_DOWN, _______, _______, EMDASH ,
- WREFRESH,_______, _______, _______, LWORD , RWORD , _______, KC_NO , _______, KC_NO , _______, _______, _______
- ),
-
-[_FN2] = LAYOUT_all(
- _______, SPEAK1 , SPEAK2 , SPEAK3 , SPEAK4 , _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, PARADOWN, CSPEAK, _______, _______, KC_NO , KC_NO , _______, _______, _______
- ),
-
-[_DEL] = LAYOUT_all(
- QK_BOOT, _______, _______, _______, _______, _______, _______, UNDO , _______, _______, _______, CTAB ,
- REMCAPS, _______, _______, _______, _______, _______, _______, _______, KC_LEFT, KC_UP ,KC_RIGHT, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DOWN, _______, _______, _______,
- _______, _______, _______, BLINE , KC_BSPC, BWORD , _______, KC_NO , KC_NO , _______, _______, _______, _______
- ),
-
-[_NUM] = LAYOUT_all(
- KC_GRV , KC_1 , KC_7 , KC_8 , KC_9 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_MINS, KC_EQL,
- KC_CAPS, _______, KC_4 , KC_5 , KC_6 , KC_BSPC, KC_LBRC, KC_MINS, KC_4 , KC_5 , KC_6 , KC_COLN, _______,
- KC_COMM, KC_DOT , KC_1 , KC_2 , KC_3 ,KC_ENTER, KC_RBRC, KC_RBRC, KC_1 , KC_2 , KC_3 , KC_BSLS, _______,
- _______, _______, _______, _______, KC_0 , _______, _______, KC_NO , KC_NO , KC_0 , _______, _______, _______
- )
-};
-
-bool encoder_update_user(uint8_t index, bool clockwise) {
- switch(get_highest_layer(layer_state)){
-case _BASE:
- if (clockwise) {
- tap_code16(KC_VOLD);
- } else {
- tap_code16(KC_VOLU);
- }
- break;
-case _DEL:
- if (clockwise) {
- tap_code16(KC_F11);
- } else {
- tap_code16(KC_F3);
- }
- break;
-
- case _FN1:
- if (clockwise) {
- tap_code16(S(KC_TAB));
- } else {
- tap_code16(KC_TAB);
- }
- break;
-}
- return true;
-}
-
-#ifdef OLED_ENABLE
-bool oled_task_user(void) {
- // Host Keyboard Layer Status
- oled_write_P(PSTR(""), false);
-
- switch (get_highest_layer(layer_state)) {
- case _BASE:
- oled_write_P(PSTR("Rebound\n"), false);
- oled_write_P(PSTR("Rev3.1\n"), false);
- break;
- case _FN1:
- oled_write_P(PSTR("Fn\n"), false);
- break;
- case _FN2:
- oled_write_P(PSTR("Para\n"), false);
- break;
- case _NUM:
- oled_write_P(PSTR("Num\n"), false);
- break;
- case _DEL:
- oled_write_P(PSTR("Del\n"), false);
- break;
- default:
- // Or use the write_ln shortcut over adding '\n' to the end of your string
- oled_write_ln_P(PSTR("Undefined"), false);
-}
-
- // Host Keyboard LED Status
- led_t led_state = host_keyboard_led_state();
- oled_write_P(led_state.num_lock ? PSTR("NUM ") : PSTR(" "), false);
- oled_write_P(led_state.caps_lock ? PSTR("CAPS") : PSTR(" "), false);
- oled_write_P(led_state.scroll_lock ? PSTR("SCR ") : PSTR(" "), false);
-
- return false;
-}
-
-#endif
diff --git a/keyboards/montsinger/rebound/rev4/keymaps/rossman360/rules.mk b/keyboards/montsinger/rebound/rev4/keymaps/rossman360/rules.mk
deleted file mode 100644
index f1fb91cc36..0000000000
--- a/keyboards/montsinger/rebound/rev4/keymaps/rossman360/rules.mk
+++ /dev/null
@@ -1,4 +0,0 @@
-MOUSEKEY_ENABLE = no
-CONSOLE_ENABLE = no
-COMMAND_ENABLE = no
-OLED_ENABLE = no
diff --git a/keyboards/montsinger/rewind/keymaps/rossman360/keymap.c b/keyboards/montsinger/rewind/keymaps/rossman360/keymap.c
deleted file mode 100644
index 106443b739..0000000000
--- a/keyboards/montsinger/rewind/keymaps/rossman360/keymap.c
+++ /dev/null
@@ -1,56 +0,0 @@
-#include QMK_KEYBOARD_H
-#include "rossman360.h"
-
-// Each layer gets a name for readability, which is then used in the keymap matrix below.
-// The underscores don't mean anything - you can have a layer called STUFF or any other name.
-// Layer names don't all need to be of the same length, obviously, and you can also skip them
-// entirely and just use numbers.
-
-enum layer_names {
- _BASE,
- _DEL,
- _FN1,
- _FN2,
- _NUM,
-};
-
-#define PGMOD LT(_NUM, KC_PGDN)
-#define SPCMOD LT(_FN1, KC_SPACE)
-#define ZSHIFT MT(MOD_LSFT, KC_Z)
-#define TABMOD LT(_FN1, KC_TAB)
-#define ESCMOD LT(_FN1, KC_1)
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
-[_BASE] = LAYOUT_ortho_5x10(
- ESCMOD, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0,
- 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_QUOT,
- ZSHIFT, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH,
- KC_BSPC, ALTDEL, KC_LCTL, TABMOD, PGMOD , KC_ENTER,SPCMOD, MO(_DEL), KC_BSPC, KC_DEL
-),
-
-[_FN1] = LAYOUT_ortho_5x10(
- XXXXXXX, KC_ESC, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, QK_BOOT,
- XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
- JUMPBACK,XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_HOME, KC_LEFT, KC_UP, KC_RIGHT,KC_END,
- _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, PMERGE, KC_DOWN, XXXXXXX, XXXXXXX,
- XXXXXXX, XXXXXXX, XXXXXXX, LWORD, RWORD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX
-),
-
-[_DEL] = LAYOUT_ortho_5x10(
- XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
- XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
- REMCAPS, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
- XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
- XXXXXXX, XXXXXXX, BLINE , KC_BSPC, BWORD , XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX
-),
-
-[_NUM] = LAYOUT_ortho_5x10(
- XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, NTAB,
- XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_7, KC_8, KC_9, CTAB,
- XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_4, KC_5, KC_6, KC_SCLN,
- XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_1, KC_2, KC_3, KC_MINS,
- XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_0, XXXXXXX, XXXXXXX
-),
-};
diff --git a/keyboards/moon/rules.mk b/keyboards/moon/rules.mk
index 804580d1f9..676f0971a2 100644
--- a/keyboards/moon/rules.mk
+++ b/keyboards/moon/rules.mk
@@ -16,4 +16,4 @@ CUSTOM_MATRIX = yes
VPATH += drivers/gpio
SRC += pca9555.c matrix.c
-QUANTUM_LIB_SRC += i2c_master.c
+I2C_DRIVER_REQUIRED = yes
diff --git a/keyboards/moonlander/config.h b/keyboards/moonlander/config.h
index 389f97d696..3ceb45f54d 100644
--- a/keyboards/moonlander/config.h
+++ b/keyboards/moonlander/config.h
@@ -65,10 +65,9 @@
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-#define DRIVER_ADDR_1 0b1110100
-#define DRIVER_ADDR_2 0b1110111
+#define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND
+#define IS31FL3731_I2C_ADDRESS_2 IS31FL3731_I2C_ADDRESS_VCC
-#define DRIVER_COUNT 2
#define DRIVER_1_LED_TOTAL 36
#define DRIVER_2_LED_TOTAL 36
#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL)
@@ -142,10 +141,6 @@
#define FIRMWARE_VERSION_SIZE 17
#define DYNAMIC_KEYMAP_EEPROM_ADDR (EECONFIG_SIZE + FIRMWARE_VERSION_SIZE)
-#ifdef EEPROM_I2C
-# define DYNAMIC_KEYMAP_EEPROM_MAX_ADDR 16383
-# define DYNAMIC_KEYMAP_LAYER_COUNT 8
-#endif
#define AUDIO_PIN A5
#define AUDIO_PIN_ALT A4
diff --git a/keyboards/moonlander/info.json b/keyboards/moonlander/info.json
index acbb278a33..1a7982ed57 100644
--- a/keyboards/moonlander/info.json
+++ b/keyboards/moonlander/info.json
@@ -8,13 +8,22 @@
"pid": "0x1969",
"device_version": "0.0.1"
},
+ "dynamic_keymap": {
+ "layer_count": 8
+ },
+ "eeprom": {
+ "driver": "i2c"
+ },
"rgb_matrix": {
"driver": "is31fl3731"
},
"processor": "STM32F303",
"bootloader": "stm32-dfu",
+ "layout_aliases": {
+ "LAYOUT_moonlander": "LAYOUT"
+ },
"layouts": {
- "LAYOUT_moonlander": {
+ "LAYOUT": {
"layout": [
{"matrix": [0, 0], "x": 0, "y": 0.375},
{"matrix": [0, 1], "x": 1, "y": 0.375},
diff --git a/keyboards/moonlander/keymaps/default/keymap.c b/keyboards/moonlander/keymaps/default/keymap.c
index 754227262f..ad7705eff8 100644
--- a/keyboards/moonlander/keymaps/default/keymap.c
+++ b/keyboards/moonlander/keymaps/default/keymap.c
@@ -33,7 +33,7 @@ enum custom_keycodes {
// clang-format off
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [BASE] = LAYOUT_moonlander(
+ [BASE] = LAYOUT(
KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, KC_LEFT, KC_RGHT, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS,
KC_DEL, KC_Q, KC_W, KC_E, KC_R, KC_T, TG(SYMB), TG(SYMB), KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS,
KC_BSPC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_HYPR, KC_MEH, KC_H, KC_J, KC_K, KC_L, LT(MDIA, KC_SCLN), LGUI_T(KC_QUOT),
@@ -42,7 +42,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_SPC, KC_BSPC, KC_LGUI, KC_LALT, KC_TAB, KC_ENT
),
- [SYMB] = LAYOUT_moonlander(
+ [SYMB] = LAYOUT(
VRSN, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, _______, _______, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,
_______, KC_EXLM, KC_AT, KC_LCBR, KC_RCBR, KC_PIPE, _______, _______, KC_UP, KC_7, KC_8, KC_9, KC_ASTR, KC_F12,
_______, KC_HASH, KC_DLR, KC_LPRN, KC_RPRN, KC_GRV, _______, _______, KC_DOWN, KC_4, KC_5, KC_6, KC_PLUS, _______,
@@ -51,7 +51,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
RGB_HUD, RGB_VAD, RGB_HUI, TOGGLE_LAYER_COLOR,_______, _______
),
- [MDIA] = LAYOUT_moonlander(
+ [MDIA] = LAYOUT(
LED_LEVEL,_______,_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, QK_BOOT,
_______, _______, _______, KC_MS_U, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, KC_MS_L, KC_MS_D, KC_MS_R, _______, _______, _______, _______, _______, _______, _______, _______, KC_MPLY,
diff --git a/keyboards/moonlander/keymaps/drashna/config.h b/keyboards/moonlander/keymaps/drashna/config.h
deleted file mode 100644
index 153007eb09..0000000000
--- a/keyboards/moonlander/keymaps/drashna/config.h
+++ /dev/null
@@ -1,27 +0,0 @@
-/* Copyright 2020 Christopher Courtney, aka Drashna Jael're (@drashna) <drashna@live.com>
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-
-#pragma once
-
-#define TAPPING_TERM_PER_KEY
-// #define WAIT_FOR_USB
-// #define NO_USB_STARTUP_CHECK
-
-#define SECURE_UNLOCK_SEQUENCE \
- { \
- { 2, 1 }, { 2, 2 }, { 2, 3 }, { 2, 4 } \
- }
diff --git a/keyboards/moonlander/keymaps/drashna/keymap.c b/keyboards/moonlander/keymaps/drashna/keymap.c
deleted file mode 100644
index 491283c37a..0000000000
--- a/keyboards/moonlander/keymaps/drashna/keymap.c
+++ /dev/null
@@ -1,198 +0,0 @@
-/* Copyright 2020 Christopher Courtney, aka Drashna Jael're (@drashna) <drashna@live.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 "drashna.h"
-
-enum more_custom_keycodes {
- KC_SWAP_NUM = USER_SAFE_RANGE,
-};
-
-// clang-format off
-#define LAYOUT_moonlander_wrapper(...) LAYOUT_moonlander(__VA_ARGS__)
-
-#define LAYOUT_moonlander_base( \
- K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, \
- K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, \
- K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A \
- ) \
- LAYOUT_moonlander_wrapper( \
- KC_ESC, ________________NUMBER_LEFT________________, UC_FLIP, UC_TABL, ________________NUMBER_RIGHT_______________, KC_MINS, \
- KC_TAB, K01, K02, K03, K04, K05, TG_DBLO, TG_DBLO, K06, K07, K08, K09, K0A, KC_BSLS, \
- KC_C1R3, K11, K12, K13, K14, K15, TG_GAME, TG_GAME, K16, K17, K18, K19, K1A, RALT_T(K1B), \
- KC_MLSF, CTL_T(K21), K22, K23, K24, K25, K26, K27, K28, K29, RCTL_T(K2A),KC_MRSF, \
- KC_GRV, OS_MEH, OS_HYPR, KC_LBRC, KC_RBRC, UC_CLUE, KC_DEL, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, UC_IRNY, \
- KC_SPC, BK_LWER, OS_LALT, OS_RGUI, DL_RAIS, KC_ENT \
- )
-
-#define LAYOUT_base_wrapper(...) LAYOUT_moonlander_base(__VA_ARGS__)
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [_DEFAULT_LAYER_1] = LAYOUT_base_wrapper(
- _________________QWERTY_L1_________________, _________________QWERTY_R1_________________,
- _________________QWERTY_L2_________________, _________________QWERTY_R2_________________,
- _________________QWERTY_L3_________________, _________________QWERTY_R3_________________
- ),
-
- [_DEFAULT_LAYER_2] = LAYOUT_base_wrapper(
- ______________COLEMAK_MOD_DH_L1____________, ______________COLEMAK_MOD_DH_R1____________,
- ______________COLEMAK_MOD_DH_L2____________, ______________COLEMAK_MOD_DH_R2____________,
- ______________COLEMAK_MOD_DH_L3____________, ______________COLEMAK_MOD_DH_R3____________
- ),
- [_DEFAULT_LAYER_3] = LAYOUT_base_wrapper(
- _________________COLEMAK_L1________________, _________________COLEMAK_R1________________,
- _________________COLEMAK_L2________________, _________________COLEMAK_R2________________,
- _________________COLEMAK_L3________________, _________________COLEMAK_R3________________
- ),
-
- [_DEFAULT_LAYER_4] = LAYOUT_base_wrapper(
- _________________DVORAK_L1_________________, _________________DVORAK_R1_________________,
- _________________DVORAK_L2_________________, _________________DVORAK_R2_________________,
- _________________DVORAK_L3_________________, _________________DVORAK_R3_________________
- ),
-
-
- [_GAMEPAD] = LAYOUT_moonlander_wrapper(
- KC_ESC, XXXXXXX, KC_1, KC_2, KC_3, KC_4, HYPR(KC_Q), _______, KC_F9, KC_F10, KC_F11, KC_F12, XXXXXXX, KC_NO,
- KC_F1, KC_K, KC_Q, KC_W, KC_E, KC_R, KC_T, UC_SHRG, UC_DISA, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_NO,
- KC_TAB, KC_G, KC_A, KC_S, KC_D, KC_F, _______, TG_GAME, KC_I, KC_O, XXXXXXX, XXXXXXX, XXXXXXX, KC_NO,
- KC_LCTL, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_N, KC_M, XXXXXXX, XXXXXXX, XXXXXXX, KC_NO,
- KC_GRV, KC_U, KC_I, KC_Y, KC_T, KC_PSCR, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_NO,
- KC_V, KC_SPC, KC_H, KC_NO, XXXXXXX,KC_SWAP_NUM
- ),
- [_DIABLO] = LAYOUT_moonlander_wrapper(
- KC_ESC, KC_V, KC_D, KC_LALT, XXXXXXX, XXXXXXX, XXXXXXX, _______, KC_F9, KC_F10, KC_F11, KC_F12, XXXXXXX, KC_NO,
- KC_TAB, KC_S, KC_I, KC_F, KC_M, KC_T, _______, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_NO,
- XXXXXXX, KC_1, KC_2, KC_3, KC_4, KC_G, XXXXXXX, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_NO,
- KC_LCTL, KC_D3_1, KC_D3_2, KC_D3_3, KC_D3_4, KC_Z, KC_N, KC_M, XXXXXXX, XXXXXXX, XXXXXXX, KC_NO,
- XXXXXXX, XXXXXXX, KC_L, KC_J, KC_F, KC_PSCR, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_NO,
- KC_DIABLO_CLEAR, SFT_T(KC_SPACE), ALT_T(KC_Q), KC_PGDN, KC_DEL, KC_ENT
- ),
- [_DIABLOII] = LAYOUT_moonlander_wrapper(
- KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_GRV, XXXXXXX, _______, KC_F9, KC_F10, KC_F11, KC_F12, XXXXXXX, KC_NO,
- KC_TAB, KC_A, KC_T, KC_Q, KC_I, KC_M, TG(_DIABLOII), _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_NO,
- KC_S, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, XXXXXXX, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_NO,
- KC_LCTL, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_N, KC_M, XXXXXXX, XXXXXXX, XXXXXXX, KC_NO,
- XXXXXXX, XXXXXXX, KC_G, KC_F, KC_L, KC_V, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_NO,
- KC_G, KC_LSFT, KC_LCTL, KC_PGDN, KC_DEL, KC_ENT
- ),
-
- [_LOWER] = LAYOUT_moonlander_wrapper(
- KC_F12, _________________FUNC_LEFT_________________, _______, _______, _________________FUNC_RIGHT________________, KC_F11,
- _______, _________________LOWER_L1__________________, _______, _______, _________________LOWER_R1__________________, KC_PIPE,
- _______, _________________LOWER_L2__________________, _______, _______, _________________LOWER_R2__________________, KC_DQUO,
- _______, _________________LOWER_L3__________________, _________________LOWER_R3__________________, KC_PSCR,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PAUS,
- _______, _______, _______, _______, _______, _______
- ),
-
- [_RAISE] = LAYOUT_moonlander_wrapper(
- KC_F12, _________________FUNC_LEFT_________________, _______, _______, _________________FUNC_RIGHT________________, KC_F11,
- _______, _________________RAISE_L1__________________, _______, _______, _________________RAISE_R1__________________, KC_BSLS,
- _______, _________________RAISE_L2__________________, _______, _______, _________________RAISE_R2__________________, KC_QUOT,
- _______, _________________RAISE_L3__________________, _________________RAISE_R3__________________, KC_PSCR,
- _______, _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_PGUP, KC_END, KC_PAUS,
- _______, _______, _______, _______, _______, _______
- ),
-
- [_ADJUST] = LAYOUT_moonlander_wrapper(
- QK_MAKE, KC_WIDE,KC_AUSSIE,KC_SCRIPT,KC_ZALGO,KC_NOMODE,_______, KC_NUKE,KC_NOMODE,KC_BLOCKS,KC_REGIONAL,_______,_______, QK_BOOT,
- VRSN, _________________ADJUST_L1_________________, TG(_DIABLOII), _______, _________________ADJUST_R1_________________, EE_CLR,
- KEYLOCK, _________________ADJUST_L2_________________, _______, _______, _________________ADJUST_R2_________________, RGB_IDL,
- UC_NEXT, _________________ADJUST_L3_________________, _________________ADJUST_R3_________________, TG_MODS,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, AUTO_CTN,
- QK_RBT, _______, _______, _______, _______, _______
- ),
-};
-
-/* Blank
-
- [_LAYER] = LAYOUT_moonlander_wrapper(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______
- ),
-
-*/
-
-
-bool process_record_keymap(uint16_t keycode, keyrecord_t *record) {
- switch (keycode) {
- case KC_1:
- if (layer_state_is(_GAMEPAD) && userspace_config.swapped_numbers) {
- if (record->event.pressed) {
- register_code(KC_2);
- } else {
- unregister_code(KC_2);
- }
- return false;
- }
- break;
- case KC_2:
- if (layer_state_is(_GAMEPAD) && userspace_config.swapped_numbers) {
- if (record->event.pressed) {
- register_code(KC_1);
- } else {
- unregister_code(KC_1);
- }
- return false;
- }
- break;
- case KC_SWAP_NUM:
- if (record->event.pressed) {
- userspace_config.swapped_numbers ^= 1;
- eeconfig_update_user_config(&userspace_config.raw);
- unregister_code(KC_1);
- unregister_code(KC_2);
- }
- break;
- }
- return true;
-}
-
-#ifdef RGB_MATRIX_ENABLE
-bool rgb_matrix_indicators_advanced_keymap(uint8_t led_min, uint8_t led_max) {
- if (layer_state_is(_GAMEPAD)) {
- RGB_MATRIX_INDICATOR_SET_COLOR(11, 0x00, 0xFF, 0x00); // Q
- RGB_MATRIX_INDICATOR_SET_COLOR(16, 0x00, 0xFF, 0xFF); // W
- RGB_MATRIX_INDICATOR_SET_COLOR(21, 0xFF, 0x00, 0x00); // E
- RGB_MATRIX_INDICATOR_SET_COLOR(26, 0xFF, 0x80, 0x00); // R
- RGB_MATRIX_INDICATOR_SET_COLOR(12, 0x00, 0xFF, 0xFF); // A
- RGB_MATRIX_INDICATOR_SET_COLOR(17, 0x00, 0xFF, 0xFF); // S
- RGB_MATRIX_INDICATOR_SET_COLOR(22, 0x00, 0xFF, 0xFF); // D
- RGB_MATRIX_INDICATOR_SET_COLOR(27, 0x7A, 0x00, 0xFF); // F
-
- RGB_MATRIX_INDICATOR_SET_COLOR((userspace_config.swapped_numbers ? 15 : 10), 0xFF, 0xFF, 0xFF); // 1
- RGB_MATRIX_INDICATOR_SET_COLOR((userspace_config.swapped_numbers ? 10 : 15), 0x00, 0xFF, 0x00); // 2
- RGB_MATRIX_INDICATOR_SET_COLOR(20, 0x7A, 0x00, 0xFF); // 3
- }
-
- return true;
-}
-#endif
-
-#ifdef TAPPING_TERM_PER_KEY
-uint16_t get_tapping_term(uint16_t keycode, keyrecord_t *record) {
- if (keycode >= QK_MOD_TAP && keycode <= QK_MOD_TAP_MAX) {
- if (mod_config(keycode & 0xf) & MOD_MASK_ALT) {
- return (2 * TAPPING_TERM);
- }
- }
- return TAPPING_TERM;
-}
-#endif
diff --git a/keyboards/moonlander/keymaps/drashna/rules.mk b/keyboards/moonlander/keymaps/drashna/rules.mk
deleted file mode 100644
index 45113afc71..0000000000
--- a/keyboards/moonlander/keymaps/drashna/rules.mk
+++ /dev/null
@@ -1,8 +0,0 @@
-TAP_DANCE_ENABLE = yes
-BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite
-UNICODE_ENABLE = yes
-UNICODEMAP_ENABLE = no
-AUTOCORRECT_ENABLE = yes
-CAPS_WORD_ENABLE = yes
-
-BOOTLOADER = tinyuf2
diff --git a/keyboards/moonlander/keymaps/jjerrell/config.h b/keyboards/moonlander/keymaps/jjerrell/config.h
deleted file mode 100644
index e39340c80a..0000000000
--- a/keyboards/moonlander/keymaps/jjerrell/config.h
+++ /dev/null
@@ -1,26 +0,0 @@
-/* Copyright 2020 ZSA Technology Labs, Inc <@zsa>
- * Copyright 2020 Jack Humbert <jack.humb@gmail.com>
- * Copyright 2020 Christopher Courtney <drashna@live.com> (@drashna)
- * Copyright 2021 Jacob Jerrell <@jjerrell>
- *
- * 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 ORYX_CONFIGURATOR
-
-#undef PRODUCT
-#define PRODUCT "Moonlander Mark I - Modified by <@jjerrell>"
-
diff --git a/keyboards/moonlander/keymaps/jjerrell/keymap.c b/keyboards/moonlander/keymaps/jjerrell/keymap.c
deleted file mode 100644
index ee6226177f..0000000000
--- a/keyboards/moonlander/keymaps/jjerrell/keymap.c
+++ /dev/null
@@ -1,117 +0,0 @@
-/**
- * Copyright (C) 2021 Jerrell, Jacob <@jjerrell>
- *
- * This file is part of qmk_firmware.
- *
- * qmk_firmware 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 3 of the License, or
- * (at your option) any later version.
- *
- * qmk_firmware 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 qmk_firmware. If not, see <http://www.gnu.org/licenses/>.
- */
-
-#include "jjerrell.h"
-
-enum moonlander_layers {
- _GAME_LOWER = LAYER_SAFE_RANGE,
- // _GAME_RAISE,
-};
-
-// clang-format off
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [_WORKMAN] = LAYOUT_moonlander_mods(
- __________________WORKMN_L1__________________, __________________WORKMN_R1__________________,
- __________________WORKMN_L2__________________, __________________WORKMN_R2__________________,
- __________________WORKMN_L3__________________, __________________WORKMN_R3__________________,
- XXXXXXX, XXXXXXX, XXXXXXX, KC_LSFT, KC_RSFT, XXXXXXX, XXXXXXX, XXXXXXX
- ),
-
- [_LOWER] = LAYOUT_moonlander_mods(
- __________________LOWER_L1___________________, __________________LOWER_R1___________________,
- __________________LOWER_L2___________________, __________________LOWER_R2___________________,
- __________________LOWER_L3___________________, __________________LOWER_R3___________________,
- XXXXXXX, XXXXXXX, XXXXXXX, KC_LSFT, KC_0, KC_DOT, KC_COMM, KC_PLUS
- ),
-
- [_RAISE] = LAYOUT_moonlander_common(
- __________________RAISE_L1___________________, __________________RAISE_R1___________________,
- __________________RAISE_L2___________________, __________________RAISE_R2___________________,
- __________________RAISE_L3___________________, __________________RAISE_R3___________________,
- XXXXXXX, XXXXXXX, XXXXXXX, KC_LSFT, KC_RSFT, XXXXXXX, XXXXXXX, XXXXXXX
- ),
-
- [_ADJUST] = LAYOUT_moonlander_common(
- __________________ADJUST_L1__________________, __________________ADJUST_R1__________________,
- __________________ADJUST_L2__________________, __________________ADJUST_R2__________________,
- __________________ADJUST_L3__________________, __________________ADJUST_R3__________________,
- XXXXXXX, XXXXXXX, XXXXXXX, KC_LSFT, KC_RSFT, XXXXXXX, XXXXXXX, XXXXXXX
- ),
-
- [_SPECIAL] = LAYOUT_moonlander_common(
- XXXXXXX, XXXXXXX, KC_WH_D, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
- XXXXXXX, KC_WH_L, KC_WH_U, KC_WH_R, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
- XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
- XXXXXXX, XXXXXXX, XXXXXXX, KC_LALT, KC_RALT, XXXXXXX, XXXXXXX, XXXXXXX
- ),
-
- [_GAME] = LAYOUT_moonlander_gamepad(
- KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6,
- KC_TAB, __________________QWERTY_L1__________________, KC_SLSH,
- KC_LALT, __________________QWERTY_L2__________________, KC_BSLS,
- KC_LSFT, __________________QWERTY_L3__________________,
- KC_LGUI, MACRO_1, MACRO_2, MACRO_3, MACRO_4, QK_LOCK,
- KC_SPC, KC_BTN2, MO(_LOWER)
- ),
- [_GAME_LOWER] = LAYOUT_moonlander_gamepad(
- KC_GRV, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL,
- KC_TAB, __________________QWERTY_L1__________________, KC_SLSH,
- KC_LALT, __________________QWERTY_L2__________________, KC_BSLS,
- KC_LSFT, __________________QWERTY_L3__________________,
- KC_LGUI, MACRO_5, MACRO_6, MACRO_7, MACRO_8, QK_LOCK,
- KC_SPC, KC_BTN2, MO(_LOWER)
- )
-};
-// clang-format on
-
-layer_state_t layer_state_set_keymap(layer_state_t state) {
- ML_LED_1(0);
- ML_LED_2(0);
- ML_LED_3(0);
- ML_LED_4(0);
- ML_LED_5(0);
- ML_LED_6(0);
- state = update_tri_layer_state(state, _GAME, _LOWER, _GAME_LOWER);
- switch (get_highest_layer(state)) {
- case 1:
- ML_LED_1(1);
- ML_LED_4(1);
- break;
- case 2:
- ML_LED_2(1);
- ML_LED_5(1);
- break;
- case 3:
- ML_LED_3(1);
- break;
- case 4:
- ML_LED_4(1);
- break;
- case 5:
- ML_LED_5(1);
- break;
- case 6:
- ML_LED_6(1);
- break;
- default:
- break;
- }
-
- return state;
-}
diff --git a/keyboards/moonlander/keymaps/jjerrell/readme.md b/keyboards/moonlander/keymaps/jjerrell/readme.md
deleted file mode 100644
index 51476f8ab9..0000000000
--- a/keyboards/moonlander/keymaps/jjerrell/readme.md
+++ /dev/null
@@ -1,3 +0,0 @@
-# Jacob Jerrell's Moonlander Keymap
-
-Concrete proof and acceptance of a problem. There is some not so custom Moonlander LED control in here but everything else is implemented in [my userspace](../../../../users/jjerrell/).
diff --git a/keyboards/moonlander/keymaps/jjerrell/rules.mk b/keyboards/moonlander/keymaps/jjerrell/rules.mk
deleted file mode 100644
index ef72559a0c..0000000000
--- a/keyboards/moonlander/keymaps/jjerrell/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-AUDIO_ENABLE = yes
diff --git a/keyboards/moonlander/keymaps/manna-harbour_miryoku/config.h b/keyboards/moonlander/keymaps/manna-harbour_miryoku/config.h
deleted file mode 100644
index 44679baf74..0000000000
--- a/keyboards/moonlander/keymaps/manna-harbour_miryoku/config.h
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright 2019 Manna Harbour
-// https://github.com/manna-harbour/miryoku
-
-// 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 XXX KC_NO
-
-#define LAYOUT_miryoku(\
- 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,\
- N30, N31, K32, K33, K34, K35, K36, K37, N38, N39\
-)\
-LAYOUT_moonlander(\
-XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX,\
-XXX, K00, K01, K02, K03, K04, XXX, XXX, K05, K06, K07, K08, K09, XXX,\
-XXX, K10, K11, K12, K13, K14, XXX, XXX, K15, K16, K17, K18, K19, XXX,\
-XXX, K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, XXX,\
-XXX, XXX, XXX, XXX, K32, XXX, XXX, K37, XXX, XXX, XXX, XXX,\
- K33, K34, XXX, XXX, K35, K36\
-)
diff --git a/keyboards/moonlander/keymaps/manna-harbour_miryoku/keymap.c b/keyboards/moonlander/keymaps/manna-harbour_miryoku/keymap.c
deleted file mode 100644
index dbab7f9820..0000000000
--- a/keyboards/moonlander/keymaps/manna-harbour_miryoku/keymap.c
+++ /dev/null
@@ -1,4 +0,0 @@
-// Copyright 2019 Manna Harbour
-// https://github.com/manna-harbour/miryoku
-
-// 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/>.
diff --git a/keyboards/moonlander/keymaps/via/keymap.c b/keyboards/moonlander/keymaps/via/keymap.c
index 91ad0d1bf7..4b1e4c83e7 100644
--- a/keyboards/moonlander/keymaps/via/keymap.c
+++ b/keyboards/moonlander/keymaps/via/keymap.c
@@ -29,7 +29,7 @@ enum layers {
// clang-format off
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [BASE] = LAYOUT_moonlander(
+ [BASE] = LAYOUT(
KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, KC_LEFT, KC_RGHT, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS,
KC_DEL, KC_Q, KC_W, KC_E, KC_R, KC_T, TG(SYMB), TG(SYMB), KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS,
KC_BSPC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_HYPR, KC_MEH, KC_H, KC_J, KC_K, KC_L, LT(MDIA, KC_SCLN), LGUI_T(KC_QUOT),
@@ -38,7 +38,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_SPC, KC_BSPC, KC_LGUI, KC_LALT, KC_TAB, KC_ENT
),
- [SYMB] = LAYOUT_moonlander(
+ [SYMB] = LAYOUT(
QK_KB_0, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, _______, _______, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,
_______, KC_EXLM, KC_AT, KC_LCBR, KC_RCBR, KC_PIPE, _______, _______, KC_UP, KC_7, KC_8, KC_9, KC_ASTR, KC_F12,
_______, KC_HASH, KC_DLR, KC_LPRN, KC_RPRN, KC_GRV, _______, _______, KC_DOWN, KC_4, KC_5, KC_6, KC_PLUS, _______,
@@ -47,7 +47,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
RGB_HUD, RGB_VAD, RGB_HUI, _______, _______, _______
),
- [MDIA] = LAYOUT_moonlander(
+ [MDIA] = LAYOUT(
QK_KB_1, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, QK_BOOT,
_______, _______, _______, KC_MS_U, _______, _______, _______, _______, _______, _______, _______, _______, _______, EE_CLR,
_______, _______, KC_MS_L, KC_MS_D, KC_MS_R, _______, _______, _______, _______, _______, _______, _______, _______, KC_MPLY,
@@ -55,7 +55,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
_______, _______, _______, KC_BTN1, KC_BTN2, _______, _______, KC_VOLU, KC_VOLD, KC_MUTE, _______, _______,
_______, _______, _______, _______, _______, _______
),
- [3] = LAYOUT_moonlander(
+ [3] = LAYOUT(
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
@@ -63,7 +63,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______
),
- [4] = LAYOUT_moonlander(
+ [4] = LAYOUT(
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
@@ -71,7 +71,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______
),
- [5] = LAYOUT_moonlander(
+ [5] = LAYOUT(
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
@@ -79,7 +79,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______
),
- [6] = LAYOUT_moonlander(
+ [6] = LAYOUT(
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
@@ -87,7 +87,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______
),
- [7] = LAYOUT_moonlander(
+ [7] = LAYOUT(
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
diff --git a/keyboards/moonlander/moonlander.c b/keyboards/moonlander/moonlander.c
index 4146fc7afb..5b52ba7031 100644
--- a/keyboards/moonlander/moonlander.c
+++ b/keyboards/moonlander/moonlander.c
@@ -172,7 +172,7 @@ layer_state_t layer_state_set_kb(layer_state_t state) {
#ifdef RGB_MATRIX_ENABLE
// clang-format off
-const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = {
+const is31fl3731_led_t PROGMEM g_is31fl3731_leds[RGB_MATRIX_LED_COUNT] = {
/* Refer to IS31 manual for these locations
* driver
* | R location
diff --git a/keyboards/moonlander/rules.mk b/keyboards/moonlander/rules.mk
index 12987afdac..204c5940e4 100644
--- a/keyboards/moonlander/rules.mk
+++ b/keyboards/moonlander/rules.mk
@@ -14,10 +14,9 @@ AUDIO_DRIVER = dac_additive
CUSTOM_MATRIX = lite
SWAP_HANDS_ENABLE = yes
RGB_MATRIX_ENABLE = yes
-EEPROM_DRIVER = i2c
#project specific files
SRC += matrix.c
-QUANTUM_LIB_SRC += i2c_master.c
+I2C_DRIVER_REQUIRED = yes
MOUSE_SHARED_EP = no
diff --git a/keyboards/mt/mt64rgb/config.h b/keyboards/mt/mt64rgb/config.h
index 0d877306e3..eff38f91cc 100644
--- a/keyboards/mt/mt64rgb/config.h
+++ b/keyboards/mt/mt64rgb/config.h
@@ -22,9 +22,8 @@
#define RGB_MATRIX_MAXIMUM_BRIGHTNESS 160
#define RGB_MATRIX_LED_PROCESS_LIMIT 20
#define RGB_MATRIX_LED_FLUSH_LIMIT 26
-#define DRIVER_ADDR_1 0b1010000
+#define IS31FL3733_I2C_ADDRESS_1 IS31FL3733_I2C_ADDRESS_GND_GND
-#define DRIVER_COUNT 1
#define RGB_MATRIX_LED_COUNT 64
diff --git a/keyboards/mt/mt64rgb/mt64rgb.c b/keyboards/mt/mt64rgb/mt64rgb.c
index 9fb25fb168..7a6831f6d0 100644
--- a/keyboards/mt/mt64rgb/mt64rgb.c
+++ b/keyboards/mt/mt64rgb/mt64rgb.c
@@ -16,7 +16,7 @@
#include "quantum.h"
#ifdef RGB_MATRIX_ENABLE
-const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = {
+const is31fl3733_led_t PROGMEM g_is31fl3733_leds[RGB_MATRIX_LED_COUNT] = {
/* Refer to IS31 manual for these locations
* driver
* | R location
diff --git a/keyboards/mt/mt84/config.h b/keyboards/mt/mt84/config.h
index 67aae9a1fd..34ec1be86a 100644
--- a/keyboards/mt/mt84/config.h
+++ b/keyboards/mt/mt84/config.h
@@ -22,12 +22,9 @@
#define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_CYCLE_ALL
#define RGB_MATRIX_LED_PROCESS_LIMIT 20
#define RGB_MATRIX_LED_FLUSH_LIMIT 26
- #define DRIVER_ADDR_1 0b1010000
- #define DRIVER_ADDR_2 0b1011111
+ #define IS31FL3737_I2C_ADDRESS_1 IS31FL3737_I2C_ADDRESS_GND
+ #define IS31FL3737_I2C_ADDRESS_2 IS31FL3737_I2C_ADDRESS_VCC
-
-
- #define DRIVER_COUNT 2
#define DRIVER_1_LED_TOTAL 44
#define DRIVER_2_LED_TOTAL 40
#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL)
diff --git a/keyboards/mt/mt84/mt84.c b/keyboards/mt/mt84/mt84.c
index fcbf65cf46..fd4811e63a 100644
--- a/keyboards/mt/mt84/mt84.c
+++ b/keyboards/mt/mt84/mt84.c
@@ -16,7 +16,7 @@
#include "quantum.h"
#ifdef RGB_MATRIX_ENABLE
-const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = {
+const is31fl3737_led_t PROGMEM g_is31fl3737_leds[RGB_MATRIX_LED_COUNT] = {
/* Refer to IS31 manual for these locations
* driver
* | R location
diff --git a/keyboards/mt/split75/keymaps/art/.gitignore b/keyboards/mt/split75/keymaps/art/.gitignore
deleted file mode 100644
index 46bb98e431..0000000000
--- a/keyboards/mt/split75/keymaps/art/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-*user_config.c \ No newline at end of file
diff --git a/keyboards/mt/split75/keymaps/art/config.h b/keyboards/mt/split75/keymaps/art/config.h
deleted file mode 100644
index 2f937491c7..0000000000
--- a/keyboards/mt/split75/keymaps/art/config.h
+++ /dev/null
@@ -1,19 +0,0 @@
-// Copyright 2022 Artjoms Rizihs (@artjomsR)
-// SPDX-License-Identifier: GPL-2.0-or-later
-
-#pragma once
-
-#define RGBLIGHT_EFFECT_RAINBOW_SWIRL
-#define RGBLIGHT_EFFECT_STATIC_GRADIENT
-
-
-#undef RGBLIGHT_EFFECT_BREATHING
-#undef RGBLIGHT_EFFECT_RAINBOW_MOOD
-#undef RGBLIGHT_EFFECT_SNAKE
-#undef RGBLIGHT_EFFECT_KNIGHT
-#undef RGBLIGHT_EFFECT_CHRISTMAS
-#undef RGBLIGHT_EFFECT_RGB_TEST
-#undef RGBLIGHT_EFFECT_ALTERNATING
-#undef RGBLIGHT_EFFECT_TWINKLE
-
-// #define DYNAMIC_MACRO_SIZE 48
diff --git a/keyboards/mt/split75/keymaps/art/keymap.c b/keyboards/mt/split75/keymaps/art/keymap.c
deleted file mode 100644
index 1658c8ba38..0000000000
--- a/keyboards/mt/split75/keymaps/art/keymap.c
+++ /dev/null
@@ -1,263 +0,0 @@
-// Copyright 2022 Artjoms Rizihs (@artjomsR)
-// SPDX-License-Identifier: GPL-2.0-or-later
-
-#include "art.h"
-#include "sendstring_workman_zxcvm.h"
-
-enum custom_keycodes {
- keyboardSpecificKeyCode = NEW_SAFE_RANGE //not used atm
-};
-
-void num_led_on(void) {
- writePinHigh(LED_NUM_LOCK_PIN);
-}
-
-void num_led_off(void) {
- writePinLow(LED_NUM_LOCK_PIN);
-}
-
-void caps_led_on(void) {
- writePinHigh(LED_CAPS_LOCK_PIN);
-}
-
-void caps_led_off(void) {
- writePinLow(LED_CAPS_LOCK_PIN);
-}
-
-void scroll_led_on(void) {
- writePinHigh(LED_SCROLL_LOCK_PIN);
-}
-
-void scroll_led_off(void) {
- writePinLow(LED_SCROLL_LOCK_PIN);
-}
-
-layer_state_t layer_state_set_user(layer_state_t state) {
- num_led_off();
- scroll_led_off();
- switch (get_highest_layer(state)) {
- case MEDIA:
- case WORKMAN:
- scroll_led_on();
- case BASE:
- case NAV:
- num_led_on();
- break;
- case NUMPAD:
- scroll_led_on();
- break;
- }
- return state;
-}
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
- /* QWERTY ,-----------------------------------------. ,-----------------------------------------------------.
- * | ESC | F1 | F2 | F3 | F4 | F5 | F6 | | F7 | F8 | F9 | F10 | F11 | F12 |Print| Ins | Home|
- * ,-----------. |-----+-----+-----+-----+-----+-----+-----| |-----+-----+-----+-----+-----+-----+-----------+-----|
- * | 8 | 9 | | ~ | 1 | 2 | 3 | 4 | 5 | 6 | | 7 | 8 | 9 | 0 | - | = | Backspac | Del |
- * |-----+-----| |-----------------------------------------' ,--------------------------------------------------+-----|
- * | 6 | 7 | | Tab | Q | W | E | R | T | | Y | U | I | O | P | [ | ] | \ | End |
- * |-----+-----| |---------------------------------------. `--------------------------------------------------+-----|
- * | 4 | 5 | | Caps | A | S | D | F | G | | H | J | K | L | ; | ' | Enter | PgUp|
- * |-----+-----| |-----------------------------------------. `-------------------------------------------------+-----|
- * | 2 | 3 | | Shift | Z | X | C | V | B | | N | M | , | . | / | Shift | Up | PgDn|
- * |-----+-----| |-----------------------------------------' ,-------------------------------------------+-----+-----|
- * | 0 | 1 | | Ctrl | GUI | Alt |Spac/MEDIA | BSPC| | NAV | Alt | NAV | Ctrl | Left| Down|Right|
- * `-----------' `---------------------------------------' `-------------------------------------------------------'
- */
- [QWERTY] = LAYOUT(
-//--------------------------------Left Hand------------------------------------| |--------------------------------Right Hand------------------------------------------------
- KC_ESC, KC_MPLY, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, LT(CONFIG, KC_PSCR), KC_INS, KC_HOME,
-KC_VOLD,KC_VOLU, KC_GRAVE, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINUS, KC_EQUAL, KC_BSPC, KC_DEL,
-KC_MPRV,KC_MNXT, 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_END,
-KC_HOME,KC_END, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN,KC_QUOT,KC_ENTER, KC_PGUP,
-DM_PLY1,KC_MUTE,KC_LSFT,KC_Z,KC_X,KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, LT(GIT,KC_SLSH), KC_RSFT, KC_UP, KC_PGDN,
-DM_RSTP,DM_REC1,KC_LCTL, KC_LGUI, KC_LALT, LT(MEDIA,KC_SPC), LT(COMBOS,KC_BSPC), LT(NAV,KC_APP), LT(LAYOUT_CHG, KC_ENTER),KC_RALT,KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT
- ),
-
- /* Base ,-----------------------------------------. ,-----------------------------------------------------.
- * | ESC | F1 | F2 | F3 | F4 | F5 | F6 | | F7 | F8 | F9 | F10 | F11 | F12 |Print| Ins | Home|
- * ,-----------. |-----+-----+-----+-----+-----+-----+-----| |-----+-----+-----+-----+-----+-----+-----------+-----|
- * | 8 | 9 | | ~ | 1 | 2 | 3 | 4 | 5 | 6 | | 7 | 8 | 9 | 0 | - | = | Backspac | Del |
- * |-----+-----| |-----------------------------------------' ,--------------------------------------------------+-----|
- * | 6 | 7 | | Tab | Q | W | E | R | T | | Y | U | I | O | P | [ | ] | \ | End |
- * |-----+-----| |---------------------------------------. `--------------------------------------------------+-----|
- * | 4 | 5 | | Caps | A | S | D | F | G | | H | J | K | L | ; | ' | Enter | PgUp|
- * |-----+-----| |-----------------------------------------. `-------------------------------------------------+-----|
- * | 2 | 3 | | Shift | Z | X | C | V | B | | N | M | , | . | / | Shift | Up | PgDn|
- * |-----+-----| |-----------------------------------------' ,-------------------------------------------+-----+-----|
- * | 0 | 1 | | Ctrl | GUI | Alt | Space |Space| | Space | Alt |QW_ON| Ctrl | Left| Down|Right|
- * `-----------' `---------------------------------------' `-------------------------------------------------------'
- */
- [BASE] = LAYOUT(
-//--------------------------------Left Hand-----------------------------------| |--------------------------------Right Hand------------------------------------------------
- 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, LT(CONFIG, KC_PSCR), KC_INS, KC_HOME,
-KC_8, KC_9, KC_GRAVE, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINUS, KC_EQUAL, KC_BSPC, KC_DEL,
-KC_6, KC_7, 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_END,
-KC_4, KC_5, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENTER, KC_PGUP,
-KC_2, KC_3, 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_PGDN,
-KC_0, KC_1, OS_CTRL, OS_WIN, KC_LALT, KC_SPC, KC_SPC, KC_SPC, MO(QWERTY_MOD), KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT
- ),
-
- [WORKMAN] = LAYOUT(
-//--------------------------------Left Hand-----------------------------------------------| |--------------------------------Right Hand------------------------------------------------
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
-_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
-_______, _______, _______, 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_C, KC_V, KC_M, KC_K, KC_L, KC_COMM, KC_DOT, _______, _______, _______, _______,
-_______, _______, _______, _______, _______, _______, LT(COMBOS,KC_BSPC), LT(NAV,KC_APP), LT(LAYOUT_CHG, KC_ENTER), TO(QWERTY), _______, _______, _______, _______
- ),
-
- [NAV] = LAYOUT(
-//--------------------------------Left Hand-----------------------------------------------| |--------------------------------Right Hand------------------------------------------------
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
-KC_8, KC_9, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
-KC_6, KC_7, _______, KC_ESC, KC_HOME, KC_UP, KC_END, KC_PGUP, XXXXXXX, KC_MS_BTN1, KC_MS_BTN3, KC_MS_BTN2, XXXXXXX, _______, _______, _______, _______,
-KC_4, KC_5, _______, XXXXXXX, KC_LEFT, KC_DOWN, KC_RIGHT, KC_PGDN, KC_APP, CTR_ALT, KC_RSFT, CTR_ALT_SHIFT, _______, _______, _______, _______,
-KC_2, KC_3, _______, XXXXXXX, LCTL(KC_X),LCTL(KC_C),LCTL(KC_V), XXXXXXX, XXXXXXX, XXXXXXX, _______, _______, _______, _______, _______, _______,
-KC_0, KC_1, _______, _______, _______, KC_DEL, _______, _______, _______, _______, _______, _______, _______, _______
- ),
-
- [MEDIA] = LAYOUT(
-//--------------------------------Left Hand-----------------------------------------------| |--------------------------------Right Hand------------------------------------------------
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
-_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
-_______, _______, _______, KC_MPRV, KC_VOLU, KC_MNXT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
-_______, _______, _______, _______, KC_VOLD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
-_______, _______, _______, _______, KC_MUTE, KC_MPLY, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
-_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
- ),
-
- [COMBOS] = LAYOUT(
-//--------------------------------Left Hand-----------------------------------------------| |--------------------------------Right Hand------------------------------------------------
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
-_______, _______, TILD_BLOCK, _______, QUOTES_RU, K_CUST1, K_CUST2, K_CUST3, _______, _______, STARS, PARENTHS, _______, DASHES, _______, _______, _______,
-_______, _______, _______, _______, _______, NEUTRAL_COPY, _______, BEAT_BROWSER, K_SECR1, K_SECR2, K_SECR3, K_SECR4, _______, BRACES, TOG_OS, _______, _______,
-_______, _______, _______, ADMINS, SARCASM, ALL_BEST,CTRL_CTV, _______, AT_EMAIL, _______, _______, _______, _______, QUOTES, _______, _______,
-_______, _______, _______, _______, _______, CTRL_CAV, _______, XXXXXXX, _______, CTRL_LCTV, _______, _______, _______, _______, _______, _______,
-_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
- ),
-
-// [STRINGS] = LAYOUT(
-// //--------------------------------Left Hand-----------------------------------------------| |--------------------------------Right Hand------------------------------------------------
-// _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
-// _______, _______, TILD_BLOCK, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
-// _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
-// _______, _______, _______, ADMINS, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
-// _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
-// _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
-// ),
-
- [QWERTY_MOD] = LAYOUT(
-//--------------------------------Left Hand-----------------------------------------------| |--------------------------------Right Hand------------------------------------------------
- _______, _______, KC_VOLD, KC_VOLU, KC_MUTE, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
-_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
-_______, _______, _______, KC_MPRV, KC_VOLU, KC_MNXT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
-_______, _______, _______, _______, KC_VOLD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
-_______, _______, _______, _______, KC_MUTE, KC_MPLY, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
-_______, _______, TO(QWERTY),_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
- ),
-
- [LAYOUT_CHG] = LAYOUT(
-//--------------------------------Left Hand-----------------------------------------------| |--------------------------------Right Hand------------------------------------------------
- _______, KC_F1, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
-_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
-_______, _______, _______, _______, CTL_ALT(KC_HOME), CTL_ALT(KC_UP), CTL_ALT(KC_END), CTL_ALT(KC_PGUP), _______, _______,_______, _______,_______,_______,_______, _______, _______,
-_______, _______, _______, _______, CTL_ALT(KC_LEFT), CTL_ALT(KC_DOWN), CTL_ALT(KC_RIGHT), CTL_ALT(KC_PGDN), _______,_______,_______,_______,_______, _______, _______, _______,
-_______, _______, TO(WORKMAN), LCTL(KC_Z), LCTL(KC_X), LCTL(KC_C), LCTL(KC_V), _______, _______, _______, _______, _______, _______, _______, _______, _______,
-TO(NUMPAD), TO(NUMPAD), TO(BASE), _______, _______, _______, CTL_ALT(KC_BSPC), KC_LSFT, _______, _______, _______, _______, _______, _______
- ),
-
- [CONFIG] = LAYOUT(
-//--------------------------------Left Hand-----------------------------------------------| |--------------------------------Right Hand------------------------------------------------
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
-RGB_VAD, RGB_VAI, RGB_MODE_PLAIN, RGB_MODE_BREATHE, RGB_MODE_RAINBOW, RGB_MODE_SWIRL, RGB_MODE_SNAKE, RGB_MODE_KNIGHT, RGB_MODE_XMAS, RGB_MODE_GRADIENT, RGB_MODE_RGBTEST, XXXXXXX, XXXXXXX, _______, _______, _______, _______,
-RGB_SAD, RGB_SAI, _______, _______, _______, _______, _______, _______, _______, _______, _______, XXXXXXX, _______, _______, _______, _______, _______,
-RGB_HUD, RGB_HUI, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
-RGB_RMOD, RGB_MOD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
-RGB_TOG, XXXXXXX, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
- ),
-
- [NUMPAD] = LAYOUT(
-//--------------------------------Left Hand-----------------------------------------------| |--------------------------------Right Hand------------------------------------------------
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
-KC_8, KC_9, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
-KC_6, KC_7, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
-KC_4, KC_5, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
-KC_2, KC_3, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
-KC_0, KC_1, _______, _______, _______, _______, _______, _______, _______, TO(QWERTY),_______, _______, _______, _______
- ),
-
- [GIT] = LAYOUT(
-//--------------------------------Left Hand-----------------------------------------------| |--------------------------------Right Hand------------------------------------------------
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
-_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
-_______, _______, _______, _______, G_DIFF, G_R, _______, G_BRCH, _______, G_FTCH, G_PULL, G_PUSH, _______, _______, _______, _______, _______,
-_______, _______, _______, G_ADD, G_S, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
-_______, _______, _______, G_DEV, _______, G_C, _______, G_MERG, _______, G_LOG, _______, XXXXXXX, _______, _______, _______, _______,
-_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
- ),
-
- [GIT_C] = LAYOUT(
-//--------------------------------Left Hand-----------------------------------------------| |--------------------------------Right Hand------------------------------------------------
- XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
-XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, XXXXXXX,
-XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
-XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, G_CHEC, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, G_COMM, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
-XXXXXXX, XXXXXXX, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, XXXXXXX, XXXXXXX,
-XXXXXXX, XXXXXXX, _______, XXXXXXX, XXXXXXX, XXXXXXX, KC_BSPC, XXXXXXX, XXXXXXX, XXXXXXX, _______, XXXXXXX, XXXXXXX, XXXXXXX
- ),
-
- [GIT_R] = LAYOUT(
-//--------------------------------Left Hand-----------------------------------------------| |--------------------------------Right Hand------------------------------------------------
- XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
-XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, XXXXXXX,
-XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, G_RBASE, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
-XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, G_RST, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
-XXXXXXX, XXXXXXX, _______, XXXXXXX, XXXXXXX, XXXXXXX, G_RVERT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, XXXXXXX, XXXXXXX,
-XXXXXXX, XXXXXXX, _______, XXXXXXX, XXXXXXX, XXXXXXX, KC_BSPC, XXXXXXX, XXXXXXX, XXXXXXX, _______, XXXXXXX, XXXXXXX, XXXXXXX
- ),
-
- [GIT_S] = LAYOUT(
-//--------------------------------Left Hand-----------------------------------------------| |--------------------------------Right Hand------------------------------------------------
- XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
-XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, XXXXXXX,
-XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
-XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, G_STSH, G_SHOW, G_STAT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
-XXXXXXX, XXXXXXX, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, XXXXXXX, XXXXXXX,
-XXXXXXX, XXXXXXX, _______, XXXXXXX, XXXXXXX, XXXXXXX, KC_BSPC, XXXXXXX, XXXXXXX, XXXXXXX, _______, XXXXXXX, XXXXXXX, XXXXXXX
- ),
-
- /* ,-----------------------------------------. ,-----------------------------------------------------.
- * | | | | | | | | | | | | | | | | | |
- * ,-----------. |-----+-----+-----+-----+-----+-----+-----| |-----+-----+-----+-----+-----+-----+-----------+-----|
- * | | | | | | | | | | | | | | | | | | | |
- * |-----+-----| |-----------------------------------------' ,--------------------------------------------------+-----|
- * | | | | | | | | | | | | | | | | | | | |
- * |-----+-----| |---------------------------------------. `--------------------------------------------------+-----|
- * | | | | | | | | | | | | | | | | | | |
- * |-----+-----| |-----------------------------------------. `-------------------------------------------------+-----|
- * | | | | | | | | | | | | | | | | | | |
- * |-----+-----| |-----------------------------------------' ,-------------------------------------------+-----+-----|
- * | | | | | | | | | | | | | | | | |
- * `-----------' `---------------------------------------' `-------------------------------------------------------'
- */
- // [] = LAYOUT(
-// //--------------------------------Left Hand-----------------------------------------------| |--------------------------------Right Hand------------------------------------------------
- // _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
-// _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
-// _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
-// _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
-// _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
-// _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
- // ),
-};
-
-bool process_record_keymap(uint16_t keycode, keyrecord_t *record) {
- switch (keycode) {
-
- }
- return true;
-}
diff --git a/keyboards/mt/split75/keymaps/art/rules.mk b/keyboards/mt/split75/keymaps/art/rules.mk
deleted file mode 100644
index cca8f0a79e..0000000000
--- a/keyboards/mt/split75/keymaps/art/rules.mk
+++ /dev/null
@@ -1,3 +0,0 @@
-SRC += user_config.c
-
-# DYNAMIC_MACRO_ENABLE = yes # doesn't work atm
diff --git a/keyboards/mt/split75/keymaps/art/user_config.c.example b/keyboards/mt/split75/keymaps/art/user_config.c.example
deleted file mode 100644
index baa169f9a3..0000000000
--- a/keyboards/mt/split75/keymaps/art/user_config.c.example
+++ /dev/null
@@ -1,6 +0,0 @@
-// Copyright 2022 Artjoms Rizihs (@artjomsR)
-// SPDX-License-Identifier: GPL-2.0-or-later
-
-#include QMK_KEYBOARD_H
-
-bool is_win = true;
diff --git a/keyboards/mt/split75/rules.mk b/keyboards/mt/split75/rules.mk
index f616b9400e..b0c02543b1 100644
--- a/keyboards/mt/split75/rules.mk
+++ b/keyboards/mt/split75/rules.mk
@@ -12,4 +12,4 @@ RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
# custom matrix setup
CUSTOM_MATRIX = lite
SRC = matrix.c
-QUANTUM_LIB_SRC += i2c_master.c
+I2C_DRIVER_REQUIRED = yes
diff --git a/keyboards/mwstudio/mw65_rgb/keymaps/horrortroll/config.h b/keyboards/mwstudio/mw65_rgb/keymaps/horrortroll/config.h
deleted file mode 100644
index 0d2051ffd5..0000000000
--- a/keyboards/mwstudio/mw65_rgb/keymaps/horrortroll/config.h
+++ /dev/null
@@ -1,36 +0,0 @@
-/* Copyright 2021 HorrorTroll <https://github.com/HorrorTroll>
- *
- * 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 DYNAMIC_KEYMAP_LAYER_COUNT 3
-
-/* Forcing to use NKRO instead 6KRO */
-#define FORCE_NKRO
-
-#ifdef RGB_MATRIX_ENABLE
- /* RGB Matrix config */
- #undef ENABLE_RGB_MATRIX_BAND_SAT
- #undef ENABLE_RGB_MATRIX_BAND_PINWHEEL_SAT
- #undef ENABLE_RGB_MATRIX_BAND_SPIRAL_SAT
- #undef ENABLE_RGB_MATRIX_PIXEL_FRACTAL
-
- #undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE
- #undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS
- #undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS
- #undef ENABLE_RGB_MATRIX_SPLASH
- #undef ENABLE_RGB_MATRIX_SOLID_SPLASH
-#endif
diff --git a/keyboards/mwstudio/mw65_rgb/keymaps/horrortroll/keymap.c b/keyboards/mwstudio/mw65_rgb/keymaps/horrortroll/keymap.c
deleted file mode 100644
index 6179d4cdc1..0000000000
--- a/keyboards/mwstudio/mw65_rgb/keymaps/horrortroll/keymap.c
+++ /dev/null
@@ -1,103 +0,0 @@
-/* Copyright 2021 HorrorTroll <https://github.com/HorrorTroll>
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-#include QMK_KEYBOARD_H
-
-#include "keymap_stuff.h"
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
-/*
- VolD ◯ VolU
- ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┬───┐
- │Esc│ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │ Bckspc│Hom│
- ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┼───┤
- │ Tab │ q │ w │ e │ r │ t │ y │ u │ i │ o │ p │ [ │ ] │ \ │End│
- ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┤
- │ Caps │ a │ s │ d │ f │ g │ h │ j │ k │ l │ ; │ ' │ Enter │PgU│
- ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┤
- │ LShift │ z │ x │ c │ v │ b │ n │ m │ , │ . │ / │ RSft │ ↑ │PgD│
- ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬─┬───┼───┼───┤
- │LCrl│GUI │LAlt│ Space │RAlt│ Fn │ │ ← │ ↓ │ → │
- └────┴────┴────┴────────────────────────┴────┴────┘ └───┴───┴───┘
- ◯
- ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┬───┐
- │ ~ │ ! │ @ │ # │ $ │ % │ ^ │ & │ * │ ( │ ) │ _ │ + │ │ │
- ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┼───┤
- │ │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ { │ } │ | │ │
- ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┤
- │ Caps │ A │ S │ D │ F │ G │ H │ J │ K │ L │ : │ " │ │ │
- ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┤
- │ LShift │ Z │ X │ C │ V │ B │ N │ M │ < │ > │ ? │ RSht │ │ │
- ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬─┬───┼───┼───┤
- │ │ │ │ │ │ │ │ │ │ │
- └────┴────┴────┴────────────────────────┴────┴────┘ └───┴───┴───┘
-*/
- /* Row: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 */
- [_BASE] = LAYOUT(
- KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_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_END,
- KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGUP,
- 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_PGDN,
- KC_LCTL, KC_LGUI, KC_LALT, KC_SPACE, MO(_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT
- ),
-
-/*
- ◯
- ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┬───┐
- │ ` │F1 │F2 │F3 │F4 │F5 │F6 │F7 │F8 │F9 │F10│F11│F12│ Home │ │
- ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┼───┤
- │ │ │ │ │ │ │ │ │ │ │ │ │ │Pause│Ins│
- ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┤
- │ │ │ │ │ │ │ │ │ │ │ │ │ PrtSc │Del│
- ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┤
- │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
- ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬─┬───┼───┼───┤
- │ │ │ │ │ Fn │ │ │ │ │ │
- └────┴────┴────┴────────────────────────┴────┴────┘ └───┴───┴───┘
-*/
- /* Row: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 */
- [_FN] = LAYOUT(
- KC_GRV, 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_HOME, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PAUSE, KC_INS,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PSCR, KC_DEL,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, MO(_RN), _______, _______, _______
- ),
-
-/*
- ◯
- ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┬───┐
- │Rst│ │ │ │ │ │ │ │ │ │ │ │ │ │ │
- ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┼───┤
- │ │1Hd│1Hi│1Sd│1Si│1Vd│1Vi│ │Hud│Hui│ │C_E│ │ │Tog│
- ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┤
- │ │2Hd│2Hi│2Sd│2Si│2Vd│2Vi│ │Sad│Sai│ │ │ │ │
- ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┤
- │ │Pre│Ref│Flp│ │ │ │Spd│Spi│ │ │ │Vai│ │
- ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬─┬───┼───┼───┤
- │ │ │ │ │ │ Rn │ │Rod│Vad│Mod│
- └────┴────┴────┴────────────────────────┴────┴────┘ └───┴───┴───┘
-*/
- /* Row: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 */
- [_RN] = LAYOUT(
- QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, G1_HUD, G1_HUI, G1_SAD, G1_SAI, G1_VAD, G1_VAI, _______, RGB_HUD, RGB_HUI, _______, RGB_C_E, _______, _______, RGB_TOG,
- _______, G2_HUD, G2_HUI, G2_SAD, G2_SAI, G2_VAD, G2_VAI, _______, RGB_SAD, RGB_SAI, _______, _______, _______, _______,
- _______, G_PRE, REF_G, G_FLIP, _______, _______, _______, RGB_SPD, RGB_SPI, _______, _______, _______, RGB_VAI, _______,
- _______, _______, _______, _______, _______, _______, RGB_RMOD, RGB_VAD, RGB_MOD
- ),
-};
diff --git a/keyboards/mwstudio/mw65_rgb/keymaps/horrortroll/keymap_stuff.h b/keyboards/mwstudio/mw65_rgb/keymaps/horrortroll/keymap_stuff.h
deleted file mode 100644
index bd979e9c81..0000000000
--- a/keyboards/mwstudio/mw65_rgb/keymaps/horrortroll/keymap_stuff.h
+++ /dev/null
@@ -1,323 +0,0 @@
-/* Copyright 2021 HorrorTroll <https://github.com/HorrorTroll>
- *
- * 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 <string.h>
-#include <math.h>
-
-#include <lib/lib8tion/lib8tion.h>
-
-// Each layer gets a name for readability, which is then used in the keymap matrix below.
-// The underscores don't mean anything - you can have a layer called STUFF or any other name.
-// Layer names don't all need to be of the same length, obviously, and you can also skip them
-// entirely and just use numbers.
-
-enum layer_names {
- _BASE = 0,
- _FN = 1,
- _RN = 2
-};
-
-// For CUSTOM_GRADIENT
-HSV gradient_0 = {205, 250, 255};
-HSV gradient_100 = {140, 215, 125};
-bool reflected_gradient = false;
-uint8_t gp_i = 0;
-
-typedef struct {
- HSV gradient_0;
- HSV gradient_1;
- bool reflected;
-} CUSTOM_PRESETS;
-
-enum user_rgb_mode {
- RGB_MODE_ALL,
- RGB_MODE_KEYLIGHT,
- RGB_MODE_UNDERGLOW,
- RGB_MODE_NONE,
-};
-
-typedef union {
- uint32_t raw;
- struct {
- uint8_t rgb_mode :8;
- };
-} user_config_t;
-
-user_config_t user_config;
-
-enum layer_keycodes {
- //Custom Gradient control keycode
- G1_HUI = SAFE_RANGE, //Custom gradient color 1 hue increase
- G1_HUD, //Custom gradient color 1 hue decrease
- G1_SAI, //Custom gradient color 1 saturation increase
- G1_SAD, //Custom gradient color 1 saturation decrease
- G1_VAI, //Custom gradient color 1 value increase
- G1_VAD, //Custom gradient color 1 value decrease
- G2_HUI, //Custom gradient color 2 hue increase
- G2_HUD, //Custom gradient color 2 hue decrease
- G2_SAI, //Custom gradient color 2 saturation increase
- G2_SAD, //Custom gradient color 2 saturation decrease
- G2_VAI, //Custom gradient color 2 value increase
- G2_VAD, //Custom gradient color 2 value decrease
- G_PRE, //Gradient presets
- REF_G, //Toggle between linear and reflected gradient
- G_FLIP, //Flip the gradient colors
-
- //Custom led effect keycode
- RGB_C_E, //Cycle user effect
-};
-
-void keyboard_post_init_kb(void) {
- user_config.raw = eeconfig_read_user();
- switch (user_config.rgb_mode) {
- case RGB_MODE_ALL:
- rgb_matrix_set_flags(LED_FLAG_ALL);
- rgb_matrix_enable_noeeprom();
- break;
- case RGB_MODE_KEYLIGHT:
- rgb_matrix_set_flags(LED_FLAG_KEYLIGHT);
- rgb_matrix_set_color_all(0, 0, 0);
- break;
- case RGB_MODE_UNDERGLOW:
- rgb_matrix_set_flags(LED_FLAG_UNDERGLOW);
- rgb_matrix_set_color_all(0, 0, 0);
- break;
- case RGB_MODE_NONE:
- rgb_matrix_set_flags(LED_FLAG_NONE);
- rgb_matrix_set_color_all(0, 0, 0);
- break;
- }
-}
-
-bool process_record_user(uint16_t keycode, keyrecord_t *record) {
- uint8_t color_adj_step = 5;
-
- CUSTOM_PRESETS gradient_presets[] = {
- {{41 , 255, 255}, {233, 245, 255}, false },
- {{45 , 245, 155}, {160, 255, 80}, false },
- {{173, 245, 40}, {41 , 255, 205}, true },
- {{32 , 255, 165}, {217, 185, 70}, false },
- {{240, 255, 145}, {115, 255, 245}, true },
- {{118, 255, 255}, {242, 255, 255}, false },
- {{212, 0 , 0}, {223, 235, 165}, true },
- {{205, 250, 255}, {140, 215, 125}, false },
- };
-
- uint8_t gp_length = ARRAY_SIZE(gradient_presets);
-
- switch (keycode) {
- case G1_HUI:
- if (record->event.pressed) {
- gradient_0.h += color_adj_step;
- dprintf("Gradient 0 HSV: %d, %d, %d\n", gradient_0.h, gradient_0.s, gradient_0.v);
- }
- return false;
- case G1_HUD:
- if (record->event.pressed) {
- gradient_0.h -= color_adj_step;
- dprintf("Gradient 0 HSV: %d, %d, %d\n", gradient_0.h, gradient_0.s, gradient_0.v);
- }
- return false;
- case G1_SAI:
- if (record->event.pressed) {
- gradient_0.s = (gradient_0.s + color_adj_step * 2 <= 255) ? gradient_0.s + color_adj_step * 2 : 255;
- dprintf("Gradient 0 HSV: %d, %d, %d\n", gradient_0.h, gradient_0.s, gradient_0.v);
- }
- return false;
- case G1_SAD:
- if (record->event.pressed) {
- gradient_0.s = (gradient_0.s - color_adj_step * 2 >= 0) ? gradient_0.s - color_adj_step * 2 : 0;
- dprintf("Gradient 0 HSV: %d, %d, %d\n", gradient_0.h, gradient_0.s, gradient_0.v);
- }
- return false;
- case G1_VAI:
- if (record->event.pressed) {
- gradient_0.v = (gradient_0.v + color_adj_step * 2 <= 255) ? gradient_0.v + color_adj_step * 2 : 255;
- dprintf("Gradient 0 HSV: %d, %d, %d\n", gradient_0.h, gradient_0.s, gradient_0.v);
- }
- return false;
- case G1_VAD:
- if (record->event.pressed) {
- gradient_0.v = (gradient_0.v - color_adj_step * 2 >= 0) ? gradient_0.v - color_adj_step * 2 : 0;
- dprintf("Gradient 0 HSV: %d, %d, %d\n", gradient_0.h, gradient_0.s, gradient_0.v);
- }
- return false;
- case G2_HUI:
- if (record->event.pressed) {
- gradient_100.h += color_adj_step;
- dprintf("Gradient 100 HSV: %d, %d, %d\n", gradient_100.h, gradient_100.s, gradient_100.v);
- }
- return false;
- case G2_HUD:
- if (record->event.pressed) {
- gradient_100.h -= color_adj_step;
- dprintf("Gradient 100 HSV: %d, %d, %d\n", gradient_100.h, gradient_100.s, gradient_100.v);
- }
- return false;
- case G2_SAI:
- if (record->event.pressed) {
- gradient_100.s = (gradient_100.s + color_adj_step * 2 <= 255) ? gradient_100.s + color_adj_step * 2 : 255;
- dprintf("Gradient 100 HSV: %d, %d, %d\n", gradient_100.h, gradient_100.s, gradient_100.v);
- }
- return false;
- case G2_SAD:
- if (record->event.pressed) {
- gradient_100.s = (gradient_100.s - color_adj_step * 2 >= 0) ? gradient_100.s - color_adj_step * 2 : 0;
- dprintf("Gradient 100 HSV: %d, %d, %d\n", gradient_100.h, gradient_100.s, gradient_100.v);
- }
- return false;
- case G2_VAI:
- if (record->event.pressed) {
- gradient_100.v = (gradient_100.v + color_adj_step * 2 <= 255) ? gradient_100.v + color_adj_step * 2 : 255;
- dprintf("Gradient 100 HSV: %d, %d, %d\n", gradient_100.h, gradient_100.s, gradient_100.v);
- }
- return false;
- case G2_VAD:
- if (record->event.pressed) {
- gradient_100.v = (gradient_100.v - color_adj_step * 2 >= 0) ? gradient_100.v - color_adj_step * 2 : 0;
- dprintf("Gradient 100 HSV: %d, %d, %d\n", gradient_100.h, gradient_100.s, gradient_100.v);
- }
- return false;
- case G_PRE:
- if (record->event.pressed) {
- gp_i = (gp_i + gp_length ) % gp_length;
-
- gradient_0 = gradient_presets[gp_i].gradient_0;
- gradient_100 = gradient_presets[gp_i].gradient_1;
- reflected_gradient = gradient_presets[gp_i].reflected;
-
- gp_i += 1;
- }
- return false;
- case REF_G:
- if (record->event.pressed) {
- reflected_gradient = !reflected_gradient;
- }
- return false;
- case G_FLIP:
- if (record->event.pressed) {
- HSV temp_color = gradient_0;
- gradient_0 = gradient_100;
- gradient_100 = temp_color;
- }
- return false;
- case RGB_C_E:
- if (record->event.pressed) {
- switch (rgb_matrix_get_mode()) {
- case RGB_MATRIX_CUSTOM_CUSTOM_GRADIENT:
- rgb_matrix_mode(RGB_MATRIX_CUSTOM_DIAGONAL);
- return false;
- case RGB_MATRIX_CUSTOM_DIAGONAL:
- rgb_matrix_mode(RGB_MATRIX_CUSTOM_COOL_DIAGONAL);
- return false;
- case RGB_MATRIX_CUSTOM_COOL_DIAGONAL:
- rgb_matrix_mode(RGB_MATRIX_CUSTOM_RAINBOW_REACTIVE_SIMPLE);
- return false;
- case RGB_MATRIX_CUSTOM_RAINBOW_REACTIVE_SIMPLE:
- rgb_matrix_mode(RGB_MATRIX_CUSTOM_KITT);
- return false;
- case RGB_MATRIX_CUSTOM_KITT:
- rgb_matrix_mode(RGB_MATRIX_CUSTOM_RANDOM_BREATH_RAINBOW);
- return false;
- default:
- rgb_matrix_mode(RGB_MATRIX_CUSTOM_CUSTOM_GRADIENT);
- return false;
- }
- }
- return false;
- case RGB_TOG:
- if (record->event.pressed) {
- switch (rgb_matrix_get_flags()) {
- case LED_FLAG_ALL: {
- rgb_matrix_set_flags(LED_FLAG_KEYLIGHT | LED_FLAG_MODIFIER | LED_FLAG_INDICATOR);
- rgb_matrix_set_color_all(0, 0, 0);
- user_config.rgb_mode = RGB_MODE_KEYLIGHT;
- }
- break;
- case (LED_FLAG_KEYLIGHT | LED_FLAG_MODIFIER | LED_FLAG_INDICATOR): {
- rgb_matrix_set_flags(LED_FLAG_UNDERGLOW);
- rgb_matrix_set_color_all(0, 0, 0);
- user_config.rgb_mode = RGB_MODE_UNDERGLOW;
- }
- break;
- case (LED_FLAG_UNDERGLOW): {
- rgb_matrix_set_flags(LED_FLAG_NONE);
- rgb_matrix_set_color_all(0, 0, 0);
- user_config.rgb_mode = RGB_MODE_NONE;
- }
- break;
- default: {
- rgb_matrix_set_flags(LED_FLAG_ALL);
- rgb_matrix_enable_noeeprom();
- user_config.rgb_mode = RGB_MODE_ALL;
- }
- break;
- }
- eeconfig_update_user(user_config.raw);
- }
- return false;
- }
- return true;
-}
-
-bool rgb_matrix_indicators_user(void) {
- switch (biton32(layer_state)) {
- case _FN:
- rgb_matrix_set_color(16, 0, 0, 0); rgb_matrix_set_color(17, 0, 0, 0); rgb_matrix_set_color(18, 0, 0, 0); rgb_matrix_set_color(21, 0, 0, 0);
- rgb_matrix_set_color(22, 0, 0, 0); rgb_matrix_set_color(23, 0, 0, 0); rgb_matrix_set_color(24, 0, 0, 0); rgb_matrix_set_color(25, 0, 0, 0);
- rgb_matrix_set_color(26, 0, 0, 0); rgb_matrix_set_color(27, 0, 0, 0); rgb_matrix_set_color(28, 0, 0, 0); rgb_matrix_set_color(29, 0, 0, 0);
- rgb_matrix_set_color(30, 0, 0, 0); rgb_matrix_set_color(31, 0, 0, 0); rgb_matrix_set_color(32, 0, 0, 0); rgb_matrix_set_color(33, 0, 0, 0);
- rgb_matrix_set_color(34, 0, 0, 0); rgb_matrix_set_color(35, 0, 0, 0); rgb_matrix_set_color(36, 0, 0, 0); rgb_matrix_set_color(37, 0, 0, 0);
- rgb_matrix_set_color(38, 0, 0, 0); rgb_matrix_set_color(41, 0, 0, 0); rgb_matrix_set_color(42, 0, 0, 0); rgb_matrix_set_color(43, 0, 0, 0);
- rgb_matrix_set_color(44, 0, 0, 0); rgb_matrix_set_color(45, 0, 0, 0); rgb_matrix_set_color(46, 0, 0, 0); rgb_matrix_set_color(47, 0, 0, 0);
- rgb_matrix_set_color(48, 0, 0, 0); rgb_matrix_set_color(49, 0, 0, 0); rgb_matrix_set_color(50, 0, 0, 0); rgb_matrix_set_color(51, 0, 0, 0);
- rgb_matrix_set_color(52, 0, 0, 0); rgb_matrix_set_color(53, 0, 0, 0); rgb_matrix_set_color(54, 0, 0, 0); rgb_matrix_set_color(55, 0, 0, 0);
- rgb_matrix_set_color(56, 0, 0, 0); rgb_matrix_set_color(57, 0, 0, 0); rgb_matrix_set_color(58, 0, 0, 0); rgb_matrix_set_color(59, 0, 0, 0);
- rgb_matrix_set_color(60, 0, 0, 0); rgb_matrix_set_color(61, 0, 0, 0); rgb_matrix_set_color(62, 0, 0, 0); rgb_matrix_set_color(63, 0, 0, 0);
- rgb_matrix_set_color(64, 0, 0, 0); rgb_matrix_set_color(65, 0, 0, 0); rgb_matrix_set_color(68, 0, 0, 0);
- break;
- case _RN:
- rgb_matrix_set_color(20, 0, 0, 0); rgb_matrix_set_color(21, 0, 0, 0); rgb_matrix_set_color(22, 0, 0, 0); rgb_matrix_set_color(23, 0, 0, 0);
- rgb_matrix_set_color(24, 0, 0, 0); rgb_matrix_set_color(25, 0, 0, 0); rgb_matrix_set_color(29, 0, 0, 0); rgb_matrix_set_color(30, 0, 0, 0);
- rgb_matrix_set_color(31, 0, 0, 0); rgb_matrix_set_color(34, 0, 0, 0); rgb_matrix_set_color(35, 0, 0, 0); rgb_matrix_set_color(36, 0, 0, 0);
- rgb_matrix_set_color(38, 0, 0, 0); rgb_matrix_set_color(39, 0, 0, 0); rgb_matrix_set_color(40, 0, 0, 0); rgb_matrix_set_color(41, 0, 0, 0);
- rgb_matrix_set_color(42, 0, 0, 0); rgb_matrix_set_color(45, 0, 0, 0); rgb_matrix_set_color(52, 0, 0, 0); rgb_matrix_set_color(53, 0, 0, 0);
- rgb_matrix_set_color(60, 0, 0, 0); rgb_matrix_set_color(63, 0, 0, 0); rgb_matrix_set_color(65, 0, 0, 0); rgb_matrix_set_color(66, 0, 0, 0);
- rgb_matrix_set_color(68, 0, 0, 0); rgb_matrix_set_color(69, 0, 0, 0); rgb_matrix_set_color(70, 0, 0, 0); rgb_matrix_set_color(71, 0, 0, 0);
- rgb_matrix_set_color(72, 0, 0, 0); rgb_matrix_set_color(73, 0, 0, 0); rgb_matrix_set_color(74, 0, 0, 0); rgb_matrix_set_color(75, 0, 0, 0);
- rgb_matrix_set_color(76, 0, 0, 0); rgb_matrix_set_color(77, 0, 0, 0); rgb_matrix_set_color(78, 0, 0, 0); rgb_matrix_set_color(79, 0, 0, 0);
- rgb_matrix_set_color(80, 0, 0, 0); rgb_matrix_set_color(81, 0, 0, 0);
- break;
- }
-
- HSV hsv = rgb_matrix_config.hsv;
- uint8_t time = scale16by8(g_rgb_timer, qadd8(32, 1));
- hsv.h = time;
- RGB rgb = hsv_to_rgb(hsv);
-
- if ((rgb_matrix_get_flags() & LED_FLAG_KEYLIGHT)) {
- if (host_keyboard_led_state().caps_lock) {
- rgb_matrix_set_color(52, rgb.r, rgb.g, rgb.b);
- }
- } else {
- if (host_keyboard_led_state().caps_lock) {
- rgb_matrix_set_color(52, rgb.r, rgb.g, rgb.b);
- } else {
- rgb_matrix_set_color(52, 0, 0, 0);
- }
- }
- return false;
-}
diff --git a/keyboards/mwstudio/mw65_rgb/keymaps/horrortroll/led/cool_diagonal.c b/keyboards/mwstudio/mw65_rgb/keymaps/horrortroll/led/cool_diagonal.c
deleted file mode 100644
index 367b3d5720..0000000000
--- a/keyboards/mwstudio/mw65_rgb/keymaps/horrortroll/led/cool_diagonal.c
+++ /dev/null
@@ -1,22 +0,0 @@
-/* Copyright 2021 HorrorTroll <https://github.com/HorrorTroll>
- *
- * 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/>.
- */
-
-static HSV COOL_DIAGONAL_math(HSV hsv, uint8_t i, uint8_t time) {
- hsv.h = (g_led_config.point[i].x / 4) - g_led_config.point[i].y - time;
- return hsv;
-}
-
-bool COOL_DIAGONAL(effect_params_t* params) { return effect_runner_i(params, &COOL_DIAGONAL_math); }
diff --git a/keyboards/mwstudio/mw65_rgb/keymaps/horrortroll/led/custom_gradient.c b/keyboards/mwstudio/mw65_rgb/keymaps/horrortroll/led/custom_gradient.c
deleted file mode 100644
index 0d7acd7e8b..0000000000
--- a/keyboards/mwstudio/mw65_rgb/keymaps/horrortroll/led/custom_gradient.c
+++ /dev/null
@@ -1,74 +0,0 @@
-/* Copyright 2021 HorrorTroll <https://github.com/HorrorTroll>
- *
- * 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/>.
- */
-
-extern HSV gradient_0;
-extern HSV gradient_100;
-extern bool reflected_gradient;
-
-static HSV INTERPOLATE_HSV(float step, HSV gradient_0, HSV gradient_100) {
- uint8_t cw, ccw;
- HSV color;
-
- cw = (gradient_0.h >= gradient_100.h) ? 255 + gradient_100.h - gradient_0.h : gradient_100.h - gradient_0.h; // Hue range is 0 to 255.
- ccw = (gradient_0.h >= gradient_100.h) ? gradient_0.h - gradient_100.h : 255 + gradient_0.h - gradient_100.h;
-
- if( cw < ccw ) { // going clockwise
- color.h = gradient_0.h + (uint8_t)(step * cw);
- } else { // Going counter clockwise
- color.h = gradient_0.h - (uint8_t)(step * ccw);
- }
-
- color.s = gradient_0.s + step * (gradient_100.s - gradient_0.s);
-
- // Scale V with global RGB Matrix's V, so users can still control overall brightness with RGB_VAI & RGB_VAD0
- color.v = round((gradient_0.v + step * (gradient_100.v - gradient_0.v)) * ((float)rgb_matrix_config.hsv.v / 255));
-
- return color;
-}
-
-static HSV CUSTOM_GRADIENT_math(uint8_t led_x, uint8_t min_x, uint8_t max_x) {
- float step = (float)led_x / (max_x - min_x);
- float mid_gradient_pos = 0.5;
-
- if( reflected_gradient ) {
- if( step <= mid_gradient_pos ) {
- return INTERPOLATE_HSV(step * (1/mid_gradient_pos), gradient_0, gradient_100);
- } else {
- return INTERPOLATE_HSV((step - mid_gradient_pos) * (1/(1-mid_gradient_pos)), gradient_100, gradient_0);
- }
-
- } else {
- return INTERPOLATE_HSV(step, gradient_0, gradient_100);
- }
-}
-
-static bool CUSTOM_GRADIENT(effect_params_t* params) {
- RGB_MATRIX_USE_LIMITS(led_min, led_max);
-
- uint8_t min_x = 0; // X coordinate of the left-most LED
- uint8_t max_x = 224; // X coordinate of the right-most LED
-
- for (uint8_t i = led_min; i < led_max; i++) {
- RGB_MATRIX_TEST_LED_FLAGS();
-
- HSV hsv_orig = CUSTOM_GRADIENT_math(g_led_config.point[i].x, min_x, max_x);
- RGB rgb = hsv_to_rgb(hsv_orig);
-
- rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b);
- }
-
- return led_max < RGB_MATRIX_LED_COUNT;
-}
diff --git a/keyboards/mwstudio/mw65_rgb/keymaps/horrortroll/led/diagonal.c b/keyboards/mwstudio/mw65_rgb/keymaps/horrortroll/led/diagonal.c
deleted file mode 100644
index 19e3791bd6..0000000000
--- a/keyboards/mwstudio/mw65_rgb/keymaps/horrortroll/led/diagonal.c
+++ /dev/null
@@ -1,22 +0,0 @@
-/* Copyright 2021 HorrorTroll <https://github.com/HorrorTroll>
- *
- * 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/>.
- */
-
-static HSV DIAGONAL_math(HSV hsv, uint8_t i, uint8_t time) {
- hsv.h = g_led_config.point[i].x - g_led_config.point[i].y - time;
- return hsv;
-}
-
-bool DIAGONAL(effect_params_t* params) { return effect_runner_i(params, &DIAGONAL_math); }
diff --git a/keyboards/mwstudio/mw65_rgb/keymaps/horrortroll/led/kitt.c b/keyboards/mwstudio/mw65_rgb/keymaps/horrortroll/led/kitt.c
deleted file mode 100644
index 7f45cc23e2..0000000000
--- a/keyboards/mwstudio/mw65_rgb/keymaps/horrortroll/led/kitt.c
+++ /dev/null
@@ -1,68 +0,0 @@
-/* Copyright 2021 HorrorTroll <https://github.com/HorrorTroll>
- *
- * 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/>.
- */
-
-// variable for startup animation
-bool BASE_EFFECT_NOT_STARTED_YET = true;
-uint8_t base_effect_startup_counter = 255;
-
-uint8_t led_count = 10;
-uint8_t led_first = 41;
-
-static uint8_t time_to_led(uint8_t time, uint8_t led_behind) {
- uint16_t led_time = led_count * time;
- uint16_t step = ((2 * led_count + (led_time / 128)) - led_behind) % (2 * led_count);
- uint8_t led;
-
- if (step < led_count) {
- led = step;
- } else {
- led = led_count - 1 - (step - led_count);
- }
-
- return led;
-}
-
-static HSV KITT_math(HSV hsv, uint8_t i, uint8_t time) {
-
- // reset base effect startup
- if (i == 0) {
- BASE_EFFECT_NOT_STARTED_YET = true;
- }
-
- hsv.h = 0;
- hsv.s = 255;
-
- if (i >= led_first && i < led_first + led_count) {
- uint8_t j = i - led_first;
- if (j == time_to_led(time, 0)) {
- hsv.v = hsv.v;
- } else if (j == time_to_led(time, 1)) {
- hsv.v = hsv.v/2;
- } else if (j == time_to_led(time, 2)) {
- hsv.v = hsv.v/4;
- } else if (j == time_to_led(time, 3)) {
- hsv.v = hsv.v/8;
- } else {
- hsv.v = 0;
- }
- } else {
- hsv.v = 0;
- }
-
- return hsv;
-}
-
-bool KITT(effect_params_t* params) { return effect_runner_i(params, &KITT_math); }
diff --git a/keyboards/mwstudio/mw65_rgb/keymaps/horrortroll/led/rainbow_reactive_simple/rainbow_reactive_simple.c b/keyboards/mwstudio/mw65_rgb/keymaps/horrortroll/led/rainbow_reactive_simple/rainbow_reactive_simple.c
deleted file mode 100644
index ae33988721..0000000000
--- a/keyboards/mwstudio/mw65_rgb/keymaps/horrortroll/led/rainbow_reactive_simple/rainbow_reactive_simple.c
+++ /dev/null
@@ -1,25 +0,0 @@
-/* Copyright 2021 HorrorTroll <https://github.com/HorrorTroll>
- *
- * 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 "led/rainbow_reactive_simple/rainbow_reactive_simple.h"
-
-static HSV RAINBOW_REACTIVE_SIMPLE_math(HSV hsv, uint8_t i, uint8_t time, uint16_t offset) {
- hsv.h = g_led_config.point[i].x - time;
- hsv.v = scale8(255 - offset, hsv.v);
- return hsv;
-}
-
-bool RAINBOW_REACTIVE_SIMPLE(effect_params_t* params) { return effect_rainbow_reactive(params, &RAINBOW_REACTIVE_SIMPLE_math); }
diff --git a/keyboards/mwstudio/mw65_rgb/keymaps/horrortroll/led/rainbow_reactive_simple/rainbow_reactive_simple.h b/keyboards/mwstudio/mw65_rgb/keymaps/horrortroll/led/rainbow_reactive_simple/rainbow_reactive_simple.h
deleted file mode 100644
index 986cbfeb9d..0000000000
--- a/keyboards/mwstudio/mw65_rgb/keymaps/horrortroll/led/rainbow_reactive_simple/rainbow_reactive_simple.h
+++ /dev/null
@@ -1,45 +0,0 @@
-/* Copyright 2021 HorrorTroll <https://github.com/HorrorTroll>
- *
- * 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
-
-typedef HSV (*rainbow_reactive_f)(HSV hsv, uint8_t i, uint8_t time, uint16_t offset);
-
-bool effect_rainbow_reactive(effect_params_t* params, rainbow_reactive_f effect_func) {
- RGB_MATRIX_USE_LIMITS(led_min, led_max);
-
- uint8_t time = scale16by8(g_rgb_timer, rgb_matrix_config.speed / 4);
- uint16_t max_tick = 65535 / rgb_matrix_config.speed;
-
- for (uint8_t i = led_min; i < led_max; i++) {
- RGB_MATRIX_TEST_LED_FLAGS();
- uint16_t tick = max_tick;
-
- // Reverse search to find most recent key hit
- for (int8_t j = g_last_hit_tracker.count - 1; j >= 0; j--) {
- if (g_last_hit_tracker.index[j] == i && g_last_hit_tracker.tick[j] < tick) {
- tick = g_last_hit_tracker.tick[j];
- break;
- }
- }
-
- uint16_t offset = scale16by8(tick, rgb_matrix_config.speed);
- RGB rgb = rgb_matrix_hsv_to_rgb(effect_func(rgb_matrix_config.hsv, i, time, offset));
- rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b);
- }
-
- return led_max < RGB_MATRIX_LED_COUNT;
-}
diff --git a/keyboards/mwstudio/mw65_rgb/keymaps/horrortroll/led/random_breath_rainbow.c b/keyboards/mwstudio/mw65_rgb/keymaps/horrortroll/led/random_breath_rainbow.c
deleted file mode 100644
index 29c447c61a..0000000000
--- a/keyboards/mwstudio/mw65_rgb/keymaps/horrortroll/led/random_breath_rainbow.c
+++ /dev/null
@@ -1,55 +0,0 @@
-/* Copyright 2021 HorrorTroll <https://github.com/HorrorTroll>
- *
- * 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/>.
- */
-
-static uint8_t offset[RGB_MATRIX_LED_COUNT];
-
-static void doRandom_breath_rainbow(int i, effect_params_t* params) {
- if (!HAS_ANY_FLAGS(g_led_config.flags[i], params->flags)) return;
- uint16_t time = scale16by8(g_rgb_timer, rgb_matrix_config.speed / 6);
-
- if (rand() * 50 == 1) {
- if (rand() * 2 == 1) {
- offset[i]++;
- }
- else {
- offset[i]--;
- }
- }
-
- //float val = (((float)sin8(time + offset[i]) / 256)/2.1) + .05;
- HSV hsv = {0, 255, 255};
- hsv.h = scale16by8(g_rgb_timer + offset[i], rgb_matrix_config.speed / 4) + (offset[i]*2);
- hsv.v = scale8(abs8(sin8(time) - 128) * 2, hsv.v);
- RGB rgb = rgb_matrix_hsv_to_rgb(hsv);
- rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b);
-}
-
-bool RANDOM_BREATH_RAINBOW(effect_params_t* params) {
-
- if (!params->init) {
- // Change one LED every tick, make sure speed is not 0
- doRandom_breath_rainbow(rand() % RGB_MATRIX_LED_COUNT, params);
- return false;
- }
-
- RGB_MATRIX_USE_LIMITS(led_min, led_max);
-
- for (uint8_t i = led_min; i < led_max; i++) {
- doRandom_breath_rainbow(i, params);
- }
-
- return led_max < RGB_MATRIX_LED_COUNT;
-}
diff --git a/keyboards/mwstudio/mw65_rgb/keymaps/horrortroll/readme.md b/keyboards/mwstudio/mw65_rgb/keymaps/horrortroll/readme.md
deleted file mode 100644
index 2341d818ec..0000000000
--- a/keyboards/mwstudio/mw65_rgb/keymaps/horrortroll/readme.md
+++ /dev/null
@@ -1,11 +0,0 @@
-# My personal keymap with VIA and custom LED effect
-
-Keymap is default 67 qwerty, 65 ansi blocker layout
-
-It have new LED effect:
-
-- Custom gradient (ported from SirTimmyTimbit code [https://github.com/SirTimmyTimbit/customizable-gradient-effect-for-drop-alt])
-- Diagonal (ported from pleasuretek code [https://github.com/pleasuretek/qmk_firmware])
-- Rainbow reactive simple
-- Knight Rider (ported from jumper149 code [https://github.com/jumper149/qmk_firmware/blob/jumper149/keyboards/dztech/dz65rgb/keymaps/jumper149/])
-- Random breath rainbow (based from daed code [https://github.com/daed/qmk_firmware/blob/master/keyboards/massdrop/alt/keymaps/daed] and modify by me)
diff --git a/keyboards/mwstudio/mw65_rgb/keymaps/horrortroll/rgb_matrix_user.inc b/keyboards/mwstudio/mw65_rgb/keymaps/horrortroll/rgb_matrix_user.inc
deleted file mode 100644
index ea742af2d4..0000000000
--- a/keyboards/mwstudio/mw65_rgb/keymaps/horrortroll/rgb_matrix_user.inc
+++ /dev/null
@@ -1,17 +0,0 @@
-RGB_MATRIX_EFFECT(CUSTOM_GRADIENT)
-RGB_MATRIX_EFFECT(DIAGONAL)
-RGB_MATRIX_EFFECT(COOL_DIAGONAL)
-RGB_MATRIX_EFFECT(RAINBOW_REACTIVE_SIMPLE)
-RGB_MATRIX_EFFECT(KITT)
-RGB_MATRIX_EFFECT(RANDOM_BREATH_RAINBOW)
-
-#ifdef RGB_MATRIX_CUSTOM_EFFECT_IMPLS
-
-#include "led/custom_gradient.c"
-#include "led/diagonal.c"
-#include "led/cool_diagonal.c"
-#include "led/rainbow_reactive_simple/rainbow_reactive_simple.c"
-#include "led/kitt.c"
-#include "led/random_breath_rainbow.c"
-
-#endif // RGB_MATRIX_CUSTOM_EFFECT_IMPLS
diff --git a/keyboards/mwstudio/mw65_rgb/keymaps/horrortroll/rules.mk b/keyboards/mwstudio/mw65_rgb/keymaps/horrortroll/rules.mk
deleted file mode 100644
index c1f6494e2c..0000000000
--- a/keyboards/mwstudio/mw65_rgb/keymaps/horrortroll/rules.mk
+++ /dev/null
@@ -1,6 +0,0 @@
-MOUSEKEY_ENABLE = no # Mouse keys
-VIA_ENABLE = yes
-LTO_ENABLE = yes
-
-# can this go just in the keymap?
-RGB_MATRIX_CUSTOM_USER = yes
diff --git a/keyboards/mxss/config.h b/keyboards/mxss/config.h
index bfa2338678..704da3911a 100644
--- a/keyboards/mxss/config.h
+++ b/keyboards/mxss/config.h
@@ -21,6 +21,3 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define LOCKING_SUPPORT_ENABLE
/* Locking resynchronize hack */
#define LOCKING_RESYNC_ENABLE
-
-// FLED config takes up 1 byte, stored color count takes 1, stored colors take up to 8
-#define VIA_EEPROM_CUSTOM_CONFIG_SIZE 10
diff --git a/keyboards/mxss/info.json b/keyboards/mxss/info.json
index 7b24c46717..0846157457 100644
--- a/keyboards/mxss/info.json
+++ b/keyboards/mxss/info.json
@@ -8,6 +8,15 @@
"pid": "0x5353",
"device_version": "0.0.1"
},
+ "features": {
+ "bootmagic": true,
+ "command": false,
+ "console": false,
+ "extrakey": true,
+ "mousekey": true,
+ "nkro": false,
+ "rgblight": true
+ },
"rgblight": {
"saturation_steps": 8,
"brightness_steps": 8,
diff --git a/keyboards/mxss/keymaps/default/keymap.c b/keyboards/mxss/keymaps/default/keymap.c
index 06e73f4688..8f7c2bd2a5 100644
--- a/keyboards/mxss/keymaps/default/keymap.c
+++ b/keyboards/mxss/keymaps/default/keymap.c
@@ -14,21 +14,6 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include QMK_KEYBOARD_H
-#include "mxss_frontled.h"
-
-hs_set caps_color = { .hue = 0, .sat = 255 };
-
-// Colors for layers
-// Format: {hue, saturation}
-// {0, 0} to turn off the LED
-// Add additional rows to handle more layers
-hs_set layer_colors[4] = {
- [0] = {.hue = 0, .sat = 0}, // Color for Layer 0
- [1] = {.hue = 86, .sat = 255}, // Color for Layer 1
- [2] = {.hue = 36, .sat = 255}, // Color for Layer 2
- [3] = {.hue = 185, .sat = 255}, // Color for Layer 3
-};
-size_t lc_size = ARRAY_SIZE(layer_colors);
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
LAYOUT( /* Base */
@@ -41,7 +26,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
LAYOUT( /* L1 */
KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL,
- KC_TRNS, KC_MPLY, KC_MPRV, KC_MNXT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_PSCR, FLED_VAD, FLED_VAI, FLED_MOD, RGB_VAI,
+ KC_TRNS, KC_MPLY, KC_MPRV, KC_MNXT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_PSCR, KC_TRNS, KC_TRNS, KC_TRNS, RGB_VAI,
QK_BOOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_END, KC_TRNS, KC_TRNS, KC_TRNS, RGB_VAD,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MUTE, KC_VOLD, KC_VOLU, KC_TRNS, RGB_MOD, RGB_SAI, RGB_TOG,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_HUD, RGB_SAD, RGB_HUI
diff --git a/keyboards/mxss/keymaps/via/keymap.c b/keyboards/mxss/keymaps/via/keymap.c
index 3591f4d3f9..a9ce5f5bd1 100644
--- a/keyboards/mxss/keymaps/via/keymap.c
+++ b/keyboards/mxss/keymaps/via/keymap.c
@@ -14,7 +14,6 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include QMK_KEYBOARD_H
-#include "mxss_frontled.h"
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
LAYOUT_all( /* L0 */
@@ -26,7 +25,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
),
LAYOUT_all( /* L1 */
KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_MPLY, KC_MPRV, KC_MNXT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_PSCR, FLED_VAD, FLED_VAI, FLED_MOD, RGB_VAI,
+ KC_TRNS, KC_MPLY, KC_MPRV, KC_MNXT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_PSCR, KC_TRNS, KC_TRNS, KC_TRNS, RGB_VAI,
QK_BOOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_END, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_VAD,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MUTE, KC_VOLD, KC_VOLU, KC_TRNS, RGB_MOD, RGB_SAI, RGB_TOG,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_HUD, RGB_SAD, RGB_HUI
diff --git a/keyboards/mxss/mxss.c b/keyboards/mxss/mxss.c
deleted file mode 100644
index 021eb1de4e..0000000000
--- a/keyboards/mxss/mxss.c
+++ /dev/null
@@ -1,73 +0,0 @@
-/* Copyright 2020 Jumail Mundekkat / MxBlue
- *
- * 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/>.
- *
- * EEPROM management code from ../cannonkeys/stm32f072/keyboard.c
- */
-
-#include "quantum.h"
-#include "eeprom.h"
-#include "mxss_frontled.h"
-#include "version.h" // for QMK_BUILDDATE used in EEPROM magic
-
-void via_init_kb(void) {
- fled_init();
-}
-
-void matrix_init_kb(void) {
- // If VIA is disabled, we still need to load settings
- // Call via_init_kb() the same way as via_init(), with setting
- // EEPROM valid afterwards.
-#ifndef VIA_ENABLE
- fled_init();
- via_eeprom_set_valid(true);
-#endif // VIA_ENABLE
-
- matrix_init_user();
-}
-
-bool process_record_kb(uint16_t keycode, keyrecord_t *record) {
- // Handle custom keycodes for front LED operation
- process_record_fled(keycode, record);
- return process_record_user(keycode, record);
-}
-
-bool led_update_kb(led_t led_state) {
- fled_lock_update(led_state);
- return led_update_user(led_state);
-}
-
-layer_state_t layer_state_set_kb(layer_state_t state) {
- fled_layer_update(state);
- return layer_state_set_user(state);
-}
-
-// Fallback eeprom functions if VIA is not enabled
-#ifndef VIA_ENABLE
-
-// Sets VIA/keyboard level usage of EEPROM to valid/invalid
-// Keyboard level code (eg. via_init_kb()) should not call this
-void via_eeprom_set_valid(bool valid)
-{
- char *p = QMK_BUILDDATE; // e.g. "2019-11-05-11:29:54"
- uint8_t magic0 = ( ( p[2] & 0x0F ) << 4 ) | ( p[3] & 0x0F );
- uint8_t magic1 = ( ( p[5] & 0x0F ) << 4 ) | ( p[6] & 0x0F );
- uint8_t magic2 = ( ( p[8] & 0x0F ) << 4 ) | ( p[9] & 0x0F );
-
- eeprom_update_byte( (void*)VIA_EEPROM_MAGIC_ADDR+0, valid ? magic0 : 0xFF);
- eeprom_update_byte( (void*)VIA_EEPROM_MAGIC_ADDR+1, valid ? magic1 : 0xFF);
- eeprom_update_byte( (void*)VIA_EEPROM_MAGIC_ADDR+2, valid ? magic2 : 0xFF);
-}
-
-#endif
diff --git a/keyboards/mxss/mxss_frontled.c b/keyboards/mxss/mxss_frontled.c
deleted file mode 100644
index 2ab9a27bea..0000000000
--- a/keyboards/mxss/mxss_frontled.c
+++ /dev/null
@@ -1,278 +0,0 @@
-/* Copyright 2020 Jumail Mundekkat / MxBlue
- *
- * 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/>.
- *
- * Extended from the work done by fcoury: https://github.com/qmk/qmk_firmware/pull/4915
- */
-
-#include "mxss_frontled.h"
-#include "eeprom.h"
-#include "rgblight.h"
-#include "via.h"
-#include "version.h" // for QMK_BUILDDATE used in EEPROM magic
-
-// Variables for controlling front LED application
-uint8_t fled_mode; // Mode for front LEDs
-uint8_t fled_val; // Brightness for front leds (0 - 255)
-LED_TYPE fleds[2]; // Front LED rgb values for indicator mode use
-
-// Layer indicator colors
-__attribute__ ((weak))
-hs_set layer_colors[FRONTLED_COLOR_MAXCNT];
-
-// Caps lock indicator color
-__attribute__ ((weak))
-hs_set caps_color;
-
-__attribute__ ((weak))
-size_t lc_size = ARRAY_SIZE(layer_colors);
-
-void fled_init(void) {
- // This checks both an EEPROM reset (from bootmagic lite, keycodes)
- // and also firmware build date (from via_eeprom_is_valid())
- if (eeconfig_is_enabled()) {
- fled_load_conf();
- // Else, default config
- } else {
- // Default mode/brightness
- fled_mode = FLED_RGB;
- fled_val = 10 * FLED_VAL_STEP;
-
- // Default colors
- caps_color.hue = 0;
- caps_color.sat = 255;
- layer_colors[0].hue = 0;
- layer_colors[0].sat = 0;
- layer_colors[1].hue = 86;
- layer_colors[1].sat = 255;
- layer_colors[2].hue = 36;
- layer_colors[2].sat = 255;
- layer_colors[3].hue = 185;
- layer_colors[3].sat = 255;
-
- fled_update_conf(); // Store default config to EEPROM
- }
-
- // Set default values for leds
- setrgb(0, 0, 0, &fleds[0]);
- setrgb(0, 0, 0, &fleds[1]);
-
- // Handle lighting for indicator mode
- if (fled_mode == FLED_INDI) {
- fled_lock_update(host_keyboard_led_state());
- fled_layer_update(layer_state);
- }
-}
-
-void process_record_fled(uint16_t keycode, keyrecord_t *record) {
- // Handle custom keycodes for front LED operation
- switch (keycode) {
- case FLED_MOD: // Change between front LED operation modes (off, indicator, RGB)
- if (record->event.pressed)
- fled_mode_cycle();
- break;
-
- case FLED_VAI: // Increase the brightness of the front LEDs by FLED_VAL_STEP
- if (record->event.pressed)
- fled_val_increase();
- break;
-
- case FLED_VAD: // Decrease the brightness of the front LEDs by FLED_VAL_STEP
- if (record->event.pressed)
- fled_val_decrease();
- break;
-
- default:
- break; // Process all other keycodes normally
- }
-
- return;
-}
-
-void fled_load_conf(void) {
- // Load config
- fled_config fled_conf;
- fled_conf.raw = eeprom_read_byte(FRONTLED_CONF_ADDR);
- fled_mode = fled_conf.mode;
- fled_val = fled_conf.val * FLED_VAL_STEP;
-
- // Load color data
- uint8_t stored_cnt = eeprom_read_byte(FRONTLED_COLOR_CNT_ADDR);
- uint16_t *color_ptr = FRONTLED_COLOR_ADDR;
- caps_color.raw = eeprom_read_word(color_ptr); // Should always store at least 1 color
- for (uint8_t i = 1; i < stored_cnt; i++) {
- if (i == lc_size) // Can't load more layers than we have available
- break;
- layer_colors[i].raw = eeprom_read_word(&color_ptr[i]);
- }
- layer_colors[0].raw = 0; // hue = sat = 0 for layer 0
-}
-
-// Store current front led config in EEPROM
-void fled_update_conf(void)
-{
- // Create storage struct and set values
- fled_config conf;
- conf.mode = fled_mode;
-
- // Small hack to ensure max value is stored correctly
- if (fled_val == 255)
- conf.val = 256 / FLED_VAL_STEP;
- else
- conf.val = fled_val / FLED_VAL_STEP;
-
- // Store config
- eeprom_update_byte(FRONTLED_CONF_ADDR, conf.raw);
-
- // Store color data
- uint16_t *color_ptr = FRONTLED_COLOR_ADDR;
- eeprom_update_word(color_ptr, caps_color.raw);
- // Start from 1, layer 0 is not modifiable and therefore not persisted
- uint8_t i = 1;
- for (; i < lc_size; i++) {
- if (i == FRONTLED_COLOR_MAXCNT) // Can't store more than the EEPROM we have available
- break;
- eeprom_update_word(&color_ptr[i], layer_colors[i].raw);
- }
- eeprom_update_byte(FRONTLED_COLOR_CNT_ADDR, i); // For safety, store the count of colors stored
-}
-
-// Custom keycode functions
-
-void fled_mode_cycle(void)
-{
- // FLED -> FLED_RGB -> FLED_INDI
- switch (fled_mode) {
- case FLED_OFF:
- fled_mode = FLED_RGB;
- rgblight_timer_enable();
- break;
-
- case FLED_RGB:
- fled_mode = FLED_INDI;
- break;
-
- case FLED_INDI:
- fled_mode = FLED_OFF;
- break;
- }
-
- // Update stored config
- fled_update_conf();
- rgblight_set();
-}
-
-void fled_val_increase(void)
-{
- // Increase val by FLED_VAL_STEP, handling the upper edge case
- if (fled_val + FLED_VAL_STEP > 255)
- fled_val = 255;
- else
- fled_val += FLED_VAL_STEP;
-
- // Update stored config
- fled_update_conf();
-
- // Update and set LED state
- if (fled_mode == FLED_INDI) {
- fled_layer_update(layer_state);
- fled_lock_update(host_keyboard_led_state());
- } else {
- rgblight_set();
- }
-}
-
-void fled_val_decrease(void)
-{
- // Decrease val by FLED_VAL_STEP, handling the lower edge case
- if (fled_val - FLED_VAL_STEP > 255)
- fled_val = 255;
- else
- fled_val -= FLED_VAL_STEP;
-
- // Update stored config
- fled_update_conf();
-
- // Update and set LED state
- if (fled_mode == FLED_INDI) {
- fled_layer_update(layer_state);
- fled_lock_update(host_keyboard_led_state());
- } else {
- rgblight_set();
- }
-}
-
-void fled_layer_update(layer_state_t state) {
- // Determine and set colour of layer LED according to current layer
- // if hue = sat = 0, leave LED off
- uint8_t layer = get_highest_layer(state);
-
- if (layer < lc_size && !(layer_colors[layer].hue == 0 && layer_colors[layer].sat == 0)) {
- sethsv(layer_colors[layer].hue, layer_colors[layer].sat, fled_val, &fleds[1]);
- } else {
- setrgb(0, 0, 0, &fleds[1]);
- }
-}
-
-void fled_lock_update(led_t led_state) {
- // Set indicator LED appropriately, whether it is used or not
- if (led_state.caps_lock) {
- sethsv(caps_color.hue, caps_color.sat, fled_val, &fleds[0]);
- } else {
- setrgb(0, 0, 0, &fleds[0]);
- }
-
- rgblight_set();
-}
-
-void set_fled_layer_color(uint8_t layer, hs_set hs) {
- // Update layer colors and refresh LEDs
- layer_colors[layer] = hs;
- fled_layer_update(layer_state);
- fled_update_conf();
-}
-
-hs_set get_fled_layer_color(uint8_t layer) {
- return layer_colors[layer];
-}
-
-void set_fled_caps_color(hs_set hs) {
- // Update caplock color and refresh LEDs
- caps_color = hs;
- fled_lock_update(host_keyboard_led_state());
- fled_update_conf();
-}
-
-hs_set get_fled_caps_color(void) {
- return caps_color;
-}
-
-// Fallback eeprom functions if VIA is not enabled
-#ifndef VIA_ENABLE
-
-// Can be called in an overriding via_init_kb() to test if keyboard level code usage of
-// EEPROM is invalid and use/save defaults.
-bool via_eeprom_is_valid(void)
-{
- char *p = QMK_BUILDDATE; // e.g. "2019-11-05-11:29:54"
- uint8_t magic0 = ( ( p[2] & 0x0F ) << 4 ) | ( p[3] & 0x0F );
- uint8_t magic1 = ( ( p[5] & 0x0F ) << 4 ) | ( p[6] & 0x0F );
- uint8_t magic2 = ( ( p[8] & 0x0F ) << 4 ) | ( p[9] & 0x0F );
-
- return (eeprom_read_byte( (void*)VIA_EEPROM_MAGIC_ADDR+0 ) == magic0 &&
- eeprom_read_byte( (void*)VIA_EEPROM_MAGIC_ADDR+1 ) == magic1 &&
- eeprom_read_byte( (void*)VIA_EEPROM_MAGIC_ADDR+2 ) == magic2 );
-}
-
-#endif
diff --git a/keyboards/mxss/mxss_frontled.h b/keyboards/mxss/mxss_frontled.h
deleted file mode 100644
index c8d4199d47..0000000000
--- a/keyboards/mxss/mxss_frontled.h
+++ /dev/null
@@ -1,87 +0,0 @@
-/* Copyright 2020 Jumail Mundekkat / MxBlue
- *
- * 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/>.
- */
-
-// EEPROM management code taken from Wilba6582
-// https://github.com/Wilba6582/qmk_firmware/blob/zeal60/keyboards/zeal60/zeal_eeprom.h
-
-#pragma once
-
-#include "quantum.h"
-#include "quantum_keycodes.h"
-#include "via.h"
-
-// RGBLED index for front LEDs
-#define RGBLIGHT_FLED1 14
-#define RGBLIGHT_FLED2 15
-
-// Brightness increase step for front LEDs
-#define FLED_VAL_STEP 8
-
-// Front LED settings
-#define FRONTLED_CONF_ADDR ((uint8_t*) VIA_EEPROM_CUSTOM_CONFIG_ADDR)
-#define FRONTLED_COLOR_CNT_ADDR (FRONTLED_CONF_ADDR + 1)
-#define FRONTLED_COLOR_ADDR ((uint16_t*)(FRONTLED_COLOR_CNT_ADDR + 1))
-
-// No point persisting more 4, VIA only allows editing of 3 + 1 for caps
-#define FRONTLED_COLOR_MAXCNT 4
-
-// Modes for front LEDs
-#define FLED_OFF 0b00
-#define FLED_INDI 0b01
-#define FLED_RGB 0b10
-#define FLED_UNDEF 0b11
-
-// Config storage format for EEPROM
-typedef union {
- uint8_t raw;
- struct {
- uint8_t mode :2;
- uint8_t val :6;
- };
-} fled_config;
-
-// Structure to store hue and saturation values
-typedef union {
- uint16_t raw;
- struct {
- uint8_t hue;
- uint8_t sat;
- };
-} hs_set;
-
-// Custom keycodes for front LED control
-enum fled_keycodes {
- FLED_MOD = QK_KB_0, // QK_KB_0 = VIA custom keycode start
- FLED_VAI,
- FLED_VAD,
-};
-
-void fled_init(void); // Run init functions for front LEDs
-void process_record_fled(uint16_t keycode, keyrecord_t* record); // Process keycodes for front LEDs
-void fled_load_conf(void); // Load front LED config from EEPROM
-void fled_update_conf(void); // Store current front LED config to EEPROM
-
-void fled_mode_cycle(void); // Cycle between the 3 modes for the front LEDs
-void fled_val_increase(void); // Increase the brightness of the front LEDs
-void fled_val_decrease(void); // Decrease the brightness of the front LEDs
-
-void fled_layer_update(layer_state_t state); // Process layer update for front LEDs
-void fled_lock_update(led_t led_state); // Process lock update for front LEDs
-
-void set_fled_layer_color(uint8_t layer, hs_set hs); // Set color for a given layer
-void set_fled_caps_color(hs_set hs); // Set color for the capslock indicator
-hs_set get_fled_caps_color(void); // Get color for the capslock indicator
-hs_set get_fled_layer_color(uint8_t layer); // Get color for a given layer
diff --git a/keyboards/mxss/readme.md b/keyboards/mxss/readme.md
index 17343be526..e22fe256ed 100644
--- a/keyboards/mxss/readme.md
+++ b/keyboards/mxss/readme.md
@@ -2,11 +2,6 @@
![MxSS - Polycarb 65% Kit for MX/SMK](https://i.imgur.com/WDTWcmU.jpg)
-### Important Note:
-**This PCB supports the VIA configurator, and this is the recommended way to configure the keymap on this keyboard. Building the firmware should only be necessary if you would like to change the colours of the front LEDs in indicator mode.**
-
-**For more information about the VIA configurator, [see here](https://caniusevia.com/).**
-
### Information:
- Case: Frosted Polycarbonate, CNC milled
@@ -24,32 +19,23 @@
- RGB underglow
- 1.5kg with plate and weight
-Keyboard Maintainer: [MxBlue](https://github.com/mxblu)
-
-Hardware Supported: Custom PCB, ATMega32u4
-
-Hardware Availability: https://geekhack.org/index.php?topic=94986.0
+* Keyboard Maintainer: [MxBlue](https://github.com/mxblu)
+* Hardware Supported: Custom PCB, ATMega32u4
+* Hardware Availability: https://geekhack.org/index.php?topic=94986.0
Make example for this keyboard (after setting up your build environment):
make mxss: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.
-
-# Front LED Operation
+Flashing example for this keyboard:
-The MxSS PCB has 2 front RGB LEDs which has a separate brightness and mode of operation to the rest of the RGB LEDs. These are controlled through the supplied custom keycodes.
+ make mxss:default:flash
-There are 3 modes of operation:
+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).
- - FLED_OFF - Front LEDs stay off
- - FLED_RGB - Front LEDs are part of the standard RGB LED modes, only works correctly with rainbow modes (will fix on request)
- - FLED_INDI - Top front LED represents Caps Lock status, bottom LED represents current layer
-
-Colors for FLED_INDI mode are hardcoded as hue/saturation values, the caps lock color can be found in mxss_frontled.h, the layer colors are defined in keymap.c (see default/keymap.c for example).
+## Bootloader
-## Custom Keycodes
+Enter the bootloader in 2 ways:
- - FLED_MOD - Cycle between the 3 modes (FLED_OFF -> FLED_RGB -> FLED_INDI)
- - FLED_VAI - Increase front LED brightness
- - FLED_VAD - Decrease front LED brightness
+* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard
+* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available
diff --git a/keyboards/mxss/rgblight.c b/keyboards/mxss/rgblight.c
deleted file mode 100644
index 94f6b1dfe8..0000000000
--- a/keyboards/mxss/rgblight.c
+++ /dev/null
@@ -1,1392 +0,0 @@
-/* Copyright 2016-2017 Yang Liu
- *
- * 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 <math.h>
-#include <string.h>
-#include <stdlib.h>
-#ifdef __AVR__
-# include <avr/eeprom.h>
-# include <avr/interrupt.h>
-#endif
-#ifdef EEPROM_ENABLE
-# include "eeprom.h"
-#endif
-#include "wait.h"
-#include "progmem.h"
-#include "timer.h"
-#include "rgblight.h"
-#include "color.h"
-#include "debug.h"
-#include "led_tables.h"
-#include <lib/lib8tion/lib8tion.h>
-#ifdef VELOCIKEY_ENABLE
-# include "velocikey.h"
-#endif
-// MxSS custom
-#include "mxss_frontled.h"
-
-#ifndef MIN
-# define MIN(a, b) (((a) < (b)) ? (a) : (b))
-#endif
-
-#ifdef RGBLIGHT_SPLIT
-/* for split keyboard */
-# define RGBLIGHT_SPLIT_SET_CHANGE_MODE rgblight_status.change_flags |= RGBLIGHT_STATUS_CHANGE_MODE
-# define RGBLIGHT_SPLIT_SET_CHANGE_HSVS rgblight_status.change_flags |= RGBLIGHT_STATUS_CHANGE_HSVS
-# define RGBLIGHT_SPLIT_SET_CHANGE_MODEHSVS rgblight_status.change_flags |= (RGBLIGHT_STATUS_CHANGE_MODE | RGBLIGHT_STATUS_CHANGE_HSVS)
-# define RGBLIGHT_SPLIT_SET_CHANGE_LAYERS rgblight_status.change_flags |= RGBLIGHT_STATUS_CHANGE_LAYERS
-# define RGBLIGHT_SPLIT_SET_CHANGE_TIMER_ENABLE rgblight_status.change_flags |= RGBLIGHT_STATUS_CHANGE_TIMER
-# define RGBLIGHT_SPLIT_ANIMATION_TICK rgblight_status.change_flags |= RGBLIGHT_STATUS_ANIMATION_TICK
-#else
-# define RGBLIGHT_SPLIT_SET_CHANGE_MODE
-# define RGBLIGHT_SPLIT_SET_CHANGE_HSVS
-# define RGBLIGHT_SPLIT_SET_CHANGE_MODEHSVS
-# define RGBLIGHT_SPLIT_SET_CHANGE_LAYERS
-# define RGBLIGHT_SPLIT_SET_CHANGE_TIMER_ENABLE
-# define RGBLIGHT_SPLIT_ANIMATION_TICK
-#endif
-
-#define _RGBM_SINGLE_STATIC(sym) RGBLIGHT_MODE_##sym,
-#define _RGBM_SINGLE_DYNAMIC(sym)
-#define _RGBM_MULTI_STATIC(sym) RGBLIGHT_MODE_##sym,
-#define _RGBM_MULTI_DYNAMIC(sym)
-#define _RGBM_TMP_STATIC(sym, msym) RGBLIGHT_MODE_##sym,
-#define _RGBM_TMP_DYNAMIC(sym, msym)
-static uint8_t static_effect_table[] = {
-#include "rgblight_modes.h"
-};
-
-#define _RGBM_SINGLE_STATIC(sym) RGBLIGHT_MODE_##sym,
-#define _RGBM_SINGLE_DYNAMIC(sym) RGBLIGHT_MODE_##sym,
-#define _RGBM_MULTI_STATIC(sym) RGBLIGHT_MODE_##sym,
-#define _RGBM_MULTI_DYNAMIC(sym) RGBLIGHT_MODE_##sym,
-#define _RGBM_TMP_STATIC(sym, msym) RGBLIGHT_MODE_##msym,
-#define _RGBM_TMP_DYNAMIC(sym, msym) RGBLIGHT_MODE_##msym,
-static uint8_t mode_base_table[] = {
- 0, // RGBLIGHT_MODE_zero
-#include "rgblight_modes.h"
-};
-
-static inline int is_static_effect(uint8_t mode) { return memchr(static_effect_table, mode, sizeof(static_effect_table)) != NULL; }
-
-#ifdef RGBLIGHT_LED_MAP
-const uint8_t led_map[] PROGMEM = RGBLIGHT_LED_MAP;
-#endif
-
-#ifdef RGBLIGHT_EFFECT_STATIC_GRADIENT
-__attribute__((weak)) const uint8_t RGBLED_GRADIENT_RANGES[] PROGMEM = {255, 170, 127, 85, 64};
-#endif
-
-rgblight_config_t rgblight_config;
-rgblight_status_t rgblight_status = {.timer_enabled = false};
-bool is_rgblight_initialized = false;
-
-#ifdef RGBLIGHT_USE_TIMER
-animation_status_t animation_status = {};
-#endif
-
-#ifndef LED_ARRAY
-LED_TYPE led[RGBLED_NUM];
-# define LED_ARRAY led
-#endif
-
-#ifdef RGBLIGHT_LAYERS
-rgblight_segment_t const *const *rgblight_layers = NULL;
-#endif
-
-rgblight_ranges_t rgblight_ranges = {0, RGBLED_NUM, 0, RGBLED_NUM, RGBLED_NUM};
-
-// MxSS custom
-extern uint8_t fled_mode;
-extern uint8_t fled_val;
-extern LED_TYPE fleds[2];
-hs_set fled_hs[2];
-
-void copyrgb(LED_TYPE *src, LED_TYPE *dst) {
- dst->r = src->r;
- dst->g = src->g;
- dst->b = src->b;
-}
-
-void rgblight_set_clipping_range(uint8_t start_pos, uint8_t num_leds) {
- rgblight_ranges.clipping_start_pos = start_pos;
- rgblight_ranges.clipping_num_leds = num_leds;
-}
-
-void rgblight_set_effect_range(uint8_t start_pos, uint8_t num_leds) {
- if (start_pos >= RGBLED_NUM) return;
- if (start_pos + num_leds > RGBLED_NUM) return;
- rgblight_ranges.effect_start_pos = start_pos;
- rgblight_ranges.effect_end_pos = start_pos + num_leds;
- rgblight_ranges.effect_num_leds = num_leds;
-}
-
-__attribute__((weak)) RGB rgblight_hsv_to_rgb(HSV hsv) { return hsv_to_rgb(hsv); }
-
-void sethsv_raw(uint8_t hue, uint8_t sat, uint8_t val, LED_TYPE *led1) {
- HSV hsv = {hue, sat, val};
- // MxSS custom
- // if led is front leds, cache the hue and sat values
- if (led1 == &led[RGBLIGHT_FLED1]) {
- fled_hs[0].hue = hue;
- fled_hs[0].sat = sat;
- } else if (led1 == &led[RGBLIGHT_FLED2]) {
- fled_hs[1].hue = hue;
- fled_hs[1].sat = sat;
- }
- RGB rgb = rgblight_hsv_to_rgb(hsv);
- setrgb(rgb.r, rgb.g, rgb.b, led1);
-}
-
-void sethsv(uint8_t hue, uint8_t sat, uint8_t val, LED_TYPE *led1) { sethsv_raw(hue, sat, val > RGBLIGHT_LIMIT_VAL ? RGBLIGHT_LIMIT_VAL : val, led1); }
-
-void setrgb(uint8_t r, uint8_t g, uint8_t b, LED_TYPE *led1) {
- led1->r = r;
- led1->g = g;
- led1->b = b;
-#ifdef RGBW
- led1->w = 0;
-#endif
-}
-
-void rgblight_check_config(void) {
- /* Add some out of bound checks for RGB light config */
-
- if (rgblight_config.mode < RGBLIGHT_MODE_STATIC_LIGHT) {
- rgblight_config.mode = RGBLIGHT_MODE_STATIC_LIGHT;
- } else if (rgblight_config.mode > RGBLIGHT_MODES) {
- rgblight_config.mode = RGBLIGHT_MODES;
- }
-
- if (rgblight_config.val > RGBLIGHT_LIMIT_VAL) {
- rgblight_config.val = RGBLIGHT_LIMIT_VAL;
- }
-}
-
-uint64_t eeconfig_read_rgblight(void) {
-#ifdef EEPROM_ENABLE
- return (uint64_t)((eeprom_read_dword(EECONFIG_RGBLIGHT)) | ((uint64_t)eeprom_read_byte(EECONFIG_RGBLIGHT_EXTENDED) << 32));
-#else
- return 0;
-#endif
-}
-
-void eeconfig_update_rgblight(uint64_t val) {
-#ifdef EEPROM_ENABLE
- rgblight_check_config();
- eeprom_update_dword(EECONFIG_RGBLIGHT, val & 0xFFFFFFFF);
- eeprom_update_byte(EECONFIG_RGBLIGHT_EXTENDED, (val >> 32) & 0xFF);
-#endif
-}
-
-void eeconfig_update_rgblight_current(void) { eeconfig_update_rgblight(rgblight_config.raw); }
-
-void eeconfig_update_rgblight_default(void) {
- rgblight_config.enable = 1;
- rgblight_config.mode = RGBLIGHT_MODE_STATIC_LIGHT;
- rgblight_config.hue = 0;
- rgblight_config.sat = UINT8_MAX;
- rgblight_config.val = RGBLIGHT_LIMIT_VAL;
- rgblight_config.speed = 0;
- RGBLIGHT_SPLIT_SET_CHANGE_MODEHSVS;
- eeconfig_update_rgblight(rgblight_config.raw);
-}
-
-void eeconfig_debug_rgblight(void) {
- dprintf("rgblight_config EEPROM:\n");
- dprintf("rgblight_config.enable = %d\n", rgblight_config.enable);
- dprintf("rghlight_config.mode = %d\n", rgblight_config.mode);
- dprintf("rgblight_config.hue = %d\n", rgblight_config.hue);
- dprintf("rgblight_config.sat = %d\n", rgblight_config.sat);
- dprintf("rgblight_config.val = %d\n", rgblight_config.val);
- dprintf("rgblight_config.speed = %d\n", rgblight_config.speed);
-}
-
-void rgblight_init(void) {
- /* if already initialized, don't do it again.
- If you must do it again, extern this and set to false, first.
- This is a dirty, dirty hack until proper hooks can be added for keyboard startup. */
- if (is_rgblight_initialized) {
- return;
- }
-
- dprintf("rgblight_init called.\n");
- dprintf("rgblight_init start!\n");
- if (!eeconfig_is_enabled()) {
- dprintf("rgblight_init eeconfig is not enabled.\n");
- eeconfig_init();
- eeconfig_update_rgblight_default();
- }
- rgblight_config.raw = eeconfig_read_rgblight();
- RGBLIGHT_SPLIT_SET_CHANGE_MODEHSVS;
- if (!rgblight_config.mode) {
- dprintf("rgblight_init rgblight_config.mode = 0. Write default values to EEPROM.\n");
- eeconfig_update_rgblight_default();
- rgblight_config.raw = eeconfig_read_rgblight();
- }
- rgblight_check_config();
-
- eeconfig_debug_rgblight(); // display current eeprom values
-
- rgblight_timer_init(); // setup the timer
-
- if (rgblight_config.enable) {
- rgblight_mode_noeeprom(rgblight_config.mode);
- }
-
- is_rgblight_initialized = true;
-}
-
-uint32_t rgblight_read_dword(void) { return rgblight_config.raw; }
-
-void rgblight_update_dword(uint32_t dword) {
- RGBLIGHT_SPLIT_SET_CHANGE_MODEHSVS;
- rgblight_config.raw = dword;
- if (rgblight_config.enable)
- rgblight_mode_noeeprom(rgblight_config.mode);
- else {
- rgblight_timer_disable();
- rgblight_set();
- }
-}
-
-void rgblight_increase(void) {
- uint8_t mode = 0;
- if (rgblight_config.mode < RGBLIGHT_MODES) {
- mode = rgblight_config.mode + 1;
- }
- rgblight_mode(mode);
-}
-void rgblight_decrease(void) {
- uint8_t mode = 0;
- // Mode will never be < 1. If it ever is, eeprom needs to be initialized.
- if (rgblight_config.mode > RGBLIGHT_MODE_STATIC_LIGHT) {
- mode = rgblight_config.mode - 1;
- }
- rgblight_mode(mode);
-}
-void rgblight_step_helper(bool write_to_eeprom) {
- uint8_t mode = 0;
- mode = rgblight_config.mode + 1;
- if (mode > RGBLIGHT_MODES) {
- mode = 1;
- }
- rgblight_mode_eeprom_helper(mode, write_to_eeprom);
-}
-void rgblight_step_noeeprom(void) { rgblight_step_helper(false); }
-void rgblight_step(void) { rgblight_step_helper(true); }
-void rgblight_step_reverse_helper(bool write_to_eeprom) {
- uint8_t mode = 0;
- mode = rgblight_config.mode - 1;
- if (mode < 1) {
- mode = RGBLIGHT_MODES;
- }
- rgblight_mode_eeprom_helper(mode, write_to_eeprom);
-}
-void rgblight_step_reverse_noeeprom(void) { rgblight_step_reverse_helper(false); }
-void rgblight_step_reverse(void) { rgblight_step_reverse_helper(true); }
-
-uint8_t rgblight_get_mode(void) {
- if (!rgblight_config.enable) {
- return false;
- }
-
- return rgblight_config.mode;
-}
-
-void rgblight_mode_eeprom_helper(uint8_t mode, bool write_to_eeprom) {
- if (!rgblight_config.enable) {
- return;
- }
- if (mode < RGBLIGHT_MODE_STATIC_LIGHT) {
- rgblight_config.mode = RGBLIGHT_MODE_STATIC_LIGHT;
- } else if (mode > RGBLIGHT_MODES) {
- rgblight_config.mode = RGBLIGHT_MODES;
- } else {
- rgblight_config.mode = mode;
- }
- RGBLIGHT_SPLIT_SET_CHANGE_MODE;
- if (write_to_eeprom) {
- eeconfig_update_rgblight(rgblight_config.raw);
- dprintf("rgblight mode [EEPROM]: %u\n", rgblight_config.mode);
- } else {
- dprintf("rgblight mode [NOEEPROM]: %u\n", rgblight_config.mode);
- }
- if (is_static_effect(rgblight_config.mode)) {
- rgblight_timer_disable();
- } else {
- rgblight_timer_enable();
- }
-#ifdef RGBLIGHT_USE_TIMER
- animation_status.restart = true;
-#endif
- rgblight_sethsv_noeeprom(rgblight_config.hue, rgblight_config.sat, rgblight_config.val);
-}
-
-void rgblight_mode(uint8_t mode) { rgblight_mode_eeprom_helper(mode, true); }
-
-void rgblight_mode_noeeprom(uint8_t mode) { rgblight_mode_eeprom_helper(mode, false); }
-
-void rgblight_toggle(void) {
- dprintf("rgblight toggle [EEPROM]: rgblight_config.enable = %u\n", !rgblight_config.enable);
- if (rgblight_config.enable) {
- rgblight_disable();
- } else {
- rgblight_enable();
- }
-}
-
-void rgblight_toggle_noeeprom(void) {
- dprintf("rgblight toggle [NOEEPROM]: rgblight_config.enable = %u\n", !rgblight_config.enable);
- if (rgblight_config.enable) {
- rgblight_disable_noeeprom();
- } else {
- rgblight_enable_noeeprom();
- }
-}
-
-void rgblight_enable(void) {
- rgblight_config.enable = 1;
- // No need to update EEPROM here. rgblight_mode() will do that, actually
- // eeconfig_update_rgblight(rgblight_config.raw);
- dprintf("rgblight enable [EEPROM]: rgblight_config.enable = %u\n", rgblight_config.enable);
- rgblight_mode(rgblight_config.mode);
-}
-
-void rgblight_enable_noeeprom(void) {
- rgblight_config.enable = 1;
- dprintf("rgblight enable [NOEEPROM]: rgblight_config.enable = %u\n", rgblight_config.enable);
- rgblight_mode_noeeprom(rgblight_config.mode);
-}
-
-void rgblight_disable(void) {
- rgblight_config.enable = 0;
- eeconfig_update_rgblight(rgblight_config.raw);
- dprintf("rgblight disable [EEPROM]: rgblight_config.enable = %u\n", rgblight_config.enable);
- rgblight_timer_disable();
- RGBLIGHT_SPLIT_SET_CHANGE_MODE;
- wait_ms(50);
- rgblight_set();
-}
-
-void rgblight_disable_noeeprom(void) {
- rgblight_config.enable = 0;
- dprintf("rgblight disable [NOEEPROM]: rgblight_config.enable = %u\n", rgblight_config.enable);
- rgblight_timer_disable();
- RGBLIGHT_SPLIT_SET_CHANGE_MODE;
- wait_ms(50);
- rgblight_set();
-}
-
-bool rgblight_is_enabled(void) { return rgblight_config.enable; }
-
-void rgblight_increase_hue_helper(bool write_to_eeprom) {
- uint8_t hue = rgblight_config.hue + RGBLIGHT_HUE_STEP;
- rgblight_sethsv_eeprom_helper(hue, rgblight_config.sat, rgblight_config.val, write_to_eeprom);
-}
-void rgblight_increase_hue_noeeprom(void) { rgblight_increase_hue_helper(false); }
-void rgblight_increase_hue(void) { rgblight_increase_hue_helper(true); }
-void rgblight_decrease_hue_helper(bool write_to_eeprom) {
- uint8_t hue = rgblight_config.hue - RGBLIGHT_HUE_STEP;
- rgblight_sethsv_eeprom_helper(hue, rgblight_config.sat, rgblight_config.val, write_to_eeprom);
-}
-void rgblight_decrease_hue_noeeprom(void) { rgblight_decrease_hue_helper(false); }
-void rgblight_decrease_hue(void) { rgblight_decrease_hue_helper(true); }
-void rgblight_increase_sat_helper(bool write_to_eeprom) {
- uint8_t sat = qadd8(rgblight_config.sat, RGBLIGHT_SAT_STEP);
- rgblight_sethsv_eeprom_helper(rgblight_config.hue, sat, rgblight_config.val, write_to_eeprom);
-}
-void rgblight_increase_sat_noeeprom(void) { rgblight_increase_sat_helper(false); }
-void rgblight_increase_sat(void) { rgblight_increase_sat_helper(true); }
-void rgblight_decrease_sat_helper(bool write_to_eeprom) {
- uint8_t sat = qsub8(rgblight_config.sat, RGBLIGHT_SAT_STEP);
- rgblight_sethsv_eeprom_helper(rgblight_config.hue, sat, rgblight_config.val, write_to_eeprom);
-}
-void rgblight_decrease_sat_noeeprom(void) { rgblight_decrease_sat_helper(false); }
-void rgblight_decrease_sat(void) { rgblight_decrease_sat_helper(true); }
-void rgblight_increase_val_helper(bool write_to_eeprom) {
- uint8_t val = qadd8(rgblight_config.val, RGBLIGHT_VAL_STEP);
- rgblight_sethsv_eeprom_helper(rgblight_config.hue, rgblight_config.sat, val, write_to_eeprom);
-}
-void rgblight_increase_val_noeeprom(void) { rgblight_increase_val_helper(false); }
-void rgblight_increase_val(void) { rgblight_increase_val_helper(true); }
-void rgblight_decrease_val_helper(bool write_to_eeprom) {
- uint8_t val = qsub8(rgblight_config.val, RGBLIGHT_VAL_STEP);
- rgblight_sethsv_eeprom_helper(rgblight_config.hue, rgblight_config.sat, val, write_to_eeprom);
-}
-void rgblight_decrease_val_noeeprom(void) { rgblight_decrease_val_helper(false); }
-void rgblight_decrease_val(void) { rgblight_decrease_val_helper(true); }
-
-void rgblight_increase_speed_helper(bool write_to_eeprom) {
- if (rgblight_config.speed < 3) rgblight_config.speed++;
- // RGBLIGHT_SPLIT_SET_CHANGE_HSVS; // NEED?
- if (write_to_eeprom) {
- eeconfig_update_rgblight(rgblight_config.raw); // EECONFIG needs to be increased to support this
- }
-}
-void rgblight_increase_speed(void) { rgblight_increase_speed_helper(true); }
-void rgblight_increase_speed_noeeprom(void) { rgblight_increase_speed_helper(false); }
-void rgblight_decrease_speed_helper(bool write_to_eeprom) {
- if (rgblight_config.speed > 0) rgblight_config.speed--;
- // RGBLIGHT_SPLIT_SET_CHANGE_HSVS; // NEED??
- if (write_to_eeprom) {
- eeconfig_update_rgblight(rgblight_config.raw); // EECONFIG needs to be increased to support this
- }
-}
-void rgblight_decrease_speed(void) { rgblight_decrease_speed_helper(true); }
-void rgblight_decrease_speed_noeeprom(void) { rgblight_decrease_speed_helper(false); }
-
-void rgblight_sethsv_noeeprom_old(uint8_t hue, uint8_t sat, uint8_t val) {
- if (rgblight_config.enable) {
- // MxSS custom code
- fled_hs[0].hue = fled_hs[1].hue = hue;
- fled_hs[0].sat = fled_hs[1].sat = sat;
-
- LED_TYPE tmp_led;
- sethsv(hue, sat, val, &tmp_led);
- rgblight_setrgb(tmp_led.r, tmp_led.g, tmp_led.b);
- }
-}
-
-void rgblight_sethsv_eeprom_helper(uint8_t hue, uint8_t sat, uint8_t val, bool write_to_eeprom) {
- if (rgblight_config.enable) {
- rgblight_status.base_mode = mode_base_table[rgblight_config.mode];
- if (rgblight_config.mode == RGBLIGHT_MODE_STATIC_LIGHT) {
- // same static color
- LED_TYPE tmp_led;
- sethsv(hue, sat, val, &tmp_led);
-
- // MxSS custom
- // Cache hue/sat for rgb
- fled_hs[0].hue = fled_hs[1].hue = hue;
- fled_hs[0].sat = fled_hs[1].sat = sat;
-
- rgblight_setrgb(tmp_led.r, tmp_led.g, tmp_led.b);
- } else {
- // all LEDs in same color
- if (1 == 0) { // dummy
- }
-#ifdef RGBLIGHT_EFFECT_BREATHING
- else if (rgblight_status.base_mode == RGBLIGHT_MODE_BREATHING) {
- // breathing mode, ignore the change of val, use in memory value instead
- val = rgblight_config.val;
- }
-#endif
-#ifdef RGBLIGHT_EFFECT_RAINBOW_MOOD
- else if (rgblight_status.base_mode == RGBLIGHT_MODE_RAINBOW_MOOD) {
- // rainbow mood, ignore the change of hue
- hue = rgblight_config.hue;
- }
-#endif
-#ifdef RGBLIGHT_EFFECT_RAINBOW_SWIRL
- else if (rgblight_status.base_mode == RGBLIGHT_MODE_RAINBOW_SWIRL) {
- // rainbow swirl, ignore the change of hue
- hue = rgblight_config.hue;
- }
-#endif
-#ifdef RGBLIGHT_EFFECT_STATIC_GRADIENT
- else if (rgblight_status.base_mode == RGBLIGHT_MODE_STATIC_GRADIENT) {
- // static gradient
- uint8_t delta = rgblight_config.mode - rgblight_status.base_mode;
- bool direction = (delta % 2) == 0;
-# ifdef __AVR__
- // probably due to how pgm_read_word is defined for ARM, but the ARM compiler really hates this line
- uint8_t range = pgm_read_word(&RGBLED_GRADIENT_RANGES[delta / 2]);
-# else
- uint8_t range = RGBLED_GRADIENT_RANGES[delta / 2];
-# endif
- for (uint8_t i = 0; i < rgblight_ranges.effect_num_leds; i++) {
- uint8_t _hue = ((uint16_t)i * (uint16_t)range) / rgblight_ranges.effect_num_leds;
- if (direction) {
- _hue = hue + _hue;
- } else {
- _hue = hue - _hue;
- }
- dprintf("rgblight rainbow set hsv: %d,%d,%d,%u\n", i, _hue, direction, range);
- sethsv(_hue, sat, val, (LED_TYPE *)&led[i + rgblight_ranges.effect_start_pos]);
- }
- rgblight_set();
- }
-#endif
- }
-#ifdef RGBLIGHT_SPLIT
- if (rgblight_config.hue != hue || rgblight_config.sat != sat || rgblight_config.val != val) {
- RGBLIGHT_SPLIT_SET_CHANGE_HSVS;
- }
-#endif
- rgblight_config.hue = hue;
- rgblight_config.sat = sat;
- rgblight_config.val = val;
- if (write_to_eeprom) {
- eeconfig_update_rgblight(rgblight_config.raw);
- dprintf("rgblight set hsv [EEPROM]: %u,%u,%u\n", rgblight_config.hue, rgblight_config.sat, rgblight_config.val);
- } else {
- dprintf("rgblight set hsv [NOEEPROM]: %u,%u,%u\n", rgblight_config.hue, rgblight_config.sat, rgblight_config.val);
- }
- }
-}
-
-void rgblight_sethsv(uint8_t hue, uint8_t sat, uint8_t val) { rgblight_sethsv_eeprom_helper(hue, sat, val, true); }
-
-void rgblight_sethsv_noeeprom(uint8_t hue, uint8_t sat, uint8_t val) { rgblight_sethsv_eeprom_helper(hue, sat, val, false); }
-
-uint8_t rgblight_get_speed(void) { return rgblight_config.speed; }
-
-void rgblight_set_speed_eeprom_helper(uint8_t speed, bool write_to_eeprom) {
- rgblight_config.speed = speed;
- if (write_to_eeprom) {
- eeconfig_update_rgblight(rgblight_config.raw); // EECONFIG needs to be increased to support this
- dprintf("rgblight set speed [EEPROM]: %u\n", rgblight_config.speed);
- } else {
- dprintf("rgblight set speed [NOEEPROM]: %u\n", rgblight_config.speed);
- }
-}
-
-void rgblight_set_speed(uint8_t speed) { rgblight_set_speed_eeprom_helper(speed, true); }
-
-void rgblight_set_speed_noeeprom(uint8_t speed) { rgblight_set_speed_eeprom_helper(speed, false); }
-
-uint8_t rgblight_get_hue(void) { return rgblight_config.hue; }
-
-uint8_t rgblight_get_sat(void) { return rgblight_config.sat; }
-
-uint8_t rgblight_get_val(void) { return rgblight_config.val; }
-
-HSV rgblight_get_hsv(void) { return (HSV){rgblight_config.hue, rgblight_config.sat, rgblight_config.val}; }
-
-void rgblight_setrgb(uint8_t r, uint8_t g, uint8_t b) {
- if (!rgblight_config.enable) {
- return;
- }
-
- for (uint8_t i = rgblight_ranges.effect_start_pos; i < rgblight_ranges.effect_end_pos; i++) {
- led[i].r = r;
- led[i].g = g;
- led[i].b = b;
-#ifdef RGBW
- led[i].w = 0;
-#endif
- }
- rgblight_set();
-}
-
-void rgblight_setrgb_at(uint8_t r, uint8_t g, uint8_t b, uint8_t index) {
- if (!rgblight_config.enable || index >= RGBLED_NUM) {
- return;
- }
-
- led[index].r = r;
- led[index].g = g;
- led[index].b = b;
-#ifdef RGBW
- led[index].w = 0;
-#endif
- rgblight_set();
-}
-
-void rgblight_sethsv_at(uint8_t hue, uint8_t sat, uint8_t val, uint8_t index) {
- if (!rgblight_config.enable) {
- return;
- }
-
- LED_TYPE tmp_led;
- sethsv(hue, sat, val, &tmp_led);
- rgblight_setrgb_at(tmp_led.r, tmp_led.g, tmp_led.b, index);
-}
-
-#if defined(RGBLIGHT_EFFECT_BREATHING) || defined(RGBLIGHT_EFFECT_RAINBOW_MOOD) || defined(RGBLIGHT_EFFECT_RAINBOW_SWIRL) || defined(RGBLIGHT_EFFECT_SNAKE) || defined(RGBLIGHT_EFFECT_KNIGHT) || defined(RGBLIGHT_EFFECT_TWINKLE)
-
-static uint8_t get_interval_time(const uint8_t *default_interval_address, uint8_t velocikey_min, uint8_t velocikey_max) {
- return
-# ifdef VELOCIKEY_ENABLE
- velocikey_enabled() ? velocikey_match_speed(velocikey_min, velocikey_max) :
-# endif
- pgm_read_byte(default_interval_address);
-}
-
-#endif
-
-void rgblight_setrgb_range(uint8_t r, uint8_t g, uint8_t b, uint8_t start, uint8_t end) {
- if (!rgblight_config.enable || start < 0 || start >= end || end > RGBLED_NUM) {
- return;
- }
-
- for (uint8_t i = start; i < end; i++) {
- led[i].r = r;
- led[i].g = g;
- led[i].b = b;
-#ifdef RGBW
- led[i].w = 0;
-#endif
- }
- rgblight_set();
- wait_ms(1);
-}
-
-void rgblight_sethsv_range(uint8_t hue, uint8_t sat, uint8_t val, uint8_t start, uint8_t end) {
- if (!rgblight_config.enable) {
- return;
- }
-
- LED_TYPE tmp_led;
- sethsv(hue, sat, val, &tmp_led);
- rgblight_setrgb_range(tmp_led.r, tmp_led.g, tmp_led.b, start, end);
-}
-
-#ifndef RGBLIGHT_SPLIT
-void rgblight_setrgb_master(uint8_t r, uint8_t g, uint8_t b) { rgblight_setrgb_range(r, g, b, 0, (uint8_t)RGBLED_NUM / 2); }
-
-void rgblight_setrgb_slave(uint8_t r, uint8_t g, uint8_t b) { rgblight_setrgb_range(r, g, b, (uint8_t)RGBLED_NUM / 2, (uint8_t)RGBLED_NUM); }
-
-void rgblight_sethsv_master(uint8_t hue, uint8_t sat, uint8_t val) { rgblight_sethsv_range(hue, sat, val, 0, (uint8_t)RGBLED_NUM / 2); }
-
-void rgblight_sethsv_slave(uint8_t hue, uint8_t sat, uint8_t val) { rgblight_sethsv_range(hue, sat, val, (uint8_t)RGBLED_NUM / 2, (uint8_t)RGBLED_NUM); }
-#endif // ifndef RGBLIGHT_SPLIT
-
-#ifdef RGBLIGHT_LAYERS
-void rgblight_set_layer_state(uint8_t layer, bool enabled) {
- rgblight_layer_mask_t mask = 1 << layer;
- if (enabled) {
- rgblight_status.enabled_layer_mask |= mask;
- } else {
- rgblight_status.enabled_layer_mask &= ~mask;
- }
- RGBLIGHT_SPLIT_SET_CHANGE_LAYERS;
- // Static modes don't have a ticker running to update the LEDs
- if (rgblight_status.timer_enabled == false) {
- rgblight_mode_noeeprom(rgblight_config.mode);
- }
-
-# ifdef RGBLIGHT_LAYERS_OVERRIDE_RGB_OFF
- // If not enabled, then nothing else will actually set the LEDs...
- if (!rgblight_config.enable) {
- rgblight_set();
- }
-# endif
-}
-
-bool rgblight_get_layer_state(uint8_t layer) {
- rgblight_layer_mask_t mask = 1 << layer;
- return (rgblight_status.enabled_layer_mask & mask) != 0;
-}
-
-// Write any enabled LED layers into the buffer
-static void rgblight_layers_write(void) {
- uint8_t i = 0;
- // For each layer
- for (const rgblight_segment_t *const *layer_ptr = rgblight_layers; i < RGBLIGHT_MAX_LAYERS; layer_ptr++, i++) {
- if (!rgblight_get_layer_state(i)) {
- continue; // Layer is disabled
- }
- const rgblight_segment_t *segment_ptr = pgm_read_ptr(layer_ptr);
- if (segment_ptr == NULL) {
- break; // No more layers
- }
- // For each segment
- while (1) {
- rgblight_segment_t segment;
- memcpy_P(&segment, segment_ptr, sizeof(rgblight_segment_t));
- if (segment.index == RGBLIGHT_END_SEGMENT_INDEX) {
- break; // No more segments
- }
- // Write segment.count LEDs
- LED_TYPE *const limit = &led[MIN(segment.index + segment.count, RGBLED_NUM)];
- for (LED_TYPE *led_ptr = &led[segment.index]; led_ptr < limit; led_ptr++) {
- sethsv(segment.hue, segment.sat, segment.val, led_ptr);
- }
- segment_ptr++;
- }
- }
-}
-
-# ifdef RGBLIGHT_LAYER_BLINK
-rgblight_layer_mask_t _blinked_layer_mask = 0;
-uint16_t _blink_duration = 0;
-static uint16_t _blink_timer;
-
-void rgblight_blink_layer(uint8_t layer, uint16_t duration_ms) {
- rgblight_set_layer_state(layer, true);
- _blinked_layer_mask |= 1 << layer;
- _blink_timer = timer_read();
- _blink_duration = duration_ms;
-}
-
-void rgblight_unblink_layers(void) {
- if (_blinked_layer_mask != 0 && timer_elapsed(_blink_timer) > _blink_duration) {
- for (uint8_t layer = 0; layer < RGBLIGHT_MAX_LAYERS; layer++) {
- if ((_blinked_layer_mask & 1 << layer) != 0) {
- rgblight_set_layer_state(layer, false);
- }
- }
- _blinked_layer_mask = 0;
- }
-}
-# endif
-
-#endif
-
-__attribute__((weak)) void rgblight_call_driver(LED_TYPE *start_led, uint8_t num_leds) { ws2812_setleds(start_led, num_leds); }
-
-#ifndef RGBLIGHT_CUSTOM_DRIVER
-void rgblight_set(void) {
- LED_TYPE *start_led;
- uint8_t num_leds = rgblight_ranges.clipping_num_leds;
-
- if (!rgblight_config.enable) {
- for (uint8_t i = rgblight_ranges.effect_start_pos; i < rgblight_ranges.effect_end_pos; i++) {
- if (i == RGBLIGHT_FLED1 && i == RGBLIGHT_FLED2)
- continue;
-
- led[i].r = 0;
- led[i].g = 0;
- led[i].b = 0;
-# ifdef RGBW
- led[i].w = 0;
-# endif
- }
- }
-
-# ifdef RGBLIGHT_LAYERS
- if (rgblight_layers != NULL
-# ifndef RGBLIGHT_LAYERS_OVERRIDE_RGB_OFF
- && rgblight_config.enable
-# endif
- ) {
- rgblight_layers_write();
- }
-# endif
-
-# ifdef RGBLIGHT_LED_MAP
- LED_TYPE led0[RGBLED_NUM];
- for (uint8_t i = 0; i < RGBLED_NUM; i++) {
- led0[i] = led[pgm_read_byte(&led_map[i])];
- }
- start_led = led0 + rgblight_ranges.clipping_start_pos;
-# else
- start_led = led + rgblight_ranges.clipping_start_pos;
-# endif
-
-# ifdef RGBW
- for (uint8_t i = 0; i < num_leds; i++) {
- convert_rgb_to_rgbw(&start_led[i]);
- }
-# endif
- // MxSS custom
- switch (fled_mode) {
- case FLED_OFF:
- setrgb(0, 0, 0, &led[RGBLIGHT_FLED1]);
- setrgb(0, 0, 0, &led[RGBLIGHT_FLED2]);
- break;
-
- case FLED_INDI:
- copyrgb(&fleds[0], &led[RGBLIGHT_FLED1]);
- copyrgb(&fleds[1], &led[RGBLIGHT_FLED2]);
- break;
-
- case FLED_RGB:
- if (fled_hs[0].hue == 0 && fled_hs[0].hue == 0 &&
- (rgblight_status.base_mode == RGBLIGHT_MODE_SNAKE ||
- rgblight_status.base_mode == RGBLIGHT_MODE_KNIGHT))
- setrgb(0, 0, 0, &led[RGBLIGHT_FLED1]);
- else
- sethsv(fled_hs[0].hue, fled_hs[0].sat, fled_val, &led[RGBLIGHT_FLED1]);
-
- if (fled_hs[1].hue == 0 && fled_hs[1].hue == 0 &&
- (rgblight_status.base_mode == RGBLIGHT_MODE_SNAKE ||
- rgblight_status.base_mode == RGBLIGHT_MODE_KNIGHT))
- setrgb(0, 0, 0, &led[RGBLIGHT_FLED2]);
- else
- sethsv(fled_hs[1].hue, fled_hs[1].sat, fled_val, &led[RGBLIGHT_FLED2]);
- break;
- default:
- break;
- }
-
- rgblight_call_driver(start_led, num_leds);
-}
-#endif
-
-#ifdef RGBLIGHT_SPLIT
-/* for split keyboard master side */
-uint8_t rgblight_get_change_flags(void) { return rgblight_status.change_flags; }
-
-void rgblight_clear_change_flags(void) { rgblight_status.change_flags = 0; }
-
-void rgblight_get_syncinfo(rgblight_syncinfo_t *syncinfo) {
- syncinfo->config = rgblight_config;
- syncinfo->status = rgblight_status;
-}
-
-/* for split keyboard slave side */
-void rgblight_update_sync(rgblight_syncinfo_t *syncinfo, bool write_to_eeprom) {
-# ifdef RGBLIGHT_LAYERS
- if (syncinfo->status.change_flags & RGBLIGHT_STATUS_CHANGE_LAYERS) {
- rgblight_status.enabled_layer_mask = syncinfo->status.enabled_layer_mask;
- }
-# endif
- if (syncinfo->status.change_flags & RGBLIGHT_STATUS_CHANGE_MODE) {
- if (syncinfo->config.enable) {
- rgblight_config.enable = 1; // == rgblight_enable_noeeprom();
- rgblight_mode_eeprom_helper(syncinfo->config.mode, write_to_eeprom);
- } else {
- rgblight_disable_noeeprom();
- }
- }
- if (syncinfo->status.change_flags & RGBLIGHT_STATUS_CHANGE_HSVS) {
- rgblight_sethsv_eeprom_helper(syncinfo->config.hue, syncinfo->config.sat, syncinfo->config.val, write_to_eeprom);
- // rgblight_config.speed = config->speed; // NEED???
- }
-# ifdef RGBLIGHT_USE_TIMER
- if (syncinfo->status.change_flags & RGBLIGHT_STATUS_CHANGE_TIMER) {
- if (syncinfo->status.timer_enabled) {
- rgblight_timer_enable();
- } else {
- rgblight_timer_disable();
- }
- }
-# ifndef RGBLIGHT_SPLIT_NO_ANIMATION_SYNC
- if (syncinfo->status.change_flags & RGBLIGHT_STATUS_ANIMATION_TICK) {
- animation_status.restart = true;
- }
-# endif /* RGBLIGHT_SPLIT_NO_ANIMATION_SYNC */
-# endif /* RGBLIGHT_USE_TIMER */
-}
-#endif /* RGBLIGHT_SPLIT */
-
-#ifdef RGBLIGHT_USE_TIMER
-
-typedef void (*effect_func_t)(animation_status_t *anim);
-
-// Animation timer -- use system timer (AVR Timer0)
-void rgblight_timer_init(void) {
- // OLD!!!! Animation timer -- AVR Timer3
- // static uint8_t rgblight_timer_is_init = 0;
- // if (rgblight_timer_is_init) {
- // return;
- // }
- // rgblight_timer_is_init = 1;
- // /* Timer 3 setup */
- // TCCR3B = _BV(WGM32) // CTC mode OCR3A as TOP
- // | _BV(CS30); // Clock selelct: clk/1
- // /* Set TOP value */
- // uint8_t sreg = SREG;
- // cli();
- // OCR3AH = (RGBLED_TIMER_TOP >> 8) & 0xff;
- // OCR3AL = RGBLED_TIMER_TOP & 0xff;
- // SREG = sreg;
-
- rgblight_status.timer_enabled = false;
- RGBLIGHT_SPLIT_SET_CHANGE_TIMER_ENABLE;
-}
-void rgblight_timer_enable(void) {
- if (!is_static_effect(rgblight_config.mode)) {
- rgblight_status.timer_enabled = true;
- }
- animation_status.last_timer = timer_read();
- RGBLIGHT_SPLIT_SET_CHANGE_TIMER_ENABLE;
- dprintf("rgblight timer enabled.\n");
-}
-void rgblight_timer_disable(void) {
- // MxSS custom code
- if (fled_mode != FLED_RGB) {
- rgblight_status.timer_enabled = false;
- RGBLIGHT_SPLIT_SET_CHANGE_TIMER_ENABLE;
- dprintf("rgblight timer disable.\n");
- }
-}
-void rgblight_timer_toggle(void) {
- dprintf("rgblight timer toggle.\n");
- if (rgblight_status.timer_enabled) {
- rgblight_timer_disable();
- } else {
- rgblight_timer_enable();
- }
-}
-
-void rgblight_show_solid_color(uint8_t r, uint8_t g, uint8_t b) {
- rgblight_enable();
- rgblight_mode(RGBLIGHT_MODE_STATIC_LIGHT);
- rgblight_setrgb(r, g, b);
-}
-
-static void rgblight_effect_dummy(animation_status_t *anim) {
- // do nothing
- /********
- dprintf("rgblight_task() what happened?\n");
- dprintf("is_static_effect %d\n", is_static_effect(rgblight_config.mode));
- dprintf("mode = %d, base_mode = %d, timer_enabled %d, ",
- rgblight_config.mode, rgblight_status.base_mode,
- rgblight_status.timer_enabled);
- dprintf("last_timer = %d\n",anim->last_timer);
- **/
-}
-
-void rgblight_task(void) {
- if (rgblight_status.timer_enabled) {
- effect_func_t effect_func = rgblight_effect_dummy;
- uint16_t interval_time = 2000; // dummy interval
- uint8_t delta = rgblight_config.mode - rgblight_status.base_mode;
- animation_status.delta = delta;
-
- // static light mode, do nothing here
- if (1 == 0) { // dummy
- }
-# ifdef RGBLIGHT_EFFECT_BREATHING
- else if (rgblight_status.base_mode == RGBLIGHT_MODE_BREATHING) {
- // breathing mode
- interval_time = get_interval_time(&RGBLED_BREATHING_INTERVALS[delta], 1, 100);
- effect_func = rgblight_effect_breathing;
- }
-# endif
-# ifdef RGBLIGHT_EFFECT_RAINBOW_MOOD
- else if (rgblight_status.base_mode == RGBLIGHT_MODE_RAINBOW_MOOD) {
- // rainbow mood mode
- interval_time = get_interval_time(&RGBLED_RAINBOW_MOOD_INTERVALS[delta], 5, 100);
- effect_func = rgblight_effect_rainbow_mood;
- }
-# endif
-# ifdef RGBLIGHT_EFFECT_RAINBOW_SWIRL
- else if (rgblight_status.base_mode == RGBLIGHT_MODE_RAINBOW_SWIRL) {
- // rainbow swirl mode
- interval_time = get_interval_time(&RGBLED_RAINBOW_SWIRL_INTERVALS[delta / 2], 1, 100);
- effect_func = rgblight_effect_rainbow_swirl;
- }
-# endif
-# ifdef RGBLIGHT_EFFECT_SNAKE
- else if (rgblight_status.base_mode == RGBLIGHT_MODE_SNAKE) {
- // snake mode
- interval_time = get_interval_time(&RGBLED_SNAKE_INTERVALS[delta / 2], 1, 200);
- effect_func = rgblight_effect_snake;
- }
-# endif
-# ifdef RGBLIGHT_EFFECT_KNIGHT
- else if (rgblight_status.base_mode == RGBLIGHT_MODE_KNIGHT) {
- // knight mode
- interval_time = get_interval_time(&RGBLED_KNIGHT_INTERVALS[delta], 5, 100);
- effect_func = rgblight_effect_knight;
- }
-# endif
-# ifdef RGBLIGHT_EFFECT_CHRISTMAS
- else if (rgblight_status.base_mode == RGBLIGHT_MODE_CHRISTMAS) {
- // christmas mode
- interval_time = RGBLIGHT_EFFECT_CHRISTMAS_INTERVAL;
- effect_func = (effect_func_t)rgblight_effect_christmas;
- }
-# endif
-# ifdef RGBLIGHT_EFFECT_RGB_TEST
- else if (rgblight_status.base_mode == RGBLIGHT_MODE_RGB_TEST) {
- // RGB test mode
- interval_time = pgm_read_word(&RGBLED_RGBTEST_INTERVALS[0]);
- effect_func = (effect_func_t)rgblight_effect_rgbtest;
- }
-# endif
-# ifdef RGBLIGHT_EFFECT_ALTERNATING
- else if (rgblight_status.base_mode == RGBLIGHT_MODE_ALTERNATING) {
- interval_time = 500;
- effect_func = (effect_func_t)rgblight_effect_alternating;
- }
-# endif
-# ifdef RGBLIGHT_EFFECT_TWINKLE
- else if (rgblight_status.base_mode == RGBLIGHT_MODE_TWINKLE) {
- interval_time = get_interval_time(&RGBLED_TWINKLE_INTERVALS[delta % 3], 5, 50);
- effect_func = (effect_func_t)rgblight_effect_twinkle;
- }
-# endif
- if (animation_status.restart) {
- animation_status.restart = false;
- animation_status.last_timer = timer_read() - interval_time - 1;
- animation_status.pos16 = 0; // restart signal to local each effect
- }
- if (timer_elapsed(animation_status.last_timer) >= interval_time) {
-# if defined(RGBLIGHT_SPLIT) && !defined(RGBLIGHT_SPLIT_NO_ANIMATION_SYNC)
- static uint16_t report_last_timer = 0;
- static bool tick_flag = false;
- uint16_t oldpos16;
- if (tick_flag) {
- tick_flag = false;
- if (timer_elapsed(report_last_timer) >= 30000) {
- report_last_timer = timer_read();
- dprintf("rgblight animation tick report to slave\n");
- RGBLIGHT_SPLIT_ANIMATION_TICK;
- }
- }
- oldpos16 = animation_status.pos16;
-# endif
- animation_status.last_timer += interval_time;
- effect_func(&animation_status);
-# if defined(RGBLIGHT_SPLIT) && !defined(RGBLIGHT_SPLIT_NO_ANIMATION_SYNC)
- if (animation_status.pos16 == 0 && oldpos16 != 0) {
- tick_flag = true;
- }
-# endif
- }
- }
-
-# ifdef RGBLIGHT_LAYER_BLINK
- rgblight_unblink_layers();
-# endif
-}
-
-#endif /* RGBLIGHT_USE_TIMER */
-
-// Effects
-#ifdef RGBLIGHT_EFFECT_BREATHING
-
-# ifndef RGBLIGHT_EFFECT_BREATHE_CENTER
-# ifndef RGBLIGHT_BREATHE_TABLE_SIZE
-# define RGBLIGHT_BREATHE_TABLE_SIZE 256 // 256 or 128 or 64
-# endif
-# include <rgblight_breathe_table.h>
-# endif
-
-__attribute__((weak)) const uint8_t RGBLED_BREATHING_INTERVALS[] PROGMEM = {30, 20, 10, 5};
-
-void rgblight_effect_breathing(animation_status_t *anim) {
- float val;
-
- // http://sean.voisen.org/blog/2011/10/breathing-led-with-arduino/
-# ifdef RGBLIGHT_EFFECT_BREATHE_TABLE
- val = pgm_read_byte(&rgblight_effect_breathe_table[anim->pos / table_scale]);
-# else
- val = (exp(sin((anim->pos / 255.0) * M_PI)) - RGBLIGHT_EFFECT_BREATHE_CENTER / M_E) * (RGBLIGHT_EFFECT_BREATHE_MAX / (M_E - 1 / M_E));
-# endif
- rgblight_sethsv_noeeprom_old(rgblight_config.hue, rgblight_config.sat, val);
- anim->pos = (anim->pos + 1);
-}
-#endif
-
-#ifdef RGBLIGHT_EFFECT_RAINBOW_MOOD
-__attribute__((weak)) const uint8_t RGBLED_RAINBOW_MOOD_INTERVALS[] PROGMEM = {120, 60, 30};
-
-void rgblight_effect_rainbow_mood(animation_status_t *anim) {
- rgblight_sethsv_noeeprom_old(anim->current_hue, rgblight_config.sat, rgblight_config.val);
- anim->current_hue++;
-}
-#endif
-
-#ifdef RGBLIGHT_EFFECT_RAINBOW_SWIRL
-# ifndef RGBLIGHT_RAINBOW_SWIRL_RANGE
-# define RGBLIGHT_RAINBOW_SWIRL_RANGE 255
-# endif
-
-__attribute__((weak)) const uint8_t RGBLED_RAINBOW_SWIRL_INTERVALS[] PROGMEM = {100, 50, 20};
-
-void rgblight_effect_rainbow_swirl(animation_status_t *anim) {
- uint8_t hue;
- uint8_t i;
-
- for (i = 0; i < rgblight_ranges.effect_num_leds; i++) {
- hue = (RGBLIGHT_RAINBOW_SWIRL_RANGE / rgblight_ranges.effect_num_leds * i + anim->current_hue);
- sethsv(hue, rgblight_config.sat, rgblight_config.val, (LED_TYPE *)&led[i + rgblight_ranges.effect_start_pos]);
- }
- rgblight_set();
-
- if (anim->delta % 2) {
- anim->current_hue++;
- } else {
- anim->current_hue--;
- }
-}
-#endif
-
-#ifdef RGBLIGHT_EFFECT_SNAKE
-__attribute__((weak)) const uint8_t RGBLED_SNAKE_INTERVALS[] PROGMEM = {100, 50, 20};
-
-void rgblight_effect_snake(animation_status_t *anim) {
- static uint8_t pos = 0;
- uint8_t i, j;
- int8_t k;
- int8_t increment = 1;
-
- if (anim->delta % 2) {
- increment = -1;
- }
-
-# if defined(RGBLIGHT_SPLIT) && !defined(RGBLIGHT_SPLIT_NO_ANIMATION_SYNC)
- if (anim->pos == 0) { // restart signal
- if (increment == 1) {
- pos = rgblight_ranges.effect_num_leds - 1;
- } else {
- pos = 0;
- }
- anim->pos = 1;
- }
-# endif
-
- // MxSS custom
- fled_hs[0].hue = fled_hs[1].hue = 0;
- fled_hs[0].sat = fled_hs[1].sat = 0;
-
- for (i = 0; i < rgblight_ranges.effect_num_leds; i++) {
- LED_TYPE *ledp = led + i + rgblight_ranges.effect_start_pos;
- ledp->r = 0;
- ledp->g = 0;
- ledp->b = 0;
-# ifdef RGBW
- ledp->w = 0;
-# endif
- for (j = 0; j < RGBLIGHT_EFFECT_SNAKE_LENGTH; j++) {
- k = pos + j * increment;
- if (k > RGBLED_NUM) {
- k = k % RGBLED_NUM;
- }
- if (k < 0) {
- k = k + rgblight_ranges.effect_num_leds;
- }
- if (i == k) {
- sethsv(rgblight_config.hue, rgblight_config.sat, (uint8_t)(rgblight_config.val * (RGBLIGHT_EFFECT_SNAKE_LENGTH - j) / RGBLIGHT_EFFECT_SNAKE_LENGTH), ledp);
- }
- }
- }
- rgblight_set();
- if (increment == 1) {
- if (pos - 1 < 0) {
- pos = rgblight_ranges.effect_num_leds - 1;
-# if defined(RGBLIGHT_SPLIT) && !defined(RGBLIGHT_SPLIT_NO_ANIMATION_SYNC)
- anim->pos = 0;
-# endif
- } else {
- pos -= 1;
-# if defined(RGBLIGHT_SPLIT) && !defined(RGBLIGHT_SPLIT_NO_ANIMATION_SYNC)
- anim->pos = 1;
-# endif
- }
- } else {
- pos = (pos + 1) % rgblight_ranges.effect_num_leds;
-# if defined(RGBLIGHT_SPLIT) && !defined(RGBLIGHT_SPLIT_NO_ANIMATION_SYNC)
- anim->pos = pos;
-# endif
- }
-}
-#endif
-
-#ifdef RGBLIGHT_EFFECT_KNIGHT
-__attribute__((weak)) const uint8_t RGBLED_KNIGHT_INTERVALS[] PROGMEM = {127, 63, 31};
-
-void rgblight_effect_knight(animation_status_t *anim) {
- static int8_t low_bound = 0;
- static int8_t high_bound = RGBLIGHT_EFFECT_KNIGHT_LENGTH - 1;
- static int8_t increment = 1;
- uint8_t i, cur;
-
-# if defined(RGBLIGHT_SPLIT) && !defined(RGBLIGHT_SPLIT_NO_ANIMATION_SYNC)
- if (anim->pos == 0) { // restart signal
- anim->pos = 1;
- low_bound = 0;
- high_bound = RGBLIGHT_EFFECT_KNIGHT_LENGTH - 1;
- increment = 1;
- }
-# endif
- // Set all the LEDs to 0
- for (i = rgblight_ranges.effect_start_pos; i < rgblight_ranges.effect_end_pos; i++) {
- led[i].r = 0;
- led[i].g = 0;
- led[i].b = 0;
-# ifdef RGBW
- led[i].w = 0;
-# endif
- }
- // Determine which LEDs should be lit up
- for (i = 0; i < RGBLIGHT_EFFECT_KNIGHT_LED_NUM; i++) {
- cur = (i + RGBLIGHT_EFFECT_KNIGHT_OFFSET) % rgblight_ranges.effect_num_leds + rgblight_ranges.effect_start_pos;
-
- if (i >= low_bound && i <= high_bound) {
- sethsv(rgblight_config.hue, rgblight_config.sat, rgblight_config.val, (LED_TYPE *)&led[cur]);
- } else {
- // MxSS custom code
- if (cur == RGBLIGHT_FLED1) {
- fled_hs[0].hue = fled_hs[0].sat = 0;
- } else if (cur == RGBLIGHT_FLED2) {
- fled_hs[1].hue = fled_hs[1].sat = 0;
- }
-
- led[cur].r = 0;
- led[cur].g = 0;
- led[cur].b = 0;
-# ifdef RGBW
- led[cur].w = 0;
-# endif
- }
- }
- rgblight_set();
-
- // Move from low_bound to high_bound changing the direction we increment each
- // time a boundary is hit.
- low_bound += increment;
- high_bound += increment;
-
- if (high_bound <= 0 || low_bound >= RGBLIGHT_EFFECT_KNIGHT_LED_NUM - 1) {
- increment = -increment;
-# if defined(RGBLIGHT_SPLIT) && !defined(RGBLIGHT_SPLIT_NO_ANIMATION_SYNC)
- if (increment == 1) {
- anim->pos = 0;
- }
-# endif
- }
-}
-#endif
-
-#ifdef RGBLIGHT_EFFECT_CHRISTMAS
-# define CUBED(x) ((x) * (x) * (x))
-
-/**
- * Christmas lights effect, with a smooth animation between red & green.
- */
-void rgblight_effect_christmas(animation_status_t *anim) {
- static int8_t increment = 1;
- const uint8_t max_pos = 32;
- const uint8_t hue_green = 85;
-
- uint32_t xa;
- uint8_t hue, val;
- uint8_t i;
-
- // The effect works by animating anim->pos from 0 to 32 and back to 0.
- // The pos is used in a cubic bezier formula to ease-in-out between red and green, leaving the interpolated colors visible as short as possible.
- xa = CUBED((uint32_t)anim->pos);
- hue = ((uint32_t)hue_green) * xa / (xa + CUBED((uint32_t)(max_pos - anim->pos)));
- // Additionally, these interpolated colors get shown with a slightly darker value, to make them less prominent than the main colors.
- val = 255 - (3 * (hue < hue_green / 2 ? hue : hue_green - hue) / 2);
-
- for (i = 0; i < rgblight_ranges.effect_num_leds; i++) {
- uint8_t local_hue = (i / RGBLIGHT_EFFECT_CHRISTMAS_STEP) % 2 ? hue : hue_green - hue;
- sethsv(local_hue, rgblight_config.sat, val, (LED_TYPE *)&led[i + rgblight_ranges.effect_start_pos]);
- }
- rgblight_set();
-
- if (anim->pos == 0) {
- increment = 1;
- } else if (anim->pos == max_pos) {
- increment = -1;
- }
- anim->pos += increment;
-}
-#endif
-
-#ifdef RGBLIGHT_EFFECT_RGB_TEST
-__attribute__((weak)) const uint16_t RGBLED_RGBTEST_INTERVALS[] PROGMEM = {1024};
-
-void rgblight_effect_rgbtest(animation_status_t *anim) {
- static uint8_t maxval = 0;
- uint8_t g;
- uint8_t r;
- uint8_t b;
-
- if (maxval == 0) {
- LED_TYPE tmp_led;
- sethsv(0, 255, RGBLIGHT_LIMIT_VAL, &tmp_led);
- maxval = tmp_led.r;
- }
- g = r = b = 0;
- switch (anim->pos) {
- // MxSS custom code
- case 0:
- r = maxval;
- fled_hs[0].hue = 0;
- fled_hs[0].sat = 255;
- fled_hs[1].hue = 0;
- fled_hs[1].sat = 255;
- break;
- case 1:
- g = maxval;
- fled_hs[0].hue = 85;
- fled_hs[0].sat = 255;
- fled_hs[1].hue = 85;
- fled_hs[1].sat = 255;
- break;
- case 2:
- b = maxval;
- fled_hs[0].hue = 170;
- fled_hs[0].sat = 255;
- fled_hs[1].hue = 170;
- fled_hs[1].sat = 255;
- break;
- }
- rgblight_setrgb(r, g, b);
- anim->pos = (anim->pos + 1) % 3;
-}
-#endif
-
-#ifdef RGBLIGHT_EFFECT_ALTERNATING
-void rgblight_effect_alternating(animation_status_t *anim) {
- for (int i = 0; i < rgblight_ranges.effect_num_leds; i++) {
- LED_TYPE *ledp = led + i + rgblight_ranges.effect_start_pos;
- if (i < rgblight_ranges.effect_num_leds / 2 && anim->pos) {
- sethsv(rgblight_config.hue, rgblight_config.sat, rgblight_config.val, ledp);
- } else if (i >= rgblight_ranges.effect_num_leds / 2 && !anim->pos) {
- sethsv(rgblight_config.hue, rgblight_config.sat, rgblight_config.val, ledp);
- } else {
- sethsv(rgblight_config.hue, rgblight_config.sat, 0, ledp);
- }
- }
- rgblight_set();
- anim->pos = (anim->pos + 1) % 2;
-}
-#endif
-
-#ifdef RGBLIGHT_EFFECT_TWINKLE
-__attribute__((weak)) const uint8_t RGBLED_TWINKLE_INTERVALS[] PROGMEM = {50, 25, 10};
-
-typedef struct PACKED {
- HSV hsv;
- uint8_t life;
- bool up;
-} TwinkleState;
-
-static TwinkleState led_twinkle_state[RGBLED_NUM];
-
-void rgblight_effect_twinkle(animation_status_t *anim) {
- bool random_color = anim->delta / 3;
- bool restart = anim->pos == 0;
- anim->pos = 1;
-
- for (uint8_t i = 0; i < rgblight_ranges.effect_num_leds; i++) {
- TwinkleState *t = &(led_twinkle_state[i]);
- HSV * c = &(t->hsv);
- if (restart) {
- // Restart
- t->life = 0;
- t->hsv.v = 0;
- } else if (t->life) {
- // This LED is already on, either brightening or dimming
- t->life--;
- uint8_t on = t->up ? RGBLIGHT_EFFECT_TWINKLE_LIFE - t->life : t->life;
- c->v = (uint16_t)rgblight_config.val * on / RGBLIGHT_EFFECT_TWINKLE_LIFE;
- if (t->life == 0 && t->up) {
- t->up = false;
- t->life = RGBLIGHT_EFFECT_TWINKLE_LIFE;
- }
- if (!random_color) {
- c->h = rgblight_config.hue;
- c->s = rgblight_config.sat;
- }
- } else if (rand() < RAND_MAX * RGBLIGHT_EFFECT_TWINKLE_PROBABILITY) {
- // This LED is off, but was randomly selected to start brightening
- c->h = random_color ? rand() % 0xFF : rgblight_config.hue;
- c->s = random_color ? (rand() % (rgblight_config.sat / 2)) + (rgblight_config.sat / 2) : rgblight_config.sat;
- c->v = 0;
- t->life = RGBLIGHT_EFFECT_TWINKLE_LIFE;
- t->up = true;
- } else {
- // This LED is off, and was NOT selected to start brightening
- }
-
- LED_TYPE *ledp = led + i + rgblight_ranges.effect_start_pos;
- sethsv(c->h, c->s, c->v, ledp);
- }
-
- rgblight_set();
-}
-#endif
diff --git a/keyboards/mxss/rules.mk b/keyboards/mxss/rules.mk
index cc4f0ca926..6e7633bfe0 100644
--- a/keyboards/mxss/rules.mk
+++ b/keyboards/mxss/rules.mk
@@ -1,22 +1 @@
-# Build Options
-# change yes to no to disable
-#
-BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite
-MOUSEKEY_ENABLE = yes # Mouse keys
-EXTRAKEY_ENABLE = yes # Audio control and System control
-CONSOLE_ENABLE = no # Console for debug
-COMMAND_ENABLE = yes # Commands for debug and configuration
-NKRO_ENABLE = no # Enable N-Key Rollover
-BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
-AUDIO_ENABLE = no # Audio output
-
-SRC += mxss_frontled.c
-
-# Remove the common RGB light code and use my iteration instead
-COMMON_VPATH += $(QUANTUM_DIR)/rgblight
-OPT_DEFS += -DRGBLIGHT_ENABLE
-SRC += rgblight.c
-SRC += $(QUANTUM_DIR)/color.c
-WS2812_DRIVER_REQUIRED = yes
-CIE1931_CURVE = yes
-RGB_KEYCODES_ENABLE = yes
+# This file intentionally left blank
diff --git a/keyboards/mxss/templates/keymap.c b/keyboards/mxss/templates/keymap.c
deleted file mode 100644
index e16cf44293..0000000000
--- a/keyboards/mxss/templates/keymap.c
+++ /dev/null
@@ -1,35 +0,0 @@
-/* Copyright 2018 REPLACE_WITH_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 QMK_KEYBOARD_H
-#include "mxss_frontled.h"
-
-hs_set caps_color = { .hue = 0, .sat = 255 };
-
-// Colors for layers
-// Format: {hue, saturation}
-// {0, 0} to turn off the LED
-// Add additional rows to handle more layers
-hs_set layer_colors[4] = {
- [0] = {.hue = 0, .sat = 0}, // Color for Layer 0
- [1] = {.hue = 86, .sat = 255}, // Color for Layer 1
- [2] = {.hue = 36, .sat = 255}, // Color for Layer 2
- [3] = {.hue = 185, .sat = 255}, // Color for Layer 3
-};
-size_t lc_size = ARRAY_SIZE(layer_colors);
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-__KEYMAP_GOES_HERE__
-};
diff --git a/keyboards/nack/config.h b/keyboards/nack/config.h
index adb2cf5d87..8ac70be2dc 100644
--- a/keyboards/nack/config.h
+++ b/keyboards/nack/config.h
@@ -18,7 +18,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#pragma once
#ifdef RGB_MATRIX_ENABLE
- #define WS2812_SPI SPID1
+ #define WS2812_SPI_DRIVER SPID1
#define WS2812_SPI_MOSI_PAL_MODE 5
#define RGB_MATRIX_LED_COUNT 52
#define RGB_MATRIX_MAXIMUM_BRIGHTNESS 128 // Max brightness of LEDs
diff --git a/keyboards/nacly/splitreus62/keymaps/scheiklp/config.h b/keyboards/nacly/splitreus62/keymaps/scheiklp/config.h
deleted file mode 100644
index da8287df64..0000000000
--- a/keyboards/nacly/splitreus62/keymaps/scheiklp/config.h
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
-Copyright 2012 Jun Wako <wakojun@gmail.com>
-Copyright 2015 Jack Humbert
-
-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 AUTO_SHIFT_TIMEOUT 100
-#define NO_AUTO_SHIFT_SPECIAL
-#define NO_AUTO_SHIFT_NUMERIC
-
-// require two taps for a TT layer switch (default 5)
-#define TAPPING_TOGGLE 2
-
-// Mouse control
-// constant mode (velocity)
-#define MK_3_SPEED
-// KC_ACL0 < KC_ACL1 < unmodified < KC_ACL2
-
-// Cursor offset per movement (unmodified)
-#define MK_C_OFFSET_UNMOD 16
-// Time between cursor movements (unmodified)
-#define MK_C_INTERVAL_UNMOD 10
-/* #define MK_C_INTERVAL_UNMOD 16 */
-
-// Cursor offset per movement (KC_ACL0)
-#define MK_C_OFFSET_0 1
-// Time between cursor movements (KC_ACL0)
-#define MK_C_INTERVAL_0 32
-
-// Cursor offset per movement (KC_ACL1)
-#define MK_C_OFFSET_1 4
-// Time between cursor movements (KC_ACL1)
-#define MK_C_INTERVAL_1 16
-
-// Cursor offset per movement (KC_ACL2)
-#define MK_C_OFFSET_2 20
-/* #define MK_C_OFFSET_2 32 */
-// Time between cursor movements (KC_ACL2)
-#define MK_C_INTERVAL_2 16
diff --git a/keyboards/nacly/splitreus62/keymaps/scheiklp/keymap.c b/keyboards/nacly/splitreus62/keymaps/scheiklp/keymap.c
deleted file mode 100644
index f2d839b358..0000000000
--- a/keyboards/nacly/splitreus62/keymaps/scheiklp/keymap.c
+++ /dev/null
@@ -1,56 +0,0 @@
-/* Copyright 2019 NaCly
- *
- * 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 "koy_keys_on_quertz_de_latin1.h"
-// Layer shorthand
-#define _1 0
-#define _3 1
-#define _4 2
-#define _7 3
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [_1] = LAYOUT(
- 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_K, KC_DOT, KC_O, KC_COMM, N_Y, KC_V, KC_G, KC_C, KC_L, N_SS, N_Z,
- MO(_3), KC_H, KC_A, KC_E, KC_I, KC_U, KC_D, KC_T, KC_R, KC_N, KC_S, KC_F,
- KC_LSFT, KC_X, KC_Q, N_AE, N_UE, N_OE, KC_B, KC_P, KC_W, KC_M, KC_J, KC_RSFT,
- KC_LCTL, N_COPY, N_PASTE, KC_LGUI, KC_LALT, KC_SPC, KC_ENTER, KC_RCTL, MO(_3), MO(_4), KC_TRNS, KC_TRNS, KC_CAPS, TT(_7)
- ),
-
- [_3] = LAYOUT(
- KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_BSPC,
- KC_TAB, N_DOTS, N_USC, N_LSQBR, N_RSQBR, N_CIRC, N_EXKL, N_LT, N_GT, N_EQ, N_AMP, KC_TRNS,
- KC_TRNS, N_BSLS, N_SLSH, N_LCUBR, N_RCUBR, N_ASTR, N_QUES, N_LPARN, N_RPARN, N_MINS, N_COLN, N_AT,
- KC_LSFT, N_HASH, N_DLR, N_PIPE, N_TILD, N_GRAVE, N_PLUS, N_PERC, N_QUOT, N_SING, N_SEMI, KC_RSFT,
- KC_LCTL, N_COPY, N_PASTE, KC_LGUI, KC_LALT, KC_SPC, KC_ENTER, KC_TRNS, KC_TRNS, KC_RCTL, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
- ),
-
- [_4] = LAYOUT(
- KC_ESC, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_BSPC,
- KC_TAB, KC_PGUP, KC_BSPC, KC_UP, KC_DEL, KC_PGDN, KC_KP_SLASH, KC_7, KC_8, KC_9, KC_KP_MINUS, KC_TRNS,
- KC_TRNS, KC_HOME, KC_LEFT, KC_DOWN, KC_RIGHT, KC_END, KC_KP_ASTERISK, KC_4, KC_5, KC_6, KC_KP_PLUS, KC_TRNS,
- KC_LSFT, KC_ESC, KC_TAB, KC_INS, KC_ENTER, N_UNDO, KC_KP_ENTER, KC_1, KC_2, KC_3, KC_KP_DOT, KC_RSFT,
- KC_LCTL, N_COPY, N_PASTE, KC_LGUI, KC_LALT, KC_0, KC_ENTER, KC_0, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
- ),
-
- [_7] = LAYOUT(
- KC_ESC, KC_TRNS, KC_TRNS, KC_MS_BTN3, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, QK_BOOT,
- KC_TAB, KC_MS_WH_UP, KC_MS_BTN2, KC_MS_UP, KC_MS_BTN1, KC_MS_WH_DOWN, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_MS_ACCEL0, KC_MS_LEFT, KC_MS_DOWN, KC_MS_RIGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_LSFT, KC_MS_ACCEL1, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_LCTL, KC_MS_ACCEL2, KC_TRNS, KC_LALT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
- )
-};
diff --git a/keyboards/nacly/splitreus62/keymaps/scheiklp/rules.mk b/keyboards/nacly/splitreus62/keymaps/scheiklp/rules.mk
deleted file mode 100644
index cbfc44e1bd..0000000000
--- a/keyboards/nacly/splitreus62/keymaps/scheiklp/rules.mk
+++ /dev/null
@@ -1,9 +0,0 @@
-BOOTLOADER = atmel-dfu
-
-# Build Options
-AUTO_SHIFT_ENABLE = yes
-BOOTMAGIC_ENABLE = no # Enable Bootmagic Lite
-MOUSEKEY_ENABLE = yes # Mouse keys
-EXTRAKEY_ENABLE = no # Audio control and System control
-NKRO_ENABLE = yes # USB Nkey Rollover
-SPLIT_KEYBOARD = yes
diff --git a/keyboards/neopad/rev1/rev1.c b/keyboards/neopad/rev1/rev1.c
index 86e47c8932..c8216f4e70 100755
--- a/keyboards/neopad/rev1/rev1.c
+++ b/keyboards/neopad/rev1/rev1.c
@@ -22,10 +22,14 @@ void keyboard_pre_init_kb(void) {
keyboard_pre_init_user();
}
-void shutdown_user(void) {
+bool shutdown_kb(bool jump_to_bootloader) {
+ if (!shutdown_user(jump_to_bootloader)) {
+ return false;
+ }
// Shutdown LEDs
writePinLow(LED_00);
writePinLow(LED_01);
+ return true;
}
layer_state_t layer_state_set_kb(layer_state_t state) {
diff --git a/keyboards/neson_design/700e/700e.c b/keyboards/neson_design/700e/700e.c
index cf31b6b72b..9def73d6a4 100644
--- a/keyboards/neson_design/700e/700e.c
+++ b/keyboards/neson_design/700e/700e.c
@@ -48,18 +48,18 @@ enum {
// led index
#define ST_LEFT_BEGIN 0
-#ifdef DRIVER_ADDR_2
+#ifdef IS31FL3731_I2C_ADDRESS_2
#define ST_LEFT_SIZE 4
#else
#define ST_LEFT_SIZE 2
#endif
#define ST_LEFT_END (ST_LEFT_BEGIN+ST_LEFT_SIZE-1)
-#ifdef DRIVER_ADDR_2
+#ifdef IS31FL3731_I2C_ADDRESS_2
#define ST_RIGHT_BEGIN 60
#else
#define ST_RIGHT_BEGIN 30
#endif
-#ifdef DRIVER_ADDR_2
+#ifdef IS31FL3731_I2C_ADDRESS_2
#define ST_RIGHT_SIZE 4
#else
#define ST_RIGHT_SIZE 2
@@ -111,7 +111,7 @@ static void self_testing(void)
}
if (rgb_state.index >= ST_LEFT_END) {
- for (int i = rgb_state.index - 1; i < RGB_MATRIX_LED_COUNT - rgb_state.index + 1; i++) {
+ for (int i = rgb_state.index - 1; i < IS31FL3731_LED_COUNT - rgb_state.index + 1; i++) {
is31fl3731_set_color(i, led.r, led.g, led.b);
}
if (rgb_state.index == ST_LEFT_END) {
@@ -173,13 +173,13 @@ static void self_testing(void)
}
break;
case ST_STAGE_3:
- if (rgb_state.index != RGB_MATRIX_LED_COUNT/2) {
+ if (rgb_state.index != IS31FL3731_LED_COUNT/2) {
is31fl3731_set_color_all(0, 0, 0);
}
// light left and right
- if (rgb_state.index == RGB_MATRIX_LED_COUNT/2) {
+ if (rgb_state.index == IS31FL3731_LED_COUNT/2) {
if (rgb_state.duration) {
rgb_state.duration--;
} else {
@@ -207,7 +207,7 @@ static void self_testing(void)
update_ticks();
}
-const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = {
+const is31fl3731_led_t PROGMEM g_is31fl3731_leds[IS31FL3731_LED_COUNT] = {
/* Refer to IS31 manual for these locations
* driver
* | R location
@@ -294,18 +294,8 @@ void matrix_init_kb(void)
setPinOutput(LED_CAPS_LOCK_PIN);
writePinLow(LED_CAPS_LOCK_PIN);
- i2c_init();
- is31fl3731_init(DRIVER_ADDR_1);
-#ifdef DRIVER_ADDR_2
- is31fl3731_init(DRIVER_ADDR_2);
-#endif
- for (int index = 0; index < RGB_MATRIX_LED_COUNT; index++) {
- is31fl3731_set_led_control_register(index, true, true, true);
- }
- is31fl3731_update_led_control_registers(DRIVER_ADDR_1, 0);
-#ifdef DRIVER_ADDR_2
- is31fl3731_update_led_control_registers(DRIVER_ADDR_2, 1);
-#endif
+ is31fl3731_init_drivers();
+
update_ticks();
matrix_init_user();
}
@@ -322,7 +312,7 @@ void housekeeping_task_kb(void)
} else if (rgb_state.state == CAPS_ALERT) {
if (rgb_state.alert) {
is31fl3731_set_color_all(ALERM_LED_R, ALERM_LED_G, ALERM_LED_B);
- LED_TYPE leds[4];
+ rgb_led_t leds[4];
for (int i = 0; i < 4; i++) {
leds[i].r = ALERM_LED_G;
leds[i].g = ALERM_LED_R;
@@ -331,7 +321,7 @@ void housekeeping_task_kb(void)
ws2812_setleds(leds, 4);
} else {
is31fl3731_set_color_all(0, 0, 0);
- LED_TYPE leds[4] = {0};
+ rgb_led_t leds[4] = {0};
ws2812_setleds(leds, 4);
}
@@ -341,28 +331,25 @@ void housekeeping_task_kb(void)
}
}
- is31fl3731_update_pwm_buffers(DRIVER_ADDR_1, 0);
-#ifdef DRIVER_ADDR_2
- is31fl3731_update_pwm_buffers(DRIVER_ADDR_2, 1);
-#endif
+ is31fl3731_flush();
housekeeping_task_user();
}
-void rgblight_call_driver(LED_TYPE *start_led, uint8_t num_leds)
+void rgblight_call_driver(rgb_led_t *start_led, uint8_t num_leds)
{
if (rgb_state.state != NORMAL) return;
- for (uint8_t i = 0; i < RGB_MATRIX_LED_COUNT; i++) {
+ for (uint8_t i = 0; i < IS31FL3731_LED_COUNT; i++) {
is31fl3731_set_color(i, start_led[i].r, start_led[i].g, start_led[i].b);
}
- LED_TYPE leds[4];
+ rgb_led_t leds[4];
for (int i = 0; i < 4; i++) {
- leds[i].r = start_led[RGB_MATRIX_LED_COUNT+i].g;
- leds[i].g = start_led[RGB_MATRIX_LED_COUNT+i].r;
- leds[i].b = start_led[RGB_MATRIX_LED_COUNT+i].b;
+ leds[i].r = start_led[IS31FL3731_LED_COUNT+i].g;
+ leds[i].g = start_led[IS31FL3731_LED_COUNT+i].r;
+ leds[i].b = start_led[IS31FL3731_LED_COUNT+i].b;
}
- //ws2812_setleds(start_led+RGB_MATRIX_LED_COUNT, 4);
+ //ws2812_setleds(start_led+IS31FL3731_LED_COUNT, 4);
ws2812_setleds(leds, 4);
}
diff --git a/keyboards/neson_design/700e/config.h b/keyboards/neson_design/700e/config.h
index cf89616aa8..2fdcead121 100644
--- a/keyboards/neson_design/700e/config.h
+++ b/keyboards/neson_design/700e/config.h
@@ -32,9 +32,8 @@
#define DRIVER_1_LED_TOTAL 32
#define DRIVER_2_LED_TOTAL 32
-#define DRIVER_ADDR_1 0b1110100
-#define DRIVER_ADDR_2 0b1110111
-#define DRIVER_COUNT 2
-#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL+DRIVER_2_LED_TOTAL)
+#define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND
+#define IS31FL3731_I2C_ADDRESS_2 IS31FL3731_I2C_ADDRESS_VCC
+#define IS31FL3731_LED_COUNT (DRIVER_1_LED_TOTAL+DRIVER_2_LED_TOTAL)
#define USB_SUSPEND_WAKEUP_DELAY 1000
diff --git a/keyboards/neson_design/700e/rules.mk b/keyboards/neson_design/700e/rules.mk
index 6e1439f1f5..5650ed1fee 100644
--- a/keyboards/neson_design/700e/rules.mk
+++ b/keyboards/neson_design/700e/rules.mk
@@ -11,4 +11,5 @@ BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
NO_USB_STARTUP_CHECK = yes
-QUANTUM_LIB_SRC += i2c_master.c drivers/led/issi/is31fl3731.c
+QUANTUM_LIB_SRC += drivers/led/issi/is31fl3731.c
+I2C_DRIVER_REQUIRED = yes
diff --git a/keyboards/neson_design/n6/config.h b/keyboards/neson_design/n6/config.h
index 91d96c6a4d..22c12dfb97 100644
--- a/keyboards/neson_design/n6/config.h
+++ b/keyboards/neson_design/n6/config.h
@@ -32,7 +32,6 @@
#define DRIVER_1_LED_TOTAL 32
#define DRIVER_2_LED_TOTAL 32
-#define DRIVER_ADDR_1 0b1110100
-#define DRIVER_ADDR_2 0b1110111
-#define DRIVER_COUNT 2
-#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL+DRIVER_2_LED_TOTAL)
+#define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND
+#define IS31FL3731_I2C_ADDRESS_2 IS31FL3731_I2C_ADDRESS_VCC
+#define IS31FL3731_LED_COUNT (DRIVER_1_LED_TOTAL+DRIVER_2_LED_TOTAL)
diff --git a/keyboards/neson_design/n6/n6.c b/keyboards/neson_design/n6/n6.c
index cf99404641..38b634eeb7 100644
--- a/keyboards/neson_design/n6/n6.c
+++ b/keyboards/neson_design/n6/n6.c
@@ -48,18 +48,18 @@ enum {
// led index
#define ST_LEFT_BEGIN 0
-#ifdef DRIVER_ADDR_2
+#ifdef IS31FL3731_I2C_ADDRESS_2
#define ST_LEFT_SIZE 4
#else
#define ST_LEFT_SIZE 2
#endif
#define ST_LEFT_END (ST_LEFT_BEGIN+ST_LEFT_SIZE-1)
-#ifdef DRIVER_ADDR_2
+#ifdef IS31FL3731_I2C_ADDRESS_2
#define ST_RIGHT_BEGIN 60
#else
#define ST_RIGHT_BEGIN 30
#endif
-#ifdef DRIVER_ADDR_2
+#ifdef IS31FL3731_I2C_ADDRESS_2
#define ST_RIGHT_SIZE 4
#else
#define ST_RIGHT_SIZE 2
@@ -115,7 +115,7 @@ static void self_testing(void)
}
if (rgb_state.index >= ST_LEFT_END) {
- for (int i = rgb_state.index - 1; i < RGB_MATRIX_LED_COUNT - rgb_state.index + 1; i++) {
+ for (int i = rgb_state.index - 1; i < IS31FL3731_LED_COUNT - rgb_state.index + 1; i++) {
is31fl3731_set_color(i, led.r, led.g, led.b);
}
if (rgb_state.index == ST_LEFT_END) {
@@ -177,13 +177,13 @@ static void self_testing(void)
}
break;
case ST_STAGE_3:
- if (rgb_state.index != RGB_MATRIX_LED_COUNT/2) {
+ if (rgb_state.index != IS31FL3731_LED_COUNT/2) {
is31fl3731_set_color_all(0, 0, 0);
}
// light left and right
- if (rgb_state.index == RGB_MATRIX_LED_COUNT/2) {
+ if (rgb_state.index == IS31FL3731_LED_COUNT/2) {
if (rgb_state.duration) {
rgb_state.duration--;
} else {
@@ -211,7 +211,7 @@ static void self_testing(void)
update_ticks();
}
-const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = {
+const is31fl3731_led_t PROGMEM g_is31fl3731_leds[IS31FL3731_LED_COUNT] = {
/* Refer to IS31 manual for these locations
* driver
* | R location
@@ -298,18 +298,8 @@ void matrix_init_kb(void)
setPinOutput(LED_CAPS_LOCK_PIN);
writePinLow(LED_CAPS_LOCK_PIN);
- i2c_init();
- is31fl3731_init(DRIVER_ADDR_1);
-#ifdef DRIVER_ADDR_2
- is31fl3731_init(DRIVER_ADDR_2);
-#endif
- for (int index = 0; index < RGB_MATRIX_LED_COUNT; index++) {
- is31fl3731_set_led_control_register(index, true, true, true);
- }
- is31fl3731_update_led_control_registers(DRIVER_ADDR_1, 0);
-#ifdef DRIVER_ADDR_2
- is31fl3731_update_led_control_registers(DRIVER_ADDR_2, 1);
-#endif
+ is31fl3731_init_drivers();
+
update_ticks();
matrix_init_user();
}
@@ -320,7 +310,7 @@ void housekeeping_task_kb(void)
self_testing();
} else if (rgb_state.state == CAPS_ALERT) {
//gold 0xFF, 0xD9, 0x00
- LED_TYPE led = {
+ rgb_led_t led = {
.r = 0xFF,
//.g = 0xD9,
.g = 0xA5,
@@ -343,22 +333,19 @@ void housekeeping_task_kb(void)
}
}
- is31fl3731_update_pwm_buffers(DRIVER_ADDR_1, 0);
-#ifdef DRIVER_ADDR_2
- is31fl3731_update_pwm_buffers(DRIVER_ADDR_2, 1);
-#endif
+ is31fl3731_flush();
housekeeping_task_user();
}
-void rgblight_call_driver(LED_TYPE *start_led, uint8_t num_leds)
+void rgblight_call_driver(rgb_led_t *start_led, uint8_t num_leds)
{
if (rgb_state.state != NORMAL) return;
- for (uint8_t i = 0; i < RGB_MATRIX_LED_COUNT; i++) {
+ for (uint8_t i = 0; i < IS31FL3731_LED_COUNT; i++) {
is31fl3731_set_color(i, start_led[i].r, start_led[i].g, start_led[i].b);
}
- ws2812_setleds(start_led+RGB_MATRIX_LED_COUNT, 1);
+ ws2812_setleds(start_led+IS31FL3731_LED_COUNT, 1);
}
bool led_update_kb(led_t led_state)
diff --git a/keyboards/neson_design/n6/rules.mk b/keyboards/neson_design/n6/rules.mk
index 5d8397653e..a3e4abe6cd 100644
--- a/keyboards/neson_design/n6/rules.mk
+++ b/keyboards/neson_design/n6/rules.mk
@@ -10,4 +10,5 @@ NKRO_ENABLE = yes # Enable N-Key Rollover
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
-QUANTUM_LIB_SRC += i2c_master.c drivers/led/issi/is31fl3731.c
+QUANTUM_LIB_SRC += drivers/led/issi/is31fl3731.c
+I2C_DRIVER_REQUIRED = yes
diff --git a/keyboards/neson_design/nico/nico.c b/keyboards/neson_design/nico/nico.c
index 63f08b8639..b4d15777b7 100644
--- a/keyboards/neson_design/nico/nico.c
+++ b/keyboards/neson_design/nico/nico.c
@@ -22,7 +22,7 @@
static bool alert = false;
static bool backup = false;
-static LED_TYPE caps_led;
+static rgb_led_t caps_led;
static uint16_t last_ticks = 0;
#define ALERT_INTERVAL 500
@@ -66,7 +66,7 @@ void housekeeping_task_kb(void)
housekeeping_task_user();
}
-void rgblight_call_driver(LED_TYPE *start_led, uint8_t num_leds)
+void rgblight_call_driver(rgb_led_t *start_led, uint8_t num_leds)
{
start_led[2].r = start_led[0].r;
start_led[2].g = start_led[0].g;
diff --git a/keyboards/nightmare/keymaps/brandonschlack/keymap.c b/keyboards/nightmare/keymaps/brandonschlack/keymap.c
deleted file mode 100644
index 0ed81cf053..0000000000
--- a/keyboards/nightmare/keymaps/brandonschlack/keymap.c
+++ /dev/null
@@ -1,195 +0,0 @@
-/* Copyright 2019 Brandon Schlack
- *
- * 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 "brandonschlack.h"
-
-/**
- * Layer Names
- *
- * Layers mostly used for macro keys
- */
-#define _REEDER _M1
-#define _NAV _M2
-#define _MOUSE _M3
-
-/**
- * Keycodes & Macros
- */
-#define TG_BASE TO(_BASE)
-#define TG_REDR TO(_REEDER)
-#define TG_NAV TO(_NAV)
-#define TG_MOUS TO(_MOUSE)
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-/**
- * Base
- * ┌───┬┬┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
- * │Hom│││Esc│ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │{ [│} ]│Bck│
- * ├───┼┼┼───┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴───┤
- * │PgU│││Tab │ A │ S │ D │ F │ G │ H │ J │ K │ L │: ;│" '│ Enter│
- * ├───┼┼┼────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴──┬───┤
- * │PgD│││Shift │ Z │ X │ C │ V │ B │ N │ M │< ,│> .│? /│Shft│ Fn│
- * ├───┼┼┼┬┬┬┬┬─┴─┬─┴──┬┴───┴───┴───┴───┴───┴───┴──┬┴───┼───┬┼┬┬┬┤
- * │End││││││││Opt│Cmd │                           │ Cmd│Ctl││││││
- * └───┴┴┴┴┴┴┴┴───┴────┴───────────────────────────┴────┴───┴┴┴┴┴┘
- */
-[_BASE] = LAYOUT_default(
- KC_HOME, KC_ESC, 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_BSPC,
- KC_PGUP, HY_TAB, 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, PLY_FN1,
- KC_END, KC_LOPT, KC_LCMD, SPC_RAI, KC_RCMD, KC_RCTL
-),
-
-/**
- * Reeder
- * ┌───┬┬┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
- * │ P │││   │   │   │   │   │   │   │   │   │   │   │   │   │   │
- * ├───┼┼┼───┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴───┤
- * │ K │││    │   │   │   │   │   │   │   │   │   │   │   │      │
- * ├───┼┼┼────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴──┬───┤
- * │ J │││      │   │   │   │   │   │   │   │   │   │   │    │   │
- * ├───┼┼┼┬┬┬┬┬─┴─┬─┴──┬┴───┴───┴───┴───┴───┴───┴──┬┴───┼───┬┼┬┬┬┤
- * │ N ││││││││   │    │                           │    │   ││││││
- * └───┴┴┴┴┴┴┴┴───┴────┴───────────────────────────┴────┴───┴┴┴┴┴┘
- */
-
-[_REEDER] = LAYOUT_default(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______
-),
-
-/**
- * Nav
- * ┌───┬┬┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
- * │ → │││   │   │   │   │   │   │   │   │   │   │   │   │   │   │
- * ├───┼┼┼───┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴───┤
- * │ ↑ │││    │   │   │   │   │   │   │   │   │   │   │   │      │
- * ├───┼┼┼────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴──┬───┤
- * │ ↓ │││      │   │   │   │   │   │   │   │   │   │   │    │   │
- * ├───┼┼┼┬┬┬┬┬─┴─┬─┴──┬┴───┴───┴───┴───┴───┴───┴──┬┴───┼───┬┼┬┬┬┤
- * │ ← ││││││││   │    │                           │    │   ││││││
- * └───┴┴┴┴┴┴┴┴───┴────┴───────────────────────────┴────┴───┴┴┴┴┴┘
- */
-[_NAV] = LAYOUT_default(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______
-),
-
-/**
- * Mouse
- * ┌───┬┬┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
- * │WhU│││   │   │   │   │   │   │   │   │   │   │   │   │   │   │
- * ├───┼┼┼───┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴───┤
- * │ ↑ │││    │   │   │   │   │   │   │   │   │   │   │   │      │
- * ├───┼┼┼────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴──┬───┤
- * │ ↓ │││      │   │   │   │   │   │   │   │   │   │   │    │   │
- * ├───┼┼┼┬┬┬┬┬─┴─┬─┴──┬┴───┴───┴───┴───┴───┴───┴──┬┴───┼───┬┼┬┬┬┤
- * │WhD││││││││   │    │                           │    │   ││││││
- * └───┴┴┴┴┴┴┴┴───┴────┴───────────────────────────┴────┴───┴┴┴┴┴┘
- */
-[_MOUSE] = LAYOUT_default(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______
-),
-
-/**
- * Lower
- * ┌───┬┬┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
- * │Nxt│││Del│BrD│BrU│Msn│LHP│   │   │   │   │   │   │ ↑ │Mut│SlD│
- * ├───┼┼┼───┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴───┤
- * │VlU│││    │   │   │NxW│PvT│Bck│Fwd│NxT│   │   │ ← │ → │ Play │
- * ├───┼┼┼────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴──┬───┤
- * │VlD│││SftCap│   │   │   │1PX│1Ps│   │   │   │   │ ↓ │    │   │
- * ├───┼┼┼┬┬┬┬┬─┴─┬─┴──┬┴───┴───┴───┴───┴───┴───┴──┬┴───┼───┬┼┬┬┬┤
- * │Prv││││││││   │    │                           │    │   ││││││
- * └───┴┴┴┴┴┴┴┴───┴────┴───────────────────────────┴────┴───┴┴┴┴┴┘
- */
-[_LOWER] = LAYOUT_default(
- KC_MNXT, KC_DEL, KC_BRMD, KC_BRMU, MC_MSSN, MC_LHPD, _______, _______, _______, _______, _______, _______, KC_UP, KC_MUTE, MC_SLPD,
- KC_VOLU, _______, _______, _______, NXT_WIN, PRV_TAB, MC_BACK, MC_FWRD, NXT_TAB, _______, _______, KC_LEFT, KC_RGHT, KC_MPLY,
- KC_VOLD, SF_CAPS, _______, _______, _______, PX_AFLL, OP_AFLL, _______, _______, _______, _______, KC_DOWN, _______, _______,
- KC_MPRV, _______, _______, _______, _______, _______
-),
-
-/**
- * Raise
- * ┌───┬┬┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
- * │Nxt│││~ `│! 1│@ 2│# 3│$ 4│% 5│^ 6│& 7│* 8│( 9│) 0│_ -│+ =│   │
- * ├───┼┼┼───┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴───┤
- * │VlU│││    │ F1│ F2│ F3│ F4│ F5│ F6│_ -│+ =│   │   │   │      │
- * ├───┼┼┼────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴──┬───┤
- * │VlD│││      │ F7│ F8│ F9│F10│F11│F12│   │   │   │| \│    │   │
- * ├───┼┼┼┬┬┬┬┬─┴─┬─┴──┬┴───┴───┴───┴───┴───┴───┴──┬┴───┼───┬┼┬┬┬┤
- * │Prv││││││││   │    │                           │    │   ││││││
- * └───┴┴┴┴┴┴┴┴───┴────┴───────────────────────────┴────┴───┴┴┴┴┴┘
- */
-[_RAISE] = LAYOUT_default(
- KC_MNXT, 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_VOLU, _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, _______, _______, _______, _______,
- KC_VOLD, _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, KC_BSLS, _______, _______,
- KC_MPRV, _______, _______, _______, _______, _______
-),
-
-/**
- * Adjust
- * ┌───┬┬┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
- * │Bse│││Mke│   │   │EEP│RST│   │   │   │   │   │   │   │   │   │
- * ├───┼┼┼───┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴───┤
- * │Rdr│││    │   │   │   │   │   │   │   │   │   │   │   │      │
- * ├───┼┼┼────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴──┬───┤
- * │Nav│││      │   │   │   │   │   │   │   │   │   │   │    │   │
- * ├───┼┼┼┬┬┬┬┬─┴─┬─┴──┬┴───┴───┴───┴───┴───┴───┴──┬┴───┼───┬┼┬┬┬┤
- * │Mse││││││││   │    │                           │    │   ││││││
- * └───┴┴┴┴┴┴┴┴───┴────┴───────────────────────────┴────┴───┴┴┴┴┴┘
- */
-[_ADJUST] = LAYOUT_default(
- TG_BASE, QM_MAKE, _______, _______, EE_CLR, QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- TG_REDR, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- TG_NAV, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- TG_MOUS, _______, _______, _______, _______, _______
-),
-
-/**
- * Blank
- * ┌───┬┬┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
- * │   │││   │   │   │   │   │   │   │   │   │   │   │   │   │   │
- * ├───┼┼┼───┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴───┤
- * │   │││    │   │   │   │   │   │   │   │   │   │   │   │      │
- * ├───┼┼┼────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴──┬───┤
- * │   │││      │   │   │   │   │   │   │   │   │   │   │    │   │
- * ├───┼┼┼┬┬┬┬┬─┴─┬─┴──┬┴───┴───┴───┴───┴───┴───┴──┬┴───┼───┬┼┬┬┬┤
- * │   ││││││││   │    │                           │    │   ││││││
- * └───┴┴┴┴┴┴┴┴───┴────┴───────────────────────────┴────┴───┴┴┴┴┴┘
- */
-/*
-[] = LAYOUT_default(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______
-),
-*/
-};
-
-layer_state_t layer_state_set_keymap(layer_state_t state) {
- return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST);
-}
diff --git a/keyboards/nightmare/keymaps/brandonschlack/readme.md b/keyboards/nightmare/keymaps/brandonschlack/readme.md
deleted file mode 100644
index 94c77833ff..0000000000
--- a/keyboards/nightmare/keymaps/brandonschlack/readme.md
+++ /dev/null
@@ -1,20 +0,0 @@
-# brandonschlack's Nightmare Keymap
-
-![Base, Raise, Lower](https://i.imgur.com/08759vK.png)
-
-## Features
-- Mod-Taps & Layer-Taps
- - Spacebar is used as a Fn button when held to access missing numrow and F-keys on the **RAISE** layer.
- - Holding `Tab` acts as `HYPER`, or `Shift+Control+Option+Command`. I use this set global shortcuts, such as `HYPER+w` for my **W**indow manager Moom.
-- **Lower** Layer
- - `Lower+Esc` for `Delete`
- - `Lower+LShift` for `Caps Lock`. Holding `Lower+LShift` still acts as `LShift`
- - Arrow keys as `Lower+[`,`;`,`'`,`/` for `Up`,`Left`,`Right`,`Down`.
- - Media keys as `Lower+Enter`,`Home`,`End` for `Play/Pause`,`Next Track`,`Prev Track`
- - Volume controls as `Lower+]`,`Page Up`,`Page Down` for `Mute`,`Volume Up`,`Volume Down`
-- MacOS shortcuts on **Lower** Layer
- - Display Brightness as `Lower+Q`,`W` for `Brightness Down`, `Brightness Up`
- - Mission Control as `Lower+E`
- - Launchpad as `Lower+R`
- - Sleep Display as `Lower+Backspace`
- - Browser
diff --git a/keyboards/nopunin10did/kastenwagen48/keymaps/jonavin/config.h b/keyboards/nopunin10did/kastenwagen48/keymaps/jonavin/config.h
deleted file mode 100644
index c6de1b416c..0000000000
--- a/keyboards/nopunin10did/kastenwagen48/keymaps/jonavin/config.h
+++ /dev/null
@@ -1,31 +0,0 @@
-/* Copyright 2021, 2022 Jonavin Eng
- *
- * 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 TAPPING_TOGGLE 2
-// TT set to two taps
-
-/* Handle GRAVESC combo keys */
-#define GRAVE_ESC_ALT_OVERRIDE
- //Always send Escape if Alt is pressed
-#define GRAVE_ESC_CTRL_OVERRIDE
- //Always send Escape if Control is pressed
-
-#define TAPPING_TERM 180
-
-#define ENCODER_DIRECTION_FLIP // compensate for opposite encoder direction
-#define ENCODER_DEFAULTACTIONS_INDEX 1 // Set default encoder functions to encoder 1
diff --git a/keyboards/nopunin10did/kastenwagen48/keymaps/jonavin/keymap.c b/keyboards/nopunin10did/kastenwagen48/keymaps/jonavin/keymap.c
deleted file mode 100644
index 691eddde10..0000000000
--- a/keyboards/nopunin10did/kastenwagen48/keymaps/jonavin/keymap.c
+++ /dev/null
@@ -1,67 +0,0 @@
-/* Copyright 2021 W. Alex Ronke, a.k.a. NoPunIn10Did (w.alex.ronke@gmail.com)
- * Copyright 2022 Jonavin Eng, @Jonavin
- *
- * 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 "jonavin.h"
-
-#define L2_SPC LT(2,KC_SPC)
-#define L3_SPC LT(3,KC_SPC)
-#define RWINALT RALT_T(KC_RGUI)
-#define ISO_LT KC_NUBS
-#define ISO_GT LSFT(KC_NUBS)
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
-[_BASE] = LAYOUT_48(
-
- 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_BSPC , KC_DEL ,
- TT(_RAISE) ,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_PGUP,
- KC_LSFTCAPS ,KC_Z ,KC_X ,KC_C ,KC_V ,KC_B ,KC_N ,KC_M ,KC_COMM,KC_DOT ,KC_SLSH, SC_SENT ,KC_UP , KC_PGDN,
- KC_LCTL ,KC_LALT ,KC_LGUI ,KC_SPC ,L3_SPC ,MO(_LOWER) ,MO(_FN1) ,KC_RCTL ,KC_LEFT,KC_DOWN,KC_RGHT
- ),
-[_FN1] = LAYOUT_48(
- KC_GRV ,KC_F1 ,KC_F2 ,KC_F3 ,KC_F4 ,KC_F5 ,KC_F6 ,KC_F7 ,KC_F8 ,KC_F9 ,KC_F10 ,KC_RBRC,KC_DEL , KC_INS ,
- KC_CAPS ,KC_F11 ,KC_F12 ,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,KC_PSCR, KC_SCRL, KC_PAUS,XXXXXXX,XXXXXXX,XXXXXXX , KC_HOME,
- _______ ,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,KC_NUM ,XXXXXXX ,XXXXXXX,XXXXXXX,XXXXXXX,_______ ,KC_PGUP, KC_END ,
- _______ ,_______ ,KC_WINLCK,XXXXXXX ,XXXXXXX ,_______,_______ ,_______ ,KC_HOME,KC_PGDN,KC_END
- ),
-[_LOWER] = LAYOUT_48(
- KC_TILD ,KC_EXLM, KC_AT, KC_HASH,KC_DLR,KC_PERC,KC_CIRC, KC_AMPR, KC_ASTR,KC_LPRN, KC_RPRN,KC_MINS,KC_EQL , QK_BOOT,
- _______ ,KC_MINS, KC_EQL,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,KC_QUES,KC_SLSH,KC_PIPE,KC_BSLS,KC_TILD, XXXXXXX ,XXXXXXX,
- _______ ,KC_UNDS, KC_PLUS,XXXXXXX,KC_LCBR, KC_RCBR, KC_LBRC, KC_RBRC,KC_LT,KC_GT, XXXXXXX ,_______ ,XXXXXXX,XXXXXXX,
- _______ ,_______ ,_______,XXXXXXX ,XXXXXXX ,_______,_______ ,_______ ,XXXXXXX,XXXXXXX,XXXXXXX
- ),
-[_RAISE] = LAYOUT_48(
- KC_ESC, KC_HOME,KC_UP, KC_END, KC_PGUP,KC_PMNS,KC_PPLS,KC_P7, KC_P8, KC_P9, KC_P0, KC_PMNS, KC_PEQL , KC_TSTOG,
- TT(_RAISE),KC_LEFT,KC_DOWN,KC_RIGHT,KC_PGDN,KC_PSLS,KC_TAB,KC_P4, KC_P5, KC_P6, KC_PDOT,KC_PAST,KC_PENT , XXXXXXX,
- _______, XXXXXXX,KC_DEL, KC_INS, KC_NO, KC_PAST,KC_P0, KC_P1, KC_P2, KC_P3, KC_PSLS ,_______, XXXXXXX,XXXXXXX,
- _______ ,_______ ,_______,KC_BSPC ,XXXXXXX ,_______,_______ ,_______ ,XXXXXXX,XXXXXXX,XXXXXXX
- )
-};
-
-#ifdef ENCODER_ENABLE // Encoder Functionality
-bool encoder_update_keymap(uint8_t index, bool clockwise) {
- switch (index) {
- case 0: // Top left encoder
- encoder_action_volume(clockwise);
- break;
- default:
- break;
- }
- return true; // fall to encoder_update_user and encoder_update_kb definitions
-}
-#endif
diff --git a/keyboards/nopunin10did/kastenwagen48/keymaps/jonavin/readme.md b/keyboards/nopunin10did/kastenwagen48/keymaps/jonavin/readme.md
deleted file mode 100644
index 885e6b0dd7..0000000000
--- a/keyboards/nopunin10did/kastenwagen48/keymaps/jonavin/readme.md
+++ /dev/null
@@ -1,54 +0,0 @@
-Jonavin Kastenwagen 48 Keymap
-Designed to match my other keymaps
-
-NOTE: Uses userpace user/jonavin
-
-Feature changes from Default
- - Bottom row mapping LCtrl, LAlt, LGui, spacebars, MO(2)/LOWER, MO(1)/FN, RCtrl
- - CAPS as MO(3)/RAISE - tap to toggle
- - numpad in MO(3) layer
- - double tap L Shift for CAPS
- - RESET moved to under encoder in MO(2)
- - implement Win Key Lock
- - GRV Escape overides
- - ENCODERS
- - TOP LEFT
- - Volume up/down
- - TOP RIGHT
- - Left Shift held - change layers
- - Right Shift held - Page Up/Down
- - Left Ctrl held - navigate next/prev words
- - Left Alt held - change media next/prev track
- - RAISE + Encode push toggles between volume change and tab scrolling
- - ENCODER_DIRECTION_FLIP has been defined to avoid issues with encoder going in opposition direction
-
-OPTIONS in rules.mk
----------------------------------------
-
-STARTUP_NUMLOCK_ON = yes
-- turns on NUMLOCK by default
-
-ENCODER_DEFAULTACTIONS_ENABLE = yes
-- Enabled default encoder funtions
-- When enabled, use this in the keymap for an additional encoder processing
-- bool encoder_update_keymap(uint8_t index, bool clockwise)
-
-OPTION: set ENCODER_DEFAULTACTIONS_INDEX in config.h to the encoder number if the encoder is not index 0 -- set to 1 for top right encoder
-
-TD_LSFT_CAPSLOCK_ENABLE = yes
-- This will enable double tap on Left Shift to toggle CAPSLOCK
-- KC_LSFTCAPS to bind to left Shift to enable feature
-- KC_LSFTCAPSWIN does the same thing but will not turn on CAPS when Win Lkey is disabled
-
-INVERT_NUMLOCK_INDICATOR
-- inverts the Num lock indicator, LED is on when num lock is off
-
-ALTTAB_SCROLL_ENABLE
-- When ENCODER_DEFAULTACTIONS_ENABLE = yes,
- Enables Alt-Tab scrolling functions in default encoder,
- bind KS_TSTOG to a key to enable/disable Alt-Tab vs Volume control
-- When defining your own encoder functions use encoder_action_alttabscroll(bool clockwise) to assign the encodr action
-
-
-Layout
-![image](https://user-images.githubusercontent.com/71780717/128580303-5d660a5f-1420-4e38-b40a-212573496b1c.png)
diff --git a/keyboards/nopunin10did/kastenwagen48/keymaps/jonavin/rules.mk b/keyboards/nopunin10did/kastenwagen48/keymaps/jonavin/rules.mk
deleted file mode 100644
index 97ccf0c354..0000000000
--- a/keyboards/nopunin10did/kastenwagen48/keymaps/jonavin/rules.mk
+++ /dev/null
@@ -1,11 +0,0 @@
-VIA_ENABLE = yes # VIA support
-LTO_ENABLE = yes #
-
-TAP_DANCE_ENABLE = yes
-
-TD_LSFT_CAPSLOCK_ENABLE = yes
-STARTUP_NUMLOCK_ON = yes
-
-ENCODER_DEFAULTACTIONS_ENABLE = yes
-INVERT_NUMLOCK_INDICATOR = yes
-ALTTAB_SCROLL_ENABLE = yes
diff --git a/keyboards/novelkeys/nk1/config.h b/keyboards/novelkeys/nk1/config.h
deleted file mode 100644
index 1bcd22e6e5..0000000000
--- a/keyboards/novelkeys/nk1/config.h
+++ /dev/null
@@ -1,21 +0,0 @@
-
-/* Copyright 2021 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/>.
- */
-
-#pragma once
-
-/* There is only 1 Button so limiting VIA to 1 layer */
-#define DYNAMIC_KEYMAP_LAYER_COUNT 1
diff --git a/keyboards/novelkeys/nk65/config.h b/keyboards/novelkeys/nk65/config.h
index 1afa3fe95b..97350e34b4 100755
--- a/keyboards/novelkeys/nk65/config.h
+++ b/keyboards/novelkeys/nk65/config.h
@@ -50,8 +50,9 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define RGB_BACKLIGHT_COLOR_1 { .h = 0, .s = 255 }
#define RGB_BACKLIGHT_COLOR_2 { .h = 127, .s = 255 }
-#define DRIVER_COUNT 2
-#define RGB_MATRIX_LED_COUNT 128
+#define IS31FL3733_I2C_ADDRESS_1 IS31FL3733_I2C_ADDRESS_GND_GND
+#define IS31FL3733_I2C_ADDRESS_2 IS31FL3733_I2C_ADDRESS_GND_SDA
+#define IS31FL3733_LED_COUNT 128
// These define which keys in the matrix are alphas/mods
// Used for backlight effects so colors are different for
diff --git a/keyboards/novelkeys/nk65/nk65.c b/keyboards/novelkeys/nk65/nk65.c
index 2c325e453a..c4a14e7087 100755
--- a/keyboards/novelkeys/nk65/nk65.c
+++ b/keyboards/novelkeys/nk65/nk65.c
@@ -20,6 +20,146 @@
#include "nk65.h"
#include "drivers/led/issi/is31fl3733.h"
+#if defined(RGB_MATRIX_ENABLE) || defined(RGB_BACKLIGHT_NK65)
+const is31fl3733_led_t PROGMEM g_is31fl3733_leds[IS31FL3733_LED_COUNT] = {
+/* Refer to IS31 manual for these locations
+ * driver
+ * | R location
+ * | | G location
+ * | | | B location
+ * | | | | */
+ {0, B_1, A_1, C_1}, //LA1
+ {0, E_1, D_1, F_1}, //LA2
+ {0, H_1, G_1, I_1}, //LA3
+ {0, K_1, J_1, L_1}, //LA4
+ {0, B_2, A_2, C_2}, //LA5
+ {0, E_2, D_2, F_2}, //LA6
+ {0, H_2, G_2, I_2}, //LA7
+ {0, K_2, J_2, L_2}, //LA8
+ {0, B_3, A_3, C_3}, //LA9
+ {0, E_3, D_3, F_3}, //LA10
+ {0, H_3, G_3, I_3}, //LA11
+ {0, K_3, J_3, L_3}, //LA12
+ {0, B_4, A_4, C_4}, //LA13
+ {0, E_4, D_4, F_4}, //LA14
+ {0, H_4, G_4, I_4}, //LA15
+ {0, K_4, J_4, L_4}, //LA16
+ {0, B_5, A_5, C_5}, //LA17
+ {0, E_5, D_5, F_5}, //LA18
+ {0, H_5, G_5, I_5}, //LA19
+ {0, K_5, J_5, L_5}, //LA20
+ {0, B_6, A_6, C_6}, //LA21
+ {0, E_6, D_6, F_6}, //LA22
+ {0, H_6, G_6, I_6}, //LA23
+ {0, K_6, J_6, L_6}, //LA24
+ {0, B_7, A_7, C_7}, //LA25
+ {0, E_7, D_7, F_7}, //LA26
+ {0, H_7, G_7, I_7}, //LA27
+ {0, K_7, J_7, L_7}, //LA28
+ {0, B_8, A_8, C_8}, //LA29
+ {0, E_8, D_8, F_8}, //LA30
+ {0, H_8, G_8, I_8}, //LA31
+ {0, K_8, J_8, L_8}, //LA32
+ {0, B_9, A_9, C_9}, //LA33
+ {0, E_9, D_9, F_9}, //LA34
+ {0, H_9, G_9, I_9}, //LA35
+ {0, K_9, J_9, L_9}, //LA36
+ {0, B_10, A_10, C_10}, //LA37
+ {0, E_10, D_10, F_10}, //LA38
+ {0, H_10, G_10, I_10}, //LA39
+ {0, K_10, J_10, L_10}, //LA40
+ {0, B_11, A_11, C_11}, //LA41
+ {0, E_11, D_11, F_11}, //LA42
+ {0, H_11, G_11, I_11}, //LA43
+ {0, K_11, J_11, L_11}, //LA44
+ {0, B_12, A_12, C_12}, //LA45
+ {0, E_12, D_12, F_12}, //LA46
+ {0, H_12, G_12, I_12}, //LA47
+ {0, K_12, J_12, L_12}, //LA48
+ {0, B_13, A_13, C_13}, //LA49
+ {0, E_13, D_13, F_13}, //LA50
+ {0, H_13, G_13, I_13}, //LA51
+ {0, K_13, J_13, L_13}, //LA52
+ {0, B_14, A_14, C_14}, //LA53
+ {0, E_14, D_14, F_14}, //LA54
+ {0, H_14, G_14, I_14}, //LA55
+ {0, K_14, J_14, L_14}, //LA56
+ {0, B_15, A_15, C_15}, //LA57
+ {0, E_15, D_15, F_15}, //LA58
+ {0, H_15, G_15, I_15}, //LA59
+ {0, K_15, J_15, L_15}, //LA60
+ {0, B_16, A_16, C_16}, //LA61
+ {0, E_16, D_16, F_16}, //LA62
+ {0, H_16, G_16, I_16}, //LA63
+ {0, K_16, J_16, L_16}, //LA64
+
+ {1, B_1, A_1, C_1}, //LB1
+ {1, E_1, D_1, F_1}, //LB2
+ {1, H_1, G_1, I_1}, //LB3
+ {1, K_1, J_1, L_1}, //LB4
+ {1, B_2, A_2, C_2}, //LB5
+ {1, E_2, D_2, F_2}, //LB6
+ {1, H_2, G_2, I_2}, //LB7
+ {1, K_2, J_2, L_2}, //LB8
+ {1, B_3, A_3, C_3}, //LB9
+ {1, E_3, D_3, F_3}, //LB10
+ {1, H_3, G_3, I_3}, //LB11
+ {1, K_3, J_3, L_3}, //LB12
+ {1, B_4, A_4, C_4}, //LB13
+ {1, E_4, D_4, F_4}, //LB14
+ {1, H_4, G_4, I_4}, //LB15
+ {1, K_4, J_4, L_4}, //LB16
+ {1, B_5, A_5, C_5}, //LB17
+ {1, E_5, D_5, F_5}, //LB18
+ {1, H_5, G_5, I_5}, //LB19
+ {1, K_5, J_5, L_5}, //LB20
+ {1, B_6, A_6, C_6}, //LB21
+ {1, E_6, D_6, F_6}, //LB22
+ {1, H_6, G_6, I_6}, //LB23
+ {1, K_6, J_6, L_6}, //LB24
+ {1, B_7, A_7, C_7}, //LB25
+ {1, E_7, D_7, F_7}, //LB26
+ {1, H_7, G_7, I_7}, //LB27
+ {1, K_7, J_7, L_7}, //LB28
+ {1, B_8, A_8, C_8}, //LB29
+ {1, E_8, D_8, F_8}, //LB30
+ {1, H_8, G_8, I_8}, //LB31
+ {1, K_8, J_8, L_8}, //LB32
+ {1, B_9, A_9, C_9}, //LB33
+ {1, E_9, D_9, F_9}, //LB34
+ {1, H_9, G_9, I_9}, //LB35
+ {1, K_9, J_9, L_9}, //LB36
+ {1, B_10, A_10, C_10}, //LB37
+ {1, E_10, D_10, F_10}, //LB38
+ {1, H_10, G_10, I_10}, //LB39
+ {1, K_10, J_10, L_10}, //LB40
+ {1, B_11, A_11, C_11}, //LB41
+ {1, E_11, D_11, F_11}, //LB42
+ {1, H_11, G_11, I_11}, //LB43
+ {1, K_11, J_11, L_11}, //LB44
+ {1, B_12, A_12, C_12}, //LB45
+ {1, E_12, D_12, F_12}, //LB46
+ {1, H_12, G_12, I_12}, //LB47
+ {1, K_12, J_12, L_12}, //LB48
+ {1, B_13, A_13, C_13}, //LB49
+ {1, E_13, D_13, F_13}, //LB50
+ {1, H_13, G_13, I_13}, //LB51
+ {1, K_13, J_13, L_13}, //LB52
+ {1, B_14, A_14, C_14}, //LB53
+ {1, E_14, D_14, F_14}, //LB54
+ {1, H_14, G_14, I_14}, //LB55
+ {1, K_14, J_14, L_14}, //LB56
+ {1, B_15, A_15, C_15}, //LB57
+ {1, E_15, D_15, F_15}, //LB58
+ {1, H_15, G_15, I_15}, //LB59
+ {1, K_15, J_15, L_15}, //LB60
+ {1, B_16, A_16, C_16}, //LB61
+ {1, E_16, D_16, F_16}, //LB62
+ {1, H_16, G_16, I_16}, //LB63
+ {1, K_16, J_16, L_16}, //LB64
+};
+#endif
+
/* Indicator LEDS are part of the LED driver
* Top LED is blue only. LED driver 2 RGB 7 Green channel
* Middle LED is blue and red. LED driver 2 RGB 6 Red and Blue channel
diff --git a/keyboards/novelkeys/nk65/rules.mk b/keyboards/novelkeys/nk65/rules.mk
index e9036ebb61..d71d9a6c4e 100755
--- a/keyboards/novelkeys/nk65/rules.mk
+++ b/keyboards/novelkeys/nk65/rules.mk
@@ -22,7 +22,7 @@ CIE1931_CURVE = yes
SRC = keyboards/wilba_tech/wt_main.c \
keyboards/wilba_tech/wt_rgb_backlight.c \
drivers/led/issi/is31fl3733.c \
- quantum/color.c \
- i2c_master.c
+ quantum/color.c
+I2C_DRIVER_REQUIRED = yes
DEFAULT_FOLDER = novelkeys/nk65/base
diff --git a/keyboards/novelkeys/nk87/config.h b/keyboards/novelkeys/nk87/config.h
index d0e973bb43..ff9e05cbad 100755
--- a/keyboards/novelkeys/nk87/config.h
+++ b/keyboards/novelkeys/nk87/config.h
@@ -50,8 +50,9 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define RGB_BACKLIGHT_COLOR_1 { .h = 0, .s = 255 }
#define RGB_BACKLIGHT_COLOR_2 { .h = 127, .s = 255 }
-#define DRIVER_COUNT 2
-#define RGB_MATRIX_LED_COUNT 128
+#define IS31FL3733_I2C_ADDRESS_1 IS31FL3733_I2C_ADDRESS_GND_GND
+#define IS31FL3733_I2C_ADDRESS_2 IS31FL3733_I2C_ADDRESS_GND_SDA
+#define IS31FL3733_LED_COUNT 128
// These define which keys in the matrix are alphas/mods
// Used for backlight effects so colors are different for
diff --git a/keyboards/novelkeys/nk87/nk87.c b/keyboards/novelkeys/nk87/nk87.c
index c75fff450b..e701bfaccf 100755
--- a/keyboards/novelkeys/nk87/nk87.c
+++ b/keyboards/novelkeys/nk87/nk87.c
@@ -20,6 +20,146 @@
#include "nk87.h"
#include "drivers/led/issi/is31fl3733.h"
+#if defined(RGB_MATRIX_ENABLE) || defined(RGB_BACKLIGHT_NK87)
+const is31fl3733_led_t PROGMEM g_is31fl3733_leds[IS31FL3733_LED_COUNT] = {
+/* Refer to IS31 manual for these locations
+ * driver
+ * | R location
+ * | | G location
+ * | | | B location
+ * | | | | */
+ {0, B_1, A_1, C_1}, //LA1
+ {0, E_1, D_1, F_1}, //LA2
+ {0, H_1, G_1, I_1}, //LA3
+ {0, K_1, J_1, L_1}, //LA4
+ {0, B_2, A_2, C_2}, //LA5
+ {0, E_2, D_2, F_2}, //LA6
+ {0, H_2, G_2, I_2}, //LA7
+ {0, K_2, J_2, L_2}, //LA8
+ {0, B_3, A_3, C_3}, //LA9
+ {0, E_3, D_3, F_3}, //LA10
+ {0, H_3, G_3, I_3}, //LA11
+ {0, K_3, J_3, L_3}, //LA12
+ {0, B_4, A_4, C_4}, //LA13
+ {0, E_4, D_4, F_4}, //LA14
+ {0, H_4, G_4, I_4}, //LA15
+ {0, K_4, J_4, L_4}, //LA16
+ {0, B_5, A_5, C_5}, //LA17
+ {0, E_5, D_5, F_5}, //LA18
+ {0, H_5, G_5, I_5}, //LA19
+ {0, K_5, J_5, L_5}, //LA20
+ {0, B_6, A_6, C_6}, //LA21
+ {0, E_6, D_6, F_6}, //LA22
+ {0, H_6, G_6, I_6}, //LA23
+ {0, K_6, J_6, L_6}, //LA24
+ {0, B_7, A_7, C_7}, //LA25
+ {0, E_7, D_7, F_7}, //LA26
+ {0, H_7, G_7, I_7}, //LA27
+ {0, K_7, J_7, L_7}, //LA28
+ {0, B_8, A_8, C_8}, //LA29
+ {0, E_8, D_8, F_8}, //LA30
+ {0, H_8, G_8, I_8}, //LA31
+ {0, K_8, J_8, L_8}, //LA32
+ {0, B_9, A_9, C_9}, //LA33
+ {0, E_9, D_9, F_9}, //LA34
+ {0, H_9, G_9, I_9}, //LA35
+ {0, K_9, J_9, L_9}, //LA36
+ {0, B_10, A_10, C_10}, //LA37
+ {0, E_10, D_10, F_10}, //LA38
+ {0, H_10, G_10, I_10}, //LA39
+ {0, K_10, J_10, L_10}, //LA40
+ {0, B_11, A_11, C_11}, //LA41
+ {0, E_11, D_11, F_11}, //LA42
+ {0, H_11, G_11, I_11}, //LA43
+ {0, K_11, J_11, L_11}, //LA44
+ {0, B_12, A_12, C_12}, //LA45
+ {0, E_12, D_12, F_12}, //LA46
+ {0, H_12, G_12, I_12}, //LA47
+ {0, K_12, J_12, L_12}, //LA48
+ {0, B_13, A_13, C_13}, //LA49
+ {0, E_13, D_13, F_13}, //LA50
+ {0, H_13, G_13, I_13}, //LA51
+ {0, K_13, J_13, L_13}, //LA52
+ {0, B_14, A_14, C_14}, //LA53
+ {0, E_14, D_14, F_14}, //LA54
+ {0, H_14, G_14, I_14}, //LA55
+ {0, K_14, J_14, L_14}, //LA56
+ {0, B_15, A_15, C_15}, //LA57
+ {0, E_15, D_15, F_15}, //LA58
+ {0, H_15, G_15, I_15}, //LA59
+ {0, K_15, J_15, L_15}, //LA60
+ {0, B_16, A_16, C_16}, //LA61
+ {0, E_16, D_16, F_16}, //LA62
+ {0, H_16, G_16, I_16}, //LA63
+ {0, K_16, J_16, L_16}, //LA64
+
+ {1, B_1, A_1, C_1}, //LB1
+ {1, E_1, D_1, F_1}, //LB2
+ {1, H_1, G_1, I_1}, //LB3
+ {1, K_1, J_1, L_1}, //LB4
+ {1, B_2, A_2, C_2}, //LB5
+ {1, E_2, D_2, F_2}, //LB6
+ {1, H_2, G_2, I_2}, //LB7
+ {1, K_2, J_2, L_2}, //LB8
+ {1, B_3, A_3, C_3}, //LB9
+ {1, E_3, D_3, F_3}, //LB10
+ {1, H_3, G_3, I_3}, //LB11
+ {1, K_3, J_3, L_3}, //LB12
+ {1, B_4, A_4, C_4}, //LB13
+ {1, E_4, D_4, F_4}, //LB14
+ {1, H_4, G_4, I_4}, //LB15
+ {1, K_4, J_4, L_4}, //LB16
+ {1, B_5, A_5, C_5}, //LB17
+ {1, E_5, D_5, F_5}, //LB18
+ {1, H_5, G_5, I_5}, //LB19
+ {1, K_5, J_5, L_5}, //LB20
+ {1, B_6, A_6, C_6}, //LB21
+ {1, E_6, D_6, F_6}, //LB22
+ {1, H_6, G_6, I_6}, //LB23
+ {1, K_6, J_6, L_6}, //LB24
+ {1, B_7, A_7, C_7}, //LB25
+ {1, E_7, D_7, F_7}, //LB26
+ {1, H_7, G_7, I_7}, //LB27
+ {1, K_7, J_7, L_7}, //LB28
+ {1, B_8, A_8, C_8}, //LB29
+ {1, E_8, D_8, F_8}, //LB30
+ {1, H_8, G_8, I_8}, //LB31
+ {1, K_8, J_8, L_8}, //LB32
+ {1, B_9, A_9, C_9}, //LB33
+ {1, E_9, D_9, F_9}, //LB34
+ {1, H_9, G_9, I_9}, //LB35
+ {1, K_9, J_9, L_9}, //LB36
+ {1, B_10, A_10, C_10}, //LB37
+ {1, E_10, D_10, F_10}, //LB38
+ {1, H_10, G_10, I_10}, //LB39
+ {1, K_10, J_10, L_10}, //LB40
+ {1, B_11, A_11, C_11}, //LB41
+ {1, E_11, D_11, F_11}, //LB42
+ {1, H_11, G_11, I_11}, //LB43
+ {1, K_11, J_11, L_11}, //LB44
+ {1, B_12, A_12, C_12}, //LB45
+ {1, E_12, D_12, F_12}, //LB46
+ {1, H_12, G_12, I_12}, //LB47
+ {1, K_12, J_12, L_12}, //LB48
+ {1, B_13, A_13, C_13}, //LB49
+ {1, E_13, D_13, F_13}, //LB50
+ {1, H_13, G_13, I_13}, //LB51
+ {1, K_13, J_13, L_13}, //LB52
+ {1, B_14, A_14, C_14}, //LB53
+ {1, E_14, D_14, F_14}, //LB54
+ {1, H_14, G_14, I_14}, //LB55
+ {1, K_14, J_14, L_14}, //LB56
+ {1, B_15, A_15, C_15}, //LB57
+ {1, E_15, D_15, F_15}, //LB58
+ {1, H_15, G_15, I_15}, //LB59
+ {1, K_15, J_15, L_15}, //LB60
+ {1, B_16, A_16, C_16}, //LB61
+ {1, E_16, D_16, F_16}, //LB62
+ {1, H_16, G_16, I_16}, //LB63
+ {1, K_16, J_16, L_16}, //LB64
+};
+#endif
+
/* Indicator LEDS are part of the LED driver
* Top LED is blue only. LED driver 2 RGB 63 Blue channel
* Middle LED is blue and red. LED driver 2 RGB 63 Red and Green channel
diff --git a/keyboards/novelkeys/nk87/rules.mk b/keyboards/novelkeys/nk87/rules.mk
index 288d802054..a0a09c1dab 100755
--- a/keyboards/novelkeys/nk87/rules.mk
+++ b/keyboards/novelkeys/nk87/rules.mk
@@ -22,5 +22,5 @@ CIE1931_CURVE = yes
SRC = keyboards/wilba_tech/wt_main.c \
keyboards/wilba_tech/wt_rgb_backlight.c \
drivers/led/issi/is31fl3733.c \
- quantum/color.c \
- i2c_master.c
+ quantum/color.c
+I2C_DRIVER_REQUIRED = yes
diff --git a/keyboards/novelkeys/nk_plus/info.json b/keyboards/novelkeys/nk_plus/info.json
index f6fad60b01..51a23057c4 100755
--- a/keyboards/novelkeys/nk_plus/info.json
+++ b/keyboards/novelkeys/nk_plus/info.json
@@ -109,6 +109,7 @@
"max_brightness": 120
},
"ws2812": {
+ "driver": "pwm",
"pin": "B4"
},
"layout_aliases": {
diff --git a/keyboards/novelkeys/nk_plus/rules.mk b/keyboards/novelkeys/nk_plus/rules.mk
index 928a45cfae..0ab54aaaf7 100644
--- a/keyboards/novelkeys/nk_plus/rules.mk
+++ b/keyboards/novelkeys/nk_plus/rules.mk
@@ -1,7 +1,2 @@
# Wildcard to allow APM32 MCU
DFU_SUFFIX_ARGS = -v FFFF -p FFFF
-
-# Build Options
-# change yes to no to disable
-#
-WS2812_DRIVER = pwm # Per-key RGB MCU Driver
diff --git a/keyboards/nullbitsco/nibble/rules.mk b/keyboards/nullbitsco/nibble/rules.mk
index 0d5d3e2aac..5a1714cc9d 100644
--- a/keyboards/nullbitsco/nibble/rules.mk
+++ b/keyboards/nullbitsco/nibble/rules.mk
@@ -19,4 +19,4 @@ SRC += matrix.c \
common/bitc_led.c \
big_led.c \
common/remote_kb.c
-QUANTUM_LIB_SRC += uart.c
+UART_DRIVER_REQUIRED = yes
diff --git a/keyboards/nullbitsco/snap/config.h b/keyboards/nullbitsco/snap/config.h
index d9fe16e285..9559a34352 100644
--- a/keyboards/nullbitsco/snap/config.h
+++ b/keyboards/nullbitsco/snap/config.h
@@ -59,6 +59,3 @@
/* Optional speaker pin */
#define AUDIO_PIN B6
-
-/* Optional split transactions */
-#define SPLIT_OLED_ENABLE
diff --git a/keyboards/nullbitsco/snap/info.json b/keyboards/nullbitsco/snap/info.json
index f235fce511..65cd463708 100644
--- a/keyboards/nullbitsco/snap/info.json
+++ b/keyboards/nullbitsco/snap/info.json
@@ -37,6 +37,11 @@
{"pin_a": "B4", "pin_b": "B5"}
]
}
+ },
+ "transport": {
+ "sync": {
+ "oled": true
+ }
}
},
"ws2812": {
diff --git a/keyboards/nullbitsco/snap/rules.mk b/keyboards/nullbitsco/snap/rules.mk
index 79ba7d6eb6..2ad88b97c0 100644
--- a/keyboards/nullbitsco/snap/rules.mk
+++ b/keyboards/nullbitsco/snap/rules.mk
@@ -19,5 +19,5 @@ CUSTOM_MATRIX = lite # Split custom matrix
# Project specific files
SRC += common/bitc_led.c \
common/remote_kb.c \
- matrix.c \
- uart.c
+ matrix.c
+UART_DRIVER_REQUIRED = yes
diff --git a/keyboards/nullbitsco/tidbit/rules.mk b/keyboards/nullbitsco/tidbit/rules.mk
index 3b7ff078bb..b4a06216bb 100644
--- a/keyboards/nullbitsco/tidbit/rules.mk
+++ b/keyboards/nullbitsco/tidbit/rules.mk
@@ -16,5 +16,5 @@ LTO_ENABLE = yes
# Project specific files
SRC += common/bitc_led.c \
common/remote_kb.c
-QUANTUM_LIB_SRC += i2c_master.c \
- uart.c
+I2C_DRIVER_REQUIRED = yes
+UART_DRIVER_REQUIRED = yes
diff --git a/keyboards/oddforge/vea/rules.mk b/keyboards/oddforge/vea/rules.mk
index f616b9400e..b0c02543b1 100644
--- a/keyboards/oddforge/vea/rules.mk
+++ b/keyboards/oddforge/vea/rules.mk
@@ -12,4 +12,4 @@ RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
# custom matrix setup
CUSTOM_MATRIX = lite
SRC = matrix.c
-QUANTUM_LIB_SRC += i2c_master.c
+I2C_DRIVER_REQUIRED = yes
diff --git a/keyboards/oddforge/vea/ws2812_custom.c b/keyboards/oddforge/vea/ws2812_custom.c
index 0dc5a2d0f1..f52c8d06a8 100644
--- a/keyboards/oddforge/vea/ws2812_custom.c
+++ b/keyboards/oddforge/vea/ws2812_custom.c
@@ -22,13 +22,13 @@ void ws2812_init(void) {
}
// Setleds for standard RGB
-void ws2812_setleds(LED_TYPE *ledarray, uint16_t leds) {
+void ws2812_setleds(rgb_led_t *ledarray, uint16_t leds) {
static bool s_init = false;
if (!s_init) {
ws2812_init();
s_init = true;
}
- i2c_transmit(WS2812_I2C_ADDRESS, (uint8_t *)ledarray, sizeof(LED_TYPE) * (leds >> 1), WS2812_I2C_TIMEOUT);
- i2c_transmit(WS2812_I2C_ADDRESS_RIGHT, (uint8_t *)ledarray+(sizeof(LED_TYPE) * (leds >> 1)), sizeof(LED_TYPE) * (leds - (leds >> 1)), WS2812_I2C_TIMEOUT);
+ i2c_transmit(WS2812_I2C_ADDRESS, (uint8_t *)ledarray, sizeof(rgb_led_t) * (leds >> 1), WS2812_I2C_TIMEOUT);
+ i2c_transmit(WS2812_I2C_ADDRESS_RIGHT, (uint8_t *)ledarray+(sizeof(rgb_led_t) * (leds >> 1)), sizeof(rgb_led_t) * (leds - (leds >> 1)), WS2812_I2C_TIMEOUT);
}
diff --git a/keyboards/omkbd/ergodash/rev1/keymaps/333fred/config.h b/keyboards/omkbd/ergodash/rev1/keymaps/333fred/config.h
deleted file mode 100644
index cb50d1a34b..0000000000
--- a/keyboards/omkbd/ergodash/rev1/keymaps/333fred/config.h
+++ /dev/null
@@ -1,28 +0,0 @@
-/*
- Copyright (c) 2020 Fred Silberberg
-
- Permission is hereby granted, free of charge, to any person obtaining a copy
- of this software and associated documentation files (the "Software"), to deal
- in the Software without restriction, including without limitation the rights
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- copies of the Software, and to permit persons to whom the Software is
- furnished to do so, subject to the following conditions:
-
- The above copyright notice and this permission notice shall be included in all
- copies or substantial portions of the Software.
-
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- THE SOFTWARE.
-*/
-
-#pragma once
-
-#define MASTER_LEFT
-
-#undef TAPPING_TERM
-#define TAPPING_TERM 200
diff --git a/keyboards/omkbd/ergodash/rev1/keymaps/333fred/keymap.c b/keyboards/omkbd/ergodash/rev1/keymaps/333fred/keymap.c
deleted file mode 100644
index b206a4b986..0000000000
--- a/keyboards/omkbd/ergodash/rev1/keymaps/333fred/keymap.c
+++ /dev/null
@@ -1,79 +0,0 @@
-/*
- Copyright (c) 2020 Fred Silberberg
-
- Permission is hereby granted, free of charge, to any person obtaining a copy
- of this software and associated documentation files (the "Software"), to deal
- in the Software without restriction, including without limitation the rights
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- copies of the Software, and to permit persons to whom the Software is
- furnished to do so, subject to the following conditions:
-
- The above copyright notice and this permission notice shall be included in all
- copies or substantial portions of the Software.
-
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- THE SOFTWARE.
-*/
-
-#include QMK_KEYBOARD_H
-#include "333fred.h"
-
-extern keymap_config_t keymap_config;
-
-// Use an expanded macro with VA_ARGS to ensure that the common
-// rows get expanded out before getting passed to the LAYOUT
-// macro.
-
-#define LAYOUT_wrapper(...) LAYOUT(__VA_ARGS__)
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [BASE] = LAYOUT_wrapper(
- ROW5_LEFT_BASE, KC_F5, KC_F6, ROW5_RGHT_BASE,
- ROW4_LEFT_BASE, TG(GAME), TG(GAME_ARROW), ROW4_RGHT_BASE,
- ROW3_LEFT_BASE, KC_LGUI, KC_BSPC, ROW3_RGHT_BASE,
- ROW2_LEFT_BASE, TD(TD_COPY_PASTE), KC_UP , ROW2_RGHT_BASE,
- ROW1_LEFT_BASE, KC_BSPC, TD(TD_SYM_VIM), KC_DEL, KC_ENT, KC_SPC , KC_DOWN, ROW1_RGHT_BASE
- ),
-
- [SYMB] = LAYOUT_wrapper(
- ROW5_LEFT_SYMB, _______, _______, ROW5_RGHT_SYMB,
- ROW4_LEFT_SYMB, PSCREEN_APP, _______, ROW4_RGHT_SYMB,
- ROW3_LEFT_SYMB, KC_PSCR, KC_VOLU, ROW3_RGHT_SYMB,
- ROW2_LEFT_SYMB, _______, KC_VOLD, ROW2_RGHT_SYMB,
- ROW1_LEFT_SYMB, _______, _______, _______, KC_MPRV, KC_MPLY, KC_MNXT, ROW1_RGHT_SYMB
- ),
-
- [VIM] = LAYOUT_wrapper(
- ROW5_LEFT_VIM, _______, _______, ROW5_RGHT_VIM,
- ROW4_LEFT_VIM, _______, _______, ROW4_RGHT_VIM,
- ROW3_LEFT_VIM, _______, _______, ROW3_RGHT_VIM,
- ROW2_LEFT_VIM, _______, _______, ROW2_RGHT_VIM,
- ROW1_LEFT_VIM, _______, _______, _______, _______, _______, _______, ROW1_RGHT_VIM
- ),
-
- [GAME] = LAYOUT_wrapper(
- KC_ESC, SIX_TRNS, _______, SIX_TRNS,
- SIX_TRNS, _______, _______, SIX_TRNS,
- KC_LCTL, FOUR_TRNS, _______, KC_F6, _______, SIX_TRNS,
- KC_LSFT, KC_Z, FOUR_TRNS, KC_F5, _______, SIX_TRNS,
- KC_ENT, _______, QK_LOCK, KC_BSPC, KC_LALT, KC_SPC, OSM(SYMB), _______, SIX_TRNS
- ),
-
- [GAME_ARROW] = LAYOUT_wrapper(
- KC_ESC, SIX_TRNS, _______, SIX_TRNS,
- _______, _______, KC_UP, _______, _______, _______, _______, _______, SIX_TRNS,
- KC_LCTL, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, KC_F6, _______, SIX_TRNS,
- KC_LSFT, KC_Z, FOUR_TRNS, KC_F5, _______, SIX_TRNS,
- KC_ENT, _______, QK_LOCK, KC_BSPC, KC_LALT, KC_SPC, OSM(SYMB), _______, SIX_TRNS
- )
-};
-
-bool process_record_user(uint16_t keycode, keyrecord_t *record) {
- tap_dance_process_keycode(keycode);
- return !try_handle_macro(keycode, record);
-}
diff --git a/keyboards/omkbd/ergodash/rev1/keymaps/333fred/rules.mk b/keyboards/omkbd/ergodash/rev1/keymaps/333fred/rules.mk
deleted file mode 100644
index 2a91ad3ba4..0000000000
--- a/keyboards/omkbd/ergodash/rev1/keymaps/333fred/rules.mk
+++ /dev/null
@@ -1,5 +0,0 @@
-BACKLIGHT_ENABLE = no
-RGBLIGHT_ENABLE = yes
-AUDIO_ENABLE = no
-KEY_LOCK_ENABLE = yes
-CONSOLE_ENABLE = no
diff --git a/keyboards/omkbd/ergodash/rev1/keymaps/yet-another-developer/config.h b/keyboards/omkbd/ergodash/rev1/keymaps/yet-another-developer/config.h
deleted file mode 100644
index 09bc62a14f..0000000000
--- a/keyboards/omkbd/ergodash/rev1/keymaps/yet-another-developer/config.h
+++ /dev/null
@@ -1,62 +0,0 @@
-/*
-This is the c configuration file for the keymap
-
-Copyright 2012 Jun Wako <wakojun@gmail.com>
-Copyright 2015 Jack Humbert
-
-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
-
-/* Select hand configuration */
-
-//#define MASTER_LEFT
-#define MASTER_RIGHT /* Cable connected to the right split keyboard */
-// #define EE_HANDS
-
-#define AUTO_SHIFT_TIMEOUT 210
-
-#define TAPPING_TERM_PER_KEY
-
-// https://beta.docs.qmk.fm/features/feature_leader_key
-//#define LEADER_PER_KEY_TIMING
-//#define LEADER_TIMEOUT 280
-
-// https://docs.qmk.fm/#/feature_mouse_keys
-#define MK_3_SPEED // Constant Speed Mode
-
-#define MOUSEKEY_DELAY 300
-#define MOUSEKEY_INTERVAL 16
-#define MOUSEKEY_MAX_SPEED 3
-#define MOUSEKEY_TIME_TO_MAX 60
-#define MK_C_OFFSET_0 4
-#define MK_C_INTERVAL_0 28
-#define MK_C_OFFSET_1 8
-#define MK_C_INTERVAL_1 16
-#define MK_C_OFFSET_2 20
-#define MK_C_INTERVAL_2 16
-
-#define MOUSEKEY_WHEEL_MAX_SPEED 4
-#define MOUSEKEY_WHEEL_TIME_TO_MAX 40
-
-#define MK_W_OFFSET_0 1
-#define MK_W_INTERVAL_0 120
-#define MK_W_OFFSET_1 1
-#define MK_W_INTERVAL_1 100
-#define MK_W_OFFSET_2 1
-#define MK_W_INTERVAL_2 60
-
-//#define STARTUP_RESET_EEPROM // EMERGENCY
-
diff --git a/keyboards/omkbd/ergodash/rev1/keymaps/yet-another-developer/keymap.c b/keyboards/omkbd/ergodash/rev1/keymaps/yet-another-developer/keymap.c
deleted file mode 100644
index 4a94ab4bb1..0000000000
--- a/keyboards/omkbd/ergodash/rev1/keymaps/yet-another-developer/keymap.c
+++ /dev/null
@@ -1,157 +0,0 @@
-#include QMK_KEYBOARD_H
-#include "yet-another-developer.h"
-
-#ifndef UNICODE_ENABLE
-# define UC(x) KC_NO
-#endif
-
-extern keymap_config_t keymap_config;
-
-#define EISU LALT(KC_GRV)
-
-#define LAYOUT_ergodash_pretty_wrapper(...) LAYOUT_ergodash_pretty(__VA_ARGS__)
-
- /* Keymap: BASE layer
- *
- * ,----------------------------------------------------. ,----------------------------------------------------.
- * | ESC | 1 | 2 | 3 | 4 | 5 | [ | | ] | 6 | 7 | 8 | 9 | 0 | Pscree |
- * |--------+--------+------+------+------+-------------| |------+------+------+------+------+--------+--------|
- * | ` | K01 | K02 | K03 | K04 | K05 | - | | = | K06 | K07 | K08 | K09 | K0A | \ |
- * |--------+--------+------+------+------+------|------| |------|------+------+------+------+--------+--------|
- * | Tab | K11 | K12 | K13 | K14 | K15 | { | | } | K16 | K17 | K18 | K19 | K1A | " |
- * |--------+--------+------+------+------+------|------' `------|------+------+------+------+--------+--------|
- * | LShift | K21 | K22 | K23 | K24 | K25 | | K26 | K27 | K28 | K29 | K2A | RShift |
- * |--------+--------+------+------+------+------' `------+------+------+------+--------+--------|
- * | LCtrl | GUI | Alt | Alt | | LEFT | DOWN | UP | RIGHT |
- * `-------------------------------' `-------------------------------'
- * ,--------------. ,--------------.
- * | Lower| | | | Raise |
- * ,-------| / | Del | | Bksp + / +-------.
- * |CMD/Spc| Space| | | | Enter |CMD/Spc|
- * `----------------------' `----------------------'
- */
-#define LAYOUT_ergodash_pretty_base( \
- K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, \
- K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, \
- K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A \
- ) \
- LAYOUT_ergodash_pretty_wrapper( \
- KC_ESC, ________________NUMBER_LEFT________________, KC_LBRC, KC_RBRC, ________________NUMBER_RIGHT_______________, KC_PSCR, \
- KC_GRV, K01, K02, K03, K04, K05, KC_MINS, KC_EQL, K06, K07, K08, K09, K0A, KC_BSLS, \
- KC_TAB, K11, K12, K13, K14, K15, KC_LCBR, KC_RCBR, K16, K17, K18, K19, K1A, KC_QUOT, \
- OS_LSFT, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, OS_RSFT, \
- KC_LCTL, KC_LGUI, KC_LALT, KC_LALT, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, \
- LT(_LOWER, KC_SPC), LT(_RAISE, KC_ENT), \
- OS_LGUI,LT(_LOWER, KC_SPC),KC_DEL, KC_BSPC, LT(_RAISE, KC_ENT), OS_RGUI \
- )
-
-#define LAYOUT_ergodash_pretty_base_wrapper(...) LAYOUT_ergodash_pretty_base(__VA_ARGS__)
-
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
- [_QWERTY] = LAYOUT_ergodash_pretty_base_wrapper(
- _________________QWERTY_L1_________________, _________________QWERTY_R1_________________,
- _________________QWERTY_L2_________________, _________________QWERTY_R2_________________,
- _________________QWERTY_L3_________________, _________________QWERTY_R3_________________
- ),
-
-/* Keymap: COLEMAK layer
- *
- * ,----------------------------------------------------. ,----------------------------------------------------.
- * | ESC | 1 | 2 | 3 | 4 | 5 | [ | | ] | 6 | 7 | 8 | 9 | 0 | - |
- * |--------+--------+------+------+------+-------------| |------+------+------+------+------+--------+--------|
- * | ` | Q | W | F | P | G | - | | = | J | L | U | Y | ; | \ |
- * |--------+--------+------+------+------+------|------| |------|------+------+------+------+--------+--------|
- * | Tab | A | R | S | T | D | Del | | Bksp | H | N | E | I | O | ' |
- * |--------+--------+------+------+------+------|------' `------|------+------+------+------+--------+--------|
- * | LShift | Z | X | C | V | B | | K | M | , < | . > | / | RShift |
- * |--------+--------+------+------+------+------' `------+------+------+------+--------+--------|
- * | Ctrl | GUI | Alt | EISU | | LEFT | DOWN | UP | RIGHT |
- * `-------------------------------' `-------------------------------'
- * ,--------------. ,--------------.
- * | Lower| | | | Raise |
- * ,-------| / | Del | | Bksp + / +-------.
- * |CMD/Spc| Space| | | | Enter |CMD/Spc|
- * `----------------------' `----------------------'
- */
-
-
-// If it accepts an argument (i.e, is a function), it doesn't need KC_.
-// Otherwise, it needs KC_*
- [_COLEMAK] = LAYOUT_ergodash_pretty_base_wrapper(
- _________________COLEMAK_L1________________, _________________COLEMAK_R1________________,
- _________________COLEMAK_L2________________, _________________COLEMAK_R2________________,
- _________________COLEMAK_L3________________, _________________COLEMAK_R3________________
- ),
-
- [_DVORAK] = LAYOUT_ergodash_pretty_base_wrapper(
- _________________DVORAK_L1_________________, _________________DVORAK_R1_________________,
- _________________DVORAK_L2_________________, _________________DVORAK_R2_________________,
- _________________DVORAK_L3_________________, _________________DVORAK_R3_________________
- ),
-
- [_WORKMAN] = LAYOUT_ergodash_pretty_base_wrapper(
- _________________WORKMAN_L1________________, _________________WORKMAN_R1________________,
- _________________WORKMAN_L2________________, _________________WORKMAN_R2________________,
- _________________WORKMAN_L3________________, _________________WORKMAN_R3________________
- ),
-
-#ifdef UNICODEMAP_ENABLE
- [_UNICODE] = LAYOUT_ergodash_pretty_base_wrapper(
- _______________UNICODE_L1__________________, _______________UNICODE_R1__________________,
- _______________UNICODE_L2__________________, _______________UNICODE_R2__________________,
- _______________UNICODE_L3__________________, _______________UNICODE_R3__________________
- ),
-#endif
-
- [_LOWER] = LAYOUT_ergodash_pretty_wrapper(
- KC_F11, _________________FUNC_LEFT_________________, KC_RST , KC_RST , _________________FUNC_RIGHT________________, KC_F12,
- KC_TILD, _________________LOWER_L1__________________, _______, _______, _________________LOWER_R1__________________, KC_PIPE,
- _______, _________________LOWER_L2__________________, _______, _______, _________________LOWER_R2__________________, KC_DQUO,
- _______, _________________LOWER_L3__________________, _________________LOWER_R3__________________, KC_PSCR,
- _______, _______, _______, _______, _______, _______, _______, KC_PAUS,
- _______, _______,
- _______, _______, _______, _______, _______, _______
- ),
-
- [_RAISE] = LAYOUT_ergodash_pretty_wrapper(
- KC_F12, _________________FUNC_LEFT_________________, KC_RST, KC_RST , _________________FUNC_RIGHT________________, KC_F11,
- KC_GRV, _________________RAISE_L1__________________, _______, _______, _________________RAISE_R1__________________, KC_BSLS,
- _______, _________________RAISE_L2__________________, _______, _______, _________________RAISE_R2__________________, KC_QUOT,
- _______, _________________RAISE_L3__________________, _________________RAISE_R3__________________, KC_PSCR,
- _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_PGUP, KC_END,
- _______, _______,
- _______, _______, _______, _______, _______, _______
- ),
-
- [_ADJUST] = LAYOUT_ergodash_pretty_wrapper(
- KC_MAKE, _______, _______, _______, _______, _______, _______, KC_NUKE, _______, _______, _______, _______, _______, KC_RST,
- VRSN, _________________ADJUST_L1_________________, _______, _______, _________________ADJUST_R1_________________, EE_CLR,
- _______, _________________ADJUST_L2_________________, _______, _______, _________________ADJUST_R2_________________, _______,
- _______, _________________ADJUST_L3_________________, _________________ADJUST_R3_________________, _______,
- _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______,
- _______, _______, _______, _______, _______, _______
- ),
-};
-
-#ifdef AUDIO_ENABLE
-float tone_qwerty[][2] = SONG(QWERTY_SOUND);
-#endif
-
-void persistent_default_layer_set(uint16_t default_layer) {
- eeconfig_update_default_layer(default_layer);
- default_layer_set(default_layer);
-}
-
-bool process_record_keymap(uint16_t keycode, keyrecord_t *record) {
- return true;
-}
-void matrix_init_keymap(void) {
-#ifdef STARTUP_RESET_EEPROM
- eeconfig_init();
-#endif
-}
-
-//
diff --git a/keyboards/omkbd/ergodash/rev1/keymaps/yet-another-developer/rules.mk b/keyboards/omkbd/ergodash/rev1/keymaps/yet-another-developer/rules.mk
deleted file mode 100644
index a7d4fcaac3..0000000000
--- a/keyboards/omkbd/ergodash/rev1/keymaps/yet-another-developer/rules.mk
+++ /dev/null
@@ -1,23 +0,0 @@
-BOOTMAGIC_ENABLE = no # Enable Bootmagic Lite
-
-# Device
-AUDIO_ENABLE = no
-
-RGBLIGHT_ENABLE = no
-BACKLIGHT_ENABLE = no
-INDICATOR_LIGHTS = no
-
-# QMK Features
-AUTO_SHIFT_ENABLE = no
-MOUSEKEY_ENABLE = no
-CONSOLE_ENABLE = no # Console for debug(+400)
-COMMAND_ENABLE = no # Commands for debug and configuration
-LEADER_ENABLE = yes # default is yes
-TAP_DANCE_ENABLE = no #(+1254)
-UNICODE_ENABLE = no #(+1134)
-UNICODEMAP_ENABLE = no
-NKRO_ENABLE = no
-MACROS_ENABLED = no
-
-# User Defined Features
-NO_SECRETS = no
diff --git a/keyboards/omkbd/ergodash/rev1/rev1.c b/keyboards/omkbd/ergodash/rev1/rev1.c
deleted file mode 100644
index 35a313f6fd..0000000000
--- a/keyboards/omkbd/ergodash/rev1/rev1.c
+++ /dev/null
@@ -1,32 +0,0 @@
-#include "quantum.h"
-
-#ifdef AUDIO_ENABLE
- float tone_startup[][2] = SONG(STARTUP_SOUND);
- float tone_goodbye[][2] = SONG(GOODBYE_SOUND);
-#endif
-
-void matrix_init_kb(void) {
-
- #ifdef AUDIO_ENABLE
- _delay_ms(20); // gets rid of tick
- PLAY_SONG(tone_startup);
- #endif
-
- // // green led on
- // DDRD |= (1<<5);
- // PORTD &= ~(1<<5);
-
- // // orange led on
- // DDRB |= (1<<0);
- // PORTB &= ~(1<<0);
-
- matrix_init_user();
-};
-
-void shutdown_user(void) {
- #ifdef AUDIO_ENABLE
- PLAY_SONG(tone_goodbye);
- _delay_ms(150);
- stop_all_notes();
- #endif
-}
diff --git a/keyboards/onekeyco/dango40/config.h b/keyboards/onekeyco/dango40/config.h
deleted file mode 100644
index b7488fcb75..0000000000
--- a/keyboards/onekeyco/dango40/config.h
+++ /dev/null
@@ -1,21 +0,0 @@
-/*
-Copyright 2021 Swiftrax <swiftrax@gmail.com>
-
-This program is free software: you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program. If not, see <http://www.gnu.org/licenses/>.
-*/
-
-#pragma once
-
-/*EEPROM for via*/
-#define DYNAMIC_KEYMAP_LAYER_COUNT 5 \ No newline at end of file
diff --git a/keyboards/onekeyco/dango40/info.json b/keyboards/onekeyco/dango40/info.json
index eba683dafc..c9087c630a 100644
--- a/keyboards/onekeyco/dango40/info.json
+++ b/keyboards/onekeyco/dango40/info.json
@@ -13,6 +13,9 @@
"rows": ["F4", "F1", "F0", "C6"]
},
"diode_direction": "COL2ROW",
+ "dynamic_keymap": {
+ "layer_count": 5
+ },
"encoder": {
"rotary": [
{"pin_a": "D2", "pin_b": "D1"}
diff --git a/keyboards/opendeck/32/rev1/config.h b/keyboards/opendeck/32/rev1/config.h
index a85a3db8b9..d5e824fdfb 100644
--- a/keyboards/opendeck/32/rev1/config.h
+++ b/keyboards/opendeck/32/rev1/config.h
@@ -16,8 +16,7 @@
#pragma once
// RGB matrix
-#define DRIVER_ADDR_1 0b1110100
-#define DRIVER_COUNT 1
+#define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND
#define RGB_MATRIX_LED_COUNT (4 * 8 * 3)
#define RGB_DISABLE_WHEN_USB_SUSPENDED
#define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_CYCLE_SPIRAL
diff --git a/keyboards/opendeck/32/rev1/rev1.c b/keyboards/opendeck/32/rev1/rev1.c
index 5d546afb29..0b062ecd38 100644
--- a/keyboards/opendeck/32/rev1/rev1.c
+++ b/keyboards/opendeck/32/rev1/rev1.c
@@ -17,7 +17,7 @@
#include "rev1.h"
#ifdef RGB_MATRIX_ENABLE
-const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = {
+const is31fl3731_led_t PROGMEM g_is31fl3731_leds[RGB_MATRIX_LED_COUNT] = {
/* Refer to IS31 manual for these locations
* driver
* | R location
diff --git a/keyboards/org60/keymaps/jarred/keymap.c b/keyboards/org60/keymaps/jarred/keymap.c
deleted file mode 100644
index 08f20a34c0..0000000000
--- a/keyboards/org60/keymaps/jarred/keymap.c
+++ /dev/null
@@ -1,25 +0,0 @@
-#include QMK_KEYBOARD_H
-
-#define _QW 0
-#define _NV 1
-
-// HHKB Layout
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
- [_QW] = LAYOUT(
- KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS, KC_GRV,
- 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_BSPC,
- MO(_NV), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, XXXXXXX, KC_ENT,
- KC_LSFT, XXXXXXX, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, XXXXXXX, KC_RSFT, KC_ENT,
- XXXXXXX, KC_LCTL, KC_LGUI, KC_SPC, XXXXXXX, KC_RALT, XXXXXXX, KC_RCTL, XXXXXXX),
-
- [_NV] = LAYOUT(
- KC_GRV , KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______,
- _______, _______, _______, _______, KC_DEL ,KC_BSPC,_______,KC_HOME,KC_UP ,KC_END , KC_INS , _______, _______, _______,
- _______, _______, _______, KC_LSFT,KC_LCTL, KC_ENT, _______,KC_LEFT,KC_DOWN,KC_RGHT, KC_DEL , KC_DEL , _______, _______,
- _______, _______, _______, _______, _______,_______,_______,_______,KC_PGUP,KC_PGDN, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, QK_BOOT, _______),
-
-};
-
-
diff --git a/keyboards/orthodox/keymaps/drashna/README.md b/keyboards/orthodox/keymaps/drashna/README.md
deleted file mode 100644
index 6c208d2c88..0000000000
--- a/keyboards/orthodox/keymaps/drashna/README.md
+++ /dev/null
@@ -1,24 +0,0 @@
-Overview
-========
-
-This is my personal Orthodox configuration, and my daily driver.
-
-Most of the code resides in my userspace, rather than here, as I have multiple keyboards.
-
-How to build
-------------
-make orthodox/rev1:drashna:teensy
-
-Layers
-------
-* QWERTY/DVORAK/COLEMAK/WORKMAN: basic layout, default set like the OLKB boards. Default is set and persists on power cycle.
-* RAISE: Contains function keys and unshifted symbols
-* LOWER: Contains function keys and shifted symbols
-* ADJUST: contains special codes (layout defaults, RGB codes, Audio codes, and volume control)
-
-All layers have RGB specific indicators, so you can see what layer you're on by the underglow.
-
-Orthodox Specific Code
-----------------------
-
-Shift, Control and Alt all light up a specific RGB LED for a certain color, based on it's status, adding a visual indicator of OSMs or regular mods are held down.
diff --git a/keyboards/orthodox/keymaps/drashna/config.h b/keyboards/orthodox/keymaps/drashna/config.h
deleted file mode 100644
index 502f364719..0000000000
--- a/keyboards/orthodox/keymaps/drashna/config.h
+++ /dev/null
@@ -1,80 +0,0 @@
-/*
-This is the c configuration file for the keymap
-
-Copyright 2012 Jun Wako <wakojun@gmail.com>
-Copyright 2015 Jack Humbert
-Copyright 2017 Art Ortenburger
-
-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 USE_I2C
-
-/* Select hand configuration */
-
-// #define MASTER_LEFT
-// #define MASTER_RIGHT
-#define EE_HANDS
-
-/* key combination for magic key command */
-#undef IS_COMMAND
-#define IS_COMMAND() (get_mods() == (MOD_BIT(KC_LSFT) | MOD_BIT(KC_LALT)))
-
-#ifdef RGBLIGHT_ENABLE
-# define WS2812_DI_PIN D3
-# define RGBLED_NUM 16 // Number of LEDs
-# define RGBLED_SPLIT \
- { 8, 8 }
-
-# define RGBLIGHT_HUE_STEP 12
-# define RGBLIGHT_SAT_STEP 12
-# define RGBLIGHT_VAL_STEP 12
-# define RGBLIGHT_EFFECT_KNIGHT_LENGTH 2
-# define RGBLIGHT_EFFECT_SNAKE_LENGTH 2
-#endif // RGBLIGHT_ENABLE
-
-#ifdef AUDIO_ENABLE
-# define AUDIO_PIN C6
-# ifdef RGBLIGHT_ENABLE
-# define NO_MUSIC_MODE
-# endif
-#endif // AUDIO_ENABLE
-
-#ifdef KEYBOARD_orthodox_rev1
-# undef PRODUCT
-# define PRODUCT "Drashna Hacked Orthodox Rev .1"
-#elif KEYBOARD_orthodox_rev3
-# undef PRODUCT
-# define PRODUCT "Drashna Hacked Orthodox Rev .3"
-#endif
-
-#define QMK_ESC_OUTPUT D7 // usually COL
-#ifdef KEYBOARD_orthodox_rev1
-# define QMK_ESC_INPUT D4 // usually ROW
-#else
-# define QMK_ESC_INPUT D2 // usually ROW
-#endif
-#define QMK_LED B0
-#define QMK_SPEAKER C6
-
-#define SHFT_LED1 5
-#define SHFT_LED2 10
-
-#define CTRL_LED1 6
-#define CTRL_LED2 9
-
-#define GUI_LED1 8
-#define ALT_LED1 7
diff --git a/keyboards/orthodox/keymaps/drashna/keymap.c b/keyboards/orthodox/keymaps/drashna/keymap.c
deleted file mode 100644
index a7c618826c..0000000000
--- a/keyboards/orthodox/keymaps/drashna/keymap.c
+++ /dev/null
@@ -1,70 +0,0 @@
-#include "drashna.h"
-
-/*
- * The `LAYOUT_orthodox_base` macro is a template to allow the use of identical
- * modifiers for the default layouts (eg QWERTY, Colemak, Dvorak, etc), so
- * that there is no need to set them up for each layout, and modify all of
- * them if I want to change them. This helps to keep consistency and ease
- * of use. K## is a placeholder to pass through the individual keycodes
- */
-// clang-format off
-#define LAYOUT_wrapper(...) LAYOUT(__VA_ARGS__)
-#define LAYOUT_orthodox_base( \
- K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, \
- K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, \
- K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A \
- ) \
- LAYOUT_wrapper( \
- KC_ESC, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, KC_BSPC, \
- LALT_T(KC_TAB), K11, K12, K13, K14, K15, OS_LALT, OS_LGUI, OS_RALT, RAISE, K16, K17, K18, K19, K1A, RALT_T(K1B), \
- KC_MLSF, CTL_T(K21), K22, K23, K24, K25, LOWER, KC_SPACE,KC_BSPC, KC_DEL, KC_ENT, RAISE, K26, K27, K28, K29, RCTL_T(K2A), KC_MRSF \
- )
-#define LAYOUT_base_wrapper(...) LAYOUT_orthodox_base(__VA_ARGS__)
-
-
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [_DEFAULT_LAYER_1] = LAYOUT_base_wrapper(
- _________________QWERTY_L1_________________, _________________QWERTY_R1_________________,
- _________________QWERTY_L2_________________, _________________QWERTY_R2_________________,
- _________________QWERTY_L3_________________, _________________QWERTY_R3_________________
- ),
-
- [_DEFAULT_LAYER_2] = LAYOUT_base_wrapper(
- ______________COLEMAK_MOD_DH_L1____________, ______________COLEMAK_MOD_DH_R1____________,
- ______________COLEMAK_MOD_DH_L2____________, ______________COLEMAK_MOD_DH_R2____________,
- ______________COLEMAK_MOD_DH_L3____________, ______________COLEMAK_MOD_DH_R3____________
- ),
- [_DEFAULT_LAYER_3] = LAYOUT_base_wrapper(
- _________________COLEMAK_L1________________, _________________COLEMAK_R1________________,
- _________________COLEMAK_L2________________, _________________COLEMAK_R2________________,
- _________________COLEMAK_L3________________, _________________COLEMAK_R3________________
- ),
-
- [_DEFAULT_LAYER_4] = LAYOUT_base_wrapper(
- _________________DVORAK_L1_________________, _________________DVORAK_R1_________________,
- _________________DVORAK_L2_________________, _________________DVORAK_R2_________________,
- _________________DVORAK_L3_________________, _________________DVORAK_R3_________________
- ),
-
-
- [_LOWER] = LAYOUT_wrapper(
- KC_TILD, _________________LOWER_L1__________________, _________________LOWER_R1__________________, KC_BSPC,
- KC_F11, _________________LOWER_L2__________________, _______, _______, _______, _______, _________________LOWER_R2__________________, KC_PIPE,
- KC_F12, _________________LOWER_L3__________________, _______, _______, _______, _______, _______, _______, _________________LOWER_R3__________________, _______
- ),
-
- [_RAISE] = LAYOUT_wrapper(
- KC_GRV, _________________RAISE_L1__________________, _________________RAISE_R1__________________, KC_BSPC,
- _______, _________________RAISE_L2__________________, _______, _______, _______, _______, _________________RAISE_R2__________________, KC_BSLS,
- _______, _________________RAISE_L3__________________, _______, _______, _______, _______, _______, _______, _________________RAISE_R3__________________, _______
- ),
-
- [_ADJUST] = LAYOUT_wrapper(
- QK_MAKE, _________________ADJUST_L1_________________, _________________ADJUST_R1_________________, QK_BOOT,
- VRSN, _________________ADJUST_L2_________________, _______, _______, _______, KC_NUKE, _________________ADJUST_R2_________________, EE_CLR,
- TG_MODS, _________________ADJUST_L3_________________, _______, _______, _______, _______, _______, _______, _________________ADJUST_R3_________________, KC_MPLY
- )
-
-};
-// clang-format on
diff --git a/keyboards/orthodox/keymaps/drashna/rules.mk b/keyboards/orthodox/keymaps/drashna/rules.mk
deleted file mode 100644
index 9637d3b395..0000000000
--- a/keyboards/orthodox/keymaps/drashna/rules.mk
+++ /dev/null
@@ -1,16 +0,0 @@
-BOOTMAGIC_ENABLE = no # Enable Bootmagic Lite
-MOUSEKEY_ENABLE = no # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
-COMMAND_ENABLE = no # Commands for debug and configuration
-TAP_DANCE_ENABLE = no
-RGBLIGHT_ENABLE = yes
-AUDIO_ENABLE = no
-NKRO_ENABLE = yes
-SPACE_CADET_ENABLE = no
-
-INDICATOR_LIGHTS = yes
-RGBLIGHT_STARTUP_ANIMATION = yes
-CUSTOM_UNICODE_ENABLE = no
-
-BOOTLOADER = qmk-dfu
diff --git a/keyboards/orthodox/keymaps/pdl/config.h b/keyboards/orthodox/keymaps/pdl/config.h
deleted file mode 100644
index ad9b6207b3..0000000000
--- a/keyboards/orthodox/keymaps/pdl/config.h
+++ /dev/null
@@ -1,29 +0,0 @@
-/*
-This is the c configuration file for the keymap
-
-Copyright 2012 Jun Wako <wakojun@gmail.com>
-Copyright 2015 Jack Humbert
-Copyright 2017 Art Ortenburger
-Copyright 2018 Daniel Perrett
-
-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
-
-/* Select hand configuration */
-
-// #define MASTER_LEFT
-// #define MASTER_RIGHT
-#define EE_HANDS
diff --git a/keyboards/orthodox/keymaps/pdl/keymap.c b/keyboards/orthodox/keymaps/pdl/keymap.c
deleted file mode 100644
index 42b9e7e485..0000000000
--- a/keyboards/orthodox/keymaps/pdl/keymap.c
+++ /dev/null
@@ -1,68 +0,0 @@
-/*
-This is the keymap for the keyboard
-
-Copyright 2012 Jun Wako <wakojun@gmail.com>
-Copyright 2015 Jack Humbert
-Copyright 2017 Art Ortenburger
-
-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 "pdl.h"
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [_QWERTY] = LAYOUT_wrapper(
- KC_TAB, _________________QWERTY_L1_________________, _________________QWERTY_R1_________________, KC_BSPC,
- MY_SESC, _________________QWERTY_L2_________________, KC_LALT, KC_LGUI, FUNCTN, MY_AMNU, _________________QWERTY_R2_________________, MY_SQUO,
- MY_CBSL, _________________QWERTY_L3_________________, NAVIGN, KC_SPC, NUMBRS, NUMBRS, MY_SSPC, NAVIGN, _________________QWERTY_R3_________________, MY_CENT
- ),
-
- [_PROXIM] = LAYOUT_wrapper(
- MY_SESC, _________________PROXIM_L1_________________, _________________PROXIM_R1_________________, KC_BSPC,
- KC_TAB, _________________PROXIM_L2_________________, KC_LALT, KC_LGUI, FUNCTN, MY_AMNU, _________________PROXIM_R2_________________, MY_SSCL,
- MY_CBSL, _________________PROXIM_L3_________________, NAVIGN, KC_SPC, NUMBRS, NUMBRS, MY_SSPC, NAVIGN, _________________PROXIM_R3_________________, MY_CENT
- ),
-
- [_NAVIGN] = LAYOUT_wrapper(
- _______, _________________NAVIGN_L1_________________, _______, _______, _______, _______, _______, _______,
- _______, _________________NAVIGN_L2_________________, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _________________NAVIGN_L3_________________, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
- ),
-
- [_PUNCTN] = LAYOUT_wrapper(
- _______, _______, _______, _______, _______, _______, _________________PUNCTN_R1_________________, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _________________PUNCTN_R2_________________, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _________________PUNCTN_R3_________________, _______
- ),
-
- [_NUMBRS] = LAYOUT_wrapper(
- _______, _________________NUMBRS_L1_________________, _______, _______, _______, _______, _______, _______,
- _______, _________________NUMBRS_L2_________________, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _________________NUMBRS_L3_________________, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
- ),
-
- [_CODING] = LAYOUT_wrapper(
- _______, _______, _______, _______, _______, _______, _________________CODING_R1_________________, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _________________CODING_R2_________________, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _________________CODING_R3_________________, _______
- ),
-
- [_FUNCTN] = LAYOUT_wrapper(
- _______, _________________FUNCTN_L1_________________, _________________FUNCTN_L1_________________, MY_CAD,
- _______, _________________FUNCTN_L2_________________, _______, _______, _______, _______, _________________FUNCTN_L2_________________, KC_PSCR,
- _______, _________________FUNCTN_L3_________________, _______, _______, _______, _______, _______, _______, _________________FUNCTN_L3_________________, _______
- )
-};
-
diff --git a/keyboards/orthodox/keymaps/pdl/rules.mk b/keyboards/orthodox/keymaps/pdl/rules.mk
deleted file mode 100644
index ae71cbf491..0000000000
--- a/keyboards/orthodox/keymaps/pdl/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-USER_NAME = pdl
diff --git a/keyboards/owlab/voice65/hotswap/config.h b/keyboards/owlab/voice65/hotswap/config.h
index 04bd741d77..8599c084d2 100644
--- a/keyboards/owlab/voice65/hotswap/config.h
+++ b/keyboards/owlab/voice65/hotswap/config.h
@@ -29,8 +29,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
# define RGB_MATRIX_LED_FLUSH_LIMIT 26
# define RGB_MATRIX_MAXIMUM_BRIGHTNESS 200
# define RGB_MATRIX_DEFAULT_VAL 128
-# define DRIVER_ADDR_1 0b0110000
-# define DRIVER_COUNT 1
+# define IS31FL3741_I2C_ADDRESS_1 IS31FL3741_I2C_ADDRESS_GND
# define RGB_MATRIX_LED_COUNT 67
// RGB Matrix Animation modes. Explicitly enabled
// For full list of effects, see:
diff --git a/keyboards/owlab/voice65/hotswap/hotswap.c b/keyboards/owlab/voice65/hotswap/hotswap.c
index 65c0ee7eed..b4c0c02c32 100644
--- a/keyboards/owlab/voice65/hotswap/hotswap.c
+++ b/keyboards/owlab/voice65/hotswap/hotswap.c
@@ -17,7 +17,7 @@
#include "quantum.h"
#ifdef RGB_MATRIX_ENABLE
-const is31_led g_is31_leds[RGB_MATRIX_LED_COUNT] = {
+const is31fl3741_led_t g_is31fl3741_leds[RGB_MATRIX_LED_COUNT] = {
{0, CS3_SW1, CS2_SW1, CS1_SW1}, /* RGB0-ESC ROW0*/
{0, CS6_SW1, CS5_SW1, CS4_SW1}, /* RGB1-1 */
{0, CS9_SW1, CS8_SW1, CS7_SW1}, /* RGB2-2 */
diff --git a/keyboards/owlab/voice65/soldered/config.h b/keyboards/owlab/voice65/soldered/config.h
index 66e412effb..9533e00a02 100644
--- a/keyboards/owlab/voice65/soldered/config.h
+++ b/keyboards/owlab/voice65/soldered/config.h
@@ -29,8 +29,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
# define RGB_MATRIX_LED_FLUSH_LIMIT 26
# define RGB_MATRIX_MAXIMUM_BRIGHTNESS 200
# define RGB_MATRIX_DEFAULT_VAL 128
-# define DRIVER_ADDR_1 0b0110000
-# define DRIVER_COUNT 1
+# define IS31FL3741_I2C_ADDRESS_1 IS31FL3741_I2C_ADDRESS_GND
# define RGB_MATRIX_LED_COUNT 71
// RGB Matrix Animation modes. Explicitly enabled
diff --git a/keyboards/owlab/voice65/soldered/soldered.c b/keyboards/owlab/voice65/soldered/soldered.c
index 1444b05864..301a5adc59 100644
--- a/keyboards/owlab/voice65/soldered/soldered.c
+++ b/keyboards/owlab/voice65/soldered/soldered.c
@@ -17,7 +17,7 @@
#include "quantum.h"
#ifdef RGB_MATRIX_ENABLE
-const is31_led g_is31_leds[RGB_MATRIX_LED_COUNT] = {
+const is31fl3741_led_t g_is31fl3741_leds[RGB_MATRIX_LED_COUNT] = {
{0, CS3_SW1, CS2_SW1, CS1_SW1}, /* RGB0-ESC ROW0*/
{0, CS6_SW1, CS5_SW1, CS4_SW1}, /* RGB1-1 */
{0, CS9_SW1, CS8_SW1, CS7_SW1}, /* RGB2-2 */
diff --git a/keyboards/pearlboards/pandora/config.h b/keyboards/pearlboards/pandora/config.h
index beaeec353d..7efef3364b 100644
--- a/keyboards/pearlboards/pandora/config.h
+++ b/keyboards/pearlboards/pandora/config.h
@@ -17,8 +17,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#pragma once
-#define DIP_SWITCH_PINS { B2, B5 }
-
/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
#define LOCKING_SUPPORT_ENABLE
diff --git a/keyboards/pearlboards/pandora/info.json b/keyboards/pearlboards/pandora/info.json
index e0a28788eb..7dbcdf6ff2 100644
--- a/keyboards/pearlboards/pandora/info.json
+++ b/keyboards/pearlboards/pandora/info.json
@@ -13,6 +13,9 @@
"rows": ["B4", "D7", "D6", "B3", "B0"]
},
"diode_direction": "COL2ROW",
+ "dip_switch": {
+ "pins": ["B2", "B5"]
+ },
"encoder": {
"rotary": [
{"pin_a": "F6", "pin_b": "F5", "resolution": 1}
diff --git a/keyboards/percent/canoe/keymaps/dhertz/keymap.c b/keyboards/percent/canoe/keymaps/dhertz/keymap.c
deleted file mode 100644
index bd948327d5..0000000000
--- a/keyboards/percent/canoe/keymaps/dhertz/keymap.c
+++ /dev/null
@@ -1,62 +0,0 @@
-#include QMK_KEYBOARD_H
-#include "dhertz.h"
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- /* Layer 0: Default Layer
- * ,---------------------------------------------------------------.
- * |Esc| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =| Backsp|Del|
- * |---------------------------------------------------------------|
- * |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]|Enter|Hom|
- * |------------------------------------------------------` |---|
- * |SrCtl | A| S| D| F| G| H| J| K| L| ;| '| \| |End|
- * |---------------------------------------------------------------|
- * |Shif| #| Z| X| C| V| B| N| M| ,| .| /|Shift |Up |PgD|
- * |---------------------------------------------------------------|
- * |NcCtl| Alt| CTab| LyrSpc | CGv| Alt|Lef|Dow|Rig|
- * `---------------------------------------------------------------'
- */
- [0] = LAYOUT_iso(
- KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL,
- 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_HOME,
- SRCH_CTL, 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_END,
- KC_LSFT, HSH_TLD, 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_PGDN,
- NC_CTL, KC_LALT, CMD_TAB_CMD, LYR_SPC, CMD_GRV_CMD, KC_RALT, KC_LEFT, KC_DOWN, KC_RIGHT
- ),
- /* Layer 1: Special
- * ,---------------------------------------------------------------.
- * | §| F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12| |Iso|
- * |---------------------------------------------------------------|
- * | | | | | | | | | | | | | | | |
- * |------------------------------------------------------` |---|
- * | | | | | | | | | |CSL| | | `| | |
- * |---------------------------------------------------------------|
- * | | `| | |CAC| | | | | | | | |PgU| |
- * |---------------------------------------------------------------|
- * | | | | | | |Hom|PgD|End|
- * `---------------------------------------------------------------'
- */
- [1] = LAYOUT_iso(
- KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F10, KC_F11, KC_TRNS, ISO_COUNTRY_CODE,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, CMD_SFT_L, KC_TRNS, KC_TRNS, KC_NUBS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_NUBS, KC_TRNS, KC_TRNS, CMD_ALT_C, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PGUP, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_PGDN, KC_END
- ),
-};
-
-void keyboard_post_init_user(void) {
- rgblight_enable_noeeprom();
- rgblight_sethsv(HSV_TEAL);
-}
-
-layer_state_t layer_state_set_keymap(layer_state_t state) {
- switch (get_highest_layer(state)) {
- case 1:
- rgblight_sethsv_noeeprom(HSV_MAGENTA);
- break;
- default: // for any other layers, or the default layer
- rgblight_sethsv_noeeprom(HSV_CYAN);
- break;
- }
- return state;
-}
diff --git a/keyboards/phage_studio/pila87/keymaps/horrortroll/keymap.c b/keyboards/phage_studio/pila87/keymaps/horrortroll/keymap.c
deleted file mode 100644
index 28de8ad449..0000000000
--- a/keyboards/phage_studio/pila87/keymaps/horrortroll/keymap.c
+++ /dev/null
@@ -1,115 +0,0 @@
-/* Copyright 2022 HorrorTroll <https://github.com/HorrorTroll>
- *
- * 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 "horrortroll.h"
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
-/*
- ┌───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┐
- │Esc│ │F1 │F2 │F3 │F4 │ │F5 │F6 │F7 │F8 │ │F9 │F10│F11│F12│ │PSc│Scr│Pse│
- └───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┘
- ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ ┌───┬───┬───┐
- │ ` │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │ Backsp│ │Ins│Hom│PgU│
- ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ ├───┼───┼───┤
- │ Tab │ q │ w │ e │ r │ t │ y │ u │ i │ o │ p │ [ │ ] │ \ │ │Del│End│PgD│
- ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ └───┴───┴───┘
- │ Caps │ a │ s │ d │ f │ g │ h │ j │ k │ l │ ; │ ' │ Enter │
- ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────────┤ ┌───┐
- │ LShift │ z │ x │ c │ v │ b │ n │ m │ , │ . │ / │ RShift │ │ ↑ │
- ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤ ┌───┼───┼───┐
- │LCrl│GUI │LAlt│ Space │RAlt│ Fn │ App│RCrl│ │ ← │ ↓ │ → │
- └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ └───┴───┴───┘
- ┌───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┐
- │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
- └───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┘
- ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ ┌───┬───┬───┐
- │ ~ │ ! │ @ │ # │ $ │ % │ ^ │ & │ * │ ( │ ) │ _ │ + │ │ │ │ │ │
- ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ ├───┼───┼───┤
- │ │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ { │ } │ | │ │ │ │ │
- ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ └───┴───┴───┘
- │ Caps │ A │ S │ D │ F │ G │ H │ J │ K │ L │ : │ " │ │
- ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────────┤ ┌───┐
- │ LShift │ Z │ X │ C │ V │ B │ N │ M │ < │ > │ ? │ RShift │ │ │
- ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤ ┌───┼───┼───┐
- │ │ │ │ │ │ │ │ │ │ │ │ │
- └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ └───┴───┴───┘
-*/
- /* Row: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 */
- [_BASE] = LAYOUT_tkl_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_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,
- KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
- KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP,
- KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(_FN), KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
- ),
-
-/*
- ┌───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┐
- │Rst│ │MeP│VoD│VoU│Mut│ │Stp│Prv│Ply│Nxt│ │Mai│Hom│Cal│Sch│ │Rod│Mod│Tog│
- └───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┘
- ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ ┌───┬───┬───┐
- │ │ │ │ │ │ │ │ │ │ │ │Spd│Spi│ │ │C_E│ │ │
- ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ ├───┼───┼───┤
- │ │1Hd│1Hi│1Sd│1Si│1Vd│1Vi│ │ │ │ │ │ │ │ │ │ │Wve│
- ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ └───┴───┴───┘
- │ │2Hd│2Hi│2Sd│2Si│2Vd│2Vi│ │ │ │ │ │ │
- ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────────┤ ┌───┐
- │ │ │Pre│Ref│Flp│ │ │ │ │ │ │ │ │Vai│
- ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤ ┌───┼───┼───┐
- │ │ │ │ │ │ Fn │ │ │ │Hud│Vad│Hui│
- └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ └───┴───┴───┘
-*/
- /* Row: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 */
- [_FN] = LAYOUT_tkl_ansi(
- QK_BOOT, KC_MSEL, KC_VOLD, KC_VOLU, KC_MUTE, KC_MSTP, KC_MPRV, KC_MPLY, KC_MNXT, KC_MAIL, KC_WHOM, KC_CALC, KC_WSCH, RGB_RMOD, RGB_MOD, RGB_TOG,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_SPD, RGB_SPI, _______, RGB_C_E, _______, _______,
- _______, G1_HUD, G1_HUI, G1_SAD, G1_SAI, G1_VAD, G1_VAI, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, G2_HUD, G2_HUI, G2_SAD, G2_SAI, G2_VAD, G2_VAI, _______, _______, _______, _______, _______, _______,
- _______, G_PRE, REF_G, G_FLIP, _______, _______, _______, _______, _______, _______, _______, _______, RGB_VAI,
- _______, _______, _______, _______, _______, _______, _______, _______, RGB_HUD, RGB_VAD, RGB_HUI
- ),
-};
-
-#ifdef RGB_MATRIX_ENABLE
-
-#include <string.h>
-#include <math.h>
-#include <lib/lib8tion/lib8tion.h>
-
-bool rgb_matrix_indicators_user(void) {
- HSV hsv = rgb_matrix_config.hsv;
- uint8_t time = scale16by8(g_rgb_timer, qadd8(32, 1));
- hsv.h = time;
- RGB rgb = hsv_to_rgb(hsv);
-
- if (host_keyboard_led_state().caps_lock) {
- rgb_matrix_set_color(40, rgb.r, rgb.g, rgb.b);
- } else if (!(rgb_matrix_get_flags() & LED_FLAG_INDICATOR)) {
- rgb_matrix_set_color(40, 0, 0, 0);
- }
-
- if (host_keyboard_led_state().scroll_lock) {
- rgb_matrix_set_color(89, rgb.r, rgb.g, rgb.b);
- } else if (!(rgb_matrix_get_flags() & LED_FLAG_INDICATOR)) {
- rgb_matrix_set_color(89, 0, 0, 0);
- }
- return false;
-}
-#endif
diff --git a/keyboards/phage_studio/pila87/rules.mk b/keyboards/phage_studio/pila87/rules.mk
index cd96ec2c2c..25fb7ed8c0 100644
--- a/keyboards/phage_studio/pila87/rules.mk
+++ b/keyboards/phage_studio/pila87/rules.mk
@@ -16,7 +16,3 @@ AUDIO_ENABLE = no # Audio output
# RGB Matrix enabled
RGB_MATRIX_ENABLE = yes
-
-# Wear-levelling driver
-EEPROM_DRIVER = wear_leveling
-WEAR_LEVELING_DRIVER = embedded_flash
diff --git a/keyboards/phentech/rpk_001/config.h b/keyboards/phentech/rpk_001/config.h
index 05391a21ed..baa207f065 100644
--- a/keyboards/phentech/rpk_001/config.h
+++ b/keyboards/phentech/rpk_001/config.h
@@ -6,7 +6,6 @@
/* RGB Config */
#define DRIVER_1_CS B6
#define DRIVER_1_EN B7
-#define DRIVER_COUNT 1
#define RGB_MATRIX_LED_COUNT 67
/* SPI Config */
@@ -17,7 +16,6 @@
/* SPI Flash */
#define EXTERNAL_FLASH_SPI_SLAVE_SELECT_PIN C12
-#define WEAR_LEVELING_BACKING_SIZE (4 * 1024)
/* RGB Matrix */
#define RGB_DISABLE_WHEN_USB_SUSPENDED
diff --git a/keyboards/phentech/rpk_001/info.json b/keyboards/phentech/rpk_001/info.json
index 3d89d012ee..d047c36456 100644
--- a/keyboards/phentech/rpk_001/info.json
+++ b/keyboards/phentech/rpk_001/info.json
@@ -13,6 +13,13 @@
"suspend_wakeup_delay": 1000
},
"diode_direction": "ROW2COL",
+ "eeprom": {
+ "driver": "wear_leveling",
+ "wear_leveling": {
+ "driver": "spi_flash",
+ "backing_size": 4096
+ }
+ },
"features": {
"nkro": true,
"encoder": true,
diff --git a/keyboards/phentech/rpk_001/rules.mk b/keyboards/phentech/rpk_001/rules.mk
index 002458405e..6e7633bfe0 100644
--- a/keyboards/phentech/rpk_001/rules.mk
+++ b/keyboards/phentech/rpk_001/rules.mk
@@ -1 +1 @@
-WEAR_LEVELING_DRIVER = spi_flash
+# This file intentionally left blank
diff --git a/keyboards/phoenix/config.h b/keyboards/phoenix/config.h
index 76ac0edf2c..9241950731 100644
--- a/keyboards/phoenix/config.h
+++ b/keyboards/phoenix/config.h
@@ -26,7 +26,6 @@
/* Locking resynchronize hack */
#define LOCKING_RESYNC_ENABLE
-#define HAL_USE_SERIAL TRUE
#define SPLIT_HAND_PIN B9
#define SERIAL_USART_DRIVER SD1
#define SERIAL_USART_TX_PAL_MODE 7
diff --git a/keyboards/phoenix/halconf.h b/keyboards/phoenix/halconf.h
index 2527d38940..95bd6c565f 100644
--- a/keyboards/phoenix/halconf.h
+++ b/keyboards/phoenix/halconf.h
@@ -21,6 +21,8 @@
#pragma once
+#define HAL_USE_SERIAL TRUE
+
#define SERIAL_USB_BUFFERS_SIZE 256
#include_next <halconf.h>
diff --git a/keyboards/pinky/3/keymaps/ninjonas/README.md b/keyboards/pinky/3/keymaps/ninjonas/README.md
deleted file mode 100644
index 7059d51b6d..0000000000
--- a/keyboards/pinky/3/keymaps/ninjonas/README.md
+++ /dev/null
@@ -1,113 +0,0 @@
-# ninjonas Keymap for [Pinky3](https://github.com/tamanishi/Pinky3)
-
-## Keymap
-This keymap is designed based off my typing habits and is subject to change. Information about custom user macros and tap dances can be found [here](../../../../../users/ninjonas).
-
-More information about the Pinky3 keyboard can be found [here](https://github.com/tamanishi/Pinky3)
-
-### QWERTY
-```c
-/*
-,---------------------------------------------------------------------. ,---------------------------------------------------------------------.
-| Tab| Q| W| E| R| T| Play| | Mute| Y| U| I| O| P| \|
-|---------+---------+---------+---------+---------+---------+---------| |---------+---------+---------+---------+---------+---------+---------|
-| Esc/Caps| A| S| D| F| G| [| | ]| H| J| K| L| ;| '|
-|---------+---------+---------+---------+---------+---------+---------| |---------+---------+---------+---------+---------+---------+---------|
-| Shift| Z| X| C| V| B| Spc/RAI| | Ent/LOW| N| M| ,| .| /| =|
-`---------+---------+---------+---------+---------+---------+---------| |---------+---------+---------+---------+---------+---------+---------'
- | ALT| Cmd| CTRL| KC_LAPP| | KC_RAPP| BckSpace| Del| LOWER|
- `---------------------------------------' `---------------------------------------'
-*/
-```
-
-### DVORAK
-```c
-/*
-,---------------------------------------------------------------------. ,---------------------------------------------------------------------.
-| Tab| '| ,| .| P| Y| Play| | Mute| F| G| C| R| L| \|
-|---------+---------+---------+---------+---------+---------+---------| |---------+---------+---------+---------+---------+---------+---------|
-| Esc/Caps| A| O| E| U| I| [| | ]| D| H| T| N| S| /|
-|---------+---------+---------+---------+---------+---------+---------| |---------+---------+---------+---------+---------+---------+---------|
-| Shift| ;| Q| J| K| X| Spc/RAI| | Ent/LOW| B| M| W| V| Z| =|
-`---------+---------+---------+---------+---------+---------+---------| |---------+---------+---------+---------+---------+---------+---------'
- | ALT| Cmd| CTRL| KC_LAPP| | KC_RAPP| BckSpace| Del| LOWER|
- `---------------------------------------' `---------------------------------------'
-*/
-```
-
-### COLEMAK
-```c
-/*
-,---------------------------------------------------------------------. ,---------------------------------------------------------------------.
-| Tab| Q| W| F| P| G| Play| | Mute| J| L| U| Y| ;| \|
-|---------+---------+---------+---------+---------+---------+---------| |---------+---------+---------+---------+---------+---------+---------|
-| Esc/Caps| A| R| S| T| D| [| | ]| H| N| E| I| O| '|
-|---------+---------+---------+---------+---------+---------+---------| |---------+---------+---------+---------+---------+---------+---------|
-| Shift| Z| X| C| V| B| Spc/RAI| | Ent/LOW| K| M| ,| .| /| =|
-`---------+---------+---------+---------+---------+---------+---------| |---------+---------+---------+---------+---------+---------+---------'
- | ALT| Cmd| CTRL| KC_LAPP| | KC_RAPP| BckSpace| Del| LOWER|
- `---------------------------------------' `---------------------------------------'
-*/
-```
-
-### LOWER
-```c
-/*
-,---------------------------------------------------------------------. ,---------------------------------------------------------------------.
-| | | | BriUp| Play| Mute| K_CSCN| | | PgUp| Home| Up| End| | K_MDSH|
-|---------+---------+---------+---------+---------+---------+---------| |---------+---------+---------+---------+---------+---------+---------|
-| | | | BriDn| Next| VolUp| | | | PgDn| Left| Down| Right| K_LOCK| |
-|---------+---------+---------+---------+---------+---------+---------| |---------+---------+---------+---------+---------+---------+---------|
-| M_SHFT| | | | Prev| VolDn| | | | | | | | | M_PYNV|
-`---------+---------+---------+---------+---------+---------+---------| |---------+---------+---------+---------+---------+---------+---------'
- | | | | | | | | M_CODE| |
- `---------------------------------------' `---------------------------------------'
-*/
-```
-
-### RAISE
-```c
-/*
-,---------------------------------------------------------------------. ,---------------------------------------------------------------------.
-| `| 1| 2| 3| 4| 5| | | | 6| 7| 8| 9| 0| -|
-|---------+---------+---------+---------+---------+---------+---------| |---------+---------+---------+---------+---------+---------+---------|
-| ~| !| @| #| $| %| | | | ^| &| *| (| )| _|
-|---------+---------+---------+---------+---------+---------+---------| |---------+---------+---------+---------+---------+---------+---------|
-| F11| F2| F3| F4| F4| F5| | | | F6| F7| F8| F9| F10| F12|
-`---------+---------+---------+---------+---------+---------+---------| |---------+---------+---------+---------+---------+---------+---------'
- | | | | | | | | | |
- `---------------------------------------' `---------------------------------------'
-*/
-```
-
-### ADJUST
-```c
-/*
-,---------------------------------------------------------------------. ,---------------------------------------------------------------------.
-| M_MAKE| EE_CLR | | | | | | | | | | | COLEMAK| DVORAK| QWERTY|
-|---------+---------+---------+---------+---------+---------+---------| |---------+---------+---------+---------+---------+---------+---------|
-| M_VRSN| | | | | | | | | | | | | | |
-|---------+---------+---------+---------+---------+---------+---------| |---------+---------+---------+---------+---------+---------+---------|
-| M_FLSH| | | | | | | | | | | | | | |
-`---------+---------+---------+---------+---------+---------+---------| |---------+---------+---------+---------+---------+---------+---------'
- | | | | | | | | | |
- `---------------------------------------' `---------------------------------------'
-*/
-```
-
-<!--
-### TEMPLATE
-```c
-/*
-,---------------------------------------------------------------------. ,---------------------------------------------------------------------.
-| | | | | | | | | | | | | | | |
-|---------+---------+---------+---------+---------+---------+---------| |---------+---------+---------+---------+---------+---------+---------|
-| | | | | | | | | | | | | | | |
-|---------+---------+---------+---------+---------+---------+---------| |---------+---------+---------+---------+---------+---------+---------|
-| | | | | | | | | | | | | | | |
-`---------+---------+---------+---------+---------+---------+---------| |---------+---------+---------+---------+---------+---------+---------'
- | | | | | | | | | |
- `---------------------------------------' `---------------------------------------'
-*/
-```
---> \ No newline at end of file
diff --git a/keyboards/pinky/3/keymaps/ninjonas/config.h b/keyboards/pinky/3/keymaps/ninjonas/config.h
deleted file mode 100644
index 3671c13a38..0000000000
--- a/keyboards/pinky/3/keymaps/ninjonas/config.h
+++ /dev/null
@@ -1,29 +0,0 @@
-/* Copyright 2018 'Masayuki Sunahara'
- *
- * 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 USE_MATRIX_I2C
-
-/* Select hand configuration */
-
-#define MASTER_LEFT
-// #define MASTER_RIGHT
-// #define EE_HANDS
-
-#define QUICK_TAP_TERM 0
-#define TAPPING_TERM 200
-#define RETRO_TAPPPING
diff --git a/keyboards/pinky/3/keymaps/ninjonas/keymap.c b/keyboards/pinky/3/keymaps/ninjonas/keymap.c
deleted file mode 100644
index 8aac3541fe..0000000000
--- a/keyboards/pinky/3/keymaps/ninjonas/keymap.c
+++ /dev/null
@@ -1,111 +0,0 @@
-/* Copyright 2019 @ninjonas
- *
- * 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 "ninjonas.h"
-
-// Each layer gets a name for readability, which is then used in the keymap matrix below.
-// The underscores don't mean anything - you can have a layer called STUFF or any other name.
-// Layer names don't all need to be of the same length, obviously, and you can also skip them
-// entirely and just use numbers.
-
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [_QWERTY] = LAYOUT_wrapper(
- //,---------------------------------------------------------------------. ,---------------------------------------------------------------------.
- _____________________QWERTY_L1______________________, KC_MPLY, KC_MUTE, _____________________QWERTY_R1______________________,
- //|---------+---------+---------+---------+---------+---------+---------| |---------+---------+---------+---------+---------+---------+---------|
- _____________________QWERTY_L2______________________, T_LBRC, T_RBRC, _____________________QWERTY_R2______________________,
- //|---------+---------+---------+---------+---------+---------+---------| |---------+---------+---------+---------+---------+---------+---------|
- _____________________QWERTY_L3______________________, LT_RAI, LT_LOW, _____________________QWERTY_R3______________________,
- //|---------+---------+---------+---------+---------+---------+---------| |---------+---------+---------+---------+---------+---------+---------|
- ________MOD_LEFT_________, XXXXXXX, XXXXXXX, ________MOD_RIGHT________
- //`---------------------------------------' `---------------------------------------'
- ),
-
- [_DVORAK] = LAYOUT_wrapper(
- //,---------------------------------------------------------------------. ,---------------------------------------------------------------------.
- _____________________DVORAK_L1______________________, KC_MPLY, KC_MUTE, _____________________DVORAK_R1______________________,
- //|---------+---------+---------+---------+---------+---------+---------| |---------+---------+---------+---------+---------+---------+---------|
- _____________________DVORAK_L2______________________, T_LBRC, T_RBRC, _____________________DVORAK_R2______________________,
- //|---------+---------+---------+---------+---------+---------+---------| |---------+---------+---------+---------+---------+---------+---------|
- _____________________DVORAK_L3______________________, LT_RAI, LT_LOW, _____________________DVORAK_R3______________________,
- //|---------+---------+---------+---------+---------+---------+---------| |---------+---------+---------+---------+---------+---------+---------|
- ________MOD_LEFT_________, XXXXXXX, XXXXXXX, ________MOD_RIGHT________
- //`---------------------------------------' `---------------------------------------'
- ),
-
- [_COLEMAK] = LAYOUT_wrapper(
- //,---------------------------------------------------------------------. ,---------------------------------------------------------------------.
- _____________________COLEMAK_L1_____________________, KC_MPLY, KC_MUTE, _____________________COLEMAK_R1_____________________,
- //|---------+---------+---------+---------+---------+---------+---------| |---------+---------+---------+---------+---------+---------+---------|
- _____________________COLEMAK_L2_____________________, T_LBRC, T_RBRC, _____________________COLEMAK_R2_____________________,
- //|---------+---------+---------+---------+---------+---------+---------| |---------+---------+---------+---------+---------+---------+---------|
- _____________________COLEMAK_L3_____________________, LT_RAI, LT_LOW, _____________________COLEMAK_R3_____________________,
- //|---------+---------+---------+---------+---------+---------+---------| |---------+---------+---------+---------+---------+---------+---------|
- ________MOD_LEFT_________, XXXXXXX, XXXXXXX, ________MOD_RIGHT________
- //`---------------------------------------' `---------------------------------------'
- ),
-
- [_LOWER] = LAYOUT_wrapper(
- //,---------------------------------------------------------------------. ,---------------------------------------------------------------------.
- _____________________LOWER_L1_______________________, K_CSCN, XXXXXXX, _____________________LOWER_R1_______________________,
- //|---------+---------+---------+---------+---------+---------+---------| |---------+---------+---------+---------+---------+---------+---------|
- _____________________LOWER_L2_______________________, XXXXXXX, XXXXXXX, _____________________LOWER_R2_______________________,
- //|---------+---------+---------+---------+---------+---------+---------| |---------+---------+---------+---------+---------+---------+---------|
- _____________________LOWER_L3_______________________, _______, _______, _____________________LOWER_R3_______________________,
- //|---------+---------+---------+---------+---------+---------+---------| |---------+---------+---------+---------+---------+---------+---------|
- __________________________________, _______, _______, M_CODE, _______
- //`---------------------------------------' `---------------------------------------'
- ),
-
- [_RAISE] = LAYOUT_wrapper(
- //,---------------------------------------------------------------------. ,---------------------------------------------------------------------.
- _____________________NUM_LEFT_______________________, XXXXXXX, XXXXXXX, _____________________NUM_RIGHT______________________,
- //|---------+---------+---------+---------+---------+---------+---------| |---------+---------+---------+---------+---------+---------+---------|
- _____________________SYM_LEFT_______________________, XXXXXXX, XXXXXXX, _____________________SYM_RIGHT______________________,
- //|---------+---------+---------+---------+---------+---------+---------| |---------+---------+---------+---------+---------+---------+---------|
- _____________________FUNC_LEFT______________________, _______, _______, _____________________FUNC_RIGHT_____________________,
- //|---------+---------+---------+---------+---------+---------+---------| |---------+---------+---------+---------+---------+---------+---------|
- __________________________________, __________________________________
- //`---------------------------------------' `---------------------------------------'
- ),
-
- [_ADJUST] = LAYOUT_wrapper(
- //,---------------------------------------------------------------------. ,---------------------------------------------------------------------.
- _____________________ADJUST_L1______________________, XXXXXXX, XXXXXXX, _____________________ADJUST_R1______________________,
- //|---------+---------+---------+---------+---------+---------+---------| |---------+---------+---------+---------+---------+---------+---------|
- _____________________ADJUST_L2______________________, XXXXXXX, XXXXXXX, _____________________ADJUST_R2______________________,
- //|---------+---------+---------+---------+---------+---------+---------| |---------+---------+---------+---------+---------+---------+---------|
- _____________________ADJUST_L3______________________, _______, _______, _____________________ADJUST_R3______________________,
- //|---------+---------+---------+---------+---------+---------+---------| |---------+---------+---------+---------+---------+---------+---------|
- __________________________________, __________________________________
- //`---------------------------------------' `---------------------------------------'
- ),
-
- /*
- [_TEMPLATE] = LAYOUT(
- //,---------------------------------------------------------------------. ,---------------------------------------------------------------------.
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- //|---------+---------+---------+---------+---------+---------+---------| |---------+---------+---------+---------+---------+---------+---------|
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- //|---------+---------+---------+---------+---------+---------+---------| |---------+---------+---------+---------+---------+---------+---------|
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- //|---------+---------+---------+---------+---------+---------+---------| |---------+---------+---------+---------+---------+---------+---------|
- _______, _______, _______, _______, _______, _______, _______, _______
- //`---------------------------------------' `---------------------------------------'
- )
- */
-}; \ No newline at end of file
diff --git a/keyboards/pinky/3/keymaps/ninjonas/rules.mk b/keyboards/pinky/3/keymaps/ninjonas/rules.mk
deleted file mode 100644
index 8d32e22486..0000000000
--- a/keyboards/pinky/3/keymaps/ninjonas/rules.mk
+++ /dev/null
@@ -1,2 +0,0 @@
-MOUSEKEY_ENABLE = no
-LTO_ENABLE = yes
diff --git a/keyboards/planck/ez/config.h b/keyboards/planck/ez/config.h
index 7cfc65d509..93d0823714 100644
--- a/keyboards/planck/ez/config.h
+++ b/keyboards/planck/ez/config.h
@@ -50,9 +50,8 @@
//#define WS2812_DMA_CHANNEL 7 // DMA channel for TIMx_UP
//#define WS2812_EXTERNAL_PULLUP
-#define DRIVER_ADDR_1 0b1010000
+#define IS31FL3737_I2C_ADDRESS_1 IS31FL3737_I2C_ADDRESS_GND
-#define DRIVER_COUNT 1
#define RGB_MATRIX_LED_COUNT 47
#define RGB_MATRIX_KEYPRESSES
diff --git a/keyboards/planck/ez/ez.c b/keyboards/planck/ez/ez.c
index e6bd217520..dfadb820ae 100644
--- a/keyboards/planck/ez/ez.c
+++ b/keyboards/planck/ez/ez.c
@@ -21,7 +21,7 @@
keyboard_config_t keyboard_config;
#ifdef RGB_MATRIX_ENABLE
-const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = {
+const is31fl3737_led_t PROGMEM g_is31fl3737_leds[RGB_MATRIX_LED_COUNT] = {
/* Refer to IS31 manual for these locations
* driver
* | R location
diff --git a/keyboards/planck/keymaps/ajp10304/readme.md b/keyboards/planck/keymaps/ajp10304/readme.md
deleted file mode 100644
index 4b7a54bb54..0000000000
--- a/keyboards/planck/keymaps/ajp10304/readme.md
+++ /dev/null
@@ -1,126 +0,0 @@
-# AJP10304 Custom Planck Layout
-# Also available for the Shark, Quark, JJ40 and Atreus50
-
-**Note:** In the tables below where there are two characters on a key,
-the second is the output when shift is applied.
-
-**Note:** The below tables assume a UK layout.
-
-#### Flashing
-Refer to the README.md of the keyboard you want to flash.
-
-##### Main Qwerty Layer
-
-* Tab: when held, operates as shift.
-* Enter: when held, operates as shift.
-* MENU: perform right-click
-
-| | | | | | | | | | | | |
-| ---- |:----:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| ----:|
-| Esc | Q | W | E | R | T | Y | U | I | O | P | Bksp |
-| Tab | A | S | D | F | G | H | J | K | L | ;: | Enter|
-| Shft | Z | X | C | V | B | N | M | ,< | .> | /? | Shft |
-| Fn | Ctrl | Alt | GUI |Lower | Bksp |Space |Raise | Shift| MENU | Ctrl | Fn2 |
-
-##### Main Colemak-DHm Layer
-
-| | | | | | | | | | | | |
-| ---- |:----:| :---:|:---:|:-----:|:----:|:-----:|:-----:|:-----:|:----:|:----:| ----:|
-| Esc | Q | W | F | P | B | J | L | U | Y | ;: | Bksp |
-| Tab | A | R | S | T | G | M | N | E | I | O | Enter|
-| Shft | Z | X | C | D | V | K | H | ,< | .> | /? | Shft |
-| Fn | Ctrl | Alt | GUI | Lower | Bksp | Space | Raise | Shift | MENU | Ctrl | Fn2 |
-
-##### Function Layer
-Activated when `fn` held in the above `qwerty` layer.
-
-| | | | | | | | | | | | |
-| :---: |:----:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:|
-| F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 |
-| 1! | 2" | 3£ | 4$ | 5% | 6^ | 7& | 8* | 9( | 0) | ~ |INSERT|
-| Shift | \| | `¬ | #~ | * | -_ | =+ | \| | [{ | ]} | '@ |Shift |
-| Fn | Ctrl | Alt | GUI |Lower | Bksp |Space |Mouse | MENU | Alt | Ctrl | Fn2 |
-
-##### Lower Layer
-Activated when `Lower` is held in the above `qwerty` layer.
-
-* Numbers are along the top row, their shifted counterparts are on row 2.
-* WrdBks: `backspace` with `ctrl` applied. I.e. delete a word.
-* WrdDel: `delete` with `ctrl` applied. I.e. forward delete a word.
-
-| | | | | | | | | | | | |
-| :---: |:----:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:|
-| 1! | 2" | 3£ | 4$ | 5% | 6^ | 7& | 8* | 9( | 0) | DEL | Bksp |
-| ! | " | £ | $ | % | ^ | & | * | ( | ) |WrdDel|WrdBks|
-| Shift | \| | `¬ | #~ | '@ | -_ | =+ | #~ | [{ | ]} | '@ |Shift |
-| | | | |Lower | Del |Space | | Next | Vol- | Vol+ | Play |
-
-##### Raise Layer
-Activated when `Raise` is held in the above `qwerty` layer.
-
-* Preferred layer for typing brackets.
-* Allows for cursor navigation to be used solely with the right hand.
-* WRDSEL: Select the word where the cursor is.
-* |< and >|: Apply `ctrl` to `left` and `right` respectively for word jumping.
-
-| | | | | | | | | | | | |
-| :---: |:----:| :---:| :---:| :---:| :---:| :---: | :---:| :---:| :---:| :---: | :---:|
-| ` | |WRDSEL| [ | ] | | | PGUP | HOME |PGDOWN| |PRNTSC|
-| ` | | | ( | ) | | | HOME | UP | END | |ZOOM +|
-| | | | { | } | |&#124;<| LEFT | DOWN |RIGHT |>&#124;|ZOOM -|
-| Mouse | | | | | Alt | Enter |Raise | | | | |
-
-##### Lower + Raise
-Activated when `Lower` and `Raise` are held together in the above `qwerty` layer.
-
-* Audio controls in the same position as cursor keys from the `Raise` layer.
-* ????: Runs a macro for outputting a text string. Do not use this store passwords.
-* Reset: Enter bootloader for flashing firmware to the keyboard.
-* CAPS: Toggle caps lock.
-* Macro functions: Allows recording of macros. To start recording the macro, press either REC1 or REC2.
-To finish the recording, press STOP. To replay the macro, press either PLAY1 or PLAY2.
-* MAC: Toggle MAC OS extensions to layers. This allows MLWR to be enabled with LOWER,
-MRSE with RAISE, MFNC with FUNC and MFNC2 with FUNC2 respectively.
-
-| | | | | | | | | | | | |
-| :---: |:----:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:|:-------:|
-| ???? | Reset|Qwerty| | | REC1 | REC2 | | | | | Del |
-| CAPS | | | | | PLAY1|PLAY2 | Mute | Vol+ | Play | | Qwerty |
-| MAC | | | | | STOP1|STOP2 | Prev | Vol- | Next | | Colemak |
-| | | | | | | | | DYN | | | |
-
-##### Function 2 Layer
-Activated when `fn` held in the above `qwerty` layer.
-* WRDSEL: Select the word where the cursor is.
-* LNDEL: Delete the line where the cursor is.
-* LNSEL: Select the line where the cursor is.
-* DUP: Duplicate the selected text.
-* LNJOIN: Join the line where the cursor is with the following line.
-* MODE: Print either `PC` or `OSX` depending on what layer mode is active.
-
-| | | | | | | | | | | | |
-| :---: | :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:|
-| | |WRDSEL| | | | LNDEL| | | | | |
-| | | LNSEL| DUP | | | | |LNJOIN| | | |
-| | UNDO | CUT | COPY | PASTE| | | | | | | MODE |
-| | | | | | | | | | | | |
-
-##### Mouse Layer
-Activated when `fn` and `raise` held together.
-
-| | | | | | | | | | | | |
-| :---: | :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:|
-| ESC | | | | | | W_L | W_UP | BTN3 | W_DWN| W_R | |
-| ACC0 | ACC1 | ACC2 | | | | | BTN1 | UP | BTN2 | | |
-| ACC0 | ACC1 | ACC2 | | | | | LEFT | DOWN | RIGHT| | |
-| | | | | | | | | | | | |
-
-##### Number Pad Layout
-Activated when holding `Esc` key.
-
-| | | | | | | | | | | | |
-| :---: | :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:|
-| | | | | | |NMLOCK| 7 | 8 | 9 | / | |
-| | | | | | | | 4 | 5 | 6 | * | |
-| | | | | | | | 1 | 2 | 3 | + | |
-| | | | | | | | 0 | . | , | - | |
diff --git a/keyboards/planck/keymaps/altgr/common/init.h b/keyboards/planck/keymaps/altgr/common/init.h
index 6d0b4392fb..e6bb7101e9 100644
--- a/keyboards/planck/keymaps/altgr/common/init.h
+++ b/keyboards/planck/keymaps/altgr/common/init.h
@@ -6,9 +6,6 @@ void matrix_init_user(void)
#ifdef STENO_ENABLE
steno_set_mode(STENO_MODE_BOLT); // or STENO_MODE_GEMINI
#endif
-#ifdef AUDIO_ENABLE
- startup_user();
-#endif
}
#ifdef AUDIO_ENABLE
@@ -31,27 +28,4 @@ bool led_update_user(led_t led_state)
return false;
}
#endif
-
-void startup_user(void)
-{
- _delay_ms(20); // gets rid of tick
- PLAY_SONG(song_startup);
-}
-
-void shutdown_user(void)
-{
- PLAY_SONG(song_goodbye);
- _delay_ms(150);
- stop_all_notes();
-}
-
-void music_on_user(void)
-{
- music_scale_user();
-}
-
-void music_scale_user(void)
-{
- PLAY_SONG(music_scale);
-}
#endif
diff --git a/keyboards/planck/keymaps/altgr/keymap.c b/keyboards/planck/keymaps/altgr/keymap.c
index 3ef9690a0a..f67682d794 100644
--- a/keyboards/planck/keymaps/altgr/keymap.c
+++ b/keyboards/planck/keymaps/altgr/keymap.c
@@ -67,9 +67,6 @@
#include QMK_KEYBOARD_H
-#ifdef STENO_ENABLE
-#include "keymap_steno.h"
-#endif
extern keymap_config_t keymap_config;
diff --git a/keyboards/planck/keymaps/badger/keymap.c b/keyboards/planck/keymaps/badger/keymap.c
deleted file mode 100644
index 5235ac90f7..0000000000
--- a/keyboards/planck/keymaps/badger/keymap.c
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
-Copyright 2020 Dan White <opensource@bluetufa.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 "ortho.h"
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [_QWERTY_MAC_ORTHO] = LAYOUT_ortho_4x12(
- KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS,
- MOMAC, 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_ENT,
- KC_LCTL, KC_LALT, KC_LGUI, RAISE, P_ADJ, KC_SPC, LOWER, KC_NO, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC),
-
- [_MOVE_MAC_ORTHO] = LAYOUT_ortho_4x12(
- KC_BACK, IJ_STEP, IJ_INTO, IJ_OUT, IJ_RUN, IJ_STOP, _______, WD_BACK, KC_HOME, KC_END, WD_FRWD, KC_NEXT,
- _______, MM_LH, MM_MAX, MM_RH, IJ_FIND, IJ_IMPS, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, CM_RIGHT, CM_DOWN,
- _______, MM_UH, MM_BH, MAC_CPY, MAC_PST, IJ_IMPH, _______, IJ_REN, IJ_IMPL, IJ_DECL, IJ_USAG, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______),
-
- [_QWERTY_LINUX_ORTHO] = LAYOUT_ortho_4x12(
- KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS,
- MOLNX, 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_ENT,
- KC_LCTL, KC_LALT, KC_LGUI, RAISE, P_ADJ, KC_SPC, LOWER, KC_NO, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC),
-
- [_MOVE_LINUX_ORTHO] = LAYOUT_ortho_4x12(
- _______, WM_VD1, WM_UH, WM_VD2, KC_MAC1, KC_MSTP, KC_MPLY, KC_PGUP, KC_HOME, KC_END, KC_PGDN, KC_INS,
- _______, WM_LH, WM_MAX, WM_RH, KC_MAC2, KC_PSCR, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, CS_RIGHT, CS_DOWN,
- _______, WM_VD3, WM_BH, OS_COPY, OS_PAST, KC_MPRV, KC_MNXT, KC_MUTE, KC_WBAK, KC_WFWD, KC_WSCH, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______),
-
- [_RAISE] = LAYOUT_ortho_4x12(
- KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_PIPE,
- _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_DQUO,
- _______, KC_UNDO, KC_CUT, OS_COPY, OS_PAST, KC_MPRV, KC_MNXT, KC_MUTE, KC_LT, KC_GT, KC_QUES, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______),
-
- [_LOWER] = LAYOUT_ortho_4x12(
- KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSLS,
- _______, KC_4, KC_5, KC_6, KC_PMNS, KC_PSCR, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_SCLN, KC_QUOT,
- _______, KC_1, KC_2, KC_3, KC_PPLS, KC_NO, KC_NO, KC_WHOM, KC_WBAK, KC_WFWD, KC_WSCH, _______,
- _______, KC_0, KC_DOT, KC_ENT, _______, _______, _______, _______, _______, _______, _______, _______),
-
- [_ADJUST] = LAYOUT_ortho_4x12(
- _______, NK_ON, NK_OFF, EE_CLR, QK_BOOT, KC_MSTP, KC_WH_L, KC_WH_D, KC_WH_U, KC_WH_R, KC_BTN2, KC_INS,
- _______, GE_SWAP, GE_NORM, DB_TOGG, AG_SWAP, AG_NORM, KC_MS_L, KC_MS_D, KC_MS_U, KC_MS_R, KC_BTN1, _______,
- _______, KC_LYRC, KC_FIRST, KC_CAPS, KC_NO, KC_MPRV, KC_MNXT, KC_MUTE, KC_ACL0, KC_ACL1, KC_ACL2, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______)
-};
diff --git a/keyboards/planck/keymaps/bghull/keymap.c b/keyboards/planck/keymaps/bghull/keymap.c
index 4e556fc215..55f5c54b67 100644
--- a/keyboards/planck/keymaps/bghull/keymap.c
+++ b/keyboards/planck/keymaps/bghull/keymap.c
@@ -15,7 +15,6 @@
*/
#include QMK_KEYBOARD_H
-#include "keymap_steno.h"
#include "g/keymap_combo.h"
#include "muse.h"
diff --git a/keyboards/planck/keymaps/charlesrocket/config.h b/keyboards/planck/keymaps/charlesrocket/config.h
deleted file mode 100644
index 070635a38d..0000000000
--- a/keyboards/planck/keymaps/charlesrocket/config.h
+++ /dev/null
@@ -1,35 +0,0 @@
-#pragma once
-
-#ifdef AUDIO_ENABLE
-#define STARTUP_SONG SONG(PLANCK_SOUND)
-#endif
-
-/*
- * MIDI options
- */
-
-/* enable basic MIDI features:
- - MIDI notes can be sent when in Music mode is on
-*/
-
-#define MIDI_BASIC
-#define AUDIO_CLICKY
-#define AUDIO_CLICKY_FREQ_DEFAULT 2360.0f
-#define AUDIO_CLICKY_FREQ_MAX 9500.0f
-#define AUDIO_CLICKY_FREQ_RANDOMNESS 0.05f
-#define DAC_SAMPLE_MAX 9754U
-
-/* enable advanced MIDI features:
- - MIDI notes can be added to the keymap
- - Octave shift and transpose
- - Virtual sustain, portamento, and modulation wheel
- - etc.
-*/
-//#define MIDI_ADVANCED
-
-/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
-//#define MIDI_TONE_KEYCODE_OCTAVES 2
-
-// Most tactile encoders have detents every 4 stages
-#define ENCODER_RESOLUTION 4
-#define ORYX_CONFIGURATOR \ No newline at end of file
diff --git a/keyboards/planck/keymaps/charlesrocket/keymap.c b/keyboards/planck/keymaps/charlesrocket/keymap.c
deleted file mode 100644
index 4d3d16f4a7..0000000000
--- a/keyboards/planck/keymaps/charlesrocket/keymap.c
+++ /dev/null
@@ -1,205 +0,0 @@
-#include QMK_KEYBOARD_H
-#ifdef AUDIO_ENABLE
-#include "muse.h"
-#endif
-#include "eeprom.h"
-
-#define KC_MAC_UNDO LGUI(KC_Z)
-#define KC_MAC_CUT LGUI(KC_X)
-#define KC_MAC_COPY LGUI(KC_C)
-#define KC_MAC_PASTE LGUI(KC_V)
-#define KC_PC_UNDO LCTL(KC_Z)
-#define KC_PC_CUT LCTL(KC_X)
-#define KC_PC_COPY LCTL(KC_C)
-#define KC_PC_PASTE LCTL(KC_V)
-#define ES_LABK_MAC KC_GRAVE
-#define ES_RABK_MAC LSFT(KC_GRAVE)
-#define ES_BSLS_MAC ALGR(KC_6)
-#define NO_PIPE_ALT KC_GRAVE
-#define NO_BSLS_ALT KC_EQUAL
-#define LSA_T(kc) MT(MOD_LSFT | MOD_LALT, kc)
-
-enum planck_keycodes {
- RGB_SLD = SAFE_RANGE,
-};
-
-enum planck_layers {
- _BASE,
- _LOWER,
- _RAISE,
- _ADJUST,
-};
-
-#define LOWER MO(_LOWER)
-#define RAISE MO(_RAISE)
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [_BASE] = LAYOUT_planck_grid(
- 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_ESCAPE, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOTE,
- KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMMA, KC_DOT, KC_SLASH, KC_ENTER,
- WEBUSB_PAIR, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPACE, KC_NO, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT
- ),
-
- [_LOWER] = LAYOUT_planck_grid(
- KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, _______,
- KC_DELETE, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE,
- _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NONUS_HASH, KC_NUBS, KC_HOME, KC_END, _______,
- KC_COMMA, _______, _______, _______, _______, _______, KC_NO, _______, KC_MEDIA_NEXT_TRACK, KC_AUDIO_VOL_DOWN, KC_AUDIO_VOL_UP, KC_MEDIA_PLAY_PAUSE
- ),
-
- [_RAISE] = LAYOUT_planck_grid(
- KC_GRAVE, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, _______,
- KC_DELETE, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINUS, KC_EQUAL, KC_LBRC, KC_RBRC, KC_BSLS,
- _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NONUS_HASH, KC_NUBS, KC_PGUP, KC_PGDN, _______,
- _______, _______, _______, _______, _______, _______, KC_NO, _______, KC_MEDIA_NEXT_TRACK, KC_AUDIO_VOL_DOWN, KC_AUDIO_VOL_UP, KC_MEDIA_PLAY_PAUSE
- ),
-
- [_ADJUST] = LAYOUT_planck_grid(
- _______, CK_UP, _______, _______, _______, _______, _______, _______, _______,_______, _______, _______,
- KC_DELETE, CK_TOGG, AU_ON, AU_OFF, AU_TOGG, _______, _______, _______, RGB_VAI,RGB_VAD , _______, QK_BOOT,
- _______, CK_DOWN, MU_ON, MU_OFF, MU_TOGG, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, KC_NO, _______, _______, _______, _______, _______
- ),
-
-};
-
-extern bool g_suspend_state;
-extern rgb_config_t rgb_matrix_config;
-
-void keyboard_post_init_user(void) {
- rgb_matrix_enable();
-}
-
-const uint8_t PROGMEM ledmap[][RGB_MATRIX_LED_COUNT][3] = {
- [0] = { {0,255,255}, {0,255,255}, {0,255,255}, {0,255,255}, {0,255,255}, {0,255,255}, {0,255,255}, {0,255,255}, {0,255,255}, {0,255,255}, {0,255,255}, {0,255,255}, {0,255,255}, {0,255,255}, {0,255,255}, {0,255,255}, {0,255,255}, {0,255,255}, {0,255,255}, {0,255,255}, {0,255,255}, {0,255,255}, {0,255,255}, {0,255,255}, {0,255,255}, {0,255,255}, {0,255,255}, {0,255,255}, {0,255,255}, {0,255,255}, {0,255,255}, {0,255,255}, {0,255,255}, {0,255,255}, {0,255,255}, {0,255,255}, {0,255,255}, {0,255,255}, {0,255,255}, {0,255,255}, {0,255,255}, {0,255,255}, {0,255,255}, {0,255,255}, {0,255,255}, {0,255,255}, {0,255,255} },
-
- [1] = { {193,255,255}, {193,255,255}, {193,255,255}, {193,255,255}, {193,255,255}, {193,255,255}, {193,255,255}, {193,255,255}, {193,255,255}, {193,255,255}, {193,255,255}, {193,255,255}, {193,255,255}, {193,255,255}, {193,255,255}, {193,255,255}, {193,255,255}, {193,255,255}, {193,255,255}, {193,255,255}, {193,255,255}, {193,255,255}, {193,255,255}, {193,255,255}, {193,255,255}, {193,255,255}, {193,255,255}, {193,255,255}, {193,255,255}, {193,255,255}, {193,255,255}, {193,255,255}, {193,255,255}, {193,255,255}, {193,255,255}, {193,255,255}, {193,255,255}, {193,255,255}, {193,255,255}, {193,255,255}, {193,255,255}, {193,255,255}, {193,255,255}, {193,255,255}, {193,255,255}, {193,255,255}, {193,255,255} },
-
- [2] = { {104,255,255}, {104,255,255}, {104,255,255}, {104,255,255}, {104,255,255}, {104,255,255}, {104,255,255}, {104,255,255}, {104,255,255}, {104,255,255}, {104,255,255}, {104,255,255}, {104,255,255}, {104,255,255}, {104,255,255}, {104,255,255}, {104,255,255}, {104,255,255}, {104,255,255}, {104,255,255}, {104,255,255}, {104,255,255}, {104,255,255}, {104,255,255}, {104,255,255}, {104,255,255}, {104,255,255}, {104,255,255}, {104,255,255}, {104,255,255}, {104,255,255}, {104,255,255}, {104,255,255}, {104,255,255}, {104,255,255}, {104,255,255}, {104,255,255}, {104,255,255}, {104,255,255}, {104,255,255}, {104,255,255}, {104,255,255}, {104,255,255}, {104,255,255}, {104,255,255}, {104,255,255}, {104,255,255} },
-
- [3] = { {0,0,255}, {0,0,255}, {0,0,255}, {0,0,255}, {0,0,255}, {0,0,255}, {0,0,255}, {0,0,255}, {0,0,255}, {0,0,255}, {0,0,255}, {0,0,255}, {0,0,255}, {0,0,255}, {0,0,255}, {0,0,255}, {0,0,255}, {0,0,255}, {0,0,255}, {0,0,255}, {0,0,255}, {0,0,255}, {0,0,255}, {0,0,255}, {0,0,255}, {0,0,255}, {0,0,255}, {0,0,255}, {0,0,255}, {0,0,255}, {0,0,255}, {0,0,255}, {0,0,255}, {0,0,255}, {0,0,255}, {0,0,255}, {0,0,255}, {0,0,255}, {0,0,255}, {0,0,255}, {0,0,255}, {0,0,255}, {0,0,255}, {0,0,255}, {0,0,255}, {0,0,255}, {0,0,255} },
-
-};
-
-void set_layer_color(int layer) {
- for (int i = 0; i < RGB_MATRIX_LED_COUNT; i++) {
- HSV hsv = {
- .h = pgm_read_byte(&ledmap[layer][i][0]),
- .s = pgm_read_byte(&ledmap[layer][i][1]),
- .v = pgm_read_byte(&ledmap[layer][i][2]),
- };
- if (!hsv.h && !hsv.s && !hsv.v) {
- rgb_matrix_set_color( i, 0, 0, 0 );
- } else {
- RGB rgb = hsv_to_rgb( hsv );
- float f = (float)rgb_matrix_config.hsv.v / UINT8_MAX;
- rgb_matrix_set_color( i, f * rgb.r, f * rgb.g, f * rgb.b );
- }
- }
-}
-
-bool rgb_matrix_indicators_user(void) {
- if (g_suspend_state || keyboard_config.disable_layer_led) { return; }
- switch (get_highest_layer(layer_state)) {
- case 0:
- set_layer_color(0);
- break;
- case 1:
- set_layer_color(1);
- break;
- case 2:
- set_layer_color(2);
- break;
- case 3:
- set_layer_color(3);
- break;
- default:
- if (rgb_matrix_get_flags() == LED_FLAG_NONE)
- rgb_matrix_set_color_all(0, 0, 0);
- break;
- }
- return false;
-}
-
-bool process_record_user(uint16_t keycode, keyrecord_t *record) {
- switch (keycode) {
- case RGB_SLD:
- if (record->event.pressed) {
- rgblight_mode(1);
- }
- return false;
- }
- return true;
-}
-
-#ifdef AUDIO_ENABLE
-bool muse_mode = false;
-uint8_t last_muse_note = 0;
-uint16_t muse_counter = 0;
-uint8_t muse_offset = 70;
-uint16_t muse_tempo = 50;
-
-bool encoder_update_user(uint8_t index, bool clockwise) {
- if (muse_mode) {
- if (IS_LAYER_ON(_RAISE)) {
- if (clockwise) {
- muse_offset++;
- } else {
- muse_offset--;
- }
- } else {
- if (clockwise) {
- muse_tempo+=1;
- } else {
- muse_tempo-=1;
- }
- }
- } else {
- if (clockwise) {
- #ifdef MOUSEKEY_ENABLE
- tap_code(KC_MS_WH_DOWN);
- #else
- tap_code(KC_PGDN);
- #endif
- } else {
- #ifdef MOUSEKEY_ENABLE
- tap_code(KC_MS_WH_UP);
- #else
- tap_code(KC_PGUP);
- #endif
- }
- }
- return true;
-}
-
-void matrix_scan_user(void) {
-#ifdef AUDIO_ENABLE
- if (muse_mode) {
- if (muse_counter == 0) {
- uint8_t muse_note = muse_offset + SCALE[muse_clock_pulse()];
- if (muse_note != last_muse_note) {
- stop_note(compute_freq_for_midi_note(last_muse_note));
- play_note(compute_freq_for_midi_note(muse_note), 0xF);
- last_muse_note = muse_note;
- }
- }
- muse_counter = (muse_counter + 1) % muse_tempo;
- }
-#endif
-}
-
-bool music_mask_user(uint16_t keycode) {
- switch (keycode) {
- case RAISE:
- case LOWER:
- return false;
- default:
- return true;
- }
-}
-#endif
-
-layer_state_t layer_state_set_user(layer_state_t state) {
- return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST);
-}
diff --git a/keyboards/planck/keymaps/charlesrocket/readme.md b/keyboards/planck/keymaps/charlesrocket/readme.md
deleted file mode 100644
index 9e9f0d2551..0000000000
--- a/keyboards/planck/keymaps/charlesrocket/readme.md
+++ /dev/null
@@ -1,55 +0,0 @@
-# Red Planck EZ (Glow) with beeps
-
-QWERTY layout with colored layers (red, purple, green and white) for Planck EZ Glow. Soft beep feedback is On by default. Sound level is hardcoded with `DAC_SAMPLE_MAX` and tone settings (`CK`) are in Adjust (WHITE) layer.
-
-```
-RED Base
- ,-----------------------------------------------------------------------------------.
- | Tab | Q | W | E | R | T | Y | U | I | O | P | Bksp |
- |------+------+------+------+------+------+------+------+------+------+------+------|
- | Esc | A | S | D | F | G | H | J | K | L | ; | " |
- |------+------+------+------+------+------+------+------+------+------+------+------|
- | Shift| Z | X | C | V | B | N | M | , | . | / |Enter |
- |------+------+------+------+------+------+------+------+------+------+------+------|
- | QMK | Ctrl | Alt | OS |Lower | Space |Raise | Left | Down | Up |Right |
- `-----------------------------------------------------------------------------------'
-```
-
-```
-PURPLE Lower
- ,-----------------------------------------------------------------------------------.
- | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp |
- |------+------+------+------+------+------+------+------+------+------+------+------|
- | Del | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | |
- |------+------+------+------+------+------+------+------+------+------+------+------|
- | | F7 | F8 | F9 | F10 | F11 | F12 |ISO ~ |ISO | | Home | End | |
- |------+------+------+------+------+------+------+------+------+------+------+------|
- | | | | |Lower | |Raise | Next | Vol- | Vol+ | Play |
- `-----------------------------------------------------------------------------------'
-```
-
-```
-GREEN Raise
- ,-----------------------------------------------------------------------------------.
- | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp |
- |------+------+------+------+------+------+------+------+------+------+------+------|
- | Del | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ |
- |------+------+------+------+------+------+------+------+------+------+------+------|
- | | F7 | F8 | F9 | F10 | F11 | F12 |ISO # |ISO / |Pg Up |Pg Dn | |
- |------+------+------+------+------+------+------+------+------+------+------+------|
- | | | | |Lower | |Raise | Next | Vol- | Vol+ | Play |
- `-----------------------------------------------------------------------------------'
-```
-
-```
-WHITE (Lower + Raise)
- ,-----------------------------------------------------------------------------------.
- | | CkUp | | | | | | | | | | |
- |------+------+------+------+------+------+------+------+------+------+------+------|
- | Del | CkTg |Aud On|AudOff|AudTog| | | |BRGTH+|BRGTH-| | Reset|
- |------+------+------+------+------+------+------+------+------+------+------+------|
- | | CkDn |Mus On|MusOff|MusTog| | | | | | | |
- |------+------+------+------+------+------+------+------+------+------+------+------|
- | | | | |Lower | |Raise | | | | |
- `-----------------------------------------------------------------------------------'
-```
diff --git a/keyboards/planck/keymaps/charlesrocket/rules.mk b/keyboards/planck/keymaps/charlesrocket/rules.mk
deleted file mode 100644
index 6e4985a8b1..0000000000
--- a/keyboards/planck/keymaps/charlesrocket/rules.mk
+++ /dev/null
@@ -1,8 +0,0 @@
-SRC += muse.c
-# Set any rules.mk overrides for your specific keymap here.
-# See rules at https://docs.qmk.fm/#/config_options?id=the-rulesmk-file
-LTO_ENABLE = yes
-COMMAND_ENABLE = no
-MOUSEKEY_ENABLE = no
-WEBUSB_ENABLE = yes
-ORYX_ENABLE = yes
diff --git a/keyboards/planck/keymaps/circuit/keymap.c b/keyboards/planck/keymaps/circuit/keymap.c
index d150905dc8..b7d2b121b9 100644
--- a/keyboards/planck/keymaps/circuit/keymap.c
+++ b/keyboards/planck/keymaps/circuit/keymap.c
@@ -131,7 +131,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
_______, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL ,
_______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
KC_CAPS, KC_UNDO, KC_CUT, KC_COPY, KC_PSTE, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_PGUP, KC_ENT ,
- _______, _______, _______, KC_MUTE, _______, XXXXXXX, XXXXXXX, _______, XXXXXXX, KC_HOME, KC_PGDN, KC_END
+ _______, _______, _______, KC_MUTE, _______, XXXXXXX, XXXXXXX, _______, XXXXXXX, KC_HOME, KC_PGDN, KC_END
),
/* FUNCTIONS
@@ -155,11 +155,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
};
#ifdef AUDIO_ENABLE
-float tone_startup[][2] = SONG(STARTUP_SOUND);
float tone_qwerty[][2] = SONG(QWERTY_SOUND);
float tone_dvorak[][2] = SONG(DVORAK_SOUND);
-float music_scale[][2] = SONG(MUSIC_SCALE_SOUND);
-float tone_goodbye[][2] = SONG(GOODBYE_SOUND);
#endif
@@ -210,36 +207,3 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
}
return true;
}
-
-void matrix_init_user(void) {
-#ifdef AUDIO_ENABLE
- startup_user();
-#endif
-}
-
-#ifdef AUDIO_ENABLE
-
-void startup_user(void)
-{
- _delay_ms(20); // gets rid of tick
- PLAY_SONG(tone_startup);
-}
-
-void shutdown_user(void)
-{
- PLAY_SONG(tone_goodbye);
- _delay_ms(150);
- stop_all_notes();
-}
-
-void music_on_user(void)
-{
- music_scale_user();
-}
-
-void music_scale_user(void)
-{
- PLAY_SONG(music_scale);
-}
-
-#endif
diff --git a/keyboards/planck/keymaps/csc027/config.h b/keyboards/planck/keymaps/csc027/config.h
deleted file mode 100644
index 2a620db279..0000000000
--- a/keyboards/planck/keymaps/csc027/config.h
+++ /dev/null
@@ -1,21 +0,0 @@
-/*
-Copyright 2021 Constantine Chen @csc027
-
-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 NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
diff --git a/keyboards/planck/keymaps/csc027/keymap.c b/keyboards/planck/keymaps/csc027/keymap.c
deleted file mode 100644
index 71155eca75..0000000000
--- a/keyboards/planck/keymaps/csc027/keymap.c
+++ /dev/null
@@ -1,79 +0,0 @@
-/*
-Copyright 2020 Constantine Chen @csc027
-
-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 "csc027.h"
-
-#define LAYOUT_wrapper(...) LAYOUT_ortho_4x12(__VA_ARGS__)
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [_QW] = LAYOUT_wrapper(
- _____________________QWERTY_L1_____________________, _____________________QWERTY_R1_____________________,
- _____________________QWERTY_L2_____________________, _____________________QWERTY_R2_____________________,
- _____________________QWERTY_L3_____________________, _____________________QWERTY_R3_____________________,
- _____________________QWERTY_L4_____________________, _____________________QWERTY_R4_____________________
- ),
-
- [_RS] = LAYOUT_wrapper(
- ______________________RAISE_L1_____________________, ______________________RAISE_R1_____________________,
- ______________________RAISE_L2_____________________, ______________________RAISE_R2_____________________,
- ______________________RAISE_L3_____________________, ______________________RAISE_R3_____________________,
- ______________________RAISE_L4_____________________, ______________________RAISE_R4_____________________
- ),
-
- [_LW] = LAYOUT_wrapper(
- ______________________LOWER_L1_____________________, ______________________LOWER_R1_____________________,
- ______________________LOWER_L2_____________________, ______________________LOWER_R2_____________________,
- ______________________LOWER_L3_____________________, ______________________LOWER_R3_____________________,
- ______________________LOWER_L4_____________________, ______________________LOWER_R4_____________________
- ),
-
- [_MS] = LAYOUT_wrapper(
- ______________________MOUSE_L1_____________________, ______________________MOUSE_R1_____________________,
- ______________________MOUSE_L2_____________________, ______________________MOUSE_R2_____________________,
- ______________________MOUSE_L3_____________________, ______________________MOUSE_R3_____________________,
- ______________________MOUSE_L4_____________________, ______________________MOUSE_R4_____________________
- ),
-
- [_WT] = LAYOUT_wrapper(
- ________________WINDOWS_TERMINAL_L1________________, ________________WINDOWS_TERMINAL_R1________________,
- ________________WINDOWS_TERMINAL_L2________________, ________________WINDOWS_TERMINAL_R2________________,
- ________________WINDOWS_TERMINAL_L3________________, ________________WINDOWS_TERMINAL_R3________________,
- ________________WINDOWS_TERMINAL_L4________________, ________________WINDOWS_TERMINAL_R4________________
- ),
-
- [_CN] = LAYOUT_wrapper(
- ___________________CONVENIENCE_L1__________________, ___________________CONVENIENCE_R1__________________,
- ___________________CONVENIENCE_L2__________________, ___________________CONVENIENCE_R2__________________,
- ___________________CONVENIENCE_L3__________________, ___________________CONVENIENCE_R3__________________,
- ___________________CONVENIENCE_L4__________________, ___________________CONVENIENCE_R4__________________
- ),
-
- [_GG] = LAYOUT_wrapper(
- ________________General_Game_4x12_L1_______________, ________________General_Game_4x12_R1_______________,
- ________________General_Game_4x12_L2_______________, ________________General_Game_4x12_R2_______________,
- ________________General_Game_4x12_L3_______________, ________________General_Game_4x12_R3_______________,
- ________________General_Game_4x12_L4_______________, ________________General_Game_4x12_R4_______________
- ),
-
- [_CS] = LAYOUT_wrapper(
- ___________________CSGO_4x12_L1____________________, ___________________CSGO_4x12_R1____________________,
- ___________________CSGO_4x12_L2____________________, ___________________CSGO_4x12_R2____________________,
- ___________________CSGO_4x12_L3____________________, ___________________CSGO_4x12_R3____________________,
- ___________________CSGO_4x12_L4____________________, ___________________CSGO_4x12_R4____________________
- )
-};
diff --git a/keyboards/planck/keymaps/csc027/rules.mk b/keyboards/planck/keymaps/csc027/rules.mk
deleted file mode 100644
index 0c35b2c28f..0000000000
--- a/keyboards/planck/keymaps/csc027/rules.mk
+++ /dev/null
@@ -1,8 +0,0 @@
-BOOTMAGIC_ENABLE = no
-COMMAND_ENABLE = no
-CONSOLE_ENABLE = no
-EXTRAKEY_ENABLE = yes
-LTO_ENABLE = no
-MOUSEKEY_ENABLE = yes
-NKRO_ENABLE = yes
-RGBLIGHT_ENABLE = no
diff --git a/keyboards/planck/keymaps/dbroqua/keymap.c b/keyboards/planck/keymaps/dbroqua/keymap.c
index 95d0b85408..f7d1575dad 100644
--- a/keyboards/planck/keymaps/dbroqua/keymap.c
+++ b/keyboards/planck/keymaps/dbroqua/keymap.c
@@ -120,16 +120,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
};
#ifdef AUDIO_ENABLE
-
-float tone_startup[][2] = SONG(STARTUP_SOUND);
float tone_qwerty[][2] = SONG(QWERTY_SOUND);
float tone_dvorak[][2] = SONG(DVORAK_SOUND);
float tone_colemak[][2] = SONG(COLEMAK_SOUND);
float tone_plover[][2] = SONG(PLOVER_SOUND);
float tone_plover_gb[][2] = SONG(PLOVER_GOODBYE_SOUND);
-float music_scale[][2] = SONG(MUSIC_SCALE_SOUND);
-
-float tone_goodbye[][2] = SONG(GOODBYE_SOUND);
#endif
@@ -183,36 +178,3 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
}
return true;
}
-
-void matrix_init_user(void) {
- #ifdef AUDIO_ENABLE
- startup_user();
- #endif
-}
-
-#ifdef AUDIO_ENABLE
-
-void startup_user(void)
-{
- _delay_ms(20); // gets rid of tick
- PLAY_SONG(tone_startup);
-}
-
-void shutdown_user(void)
-{
- PLAY_SONG(tone_goodbye);
- _delay_ms(150);
- stop_all_notes();
-}
-
-void music_on_user(void)
-{
- music_scale_user();
-}
-
-void music_scale_user(void)
-{
- PLAY_SONG(music_scale);
-}
-
-#endif
diff --git a/keyboards/planck/keymaps/dcompact/keymap.c b/keyboards/planck/keymaps/dcompact/keymap.c
index a63f86e7a8..f781d1e5c0 100644
--- a/keyboards/planck/keymaps/dcompact/keymap.c
+++ b/keyboards/planck/keymaps/dcompact/keymap.c
@@ -15,7 +15,6 @@
*/
#include QMK_KEYBOARD_H
-#include "keymap_steno.h"
// Custom Keycodes and Combinations Used
#define DEL_SHF SFT_T(KC_DEL)
diff --git a/keyboards/planck/keymaps/dr_notsokind/keymap.c b/keyboards/planck/keymaps/dr_notsokind/keymap.c
index ffceef11cc..f4fb3e0074 100644
--- a/keyboards/planck/keymaps/dr_notsokind/keymap.c
+++ b/keyboards/planck/keymaps/dr_notsokind/keymap.c
@@ -127,7 +127,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_GRV , KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL,
KC_DEL , KC_F11, KC_F12, KC_F13, KC_F14, KC_F15, _______, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS,
KC_LSFT, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, _______, KC_NUHS, KC_NUBS, XXXXXXX, KC_PGUP, KC_ENT,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_END
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_END
),
/* LOWER
@@ -145,7 +145,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL ,
KC_DEL , KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, _______, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE,
KC_LSFT, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, _______, S(KC_NUHS), S(KC_NUBS), XXXXXXX, KC_PGUP, KC_ENT ,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_END
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_END
),
/* MEDIA AND COMMANDS
@@ -163,7 +163,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
XXXXXXX, XXXXXXX, KC_WHOM, XXXXXXX, XXXXXXX, XXXXXXX, KC_AGAIN, XXXXXXX, KC_INS, XXXXXXX, KC_PSCR, XXXXXXX,
XXXXXXX, XXXXXXX, KC_WSCH, XXXXXXX, KC_FIND, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, DM_PLY1, DM_PLY2,
KC_LSFT, XXXXXXX, XXXXXXX, KC_CALC, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, ZOOM_OUT, ZOOM_IN, KC_MPRV, DM_RSTP,
- ONESHOT, XXXXXXX, XXXXXXX, _______, KC_VOLD, KC_MUTE, KC_MUTE, KC_VOLU, ZOOM_NML, KC_MSTP, KC_MNXT, KC_MPLY
+ ONESHOT, XXXXXXX, XXXXXXX, _______, KC_VOLD, KC_MUTE, KC_MUTE, KC_VOLU, ZOOM_NML, KC_MSTP, KC_MNXT, KC_MPLY
),
/* ONESHOT
@@ -205,14 +205,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
};
#ifdef AUDIO_ENABLE
-float tone_startup[][2] = SONG(STARTUP_SOUND);
float tone_qwerty[][2] = SONG(QWERTY_SOUND);
float tone_numpad[][2] = SONG(NUM_LOCK_ON_SOUND);
float tone_oneshot[][2] = SONG(TERMINAL_SOUND);
float tone_dyn_macro_rec[][2] = SONG(SONIC_RING);
float tone_dyn_macro_stop[][2] = SONG(COIN_SOUND);
-float music_scale[][2] = SONG(MUSIC_SCALE_SOUND);
-float tone_goodbye[][2] = SONG(GOODBYE_SOUND);
#endif
void press_key(uint16_t key) {
@@ -303,36 +300,3 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
}
return true;
}
-
-void matrix_init_user(void) {
-#ifdef AUDIO_ENABLE
- startup_user();
-#endif
-}
-
-#ifdef AUDIO_ENABLE
-
-void startup_user(void)
-{
- _delay_ms(20); // gets rid of tick
- PLAY_SONG(tone_startup);
-}
-
-void shutdown_user(void)
-{
- PLAY_SONG(tone_goodbye);
- _delay_ms(150);
- stop_all_notes();
-}
-
-void music_on_user(void)
-{
- music_scale_user();
-}
-
-void music_scale_user(void)
-{
- PLAY_SONG(music_scale);
-}
-
-#endif
diff --git a/keyboards/planck/keymaps/dshields/config.h b/keyboards/planck/keymaps/dshields/config.h
deleted file mode 100644
index 857c8164e3..0000000000
--- a/keyboards/planck/keymaps/dshields/config.h
+++ /dev/null
@@ -1,4 +0,0 @@
-#pragma once
-
-#define RGB_DIGITAL_RAIN_DROPS 24
-
diff --git a/keyboards/planck/keymaps/dshields/keymap.c b/keyboards/planck/keymaps/dshields/keymap.c
deleted file mode 100644
index c3dd7a50b4..0000000000
--- a/keyboards/planck/keymaps/dshields/keymap.c
+++ /dev/null
@@ -1,30 +0,0 @@
-#include QMK_KEYBOARD_H
-#include "dshields.h"
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [DEF] = LAYOUT_planck_grid(
- KC_Q, KC_W, KC_E, KC_R, KC_T, KC_ESC, KC_BSPC, KC_Y, KC_U, KC_I, KC_O, KC_P ,
- MT_A, MT_S, MT_D, MT_F, LT_G, KC_TAB, KC_ENT, LT_H, MT_J, MT_K, MT_L, MT_SCLN,
- KC_Z, KC_X, KC_C, KC_V, KC_B, OSMLSFT, DM_PLY1, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH,
- OSMLCTL, KC_LGUI, OSMLALT, OSL_FUN, OSL_LWR, MT_SPC, MT_SPC, OSL_RSE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT
- ),
- [LWR] = LAYOUT_planck_grid(
- KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, _______, KC_DEL, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN,
- KC_TILD, _______, _______, _______, _______, _______, _______, KC_UNDS, KC_PLUS, _______, KC_LCBR, KC_RCBR,
- _______, _______, _______, _______, _______, _______, DM_PLY2, _______, _______, _______, KC_DQUO, KC_PIPE,
- _______, _______, _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_PGUP, KC_END
- ),
- [RSE] = LAYOUT_planck_grid(
- KC_1, KC_2, KC_3, KC_4, KC_5, _______, KC_DEL, KC_6, KC_7, KC_8, KC_9, KC_0 ,
- KC_GRV, _______, _______, _______, _______, _______, _______, KC_MINS, KC_EQL, _______, KC_LBRC, KC_RBRC,
- _______, _______, _______, _______, _______, _______, DM_PLY2, _______, _______, _______, KC_QUOT, KC_BSLS,
- _______, _______, _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_PGUP, KC_END
- ),
- [FUN] = LAYOUT_planck_grid(
- KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, QK_BOOT, EE_CLR, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10 ,
- KC_F11, KC_F12, KC_F13, KC_F14, KC_F15, _______, DM_RSTP, _______, KC_WH_L, KC_WH_D, KC_WH_U, KC_WH_R,
- LGT_TOG, LGT_MOD, LGT_BRT, LGT_INC, LGT_DEC, DM_REC1, DM_REC2, _______, _______, KC_BTN1, KC_BTN2, KC_BTN3,
- _______, _______, _______, _______, _______, _______, _______, _______, KC_MS_L, KC_MS_D, KC_MS_U, KC_MS_R
- )
-};
-
diff --git a/keyboards/planck/keymaps/dshields/readme.md b/keyboards/planck/keymaps/dshields/readme.md
deleted file mode 100644
index 6070fd2e9e..0000000000
--- a/keyboards/planck/keymaps/dshields/readme.md
+++ /dev/null
@@ -1,12 +0,0 @@
-
-About
-------
-
-A simple split qwerty Planck layout that makes use of one-shot modifiers,
-one-shot layers, tap-dance keys and dynamic macros.
-
-Layout
--------
-
-![Layout](https://i.imgur.com/vZR3c8m.jpg "Keyboard Layout")
-
diff --git a/keyboards/planck/keymaps/dudeofawesome/config.h b/keyboards/planck/keymaps/dudeofawesome/config.h
deleted file mode 100644
index 0029c26262..0000000000
--- a/keyboards/planck/keymaps/dudeofawesome/config.h
+++ /dev/null
@@ -1,41 +0,0 @@
-#ifndef CONFIG_USER_H
-#define CONFIG_USER_H
-
-#include "../../config.h"
-#include "dudeofawesome.h"
-
-#ifdef AUDIO_ENABLE
- #define STARTUP_SONG SONG(PLANCK_SOUND)
- // #define STARTUP_SONG SONG(NO_SOUND)
-
- #define DEFAULT_LAYER_SONGS { SONG(QWERTY_SOUND), \
- SONG(WORKMAN_SOUND), \
- SONG(COLEMAK_SOUND), \
- SONG(DVORAK_SOUND) \
- }
-#endif
-
-#define MUSIC_MASK (keycode != KC_NO)
-
-/*
- * MIDI options
- */
-
-/* enable basic MIDI features:
- - MIDI notes can be sent when in Music mode is on
-*/
-
-// #define MIDI_BASIC
-
-/* enable advanced MIDI features:
- - MIDI notes can be added to the keymap
- - Octave shift and transpose
- - Virtual sustain, portamento, and modulation wheel
- - etc.
-*/
-//#define MIDI_ADVANCED
-
-/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
-//#define MIDI_TONE_KEYCODE_OCTAVES 2
-
-#endif
diff --git a/keyboards/planck/keymaps/dudeofawesome/keymap.c b/keyboards/planck/keymaps/dudeofawesome/keymap.c
deleted file mode 100644
index 054a76c071..0000000000
--- a/keyboards/planck/keymaps/dudeofawesome/keymap.c
+++ /dev/null
@@ -1,233 +0,0 @@
-/* Copyright 2015-2017 Jack Humbert
- *
- * 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
-
-extern keymap_config_t keymap_config;
-
-enum planck_layers {
- _QWERTY,
- _WORKMAN,
- _COLEMAK,
- _DVORAK,
- _LOWER,
- _RAISE,
- _ADJUST,
- _NUMPAD,
-};
-
-enum planck_keycodes {
- QWERTY = SAFE_RANGE,
- WORKMAN,
- COLEMAK,
- DVORAK,
- LOWER,
- RAISE,
- BACKLIT
-};
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
- /* Qwerty
- * ,-----------------------------------------------------------------------------------.
- * | Tab | Q | W | E | R | T | Y | U | I | O | P | Bksp |
- * |------+------+------+------+------+-------------+------+------+------+------+------|
- * | Esc | A | S | D | F | G | H | J | K | L | ; | ' |
- * |------+------+------+------+------+------|------+------+------+------+------+------|
- * | Shift| Z | X | C | V | B | N | M | , | . | / | Enter|
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | Num | Ctrl | Alt | GUI | Lower| Space | Raise| Left | Down | Up | Right|
- * `-----------------------------------------------------------------------------------'
- */
- [_QWERTY] = LAYOUT_planck_grid(
- 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_ESC, 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, RSFT_T(KC_ENT),
- TT(_NUMPAD), KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT
- ),
-
- /* Workman
- * ,-----------------------------------------------------------------------------------.
- * | Tab | Q | D | R | W | B | J | F | U | P | ; | Bksp |
- * |------+------+------+------+------+-------------+------+------+------+------+------|
- * | Esc | A | S | H | T | G | Y | N | E | O | I | ' |
- * |------+------+------+------+------+------|------+------+------+------+------+------|
- * | Shift| Z | X | M | C | V | K | L | , | . | / | Enter|
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | Num | Ctrl | Alt | GUI | Lower| Space | Raise| Left | Down | Up | Right|
- * `-----------------------------------------------------------------------------------'
- */
- [_WORKMAN] = LAYOUT_planck_grid(
- KC_TAB, KC_Q, KC_D, KC_R, KC_W, KC_B, KC_J, KC_F, KC_U, KC_P, KC_SCLN, KC_BSPC ,
- KC_ESC, KC_A, KC_S, KC_H, KC_T, KC_G, KC_Y, KC_N, KC_E, KC_O, KC_I, KC_QUOT ,
- KC_LSFT, KC_Z, KC_X, KC_M, KC_C, KC_V, KC_K, KC_L, KC_COMM, KC_DOT, KC_SLSH, RSFT_T(KC_ENT),
- TT(_NUMPAD), KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT
- ),
-
- /* Colemak
- * ,-----------------------------------------------------------------------------------.
- * | Tab | Q | W | F | P | G | J | L | U | Y | ; | Bksp |
- * |------+------+------+------+------+-------------+------+------+------+------+------|
- * | Esc | A | R | S | T | D | H | N | E | I | O | ' |
- * |------+------+------+------+------+------|------+------+------+------+------+------|
- * | Shift| Z | X | C | V | B | K | M | , | . | / | Enter|
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | Num | Ctrl | Alt | GUI | Lower| Space | Raise| Left | Down | Up | Right|
- * `-----------------------------------------------------------------------------------'
- */
- [_COLEMAK] = LAYOUT_planck_grid(
- KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC,
- KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT,
- KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, RSFT_T(KC_ENT),
- TT(_NUMPAD), KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT
- ),
-
- /* Dvorak
- * ,-----------------------------------------------------------------------------------.
- * | Tab | " | , | . | P | Y | F | G | C | R | L | Bksp |
- * |------+------+------+------+------+-------------+------+------+------+------+------|
- * | Esc | A | O | E | U | I | D | H | T | N | S | / |
- * |------+------+------+------+------+------|------+------+------+------+------+------|
- * | Shift| ; | Q | J | K | X | B | M | W | V | Z | Enter|
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | Num | Ctrl | Alt | GUI | Lower| Space | Raise| Left | Down | Up | Right|
- * `-----------------------------------------------------------------------------------'
- */
- [_DVORAK] = LAYOUT_planck_grid(
- KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSPC ,
- KC_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH ,
- KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, RSFT_T(KC_ENT),
- TT(_NUMPAD), KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT
- ),
-
- /* Lower
- * ,-----------------------------------------------------------------------------------.
- * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp |
- * |------+------+------+------+------+-------------+------+------+------+------+------|
- * | Del | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | |
- * |------+------+------+------+------+------|------+------+------+------+------+------|
- * | | F7 | F8 | F9 | F10 | F11 | F12 |ISO ~ |ISO | | Home | End | |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | | | | | | | | Play | Vol- | Vol+ | Next |
- * `-----------------------------------------------------------------------------------'
- */
- [_LOWER] = LAYOUT_planck_grid(
- KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC,
- _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE,
- _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, S(KC_NUHS), S(KC_NUBS), KC_HOME, KC_END, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, KC_MPLY, KC_VOLD, KC_VOLU, KC_MNXT
- ),
-
- /* Raise
- * ,-----------------------------------------------------------------------------------.
- * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp |
- * |------+------+------+------+------+-------------+------+------+------+------+------|
- * | Del | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ |
- * |------+------+------+------+------+------|------+------+------+------+------+------|
- * | | F7 | F8 | F9 | F10 | F11 | F12 |ISO # |ISO / |Pg Up |Pg Dn | |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | | | | | | | | Play | Vol- | Vol+ | Next |
- * `-----------------------------------------------------------------------------------'
- */
- [_RAISE] = LAYOUT_planck_grid(
- KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC,
- _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS,
- _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NUHS, KC_NUBS, KC_PGUP, KC_PGDN, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, KC_MPLY, KC_VOLD, KC_VOLU, KC_MNXT
- ),
-
- /* Adjust (Lower + Raise)
- * ,-----------------------------------------------------------------------------------.
- * | | Reset| | | | | | | | | | Del |
- * |------+------+------+------+------+-------------+------+------+------+------+------|
- * |CPSLCK| | |Aud on|Audoff|AGnorm|AGswap|Qwerty|Wrkman|Dvorak|Colemk| |
- * |------+------+------+------+------+------|------+------+------+------+------+------|
- * | |Voice-|Voice+|Mus on|Musoff|MIDIon|MIDIof| | | | | |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | | | | | | | | | | | |
- * `-----------------------------------------------------------------------------------'
- */
- [_ADJUST] = LAYOUT_planck_grid(
- _______, QK_BOOT, DB_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL ,
- KC_CAPS, _______, MU_NEXT, AU_ON, AU_OFF, AG_NORM, AG_SWAP, QWERTY, WORKMAN, DVORAK, COLEMAK, _______,
- _______, AU_PREV, AU_NEXT, MU_ON, MU_OFF, MI_ON, MI_OFF, RGB_M_R, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
- ),
-
- /* Numpad
- * ,-----------------------------------------------------------------------------------.
- * | | ✗ | Home | Up | End | PgUp | ✗ | 7 | 8 | 9 | + | |
- * |------+------+------+------+------+-------------+------+------+------+------+------|
- * | | ✗ | Left | Down | Right| PgDn | ✗ | 4 | 5 | 6 | - | ✗ |
- * |------+------+------+------+------+------|------+------+------+------+------+------|
- * | | / | * | - | + | Enter| ✗ | 1 | 2 | 3 | * | Enter|
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | | | | | ✗ | | 0 | 0 | . | / | = |
- * `-----------------------------------------------------------------------------------'
- */
- [_NUMPAD] = LAYOUT_planck_grid(
- _______, KC_NO, KC_HOME, KC_UP, KC_END, KC_PGUP, KC_NO, KC_P7, KC_P8, KC_P9, KC_PPLS, _______,
- _______, KC_NO, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, KC_NO, KC_P4, KC_P5, KC_P6, KC_PMNS, KC_NO,
- _______, KC_PSLS, KC_PAST, KC_PMNS, KC_PPLS, KC_PENT, KC_NO, KC_P1, KC_P2, KC_P3, KC_PAST, KC_PENT,
- _______, _______, _______, _______, KC_NO, _______, _______, KC_P0, KC_P0, KC_PDOT, KC_PSLS, KC_PEQL
- )
-
-};
-
-bool process_record_user(uint16_t keycode, keyrecord_t *record) {
- switch (keycode) {
- case QWERTY:
- if (record->event.pressed) {
- print("mode just switched to qwerty and this is a huge string\n");
- set_single_persistent_default_layer(_QWERTY);
- }
- return false;
- case WORKMAN:
- if (record->event.pressed) {
- set_single_persistent_default_layer(_WORKMAN);
- }
- return false;
- case DVORAK:
- if (record->event.pressed) {
- set_single_persistent_default_layer(_DVORAK);
- }
- return false;
- case COLEMAK:
- if (record->event.pressed) {
- set_single_persistent_default_layer(_COLEMAK);
- }
- return false;
- case LOWER:
- if (record->event.pressed) {
- layer_on(_LOWER);
- update_tri_layer(_LOWER, _RAISE, _ADJUST);
- } else {
- layer_off(_LOWER);
- update_tri_layer(_LOWER, _RAISE, _ADJUST);
- }
- return false;
- case RAISE:
- if (record->event.pressed) {
- layer_on(_RAISE);
- update_tri_layer(_LOWER, _RAISE, _ADJUST);
- } else {
- layer_off(_RAISE);
- update_tri_layer(_LOWER, _RAISE, _ADJUST);
- }
- return false;
- }
- return true;
-}
diff --git a/keyboards/planck/keymaps/dudeofawesome/readme.md b/keyboards/planck/keymaps/dudeofawesome/readme.md
deleted file mode 100644
index 7e2f7dc943..0000000000
--- a/keyboards/planck/keymaps/dudeofawesome/readme.md
+++ /dev/null
@@ -1,22 +0,0 @@
-# DudeOfAwesome's Planck Layout
-
-![Planck Layout](https://i.imgur.com/mOc2Sbd.png)
-
-## Features
-
-- Base Layers
- - QWERTY
- - Workman
- - Dvorak
- - Colemak
-- Numpad layer
- ![numpad layer](https://i.imgur.com/PQENcut.png)
-- Audio
-
-## Building and flashing
-
-1. Put your board in DFU mode with either the button on the bottom, or with a software key in your current firmware
-1. Flash:
- ```bash
- $ make make planck/rev4:dudeofawesome:dfu
- ```
diff --git a/keyboards/planck/keymaps/dudeofawesome/rules.mk b/keyboards/planck/keymaps/dudeofawesome/rules.mk
deleted file mode 100644
index eeee270d5e..0000000000
--- a/keyboards/planck/keymaps/dudeofawesome/rules.mk
+++ /dev/null
@@ -1,7 +0,0 @@
-AUDIO_ENABLE = yes # Audio output on port C6
-CONSOLE_ENABLE = no # Console for debug(+400)
-MIDI_ENABLE = no # MIDI controls
-MOUSEKEY_ENABLE = no # Mouse keys(+4700)
-NKRO_ENABLE = no # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
-RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight.
-
diff --git a/keyboards/planck/keymaps/emilyh/keymap.c b/keyboards/planck/keymaps/emilyh/keymap.c
index 17bbc98b7e..b226c1f6e7 100644
--- a/keyboards/planck/keymaps/emilyh/keymap.c
+++ b/keyboards/planck/keymaps/emilyh/keymap.c
@@ -164,16 +164,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
};
#ifdef AUDIO_ENABLE
-
-float tone_startup[][2] = SONG(STARTUP_SOUND);
float tone_qwerty[][2] = SONG(QWERTY_SOUND);
float tone_dvorak[][2] = SONG(DVORAK_SOUND);
float tone_colemak[][2] = SONG(COLEMAK_SOUND);
float tone_plover[][2] = SONG(PLOVER_SOUND);
float tone_plover_gb[][2] = SONG(PLOVER_GOODBYE_SOUND);
-float music_scale[][2] = SONG(MUSIC_SCALE_SOUND);
-
-float tone_goodbye[][2] = SONG(GOODBYE_SOUND);
#endif
@@ -273,36 +268,3 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
}
return true;
}
-
-void matrix_init_user(void) {
- #ifdef AUDIO_ENABLE
- startup_user();
- #endif
-}
-
-#ifdef AUDIO_ENABLE
-
-void startup_user(void)
-{
- _delay_ms(20); // gets rid of tick
- PLAY_SONG(tone_startup);
-}
-
-void shutdown_user(void)
-{
- PLAY_SONG(tone_goodbye);
- _delay_ms(150);
- stop_all_notes();
-}
-
-void music_on_user(void)
-{
- music_scale_user();
-}
-
-void music_scale_user(void)
-{
- PLAY_SONG(music_scale);
-}
-
-#endif
diff --git a/keyboards/planck/keymaps/experimental/keymap.c b/keyboards/planck/keymaps/experimental/keymap.c
index d5c7425439..deaf5afb4d 100644
--- a/keyboards/planck/keymaps/experimental/keymap.c
+++ b/keyboards/planck/keymaps/experimental/keymap.c
@@ -1,6 +1,5 @@
#include QMK_KEYBOARD_H
-#include "keymap_steno.h"
#include "version.h"
extern keymap_config_t keymap_config;
@@ -177,16 +176,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
};
#ifdef AUDIO_ENABLE
-
-float tone_startup[][2] = SONG(STARTUP_SOUND);
float tone_qwerty[][2] = SONG(QWERTY_SOUND);
float tone_dvorak[][2] = SONG(DVORAK_SOUND);
float tone_colemak[][2] = SONG(COLEMAK_SOUND);
float tone_plover[][2] = SONG(PLOVER_SOUND);
float tone_plover_gb[][2] = SONG(PLOVER_GOODBYE_SOUND);
-float music_scale[][2] = SONG(MUSIC_SCALE_SOUND);
-
-float tone_goodbye[][2] = SONG(GOODBYE_SOUND);
#endif
@@ -340,38 +334,6 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
return true;
};
-void matrix_init_user(void) {
- #ifdef AUDIO_ENABLE
- startup_user();
- #endif
-}
-
-#ifdef AUDIO_ENABLE
-void startup_user(void)
-{
- _delay_ms(20); // gets rid of tick
- PLAY_SONG(tone_startup);
-}
-
-void shutdown_user(void)
-{
- PLAY_SONG(tone_goodbye);
- _delay_ms(150);
- stop_all_notes();
-}
-
-void music_on_user(void)
-{
- music_scale_user();
-}
-
-void music_scale_user(void)
-{
- PLAY_SONG(music_scale);
-}
-
-#endif
-
void leader_end_user(void) {
if (leader_sequence_one_key(KC_R)) {
tap_random_base64();
diff --git a/keyboards/planck/keymaps/gunp/keymap.c b/keyboards/planck/keymaps/gunp/keymap.c
index 7c2f6c0bd5..9fa05d593a 100644
--- a/keyboards/planck/keymaps/gunp/keymap.c
+++ b/keyboards/planck/keymaps/gunp/keymap.c
@@ -282,26 +282,3 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
return false;
}
#endif
-
-#ifdef AUDIO_ENABLE
- float tone_startup[][2] = SONG(STARTUP_SOUND);
- float tone_goodbye[][2] = SONG(GOODBYE_SOUND);
-
- float tone_ly_normal[][2] = SONG(QWERTY_SOUND);
- float tone_ly_spacial[][2] = SONG(DVORAK_SOUND);
-
- float music_scale[][2] = SONG(MUSIC_SCALE_SOUND);
-#endif
-
-void startup_user(void) {
-#ifdef AUDIO_ENABLE
- PLAY_SONG(tone_startup);
-#endif
-}
-
-void shutdown_user(void) {
-#ifdef AUDIO_ENABLE
- PLAY_SONG(tone_goodbye);
- stop_all_notes();
-#endif
-}
diff --git a/keyboards/planck/keymaps/handwired_binaryplease/keymap.c b/keyboards/planck/keymaps/handwired_binaryplease/keymap.c
index 13917e516d..93e6f9b78e 100644
--- a/keyboards/planck/keymaps/handwired_binaryplease/keymap.c
+++ b/keyboards/planck/keymaps/handwired_binaryplease/keymap.c
@@ -163,15 +163,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
#ifdef AUDIO_ENABLE
-float tone_startup[][2] = SONG(STARTUP_SOUND);
float tone_qwerty[][2] = SONG(QWERTY_SOUND);
float tone_dvorak[][2] = SONG(DVORAK_SOUND);
float tone_colemak[][2] = SONG(COLEMAK_SOUND);
float tone_plover[][2] = SONG(PLOVER_SOUND);
float tone_plover_gb[][2] = SONG(PLOVER_GOODBYE_SOUND);
-float music_scale[][2] = SONG(MUSIC_SCALE_SOUND);
-
-float tone_goodbye[][2] = SONG(GOODBYE_SOUND);
#endif
@@ -271,36 +267,3 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
}
return true;
}
-
-void matrix_init_user(void) {
- #ifdef AUDIO_ENABLE
- startup_user();
- #endif
-}
-
-#ifdef AUDIO_ENABLE
-
-void startup_user(void)
-{
- _delay_ms(20); // gets rid of tick
- PLAY_SONG(tone_startup);
-}
-
-void shutdown_user(void)
-{
- PLAY_SONG(tone_goodbye);
- _delay_ms(150);
- stop_all_notes();
-}
-
-void music_on_user(void)
-{
- music_scale_user();
-}
-
-void music_scale_user(void)
-{
- PLAY_SONG(music_scale);
-}
-
-#endif
diff --git a/keyboards/planck/keymaps/hiea/common/init.h b/keyboards/planck/keymaps/hiea/common/init.h
index 6d0b4392fb..e6bb7101e9 100644
--- a/keyboards/planck/keymaps/hiea/common/init.h
+++ b/keyboards/planck/keymaps/hiea/common/init.h
@@ -6,9 +6,6 @@ void matrix_init_user(void)
#ifdef STENO_ENABLE
steno_set_mode(STENO_MODE_BOLT); // or STENO_MODE_GEMINI
#endif
-#ifdef AUDIO_ENABLE
- startup_user();
-#endif
}
#ifdef AUDIO_ENABLE
@@ -31,27 +28,4 @@ bool led_update_user(led_t led_state)
return false;
}
#endif
-
-void startup_user(void)
-{
- _delay_ms(20); // gets rid of tick
- PLAY_SONG(song_startup);
-}
-
-void shutdown_user(void)
-{
- PLAY_SONG(song_goodbye);
- _delay_ms(150);
- stop_all_notes();
-}
-
-void music_on_user(void)
-{
- music_scale_user();
-}
-
-void music_scale_user(void)
-{
- PLAY_SONG(music_scale);
-}
#endif
diff --git a/keyboards/planck/keymaps/hiea/keymap.c b/keyboards/planck/keymaps/hiea/keymap.c
index eed4954096..be138a3eb4 100644
--- a/keyboards/planck/keymaps/hiea/keymap.c
+++ b/keyboards/planck/keymaps/hiea/keymap.c
@@ -67,9 +67,6 @@
#include QMK_KEYBOARD_H
-#ifdef STENO_ENABLE
-#include "keymap_steno.h"
-#endif
extern keymap_config_t keymap_config;
diff --git a/keyboards/planck/keymaps/hieax/common/init.h b/keyboards/planck/keymaps/hieax/common/init.h
index 6d0b4392fb..d009bd69a1 100644
--- a/keyboards/planck/keymaps/hieax/common/init.h
+++ b/keyboards/planck/keymaps/hieax/common/init.h
@@ -6,9 +6,6 @@ void matrix_init_user(void)
#ifdef STENO_ENABLE
steno_set_mode(STENO_MODE_BOLT); // or STENO_MODE_GEMINI
#endif
-#ifdef AUDIO_ENABLE
- startup_user();
-#endif
}
#ifdef AUDIO_ENABLE
@@ -32,26 +29,4 @@ bool led_update_user(led_t led_state)
}
#endif
-void startup_user(void)
-{
- _delay_ms(20); // gets rid of tick
- PLAY_SONG(song_startup);
-}
-
-void shutdown_user(void)
-{
- PLAY_SONG(song_goodbye);
- _delay_ms(150);
- stop_all_notes();
-}
-
-void music_on_user(void)
-{
- music_scale_user();
-}
-
-void music_scale_user(void)
-{
- PLAY_SONG(music_scale);
-}
#endif
diff --git a/keyboards/planck/keymaps/hieax/keymap.c b/keyboards/planck/keymaps/hieax/keymap.c
index 80de85b884..4acd526916 100644
--- a/keyboards/planck/keymaps/hieax/keymap.c
+++ b/keyboards/planck/keymaps/hieax/keymap.c
@@ -67,9 +67,6 @@
#include QMK_KEYBOARD_H
-#ifdef STENO_ENABLE
-#include "keymap_steno.h"
-#endif
extern keymap_config_t keymap_config;
diff --git a/keyboards/planck/keymaps/hvp/config.h b/keyboards/planck/keymaps/hvp/config.h
deleted file mode 100644
index 472320ed68..0000000000
--- a/keyboards/planck/keymaps/hvp/config.h
+++ /dev/null
@@ -1,35 +0,0 @@
-#pragma once
-#define TAPPING_TERM 150
-#define PERMISSIVE_HOLD
-
-#ifdef AUDIO_ENABLE
-# define STARTUP_SONG SONG(PLANCK_SOUND)
-// #define STARTUP_SONG SONG(NO_SOUND)
-
-# define DEFAULT_LAYER_SONGS \
- { SONG(QWERTY_SOUND), SONG(COLEMAK_SOUND), SONG(DVORAK_SOUND) }
-#endif
-
-/*
- * MIDI options
- */
-
-/* enable basic MIDI features:
- - MIDI notes can be sent when in Music mode is on
-*/
-
-#define MIDI_BASIC
-
-/* enable advanced MIDI features:
- - MIDI notes can be added to the keymap
- - Octave shift and transpose
- - Virtual sustain, portamento, and modulation wheel
- - etc.
-*/
-//#define MIDI_ADVANCED
-
-/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
-//#define MIDI_TONE_KEYCODE_OCTAVES 2
-
-// Most tactile encoders have detents every 4 stages
-#define ENCODER_RESOLUTION 4
diff --git a/keyboards/planck/keymaps/hvp/keymap.c b/keyboards/planck/keymaps/hvp/keymap.c
deleted file mode 100644
index bd0c2cadec..0000000000
--- a/keyboards/planck/keymaps/hvp/keymap.c
+++ /dev/null
@@ -1,186 +0,0 @@
-/* Copyright 2015-2017 Jack Humbert
- *
- * 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 "hvp.c"
-#include QMK_KEYBOARD_H
-#include "muse.h"
-
-enum planck_layers {
- _QWERTY,
- _LOWER,
- _RAISE,
- _NAVI,
- _ADJUST
-};
-
-enum planck_keycodes {
- QWERTY = SAFE_RANGE
-};
-
-#define _QWERTY 0
-#define _RAISE 1
-#define _LOWER 2
-#define _NAVI 3
-#define _ADJUST 5
-
-#define LT3_ESC LT(3, KC_ESC)
-#define LT4_TAB LT(5, KC_TAB)
-
-#define LOWER MO(_LOWER)
-#define RAISE MO(_RAISE)
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
-[_QWERTY] = LAYOUT_planck_grid(
- LT4_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,
- LT3_ESC, KC_A, KC_S, KC_D, LT(3,KC_F), KC_G, KC_H, KC_J, KC_K, KC_L, TD(TD1), TD(TD2),
- KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, TD(TD3), SC_SENT,
- KC_LCTL, KC_APP, KC_LGUI, KC_LALT, MO(2), KC_SPC, KC_SPC, MO(1), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT
-),
-
-[_RAISE] = LAYOUT_planck_grid( /* Right */
- KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC,
- KC_DEL, _______, _______, _______, _______, _______, _______, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS,
- _______, _______, _______, _______, _______, _______, _______, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE,
- _______, _______, _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_PGUP, KC_END
-),
-
-[_LOWER] = LAYOUT_planck_grid( /* Left */
- KC_TILDE, KC_EXCLAIM, KC_AT, KC_HASH, KC_DOLLAR, KC_PERCENT, KC_CIRCUMFLEX, KC_AMPERSAND, KC_ASTERISK, KC_LEFT_PAREN, KC_RIGHT_PAREN, KC_BSPC,
- KC_DEL, _______, _______, _______, _______, _______, _______, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_BSLS,
- _______, _______, _______, _______, _______, _______, _______, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_TILD,
- _______, _______, _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_PGUP, KC_END
-),
-
-[_NAVI] = LAYOUT_planck_grid( /* 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,
- _______, _______, _______, D_NAVI, _______, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, _______, KC_PSCR,
- _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_PGUP, KC_END, _______, _______,
- _______, _______, _______, _______, KC_MSTP, KC_MPLY, KC_MPLY, KC_MSTP, KC_MPRV, KC_VOLD, KC_VOLU, KC_MNXT
-),
-
-[_ADJUST] = LAYOUT_planck_grid( /* Tab */
- _______, _______, AG_NORM, AG_SWAP, _______, _______, _______, KC_7, KC_8, KC_9, KC_0, _______,
- _______, _______, MU_NEXT, AU_ON, AU_OFF, _______, _______, KC_4, KC_5, KC_6, _______, _______,
- KC_PSCR, AU_PREV, AU_NEXT, MU_ON, MU_OFF, _______, _______, KC_0, KC_1, KC_2, KC_3, _______,
- QK_BOOT, _______, _______, _______, MI_ON, MI_OFF, _______, _______, _______, _______, _______, DB_TOGG
-)};
-
-#ifdef AUDIO_ENABLE
- float plover_song[][2] = SONG(PLOVER_SOUND);
- float plover_gb_song[][2] = SONG(PLOVER_GOODBYE_SOUND);
-#endif
-
-bool muse_mode = false;
-uint8_t last_muse_note = 0;
-uint16_t muse_counter = 0;
-uint8_t muse_offset = 70;
-uint16_t muse_tempo = 50;
-
-bool encoder_update_user(uint8_t index, bool clockwise) {
- if (muse_mode) {
- if (IS_LAYER_ON(_RAISE)) {
- if (clockwise) {
- muse_offset++;
- } else {
- muse_offset--;
- }
- } else {
- if (clockwise) {
- muse_tempo+=1;
- } else {
- muse_tempo-=1;
- }
- }
- } else {
- if (clockwise) {
- #ifdef MOUSEKEY_ENABLE
- tap_code(KC_MS_WH_DOWN);
- #else
- tap_code(KC_PGDN);
- #endif
- } else {
- #ifdef MOUSEKEY_ENABLE
- tap_code(KC_MS_WH_UP);
- #else
- tap_code(KC_PGUP);
- #endif
- }
- }
- return true;
-}
-
-bool dip_switch_update_user(uint8_t index, bool active) {
- switch (index) {
- case 0: {
-#ifdef AUDIO_ENABLE
- static bool play_sound = false;
-#endif
- if (active) {
-#ifdef AUDIO_ENABLE
- if (play_sound) { PLAY_SONG(plover_song); }
-#endif
- layer_on(_ADJUST);
- } else {
-#ifdef AUDIO_ENABLE
- if (play_sound) { PLAY_SONG(plover_gb_song); }
-#endif
- layer_off(_ADJUST);
- }
-#ifdef AUDIO_ENABLE
- play_sound = true;
-#endif
- break;
- }
- case 1:
- if (active) {
- muse_mode = true;
- } else {
- muse_mode = false;
- }
- }
- return true;
-}
-
-void matrix_scan_user(void) {
-#ifdef AUDIO_ENABLE
- if (muse_mode) {
- if (muse_counter == 0) {
- uint8_t muse_note = muse_offset + SCALE[muse_clock_pulse()];
- if (muse_note != last_muse_note) {
- stop_note(compute_freq_for_midi_note(last_muse_note));
- play_note(compute_freq_for_midi_note(muse_note), 0xF);
- last_muse_note = muse_note;
- }
- }
- muse_counter = (muse_counter + 1) % muse_tempo;
- } else {
- if (muse_counter) {
- stop_all_notes();
- muse_counter = 0;
- }
- }
-#endif
-}
-
-bool music_mask_user(uint16_t keycode) {
- switch (keycode) {
- case RAISE:
- case LOWER:
- return false;
- default:
- return true;
- }
-}
diff --git a/keyboards/planck/keymaps/hvp/readme.md b/keyboards/planck/keymaps/hvp/readme.md
deleted file mode 100644
index cb58d85785..0000000000
--- a/keyboards/planck/keymaps/hvp/readme.md
+++ /dev/null
@@ -1,10 +0,0 @@
-Keyboard: Planck rev6
-Keys: 40% (12x4) ortholinear keyboard
-Layout: Swedish characters on main layer using tap dance. Built for Eurkey keyboard layout.
-Flash instructions: Flash using avrdude, will req the hvp user space to compile.
-
-> make planck/rev6:hvp:dfu-util
-
-Links:
-Github - https://github.com/qmk/qmk_firmware/tree/master/keyboards/planck
-Eurkey layout - https://eurkey.steffen.bruentjen.eu/
diff --git a/keyboards/planck/keymaps/hvp/rules.mk b/keyboards/planck/keymaps/hvp/rules.mk
deleted file mode 100644
index 896115f718..0000000000
--- a/keyboards/planck/keymaps/hvp/rules.mk
+++ /dev/null
@@ -1,4 +0,0 @@
-SRC += muse.c
-
-RGBLIGHT_ENABLE = no
-TAP_DANCE_ENABLE = yes \ No newline at end of file
diff --git a/keyboards/planck/keymaps/impossible/keymap.c b/keyboards/planck/keymaps/impossible/keymap.c
index 9145ad79aa..8aa3eb149f 100644
--- a/keyboards/planck/keymaps/impossible/keymap.c
+++ b/keyboards/planck/keymaps/impossible/keymap.c
@@ -140,16 +140,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
};
#ifdef AUDIO_ENABLE
-
-float tone_startup[][2] = SONG(STARTUP_SOUND);
-float tone_goodbye[][2] = SONG(GOODBYE_SOUND);
-
float tone_workman[][2] = SONG(QWERTY_SOUND);
float tone_qwerty[][2] = SONG(COLEMAK_SOUND);
float tone_plover[][2] = SONG(PLOVER_SOUND);
-
-float music_scale[][2] = SONG(MUSIC_SCALE_SOUND);
-
#endif
@@ -196,36 +189,3 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
}
return true;
}
-
-void matrix_init_user(void) {
- #ifdef AUDIO_ENABLE
- startup_user();
- #endif
-}
-
-#ifdef AUDIO_ENABLE
-
-void startup_user(void)
-{
- _delay_ms(20); // gets rid of tick
- PLAY_SONG(tone_startup);
-}
-
-void shutdown_user(void)
-{
- PLAY_SONG(tone_goodbye);
- _delay_ms(150);
- stop_all_notes();
-}
-
-void music_on_user(void)
-{
- music_scale_user();
-}
-
-void music_scale_user(void)
-{
- PLAY_SONG(music_scale);
-}
-
-#endif
diff --git a/keyboards/planck/keymaps/ishtob/config.h b/keyboards/planck/keymaps/ishtob/config.h
deleted file mode 100755
index 688607634c..0000000000
--- a/keyboards/planck/keymaps/ishtob/config.h
+++ /dev/null
@@ -1,34 +0,0 @@
-
-#ifndef USERSPACE_CONFIG_H
-#define USERSPACE_CONFIG_H
-
-#ifdef AUDIO_ENABLE
-
-// #define STARTUP_SONG SONG(E1M1_DOOM)
-// #define GOODBYE_SONG SONG(SONIC_RING)
-/* #define DEFAULT_LAYER_SONGS { SONG(QWERTY_SOUND), \
- SONG(COLEMAK_SOUND), \
- SONG(DVORAK_SOUND), \
- }
-*/
-//audio clicky
- #define AUDIO_CLICKY
- // to enable clicky on startup
- //#define AUDIO_CLICKY_ON
- #define AUDIO_CLICKY_FREQ_RANDOMNESS 1.0f
-
-
-#endif
-
-#define FORCE_NKRO
-
-#define LEADER_TIMEOUT 300
-
-#undef DEBOUNCE
-#define DEBOUNCE 0
-
-//skip usb startup check
-//#define NO_USB_STARTUP_CHECK
-
-
-#endif
diff --git a/keyboards/planck/keymaps/ishtob/keymap.c b/keyboards/planck/keymaps/ishtob/keymap.c
deleted file mode 100644
index 75c581de19..0000000000
--- a/keyboards/planck/keymaps/ishtob/keymap.c
+++ /dev/null
@@ -1,344 +0,0 @@
-// This is the canonical layout file for the Quantum project. If you want to add another keyboard,
-// this is the style you want to emulate.
-
-#include "ishtob.h"
-
-extern keymap_config_t keymap_config;
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-/* Qwerty
- ,-----------------------------------------------------------------------------------.
- * |Tab/FN| Q | W | E | R | T | Y | U | I | O | P | Bksp |
- * |------+------+------+------+------+-------------+------+------+------+------+------|
- * | LCtl | A | S | D | F | G | H | J | K | L | ; |Ctl/Et|
- * |------+------+------+------+------+------|------+------+------+------+------+------|
- * | Shift| Z | X | C | V | B | N | M | , | . | / | - |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | Esc | Caps | Alt | GUI |Lower | Space |Raise |NumLay| RAlt | Men | Del |
- * `-----------------------------------------------------------------------------------'
- */
-[_QWERTY] = LAYOUT_ortho_4x12_wrapper(
- LT_FN(KC_TAB), _________________QWERTY_L1_________________, _________________QWERTY_R1_________________, KC_BSPC,
- KC_LCTL, _________________QWERTY_L2_________________, _________________QWERTY_R2_________________, CTL_ENT,
- KC_LSFT, _________________QWERTY_L3_________________, _________________QWERTY_R3_________________, LT_RAI(KC_MINS),
- KC_ESC, KC_CAPS, KC_LGUI, KC_LALT, LOWER, KC_SPC, KC_SPC, RAISE, KC_RALT, TG_NUMLAY, KC_APP, KC_DEL
-),
-
-/* Colemak
- * ,-----------------------------------------------------------------------------------.
- * | Tab | Q | W | F | P | G | J | L | U | Y | ; | Bksp |
- * |------+------+------+------+------+-------------+------+------+------+------+------|
- * | Esc | A | R | S | T | D | H | N | E | I | O |Ctl/Et|
- * |------+------+------+------+------+------|------+------+------+------+------+------|
- * | Shift| Z | X | C | V | B | K | M | , | . | / | - |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | Brite| Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right |
- * `-----------------------------------------------------------------------------------'
- */
-[_COLEMAK] = LAYOUT_ortho_4x12_wrapper(
- LT_FN(KC_TAB), _________________COLEMAK_L1________________, _________________COLEMAK_R1________________, KC_BSPC,
- KC_LCTL, _________________COLEMAK_L2________________, _________________COLEMAK_R2________________, KC_ENT,
- KC_LSFT, _________________COLEMAK_L3________________, _________________COLEMAK_R3________________, LT_RAI(KC_MINS),
- KC_ESC, KC_CAPS, KC_LGUI, KC_LALT, LOWER, KC_SPC, KC_SPC, RAISE, KC_RALT, TG_NUMLAY, KC_APP, KC_DEL
-),
-
-/* Dvorak
- * ,-----------------------------------------------------------------------------------.
- * | Tab | " | , | . | P | Y | F | G | C | R | L | Bksp |
- * |------+------+------+------+------+-------------+------+------+------+------+------|
- * | Esc | A | O | E | U | I | D | H | T | N | S |Ctl/Et|
- * |------+------+------+------+------+------|------+------+------+------+------+------|
- * | Shift| ; | Q | J | K | X | B | M | W | V | Z |Enter |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | Brite| Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right |
- * `-----------------------------------------------------------------------------------'
- */
-[_DVORAK] = LAYOUT_ortho_4x12_wrapper(
- LT_FN(KC_TAB), _________________DVORAK_L1_________________, _________________DVORAK_R1_________________, KC_BSPC,
- KC_LCTL, _________________DVORAK_L2_________________, _________________DVORAK_R2_________________, KC_ENT,
- KC_LSFT, _________________DVORAK_L3_________________, _________________DVORAK_R3_________________, LT_RAI(KC_MINS),
- KC_ESC, KC_CAPS, KC_LGUI, KC_LALT, LOWER, KC_SPC, KC_SPC, RAISE, KC_RALT, TG_NUMLAY, KC_APP, KC_DEL
-),
-
-/* Lower
- * ,-----------------------------------------------------------------------------------.
- * | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | ~ | \ |
- * |------+------+------+------+------+-------------+------+------+------+------+------|
- * | | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | |
- * |------+------+------+------+------+------|------+------+------+------+------+------|
- * | | F7 | F8 | F9 | F10 | F11 | F12 |ISO ~ |ISO | | [ | ] | |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | | | | | | | | Next | Vol- | Vol+ | Play |
- * `-----------------------------------------------------------------------------------'
- */
-[_LOWER] = LAYOUT_ortho_4x12_wrapper(
- ________________NUMBER_LEFT________________, ________________NUMBER_RIGHT_______________, KC_GRV, KC_BSLS,
- _______, __________________LONG_FUNC_LEFT___________________, KC_UNDS, KC_EQL, KC_LBRC, KC_RBRC, KC_PIPE,
- _______, __________________LONG_FUNC_RIGHT__________________,S(KC_NUHS),S(KC_NUBS),KC_LCBR, KC_RCBR, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY
-),
-
-/* Raise
- * ,-----------------------------------------------------------------------------------.
- * | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | * | \ |
- * |------+------+------+------+------+-------------+------+------+------+------+------|
- * | | A | Up | D | | Vol+ | 4 | 5 | 6 | + | : | ' |
- * |------+------+------+------+------+------|------+------+------+------+------+------|
- * | | Lt | Dn | Rt | Mute | Vol- | 1 | 2 | 3 | Up | / | |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | | | | | | | 0 | | Left | Down | Right| NumLk|
- * `-----------------------------------------------------------------------------------'
- */
-[_RAISE] = LAYOUT_ortho_4x12_wrapper(
- ________________NUMBER_LEFT________________, ________________NUMBER_RIGHT_______________, KC_PLUS, KC_BSLS,
- _______, KC_A, KC_UP, KC_D, KC_PSCR, KC_VOLU, KC_4, KC_5, KC_6, KC_PAST, KC_COLN, KC_QUOT,
- _______, KC_LEFT, KC_DOWN, KC_RIGHT,KC_MUTE, KC_VOLD, KC_1, KC_2, KC_3, KC_UP, KC_SLSH, _______,
- _______, _______, _______, _______, _______, KC_SPC, KC_0, _______, KC_LEFT, KC_DOWN, KC_RIGHT, KC_NUM
-),
-
-/* Plover layer (http://opensteno.org)
- * ,-----------------------------------------------------------------------------------.
- * | # | # | # | # | # | # | # | # | # | # | # | # |
- * |------+------+------+------+------+-------------+------+------+------+------+------|
- * | | S | T | P | H | * | * | F | P | L | T | D |
- * |------+------+------+------+------+------|------+------+------+------+------+------|
- * | | S | K | W | R | * | * | R | B | G | S | Z |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | Exit | | | A | O | | E | U | | | |
- * `-----------------------------------------------------------------------------------'
- */
-
-[_PLOVER] = LAYOUT_ortho_4x12_wrapper(
- KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1 ,
- XXXXXXX, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC,
- XXXXXXX, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
- EXT_PLV, XXXXXXX, XXXXXXX, KC_C, KC_V, XXXXXXX, XXXXXXX, KC_N, KC_M, XXXXXXX, XXXXXXX, XXXXXXX
-),
-
-/* FN layer on Esc key
- * ,-----------------------------------------------------------------------------------.
- * | | ! | @ | # | $ | % | ^ | & | * | ( | ) | + |
- * |------+------+------+------+------+-------------+------+------+------+------+------|
- * | | F1 | F2 | F3 | F4 | F5 | F6 | _ | = | [ | ] | ' |
- * |------+------+------+------+------+------|------+------+------+------+------+------|
- * | | F7 | F8 | F9 | F10 | F11 | F12 |ISO ~ |ISO | | { | } |Enter |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | | | | | | | | Next | Vol- | Vol+ | Play |
- * `-----------------------------------------------------------------------------------'
- */
-[_FNLAYER] = LAYOUT_ortho_4x12_wrapper(
- _______, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_PLUS,
- _______, __________________LONG_FUNC_LEFT___________________, KC_UNDS, KC_EQL, KC_LBRC, KC_RBRC, KC_QUOT,
- _______, __________________LONG_FUNC_RIGHT__________________,S(KC_NUHS),S(KC_NUBS),KC_LCBR, KC_RCBR, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY
-),
-
-/* Num Layer
- * ,-----------------------------------------------------------------------------------.
- * | | Q | Up | 4 | | | 7 | 8 | 9 | - | + | Bksp |
- * |------+------+------+------+------+-------------+------+------+------+------+------|
- * | | Lt | Dn | Rt | | | 4 | 5 | 6 | * | : | ENT |
- * |------+------+------+------+------+------|------+------+------+------+------+------|
- * | | Z | X | C | V | | 1 | 2 | 3 | . | / | |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | | | | | | | 0 | . | Exit | Vol- | Vol+ | Play |
- * `-----------------------------------------------------------------------------------'
- */
-[_NUMLAY] = LAYOUT_ortho_4x12_wrapper(
- _______, KC_Q, KC_UP, KC_H, XXXXXXX, XXXXXXX, KC_P7, KC_P8, KC_P9, KC_MINS, KC_PLUS, KC_BSPC,
- _______, KC_LEFT, KC_DOWN, KC_RIGHT, XXXXXXX, XXXXXXX, KC_P4, KC_P5, KC_P6, KC_PAST, KC_COLN, KC_ENT,
- _______, KC_Z, KC_X, KC_C, KC_V, XXXXXXX, KC_P1, KC_P2, KC_P3, KC_PDOT, KC_PSLS, _______,
- _______, _______, _______, _______, _______, _______, KC_P0, KC_PDOT, _______, _______, KC_NUM, KC_MPLY
-),
-
-/* Mouse Layer (semi-col)
- * ,-----------------------------------------------------------------------------------.
- * | ACCL0| ACCL1| ACCL2|Email |Email2| Home | Wh_Up| WHL_L| M_Up | WHL_R|PASS| Meta |
- * |------+------+------+------+------+-------------+------+------+------+------+------|
- * | | | | |RT Q6H| End | Wh_Dn| M_Lft| M_Dn | M_Rt | | DayRn|
- * |------+------+------+------+------+------|------+------+------+------+------+------|
- * | | | | | | | BTN2 | BTN3 | BTN4 | BTN5 | | |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | | | | | | BTN1 | | | | Citx | |
- * `-----------------------------------------------------------------------------------'
- */
-
-[_MOUSECURSOR] = LAYOUT_ortho_4x12_wrapper(
- KC_ACL0, KC_ACL1, KC_ACL2, M_EMAIL,M_EMAIL2, KC_HOME, KC_PGUP, KC_WH_L, KC_MS_U, KC_WH_R, P_MPASS, P_META,
- _______, XXXXXXX, XXXXXXX, XXXXXXX, O_RTQ6H, KC_END , KC_PGDN, KC_MS_L, KC_MS_D, KC_MS_R, _______, O_DAYRN,
- _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, KC_BTN2, KC_BTN3, KC_BTN4, KC_BTN5, _______, _______,
- _______, _______, _______, _______, _______, KC_BTN1, KC_BTN1, _______, _______, _______, P_CITRIX, O_AUTODC
-),
-
-/* Adjust (Lower + Raise)
- * ,-----------------------------------------------------------------------------------.
- * | Reset|RGB TG|RGB ST|RGBH -|RGBH +|RGBS -|RGBS +|RGBV -|RGBV +| | | Del |
- * |------+------+------+------+------+-------------+------+------+------+------+------|
- * | | | |Aud on|Audoff|AGnorm|AGswap|Qwerty|Colemk|Dvorak|Plover| |
- * |------+------+------+------+------+------|------+------+------+------+------+------|
- * | |Voice-|Voice+|Mus on|Musoff| | | | | BL + |BL ST |BL TG |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | | | | | | | | | | | |
- * `-----------------------------------------------------------------------------------'
- */
-[_ADJUST] = LAYOUT_ortho_4x12_wrapper(
- DFU, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, KC_DEL,
- _______, MAGIC_TOGGLE_NKRO, _______, AU_ON, AU_OFF, AG_NORM, AG_SWAP, QWERTY, COLEMAK, DVORAK, PLOVER, _______,
- _______, AU_PREV, AU_NEXT, MU_ON, MU_OFF, MI_ON, MI_OFF, _______, BL_DOWN,BL_UP, BL_STEP, BL_TOGG,
- _______, _______, _______, _______, _______, _______, _______, _______, CK_RST, CK_DOWN, CK_UP, CK_TOGG
-)
-
-
-};
-
-#ifdef AUDIO_ENABLE
-
-float tone_startup[][2] = SONG(STARTUP_SOUND);
-float tone_qwerty[][2] = SONG(QWERTY_SOUND);
-float tone_dvorak[][2] = SONG(DVORAK_SOUND);
-float tone_colemak[][2] = SONG(COLEMAK_SOUND);
-float tone_plover[][2] = SONG(PLOVER_SOUND);
-float tone_plover_gb[][2] = SONG(PLOVER_GOODBYE_SOUND);
-float music_scale[][2] = SONG(MUSIC_SCALE_SOUND);
-
-float tone_goodbye[][2] = SONG(GOODBYE_SOUND);
-#endif
-
-
-void persistant_default_layer_set(uint16_t default_layer) {
- eeconfig_update_default_layer(default_layer);
- default_layer_set(default_layer);
-}
-
-// Helper Functions
-void tap(uint16_t keycode){ register_code(keycode); unregister_code(keycode); };
-
-
-bool process_record_keymap(uint16_t keycode, keyrecord_t *record) {
- switch (keycode) {
- case QWERTY:
- if (record->event.pressed) {
- #ifdef AUDIO_ENABLE
- PLAY_SONG(tone_qwerty);
- #endif
- persistant_default_layer_set(1UL<<_QWERTY);
- }
- return false;
- break;
- case COLEMAK:
- if (record->event.pressed) {
- #ifdef AUDIO_ENABLE
- PLAY_SONG(tone_colemak);
- #endif
- persistant_default_layer_set(1UL<<_COLEMAK);
- }
- return false;
- break;
- case DVORAK:
- if (record->event.pressed) {
- #ifdef AUDIO_ENABLE
- PLAY_SONG(tone_dvorak);
- #endif
- persistant_default_layer_set(1UL<<_DVORAK);
- }
- return false;
- break;
- case LOWER:
- if (record->event.pressed) {
- layer_on(_LOWER);
- update_tri_layer(_LOWER, _RAISE, _ADJUST);
- } else {
- layer_off(_LOWER);
- update_tri_layer(_LOWER, _RAISE, _ADJUST);
- }
- return false;
- break;
- case RAISE:
- if (record->event.pressed) {
- layer_on(_RAISE);
- update_tri_layer(_LOWER, _RAISE, _ADJUST);
- } else {
- layer_off(_RAISE);
- update_tri_layer(_LOWER, _RAISE, _ADJUST);
- }
- return false;
- break;
- case BACKLIT:
- if (record->event.pressed) {
- register_code(KC_RSFT);
- #ifdef BACKLIGHT_ENABLE
- backlight_step();
- #endif
- } else {
- unregister_code(KC_RSFT);
- }
- return false;
- break;
- case PLOVER:
- if (record->event.pressed) {
- #ifdef AUDIO_ENABLE
- stop_all_notes();
- PLAY_SONG(tone_plover);
- #endif
- layer_off(_RAISE);
- layer_off(_LOWER);
- layer_off(_ADJUST);
- layer_on(_PLOVER);
- if (!eeconfig_is_enabled()) {
- eeconfig_init();
- }
- keymap_config.raw = eeconfig_read_keymap();
- keymap_config.nkro = 1;
- eeconfig_update_keymap(keymap_config.raw);
- }
- return false;
- break;
- case EXT_PLV:
- if (record->event.pressed) {
- #ifdef AUDIO_ENABLE
- PLAY_SONG(tone_plover_gb);
- #endif
- layer_off(_PLOVER);
- }
- return false;
- break;
- }
- return true;
-}
-
-void matrix_init_keymap(void) {
- #ifdef AUDIO_ENABLE
- startup_user();
- #endif
-}
-
-#ifdef AUDIO_ENABLE
-
-void startup_user(void)
-{
- #ifdef RGB_MATRIX_ENABLE
- rgblight_mode(RGB_MATRIX_CYCLE_ALL);
- #endif //RGB_matrix
- wait_ms(20); // gets rid of tick
- PLAY_SONG(tone_startup);
-}
-
-void shutdown_user(void)
-{
- PLAY_SONG(tone_goodbye);
- wait_ms(150);
- stop_all_notes();
-}
-
-void music_on_user(void)
-{
- music_scale_user();
-}
-
-void music_scale_user(void)
-{
- PLAY_SONG(music_scale);
-}
-
-#endif
-
diff --git a/keyboards/planck/keymaps/ishtob/readme.md b/keyboards/planck/keymaps/ishtob/readme.md
deleted file mode 100644
index 108b9ee0c3..0000000000
--- a/keyboards/planck/keymaps/ishtob/readme.md
+++ /dev/null
@@ -1,16 +0,0 @@
-![Planck Layout Image](https://i.imgur.com/yKewjWW.jpg)
-
-#Ishtob's personal planck layout
-
-This is the default layout used with my planck light, though the rest of the keymap could also be used for the full sized planck or let's split.
-
-
-Main difference with the default layout:
-
-* Tab take the upper left key, made into a Tap layer to access the symbols from the number row
-
-* Esc moved to lower corner
-
-* Capslock is on the base layer as it is used quite often with my work's software
-
-* Numbers layer on lower is positioned to resemble a numpad with 5 taking the location of J for the homing bump and easier entry
diff --git a/keyboards/planck/keymaps/ishtob/rules.mk b/keyboards/planck/keymaps/ishtob/rules.mk
deleted file mode 100644
index 62ed57bb93..0000000000
--- a/keyboards/planck/keymaps/ishtob/rules.mk
+++ /dev/null
@@ -1,18 +0,0 @@
-# Build Options
-# comment out to disable the options.
-#
-BACKLIGHT_ENABLE = no
-BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite
-MOUSEKEY_ENABLE = yes # Mouse keys
-EXTRAKEY_ENABLE = yes # Audio control and System control
-CONSOLE_ENABLE = yes # Console for debug
-COMMAND_ENABLE = yes # Commands for debug and configuration
-#SLEEP_LED_ENABLE = yes # Breathing sleep LED during USB suspend
-NKRO_ENABLE = yes # USB Nkey Rollover
-CUSTOM_MATRIX = yes # Custom matrix file
-AUDIO_ENABLE = yes
-ENCODER_ENABLE = yes
-
-# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
-SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
-
diff --git a/keyboards/planck/keymaps/jdelkins/config.h b/keyboards/planck/keymaps/jdelkins/config.h
deleted file mode 100644
index 67ebf46955..0000000000
--- a/keyboards/planck/keymaps/jdelkins/config.h
+++ /dev/null
@@ -1,61 +0,0 @@
- /* Copyright 2020 Joel Elkins
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-#pragma once
-
-#ifdef AUDIO_ENABLE
- #define STARTUP_SONG SONG(PLANCK_SOUND)
- // #define STARTUP_SONG SONG(NO_SOUND)
-
- #define DEFAULT_LAYER_SONGS { SONG(QWERTY_SOUND), \
- SONG(COLEMAK_SOUND), \
- SONG(DVORAK_SOUND) \
- }
-#endif
-
-/*
- * MIDI options
- */
-
-/* Prevent use of disabled MIDI features in the keymap */
-//#define MIDI_ENABLE_STRICT 1
-
-/* enable basic MIDI features:
- - MIDI notes can be sent when in Music mode is on
-*/
-
-#define MIDI_BASIC
-
-/* enable advanced MIDI features:
- - MIDI notes can be added to the keymap
- - Octave shift and transpose
- - Virtual sustain, portamento, and modulation wheel
- - etc.
-*/
-//#define MIDI_ADVANCED
-
-/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
-//#define MIDI_TONE_KEYCODE_OCTAVES 2
-
-// Most tactile encoders have detents every 4 stages
-#define ENCODER_RESOLUTION 4
-
-#define AUTO_SHIFT_TIMEOUT 160
-#define AUTO_SHIFT_REPEAT
-#define RGBLIGHT_LAYERS
-#define LEADER_TIMEOUT 400
-#define LEADER_PER_KEY_TIMING
-#define USB_MAX_POWER_CONSUMPTION 100
diff --git a/keyboards/planck/keymaps/jdelkins/keymap.c b/keyboards/planck/keymaps/jdelkins/keymap.c
deleted file mode 100644
index ecb49da406..0000000000
--- a/keyboards/planck/keymaps/jdelkins/keymap.c
+++ /dev/null
@@ -1,506 +0,0 @@
-/* Copyright 2015-2017 Jack Humbert
- * Portions Copyright 2020 Joel Elkins
- *
- * 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 "jdelkins.h"
-#include "muse.h"
-
-#ifdef LAYOUT
-#undef LAYOUT
-#endif
-#define LAYOUT LAYOUT_planck_2x2u
-
-uint16_t bspc_timer;
-
-enum {
- MY_BSPC = USER_SAFE_RANGE,
- BACKLIT,
-};
-
-// recycle unused layers defined in my userspace
-#define _RAISE _FUNC
-#define _LOWER _SECRETS
-
-#define KP MO(_KP)
-#define LOWER MO(_LOWER)
-#define RAISE MO(_RAISE)
-
-int ctl_state = 0;
-
-void ctl_finished(tap_dance_state_t *state, void *user_data) {
- ctl_state = cur_dance(state);
- switch (ctl_state) {
- case SINGLE_TAP: leader_start(); break;
- case SINGLE_HOLD: register_code(KC_LCTL); break;
- case DOUBLE_TAP: tap_code(KC_RCTL); break;
- case DOUBLE_HOLD: register_code(KC_RCTL); break;
- case TRIPLE_TAP: tap_code(KC_RCTL); tap_code(KC_RCTL); break;
- case TRIPLE_HOLD: tap_code(KC_RCTL); register_code(KC_RCTL); break;
- }
-}
-
-void ctl_reset(tap_dance_state_t *state, void *user_data) {
- switch (ctl_state) {
- case SINGLE_HOLD: unregister_code(KC_LCTL); break;
- case DOUBLE_HOLD:
- case TRIPLE_HOLD: unregister_code(KC_RCTL); break;
- }
- ctl_state = 0;
-}
-
-void g_finished(tap_dance_state_t *state, void *user_data) {
- switch (cur_dance(state)) {
- case SINGLE_TAP:
- tap_code16(C(KC_END));
- break;
- case DOUBLE_TAP:
- tap_code16(C(KC_HOME));
- break;
- }
-}
-
-int kp_state = 0;
-
-void kp_finished(tap_dance_state_t *state, void *user_data) {
- kp_state = hold_cur_dance(state);
- switch (kp_state) {
- case SINGLE_HOLD: layer_on(_KP); break;
- case DOUBLE_HOLD: layer_on(_RPT); break;
- }
-}
-
-void kp_reset(tap_dance_state_t *state, void *user_data) {
- switch (kp_state) {
- case SINGLE_HOLD: layer_off(_KP); break;
- case DOUBLE_HOLD: layer_off(_RPT); break;
- }
- kp_state = 0;
-}
-
-enum {
- TD_LDCTL,
- TD_G,
- TD_KP
-};
-
-tap_dance_action_t tap_dance_actions[] = {
- [TD_LDCTL] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, ctl_finished, ctl_reset),
- [TD_G] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, g_finished, NULL),
- [TD_KP] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, kp_finished, kp_reset),
-};
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
-/* Qwerty
- * ,-----------------------------------------------------------------------------------.
- * | Tab | Q | W | E | R | T | Y | U | I | O | P | ` |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | Ctrl | A | S | D | F | G | H | J | K | L | ; | " |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | Shift| Z | X | C | V | B | N | M | , | . | / |Enter |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | Ctrl | Gui | Alt |Keypad| Bksp | Space | Left | Down | Up |Right |
- * `-----------------------------------------------------------------------------------'
- */
-[_QWERTY] = LAYOUT(
- KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_GRV,
- 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_ENT,
- TD(TD_LDCTL), MO(_ADJUST), MY_GUI, MY_ALT, MY_BSPC, MY_SPC, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT
-),
-
-/* Same as _QWERTY but disable wutoshift */
-[_RPT] = LAYOUT(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
-),
-
-[_GAME] = LAYOUT(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, KC_NO, KC_LALT, RAISE, KC_SPC, KC_SPC, _______, _______, _______, _______
-),
-
-[_RAISE] = LAYOUT(
- KC_ESC, _______, FW_WRD, KB_EOL, TG(_RPT), _______, KB_COPY, KC_PGUP, _______, KC_LPRN, KC_RPRN, KC_MINS,
- KC_RCTL, KB_BOL, _______, KC_PGDN, _______, TD(TD_G), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, _______, KC_BSLS,
- _______, _______, KC_DEL, KC_CAPS, KB_PASTE, BK_WRD, _______, _______, _______, _______, _______, MY_CALC,
- KC_RCTL, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_PGUP, KC_END
-),
-
-[_KP] = LAYOUT(
- KC_ESC, KC_F9, KC_F10, KC_F11, KC_F12, KC_F13, KC_F14, KC_7, KC_8, KC_9, KC_MINS, KC_EQL,
- _______, KC_F5, KC_F6, KC_F7, KC_F8, XXXXXXX, XXXXXXX, KC_4, KC_5, KC_6, KC_ASTR, _______,
- KC_NUM, KC_F1, KC_F2, KC_F3, KC_F4, XXXXXXX, XXXXXXX, KC_1, KC_2, KC_3, KC_SLSH, _______,
- _______, _______, _______, _______, _______, _______, KC_0, KC_DOT, KC_PLUS, KC_END
-),
-
-[_LOWER] = LAYOUT(
- KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LCBR, KC_RCBR, KC_EQL,
- _______, _______, KC_BTN1, KC_MS_U, KC_BTN2, KC_WH_U, _______, _______, _______, KC_LBRC, KC_RBRC, KC_PIPE,
- _______, _______, KC_MS_L, KC_MS_D, KC_MS_R, KC_WH_D, _______, _______, _______, KC_HOME, KC_END, KC_MPLY,
- _______, _______, _______, _______, _______, _______, KC_MPRV, KC_VOLD, KC_VOLU, KC_MNXT
-),
-
-[_ADJUST] = LAYOUT(
- _______, QK_BOOT, DB_TOGG, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_DEL,
- KC_RCTL, _______, MU_NEXT, AU_ON, AU_OFF, AG_NORM, AG_SWAP, _______, TG(_KP), KC_BRID, KC_BRIU, KC_MUTE,
- _______, RGB_TOG, KB_MAKE, KB_FLSH, KB_VRSN, KB_BOOT, _______, TG_SYS, _______, _______, _______, KC_MPLY,
- KC_RCTL, _______, _______, _______, _______, _______, KC_MPRV, KC_VOLD, KC_VOLU, KC_MNXT
-)
-
-/* [_ADJUST] = LAYOUT( */
-/* _______, QK_BOOT, DB_TOGG, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_DEL , */
-/* _______, _______, 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, _______, _______, _______, _______, _______, */
-/* _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ */
-/* ) */
-
-};
-
-/* plwnck rev6 RGB layout:
- * ----------------------------------
- * | 6 5 4 3 |
- * | 0 |
- * | 7 8 1 2 |
- * ----------------------------------
- */
-
-const rgblight_segment_t PROGMEM rpt_layer[] = RGBLIGHT_LAYER_SEGMENTS(
- {1, 2, HSV_PINK},
- {7, 2, HSV_PINK}
-);
-
-const rgblight_segment_t PROGMEM game_layer[] = RGBLIGHT_LAYER_SEGMENTS(
- {2, 2, HSV_RED},
- {6, 2, HSV_RED}
-);
-
-const rgblight_segment_t PROGMEM raise_layer[] = RGBLIGHT_LAYER_SEGMENTS(
- {3, 4, HSV_GREEN}
-);
-
-const rgblight_segment_t PROGMEM kp_layer[] = RGBLIGHT_LAYER_SEGMENTS(
- {1, 8, HSV_ORANGE}
-);
-
-const rgblight_segment_t PROGMEM lower_layer[] = RGBLIGHT_LAYER_SEGMENTS(
- {3, 4, HSV_BLUE}
-);
-
-const rgblight_segment_t PROGMEM adjust_layer[] = RGBLIGHT_LAYER_SEGMENTS(
- {1, 8, HSV_BLUE}
-);
-
-const rgblight_segment_t PROGMEM capslock_layer[] = RGBLIGHT_LAYER_SEGMENTS(
- {1, 1, HSV_WHITE},
- {8, 1, HSV_WHITE}
-);
-
-const rgblight_segment_t PROGMEM numlock_layer[] = RGBLIGHT_LAYER_SEGMENTS(
- {6, 2, HSV_PURPLE}
-);
-
-enum rgb_layer_index {
- L_RPT,
- L_GAME,
- L_RAISE,
- L_KP,
- L_LOWER,
- L_ADJUST,
- L_CAPSLOCK,
- L_NUMLOCK
-};
-
-const rgblight_segment_t * const PROGMEM my_rgb_layers[] = RGBLIGHT_LAYERS_LIST(
- [L_RPT] = rpt_layer,
- [L_GAME] = game_layer,
- [L_RAISE] = raise_layer,
- [L_KP] = kp_layer,
- [L_LOWER] = lower_layer,
- [L_ADJUST] = adjust_layer,
- [L_CAPSLOCK] = capslock_layer,
- [L_NUMLOCK] = numlock_layer
-);
-
-#ifdef AUDIO_ENABLE
- float plover_song[][2] = SONG(PLOVER_SOUND);
- float plover_gb_song[][2] = SONG(PLOVER_GOODBYE_SOUND);
-#endif
-
-layer_state_t layer_state_set_keymap(layer_state_t state) {
- rgblight_set_layer_state(L_RPT, layer_state_cmp(state, _RPT));
- rgblight_set_layer_state(L_GAME, layer_state_cmp(state, _GAME));
- rgblight_set_layer_state(L_RAISE, layer_state_cmp(state, _RAISE));
- rgblight_set_layer_state(L_KP, layer_state_cmp(state, _KP));
- rgblight_set_layer_state(L_LOWER, layer_state_cmp(state, _LOWER));
- rgblight_set_layer_state(L_ADJUST, layer_state_cmp(state, _ADJUST));
- rgblight_set_layer_state(L_CAPSLOCK, CAPSLOCK_ON);
- rgblight_set_layer_state(L_NUMLOCK, NUMLOCK_ON && layer_state_cmp(state, _KP));
- if (layer_state_cmp(state, _GAME) || layer_state_cmp(state, _RPT))
- autoshift_disable();
- else
- autoshift_enable();
- return update_tri_layer_state(state, _KP, _RAISE, _LOWER);
-}
-
-bool led_update_user(led_t led_state) {
- rgblight_set_layer_state(L_CAPSLOCK, led_state.caps_lock);
- rgblight_set_layer_state(L_NUMLOCK, led_state.num_lock && layer_state_is(_KP));
- return true;
-}
-
-bool process_record_keymap(uint16_t keycode, keyrecord_t *record) {
- bool rc = true;
- static bool bspc_del = false;
- static bool bspc_initiated_func = false;
-
- switch (keycode) {
- case MY_BSPC:
- if (record->event.pressed) {
- if (IS_LAYER_ON(_KP)) {
- // special case: if _KP was turned on by another key,
- // treat this as KC_DEL and don't do anything else
- bspc_del = true;
- register_code(KC_DEL);
- return false;
- } else {
- bspc_timer = timer_read();
- bspc_initiated_func = true;
- layer_on(_KP);
- }
- } else {
- if (bspc_del) {
- // special case: if _KP was turned on by another key,
- // treat this as KC_DEL and don't do anything else
- unregister_code(KC_DEL);
- bspc_del = false;
- return false;
- }
-
- if (bspc_initiated_func) {
- layer_off(_KP);
- bspc_initiated_func = false;
- }
-
- if (bspc_timer > 0) {
- // here the key was pressed and released before the timer
- // expired, so treat as a backspace tap and pretend we
- // never activated _KP
- bspc_timer = 0;
- tap_code(KC_BSPC);
- } else {
- // the timer went off, so KC_BSPC was registered in
- // matrix_scan_keymap. unregister it now
- unregister_code(KC_BSPC);
- }
- }
- return false; // special case, return now without resetting timer
- // other paths should set rc and break
- break;
-
- case BACKLIT:
- if (record->event.pressed) {
- register_code(KC_RSFT);
-#ifdef BACKLIGHT_ENABLE
- backlight_step();
-#endif
- } else {
- unregister_code(KC_RSFT);
- }
- rc = false;
- break;
- }
-
- bspc_timer = 0;
- return rc;
-}
-
-bool muse_mode = false;
-uint8_t last_muse_note = 0;
-uint16_t muse_counter = 0;
-uint8_t muse_offset = 70;
-uint16_t muse_tempo = 50;
-
-bool encoder_update_user(uint8_t index, bool clockwise) {
- if (muse_mode) {
- if (IS_LAYER_ON(_RAISE)) {
- if (clockwise) {
- muse_offset++;
- } else {
- muse_offset--;
- }
- } else {
- if (clockwise) {
- muse_tempo+=1;
- } else {
- muse_tempo-=1;
- }
- }
- } else {
- if (clockwise) {
- #ifdef MOUSEKEY_ENABLE
- tap_code(KC_MS_WH_DOWN);
- #else
- tap_code(KC_PGDN);
- #endif
- } else {
- #ifdef MOUSEKEY_ENABLE
- tap_code(KC_MS_WH_UP);
- #else
- tap_code(KC_PGUP);
- #endif
- }
- }
- return true;
-}
-
-bool dip_switch_update_user(uint8_t index, bool active) {
- switch (index) {
- case 0: {
-#ifdef AUDIO_ENABLE
- static bool play_sound = false;
-#endif
- if (active) {
-#ifdef AUDIO_ENABLE
- if (play_sound) { PLAY_SONG(plover_song); }
-#endif
- layer_on(_ADJUST);
- } else {
-#ifdef AUDIO_ENABLE
- if (play_sound) { PLAY_SONG(plover_gb_song); }
-#endif
- layer_off(_ADJUST);
- }
-#ifdef AUDIO_ENABLE
- play_sound = true;
-#endif
- break;
- }
- case 1:
- if (active) {
- muse_mode = true;
- } else {
- muse_mode = false;
- }
- }
- return true;
-}
-
-void keyboard_post_init_keymap(void) {
- rgblight_layers = my_rgb_layers;
- bspc_timer = 0;
-}
-
-void leader_end_user(void) {
- if (leader_sequence_one_key(KC_K)) {
- layer_invert(_KP);
- }
- if (leader_sequence_one_key(KC_G)) {
- layer_invert(_GAME);
- }
- if (leader_sequence_one_key(KC_KP_5)) {
- layer_invert(_KP);
- }
- if (leader_sequence_one_key(KC_5)) {
- layer_invert(_KP);
- }
- if (leader_sequence_two_keys(KC_SCLN, KC_1)) {
- send_secret_string(0);
- }
- if (leader_sequence_two_keys(KC_SCLN, KC_2)) {
- send_secret_string(1);
- }
- if (leader_sequence_two_keys(KC_SCLN, KC_3)) {
- send_secret_string(2);
- }
- if (leader_sequence_two_keys(KC_SCLN, KC_4)) {
- send_secret_string(3);
- }
- if (leader_sequence_two_keys(KC_SCLN, KC_5)) {
- send_secret_string(4);
- }
- if (leader_sequence_two_keys(KC_SCLN, KC_6)) {
- send_secret_string(5);
- }
- if (leader_sequence_two_keys(KC_SCLN, KC_M)) {
- send_secret_string(0);
- }
- if (leader_sequence_two_keys(KC_SCLN, KC_COMM)) {
- send_secret_string(1);
- }
- if (leader_sequence_two_keys(KC_SCLN, KC_DOT)) {
- send_secret_string(2);
- }
- if (leader_sequence_two_keys(KC_SCLN, KC_J)) {
- send_secret_string(3);
- }
- if (leader_sequence_two_keys(KC_SCLN, KC_K)) {
- send_secret_string(4);
- }
- if (leader_sequence_two_keys(KC_SCLN, KC_L)) {
- send_secret_string(5);
- }
- if (leader_sequence_one_key(KC_C)) {
- tap_code16(C(KC_C));
- }
- // neovim: terminal escape
- if (leader_sequence_one_key(KC_QUOT)) {
- tap_code16(C(KC_BSLS));
- tap_code16(C(KC_N));
- }
-}
-
-void matrix_scan_keymap(void) {
-#ifdef AUDIO_ENABLE
- if (muse_mode) {
- if (muse_counter == 0) {
- uint8_t muse_note = muse_offset + SCALE[muse_clock_pulse()];
- if (muse_note != last_muse_note) {
- stop_note(compute_freq_for_midi_note(last_muse_note));
- play_note(compute_freq_for_midi_note(muse_note), 0xF);
- last_muse_note = muse_note;
- }
- }
- muse_counter = (muse_counter + 1) % muse_tempo;
- } else {
- if (muse_counter) {
- stop_all_notes();
- muse_counter = 0;
- }
- }
-#endif
- // if MY_BSPC is held down too long, pretend like it wasn't and start
- // pressing backspace
- if (bspc_timer > 0 && timer_elapsed(bspc_timer) > LEADER_TIMEOUT) {
- layer_off(_KP);
- bspc_timer = 0;
- register_code(KC_BSPC);
- }
-}
-
-bool music_mask_user(uint16_t keycode) {
- switch (keycode) {
- case RAISE:
- case LOWER:
- return false;
- default:
- return true;
- }
-}
diff --git a/keyboards/planck/keymaps/jdelkins/readme.md b/keyboards/planck/keymaps/jdelkins/readme.md
deleted file mode 100644
index 5149c7668d..0000000000
--- a/keyboards/planck/keymaps/jdelkins/readme.md
+++ /dev/null
@@ -1,13 +0,0 @@
-# jdelkins layout
-
-Features:
-
-- 2x2u layout with the split spaces both operating as layer keys
-- No top row numbers; rely on a keypad layer
-- My typical leader setup for toggling modes, accessing secrets, etc.
-
-
-# TODO
-
-- Add/improve audio features
-- Fix \_ADJUST layer - there's a bunch of junk on there that needs cleanng up.
diff --git a/keyboards/planck/keymaps/jdelkins/rules.mk b/keyboards/planck/keymaps/jdelkins/rules.mk
deleted file mode 100644
index f17e67c234..0000000000
--- a/keyboards/planck/keymaps/jdelkins/rules.mk
+++ /dev/null
@@ -1,4 +0,0 @@
-SRC += muse.c
-LEADER_ENABLE = yes
-TAP_DANCE_ENABLE = yes
-AUTO_SHIFT_ENABLE = yes
diff --git a/keyboards/planck/keymaps/jhenahan/keymap.c b/keyboards/planck/keymaps/jhenahan/keymap.c
index 21c489922d..c884e864ac 100644
--- a/keyboards/planck/keymaps/jhenahan/keymap.c
+++ b/keyboards/planck/keymaps/jhenahan/keymap.c
@@ -160,15 +160,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
};
#ifdef AUDIO_ENABLE
-
-float tone_startup[][2] = SONG(STARTUP_SOUND);
float tone_qwerty[][2] = SONG(QWERTY_SOUND);
float tone_workman[][2] = SONG(WORKMAN_SOUND);
float tone_plover[][2] = SONG(PLOVER_SOUND);
float tone_plover_gb[][2] = SONG(PLOVER_GOODBYE_SOUND);
-float music_scale[][2] = SONG(MUSIC_SCALE_SOUND);
-
-float tone_goodbye[][2] = SONG(GOODBYE_SOUND);
#endif
@@ -268,36 +263,3 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
}
return true;
}
-
-void matrix_init_user(void) {
- #ifdef AUDIO_ENABLE
- startup_user();
- #endif
-}
-
-#ifdef AUDIO_ENABLE
-
-void startup_user(void)
-{
- _delay_ms(20); // gets rid of tick
- PLAY_SONG(tone_startup);
-}
-
-void shutdown_user(void)
-{
- PLAY_SONG(tone_goodbye);
- _delay_ms(150);
- stop_all_notes();
-}
-
-void music_on_user(void)
-{
- music_scale_user();
-}
-
-void music_scale_user(void)
-{
- PLAY_SONG(music_scale);
-}
-
-#endif
diff --git a/keyboards/planck/keymaps/kuatsure/config.h b/keyboards/planck/keymaps/kuatsure/config.h
deleted file mode 100644
index 8d832285bc..0000000000
--- a/keyboards/planck/keymaps/kuatsure/config.h
+++ /dev/null
@@ -1,33 +0,0 @@
-/* Copyright 2020 kuatsure
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-#pragma once
-
-#ifdef AUDIO_ENABLE
- #define STARTUP_SONG SONG(PLANCK_SOUND)
- // #define STARTUP_SONG SONG(NO_SOUND)
-
- #define GAME_SOUND DVORAK_SOUND
-
- #define DEFAULT_LAYER_SONGS { SONG(QWERTY_SOUND), \
- SONG(GAME_SOUND) \
- }
-#endif
-
-#define MIDI_BASIC
-
-// Most tactile encoders have detents every 4 stages
-#define ENCODER_RESOLUTION 4
diff --git a/keyboards/planck/keymaps/kuatsure/keymap.c b/keyboards/planck/keymaps/kuatsure/keymap.c
deleted file mode 100644
index db78f1138e..0000000000
--- a/keyboards/planck/keymaps/kuatsure/keymap.c
+++ /dev/null
@@ -1,318 +0,0 @@
-/* Copyright 2015-2017 Jack Humbert
- *
- * 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 "muse.h"
-#include "kuatsure.h"
-
-#define LAYOUT_planck_grid_wrapper(...) LAYOUT_planck_grid(__VA_ARGS__)
-
-enum planck_layers {
- _QWERTY,
- _GAME,
- _GAME_LOWER,
- _GAME_RAISE,
- _MOUSE,
- _LOWER,
- _RAISE,
- _ADJUST
-};
-
-enum planck_keycodes {
- QWERTY = USER_SAFE_RANGE,
- GAME,
-};
-
-#define LOWER MO(_LOWER)
-#define RAISE MO(_RAISE)
-#define MOUSE TG(_MOUSE)
-#define G_LOWER MO(_GAME_LOWER)
-#define G_RAISE MO(_GAME_RAISE)
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
-/* Qwerty
- * ,-----------------------------------------------------------------------------------.
- * | Tab/M| Q | W | E | R | T | Y | U | I | O | P | Bksp |
- * |------+------+------+------+------+-------------+------+------+------+------+------|
- * | Esc/C| A | S | D | F | G | H | J | K | L | ; | ' |
- * |------+------+------+------+------+------|------+------+------+------+------+------|
- * | Shift| Z | X | C | V | B | N | M | , | . | / | Ent |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | Mute | Ldr | Alt | GUI |Lower | RSE | SPC | Left | Down | Up |Right |
- * `-----------------------------------------------------------------------------------'
- */
-[_QWERTY] = LAYOUT_planck_grid_wrapper(
- KT_MTAB, _________________QWERTY_L1_________________, _________________QWERTY_R1_________________, KC_BSPC,
- KT_CESC, _________________QWERTY_L2_________________, _________________QWERTY_R2_________________, KC_QUOT,
- KT_LSFT, _________________QWERTY_L3_________________, _________________QWERTY_R3_________________, KC_ENT,
- KC_MPLY, QK_LEAD, KC_LALT, KC_LGUI, LOWER, RAISE, KC_SPC, KC_SPC, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT
-),
-
-/* Lower
- * ,-----------------------------------------------------------------------------------.
- * | | ! | & | Up | | ` | | { | } | _ | | | |
- * |------+------+------+------+------+-------------+------+------+------+------+------|
- * | | Del | Left | Down | Right| ~ | = | ( | ) | + | : | " |
- * |------+------+------+------+------+------|------+------+------+------+------+------|
- * | | VolD | Prev | Play | Next | VolU | - | [ | ] | | ? |Mouse |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | | | | | | | | | Home | PgDn | PgUp | End |
- * `-----------------------------------------------------------------------------------'
- */
-[_LOWER] = LAYOUT_planck_grid_wrapper(
- _______, KC_EXLM, KC_AMPR, KC_UP, _______, KC_GRV, _______, ____CRBRACES____, KC_UNDS, _______, KC_PIPE,
- _______, KC_DEL, KC_LEFT, KC_DOWN, KC_RIGHT, KC_TILD, KC_EQL, _____PARENS_____, KC_PLUS, KC_COLN, KC_DQT ,
- _______, KC_VOLD, KC_MPRV, KC_MPLY, KC_MNXT, KC_VOLU, KC_MINS, ___SQBRACKETS___, _______, KC_QUES, MOUSE ,
- _______, _______, _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_PGUP, KC_END
-),
-
-/* Raise
- * ,-----------------------------------------------------------------------------------.
- * | | F9 | F10 | F11 | F12 | | * | 7 | 8 | 9 | 0 | \ |
- * |------+------+------+------+------+-------------+------+------+------+------+------|
- * | | F5 | F6 | F7 | F8 | | = | 4 | 5 | 6 | + | |
- * |------+------+------+------+------+------|------+------+------+------+------+------|
- * | | F1 | F2 | F3 | F4 | | - | 1 | 2 | 3 | / | |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | | | | | | | | | 0 | 0 | | |
- * `-----------------------------------------------------------------------------------'
- */
-[_RAISE] = LAYOUT_planck_grid_wrapper(
- _______, ____________FUNCTION_3____________, _______, KC_ASTR, KC_7, KC_8, KC_9, KC_0, KC_BSLS,
- _______, ____________FUNCTION_2____________, _______, KC_EQL, KC_4, KC_5, KC_6, KC_PLUS, _______,
- _______, ____________FUNCTION_1____________, _______, KC_MINS, KC_1, KC_2, KC_3, KC_SLASH, _______,
- _______, _______, _______, _______, _______, _______, _______, KC_0, KC_0, _______, _______, _______
-),
-
-/* Mouse
- * ,-----------------------------------------------------------------------------------.
- * | | | Btn1 | mUP | Btn2 | | | | | | | |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | | | mLEFT| mDWN | mRGHT| | | | | | | |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | | | Btn3 | Btn4 | Btn5 | | | | | | |Mouse |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | | | | | | | | | | | | |
- * `-----------------------------------------------------------------------------------'
- */
-[_MOUSE] = LAYOUT_planck_grid_wrapper(
- _______, _______, KC_BTN1, KC_MS_U, KC_BTN2, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, KC_MS_L, KC_MS_D, KC_MS_R, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, KC_BTN3, KC_BTN4, KC_BTN5, _______, _______, _______, _______, _______, _______, MOUSE ,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
-),
-
-/* Adjust (Lower + Raise)
- * ,-----------------------------------------------------------------------------------.
- * | | MAKE | FLSH | | | | | | | | | Del |
- * |------+------+------+------+------+-------------+------+------+------+------+------|
- * | | Boot | Debug| | |Aud on|AudOff| Game |Mouse | | | |
- * |------+------+------+------+------+------|------+------+------+------+------+------|
- * | | VRSN | | |MusMod|Mus on|MusOff| | | | | |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | | | | | | | | | | | | |
- * `-----------------------------------------------------------------------------------'
- */
-[_ADJUST] = LAYOUT_planck_grid_wrapper(
- _______, KB_MAKE, KB_FLSH, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL,
- _______, QK_BOOT, DB_TOGG, _______, _______, AU_ON, AU_OFF, GAME, MOUSE, _______, _______, _______,
- _______, KB_VRSN, _______, _______, MU_NEXT, MU_ON, MU_OFF, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
-),
-
-/* Game
- *
- * Mostly transparent, but wanted to disable gui key.
- * Also give a key to get back to qwerty layout.
- *
- * Disabling the `Controlled ESC` key is also plus.
- * Think BDO / Monster Hunter / D2
- *
- * ,-----------------------------------------------------------------------------------.
- * | Tab | | | | | | | | | | | |
- * |------+------+------+------+------+-------------+------+------+------+------+------|
- * | Ctrl | | | | | | | | | | | |
- * |------+------+------+------+------+------|------+------+------+------+------+------|
- * | Shft | | | | | | | | | | | |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | |Qwerty| F14 | Spc | gLWR | gRSE | ESC | | | | |
- * `-----------------------------------------------------------------------------------'
- */
-[_GAME] = LAYOUT_planck_grid_wrapper(
- KC_TAB, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- KC_LCTL, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- KC_LSFT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, QWERTY, KC_F14, KC_SPC, G_LOWER, G_RAISE, KC_ESC, KC_ESC, _______, _______, _______, _______
-),
-
-/* Game Lower
- * ,-----------------------------------------------------------------------------------.
- * | | 1 | 2 | 3 | 4 | ` | | F9 | F10 | F11 | F12 | |
- * |------+------+------+------+------+-------------+------+------+------+------+------|
- * | | 5 | 6 | 7 | 8 | | | F5 | F6 | F7 | F8 | |
- * |------+------+------+------+------+------|------+------+------+------+------+------|
- * | | 9 | 0 | - | = | | | F1 | F2 | F3 | F4 | |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | | | | | | | | | | | | |
- * `-----------------------------------------------------------------------------------'
- */
-[_GAME_LOWER] = LAYOUT_planck_grid_wrapper(
- _______, KC_1, KC_2, KC_3, KC_4, KC_GRV, _______, ____________FUNCTION_3____________, _______,
- _______, KC_5, KC_6, KC_7, KC_8, _______, _______, ____________FUNCTION_2____________, _______,
- _______, KC_9, KC_0, KC_MINS, KC_EQL, _______, _______, ____________FUNCTION_1____________, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
-),
-
-/* Game Raise
- * ,-----------------------------------------------------------------------------------.
- * | | p7 | p8 | p9 | p0 | ` | | F9 | F10 | F11 | F12 | |
- * |------+------+------+------+------+-------------+------+------+------+------+------|
- * | | p4 | p5 | p6 | p+ | | | F5 | F6 | F7 | F8 | |
- * |------+------+------+------+------+------|------+------+------+------+------+------|
- * | | p1 | p2 | p3 | pE | | | F1 | F2 | F3 | F4 | |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | | | | | | | | | | | | |
- * `-----------------------------------------------------------------------------------'
- */
-[_GAME_RAISE] = LAYOUT_planck_grid_wrapper(
- _______, KC_P7, KC_P8, KC_P9, KC_P0, KC_GRV, _______, ____________FUNCTION_3____________, _______,
- _______, KC_P4, KC_P5, KC_P6, KC_PPLS, _______, _______, ____________FUNCTION_2____________, _______,
- _______, KC_P1, KC_P2, KC_P3, KC_PENT, _______, _______, ____________FUNCTION_1____________, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
-),
-
-};
-
-#ifdef AUDIO_ENABLE
- float plover_song[][2] = SONG(PLOVER_SOUND);
- float plover_gb_song[][2] = SONG(PLOVER_GOODBYE_SOUND);
-#endif
-
-layer_state_t layer_state_set_user(layer_state_t state) {
- return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST);
-}
-
-bool process_record_keymap(uint16_t keycode, keyrecord_t *record) {
- switch (keycode) {
- case QWERTY:
- if (record->event.pressed) {
- print("mode just switched to qwerty and this is a huge string\n");
- set_single_persistent_default_layer(_QWERTY);
- }
- return false;
- break;
-
- case GAME:
- if (record->event.pressed) {
- set_single_persistent_default_layer(_GAME);
- }
- return false;
- break;
- }
- return true;
-}
-
-bool muse_mode = false;
-uint8_t last_muse_note = 0;
-uint16_t muse_counter = 0;
-uint8_t muse_offset = 70;
-uint16_t muse_tempo = 50;
-
-void encoder_update(bool clockwise) {
- if (muse_mode) {
- if (IS_LAYER_ON(_RAISE)) {
- if (clockwise) {
- muse_offset++;
- } else {
- muse_offset--;
- }
- } else {
- if (clockwise) {
- muse_tempo+=1;
- } else {
- muse_tempo-=1;
- }
- }
- } else {
- if (clockwise) {
- if (IS_LAYER_ON(_MOUSE)) {
- tap_code(KC_MS_WH_UP);
- } else {
- tap_code(KC_VOLU);
- }
- } else {
- if (IS_LAYER_ON(_MOUSE)) {
- tap_code(KC_MS_WH_DOWN);
- } else {
- tap_code(KC_VOLD);
- }
- }
- }
-}
-
-void dip_update(uint8_t index, bool active) {
- switch (index) {
- case 0:
- if (active) {
- #ifdef AUDIO_ENABLE
- PLAY_SONG(plover_song);
- #endif
- layer_on(_ADJUST);
- } else {
- #ifdef AUDIO_ENABLE
- PLAY_SONG(plover_gb_song);
- #endif
- layer_off(_ADJUST);
- }
- break;
- case 1:
- if (active) {
- muse_mode = true;
- } else {
- muse_mode = false;
- #ifdef AUDIO_ENABLE
- stop_all_notes();
- #endif
- }
- }
-}
-
-void matrix_scan_keymap(void) {
- #ifdef AUDIO_ENABLE
- if (muse_mode) {
- if (muse_counter == 0) {
- uint8_t muse_note = muse_offset + SCALE[muse_clock_pulse()];
- if (muse_note != last_muse_note) {
- stop_note(compute_freq_for_midi_note(last_muse_note));
- play_note(compute_freq_for_midi_note(muse_note), 0xF);
- last_muse_note = muse_note;
- }
- }
- muse_counter = (muse_counter + 1) % muse_tempo;
- }
- #endif
-}
-
-bool music_mask_user(uint16_t keycode) {
- switch (keycode) {
- case RAISE:
- case LOWER:
- return false;
- default:
- return true;
- }
-}
diff --git a/keyboards/planck/keymaps/kuatsure/readme.md b/keyboards/planck/keymaps/kuatsure/readme.md
deleted file mode 100644
index b1e5c64230..0000000000
--- a/keyboards/planck/keymaps/kuatsure/readme.md
+++ /dev/null
@@ -1 +0,0 @@
-# The kuatsure Planck layout - largely based on the Preonic's & Keyboard Paradise V60's layout
diff --git a/keyboards/planck/keymaps/kuatsure/rules.mk b/keyboards/planck/keymaps/kuatsure/rules.mk
deleted file mode 100644
index f9fba61d3e..0000000000
--- a/keyboards/planck/keymaps/kuatsure/rules.mk
+++ /dev/null
@@ -1,6 +0,0 @@
-SRC += muse.c
-
-BACKLIGHT_ENABLE = no
-LEADER_ENABLE = yes
-ENCODER_ENABLE = yes
-MOUSEKEY_ENABLE = yes
diff --git a/keyboards/planck/keymaps/lae3/keymap.c b/keyboards/planck/keymaps/lae3/keymap.c
index 7b6175d543..86c89a30a4 100644
--- a/keyboards/planck/keymaps/lae3/keymap.c
+++ b/keyboards/planck/keymaps/lae3/keymap.c
@@ -168,17 +168,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
};
-#ifdef AUDIO_ENABLE
-
-float tone_startup[][2] = SONG(STARTUP_SOUND);
-float music_scale[][2] = SONG(MUSIC_SCALE_SOUND);
-
-float tone_goodbye[][2] = SONG(GOODBYE_SOUND);
-
-#endif
-
-bool process_record_user(uint16_t keycode, keyrecord_t *record)
-{
+bool process_record_user(uint16_t keycode, keyrecord_t *record) {
switch (keycode) {
case LOWER:
if (record->event.pressed) {
@@ -217,37 +207,3 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record)
}
return true;
}
-
-void matrix_init_user(void)
-{
-#ifdef AUDIO_ENABLE
- startup_user();
-#endif
-}
-
-#ifdef AUDIO_ENABLE
-
-void startup_user(void)
-{
- _delay_ms(100); // gets rid of tick
- PLAY_SONG(tone_startup);
-}
-
-void shutdown_user(void)
-{
- PLAY_SONG(tone_goodbye);
- _delay_ms(150);
- stop_all_notes();
-}
-
-void music_on_user(void)
-{
- music_scale_user();
-}
-
-void music_scale_user(void)
-{
- PLAY_SONG(music_scale);
-}
-
-#endif
diff --git a/keyboards/planck/keymaps/mattly/config.h b/keyboards/planck/keymaps/mattly/config.h
deleted file mode 100644
index 31c47c85b4..0000000000
--- a/keyboards/planck/keymaps/mattly/config.h
+++ /dev/null
@@ -1,39 +0,0 @@
-#pragma once
-
-#ifdef AUDIO_ENABLE
- #define STARTUP_SONG SONG(PLANCK_SOUND)
- // #define STARTUP_SONG SONG(NO_SOUND)
-
- #define DEFAULT_LAYER_SONGS { SONG(QWERTY_SOUND), \
- SONG(COLEMAK_SOUND), \
- SONG(DVORAK_SOUND) \
- }
-#endif
-
-/*
- * MIDI options
- */
-
-/* enable basic MIDI features:
- - MIDI notes can be sent when in Music mode is on
-*/
-
-#define MIDI_BASIC
-
-/* enable advanced MIDI features:
- - MIDI notes can be added to the keymap
- - Octave shift and transpose
- - Virtual sustain, portamento, and modulation wheel
- - etc.
-*/
-//#define MIDI_ADVANCED
-
-/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
-//#define MIDI_TONE_KEYCODE_OCTAVES 2
-
-// Most tactile encoders have detents every 4 stages
-#define ENCODER_RESOLUTION 4
-
-#define PERMISSIVE_HOLD
-#define TAPPING_TOGGLE 2
-#define TAPPING_TERM 200
diff --git a/keyboards/planck/keymaps/mattly/keymap.c b/keyboards/planck/keymaps/mattly/keymap.c
deleted file mode 100644
index 7d6245a1e6..0000000000
--- a/keyboards/planck/keymaps/mattly/keymap.c
+++ /dev/null
@@ -1,34 +0,0 @@
-#include QMK_KEYBOARD_H
-#include "mattly.h"
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [_QWERTY] = LAYOUT_planck_grid(
- XXXXXXX, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_SCLN,
- KC_CAPS, A_CTRL, S_ALT, D_GUI, F_SHFT, KC_G, KC_H, J_SHFT, K_GUI, L_ALT, MINSCTL, KC_QUOT,
- XXXXXXX, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT,
- XXXXXXX, NAVLOCK, XXXXXXX, ESC_HYP, BSP_NUM, ENT_SFT, SPC_SFT, TAB_SYM, DEL_WRP, XXXXXXX, SYMLOCK, XXXXXXX
- ),
-
- [_SYMBOL] = LAYOUT_planck_grid(
- _______, KC_AMPR, KC_GRV, KC_TILD, KC_LBRC, KC_RBRC, KC_LABK, KC_RABK, KC_PLUS, KC_ASTR, XXXXXXX, _______,
- _______, KC_DLR, KC_PERC, KC_EQL, KC_LPRN, KC_RPRN, KC_SCLN, KC_COLN, KC_EXLM, KC_AT, KC_UNDS, _______,
- _______, XXXXXXX, KC_CIRC, KC_HASH, KC_LCBR, KC_RCBR, KC_QUOT, KC_DQUO, KC_PIPE, KC_BSLS, KC_QUES, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
- ),
-
-[_NAVNUM] = LAYOUT_planck_grid(
- _______, XXXXXXX, BWORD, KC_UP, FWORD, KC_PGUP, KC_DOT, KC_7, KC_8, KC_9, KC_PLUS, KC_ASTR,
- _______, KC_ENT, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, KC_0, KC_4, KC_5, KC_6, KC_MINS, KC_SLSH,
- _______, KC_BSPC, KC_HOME, KC_TAB, KC_END, KC_DEL, KC_COMM, KC_1, KC_2, KC_3, KC_EQL, KC_PERC,
- _______, _______, _______, _______, _______, _______, _______, _______, KC_0, KC_COLN, KC_DLR, _______
-),
-
-[_FUNCT] = LAYOUT_planck_grid(
- QK_BOOT, XALLWIN, XPRVSPC, NWIN, XNXTSPC, XDESKTP, XXXXXXX, KC_F7, KC_F8, KC_F9, KC_F10, KC_F13,
- DB_TOGG, XNOTIFY, PTAB, PWIN, NTAB, NAVBACK, NAVFWD, KC_F4, KC_F5, KC_F6, KC_F11, KC_F14,
- KC_MUTE, KC_VOLD, KC_VOLU, KC_MRWD, KC_MFFD, KC_MPLY, XXXXXXX, KC_F1, KC_F2, KC_F3, KC_F12, KC_F15,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
-)
-};
-
-
diff --git a/keyboards/planck/keymaps/mattly/readme.md b/keyboards/planck/keymaps/mattly/readme.md
deleted file mode 100644
index 4e8c7f17c6..0000000000
--- a/keyboards/planck/keymaps/mattly/readme.md
+++ /dev/null
@@ -1 +0,0 @@
-See my readme in [users/mattly](../../../../../users/mattly/readme.md) \ No newline at end of file
diff --git a/keyboards/planck/keymaps/mattly/rules.mk b/keyboards/planck/keymaps/mattly/rules.mk
deleted file mode 100644
index 7210cf34f0..0000000000
--- a/keyboards/planck/keymaps/mattly/rules.mk
+++ /dev/null
@@ -1,2 +0,0 @@
-AUDIO_ENABLE = yes
-SRC += muse.c
diff --git a/keyboards/planck/keymaps/mjt/keymap.c b/keyboards/planck/keymaps/mjt/keymap.c
index e927627e1f..7ab0fff241 100644
--- a/keyboards/planck/keymaps/mjt/keymap.c
+++ b/keyboards/planck/keymaps/mjt/keymap.c
@@ -133,16 +133,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
};
#ifdef AUDIO_ENABLE
-
-float tone_startup[][2] = SONG(STARTUP_SOUND);
float tone_qwerty[][2] = SONG(QWERTY_SOUND);
float tone_dyn_macro_rec[][2] = SONG(DVORAK_SOUND);
float tone_dyn_macro_play[][2] = SONG(COLEMAK_SOUND);
float tone_plover[][2] = SONG(PLOVER_SOUND);
float tone_plover_gb[][2] = SONG(PLOVER_GOODBYE_SOUND);
-float music_scale[][2] = SONG(MUSIC_SCALE_SOUND);
-
-float tone_goodbye[][2] = SONG(GOODBYE_SOUND);
#endif
void persistant_default_layer_set(uint16_t default_layer) {
@@ -239,36 +234,3 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
}
return true;
}
-
-void matrix_init_user(void) {
- #ifdef AUDIO_ENABLE
- startup_user();
- #endif
-}
-
-#ifdef AUDIO_ENABLE
-
-void startup_user(void)
-{
- _delay_ms(20); // gets rid of tick
- PLAY_SONG(tone_startup);
-}
-
-void shutdown_user(void)
-{
- PLAY_SONG(tone_goodbye);
- _delay_ms(150);
- stop_all_notes();
-}
-
-void music_on_user(void)
-{
- music_scale_user();
-}
-
-void music_scale_user(void)
-{
- PLAY_SONG(music_scale);
-}
-
-#endif
diff --git a/keyboards/planck/keymaps/mjtnumsym/keymap.c b/keyboards/planck/keymaps/mjtnumsym/keymap.c
index 3fa05ad178..4eaafb75d6 100644
--- a/keyboards/planck/keymaps/mjtnumsym/keymap.c
+++ b/keyboards/planck/keymaps/mjtnumsym/keymap.c
@@ -132,16 +132,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
};
#ifdef AUDIO_ENABLE
-
-float tone_startup[][2] = SONG(STARTUP_SOUND);
float tone_qwerty[][2] = SONG(QWERTY_SOUND);
float tone_dyn_macro_rec[][2] = SONG(DVORAK_SOUND);
float tone_dyn_macro_play[][2] = SONG(COLEMAK_SOUND);
float tone_plover[][2] = SONG(PLOVER_SOUND);
float tone_plover_gb[][2] = SONG(PLOVER_GOODBYE_SOUND);
-float music_scale[][2] = SONG(MUSIC_SCALE_SOUND);
-
-float tone_goodbye[][2] = SONG(GOODBYE_SOUND);
#endif
void persistant_default_layer_set(uint16_t default_layer) {
@@ -238,36 +233,3 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
}
return true;
}
-
-void matrix_init_user(void) {
- #ifdef AUDIO_ENABLE
- startup_user();
- #endif
-}
-
-#ifdef AUDIO_ENABLE
-
-void startup_user(void)
-{
- _delay_ms(20); // gets rid of tick
- PLAY_SONG(tone_startup);
-}
-
-void shutdown_user(void)
-{
- PLAY_SONG(tone_goodbye);
- _delay_ms(150);
- stop_all_notes();
-}
-
-void music_on_user(void)
-{
- music_scale_user();
-}
-
-void music_scale_user(void)
-{
- PLAY_SONG(music_scale);
-}
-
-#endif
diff --git a/keyboards/planck/keymaps/mnil/config.h b/keyboards/planck/keymaps/mnil/config.h
deleted file mode 100644
index 2dc8e19be6..0000000000
--- a/keyboards/planck/keymaps/mnil/config.h
+++ /dev/null
@@ -1,23 +0,0 @@
-/* Copyright 2021 Mats Nilsson
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-#pragma once
-
-#ifdef AUDIO_ENABLE
-# define STARTUP_SONG SONG(NO_SOUND)
-#endif
-
-#define MIDI_BASIC
diff --git a/keyboards/planck/keymaps/mnil/keymap.c b/keyboards/planck/keymaps/mnil/keymap.c
deleted file mode 100644
index 5aa85340bd..0000000000
--- a/keyboards/planck/keymaps/mnil/keymap.c
+++ /dev/null
@@ -1,60 +0,0 @@
-/* Copyright 2021 Mats Nilsson
- *
- * 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 "mnil.h"
-
-layer_state_t layer_state_set_user(layer_state_t state) { return update_tri_layer_state(state, _SYMBOLS, _NAVIGATION, _NUMPAD); }
-
-// clang-format off
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
-[_COLEMAK] = LAYOUT_planck_2x2u(
- KC_ESC, KC_Q, KC_W, KC_F, KC_P, KC_B, KC_J, KC_L, KC_U, KC_Y, TD(OAA), KC_BSPC,
- KC_TAB, TD(AAE), KC_R, KC_S, KC_T, KC_G, KC_M, KC_N, KC_E, KC_I, KC_O, KC_NO,
- KC_LSFT, KC_Z, KC_X, KC_C, KC_D, KC_V, KC_K, KC_H, KC_COMM, KC_DOT, SE_MINS, KC_NO ,
- KC_LCTL, KC_NO, KC_LGUI, SFT_TAB, _NAV_SPC, _SYM_ENT, CTL_BSPC,ALT_DEL, KC_NO, KC_LGUI
-),
-
-[_QWERTY] = LAYOUT_planck_2x2u(
- KC_TRNS, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, SE_ARNG,
- KC_TRNS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, SE_ODIA, SE_ADIA,
- KC_TRNS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
-),
-
-[_SYMBOLS] = LAYOUT_planck_2x2u(
- KC_TRNS, KC_NO, SE_PIPE, SE_LBRC, SE_RBRC, KC_NO, S(KC_5), SE_QUES, SE_AT, SE_EQL, SE_DLR, KC_BSPC,
- KC_TRNS, SE_LCBR, SE_RCBR, SE_LPRN, SE_RPRN, KC_NO, SE_PLUS, S(KC_1), S(KC_2), S(KC_3), SE_AMPR, KC_QUOT,
- KC_TRNS, M_TILD, M_CIRC, SE_LABK, SE_RABK, KC_NO, SE_QUOT, SE_SLSH, SE_BSLS, SE_ASTR, M_BTCK, KC_ENT,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
-),
-
-[_NAVIGATION] = LAYOUT_planck_2x2u(
- KC_TRNS, KC_NO, CUT, COPY, PASTE, AUTOFILL,KC_NO, KC_HOME, KC_WH_D, KC_WH_U, KC_END, KC_NO,
- KC_TRNS, KC_ACL0, KC_ACL1, KC_BTN2, KC_BTN1, KC_LCTL, KC_WH_L, KC_MS_L, KC_MS_D, KC_MS_U, KC_MS_R, KC_WH_R,
- KC_TRNS, KC_ACL2, KC_BTN4, KC_BTN3, KC_BTN5, KC_NO, KC_NO, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_LCTL,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
-),
-
-[_NUMPAD] = LAYOUT_planck_2x2u(
- KC_TRNS, QUIT, WIN, MVWSL, MVWSR, CRYWS, TERM, KC_7, KC_8, KC_9, KC_COMM, QK_BOOT,
- KC_TRNS, CS_TAB, C_TAB, PRVWS, NXTWS, I3MOD, OPEN, KC_4, KC_5, KC_6, KC_0, KC_NO,
- KC_TRNS, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, MOVWS, BROWSER, KC_1, KC_2, KC_3, KC_DOT, KC_NO,
- QWE_COL, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
-),
-
-};
-// clang-format on
diff --git a/keyboards/planck/keymaps/mnil/readme.md b/keyboards/planck/keymaps/mnil/readme.md
deleted file mode 100644
index 43c9409614..0000000000
--- a/keyboards/planck/keymaps/mnil/readme.md
+++ /dev/null
@@ -1,2 +0,0 @@
-# mnil's planck keymap
-Read my user settings [here](../../../../users/mnil/readme.md) for more details.
diff --git a/keyboards/planck/keymaps/muppetjones/.clang-format b/keyboards/planck/keymaps/muppetjones/.clang-format
deleted file mode 100644
index df3dbd17b4..0000000000
--- a/keyboards/planck/keymaps/muppetjones/.clang-format
+++ /dev/null
@@ -1,26 +0,0 @@
----
-BasedOnStyle: Google
-AlignAfterOpenBracket: Align
-AlignConsecutiveAssignments: 'true'
-AlignConsecutiveDeclarations: 'true'
-AlignOperands: 'true'
-AllowAllParametersOfDeclarationOnNextLine: 'false'
-AlwaysBreakAfterDefinitionReturnType: None
-AlwaysBreakAfterReturnType: None
-AlwaysBreakBeforeMultilineStrings: 'false'
-BinPackArguments: 'true'
-BinPackParameters: 'true'
-ColumnLimit: '160'
-IndentCaseLabels: 'true'
-IndentPPDirectives: AfterHash
-IndentWidth: '4'
-MaxEmptyLinesToKeep: '1'
-PointerAlignment: Right
-SortIncludes: 'false'
-SpaceBeforeAssignmentOperators: 'true'
-SpaceBeforeParens: ControlStatements
-SpaceInEmptyParentheses: 'false'
-TabWidth: '4'
-UseTab: Never
-
-...
diff --git a/keyboards/planck/keymaps/muppetjones/config.h b/keyboards/planck/keymaps/muppetjones/config.h
deleted file mode 100644
index 88331e71f6..0000000000
--- a/keyboards/planck/keymaps/muppetjones/config.h
+++ /dev/null
@@ -1,53 +0,0 @@
- /* Copyright 2020 Stephen Bush <muppetjones>
- *
- * 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.
- */
-#pragma once
-
-#ifdef AUDIO_ENABLE
-# define STARTUP_SONG SONG(PLANCK_SOUND)
-// #define STARTUP_SONG SONG(NO_SOUND)
-
-# define DEFAULT_LAYER_SONGS \
- { SONG(QWERTY_SOUND), SONG(COLEMAK_SOUND), SONG(DVORAK_SOUND) }
-#endif
-
-/*
- * MIDI options
- */
-
-/* enable basic MIDI features:
- - MIDI notes can be sent when in Music mode is on
-*/
-
-#define MIDI_BASIC
-
-/* enable advanced MIDI features:
- - MIDI notes can be added to the keymap
- - Octave shift and transpose
- - Virtual sustain, portamento, and modulation wheel
- - etc.
-*/
-//#define MIDI_ADVANCED
-
-/*
- * Other options
- */
-
-// Enable lighting layers
-#define RGBLIGHT_LAYERS
-#define RGBLIGHT_SLEEP
-
-// Change "hold" time (default is 200 ms)
-#define TAPPING_TERM 200
-
-// Enable rapid switch from tap to hold, disables double tap hold auto-repeat.
-#define QUICK_TAP_TERM 0
diff --git a/keyboards/planck/keymaps/muppetjones/keymap.c b/keyboards/planck/keymaps/muppetjones/keymap.c
deleted file mode 100644
index a5609e5711..0000000000
--- a/keyboards/planck/keymaps/muppetjones/keymap.c
+++ /dev/null
@@ -1,403 +0,0 @@
-/* Copyright 2020 Stephen Bush
- *
- * 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/>.
- */
-
-/*
- * qmk compile -kb planck/rev6 -km muppetjones
- */
-
-#include QMK_KEYBOARD_H
-#include "muse.h"
-#include "muppetjones.h"
-
-#define LAYOUT_planck_wrapper(...) LAYOUT_planck_grid(__VA_ARGS__)
-
-/* Extend layers from muppetjones.h
- _CLMK_DH = 0,
- _QWERTY
- _MOUSE,
- _LOWER,
- _RAISE,
- _NAV,
- _ADJUST,
- */
-enum planck_layers {
- _PLOVER = _ADJUST + 1,
-};
-
-enum planck_keycodes {
- PLOVER = SAFE_RANGE,
- BACKLIT,
- EXT_PLV,
-};
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- // clang-format off
-
-/* Colemak DH II
- * ,-----------------------------------------------------------------------------------.
- * | Q | W | F | P | B | Del | Bksp | J | L | U | Y | ; |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | A | R | S | T | G | | " | M | N | E | I | O |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | Z | X | C | D | V SFT| Enter| Tab | K | H | , | . | / |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | Brite| Ctrl | Alt |HY_ESC|Lower | Space |Raise |HY_ESC| Down | Up |Right |
- * `-----------------------------------------------------------------------------------'
- */
-[_CLMK_DH] = LAYOUT_planck_wrapper(
- __COLEMAK_MOD_DH_L1________________________, KC_DEL, KC_BSPC, __COLEMAK_MOD_DH_R1_W_QUOT_________________,
- __COLEMAK_MOD_DH_L2_W_GACS_________________, CW_TOGG, KC_QUOT, __COLEMAK_MOD_DH_R2_W_SCAG_________________,
- __COLEMAK_MOD_DH_L3_W_SFTV_________________, KC_ENT, KC_TAB, __COLEMAK_MOD_DH_R3________________________,
- TD_LAYR, XXXXXXX, XXXXXXX, HY_ESC, LOW_ENT, KC_BSPC, KC_BSPC, RAI_SPC, HY_ESC, KC_BSPC, XXXXXXX, XXXXXXX
-),
-
-/* Qwerty
- * ,-----------------------------------------------------------------------------------.
- * | Tab | Q | W | E | R | T | Y | U | I | O | P | Bksp |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | Esc | A | S | D | F | G | H | J | K | L | ; | " |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | Shift| Z | X | C | V | B | N | M | , | . | / |Enter |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | Brite| Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right |
- * `-----------------------------------------------------------------------------------'
- */
-[_QWERTY] = LAYOUT_planck_wrapper(
- __QWERTY_L1________________________________, _______, _______, __QWERTY_R1________________________________,
- __QWERTY_L2________________________________, _______, _______, __QWERTY_R2________________________________,
- __QWERTY_L3________________________________, _______, _______, __QWERTY_R3________________________________,
- __BLANK____________________________________, _______, _______, __BLANK____________________________________
-),
-
-/* MOUSE
- * No encoders. Just an empty layer.
- */
-[_MOUSE] = LAYOUT_planck_wrapper(
- __BLANK____________________________________, _______, _______, __BLANK____________________________________,
- __BLANK____________________________________, _______, _______, __BLANK____________________________________,
- __BLANK____________________________________, _______, _______, __BLANK____________________________________,
- __BLANK____________________________________, _______, _______, __BLANK____________________________________
-),
-
-// /* Colemak DH
-// * ,-----------------------------------------------------------------------------------.
-// * | Tab | Q | W | F | P | B | J | L | U | Y | ; | Bksp |
-// * |------+------+------+------+------+------+------+------+------+------+------+------|
-// * | Esc | A | R | S | T | G | M | N | E | I | O | " |
-// * |------+------+------+------+------+------+------+------+------+------+------+------|
-// * | Shift| Z | X | C | D | V | K | H | , | . | / |Enter |
-// * |------+------+------+------+------+------+------+------+------+------+------+------|
-// * | Brite| Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right |
-// * `-----------------------------------------------------------------------------------'
-// */
-// [_CLMK_DH] = LAYOUT_planck_grid(
-// KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_B, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC,
-// HY_ESC, HOME_A, HOME_R, HOME_S, HOME_T, KC_G, KC_M, HOME_N, HOME_E, HOME_I, HOME_O, KC_QUOT,
-// KC_LSFT, KC_Z, KC_X, KC_C, KC_D, KC_V, KC_K, KC_H, KC_COMM, KC_DOT, KC_SLSH, SC_SENT,
-// KC_LCTL, NUMPD, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_ENT, XXXXXXX, XXXXXXX, XXXXXXX
-// ),
-/* Lower (numpad, symbols)
- * ,-----------------------------------------------------------------------------------.
- * | | | ( | ) | ~ | | | | 7 & | 8 * | 9 ( | \ |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | | | { | } | ` | | | - _ | 4 $ | 5 % | 6 ^ | * |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | | | [ | ] | | | | = + | 1 ! | 2 @ | 3 # | | |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | | | | | | Space | | 0 | . | | |
- * `-----------------------------------------------------------------------------------'
- * 21.02.22: Removed F keys.
- * 21.03.28: Completely revamped to contain 10-key numpad and symbols.
- */
-[_LOWER] = LAYOUT_planck_wrapper(
- __SYMBOLS_L1_______________________________, _______, _______, __NUMPAD_R1________________________________,
- __SYMBOLS_L2_______________________________, _______, _______, __NUMPAD_R2________________________________,
- __SYMBOLS_L3_______________________________, _______, _______, __NUMPAD_R3________________________________,
- _______, _______, _______, _______, _______, _______, _______, __NUMPAD_R4________________________________
-),
-
-/* Raise
-* ,-----------------------------------------------------------------------------------.
-* | ` | | | | | | | Pg Up| HOME | | END | |
-* |------+------+------+------+------+------+------+------+------+------+------+------|
-* | GUI | ALT | CTL | SFT | | | | Pg Dn| LEFT | DOWN | UP |RIGHT |
-* |------+------+------+------+------+------+------+------+------+------+------+------|
-* | | | | | | | | | | | | |
-* |------+------+------+------+------+------+------+------+------+------+------+------|
-* | | | | | | | | Next | Vol- | Vol+ | Play |
-* `-----------------------------------------------------------------------------------'
-* 21.02.22: Removed F keys and replaced with useful programming keys.
-*/
-[_RAISE] = LAYOUT_planck_wrapper(
- XXXXXXX, XXXXXXX, KC_LPRN, KC_RPRN, XXXXXXX, _______, _______, __NAV_R1___________________________________,
- KC_LGUI, KC_LALT, HR_LBRC, HR_RBRC, KC_MINS, _______, _______, __NAV_R2___________________________________,
- XXXXXXX, XXXXXXX, KC_LCBR, KC_RCBR, KC_EQL, _______, _______, __NAV_R3___________________________________,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
-),
-
-/* Nav
- * Available in raise.
- */
-[_NAV] = LAYOUT_planck_wrapper(
- __BLANK____________________________________, _______, _______, __BLANK____________________________________,
- __BLANK____________________________________, _______, _______, __BLANK____________________________________,
- __BLANK____________________________________, _______, _______, __BLANK____________________________________,
- __BLANK____________________________________, _______, _______, __BLANK____________________________________
-),
-
-/* Plover layer (http://opensteno.org)
- * ,-----------------------------------------------------------------------------------.
- * | # | # | # | # | # | # | # | # | # | # | # | # |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | | S | T | P | H | * | * | F | P | L | T | D |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | | S | K | W | R | * | * | R | B | G | S | Z |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | Exit | | | A | O | | E | U | | | |
- * `-----------------------------------------------------------------------------------'
- */
-
-[_PLOVER] = LAYOUT_planck_grid(
- KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1 ,
- XXXXXXX, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC,
- XXXXXXX, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
- EXT_PLV, XXXXXXX, XXXXXXX, KC_C, KC_V, XXXXXXX, XXXXXXX, KC_N, KC_M, XXXXXXX, XXXXXXX, XXXXXXX
-),
-
-/* Adjust (Lower + Raise)
- * v------------------------RGB CONTROL--------------------v
- * ,-----------------------------------------------------------------------------------.
- * | | Reset|Debug | RGB |RGBMOD| HUE+ | HUE- | SAT+ | SAT- |BRGTH+|BRGTH-| |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | |Brite |MUSmod|Aud on|Audoff|AGnorm|AGswap|Qwerty|Colemk|CLMKII|Plover| |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | |Voice-|Voice+|Mus on|Musoff|MIDIon|MIDIof|ClmkDH| | | | |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | | | | | | | | | | | |
- * `-----------------------------------------------------------------------------------'
- */
-[_ADJUST] = LAYOUT_planck_wrapper(
- __ADJUST_L1________________________________, AU_NEXT, PLOVER, __MEDIA_R1_________________________________,
- __ADJUST_L2________________________________, AU_PREV, CLMK_DH, __MEDIA_R2_________________________________,
- __ADJUST_L3________________________________, MU_NEXT, QWERTY, __MEDIA_R3_________________________________,
- XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX
-)
-
-/*
- * ,-----------------------------------------------------------------------------------.
- * | | | | | | | | | | | | |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | | | | | | | | | | | | |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | | | | | | | | | | | | |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | | | | | | | | | | | |
- * `-----------------------------------------------------------------------------------'
-[_ADJUST] = LAYOUT_planck_grid(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
-)
-
- */
- // clang-format on
-};
-
-#ifdef AUDIO_ENABLE
-float plover_song[][2] = SONG(PLOVER_SOUND);
-float plover_gb_song[][2] = SONG(PLOVER_GOODBYE_SOUND);
-#endif
-
-#define LIGHT_GOLDEN 30, 255, 100
-#define LIGHT_MAGENTA 213, 255, 100
-#define LIGHT_AZURE 148, 255, 100
-
-// Define light layers
-// -- e.g., light up LEDS 3-6 with RED when the numpd layer is active
-const rgblight_segment_t PROGMEM rgb_clmk_dh[] = RGBLIGHT_LAYER_SEGMENTS({0, 9, HSV_RED});
-const rgblight_segment_t PROGMEM rgb_lower[] = RGBLIGHT_LAYER_SEGMENTS({0, 9, LIGHT_GOLDEN});
-const rgblight_segment_t PROGMEM rgb_raise[] = RGBLIGHT_LAYER_SEGMENTS({0, 9, LIGHT_MAGENTA});
-const rgblight_segment_t PROGMEM rgb_numpd[] = RGBLIGHT_LAYER_SEGMENTS({0, 9, LIGHT_AZURE});
-
-const rgblight_segment_t* const PROGMEM rgb_layers[] = RGBLIGHT_LAYERS_LIST(rgb_clmk_dh, rgb_lower, rgb_raise, rgb_numpd);
-
-void keyboard_post_init_user(void) {
- rgblight_layers = rgb_layers; // Enable the LED layers
-}
-
-layer_state_t layer_state_set_user(layer_state_t state) {
- rgblight_set_layer_state(1, layer_state_cmp(state, _LOWER));
- rgblight_set_layer_state(2, layer_state_cmp(state, _RAISE));
- return state;
-}
-
-bool process_record_keymap(uint16_t keycode, keyrecord_t* record) {
- switch (keycode) {
- case BACKLIT:
- if (record->event.pressed) {
- register_code(KC_RSFT);
-#ifdef BACKLIGHT_ENABLE
- backlight_step();
-#endif
-#ifdef KEYBOARD_planck_rev5
- writePinLow(E6);
-#endif
- } else {
- unregister_code(KC_RSFT);
-#ifdef KEYBOARD_planck_rev5
- writePinHigh(E6);
-#endif
- }
- return false;
- break;
- case PLOVER:
- if (record->event.pressed) {
-#ifdef AUDIO_ENABLE
- stop_all_notes();
- PLAY_SONG(plover_song);
-#endif
- layer_off(_RAISE);
- layer_off(_LOWER);
- layer_off(_ADJUST);
- layer_on(_PLOVER);
- if (!eeconfig_is_enabled()) {
- eeconfig_init();
- }
- keymap_config.raw = eeconfig_read_keymap();
- keymap_config.nkro = 1;
- eeconfig_update_keymap(keymap_config.raw);
- }
- return false;
- break;
- case EXT_PLV:
- if (record->event.pressed) {
-#ifdef AUDIO_ENABLE
- PLAY_SONG(plover_gb_song);
-#endif
- layer_off(_PLOVER);
- }
- return false;
- break;
- }
-
- return true;
-}
-
-bool muse_mode = false;
-uint8_t last_muse_note = 0;
-uint16_t muse_counter = 0;
-uint8_t muse_offset = 70;
-uint16_t muse_tempo = 50;
-
-bool encoder_update(bool clockwise) {
- if (muse_mode) {
- if (IS_LAYER_ON(_RAISE)) {
- if (clockwise) {
- muse_offset++;
- } else {
- muse_offset--;
- }
- } else {
- if (clockwise) {
- muse_tempo += 1;
- } else {
- muse_tempo -= 1;
- }
- }
- } else {
- if (clockwise) {
-#ifdef MOUSEKEY_ENABLE
- tap_code(KC_MS_WH_DOWN);
-#else
- tap_code(KC_PGDN);
-#endif
- } else {
-#ifdef MOUSEKEY_ENABLE
- tap_code(KC_MS_WH_UP);
-#else
- tap_code(KC_PGUP);
-#endif
- }
- }
- return true;
-}
-
-void dip_switch_update_user(uint8_t index, bool active) {
- switch (index) {
- case 0: {
-#ifdef AUDIO_ENABLE
- static bool play_sound = false;
-#endif
- if (active) {
-#ifdef AUDIO_ENABLE
- if (play_sound) {
- PLAY_SONG(plover_song);
- }
-#endif
- layer_on(_ADJUST);
- } else {
-#ifdef AUDIO_ENABLE
- if (play_sound) {
- PLAY_SONG(plover_gb_song);
- }
-#endif
- layer_off(_ADJUST);
- }
-#ifdef AUDIO_ENABLE
- play_sound = true;
-#endif
- break;
- }
- case 1:
- if (active) {
- muse_mode = true;
- } else {
- muse_mode = false;
- }
- }
-}
-
-void matrix_scan_user(void) {
-#ifdef AUDIO_ENABLE
- if (muse_mode) {
- if (muse_counter == 0) {
- uint8_t muse_note = muse_offset + SCALE[muse_clock_pulse()];
- if (muse_note != last_muse_note) {
- stop_note(compute_freq_for_midi_note(last_muse_note));
- play_note(compute_freq_for_midi_note(muse_note), 0xF);
- last_muse_note = muse_note;
- }
- }
- muse_counter = (muse_counter + 1) % muse_tempo;
- } else {
- if (muse_counter) {
- stop_all_notes();
- muse_counter = 0;
- }
- }
-#endif
-}
-
-bool music_mask_user(uint16_t keycode) {
- switch (keycode) {
- case RAISE:
- case LOWER:
- return false;
- default:
- return true;
- }
-}
diff --git a/keyboards/planck/keymaps/muppetjones/readme.md b/keyboards/planck/keymaps/muppetjones/readme.md
deleted file mode 100644
index de9680b498..0000000000
--- a/keyboards/planck/keymaps/muppetjones/readme.md
+++ /dev/null
@@ -1,2 +0,0 @@
-# The Default Planck Layout
-
diff --git a/keyboards/planck/keymaps/muppetjones/rules.mk b/keyboards/planck/keymaps/muppetjones/rules.mk
deleted file mode 100644
index 1db412715d..0000000000
--- a/keyboards/planck/keymaps/muppetjones/rules.mk
+++ /dev/null
@@ -1,5 +0,0 @@
-SRC += muse.c
-
-MOUSEKEY_ENABLE = yes
-TAP_DANCE_ENABLE = yes
-COMBO_ENABLE = yes
diff --git a/keyboards/planck/keymaps/narze/config.h b/keyboards/planck/keymaps/narze/config.h
deleted file mode 100644
index a7fccc4187..0000000000
--- a/keyboards/planck/keymaps/narze/config.h
+++ /dev/null
@@ -1,43 +0,0 @@
-#pragma once
-
-/*
- * MIDI options
- */
-
-/* enable basic MIDI features:
- - MIDI notes can be sent when in Music mode is on
-*/
-#define MIDI_BASIC
-
-/* enable advanced MIDI features:
- - MIDI notes can be added to the keymap
- - Octave shift and transpose
- - Virtual sustain, portamento, and modulation wheel
- - etc.
-*/
-//#define MIDI_ADVANCED
-
-/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
-//#define MIDI_TONE_KEYCODE_OCTAVES 2
-
-#undef TAPPING_TERM
-#define TAPPING_TERM 100
-
-#define COMBO_TERM 20
-
-#define PERMISSIVE_HOLD
-
-#define SUPER_DUPER_SOUND S__NOTE(_B1)
-
-#define MOUSEKEY_DELAY 100
-
-#define USB_POLLING_INTERVAL_MS 1
-
-#ifdef AUDIO_ENABLE
- #define STARTUP_SONG SONG(PLANCK_SOUND)
-
- #define DEFAULT_LAYER_SONGS { SONG(QWERTY_SOUND), \
- SONG(COLEMAK_SOUND), \
- SONG(DVORAK_SOUND) \
- }
-#endif
diff --git a/keyboards/planck/keymaps/narze/keymap.c b/keyboards/planck/keymaps/narze/keymap.c
deleted file mode 100644
index 8706905968..0000000000
--- a/keyboards/planck/keymaps/narze/keymap.c
+++ /dev/null
@@ -1,367 +0,0 @@
-#include QMK_KEYBOARD_H
-#include "narze.h"
-#ifdef AUDIO_ENABLE
- #include "audio.h"
-#endif
-#include "keymap_colemak.h"
-
-extern keymap_config_t keymap_config;
-
-enum planck_layers {
- _QWERTY,
- _COLEMAK,
- _QWOC,
- _LOWER,
- _RAISE,
- _PLOVER,
- _SUPERDUPER,
- _DEV,
- _MOUSE,
- _ADJUST
-};
-
-enum planck_keycodes {
- QWERTY = SAFE_RANGE,
- COLEMAK,
- QWOC,
- PLOVER,
- SUPERDUPER,
- DEV,
- MOUSE,
- LOWER,
- RAISE,
- BACKLIT,
- EXT_PLV,
- SDTOGG, // Toggle SuperDuper
- GUI_UNDS,
- LSFT_LPRN,
-};
-
-enum process_combo_event {
- CB_SUPERDUPER,
-};
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
-/* Qwerty
- * ,-----------------------------------------------------------------------------------.
- * | Tab | Q | W | E | R | T | Y | U | I | O | P | F19 |
- * |------+------+------+------+------+-------------+------+------+------+------+------|
- * | Hp/Ec| A | S | D | F | G | H | J | K | L | ; | ' |
- * |------+------+------+------+------+------|------+------+------+------+------+------|
- * | Sft/(| Z/Dv | X | C | V | B | N | M | , | . | SD-/ |Sft/Ent|
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | Rse/[| Ctrl | Alt | GUI/_|Lower | Space | Raise| Bksp | Alt | Ctrl | Low/]|
- * `-----------------------------------------------------------------------------------'
- */
-[_QWERTY] = LAYOUT_planck_grid(
- KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_F19,
- HPR_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
- LSFT_LPRN, LT(_DEV, KC_Z), KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, LT(_SUPERDUPER, KC_SLSH), SFT_ENT,
- LT(_RAISE, KC_LBRC), KC_LCTL, KC_LALT, GUI_UNDS, LOWER, KC_SPC, KC_SPC, RAISE, KC_BSPC, ALT_COLN, KC_RCTL, LT(_LOWER, KC_RBRC)
-),
-
-/* Colemak
- * ,-----------------------------------------------------------------------------------.
- * | Tab | Q | W | F | P | G | J | L | U | Y | ; | - |
- * |------+------+------+------+------+-------------+------+------+------+------+------|
- * | Hp/Ec| A | R | S | T | D | H | N | E | I | O | ' |
- * |------+------+------+------+------+------|------+------+------+------+------+------|
- * | Sft/(| Z/Dv | X | C | V | B | K | M | , | . | SD-/ |Sft/Ent|
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | Brite| Ctrl | Alt | GUI/_|Lower | Space | Raise| Bksp | Alt | Ctrl | Low/]|
- * `-----------------------------------------------------------------------------------'
- */
-[_COLEMAK] = LAYOUT_planck_grid(
- KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_MINS,
- HPR_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT,
- LSFT_LPRN, LT(_DEV, KC_Z), KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, LT(_SUPERDUPER, KC_SLSH), SFT_ENT,
- LT(_RAISE, KC_LBRC), KC_LCTL, KC_LALT, GUI_UNDS, LOWER, KC_SPC, KC_SPC, RAISE, KC_BSPC, ALT_COLN, KC_RCTL, LT(_LOWER, KC_RBRC)
-),
-
-/* Qwerty on software Colemak : Useful for gaming with qwerty keymaps! */
-[_QWOC] = LAYOUT_planck_grid(
- KC_TAB, CM_Q, CM_W, CM_E, CM_R, CM_T, CM_Y, CM_U, CM_I, CM_O, CM_P, KC_MINS,
- HPR_ESC, CM_A, CM_S, CM_D, CM_F, CM_G, CM_H, CM_J, CM_K, CM_L, CM_SCLN, KC_QUOT,
- LSFT_LPRN, LT(_DEV, KC_Z), CM_X, CM_C, CM_V, CM_B, CM_N, CM_M, CM_COMM, CM_DOT, LT(_SUPERDUPER, CM_SLSH), SFT_ENT,
- LT(_RAISE, KC_LBRC), KC_LCTL, KC_LALT, GUI_UNDS, LOWER, KC_SPC, KC_SPC, RAISE, KC_BSPC, ALT_COLN, KC_RCTL, LT(_LOWER, KC_RBRC)
-),
-
-/* Lower
- * ,-----------------------------------------------------------------------------------.
- * | ` | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp |
- * |------+------+------+------+------+-------------+------+------+------+------+------|
- * | Del | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | |
- * |------+------+------+------+------+------|------+------+------+------+------+------|
- * | | F7 | F8 | F9 | F10 | F11 | F12 |ISO ~ | | | |Sft/Ent|
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | | | | | | | | Next | Vol- | Vol+ | Play |
- * `-----------------------------------------------------------------------------------'
- */
-[_LOWER] = LAYOUT_planck_grid(
- KC_GRV, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC,
- KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE,
- _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,S(KC_NUHS),_______,_______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY
-),
-
-/* Raise
- * ,-----------------------------------------------------------------------------------.
- * | ~ | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp |
- * |------+------+------+------+------+-------------+------+------+------+------+------|
- * | Del | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ |
- * |------+------+------+------+------+------|------+------+------+------+------+------|
- * | | F7 | F8 | F9 | F10 | F11 | F12 |ISO # | | | |Sft/Ent|
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | | | | | | | | Next | Vol- | Vol+ | Play |
- * `-----------------------------------------------------------------------------------'
- */
-[_RAISE] = LAYOUT_planck_grid(
- KC_TILD, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC,
- KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS,
- _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NUHS, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY
-),
-
-/* Plover layer (http://opensteno.org)
- * ,-----------------------------------------------------------------------------------.
- * | # | # | # | # | # | # | # | # | # | # | # | # |
- * |------+------+------+------+------+-------------+------+------+------+------+------|
- * | | S | T | P | H | * | * | F | P | L | T | D |
- * |------+------+------+------+------+------|------+------+------+------+------+------|
- * |TogOut| S | K | W | R | * | * | R | B | G | S | Z |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | Exit | | | A | O | | E | U | | | |
- * `-----------------------------------------------------------------------------------'
- */
-
-[_PLOVER] = LAYOUT_planck_grid(
- KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1 ,
- XXXXXXX, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC,
- XXXXXXX, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
- EXT_PLV, XXXXXXX, XXXXXXX, KC_C, KC_V, XXXXXXX, XXXXXXX, KC_N, KC_M, XXXXXXX, XXXXXXX, XXXXXXX
-),
-
-/* SuperDuper : https://gist.github.com/narze/861e2167784842d38771
- * /-----------------------------------------------------------------------------------\
- * | | | | | | | | | T← | T→ | | |
- * |------+------+------+------+------+-------------+------+------+------+------+------|
- * | | Alt | [SuperDuper]| Bksp | Gui | ← | ↓ | ↑ | → | Del | |
- * |------+------+------+------+------+------|------+------+------+------+------+------|
- * | | | | | | | | | | | | |
- * |------+------+------+------+------+-------------+------+------+------+------+------|
- * | | | | | | Shift | | | | | |
- * \-----------------------------------------------------------------------------------/
- */
-[_SUPERDUPER] = LAYOUT_planck_grid(
- _______, _______, _______, _______, _______, _______, _______, _______, S(LGUI(KC_LBRC)), S(LGUI(KC_RBRC)), _______, _______,
- _______, KC_LALT, _______, _______, KC_BSPC, KC_LGUI, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_DEL, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, KC_LSFT, KC_LSFT, _______, _______, _______, _______, _______
-),
-
-/* Dev Layer
- * /-----------------------------------------------------------------------------------\
- * | | | | | | | | - | + | ( | ) | |
- * |------+------+------+------+------+-------------+------+------+------+------+------|
- * | | | | | | | _ | [ | ] | { | } | |
- * |------+------+------+------+------+------|------+------+------+------+------+------|
- * | | | | | | | = | | | < | > | ? | |
- * |------+------+------+------+------+-------------+------+------+------+------+------|
- * | | | | | | | | | | | |
- * \-----------------------------------------------------------------------------------/
- */
-[_DEV] = LAYOUT_planck_grid(
- _______, _______, _______, _______, _______, _______, _______, KC_MINS, S(KC_EQL), S(KC_9), S(KC_0), _______,
- _______, _______, _______, _______, _______, _______, S(KC_MINS), KC_LBRC, KC_RBRC, S(KC_LBRC), S(KC_RBRC), _______,
- _______, _______, _______, _______, _______, _______, KC_EQL, S(KC_BSLS), S(KC_COMM), S(KC_DOT), S(KC_SLSH), _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
-),
-
-/* Mouse
- * /-----------------------------------------------------------------------------------\
- * | | | S↑ | M↑ | S↓ | | | | S↑ | S↓ | | |
- * |------+------+------+------+------+-------------+------+------+------+------+------|
- * | | | M← | M↓ | M→ | | M← | M↓ | M↑ | M→ | | |
- * |------+------+------+------+------+------|------+------+------+------+------+------|
- * | |[Mouse| | | | M3 | M3 | | | | | |
- * |------+------+------+------+------+-------------+------+------+------+------+------|
- * | | | | | M2 | LeftClick | M2 | | | | |
- * \-----------------------------------------------------------------------------------/
- */
-[_MOUSE] = LAYOUT_planck_grid(
- _______, _______, KC_WH_U, KC_MS_U, KC_WH_D, _______, _______, _______, KC_WH_U, KC_WH_D, _______, _______,
- _______, _______, KC_MS_L, KC_MS_D, KC_MS_R, _______, KC_MS_L, KC_MS_D, KC_MS_U, KC_MS_R, _______, _______,
- _______, _______, _______, _______, _______, KC_BTN3, KC_BTN3, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, KC_BTN2, KC_BTN1, KC_BTN1, KC_BTN2, _______, _______, _______, _______
-),
-
-/* Adjust (Lower + Raise)
- * ,-----------------------------------------------------------------------------------.
- * | | Reset| | | | | | | | | | Del |
- * |------+------+------+------+------+-------------+------+------+------+------+------|
- * | | | |Aud on|Audoff|AGnorm|AGswap|Qwerty|Colemk|QwOnCo|Plover| |
- * |------+------+------+------+------+------|------+------+------+------+------+------|
- * | |Voice-|Voice+|Mus on|Musoff|MIDIon|MIDIof|SDtogg| | | | |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | | | | | | | | | | | |
- * `-----------------------------------------------------------------------------------'
- */
-[_ADJUST] = LAYOUT_planck_grid(
- _______, QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL,
- _______, _______, _______, AU_ON, AU_OFF, AG_NORM, AG_SWAP, QWERTY, COLEMAK, QWOC, PLOVER, _______,
- _______, AU_PREV, AU_NEXT, MU_ON, MU_OFF, MI_ON, MI_OFF, SDTOGG, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, BACKLIT
-)
-
-};
-
-#ifdef AUDIO_ENABLE
- float tone_plover[][2] = SONG(PLOVER_SOUND);
- float tone_plover_gb[][2] = SONG(PLOVER_GOODBYE_SOUND);
- float tone_coin[][2] = SONG(VIOLIN_SOUND);
- float tone_goodbye[][2] = SONG(GOODBYE_SOUND);
-#endif
-
-bool process_record_user(uint16_t keycode, keyrecord_t *record) {
- switch (keycode) {
- case QWERTY:
- if (record->event.pressed) {
- set_single_persistent_default_layer(_QWERTY);
-
- set_superduper_key_combo_layer(_QWERTY);
- }
- return false;
-
- case COLEMAK:
- if (record->event.pressed) {
- set_single_persistent_default_layer(_COLEMAK);
-
- set_superduper_key_combo_layer(_COLEMAK);
- }
- return false;
-
- case QWOC:
- if (record->event.pressed) {
- set_single_persistent_default_layer(_QWOC);
-
- set_superduper_key_combo_layer(_QWOC);
- }
- return false;
-
- case LOWER:
- if (record->event.pressed) {
- layer_on(_LOWER);
- update_tri_layer(_LOWER, _RAISE, _ADJUST);
- } else {
- layer_off(_LOWER);
- update_tri_layer(_LOWER, _RAISE, _ADJUST);
- }
- return false;
-
- case RAISE:
- if (record->event.pressed) {
- layer_on(_RAISE);
- update_tri_layer(_LOWER, _RAISE, _ADJUST);
- } else {
- layer_off(_RAISE);
- update_tri_layer(_LOWER, _RAISE, _ADJUST);
- }
- return false;
-
- case BACKLIT:
- if (record->event.pressed) {
- register_code(KC_RSFT);
- #ifdef BACKLIGHT_ENABLE
- backlight_step();
- #endif
- } else {
- unregister_code(KC_RSFT);
- }
- return false;
-
- case PLOVER:
- if (record->event.pressed) {
- #ifdef AUDIO_ENABLE
- stop_all_notes();
- PLAY_SONG(tone_plover);
- #endif
- layer_off(_RAISE);
- layer_off(_LOWER);
- layer_off(_ADJUST);
- layer_on(_PLOVER);
- if (!eeconfig_is_enabled()) {
- eeconfig_init();
- }
- keymap_config.raw = eeconfig_read_keymap();
- keymap_config.nkro = 1;
- eeconfig_update_keymap(keymap_config.raw);
- }
- return false;
-
- case EXT_PLV:
- if (record->event.pressed) {
- #ifdef AUDIO_ENABLE
- PLAY_SONG(tone_plover_gb);
- #endif
- layer_off(_PLOVER);
- }
- return false;
-
- case SDTOGG:
- if (record->event.pressed) {
- bool enabled = toggle_superduper_mode();
-
- #ifdef AUDIO_ENABLE
- if (enabled) {
- PLAY_SONG(tone_coin);
- } else {
- PLAY_SONG(tone_goodbye);
- }
- #endif
- }
- return false;
-
- // Macros
-
- // 1. Hold for LGUI, tap for Underscore
- case GUI_UNDS:
- perform_space_cadet(record, keycode, KC_LGUI, KC_LSFT, KC_MINS);
- return false;
-
- // 2. Hold for LSHIFT, tap for Parens open
- case LSFT_LPRN:
- perform_space_cadet(record, keycode, KC_LSFT, KC_LSFT, KC_9);
- return false;
-
- default:
- return true;
- }
- return true;
-}
-
-void matrix_init_user(void) {
- #ifdef AUDIO_ENABLE
- startup_user();
- #endif
-}
-
-void matrix_setup(void) {
- set_superduper_key_combos();
-}
-
-void matrix_scan_user(void) {
-}
-
-void process_combo_event(uint16_t combo_index, bool pressed) {
- if (pressed) {
- switch(combo_index) {
- case CB_SUPERDUPER:
- layer_on(_SUPERDUPER);
- break;
- }
- } else {
- layer_off(_SUPERDUPER);
- unregister_mods(MOD_BIT(KC_LGUI) | MOD_BIT(KC_LCTL) | MOD_BIT(KC_LALT)); // Sometimes mods are held, unregister them
- }
-}
diff --git a/keyboards/planck/keymaps/narze/readme.md b/keyboards/planck/keymaps/narze/readme.md
deleted file mode 100644
index 86bf426d39..0000000000
--- a/keyboards/planck/keymaps/narze/readme.md
+++ /dev/null
@@ -1,17 +0,0 @@
-# narze's layout
-
-## Key features
-- Qwerty + [Colemak](https://colemak.com) layouts, and you can type Qwerty on software-level Colemak as well. Very useful for gaming or when your friend wanna type something but don't use Colemak.
-- [(S)uper (D)uper Mode](/users/narze/readme.md)
-- Mouse keys with Z
-
-## Build instructions
-- `cd /path/to/qmk_firmware`
-- Ensure latest libraries are loaded `make git-submodule`
-- Build with docker
- - Planck Rev. 4 : `util/docker_build.sh planck/rev4:narze`
- - Planck Light : `util/docker_build.sh planck/light:narze`
-- Flash hex file
- - Using dfu-programmer `dfu-programmer atmega32u4 erase --force && dfu-programmer atmega32u4 flash .build/planck_rev4_narze.hex`
- - For Planck Light change the target microcontroller `dfu-programmer at90usb1286 erase --force && dfu-programmer at90usb1286 flash .build/planck_light_narze.hex`
- - Use [QMK Toolbox](https://github.com/qmk/qmk_toolbox/releases)
diff --git a/keyboards/planck/keymaps/narze/rules.mk b/keyboards/planck/keymaps/narze/rules.mk
deleted file mode 100644
index e066906f9d..0000000000
--- a/keyboards/planck/keymaps/narze/rules.mk
+++ /dev/null
@@ -1,25 +0,0 @@
-
-
-BOOTMAGIC_ENABLE = no # Enable Bootmagic Lite
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
-COMMAND_ENABLE = yes # Commands for debug and configuration
-NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
-BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
-UNICODE_ENABLE = no # Unicode
-BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
-RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight.
-AUDIO_ENABLE = yes
-
-# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
-SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
-
-COMBO_ENABLE = yes
-
-ifeq ($(strip $(KEYBOARD)), planck/rev4)
- MOUSEKEY_ENABLE = no # Mouse keys(+4700)
- MIDI_ENABLE = no
-else
- MOUSEKEY_ENABLE = yes
- MIDI_ENABLE = yes
-endif
diff --git a/keyboards/planck/keymaps/not-quite-neo/config.h b/keyboards/planck/keymaps/not-quite-neo/config.h
deleted file mode 100644
index 7fa3bf328e..0000000000
--- a/keyboards/planck/keymaps/not-quite-neo/config.h
+++ /dev/null
@@ -1,6 +0,0 @@
-#ifndef CONFIG_USER_H
-#define CONFIG_USER_H
-
-#include "../../config.h"
-
-#endif
diff --git a/keyboards/planck/keymaps/not-quite-neo/keymap.c b/keyboards/planck/keymaps/not-quite-neo/keymap.c
deleted file mode 100644
index 2248c7a2b9..0000000000
--- a/keyboards/planck/keymaps/not-quite-neo/keymap.c
+++ /dev/null
@@ -1,129 +0,0 @@
-/*
-NQN is not-quite-neo
-A layout based on the
-*/
-
-
-#include QMK_KEYBOARD_H
-#include "nqn-keys-on-quertz-de-latin1.h"
-#include "nqn-basic-layout.h"
-
-
-// Automatic number generation of important keywords
-enum my_keycodes{
- // Layer numbers follow the neo2 terminology, i.e. base layer = layer 1
- L01 = 0,
- /* L02, SHIFT is not (yet) implemented as a fully customizable layer */
- L03,
- L04,
- L05,
- /* L06, UNSPECIFIED not (yet) needed */
- LFN
-};
-
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-/* L01 -> default: BASE LAYER
- * ,-----------------------------------------------------------------------------------.
- * | ESC | | | ENTER|
- * |------+ | +------|
- * | L03 | L01_LEFT | L01_RIGHT | L03 |
- * |------+ | +------|
- * | SHIFT| | | SHIFT|
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | CTLR | GUI | ALT | L05 | L04 | SPACE| SPACE| L04 | L05 | ALTGR| LFN | CTLR |
- * `-----------------------------------------------------------------------------------'
- */
-[L01] = LAYOUT_planck_grid(
- KC_ESC, L01_LEFT_01, L01_RIGHT_01, KC_ENTER,
- MO(L03), L01_LEFT_02, L01_RIGHT_02, MO(L03),
- KC_LSFT, L01_LEFT_03, L01_RIGHT_03, KC_RSFT,
- KC_LCTL, KC_LGUI, KC_LALT, MO(L05), MO(L04), KC_SPC, KC_SPC, MO(L04), MO(L05), KC_RALT, MO(LFN), KC_RCTL
-),
-
-
-/*
-L02 -> MO(L02): SHIFT (as a layer not used, not defined, not reachable)
- */
-
-
-/* L03 -> MO(L03): PROGRAMMING
- * ,-----------------------------------------------------------------------------------.
- * | | | | |
- * |------+ | +------|
- * | | L03_LEFT | L03_RIGHT | |
- * |------+ | +------|
- * | | | | |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | | | | | | | | | | | | |
- * `-----------------------------------------------------------------------------------'
- */
-[L03] = LAYOUT_planck_grid(
- _______, L03_LEFT_01, L03_RIGHT_01, _______,
- _______, L03_LEFT_02, L03_RIGHT_02, _______,
- _______, L03_LEFT_03, L03_RIGHT_03, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
-),
-
-
-/* L04 -> MO(L04): NAVIGATION AND NUMBERS
- * ,-----------------------------------------------------------------------------------.
- * | | | | |
- * |------+ | +------|
- * | | L04_LEFT | L04_RIGHT | |
- * |------+ | +------|
- * | | | | |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | | | | | | | 0 | | | | | |
- * `-----------------------------------------------------------------------------------'
- */
-[L04] = LAYOUT_planck_grid(
- _______, L04_LEFT_01, L04_RIGHT_01, _______,
- _______, L04_LEFT_02, L04_RIGHT_02, _______,
- _______, L04_LEFT_03, L04_RIGHT_03, _______,
- _______, _______, _______, _______, _______, _______, KC_0, _______, _______, _______, _______, _______
-),
-
-
-/* L05 -> MO(L05): ALTERNATE
- * ,-----------------------------------------------------------------------------------.
- * | | | | |
- * |------+ | +------|
- * | | L05_LEFT | L05_RIGHT | |
- * |------+ | +------|
- * | | | | |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | | | | | | | | | | | | |
- * `-----------------------------------------------------------------------------------'
- */
-[L05] = LAYOUT_planck_grid(
- _______, L05_LEFT_01, L05_RIGHT_01, _______,
- _______, L05_LEFT_02, L05_RIGHT_02, _______,
- _______, L05_LEFT_03, L05_RIGHT_03, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
-),
-
-
-/*
-L06 -> <TBD>: UNSPECIFIED
-*/
-
-
-/* LFN -> MO(FN): FUNCTION
- * ,-----------------------------------------------------------------------------------.
- * | QK_BOOT| | | BACKS|
- * |------+ | +------|
- * | | L06_LEFT | L06_RIGHT |INSERT|
- * |------+ | +------|
- * | | | |DELETE|
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * |VOICE-|VOICE+|MUS ON|MUS OF| LIGHT| | | VOL+ | VOL- | MUTE | | |
- * `-----------------------------------------------------------------------------------'
- */
-[LFN] = LAYOUT_planck_grid(
- QK_BOOT, L06_LEFT_01, L06_RIGHT_01, KC_BSPC,
- _______, L06_LEFT_02, L06_RIGHT_02, KC_INS,
- _______, L06_LEFT_03, L06_RIGHT_03, KC_DEL,
- AU_PREV, AU_NEXT, MU_ON, MU_OFF, _______, _______, _______, KC_VOLU, KC_VOLD, KC_MUTE, _______, _______
-)
-};
diff --git a/keyboards/planck/keymaps/not-quite-neo/readme.md b/keyboards/planck/keymaps/not-quite-neo/readme.md
deleted file mode 100644
index 3fcb4edf0d..0000000000
--- a/keyboards/planck/keymaps/not-quite-neo/readme.md
+++ /dev/null
@@ -1,5 +0,0 @@
-# not-quite-neo
-
-This is my personal take on porting the [neo2 layout](https://www.neo-layout.org/) to support multiple keyboards.
-
-Refer to the [readme.md](../../../../users/not-quite-neo/readme.md) of the generic parts of the implementation. \ No newline at end of file
diff --git a/keyboards/planck/keymaps/not-quite-neo/rules.mk b/keyboards/planck/keymaps/not-quite-neo/rules.mk
deleted file mode 100644
index b4e2e5c815..0000000000
--- a/keyboards/planck/keymaps/not-quite-neo/rules.mk
+++ /dev/null
@@ -1,24 +0,0 @@
-# Based on Zach's Planck Makefile
-# Max .hex size is about 28636 bytes
-
-# Build Options
-# change to "no" to disable the options, or define them in the Makefile in
-# the appropriate keymap folder that will get included automatically
-#
-TAP_DANCE_ENABLE = no # Enable TapDance functionality
-BOOTMAGIC_ENABLE = no # Enable Bootmagic Lite
-MOUSEKEY_ENABLE = no # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
-COMMAND_ENABLE = no # Commands for debug and configuration
-NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
-BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
-MIDI_ENABLE = no # MIDI controls
-AUDIO_ENABLE = no # Audio output on port C6
-#VARIABLE_TRACE = no # Debug changes to variable values
-UNICODE_ENABLE = no # Unicode (can't be used with unicodemap)
-UNICODEMAP_ENABLE = no # Enable extended unicode
-BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
-RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight.
-# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
-SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
diff --git a/keyboards/planck/keymaps/originerd/keymap.c b/keyboards/planck/keymaps/originerd/keymap.c
index 85e5cd3b16..d7c9ffb6b5 100644
--- a/keyboards/planck/keymaps/originerd/keymap.c
+++ b/keyboards/planck/keymaps/originerd/keymap.c
@@ -101,12 +101,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
};
#ifdef AUDIO_ENABLE
-
-float tone_startup[][2] = SONG(STARTUP_SOUND);
float tone_nerd[][2] = SONG(QWERTY_SOUND);
-float music_scale[][2] = SONG(MUSIC_SCALE_SOUND);
-
-float tone_goodbye[][2] = SONG(GOODBYE_SOUND);
#endif
@@ -149,36 +144,3 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
}
return true;
}
-
-void matrix_init_user(void) {
- #ifdef AUDIO_ENABLE
- startup_user();
- #endif
-}
-
-#ifdef AUDIO_ENABLE
-
-void startup_user(void)
-{
- _delay_ms(20); // gets rid of tick
- PLAY_SONG(tone_startup);
-}
-
-void shutdown_user(void)
-{
- PLAY_SONG(tone_goodbye);
- _delay_ms(150);
- stop_all_notes();
-}
-
-void music_on_user(void)
-{
- music_scale_user();
-}
-
-void music_scale_user(void)
-{
- PLAY_SONG(music_scale);
-}
-
-#endif
diff --git a/keyboards/planck/keymaps/peterfalken/config.h b/keyboards/planck/keymaps/peterfalken/config.h
deleted file mode 100644
index 4b14b7756b..0000000000
--- a/keyboards/planck/keymaps/peterfalken/config.h
+++ /dev/null
@@ -1,49 +0,0 @@
-/* Copyright 2015-2021 Jack Humbert
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-#pragma once
-
-#ifdef AUDIO_ENABLE
-# define STARTUP_SONG SONG(PLANCK_SOUND)
-// #define STARTUP_SONG SONG(NO_SOUND)
-
-# define DEFAULT_LAYER_SONGS \
- { SONG(QWERTY_SOUND), SONG(COLEMAK_SOUND), SONG(DVORAK_SOUND) }
-#endif
-
-/*
- * MIDI options
- */
-
-/* enable basic MIDI features:
- - MIDI notes can be sent when in Music mode is on
-*/
-
-#define MIDI_BASIC
-
-/* enable advanced MIDI features:
- - MIDI notes can be added to the keymap
- - Octave shift and transpose
- - Virtual sustain, portamento, and modulation wheel
- - etc.
-*/
-//#define MIDI_ADVANCED
-
-/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
-//#define MIDI_TONE_KEYCODE_OCTAVES 2
-
-// Most tactile encoders have detents every 4 stages
-#define ENCODER_RESOLUTION 4
diff --git a/keyboards/planck/keymaps/peterfalken/keymap.c b/keyboards/planck/keymaps/peterfalken/keymap.c
deleted file mode 100644
index 140149c472..0000000000
--- a/keyboards/planck/keymaps/peterfalken/keymap.c
+++ /dev/null
@@ -1,80 +0,0 @@
-// Copyright 2023 Peter.Falken (@PeterFalken)
-// SPDX-License-Identifier: GPL-2.0-or-later
-
-#include "muse.h"
-#include "peterfalken.h"
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-/* Qwerty
- * ,-----------------------------------------------------------------------------------.
- * | Esc | Q | W | E | R | T | Y | U | I | O | P | Bksp |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | Tab | A | S | D | F | G | H | J | K | L | ; | ' |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | Shift| Z | X | C | V | B | N | M | , | . | / |Enter |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | ▽ | Ctrl | Opt | Cmd | LWR | Space | RSE | Left | Down | Up |Right |
- * `-----------------------------------------------------------------------------------'
- */
-[_QWERTY] = LAYOUT_planck_grid(
- KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,
- KC_TAB, 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_ENT ,
- _______, KC_LCTL, KC_LOPT, KC_LCMD, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT
-),
-
-/* Lower
- * ,-----------------------------------------------------------------------------------.
- * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Del |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | Del | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | ▽ | F7 | F8 | F9 | F10 | F11 | F12 |ISO ~ |ISO | | Home | End | ▽ |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | ▽ | ▽ | ▽ | ▽ | ▽ | ▽ ▽ | ▽ | Next | Vol- | Vol+ | Play |
- * `-----------------------------------------------------------------------------------'
- */
-[_LOWER] = LAYOUT_planck_grid(
- KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL,
- KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE,
- _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, S(KC_NUHS), S(KC_NUBS), KC_HOME, KC_END, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY
-),
-
-/* Raise
- * ,-----------------------------------------------------------------------------------.
- * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | Del | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | ▽ | F7 | F8 | F9 | F10 | F11 | F12 |ISO # |ISO / |Pg Up |Pg Dn | ▽ |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | ▽ | ▽ | ▽ | ▽ | ▽ | ▽ ▽ | ▽ | Next | Vol- | Vol+ | Play |
- * `-----------------------------------------------------------------------------------'
- */
-[_RAISE] = LAYOUT_planck_grid(
- KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC,
- KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS,
- _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NUHS, KC_NUBS, KC_PGUP, KC_PGDN, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY
-),
-
-/* Adjust (Lower + Raise)
- * ,-----------------------------------------------------------------------------------.
- * | RSET | ▽ | M.AP | M.AL | LPAD | ▽ | ▽ | ▽ | ▽ | ▽ | ▽ | Del |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | ▽ | ▽ | ▽ | ▽ | ▽ | ▽ | ▽ | ▽ | ▽ | ▽ | ▽ | SLEP |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | CPWD | UN | CU | CO | PA | MV | ▽ | ▽ | ▽ | ▽ | ▽ | ▽ |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | ▽ | ▽ | ▽ | ▽ | ▽ | ▽ ▽ | ▽ | ▽ | ▽ | ▽ | ▽ |
- * `-----------------------------------------------------------------------------------'
- */
-[_ADJUST] = LAYOUT_planck_grid(
- QK_BOOT, _______, CK_M1, KC_MCTL, KC_LPAD, _______, _______, _______, _______, _______, _______, KC_DEL,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, CK_SLP,
- CK_CW, _______, CK_CU, CK_CO, CK_PA, CK_MV, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
-)
-
-};
diff --git a/keyboards/planck/keymaps/peterfalken/readme.md b/keyboards/planck/keymaps/peterfalken/readme.md
deleted file mode 100644
index f64d682a51..0000000000
--- a/keyboards/planck/keymaps/peterfalken/readme.md
+++ /dev/null
@@ -1,14 +0,0 @@
-Copyright 2023 LEG <ucaboys@gmail.com> @PeterFalken
-
-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/>.
diff --git a/keyboards/planck/keymaps/peterfalken/rules.mk b/keyboards/planck/keymaps/peterfalken/rules.mk
deleted file mode 100644
index a33c6c1ddb..0000000000
--- a/keyboards/planck/keymaps/peterfalken/rules.mk
+++ /dev/null
@@ -1,8 +0,0 @@
-# Setup keymap QMK features
-# TODO: Check for space optimizations
-AUDIO_ENABLE = yes # Enable Audio Output
-ENCODER_ENABLE = no # Disable encoder
-
-ifeq ($(strip $(AUDIO_ENABLE)), yes)
- SRC += muse.c
-endif
diff --git a/keyboards/planck/keymaps/premek/keymap.c b/keyboards/planck/keymaps/premek/keymap.c
index 76d3cabfbc..839a53a6fc 100644
--- a/keyboards/planck/keymaps/premek/keymap.c
+++ b/keyboards/planck/keymaps/premek/keymap.c
@@ -76,16 +76,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
};
#ifdef AUDIO_ENABLE
-
-float tone_startup[][2] = SONG(STARTUP_SOUND);
float tone_qwerty[][2] = SONG(QWERTY_SOUND);
float tone_dvorak[][2] = SONG(DVORAK_SOUND);
float tone_colemak[][2] = SONG(COLEMAK_SOUND);
float tone_plover[][2] = SONG(PLOVER_SOUND);
float tone_plover_gb[][2] = SONG(PLOVER_GOODBYE_SOUND);
-float music_scale[][2] = SONG(MUSIC_SCALE_SOUND);
-
-float tone_goodbye[][2] = SONG(GOODBYE_SOUND);
#endif
@@ -185,36 +180,3 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
}
return true;
}
-
-void matrix_init_user(void) {
- #ifdef AUDIO_ENABLE
- startup_user();
- #endif
-}
-
-#ifdef AUDIO_ENABLE
-
-void startup_user(void)
-{
- _delay_ms(20); // gets rid of tick
- PLAY_SONG(tone_startup);
-}
-
-void shutdown_user(void)
-{
- PLAY_SONG(tone_goodbye);
- _delay_ms(150);
- stop_all_notes();
-}
-
-void music_on_user(void)
-{
- music_scale_user();
-}
-
-void music_scale_user(void)
-{
- PLAY_SONG(music_scale);
-}
-
-#endif
diff --git a/keyboards/planck/keymaps/prog_qgmlwb/.gitignore b/keyboards/planck/keymaps/prog_qgmlwb/.gitignore
deleted file mode 100644
index a39c642249..0000000000
--- a/keyboards/planck/keymaps/prog_qgmlwb/.gitignore
+++ /dev/null
@@ -1,3 +0,0 @@
-build
-printout
-scripts
diff --git a/keyboards/planck/keymaps/prog_qgmlwb/config.h b/keyboards/planck/keymaps/prog_qgmlwb/config.h
deleted file mode 100644
index b52b41746a..0000000000
--- a/keyboards/planck/keymaps/prog_qgmlwb/config.h
+++ /dev/null
@@ -1,12 +0,0 @@
-// Copyright 2022 David Kristoffersen (@davidkristoffersen)
-// SPDX-License-Identifier: GPL-3.0-or-later
-
-#pragma once
-
-#define ENABLE_COMPILE_KEYCODE
-
-// Userspace defines
-// #define SPLIT_SPACE
-// #define NO_SPECIAL_SHIFT
-#define LAYER_EN QGMLWB_EN
-#define LAYER_NO QGMLWB_NO
diff --git a/keyboards/planck/keymaps/prog_qgmlwb/keymap.c b/keyboards/planck/keymaps/prog_qgmlwb/keymap.c
deleted file mode 100644
index 72e67ac3e7..0000000000
--- a/keyboards/planck/keymaps/prog_qgmlwb/keymap.c
+++ /dev/null
@@ -1,4 +0,0 @@
-// Copyright 2022 David Kristoffersen (@davidkristoffersen)
-// SPDX-License-Identifier: GPL-3.0-or-later
-
-#include "src/layouts.h"
diff --git a/keyboards/planck/keymaps/prog_qgmlwb/readme.md b/keyboards/planck/keymaps/prog_qgmlwb/readme.md
deleted file mode 100644
index e9117507cd..0000000000
--- a/keyboards/planck/keymaps/prog_qgmlwb/readme.md
+++ /dev/null
@@ -1,82 +0,0 @@
-# PROG-QGMLWB
-
-The prog-qgmlwb layout is a QMK firmware layout for the Planck keyboard.
-
-For letter placement, the layout uses the optimized QGMLWB layout from the [Carpalx project](http://mkweb.bcgsc.ca/carpalx).
-
-> The carpalx project introduces a quantitative model for typing effort and applies it to (a) evaluate QWERTY and popular alternatives, such as Dvorak and Colemak and (b) find the keyboard layouts that minimize typing effort for a given set of input documents.
-
-Carpalx named "QGMLWB" as the fully optimized layout according to the English alphabet, with an effort reduction of approximately 44.4%.
-
-The programming part of the name is inspired by the modified version of Dvorak, [Programmer Dvorak](http://programmer-dvorak.appspot.com), where the symbols have been adjusted logically for developers.
-
-The final layout swaps some Dvorak symbols and combines them with the QGMLWB letters, giving it the name **prog-qgmlwb**.
-
-The layout includes an English and Norwegian layer, whereas the Norwegian one only adds the three letters; æ, ø, and å.
-
-## Typing layers
-
-![Typing layers](https://i.imgur.com/QaHnqW8.png)
-
-## Adjust layer
-
-![Adjust layer](https://i.imgur.com/63I69P0.png)
-
-## Usage
-
-### Clone the QMK Firmware repo
-
-```bash
-git clone --recurse-submodules https://github.com/qmk/qmk_firmware.git <path/name>
-```
-
-### Move into this keymap
-
-```bash
-cd <path/name>/keyboards/planck/keymaps/prog_qgmlwb
-```
-
-### Initialize QMK the first time
-
-Set default keyboard:
-
-```bash
-qmk config user.keyboard=planck/<rev>
-```
-
-Set default keymap:
-
-```bash
-qmk config user.keymap=prog_qgmlwb
-```
-
-Initialize libraries:
-
-```bash
-qmk setup
-```
-
-### Compile and flash the keyboard
-
-```bash
-qmk compile
-qmk flash
-```
-
-## QMK documentation
-
-Found in the QMK docs: <https://docs.qmk.fm>
-
-## Printing layout
-
-This keymap uses macros such that [qmk configurator](https://config.qmk.fm) cannot match its behavior. The images was designed using [Figma](https://figma.com).
-
-## Future additions
-
-Features disabled due to the lack of storage space in the Planck PCB version 5:
-
-- Audio
-- Plover mode
-- Use alt codes to fix missing characters in the english layout
-- Improve documentation of code and readme files
-- Reimplement right version of modifier keys through raise+space
diff --git a/keyboards/planck/keymaps/prog_qgmlwb/rules.mk b/keyboards/planck/keymaps/prog_qgmlwb/rules.mk
deleted file mode 100644
index 7431d9e0b7..0000000000
--- a/keyboards/planck/keymaps/prog_qgmlwb/rules.mk
+++ /dev/null
@@ -1,6 +0,0 @@
-# Compiler source files
-SRC += src/layouts.c
-
-USER_NAME := davidkristoffersen
-
-SIZE_OPTIMIZE = yes
diff --git a/keyboards/planck/keymaps/prog_qgmlwb/src/enums.h b/keyboards/planck/keymaps/prog_qgmlwb/src/enums.h
deleted file mode 100644
index 0c03b5dd04..0000000000
--- a/keyboards/planck/keymaps/prog_qgmlwb/src/enums.h
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright 2022 David Kristoffersen (@davidkristoffersen)
-// SPDX-License-Identifier: GPL-3.0-or-later
-
-#pragma once
-
-// Layouts enum
-enum keyboard_layouts {
- QGMLWB_NO,
- QGMLWB_EN,
-
- QWERTY,
- COLEMAK,
- DVORAK,
-
- NORMAL_LOWER,
- NORMAL_RAISE,
-
- QGMLWB_LOWER,
- QGMLWB_RAISE,
-
- ADJUST,
- NUMPAD,
-};
diff --git a/keyboards/planck/keymaps/prog_qgmlwb/src/layouts.c b/keyboards/planck/keymaps/prog_qgmlwb/src/layouts.c
deleted file mode 100644
index 54ff411d86..0000000000
--- a/keyboards/planck/keymaps/prog_qgmlwb/src/layouts.c
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright 2022 David Kristoffersen (@davidkristoffersen)
-// SPDX-License-Identifier: GPL-3.0-or-later
-
-#include "layouts.h"
-#ifdef LAYER_NO
-# include "sendstring_norwegian.h"
-#endif
-
-KEYMAP keymaps [][MATRIX_ROWS][MATRIX_COLS] = {
- [QGMLWB_NO] = qgmlwb_no_map,
- [QGMLWB_EN] = qgmlwb_en_map,
-
- [QWERTY] = qwerty_map,
- [COLEMAK] = colemak_map,
- [DVORAK] = dvorak_map,
-
- [NORMAL_LOWER] = normal_lower_map,
- [NORMAL_RAISE] = normal_raise_map,
-
- [QGMLWB_LOWER] = qgmlwb_lower_map,
- [QGMLWB_RAISE] = qgmlwb_raise_map,
-
- [ADJUST] = adjust_map,
- [NUMPAD] = numpad_map,
-};
diff --git a/keyboards/planck/keymaps/prog_qgmlwb/src/layouts.h b/keyboards/planck/keymaps/prog_qgmlwb/src/layouts.h
deleted file mode 100644
index 19cbefb9ab..0000000000
--- a/keyboards/planck/keymaps/prog_qgmlwb/src/layouts.h
+++ /dev/null
@@ -1,27 +0,0 @@
-// Copyright 2022 David Kristoffersen (@davidkristoffersen)
-// SPDX-License-Identifier: GPL-3.0-or-later
-
-#pragma once
-
-#include QMK_KEYBOARD_H
-
-#include "davidkristoffersen.h"
-#include "enums.h"
-
-#include "normal.h"
-#include "qgmlwb.h"
-#include "special.h"
-
-#define KEYMAP const uint16_t PROGMEM
-
-// Layouts keycodes
-#define lower MO(NORMAL_LOWER)
-#define raise MO(NORMAL_RAISE)
-
-#define QLower MO(QGMLWB_LOWER)
-#define QRaise MO(QGMLWB_RAISE)
-
-#define adjust MO(ADJUST)
-#define numpad MO(NUMPAD)
-
-extern KEYMAP keymaps [][MATRIX_ROWS][MATRIX_COLS];
diff --git a/keyboards/planck/keymaps/prog_qgmlwb/src/normal.h b/keyboards/planck/keymaps/prog_qgmlwb/src/normal.h
deleted file mode 100644
index 98909c4395..0000000000
--- a/keyboards/planck/keymaps/prog_qgmlwb/src/normal.h
+++ /dev/null
@@ -1,96 +0,0 @@
-// Copyright 2022 David Kristoffersen (@davidkristoffersen)
-// SPDX-License-Identifier: GPL-3.0-or-later
-
-#pragma once
-
-#include "layouts.h"
-
-/* Qwerty
- * ,-----------------------------------------------------------------------------------.
- * | Tab | Q | W | E | R | T | Y | U | I | O | P | Bksp |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | Esc | A | S | D | F | G | H | J | K | L | ;: |Return|
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | Shift| Z | X | C | V | B | N | M | ,< | .> | /? | Shift|
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | Ctrl | Alt |NumPad| GUI | Lower| Space| Space| Raise| Left | Down | Up | Right|
- * `-----------------------------------------------------------------------------------'
-*/
-#define qwerty_map LAYOUT_ortho_4x12(
- 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_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, 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_LCTL, KC_LALT, numpad, KC_LGUI, lower, KC_SPC, KC_SPC, raise, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT
-)
-
-/* Colemak
- * ,-----------------------------------------------------------------------------------.
- * | Tab | Q | W | F | P | G | J | L | U | Y | ; | Bksp |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | Esc | A | R | S | T | D | H | N | E | I | O |Return|
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | Shift| Z | X | C | V | B | K | M | , | . | / | " |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | Ctrl | Alt |NumPad| GUI | Lower| Space| Space| Raise| Left | Down | Up | Right|
- * `-----------------------------------------------------------------------------------'
-*/
-#define colemak_map LAYOUT_ortho_4x12(
- KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC,
- KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_ENT,
- KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_QUOT,
- KC_LCTL, KC_LALT, numpad, KC_LGUI, lower, KC_SPC, KC_SPC, raise, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT
-)
-
-/* Dvorak
- * ,-----------------------------------------------------------------------------------.
- * | Tab | " | , | . | P | Y | F | G | C | R | L | Bksp |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | Esc | A | O | E | U | I | D | H | T | N | S |Return|
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | Shift| ; | Q | J | K | X | B | M | W | V | Z | \ |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | Ctrl | Alt |NumPad| GUI | Lower| Space| Space| Raise| Left | Down | Up | Right|
- * `-----------------------------------------------------------------------------------'
-*/
-#define dvorak_map LAYOUT_ortho_4x12(
- KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSPC,
- KC_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_ENT,
- KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_SLSH,
- KC_LCTL, KC_LALT, numpad, KC_LGUI, lower, KC_SPC, KC_SPC, raise, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT
-)
-
-/* Lower - Normal
- * ,-----------------------------------------------------------------------------------.
- * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | Del | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | | F7 | F8 | F9 | F10 | F11 | F12 | End | Home | XXXX | XXXX | |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | | | | | | | | | Next | Vol- | Vol+ | Play |
- * `-----------------------------------------------------------------------------------'
-*/
-#define normal_lower_map LAYOUT_ortho_4x12(
- KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC,
- KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE,
- _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_END, KC_HOME, XXXXXXX, XXXXXXX, _______,
- _______, _______, _______, _______, _______, _______, _______, adjust, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY
-)
-
-/* Raise - Normal
- * ,-----------------------------------------------------------------------------------.
- * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | Del | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | | F7 | F8 | F9 | F10 | F11 | F12 | # | \ | PgDn | PgUp | |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | | | | | | | | | Next | Vol- | Vol+ | Play |
- * `-----------------------------------------------------------------------------------'
-*/
-#define normal_raise_map LAYOUT_ortho_4x12(
- KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC,
- KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS,
- _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_HASH, KC_BSLS, KC_PGDN, KC_PGUP, _______,
- _______, _______, _______, _______, adjust, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY
-)
diff --git a/keyboards/planck/keymaps/prog_qgmlwb/src/qgmlwb.h b/keyboards/planck/keymaps/prog_qgmlwb/src/qgmlwb.h
deleted file mode 100644
index 290fee765d..0000000000
--- a/keyboards/planck/keymaps/prog_qgmlwb/src/qgmlwb.h
+++ /dev/null
@@ -1,63 +0,0 @@
-// Copyright 2022 David Kristoffersen (@davidkristoffersen)
-// SPDX-License-Identifier: GPL-3.0-or-later
-
-#pragma once
-
-#include "layouts.h"
-
-/* QGMLWB
- * ,-----------------------------------------------------------------------------------.
- * | Tab | Q | G | M | L | W | B | Y | U | V | '" | Bksp |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | Esc | D | S | T | N | R | I | A | E | O | H |Return|
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | Shift| Z | X | C | F | J | K | P | ,; | .: | -_ | \| |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | Ctrl | Alt |NumPad| GUI | Lower|LSpace|RSpace| Raise| Left | Down | Up | Right|
- * `-----------------------------------------------------------------------------------'
-*/
-// English Layout
-#define qgmlwb_en_map LAYOUT_ortho_4x12(\
- KC_TAB, KC_Q, KC_G, KC_M, KC_L, KC_W, KC_B, KC_Y, KC_U, KC_V, KC_QUOT, KC_BSPC,\
- KC_ESC, KC_D, KC_S, KC_T, KC_N, KC_R, KC_I, KC_A, KC_E, KC_O, KC_H, KC_ENT,\
- KC_LSFT, KC_Z, KC_X, KC_C, KC_F, KC_J, KC_K, KC_P, KC_COMM, KC_DOT, KC_MINS, KC_BSLS,\
- KC_LCTL, KC_LALT, numpad, KC_LGUI, QLower, SC_LSPC, SC_RSPC, QRaise, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT\
-)
-// Norwegian Layout
-#define qgmlwb_no_map qgmlwb_en_map
-
-/* Lower - QGMLWB
- * ,-----------------------------------------------------------------------------------.
- * | ! | % | [ | { | ( | < | > | ) | } | ] | & | |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | Del | Mute | XXXX | Refr | XXXX | XXXX | XXXX | = | + | * | / | ~ |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | | Sleep|ScrLck| Caps |NumLck|PrtScr| Ins | End | Home | Æ | Ø | Å |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | | | | | | | |Adjust| Bri- | Vol- | Vol+ | Bri+ |
- * `-----------------------------------------------------------------------------------'
-*/
-#define qgmlwb_lower_map LAYOUT_ortho_4x12(\
- KC_EXLM, KC_PERC, KC_LBRC, KC_LCBR, KC_LPRN, KC_LT, KC_GT, KC_RPRN, KC_RCBR, KC_RBRC, KC_AMPR, _______,\
- KC_DEL, KC_MUTE, XXXXXXX, KC_WREF, XXXXXXX, XXXXXXX, XXXXXXX, KC_EQL, KC_PLUS, KC_ASTR, KC_SLSH, KC_TILD,\
- _______, KC_SLEP, KC_SCRL, KC_CAPS, KC_NUM, KC_PSCR, KC_INS, KC_END, KC_HOME, KC_AE, KC_OE, KC_AA,\
- _______, _______, _______, _______, _______, _______, _______, adjust, KC_BRID, KC_VOLD, KC_VOLU, KC_BRIU\
-)
-
-/* Raise - QGMLWB
- * ,-----------------------------------------------------------------------------------.
- * | ? | 9 | 7 | 5 | 3 | 1 | 0 | 2 | 4 | 6 | 8 | |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | Del+ | F1 | F2 | F3 | F4 | F5 | F6 | # | @ | ^ | $ | ` |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * |RShift| F7 | F8 | F9 | F10 | F11 | F12 | PgDn | PgUp | XXXX | XXXX | XXXX |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | RCtrl| RAlt | | |Adjust| | | | Prev | Stop | Play | Next |
- * `-----------------------------------------------------------------------------------'
-*/
-#define qgmlwb_raise_map LAYOUT_ortho_4x12(\
- KC_QUES, KC_9, KC_7, KC_5, KC_3, KC_1, KC_0, KC_2, KC_4, KC_6, KC_8, _______,\
- S(KC_DEL), KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_HASH, KC_AT, KC_CIRC, KC_DLR, KC_GRV,\
- _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PGDN, KC_PGUP, XXXXXXX, XXXXXXX, XXXXXXX,\
- _______, _______, _______, _______, adjust, _______, _______, _______, KC_MPRV, KC_MSTP, KC_MPLY, KC_MNXT\
-)
diff --git a/keyboards/planck/keymaps/prog_qgmlwb/src/special.h b/keyboards/planck/keymaps/prog_qgmlwb/src/special.h
deleted file mode 100644
index bff1e4c5ab..0000000000
--- a/keyboards/planck/keymaps/prog_qgmlwb/src/special.h
+++ /dev/null
@@ -1,43 +0,0 @@
-// Copyright 2022 David Kristoffersen (@davidkristoffersen)
-// SPDX-License-Identifier: GPL-3.0-or-later
-
-#pragma once
-
-#include "layouts.h"
-
-/* Adjust
- * v------------------------RGB CONTROL--------------------v
- * ,-----------------------------------------------------------------------------------.
- * | | Reset| Debug| RGB |RGBMod| Hue- | Hue+ | Sat- | Sat+ | Bri- | Bri+ | Del |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | | XXXX |MusMod|AudOff| AudOn|AgNorm|AgSwap|Dvorak|Colmak|Qwerty|QgmlEN|QgmlNO|
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | |Voice-|Voice+|MusOff| MusOn|MIDIOf|MIDIOn| | | T0 | T1 | T2 |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | | | | | | | | XXXX | XXXX | XXXX | XXXX |
- * `-----------------------------------------------------------------------------------'
-*/
-#define adjust_map LAYOUT_ortho_4x12(\
- QK_RBT, QK_BOOT, DB_TOGG, RGB_TOG, RGB_MOD, RGB_HUD, RGB_HUI, RGB_SAD, RGB_SAI, RGB_VAD, RGB_VAI, KC_DEL,\
- QK_MAKE, XXXXXXX, MU_NEXT, AU_OFF, AU_ON, AG_NORM, AG_SWAP, DF(DVORAK), DF(COLEMAK), DF(QWERTY), DF(QGMLWB_EN), DF(QGMLWB_NO),\
- _______, AU_NEXT, AU_PREV, MU_OFF, MU_ON, MI_OFF, MI_ON, _______, _______, KC_T0, KC_T1, KC_T2,\
- _______, _______, _______, _______, _______, _______, _______, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX\
-)
-
-/* Numpad
- * ,-----------------------------------------------------------------------------------.
- * | | XXXX | XXXX | XXXX | XXXX | XXXX | XXXX | 7 | 8 | 9 | / | |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | | XXXX | XXXX | XXXX | XXXX | XXXX | XXXX | 4 | 5 | 6 | * | |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | | XXXX | XXXX | XXXX | XXXX | XXXX | XXXX | 1 | 2 | 3 | - | XXXX |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | | | | | XXXX | | | 0 | , | . | + | XXXX |
- * `-----------------------------------------------------------------------------------'
-*/
-#define numpad_map LAYOUT_ortho_4x12(\
- _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_7, KC_8, KC_9, KC_KP_SLASH, _______,\
- _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_4, KC_5, KC_6, KC_KP_ASTERISK, _______,\
- _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_1, KC_2, KC_3, KC_KP_MINUS, XXXXXXX,\
- _______, _______, _______, _______, XXXXXXX, _______, _______, KC_0, KC_COMM, KC_DOT, KC_KP_PLUS, XXXXXXX\
-)
diff --git a/keyboards/planck/keymaps/roguepullrequest/keymap.c b/keyboards/planck/keymaps/roguepullrequest/keymap.c
index 61221601e6..31cce52a5f 100644
--- a/keyboards/planck/keymaps/roguepullrequest/keymap.c
+++ b/keyboards/planck/keymaps/roguepullrequest/keymap.c
@@ -28,7 +28,7 @@ enum {
RSHIFT,
LSHIFT,
TD_S,
- SLASH
+ SLASH
};
int cur_dance (tap_dance_state_t *state);
@@ -116,10 +116,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
TD(LSHIFT), KC_QUOT, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, TD(RSHIFT),
TD(X_AT_FUN), KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, ALT_TAB, KC_SPACE, KC_ENTER, MT(MOD_LCTL | MOD_LSFT, KC_LGUI), KC_PGUP, KC_PGDN, LT(_LOWER, KC_PLUS)
),
-
+
[_UPPER] = LAYOUT_planck_grid(
KC_GRAVE, KC_AMPR, KC_PERC, KC_NO, KC_NO, KC_EQL, KC_ASTR, KC_NO, KC_NO, KC_EXLM, KC_HASH, KC_TRNS,
- KC_PLUS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_BSLS,
+ KC_PLUS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_BSLS,
KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_TRNS
),
@@ -156,7 +156,7 @@ int cur_dance (tap_dance_state_t *state) {
if (state->interrupted || !state->pressed)return TRIPLE_TAP;
else return TRIPLE_HOLD;
}
- else return 8; // magic number that i dont believe works.
+ else return 8; // magic number that i dont believe works.
}
// instance of tap for the 'X' dance.
@@ -251,4 +251,7 @@ tap_dance_action_t tap_dance_actions[] = {
};
-void shutdown_user(void) { clear_keyboard(); }
+bool shutdown_user(bool jump_to_bootloader) {
+ clear_keyboard();
+ return true;
+}
diff --git a/keyboards/planck/keymaps/sascha/rules.mk b/keyboards/planck/keymaps/sascha/rules.mk
index 78ac4ca825..41157c39d7 100644
--- a/keyboards/planck/keymaps/sascha/rules.mk
+++ b/keyboards/planck/keymaps/sascha/rules.mk
@@ -1,5 +1,4 @@
AUTO_SHIFT_ENABLE = no
-AUTO_SHIFT_MODIFIERS = no
UNICODE_ENABLE = yes
LTO_ENABLE = yes
diff --git a/keyboards/planck/keymaps/sdothum/common/init.h b/keyboards/planck/keymaps/sdothum/common/init.h
index 6d0b4392fb..e6bb7101e9 100644
--- a/keyboards/planck/keymaps/sdothum/common/init.h
+++ b/keyboards/planck/keymaps/sdothum/common/init.h
@@ -6,9 +6,6 @@ void matrix_init_user(void)
#ifdef STENO_ENABLE
steno_set_mode(STENO_MODE_BOLT); // or STENO_MODE_GEMINI
#endif
-#ifdef AUDIO_ENABLE
- startup_user();
-#endif
}
#ifdef AUDIO_ENABLE
@@ -31,27 +28,4 @@ bool led_update_user(led_t led_state)
return false;
}
#endif
-
-void startup_user(void)
-{
- _delay_ms(20); // gets rid of tick
- PLAY_SONG(song_startup);
-}
-
-void shutdown_user(void)
-{
- PLAY_SONG(song_goodbye);
- _delay_ms(150);
- stop_all_notes();
-}
-
-void music_on_user(void)
-{
- music_scale_user();
-}
-
-void music_scale_user(void)
-{
- PLAY_SONG(music_scale);
-}
#endif
diff --git a/keyboards/planck/keymaps/sdothum/keymap.c b/keyboards/planck/keymaps/sdothum/keymap.c
index 597466ba47..03c605020c 100644
--- a/keyboards/planck/keymaps/sdothum/keymap.c
+++ b/keyboards/planck/keymaps/sdothum/keymap.c
@@ -67,9 +67,6 @@
#include QMK_KEYBOARD_H
-#ifdef STENO_ENABLE
-#include "keymap_steno.h"
-#endif
extern keymap_config_t keymap_config;
diff --git a/keyboards/planck/keymaps/sgoodwin/keymap.c b/keyboards/planck/keymaps/sgoodwin/keymap.c
index e61cd4de68..fbfe793cb8 100644
--- a/keyboards/planck/keymaps/sgoodwin/keymap.c
+++ b/keyboards/planck/keymaps/sgoodwin/keymap.c
@@ -120,13 +120,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
};
#ifdef AUDIO_ENABLE
-
-float tone_startup[][2] = SONG(STARTUP_SOUND);
float tone_qwerty[][2] = SONG(QWERTY_SOUND);
float tone_colemak[][2] = SONG(COLEMAK_SOUND);
-float music_scale[][2] = SONG(MUSIC_SCALE_SOUND);
-
-float tone_goodbye[][2] = SONG(GOODBYE_SOUND);
#endif
@@ -189,36 +184,3 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
}
return true;
}
-
-void matrix_init_user(void) {
- #ifdef AUDIO_ENABLE
- startup_user();
- #endif
-}
-
-#ifdef AUDIO_ENABLE
-
-void startup_user(void)
-{
- _delay_ms(20); // gets rid of tick
- PLAY_SONG(tone_startup);
-}
-
-void shutdown_user(void)
-{
- PLAY_SONG(tone_goodbye);
- _delay_ms(150);
- stop_all_notes();
-}
-
-void music_on_user(void)
-{
- music_scale_user();
-}
-
-void music_scale_user(void)
-{
- PLAY_SONG(music_scale);
-}
-
-#endif
diff --git a/keyboards/planck/keymaps/sigul/config.h b/keyboards/planck/keymaps/sigul/config.h
deleted file mode 100644
index 9020d2b9f8..0000000000
--- a/keyboards/planck/keymaps/sigul/config.h
+++ /dev/null
@@ -1,36 +0,0 @@
-#pragma once
-
-#ifdef AUDIO_ENABLE
- #define STARTUP_SONG SONG(PLANCK_SOUND)
- // #define STARTUP_SONG SONG(NO_SOUND)
-
- #define DEFAULT_LAYER_SONGS { SONG(QWERTY_SOUND), \
- SONG(COLEMAK_SOUND), \
- SONG(DVORAK_SOUND) \
- }
-#endif
-
-/*
- * MIDI options
- */
-
-/* enable basic MIDI features:
- - MIDI notes can be sent when in Music mode is on
-*/
-
-#define MIDI_BASIC
-
-/* enable advanced MIDI features:
- - MIDI notes can be added to the keymap
- - Octave shift and transpose
- - Virtual sustain, portamento, and modulation wheel
- - etc.
-*/
-//#define MIDI_ADVANCED
-
-/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
-//#define MIDI_TONE_KEYCODE_OCTAVES 2
-
-// Most tactile encoders have detents every 4 stages
-#define ENCODER_RESOLUTION 4
-
diff --git a/keyboards/planck/keymaps/sigul/keymap.c b/keyboards/planck/keymaps/sigul/keymap.c
deleted file mode 100644
index 2f5044cda0..0000000000
--- a/keyboards/planck/keymaps/sigul/keymap.c
+++ /dev/null
@@ -1,222 +0,0 @@
-/*
- *
- * An Italian ANSI layout
- * Version 0.3
- *
- * Created by Silvio Gulizia on the basis of the default Planck keymap.
- * Thanks to SomeBuddyOnReddit, gepeirl, fauxpark, BXO511, drashna, and ridingqwerty.
- *
- * The layout is based on the original Planck layout when used with language set to Italian on your Mac.
- * Accented vowels have been moverd on RAISE ("�", "�", and "�") and LOWER ("�", "�", and "�")
- *
- */
-
-#include QMK_KEYBOARD_H
-#include "muse.h"
-#include "keymap_italian_mac_ansi.h"
-#include "sigul.h"
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
-/* Qwerty
- * ,-----------------------------------------------------------------------------------.
- * |Tab/FN| Q | W | E | R | T | Y | U | I | O | P | Bksp |
- * |------+------+------+------+------+-------------+------+------+------+------+------|
- * |Esc/FN| A | S | D | F | G | H | J | K | L | ;: | '" |
- * |------+------+------+------+------+------|------+------+------+------+------+------|
- * | Shift| Z | X | C | V | MS/B | N | M | ,< | .> | /! |S/Ent |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | FN | Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right |
- * `-----------------------------------------------------------------------------------'
- */
-[_QWERTY] = LAYOUT_ortho_4x12(
- TABFN, IT_Q, IT_W, IT_E, IT_R, IT_T, IT_Y, IT_U, IT_I, IT_O, IT_P, KC_BSPC,
- ESCFN, IT_A, IT_S, IT_D, IT_F, IT_G, IT_H, IT_J, IT_K, IT_L, IT_SCCL, IT_APDQ,
- KC_LSFT, IT_Z, IT_X, IT_C, IT_V, MS_B, IT_N, IT_M, IT_CMLS, IT_DTMR, IT_SLQS, MT(MOD_RSFT, KC_ENT),
- FN, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT
-),
-
-/* Lower
- * ,-----------------------------------------------------------------------------------.
- * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Del |
- * |------+------+------+------+------+-------------+------+------+------+------+------|
- * |Enter | F1 | F2 | F3 | F4 | F5 | | _ | = | � | � | � |
- * |------+------+------+------+------+------|------+------+------+------+------+------|
- * | | F6 | F7 | F8 | F9 | |NUMPAD| � | � | { | } | | |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | | | | | | | | | Next | Vol- | Vol+ | Play |
- * `-----------------------------------------------------------------------------------'
- */
-
-[_LOWER] = LAYOUT_ortho_4x12(
- IT_TILD, IT_EXLM, IT_AT, IT_HASH, IT_DLR, IT_PERC, IT_CIRC, IT_AMPR, IT_ASTR, IT_LPRN, IT_RPRN, KC_DEL,
- KC_ENT, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, _______, S(IT_MINS), IT_EQL, S(IT_EGRV), IT_OGRV, IT_AGRV,
- _______, KC_F6, KC_F7, KC_F8, KC_F9, _______, NUMPAD, S(IT_UGRV), IT_PLMN, IT_LCBR, IT_RCBR, IT_PIPE,
- _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY
-),
-
-/* Raise
- * ,-----------------------------------------------------------------------------------.
- * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | |
- * |------+------+------+------+------+-------------+------+------+------+------+------|
- * | | | SGCOM| DESK | | | | - | + | � | � | � |
- * |------+------+------+------+------+------|------+------+------+------+------+------|
- * | Caps | | PHONE| SVIV |VIVERE| |NUMPAD| | | [ | ] | \ |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | | | | | | | | | Home | PgDn | PgUp | End |
- * `-----------------------------------------------------------------------------------'
- */
-[_RAISE] = LAYOUT_ortho_4x12(
- IT_GRV, IT_1, IT_2, IT_3, IT_4, IT_5, IT_6, IT_7, IT_8, IT_9, IT_0, _______,
- _______, _______, SECRET0, SECRET1, _______, _______, _______, IT_MINS, IT_PLUS, IT_EGRV, IT_IGRV, IT_UGRV,
- KC_CAPS, _______, SECRET2, SECRET3, SECRET4, _______, NUMPAD, SECRET5, _______, IT_LBRC, IT_RBRC, IT_BSLS,
- _______, _______, _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_PGUP, KC_END
-),
-
-/* Numpad
- * ,-----------------------------------------------------------------------------------.
- * | | | | | | | | 7 | 8 | 9 | - | Bksp |
- * |------+------+------+------+------+-------------+------+------+------+------+------|
- * | | | | | | | | 4 | 5 | 6 | + | |
- * |------+------+------+------+------+------|------+------+------+------+------+------|
- * | | | | | | |NUMPAD| 1 | 2 | 3 | = | Ent |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | | | | | | | | | 0 | / | * | |
- * `-----------------------------------------------------------------------------------'
- */
-[_NUMPAD] = LAYOUT_ortho_4x12(
- _______, _______, _______, _______, _______, _______, _______, IT_7, IT_8, IT_9, IT_MINS, KC_BSPC,
- _______, _______, _______, _______, _______, _______, _______, IT_4, IT_5, IT_6, IT_PLUS, _______,
- _______, _______, _______, _______, _______, _______, NUMPAD, IT_1, IT_2, IT_3, IT_EQL, KC_ENT,
- _______, _______, _______, _______, _______, _______, _______, _______, IT_0, IT_SLSH, IT_ASTR, _______
-),
-
-/* Adjust (Lower + Raise)
- * ,-----------------------------------------------------------------------------------.
- * | |Querty| |ResetE|Reset | | | | | | | |
- * |------+------+------+------+------+-------------+------+------+------+------+------|
- * | | | |Debug | | | | | | | | |
- * |------+------+------+------+------+------|------+------+------+------+------+------|
- * | | | | | | | |Music |MusON |MusOff| | |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | | | | | | | |Voice-|Aud On|Audoff|Voice+|
- * `-----------------------------------------------------------------------------------'
- */
-[_ADJUST] = LAYOUT_ortho_4x12(
- _______, DF(QWERTY), _______, EE_CLR, QK_BOOT, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, DB_TOGG, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, MU_NEXT, MU_ON, MU_OFF, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, AU_PREV, AU_ON, AU_OFF, AU_NEXT
-),
-
-
-/* Function
- * ,-----------------------------------------------------------------------------------.
- * | | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | Del |
- * |------+------+------+------+------+-------------+------+------+------+------+------|
- * | | F1 | F2 | F3 | F4 | F5 | Left | Down | Up | Right| | |
- * |------+------+------+------+------+------|------+------+------+------+------+------|
- * | | F6 | F7 | F8 | F9 | F10 | F1 | F2 | F3 | F4 | F5 | |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | | | | | | | | | | | | |
- * `-----------------------------------------------------------------------------------'
- */
-
-[_FN] = LAYOUT_ortho_4x12(
- _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_DEL,
- _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, _______, _______,
- _______, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
-),
-
-/* MOUSE
- * ,-----------------------------------------------------------------------------------.
- * | | | | | | | | | | | | |
- * |------+------+------+------+------+-------------+------+------+------+------+------|
- * | | | | | | | | | | | | |
- * |------+------+------+------+------+------|------+------+------+------+------+------|
- * | | | | | | | | | But1 |Scr Up|Scr Do| But2 |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | | | | | | | | | Left | Down | Up |Right |
- * `-----------------------------------------------------------------------------------'
- */
-
-[_MOUSE] = LAYOUT_ortho_4x12(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, KC_MS_BTN1, KC_MS_WH_DOWN, KC_MS_WH_UP, KC_MS_BTN2,
- _______, _______, _______, _______, _______, _______, _______, _______, KC_MS_LEFT, KC_MS_DOWN, KC_MS_UP, KC_MS_RIGHT
-)
-
-};
-
-#ifdef AUDIO_ENABLE
- float plover_song[][2] = SONG(PLOVER_SOUND);
- float plover_gb_song[][2] = SONG(PLOVER_GOODBYE_SOUND);
-#endif
-
-
-bool muse_mode = false;
-uint8_t last_muse_note = 0;
-uint16_t muse_counter = 0;
-uint8_t muse_offset = 70;
-uint16_t muse_tempo = 50;
-
-bool encoder_update_user(uint8_t index, bool clockwise) {
- if (muse_mode) {
- if (IS_LAYER_ON(_RAISE)) {
- if (clockwise) {
- muse_offset++;
- } else {
- muse_offset--;
- }
- } else {
- if (clockwise) {
- muse_tempo+=1;
- } else {
- muse_tempo-=1;
- }
- }
- } else {
- if (clockwise) {
- #ifdef MOUSEKEY_ENABLE
- tap_code(KC_MS_WH_DOWN);
- #else
- tap_code(KC_PGDN);
- #endif
- } else {
- #ifdef MOUSEKEY_ENABLE
- tap_code(KC_MS_WH_UP);
- #else
- tap_code(KC_PGUP);
- #endif
- }
- }
- return true;
-}
-
-void matrix_scan_user(void) {
- #ifdef AUDIO_ENABLE
- if (muse_mode) {
- if (muse_counter == 0) {
- uint8_t muse_note = muse_offset + SCALE[muse_clock_pulse()];
- if (muse_note != last_muse_note) {
- stop_note(compute_freq_for_midi_note(last_muse_note));
- play_note(compute_freq_for_midi_note(muse_note), 0xF);
- last_muse_note = muse_note;
- }
- }
- muse_counter = (muse_counter + 1) % muse_tempo;
- }
- #endif
-}
-
-bool music_mask_user(uint16_t keycode) {
- switch (keycode) {
- case RAISE:
- case LOWER:
- return false;
- default:
- return true;
- }
-}
diff --git a/keyboards/planck/keymaps/sigul/readme.md b/keyboards/planck/keymaps/sigul/readme.md
deleted file mode 100644
index 11000967ed..0000000000
--- a/keyboards/planck/keymaps/sigul/readme.md
+++ /dev/null
@@ -1,32 +0,0 @@
-# An ANSI Italian Planck Layout
-by Silvio Gulizia
-
-The idea behind this layout is to have an American Keyboard with accented vowels (for Italian) to avoid switching language on the Mac every time you switch form English to Italian and being able to get the advantages that comes with the American (ANSI) keyboard when you write in English, code, or just want to use keybaord shorcuts (most of which are based on the American Keybaord).
-
-Some things I did, useful to you fi you want to have a look to the scheme or even replicate it for your language.
-
-- [x] add layer _FN with F keys and VI navigation
-- [x] add layer _MOUSE with mouse keys
-- [x] add "MOUSEKEY_ENABLE = yes" in rules.mk to enable mouse keys (moved to users/sigul/rules.mk)
-- [x] add definition to control the mouse movementes in config.h (moved to users/sigul/config.h)
-- [x] add layer _NUMPAD to have a numpad
-- [x] add keycode NUMPAD to toggle _NUMPAD (moved in users/sigul/sigul.h)
-- [x] modify layer ADJUST to simplify remembering commands (Reset on R, Eeprom reset on E and so)
-- [x] add custom keycodes ESCFN and TABFN on QUERTYi (default) layer to add the ability to use arrows with hjkl by activating layer FN when held with the definition LT(_FN,KC_ESC) and LT(_FN, KC_TAB)
-- [x] added "#define USB_MAX_POWER_CONSUMPTION 100" in config.h to use the keyboard with the iPad (moved to users/sigul/config.h)
-- [x] add "#define TAPPING_TOGGLE 3" in config.h to enable tapping toggle with 3 taps on LOWER and RAISE (moved to users/sigul/config.h)
-- [x] add tapping toggle to LOWER, RAISE and MOUSE keys
-- [x] add caps lock (KC_CAPS) to RAISE layer on the shift key
-- [x] Add del to a thumb layer
-- [x] Add MT(MOD_LSFT, KC_ENT) shift when pressed, enter when tapped
-- [x] add home, end, pgup and pgwon on _RAISE instead of arrows
-- [x] change LSFT to S for more legibility
-- [x] add secrets on RAISE to be able to output personal data such as email, phone number, credit cards number...
-- [x] remap F keys upon numbers on _FN
-
-To DO
-- [ ] Add Hyper on ESC or TAB to be able to use it for custom keyboard shortcuts
-- [ ] consider using layer configuration to have just one keymap (see as a reference qmk_firmware/layouts/community/ortho_4x12/bredfield/)
-- [ ] add brightness up (KC_BRMU or KC_BRIU) and down (KC_BRMD or KC_BRID)
-- [ ] consider adding AUTO_SHIFT_ENABLE = yes in rules.mk to be able to send shifted key depressing a key for twice the time
-- [ ] revert IT_ to KC_ where not required
diff --git a/keyboards/planck/keymaps/sigul/rules.mk b/keyboards/planck/keymaps/sigul/rules.mk
deleted file mode 100644
index dcf16bef39..0000000000
--- a/keyboards/planck/keymaps/sigul/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-SRC += muse.c
diff --git a/keyboards/planck/keymaps/smt/keymap.c b/keyboards/planck/keymaps/smt/keymap.c
index 6320e11fcf..7d558e4383 100644
--- a/keyboards/planck/keymaps/smt/keymap.c
+++ b/keyboards/planck/keymaps/smt/keymap.c
@@ -142,14 +142,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
};
#ifdef AUDIO_ENABLE
-
-float tone_startup[][2] = SONG(STARTUP_SOUND);
float tone_qwerty[][2] = SONG(QWERTY_SOUND);
float tone_colemak[][2] = SONG(COLEMAK_SOUND);
float tone_dvorak[][2] = SONG(DVORAK_SOUND);
-float music_scale[][2] = SONG(MUSIC_SCALE_SOUND);
-
-float tone_goodbye[][2] = SONG(GOODBYE_SOUND);
#endif
@@ -221,36 +216,3 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
}
return true;
}
-
-void matrix_init_user(void) {
- #ifdef AUDIO_ENABLE
- startup_user();
- #endif
-}
-
-#ifdef AUDIO_ENABLE
-
-void startup_user(void)
-{
- _delay_ms(20); // gets rid of tick
- PLAY_SONG(tone_startup);
-}
-
-void shutdown_user(void)
-{
- PLAY_SONG(tone_goodbye);
- _delay_ms(150);
- stop_all_notes();
-}
-
-void music_on_user(void)
-{
- music_scale_user();
-}
-
-void music_scale_user(void)
-{
- PLAY_SONG(music_scale);
-}
-
-#endif
diff --git a/keyboards/planck/keymaps/spacebarracecar/config.h b/keyboards/planck/keymaps/spacebarracecar/config.h
deleted file mode 100644
index 4f48857fe5..0000000000
--- a/keyboards/planck/keymaps/spacebarracecar/config.h
+++ /dev/null
@@ -1,5 +0,0 @@
-#pragma once
-
-#ifdef AUDIO_ENABLE
- #define STARTUP_SONG SONG(NO_SOUND)
-#endif
diff --git a/keyboards/planck/keymaps/spacebarracecar/keymap.c b/keyboards/planck/keymaps/spacebarracecar/keymap.c
deleted file mode 100644
index f8bd8d7182..0000000000
--- a/keyboards/planck/keymaps/spacebarracecar/keymap.c
+++ /dev/null
@@ -1,160 +0,0 @@
-#include QMK_KEYBOARD_H
-#include "spacebarracecar.h"
-
-#define LOWER MO(_LOWER)
-#define RAISE MO(_RAISE)
-
-enum layers {
- _BASE,
- _RAISE,
- _LOWER,
- _MUSICMODE
-};
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
-/* Base
-,-----------------------------------------------------------------------------------------------------------------------.
-|Tab |Q |W |E |R |T |Z |U |I |O |P |Backspace|
-|---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------|
-|Esc/Nav |A |S |D |F |G |H |J |K |L |; |' |
-|---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------|
-|Shift |Y |X |C |V |B |N |M |, |. |/ |Shift |
-|---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------|
-|LCtrl | |Win |Alt |Lower |Space |Enter |Raise |AltGr |Win |Menu |RCtrl |
-`-----------------------------------------------------------------------------------------------------------------------'
-*/
-
-[_BASE] = LAYOUT_ortho_4x12(
- KC_TAB, DE_Q, DE_W, DE_E, DE_R, DE_T, CU_Z, DE_U, DE_I, DE_O, DE_P, KC_BSPC,
- CU_NAV, DE_A, DE_S, DE_D, DE_F, DE_G, DE_H, DE_J, DE_K, DE_L, CU_SCLN, CU_QUOT,
- CU_LSFT, CU_Y, DE_X, DE_C, DE_V, DE_B, DE_N, DE_M, CU_COMM, CU_DOT, CU_SLSH, CU_RSFT,
- KC_LCTL, XXXXXXX, KC_LGUI, KC_LALT, LOWER, KC_SPC, CTLENT, RAISE, KC_RALT, KC_RGUI, KC_APP, KC_RCTL
-),
-
-/* Lower
-,-----------------------------------------------------------------------------------------------------------------------.
-|~ |! |" |# |$ |% |^ |& |* |( |) | |
-|---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------|
-| |@ |Strg+X |Strg+C |Strg+V | | |_ |+ |{ |} || |
-|---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------|
-| |? | | | | | | | | | | |
-|---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------|
-| | | | | | | | | | | | |
-`-----------------------------------------------------------------------------------------------------------------------'
-*/
-[_LOWER] = LAYOUT_ortho_4x12(
- DE_TILD, DE_EXLM, DE_DQUO, DE_HASH, DE_DLR, DE_PERC, CU_CIRC, DE_AMPR, DE_ASTR, DE_LPRN, DE_RPRN, _______,
- _______, DE_AT, CTRLX, CTRLC, CTRLV, XXXXXXX, XXXXXXX, DE_UNDS, DE_PLUS, DE_LCBR, DE_RCBR, DE_PIPE,
- _______, DE_EURO, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, DE_MINS, CU_EQL, CU_LBRC, CU_RBRC, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
-),
-
-/* Raise
-,-----------------------------------------------------------------------------------------------------------------------.
-|` |1 |2 |3 |4 |5 |6 |7 |8 |9 |0 | |
-|---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------|
-| |F1 |F2 |F3 |F4 |F5 |F6 |- |= |[ |] |\ |
-|---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------|
-| |F7 |F8 |F9 |F10 |F11 |F12 | | | | | |
-|---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------|
-| | | | | | | | | | | | |
-`-----------------------------------------------------------------------------------------------------------------------'
-*/
-
-[_RAISE] = LAYOUT_ortho_4x12(
- CU_GRV, DE_1, DE_2, CU_3, DE_4, DE_5, CU_6, CU_7, CU_8, CU_9, CU_0, _______,
- _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, DE_MINS, CU_EQL, CU_LBRC, CU_RBRC, CU_BSLS,
- _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, XXXXXXX, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
-),
-
-[_MUSICMODE] = LAYOUT_ortho_4x12(
- XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
- XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
- XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
- KC_LCTL, KC_LALT, KC_LGUI, KC_DOWN, KC_UP, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, MU_NEXT, MU_OFF
-),
-
-/* Deadkey
-,-----------------------------------------------------------------------------------------------------------------------.
-| | | | | | | |Ü | |Ö | | |
-|---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------|
-| |Ä |ß | | | | | | | | | |
-|---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------|
-| | | | | | | | | | | | |
-|---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------|
-| | | | | |" |" | | | | | |
-`-----------------------------------------------------------------------------------------------------------------------'
-*/
-
-[_DEADKEY] = LAYOUT_ortho_4x12(
- KC_TAB, CU_ED, CU_ED, CU_ED, CU_ED, CU_ED, CU_ED, CU_UE, CU_ED, CU_OE, CU_ED, KC_BSPC,
- CU_NAV, CU_AE, CU_SS, CU_ED, CU_ED, CU_ED, CU_ED, CU_ED, CU_ED, CU_ED, CU_ED, CU_DDQ,
- CU_LSFT, CU_ED, CU_ED, CU_ED, CU_ED, CU_ED, CU_ED, CU_ED, CU_ED, CU_ED, CU_ED, CU_RSFT,
- KC_LCTL, XXXXXXX, KC_LGUI, KC_LALT, LOWER, CU_DDQ, CU_DDQ, RAISE, KC_RALT, KC_RGUI, KC_APP, KC_RCTL
-),
-
-/* Navigation
-,-----------------------------------------------------------------------------------------------------------------------.
-|ALT F4 |PageDown |Up |PageUp |Home | | | |Win+Up | | |Del |
-|---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------|
-| |Left |Down |Right |End | | |Win+Left |Win+Down |Win+Right| |Enter |
-|---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------|
-| |Prev |Pause |Next |LowerVol |RaiseVol |Mute | | | | | |
-|---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------|
-|QK_BOOT |ESCT | | | | | | | | | |Game |
-`-----------------------------------------------------------------------------------------------------------------------'
-*/
-
-[_NAV] = LAYOUT_ortho_4x12(
- _______, KC_PGDN, KC_UP, KC_PGUP, KC_HOME, XXXXXXX, XXXXXXX, XXXXXXX, GUIU, XXXXXXX, XXXXXXX, KC_DEL,
- _______, KC_LEFT, KC_DOWN, KC_RGHT, KC_END, XXXXXXX, XXXXXXX, GUIL, GUID, GUIR, EMOJI, KC_ENT,
- _______, KC_MPRV, KC_MPLY, KC_MNXT, KC_VOLD, KC_VOLU, KC_MUTE, MU_ON, XXXXXXX, XXXXXXX, XXXXXXX, _______,
- QK_BOOT, CU_ESCT, ALTF4, _______, _______, KC_SPC, CTLENT, _______, _______, _______, _______, CU_GAME
-)
-
-};
-
-bool process_record_keymap(uint16_t keycode, keyrecord_t *record) {
-switch (keycode) {
- case MO(_LOWER):
- if (game){
- if(record->event.pressed) {
- register_code(KC_SPC);
- } else {
- unregister_code(KC_SPC);
- }
- return false;
- } else {
- return true;
- }
- case KC_LALT:
- if (game) {
- if (record->event.pressed){
- layer_on(_RAISE);
- } else {
- layer_off(_RAISE);
- }
- return false;
- } else {
- return true;
- }
- case MU_ON:
- if(record->event.pressed) {
- layer_off(_LOWER);
- layer_off(_RAISE);
- layer_off(_NAV);
- layer_off(_DEADKEY);
- layer_on(_MUSICMODE);
- }
- return true;
- case MU_OFF:
- if(record->event.pressed) {
- layer_off(_MUSICMODE);
- }
- return true;
- default:
- return true;
- }
-}
diff --git a/keyboards/planck/keymaps/spacebarracecar/readme.md b/keyboards/planck/keymaps/spacebarracecar/readme.md
deleted file mode 100644
index c8e8134caa..0000000000
--- a/keyboards/planck/keymaps/spacebarracecar/readme.md
+++ /dev/null
@@ -1,5 +0,0 @@
-# SpacebarRacecar US-International Planck Keymap for German PCs
-
-This keymap emulates most keys of the US-International layout on PCs that have German set as input language.
-This allows the use of the keyboard on any PC in Germany without the need to change any settings.
-The keymap is mostly based on the Planck default layout but adds essential features for german input, like access to Ä, Ö, Ü, ß.
diff --git a/keyboards/planck/keymaps/spacebarracecar/rules.mk b/keyboards/planck/keymaps/spacebarracecar/rules.mk
deleted file mode 100644
index b65fadcd36..0000000000
--- a/keyboards/planck/keymaps/spacebarracecar/rules.mk
+++ /dev/null
@@ -1,22 +0,0 @@
-# Build Options
-# change to "no" to disable the options, or define them in the Makefile in
-# the appropriate keymap folder that will get included automatically
-#
-BOOTMAGIC_ENABLE = no # Enable Bootmagic Lite
-MOUSEKEY_ENABLE = no # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
-COMMAND_ENABLE = no # Commands for debug and configuration
-NKRO_ENABLE = no # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
-BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
-MIDI_ENABLE = no # MIDI controls
-AUDIO_ENABLE = yes # Audio output on port C6
-UNICODE_ENABLE = no # Unicode
-BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
-RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight.
-
-# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
-SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
-
-# Userspace defines
-GERMAN_ENABLE = yes # Enable Custom US Ansi Keycodes for PC with German set as input language
diff --git a/keyboards/planck/keymaps/steno/keymap.c b/keyboards/planck/keymaps/steno/keymap.c
index 9de27e47bf..4d22ee4ff3 100644
--- a/keyboards/planck/keymaps/steno/keymap.c
+++ b/keyboards/planck/keymaps/steno/keymap.c
@@ -15,7 +15,6 @@
*/
#include QMK_KEYBOARD_H
-#include "keymap_steno.h"
extern keymap_config_t keymap_config;
diff --git a/keyboards/planck/keymaps/that_canadian/keymap.c b/keyboards/planck/keymaps/that_canadian/keymap.c
index 9f3a415fa3..d7b8a6b356 100644
--- a/keyboards/planck/keymaps/that_canadian/keymap.c
+++ b/keyboards/planck/keymaps/that_canadian/keymap.c
@@ -123,14 +123,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
};
#ifdef AUDIO_ENABLE
-
-float tone_startup[][2] = SONG(STARTUP_SOUND);
float tone_qwerty[][2] = SONG(QWERTY_SOUND);
float tone_dvorak[][2] = SONG(DVORAK_SOUND);
float tone_colemak[][2] = SONG(COLEMAK_SOUND);
-float music_scale[][2] = SONG(MUSIC_SCALE_SOUND);
-
-float tone_goodbye[][2] = SONG(GOODBYE_SOUND);
#endif
@@ -173,36 +168,3 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
}
return true;
}
-
-void matrix_init_user(void) {
- #ifdef AUDIO_ENABLE
- startup_user();
- #endif
-}
-
-#ifdef AUDIO_ENABLE
-
-void startup_user(void)
-{
- _delay_ms(20); // gets rid of tick
- PLAY_SONG(tone_startup);
-}
-
-void shutdown_user(void)
-{
- PLAY_SONG(tone_goodbye);
- _delay_ms(150);
- stop_all_notes();
-}
-
-void music_on_user(void)
-{
- music_scale_user();
-}
-
-void music_scale_user(void)
-{
- PLAY_SONG(music_scale);
-}
-
-#endif
diff --git a/keyboards/planck/keymaps/vaire/keymap.c b/keyboards/planck/keymaps/vaire/keymap.c
index f58486cda8..00b49e52d7 100644
--- a/keyboards/planck/keymaps/vaire/keymap.c
+++ b/keyboards/planck/keymaps/vaire/keymap.c
@@ -31,42 +31,42 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
LAYOUT_planck_grid(
- KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,
- KC_TAB, 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_UP, SFT_T(KC_ENT),
+ KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,
+ KC_TAB, 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_UP, SFT_T(KC_ENT),
MO(1), KC_LCTL, KC_LALT, KC_LGUI, MO(2), LT(5,KC_ENT), LT(4,KC_SPC), MO(3), KC_SLSH, KC_LEFT, KC_DOWN, CTL_T(KC_RGHT)),
LAYOUT_planck_grid(
- KC_ESC, KC_NUM, LCTL(KC_SPC), KC_UP, LSFT(KC_SPC), KC_DLR, KC_EQL, KC_P7, KC_P8, KC_P9, KC_PPLS, LCTL(KC_BSPC),
- KC_TAB, FIND, KC_LEFT, KC_DOWN, KC_RGHT, KC_PERC, KC_CIRC, KC_P4, KC_P5, KC_P6, KC_PMNS, KC_BSLS,
- KC_LSFT, UNDO, CUT, COPY, PASTE, EXCEL_HOME, KC_PSCR, KC_P1, KC_P2, KC_P3, KC_PSLS, KC_LSFT,
+ KC_ESC, KC_NUM, LCTL(KC_SPC), KC_UP, LSFT(KC_SPC), KC_DLR, KC_EQL, KC_P7, KC_P8, KC_P9, KC_PPLS, LCTL(KC_BSPC),
+ KC_TAB, FIND, KC_LEFT, KC_DOWN, KC_RGHT, KC_PERC, KC_CIRC, KC_P4, KC_P5, KC_P6, KC_PMNS, KC_BSLS,
+ KC_LSFT, UNDO, CUT, COPY, PASTE, EXCEL_HOME, KC_PSCR, KC_P1, KC_P2, KC_P3, KC_PSLS, KC_LSFT,
KC_TRNS, KC_LCTL, KC_LALT, KC_LGUI, TO(1), KC_ENT, KC_SPC, KC_PENT, KC_P0, KC_PDOT, KC_PAST, KC_LCTL),
LAYOUT_planck_grid(
- KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL,
- KC_CAPS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_EQL, KC_LT, KC_GT, KC_LPRN,
- KC_LSFT, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_MUTE, KC_MPLY, KC_MNXT, KC_PGUP, SFT_T(KC_VOLU),
+ KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL,
+ KC_CAPS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_EQL, KC_LT, KC_GT, KC_LPRN,
+ KC_LSFT, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_MUTE, KC_MPLY, KC_MNXT, KC_PGUP, SFT_T(KC_VOLU),
TO(0), KC_LCTL, KC_LALT, KC_LGUI, KC_TRNS, KC_ENT, KC_SPC, MO(3), KC_PSCR, KC_MPRV, KC_PGDN, CTL_T(KC_VOLD)),
LAYOUT_planck_grid(
- KC_TILD, DESK_LEFT, WIN_LEFT, KC_F4, WIN_RIGHT, DESK_RIGHT, DOCS, SNAP_LEFT, SNAP_UP, SNAP_RIGHT, SNAP_DOWN, KC_DEL,
- KC_CAPS, KC_QUOT, KC_LBRC, KC_LCBR, KC_LPRN, KC_BSLS, KC_SLSH, KC_RPRN, KC_RCBR, KC_RBRC, KC_DQUO, KC_QUOT,
- KC_PWR, KC_SLEP, KC_WAKE, KC_HOME, BL_BRTG, BL_STEP, KC_TRNS, KC_CALC, KC_LT, KC_GT, KC_COLON, KC_LSFT,
+ KC_TILD, DESK_LEFT, WIN_LEFT, KC_F4, WIN_RIGHT, DESK_RIGHT, DOCS, SNAP_LEFT, SNAP_UP, SNAP_RIGHT, SNAP_DOWN, KC_DEL,
+ KC_CAPS, KC_QUOT, KC_LBRC, KC_LCBR, KC_LPRN, KC_BSLS, KC_SLSH, KC_RPRN, KC_RCBR, KC_RBRC, KC_DQUO, KC_QUOT,
+ KC_PWR, KC_SLEP, KC_WAKE, KC_HOME, BL_BRTG, BL_STEP, KC_TRNS, KC_CALC, KC_LT, KC_GT, KC_COLON, KC_LSFT,
TO(0), KC_LCTL, KC_LALT, KC_LGUI, KC_LALT, KC_LCTL, KC_TRNS, KC_TRNS, AU_TOGG, MU_TOGG, MU_NEXT, LCTL(KC_RGHT)),
LAYOUT_planck_grid(
- TO(0), KC_LSCR, WIN_LEFT, KC_MS_WH_UP, WIN_RIGHT, KC_TRNS, KC_TRNS, KC_MS_BTN1, KC_MS_U, KC_MS_BTN2, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_INS, KC_MS_WH_LEFT, KC_MS_WH_DOWN, KC_MS_WH_RIGHT, KC_TRNS, KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_R, KC_TRNS, KC_TRNS,
- QK_BOOT, KC_APP, KC_MS_ACCEL0, KC_MS_ACCEL0, KC_MS_ACCEL0, KC_TRNS, KC_TRNS, TO(0), TO(1), TO(2), TO(3), TO(4),
+ TO(0), KC_LSCR, WIN_LEFT, KC_MS_WH_UP, WIN_RIGHT, KC_TRNS, KC_TRNS, KC_MS_BTN1, KC_MS_U, KC_MS_BTN2, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_INS, KC_MS_WH_LEFT, KC_MS_WH_DOWN, KC_MS_WH_RIGHT, KC_TRNS, KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_R, KC_TRNS, KC_TRNS,
+ QK_BOOT, KC_APP, KC_MS_ACCEL0, KC_MS_ACCEL0, KC_MS_ACCEL0, KC_TRNS, KC_TRNS, TO(0), TO(1), TO(2), TO(3), TO(4),
TO(0), KC_MENU, KC_TRNS, KC_TRNS, KC_LALT, KC_LCTL, KC_TRNS, KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_RCTL),
LAYOUT_planck_grid(
- KC_BSPC, KC_P, KC_O, KC_I, KC_U, KC_Y, KC_T, KC_R, KC_E, KC_W, KC_Q, KC_BSPC,
- KC_TAB, KC_SCLN, KC_L, KC_K, KC_J, KC_H, KC_G, KC_F, KC_D, KC_S, KC_A, KC_QUOT,
- KC_LSFT, KC_ENT, KC_DOT, KC_COMM, KC_M, KC_N, KC_B, KC_V, KC_C, KC_X, KC_Z, SFT_T(KC_ENT),
+ KC_BSPC, KC_P, KC_O, KC_I, KC_U, KC_Y, KC_T, KC_R, KC_E, KC_W, KC_Q, KC_BSPC,
+ KC_TAB, KC_SCLN, KC_L, KC_K, KC_J, KC_H, KC_G, KC_F, KC_D, KC_S, KC_A, KC_QUOT,
+ KC_LSFT, KC_ENT, KC_DOT, KC_COMM, KC_M, KC_N, KC_B, KC_V, KC_C, KC_X, KC_Z, SFT_T(KC_ENT),
TO(0), KC_LCTL, KC_LALT, KC_LGUI, MO(2), KC_TRNS, KC_TRNS, MO(3), KC_SLSH, KC_LEFT, KC_DOWN, LCTL(KC_RGHT)),
-
-
+
+
};
@@ -76,7 +76,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
void matrix_init_user(void)
{
set_voice(default_voice);
- startup_user();
println("Matrix Init");
}
@@ -123,29 +122,4 @@ bool led_update_user(led_t led_state)
old_led_state = led_state;
return false;
}
-
-
-void startup_user(void)
-{
- _delay_ms(30); // gets rid of tick
- PLAY_SONG(tone_my_startup);
-}
-
-void shutdown_user(void)
-{
- PLAY_SONG(tone_my_goodbye);
- _delay_ms(3000);
- stop_all_notes();
-}
-
-void audio_on_user(void)
-{
- PLAY_SONG(tone_audio_on);
-}
-
-void music_on_user(void)
-{
- PLAY_SONG(tone_music_on);
-}
-
-#endif /* AUDIO_ENABLE */ \ No newline at end of file
+#endif /* AUDIO_ENABLE */
diff --git a/keyboards/planck/keymaps/yttyx/keymap.c b/keyboards/planck/keymaps/yttyx/keymap.c
index 1201163ac7..b3b39cd919 100644
--- a/keyboards/planck/keymaps/yttyx/keymap.c
+++ b/keyboards/planck/keymaps/yttyx/keymap.c
@@ -1,6 +1,5 @@
#include QMK_KEYBOARD_H
-#include "keymap_steno.h"
enum layers {
_BA, // Base (Balance Twelve mirror variant)
diff --git a/keyboards/planck/keymaps/zach/zach_common_functions.c b/keyboards/planck/keymaps/zach/zach_common_functions.c
index ae5f44e713..e17e31c7b5 100644
--- a/keyboards/planck/keymaps/zach/zach_common_functions.c
+++ b/keyboards/planck/keymaps/zach/zach_common_functions.c
@@ -52,8 +52,6 @@ enum my_keycodes{
#ifdef AUDIO_ENABLE
#include "audio.h"
-float tone_startup[][2] = SONG(STARTUP_SOUND);
-float tone_goodbye[][2] = SONG(GOODBYE_SOUND);
float tone_colemak[][2] = SONG(COLEMAK_SOUND);
float tone_swcole[][2] = SONG(QWERTY_SOUND);
float tone_capslock_on[][2] = SONG(CAPS_LOCK_ON_SOUND);
@@ -414,32 +412,4 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
return true;
};
-void matrix_init_user(void){ // Run once at startup
- #ifdef AUDIO_ENABLE
- _delay_ms(50); // gets rid of tick
- PLAY_SONG(tone_startup);
- #endif
-}
-
-#ifdef AUDIO_ENABLE
-void play_goodbye_tone(void){
- PLAY_SONG(tone_goodbye);
- _delay_ms(150);
-}
-
-void shutdown_user(void){
- PLAY_SONG(tone_goodbye);
- _delay_ms(150);
- stop_all_notes();
-}
-
-void music_on_user(void){ // Run when the music layer is turned on
- PLAY_SONG(tone_startup);
-}
-
-void music_off_user(void){ // Run when music is turned off
- PLAY_SONG(tone_goodbye);
-}
-#endif
-
#endif
diff --git a/keyboards/planck/light/config.h b/keyboards/planck/light/config.h
index d4001dd80b..6d12061b51 100644
--- a/keyboards/planck/light/config.h
+++ b/keyboards/planck/light/config.h
@@ -7,17 +7,9 @@
#define PLANCK_MIT_LAYOUT
-// This is a 7-bit address, that gets left-shifted and bit 0
-// set to 0 for write, 1 for read (as per I2C protocol)
-// The address will vary depending on your wiring:
-// 0b1110100 AD <-> GND
-// 0b1110111 AD <-> VCC
-// 0b1110101 AD <-> SCL
-// 0b1110110 AD <-> SDA
-#define DRIVER_ADDR_1 0b1110100
-#define DRIVER_ADDR_2 0b1110110
+#define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND
+#define IS31FL3731_I2C_ADDRESS_2 IS31FL3731_I2C_ADDRESS_SDA
-#define DRIVER_COUNT 2
#define DRIVER_1_LED_TOTAL 25
#define DRIVER_2_LED_TOTAL 24
#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL)
diff --git a/keyboards/planck/light/light.c b/keyboards/planck/light/light.c
index 1fc6a65c0c..828319c66d 100644
--- a/keyboards/planck/light/light.c
+++ b/keyboards/planck/light/light.c
@@ -16,7 +16,7 @@
#include "quantum.h"
-const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = {
+const is31fl3731_led_t PROGMEM g_is31fl3731_leds[RGB_MATRIX_LED_COUNT] = {
/* Refer to IS31 manual for these locations
* driver
* | R location
diff --git a/keyboards/planck/rev6/config.h b/keyboards/planck/rev6/config.h
index c0c8dc2c55..a0a997f860 100644
--- a/keyboards/planck/rev6/config.h
+++ b/keyboards/planck/rev6/config.h
@@ -17,8 +17,6 @@
#pragma once
-#define DIP_SWITCH_PINS { B14, A15, A0, B9 }
-
#define MUSIC_MAP
#undef AUDIO_VOICES
#undef AUDIO_PIN
diff --git a/keyboards/planck/rev6/info.json b/keyboards/planck/rev6/info.json
index 59e7ba6635..a6ad35281d 100644
--- a/keyboards/planck/rev6/info.json
+++ b/keyboards/planck/rev6/info.json
@@ -23,6 +23,9 @@
"rows": ["A10", "A9", "A8", "B15", "C13", "C14", "C15", "A2"]
},
"diode_direction": "COL2ROW",
+ "dip_switch": {
+ "pins": ["B14", "A15", "A0", "B9"]
+ },
"encoder": {
"rotary": [
{"pin_a": "B12", "pin_b": "B13"}
diff --git a/keyboards/planck/rev6_drop/config.h b/keyboards/planck/rev6_drop/config.h
index 7050fa009c..a0a997f860 100644
--- a/keyboards/planck/rev6_drop/config.h
+++ b/keyboards/planck/rev6_drop/config.h
@@ -17,9 +17,6 @@
#pragma once
-#define DIP_SWITCH_PINS \
- { B14, A15, A0, B9 }
-
#define MUSIC_MAP
#undef AUDIO_VOICES
#undef AUDIO_PIN
diff --git a/keyboards/planck/rev6_drop/info.json b/keyboards/planck/rev6_drop/info.json
index d04bb0d6aa..d224561c7f 100644
--- a/keyboards/planck/rev6_drop/info.json
+++ b/keyboards/planck/rev6_drop/info.json
@@ -23,6 +23,9 @@
"rows": ["A10", "A9", "A8", "B15", "C13", "C14", "C15", "A2"]
},
"diode_direction": "COL2ROW",
+ "dip_switch": {
+ "pins": ["B14", "A15", "A0", "B9"]
+ },
"encoder": {
"rotary": [
{"pin_a": "B12", "pin_b": "B13"}
diff --git a/keyboards/planck/rev7/config.h b/keyboards/planck/rev7/config.h
index 3da5a4e6b9..678cb1d438 100644
--- a/keyboards/planck/rev7/config.h
+++ b/keyboards/planck/rev7/config.h
@@ -17,9 +17,6 @@
#pragma once
-#define DIP_SWITCH_PINS \
- { B14, A15, A0, B9 }
-
#define MUSIC_MAP
#undef AUDIO_VOICES
#undef AUDIO_PIN
diff --git a/keyboards/planck/rev7/info.json b/keyboards/planck/rev7/info.json
index 1d57732b4f..72dce51d83 100644
--- a/keyboards/planck/rev7/info.json
+++ b/keyboards/planck/rev7/info.json
@@ -20,6 +20,9 @@
"rows": ["A10", "A9", "A8", "B15", "C13", "C14", "C15", "A2"]
},
"diode_direction": "COL2ROW",
+ "dip_switch": {
+ "pins": ["B14", "A15", "A0", "B9"]
+ },
"encoder": {
"rotary": [
{"pin_a": "B12", "pin_b": "B13"}
diff --git a/keyboards/planck/rev7/keymaps/peterfalken/config.h b/keyboards/planck/rev7/keymaps/peterfalken/config.h
deleted file mode 100644
index c3de26365b..0000000000
--- a/keyboards/planck/rev7/keymaps/peterfalken/config.h
+++ /dev/null
@@ -1,49 +0,0 @@
-/* Copyright 2015-2023 Jack Humbert
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-#pragma once
-
-#ifdef AUDIO_ENABLE
-# define STARTUP_SONG SONG(PLANCK_SOUND)
-// #define STARTUP_SONG SONG(NO_SOUND)
-
-# define DEFAULT_LAYER_SONGS \
- { SONG(QWERTY_SOUND), SONG(COLEMAK_SOUND), SONG(DVORAK_SOUND) }
-#endif
-
-/*
- * MIDI options
- */
-
-/* enable basic MIDI features:
- - MIDI notes can be sent when in Music mode is on
-*/
-
-#define MIDI_BASIC
-
-/* enable advanced MIDI features:
- - MIDI notes can be added to the keymap
- - Octave shift and transpose
- - Virtual sustain, portamento, and modulation wheel
- - etc.
-*/
-// #define MIDI_ADVANCED
-
-/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
-// #define MIDI_TONE_KEYCODE_OCTAVES 2
-
-// Most tactile encoders have detents every 4 stages
-#define ENCODER_RESOLUTION 4
diff --git a/keyboards/planck/rev7/keymaps/peterfalken/keymap.c b/keyboards/planck/rev7/keymaps/peterfalken/keymap.c
deleted file mode 100644
index 140149c472..0000000000
--- a/keyboards/planck/rev7/keymaps/peterfalken/keymap.c
+++ /dev/null
@@ -1,80 +0,0 @@
-// Copyright 2023 Peter.Falken (@PeterFalken)
-// SPDX-License-Identifier: GPL-2.0-or-later
-
-#include "muse.h"
-#include "peterfalken.h"
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-/* Qwerty
- * ,-----------------------------------------------------------------------------------.
- * | Esc | Q | W | E | R | T | Y | U | I | O | P | Bksp |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | Tab | A | S | D | F | G | H | J | K | L | ; | ' |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | Shift| Z | X | C | V | B | N | M | , | . | / |Enter |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | ▽ | Ctrl | Opt | Cmd | LWR | Space | RSE | Left | Down | Up |Right |
- * `-----------------------------------------------------------------------------------'
- */
-[_QWERTY] = LAYOUT_planck_grid(
- KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,
- KC_TAB, 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_ENT ,
- _______, KC_LCTL, KC_LOPT, KC_LCMD, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT
-),
-
-/* Lower
- * ,-----------------------------------------------------------------------------------.
- * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Del |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | Del | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | ▽ | F7 | F8 | F9 | F10 | F11 | F12 |ISO ~ |ISO | | Home | End | ▽ |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | ▽ | ▽ | ▽ | ▽ | ▽ | ▽ ▽ | ▽ | Next | Vol- | Vol+ | Play |
- * `-----------------------------------------------------------------------------------'
- */
-[_LOWER] = LAYOUT_planck_grid(
- KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL,
- KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE,
- _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, S(KC_NUHS), S(KC_NUBS), KC_HOME, KC_END, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY
-),
-
-/* Raise
- * ,-----------------------------------------------------------------------------------.
- * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | Del | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | ▽ | F7 | F8 | F9 | F10 | F11 | F12 |ISO # |ISO / |Pg Up |Pg Dn | ▽ |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | ▽ | ▽ | ▽ | ▽ | ▽ | ▽ ▽ | ▽ | Next | Vol- | Vol+ | Play |
- * `-----------------------------------------------------------------------------------'
- */
-[_RAISE] = LAYOUT_planck_grid(
- KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC,
- KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS,
- _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NUHS, KC_NUBS, KC_PGUP, KC_PGDN, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY
-),
-
-/* Adjust (Lower + Raise)
- * ,-----------------------------------------------------------------------------------.
- * | RSET | ▽ | M.AP | M.AL | LPAD | ▽ | ▽ | ▽ | ▽ | ▽ | ▽ | Del |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | ▽ | ▽ | ▽ | ▽ | ▽ | ▽ | ▽ | ▽ | ▽ | ▽ | ▽ | SLEP |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | CPWD | UN | CU | CO | PA | MV | ▽ | ▽ | ▽ | ▽ | ▽ | ▽ |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | ▽ | ▽ | ▽ | ▽ | ▽ | ▽ ▽ | ▽ | ▽ | ▽ | ▽ | ▽ |
- * `-----------------------------------------------------------------------------------'
- */
-[_ADJUST] = LAYOUT_planck_grid(
- QK_BOOT, _______, CK_M1, KC_MCTL, KC_LPAD, _______, _______, _______, _______, _______, _______, KC_DEL,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, CK_SLP,
- CK_CW, _______, CK_CU, CK_CO, CK_PA, CK_MV, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
-)
-
-};
diff --git a/keyboards/planck/rev7/keymaps/peterfalken/readme.md b/keyboards/planck/rev7/keymaps/peterfalken/readme.md
deleted file mode 100644
index f64d682a51..0000000000
--- a/keyboards/planck/rev7/keymaps/peterfalken/readme.md
+++ /dev/null
@@ -1,14 +0,0 @@
-Copyright 2023 LEG <ucaboys@gmail.com> @PeterFalken
-
-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/>.
diff --git a/keyboards/planck/rev7/keymaps/peterfalken/rules.mk b/keyboards/planck/rev7/keymaps/peterfalken/rules.mk
deleted file mode 100644
index 4db223543d..0000000000
--- a/keyboards/planck/rev7/keymaps/peterfalken/rules.mk
+++ /dev/null
@@ -1,4 +0,0 @@
-# Setup keymap QMK features
-# TODO: Check for space optimizations
-AUDIO_ENABLE = yes # Enable Audio Output
-ENCODER_ENABLE = no # Disable encoder
diff --git a/keyboards/planck/thk/config.h b/keyboards/planck/thk/config.h
index cfb88aa0eb..4087ce2b28 100644
--- a/keyboards/planck/thk/config.h
+++ b/keyboards/planck/thk/config.h
@@ -18,8 +18,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#pragma once
-#define DIP_SWITCH_PINS { D0, D1, D4, D6 }
-
// THK uses D5 for audio
#undef AUDIO_PIN
#define AUDIO_PIN D5
diff --git a/keyboards/planck/thk/info.json b/keyboards/planck/thk/info.json
index f62e074e68..24b8d5f0a5 100644
--- a/keyboards/planck/thk/info.json
+++ b/keyboards/planck/thk/info.json
@@ -13,6 +13,9 @@
"rows": ["A7", "A6", "A5", "A4"]
},
"diode_direction": "COL2ROW",
+ "dip_switch": {
+ "pins": ["D0", "D1", "D4", "D6"]
+ },
"encoder": {
"rotary": [
{"pin_a": "B4", "pin_b": "B3"},
diff --git a/keyboards/playkbtw/ca66/keymaps/zyber/keymap.c b/keyboards/playkbtw/ca66/keymaps/zyber/keymap.c
deleted file mode 100644
index 0f446fd8f6..0000000000
--- a/keyboards/playkbtw/ca66/keymaps/zyber/keymap.c
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright 2022 ZyBeR (@ZyberSE)
-// SPDX-License-Identifier: GPL-2.0
-
-#include "zyber.h"
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
- LAYOUT(
- QK_GESC, 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_BSPC, KC_DEL,
- KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, TD(LBRC), KC_RBRC, KC_BSLS, KC_PGUP,
- CTRL_C_UP, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, TD(SCLN), TD(QUOT), KC_ENT, KC_PGDN,
- KC_LSFT, KC_NO, 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_HOME,
- KC_NO, KC_LALT, KC_LGUI, KC_NO, KC_SPC, KC_NO, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT),
-
- LAYOUT(
- KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_DEL, RGB_TOG,
- KC_CAPS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, QK_BOOT, KC_PSCR, KC_SCRL, KC_PAUS, KC_TRNS, RGB_MOD,
- KC_TRNS, KC_LEFT, KC_DOWN, KC_RIGHT,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_VAD, RGB_VAI, KC_INS, KC_HOME,
- KC_LSFT, KC_TRNS, KC_MPRV, KC_MPLY, KC_MNXT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MUTE, KC_VOLD, KC_VOLU, KC_TRNS, RGB_HUI, KC_END,
- KC_NO, KC_TRNS, KC_TRNS, KC_NO, KC_TRNS, KC_NO, KC_TRNS, KC_TRNS, RGB_SAD, RGB_HUD, RGB_SAI),
-};
diff --git a/keyboards/playkbtw/ca66/keymaps/zyber/rules.mk b/keyboards/playkbtw/ca66/keymaps/zyber/rules.mk
deleted file mode 100644
index 0a5b666e85..0000000000
--- a/keyboards/playkbtw/ca66/keymaps/zyber/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-MOUSEKEY_ENABLE = no
diff --git a/keyboards/playkbtw/pk64rgb/config.h b/keyboards/playkbtw/pk64rgb/config.h
index bb28749d94..67e42e44a9 100644
--- a/keyboards/playkbtw/pk64rgb/config.h
+++ b/keyboards/playkbtw/pk64rgb/config.h
@@ -23,8 +23,7 @@
#define RGB_MATRIX_MAXIMUM_BRIGHTNESS 160
#define RGB_MATRIX_LED_PROCESS_LIMIT 20
#define RGB_MATRIX_LED_FLUSH_LIMIT 26
- #define DRIVER_ADDR_1 0b1010000
- #define DRIVER_COUNT 1
+ #define IS31FL3733_I2C_ADDRESS_1 IS31FL3733_I2C_ADDRESS_GND_GND
#define RGB_MATRIX_LED_COUNT 64
diff --git a/keyboards/playkbtw/pk64rgb/pk64rgb.c b/keyboards/playkbtw/pk64rgb/pk64rgb.c
index d4c6702472..427d1cf04e 100644
--- a/keyboards/playkbtw/pk64rgb/pk64rgb.c
+++ b/keyboards/playkbtw/pk64rgb/pk64rgb.c
@@ -17,7 +17,7 @@
#include "quantum.h"
#ifdef RGB_MATRIX_ENABLE
-const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = {
+const is31fl3733_led_t PROGMEM g_is31fl3733_leds[RGB_MATRIX_LED_COUNT] = {
/* Refer to IS31 manual for these locations
* driver
* | R location
diff --git a/keyboards/ploopyco/mouse/keymaps/drashna/config.h b/keyboards/ploopyco/mouse/keymaps/drashna/config.h
deleted file mode 100644
index 1dc1b7695f..0000000000
--- a/keyboards/ploopyco/mouse/keymaps/drashna/config.h
+++ /dev/null
@@ -1,31 +0,0 @@
-/* Copyright 2020 Christopher Courtney, aka Drashna Jael're (@drashna) <drashna@live.com>
- * Copyright 2019 Sunjun Kim
- * Copyright 2020 Ploopy Corporation
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-#pragma once
-
-#undef RGBLIGHT_LIMIT_VAL
-#define RGBLIGHT_LIMIT_VAL 255
-#define RGBLIGHT_EFFECT_BREATHING
-#define RGBLIGHT_EFFECT_RAINBOW_MOOD
-#define RGBLIGHT_EFFECT_RAINBOW_SWIRL
-#define RGBLIGHT_EFFECT_SNAKE
-#define RGBLIGHT_EFFECT_KNIGHT
-#define RGBLIGHT_EFFECT_TWINKLE
-#define RGBLIGHT_SLEEP
-
-#define MOUSE_EXTENDED_REPORT
diff --git a/keyboards/ploopyco/mouse/keymaps/drashna/keymap.c b/keyboards/ploopyco/mouse/keymaps/drashna/keymap.c
deleted file mode 100644
index 12b0458143..0000000000
--- a/keyboards/ploopyco/mouse/keymaps/drashna/keymap.c
+++ /dev/null
@@ -1,48 +0,0 @@
-/* Copyright 2020 Christopher Courtney, aka Drashna Jael're (@drashna) <drashna@live.com>
- * Copyright 2019 Sunjun Kim
- * Copyright 2020 Ploopy Corporation
- *
- * 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
-
-// safe range starts at `USER_SAFE_RANGE` instead.
-
-// clang-format off
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [0] = LAYOUT(
- C(KC_C), KC_BTN1, KC_BTN3, KC_BTN2, MO(1), KC_BTN4, KC_BTN5, DPI_CONFIG),
- [1] = LAYOUT(
- RGB_HUI, RGB_MOD, RGB_TOG, RGB_RMOD, MO(1), KC_VOLU, KC_VOLD, QK_BOOT)
-};
-// clang-format on
-
-#ifdef ENCODER_MAP_ENABLE
-const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = {
- [0] = { ENCODER_CCW_CW( KC_WH_D, KC_WH_U ) },
- [1] = { ENCODER_CCW_CW( RGB_HUD, RGB_HUI ) },
-};
-#endif
-
-#ifdef RGBLIGHT_ENABLE
-void eeconkfig_init_user(void) {
- rgblight_enable();
-# ifdef RGBLIGHT_EFFECT_TWINKLE
- rgblight_mode(RGBLIGHT_MODE_TWINKLE + 5);
-# else
- rgblight_mode(RGBLIGHT_MODE_BREATHING + 5);
-# endif
- rgblight_sethsv(HSV_MAGENTA);
-}
-#endif
diff --git a/keyboards/ploopyco/mouse/keymaps/drashna/rules.mk b/keyboards/ploopyco/mouse/keymaps/drashna/rules.mk
deleted file mode 100644
index bd3927a4b1..0000000000
--- a/keyboards/ploopyco/mouse/keymaps/drashna/rules.mk
+++ /dev/null
@@ -1,6 +0,0 @@
-USER_NAME := not_drashna
-BOOTLOADER = qmk-hid
-
-RGBLIGHT_ENABLE = yes
-CONSOLE_ENABLE = no
-LTO_ENABLE = yes
diff --git a/keyboards/ploopyco/mouse/keymaps/uqs/keymap.c b/keyboards/ploopyco/mouse/keymaps/uqs/keymap.c
deleted file mode 100644
index 564dad13df..0000000000
--- a/keyboards/ploopyco/mouse/keymaps/uqs/keymap.c
+++ /dev/null
@@ -1,36 +0,0 @@
-// Copyright 2022 Ulrich Spörlein (@uqs)
-// SPDX-License-Identifier: GPL-2.0-or-later
-// vi:et sw=4:
-
-#include QMK_KEYBOARD_H
-
-enum custom_keycodes {
- DBL_CLK_NO = SAFE_RANGE,
-};
-
-bool process_record_user(uint16_t keycode, keyrecord_t *record) {
- switch (keycode) {
- // This works fine in xev(1) or a browser, but not in the game where I
- // would want it. Maybe need to increase the delay? Also needs to be
- // rewritten to use Deferred Execution.
- case DBL_CLK_NO:
- if (record->event.pressed) {
- tap_code(KC_BTN2);
- wait_ms(150);
- tap_code(KC_BTN2);
- wait_ms(300);
- tap_code(KC_N);
- }
- return false;
- }
- return true;
-}
-
-
-// Layout is:
-// left-most, M1, M3, M2, right-most, fwd, back (on side), tiny middle one
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [0] = LAYOUT(KC_E, KC_BTN1, KC_BTN3, KC_BTN2, KC_LSFT, KC_BTN4, KC_BTN5, DF(1)), // shooters
- [1] = LAYOUT(KC_1, KC_BTN1, KC_Y, KC_BTN2, DBL_CLK_NO, KC_N, KC_Y, DF(0)), // stardew valley, sword on 1
-};
diff --git a/keyboards/ploopyco/mouse/keymaps/uqs/rules.mk b/keyboards/ploopyco/mouse/keymaps/uqs/rules.mk
deleted file mode 100644
index 59222a688a..0000000000
--- a/keyboards/ploopyco/mouse/keymaps/uqs/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-#VIA_ENABLE = yes
diff --git a/keyboards/ploopyco/mouse/rules.mk b/keyboards/ploopyco/mouse/rules.mk
index 8d62f78ed7..17df9cc3c9 100644
--- a/keyboards/ploopyco/mouse/rules.mk
+++ b/keyboards/ploopyco/mouse/rules.mk
@@ -19,5 +19,6 @@ MOUSEKEY_ENABLE = yes # Mouse keys
ENCODER_ENABLE := no
OPTS_DEF += -DENCODER_ENABLE
-QUANTUM_LIB_SRC += analog.c
+ANALOG_DRIVER_REQUIRED = yes
+
SRC += opt_encoder.c
diff --git a/keyboards/ploopyco/trackball/rules.mk b/keyboards/ploopyco/trackball/rules.mk
index 0f5f3f648f..ce7c4f29c8 100644
--- a/keyboards/ploopyco/trackball/rules.mk
+++ b/keyboards/ploopyco/trackball/rules.mk
@@ -19,7 +19,8 @@ MOUSEKEY_ENABLE = yes # Mouse keys
ENCODER_ENABLE := no
OPTS_DEF += -DENCODER_ENABLE
-QUANTUM_LIB_SRC += analog.c
+ANALOG_DRIVER_REQUIRED = yes
+
SRC += opt_encoder.c
DEFAULT_FOLDER = ploopyco/trackball/rev1_005
diff --git a/keyboards/ploopyco/trackball_mini/rules.mk b/keyboards/ploopyco/trackball_mini/rules.mk
index d7016929c9..bcede0676c 100644
--- a/keyboards/ploopyco/trackball_mini/rules.mk
+++ b/keyboards/ploopyco/trackball_mini/rules.mk
@@ -16,7 +16,8 @@ MOUSEKEY_ENABLE = yes # Mouse keys
ENCODER_ENABLE := no
OPTS_DEF += -DENCODER_ENABLE
-QUANTUM_LIB_SRC += analog.c
+ANALOG_DRIVER_REQUIRED = yes
+
SRC += opt_encoder.c
DEFAULT_FOLDER = ploopyco/trackball_mini/rev1_001
diff --git a/keyboards/ploopyco/trackball_thumb/rules.mk b/keyboards/ploopyco/trackball_thumb/rules.mk
index 4a16c0abfb..6b82d7734b 100644
--- a/keyboards/ploopyco/trackball_thumb/rules.mk
+++ b/keyboards/ploopyco/trackball_thumb/rules.mk
@@ -3,7 +3,8 @@ F_CPU = 8000000
POINTING_DEVICE_DRIVER = pmw3360
-QUANTUM_LIB_SRC += analog.c
+ANALOG_DRIVER_REQUIRED = yes
+
SRC += opt_encoder.c
DEFAULT_FOLDER = ploopyco/trackball_thumb/rev1_001
diff --git a/keyboards/pluckey/keymaps/manna-harbour_miryoku/config.h b/keyboards/pluckey/keymaps/manna-harbour_miryoku/config.h
deleted file mode 100644
index 19976c2c2d..0000000000
--- a/keyboards/pluckey/keymaps/manna-harbour_miryoku/config.h
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright 2021 Manna Harbour
-// https://github.com/manna-harbour/miryoku
-
-// 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 XXX KC_NO
-
-#define LAYOUT_miryoku( \
- 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, \
- N30, N31, K32, K33, K34, K35, K36, K37, N38, N39 \
-) \
-LAYOUT( \
-XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, \
-XXX, K00, K01, K02, K03, K04, XXX, XXX, K05, K06, K07, K08, K09, XXX, \
-XXX, K10, K11, K12, K13, K14, XXX, XXX, K15, K16, K17, K18, K19, XXX, \
-XXX, K20, K21, K22, K23, K24, XXX, XXX, XXX, XXX, K25, K26, K27, K28, K29, XXX, \
- XXX, XXX, K32, K33, K34, K35, K36, K37, XXX, XXX \
-)
diff --git a/keyboards/pluckey/keymaps/manna-harbour_miryoku/keymap.c b/keyboards/pluckey/keymaps/manna-harbour_miryoku/keymap.c
deleted file mode 100644
index 3da5ed16ae..0000000000
--- a/keyboards/pluckey/keymaps/manna-harbour_miryoku/keymap.c
+++ /dev/null
@@ -1,4 +0,0 @@
-// Copyright 2021 Manna Harbour
-// https://github.com/manna-harbour/miryoku
-
-// 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/>.
diff --git a/keyboards/plywrks/ply8x/config.h b/keyboards/plywrks/ply8x/config.h
index 2180b9887f..cccedf8e23 100644
--- a/keyboards/plywrks/ply8x/config.h
+++ b/keyboards/plywrks/ply8x/config.h
@@ -4,7 +4,7 @@
#pragma once
/* RGB */
-#define WS2812_SPI SPID2
+#define WS2812_SPI_DRIVER SPID2
#define WS2812_SPI_MOSI_PAL_MODE 0
#define WS2812_SPI_SCK_PIN B13
#define WS2812_SPI_SCK_PAL_MODE 0
diff --git a/keyboards/preonic/keymaps/0xdec/keymap.c b/keyboards/preonic/keymaps/0xdec/keymap.c
index fafa5c4460..fad47842a5 100644
--- a/keyboards/preonic/keymaps/0xdec/keymap.c
+++ b/keyboards/preonic/keymaps/0xdec/keymap.c
@@ -81,13 +81,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
#ifdef AUDIO_ENABLE
-
-float tone_startup[][2] = {
- {NOTE_B5, 20},
- {NOTE_B6, 8},
- {NOTE_DS6, 20},
- {NOTE_B6, 8}
-};
float tone_colemak[][2] = SONG(COLEMAK_SOUND);
float tone_game[][2] = {
{NOTE_E6, 10} ,{NOTE_E6, 10} ,{NOTE_REST, 10} ,{NOTE_E6, 10} ,
@@ -95,26 +88,6 @@ float tone_game[][2] = {
{NOTE_G6, 10} ,{NOTE_REST, 30},
{NOTE_G5, 10} ,{NOTE_REST, 30}
};
-float tone_goodbye[][2] = SONG(GOODBYE_SOUND);
-float music_scale[][2] = SONG(MUSIC_SCALE_SOUND);
-
-void startup_user(void) {
- _delay_ms(20); // gets rid of tick
- PLAY_SONG(tone_startup);
-}
-void shutdown_user(void) {
- PLAY_SONG(tone_goodbye);
- _delay_ms(150);
- stop_all_notes();
-}
-
-void music_on_user(void) {
- music_scale_user();
-}
-void music_scale_user(void) {
- PLAY_SONG(music_scale);
-}
-
#endif
diff --git a/keyboards/preonic/keymaps/arkag/config.h b/keyboards/preonic/keymaps/arkag/config.h
deleted file mode 100644
index 1b42e6ef9e..0000000000
--- a/keyboards/preonic/keymaps/arkag/config.h
+++ /dev/null
@@ -1,30 +0,0 @@
-/* Copyright 2021 Alex Kagno
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
-*/
-
-#pragma once
-
-#ifdef AUDIO_ENABLE
-# define STARTUP_SONG SONG(STARTUP_SOUND)
-# define GOODBYE_SONG SONG(GOODBYE_SOUND)
-# define AUDIO_CLICKY
-# define AUDIO_CLICKY_FREQ_RANDOMNESS 1.0f
-# define MIDI_BASIC
-# define MUSIC_MASK keycode != KC_NO
-#endif
-
-// save me space!
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
diff --git a/keyboards/preonic/keymaps/arkag/keymap.c b/keyboards/preonic/keymaps/arkag/keymap.c
deleted file mode 100644
index e127711791..0000000000
--- a/keyboards/preonic/keymaps/arkag/keymap.c
+++ /dev/null
@@ -1,84 +0,0 @@
-/* Copyright 2021 Alex Kagno
- *
- * 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 "arkag.h"
-#include "muse.h"
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
- [_QWERTY] = LAYOUT_preonic_grid(
- KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, M_OS,
- KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,
- KC_TAB, 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_ENT,
- KC_LCTL, KC_LGUI, KC_LALT, MEDIA, SYMBOL, KC_SPC, QK_LEAD, ARROW, FUNCT, KC_RALT, XXXXXXX, HITBOX),
-
- [_SYMBOL] = LAYOUT_preonic_grid(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- KC_GRV, KC_LPRN, KC_RPRN, KC_PLUS, KC_UNDS, KC_CIRC, KC_AMPR, KC_7, KC_8, KC_9, _______, _______,
- KC_LCBR, KC_LBRC, KC_RBRC, KC_EQL, KC_MINS, KC_ASTR, KC_PIPE, KC_4, KC_5, KC_6, _______, KC_NUM,
- KC_RCBR, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_PDOT, KC_1, KC_2, KC_3, KC_BSLS, KC_PENT,
- M_DASH, KC_TILD, _______, KEEB, _______, _______, _______, KC_0, KC_PSLS, KC_PMNS, KC_PPLS, KC_PAST),
-
- [_MEDIA] = LAYOUT_preonic_grid(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, KC_VOLU, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, KC_MPRV, KC_VOLD, KC_MNXT, _______, _______, _______, _______, _______, _______, _______,
- KC_MPLY, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- KC_MUTE, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______),
-
- [_ARROW] = LAYOUT_preonic_grid(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, KC_UP, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______),
-
- [_HITBOX] = LAYOUT_preonic_grid(
- XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
- KC_ESC, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_U, KC_I, KC_O, KC_P, XXXXXXX,
- XXXXXXX, XXXXXXX, KC_A, KC_S, KC_D, XXXXXXX, XXXXXXX, KC_J, KC_K, KC_L, KC_SCLN, XXXXXXX,
- XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_ENT,
- XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_W, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, HITBOX),
-
- [_FUNCT] = LAYOUT_preonic_grid(
- _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, _______,
- _______, _______, _______, KC_END, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, KC_HOME, _______, _______, _______, _______, _______,
- _______, _______, _______, KC_CALC, _______, _______, _______, _______, _______, _______, _______, KC_CAPS,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______),
-
- [_KEEB] = LAYOUT_preonic_grid(
- CK_TOGG, AU_TOGG, MU_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, HITBOX,
- M_USSR, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, BL_TOGG, BL_STEP, BL_UP, BL_DOWN, BL_BRTG, _______, _______, _______, _______, _______, _______,
- RGB_M_P, RGB_TOG, RGB_MOD, RGB_VAI, RGB_VAD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, _______, _______, _______,
- QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______),
-
-};
-
-#ifdef AUDIO_ENABLE
-bool music_mask_user(uint16_t keycode) {
- switch (keycode) {
- case MU_TOGG:
- case SYMBOL:
- case KEEB:
- return false;
- default:
- return true;
- }
-}
-#endif
diff --git a/keyboards/preonic/keymaps/arkag/readme.md b/keyboards/preonic/keymaps/arkag/readme.md
deleted file mode 100644
index e911968dd9..0000000000
--- a/keyboards/preonic/keymaps/arkag/readme.md
+++ /dev/null
@@ -1 +0,0 @@
-# The default Preonic layout - largely based on the Planck's \ No newline at end of file
diff --git a/keyboards/preonic/keymaps/arkag/rules.mk b/keyboards/preonic/keymaps/arkag/rules.mk
deleted file mode 100644
index 5b87801fca..0000000000
--- a/keyboards/preonic/keymaps/arkag/rules.mk
+++ /dev/null
@@ -1,17 +0,0 @@
-BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite
-MOUSEKEY_ENABLE = no
-STENO_ENABLE = no
-EXTRAKEY_ENABLE = yes
-CONSOLE_ENABLE = no
-COMMAND_ENABLE = no
-SLEEP_LED_ENABLE = yes
-NKRO_ENABLE = yes
-BACKLIGHT_ENABLE = no
-AUDIO_ENABLE = yes
-RGBLIGHT_ENABLE = yes
-TAP_DANCE_ENABLE = no
-UNICODE_ENABLE = yes
-LEADER_ENABLE = yes
-
-# from default
-SRC += muse.c
diff --git a/keyboards/preonic/keymaps/badger/keymap.c b/keyboards/preonic/keymaps/badger/keymap.c
deleted file mode 100644
index 553b84ad34..0000000000
--- a/keyboards/preonic/keymaps/badger/keymap.c
+++ /dev/null
@@ -1,74 +0,0 @@
-/*
-Copyright 2020 Dan White <opensource@bluetufa.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/>.
-*/
-
-// if not REV3, just compile the default keymaps
-#ifndef KEYBOARD_preonic_rev3
-#include "../default/keymap.c"
-#else
-
-#include "ortho.h"
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [_QWERTY_MAC_ORTHO] = LAYOUT_preonic_2x2u(
- KC_GRV, 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_BSLS,
- MOMAC, 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_ENT,
- KC_LCTL, KC_LALT, KC_LGUI, RAISE, P_ADJ, KC_SPC, LOWER, KC_RGUI, KC_RALT, MAC_POP),
-
- [_MOVE_MAC_ORTHO] = LAYOUT_preonic_2x2u(
- MAC_FRC, MM_LEFT, MM_RGHT, IJ_TOP, IJ_BOTT, _______, _______, IJ_UP, IJ_DOWN, IJ_BACK, IJ_FWD, KC_BSPC,
- KC_BACK, IJ_STEP, IJ_INTO, IJ_OUT, IJ_RUN, IJ_STOP, _______, WD_BACK, KC_HOME, KC_END, WD_FRWD, KC_NEXT,
- _______, MM_LH, MM_MAX, MM_RH, IJ_FIND, IJ_IMPS, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, CM_RIGHT, CM_DOWN,
- _______, MM_UH, MM_BH, MAC_CPY, MAC_PST, IJ_IMPH, _______, IJ_REN, IJ_IMPL, IJ_DECL, IJ_USAG, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______),
-
- [_QWERTY_LINUX_ORTHO] = LAYOUT_preonic_2x2u(
- KC_GRV, 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_BSLS,
- MOLNX, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, 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_LCTL, KC_LGUI, KC_LALT, RAISE, P_ADJ, KC_SPC, LOWER, KC_RALT, KC_RGUI, OS_POP),
-
- [_MOVE_LINUX_ORTHO] = LAYOUT_preonic_2x2u(
- KC_ESC, VD_1, VD_2, VD_3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_DEL,
- _______, WM_VD1, WM_UH, WM_VD2, KC_MAC1, KC_MSTP, KC_MPLY, KC_PGUP, KC_HOME, KC_END, KC_PGDN, KC_INS,
- _______, WM_LH, WM_MAX, WM_RH, KC_MAC2, KC_PSCR, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, CS_RIGHT, CS_DOWN,
- _______, WM_VD3, WM_BH, OS_COPY, OS_PAST, KC_MPRV, KC_MNXT, KC_MUTE, KC_WBAK, KC_WFWD, KC_WSCH, _______,
- _______, KC_LCTL, KC_LALT, KC_LGUI, _______, _______, _______, _______, _______, _______),
-
- [_RAISE] = LAYOUT_preonic_2x2u(
- KC_TILD, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_DEL,
- _______, KC_F11, KC_F12, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE,
- _______, KC_AGIN, KC_STOP, KC_MENU, KC_FIND, KC_MPLY, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_COLN, KC_DQUO,
- _______, KC_UNDO, KC_CUT, OS_COPY, OS_PAST, KC_MPRV, KC_MNXT, KC_MUTE, KC_LT, KC_GT, KC_QUES, KC_TRNS,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______),
-
- [_LOWER] = LAYOUT_preonic_2x2u(
- KC_GRV, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC,
- _______, KC_7, KC_8, KC_9, KC_PMNS, KC_VOLD, KC_VOLU, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS,
- _______, KC_4, KC_5, KC_6, KC_PPLS, KC_PSCR, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_SCLN, KC_QUOT,
- _______, KC_1, KC_2, KC_3, KC_PAST, KC_NO, KC_NO, KC_WHOM, KC_WBAK, KC_WFWD, KC_WSCH, _______,
- _______, KC_0, KC_DOT, KC_ENT, _______, _______, _______, _______, _______, _______),
-
- [_ADJUST_ORTHO] = LAYOUT_preonic_2x2u(
- KC_ESC, AU_ON, AU_OFF, CK_TOGG, CK_UP, CK_DOWN, CK_RST, MU_ON, MU_OFF, MU_TOGG, MU_NEXT, KC_DEL,
- _______, NK_ON, NK_OFF, EE_CLR, QK_BOOT, KC_MSTP, KC_WH_L, KC_WH_D, KC_WH_U, KC_WH_R, KC_BTN2, KC_INS,
- _______, GE_SWAP, GE_NORM, DB_TOGG, AG_SWAP, AG_NORM, KC_MS_L, KC_MS_D, KC_MS_U, KC_MS_R, KC_BTN1, _______,
- _______, KC_LYRC, KC_FIRST, KC_CAPS, KC_NO, KC_MPRV, KC_MNXT, KC_MUTE, KC_ACL0, KC_ACL1, KC_ACL2, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______)
-};
-
-#endif
diff --git a/keyboards/preonic/keymaps/badger/readme.md b/keyboards/preonic/keymaps/badger/readme.md
deleted file mode 100644
index 5e16979605..0000000000
--- a/keyboards/preonic/keymaps/badger/readme.md
+++ /dev/null
@@ -1,21 +0,0 @@
-# A QWERTY-centric preonic layout by [BlueTufa](https://github.com/BlueTufa)
-
-## Layouts
-
-### QWERTY
-Standard QWERTY layer, but ESC maps to MOVE layer when held down. Dedicated modifier for Adjust layer and a dedicated OS action key.
-### RAISE layer
-Access to function keys and shifted characters not on Preonic layout. Effort is taken to keep Function keys aligned with corresponding number. Some OS action keys are available in this layer.
-
-### LOWER layer
-Numpad behavior and access to characters not present on Preonic layout.
-
-### MOVE layer
-OS-specific convenience shortcuts. Macros are used to make it easier to adapt these to other operating systems.
-Window move and resize, and option to move to a specific virtual desktop.
-
-### ADJUST layer
-The first row is focused on audio config.
-Take advantage of the mouse movement keys, as well as toggling common keyboard config settings.
-Flash settings are accessed here as well.
-
diff --git a/keyboards/preonic/keymaps/bghull/keymap.c b/keyboards/preonic/keymaps/bghull/keymap.c
index eba6cd4f85..87cb9c6c69 100644
--- a/keyboards/preonic/keymaps/bghull/keymap.c
+++ b/keyboards/preonic/keymaps/bghull/keymap.c
@@ -15,7 +15,6 @@
*/
#include QMK_KEYBOARD_H
-#include "keymap_steno.h"
enum preonic_layers {
_QWERTY,
diff --git a/keyboards/preonic/keymaps/bucktooth/keymap.c b/keyboards/preonic/keymaps/bucktooth/keymap.c
index 593083f201..09602a1673 100644
--- a/keyboards/preonic/keymaps/bucktooth/keymap.c
+++ b/keyboards/preonic/keymaps/bucktooth/keymap.c
@@ -69,47 +69,3 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
)
};
-
-#ifdef AUDIO_ENABLE
-float tone_startup[][2] = {
- {NOTE_C5, 8},
- {NOTE_E6, 4},
- {NOTE_D6, 16},
- {NOTE_G6, 8}
-};
-
-float tone_goodbye[][2] = SONG(GOODBYE_SOUND);
-
-float music_scale[][2] = SONG(MUSIC_SCALE_SOUND);
-#endif
-
-void matrix_init_user(void) {
- #ifdef AUDIO_ENABLE
- startup_user();
- #endif
-}
-
-#ifdef AUDIO_ENABLE
-
-void startup_user(void)
-{
- PLAY_SONG(tone_startup);
-}
-
-void shutdown_user(void)
-{
- PLAY_SONG(tone_goodbye);
- stop_all_notes();
-}
-
-void music_on_user(void)
-{
- music_scale_user();
-}
-
-void music_scale_user(void)
-{
- PLAY_SONG(music_scale);
-}
-
-#endif
diff --git a/keyboards/preonic/keymaps/dudeofawesome/config.h b/keyboards/preonic/keymaps/dudeofawesome/config.h
deleted file mode 100644
index 354e9c6021..0000000000
--- a/keyboards/preonic/keymaps/dudeofawesome/config.h
+++ /dev/null
@@ -1,43 +0,0 @@
-#ifndef CONFIG_USER_H
-#define CONFIG_USER_H
-
-#include "../../config.h"
-#include "dudeofawesome.h"
-
-#define TAPPING_TOGGLE 2
-
-#ifdef AUDIO_ENABLE
- #define STARTUP_SONG SONG(PLANCK_SOUND)
- // #define STARTUP_SONG SONG(NO_SOUND)
-
- #define DEFAULT_LAYER_SONGS { SONG(QWERTY_SOUND), \
- SONG(WORKMAN_SOUND), \
- SONG(COLEMAK_SOUND), \
- SONG(DVORAK_SOUND) \
- }
-#endif
-
-#define MUSIC_MASK (keycode != KC_NO)
-
-/*
- * MIDI options
- */
-
-/* enable basic MIDI features:
- - MIDI notes can be sent when in Music mode is on
-*/
-
-#define MIDI_BASIC
-
-/* enable advanced MIDI features:
- - MIDI notes can be added to the keymap
- - Octave shift and transpose
- - Virtual sustain, portamento, and modulation wheel
- - etc.
-*/
-//#define MIDI_ADVANCED
-
-/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
-//#define MIDI_TONE_KEYCODE_OCTAVES 2
-
-#endif
diff --git a/keyboards/preonic/keymaps/dudeofawesome/keymap.c b/keyboards/preonic/keymaps/dudeofawesome/keymap.c
deleted file mode 100644
index 8b09f87b43..0000000000
--- a/keyboards/preonic/keymaps/dudeofawesome/keymap.c
+++ /dev/null
@@ -1,292 +0,0 @@
-/* Copyright 2015-2017 Jack Humbert
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-#include QMK_KEYBOARD_H
-
-enum preonic_layers {
- _QWERTY,
- _WORKMAN,
- _COLEMAK,
- _DVORAK,
- _LOWER,
- _RAISE,
- _ADJUST,
- _NUMPAD
-};
-
-enum preonic_keycodes {
- QWERTY = SAFE_RANGE,
- WORKMAN,
- COLEMAK,
- DVORAK,
- LOWER,
- RAISE,
- BACKLIT
-};
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
-/* Qwerty
- * ,-----------------------------------------------------------------------------------.
- * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Del |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | Tab | Q | W | E | R | T | Y | U | I | O | P | Bksp |
- * |------+------+------+------+------+-------------+------+------+------+------+------|
- * | Esc | A | S | D | F | G | H | J | K | L | ; | ' |
- * |------+------+------+------+------+------|------+------+------+------+------+------|
- * | Shift| Z | X | C | V | B | N | M | , | . | / |Enter |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | Num | Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right |
- * `-----------------------------------------------------------------------------------'
- */
-[_QWERTY] = LAYOUT_preonic_1x2uC(
- KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL,
- 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_ESC, 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, RSFT_T(KC_ENT),
- TT(_NUMPAD), KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT
-),
-
-/* Workman
- * ,-----------------------------------------------------------------------------------.
- * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Del |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | Tab | Q | D | R | W | B | J | F | U | P | ; | Bksp |
- * |------+------+------+------+------+-------------+------+------+------+------+------|
- * | Esc | A | S | H | T | G | Y | N | E | O | I | ' |
- * |------+------+------+------+------+------|------+------+------+------+------+------|
- * | Shift| Z | X | M | C | V | K | L | , | . | / | Enter|
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | Num | Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right |
- * `-----------------------------------------------------------------------------------'
- */
-[_WORKMAN] = LAYOUT_preonic_1x2uC(
- KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL,
- KC_TAB, KC_Q, KC_D, KC_R, KC_W, KC_B, KC_J, KC_F, KC_U, KC_P, KC_SCLN, KC_BSPC,
- KC_ESC, KC_A, KC_S, KC_H, KC_T, KC_G, KC_Y, KC_N, KC_E, KC_O, KC_I, KC_QUOT,
- KC_LSFT, KC_Z, KC_X, KC_M, KC_C, KC_V, KC_K, KC_L, KC_COMM, KC_DOT, KC_SLSH, RSFT_T(KC_ENT),
- TT(_NUMPAD), KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT
-),
-
-/* Colemak
- * ,-----------------------------------------------------------------------------------.
- * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Del |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | Tab | Q | W | F | P | G | J | L | U | Y | ; | Bksp |
- * |------+------+------+------+------+-------------+------+------+------+------+------|
- * | Esc | A | R | S | T | D | H | N | E | I | O | ' |
- * |------+------+------+------+------+------|------+------+------+------+------+------|
- * | Shift| Z | X | C | V | B | K | M | , | . | / |Enter |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | Num | Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right |
- * `-----------------------------------------------------------------------------------'
- */
-[_COLEMAK] = LAYOUT_preonic_1x2uC(
- KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL,
- KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC,
- KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT,
- KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, RSFT_T(KC_ENT),
- TT(_NUMPAD), KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT
-),
-
-/* Dvorak
- * ,-----------------------------------------------------------------------------------.
- * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Del |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | Tab | ' | , | . | P | Y | F | G | C | R | L | Bksp |
- * |------+------+------+------+------+-------------+------+------+------+------+------|
- * | Esc | A | O | E | U | I | D | H | T | N | S | / |
- * |------+------+------+------+------+------|------+------+------+------+------+------|
- * | Shift| ; | Q | J | K | X | B | M | W | V | Z |Enter |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | Num | Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right |
- * `-----------------------------------------------------------------------------------'
- */
-[_DVORAK] = LAYOUT_preonic_1x2uC(
- KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL,
- KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSPC,
- KC_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH,
- KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, RSFT_T(KC_ENT),
- TT(_NUMPAD), KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT
-),
-
-/* Lower
- * ,-----------------------------------------------------------------------------------.
- * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | |
- * |------+------+------+------+------+-------------+------+------+------+------+------|
- * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | |
- * |------+------+------+------+------+-------------+------+------+------+------+------|
- * | Del | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | |
- * |------+------+------+------+------+------|------+------+------+------+------+------|
- * | | F7 | F8 | F9 | F10 | F11 | F12 |ISO ~ |ISO | | | | |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | | | | | | | | Play | Vol- | Vol+ | Next |
- * `-----------------------------------------------------------------------------------'
- */
-[_LOWER] = LAYOUT_preonic_1x2uC(
- KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, _______,
- KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, _______,
- KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE,
- _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,S(KC_NUHS),S(KC_NUBS),KC_HOME, KC_END, _______,
- _______, _______, _______, _______, _______, _______, _______, KC_MPLY, KC_VOLD, KC_VOLU, KC_MNXT
-),
-
-/* Raise
- * ,-----------------------------------------------------------------------------------.
- * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | |
- * |------+------+------+------+------+-------------+------+------+------+------+------|
- * | Del | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ |
- * |------+------+------+------+------+------|------+------+------+------+------+------|
- * | | F7 | F8 | F9 | F10 | F11 | F12 |ISO # |ISO / | | | |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | | | | | | | | Play | Vol- | Vol+ | Next |
- * `-----------------------------------------------------------------------------------'
- */
-[_RAISE] = LAYOUT_preonic_1x2uC(
- KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, _______,
- KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, _______,
- KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS,
- _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NUHS, KC_NUBS, KC_PGUP, KC_PGDN, _______,
- _______, _______, _______, _______, _______, _______, _______, KC_MPLY, KC_VOLD, KC_VOLU, KC_MNXT
-),
-
-/* Adjust (Lower + Raise)
- * ,-----------------------------------------------------------------------------------.
- * | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | | Reset| | | | | | | | | | Del |
- * |------+------+------+------+------+-------------+------+------+------+------+------|
- * |CPSLCK| | |Aud on|AudOff|AGnorm|AGswap|Qwerty|Workmn|Dvorak|Colemk| |
- * |------+------+------+------+------+------|------+------+------+------+------+------|
- * | |Voice-|Voice+|Mus on|MusOff|MidiOn|MidOff| | | | | |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | | | | | | | | | | | |
- * `-----------------------------------------------------------------------------------'
- */
-[_ADJUST] = LAYOUT_preonic_1x2uC(
- KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,
- _______, QK_BOOT, DB_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL,
- KC_CAPS, _______, MU_NEXT, AU_ON, AU_OFF, AG_NORM, AG_SWAP, QWERTY, WORKMAN, DVORAK, COLEMAK, _______,
- _______, AU_PREV, AU_NEXT, MU_ON, MU_OFF, MI_ON, MI_OFF, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
-),
-
-/* Numpad
- * ,-----------------------------------------------------------------------------------.
- * | | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | / | * | - | |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | | ✗ | Home | Up | End | PgUp | ✗ | 7 | 8 | 9 | + | |
- * |------+------+------+------+------+-------------+------+------+------+------+------|
- * | | ✗ | Left | Down | Right| PgDn | ✗ | 4 | 5 | 6 | + | ✗ |
- * |------+------+------+------+------+------|------+------+------+------+------+------|
- * | | / | * | - | + | Enter| ✗ | 1 | 2 | 3 | Enter| Enter|
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | | | | | ✗ | | 0 | 0 | . | Enter| = |
- * `-----------------------------------------------------------------------------------'
- */
-[_NUMPAD] = LAYOUT_preonic_1x2uC(
- _______, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_PSLS, KC_PAST, KC_PMNS, _______,
- _______, KC_NO, KC_HOME, KC_UP, KC_END, KC_PGUP, KC_NO, KC_P7, KC_P8, KC_P9, KC_PPLS, _______,
- _______, KC_NO, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, KC_NO, KC_P4, KC_P5, KC_P6, KC_PPLS, KC_NO,
- _______, KC_PSLS, KC_PAST, KC_PMNS, KC_PPLS, KC_PENT, KC_NO, KC_P1, KC_P2, KC_P3, KC_PENT, KC_PENT,
- _______, _______, _______, _______, KC_NO, _______, KC_P0, KC_P0, KC_PDOT, KC_PENT, KC_PEQL
-)
-
-
-};
-
-bool process_record_user(uint16_t keycode, keyrecord_t *record) {
- switch (keycode) {
- case QWERTY:
- if (record->event.pressed) {
- set_single_persistent_default_layer(_QWERTY);
- }
- return false;
- case WORKMAN:
- if (record->event.pressed) {
- set_single_persistent_default_layer(_WORKMAN);
- }
- return false;
- case COLEMAK:
- if (record->event.pressed) {
- set_single_persistent_default_layer(_COLEMAK);
- }
- return false;
- case DVORAK:
- if (record->event.pressed) {
- set_single_persistent_default_layer(_DVORAK);
- }
- return false;
- case LOWER:
- if (record->event.pressed) {
- layer_on(_LOWER);
- update_tri_layer(_LOWER, _RAISE, _ADJUST);
- } else {
- layer_off(_LOWER);
- update_tri_layer(_LOWER, _RAISE, _ADJUST);
- }
- return false;
- case RAISE:
- if (record->event.pressed) {
- layer_on(_RAISE);
- update_tri_layer(_LOWER, _RAISE, _ADJUST);
- } else {
- layer_off(_RAISE);
- update_tri_layer(_LOWER, _RAISE, _ADJUST);
- }
- return false;
- case BACKLIT:
- if (record->event.pressed) {
- register_code(KC_RSFT);
- #ifdef BACKLIGHT_ENABLE
- backlight_step();
- #endif
- #ifdef __AVR__
- writePinLow(E6);
- #endif
- } else {
- unregister_code(KC_RSFT);
- #ifdef __AVR__
- writePinHigh(E6);
- #endif
- }
- return false;
- }
- return true;
-};
-
-bool numpadActive = false;
-
-float tone_numpad_on[][2] = SONG(NUMPAD_ON_SOUND);
-
-void matrix_scan_user (void) {
- uint8_t layer = get_highest_layer(layer_state);
-
- switch (layer) {
- case _NUMPAD:
- if (!numpadActive) {
- numpadActive = true;
- PLAY_SONG(tone_numpad_on);
- }
- break;
- default:
- if (numpadActive) {
- numpadActive = false;
- }
- }
-};
diff --git a/keyboards/preonic/keymaps/dudeofawesome/readme.md b/keyboards/preonic/keymaps/dudeofawesome/readme.md
deleted file mode 100644
index a5d89fc828..0000000000
--- a/keyboards/preonic/keymaps/dudeofawesome/readme.md
+++ /dev/null
@@ -1,22 +0,0 @@
-# DudeOfAwesome's Preonic layout
-
-![Preonic Layout](https://i.imgur.com/EC42Pnw.png)
-
-## Features
-
-- Base Layers
- - QWERTY
- - Workman
- - Dvorak
- - Colemak
-- Numpad layer
- ![numpad layer](https://i.imgur.com/IH8sWmQ.png)
-- Audio
-
-## Building and flashing
-
-1. Put your board in DFU mode with either the button on the bottom, or with a software key in your current firmware
-1. Flash:
- ```bash
- $ make preonic/rev2:dudeofawesome:dfu
- ```
diff --git a/keyboards/preonic/keymaps/dudeofawesome/rules.mk b/keyboards/preonic/keymaps/dudeofawesome/rules.mk
deleted file mode 100644
index 607192459a..0000000000
--- a/keyboards/preonic/keymaps/dudeofawesome/rules.mk
+++ /dev/null
@@ -1,5 +0,0 @@
-BOOTMAGIC_ENABLE = no # Enable Bootmagic Lite
-MIDI_ENABLE = no # MIDI controls
-AUDIO_ENABLE = yes # Audio output on port C6
-UNICODE_ENABLE = no # Unicode
-RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight.
diff --git a/keyboards/preonic/keymaps/jacwib/keymap.c b/keyboards/preonic/keymaps/jacwib/keymap.c
index 9de460c2a4..694c44b3c7 100644
--- a/keyboards/preonic/keymaps/jacwib/keymap.c
+++ b/keyboards/preonic/keymaps/jacwib/keymap.c
@@ -174,19 +174,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
};
-#ifdef AUDIO_ENABLE
-float tone_startup[][2] = {
- {NOTE_D5, 8},
- {NOTE_E6, 8},
- {NOTE_D6, 8},
- {NOTE_E5, 8}
-};
-
-float tone_goodbye[][2] = SONG(GOODBYE_SOUND);
-
-float music_scale[][2] = SONG(MUSIC_SCALE_SOUND);
-#endif
-
void persistent_default_layer_set(uint16_t default_layer) {
eeconfig_update_default_layer(default_layer);
default_layer_set(default_layer);
@@ -249,36 +236,3 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
}
return true;
};
-
-void matrix_init_user(void) {
- #ifdef AUDIO_ENABLE
- startup_user();
- #endif
-}
-
-#ifdef AUDIO_ENABLE
-
-void startup_user(void)
-{
- _delay_ms(20); // gets rid of tick
- PLAY_SONG(tone_startup);
-}
-
-void shutdown_user(void)
-{
- PLAY_SONG(tone_goodbye);
- _delay_ms(150);
- stop_all_notes();
-}
-
-void music_on_user(void)
-{
- music_scale_user();
-}
-
-void music_scale_user(void)
-{
- PLAY_SONG(music_scale);
-}
-
-#endif
diff --git a/keyboards/preonic/keymaps/kuatsure/config.h b/keyboards/preonic/keymaps/kuatsure/config.h
deleted file mode 100644
index e5b55d131d..0000000000
--- a/keyboards/preonic/keymaps/kuatsure/config.h
+++ /dev/null
@@ -1,39 +0,0 @@
-#ifndef CONFIG_USER_H
-#define CONFIG_USER_H
-
-
-#ifdef AUDIO_ENABLE
- #define STARTUP_SONG SONG(PREONIC_SOUND)
- // #define STARTUP_SONG SONG(NO_SOUND)
-
- #define GAME_SOUND VICTORY_FANFARE_SHORT
-
- #define DEFAULT_LAYER_SONGS { SONG(QWERTY_SOUND), \
- SONG(GAME_SOUND) \
- }
-#endif
-
-#define MUSIC_MASK (keycode != KC_NO)
-
-/*
- * MIDI options
- */
-
-/* enable basic MIDI features:
- - MIDI notes can be sent when in Music mode is on
-*/
-
-#define MIDI_BASIC
-
-/* enable advanced MIDI features:
- - MIDI notes can be added to the keymap
- - Octave shift and transpose
- - Virtual sustain, portamento, and modulation wheel
- - etc.
-*/
-//#define MIDI_ADVANCED
-
-/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
-//#define MIDI_TONE_KEYCODE_OCTAVES 2
-
-#endif
diff --git a/keyboards/preonic/keymaps/kuatsure/keymap.c b/keyboards/preonic/keymaps/kuatsure/keymap.c
deleted file mode 100644
index 86795cba03..0000000000
--- a/keyboards/preonic/keymaps/kuatsure/keymap.c
+++ /dev/null
@@ -1,190 +0,0 @@
-/* Copyright 2015-2017 Jack Humbert
- *
- * 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 "kuatsure.h"
-
-#define LAYOUT_preonic_grid_wrapper(...) LAYOUT_preonic_grid(__VA_ARGS__)
-
-enum preonic_layers {
- _QWERTY,
- _GAME,
- _LOWER,
- _RAISE,
- _ADJUST,
-};
-
-enum preonic_keycodes {
- QWERTY = USER_SAFE_RANGE,
- GAME,
- LOWER,
- RAISE,
-};
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
-/* Qwerty
- * ,-----------------------------------------------------------------------------------.
- * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | Tab/M| Q | W | E | R | T | Y | U | I | O | P | \ |
- * |------+------+------+------+------+-------------+------+------+------+------+------|
- * | Esc/C| A | S | D | F | G | H | J | K | L | ; | ' |
- * |------+------+------+------+------+------|------+------+------+------+------+------|
- * | Shift| Z | X | C | V | B | N | M | , | . | / |Enter |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * |Leader| Game | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right |
- * `-----------------------------------------------------------------------------------'
- */
-[_QWERTY] = LAYOUT_preonic_grid_wrapper(
- KC_GRV, _________________NUMBER_L1_________________, _________________NUMBER_R1_________________, KC_BSPC,
- KT_MTAB, _________________QWERTY_L1_________________, _________________QWERTY_R1_________________, KC_BSLS,
- KT_CESC, _________________QWERTY_L2_________________, _________________QWERTY_R2_________________, KC_QUOT,
- KC_LSFT, _________________QWERTY_L3_________________, _________________QWERTY_R3_________________, KC_ENT,
- QK_LEAD, GAME, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT
-),
-
-/* Game
- *
- * Mostly transparent, but wanted to disable gui key.
- * Also give a key to get back to qwerty layout.
- *
- * ,-----------------------------------------------------------------------------------.
- * | | | | | | | | | | | | |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | | | | | | | | | | | | |
- * |------+------+------+------+------+-------------+------+------+------+------+------|
- * | | | | | | | | | | | | |
- * |------+------+------+------+------+------|------+------+------+------+------+------|
- * | | | | | | | | | | | | |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | |Qwerty| | Spc | | | | | | | |
- * `-----------------------------------------------------------------------------------'
- */
-[_GAME] = LAYOUT_preonic_grid_wrapper(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, QWERTY, _______, KC_SPC, _______, _______, _______, _______, _______, _______, _______, _______
-),
-
-/* Lower
- * ,-----------------------------------------------------------------------------------.
- * | E`~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | |
- * |------+------+------+------+------+-------------+------+------+------+------+------|
- * | | | | Up | | ` | < | { | } | _ | | | |
- * |------+------+------+------+------+-------------+------+------+------+------+------|
- * | | Del | Left | Down | Right| ~ | = | ( | ) | + | : | " |
- * |------+------+------+------+------+------|------+------+------+------+------+------|
- * | | Vol- | Prev | Play | Next | Vol+ | - | [ | ] | > | ? | |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | | Mute | | | | | | Home | PgDn | PgUp | End |
- * `-----------------------------------------------------------------------------------'
- */
-[_LOWER] = LAYOUT_preonic_grid_wrapper(
- QK_GESC, _________________SYMBOL_L1_________________, _________________SYMBOL_R1_________________, _______,
- _______, _______, _______, KC_UP, _______, KC_GRV, _______, ____CRBRACES____, KC_UNDS, _______, KC_PIPE,
- _______, KC_DEL, KC_LEFT, KC_DOWN, KC_RIGHT, KC_TILD, KC_EQL, _____PARENS_____, KC_PLUS, KC_COLN, KC_DQT ,
- _______, KC_VOLD, KC_MRWD, KC_MPLY, KC_MFFD, KC_VOLU, KC_MINS, ___SQBRACKETS___, _______, KC_QUES, _______,
- _______, KC_MUTE, _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_PGUP, KC_END
-),
-
-/* Raise
- * ,-----------------------------------------------------------------------------------.
- * | | | | | | | | | | | | |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | | F9 | F10 | F11 | F12 | | * | 7 | 8 | 9 | 0 | |
- * |------+------+------+------+------+-------------+------+------+------+------+------|
- * | | F5 | F6 | F7 | F8 | | = | 4 | 5 | 6 | + | |
- * |------+------+------+------+------+------|------+------+------+------+------+------|
- * | | F1 | F2 | F3 | F4 | | - | 1 | 2 | 3 | / | |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | | | | | | | | 0 | 0 | | |
- * `-----------------------------------------------------------------------------------'
- */
-[_RAISE] = LAYOUT_preonic_grid_wrapper(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, ____________FUNCTION_3____________, _______, KC_ASTR, KC_7, KC_8, KC_9, KC_0, _______,
- _______, ____________FUNCTION_2____________, _______, KC_EQL, KC_4, KC_5, KC_6, KC_PLUS, _______,
- _______, ____________FUNCTION_1____________, _______, KC_MINS, KC_1, KC_2, KC_3, KC_SLASH, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, KC_0, KC_0, _______, _______
-),
-
-/* Adjust (Lower + Raise)
- * ,-----------------------------------------------------------------------------------.
- * | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | | MAKE | FLSH | | | | | | | | | Del |
- * |------+------+------+------+------+-------------+------+------+------+------+------|
- * | | Boot | Debug| | |Aud on|AudOff| | | | | |
- * |------+------+------+------+------+------|------+------+------+------+------+------|
- * | | VRSN | | |MusMod|Mus on|MusOff| | | | | |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | | | | | | | |Qwerty| Game | | |
- * `-----------------------------------------------------------------------------------'
- */
-[_ADJUST] = LAYOUT_preonic_grid_wrapper(
- ____________FUNCTION_1____________, ____________FUNCTION_2____________, ____________FUNCTION_3____________,
- _______, KB_MAKE, KB_FLSH, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL,
- _______, QK_BOOT, DB_TOGG, _______, _______, AU_ON, AU_OFF, _______, _______, _______, _______, _______,
- _______, KB_VRSN, _______, _______, MU_NEXT, MU_ON, MU_OFF, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, QWERTY, GAME, _______, _______
-),
-
-};
-
-bool process_record_keymap(uint16_t keycode, keyrecord_t *record) {
- switch (keycode) {
- case QWERTY:
- if (record->event.pressed) {
- set_single_persistent_default_layer(_QWERTY);
- }
- return false;
- break;
-
- case GAME:
- if (record->event.pressed) {
- set_single_persistent_default_layer(_GAME);
- }
- return false;
- break;
-
- case LOWER:
- if (record->event.pressed) {
- layer_on(_LOWER);
- update_tri_layer(_LOWER, _RAISE, _ADJUST);
- } else {
- layer_off(_LOWER);
- update_tri_layer(_LOWER, _RAISE, _ADJUST);
- }
- return false;
- break;
-
- case RAISE:
- if (record->event.pressed) {
- layer_on(_RAISE);
- update_tri_layer(_LOWER, _RAISE, _ADJUST);
- } else {
- layer_off(_RAISE);
- update_tri_layer(_LOWER, _RAISE, _ADJUST);
- }
- return false;
- break;
-
- }
- return true;
-};
diff --git a/keyboards/preonic/keymaps/kuatsure/readme.md b/keyboards/preonic/keymaps/kuatsure/readme.md
deleted file mode 100644
index 64cf5ae28e..0000000000
--- a/keyboards/preonic/keymaps/kuatsure/readme.md
+++ /dev/null
@@ -1 +0,0 @@
-# The kuatsure Preonic layout - largely based on the Preonic's & Keyboard Paradise V60's layout
diff --git a/keyboards/preonic/keymaps/kuatsure/rules.mk b/keyboards/preonic/keymaps/kuatsure/rules.mk
deleted file mode 100644
index 9369f99a9e..0000000000
--- a/keyboards/preonic/keymaps/kuatsure/rules.mk
+++ /dev/null
@@ -1,2 +0,0 @@
-BACKLIGHT_ENABLE = no
-LEADER_ENABLE = yes
diff --git a/keyboards/preonic/keymaps/mguterl/config.h b/keyboards/preonic/keymaps/mguterl/config.h
deleted file mode 100644
index 37858350a8..0000000000
--- a/keyboards/preonic/keymaps/mguterl/config.h
+++ /dev/null
@@ -1,34 +0,0 @@
-#pragma once
-
-#ifdef AUDIO_ENABLE
- #define STARTUP_SONG SONG(PREONIC_SOUND)
- // #define STARTUP_SONG SONG(NO_SOUND)
-
- #define DEFAULT_LAYER_SONGS { SONG(QWERTY_SOUND), \
- SONG(COLEMAK_SOUND), \
- SONG(DVORAK_SOUND) \
- }
-#endif
-
-#define MUSIC_MASK (keycode != KC_NO)
-
-/*
- * MIDI options
- */
-
-/* enable basic MIDI features:
- - MIDI notes can be sent when in Music mode is on
-*/
-
-#define MIDI_BASIC
-
-/* enable advanced MIDI features:
- - MIDI notes can be added to the keymap
- - Octave shift and transpose
- - Virtual sustain, portamento, and modulation wheel
- - etc.
-*/
-//#define MIDI_ADVANCED
-
-/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
-//#define MIDI_TONE_KEYCODE_OCTAVES 2
diff --git a/keyboards/preonic/keymaps/mguterl/keymap.c b/keyboards/preonic/keymaps/mguterl/keymap.c
deleted file mode 100644
index ecf65b0497..0000000000
--- a/keyboards/preonic/keymaps/mguterl/keymap.c
+++ /dev/null
@@ -1,325 +0,0 @@
-/* Copyright 2015-2017 Jack Humbert
- *
- * 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 "muse.h"
-#include "mguterl.h"
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
-/* Qwerty
- * ,-----------------------------------------------------------------------------------.
- * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * |HypTab| Q | W | E | R | T | Y | U | I | O | P | Bksp |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * |EscCtl| A | S | D | F | G | H | J | K | L | ; | " |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | Shift| Z | X | C | V | B | N | M | , | . | / |Enter |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | GESC | Ctrl | Alt | GUI |Lower |SpcUtl|SpcUtl|Raise | Left | Down | Up |Right |
- * `-----------------------------------------------------------------------------------'
- */
-[_QWERTY] = LAYOUT_preonic_grid(
- KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC,
- HPR_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,
- ESC_CTL, 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, SFT_ENT,
- QK_GESC, KC_LCTL, KC_LALT, KC_LGUI, LOWER, SPC_UTL, SPC_UTL, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT
-),
-
-/*
- * Gaming is very similar to Qwerty. Certain features from Qwerty are disable
- * for better gaming experience.
- */
-[_GAMING] = LAYOUT_preonic_grid(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- KC_TAB, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- KC_ESC, _______, _______, _______, _______, KC_SPC, KC_SPC, _______, _______, _______, _______, _______
-),
-
-/*
- * Util is accessed by holding Space. The Util layer contains vimkeys and
- * shortcuts that I find myself needing often.
- */
-[_UTIL] = LAYOUT_preonic_grid(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, GUI_1, GUI_2, GUI_3, GUI_4, GUI_5, GUI_6, GUI_7, GUI_8, GUI_9, GUI_0, _______,
- _______, KC_VOLD, KC_VOLU, KC_MUTE, _______, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, GO_BACK, GO_FWD, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
-),
-
-/* Colemak
- * ,-----------------------------------------------------------------------------------.
- * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | Tab | Q | W | F | P | G | J | L | U | Y | ; | Del |
- * |------+------+------+------+------+-------------+------+------+------+------+------|
- * | Esc | A | R | S | T | D | H | N | E | I | O | " |
- * |------+------+------+------+------+------|------+------+------+------+------+------|
- * | Shift| Z | X | C | V | B | K | M | , | . | / |Enter |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | Brite| Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right |
- * `-----------------------------------------------------------------------------------'
- */
-[_COLEMAK] = LAYOUT_preonic_grid(
- KC_GRV, 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_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_DEL,
- KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT,
- KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT,
- BACKLIT, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT
-),
-
-/* Dvorak
- * ,-----------------------------------------------------------------------------------.
- * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | Tab | " | , | . | P | Y | F | G | C | R | L | Del |
- * |------+------+------+------+------+-------------+------+------+------+------+------|
- * | Esc | A | O | E | U | I | D | H | T | N | S | / |
- * |------+------+------+------+------+------|------+------+------+------+------+------|
- * | Shift| ; | Q | J | K | X | B | M | W | V | Z |Enter |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | Brite| Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right |
- * `-----------------------------------------------------------------------------------'
- */
-[_DVORAK] = LAYOUT_preonic_grid(
- KC_GRV, 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_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_DEL,
- KC_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH,
- KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_ENT,
- BACKLIT, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT
-),
-
-/* Lower
- * ,-----------------------------------------------------------------------------------.
- * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp |
- * |------+------+------+------+------+-------------+------+------+------+------+------|
- * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | Del | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | | F7 | F8 | F9 | F10 | F11 | F12 | - | = | [ | ] | |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | | | | | | | | Next | Vol- | Vol+ | Play |
- * `-----------------------------------------------------------------------------------'
- */
-[_LOWER] = LAYOUT_preonic_grid(
- KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC,
- KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC,
- KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE,
- _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS,
- _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY
-),
-
-/* Raise
- * ,-----------------------------------------------------------------------------------.
- * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | Del | F1 | F2 | F3 | F4 | F5 | F6 | | | | | |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | | F7 | F8 | F9 | F10 | F11 | F12 | | |Pg Up |Pg Dn | |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | | | | | | | | Next | Vol- | Vol+ | Play |
- * `-----------------------------------------------------------------------------------'
- */
-[_RAISE] = LAYOUT_preonic_grid(
- KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC,
- KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC,
- KC_DEL, 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_PGUP, KC_PGDN, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY
-),
-
-/* Adjust (Lower + Raise)
- * ,-----------------------------------------------------------------------------------.
- * | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * |ToGame| Reset| | | | | | | | | | Del |
- * |------+------+------+------+------+-------------+------+------+------+------+------|
- * | | | |Aud on|AudOff|AGnorm|AGswap|Qwerty|Colemk|Dvorak| | |
- * |------+------+------+------+------+------|------+------+------+------+------+------|
- * | |Voice-|Voice+|Mus on|MusOff|MidiOn|MidOff| | | | | |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | | | | | | | | | | | |
- * `-----------------------------------------------------------------------------------'
- */
-[_ADJUST] = LAYOUT_preonic_grid(
- KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,
- TG_GAME, QK_BOOT, DB_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL,
- _______, _______, MU_NEXT, AU_ON, AU_OFF, AG_NORM, AG_SWAP, QWERTY, COLEMAK, DVORAK, _______, _______,
- _______, AU_PREV, AU_NEXT, MU_ON, MU_OFF, MI_ON, MI_OFF, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
-)
-
-
-};
-
-bool process_record_user(uint16_t keycode, keyrecord_t *record) {
- switch (keycode) {
- case QWERTY:
- if (record->event.pressed) {
- set_single_persistent_default_layer(_QWERTY);
- }
- return false;
- break;
- case COLEMAK:
- if (record->event.pressed) {
- set_single_persistent_default_layer(_COLEMAK);
- }
- return false;
- break;
- case DVORAK:
- if (record->event.pressed) {
- set_single_persistent_default_layer(_DVORAK);
- }
- return false;
- break;
- case LOWER:
- if (record->event.pressed) {
- layer_on(_LOWER);
- update_tri_layer(_LOWER, _RAISE, _ADJUST);
- } else {
- layer_off(_LOWER);
- update_tri_layer(_LOWER, _RAISE, _ADJUST);
- }
- return false;
- break;
- case RAISE:
- if (record->event.pressed) {
- layer_on(_RAISE);
- update_tri_layer(_LOWER, _RAISE, _ADJUST);
- } else {
- layer_off(_RAISE);
- update_tri_layer(_LOWER, _RAISE, _ADJUST);
- }
- return false;
- break;
- case BACKLIT:
- if (record->event.pressed) {
- register_code(KC_RSFT);
- #ifdef BACKLIGHT_ENABLE
- backlight_step();
- #endif
- #ifdef __AVR__
- writePinLow(E6);
- #endif
- } else {
- unregister_code(KC_RSFT);
- #ifdef __AVR__
- writePinHigh(E6);
- #endif
- }
- return false;
- break;
- }
- return true;
-};
-
-bool muse_mode = false;
-uint8_t last_muse_note = 0;
-uint16_t muse_counter = 0;
-uint8_t muse_offset = 70;
-uint16_t muse_tempo = 50;
-
-bool encoder_update_user(uint8_t index, bool clockwise) {
- if (muse_mode) {
- if (IS_LAYER_ON(_RAISE)) {
- if (clockwise) {
- muse_offset++;
- } else {
- muse_offset--;
- }
- } else {
- if (clockwise) {
- muse_tempo+=1;
- } else {
- muse_tempo-=1;
- }
- }
- } else {
- if (clockwise) {
- #ifdef MOUSEKEY_ENABLE
- tap_code(KC_MS_WH_DOWN);
- #else
- tap_code(KC_PGDN);
- #endif
- } else {
- #ifdef MOUSEKEY_ENABLE
- tap_code(KC_MS_WH_UP);
- #else
- tap_code(KC_PGUP);
- #endif
- }
- }
- return true;
-}
-
-bool dip_switch_update_user(uint8_t index, bool active) {
- switch (index) {
- case 0:
- if (active) {
- layer_on(_ADJUST);
- } else {
- layer_off(_ADJUST);
- }
- break;
- case 1:
- if (active) {
- muse_mode = true;
- } else {
- muse_mode = false;
- }
- }
- return true;
-}
-
-
-void matrix_scan_user(void) {
-#ifdef AUDIO_ENABLE
- if (muse_mode) {
- if (muse_counter == 0) {
- uint8_t muse_note = muse_offset + SCALE[muse_clock_pulse()];
- if (muse_note != last_muse_note) {
- stop_note(compute_freq_for_midi_note(last_muse_note));
- play_note(compute_freq_for_midi_note(muse_note), 0xF);
- last_muse_note = muse_note;
- }
- }
- muse_counter = (muse_counter + 1) % muse_tempo;
- } else {
- if (muse_counter) {
- stop_all_notes();
- muse_counter = 0;
- }
- }
-#endif
-}
-
-bool music_mask_user(uint16_t keycode) {
- switch (keycode) {
- case RAISE:
- case LOWER:
- return false;
- default:
- return true;
- }
-}
diff --git a/keyboards/preonic/keymaps/mguterl/readme.md b/keyboards/preonic/keymaps/mguterl/readme.md
deleted file mode 100644
index f909976011..0000000000
--- a/keyboards/preonic/keymaps/mguterl/readme.md
+++ /dev/null
@@ -1,18 +0,0 @@
-# Michael Guterl's Preonic Layout
-
-I have a very similar [keymap](/keyboards/planck/keymaps/mguterl) for my
-Planck.
-
-Check out my [userspace](/users/mguterl) for the custom keycodes that are used
-in keymap.c.
-
-At a very high level I use 4 layers:
-
-* Qwerty - Letters
-* Util - Vimkeys for navigation and other convenient things
-* Raise - Numbers and F keys
-* Lower - Symbols
-
-```sh
-make preonic/rev3:mguterl:flash
-```
diff --git a/keyboards/preonic/keymaps/mguterl/rules.mk b/keyboards/preonic/keymaps/mguterl/rules.mk
deleted file mode 100644
index dcf16bef39..0000000000
--- a/keyboards/preonic/keymaps/mguterl/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-SRC += muse.c
diff --git a/keyboards/preonic/keymaps/mverteuil/config.h b/keyboards/preonic/keymaps/mverteuil/config.h
deleted file mode 100644
index 1c7bae0183..0000000000
--- a/keyboards/preonic/keymaps/mverteuil/config.h
+++ /dev/null
@@ -1,36 +0,0 @@
-#ifdef AUDIO_ENABLE
-# if __has_include("copyright.h")
-# include "copyright.h"
-# endif
-
-# define AUDIO_CLICKY_DELAY_DURATION 0
-# define AUDIO_CLICKY_FREQ_DEFAULT 100.0f
-# define AUDIO_CLICKY_FREQ_MIN 61.0f
-# define AUDIO_CLICKY_FREQ_RANDOMNESS 0.2f
-# define DAC_SAMPLE_MAX 7000U
-# define STARTUP_SONG SONG(WORKMAN_SOUND)
-# define GOODBYE_SONG SONG(COIN_SOUND)
-#endif
-
-#define MUSIC_MASK (keycode != KC_NO)
-
-/*
- * MIDI options
- */
-
-/* enable basic MIDI features:
- - MIDI notes can be sent when in Music mode is on
-*/
-
-#define MIDI_BASIC
-
-/* enable advanced MIDI features:
- - MIDI notes can be added to the keymap
- - Octave shift and transpose
- - Virtual sustain, portamento, and modulation wheel
- - etc.
-*/
-//#define MIDI_ADVANCED
-
-/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
-//#define MIDI_TONE_KEYCODE_OCTAVES 2
diff --git a/keyboards/preonic/keymaps/mverteuil/keymap.c b/keyboards/preonic/keymaps/mverteuil/keymap.c
deleted file mode 100644
index e81f38362a..0000000000
--- a/keyboards/preonic/keymaps/mverteuil/keymap.c
+++ /dev/null
@@ -1,510 +0,0 @@
-/* Copyright 2015-2017 Jack Humbert, 2019 Matthew de Verteuil
- *
- * 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 "muse.h"
-#include "mverteuil.h"
-
-/* TapDance Aliases */
-#define TD_LBRK TD(TD_BRACKETS_LEFT)
-#define TD_RBRK TD(TD_BRACKETS_RIGHT)
-#define TD_CLES TD(TD_CONTROL_ESCAPE)
-#define TD_NPFR TD(TD_NUMPAD_FUNCTIONROW)
-#define TD_PLEQ TD(TD_PLUS_EQUALS)
-#define TD_SCOL TD(TD_SEMICOLON_COLON)
-#define TD_SLQU TD(TD_SLASH_QUESTION)
-#define TD_SQDQ TD(TD_QUOTE_DOUBLEQUOTE)
-#define TD_USMI TD(TD_UNDERSCORE_MINUS)
-
-/* Sentinel value for invalid tap dance exit */
-#define TAP_DANCE_NO_MATCH 64
-
-enum preonic_layers {
- _QWERTY,
- _FUNCTIONROW,
- _NUMPAD,
- _LOWER,
- _RAISE,
- _ADJUST,
-};
-
-enum preonic_keycodes {
- QWERTY = SAFE_RANGE,
- NUMPAD,
- LOWER,
- RAISE,
- BACKLIT,
-};
-
-enum tapdance_keycodes {
- TD_BRACKETS_LEFT,
- TD_BRACKETS_RIGHT,
- TD_CONTROL_ESCAPE,
- TD_NUMPAD_FUNCTIONROW,
- TD_PLUS_EQUALS,
- TD_QUOTE_DOUBLEQUOTE,
- TD_SEMICOLON_COLON,
- TD_SLASH_QUESTION,
- TD_UNDERSCORE_MINUS,
-};
-
-typedef enum {
- SINGLE_TAP,
- SINGLE_HOLD,
- DOUBLE_TAP,
- DOUBLE_HOLD,
- TRIPLE_TAP,
- TRIPLE_HOLD,
-} t_tap_state;
-
-typedef struct {
- t_tap_state left_brackets;
- t_tap_state numpad_funcrow;
- t_tap_state right_brackets;
-} t_tap;
-
-t_tap_state get_tapdance_state(tap_dance_state_t *state);
-
-void td_numpad_funcrow_finished(tap_dance_state_t *state, void *user_data);
-void td_numpad_funcrow_reset(tap_dance_state_t *state, void *user_data);
-void td_brackets_left_finished(tap_dance_state_t *state, void *user_data);
-void td_brackets_left_reset(tap_dance_state_t *state, void *user_data);
-void td_brackets_right_finished(tap_dance_state_t *state, void *user_data);
-void td_brackets_right_reset(tap_dance_state_t *state, void *user_data);
-
-/* Tap Dance Definitions */
-tap_dance_action_t tap_dance_actions[] = {
- /* Tap once for left parenthesis, twice for left bracket, thrice for left brace */
- [TD_BRACKETS_LEFT] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, td_brackets_left_finished, td_brackets_left_reset),
- /* Tap once for right parenthesis, twice for right bracket, thrice for right brace */
- [TD_BRACKETS_RIGHT] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, td_brackets_right_finished, td_brackets_right_reset),
- /* Tap once for control, twice for escape */
- [TD_CONTROL_ESCAPE] = ACTION_TAP_DANCE_DOUBLE(KC_LCTL, KC_ESCAPE),
- /* Tap once for plus, twice for equals */
- [TD_PLUS_EQUALS] = ACTION_TAP_DANCE_DOUBLE(KC_PLUS, KC_EQUAL),
- /* Hold for numpad, tap twice to toggle function row, double hold for temporary function row */
- [TD_NUMPAD_FUNCTIONROW] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, td_numpad_funcrow_finished, td_numpad_funcrow_reset),
- /* Tap once for single quote, twice for double quote */
- [TD_QUOTE_DOUBLEQUOTE] = ACTION_TAP_DANCE_DOUBLE(KC_QUOTE, KC_DOUBLE_QUOTE),
- /* Tap once for semicolon, twice for colon */
- [TD_SEMICOLON_COLON] = ACTION_TAP_DANCE_DOUBLE(KC_SEMICOLON, KC_COLON),
- /* Tap once for slash, twice for question mark */
- [TD_SLASH_QUESTION] = ACTION_TAP_DANCE_DOUBLE(KC_SLASH, KC_QUESTION),
- /* Tap once for underscore, twice for minus */
- [TD_UNDERSCORE_MINUS] = ACTION_TAP_DANCE_DOUBLE(KC_UNDERSCORE, KC_MINUS),
-};
-
-/* clang-format off */
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
-/* Qwerty
- * ,-----------------------------------------------------------------------------------.
- * | ` | ! | @ | # | $ | % | ^ | & | * | _ - | + = | Bksp |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | Tab | Q | W | E | R | T | Y | U | I | O | P | ' " |
- * |------+------+------+------+------+-------------+------+------+------+------+------|
- * |CtlEsc| A | S | D | F | G | H | J | K | L | ; : | Enter|
- * |------+------+------+------+------+------|------+------+------+------+------+------|
- * | Shift| Z | X | C | V | B | N | M | , | . | Up | GUI |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * |NP FRw| Ctrl | Alt | GUI |Lower | Space |Raise | / ? | Left | Down |Right |
- * `-----------------------------------------------------------------------------------'
- */
-[_QWERTY] = LAYOUT_preonic_1x2uC (
- KC_GRV, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, TD_USMI, TD_PLEQ, KC_BSPC,
- KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, TD_SQDQ,
- TD_CLES, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, TD_SCOL, KC_ENT,
- KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_UP, KC_RGUI,
- TD_NPFR, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, RAISE, TD_SLQU, KC_LEFT, KC_DOWN, KC_RGHT
-),
-
-/* Function Row
- * ,-----------------------------------------------------------------------------------.
- * | F12 | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | | | | | | | | | | | | |
- * |------+------+------+------+------+-------------+------+------+------+------+------|
- * | | | | | | | | | | | | |
- * |------+------+------+------+------+------|------+------+------+------+------+------|
- * | | | | | | | | | | | | |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | | | | | | | | | | | |
- * `-----------------------------------------------------------------------------------'
- */
-[_FUNCTIONROW] = LAYOUT_preonic_1x2uC (
- KC_F12, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
-),
-
-/* Numpad
- * ,------+------+------+------+------+------|------+------+------+------+------+------.
- * | | | | | | | | Tab | / | * |Bksp | |
- * |------+------+------+------+------+------|------+------+------+------+------+------|
- * | | | | | | | | 7 | 8 | 9 | - | |
- * |------+------+------+------+------+------|------+------+------+------+------+------|
- * | | | | | | | | 4 | 5 | 6 | + | |
- * |------+------+------+------+------+------|------+------+------+------+------+------|
- * | | | | | | | | 1 | 2 | 3 |Enter | |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | | | | | | | | 0 | . |Enter | |
- * `-----------------------------------------------------------------------------------'
- */
-[_NUMPAD] = LAYOUT_preonic_1x2uC (
- _______, _______, _______, _______, _______, _______, _______, KC_TAB, KC_SLSH, KC_PAST, KC_BSPC, _______,
- _______, _______, _______, _______, _______, _______, _______, KC_KP_7, KC_KP_8, KC_KP_9, KC_PMNS, _______,
- _______, _______, _______, _______, _______, _______, _______, KC_KP_4, KC_KP_5, KC_KP_6, KC_PPLS, _______,
- _______, _______, _______, _______, _______, _______, _______, KC_KP_1, KC_KP_2, KC_KP_3, KC_PENT, _______,
- _______, _______, _______, _______, _______, _______, _______, KC_KP_0, KC_PDOT, KC_PENT, _______
-),
-
-/* Lower
- * ,-----------------------------------------------------------------------------------.
- * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Del |
- * |------+------+------+------+------+-------------+------+------+------+------+------|
- * | | | Vol+ | | | | | | | | Play | |
- * |------+------+------+------+------+-------------+------+------+------+------+------|
- * | | Prev | Vol- | Next | | | ? | _ | + | | | |
- * |------+------+------+------+------+------|------+------+------+------+------+------|
- * | | | | | | | | Mute | | | PgUp | |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * |RGBmod| | | | | | | \ | Home | PgDn | End |
- * `-----------------------------------------------------------------------------------'
- */
-[_LOWER] = LAYOUT_preonic_1x2uC (
- KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL,
- _______, _______, KC_VOLU, _______, _______, _______, _______, _______, _______, _______, KC_MPLY, _______,
- _______, KC_MPRV, KC_VOLD, KC_MNXT, _______, _______, KC_QUES, KC_UNDS, KC_PLUS, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, KC_MUTE, _______, _______, KC_PGUP, _______,
- _______, _______, _______, _______, _______, _______, _______, KC_BSLS, KC_HOME, KC_PGDN, KC_END
-),
-
-/* Raise
- * ,-----------------------------------------------------------------------------------.
- * | ~ | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | | | | | | | | | | | | |
- * |------+------+------+------+------+-------------+------+------+------+------+------|
- * | | | | | | | | | | [ { (| ) } ]| |
- * |------+------+------+------+------+------|------+------+------+------+------+------|
- * | | | | | | | | | | | | |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | | | | | | | | | | | | |
- * `-----------------------------------------------------------------------------------'
- */
-[_RAISE] = LAYOUT_preonic_1x2uC (
- KC_TILD, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, TD_LBRK, TD_RBRK, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, KC_PIPE, _______, _______, _______
-),
-
-/* Adjust (Lower + Raise)
- * ,-----------------------------------------------------------------------------------.
- * |AudTog|XXXXXX|XXXXXX|XXXXXX|XXXXXX|XXXXXX|XXXXXX|XXXXXX|XXXXXX|XXXXXX| Debug| Reset|
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * |ClkTog|ClkFq-|ClkFq+|XXXXXX|XXXXXX|XXXXXX|XXXXXX|XXXXXX|XXXXXX|XXXXXX|XXXXXX|XXXXXX|
- * |------+------+------+------+------+-------------+------+------+------+------+------|
- * |MusTog|Voice- Voice+|XXXXXX|XXXXXX|XXXXXX|XXXXXX|XXXXXX|XXXXXX|XXXXXX|AGnorm|AGswap|
- * |------+------+------+------+------+------|------+------+------+------+------+------|
- * |MidTog|Rplain|Rbreat|Rrainb|Rswirl|Rsnake|Rkridr|Rxmas |Rgrad |RGBtst|XXXXXX|Shift |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * |RGBmod|RGBhue|RBGsat|RGBval| | | |XXXXXX|XXXXXX|XXXXXX|XXXXXX|
- * `-----------------------------------------------------------------------------------'
- */
-[_ADJUST] = LAYOUT_preonic_1x2uC (
- AU_TOGG, XXXXXXX, XXXXXXX, XXXXXXX, RGB_HUI, RGB_HUD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, DB_TOGG, QK_BOOT,
- CK_TOGG, CK_DOWN, CK_UP, XXXXXXX, RGB_SAI, RGB_SAD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
- MU_TOGG, AU_PREV, AU_NEXT, XXXXXXX, RGB_VAI, RGB_VAD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, AG_NORM, AG_SWAP,
- MI_TOGG, RGB_M_P, RGB_M_B, RGB_M_R,RGB_M_SW,RGB_M_SN, RGB_M_K, RGB_M_X, RGB_M_G, RGB_M_T, RGB_SPI, KC_LSFT,
- XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, RGB_TOG, _______, XXXXXXX,RGB_RMOD, RGB_SPD, RGB_MOD
-)
-
-};
-/* clang-format on */
-
-float s_audio_on[][2] = AUDIO_ON_SONG;
-float s_layer_lower[][2] = LAYER_LOWER_SONG;
-float s_layer_raise[][2] = LAYER_RAISE_SONG;
-
-void audio_on_user(void) { PLAY_SONG(s_audio_on); };
-
-bool process_record_user(uint16_t keycode, keyrecord_t *record) {
- switch (keycode) {
- case LOWER:
- if (record->event.pressed) {
- layer_on(_LOWER);
- update_tri_layer(_LOWER, _RAISE, _ADJUST);
- PLAY_SONG(s_layer_lower);
- } else {
- layer_off(_LOWER);
- update_tri_layer(_LOWER, _RAISE, _ADJUST);
- }
- return false;
- break;
- case RAISE:
- if (record->event.pressed) {
- layer_on(_RAISE);
- update_tri_layer(_LOWER, _RAISE, _ADJUST);
- PLAY_SONG(s_layer_raise);
- } else {
- layer_off(_RAISE);
- update_tri_layer(_LOWER, _RAISE, _ADJUST);
- }
- return false;
- break;
- case BACKLIT:
- if (record->event.pressed) {
- register_code(KC_RSFT);
-#ifdef BACKLIGHT_ENABLE
- backlight_step();
-#endif
-#ifdef __AVR__
- writePinLow(E6);
-#endif
- } else {
- unregister_code(KC_RSFT);
-#ifdef __AVR__
- writePinHigh(E6);
-#endif
- }
- return false;
- break;
- }
- return true;
-};
-
-/* Global TapDance State */
-static t_tap tap_state = {
- .left_brackets = 0,
- .numpad_funcrow = 0,
- .right_brackets = 0,
-};
-
-float s_functionrow_on[][2] = LAYER_FUNCROW_ON_SONG;
-float s_functionrow_off[][2] = LAYER_FUNCROW_OFF_SONG;
-float s_numpad_toggle[][2] = LAYER_NMPAD_SONG;
-
-t_tap_state get_tapdance_state(tap_dance_state_t *state) {
- if (state->count == 1) {
- if (state->interrupted || !state->pressed) {
- return SINGLE_TAP;
- } else {
- return SINGLE_HOLD;
- }
- } else if (state->count == 2) {
- if (state->interrupted || !state->pressed) {
- return DOUBLE_TAP;
- } else {
- return DOUBLE_HOLD;
- }
- } else if (state->count == 3) {
- if (state->interrupted || !state->pressed) {
- return TRIPLE_TAP;
- } else {
- return TRIPLE_HOLD;
- }
- } else
- return TAP_DANCE_NO_MATCH;
-}
-
-void td_numpad_funcrow_finished(tap_dance_state_t *state, void *user_data) {
- tap_state.numpad_funcrow = get_tapdance_state(state);
- switch (tap_state.numpad_funcrow) {
- case SINGLE_TAP ... SINGLE_HOLD:
- layer_on(_NUMPAD);
- PLAY_SONG(s_numpad_toggle);
- break;
- case DOUBLE_HOLD:
- layer_on(_FUNCTIONROW);
- break;
- case DOUBLE_TAP:
- if (layer_state_is(_FUNCTIONROW)) {
- layer_off(_FUNCTIONROW);
- PLAY_SONG(s_functionrow_off);
- } else {
- layer_on(_FUNCTIONROW);
- PLAY_SONG(s_functionrow_on);
- }
- break;
- default:
- break;
- }
-}
-
-void td_numpad_funcrow_reset(tap_dance_state_t *state, void *user_data) {
- switch (tap_state.numpad_funcrow) {
- case SINGLE_HOLD:
- layer_off(_NUMPAD);
- break;
- case DOUBLE_HOLD:
- layer_off(_FUNCTIONROW);
- break;
- default:
- break;
- }
-}
-
-void td_brackets_left_finished(tap_dance_state_t *state, void *user_data) {
- tap_state.left_brackets = get_tapdance_state(state);
- switch (tap_state.left_brackets) {
- case SINGLE_TAP:
- register_code16(KC_LEFT_PAREN);
- break;
- case DOUBLE_TAP:
- register_code(KC_LEFT_BRACKET);
- break;
- case TRIPLE_TAP:
- register_code16(KC_LEFT_CURLY_BRACE);
- break;
- default:
- break;
- }
-}
-
-void td_brackets_left_reset(tap_dance_state_t *state, void *user_data) {
- switch (tap_state.left_brackets) {
- case SINGLE_TAP:
- unregister_code16(KC_LEFT_PAREN);
- break;
- case DOUBLE_TAP:
- unregister_code(KC_LEFT_BRACKET);
- break;
- case TRIPLE_TAP:
- unregister_code16(KC_LEFT_CURLY_BRACE);
- break;
- default:
- break;
- }
- tap_state.left_brackets = 0;
-}
-
-void td_brackets_right_finished(tap_dance_state_t *state, void *user_data) {
- tap_state.right_brackets = get_tapdance_state(state);
- switch (tap_state.right_brackets) {
- case SINGLE_TAP:
- register_code16(KC_RIGHT_PAREN);
- break;
- case DOUBLE_TAP:
- register_code(KC_RIGHT_BRACKET);
- break;
- case TRIPLE_TAP:
- register_code16(KC_RIGHT_CURLY_BRACE);
- break;
- default:
- break;
- }
-}
-
-void td_brackets_right_reset(tap_dance_state_t *state, void *user_data) {
- switch (tap_state.right_brackets) {
- case SINGLE_TAP:
- unregister_code16(KC_RIGHT_PAREN);
- break;
- case DOUBLE_TAP:
- unregister_code(KC_RIGHT_BRACKET);
- break;
- case TRIPLE_TAP:
- unregister_code16(KC_RIGHT_CURLY_BRACE);
- break;
- default:
- break;
- }
- tap_state.right_brackets = 0;
-}
-
-bool muse_mode = false;
-uint8_t last_muse_note = 0;
-uint16_t muse_counter = 0;
-uint8_t muse_offset = 70;
-uint16_t muse_tempo = 50;
-
-bool encoder_update_user(uint8_t index, bool clockwise) {
- if (muse_mode) {
- if (IS_LAYER_ON(_RAISE)) {
- if (clockwise) {
- muse_offset++;
- } else {
- muse_offset--;
- }
- } else {
- if (clockwise) {
- muse_tempo += 1;
- } else {
- muse_tempo -= 1;
- }
- }
- } else {
- if (clockwise) {
- tap_code(KC_PGDN);
- } else {
- tap_code(KC_PGUP);
- }
- }
- return true;
-}
-
-bool dip_switch_update_user(uint8_t index, bool active) {
- switch (index) {
- case 0:
- if (active) {
- layer_on(_ADJUST);
- } else {
- layer_off(_ADJUST);
- }
- break;
- case 1:
- if (active) {
- muse_mode = true;
- } else {
- muse_mode = false;
- }
- }
- return true;
-}
-
-void matrix_scan_user(void) {
-#ifdef AUDIO_ENABLE
- if (muse_mode) {
- if (muse_counter == 0) {
- uint8_t muse_note = muse_offset + SCALE[muse_clock_pulse()];
- if (muse_note != last_muse_note) {
- stop_note(compute_freq_for_midi_note(last_muse_note));
- play_note(compute_freq_for_midi_note(muse_note), 0xF);
- last_muse_note = muse_note;
- }
- }
- muse_counter = (muse_counter + 1) % muse_tempo;
- } else {
- if (muse_counter) {
- stop_all_notes();
- muse_counter = 0;
- }
- }
-#endif
-}
-
-bool music_mask_user(uint16_t keycode) {
- switch (keycode) {
- case RAISE:
- case LOWER:
- return false;
- default:
- return true;
- }
-}
diff --git a/keyboards/preonic/keymaps/mverteuil/readme.md b/keyboards/preonic/keymaps/mverteuil/readme.md
deleted file mode 100644
index b21df3f8fa..0000000000
--- a/keyboards/preonic/keymaps/mverteuil/readme.md
+++ /dev/null
@@ -1,2 +0,0 @@
-# mverteuil does olkb preonic
-## 1x2u: One 2u spacebar on bottom row
diff --git a/keyboards/preonic/keymaps/mverteuil/rules.mk b/keyboards/preonic/keymaps/mverteuil/rules.mk
deleted file mode 100644
index a29a3cad79..0000000000
--- a/keyboards/preonic/keymaps/mverteuil/rules.mk
+++ /dev/null
@@ -1,5 +0,0 @@
-SRC += muse.c
-
-AUDIO_ENABLE = yes
-MIDI_ENABLE = yes
-TAP_DANCE_ENABLE = yes
diff --git a/keyboards/preonic/keymaps/mverteuil_2x2u/config.h b/keyboards/preonic/keymaps/mverteuil_2x2u/config.h
deleted file mode 100644
index 1c7bae0183..0000000000
--- a/keyboards/preonic/keymaps/mverteuil_2x2u/config.h
+++ /dev/null
@@ -1,36 +0,0 @@
-#ifdef AUDIO_ENABLE
-# if __has_include("copyright.h")
-# include "copyright.h"
-# endif
-
-# define AUDIO_CLICKY_DELAY_DURATION 0
-# define AUDIO_CLICKY_FREQ_DEFAULT 100.0f
-# define AUDIO_CLICKY_FREQ_MIN 61.0f
-# define AUDIO_CLICKY_FREQ_RANDOMNESS 0.2f
-# define DAC_SAMPLE_MAX 7000U
-# define STARTUP_SONG SONG(WORKMAN_SOUND)
-# define GOODBYE_SONG SONG(COIN_SOUND)
-#endif
-
-#define MUSIC_MASK (keycode != KC_NO)
-
-/*
- * MIDI options
- */
-
-/* enable basic MIDI features:
- - MIDI notes can be sent when in Music mode is on
-*/
-
-#define MIDI_BASIC
-
-/* enable advanced MIDI features:
- - MIDI notes can be added to the keymap
- - Octave shift and transpose
- - Virtual sustain, portamento, and modulation wheel
- - etc.
-*/
-//#define MIDI_ADVANCED
-
-/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
-//#define MIDI_TONE_KEYCODE_OCTAVES 2
diff --git a/keyboards/preonic/keymaps/mverteuil_2x2u/keymap.c b/keyboards/preonic/keymaps/mverteuil_2x2u/keymap.c
deleted file mode 100644
index cab5cdcb05..0000000000
--- a/keyboards/preonic/keymaps/mverteuil_2x2u/keymap.c
+++ /dev/null
@@ -1,415 +0,0 @@
-/* Copyright 2015-2017 Jack Humbert, 2019 Matthew de Verteuil
- *
- * 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 "muse.h"
-#include "mverteuil.h"
-
-/* Layer Aliases */
-#define LT_LWSP LT(_LOWER, KC_SPACE)
-#define LT_RSRT LT(_RAISE, KC_ENTER)
-#define MO_NUMS MO(_NUMPAD)
-
-/* Mod-Tap Aliases */
-#define MT_CESC CTL_T(KC_ESCAPE)
-
-/* TapDance Aliases */
-#define TD_LBRK TD(TD_BRACKETS_LEFT)
-#define TD_RBRK TD(TD_BRACKETS_RIGHT)
-#define TD_PLEQ TD(TD_PLUS_EQUALS)
-#define TD_SCOL TD(TD_SEMICOLON_COLON)
-#define TD_SLQU TD(TD_SLASH_QUESTION)
-#define TD_SQDQ TD(TD_QUOTE_DOUBLEQUOTE)
-#define TD_USMI TD(TD_UNDERSCORE_MINUS)
-
-/* Sentinel value for invalid tap dance exit */
-#define TAP_DANCE_NO_MATCH 64
-
-enum preonic_layers {
- _QWERTY,
- _NUMPAD,
- _LOWER,
- _RAISE,
- _ADJUST,
-};
-
-enum preonic_keycodes {
- QWERTY = SAFE_RANGE,
- NUMPAD,
- LOWER,
- RAISE,
- BACKLIT,
-};
-
-enum tapdance_keycodes {
- TD_BRACKETS_LEFT,
- TD_BRACKETS_RIGHT,
- TD_CONTROL_ESCAPE,
- TD_PLUS_EQUALS,
- TD_QUOTE_DOUBLEQUOTE,
- TD_SEMICOLON_COLON,
- TD_SLASH_QUESTION,
- TD_UNDERSCORE_MINUS,
-};
-
-typedef enum {
- SINGLE_TAP,
- SINGLE_HOLD,
- DOUBLE_TAP,
- DOUBLE_HOLD,
- TRIPLE_TAP,
- TRIPLE_HOLD,
-} t_tap_state;
-
-typedef struct {
- t_tap_state left_brackets;
- t_tap_state right_brackets;
-} t_tap;
-
-t_tap_state get_tapdance_state(tap_dance_state_t *state);
-
-void td_brackets_left_finished(tap_dance_state_t *state, void *user_data);
-void td_brackets_left_reset(tap_dance_state_t *state, void *user_data);
-void td_brackets_right_finished(tap_dance_state_t *state, void *user_data);
-void td_brackets_right_reset(tap_dance_state_t *state, void *user_data);
-
-/* Tap Dance Definitions */
-tap_dance_action_t tap_dance_actions[] = {
- /* Tap once for left parenthesis, twice for left bracket, thrice for left brace */
- [TD_BRACKETS_LEFT] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, td_brackets_left_finished, td_brackets_left_reset),
- /* Tap once for right parenthesis, twice for right bracket, thrice for right brace */
- [TD_BRACKETS_RIGHT] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, td_brackets_right_finished, td_brackets_right_reset),
- /* Tap once for plus, twice for equals */
- [TD_PLUS_EQUALS] = ACTION_TAP_DANCE_DOUBLE(KC_PLUS, KC_EQUAL),
- /* Tap once for single quote, twice for double quote */
- [TD_QUOTE_DOUBLEQUOTE] = ACTION_TAP_DANCE_DOUBLE(KC_QUOTE, KC_DOUBLE_QUOTE),
- /* Tap once for semicolon, twice for colon */
- [TD_SEMICOLON_COLON] = ACTION_TAP_DANCE_DOUBLE(KC_SEMICOLON, KC_COLON),
- /* Tap once for slash, twice for question mark */
- [TD_SLASH_QUESTION] = ACTION_TAP_DANCE_DOUBLE(KC_SLASH, KC_QUESTION),
- /* Tap once for underscore, twice for minus */
- [TD_UNDERSCORE_MINUS] = ACTION_TAP_DANCE_DOUBLE(KC_UNDERSCORE, KC_MINUS),
-};
-
-/* clang-format off */
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
-/* Qwerty
- * ,-------+-------+-------+-------+-------+-------|-------+-------+-------+-------+-------+-------.
- * | ` | ! | @ | # | $ | % | ^ | & | * | _ - | + = | Bksp |
- * |-------+-------+-------+-------+-------+-------|-------+-------+-------+-------+-------+-------|
- * | Tab | Q | W | E | R | T | Y | U | I | O | P | ' " |
- * |-------+-------+-------+-------+-------+-------|-------+-------+-------+-------+-------+-------|
- * |CtrlEsc| A | S | D | F | G | H | J | K | L | ; : | / ? |
- * |-------+-------+-------+-------+-------+-------|-------+-------+-------+-------+-------+-------|
- * | Shift | Z | X | C | V | B | N | M | , | . | ↑ | RShift|
- * |-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------|
- * |NumPad | Ctrl | Alt | GUI | Lower/Space | Raise/Enter | GUI | ← | ↓ | → |
- * `-----------------------------------------------------------------------------------------------'
- */
-[_QWERTY] = LAYOUT_preonic_2x2u (
- KC_GRV, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, TD_USMI, TD_PLEQ, KC_BSPC,
- KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, TD_SQDQ,
- MT_CESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, TD_SCOL, TD_SLQU,
- KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_UP, KC_RSFT,
- MO_NUMS, KC_LCTL, KC_LALT, KC_LGUI, LT_LWSP, LT_RSRT, KC_RGUI, KC_LEFT, KC_DOWN, KC_RGHT
-),
-
-/* Numpad
- * ,-------+-------+-------+-------+-------+-------|-------+-------+-------+-------+-------+-------.
- * | | | | | | | | Tab | / | * | Bksp | |
- * |-------+-------+-------+-------+-------+-------|-------+-------+-------+-------+-------+-------|
- * | | | | | | | | 7 | 8 | 9 | - | |
- * |-------+-------+-------+-------+-------+-------|-------+-------+-------+-------+-------+-------|
- * | | | | | | | | 4 | 5 | 6 | + | |
- * |-------+-------+-------+-------+-------+-------|-------+-------+-------+-------+-------+-------|
- * | | | | | | | | 1 | 2 | 3 | Enter | |
- * |-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------|
- * | | | | | | | 0 | . | Enter | |
- * `-----------------------------------------------------------------------------------------------'
- */
-[_NUMPAD] = LAYOUT_preonic_2x2u (
- _______, _______, _______, _______, _______, _______, _______, KC_TAB, KC_SLSH, KC_PAST, KC_BSPC, _______,
- _______, _______, _______, _______, _______, _______, _______, KC_KP_7, KC_KP_8, KC_KP_9, KC_PMNS, _______,
- _______, _______, _______, _______, _______, _______, _______, KC_KP_4, KC_KP_5, KC_KP_6, KC_PPLS, _______,
- _______, _______, _______, _______, _______, _______, _______, KC_KP_1, KC_KP_2, KC_KP_3, KC_PENT, _______,
- _______, _______, _______, _______, _______, _______, KC_KP_0, KC_PDOT, KC_PENT, _______
-),
-
-/* Lower
- * ,-------+-------+-------+-------+-------+-------|-------+-------+-------+-------+-------+-------.
- * | | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 |Delete |
- * |-------+-------+-------+-------+-------+-------|-------+-------+-------+-------+-------+-------|
- * | | | Vol+ | | | | | | | | MPlay | |
- * |-------+-------+-------+-------+-------+-------|-------+-------+-------+-------+-------+-------|
- * | | MPrev | Vol- | MNext | | | | | | | | \ |
- * |-------+-------+-------+-------+-------+-------|-------+-------+-------+-------+-------+-------|
- * | | | | | | | | Mute | | | PgUp | |
- * |-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------|
- * | | | | | | | | Home | PgDn | End |
- * `-----------------------------------------------------------------------------------------------'
- */
-[_LOWER] = LAYOUT_preonic_2x2u (
- KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL,
- _______, _______, KC_VOLU, _______, _______, _______, _______, _______, _______, _______, KC_MPLY, _______,
- _______, KC_MPRV, KC_VOLD, KC_MNXT, _______, _______, _______, _______, _______, _______, _______, KC_BSLS,
- _______, _______, _______, _______, _______, _______, _______, KC_MUTE, _______, _______, KC_PGUP, _______,
- _______, _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_END
-),
-
-/* Raise
- * ,-------+-------+-------+-------+-------+-------|-------+-------+-------+-------+-------+-------.
- * | | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | |
- * |-------+-------+-------+-------+-------+-------|-------+-------+-------+-------+-------+-------|
- * | | | | | | | | | | | | |
- * |-------+-------+-------+-------+-------+-------|-------+-------+-------+-------+-------+-------|
- * | | | | | | | | | [ { ( | ) } ] | | | |
- * |-------+-------+-------+-------+-------+-------|-------+-------+-------+-------+-------+-------|
- * | | | | | | | | | | | | |
- * |-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------|
- * | | | | | | | | | | |
- * `-----------------------------------------------------------------------------------------------'
- */
-[_RAISE] = LAYOUT_preonic_2x2u (
- _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, TD_LBRK, TD_RBRK, _______, KC_PIPE,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
-),
-
-/* Adjust (Lower + Raise)
- * ,-------+-------+-------+-------+-------+-------|-------+-------+-------+-------+-------+-------.
- * |AudTog |███████|███████|███████|███████|███████|███████|███████|███████|███████| Debug | Reset |
- * |-------+-------+-------+-------+-------+-------|-------+-------+-------+-------+-------+-------|
- * |Clicky |ClkFrq-|ClkFrq+|███████|███████|███████|███████|███████|███████|███████|███████|███████|
- * |-------+-------+-------+-------+-------+-------|-------+-------+-------+-------+-------+-------|
- * | Music |Voice- |Voice+ |███████|███████|███████|███████|███████|███████|███████|AGnorm |AGswap |
- * |-------+-------+-------+-------+-------+-------|-------+-------+-------+-------+-------+-------|
- * | MIDI |R plain|R breat|R rnbow|R swirl|R snake|R knigt|R xmas |R grade|RGBtest|███████| Shift |
- * |-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------|
- * |RGBmode|RGBhue+|RGBsat+|RGBval+| | |███████|███████|███████|███████|
- * `-----------------------------------------------------------------------------------------------'
- */
-[_ADJUST] = LAYOUT_preonic_2x2u (
- AU_TOGG, XXXXXXX, XXXXXXX, XXXXXXX, RGB_HUI, RGB_HUD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, DB_TOGG, QK_BOOT,
- CK_TOGG, CK_DOWN, CK_UP, XXXXXXX, RGB_SAI, RGB_SAD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
- MU_TOGG, AU_PREV, AU_NEXT, XXXXXXX, RGB_VAI, RGB_VAD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, AG_NORM, AG_SWAP,
- MI_TOGG, RGB_M_P, RGB_M_B, RGB_M_R,RGB_M_SW,RGB_M_SN, RGB_M_K, RGB_M_X, RGB_M_G, RGB_M_T, RGB_SPI, KC_LSFT,
- XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, _______, XXXXXXX,RGB_RMOD, RGB_SPD, RGB_MOD
-)
-
-};
-/* clang-format on */
-
-float s_audio_on[][2] = AUDIO_ON_SONG;
-float s_layer_lower[][2] = LAYER_LOWER_SONG;
-float s_layer_raise[][2] = LAYER_RAISE_SONG;
-
-void audio_on_user(void) { PLAY_SONG(s_audio_on); };
-
-bool process_record_user(uint16_t keycode, keyrecord_t *record) {
- switch (keycode) {
- case LOWER:
- if (record->event.pressed) {
- layer_on(_LOWER);
- update_tri_layer(_LOWER, _RAISE, _ADJUST);
- PLAY_SONG(s_layer_lower);
- } else {
- layer_off(_LOWER);
- update_tri_layer(_LOWER, _RAISE, _ADJUST);
- }
- return false;
- break;
- case RAISE:
- if (record->event.pressed) {
- layer_on(_RAISE);
- update_tri_layer(_LOWER, _RAISE, _ADJUST);
- PLAY_SONG(s_layer_raise);
- } else {
- layer_off(_RAISE);
- update_tri_layer(_LOWER, _RAISE, _ADJUST);
- }
- return false;
- break;
- case BACKLIT:
- if (record->event.pressed) {
- register_code(KC_RSFT);
-#ifdef BACKLIGHT_ENABLE
- backlight_step();
-#endif
-#ifdef __AVR__
- writePinLow(E6);
-#endif
- } else {
- unregister_code(KC_RSFT);
-#ifdef __AVR__
- writePinHigh(E6);
-#endif
- }
- return false;
- break;
- }
- return true;
-};
-
-/* Global TapDance State */
-static t_tap tap_state = {
- .left_brackets = 0,
- .right_brackets = 0,
-};
-
-float s_numpad_toggle[][2] = LAYER_NMPAD_SONG;
-
-t_tap_state get_tapdance_state(tap_dance_state_t *state) {
- if (state->count == 1) {
- if (state->interrupted || !state->pressed) {
- return SINGLE_TAP;
- } else {
- return SINGLE_HOLD;
- }
- } else if (state->count == 2) {
- if (state->interrupted || !state->pressed) {
- return DOUBLE_TAP;
- } else {
- return DOUBLE_HOLD;
- }
- } else if (state->count == 3) {
- if (state->interrupted || !state->pressed) {
- return TRIPLE_TAP;
- } else {
- return TRIPLE_HOLD;
- }
- } else
- return TAP_DANCE_NO_MATCH;
-}
-
-void td_brackets_left_finished(tap_dance_state_t *state, void *user_data) {
- tap_state.left_brackets = get_tapdance_state(state);
- switch (tap_state.left_brackets) {
- case SINGLE_TAP:
- register_code16(KC_LEFT_PAREN);
- break;
- case DOUBLE_TAP:
- register_code(KC_LEFT_BRACKET);
- break;
- case TRIPLE_TAP:
- register_code16(KC_LEFT_CURLY_BRACE);
- break;
- default:
- break;
- }
-}
-
-void td_brackets_left_reset(tap_dance_state_t *state, void *user_data) {
- switch (tap_state.left_brackets) {
- case SINGLE_TAP:
- unregister_code16(KC_LEFT_PAREN);
- break;
- case DOUBLE_TAP:
- unregister_code(KC_LEFT_BRACKET);
- break;
- case TRIPLE_TAP:
- unregister_code16(KC_LEFT_CURLY_BRACE);
- break;
- default:
- break;
- }
- tap_state.left_brackets = 0;
-}
-
-void td_brackets_right_finished(tap_dance_state_t *state, void *user_data) {
- tap_state.right_brackets = get_tapdance_state(state);
- switch (tap_state.right_brackets) {
- case SINGLE_TAP:
- register_code16(KC_RIGHT_PAREN);
- break;
- case DOUBLE_TAP:
- register_code(KC_RIGHT_BRACKET);
- break;
- case TRIPLE_TAP:
- register_code16(KC_RIGHT_CURLY_BRACE);
- break;
- default:
- break;
- }
-}
-
-void td_brackets_right_reset(tap_dance_state_t *state, void *user_data) {
- switch (tap_state.right_brackets) {
- case SINGLE_TAP:
- unregister_code16(KC_RIGHT_PAREN);
- break;
- case DOUBLE_TAP:
- unregister_code(KC_RIGHT_BRACKET);
- break;
- case TRIPLE_TAP:
- unregister_code16(KC_RIGHT_CURLY_BRACE);
- break;
- default:
- break;
- }
- tap_state.right_brackets = 0;
-}
-
-bool muse_mode = false;
-uint8_t last_muse_note = 0;
-uint16_t muse_counter = 0;
-uint8_t muse_offset = 70;
-uint16_t muse_tempo = 50;
-
-bool encoder_update_user(uint8_t index, bool clockwise) {
- if (muse_mode) {
- if (IS_LAYER_ON(_RAISE)) {
- if (clockwise) {
- muse_offset++;
- } else {
- muse_offset--;
- }
- } else {
- if (clockwise) {
- muse_tempo += 1;
- } else {
- muse_tempo -= 1;
- }
- }
- } else {
- if (clockwise) {
- tap_code(KC_PGDN);
- } else {
- tap_code(KC_PGUP);
- }
- }
- return true;
-}
-
-bool dip_switch_update_user(uint8_t index, bool active) {
- switch (index) {
- case 0:
- if (active) {
- layer_on(_ADJUST);
- } else {
- layer_off(_ADJUST);
- }
- break;
- case 1:
- if (active) {
- muse_mode = true;
- } else {
- muse_mode = false;
- }
- }
- return true;
-}
diff --git a/keyboards/preonic/keymaps/mverteuil_2x2u/rules.mk b/keyboards/preonic/keymaps/mverteuil_2x2u/rules.mk
deleted file mode 100644
index 9e55d0aa67..0000000000
--- a/keyboards/preonic/keymaps/mverteuil_2x2u/rules.mk
+++ /dev/null
@@ -1,6 +0,0 @@
-USER_NAME := mverteuil
-SRC += muse.c
-
-AUDIO_ENABLE = yes
-MIDI_ENABLE = yes
-TAP_DANCE_ENABLE = yes
diff --git a/keyboards/preonic/keymaps/nikchi/keymap.c b/keyboards/preonic/keymaps/nikchi/keymap.c
index e14f8f0052..50589039b7 100644
--- a/keyboards/preonic/keymaps/nikchi/keymap.c
+++ b/keyboards/preonic/keymaps/nikchi/keymap.c
@@ -111,20 +111,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
};
#ifdef AUDIO_ENABLE
-float tone_startup[][2] = {
- {NOTE_B5, 20},
- {NOTE_B6, 8},
- {NOTE_DS6, 20},
- {NOTE_B6, 8}
-};
-
float tone_qwerty[][2] = SONG(QWERTY_SOUND);
float tone_dvorak[][2] = SONG(DVORAK_SOUND);
float tone_colemak[][2] = SONG(COLEMAK_SOUND);
-
-float tone_goodbye[][2] = SONG(GOODBYE_SOUND);
-
-float music_scale[][2] = SONG(MUSIC_SCALE_SOUND);
#endif
void persistent_default_layer_set(uint16_t default_layer) {
@@ -177,36 +166,3 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
}
return true;
};
-
-void matrix_init_user(void) {
- #ifdef AUDIO_ENABLE
- startup_user();
- #endif
-}
-
-#ifdef AUDIO_ENABLE
-
-void startup_user(void)
-{
- _delay_ms(20); // gets rid of tick
- PLAY_SONG(tone_startup);
-}
-
-void shutdown_user(void)
-{
- PLAY_SONG(tone_goodbye);
- _delay_ms(150);
- stop_all_notes();
-}
-
-void music_on_user(void)
-{
- music_scale_user();
-}
-
-void music_scale_user(void)
-{
- PLAY_SONG(music_scale);
-}
-
-#endif
diff --git a/keyboards/preonic/keymaps/peterfalken/config.h b/keyboards/preonic/keymaps/peterfalken/config.h
deleted file mode 100644
index 797bd2c78d..0000000000
--- a/keyboards/preonic/keymaps/peterfalken/config.h
+++ /dev/null
@@ -1,49 +0,0 @@
-/* Copyright 2015-2021 Jack Humbert
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-#pragma once
-
-#ifdef AUDIO_ENABLE
-# define STARTUP_SONG SONG(PREONIC_SOUND)
-// #define STARTUP_SONG SONG(NO_SOUND)
-
-# define DEFAULT_LAYER_SONGS \
- { SONG(QWERTY_SOUND), SONG(COLEMAK_SOUND), SONG(DVORAK_SOUND) }
-#endif
-
-/*
- * MIDI options
- */
-
-/* enable basic MIDI features:
- - MIDI notes can be sent when in Music mode is on
-*/
-
-#define MIDI_BASIC
-
-/* enable advanced MIDI features:
- - MIDI notes can be added to the keymap
- - Octave shift and transpose
- - Virtual sustain, portamento, and modulation wheel
- - etc.
-*/
-//#define MIDI_ADVANCED
-
-/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
-//#define MIDI_TONE_KEYCODE_OCTAVES 2
-
-// Most tactile encoders have detents every 4 stages
-#define ENCODER_RESOLUTION 4
diff --git a/keyboards/preonic/keymaps/peterfalken/keymap.c b/keyboards/preonic/keymaps/peterfalken/keymap.c
deleted file mode 100644
index 7123ba7669..0000000000
--- a/keyboards/preonic/keymaps/peterfalken/keymap.c
+++ /dev/null
@@ -1,92 +0,0 @@
-// Copyright 2023 Peter.Falken (@PeterFalken)
-// SPDX-License-Identifier: GPL-2.0-or-later
-
-#include "muse.h"
-#include "peterfalken.h"
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-/* Qwerty
- * ,-----------------------------------------------------------------------------------.
- * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Del |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | Esc | Q | W | E | R | T | Y | U | I | O | P | Bksp |
- * |------+------+------+------+------+-------------+------+------+------+------+------|
- * | Tab | A | S | D | F | G | H | J | K | L | ; | " |
- * |------+------+------+------+------+------|------+------+------+------+------+------|
- * | Shift| Z | X | C | V | B | N | M | , | . | / |Enter |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | ▽ | Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right |
- * `-----------------------------------------------------------------------------------'
- */
-[_QWERTY] = LAYOUT_preonic_grid(
- KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL,
- KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,
- KC_TAB, 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_ENT,
- _______, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT
-),
-
-/* Lower
- * ,-----------------------------------------------------------------------------------.
- * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Del |
- * |------+------+------+------+------+-------------+------+------+------+------+------|
- * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp |
- * |------+------+------+------+------+-------------+------+------+------+------+------|
- * | Del | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | |
- * |------+------+------+------+------+------|------+------+------+------+------+------|
- * | ▽ | F7 | F8 | F9 | F10 | F11 | F12 |ISO ~ |ISO | | Home | End | ▽ |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | ▽ | ▽ | ▽ | ▽ | ▽ | ▽ ▽ | ▽ | Next | Vol- | Vol+ | Play |
- * `-----------------------------------------------------------------------------------'
- */
-[_LOWER] = LAYOUT_preonic_grid(
- KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL,
- KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC,
- KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE,
- _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,S(KC_NUHS),S(KC_NUBS),KC_HOME, KC_END, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY
-),
-
-/* Raise
- * ,-----------------------------------------------------------------------------------.
- * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Del |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp |
- * |------+------+------+------+------+-------------+------+------+------+------+------|
- * | Del | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ |
- * |------+------+------+------+------+------|------+------+------+------+------+------|
- * | ▽ | F7 | F8 | F9 | F10 | F11 | F12 |ISO # |ISO / | Pg Up| Pg Dn| ▽ |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | ▽ | ▽ | ▽ | ▽ | ▽ | ▽ ▽ | ▽ | Next | Vol- | Vol+ | Play |
- * `-----------------------------------------------------------------------------------'
- */
-[_RAISE] = LAYOUT_preonic_grid(
- KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, 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_BSPC,
- KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS,
- _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NUHS, KC_NUBS, KC_PGUP, KC_PGDN, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY
-),
-
-/* Adjust (Lower + Raise)
- * ,-----------------------------------------------------------------------------------.
- * | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | RSET | ▽ | M.AP | M.AL | LPAD | ▽ | ▽ | ▽ | ▽ | ▽ | ▽ | Bksp |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | ▽ | ▽ | ▽ | ▽ | ▽ | ▽ | ▽ | ▽ | ▽ | ▽ | ▽ | SLEP |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | CPWD | UN | CU | CO | PA | MV | ▽ | ▽ | ▽ | ▽ | ▽ | ▽ |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | ▽ | ▽ | ▽ | ▽ | ▽ | ▽ ▽ | ▽ | ▽ | ▽ | ▽ | ▽ |
- * `-----------------------------------------------------------------------------------'
- */
-[_ADJUST] = LAYOUT_preonic_grid(
- KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,
- QK_BOOT, _______, CK_M1, KC_MCTL, KC_LPAD, _______, _______, _______, _______, _______, _______, KC_BSPC,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, CK_SLP,
- CK_CW, _______, CK_CU, CK_CO, CK_PA, CK_MV, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
-)
-
-};
diff --git a/keyboards/preonic/keymaps/peterfalken/readme.md b/keyboards/preonic/keymaps/peterfalken/readme.md
deleted file mode 100644
index f64d682a51..0000000000
--- a/keyboards/preonic/keymaps/peterfalken/readme.md
+++ /dev/null
@@ -1,14 +0,0 @@
-Copyright 2023 LEG <ucaboys@gmail.com> @PeterFalken
-
-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/>.
diff --git a/keyboards/preonic/keymaps/peterfalken/rules.mk b/keyboards/preonic/keymaps/peterfalken/rules.mk
deleted file mode 100644
index a33c6c1ddb..0000000000
--- a/keyboards/preonic/keymaps/peterfalken/rules.mk
+++ /dev/null
@@ -1,8 +0,0 @@
-# Setup keymap QMK features
-# TODO: Check for space optimizations
-AUDIO_ENABLE = yes # Enable Audio Output
-ENCODER_ENABLE = no # Disable encoder
-
-ifeq ($(strip $(AUDIO_ENABLE)), yes)
- SRC += muse.c
-endif
diff --git a/keyboards/preonic/keymaps/rmeli/config.h b/keyboards/preonic/keymaps/rmeli/config.h
deleted file mode 100644
index 6f8b8b6c70..0000000000
--- a/keyboards/preonic/keymaps/rmeli/config.h
+++ /dev/null
@@ -1,45 +0,0 @@
-/* Copyright 2015-2021 Jack Humbert
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-#pragma once
-
-#ifdef AUDIO_ENABLE
-# define STARTUP_SONG SONG(PREONIC_SOUND)
-// #define STARTUP_SONG SONG(NO_SOUND)
-
-# define DEFAULT_LAYER_SONGS \
- { SONG(QWERTY_SOUND), SONG(COLEMAK_SOUND), SONG(DVORAK_SOUND) }
-#endif
-
-#define MUSIC_MASK (keycode != KC_NO)
-
-/*
- * MIDI options
- */
-
-/* enable basic MIDI features:
- - MIDI notes can be sent when in Music mode is on
-*/
-
-#define MIDI_BASIC
-
-/* enable advanced MIDI features:
- - MIDI notes can be added to the keymap
- - Octave shift and transpose
- - Virtual sustain, portamento, and modulation wheel
- - etc.
-*/
-//#define MIDI_ADVANCED
diff --git a/keyboards/preonic/keymaps/rmeli/keymap.c b/keyboards/preonic/keymaps/rmeli/keymap.c
deleted file mode 100644
index 0a16dc8bf7..0000000000
--- a/keyboards/preonic/keymaps/rmeli/keymap.c
+++ /dev/null
@@ -1,231 +0,0 @@
-/* Copyright 2015-2021 Jack Humbert
- * Copyright 2022 Rocco Meli <@RMeli>
- *
- * 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 "muse.h"
-
-#include "rmeli.h"
-
-enum preonic_layers { _QWERTY, _COLEMAK, _LOWER, _RAISE, _ADJUST };
-enum preonic_keycodes { QWERTY = SAFE_RANGE, COLEMAK, LOWER, RAISE, BACKLIT };
-
-#define ____________________BOTTOM_L_x6_____________________ BACKLIT, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC
-#define ____________________BOTTOM_R_x6_____________________ KC_ENT, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT
-
-/* LAYOUT
- *
- * ,-----------------------------------------------------------.
- * | | | | | | | | | | | | |
- * |----+----+----+----+----+----+----+----+----+----+----+----|
- * | | | | | | | | | | | | |
- * |----+----+----+----+----+----+----+----+----+----+----+----|
- * | | | | | | | | | | | | |
- * |----+----+----+----+----+----+----+----+----+----+----+----|
- * | | | | | | | | | | | | |
- * |----+----+----+----+----+----+----+----+----+----+----+----|
- * | | | | | | | | | | | | |
- * `----+----+----+----+----+----+----+----+----+----+----+----'
- */
-
-// Define wrapper for standard CRKB layout
-#define LAYOUT_wrapper(...) LAYOUT_preonic_grid(__VA_ARGS__)
-
-// clang-format off
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
-[_QWERTY] = LAYOUT_wrapper(
- ___________________NUMBER_LEFT_x6___________________, ___________________NUMBER_RIGHT_x6__________________,
- ___________________QWERTY_L1_x6_____________________, ___________________QWERTY_R1_x6_____________________,
- ___________________QWERTY_L2_x6_____________________, ___________________QWERTY_R2_x6_____________________,
- ___________________QWERTY_L3_x6_____________________, ___________________QWERTY_R3_x6_____________________,
- ____________________BOTTOM_L_x6_____________________, ____________________BOTTOM_R_x6_____________________
-),
-
-[_COLEMAK] = LAYOUT_wrapper(
- ___________________NUMBER_LEFT_x6___________________, ___________________NUMBER_RIGHT_x6__________________,
- ________________COLEMAK_MOD_DH_L1_x6________________, ________________COLEMAK_MOD_DH_R1_x6________________,
- ________________COLEMAK_MOD_DH_L2_x6________________, ________________COLEMAK_MOD_DH_R2_x6________________,
- ________________COLEMAK_MOD_DH_L3_x6________________, ________________COLEMAK_MOD_DH_R3_x6________________,
- ____________________BOTTOM_L_x6_____________________, ____________________BOTTOM_R_x6_____________________
-),
-
-[_LOWER] = LAYOUT_wrapper(
- ____________________FUNC_LEFT_x6____________________, ____________________FUNC_RIGHT_x6___________________,
- ___________________NUMBER_LEFT_x6___________________, ___________________NUMBER_RIGHT_x6__________________,
- _______, ______________UNICODE_L2_x5________________, ________________NAV_R2_x5__________________, XXXXXXX,
- _______, ______________UNICODE_L3_x5________________, ________________NAV_R3_x5__________________, _______,
- ______________________BLANK_6x______________________, ______________________BLANK_6x______________________
-),
-
-[_RAISE] = LAYOUT_wrapper(
- ___________________NUMBER_LEFT_x6___________________, ___________________NUMBER_RIGHT_x6__________________,
- ___________________SYMBOL_LEFT_x6___________________, ___________________SYMBOL_RIGHT_x6__________________,
- _______, ____________NAV_VIM_x4____________, XXXXXXX, ____________________SYMBOL_R2_x6____________________,
- _______, _________________NONE_5x___________________, ____________________SYMBOL_R3_x6____________________,
- ______________________BLANK_6x______________________, ______________________BLANK_6x______________________
-),
-
-[_ADJUST] = LAYOUT_wrapper(
- QK_BOOT, _________________NONE_5x___________________, ______________________NONE_6x_______________________,
- XXXXXXX, MU_ON, AU_ON, MI_ON, XXXXXXX, XXXXXXX, _______________CONFIG_R1_x5________________, QWERTY,
- QK_BOOT, MU_NEXT, AU_TOGG, MI_TOGG, XXXXXXX, XXXXXXX, _______________CONFIG_R2_x5________________, XXXXXXX,
- XXXXXXX, MU_OFF, AU_OFF, MI_OFF, XXXXXXX, XXXXXXX, _______________CONFIG_R3_x5________________, COLEMAK,
- ______________________BLANK_6x______________________, ______________________BLANK_6x______________________
-)
-};
-// clang-format on
-
-bool process_record_user(uint16_t keycode, keyrecord_t *record) {
- switch (keycode) {
- case QWERTY:
- if (record->event.pressed) {
- set_single_persistent_default_layer(_QWERTY);
- }
- return false;
- break;
- case COLEMAK:
- if (record->event.pressed) {
- set_single_persistent_default_layer(_COLEMAK);
- }
- return false;
- break;
- case LOWER:
- if (record->event.pressed) {
- layer_on(_LOWER);
- update_tri_layer(_LOWER, _RAISE, _ADJUST);
- } else {
- layer_off(_LOWER);
- update_tri_layer(_LOWER, _RAISE, _ADJUST);
- }
- return false;
- break;
- case RAISE:
- if (record->event.pressed) {
- layer_on(_RAISE);
- update_tri_layer(_LOWER, _RAISE, _ADJUST);
- } else {
- layer_off(_RAISE);
- update_tri_layer(_LOWER, _RAISE, _ADJUST);
- }
- return false;
- break;
- case BACKLIT:
- if (record->event.pressed) {
- register_code(KC_RSFT);
-#ifdef BACKLIGHT_ENABLE
- backlight_step();
-#endif
-#ifdef RGBLIGHT_ENABLE
- rgblight_step();
-#endif
-#ifdef __AVR__
- writePinLow(E6);
-#endif
- } else {
- unregister_code(KC_RSFT);
-#ifdef __AVR__
- writePinHigh(E6);
-#endif
- }
- return false;
- break;
- }
- return true;
-};
-
-bool muse_mode = false;
-uint8_t last_muse_note = 0;
-uint16_t muse_counter = 0;
-uint8_t muse_offset = 70;
-uint16_t muse_tempo = 50;
-
-bool encoder_update_user(uint8_t index, bool clockwise) {
- if (muse_mode) {
- if (IS_LAYER_ON(_RAISE)) {
- if (clockwise) {
- muse_offset++;
- } else {
- muse_offset--;
- }
- } else {
- if (clockwise) {
- muse_tempo += 1;
- } else {
- muse_tempo -= 1;
- }
- }
- } else {
- if (clockwise) {
- register_code(KC_PGDN);
- unregister_code(KC_PGDN);
- } else {
- register_code(KC_PGUP);
- unregister_code(KC_PGUP);
- }
- }
- return true;
-}
-
-bool dip_switch_update_user(uint8_t index, bool active) {
- switch (index) {
- case 0:
- if (active) {
- layer_on(_ADJUST);
- } else {
- layer_off(_ADJUST);
- }
- break;
- case 1:
- if (active) {
- muse_mode = true;
- } else {
- muse_mode = false;
- }
- }
- return true;
-}
-
-void matrix_scan_user(void) {
-#ifdef AUDIO_ENABLE
- if (muse_mode) {
- if (muse_counter == 0) {
- uint8_t muse_note = muse_offset + SCALE[muse_clock_pulse()];
- if (muse_note != last_muse_note) {
- stop_note(compute_freq_for_midi_note(last_muse_note));
- play_note(compute_freq_for_midi_note(muse_note), 0xF);
- last_muse_note = muse_note;
- }
- }
- muse_counter = (muse_counter + 1) % muse_tempo;
- } else {
- if (muse_counter) {
- stop_all_notes();
- muse_counter = 0;
- }
- }
-#endif
-}
-
-bool music_mask_user(uint16_t keycode) {
- switch (keycode) {
- case RAISE:
- case LOWER:
- return false;
- default:
- return true;
- }
-}
diff --git a/keyboards/preonic/keymaps/rmeli/readme.md b/keyboards/preonic/keymaps/rmeli/readme.md
deleted file mode 100644
index e911968dd9..0000000000
--- a/keyboards/preonic/keymaps/rmeli/readme.md
+++ /dev/null
@@ -1 +0,0 @@
-# The default Preonic layout - largely based on the Planck's \ No newline at end of file
diff --git a/keyboards/preonic/keymaps/rmeli/rules.mk b/keyboards/preonic/keymaps/rmeli/rules.mk
deleted file mode 100644
index 3903cc1228..0000000000
--- a/keyboards/preonic/keymaps/rmeli/rules.mk
+++ /dev/null
@@ -1,12 +0,0 @@
-TAP_DANCE_ENABLE = yes
-AUTO_SHIFT_ENABLE = no
-
-MAGIC_ENABLE = yes
-
-UNICODEMAP_ENABLE = yes
-
-# Turn off rev3_drop options
-RGBLIGHT_ENABLE = no
-MOUSEKEY_ENABLE = no
-
-SRC += muse.c
diff --git a/keyboards/preonic/keymaps/smt/keymap.c b/keyboards/preonic/keymaps/smt/keymap.c
index 7dd9545261..22f6c39a92 100644
--- a/keyboards/preonic/keymaps/smt/keymap.c
+++ b/keyboards/preonic/keymaps/smt/keymap.c
@@ -158,20 +158,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
};
#ifdef AUDIO_ENABLE
-float tone_startup[][2] = {
- {NOTE_B5, 20},
- {NOTE_B6, 8},
- {NOTE_DS6, 20},
- {NOTE_B6, 8}
-};
-
float tone_qwerty[][2] = SONG(QWERTY_SOUND);
float tone_colemak[][2] = SONG(COLEMAK_SOUND);
float tone_dvorak[][2] = SONG(DVORAK_SOUND);
-
-float tone_goodbye[][2] = SONG(GOODBYE_SOUND);
-
-float music_scale[][2] = SONG(MUSIC_SCALE_SOUND);
#endif
void persistent_default_layer_set(uint16_t default_layer) {
@@ -242,36 +231,3 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
}
return true;
};
-
-void matrix_init_user(void) {
- #ifdef AUDIO_ENABLE
- startup_user();
- #endif
-}
-
-#ifdef AUDIO_ENABLE
-
-void startup_user(void)
-{
- _delay_ms(20); // gets rid of tick
- PLAY_SONG(tone_startup);
-}
-
-void shutdown_user(void)
-{
- PLAY_SONG(tone_goodbye);
- _delay_ms(150);
- stop_all_notes();
-}
-
-void music_on_user(void)
-{
- music_scale_user();
-}
-
-void music_scale_user(void)
-{
- PLAY_SONG(music_scale);
-}
-
-#endif
diff --git a/keyboards/preonic/keymaps/that_canadian/keymap.c b/keyboards/preonic/keymaps/that_canadian/keymap.c
index 8af796821c..18b2e046e8 100644
--- a/keyboards/preonic/keymaps/that_canadian/keymap.c
+++ b/keyboards/preonic/keymaps/that_canadian/keymap.c
@@ -135,20 +135,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
};
#ifdef AUDIO_ENABLE
-float tone_startup[][2] = {
- {NOTE_B5, 20},
- {NOTE_B6, 8},
- {NOTE_DS6, 20},
- {NOTE_B6, 8}
-};
-
float tone_qwerty[][2] = SONG(QWERTY_SOUND);
float tone_dvorak[][2] = SONG(DVORAK_SOUND);
float tone_colemak[][2] = SONG(COLEMAK_SOUND);
-
-float tone_goodbye[][2] = SONG(GOODBYE_SOUND);
-
-float music_scale[][2] = SONG(MUSIC_SCALE_SOUND);
#endif
void persistant_default_layer_set(uint16_t default_layer) {
@@ -201,36 +190,3 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
}
return true;
};
-
-void matrix_init_user(void) {
- #ifdef AUDIO_ENABLE
- startup_user();
- #endif
-}
-
-#ifdef AUDIO_ENABLE
-
-void startup_user(void)
-{
- _delay_ms(20); // gets rid of tick
- PLAY_SONG(tone_startup);
-}
-
-void shutdown_user(void)
-{
- PLAY_SONG(tone_goodbye);
- _delay_ms(150);
- stop_all_notes();
-}
-
-void music_on_user(void)
-{
- music_scale_user();
-}
-
-void music_scale_user(void)
-{
- PLAY_SONG(music_scale);
-}
-
-#endif
diff --git a/keyboards/preonic/keymaps/uqs/keymap.c b/keyboards/preonic/keymaps/uqs/keymap.c
deleted file mode 100644
index 4e3fdec111..0000000000
--- a/keyboards/preonic/keymaps/uqs/keymap.c
+++ /dev/null
@@ -1,117 +0,0 @@
-// Copyright 2022 Ulrich Spörlein (@uqs)
-// SPDX-License-Identifier: GPL-2.0-or-later
-// vi:et sw=4 cc=5,15,25,35,45,55,65:
-
-#include "uqs.h"
-
-/*
- * My custom layout macro that allows for easy diff(1) operations between
- * various keyboards. It probably doesn't make sense to you.
- */
-#define LAYOUT_uqs( \
- k00, k01, k02, k03, k04, k05, \
- k10, k11, k12, k13, k14, k15, \
- k20, k21, k22, k23, k24, k25, \
- k30, k31, k32, k33, k34, k35, \
- k43, k44, \
- k40, k41, k42, \
- k06, k07, k08, k09, k0a, k0b, \
- k16, k17, k18, k19, k1a, k1b, \
- k26, k27, k28, k29, k2a, k2b, \
- k36, k37, k38, k39, k3a, k3b, \
- k46, k48, \
- k49, k4a, k4b \
-) \
-LAYOUT_preonic_2x2u( \
- k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, \
- k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, \
- k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, \
- k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, \
- k40, k41, k42, k43, k44, k46, k48, k49, k4a, k4b \
-)
-
-// clang-format off
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [L_QWER] = LAYOUT_uqs(
- KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5,
- KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T,
- KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G,
- KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B,
-
- /*thumb*/ LT_EXTD_ESC, KC_SPC,
- /*aux*/ KC_NO, KC_LGUI, KC_LALT,
- KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINUS,
- KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS,
- KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
- KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,
- /*thumb*/ KC_ENT, LT_NUM_BSPC,
- /*aux*/ MO(L_FUNC), KC_NO, KC_NO
- ),
- [L_EXTD] = LAYOUT_uqs(
- KC_F11, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5,
- _______, KC_BTN1, KC_SCTAB, KC_PGUP, KC_CTAB, QK_LEAD,
- _______, OSM_GUI, OSM_ALT, OSM_SFT, OSM_CTL, KC_RALT,
- _______, ALT_TAB, MS_WHUP, MS_WHDN, KC_PGDN, INS_HARD,
- /*thumb*/ _______, _______,
- /*aux*/ _______, _______, _______,
- /* ^^^^ can't be used */
- KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F12,
- KC_HOME, KC_PGDN, KC_PGUP, KC_END, KC_INS, KC_NO,
- KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_DEL, KC_NO,
- WIN_LEFT, WIN_DN, WIN_UP, WIN_RGHT, KC_PSTE, KC_NO,
- /*thumb*/ _______, KC_BSPC,
- /*aux*/ _______, _______, KC_ENTER
- /* ^^^^ use these */
- ),
-
- [L_NUM] = LAYOUT_uqs(
- KC_F11, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5,
- _______, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC,
- _______, KC_SCLN, KC_COLN, KC_LCBR, KC_LPRN, KC_LBRC,
- _______, KC_CIRC, KC_AMPR, KC_RCBR, KC_RPRN, KC_RBRC,
- /*thumb*/ KC_ESC, _______,
- /*aux*/ _______, _______, _______,
- /* ^^^^ use these */
- KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F12,
- KC_EQUAL, KC_7, KC_8, KC_9, KC_KP_PLUS,_______,
- KC_KP_ASTERISK,KC_4,KC_5, KC_6, MINS_UNDSCR,_______,
- KC_COMM, KC_1, KC_2, KC_3, KC_KP_SLASH,KC_KP_ENTER, // Enter here, because thumb is occupied
- /*thumb*/ _______, _______,
- /*aux*/ KC_0, KC_KP_DOT, _______
- /* ^^^^ can't be used */
- ),
-
- [L_FUNC] = LAYOUT_uqs(
- _______, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
- _______, KC_NO, KC_MUTE, KC_VOLD, KC_VOLU, KC_NO,
- _______, KC_LGUI, KC_LALT, KC_LSFT, KC_LCTL, KC_NO,
- _______, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
- /*thumb*/ _______, _______,
- /*aux*/ _______, _______, _______,
- /* ^^^^ use these */
- KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
- KC_PSCR, KC_F7, KC_F8, KC_F9, KC_F10, KC_NO,
- KC_SCRL, KC_F4, KC_F5, KC_F6, KC_F11, KC_NO,
- KC_PAUS, KC_F1, KC_F2, KC_F3, KC_F12, KC_NO,
- /*thumb*/ _______, _______,
- /*aux*/ _______, _______, _______
- /* ^^^^ can't be used */
- ),
-
- [L_MOUSE] = LAYOUT_uqs(
- KC_NO, _______, _______, _______, _______, _______,
- KC_NO, KC_NO, KC_BTN2, KC_BTN3, KC_BTN1, KC_VOLU,
- KC_NO, KC_NO, KC_ACL0, KC_ACL1, KC_ACL2, KC_VOLD,
- KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_MUTE,
- /*thumb*/ _______, _______,
- /*aux*/ _______, _______, _______,
- /* ^^^^ can't be used */
- _______, _______, _______, _______, _______, _______,
- _______, _______, KC_MS_UP, MS_WHUP, _______, _______,
- MS_WHLEFT,KC_MS_L, KC_MS_D, KC_MS_R, MS_WHRGHT,_______,
- _______, MS_WHDN, KC_BTN3, KC_BTN4, KC_BTN5, _______,
- /*thumb*/ KC_BTN1, KC_BTN2,
- /*aux*/ KC_NO, KC_NO, KC_NO
- /* use these ^^^^ */
- ),
-};
diff --git a/keyboards/preonic/keymaps/uqs/rules.mk b/keyboards/preonic/keymaps/uqs/rules.mk
deleted file mode 100644
index ca99fa107c..0000000000
--- a/keyboards/preonic/keymaps/uqs/rules.mk
+++ /dev/null
@@ -1,14 +0,0 @@
-LTO_ENABLE=no
-AUDIO_ENABLE=no
-ENCODER_ENABLE=no
-
-# Broken with gcc >6, see https://github.com/qmk/qmk_firmware/issues/6753
-# (yes, different option, but I suspect the code has moved around)
-# This produces working firmware on Arch Linux with GCC 11, but is still broken
-# on Debian with 8.3.1
-RGBLIGHT_ENABLE=no
-RGB_MATRIX_ENABLE=no
-
-# not required, but helps on debian where there is a soft/hard float confusion.
-# but see above, gcc 8.3.1 still fucks up the firmware.
-USE_FPU=no
diff --git a/keyboards/preonic/keymaps/xulkal/keymap.c b/keyboards/preonic/keymaps/xulkal/keymap.c
deleted file mode 100644
index f63316e0cd..0000000000
--- a/keyboards/preonic/keymaps/xulkal/keymap.c
+++ /dev/null
@@ -1,150 +0,0 @@
-#include QMK_KEYBOARD_H
-#include "xulkal.h"
-
-#include "muse.h"
-
-#define EXPAND_LAYOUT(...) LAYOUT_preonic_grid(__VA_ARGS__)
-
-// Define your non-alpha grouping in this define's LAYOUT, and all your BASE_LAYERS will share the same mod/macro columns
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- /* Qwerty Layout
- * ,------------------------------------------------. ,------------------------------------------------.
- * | GESC | 1 | 2 | 3 | 4 | 5 | - | | = | 6 | 7 | 8 | 9 | 0 | BkSp |
- * |------+------+------+------+------+------|------| |------|------+------+------+------+------+------|
- * | Tab | Q | W | E | R | T | [ | | ] | Y | U | I | O | P | \ |
- * |------+------+------+------+------+------|------| |------|------+------+------+------+------+------|
- * |FN(CAPS)| A | S | D | F | G | ` | | ' | H | J | K | L | ; | Enter|
- * |------+------+------+------+------+------+------| |------+------+------+------+------+------+------|
- * | Sft[ | Z | X | C | V | B | RGB | |RGBRST| N | M | , | . | / | Sft] |
- * |------+------+------+------+------+------+------| |------+------+------+------+------+------+------|
- * | Ctrl | Win | LOWER| RAISE| Alt | Space|RGBRMOD| |RGBMOD| Space| Left | Up | Down | Right| Ctrl |
- * |------+------+------+------+------+------+------| |------+------+------+------+------+------+------'
- * | Space| DEL | | Enter| Space|
- * `-------------' `-------------'
- */
- [_QWERTY] = EXPAND_LAYOUT(
- _________________QWERTY_L1_________________, _________________QWERTY_R1_________________,
- _________________QWERTY_L2_________________, _________________QWERTY_R2_________________,
- _________________QWERTY_L3_________________, _________________QWERTY_R3_________________,
- _________________QWERTY_L4_________________, _________________QWERTY_R4_________________,
- _________________QWERTY_L5_________________, _________________QWERTY_R5_________________
- ),
-
-#ifndef GAMELAYER_DISABLE
- [_GAME] = EXPAND_LAYOUT(
- ___________________GAME_L1_________________, ___________________GAME_R1_________________,
- ___________________GAME_L2_________________, ___________________GAME_R2_________________,
- ___________________GAME_L3_________________, ___________________GAME_R3_________________,
- ___________________GAME_L4_________________, ___________________GAME_R4_________________,
- ___________________GAME_L5_________________, ___________________GAME_R5_________________
- ),
-#endif
-
- [_LOWER] = EXPAND_LAYOUT(
- __________________LOWER_L1_________________, __________________LOWER_R1_________________,
- __________________LOWER_L2_________________, __________________LOWER_R2_________________,
- __________________LOWER_L3_________________, __________________LOWER_R3_________________,
- __________________LOWER_L4_________________, __________________LOWER_R4_________________,
- __________________LOWER_L5_________________, __________________LOWER_R5_________________
- ),
-
- [_RAISE] = EXPAND_LAYOUT(
- __________________RAISE_L1_________________, __________________RAISE_R1_________________,
- __________________RAISE_L2_________________, __________________RAISE_R2_________________,
- __________________RAISE_L3_________________, __________________RAISE_R3_________________,
- __________________RAISE_L4_________________, __________________RAISE_R4_________________,
- __________________RAISE_L5_________________, __________________RAISE_R5_________________
- ),
-
-#ifdef TRILAYER_ENABLED
- [_ADJUST] = EXPAND_LAYOUT(
- _________________ADJUST_L1_________________, _________________ADJUST_R1_________________,
- _________________ADJUST_L2_________________, _________________ADJUST_R2_________________,
- _________________ADJUST_L3_________________, _________________ADJUST_R3_________________,
- _________________ADJUST_L4_________________, _________________ADJUST_R4_________________,
- _________________ADJUST_L5_________________, _________________ADJUST_R5_________________
- ),
-#endif
-};
-
-bool muse_mode = false;
-uint8_t last_muse_note = 0;
-uint16_t muse_counter = 0;
-uint8_t muse_offset = 70;
-uint16_t muse_tempo = 50;
-
-bool encoder_update_user(uint8_t index, bool clockwise) {
- if (muse_mode) {
- if (IS_LAYER_ON(_RAISE)) {
- if (clockwise) {
- muse_offset++;
- } else {
- muse_offset--;
- }
- } else {
- if (clockwise) {
- muse_tempo+=1;
- } else {
- muse_tempo-=1;
- }
- }
- } else {
- if (clockwise) {
- register_code(KC_PGDN);
- unregister_code(KC_PGDN);
- } else {
- register_code(KC_PGUP);
- unregister_code(KC_PGUP);
- }
- }
- return true;
-}
-
-bool dip_switch_update_user(uint8_t index, bool active) {
- switch (index) {
- case 0:
- if (active) {
- layer_on(_ADJUST);
- } else {
- layer_off(_ADJUST);
- }
- break;
- case 1:
- if (active) {
- muse_mode = true;
- } else {
- muse_mode = false;
- #ifdef AUDIO_ENABLE
- stop_all_notes();
- #endif
- }
- }
- return true
-}
-
-void matrix_scan_user(void) {
- #ifdef AUDIO_ENABLE
- if (muse_mode) {
- if (muse_counter == 0) {
- uint8_t muse_note = muse_offset + SCALE[muse_clock_pulse()];
- if (muse_note != last_muse_note) {
- stop_note(compute_freq_for_midi_note(last_muse_note));
- play_note(compute_freq_for_midi_note(muse_note), 0xF);
- last_muse_note = muse_note;
- }
- }
- muse_counter = (muse_counter + 1) % muse_tempo;
- }
- #endif
-}
-
-bool music_mask_user(uint16_t keycode) {
- switch (keycode) {
- case RAISE:
- case LOWER:
- return false;
- default:
- return true;
- }
-}
diff --git a/keyboards/preonic/keymaps/xulkal/rules.mk b/keyboards/preonic/keymaps/xulkal/rules.mk
deleted file mode 100644
index f7e76252cd..0000000000
--- a/keyboards/preonic/keymaps/xulkal/rules.mk
+++ /dev/null
@@ -1,6 +0,0 @@
-SRC += muse.c
-
-ENCODER_ENABLE = no
-
-OPT_DEFS += -DTRILAYER_ENABLED
-OPT_DEFS += -DAUDIO_CLICKY
diff --git a/keyboards/preonic/keymaps/zach/zach_common_functions.c b/keyboards/preonic/keymaps/zach/zach_common_functions.c
index ae5f44e713..ba6c402526 100644
--- a/keyboards/preonic/keymaps/zach/zach_common_functions.c
+++ b/keyboards/preonic/keymaps/zach/zach_common_functions.c
@@ -52,7 +52,6 @@ enum my_keycodes{
#ifdef AUDIO_ENABLE
#include "audio.h"
-float tone_startup[][2] = SONG(STARTUP_SOUND);
float tone_goodbye[][2] = SONG(GOODBYE_SOUND);
float tone_colemak[][2] = SONG(COLEMAK_SOUND);
float tone_swcole[][2] = SONG(QWERTY_SOUND);
@@ -414,32 +413,5 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
return true;
};
-void matrix_init_user(void){ // Run once at startup
- #ifdef AUDIO_ENABLE
- _delay_ms(50); // gets rid of tick
- PLAY_SONG(tone_startup);
- #endif
-}
-
-#ifdef AUDIO_ENABLE
-void play_goodbye_tone(void){
- PLAY_SONG(tone_goodbye);
- _delay_ms(150);
-}
-
-void shutdown_user(void){
- PLAY_SONG(tone_goodbye);
- _delay_ms(150);
- stop_all_notes();
-}
-
-void music_on_user(void){ // Run when the music layer is turned on
- PLAY_SONG(tone_startup);
-}
-
-void music_off_user(void){ // Run when music is turned off
- PLAY_SONG(tone_goodbye);
-}
-#endif
#endif
diff --git a/keyboards/preonic/rev3/config.h b/keyboards/preonic/rev3/config.h
index 3d64a4a34a..0ca96c9164 100644
--- a/keyboards/preonic/rev3/config.h
+++ b/keyboards/preonic/rev3/config.h
@@ -17,8 +17,6 @@
#pragma once
-#define DIP_SWITCH_PINS { B14, A15, A0, B9 }
-
#define MUSIC_MAP
#undef AUDIO_VOICES
#undef AUDIO_PIN
diff --git a/keyboards/preonic/rev3/info.json b/keyboards/preonic/rev3/info.json
index 75688a33b2..6112699cfa 100644
--- a/keyboards/preonic/rev3/info.json
+++ b/keyboards/preonic/rev3/info.json
@@ -33,6 +33,9 @@
"rows": ["A10", "A9", "A8", "B15", "C13", "C14", "C15", "A2", "A3", "A6"]
},
"diode_direction": "COL2ROW",
+ "dip_switch": {
+ "pins": ["B14", "A15", "A0", "B9"]
+ },
"encoder": {
"rotary": [
{"pin_a": "B12", "pin_b": "B13"}
diff --git a/keyboards/preonic/rev3_drop/config.h b/keyboards/preonic/rev3_drop/config.h
index 3d64a4a34a..0ca96c9164 100644
--- a/keyboards/preonic/rev3_drop/config.h
+++ b/keyboards/preonic/rev3_drop/config.h
@@ -17,8 +17,6 @@
#pragma once
-#define DIP_SWITCH_PINS { B14, A15, A0, B9 }
-
#define MUSIC_MAP
#undef AUDIO_VOICES
#undef AUDIO_PIN
diff --git a/keyboards/preonic/rev3_drop/info.json b/keyboards/preonic/rev3_drop/info.json
index fed4acb01f..79487deaab 100644
--- a/keyboards/preonic/rev3_drop/info.json
+++ b/keyboards/preonic/rev3_drop/info.json
@@ -33,6 +33,9 @@
"rows": ["A10", "A9", "A8", "B15", "C13", "C14", "C15", "A2", "A3", "A6"]
},
"diode_direction": "COL2ROW",
+ "dip_switch": {
+ "pins": ["B14", "A15", "A0", "B9"]
+ },
"encoder": {
"rotary": [
{"pin_a": "B12", "pin_b": "B13"}
diff --git a/keyboards/primekb/meridian/config.h b/keyboards/primekb/meridian/config.h
index 3bb4f22006..8593536eec 100644
--- a/keyboards/primekb/meridian/config.h
+++ b/keyboards/primekb/meridian/config.h
@@ -17,7 +17,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#pragma once
-#define WS2812_SPI SPID2
+#define WS2812_SPI_DRIVER SPID2
#define WS2812_SPI_MOSI_PAL_MODE 0
#define WS2812_SPI_SCK_PAL_MODE 0
#define WS2812_SPI_SCK_PIN B13
diff --git a/keyboards/primekb/meridian/ws2812/config.h b/keyboards/primekb/meridian/ws2812/config.h
index 3bb4f22006..8593536eec 100644
--- a/keyboards/primekb/meridian/ws2812/config.h
+++ b/keyboards/primekb/meridian/ws2812/config.h
@@ -17,7 +17,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#pragma once
-#define WS2812_SPI SPID2
+#define WS2812_SPI_DRIVER SPID2
#define WS2812_SPI_MOSI_PAL_MODE 0
#define WS2812_SPI_SCK_PAL_MODE 0
#define WS2812_SPI_SCK_PIN B13
diff --git a/keyboards/primekb/prime_e/config.h b/keyboards/primekb/prime_e/config.h
index e3e1572d99..6c8ce4c0ea 100644
--- a/keyboards/primekb/prime_e/config.h
+++ b/keyboards/primekb/prime_e/config.h
@@ -21,5 +21,3 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define LOCKING_SUPPORT_ENABLE
/* Locking resynchronize hack */
#define LOCKING_RESYNC_ENABLE
-
-#define DYNAMIC_KEYMAP_LAYER_COUNT 8
diff --git a/keyboards/primekb/prime_e/info.json b/keyboards/primekb/prime_e/info.json
index f94271be6c..dee7a23e02 100644
--- a/keyboards/primekb/prime_e/info.json
+++ b/keyboards/primekb/prime_e/info.json
@@ -10,6 +10,9 @@
"rows": ["E6", "C7", "B5", "B4"]
},
"diode_direction": "COL2ROW",
+ "dynamic_keymap": {
+ "layer_count": 8
+ },
"processor": "atmega32u4",
"bootloader": "atmel-dfu",
"layouts": {
diff --git a/keyboards/primekb/prime_e/keymaps/brandonschlack/config.h b/keyboards/primekb/prime_e/keymaps/brandonschlack/config.h
deleted file mode 100644
index 8a9aa040f5..0000000000
--- a/keyboards/primekb/prime_e/keymaps/brandonschlack/config.h
+++ /dev/null
@@ -1,30 +0,0 @@
-/* Copyright 2020 Brandon Schlack
- *
- * 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 USE_LEDS_FOR_LAYERS
-#define STOPLIGHT_LED
-
-#define TOP_LED B1
-#define MIDDLE_LED B2
-#define BOTTOM_LED B3
-
-// #define LED_PIN_FLIP
-#ifdef LED_PIN_FLIP
- #define LED_ON(flag) !flag
-#else
- #define LED_ON(flag) flag
-#endif
diff --git a/keyboards/primekb/prime_e/keymaps/brandonschlack/keymap.c b/keyboards/primekb/prime_e/keymaps/brandonschlack/keymap.c
deleted file mode 100644
index 4ff4581235..0000000000
--- a/keyboards/primekb/prime_e/keymaps/brandonschlack/keymap.c
+++ /dev/null
@@ -1,95 +0,0 @@
-/* Copyright 2020 Brandon Schlack
- *
- * 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 "brandonschlack.h"
-
-// Tap Dance declarations
-enum {
- TD_LR_BRC,
- TD_SD_QUOT
-};
-
-// Tap Dance definitions
-tap_dance_action_t tap_dance_actions[] = {
- // Tap once for LBracket, twice for RBracket
- [TD_LR_BRC] = ACTION_TAP_DANCE_DOUBLE(KC_LBRC, KC_RBRC),
- // Tap once for Single Quote, twice for Double Quote
- [TD_SD_QUOT] = ACTION_TAP_DANCE_DOUBLE(KC_QUOT, KC_DQT)
-};
-
-#define LWR_B LT(_LOWER, KC_B)
-#define LWR_EQL LT(_LOWER, KC_EQL)
-#define TD_BRC TD(TD_LR_BRC)
-#define TD_QUOT TD(TD_SD_QUOT)
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [_BASE] = LAYOUT(
- KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, TD_BRC, KC_BSPC,
- HY_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, TD_QUOT, KC_ENT,
- KC_LSFT, KC_Z, KC_X, KC_C, KC_V, LWR_B, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, LOWER,
- KC_LCTL, KC_LOPT, KC_LCMD, SPC_RAI, SPC_RAI, KC_RCMD, KC_ROPT, KC_RCTL
- ),
-
- [_LOWER] = LAYOUT(
- KC_DEL, KC_BRMD, KC_BRMU, MC_MSSN, MC_LHPD, _______, _______, _______, _______, KC_HOME, KC_UP, KC_PGUP, MC_SLPD,
- _______, KC_MUTE, KC_VOLU, NXT_WIN, PRV_TAB, MC_BACK, MC_FWRD, NXT_TAB, _______, KC_LEFT, KC_RGHT, KC_MPLY,
- SF_CAPS, KC_MPRV, KC_VOLD, KC_MNXT, _______, PX_AFLL, OP_AFLL, _______, _______, KC_END, KC_DOWN, KC_PGDN, _______,
- _______, _______, _______, _______, _______, _______, _______, _______
- ),
-
- [_RAISE] = LAYOUT(
- KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_LBRC, KC_RBRC, KC_7, KC_8, KC_9, KC_0, KC_RBRC, _______,
- _______, KC_F5, KC_F6, KC_F7, KC_F8, KC_MINS, KC_PLUS, KC_4, KC_5, KC_6, KC_SCLN, _______,
- _______, KC_F9, KC_F10, KC_F11, KC_F12, LWR_EQL, KC_EQL, KC_1, KC_2, KC_3, _______, KC_BSLS, _______,
- _______, _______, _______, _______, _______, _______, _______, _______
- ),
-
- [_ADJUST] = LAYOUT(
- QM_MAKE, _______, _______, EE_CLR, QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______
- )
-
-/*
- [BLANK] = LAYOUT(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______
- )
- */
-};
-
-void keyboard_pre_init_user(void) {
- setPinOutput(TOP_LED);
- setPinOutput(MIDDLE_LED);
- setPinOutput(BOTTOM_LED);
-}
-
-layer_state_t layer_state_set_keymap(layer_state_t state) {
- state = update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST);
- return state;
-}
-
-#ifdef USE_LEDS_FOR_LAYERS
-bool led_update_keymap(led_t led_state) {
- writePin(TOP_LED, LED_ON(IS_LAYER_ON(_FN1))); // Use for Layer 1
- writePin(MIDDLE_LED, LED_ON(IS_LAYER_ON(_FN2))); // Use for Layer 2
- writePin(BOTTOM_LED, LED_ON(led_state.caps_lock)); // Use for Caps Lock
- return false; // Override default set by KB
-}
-#endif
diff --git a/keyboards/primekb/prime_e/keymaps/brandonschlack/rules.mk b/keyboards/primekb/prime_e/keymaps/brandonschlack/rules.mk
deleted file mode 100644
index c1dfab0c72..0000000000
--- a/keyboards/primekb/prime_e/keymaps/brandonschlack/rules.mk
+++ /dev/null
@@ -1,2 +0,0 @@
-BACKLIGHT_ENABLE = no
-TAP_DANCE_ENABLE = yes
diff --git a/keyboards/primekb/prime_e/keymaps/talljoe/config.h b/keyboards/primekb/prime_e/keymaps/talljoe/config.h
deleted file mode 100644
index 7ecea9c151..0000000000
--- a/keyboards/primekb/prime_e/keymaps/talljoe/config.h
+++ /dev/null
@@ -1,33 +0,0 @@
-/* Copyright 2020 Joseph Wasson
- *
- * 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 SPACE_COUNT 2
-
-#define TEMPLATE( \
- K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K2D, \
- K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \
- K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, \
- K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, \
- K40, K41, K42, K44, K45, K46, K48, K49, K4B, K4C \
-) \
-LAYOUT( \
- K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1D, K2D, \
- K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2C, \
- K30, K32, K33, K34, K35, K36, K2B, K37, K38, K39, K3A, K3B, K3C, \
- K40, K41, K42, K44, K46, K48, K49, K3D \
-)
diff --git a/keyboards/primekb/prime_e/keymaps/talljoe/keymap.c b/keyboards/primekb/prime_e/keymaps/talljoe/keymap.c
deleted file mode 100644
index 7812add812..0000000000
--- a/keyboards/primekb/prime_e/keymaps/talljoe/keymap.c
+++ /dev/null
@@ -1 +0,0 @@
-// This space intentionally left blank
diff --git a/keyboards/primekb/prime_o/keymaps/spacebarracecar/config.h b/keyboards/primekb/prime_o/keymaps/spacebarracecar/config.h
deleted file mode 100644
index 6f70f09bee..0000000000
--- a/keyboards/primekb/prime_o/keymaps/spacebarracecar/config.h
+++ /dev/null
@@ -1 +0,0 @@
-#pragma once
diff --git a/keyboards/primekb/prime_o/keymaps/spacebarracecar/keymap.c b/keyboards/primekb/prime_o/keymaps/spacebarracecar/keymap.c
deleted file mode 100644
index 50607d8127..0000000000
--- a/keyboards/primekb/prime_o/keymaps/spacebarracecar/keymap.c
+++ /dev/null
@@ -1,172 +0,0 @@
-#include QMK_KEYBOARD_H
-#include "spacebarracecar.h"
-
-#define LOWER MO(_LOWER)
-#define RAISE MO(_RAISE)
-
-enum layers {
- _BASE,
- _RAISE,
- _LOWER,
- _GAME = _NAV+1
-};
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
-/* Base
-,---------------------------------------------------------------------------------------------------------------------------------------------------------------.
-|- |* |/ |Backspace|` |1 |2 |3 |4 |5 |6 |7 |8 |9 |0 |\ |
-|---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------|
-| |7 |8 |9 |Tab |Q |W |E |R |T |Z |U |I |O |P |Backspace|
-|+ |---------+---------+---------|---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------|
-| |4 |5 |6 |Esc/Nav |A |S |D |F |G |H |J |K |L |; |' |
-|---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------|
-| |1 |2 |3 |(/LShift |Y |X |C |V |B |N |M |, |. |/ |)/RShift |
-|Enter |---------+---------+---------|---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------|
-| |. |0 |00 |RCtrl | |Alt |Win |Lower |Space |Enter |Raise |Win |AltGr | |LCtrl |
-`---------------------------------------------------------------------------------------------------------------------------------------------------------------'
-*/
-
-[_BASE] = LAYOUT(
- KC_PMNS, KC_PAST, KC_PSLS, KC_BSPC, CU_GRV, DE_1, DE_2, CU_3, DE_4, DE_5, CU_6, CU_7, CU_8, CU_9, CU_0, CU_BSLS,
- KC_PPLS, KC_P7, KC_P8, KC_P9, KC_TAB, DE_Q, DE_W, DE_E, DE_R, DE_T, CU_Z, DE_U, DE_I, DE_O, DE_P, KC_BSPC,
- KC_PPLS, KC_P4, KC_P5, KC_P6, CU_NAV, DE_A, DE_S, DE_D, DE_F, DE_G, DE_H, DE_J, DE_K, DE_L, CU_SCLN, CU_QUOT,
- KC_PENT, KC_P1, KC_P2, KC_P3, CU_LSFT, CU_Y, DE_X, DE_C, DE_V, DE_B, DE_N, DE_M, CU_COMM, CU_DOT, CU_SLSH, CU_RSFT,
- KC_PENT, KC_PDOT, KC_P0, KC_P00, KC_LCTL, XXXXXXX, KC_LGUI, KC_LALT, LOWER, KC_SPC, CTLENT, RAISE, KC_RALT, KC_RGUI, KC_APP, KC_RCTL
-),
-
-/* Lower
-,---------------------------------------------------------------------------------------------------------------------------------------------------------------.
-|- |* |/ |Backspace|` |1 |2 |3 |4 |5 |6 |7 |8 |9 |0 | |
-|---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------|
-| |7 |8 |9 |~ |! |" |# |$ |% |^ |& |* |( |) | |
-|+ |---------+---------+---------|---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------|
-| |4 |5 |6 | |@ |Strg+X |Strg+C |Strg+V | | |_ |+ |{ |} || |
-|---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------|
-| |1 |2 |3 | |? | | | | | | | | | | |
-|Enter |---------+---------+---------|---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------|
-| |. |0 |00 | | | | | | | | | | | | |
-`---------------------------------------------------------------------------------------------------------------------------------------------------------------'
-*/
-
-[_LOWER] = LAYOUT(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, DE_TILD, DE_EXLM, DE_DQUO, DE_HASH, DE_DLR, DE_PERC, CU_CIRC, DE_AMPR, DE_ASTR, DE_LPRN, DE_RPRN, _______,
- _______, _______, _______, _______, _______, DE_AT, CTRLX, CTRLC, CTRLV, XXXXXXX, XXXXXXX, DE_UNDS, DE_PLUS, DE_LCBR, DE_RCBR, DE_PIPE,
- _______, _______, _______, _______, _______, DE_EURO, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, DE_MINS, CU_EQL, CU_LBRC, CU_RBRC, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
-),
-
-/* Raise
-,---------------------------------------------------------------------------------------------------------------------------------------------------------------.
-|- |* |/ |Backspace|` |1 |2 |3 |4 |5 |6 |7 |8 |9 |0 | |
-|---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------|
-| |7 |8 |9 |` |1 |2 |3 |4 |5 |6 |7 |8 |9 |0 | |
-|+ |---------+---------+---------|---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------|
-| |4 |5 |6 | |F1 |F2 |F3 |F4 |F5 |F6 |- |= |[ |] |\ |
-|---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------|
-| |1 |2 |3 | |F7 |F8 |F9 |F10 |F11 |F12 | | | | | |
-|Enter |---------+---------+---------|---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------|
-| |. |0 |00 | | | | | | | | | | | | |
-`---------------------------------------------------------------------------------------------------------------------------------------------------------------'
-*/
-
-[_RAISE] = LAYOUT(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, CU_GRV, DE_1, DE_2, CU_3, DE_4, DE_5, CU_6, CU_7, CU_8, CU_9, CU_0, _______,
- _______, _______, _______, _______, _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, DE_MINS, CU_EQL, CU_LBRC, CU_RBRC, CU_BSLS,
- _______, _______, _______, _______, _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, XXXXXXX, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
-),
-
-/* Deadkey
-,---------------------------------------------------------------------------------------------------------------------------------------------------------------.
-|- |* |/ |Backspace| | | | | | | | | | | | |
-|---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------|
-| |7 |8 |9 | | | | | | | |Ü | |Ö | | |
-|+ |---------+---------+---------|---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------|
-| |4 |5 |6 | |Ä |ß | | | | | | | | | |
-|---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------|
-| |1 |2 |3 | | | | | | | | | | | | |
-|Enter |---------+---------+---------|---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------|
-| |. |0 |00 | | | | | |" |" | | | | | |
-`---------------------------------------------------------------------------------------------------------------------------------------------------------------'
-*/
-
-[_DEADKEY] = LAYOUT(
- _______, _______, _______, _______, CU_ED, CU_ED, CU_ED, CU_ED, CU_ED, CU_ED, CU_ED, CU_ED, CU_ED, CU_ED, CU_ED, CU_ED,
- _______, _______, _______, _______, KC_TAB, CU_ED, CU_ED, CU_ED, CU_ED, CU_ED, CU_ED, CU_UE, CU_ED, CU_OE, CU_ED, _______,
- _______, _______, _______, _______, _______, CU_AE, CU_SS, CU_ED, CU_ED, CU_ED, CU_ED, CU_ED, CU_ED, CU_ED, CU_ED, CU_DDQ,
- _______, _______, _______, _______, _______, CU_ED, CU_ED, CU_ED, CU_ED, CU_ED, CU_ED, CU_ED, CU_ED, CU_ED, CU_ED, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, CU_DDQ, CU_DDQ, _______, _______, _______, _______, _______
-),
-
-/* Navigation
-,---------------------------------------------------------------------------------------------------------------------------------------------------------------.
-|- |* |/ |Numlock |Escape | | | | | | | | | | | |
-|---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------|
-| |7 |8 |9 |ALT F4 |PageDown |Up |PageUp |Home | | | |Win+Up | | |Del |
-|= |---------+---------+---------|---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------|
-| |4 |5 |6 | |Left |Down |Right |End | | |Win+Left |Win+Down |Win+Right| |Enter |
-|---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------|
-| |1 |2 |3 | |Prev |Pause |Next |LowerVol |RaiseVol |Mute | | | | | |
-|Enter |---------+---------+---------|---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------+---------|
-| |. |0 |00 |QK_BOOT |ESCT | | | | | | | | | |Game |
-`---------------------------------------------------------------------------------------------------------------------------------------------------------------'
-*/
-
-[_NAV] = LAYOUT(
- _______, _______, _______, KC_NUM, KC_ESC, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
- CU_EQL, _______, _______, _______, _______, KC_PGDN, KC_UP, KC_PGUP, KC_HOME, XXXXXXX, XXXXXXX, XXXXXXX, GUIU, XXXXXXX, XXXXXXX, KC_DEL,
- CU_EQL, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, KC_END, XXXXXXX, XXXXXXX, GUIL, GUID, GUIR, EMOJI, KC_ENT,
- _______, _______, _______, _______, _______, KC_MPRV, KC_MPLY, KC_MNXT, KC_VOLD, KC_VOLU, KC_MUTE, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______,
- _______, _______, _______, _______, QK_BOOT, ALTF4, _______, _______, _______, KC_SPC, CTLENT, _______, _______, _______, _______, CU_GAME
-),
-
-// Can be used to place macros on the numpad
-[_GAME] = LAYOUT(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
-)
-
-};
-
-bool process_record_keymap(uint16_t keycode, keyrecord_t *record) {
-switch (keycode) {
- case MO(_LOWER):
- if (game){
- if(record->event.pressed) {
- register_code(KC_SPC);
- } else {
- unregister_code(KC_SPC);
- }
- return false;
- } else {
- return true;
- }
- case KC_LALT:
- if (game) {
- if (record->event.pressed){
- layer_on(_RAISE);
- } else {
- layer_off(_RAISE);
- }
- return false;
- } else {
- return true;
- }
- case CU_GAME:
- if(record->event.pressed) {
- if (game)
- layer_on(_GAME);
- else
- layer_off(_GAME);
- }
- return false;
- default:
- return true;
- }
-}
diff --git a/keyboards/primekb/prime_o/keymaps/spacebarracecar/readme.md b/keyboards/primekb/prime_o/keymaps/spacebarracecar/readme.md
deleted file mode 100644
index 7e78330f07..0000000000
--- a/keyboards/primekb/prime_o/keymaps/spacebarracecar/readme.md
+++ /dev/null
@@ -1,6 +0,0 @@
-# SpacebarRacecar US-International Prime_O Keymap for German PCs
-
-This keymap emulates most keys of the US-International layout on PCs that have German set as input language.
-This allows the use of the keyboard on any PC in Germany without the need to change any settings.
-The keymap is mostly based on the Planck default layout but adds essential features for german input, like access to Ä, Ö, Ü, ß.
-Righthand numpad is enabled by default, enable lefthand numpad with #define LEFTNUM and center numpad with #define CENTERNUM.
diff --git a/keyboards/primekb/prime_o/keymaps/spacebarracecar/rules.mk b/keyboards/primekb/prime_o/keymaps/spacebarracecar/rules.mk
deleted file mode 100644
index 5fbd492774..0000000000
--- a/keyboards/primekb/prime_o/keymaps/spacebarracecar/rules.mk
+++ /dev/null
@@ -1,22 +0,0 @@
-# Build Options
-# change to "no" to disable the options, or define them in the Makefile in
-# the appropriate keymap folder that will get included automatically
-#
-BOOTMAGIC_ENABLE = no # Enable Bootmagic Lite
-MOUSEKEY_ENABLE = no # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
-COMMAND_ENABLE = no # Commands for debug and configuration
-NKRO_ENABLE = no # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
-BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
-MIDI_ENABLE = no # MIDI controls
-AUDIO_ENABLE = no # Audio output on port C6
-UNICODE_ENABLE = no # Unicode
-BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
-RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time.
-
-# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
-SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
-
-# Userspace defines
-GERMAN_ENABLE = yes # Enable Custom US Ansi Keycodes for PC with German set as input language
diff --git a/keyboards/projectd/65/projectd_65_ansi/config.h b/keyboards/projectd/65/projectd_65_ansi/config.h
index 312a72979f..8b162a2149 100644
--- a/keyboards/projectd/65/projectd_65_ansi/config.h
+++ b/keyboards/projectd/65/projectd_65_ansi/config.h
@@ -25,7 +25,6 @@
/* External spi flash */
#define EXTERNAL_FLASH_SPI_SLAVE_SELECT_PIN B14
-#define WEAR_LEVELING_BACKING_SIZE (4 * 1024)
/* SPI Config for LED Driver */
#define SPI_DRIVER SPIDQ
@@ -33,10 +32,7 @@
#define SPI_MOSI_PIN A7
#define SPI_MISO_PIN A6
-#define DRIVER_1_CS A15
-#define DRIVER_2_CS B15
-#define DRIVER_1_EN C13
-#define DRIVER_2_EN C13
+#define AW20216S_CS_PIN_1 A15
+#define AW20216S_EN_PIN_1 C13
-#define DRIVER_COUNT 1
#define RGB_MATRIX_LED_COUNT 71
diff --git a/keyboards/projectd/65/projectd_65_ansi/info.json b/keyboards/projectd/65/projectd_65_ansi/info.json
index 0c8b9585bb..861e3792db 100644
--- a/keyboards/projectd/65/projectd_65_ansi/info.json
+++ b/keyboards/projectd/65/projectd_65_ansi/info.json
@@ -10,6 +10,13 @@
"dynamic_keymap": {
"layer_count": 13
},
+ "eeprom": {
+ "driver": "wear_leveling",
+ "wear_leveling": {
+ "driver": "spi_flash",
+ "backing_size": 4096
+ }
+ },
"features": {
"bootmagic": true,
"command": false,
@@ -74,7 +81,7 @@
"solid_multisplash": true
},
"center_point": [76, 25],
- "driver": "aw20216",
+ "driver": "aw20216s",
"layout": [
{ "flags": 4, "matrix": [1, 3], "x": 0, "y": 0 },
{ "flags": 4, "matrix": [1, 7], "x": 10, "y": 0 },
diff --git a/keyboards/projectd/65/projectd_65_ansi/projectd_65_ansi.c b/keyboards/projectd/65/projectd_65_ansi/projectd_65_ansi.c
index 6027128a96..0d6123ac01 100644
--- a/keyboards/projectd/65/projectd_65_ansi/projectd_65_ansi.c
+++ b/keyboards/projectd/65/projectd_65_ansi/projectd_65_ansi.c
@@ -18,8 +18,8 @@
#ifdef RGB_MATRIX_ENABLE
-const aw_led g_aw_leds[RGB_MATRIX_LED_COUNT] = {
-/* Refer to IS31 manual for these locations
+const aw20216s_led_t g_aw20216s_leds[RGB_MATRIX_LED_COUNT] = {
+/* Refer to AW20216S manual for these locations
* driver
* | R location
* | | G location
diff --git a/keyboards/projectd/65/projectd_65_ansi/rules.mk b/keyboards/projectd/65/projectd_65_ansi/rules.mk
index 24d5f6f52e..6e7633bfe0 100644
--- a/keyboards/projectd/65/projectd_65_ansi/rules.mk
+++ b/keyboards/projectd/65/projectd_65_ansi/rules.mk
@@ -1,2 +1 @@
-EEPROM_DRIVER = wear_leveling
-WEAR_LEVELING_DRIVER = spi_flash
+# This file intentionally left blank
diff --git a/keyboards/projectd/75/ansi/config.h b/keyboards/projectd/75/ansi/config.h
index 5fcad72e71..3b685c09b8 100644
--- a/keyboards/projectd/75/ansi/config.h
+++ b/keyboards/projectd/75/ansi/config.h
@@ -25,7 +25,6 @@
/* External spi flash */
#define EXTERNAL_FLASH_SPI_SLAVE_SELECT_PIN B14
-#define WEAR_LEVELING_BACKING_SIZE (4 * 1024)
/* SPI Config for LED Driver */
#define SPI_DRIVER SPIDQ
@@ -38,7 +37,6 @@
#define DRIVER_1_EN C13
#define DRIVER_2_EN C13
-#define DRIVER_COUNT 2
#define DRIVER_1_LED_TOTAL 70
#define DRIVER_2_LED_TOTAL 17
#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL)
diff --git a/keyboards/projectd/75/ansi/info.json b/keyboards/projectd/75/ansi/info.json
index daf94202e0..0e137de614 100644
--- a/keyboards/projectd/75/ansi/info.json
+++ b/keyboards/projectd/75/ansi/info.json
@@ -6,6 +6,13 @@
"bootmagic": {
"matrix": [1, 3]
},
+ "eeprom": {
+ "driver": "wear_leveling",
+ "wear_leveling": {
+ "driver": "spi_flash",
+ "backing_size": 4096
+ }
+ },
"diode_direction": "COL2ROW",
"dynamic_keymap": {
"layer_count": 10
@@ -176,9 +183,6 @@
"pid": "0x000F",
"vid": "0x3233"
},
- "eeprom": {
- "driver": "wear_leveling"
- },
"layouts": {
"LAYOUT": {
"layout": [
diff --git a/keyboards/projectd/75/ansi/rules.mk b/keyboards/projectd/75/ansi/rules.mk
index 002458405e..6e7633bfe0 100644
--- a/keyboards/projectd/75/ansi/rules.mk
+++ b/keyboards/projectd/75/ansi/rules.mk
@@ -1 +1 @@
-WEAR_LEVELING_DRIVER = spi_flash
+# This file intentionally left blank
diff --git a/keyboards/projectkb/alice/keymaps/stanrc85/keymap.c b/keyboards/projectkb/alice/keymaps/stanrc85/keymap.c
deleted file mode 100644
index 9862d6d422..0000000000
--- a/keyboards/projectkb/alice/keymaps/stanrc85/keymap.c
+++ /dev/null
@@ -1,58 +0,0 @@
-/*
-Copyright 2012,2013 Jun Wako <wakojun@gmail.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 QMK_KEYBOARD_H
-#include "stanrc85.h"
-
-
-// Each layer gets a name for readability, which is then used in the keymap matrix below.
-// The underscores don't mean anything - you can have a layer called STUFF or any other name.
-// Layer names don't all need to be of the same length, obviously, and you can also skip them
-// entirely and just use numbers.
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [_QWERTY] = LAYOUT_default(
- KC_ESC, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, _______, KC_BSPC,
- KC_PGUP, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS,
- KC_PGDN, KC_CTLE, 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_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(_FN2_60),
- KC_LCTL, KC_LALT, LT_BPCF, KC_LGUI, LT_SPCF, TD_TWIN, TD_TCTL
- ),
-
- [_DEFAULT] = LAYOUT_default(
- KC_ESC, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, _______, KC_BSPC,
- KC_PGUP, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS,
- KC_PGDN, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
- KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(_FN2_60),
- KC_LCTL, KC_LALT, KC_SPC, MO(_FN1_60), KC_SPC, KC_RALT, KC_RCTL
- ),
-
- [_FN1_60] = LAYOUT_default(
- _______, KC_TILD, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, KC_DEL,
- _______, _______, _______, CA_QUOT, KC_VOLU, CA_SCLN, _______, _______, KC_HOME, KC_UP, KC_END, KC_PSCR, _______, _______, KC_INS,
- _______, KC_CAPS, _______, KC_MUTE, KC_VOLD, KC_MPLY, _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______,
- _______, KC_RDP, _______, _______, _______, _______, _______, _______, KC_WBAK, KC_WFWD, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______
- ),
-
- [_FN2_60] = LAYOUT_default(
- BL_TOGG, RGB_TOG, RGB_MOD, RGB_VAD, RGB_VAI, RGB_SAI, RGB_HUD, RGB_HUI, _______, _______, _______, _______, _______, _______, _______, _______,
- BL_UP, VK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, QK_BOOT,
- BL_DOWN, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MAKE,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, TG(_DEFAULT)
- )
-};
diff --git a/keyboards/projectkb/alice/rev1/config.h b/keyboards/projectkb/alice/rev1/config.h
index 2692965fbf..dca7542513 100644
--- a/keyboards/projectkb/alice/rev1/config.h
+++ b/keyboards/projectkb/alice/rev1/config.h
@@ -26,7 +26,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
/* Locking resynchronize hack */
#define LOCKING_RESYNC_ENABLE
-#define WS2812_SPI SPID2
+#define WS2812_SPI_DRIVER SPID2
#define WS2812_SPI_MOSI_PAL_MODE 0
#define WS2812_SPI_SCK_PAL_MODE 0
#define WS2812_SPI_SCK_PIN B13
diff --git a/keyboards/projectkb/alice/rev2/config.h b/keyboards/projectkb/alice/rev2/config.h
index 8bb661f90b..f5d9ca0c3e 100644
--- a/keyboards/projectkb/alice/rev2/config.h
+++ b/keyboards/projectkb/alice/rev2/config.h
@@ -26,7 +26,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
/* Locking resynchronize hack */
#define LOCKING_RESYNC_ENABLE
-#define WS2812_SPI SPID2
+#define WS2812_SPI_DRIVER SPID2
#define WS2812_SPI_MOSI_PAL_MODE 0
#define WS2812_SPI_SCK_PAL_MODE 0
#define WS2812_SPI_SCK_PIN B13
diff --git a/keyboards/prototypist/j01/keymaps/zyber/keymap.c b/keyboards/prototypist/j01/keymaps/zyber/keymap.c
deleted file mode 100644
index 53b98ad023..0000000000
--- a/keyboards/prototypist/j01/keymaps/zyber/keymap.c
+++ /dev/null
@@ -1,40 +0,0 @@
-/* Copyright 2020 Shaun Mitchell (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 QMK_KEYBOARD_H
-#include "zyber.h"
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
- // Default layer
- [0] = LAYOUT_all(
- C_BLK, KC_F2, KC_ESC, KC_1, KC_2, KC_3, TD(SSHT),KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC, KC_DEL,
- KC_F3, KC_F4, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, TD(LBRC),KC_RBRC, KC_BSLS, KC_PGUP,
- KC_F5, KC_F6, L1_EXPL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, TD(SCLN), TD(QUOT),KC_NUHS, KC_ENT, KC_PGDN,
- KC_F7, KC_F8, 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_F9, KC_F10, KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_SPC, KC_RALT, KC_RGUI, MO(1), KC_LEFT, KC_DOWN, KC_RGHT
- ),
-
- // Fn1 layer
- [1] = LAYOUT_all(
- KC_TRNS, KC_TRNS, KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_TRNS, 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_HOME,
- KC_TRNS, 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/pteron36/config.h b/keyboards/pteron36/config.h
index 1148463200..72b4ea84e7 100644
--- a/keyboards/pteron36/config.h
+++ b/keyboards/pteron36/config.h
@@ -37,6 +37,3 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-
-// for via
-#define DYNAMIC_KEYMAP_LAYER_COUNT 7
diff --git a/keyboards/pteron36/info.json b/keyboards/pteron36/info.json
index 418ca0f6b8..76b6e59647 100644
--- a/keyboards/pteron36/info.json
+++ b/keyboards/pteron36/info.json
@@ -13,6 +13,9 @@
"rows": ["E6", "D7", "B4", "B5"]
},
"diode_direction": "ROW2COL",
+ "dynamic_keymap": {
+ "layer_count": 7
+ },
"encoder": {
"rotary": [
{"pin_a": "F5", "pin_b": "F4"}
diff --git a/keyboards/qvex/lynepad2/config.h b/keyboards/qvex/lynepad2/config.h
index 7b9d3ce306..9e1f70b38b 100644
--- a/keyboards/qvex/lynepad2/config.h
+++ b/keyboards/qvex/lynepad2/config.h
@@ -16,8 +16,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#pragma once
-#define DYNAMIC_KEYMAP_LAYER_COUNT 5
-
//Digital joystick (4-way switch + encoder)
#define PIN_JU D4
#define PIN_JD B6
diff --git a/keyboards/qvex/lynepad2/info.json b/keyboards/qvex/lynepad2/info.json
index 4230fd63e0..7919c2adc2 100644
--- a/keyboards/qvex/lynepad2/info.json
+++ b/keyboards/qvex/lynepad2/info.json
@@ -15,6 +15,9 @@
"vid": "0x04D8",
"pid": "0xE678"
},
+ "dynamic_keymap": {
+ "layer_count": 5
+ },
"encoder": {
"rotary": [
{"pin_a": "D6", "pin_b": "B5", "resolution": 2},
diff --git a/keyboards/qwertykeys/qk100/ansi/config.h b/keyboards/qwertykeys/qk100/ansi/config.h
index 6d0401a3dc..82766b8834 100644
--- a/keyboards/qwertykeys/qk100/ansi/config.h
+++ b/keyboards/qwertykeys/qk100/ansi/config.h
@@ -39,5 +39,4 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
# define RGB_MATRIX_LED_FLUSH_LIMIT 26
# define RGB_MATRIX_STARTUP_VAL 128
# define DRIVER_ADDR_1 0b0110000
-# define DRIVER_COUNT 1
# define RGB_MATRIX_LED_COUNT 101 \ No newline at end of file
diff --git a/keyboards/rart/rartlice/config.h b/keyboards/rart/rartlice/config.h
index 9673097c38..116f8d544b 100644
--- a/keyboards/rart/rartlice/config.h
+++ b/keyboards/rart/rartlice/config.h
@@ -22,7 +22,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
/* Locking resynchronize hack */
#define LOCKING_RESYNC_ENABLE
-#define WS2812_SPI SPID2
+#define WS2812_SPI_DRIVER SPID2
/*
* Feature disable options
diff --git a/keyboards/redox_w/keymaps/danielo515/config.h b/keyboards/redox_w/keymaps/danielo515/config.h
deleted file mode 100644
index df14c8c269..0000000000
--- a/keyboards/redox_w/keymaps/danielo515/config.h
+++ /dev/null
@@ -1,5 +0,0 @@
-#pragma once
-
-#define TAPPING_TERM 200
-#undef ONESHOT_TIMEOUT
-#define ONESHOT_TIMEOUT 1500
diff --git a/keyboards/redox_w/keymaps/danielo515/keymap.c b/keyboards/redox_w/keymaps/danielo515/keymap.c
deleted file mode 100644
index d40ba1a340..0000000000
--- a/keyboards/redox_w/keymaps/danielo515/keymap.c
+++ /dev/null
@@ -1,178 +0,0 @@
-#include QMK_KEYBOARD_H
-#include "danielo515.h"
-
-// Shortcut to make keymap more readable
-# define SYM_L OSL(_SYMB)
-
-# define KC_ALAS LALT_T(KC_PAST) // alt or keypad *
-# define KC_CTPL LCTL_T(KC_BSLS) // <C-\>
-
-# define KC_NAGR LT(_NAV, KC_GRV)
-# define KC_NAMI LT(_NAV, KC_MINS)
-# define AD_ESC LT(_ADJUST, KC_ESC)
-# define NAV_SPC LT(_NAV, KC_SPACE)
-
-# define KC_ADPU LT(_ADJUST, KC_PGUP)
-# define WIN_LEFT WIN_TO_LEFT
-# define WIN_RIGHT WIN_TO_RIGHT
-# define COPY_CUT TD(COPY_CUT)
-# define TD_PASTE TD(PASTE_DANCE)
-# define CTL OSM(MOD_LCTL)
-# define ALT OSM(MOD_LALT)
-# define GUI OSM(MOD_LGUI)
-# define ENT_SYM LT(_SYMB, KC_ENT)
-# define __S LT(_S,KC_S)
-# define OSX_BACK LGUI(KC_GRV)
-// Which key do you use to enter a layer
-# define ENTRY _______
-
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
- [_QWERTY] = LAYOUT(
- //┌────────┬────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┐
- KC_EQL ,KC_1 ,KC_2 ,KC_3 ,KC_4 ,KC_5 , KC_6 ,KC_7 ,KC_8 ,KC_9 ,KC_0 ,KC_DQUO ,
- //├────────┼────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┤
- KC_TAB ,KC_Q ,KC_W ,KC_E ,KC_R ,KC_T ,TD_PASTE, KC_INS ,KC_Y ,KC_U ,KC_I ,KC_O ,KC_P ,CMD_MINS,
- //├────────┼────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┼────────┤
- KC_PIPE ,KC_A ,__S ,FN_D ,FN_F ,KC_G ,COPY_CUT, KC_UNDS ,HYPR_H ,ALT_J ,CTL_K ,KC_L ,TD_CLN ,SFT_QUOT,
- //├────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┤
- KC_BSLS ,KC_Z ,KC_X ,KC_C ,KC_V ,KC_B ,KC_DEL ,KC_PLUS , ALT_TAB ,AD_ESC ,KC_N ,KC_M ,KC_COMM ,KC_DOT ,KC_SLSH ,KC_ASTR ,
- //├────────┼────────┼────────┼────────┼────┬───┴────┬───┼────────┼────────┤ ├────────┼────────┼───┬────┴───┬────┼────────┼────────┼────────┼────────┤
- CTL ,ALT ,KC_LEFT ,KC_RIGHT, GUI , SHIFT ,KC_BSPC , QK_LEAD ,NAV_SPC , ENT_SYM, KC_LBRC ,KC_RBRC ,KC_DOWN ,KC_UP
- //└────────┴────────┴────────┴────────┘ └────────┘ └────────┴────────┘ └────────┴────────┘ └────────┘ └────────┴────────┴────────┴────────┘
- ),
-
- [_SYMB] = LAYOUT(
- //┌────────┬────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┐
- _______ ,KC_F1 ,KC_F2 ,KC_F3 ,KC_F4 ,KC_F5 , KC_F6 ,KC_F7 ,KC_F8 ,KC_F9 ,KC_F10 ,KC_F12 ,
- //├────────┼────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┤
- _______ ,KC_EXLM ,KC_DLR ,KC_LCBR ,KC_RCBR ,KC_PIPE ,_______ , _______ ,KC_PSLS ,KC_P7 ,KC_P8 ,KC_P9 ,KC_PERC ,KC_BSPC ,
- //├────────┼────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┼────────┤
- _______ ,KC_AT ,KC_DLR , KC_LPRN, KC_RPRN,KC_GRV ,_______ , _______ ,KC_PENT ,KC_P4 ,KC_P5 ,KC_P6 ,KC_PPLS ,KC_PMNS ,
- //├────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┤
- _______ ,KC_PERC ,KC_CIRC ,KC_LBRC ,KC_RBRC ,KC_TILD ,_______ ,_______ , _______ ,_______ ,KC_COLN ,KC_P1 ,KC_P2 ,KC_P3 ,KC_PSLS ,XXXXXXX ,
- //├────────┼────────┼────────┼────────┼────┬───┴────┬───┼────────┼────────┤ ├────────┼────────┼───┬────┴───┬────┼────────┼────────┼────────┼────────┤
- _______ ,_______ ,_______ ,_______ , _______ , _______ ,_______ , _______ ,_______ , ENTRY , KC_P0 ,KC_PDOT ,KC_PAST ,XXXXXXX
- //└────────┴────────┴────────┴────────┘ └────────┘ └────────┴────────┘ └────────┴────────┘ └────────┘ └────────┴────────┴────────┴────────┘
- ),
-
- [_NAV] = LAYOUT(
- //┌────────┬────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┐
- _______ ,_______ ,_______ ,_______ ,_______ ,_______ , _______ ,_______ ,_______ ,_______ ,_______ ,_______ ,
- //├────────┼────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┤
- XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,_______ , _______ ,SFT_LEFT_END,SFT_LEFT,SFT_RIGHT,SFT_RIGHT_END ,XXXXXXX ,KC_F12 ,
- //├────────┼────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┼────────┤
- XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,_______ , _______ ,KC_LEFT ,KC_DOWN ,KC_UP ,KC_RIGHT,XXXXXXX ,XXXXXXX ,
- //├────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┤
- XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,_______ ,_______ , _______ ,XXXXXXX ,KC_HOME ,CTL_LEFT,CTL_RIGHT,KC_END,XXXXXXX ,XXXXXXX ,
- //├────────┼────────┼────────┼────────┼────┬───┴────┬───┼────────┼────────┤ ├────────┼────────┼───┬────┴───┬────┼────────┼────────┼────────┼────────┤
- XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX , _______ , _______ ,_______ , _______ , ENTRY , KC_MUTE , KC_VOLD ,KC_VOLU ,WIN_LEFT,WIN_RIGHT
- //└────────┴────────┴────────┴────────┘ └────────┘ └────────┴────────┘ └────────┴────────┘ └────────┘ └────────┴────────┴────────┴────────┘
- ),
- [_ADJUST] = LAYOUT(
- //┌────────┬────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┐
- XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX , XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,
- //├────────┼────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┤
- XXXXXXX ,QK_BOOT,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX , XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,
- //├────────┼────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┼────────┤
- XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,TG(_GAMING) ,XXXXXXX , XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,
- //├────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┤
- XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX , KC_MUTE ,_______ ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,
- //├────────┼────────┼────────┼────────┼────┬───┴────┬───┼────────┼────────┤ ├────────┼────────┼───┬────┴───┬────┼────────┼────────┼────────┼────────┤
- XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX , XXXXXXX , XXXXXXX ,XXXXXXX , XXXXXXX ,XXXXXXX , XXXXXXX , XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX
- //└────────┴────────┴────────┴────────┘ └────────┘ └────────┴────────┘ └────────┴────────┘ └────────┘ └────────┴────────┴────────┴────────┘
- ),
- [_GAMING] = LAYOUT(
- //┌────────┬────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┐
- _______ ,_______ ,_______ ,_______ ,_______ ,_______ , _______ ,_______ ,_______ ,_______ ,_______ ,_______ ,
- //├────────┼────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┤
- _______ , KC_Q , KC_W ,_______ ,_______ ,_______ ,KC_ESC , _______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,
- //├────────┼────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┼────────┤
- _______ , KC_A , KC_S , KC_D , KC_F ,_______ ,_______ , _______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,
- //├────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┤
- _______ ,_______ ,_______ ,_______ ,_______ ,_______ ,KC_BSPC ,_______ , _______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,_______ ,
- //├────────┼────────┼────────┼────────┼────┬───┴────┬───┼────────┼────────┤ ├────────┼────────┼───┬────┴───┬────┼────────┼────────┼────────┼────────┤
- _______ ,_______ ,_______ ,_______ , KC_ENTER, KC_LSFT ,KC_SPACE, _______ ,_______ , _______ , _______ ,_______ ,_______ ,_______
- //└────────┴────────┴────────┴────────┘ └────────┘ └────────┴────────┘ └────────┴────────┘ └────────┘ └────────┴────────┴────────┴────────┘
- ),
-[_F] = LAYOUT(
- //┌────────┬────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┐
- XXXXXXX ,KC_F1 ,KC_F2 ,KC_F3 ,KC_F4 ,KC_F5 , KC_F6 ,KC_F7 ,KC_F8 ,KC_F9 ,KC_F10 ,KC_F11 ,
- //├────────┼────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┤
- XXXXXXX ,XXXXXXX ,ALL_WIN ,EXPOSE ,XXXXXXX ,XXXXXXX ,XXXXXXX , XXXXXXX ,XXXXXXX ,KC_F4 ,KC_F5 ,KC_F6 ,XXXXXXX ,KC_F12 ,
- //├────────┼────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┼────────┤
- XXXXXXX ,XXXXXXX ,SAVE ,OSX_BACK ,ENTRY ,XXXXXXX ,XXXXXXX , XXXXXXX ,KC_PSCR ,KC_F1 ,KC_F2 ,KC_F3 ,XXXXXXX ,XXXXXXX ,
- //├────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┤
- XXXXXXX ,UNDO ,REDO ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX , XXXXXXX ,_______ ,XXXXXXX ,SHIFT_UP,SHIFT_DWN,XXXXXXX ,XXXXXXX ,XXXXXXX ,
- //├────────┼────────┼────────┼────────┼────┬───┴────┬───┼────────┼────────┤ ├────────┼────────┼───┬────┴───┬────┼────────┼────────┼────────┼────────┤
- XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX , XXXXXXX , XXXXXXX ,XXXXXXX , KC_PGUP ,KC_PGDN , XXXXXXX , XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX
- //└────────┴────────┴────────┴────────┘ └────────┘ └────────┴────────┘ └────────┴────────┘ └────────┘ └────────┴────────┴────────┴────────┘
- ),
- [_D] = LAYOUT(
- //┌────────┬────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┐
- XXXXXXX ,KC_F1 ,KC_F2 ,KC_F3 ,KC_F4 ,KC_F5 , KC_A ,KC_B ,KC_C ,KC_D ,KC_E ,KC_F ,
- //├────────┼────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┤
- XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX , _______ ,KC_LBRC ,KC_P7 ,KC_P8 ,KC_P9 ,KC_PERC ,KC_KP_MINUS ,
- //├────────┼────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┼────────┤
- XXXXXXX ,XXXXXXX ,XXXXXXX ,_______ ,KC_F5 ,KC_F2 ,XXXXXXX , _______ ,KC_RBRC ,KC_P4 ,KC_P5 ,KC_P6 ,KC_PPLS ,KC_PAST ,
- //├────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┤
- XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX , _______ ,_______ ,KC_COLN ,KC_P1 ,KC_P2 ,KC_P3 ,KC_PSLS ,XXXXXXX ,
- //├────────┼────────┼────────┼────────┼────┬───┴────┬───┼────────┼────────┤ ├────────┼────────┼───┬────┴───┬────┼────────┼────────┼────────┼────────┤
- XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX , XXXXXXX , XXXXXXX ,_______ , _______ ,_______ , KC_P0 , KC_COMMA ,KC_PDOT ,KC_PAST ,XXXXXXX
- //└────────┴────────┴────────┴────────┘ └────────┘ └────────┴────────┘ └────────┴────────┘ └────────┘ └────────┴────────┴────────┴────────┘
- ),
- [_S] = LAYOUT(
- //┌────────┬────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┐
- XXXXXXX ,KC_F1 ,KC_F2 ,KC_F3 ,KC_F4 ,KC_F5 , KC_F6 ,KC_F7 ,KC_F8 ,KC_F9 ,KC_F10 ,XXXXXXX ,
- //├────────┼────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┤
- XXXXXXX ,XXXXXXX ,XXXXXXX ,KC_LT ,KC_GT ,XXXXXXX ,XXXXXXX , XXXXXXX ,KC_HASH ,KC_LCBR ,KC_RCBR ,KC_ASTR ,KC_PERC ,KC_DLR ,
- //├────────┼────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┼────────┤
- XXXXXXX ,XXXXXXX ,_______ ,KC_EQL ,F_ARROW ,KC_GRAVE,XXXXXXX , XXXXXXX ,KC_AMPR ,KC_LPRN ,KC_RPRN ,CLN_EQ ,KC_PLUS ,KC_PIPE ,
- //├────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┤
- XXXXXXX ,XXXXXXX ,XXXXXXX ,KC_CIRC ,KC_DLR ,XXXXXXX ,XXXXXXX ,XXXXXXX , XXXXXXX ,XXXXXXX ,KC_EXLM ,KC_LBRC ,KC_RBRC ,ARROW ,KC_BSLS, IARROW ,
- //├────────┼────────┼────────┼────────┼────┬───┴────┬───┼────────┼────────┤ ├────────┼────────┼───┬────┴───┬────┼────────┼────────┼────────┼────────┤
- XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX , XXXXXXX , XXXXXXX ,_______ , XXXXXXX ,ENTRY , XXXXXXX , XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX
- //└────────┴────────┴────────┴────────┘ └────────┘ └────────┴────────┘ └────────┴────────┘ └────────┘ └────────┴────────┴────────┴────────┘
- )
-
-};
-
-void alt_tab_activated(void){
- layer_on(_NAV);
-};
-void alt_tab_deactivated(void){
- layer_off(_NAV);
-};
-
-layer_state_t layer_state_set_user(layer_state_t state) {
- switch (get_highest_layer(state)) {
- case _QWERTY:
- set_led_off;
- break;
- case _SYMB:
- case _D:
- set_led_green;
- break;
- case _GAMING:
- set_led_white;
- break;
- case _NAV:
- set_led_blue;
- break;
- case _ADJUST:
- set_led_red;
- break;
- case _S:
- set_led_magenta;
- break;
- case _F:
- set_led_white;
- break;
- default:
- break;
- }
- return state;
-}
-
-
diff --git a/keyboards/redox_w/keymaps/danielo515/readme.md b/keyboards/redox_w/keymaps/danielo515/readme.md
deleted file mode 100644
index 0db7072b80..0000000000
--- a/keyboards/redox_w/keymaps/danielo515/readme.md
+++ /dev/null
@@ -1,2 +0,0 @@
-# Danielo keymap for Redox Wireless
-Most of the custom functionality is on my user-space `users/danielo515`
diff --git a/keyboards/redox_w/keymaps/danielo515/rules.mk b/keyboards/redox_w/keymaps/danielo515/rules.mk
deleted file mode 100644
index 18f126693e..0000000000
--- a/keyboards/redox_w/keymaps/danielo515/rules.mk
+++ /dev/null
@@ -1,6 +0,0 @@
-
-TAP_DANCE_ENABLE = yes # Enable the tap dance feature.
-COMBO_ENABLE = yes
-LEADER_ENABLE = yes
-CONSOLE_ENABLE = no
-LTO_ENABLE = yes # link time optimizations
diff --git a/keyboards/redox_w/keymaps/manna-harbour_miryoku/config.h b/keyboards/redox_w/keymaps/manna-harbour_miryoku/config.h
deleted file mode 100644
index d2d64b8894..0000000000
--- a/keyboards/redox_w/keymaps/manna-harbour_miryoku/config.h
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright 2019 Manna Harbour
-// https://github.com/manna-harbour/miryoku
-
-// 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 XXX KC_NO
-
-#define LAYOUT_miryoku(\
- 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,\
- N30, N31, K32, K33, K34, K35, K36, K37, N38, N39\
-)\
-LAYOUT(\
-XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX,\
-XXX, K00, K01, K02, K03, K04, XXX, XXX, K05, K06, K07, K08, K09, XXX,\
-XXX, K10, K11, K12, K13, K14, XXX, XXX, K15, K16, K17, K18, K19, XXX,\
-XXX, K20, K21, K22, K23, K24, XXX, XXX, XXX, XXX, K25, K26, K27, K28, K29, XXX,\
-XXX, XXX, XXX, XXX, K32, K33, K34, K35, K36, K37, XXX, XXX, XXX, XXX\
-)
diff --git a/keyboards/redox_w/keymaps/manna-harbour_miryoku/keymap.c b/keyboards/redox_w/keymaps/manna-harbour_miryoku/keymap.c
deleted file mode 100644
index dbab7f9820..0000000000
--- a/keyboards/redox_w/keymaps/manna-harbour_miryoku/keymap.c
+++ /dev/null
@@ -1,4 +0,0 @@
-// Copyright 2019 Manna Harbour
-// https://github.com/manna-harbour/miryoku
-
-// 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/>.
diff --git a/keyboards/redox_w/rules.mk b/keyboards/redox_w/rules.mk
index 32eca4db31..f543b5fd9a 100644
--- a/keyboards/redox_w/rules.mk
+++ b/keyboards/redox_w/rules.mk
@@ -14,4 +14,4 @@ CUSTOM_MATRIX = lite
# project specific files
SRC += matrix.c
-QUANTUM_LIB_SRC += uart.c
+UART_DRIVER_REQUIRED = yes
diff --git a/keyboards/redragon/k667/config.h b/keyboards/redragon/k667/config.h
index e17865a403..33e26c4a39 100644
--- a/keyboards/redragon/k667/config.h
+++ b/keyboards/redragon/k667/config.h
@@ -17,10 +17,9 @@
#pragma once
-#define DRIVER_ADDR_1 0b1010000
-#define DRIVER_ADDR_2 0b1010011
+#define IS31FL3733_I2C_ADDRESS_1 IS31FL3733_I2C_ADDRESS_GND_GND
+#define IS31FL3733_I2C_ADDRESS_2 IS31FL3733_I2C_ADDRESS_GND_VCC
-#define DRIVER_COUNT 2
#define DRIVER_1_LED_TOTAL 45
#define DRIVER_2_LED_TOTAL 45
diff --git a/keyboards/redragon/k667/k667.c b/keyboards/redragon/k667/k667.c
index 81aeef4494..629e120b7b 100644
--- a/keyboards/redragon/k667/k667.c
+++ b/keyboards/redragon/k667/k667.c
@@ -17,7 +17,7 @@
#include "quantum.h"
#ifdef RGB_MATRIX_ENABLE
-const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = {
+const is31fl3733_led_t PROGMEM g_is31fl3733_leds[RGB_MATRIX_LED_COUNT] = {
{0, G_1, I_1, H_1},
{0, G_3, I_3, H_3},
{0, G_4, I_4, H_4},
diff --git a/keyboards/rgbkb/mun/config.h b/keyboards/rgbkb/mun/config.h
index fd2e366614..87a7fe1319 100644
--- a/keyboards/rgbkb/mun/config.h
+++ b/keyboards/rgbkb/mun/config.h
@@ -41,9 +41,6 @@
#endif
/* Split Transport Features */
-#define SPLIT_TRANSPORT_MIRROR
-#define SPLIT_LAYER_STATE_ENABLE
-#define SPLIT_LED_STATE_ENABLE
#define SPLIT_TRANSACTION_IDS_KB TOUCH_ENCODER_SYNC, RGB_MENU_SYNC
#define RGB_MATRIX_LED_COUNT 98
@@ -119,6 +116,3 @@
#define TOUCH_UPDATE_INTERVAL 33
#define OLED_UPDATE_INTERVAL 33
-
-#define WEAR_LEVELING_BACKING_SIZE 4096
-#define WEAR_LEVELING_LOGICAL_SIZE 2048
diff --git a/keyboards/rgbkb/mun/keymaps/default/config.h b/keyboards/rgbkb/mun/keymaps/default/config.h
index 9fbbfc5901..88bdc06dee 100644
--- a/keyboards/rgbkb/mun/keymaps/default/config.h
+++ b/keyboards/rgbkb/mun/keymaps/default/config.h
@@ -19,5 +19,3 @@
// 20m timeout (20m * 60s * 1000mil)
// #define RGB_MATRIX_TIMEOUT 1200000
#define RGB_DISABLE_WHEN_USB_SUSPENDED
-
-#define STM32_ONBOARD_EEPROM_SIZE 2048
diff --git a/keyboards/rgbkb/mun/keymaps/via/config.h b/keyboards/rgbkb/mun/keymaps/via/config.h
index 002081a1c8..a0f581b50a 100644
--- a/keyboards/rgbkb/mun/keymaps/via/config.h
+++ b/keyboards/rgbkb/mun/keymaps/via/config.h
@@ -24,5 +24,3 @@
// 224B per layer right now
#define DYNAMIC_KEYMAP_LAYER_COUNT 8
#define DYNAMIC_KEYMAP_EEPROM_MAX_ADDR 2047
-
-#define STM32_ONBOARD_EEPROM_SIZE 2048
diff --git a/keyboards/rgbkb/mun/rev1/info.json b/keyboards/rgbkb/mun/rev1/info.json
index 5d380de5c7..96d1a18e81 100644
--- a/keyboards/rgbkb/mun/rev1/info.json
+++ b/keyboards/rgbkb/mun/rev1/info.json
@@ -37,6 +37,11 @@
"io_delay": 5
},
"diode_direction": "COL2ROW",
+ "eeprom": {
+ "wear_leveling": {
+ "backing_size": 4096
+ }
+ },
"encoder": {
"rotary": [
{"pin_a": "B8", "pin_b": "A14"},
@@ -47,7 +52,14 @@
"tap_keycode_delay": 5
},
"split": {
- "soft_serial_pin": "A9"
+ "soft_serial_pin": "A9",
+ "transport": {
+ "sync": {
+ "indicators": true,
+ "layer_state": true,
+ "matrix_state": true
+ }
+ }
},
"processor": "STM32F303",
"bootloader": "stm32-dfu",
diff --git a/keyboards/rgbkb/mun/rules.mk b/keyboards/rgbkb/mun/rules.mk
index 18dfc8edf7..4269e3b0a1 100644
--- a/keyboards/rgbkb/mun/rules.mk
+++ b/keyboards/rgbkb/mun/rules.mk
@@ -2,7 +2,7 @@
VPATH += keyboards/rgbkb/common
SRC += touch_encoder.c
SRC += common_oled.c
-QUANTUM_LIB_SRC += i2c_master.c
+I2C_DRIVER_REQUIRED = yes
# Build Options
# change yes to no to disable
diff --git a/keyboards/rgbkb/pan/pan.c b/keyboards/rgbkb/pan/pan.c
index 023c766de6..d175be3641 100644
--- a/keyboards/rgbkb/pan/pan.c
+++ b/keyboards/rgbkb/pan/pan.c
@@ -22,7 +22,7 @@
# include "ws2812.h"
// LED color buffer
-LED_TYPE rgb_matrix_ws2812_array[RGB_MATRIX_LED_COUNT];
+rgb_led_t rgb_matrix_ws2812_array[RGB_MATRIX_LED_COUNT];
static void init(void) {}
diff --git a/keyboards/rgbkb/sol/keymaps/kageurufu/keymap.c b/keyboards/rgbkb/sol/keymaps/kageurufu/keymap.c
deleted file mode 100644
index 88ad2f85be..0000000000
--- a/keyboards/rgbkb/sol/keymaps/kageurufu/keymap.c
+++ /dev/null
@@ -1,98 +0,0 @@
-#include QMK_KEYBOARD_H
-#include "kageurufu.h"
-#ifdef PROTOCOL_LUFA
-#include "lufa.h"
-#include "split_util.h"
-#endif
-
-extern keymap_config_t keymap_config;
-extern uint8_t is_master;
-
-/* Base Layout
- * ,------------------------------------------------. ,------------------------------------------------.
- * | ` | | | | | | | | | | | | | | BkSp |
- * |------+------+------+------+------+------|------| |------|------+------+------+------+------+------|
- * | Tab | | | | | | | | | | | | | | \ |
- * |------+------+------+------+------+------|------| |------|------+------+------+------+------+------|
- * | Esc | | | | | | | | | | | | | | ' |
- * |------+------+------+------+------+------+------| |------+------+------+------+------+------+------|
- * | Sft( | | | | | | | | | | | | | | Sft) |
- * |------+------+------+------+------+------+------| |------+------+------+------+------+------+------|
- * | Ctrl | Win | Win | Alt | FN | Space| RGB | | FN | FN | - | = | Down | PgUp | PgDn |
- * |------+------+------+------+------+------+------| |------+------+------+------+------+------+------|
- * | Space| Bksp | | Enter| Space|
- * `-------------' `--------=----'
- */
-#define EXPAND_LAYOUT(...) LAYOUT(__VA_ARGS__)
-#define _BASE_LAYOUT( \
- _00, _01, _02, _03, _04, _05, _06, _07, _08, _09, \
- _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, \
- _20, _21, _22, _23, _24, _25, _26, _27, _28, _29 \
-) \
-EXPAND_LAYOUT( \
- KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, RGB_MOD, KC_EQL, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, \
- KC_TAB, _00, _01, _02, _03, _04, KC_LBRC, KC_RBRC, _05, _06, _07, _08, _09, KC_BSLS, \
- FN_ESC, _10, _11, _12, _13, _14, RGB_SAI, RGB_VAI, _15, _16, _17, _18, _19, KC_QUOT, \
- SC_LSPO, _20, _21, _22, _23, _24, RGB_SAD, RGB_VAD, _25, _26, _27, _28, _29, SC_RSPC, \
- KC_LCTL, KC_LGUI, KC_LGUI, KC_LALT, FN, KC_SPC, FN, FN, KC_SPC, KC_MINS, KC_EQL, KC_DOWN, KC_PGUP, KC_PGDN, \
- KC_SPC, KC_BSPC, KC_ENT, KC_SPC \
-)
-#define BASE_LAYOUT(...) _BASE_LAYOUT(__VA_ARGS__)
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
- [_QWERTY] = BASE_LAYOUT(
- _________________QWERTY_L1_________________, _________________QWERTY_R1_________________,
- _________________QWERTY_L2_________________, _________________QWERTY_R2_________________,
- _________________QWERTY_L3_________________, _________________QWERTY_R3_________________
- ),
-
- [_COLEMAK] = BASE_LAYOUT(
- _________________COLEMAK_L1________________, _________________COLEMAK_R1________________,
- _________________COLEMAK_L2________________, _________________COLEMAK_R2________________,
- _________________COLEMAK_L3________________, _________________COLEMAK_R3________________
- ),
-
- [_COLEMAK_DH] = BASE_LAYOUT(
- ______________COLEMAK_MOD_DH_L1____________, ______________COLEMAK_MOD_DH_R1____________,
- ______________COLEMAK_MOD_DH_L2____________, ______________COLEMAK_MOD_DH_R2____________,
- ______________COLEMAK_MOD_DH_L3____________, ______________COLEMAK_MOD_DH_R3____________
- ),
-
- [_FN] = EXPAND_LAYOUT(
- ________________FUNCTION_L1________________, _______, KC_PSCR, ________________FUNCTION_R1________________,
- ________________FUNCTION_L2________________, _______, _______, ________________FUNCTION_R2________________,
- ________________FUNCTION_L3________________, _______, _______, ________________FUNCTION_R3________________,
- ________________FUNCTION_L4________________, _______, _______, ________________FUNCTION_R4________________,
- ________________FUNCTION_L5________________, ADJ, ADJ, ________________FUNCTION_R5________________,
- _______, KC_DEL, _______, _______
- ),
-
- [_ADJ] = EXPAND_LAYOUT(
- _________________ADJUST_L1_________________, _______, _______, _________________ADJUST_R1_________________,
- _________________ADJUST_L2_________________, _______, _______, _________________ADJUST_R2_________________,
- _________________ADJUST_L3_________________, _______, _______, _________________ADJUST_R3_________________,
- _________________ADJUST_L4_________________, _______, _______, _________________ADJUST_R4_________________,
- _________________ADJUST_L5_________________, _______, _______, _________________ADJUST_R5_________________,
- _______, _______, _______, _______
- )
-};
-
-#ifdef ENCODER_ENABLE
-bool encoder_update_user(uint8_t index, bool clockwise) {
- if (index == 0) { /* First encoder */
- if (clockwise) {
- tap_code(KC_VOLU);
- } else {
- tap_code(KC_VOLD);
- }
- } else if (index == 1) { /* Second encoder*/
- if (clockwise) {
- tap_code(KC_VOLU);
- } else {
- tap_code(KC_VOLD);
- }
- }
- return true;
-}
-#endif
diff --git a/keyboards/rgbkb/sol/keymaps/kageurufu/rules.mk b/keyboards/rgbkb/sol/keymaps/kageurufu/rules.mk
deleted file mode 100644
index 0399e8427a..0000000000
--- a/keyboards/rgbkb/sol/keymaps/kageurufu/rules.mk
+++ /dev/null
@@ -1,19 +0,0 @@
-# Overridden build options from rev1 & rev2
-
-# Debug Options
-CONSOLE_ENABLE = yes # Console for debug(+400)
-COMMAND_ENABLE = yes # Commands for debug and configuration
-
-# RGB Options
-RGBLIGHT_ENABLE = no # Enable global lighting effects. Do not enable with RGB Matrix
-LED_MIRRORED = no # Mirror LEDs across halves (enable DIP 1 on slave, and DIP 2 and 3 on master)
-RGB_MATRIX_ENABLE = yes # Enable per-key coordinate based RGB effects. Do not enable with RGBlight
-
-# Userspace implements their own LTO
-LTO_ENABLE = no
-
-
-
-# Do not edit past here
-
-include keyboards/$(KEYBOARD)/post_rules.mk
diff --git a/keyboards/rgbkb/sol/keymaps/xulkal/config.h b/keyboards/rgbkb/sol/keymaps/xulkal/config.h
deleted file mode 100644
index ab75c5419c..0000000000
--- a/keyboards/rgbkb/sol/keymaps/xulkal/config.h
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
-This is the c configuration file for the keymap
-
-Copyright 2012 Jun Wako <wakojun@gmail.com>
-Copyright 2015 Jack Humbert
-
-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
-
-// Xulkal custom stuff
-#if KEYBOARD_rgbkb_sol_rev2
- #define OLED_90ROTATION
- #define RGB_MATRIX_TOG_LAYERS
- #define RGB_MATRIX_HUE_STEP 8
- #define RGB_MATRIX_SAT_STEP 8
- #define RGB_MATRIX_VAL_STEP 8
- #define RGB_MATRIX_SPD_STEP 8
-#endif
-
-#define ENCODER_RESOLUTION 2
diff --git a/keyboards/rgbkb/sol/keymaps/xulkal/keymap.c b/keyboards/rgbkb/sol/keymaps/xulkal/keymap.c
deleted file mode 100644
index c5bb86656a..0000000000
--- a/keyboards/rgbkb/sol/keymaps/xulkal/keymap.c
+++ /dev/null
@@ -1,78 +0,0 @@
-#include QMK_KEYBOARD_H
-#include "xulkal.h"
-
-#ifdef PROTOCOL_LUFA
-#include "lufa.h"
-#include "split_util.h"
-#endif
-
-#define EXPAND_LAYOUT(...) LAYOUT(__VA_ARGS__)
-
-// Define your non-alpha grouping in this define's LAYOUT, and all your BASE_LAYERS will share the same mod/macro columns
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- /* Qwerty Layout
- * ,------------------------------------------------. ,------------------------------------------------.
- * | GESC | 1 | 2 | 3 | 4 | 5 | - | | = | 6 | 7 | 8 | 9 | 0 | BkSp |
- * |------+------+------+------+------+------|------| |------|------+------+------+------+------+------|
- * | Tab | Q | W | E | R | T | [ | | ] | Y | U | I | O | P | \ |
- * |------+------+------+------+------+------|------| |------|------+------+------+------+------+------|
- * |FN(CAPS)| A | S | D | F | G | ` | | ' | H | J | K | L | ; | Enter|
- * |------+------+------+------+------+------+------| |------+------+------+------+------+------+------|
- * | Sft[ | Z | X | C | V | B | RGB | |RGBRST| N | M | , | . | / | Sft] |
- * |------+------+------+------+------+------+------| |------+------+------+------+------+------+------|
- * | Ctl- | Win | LOWER| RAISE| Alt | Space| ENC1 | | ENC2 | Space| Left | Up | Down | Right| Ctl= |
- * |------+------+------+------+------+------+------| |------+------+------+------+------+------+------'
- * | Space| DEL | | Enter| Space|
- * `-------------' `-------------'
- */
- [_QWERTY] = EXPAND_LAYOUT(
- _________________QWERTY_L1_________________, KC_MINS, KC_EQL, _________________QWERTY_R1_________________,
- _________________QWERTY_L2_________________, KC_LBRC, KC_RBRC, _________________QWERTY_R2_________________,
- _________________QWERTY_L3_________________, KC_GRV, KC_QUOT, _________________QWERTY_R3_________________,
- _________________QWERTY_L4_________________, RGB_TOG, RGBRST, _________________QWERTY_R4_________________,
- _________________QWERTY_L5_________________, KC_ENC1, KC_ENC2, _________________QWERTY_R5_________________,
- KC_SPC, TD_DEL, KC_ENT, KC_SPC
- ),
-
-#ifndef GAMELAYER_DISABLE
- [_GAME] = EXPAND_LAYOUT(
- ___________________GAME_L1_________________, KC_MINS, KC_EQL, ___________________GAME_R1_________________,
- ___________________GAME_L2_________________, KC_LBRC, KC_RBRC, ___________________GAME_R2_________________,
- ___________________GAME_L3_________________, KC_GRV, KC_QUOT, ___________________GAME_R3_________________,
- ___________________GAME_L4_________________, RGB_TOG, RGBRST, ___________________GAME_R4_________________,
- ___________________GAME_L5_________________, KC_ENC1, KC_ENC2, ___________________GAME_R5_________________,
- KC_SPC, KC_DEL, KC_ENT, KC_SPC
- ),
-#endif
-
- [_LOWER] = EXPAND_LAYOUT(
- __________________LOWER_L1_________________, KC_PMNS, KC_PPLS, __________________LOWER_R1_________________,
- __________________LOWER_L2_________________, _______, _______, __________________LOWER_R2_________________,
- __________________LOWER_L3_________________, _______, _______, __________________LOWER_R3_________________,
- __________________LOWER_L4_________________, _______, _______, __________________LOWER_R4_________________,
- __________________LOWER_L5_________________, _______, _______, __________________LOWER_R5_________________,
- _______, _______, _______, _______
- ),
-
- [_RAISE] = EXPAND_LAYOUT(
- __________________RAISE_L1_________________, _______, _______, __________________RAISE_R1_________________,
- __________________RAISE_L2_________________, _______, _______, __________________RAISE_R2_________________,
- __________________RAISE_L3_________________, _______, _______, __________________RAISE_R3_________________,
- __________________RAISE_L4_________________, _______, _______, __________________RAISE_R4_________________,
- __________________RAISE_L5_________________, _______, _______, __________________RAISE_R5_________________,
- _______, _______, _______, _______
- ),
-
-#ifdef TRILAYER_ENABLED
- [_ADJUST] = EXPAND_LAYOUT(
- _________________ADJUST_L1_________________, _______, _______, _________________ADJUST_R1_________________,
- _________________ADJUST_L2_________________, _______, _______, _________________ADJUST_R2_________________,
- _________________ADJUST_L3_________________, _______, _______, _________________ADJUST_R3_________________,
- _________________ADJUST_L4_________________, _______, _______, _________________ADJUST_R4_________________,
- _________________ADJUST_L5_________________, _______, _______, _________________ADJUST_R5_________________,
- _______, _______, _______, _______
- ),
-#endif
-};
-
diff --git a/keyboards/rgbkb/sol/keymaps/xulkal/rules.mk b/keyboards/rgbkb/sol/keymaps/xulkal/rules.mk
deleted file mode 100644
index 9100034a72..0000000000
--- a/keyboards/rgbkb/sol/keymaps/xulkal/rules.mk
+++ /dev/null
@@ -1,24 +0,0 @@
-# Overridden build options from rev1 & rev2
-
-# RGB Options
-RGBLIGHT_ENABLE = no # Enable global lighting effects. Do not enable with RGB Matrix
-LED_MIRRORED = no # Mirror LEDs across halves (enable DIP 1 on slave, and DIP 2 and 3 on master)
-RGB_MATRIX_ENABLE = yes # Enable per-key coordinate based RGB effects. Do not enable with RGBlight
-FULLHAND_ENABLE = no # Enables the additional 24 Full Hand LEDs
-SF_ENABLE = no # Enables the additional 38 Starfighter LEDs
-
-# Misc
-OLED_ENABLE = yes # Enable the OLED Driver
-
-# Not using the encoder for rev1
-ifeq ($(strip $(KEYBOARD)), rgbkb/sol/rev1)
- ENCODER_ENABLE = no
- RGB_OLED_MENU = no
-else
- ENCODER_ENABLE = yes
- RGB_OLED_MENU = 0
-endif
-
-# Do not edit past here
-
-include keyboards/$(KEYBOARD)/post_rules.mk
diff --git a/keyboards/rgbkb/sol3/config.h b/keyboards/rgbkb/sol3/config.h
index 3a0b61bfd5..102ebcda95 100644
--- a/keyboards/rgbkb/sol3/config.h
+++ b/keyboards/rgbkb/sol3/config.h
@@ -41,15 +41,8 @@
#endif
/* Split Transport Features */
-#define SPLIT_TRANSPORT_MIRROR
-#define SPLIT_LAYER_STATE_ENABLE
-#define SPLIT_LED_STATE_ENABLE
#define SPLIT_TRANSACTION_IDS_KB TOUCH_ENCODER_SYNC, RGB_MENU_SYNC
-/* LED Turbo DIP Switch */
-#define DIP_SWITCH_PINS { A14, B13 }
-#define DIP_SWITCH_PINS_RIGHT { A14, B0 }
-
#define RGB_MATRIX_LED_COUNT 156
#define RGB_MATRIX_SPLIT { 78, 78 }
#define RGB_MATRIX_CENTER { 81, 28 }
@@ -125,6 +118,3 @@
#define AUDIO_CLICKY
#define AUDIO_DAC_SAMPLE_WAVEFORM_SQUARE
#define AUDIO_DAC_OFF_VALUE 0
-
-#define WEAR_LEVELING_BACKING_SIZE 4096
-#define WEAR_LEVELING_LOGICAL_SIZE 2048
diff --git a/keyboards/rgbkb/sol3/keymaps/default/config.h b/keyboards/rgbkb/sol3/keymaps/default/config.h
index 7e46726115..88bdc06dee 100644
--- a/keyboards/rgbkb/sol3/keymaps/default/config.h
+++ b/keyboards/rgbkb/sol3/keymaps/default/config.h
@@ -19,6 +19,3 @@
// 20m timeout (20m * 60s * 1000mil)
// #define RGB_MATRIX_TIMEOUT 1200000
#define RGB_DISABLE_WHEN_USB_SUSPENDED
-
-#define STM32_ONBOARD_EEPROM_SIZE 2048
-
diff --git a/keyboards/rgbkb/sol3/keymaps/kageurufu/config.h b/keyboards/rgbkb/sol3/keymaps/kageurufu/config.h
deleted file mode 100644
index b6416d9bf8..0000000000
--- a/keyboards/rgbkb/sol3/keymaps/kageurufu/config.h
+++ /dev/null
@@ -1,30 +0,0 @@
-/*
- * ----------------------------------------------------------------------------
- * "THE BEER-WARE LICENSE" (Revision 42):
- * <https://github.com/kageurufu> wrote this file. As long as you retain this
- * notice you can do whatever you want with this stuff. If we meet some day, and
- * you think this stuff is worth it, you can buy me a beer in return. Frank Tackitt
- * ----------------------------------------------------------------------------
- */
-
-#pragma once
-
-// No need for the single versions when multi performance isn't a problem =D
-#define DISABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE
-#define DISABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS
-#define DISABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS
-#define DISABLE_RGB_MATRIX_SPLASH
-#define DISABLE_RGB_MATRIX_SOLID_SPLASH
-
-// 20m timeout (20m * 60s * 1000mil)
-// #define RGB_MATRIX_TIMEOUT 1200000
-#define RGB_DISABLE_WHEN_USB_SUSPENDED
-
-
-#define VIA_EEPROM_LAYOUT_OPTIONS_SIZE 2
-// 224B per layer right now
-#define DYNAMIC_KEYMAP_LAYER_COUNT 8
-#define DYNAMIC_KEYMAP_EEPROM_MAX_ADDR 2047
-
-#define STM32_ONBOARD_EEPROM_SIZE 2048
-
diff --git a/keyboards/rgbkb/sol3/keymaps/kageurufu/keymap.c b/keyboards/rgbkb/sol3/keymaps/kageurufu/keymap.c
deleted file mode 100644
index 0f92110ff4..0000000000
--- a/keyboards/rgbkb/sol3/keymaps/kageurufu/keymap.c
+++ /dev/null
@@ -1,69 +0,0 @@
-/*
- * ----------------------------------------------------------------------------
- * "THE BEER-WARE LICENSE" (Revision 42):
- * <https://github.com/kageurufu> wrote this file. As long as you retain this
- * notice you can do whatever you want with this stuff. If we meet some day, and
- * you think this stuff is worth it, you can buy me a beer in return. Frank Tackitt
- * ----------------------------------------------------------------------------
- */
-
-#include QMK_KEYBOARD_H
-#include "kageurufu.h"
-
-extern keymap_config_t keymap_config;
-
-/* Base Layout
- * ,------------------------------------------------. ,------------------------------------------------.
- * | ` | | | | | | | | | | | | | | BkSp |
- * |------+------+------+------+------+------|------| |------|------+------+------+------+------+------|
- * | Tab | | | | | | | | | | | | | | \ |
- * |------+------+------+------+------+------|------| |------|------+------+------+------+------+------|
- * | Esc | | | | | | | | | | | | | | ' |
- * |------+------+------+------+------+------+------| |------+------+------+------+------+------+------|
- * | Sft( | | | | | | | | | | | | | | Sft) |
- * |------+------+------+------+------+------+------| |------+------+------+------+------+------+------|
- * | Ctrl | Win | Win | Alt | FN | Space| RGB | | FN | FN | - | = | Down | PgUp | PgDn |
- * |------+------+------+------+------+------+------| |------+------+------+------+------+------+------|
- * | Space| Bksp | | Enter| Space|
- * `-------------' `--------=----'
- */
-#define EXPAND_LAYOUT(...) LAYOUT(__VA_ARGS__, \
- KC_MNXT, KC_MPLY, KC_MPRV, KC_VOLD, KC_VOLU, KC_MNXT, KC_MPLY, KC_MPRV, KC_VOLD, KC_VOLU )
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
- [_QWERTY] = EXPAND_LAYOUT(
- KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, RGB_MOD, KC_EQL, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC,
- KC_TAB, _________________QWERTY_L1_________________, KC_LBRC, KC_RBRC, _________________QWERTY_R1_________________, KC_BSLS,
- FN_ESC, _________________QWERTY_L2_________________, RGB_SAI, RGB_VAI, _________________QWERTY_R2_________________, KC_QUOT,
- SC_LSPO, _________________QWERTY_L3_________________, RGB_SAD, RGB_VAD, _________________QWERTY_R3_________________, SC_RSPC,
- KC_LCTL, KC_LGUI, KC_LGUI, KC_LALT, FN, KC_SPC, KC_MUTE, KC_BSPC, KC_ENT, FN, KC_SPC, KC_MINS, KC_EQL, KC_DOWN, KC_PGUP, KC_PGDN
- ),
-
- [_FN] = EXPAND_LAYOUT(
- ________________FUNCTION_L1________________, _______, KC_PSCR, ________________FUNCTION_R1________________,
- ________________FUNCTION_L2________________, _______, _______, ________________FUNCTION_R2________________,
- ________________FUNCTION_L3________________, _______, _______, ________________FUNCTION_R3________________,
- ________________FUNCTION_L4________________, _______, _______, ________________FUNCTION_R4________________,
- ________________FUNCTION_L5________________, ADJ, KC_DEL, _______, ADJ, ________________FUNCTION_R5________________
- ),
-
- [_ADJ] = EXPAND_LAYOUT(
- _________________ADJUST_L1_________________, _______, _______, _________________ADJUST_R1_________________,
- _________________ADJUST_L2_________________, _______, _______, _________________ADJUST_R2_________________,
- _________________ADJUST_L3_________________, _______, _______, _________________ADJUST_R3_________________,
- _________________ADJUST_L4_________________, _______, _______, _________________ADJUST_R4_________________,
- _________________ADJUST_L5_________________, _______, _______, _______, _______, _________________ADJUST_R5_________________
-
- )
-
-};
-
-#ifdef ENCODER_MAP_ENABLE
-const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = {
- [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(KC_VOLD, KC_VOLU),
- ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(KC_VOLD, KC_VOLU) },
- [1 ... 4] = { ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______),
- ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______) }
-};
-#endif
diff --git a/keyboards/rgbkb/sol3/keymaps/via/config.h b/keyboards/rgbkb/sol3/keymaps/via/config.h
index ff1ff77472..7b7f806261 100644
--- a/keyboards/rgbkb/sol3/keymaps/via/config.h
+++ b/keyboards/rgbkb/sol3/keymaps/via/config.h
@@ -25,6 +25,3 @@
// 224B per layer right now
#define DYNAMIC_KEYMAP_LAYER_COUNT 8
#define DYNAMIC_KEYMAP_EEPROM_MAX_ADDR 2047
-
-#define STM32_ONBOARD_EEPROM_SIZE 2048
-
diff --git a/keyboards/rgbkb/sol3/rev1/info.json b/keyboards/rgbkb/sol3/rev1/info.json
index b80161995f..c76e1f84dc 100644
--- a/keyboards/rgbkb/sol3/rev1/info.json
+++ b/keyboards/rgbkb/sol3/rev1/info.json
@@ -37,6 +37,14 @@
"io_delay": 5
},
"diode_direction": "COL2ROW",
+ "dip_switch": {
+ "pins": ["A14", "B13"]
+ },
+ "eeprom": {
+ "wear_leveling": {
+ "backing_size": 4096
+ }
+ },
"encoder": {
"rotary": [
{"pin_a": "A1", "pin_b": "A2"},
@@ -45,6 +53,11 @@
]
},
"split": {
+ "dip_switch": {
+ "right": {
+ "pins": ["A14", "B0"]
+ }
+ },
"soft_serial_pin": "A9",
"encoder": {
"right": {
@@ -60,6 +73,13 @@
"cols": ["B9", "B8", "B4", "A6", "A3", "B10", "B12", "B11"],
"rows": ["B15", "B14", "A8", "A13", "A7", null]
}
+ },
+ "transport": {
+ "sync": {
+ "indicators": true,
+ "layer_state": true,
+ "matrix_state": true
+ }
}
},
"qmk": {
diff --git a/keyboards/rgbkb/sol3/rules.mk b/keyboards/rgbkb/sol3/rules.mk
index 9cb54cfa15..227219e302 100644
--- a/keyboards/rgbkb/sol3/rules.mk
+++ b/keyboards/rgbkb/sol3/rules.mk
@@ -2,7 +2,7 @@
VPATH += keyboards/rgbkb/common
SRC += touch_encoder.c
SRC += common_oled.c
-QUANTUM_LIB_SRC += i2c_master.c
+I2C_DRIVER_REQUIRED = yes
# Build Options
# change yes to no to disable
diff --git a/keyboards/rgbkb/zen/rev1/keymaps/333fred/config.h b/keyboards/rgbkb/zen/rev1/keymaps/333fred/config.h
deleted file mode 100644
index 016aeb1c56..0000000000
--- a/keyboards/rgbkb/zen/rev1/keymaps/333fred/config.h
+++ /dev/null
@@ -1,47 +0,0 @@
-/*
- Copyright (c) 2020 Fred Silberberg
-
- Permission is hereby granted, free of charge, to any person obtaining a copy
- of this software and associated documentation files (the "Software"), to deal
- in the Software without restriction, including without limitation the rights
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- copies of the Software, and to permit persons to whom the Software is
- furnished to do so, subject to the following conditions:
-
- The above copyright notice and this permission notice shall be included in all
- copies or substantial portions of the Software.
-
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- THE SOFTWARE.
-*/
-
-#pragma once
-
-
-/* Select hand configuration */
-//#define MASTER_LEFT
-#define EE_HANDS
-
-#undef RGBLED_NUM
-#define RGBLIGHT_EFFECT_BREATHING
-#define RGBLIGHT_EFFECT_RAINBOW_MOOD
-#define RGBLIGHT_EFFECT_RAINBOW_SWIRL
-#define RGBLIGHT_EFFECT_SNAKE
-#define RGBLIGHT_EFFECT_KNIGHT
-#define RGBLIGHT_EFFECT_CHRISTMAS
-#define RGBLIGHT_EFFECT_STATIC_GRADIENT
-#define RGBLIGHT_EFFECT_RGB_TEST
-#define RGBLIGHT_EFFECT_ALTERNATING
-#define RGBLIGHT_EFFECT_TWINKLE
-#define RGBLED_NUM 16
-#define RGBLIGHT_HUE_STEP 8
-#define RGBLIGHT_SAT_STEP 8
-#define RGBLIGHT_VAL_STEP 8
-
-#undef TAPPING_TERM
-#define TAPPING_TERM 150
diff --git a/keyboards/rgbkb/zen/rev1/keymaps/333fred/keymap.c b/keyboards/rgbkb/zen/rev1/keymaps/333fred/keymap.c
deleted file mode 100644
index de8e9dd67c..0000000000
--- a/keyboards/rgbkb/zen/rev1/keymaps/333fred/keymap.c
+++ /dev/null
@@ -1,145 +0,0 @@
-/*
- Copyright (c) 2020 Fred Silberberg
-
- Permission is hereby granted, free of charge, to any person obtaining a copy
- of this software and associated documentation files (the "Software"), to deal
- in the Software without restriction, including without limitation the rights
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- copies of the Software, and to permit persons to whom the Software is
- furnished to do so, subject to the following conditions:
-
- The above copyright notice and this permission notice shall be included in all
- copies or substantial portions of the Software.
-
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- THE SOFTWARE.
-*/
-
-#include QMK_KEYBOARD_H
-#include "333fred.h"
-
-extern keymap_config_t keymap_config;
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
-/* Qwerty
- * ,-----------------------------------------. .-----------------------------------------.
- * | ` | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | - |
- * |------+------+------+------+------+------| |------+------+------+------+------+------|
- * | Tab | Q | W | E | R | T | | Y | U | I | O | P | \ |
- * |------+------+------+------+------+------| |------+------+------+------+------+------|
- * | Esc | A | S | D | F | G | | H | J | K | L | ; | " |
- * |------+------+------+------+------+------| |------+------+------+------+------+------|
- * | Shift| Z | X | C | V | B | | N | M | , | . | / |SHIFT |
- * |------+------+------+------+------+------+------..-----+------+------+------+------+------+------|
- * | Ctrl | F4 | F5 | GUI | Alt | Bksp |Lwr/VM||Enter|Space | NAV | - | = | Alt | Del |
- * `------------------------------------------------''-----------------------------------------------'
- */
-[BASE] = LAYOUT(
- KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINUS,
- KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS,
- KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
- OSM(MOD_LSFT), LCTL_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, OSM(MOD_RSFT) ,
- KC_LCTL, KC_F4, KC_F5, KC_LGUI, KC_LALT, KC_BSPC, TD(TD_SYM_VIM), KC_ENT, KC_SPACE, OSL(VIM), KC_MINS, KC_EQL, KC_RALT, KC_DEL
-),
-
-/* Symbols
- * ,-----------------------------------------. .-----------------------------------------.
- * | Caps | F1 | F2 | F3 | F4 | F5 | | F6 | F7 | F8 | F9 | F10 | F11 |
- * |------+------+------+------+------+------| |------+------+------+------+------+------|
- * | | ! | @ | ( | ) | | | | 7 | 8 | 9 | * | ) | F12 |
- * |------+------+------+------+------+------| |------+------+------+------+------+------|
- * | | # | $ | { | } | ` | | 4 | 5 | 6 | + | } | | |
- * |------+------+------+------+------+------| |------+------+------+------+------+------|
- * | APscr| % | ^ | [ | ] | ~ | | 1 | 2 | 3 | \ | Vol- | Vol+ |
- * |------+------+------+------+------+------+------..------+------+------+------+------+------+------|
- * | Pscr | | QK_BOOT| | | GAME | || | 0 | . | = | Prev | Next | Play |
- * `------------------------------------------------- -------------------------------------------------'
- */
-[SYMB] = LAYOUT(
- KC_CAPS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,
- _______, KC_EXLM, KC_AT, KC_LPRN, KC_RPRN, KC_PIPE, KC_7, KC_8, KC_9, KC_ASTR, KC_RPRN, KC_F12,
- _______, KC_HASH, KC_DLR, KC_LCBR, KC_RCBR, KC_GRV, KC_4, KC_5, KC_6, KC_PLUS, KC_RCBR, KC_PIPE,
- PSCREEN_APP, KC_PERC, KC_CIRC, KC_LBRC, KC_RBRC, KC_TILD, KC_1, KC_2, KC_3, KC_BSLS, KC_VOLD, KC_VOLU,
- KC_PSCR, _______, QK_BOOT, _______, _______, TO(GAME), _______, _______, KC_0, KC_DOT, KC_EQL, KC_MPRV, KC_MNXT, KC_MPLY
-),
-
-/* Vim Movement
- * ,-----------------------------------------. .-----------------------------------------.
- * | | | | | | | | | | | | QK_BOOT| |
- * |------+------+------+------+------+------| |------+------+------+------+------+------|
- * | |RGBSAI|RGBVAI|RGBSAD| LSFT | | | | | | | | |
- * |------+------+------+------+------+------| |------+------+------+------+------+------|
- * | | DLeft|DRight| LCTRL| LGUI | | | Left | Down | Up | Right| | |
- * |------+------+------+------+------+------| |------+------+------+------+------+------|
- * | |RGBHUD|RGBVAD|RGBHUI| | | | | | | | | |
- * |------+------+------+------+------+------+------..------+------+------+------+------+------+------|
- * | | | | | | | || | | | | | | |
- * `------------------------------------------------..------------------------------------------------'
- */
-[VIM] = LAYOUT(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, QK_BOOT, _______,
- _______, RGB_SAI, RGB_VAI, RGB_SAD, KC_LSFT, _______, _______, _______, _______, _______, _______, _______,
- _______, DLEFT, DRIGHT, KC_LCTL, KC_LGUI, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, _______, _______,
- _______, RGB_HUD, RGB_VAD, RGB_HUI, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
-),
-
-/* Gaming mode (Raise)
- * All one-shot mods are disabled on this layer
- * ,-----------------------------------------. .-----------------------------------------.
- * | ESC | | | | | | | | | | | | |
- * |------+------+------+------+------+------| |------+------+------+------+------+------|
- * | | | | | | | | | | | | | |
- * |------+------+------+------+------+------| |------+------+------+------+------+------|
- * | CTRL | | | | | | | | | | | | |
- * |------+------+------+------+------+------| |------+------+------+------+------+------|
- * | Shift| Z | | | | | | | | | | | GUI |
- * |------+------+------+------+------+------+------..------+------+------+------+------+------+------|
- * | Enter| | Lock | Bksp | Alt | Spc | QK_BOOT|| | Lower| Left | Up | Down | Right|QWERTY|
- * `------------------------------------------------..-----------------------------------------------'
- */
-[GAME] = LAYOUT(
- KC_ESC, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- KC_LCTL, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- KC_LSFT, KC_Z, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_LGUI,
- KC_ENT, TG(GAME_ARROW), QK_LOCK, KC_BSPC, KC_F5, KC_LALT, KC_SPC, OSL(SYMB), KC_F6, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, TO(BASE)
-),
-/* Gaming Arrow mode (Raise)
- * Turns wasd into arrows
- * ,-----------------------------------------. .-----------------------------------------.
- * | ESC | | | | | | | | | | | | |
- * |------+------+------+------+------+------| |------+------+------+------+------+------|
- * | | | Up | | | | | | | | | | |
- * |------+------+------+------+------+------| |------+------+------+------+------+------|
- * | CTRL | Left | Down | Right| | | | | | | | | |
- * |------+------+------+------+------+------| |------+------+------+------+------+------|
- * | Shift| Z | | | | | | | | | | | GUI |
- * |------+------+------+------+------+------+------..------+------+------+------+------+------+------|
- * | Enter| | Lock | Bksp | Alt | Spc | QK_BOOT|| | Lower| Left | Up | Down | Right|QWERTY|
- * `------------------------------------------------..-----------------------------------------------'
- */
-[GAME_ARROW] = LAYOUT(
- KC_ESC, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- KC_LCTL, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______,
- KC_LSFT, KC_Z, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_LGUI,
- KC_ENT, _______, QK_LOCK, KC_BSPC, KC_F5, KC_LALT, KC_SPC, OSL(SYMB), KC_F6, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, TO(BASE)
-)
-};
-
-void persistant_default_layer_set(uint16_t default_layer) {
- eeconfig_update_default_layer(default_layer);
- default_layer_set(default_layer);
-}
-
-bool process_record_user(uint16_t keycode, keyrecord_t *record) {
- tap_dance_process_keycode(keycode);
- return true;
-}
diff --git a/keyboards/rgbkb/zen/rev1/keymaps/333fred/rules.mk b/keyboards/rgbkb/zen/rev1/keymaps/333fred/rules.mk
deleted file mode 100644
index a5b4454073..0000000000
--- a/keyboards/rgbkb/zen/rev1/keymaps/333fred/rules.mk
+++ /dev/null
@@ -1,4 +0,0 @@
-RGBLIGHT_ENABLE = yes
-KEY_LOCK_ENABLE = yes
-CONSOLE_ENABLE = no
-LTO_ENABLE = yes
diff --git a/keyboards/rgbkb/zen/rev1/keymaps/cwebster2/config.h b/keyboards/rgbkb/zen/rev1/keymaps/cwebster2/config.h
deleted file mode 100644
index e4ece8082b..0000000000
--- a/keyboards/rgbkb/zen/rev1/keymaps/cwebster2/config.h
+++ /dev/null
@@ -1,20 +0,0 @@
-/*
-Copyright 2020 Casey Webster <casey@e1337.dev>
-
-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 EE_HANDS
diff --git a/keyboards/rgbkb/zen/rev1/keymaps/cwebster2/keymap.c b/keyboards/rgbkb/zen/rev1/keymaps/cwebster2/keymap.c
deleted file mode 100644
index 7001395669..0000000000
--- a/keyboards/rgbkb/zen/rev1/keymaps/cwebster2/keymap.c
+++ /dev/null
@@ -1,116 +0,0 @@
-/* Copyright 2020 Casey Webster <casey@e1337.dev>
- *
- * 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 "rev1.h"
-#include "cwebster2.h"
-
-#define LAYOUT_zen_base( \
- L01, L02, L03, L04, L05, R05, R04, R03, R02, R01, \
- L11, L12, L13, L14, L15, R15, R14, R13, R12, R11, \
- L21, L22, L23, L24, L25, R25, R24, R23, R22, R21, \
- L33, L34, L35, R35, R34, R33 \
- ) \
- LAYOUT_zen_wrapper ( \
- KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_EQL, \
- KC_GRV, L01, L02, L03, L04, L05, R05, R04, R03, R02, R01, KC_BSLS, \
- KC_CTLBS, L11, L12, L13, L14, L15, R15, R14, R13, R12, R11, KC_QUOT, \
- KC_EQL, L21, L22, L23, L24, L25, R25, R24, R23, R22, R21, KC_MINS, \
- KC_LCCL, KC_LGUI, SCMD_T(KC_LBRC), C_S_T(KC_MINS), L33, L34, L35, R35, R34, R33, TO(_GAME), KC_PSCR, KC_ALTCL, KC_LSFT \
- )
-#define LAYOUT_zen_base_wrapper(...) LAYOUT_zen_base(__VA_ARGS__)
-
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-/*
- * Base Layer: QWERTY
- */
- [_QWERTY] = LAYOUT_zen_base_wrapper(
- /* ,-----------------------. ,-----------------------. */
- _______QWERTY_L1______, _______QWERTY_R1______,
- _______QWERTY_L2______, _______QWERTY_R2______,
- _______QWERTY_L3______, _______QWERTY_R3______,
- _______THUMBS_L_______, _______THUMBS_R_______
- /* `---------------------' `---------------------' */
- ),
- [_COLEMAK] = LAYOUT_zen_wrapper(
- /* ,-----------------------. ,-----------------------. */
- KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_EQL,
- KC_GRV, _______COLEMAK_L1_____, _______COLEMAK_R1_____, KC_BSLS,
- KC_CTLBS, _______COLEMAK_L2_____, _______COLEMAK_R2_____, KC_SCLN,
- KC_EQL, _______COLEMAK_L3_____, _______COLEMAK_R3_____, KC_MINS,
- KC_LCCL, KC_LGUI, SCMD_T(KC_LBRC), C_S_T(KC_MINS), _______THUMBS_L_______, _______THUMBS_R_______, TO(_QWERTY), KC_PSCR, KC_ALTCL, KC_LSFT
- /* `---------------------' `---------------------' */
- ),
- // GAME layout -- qwerty without homerow mods
- [_GAME] = LAYOUT_zen_wrapper(
- /* ,-------------------------------------------. ,-------------------------------------------. */
- KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_EQL,
- KC_GRV, _______QWERTY_L1______, _______QWERTY_R1______, KC_BSLS,
- KC_CTLBS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
- KC_EQL, _______QWERTY_L3______, _______QWERTY_R3______, KC_MINS,
- KC_LCCL, KC_LGUI, SCMD_T(KC_LBRC), C_S_T(KC_MINS), _______THUMBS_L_______, _______THUMBS_R_______, TO(_COLEMAK), KC_PSCR, KC_ALTCL, KC_LSFT
- /* `----------------------------------' `----------------------------------' */
- ),
- [_FN] = LAYOUT_zen_base_wrapper(
- /* ,-----------------------. ,-----------------------. */
- _______FN_______L1____, _______INACTIVE_R1____,
- _______FN_______L2____, _______INACTIVE_R2____,
- _______FN_______L3____, _______NAV______R2____,
- _______FN________T____, _______INACTIVE__T____
- /* `---------------------' `---------------------' */
- ),
- [_SYMBOLS] = LAYOUT_zen_base_wrapper(
- /* ,-----------------------. ,-----------------------. */
- _______SYM______L1____, _______INACTIVE_R1____,
- _______SYM______L2____, _______INACTIVE_R2____,
- _______SYM______L3____, _______INACTIVE_R3____,
- _______SYM_______T____, _______INACTIVE__T____
- /* `---------------------' `---------------------' */
- ),
- [_NUM] = LAYOUT_zen_base_wrapper(
- /* ,-----------------------. ,-----------------------. */
- _______NUM______L1____, _______INACTIVE_R1____,
- _______NUM______L2____, _______INACTIVE_R2____,
- _______NUM______L3____, _______INACTIVE_R3____,
- _______NUM_______T____, _______INACTIVE__T____
- /* `---------------------' `---------------------' */
- ),
- [_NAV] = LAYOUT_zen_base_wrapper(
- /* ,-----------------------. ,-----------------------. */
- _______INACTIVE_L1____, _______NAV______R1____,
- _______INACTIVE_L2____, _______NAV______R2____,
- _______INACTIVE_L3____, _______NAV______R3____,
- _______INACTIVE__T____, _______NAV_______T____
- /* `---------------------' `---------------------' */
- ),
- [_MOUSE] = LAYOUT_zen_base_wrapper(
- /* ,-----------------------. ,-----------------------. */
- _______INACTIVE_L1____, _______MOUSE____R1____,
- _______INACTIVE_L2____, _______MOUSE____R2____,
- _______INACTIVE_L3____, _______MOUSE____R3____,
- _______INACTIVE__T____, _______MOUSE_____T____
- /* `---------------------' `---------------------' */
- ),
- [_MEDIA] = LAYOUT_zen_base_wrapper(
- /* ,-----------------------. ,-----------------------. */
- _______INACTIVE_L1____, _______MEDIA____R1____,
- _______INACTIVE_L2____, _______MEDIA____R2____,
- _______INACTIVE_L3____, _______MEDIA____R3____,
- _______INACTIVE__T____, _______MEDIA_____T____
- /* `---------------------' `---------------------' */
- ),
-};
-
diff --git a/keyboards/rgbkb/zen/rev1/keymaps/cwebster2/rules.mk b/keyboards/rgbkb/zen/rev1/keymaps/cwebster2/rules.mk
deleted file mode 100644
index 632a5f610d..0000000000
--- a/keyboards/rgbkb/zen/rev1/keymaps/cwebster2/rules.mk
+++ /dev/null
@@ -1,2 +0,0 @@
-RGBLIGHT_ENABLE = no
-RAW_ENABLE = yes
diff --git a/keyboards/rgbkb/zen/rev1/keymaps/kageurufu/keymap.c b/keyboards/rgbkb/zen/rev1/keymaps/kageurufu/keymap.c
deleted file mode 100644
index fe974e4248..0000000000
--- a/keyboards/rgbkb/zen/rev1/keymaps/kageurufu/keymap.c
+++ /dev/null
@@ -1,62 +0,0 @@
-#include QMK_KEYBOARD_H
-#include "kageurufu.h"
-#ifdef PROTOCOL_LUFA
- #include "lufa.h"
- #include "split_util.h"
-#endif
-
-extern keymap_config_t keymap_config;
-extern uint8_t is_master;
-
-
-#define EXPAND_LAYOUT(...) LAYOUT(__VA_ARGS__)
-#define _BASE_LAYOUT( \
- _00, _01, _02, _03, _04, _05, _06, _07, _08, _09, \
- _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, \
- _20, _21, _22, _23, _24, _25, _26, _27, _28, _29 \
-) \
-EXPAND_LAYOUT( \
- KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, \
- KC_TAB, _00, _01, _02, _03, _04, _05, _06, _07, _08, _09, KC_BSLS, \
- FN_ESC, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, KC_QUOT, \
- SC_LSPO, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, SC_RSPC, \
- KC_LCTL, KC_LGUI, KC_LGUI, KC_LALT, FN, KC_SPC, KC_BSPC, KC_ENT, KC_SPC, KC_MINS, KC_EQL, KC_DOWN, KC_PGUP, KC_PGDN \
-)
-#define BASE_LAYOUT(...) _BASE_LAYOUT(__VA_ARGS__)
-
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [_QWERTY] = BASE_LAYOUT(
- _________________QWERTY_L1_________________, _________________QWERTY_R1_________________,
- _________________QWERTY_L2_________________, _________________QWERTY_R2_________________,
- _________________QWERTY_L3_________________, _________________QWERTY_R3_________________
- ),
-
- [_COLEMAK] = BASE_LAYOUT(
- _________________COLEMAK_L1________________, _________________COLEMAK_R1________________,
- _________________COLEMAK_L2________________, _________________COLEMAK_R2________________,
- _________________COLEMAK_L3________________, _________________COLEMAK_R3________________
- ),
-
- [_COLEMAK_DH] = BASE_LAYOUT(
- ______________COLEMAK_MOD_DH_L1____________, ______________COLEMAK_MOD_DH_R1____________,
- ______________COLEMAK_MOD_DH_L2____________, ______________COLEMAK_MOD_DH_R2____________,
- ______________COLEMAK_MOD_DH_L3____________, ______________COLEMAK_MOD_DH_R3____________
- ),
-
- [_FN] = EXPAND_LAYOUT(
- ________________FUNCTION_L1________________, ________________FUNCTION_R1________________,
- ________________FUNCTION_L2________________, ________________FUNCTION_R2________________,
- ________________FUNCTION_L3________________, ________________FUNCTION_R3________________,
- ________________FUNCTION_L4________________, ________________FUNCTION_R4________________,
- ________________FUNCTION_L5________________, _______, KC_DEL, ________________FUNCTION_R5________________
- ),
-
- [_ADJ] = EXPAND_LAYOUT(
- _________________ADJUST_L1_________________, _________________ADJUST_R1_________________,
- _________________ADJUST_L2_________________, _________________ADJUST_R2_________________,
- _________________ADJUST_L3_________________, _________________ADJUST_R3_________________,
- _________________ADJUST_L4_________________, _________________ADJUST_R4_________________,
- _________________ADJUST_L5_________________, _______, _______, _________________ADJUST_R5_________________
- )
-};
diff --git a/keyboards/rgbkb/zygomorph/keymaps/kageurufu/config.h b/keyboards/rgbkb/zygomorph/keymaps/kageurufu/config.h
deleted file mode 100644
index dc06487ce8..0000000000
--- a/keyboards/rgbkb/zygomorph/keymaps/kageurufu/config.h
+++ /dev/null
@@ -1,24 +0,0 @@
-/*
-This is the c configuration file for the keymap
-
-Copyright 2012 Jun Wako <wakojun@gmail.com>
-Copyright 2015 Jack Humbert
-
-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
-
-// place overrides here
-
diff --git a/keyboards/rgbkb/zygomorph/keymaps/kageurufu/keymap.c b/keyboards/rgbkb/zygomorph/keymaps/kageurufu/keymap.c
deleted file mode 100644
index 984a829735..0000000000
--- a/keyboards/rgbkb/zygomorph/keymaps/kageurufu/keymap.c
+++ /dev/null
@@ -1,85 +0,0 @@
-#include QMK_KEYBOARD_H
-#include "kageurufu.h"
-
-#ifdef PROTOCOL_LUFA
-#include "lufa.h"
-#include "split_util.h"
-#endif
-
-#define FN_CAPS LT(_FN, KC_CAPS)
-
-// Define your non-alpha grouping in this define's LAYOUT, and all your BASE_LAYERS will share the same mod/macro columns
- /* / Base Layout \
- * /-----------------------------------------\ /-----------------------------------------\
- * | GESC | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | BkSp |
- * |------+------+------+------+------+------| |------+------+------+------+------+------|
- * | Tab | | | | | | | | | | | | \ |
- * |------+------+------+------+------+------| |------+------+------+------+------+------|
- * |FNCAPS| | | | | | | | | | | | ' |
- * |------+------+------+------+------+------| |------+------+------+------+------+------|
- * |Shift | | | | | | | | | | | |Shift |
- * |------+------+------+------+------+------| |------+------+------+------+------+------|
- * | Ctrl | Win | Alt | RGB | ADJ | Space| | Space| FN | Left | Down | Up |Right |
- * \------+------+------+------+------+------/ \------+------+------+------+------+------/
- */
-#define EXPAND_LAYOUT(...) LAYOUT_ortho_5x12(__VA_ARGS__)
-#define _BASE_LAYOUT( \
- _00, _01, _02, _03, _04, _05, _06, _07, _08, _09, \
- _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, \
- _20, _21, _22, _23, _24, _25, _26, _27, _28, _29 \
-) \
-EXPAND_LAYOUT( \
- QK_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, \
- KC_TAB, _00, _01, _02, _03, _04, _05, _06, _07, _08, _09, KC_BSLS, \
- FN_CAPS, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, KC_QUOT, \
- KC_LSFT, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, KC_ENT, \
- KC_LCTL, KC_LGUI, KC_LALT, RGB_TOG, ADJ, KC_SPC, KC_SPC, FN, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT \
-)
-#define BASE_LAYOUT(...) _BASE_LAYOUT(__VA_ARGS__)
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [_QWERTY] = BASE_LAYOUT(
- _________________QWERTY_L1_________________, _________________QWERTY_R1_________________,
- _________________QWERTY_L2_________________, _________________QWERTY_R2_________________,
- _________________QWERTY_L3_________________, _________________QWERTY_R3_________________
- ),
-
- [_COLEMAK] = BASE_LAYOUT(
- _________________COLEMAK_L1________________, _________________COLEMAK_R1________________,
- _________________COLEMAK_L2________________, _________________COLEMAK_R2________________,
- _________________COLEMAK_L3________________, _________________COLEMAK_R3________________
- ),
-
- [_FN] = EXPAND_LAYOUT(
- ________________FUNCTION_L1________________, ________________FUNCTION_R1________________,
- ________________FUNCTION_L2________________, ________________FUNCTION_R2________________,
- ________________FUNCTION_L3________________, ________________FUNCTION_R3________________,
- ________________FUNCTION_L4________________, ________________FUNCTION_R4________________,
- ________________FUNCTION_L5________________, ________________FUNCTION_R5________________
- ),
-
- [_ADJ] = EXPAND_LAYOUT(
- _________________ADJUST_L1_________________, _________________ADJUST_R1_________________,
- _________________ADJUST_L2_________________, _________________ADJUST_R2_________________,
- _________________ADJUST_L3_________________, _________________ADJUST_R3_________________,
- _________________ADJUST_L4_________________, _________________ADJUST_R4_________________,
- _________________ADJUST_L5_________________, _________________ADJUST_R5_________________
- )
-};
-
-bool encoder_update_user(uint8_t index, bool clockwise) {
- if (index == 0) { /* First encoder */
- if (clockwise) {
- tap_code(KC_PGDN);
- } else {
- tap_code(KC_PGUP);
- }
- } else if (index == 1) { /* Second encoder from slave */
- if (clockwise) {
- tap_code(KC_UP);
- } else {
- tap_code(KC_DOWN);
- }
- }
- return true;
-}
diff --git a/keyboards/rgbkb/zygomorph/keymaps/kageurufu/readme.md b/keyboards/rgbkb/zygomorph/keymaps/kageurufu/readme.md
deleted file mode 100644
index 35148c3b01..0000000000
--- a/keyboards/rgbkb/zygomorph/keymaps/kageurufu/readme.md
+++ /dev/null
@@ -1,132 +0,0 @@
-# The Default Zygomorph Layout
-## Layout
-
-### Base modifier layout
-```
- * ,------------------------------------------------. ,------------------------------------------------.
- * | GESC | | | | | | - | | = | | | | | | BkSp |
- * |------+------+------+------+------+------|------| |------|------+------+------+------+------+------|
- * | Tab | | | | | | [ | | ] | | | | | | \ |
- * |------+------+------+------+------+------|------| |------|------+------+------+------+------+------|
- * |FN(CAPS)| | | | | | ( | | ) | | | | | | ' |
- * |------+------+------+------+------+------+------| |------+------+------+------+------+------+------|
- * |Shift | | | | | | { | | } | | | | | |Shift |
- * |------+------+------+------+------+------+------| |------+------+------+------+------+------+------|
- * | Ctrl | Win | Alt | RGB | ADJ | Space| DEL | | Enter| Space| FN | Left | Down | Up |Right |
- * |------+------+------+------+------+------+------| |------+------+------+------+------+------+------'
- * | Space| DEL | | Enter| Space|
- * `-------------' `-------------'
-```
-
-### Qwerty alphas
-```
- * ,------------------------------------------------. ,------------------------------------------------.
- * | | | | | | | | | | | | | | | |
- * |------+------+------+------+------+------|------| |------|------+------+------+------+------+------|
- * | | Q | W | E | R | T | | | | Y | U | I | O | P | |
- * |------+------+------+------+------+------|------| |------|------+------+------+------+------+------|
- * | | A | S | D | F | G | | | | H | J | K | L | ; | |
- * |------+------+------+------+------+------+------| |------+------+------+------+------+------+------|
- * | | Z | X | C | V | B | | | | N | M | , | . | / | |
- * |------+------+------+------+------+------+------| |------+------+------+------+------+------+------|
- * | | | | | | | | | | | | | | | |
- * `------+------+------+------+------+------+------| |------+------+------+------+------+------+------'
- * | | | | | |
- * `-------------' `-------------'
-```
-
-### Colemak alphas
-```
- * ,------------------------------------------------. ,------------------------------------------------.
- * | | | | | | | | | | | | | | | |
- * |------+------+------+------+------+------|------| |------|------+------+------+------+------+------|
- * | | Q | W | F | P | B | | | | J | L | U | Y | ; | |
- * |------+------+------+------+------+------|------| |------|------+------+------+------+------+------|
- * | | A | R | S | T | G | | | | K | N | E | I | O | |
- * |------+------+------+------+------+------+------| |------+------+------+------+------+------+------|
- * | | Z | X | C | D | V | | | | M | H | , | . | / | |
- * |------+------+------+------+------+------+------| |------+------+------+------+------+------+------|
- * | | | | | | | | | | | | | | | |
- * `------+------+------+------+------+------+------| |------+------+------+------+------+------+------'
- * | | | | | |
- * `-------------' `-------------'
-```
-
-### Function (FN)
-```
- * ,------------------------------------------------. ,------------------------------------------------.
- * | F1 | F2 | F3 | F4 | F5 | F6 | | | | F7 | F8 | F9 | F10 | F11 | F12 |
- * |------+------+------+------+------+------|------| |------|------+------+------+------+------+------|
- * | | PGDN | UP | PGUP | | | | | | | PGDN | UP | PGUP | PRINT| HOME |
- * |------+------+------+------+------+------|------| |------|------+------+------+------+------+------|
- * | | LEFT | DOWN | RIGHT| | | | | | | LEFT | DOWN | RIGHT|INSERT| END |
- * |------+------+------+------+------+------+------| |------+------+------+------+------+------+------|
- * | | | | | | | | | | | | | | | |
- * |------+------+------+------+------+------+------| |------+------+------+------+------+------+------|
- * | | | |RGBMOD| | | | | | | PLAY | NEXT | MUTE | VOL- | VOL+ |
- * `------+------+------+------+------+------+------| |------+------+------+------+------+------+------'
- * | | | | | |
- * `-------------' `-------------'
-```
-
-### Adjust (ADJ)
-```
- * ,------------------------------------------------. ,------------------------------------------------.
- * | F1 | F2 | F3 | F4 | F5 | F6 | | | | F7 | F8 | F9 | F10 | F11 | F12 |
- * |------+------+------+------+------+------|------| |------|------+------+------+------+------+------|
- * | | SAD | VAI | SAI | RESET| | | | | | | | | | |
- * |------+------+------+------+------+------|------| |------|------+------+------+------+------+------|
- * | | HUD | VAD | HUI |RGBRST| | | | | |QWERTY|COLEMK| | | |
- * |------+------+------+------+------+------+------| |------+------+------+------+------+------+------|
- * | | | | | | | | | | | |RGBTOG| HUI | SAI | VAI |
- * |------+------+------+------+------+------+------| |------+------+------+------+------+------+------|
- * | | | |RGBMOD| | | | | | | |RGBSMOD| HUD | SAD | VAD |
- * `------+------+------+------+------+------+------| |------+------+------+------+------+------+------'
- * | | | | | |
- * `-------------' `-------------'
-```
-
-## Customize
-
-see `qmk_firmware/keyboards/sol/rev1/keymaps/default/rules.mk`
-
-```
-
-# Variables you can set for SOL
-
-BOOTMAGIC_ENABLE = no # Enable Bootmagic Lite
-MOUSEKEY_ENABLE = no # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = yes # Console for debug(+400)
-COMMAND_ENABLE = yes # Commands for debug and configuration
-NKRO_ENABLE = no # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
-RGBLIGHT_ENABLE = yes # Enable global lighting effects. Do not enable with RGB Matrix
-LED_ANIMATIONS = yes # LED animations
-RGB_MATRIX_ENABLE = no # Enable per-key coordinate based RGB effects. Do not enable with RGBlight (+8500)
-RGB_MATRIX_KEYPRESSES = no # Enable reactive per-key effects. Can be very laggy (+1500)
-RGBLIGHT_FULL_POWER = no # Allow maximum RGB brightness. Otherwise, limited to a safe level for a normal USB-A port
-UNICODE_ENABLE = no # Unicode
-SWAP_HANDS_ENABLE = no # Enable one-hand typing
-ENCODER_ENABLE_CUSTOM = yes # Enable rotary encoder (+90)
-
-OLED_ENABLE = no # OLED_ENABLE (+5000)
-IOS_DEVICE_ENABLE = no # Limit max brightness to connect to IOS device (iPad,iPhone)
-
-
-```
-## Compile
-
-go to qmk top directory.
-```
-$ cd qmk_firmware
-```
-
-build
-```
-$ make rgbkb/sol:default
-```
-
-After the initial flash with AVRdudess, you should be able to flash using this:
-```
-$ make rgbkb/sol:default:dfu
-```
diff --git a/keyboards/rgbkb/zygomorph/keymaps/kageurufu/rules.mk b/keyboards/rgbkb/zygomorph/keymaps/kageurufu/rules.mk
deleted file mode 100644
index b95d2edaaa..0000000000
--- a/keyboards/rgbkb/zygomorph/keymaps/kageurufu/rules.mk
+++ /dev/null
@@ -1,39 +0,0 @@
-# Build Options
-# change to "no" to disable the options, or define them in the Makefile in
-# the appropriate keymap folder that will get included automatically
-#
-
-MOUSEKEY_ENABLE = no # Mouse keys
-EXTRAKEY_ENABLE = yes # Audio control and System control
-CONSOLE_ENABLE = yes # Console for debug
-COMMAND_ENABLE = no # Commands for debug and configuration
-NKRO_ENABLE = no # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
-RGBLIGHT_ENABLE = yes # Enable global lighting effects. Do not enable with RGB Matrix
-RGBLIGHT_SPLIT_ENABLE = no # Split RGBLight Support
-RGB_MATRIX_ENABLE = no # Enable per-key coordinate based RGB effects. Do not enable with RGBlight
-RGB_MATRIX_KEYPRESSES = no # Enable reactive per-key effects.
-RGBLIGHT_FULL_POWER = yes # Allow maximum RGB brightness. Otherwise, limited to a safe level for a normal USB-A port
-UNICODE_ENABLE = no # Unicode
-SWAP_HANDS_ENABLE = no # Enable one-hand typing
-ENCODER_ENABLE = yes # Enable rotary encoder
-OLED_ENABLE = no # Enable the OLED Driver
-IOS_DEVICE_ENABLE = no # Limit max brightness to connect to IOS device (iPad,iPhone)
-
-# Do not edit past here
-
-ifeq ($(strip $(IOS_DEVICE_ENABLE)), yes)
- OPT_DEFS += -DIOS_DEVICE_ENABLE
-else ifeq ($(strip $(RGBLIGHT_FULL_POWER)), yes)
- OPT_DEFS += -DRGBLIGHT_FULL_POWER
-endif
-
-ifeq ($(strip $(RGB_MATRIX_KEYPRESSES)), yes)
- OPT_DEFS += -DRGB_MATRIX_KEYPRESSES
-endif
-
-ifeq ($(strip $(RGBLIGHT_SPLIT_ENABLE)), yes)
- OPT_DEFS += -DRGBLIGHT_SPLIT_ENABLE
-endif
-
-# Link time optimization, should save on firmware size
-LTO_ENABLE = yes
diff --git a/keyboards/rgbkb/zygomorph/keymaps/xulkal/keymap.c b/keyboards/rgbkb/zygomorph/keymaps/xulkal/keymap.c
deleted file mode 100644
index 74c4c0cf50..0000000000
--- a/keyboards/rgbkb/zygomorph/keymaps/xulkal/keymap.c
+++ /dev/null
@@ -1,69 +0,0 @@
-#include QMK_KEYBOARD_H
-#include "xulkal.h"
-
-#ifdef PROTOCOL_LUFA
-#include "lufa.h"
-#include "split_util.h"
-#endif
-
-#define EXPAND_LAYOUT(...) LAYOUT_ortho_5x12(__VA_ARGS__)
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
- /* / QWERTY \
- * /-----------------------------------------\ /-----------------------------------------\
- * | GESC | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | BkSp |
- * |------+------+------+------+------+------| |------+------+------+------+------+------|
- * | Tab | Q | W | E | R | T | | Y | U | I | O | P | \ |
- * |------+------+------+------+------+------| |------+------+------+------+------+------|
- * |FN(CAPS)| A | S | D | F | G | | H | J | K | L | ; | Enter|
- * |------+------+------+------+------+------| |------+------+------+------+------+------|
- * | Sft[ | Z | X | C | V | B | | N | M | , | . | / | Sft] |
- * |------+------+------+------+------+------| |------+------+------+------+------+------|
- * | Ctl- | Win | LOWER| RAISE| Alt | Space| | Space| Left | Up | Down | Right| Ctl= |
- * \------+------+------+------+------+------/ \------+------+------+------+------+------/
- */
- [_QWERTY] = EXPAND_LAYOUT(
- _________________QWERTY_L1_________________, _________________QWERTY_R1_________________,
- _________________QWERTY_L2_________________, _________________QWERTY_R2_________________,
- _________________QWERTY_L3_________________, _________________QWERTY_R3_________________,
- _________________QWERTY_L4_________________, _________________QWERTY_R4_________________,
- _________________QWERTY_L5_________________, _________________QWERTY_R5_________________
- ),
-
-#ifndef GAMELAYER_DISABLE
- [_GAME] = EXPAND_LAYOUT(
- ___________________GAME_L1_________________, ___________________GAME_R1_________________,
- ___________________GAME_L2_________________, ___________________GAME_R2_________________,
- ___________________GAME_L3_________________, ___________________GAME_R3_________________,
- ___________________GAME_L4_________________, ___________________GAME_R4_________________,
- ___________________GAME_L5_________________, ___________________GAME_R5_________________
- ),
-#endif
-
- [_LOWER] = EXPAND_LAYOUT(
- __________________LOWER_L1_________________, __________________LOWER_R1_________________,
- __________________LOWER_L2_________________, __________________LOWER_R2_________________,
- __________________LOWER_L3_________________, __________________LOWER_R3_________________,
- __________________LOWER_L4_________________, __________________LOWER_R4_________________,
- __________________LOWER_L5_________________, __________________LOWER_R5_________________
- ),
-
- [_RAISE] = EXPAND_LAYOUT(
- __________________RAISE_L1_________________, __________________RAISE_R1_________________,
- __________________RAISE_L2_________________, __________________RAISE_R2_________________,
- __________________RAISE_L3_________________, __________________RAISE_R3_________________,
- __________________RAISE_L4_________________, __________________RAISE_R4_________________,
- __________________RAISE_L5_________________, __________________RAISE_R5_________________
- ),
-
-#ifdef TRILAYER_ENABLED
- [_ADJUST] = EXPAND_LAYOUT(
- _________________ADJUST_L1_________________, _________________ADJUST_R1_________________,
- _________________ADJUST_L2_________________, _________________ADJUST_R2_________________,
- _________________ADJUST_L3_________________, _________________ADJUST_R3_________________,
- _________________ADJUST_L4_________________, _________________ADJUST_R4_________________,
- _________________ADJUST_L5_________________, _________________ADJUST_R5_________________
- ),
-#endif
-};
diff --git a/keyboards/rgbkb/zygomorph/keymaps/xulkal/rules.mk b/keyboards/rgbkb/zygomorph/keymaps/xulkal/rules.mk
deleted file mode 100644
index 69d469b1e9..0000000000
--- a/keyboards/rgbkb/zygomorph/keymaps/xulkal/rules.mk
+++ /dev/null
@@ -1,42 +0,0 @@
-# Build Options
-# change to "no" to disable the options, or define them in the Makefile in
-# the appropriate keymap folder that will get included automatically
-#
-
-MOUSEKEY_ENABLE = no # Mouse keys
-EXTRAKEY_ENABLE = yes # Audio control and System control
-CONSOLE_ENABLE = no # Console for debug
-COMMAND_ENABLE = no # Commands for debug and configuration
-NKRO_ENABLE = no # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
-RGBLIGHT_ENABLE = no # Enable global lighting effects. Do not enable with RGB Matrix
-RGBLIGHT_SPLIT_ENABLE = no # Split RGBLight Support
-RGB_MATRIX_ENABLE = yes # Enable per-key coordinate based RGB effects. Do not enable with RGBlight
-RGB_MATRIX_KEYPRESSES = no # Enable reactive per-key effects.
-SPLIT_RGB_MATRIX_ENABLE = yes # For split RGB Matrix support
-RGBLIGHT_FULL_POWER = yes # Allow maximum RGB brightness. Otherwise, limited to a safe level for a normal USB-A port
-UNICODE_ENABLE = no # Unicode
-SWAP_HANDS_ENABLE = no # Enable one-hand typing
-ENCODER_ENABLE = no # Enable rotary encoder
-OLED_ENABLE = no # Enable the OLED Driver
-IOS_DEVICE_ENABLE = no # Limit max brightness to connect to IOS device (iPad,iPhone)
-LTO_ENABLE = no # Enable optimizations to reduce firmware size. Also disables action macros and functions.
-
-# Do not edit past here
-
-ifeq ($(strip $(IOS_DEVICE_ENABLE)), yes)
- OPT_DEFS += -DIOS_DEVICE_ENABLE
-else ifeq ($(strip $(RGBLIGHT_FULL_POWER)), yes)
- OPT_DEFS += -DRGBLIGHT_FULL_POWER
-endif
-
-ifeq ($(strip $(RGB_MATRIX_KEYPRESSES)), yes)
- OPT_DEFS += -DRGB_MATRIX_KEYPRESSES
-endif
-
-ifeq ($(strip $(RGBLIGHT_SPLIT_ENABLE)), yes)
- OPT_DEFS += -DRGBLIGHT_SPLIT_ENABLE
-endif
-
-ifeq ($(strip $(SPLIT_RGB_MATRIX_ENABLE)), yes)
- OPT_DEFS += -DSPLIT_TRANSPORT_MIRROR
-endif
diff --git a/keyboards/riot_pad/config.h b/keyboards/riot_pad/config.h
index 97dcb1de3c..4c5de878dc 100644
--- a/keyboards/riot_pad/config.h
+++ b/keyboards/riot_pad/config.h
@@ -2,7 +2,7 @@
// SPDX-License-Identifier: GPL-2.0-or-later
#pragma once
-#define WS2812_SPI SPID1
+#define WS2812_SPI_DRIVER SPID1
#define WS2812_SPI_MOSI_PAL_MODE 0
#define WS2812_SPI_SCK_PAL_MODE 0
#define WS2812_SPI_SCK_PIN A5
diff --git a/keyboards/salicylic_acid3/naked48/keymaps/scheiklp/config.h b/keyboards/salicylic_acid3/naked48/keymaps/scheiklp/config.h
deleted file mode 100644
index 1742af4c5c..0000000000
--- a/keyboards/salicylic_acid3/naked48/keymaps/scheiklp/config.h
+++ /dev/null
@@ -1,9 +0,0 @@
-// Copyright 2021 Paul Maria Scheikl (@ScheiklP)
-// SPDX-License-Identifier: GPL-2.0-or-later
-
-#pragma once
-
-/* Select hand configuration */
-
-#define QUICK_TAP_TERM 0
-#define TAPPING_TERM 180
diff --git a/keyboards/salicylic_acid3/naked48/keymaps/scheiklp/keymap.c b/keyboards/salicylic_acid3/naked48/keymaps/scheiklp/keymap.c
deleted file mode 100644
index 9aa079804f..0000000000
--- a/keyboards/salicylic_acid3/naked48/keymaps/scheiklp/keymap.c
+++ /dev/null
@@ -1,68 +0,0 @@
-// Copyright 2021 Paul Maria Scheikl (@ScheiklP)
-// SPDX-License-Identifier: GPL-2.0-or-later
-
-
-#include QMK_KEYBOARD_H
-#include "koy_keys_on_quertz_de_latin1.h"
-
-
-// Each layer gets a name for readability, which is then used in the keymap matrix below.
-// The underscores don't mean anything - you can have a layer called STUFF or any other name.
-// Layer names don't all need to be of the same length, obviously, and you can also skip them
-// entirely and just use numbers.
-enum layer_number {
- _1 = 0,
- _3,
- _4,
- _7,
-};
-
-enum custom_keycodes {
- RGB_RST = SAFE_RANGE
-};
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
- [_1] = LAYOUT( /* KOY */
- KC_ESC, KC_K, KC_DOT, KC_O, KC_COMM, N_Y, KC_V, KC_G, KC_C, KC_L, N_SS, N_Z,
- MO(_3), KC_H, KC_A, KC_E, KC_I, KC_U, KC_D, KC_T, KC_R, KC_N, KC_S, KC_F,
- KC_LSFT, KC_X, KC_Q, N_AE, N_UE, N_OE, KC_B, KC_P, KC_W, KC_M, KC_J, KC_RSFT,
- KC_LCTL, MO(_4), KC_HOME, KC_LALT, KC_ENTER, N_COPY, N_PASTE, KC_SPC, MO(_4), KC_RCTL, KC_TRNS, MO(_7)
- ),
-
- [_3] = LAYOUT( /* Layer 3 */
- KC_ESC, N_DOTS, N_USC, N_LSQBR, N_RSQBR, N_CIRC, N_EXKL, N_LT, N_GT, N_EQ, N_AMP, KC_TRNS,
- KC_TRNS, N_BSLS, N_SLSH, N_LCUBR, N_RCUBR, N_ASTR, N_QUES, N_LPARN, N_RPARN, N_MINS, N_COLN, N_AT,
- KC_LSFT, N_HASH, N_DLR, N_PIPE, N_TILD, N_GRAVE, N_PLUS, N_PERC, N_QUOT, N_SING, N_SEMI, KC_RSFT,
- KC_LCTL, KC_TRNS, KC_HOME, KC_LALT, KC_ENTER, N_COPY, N_PASTE, KC_SPC, KC_TRNS, KC_RCTL, KC_TRNS, KC_TRNS
- ),
-
- [_4] = LAYOUT( /* Layer 4 */
- KC_ESC, KC_PGUP, KC_BSPC, KC_UP, KC_DEL, KC_PGDN, KC_KP_SLASH, KC_7, KC_8, KC_9, KC_KP_MINUS, KC_TRNS,
- KC_TRNS, KC_HOME, KC_LEFT, KC_DOWN, KC_RIGHT, KC_END, KC_KP_ASTERISK, KC_4, KC_5, KC_6, KC_KP_PLUS, KC_TRNS,
- KC_LSFT, KC_ESC, KC_TAB, KC_INS, KC_SPC, N_UNDO, KC_KP_ENTER, KC_1, KC_2, KC_3, KC_KP_DOT, KC_RSFT,
- KC_LCTL, KC_TRNS, KC_HOME, KC_LALT, KC_ENTER, N_COPY, N_PASTE, KC_0, KC_RCTL, KC_TRNS, KC_TRNS, KC_TRNS
- ),
-
- [_7] = LAYOUT( /* Layer 7 */
- KC_ESC, KC_MS_WH_UP, KC_MS_BTN2, KC_MS_UP, KC_MS_BTN1, KC_MS_WH_DOWN, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, QK_BOOT,
- KC_TRNS, KC_MS_ACCEL0, KC_MS_LEFT, KC_MS_DOWN, KC_MS_RIGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_LSFT, KC_MS_ACCEL1, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_VAD, RGB_VAI, RGB_HUD, RGB_HUI, RGB_SAD, RGB_SAI,
- KC_LCTL, KC_TRNS, KC_HOME, KC_LALT, KC_ENTER, N_COPY, N_PASTE, KC_SPC, KC_TRNS, KC_RCTL, KC_TRNS, KC_TRNS
- )
-
-};
-
-bool process_record_user(uint16_t keycode, keyrecord_t *record) {
- switch (keycode) {
-#ifdef RGBLIGHT_ENABLE
- case RGB_RST:
- if (record->event.pressed) {
- eeconfig_update_rgblight_default();
- rgblight_enable();
- }
- break;
-#endif
- }
- return true;
-}
diff --git a/keyboards/salicylic_acid3/naked48/keymaps/scheiklp/readme.md b/keyboards/salicylic_acid3/naked48/keymaps/scheiklp/readme.md
deleted file mode 100644
index a28ad8c52c..0000000000
--- a/keyboards/salicylic_acid3/naked48/keymaps/scheiklp/readme.md
+++ /dev/null
@@ -1,37 +0,0 @@
-# The default keymap for naked48
-
-## Default
-| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 |
-|:----:|:----:|:----:|:----:|:----:|:----:|:----:|:----:|:----:|:----:|:----:|:----:|:----:|:----:|
-| TAB | Q| W| E| R| T| | | Y| U| I| O| P| BSPC|
-| ESC | A| S| D| F| G| | | H| J| K| L| ;| '|
-| LSFT | Z| X| C| V| B| | | N| M| ,| .| /| ENT|
-| |ADJUST| LCTRL| LALT| LGUI| LOWER| SPC| SPC| RAISE| LEFT| DOWN| UP| RIGHT| |
-
-
-## Lower
-| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 |
-|:----:|:----:|:----:|:----:|:----:|:----:|:----:|:----:|:----:|:----:|:----:|:----:|:----:|:----:|
-| ~| !| @| #| $| %| | | ^| &| *| (| )| DEL|
-| ESC| F1| F2| F3| F4| F5| | | F6| _| +| {| }| PIPE|
-| LSFT| F7| F8| F9| F10| F11| | | F12| SNUHS| SNUBS| ,| .| ENT|
-| |ADJUST| LCTRL| LALT| LGUI| LOWER| SPC| SPC| RAISE| MNXT| VOLD| VOLU| MPLY| |
-
-
-## Raise
-| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 |
-|:----:|:----:|:----:|:----:|:----:|:----:|:----:|:----:|:----:|:----:|:----:|:----:|:----:|:----:|
-| ~| 1| 2| 3| 4| 5| | | 6| 7| 8| 9| 0| DEL|
-| DEL| F1| F2| F3| F4| F5| | | F6| -| =| [| ]| BSLS|
-| LSFT| F7| F8| F9| F10| F11| | | F12| NUHS| NUBS| ,| .| ENT|
-| |ADJUST| LCTRL| LALT| LGUI| LOWER| SPC| SPC| RAISE| MNXT| VOLD| VOLU| MPLY| |
-
-
-## Adjust
-| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 |
-|:----:|:----:|:----:|:----:|:----:|:----:|:----:|:----:|:------:|:------:|:------:|:------:|:-------:|:------:|
-| ~| XXXXX| XXXXX| XXXXX| XXXXX| XXXXX| | | RGB_RST| XXXXX| XXXXX| XXXXX| XXXXX| DEL|
-| ESC| XXXXX| XXXXX| XXXXX| XXXXX| XXXXX| | | RGB_TOG| RGB_MOD| XXXXX| C+A+D| Alt+PSCR| PSCR|
-| LSFT| XXXXX| XXXXX| XXXXX| XXXXX| XXXXX| | | RGB_VAD| RGB_VAI| RGB_HUD| RGB_HUI| RGB_SAD| RGB_SAI|
-| |ADJUST| LCTRL| LALT| LGUI| LOWER| RESET| RESET| RAISE| MNXT| VOLD| VOLU| MPLY| |
-
diff --git a/keyboards/salicylic_acid3/naked48/keymaps/scheiklp/rules.mk b/keyboards/salicylic_acid3/naked48/keymaps/scheiklp/rules.mk
deleted file mode 100644
index 0b64091e58..0000000000
--- a/keyboards/salicylic_acid3/naked48/keymaps/scheiklp/rules.mk
+++ /dev/null
@@ -1,5 +0,0 @@
-# Copyright 2021 Paul Maria Scheikl (@ScheiklP)
-# SPDX-License-Identifier: GPL-2.0-or-later
-
-AUTO_SHIFT_ENABLE = yes
-
diff --git a/keyboards/salicylic_acid3/naked60/keymaps/333fred/config.h b/keyboards/salicylic_acid3/naked60/keymaps/333fred/config.h
deleted file mode 100644
index 5cb4da0133..0000000000
--- a/keyboards/salicylic_acid3/naked60/keymaps/333fred/config.h
+++ /dev/null
@@ -1,24 +0,0 @@
-/* Copyright 2018 Salicylic_acid3
- *
- * 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
-
-
-
-/* Select hand configuration */
-
-#define QUICK_TAP_TERM 0
-#define TAPPING_TERM 200
diff --git a/keyboards/salicylic_acid3/naked60/keymaps/333fred/keymap.c b/keyboards/salicylic_acid3/naked60/keymaps/333fred/keymap.c
deleted file mode 100644
index 83a6154fb1..0000000000
--- a/keyboards/salicylic_acid3/naked60/keymaps/333fred/keymap.c
+++ /dev/null
@@ -1,75 +0,0 @@
-/*
- Copyright (c) 2020 Fred Silberberg
-
- Permission is hereby granted, free of charge, to any person obtaining a copy
- of this software and associated documentation files (the "Software"), to deal
- in the Software without restriction, including without limitation the rights
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- copies of the Software, and to permit persons to whom the Software is
- furnished to do so, subject to the following conditions:
-
- The above copyright notice and this permission notice shall be included in all
- copies or substantial portions of the Software.
-
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- THE SOFTWARE.
-*/
-
-#include QMK_KEYBOARD_H
-#include "333fred.h"
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [BASE] = LAYOUT(
- //,--------------------------------------------------------------------| |---------------------------------------------------------.
- 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_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS,
- //|--------------+------------+------+--------+--------+---------------| |-------+--------+--------+-------+--------+--------------|
- KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
- //|--------------+------------+------+--------+--------+---------------| |-------+--------+--------+-------+--------+--------------|
- OSM(MOD_LSFT), CTL_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, OSM(MOD_RSFT),
- //|--------------+------------+------+--------+--------+---------------+-------+-------+-------+--------+--------+-------+--------+--------------|
- KC_F4, KC_F5, KC_LALT, KC_BSPC, TD(TD_SYM_VIM), KC_DEL, KC_ENT, KC_SPC, KC_DOWN, KC_UP, KC_EQL, KC_LGUI
- //`----------------------------------------------------------------------------------------------------------------'
- ),
-
-
- [SYMB] = LAYOUT(
- //,-----------------------------------------------------| |-----------------------------------------------------.
- _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, _______,
- //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+-------+--------+--------|
- _______, KC_EXLM, KC_AT, KC_LPRN, KC_RPRN, KC_PIPE, _______, KC_7, KC_8, KC_9, _______, KC_F12,
- //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+-------+--------+--------|
- _______, KC_HASH, KC_DLR, KC_LCBR, KC_RCBR, KC_GRV, KC_VOLU, KC_4, KC_5, KC_6, _______, _______,
- //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+-------+--------+--------|
- _______, KC_PERC, KC_CIRC, KC_LBRC, KC_RBRC, KC_TILD, KC_VOLD, KC_1, KC_2, KC_3, _______, _______,
- //|--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-------+--------+--------|
- _______, _______, _______, _______, _______, _______, KC_MPRV, KC_MPLY, KC_MNXT, KC_0, KC_ENT, _______
- //`------------------------------------------------------------------------------------------------------------'
- ),
-
-
- [VIM] = LAYOUT( /* Base */
- //,-----------------------------------------------------| |-----------------------------------------------------.
- _______, QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
- _______, _______, _______, _______, KC_LSFT, _______, _______, _______, _______, _______, _______, _______,
- //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
- _______, DLEFT, DRIGHT, KC_LCTL, KC_LGUI, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, _______, _______,
- //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- //|--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
- //`------------------------------------------------------------------------------------------------------------'
- )
-};
-
-bool process_record_user(uint16_t keycode, keyrecord_t *record) {
- tap_dance_process_keycode(keycode);
- return !try_handle_macro(keycode, record);
-}
diff --git a/keyboards/satt/comet46/rules.mk b/keyboards/satt/comet46/rules.mk
index fe692cc5c3..0db5166ffa 100644
--- a/keyboards/satt/comet46/rules.mk
+++ b/keyboards/satt/comet46/rules.mk
@@ -14,4 +14,4 @@ CUSTOM_MATRIX = lite
# project specific files
SRC += matrix.c
-QUANTUM_LIB_SRC += uart.c
+UART_DRIVER_REQUIRED = yes
diff --git a/keyboards/satt/vision/keymaps/manna-harbour_miryoku/config.h b/keyboards/satt/vision/keymaps/manna-harbour_miryoku/config.h
deleted file mode 100644
index 958554be55..0000000000
--- a/keyboards/satt/vision/keymaps/manna-harbour_miryoku/config.h
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright 2022 Manna Harbour
-// https://github.com/manna-harbour/miryoku
-
-// 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 XXX KC_NO
-
-#define LAYOUT_miryoku( \
- 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, \
- N30, N31, K32, K33, K34, K35, K36, K37, N38, N39 \
-) \
-LAYOUT( \
-XXX, XXX, K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, XXX, XXX, \
-XXX, XXX, K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, XXX, \
- XXX, K20, K21, K22, K23, K24, XXX, K25, K26, K27, K28, K29, XXX,\
- XXX, K32, K33, K34, K35, K36, K37, XXX \
-)
diff --git a/keyboards/satt/vision/keymaps/manna-harbour_miryoku/keymap.c b/keyboards/satt/vision/keymaps/manna-harbour_miryoku/keymap.c
deleted file mode 100644
index dbab7f9820..0000000000
--- a/keyboards/satt/vision/keymaps/manna-harbour_miryoku/keymap.c
+++ /dev/null
@@ -1,4 +0,0 @@
-// Copyright 2019 Manna Harbour
-// https://github.com/manna-harbour/miryoku
-
-// 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/>.
diff --git a/keyboards/sawnsprojects/okayu/stm32f072/config.h b/keyboards/sawnsprojects/okayu/stm32f072/config.h
index c47f1928c8..41bb0d1fdb 100644
--- a/keyboards/sawnsprojects/okayu/stm32f072/config.h
+++ b/keyboards/sawnsprojects/okayu/stm32f072/config.h
@@ -2,7 +2,7 @@
// SPDX-License-Identifier: GPL-2.0-or-later
#pragma once
-#define WS2812_SPI SPID1
+#define WS2812_SPI_DRIVER SPID1
#define WS2812_SPI_MOSI_PAL_MODE 5
#define WS2812_SPI_SCK_PIN B13
#define WS2812_SPI_SCK_PAL_MODE 5 \ No newline at end of file
diff --git a/keyboards/sawnsprojects/okayu/stm32f103/config.h b/keyboards/sawnsprojects/okayu/stm32f103/config.h
index eff3605470..9024616477 100644
--- a/keyboards/sawnsprojects/okayu/stm32f103/config.h
+++ b/keyboards/sawnsprojects/okayu/stm32f103/config.h
@@ -2,7 +2,7 @@
// SPDX-License-Identifier: GPL-2.0-or-later
#pragma once
-#define WS2812_SPI SPID2
+#define WS2812_SPI_DRIVER SPID2
#define WS2812_SPI_MOSI_PAL_MODE 5
#define WS2812_SPI_SCK_PIN B13
#define WS2812_SPI_SCK_PAL_MODE 5 \ No newline at end of file
diff --git a/keyboards/sawnsprojects/okayu/stm32f303/config.h b/keyboards/sawnsprojects/okayu/stm32f303/config.h
index c47f1928c8..41bb0d1fdb 100644
--- a/keyboards/sawnsprojects/okayu/stm32f303/config.h
+++ b/keyboards/sawnsprojects/okayu/stm32f303/config.h
@@ -2,7 +2,7 @@
// SPDX-License-Identifier: GPL-2.0-or-later
#pragma once
-#define WS2812_SPI SPID1
+#define WS2812_SPI_DRIVER SPID1
#define WS2812_SPI_MOSI_PAL_MODE 5
#define WS2812_SPI_SCK_PIN B13
#define WS2812_SPI_SCK_PAL_MODE 5 \ No newline at end of file
diff --git a/keyboards/scottokeebs/scotto34/keymaps/scotto/config.h b/keyboards/scottokeebs/scotto34/keymaps/scotto/config.h
deleted file mode 100644
index 9e99bf0205..0000000000
--- a/keyboards/scottokeebs/scotto34/keymaps/scotto/config.h
+++ /dev/null
@@ -1,23 +0,0 @@
-/*
-Copyright 2023 Joe Scotto
-
-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 options
-#define TAPPING_TERM 135
-#define PERMISSIVE_HOLD
-#define TAPPING_TERM_PER_KEY
diff --git a/keyboards/scottokeebs/scotto34/keymaps/scotto/keymap.c b/keyboards/scottokeebs/scotto34/keymaps/scotto/keymap.c
deleted file mode 100644
index b1720f4302..0000000000
--- a/keyboards/scottokeebs/scotto34/keymaps/scotto/keymap.c
+++ /dev/null
@@ -1,246 +0,0 @@
-/*
-Copyright 2023 Joe Scotto
-
-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
-
-// Tap dance declarations
-enum {
- TD_ESC_LALT_LCTL_SPOTLIGHT_EMOJI,
- TD_ESC_LCTL_LALT_WINDOWS_EMOJI
-};
-
-// Custom tapping term for multi function keys
-uint16_t get_tapping_term(uint16_t keycode, keyrecord_t *record) {
- switch (keycode) {
- case TD(TD_ESC_LALT_LCTL_SPOTLIGHT_EMOJI) :
- case TD(TD_ESC_LCTL_LALT_WINDOWS_EMOJI) :
- case LGUI_T(KC_SPC) :
- case LT(1, KC_SPC) :
- case LT(1, KC_TAB) :
- case LT(2, KC_ENT) :
- return 200;
- default:
- return TAPPING_TERM;
- }
-};
-
-// Begin quad TD
-typedef enum {
- TD_NONE,
- TD_UNKNOWN,
- TD_SINGLE_HOLD,
- TD_DOUBLE_HOLD,
- TD_TRIPLE_HOLD,
- TD_SINGLE_TAP,
- TD_DOUBLE_TAP,
- TD_TRIPLE_TAP
-} td_state_t;
-
-typedef struct {
- bool is_press_action;
- td_state_t state;
-} td_tap_t;
-
-// Create an instance of 'td_tap_t' for the 'x' tap dance.
-static td_tap_t xtap_state = {
- .is_press_action = true,
- .state = TD_NONE
-};
-
-td_state_t cur_dance(tap_dance_state_t *state) {
- if (state->count == 1) {
- if (state->interrupted || !state->pressed) {
- return TD_SINGLE_TAP;
- } else {
- return TD_SINGLE_HOLD;
- }
- } else if (state->count == 2) {
- if (state->interrupted || !state->pressed) {
- return TD_DOUBLE_TAP;
- } else {
- return TD_DOUBLE_HOLD;
- }
- } else if (state->count == 3) {
- if (state->interrupted || !state->pressed) {
- return TD_TRIPLE_TAP;
- } else {
- return TD_TRIPLE_HOLD;
- }
- }
-
- return TD_UNKNOWN;
-}
-
-void td_esc_lalt_lctl_spotlight_emoji_finished(tap_dance_state_t *state, void *user_data) {
- xtap_state.state = cur_dance(state);
- switch (xtap_state.state) {
- case TD_SINGLE_TAP: tap_code(KC_ESC); break;
- case TD_SINGLE_HOLD: register_code(KC_LALT); break;
- case TD_DOUBLE_HOLD: register_code(KC_LCTL); break;
- case TD_DOUBLE_TAP: tap_code16(G(KC_SPC)); break;
- case TD_TRIPLE_TAP: tap_code16(C(G(KC_SPC))); break;
- default: break;
- }
-}
-
-void td_esc_lalt_lctl_spotlight_emoji_reset(tap_dance_state_t *state, void *user_data) {
- switch (xtap_state.state) {
- case TD_SINGLE_TAP: unregister_code(KC_ESC); break;
- case TD_SINGLE_HOLD: unregister_code(KC_LALT); break;
- case TD_DOUBLE_HOLD: unregister_code(KC_LCTL); break;
- default: break;
- }
- xtap_state.state = TD_NONE;
-}
-
-void td_esc_lctl_lalt_windows_emoji_finished(tap_dance_state_t *state, void *user_data) {
- xtap_state.state = cur_dance(state);
- switch (xtap_state.state) {
- case TD_SINGLE_TAP: tap_code16(KC_ESC); break;
- case TD_SINGLE_HOLD: register_code(KC_LCTL); break;
- case TD_DOUBLE_HOLD: register_code(KC_LALT); break;
- case TD_DOUBLE_TAP: tap_code(KC_LGUI); break;
- case TD_TRIPLE_TAP: tap_code16(G(KC_DOT)); break;
- default: break;
- }
-}
-
-void td_esc_lctl_lalt_windows_emoji_reset(tap_dance_state_t *state, void *user_data) {
- switch (xtap_state.state) {
- case TD_SINGLE_TAP: unregister_code(KC_ESC); break;
- case TD_SINGLE_HOLD: unregister_code(KC_LCTL); break;
- case TD_DOUBLE_HOLD: unregister_code(KC_LALT); break;
- default: break;
- }
- xtap_state.state = TD_NONE;
-}
-
- // Tap Dance definitions
-tap_dance_action_t tap_dance_actions[] = {
- [TD_ESC_LALT_LCTL_SPOTLIGHT_EMOJI] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, td_esc_lalt_lctl_spotlight_emoji_finished, td_esc_lalt_lctl_spotlight_emoji_reset),
- [TD_ESC_LCTL_LALT_WINDOWS_EMOJI] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, td_esc_lctl_lalt_windows_emoji_finished, td_esc_lctl_lalt_windows_emoji_reset)
-};
-// For the x tap dance. Put it here so it can be used in any keymap
-void x_finished(tap_dance_state_t *state, void *user_data);
-void x_reset(tap_dance_state_t *state, void *user_data);
-
-// Onboard LED
-#ifdef RGBLIGHT_ENABLE
- // Configure LED
- void keyboard_post_init_user(void) {
- // Initialize RGB to static black
- rgblight_enable_noeeprom();
- rgblight_sethsv_noeeprom(HSV_BLACK);
- rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_LIGHT);
- }
-
- // Change LED
- void housekeeping_task_user(void) {
- // Caps lock status
- if (host_keyboard_led_state().caps_lock) {
- rgblight_setrgb_at(4, 4, 0, 0);
- } else {
- // Layers
- switch (get_highest_layer(layer_state | default_layer_state)) {
- case 0:
- rgblight_setrgb_at(4, 4, 4, 0);
- break;
- case 1:
- rgblight_setrgb_at(4, 4, 4, 0);
- break;
- case 2:
- rgblight_setrgb_at(4, 4, 4, 0);
- break;
- case 3:
- rgblight_setrgb_at(4, 4, 4, 0);
- break;
- case 4:
- rgblight_setrgb_at(0, 0, 4, 0);
- break;
- case 5:
- rgblight_setrgb_at(0, 4, 0, 0);
- break;
- case 6:
- rgblight_setrgb_at(0, 0, 4, 0);
- break;
- case 7:
- rgblight_setrgb_at(0, 0, 4, 0);
- break;
- case 8:
- rgblight_setrgb_at(0, 0, 4, 0);
- break;
- }
- }
- }
-#endif
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [0] = LAYOUT_split_3x5_2(
- KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_BSPC,
- KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O,
- LSFT_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMMA, KC_DOT, RSFT_T(KC_SLSH),
- TD(TD_ESC_LALT_LCTL_SPOTLIGHT_EMOJI), LGUI_T(KC_SPC), LT(1, KC_TAB), LT(2, KC_ENT)
- ),
- [1] = LAYOUT_split_3x5_2(
- KC_UNDS, KC_MINS, KC_PLUS, KC_EQL, KC_COLN, KC_GRV, KC_MRWD, KC_MPLY, KC_MFFD, KC_DEL,
- KC_LCBR, KC_LPRN, KC_RPRN, KC_RCBR, KC_PIPE, KC_ESC, KC_LEFT, KC_UP, KC_DOWN, KC_RGHT,
- LSFT_T(KC_LBRC), KC_QUOT, KC_DQUO, KC_RBRC, KC_SCLN, KC_TILDE, KC_VOLD, KC_MUTE, KC_VOLU, RSFT_T(KC_BSLS),
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
- ),
- [2] = LAYOUT_split_3x5_2(
- KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_CAPS, KC_BSPC,
- KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0,
- KC_LSFT, KC_NO, KC_NO, KC_NO, MO(3), KC_NO, KC_NO, KC_COMM, KC_DOT, RSFT_T(KC_SLSH),
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
- ),
- [3] = LAYOUT_split_3x5_2(
- KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, TO(5), TO(4),
- KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10,
- KC_F11, KC_NO, KC_NO, QK_BOOT, KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_F12,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
- ),
- [4] = LAYOUT_split_3x5_2(
- KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_BSPC,
- KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O,
- LSFT_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMMA, KC_DOT, RSFT_T(KC_SLSH),
- TD(TD_ESC_LCTL_LALT_WINDOWS_EMOJI), LCTL_T(KC_SPC), LT(6, KC_TAB), LT(7, KC_ENT)
- ),
- [5] = LAYOUT_split_3x5_2(
- KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_BSPC,
- KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O,
- KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMMA, KC_DOT, KC_SLSH,
- KC_LCTL, KC_SPC, LT(6, KC_TAB), LT(7, KC_ENT)
- ),
- [6] = LAYOUT_split_3x5_2(
- KC_UNDS, KC_MINS, KC_PLUS, KC_EQL, KC_COLN, KC_GRV, KC_MRWD, KC_MPLY, KC_MFFD, KC_DEL,
- KC_LCBR, KC_LPRN, KC_RPRN, KC_RCBR, KC_PIPE, KC_ESC, KC_LEFT, KC_UP, KC_DOWN, KC_RGHT,
- LSFT_T(KC_LBRC), KC_QUOT, KC_DQUO, KC_RBRC, KC_SCLN, KC_TILDE, KC_VOLD, KC_MUTE, KC_VOLU, RSFT_T(KC_BSLS),
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
- ),
- [7] = LAYOUT_split_3x5_2(
- KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_CAPS, KC_BSPC,
- KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0,
- KC_LSFT, KC_NO, KC_NO, KC_NO, MO(8), KC_NO, KC_NO, KC_COMM, KC_DOT, RSFT_T(KC_SLSH),
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
- ),
- [8] = LAYOUT_split_3x5_2(
- KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, TO(4), TO(5), TO(0),
- KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10,
- KC_F11, KC_NO, KC_NO, QK_BOOT, KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_F12,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
- )
-}; \ No newline at end of file
diff --git a/keyboards/scottokeebs/scotto34/keymaps/scotto/rules.mk b/keyboards/scottokeebs/scotto34/keymaps/scotto/rules.mk
deleted file mode 100644
index e5ddcae8d9..0000000000
--- a/keyboards/scottokeebs/scotto34/keymaps/scotto/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-TAP_DANCE_ENABLE = yes
diff --git a/keyboards/sekigon/grs_70ec/rules.mk b/keyboards/sekigon/grs_70ec/rules.mk
index 00931a551e..4bd93ef25b 100644
--- a/keyboards/sekigon/grs_70ec/rules.mk
+++ b/keyboards/sekigon/grs_70ec/rules.mk
@@ -13,4 +13,6 @@ AUDIO_ENABLE = no # Audio output
CUSTOM_MATRIX = lite
SPLIT_KEYBOARD = yes
-SRC += analog.c ec_switch_matrix.c matrix.c
+ANALOG_DRIVER_REQUIRED = yes
+
+SRC += ec_switch_matrix.c matrix.c
diff --git a/keyboards/shapeshifter4060/keymaps/vosechu/keymap.c b/keyboards/shapeshifter4060/keymaps/vosechu/keymap.c
deleted file mode 100644
index f2a75c38cc..0000000000
--- a/keyboards/shapeshifter4060/keymaps/vosechu/keymap.c
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
-Copyright 2021 Chuck "@vosechu" Lauer Vose <vosechu@gmail.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 QMK_KEYBOARD_H
-
-#include "vosechu.h"
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [DV] = LAYOUT(
- PAWFIVE , KC_QUOT , KC_COMM , KC_DOT , KC_P , KC_Y , KC_F , KC_G , KC_C , KC_R , KC_L , QK_BOOT,
- KC_ESC , KC_A , KC_O , KC_E , LWR_U , KC_I , KC_D , RSE_H , KC_T , KC_N , KC_S , XXXXXXX ,
- XXXXXXX , KC_SCLN , KC_Q , KC_J , KC_K , KC_X , KC_B , KC_M , KC_W , KC_V , KC_Z , KC_ENT ,
- XXXXXXX , CTL_GRV , ALT_TAB , KC_LGUI , LFT_BK , SFT_SPC , KC_SPC , LFT_ENT , KC_MINS , KC_EQL , KC_SLSH , KC_BSLS
- ),
- [QW] = LAYOUT(
- 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_ESC , KC_A , KC_S , KC_D , LWR_F , KC_G , KC_H , RSE_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_ENT ,
- KC_HYPR , CTL_GRV , ALT_TAB , KC_LGUI , LFT_BK , SFT_SPC , KC_SPC , LFT_ENT , KC_LEFT , KC_DOWN , KC_UP , KC_RGHT
- ),
- [LWR] = LAYOUT(
- _______ , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , KC_7 , KC_8 , KC_9 , XXXXXXX , _______ ,
- _______ , XXXXXXX , XXXXXXX , XXXXXXX , _LAYER_ , XXXXXXX , XXXXXXX , KC_4 , KC_5 , KC_6 , XXXXXXX , _______ ,
- _______ , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , KC_1 , KC_2 , KC_3 , XXXXXXX , _______ ,
- _______ , _______ , _______ , _______ , _______ , _______ , _______ , KC_0 , KC_0 , KC_DOT , _______ , _______
- ),
- [RSE] = LAYOUT(
- _______ , KC_LABK , KC_RABK , KC_LCBR , KC_RCBR , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , _______ ,
- _______ , KC_LPRN , KC_RPRN , KC_LBRC , KC_RBRC , XXXXXXX , XXXXXXX , _LAYER_ , XXXXXXX , XXXXXXX , XXXXXXX , _______ ,
- _______ , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , _______ ,
- _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______
- ),
- [LFT] = LAYOUT(
- _______ , BWSR_BK , TAB_LFT , KC_UP , TAB_RGT , BWSR_FW , KC_MUTE , XXXXXXX , SCR_LFT , SCR_FUL , SCR_RGT , _______ ,
- _______ , XXXXXXX , KC_LEFT , KC_DOWN , KC_RGHT , KC_PGUP , KC_VOLU , SLACKUP , XXXXXXX , XXXXXXX , TO(QW) , _______ ,
- _______ , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , KC_PGDN , KC_VOLD , SLACKDN , XXXXXXX , XXXXXXX , TO(DV) , _______ ,
- _______ , QK_BOOT, _______ , _______ , _LAYER_ , KC_BSPC , _______ , KC_LSFT , KC_LGUI , KC_LALT , KC_LCTL , _______
- )
-};
diff --git a/keyboards/shapeshifter4060/keymaps/vosechu/readme.md b/keyboards/shapeshifter4060/keymaps/vosechu/readme.md
deleted file mode 100644
index a438e5536d..0000000000
--- a/keyboards/shapeshifter4060/keymaps/vosechu/readme.md
+++ /dev/null
@@ -1,82 +0,0 @@
-# Vosechu layout
-
-This is my personal layout for the Shapeshifter. It's taken a long time to get
-to this point, but I think there are some things that are cool and special about
-it.
-
-## Layout
-
-Some special things:
-
-* Lower/Raise are on the F/J keys. Tap to type the character, hold to activate the layer
-* Enter and Backspace also activate the Lift layer.
-* -- To get repeated backspace, hold BkLft and then press Shift
-
-
-### Dvorak
-
- ,-----------------------------------------------------------------------------------.
- | Nada | ' | , | . | P | Y | F | G | C | R | L | Reset|
- |------+------+------+------+------+-------------+------+------+------+------+------|
- | Esc | A | O | E | Lwr/U| I | D | Rse/H| T | N | S | Nada |
- |------+------+------+------+------+------|------+------+------+------+------+------|
- | Nada | ; | Q | J | K | X | B | M | W | V | Z | Enter|
- |------+------+------+------+------+------+------+------+------+------+------+------|
- | Nada |Ctrl/~|AltTab| Cmd | BkLft| Shift| Space|EntLft| - | = | / | \ |
- `-----------------------------------------------------------------------------------'
-
-### Qwerty
-
- ,-----------------------------------------------------------------------------------.
- | Tab | Q | W | E | R | T | Y | U | I | O | P | Back |
- |------+------+------+------+------+-------------+------+------+------+------+------|
- | Esc | A | S | D | Lwr/F| G | H | Rse/J| K | L | ; | " |
- |------+------+------+------+------+------|------+------+------+------+------+------|
- | Shift| Z | X | C | V | B | N | M | , | . | / | Enter|
- |------+------+------+------+------+------+------+------+------+------+------+------|
- | Hyper|Ctrl/~|AltTab| Cmd | BkLft| Shift| Space|EntLft| Left | Down | Up | Right|
- `-----------------------------------------------------------------------------------'
-
-### Raise
-
- ,-----------------------------------------------------------------------------------.
- | | < | > | { | } | | | | | | | |
- |------+------+------+------+------+-------------+------+------+------+------+------|
- | | ( | ) | [ | ] | | | | | | | |
- |------+------+------+------+------+------|------+------+------+------+------+------|
- | | | | | | | | | | | | |
- |------+------+------+------+------+------+------+------+------+------+------+------|
- | | | | | BkLft| Shift| Space|EntLft| | | | |
- `-----------------------------------------------------------------------------------'
-
-### Lower
-
- ,-----------------------------------------------------------------------------------.
- | | | | | | | | 7 | 8 | 9 | | |
- |------+------+------+------+------+-------------+------+------+------+------+------|
- | | | | | | | | 4 | 5 | 6 | | |
- |------+------+------+------+------+------|------+------+------+------+------+------|
- | | | | | | | | 1 | 2 | 3 | | |
- |------+------+------+------+------+------+------+------+------+------+------+------|
- | | | | | BkLft| Shift| Space| 0 | 0 | . | | |
- `-----------------------------------------------------------------------------------'
-
-### Lift
-
- ,-----------------------------------------------------------------------------------.
- | |Hist ←| Tab ←| ↑ | Tab →|Hist →| Mute | |ScrLft|ScrFul|ScrRgt| |
- |------+------+------+------+------+-------------+------+------+------+------+------|
- | | | ← | ↓ | → | Pg Up|Vol up|Slk up| | |Qwerty| |
- |------+------+------+------+------+------|------+------+------+------+------+------|
- | | | | | | Pg Dn|Vol dn|Slk dn| | |Dvorak| |
- |------+------+------+------+------+------+------+------+------+------+------+------|
- | | Reset| | | | Bksp | | Shift| Cmd | Opt | Ctrl | |
- `-----------------------------------------------------------------------------------'
-
-Special things:
-
-* Hist: Back button in your browser
-* Tab: Move one tab left/right in most mac apps
-* Slk: Go to the previous/next unread conversation in Slack
-* Scr: Make this app fill the left/right side of your monitor (or full screen)
-* Since arrows are on this layer, the command keys are moved to the right side
diff --git a/keyboards/sirius/uni660/rev1/config.h b/keyboards/sirius/uni660/rev1/config.h
index 0cd138a95c..b9e511d9a3 100644
--- a/keyboards/sirius/uni660/rev1/config.h
+++ b/keyboards/sirius/uni660/rev1/config.h
@@ -39,5 +39,3 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-
-#define DYNAMIC_KEYMAP_LAYER_COUNT 4
diff --git a/keyboards/sirius/uni660/rev1/rules.mk b/keyboards/sirius/uni660/rev1/rules.mk
index d44567105e..7ac7507269 100644
--- a/keyboards/sirius/uni660/rev1/rules.mk
+++ b/keyboards/sirius/uni660/rev1/rules.mk
@@ -15,4 +15,4 @@ CUSTOM_MATRIX = lite
# project specific files
SRC += matrix.c
-QUANTUM_LIB_SRC += uart.c
+UART_DRIVER_REQUIRED = yes
diff --git a/keyboards/sirius/uni660/rev2/ansi/config.h b/keyboards/sirius/uni660/rev2/ansi/config.h
index 0cd138a95c..b9e511d9a3 100644
--- a/keyboards/sirius/uni660/rev2/ansi/config.h
+++ b/keyboards/sirius/uni660/rev2/ansi/config.h
@@ -39,5 +39,3 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-
-#define DYNAMIC_KEYMAP_LAYER_COUNT 4
diff --git a/keyboards/sirius/uni660/rev2/iso/config.h b/keyboards/sirius/uni660/rev2/iso/config.h
index 0cd138a95c..b9e511d9a3 100644
--- a/keyboards/sirius/uni660/rev2/iso/config.h
+++ b/keyboards/sirius/uni660/rev2/iso/config.h
@@ -39,5 +39,3 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-
-#define DYNAMIC_KEYMAP_LAYER_COUNT 4
diff --git a/keyboards/sirius/uni660/rev2/rules.mk b/keyboards/sirius/uni660/rev2/rules.mk
index b41206636d..791fa054c8 100644
--- a/keyboards/sirius/uni660/rev2/rules.mk
+++ b/keyboards/sirius/uni660/rev2/rules.mk
@@ -15,6 +15,6 @@ CUSTOM_MATRIX = lite
# project specific files
SRC += matrix.c
-QUANTUM_LIB_SRC += uart.c
+UART_DRIVER_REQUIRED = yes
DEFAULT_FOLDER = sirius/uni660/rev2/ansi
diff --git a/keyboards/skyloong/gk61/pro/config.h b/keyboards/skyloong/gk61/pro/config.h
new file mode 100644
index 0000000000..8e9b5f9258
--- /dev/null
+++ b/keyboards/skyloong/gk61/pro/config.h
@@ -0,0 +1,19 @@
+// Copyright 2023 linlin012 (@linlin012)
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#pragma once
+
+#define RGB_MATRIX_LED_COUNT 64
+#define CAPS_LOCK_INDEX 28
+#define WIN_MOD_INDEX 16
+#define MAC_MOD_INDEX 17
+#define WIN_LOCK_INDEX 54
+#define SDB C1 //RGB matrix Power control PIN
+
+/* RGB Matrix Animation modes. Explicitly enabled
+ * For full list of effects, see:
+ * https://docs.qmk.fm/#/feature_rgb_matrix?id=rgb-matrix-effects
+ */
+
+#define RGB_MATRIX_KEYPRESSES
+#define RGB_MATRIX_FRAMEBUFFER_EFFECTS
diff --git a/keyboards/skyloong/gk61/pro/halconf.h b/keyboards/skyloong/gk61/pro/halconf.h
new file mode 100644
index 0000000000..5ac56913fc
--- /dev/null
+++ b/keyboards/skyloong/gk61/pro/halconf.h
@@ -0,0 +1,7 @@
+// Copyright 2023 linlin012 (@linlin012)
+// SPDX-License-Identifier: GPL-2.0-or-later
+#pragma once
+
+#define HAL_USE_I2C TRUE
+
+#include_next <halconf.h>
diff --git a/keyboards/skyloong/gk61/pro/info.json b/keyboards/skyloong/gk61/pro/info.json
new file mode 100644
index 0000000000..7d507f1e8c
--- /dev/null
+++ b/keyboards/skyloong/gk61/pro/info.json
@@ -0,0 +1,338 @@
+{
+ "manufacturer": "skyloong",
+ "keyboard_name": "gk61 pro",
+ "maintainer": "linlin012",
+ "bootloader": "stm32duino",
+
+ "diode_direction": "ROW2COL",
+ "encoder": {
+ "rotary": [
+ {"pin_a": "C5", "pin_b": "C4", "resolution": 2}
+ ]
+ },
+ "features": {
+ "bootmagic": true,
+ "command": true,
+ "console": false,
+ "encoder": true,
+ "extrakey": true,
+ "mousekey": true,
+ "nkro": true,
+ "rgb_matrix": true
+ },
+ "build": {
+ "debounce_type": "asym_eager_defer_pk"
+ },
+ "matrix_pins": {
+ "cols": ["B11", "C6", "C7", "B12", "B13", "B14", "B15", "B10", "B1", "B0", "D2", "B3", "B4", "B5"],
+ "rows": ["A15", "C10", "C11", "C12", "A3"]
+ },
+ "processor": "STM32F103",
+ "rgb_matrix": {
+ "animations": {
+ "breathing": true,
+ "band_spiral_val": true,
+ "cycle_all": true,
+ "cycle_left_right": true,
+ "cycle_up_down": true,
+ "cycle_out_in": true,
+ "cycle_out_in_dual": true,
+ "rainbow_moving_chevron": true,
+ "cycle_pinwheel": true,
+ "cycle_spiral": true,
+ "dual_beacon": true,
+ "raindrops": true,
+ "jellybean_raindrops": true,
+ "pixel_rain": true,
+ "typing_heatmap":true,
+ "digital_rain": true,
+ "solid_reactive_simple": true,
+ "solid_reactive_multiwide": true,
+ "solid_reactive_multinexus": true,
+ "splash": true,
+ "solid_splash": true
+ },
+ "driver": "is31fl3743a",
+ "layout": [
+ {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4},
+ {"matrix": [0, 1], "x": 16, "y": 0, "flags": 4},
+ {"matrix": [0, 2], "x": 32, "y": 0, "flags": 4},
+ {"matrix": [0, 3], "x": 49, "y": 0, "flags": 4},
+ {"matrix": [0, 4], "x": 65, "y": 0, "flags": 4},
+ {"matrix": [0, 5], "x": 81, "y": 0, "flags": 4},
+ {"matrix": [0, 6], "x": 97, "y": 0, "flags": 4},
+ {"matrix": [0, 7], "x": 113, "y": 0, "flags": 4},
+ {"matrix": [0, 8], "x": 129, "y": 0, "flags": 4},
+ {"matrix": [0, 9], "x": 145, "y": 0, "flags": 4},
+ {"matrix": [0, 10], "x": 162, "y": 0, "flags": 4},
+ {"matrix": [0, 11], "x": 178, "y": 0, "flags": 4},
+ {"matrix": [0, 12], "x": 194, "y": 0, "flags": 4},
+ {"matrix": [0, 13], "x": 218, "y": 0, "flags": 4},
+ {"matrix": [1, 0], "x": 4, "y": 13, "flags": 4},
+ {"matrix": [1, 1], "x": 24, "y": 13, "flags": 4},
+ {"matrix": [1, 2], "x": 40, "y": 13, "flags": 4},
+ {"matrix": [1, 3], "x": 57, "y": 13, "flags": 4},
+ {"matrix": [1, 4], "x": 73, "y": 13, "flags": 4},
+ {"matrix": [1, 5], "x": 89, "y": 13, "flags": 4},
+ {"matrix": [1, 6], "x": 105, "y": 13, "flags": 4},
+ {"matrix": [1, 7], "x": 121, "y": 13, "flags": 4},
+ {"matrix": [1, 8], "x": 137, "y": 13, "flags": 4},
+ {"matrix": [1, 9], "x": 153, "y": 13, "flags": 4},
+ {"matrix": [1, 10], "x": 170, "y": 13, "flags": 4},
+ {"matrix": [1, 11], "x": 186, "y": 13, "flags": 4},
+ {"matrix": [1, 12], "x": 202, "y": 13, "flags": 4},
+ {"matrix": [1, 13], "x": 222, "y": 13, "flags": 4},
+ {"matrix": [2, 0], "x": 6, "y": 26, "flags": 4},
+ {"matrix": [2, 1], "x": 28, "y": 26, "flags": 4},
+ {"matrix": [2, 2], "x": 44, "y": 26, "flags": 4},
+ {"matrix": [2, 3], "x": 61, "y": 26, "flags": 4},
+ {"matrix": [2, 4], "x": 77, "y": 26, "flags": 4},
+ {"matrix": [2, 5], "x": 93, "y": 26, "flags": 4},
+ {"matrix": [2, 6], "x": 109, "y": 26, "flags": 4},
+ {"matrix": [2, 7], "x": 125, "y": 26, "flags": 4},
+ {"matrix": [2, 8], "x": 141, "y": 26, "flags": 4},
+ {"matrix": [2, 9], "x": 157, "y": 26, "flags": 4},
+ {"matrix": [2, 10], "x": 174, "y": 26, "flags": 4},
+ {"matrix": [2, 11], "x": 190, "y": 26, "flags": 4},
+ {"matrix": [2, 13], "x": 216, "y": 26, "flags": 4},
+ {"matrix": [3, 0], "x": 10, "y": 51, "flags": 4},
+ {"matrix": [3, 1], "x": 36, "y": 51, "flags": 4},
+ {"matrix": [3, 2], "x": 53, "y": 51, "flags": 4},
+ {"matrix": [3, 3], "x": 69, "y": 51, "flags": 4},
+ {"matrix": [3, 4], "x": 85, "y": 51, "flags": 4},
+ {"matrix": [3, 5], "x": 101, "y": 51, "flags": 4},
+ {"matrix": [3, 6], "x": 117, "y": 51, "flags": 4},
+ {"matrix": [3, 7], "x": 133, "y": 51, "flags": 4},
+ {"matrix": [3, 8], "x": 149, "y": 51, "flags": 4},
+ {"matrix": [3, 9], "x": 166, "y": 51, "flags": 4},
+ {"matrix": [3, 10], "x": 182, "y": 51, "flags": 4},
+ {"matrix": [3, 12], "x": 212, "y": 51, "flags": 4},
+ {"matrix": [4, 0], "x": 2, "y": 64, "flags": 4},
+ {"matrix": [4, 1], "x": 22, "y": 64, "flags": 4},
+ {"matrix": [4, 2], "x": 42, "y": 64, "flags": 4},
+ {"matrix": [4, 4], "x": 75, "y": 64, "flags": 4},
+ {"matrix": [4, 5], "x": 103, "y": 64, "flags": 4},
+ {"matrix": [4, 6], "x": 103, "y": 64, "flags": 4},
+ {"matrix": [4, 8], "x": 131, "y": 64, "flags": 4},
+ {"matrix": [4, 9], "x": 163, "y": 64, "flags": 4},
+ {"matrix": [4, 10], "x": 184, "y": 64, "flags": 4},
+ {"matrix": [4, 11], "x": 204, "y": 64, "flags": 4},
+ {"matrix": [4, 13], "x": 224, "y": 64, "flags": 4}
+ ],
+ "max_brightness": 200,
+ "hue_steps": 20,
+ "sat_steps": 20,
+ "speed_steps": 20,
+ "val_steps": 20
+ },
+ "url": "https://github.com/JZ-Skyloong",
+ "usb": {
+ "device_version": "1.0.0",
+ "pid": "0x6A61",
+ "vid": "0x1EA7",
+ "max_power": 380
+ },
+ "community_layouts": ["60_ansi"],
+ "layouts": {
+ "LAYOUT_all": {
+ "layout": [
+ {"matrix": [0, 0], "x": 0, "y": 0, "w": 1},
+ {"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": [0, 6], "x": 6, "y": 0},
+ {"matrix": [0, 7], "x": 7, "y": 0},
+ {"matrix": [0, 8], "x": 8, "y": 0},
+ {"matrix": [0, 9], "x": 9, "y": 0},
+ {"matrix": [0, 10], "x": 10, "y": 0},
+ {"matrix": [0, 11], "x": 11, "y": 0},
+ {"matrix": [0, 12], "x": 12, "y": 0},
+ {"matrix": [0, 13], "x": 13, "y": 0, "w": 2},
+ {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
+ {"matrix": [1, 1], "x": 1.5, "y": 1},
+ {"matrix": [1, 2], "x": 2.5, "y": 1},
+ {"matrix": [1, 3], "x": 3.5, "y": 1},
+ {"matrix": [1, 4], "x": 4.5, "y": 1},
+ {"matrix": [1, 5], "x": 5.5, "y": 1},
+ {"matrix": [1, 6], "x": 6.5, "y": 1},
+ {"matrix": [1, 7], "x": 7.5, "y": 1},
+ {"matrix": [1, 8], "x": 8.5, "y": 1},
+ {"matrix": [1, 9], "x": 9.5, "y": 1},
+ {"matrix": [1, 10], "x": 10.5, "y": 1},
+ {"matrix": [1, 11], "x": 11.5, "y": 1},
+ {"matrix": [1, 12], "x": 12.5, "y": 1},
+ {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5},
+ {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
+ {"matrix": [2, 1], "x": 1.75, "y": 2},
+ {"matrix": [2, 2], "x": 2.75, "y": 2},
+ {"matrix": [2, 3], "x": 3.75, "y": 2},
+ {"matrix": [2, 4], "x": 4.75, "y": 2},
+ {"matrix": [2, 5], "x": 5.75, "y": 2},
+ {"matrix": [2, 6], "x": 6.75, "y": 2},
+ {"matrix": [2, 7], "x": 7.75, "y": 2},
+ {"matrix": [2, 8], "x": 8.75, "y": 2},
+ {"matrix": [2, 9], "x": 9.75, "y": 2},
+ {"matrix": [2, 10], "x": 10.75, "y": 2},
+ {"matrix": [2, 11], "x": 11.75, "y": 2},
+ {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25},
+ {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25},
+ {"matrix": [3, 1], "x": 2.25, "y": 3},
+ {"matrix": [3, 2], "x": 3.25, "y": 3},
+ {"matrix": [3, 3], "x": 4.25, "y": 3},
+ {"matrix": [3, 4], "x": 5.25, "y": 3},
+ {"matrix": [3, 5], "x": 6.25, "y": 3},
+ {"matrix": [3, 6], "x": 7.25, "y": 3},
+ {"matrix": [3, 7], "x": 8.25, "y": 3},
+ {"matrix": [3, 8], "x": 9.25, "y": 3},
+ {"matrix": [3, 9], "x": 10.25, "y": 3},
+ {"matrix": [3, 10], "x": 11.25, "y": 3},
+ {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 2.75},
+ {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25},
+ {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25},
+ {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25},
+ {"matrix": [4, 4], "x": 3.75, "y": 4.5, "h": 0.5, "w": 2.5},
+ {"matrix": [4, 5], "x": 3.75, "y": 4, "h": 0.5, "w":6.25},
+ {"matrix": [4, 6], "x": 6.25, "y": 4.5, "h": 0.5, "w":1.25},
+ {"matrix": [4, 8], "x": 7.5, "y": 4.5, "h": 0.5, "w": 2.5},
+ {"matrix": [4, 9], "x": 10, "y": 4, "w": 1.25},
+ {"matrix": [4, 10], "x": 11.25, "y": 4, "w": 1.25},
+ {"matrix": [4, 11], "x": 12.5, "y": 4, "w": 1.25},
+ {"matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25}
+ ]
+ },
+ "LAYOUT_60_ansi": {
+ "layout": [
+ {"matrix": [0, 0], "x": 0, "y": 0, "w": 1},
+ {"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": [0, 6], "x": 6, "y": 0},
+ {"matrix": [0, 7], "x": 7, "y": 0},
+ {"matrix": [0, 8], "x": 8, "y": 0},
+ {"matrix": [0, 9], "x": 9, "y": 0},
+ {"matrix": [0, 10], "x": 10, "y": 0},
+ {"matrix": [0, 11], "x": 11, "y": 0},
+ {"matrix": [0, 12], "x": 12, "y": 0},
+ {"matrix": [0, 13], "x": 13, "y": 0, "w": 2},
+ {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
+ {"matrix": [1, 1], "x": 1.5, "y": 1},
+ {"matrix": [1, 2], "x": 2.5, "y": 1},
+ {"matrix": [1, 3], "x": 3.5, "y": 1},
+ {"matrix": [1, 4], "x": 4.5, "y": 1},
+ {"matrix": [1, 5], "x": 5.5, "y": 1},
+ {"matrix": [1, 6], "x": 6.5, "y": 1},
+ {"matrix": [1, 7], "x": 7.5, "y": 1},
+ {"matrix": [1, 8], "x": 8.5, "y": 1},
+ {"matrix": [1, 9], "x": 9.5, "y": 1},
+ {"matrix": [1, 10], "x": 10.5, "y": 1},
+ {"matrix": [1, 11], "x": 11.5, "y": 1},
+ {"matrix": [1, 12], "x": 12.5, "y": 1},
+ {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5},
+ {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
+ {"matrix": [2, 1], "x": 1.75, "y": 2},
+ {"matrix": [2, 2], "x": 2.75, "y": 2},
+ {"matrix": [2, 3], "x": 3.75, "y": 2},
+ {"matrix": [2, 4], "x": 4.75, "y": 2},
+ {"matrix": [2, 5], "x": 5.75, "y": 2},
+ {"matrix": [2, 6], "x": 6.75, "y": 2},
+ {"matrix": [2, 7], "x": 7.75, "y": 2},
+ {"matrix": [2, 8], "x": 8.75, "y": 2},
+ {"matrix": [2, 9], "x": 9.75, "y": 2},
+ {"matrix": [2, 10], "x": 10.75, "y": 2},
+ {"matrix": [2, 11], "x": 11.75, "y": 2},
+ {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25},
+ {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25},
+ {"matrix": [3, 1], "x": 2.25, "y": 3},
+ {"matrix": [3, 2], "x": 3.25, "y": 3},
+ {"matrix": [3, 3], "x": 4.25, "y": 3},
+ {"matrix": [3, 4], "x": 5.25, "y": 3},
+ {"matrix": [3, 5], "x": 6.25, "y": 3},
+ {"matrix": [3, 6], "x": 7.25, "y": 3},
+ {"matrix": [3, 7], "x": 8.25, "y": 3},
+ {"matrix": [3, 8], "x": 9.25, "y": 3},
+ {"matrix": [3, 9], "x": 10.25, "y": 3},
+ {"matrix": [3, 10], "x": 11.25, "y": 3},
+ {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 2.75},
+ {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25},
+ {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25},
+ {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25},
+ {"matrix": [4, 5], "x": 3.75, "y": 4, "w": 6.25},
+ {"matrix": [4, 9], "x": 10, "y": 4, "w": 1.25},
+ {"matrix": [4, 10], "x": 11.25, "y": 4, "w": 1.25},
+ {"matrix": [4, 11], "x": 12.5, "y": 4, "w": 1.25},
+ {"matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25}
+ ]
+ },
+ "LAYOUT_60_ansi_split_space": {
+ "layout": [
+ {"matrix": [0, 0], "x": 0, "y": 0, "w": 1},
+ {"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": [0, 6], "x": 6, "y": 0},
+ {"matrix": [0, 7], "x": 7, "y": 0},
+ {"matrix": [0, 8], "x": 8, "y": 0},
+ {"matrix": [0, 9], "x": 9, "y": 0},
+ {"matrix": [0, 10], "x": 10, "y": 0},
+ {"matrix": [0, 11], "x": 11, "y": 0},
+ {"matrix": [0, 12], "x": 12, "y": 0},
+ {"matrix": [0, 13], "x": 13, "y": 0, "w": 2},
+ {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
+ {"matrix": [1, 1], "x": 1.5, "y": 1},
+ {"matrix": [1, 2], "x": 2.5, "y": 1},
+ {"matrix": [1, 3], "x": 3.5, "y": 1},
+ {"matrix": [1, 4], "x": 4.5, "y": 1},
+ {"matrix": [1, 5], "x": 5.5, "y": 1},
+ {"matrix": [1, 6], "x": 6.5, "y": 1},
+ {"matrix": [1, 7], "x": 7.5, "y": 1},
+ {"matrix": [1, 8], "x": 8.5, "y": 1},
+ {"matrix": [1, 9], "x": 9.5, "y": 1},
+ {"matrix": [1, 10], "x": 10.5, "y": 1},
+ {"matrix": [1, 11], "x": 11.5, "y": 1},
+ {"matrix": [1, 12], "x": 12.5, "y": 1},
+ {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5},
+ {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
+ {"matrix": [2, 1], "x": 1.75, "y": 2},
+ {"matrix": [2, 2], "x": 2.75, "y": 2},
+ {"matrix": [2, 3], "x": 3.75, "y": 2},
+ {"matrix": [2, 4], "x": 4.75, "y": 2},
+ {"matrix": [2, 5], "x": 5.75, "y": 2},
+ {"matrix": [2, 6], "x": 6.75, "y": 2},
+ {"matrix": [2, 7], "x": 7.75, "y": 2},
+ {"matrix": [2, 8], "x": 8.75, "y": 2},
+ {"matrix": [2, 9], "x": 9.75, "y": 2},
+ {"matrix": [2, 10], "x": 10.75, "y": 2},
+ {"matrix": [2, 11], "x": 11.75, "y": 2},
+ {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25},
+ {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25},
+ {"matrix": [3, 1], "x": 2.25, "y": 3},
+ {"matrix": [3, 2], "x": 3.25, "y": 3},
+ {"matrix": [3, 3], "x": 4.25, "y": 3},
+ {"matrix": [3, 4], "x": 5.25, "y": 3},
+ {"matrix": [3, 5], "x": 6.25, "y": 3},
+ {"matrix": [3, 6], "x": 7.25, "y": 3},
+ {"matrix": [3, 7], "x": 8.25, "y": 3},
+ {"matrix": [3, 8], "x": 9.25, "y": 3},
+ {"matrix": [3, 9], "x": 10.25, "y": 3},
+ {"matrix": [3, 10], "x": 11.25, "y": 3},
+ {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 2.75},
+ {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25},
+ {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25},
+ {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25},
+ {"matrix": [4, 4], "x": 3.75, "y": 4, "w": 2.5},
+ {"matrix": [4, 6], "x": 6.25, "y": 4, "w": 1.25},
+ {"matrix": [4, 8], "x": 7.5, "y": 4, "w": 2.5},
+ {"matrix": [4, 9], "x": 10, "y": 4, "w": 1.25},
+ {"matrix": [4, 10], "x": 11.25, "y": 4, "w": 1.25},
+ {"matrix": [4, 11], "x": 12.5, "y": 4, "w": 1.25},
+ {"matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25}
+ ]
+ }
+ }
+}
diff --git a/keyboards/skyloong/gk61/pro/keymaps/default/keymap.c b/keyboards/skyloong/gk61/pro/keymaps/default/keymap.c
new file mode 100644
index 0000000000..9534f25d80
--- /dev/null
+++ b/keyboards/skyloong/gk61/pro/keymaps/default/keymap.c
@@ -0,0 +1,44 @@
+// Copyright 2021 JZ-Skyloong (@JZ-Skyloong)
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#include QMK_KEYBOARD_H
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ /*
+ * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
+ * │Esc│ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │Bsp│
+ * ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
+ * │Tab│ Q │ W │ E | R │ T │ Y │ U │ I │ O │ P │ [ │ ] │ \ │
+ * ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
+ * │Cap│ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ |Ent│
+ * ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
+ * │Sft│ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │ |Sft| │
+ * ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
+ * │Ctl│GUI│Alt│ │Spc│Mut│ │ |Spc|Alt│App│Ctl│ │Mo1|
+ * └───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┘
+ */
+ [0] = LAYOUT_all(
+ KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC,
+ KC_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_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_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,
+ KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_MUTE, KC_SPC, KC_RALT, KC_APP, KC_RCTL, MO(1)
+ ),
+
+ [1] = LAYOUT_all(
+ KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______,
+ _______, RGB_TOG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
+ )
+
+};
+
+#if defined(ENCODER_MAP_ENABLE)
+const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = {
+ [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) },
+ [1] = { ENCODER_CCW_CW(RGB_HUD, RGB_HUI) }
+};
+#endif
+
diff --git a/keyboards/skyloong/gk61/pro/keymaps/default/rules.mk b/keyboards/skyloong/gk61/pro/keymaps/default/rules.mk
new file mode 100644
index 0000000000..ee32568148
--- /dev/null
+++ b/keyboards/skyloong/gk61/pro/keymaps/default/rules.mk
@@ -0,0 +1 @@
+ENCODER_MAP_ENABLE = yes
diff --git a/keyboards/skyloong/gk61/pro/keymaps/via/keymap.c b/keyboards/skyloong/gk61/pro/keymaps/via/keymap.c
new file mode 100644
index 0000000000..e16bcc7105
--- /dev/null
+++ b/keyboards/skyloong/gk61/pro/keymaps/via/keymap.c
@@ -0,0 +1,67 @@
+// Copyright 2021 JZ-Skyloong (@JZ-Skyloong)
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#include QMK_KEYBOARD_H
+
+enum layer_names {
+ _WIN,
+ _MAC,
+ _WIN_INDEX,
+ _MAC_INDEX
+};
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ /*
+ * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
+ * │Esc│ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │Bsp│
+ * ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
+ * │Tab│ Q │ W │ E | R │ T │ Y │ U │ I │ O │ P │ [ │ ] │ \ │
+ * ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
+ * │Cap│ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ |Ent│
+ * ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
+ * │Sft│ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │ |Sft| │
+ * ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
+ * │Ctl│GUI│Alt│ │Spc│Spc│Mut│ |Spc|Alt│App│Ctl│ │Mo3|
+ * └───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┘
+ */
+ [_WIN] = LAYOUT_all(
+ KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC,
+ KC_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_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_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,
+ KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_MUTE, KC_SPC, KC_RALT, KC_APP, KC_RCTL, MO(_WIN_INDEX)
+ ),
+
+ [_MAC] = LAYOUT_all(
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, KC_LALT, KC_LGUI, _______, _______, _______, _______, KC_RGUI, KC_RALT, _______, MO(_MAC_INDEX)
+ ),
+
+ [_WIN_INDEX] = LAYOUT_all(
+ KC_GRV , KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL,
+ _______, _______, TO(0), TO(1), _______, _______, _______, _______, _______, _______, RGB_M_P, RGB_RMOD, RGB_RMOD, RGB_TOG,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_SPD, RGB_SPI, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, RGB_VAD, RGB_VAI, KC_UP, _______,
+ _______, _______, _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_RIGHT, _______
+ ),
+
+ [_MAC_INDEX] = LAYOUT_all(
+ KC_GRV , KC_F14, KC_F15, C(KC_UP), G(KC_D), G(KC_SPC), LSG(KC_4), KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_DEL,
+ _______, _______, TO(0), TO(1), _______, _______, _______, _______, _______, _______, RGB_M_P, RGB_RMOD, RGB_RMOD, RGB_TOG,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_SPD, RGB_SPI, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, RGB_VAD, RGB_VAI, KC_UP, _______,
+ _______, _______, _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_RIGHT, _______
+ )
+};
+
+#if defined(ENCODER_MAP_ENABLE)
+const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = {
+ [_WIN] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) },
+ [_MAC] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) },
+ [_WIN_INDEX] = { ENCODER_CCW_CW(RGB_HUD, RGB_HUI) },
+ [_MAC_INDEX] = { ENCODER_CCW_CW(RGB_HUD, RGB_HUI) }
+};
+#endif
diff --git a/keyboards/keychron/v3/ansi_encoder/keymaps/vnmm/rules.mk b/keyboards/skyloong/gk61/pro/keymaps/via/rules.mk
index f1adcab005..f1adcab005 100644
--- a/keyboards/keychron/v3/ansi_encoder/keymaps/vnmm/rules.mk
+++ b/keyboards/skyloong/gk61/pro/keymaps/via/rules.mk
diff --git a/keyboards/skyloong/gk61/pro/mcuconf.h b/keyboards/skyloong/gk61/pro/mcuconf.h
new file mode 100644
index 0000000000..91dde6cc42
--- /dev/null
+++ b/keyboards/skyloong/gk61/pro/mcuconf.h
@@ -0,0 +1,11 @@
+// Copyright 2023 linlin012 (@linlin012)
+// SPDX-License-Identifier: GPL-2.0-or-later
+#pragma once
+
+#include_next <mcuconf.h>
+
+#undef STM32_I2C_USE_I2C1
+#define STM32_I2C_USE_I2C1 TRUE
+
+#undef STM32_I2C_USE_DMA
+#define STM32_I2C_USE_DMA TRUE
diff --git a/keyboards/skyloong/gk61/pro/pro.c b/keyboards/skyloong/gk61/pro/pro.c
new file mode 100644
index 0000000000..1936964b32
--- /dev/null
+++ b/keyboards/skyloong/gk61/pro/pro.c
@@ -0,0 +1,235 @@
+// Copyright 2023 linlin012 (@linlin012)
+// SPDX-License-Identifier: GPL-2.0-or-later
+#include "quantum.h"
+int FN_WIN = 0;
+int FN_MAC = 0;
+int L_WIN = 0;
+int L_MAC = 0;
+
+const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = {
+/* Refer to IS31 manual for these locations
+ * driver
+ * | R location
+ * | | G location
+ * | | | B location
+ * | | | | */
+ {0, CS1_SW1, CS2_SW1, CS3_SW1},
+ {0, CS1_SW2, CS2_SW2, CS3_SW2},
+ {0, CS1_SW3, CS2_SW3, CS3_SW3},
+ {0, CS1_SW4, CS2_SW4, CS3_SW4},
+ {0, CS1_SW5, CS2_SW5, CS3_SW5},
+ {0, CS1_SW6, CS2_SW6, CS3_SW6},
+ {0, CS1_SW7, CS2_SW7, CS3_SW7},
+ {0, CS1_SW8, CS2_SW8, CS3_SW8},
+ {0, CS1_SW9, CS2_SW9, CS3_SW9},
+ {0, CS1_SW10, CS2_SW10, CS3_SW10},
+ {0, CS1_SW11, CS2_SW11, CS3_SW11},
+ {0, CS16_SW1, CS17_SW1, CS18_SW1},
+ {0, CS16_SW2, CS17_SW2, CS18_SW2},
+ {0, CS16_SW3, CS17_SW3, CS18_SW3},
+
+ {0, CS4_SW1, CS5_SW1, CS6_SW1},
+ {0, CS4_SW2, CS5_SW2, CS6_SW2},
+ {0, CS4_SW3, CS5_SW3, CS6_SW3},
+ {0, CS4_SW4, CS5_SW4, CS6_SW4},
+ {0, CS4_SW5, CS5_SW5, CS6_SW5},
+ {0, CS4_SW6, CS5_SW6, CS6_SW6},
+ {0, CS4_SW7, CS5_SW7, CS6_SW7},
+ {0, CS4_SW8, CS5_SW8, CS6_SW8},
+ {0, CS4_SW9, CS5_SW9, CS6_SW9},
+ {0, CS4_SW10, CS5_SW10, CS6_SW10},
+ {0, CS4_SW11, CS5_SW11, CS6_SW11},
+ {0, CS16_SW4, CS17_SW4, CS18_SW4},
+ {0, CS16_SW5, CS17_SW5, CS18_SW5},
+ {0, CS16_SW6, CS17_SW6, CS18_SW6},
+
+ {0, CS7_SW1, CS8_SW1, CS9_SW1},
+ {0, CS7_SW2, CS8_SW2, CS9_SW2},
+ {0, CS7_SW3, CS8_SW3, CS9_SW3},
+ {0, CS7_SW4, CS8_SW4, CS9_SW4},
+ {0, CS7_SW5, CS8_SW5, CS9_SW5},
+ {0, CS7_SW6, CS8_SW6, CS9_SW6},
+ {0, CS7_SW7, CS8_SW7, CS9_SW7},
+ {0, CS7_SW8, CS8_SW8, CS9_SW8},
+ {0, CS7_SW9, CS8_SW9, CS9_SW9},
+ {0, CS7_SW10, CS8_SW10, CS9_SW10},
+ {0, CS7_SW11, CS8_SW11, CS9_SW11},
+ {0, CS16_SW7, CS17_SW7, CS18_SW7},
+ {0, CS16_SW8, CS17_SW8, CS18_SW8},
+
+ {0, CS10_SW1, CS11_SW1, CS12_SW1},
+ {0, CS10_SW2, CS11_SW2, CS12_SW2},
+ {0, CS10_SW3, CS11_SW3, CS12_SW3},
+ {0, CS10_SW4, CS11_SW4, CS12_SW4},
+ {0, CS10_SW5, CS11_SW5, CS12_SW5},
+ {0, CS10_SW6, CS11_SW6, CS12_SW6},
+ {0, CS10_SW7, CS11_SW7, CS12_SW7},
+ {0, CS10_SW8, CS11_SW8, CS12_SW8},
+ {0, CS10_SW9, CS11_SW9, CS12_SW9},
+ {0, CS10_SW10, CS11_SW10, CS12_SW10},
+ {0, CS10_SW11, CS11_SW11, CS12_SW11},
+ {0, CS16_SW9, CS17_SW9, CS18_SW9},
+
+ {0, CS13_SW1, CS14_SW1, CS15_SW1},
+ {0, CS13_SW2, CS14_SW2, CS15_SW2},
+ {0, CS13_SW3, CS14_SW3, CS15_SW3},
+ {0, CS13_SW4, CS14_SW4, CS15_SW4},
+ {0, CS13_SW5, CS14_SW5, CS15_SW5},
+ {0, CS13_SW5, CS14_SW5, CS15_SW5},
+ {0, CS13_SW6, CS14_SW6, CS15_SW6},
+ {0, CS13_SW7, CS14_SW7, CS15_SW7},
+ {0, CS13_SW8, CS14_SW8, CS15_SW8},
+ {0, CS13_SW9, CS14_SW9, CS15_SW9},
+ {0, CS13_SW10, CS14_SW10, CS15_SW10}
+};
+
+#if defined(RGB_MATRIX_ENABLE) /*&& defined(CAPS_LOCK_INDEX)*/
+
+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 RGB_TOG:
+ if (record->event.pressed) {
+ switch (rgb_matrix_get_flags()) {
+ case LED_FLAG_ALL: {
+ rgb_matrix_set_flags(LED_FLAG_NONE);
+ rgb_matrix_set_color_all(0, 0, 0);
+ } break;
+ default: {
+ rgb_matrix_set_flags(LED_FLAG_ALL);
+ } break;
+ }
+ }
+ return false;
+# endif
+ case TO(0):
+ if (record->event.pressed) {
+ L_WIN = 1;
+ set_single_persistent_default_layer(0); // Save default layer 0 to eeprom
+ } else {
+ L_WIN = 0;
+ }
+ return true; // continue all further processing of this key
+
+ case MO(2):
+ if (record->event.pressed) {
+ FN_WIN = 1;
+ } else {
+ FN_WIN = 0;
+ }
+ return true; // continue all further processing of this key
+
+ case TO(1):
+ if (record->event.pressed) {
+ L_MAC = 1;
+ set_single_persistent_default_layer(1); //Save default layer 1 to eeprom
+ } else {
+ L_MAC = 0;
+ }
+ return true; // continue all further processing of this key
+
+ case MO(3):
+ if (record->event.pressed) {
+ FN_MAC = 1;
+ } else {
+ FN_MAC = 0;
+ }
+ return true; // continue all further processing of this key
+ default:
+ return true;
+ }
+
+}
+
+bool rgb_matrix_indicators_advanced_kb(uint8_t led_min, uint8_t led_max) {
+ if (!rgb_matrix_indicators_advanced_user(led_min, led_max)) {
+ return false;
+ }
+
+ if (host_keyboard_led_state().caps_lock) {
+ RGB_MATRIX_INDICATOR_SET_COLOR(CAPS_LOCK_INDEX, 255, 255, 255);
+ } else {
+ if (!rgb_matrix_get_flags()) {
+ RGB_MATRIX_INDICATOR_SET_COLOR(CAPS_LOCK_INDEX, 0, 0, 0);
+ }
+ }
+
+ switch (get_highest_layer(layer_state)) {
+ case 0:{
+ if (L_WIN) {
+ RGB_MATRIX_INDICATOR_SET_COLOR(WIN_MOD_INDEX, 255, 255, 255);
+ if (!rgb_matrix_get_flags()) {
+ RGB_MATRIX_INDICATOR_SET_COLOR(MAC_MOD_INDEX, 0, 0, 0);
+ }
+ }else{
+ if (!rgb_matrix_get_flags()) {
+ RGB_MATRIX_INDICATOR_SET_COLOR(WIN_MOD_INDEX, 0, 0, 0);
+ }
+ }
+ } break;
+
+ case 1:{
+ if (L_MAC) {
+ RGB_MATRIX_INDICATOR_SET_COLOR(MAC_MOD_INDEX, 255, 255, 255);
+ if (!rgb_matrix_get_flags()) {
+ RGB_MATRIX_INDICATOR_SET_COLOR(WIN_MOD_INDEX, 0, 0, 0);
+ }
+ }else{
+ if (!rgb_matrix_get_flags()) {
+ RGB_MATRIX_INDICATOR_SET_COLOR(MAC_MOD_INDEX, 0, 0, 0);
+ }
+ }
+ } break;
+
+
+ case 2:{
+ RGB_MATRIX_INDICATOR_SET_COLOR(WIN_MOD_INDEX, 255, 255, 255);
+ if (!rgb_matrix_get_flags()) {
+ RGB_MATRIX_INDICATOR_SET_COLOR(MAC_MOD_INDEX, 0, 0, 0);
+ }
+ } break;
+
+ case 3:{
+ RGB_MATRIX_INDICATOR_SET_COLOR(MAC_MOD_INDEX, 255, 255, 255);
+ if (!rgb_matrix_get_flags()) {
+ RGB_MATRIX_INDICATOR_SET_COLOR(WIN_MOD_INDEX, 0, 0, 0);
+ }
+ } break;
+
+ default:{
+ if (!rgb_matrix_get_flags()) {
+ RGB_MATRIX_INDICATOR_SET_COLOR(WIN_MOD_INDEX, 0, 0, 0);
+ RGB_MATRIX_INDICATOR_SET_COLOR(MAC_MOD_INDEX, 0, 0, 0);
+ }
+ }
+ }
+ return false;
+}
+
+#endif
+
+void suspend_power_down_kb() {
+# ifdef RGB_MATRIX_ENABLE
+ writePinLow(SDB);
+# endif
+ suspend_power_down_user();
+}
+
+void suspend_wakeup_init_kb() {
+# ifdef RGB_MATRIX_ENABLE
+ writePinHigh(SDB);
+# endif
+ suspend_wakeup_init_user();
+}
+
+void board_init(void) {
+ // JTAG-DP Disabled and SW-DP Disabled
+ AFIO->MAPR = (AFIO->MAPR & ~AFIO_MAPR_SWJ_CFG_Msk) | AFIO_MAPR_SWJ_CFG_DISABLE;
+# ifdef RGB_MATRIX_ENABLE
+ setPinOutput(SDB);
+ writePinHigh(SDB);
+# endif
+}
diff --git a/keyboards/skyloong/gk61/pro/readme.md b/keyboards/skyloong/gk61/pro/readme.md
new file mode 100644
index 0000000000..529f6f32c4
--- /dev/null
+++ b/keyboards/skyloong/gk61/pro/readme.md
@@ -0,0 +1,33 @@
+# GK61 PRO
+
+![GK61 PRO](https://i.imgur.com/DTetyVLh.jpg)
+
+## The PCB features:
+* QMK & VIA compatibility
+* RGB Matrix backlight
+* The space bar position switch can be interchanged with encoder module.
+
+
+The following is the QMK Firmware for the Destop 60% keylayout - designed in Dongguan Jizhi Electronic Technology Co., Ltd
+
+* Keyboard Maintainer: [linlin012](https://github.com/linlin012)
+* Hardware Supported: DestopPCB for Skyloong keylayout 60%, STM32F103R8T6
+* Hardware Availability: http://www.skyloong.com.cn https://skyloong.vip
+
+Make example for this keyboard (after setting up your build environment):
+
+ make skyloong/gk61/pro:default
+
+Flashing example for this keyboard:
+
+ make skyloong/gk61/pro: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 (usually the top left key or Escape) and plug in the keyboard
+* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead
+* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available
diff --git a/keyboards/skyloong/gk61/pro/rules.mk b/keyboards/skyloong/gk61/pro/rules.mk
new file mode 100644
index 0000000000..3bbd261429
--- /dev/null
+++ b/keyboards/skyloong/gk61/pro/rules.mk
@@ -0,0 +1 @@
+# File intentionally blank
diff --git a/keyboards/skyloong/gk61/pro_48/config.h b/keyboards/skyloong/gk61/pro_48/config.h
new file mode 100644
index 0000000000..df94455a9e
--- /dev/null
+++ b/keyboards/skyloong/gk61/pro_48/config.h
@@ -0,0 +1,16 @@
+// Copyright 2023 linlin012 (@linlin012)
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#pragma once
+
+#define RGB_MATRIX_LED_COUNT 64
+#define CAPS_LOCK_INDEX 28
+#define WIN_MOD_INDEX 16
+#define MAC_MOD_INDEX 17
+#define SDB A4
+
+#define RGB_DISABLE_WHEN_USB_SUSPENDED
+#define RGB_MATRIX_KEYPRESSES
+#define RGB_MATRIX_FRAMEBUFFER_EFFECTS
+
+#define g_suspend_state rgb_matrix_get_suspend_state()
diff --git a/keyboards/skyloong/gk61/pro_48/halconf.h b/keyboards/skyloong/gk61/pro_48/halconf.h
new file mode 100644
index 0000000000..5ac56913fc
--- /dev/null
+++ b/keyboards/skyloong/gk61/pro_48/halconf.h
@@ -0,0 +1,7 @@
+// Copyright 2023 linlin012 (@linlin012)
+// SPDX-License-Identifier: GPL-2.0-or-later
+#pragma once
+
+#define HAL_USE_I2C TRUE
+
+#include_next <halconf.h>
diff --git a/keyboards/skyloong/gk61/pro_48/info.json b/keyboards/skyloong/gk61/pro_48/info.json
new file mode 100644
index 0000000000..0e49e005aa
--- /dev/null
+++ b/keyboards/skyloong/gk61/pro_48/info.json
@@ -0,0 +1,338 @@
+{
+ "manufacturer": "skyloong",
+ "keyboard_name": "gk61 pro 48",
+ "maintainer": "NaturalZh",
+ "bootloader": "stm32duino",
+
+ "diode_direction": "ROW2COL",
+ "encoder": {
+ "rotary": [
+ {"pin_a": "A2", "pin_b": "A3", "resolution": 2}
+ ]
+ },
+ "features": {
+ "bootmagic": true,
+ "command": true,
+ "console": false,
+ "encoder": true,
+ "extrakey": true,
+ "mousekey": true,
+ "nkro": true,
+ "rgb_matrix": true
+ },
+ "build": {
+ "debounce_type": "asym_eager_defer_pk"
+ },
+ "matrix_pins": {
+ "cols": ["B13", "A0", "A1", "B14", "B15", "A8", "A9", "A10", "A15", "B3", "B4", "B5", "B8", "B9"],
+ "rows": ["B10", "B1", "B0", "A7", "A6"]
+ },
+ "processor": "STM32F103",
+ "rgb_matrix": {
+ "animations": {
+ "breathing": true,
+ "band_spiral_val": true,
+ "cycle_all": true,
+ "cycle_left_right": true,
+ "cycle_up_down": true,
+ "cycle_out_in": true,
+ "cycle_out_in_dual": true,
+ "rainbow_moving_chevron": true,
+ "cycle_pinwheel": true,
+ "cycle_spiral": true,
+ "dual_beacon": true,
+ "raindrops": true,
+ "jellybean_raindrops": true,
+ "pixel_rain": true,
+ "typing_heatmap":true,
+ "digital_rain": true,
+ "solid_reactive_simple": true,
+ "solid_reactive_multiwide": true,
+ "solid_reactive_multinexus": true,
+ "splash": true,
+ "solid_splash": true
+ },
+ "driver": "is31fl3743a",
+ "layout": [
+ {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4},
+ {"matrix": [0, 1], "x": 16, "y": 0, "flags": 4},
+ {"matrix": [0, 2], "x": 32, "y": 0, "flags": 4},
+ {"matrix": [0, 3], "x": 49, "y": 0, "flags": 4},
+ {"matrix": [0, 4], "x": 65, "y": 0, "flags": 4},
+ {"matrix": [0, 5], "x": 81, "y": 0, "flags": 4},
+ {"matrix": [0, 6], "x": 97, "y": 0, "flags": 4},
+ {"matrix": [0, 7], "x": 113, "y": 0, "flags": 4},
+ {"matrix": [0, 8], "x": 129, "y": 0, "flags": 4},
+ {"matrix": [0, 9], "x": 145, "y": 0, "flags": 4},
+ {"matrix": [0, 10], "x": 162, "y": 0, "flags": 4},
+ {"matrix": [0, 11], "x": 178, "y": 0, "flags": 4},
+ {"matrix": [0, 12], "x": 194, "y": 0, "flags": 4},
+ {"matrix": [0, 13], "x": 218, "y": 0, "flags": 4},
+ {"matrix": [1, 0], "x": 4, "y": 13, "flags": 4},
+ {"matrix": [1, 1], "x": 24, "y": 13, "flags": 4},
+ {"matrix": [1, 2], "x": 40, "y": 13, "flags": 4},
+ {"matrix": [1, 3], "x": 57, "y": 13, "flags": 4},
+ {"matrix": [1, 4], "x": 73, "y": 13, "flags": 4},
+ {"matrix": [1, 5], "x": 89, "y": 13, "flags": 4},
+ {"matrix": [1, 6], "x": 105, "y": 13, "flags": 4},
+ {"matrix": [1, 7], "x": 121, "y": 13, "flags": 4},
+ {"matrix": [1, 8], "x": 137, "y": 13, "flags": 4},
+ {"matrix": [1, 9], "x": 153, "y": 13, "flags": 4},
+ {"matrix": [1, 10], "x": 170, "y": 13, "flags": 4},
+ {"matrix": [1, 11], "x": 186, "y": 13, "flags": 4},
+ {"matrix": [1, 12], "x": 202, "y": 13, "flags": 4},
+ {"matrix": [1, 13], "x": 222, "y": 13, "flags": 4},
+ {"matrix": [2, 0], "x": 6, "y": 26, "flags": 4},
+ {"matrix": [2, 1], "x": 28, "y": 26, "flags": 4},
+ {"matrix": [2, 2], "x": 44, "y": 26, "flags": 4},
+ {"matrix": [2, 3], "x": 61, "y": 26, "flags": 4},
+ {"matrix": [2, 4], "x": 77, "y": 26, "flags": 4},
+ {"matrix": [2, 5], "x": 93, "y": 26, "flags": 4},
+ {"matrix": [2, 6], "x": 109, "y": 26, "flags": 4},
+ {"matrix": [2, 7], "x": 125, "y": 26, "flags": 4},
+ {"matrix": [2, 8], "x": 141, "y": 26, "flags": 4},
+ {"matrix": [2, 9], "x": 157, "y": 26, "flags": 4},
+ {"matrix": [2, 10], "x": 174, "y": 26, "flags": 4},
+ {"matrix": [2, 11], "x": 190, "y": 26, "flags": 4},
+ {"matrix": [2, 13], "x": 216, "y": 26, "flags": 4},
+ {"matrix": [3, 0], "x": 10, "y": 51, "flags": 4},
+ {"matrix": [3, 1], "x": 36, "y": 51, "flags": 4},
+ {"matrix": [3, 2], "x": 53, "y": 51, "flags": 4},
+ {"matrix": [3, 3], "x": 69, "y": 51, "flags": 4},
+ {"matrix": [3, 4], "x": 85, "y": 51, "flags": 4},
+ {"matrix": [3, 5], "x": 101, "y": 51, "flags": 4},
+ {"matrix": [3, 6], "x": 117, "y": 51, "flags": 4},
+ {"matrix": [3, 7], "x": 133, "y": 51, "flags": 4},
+ {"matrix": [3, 8], "x": 149, "y": 51, "flags": 4},
+ {"matrix": [3, 9], "x": 166, "y": 51, "flags": 4},
+ {"matrix": [3, 10], "x": 182, "y": 51, "flags": 4},
+ {"matrix": [3, 12], "x": 212, "y": 51, "flags": 4},
+ {"matrix": [4, 0], "x": 2, "y": 64, "flags": 4},
+ {"matrix": [4, 1], "x": 22, "y": 64, "flags": 4},
+ {"matrix": [4, 2], "x": 42, "y": 64, "flags": 4},
+ {"matrix": [4, 4], "x": 75, "y": 64, "flags": 4},
+ {"matrix": [4, 5], "x": 103, "y": 64, "flags": 4},
+ {"matrix": [4, 6], "x": 103, "y": 64, "flags": 4},
+ {"matrix": [4, 8], "x": 131, "y": 64, "flags": 4},
+ {"matrix": [4, 9], "x": 163, "y": 64, "flags": 4},
+ {"matrix": [4, 10], "x": 184, "y": 64, "flags": 4},
+ {"matrix": [4, 11], "x": 204, "y": 64, "flags": 4},
+ {"matrix": [4, 13], "x": 224, "y": 64, "flags": 4}
+ ],
+ "max_brightness": 200,
+ "hue_steps": 20,
+ "sat_steps": 20,
+ "speed_steps": 20,
+ "val_steps": 20
+ },
+ "url": "https://github.com/JZ-Skyloong",
+ "usb": {
+ "device_version": "1.0.0",
+ "pid": "0x6A62",
+ "vid": "0x1EA7",
+ "max_power": 380
+ },
+ "community_layouts": ["60_ansi"],
+ "layouts": {
+ "LAYOUT_all": {
+ "layout": [
+ {"matrix": [0, 0], "x": 0, "y": 0, "w": 1},
+ {"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": [0, 6], "x": 6, "y": 0},
+ {"matrix": [0, 7], "x": 7, "y": 0},
+ {"matrix": [0, 8], "x": 8, "y": 0},
+ {"matrix": [0, 9], "x": 9, "y": 0},
+ {"matrix": [0, 10], "x": 10, "y": 0},
+ {"matrix": [0, 11], "x": 11, "y": 0},
+ {"matrix": [0, 12], "x": 12, "y": 0},
+ {"matrix": [0, 13], "x": 13, "y": 0, "w": 2},
+ {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
+ {"matrix": [1, 1], "x": 1.5, "y": 1},
+ {"matrix": [1, 2], "x": 2.5, "y": 1},
+ {"matrix": [1, 3], "x": 3.5, "y": 1},
+ {"matrix": [1, 4], "x": 4.5, "y": 1},
+ {"matrix": [1, 5], "x": 5.5, "y": 1},
+ {"matrix": [1, 6], "x": 6.5, "y": 1},
+ {"matrix": [1, 7], "x": 7.5, "y": 1},
+ {"matrix": [1, 8], "x": 8.5, "y": 1},
+ {"matrix": [1, 9], "x": 9.5, "y": 1},
+ {"matrix": [1, 10], "x": 10.5, "y": 1},
+ {"matrix": [1, 11], "x": 11.5, "y": 1},
+ {"matrix": [1, 12], "x": 12.5, "y": 1},
+ {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5},
+ {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
+ {"matrix": [2, 1], "x": 1.75, "y": 2},
+ {"matrix": [2, 2], "x": 2.75, "y": 2},
+ {"matrix": [2, 3], "x": 3.75, "y": 2},
+ {"matrix": [2, 4], "x": 4.75, "y": 2},
+ {"matrix": [2, 5], "x": 5.75, "y": 2},
+ {"matrix": [2, 6], "x": 6.75, "y": 2},
+ {"matrix": [2, 7], "x": 7.75, "y": 2},
+ {"matrix": [2, 8], "x": 8.75, "y": 2},
+ {"matrix": [2, 9], "x": 9.75, "y": 2},
+ {"matrix": [2, 10], "x": 10.75, "y": 2},
+ {"matrix": [2, 11], "x": 11.75, "y": 2},
+ {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25},
+ {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25},
+ {"matrix": [3, 1], "x": 2.25, "y": 3},
+ {"matrix": [3, 2], "x": 3.25, "y": 3},
+ {"matrix": [3, 3], "x": 4.25, "y": 3},
+ {"matrix": [3, 4], "x": 5.25, "y": 3},
+ {"matrix": [3, 5], "x": 6.25, "y": 3},
+ {"matrix": [3, 6], "x": 7.25, "y": 3},
+ {"matrix": [3, 7], "x": 8.25, "y": 3},
+ {"matrix": [3, 8], "x": 9.25, "y": 3},
+ {"matrix": [3, 9], "x": 10.25, "y": 3},
+ {"matrix": [3, 10], "x": 11.25, "y": 3},
+ {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 2.75},
+ {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25},
+ {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25},
+ {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25},
+ {"matrix": [4, 4], "x": 3.75, "y": 4.5, "w": 2.5, "h": 0.5},
+ {"matrix": [4, 5], "x": 3.75, "y": 4, "h": 0.5, "w":6.25},
+ {"matrix": [4, 6], "x": 6.25, "y": 4.5, "h": 0.5, "w":1.25},
+ {"matrix": [4, 8], "x": 7.5, "y": 4.5, "w": 2.5, "h": 0.5},
+ {"matrix": [4, 9], "x": 10, "y": 4, "w": 1.25},
+ {"matrix": [4, 10], "x": 11.25, "y": 4, "w": 1.25},
+ {"matrix": [4, 11], "x": 12.5, "y": 4, "w": 1.25},
+ {"matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25}
+ ]
+ },
+ "LAYOUT_60_ansi": {
+ "layout": [
+ {"matrix": [0, 0], "x": 0, "y": 0, "w": 1},
+ {"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": [0, 6], "x": 6, "y": 0},
+ {"matrix": [0, 7], "x": 7, "y": 0},
+ {"matrix": [0, 8], "x": 8, "y": 0},
+ {"matrix": [0, 9], "x": 9, "y": 0},
+ {"matrix": [0, 10], "x": 10, "y": 0},
+ {"matrix": [0, 11], "x": 11, "y": 0},
+ {"matrix": [0, 12], "x": 12, "y": 0},
+ {"matrix": [0, 13], "x": 13, "y": 0, "w": 2},
+ {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
+ {"matrix": [1, 1], "x": 1.5, "y": 1},
+ {"matrix": [1, 2], "x": 2.5, "y": 1},
+ {"matrix": [1, 3], "x": 3.5, "y": 1},
+ {"matrix": [1, 4], "x": 4.5, "y": 1},
+ {"matrix": [1, 5], "x": 5.5, "y": 1},
+ {"matrix": [1, 6], "x": 6.5, "y": 1},
+ {"matrix": [1, 7], "x": 7.5, "y": 1},
+ {"matrix": [1, 8], "x": 8.5, "y": 1},
+ {"matrix": [1, 9], "x": 9.5, "y": 1},
+ {"matrix": [1, 10], "x": 10.5, "y": 1},
+ {"matrix": [1, 11], "x": 11.5, "y": 1},
+ {"matrix": [1, 12], "x": 12.5, "y": 1},
+ {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5},
+ {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
+ {"matrix": [2, 1], "x": 1.75, "y": 2},
+ {"matrix": [2, 2], "x": 2.75, "y": 2},
+ {"matrix": [2, 3], "x": 3.75, "y": 2},
+ {"matrix": [2, 4], "x": 4.75, "y": 2},
+ {"matrix": [2, 5], "x": 5.75, "y": 2},
+ {"matrix": [2, 6], "x": 6.75, "y": 2},
+ {"matrix": [2, 7], "x": 7.75, "y": 2},
+ {"matrix": [2, 8], "x": 8.75, "y": 2},
+ {"matrix": [2, 9], "x": 9.75, "y": 2},
+ {"matrix": [2, 10], "x": 10.75, "y": 2},
+ {"matrix": [2, 11], "x": 11.75, "y": 2},
+ {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25},
+ {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25},
+ {"matrix": [3, 1], "x": 2.25, "y": 3},
+ {"matrix": [3, 2], "x": 3.25, "y": 3},
+ {"matrix": [3, 3], "x": 4.25, "y": 3},
+ {"matrix": [3, 4], "x": 5.25, "y": 3},
+ {"matrix": [3, 5], "x": 6.25, "y": 3},
+ {"matrix": [3, 6], "x": 7.25, "y": 3},
+ {"matrix": [3, 7], "x": 8.25, "y": 3},
+ {"matrix": [3, 8], "x": 9.25, "y": 3},
+ {"matrix": [3, 9], "x": 10.25, "y": 3},
+ {"matrix": [3, 10], "x": 11.25, "y": 3},
+ {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 2.75},
+ {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25},
+ {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25},
+ {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25},
+ {"matrix": [4, 5], "x": 3.75, "y": 4, "w": 6.25},
+ {"matrix": [4, 9], "x": 10, "y": 4, "w": 1.25},
+ {"matrix": [4, 10], "x": 11.25, "y": 4, "w": 1.25},
+ {"matrix": [4, 11], "x": 12.5, "y": 4, "w": 1.25},
+ {"matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25}
+ ]
+ },
+ "LAYOUT_60_ansi_split_space": {
+ "layout": [
+ {"matrix": [0, 0], "x": 0, "y": 0, "w": 1},
+ {"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": [0, 6], "x": 6, "y": 0},
+ {"matrix": [0, 7], "x": 7, "y": 0},
+ {"matrix": [0, 8], "x": 8, "y": 0},
+ {"matrix": [0, 9], "x": 9, "y": 0},
+ {"matrix": [0, 10], "x": 10, "y": 0},
+ {"matrix": [0, 11], "x": 11, "y": 0},
+ {"matrix": [0, 12], "x": 12, "y": 0},
+ {"matrix": [0, 13], "x": 13, "y": 0, "w": 2},
+ {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
+ {"matrix": [1, 1], "x": 1.5, "y": 1},
+ {"matrix": [1, 2], "x": 2.5, "y": 1},
+ {"matrix": [1, 3], "x": 3.5, "y": 1},
+ {"matrix": [1, 4], "x": 4.5, "y": 1},
+ {"matrix": [1, 5], "x": 5.5, "y": 1},
+ {"matrix": [1, 6], "x": 6.5, "y": 1},
+ {"matrix": [1, 7], "x": 7.5, "y": 1},
+ {"matrix": [1, 8], "x": 8.5, "y": 1},
+ {"matrix": [1, 9], "x": 9.5, "y": 1},
+ {"matrix": [1, 10], "x": 10.5, "y": 1},
+ {"matrix": [1, 11], "x": 11.5, "y": 1},
+ {"matrix": [1, 12], "x": 12.5, "y": 1},
+ {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5},
+ {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
+ {"matrix": [2, 1], "x": 1.75, "y": 2},
+ {"matrix": [2, 2], "x": 2.75, "y": 2},
+ {"matrix": [2, 3], "x": 3.75, "y": 2},
+ {"matrix": [2, 4], "x": 4.75, "y": 2},
+ {"matrix": [2, 5], "x": 5.75, "y": 2},
+ {"matrix": [2, 6], "x": 6.75, "y": 2},
+ {"matrix": [2, 7], "x": 7.75, "y": 2},
+ {"matrix": [2, 8], "x": 8.75, "y": 2},
+ {"matrix": [2, 9], "x": 9.75, "y": 2},
+ {"matrix": [2, 10], "x": 10.75, "y": 2},
+ {"matrix": [2, 11], "x": 11.75, "y": 2},
+ {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25},
+ {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25},
+ {"matrix": [3, 1], "x": 2.25, "y": 3},
+ {"matrix": [3, 2], "x": 3.25, "y": 3},
+ {"matrix": [3, 3], "x": 4.25, "y": 3},
+ {"matrix": [3, 4], "x": 5.25, "y": 3},
+ {"matrix": [3, 5], "x": 6.25, "y": 3},
+ {"matrix": [3, 6], "x": 7.25, "y": 3},
+ {"matrix": [3, 7], "x": 8.25, "y": 3},
+ {"matrix": [3, 8], "x": 9.25, "y": 3},
+ {"matrix": [3, 9], "x": 10.25, "y": 3},
+ {"matrix": [3, 10], "x": 11.25, "y": 3},
+ {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 2.75},
+ {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25},
+ {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25},
+ {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25},
+ {"matrix": [4, 4], "x": 3.75, "y": 4, "w": 2.5},
+ {"matrix": [4, 6], "x": 6.25, "y": 4, "w": 1.25},
+ {"matrix": [4, 8], "x": 7.5, "y": 4, "w": 2.5},
+ {"matrix": [4, 9], "x": 10, "y": 4, "w": 1.25},
+ {"matrix": [4, 10], "x": 11.25, "y": 4, "w": 1.25},
+ {"matrix": [4, 11], "x": 12.5, "y": 4, "w": 1.25},
+ {"matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25}
+ ]
+ }
+ }
+}
diff --git a/keyboards/skyloong/gk61/pro_48/keymaps/default/keymap.c b/keyboards/skyloong/gk61/pro_48/keymaps/default/keymap.c
new file mode 100644
index 0000000000..9534f25d80
--- /dev/null
+++ b/keyboards/skyloong/gk61/pro_48/keymaps/default/keymap.c
@@ -0,0 +1,44 @@
+// Copyright 2021 JZ-Skyloong (@JZ-Skyloong)
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#include QMK_KEYBOARD_H
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ /*
+ * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
+ * │Esc│ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │Bsp│
+ * ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
+ * │Tab│ Q │ W │ E | R │ T │ Y │ U │ I │ O │ P │ [ │ ] │ \ │
+ * ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
+ * │Cap│ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ |Ent│
+ * ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
+ * │Sft│ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │ |Sft| │
+ * ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
+ * │Ctl│GUI│Alt│ │Spc│Mut│ │ |Spc|Alt│App│Ctl│ │Mo1|
+ * └───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┘
+ */
+ [0] = LAYOUT_all(
+ KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC,
+ KC_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_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_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,
+ KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_MUTE, KC_SPC, KC_RALT, KC_APP, KC_RCTL, MO(1)
+ ),
+
+ [1] = LAYOUT_all(
+ KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______,
+ _______, RGB_TOG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
+ )
+
+};
+
+#if defined(ENCODER_MAP_ENABLE)
+const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = {
+ [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) },
+ [1] = { ENCODER_CCW_CW(RGB_HUD, RGB_HUI) }
+};
+#endif
+
diff --git a/keyboards/skyloong/gk61/pro_48/keymaps/default/rules.mk b/keyboards/skyloong/gk61/pro_48/keymaps/default/rules.mk
new file mode 100644
index 0000000000..ee32568148
--- /dev/null
+++ b/keyboards/skyloong/gk61/pro_48/keymaps/default/rules.mk
@@ -0,0 +1 @@
+ENCODER_MAP_ENABLE = yes
diff --git a/keyboards/skyloong/gk61/pro_48/keymaps/via/keymap.c b/keyboards/skyloong/gk61/pro_48/keymaps/via/keymap.c
new file mode 100644
index 0000000000..e63830f519
--- /dev/null
+++ b/keyboards/skyloong/gk61/pro_48/keymaps/via/keymap.c
@@ -0,0 +1,68 @@
+// Copyright 2021 JZ-Skyloong (@JZ-Skyloong)
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#include QMK_KEYBOARD_H
+
+enum layer_names {
+ _WIN,
+ _MAC,
+ _WIN_INDEX,
+ _MAC_INDEX
+};
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ /*
+ * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
+ * │Esc│ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │Bsp│
+ * ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
+ * │Tab│ Q │ W │ E | R │ T │ Y │ U │ I │ O │ P │ [ │ ] │ \ │
+ * ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
+ * │Cap│ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ |Ent│
+ * ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
+ * │Sft│ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │ |Sft| │
+ * ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
+ * │Ctl│GUI│Alt│ │Spc│Spc│Mut│ |Spc|Alt│App│Ctl│ │Mox|
+ * └───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┘
+ */
+ [_WIN] = LAYOUT_all(
+ KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC,
+ KC_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_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_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,
+ KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_MUTE, KC_SPC, KC_RALT, KC_APP, KC_RCTL, MO(_WIN_INDEX)
+ ),
+
+ [_MAC] = LAYOUT_all(
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, KC_LALT, KC_LGUI, _______, _______, _______, _______, KC_RGUI, KC_RALT, _______, MO(_MAC_INDEX)
+ ),
+
+ [_WIN_INDEX] = LAYOUT_all(
+ KC_GRV , KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL,
+ _______, _______, TO(0), TO(1), _______, _______, _______, _______, _______, _______, RGB_M_P, RGB_RMOD, RGB_RMOD, RGB_TOG,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_SPD, RGB_SPI, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, RGB_VAD, RGB_VAI, KC_UP, _______,
+ _______, _______, _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_RIGHT, _______
+ ),
+
+ [_MAC_INDEX] = LAYOUT_all(
+ KC_GRV , KC_F14, KC_F15, C(KC_UP), G(KC_D), G(KC_SPC), LSG(KC_4), KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_DEL,
+ _______, _______, TO(0), TO(1), _______, _______, _______, _______, _______, _______, RGB_M_P, RGB_RMOD, RGB_RMOD, RGB_TOG,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_SPD, RGB_SPI, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, RGB_VAD, RGB_VAI, KC_UP, _______,
+ _______, _______, _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_RIGHT, _______
+ )
+};
+
+#if defined(ENCODER_MAP_ENABLE)
+const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = {
+ [_WIN] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) },
+ [_MAC] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) },
+ [_WIN_INDEX] = { ENCODER_CCW_CW(RGB_HUD, RGB_HUI) },
+ [_MAC_INDEX] = { ENCODER_CCW_CW(RGB_HUD, RGB_HUI) }
+};
+#endif
+
diff --git a/keyboards/rgbkb/sol3/keymaps/kageurufu/rules.mk b/keyboards/skyloong/gk61/pro_48/keymaps/via/rules.mk
index f1adcab005..f1adcab005 100644
--- a/keyboards/rgbkb/sol3/keymaps/kageurufu/rules.mk
+++ b/keyboards/skyloong/gk61/pro_48/keymaps/via/rules.mk
diff --git a/keyboards/skyloong/gk61/pro_48/mcuconf.h b/keyboards/skyloong/gk61/pro_48/mcuconf.h
new file mode 100644
index 0000000000..91dde6cc42
--- /dev/null
+++ b/keyboards/skyloong/gk61/pro_48/mcuconf.h
@@ -0,0 +1,11 @@
+// Copyright 2023 linlin012 (@linlin012)
+// SPDX-License-Identifier: GPL-2.0-or-later
+#pragma once
+
+#include_next <mcuconf.h>
+
+#undef STM32_I2C_USE_I2C1
+#define STM32_I2C_USE_I2C1 TRUE
+
+#undef STM32_I2C_USE_DMA
+#define STM32_I2C_USE_DMA TRUE
diff --git a/keyboards/skyloong/gk61/pro_48/pro_48.c b/keyboards/skyloong/gk61/pro_48/pro_48.c
new file mode 100644
index 0000000000..e4f64c022f
--- /dev/null
+++ b/keyboards/skyloong/gk61/pro_48/pro_48.c
@@ -0,0 +1,227 @@
+// Copyright 2023 linlin012 (@linlin012)
+// SPDX-License-Identifier: GPL-2.0-or-later
+#include "quantum.h"
+_Bool FN_WIN = 0;
+_Bool FN_MAC = 0;
+_Bool L_WIN = 0;
+_Bool L_MAC = 0;
+
+#if defined(RGB_MATRIX_ENABLE) /*&& defined(CAPS_LOCK_INDEX)*/
+const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = {
+/* Refer to IS31 manual for these locations
+ * driver
+ * | R location
+ * | | G location
+ * | | | B location
+ * | | | | */
+ {0, CS1_SW1, CS2_SW1, CS3_SW1},
+ {0, CS1_SW2, CS2_SW2, CS3_SW2},
+ {0, CS1_SW3, CS2_SW3, CS3_SW3},
+ {0, CS1_SW4, CS2_SW4, CS3_SW4},
+ {0, CS1_SW5, CS2_SW5, CS3_SW5},
+ {0, CS1_SW6, CS2_SW6, CS3_SW6},
+ {0, CS1_SW7, CS2_SW7, CS3_SW7},
+ {0, CS1_SW8, CS2_SW8, CS3_SW8},
+ {0, CS1_SW9, CS2_SW9, CS3_SW9},
+ {0, CS1_SW10, CS2_SW10, CS3_SW10},
+ {0, CS1_SW11, CS2_SW11, CS3_SW11},
+ {0, CS16_SW1, CS17_SW1, CS18_SW1},
+ {0, CS16_SW2, CS17_SW2, CS18_SW2},
+ {0, CS16_SW3, CS17_SW3, CS18_SW3},
+
+ {0, CS4_SW1, CS5_SW1, CS6_SW1},
+ {0, CS4_SW2, CS5_SW2, CS6_SW2},
+ {0, CS4_SW3, CS5_SW3, CS6_SW3},
+ {0, CS4_SW4, CS5_SW4, CS6_SW4},
+ {0, CS4_SW5, CS5_SW5, CS6_SW5},
+ {0, CS4_SW6, CS5_SW6, CS6_SW6},
+ {0, CS4_SW7, CS5_SW7, CS6_SW7},
+ {0, CS4_SW8, CS5_SW8, CS6_SW8},
+ {0, CS4_SW9, CS5_SW9, CS6_SW9},
+ {0, CS4_SW10, CS5_SW10, CS6_SW10},
+ {0, CS4_SW11, CS5_SW11, CS6_SW11},
+ {0, CS16_SW4, CS17_SW4, CS18_SW4},
+ {0, CS16_SW5, CS17_SW5, CS18_SW5},
+ {0, CS16_SW6, CS17_SW6, CS18_SW6},
+
+ {0, CS7_SW1, CS8_SW1, CS9_SW1},
+ {0, CS7_SW2, CS8_SW2, CS9_SW2},
+ {0, CS7_SW3, CS8_SW3, CS9_SW3},
+ {0, CS7_SW4, CS8_SW4, CS9_SW4},
+ {0, CS7_SW5, CS8_SW5, CS9_SW5},
+ {0, CS7_SW6, CS8_SW6, CS9_SW6},
+ {0, CS7_SW7, CS8_SW7, CS9_SW7},
+ {0, CS7_SW8, CS8_SW8, CS9_SW8},
+ {0, CS7_SW9, CS8_SW9, CS9_SW9},
+ {0, CS7_SW10, CS8_SW10, CS9_SW10},
+ {0, CS7_SW11, CS8_SW11, CS9_SW11},
+ {0, CS16_SW7, CS17_SW7, CS18_SW7},
+ {0, CS16_SW8, CS17_SW8, CS18_SW8},
+
+ {0, CS10_SW1, CS11_SW1, CS12_SW1},
+ {0, CS10_SW2, CS11_SW2, CS12_SW2},
+ {0, CS10_SW3, CS11_SW3, CS12_SW3},
+ {0, CS10_SW4, CS11_SW4, CS12_SW4},
+ {0, CS10_SW5, CS11_SW5, CS12_SW5},
+ {0, CS10_SW6, CS11_SW6, CS12_SW6},
+ {0, CS10_SW7, CS11_SW7, CS12_SW7},
+ {0, CS10_SW8, CS11_SW8, CS12_SW8},
+ {0, CS10_SW9, CS11_SW9, CS12_SW9},
+ {0, CS10_SW10, CS11_SW10, CS12_SW10},
+ {0, CS10_SW11, CS11_SW11, CS12_SW11},
+ {0, CS16_SW9, CS17_SW9, CS18_SW9},
+
+ {0, CS13_SW1, CS14_SW1, CS15_SW1},
+ {0, CS13_SW2, CS14_SW2, CS15_SW2},
+ {0, CS13_SW3, CS14_SW3, CS15_SW3},
+ {0, CS13_SW4, CS14_SW4, CS15_SW4},
+ {0, CS13_SW5, CS14_SW5, CS15_SW5},
+ {0, CS13_SW5, CS14_SW5, CS15_SW5},
+ {0, CS13_SW6, CS14_SW6, CS15_SW6},
+ {0, CS13_SW7, CS14_SW7, CS15_SW7},
+ {0, CS13_SW8, CS14_SW8, CS15_SW8},
+ {0, CS13_SW9, CS14_SW9, CS15_SW9},
+ {0, CS13_SW10, CS14_SW10, CS15_SW10}
+};
+
+bool rgb_matrix_indicators_advanced_kb(uint8_t led_min, uint8_t led_max) {
+ if (!rgb_matrix_indicators_advanced_user(led_min, led_max)) {
+ return false;
+ }
+
+ if (host_keyboard_led_state().caps_lock) {
+ RGB_MATRIX_INDICATOR_SET_COLOR(CAPS_LOCK_INDEX, 255, 255, 255);
+ } else {
+ if (!rgb_matrix_get_flags()) {
+ RGB_MATRIX_INDICATOR_SET_COLOR(CAPS_LOCK_INDEX, 0, 0, 0);
+ }
+ }
+
+ switch (get_highest_layer(layer_state)) {
+ case 2:{
+ RGB_MATRIX_INDICATOR_SET_COLOR(WIN_MOD_INDEX, 255, 255, 255);
+ if (!rgb_matrix_get_flags()) {
+ RGB_MATRIX_INDICATOR_SET_COLOR(MAC_MOD_INDEX, 0, 0, 0);
+ }
+ } break;
+ case 3:{
+ RGB_MATRIX_INDICATOR_SET_COLOR(MAC_MOD_INDEX, 255, 255, 255);
+ if (!rgb_matrix_get_flags()) {
+ RGB_MATRIX_INDICATOR_SET_COLOR(WIN_MOD_INDEX, 0, 0, 0);
+ }
+ } break;
+
+ case 0:{
+ if (L_WIN) {
+ RGB_MATRIX_INDICATOR_SET_COLOR(WIN_MOD_INDEX, 255, 255, 255);
+ if (!rgb_matrix_get_flags()) {
+ RGB_MATRIX_INDICATOR_SET_COLOR(MAC_MOD_INDEX, 0, 0, 0);
+ }
+ }else{
+ if (!rgb_matrix_get_flags()) {
+ RGB_MATRIX_INDICATOR_SET_COLOR(WIN_MOD_INDEX, 0, 0, 0);
+ }
+ }
+ } break;
+
+ case 1:{
+ if (L_MAC) {
+ RGB_MATRIX_INDICATOR_SET_COLOR(MAC_MOD_INDEX, 255, 255, 255);
+ if (!rgb_matrix_get_flags()) {
+ RGB_MATRIX_INDICATOR_SET_COLOR(WIN_MOD_INDEX, 0, 0, 0);
+ }
+ }else{
+ if (!rgb_matrix_get_flags()) {
+ RGB_MATRIX_INDICATOR_SET_COLOR(MAC_MOD_INDEX, 0, 0, 0);
+ }
+ }
+ } break;
+
+ default:{
+ if (!rgb_matrix_get_flags()) {
+ RGB_MATRIX_INDICATOR_SET_COLOR(WIN_MOD_INDEX, 0, 0, 0);
+ RGB_MATRIX_INDICATOR_SET_COLOR(MAC_MOD_INDEX, 0, 0, 0);
+ }
+ }
+ }
+ return false;
+}
+
+
+void suspend_power_down_kb(void) {
+ writePinLow(SDB);
+ suspend_power_down_user();
+}
+
+void suspend_wakeup_init_kb(void) {
+ writePinHigh(SDB);
+ suspend_wakeup_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 RGB_TOG:
+ if (record->event.pressed) {
+ switch (rgb_matrix_get_flags()) {
+ case LED_FLAG_ALL: {
+ rgb_matrix_set_flags(LED_FLAG_NONE);
+ rgb_matrix_set_color_all(0, 0, 0);
+ } break;
+ default: {
+ rgb_matrix_set_flags(LED_FLAG_ALL);
+ } break;
+ }
+ }
+ return false;
+# endif
+ case TO(0):
+ if (record->event.pressed) {
+ L_WIN = 1;
+ set_single_persistent_default_layer(0); // Save default layer 0 to eeprom
+ } else {
+ L_WIN = 0;
+ }
+ return true; // continue all further processing of this key
+
+ case MO(2):
+ if (record->event.pressed) {
+ FN_WIN = 1;
+ } else {
+ FN_WIN = 0;
+ }
+ return true; // continue all further processing of this key
+
+ case TO(1):
+ if (record->event.pressed) {
+ L_MAC = 1;
+ set_single_persistent_default_layer(1); //Save default layer 1 to eeprom
+ } else {
+ L_MAC = 0;
+ }
+ return true; // continue all further processing of this key
+
+ case MO(3):
+ if (record->event.pressed) {
+ FN_MAC = 1;
+ } else {
+ FN_MAC = 0;
+ }
+ return true; // continue all further processing of this key
+ default:
+ return true;
+ }
+}
+
+void board_init(void) {
+ // JTAG-DP Disabled and SW-DP Disabled
+ AFIO->MAPR = (AFIO->MAPR & ~AFIO_MAPR_SWJ_CFG_Msk) | AFIO_MAPR_SWJ_CFG_DISABLE;
+# ifdef RGB_MATRIX_ENABLE
+ setPinOutput(SDB);
+ writePinHigh(SDB);
+# endif
+}
diff --git a/keyboards/skyloong/gk61/pro_48/readme.md b/keyboards/skyloong/gk61/pro_48/readme.md
new file mode 100644
index 0000000000..babfec4a3b
--- /dev/null
+++ b/keyboards/skyloong/gk61/pro_48/readme.md
@@ -0,0 +1,33 @@
+# GK61 PRO 48
+
+![GK61 PRO](https://i.imgur.com/DTetyVLh.jpg)
+
+## The PCB features:
+* QMK & VIA compatibility
+* RGB Matrix backlight
+* The space bar position switch can be interchanged with encoder module.
+
+
+The following is the QMK Firmware for the Destop 60% keylayout - designed in Dongguan Jizhi Electronic Technology Co., Ltd
+
+* Keyboard Maintainer: [NaturalZh](https://github.com/NaturalZh)
+* Hardware Supported: DestopPCB for Skyloong keylayout 60%, STM32F103C8T6
+* Hardware Availability: http://www.skyloong.com.cn https://skyloong.vip
+
+Make example for this keyboard (after setting up your build environment):
+
+ make skyloong/gk61/pro_48:default
+
+Flashing example for this keyboard:
+
+ make skyloong/gk61/pro_48: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 (usually the top left key or Escape) and plug in the keyboard
+* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead
+* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available
diff --git a/keyboards/skyloong/gk61/pro_48/rules.mk b/keyboards/skyloong/gk61/pro_48/rules.mk
new file mode 100644
index 0000000000..3bbd261429
--- /dev/null
+++ b/keyboards/skyloong/gk61/pro_48/rules.mk
@@ -0,0 +1 @@
+# File intentionally blank
diff --git a/keyboards/skyloong/gk61/v1/config.h b/keyboards/skyloong/gk61/v1/config.h
new file mode 100644
index 0000000000..bd9cab743f
--- /dev/null
+++ b/keyboards/skyloong/gk61/v1/config.h
@@ -0,0 +1,25 @@
+/* Copyright 2021 JZ-Skyloong (@JZ-Skyloong)
+ *
+ * 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 SNLED27351_I2C_ADDRESS_1 SNLED27351_I2C_ADDRESS_GND
+
+#define RGB_MATRIX_LED_COUNT 64
+
+#define RGB_MATRIX_FRAMEBUFFER_EFFECTS //Enable frame effects
+#define RGB_MATRIX_KEYPRESSES //Reacts to keypress
+#define RGB_DISABLE_WHEN_USB_SUSPENDED //turn off effects when suspended
+#define SDB C1
diff --git a/keyboards/skyloong/gk61/v1/halconf.h b/keyboards/skyloong/gk61/v1/halconf.h
new file mode 100644
index 0000000000..74dddca8a5
--- /dev/null
+++ b/keyboards/skyloong/gk61/v1/halconf.h
@@ -0,0 +1,21 @@
+/* Copyright 2021 JZ-Skyloong (@JZ-Skyloong)
+ *
+ * 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 HAL_USE_I2C TRUE
+
+#include_next <halconf.h>
+
diff --git a/keyboards/skyloong/gk61/v1/info.json b/keyboards/skyloong/gk61/v1/info.json
new file mode 100644
index 0000000000..6015efa12c
--- /dev/null
+++ b/keyboards/skyloong/gk61/v1/info.json
@@ -0,0 +1,331 @@
+{
+ "manufacturer": "JZ-Skyloong",
+ "keyboard_name": "GK61",
+ "maintainer": "JZ-Skyloong",
+ "bootloader": "stm32duino",
+ "diode_direction": "ROW2COL",
+ "features": {
+ "bootmagic": true,
+ "extrakey": true,
+ "mousekey": true,
+ "nkro": true,
+ "command": false,
+ "console": false,
+ "rgb_matrix": true
+ },
+ "processor": "STM32F103",
+ "matrix_pins": {
+ "cols": ["B11", "C6", "C7", "B12", "B13", "B14", "B15", "B10", "B2", "B1", "D2", "B3", "B4", "B5"],
+ "rows": ["A15", "C10", "C11", "C12", "A3"]
+ },
+ "rgb_matrix": {
+ "animations": {
+ "breathing": true,
+ "band_spiral_val": true,
+ "cycle_all": true,
+ "cycle_left_right": true,
+ "cycle_up_down": true,
+ "cycle_out_in": true,
+ "cycle_out_in_dual": true,
+ "rainbow_moving_chevron": true,
+ "cycle_pinwheel": true,
+ "cycle_spiral": true,
+ "dual_beacon": true,
+ "raindrops": true,
+ "jellybean_raindrops": true,
+ "pixel_rain": true,
+ "typing_heatmap": true,
+ "digital_rain": true,
+ "solid_reactive_simple": true,
+ "solid_reactive_multiwide": true,
+ "solid_reactive_multinexus": true,
+ "splash": true,
+ "solid_splash": true
+ },
+ "driver": "snled27351",
+ "hue_steps": 20,
+ "layout": [
+ {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4},
+ {"matrix": [0, 1], "x": 15, "y": 0, "flags": 4},
+ {"matrix": [0, 2], "x": 30, "y": 0, "flags": 4},
+ {"matrix": [0, 3], "x": 45, "y": 0, "flags": 4},
+ {"matrix": [0, 4], "x": 60, "y": 0, "flags": 4},
+ {"matrix": [0, 5], "x": 75, "y": 0, "flags": 4},
+ {"matrix": [0, 6], "x": 89, "y": 0, "flags": 4},
+ {"matrix": [0, 7], "x": 104, "y": 0, "flags": 4},
+ {"matrix": [0, 8], "x": 119, "y": 0, "flags": 4},
+ {"matrix": [0, 9], "x": 134, "y": 0, "flags": 4},
+ {"matrix": [0, 10], "x": 149, "y": 0, "flags": 4},
+ {"matrix": [0, 11], "x": 164, "y": 0, "flags": 4},
+ {"matrix": [0, 12], "x": 179, "y": 0, "flags": 4},
+ {"matrix": [0, 13], "x": 209, "y": 0, "flags": 4},
+ {"matrix": [1, 0], "x": 0, "y": 16, "flags": 4},
+ {"matrix": [1, 1], "x": 22, "y": 16, "flags": 4},
+ {"matrix": [1, 2], "x": 37, "y": 16, "flags": 4},
+ {"matrix": [1, 3], "x": 52, "y": 16, "flags": 4},
+ {"matrix": [1, 4], "x": 67, "y": 16, "flags": 4},
+ {"matrix": [1, 5], "x": 82, "y": 16, "flags": 4},
+ {"matrix": [1, 6], "x": 97, "y": 16, "flags": 4},
+ {"matrix": [1, 7], "x": 112, "y": 16, "flags": 4},
+ {"matrix": [1, 8], "x": 127, "y": 16, "flags": 4},
+ {"matrix": [1, 9], "x": 142, "y": 16, "flags": 4},
+ {"matrix": [1, 10], "x": 156, "y": 16, "flags": 4},
+ {"matrix": [1, 11], "x": 171, "y": 16, "flags": 4},
+ {"matrix": [1, 12], "x": 186, "y": 16, "flags": 4},
+ {"matrix": [1, 13], "x":216, "y": 16, "flags": 4},
+ {"matrix": [2, 0], "x": 0, "y": 32, "flags": 4},
+ {"matrix": [2, 1], "x": 26, "y": 32, "flags": 4},
+ {"matrix": [2, 2], "x": 41, "y": 32, "flags": 4},
+ {"matrix": [2, 3], "x": 56, "y": 32, "flags": 4},
+ {"matrix": [2, 4], "x": 71, "y": 32, "flags": 4},
+ {"matrix": [2, 5], "x": 86, "y": 32, "flags": 4},
+ {"matrix": [2, 6], "x": 101, "y": 32, "flags": 4},
+ {"matrix": [2, 7], "x": 115, "y": 32, "flags": 4},
+ {"matrix": [2, 8], "x": 130, "y": 32, "flags": 4},
+ {"matrix": [2, 9], "x": 145, "y": 32, "flags": 4},
+ {"matrix": [2, 10], "x": 160, "y": 32, "flags": 4},
+ {"matrix": [2, 11], "x": 175, "y": 32, "flags": 4},
+ {"matrix": [2, 13], "x": 208, "y": 32, "flags": 4},
+ {"matrix": [3, 0], "x": 0, "y": 48, "flags": 4},
+ {"matrix": [3, 1], "x": 34, "y": 48, "flags": 4},
+ {"matrix": [3, 2], "x": 48, "y": 48, "flags": 4},
+ {"matrix": [3, 3], "x": 63, "y": 48, "flags": 4},
+ {"matrix": [3, 4], "x": 78, "y": 48, "flags": 4},
+ {"matrix": [3, 6], "x": 93, "y": 48, "flags": 4},
+ {"matrix": [4, 6], "x": 108, "y": 48, "flags": 4},
+ {"matrix": [3, 7], "x": 123, "y": 48, "flags": 4},
+ {"matrix": [3, 8], "x": 138, "y": 48, "flags": 4},
+ {"matrix": [3, 9], "x": 153, "y": 48, "flags": 4},
+ {"matrix": [3, 10], "x": 168, "y": 48, "flags": 4},
+ {"matrix": [3, 12], "x": 205, "y": 48, "flags": 4},
+ {"matrix": [4, 0], "x": 0, "y": 64, "flags": 4},
+ {"matrix": [4, 1], "x": 19, "y": 64, "flags": 4},
+ {"matrix": [4, 2], "x": 37, "y": 64, "flags": 4},
+ {"matrix": [4, 4], "x": 56, "y": 64, "flags": 4},
+ {"matrix": [4, 5], "x":95, "y": 64, "flags": 4},
+ {"matrix": [3, 5], "x": 107, "y": 64, "flags": 4},
+ {"matrix": [4, 8], "x": 130, "y": 64, "flags": 4},
+ {"matrix": [4, 9], "x": 149, "y": 64, "flags": 4},
+ {"matrix": [4, 10], "x": 175, "y": 64, "flags": 4},
+ {"matrix": [4, 11], "x": 198, "y": 64, "flags": 4},
+ {"matrix": [4, 13], "x": 220, "y": 64, "flags": 4}
+ ],
+ "max_brightness": 200,
+ "sat_steps": 20,
+ "speed_steps": 20,
+ "val_steps": 20
+ },
+ "url": "https://github.com/JZ-Skyloong",
+ "usb": {
+ "vid": "0x1EA7",
+ "device_version": "1.0.0",
+ "pid": "0x6061",
+ "max_power": 380,
+ "force_nkro": true
+ },
+ "community_layouts": ["60_ansi"],
+ "layouts": {
+ "LAYOUT_all": {
+ "layout": [
+ {"matrix": [0, 0], "x": 0, "y": 0, "w": 1},
+ {"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": [0, 6], "x": 6, "y": 0},
+ {"matrix": [0, 7], "x": 7, "y": 0},
+ {"matrix": [0, 8], "x": 8, "y": 0},
+ {"matrix": [0, 9], "x": 9, "y": 0},
+ {"matrix": [0, 10], "x": 10, "y": 0},
+ {"matrix": [0, 11], "x": 11, "y": 0},
+ {"matrix": [0, 12], "x": 12, "y": 0},
+ {"matrix": [0, 13], "x": 13, "y": 0, "w": 2},
+ {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
+ {"matrix": [1, 1], "x": 1.5, "y": 1},
+ {"matrix": [1, 2], "x": 2.5, "y": 1},
+ {"matrix": [1, 3], "x": 3.5, "y": 1},
+ {"matrix": [1, 4], "x": 4.5, "y": 1},
+ {"matrix": [1, 5], "x": 5.5, "y": 1},
+ {"matrix": [1, 6], "x": 6.5, "y": 1},
+ {"matrix": [1, 7], "x": 7.5, "y": 1},
+ {"matrix": [1, 8], "x": 8.5, "y": 1},
+ {"matrix": [1, 9], "x": 9.5, "y": 1},
+ {"matrix": [1, 10], "x": 10.5, "y": 1},
+ {"matrix": [1, 11], "x": 11.5, "y": 1},
+ {"matrix": [1, 12], "x": 12.5, "y": 1},
+ {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5},
+ {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
+ {"matrix": [2, 1], "x": 1.75, "y": 2},
+ {"matrix": [2, 2], "x": 2.75, "y": 2},
+ {"matrix": [2, 3], "x": 3.75, "y": 2},
+ {"matrix": [2, 4], "x": 4.75, "y": 2},
+ {"matrix": [2, 5], "x": 5.75, "y": 2},
+ {"matrix": [2, 6], "x": 6.75, "y": 2},
+ {"matrix": [2, 7], "x": 7.75, "y": 2},
+ {"matrix": [2, 8], "x": 8.75, "y": 2},
+ {"matrix": [2, 9], "x": 9.75, "y": 2},
+ {"matrix": [2, 10], "x": 10.75, "y": 2},
+ {"matrix": [2, 11], "x": 11.75, "y": 2},
+ {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25},
+ {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25},
+ {"matrix": [3, 1], "x": 2.25, "y": 3},
+ {"matrix": [3, 2], "x": 3.25, "y": 3},
+ {"matrix": [3, 3], "x": 4.25, "y": 3},
+ {"matrix": [3, 4], "x": 5.25, "y": 3},
+ {"matrix": [3, 6], "x": 6.25, "y": 3},
+ {"matrix": [4, 6], "x": 7.25, "y": 3},
+ {"matrix": [3, 7], "x": 8.25, "y": 3},
+ {"matrix": [3, 8], "x": 9.25, "y": 3},
+ {"matrix": [3, 9], "x": 10.25, "y": 3},
+ {"matrix": [3, 10], "x": 11.25, "y": 3},
+ {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 2.75},
+ {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25},
+ {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25},
+ {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25},
+ {"matrix": [4, 4], "x": 3.75, "y": 4, "w": 2.6},
+ {"matrix": [4, 5], "x": 6.35, "y": 4, "w": 0.7},
+ {"matrix": [3, 5], "x": 7.15, "y": 4, "w": 1.5},
+ {"matrix": [4, 8], "x": 8.75, "y": 4, "w": 1.25},
+ {"matrix": [4, 9], "x": 10, "y": 4, "w": 1.25},
+ {"matrix": [4, 10], "x": 11.25, "y": 4, "w": 1.25},
+ {"matrix": [4, 11], "x": 12.5, "y": 4, "w": 1.25},
+ {"matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25}
+ ]
+ },
+ "LAYOUT_60_ansi": {
+ "layout": [
+ {"matrix": [0, 0], "x": 0, "y": 0, "w": 1},
+ {"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": [0, 6], "x": 6, "y": 0},
+ {"matrix": [0, 7], "x": 7, "y": 0},
+ {"matrix": [0, 8], "x": 8, "y": 0},
+ {"matrix": [0, 9], "x": 9, "y": 0},
+ {"matrix": [0, 10], "x": 10, "y": 0},
+ {"matrix": [0, 11], "x": 11, "y": 0},
+ {"matrix": [0, 12], "x": 12, "y": 0},
+ {"matrix": [0, 13], "x": 13, "y": 0, "w": 2},
+ {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
+ {"matrix": [1, 1], "x": 1.5, "y": 1},
+ {"matrix": [1, 2], "x": 2.5, "y": 1},
+ {"matrix": [1, 3], "x": 3.5, "y": 1},
+ {"matrix": [1, 4], "x": 4.5, "y": 1},
+ {"matrix": [1, 5], "x": 5.5, "y": 1},
+ {"matrix": [1, 6], "x": 6.5, "y": 1},
+ {"matrix": [1, 7], "x": 7.5, "y": 1},
+ {"matrix": [1, 8], "x": 8.5, "y": 1},
+ {"matrix": [1, 9], "x": 9.5, "y": 1},
+ {"matrix": [1, 10], "x": 10.5, "y": 1},
+ {"matrix": [1, 11], "x": 11.5, "y": 1},
+ {"matrix": [1, 12], "x": 12.5, "y": 1},
+ {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5},
+ {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
+ {"matrix": [2, 1], "x": 1.75, "y": 2},
+ {"matrix": [2, 2], "x": 2.75, "y": 2},
+ {"matrix": [2, 3], "x": 3.75, "y": 2},
+ {"matrix": [2, 4], "x": 4.75, "y": 2},
+ {"matrix": [2, 5], "x": 5.75, "y": 2},
+ {"matrix": [2, 6], "x": 6.75, "y": 2},
+ {"matrix": [2, 7], "x": 7.75, "y": 2},
+ {"matrix": [2, 8], "x": 8.75, "y": 2},
+ {"matrix": [2, 9], "x": 9.75, "y": 2},
+ {"matrix": [2, 10], "x": 10.75, "y": 2},
+ {"matrix": [2, 11], "x": 11.75, "y": 2},
+ {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25},
+ {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25},
+ {"matrix": [3, 1], "x": 2.25, "y": 3},
+ {"matrix": [3, 2], "x": 3.25, "y": 3},
+ {"matrix": [3, 3], "x": 4.25, "y": 3},
+ {"matrix": [3, 4], "x": 5.25, "y": 3},
+ {"matrix": [3, 6], "x": 6.25, "y": 3},
+ {"matrix": [4, 6], "x": 7.25, "y": 3},
+ {"matrix": [3, 7], "x": 8.25, "y": 3},
+ {"matrix": [3, 8], "x": 9.25, "y": 3},
+ {"matrix": [3, 9], "x": 10.25, "y": 3},
+ {"matrix": [3, 10], "x": 11.25, "y": 3},
+ {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 2.75},
+ {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25},
+ {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25},
+ {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25},
+ {"matrix": [4, 5], "x": 3.75, "y": 4, "w": 6.25},
+ {"matrix": [4, 9], "x": 10, "y": 4, "w": 1.25},
+ {"matrix": [4, 10], "x": 11.25, "y": 4, "w": 1.25},
+ {"matrix": [4, 11], "x": 12.5, "y": 4, "w": 1.25},
+ {"matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25}
+ ]
+ },
+ "LAYOUT_60_ansi_split_space": {
+ "layout": [
+ {"matrix": [0, 0], "x": 0, "y": 0, "w": 1},
+ {"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": [0, 6], "x": 6, "y": 0},
+ {"matrix": [0, 7], "x": 7, "y": 0},
+ {"matrix": [0, 8], "x": 8, "y": 0},
+ {"matrix": [0, 9], "x": 9, "y": 0},
+ {"matrix": [0, 10], "x": 10, "y": 0},
+ {"matrix": [0, 11], "x": 11, "y": 0},
+ {"matrix": [0, 12], "x": 12, "y": 0},
+ {"matrix": [0, 13], "x": 13, "y": 0, "w": 2},
+ {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
+ {"matrix": [1, 1], "x": 1.5, "y": 1},
+ {"matrix": [1, 2], "x": 2.5, "y": 1},
+ {"matrix": [1, 3], "x": 3.5, "y": 1},
+ {"matrix": [1, 4], "x": 4.5, "y": 1},
+ {"matrix": [1, 5], "x": 5.5, "y": 1},
+ {"matrix": [1, 6], "x": 6.5, "y": 1},
+ {"matrix": [1, 7], "x": 7.5, "y": 1},
+ {"matrix": [1, 8], "x": 8.5, "y": 1},
+ {"matrix": [1, 9], "x": 9.5, "y": 1},
+ {"matrix": [1, 10], "x": 10.5, "y": 1},
+ {"matrix": [1, 11], "x": 11.5, "y": 1},
+ {"matrix": [1, 12], "x": 12.5, "y": 1},
+ {"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5},
+ {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
+ {"matrix": [2, 1], "x": 1.75, "y": 2},
+ {"matrix": [2, 2], "x": 2.75, "y": 2},
+ {"matrix": [2, 3], "x": 3.75, "y": 2},
+ {"matrix": [2, 4], "x": 4.75, "y": 2},
+ {"matrix": [2, 5], "x": 5.75, "y": 2},
+ {"matrix": [2, 6], "x": 6.75, "y": 2},
+ {"matrix": [2, 7], "x": 7.75, "y": 2},
+ {"matrix": [2, 8], "x": 8.75, "y": 2},
+ {"matrix": [2, 9], "x": 9.75, "y": 2},
+ {"matrix": [2, 10], "x": 10.75, "y": 2},
+ {"matrix": [2, 11], "x": 11.75, "y": 2},
+ {"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25},
+ {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25},
+ {"matrix": [3, 1], "x": 2.25, "y": 3},
+ {"matrix": [3, 2], "x": 3.25, "y": 3},
+ {"matrix": [3, 3], "x": 4.25, "y": 3},
+ {"matrix": [3, 4], "x": 5.25, "y": 3},
+ {"matrix": [3, 6], "x": 6.25, "y": 3},
+ {"matrix": [4, 6], "x": 7.25, "y": 3},
+ {"matrix": [3, 7], "x": 8.25, "y": 3},
+ {"matrix": [3, 8], "x": 9.25, "y": 3},
+ {"matrix": [3, 9], "x": 10.25, "y": 3},
+ {"matrix": [3, 10], "x": 11.25, "y": 3},
+ {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 2.75},
+ {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25},
+ {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25},
+ {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25},
+ {"matrix": [4, 4], "x": 3.75, "y": 4, "w": 2.5},
+ {"matrix": [3, 5], "x": 6.25, "y": 4, "w": 2.5},
+ {"matrix": [4, 8], "x": 8.75, "y": 4, "w": 1.25},
+ {"matrix": [4, 9], "x": 10, "y": 4, "w": 1.25},
+ {"matrix": [4, 10], "x": 11.25, "y": 4, "w": 1.25},
+ {"matrix": [4, 11], "x": 12.5, "y": 4, "w": 1.25},
+ {"matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25}
+ ]
+ }
+ }
+
+}
+
diff --git a/keyboards/skyloong/gk61/v1/keymaps/default/keymap.c b/keyboards/skyloong/gk61/v1/keymaps/default/keymap.c
new file mode 100644
index 0000000000..4ddb35f6f4
--- /dev/null
+++ b/keyboards/skyloong/gk61/v1/keymaps/default/keymap.c
@@ -0,0 +1,47 @@
+/* Copyright 2021 JZ-Skyloong (@JZ-Skyloong)
+ *
+ * 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
+
+// Defines names for use in layer keycodes and the keymap
+enum layer_names {
+ _BASE,
+ _FN,
+};
+
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ /* Base */
+ [_BASE] = LAYOUT_all(
+ KC_GRAVE, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINUS, KC_EQUAL, 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_LBRC, KC_RBRC, KC_BSLS,
+ KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
+ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM , KC_DOT, KC_SLASH, KC_RSFT,
+ KC_LCTL, KC_LWIN, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_APP, KC_RCTL, MO(1)
+ ),
+ /* Fn+ */
+ [_FN] = LAYOUT_all(
+ 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,
+ RGB_TOG, RGB_VAD, RGB_VAI, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_VOLD, KC_VOLU, KC_MUTE,
+ RGB_MOD, RGB_M_P, RGB_M_B, RGB_M_R, RGB_M_SW, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_MPRV, KC_MNXT, KC_MPLY,
+ KC_LSFT, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_UP, KC_UP, KC_RSFT,
+ KC_CALC, KC_MAIL, KC_NO, KC_SPC, KC_SPC, KC_SPC, KC_LEFT, KC_LEFT, KC_DOWN, KC_RGHT, KC_NO
+ ),
+
+};
+
+
diff --git a/keyboards/skyloong/gk61/v1/keymaps/via/keymap.c b/keyboards/skyloong/gk61/v1/keymaps/via/keymap.c
new file mode 100644
index 0000000000..4ddb35f6f4
--- /dev/null
+++ b/keyboards/skyloong/gk61/v1/keymaps/via/keymap.c
@@ -0,0 +1,47 @@
+/* Copyright 2021 JZ-Skyloong (@JZ-Skyloong)
+ *
+ * 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
+
+// Defines names for use in layer keycodes and the keymap
+enum layer_names {
+ _BASE,
+ _FN,
+};
+
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ /* Base */
+ [_BASE] = LAYOUT_all(
+ KC_GRAVE, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINUS, KC_EQUAL, 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_LBRC, KC_RBRC, KC_BSLS,
+ KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
+ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM , KC_DOT, KC_SLASH, KC_RSFT,
+ KC_LCTL, KC_LWIN, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_APP, KC_RCTL, MO(1)
+ ),
+ /* Fn+ */
+ [_FN] = LAYOUT_all(
+ 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,
+ RGB_TOG, RGB_VAD, RGB_VAI, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_VOLD, KC_VOLU, KC_MUTE,
+ RGB_MOD, RGB_M_P, RGB_M_B, RGB_M_R, RGB_M_SW, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_MPRV, KC_MNXT, KC_MPLY,
+ KC_LSFT, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_UP, KC_UP, KC_RSFT,
+ KC_CALC, KC_MAIL, KC_NO, KC_SPC, KC_SPC, KC_SPC, KC_LEFT, KC_LEFT, KC_DOWN, KC_RGHT, KC_NO
+ ),
+
+};
+
+
diff --git a/keyboards/keychron/v2/ansi/keymaps/vnmm/rules.mk b/keyboards/skyloong/gk61/v1/keymaps/via/rules.mk
index 1e5b99807c..1e5b99807c 100644
--- a/keyboards/keychron/v2/ansi/keymaps/vnmm/rules.mk
+++ b/keyboards/skyloong/gk61/v1/keymaps/via/rules.mk
diff --git a/keyboards/skyloong/gk61/v1/mcuconf.h b/keyboards/skyloong/gk61/v1/mcuconf.h
new file mode 100644
index 0000000000..92905e0b11
--- /dev/null
+++ b/keyboards/skyloong/gk61/v1/mcuconf.h
@@ -0,0 +1,21 @@
+/* Copyright 2021 JZ-Skyloong (@JZ-Skyloong)
+ *
+ * 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_next <mcuconf.h>
+
+#undef STM32_I2C_USE_I2C1
+#define STM32_I2C_USE_I2C1 TRUE
diff --git a/keyboards/skyloong/gk61/v1/readme.md b/keyboards/skyloong/gk61/v1/readme.md
new file mode 100644
index 0000000000..95917ad957
--- /dev/null
+++ b/keyboards/skyloong/gk61/v1/readme.md
@@ -0,0 +1,33 @@
+# GK61
+
+![GK61](https://i.imgur.com/hEufouph.jpg)
+
+## The PCB features:
+* QMK & VIA compatibility
+* RGB Matrix backlight
+
+
+The following is the QMK Firmware for the Destop 60% keylayout - designed in Dongguan Jizhi Electronic Technology Co., Ltd
+* Keyboard Maintainer: [JZ-Skyloong](https://github.com/JZ-Skyloong)
+* Hardware Supported: DestopPCB for Skyloong keylayout 60%, STM32F103C8T6
+* Hardware Availability: http://www.skyloong.com.cn
+
+Make example for this keyboard (after setting up your build environment):
+
+ make skyloong/gk61/v1:default
+ make skyloong/gk61/v1:via
+
+Flashing example for this keyboard:
+
+ make skyloong/gk61/v1:default:flash
+ make skyloong/gk61/v1:via: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 (usually the top left key or Escape) and plug in the keyboard
+* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead
+* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available
diff --git a/keyboards/skyloong/gk61/v1/rules.mk b/keyboards/skyloong/gk61/v1/rules.mk
new file mode 100644
index 0000000000..6e7633bfe0
--- /dev/null
+++ b/keyboards/skyloong/gk61/v1/rules.mk
@@ -0,0 +1 @@
+# This file intentionally left blank
diff --git a/keyboards/skyloong/gk61/v1/v1.c b/keyboards/skyloong/gk61/v1/v1.c
new file mode 100644
index 0000000000..cb3772f6b4
--- /dev/null
+++ b/keyboards/skyloong/gk61/v1/v1.c
@@ -0,0 +1,119 @@
+/* Copyright 2021 JZ-Skyloong (@JZ-Skyloong)
+ *
+ * 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 RGB_MATRIX_ENABLE
+
+const snled27351_led_t PROGMEM g_snled27351_leds[RGB_MATRIX_LED_COUNT] = {
+/* Refer to SNLED27351 manual for these locations
+ * driver
+ * | R location
+ * | | G location
+ * | | | B location
+ * | | | | */
+ {0, C_1, B_1, A_1},
+ {0, C_2, B_2, A_2},
+ {0, C_3, B_3, A_3},
+ {0, C_4, B_4, A_4},
+ {0, C_5, B_5, A_5},
+ {0, C_6, B_6, A_6},
+ {0, C_7, B_7, A_7},
+ {0, C_8, B_8, A_8},
+ {0, C_9, B_9, A_9},
+ {0, C_10, B_10, A_10},
+ {0, C_11, B_11, A_11},
+ {0, C_12, B_12, A_12},
+ {0, C_13, B_13, A_13},
+ {0, C_14, B_14, A_14},
+
+
+ {0, F_1, E_1, D_1},
+ {0, F_2, E_2, D_2},
+ {0, F_3, E_3, D_3},
+ {0, F_4, E_4, D_4},
+ {0, F_5, E_5, D_5},
+ {0, F_6, E_6, D_6},
+ {0, F_7, E_7, D_7},
+ {0, F_8, E_8, D_8},
+ {0, F_9, E_9, D_9},
+ {0, F_10, E_10, D_10},
+ {0, F_11, E_11, D_11},
+ {0, F_12, E_12, D_12},
+ {0, F_13, E_13, D_13},
+ {0, F_14, E_14, D_14},
+
+
+ {0, I_1, H_1, G_1},
+ {0, I_2, H_2, G_2},
+ {0, I_3, H_3, G_3},
+ {0, I_4, H_4, G_4},
+ {0, I_5, H_5, G_5},
+ {0, I_6, H_6, G_6},
+ {0, I_7, H_7, G_7},
+ {0, I_8, H_8, G_8},
+ {0, I_9, H_9, G_9},
+ {0, I_10, H_10, G_10},
+ {0, I_11, H_11, G_11},
+ {0, I_12, H_12, G_12},
+ {0, I_13, H_13, G_13},
+
+
+
+ {0, L_1, K_1, J_1},
+ {0, L_2, K_2, J_2},
+ {0, L_3, K_3, J_3},
+ {0, L_4, K_4, J_4},
+ {0, L_5, K_5, J_5},
+ {0, L_6, K_6, J_6},
+ {0, L_7, K_7, J_7},
+ {0, L_8, K_8, J_8},
+ {0, L_9, K_9, J_9},
+ {0, L_10, K_10, J_10},
+ {0, L_11, K_11, J_11},
+ {0, L_13, K_13, J_13},
+
+ {0, L_15, K_15, J_15},
+ {0, L_16, K_16, J_16},
+ {0, I_15, H_15, G_15},
+ {0, I_16, H_16, G_16},
+ {0, F_15, E_15, D_15},
+ {0, F_16, E_16, D_16},
+ {0, C_15, B_15, A_15},
+ {0, C_16, B_16, A_16},
+ {0, I_14, H_14, G_14},
+ {0, L_12, K_12, J_12},
+ {0, L_14, K_14, J_14},
+
+
+};
+#endif // RGB_MATRIX_ENABLE
+
+void suspend_power_down_kb() {
+ writePinLow(SDB);
+
+ suspend_power_down_user();
+}
+
+void suspend_wakeup_init_kb() {
+ writePinHigh(SDB);
+
+ suspend_wakeup_init_user();
+}
+
+void board_init(void) {
+ setPinOutput(SDB);
+ writePinHigh(SDB);
+}
diff --git a/keyboards/skyloong/qk21/v1/config.h b/keyboards/skyloong/qk21/v1/config.h
new file mode 100644
index 0000000000..c74d5cce78
--- /dev/null
+++ b/keyboards/skyloong/qk21/v1/config.h
@@ -0,0 +1,12 @@
+// Copyright 2021 JZ-Skyloong (@JZ-Skyloong)
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#pragma once
+
+/* Enable num-lock LED */
+#define NUM_LOCK_INDEX 13
+
+#define RGB_MATRIX_LED_COUNT 21
+#define RGB_MATRIX_FRAMEBUFFER_EFFECTS //Enable frame effects
+#define RGB_MATRIX_KEYPRESSES //Reacts to keypress
+#define RGB_DISABLE_WHEN_USB_SUSPENDED //turn off effects when suspended
diff --git a/keyboards/skyloong/qk21/v1/info.json b/keyboards/skyloong/qk21/v1/info.json
new file mode 100644
index 0000000000..d5aa5e8be9
--- /dev/null
+++ b/keyboards/skyloong/qk21/v1/info.json
@@ -0,0 +1,129 @@
+{
+ "manufacturer": "JZ-Skyloong",
+ "keyboard_name": "qk21",
+ "maintainer": "linlin012",
+ "bootloader": "atmel-dfu",
+ "diode_direction": "ROW2COL",
+ "features": {
+ "bootmagic": true,
+ "command": false,
+ "console": false,
+ "extrakey": true,
+ "mousekey": true,
+ "nkro": true,
+ "rgb_matrix": true
+ },
+ "matrix_pins": {
+ "cols": ["F7", "E6", "C7", "D5"],
+ "rows": ["F0", "F1", "F4", "F5", "F6", "B4"]
+ },
+ "processor": "atmega32u4",
+ "ws2812": {
+ "pin": "B7"
+ },
+ "rgb_matrix":{
+ "driver": "ws2812",
+ "animations": {
+ "alphas_mods": false,
+ "band_pinwheel_sat": false,
+ "band_pinwheel_val": false,
+ "band_sat": false,
+ "band_spiral_sat": false,
+ "band_spiral_val": false,
+ "breathing": true,
+ "cycle_all": true,
+ "cycle_left_right": false,
+ "cycle_out_in": false,
+ "cycle_out_in_dual": false,
+ "cycle_pinwheel": true,
+ "cycle_spiral": true,
+ "cycle_up_down": true,
+ "dual_beacom": false,
+ "gradient_left_right": false,
+ "gradient_up_down": false,
+ "hue_breathing": false,
+ "hue_pendulum": false,
+ "hue_wave": false,
+ "jellybean_raindrops": true,
+ "pixel_fractal": false,
+ "pixel_rain": true,
+ "rainbow_moving_chevron":false,
+ "rainbow_pinwheels": true,
+ "raindrops": true,
+ "ranbow_beacon": true,
+ "typing_heatmap": true,
+ "solid_reactive_simple": true,
+ "solid_reactive_cross": true,
+ "splash": true
+ },
+ "layout": [
+ {"matrix": [5, 0], "x": 37, "y": 64, "flags": 4},
+ {"matrix": [5, 2], "x": 149, "y": 64, "flags": 4},
+ {"matrix": [5, 3], "x": 224, "y": 58, "flags": 4},
+
+ {"matrix": [4, 0], "x": 0, "y": 51, "flags": 4},
+ {"matrix": [4, 1], "x": 75, "y": 51, "flags": 4},
+ {"matrix": [4, 2], "x": 149, "y": 51, "flags": 4},
+
+ {"matrix": [3, 0], "x": 0, "y": 38, "flags": 4},
+ {"matrix": [3, 1], "x": 75, "y": 38, "flags": 4},
+ {"matrix": [3, 2], "x": 149, "y": 38, "flags": 4},
+ {"matrix": [3, 3], "x": 224, "y": 31, "flags": 4},
+
+ {"matrix": [2, 0], "x": 0, "y": 25, "flags": 4},
+ {"matrix": [2, 1], "x": 75, "y": 25, "flags": 4},
+ {"matrix": [2, 2], "x": 149, "y": 25, "flags": 4},
+
+ {"matrix": [1, 0], "x": 0, "y": 12, "flags": 8},
+ {"matrix": [1, 1], "x": 75, "y": 12, "flags": 4},
+ {"matrix": [1, 2], "x": 149, "y": 12, "flags": 4},
+ {"matrix": [1, 3], "x": 224, "y": 12, "flags": 4},
+
+ {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4},
+ {"matrix": [0, 1], "x": 75, "y": 0, "flags": 4},
+ {"matrix": [0, 2], "x": 149, "y": 0, "flags": 4},
+ {"matrix": [0, 3], "x": 224, "y": 0, "flags": 4}
+
+ ],
+ "hue_steps": 20,
+ "max_brightness": 200,
+ "sat_steps": 20,
+ "speed_steps": 20,
+ "val_steps": 20
+ },
+ "url": "https://github.com/JZ-Skyloong",
+ "usb": {
+ "device_version": "1.0.0",
+ "pid": "0x6021",
+ "vid": "0x1EA7",
+ "max_power": 250
+ },
+ "community_layouts": ["numpad_6x4"],
+ "layouts": {
+ "LAYOUT_numpad_6x4": {
+ "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": [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": [2, 0], "x": 0, "y": 2 },
+ { "matrix": [2, 1], "x": 1, "y": 2 },
+ { "matrix": [2, 2], "x": 2, "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": 2, "h": 2 },
+ { "matrix": [4, 0], "x": 0, "y": 4 },
+ { "matrix": [4, 1], "x": 1, "y": 4 },
+ { "matrix": [4, 2], "x": 2, "y": 4 },
+ { "matrix": [5, 0], "x": 0, "y": 5, "w": 2 },
+ { "matrix": [5, 2], "x": 2, "y": 5 },
+ { "matrix": [5, 3], "x": 3, "y": 4, "h": 2 }
+ ]
+ }
+ }
+}
diff --git a/keyboards/skyloong/qk21/v1/keymaps/default/keymap.c b/keyboards/skyloong/qk21/v1/keymaps/default/keymap.c
new file mode 100644
index 0000000000..8cb1d20085
--- /dev/null
+++ b/keyboards/skyloong/qk21/v1/keymaps/default/keymap.c
@@ -0,0 +1,54 @@
+// Copyright 2023 QMK
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#include QMK_KEYBOARD_H
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ /*
+ * ┌───┬───┬───┬───┐
+ * │Esc│Tab│MO1│Bsp│
+ * ├───┼───┼───┼───┤
+ * │Num│ / │ * │ - │
+ * ├───┼───┼───┼───┤
+ * │ 7 │ 8 │ 9 │ │
+ * ├───┼───┼───┤ + │
+ * │ 4 │ 5 │ 6 │ │
+ * ├───┼───┼───┼───┤
+ * │ 1 │ 2 │ 3 │ │
+ * ├───┴───┼───┤Ent│
+ * │ 0 │ . │ │
+ * └───────┴───┴───┘
+ */
+ [0] = LAYOUT_numpad_6x4(
+ KC_ESC, KC_TAB, MO(1), KC_BSPC,
+ KC_NUM, KC_PSLS, KC_PAST, KC_PMNS,
+ KC_P7, KC_P8, KC_P9,
+ KC_P4, KC_P5, KC_P6, KC_PPLS,
+ KC_P1, KC_P2, KC_P3,
+ KC_P0, KC_PDOT, KC_PENT
+ ),
+
+ /*
+ * ┌───┐───┬───┬───┐
+ * │Rst│MOD│MO1│Bsp│
+ * └───┘───┼───┼───┤
+ * │Num│HUD│HUI│VAD│
+ * ┌───┬───┬───┐───┤
+ * │Hom│ ↑ │PgU│ │
+ * ├───┼───┼───┤VAI│
+ * │ ← │ │ → │ │
+ * ├───┼───┼───┤───┤
+ * │End│ ↓ │PgD│ │
+ * ├───┴───┼───┤TOG│
+ * │Insert │Del│ │
+ * └───────┴───┘───┘
+ */
+ [1] = LAYOUT_numpad_6x4(
+ QK_BOOT, RGB_MOD, _______, _______,
+ _______, RGB_HUD, RGB_HUI, RGB_VAD,
+ KC_HOME, KC_UP, KC_PGUP,
+ KC_LEFT, RGB_M_SW, KC_RGHT, RGB_VAI,
+ KC_END, KC_DOWN, KC_PGDN,
+ KC_INS, KC_DEL, RGB_TOG
+ )
+};
diff --git a/keyboards/skyloong/qk21/v1/keymaps/via/keymap.c b/keyboards/skyloong/qk21/v1/keymaps/via/keymap.c
new file mode 100644
index 0000000000..8cb1d20085
--- /dev/null
+++ b/keyboards/skyloong/qk21/v1/keymaps/via/keymap.c
@@ -0,0 +1,54 @@
+// Copyright 2023 QMK
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#include QMK_KEYBOARD_H
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ /*
+ * ┌───┬───┬───┬───┐
+ * │Esc│Tab│MO1│Bsp│
+ * ├───┼───┼───┼───┤
+ * │Num│ / │ * │ - │
+ * ├───┼───┼───┼───┤
+ * │ 7 │ 8 │ 9 │ │
+ * ├───┼───┼───┤ + │
+ * │ 4 │ 5 │ 6 │ │
+ * ├───┼───┼───┼───┤
+ * │ 1 │ 2 │ 3 │ │
+ * ├───┴───┼───┤Ent│
+ * │ 0 │ . │ │
+ * └───────┴───┴───┘
+ */
+ [0] = LAYOUT_numpad_6x4(
+ KC_ESC, KC_TAB, MO(1), KC_BSPC,
+ KC_NUM, KC_PSLS, KC_PAST, KC_PMNS,
+ KC_P7, KC_P8, KC_P9,
+ KC_P4, KC_P5, KC_P6, KC_PPLS,
+ KC_P1, KC_P2, KC_P3,
+ KC_P0, KC_PDOT, KC_PENT
+ ),
+
+ /*
+ * ┌───┐───┬───┬───┐
+ * │Rst│MOD│MO1│Bsp│
+ * └───┘───┼───┼───┤
+ * │Num│HUD│HUI│VAD│
+ * ┌───┬───┬───┐───┤
+ * │Hom│ ↑ │PgU│ │
+ * ├───┼───┼───┤VAI│
+ * │ ← │ │ → │ │
+ * ├───┼───┼───┤───┤
+ * │End│ ↓ │PgD│ │
+ * ├───┴───┼───┤TOG│
+ * │Insert │Del│ │
+ * └───────┴───┘───┘
+ */
+ [1] = LAYOUT_numpad_6x4(
+ QK_BOOT, RGB_MOD, _______, _______,
+ _______, RGB_HUD, RGB_HUI, RGB_VAD,
+ KC_HOME, KC_UP, KC_PGUP,
+ KC_LEFT, RGB_M_SW, KC_RGHT, RGB_VAI,
+ KC_END, KC_DOWN, KC_PGDN,
+ KC_INS, KC_DEL, RGB_TOG
+ )
+};
diff --git a/keyboards/mlego/m65/keymaps/via/rules.mk b/keyboards/skyloong/qk21/v1/keymaps/via/rules.mk
index 1e5b99807c..1e5b99807c 100644
--- a/keyboards/mlego/m65/keymaps/via/rules.mk
+++ b/keyboards/skyloong/qk21/v1/keymaps/via/rules.mk
diff --git a/keyboards/skyloong/qk21/v1/readme.md b/keyboards/skyloong/qk21/v1/readme.md
new file mode 100644
index 0000000000..871a819f66
--- /dev/null
+++ b/keyboards/skyloong/qk21/v1/readme.md
@@ -0,0 +1,27 @@
+# qk21_V1
+
+![qk21](https://i.imgur.com/d65CJC5h.jpg)
+
+The following is the QMK Firmware for the number pad 6x4 keylayout - designed in Dongguan Jizhi Electronic Technology Co., Ltd
+
+* Keyboard Maintainer: [linlin012](https://github.com/linlin012)
+* Hardware Supported: JK172-RGB(4028)-U PCBs, MEGA32U4-MU
+* Hardware Availability: http://www.skyloong.com.cn
+
+Make example for this keyboard (after setting up your build environment):
+
+ make skyloong/qk21/v1:default
+
+Flashing example for this keyboard:
+
+ make skyloong/qk21/v1: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 (usually the top left key or Escape) and plug in the keyboard
+* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead
+* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available
diff --git a/keyboards/skyloong/qk21/v1/rules.mk b/keyboards/skyloong/qk21/v1/rules.mk
new file mode 100644
index 0000000000..6e7633bfe0
--- /dev/null
+++ b/keyboards/skyloong/qk21/v1/rules.mk
@@ -0,0 +1 @@
+# This file intentionally left blank
diff --git a/keyboards/skyloong/qk21/v1/v1.c b/keyboards/skyloong/qk21/v1/v1.c
new file mode 100644
index 0000000000..9630d3e223
--- /dev/null
+++ b/keyboards/skyloong/qk21/v1/v1.c
@@ -0,0 +1,49 @@
+// Copyright 2021 JZ-Skyloong (@JZ-Skyloong)
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#include "quantum.h"
+
+#if defined(RGB_MATRIX_ENABLE) && defined(NUM_LOCK_INDEX)
+
+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 RGB_TOG:
+ if (record->event.pressed) {
+ switch (rgb_matrix_get_flags()) {
+ case LED_FLAG_ALL: {
+ rgb_matrix_set_flags(LED_FLAG_NONE);
+ rgb_matrix_set_color_all(0, 0, 0);
+ } break;
+ default: {
+ rgb_matrix_set_flags(LED_FLAG_ALL);
+ } break;
+ }
+ }
+ return false;
+# endif
+ }
+ return true;
+}
+
+bool rgb_matrix_indicators_advanced_kb(uint8_t led_min, uint8_t led_max) {
+ if (!rgb_matrix_indicators_advanced_user(led_min, led_max)) {
+ return false;
+ }
+ // RGB_MATRIX_INDICATOR_SET_COLOR(index, red, green, blue);
+
+ if (host_keyboard_led_state().num_lock) {
+ RGB_MATRIX_INDICATOR_SET_COLOR(NUM_LOCK_INDEX, 255, 255, 255);
+ } else {
+ if (!rgb_matrix_get_flags()) {
+ RGB_MATRIX_INDICATOR_SET_COLOR(NUM_LOCK_INDEX, 0, 0, 0);
+ }
+ }
+ return true;
+}
+
+#endif // NUM_LOCK_INDEX
+
diff --git a/keyboards/smallkeyboard/config.h b/keyboards/smallkeyboard/config.h
index 4bee1c3663..d98a2b6ef2 100644
--- a/keyboards/smallkeyboard/config.h
+++ b/keyboards/smallkeyboard/config.h
@@ -66,15 +66,7 @@
// #define ENABLE_RGB_MATRIX_SOLID_SPLASH
// #define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH
-// This is a 7-bit address, that gets left-shifted and bit 0
-// set to 0 for write, 1 for read (as per I2C protocol)
-// The address will vary depending on your wiring:
-// 0b1110100 AD <-> GND
-// 0b1110111 AD <-> VCC
-// 0b1110101 AD <-> SCL
-// 0b1110110 AD <-> SDA
-#define DRIVER_ADDR_1 0b1110100
+#define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND
-#define DRIVER_COUNT 1
#define RGB_MATRIX_LED_COUNT 6
#endif
diff --git a/keyboards/smallkeyboard/smallkeyboard.c b/keyboards/smallkeyboard/smallkeyboard.c
index 7ea6f2c40a..ce79c7df5d 100644
--- a/keyboards/smallkeyboard/smallkeyboard.c
+++ b/keyboards/smallkeyboard/smallkeyboard.c
@@ -17,7 +17,7 @@
#ifdef RGB_MATRIX_ENABLE
-const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = {
+const is31fl3731_led_t PROGMEM g_is31fl3731_leds[RGB_MATRIX_LED_COUNT] = {
/* Refer to IS31 manual for these locations
* driver
* | R location
diff --git a/keyboards/smithrune/iron165r2/f411/info.json b/keyboards/smithrune/iron165r2/f411/info.json
index c499958255..72547e955e 100644
--- a/keyboards/smithrune/iron165r2/f411/info.json
+++ b/keyboards/smithrune/iron165r2/f411/info.json
@@ -1,4 +1,7 @@
{
+ "eeprom": {
+ "driver": "i2c"
+ },
"backlight": {
"pin": "A6",
"levels": 20,
diff --git a/keyboards/smithrune/iron165r2/f411/rules.mk b/keyboards/smithrune/iron165r2/f411/rules.mk
index e38a7a71b3..f5a58ab0cb 100644
--- a/keyboards/smithrune/iron165r2/f411/rules.mk
+++ b/keyboards/smithrune/iron165r2/f411/rules.mk
@@ -11,6 +11,4 @@ RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
AUDIO_ENABLE = no # Audio output
LTO_ENABLE = no
ENCODER_ENABLE = no
-EEPROM_DRIVER = i2c
BACKLIGHT_ENABLE = yes
-
diff --git a/keyboards/snes_macropad/snes_macropad.c b/keyboards/snes_macropad/snes_macropad.c
index ba4ce44bd1..1dcfda33ec 100644
--- a/keyboards/snes_macropad/snes_macropad.c
+++ b/keyboards/snes_macropad/snes_macropad.c
@@ -84,22 +84,14 @@ static void setupForFlashing(void) {
oled_write(" ", false);
oled_write(" ", false);
- // QMK is clever about only rendering a certain number of chunks per frame,
- // but since the device will go into flash mode right after this call,
- // we want to override this behavior and force all the chunks to be sent to
- // the display immediately.
- const size_t numIterations = OLED_DISPLAY_WIDTH * OLED_DISPLAY_HEIGHT / OLED_UPDATE_PROCESS_LIMIT;
- for (size_t num = 0; num < numIterations; ++num) {
- oled_render();
- }
- // todo: Replace the above hack with this, once develop branch is merged at the end of November 2023
- // oled_render_dirty(true);
+ // Force data to be rendered
+ oled_render_dirty(true);
// Set alternating backlight colors
const uint8_t max = 20;
rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_LIGHT);
for (size_t i = 0; i < RGBLED_NUM; ++i) {
- LED_TYPE *led_ = (LED_TYPE *)&led[i];
+ rgb_led_t *led_ = (rgb_led_t *)&led[i];
switch (i % 2) {
case 0:
setrgb(max, 0, max, led_);
diff --git a/keyboards/soda/mango/info.json b/keyboards/soda/mango/info.json
deleted file mode 100644
index 9de040efba..0000000000
--- a/keyboards/soda/mango/info.json
+++ /dev/null
@@ -1,124 +0,0 @@
-{
- "manufacturer": "Soda",
- "keyboard_name": "Mango",
- "url": "https://github.com/gezhaoyou",
- "maintainer": "JeayoKeh",
- "diode_direction": "ROW2COL",
- "processor": "STM32F072",
- "bootloader": "stm32-dfu",
- "matrix_pins": {
- "cols": ["A6", "A5", "A4", "A3"],
- "rows": ["B10", "B2", "B1", "B0", "A7"]
- },
- "usb": {
- "device_version": "1.0.0",
- "force_nkro": true,
- "vid": "0x3A54",
- "pid": "0x4F5D"
- },
- "features": {
- "bootmagic": true,
- "extrakey": true,
- "mousekey": true,
- "nkro": true,
- "rgb_matrix": true
- },
- "ws2812": {
- "pin": "A2"
- },
- "rgb_matrix": {
- "animations": {
- "alphas_mods": true,
- "gradient_up_down": true,
- "gradient_left_right": true,
- "breathing": true,
- "band_sat": true,
- "band_val": true,
- "band_pinwheel_sat": true,
- "band_pinwheel_val": true,
- "band_spiral_sat": true,
- "band_spiral_val": true,
- "cycle_all": true,
- "cycle_left_right": true,
- "cycle_up_down": true,
- "cycle_out_in": true,
- "cycle_out_in_dual": true,
- "rainbow_moving_chevron": true,
- "cycle_pinwheel": true,
- "cycle_spiral": true,
- "dual_beacon": true,
- "rainbow_beacon": true,
- "rainbow_pinwheels": true,
- "raindrops": true,
- "jellybean_raindrops": true,
- "hue_breathing": true,
- "hue_pendulum": true,
- "hue_wave": true,
- "pixel_fractal": true,
- "pixel_flow": true,
- "pixel_rain": true,
- "typing_heatmap": true,
- "digital_rain": true,
- "solid_reactive_simple": true,
- "solid_reactive": true,
- "solid_reactive_wide": true,
- "solid_reactive_multiwide": true,
- "solid_reactive_cross": true,
- "solid_reactive_multicross": true,
- "solid_reactive_nexus": true,
- "solid_reactive_multinexus": true,
- "splash": true,
- "multisplash": true,
- "solid_splash": true,
- "solid_multisplash": true
- },
- "driver": "ws2812",
- "layout": [
- {"flags": 1, "matrix": [0, 0], "x": 0, "y": 0},
- {"flags": 1, "matrix": [0, 1], "x": 75, "y": 0},
- {"flags": 1, "matrix": [0, 2], "x": 150, "y": 0},
- {"flags": 1, "matrix": [0, 3], "x": 224, "y": 0},
- {"flags": 1, "matrix": [1, 0], "x": 0, "y": 16},
- {"flags": 1, "matrix": [1, 1], "x": 75, "y": 16},
- {"flags": 1, "matrix": [1, 2], "x": 150, "y": 16},
- {"flags": 1, "matrix": [2, 0], "x": 0, "y": 32},
- {"flags": 1, "matrix": [2, 1], "x": 75, "y": 32},
- {"flags": 1, "matrix": [2, 2], "x": 150, "y": 32},
- {"flags": 1, "matrix": [2, 3], "x": 224, "y": 24},
- {"flags": 1, "matrix": [3, 0], "x": 0, "y": 48},
- {"flags": 1, "matrix": [3, 1], "x": 75, "y": 48},
- {"flags": 1, "matrix": [3, 2], "x": 150, "y": 48},
- {"flags": 1, "matrix": [4, 0], "x": 32, "y": 64},
- {"flags": 1, "matrix": [4, 1], "x": 150, "y": 64},
- {"flags": 1, "matrix": [4, 2], "x": 224, "y": 64}
- ]
- },
- "indicators": {
- "caps_lock": "B15",
- "on_state": 0
- },
- "community_layouts": ["numpad_5x4"],
- "layouts": {
- "LAYOUT_numpad_5x4": {
- "layout": [
- {"label": "Num Lock", "matrix": [0, 0], "x": 0, "y": 0},
- {"label": "/", "matrix": [0, 1], "x": 1, "y": 0},
- {"label": "*", "matrix": [0, 2], "x": 2, "y": 0},
- {"label": "-", "matrix": [0, 3], "x": 3, "y": 0},
- {"label": "7", "matrix": [1, 0], "x": 0, "y": 1},
- {"label": "8", "matrix": [1, 1], "x": 1, "y": 1},
- {"label": "9", "matrix": [1, 2], "x": 2, "y": 1},
- {"label": "4", "matrix": [2, 0], "x": 0, "y": 2},
- {"label": "5", "matrix": [2, 1], "x": 1, "y": 2},
- {"label": "6", "matrix": [2, 2], "x": 2, "y": 2},
- {"h": 2, "label": "+", "matrix": [1, 3], "x": 3, "y": 1},
- {"label": "1", "matrix": [3, 0], "x": 0, "y": 3},
- {"label": "2", "matrix": [3, 1], "x": 1, "y": 3},
- {"label": "3", "matrix": [3, 2], "x": 2, "y": 3},
- {"label": "0", "matrix": [4, 0], "w": 2, "x": 0, "y": 4},
- {"label": ".", "matrix": [4, 2], "x": 2, "y": 4},
- {"h": 2, "label": "Enter", "matrix": [3, 3], "x": 3, "y": 3}
- ]
- }
- }
-}
diff --git a/keyboards/soda/mango/readme.md b/keyboards/soda/mango/readme.md
deleted file mode 100644
index 1a1eb6bccc..0000000000
--- a/keyboards/soda/mango/readme.md
+++ /dev/null
@@ -1,23 +0,0 @@
-# mango-17
-
-A customizable 17 keyboard, support both HOTSWAP and SOLDER.
-
-* Keyboard Maintainer: [gezhaoyou](https://github.com/gezhaoyou)
-* Hardware Supported: [gezhaoyou](https://github.com/gezhaoyou)
-
-Make example for this keyboard (after setting up your build environment):
-
- make soda/mango:default
-
-Flashing example for this keyboard:
-
- make soda/mango: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 2 ways:
-
-* **Physical reset button**: Briefly press the button: [boot] first, then press button: [reset] on the back of the PCB
-* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available
diff --git a/keyboards/soda/pocket/info.json b/keyboards/soda/pocket/info.json
deleted file mode 100644
index 9ae9f1b0de..0000000000
--- a/keyboards/soda/pocket/info.json
+++ /dev/null
@@ -1,78 +0,0 @@
-{
- "keyboard_name": "Pocket",
- "url": "",
- "maintainer": "qmk",
- "manufacturer": "gezhaoyou",
- "usb": {
- "vid": "0x1A53",
- "pid": "0x4F51",
- "device_version": "1.0.2",
- "force_nkro": true
- },
- "indicators": {
- "num_lock": "B15"
- },
- "ws2812": {
- "pin": "C15"
- },
- "rgb_matrix": {
- "driver": "ws2812"
- },
- "matrix_pins": {
- "cols": ["A2", "A1", "B14", "B4", "B5", "B6", "B7"],
- "rows": ["A7", "B0", "B1", "B2", "B10", "B11"]
- },
- "diode_direction": "ROW2COL",
- "processor": "STM32F072",
- "bootloader": "stm32-dfu",
- "layouts": {
- "LAYOUT": {
- "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.25, "y": 0},
- {"matrix": [0, 4], "x": 4.25, "y": 0},
- {"matrix": [0, 5], "x": 5.25, "y": 0},
- {"matrix": [0, 6], "x": 6.25, "y": 0},
-
- {"matrix": [1, 0], "x": 0, "y": 1.25},
- {"matrix": [1, 1], "x": 1, "y": 1.25},
- {"matrix": [1, 2], "x": 2, "y": 1.25},
-
- {"matrix": [1, 3], "x": 3.25, "y": 1.25},
- {"matrix": [1, 4], "x": 4.25, "y": 1.25},
- {"matrix": [1, 5], "x": 5.25, "y": 1.25},
- {"matrix": [1, 6], "x": 6.25, "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.25},
-
- {"matrix": [2, 3], "x": 3.25, "y": 2.25},
- {"matrix": [2, 4], "x": 4.25, "y": 2.25},
- {"matrix": [2, 5], "x": 5.25, "y": 2.25},
-
- {"matrix": [3, 3], "x": 3.25, "y": 3.25},
- {"matrix": [3, 4], "x": 4.25, "y": 3.25},
- {"matrix": [3, 5], "x": 5.25, "y": 3.25},
- {"matrix": [3, 6], "x": 6.25, "y": 2.25, "h": 2},
-
- {"matrix": [4, 1], "x": 1, "y": 4.25},
-
- {"matrix": [4, 3], "x": 3.25, "y": 4.25},
- {"matrix": [4, 4], "x": 4.25, "y": 4.25},
- {"matrix": [4, 5], "x": 5.25, "y": 4.25},
-
- {"matrix": [5, 0], "x": 0, "y": 5.25},
- {"matrix": [5, 1], "x": 1, "y": 5.25},
- {"matrix": [5, 2], "x": 2, "y": 5.25},
-
- {"matrix": [5, 4], "x": 3.25, "y": 5.25, "w": 2},
- {"matrix": [5, 5], "x": 5.25, "y": 5.25},
- {"matrix": [5, 6], "x": 6.25, "y": 4.25, "h": 2}
- ]
- }
- }
-}
diff --git a/keyboards/soda/pocket/keymaps/via/rules.mk b/keyboards/soda/pocket/keymaps/via/rules.mk
deleted file mode 100644
index 1e5b99807c..0000000000
--- a/keyboards/soda/pocket/keymaps/via/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-VIA_ENABLE = yes
diff --git a/keyboards/soda/pocket/readme.md b/keyboards/soda/pocket/readme.md
deleted file mode 100644
index dcb97c92b0..0000000000
--- a/keyboards/soda/pocket/readme.md
+++ /dev/null
@@ -1,23 +0,0 @@
-# Pocket-34
-
-A customizable 34 keyboard, support both HOTSWAP and SOLDER.
-
-* Keyboard Maintainer: [gezhaoyou](https://github.com/gezhaoyou)
-* Hardware Supported: [gezhaoyou](https://github.com/gezhaoyou)
-
-Make example for this keyboard (after setting up your build environment):
-
- make soda/pocket:default
-
-Flashing example for this keyboard:
-
- make soda/pocket:default:flash
-
-## Bootloader
-
-Enter the bootloader in 2 ways:
-
-* **Physical reset button**: Briefly press the button: [boot] first, then press button: [reset] on the back of the PCB
-* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available
-
-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).
diff --git a/keyboards/sofle/keyhive/config.h b/keyboards/sofle/keyhive/config.h
index 1e90cbab48..cda0be789e 100755
--- a/keyboards/sofle/keyhive/config.h
+++ b/keyboards/sofle/keyhive/config.h
@@ -21,7 +21,3 @@
// OLED settings
#define OLED_TIMEOUT 80000
#define OLED_BRIGHTNESS 90
-
-#define SPLIT_WPM_ENABLE
-#define SPLIT_OLED_ENABLE
-#define SPLIT_TRANSPORT_MIRROR
diff --git a/keyboards/sofle/keyhive/info.json b/keyboards/sofle/keyhive/info.json
index 1f7ae8b209..ae7c4a1935 100644
--- a/keyboards/sofle/keyhive/info.json
+++ b/keyboards/sofle/keyhive/info.json
@@ -41,6 +41,13 @@
"cols": ["F6", "F7", "B1", "B3", "B2", "B6", null],
"rows": ["C6", "D7", "E6", "B4", "B5"]
}
+ },
+ "transport": {
+ "sync": {
+ "matrix_state": true,
+ "oled": true,
+ "wpm": true
+ }
}
},
"qmk": {
diff --git a/keyboards/sofle/keymaps/devdev/config.h b/keyboards/sofle/keymaps/devdev/config.h
deleted file mode 100644
index 7d14c6e337..0000000000
--- a/keyboards/sofle/keymaps/devdev/config.h
+++ /dev/null
@@ -1,128 +0,0 @@
- /* Copyright 2021 Dane Evans
- *
- * 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 USE_MATRIX_I2C
-
-/* Select hand configuration */
-
-///https://thomasbaart.nl/2018/12/01/reducing-firmware-size-in-qmk/
-
-
-#define MASTER_LEFT
-// #define MASTER_RIGHT
-// #define EE_HANDS
-
-#define CUSTOM_FONT
-
-#define CUSTOM_LAYER_READ //if you remove this it causes issues - needs better guarding
-
-
-#define QUICK_TAP_TERM 0
-#ifdef TAPPING_TERM
- #undef TAPPING_TERM
- #define TAPPING_TERM 200
-#endif
-#define ENCODER_DIRECTION_FLIP
-
-
-#define RGBLIGHT_SLEEP
-//
-#define RGBLIGHT_LAYERS
-
-/* ws2812 RGB LED */
-#define WS2812_DI_PIN D3
-
-
-#ifdef RGB_MATRIX_ENABLE
-#define RGBLED_NUM 35 // Number of LEDs
-#define RGBLED_NUM 35 // Number of LEDs
-#define RGB_MATRIX_LED_COUNT RGBLED_NUM
-#endif
-
-#ifdef RGBLIGHT_ENABLE
- #undef RGBLED_NUM
-
- //#define RGBLIGHT_EFFECT_BREATHING
- #define RGBLIGHT_EFFECT_RAINBOW_MOOD
- //#define RGBLIGHT_EFFECT_RAINBOW_SWIRL
- //#define RGBLIGHT_EFFECT_SNAKE
- //#define RGBLIGHT_EFFECT_KNIGHT
- //#define RGBLIGHT_EFFECT_CHRISTMAS
- //#define RGBLIGHT_EFFECT_STATIC_GRADIENT
- //#define RGBLIGHT_EFFECT_RGB_TEST
- //#define RGBLIGHT_EFFECT_ALTERNATING
- //#define RGBLIGHT_EFFECT_TWINKLE
-
- #define RGBLED_NUM 70
- //#define RGBLED_SPLIT
- #define RGBLED_SPLIT { 35, 35 } // haven't figured out how to use this yet
-
- //#define RGBLED_NUM 30
- #define RGBLIGHT_LIMIT_VAL 120
- #define RGBLIGHT_HUE_STEP 10
- #define RGBLIGHT_SAT_STEP 17
- #define RGBLIGHT_VAL_STEP 17
-#endif
-
-#ifdef RGB_MATRIX_ENABLE
-# define RGB_MATRIX_KEYPRESSES // reacts to keypresses
-// # define RGB_MATRIX_KEYRELEASES // reacts to keyreleases (instead of keypresses)
-# define RGB_DISABLE_WHEN_USB_SUSPENDED // turn off effects when suspended
-# define RGB_MATRIX_FRAMEBUFFER_EFFECTS
-// # define RGB_MATRIX_LED_PROCESS_LIMIT (RGB_MATRIX_LED_COUNT + 4) / 5 // limits the number of LEDs to process in an animation per task run (increases keyboard responsiveness)
-// # define RGB_MATRIX_LED_FLUSH_LIMIT 16 // limits in milliseconds how frequently an animation will update the LEDs. 16 (16ms) is equivalent to limiting to 60fps (increases keyboard responsiveness)
-# define RGB_MATRIX_MAXIMUM_BRIGHTNESS 150 // limits maximum brightness of LEDs to 150 out of 255. Higher may cause the controller to crash.
-
-#define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_GRADIENT_LEFT_RIGHT
-
-# define RGB_MATRIX_HUE_STEP 8
-# define RGB_MATRIX_SAT_STEP 8
-# define RGB_MATRIX_VAL_STEP 8
-# define RGB_MATRIX_SPD_STEP 10
-
-/* Disable the animations you don't want/need. You will need to disable a good number of these *
- * because they take up a lot of space. Disable until you can successfully compile your firmware. */
- // # undef ENABLE_RGB_MATRIX_ALPHAS_MODS
- // # undef ENABLE_RGB_MATRIX_GRADIENT_UP_DOWN
- // # undef ENABLE_RGB_MATRIX_BREATHING
- // # undef ENABLE_RGB_MATRIX_CYCLE_ALL
- // # undef ENABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT
- // # undef ENABLE_RGB_MATRIX_CYCLE_UP_DOWN
- // # undef ENABLE_RGB_MATRIX_CYCLE_OUT_IN
- // # undef ENABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL
- // # undef ENABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON
- // # undef ENABLE_RGB_MATRIX_DUAL_BEACON
- // # undef ENABLE_RGB_MATRIX_RAINBOW_BEACON
- // # undef ENABLE_RGB_MATRIX_RAINBOW_PINWHEELS
- // # undef ENABLE_RGB_MATRIX_RAINDROPS
- // # undef ENABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS
- // # undef ENABLE_RGB_MATRIX_TYPING_HEATMAP
- // # undef ENABLE_RGB_MATRIX_DIGITAL_RAIN
- // # undef ENABLE_RGB_MATRIX_SOLID_REACTIVE
- // # undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE
- // # undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE
- // # undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE
- // # undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS
- // # undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS
- // # undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS
- // # undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS
- // # undef ENABLE_RGB_MATRIX_SPLASH
- // # undef ENABLE_RGB_MATRIX_MULTISPLASH
- // # undef ENABLE_RGB_MATRIX_SOLID_SPLASH
- // # undef ENABLE_RGB_MATRIX_SOLID_MULTISPLASH
-#endif
diff --git a/keyboards/sofle/keymaps/devdev/keymap.c b/keyboards/sofle/keymaps/devdev/keymap.c
deleted file mode 100644
index 9453c54614..0000000000
--- a/keyboards/sofle/keymaps/devdev/keymap.c
+++ /dev/null
@@ -1,573 +0,0 @@
-
- /* Copyright 2021 Dane Evans
- *
- * 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/>.
- */
- // SOFLE RGB
-#include <stdio.h>
-
-#include QMK_KEYBOARD_H
-
-#define INDICATOR_BRIGHTNESS 30
-
-#define HSV_OVERRIDE_HELP(h, s, v, Override) h, s , Override
-#define HSV_OVERRIDE(hsv, Override) HSV_OVERRIDE_HELP(hsv,Override)
-
-// Light combinations
-#define SET_INDICATORS(hsv) \
- {0, 1, HSV_OVERRIDE_HELP(hsv, INDICATOR_BRIGHTNESS)}, \
- {35+0, 1, hsv}
-#define SET_UNDERGLOW(hsv) \
- {1, 5, hsv}, \
- {35+1, 5,hsv}
-#define SET_NUMPAD(hsv) \
- {35+15, 5, hsv},\
- {35+22, 3, hsv},\
- {35+27, 3, hsv}
-#define SET_NUMROW(hsv) \
- {10, 2, hsv}, \
- {20, 2, hsv}, \
- {30, 2, hsv}, \
- {35+ 10, 2, hsv}, \
- {35+ 20, 2, hsv}, \
- {35+ 30, 2, hsv}
-#define SET_INNER_COL(hsv) \
- {33, 4, hsv}, \
- {35+ 33, 4, hsv}
-
-#define SET_OUTER_COL(hsv) \
- {7, 4, hsv}, \
- {35+ 7, 4, hsv}
-#define SET_THUMB_CLUSTER(hsv) \
- {25, 2, hsv}, \
- {35+ 25, 2, hsv}
-#define SET_LAYER_ID(hsv) \
- {0, 1, HSV_OVERRIDE_HELP(hsv, INDICATOR_BRIGHTNESS)}, \
- {35+0, 1, HSV_OVERRIDE_HELP(hsv, INDICATOR_BRIGHTNESS)}, \
- {1, 5, hsv}, \
- {35+1, 5, hsv}, \
- {7, 4, hsv}, \
- {35+ 7, 4, hsv}, \
- {25, 2, hsv}, \
- {35+ 25, 2, hsv}
-
-
-enum sofle_layers {
- _DEFAULTS = 0,
- _QWERTY = 0,
- _COLEMAK,
- _COLEMAKDH,
- _LOWER,
- _RAISE,
- _ADJUST,
- _NUMPAD,
- _SWITCH
-};
-
-enum custom_keycodes {
- KC_QWERTY = SAFE_RANGE,
- KC_COLEMAK,
- KC_COLEMAKDH,
- KC_LOWER,
- KC_RAISE,
- KC_ADJUST,
- KC_D_MUTE
-};
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-/*
- * QWERTY
- * ,-----------------------------------------. ,-----------------------------------------.
- * | ESC | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | ` |
- * |------+------+------+------+------+------| |------+------+------+------+------+------|
- * | TAB | Q | W | E | R | T | | Y | U | I | O | P | Bspc |
- * |------+------+------+------+------+------| |------+------+------+------+------+------|
- * |LShift| A | S | D | F | G |-------. ,-------| H | J | K | L | ; | ' |
- * |------+------+------+------+------+------| MUTE | |DISCORD|------+------+------+------+------+------|
- * | LCTR | Z | X | C | V | B |-------| |-------| N | M | , | . | / |LShift|
- * `-----------------------------------------/ / \ \-----------------------------------------'
- * | Bspc | WIN |LOWER | Enter| /Space / \Enter \ |SPACE |RAISE | RCTR | RAlt |
- * | | | | |/ / \ \ | | | | |
- * `----------------------------------' '------''---------------------------'
- */
- [_QWERTY] = LAYOUT(
- //,------------------------------------------------. ,---------------------------------------------------.
- KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, LT(_SWITCH,KC_6), KC_7, KC_8, KC_9, KC_0, KC_GRV,
- //|------+-------+--------+--------+--------+------| |--------+-------+--------+--------+--------+---------|
- LT(_NUMPAD,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_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_MUTE, KC_D_MUTE,KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_LSFT,
- //|------+-------+--------+--------+--------+------| === | | === |--------+-------+--------+--------+--------+---------|
- KC_BSPC, KC_LGUI, KC_LOWER, KC_SPC, KC_ENT , KC_SPC, KC_ENT , KC_RAISE, KC_RCTL, KC_RALT
- // \--------+--------+--------+---------+-------| |--------+---------+--------+---------+-------/
-),
-
-/*
- * COLEMAK
- * ,-----------------------------------------. ,-----------------------------------------.
- * | ESC | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | ` |
- * |------+------+------+------+------+------| |------+------+------+------+------+------|
- * | TAB | Q | W | F | P | G | | J | L | U | Y | ; | Bspc |
- * |------+------+------+------+------+------| |------+------+------+------+------+------|
- * |LShift| A | R | S | T | D |-------. ,-------| H | N | E | I | O | ' |
- * |------+------+------+------+------+------| MUTE | |DISCORD|------+------+------+------+------+------|
- * | LCTR | Z | X | C | V | B |-------| |-------| K | M | , | . | / |LShift|
- * `-----------------------------------------/ / \ \-----------------------------------------'
- * | Bspc | WIN |LOWER | Enter| /Space / \Enter \ |SPACE |RAISE | RCTR | RAlt |
- * | | | | |/ / \ \ | | | | |
- * `----------------------------------' '------''---------------------------'
- */
-[_COLEMAK] = LAYOUT(
- //,------------------------------------------------. ,---------------------------------------------------.
- KC_TRNS, KC_1, KC_2, KC_3, KC_4, KC_5, LT(_SWITCH,KC_6), KC_7, KC_8, KC_9, KC_0, KC_TRNS,
- //|------+-------+--------+--------+--------+------| |--------+-------+--------+--------+--------+---------|
- KC_TRNS, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_TRNS,
- //|------+-------+--------+--------+--------+------| |--------+-------+--------+--------+--------+---------|
- KC_TRNS, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_TRNS,
- //|------+-------+--------+--------+--------+------| === | | === |--------+-------+--------+--------+--------+---------|
- KC_TRNS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_TRNS, KC_TRNS,KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_TRNS,
- //|------+-------+--------+--------+--------+------| === | | === |--------+-------+--------+--------+--------+---------|
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
- // \--------+--------+--------+---------+-------| |--------+---------+--------+---------+-------/
-),
-
-/*
- * COLEMAK-DH
- * ,-----------------------------------------. ,-----------------------------------------.
- * | ESC | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | ` |
- * |------+------+------+------+------+------| |------+------+------+------+------+------|
- * | TAB | Q | W | F | P | B | | J | L | U | Y | ; | Bspc |
- * |------+------+------+------+------+------| |------+------+------+------+------+------|
- * |LShift| A | R | S | T | G |-------. ,-------| M | N | E | I | O | ' |
- * |------+------+------+------+------+------| MUTE | |DISCORD|------+------+------+------+------+------|
- * | LCTR | Z | X | C | D | V |-------| |-------| K | H | , | . | / |LShift|
- * `-----------------------------------------/ / \ \-----------------------------------------'
- * | Bspc | WIN |LOWER | Enter| /Space / \Enter \ |SPACE |RAISE | RCTR | RAlt |
- * | | | | |/ / \ \ | | | | |
- * `----------------------------------' '------''---------------------------'
- */
-[_COLEMAKDH] = LAYOUT(
- //,------------------------------------------------. ,---------------------------------------------------.
- KC_TRNS, KC_1, KC_2, KC_3, KC_4, KC_5, LT(_SWITCH,KC_6), KC_7, KC_8, KC_9, KC_0, KC_TRNS,
- //|------+-------+--------+--------+--------+------| |--------+-------+--------+--------+--------+---------|
- KC_TRNS, KC_Q, KC_W, KC_F, KC_P, KC_B, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_TRNS,
- //|------+-------+--------+--------+--------+------| |--------+-------+--------+--------+--------+---------|
- KC_TRNS, KC_A, KC_R, KC_S, KC_T, KC_G, KC_M, KC_N, KC_E, KC_I, KC_O, KC_TRNS,
- //|------+-------+--------+--------+--------+------| === | | === |--------+-------+--------+--------+--------+---------|
- KC_TRNS, KC_Z, KC_X, KC_C, KC_D, KC_V, KC_TRNS, KC_TRNS,KC_K, KC_H, KC_COMM, KC_DOT, KC_SLSH, KC_TRNS,
- //|------+-------+--------+--------+--------+------| === | | === |--------+-------+--------+--------+--------+---------|
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
- // \--------+--------+--------+---------+-------| |--------+---------+--------+---------+-------/
-),
-
-/* LOWER
- * ,-----------------------------------------. ,-----------------------------------------.
- * | trans| F1 | F2 | F3 | F4 | F5 | | F6 | F7 | F8 | F9 | F10 | F11 |
- * |------+------+------+------+------+------| |------+------+------+------+------+------|
- * | ` | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | F12 |
- * |------+------+------+------+------+------| |------+------+------+------+------+------|
- * | trans| ! | @ | # | $ | % |-------. ,-------| ^ | & | * | ( | ) | | |
- * |------+------+------+------+------+------| MUTE | | |------+------+------+------+------+------|
- * | trans| = | - | + | { | } |-------| |-------| [ | ] | ; | : | \ | Shift|
- * `-----------------------------------------/ / \ \-----------------------------------------'
- * | Bspc | WIN |LOWER | Enter| /Space / \Enter \ |SPACE |RAISE | RCTR | RAlt |
- * | | | | |/ / \ \ | | | | |
- * `----------------------------------' '------''---------------------------'
- */
-[_LOWER] = LAYOUT(
- //,------------------------------------------------. ,---------------------------------------------------.
- _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,
- //|------+-------+--------+--------+--------+------| |--------+-------+--------+--------+--------+---------|
- KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC,
- //|------+-------+--------+--------+--------+------| |--------+-------+--------+--------+--------+---------|
- _______, KC_NO, KC_NO, KC_NO, KC_WH_U, KC_PGUP, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_NO, KC_DEL,
- //|------+-------+--------+--------+--------+------| === | | === |--------+-------+--------+--------+--------+---------|
- _______, KC_NO, KC_NO, KC_NO, KC_WH_D, KC_PGDN,_______, _______,KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, _______,
- //|------+-------+--------+--------+--------+------| === | | === |--------+-------+--------+--------+--------+---------|
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
- // \--------+--------+--------+---------+-------| |--------+---------+--------+---------+-------/
-),
-/* RAISE
- * ,----------------------------------------. ,-----------------------------------------.
- * | | | | | | | | | | | | | |
- * |------+------+------+------+------+------| |------+------+------+------+------+------|
- * | Esc | Ins | Pscr | Menu | | | | | PWrd | Up | NWrd | DLine| Bspc |
- * |------+------+------+------+------+------| |------+------+------+------+------+------|
- * | Tab | LAt | LCtl |LShift| | Caps |-------. ,-------| | Left | Down | Rigth| Del | Bspc |
- * |------+------+------+------+------+------| MUTE | | |------+------+------+------+------+------|
- * |Shift | Undo | Cut | Copy | Paste| |-------| |-------| | LStr | | LEnd | | Shift|
- * `-----------------------------------------/ / \ \-----------------------------------------'
- * | LGUI | LAlt | LCTR |LOWER | /Enter / \Space \ |RAISE | RCTR | RAlt | RGUI |
- * | | | | |/ / \ \ | | | | |
- * `----------------------------------' '------''---------------------------'
- */
-[_RAISE] = LAYOUT(
- //,------------------------------------------------. ,---------------------------------------------------.
- _______, _______ , _______ , _______ , _______ , _______, _______, _______ , _______, _______ , _______ ,_______,
- //|------+-------+--------+--------+--------+------| |--------+-------+--------+--------+--------+---------|
- _______, KC_INS, KC_PSCR, KC_APP, XXXXXXX, XXXXXXX, KC_CIRC, KC_AMPR,KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC,
- //|------+-------+--------+--------+--------+------| |--------+-------+--------+--------+--------+---------|
- _______, KC_LALT, KC_LCTL, KC_LSFT, XXXXXXX, KC_CAPS, KC_MINS, KC_EQL, KC_LCBR, KC_RCBR, KC_PIPE, KC_GRV,
- //|------+-------+--------+--------+--------+------| === | | === |--------+-------+--------+--------+--------+---------|
- _______,KC_UNDO, KC_CUT, KC_COPY, KC_PASTE, XXXXXXX,_______, _______,KC_UNDS, KC_PLUS,KC_LBRC, KC_RBRC, KC_BSLS, KC_TILD,
- //|------+-------+--------+--------+--------+------| === | | === |--------+-------+--------+--------+--------+---------|
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
- // \--------+--------+--------+---------+-------| |--------+---------+--------+---------+-------/
-),
-/* ADJUST
- * ,-----------------------------------------. ,-----------------------------------------.
- * | | | | | | | | | | | | | |
- * |------+------+------+------+------+------| |------+------+------+------+------+------|
- * | QK_BOOT| | | | | | | | | | | | |
- * |------+------+------+------+------+------| |------+------+------+------+------+------|
- * |RGB_TOG|hue^ |sat ^ | bri ^| |COLEMAK|-------. ,-------|desk <| | |desk >| | |
- * |------+------+------+------+------+------| MUTE | | |------+------+------+------+------+------|
- * | mode | hue dn|sat d|bri dn| |QWERTY|-------| |-------| | PREV | PLAY | NEXT | | |
- * `-----------------------------------------/ / \ \-----------------------------------------'
- * | LGUI | LAlt | LCTR |LOWER | /Enter / \Space \ |RAISE | RCTR | RAlt | RGUI |
- * | | | | |/ / \ \ | | | | |
- * `----------------------------------' '------''---------------------------'
- */
- [_ADJUST] = LAYOUT(
- //,------------------------------------------------. ,---------------------------------------------------.
- EE_CLR, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
- //|------+-------+--------+--------+--------+------| |--------+-------+--------+--------+--------+---------|
- QK_BOOT, XXXXXXX,XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
- //|------+-------+--------+--------+--------+------| |--------+-------+--------+--------+--------+---------|
- RGB_TOG, RGB_HUI,RGB_SAI, RGB_VAI, KC_COLEMAKDH,KC_COLEMAK, C(G(KC_LEFT)),KC_NO,KC_NO,C(G(KC_RGHT)),XXXXXXX, XXXXXXX,
- //|------+-------+--------+--------+--------+------| === | | === |--------+-------+--------+--------+--------+---------|
- RGB_MOD, RGB_HUD,RGB_SAD, RGB_VAD, XXXXXXX,KC_QWERTY,XXXXXXX, XXXXXXX, XXXXXXX, KC_MPRV, KC_MPLY, KC_MNXT, XXXXXXX, XXXXXXX,
- //|------+-------+--------+--------+--------+------| === | | === |--------+-------+--------+--------+--------+---------|
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
- // \--------+--------+--------+---------+-------| |--------+---------+--------+---------+-------/
-),
-/* NUMPAD
- * ,-----------------------------------------. ,-----------------------------------------.
- * | trans| | | | | | | F6 | F7 | F8 | F9 | F10 | F11 |
- * |------+------+------+------+------+------| |------+------+------+------+------+------|
- * | ` | | | | | | | | 7 | 8 | 9 | * | F12 |
- * |------+------+------+------+------+------| |------+------+------+------+------+------|
- * | trans| | | | | |-------. ,-------| - | 4 | 5 | 6 | | | |
- * |------+------+------+------+------+------| MUTE | | |------+------+------+------+------+------|
- * | trans| | | | | |-------| |-------| + | 1 | 2 | 3 | \ | Shift|
- * `-----------------------------------------/ / \ \-----------------------------------------'
- * | Bspc | WIN |LOWER | Enter| /Space / \Enter \ |SPACE | 0 | . | RAlt |
- * | | | | |/ / \ \ | | | | |
- * `----------------------------------' '------''---------------------------'
- */
-[_NUMPAD] = LAYOUT(
- //,------------------------------------------------. ,---------------------------------------------------.
- _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,XXXXXXX, XXXXXXX,
- //|------+-------+--------+--------+--------+------| |--------+-------+--------+--------+--------+---------|
- XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_CIRC, KC_P7, KC_P8, KC_P9, KC_ASTR, _______,
- //|------+-------+--------+--------+--------+------| |--------+-------+--------+--------+--------+---------|
- XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_MINS, KC_P4, KC_P5, KC_P6, KC_EQL, KC_PIPE,
- //|------+-------+--------+--------+--------+------| === | | === |--------+-------+--------+--------+--------+---------|
- XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,_______, _______,KC_PLUS, KC_P1, KC_P2, KC_P3, KC_SLSH, _______,
- //|------+-------+--------+--------+--------+------| === | | === |--------+-------+--------+--------+--------+---------|
- _______, OSM(MOD_MEH), _______, _______, _______, _______, _______, KC_P0, KC_PDOT, _______
- // \--------+--------+--------+---------+-------| |--------+---------+--------+---------+-------/
-),
-
-/* SWITCH
- * ,-----------------------------------------. ,-----------------------------------------.
- * | cole | qwer | low |raise | adj |numpd | | | F7 | F8 | F9 | F10 | F11 |
- * |------+------+------+------+------+------| |------+------+------+------+------+------|
- * | ` | | | | | | | | 7 | 8 | 9 | * | F12 |
- * |------+------+------+------+------+------| |------+------+------+------+------+------|
- * | trans| | | | | |-------. ,-------| - | 4 | 5 | 6 | | | |
- * |------+------+------+------+------+------| MUTE | | |------+------+------+------+------+------|
- * | trans| | | | | |-------| |-------| + | 1 | 2 | 3 | \ | Shift|
- * `-----------------------------------------/ / \ \-----------------------------------------'
- * | Bspc | WIN |LOWER | Enter| /Space / \Enter \ |SPACE | 0 | . | RAlt |
- * | | | | |/ / \ \ | | | | |
- * `----------------------------------' '------''---------------------------'
- */
- // layer switcher
-[_SWITCH] = LAYOUT(
- //,------------------------------------------------. ,---------------------------------------------------.
- _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,XXXXXXX, XXXXXXX,
- //|------+-------+--------+--------+--------+------| |--------+-------+--------+--------+--------+---------|
- TO(0), TO(1), TO(2), TO(3), TO(4), TO(5), KC_NO, TO(7), KC_NO, KC_NO, KC_NO, QK_BOOT,
- //|------+-------+--------+--------+--------+------| |--------+-------+--------+--------+--------+---------|
- KC_NO, KC_NO, KC_BRIU, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, EE_CLR,
- //|------+-------+--------+--------+--------+------| === | | === |--------+-------+--------+--------+--------+---------|
- KC_SYSTEM_SLEEP,KC_NO,KC_BRID,KC_NO,KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
- //|------+-------+--------+--------+--------+------| === | | === |--------+-------+--------+--------+--------+---------|
- KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO
- // \--------+--------+--------+---------+-------| |--------+---------+--------+---------+-------/
-
- ),
-};
-
-#ifdef RGBLIGHT_ENABLE
-char layer_state_str[70];
-// Now define the array of layers. Later layers take precedence
-
-// QWERTY,
-// Light on inner column and underglow
-const rgblight_segment_t PROGMEM layer_qwerty_lights[] = RGBLIGHT_LAYER_SEGMENTS(
- SET_LAYER_ID(HSV_RED)
-
-);
-const rgblight_segment_t PROGMEM layer_colemakdh_lights[] = RGBLIGHT_LAYER_SEGMENTS(
- SET_LAYER_ID(HSV_PINK)
-);
-
-// _NUM,
-// Light on outer column and underglow
-const rgblight_segment_t PROGMEM layer_num_lights[] = RGBLIGHT_LAYER_SEGMENTS(
- SET_LAYER_ID(HSV_TEAL)
-
-);
-// _SYMBOL,
-// Light on inner column and underglow
-const rgblight_segment_t PROGMEM layer_symbol_lights[] = RGBLIGHT_LAYER_SEGMENTS(
- SET_LAYER_ID(HSV_BLUE)
-
- );
-// _COMMAND,
-// Light on inner column and underglow
-const rgblight_segment_t PROGMEM layer_command_lights[] = RGBLIGHT_LAYER_SEGMENTS(
- SET_LAYER_ID(HSV_PURPLE)
-);
-
-//_NUMPAD
-const rgblight_segment_t PROGMEM layer_numpad_lights[] = RGBLIGHT_LAYER_SEGMENTS(
- SET_INDICATORS(HSV_ORANGE),
- SET_UNDERGLOW(HSV_ORANGE),
- SET_NUMPAD(HSV_BLUE),
- {7, 4, HSV_ORANGE},
- {25, 2, HSV_ORANGE},
- {35+6, 4, HSV_ORANGE},
- {35+25, 2, HSV_ORANGE}
- );
-// _SWITCHER // light up top row
-const rgblight_segment_t PROGMEM layer_switcher_lights[] = RGBLIGHT_LAYER_SEGMENTS(
- SET_LAYER_ID(HSV_GREEN),
- SET_NUMROW(HSV_GREEN)
-);
-
-const rgblight_segment_t* const PROGMEM my_rgb_layers[] = RGBLIGHT_LAYERS_LIST(
-
- layer_qwerty_lights,
- layer_num_lights,// overrides layer 1
- layer_symbol_lights,
- layer_command_lights,
- layer_numpad_lights,
- layer_switcher_lights, // Overrides other layers
- layer_colemakdh_lights
-);
-
-layer_state_t layer_state_set_user(layer_state_t state) {
- rgblight_set_layer_state(0, layer_state_cmp(state, _DEFAULTS) && layer_state_cmp(default_layer_state,_QWERTY));
- rgblight_set_layer_state(7, layer_state_cmp(state, _DEFAULTS) && layer_state_cmp(default_layer_state,_COLEMAKDH));
-
-
- rgblight_set_layer_state(1, layer_state_cmp(state, _LOWER));
- rgblight_set_layer_state(2, layer_state_cmp(state, _RAISE));
- rgblight_set_layer_state(3, layer_state_cmp(state, _ADJUST));
- rgblight_set_layer_state(4, layer_state_cmp(state, _NUMPAD));
- rgblight_set_layer_state(5, layer_state_cmp(state, _SWITCH));
- return state;
-}
-void keyboard_post_init_user(void) {
- // Enable the LED layers
- rgblight_layers = my_rgb_layers;
-
- rgblight_mode(10);// haven't found a way to set this in a more useful way
-
-}
-#endif
-
-#ifdef OLED_ENABLE
-
-static void render_logo(void) {
- static const char PROGMEM qmk_logo[] = {
- 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8A, 0x8B, 0x8C, 0x8D, 0x8E, 0x8F, 0x90, 0x91, 0x92, 0x93, 0x94,
- 0xA0, 0xA1, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7, 0xA8, 0xA9, 0xAA, 0xAB, 0xAC, 0xAD, 0xAE, 0xAF, 0xB0, 0xB1, 0xB2, 0xB3, 0xB4,
- 0xC0, 0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7, 0xC8, 0xC9, 0xCA, 0xCB, 0xCC, 0xCD, 0xCE, 0xCF, 0xD0, 0xD1, 0xD2, 0xD3, 0xD4, 0x00
- };
-
- oled_write_P(qmk_logo, false);
-}
-
-static void print_status_narrow(void) {
- // Print current mode
- oled_write_P(PSTR("\n\n"), false);
- oled_write_ln_P(PSTR("Dane\nEvans"), false);
-
- oled_write_ln_P(PSTR(""), false);
-
- //snprintf(layer_state_str, sizeof(layer_state_str), "Layer: Undef-%ld", layer_state)
-
-
- switch (get_highest_layer(default_layer_state)) {
- case _QWERTY:
- oled_write_ln_P(PSTR("Qwrt"), false);
- break;
- case _COLEMAK:
- oled_write_ln_P(PSTR("Clmk"), false);
- break;
- case _COLEMAKDH:
- oled_write_ln_P(PSTR("CmkDH"), false);
- break;
-
- default:
- oled_write_ln_P(PSTR("Undef"), false);
- }
- oled_write_P(PSTR("\n\n"), false);
- // Print current layer
- oled_write_ln_P(PSTR("LAYER"), false);
- switch (get_highest_layer(layer_state)) {
- case _COLEMAK:
- case _QWERTY:
- case _COLEMAKDH:
- oled_write_P(PSTR("Base\n"), false);
- break;
- case _RAISE:
- oled_write_P(PSTR("Raise"), false);
- break;
- case _LOWER:
- oled_write_P(PSTR("Lower"), false);
- break;
- case _ADJUST:
- oled_write_P(PSTR("Adj\n"), false);
- break;
- case _NUMPAD:
- oled_write_P(PSTR("Nump\n"), false);
- break;
- case _SWITCH:
- oled_write_P(PSTR("Swit\n"), false);
- break;
- default:
- oled_write_ln_P(PSTR("Undef"), false);
- }
-}
-
-oled_rotation_t oled_init_user(oled_rotation_t rotation) {
- if (is_keyboard_master()) {
- return OLED_ROTATION_270;
- }
- return rotation;
-}
-
-bool oled_task_user(void) {
- if (is_keyboard_master()) {
- print_status_narrow();
- } else {
- render_logo();
- }
- return false;
-}
-
-#endif
-
-bool process_record_user(uint16_t keycode, keyrecord_t *record) {
- switch (keycode) {
- case KC_QWERTY:
- if (record->event.pressed) {
- set_single_persistent_default_layer(_QWERTY);
- }
- return false;
- case KC_COLEMAK:
- if (record->event.pressed) {
- set_single_persistent_default_layer(_COLEMAK);
- }
- return false;
- case KC_COLEMAKDH:
- if (record->event.pressed) {
- set_single_persistent_default_layer(_COLEMAKDH);
- }
- return false;
- case KC_LOWER:
- if (record->event.pressed) {
- layer_on(_LOWER);
- update_tri_layer(_LOWER, _RAISE, _ADJUST);
- } else {
- layer_off(_LOWER);
- update_tri_layer(_LOWER, _RAISE, _ADJUST);
- }
- return false;
- case KC_RAISE:
- if (record->event.pressed) {
- layer_on(_RAISE);
- update_tri_layer(_LOWER, _RAISE, _ADJUST);
- } else {
- layer_off(_RAISE);
- update_tri_layer(_LOWER, _RAISE, _ADJUST);
- }
- return false;
- case KC_ADJUST:
- if (record->event.pressed) {
- layer_on(_ADJUST);
- } else {
- layer_off(_ADJUST);
- }
- return false;
- case KC_D_MUTE:
- if (record->event.pressed) {
- register_mods(mod_config(MOD_MEH));
- register_code(KC_UP);
- } else {
- unregister_mods(mod_config(MOD_MEH));
- unregister_code(KC_UP);
- }
- }
- return true;
-}
-
-#ifdef ENCODER_ENABLE
-
-bool encoder_update_user(uint8_t index, bool clockwise) {
- if (index == 0) {
- if (clockwise) {
- tap_code(KC_VOLU);
- } else {
- tap_code(KC_VOLD);
- }
- } else if (index == 1) {
- switch (get_highest_layer(layer_state)) {
- case _COLEMAK:
- case _QWERTY:
- case _COLEMAKDH:
- if (clockwise) {
- tap_code(KC_PGDN);
- } else {
- tap_code(KC_PGUP);
- }
- break;
- case _RAISE:
- case _LOWER:
- if (clockwise) {
- tap_code(KC_DOWN);
- } else {
- tap_code(KC_UP);
- }
- break;
- default:
- if (clockwise) {
- tap_code(KC_WH_D);
- } else {
- tap_code(KC_WH_U);
- }
- break;
- }
- }
- return true;
-}
-
-#endif
diff --git a/keyboards/sofle/keymaps/devdev/rules.mk b/keyboards/sofle/keymaps/devdev/rules.mk
deleted file mode 100644
index 0d18161a0d..0000000000
--- a/keyboards/sofle/keymaps/devdev/rules.mk
+++ /dev/null
@@ -1,7 +0,0 @@
-MOUSEKEY_ENABLE = yes
-EXTRAKEY_ENABLE = yes
-CONSOLE_ENABLE = no
-RGBLIGHT_ENABLE = yes
-ENCODER_ENABLE = yes
-LTO_ENABLE = yes
-OLED_ENABLE = yes
diff --git a/keyboards/sofle/keymaps/manna-harbour_miryoku/config.h b/keyboards/sofle/keymaps/manna-harbour_miryoku/config.h
deleted file mode 100644
index e335d5d8b8..0000000000
--- a/keyboards/sofle/keymaps/manna-harbour_miryoku/config.h
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright 2019 Manna Harbour
-// https://github.com/manna-harbour/miryoku
-
-// 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 XXX KC_NO
-
-#define LAYOUT_miryoku(\
- 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,\
- N30, N31, K32, K33, K34, K35, K36, K37, N38, N39\
-)\
-LAYOUT(\
-XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX,\
-XXX, K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, XXX,\
-XXX, K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, XXX,\
-XXX, K20, K21, K22, K23, K24, XXX, XXX, K25, K26, K27, K28, K29, XXX,\
- XXX, XXX, K32, K33, K34, K35, K36, K37, XXX, XXX\
-)
diff --git a/keyboards/sofle/keymaps/manna-harbour_miryoku/keymap.c b/keyboards/sofle/keymaps/manna-harbour_miryoku/keymap.c
deleted file mode 100644
index dbab7f9820..0000000000
--- a/keyboards/sofle/keymaps/manna-harbour_miryoku/keymap.c
+++ /dev/null
@@ -1,4 +0,0 @@
-// Copyright 2019 Manna Harbour
-// https://github.com/manna-harbour/miryoku
-
-// 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/>.
diff --git a/keyboards/spaceholdings/nebula12/config.h b/keyboards/spaceholdings/nebula12/config.h
index 3853ebcff6..c88b219b09 100755
--- a/keyboards/spaceholdings/nebula12/config.h
+++ b/keyboards/spaceholdings/nebula12/config.h
@@ -35,7 +35,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define I2C1_TIMINGR_SCLH 3U
#define I2C1_TIMINGR_SCLL 9U
-#define WS2812_SPI SPID2 // default: SPID1
+#define WS2812_SPI_DRIVER SPID2 // default: SPID1
#define WS2812_SPI_MOSI_PAL_MODE 0 // Pin "alternate function", see the respective datasheet for the appropriate values for your MCU. default: 5
#define WS2812_SPI_SCK_PAL_MODE 0
#define WS2812_SPI_SCK_PIN B13
@@ -73,8 +73,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define RGB_BACKLIGHT_COLOR_1 { .h = 0, .s = 255 }
#define RGB_BACKLIGHT_COLOR_2 { .h = 127, .s = 255 }
-#define DRIVER_COUNT 1
-#define RGB_MATRIX_LED_COUNT 16
+#define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND
+#define IS31FL3731_LED_COUNT 16
// These define which keys in the matrix are alphas/mods
// Used for backlight effects so colors are different for
diff --git a/keyboards/spaceholdings/nebula12/nebula12.c b/keyboards/spaceholdings/nebula12/nebula12.c
index 7491bee844..3b8aae7a77 100755
--- a/keyboards/spaceholdings/nebula12/nebula12.c
+++ b/keyboards/spaceholdings/nebula12/nebula12.c
@@ -14,7 +14,9 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef RGB_BACKLIGHT_NEBULA12
-#error RGB_BACKLIGHT_NEBULA12 not defined, recheck config.h
+# error RGB_BACKLIGHT_NEBULA12 not defined, recheck config.h
+#else
+# include "drivers/led/issi/is31fl3731.h"
#endif
#include "nebula12.h"
@@ -23,3 +25,30 @@ void board_init(void) {
SYSCFG->CFGR1 |= SYSCFG_CFGR1_I2C1_DMA_RMP;
SYSCFG->CFGR1 &= ~(SYSCFG_CFGR1_SPI2_DMA_RMP);
}
+
+#if defined(RGB_MATRIX_ENABLE) || defined(RGB_BACKLIGHT_NEBULA12)
+const is31fl3731_led_t PROGMEM g_is31fl3731_leds[IS31FL3731_LED_COUNT] = {
+/* Refer to IS31 manual for these locations
+ * driver
+ * | R location
+ * | | G location
+ * | | | B location
+ * | | | | */
+ {0, C1_1, C3_2, C4_2}, //A1
+ {0, C1_2, C2_2, C4_3}, //A2
+ {0, C1_3, C2_3, C3_3}, //A3
+ {0, C1_4, C2_4, C3_4}, //A4
+ {0, C1_5, C2_5, C3_5}, //A5
+ {0, C1_6, C2_6, C3_6}, //A6
+ {0, C1_7, C2_7, C3_7}, //A7
+ {0, C1_8, C2_8, C3_8}, //A8
+ {0, C9_1, C8_1, C7_1}, //A9
+ {0, C9_2, C8_2, C7_2}, //A10
+ {0, C9_3, C8_3, C7_3}, //A11
+ {0, C9_4, C8_4, C7_4}, //A12
+ {0, C9_5, C8_5, C7_5}, //A13
+ {0, C9_6, C8_6, C7_6}, //A14
+ {0, C9_7, C8_7, C6_6}, //A15
+ {0, C9_8, C7_7, C6_7}, //A16
+};
+#endif
diff --git a/keyboards/spaceholdings/nebula12/rules.mk b/keyboards/spaceholdings/nebula12/rules.mk
index 1c8b41fea7..191a1c0a1b 100755
--- a/keyboards/spaceholdings/nebula12/rules.mk
+++ b/keyboards/spaceholdings/nebula12/rules.mk
@@ -24,4 +24,4 @@ SRC += keyboards/wilba_tech/wt_main.c \
keyboards/wilba_tech/wt_rgb_backlight.c \
drivers/led/issi/is31fl3731.c \
quantum/color.c
-QUANTUM_LIB_SRC += i2c_master.c
+I2C_DRIVER_REQUIRED = yes
diff --git a/keyboards/spaceholdings/nebula68/config.h b/keyboards/spaceholdings/nebula68/config.h
index 43dc7b0d86..1b2441556b 100755
--- a/keyboards/spaceholdings/nebula68/config.h
+++ b/keyboards/spaceholdings/nebula68/config.h
@@ -56,8 +56,9 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define RGB_BACKLIGHT_COLOR_1 { .h = 0, .s = 255 }
#define RGB_BACKLIGHT_COLOR_2 { .h = 127, .s = 255 }
-#define DRIVER_COUNT 2
-#define RGB_MATRIX_LED_COUNT 128
+#define IS31FL3733_I2C_ADDRESS_1 IS31FL3733_I2C_ADDRESS_GND_GND
+#define IS31FL3733_I2C_ADDRESS_2 IS31FL3733_I2C_ADDRESS_GND_SDA
+#define IS31FL3733_LED_COUNT 128
// These define which keys in the matrix are alphas/mods
// Used for backlight effects so colors are different for
diff --git a/keyboards/spaceholdings/nebula68/nebula68.c b/keyboards/spaceholdings/nebula68/nebula68.c
index 054a269bf6..af51c4805e 100755
--- a/keyboards/spaceholdings/nebula68/nebula68.c
+++ b/keyboards/spaceholdings/nebula68/nebula68.c
@@ -14,7 +14,149 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef RGB_BACKLIGHT_NEBULA68
-#error RGB_BACKLIGHT_NEBULA68 not defined, recheck config.h
+# error RGB_BACKLIGHT_NEBULA68 not defined, recheck config.h
+#else
+# include "drivers/led/issi/is31fl3733.h"
#endif
#include "nebula68.h"
+
+#if defined(RGB_MATRIX_ENABLE) || defined(RGB_BACKLIGHT_NEBULA68)
+const is31fl3733_led_t PROGMEM g_is31fl3733_leds[IS31FL3733_LED_COUNT] = {
+/* Refer to IS31 manual for these locations
+ * driver
+ * | R location
+ * | | G location
+ * | | | B location
+ * | | | | */
+ {0, B_1, A_1, C_1}, //LA1
+ {0, E_1, D_1, F_1}, //LA2
+ {0, H_1, G_1, I_1}, //LA3
+ {0, K_1, J_1, L_1}, //LA4
+ {0, B_2, A_2, C_2}, //LA5
+ {0, E_2, D_2, F_2}, //LA6
+ {0, H_2, G_2, I_2}, //LA7
+ {0, K_2, J_2, L_2}, //LA8
+ {0, B_3, A_3, C_3}, //LA9
+ {0, E_3, D_3, F_3}, //LA10
+ {0, H_3, G_3, I_3}, //LA11
+ {0, K_3, J_3, L_3}, //LA12
+ {0, B_4, A_4, C_4}, //LA13
+ {0, E_4, D_4, F_4}, //LA14
+ {0, H_4, G_4, I_4}, //LA15
+ {0, K_4, J_4, L_4}, //LA16
+ {0, B_5, A_5, C_5}, //LA17
+ {0, E_5, D_5, F_5}, //LA18
+ {0, H_5, G_5, I_5}, //LA19
+ {0, K_5, J_5, L_5}, //LA20
+ {0, B_6, A_6, C_6}, //LA21
+ {0, E_6, D_6, F_6}, //LA22
+ {0, H_6, G_6, I_6}, //LA23
+ {0, K_6, J_6, L_6}, //LA24
+ {0, B_7, A_7, C_7}, //LA25
+ {0, E_7, D_7, F_7}, //LA26
+ {0, H_7, G_7, I_7}, //LA27
+ {0, K_7, J_7, L_7}, //LA28
+ {0, B_8, A_8, C_8}, //LA29
+ {0, E_8, D_8, F_8}, //LA30
+ {0, H_8, G_8, I_8}, //LA31
+ {0, K_8, J_8, L_8}, //LA32
+ {0, B_9, A_9, C_9}, //LA33
+ {0, E_9, D_9, F_9}, //LA34
+ {0, H_9, G_9, I_9}, //LA35
+ {0, K_9, J_9, L_9}, //LA36
+ {0, B_10, A_10, C_10}, //LA37
+ {0, E_10, D_10, F_10}, //LA38
+ {0, H_10, G_10, I_10}, //LA39
+ {0, K_10, J_10, L_10}, //LA40
+ {0, B_11, A_11, C_11}, //LA41
+ {0, E_11, D_11, F_11}, //LA42
+ {0, H_11, G_11, I_11}, //LA43
+ {0, K_11, J_11, L_11}, //LA44
+ {0, B_12, A_12, C_12}, //LA45
+ {0, E_12, D_12, F_12}, //LA46
+ {0, H_12, G_12, I_12}, //LA47
+ {0, K_12, J_12, L_12}, //LA48
+ {0, B_13, A_13, C_13}, //LA49
+ {0, E_13, D_13, F_13}, //LA50
+ {0, H_13, G_13, I_13}, //LA51
+ {0, K_13, J_13, L_13}, //LA52
+ {0, B_14, A_14, C_14}, //LA53
+ {0, E_14, D_14, F_14}, //LA54
+ {0, H_14, G_14, I_14}, //LA55
+ {0, K_14, J_14, L_14}, //LA56
+ {0, B_15, A_15, C_15}, //LA57
+ {0, E_15, D_15, F_15}, //LA58
+ {0, H_15, G_15, I_15}, //LA59
+ {0, K_15, J_15, L_15}, //LA60
+ {0, B_16, A_16, C_16}, //LA61
+ {0, E_16, D_16, F_16}, //LA62
+ {0, H_16, G_16, I_16}, //LA63
+ {0, K_16, J_16, L_16}, //LA64
+
+ {1, B_1, A_1, C_1}, //LB1
+ {1, E_1, D_1, F_1}, //LB2
+ {1, H_1, G_1, I_1}, //LB3
+ {1, K_1, J_1, L_1}, //LB4
+ {1, B_2, A_2, C_2}, //LB5
+ {1, E_2, D_2, F_2}, //LB6
+ {1, H_2, G_2, I_2}, //LB7
+ {1, K_2, J_2, L_2}, //LB8
+ {1, B_3, A_3, C_3}, //LB9
+ {1, E_3, D_3, F_3}, //LB10
+ {1, H_3, G_3, I_3}, //LB11
+ {1, K_3, J_3, L_3}, //LB12
+ {1, B_4, A_4, C_4}, //LB13
+ {1, E_4, D_4, F_4}, //LB14
+ {1, H_4, G_4, I_4}, //LB15
+ {1, K_4, J_4, L_4}, //LB16
+ {1, B_5, A_5, C_5}, //LB17
+ {1, E_5, D_5, F_5}, //LB18
+ {1, H_5, G_5, I_5}, //LB19
+ {1, K_5, J_5, L_5}, //LB20
+ {1, B_6, A_6, C_6}, //LB21
+ {1, E_6, D_6, F_6}, //LB22
+ {1, H_6, G_6, I_6}, //LB23
+ {1, K_6, J_6, L_6}, //LB24
+ {1, B_7, A_7, C_7}, //LB25
+ {1, E_7, D_7, F_7}, //LB26
+ {1, H_7, G_7, I_7}, //LB27
+ {1, K_7, J_7, L_7}, //LB28
+ {1, B_8, A_8, C_8}, //LB29
+ {1, E_8, D_8, F_8}, //LB30
+ {1, H_8, G_8, I_8}, //LB31
+ {1, K_8, J_8, L_8}, //LB32
+ {1, B_9, A_9, C_9}, //LB33
+ {1, E_9, D_9, F_9}, //LB34
+ {1, H_9, G_9, I_9}, //LB35
+ {1, K_9, J_9, L_9}, //LB36
+ {1, B_10, A_10, C_10}, //LB37
+ {1, E_10, D_10, F_10}, //LB38
+ {1, H_10, G_10, I_10}, //LB39
+ {1, K_10, J_10, L_10}, //LB40
+ {1, B_11, A_11, C_11}, //LB41
+ {1, E_11, D_11, F_11}, //LB42
+ {1, H_11, G_11, I_11}, //LB43
+ {1, K_11, J_11, L_11}, //LB44
+ {1, B_12, A_12, C_12}, //LB45
+ {1, E_12, D_12, F_12}, //LB46
+ {1, H_12, G_12, I_12}, //LB47
+ {1, K_12, J_12, L_12}, //LB48
+ {1, B_13, A_13, C_13}, //LB49
+ {1, E_13, D_13, F_13}, //LB50
+ {1, H_13, G_13, I_13}, //LB51
+ {1, K_13, J_13, L_13}, //LB52
+ {1, B_14, A_14, C_14}, //LB53
+ {1, E_14, D_14, F_14}, //LB54
+ {1, H_14, G_14, I_14}, //LB55
+ {1, K_14, J_14, L_14}, //LB56
+ {1, B_15, A_15, C_15}, //LB57
+ {1, E_15, D_15, F_15}, //LB58
+ {1, H_15, G_15, I_15}, //LB59
+ {1, K_15, J_15, L_15}, //LB60
+ {1, B_16, A_16, C_16}, //LB61
+ {1, E_16, D_16, F_16}, //LB62
+ {1, H_16, G_16, I_16}, //LB63
+ {1, K_16, J_16, L_16}, //LB64
+};
+#endif
diff --git a/keyboards/spaceholdings/nebula68/rules.mk b/keyboards/spaceholdings/nebula68/rules.mk
index 7880744fff..627f82784e 100755
--- a/keyboards/spaceholdings/nebula68/rules.mk
+++ b/keyboards/spaceholdings/nebula68/rules.mk
@@ -24,4 +24,4 @@ SRC += keyboards/wilba_tech/wt_main.c \
keyboards/wilba_tech/wt_rgb_backlight.c \
drivers/led/issi/is31fl3733.c \
quantum/color.c
-QUANTUM_LIB_SRC += i2c_master.c
+I2C_DRIVER_REQUIRED = yes
diff --git a/keyboards/spiderisland/split78/rules.mk b/keyboards/spiderisland/split78/rules.mk
index edddf67abc..db8262a763 100644
--- a/keyboards/spiderisland/split78/rules.mk
+++ b/keyboards/spiderisland/split78/rules.mk
@@ -12,4 +12,4 @@ RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
# custom matrix setup
CUSTOM_MATRIX = lite
SRC += matrix.c
-QUANTUM_LIB_SRC += i2c_master.c
+I2C_DRIVER_REQUIRED = yes
diff --git a/keyboards/spleeb/config.h b/keyboards/spleeb/config.h
index 8a6fb13c4e..64a1fb09ba 100644
--- a/keyboards/spleeb/config.h
+++ b/keyboards/spleeb/config.h
@@ -7,10 +7,6 @@
// the touch sensor to be on the master side
#define MASTER_RIGHT
-// Sync later, led, and mod state for use on OLED on slave side
-#define SPLIT_LAYER_STATE_ENABLE
-#define SPLIT_LED_STATE_ENABLE
-#define SPLIT_MODS_ENABLE
// Transport dpi and enc mode for display on oled
#define SPLIT_TRANSACTION_IDS_KB RPC_ID_KB_CONFIG_SYNC
diff --git a/keyboards/spleeb/info.json b/keyboards/spleeb/info.json
index e03faa7c3e..7b92316de2 100644
--- a/keyboards/spleeb/info.json
+++ b/keyboards/spleeb/info.json
@@ -36,6 +36,13 @@
{"pin_a": "GP21", "pin_b": "GP4"}
]
}
+ },
+ "transport": {
+ "sync": {
+ "indicators": true,
+ "layer_state": true,
+ "modifiers": true
+ }
}
},
"url": "https://github.com/chrishoage/spleeb",
diff --git a/keyboards/splitkb/aurora/corne/rev1/info.json b/keyboards/splitkb/aurora/corne/rev1/info.json
index 7d82577b00..13f0034d55 100644
--- a/keyboards/splitkb/aurora/corne/rev1/info.json
+++ b/keyboards/splitkb/aurora/corne/rev1/info.json
@@ -83,7 +83,6 @@
"matrix": [4, 5]
},
"soft_serial_pin": "D2",
- "main": "pin",
"matrix_pins": {
"right": {
"rows": ["B1", "B3", "B2", "B6"],
diff --git a/keyboards/splitkb/aurora/helix/rev1/info.json b/keyboards/splitkb/aurora/helix/rev1/info.json
index 7c6acf0070..1fee04011a 100644
--- a/keyboards/splitkb/aurora/helix/rev1/info.json
+++ b/keyboards/splitkb/aurora/helix/rev1/info.json
@@ -118,7 +118,6 @@
]
}
},
- "main": "matrix_grid",
"matrix_pins": {
"right": {
"cols": ["D4", "C6", "D7", "E6", "B4", "B5", "B6"],
diff --git a/keyboards/splitkb/aurora/lily58/rev1/info.json b/keyboards/splitkb/aurora/lily58/rev1/info.json
index 2d251b96b2..9a6ad58a14 100644
--- a/keyboards/splitkb/aurora/lily58/rev1/info.json
+++ b/keyboards/splitkb/aurora/lily58/rev1/info.json
@@ -94,7 +94,6 @@
"matrix": [5, 0]
},
"soft_serial_pin": "D2",
- "main": "matrix_grid",
"matrix_pins": {
"right": {
"rows": ["F4", "D4", "B3", "B2", "B6"],
diff --git a/keyboards/splitkb/aurora/sofle_v2/rev1/info.json b/keyboards/splitkb/aurora/sofle_v2/rev1/info.json
index b9b8b9da6b..266ea72148 100644
--- a/keyboards/splitkb/aurora/sofle_v2/rev1/info.json
+++ b/keyboards/splitkb/aurora/sofle_v2/rev1/info.json
@@ -112,7 +112,6 @@
]
}
},
- "main": "matrix_grid",
"matrix_pins": {
"right": {
"cols": ["D7", "E6", "B4", "B5", "D4", "C6"],
diff --git a/keyboards/splitkb/aurora/sweep/keymaps/flinguenheld/rules.mk b/keyboards/splitkb/aurora/sweep/keymaps/flinguenheld/rules.mk
index 585c589d3a..dd3e45125d 100644
--- a/keyboards/splitkb/aurora/sweep/keymaps/flinguenheld/rules.mk
+++ b/keyboards/splitkb/aurora/sweep/keymaps/flinguenheld/rules.mk
@@ -10,7 +10,6 @@ OLED_ENABLE = yes
MOUSEKEY_ENABLE = yes
AUTO_SHIFT_ENABLE = yes
-AUTO_SHIFT_MODIFIERS = no
COMBO_ENABLE = yes
LEADER_ENABLE = yes
diff --git a/keyboards/splitkb/aurora/sweep/rev1/info.json b/keyboards/splitkb/aurora/sweep/rev1/info.json
index 7d7fec921f..b5588e2a3c 100644
--- a/keyboards/splitkb/aurora/sweep/rev1/info.json
+++ b/keyboards/splitkb/aurora/sweep/rev1/info.json
@@ -79,7 +79,6 @@
"matrix": [4, 4]
},
"soft_serial_pin": "D2",
- "main": "pin",
"matrix_pins": {
"right": {
"rows": ["B1", "F7", "F6", "B3"],
diff --git a/keyboards/splitkb/kyria/keymaps/cameronjlarsen/config.h b/keyboards/splitkb/kyria/keymaps/cameronjlarsen/config.h
deleted file mode 100644
index bcbdbac9e2..0000000000
--- a/keyboards/splitkb/kyria/keymaps/cameronjlarsen/config.h
+++ /dev/null
@@ -1,47 +0,0 @@
-/* Copyright 2022 Cameron Larsen <camjlarsen@gmail.com>
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-#pragma once
-
-#ifdef RGBLIGHT_ENABLE
-# define RGBLIGHT_EFFECT_BREATHING
-# define RGBLIGHT_EFFECT_RAINBOW_MOOD
-# define RGBLIGHT_EFFECT_RAINBOW_SWIRL
-# define RGBLIGHT_EFFECT_SNAKE
-# define RGBLIGHT_EFFECT_KNIGHT
-# define RGBLIGHT_EFFECT_CHRISTMAS
-# define RGBLIGHT_EFFECT_STATIC_GRADIENT
-# define RGBLIGHT_EFFECT_RGB_TEST
-# define RGBLIGHT_EFFECT_ALTERNATING
-# define RGBLIGHT_EFFECT_TWINKLE
-# define RGBLIGHT_HUE_STEP 8
-# define RGBLIGHT_SAT_STEP 8
-# define RGBLIGHT_VAL_STEP 8
-# define RGBLIGHT_LIMIT_VAL 150
-#endif
-
-// Enable rapid switch from tap to hold, disables double tap hold auto-repeat.
-#define TAPPING_FORCE_HOLD
-// Configure the global tapping term (default: 200ms)
-#define TAPPING_TERM 135
-#define TAPPING_TOGGLE 2
-#define ENCODER_DIRECTION_FLIP
-
-#define CAPS_WORD_IDLE_TIMEOUT 5000 // Turn off Caps Word after 5 seconds.
-
-// If you are using an Elite C rev3 on the slave side, uncomment the lines below:
-// #define SPLIT_USB_DETECT
-// #define NO_USB_STARTUP_CHECK
diff --git a/keyboards/splitkb/kyria/keymaps/cameronjlarsen/keymap.c b/keyboards/splitkb/kyria/keymaps/cameronjlarsen/keymap.c
deleted file mode 100644
index 902cb33b54..0000000000
--- a/keyboards/splitkb/kyria/keymaps/cameronjlarsen/keymap.c
+++ /dev/null
@@ -1,357 +0,0 @@
-/* Copyright 2022 Cameron Larsen <camjlarsen@gmail.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 QMK_KEYBOARD_H
-#include "features/oneshot.h"
-
-enum layers {
- _QWERTY = 0,
- SYM,
- NAV,
- FUN,
-};
-// Aliases for readability
-#define QWERTY DF(_QWERTY)
-#define LA_SYM LT(SYM, KC_TAB)
-#define LA_NAV MO(NAV)
-
-// One shot mods
-enum keycodes {
- OS_SHFT = QK_USER,
- OS_CTRL,
- OS_ALT,
- OS_GUI,
-};
-
-// Note: LAlt/Enter (ALT_ENT) is not the same thing as the keyboard shortcut Alt+Enter.
-// The notation `mod/tap` denotes a key that activates the modifier `mod` when held down, and
-// produces the key `tap` when tapped (i.e. pressed and released).
-
-// clang-format off
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-/*
- * Base Layer: QWERTY
- *
- * Inspiration:
- *
- * https://github.com/serebrov/qmk_firmware/blob/custom/keyboards/kyria/keymaps/kyria-mini/keymap.c
- *
- * Notes:
- * - F & J enables CAPSWORD, disables after 5 seconds
- * - Left thumb CTRL and SHIFT are one shot
- * - Enter is moved to ; location and ; is moved to Sym layer
- * - ESC can be accessed by NAV and G
- * - BKSP is accessed by NAV and Enter
- * - Tab is accessed by tapping SYM layer
- * - FUN layer is accessed by holding NAV and SYM layers at the same time
- *
- * ,-------------------------------------------. ,-------------------------------------------.
- * | | Q | W | E | R | T | | Y | U | I | O | P | |
- * |--------+------+------+------+------+------| |------+------+------+------+------+--------|
- * | | A | S | D | F | G | | H | J | K | L | Enter| |
- * |--------+------+------+------+------+------+-------------. ,-------------+------+------+------+------+------+--------|
- * | | Z | X | C | V | B | | | | | | N | M | , < | . > | / ? | |
- * `----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------'
- * | Mute | | Ctrl |Shift | Nav | | Sym | Space| GUI | | Menu |
- * | | | | | | | Tab | | | | |
- * `----------------------------------' `----------------------------------'
- */
- [_QWERTY] = LAYOUT(
- XXXXXXX , KC_Q , KC_W , KC_E , KC_R , KC_T , KC_Y, KC_U , KC_I , KC_O , KC_P , XXXXXXX,
- XXXXXXX , KC_A , KC_S , KC_D , KC_F , KC_G , KC_H, KC_J , KC_K , KC_L , KC_ENT , XXXXXXX,
- XXXXXXX , KC_Z , KC_X , KC_C , KC_V , KC_B , XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_N, KC_M ,KC_COMM, KC_DOT , KC_SLSH, XXXXXXX,
- KC_MUTE, XXXXXXX, OS_CTRL, OS_SHFT, LA_NAV , LA_SYM , KC_SPC , OS_GUI,XXXXXXX, KC_APP
- ),
-
-/*
- * Sym Layer: Numbers and symbols
- *
- * Notes:
- * - Symbols are grouped together and shifted symbols from middle row are on bottom row
- * - Exception is angle brackets
- *
- * ,-------------------------------------------. ,-------------------------------------------.
- * | | 1 ! | 2 @ | 3 # | 4 $ | 5 % | | 6 ^ | 7 & | 8 * | 9 ( | 0 ) | |
- * |--------+------+------+------+------+------| |------+------+------+------+------+--------|
- * | | ` | ( | ) | ' | = | | \ | - | [ | ] | ; | |
- * |--------+------+------+------+------+------+-------------. ,-------------+------+------+------+------+------+--------|
- * | | ~ | < | > | " | + | | | | | | | | _ | { | } | : | |
- * `----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------'
- * | | | | | | | | | | | |
- * | | | | | | | | | | | |
- * `----------------------------------' `----------------------------------'
- */
- [SYM] = LAYOUT(
- _______ , KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , _______,
- _______ , KC_GRV , KC_LPRN, KC_RPRN, KC_QUOT, KC_EQL , KC_BSLS, KC_MINS, KC_LBRC, KC_RBRC, KC_SCLN, _______,
- _______ , KC_TILD, KC_LABK, KC_RABK, KC_DQUO, KC_PLUS, _______, _______, _______, _______, KC_PIPE, KC_UNDS, KC_LCBR, KC_RCBR, KC_COLN, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
- ),
-
-/*
- * Nav Layer: Navigation, editing
- *
- * Notes:
- * - Vim style navigation keys
- * - BKSP on Enter
- * - DEL on /
- * - Esc on G
- *
- * ,-------------------------------------------. ,-------------------------------------------.
- * | | | | | BriUp| BriDn| | Home | PgDn | PgUp | End |PrtScr| |
- * |--------+------+------+------+------+------| |------+------+------+------+------+--------|
- * | | GUI | Alt | Ctrl | Shift| Esc | | ← | ↓ | ↑ | → | Bksp | |
- * |--------+------+------+------+------+------+-------------. ,-------------+------+------+------+------+------+--------|
- * | | | | | |NumLck| | | | | | MPrev| MPlay| MStop| MNext|Delete| |
- * `----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------'
- * | | | | | | | | | | | |
- * | | | | | | | | | | | |
- * `----------------------------------' `----------------------------------'
- */
- [NAV] = LAYOUT(
- _______, _______, _______, _______, KC_BRIU, KC_BRID, KC_HOME, KC_PGDN, KC_PGUP, KC_END, KC_PSCR, _______,
- _______, OS_GUI , OS_ALT , OS_CTRL, OS_SHFT, KC_ESC, KC_LEFT, KC_DOWN, KC_UP , KC_RGHT, KC_BSPC, _______,
- _______, _______, _______, _______, _______, KC_NUM, _______, _______, _______, _______, KC_MPRV, KC_MPLY, KC_MSTP, KC_MNXT, KC_DEL , _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
- ),
-
-/*
- * Function Layer: Function keys
- *
- * Notes:
- * - F1-F10 on bottom row
- * - F11-F12 on index finger inner row
- * - Homerow mods
- * - Num keys on top row
- *
- * ,-------------------------------------------. ,-------------------------------------------.
- * | | 1 ! | 2 @ | 3 # | 4 $ | 5 % | | 6 ^ | 7 & | 8 * | 9 ( | 0 ) | |
- * |--------+------+------+------+------+------| |------+------+------+------+------+--------|
- * | | GUI | Alt | Ctrl | Shift| F11 | | F12 | Shift| Ctrl | Alt | GUI | |
- * |--------+------+------+------+------+------+-------------. ,-------------+------+------+------+------+------+--------|
- * | | F1 | F2 | F3 | F4 | F5 | | | | | | F6 | F7 | F8 | F9 | F10 | |
- * `----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------'
- * | | | | | | | | | | | |
- * | | | | | | | | | | | |
- * `----------------------------------' `----------------------------------'
- */
- [FUN] = LAYOUT(
- _______, KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , _______,
- _______, OS_GUI , OS_ALT , OS_CTRL, OS_SHFT, KC_F11 , KC_F12 , OS_SHFT, OS_CTRL, OS_ALT , OS_GUI , _______,
- _______, KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_F5 , _______, _______, _______, _______, KC_F6 , KC_F7 , KC_F8 , KC_F9 , KC_F10 , _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
- ),
-
-// * Layer template
-// *
-// * ,-------------------------------------------. ,-------------------------------------------.
-// * | | | | | | | | | | | | | |
-// * |--------+------+------+------+------+------| |------+------+------+------+------+--------|
-// * | | | | | | | | | | | | | |
-// * |--------+------+------+------+------+------+-------------. ,-------------+------+------+------+------+------+--------|
-// * | | | | | | | | | | | | | | | | | |
-// * `----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------'
-// * | | | | | | | | | | | |
-// * | | | | | | | | | | | |
-// * `----------------------------------' `----------------------------------'
-// */
-// [_LAYERINDEX] = LAYOUT(
-// _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
-// _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
-// _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
-// _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
-// ),
-};
-
-enum combo_events {
- CAPS_COMBO
-};
-
-const uint16_t PROGMEM caps_combo[] = {KC_F, KC_J, COMBO_END};
-
-combo_t key_combos[] = {
- [CAPS_COMBO] = COMBO_ACTION(caps_combo),
- // Other combos...C
-};
-
-void process_combo_event(uint16_t combo_index, bool pressed) {
- switch(combo_index) {
- case CAPS_COMBO:
- if (pressed) {
- caps_word_on(); // Activate Caps Word!
- }
- break;
-
- // Other combos...
- }
-}
-
-bool is_oneshot_cancel_key(uint16_t keycode){
- switch (keycode) {
- case LA_NAV:
- return true;
- default:
- return false;
- }
-}
-
-bool is_oneshot_ignored_key(uint16_t keycode){
- switch (keycode) {
- case LA_NAV:
- case LA_SYM:
- case OS_SHFT:
- case OS_CTRL:
- case OS_ALT:
- case OS_GUI:
- return true;
- default:
- return false;
- }
-}
-
-oneshot_state os_shft_state = os_up_unqueued;
-oneshot_state os_ctrl_state = os_up_unqueued;
-oneshot_state os_alt_state = os_up_unqueued;
-oneshot_state os_cmd_state = os_up_unqueued;
-
-
-bool process_record_user(uint16_t keycode, keyrecord_t* record) {
- if (!process_caps_word(keycode, record)) { return false; }
- // Your macros ...
- update_oneshot(
- &os_shft_state, KC_LSFT, OS_SHFT,
- keycode, record
- );
-
- update_oneshot(
- &os_ctrl_state, KC_LCTL, OS_CTRL,
- keycode, record
- );
-
- update_oneshot(
- &os_alt_state, KC_LALT, OS_ALT,
- keycode, record
- );
-
- update_oneshot(
- &os_cmd_state, KC_LGUI, OS_GUI,
- keycode, record
- );
-
- return true;
-}
-
-bool caps_word_press_user(uint16_t keycode) {
- switch (keycode) {
- // Keycodes that continue Caps Word, with shift applied.
- case KC_A ... KC_Z:
- case KC_MINS:
- add_weak_mods(MOD_BIT(KC_LSFT)); // Apply shift to the next key.
- return true;
-
- // Keycodes that continue Caps Word, without shifting.
- case KC_1 ... KC_0:
- case KC_BSPC:
- case KC_DEL:
- case KC_UNDS:
- return true;
-
- default:
- return false; // Deactivate Caps Word.
- }
-}
-
-
-layer_state_t layer_state_set_user(layer_state_t state){
- return update_tri_layer_state(state, SYM, NAV, FUN);
-}
-
-#ifdef OLED_ENABLE
-oled_rotation_t oled_init_user(oled_rotation_t rotation) { return OLED_ROTATION_180; }
-
-bool oled_task_user(void) {
- if (is_keyboard_master()) {
- // QMK Logo and version information
- // clang-format off
- static const char PROGMEM qmk_logo[] = {
- 0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8a,0x8b,0x8c,0x8d,0x8e,0x8f,0x90,0x91,0x92,0x93,0x94,
- 0xa0,0xa1,0xa2,0xa3,0xa4,0xa5,0xa6,0xa7,0xa8,0xa9,0xaa,0xab,0xac,0xad,0xae,0xaf,0xb0,0xb1,0xb2,0xb3,0xb4,
- 0xc0,0xc1,0xc2,0xc3,0xc4,0xc5,0xc6,0xc7,0xc8,0xc9,0xca,0xcb,0xcc,0xcd,0xce,0xcf,0xd0,0xd1,0xd2,0xd3,0xd4,0};
- // clang-format on
- oled_write_P(qmk_logo, false);
- oled_write_P(PSTR("Kyria rev1.0\n\n"), false);
- // Host Keyboard Layer Status
- oled_write_P(PSTR("Layer: "), false);
- switch (get_highest_layer(layer_state | default_layer_state)) {
- case _QWERTY:
- oled_write_P(PSTR("QWERTY\n"), false);
- break;
- case SYM:
- oled_write_P(PSTR("Sym\n"), false);
- break;
- case NAV:
- oled_write_P(PSTR("Nav\n"), false);
- break;
- case FUN:
- oled_write_P(PSTR("Function\n"), false);
- break;
- default:
- oled_write_P(PSTR("Undefined\n"), false);
- }
- // Write host Keyboard LED Status to OLEDs
- led_t led_usb_state = host_keyboard_led_state();
- oled_write_P(led_usb_state.num_lock ? PSTR("NUMLCK ") : PSTR(" "), false);
- oled_write_P(led_usb_state.caps_lock ? PSTR("CAPLCK ") : PSTR(" "), false);
- oled_write_P(led_usb_state.scroll_lock ? PSTR("SCRLCK ") : PSTR(" "), false);
- oled_write_P(is_caps_word_on() ? PSTR("CAPS") : PSTR(" "), false);
- } else {
- // clang-format off
- static const char PROGMEM kyria_logo[] = {
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,128,192,224,240,112,120, 56, 60, 28, 30, 14, 14, 14, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 14, 14, 14, 30, 28, 60, 56,120,112,240,224,192,128,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,192,224,240,124, 62, 31, 15, 7, 3, 1,128,192,224,240,120, 56, 60, 28, 30, 14, 14, 7, 7,135,231,127, 31,255,255, 31,127,231,135, 7, 7, 14, 14, 30, 28, 60, 56,120,240,224,192,128, 1, 3, 7, 15, 31, 62,124,240,224,192, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,240,252,255, 31, 7, 1, 0, 0,192,240,252,254,255,247,243,177,176, 48, 48, 48, 48, 48, 48, 48,120,254,135, 1, 0, 0,255,255, 0, 0, 1,135,254,120, 48, 48, 48, 48, 48, 48, 48,176,177,243,247,255,254,252,240,192, 0, 0, 1, 7, 31,255,252,240, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,255,255,255, 0, 0, 0, 0, 0,254,255,255, 1, 1, 7, 30,120,225,129,131,131,134,134,140,140,152,152,177,183,254,248,224,255,255,224,248,254,183,177,152,152,140,140,134,134,131,131,129,225,120, 30, 7, 1, 1,255,255,254, 0, 0, 0, 0, 0,255,255,255, 0, 0, 0, 0,255,255, 0, 0,192,192, 48, 48, 0, 0,240,240, 0, 0, 0, 0, 0, 0,240,240, 0, 0,240,240,192,192, 48, 48, 48, 48,192,192, 0, 0, 48, 48,243,243, 0, 0, 0, 0, 0, 0, 48, 48, 48, 48, 48, 48,192,192, 0, 0, 0, 0, 0,
- 0, 0, 0,255,255,255, 0, 0, 0, 0, 0,127,255,255,128,128,224,120, 30,135,129,193,193, 97, 97, 49, 49, 25, 25,141,237,127, 31, 7,255,255, 7, 31,127,237,141, 25, 25, 49, 49, 97, 97,193,193,129,135, 30,120,224,128,128,255,255,127, 0, 0, 0, 0, 0,255,255,255, 0, 0, 0, 0, 63, 63, 3, 3, 12, 12, 48, 48, 0, 0, 0, 0, 51, 51, 51, 51, 51, 51, 15, 15, 0, 0, 63, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 48, 63, 63, 48, 48, 0, 0, 12, 12, 51, 51, 51, 51, 51, 51, 63, 63, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 15, 63,255,248,224,128, 0, 0, 3, 15, 63,127,255,239,207,141, 13, 12, 12, 12, 12, 12, 12, 12, 30,127,225,128, 0, 0,255,255, 0, 0,128,225,127, 30, 12, 12, 12, 12, 12, 12, 12, 13,141,207,239,255,127, 63, 15, 3, 0, 0,128,224,248,255, 63, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 3, 7, 15, 62,124,248,240,224,192,128, 1, 3, 7, 15, 30, 28, 60, 56,120,112,112,224,224,225,231,254,248,255,255,248,254,231,225,224,224,112,112,120, 56, 60, 28, 30, 15, 7, 3, 1,128,192,224,240,248,124, 62, 15, 7, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 3, 7, 15, 14, 30, 28, 60, 56,120,112,112,112,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,112,112,112,120, 56, 60, 28, 30, 14, 15, 7, 3, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
- };
- // clang-format on
- oled_write_raw_P(kyria_logo, sizeof(kyria_logo));
- }
- return false;
-}
-#endif
-
-#ifdef ENCODER_ENABLE
-bool encoder_update_user(uint8_t index, bool clockwise) {
- if (index == 0) {
- // Volume control
- if (clockwise) {
- tap_code(KC_VOLU);
- } else {
- tap_code(KC_VOLD);
- }
- } else if (index == 1) {
- // Page up/Page down
- if (clockwise) {
- tap_code(KC_PGDN);
- } else {
- tap_code(KC_PGUP);
- }
- }
- return false;
-}
-#endif
diff --git a/keyboards/splitkb/kyria/keymaps/cameronjlarsen/readme.md b/keyboards/splitkb/kyria/keymaps/cameronjlarsen/readme.md
deleted file mode 100644
index 7401609f35..0000000000
--- a/keyboards/splitkb/kyria/keymaps/cameronjlarsen/readme.md
+++ /dev/null
@@ -1,249 +0,0 @@
-# Kyria's Default Keymap
-
-![KLE render of the default Kyria keymap with QWERTY as the base layer. Layers are shown in sublegends.](https://i.ibb.co/RQZx2dY/default-kyria2.jpg)
-
-
-The default keymap contains 5 layers which allows it to include all keys found on an ANSI layout TKL keyboard plus media keys.
-Hardware features of the Kyria such as OLEDs, rotary encoders and underglow are also supported.
-
-The five different layers are the following:
-1. Base layer (QWERTY, Colemak-DH or Dvorak)
-2. Navigation layer
-3. Symbols/Numbers layer
-4. Function layer
-5. Adjust layer
-
-## Base layer(s)
-```
-Base Layer: -
-
-,-------------------------------------------. ,-------------------------------------------.
-| Tab | - | - | - | - | - | | - | - | - | - | - | Bksp |
-|--------+------+------+------+------+------| |------+------+------+------+------+--------|
-|Ctrl/Esc| - | - | - | - | - | | - | - | - | - | - |Ctrl/ - |
-|--------+------+------+------+------+------+-------------. ,-------------+------+------+------+------+------+--------|
-| LShift | - | - | - | - | - | [ { |CapsLk| |F-Keys| ] } | - | - | - | - | - | RShift |
-`----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------'
- |Adjust| LGUI | LAlt/| Space| Nav | | Sym | Space| AltGr| RGUI | Menu |
- | | | Enter| | | | | | | | |
- `----------------------------------' `----------------------------------'
-```
-Three different well-known keyboard layouts are provided to fill in the placeholder `-` keys: QWERTY, Colemak-DH, and Dvorak. The default layer can be changed at runtime, more info on that in the section on the [adjust layer](#adjust-layer).
-
-For the rest of this write-up, the base layer will be assumed to be QWERTY and will be used as a reference to describe physical keys, e.g. “<kbd>B</kbd> key” vs, the much more verbose, “lower inner index key”.
-
-```
-Base Layer: QWERTY
-
-,-------------------------------------------. ,-------------------------------------------.
-| Tab | Q | W | E | R | T | | Y | U | I | O | P | Bksp |
-|--------+------+------+------+------+------| |------+------+------+------+------+--------|
-|Ctrl/Esc| A | S | D | F | G | | H | J | K | L | ; : |Ctrl/' "|
-|--------+------+------+------+------+------+-------------. ,-------------+------+------+------+------+------+--------|
-| LShift | Z | X | C | V | B | [ { |CapsLk| |F-keys| ] } | N | M | , < | . > | / ? | RShift |
-`----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------'
- |Adjust| LGUI | LAlt/| Space| Nav | | Sym | Space| AltGr| RGUI | Menu |
- | | | Enter| | | | | | | | |
- `----------------------------------' `----------------------------------'
-```
-
-Aside from variations in the alpha cluster, the rest of the base keys remain the same and are designed to feel familiar.
-
-![Step-by-step animation of the transformation of an ortholinear TKL to a Kyria](https://i.imgur.com/uVDCOek.gif)
-
-<details>
-After making transformations to the classic ANSI US QWERTY TKL 60% to arrive to the layout of the Kyria, as illustrated in the animation above, the result looks like this:
-
-```
-,-------------------------------------------. ,-------------------------------------------.
-| Tab | Q | W | E | R | T | | Y | U | I | O | P | Bksp |
-|--------+------+------+------+------+------| |------+------+------+------+------+--------|
-| Cap Lk | A | S | D | F | G | | H | J | K | L | ; : | ' " |
-|--------+------+------+------+------+------+-------------. ,-------------+------+------+------+------+------+--------|
-| LShift | Z | X | C | V | B | | | | | | N | M | , < | . > | / ? | RShift |
-`----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------'
- | LCtrl| LGUI | LAlt | Space| | | | Space| AltGr| RGUI | Menu |
- | | | | | | | | | | | |
- `----------------------------------' '----------------------------------'
-```
-
-First thing to notice is the presence of blank keys. To fill in the blank keys above the <kbd>Space</kbd> keys, we can take inspiration from other split keyboards featuring an extra inner index column on each half. A common mapping for those kind of keys are the bracket keys that got removed in the fourth step of the animated transformation. The thumb keys besides <kbd>Space</kbd>s is prime real estate for dedicated layer-switching keys. It doesn't matter on which side is assigned the sym-layer-switch key but it helps to keep the nav-layer-switch on the left in order to keep the arrow keys on the right side like on a classic keyboard, so we'll put nav on the left and sym on the right. We'll address the remaining blank thumb keys later.
-
-The base layer is starting to form but there remains some flaws. One glaring issue is the position of Control. Control is a very commonly used function but the key on which it sits right now is way too tucked in under the hand to be able to press it comfortably with either the thumb or the pinky from resting position. In fact, installing a rotary encoder there is a common move among Kyria users and I guarantee you that activating Control by holding down a rotary encoder does not spark joy. Instead, let's employ a popular trick that involves remapping the current Caps Lock key, which is positioned at a comfortable position on the keyboard, to Control.
-
-We can go further though; a variant of this trick makes the Control key produce Escape when tapped. This is called a “modtap”. There is no use to tapping Control by itself without chording it with another key and there is no use to holding down the Esc key so why not combine the two into a single key?
-
-All of this leaves us with three blank keys.
-
-```
-,-------------------------------------------. ,-------------------------------------------.
-| Tab | Q | W | E | R | T | | Y | U | I | O | P | Bksp |
-|--------+------+------+------+------+------| |------+------+------+------+------+--------|
-|Ctrl/Esc| A | S | D | F | G | | H | J | K | L | ; : | ' " |
-|--------+------+------+------+------+------+-------------. ,-------------+------+------+------+------+------+--------|
-| LShift | Z | X | C | V | B | [ { | | | | ] } | N | M | , < | . > | / ? | RShift |
-`--------+-------------+--------------------+------+------| |------+------+--------------------+------+---------------'
- | | LGUI | LAlt | Space| Nav | | Sym | Space| AltGr| RGUI | Menu |
- | | | | | | | | | | | |
- `----------------------------------' '----------------------------------'
-```
-
-These keys are not easily reachable while touch typing (that is, not reachable without picking up your hand) and should thus be associated with functions that you are not likely to be typed within a stream of text. The idea is that if you have to pick up your hand to hit a key, you want it to be at a time when you are likely to be pausing your interaction with the machine, rather than in the midst of a flurry of typing. They're thus well suited for accessing the adjust layer and the function layer. We can also toss in Caps Lock even though it is an editing-type function that gets used within a stream of text because shouting in ALL-CAPS should be a deliberate action.
-
-```
-,-------------------------------------------. ,-------------------------------------------.
-| Tab | Q | W | E | R | T | | Y | U | I | O | P | Bksp |
-|--------+------+------+------+------+------| |------+------+------+------+------+--------|
-|Ctrl/Esc| A | S | D | F | G | | H | J | K | L | ; : | ' " |
-|--------+------+------+------+------+------+-------------. ,-------------+------+------+------+------+------+--------|
-| LShift | Z | X | C | V | B | [ { |CapsLk| |F-keys| ] } | N | M | , < | . > | / ? | RShift |
-`----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------'
- |Adjust| LGUI | LAlt | Space| Nav | | Sym | Space| AltGr| RGUI | Menu |
- | | | | | | | | | | | |
- `----------------------------------' `----------------------------------'
-```
-
-The next glaring issue is the absence of an Enter key on the current base layer this far. Enter is a very frequently used key so it deserves to be placed at a good spot in the keymap. The best way to insert it in the keymap with minimal changes to the current layout is to use modtaps. A tempting solution is to turn the <kbd>RShift</kbd> key into a <kbd>RShift/Enter</kbd> modtap but that can result in chat messages sent too frustratingly early when you're not used to it. Using GUI is also sub-optimal because tapping the GUI modifier actually has a use as opposed to taps of the Control or the Shift key. Pressing and releasing the GUI key by itself opens the App menu in many desktop environments. The natural choice is thus <kbd>LAlt/Enter</kbd>. That way, Enter is 1u away from resting thumb position and is unlikely to get accidentally activated because Alt is very rarely used in the midst of prose.
-
-Finally, we're one Quality-Of-Life update away from the actual base layer. <kbd>Ctrl/' "</kbd> not only preserves symmetry in the keymap with <kbd>Ctrl/Esc</kbd> but also helps balance the load between your pinkies and invites you to use both hands instead of contortions. Perhaps more importantly, it also frees you from the necessity of picking up your hand, breaking touch typing position and pressing a pinky key with your ring finger in order to execute Ctrl+A or Ctrl+Z. That becomes even more important on a board with such an aggressive pinky columnar stagger like the Kyria.
-
-
-```
-,-------------------------------------------. ,-------------------------------------------.
-| Tab | Q | W | E | R | T | | Y | U | I | O | P | Bksp |
-|--------+------+------+------+------+------| |------+------+------+------+------+--------|
-|Ctrl/Esc| A | S | D | F | G | | H | J | K | L | ; : |Ctrl/' "|
-|--------+------+------+------+------+------+-------------. ,-------------+------+------+------+------+------+--------|
-| LShift | Z | X | C | V | B | [ { |CapsLk| |F-keys| ] } | N | M | , < | . > | / ? | RShift |
-`----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------'
- |Adjust| LGUI | LAlt/| Space| Nav | | Sym | Space| AltGr| RGUI | Menu |
- | | | Enter| | | | | | | | |
- `----------------------------------' `----------------------------------'
-```
-
-</details>
-
-## Navigation layer
-
-```
-Nav Layer: Media, navigation
-
-,-------------------------------------------. ,-------------------------------------------.
-| | | | | | | | PgUp | Home | ↑ | End | VolUp| Delete |
-|--------+------+------+------+------+------| |------+------+------+------+------+--------|
-| | GUI | Alt | Ctrl | Shift| | | PgDn | ← | ↓ | → | VolDn| Insert |
-|--------+------+------+------+------+------+-------------. ,-------------+------+------+------+------+------+--------|
-| | | | | | | |ScLck | | | | Pause|M Prev|M Play|M Next|VolMut| PrtSc |
-`----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------'
- | | | | | | | | | | | |
- | | | | | | | | | | | |
- `----------------------------------' `----------------------------------'
-```
-
-This is where you'll find all the keys that are generally between the main block of a classic keyboard and the numpad in addition to media controls and modifiers on easy access on the home row for fast and comfortable chording with navigation keys.
-
-Useful mnemonics:
-- “GACS” to remember the order of the modifiers on the left-hand home row
-- <kbd>Scroll Lock</kbd> is on the same key as <kbd>Caps Lock</kbd> because they're both locks
-- <kbd>Delete</kbd> is on the same key as <kbd>Backspace</kbd> because they both erase characters
-- <kbd>Home</kbd> is the leftmost position on the current line so it is above <kbd>←</kbd>. Same logic applies for <kbd>End</kbd>.
-- <kbd>Media Previous</kbd> = ⏮, <kbd>Media Next</kbd> = ⏭
-- <kbd>Page Up</kbd>, <kbd>Page Down</kbd> and <kbd>Volume Up</kbd>, <kbd>Volume Down</kbd> are positioned like the main <kbd>Up</kbd> and <kbd>Down</kbd> keys.
-
-## Sym layer
-```
-Sym Layer: Numbers, symbols
-
-,-------------------------------------------. ,-------------------------------------------.
-| ` | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | = |
-|--------+------+------+------+------+------| |------+------+------+------+------+--------|
-| ~ | ! | @ | # | $ | % | | ^ | & | * | ( | ) | + |
-|--------+------+------+------+------+------+-------------. ,-------------+------+------+------+------+------+--------|
-| | | \ | : | ; | - | [ | { | | | | } | ] | _ | , | . | / | ? |
-`----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------'
- | | | | | | | | | | | |
- | | | | | | | | | | | |
- `----------------------------------' `----------------------------------'
-```
-The top row is the unshifted num row, the home row of the layer is the shifted num row and the bottom row contains the hyphen `-` and the underscore `_` on the best lower row spot because of how frequent they are as well as redundant symbols that are already present on the base layer but are reproduced here to avoid juggling back and forth between base, shift, and sym when typing a string of symbols.
-
-The layout of the first two rows needs no introduction, you're already used to them but it's worth looking into the structure of the bottom row.
-
-The two halves are mirrored in a sense. On the right, you can find <kbd>,</kbd> <kbd>.</kbd> <kbd>/</kbd> at their usual spots with the addition of <kbd>Shift</kbd>+<kbd>/</kbd>=<kbd>?</kbd> to the right of the <kbd>/</kbd> key to remove the need to press simultaneously <kbd>Sym</kbd> and a <kbd>Shift</kbd> key to access `?`.
-
-Now, if you look at the left side, you'll notice that the mirror of <kbd>,</kbd> is <kbd>;</kbd>, the mirror of <kbd>.</kbd> is <kbd>:</kbd> and the mirror of <kbd>/</kbd> is <kbd>\\</kbd>. The same logic used for <kbd>Shift</kbd>+<kbd>/</kbd>=<kbd>?</kbd> also applies to <kbd>Shift</kbd>+<kbd>\\</kbd>=<kbd>|</kbd>.
-
-In case you wish to combine <kbd>Shift</kbd> with a symbol key anyways, you can hold down <kbd>Shift</kbd> on the base layer with your pinky, activate <kbd>Sym</kbd> with your right thumb and while still holding down the <kbd>Shift</kbd> key, tap your desired symbol key. Same thing if you need <kbd>Ctrl</kbd>+<kbd>Digit</kbd>.
-
-## Function layer
-```
-Function Layer: Function keys
-
-,-------------------------------------------. ,-------------------------------------------.
-| | F9 | F10 | F11 | F12 | | | | | | | | |
-|--------+------+------+------+------+------| |------+------+------+------+------+--------|
-| | F5 | F6 | F7 | F8 | | | | Shift| Ctrl | Alt | GUI | |
-|--------+------+------+------+------+------+-------------. ,-------------+------+------+------+------+------+--------|
-| | F1 | F2 | F3 | F4 | | | | | | | | | | | | |
-`----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------'
- | | | | | | | | | | | |
- | | | | | | | | | | | |
- `----------------------------------' `----------------------------------'
-```
-In a similar fashion to the nav layer, pressing down `FKEYS` with the right thumb enables a numpad of function keys on the opposite hand and modifiers on the right-hand home row. Once again, mirror symmetry is leveraged in this keymap for the order of the right-hand modifiers.
-
-The <kbd>Alt</kbd> modifier, despite being situated on the right half of the keyboard is *not* `KC_RALT`, it is `KC_LALT`. `KC_RALT` is actually the <kbd>AltGr</kbd> key which generally acts very differently to the left <kbd>Alt</kbd> key. Keyboard shortcuts involving <kbd>AltGr</kbd>+<kbd>F#</kbd> are rare and infrequent as opposed to the much more common <kbd>Alt</kbd>+<kbd>F#</kbd> shortcuts. Consequently, `KC_LALT` was chosen for the function layer.
-
-Since there are more than 10 function keys, the cluster of F-keys does not follow the usual 3×3+1 numpad arrangement.
-
-
-## Adjust layer
-```
-Adjust Layer: Default layer settings, RGB
-
-,-------------------------------------------. ,-------------------------------------------.
-| | | |QWERTY| | | | | | | | | |
-|--------+------+------+------+------+------| |------+------+------+------+------+--------|
-| | | |Dvorak| | | | TOG | SAI | HUI | VAI | MOD | |
-|--------+------+------+------+------+------+-------------. ,-------------+------+------+------+------+------+--------|
-| | | |Colmak| | | | | | | | | SAD | HUD | VAD | RMOD | |
-`----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------'
- | | | | | | | | | | | |
- | | | | | | | | | | | |
- `----------------------------------' `----------------------------------'
-```
-
-Default layer settings on the left and various RGB underglow controls on the right.
-
-The default layer settings are lined up on the middle finger column because the home middle finger key is <kbd>D</kbd> on QWERTY (like the “D” in “Dvorak”) and the lower middle finger key is <kbd>C</kbd> on QWERTY (like the “C” in “Colemak”). I can hear you say that “QWERTY” doesn't start with “E” but Dvorak and Colemak were already aligned in a column so the QWERTY may as well join the formation.
-
-NOTE: The default layer settings set by those keys are *NOT* stored in EEPROM and thus do not persist through boots. If you wish to change the default layer in a non-volatile manner, either change the order of the layers in the firmware, for example like so if you want to set Dvorak as the new default:
-```c
-enum layers {
- _DVORAK = 0,
- _QWERTY,
- _COLEMAK_DH,
- _NAV,
- _SYM,
- _FUNCTION,
- _ADJUST
-};
-```
-or re-define the `QWERTY`, `COLEMAK` and `DVORAK` keys to point to custom keycodes starting on `SAFE_RANGE` and calling the `set_single_persistent_default_layer` function inside of `process_record_user`.
-
-## Hardware Features
-
-### Rotary Encoder
-The left rotary encoder is programmed to control the volume whereas the right encoder sends <kbd>PgUp</kbd> or <kbd>PgDn</kbd> on every turn.
-
-### OLEDs
-The OLEDs display the current layer at the top of the active layers stack, the Kyria logo and lock status (caps lock, num lock, scroll lock).
-
-### Underglow
-The underglow LEDs should be red.
-
-## Going further…
-
-This default keymap can be used as is, unchanged, as a daily driver for your Kyria but you're invited to treat your keymap like a bonsai. At the beginning, it's just like the default keymap but from time to time, you can tweak it a little. Cut a little key here, let another combo grow there. Slowly but surely it will be a unique keymap that will fit you like a glove.
-
-Check out the #keymap-ideas channel on the official SplitKB Discord server for inspiration.
diff --git a/keyboards/splitkb/kyria/keymaps/cameronjlarsen/rules.mk b/keyboards/splitkb/kyria/keymaps/cameronjlarsen/rules.mk
deleted file mode 100644
index c58bda2c50..0000000000
--- a/keyboards/splitkb/kyria/keymaps/cameronjlarsen/rules.mk
+++ /dev/null
@@ -1,12 +0,0 @@
-BOOTMAGIC_ENABLE = no
-BOOTLOADER = atmel-dfu
-OLED_ENABLE = yes
-ENCODER_ENABLE = yes # Enables the use of one or more encoders
-RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
-COMMAND_ENABLE = no # Disables the command feature
-COMBO_ENABLE = yes
-MOUSEKEY_ENABLE = no
-CONSOLE_ENABLE = no
-AUDIO_ENABLE = no
-CAPS_WORD_ENABLE = yes
-CUSTOM_ONESHOT_ENABLE = yes
diff --git a/keyboards/splitkb/kyria/keymaps/cjuniet/config.h b/keyboards/splitkb/kyria/keymaps/cjuniet/config.h
deleted file mode 100644
index 0643536330..0000000000
--- a/keyboards/splitkb/kyria/keymaps/cjuniet/config.h
+++ /dev/null
@@ -1,46 +0,0 @@
-/* Copyright 2019 Thomas Baart <thomas@splitkb.com>
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-#pragma once
-
-#ifdef OLED_ENABLE
- #define OLED_DISPLAY_128X64
- #define OLED_FONT_H "users/cjuniet/glcdfont.c"
-#endif
-
-#ifdef RGBLIGHT_ENABLE
-#define RGBLIGHT_EFFECT_BREATHING
-#define RGBLIGHT_EFFECT_RAINBOW_MOOD
-#define RGBLIGHT_EFFECT_RAINBOW_SWIRL
-#define RGBLIGHT_EFFECT_SNAKE
-#define RGBLIGHT_EFFECT_KNIGHT
-#define RGBLIGHT_EFFECT_CHRISTMAS
-#define RGBLIGHT_EFFECT_STATIC_GRADIENT
-#define RGBLIGHT_EFFECT_RGB_TEST
-#define RGBLIGHT_EFFECT_ALTERNATING
-#define RGBLIGHT_EFFECT_TWINKLE
- #define RGBLIGHT_HUE_STEP 8
- #define RGBLIGHT_SAT_STEP 8
- #define RGBLIGHT_VAL_STEP 8
- #define RGBLIGHT_SLEEP
-#endif
-
-#define EE_HANDS
-
-#define LEADER_PER_KEY_TIMING
-#define LEADER_TIMEOUT 250
-
-#define TAPPING_TOGGLE 2
diff --git a/keyboards/splitkb/kyria/keymaps/cjuniet/default.json b/keyboards/splitkb/kyria/keymaps/cjuniet/default.json
deleted file mode 100644
index f769c9a5dd..0000000000
--- a/keyboards/splitkb/kyria/keymaps/cjuniet/default.json
+++ /dev/null
@@ -1,33 +0,0 @@
-{
- "keyboard": "kyria/rev1",
- "keymap": "cjuniet",
- "layout": "LAYOUT",
- "layers": [
- [
- "KC_ESC", "KC_Q", "KC_W", "KC_F", "KC_P", "KC_G", "KC_J", "KC_L", "KC_U", "KC_Y", "KC_SCLN", "KC_BSLS",
- "LCTL_T(KC_BSPC)", "KC_A", "KC_R", "KC_S", "KC_T", "KC_D", "KC_H", "KC_N", "KC_E", "KC_I", "KC_O", "KC_QUOT",
- "LSFT_T(KC_DEL)", "KC_Z", "KC_X", "KC_C", "KC_V", "KC_B", "SC_LAPO", "LGUI_T(KC_LBRC)", "RGUI_T(KC_RBRC)", "SC_RAPC", "KC_K", "KC_M", "KC_COMM", "KC_DOT", "KC_SLSH", "KC_MINS",
- "KC_TAB", "KC_LGUI", "TT(1)", "LSFT_T(KC_SPC)", "LCTL_T(KC_ENT)", "RCTL_T(KC_ENT)", "RSFT_T(KC_SPC)", "TT(2)", "KC_RGUI", "QK_LEAD"
- ],
- [
- "KC_TRNS", "KC_EXLM", "KC_AT", "KC_HASH", "KC_DLR", "KC_PERC", "KC_CIRC", "KC_AMPR", "KC_ASTR", "KC_LPRN", "KC_RPRN", "KC_TILD",
- "KC_TRNS", "KC_MPLY", "KC_MS_L", "KC_MS_U", "KC_MS_R", "KC_WH_U", "KC_PGUP", "KC_LEFT", "KC_UP", "KC_RGHT", "KC_VOLU", "KC_GRV",
- "KC_TRNS", "KC_MUTE", "KC_BTN1", "KC_MS_D", "KC_BTN2", "KC_WH_D", "KC_LT", "KC_TRNS", "KC_TRNS", "KC_GT", "KC_PGDN", "KC_HOME", "KC_DOWN", "KC_END", "KC_VOLD", "KC_EQL",
- "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS"
- ],
- [
- "KC_TRNS", "KC_MNXT", "KC_F7", "KC_F8", "KC_F9", "KC_F10", "KC_PGUP", "KC_P7", "KC_P8", "KC_P9", "KC_PPLS", "KC_PMNS",
- "KC_TRNS", "KC_MPLY", "KC_F4", "KC_F5", "KC_F6", "KC_F11", "KC_TAB", "KC_P4", "KC_P5", "KC_P6", "KC_PAST", "KC_PSLS",
- "KC_TRNS", "KC_MPRV", "KC_F1", "KC_F2", "KC_F3", "KC_F12", "KC_LPRN", "KC_LT", "KC_GT", "KC_RPRN", "KC_PGDN", "KC_P1", "KC_P2", "KC_P3", "KC_EQL", "KC_PENT",
- "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_P0", "KC_PDOT"
- ],
- [
- "KC_TRNS", "KC_NUM", "KC_CAPS", "KC_SCRL", "KC_LNG1", "KC_LNG2", "KC_TRNS", "KC_PSCR", "KC_SCRL", "KC_PAUS", "KC_TRNS", "KC_TRNS",
- "KC_TRNS", "RGB_TOG", "RGB_SAI", "RGB_HUI", "RGB_VAI", "RGB_MOD", "KC_TRNS", "KC_INS", "KC_HOME", "KC_PGUP", "KC_TRNS", "KC_TRNS",
- "KC_TRNS", "KC_NO", "RGB_SAD", "RGB_HUD", "RGB_VAD", "RGB_RMOD", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_DEL", "KC_END", "KC_PGDN", "KC_TRNS", "KC_TRNS",
- "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS"
- ]
- ],
- "author": "",
- "notes": ""
-}
diff --git a/keyboards/splitkb/kyria/keymaps/cjuniet/keymap.c b/keyboards/splitkb/kyria/keymaps/cjuniet/keymap.c
deleted file mode 100644
index 4a4bf91177..0000000000
--- a/keyboards/splitkb/kyria/keymaps/cjuniet/keymap.c
+++ /dev/null
@@ -1,121 +0,0 @@
-#include QMK_KEYBOARD_H
-#include "cjuniet.h"
-
-enum layers {
- _COLEMAK = 0,
- _SYMBOLS,
- _NUMBERS,
- _SPECIALS
-};
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [_COLEMAK] = LAYOUT(
- KC_ESC, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSLS,
- LCTL_T(KC_BSPC), KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT,
- LSFT_T(KC_DEL), KC_Z, KC_X, KC_C, KC_V, KC_B, SC_LAPO, LGUI_T(KC_LBRC), RGUI_T(KC_RBRC), SC_RAPC, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_MINS,
- KC_TAB, KC_LGUI, TT(_SYMBOLS), LSFT_T(KC_SPC), LCTL_T(KC_ENT), RCTL_T(KC_ENT), RSFT_T(KC_SPC), TT(_NUMBERS), KC_RGUI, QK_LEAD),
- [_SYMBOLS] = LAYOUT(
- KC_TRNS, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_TILD,
- KC_TRNS, KC_MPLY, KC_MS_L, KC_MS_U, KC_MS_R, KC_WH_U, KC_PGUP, KC_LEFT, KC_UP, KC_RGHT, KC_VOLU, KC_GRV,
- KC_TRNS, KC_MUTE, KC_BTN1, KC_MS_D, KC_BTN2, KC_WH_D, KC_LT, KC_TRNS, KC_TRNS, KC_GT, KC_PGDN, KC_HOME, KC_DOWN, KC_END, KC_VOLD, KC_EQL,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
- [_NUMBERS] = LAYOUT(
- KC_TRNS, KC_MNXT, KC_F7, KC_F8, KC_F9, KC_F10, KC_PGUP, KC_P7, KC_P8, KC_P9, KC_PPLS, KC_PMNS,
- KC_TRNS, KC_MPLY, KC_F4, KC_F5, KC_F6, KC_F11, KC_TAB, KC_P4, KC_P5, KC_P6, KC_PAST, KC_PSLS,
- KC_TRNS, KC_MPRV, KC_F1, KC_F2, KC_F3, KC_F12, KC_LPRN, KC_LT, KC_GT, KC_RPRN, KC_PGDN, KC_P1, KC_P2, KC_P3, KC_EQL, KC_PENT,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_P0, KC_PDOT),
- [_SPECIALS] = LAYOUT(
- KC_TRNS, KC_NUM, KC_CAPS, KC_SCRL, KC_LNG1, KC_LNG2, KC_TRNS, KC_PSCR, KC_SCRL, KC_PAUS, KC_TRNS, KC_TRNS,
- KC_TRNS, RGB_TOG, RGB_SAI, RGB_HUI, RGB_VAI, RGB_MOD, KC_TRNS, KC_INS, KC_HOME, KC_PGUP, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_NO, RGB_SAD, RGB_HUD, RGB_VAD, RGB_RMOD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_DEL, KC_END, KC_PGDN, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS)
-};
-
-void keyboard_post_init_user(void) {
- led_t led_state = host_keyboard_led_state();
- if (!led_state.num_lock) {
- tap_code(KC_NUM_LOCK);
- }
-}
-
-layer_state_t layer_state_set_user(layer_state_t state) {
- return update_tri_layer_state(state, _SYMBOLS, _NUMBERS, _SPECIALS);
-}
-
-void leader_end_user(void) {
- // Lock screen (macOS)
- if (leader_sequence_one_key(KC_ESC)) {
- tap_code16(LCTL(LGUI(KC_Q)));
- }
-
- // Escape-Shift-Z-Z (VIM)
- if (leader_sequence_one_key(KC_Z)) {
- SEND_STRING(SS_TAP(X_ESC) SS_LSFT("zz"));
- }
-
- // Dead grave accent (macOS)
- if (leader_sequence_one_key(KC_E)) {
- tap_code16(LALT(KC_GRAVE));
- }
-}
-
-oled_rotation_t oled_init_user(oled_rotation_t rotation) {
- return OLED_ROTATION_180;
-}
-
-static void render_kyria_logo(void) {
- static const char PROGMEM kyria_logo[] = {
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,128,192,224,240,112,120, 56, 60, 28, 30, 14, 14, 14, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 14, 14, 14, 30, 28, 60, 56,120,112,240,224,192,128,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,192,224,240,124, 62, 31, 15, 7, 3, 1,128,192,224,240,120, 56, 60, 28, 30, 14, 14, 7, 7,135,231,127, 31,255,255, 31,127,231,135, 7, 7, 14, 14, 30, 28, 60, 56,120,240,224,192,128, 1, 3, 7, 15, 31, 62,124,240,224,192, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,240,252,255, 31, 7, 1, 0, 0,192,240,252,254,255,247,243,177,176, 48, 48, 48, 48, 48, 48, 48,120,254,135, 1, 0, 0,255,255, 0, 0, 1,135,254,120, 48, 48, 48, 48, 48, 48, 48,176,177,243,247,255,254,252,240,192, 0, 0, 1, 7, 31,255,252,240, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,255,255,255, 0, 0, 0, 0, 0,254,255,255, 1, 1, 7, 30,120,225,129,131,131,134,134,140,140,152,152,177,183,254,248,224,255,255,224,248,254,183,177,152,152,140,140,134,134,131,131,129,225,120, 30, 7, 1, 1,255,255,254, 0, 0, 0, 0, 0,255,255,255, 0, 0, 0, 0,255,255, 0, 0,192,192, 48, 48, 0, 0,240,240, 0, 0, 0, 0, 0, 0,240,240, 0, 0,240,240,192,192, 48, 48, 48, 48,192,192, 0, 0, 48, 48,243,243, 0, 0, 0, 0, 0, 0, 48, 48, 48, 48, 48, 48,192,192, 0, 0, 0, 0, 0,
- 0, 0, 0,255,255,255, 0, 0, 0, 0, 0,127,255,255,128,128,224,120, 30,135,129,193,193, 97, 97, 49, 49, 25, 25,141,237,127, 31, 7,255,255, 7, 31,127,237,141, 25, 25, 49, 49, 97, 97,193,193,129,135, 30,120,224,128,128,255,255,127, 0, 0, 0, 0, 0,255,255,255, 0, 0, 0, 0, 63, 63, 3, 3, 12, 12, 48, 48, 0, 0, 0, 0, 51, 51, 51, 51, 51, 51, 15, 15, 0, 0, 63, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 48, 63, 63, 48, 48, 0, 0, 12, 12, 51, 51, 51, 51, 51, 51, 63, 63, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 15, 63,255,248,224,128, 0, 0, 3, 15, 63,127,255,239,207,141, 13, 12, 12, 12, 12, 12, 12, 12, 30,127,225,128, 0, 0,255,255, 0, 0,128,225,127, 30, 12, 12, 12, 12, 12, 12, 12, 13,141,207,239,255,127, 63, 15, 3, 0, 0,128,224,248,255, 63, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 3, 7, 15, 62,124,248,240,224,192,128, 1, 3, 7, 15, 30, 28, 60, 56,120,112,112,224,224,225,231,254,248,255,255,248,254,231,225,224,224,112,112,120, 56, 60, 28, 30, 15, 7, 3, 1,128,192,224,240,248,124, 62, 15, 7, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 3, 7, 15, 14, 30, 28, 60, 56,120,112,112,112,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,112,112,112,120, 56, 60, 28, 30, 14, 15, 7, 3, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
- };
- oled_write_raw_P(kyria_logo, sizeof(kyria_logo));
-}
-
-static void render_qmk_logo(void) {
- static const char PROGMEM qmk_logo[] = {
- 0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8a,0x8b,0x8c,0x8d,0x8e,0x8f,0x90,0x91,0x92,0x93,0x94,
- 0xa0,0xa1,0xa2,0xa3,0xa4,0xa5,0xa6,0xa7,0xa8,0xa9,0xaa,0xab,0xac,0xad,0xae,0xaf,0xb0,0xb1,0xb2,0xb3,0xb4,
- 0xc0,0xc1,0xc2,0xc3,0xc4,0xc5,0xc6,0xc7,0xc8,0xc9,0xca,0xcb,0xcc,0xcd,0xce,0xcf,0xd0,0xd1,0xd2,0xd3,0xd4,0};
-
- oled_write_P(qmk_logo, false);
-}
-
-static void render_status(void) {
- render_qmk_logo();
- oled_write_ln_P(PSTR(" Chris's Kyria\n"), false);
-
- oled_write_P(PSTR(" "), false);
- switch (get_highest_layer(layer_state)) {
- case _COLEMAK:
- oled_write_P(PSTR("Colemak"), false);
- break;
- case _SYMBOLS:
- oled_write_P(PSTR("Symbols"), false);
- break;
- case _NUMBERS:
- oled_write_P(PSTR("Numbers"), false);
- break;
- case _SPECIALS:
- oled_write_P(PSTR("Special"), false);
- break;
- default:
- oled_write_P(PSTR("Undefined"), false);
- }
- oled_write_ln_P(PSTR(" Layer\n"), false);
-}
-
-bool oled_task_user(void) {
- if (is_keyboard_master()) {
- render_status();
- render_status_bar();
- } else {
- render_kyria_logo();
- }
- return false;
-}
diff --git a/keyboards/splitkb/kyria/keymaps/cjuniet/rules.mk b/keyboards/splitkb/kyria/keymaps/cjuniet/rules.mk
deleted file mode 100644
index 968012ece1..0000000000
--- a/keyboards/splitkb/kyria/keymaps/cjuniet/rules.mk
+++ /dev/null
@@ -1,6 +0,0 @@
-ENCODER_ENABLE = no
-EXTRAKEY_ENABLE = yes
-LEADER_ENABLE = yes
-MOUSEKEY_ENABLE = yes
-OLED_ENABLE = yes
-RGBLIGHT_ENABLE = no
diff --git a/keyboards/splitkb/kyria/keymaps/cwebster2/config.h b/keyboards/splitkb/kyria/keymaps/cwebster2/config.h
deleted file mode 100644
index e6fc5e2d0f..0000000000
--- a/keyboards/splitkb/kyria/keymaps/cwebster2/config.h
+++ /dev/null
@@ -1,48 +0,0 @@
-/* Copyright 2020 Casey Webster <casey@e1337.dev>
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-#pragma once
-
-#ifdef OLED_ENABLE
- #define OLED_DISPLAY_128X64
-#endif
-
-#ifdef RGBLIGHT_ENABLE
- //#define RGBLIGHT_EFFECT_ALTERNATING
- #define RGBLIGHT_EFFECT_BREATHING
- //#define RGBLIGHT_EFFECT_CHRISTMAS
- //#define RGBLIGHT_EFFECT_KNIGHT
- //#define RGBLIGHT_EFFECT_RAINBOW_MOOD
- //#define RGBLIGHT_EFFECT_RAINBOW_SWIRL
- //#define RGBLIGHT_EFFECT_RGB_TEST
- //#define RGBLIGHT_EFFECT_SNAKE
- //#define RGBLIGHT_EFFECT_STATIC_GRADIENT
- //#define RGBLIGHT_EFFECT_TWINKLE
- #define RGBLIGHT_HUE_STEP 8
- #define RGBLIGHT_SAT_STEP 8
- #define RGBLIGHT_VAL_STEP 8
- #define RGBLIGHT_SLEEP
- #define RGBLIGHT_LIMIT_VAL 128
- #define RGBLIGHT_EFFECT_BREATHE_MAX 128
- #define RGBLIGHT_LAYERS
- #define RGBLIGHT_MAX_LAYERS 16
- //#define RGBLIGHT_STARTUP_ANIMATION
-#endif
-
-#define EE_HANDS
-
-//#define DEBUG_MATRIX_SCAN_RATE
-//#define SPLIT_MODS_ENABLE
diff --git a/keyboards/splitkb/kyria/keymaps/cwebster2/keymap.c b/keyboards/splitkb/kyria/keymaps/cwebster2/keymap.c
deleted file mode 100644
index e93857f4cc..0000000000
--- a/keyboards/splitkb/kyria/keymaps/cwebster2/keymap.c
+++ /dev/null
@@ -1,411 +0,0 @@
-/* Copyright 2020 Casey Webster <casey@e1337.dev>
- *
- * 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 "raw_hid.h"
-#define RAW_EPSIZE 8
-#include <stdio.h>
-
-#include "cwebster2.h"
-
-#ifdef WPM_ENABLE
-char wpm_str[10];
-uint16_t wpm_graph_timer = 0;
-#endif
-
-#ifdef COMBO_ENABLE
-enum combos {
- ZX_COPY,
- CV_PASTE,
- PB_PARENS,
- FP_CURLY,
- DV_SQUARE
-};
-
-const uint16_t PROGMEM copy_combo[] = { KC_Z, KC_X, COMBO_END };
-const uint16_t PROGMEM paste_combo[] = { KC_C, KC_D, COMBO_END };
-const uint16_t PROGMEM curly_combo[] = { KC_F, KC_P, COMBO_END };
-const uint16_t PROGMEM parens_combo[] = { KC_P, KC_B, COMBO_END };
-const uint16_t PROGMEM square_combo[] = { KC_D, KC_V, COMBO_END };
-
-combo_t key_combos[] = {
- [ZX_COPY] = COMBO(copy_combo, LCTL_T(KC_C)),
- [CV_PASTE] = COMBO(paste_combo, LCTL_T(KC_V)),
- [PB_PARENS] = COMBO(parens_combo, KC_LPRN),
- [FP_CURLY] = COMBO(curly_combo, KC_LCBR),
- [DV_SQUARE] = COMBO(square_combo, KC_LBRC)
-};
-#endif
-
-#define LAYOUT_kyria_base( \
- L01, L02, L03, L04, L05, R05, R04, R03, R02, R01, \
- L11, L12, L13, L14, L15, R15, R14, R13, R12, R11, \
- L21, L22, L23, L24, L25, R25, R24, R23, R22, R21, \
- L33, L34, L35, R35, R34, R33 \
- ) \
- LAYOUT_kyria_wrapper ( \
- KC_GRV, L01, L02, L03, L04, L05, R05, R04, R03, R02, R01, KC_BSLS, \
- KC_CTLBS, L11, L12, L13, L14, L15, R15, R14, R13, R12, R11, KC_QUOT, \
- KC_EQL, L21, L22, L23, L24, L25, KC_LCCL, KC_LGUI, KC_ALTCL, KC_LSFT, R25, R24, R23, R22, R21, KC_MINS, \
- SCMD_T(KC_LBRC), C_S_T(KC_MINS), L33, L34, L35, R35, R34, R33, TO(_GAME), KC_PSCR \
- )
-#define LAYOUT_kyria_base_wrapper(...) LAYOUT_kyria_base(__VA_ARGS__)
-
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-/*
- * Base Layer: QWERTY
- */
- [_QWERTY] = LAYOUT_kyria_base_wrapper(
- /* ,-----------------------. ,-----------------------. */
- _______QWERTY_L1______, _______QWERTY_R1______,
- _______QWERTY_L2______, _______QWERTY_R2______,
- _______QWERTY_L3______, _______QWERTY_R3______,
- _______NAKED_L___T____, _______THUMBS_R_______
- /* `---------------------' `---------------------' */
- ),
- [_COLEMAK] = LAYOUT_kyria_wrapper(
- /* ,-----------------------. ,-----------------------. */
- KC_GRV, _______COLEMAK_L1_____, _______COLEMAK_R1_____, KC_BSLS,
- KC_CTLBS, _______COLEMAK_L2_____, _______COLEMAK_R2_____, KC_SCLN,
- KC_EQL, _______COLEMAK_L3_____, KC_LCCL, KC_LGUI, KC_ALTCL, KC_LSFT, _______COLEMAK_R3_____, KC_MINS,
- SCMD_T(KC_LBRC), C_S_T(KC_MINS), _______THUMBS_L_______, _______THUMBS_R_______, TO(_QWERTY), KC_PSCR
- /* `---------------------' `---------------------' */
- ),
- // GAME layout -- qwerty without homerow mods
- [_GAME] = LAYOUT_kyria_wrapper(
- /* ,-------------------------------------------. ,-------------------------------------------. */
- KC_GRV, _______COLEMAK_L1_____, _______COLEMAK_R1_____, KC_BSLS,
- KC_CTLBS, KC_A, KC_R, KC_S, KC_T, KC_G, KC_M, KC_N, KC_E, KC_I, KC_O, KC_SCLN,
- KC_LSFT, _______COLEMAK_L3_____, KC_LCCL, KC_LALT, KC_ALTCL, KC_LSFT, _______COLEMAK_R3_____, KC_MINS,
- KC_EQL, MO(_NUM), _______NAKED_L___T____, _______THUMBS_R_______, TO(_COLEMAK), KC_F12
- /* `----------------------------------' `----------------------------------' */
- ),
- [_FN] = LAYOUT_kyria_base_wrapper(
- /* ,-----------------------. ,-----------------------. */
- _______FN_______L1____, _______INACTIVE_R1____,
- _______FN_______L2____, _______INACTIVE_R2____,
- _______FN_______L3____, _______NAV______R2____,
- _______FN________T____, _______INACTIVE__T____
- /* `---------------------' `---------------------' */
- ),
- [_SYMBOLS] = LAYOUT_kyria_base_wrapper(
- /* ,-----------------------. ,-----------------------. */
- _______SYM______L1____, _______INACTIVE_R1____,
- _______SYM______L2____, _______INACTIVE_R2____,
- _______SYM______L3____, _______INACTIVE_R3____,
- _______SYM_______T____, _______INACTIVE__T____
- /* `---------------------' `---------------------' */
- ),
- [_NUM] = LAYOUT_kyria_base_wrapper(
- /* ,-----------------------. ,-----------------------. */
- _______NUM______L1____, _______INACTIVE_R1____,
- _______NUM______L2____, _______INACTIVE_R2____,
- _______NUM______L3____, _______INACTIVE_R3____,
- _______NUM_______T____, _______INACTIVE__T____
- /* `---------------------' `---------------------' */
- ),
- [_NAV] = LAYOUT_kyria_base_wrapper(
- /* ,-----------------------. ,-----------------------. */
- _______INACTIVE_L1____, _______NAV______R1____,
- _______INACTIVE_L2____, _______NAV______R2____,
- _______INACTIVE_L3____, _______NAV______R3____,
- _______INACTIVE__T____, _______NAV_______T____
- /* `---------------------' `---------------------' */
- ),
- [_MOUSE] = LAYOUT_kyria_base_wrapper(
- /* ,-----------------------. ,-----------------------. */
- _______INACTIVE_L1____, _______MOUSE____R1____,
- _______INACTIVE_L2____, _______MOUSE____R2____,
- _______INACTIVE_L3____, _______MOUSE____R3____,
- _______INACTIVE__T____, _______MOUSE_____T____
- /* `---------------------' `---------------------' */
- ),
- [_MEDIA] = LAYOUT_kyria_base_wrapper(
- /* ,-----------------------. ,-----------------------. */
- _______INACTIVE_L1____, _______MEDIA____R1____,
- _______INACTIVE_L2____, _______MEDIA____R2____,
- _______INACTIVE_L3____, _______MEDIA____R3____,
- _______INACTIVE__T____, _______MEDIA_____T____
- /* `---------------------' `---------------------' */
- ),
-};
-
-#ifdef RAW_ENABLE
-static void send_layer_via_hid(int layer) {
- uint8_t data[RAW_EPSIZE];
- data[0] = 1;
- data[1] = layer;
- raw_hid_send(data, sizeof(data));
- return;
-}
-#endif
-
-
-#ifdef RGBLIGHT_LAYERS
-const rgblight_segment_t PROGMEM my_qwerty_layer[] = RGBLIGHT_LAYER_SEGMENTS( {0, 20, HSV_RED} );
-const rgblight_segment_t PROGMEM my_colemak_layer[] = RGBLIGHT_LAYER_SEGMENTS( {0, 20, HSV_BLUE} );
-const rgblight_segment_t PROGMEM my_game_layer[] = RGBLIGHT_LAYER_SEGMENTS( {0, 20, HSV_RED} );
-const rgblight_segment_t PROGMEM my_fn_layer[] = RGBLIGHT_LAYER_SEGMENTS( {0, 20, HSV_PINK} );
-const rgblight_segment_t PROGMEM my_symbols_layer[] = RGBLIGHT_LAYER_SEGMENTS( {0, 20, HSV_GREEN} );
-const rgblight_segment_t PROGMEM my_num_layer[] = RGBLIGHT_LAYER_SEGMENTS( {0, 20, HSV_CORAL} );
-const rgblight_segment_t PROGMEM my_nav_layer[] = RGBLIGHT_LAYER_SEGMENTS( {0, 20, HSV_GOLDENROD} );
-const rgblight_segment_t PROGMEM my_mouse_layer[] = RGBLIGHT_LAYER_SEGMENTS( {0, 20, HSV_TURQUOISE} );
-const rgblight_segment_t PROGMEM my_media_layer[] = RGBLIGHT_LAYER_SEGMENTS( {0, 20, HSV_MAGENTA} );
-
-const rgblight_segment_t PROGMEM my_capslock_layer[] = RGBLIGHT_LAYER_SEGMENTS(
- {0, 3, HSV_RED},
- {7, 1, HSV_RED},
- {10, 3, HSV_RED},
- {17, 1, HSV_RED}
-);
-
-const rgblight_segment_t PROGMEM my_shift_layer[] = RGBLIGHT_LAYER_SEGMENTS(
- {3, 1, HSV_RED},
- {13, 1, HSV_RED}
-);
-
-const rgblight_segment_t PROGMEM my_ctrl_layer[] = RGBLIGHT_LAYER_SEGMENTS(
- {4, 1, HSV_ORANGE},
- {14, 1, HSV_ORANGE}
-);
-
-const rgblight_segment_t PROGMEM my_alt_layer[] = RGBLIGHT_LAYER_SEGMENTS(
- {5, 1, HSV_GOLD},
- {15, 1, HSV_GOLD}
-);
-
-const rgblight_segment_t PROGMEM my_gui_layer[] = RGBLIGHT_LAYER_SEGMENTS(
- {9, 1, HSV_SPRINGGREEN},
- {19, 1, HSV_SPRINGGREEN}
-);
-
-const rgblight_segment_t* const PROGMEM my_rgb_layers[] = RGBLIGHT_LAYERS_LIST(
- my_colemak_layer,
- my_qwerty_layer,
- my_game_layer,
- my_fn_layer,
- my_symbols_layer,
- my_num_layer,
- my_nav_layer,
- my_mouse_layer,
- my_media_layer,
- my_capslock_layer,
- my_shift_layer,
- my_ctrl_layer,
- my_alt_layer,
- my_gui_layer
-);
-
-void matrix_scan_keymap(void) {
- uint8_t mods = mod_config(get_mods());
- rgblight_set_layer_state(10, mods & MOD_MASK_SHIFT);
- rgblight_set_layer_state(11, mods & MOD_MASK_CTRL);
- rgblight_set_layer_state(12, mods & MOD_MASK_ALT);
- rgblight_set_layer_state(13, mods & MOD_MASK_GUI);
-}
-#endif
-
-void keyboard_post_init_user(void) {
- rgblight_sethsv_noeeprom(HSV_BLUE);
- keyboard_post_init_rgb();
-#ifdef RGBLIGHT_LAYERS
- rgblight_layers = my_rgb_layers;
-#else
- rgblight_sethsv_noeeprom(HSV_BLUE);
-#endif
- /*debug_enable=true;*/
- /*debug_matrix=true;*/
-}
-
-//todo https://github.com/qmk/qmk_firmware/blob/debdc6379c7a72815df1f53e3406479381d243af/keyboards/crkbd/keymaps/soundmonster/keymap.c RGBRST
-
-layer_state_t layer_state_set_user(layer_state_t state) {
-#ifdef RGBLIGHT_LAYERS
- for (int i = _QWERTY; i < __LAST; i++) {
- rgblight_set_layer_state(i, layer_state_cmp(state, i));
- }
-# ifdef RAW_ENABLE
- send_layer_via_hid(state);
-# endif
-#endif
- return state;
-}
-
-#ifdef RGBLIGHT_LAYERS
-bool led_update_user(led_t led_state) {
- rgblight_set_layer_state(9, led_state.caps_lock);
- return true;
-}
-#endif
-
-#ifdef OLED_ENABLE
-void suspend_power_down_user(void) {
- oled_clear();
- oled_off();
-}
-
-oled_rotation_t oled_init_user(oled_rotation_t rotation) {
- return OLED_ROTATION_180;
-}
-
-static void render_logo(void) {
- /*static const char PROGMEM qmk_logo[] = {*/
- /* 0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8a,0x8b,0x8c,0x8d,0x8e,0x8f,0x90,0x91,0x92,0x93,0x94,*/
- /* 0xa0,0xa1,0xa2,0xa3,0xa4,0xa5,0xa6,0xa7,0xa8,0xa9,0xaa,0xab,0xac,0xad,0xae,0xaf,0xb0,0xb1,0xb2,0xb3,0xb4,*/
- /* 0xc0,0xc1,0xc2,0xc3,0xc4,0xc5,0xc6,0xc7,0xc8,0xc9,0xca,0xcb,0xcc,0xcd,0xce,0xcf,0xd0,0xd1,0xd2,0xd3,0xd4,0};*/
-
- static const char PROGMEM logo[] = {
- // canvas is 128x64. need 16 padding
- // 80x32
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x20, 0x60, 0xe0, 0xf0, 0xfe, 0xfe, 0xf0, 0x60, 0x20, 0x20, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x0c, 0x1c, 0x3c, 0x7c, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0x7c, 0xf8, 0xe0, 0x60, 0x20, 0x10, 0x10, 0x0c, 0x0f, 0x09, 0x08, 0x00, 0x09, 0x9b, 0x5c, 0x50, 0x10, 0x20, 0x40, 0xe0, 0xf8, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0x78, 0x38, 0x38, 0x10, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x03, 0x03, 0x03, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x1f, 0x1f, 0x1f, 0x1f, 0x17, 0x15, 0x3d, 0xef, 0xaf, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x10, 0x00, 0x02, 0x02, 0x01, 0x01, 0x00, 0x00, 0x10, 0x00, 0x00, 0x40, 0xa0, 0xbf, 0xff, 0x3f, 0x3f, 0x3f, 0x1f, 0x1f, 0x1f, 0x1f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x07, 0x07, 0x07, 0x07, 0x07, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
- };
- oled_write_raw_P(logo, sizeof(logo));
-
- oled_advance_page(false);
- oled_advance_page(false);
- oled_advance_page(false);
- oled_advance_page(false);
-// oled_write_P(qmk_logo, false);
-
-#ifdef COMBO_ENABLE
- oled_write_P(PSTR("Combos enabled: "), false);
- if (is_combo_enabled()) {
- oled_write_P(PSTR("Yes\n"), false);
- } else {
- oled_write_P(PSTR("No\n"), false);
- }
-#endif
-
-#ifdef SPLIT_MODS_ENABLE
- uint8_t mods = get_mods() | get_weak_mods();
- oled_write_P((mods & MOD_MASK_GUI) ? PSTR("GUI ") : PSTR(" "), false);
- oled_write_P((mods & MOD_MASK_ALT) ? PSTR("ALT ") : PSTR(" "), false);
- oled_write_P((mods & MOD_MASK_CTRL) ? PSTR("CTRL ") : PSTR(" "), false);
- oled_write_P((mods & MOD_MASK_SHIFT) ? PSTR("SHFT ") : PSTR(" "), false);
- oled_write_P(PSTR("\n"), false);
-
-#endif
-
-#ifdef WPM_ENABLE
- // Write WPM
- uint8_t n = get_current_wpm();
- wpm_str[3] = '\0';
- wpm_str[2] = '0' + n % 10;
- wpm_str[1] = '0' + (n /= 10) % 10;
- wpm_str[0] = '0' + n / 10 ;
- //oled_write_P(PSTR("\n"), false);
- oled_write_P(PSTR(" WPM: "), false);
- oled_write(wpm_str, false);
-#endif
-}
-
-
-static void render_status(void) {
- static bool isColemak = false;
- // QMK Logo and version information
- oled_write_P(PSTR("Kyria rev1.3\n\n"), false);
-
- oled_write_P(isColemak ? PSTR("COLEMAK ") : PSTR("QWERTY "), false);
-
- // Host Keyboard Layer Status
- switch (get_highest_layer(layer_state)) {
- case _QWERTY:
- oled_write_P(PSTR("Game\n"), false);
- isColemak = false;
- break;
- case _SYMBOLS:
- oled_write_P(PSTR("Shifted Sym\n"), false);
- break;
- case _NUM:
- oled_write_P(PSTR("Numbers\n"), false);
- break;
- case _NAV:
- oled_write_P(PSTR("Navigation\n"), false);
- break;
- case _FN:
- oled_write_P(PSTR("Fn\n"), false);
- break;
- case _GAME:
- oled_write_P(PSTR("Game\n"), false);
- isColemak = true;
- break;
- case _COLEMAK:
- oled_write_P(PSTR("Default\n"), false);
- isColemak = true;
- break;
- case _MEDIA:
- oled_write_P(PSTR("Media keys\n"), false);
- break;
- case _MOUSE:
- oled_write_P(PSTR("Mouse keys\n"), false);
- break;
- default:
- oled_write_P(PSTR("Undefined\n"), false);
- }
-
- uint8_t mods = get_mods() | get_weak_mods();
- oled_write_P(PSTR("\n"), false);
- oled_write_P((mods & MOD_MASK_GUI) ? PSTR("GUI ") : PSTR(" "), false);
- oled_write_P((mods & MOD_MASK_ALT) ? PSTR("ALT ") : PSTR(" "), false);
- oled_write_P((mods & MOD_MASK_CTRL) ? PSTR("CTRL ") : PSTR(" "), false);
- oled_write_P((mods & MOD_MASK_SHIFT) ? PSTR("SHFT ") : PSTR(" "), false);
- oled_write_P(PSTR("\n"), false);
-
-#define I3MASK MOD_BIT(KC_LGUI)
-#define I3SMASK (MOD_BIT(KC_LGUI) | MOD_BIT(KC_LSFT))
-#define KMASK (MOD_BIT(KC_LCTL) | MOD_BIT(KC_LSFT))
-
- oled_write_P((mods == I3MASK) ? PSTR("I3 ") : (mods == I3SMASK) ? PSTR("I3-SFT ") : PSTR(" "), false);
- oled_write_P((mods == KMASK) ? PSTR("KITTY ") : PSTR(" "), false);
- oled_write_P(PSTR("\n"), false);
-
- // Host Keyboard LED Status
- led_t led_state = host_keyboard_led_state();
- oled_write_P(led_state.num_lock ? PSTR("NUMLCK ") : PSTR(" "), false);
- oled_write_P(led_state.caps_lock ? PSTR("CAPLCK ") : PSTR(" "), false);
- oled_write_P(led_state.scroll_lock ? PSTR("SCRLCK ") : PSTR(" "), false);
-
-}
-
-bool oled_task_user(void) {
- if (is_keyboard_master()) {
- render_status(); // Renders the current keyboard state (layer, lock, caps, scroll, etc)
- } else {
- render_logo();
- }
- return false;
-}
-#endif
-
-
-#ifdef RAW_ENABLE
-void raw_hid_receive(uint8_t *data, uint8_t length) {
- // messages from host
- // add ability to set color
- raw_hid_send(data, length);
-}
-#endif
diff --git a/keyboards/splitkb/kyria/keymaps/cwebster2/rules.mk b/keyboards/splitkb/kyria/keymaps/cwebster2/rules.mk
deleted file mode 100644
index 442170ccd6..0000000000
--- a/keyboards/splitkb/kyria/keymaps/cwebster2/rules.mk
+++ /dev/null
@@ -1,5 +0,0 @@
-OLED_ENABLE = yes
-RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
-RAW_ENABLE = no
-WPM_ENABLE = no
-COMBO_ENABLE = no
diff --git a/keyboards/splitkb/kyria/keymaps/drashna/chconf.h b/keyboards/splitkb/kyria/keymaps/drashna/chconf.h
deleted file mode 100644
index 1ee8438cdf..0000000000
--- a/keyboards/splitkb/kyria/keymaps/drashna/chconf.h
+++ /dev/null
@@ -1,24 +0,0 @@
-/* Copyright 2020 QMK
- *
- * 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
-
-#if defined(KEYBOARD_splitkb_kyria_rev3)
-#define CH_CFG_ST_RESOLUTION 16
-#define CH_CFG_ST_FREQUENCY 10000
-#endif
-
-#include_next <chconf.h>
diff --git a/keyboards/splitkb/kyria/keymaps/drashna/config.h b/keyboards/splitkb/kyria/keymaps/drashna/config.h
deleted file mode 100644
index 702599605c..0000000000
--- a/keyboards/splitkb/kyria/keymaps/drashna/config.h
+++ /dev/null
@@ -1,90 +0,0 @@
-/* Copyright 2020 Christopher Courtney, aka Drashna Jael're (@drashna) <drashna@live.com>
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-#pragma once
-
-#define EE_HANDS
-
-#ifdef OLED_ENABLE
-# undef OLED_DISPLAY_128X64
-# define OLED_DISPLAY_128X128
-# define OLED_PRE_CHARGE_PERIOD 0x22
-# define OLED_VCOM_DETECT 0x35
-#endif
-
-#ifdef RGBLIGHT_ENABLE
-# define RGBLIGHT_SLEEP
-# undef RGBLIGHT_LIMIT_VAL
-# define RGBLIGHT_LIMIT_VAL 120
-# define RGBLIGHT_HUE_STEP 8
-# define RGBLIGHT_SAT_STEP 8
-# define RGBLIGHT_VAL_STEP 8
-# define RGBLIGHT_SPLIT
-# define RGBLIGHT_LAYERS
-#endif
-
-
-#define QMK_ESC_INPUT D4
-#define QMK_ESC_OUTPUT B2
-
-#ifdef KEYBOARD_splitkb_kyria_rev3
-# 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
-# undef SOFT_SERIAL_PIN
-# define SERIAL_USART_TX_PIN D3
-# define SERIAL_USART_RX_PIN D2
-
-# undef WS2812_DI_PIN
-# 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_DMA_STREAM STM32_DMA1_STREAM2 // DMA Stream for TIMx_UP, see the respective reference manual for the appropriate values for your MCU.
-# define WS2812_DMA_CHANNEL 2 // DMA Channel for TIMx_UP, see the respective reference manual for the appropriate values for your MCU.
-# define WS2812_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.
-
-# define BOOTMAGIC_LITE_ROW 0
-# define BOOTMAGIC_LITE_COLUMN 6
-# define BOOTMAGIC_LITE_ROW_RIGHT 4
-# define BOOTMAGIC_LITE_COLUMN_RIGHT 6
-
-# define BOOTMAGIC_LITE_EEPROM_ROW 1
-# define BOOTMAGIC_LITE_EEPROM_COLUMN 6
-# define BOOTMAGIC_LITE_EEPROM_ROW_RIGHT 5
-# define BOOTMAGIC_LITE_EEPROM_COLUMN_RIGHT 6
-# define SECURE_UNLOCK_SEQUENCE { {1, 5}, {1, 4}, {1, 3}, {1, 2} }
-
-# define ENCODER_RESOLUTION 2
-#else
-# define BOOTMAGIC_LITE_ROW 0
-# define BOOTMAGIC_LITE_COLUMN 7
-# define BOOTMAGIC_LITE_ROW_RIGHT 4
-# define BOOTMAGIC_LITE_COLUMN_RIGHT 7
-
-# define BOOTMAGIC_LITE_EEPROM_ROW 1
-# define BOOTMAGIC_LITE_EEPROM_COLUMN 7
-# define BOOTMAGIC_LITE_EEPROM_ROW_RIGHT 5
-# define BOOTMAGIC_LITE_EEPROM_COLUMN_RIGHT 7
-#endif
-
-#define SERIAL_USART_SPEED 921600
-
-#if defined(KEYBOARD_splitkb_kyria_rev1_proton_c) || defined(KEYBOARD_splitkb_kyria_rev3)
-# define WEAR_LEVELING_BACKING_SIZE 16384
-# define WEAR_LEVELING_LOGICAL_SIZE 8192
-#endif
diff --git a/keyboards/splitkb/kyria/keymaps/drashna/halconf.h b/keyboards/splitkb/kyria/keymaps/drashna/halconf.h
deleted file mode 100644
index b23c85d0f1..0000000000
--- a/keyboards/splitkb/kyria/keymaps/drashna/halconf.h
+++ /dev/null
@@ -1,24 +0,0 @@
-/* Copyright 2020 QMK
- *
- * 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 3 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 <https://www.gnu.org/licenses/>.
- */
-#pragma once
-
-#if defined(KEYBOARD_splitkb_kyria_rev3)
-# define HAL_USE_I2C TRUE
-# define HAL_USE_PWM TRUE
-# define HAL_USE_SERIAL TRUE
-#endif
-
-#include_next <halconf.h>
diff --git a/keyboards/splitkb/kyria/keymaps/drashna/keymap.c b/keyboards/splitkb/kyria/keymaps/drashna/keymap.c
deleted file mode 100644
index 5a2b886fe4..0000000000
--- a/keyboards/splitkb/kyria/keymaps/drashna/keymap.c
+++ /dev/null
@@ -1,229 +0,0 @@
-/* Copyright 2020 Christopher Courtney, aka Drashna Jael're (@drashna) <drashna@live.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 "drashna.h"
-
-/*
- * The `LAYOUT_kyria_base` macro is a template to allow the use of identical
- * modifiers for the default layouts (eg QWERTY, Colemak, Dvorak, etc), so
- * that there is no need to set them up for each layout, and modify all of
- * them if I want to change them. This helps to keep consistency and ease
- * of use. K## is a placeholder to pass through the individual keycodes
- */
-
-// clang-format off
-#define LAYOUT_wrapper(...) LAYOUT(__VA_ARGS__)
-#define LAYOUT_kyria_base( \
- K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, \
- K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, \
- K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A \
- ) \
- LAYOUT_wrapper( \
- SH_T(KC_ESC), K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, SH_T(KC_MINS), \
- LALT_T(KC_TAB), K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, RALT_T(K1B), \
- OS_LSFT, CTL_T(K21), K22, K23, K24, K25, TG_GAME, MEH(KC_MINS), TG_DBLO, KC_CAPS, K26, K27, K28, K29, RCTL_T(K2A), OS_RSFT, \
- KC_MUTE, OS_LALT, KC_GRV, KC_SPC, BK_LWER, DL_RAIS, KC_ENT, OS_RGUI, UC(0x03A8), UC(0x2E2E) \
- )
-/* Re-pass though to allow templates to be used */
-#define LAYOUT_base_wrapper(...) LAYOUT_kyria_base(__VA_ARGS__)
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [_DEFAULT_LAYER_1] = LAYOUT_base_wrapper(
- _________________QWERTY_L1_________________, _________________QWERTY_R1_________________,
- _________________QWERTY_L2_________________, _________________QWERTY_R2_________________,
- _________________QWERTY_L3_________________, _________________QWERTY_R3_________________
- ),
-
- [_DEFAULT_LAYER_2] = LAYOUT_base_wrapper(
- ______________COLEMAK_MOD_DH_L1____________, ______________COLEMAK_MOD_DH_R1____________,
- ______________COLEMAK_MOD_DH_L2____________, ______________COLEMAK_MOD_DH_R2____________,
- ______________COLEMAK_MOD_DH_L3____________, ______________COLEMAK_MOD_DH_R3____________
- ),
- [_DEFAULT_LAYER_3] = LAYOUT_base_wrapper(
- _________________COLEMAK_L1________________, _________________COLEMAK_R1________________,
- _________________COLEMAK_L2________________, _________________COLEMAK_R2________________,
- _________________COLEMAK_L3________________, _________________COLEMAK_R3________________
- ),
-
- [_DEFAULT_LAYER_4] = LAYOUT_base_wrapper(
- _________________DVORAK_L1_________________, _________________DVORAK_R1_________________,
- _________________DVORAK_L2_________________, _________________DVORAK_R2_________________,
- _________________DVORAK_L3_________________, _________________DVORAK_R3_________________
- ),
-
- [_GAMEPAD] = LAYOUT_wrapper(
- KC_ESC, KC_K, KC_Q, KC_W, KC_E, KC_R, _______, _______, _______, _______, _______, _______,
- KC_TAB, KC_G, KC_A, KC_S, KC_D, KC_F, _______, _______, _______, _______, _______, _______,
- KC_LCTL, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, _______, _______, _______, LALT(KC_PSCR), _______, _______, _______, _______, _______, _______,
- _______, MAGIC_TOGGLE_NKRO, KC_V, KC_SPC, KC_H, _______, _______, _______, _______, _______
- ),
-
- [_DIABLO] = LAYOUT_wrapper(
- KC_ESC, KC_S, KC_I, KC_F, KC_M, KC_T, KC_F9, KC_F10, KC_F11, KC_F12, KC_NO, KC_NO,
- KC_TAB, KC_1, KC_2, KC_3, KC_4, KC_G, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
- KC_LCTL, KC_D3_1, KC_D3_2, KC_D3_3, KC_D3_4, KC_Z, KC_J, KC_L, TG_DBLO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
- KC_DIABLO_CLEAR, KC_J, KC_NO, SFT_T(KC_SPACE), ALT_T(KC_Q), KC_NO, KC_NO, KC_NO, KC_NO, KC_NO
- ),
- [_LOWER] = LAYOUT_wrapper(
- KC_F12, _________________LOWER_L1__________________, _________________LOWER_R1__________________, KC_F11,
- _______, _________________LOWER_L2__________________, _________________LOWER_R2__________________, KC_PIPE,
- _______, _________________LOWER_L3__________________, _______, _______, _______, _______, _________________LOWER_R3__________________, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
- ),
- [_RAISE] = LAYOUT_wrapper(
- KC_F12, _________________RAISE_L1__________________, _________________RAISE_R1__________________, KC_F11,
- _______, _________________RAISE_L2__________________, _________________RAISE_R2__________________, KC_BSLS,
- _______, _________________RAISE_L3__________________, _______, _______, _______, _______, _________________RAISE_R3__________________, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
- ),
- [_ADJUST] = LAYOUT_wrapper(
- QK_MAKE, _________________ADJUST_L1_________________, _________________ADJUST_R1_________________, QK_BOOT,
- VRSN, _________________ADJUST_L2_________________, _________________ADJUST_R2_________________, EE_CLR,
- UC_NEXT, _________________ADJUST_L3_________________, HF_TOGG, HF_FDBK, MG_NKRO, UC_NEXT, _________________ADJUST_R3_________________, TG_MODS,
- QK_RBT, _______, KEYLOCK, KC_NUKE, _______, _______, _______, _______, _______, AUTO_CTN
- ),
-// [_LAYERINDEX] = LAYOUT_wrapper(
-// _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
-// _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
-// _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
-// _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
-// ),
-};
-
-#ifdef ENCODER_MAP_ENABLE
-const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = {
- [_DEFAULT_LAYER_1] = { ENCODER_CCW_CW( KC_VOLD, KC_VOLU ), ENCODER_CCW_CW( KC_WH_D, KC_WH_U ) },
- [_DEFAULT_LAYER_2] = { ENCODER_CCW_CW( _______, _______ ), ENCODER_CCW_CW( _______, _______ ) },
- [_DEFAULT_LAYER_2] = { ENCODER_CCW_CW( _______, _______ ), ENCODER_CCW_CW( _______, _______ ) },
- [_DEFAULT_LAYER_2] = { ENCODER_CCW_CW( _______, _______ ), ENCODER_CCW_CW( _______, _______ ) },
- [_GAMEPAD] = { ENCODER_CCW_CW( _______, _______ ), ENCODER_CCW_CW( _______, _______ ) },
- [_DIABLO] = { ENCODER_CCW_CW( _______, _______ ), ENCODER_CCW_CW( _______, _______ ) },
- [_MOUSE] = { ENCODER_CCW_CW( _______, _______ ), ENCODER_CCW_CW( KC_WH_D, KC_WH_U ) },
- [_MEDIA] = { ENCODER_CCW_CW( _______, _______ ), ENCODER_CCW_CW( _______, _______ ) },
- [_RAISE] = { ENCODER_CCW_CW( _______, _______ ), ENCODER_CCW_CW( KC_PGDN, KC_PGUP ) },
- [_LOWER] = { ENCODER_CCW_CW( RGB_MOD, RGB_RMOD), ENCODER_CCW_CW( RGB_HUD, RGB_HUI ) },
- [_ADJUST] = { ENCODER_CCW_CW( CK_DOWN, CK_UP ), ENCODER_CCW_CW( _______, _______ ) },
-};
-#endif
-// clang-format on
-
-#ifdef OLED_ENABLE
-void render_oled_title(bool side) {
- oled_write_P(side ? PSTR(" Splitkb ") : PSTR(" Kyria "), true);
-}
-
-oled_rotation_t oled_init_keymap(oled_rotation_t rotation) {
-# ifdef OLED_DISPLAY_128X128
- return OLED_ROTATION_0;
-# else
- return OLED_ROTATION_180;
-# endif
-}
-
-void oled_render_large_display(bool side) {
- if (side) {
- render_wpm_graph(56, 64);
- } else {
- // clang-format off
- static const char PROGMEM kyria_logo[] = {
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,128,192,224,240,112,120, 56, 60, 28, 30, 14, 14, 14, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 14, 14, 14, 30, 28, 60, 56,120,112,240,224,192,128,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,192,224,240,124, 62, 31, 15, 7, 3, 1,128,192,224,240,120, 56, 60, 28, 30, 14, 14, 7, 7,135,231,127, 31,255,255, 31,127,231,135, 7, 7, 14, 14, 30, 28, 60, 56,120,240,224,192,128, 1, 3, 7, 15, 31, 62,124,240,224,192, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,240,252,255, 31, 7, 1, 0, 0,192,240,252,254,255,247,243,177,176, 48, 48, 48, 48, 48, 48, 48,120,254,135, 1, 0, 0,255,255, 0, 0, 1,135,254,120, 48, 48, 48, 48, 48, 48, 48,176,177,243,247,255,254,252,240,192, 0, 0, 1, 7, 31,255,252,240, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,255,255,255, 0, 0, 0, 0, 0,254,255,255, 1, 1, 7, 30,120,225,129,131,131,134,134,140,140,152,152,177,183,254,248,224,255,255,224,248,254,183,177,152,152,140,140,134,134,131,131,129,225,120, 30, 7, 1, 1,255,255,254, 0, 0, 0, 0, 0,255,255,255, 0, 0, 0, 0,255,255, 0, 0,192,192, 48, 48, 0, 0,240,240, 0, 0, 0, 0, 0, 0,240,240, 0, 0,240,240,192,192, 48, 48, 48, 48,192,192, 0, 0, 48, 48,243,243, 0, 0, 0, 0, 0, 0, 48, 48, 48, 48, 48, 48,192,192, 0, 0, 0, 0, 0,
- 0, 0, 0,255,255,255, 0, 0, 0, 0, 0,127,255,255,128,128,224,120, 30,135,129,193,193, 97, 97, 49, 49, 25, 25,141,237,127, 31, 7,255,255, 7, 31,127,237,141, 25, 25, 49, 49, 97, 97,193,193,129,135, 30,120,224,128,128,255,255,127, 0, 0, 0, 0, 0,255,255,255, 0, 0, 0, 0, 63, 63, 3, 3, 12, 12, 48, 48, 0, 0, 0, 0, 51, 51, 51, 51, 51, 51, 15, 15, 0, 0, 63, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 48, 63, 63, 48, 48, 0, 0, 12, 12, 51, 51, 51, 51, 51, 51, 63, 63, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 15, 63,255,248,224,128, 0, 0, 3, 15, 63,127,255,239,207,141, 13, 12, 12, 12, 12, 12, 12, 12, 30,127,225,128, 0, 0,255,255, 0, 0,128,225,127, 30, 12, 12, 12, 12, 12, 12, 12, 13,141,207,239,255,127, 63, 15, 3, 0, 0,128,224,248,255, 63, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 3, 7, 15, 62,124,248,240,224,192,128, 1, 3, 7, 15, 30, 28, 60, 56,120,112,112,224,224,225,231,254,248,255,255,248,254,231,225,224,224,112,112,120, 56, 60, 28, 30, 15, 7, 3, 1,128,192,224,240,248,124, 62, 15, 7, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 3, 7, 15, 14, 30, 28, 60, 56,120,112,112,112,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,112,112,112,120, 56, 60, 28, 30, 14, 15, 7, 3, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
- };
- // clang-format on
- oled_set_cursor(0, 7);
- oled_write_raw_P(kyria_logo, sizeof(kyria_logo));
- }
-}
-#endif
-
-#if defined(RGBLIGHT_ENABLE) && defined(RGBLIGHT_LAYERS)
-const rgblight_segment_t PROGMEM shift_layers[] = RGBLIGHT_LAYER_SEGMENTS({8, 1, 120, 255, 255}, {18, 1, 120, 255, 255});
-const rgblight_segment_t PROGMEM control_layers[] = RGBLIGHT_LAYER_SEGMENTS({6, 1, 0, 255, 255}, {16, 1, 0, 255, 255});
-const rgblight_segment_t PROGMEM alt_layers[] = RGBLIGHT_LAYER_SEGMENTS({2, 1, 240, 255, 255}, {17, 1, 250, 255, 255});
-const rgblight_segment_t PROGMEM gui_layers[] = RGBLIGHT_LAYER_SEGMENTS({7, 1, 51, 255, 255}, {12, 1, 51, 255, 255});
-
-const rgblight_segment_t* const PROGMEM my_rgb_layers[] = RGBLIGHT_LAYERS_LIST(shift_layers, control_layers, alt_layers, gui_layers);
-
-void keyboard_post_init_keymap(void) {
- rgblight_layers = my_rgb_layers;
-}
-
-void housekeeping_task_keymap(void) {
- uint8_t mods = mod_config(get_mods() | get_oneshot_mods());
- rgblight_set_layer_state(0, mods & MOD_MASK_SHIFT);
- rgblight_set_layer_state(1, mods & MOD_MASK_CTRL);
- rgblight_set_layer_state(2, mods & MOD_MASK_ALT);
- rgblight_set_layer_state(3, mods & MOD_MASK_GUI);
-}
-#elif defined(RGB_MATRIX_ENABLE) && defined(KEYBOARD_splitkb_kyria_rev3)
-void keyboard_post_init_keymap(void) {
- extern led_config_t g_led_config;
- g_led_config.flags[30] = g_led_config.flags[24] = g_led_config.flags[18] = g_led_config.flags[12] = g_led_config.flags[11] = g_led_config.flags[10] = g_led_config.flags[9] = g_led_config.flags[8] = g_led_config.flags[7] = g_led_config.flags[6] = g_led_config.flags[37] = g_led_config.flags[38] = g_led_config.flags[39] = g_led_config.flags[40] = g_led_config.flags[41] = g_led_config.flags[42] = g_led_config.flags[43] = g_led_config.flags[49] = g_led_config.flags[55] = g_led_config.flags[61] = LED_FLAG_MODIFIER;
-}
-
-void check_default_layer(uint8_t mode, uint8_t type, uint8_t led_min, uint8_t led_max) {
- switch (get_highest_layer(default_layer_state)) {
- case _QWERTY:
- rgb_matrix_layer_helper(DEFAULT_LAYER_1_HSV, mode, rgb_matrix_config.speed, type, led_min, led_max);
- break;
- case _COLEMAK_DH:
- rgb_matrix_layer_helper(DEFAULT_LAYER_2_HSV, mode, rgb_matrix_config.speed, type, led_min, led_max);
- break;
- case _COLEMAK:
- rgb_matrix_layer_helper(DEFAULT_LAYER_3_HSV, mode, rgb_matrix_config.speed, type, led_min, led_max);
- break;
- case _DVORAK:
- rgb_matrix_layer_helper(DEFAULT_LAYER_4_HSV, mode, rgb_matrix_config.speed, type, led_min, led_max);
- break;
- }
-}
-
-bool rgb_matrix_indicators_advanced_keymap(uint8_t led_min, uint8_t led_max) {
- if (userspace_config.rgb_layer_change) {
- switch (get_highest_layer(layer_state)) {
- case _GAMEPAD:
- rgb_matrix_layer_helper(HSV_ORANGE, 0, rgb_matrix_config.speed, LED_FLAG_UNDERGLOW, led_min, led_max);
- break;
- case _DIABLO:
- rgb_matrix_layer_helper(HSV_RED, 0, rgb_matrix_config.speed, LED_FLAG_UNDERGLOW, led_min, led_max);
- break;
- case _RAISE:
- rgb_matrix_layer_helper(HSV_YELLOW, 0, rgb_matrix_config.speed, LED_FLAG_UNDERGLOW, led_min, led_max);
- break;
- case _LOWER:
- rgb_matrix_layer_helper(HSV_GREEN, 0, rgb_matrix_config.speed, LED_FLAG_UNDERGLOW, led_min, led_max);
- break;
- case _ADJUST:
- rgb_matrix_layer_helper(HSV_RED, 0, rgb_matrix_config.speed, LED_FLAG_UNDERGLOW, led_min, led_max);
- break;
- case _MOUSE:
- rgb_matrix_layer_helper(HSV_PURPLE, 1, rgb_matrix_config.speed, LED_FLAG_UNDERGLOW, led_min, led_max);
- break;
- default:
- check_default_layer(0, LED_FLAG_UNDERGLOW, led_min, led_max);
- break;
- }
- check_default_layer(0, LED_FLAG_MODIFIER, led_min, led_max);
- }
- return false;
-}
-#endif
diff --git a/keyboards/splitkb/kyria/keymaps/drashna/mcuconf.h b/keyboards/splitkb/kyria/keymaps/drashna/mcuconf.h
deleted file mode 100644
index 2bee30b342..0000000000
--- a/keyboards/splitkb/kyria/keymaps/drashna/mcuconf.h
+++ /dev/null
@@ -1,35 +0,0 @@
-/* Copyright 2020 Nick Brassel (tzarc)
- *
- * 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 3 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 <https://www.gnu.org/licenses/>.
- */
-
-#pragma once
-
-#include_next <mcuconf.h>
-
-#if defined(KEYBOARD_splitkb_kyria_rev3)
-# undef STM32_PWM_USE_ADVANCED
-# define STM32_PWM_USE_ADVANCED TRUE
-
-# undef STM32_PWM_USE_TIM2
-# define STM32_PWM_USE_TIM2 TRUE
-# undef STM32_PWM_USE_TIM3
-# define STM32_PWM_USE_TIM3 FALSE
-
-# undef STM32_SERIAL_USE_USART1
-# define STM32_SERIAL_USE_USART1 TRUE
-
-# undef STM32_ST_USE_TIMER
-# define STM32_ST_USE_TIMER 3
-#endif
diff --git a/keyboards/splitkb/kyria/keymaps/drashna/rules.mk b/keyboards/splitkb/kyria/keymaps/drashna/rules.mk
deleted file mode 100644
index bb872743b7..0000000000
--- a/keyboards/splitkb/kyria/keymaps/drashna/rules.mk
+++ /dev/null
@@ -1,40 +0,0 @@
-BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite
-MOUSEKEY_ENABLE = no # Mouse keys
-EXTRAKEY_ENABLE = yes # Audio control and System control
-CONSOLE_ENABLE = no # Console for debug
-COMMAND_ENABLE = no # Commands for debug and configuration
-NKRO_ENABLE = yes # USB Nkey Rollover
-OLED_ENABLE = yes
-ENCODER_ENABLE = yes # Enables the use of one or more encoders
-RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
-KEY_LOCK_ENABLE = no
-WPM_ENABLE = yes
-
-ifeq ($(strip $(KEYBOARD)), splitkb/kyria/rev1/proton_c)
- OVERLOAD_FEATURES = yes
-endif
-ifeq ($(strip $(KEYBOARD)), splitkb/kyria/rev3)
- OVERLOAD_FEATURES = yes
- CONVERT_TO = proton_c
- WS2812_DRIVER = pwm
- SERIAL_DRIVER = usart
-endif
-
-ifeq ($(strip $(OVERLOAD_FEATURES)), yes)
- RGB_MATRIX_ENABLE = yes
- CONSOLE_ENABLE = yes # Console for debug
- MOUSEKEY_ENABLE = yes # Mouse keys
- TAP_DANCE_ENABLE = yes
- SWAP_HANDS_ENABLE = yes
- LTO_ENABLE = no
- ENCODER_MAP_ENABLE = yes
- AUTOCORRECT_ENABLE = yes
- CAPS_WORD_ENABLE = yes
- AUDIO_ENABLE = no
- DEBUG_MATRIX_SCAN_RATE_ENABLE = api
-else
- LTO_ENABLE = yes
- BOOTLOADER = qmk-hid
- BOOTLOADER_SIZE = 512
- CUSTOM_UNICODE_ENABLE = no
-endif
diff --git a/keyboards/splitkb/kyria/keymaps/ericgebhart/config.h b/keyboards/splitkb/kyria/keymaps/ericgebhart/config.h
deleted file mode 100755
index 6f7578aa5d..0000000000
--- a/keyboards/splitkb/kyria/keymaps/ericgebhart/config.h
+++ /dev/null
@@ -1,25 +0,0 @@
-/*
-This is the c configuration file for the keymap
-
-Copyright 2012 Jun Wako <wakojun@gmail.com>
-Copyright 2015 Jack Humbert
-
-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
-
-// otherwise the other promicro v3 isn't found
-#define SPLIT_USB_DETECT
-#define OLED_DISPLAY_128X64
diff --git a/keyboards/splitkb/kyria/keymaps/ericgebhart/keymap.c b/keyboards/splitkb/kyria/keymaps/ericgebhart/keymap.c
deleted file mode 100644
index c534fe3c6d..0000000000
--- a/keyboards/splitkb/kyria/keymaps/ericgebhart/keymap.c
+++ /dev/null
@@ -1,18 +0,0 @@
-/*
- Copyright 2018-2022 Eric Gebhart <e.a.gebhart@gmail.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/>.
-*/
-
-// See: users/ericgebhart.
diff --git a/keyboards/splitkb/kyria/keymaps/ericgebhart/rules.mk b/keyboards/splitkb/kyria/keymaps/ericgebhart/rules.mk
deleted file mode 100644
index 1946c18729..0000000000
--- a/keyboards/splitkb/kyria/keymaps/ericgebhart/rules.mk
+++ /dev/null
@@ -1,3 +0,0 @@
-EXTRAKEY_ENABLE = no # Audio control and System control
-ENCODER_ENABLE = no # Enables the use of one or more encoders
-RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
diff --git a/keyboards/splitkb/kyria/keymaps/gotham/rules.mk b/keyboards/splitkb/kyria/keymaps/gotham/rules.mk
index eff9494ff1..00b2868c1f 100644
--- a/keyboards/splitkb/kyria/keymaps/gotham/rules.mk
+++ b/keyboards/splitkb/kyria/keymaps/gotham/rules.mk
@@ -14,9 +14,9 @@ ifeq ($(strip $(OLED_ENABLE)), yes)
endif
ifeq ($(strip $(THUMBSTICK_ENABLE)), yes)
+ ANALOG_DRIVER_REQUIRED = yes
POINTING_DEVICE_ENABLE = yes
POINTING_DEVICE_DRIVER = custom
OPT_DEFS += -DTHUMBSTICK_ENABLE
- SRC += analog.c
SRC += thumbstick.c
endif
diff --git a/keyboards/splitkb/kyria/keymaps/manna-harbour_miryoku/config.h b/keyboards/splitkb/kyria/keymaps/manna-harbour_miryoku/config.h
deleted file mode 100644
index ce3b5561e8..0000000000
--- a/keyboards/splitkb/kyria/keymaps/manna-harbour_miryoku/config.h
+++ /dev/null
@@ -1,36 +0,0 @@
-// Copyright 2019 Manna Harbour
-// https://github.com/manna-harbour/miryoku
-
-// 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 XXX KC_NO
-
-#if defined MIRYOKU_MAPPING_EXTENDED_THUMBS
-#define LAYOUT_miryoku( \
- 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, \
- N30, N31, K32, K33, K34, K35, K36, K37, N38, N39 \
-) \
-LAYOUT( \
-XXX, K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, XXX, \
-XXX, K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, XXX, \
-XXX, K20, K21, K22, K23, K24, XXX, XXX, XXX, XXX, K25, K26, K27, K28, K29, XXX, \
- XXX, XXX, K32, K33, K34, K35, K36, K37, XXX, XXX \
-)
-#else
-#define LAYOUT_miryoku( \
- 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, \
- N30, N31, K32, K33, K34, K35, K36, K37, N38, N39 \
-) \
-LAYOUT( \
-XXX, K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, XXX, \
-XXX, K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, XXX, \
-XXX, K20, K21, K22, K23, K24, XXX, XXX, XXX, XXX, K25, K26, K27, K28, K29, XXX, \
- XXX, K32, K33, K34, XXX, XXX, K35, K36, K37, XXX \
-)
-#endif
diff --git a/keyboards/splitkb/kyria/keymaps/manna-harbour_miryoku/keymap.c b/keyboards/splitkb/kyria/keymaps/manna-harbour_miryoku/keymap.c
deleted file mode 100644
index dbab7f9820..0000000000
--- a/keyboards/splitkb/kyria/keymaps/manna-harbour_miryoku/keymap.c
+++ /dev/null
@@ -1,4 +0,0 @@
-// Copyright 2019 Manna Harbour
-// https://github.com/manna-harbour/miryoku
-
-// 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/>.
diff --git a/keyboards/splitkb/kyria/keymaps/muppetjones/.clang-format b/keyboards/splitkb/kyria/keymaps/muppetjones/.clang-format
deleted file mode 100644
index df3dbd17b4..0000000000
--- a/keyboards/splitkb/kyria/keymaps/muppetjones/.clang-format
+++ /dev/null
@@ -1,26 +0,0 @@
----
-BasedOnStyle: Google
-AlignAfterOpenBracket: Align
-AlignConsecutiveAssignments: 'true'
-AlignConsecutiveDeclarations: 'true'
-AlignOperands: 'true'
-AllowAllParametersOfDeclarationOnNextLine: 'false'
-AlwaysBreakAfterDefinitionReturnType: None
-AlwaysBreakAfterReturnType: None
-AlwaysBreakBeforeMultilineStrings: 'false'
-BinPackArguments: 'true'
-BinPackParameters: 'true'
-ColumnLimit: '160'
-IndentCaseLabels: 'true'
-IndentPPDirectives: AfterHash
-IndentWidth: '4'
-MaxEmptyLinesToKeep: '1'
-PointerAlignment: Right
-SortIncludes: 'false'
-SpaceBeforeAssignmentOperators: 'true'
-SpaceBeforeParens: ControlStatements
-SpaceInEmptyParentheses: 'false'
-TabWidth: '4'
-UseTab: Never
-
-...
diff --git a/keyboards/splitkb/kyria/keymaps/muppetjones/README.md b/keyboards/splitkb/kyria/keymaps/muppetjones/README.md
deleted file mode 100644
index 20fdd47025..0000000000
--- a/keyboards/splitkb/kyria/keymaps/muppetjones/README.md
+++ /dev/null
@@ -1,11 +0,0 @@
-# Kyria
-
-## Compile
-
-```shell
-make splitkb/kyria/rev1:muppetjones:avrdude-split-left
-```
-
-```shell
-make splitkb/kyria/rev1:muppetjones:avrdude-split-right
-```
diff --git a/keyboards/splitkb/kyria/keymaps/muppetjones/config.h b/keyboards/splitkb/kyria/keymaps/muppetjones/config.h
deleted file mode 100644
index 210beee0ed..0000000000
--- a/keyboards/splitkb/kyria/keymaps/muppetjones/config.h
+++ /dev/null
@@ -1,57 +0,0 @@
-/* Copyright 2020 Stephen Bush <muppetjones@gmail.com>
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-#pragma once
-
-#ifdef OLED_ENABLE
-# define OLED_DISPLAY_128X64
-#endif
-
-// If you are using an Elite C rev3 on the slave side, uncomment the lines below:
-// #define SPLIT_USB_DETECT
-// #define NO_USB_STARTUP_CHECK
-
-// EC11K encoders have a different resolution than other EC11 encoders.
-// When using the default resolution of 4, if you notice your encoder skipping
-// every other tick, lower the resolution to 2.
-#define ENCODER_RESOLUTION 2
-#define ENCODER_DIRECTION_FLIP
-
-// The Leader key allows to flexibly assign macros to key sequences.
-#define LEADER_PER_KEY_TIMING
-#define LEADER_TIMEOUT 350
-
-// Change "hold" time (default is 200 ms)
-// -- used for tap dance and other tap mods
-// -- defined in user namespace
-// #define TAPPING_TERM 200
-
-// Enable rapid switch from tap to hold, disables double tap hold auto-repeat.
-#define QUICK_TAP_TERM 0
-
-// Reduce firmware size
-// https://thomasbaart.nl/2018/12/01/reducing-firmware-size-in-qmk/
-// also requires EXTRAFLAGS in config.h
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
-// Allows to use either side as the master. Look at the documentation for info:
-// https://docs.qmk.fm/#/config_options?id=setting-handedness
-#define EE_HANDS
-
-// Allows media codes to properly register in macros and rotary encoder code
-#define TAP_CODE_DELAY 10
-#define COMBO_TERM 40
diff --git a/keyboards/splitkb/kyria/keymaps/muppetjones/keymap.c b/keyboards/splitkb/kyria/keymaps/muppetjones/keymap.c
deleted file mode 100644
index c3e98ec872..0000000000
--- a/keyboards/splitkb/kyria/keymaps/muppetjones/keymap.c
+++ /dev/null
@@ -1,276 +0,0 @@
-/* Copyright 2020 Stephen J. Bush
- *
- * 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 "muppetjones.h"
-#include "rgblight.h"
-
-#define LAYOUT_wrapper(...) LAYOUT(__VA_ARGS__)
-
-/* Layers from muppetjones.h
- _CLMK_DH = 0,
- _MOUSE,
- _LOWER,
- _RAISE,
- _NAV,
- _ADJUST,
- */
-
-/*
- * Custom Keys
- */
-
-#ifdef ENCODER_ENABLE
-bool encoder_update_standard(uint8_t index, bool clockwise);
-#endif
-
-/*
- * LAYERS
- */
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- // clang-format off
-/*
- * Base Layer: Colemak DH
- *
- * ,-------------------------------------------. ,-------------------------------------------.
- * |CAPSWORD| Q | W | F | P | B | | J | L | U | Y | ; : | | \ |
- * |--------+------+------+------+------+------| |------+------+------+------+------+--------|
- * |ESC/HYPR| A | R | S | T | G | | M | N | E | I | O | ' " |
- * |--------+------+------+------+------+------+-------------. ,-------------+------+------+------+------+------+--------|
- * | LShift | Z | X | C | D | V |LShift|Leader| | Del | Tab | K | H | , < | . > | / ? | Sft/Ent|
- * `----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------'
- * | MUTE | Del | Enter| Space| Enter| | Bspc | Space| Hyper| Tab | AltGr|
- * | | | Alt | Lower| Raise| | | Nav | Esc | Raise| |
- * `----------------------------------' `----------------------------------'
- */
-[_CLMK_DH] = LAYOUT_wrapper(
- CW_TOGG, __COLEMAK_MOD_DH_L1________________________, __COLEMAK_MOD_DH_R1_W_QUOT_________________, KC_BSLS,
- HY_ESC, __COLEMAK_MOD_DH_L2_W_GACS_________________, __COLEMAK_MOD_DH_R2_W_SCAG_________________, KC_QUOT,
- TD_LAYR, __COLEMAK_MOD_DH_L3________________________, KC_LSFT, QK_LEAD, KC_DEL, KC_TAB, __COLEMAK_MOD_DH_R3________________________, SC_SENT,
- KC_MUTE, KC_DEL, HY_ESC, LOW_BSP, RAI_ENT, KC_BSPC, NAV_SPC, HY_ESC, RAI_TAB, KC_RALT
-),
-[_QWERTY] = LAYOUT_wrapper(
- _______, __QWERTY_L1________________________________, __QWERTY_R1________________________________, _______,
- _______, __QWERTY_L2________________________________, __QWERTY_R2________________________________, _______,
- _______, __QWERTY_L3________________________________, _______, _______, _______, _______, __QWERTY_R3________________________________, _______,
- __BLANK____________________________________, __BLANK____________________________________
-),
-[_MOUSE] = LAYOUT_wrapper(
- _______, __BLANK____________________________________, __BLANK____________________________________, _______,
- _______, __BLANK____________________________________, __BLANK____________________________________, _______,
- _______, __BLANK____________________________________, _______, _______, _______, _______, __BLANK____________________________________, _______,
- KC_BTN1, _______, _______, _______, _______, _______, _______, _______, _______, KC_BTN2
-),
-/*
- * Lower Layer: Numpad and some symbols
- *
- * ,-------------------------------------------. ,-------------------------------------------.
- * | | ~ | ` | ( | ) | xxxx | | / ? | 7 & | 8 * | 9 ( | - _ | |
- * |--------+------+------+------+------+------| |------+------+------+------+------+--------|
- * | | LGUI | LALT |LCTL [|LSFT ]| _ - | | * | 4 $ | 5 % | 6 ^ | , < | + |
- * |--------+------+------+------+------+------+-------------. ,-------------+------+------+------+------+------+--------|
- * | | xxxx | xxxx | { | } | LSFT | | | | | | 0 ) | 1 ! | 2 @ | 3 # | = + | |
- * `----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------'
- * | | | | | | | | | | | |
- * | | | Lower| | | | | Nav | 0 | . | |
- * `----------------------------------' `----------------------------------'
- */
- [_LOWER] = LAYOUT_wrapper(
- _______, __SYMBOLS_L1_______________________________, __NUMPAD_R1________________________________, _______,
- _______, __SYMBOLS_L2_______________________________, __NUMPAD_R2________________________________, KC_COMM,
- _______, __SYMBOLS_L3_______________________________, _______, _______, _______, _______, __NUMPAD_R3________________________________, KC_DOT,
- __BLANK____________________________________, _______, KC_SPC, KC_0, KC_DOT, _______
- ),
-/*
- * Raise Layer: Symbols
- *
- * ,-------------------------------------------. ,-------------------------------------------.
- * | | ! | @ | { | } | | | | | & | € | | | \ |
- * |--------+------+------+------+------+------| |------+------+------+------+------+--------|
- * | | # | $ | ( | ) | ` | | _ | - | / | * | % | ' " |
- * |--------+------+------+------+------+------+-------------. ,-------------+------+------+------+------+------+--------|
- * | | % | ^ | [ | ] | ~ | | | | | | + | = | , | . | / ? | - _ |
- * `----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------'
- * | | | | | | | | | | | |
- * | | | Lower| | | | | Nav | Raise| | |
- * `----------------------------------' `----------------------------------'
- */
- // [_RAISE] = LAYOUT(
- // _______, KC_EXLM, KC_AT, KC_LPRN, KC_RPRN, KC_PIPE, _______, KC_AMPR, _______, _______, _______, KC_BSLS,
- // _______, KC_HASH, KC_DLR, KC_LBRC, KC_RBRC, KC_GRV, KC_UNDS, KC_MINS, KC_SLSH, KC_ASTR, KC_PERC, KC_QUOT,
- // _______, KC_PERC, KC_CIRC, KC_LCBR, KC_RCBR, KC_TILD, _______, _______, _______, _______, KC_PLUS, KC_EQL, KC_COMM, KC_DOT, KC_SLSH, KC_MINS,
- // _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
- // ),
- [_RAISE] = LAYOUT_wrapper(
- _______, XXXXXXX, XXXXXXX, KC_GRV, KC_GRV, KC_BSLS, __SYMBOLS_R1_______________________________, _______,
- _______, XXXXXXX, XXXXXXX, KC_UNDS, KC_MINS, KC_TILD, __SYMBOLS_R2_______________________________, _______,
- _______, XXXXXXX, XXXXXXX, KC_PLUS, KC_EQL, KC_GRV, _______, _______, _______, _______, __SYMBOLS_R3_______________________________, _______,
- __BLANK____________________________________, __BLANK____________________________________
- ),
-/*
- * Navigation Layer (w/ symbols on left)
- *
- * ,-------------------------------------------. ,-------------------------------------------.
- * | | | | | | | | PgUp | Home | Up | End | | ScrlLk |
- * |--------+------+------+------+------+------| |------+------+------+------+------+--------|
- * | | GUI | ALT | CTL | SFT | | | PgDn | Left | Down | Up | Right| CapsLk |
- * |--------+------+------+------+------+------+-------------. ,-------------+------+------+------+------+------+--------|
- * | | | | | | | | | | | | | | | | | |
- * `----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------'
- * | | | | | | | | | | | |
- * | | | Lower| | | | | Nav | Raise| | |
- * `----------------------------------' `----------------------------------'
- */
- [_NAV] = LAYOUT_wrapper(
- _______, __VIM_L1___________________________________, __NAV_R1___________________________________, KC_SCRL,
- _______, __BLANK_W_GACS_____________________________, __NAV_R2___________________________________, KC_CAPS,
- _______, __BLANK____________________________________, _______, _______, _______, _______, __NAV_R3___________________________________, _______,
- __BLANK____________________________________, __BLANK____________________________________
- ),
- /*
- * Adjust Layer: Function keys, RGB
- *
- * ,-------------------------------------------. ,-------------------------------------------.
- * | Boot | Boot |Debug | | | | | | F1 | F2 | F3 | F4 | |
- * |--------+------+------+------+------+------| |------+------+------+------+------+--------|
- * | | TOG | SAI | HUI | VAI | MOD | | | F5 | F6 | F7 | F8 | |
- * |--------+------+------+------+------+------+-------------. ,-------------+------+------+------+------+------+--------|
- * | | | SAD | HUD | VAD | RMOD | | | | | | | F9 | F10 | F11 | F12 | |
- * `----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------'
- * | | | | | | | | | | | |
- * | | | | | | | | | | | |
- * `----------------------------------' `----------------------------------'
- */
- [_ADJUST] = LAYOUT_wrapper(
- QK_BOOT, __ADJUST_L1________________________________, __MEDIA_R1_________________________________, _______,
- _______, __ADJUST_L2________________________________, __MEDIA_R2_________________________________, _______,
- _______, __ADJUST_L3________________________________, _______, _______, _______, _______, __MEDIA_R3_________________________________, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
- )
- // /*
- // * Layer template
- // *
- // * ,-------------------------------------------. ,-------------------------------------------.
- // * | | | | | | | | | | | | | |
- // * |--------+------+------+------+------+------| |------+------+------+------+------+--------|
- // * | | | | | | | | | | | | | |
- // * |--------+------+------+------+------+------+-------------. ,-------------+------+------+------+------+------+--------|
- // * | | | | | | | | | | | | | | | | | |
- // * `----------------------+------+------+------+------+------| |------+------+------+------+------+----------------------'
- // * | | | | | | | | | | | |
- // * | | | | | | | | | | | |
- // * `----------------------------------' `----------------------------------'
- // */
- // [_LAYERINDEX] = LAYOUT(
- // _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- // _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- // _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- // _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
- // ),
- // clang-format on
-};
-
-/*
- *
- */
-
-void keyboard_post_init_user(void) {
- // Call the keymap level matrix init.
-
-#ifdef RGBLIGHT_ENABLE
- set_rgb_home();
-#endif
-}
-
-layer_state_t layer_state_set_user(layer_state_t state) {
-#ifdef RGBLIGHT_ENABLE
- set_rgb_by_layer(state);
-#endif
- return state;
-}
-
-bool process_record_keymap(uint16_t keycode, keyrecord_t* record) {
- // Regular user keycode case statement
- switch (keycode) {
- default:
- return true;
- }
- return true;
-}
-
-#ifdef ENCODER_ENABLE
-bool encoder_update_user(uint8_t index, bool clockwise) {
-# ifdef POINTING_DEVICE_ENABLE
- if (IS_LAYER_ON(_MOUSE))
- return encoder_update_mouse(index, clockwise);
- else
-# endif
- return encoder_update_standard(index, clockwise);
-}
-
-bool encoder_update_standard(uint8_t index, bool clockwise) {
- if (index == 0) {
- // Volume control
- if (clockwise) {
- tap_code(KC_VOLU);
- } else {
- tap_code(KC_VOLD);
- }
- } else if (index == 1) {
- // Page up/Page down
-# ifdef MOUSEKEY_ENABLE
- if (clockwise) {
- tap_code(KC_WH_D);
- } else {
- tap_code(KC_WH_U);
- }
-# else
- if (clockwise) {
- tap_code(KC_PGDN);
- } else {
- tap_code(KC_PGUP);
- }
-# endif
- }
- return true;
-}
-#endif
-
-#ifdef RGBLIGHT_ENABLE
-void set_layer_hsv(layer_state_t state, HSV* layer_color) {
- uint16_t h = layer_color->h, s = layer_color->s, v = layer_color->v;
- switch (get_highest_layer(state)) {
- case _RAISE:
- h += 3 * RGBLIGHT_HUE_STEP;
- break;
- case _LOWER:
- h += -3 * RGBLIGHT_HUE_STEP;
- break;
- case _NAV:
- h += 2 * RGBLIGHT_HUE_STEP;
- break;
- case _MOUSE:
- h += -8 * RGBLIGHT_HUE_STEP;
- break;
- default:
- break;
- }
- layer_color->h = h % 255;
- layer_color->s = s;
- layer_color->v = v % 255;
- return;
-}
-#endif
diff --git a/keyboards/splitkb/kyria/keymaps/muppetjones/rules.mk b/keyboards/splitkb/kyria/keymaps/muppetjones/rules.mk
deleted file mode 100644
index b7e46ecfd2..0000000000
--- a/keyboards/splitkb/kyria/keymaps/muppetjones/rules.mk
+++ /dev/null
@@ -1,11 +0,0 @@
-OLED_ENABLE = no # Enables the use of OLED displays
-ENCODER_ENABLE = yes # Enables the use of one or more encoders
-RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
-LEADER_ENABLE = yes # Enable the Leader Key feature
-MOUSEKEY_ENABLE = yes
-TAP_DANCE_ENABLE = yes
-POINTING_DEVICE_ENABLE = yes
-COMBO_ENABLE = yes
-
-# Reduce firmware size
-# https://thomasbaart.nl/2018/12/01/reducing-firmware-size-in-qmk/
diff --git a/keyboards/splitkb/kyria/keymaps/ninjonas/README.md b/keyboards/splitkb/kyria/keymaps/ninjonas/README.md
deleted file mode 100644
index 08d2f4e198..0000000000
--- a/keyboards/splitkb/kyria/keymaps/ninjonas/README.md
+++ /dev/null
@@ -1,113 +0,0 @@
-# ninjonas Keymap for [Kyria](https://github.com/splitkb/kyria)
-
-## Keymap
-This keymap is designed based off my typing habits and is subject to change. Information about custom user macros and tap dances can be found [here](../../../../users/ninjonas).
-
-More information about the Kyria keyboard can be found [here](https://blog.splitkb.com/blog/introducing-the-kyria)
-
-### QWERTY
-```c
-// ,------—————————-------------------------------------. ,--------—————————-----------------------------------.
-// Tab, Q, W, E, R, T, Y, U, I, O, P, \
-// |--------+-----——-+——------+-——-----+——------+——-----| |------—+——------+——------+——------+——------+--------|
-// ESC, A, S, D, F, G, H, J, K, L, ;, '
-// |--------+-----——-+——------+-——-----+——------+——-----+———-----------. ,——————————————+------—+——------+——------+——------+——------+--------|
-// LShift, Z, X, C, V, B, ALT, NUMLK, N, M, ,, ., /, =
-// `--------------------------+--------+--------+-------+-------+------| |------+-------+-------+--------+--------+--------+--------+--------'
-// ALT, Cmd, Ctrl, Space, [, ], Enter, BackSP, Del, MUTE
-// `----------------------------------------' `----------------------------------------'
-```
-
-### DVORAK
-```c
-// ,------—————————-------------------------------------. ,--------—————————-----------------------------------.
-// Tab, ', ,, ., P, Y, F, G, C, R, L, \
-// |--------+-----——-+——------+-——-----+——------+——-----| |------—+——------+——------+——------+——------+--------|
-// ESC, A, O, E, U, I, D, H, T, N, S, /
-// |--------+-----——-+——------+-——-----+——------+——-----+———-----------. ,——————————————+------—+——------+——------+——------+——------+--------|
-// LShift, ;, Q, J, K, X, ALT, NUMLK, B, M, W, V, Z, =
-// `--------------------------+--------+--------+-------+-------+------| |------+-------+-------+--------+--------+--------+--------+--------'
-// ALT, Cmd, Ctrl, Space, [, ], Enter, BackSP, Del, MUTE
-// `----------------------------------------' `----------------------------------------'
-```
-
-### COLEMAK
-```c
-// ,------—————————-------------------------------------. ,--------—————————-----------------------------------.
-// Tab, Q, W, F, P, G, J, L, U, Y, ;, \
-// |--------+-----——-+——------+-——-----+——------+——-----| |------—+——------+——------+——------+——------+--------|
-// ESC, A, R, S, T, D, H, N, E, I, O, '
-// |--------+-----——-+——------+-——-----+——------+——-----+———-----------. ,——————————————+------—+——------+——------+——------+——------+--------|
-// LShift, Z, X, C, V, B, ALT, NUMLK, K, M, ,, ., /, =
-// `--------------------------+--------+--------+-------+-------+------| |------+-------+-------+--------+--------+--------+--------+--------'
-// ALT, Cmd, Ctrl, Space, [, ], Enter, BackSP, Del, MUTE
-// `----------------------------------------' `----------------------------------------'
-```
-
-### LOWER
-```c
-// ,------—————————-------------------------------------. ,--------—————————-----------------------------------.
-// , , KC_BRIU, Play, Mute, K_CSCN, PgUp, Home, Up, End, , K_MDSH
-// |--------+-----——-+——------+-——-----+——------+——-----| |------—+——------+——------+——------+——------+--------|
-// , , KC_BRID, Next, VolUp, , PgDn, Left, Down, Right, K_LOCK,
-// |--------+-----——-+——------+-——-----+——------+——-----+———-----------. ,——————————————+------—+——------+——------+——------+——------+--------|
-// , , , Prev, VolDn, [, ], , , M_CODE, M_XXX1, M_PYNV,
-// `--------------------------+--------+--------+-------+-------+------| |------+-------+-------+--------+--------+--------+--------+--------'
-//
-// `----------------------------------------' `----------------------------------------'
-```
-
-### RAISE
-```c
-// ,------—————————-------------------------------------. ,--------—————————-----------------------------------.
-// `, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, -
-// |--------+-----——-+——------+-——-----+——------+——-----| |------—+——------+——------+——------+——------+--------|
-// ~, !, @, #, $, %, ^, &, *, (, ), _
-// |--------+-----——-+——------+-——-----+——------+——-----+———-----------. ,——————————————+------—+——------+——------+——------+——------+--------|
-// F11, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F12
-// `--------------------------+--------+--------+-------+-------+------| |------+-------+-------+--------+--------+--------+--------+--------'
-//
-// `----------------------------------------' `----------------------------------------'
-```
-
-### ADJUST
-```c
-// ,------—————————-------------------------------------. ,--------—————————-----------------------------------.
-// M_MAKE, EE_CLR, , , , , RGB_TOG, , , COLEMAK, DVORAK, QWERTY,
-// |--------+-----——-+——------+-——-----+——------+——-----| |------—+——------+——------+——------+——------+--------|
-// M_VRSN, M_MALL, , RGB_SAI, RGB_HUI,RGB_VAI,
-// |--------+-----——-+——------+-——-----+——------+——-----+———-----------. ,——————————————+------—+——------+——------+——------+——------+--------|
-// M_FLSH, , , RGB_SAD, RGB_HUD,RGB_VAD, RGB_M_P, RGB_M_B,RGB_M_SW, , , ,
-// `--------------------------+--------+--------+-------+-------+------| |------+-------+-------+--------+--------+--------+--------+--------'
-//
-// `----------------------------------------' `----------------------------------------'
-
-```
-
-### NUMPAD
-```c
-// ,------—————————-------------------------------------. ,--------—————————-----------------------------------.
-// , , , , , , , 7, 8, 9, +, /,
-// |--------+-----——-+——------+-——-----+——------+——-----| |------—+——------+——------+——------+——------+--------|
-// , , , , , , , 4, 5, 6, -, *,
-// |--------+-----——-+——------+-——-----+——------+——-----+———-----------. ,——————————————+------—+——------+——------+——------+——------+--------|
-// , , , , , , , , , , 0, 1, 2, 3, ., :,
-// `--------------------------+--------+--------+-------+-------+------| |------+-------+-------+--------+--------+--------+--------+--------'
-//
-// `----------------------------------------' `----------------------------------------'
-```
-
-<!--
-### TEMPLATE
-```c
-// ,------—————————-------------------------------------. ,--------—————————-----------------------------------.
-// XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
-// |--------+-----——-+——------+-——-----+——------+——-----| |------—+——------+——------+——------+——------+--------|
-// XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
-// |--------+-----——-+——------+-——-----+——------+——-----+———-----------. ,——————————————+------—+——------+——------+——------+——------+--------|
-// XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX, XXXXXXX,XXXXXXX,XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
-// `--------------------------+--------+--------+-------+-------+------| |------+-------+-------+--------+--------+--------+--------+--------'
-// XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX, XXXXXXX,XXXXXXX,XXXXXXX, XXXXXXX, XXXXXXX
-// `----------------------------------------' `----------------------------------------'
-```
---> \ No newline at end of file
diff --git a/keyboards/splitkb/kyria/keymaps/ninjonas/config.h b/keyboards/splitkb/kyria/keymaps/ninjonas/config.h
deleted file mode 100644
index 11525a577a..0000000000
--- a/keyboards/splitkb/kyria/keymaps/ninjonas/config.h
+++ /dev/null
@@ -1,37 +0,0 @@
-/* Copyright 2020 ninjonas
- *
- * 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 TAPPING_TERM 200
-
-#ifdef OLED_ENABLE
- #define OLED_DISPLAY_128X64
- #define OLED_TIMEOUT 15000
-#endif
-
-#ifdef RGBLIGHT_ENABLE
-# define RGBLIGHT_SLEEP
-# define RGBLIGHT_LIMIT_VAL 200
-# define RGBLIGHT_HUE_STEP 8
-# define RGBLIGHT_SAT_STEP 8
-# define RGBLIGHT_VAL_STEP 8
-# define RGBLIGHT_SPLIT
-#endif
-
-// If you are using an Elite C rev3 on the slave side, uncomment the lines below:
-#define SPLIT_USB_DETECT
-#define SPLIT_USB_TIMEOUT 1000
diff --git a/keyboards/splitkb/kyria/keymaps/ninjonas/keymap.c b/keyboards/splitkb/kyria/keymaps/ninjonas/keymap.c
deleted file mode 100644
index ae4b3b7ba9..0000000000
--- a/keyboards/splitkb/kyria/keymaps/ninjonas/keymap.c
+++ /dev/null
@@ -1,118 +0,0 @@
-/* Copyright 2020 ninjonas
- *
- * 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 "ninjonas.h"
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
- [_QWERTY] = LAYOUT_wrapper(
-// ,------—————————-------------------------------------. ,--------—————————-----------------------------------.
- _____________________QWERTY_L1______________________, _____________________QWERTY_R1______________________,
-// |--------+-----——-+——------+-——-----+——------+——-----| |------—+——------+——------+——------+——------+--------|
- _____________________QWERTY_L2______________________, _____________________QWERTY_R2______________________,
-// |--------+-----——-+——------+-——-----+——------+——-----+———-----------. ,——————————————+------—+——------+——------+——------+——------+--------|
- _____________________QWERTY_L3______________________,XXXXXXX,KC_LALT, T_CPAP,XXXXXXX,_____________________QWERTY_R3______________________,
-// `--------------------------+--------+--------+-------+-------+------| |------+-------+-------+--------+--------+--------+--------+--------'
- _____________MOD_LEFT_____________,T_LBRC, T_RBRC,________MOD_RIGHT________,KC_MUTE
-// `----------------------------------------' `----------------------------------------'
- ),
-
- [_DVORAK] = LAYOUT_wrapper(
-// ,------—————————-------------------------------------. ,--------—————————-----------------------------------.
- _____________________DVORAK_L1______________________, _____________________DVORAK_R1______________________,
-// |--------+-----——-+——------+-——-----+——------+——-----| |------—+——------+——------+——------+——------+--------|
- _____________________DVORAK_L2______________________, _____________________DVORAK_R2______________________,
-// |--------+-----——-+——------+-——-----+——------+——-----+———-----------. ,——————————————+------—+——------+——------+——------+——------+--------|
- _____________________DVORAK_L3______________________,XXXXXXX,KC_LALT, T_CPAP,XXXXXXX,_____________________DVORAK_R3______________________,
-// `--------------------------+--------+--------+-------+-------+------| |------+-------+-------+--------+--------+--------+--------+--------'
- _____________MOD_LEFT_____________,T_LBRC, T_RBRC,________MOD_RIGHT________,KC_MUTE
-// `----------------------------------------' `----------------------------------------'
- ),
-
- [_COLEMAK] = LAYOUT_wrapper(
-// ,------—————————-------------------------------------. ,--------—————————-----------------------------------.
- _____________________COLEMAK_L1_____________________, _____________________COLEMAK_R1_____________________,
-// |--------+-----——-+——------+-——-----+——------+——-----| |------—+——------+——------+——------+——------+--------|
- _____________________COLEMAK_L2_____________________, _____________________COLEMAK_R2_____________________,
-// |--------+-----——-+——------+-——-----+——------+——-----+———-----------. ,——————————————+------—+——------+——------+——------+——------+--------|
- _____________________COLEMAK_L3_____________________,XXXXXXX,KC_LALT, T_CPAP,XXXXXXX,_____________________COLEMAK_R3_____________________,
-// `--------------------------+--------+--------+-------+-------+------| |------+-------+-------+--------+--------+--------+--------+--------'
- _____________MOD_LEFT_____________,T_LBRC, T_RBRC,________MOD_RIGHT________,KC_MUTE
-// `----------------------------------------' `----------------------------------------'
- ),
-
- [_LOWER] = LAYOUT_wrapper(
-// ,------—————————-------------------------------------. ,--------—————————-----------------------------------.
- _____________________LOWER_L1_______________________, _____________________LOWER_R1_______________________,
-// |--------+-----——-+——------+-——-----+——------+——-----| |------—+——------+——------+——------+——------+--------|
- _____________________LOWER_L2_______________________, _____________________LOWER_R2_______________________,
-// |--------+-----——-+——------+-——-----+——------+——-----+———-----------. ,——————————————+------—+——------+——------+——------+——------+--------|
- _____________________LOWER_L3_______________________,_______,_______, _______,_______,_____________________LOWER_R3_______________________,
-// `--------------------------+--------+--------+-------+-------+------| |------+-------+-------+--------+--------+--------+--------+--------'
- _______,_______,_______,_______,_______, _______,_______,_______,_______,_______
-// `----------------------------------------' `----------------------------------------'
- ),
-
- [_RAISE] = LAYOUT_wrapper(
-// ,------—————————-------------------------------------. ,--------—————————-----------------------------------.
- _____________________NUM_LEFT_______________________, _____________________NUM_RIGHT______________________,
-// |--------+-----——-+——------+-——-----+——------+——-----| |------—+——------+——------+——------+——------+--------|
- _____________________SYM_LEFT_______________________, _____________________SYM_RIGHT______________________,
-// |--------+-----——-+——------+-——-----+——------+——-----+———-----------. ,——————————————+------—+——------+——------+——------+——------+--------|
- _____________________FUNC_LEFT______________________,_______,_______, K_CPRF,_______,_____________________FUNC_RIGHT_____________________,
-// `--------------------------+--------+--------+-------+-------+------| |------+-------+-------+--------+--------+--------+--------+--------'
- _______,_______,_______,_______,_______, _______,_______,_______,_______,_______
-// `----------------------------------------' `----------------------------------------'
- ),
-
- [_ADJUST] = LAYOUT_wrapper(
-// ,------—————————-------------------------------------. ,--------—————————-----------------------------------.
- _____________________ADJUST_L1______________________, _____________________ADJUST_R1______________________,
-// |--------+-----——-+——------+-——-----+——------+——-----| |------—+——------+——------+——------+——------+--------|
- _____________________ADJUST_L2______________________, _____________________ADJUST_R2______________________,
-// |--------+-----——-+——------+-——-----+——------+——-----+———-----------. ,——————————————+------—+——------+——------+——------+——------+--------|
- _____________________ADJUST_L3______________________,_______,_______, _______,_______,_____________________ADJUST_R3______________________,
-// `--------------------------+--------+--------+-------+-------+------| |------+-------+-------+--------+--------+--------+--------+--------'
- _______,_______,_______,_______,_______, _______,_______,_______,_______,_______
-// `----------------------------------------' `----------------------------------------'
- ),
-
- [_NUMPAD] = LAYOUT_wrapper(
-// ,------—————————-------------------------------------. ,--------—————————-----------------------------------.
- _______, _______, _______, _______, _______,_______, _____________________NUMPAD_1_______________________,
-// |--------+-----——-+——------+-——-----+——------+——-----| |------—+——------+——------+——------+——------+--------|
- _______, _______, _______, _______, _______,_______, _____________________NUMPAD_2_______________________,
-// |--------+-----——-+——------+-——-----+——------+——-----+———-----------. ,——————————————+------—+——------+——------+——------+——------+--------|
- _______, _______, _______, _______,_______,_______,_______,_______, _______,_______,_____________________NUMPAD_3_______________________,
-// `--------------------------+--------+--------+-------+-------+------| |------+-------+-------+--------+--------+--------+--------+--------'
- _______,_______,_______,_______,_______, _______,_______,_______,_______,_______
-// `----------------------------------------' `----------------------------------------'
- ),
-
-/*
- [_TEMPLATE] = LAYOUT_wrapper(
-// ,------—————————-------------------------------------. ,--------—————————-----------------------------------.
- XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
-// |--------+-----——-+——------+-——-----+——------+——-----| |------—+——------+——------+——------+——------+--------|
- XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
-// |--------+-----——-+——------+-——-----+——------+——-----+———-----------. ,——————————————+------—+——------+——------+——------+——------+--------|
- XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX, XXXXXXX,XXXXXXX,XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
-// `--------------------------+--------+--------+-------+-------+------| |------+-------+-------+--------+--------+--------+--------+--------'
- XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX, XXXXXXX,XXXXXXX,XXXXXXX, XXXXXXX, XXXXXXX
-// `----------------------------------------' `----------------------------------------'
- ),
-*/
-}; \ No newline at end of file
diff --git a/keyboards/splitkb/kyria/keymaps/ninjonas/oled.c b/keyboards/splitkb/kyria/keymaps/ninjonas/oled.c
deleted file mode 100644
index d0f2a1b6cd..0000000000
--- a/keyboards/splitkb/kyria/keymaps/ninjonas/oled.c
+++ /dev/null
@@ -1,210 +0,0 @@
-/* Copyright 2020 ninjonas
- *
- * 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 "ninjonas.h"
-
-#ifdef OLED_ENABLE
-oled_rotation_t oled_init_user(oled_rotation_t rotation) { return OLED_ROTATION_180; }
-
-static void render_logo(void) {
- static const char PROGMEM logo[] = {
- // Converter: https://javl.github.io/image2cpp/
- // Image Dimensions: 128x64
- // Code Output Format: Plain Bytes
- // Draw Mode: Vertical, 1 bit per pixel
-0x00, 0x00, 0x80, 0xc0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xc0, 0xc0, 0x00, 0x00, 0xe0,
-0xe0, 0xe0, 0xe0, 0x00, 0x00, 0x80, 0xe0, 0xe0, 0xe0, 0xe0, 0x80, 0x00, 0x00, 0xe0, 0xe0, 0xe0,
-0xe0, 0x00, 0x60, 0xe0, 0xe0, 0xe0, 0x00, 0x00, 0x00, 0xe0, 0xe0, 0xe0, 0xe0, 0x80, 0x00, 0x00,
-0xc0, 0xe0, 0xe0, 0xe0, 0x20, 0x60, 0xe0, 0xe0, 0xe0, 0xe0, 0x00, 0x00, 0x00, 0xe0, 0xe0, 0xe0,
-0xe0, 0x00, 0x00, 0xc0, 0xc0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xc0, 0xc0, 0x00, 0x00, 0x00,
-0x80, 0xc0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xc0, 0x80, 0x00, 0xe0, 0xe0, 0xfc, 0xfe,
-0xfe, 0xfe, 0xee, 0xee, 0x0e, 0x80, 0xc0, 0xc0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xc0, 0x80,
-0x00, 0x00, 0x00, 0x80, 0xc0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xc0, 0x80, 0x00, 0x00,
-0x00, 0x00, 0x79, 0xfd, 0xfd, 0xfd, 0xec, 0xee, 0x76, 0x7f, 0xff, 0xff, 0xff, 0x80, 0x00, 0x00,
-0x07, 0x3f, 0xff, 0xfc, 0xf8, 0xff, 0x7f, 0x07, 0x0f, 0x7f, 0xff, 0xf8, 0xfc, 0xff, 0x3f, 0x07,
-0x00, 0x00, 0x00, 0x03, 0x1f, 0xff, 0xfe, 0xf0, 0xff, 0x7f, 0x0f, 0x07, 0x3f, 0xff, 0xfc, 0xf8,
-0xff, 0x7f, 0x0f, 0x01, 0x00, 0x00, 0x01, 0x0f, 0x3f, 0xff, 0xfe, 0xf8, 0xff, 0xff, 0x1f, 0x03,
-0x00, 0x00, 0x1f, 0x7f, 0x7f, 0xff, 0xf6, 0xe6, 0xe6, 0xf7, 0xf7, 0x77, 0x37, 0x17, 0x00, 0x30,
-0x79, 0xfd, 0xfd, 0xfd, 0xee, 0xee, 0x76, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0xff, 0xff,
-0xff, 0xff, 0x00, 0x00, 0x00, 0x3f, 0x7f, 0x7f, 0xff, 0xf1, 0xe0, 0xe0, 0xff, 0xff, 0x7f, 0x3f,
-0x0e, 0x00, 0x0e, 0x3f, 0x7f, 0xff, 0xff, 0xe0, 0xe0, 0xe1, 0xff, 0x7f, 0x7f, 0x3f, 0x04, 0x00,
-0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-0x00, 0x00, 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, 0xc0, 0xc0,
-0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x0e, 0x0e, 0x0f, 0x0f, 0x07, 0x03, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-0x00, 0x0c, 0x3c, 0xfc, 0xfc, 0xfc, 0xc0, 0x00, 0xe0, 0xfc, 0xfc, 0x7c, 0x1c, 0x00, 0xf0, 0xf8,
-0xf8, 0xfc, 0xdc, 0xdc, 0xdc, 0xfc, 0xfc, 0xf8, 0xf0, 0xe0, 0x00, 0x00, 0x30, 0xb8, 0xbc, 0xbc,
-0xdc, 0xdc, 0xdc, 0xfc, 0xfc, 0xf8, 0xf0, 0x00, 0x1c, 0x1c, 0xff, 0xff, 0xff, 0xff, 0x1d, 0x1d,
-0x00, 0xf0, 0xf8, 0xf8, 0xfc, 0x3c, 0x1c, 0x1c, 0xfc, 0xfc, 0xf8, 0xf0, 0xc0, 0x00, 0xe0, 0xf0,
-0xf8, 0xfc, 0x3c, 0x1c, 0x1c, 0x3c, 0xfc, 0xf8, 0xf8, 0xe0, 0x00, 0x00, 0x20, 0xb8, 0xbc, 0xbc,
-0xbc, 0xdc, 0xdc, 0xfc, 0xfc, 0xfc, 0xf8, 0xe0, 0x00, 0x0c, 0x7c, 0xfc, 0xfc, 0xc0, 0x00, 0xe0,
-0xfc, 0xfc, 0xfc, 0xfc, 0xf0, 0x80, 0x00, 0xf8, 0xfc, 0xfc, 0x3c, 0x04, 0x0c, 0x7c, 0xfc, 0xfc,
-0xf0, 0x00, 0xc0, 0xfc, 0xfc, 0x7c, 0xfc, 0xf8, 0xc0, 0x00, 0xf0, 0xfc, 0xfc, 0x7c, 0x0c, 0x00,
-0x00, 0x00, 0xc0, 0xc1, 0xc7, 0xff, 0xff, 0xff, 0x7f, 0x1f, 0x03, 0x00, 0x00, 0x00, 0x07, 0x0f,
-0x1f, 0x1f, 0x1e, 0x1c, 0x1c, 0x1e, 0x1e, 0x0e, 0x06, 0x00, 0x00, 0x06, 0x0f, 0x1f, 0x1f, 0x1f,
-0x1d, 0x1d, 0x0e, 0x1f, 0x1f, 0x1f, 0x1f, 0x00, 0x00, 0x00, 0x1f, 0x1f, 0x1f, 0x1f, 0x00, 0x00,
-0x00, 0x07, 0x0f, 0x0f, 0x1f, 0x1e, 0x1c, 0x1c, 0x1f, 0x1f, 0x0f, 0x07, 0x01, 0x00, 0x03, 0x07,
-0x0f, 0x1f, 0x1e, 0x1c, 0x1c, 0x1e, 0x1f, 0x0f, 0x0f, 0x03, 0x00, 0x00, 0x0f, 0x1f, 0x1f, 0x1f,
-0x1d, 0x1d, 0x0c, 0x0f, 0x1f, 0x1f, 0x1f, 0x1f, 0x00, 0x00, 0x00, 0x03, 0x1f, 0x1f, 0x1e, 0x1f,
-0x0f, 0x01, 0x00, 0x07, 0x1f, 0x1f, 0x1f, 0x1f, 0x0f, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0f,
-0x1f, 0x1e, 0x1f, 0x1f, 0x03, 0x00, 0x03, 0x1f, 0x1f, 0x1e, 0x1f, 0x0f, 0x01, 0x00, 0x00, 0x00,
-0x00, 0x80, 0xc1, 0xf1, 0xf9, 0xf9, 0xf9, 0xb8, 0xb8, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80,
-0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
-0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00,
-0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00,
-0x80, 0x80, 0x80, 0x80, 0x00, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80,
-0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00,
-0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00,
-0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00,
-0x00, 0x03, 0xff, 0xff, 0xff, 0xff, 0xff, 0x03, 0x03, 0x7c, 0xfe, 0xff, 0xff, 0xc7, 0x83, 0x83,
-0xc7, 0xff, 0xff, 0xff, 0x7c, 0x00, 0x00, 0x7c, 0xff, 0xff, 0xff, 0xc7, 0x83, 0x83, 0xc7, 0xff,
-0xff, 0xfe, 0x7c, 0x00, 0xc0, 0xe6, 0xf7, 0xf7, 0xf7, 0xbb, 0xbb, 0xdb, 0xff, 0xff, 0xff, 0xfe,
-0x00, 0x00, 0x03, 0x1f, 0xff, 0xff, 0xf0, 0xe0, 0xfe, 0xff, 0x1f, 0x3f, 0xff, 0xfe, 0xe0, 0xf0,
-0xff, 0xff, 0x1f, 0x03, 0x00, 0x01, 0x0f, 0x7f, 0xff, 0xf8, 0xc0, 0xfc, 0xff, 0x3f, 0x1f, 0xff,
-0xfe, 0xf0, 0xe0, 0xff, 0xff, 0x3f, 0x07, 0x00, 0x01, 0x07, 0x3f, 0xff, 0xff, 0xf8, 0xe0, 0xfc,
-0xff, 0x7f, 0x0f, 0x03, 0x00, 0xfe, 0xff, 0xff, 0xff, 0xdb, 0x9b, 0x9b, 0xdf, 0xdf, 0xdf, 0xde,
-0x1c, 0x00, 0xc0, 0xe6, 0xf7, 0xf7, 0xf7, 0xbb, 0xbb, 0xdb, 0xff, 0xff, 0xff, 0xfe, 0x00, 0x00,
-0x00, 0x00, 0x03, 0x03, 0x03, 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x03, 0x03, 0x03,
-0x03, 0x03, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03,
-0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x03, 0x03, 0x03, 0x03, 0x01, 0x03, 0x03, 0x03, 0x03,
-0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x03, 0x03, 0x03, 0x01, 0x00, 0x00, 0x01, 0x03, 0x03, 0x03,
-0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x03, 0x03, 0x03, 0x01, 0x00, 0x00, 0x00,
-0x03, 0x03, 0x03, 0x03, 0x01, 0x00, 0x00, 0x00, 0x00, 0x38, 0x38, 0x38, 0x3f, 0x3f, 0x1f, 0x0f,
-0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x01, 0x00,
-0x00, 0x00, 0x00, 0x01, 0x03, 0x03, 0x03, 0x03, 0x03, 0x01, 0x03, 0x03, 0x03, 0x03, 0x00, 0x00
- };
- oled_write_raw_P(logo, sizeof(logo));
-}
-
-static void render_qmk_logo(void) {
- static const char PROGMEM qmk_logo[] = {
- 0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8a,0x8b,0x8c,0x8d,0x8e,0x8f,0x90,0x91,0x92,0x93,0x94,
- 0xa0,0xa1,0xa2,0xa3,0xa4,0xa5,0xa6,0xa7,0xa8,0xa9,0xaa,0xab,0xac,0xad,0xae,0xaf,0xb0,0xb1,0xb2,0xb3,0xb4,
- 0xc0,0xc1,0xc2,0xc3,0xc4,0xc5,0xc6,0xc7,0xc8,0xc9,0xca,0xcb,0xcc,0xcd,0xce,0xcf,0xd0,0xd1,0xd2,0xd3,0xd4,0};
-
- oled_write_P(qmk_logo, false);
-}
-
-void oled_white_space(void){
- oled_write_P(PSTR(" "), false);
-}
-
-void oled_slash_separator(void){
- oled_write_P(PSTR(" / "), false);
-}
-
-void render_layout_state(void) {
- oled_write_P(PSTR("Layout: "), false);
- switch (get_highest_layer(default_layer_state)) {
- case _COLEMAK:
- oled_write_P(PSTR("Colemak"), false);
- break;
- case _DVORAK:
- oled_write_P(PSTR("Dvorak"), false);
- break;
- case _QWERTY:
- oled_write_P(PSTR("Qwerty"), false);
- break;
- default:
- oled_write_ln_P(PSTR("Undefined"), false);
- }
-}
-#ifdef ENCODER_ENABLE
-static void render_encoder_state(void) {
- oled_write_P(PSTR("\nEnc: "), false);
- bool lower = layer_state_is(_LOWER) & !layer_state_is(_ADJUST);
- bool raise = layer_state_is(_RAISE) & !layer_state_is(_ADJUST);
- bool adjust = layer_state_is(_ADJUST);
-
- if(lower){
- oled_write_P(PSTR("APPSW"), left_encoder_rotated);
- oled_slash_separator();
- oled_write_P(PSTR("UPDN"), right_encoder_rotated);
- } else if(raise){
- oled_write_P(PSTR("PGUD"), left_encoder_rotated);
- oled_slash_separator();
- oled_write_P(PSTR("TABSW"), right_encoder_rotated);
- } else if(adjust){
- oled_write_P(PSTR("RHUE"), left_encoder_rotated);
- oled_slash_separator();
- oled_write_P(PSTR("RBRI"), right_encoder_rotated);
- } else {
- oled_write_P(PSTR("BRI"), left_encoder_rotated);
- oled_slash_separator();
- oled_write_P(PSTR("VOL"), right_encoder_rotated);
- }
-
- if (timer_elapsed(encoder_rotated_timer) > 200) {
- left_encoder_rotated = false;
- right_encoder_rotated = false;
- }
-}
-#endif
-
-static void render_layer_state(void) {
- oled_write_P(PSTR("\nLayer:"), false);
- bool lower = layer_state_is(_LOWER) & !layer_state_is(_ADJUST);
- bool raise = layer_state_is(_RAISE) & !layer_state_is(_ADJUST);
- bool adjust = layer_state_is(_ADJUST);
- bool numpad = layer_state_is(_NUMPAD);
-
- if(lower){
- oled_write_P(PSTR(" Lower "), true);
- } else if(raise){
- oled_write_P(PSTR(" Raise "), true);
- } else if(adjust){
- oled_write_P(PSTR(" Adjust "), true);
- } else if(numpad) {
- oled_write_P(PSTR(" Numpad "), true);
- } else {
- oled_write_P(PSTR(" Default"), false);
- }
-}
-
-void render_mod_state(uint8_t modifiers) {
- oled_write_P(PSTR("\nMods: "), false);
- oled_write_P(PSTR("SHF"), (modifiers & MOD_MASK_SHIFT));
- oled_white_space();
- oled_write_P(PSTR("CTL"), (modifiers & MOD_MASK_CTRL));
- oled_white_space();
- oled_write_P(PSTR("ALT"), (modifiers & MOD_MASK_ALT));
- oled_white_space();
- oled_write_P(PSTR("GUI"), (modifiers & MOD_MASK_GUI));
-}
-
-static void render_status(void) {
- render_qmk_logo();
- render_layout_state();
- #ifdef ENCODER_ENABLE
- render_encoder_state();
- #endif
- render_layer_state();
- render_mod_state(get_mods()|get_oneshot_mods());
-}
-
-bool oled_task_user(void) {
- if (is_keyboard_master()) {
- render_status();
- } else {
- render_logo();
- oled_scroll_left();
- }
- return false;
-}
-#endif
diff --git a/keyboards/splitkb/kyria/keymaps/ninjonas/rules.mk b/keyboards/splitkb/kyria/keymaps/ninjonas/rules.mk
deleted file mode 100644
index 9d1a8a631e..0000000000
--- a/keyboards/splitkb/kyria/keymaps/ninjonas/rules.mk
+++ /dev/null
@@ -1,6 +0,0 @@
-OLED_ENABLE = yes
-ENCODER_ENABLE = yes # Enables the use of one or more encoders
-RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
-LTO_ENABLE = yes
-
-SRC += oled.c
diff --git a/keyboards/splitkb/kyria/keymaps/rmw/config.h b/keyboards/splitkb/kyria/keymaps/rmw/config.h
deleted file mode 100644
index bb085106c6..0000000000
--- a/keyboards/splitkb/kyria/keymaps/rmw/config.h
+++ /dev/null
@@ -1,43 +0,0 @@
-/* Copyright 2019 Thomas Baart <thomas@splitkb.com>
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-#pragma once
-
-#define MACOSX
-
-#ifdef OLED_ENABLE
- #define OLED_DISPLAY_128X64
-#endif
-
-#ifdef RGBLIGHT_ENABLE
-#define RGBLIGHT_EFFECT_BREATHING
-#define RGBLIGHT_EFFECT_RAINBOW_MOOD
-#define RGBLIGHT_EFFECT_RAINBOW_SWIRL
-#define RGBLIGHT_EFFECT_SNAKE
-#define RGBLIGHT_EFFECT_KNIGHT
-#define RGBLIGHT_EFFECT_CHRISTMAS
-#define RGBLIGHT_EFFECT_STATIC_GRADIENT
-#define RGBLIGHT_EFFECT_RGB_TEST
-#define RGBLIGHT_EFFECT_ALTERNATING
-#define RGBLIGHT_EFFECT_TWINKLE
- #define RGBLIGHT_HUE_STEP 8
- #define RGBLIGHT_SAT_STEP 8
- #define RGBLIGHT_VAL_STEP 8
-#endif
-
-// If you are using an Elite C rev3 on the follower side, uncomment the lines below:
-// #define SPLIT_USB_DETECT
-// #define NO_USB_STARTUP_CHECK
diff --git a/keyboards/splitkb/kyria/keymaps/rmw/keymap.c b/keyboards/splitkb/kyria/keymaps/rmw/keymap.c
deleted file mode 100644
index 59b18de418..0000000000
--- a/keyboards/splitkb/kyria/keymaps/rmw/keymap.c
+++ /dev/null
@@ -1,160 +0,0 @@
-/* Copyright 2019 Thomas Baart <thomas@splitkb.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 QMK_KEYBOARD_H
-#include "rmw.h"
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
- [QWERTY] = LAYOUT_split_3x6_5(
- KC_TAB , KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS,
- OSL(EDIT), KC_A, LT(NUMPAD,KC_S), KC_D, LT(FSYM,KC_F), KC_G, KC_H, LT(JSYM,KC_J), KC_K, KC_L, LT(EDIT,KC_SCLN), KC_QUOT,
- TD(FRBK2) , KC_Z, KC_X, KC_C, KC_V, KC_B, TO(EDIT), KC_ESCAPE, KC_DEL, TO(NUMPAD), KC_N, KC_M, KC_COMM, KC_DOT, LT(MEDIA,KC_SLSH), KC_MS_BTN1,
- TO(ADJUST), TD(SGCA), TD(AGC), KC_BSPC, TD(SHNTC), SFTENT, KC_SPC, TD(GCA), TD(CTLALL), KC_CAPS
- ),
-
- [MINIMAK4] = LAYOUT_split_3x6_5(
- KC_TAB , KC_Q, KC_W, KC_D, KC_R, KC_K, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_PIPE,
- OSL(EDIT), KC_A, LT(NUMPAD,KC_S), KC_T, LT(FSYM,KC_F), KC_G, KC_H, LT(JSYM,KC_J), KC_E, KC_L, LT(EDIT,KC_SCLN), KC_QUOT,
- OSM(MOD_LSFT) , KC_Z, KC_X, KC_C, KC_V, KC_B, TO(EDIT), KC_ESCAPE, KC_DEL, TO(NUMPAD), KC_N, KC_M, KC_COMM, KC_DOT, LT(MEDIA,KC_SLSH), KC_MINS,
- _______, TO(ADJUST), TD(SGCA), KC_BSPC, TD(SHNTC), SFTENT, KC_SPC, TD(GCA), TD(CTLALL), _______
- ),
-
- [NUMPAD] = LAYOUT_split_3x6_5(
- _______, _______, _______, _______, _______, _______, _______, KC_7, KC_8, KC_9, KC_KP_MINUS, _______,
- _______, _______, _______, _______, _______, _______, _______, KC_4, KC_5, KC_6, KC_KP_PLUS , _______,
- _______, _______, _______, _______, _______, _______, TO(QWERTY), _______, _______, TO(EDIT), _______, KC_1, KC_2, KC_3, KC_KP_SLASH, LCTL(KC_RIGHT),
- _______, _______, _______, _______ , _______, _______, _______, KC_0, KC_DOT, _______
- ),
-
- [EDIT] = LAYOUT_split_3x6_5(
- _______, TASK_MAN, _______, SELW_LEFT, SELW_RIGHT, _______, NEW_TAB , KC_PGUP, KC_UP, KC_PGDN, KC_PSCR, _______,
- _______, _______ , LGUI(KC_GRV), MVW_LEFT, MVW_RIGHT , _______, R_HOME , KC_LEFT, KC_DOWN, KC_RIGHT, R_END, _______,
- LCTL(KC_LEFT), R_UNDO, R_CUT , R_COPY , R_PASTE, R_REDO , TO(NUMPAD), FORM_GET, FORM_PUT, TO(QWERTY), SEL_HOME, S(KC_LEFT), S(KC_DOWN), S(KC_RIGHT), SEL_END, _______,
- _______, _______, _______, DEL_WRD, _______, _______, _______, _______, _______, _______
- ),
-
- [ADJUST] = LAYOUT_split_3x6_5(
- KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,
- TO(QWERTY), TO(EDIT), TO(NUMPAD), TO(JSYM), TO(FSYM), TO(MEDIA), _______, _______, _______, _______, _______, _______,
- DF(MINIMAK4), DF(QWERTY), RGB_SAD, RGB_HUD, RGB_VAD, RGB_RMOD,_______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
- ),
-
- [FSYM] = LAYOUT_split_3x6_5(
- _______, _______, _______, _______, _______, _______, KC_CIRC, KC_AMPR , KC_ASTR, KC_GRV , _______, _______,
- _______, _______, KC_TILD, KC_EXLM, _______, _______, KC_EQUAL, KC_MINUS, KC_UNDS, KC_PIPE, KC_COLON, KC_DQT,
- LCTL(KC_RIGHT), _______, TO(QWERTY), _______, _______, _______, _______, _______, _______, _______, _______, KC_PLUS, KC_BSLS, KC_SLSH, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
- ),
-
- [JSYM] = LAYOUT_split_3x6_5(
- _______, KC_GRV, KC_AT , KC_LCBR, KC_RCBR, _______, _______, _______, _______, _______, _______, _______,
- _______, KC_HASH, KC_DLR , KC_LPRN, KC_RPRN, KC_LEFT, _______, _______, KC_QUES, KC_SLSH, KC_COLON, _______,
- _______, KC_PERC, KC_CIRC, KC_LBRC, KC_RBRC, _______, _______, _______, _______, _______, _______, _______, _______, TO(QWERTY), _______, LCTL(KC_LEFT),
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
- ),
-
- [MEDIA] = LAYOUT_split_3x6_5(
- _______, KC_WH_U, KC_WH_L, KC_MS_UP, KC_WH_R, _______, _______, _______, _______, _______, _______, _______,
- _______, KC_WH_D, KC_MS_LEFT, KC_MS_DOWN, KC_MS_RIGHT, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, KC_ACL0, KC_ACL1, KC_ACL2, _______, _______, _______, _______, _______, _______, _______, KC_VOLD, KC_MUTE, KC_VOLU, _______,
- _______, _______, _______, _______, _______, KC_MS_BTN1, KC_MEDIA_PLAY_PAUSE, KC_MRWD, KC_MFFD, _______
- )
-};
-
-bool process_record_keymap(uint16_t keycode, keyrecord_t *record) {
- switch (keycode) {
- case FORM_GET:
- if (record->event.pressed) {
- tap_code(KC_BTN1);
- tap_code16(G(KC_A));
- tap_code16(G(KC_C));
- }
- return false;
- case FORM_PUT:
- if (record->event.pressed) {
- tap_code16(KC_MS_BTN1);
- tap_code16(G(KC_A));
- tap_code16(G(KC_V));
- }
- return false;
- }
- return true;
-}
-
-#ifdef ENCODER_ENABLE
-bool encoder_update_keymap(uint8_t index, bool clockwise) {
- if (index == 0) {
- switch (get_highest_layer(layer_state)) {
- case EDIT:
- enc_move_words(clockwise);
- break;
- case QWERTY:
- enc_move_desktop(clockwise);
- default:
- enc_history_scrubbing(clockwise);
- break;
- }
- } else if (index == 1) {
- switch (get_highest_layer(layer_state)) {
- case QWERTY:
- enc_scrolling(clockwise);
- break;
- case FSYM:
- enc_zoom(clockwise);
- break;
- default:
- enc_volume_knob(clockwise);
- break;
- }
- }
- return true;
-}
-#endif
-
-#ifdef RGBLIGHT_ENABLE // include mods, as well as layers
-layer_state_t layer_state_set_user(layer_state_t state) {
- switch (get_highest_layer(state)) {
- case QWERTY:
- rgblight_setrgb (0x00, 0x00, 0x00);
- break;
- case MINIMAK4:
- rgblight_setrgb (0x20, 0x20, 0x20);
- break;
- case NUMPAD:
- rgblight_setrgb (0xFF, 0x00, 0x00);
- break;
- case EDIT:
- rgblight_setrgb (0x00, 0xFF, 0x00);
- break;
- case FSYM:
- rgblight_setrgb (0x7A, 0x7A, 0x00);
- break;
- case JSYM:
- rgblight_setrgb (0x7A, 0x00, 0x7A);
- break;
- case MEDIA:
- rgblight_setrgb (0x00, 0x7A, 0x7A);
- break;
- case ADJUST:
- rgblight_setrgb (0x7A, 0x7A, 0x7A);
- break;
- default:
- rgblight_setrgb (0x00, 0x00, 0x00);
- }
- return state;
-}
-#endif
diff --git a/keyboards/splitkb/kyria/keymaps/rmw/readme.md b/keyboards/splitkb/kyria/keymaps/rmw/readme.md
deleted file mode 100644
index c05ca494b7..0000000000
--- a/keyboards/splitkb/kyria/keymaps/rmw/readme.md
+++ /dev/null
@@ -1,9 +0,0 @@
-# RMW Kyria Layout
-
-This is a Kyria edition of the keymap I use on the Ergodox_EZ I use for work. I write reports and code in a variety of languages on that board and the various layers provide plenty of flexibility for navigating, editing text, and writing code and prose. This keymap is mostly Mac-focused in its shortcuts and tapdances.
-
-## The theory of this keymap
-
-The base layer is either QWERTY or MINIMAK4, as desired. Overlaid on that base layer are various layers triggered by one-shots, TOs, and LTs. Tapdances are used to cram lots of mods into few keys and provide freedom to hit combinations with either hand. Mods and layer things are one-shot (where reasonable) because I prefer that.
-
-An EDIT layer provides text navigation, selection, and editing capabilities in home position. The NUMPAD layer offers a numpad and various spreadsheet-useful navigations and operations. Holding S will put the numpad under your right hand in home position. Keys F and J offer various useful symbols (mostly) on the opposite hand when held, including \[\]\(\)\{\} under the left pointer and middle fingers on bottom, middle, and top rows respectively. The MEDIA layer provides media controls (obvs) and some mouse movement and nav, in case I don't feel like reaching for the trackball/trackpad/mouse.
diff --git a/keyboards/splitkb/kyria/keymaps/rmw/rules.mk b/keyboards/splitkb/kyria/keymaps/rmw/rules.mk
deleted file mode 100644
index 1e2e1ad817..0000000000
--- a/keyboards/splitkb/kyria/keymaps/rmw/rules.mk
+++ /dev/null
@@ -1,4 +0,0 @@
-OLED_ENABLE = no # Enables the use of OLED displays
-ENCODER_ENABLE = yes # Enables the use of one or more encoders
-RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
-TAP_DANCE_ENABLE=yes # Enables Tap Dance
diff --git a/keyboards/splitkb/kyria/keymaps/uqs/config.h b/keyboards/splitkb/kyria/keymaps/uqs/config.h
deleted file mode 100644
index 05ba801df4..0000000000
--- a/keyboards/splitkb/kyria/keymaps/uqs/config.h
+++ /dev/null
@@ -1,12 +0,0 @@
-// Copyright 2022 Ulrich Spörlein (@uqs)
-// SPDX-License-Identifier: GPL-2.0-or-later
-#pragma once
-
-#ifdef RGBLIGHT_ENABLE
- #define RGBLIGHT_HUE_STEP 8
- #define RGBLIGHT_SAT_STEP 8
- #define RGBLIGHT_VAL_STEP 8
- #define RGBLIGHT_LIMIT_VAL 150
-#endif
-
-#define EE_HANDS
diff --git a/keyboards/splitkb/kyria/keymaps/uqs/keymap.c b/keyboards/splitkb/kyria/keymaps/uqs/keymap.c
deleted file mode 100644
index 398b167e72..0000000000
--- a/keyboards/splitkb/kyria/keymaps/uqs/keymap.c
+++ /dev/null
@@ -1,153 +0,0 @@
-// Copyright 2022 Ulrich Spörlein (@uqs)
-// SPDX-License-Identifier: GPL-2.0-or-later
-// vi:et sw=4 cc=5,15,25,35,45,55,65:
-
-#include "uqs.h"
-
-/*
- * My custom layout macro that allows for easy diff(1) operations between
- * various keyboards. It probably doesn't make sense to you.
- */
-#define LAYOUT_uqs( \
- L00, L01, L02, L03, L04, L05, \
- L12, L13, L14, L15, L16, L17, \
- L24, L25, L26, L27, L28, L29, \
- L40, L41, \
- L42, L43, L44, \
- L30, L31, \
- R06, R07, R08, R09, R10, R11, \
- R18, R19, R20, R21, R22, R23, \
- R34, R35, R36, R37, R38, R39, \
- R48, R49, \
- R45, R46, R47, \
- R32, R33 \
-) \
-LAYOUT_split_3x6_5( \
- L00, L01, L02, L03, L04, L05, R06, R07, R08, R09, R10, R11, \
- L12, L13, L14, L15, L16, L17, R18, R19, R20, R21, R22, R23, \
- L24, L25, L26, L27, L28, L29, L30, L31, R32, R33, R34, R35, R36, R37, R38, R39, \
- L40, L41, L42, L43, L44, R45, R46, R47, R48, R49 \
-)
-
-// clang-format off
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [L_QWER] = LAYOUT_uqs(
- KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T,
- KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G,
- KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B,
- KC_LBRC, KC_RBRC,
- /*thumb*/ LT_EXTD_ESC, KC_SPC, LT_MOUSE_ALT_SHIFT_INS,
- /*aux*/ OSM_GUI, KC_LALT,
- KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS,
- KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
- KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, RSFT_T(KC_GRV),
- KC_MINS, KC_EQL,
- /*thumb*/ LT_FUNC_SHIFT_INS, KC_ENT, LT_NUM_BSPC,
- /*aux*/ KC_RALT, KC_APP
- ),
-
- [L_WASD] = LAYOUT_uqs(
- KC_T, KC_TAB, KC_Q, KC_W, KC_E, KC_R,
- KC_G, KC_LSFT, KC_A, KC_S, KC_D, KC_F,
- KC_B, KC_GRV, KC_Z, KC_X, KC_C, KC_V,
- KC_LBRC, KC_RBRC,
- /*thumb*/ KC_LCTL, KC_SPC, KC_R,
- /*aux*/ OSM_GUI, KC_LALT,
- KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS,
- KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
- KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, RSFT_T(KC_GRV),
- KC_MINS, KC_EQL,
- /*thumb*/ DF(L_COLM), KC_ENT, KC_BSPC,
- /*aux*/ KC_RALT, KC_APP
- ),
-
- [L_COLM] = LAYOUT_uqs(
- KC_BTN2, KC_Q, KC_W, KC_F, KC_P, KC_B,
- KC_BTN1, KC_G_A, KC_A_R, KC_S_S, KC_C_T, KC_G,
- KC_BTN3, KC_Z, KC_X, KC_C, KC_D, KC_V,
- MS_WHUP, MS_WHDN,
- /*thumb*/ LT_EXTD_ESC, SFT_T(KC_SPC), LT(L_MOUSE, KC_TAB),
- /*aux*/ OSM_GUI, KC_LALT,
- KC_J, KC_L, KC_U, KC_Y, KC_QUOT, KC_NO,
- KC_M, KC_C_N, KC_S_E, KC_A_I, KC_G_O, KC_NO,
- KC_K, KC_H, KC_COMM, KC_DOT, KC_SLSH, KC_NO,
- KC_NO, KC_NO,
- /*thumb*/ LT_FUNC_SHIFT_INS, KC_ENT, LT_NUM_BSPC,
- /*aux*/ KC_RALT, KC_APP
- ),
-
- // Updated with inspiration from https://forum.colemak.com/topic/2014-extend-extra-extreme/
- // I like the AltGr trick from https://stevep99.github.io/seniply/ and should probably incorporate some stuff from it.
- [L_EXTD] = LAYOUT_uqs(
- _______, KC_BTN1, KC_SCTAB, KC_PGUP, KC_CTAB, QK_LEAD,
- _______, OSM_GUI, OSM_ALT, OSM_SFT, OSM_CTL, KC_RALT,
- _______, ALT_TAB, MS_WHUP, MS_WHDN, KC_PGDN, INS_HARD,
- _______, _______,
- /*thumb*/ _______, _______, _______,
- /*aux*/ _______, _______,
- /* ^^^^ can't be used */
- KC_HOME, KC_PGDN, KC_PGUP, KC_END, KC_INS, KC_NO,
- KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_DEL, KC_NO,
- WIN_LEFT, WIN_DN, WIN_UP, WIN_RGHT, KC_PSTE, KC_NO, // KC_PSTE works in XTerm to emulate middle-click
- _______, _______,
- /*thumb*/ _______, _______, KC_BSPC,
- /*aux*/ _______, _______
- /* ^^^^ use these */
- ),
-
- // TODO: maybe swap # with ;, that way I can roll :w or :wq which I need
- // often ... probably better to add a combo?
- [L_NUM] = LAYOUT_uqs(
- _______, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC,
- _______, KC_SCLN, KC_COLN, KC_LCBR, KC_LPRN, KC_LBRC,
- _______, KC_CIRC, KC_AMPR, KC_RCBR, KC_RPRN, KC_RBRC,
- KC_GRV, KC_TILDE,
- /*thumb*/ KC_ESC, KC_SPC, KC_0,
- /*aux*/ _______,_______,
- /* ^^^^ use these */
-
- KC_EQUAL, KC_7, KC_8, KC_9, KC_KP_PLUS,_______,
- KC_KP_ASTERISK,KC_4,KC_5, KC_6, MINS_UNDSCR,_______,
- KC_COMM, KC_1, KC_2, KC_3, KC_KP_SLASH,KC_KP_ENTER, // Enter here, because thumb is occupied
- KC_0, KC_KP_DOT,
- /*thumb*/ _______, _______, _______,
- /*aux*/ _______, _______
- /* ^^^^ can't be used */
- ),
-
- [L_FUNC] = LAYOUT_uqs(
- _______, KC_NO, KC_MUTE, KC_VOLD, KC_VOLU, DF(L_WASD),
- _______, KC_LGUI, KC_LALT, KC_LSFT, KC_LCTL, DF(L_QWER),
- _______, KC_NO, KC_NO, KC_NO, KC_NO, DF(L_COLM),
- KC_NO, KC_NO,
- /*thumb*/ KC_NO, KC_NO, KC_NO,
- /*aux*/ _______, _______,
- /* ^^^^ use these */
-
- KC_PSCR, KC_F7, KC_F8, KC_F9, KC_F10, KC_NO,
- KC_SCRL, KC_F4, KC_F5, KC_F6, KC_F11, KC_NO,
- KC_PAUS, KC_F1, KC_F2, KC_F3, KC_F12, KC_NO,
- KC_NO, KC_NO,
- /*thumb*/ _______, _______, _______,
- /*aux*/ _______, _______
- /* ^^^^ can't be used */
- ),
-
- [L_MOUSE] = LAYOUT_uqs(
- _______, KC_NO, KC_BTN2, KC_BTN3, KC_BTN1, KC_VOLU,
- _______, KC_NO, KC_ACL0, KC_ACL1, KC_ACL2, KC_VOLD,
- _______, KC_NO, KC_NO, KC_NO, KC_NO, KC_MUTE,
- KC_NO, KC_NO,
- /*thumb*/ _______, _______, _______,
- /*aux*/ _______, _______,
- /* ^^^^ can't be used */
-
- _______, _______, KC_MS_UP, MS_WHUP, _______, _______,
- MS_WHLEFT,KC_MS_L, KC_MS_D, KC_MS_R, MS_WHRGHT,_______,
- _______, MS_WHDN, KC_BTN3, KC_BTN4, KC_BTN5, _______,
- KC_NO, KC_NO,
- /*thumb*/ KC_NO, KC_BTN1, KC_BTN2,
- /*aux*/ _______, _______
- /* use these ^^^^ */
- ),
-};
diff --git a/keyboards/splitkb/kyria/keymaps/uqs/rules.mk b/keyboards/splitkb/kyria/keymaps/uqs/rules.mk
deleted file mode 100644
index 517f469b6d..0000000000
--- a/keyboards/splitkb/kyria/keymaps/uqs/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-OLED_ENABLE = no
diff --git a/keyboards/splitkb/kyria/keymaps/zigotica/config.h b/keyboards/splitkb/kyria/keymaps/zigotica/config.h
deleted file mode 100644
index 9376550cab..0000000000
--- a/keyboards/splitkb/kyria/keymaps/zigotica/config.h
+++ /dev/null
@@ -1,43 +0,0 @@
-/* Copyright 2020 Sergi Meseguer <zigotica@gmail.com>
-
-This program is free software: you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program. If not, see <http://www.gnu.org/licenses/>.
-*/
-
-#pragma once
-
-#define SPLIT_LAYER_STATE_ENABLE
-#define SPLIT_LED_STATE_ENABLE
-#define MASTER_RIGHT// EE_HANDS MASTER_RIGHT
-
-// these should work better for homerow modifiers
-#define TAPPING_TERM 350
-#define PERMISSIVE_HOLD
-#define QUICK_TAP_TERM 0
-
-#define LEADER_PER_KEY_TIMING
-#define LEADER_TIMEOUT 300
-
-#ifdef OLED_ENABLE
- #define OLED_DISPLAY_128X64
- #define OLED_TIMEOUT 10000
-#endif
-
-#ifdef ENCODER_ENABLE
- // EC11K encoders have a different resolution than other EC11 encoders.
- // When using the default resolution of 4, if you notice your encoder skipping
- // every other tick, lower the resolution to 2.
- #define ENCODER_RESOLUTION 2
- // Also, flip direction
- #define ENCODER_DIRECTION_FLIP
-#endif
diff --git a/keyboards/splitkb/kyria/keymaps/zigotica/keymap.c b/keyboards/splitkb/kyria/keymaps/zigotica/keymap.c
deleted file mode 100644
index 2671f07463..0000000000
--- a/keyboards/splitkb/kyria/keymaps/zigotica/keymap.c
+++ /dev/null
@@ -1,58 +0,0 @@
-/* Copyright 2020 Sergi Meseguer <zigotica@gmail.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 "zigotica.h"
-
-#define LAYOUT_wrapper(...) LAYOUT(__VA_ARGS__)
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
- [BASE] = LAYOUT_wrapper(
- _______, _STENAI_L1, _STENAI_R1, _______,
- _______, _STENAI_L2, _STENAI_R2, _______,
- _______, _STENAI_L3, _______, _______, _______, _______, _STENAI_R3, _______,
- _______, _______, _STENAI_LT, _______, _______, _STENAI_RT, _______, _______
- ),
-
- [_NUM] = LAYOUT_wrapper(
- _______, ____NUM_L1, ____NUM_R1, _______,
- _______, ____NUM_L2, ____NUM_R2, _______,
- _______, ____NUM_L3, _______, _______, _______, _______, ____NUM_R3, _______,
- _______, _______, ____NUM_LT, _______, _______, ____NUM_RT, _______, _______
- ),
-
- [_NAV] = LAYOUT_wrapper(
- _______, ____NAV_L1, ____NAV_R1, _______,
- _______, ____NAV_L2, ____NAV_R2, _______,
- _______, ____NAV_L3, _______, _______, _______, _______, ____NAV_R3, _______,
- _______, _______, ____NAV_LT, _______, _______, ____NAV_RT, _______, _______
- ),
-
- [_SYM] = LAYOUT_wrapper(
- _______, ____SYM_L1, ____SYM_R1, _______,
- _______, ____SYM_L2, ____SYM_R2, _______,
- _______, ____SYM_L3, _______, _______, _______, _______, ____SYM_R3, _______,
- _______, _______, ____SYM_LT, _______, _______, ____SYM_RT, _______, _______
- ),
-
- [_FN] = LAYOUT_wrapper(
- _______, ____FN_L1, ____FN_R1, _______,
- _______, ____FN_L2, ____FN_R2, _______,
- _______, ____FN_L3, _______, _______, _______, _______, ____FN_R3, _______,
- _______, _______, ____FN_LT, _______, _______, ____FN_RT, _______, _______
- ),
-};
-
diff --git a/keyboards/splitkb/kyria/keymaps/zigotica/oled.c b/keyboards/splitkb/kyria/keymaps/zigotica/oled.c
deleted file mode 100644
index ba1415deed..0000000000
--- a/keyboards/splitkb/kyria/keymaps/zigotica/oled.c
+++ /dev/null
@@ -1,87 +0,0 @@
-/* Copyright 2020 Sergi Meseguer <zigotica@gmail.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 "zigotica.h"
-
-oled_rotation_t oled_init_user(oled_rotation_t rotation) {
- return OLED_ROTATION_180;
-}
-
-static void render_kyria_logo(void) {
- static const char PROGMEM kyria_logo[] = {
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,128,192,224,240,112,120, 56, 60, 28, 30, 14, 14, 14, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 14, 14, 14, 30, 28, 60, 56,120,112,240,224,192,128,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,192,224,240,124, 62, 31, 15, 7, 3, 1,128,192,224,240,120, 56, 60, 28, 30, 14, 14, 7, 7,135,231,127, 31,255,255, 31,127,231,135, 7, 7, 14, 14, 30, 28, 60, 56,120,240,224,192,128, 1, 3, 7, 15, 31, 62,124,240,224,192, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,240,252,255, 31, 7, 1, 0, 0,192,240,252,254,255,247,243,177,176, 48, 48, 48, 48, 48, 48, 48,120,254,135, 1, 0, 0,255,255, 0, 0, 1,135,254,120, 48, 48, 48, 48, 48, 48, 48,176,177,243,247,255,254,252,240,192, 0, 0, 1, 7, 31,255,252,240, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0,255,255,255, 0, 0, 0, 0, 0,254,255,255, 1, 1, 7, 30,120,225,129,131,131,134,134,140,140,152,152,177,183,254,248,224,255,255,224,248,254,183,177,152,152,140,140,134,134,131,131,129,225,120, 30, 7, 1, 1,255,255,254, 0, 0, 0, 0, 0,255,255,255, 0, 0, 0, 0,255,255, 0, 0,192,192, 48, 48, 0, 0,240,240, 0, 0, 0, 0, 0, 0,240,240, 0, 0,240,240,192,192, 48, 48, 48, 48,192,192, 0, 0, 48, 48,243,243, 0, 0, 0, 0, 0, 0, 48, 48, 48, 48, 48, 48,192,192, 0, 0, 0, 0, 0,
- 0, 0, 0,255,255,255, 0, 0, 0, 0, 0,127,255,255,128,128,224,120, 30,135,129,193,193, 97, 97, 49, 49, 25, 25,141,237,127, 31, 7,255,255, 7, 31,127,237,141, 25, 25, 49, 49, 97, 97,193,193,129,135, 30,120,224,128,128,255,255,127, 0, 0, 0, 0, 0,255,255,255, 0, 0, 0, 0, 63, 63, 3, 3, 12, 12, 48, 48, 0, 0, 0, 0, 51, 51, 51, 51, 51, 51, 15, 15, 0, 0, 63, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 48, 63, 63, 48, 48, 0, 0, 12, 12, 51, 51, 51, 51, 51, 51, 63, 63, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 15, 63,255,248,224,128, 0, 0, 3, 15, 63,127,255,239,207,141, 13, 12, 12, 12, 12, 12, 12, 12, 30,127,225,128, 0, 0,255,255, 0, 0,128,225,127, 30, 12, 12, 12, 12, 12, 12, 12, 13,141,207,239,255,127, 63, 15, 3, 0, 0,128,224,248,255, 63, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 3, 7, 15, 62,124,248,240,224,192,128, 1, 3, 7, 15, 30, 28, 60, 56,120,112,112,224,224,225,231,254,248,255,255,248,254,231,225,224,224,112,112,120, 56, 60, 28, 30, 15, 7, 3, 1,128,192,224,240,248,124, 62, 15, 7, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 3, 7, 15, 14, 30, 28, 60, 56,120,112,112,112,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,112,112,112,120, 56, 60, 28, 30, 14, 15, 7, 3, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
- };
- oled_write_raw_P(kyria_logo, sizeof(kyria_logo));
-}
-
-static void render_qmk_logo(void) {
- static const char PROGMEM qmk_logo[] = {
- 0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8a,0x8b,0x8c,0x8d,0x8e,0x8f,0x90,0x91,0x92,0x93,0x94,
- 0xa0,0xa1,0xa2,0xa3,0xa4,0xa5,0xa6,0xa7,0xa8,0xa9,0xaa,0xab,0xac,0xad,0xae,0xaf,0xb0,0xb1,0xb2,0xb3,0xb4,
- 0xc0,0xc1,0xc2,0xc3,0xc4,0xc5,0xc6,0xc7,0xc8,0xc9,0xca,0xcb,0xcc,0xcd,0xce,0xcf,0xd0,0xd1,0xd2,0xd3,0xd4,0};
-
- oled_write_P(qmk_logo, false);
-}
-
-static void render_status(void) {
- // QMK Logo and version information
- render_qmk_logo();
- oled_write_P(PSTR("Kyria v1.2\n\n"), false);
-
- // Host Keyboard Layer Status
- oled_write_P(PSTR("Layer: "), false);
- switch (get_highest_layer(layer_state)) {
- case BASE:
- oled_write_P(PSTR("STENAI\n"), false);
- break;
- case _NUM:
- oled_write_P(PSTR("NUM\n"), false);
- break;
- case _NAV:
- oled_write_P(PSTR("NAV\n"), false);
- break;
- case _SYM:
- oled_write_P(PSTR("SYM\n"), false);
- break;
- case _FN:
- oled_write_P(PSTR("FN\n"), false);
- break;
- default:
- oled_write_P(PSTR("Undef\n"), false);
- }
-
- // Host Keyboard LED Status
- led_t led_state = host_keyboard_led_state();
- oled_write_P(led_state.num_lock ? PSTR("NUMLCK ") : PSTR(" "), false);
- oled_write_P(led_state.caps_lock ? PSTR("CAPLCK ") : PSTR(" "), false);
- oled_write_P(led_state.scroll_lock ? PSTR("SCRLCK ") : PSTR(" "), false);
-}
-
-bool oled_task_user(void) {
- if (!is_keyboard_left()) {
- render_status(); // Renders the current keyboard state (layer, lock, caps, scroll, etc)
- } else {
- render_kyria_logo();
- }
- return false;
-}
diff --git a/keyboards/splitkb/kyria/keymaps/zigotica/oled.h b/keyboards/splitkb/kyria/keymaps/zigotica/oled.h
deleted file mode 100644
index 2422c68f28..0000000000
--- a/keyboards/splitkb/kyria/keymaps/zigotica/oled.h
+++ /dev/null
@@ -1,18 +0,0 @@
-/* Copyright 2020 Sergi Meseguer <zigotica@gmail.com>
-
-This program is free software: you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program. If not, see <http://www.gnu.org/licenses/>.
-*/
-
-#pragma once
-#include "zigotica.h"
diff --git a/keyboards/splitkb/kyria/keymaps/zigotica/rules.mk b/keyboards/splitkb/kyria/keymaps/zigotica/rules.mk
deleted file mode 100644
index 29d98d7019..0000000000
--- a/keyboards/splitkb/kyria/keymaps/zigotica/rules.mk
+++ /dev/null
@@ -1,10 +0,0 @@
-OLED_ENABLE = yes
-ENCODER_ENABLE = no
-RGBLIGHT_ENABLE = no
-
-COMBO_ENABLE = yes
-TAP_DANCE_ENABLE = yes
-LEADER_ENABLE = no
-UNICODE_ENABLE = no
-MOUSEKEY_ENABLE = yes
-
diff --git a/keyboards/splitkb/kyria/rev3/info.json b/keyboards/splitkb/kyria/rev3/info.json
index 29bea95323..81b539c507 100644
--- a/keyboards/splitkb/kyria/rev3/info.json
+++ b/keyboards/splitkb/kyria/rev3/info.json
@@ -98,7 +98,6 @@
"matrix": [4, 6]
},
"soft_serial_pin": "D2",
- "main": "matrix_grid",
"matrix_pins": {
"right": {
"rows": ["F6", "F7", "B1", "B3"],
diff --git a/keyboards/splitkb/zima/keymaps/drashna/config.h b/keyboards/splitkb/zima/keymaps/drashna/config.h
deleted file mode 100644
index b4457ec4b8..0000000000
--- a/keyboards/splitkb/zima/keymaps/drashna/config.h
+++ /dev/null
@@ -1,37 +0,0 @@
-/* Copyright 2019 Thomas Baart
- * Copyright 2021 Christopher Courtney, aka Drashna Jael're (@drashna) <drashna@live.com>
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-#pragma once
-
-#define OLED_FONT_H "users/drashna/oled/drashna_font.h"
-#define OLED_UPDATE_INTERVAL 15
-#define OLED_DISABLE_TIMEOUT
-#define OLED_FONT_END 255
-// # define OLED_FONT_5X5
-// # define OLED_FONT_AZTECH
-// # define OLED_FONT_BMPLAIN
-# define OLED_FONT_SUPER_DIGG
-// # define OLED_LOGO_GMK_BAD
-// # define OLED_LOGO_HUE_MANITEE
-// # define OLED_LOGO_CORNE
-// # define OLED_LOGO_GOTHAM
-#define OLED_LOGO_SCIFI
-
-#define ENCODER_RESOLUTION 2
-
-#define RGBLIGHT_DEFAULT_MODE RGBLIGHT_MODE_TWINKLE+4
-#define RGBLIGHT_DEFAULT_HUE 213
diff --git a/keyboards/splitkb/zima/keymaps/drashna/keymap.c b/keyboards/splitkb/zima/keymaps/drashna/keymap.c
deleted file mode 100644
index f7f3b54fbd..0000000000
--- a/keyboards/splitkb/zima/keymaps/drashna/keymap.c
+++ /dev/null
@@ -1,145 +0,0 @@
-/* Copyright 2019 Thomas Baart
- * Copyright 2021 Christopher Courtney, aka Drashna Jael're (@drashna) <drashna@live.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 QMK_KEYBOARD_H
-
-#ifdef HAPTIC_ENABLE
-# include "haptic.h"
-extern haptic_config_t haptic_config;
-#endif
-
-// clang-format off
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [0] = LAYOUT_ortho_4x3( /* Base */
- KC_MUTE, TG(1), TG(2),
- KC_P7, KC_P8, KC_P9,
- KC_P4, KC_P5, KC_P6,
- KC_P1, KC_P2, KC_P3
- ),
- [1] = LAYOUT_ortho_4x3( /* Layer 1 */
- QK_BOOT, _______, XXXXXXX,
- AU_ON, AU_OFF, XXXXXXX,
- CK_TOGG, XXXXXXX, CK_UP,
- CK_RST, XXXXXXX, CK_DOWN
- ),
- [2] = LAYOUT_ortho_4x3( /* Layer 2*/
- RGB_TOG, RGB_MOD, _______,
- RGB_HUI, RGB_SAI, RGB_VAI,
- RGB_HUD, RGB_SAD, RGB_VAD,
- HF_TOGG, HF_FDBK, HF_CONT
- )
-};
-
-#ifdef ENCODER_MAP_ENABLE
-const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = {
- [0] = { { KC_DOWN, KC_UP } },
- [1] = { { KC_VOLD, KC_VOLU } },
- [2] = { { RGB_MOD, RGB_RMOD} },
-};
-#endif
-// clang-format on
-
-static bool is_asleep = false;
-static uint32_t oled_timer;
-
-void render_oled_logo(void) {
- // clang-format off
- static const char PROGMEM qmk_logo[] = {
- 0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8a,0x8b,0x8c,0x8d,0x8e,0x8f,0x90,0x91,0x92,0x93,0x94,
- 0xa0,0xa1,0xa2,0xa3,0xa4,0xa5,0xa6,0xa7,0xa8,0xa9,0xaa,0xab,0xac,0xad,0xae,0xaf,0xb0,0xb1,0xb2,0xb3,0xb4,
- 0xc0,0xc1,0xc2,0xc3,0xc4,0xc5,0xc6,0xc7,0xc8,0xc9,0xca,0xcb,0xcc,0xcd,0xce,0xcf,0xd0,0xd1,0xd2,0xd3,0xd4,0};
- // clang-format on
- oled_write_ln_P(qmk_logo, false);
-}
-
-void render_user_status(void) {
- static const char PROGMEM audio_status[2][3] = {{0xE0, 0xE1, 0}, {0xE2, 0xE3, 0}};
- oled_write_P(audio_status[is_audio_on()], false);
- static const char PROGMEM audio_clicky_status[2][3] = {{0xF4, 0xF5, 0}, {0xF6, 0xF7, 0}};
- oled_write_P(audio_clicky_status[is_clicky_on() && is_audio_on()], false);
- static const char PROGMEM rgb_layer_status[2][3] = {{0xEE, 0xEF, 0}, {0xF0, 0xF1, 0}};
- oled_write_P(rgb_layer_status[rgblight_is_enabled()], false);
- static const char PROGMEM nukem_good[2][3] = {{0xF8, 0xF9, 0}, {0xF6, 0xF7, 0}};
- oled_write_P(nukem_good[0], haptic_config.enable);
-}
-
-void keyboard_post_init_user(void) { oled_scroll_set_speed(0); }
-
-bool oled_task_user(void) {
- if (is_asleep) {
- oled_off();
- return false;;
- }
-
- if (timer_elapsed32(oled_timer) < 30000) {
- oled_on();
- oled_scroll_off();
- oled_write_P(PSTR("SplitKB's Zima"), false);
- char layer[2] = {0};
- uint8_t n = get_highest_layer(layer_state);
- layer[1] = '\0';
- layer[0] = '0' + n % 10;
- oled_write_P(PSTR(" L:"), false);
- oled_write_ln(layer, false);
- oled_write_ln_P(PSTR("--------------"), false);
- if (rgblight_is_enabled()) {
- oled_write_P(PSTR("HSV: "), false);
- char hsv_char[4];
- n = rgblight_get_hue();
- hsv_char[3] = '\0';
- hsv_char[2] = '0' + n % 10;
- hsv_char[1] = (n /= 10) % 10 ? '0' + (n) % 10 : (n / 10) % 10 ? '0' : ' ';
- hsv_char[0] = n / 10 ? '0' + n / 10 : ' ';
- oled_write(hsv_char, false);
- oled_write_P(PSTR(", "), false);
- n = rgblight_get_sat();
- hsv_char[3] = '\0';
- hsv_char[2] = '0' + n % 10;
- hsv_char[1] = (n /= 10) % 10 ? '0' + (n) % 10 : (n / 10) % 10 ? '0' : ' ';
- hsv_char[0] = n / 10 ? '0' + n / 10 : ' ';
- oled_write(hsv_char, false);
- oled_write_P(PSTR(", "), false);
- n = rgblight_get_val();
- hsv_char[3] = '\0';
- hsv_char[2] = '0' + n % 10;
- hsv_char[1] = (n /= 10) % 10 ? '0' + (n) % 10 : (n / 10) % 10 ? '0' : ' ';
- hsv_char[0] = n / 10 ? '0' + n / 10 : ' ';
- oled_write_ln(hsv_char, false);
- } else {
- oled_write_ln_P(PSTR("RGB LIGHT DISABLED"), false);
- }
- render_user_status();
- } else {
- if (timer_elapsed32(oled_timer) < 120000) {
- oled_on();
- render_oled_logo();
- oled_scroll_right();
- } else {
- oled_off();
- }
- }
- return false;
-}
-
-void suspend_power_down_user(void) { is_asleep = true; }
-
-void suspend_wakeup_init_user(void) { is_asleep = false; }
-
-bool process_record_user(uint16_t keycode, keyrecord_t* record) {
- oled_timer = timer_read32();
-
- return true;
-}
diff --git a/keyboards/splitkb/zima/keymaps/drashna/rules.mk b/keyboards/splitkb/zima/keymaps/drashna/rules.mk
deleted file mode 100644
index b9dc009159..0000000000
--- a/keyboards/splitkb/zima/keymaps/drashna/rules.mk
+++ /dev/null
@@ -1,3 +0,0 @@
-# is intentional. won't compile under size, otherwise.
-USER_NAME := not_drashna
-ENCODER_MAP_ENABLE = yes
diff --git a/keyboards/splitography/keymaps/default/keymap.c b/keyboards/splitography/keymaps/default/keymap.c
index 8fbd541810..9c6c7d6b26 100644
--- a/keyboards/splitography/keymaps/default/keymap.c
+++ b/keyboards/splitography/keymaps/default/keymap.c
@@ -15,7 +15,6 @@
*/
#include QMK_KEYBOARD_H
-#include "keymap_steno.h"
enum keyboard_layers {
_QWERTY = 0,
diff --git a/keyboards/splitography/keymaps/default_with_ctl_shft_alt_switched/keymap.c b/keyboards/splitography/keymaps/default_with_ctl_shft_alt_switched/keymap.c
index 83874f7760..787f448ffb 100644
--- a/keyboards/splitography/keymaps/default_with_ctl_shft_alt_switched/keymap.c
+++ b/keyboards/splitography/keymaps/default_with_ctl_shft_alt_switched/keymap.c
@@ -15,7 +15,6 @@
*/
#include QMK_KEYBOARD_H
-#include "keymap_steno.h"
enum keyboard_layers {
_QWERTY = 0,
diff --git a/keyboards/splitography/keymaps/dvorak/keymap.c b/keyboards/splitography/keymaps/dvorak/keymap.c
index 1d9ff41dd1..992cfd0abb 100644
--- a/keyboards/splitography/keymaps/dvorak/keymap.c
+++ b/keyboards/splitography/keymaps/dvorak/keymap.c
@@ -15,7 +15,6 @@
*/
#include QMK_KEYBOARD_H
-#include "keymap_steno.h"
enum keyboard_layers {
_DVORAK = 0,
diff --git a/keyboards/splitography/keymaps/jeandeaual/keymap.c b/keyboards/splitography/keymaps/jeandeaual/keymap.c
index 9b5c3d554d..6e0f818688 100644
--- a/keyboards/splitography/keymaps/jeandeaual/keymap.c
+++ b/keyboards/splitography/keymaps/jeandeaual/keymap.c
@@ -15,7 +15,6 @@
*/
#include QMK_KEYBOARD_H
-#include "keymap_steno.h"
enum keyboard_layers {
_GEMINI = 0,
diff --git a/keyboards/splitography/keymaps/multi/keymap.c b/keyboards/splitography/keymaps/multi/keymap.c
index f1a083e03f..42ab737698 100644
--- a/keyboards/splitography/keymaps/multi/keymap.c
+++ b/keyboards/splitography/keymaps/multi/keymap.c
@@ -15,7 +15,6 @@
*/
#include QMK_KEYBOARD_H
-#include "keymap_steno.h"
enum keyboard_layers {
_QWERTY = 0,
diff --git a/keyboards/sporewoh/banime40/config.h b/keyboards/sporewoh/banime40/config.h
deleted file mode 100644
index 75882003aa..0000000000
--- a/keyboards/sporewoh/banime40/config.h
+++ /dev/null
@@ -1,20 +0,0 @@
-/*
-Copyright 2022 sporewoh
-
-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 DYNAMIC_KEYMAP_LAYER_COUNT 10
diff --git a/keyboards/sporewoh/banime40/info.json b/keyboards/sporewoh/banime40/info.json
index 3390b8a334..857daf8ec7 100644
--- a/keyboards/sporewoh/banime40/info.json
+++ b/keyboards/sporewoh/banime40/info.json
@@ -13,6 +13,9 @@
"rows": ["E6", "D7", "C6", "D4"]
},
"diode_direction": "COL2ROW",
+ "dynamic_keymap": {
+ "layer_count": 10
+ },
"processor": "atmega32u4",
"bootloader": "caterina",
"community_layouts": ["ortho_4x10"],
diff --git a/keyboards/stenokeyboards/the_uni/keymaps/default/keymap.c b/keyboards/stenokeyboards/the_uni/keymaps/default/keymap.c
index 74aa207bd5..2240798328 100644
--- a/keyboards/stenokeyboards/the_uni/keymaps/default/keymap.c
+++ b/keyboards/stenokeyboards/the_uni/keymaps/default/keymap.c
@@ -16,7 +16,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include QMK_KEYBOARD_H
-#include "keymap_steno.h"
enum uni_layers {
_PLOVER,
diff --git a/keyboards/stenokeyboards/the_uni/keymaps/utility_belt/keymap.c b/keyboards/stenokeyboards/the_uni/keymaps/utility_belt/keymap.c
index 47a89818f6..0962521903 100644
--- a/keyboards/stenokeyboards/the_uni/keymaps/utility_belt/keymap.c
+++ b/keyboards/stenokeyboards/the_uni/keymaps/utility_belt/keymap.c
@@ -16,7 +16,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include QMK_KEYBOARD_H
-#include "keymap_steno.h"
enum uni_layers {
_PLOVER,
diff --git a/keyboards/stront/config.h b/keyboards/stront/config.h
index 4c88e411ac..13c76a80e2 100644
--- a/keyboards/stront/config.h
+++ b/keyboards/stront/config.h
@@ -13,8 +13,6 @@
/* any side can be master by default, enable split sync to support it */
#define EE_HANDS
-#define SPLIT_LED_STATE_ENABLE
-#define SPLIT_MODS_ENABLE
#define SPLIT_POINTING_ENABLE
/* SPI config for display/touchpad */
diff --git a/keyboards/stront/info.json b/keyboards/stront/info.json
index c3435b1f5d..40be364688 100644
--- a/keyboards/stront/info.json
+++ b/keyboards/stront/info.json
@@ -61,7 +61,13 @@
"rows": ["GP28", "GP27", "GP26", "GP15"]
},
"split": {
- "enabled": true
+ "enabled": true,
+ "transport": {
+ "sync": {
+ "indicators": true,
+ "modifiers": true
+ }
+ }
},
"encoder": {
"rotary": [
@@ -86,6 +92,7 @@
"pin": "GP14"
},
"ws2812": {
+ "driver": "vendor",
"pin": "GP29"
},
"rgblight": {
diff --git a/keyboards/stront/rules.mk b/keyboards/stront/rules.mk
index 940a592d11..c6cdeb5bfc 100644
--- a/keyboards/stront/rules.mk
+++ b/keyboards/stront/rules.mk
@@ -1,5 +1,4 @@
SERIAL_DRIVER = vendor
-WS2812_DRIVER = vendor
POINTING_DEVICE_ENABLE = yes
POINTING_DEVICE_DRIVER = cirque_pinnacle_spi
diff --git a/keyboards/studiokestra/line_tkl/config.h b/keyboards/studiokestra/line_friends_tkl/config.h
index c37d8a5ad2..c37d8a5ad2 100644
--- a/keyboards/studiokestra/line_tkl/config.h
+++ b/keyboards/studiokestra/line_friends_tkl/config.h
diff --git a/keyboards/studiokestra/line_friends_tkl/info.json b/keyboards/studiokestra/line_friends_tkl/info.json
new file mode 100644
index 0000000000..9c2db93a92
--- /dev/null
+++ b/keyboards/studiokestra/line_friends_tkl/info.json
@@ -0,0 +1,216 @@
+{
+ "manufacturer": "Studio Kestra",
+ "keyboard_name": "LINE FRIENDS TKL",
+ "maintainer": "studiokestra",
+ "bootloader": "atmel-dfu",
+ "diode_direction": "COL2ROW",
+ "features": {
+ "bootmagic": true,
+ "command": false,
+ "console": false,
+ "extrakey": true,
+ "mousekey": true,
+ "nkro": true
+ },
+ "indicators": {
+ "caps_lock": "B6",
+ "on_state": 1,
+ "scroll_lock": "D2"
+ },
+ "matrix_pins": {
+ "cols": ["F0", "F1", "F4", "F5", "F6", "F7", "B5", "D5", "D3"],
+ "rows": ["D0", "D1", "B0", "B7", "B3", "E6", "C7", "C6", "B4", "D7", "D6", "D4"]
+ },
+ "processor": "atmega32u4",
+ "url": "https://minokeys.com/collections/line-friends",
+ "usb": {
+ "device_version": "1.0.0",
+ "pid": "0x8704",
+ "vid": "0x7C10"
+ },
+ "community_layouts": ["tkl_ansi_tsangan", "tkl_ansi_tsangan_split_bs_rshift"],
+ "layouts": {
+ "LAYOUT_tkl_ansi_tsangan": {
+ "layout": [
+ {"matrix": [0, 0], "x": 0, "y": 0},
+ {"matrix": [0, 1], "x": 2, "y": 0},
+ {"matrix": [0, 2], "x": 3, "y": 0},
+ {"matrix": [1, 2], "x": 4, "y": 0},
+ {"matrix": [0, 3], "x": 5, "y": 0},
+ {"matrix": [1, 3], "x": 6.5, "y": 0},
+ {"matrix": [0, 4], "x": 7.5, "y": 0},
+ {"matrix": [1, 4], "x": 8.5, "y": 0},
+ {"matrix": [0, 5], "x": 9.5, "y": 0},
+ {"matrix": [1, 5], "x": 11, "y": 0},
+ {"matrix": [0, 6], "x": 12, "y": 0},
+ {"matrix": [1, 6], "x": 13, "y": 0},
+ {"matrix": [0, 7], "x": 14, "y": 0},
+ {"matrix": [1, 7], "x": 15.25, "y": 0},
+ {"matrix": [0, 8], "x": 16.25, "y": 0},
+ {"matrix": [1, 8], "x": 17.25, "y": 0},
+ {"matrix": [2, 0], "x": 0, "y": 1.25},
+ {"matrix": [3, 0], "x": 1, "y": 1.25},
+ {"matrix": [2, 1], "x": 2, "y": 1.25},
+ {"matrix": [3, 1], "x": 3, "y": 1.25},
+ {"matrix": [2, 2], "x": 4, "y": 1.25},
+ {"matrix": [3, 2], "x": 5, "y": 1.25},
+ {"matrix": [2, 3], "x": 6, "y": 1.25},
+ {"matrix": [3, 3], "x": 7, "y": 1.25},
+ {"matrix": [2, 4], "x": 8, "y": 1.25},
+ {"matrix": [3, 4], "x": 9, "y": 1.25},
+ {"matrix": [2, 5], "x": 10, "y": 1.25},
+ {"matrix": [3, 5], "x": 11, "y": 1.25},
+ {"matrix": [2, 6], "x": 12, "y": 1.25},
+ {"matrix": [3, 6], "x": 13, "y": 1.25, "w": 2},
+ {"matrix": [3, 7], "x": 15.25, "y": 1.25},
+ {"matrix": [2, 8], "x": 16.25, "y": 1.25},
+ {"matrix": [3, 8], "x": 17.25, "y": 1.25},
+ {"matrix": [4, 0], "x": 0, "y": 2.25, "w": 1.5},
+ {"matrix": [5, 0], "x": 1.5, "y": 2.25},
+ {"matrix": [4, 1], "x": 2.5, "y": 2.25},
+ {"matrix": [5, 1], "x": 3.5, "y": 2.25},
+ {"matrix": [4, 2], "x": 4.5, "y": 2.25},
+ {"matrix": [5, 2], "x": 5.5, "y": 2.25},
+ {"matrix": [4, 3], "x": 6.5, "y": 2.25},
+ {"matrix": [5, 3], "x": 7.5, "y": 2.25},
+ {"matrix": [4, 4], "x": 8.5, "y": 2.25},
+ {"matrix": [5, 4], "x": 9.5, "y": 2.25},
+ {"matrix": [4, 5], "x": 10.5, "y": 2.25},
+ {"matrix": [5, 5], "x": 11.5, "y": 2.25},
+ {"matrix": [4, 6], "x": 12.5, "y": 2.25},
+ {"matrix": [4, 7], "x": 13.5, "y": 2.25, "w": 1.5},
+ {"matrix": [5, 7], "x": 15.25, "y": 2.25},
+ {"matrix": [4, 8], "x": 16.25, "y": 2.25},
+ {"matrix": [5, 8], "x": 17.25, "y": 2.25},
+ {"matrix": [6, 0], "x": 0, "y": 3.25, "w": 1.75},
+ {"matrix": [7, 0], "x": 1.75, "y": 3.25},
+ {"matrix": [6, 1], "x": 2.75, "y": 3.25},
+ {"matrix": [7, 1], "x": 3.75, "y": 3.25},
+ {"matrix": [6, 2], "x": 4.75, "y": 3.25},
+ {"matrix": [7, 2], "x": 5.75, "y": 3.25},
+ {"matrix": [6, 3], "x": 6.75, "y": 3.25},
+ {"matrix": [7, 3], "x": 7.75, "y": 3.25},
+ {"matrix": [6, 4], "x": 8.75, "y": 3.25},
+ {"matrix": [7, 4], "x": 9.75, "y": 3.25},
+ {"matrix": [6, 5], "x": 10.75, "y": 3.25},
+ {"matrix": [7, 5], "x": 11.75, "y": 3.25},
+ {"matrix": [6, 6], "x": 12.75, "y": 3.25, "w": 2.25},
+ {"matrix": [8, 0], "x": 0, "y": 4.25, "w": 2.25},
+ {"matrix": [8, 1], "x": 2.25, "y": 4.25},
+ {"matrix": [9, 1], "x": 3.25, "y": 4.25},
+ {"matrix": [8, 2], "x": 4.25, "y": 4.25},
+ {"matrix": [9, 2], "x": 5.25, "y": 4.25},
+ {"matrix": [8, 3], "x": 6.25, "y": 4.25},
+ {"matrix": [9, 3], "x": 7.25, "y": 4.25},
+ {"matrix": [8, 4], "x": 8.25, "y": 4.25},
+ {"matrix": [9, 4], "x": 9.25, "y": 4.25},
+ {"matrix": [8, 5], "x": 10.25, "y": 4.25},
+ {"matrix": [9, 5], "x": 11.25, "y": 4.25},
+ {"matrix": [8, 6], "x": 12.25, "y": 4.25, "w": 2.75},
+ {"matrix": [9, 8], "x": 16.25, "y": 4.25},
+ {"matrix": [10, 0], "x": 0, "y": 5.25, "w": 1.5},
+ {"matrix": [11, 0], "x": 1.5, "y": 5.25},
+ {"matrix": [10, 1], "x": 2.5, "y": 5.25, "w": 1.5},
+ {"matrix": [10, 3], "x": 4, "y": 5.25, "w": 7},
+ {"matrix": [11, 5], "x": 11, "y": 5.25, "w": 1.5},
+ {"matrix": [10, 6], "x": 12.5, "y": 5.25},
+ {"matrix": [10, 7], "x": 13.5, "y": 5.25, "w": 1.5},
+ {"matrix": [11, 7], "x": 15.25, "y": 5.25},
+ {"matrix": [10, 8], "x": 16.25, "y": 5.25},
+ {"matrix": [11, 8], "x": 17.25, "y": 5.25}
+ ]
+ },
+ "LAYOUT_tkl_ansi_tsangan_split_bs_rshift": {
+ "layout": [
+ {"matrix": [0, 0], "x": 0, "y": 0},
+ {"matrix": [0, 1], "x": 2, "y": 0},
+ {"matrix": [0, 2], "x": 3, "y": 0},
+ {"matrix": [1, 2], "x": 4, "y": 0},
+ {"matrix": [0, 3], "x": 5, "y": 0},
+ {"matrix": [1, 3], "x": 6.5, "y": 0},
+ {"matrix": [0, 4], "x": 7.5, "y": 0},
+ {"matrix": [1, 4], "x": 8.5, "y": 0},
+ {"matrix": [0, 5], "x": 9.5, "y": 0},
+ {"matrix": [1, 5], "x": 11, "y": 0},
+ {"matrix": [0, 6], "x": 12, "y": 0},
+ {"matrix": [1, 6], "x": 13, "y": 0},
+ {"matrix": [0, 7], "x": 14, "y": 0},
+ {"matrix": [1, 7], "x": 15.25, "y": 0},
+ {"matrix": [0, 8], "x": 16.25, "y": 0},
+ {"matrix": [1, 8], "x": 17.25, "y": 0},
+ {"matrix": [2, 0], "x": 0, "y": 1.25},
+ {"matrix": [3, 0], "x": 1, "y": 1.25},
+ {"matrix": [2, 1], "x": 2, "y": 1.25},
+ {"matrix": [3, 1], "x": 3, "y": 1.25},
+ {"matrix": [2, 2], "x": 4, "y": 1.25},
+ {"matrix": [3, 2], "x": 5, "y": 1.25},
+ {"matrix": [2, 3], "x": 6, "y": 1.25},
+ {"matrix": [3, 3], "x": 7, "y": 1.25},
+ {"matrix": [2, 4], "x": 8, "y": 1.25},
+ {"matrix": [3, 4], "x": 9, "y": 1.25},
+ {"matrix": [2, 5], "x": 10, "y": 1.25},
+ {"matrix": [3, 5], "x": 11, "y": 1.25},
+ {"matrix": [2, 6], "x": 12, "y": 1.25},
+ {"matrix": [3, 6], "x": 13, "y": 1.25},
+ {"matrix": [2, 7], "x": 14, "y": 1.25},
+ {"matrix": [3, 7], "x": 15.25, "y": 1.25},
+ {"matrix": [2, 8], "x": 16.25, "y": 1.25},
+ {"matrix": [3, 8], "x": 17.25, "y": 1.25},
+ {"matrix": [4, 0], "x": 0, "y": 2.25, "w": 1.5},
+ {"matrix": [5, 0], "x": 1.5, "y": 2.25},
+ {"matrix": [4, 1], "x": 2.5, "y": 2.25},
+ {"matrix": [5, 1], "x": 3.5, "y": 2.25},
+ {"matrix": [4, 2], "x": 4.5, "y": 2.25},
+ {"matrix": [5, 2], "x": 5.5, "y": 2.25},
+ {"matrix": [4, 3], "x": 6.5, "y": 2.25},
+ {"matrix": [5, 3], "x": 7.5, "y": 2.25},
+ {"matrix": [4, 4], "x": 8.5, "y": 2.25},
+ {"matrix": [5, 4], "x": 9.5, "y": 2.25},
+ {"matrix": [4, 5], "x": 10.5, "y": 2.25},
+ {"matrix": [5, 5], "x": 11.5, "y": 2.25},
+ {"matrix": [4, 6], "x": 12.5, "y": 2.25},
+ {"matrix": [4, 7], "x": 13.5, "y": 2.25, "w": 1.5},
+ {"matrix": [5, 7], "x": 15.25, "y": 2.25},
+ {"matrix": [4, 8], "x": 16.25, "y": 2.25},
+ {"matrix": [5, 8], "x": 17.25, "y": 2.25},
+ {"matrix": [6, 0], "x": 0, "y": 3.25, "w": 1.75},
+ {"matrix": [7, 0], "x": 1.75, "y": 3.25},
+ {"matrix": [6, 1], "x": 2.75, "y": 3.25},
+ {"matrix": [7, 1], "x": 3.75, "y": 3.25},
+ {"matrix": [6, 2], "x": 4.75, "y": 3.25},
+ {"matrix": [7, 2], "x": 5.75, "y": 3.25},
+ {"matrix": [6, 3], "x": 6.75, "y": 3.25},
+ {"matrix": [7, 3], "x": 7.75, "y": 3.25},
+ {"matrix": [6, 4], "x": 8.75, "y": 3.25},
+ {"matrix": [7, 4], "x": 9.75, "y": 3.25},
+ {"matrix": [6, 5], "x": 10.75, "y": 3.25},
+ {"matrix": [7, 5], "x": 11.75, "y": 3.25},
+ {"matrix": [6, 6], "x": 12.75, "y": 3.25, "w": 2.25},
+ {"matrix": [8, 0], "x": 0, "y": 4.25, "w": 2.25},
+ {"matrix": [8, 1], "x": 2.25, "y": 4.25},
+ {"matrix": [9, 1], "x": 3.25, "y": 4.25},
+ {"matrix": [8, 2], "x": 4.25, "y": 4.25},
+ {"matrix": [9, 2], "x": 5.25, "y": 4.25},
+ {"matrix": [8, 3], "x": 6.25, "y": 4.25},
+ {"matrix": [9, 3], "x": 7.25, "y": 4.25},
+ {"matrix": [8, 4], "x": 8.25, "y": 4.25},
+ {"matrix": [9, 4], "x": 9.25, "y": 4.25},
+ {"matrix": [8, 5], "x": 10.25, "y": 4.25},
+ {"matrix": [9, 5], "x": 11.25, "y": 4.25},
+ {"matrix": [8, 6], "x": 12.25, "y": 4.25, "w": 1.75},
+ {"matrix": [9, 6], "x": 14, "y": 4.25},
+ {"matrix": [9, 8], "x": 16.25, "y": 4.25},
+ {"matrix": [10, 0], "x": 0, "y": 5.25, "w": 1.5},
+ {"matrix": [11, 0], "x": 1.5, "y": 5.25},
+ {"matrix": [10, 1], "x": 2.5, "y": 5.25, "w": 1.5},
+ {"matrix": [10, 3], "x": 4, "y": 5.25, "w": 7},
+ {"matrix": [11, 5], "x": 11, "y": 5.25, "w": 1.5},
+ {"matrix": [10, 6], "x": 12.5, "y": 5.25},
+ {"matrix": [10, 7], "x": 13.5, "y": 5.25, "w": 1.5},
+ {"matrix": [11, 7], "x": 15.25, "y": 5.25},
+ {"matrix": [10, 8], "x": 16.25, "y": 5.25},
+ {"matrix": [11, 8], "x": 17.25, "y": 5.25}
+ ]
+ }
+ }
+}
diff --git a/keyboards/studiokestra/line_tkl/keymaps/default/keymap.c b/keyboards/studiokestra/line_friends_tkl/keymaps/default/keymap.c
index a8dc54ee87..a8dc54ee87 100644
--- a/keyboards/studiokestra/line_tkl/keymaps/default/keymap.c
+++ b/keyboards/studiokestra/line_friends_tkl/keymaps/default/keymap.c
diff --git a/keyboards/studiokestra/line_tkl/keymaps/split_bs_rshift/keymap.c b/keyboards/studiokestra/line_friends_tkl/keymaps/split_bs_rshift/keymap.c
index 595ed5d03c..595ed5d03c 100644
--- a/keyboards/studiokestra/line_tkl/keymaps/split_bs_rshift/keymap.c
+++ b/keyboards/studiokestra/line_friends_tkl/keymaps/split_bs_rshift/keymap.c
diff --git a/keyboards/studiokestra/line_tkl/keymaps/via/keymap.c b/keyboards/studiokestra/line_friends_tkl/keymaps/via/keymap.c
index 595ed5d03c..595ed5d03c 100644
--- a/keyboards/studiokestra/line_tkl/keymaps/via/keymap.c
+++ b/keyboards/studiokestra/line_friends_tkl/keymaps/via/keymap.c
diff --git a/keyboards/soda/mango/keymaps/via/rules.mk b/keyboards/studiokestra/line_friends_tkl/keymaps/via/rules.mk
index 1e5b99807c..1e5b99807c 100644
--- a/keyboards/soda/mango/keymaps/via/rules.mk
+++ b/keyboards/studiokestra/line_friends_tkl/keymaps/via/rules.mk
diff --git a/keyboards/studiokestra/line_friends_tkl/readme.md b/keyboards/studiokestra/line_friends_tkl/readme.md
new file mode 100644
index 0000000000..48840ab9ba
--- /dev/null
+++ b/keyboards/studiokestra/line_friends_tkl/readme.md
@@ -0,0 +1,27 @@
+# studiokestra/line_friends_tkl
+
+![studiokestra/line_friends_tkl](https://i.imgur.com/3MmRQkh.png)
+
+PCB developed for Mino Keys in collaboration with Line Friends (C).
+
+* Keyboard Maintainer: [Studio Kestra](https://github.com/studiokestra/)
+* Hardware Supported: LINE FRIENDS TKL
+* Hardware Availability: https://minokeys.com/collections/line-friends
+
+Make example for this keyboard (after setting up your build environment):
+
+ make studiokestra/line_friends_tkl:default
+
+Flashing example for this keyboard:
+
+ make studiokestra/line_friends_tkl: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 (usually the top left key or Escape) and plug in the keyboard
+* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead
+* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available
diff --git a/keyboards/studiokestra/line_friends_tkl/rules.mk b/keyboards/studiokestra/line_friends_tkl/rules.mk
new file mode 100644
index 0000000000..6e7633bfe0
--- /dev/null
+++ b/keyboards/studiokestra/line_friends_tkl/rules.mk
@@ -0,0 +1 @@
+# This file intentionally left blank
diff --git a/keyboards/studiokestra/line_tkl/info.json b/keyboards/studiokestra/line_tkl/info.json
deleted file mode 100644
index ba6601a330..0000000000
--- a/keyboards/studiokestra/line_tkl/info.json
+++ /dev/null
@@ -1,216 +0,0 @@
-{
- "manufacturer": "Studio Kestra",
- "keyboard_name": "Line TKL",
- "maintainer": "studiokestra",
- "bootloader": "atmel-dfu",
- "diode_direction": "COL2ROW",
- "features": {
- "bootmagic": true,
- "command": false,
- "console": false,
- "extrakey": true,
- "mousekey": true,
- "nkro": true
- },
- "indicators": {
- "caps_lock": "B6",
- "on_state": 1,
- "scroll_lock": "D2"
- },
- "matrix_pins": {
- "cols": ["F0", "F1", "F4", "F5", "F6", "F7", "B5", "D5", "D3"],
- "rows": ["D0", "D1", "B0", "B7", "B3", "E6", "C7", "C6", "B4", "D7", "D6", "D4"]
- },
- "processor": "atmega32u4",
- "url": "https://minokeys.com/collections/line-friends",
- "usb": {
- "device_version": "1.0.0",
- "pid": "0x8704",
- "vid": "0x7C10"
- },
- "community_layouts": ["tkl_ansi_tsangan", "tkl_ansi_tsangan_split_bs_rshift"],
- "layouts": {
- "LAYOUT_tkl_ansi_tsangan": {
- "layout": [
- {"matrix": [0, 0], "x": 0, "y": 0},
- {"matrix": [0, 1], "x": 2, "y": 0},
- {"matrix": [0, 2], "x": 3, "y": 0},
- {"matrix": [1, 2], "x": 4, "y": 0},
- {"matrix": [0, 3], "x": 5, "y": 0},
- {"matrix": [1, 3], "x": 6.5, "y": 0},
- {"matrix": [0, 4], "x": 7.5, "y": 0},
- {"matrix": [1, 4], "x": 8.5, "y": 0},
- {"matrix": [0, 5], "x": 9.5, "y": 0},
- {"matrix": [1, 5], "x": 11, "y": 0},
- {"matrix": [0, 6], "x": 12, "y": 0},
- {"matrix": [1, 6], "x": 13, "y": 0},
- {"matrix": [0, 7], "x": 14, "y": 0},
- {"matrix": [1, 7], "x": 15.25, "y": 0},
- {"matrix": [0, 8], "x": 16.25, "y": 0},
- {"matrix": [1, 8], "x": 17.25, "y": 0},
- {"matrix": [2, 0], "x": 0, "y": 1.25},
- {"matrix": [3, 0], "x": 1, "y": 1.25},
- {"matrix": [2, 1], "x": 2, "y": 1.25},
- {"matrix": [3, 1], "x": 3, "y": 1.25},
- {"matrix": [2, 2], "x": 4, "y": 1.25},
- {"matrix": [3, 2], "x": 5, "y": 1.25},
- {"matrix": [2, 3], "x": 6, "y": 1.25},
- {"matrix": [3, 3], "x": 7, "y": 1.25},
- {"matrix": [2, 4], "x": 8, "y": 1.25},
- {"matrix": [3, 4], "x": 9, "y": 1.25},
- {"matrix": [2, 5], "x": 10, "y": 1.25},
- {"matrix": [3, 5], "x": 11, "y": 1.25},
- {"matrix": [2, 6], "x": 12, "y": 1.25},
- {"matrix": [3, 6], "x": 13, "y": 1.25, "w": 2},
- {"matrix": [3, 7], "x": 15.25, "y": 1.25},
- {"matrix": [2, 8], "x": 16.25, "y": 1.25},
- {"matrix": [3, 8], "x": 17.25, "y": 1.25},
- {"matrix": [4, 0], "x": 0, "y": 2.25, "w": 1.5},
- {"matrix": [5, 0], "x": 1.5, "y": 2.25},
- {"matrix": [4, 1], "x": 2.5, "y": 2.25},
- {"matrix": [5, 1], "x": 3.5, "y": 2.25},
- {"matrix": [4, 2], "x": 4.5, "y": 2.25},
- {"matrix": [5, 2], "x": 5.5, "y": 2.25},
- {"matrix": [4, 3], "x": 6.5, "y": 2.25},
- {"matrix": [5, 3], "x": 7.5, "y": 2.25},
- {"matrix": [4, 4], "x": 8.5, "y": 2.25},
- {"matrix": [5, 4], "x": 9.5, "y": 2.25},
- {"matrix": [4, 5], "x": 10.5, "y": 2.25},
- {"matrix": [5, 5], "x": 11.5, "y": 2.25},
- {"matrix": [4, 6], "x": 12.5, "y": 2.25},
- {"matrix": [4, 7], "x": 13.5, "y": 2.25, "w": 1.5},
- {"matrix": [5, 7], "x": 15.25, "y": 2.25},
- {"matrix": [4, 8], "x": 16.25, "y": 2.25},
- {"matrix": [5, 8], "x": 17.25, "y": 2.25},
- {"matrix": [6, 0], "x": 0, "y": 3.25, "w": 1.75},
- {"matrix": [7, 0], "x": 1.75, "y": 3.25},
- {"matrix": [6, 1], "x": 2.75, "y": 3.25},
- {"matrix": [7, 1], "x": 3.75, "y": 3.25},
- {"matrix": [6, 2], "x": 4.75, "y": 3.25},
- {"matrix": [7, 2], "x": 5.75, "y": 3.25},
- {"matrix": [6, 3], "x": 6.75, "y": 3.25},
- {"matrix": [7, 3], "x": 7.75, "y": 3.25},
- {"matrix": [6, 4], "x": 8.75, "y": 3.25},
- {"matrix": [7, 4], "x": 9.75, "y": 3.25},
- {"matrix": [6, 5], "x": 10.75, "y": 3.25},
- {"matrix": [7, 5], "x": 11.75, "y": 3.25},
- {"matrix": [6, 6], "x": 12.75, "y": 3.25, "w": 2.25},
- {"matrix": [8, 0], "x": 0, "y": 4.25, "w": 2.25},
- {"matrix": [8, 1], "x": 2.25, "y": 4.25},
- {"matrix": [9, 1], "x": 3.25, "y": 4.25},
- {"matrix": [8, 2], "x": 4.25, "y": 4.25},
- {"matrix": [9, 2], "x": 5.25, "y": 4.25},
- {"matrix": [8, 3], "x": 6.25, "y": 4.25},
- {"matrix": [9, 3], "x": 7.25, "y": 4.25},
- {"matrix": [8, 4], "x": 8.25, "y": 4.25},
- {"matrix": [9, 4], "x": 9.25, "y": 4.25},
- {"matrix": [8, 5], "x": 10.25, "y": 4.25},
- {"matrix": [9, 5], "x": 11.25, "y": 4.25},
- {"matrix": [8, 6], "x": 12.25, "y": 4.25, "w": 2.75},
- {"matrix": [9, 8], "x": 16.25, "y": 4.25},
- {"matrix": [10, 0], "x": 0, "y": 5.25, "w": 1.5},
- {"matrix": [11, 0], "x": 1.5, "y": 5.25},
- {"matrix": [10, 1], "x": 2.5, "y": 5.25, "w": 1.5},
- {"matrix": [10, 3], "x": 4, "y": 5.25, "w": 7},
- {"matrix": [11, 5], "x": 11, "y": 5.25, "w": 1.5},
- {"matrix": [10, 6], "x": 12.5, "y": 5.25},
- {"matrix": [10, 7], "x": 13.5, "y": 5.25, "w": 1.5},
- {"matrix": [11, 7], "x": 15.25, "y": 5.25},
- {"matrix": [10, 8], "x": 16.25, "y": 5.25},
- {"matrix": [11, 8], "x": 17.25, "y": 5.25}
- ]
- },
- "LAYOUT_tkl_ansi_tsangan_split_bs_rshift": {
- "layout": [
- {"matrix": [0, 0], "x": 0, "y": 0},
- {"matrix": [0, 1], "x": 2, "y": 0},
- {"matrix": [0, 2], "x": 3, "y": 0},
- {"matrix": [1, 2], "x": 4, "y": 0},
- {"matrix": [0, 3], "x": 5, "y": 0},
- {"matrix": [1, 3], "x": 6.5, "y": 0},
- {"matrix": [0, 4], "x": 7.5, "y": 0},
- {"matrix": [1, 4], "x": 8.5, "y": 0},
- {"matrix": [0, 5], "x": 9.5, "y": 0},
- {"matrix": [1, 5], "x": 11, "y": 0},
- {"matrix": [0, 6], "x": 12, "y": 0},
- {"matrix": [1, 6], "x": 13, "y": 0},
- {"matrix": [0, 7], "x": 14, "y": 0},
- {"matrix": [1, 7], "x": 15.25, "y": 0},
- {"matrix": [0, 8], "x": 16.25, "y": 0},
- {"matrix": [1, 8], "x": 17.25, "y": 0},
- {"matrix": [2, 0], "x": 0, "y": 1.25},
- {"matrix": [3, 0], "x": 1, "y": 1.25},
- {"matrix": [2, 1], "x": 2, "y": 1.25},
- {"matrix": [3, 1], "x": 3, "y": 1.25},
- {"matrix": [2, 2], "x": 4, "y": 1.25},
- {"matrix": [3, 2], "x": 5, "y": 1.25},
- {"matrix": [2, 3], "x": 6, "y": 1.25},
- {"matrix": [3, 3], "x": 7, "y": 1.25},
- {"matrix": [2, 4], "x": 8, "y": 1.25},
- {"matrix": [3, 4], "x": 9, "y": 1.25},
- {"matrix": [2, 5], "x": 10, "y": 1.25},
- {"matrix": [3, 5], "x": 11, "y": 1.25},
- {"matrix": [2, 6], "x": 12, "y": 1.25},
- {"matrix": [3, 6], "x": 13, "y": 1.25},
- {"matrix": [2, 7], "x": 14, "y": 1.25},
- {"matrix": [3, 7], "x": 15.25, "y": 1.25},
- {"matrix": [2, 8], "x": 16.25, "y": 1.25},
- {"matrix": [3, 8], "x": 17.25, "y": 1.25},
- {"matrix": [4, 0], "x": 0, "y": 2.25, "w": 1.5},
- {"matrix": [5, 0], "x": 1.5, "y": 2.25},
- {"matrix": [4, 1], "x": 2.5, "y": 2.25},
- {"matrix": [5, 1], "x": 3.5, "y": 2.25},
- {"matrix": [4, 2], "x": 4.5, "y": 2.25},
- {"matrix": [5, 2], "x": 5.5, "y": 2.25},
- {"matrix": [4, 3], "x": 6.5, "y": 2.25},
- {"matrix": [5, 3], "x": 7.5, "y": 2.25},
- {"matrix": [4, 4], "x": 8.5, "y": 2.25},
- {"matrix": [5, 4], "x": 9.5, "y": 2.25},
- {"matrix": [4, 5], "x": 10.5, "y": 2.25},
- {"matrix": [5, 5], "x": 11.5, "y": 2.25},
- {"matrix": [4, 6], "x": 12.5, "y": 2.25},
- {"matrix": [4, 7], "x": 13.5, "y": 2.25, "w": 1.5},
- {"matrix": [5, 7], "x": 15.25, "y": 2.25},
- {"matrix": [4, 8], "x": 16.25, "y": 2.25},
- {"matrix": [5, 8], "x": 17.25, "y": 2.25},
- {"matrix": [6, 0], "x": 0, "y": 3.25, "w": 1.75},
- {"matrix": [7, 0], "x": 1.75, "y": 3.25},
- {"matrix": [6, 1], "x": 2.75, "y": 3.25},
- {"matrix": [7, 1], "x": 3.75, "y": 3.25},
- {"matrix": [6, 2], "x": 4.75, "y": 3.25},
- {"matrix": [7, 2], "x": 5.75, "y": 3.25},
- {"matrix": [6, 3], "x": 6.75, "y": 3.25},
- {"matrix": [7, 3], "x": 7.75, "y": 3.25},
- {"matrix": [6, 4], "x": 8.75, "y": 3.25},
- {"matrix": [7, 4], "x": 9.75, "y": 3.25},
- {"matrix": [6, 5], "x": 10.75, "y": 3.25},
- {"matrix": [7, 5], "x": 11.75, "y": 3.25},
- {"matrix": [6, 6], "x": 12.75, "y": 3.25, "w": 2.25},
- {"matrix": [8, 0], "x": 0, "y": 4.25, "w": 2.25},
- {"matrix": [8, 1], "x": 2.25, "y": 4.25},
- {"matrix": [9, 1], "x": 3.25, "y": 4.25},
- {"matrix": [8, 2], "x": 4.25, "y": 4.25},
- {"matrix": [9, 2], "x": 5.25, "y": 4.25},
- {"matrix": [8, 3], "x": 6.25, "y": 4.25},
- {"matrix": [9, 3], "x": 7.25, "y": 4.25},
- {"matrix": [8, 4], "x": 8.25, "y": 4.25},
- {"matrix": [9, 4], "x": 9.25, "y": 4.25},
- {"matrix": [8, 5], "x": 10.25, "y": 4.25},
- {"matrix": [9, 5], "x": 11.25, "y": 4.25},
- {"matrix": [8, 6], "x": 12.25, "y": 4.25, "w": 1.75},
- {"matrix": [9, 6], "x": 14, "y": 4.25},
- {"matrix": [9, 8], "x": 16.25, "y": 4.25},
- {"matrix": [10, 0], "x": 0, "y": 5.25, "w": 1.5},
- {"matrix": [11, 0], "x": 1.5, "y": 5.25},
- {"matrix": [10, 1], "x": 2.5, "y": 5.25, "w": 1.5},
- {"matrix": [10, 3], "x": 4, "y": 5.25, "w": 7},
- {"matrix": [11, 5], "x": 11, "y": 5.25, "w": 1.5},
- {"matrix": [10, 6], "x": 12.5, "y": 5.25},
- {"matrix": [10, 7], "x": 13.5, "y": 5.25, "w": 1.5},
- {"matrix": [11, 7], "x": 15.25, "y": 5.25},
- {"matrix": [10, 8], "x": 16.25, "y": 5.25},
- {"matrix": [11, 8], "x": 17.25, "y": 5.25}
- ]
- }
- }
-}
diff --git a/keyboards/studiokestra/line_tkl/keymaps/via/rules.mk b/keyboards/studiokestra/line_tkl/keymaps/via/rules.mk
deleted file mode 100644
index 1e5b99807c..0000000000
--- a/keyboards/studiokestra/line_tkl/keymaps/via/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-VIA_ENABLE = yes
diff --git a/keyboards/studiokestra/line_tkl/readme.md b/keyboards/studiokestra/line_tkl/readme.md
deleted file mode 100644
index a5d7ae0c41..0000000000
--- a/keyboards/studiokestra/line_tkl/readme.md
+++ /dev/null
@@ -1,27 +0,0 @@
-# studiokestra/line_tkl
-
-![studiokestra/line_tkl](https://i.imgur.com/3MmRQkh.png)
-
-PCB developed for Mino Keys in collaboration with Line Friends (C).
-
-* Keyboard Maintainer: [Studio Kestra](https://github.com/studiokestra/)
-* Hardware Supported: Line TKL
-* Hardware Availability: https://minokeys.com/collections/line-friends
-
-Make example for this keyboard (after setting up your build environment):
-
- make studiokestra/line_tkl:default
-
-Flashing example for this keyboard:
-
- make studiokestra/line_tkl: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 (usually the top left key or Escape) and plug in the keyboard
-* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead
-* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available
diff --git a/keyboards/swiftrax/retropad/config.h b/keyboards/swiftrax/retropad/config.h
deleted file mode 100644
index 092f2ba0e9..0000000000
--- a/keyboards/swiftrax/retropad/config.h
+++ /dev/null
@@ -1,21 +0,0 @@
-/*
-Copyright 2020 Swiftrax <swiftrax@gmail.com>
-
-This program is free software: you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program. If not, see <http://www.gnu.org/licenses/>.
-*/
-
-#pragma once
-
-/*EEPROM for via*/
-#define DYNAMIC_KEYMAP_LAYER_COUNT 3
diff --git a/keyboards/switchplate/southpaw_65/rules.mk b/keyboards/switchplate/southpaw_65/rules.mk
index c6c7f4ef93..89d05c5487 100644
--- a/keyboards/switchplate/southpaw_65/rules.mk
+++ b/keyboards/switchplate/southpaw_65/rules.mk
@@ -17,4 +17,4 @@ CUSTOM_MATRIX = lite
VPATH += drivers/gpio
SRC += pca9555.c matrix.c
-QUANTUM_LIB_SRC += i2c_master.c
+I2C_DRIVER_REQUIRED = yes
diff --git a/keyboards/sx60/rules.mk b/keyboards/sx60/rules.mk
index a18361a0cd..2f0d22e49f 100755
--- a/keyboards/sx60/rules.mk
+++ b/keyboards/sx60/rules.mk
@@ -13,5 +13,5 @@ RGBLIGHT_ENABLE = no
CUSTOM_MATRIX = yes
# project specific files
-QUANTUM_LIB_SRC += i2c_master.c
+I2C_DRIVER_REQUIRED = yes
SRC += matrix.c
diff --git a/keyboards/system76/launch_1/keymaps/peterfalken/config.h b/keyboards/system76/launch_1/keymaps/peterfalken/config.h
deleted file mode 100644
index 565698b7b5..0000000000
--- a/keyboards/system76/launch_1/keymaps/peterfalken/config.h
+++ /dev/null
@@ -1,43 +0,0 @@
-// Copyright 2023 Peter.Falken (@PeterFalken)
-// SPDX-License-Identifier: GPL-2.0-or-later
-
-#pragma once
-
-// Custom RGB_MATRIX settings
-#ifdef RGB_MATRIX_ENABLE
- // Remove predefined values
- #undef RGB_DISABLE_TIMEOUT
- #undef RGB_MATRIX_MAXIMUM_BRIGHTNESS
- #undef RGB_MATRIX_DEFAULT_MODE
- #undef RGB_MATRIX_DEFAULT_HUE
- #undef RGB_MATRIX_DEFAULT_SAT
- #undef RGB_MATRIX_DEFAULT_VAL
-
- // Redefine values
- // Number of milliseconds to wait until RGB automatically turns off
- #define RGB_MATRIX_TIMEOUT 5000
- // Limits maximum brightness of LEDs to 120 out of 255
- #define RGB_MATRIX_MAXIMUM_BRIGHTNESS 120
- // Sets the default startup mode
- #define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_CUSTOM_active_keys
- // Sets the default hue, saturation & brightness values
- #define RGB_MATRIX_DEFAULT_HUE 0
- #define RGB_MATRIX_DEFAULT_SAT 0
- #define RGB_MATRIX_DEFAULT_VAL RGB_MATRIX_MAXIMUM_BRIGHTNESS/3
-#endif // RGB_MATRIX_ENABLE
-
-// Custom definition
-// Disable RGB_MATRIX_ANIMATIONS to free up space
-#ifdef DISABLE_RGB_MATRIX_ANIMATIONS
- #undef ENABLE_RGB_MATRIX_CYCLE_ALL
- #undef ENABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT
- #undef ENABLE_RGB_MATRIX_CYCLE_UP_DOWN
- #undef ENABLE_RGB_MATRIX_CYCLE_OUT_IN
- #undef ENABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL
- #undef ENABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON
- #undef ENABLE_RGB_MATRIX_CYCLE_PINWHEEL
- #undef ENABLE_RGB_MATRIX_CYCLE_SPIRAL
- #undef ENABLE_RGB_MATRIX_RAINDROPS
- #undef ENABLE_RGB_MATRIX_SPLASH
- #undef ENABLE_RGB_MATRIX_MULTISPLASH
-#endif // DISABLE_RGB_MATRIX_ANIMATIONS
diff --git a/keyboards/system76/launch_1/keymaps/peterfalken/keymap.c b/keyboards/system76/launch_1/keymaps/peterfalken/keymap.c
deleted file mode 100644
index 2c5c8bf862..0000000000
--- a/keyboards/system76/launch_1/keymaps/peterfalken/keymap.c
+++ /dev/null
@@ -1,90 +0,0 @@
-// Copyright 2023 Peter.Falken (@PeterFalken)
-// SPDX-License-Identifier: GPL-2.0-or-later
-
-#include "peterfalken.h"
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- /* Layer 0, default layer
- _________________________________________________________________________________________________________________________________ ________
-| | | | | | | | | | | | | | || |
-| ESC | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | DELETE || HOME |
-|________|________|________|________|________|________|________|________|________|________|________|________|________|____________||________|
-| ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | _ | + | || |
-| ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | BACKSPACE || PGUP |
-|________|________|________|________|________|________|________|________|________|________|________|________|________|____________||________|
-| | | | | | | | | | | | [ | ] | | || |
-| TAB | Q | W | E | R | T | Y | U | I | O | P | { | } | \ || PGDN |
-|____________|________|________|________|________|________|________|________|________|________|________|________|________|________||________|
- | | | | | | | | | | | : | " | | | |
- | CAPS | A | S | D | F | G | H | J | K | L | ; | ' | ENTER | | END |
- |____________|________|________|________|________|________|________|________|________|________|________|________|____________|___|________|
- | | | | | | | | | < | > | ? | | |
- | SHIFT | Z | X | C | V | B | N | M | , | . | / | SHIFT | UP |
- |________________|________|________|________|________|________|________|________|________|________|________|____________|________|________
- | | | | | | | | | | | | | |
- | MO.1 | RCTL | LALT | LGUI | SPACE | SPACE | RGUI | RALT | RCTRL | | LEFT | DOWN | RIGHT |
- |____________|________|_______|________|_________________|_________________|________|________|_____________| |________|________|________|
- */
-
- [_QWERTY] = 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_DEL, KC_HOME,
- KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_PGUP,
- KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGDN,
- CK_CW, 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_END,
- 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,
- MO(1), KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_SPC, KC_RGUI, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
- ),
-
- /* Layer 1, function layer
- _________________________________________________________________________________________________________________________________ ________
-| | | | | | | | | | | | | | || PLAY/ |
-| ▽ | ▽ | M.AP | M.AL | LPAD | ▽ | ▽ | ▽ | ▽ | ▽ | ▽ | ▽ | ▽ | ▽ || PAUSE |
-|________|________|________|________|________|________|________|________|________|________|________|________|________|____________||________|
-| | | | | | | | | | | LED | LED | LED | || VOLUME |
-| TO.0 | TO.1 | TO.2 | TO.3 | ▽ | ▽ | ▽ | ▽ | ▽ | ▽ | TOGGLE | DOWN | UP | ▽ || UP |
-|________|________|________|________|________|________|________|________|________|________|________|________|________|____________||________|
-| | | | | | | | | | | | | | || VOLUME |
-|PRINT SCREEN| ▽ | ▽ | ▽ | ▽ | ▽ | HOME | PGDN | PGUP | END | ▽ | ▽ | ▽ | SLEP || DOWN |
-|____________|________|________|________|________|________|________|________|________|________|________|________|________|________||________|
- | | | | | | | | | | | | | | | |
- | ▽ | ▽ | ▽ | ▽ | ▽ | ▽ | LEFT | DOWN | UP | RIGHT | ▽ | ▽ | ▽ | | MUTE |
- |____________|________|________|________|________|________|________|________|________|________|________|________|____________|___|________|
- | | | | | | | | | | | | | |
- | ▽ | UN | CU | CO | PA | MV | ▽ | ▽ | ▽ | ▽ | ▽ | ▽ | PGUP |
- |________________|________|________|________|________|________|________|________|________|________|________|____________|________|________
- | | | | | | | | | | | | | |
- | ▽ | ▽ | ▽ | ▽ | ▽ | ▽ | ▽ | ▽ | TO.0 | | HOME | PGDN | END |
- |____________|________|_______|________|_________________|_________________|________|________|_____________| |________|________|________|
-
- * `QK_BOOT' resets the controller and puts the board into firmware flashing mode.
- * If this key is hit accidentally, just unplug the board and plug it back in.
- */
-
- [_LOWER] = LAYOUT(
- KC_TRNS, KC_TRNS, CK_M1, KC_MCTL, KC_LPAD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY,
- TO(0), TO(1), TO(2), TO(3), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_TOG, RGB_VAD, RGB_VAI, KC_TRNS, KC_VOLU,
- KC_PSCR, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_PGDN, KC_PGUP, KC_END, KC_TRNS, KC_TRNS, KC_TRNS, CK_SLP, KC_VOLD,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_MUTE,
- KC_TRNS, KC_TRNS, CK_CU, CK_CO, CK_PA, CK_MV, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PGUP,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, TO(0), KC_HOME, KC_PGDN, KC_END
- ),
-
- [_RAISE] = LAYOUT(
- 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,
- TO(0), TO(1), TO(2), TO(3), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, TO(0), KC_TRNS, KC_TRNS, KC_TRNS
- ),
-
- [_ADJUST] = LAYOUT(
- 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,
- TO(0), TO(1), TO(2), TO(3), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, TO(0), KC_TRNS, KC_TRNS, KC_TRNS
- ),
-
-};
diff --git a/keyboards/system76/launch_1/keymaps/peterfalken/readme.md b/keyboards/system76/launch_1/keymaps/peterfalken/readme.md
deleted file mode 100644
index f64d682a51..0000000000
--- a/keyboards/system76/launch_1/keymaps/peterfalken/readme.md
+++ /dev/null
@@ -1,14 +0,0 @@
-Copyright 2023 LEG <ucaboys@gmail.com> @PeterFalken
-
-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/>.
diff --git a/keyboards/system76/launch_1/rules.mk b/keyboards/system76/launch_1/rules.mk
index 7dbc07ced0..181976b2dd 100644
--- a/keyboards/system76/launch_1/rules.mk
+++ b/keyboards/system76/launch_1/rules.mk
@@ -23,4 +23,4 @@ LTO_ENABLE = yes # Link-time optimization for smaller binary
# Add System76 EC command interface as well as I2C and USB mux drivers
SRC += system76_ec.c usb_mux.c
-QUANTUM_LIB_SRC += i2c_master.c
+I2C_DRIVER_REQUIRED = yes
diff --git a/keyboards/tada68/keymaps/jarred/keymap.c b/keyboards/tada68/keymaps/jarred/keymap.c
deleted file mode 100644
index 49ceac2f06..0000000000
--- a/keyboards/tada68/keymaps/jarred/keymap.c
+++ /dev/null
@@ -1,39 +0,0 @@
-/* Copyright 2019 Jarred Steenvoorden
- *
- * 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
-
-#define _QW 0
-#define _NV 1
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
- [_QW] = LAYOUT_ansi(
- KC_ESC , KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , KC_MINS, KC_EQL , KC_BSPC, KC_GRV ,
- 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 ,
- MO(_NV), 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_PGUP,
- 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_PGDN,
- KC_LCTL, KC_LGUI, KC_LALT, KC_SPC , KC_RALT, MO(_NV), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
- ),
-
- [_NV] = LAYOUT_ansi(
- _______, KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_F5 , KC_F6 , KC_F7 , KC_F8 , KC_F9 , KC_F10 , KC_F11 , KC_F12 , KC_DEL , KC_INS ,
- _______, _______, _______, _______, KC_DEL , KC_BSPC, _______, KC_HOME, KC_UP , KC_END , KC_INS , _______, _______, _______, KC_HOME,
- _______, _______, _______, KC_LSFT, KC_LCTL, KC_ENT , _______, KC_LEFT, KC_DOWN, KC_RGHT, KC_DEL , KC_DEL , _______, KC_END ,
- _______ , _______, _______, _______, _______, _______, _______, KC_PGUP, KC_PGDN, _______, _______, _______, BL_UP , _______,
- _______, _______, _______, _______ , _______, _______, _______, BL_TOGG, BL_DOWN, _______
- ),
-
-};
diff --git a/keyboards/tada68/keymaps/jarred/readme.md b/keyboards/tada68/keymaps/jarred/readme.md
deleted file mode 100644
index 56dc34555c..0000000000
--- a/keyboards/tada68/keymaps/jarred/readme.md
+++ /dev/null
@@ -1,9 +0,0 @@
-# Jarred's Tada68 Layout
-
-Check out [user space readme](../../../../users/jarred/readme.md) for more info
-
-# Flash
-
-```
-make tada68:jarred:flashbin
-```
diff --git a/keyboards/tada68/keymaps/jarred/rules.mk b/keyboards/tada68/keymaps/jarred/rules.mk
deleted file mode 100644
index 193d92d1d0..0000000000
--- a/keyboards/tada68/keymaps/jarred/rules.mk
+++ /dev/null
@@ -1,2 +0,0 @@
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-CONSOLE_ENABLE = no # Console for debug(+400)
diff --git a/keyboards/tada68/keymaps/rupa/config.h b/keyboards/tada68/keymaps/rupa/config.h
deleted file mode 100644
index e1a6eb1a2b..0000000000
--- a/keyboards/tada68/keymaps/rupa/config.h
+++ /dev/null
@@ -1,3 +0,0 @@
-#pragma once
-
-#define GRAVE_ESC_ALT_OVERRIDE
diff --git a/keyboards/tada68/keymaps/rupa/keymap.c b/keyboards/tada68/keymaps/rupa/keymap.c
deleted file mode 100755
index ce95673af4..0000000000
--- a/keyboards/tada68/keymaps/rupa/keymap.c
+++ /dev/null
@@ -1,38 +0,0 @@
-#include "rupa.h"
-
-#define LAYOUT_65_ansi_wrapper(...) LAYOUT_65_ansi(__VA_ARGS__)
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [_QWERTY] = LAYOUT_65_ansi_wrapper(
- ____65_QWERTY______________ROW1,
- ____65_QWERTY______________ROW2,
- ____65_QWERTY______________ROW3,
- ____65_QWERTY______________ROW4,
- ____65_QWERTY______________ROW5
- ),
- [_RAISE] = LAYOUT_65_ansi_wrapper(
- ____65_RAISE_______________ROW1,
- ____65_RAISE_______________ROW2,
- ____65_RAISE_______________ROW3,
- ____65_RAISE_______________ROW4,
- ____65_RAISE_______________ROW5
- ),
- [_LOWER] = LAYOUT_65_ansi_wrapper(
- ____65_LOWER_______________ROW1,
- ____65_LOWER_______________ROW2,
- ____65_LOWER_______________ROW3,
- ____65_LOWER_______________ROW4,
- ____65_LOWER_______________ROW5
- ),
- [_ADJUST] = LAYOUT_65_ansi_wrapper(
- ____65_ADJUST______________ROW1,
- ____65_ADJUST___________BL_ROW2,
- ____65_ADJUST______________ROW3,
- ____65_ADJUST______________ROW4,
- ____65_ADJUST______________ROW5
- ),
-};
-
-layer_state_t layer_state_set_user(layer_state_t state) {
- return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST);
-}
diff --git a/keyboards/tada68/keymaps/rupa/readme.md b/keyboards/tada68/keymaps/rupa/readme.md
deleted file mode 100755
index eea966fdb9..0000000000
--- a/keyboards/tada68/keymaps/rupa/readme.md
+++ /dev/null
@@ -1,19 +0,0 @@
-# rupa's TADA68 layout
-
-i've swapped the lufa-ms bootloader for caterina
-
-most everything is in my [userspace](../../../../users/rupa/)
-
-* win/alt -> alt/cmd
-* alt/fn -> fn/alt
-* grave escape, with alt override
-* caps is another fn key, CAPS on fn-rctl
-
-fn layer:
- * no wasd arrows
- * rotate mute/vol
- * backlight -> breathing, step, toggle
- * swap home and ins
- * unicode chars and strings sprinkled around
- * script modes!
- * (one-shot) right versions of shift/ctl/alt/gui (not working quite right yet)
diff --git a/keyboards/tada68/keymaps/rupa/rules.mk b/keyboards/tada68/keymaps/rupa/rules.mk
deleted file mode 100644
index 1777fc10a2..0000000000
--- a/keyboards/tada68/keymaps/rupa/rules.mk
+++ /dev/null
@@ -1,3 +0,0 @@
-BOOTLOADER = caterina
-
-CONSOLE_ENABLE = yes
diff --git a/keyboards/takashicompany/minizone/keymaps/manna-harbour_miryoku/config.h b/keyboards/takashicompany/minizone/keymaps/manna-harbour_miryoku/config.h
deleted file mode 100644
index b899befbe3..0000000000
--- a/keyboards/takashicompany/minizone/keymaps/manna-harbour_miryoku/config.h
+++ /dev/null
@@ -1,40 +0,0 @@
-// Copyright 2022 Manna Harbour
-// https://github.com/manna-harbour/miryoku
-
-// 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 XXX KC_NO
-
-#if defined (MIRYOKU_MAPPING_EXTENDED_THUMBS)
-
-#define LAYOUT_miryoku( \
-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, \
-N30, N31, K32, K33, K34, K35, K36, K37, N38, N39 \
-) \
-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, \
- XXX, K32, K33, K34, K35, K36, K37, XXX \
-)
-
-#else
-
-#define LAYOUT_miryoku( \
-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, \
-N30, N31, K32, K33, K34, K35, K36, K37, N38, N39 \
-) \
-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, \
- K32, K33, K34, KC_BTN1, KC_BTN2, K35, K36, K37 \
-)
-
-#endif
diff --git a/keyboards/takashicompany/minizone/keymaps/manna-harbour_miryoku/keymap.c b/keyboards/takashicompany/minizone/keymaps/manna-harbour_miryoku/keymap.c
deleted file mode 100644
index dbab7f9820..0000000000
--- a/keyboards/takashicompany/minizone/keymaps/manna-harbour_miryoku/keymap.c
+++ /dev/null
@@ -1,4 +0,0 @@
-// Copyright 2019 Manna Harbour
-// https://github.com/manna-harbour/miryoku
-
-// 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/>.
diff --git a/keyboards/takashicompany/minizone/keymaps/manna-harbour_miryoku/rules.mk b/keyboards/takashicompany/minizone/keymaps/manna-harbour_miryoku/rules.mk
deleted file mode 100644
index 0488a92d46..0000000000
--- a/keyboards/takashicompany/minizone/keymaps/manna-harbour_miryoku/rules.mk
+++ /dev/null
@@ -1,4 +0,0 @@
-# Copyright 2022 Manna Harbour
-# https://github.com/manna-harbour/miryoku
-
-LTO_ENABLE = yes
diff --git a/keyboards/tau4/config.h b/keyboards/tau4/config.h
index 053f210c07..e36b3b8f2e 100644
--- a/keyboards/tau4/config.h
+++ b/keyboards/tau4/config.h
@@ -17,15 +17,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#pragma once
-
-// Buggy, currently disabled
-/* #define EXTERNAL_EEPROM_I2C_BASE_ADDRESS 0b10100000
-#define EXTERNAL_EEPROM_I2C_ADDRESS(loc) (EXTERNAL_EEPROM_I2C_BASE_ADDRESS | ((((loc) >> 8) & 0x07) << 1))
-#define EXTERNAL_EEPROM_BYTE_COUNT 2048
-#define EXTERNAL_EEPROM_PAGE_SIZE 16
-#define EXTERNAL_EEPROM_ADDRESS_SIZE 1
-#define EXTERNAL_EEPROM_WRITE_TIME 5 */
-
#define RGBLIGHT_LAYERS_RETAIN_VAL
#define OLED_DISPLAY_WIDTH 128
diff --git a/keyboards/teleport/native/ansi/keymaps/default/keymap.c b/keyboards/teleport/native/ansi/keymaps/default/keymap.c
index fcea5c41f3..2780fdda7d 100644
--- a/keyboards/teleport/native/ansi/keymaps/default/keymap.c
+++ b/keyboards/teleport/native/ansi/keymaps/default/keymap.c
@@ -53,11 +53,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* RGB matrix indicator code
It reads the current matrix color, offsets the hue by 30,
-and sets val to either 255 or, if defined, RGB_MATRIX_MAXIMUM_BRIGHTNESS
+and sets val to RGB_MATRIX_MAXIMUM_BRIGHTNESS (by default, 255)
This is applied to both caps lock, and other indicator keys for layer 1 */
bool rgb_matrix_indicators_user(void) {
- HSV hsv_ind = {rgb_matrix_get_hue()+30,255,INDICATOR_MAX_BRIGHTNESS};
+ HSV hsv_ind = {rgb_matrix_get_hue()+30,255,RGB_MATRIX_MAXIMUM_BRIGHTNESS};
RGB rgb_ind = hsv_to_rgb(hsv_ind);
/* Sets Caps to different color as indicator. If RGB mode is rain, and caps indicator is off, the LED will always be off.
@@ -70,7 +70,7 @@ bool rgb_matrix_indicators_user(void) {
/* Sets W, A, S, D, LGUI to a different color as layer indicator */
if(IS_LAYER_ON(1)) {
- HSV hsv_ind = {rgb_matrix_get_hue()+30,255,INDICATOR_MAX_BRIGHTNESS};
+ HSV hsv_ind = {rgb_matrix_get_hue()+30,255,RGB_MATRIX_MAXIMUM_BRIGHTNESS};
RGB rgb_ind = hsv_to_rgb(hsv_ind);
rgb_matrix_set_color(W_LED_INDEX, rgb_ind.r, rgb_ind.g, rgb_ind.b);
diff --git a/keyboards/teleport/native/ansi/keymaps/perfmode/keymap.c b/keyboards/teleport/native/ansi/keymaps/perfmode/keymap.c
index abe6188ccf..e34f0f9d16 100644
--- a/keyboards/teleport/native/ansi/keymaps/perfmode/keymap.c
+++ b/keyboards/teleport/native/ansi/keymaps/perfmode/keymap.c
@@ -147,13 +147,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* RGB matrix indicator code
It reads the current matrix color, offsets the hue by 30,
-and sets val to either 255 or, if defined, RGB_MATRIX_MAXIMUM_BRIGHTNESS
+and sets val to RGB_MATRIX_MAXIMUM_BRIGHTNESS (by default, 255)
This is applied to both caps lock, and other indicator keys for layer 1 */
bool rgb_matrix_indicators_user(void) {
/* Layer 2 (perf mode on this keymap) is not supposed to have LED refreshes, hence excluded */
if (!IS_LAYER_ON(2)) {
- HSV hsv_ind = {rgb_matrix_get_hue()+30,255,INDICATOR_MAX_BRIGHTNESS};
+ HSV hsv_ind = {rgb_matrix_get_hue()+30,255,RGB_MATRIX_MAXIMUM_BRIGHTNESS};
RGB rgb_ind = hsv_to_rgb(hsv_ind);
/* Sets Caps to different color as indicator. If RGB mode is rain, and caps indicator is off, the LED will always be off.
@@ -166,7 +166,7 @@ bool rgb_matrix_indicators_user(void) {
/* Sets W, A, S, D, LGUI to a different color as layer indicator */
if(IS_LAYER_ON(1)) {
- HSV hsv_ind = {rgb_matrix_get_hue()+30,255,INDICATOR_MAX_BRIGHTNESS};
+ HSV hsv_ind = {rgb_matrix_get_hue()+30,255,RGB_MATRIX_MAXIMUM_BRIGHTNESS};
RGB rgb_ind = hsv_to_rgb(hsv_ind);
rgb_matrix_set_color(W_LED_INDEX, rgb_ind.r, rgb_ind.g, rgb_ind.b);
diff --git a/keyboards/teleport/native/ansi/keymaps/via/keymap.c b/keyboards/teleport/native/ansi/keymaps/via/keymap.c
index e1fbd285ec..95a5bc58b1 100644
--- a/keyboards/teleport/native/ansi/keymaps/via/keymap.c
+++ b/keyboards/teleport/native/ansi/keymaps/via/keymap.c
@@ -53,11 +53,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* RGB matrix indicator code
It reads the current matrix color, offsets the hue by 30,
-and sets val to either 255 or, if defined, RGB_MATRIX_MAXIMUM_BRIGHTNESS
+and sets val to RGB_MATRIX_MAXIMUM_BRIGHTNESS (by default, 255)
This is applied to both caps lock, and other indicator keys for layer 1 */
bool rgb_matrix_indicators_user(void) {
- HSV hsv_ind = {rgb_matrix_get_hue()+30,255,INDICATOR_MAX_BRIGHTNESS};
+ HSV hsv_ind = {rgb_matrix_get_hue()+30,255,RGB_MATRIX_MAXIMUM_BRIGHTNESS};
RGB rgb_ind = hsv_to_rgb(hsv_ind);
/* Sets Caps to different color as indicator. If RGB mode is rain, and caps indicator is off, the LED will always be off.
@@ -70,7 +70,7 @@ bool rgb_matrix_indicators_user(void) {
/* Sets W, A, S, D, LGUI to a different color as layer indicator */
if(IS_LAYER_ON(1)) {
- HSV hsv_ind = {rgb_matrix_get_hue()+30,255,INDICATOR_MAX_BRIGHTNESS};
+ HSV hsv_ind = {rgb_matrix_get_hue()+30,255,RGB_MATRIX_MAXIMUM_BRIGHTNESS};
RGB rgb_ind = hsv_to_rgb(hsv_ind);
rgb_matrix_set_color(W_LED_INDEX, rgb_ind.r, rgb_ind.g, rgb_ind.b);
diff --git a/keyboards/teleport/native/config.h b/keyboards/teleport/native/config.h
index 1453bfdc94..99c82df12e 100644
--- a/keyboards/teleport/native/config.h
+++ b/keyboards/teleport/native/config.h
@@ -29,9 +29,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
/* RGB Matrix driver config */
-#define DRIVER_COUNT 2
-#define DRIVER_ADDR_1 0b1010000
-#define DRIVER_ADDR_2 0b1010011
+#define IS31FL3733_I2C_ADDRESS_1 IS31FL3733_I2C_ADDRESS_GND_GND
+#define IS31FL3733_I2C_ADDRESS_2 IS31FL3733_I2C_ADDRESS_GND_VCC
#define DRIVER_1_LED_TOTAL 46
#define DRIVER_2_LED_TOTAL 39
#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL)
@@ -61,13 +60,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define ENABLE_RGB_MATRIX_CUSTOM_SINGLE_COLOR_RAINDROPS // 0 Single color raindrops, random keys lighting up at randomized intensity
#define ENABLE_RGB_MATRIX_CUSTOM_STATIC_GAME_MODE // - Game mode sets the entire matrix (static) once, then stops LED refreshes
-#define INDICATOR_MAX_BRIGHTNESS 255
-#ifdef RGB_MATRIX_MAXIMUM_BRIGHTNESS
- #undef INDICATOR_MAX_BRIGHTNESS
- #define INDICATOR_MAX_BRIGHTNESS RGB_MATRIX_MAXIMUM_BRIGHTNESS
-#endif
-
-
/* Define indicator LED indices, used for lighting effects */
#define W_LED_INDEX 33
#define A_LED_INDEX 47
diff --git a/keyboards/teleport/native/iso/keymaps/default/keymap.c b/keyboards/teleport/native/iso/keymaps/default/keymap.c
index c1ed3cd4f4..b6f2e7ab82 100644
--- a/keyboards/teleport/native/iso/keymaps/default/keymap.c
+++ b/keyboards/teleport/native/iso/keymaps/default/keymap.c
@@ -53,11 +53,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* RGB matrix indicator code
It reads the current matrix color, offsets the hue by 30,
-and sets val to either 255 or, if defined, RGB_MATRIX_MAXIMUM_BRIGHTNESS
+and sets val to RGB_MATRIX_MAXIMUM_BRIGHTNESS (by default, 255)
This is applied to both caps lock, and other indicator keys for layer 1 */
bool rgb_matrix_indicators_user(void) {
- HSV hsv_ind = {rgb_matrix_get_hue()+30,255,INDICATOR_MAX_BRIGHTNESS};
+ HSV hsv_ind = {rgb_matrix_get_hue()+30,255,RGB_MATRIX_MAXIMUM_BRIGHTNESS};
RGB rgb_ind = hsv_to_rgb(hsv_ind);
/* Sets Caps to different color as indicator. If RGB mode is rain, and caps indicator is off, the LED will always be off.
@@ -70,7 +70,7 @@ bool rgb_matrix_indicators_user(void) {
/* Sets W, A, S, D, LGUI to a different color as layer indicator */
if(IS_LAYER_ON(1)) {
- HSV hsv_ind = {rgb_matrix_get_hue()+30,255,INDICATOR_MAX_BRIGHTNESS};
+ HSV hsv_ind = {rgb_matrix_get_hue()+30,255,RGB_MATRIX_MAXIMUM_BRIGHTNESS};
RGB rgb_ind = hsv_to_rgb(hsv_ind);
rgb_matrix_set_color(W_LED_INDEX, rgb_ind.r, rgb_ind.g, rgb_ind.b);
diff --git a/keyboards/teleport/native/iso/keymaps/perfmode/keymap.c b/keyboards/teleport/native/iso/keymaps/perfmode/keymap.c
index 96e9925fd5..ca311edf5e 100644
--- a/keyboards/teleport/native/iso/keymaps/perfmode/keymap.c
+++ b/keyboards/teleport/native/iso/keymaps/perfmode/keymap.c
@@ -147,13 +147,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* RGB matrix indicator code
It reads the current matrix color, offsets the hue by 30,
-and sets val to either 255 or, if defined, RGB_MATRIX_MAXIMUM_BRIGHTNESS
+and sets val to RGB_MATRIX_MAXIMUM_BRIGHTNESS (by default, 255)
This is applied to both caps lock, and other indicator keys for layer 1 */
bool rgb_matrix_indicators_user(void) {
/* Layer 2 (perf mode on this keymap) is not supposed to have LED refreshes, hence excluded */
if (!IS_LAYER_ON(2)) {
- HSV hsv_ind = {rgb_matrix_get_hue()+30,255,INDICATOR_MAX_BRIGHTNESS};
+ HSV hsv_ind = {rgb_matrix_get_hue()+30,255,RGB_MATRIX_MAXIMUM_BRIGHTNESS};
RGB rgb_ind = hsv_to_rgb(hsv_ind);
/* Sets Caps to different color as indicator. If RGB mode is rain, and caps indicator is off, the LED will always be off.
@@ -166,7 +166,7 @@ bool rgb_matrix_indicators_user(void) {
/* Sets W, A, S, D, LGUI to a different color as layer indicator */
if(IS_LAYER_ON(1)) {
- HSV hsv_ind = {rgb_matrix_get_hue()+30,255,INDICATOR_MAX_BRIGHTNESS};
+ HSV hsv_ind = {rgb_matrix_get_hue()+30,255,RGB_MATRIX_MAXIMUM_BRIGHTNESS};
RGB rgb_ind = hsv_to_rgb(hsv_ind);
rgb_matrix_set_color(W_LED_INDEX, rgb_ind.r, rgb_ind.g, rgb_ind.b);
diff --git a/keyboards/teleport/native/iso/keymaps/via/keymap.c b/keyboards/teleport/native/iso/keymaps/via/keymap.c
index c1ed3cd4f4..b6f2e7ab82 100644
--- a/keyboards/teleport/native/iso/keymaps/via/keymap.c
+++ b/keyboards/teleport/native/iso/keymaps/via/keymap.c
@@ -53,11 +53,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* RGB matrix indicator code
It reads the current matrix color, offsets the hue by 30,
-and sets val to either 255 or, if defined, RGB_MATRIX_MAXIMUM_BRIGHTNESS
+and sets val to RGB_MATRIX_MAXIMUM_BRIGHTNESS (by default, 255)
This is applied to both caps lock, and other indicator keys for layer 1 */
bool rgb_matrix_indicators_user(void) {
- HSV hsv_ind = {rgb_matrix_get_hue()+30,255,INDICATOR_MAX_BRIGHTNESS};
+ HSV hsv_ind = {rgb_matrix_get_hue()+30,255,RGB_MATRIX_MAXIMUM_BRIGHTNESS};
RGB rgb_ind = hsv_to_rgb(hsv_ind);
/* Sets Caps to different color as indicator. If RGB mode is rain, and caps indicator is off, the LED will always be off.
@@ -70,7 +70,7 @@ bool rgb_matrix_indicators_user(void) {
/* Sets W, A, S, D, LGUI to a different color as layer indicator */
if(IS_LAYER_ON(1)) {
- HSV hsv_ind = {rgb_matrix_get_hue()+30,255,INDICATOR_MAX_BRIGHTNESS};
+ HSV hsv_ind = {rgb_matrix_get_hue()+30,255,RGB_MATRIX_MAXIMUM_BRIGHTNESS};
RGB rgb_ind = hsv_to_rgb(hsv_ind);
rgb_matrix_set_color(W_LED_INDEX, rgb_ind.r, rgb_ind.g, rgb_ind.b);
diff --git a/keyboards/teleport/native/native.c b/keyboards/teleport/native/native.c
index c3cac80c22..ab6d588de7 100644
--- a/keyboards/teleport/native/native.c
+++ b/keyboards/teleport/native/native.c
@@ -25,7 +25,7 @@ void keyboard_post_init_kb(void) {
}
#ifdef RGB_MATRIX_ENABLE
-const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = {
+const is31fl3733_led_t PROGMEM g_is31fl3733_leds[RGB_MATRIX_LED_COUNT] = {
/* Refer to IS31 manual for these locations
* driver
* | R location
diff --git a/keyboards/telophase/rules.mk b/keyboards/telophase/rules.mk
index 1ee3fc58f9..706d610653 100644
--- a/keyboards/telophase/rules.mk
+++ b/keyboards/telophase/rules.mk
@@ -14,7 +14,7 @@ CUSTOM_MATRIX = lite
# project specific files
SRC += matrix.c
-QUANTUM_LIB_SRC += uart.c
+UART_DRIVER_REQUIRED = yes
# Disable unsupported hardware
RGBLIGHT_SUPPORTED = no
diff --git a/keyboards/terrazzo/config.h b/keyboards/terrazzo/config.h
index 0c7a09033d..d2e76f1de0 100644
--- a/keyboards/terrazzo/config.h
+++ b/keyboards/terrazzo/config.h
@@ -17,8 +17,7 @@
#ifdef LED_MATRIX_ENABLE
-#define LED_DRIVER_ADDR_1 0x74
-#define LED_DRIVER_COUNT 1
+#define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND
#define LED_MATRIX_LED_COUNT 105
#define LED_MATRIX_ROWS 15
#define LED_MATRIX_COLS 7
diff --git a/keyboards/terrazzo/terrazzo.c b/keyboards/terrazzo/terrazzo.c
index cc62225de7..7717b36e65 100644
--- a/keyboards/terrazzo/terrazzo.c
+++ b/keyboards/terrazzo/terrazzo.c
@@ -21,7 +21,7 @@
#include "print.h"
#include "quantum.h"
-const is31_led PROGMEM g_is31_leds[LED_MATRIX_LED_COUNT] = {
+const is31fl3731_led_t PROGMEM g_is31fl3731_leds[LED_MATRIX_LED_COUNT] = {
/* Refer to IS31 manual for these locations
* https://cdn-learn.adafruit.com/downloads/pdf/adafruit-15x7-7x15-charlieplex-led-matrix-charliewing-featherwing.pdf
*/
diff --git a/keyboards/tetris/keymaps/default/keymap.c b/keyboards/tetris/keymaps/default/keymap.c
index 9e2a96ffc3..057e19d987 100755
--- a/keyboards/tetris/keymaps/default/keymap.c
+++ b/keyboards/tetris/keymaps/default/keymap.c
@@ -94,40 +94,40 @@ void matrix_scan_user(void) {
uint16_t kc = keymap_key_to_keycode(layer, (keypos_t) {.row = 0, .col = i
});
if (kc == KC_TRNS) {
- setrgb(5, 5, 5, (LED_TYPE * ) & led[j]); /* TRNS color 0-255*/
+ setrgb(5, 5, 5, (rgb_led_t * ) & led[j]); /* TRNS color 0-255*/
} else if (kc == KC_NO) {
- setrgb(0, 0, 0, (LED_TYPE * ) & led[j]); /* NO color 0-255*/
+ setrgb(0, 0, 0, (rgb_led_t * ) & led[j]); /* NO color 0-255*/
} else {
if (layer == 1) {
- setrgb(128, 64, 0, (LED_TYPE * ) & led[j]); /* 1 layer 0-255*/
+ setrgb(128, 64, 0, (rgb_led_t * ) & led[j]); /* 1 layer 0-255*/
} else if (layer == 2) {
- setrgb(0, 64, 128, (LED_TYPE * ) & led[j]); /* 2*/
+ setrgb(0, 64, 128, (rgb_led_t * ) & led[j]); /* 2*/
} else if (layer == 3) {
- setrgb(64, 128, 0, (LED_TYPE * ) & led[j]); /* 3*/
+ setrgb(64, 128, 0, (rgb_led_t * ) & led[j]); /* 3*/
} else if (layer == 4) {
- setrgb(0, 128, 64, (LED_TYPE * ) & led[j]); /* 4*/
+ setrgb(0, 128, 64, (rgb_led_t * ) & led[j]); /* 4*/
} else if (layer == 5) {
- setrgb(128, 0, 128, (LED_TYPE * ) & led[j]); /* 5*/
+ setrgb(128, 0, 128, (rgb_led_t * ) & led[j]); /* 5*/
} else if (layer == 6) {
- setrgb(128, 0, 128, (LED_TYPE * ) & led[j]); /* 6*/
+ setrgb(128, 0, 128, (rgb_led_t * ) & led[j]); /* 6*/
} else if (layer == 7) {
- setrgb(128, 128, 0, (LED_TYPE * ) & led[j]); /* 7*/
+ setrgb(128, 128, 0, (rgb_led_t * ) & led[j]); /* 7*/
} else if (layer == 8) {
- setrgb(0, 128, 128, (LED_TYPE * ) & led[j]); /* 8*/
+ setrgb(0, 128, 128, (rgb_led_t * ) & led[j]); /* 8*/
} else if (layer == 9) {
- setrgb(128, 192, 64, (LED_TYPE * ) & led[j]); /* 9*/
+ setrgb(128, 192, 64, (rgb_led_t * ) & led[j]); /* 9*/
} else if (layer == 10) {
- setrgb(64, 192, 128, (LED_TYPE * ) & led[j]); /* 10*/
+ setrgb(64, 192, 128, (rgb_led_t * ) & led[j]); /* 10*/
} else if (layer == 11) {
- setrgb(128, 64, 192, (LED_TYPE * ) & led[j]); /* 11*/
+ setrgb(128, 64, 192, (rgb_led_t * ) & led[j]); /* 11*/
} else if (layer == 12) {
- setrgb(64, 128, 192, (LED_TYPE * ) & led[j]); /* 12*/
+ setrgb(64, 128, 192, (rgb_led_t * ) & led[j]); /* 12*/
} else if (layer == 13) {
- setrgb(128, 192, 0, (LED_TYPE * ) & led[j]); /* 13*/
+ setrgb(128, 192, 0, (rgb_led_t * ) & led[j]); /* 13*/
} else if (layer == 14) {
- setrgb(192, 0, 128, (LED_TYPE * ) & led[j]); /* 14*/
+ setrgb(192, 0, 128, (rgb_led_t * ) & led[j]); /* 14*/
} else if (layer == 15) {
- setrgb(0, 192, 128, (LED_TYPE * ) & led[j]); /* 15*/
+ setrgb(0, 192, 128, (rgb_led_t * ) & led[j]); /* 15*/
}
}
}
diff --git a/keyboards/the_royal/liminal/keymaps/brandonschlack/keymap.c b/keyboards/the_royal/liminal/keymaps/brandonschlack/keymap.c
deleted file mode 100644
index 77fa5d7a70..0000000000
--- a/keyboards/the_royal/liminal/keymaps/brandonschlack/keymap.c
+++ /dev/null
@@ -1,115 +0,0 @@
-/* Copyright 2020 Brandon Schlack
- *
- * 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 "brandonschlack.h"
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-/* Base
- * ┌───┬─────┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬─────┐
- * │Hom│Tab  │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │{ [│ BsPc│
- * ├───┼─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤
- * │PgU│HyEsc │ A │ S │ D │ F │ G │ H │ J │ K │ L │" '│   Enter│
- * ├───┼──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬──────┤
- * │PgD│Shift   │ Z │ X │ C │ V │ B │ N │ M │< ,│> .│? /│ ↑Shft│
- * ├───┼────┬───┼───┴┬──┴───┴───┴───┴───┴───┴───┴┬──┴─┬─┴─┬────┤
- * │End│Ctrl│Opt│Cmd │        Space-Raise        │←Cmd│↓Lw│→Opt│
- * └───┴────┴───┴────┴───────────────────────────┴────┴───┴────┘
- */
-[_BASE] = LAYOUT_base_kit_all(
- 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_BSPC,
- KC_PGUP, HY_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_QUOT, XXXXXXX, KC_ENT,
- KC_PGDN, KC_LSFT, XXXXXXX, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, UP_RSFT,
- KC_END, KC_LCTL, KC_LOPT, KC_LCMD, XXXXXXX, SPC_RAI, XXXXXXX, LFT_CMD, DWN_LWR, RGT_OPT
-),
-
-/* Lower
- * ┌───┬─────┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬─────┐
- * │Nxt│Del  │BrD│BrU│Msn│LHP│   │   │   │   │   │ ↑ │Mut│ SlpD│
- * ├───┼─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤
- * │VlU│HyCaps│   │   │NxW│PvT│Bck│Fwd│NxT│   │ ← │ → │    Play│
- * ├───┼──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬──────┤
- * │VlD│        │   │   │   │1PX│1Ps│   │   │   │ ↓ │   │      │
- * ├───┼────┬───┼───┴┬──┴───┴───┴───┴───┴───┴───┴┬──┴─┬─┴─┬────┤
- * │Prv│    │   │    │                           │    │   │    │
- * └───┴────┴───┴────┴───────────────────────────┴────┴───┴────┘
- */
-[_LOWER] = LAYOUT_base_kit_all(
- KC_MNXT, KC_DEL, KC_BRMD, KC_BRMU, MC_MSSN, MC_LHPD, _______, _______, _______, _______, _______, KC_UP, KC_MUTE, MC_SLPD,
- KC_VOLU, HY_CAPS, _______, _______, NXT_WIN, PRV_TAB, MC_BACK, MC_FWRD, NXT_TAB, _______, KC_LEFT, KC_RGHT, XXXXXXX, KC_MPLY,
- KC_VOLD, _______, XXXXXXX, _______, _______, _______, PX_AFLL, OP_AFLL, _______, _______, _______, KC_DOWN, _______, _______,
- KC_MPRV, _______, _______, _______, XXXXXXX, _______, XXXXXXX, _______, _______, _______
-),
-
-/* Raise
- * ┌───┬─────┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬─────┐
- * │Nxt│~ `  │! 1│@ 2│# 3│$ 4│% 5│^ 6│& 7│* 8│( 9│) 0│} ]│     │
- * ├───┼─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤
- * │VlU│      │ F1│ F2│ F3│ F4│ F5│ F6│_ -│+ =│   │: ;│        │
- * ├───┼──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬──────┤
- * │VlD│        │ F7│ F8│ F9│F10│F11│F12│   │{ [│} ]│| \│ ⇞Shft│
- * ├───┼────┬───┼───┴┬──┴───┴───┴───┴───┴───┴───┴┬──┴─┬─┴─┬────┤
- * │Prv│    │   │    │                           │↖︎Cmd│⇟Fn│↘︎Opt│
- * └───┴────┴───┴────┴───────────────────────────┴────┴───┴────┘
- */
-[_RAISE] = LAYOUT_base_kit_all(
- KC_MNXT, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_RBRC, _______,
- KC_VOLU, _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, _______, KC_SCLN, XXXXXXX, _______,
- KC_VOLD, _______, XXXXXXX, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, KC_LBRC, KC_RBRC, KC_BSLS, PGU_SFT,
- KC_MPRV, _______, _______, _______, XXXXXXX, _______, XXXXXXX, HOM_CMD, PGD_LWR, END_OPT
-),
-
-/* Adjust
- * ┌───┬─────┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬─────┐
- * │   │Make │   │   │EEP│RST│   │   │   │   │   │   │   │     │
- * ├───┼─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤
- * │   │      │   │   │   │   │   │   │   │   │   │   │        │
- * ├───┼──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬──────┤
- * │   │        │   │   │   │   │   │   │   │   │   │   │      │
- * ├───┼────┬───┼───┴┬──┴───┴───┴───┴───┴───┴───┴┬──┴─┬─┴─┬────┤
- * │   │    │   │    │                           │    │   │    │
- * └───┴────┴───┴────┴───────────────────────────┴────┴───┴────┘
- */
-[_ADJUST] = LAYOUT_base_kit_all(
- _______, QM_MAKE, _______, _______, EE_CLR, QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, XXXXXXX, _______,
- _______, _______, XXXXXXX, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, XXXXXXX, _______, XXXXXXX, _______, _______, _______
-),
-
-/* Blank layer
- * ┌───┬─────┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬─────┐
- * │   │     │   │   │   │   │   │   │   │   │   │   │   │     │
- * ├───┼─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤
- * │   │      │   │   │   │   │   │   │   │   │   │   │        │
- * ├───┼──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬──────┤
- * │   │        │   │   │   │   │   │   │   │   │   │   │      │
- * ├───┼────┬───┼───┴┬──┴───┴───┴───┴───┴───┴───┴┬──┴─┬─┴─┬────┤
- * │   │    │   │    │                           │    │   │    │
- * └───┴────┴───┴────┴───────────────────────────┴────┴───┴────┘
- */
-/*
-[_BLANK] = LAYOUT_base_kit_all(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, XXXXXXX, _______,
- _______, _______, XXXXXXX, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, XXXXXXX, _______, XXXXXXX, _______, _______, _______
-),
-*/
-};
-
-layer_state_t layer_state_set_keymap(layer_state_t state) {
- return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST);
-}
diff --git a/keyboards/thevankeyboards/bananasplit/keymaps/talljoe/config.h b/keyboards/thevankeyboards/bananasplit/keymaps/talljoe/config.h
deleted file mode 100644
index 40b3fd3ecc..0000000000
--- a/keyboards/thevankeyboards/bananasplit/keymaps/talljoe/config.h
+++ /dev/null
@@ -1,33 +0,0 @@
-/* Copyright 2020 Joseph Wasson
- *
- * 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 SPACE_COUNT 3
-
-#define TEMPLATE( \
- K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K2D, \
- K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \
- K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, \
- K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, \
- K40, K41, K42, K44, K45, K46, K48, K49, K4B, K4C \
-) { \
- { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D }, \
- { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D }, \
- { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D }, \
- { K30, KC_NO, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D }, \
- { K40, K41, K42, KC_NO, K44, K45, K46, KC_NO, K48, K49, KC_NO, K4B, K4C, KC_NO }\
-}
diff --git a/keyboards/thevankeyboards/bananasplit/keymaps/talljoe/keymap.c b/keyboards/thevankeyboards/bananasplit/keymaps/talljoe/keymap.c
deleted file mode 100644
index 7812add812..0000000000
--- a/keyboards/thevankeyboards/bananasplit/keymaps/talljoe/keymap.c
+++ /dev/null
@@ -1 +0,0 @@
-// This space intentionally left blank
diff --git a/keyboards/thevankeyboards/minivan/keymaps/dcompact/keymap.c b/keyboards/thevankeyboards/minivan/keymaps/dcompact/keymap.c
index a036d563a1..614fe97710 100644
--- a/keyboards/thevankeyboards/minivan/keymaps/dcompact/keymap.c
+++ b/keyboards/thevankeyboards/minivan/keymaps/dcompact/keymap.c
@@ -15,7 +15,6 @@
*/
#include QMK_KEYBOARD_H
-#include "keymap_steno.h"
// Custom Keycodes and Combinations Used
#define DEL_SHF SFT_T(KC_DEL)
diff --git a/keyboards/thevankeyboards/minivan/keymaps/halvves/keymap.c b/keyboards/thevankeyboards/minivan/keymaps/halvves/keymap.c
index 6ef5ecc2c6..ece72f3319 100644
--- a/keyboards/thevankeyboards/minivan/keymaps/halvves/keymap.c
+++ b/keyboards/thevankeyboards/minivan/keymaps/halvves/keymap.c
@@ -180,8 +180,8 @@ void keyboard_post_init_user(void) {
rgblight_mode_noeeprom(RGBLIGHT_EFFECT_BREATHING + 2);
// set other led's to off
- setrgb(0, 0, 0, (LED_TYPE *)&led[0]);
- setrgb(0, 0, 0, (LED_TYPE *)&led[1]);
+ setrgb(0, 0, 0, (rgb_led_t *)&led[0]);
+ setrgb(0, 0, 0, (rgb_led_t *)&led[1]);
rgblight_set();
#endif
}
@@ -190,23 +190,23 @@ layer_state_t layer_state_set_user(layer_state_t state) {
state = update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST);
#ifdef RGBLIGHT_ENABLE
if (layer_state_cmp(state, _ADJUST)) {
- setrgb(70, 255, 200, (LED_TYPE *)&led[0]);
- setrgb(255, 70, 100, (LED_TYPE *)&led[1]);
+ setrgb(70, 255, 200, (rgb_led_t *)&led[0]);
+ setrgb(255, 70, 100, (rgb_led_t *)&led[1]);
} else if (layer_state_cmp(state, _LOWER)) {
- setrgb(70, 255, 200, (LED_TYPE *)&led[0]);
- setrgb(0, 0, 0, (LED_TYPE *)&led[1]);
+ setrgb(70, 255, 200, (rgb_led_t *)&led[0]);
+ setrgb(0, 0, 0, (rgb_led_t *)&led[1]);
} else if (layer_state_cmp(state, _RAISE)) {
- setrgb(0, 0, 0, (LED_TYPE *)&led[0]);
- setrgb(255, 70, 100, (LED_TYPE *)&led[1]);
+ setrgb(0, 0, 0, (rgb_led_t *)&led[0]);
+ setrgb(255, 70, 100, (rgb_led_t *)&led[1]);
} else if (layer_state_cmp(state, _UTIL)) {
- setrgb(200, 70, 225, (LED_TYPE *)&led[0]);
- setrgb(200, 70, 225, (LED_TYPE *)&led[1]);
+ setrgb(200, 70, 225, (rgb_led_t *)&led[0]);
+ setrgb(200, 70, 225, (rgb_led_t *)&led[1]);
} else if (layer_state_cmp(state, _MOUSE)) {
- setrgb(255, 145, 5, (LED_TYPE *)&led[0]);
- setrgb(255, 145, 5, (LED_TYPE *)&led[1]);
+ setrgb(255, 145, 5, (rgb_led_t *)&led[0]);
+ setrgb(255, 145, 5, (rgb_led_t *)&led[1]);
} else {
- setrgb(0, 0, 0, (LED_TYPE *)&led[0]);
- setrgb(0, 0, 0, (LED_TYPE *)&led[1]);
+ setrgb(0, 0, 0, (rgb_led_t *)&led[0]);
+ setrgb(0, 0, 0, (rgb_led_t *)&led[1]);
}
rgblight_set();
diff --git a/keyboards/thevankeyboards/minivan/keymaps/hvp/config.h b/keyboards/thevankeyboards/minivan/keymaps/hvp/config.h
deleted file mode 100644
index 8b64f40337..0000000000
--- a/keyboards/thevankeyboards/minivan/keymaps/hvp/config.h
+++ /dev/null
@@ -1,4 +0,0 @@
-#pragma once
-
-#define TAPPING_TERM 150
-#define PERMISSIVE_HOLD \ No newline at end of file
diff --git a/keyboards/thevankeyboards/minivan/keymaps/hvp/keymap.c b/keyboards/thevankeyboards/minivan/keymaps/hvp/keymap.c
deleted file mode 100644
index 0600856660..0000000000
--- a/keyboards/thevankeyboards/minivan/keymaps/hvp/keymap.c
+++ /dev/null
@@ -1,54 +0,0 @@
-#include QMK_KEYBOARD_H
-#include "hvp.c"
-
-#define _QW 0
-#define _L1 1
-#define _L2 2
-#define _L3 3
-#define _L4 4
-
-#define LT4_TAB LT(_L4, KC_TAB)
-#define LT3_ESC LT(_L3, KC_ESC)
-
-enum custom_keycodes {
- QW = SAFE_RANGE,
- L1,
- L2,
- L3,
- L4
-};
-
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [_QW] = LAYOUT_arrow( /* Qwerty */
- LT4_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,
- LT3_ESC, KC_A, KC_S, KC_D, LT(3,KC_F), LT(4,KC_G), KC_H, KC_J, KC_K, KC_L, TD(TD1), TD(TD2),
- KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, TD(TD3), SC_SENT,
- KC_LCTL, KC_LGUI, KC_LALT, LT(_L2,KC_ENT), LT(_L1,KC_SPC), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT
- ),
- [_L1] = LAYOUT_arrow( /* LAYER 1 */
- KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC,
- KC_DELETE, _______, _______, _______, _______, _______, _______, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS,
- _______, _______, _______, _______, _______, _______, _______, KC_UNDERSCORE, KC_PLUS, KC_LEFT_CURLY_BRACE, KC_RIGHT_CURLY_BRACE, KC_PIPE,
- _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_PGUP, KC_END
- ),
- [_L2] = LAYOUT_arrow( /* LAYER 2 */
- KC_TILDE, KC_EXCLAIM, KC_AT, KC_HASH, KC_DOLLAR, KC_PERCENT, KC_CIRCUMFLEX, KC_AMPERSAND, KC_ASTERISK, KC_LEFT_PAREN, KC_RIGHT_PAREN, KC_BSPC,
- KC_DELETE, _______, _______, _______, _______, _______, _______, KC_UNDERSCORE, KC_PLUS, KC_LEFT_CURLY_BRACE, KC_RIGHT_CURLY_BRACE, KC_PIPE,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PGUP, _______,
- _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_END
- ),
- [_L3] = LAYOUT_arrow( /* LAYER 3 */
- KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,
- _______, _______, _______, D_NAVI, _______, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, _______, KC_PSCR,
- _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_PGUP, KC_END, _______, _______,
- _______, _______, KC_MUTE, KC_MPLY, KC_MSTP, KC_MPRV, KC_VOLD, KC_VOLU, KC_MNXT
- ),
-
- [_L4] = LAYOUT_arrow( /* LAYER 4 */
- _______, RGB_TOG, RGB_MOD, RGB_RMOD, _______, _______, _______, KC_7, KC_8, KC_9, KC_0, _______,
- _______, RGB_M_P, RGB_HUD, RGB_HUI, _______, _______, _______, KC_4, KC_5, KC_6, _______, _______,
- KC_PSCR, _______, RGB_SAD, RGB_SAI, _______, _______, KC_0, KC_1, KC_2, KC_3, _______, _______,
- QK_BOOT, _______, RGB_VAD, RGB_VAI, _______, _______, _______, _______, _______
- )
-}; \ No newline at end of file
diff --git a/keyboards/thevankeyboards/minivan/keymaps/hvp/readme.md b/keyboards/thevankeyboards/minivan/keymaps/hvp/readme.md
deleted file mode 100644
index 60ee3d6cd0..0000000000
--- a/keyboards/thevankeyboards/minivan/keymaps/hvp/readme.md
+++ /dev/null
@@ -1,10 +0,0 @@
-Keyboard: Minivan 40% keyboard
-Keys: A compact 44% keyboard.
-Layout: Swedish characters on main layer using tap dance. Built for Eurkey keyboard layout.
-Flash instructions: Flash using dfu, will req the hvp user space to compile.
-
-> make make thevankeyboards/minivan:hvp:dfu
-
-Links:
-Github - https://github.com/qmk/qmk_firmware/tree/master/keyboards/thevankeyboards/minivan
-Eurkey layout - https://eurkey.steffen.bruentjen.eu/
diff --git a/keyboards/thevankeyboards/minivan/keymaps/hvp/rules.mk b/keyboards/thevankeyboards/minivan/keymaps/hvp/rules.mk
deleted file mode 100644
index f039e269fa..0000000000
--- a/keyboards/thevankeyboards/minivan/keymaps/hvp/rules.mk
+++ /dev/null
@@ -1,2 +0,0 @@
-RGBLIGHT_ENABLE = no
-TAP_DANCE_ENABLE = yes \ No newline at end of file
diff --git a/keyboards/thevankeyboards/minivan/keymaps/jetpacktuxedo/keymap.c b/keyboards/thevankeyboards/minivan/keymaps/jetpacktuxedo/keymap.c
index ae3619859a..0999c9490c 100644
--- a/keyboards/thevankeyboards/minivan/keymaps/jetpacktuxedo/keymap.c
+++ b/keyboards/thevankeyboards/minivan/keymaps/jetpacktuxedo/keymap.c
@@ -50,8 +50,8 @@ void keyboard_post_init_user(void) {
rgblight_mode_noeeprom(RGBLIGHT_EFFECT_BREATHING + 2);
// Init the first two LEDs to a static color
- setrgb(0, 0, 0, (LED_TYPE *)&led[0]);
- setrgb(0, 0, 0, (LED_TYPE *)&led[1]);
+ setrgb(0, 0, 0, (rgb_led_t *)&led[0]);
+ setrgb(0, 0, 0, (rgb_led_t *)&led[1]);
rgblight_set();
#endif //RGBLIGHT_ENABLE
}
@@ -75,8 +75,8 @@ layer_state_t layer_state_set_user(layer_state_t state){
led1r = 255;
}
- setrgb(led0r, led0g, led0b, (LED_TYPE *)&led[0]);
- setrgb(led1r, led1g, led1b, (LED_TYPE *)&led[1]);
+ setrgb(led0r, led0g, led0b, (rgb_led_t *)&led[0]);
+ setrgb(led1r, led1g, led1b, (rgb_led_t *)&led[1]);
rgblight_set();
#endif //RGBLIGHT_ENABLE
return state;
diff --git a/keyboards/thevankeyboards/minivan/keymaps/josjoha/keymap.c b/keyboards/thevankeyboards/minivan/keymaps/josjoha/keymap.c
index 145da6b2a5..39eb45e15e 100644
--- a/keyboards/thevankeyboards/minivan/keymaps/josjoha/keymap.c
+++ b/keyboards/thevankeyboards/minivan/keymaps/josjoha/keymap.c
@@ -192,8 +192,8 @@ void keyboard_post_init_user (void) {
rgblight_mode_noeeprom (RGBLIGHT_EFFECT_BREATHING + 2);
// Init the first and last LEDs to a static color.
- setrgb (0, 0, 0, (LED_TYPE *)&led[0]); // Led[0] is led 0
- setrgb (0, 0, 0, (LED_TYPE *)&led[2]); // 2nd led
+ setrgb (0, 0, 0, (rgb_led_t *)&led[0]); // Led[0] is led 0
+ setrgb (0, 0, 0, (rgb_led_t *)&led[2]); // 2nd led
// The logic seems to be to establish the effect first, and then toggle it on/off.
# ifdef STARTUP_MID_LED_OFF
@@ -301,8 +301,8 @@ void isolate_rgblight_set (void) {
led2r = 0;
led2g = 0;
led2b = 0;
- setrgb(led0r, led0g, led0b, (LED_TYPE *)&led[0]); // Led 0
- setrgb(led2r, led2g, led2b, (LED_TYPE *)&led[2]); // Led 2
+ setrgb(led0r, led0g, led0b, (rgb_led_t *)&led[0]); // Led 0
+ setrgb(led2r, led2g, led2b, (rgb_led_t *)&led[2]); // Led 2
}
rgblight_set ();
# endif
@@ -326,8 +326,8 @@ void indicate_fun_stay (void) {
led0g = 50; //
led2r = 255; // red
}
- setrgb(led0r, led0g, led0b, (LED_TYPE *)&led[0]); // Led 0
- setrgb(led2r, led2g, led2b, (LED_TYPE *)&led[2]); // Led 2
+ setrgb(led0r, led0g, led0b, (rgb_led_t *)&led[0]); // Led 0
+ setrgb(led2r, led2g, led2b, (rgb_led_t *)&led[2]); // Led 2
isolate_rgblight_set ();
# endif //RGBLIGHT_ENABLE
@@ -369,8 +369,8 @@ void indicate_base (void) {
led2g = 255;
led2b = 255;
}
- setrgb(led0r, led0g, led0b, (LED_TYPE *)&led[0]); // Led 0
- setrgb(led2r, led2g, led2b, (LED_TYPE *)&led[2]); // Led 2
+ setrgb(led0r, led0g, led0b, (rgb_led_t *)&led[0]); // Led 0
+ setrgb(led2r, led2g, led2b, (rgb_led_t *)&led[2]); // Led 2
isolate_rgblight_set ();
# endif //RGBLIGHT_ENABLE
@@ -535,8 +535,8 @@ void set_led_colors_ (layer_state_t state) {
//---
// pushes the configuration
- setrgb (led0r, led0g, led0b, (LED_TYPE *)&led[0]); // Led 0
- setrgb (led2r, led2g, led2b, (LED_TYPE *)&led[2]); // Led 2
+ setrgb (led0r, led0g, led0b, (rgb_led_t *)&led[0]); // Led 0
+ setrgb (led2r, led2g, led2b, (rgb_led_t *)&led[2]); // Led 2
isolate_rgblight_set (); // Activates the led color change, after on/off check.
diff --git a/keyboards/thevankeyboards/minivan/keymaps/talljoe-minivan/config.h b/keyboards/thevankeyboards/minivan/keymaps/talljoe-minivan/config.h
deleted file mode 100644
index 7ecb2353dd..0000000000
--- a/keyboards/thevankeyboards/minivan/keymaps/talljoe-minivan/config.h
+++ /dev/null
@@ -1,65 +0,0 @@
-/* Copyright 2020 Joseph Wasson
- *
- * 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 SPACE_COUNT 2
-
-#define TEMPLATE( \
- K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K2D, \
- K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \
- K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, \
- K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, \
- K40, K41, K42, K44, K45, K46, K48, K49, K4B, K4C \
-) LAYOUT_arrow( \
- K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1D, \
- K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, \
- K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K0D, \
- K41, K49, K42, K44, K46, K3C, K0B, K00, K3D \
-)
-
-#define TEMPLATE_ALT( \
- K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K2D, \
- K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \
- K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, \
- K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, \
- K40, K41, K42, K44, K45, K46, K48, K49, K4B, K4C \
-) LAYOUT_arrow( \
- K00, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1D, \
- K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2C, \
- K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, \
- K41, K49, K42, K44, K46, K48, K49, K4B, K4C \
-)
-
-#define TEMPLATE_ADJUST( \
- K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K2D, \
- K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \
- K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, \
- K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, \
- K40, K41, K42, K44, K45, K46, K48, K49, K4B, K4C \
-) LAYOUT_arrow( \
- K00, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K2D, \
- K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2C, \
- K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, \
- K40, K41, K42, K44, K46, K48, K0B, K0C, K4C \
-)
-
-#define TEMPLATE_RESET LAYOUT_arrow( \
- QK_BOOT, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, QK_BOOT, \
- KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, \
- KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, \
- KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, QK_BOOT)
diff --git a/keyboards/thevankeyboards/minivan/keymaps/talljoe-minivan/keymap.c b/keyboards/thevankeyboards/minivan/keymaps/talljoe-minivan/keymap.c
deleted file mode 100644
index 7812add812..0000000000
--- a/keyboards/thevankeyboards/minivan/keymaps/talljoe-minivan/keymap.c
+++ /dev/null
@@ -1 +0,0 @@
-// This space intentionally left blank
diff --git a/keyboards/thevankeyboards/minivan/keymaps/talljoe-minivan/rules.mk b/keyboards/thevankeyboards/minivan/keymaps/talljoe-minivan/rules.mk
deleted file mode 100644
index a4e40d0ba6..0000000000
--- a/keyboards/thevankeyboards/minivan/keymaps/talljoe-minivan/rules.mk
+++ /dev/null
@@ -1,3 +0,0 @@
-USER_NAME := talljoe
-
-COMMAND_ENABLE = no # Commands for debug and configuration
diff --git a/keyboards/thevankeyboards/minivan/keymaps/tominabox1/keymap.c b/keyboards/thevankeyboards/minivan/keymaps/tominabox1/keymap.c
deleted file mode 100644
index a465da3bdf..0000000000
--- a/keyboards/thevankeyboards/minivan/keymaps/tominabox1/keymap.c
+++ /dev/null
@@ -1,74 +0,0 @@
-#include QMK_KEYBOARD_H
-#include "tominabox1.h"
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- /*
- * |GESC| Q | W | F | P | G | J | L | U | Y | ; | BSPC |
- * | TAB | A | R | S | T | D | H | N | E | I | O | ' |
- * |SHIFT | Z | X | C | V | B | K | M | , | UP | . | / |
- * |CTRL | WIN | ALT | ENTR | SPACE | LFT |DOWN|RGHT|FKEY|
- */
-
- [_BASE] = LAYOUT_arrow_wrapper(
- __________________MINIVAN1_________________,
- __________________MINIVAN2_________________,
- __________________MINIVAN3_________________,
- __________________MINIVAN4_________________
- ),
-
- /*
- * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | DEL |
- * | | | | | | | | _ | + | { | } | PIPE|
- * |SHIFT | | | | | | | |PGDN| UP | ? | / |
- * |CTRL | WIN | ALT | ENTR | SPACE | LFT |DOWN|RGHT|FKEY|
- */
-
- [_LOWER] = LAYOUT_arrow_wrapper(
- _________________LOWER_1___________________,
- _________________LOWER_2___________________,
- __________________MININUM3_________________,
- __________________MININUM4_________________
- ),
-
- /*
- * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | BSPC |
- * | INS | | | | | | | - | = | [ | ] | \ |
- * | | | | | | | | | | | / | |
- * |CTRL | WIN | ALT | ENTR | SPACE | LFT |DOWN|RGHT|FKEY|
- */
-
- [_RAISE] = LAYOUT_arrow_wrapper(
- ___________________RAISE1__________________,
- ___________________RAISE2__________________,
- ___________________RVAN_3__________________,
- ___________________RVAN_4__________________
- ),
-
- /*
- * |REST|EERS| | | | | | | | | | |
- * | | | | | | | | | | | | |
- * | | | | | | | | | | | | |
- * | | | | ENTR | SPACE | | | | |
- */
-
- [_ADJUST] = LAYOUT_arrow_wrapper(
- ___________________ADJST1__________________,
- ___________________ADJST2__________________,
- ___________________ADJVAN3_________________,
- ___________________ADJVAN4_________________
- ),
-
- /*
- * | | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10| |
- * | | | | | | | | | |F11 | F12| |
- * | | | | | | | | | | | | |
- * | | | | | | FKEY | | | |
- */
-
- [_FKEY] = LAYOUT_arrow_wrapper(
- ___________________FKEY1___________________,
- ___________________FKEY2___________________,
- ___________________FVAN_3__________________,
- ___________________FVAN_4__________________
- ),
- };
diff --git a/keyboards/tkc/osav2/keymaps/brandonschlack/config.h b/keyboards/tkc/osav2/keymaps/brandonschlack/config.h
deleted file mode 100644
index e74d93c35f..0000000000
--- a/keyboards/tkc/osav2/keymaps/brandonschlack/config.h
+++ /dev/null
@@ -1,30 +0,0 @@
-/* Copyright 2020 Brandon Schlack
- *
- * 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 USE_LEDS_FOR_LAYERS
-#define STOPLIGHT_LED
-
-#define TOP_LED C7
-#define MIDDLE_LED C6
-#define BOTTOM_LED B6
-
-// #define LED_PIN_FLIP
-#ifdef LED_PIN_FLIP
- #define LED_ON(flag) !flag
-#else
- #define LED_ON(flag) flag
-#endif
diff --git a/keyboards/tkc/osav2/keymaps/brandonschlack/keymap.c b/keyboards/tkc/osav2/keymaps/brandonschlack/keymap.c
deleted file mode 100755
index 4e4d890d06..0000000000
--- a/keyboards/tkc/osav2/keymaps/brandonschlack/keymap.c
+++ /dev/null
@@ -1,243 +0,0 @@
-/* Copyright 2020 Brandon Schlack
- *
- * 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 "brandonschlack.h"
-
-/**
- * Layer Names
- *
- * Layers mostly used for macro keys
- */
-#define _REEDER _M1
-#define _MAIL _M2
-#define _REEDER_FN _M1_FN1
-#define _MAIL_FN _M2_FN1
-
-/**
- * Keycodes & Macros
- */
-#define TG_BASE TO(_BASE)
-#define TG_REDR TO(_REEDER)
-#define TG_MAIL TO(_MAIL)
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-/* Base
- * ┌───┐ ┌───┬───┬───┬───┬───┬───┬───┐         ┌───┬───┬───┬───┬───┬───┬───┬───┐
- * │Ply│ │Esc│! 1│@ 2│# 3│$ 4│% 5│^ 6│         │& 7│* 8│( 9│) 0│_ -│+ =│| \│~ `│
- * ├───┤ ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┘       ┌─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤
- * │VlU│ │Tab  │ Q │ W │ E │ R │ T │         │ Y │ U │ I │ O │ P │{ [│} ]│ Bspc│
- * ├───┤ ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┐        └┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤
- * │VlD│ │HyCaps│ A │ S │ D │ F │ G │         │ H │ J │ K │ L │: ;│" '│   Enter│
- * └───┘ ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┐     ┌─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤
- *       │LShift  │ Z │ X │ C │ V │ B │     │ B │ N │ M │< ,│> .│? /│  Shft│Fn │
- *       ├─────┬──┴──┬┴───┴┬──┴───┴┬──┴─┐   ├───┴───┴──┬┴───┴┬──┴───┴────┬─┴───┤
- *       │Opt  │     │Cmd  │Spc/Lwr│Ctrl│   │   Spc/Rai│  Cmd│           │  Opt│
- *       └─────┘     └─────┴───────┴────┘   └──────────┴─────┘           └─────┘
- */
-[_BASE] = LAYOUT_all(
- KC_MPLY, KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS, KC_GRV,
- KC_VOLU, 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_BSPC,
- KC_VOLD, HY_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_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, LOWER,
- KC_LOPT, KC_LCMD, SPC_LWR, KC_LCTL, SPC_RAI, KC_RCMD, KC_ROPT
-),
-/* Reeder
- * ┌───┐ ┌───┬───┬───┬───┬───┬───┬───┐         ┌───┬───┬───┬───┬───┬───┬───┬───┐
- * │ H │ │   │   │   │   │   │   │   │         │   │   │   │   │   │   │   │   │
- * ├───┤ ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┘       ┌─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤
- * │ K │ │     │   │   │   │   │   │         │   │   │   │   │   │   │   │     │
- * ├───┤ ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┐        └┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤
- * │ J │ │      │   │   │   │   │   │         │   │   │   │   │   │   │        │
- * └───┘ ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┐     ┌─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤
- *       │        │   │   │   │   │   │     │   │   │   │   │   │   │      │   │
- *       ├─────┬──┴──┬┴───┴┬──┴───┴┬──┴─┐   ├───┴───┴──┬┴───┴┬──┴───┴────┬─┴───┤
- *       │     │     │     │       │    │   │          │     │           │     │
- *       └─────┘     └─────┴───────┴────┘   └──────────┴─────┘           └─────┘
- */
-[_REEDER] = LAYOUT_all(
- KC_H, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- KC_K, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- KC_J, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______
-
-),
-/* Mail
- * ┌───┐ ┌───┬───┬───┬───┬───┬───┬───┐         ┌───┬───┬───┬───┬───┬───┬───┬───┐
- * │Del│ │   │   │   │   │   │   │   │         │   │   │   │   │   │   │   │   │
- * ├───┤ ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┘       ┌─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤
- * │It+│ │     │   │   │   │   │   │         │   │   │   │   │   │   │   │     │
- * ├───┤ ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┐        └┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤
- * │It-│ │      │   │   │   │   │   │         │   │   │   │   │   │   │        │
- * └───┘ ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┐     ┌─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤
- *       │        │   │   │   │   │   │     │   │   │   │   │   │   │      │   │
- *       ├─────┬──┴──┬┴───┴┬──┴───┴┬──┴─┐   ├───┴───┴──┬┴───┴┬──┴───┴────┬─┴───┤
- *       │     │     │     │       │    │   │          │     │           │     │
- *       └─────┘     └─────┴───────┴────┘   └──────────┴─────┘           └─────┘
- */
-[_MAIL] = LAYOUT_all(
- G(KC_BSPC), _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- KC_DOWN, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______
-
-),
-/* Lower
- * ┌───┐ ┌───┬───┬───┬───┬───┬───┬───┐         ┌───┬───┬───┬───┬───┬───┬───┬───┐
- * │Mut│ │Mke│ F1│ F2│ F3│ F4│ F5│ F6│         │ F7│ F8│ F9│F10│F11│F12│LHP│SLP│
- * ├───┤ ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┘       ┌─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤
- * │Nxt│ │RMod │RH+│RS+│RV+│Sp+│   │         │   │   │   │   │PgU│Hom│End│  Del│
- * ├───┤ ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┐        └┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤
- * │Prv│ │RTgl  │RH-│RS-│RV-│Sp-│   │         │   │   │Prv│Nxt│PgD│ ↑ │   Play │
- * └───┘ ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┐     ┌─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤
- *       │        │LYR│Thm│   │   │   │     │   │   │   │   │ ← │ ↓ │→ Shft│   │
- *       ├─────┬──┴──┬┴───┴┬──┴───┴┬──┴─┐   ├───┴───┴──┬┴───┴┬──┴───┴────┬─┴───┤
- *       │     │     │     │       │    │   │          │     │           │     │
- *       └─────┘     └─────┴───────┴────┘   └──────────┴─────┘           └─────┘
- */
-[_LOWER] = LAYOUT_all(
- KC_MUTE, QM_MAKE, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, MC_LHPD, MC_SLPD,
- KC_MNXT, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, RGB_SPI, _______, _______, _______, _______, _______, KC_PGUP, KC_HOME, KC_END, KC_DEL,
- KC_MPRV, RGB_TOG, RGB_HUD, RGB_SAD, RGB_VAD, RGB_SPD, _______, _______, _______, KC_MPRV, KC_MNXT, KC_PGDN, KC_UP, KC_MPLY,
- _______, RGB_LYR, RGB_THM, _______, _______, _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, RGT_SFT, _______,
- _______, _______, _______, _______, _______, _______, _______
-
-),
-/* Reeder Function
- * ┌───┐ ┌───┬───┬───┬───┬───┬───┬───┐         ┌───┬───┬───┬───┬───┬───┬───┬───┐
- * │ L │ │   │   │   │   │   │   │   │         │   │   │   │   │   │   │   │   │
- * ├───┤ ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┘       ┌─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤
- * │ P │ │     │   │   │   │   │   │         │   │   │   │   │   │   │   │     │
- * ├───┤ ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┐        └┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤
- * │ N │ │      │   │   │   │   │   │         │   │   │   │   │   │   │        │
- * └───┘ ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┐     ┌─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤
- *       │        │   │   │   │   │   │     │   │   │   │   │   │   │      │   │
- *       ├─────┬──┴──┬┴───┴┬──┴───┴┬──┴─┐   ├───┴───┴──┬┴───┴┬──┴───┴────┬─┴───┤
- *       │     │     │     │       │    │   │          │     │           │     │
- *       └─────┘     └─────┴───────┴────┘   └──────────┴─────┘           └─────┘
- */
-[_REEDER_FN] = LAYOUT_all(
- KC_L, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- KC_P, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- KC_N, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______
-
-),
-/* Mail
- * ┌───┐ ┌───┬───┬───┬───┬───┬───┬───┐         ┌───┬───┬───┬───┬───┬───┬───┬───┐
- * │Del│ │   │   │   │   │   │   │   │         │   │   │   │   │   │   │   │   │
- * ├───┤ ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┘       ┌─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤
- * │It+│ │     │   │   │   │   │   │         │   │   │   │   │   │   │   │     │
- * ├───┤ ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┐        └┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤
- * │It-│ │      │   │   │   │   │   │         │   │   │   │   │   │   │        │
- * └───┘ ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┐     ┌─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤
- *       │        │   │   │   │   │   │     │   │   │   │   │   │   │      │   │
- *       ├─────┬──┴──┬┴───┴┬──┴───┴┬──┴─┐   ├───┴───┴──┬┴───┴┬──┴───┴────┬─┴───┤
- *       │     │     │     │       │    │   │          │     │           │     │
- *       └─────┘     └─────┴───────┴────┘   └──────────┴─────┘           └─────┘
- */
-[_MAIL_FN] = LAYOUT_all(
- KC_BSPC, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- A(G(KC_LBRC)), _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- A(G(KC_RBRC)), _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______
-
-),
-/* Raise
- * ┌───┐ ┌───┬───┬───┬───┬───┬───┬───┐         ┌───┬───┬───┬───┬───┬───┬───┬───┐
- * │   │ │   │   │   │   │   │   │   │         │   │   │   │   │   │   │   │   │
- * ├───┤ ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┘       ┌─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤
- * │   │ │     │   │   │   │   │   │         │   │   │   │   │   │   │   │     │
- * ├───┤ ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┐        └┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤
- * │   │ │      │   │   │   │   │   │         │   │   │   │   │   │   │        │
- * └───┘ ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┐     ┌─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤
- *       │        │   │   │   │   │   │     │   │   │   │   │   │   │      │   │
- *       ├─────┬──┴──┬┴───┴┬──┴───┴┬──┴─┐   ├───┴───┴──┬┴───┴┬──┴───┴────┬─┴───┤
- *       │     │     │     │       │    │   │          │     │           │     │
- *       └─────┘     └─────┴───────┴────┘   └──────────┴─────┘           └─────┘
- */
-[_RAISE] = LAYOUT_all(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______
-
-),
-/* Adjust
- * ┌───┐ ┌───┬───┬───┬───┬───┬───┬───┐         ┌───┬───┬───┬───┬───┬───┬───┬───┐
- * │Bse│ │Mke│   │   │   │   │   │   │         │   │   │   │   │   │   │   │   │
- * ├───┤ ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┘       ┌─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤
- * │Rdr│ │RMod │RH+│RS+│RV+│Sp+│   │         │   │   │   │   │   │   │   │     │
- * ├───┤ ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┐        └┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤
- * │Mai│ │RTgl  │RH-│RS-│RV-│Sp-│   │         │   │   │   │   │   │   │        │
- * └───┘ ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┐     ┌─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤
- *       │        │LYR│Thm│   │EEP│Rst│     │Rst│   │   │   │   │   │      │   │
- *       ├─────┬──┴──┬┴───┴┬──┴───┴┬──┴─┐   ├───┴───┴──┬┴───┴┬──┴───┴────┬─┴───┤
- *       │     │     │     │       │    │   │          │     │           │     │
- *       └─────┘     └─────┴───────┴────┘   └──────────┴─────┘           └─────┘
- */
-[_ADJUST] = LAYOUT_all(
- TG_BASE, QM_MAKE, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- TG_REDR, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- TG_MAIL, RGB_TOG, RGB_HUD, RGB_SAD, RGB_VAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, RGB_LYR, RGB_THM, _______, EE_CLR, QK_BOOT, QK_BOOT, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______
-
-)
-/* Layout
- * ┌───┐ ┌───┬───┬───┬───┬───┬───┬───┐         ┌───┬───┬───┬───┬───┬───┬───┬───┐
- * │   │ │   │   │   │   │   │   │   │         │   │   │   │   │   │   │   │   │
- * ├───┤ ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┘       ┌─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤
- * │   │ │     │   │   │   │   │   │         │   │   │   │   │   │   │   │     │
- * ├───┤ ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┐        └┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤
- * │   │ │      │   │   │   │   │   │         │   │   │   │   │   │   │        │
- * └───┘ ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┐     ┌─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤
- *       │        │   │   │   │   │   │     │   │   │   │   │   │   │      │   │
- *       ├─────┬──┴──┬┴───┴┬──┴───┴┬──┴─┐   ├───┴───┴──┬┴───┴┬──┴───┴────┬─┴───┤
- *       │     │     │     │       │    │   │          │     │           │     │
- *       └─────┘     └─────┴───────┴────┘   └──────────┴─────┘           └─────┘
- */
-/*
-[_BLANK] = LAYOUT(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______
-
-)
-*/
-};
-
-layer_state_t layer_state_set_keymap(layer_state_t state) {
- state = update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST);
- state = update_tri_layer_state(state, _REEDER, _LOWER, _REEDER_FN);
- state = update_tri_layer_state(state, _MAIL, _LOWER, _MAIL_FN);
- return state;
-}
-
-#ifdef USE_LEDS_FOR_LAYERS
-bool led_update_keymap(led_t led_state) {
- writePin(TOP_LED, LED_ON(IS_LAYER_ON(_REEDER) || IS_LAYER_ON(_MAIL))); // Use for Macro Layer
- writePin(MIDDLE_LED, LED_ON(IS_LAYER_ON(_FN1))); // Use for Layer 2
- writePin(BOTTOM_LED, LED_ON(led_state.caps_lock)); // Use for Caps Lock
- return false; // Override default set by KB
-}
-#endif
diff --git a/keyboards/tkc/osav2/keymaps/brandonschlack/rules.mk b/keyboards/tkc/osav2/keymaps/brandonschlack/rules.mk
deleted file mode 100755
index 9c896e0d81..0000000000
--- a/keyboards/tkc/osav2/keymaps/brandonschlack/rules.mk
+++ /dev/null
@@ -1,9 +0,0 @@
-# Build Options
-# comment out to disable the options.
-#
-BACKLIGHT_ENABLE = no
-MOUSEKEY_ENABLE = yes # Mouse keys
-CONSOLE_ENABLE = no # Console for debug
-COMMAND_ENABLE = no # Commands for debug and configuration
-VELOCIKEY_ENABLE = no
-
diff --git a/keyboards/tkc/osav2/keymaps/stanrc85/keymap.c b/keyboards/tkc/osav2/keymaps/stanrc85/keymap.c
deleted file mode 100644
index 18d9edb850..0000000000
--- a/keyboards/tkc/osav2/keymaps/stanrc85/keymap.c
+++ /dev/null
@@ -1,58 +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 QMK_KEYBOARD_H
-#include "stanrc85.h"
-
-
-// Each layer gets a name for readability, which is then used in the keymap matrix below.
-// The underscores don't mean anything - you can have a layer called STUFF or any other name.
-// Layer names don't all need to be of the same length, obviously, and you can also skip them
-// entirely and just use numbers.
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [_QWERTY] = LAYOUT_all(
- KC_ESC, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, _______, KC_BSPC,
- KC_PGUP, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS,
- KC_PGDN, KC_CTLE, 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_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(_FN2_60),
- KC_LCTL, KC_LALT, LT_BPCF, KC_LGUI, LT_SPCF, TD_TWIN, TD_TCTL
- ),
-
- [_DEFAULT] = LAYOUT_all(
- KC_ESC, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, _______, KC_BSPC,
- KC_PGUP, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS,
- KC_PGDN, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
- KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(_FN2_60),
- KC_LCTL, KC_LALT, KC_SPC, MO(_FN1_60), KC_SPC, KC_RALT, KC_RCTL
- ),
-
- [_FN1_60] = LAYOUT_all(
- _______, KC_TILD, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, KC_DEL,
- _______, _______, _______, CA_QUOT, KC_VOLU, CA_SCLN, _______, _______, KC_HOME, KC_UP, KC_END, KC_PSCR, _______, _______, KC_INS,
- _______, KC_CAPS, _______, KC_MUTE, KC_VOLD, KC_MPLY, _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______,
- _______, KC_RDP, _______, _______, _______, _______, _______, _______, KC_WBAK, KC_WFWD, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______
- ),
-
- [_FN2_60] = LAYOUT_all(
- BL_TOGG, RGB_TOG, RGB_MOD, RGB_VAD, RGB_VAI, RGB_SAI, RGB_HUD, RGB_HUI, _______, _______, _______, _______, _______, _______, _______, _______,
- BL_UP, VK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, QK_BOOT,
- BL_DOWN, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MAKE,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, TG(_DEFAULT)
- )
-}; \ No newline at end of file
diff --git a/keyboards/tkc/portico/config.h b/keyboards/tkc/portico/config.h
index c9a25e843c..265e0abbc3 100644
--- a/keyboards/tkc/portico/config.h
+++ b/keyboards/tkc/portico/config.h
@@ -39,17 +39,17 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
# undef ENABLE_RGB_MATRIX_SOLID_MULTISPLASH
# undef ENABLE_RGB_MATRIX_DIGITAL_RAIN
# define RGB_MATRIX_MAXIMUM_BRIGHTNESS 200
-# define DRIVER_ADDR_1 0x74
-# define DRIVER_ADDR_2 0x77
-# define DRIVER_COUNT 2
+# define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND
+# define IS31FL3731_I2C_ADDRESS_2 IS31FL3731_I2C_ADDRESS_VCC
# define DRIVER_1_LED_TOTAL 36
# define DRIVER_2_LED_TOTAL 31
# define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL)
#else
// IS31FL3731 driver
-#define DRIVER_COUNT 2
-#define RGB_MATRIX_LED_COUNT 67
+#define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND
+#define IS31FL3731_I2C_ADDRESS_2 IS31FL3731_I2C_ADDRESS_VCC
+#define IS31FL3731_LED_COUNT 67
#define RGB_BACKLIGHT_ENABLED 1
diff --git a/keyboards/tkc/portico/portico.c b/keyboards/tkc/portico/portico.c
index e41de1c232..bd60df13e2 100644
--- a/keyboards/tkc/portico/portico.c
+++ b/keyboards/tkc/portico/portico.c
@@ -17,9 +17,13 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#include "portico.h"
-#ifdef RGB_MATRIX_ENABLE
+#ifdef RGB_BACKLIGHT_PORTICO
+# include "drivers/led/issi/is31fl3731.h"
+#endif
+
+#if defined(RGB_MATRIX_ENABLE) || defined(RGB_BACKLIGHT_PORTICO)
-const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = {
+const is31fl3731_led_t PROGMEM g_is31fl3731_leds[IS31FL3731_LED_COUNT] = {
{ 0, C2_1, C3_1, C4_1 },
{ 0, C1_1, C3_2, C4_2 },
{ 0, C1_2, C2_2, C4_3 },
@@ -92,7 +96,9 @@ const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = {
{ 1, C9_16, C7_15, C6_15 },
{ 1, C8_16, C7_16, C6_16 }
};
+#endif
+#ifdef RGB_MATRIX_ENABLE
led_config_t g_led_config = {
{
{ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 },
diff --git a/keyboards/tkc/portico/rules.mk b/keyboards/tkc/portico/rules.mk
index 4e382541f4..6bc05372af 100644
--- a/keyboards/tkc/portico/rules.mk
+++ b/keyboards/tkc/portico/rules.mk
@@ -19,4 +19,4 @@ SRC += keyboards/wilba_tech/wt_main.c \
quantum/color.c \
drivers/led/issi/is31fl3731.c
-QUANTUM_LIB_SRC += i2c_master.c
+I2C_DRIVER_REQUIRED = yes
diff --git a/keyboards/tkc/portico68v2/config.h b/keyboards/tkc/portico68v2/config.h
index fd0191d101..2c8ecf806d 100644
--- a/keyboards/tkc/portico68v2/config.h
+++ b/keyboards/tkc/portico68v2/config.h
@@ -17,8 +17,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#pragma once
-#define DRIVER_ADDR_1 0b0110000
-#define DRIVER_COUNT 1
+#define IS31FL3741_I2C_ADDRESS_1 IS31FL3741_I2C_ADDRESS_GND
#define DRIVER_1_LED_TOTAL 82
#define RGB_MATRIX_LED_COUNT DRIVER_1_LED_TOTAL
#define DRIVER_INDICATOR_LED_TOTAL 0
diff --git a/keyboards/tkc/portico68v2/portico68v2.c b/keyboards/tkc/portico68v2/portico68v2.c
index 83a365f7c0..90d8c12fca 100644
--- a/keyboards/tkc/portico68v2/portico68v2.c
+++ b/keyboards/tkc/portico68v2/portico68v2.c
@@ -18,7 +18,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#include "quantum.h"
#ifdef RGB_MATRIX_ENABLE
-const is31_led g_is31_leds[RGB_MATRIX_LED_COUNT] = {
+const is31fl3741_led_t g_is31fl3741_leds[RGB_MATRIX_LED_COUNT] = {
{0, CS18_SW1, CS17_SW1, CS16_SW1}, /* RGB1 */
{0, CS18_SW2, CS17_SW2, CS16_SW2}, /* RGB2 */
{0, CS18_SW3, CS17_SW3, CS16_SW3}, /* RGB3 */
diff --git a/keyboards/tkc/portico75/config.h b/keyboards/tkc/portico75/config.h
index e72c95981b..8146141bf0 100644
--- a/keyboards/tkc/portico75/config.h
+++ b/keyboards/tkc/portico75/config.h
@@ -72,15 +72,14 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
// # define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH
# define RGB_MATRIX_MAXIMUM_BRIGHTNESS 200
-# define DRIVER_ADDR_1 0b0110000
-# define DRIVER_COUNT 1
+# define IS31FL3741_I2C_ADDRESS_1 IS31FL3741_I2C_ADDRESS_GND
# define DRIVER_1_LED_TOTAL 98
# define RGB_MATRIX_LED_COUNT DRIVER_1_LED_TOTAL
# define DRIVER_INDICATOR_LED_TOTAL 0
#else
// WT_RGB IS31FL3741 driver code
-# define DRIVER_COUNT 1
-# define RGB_MATRIX_LED_COUNT 98
+# define IS31FL3741_I2C_ADDRESS_1 IS31FL3741_I2C_ADDRESS_GND
+# define IS31FL3741_LED_COUNT 98
# define RGB_BACKLIGHT_ENABLED 1
diff --git a/keyboards/tkc/portico75/keymaps/via/rules.mk b/keyboards/tkc/portico75/keymaps/via/rules.mk
index 3e4e4a229d..1706771222 100644
--- a/keyboards/tkc/portico75/keymaps/via/rules.mk
+++ b/keyboards/tkc/portico75/keymaps/via/rules.mk
@@ -9,4 +9,4 @@ SRC += keyboards/wilba_tech/wt_main.c \
quantum/color.c \
drivers/led/issi/is31fl3741.c
-QUANTUM_LIB_SRC += i2c_master.c
+I2C_DRIVER_REQUIRED = yes
diff --git a/keyboards/tkc/portico75/portico75.c b/keyboards/tkc/portico75/portico75.c
index 568f75901f..0a22a37d4e 100644
--- a/keyboards/tkc/portico75/portico75.c
+++ b/keyboards/tkc/portico75/portico75.c
@@ -18,9 +18,13 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#include "portico75.h"
-#ifdef RGB_MATRIX_ENABLE
+#ifdef RGB_BACKLIGHT_PORTICO75
+# include "drivers/led/issi/is31fl3741.h"
+#endif
-const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = {
+#if defined(RGB_MATRIX_ENABLE) || defined(RGB_BACKLIGHT_PORTICO75)
+
+const is31fl3741_led_t PROGMEM g_is31fl3741_leds[IS31FL3741_LED_COUNT] = {
{0, CS18_SW1, CS17_SW1, CS16_SW1},
{0, CS18_SW2, CS17_SW2, CS16_SW2},
{0, CS18_SW3, CS17_SW3, CS16_SW3},
@@ -134,8 +138,10 @@ const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = {
{0, CS33_SW5, CS32_SW5, CS31_SW5},
{0, CS33_SW6, CS32_SW6, CS31_SW6},
{0, CS33_SW7, CS32_SW7, CS31_SW7},
-
};
+#endif
+
+#ifdef RGB_MATRIX_ENABLE
led_config_t g_led_config = { {
{ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14},
{ 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29},
diff --git a/keyboards/tkc/tkc1800/keymaps/yanfali/keymap.c b/keyboards/tkc/tkc1800/keymaps/yanfali/keymap.c
deleted file mode 100644
index df8f2b9caf..0000000000
--- a/keyboards/tkc/tkc1800/keymaps/yanfali/keymap.c
+++ /dev/null
@@ -1,90 +0,0 @@
-/* Copyright 2017 Mathias Andersson <wraul@dbox.se>
- *
- * 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
-
-//Layers
-
-enum {
- BASE = 0,
- FUNCTION,
-};
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- /* Keymap BASE: (Base Layer) Default Layer
- * ,-------------------------------------------------------. ,-------------------.
- * |Esc| F1| F2| F3| F4| | F5| F6| F7| F8| | F9|F10|F11|F12| |Ins |Home|PgUp|PrSc|
- * `-------------------------------------------------------' |-------------------|
- * |Del |End |PgDn|ScrL|
- * ,-----------------------------------------------------------. |-------------------|
- * | ~ | 1 | 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|Backsp | |NumL| / | * |Paus|
- * |-----------------------------------------------------------| |-------------------|
- * |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \ | | 7 | 8 | 9 | - |
- * |-----------------------------------------------------------| |-------------------|
- * |CAPS | A| S| D| F| G| H| J| K| L| ;| '|Return | | 4 | 5 | 6 | + |
- * |-----------------------------------------------------------' |-------------------|
- * |Shift | Z| X| C| V| B| N| M| ,| .| /|Shift | Up | 1 | 2 | 3 | Ent|
- * |--------------------------------------------------------'----`--------------| |
- * |Ctrl|Gui |Alt | Space |Alt |Gui|Ctr|Left |Down|Rght| 0 | . | |
- * `---------------------------------------------------------------------------------'
- */
- [BASE] = 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_INS, KC_HOME, KC_PGUP, KC_PSCR,
- KC_DEL, KC_END, KC_PGDN, KC_SCRL,
- 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, XXXXXXX, KC_NUM, KC_PSLS, KC_PAST, KC_PAUS,
- 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_P7, KC_P8, KC_P9, KC_PMNS,
- LCTL_T(KC_ESC), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, XXXXXXX, KC_ENT, KC_P4, KC_P5, KC_P6, KC_PPLS,
- KC_LSFT, XXXXXXX, 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_P1, KC_P2, KC_P3, XXXXXXX,
- KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_RALT, MO(FUNCTION), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT, KC_PENT
- ),
- [FUNCTION] = LAYOUT(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, QK_BOOT, XXXXXXX, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, XXXXXXX, _______, _______, _______, _______, _______,
- _______, XXXXXXX, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, _______, _______, _______, XXXXXXX,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
- ),
-};
-
-#ifdef OLED_ENABLE
-bool oled_task_user(void) {
- oled_write_P(PSTR("TKC1800\n"),false);
- // Host Keyboard Layer Status
- oled_write_P(PSTR("Layer: "), false);
-
- switch (get_highest_layer(layer_state)) {
- case BASE:
- oled_write_P(PSTR("Base\n"), false);
- break;
- case FUNCTION:
- oled_write_P(PSTR("Function\n"), false);
- break;
- default:
- // Or use the write_ln shortcut over adding '\n' to the end of your string
- oled_write_ln_P(PSTR("Undefined"), false);
- }
-
- // Host Keyboard LED Status
- led_t led_state = host_keyboard_led_state();
- oled_write_P(led_state.num_lock ? PSTR("NUM ") : PSTR(" "), false);
- oled_write_P(led_state.caps_lock ? PSTR("CAP ") : PSTR(" "), false);
- oled_write_P(led_state.scroll_lock ? PSTR("SCR ") : PSTR(" "), false);
-
- return false;
-}
-#endif
diff --git a/keyboards/tkc/tkc1800/keymaps/yanfali/rules.mk b/keyboards/tkc/tkc1800/keymaps/yanfali/rules.mk
deleted file mode 100644
index 517f469b6d..0000000000
--- a/keyboards/tkc/tkc1800/keymaps/yanfali/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-OLED_ENABLE = no
diff --git a/keyboards/tkw/grandiceps/rev2/info.json b/keyboards/tkw/grandiceps/rev2/info.json
index 786f381c4f..cd80948196 100644
--- a/keyboards/tkw/grandiceps/rev2/info.json
+++ b/keyboards/tkw/grandiceps/rev2/info.json
@@ -2,5 +2,8 @@
"keyboard_name": "Grandiceps Split rev2",
"usb": {
"device_version": "0.0.2"
+ },
+ "eeprom": {
+ "driver": "i2c"
}
}
diff --git a/keyboards/tkw/grandiceps/rev2/rules.mk b/keyboards/tkw/grandiceps/rev2/rules.mk
index 3e82c4507e..20f2871924 100644
--- a/keyboards/tkw/grandiceps/rev2/rules.mk
+++ b/keyboards/tkw/grandiceps/rev2/rules.mk
@@ -1,4 +1,2 @@
-EEPROM_DRIVER = i2c
-
POINTING_DEVICE_ENABLE = yes
POINTING_DEVICE_DRIVER = pimoroni_trackball
diff --git a/keyboards/tmo50/keymaps/talljoe/config.h b/keyboards/tmo50/keymaps/talljoe/config.h
deleted file mode 100644
index 53d593385f..0000000000
--- a/keyboards/tmo50/keymaps/talljoe/config.h
+++ /dev/null
@@ -1,33 +0,0 @@
-/* Copyright 2020 Joseph Wasson
- *
- * 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 SPACE_COUNT 2
-
-#define TEMPLATE_TKL(\
- KESC, KF01, KF02, KF03, KF04, KF05, KF06, KF07, KF08, KF09, KF10, KF11, KF12, KSCL, KPRS, KADJ, \
- KGRV, K_1 , K_2 , K_3 , K_4 , K_5 , K_6 , K_7 , K_8 , K_9 , K_0 , KMIN, KEQL, KBLS, KINS, KHOM, KPUP, \
- KTAB, K_Q , K_W , K_E , K_R , K_T , K_Y , K_U , K_I , K_O , K_P , KLBR, KRBR, KBSP, KDEL, KEND, LPDN, \
- KCAP, K_A , K_S , K_D , K_F , K_G , K_H , K_J , K_K , K_L , KSMI, KQUO, KENT, \
- KLSH, K_Z , K_X , K_C , K_V , K_B , K_N , K_M , KCMA, KDOT, KSLS, KRSH, K_UP, \
- KLCT, KLOS, KLAL, KSP2, KSP3, KSP1, KRAL, KROS, KRCT, KPTT, K_LT, K_DN, K_RT \
-) LAYOUT_all( \
- KF01, KTAB, K_Q , K_W , K_E , K_R , K_T , K_Y , K_U , K_I , K_O , K_P , KLBR, KRBR, KBSP, \
- KF02, KCAP, K_A , K_S , K_D , K_F , K_G , K_H , K_J , K_K , K_L , KSMI, KQUO, KENT, \
- KF03, KLSH, K_Z , K_X , K_C , K_V , K_B , K_N , K_M , KCMA, KDOT, KSLS, KRSH, KADJ, \
- KF04, KLOS, KLAL, KSP2, KSP1, KRAL, KESC \
-)
diff --git a/keyboards/tmo50/keymaps/talljoe/keymap.c b/keyboards/tmo50/keymaps/talljoe/keymap.c
deleted file mode 100644
index fa6523992e..0000000000
--- a/keyboards/tmo50/keymaps/talljoe/keymap.c
+++ /dev/null
@@ -1,44 +0,0 @@
-#include "quantum.h"
-#include "talljoe.h"
-
-bool process_indicator_led_user(uint32_t state){
- return false;
-}
-
-#define LED_MASK (_BV(PB0) | _BV(PB1) | _BV(PB2) | _BV(PB3))
-#define WHITE (_BV(PB0))
-#define YELLOW (_BV(PB1))
-#define MAGENTA (_BV(PB2))
-#define RED (_BV(PB3))
-
-void matrix_scan_keymap(void) {
- uint32_t lights = WHITE;
-
- switch(get_highest_layer(layer_state))
- {
- case _NAV:
- lights |= YELLOW;
- break;
- case _NUM:
- lights |= MAGENTA;
- break;
- case _ADJUST:
- lights |= RED;
- break;
- default: {
- uint8_t default_layer = get_highest_layer(default_layer_state);
- lights = 0; // no white LED by default.
- if(default_layer & 1)
- lights |= YELLOW;
- if(default_layer & 2)
- lights |= MAGENTA;
- if(default_layer & 4)
- lights |= RED;
- }
- }
-
- uint32_t port = PORTB;
- port |= LED_MASK;
- port &= ~lights;
- PORTB = port;
-}
diff --git a/keyboards/tominabox1/le_chiffre/keymaps/default/keymap.c b/keyboards/tominabox1/le_chiffre/keymaps/default/keymap.c
index 7008550f2b..8b981c6d75 100644
--- a/keyboards/tominabox1/le_chiffre/keymaps/default/keymap.c
+++ b/keyboards/tominabox1/le_chiffre/keymaps/default/keymap.c
@@ -88,115 +88,68 @@ combo_t key_combos[] = {
};
#endif
-#ifdef OLED_ENABLE // Special thanks to Sickbabies for this great OLED widget!
-oled_rotation_t oled_init_user(oled_rotation_t rotation) {
- return OLED_ROTATION_90; // rotates for proper orientation
-}
-
-void render_lechiffre_logo(void) {
- static const char PROGMEM lechiffre_logo[] = {
- // 'lechiffre_logo', 32x20px
- 0x00, 0x3e, 0x20, 0x20, 0x00, 0x18, 0x2c, 0xa8, 0x80, 0x00, 0x1c, 0x22, 0x22, 0x00, 0x3e, 0x08,
- 0x30, 0x00, 0x34, 0x00, 0x3c, 0x0a, 0x00, 0xbc, 0x8a, 0x00, 0x38, 0x08, 0x00, 0x18, 0x2c, 0x28,
- 0x00, 0xb6, 0xb6, 0x00, 0xdb, 0xdb, 0x00, 0x6d, 0x6d, 0x00, 0xdb, 0xdb, 0x00, 0xdb, 0xdb, 0x00,
- 0x00, 0xdb, 0xdb, 0x00, 0xdb, 0xdb, 0x00, 0x6d, 0x6d, 0x00, 0xdb, 0xdb, 0x00, 0xb6, 0xb6, 0x00,
- 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x06, 0x06, 0x06, 0x00, 0x06, 0x06, 0x06, 0x06, 0x06, 0x00,
- 0x00, 0x06, 0x06, 0x06, 0x06, 0x06, 0x00, 0x06, 0x06, 0x06, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00};
-
- oled_write_raw_P(lechiffre_logo, sizeof(lechiffre_logo));
-}
-
-static void render_layer_status(void) {
- oled_write_P(PSTR("-----"), false);
- switch (get_highest_layer(layer_state)) {
- case _BASE:
- oled_write_ln_P(PSTR("BASE"), false);
- break;
- case _NUM_SYM:
- oled_write_ln_P(PSTR(" SYM"), false);
- break;
- case _NAV:
- oled_write_ln_P(PSTR(" NAV"), false);
- break;
- default:
- oled_write_ln_P(PSTR("?????"), false);
- }
-}
-
-# define KEYLOG_LEN 11
-char keylog_str[KEYLOG_LEN] = {};
-uint8_t keylogs_str_idx = 0;
-uint16_t log_timer = 0;
-
-const char code_to_name[60] = {
- ' ', ' ', ' ', ' ', 'a', 'b', 'c', 'd', 'e', 'f',
- 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p',
- 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z',
- '1', '2', '3', '4', '5', '6', '7', '8', '9', '0',
- 'R', 'E', 'B', 'T', '_', '-', '=', '[', ']', '\\',
- '#', ';', '\'', '`', ',', '.', '/', ' ', ' ', ' '};
-
-void add_keylog(uint16_t keycode) {
- if ((keycode >= QK_MOD_TAP && keycode <= QK_MOD_TAP_MAX) || (keycode >= QK_LAYER_TAP && keycode <= QK_LAYER_TAP_MAX)) {
- keycode = keycode & 0xFF;
- }
-
- for (uint8_t i = KEYLOG_LEN - 1; i > 0; i--) {
- keylog_str[i] = keylog_str[i - 1];
- }
- if (keycode < 60) {
- keylog_str[0] = code_to_name[keycode];
- }
- keylog_str[KEYLOG_LEN - 1] = 0;
-
- log_timer = timer_read();
-}
-
-void update_log(void) {
- if (timer_elapsed(log_timer) > 750) {
- add_keylog(0);
- }
-}
-
-// Text only renders
-void render_keylogger_status(void) {
- oled_write_P(PSTR("-----"), false);
- oled_write(keylog_str, false);
-}
-
-void render_keylock_status(led_t led_state) {
- oled_write_P(PSTR("-----"), false);
- oled_write_P(PSTR("C"), led_state.caps_lock);
- oled_write_P(PSTR(" "), false);
- oled_write_P(PSTR("N"), led_state.num_lock);
- oled_write_P(PSTR(" "), false);
- oled_write_P(PSTR("S"), led_state.scroll_lock);
- // oled_write_ln_P(PSTR(" "), false);
-}
+#ifdef OLED_ENABLE
+
+// Add additional layer names here if desired. Only first 5 characters will be copied to display.
+const char PROGMEM layer_base[] = "BASE";
+const char PROGMEM layer_num_sym[] = " SYM";
+const char PROGMEM layer_nav[] = " NAV";
+// Add layer name variables to array here. Make sure these are in order.
+const char* const PROGMEM layer_names[] = {
+ layer_base,
+ layer_num_sym,
+ layer_nav
+};
-void render_mod_status(uint8_t modifiers) {
- oled_write_P(PSTR("-----"), false);
- oled_write_ln_P(PSTR("SHFT"), (modifiers & MOD_MASK_SHIFT));
- oled_write_ln_P(PSTR("ALT"), (modifiers & MOD_MASK_ALT));
- oled_write_ln_P(PSTR("CTRL"), (modifiers & MOD_MASK_CTRL));
- oled_write_ln_P(PSTR("GUI"), (modifiers & MOD_MASK_GUI));
-}
+static char oled_layer_buf[] = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
+static layer_state_t top_layer_cache;
+/* BEGIN STANDARD QMK FUNCTIONS */
bool oled_task_user(void) {
- render_lechiffre_logo();
+ oled_write_raw_P(lechiffre_logo, sizeof(lechiffre_logo));
+ // Renders the current keyboard state (layer, lock, caps, scroll, etc);
oled_set_cursor(0, 3);
- render_layer_status(); // Renders the current keyboard state (layer, lock, caps, scroll, etc)
+ oled_write_P(oled_section_break, false);
+ render_layer_status(oled_layer_buf);
+ oled_write_P(oled_section_break, false);
render_mod_status(get_mods() | get_oneshot_mods());
+ oled_write_P(oled_section_break, false);
render_keylock_status(host_keyboard_led_state());
+ oled_write_P(oled_section_break, false);
render_keylogger_status();
return false;
}
-bool process_record_user(uint16_t keycode, keyrecord_t *record) {
+bool process_record_user(uint16_t keycode, keyrecord_t* record) {
if (record->event.pressed) {
- add_keylog(keycode);
+ add_keylog(keycode, record);
}
+
return true;
}
+
+// If we don't force an update during initialization, the layer name buffer will start out blank.
+layer_state_t default_layer_state_set_user(layer_state_t state) {
+ update_layer_namebuf(get_highest_layer(state), true);
+ return state;
+}
+layer_state_t layer_state_set_user(layer_state_t state) {
+ update_layer_namebuf(get_highest_layer(state | default_layer_state), false);
+ return state;
+}
+
+/* END STANDARD QMK FUNCTIONS */
+/* BEGIN CUSTOM HELPER FUNCTION FOR OLED */
+// Avoid excessive copying by only updating the layer name buffer when the layer changes
+void update_layer_namebuf(layer_state_t layer, bool force_update) {
+ if (force_update || layer != top_layer_cache) {
+ top_layer_cache = layer;
+ if (layer < ARRAY_SIZE(layer_names)) {
+ memcpy_P(oled_layer_buf, pgm_read_ptr(&layer_names[layer]), ARRAY_SIZE(oled_layer_buf) - 1);
+ } else {
+ memcpy(oled_layer_buf, get_u8_str(layer, ' '), ARRAY_SIZE(oled_layer_buf) - 1);
+ }
+ }
+}
#endif
diff --git a/keyboards/tominabox1/le_chiffre/keymaps/via/keymap.c b/keyboards/tominabox1/le_chiffre/keymaps/via/keymap.c
index 2592ee5dc1..54d4f38c71 100644
--- a/keyboards/tominabox1/le_chiffre/keymaps/via/keymap.c
+++ b/keyboards/tominabox1/le_chiffre/keymaps/via/keymap.c
@@ -32,106 +32,17 @@ const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = {
};
#endif
-#ifdef OLED_ENABLE // Special thanks to Sickbabies for this great OLED widget!
-oled_rotation_t oled_init_user(oled_rotation_t rotation) {
- return OLED_ROTATION_90; // rotates for proper orientation
-}
-
-void render_lechiffre_logo(void) {
- static const char PROGMEM lechiffre_logo[] = {
- // 'lechiffre_logo', 32x20px
- 0x00, 0x3e, 0x20, 0x20, 0x00, 0x18, 0x2c, 0xa8, 0x80, 0x00, 0x1c, 0x22, 0x22, 0x00, 0x3e, 0x08,
- 0x30, 0x00, 0x34, 0x00, 0x3c, 0x0a, 0x00, 0xbc, 0x8a, 0x00, 0x38, 0x08, 0x00, 0x18, 0x2c, 0x28,
- 0x00, 0xb6, 0xb6, 0x00, 0xdb, 0xdb, 0x00, 0x6d, 0x6d, 0x00, 0xdb, 0xdb, 0x00, 0xdb, 0xdb, 0x00,
- 0x00, 0xdb, 0xdb, 0x00, 0xdb, 0xdb, 0x00, 0x6d, 0x6d, 0x00, 0xdb, 0xdb, 0x00, 0xb6, 0xb6, 0x00,
- 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x06, 0x06, 0x06, 0x00, 0x06, 0x06, 0x06, 0x06, 0x06, 0x00,
- 0x00, 0x06, 0x06, 0x06, 0x06, 0x06, 0x00, 0x06, 0x06, 0x06, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00};
-
- oled_write_raw_P(lechiffre_logo, sizeof(lechiffre_logo));
-}
-
-// static void render_layer_status(void) {
-// oled_write_P(PSTR("-----"), false);
-// switch (get_highest_layer(layer_state)) {
-// case _BASE:
-// oled_write_ln_P(PSTR("BASE"), false);
-// break;
-// case _NUM_SYM:
-// oled_write_ln_P(PSTR(" SYM"), false);
-// break;
-// case _NAV:
-// oled_write_ln_P(PSTR(" NAV"), false);
-// break;
-// default:
-// oled_write_ln_P(PSTR("?????"), false);
-// }
-// }
-
-# define KEYLOG_LEN 11
-char keylog_str[KEYLOG_LEN] = {};
-uint8_t keylogs_str_idx = 0;
-uint16_t log_timer = 0;
-
-const char code_to_name[60] = {
- ' ', ' ', ' ', ' ', 'a', 'b', 'c', 'd', 'e', 'f',
- 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p',
- 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z',
- '1', '2', '3', '4', '5', '6', '7', '8', '9', '0',
- 'R', 'E', 'B', 'T', '_', '-', '=', '[', ']', '\\',
- '#', ';', '\'', '`', ',', '.', '/', ' ', ' ', ' '};
-
-void add_keylog(uint16_t keycode) {
- if ((keycode >= QK_MOD_TAP && keycode <= QK_MOD_TAP_MAX) || (keycode >= QK_LAYER_TAP && keycode <= QK_LAYER_TAP_MAX)) {
- keycode = keycode & 0xFF;
- }
-
- for (uint8_t i = KEYLOG_LEN - 1; i > 0; i--) {
- keylog_str[i] = keylog_str[i - 1];
- }
- if (keycode < 60) {
- keylog_str[0] = code_to_name[keycode];
- }
- keylog_str[KEYLOG_LEN - 1] = 0;
-
- log_timer = timer_read();
-}
-
-void update_log(void) {
- if (timer_elapsed(log_timer) > 750) {
- add_keylog(0);
- }
-}
-
-// Text only renders
-void render_keylogger_status(void) {
- oled_write_P(PSTR("-----"), false);
- oled_write(keylog_str, false);
-}
-
-void render_keylock_status(led_t led_state) {
- oled_write_P(PSTR("-----"), false);
- oled_write_P(PSTR("C"), led_state.caps_lock);
- oled_write_P(PSTR(" "), false);
- oled_write_P(PSTR("N"), led_state.num_lock);
- oled_write_P(PSTR(" "), false);
- oled_write_P(PSTR("S"), led_state.scroll_lock);
- // oled_write_ln_P(PSTR(" "), false);
-}
-
-void render_mod_status(uint8_t modifiers) {
- oled_write_P(PSTR("-----"), false);
- oled_write_ln_P(PSTR("SHFT"), (modifiers & MOD_MASK_SHIFT));
- oled_write_ln_P(PSTR("ALT"), (modifiers & MOD_MASK_ALT));
- oled_write_ln_P(PSTR("CTRL"), (modifiers & MOD_MASK_CTRL));
- oled_write_ln_P(PSTR("GUI"), (modifiers & MOD_MASK_GUI));
-}
-
+#ifdef OLED_ENABLE
bool oled_task_user(void) {
- render_lechiffre_logo();
+ oled_write_raw_P(lechiffre_logo, sizeof(lechiffre_logo));
oled_set_cursor(0, 3);
- // render_layer_status(); // Renders the current keyboard state (layer, lock, caps, scroll, etc)
+ oled_write_P(oled_section_break, false);
+ render_layer_status(get_u8_str(get_highest_layer(layer_state | default_layer_state), ' '));
+ oled_write_P(oled_section_break, false);
render_mod_status(get_mods() | get_oneshot_mods());
+ oled_write_P(oled_section_break, false);
render_keylock_status(host_keyboard_led_state());
+ oled_write_P(oled_section_break, false);
render_keylogger_status();
return false;
@@ -139,8 +50,9 @@ bool oled_task_user(void) {
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
if (record->event.pressed) {
- add_keylog(keycode);
+ add_keylog(keycode, record);
}
+
return true;
}
#endif
diff --git a/keyboards/tominabox1/le_chiffre/le_chiffre.c b/keyboards/tominabox1/le_chiffre/le_chiffre.c
new file mode 100644
index 0000000000..e33112edad
--- /dev/null
+++ b/keyboards/tominabox1/le_chiffre/le_chiffre.c
@@ -0,0 +1,123 @@
+// Copyright 2020 tominabox1 (@tominabox1)
+// Copyright 2019 @foostan
+// Copyright 2020 Drashna Jaelre <@drashna>
+// Copyright 2023 QMK Contributors <@qmk>
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#include "quantum.h"
+#include "le_chiffre.h"
+
+#if defined(OLED_ENABLE) // Special thanks to Sickbabies for this great OLED widget!
+
+/* CONSTANTS */
+const char PROGMEM code_to_name[53] = {
+ 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j',
+ 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't',
+ 'u', 'v', 'w', 'x', 'y', 'z', '1', '2', '3', '4',
+ '5', '6', '7', '8', '9', '0', 'R', 'E', 'B', 'T',
+ '_', '-', '=', '[', ']', '\\', '#', ';', '\'', '`',
+ ',', '.', '/'
+};
+
+const char PROGMEM lechiffre_logo[96] = {
+ // 'lechiffre_logo', 32x20px
+ 0x00, 0x3e, 0x20, 0x20, 0x00, 0x18, 0x2c, 0xa8, 0x80, 0x00, 0x1c, 0x22, 0x22, 0x00, 0x3e, 0x08,
+ 0x30, 0x00, 0x34, 0x00, 0x3c, 0x0a, 0x00, 0xbc, 0x8a, 0x00, 0x38, 0x08, 0x00, 0x18, 0x2c, 0x28,
+ 0x00, 0xb6, 0xb6, 0x00, 0xdb, 0xdb, 0x00, 0x6d, 0x6d, 0x00, 0xdb, 0xdb, 0x00, 0xdb, 0xdb, 0x00,
+ 0x00, 0xdb, 0xdb, 0x00, 0xdb, 0xdb, 0x00, 0x6d, 0x6d, 0x00, 0xdb, 0xdb, 0x00, 0xb6, 0xb6, 0x00,
+ 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x06, 0x06, 0x06, 0x00, 0x06, 0x06, 0x06, 0x06, 0x06, 0x00,
+ 0x00, 0x06, 0x06, 0x06, 0x06, 0x06, 0x00, 0x06, 0x06, 0x06, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00
+};
+
+const char PROGMEM oled_section_break[6] = OLED_SECTION_BREAK;
+/* END CONSTANTS */
+
+/* TRACKERS */
+static char keylog_str[KEYLOG_LEN] = {};
+static uint16_t log_timer = 0;
+/* END TRACKERS */
+
+/* BEGIN STANDARD QMK FUNCTIONS */
+
+oled_rotation_t oled_init_kb(oled_rotation_t rotation) {
+ return OLED_ROTATION_90;
+}
+
+bool oled_task_kb(void) {
+ if (!oled_task_user()) {
+ return false;
+ }
+ oled_write_raw_P(lechiffre_logo, sizeof(lechiffre_logo));
+ oled_set_cursor(0, 3);
+ oled_write_P(oled_section_break, false);
+ render_layer_status(get_u8_str(get_highest_layer(layer_state | default_layer_state), ' '));
+ oled_write_P(oled_section_break, false);
+ render_mod_status(get_mods() | get_oneshot_mods());
+ oled_write_P(oled_section_break, false);
+ render_keylock_status(host_keyboard_led_state());
+ return true;
+}
+
+/* END STANDARD QMK FUNCTIONS */
+/* BEGIN CUSTOM HELPER FUNCTIONS FOR OLED */
+
+/**
+ * Sickbabies deserves credit for the original OLED implementation,
+ * however most of the keylogging code appears to have been lifted from crkbd
+ * -- which is why @foostan and @drashna are now credited here as well.
+ *
+ * Improvements were lifted from crkbd again in 2023, with gratitude.
+ */
+void add_keylog(uint16_t keycode, keyrecord_t *record) {
+ if (IS_QK_MOD_TAP(keycode) && record->tap.count) {
+ keycode = QK_MOD_TAP_GET_TAP_KEYCODE(keycode);
+ } else if (IS_QK_LAYER_TAP(keycode) && record->tap.count) {
+ keycode = QK_LAYER_TAP_GET_TAP_KEYCODE(keycode);
+ } else if (IS_QK_MODS(keycode)) {
+ keycode = QK_MODS_GET_BASIC_KEYCODE(keycode);
+ }
+
+ if (keycode >= KC_A && keycode < KC_CAPS) {
+ keycode -= KC_A; // shift to first letter of alphabet
+ for (uint8_t i = KEYLOG_LEN - 1; i > 0; i--) {
+ keylog_str[i] = keylog_str[i - 1];
+ }
+ keylog_str[0] = pgm_read_byte(&(code_to_name[keycode]));
+ keylog_str[KEYLOG_LEN - 1] = 0x00;
+ }
+
+ log_timer = timer_read();
+}
+
+void render_keylock_status(led_t led_state) {
+ oled_write_P(PSTR("C"), led_state.caps_lock);
+ oled_advance_char();
+ oled_write_P(PSTR("N"), led_state.num_lock);
+ oled_advance_char();
+ oled_write_P(PSTR("S"), led_state.scroll_lock);
+}
+
+void render_keylogger_status(void) {
+ // zero out log after 30s idle time
+ if (strlen(keylog_str) > 0 && timer_elapsed(log_timer) > 30000) {
+ keylog_str[0] = 0x00;
+ oled_advance_page(true);
+ oled_advance_page(true);
+ }
+ oled_write(keylog_str, false);
+}
+
+void render_layer_status(const char* layer_name) {
+ oled_write(layer_name, false);
+ if (strlen(layer_name) < oled_max_chars()) {
+ oled_advance_page(true);
+ }
+}
+
+void render_mod_status(uint8_t modifiers) {
+ oled_write_ln_P(PSTR("SHFT"), (modifiers & MOD_MASK_SHIFT));
+ oled_write_ln_P(PSTR("ALT"), (modifiers & MOD_MASK_ALT));
+ oled_write_ln_P(PSTR("CTRL"), (modifiers & MOD_MASK_CTRL));
+ oled_write_ln_P(PSTR("GUI"), (modifiers & MOD_MASK_GUI));
+}
+#endif // OLED_ENABLE
diff --git a/keyboards/tominabox1/le_chiffre/le_chiffre.h b/keyboards/tominabox1/le_chiffre/le_chiffre.h
new file mode 100644
index 0000000000..5bbcbf51cf
--- /dev/null
+++ b/keyboards/tominabox1/le_chiffre/le_chiffre.h
@@ -0,0 +1,17 @@
+// Copyright 2020 tominabox1 (@tominabox1) and sickbabies
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#pragma once
+
+#define KEYLOG_LEN 11
+
+extern const char PROGMEM code_to_name[53];
+extern const char PROGMEM lechiffre_logo[96];
+extern const char PROGMEM oled_section_break[6];
+
+void add_keylog(uint16_t keycode, keyrecord_t* record);
+void render_keylock_status(led_t led_state);
+void render_keylogger_status(void);
+void render_layer_status(const char* layer_name);
+void render_mod_status(uint8_t modifiers);
+void update_layer_namebuf(layer_state_t layer, bool force_update);
diff --git a/keyboards/tominabox1/le_chiffre/post_config.h b/keyboards/tominabox1/le_chiffre/post_config.h
new file mode 100644
index 0000000000..181004038e
--- /dev/null
+++ b/keyboards/tominabox1/le_chiffre/post_config.h
@@ -0,0 +1,14 @@
+// Copyright 2023 The QMK Community (@qmk)
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#pragma once
+
+#if defined(OLED_ENABLE)
+# if !defined(OLED_UPDATE_INTERVAL)
+# define OLED_UPDATE_INTERVAL 5
+# endif
+
+# if !defined(OLED_SECTION_BREAK)
+# define OLED_SECTION_BREAK "-----"
+# endif
+#endif
diff --git a/keyboards/torn/keymaps/manna-harbour_miryoku/config.h b/keyboards/torn/keymaps/manna-harbour_miryoku/config.h
deleted file mode 100644
index a71d199fb8..0000000000
--- a/keyboards/torn/keymaps/manna-harbour_miryoku/config.h
+++ /dev/null
@@ -1,19 +0,0 @@
-// Copyright 2019 Manna Harbour
-// https://github.com/manna-harbour/miryoku
-
-// 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 LAYOUT_miryoku( \
- 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, \
- N30, N31, K32, K33, K34, K35, K36, K37, N38, N39 \
-) \
-LAYOUT_split_3x6_4( \
-KC_NO, K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, KC_NO, \
-KC_NO, K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, KC_NO, \
-KC_NO, K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, KC_NO, \
- KC_NO, K32, K33, K34, K35, K36, K37, KC_NO \
-)
diff --git a/keyboards/torn/keymaps/manna-harbour_miryoku/keymap.c b/keyboards/torn/keymaps/manna-harbour_miryoku/keymap.c
deleted file mode 100644
index dbab7f9820..0000000000
--- a/keyboards/torn/keymaps/manna-harbour_miryoku/keymap.c
+++ /dev/null
@@ -1,4 +0,0 @@
-// Copyright 2019 Manna Harbour
-// https://github.com/manna-harbour/miryoku
-
-// 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/>.
diff --git a/keyboards/torn/rules.mk b/keyboards/torn/rules.mk
index d2ec5cf6d4..f855a651a5 100644
--- a/keyboards/torn/rules.mk
+++ b/keyboards/torn/rules.mk
@@ -18,4 +18,4 @@ SRC += matrix.c \
mcp23018.c \
torn_encoder.c
-QUANTUM_LIB_SRC += i2c_master.c
+I2C_DRIVER_REQUIRED = yes
diff --git a/keyboards/touchpad/rules.mk b/keyboards/touchpad/rules.mk
index c22f3a2da5..b9fb83c48c 100644
--- a/keyboards/touchpad/rules.mk
+++ b/keyboards/touchpad/rules.mk
@@ -12,4 +12,5 @@ AUDIO_ENABLE = no # Audio output
RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight.
CUSTOM_MATRIX = yes
-SRC += matrix.c i2c_master.c
+SRC += matrix.c
+I2C_DRIVER_REQUIRED = yes
diff --git a/keyboards/tweetydabird/lotus58/config.h b/keyboards/tweetydabird/lotus58/config.h
index de32af4284..4175568d40 100644
--- a/keyboards/tweetydabird/lotus58/config.h
+++ b/keyboards/tweetydabird/lotus58/config.h
@@ -7,6 +7,3 @@
#define RGBLIGHT_DEFAULT_VAL 87
#define SPLIT_HAND_PIN B5
-#define SPLIT_LAYER_STATE_ENABLE
-#define SPLIT_LED_STATE_ENABLE
-#define SPLIT_OLED_ENABLE
diff --git a/keyboards/tweetydabird/lotus58/info.json b/keyboards/tweetydabird/lotus58/info.json
index a222dec8de..4e41fcc7bd 100644
--- a/keyboards/tweetydabird/lotus58/info.json
+++ b/keyboards/tweetydabird/lotus58/info.json
@@ -56,8 +56,13 @@
"soft_serial_pin": "D2",
"transport": {
"protocol": "serial",
- "sync_matrix_state": true,
- "sync_modifiers": true
+ "sync": {
+ "indicators": true,
+ "layer_state": true,
+ "matrix_state": true,
+ "modifiers": true,
+ "oled": true
+ }
},
"usb_detect": {
"enabled": true
diff --git a/keyboards/tzarc/djinn/config.h b/keyboards/tzarc/djinn/config.h
index af98f887db..74bb00edc2 100644
--- a/keyboards/tzarc/djinn/config.h
+++ b/keyboards/tzarc/djinn/config.h
@@ -11,12 +11,6 @@
// Split configuration
#define SPLIT_TRANSACTION_IDS_KB RPC_ID_SYNC_STATE_KB
-#define SPLIT_TRANSPORT_MIRROR
-#define SPLIT_LAYER_STATE_ENABLE
-#define SPLIT_LED_STATE_ENABLE
-#define SPLIT_MODS_ENABLE
-#define SPLIT_WPM_ENABLE
-#define SPLIT_ACTIVITY_ENABLE
// SPI Configuration
#define SPI_DRIVER SPID3
diff --git a/keyboards/tzarc/djinn/info.json b/keyboards/tzarc/djinn/info.json
index f0904b8578..64ed1da690 100644
--- a/keyboards/tzarc/djinn/info.json
+++ b/keyboards/tzarc/djinn/info.json
@@ -9,6 +9,9 @@
"build": {
"lto": true
},
+ "eeprom": {
+ "driver": "spi"
+ },
"features": {
"audio": true,
"backlight": true,
@@ -42,13 +45,22 @@
},
"split": {
"enabled": true,
- "main": "pin",
"encoder": {
"right": {
"rotary": [
{"pin_a": "C15", "pin_b": "C14", "resolution": 2}
]
}
+ },
+ "transport": {
+ "sync": {
+ "activity": true,
+ "indicators": true,
+ "layer_state": true,
+ "matrix_state": true,
+ "modifiers": true,
+ "wpm": true
+ }
}
},
"encoder": {
diff --git a/keyboards/tzarc/djinn/rev1/config.h b/keyboards/tzarc/djinn/rev1/config.h
index 5dffc00141..cdcabed05c 100644
--- a/keyboards/tzarc/djinn/rev1/config.h
+++ b/keyboards/tzarc/djinn/rev1/config.h
@@ -22,7 +22,6 @@
#define RGB_CURR_3000mA_OK_PIN C5
// EEPROM configuration
+#define EEPROM_SPI_MB85RS64V
#define EXTERNAL_EEPROM_SPI_SLAVE_SELECT_PIN B5
#define EXTERNAL_EEPROM_SPI_CLOCK_DIVISOR 8 // (160MHz/8) => 20MHz
-#define EXTERNAL_EEPROM_BYTE_COUNT 8192
-#define EXTERNAL_EEPROM_PAGE_SIZE 64 // it's FRAM, so it doesn't actually matter, this just sets the RAM buffer size
diff --git a/keyboards/tzarc/djinn/rev2/config.h b/keyboards/tzarc/djinn/rev2/config.h
index 12a6372405..00a893ff65 100644
--- a/keyboards/tzarc/djinn/rev2/config.h
+++ b/keyboards/tzarc/djinn/rev2/config.h
@@ -25,10 +25,9 @@
#define RGB_CURR_3000mA_OK_PIN C4
// EEPROM configuration
+#define EEPROM_SPI_MB85RS64V
#define EXTERNAL_EEPROM_SPI_SLAVE_SELECT_PIN B5
#define EXTERNAL_EEPROM_SPI_CLOCK_DIVISOR 8 // (160MHz/8) => 20MHz
-#define EXTERNAL_EEPROM_BYTE_COUNT 8192
-#define EXTERNAL_EEPROM_PAGE_SIZE 64 // it's FRAM, so it doesn't actually matter, this just sets the RAM buffer size
// External flash config
#define EXTERNAL_FLASH_SPI_MODE 3
diff --git a/keyboards/tzarc/djinn/rules.mk b/keyboards/tzarc/djinn/rules.mk
index e7c32e4dc1..5a4589a86f 100644
--- a/keyboards/tzarc/djinn/rules.mk
+++ b/keyboards/tzarc/djinn/rules.mk
@@ -4,8 +4,6 @@ SERIAL_DRIVER = usart
CIE1931_CURVE = yes
-EEPROM_DRIVER = spi
-
AUDIO_DRIVER = pwm_software
QUANTUM_PAINTER_DRIVERS = ili9341_spi
diff --git a/keyboards/tzarc/ghoul/config.h b/keyboards/tzarc/ghoul/config.h
index 932ea8eb50..402f14cd92 100644
--- a/keyboards/tzarc/ghoul/config.h
+++ b/keyboards/tzarc/ghoul/config.h
@@ -8,8 +8,7 @@
// #define MATRIX_COLS 8 // actually defined in info.json: 8 bits per register
// EEPROM configuration
-#define EXTERNAL_EEPROM_BYTE_COUNT 8192
-#define EXTERNAL_EEPROM_PAGE_SIZE 64 // it's FRAM, so it doesn't actually matter, this just sets the RAM buffer
+#define EEPROM_SPI_MB85RS64V
// RGB configuration
#define RGB_MATRIX_LED_COUNT 40
diff --git a/keyboards/tzarc/ghoul/info.json b/keyboards/tzarc/ghoul/info.json
index bf07f122c3..26824ca4da 100644
--- a/keyboards/tzarc/ghoul/info.json
+++ b/keyboards/tzarc/ghoul/info.json
@@ -5,6 +5,9 @@
"build": {
"lto": true
},
+ "eeprom": {
+ "driver": "spi"
+ },
"features": {
"bootmagic": true,
"console": true,
diff --git a/keyboards/tzarc/ghoul/rules.mk b/keyboards/tzarc/ghoul/rules.mk
index 9590c52217..4bf96d9824 100644
--- a/keyboards/tzarc/ghoul/rules.mk
+++ b/keyboards/tzarc/ghoul/rules.mk
@@ -1,7 +1,6 @@
CUSTOM_MATRIX = lite
-EEPROM_DRIVER = spi
QUANTUM_PAINTER_DRIVERS = ssd1351_spi
DEFAULT_FOLDER = tzarc/ghoul/rev1/stm32
-SRC += analog.c
+ANALOG_DRIVER_REQUIRED = yes
diff --git a/keyboards/ungodly/launch_pad/rules.mk b/keyboards/ungodly/launch_pad/rules.mk
index 9354144466..31fabc928c 100644
--- a/keyboards/ungodly/launch_pad/rules.mk
+++ b/keyboards/ungodly/launch_pad/rules.mk
@@ -19,4 +19,4 @@ MAGIC_ENABLE = no
GRAVE_ESC_ENABLE = no
LTO_ENABLE = yes
-SRC += analog.c
+ANALOG_DRIVER_REQUIRED = yes
diff --git a/keyboards/unikeyboard/divergetm2/keymaps/xtonhasvim/config.h b/keyboards/unikeyboard/divergetm2/keymaps/xtonhasvim/config.h
deleted file mode 100644
index 4585f2230b..0000000000
--- a/keyboards/unikeyboard/divergetm2/keymaps/xtonhasvim/config.h
+++ /dev/null
@@ -1,23 +0,0 @@
-#pragma once
-
-// help for fast typist+dual function keys?
-#define PERMISSIVE_HOLD
-// Let me type `ls -l` more quickly.
-#define QUICK_TAP_TERM 0
-
-// where is the cord plugged in?
-#define MASTER_RIGHT
-
-/* speed up mousekeys a bit */
-#define MOUSEKEY_DELAY 50
-#define MOUSEKEY_INTERVAL 20
-#define MOUSEKEY_MAX_SPEED 8
-#define MOUSEKEY_TIME_TO_MAX 30
-#define MOUSEKEY_WHEEL_MAX_SPEED 8
-#define MOUSEKEY_WHEEL_TIME_TO_MAX 40
-
-// because I'm lazy and didn't case out the rgb support
-#define RGBLED_NUM 2
-
-#define BACKLIGHT_PIN B7
-#define BACKLIGHT_LEVELS 3
diff --git a/keyboards/unikeyboard/divergetm2/keymaps/xtonhasvim/keymap.c b/keyboards/unikeyboard/divergetm2/keymaps/xtonhasvim/keymap.c
deleted file mode 100644
index 3370ef9195..0000000000
--- a/keyboards/unikeyboard/divergetm2/keymaps/xtonhasvim/keymap.c
+++ /dev/null
@@ -1,155 +0,0 @@
- /* Copyright 2018 Christon DeWan
- *
- * 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 "xtonhasvim.h"
-
-/************************************
- * states
- ************************************/
-
-enum layers {
- _QWERTY,
- _LOWER,
- _RAISE,
- _ADJUST,
- _MOVE,
- _MOUSE,
- _CMD
-};
-
-extern uint8_t vim_cmd_layer(void) { return _CMD; }
-
-enum keymap_keycodes {
- RAISE = VIM_SAFE_RANGE,
- LOWER
-};
-
-/************************************
- * keymaps!
- ************************************/
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
-/* Qwerty
- * ,-----------------------------------------------------------------------------------.
- * | Tab | Q | W | E | R | T | Y | U | I | O | P | Bksp |
- * |------+------+------+------+------+-------------+------+------+------+------+------|
- * | Ctrl*| A | S | D | F | G | H | J | K | L | ;* | ' |
- * |------+------+------+------+------+------|------+------+------+------+------+------|
- * | Shift| Z | X | C | V | B | N | M | , | . | / |Enter |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | chkwm| | Alt | GUI | Lower* | Raise* | SPC | GUI | | Vim |
- * `-----------------------------------------------------------------------------------'
- *
- * - Ctrl acts as Esc when tapped.
- * - Holding ; switches to movement layer.
- * - Tapping raise or lower produces space.
- */
-[_QWERTY] = LAYOUT_ortho_4x12_2x2u(
- KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,
- LCTL_T(KC_ESC), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, LT(_MOVE,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, RSFT_T(KC_ENT) ,
- LSFT(KC_LALT), MO(_MOVE), KC_LALT, KC_LGUI, LT(_LOWER, KC_SPC), LT(_RAISE, KC_SPC), KC_RGUI, KC_RALT, MO(_MOVE), VIM_START
-),
-
-/* Lower
- * ,-----------------------------------------------------------------------------------.
- * | ~ | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | Bksp |
- * |------+------+------+------+------+-------------+------+------+------+------+------|
- * | Del | ! | @ | # | $ | % | ^ | & | * | ( | ) | | |
- * |------+------+------+------+------+------|------+------+------+------+------+------|
- * | | F7 | F8 | F9 | F10 | F11 | F12 | | Next | Vol- | Vol+ | Play |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | | Bail | | | | Raise | | | Bail | |
- * `-----------------------------------------------------------------------------------'
- */
-[_LOWER] = LAYOUT_ortho_4x12_2x2u(
- KC_TILD, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_BSPC,
- KC_DEL, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_PIPE,
- _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, X_____X, X_____X, X_____X, X_____X, FIREY_RETURN,
- QK_BOOT, TO(_QWERTY), _______, _______, _______, MO(_RAISE), _______, _______, TO(_QWERTY), X_____X
-),
-
-/* Raise
- * ,-----------------------------------------------------------------------------------.
- * | ` | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | Bksp |
- * |------+------+------+------+------+-------------+------+------+------+------+------|
- * | Del | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | \ |
- * |------+------+------+------+------+------|------+------+------+------+------+------|
- * | | F7 | F8 | F9 | F10 | F11 | F12 | | Next | Vol- | Vol+ | Play |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | | Bail | | | Lower | | | | Bail | |
- * `-----------------------------------------------------------------------------------'
- */
-[_RAISE] = LAYOUT_ortho_4x12_2x2u(
- KC_GRV, X_____X, X_____X, X_____X, X_____X, X_____X, X_____X, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSPC,
- KC_DEL, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSLS,
- _______, X_____X, X_____X, X_____X, X_____X, X_____X, X_____X, X_____X, X_____X, X_____X, X_____X, FIREY_RETURN,
- X_____X, TO(_QWERTY), _______, _______, MO(_LOWER), _______, _______, _______, TO(_QWERTY), QK_BOOT
-),
-
-
-/* Adjust (Lower + Raise)
- * ,-------------------------------------------------------------------------------------.
- * |BL Raise| | | | | | | | | | | |
- * |--------+------+------+------+------+-------------+------+------+------+------+------|
- * |BL Lower| | | | | | | | | | | |
- * |--------+------+------+------+------+------|------+------+------+------+------+------|
- * |BL STEP | | | | | | | Next | Vol- | Vol+ | Play | |
- * |--------+------+------+------+------+------+------+------+------+------+------+------|
- * |Backlite| Mouse| | | | | | | Bail | |
- * `-------------------------------------------------------------------------------------'
- */
-[_ADJUST] = LAYOUT_ortho_4x12_2x2u(
- BL_UP, X_____X, X_____X, X_____X, X_____X, X_____X, X_____X, X_____X, X_____X, X_____X, X_____X, X_____X,
- BL_DOWN,X_____X, X_____X, X_____X, X_____X, X_____X, X_____X, X_____X, X_____X, X_____X, X_____X, X_____X,
- BL_STEP, X_____X, X_____X, X_____X, X_____X, X_____X, X_____X, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY, X_____X,
- BL_TOGG, TO(_MOUSE), _______, _______, _______, _______, _______, _______, TO(_QWERTY), X_____X
-),
-
-
-/* movement layer (hold semicolon) */
-[_MOVE] = LAYOUT_ortho_4x12_2x2u(
- TO(_QWERTY), X_____X, X_____X, X_____X, X_____X, X_____X, KC_HOME, KC_PGDN, KC_PGUP, KC_END, X_____X, X_____X,
- _______, X_____X, LGUI(KC_LBRC), LGUI(LSFT(KC_LBRC)), LGUI(LSFT(KC_RBRC)), LGUI(KC_RBRC), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, _______, X_____X,
- _______, X_____X, X_____X, X_____X, X_____X, X_____X, X_____X, X_____X, X_____X, X_____X, X_____X, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, X_____X
-),
-
-/* mouse layer
- */
-[_MOUSE] = LAYOUT_ortho_4x12_2x2u(
- TO(_QWERTY), X_____X, X_____X, KC_MS_UP, X_____X, X_____X, KC_MS_WH_LEFT, KC_MS_WH_DOWN, KC_MS_WH_UP, KC_MS_WH_RIGHT, X_____X, X_____X ,
- _______, X_____X, KC_MS_LEFT, KC_MS_DOWN, KC_MS_RIGHT, X_____X, X_____X, KC_MS_BTN1, KC_MS_BTN2, KC_MS_BTN3, X_____X, X_____X,
- _______, X_____X, X_____X, X_____X, X_____X, X_____X, X_____X, X_____X, X_____X, X_____X, X_____X, _______,
- _______, TO(_QWERTY), _______, _______, _______, _______, _______, _______, TO(_QWERTY), X_____X
-),
-
-/* vim command layer.
- */
-[_CMD] = LAYOUT_ortho_4x12_2x2u(
- X_____X, X_____X, VIM_W, VIM_E, X_____X, X_____X, VIM_Y, VIM_U, VIM_I, VIM_O, VIM_P, X_____X,
- VIM_ESC, VIM_A, VIM_S, VIM_D, X_____X, VIM_G, VIM_H, VIM_J, VIM_K, VIM_L, X_____X, X_____X,
- VIM_SHIFT, X_____X, VIM_X, VIM_C, VIM_V, VIM_B, X_____X, X_____X, VIM_COMMA, VIM_PERIOD, X_____X, VIM_SHIFT,
- _______, TO(_QWERTY), _______, _______, X_____X, X_____X, _______, _______, TO(_QWERTY), X_____X
-)
-
-};
-
-layer_state_t layer_state_set_user(layer_state_t state) {
- return update_tri_layer_state(state, _RAISE, _LOWER, _ADJUST);
-}
diff --git a/keyboards/unikeyboard/divergetm2/keymaps/xtonhasvim/readme.md b/keyboards/unikeyboard/divergetm2/keymaps/xtonhasvim/readme.md
deleted file mode 100644
index 9ff4ce1f19..0000000000
--- a/keyboards/unikeyboard/divergetm2/keymaps/xtonhasvim/readme.md
+++ /dev/null
@@ -1,9 +0,0 @@
-# Xton has a tiny keyboard! With Vim!
-
-Based on the standard Planck layout with a few changes:
-
-* Escape moved to dual-function with control.
-* Dedicated movement and mouse layers.
-* Top and middle row swapped in `_RAISE` and `_LOWER` because I never use F-keys.
-* Vim layers! See `users/xtonhasvim`.
-
diff --git a/keyboards/unikeyboard/divergetm2/keymaps/xtonhasvim/rules.mk b/keyboards/unikeyboard/divergetm2/keymaps/xtonhasvim/rules.mk
deleted file mode 100644
index ede4e02b64..0000000000
--- a/keyboards/unikeyboard/divergetm2/keymaps/xtonhasvim/rules.mk
+++ /dev/null
@@ -1,3 +0,0 @@
-MOUSEKEY_ENABLE = yes
-# BACKLIGHT_ENABLE = yes
-AUDIO_ENABLE = no
diff --git a/keyboards/v4n4g0rth0n/v2/rules.mk b/keyboards/v4n4g0rth0n/v2/rules.mk
index b63f456708..0114504486 100644
--- a/keyboards/v4n4g0rth0n/v2/rules.mk
+++ b/keyboards/v4n4g0rth0n/v2/rules.mk
@@ -11,5 +11,4 @@ BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
AUDIO_ENABLE = no # Audio output
-SRC += analog.c
-
+ANALOG_DRIVER_REQUIRED = yes
diff --git a/keyboards/v60_type_r/keymaps/xtonhasvim/config.h b/keyboards/v60_type_r/keymaps/xtonhasvim/config.h
deleted file mode 100644
index 997802a56e..0000000000
--- a/keyboards/v60_type_r/keymaps/xtonhasvim/config.h
+++ /dev/null
@@ -1,24 +0,0 @@
-/* Copyright 2018 Christon DeWan (Xton)
- *
- * 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 V60_POLESTAR
-
-#define PERMISSIVE_HOLD
-
-
diff --git a/keyboards/v60_type_r/keymaps/xtonhasvim/keymap.c b/keyboards/v60_type_r/keymaps/xtonhasvim/keymap.c
deleted file mode 100644
index f2fd693ece..0000000000
--- a/keyboards/v60_type_r/keymaps/xtonhasvim/keymap.c
+++ /dev/null
@@ -1,195 +0,0 @@
-/* Copyright 2018 Christon DeWan (Xton)
- *
- * 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 "xtonhasvim.h"
-#include "fancylighting.h"
-
-#define X_____X KC_NO
-
-enum layers {
- _QWERTY,
- _FUN,
- _MOVE,
- _CMD
-};
-
-enum layout_key_codes {
- IND_BRI = VIM_SAFE_RANGE,
- IND_DIM
-};
-
-extern uint8_t vim_cmd_layer(void) { return _CMD; }
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [_QWERTY] = LAYOUT_all(
- KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, X_____X, 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_LBRC, KC_RBRC, KC_BSLS,
- LT(_MOVE, KC_CAPS), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
- KC_LSFT, X_____X, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, X_____X,
- KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_RGUI, KC_RALT, VIM_START, MO(_FUN)),
-
-
- [_MOVE] = LAYOUT_all(
- X_____X, X_____X, X_____X, X_____X, X_____X, X_____X, X_____X, X_____X, X_____X, X_____X, X_____X, X_____X, X_____X, X_____X, X_____X,
- X_____X, X_____X, X_____X, X_____X, X_____X, X_____X, KC_HOME, KC_PGDN, KC_PGUP, KC_END, X_____X, X_____X, X_____X, X_____X,
- _______, X_____X, LGUI(KC_LBRC), LGUI(LSFT(KC_LBRC)), LGUI(LSFT(KC_RBRC)), LGUI(KC_RBRC), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, X_____X, X_____X, VIM_START,
- _______, X_____X, X_____X, X_____X, X_____X, X_____X, X_____X, X_____X, X_____X, X_____X, X_____X, X_____X, X_____X, _______,
- _______, _______, _______, _______, _______, _______, _______, _______),
-
-
- [_FUN] = LAYOUT_all(
- KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, X_____X, KC_DEL,
- X_____X, X_____X, KC_UP, RGB_TOG, IND_BRI, X_____X, X_____X, X_____X, KC_PSCR, KC_SCRL, KC_PAUS, KC_UP, X_____X, KC_INS,
- X_____X, KC_LEFT, KC_DOWN, KC_RIGHT, IND_DIM, X_____X, X_____X, X_____X, KC_HOME, KC_PGUP, KC_LEFT, KC_RIGHT, FIREY_RETURN,
- _______, X_____X, BL_UP, BL_STEP, BL_DOWN, X_____X, KC_VOLD, KC_VOLU, KC_MUTE, KC_END, KC_PGDN, KC_DOWN, _______, X_____X,
- _______, _______, _______, X_____X, _______, _______, X_____X, _______
- ),
-
- [_CMD] = LAYOUT_all(
- VIM_ESC, X_____X, X_____X, X_____X, X_____X, X_____X, X_____X, X_____X, X_____X, X_____X, X_____X, X_____X, X_____X, X_____X, X_____X,
- X_____X, X_____X, VIM_W, VIM_E, X_____X, X_____X, VIM_Y, VIM_U, VIM_I, VIM_O, VIM_P, X_____X, X_____X, X_____X,
- _______, VIM_A, VIM_S, VIM_D, X_____X, VIM_G, VIM_H, VIM_J, VIM_K, VIM_L, X_____X, X_____X, X_____X,
- VIM_SHIFT, X_____X, X_____X, VIM_X, VIM_C, VIM_V, VIM_B, X_____X, X_____X, VIM_COMMA, VIM_PERIOD, X_____X, VIM_SHIFT,X_____X,
- _______, _______, _______, _______, _______, _______, _______, TO(_QWERTY)
- )
-};
-
-
-bool led_update_user(led_t led_state) {
- if (led_state.caps_lock) {
- // output low
- DDRE |= (1<<PE6);
- PORTE &= ~(1<<PE6);
- }
- else {
- // Hi-Z
- DDRE &= ~(1<<PE6);
- PORTE &= ~(1<<PE6);
- }
- return false;
-}
-
-#define C_RED 0xFF, 0x00, 0x00
-#define C_GRN 0x00, 0xFF, 0x00
-#define C_BLU 0x00, 0x00, 0xFF
-
-#define C_YAN 0x00, 0xFF, 0xFF
-#define C_PRP 0x7A, 0x00, 0xFF
-#define C_ORG 0xFF, 0x93, 0x00
-
-float rgb_brightness = 1.0;
-
-/** the underglow LEDs aren't individually addressable, sadly */
-void rgbflag(uint8_t r, uint8_t g, uint8_t b) {
- float rgb_brightness = ((float)rgblight_get_val())/256;
- if(rgb_brightness == 0) rgb_brightness = 0.05;
- LED_TYPE *target_led = user_rgb_mode ? shadowed_led : led;
- target_led[0].r = (uint8_t)(r*rgb_brightness);
- target_led[0].g = (uint8_t)(g*rgb_brightness);
- target_led[0].b = (uint8_t)(b*rgb_brightness);
- rgblight_set(); // just to handle turning off if that's required
-}
-
-void set_state_leds(void) {
- switch (get_highest_layer(layer_state)) {
- case _MOVE:
- rgbflag(C_BLU);
- break;
- case _FUN:
- rgbflag(C_PRP);
- break;
- case _CMD:
- switch(vstate) {
- case VIM_V:
- case VIM_VI:
- case VIM_VS:
- case VIM_C:
- case VIM_CI:
- case VIM_D:
- case VIM_DI:
- rgbflag(C_RED);
- break;
- case VIM_G:
- rgbflag(C_PRP);
- break;
- case VIM_Y:
- rgbflag(C_ORG);
- break;
- case VIM_START:
- default:
- rgbflag(C_GRN);
- break;
- }
- break;
- default: // for any other layers, or the default layer
- rgbflag(C_YAN);
- break;
- }
-}
-
-#define RGBLIGHT_LIMIT_VAL 255
-#define RGBLIGHT_BASE_VAL 3
-extern rgblight_config_t rgblight_config;
-extern backlight_config_t backlight_config;
-
-bool process_record_keymap(uint16_t keycode, keyrecord_t *record) {
- if (record->event.pressed) {
- switch(keycode) {
- case IND_BRI:
- if (rgblight_config.val + RGBLIGHT_VAL_STEP > RGBLIGHT_LIMIT_VAL) {
- rgblight_config.val = RGBLIGHT_LIMIT_VAL;
- } else {
- rgblight_config.val = rgblight_config.val + RGBLIGHT_VAL_STEP;
- }
- eeconfig_update_rgblight(rgblight_config.raw);
- set_state_leds();
- break;
- case IND_DIM:
- if (rgblight_config.val - RGBLIGHT_VAL_STEP < RGBLIGHT_BASE_VAL) {
- rgblight_config.val = RGBLIGHT_BASE_VAL;
- } else {
- rgblight_config.val = rgblight_config.val - RGBLIGHT_VAL_STEP;
- }
- eeconfig_update_rgblight(rgblight_config.raw);
- set_state_leds();
- break;
- }
- }
- return true;
-}
-
-void suspend_power_down_user(void)
-{
- // rgb
- rgblight_config.enable = false;
- rgblight_set();
-
- // backlight
- /** I don't know why, but 3 means "off" and down is up */
- backlight_config.level = 3;
- backlight_config.enable = false;
- backlight_set(3);
-}
-
-void suspend_wakeup_init_user(void)
-{
- rgblight_config.raw = eeconfig_read_rgblight();
- backlight_config.raw = eeconfig_read_backlight();
-
- backlight_set(backlight_config.level);
- rgblight_set();
-}
diff --git a/keyboards/v60_type_r/keymaps/xtonhasvim/readme.md b/keyboards/v60_type_r/keymaps/xtonhasvim/readme.md
deleted file mode 100644
index 541faed2ba..0000000000
--- a/keyboards/v60_type_r/keymaps/xtonhasvim/readme.md
+++ /dev/null
@@ -1,20 +0,0 @@
-KB Paradise V60 Type R Xton Has Vim! Layout
-======================
-
-If you don't look closely, this layout mimics the default layout fairly well. Care
-is taken to match the FN layer to the keycaps that the TypeR comes with. I wrote this layout
-for a keyboard that I'm giving my intern as a parting gift and wanted it to be as easy to learn
-as possible.
-
-The key differences:
-
-- Holding capslock down activates the movement layer, much like the vimouse layout except that I'm using the xtonhasvim movement layer.
-- Capslock+return (or right-control) activates vim mode!
-
-## Keymap Notes
-
-- Alternate underglow modes are not supported. Instead the underglow is used to indicate state. It can be turned off and dimmed. Polestar underglow LEDs are not individually addressable, sadly.
-
-### Build
-
-To build this keymap, simply run `make v60_type_r:xtonhasvim` from the root project directory. Flash using QMK Toolbox
diff --git a/keyboards/v60_type_r/keymaps/xtonhasvim/rules.mk b/keyboards/v60_type_r/keymaps/xtonhasvim/rules.mk
deleted file mode 100644
index 6f9d7cc39e..0000000000
--- a/keyboards/v60_type_r/keymaps/xtonhasvim/rules.mk
+++ /dev/null
@@ -1,5 +0,0 @@
-BACKLIGHT_ENABLE = yes
-RGBLIGHT_ENABLE = yes
-MOUSEKEY_ENABLE = no
-CONSOLE_ENABLE = no # Console for debug(+400)
-DEBUG_ENABLE = no
diff --git a/keyboards/vertex/angle65/config.h b/keyboards/vertex/angle65/config.h
index b3cf8b2507..018bad7cdb 100644
--- a/keyboards/vertex/angle65/config.h
+++ b/keyboards/vertex/angle65/config.h
@@ -18,5 +18,5 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define SOLENOID_PIN A2
-#define WS2812_SPI SPID2
+#define WS2812_SPI_DRIVER SPID2
#define WS2812_SPI_MOSI_PAL_MODE 5
diff --git a/keyboards/vertex/arc60/config.h b/keyboards/vertex/arc60/config.h
index 38b830e3df..cab5a59af0 100644
--- a/keyboards/vertex/arc60/config.h
+++ b/keyboards/vertex/arc60/config.h
@@ -16,7 +16,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#pragma once
-#define WS2812_SPI SPID2
+#define WS2812_SPI_DRIVER SPID2
#define WS2812_SPI_MOSI_PAL_MODE 5
/*
diff --git a/keyboards/vertex/arc60h/config.h b/keyboards/vertex/arc60h/config.h
index 38b830e3df..cab5a59af0 100644
--- a/keyboards/vertex/arc60h/config.h
+++ b/keyboards/vertex/arc60h/config.h
@@ -16,7 +16,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#pragma once
-#define WS2812_SPI SPID2
+#define WS2812_SPI_DRIVER SPID2
#define WS2812_SPI_MOSI_PAL_MODE 5
/*
diff --git a/keyboards/viendi8l/info.json b/keyboards/viendi8l/info.json
index 17449f406c..d50b96a887 100644
--- a/keyboards/viendi8l/info.json
+++ b/keyboards/viendi8l/info.json
@@ -20,6 +20,9 @@
"rows": ["C3", "C2", "C1", "C0", "B14", "A7"]
},
"diode_direction": "COL2ROW",
+ "eeprom": {
+ "driver": "i2c"
+ },
"encoder": {
"rotary": [
{"pin_a": "B10", "pin_b": "B12", "resolution": 2}
diff --git a/keyboards/viendi8l/rules.mk b/keyboards/viendi8l/rules.mk
index da10e34d1c..b269d5da35 100644
--- a/keyboards/viendi8l/rules.mk
+++ b/keyboards/viendi8l/rules.mk
@@ -12,6 +12,3 @@ RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
AUDIO_ENABLE = no # Audio output
ENCODER_ENABLE = yes
LTO_ENABLE = no
-
-EEPROM_DRIVER = i2c
-
diff --git a/keyboards/viktus/minne_topre/rules.mk b/keyboards/viktus/minne_topre/rules.mk
index 037e26c530..b86fee73da 100644
--- a/keyboards/viktus/minne_topre/rules.mk
+++ b/keyboards/viktus/minne_topre/rules.mk
@@ -1,3 +1,4 @@
CUSTOM_MATRIX = lite
-QUANTUM_LIB_SRC += analog.c
SRC += ec.c
+
+ANALOG_DRIVER_REQUIRED = yes
diff --git a/keyboards/viktus/osav2_numpad_topre/rules.mk b/keyboards/viktus/osav2_numpad_topre/rules.mk
index 037e26c530..b86fee73da 100644
--- a/keyboards/viktus/osav2_numpad_topre/rules.mk
+++ b/keyboards/viktus/osav2_numpad_topre/rules.mk
@@ -1,3 +1,4 @@
CUSTOM_MATRIX = lite
-QUANTUM_LIB_SRC += analog.c
SRC += ec.c
+
+ANALOG_DRIVER_REQUIRED = yes
diff --git a/keyboards/viktus/osav2_topre/rules.mk b/keyboards/viktus/osav2_topre/rules.mk
index 037e26c530..b86fee73da 100644
--- a/keyboards/viktus/osav2_topre/rules.mk
+++ b/keyboards/viktus/osav2_topre/rules.mk
@@ -1,3 +1,4 @@
CUSTOM_MATRIX = lite
-QUANTUM_LIB_SRC += analog.c
SRC += ec.c
+
+ANALOG_DRIVER_REQUIRED = yes
diff --git a/keyboards/viktus/sp111/rules.mk b/keyboards/viktus/sp111/rules.mk
index 0b9b8490de..1be8c7ad68 100644
--- a/keyboards/viktus/sp111/rules.mk
+++ b/keyboards/viktus/sp111/rules.mk
@@ -18,4 +18,4 @@ CUSTOM_MATRIX = lite
VPATH += drivers/gpio
SRC += mcp23018.c matrix.c
-QUANTUM_LIB_SRC += i2c_master.c
+I2C_DRIVER_REQUIRED = yes
diff --git a/keyboards/viktus/styrka_topre/rules.mk b/keyboards/viktus/styrka_topre/rules.mk
index 037e26c530..b86fee73da 100644
--- a/keyboards/viktus/styrka_topre/rules.mk
+++ b/keyboards/viktus/styrka_topre/rules.mk
@@ -1,3 +1,4 @@
CUSTOM_MATRIX = lite
-QUANTUM_LIB_SRC += analog.c
SRC += ec.c
+
+ANALOG_DRIVER_REQUIRED = yes
diff --git a/keyboards/vinhcatba/uncertainty/config.h b/keyboards/vinhcatba/uncertainty/config.h
index 288f1d81a9..5c02b78efe 100644
--- a/keyboards/vinhcatba/uncertainty/config.h
+++ b/keyboards/vinhcatba/uncertainty/config.h
@@ -19,11 +19,7 @@
#define I2C1_DUTY_CYCLE FAST_DUTY_CYCLE_16_9
/* eeprom i2c driver config */
-#define EXTERNAL_EEPROM_I2C_BASE_ADDRESS 0b10100000
-#define EXTERNAL_EEPROM_BYTE_COUNT 4096
-#define EXTERNAL_EEPROM_PAGE_SIZE 32
-#define EXTERNAL_EEPROM_WRITE_TIME 10
-//#define EEPROM_I2C_24LC32
+#define EEPROM_I2C_24LC32A
/* OLED config */
#define OLED_UPDATE_INTERVAL 100
diff --git a/keyboards/vinhcatba/uncertainty/info.json b/keyboards/vinhcatba/uncertainty/info.json
index fc0e69ad19..5f35a144d8 100644
--- a/keyboards/vinhcatba/uncertainty/info.json
+++ b/keyboards/vinhcatba/uncertainty/info.json
@@ -4,6 +4,9 @@
"maintainer": "vinhcatba",
"development_board": "blackpill_f401",
"diode_direction": "COL2ROW",
+ "eeprom": {
+ "driver": "i2c"
+ },
"encoder": {
"rotary": [
{"pin_a": "A13", "pin_b": "A14"}
diff --git a/keyboards/vinhcatba/uncertainty/rules.mk b/keyboards/vinhcatba/uncertainty/rules.mk
index 6255f65294..fd83e26c34 100644
--- a/keyboards/vinhcatba/uncertainty/rules.mk
+++ b/keyboards/vinhcatba/uncertainty/rules.mk
@@ -1,3 +1 @@
SRC += bongo.c
-# using external i2c eeprom
-EEPROM_DRIVER = i2c
diff --git a/keyboards/walletburner/neuron/keymaps/brandonschlack/keymap.c b/keyboards/walletburner/neuron/keymaps/brandonschlack/keymap.c
deleted file mode 100644
index fefff64e48..0000000000
--- a/keyboards/walletburner/neuron/keymaps/brandonschlack/keymap.c
+++ /dev/null
@@ -1,132 +0,0 @@
-/* Copyright 2020 Brandon Schlack
- *
- * 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 "brandonschlack.h"
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-/* Base Layer
- * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
- * │Esc│ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │Bsp│
- * ├───┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴───┤
- * │HyTb│ A │ S │ D │ F │ G │ H │ J │ K │ L │ Enter│
- * ├────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬────┤
- * │Shift │ Z │ X │ C │ V │ B │ N │ M │< ,│> .│?/Lw│
- * ├┬┬┬┬──┴─┬─┴──┬┴───┴───┴───┴───┴───┴───┼───┴┬┬┬┬┤
- * │││││Opt │Cmd │         SpcRse         │Ctrl│││││
- * └┴┴┴┴────┴────┴────────────────────────┴────┴┴┴┴┘
- */
-[_BASE] = LAYOUT(
- KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,
- HY_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_ENT,
- KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, SLH_LWR,
- KC_LOPT, KC_LCMD, XXXXXXX, SPC_RAI, XXXXXXX, XXXXXXX, KC_LCTL
-),
-/* Lower
- * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
- * │Del│BrD│BrU│Msn│LHP│   │   │   │Hom│ ↑ │PgU│SlD│
- * ├───┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴───┤
- * │    │Mut│VlU│NxW│PvT│Bck│Fwd│NxT│ ← │ → │  Ply │
- * ├────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬────┤
- * │SfCaps│Prv│VlD│Nxt│1PX│1Ps│   │End│ ↓ │PgD│    │
- * ├┬┬┬┬──┴─┬─┴──┬┴───┴───┴───┴───┴───┴───┼───┴┬┬┬┬┤
- * │││││    │    │                        │    │││││
- * └┴┴┴┴────┴────┴────────────────────────┴────┴┴┴┴┘
- */
-[_LOWER] = LAYOUT(
- KC_DEL, KC_BRMD, KC_BRMU, MC_MSSN, MC_LHPD, _______, _______, _______, KC_HOME, KC_UP, KC_PGUP, MC_SLPD,
- _______, KC_MUTE, KC_VOLU, NXT_WIN, PRV_TAB, MC_BACK, MC_FWRD, NXT_TAB, KC_LEFT, KC_RGHT, KC_MPLY,
- SF_CAPS, KC_MPRV, KC_VOLD, KC_MNXT, PX_AFLL, OP_AFLL, _______, KC_END, KC_DOWN, KC_PGDN, _______,
- _______, _______, XXXXXXX, _______, XXXXXXX, XXXXXXX, _______
-),
-/* Raise
- * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
- * │~ `│! 1│@ 2│# 3│$ 4│% 5│^ 6│& 7│* 8│( 9│) 0│   │
- * ├───┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴───┤
- * │    │ F1│ F2│ F3│ F4│ F5│ F6│_ -│+ =│: ;│   " '│
- * ├────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬────┤
- * │      │ F7│ F8│ F9│F10│F11│F12│   │{ [│} ]│|\Lw│
- * ├┬┬┬┬──┴─┬─┴──┬┴───┴───┴───┴───┴───┴───┼───┴┬┬┬┬┤
- * │││││    │    │                        │    │││││
- * └┴┴┴┴────┴────┴────────────────────────┴────┴┴┴┴┘
- */
-/*
-[_RAISE] = LAYOUT(
- KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, _______,
- _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_SCLN, KC_QUOT,
- _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, KC_LBRC, KC_RBRC, BSL_LWR,
- _______, _______, XXXXXXX, _______, XXXXXXX, XXXXXXX, _______
-), */
-/* Raise
- * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
- * │~ `│ F1│ F2│ F3│ F4│{ [│} ]│& 7│* 8│( 9│) 0│   │
- * ├───┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴───┤
- * │    │ F5│ F6│ F7│ F8│_ -│ + │$ 4│% 5│^ 6│   " '│
- * ├────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬────┤
- * │      │ F9│F10│F11│F12│+ =│! 1│@ 2│# 3│: ;│|\Lw│
- * ├┬┬┬┬──┴─┬─┴──┬┴───┴───┴───┴───┴───┴───┼───┴┬┬┬┬┤
- * │││││    │    │                        │    │││││
- * └┴┴┴┴────┴────┴────────────────────────┴────┴┴┴┴┘
- */
-[_RAISE] = LAYOUT(
- KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_LBRC, KC_RBRC, KC_7, KC_8, KC_9, KC_0, _______,
- _______, KC_F5, KC_F6, KC_F7, KC_F8, KC_MINS, KC_PLUS, KC_4, KC_5, KC_6, KC_QUOT,
- _______, KC_F9, KC_F10, KC_F11, KC_F12, KC_EQL, KC_1, KC_2, KC_3, KC_SCLN, BSL_LWR,
- _______, _______, XXXXXXX, _______, XXXXXXX, XXXXXXX, _______
-),
-/* Adjust/Macro
- * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
- * │Mke│   │   │EEP│RST│   │   │   │   │   │   │   │
- * ├───┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴───┤
- * │    │   │   │   │   │   │   │   │   │   │      │
- * ├────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬────┤
- * │      │   │   │   │   │   │   │   │   │   │    │
- * ├┬┬┬┬──┴─┬─┴──┬┴───┴───┴───┴───┴───┴───┼───┴┬┬┬┬┤
- * │││││    │    │                        │    │││││
- * └┴┴┴┴────┴────┴────────────────────────┴────┴┴┴┴┘
- */
-
-[_ADJUST] = LAYOUT(
- QM_MAKE, _______, _______, EE_CLR, QK_BOOT, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, XXXXXXX, _______, XXXXXXX, XXXXXXX, _______
-)
-/* Blank Layer
- * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
- * │   │   │   │   │   │   │   │   │   │   │   │   │
- * ├───┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴───┤
- * │    │   │   │   │   │   │   │   │   │   │      │
- * ├────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬────┤
- * │      │   │   │   │   │   │   │   │   │   │    │
- * ├┬┬┬┬──┴─┬─┴──┬┴───┴───┴───┴───┴───┴───┼───┴┬┬┬┬┤
- * │││││    │    │                        │    │││││
- * └┴┴┴┴────┴────┴────────────────────────┴────┴┴┴┴┘
- */
-/*
-[BLANK] = LAYOUT(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, XXXXXXX, _______, XXXXXXX, XXXXXXX, _______
-)
-*/
-
-};
-
-layer_state_t layer_state_set_keymap(layer_state_t state) {
- return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST);
-}
-
diff --git a/keyboards/waterfowl/config.h b/keyboards/waterfowl/config.h
index 2ddc7228d4..bba96732cb 100644
--- a/keyboards/waterfowl/config.h
+++ b/keyboards/waterfowl/config.h
@@ -17,6 +17,5 @@
#pragma once
#define OLED_DISPLAY_128X64
-#define SPLIT_MODS_ENABLE
-#define SPLIT_WPM_ENABLE
+
#define SPLIT_USB_DETECT
diff --git a/keyboards/waterfowl/info.json b/keyboards/waterfowl/info.json
index ff8af90fb3..159773a1c9 100644
--- a/keyboards/waterfowl/info.json
+++ b/keyboards/waterfowl/info.json
@@ -20,7 +20,13 @@
]
},
"split": {
- "soft_serial_pin": "D2"
+ "soft_serial_pin": "D2",
+ "transport": {
+ "sync": {
+ "modifiers": true,
+ "wpm": true
+ }
+ }
},
"processor": "atmega32u4",
"bootloader": "atmel-dfu",
diff --git a/keyboards/wilba_tech/rama_works_kara/config.h b/keyboards/wilba_tech/rama_works_kara/config.h
index d34fd6468c..ba02ba652a 100644
--- a/keyboards/wilba_tech/rama_works_kara/config.h
+++ b/keyboards/wilba_tech/rama_works_kara/config.h
@@ -16,8 +16,9 @@
#pragma once
// IS31FL3731 driver
-#define DRIVER_COUNT 2
-#define RGB_MATRIX_LED_COUNT 72
+#define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND
+#define IS31FL3731_I2C_ADDRESS_2 IS31FL3731_I2C_ADDRESS_SDA
+#define IS31FL3731_LED_COUNT 72
// Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap
#define LOCKING_SUPPORT_ENABLE
diff --git a/keyboards/wilba_tech/rama_works_kara/rama_works_kara.c b/keyboards/wilba_tech/rama_works_kara/rama_works_kara.c
index 787a854925..c5f5c9a9d6 100644
--- a/keyboards/wilba_tech/rama_works_kara/rama_works_kara.c
+++ b/keyboards/wilba_tech/rama_works_kara/rama_works_kara.c
@@ -14,5 +14,93 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef RGB_BACKLIGHT_M60_A
-#error RGB_BACKLIGHT_M60_A not defined
+# error RGB_BACKLIGHT_M60_A not defined
+#else
+# include "drivers/led/issi/is31fl3731.h"
+#endif
+
+#if defined(RGB_MATRIX_ENABLE) || defined(RGB_BACKLIGHT_M60_A)
+const is31fl3731_led_t PROGMEM g_is31fl3731_leds[IS31FL3731_LED_COUNT] = {
+/* Refer to IS31 manual for these locations
+ * driver
+ * | R location
+ * | | G location
+ * | | | B location
+ * | | | | */
+ {0, C2_1, C3_1, C4_1}, // LA0
+ {0, C1_1, C3_2, C4_2}, // LA1
+ {0, C1_2, C2_2, C4_3}, // LA2
+ {0, C1_3, C2_3, C3_3}, // LA3
+ {0, C1_4, C2_4, C3_4}, // LA4
+ {0, C1_5, C2_5, C3_5}, // LA5
+ {0, C1_6, C2_6, C3_6}, // LA6
+ {0, C1_7, C2_7, C3_7}, // LA7
+ {0, C1_8, C2_8, C3_8}, // LA8
+ {0, C9_1, C8_1, C7_1}, // LA9
+ {0, C9_2, C8_2, C7_2}, // LA10
+ {0, C9_3, C8_3, C7_3}, // LA11
+ {0, C9_4, C8_4, C7_4}, // LA12
+ {0, C9_5, C8_5, C7_5}, // LA13
+ {0, C9_6, C8_6, C7_6}, // LA14
+ {0, C9_7, C8_7, C6_6}, // LA15
+ {0, C9_8, C7_7, C6_7}, // LA16
+ {0, C8_8, C7_8, C6_8}, // LA17
+
+ {0, C2_9, C3_9, C4_9}, // LB0
+ {0, C1_9, C3_10, C4_10}, // LB1
+ {0, C1_10, C2_10, C4_11}, // LB2
+ {0, C1_11, C2_11, C3_11}, // LB3
+ {0, C1_12, C2_12, C3_12}, // LB4
+ {0, C1_13, C2_13, C3_13}, // LB5
+ {0, C1_14, C2_14, C3_14}, // LB6
+ {0, C1_15, C2_15, C3_15}, // LB7
+ {0, C1_16, C2_16, C3_16}, // LB8
+ {0, C9_9, C8_9, C7_9}, // LB9
+ {0, C9_10, C8_10, C7_10}, // LB10
+ {0, C9_11, C8_11, C7_11}, // LB11
+ {0, C9_12, C8_12, C7_12}, // LB12
+ {0, C9_13, C8_13, C7_13}, // LB13
+ {0, C9_14, C8_14, C7_14}, // LB14
+ {0, C9_15, C8_15, C6_14}, // LB15
+ {0, C9_16, C7_15, C6_15}, // LB16
+ {0, C8_16, C7_16, C6_16}, // LB17
+
+ {1, C2_1, C3_1, C4_1}, // LC0
+ {1, C1_1, C3_2, C4_2}, // LC1
+ {1, C1_2, C2_2, C4_3}, // LC2
+ {1, C1_3, C2_3, C3_3}, // LC3
+ {1, C1_4, C2_4, C3_4}, // LC4
+ {1, C1_5, C2_5, C3_5}, // LC5
+ {1, C1_6, C2_6, C3_6}, // LC6
+ {1, C1_7, C2_7, C3_7}, // LC7
+ {1, C1_8, C2_8, C3_8}, // LC8
+ {1, C9_1, C8_1, C7_1}, // LC9
+ {1, C9_2, C8_2, C7_2}, // LC10
+ {1, C9_3, C8_3, C7_3}, // LC11
+ {1, C9_4, C8_4, C7_4}, // LC12
+ {1, C9_5, C8_5, C7_5}, // LC13
+ {1, C9_6, C8_6, C7_6}, // LC14
+ {1, C9_7, C8_7, C6_6}, // LC15
+ {1, C9_8, C7_7, C6_7}, // LC16
+ {1, C8_8, C7_8, C6_8}, // LC17
+
+ {1, C2_9, C3_9, C4_9}, // LD0
+ {1, C1_9, C3_10, C4_10}, // LD1
+ {1, C1_10, C2_10, C4_11}, // LD2
+ {1, C1_11, C2_11, C3_11}, // LD3
+ {1, C1_12, C2_12, C3_12}, // LD4
+ {1, C1_13, C2_13, C3_13}, // LD5
+ {1, C1_14, C2_14, C3_14}, // LD6
+ {1, C1_15, C2_15, C3_15}, // LD7
+ {1, C1_16, C2_16, C3_16}, // LD8
+ {1, C9_9, C8_9, C7_9}, // LD9
+ {1, C9_10, C8_10, C7_10}, // LD10
+ {1, C9_11, C8_11, C7_11}, // LD11
+ {1, C9_12, C8_12, C7_12}, // LD12
+ {1, C9_13, C8_13, C7_13}, // LD13
+ {1, C9_14, C8_14, C7_14}, // LD14
+ {1, C9_15, C8_15, C6_14}, // LD15
+ {1, C9_16, C7_15, C6_15}, // LD16
+ {1, C8_16, C7_16, C6_16}, // LD17
+};
#endif
diff --git a/keyboards/wilba_tech/rama_works_kara/rules.mk b/keyboards/wilba_tech/rama_works_kara/rules.mk
index 465bc65d9e..b49711824a 100644
--- a/keyboards/wilba_tech/rama_works_kara/rules.mk
+++ b/keyboards/wilba_tech/rama_works_kara/rules.mk
@@ -22,5 +22,5 @@ CIE1931_CURVE = yes
SRC = keyboards/wilba_tech/wt_main.c \
keyboards/wilba_tech/wt_rgb_backlight.c \
quantum/color.c \
- drivers/led/issi/is31fl3731.c \
- i2c_master.c
+ drivers/led/issi/is31fl3731.c
+I2C_DRIVER_REQUIRED = yes
diff --git a/keyboards/wilba_tech/rama_works_koyu/config.h b/keyboards/wilba_tech/rama_works_koyu/config.h
index c3bb43ec6d..1d57ac9e55 100644
--- a/keyboards/wilba_tech/rama_works_koyu/config.h
+++ b/keyboards/wilba_tech/rama_works_koyu/config.h
@@ -16,8 +16,9 @@
#pragma once
// IS31FL3731 driver
-#define DRIVER_COUNT 2
-#define RGB_MATRIX_LED_COUNT 72
+#define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND
+#define IS31FL3731_I2C_ADDRESS_2 IS31FL3731_I2C_ADDRESS_SDA
+#define IS31FL3731_LED_COUNT 72
// Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap
#define LOCKING_SUPPORT_ENABLE
diff --git a/keyboards/wilba_tech/rama_works_koyu/rama_works_koyu.c b/keyboards/wilba_tech/rama_works_koyu/rama_works_koyu.c
index 03d1e12159..f7b1595d24 100644
--- a/keyboards/wilba_tech/rama_works_koyu/rama_works_koyu.c
+++ b/keyboards/wilba_tech/rama_works_koyu/rama_works_koyu.c
@@ -14,5 +14,93 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef RGB_BACKLIGHT_KOYU
-#error RGB_BACKLIGHT_KOYU not defined, you done goofed somehao, brah
+# error RGB_BACKLIGHT_KOYU not defined, you done goofed somehao, brah
+#else
+# include "drivers/led/issi/is31fl3731.h"
+#endif
+
+#if defined(RGB_MATRIX_ENABLE) || defined(RGB_BACKLIGHT_KOYU)
+const is31fl3731_led_t PROGMEM g_is31fl3731_leds[IS31FL3731_LED_COUNT] = {
+/* Refer to IS31 manual for these locations
+ * driver
+ * | R location
+ * | | G location
+ * | | | B location
+ * | | | | */
+ {0, C2_1, C3_1, C4_1}, // LA0
+ {0, C1_1, C3_2, C4_2}, // LA1
+ {0, C1_2, C2_2, C4_3}, // LA2
+ {0, C1_3, C2_3, C3_3}, // LA3
+ {0, C1_4, C2_4, C3_4}, // LA4
+ {0, C1_5, C2_5, C3_5}, // LA5
+ {0, C1_6, C2_6, C3_6}, // LA6
+ {0, C1_7, C2_7, C3_7}, // LA7
+ {0, C1_8, C2_8, C3_8}, // LA8
+ {0, C9_1, C8_1, C7_1}, // LA9
+ {0, C9_2, C8_2, C7_2}, // LA10
+ {0, C9_3, C8_3, C7_3}, // LA11
+ {0, C9_4, C8_4, C7_4}, // LA12
+ {0, C9_5, C8_5, C7_5}, // LA13
+ {0, C9_6, C8_6, C7_6}, // LA14
+ {0, C9_7, C8_7, C6_6}, // LA15
+ {0, C9_8, C7_7, C6_7}, // LA16
+ {0, C8_8, C7_8, C6_8}, // LA17
+
+ {0, C2_9, C3_9, C4_9}, // LB0
+ {0, C1_9, C3_10, C4_10}, // LB1
+ {0, C1_10, C2_10, C4_11}, // LB2
+ {0, C1_11, C2_11, C3_11}, // LB3
+ {0, C1_12, C2_12, C3_12}, // LB4
+ {0, C1_13, C2_13, C3_13}, // LB5
+ {0, C1_14, C2_14, C3_14}, // LB6
+ {0, C1_15, C2_15, C3_15}, // LB7
+ {0, C1_16, C2_16, C3_16}, // LB8
+ {0, C9_9, C8_9, C7_9}, // LB9
+ {0, C9_10, C8_10, C7_10}, // LB10
+ {0, C9_11, C8_11, C7_11}, // LB11
+ {0, C9_12, C8_12, C7_12}, // LB12
+ {0, C9_13, C8_13, C7_13}, // LB13
+ {0, C9_14, C8_14, C7_14}, // LB14
+ {0, C9_15, C8_15, C6_14}, // LB15
+ {0, C9_16, C7_15, C6_15}, // LB16
+ {0, C8_16, C7_16, C6_16}, // LB17
+
+ {1, C2_1, C3_1, C4_1}, // LC0
+ {1, C1_1, C3_2, C4_2}, // LC1
+ {1, C1_2, C2_2, C4_3}, // LC2
+ {1, C1_3, C2_3, C3_3}, // LC3
+ {1, C1_4, C2_4, C3_4}, // LC4
+ {1, C1_5, C2_5, C3_5}, // LC5
+ {1, C1_6, C2_6, C3_6}, // LC6
+ {1, C1_7, C2_7, C3_7}, // LC7
+ {1, C1_8, C2_8, C3_8}, // LC8
+ {1, C9_1, C8_1, C7_1}, // LC9
+ {1, C9_2, C8_2, C7_2}, // LC10
+ {1, C9_3, C8_3, C7_3}, // LC11
+ {1, C9_4, C8_4, C7_4}, // LC12
+ {1, C9_5, C8_5, C7_5}, // LC13
+ {1, C9_6, C8_6, C7_6}, // LC14
+ {1, C9_7, C8_7, C6_6}, // LC15
+ {1, C9_8, C7_7, C6_7}, // LC16
+ {1, C8_8, C7_8, C6_8}, // LC17
+
+ {1, C2_9, C3_9, C4_9}, // LD0
+ {1, C1_9, C3_10, C4_10}, // LD1
+ {1, C1_10, C2_10, C4_11}, // LD2
+ {1, C1_11, C2_11, C3_11}, // LD3
+ {1, C1_12, C2_12, C3_12}, // LD4
+ {1, C1_13, C2_13, C3_13}, // LD5
+ {1, C1_14, C2_14, C3_14}, // LD6
+ {1, C1_15, C2_15, C3_15}, // LD7
+ {1, C1_16, C2_16, C3_16}, // LD8
+ {1, C9_9, C8_9, C7_9}, // LD9
+ {1, C9_10, C8_10, C7_10}, // LD10
+ {1, C9_11, C8_11, C7_11}, // LD11
+ {1, C9_12, C8_12, C7_12}, // LD12
+ {1, C9_13, C8_13, C7_13}, // LD13
+ {1, C9_14, C8_14, C7_14}, // LD14
+ {1, C9_15, C8_15, C6_14}, // LD15
+ {1, C9_16, C7_15, C6_15}, // LD16
+ {1, C8_16, C7_16, C6_16}, // LD17
+};
#endif
diff --git a/keyboards/wilba_tech/rama_works_koyu/rules.mk b/keyboards/wilba_tech/rama_works_koyu/rules.mk
index be907583a2..c921fc5c18 100644
--- a/keyboards/wilba_tech/rama_works_koyu/rules.mk
+++ b/keyboards/wilba_tech/rama_works_koyu/rules.mk
@@ -22,5 +22,5 @@ CIE1931_CURVE = yes
SRC = keyboards/wilba_tech/wt_main.c \
keyboards/wilba_tech/wt_rgb_backlight.c \
quantum/color.c \
- drivers/led/issi/is31fl3731.c \
- i2c_master.c
+ drivers/led/issi/is31fl3731.c
+I2C_DRIVER_REQUIRED = yes
diff --git a/keyboards/wilba_tech/rama_works_m10_b/config.h b/keyboards/wilba_tech/rama_works_m10_b/config.h
index 00ecf5f186..c8c922be6f 100644
--- a/keyboards/wilba_tech/rama_works_m10_b/config.h
+++ b/keyboards/wilba_tech/rama_works_m10_b/config.h
@@ -37,5 +37,3 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
-
-#define DYNAMIC_KEYMAP_LAYER_COUNT 10
diff --git a/keyboards/wilba_tech/rama_works_m10_b/info.json b/keyboards/wilba_tech/rama_works_m10_b/info.json
index 0d80bce8a8..eb861e8d3f 100644
--- a/keyboards/wilba_tech/rama_works_m10_b/info.json
+++ b/keyboards/wilba_tech/rama_works_m10_b/info.json
@@ -13,6 +13,9 @@
"rows": ["E6"]
},
"diode_direction": "COL2ROW",
+ "dynamic_keymap": {
+ "layer_count": 10
+ },
"backlight": {
"pin": "C6"
},
diff --git a/keyboards/wilba_tech/rama_works_m10_c/config.h b/keyboards/wilba_tech/rama_works_m10_c/config.h
index 1cc9655b1b..736506a493 100644
--- a/keyboards/wilba_tech/rama_works_m10_c/config.h
+++ b/keyboards/wilba_tech/rama_works_m10_c/config.h
@@ -21,8 +21,8 @@
#define LOCKING_RESYNC_ENABLE
// IS31FL3731 driver
-#define DRIVER_COUNT 1
-#define RGB_MATRIX_LED_COUNT 12
+#define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND
+#define IS31FL3731_LED_COUNT 12
// Enable WT RGB backlight
#define RGB_BACKLIGHT_ENABLED 1
@@ -73,8 +73,6 @@
#define RGB_BACKLIGHT_LAYER_2_INDICATOR { .color = { .h = 0, .s = 0 }, .index = 255 }
#define RGB_BACKLIGHT_LAYER_3_INDICATOR { .color = { .h = 0, .s = 0 }, .index = 255 }
-#define DYNAMIC_KEYMAP_LAYER_COUNT 10
-
// Backlight config starts after VIA's EEPROM usage,
// dynamic keymaps start after this.
#define VIA_EEPROM_CUSTOM_CONFIG_SIZE 51
diff --git a/keyboards/wilba_tech/rama_works_m10_c/info.json b/keyboards/wilba_tech/rama_works_m10_c/info.json
index 64af4a5dcf..3b75a67557 100644
--- a/keyboards/wilba_tech/rama_works_m10_c/info.json
+++ b/keyboards/wilba_tech/rama_works_m10_c/info.json
@@ -13,6 +13,9 @@
"rows": ["E6"]
},
"diode_direction": "COL2ROW",
+ "dynamic_keymap": {
+ "layer_count": 10
+ },
"processor": "atmega32u4",
"bootloader": "atmel-dfu",
"layouts": {
diff --git a/keyboards/wilba_tech/rama_works_m10_c/rama_works_m10_c.c b/keyboards/wilba_tech/rama_works_m10_c/rama_works_m10_c.c
index 17fa921db6..8f23c9130b 100644
--- a/keyboards/wilba_tech/rama_works_m10_c/rama_works_m10_c.c
+++ b/keyboards/wilba_tech/rama_works_m10_c/rama_works_m10_c.c
@@ -14,5 +14,24 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef RGB_BACKLIGHT_M10_C
-#error RGB_BACKLIGHT_M10_C not defined
-#endif \ No newline at end of file
+# error RGB_BACKLIGHT_M10_C not defined
+#else
+# include "drivers/led/issi/is31fl3731.h"
+#endif
+
+#if defined(RGB_MATRIX_ENABLE) || defined(RGB_BACKLIGHT_M10_C)
+const is31fl3731_led_t PROGMEM g_is31fl3731_leds[IS31FL3731_LED_COUNT] = {
+ {0, C1_9, C3_10, C4_10}, // LB1
+ {0, C1_10, C2_10, C4_11}, // LB2
+ {0, C1_11, C2_11, C3_11}, // LB3
+ {0, C1_12, C2_12, C3_12}, // LB4
+ {0, C1_13, C2_13, C3_13}, // LB5
+ {0, C1_14, C2_14, C3_14}, // LB6
+ {0, C9_11, C8_11, C7_11}, // LB11
+ {0, C9_12, C8_12, C7_12}, // LB12
+ {0, C9_13, C8_13, C7_13}, // LB13
+ {0, C9_14, C8_14, C7_14}, // LB14
+ {0, C9_15, C8_15, C6_14}, // LB15
+ {0, C9_16, C7_15, C6_15} // LB16
+};
+#endif
diff --git a/keyboards/wilba_tech/rama_works_m10_c/rules.mk b/keyboards/wilba_tech/rama_works_m10_c/rules.mk
index 89e17a01b4..d8a2bae455 100644
--- a/keyboards/wilba_tech/rama_works_m10_c/rules.mk
+++ b/keyboards/wilba_tech/rama_works_m10_c/rules.mk
@@ -21,5 +21,5 @@ OPT_DEFS += -DNO_SUSPEND_POWER_DOWN
SRC = keyboards/wilba_tech/wt_main.c \
keyboards/wilba_tech/wt_rgb_backlight.c \
quantum/color.c \
- drivers/led/issi/is31fl3731.c \
- i2c_master.c
+ drivers/led/issi/is31fl3731.c
+I2C_DRIVER_REQUIRED = yes
diff --git a/keyboards/wilba_tech/rama_works_m50_a/config.h b/keyboards/wilba_tech/rama_works_m50_a/config.h
index ab04ab070b..bad8f7f346 100644
--- a/keyboards/wilba_tech/rama_works_m50_a/config.h
+++ b/keyboards/wilba_tech/rama_works_m50_a/config.h
@@ -21,8 +21,9 @@
#define LOCKING_RESYNC_ENABLE
// IS31FL3731 driver
-#define DRIVER_COUNT 2
-#define RGB_MATRIX_LED_COUNT 72
+#define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND
+#define IS31FL3731_I2C_ADDRESS_2 IS31FL3731_I2C_ADDRESS_SDA
+#define IS31FL3731_LED_COUNT 72
// Enable WT RGB backlight
#define RGB_BACKLIGHT_ENABLED 1
diff --git a/keyboards/wilba_tech/rama_works_m50_a/rama_works_m50_a.c b/keyboards/wilba_tech/rama_works_m50_a/rama_works_m50_a.c
index ee5ebf93fd..69f92df893 100644
--- a/keyboards/wilba_tech/rama_works_m50_a/rama_works_m50_a.c
+++ b/keyboards/wilba_tech/rama_works_m50_a/rama_works_m50_a.c
@@ -15,4 +15,92 @@
*/
#ifndef RGB_BACKLIGHT_M50_A
#error RGB_BACKLIGHT_M50_A not defined
+#else
+# include "drivers/led/issi/is31fl3731.h"
+#endif
+
+#if defined(RGB_MATRIX_ENABLE) || defined(RGB_BACKLIGHT_M50_A)
+const is31fl3731_led_t PROGMEM g_is31fl3731_leds[IS31FL3731_LED_COUNT] = {
+/* Refer to IS31 manual for these locations
+ * driver
+ * | R location
+ * | | G location
+ * | | | B location
+ * | | | | */
+ {0, C2_1, C3_1, C4_1}, // LA0
+ {0, C1_1, C3_2, C4_2}, // LA1
+ {0, C1_2, C2_2, C4_3}, // LA2
+ {0, C1_3, C2_3, C3_3}, // LA3
+ {0, C1_4, C2_4, C3_4}, // LA4
+ {0, C1_5, C2_5, C3_5}, // LA5
+ {0, C1_6, C2_6, C3_6}, // LA6
+ {0, C1_7, C2_7, C3_7}, // LA7
+ {0, C1_8, C2_8, C3_8}, // LA8
+ {0, C9_1, C8_1, C7_1}, // LA9
+ {0, C9_2, C8_2, C7_2}, // LA10
+ {0, C9_3, C8_3, C7_3}, // LA11
+ {0, C9_4, C8_4, C7_4}, // LA12
+ {0, C9_5, C8_5, C7_5}, // LA13
+ {0, C9_6, C8_6, C7_6}, // LA14
+ {0, C9_7, C8_7, C6_6}, // LA15
+ {0, C9_8, C7_7, C6_7}, // LA16
+ {0, C8_8, C7_8, C6_8}, // LA17
+
+ {0, C2_9, C3_9, C4_9}, // LB0
+ {0, C1_9, C3_10, C4_10}, // LB1
+ {0, C1_10, C2_10, C4_11}, // LB2
+ {0, C1_11, C2_11, C3_11}, // LB3
+ {0, C1_12, C2_12, C3_12}, // LB4
+ {0, C1_13, C2_13, C3_13}, // LB5
+ {0, C1_14, C2_14, C3_14}, // LB6
+ {0, C1_15, C2_15, C3_15}, // LB7
+ {0, C1_16, C2_16, C3_16}, // LB8
+ {0, C9_9, C8_9, C7_9}, // LB9
+ {0, C9_10, C8_10, C7_10}, // LB10
+ {0, C9_11, C8_11, C7_11}, // LB11
+ {0, C9_12, C8_12, C7_12}, // LB12
+ {0, C9_13, C8_13, C7_13}, // LB13
+ {0, C9_14, C8_14, C7_14}, // LB14
+ {0, C9_15, C8_15, C6_14}, // LB15
+ {0, C9_16, C7_15, C6_15}, // LB16
+ {0, C8_16, C7_16, C6_16}, // LB17
+
+ {1, C2_1, C3_1, C4_1}, // LC0
+ {1, C1_1, C3_2, C4_2}, // LC1
+ {1, C1_2, C2_2, C4_3}, // LC2
+ {1, C1_3, C2_3, C3_3}, // LC3
+ {1, C1_4, C2_4, C3_4}, // LC4
+ {1, C1_5, C2_5, C3_5}, // LC5
+ {1, C1_6, C2_6, C3_6}, // LC6
+ {1, C1_7, C2_7, C3_7}, // LC7
+ {1, C1_8, C2_8, C3_8}, // LC8
+ {1, C9_1, C8_1, C7_1}, // LC9
+ {1, C9_2, C8_2, C7_2}, // LC10
+ {1, C9_3, C8_3, C7_3}, // LC11
+ {1, C9_4, C8_4, C7_4}, // LC12
+ {1, C9_5, C8_5, C7_5}, // LC13
+ {1, C9_6, C8_6, C7_6}, // LC14
+ {1, C9_7, C8_7, C6_6}, // LC15
+ {1, C9_8, C7_7, C6_7}, // LC16
+ {1, C8_8, C7_8, C6_8}, // LC17
+
+ {1, C2_9, C3_9, C4_9}, // LD0
+ {1, C1_9, C3_10, C4_10}, // LD1
+ {1, C1_10, C2_10, C4_11}, // LD2
+ {1, C1_11, C2_11, C3_11}, // LD3
+ {1, C1_12, C2_12, C3_12}, // LD4
+ {1, C1_13, C2_13, C3_13}, // LD5
+ {1, C1_14, C2_14, C3_14}, // LD6
+ {1, C1_15, C2_15, C3_15}, // LD7
+ {1, C1_16, C2_16, C3_16}, // LD8
+ {1, C9_9, C8_9, C7_9}, // LD9
+ {1, C9_10, C8_10, C7_10}, // LD10
+ {1, C9_11, C8_11, C7_11}, // LD11
+ {1, C9_12, C8_12, C7_12}, // LD12
+ {1, C9_13, C8_13, C7_13}, // LD13
+ {1, C9_14, C8_14, C7_14}, // LD14
+ {1, C9_15, C8_15, C6_14}, // LD15
+ {1, C9_16, C7_15, C6_15}, // LD16
+ {1, C8_16, C7_16, C6_16}, // LD17
+};
#endif
diff --git a/keyboards/wilba_tech/rama_works_m50_a/rules.mk b/keyboards/wilba_tech/rama_works_m50_a/rules.mk
index 89e17a01b4..d8a2bae455 100644
--- a/keyboards/wilba_tech/rama_works_m50_a/rules.mk
+++ b/keyboards/wilba_tech/rama_works_m50_a/rules.mk
@@ -21,5 +21,5 @@ OPT_DEFS += -DNO_SUSPEND_POWER_DOWN
SRC = keyboards/wilba_tech/wt_main.c \
keyboards/wilba_tech/wt_rgb_backlight.c \
quantum/color.c \
- drivers/led/issi/is31fl3731.c \
- i2c_master.c
+ drivers/led/issi/is31fl3731.c
+I2C_DRIVER_REQUIRED = yes
diff --git a/keyboards/wilba_tech/rama_works_m60_a/config.h b/keyboards/wilba_tech/rama_works_m60_a/config.h
index c80a018496..7af0f156c8 100644
--- a/keyboards/wilba_tech/rama_works_m60_a/config.h
+++ b/keyboards/wilba_tech/rama_works_m60_a/config.h
@@ -16,8 +16,9 @@
#pragma once
// IS31FL3731 driver
-#define DRIVER_COUNT 2
-#define RGB_MATRIX_LED_COUNT 72
+#define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND
+#define IS31FL3731_I2C_ADDRESS_2 IS31FL3731_I2C_ADDRESS_SDA
+#define IS31FL3731_LED_COUNT 72
// Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap
#define LOCKING_SUPPORT_ENABLE
diff --git a/keyboards/wilba_tech/rama_works_m60_a/keymaps/mguterl/keymap.c b/keyboards/wilba_tech/rama_works_m60_a/keymaps/mguterl/keymap.c
deleted file mode 100644
index 0b77e16403..0000000000
--- a/keyboards/wilba_tech/rama_works_m60_a/keymaps/mguterl/keymap.c
+++ /dev/null
@@ -1,82 +0,0 @@
-#include QMK_KEYBOARD_H
-
-
-#define QWER 0
-#define GAMING 1
-#define HHKB 2
-#define UTIL 3
-#define LIGHTING 4
-#define HPR_TAB ALL_T(KC_TAB) // Tap for Tab, hold for Hyper (Super+Ctrl+Shift+Alt)
-#define TG_GAME TG(GAMING)
-
-enum custom_keycodes {
- FN_HHKB = SAFE_RANGE,
- FN_UTIL
-};
-
-bool process_record_user(uint16_t keycode, keyrecord_t *record)
-{
- switch(keycode) {
- case FN_HHKB:
- if (record->event.pressed) {
- layer_on(2);
- update_tri_layer(2, 3, 4);
- } else {
- layer_off(2);
- update_tri_layer(2, 3, 4);
- }
- return false;
- break;
- case FN_UTIL:
- if (record->event.pressed) {
- layer_on(3);
- update_tri_layer(2, 3, 4);
- } else {
- layer_off(3);
- update_tri_layer(2, 3, 4);
- }
- return false;
- break;
- default:
- return true;
- }
-}
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
-[QWER] = LAYOUT_60_hhkb(
- QK_GESC, 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_BSLS, KC_GRV,
- HPR_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_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_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, FN_HHKB,
- KC_LALT, KC_LGUI, LT(UTIL, KC_SPC), KC_RGUI, FN_UTIL),
-
-[GAMING] = LAYOUT_60_hhkb(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- KC_TAB, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, KC_SPC, _______, _______),
-
-[HHKB] = LAYOUT_60_hhkb(
- KC_GRV, 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_INS, KC_DEL,
- KC_CAPS, _______, _______, _______, _______, _______, _______, _______, KC_PSCR, KC_SCRL, KC_PAUS, KC_UP, _______, _______,
- _______, KC_VOLD, KC_VOLU, KC_MUTE, KC_EJCT, _______, KC_PAST, KC_PSLS, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, _______,
- _______, _______, _______, _______, _______, _______, KC_PPLS, KC_PMNS, KC_END, KC_PGDN, KC_DOWN, _______, _______,
- _______, _______, _______, _______, _______),
-
-[UTIL] = LAYOUT_60_hhkb(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, KC_MPLY, KC_MPRV, KC_MNXT, _______, _______, KC_HOME, KC_PGDN, KC_PGUP, KC_END, _______, _______, _______, _______,
- _______, KC_VOLD, KC_VOLU, KC_MUTE, _______, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______),
-
-[LIGHTING] = LAYOUT_60_hhkb(
- QK_BOOT, EF_DEC, EF_INC, H1_DEC, H1_INC, H2_DEC, H2_INC, _______, _______, _______, _______, BR_DEC, BR_INC, _______, _______,
- TG_GAME, _______, _______, S1_DEC, S1_INC, S2_DEC, S2_INC, _______, _______, _______, _______, ES_DEC, ES_INC, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______),
-
-};
diff --git a/keyboards/wilba_tech/rama_works_m60_a/keymaps/mguterl/readme.md b/keyboards/wilba_tech/rama_works_m60_a/keymaps/mguterl/readme.md
deleted file mode 100644
index dc03b1491e..0000000000
--- a/keyboards/wilba_tech/rama_works_m60_a/keymaps/mguterl/readme.md
+++ /dev/null
@@ -1,15 +0,0 @@
-# Michael Guterl's M60-A Layout
-
-Check out my [userspace](/users/mguterl) for the custom keycodes that are used
-in keymap.c.
-
-This is a pretty standard HHKB layout. I add a couple of layers to add
-some conveniences and add vimkeys for navigation.
-
-If you flash a layout without RESET then you can unplug the keyboard, hold
-spacebar and escape, and then plug the keyboard back. This sequence of
-actions will allow you to flash the keyboard.
-
-```sh
-make wilba_tech/rama_works_m60a:mguterl:flash
-```
diff --git a/keyboards/wilba_tech/rama_works_m60_a/keymaps/mguterl/rules.mk b/keyboards/wilba_tech/rama_works_m60_a/keymaps/mguterl/rules.mk
deleted file mode 100644
index 800d917f28..0000000000
--- a/keyboards/wilba_tech/rama_works_m60_a/keymaps/mguterl/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-DYNAMIC_KEYMAP_ENABLE = no
diff --git a/keyboards/wilba_tech/rama_works_m60_a/keymaps/zyber/config.h b/keyboards/wilba_tech/rama_works_m60_a/keymaps/zyber/config.h
deleted file mode 100644
index 9ad052aab4..0000000000
--- a/keyboards/wilba_tech/rama_works_m60_a/keymaps/zyber/config.h
+++ /dev/null
@@ -1,8 +0,0 @@
-// Copyright 2022 ZyBeR (@ZyberSE)
-// SPDX-License-Identifier: GPL-2.0
-
-#pragma once
-#undef PRODUCT
-#define PRODUCT RAMA WORKS M60-A Seq2
-#undef DESCRIPTION
-#define DESCRIPTION RAMA WORKS M60-A Seq2
diff --git a/keyboards/wilba_tech/rama_works_m60_a/keymaps/zyber/keymap.c b/keyboards/wilba_tech/rama_works_m60_a/keymaps/zyber/keymap.c
deleted file mode 100644
index 5b61116415..0000000000
--- a/keyboards/wilba_tech/rama_works_m60_a/keymaps/zyber/keymap.c
+++ /dev/null
@@ -1,42 +0,0 @@
-// Copyright 2022 ZyBeR (@ZyberSE)
-// SPDX-License-Identifier: GPL-2.0
-
-#include "zyber.h"
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
-// Default layer
-[0] = LAYOUT_60_hhkb(
- KC_ESC, KC_1, KC_2, KC_3,TD(SSHT), KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS, KC_DEL,
- KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, TD(LBRC), KC_RBRC, KC_BSPC,
- CTRL_C_UP, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, TD(SCLN), TD(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, TL_LOWR,
- KC_LALT, KC_LGUI, KC_SPC, KC_RALT, TL_UPPR),
-
-// Fn1 Layer
-[1] = LAYOUT_60_hhkb(
- KC_GRV, 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_INS, KC_DEL,
- KC_CAPS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR, KC_SCRL, KC_PAUS, KC_UP, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_VOLD, KC_VOLU, KC_MUTE, KC_EJCT, KC_TRNS, KC_PAST, KC_PSLS, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PPLS, KC_PMNS, KC_END, KC_PGDN, KC_DOWN, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
-
-// Fn2 Layer
-[2] = LAYOUT_60_hhkb(
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
-
-// Fn3 Layer (zeal60 Configuration)
-[3] = LAYOUT_60_hhkb(
- QK_BOOT, EF_DEC, EF_INC, H1_DEC, H1_INC, H2_DEC, H2_INC, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, BR_DEC, BR_INC, KC_TRNS, EE_CLR,
- KC_TRNS, KC_TRNS, KC_TRNS, S1_DEC, S1_INC, S2_DEC, S2_INC, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, ES_DEC, ES_INC, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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/wilba_tech/rama_works_m60_a/keymaps/zyber/rules.mk b/keyboards/wilba_tech/rama_works_m60_a/keymaps/zyber/rules.mk
deleted file mode 100644
index 961bb9bab8..0000000000
--- a/keyboards/wilba_tech/rama_works_m60_a/keymaps/zyber/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-DYNAMIC_KEYMAP_ENABLE = no \ No newline at end of file
diff --git a/keyboards/wilba_tech/rama_works_m60_a/rama_works_m60_a.c b/keyboards/wilba_tech/rama_works_m60_a/rama_works_m60_a.c
index 80a98460d8..dd292c685d 100644
--- a/keyboards/wilba_tech/rama_works_m60_a/rama_works_m60_a.c
+++ b/keyboards/wilba_tech/rama_works_m60_a/rama_works_m60_a.c
@@ -14,5 +14,93 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef RGB_BACKLIGHT_M60_A
-#error RGB_BACKLIGHT_M60_A not defined, you done goofed somehao, brah
+# error RGB_BACKLIGHT_M60_A not defined, you done goofed somehao, brah
+#else
+# include "drivers/led/issi/is31fl3731.h"
+#endif
+
+#if defined(RGB_MATRIX_ENABLE) || defined(RGB_BACKLIGHT_M60_A)
+const is31fl3731_led_t PROGMEM g_is31fl3731_leds[IS31FL3731_LED_COUNT] = {
+/* Refer to IS31 manual for these locations
+ * driver
+ * | R location
+ * | | G location
+ * | | | B location
+ * | | | | */
+ {0, C2_1, C3_1, C4_1}, // LA0
+ {0, C1_1, C3_2, C4_2}, // LA1
+ {0, C1_2, C2_2, C4_3}, // LA2
+ {0, C1_3, C2_3, C3_3}, // LA3
+ {0, C1_4, C2_4, C3_4}, // LA4
+ {0, C1_5, C2_5, C3_5}, // LA5
+ {0, C1_6, C2_6, C3_6}, // LA6
+ {0, C1_7, C2_7, C3_7}, // LA7
+ {0, C1_8, C2_8, C3_8}, // LA8
+ {0, C9_1, C8_1, C7_1}, // LA9
+ {0, C9_2, C8_2, C7_2}, // LA10
+ {0, C9_3, C8_3, C7_3}, // LA11
+ {0, C9_4, C8_4, C7_4}, // LA12
+ {0, C9_5, C8_5, C7_5}, // LA13
+ {0, C9_6, C8_6, C7_6}, // LA14
+ {0, C9_7, C8_7, C6_6}, // LA15
+ {0, C9_8, C7_7, C6_7}, // LA16
+ {0, C8_8, C7_8, C6_8}, // LA17
+
+ {0, C2_9, C3_9, C4_9}, // LB0
+ {0, C1_9, C3_10, C4_10}, // LB1
+ {0, C1_10, C2_10, C4_11}, // LB2
+ {0, C1_11, C2_11, C3_11}, // LB3
+ {0, C1_12, C2_12, C3_12}, // LB4
+ {0, C1_13, C2_13, C3_13}, // LB5
+ {0, C1_14, C2_14, C3_14}, // LB6
+ {0, C1_15, C2_15, C3_15}, // LB7
+ {0, C1_16, C2_16, C3_16}, // LB8
+ {0, C9_9, C8_9, C7_9}, // LB9
+ {0, C9_10, C8_10, C7_10}, // LB10
+ {0, C9_11, C8_11, C7_11}, // LB11
+ {0, C9_12, C8_12, C7_12}, // LB12
+ {0, C9_13, C8_13, C7_13}, // LB13
+ {0, C9_14, C8_14, C7_14}, // LB14
+ {0, C9_15, C8_15, C6_14}, // LB15
+ {0, C9_16, C7_15, C6_15}, // LB16
+ {0, C8_16, C7_16, C6_16}, // LB17
+
+ {1, C2_1, C3_1, C4_1}, // LC0
+ {1, C1_1, C3_2, C4_2}, // LC1
+ {1, C1_2, C2_2, C4_3}, // LC2
+ {1, C1_3, C2_3, C3_3}, // LC3
+ {1, C1_4, C2_4, C3_4}, // LC4
+ {1, C1_5, C2_5, C3_5}, // LC5
+ {1, C1_6, C2_6, C3_6}, // LC6
+ {1, C1_7, C2_7, C3_7}, // LC7
+ {1, C1_8, C2_8, C3_8}, // LC8
+ {1, C9_1, C8_1, C7_1}, // LC9
+ {1, C9_2, C8_2, C7_2}, // LC10
+ {1, C9_3, C8_3, C7_3}, // LC11
+ {1, C9_4, C8_4, C7_4}, // LC12
+ {1, C9_5, C8_5, C7_5}, // LC13
+ {1, C9_6, C8_6, C7_6}, // LC14
+ {1, C9_7, C8_7, C6_6}, // LC15
+ {1, C9_8, C7_7, C6_7}, // LC16
+ {1, C8_8, C7_8, C6_8}, // LC17
+
+ {1, C2_9, C3_9, C4_9}, // LD0
+ {1, C1_9, C3_10, C4_10}, // LD1
+ {1, C1_10, C2_10, C4_11}, // LD2
+ {1, C1_11, C2_11, C3_11}, // LD3
+ {1, C1_12, C2_12, C3_12}, // LD4
+ {1, C1_13, C2_13, C3_13}, // LD5
+ {1, C1_14, C2_14, C3_14}, // LD6
+ {1, C1_15, C2_15, C3_15}, // LD7
+ {1, C1_16, C2_16, C3_16}, // LD8
+ {1, C9_9, C8_9, C7_9}, // LD9
+ {1, C9_10, C8_10, C7_10}, // LD10
+ {1, C9_11, C8_11, C7_11}, // LD11
+ {1, C9_12, C8_12, C7_12}, // LD12
+ {1, C9_13, C8_13, C7_13}, // LD13
+ {1, C9_14, C8_14, C7_14}, // LD14
+ {1, C9_15, C8_15, C6_14}, // LD15
+ {1, C9_16, C7_15, C6_15}, // LD16
+ {1, C8_16, C7_16, C6_16}, // LD17
+};
#endif
diff --git a/keyboards/wilba_tech/rama_works_m60_a/rules.mk b/keyboards/wilba_tech/rama_works_m60_a/rules.mk
index be907583a2..c921fc5c18 100644
--- a/keyboards/wilba_tech/rama_works_m60_a/rules.mk
+++ b/keyboards/wilba_tech/rama_works_m60_a/rules.mk
@@ -22,5 +22,5 @@ CIE1931_CURVE = yes
SRC = keyboards/wilba_tech/wt_main.c \
keyboards/wilba_tech/wt_rgb_backlight.c \
quantum/color.c \
- drivers/led/issi/is31fl3731.c \
- i2c_master.c
+ drivers/led/issi/is31fl3731.c
+I2C_DRIVER_REQUIRED = yes
diff --git a/keyboards/wilba_tech/rama_works_m65_b/config.h b/keyboards/wilba_tech/rama_works_m65_b/config.h
index 6d3f0fb97f..0f3f228cda 100644
--- a/keyboards/wilba_tech/rama_works_m65_b/config.h
+++ b/keyboards/wilba_tech/rama_works_m65_b/config.h
@@ -21,8 +21,9 @@
#define LOCKING_RESYNC_ENABLE
// IS31FL3731 driver
-#define DRIVER_COUNT 2
-#define RGB_MATRIX_LED_COUNT 72
+#define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND
+#define IS31FL3731_I2C_ADDRESS_2 IS31FL3731_I2C_ADDRESS_SDA
+#define IS31FL3731_LED_COUNT 72
// Enable WT RGB backlight
#define RGB_BACKLIGHT_ENABLED 1
diff --git a/keyboards/wilba_tech/rama_works_m65_b/rama_works_m65_b.c b/keyboards/wilba_tech/rama_works_m65_b/rama_works_m65_b.c
index 62546fbfc9..8c92472ecb 100644
--- a/keyboards/wilba_tech/rama_works_m65_b/rama_works_m65_b.c
+++ b/keyboards/wilba_tech/rama_works_m65_b/rama_works_m65_b.c
@@ -14,5 +14,93 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef RGB_BACKLIGHT_M65_B
-#error RGB_BACKLIGHT_M65_B not defined
+# error RGB_BACKLIGHT_M65_B not defined
+#else
+# include "drivers/led/issi/is31fl3731.h"
+#endif
+
+#if defined(RGB_MATRIX_ENABLE) || defined(RGB_BACKLIGHT_M65_B)
+const is31fl3731_led_t PROGMEM g_is31fl3731_leds[IS31FL3731_LED_COUNT] = {
+/* Refer to IS31 manual for these locations
+ * driver
+ * | R location
+ * | | G location
+ * | | | B location
+ * | | | | */
+ {0, C2_1, C3_1, C4_1}, // LA0
+ {0, C1_1, C3_2, C4_2}, // LA1
+ {0, C1_2, C2_2, C4_3}, // LA2
+ {0, C1_3, C2_3, C3_3}, // LA3
+ {0, C1_4, C2_4, C3_4}, // LA4
+ {0, C1_5, C2_5, C3_5}, // LA5
+ {0, C1_6, C2_6, C3_6}, // LA6
+ {0, C1_7, C2_7, C3_7}, // LA7
+ {0, C1_8, C2_8, C3_8}, // LA8
+ {0, C9_1, C8_1, C7_1}, // LA9
+ {0, C9_2, C8_2, C7_2}, // LA10
+ {0, C9_3, C8_3, C7_3}, // LA11
+ {0, C9_4, C8_4, C7_4}, // LA12
+ {0, C9_5, C8_5, C7_5}, // LA13
+ {0, C9_6, C8_6, C7_6}, // LA14
+ {0, C9_7, C8_7, C6_6}, // LA15
+ {0, C9_8, C7_7, C6_7}, // LA16
+ {0, C8_8, C7_8, C6_8}, // LA17
+
+ {0, C2_9, C3_9, C4_9}, // LB0
+ {0, C1_9, C3_10, C4_10}, // LB1
+ {0, C1_10, C2_10, C4_11}, // LB2
+ {0, C1_11, C2_11, C3_11}, // LB3
+ {0, C1_12, C2_12, C3_12}, // LB4
+ {0, C1_13, C2_13, C3_13}, // LB5
+ {0, C1_14, C2_14, C3_14}, // LB6
+ {0, C1_15, C2_15, C3_15}, // LB7
+ {0, C1_16, C2_16, C3_16}, // LB8
+ {0, C9_9, C8_9, C7_9}, // LB9
+ {0, C9_10, C8_10, C7_10}, // LB10
+ {0, C9_11, C8_11, C7_11}, // LB11
+ {0, C9_12, C8_12, C7_12}, // LB12
+ {0, C9_13, C8_13, C7_13}, // LB13
+ {0, C9_14, C8_14, C7_14}, // LB14
+ {0, C9_15, C8_15, C6_14}, // LB15
+ {0, C9_16, C7_15, C6_15}, // LB16
+ {0, C8_16, C7_16, C6_16}, // LB17
+
+ {1, C2_1, C3_1, C4_1}, // LC0
+ {1, C1_1, C3_2, C4_2}, // LC1
+ {1, C1_2, C2_2, C4_3}, // LC2
+ {1, C1_3, C2_3, C3_3}, // LC3
+ {1, C1_4, C2_4, C3_4}, // LC4
+ {1, C1_5, C2_5, C3_5}, // LC5
+ {1, C1_6, C2_6, C3_6}, // LC6
+ {1, C1_7, C2_7, C3_7}, // LC7
+ {1, C1_8, C2_8, C3_8}, // LC8
+ {1, C9_1, C8_1, C7_1}, // LC9
+ {1, C9_2, C8_2, C7_2}, // LC10
+ {1, C9_3, C8_3, C7_3}, // LC11
+ {1, C9_4, C8_4, C7_4}, // LC12
+ {1, C9_5, C8_5, C7_5}, // LC13
+ {1, C9_6, C8_6, C7_6}, // LC14
+ {1, C9_7, C8_7, C6_6}, // LC15
+ {1, C9_8, C7_7, C6_7}, // LC16
+ {1, C8_8, C7_8, C6_8}, // LC17
+
+ {1, C2_9, C3_9, C4_9}, // LD0
+ {1, C1_9, C3_10, C4_10}, // LD1
+ {1, C1_10, C2_10, C4_11}, // LD2
+ {1, C1_11, C2_11, C3_11}, // LD3
+ {1, C1_12, C2_12, C3_12}, // LD4
+ {1, C1_13, C2_13, C3_13}, // LD5
+ {1, C1_14, C2_14, C3_14}, // LD6
+ {1, C1_15, C2_15, C3_15}, // LD7
+ {1, C1_16, C2_16, C3_16}, // LD8
+ {1, C9_9, C8_9, C7_9}, // LD9
+ {1, C9_10, C8_10, C7_10}, // LD10
+ {1, C9_11, C8_11, C7_11}, // LD11
+ {1, C9_12, C8_12, C7_12}, // LD12
+ {1, C9_13, C8_13, C7_13}, // LD13
+ {1, C9_14, C8_14, C7_14}, // LD14
+ {1, C9_15, C8_15, C6_14}, // LD15
+ {1, C9_16, C7_15, C6_15}, // LD16
+ {1, C8_16, C7_16, C6_16}, // LD17
+};
#endif
diff --git a/keyboards/wilba_tech/rama_works_m65_b/rules.mk b/keyboards/wilba_tech/rama_works_m65_b/rules.mk
index 89e17a01b4..d8a2bae455 100644
--- a/keyboards/wilba_tech/rama_works_m65_b/rules.mk
+++ b/keyboards/wilba_tech/rama_works_m65_b/rules.mk
@@ -21,5 +21,5 @@ OPT_DEFS += -DNO_SUSPEND_POWER_DOWN
SRC = keyboards/wilba_tech/wt_main.c \
keyboards/wilba_tech/wt_rgb_backlight.c \
quantum/color.c \
- drivers/led/issi/is31fl3731.c \
- i2c_master.c
+ drivers/led/issi/is31fl3731.c
+I2C_DRIVER_REQUIRED = yes
diff --git a/keyboards/wilba_tech/rama_works_m65_bx/config.h b/keyboards/wilba_tech/rama_works_m65_bx/config.h
index e367a7fc76..ed0d79aba3 100644
--- a/keyboards/wilba_tech/rama_works_m65_bx/config.h
+++ b/keyboards/wilba_tech/rama_works_m65_bx/config.h
@@ -21,8 +21,9 @@
#define LOCKING_RESYNC_ENABLE
// IS31FL3731 driver
-#define DRIVER_COUNT 2
-#define RGB_MATRIX_LED_COUNT 72
+#define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND
+#define IS31FL3731_I2C_ADDRESS_2 IS31FL3731_I2C_ADDRESS_SDA
+#define IS31FL3731_LED_COUNT 72
// Enable WT RGB backlight
#define RGB_BACKLIGHT_ENABLED 1
diff --git a/keyboards/wilba_tech/rama_works_m65_bx/rama_works_m65_bx.c b/keyboards/wilba_tech/rama_works_m65_bx/rama_works_m65_bx.c
index f390540a48..1709b0915e 100644
--- a/keyboards/wilba_tech/rama_works_m65_bx/rama_works_m65_bx.c
+++ b/keyboards/wilba_tech/rama_works_m65_bx/rama_works_m65_bx.c
@@ -14,5 +14,93 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef RGB_BACKLIGHT_M65_BX
-#error RGB_BACKLIGHT_M65_BX not defined
+# error RGB_BACKLIGHT_M65_BX not defined
+#else
+# include "drivers/led/issi/is31fl3731.h"
+#endif
+
+#if defined(RGB_MATRIX_ENABLE) || defined(RGB_BACKLIGHT_M65_BX)
+const is31fl3731_led_t PROGMEM g_is31fl3731_leds[IS31FL3731_LED_COUNT] = {
+/* Refer to IS31 manual for these locations
+ * driver
+ * | R location
+ * | | G location
+ * | | | B location
+ * | | | | */
+ {0, C2_1, C3_1, C4_1}, // LA0
+ {0, C1_1, C3_2, C4_2}, // LA1
+ {0, C1_2, C2_2, C4_3}, // LA2
+ {0, C1_3, C2_3, C3_3}, // LA3
+ {0, C1_4, C2_4, C3_4}, // LA4
+ {0, C1_5, C2_5, C3_5}, // LA5
+ {0, C1_6, C2_6, C3_6}, // LA6
+ {0, C1_7, C2_7, C3_7}, // LA7
+ {0, C1_8, C2_8, C3_8}, // LA8
+ {0, C9_1, C8_1, C7_1}, // LA9
+ {0, C9_2, C8_2, C7_2}, // LA10
+ {0, C9_3, C8_3, C7_3}, // LA11
+ {0, C9_4, C8_4, C7_4}, // LA12
+ {0, C9_5, C8_5, C7_5}, // LA13
+ {0, C9_6, C8_6, C7_6}, // LA14
+ {0, C9_7, C8_7, C6_6}, // LA15
+ {0, C9_8, C7_7, C6_7}, // LA16
+ {0, C8_8, C7_8, C6_8}, // LA17
+
+ {0, C2_9, C3_9, C4_9}, // LB0
+ {0, C1_9, C3_10, C4_10}, // LB1
+ {0, C1_10, C2_10, C4_11}, // LB2
+ {0, C1_11, C2_11, C3_11}, // LB3
+ {0, C1_12, C2_12, C3_12}, // LB4
+ {0, C1_13, C2_13, C3_13}, // LB5
+ {0, C1_14, C2_14, C3_14}, // LB6
+ {0, C1_15, C2_15, C3_15}, // LB7
+ {0, C1_16, C2_16, C3_16}, // LB8
+ {0, C9_9, C8_9, C7_9}, // LB9
+ {0, C9_10, C8_10, C7_10}, // LB10
+ {0, C9_11, C8_11, C7_11}, // LB11
+ {0, C9_12, C8_12, C7_12}, // LB12
+ {0, C9_13, C8_13, C7_13}, // LB13
+ {0, C9_14, C8_14, C7_14}, // LB14
+ {0, C9_15, C8_15, C6_14}, // LB15
+ {0, C9_16, C7_15, C6_15}, // LB16
+ {0, C8_16, C7_16, C6_16}, // LB17
+
+ {1, C2_1, C3_1, C4_1}, // LC0
+ {1, C1_1, C3_2, C4_2}, // LC1
+ {1, C1_2, C2_2, C4_3}, // LC2
+ {1, C1_3, C2_3, C3_3}, // LC3
+ {1, C1_4, C2_4, C3_4}, // LC4
+ {1, C1_5, C2_5, C3_5}, // LC5
+ {1, C1_6, C2_6, C3_6}, // LC6
+ {1, C1_7, C2_7, C3_7}, // LC7
+ {1, C1_8, C2_8, C3_8}, // LC8
+ {1, C9_1, C8_1, C7_1}, // LC9
+ {1, C9_2, C8_2, C7_2}, // LC10
+ {1, C9_3, C8_3, C7_3}, // LC11
+ {1, C9_4, C8_4, C7_4}, // LC12
+ {1, C9_5, C8_5, C7_5}, // LC13
+ {1, C9_6, C8_6, C7_6}, // LC14
+ {1, C9_7, C8_7, C6_6}, // LC15
+ {1, C9_8, C7_7, C6_7}, // LC16
+ {1, C8_8, C7_8, C6_8}, // LC17
+
+ {1, C2_9, C3_9, C4_9}, // LD0
+ {1, C1_9, C3_10, C4_10}, // LD1
+ {1, C1_10, C2_10, C4_11}, // LD2
+ {1, C1_11, C2_11, C3_11}, // LD3
+ {1, C1_12, C2_12, C3_12}, // LD4
+ {1, C1_13, C2_13, C3_13}, // LD5
+ {1, C1_14, C2_14, C3_14}, // LD6
+ {1, C1_15, C2_15, C3_15}, // LD7
+ {1, C1_16, C2_16, C3_16}, // LD8
+ {1, C9_9, C8_9, C7_9}, // LD9
+ {1, C9_10, C8_10, C7_10}, // LD10
+ {1, C9_11, C8_11, C7_11}, // LD11
+ {1, C9_12, C8_12, C7_12}, // LD12
+ {1, C9_13, C8_13, C7_13}, // LD13
+ {1, C9_14, C8_14, C7_14}, // LD14
+ {1, C9_15, C8_15, C6_14}, // LD15
+ {1, C9_16, C7_15, C6_15}, // LD16
+ {1, C8_16, C7_16, C6_16}, // LD17
+};
#endif
diff --git a/keyboards/wilba_tech/rama_works_m65_bx/rules.mk b/keyboards/wilba_tech/rama_works_m65_bx/rules.mk
index 89e17a01b4..d8a2bae455 100644
--- a/keyboards/wilba_tech/rama_works_m65_bx/rules.mk
+++ b/keyboards/wilba_tech/rama_works_m65_bx/rules.mk
@@ -21,5 +21,5 @@ OPT_DEFS += -DNO_SUSPEND_POWER_DOWN
SRC = keyboards/wilba_tech/wt_main.c \
keyboards/wilba_tech/wt_rgb_backlight.c \
quantum/color.c \
- drivers/led/issi/is31fl3731.c \
- i2c_master.c
+ drivers/led/issi/is31fl3731.c
+I2C_DRIVER_REQUIRED = yes
diff --git a/keyboards/wilba_tech/rama_works_m6_b/config.h b/keyboards/wilba_tech/rama_works_m6_b/config.h
index a117bcc2a8..112cd500be 100644
--- a/keyboards/wilba_tech/rama_works_m6_b/config.h
+++ b/keyboards/wilba_tech/rama_works_m6_b/config.h
@@ -20,6 +20,8 @@
/* Locking resynchronize hack */
#define LOCKING_RESYNC_ENABLE
+#define IS31FL3218_LED_COUNT 6
+
#define RGB_BACKLIGHT_ENABLED 1
// This conditionally compiles the backlight code for M6-B specifics
diff --git a/keyboards/wilba_tech/rama_works_m6_b/rama_works_m6_b.c b/keyboards/wilba_tech/rama_works_m6_b/rama_works_m6_b.c
index 581b31d753..cf37083fcc 100644
--- a/keyboards/wilba_tech/rama_works_m6_b/rama_works_m6_b.c
+++ b/keyboards/wilba_tech/rama_works_m6_b/rama_works_m6_b.c
@@ -14,5 +14,18 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef RGB_BACKLIGHT_M6_B
-#error RGB_BACKLIGHT_M6_B not defined, you done goofed somehao, brah
+# error RGB_BACKLIGHT_M6_B not defined, you done goofed somehao, brah
+#else
+# include "drivers/led/issi/is31fl3218.h"
+#endif
+
+#if defined(RGB_MATRIX_ENABLE) || defined(RGB_BACKLIGHT_M6_B)
+const is31fl3218_led_t PROGMEM g_is31fl3218_leds[IS31FL3218_LED_COUNT] = {
+ {OUT1, OUT2, OUT3},
+ {OUT4, OUT5, OUT6},
+ {OUT7, OUT8, OUT9},
+ {OUT10, OUT11, OUT12},
+ {OUT13, OUT14, OUT15},
+ {OUT16, OUT17, OUT18}
+};
#endif
diff --git a/keyboards/wilba_tech/rama_works_m6_b/rules.mk b/keyboards/wilba_tech/rama_works_m6_b/rules.mk
index 04a197576f..eff0605d90 100644
--- a/keyboards/wilba_tech/rama_works_m6_b/rules.mk
+++ b/keyboards/wilba_tech/rama_works_m6_b/rules.mk
@@ -22,5 +22,5 @@ CIE1931_CURVE = yes
SRC = keyboards/wilba_tech/wt_main.c \
keyboards/wilba_tech/wt_rgb_backlight.c \
quantum/color.c \
- drivers/led/issi/is31fl3218.c \
- i2c_master.c
+ drivers/led/issi/is31fl3218.c
+I2C_DRIVER_REQUIRED = yes
diff --git a/keyboards/wilba_tech/rama_works_u80_a/config.h b/keyboards/wilba_tech/rama_works_u80_a/config.h
index cb2d88bd47..ddbbcfba9b 100644
--- a/keyboards/wilba_tech/rama_works_u80_a/config.h
+++ b/keyboards/wilba_tech/rama_works_u80_a/config.h
@@ -38,8 +38,10 @@
//#define NO_ACTION_ONESHOT
// IS31FL3731 driver
-#define DRIVER_COUNT 3
-#define RGB_MATRIX_LED_COUNT 108
+#define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND
+#define IS31FL3731_I2C_ADDRESS_2 IS31FL3731_I2C_ADDRESS_SDA
+#define IS31FL3731_I2C_ADDRESS_3 IS31FL3731_I2C_ADDRESS_SCL
+#define IS31FL3731_LED_COUNT 108
#define RGB_BACKLIGHT_ENABLED 1
diff --git a/keyboards/wilba_tech/rama_works_u80_a/rama_works_u80_a.c b/keyboards/wilba_tech/rama_works_u80_a/rama_works_u80_a.c
new file mode 100644
index 0000000000..17091db7ce
--- /dev/null
+++ b/keyboards/wilba_tech/rama_works_u80_a/rama_works_u80_a.c
@@ -0,0 +1,132 @@
+// Copyright 2022 QMK
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#include "rama_works_u80_a.h"
+
+#ifdef RGB_BACKLIGHT_U80_A
+# include "drivers/led/issi/is31fl3731.h"
+#endif
+
+#if defined(RGB_MATRIX_ENABLE) || defined(RGB_BACKLIGHT_U80_A)
+const is31fl3731_led_t PROGMEM g_is31fl3731_leds[IS31FL3731_LED_COUNT] = {
+/* Refer to IS31 manual for these locations
+ * driver
+ * | R location
+ * | | G location
+ * | | | B location
+ * | | | | */
+ {0, C2_1, C3_1, C4_1}, // LA0
+ {0, C1_1, C3_2, C4_2}, // LA1
+ {0, C1_2, C2_2, C4_3}, // LA2
+ {0, C1_3, C2_3, C3_3}, // LA3
+ {0, C1_4, C2_4, C3_4}, // LA4
+ {0, C1_5, C2_5, C3_5}, // LA5
+ {0, C1_6, C2_6, C3_6}, // LA6
+ {0, C1_7, C2_7, C3_7}, // LA7
+ {0, C1_8, C2_8, C3_8}, // LA8
+ {0, C9_1, C8_1, C7_1}, // LA9
+ {0, C9_2, C8_2, C7_2}, // LA10
+ {0, C9_3, C8_3, C7_3}, // LA11
+ {0, C9_4, C8_4, C7_4}, // LA12
+ {0, C9_5, C8_5, C7_5}, // LA13
+ {0, C9_6, C8_6, C7_6}, // LA14
+ {0, C9_7, C8_7, C6_6}, // LA15
+ {0, C9_8, C7_7, C6_7}, // LA16
+ {0, C8_8, C7_8, C6_8}, // LA17
+
+ {0, C2_9, C3_9, C4_9}, // LB0
+ {0, C1_9, C3_10, C4_10}, // LB1
+ {0, C1_10, C2_10, C4_11}, // LB2
+ {0, C1_11, C2_11, C3_11}, // LB3
+ {0, C1_12, C2_12, C3_12}, // LB4
+ {0, C1_13, C2_13, C3_13}, // LB5
+ {0, C1_14, C2_14, C3_14}, // LB6
+ {0, C1_15, C2_15, C3_15}, // LB7
+ {0, C1_16, C2_16, C3_16}, // LB8
+ {0, C9_9, C8_9, C7_9}, // LB9
+ {0, C9_10, C8_10, C7_10}, // LB10
+ {0, C9_11, C8_11, C7_11}, // LB11
+ {0, C9_12, C8_12, C7_12}, // LB12
+ {0, C9_13, C8_13, C7_13}, // LB13
+ {0, C9_14, C8_14, C7_14}, // LB14
+ {0, C9_15, C8_15, C6_14}, // LB15
+ {0, C9_16, C7_15, C6_15}, // LB16
+ {0, C8_16, C7_16, C6_16}, // LB17
+
+ {1, C2_1, C3_1, C4_1}, // LC0
+ {1, C1_1, C3_2, C4_2}, // LC1
+ {1, C1_2, C2_2, C4_3}, // LC2
+ {1, C1_3, C2_3, C3_3}, // LC3
+ {1, C1_4, C2_4, C3_4}, // LC4
+ {1, C1_5, C2_5, C3_5}, // LC5
+ {1, C1_6, C2_6, C3_6}, // LC6
+ {1, C1_7, C2_7, C3_7}, // LC7
+ {1, C1_8, C2_8, C3_8}, // LC8
+ {1, C9_1, C8_1, C7_1}, // LC9
+ {1, C9_2, C8_2, C7_2}, // LC10
+ {1, C9_3, C8_3, C7_3}, // LC11
+ {1, C9_4, C8_4, C7_4}, // LC12
+ {1, C9_5, C8_5, C7_5}, // LC13
+ {1, C9_6, C8_6, C7_6}, // LC14
+ {1, C9_7, C8_7, C6_6}, // LC15
+ {1, C9_8, C7_7, C6_7}, // LC16
+ {1, C8_8, C7_8, C6_8}, // LC17
+
+ {1, C2_9, C3_9, C4_9}, // LD0
+ {1, C1_9, C3_10, C4_10}, // LD1
+ {1, C1_10, C2_10, C4_11}, // LD2
+ {1, C1_11, C2_11, C3_11}, // LD3
+ {1, C1_12, C2_12, C3_12}, // LD4
+ {1, C1_13, C2_13, C3_13}, // LD5
+ {1, C1_14, C2_14, C3_14}, // LD6
+ {1, C1_15, C2_15, C3_15}, // LD7
+ {1, C1_16, C2_16, C3_16}, // LD8
+ {1, C9_9, C8_9, C7_9}, // LD9
+ {1, C9_10, C8_10, C7_10}, // LD10
+ {1, C9_11, C8_11, C7_11}, // LD11
+ {1, C9_12, C8_12, C7_12}, // LD12
+ {1, C9_13, C8_13, C7_13}, // LD13
+ {1, C9_14, C8_14, C7_14}, // LD14
+ {1, C9_15, C8_15, C6_14}, // LD15
+ {1, C9_16, C7_15, C6_15}, // LD16
+ {1, C8_16, C7_16, C6_16}, // LD17
+
+ {2, C2_1, C3_1, C4_1}, // LE0
+ {2, C1_1, C3_2, C4_2}, // LE1
+ {2, C1_2, C2_2, C4_3}, // LE2
+ {2, C1_3, C2_3, C3_3}, // LE3
+ {2, C1_4, C2_4, C3_4}, // LE4
+ {2, C1_5, C2_5, C3_5}, // LE5
+ {2, C1_6, C2_6, C3_6}, // LE6
+ {2, C1_7, C2_7, C3_7}, // LE7
+ {2, C1_8, C2_8, C3_8}, // LE8
+ {2, C9_1, C8_1, C7_1}, // LE9
+ {2, C9_2, C8_2, C7_2}, // LE10
+ {2, C9_3, C8_3, C7_3}, // LE11
+ {2, C9_4, C8_4, C7_4}, // LE12
+ {2, C9_5, C8_5, C7_5}, // LE13
+ {2, C9_6, C8_6, C7_6}, // LE14
+ {2, C9_7, C8_7, C6_6}, // LE15
+ {2, C9_8, C7_7, C6_7}, // LE16
+ {2, C8_8, C7_8, C6_8}, // LE17
+
+ {2, C2_9, C3_9, C4_9}, // LF0
+ {2, C1_9, C3_10, C4_10}, // LF1
+ {2, C1_10, C2_10, C4_11}, // LF2
+ {2, C1_11, C2_11, C3_11}, // LF3
+ {2, C1_12, C2_12, C3_12}, // LF4
+ {2, C1_13, C2_13, C3_13}, // LF5
+ {2, C1_14, C2_14, C3_14}, // LF6
+ {2, C1_15, C2_15, C3_15}, // LF7
+ {2, C1_16, C2_16, C3_16}, // LF8
+ {2, C9_9, C8_9, C7_9}, // LF9
+ {2, C9_10, C8_10, C7_10}, // LF10
+ {2, C9_11, C8_11, C7_11}, // LF11
+ {2, C9_12, C8_12, C7_12}, // LF12
+ {2, C9_13, C8_13, C7_13}, // LF13
+ {2, C9_14, C8_14, C7_14}, // LF14
+ {2, C9_15, C8_15, C6_14}, // LF15
+ {2, C9_16, C7_15, C6_15}, // LF16
+ {2, C8_16, C7_16, C6_16}, // LF17
+};
+#endif
diff --git a/keyboards/wilba_tech/rama_works_u80_a/rules.mk b/keyboards/wilba_tech/rama_works_u80_a/rules.mk
index 3e1eda9d5e..b262985880 100644
--- a/keyboards/wilba_tech/rama_works_u80_a/rules.mk
+++ b/keyboards/wilba_tech/rama_works_u80_a/rules.mk
@@ -15,5 +15,5 @@ CIE1931_CURVE = yes
SRC = keyboards/wilba_tech/wt_main.c \
keyboards/wilba_tech/wt_rgb_backlight.c \
quantum/color.c \
- drivers/led/issi/is31fl3731.c \
- i2c_master.c
+ drivers/led/issi/is31fl3731.c
+I2C_DRIVER_REQUIRED = yes
diff --git a/keyboards/wilba_tech/wt60_a/config.h b/keyboards/wilba_tech/wt60_a/config.h
index 488eeade83..4dec42b21d 100644
--- a/keyboards/wilba_tech/wt60_a/config.h
+++ b/keyboards/wilba_tech/wt60_a/config.h
@@ -61,3 +61,6 @@
// Backlight config starts after VIA's EEPROM usage,
// dynamic keymaps start after this.
#define VIA_EEPROM_CUSTOM_CONFIG_SIZE 7
+
+#define IS31FL3736_I2C_ADDRESS_1 IS31FL3736_I2C_ADDRESS_GND_GND
+#define IS31FL3736_LED_COUNT 96
diff --git a/keyboards/wilba_tech/wt60_a/rules.mk b/keyboards/wilba_tech/wt60_a/rules.mk
index 4a53424c53..9ca8e8f973 100644
--- a/keyboards/wilba_tech/wt60_a/rules.mk
+++ b/keyboards/wilba_tech/wt60_a/rules.mk
@@ -11,8 +11,8 @@ BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
AUDIO_ENABLE = no # Audio output
# project specific files
-SRC = drivers/led/issi/is31fl3736.c \
- i2c_master.c \
+SRC = drivers/led/issi/is31fl3736-simple.c \
quantum/color.c \
keyboards/wilba_tech/wt_mono_backlight.c \
keyboards/wilba_tech/wt_main.c
+I2C_DRIVER_REQUIRED = yes \ No newline at end of file
diff --git a/keyboards/wilba_tech/wt60_b/config.h b/keyboards/wilba_tech/wt60_b/config.h
index cf495a2e78..3a9808dfc5 100644
--- a/keyboards/wilba_tech/wt60_b/config.h
+++ b/keyboards/wilba_tech/wt60_b/config.h
@@ -23,8 +23,9 @@
// IS31FL3731 driver
-#define DRIVER_COUNT 2
-#define RGB_MATRIX_LED_COUNT 72
+#define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND
+#define IS31FL3731_I2C_ADDRESS_2 IS31FL3731_I2C_ADDRESS_SDA
+#define IS31FL3731_LED_COUNT 72
#define RGB_BACKLIGHT_ENABLED 1
diff --git a/keyboards/wilba_tech/wt60_b/rules.mk b/keyboards/wilba_tech/wt60_b/rules.mk
index a9fcf043e2..397643d372 100644
--- a/keyboards/wilba_tech/wt60_b/rules.mk
+++ b/keyboards/wilba_tech/wt60_b/rules.mk
@@ -22,5 +22,5 @@ CIE1931_CURVE = yes
SRC = keyboards/wilba_tech/wt_main.c \
keyboards/wilba_tech/wt_rgb_backlight.c \
quantum/color.c \
- drivers/led/issi/is31fl3731.c \
- i2c_master.c
+ drivers/led/issi/is31fl3731.c
+I2C_DRIVER_REQUIRED = yes
diff --git a/keyboards/wilba_tech/wt60_b/wt60_b.c b/keyboards/wilba_tech/wt60_b/wt60_b.c
new file mode 100644
index 0000000000..f45b6c9612
--- /dev/null
+++ b/keyboards/wilba_tech/wt60_b/wt60_b.c
@@ -0,0 +1,94 @@
+// Copyright 2022 QMK
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#include "wt60_b.h"
+
+#ifdef RGB_BACKLIGHT_WT60_B
+# include "drivers/led/issi/is31fl3731.h"
+#endif
+
+#if defined(RGB_MATRIX_ENABLE) || defined(RGB_BACKLIGHT_WT60_B)
+const is31fl3731_led_t PROGMEM g_is31fl3731_leds[IS31FL3731_LED_COUNT] = {
+/* Refer to IS31 manual for these locations
+ * driver
+ * | R location
+ * | | G location
+ * | | | B location
+ * | | | | */
+ {0, C2_1, C3_1, C4_1}, // LA0
+ {0, C1_1, C3_2, C4_2}, // LA1
+ {0, C1_2, C2_2, C4_3}, // LA2
+ {0, C1_3, C2_3, C3_3}, // LA3
+ {0, C1_4, C2_4, C3_4}, // LA4
+ {0, C1_5, C2_5, C3_5}, // LA5
+ {0, C1_6, C2_6, C3_6}, // LA6
+ {0, C1_7, C2_7, C3_7}, // LA7
+ {0, C1_8, C2_8, C3_8}, // LA8
+ {0, C9_1, C8_1, C7_1}, // LA9
+ {0, C9_2, C8_2, C7_2}, // LA10
+ {0, C9_3, C8_3, C7_3}, // LA11
+ {0, C9_4, C8_4, C7_4}, // LA12
+ {0, C9_5, C8_5, C7_5}, // LA13
+ {0, C9_6, C8_6, C7_6}, // LA14
+ {0, C9_7, C8_7, C6_6}, // LA15
+ {0, C9_8, C7_7, C6_7}, // LA16
+ {0, C8_8, C7_8, C6_8}, // LA17
+
+ {0, C2_9, C3_9, C4_9}, // LB0
+ {0, C1_9, C3_10, C4_10}, // LB1
+ {0, C1_10, C2_10, C4_11}, // LB2
+ {0, C1_11, C2_11, C3_11}, // LB3
+ {0, C1_12, C2_12, C3_12}, // LB4
+ {0, C1_13, C2_13, C3_13}, // LB5
+ {0, C1_14, C2_14, C3_14}, // LB6
+ {0, C1_15, C2_15, C3_15}, // LB7
+ {0, C1_16, C2_16, C3_16}, // LB8
+ {0, C9_9, C8_9, C7_9}, // LB9
+ {0, C9_10, C8_10, C7_10}, // LB10
+ {0, C9_11, C8_11, C7_11}, // LB11
+ {0, C9_12, C8_12, C7_12}, // LB12
+ {0, C9_13, C8_13, C7_13}, // LB13
+ {0, C9_14, C8_14, C7_14}, // LB14
+ {0, C9_15, C8_15, C6_14}, // LB15
+ {0, C9_16, C7_15, C6_15}, // LB16
+ {0, C8_16, C7_16, C6_16}, // LB17
+
+ {1, C2_1, C3_1, C4_1}, // LC0
+ {1, C1_1, C3_2, C4_2}, // LC1
+ {1, C1_2, C2_2, C4_3}, // LC2
+ {1, C1_3, C2_3, C3_3}, // LC3
+ {1, C1_4, C2_4, C3_4}, // LC4
+ {1, C1_5, C2_5, C3_5}, // LC5
+ {1, C1_6, C2_6, C3_6}, // LC6
+ {1, C1_7, C2_7, C3_7}, // LC7
+ {1, C1_8, C2_8, C3_8}, // LC8
+ {1, C9_1, C8_1, C7_1}, // LC9
+ {1, C9_2, C8_2, C7_2}, // LC10
+ {1, C9_3, C8_3, C7_3}, // LC11
+ {1, C9_4, C8_4, C7_4}, // LC12
+ {1, C9_5, C8_5, C7_5}, // LC13
+ {1, C9_6, C8_6, C7_6}, // LC14
+ {1, C9_7, C8_7, C6_6}, // LC15
+ {1, C9_8, C7_7, C6_7}, // LC16
+ {1, C8_8, C7_8, C6_8}, // LC17
+
+ {1, C2_9, C3_9, C4_9}, // LD0
+ {1, C1_9, C3_10, C4_10}, // LD1
+ {1, C1_10, C2_10, C4_11}, // LD2
+ {1, C1_11, C2_11, C3_11}, // LD3
+ {1, C1_12, C2_12, C3_12}, // LD4
+ {1, C1_13, C2_13, C3_13}, // LD5
+ {1, C1_14, C2_14, C3_14}, // LD6
+ {1, C1_15, C2_15, C3_15}, // LD7
+ {1, C1_16, C2_16, C3_16}, // LD8
+ {1, C9_9, C8_9, C7_9}, // LD9
+ {1, C9_10, C8_10, C7_10}, // LD10
+ {1, C9_11, C8_11, C7_11}, // LD11
+ {1, C9_12, C8_12, C7_12}, // LD12
+ {1, C9_13, C8_13, C7_13}, // LD13
+ {1, C9_14, C8_14, C7_14}, // LD14
+ {1, C9_15, C8_15, C6_14}, // LD15
+ {1, C9_16, C7_15, C6_15}, // LD16
+ {1, C8_16, C7_16, C6_16}, // LD17
+};
+#endif
diff --git a/keyboards/wilba_tech/wt60_bx/config.h b/keyboards/wilba_tech/wt60_bx/config.h
index 6f89b14954..1a722e2a2c 100644
--- a/keyboards/wilba_tech/wt60_bx/config.h
+++ b/keyboards/wilba_tech/wt60_bx/config.h
@@ -23,8 +23,9 @@
// IS31FL3731 driver
-#define DRIVER_COUNT 2
-#define RGB_MATRIX_LED_COUNT 72
+#define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND
+#define IS31FL3731_I2C_ADDRESS_2 IS31FL3731_I2C_ADDRESS_SDA
+#define IS31FL3731_LED_COUNT 72
#define RGB_BACKLIGHT_ENABLED 1
diff --git a/keyboards/wilba_tech/wt60_bx/rules.mk b/keyboards/wilba_tech/wt60_bx/rules.mk
index a9fcf043e2..397643d372 100644
--- a/keyboards/wilba_tech/wt60_bx/rules.mk
+++ b/keyboards/wilba_tech/wt60_bx/rules.mk
@@ -22,5 +22,5 @@ CIE1931_CURVE = yes
SRC = keyboards/wilba_tech/wt_main.c \
keyboards/wilba_tech/wt_rgb_backlight.c \
quantum/color.c \
- drivers/led/issi/is31fl3731.c \
- i2c_master.c
+ drivers/led/issi/is31fl3731.c
+I2C_DRIVER_REQUIRED = yes
diff --git a/keyboards/wilba_tech/wt60_bx/wt60_bx.c b/keyboards/wilba_tech/wt60_bx/wt60_bx.c
new file mode 100644
index 0000000000..29e789a2fc
--- /dev/null
+++ b/keyboards/wilba_tech/wt60_bx/wt60_bx.c
@@ -0,0 +1,94 @@
+// Copyright 2022 QMK
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#include "wt60_bx.h"
+
+#ifdef RGB_BACKLIGHT_WT60_BX
+# include "drivers/led/issi/is31fl3731.h"
+#endif
+
+#if defined(RGB_MATRIX_ENABLE) || defined(RGB_BACKLIGHT_WT60_BX)
+const is31fl3731_led_t PROGMEM g_is31fl3731_leds[IS31FL3731_LED_COUNT] = {
+/* Refer to IS31 manual for these locations
+ * driver
+ * | R location
+ * | | G location
+ * | | | B location
+ * | | | | */
+ {0, C2_1, C3_1, C4_1}, // LA0
+ {0, C1_1, C3_2, C4_2}, // LA1
+ {0, C1_2, C2_2, C4_3}, // LA2
+ {0, C1_3, C2_3, C3_3}, // LA3
+ {0, C1_4, C2_4, C3_4}, // LA4
+ {0, C1_5, C2_5, C3_5}, // LA5
+ {0, C1_6, C2_6, C3_6}, // LA6
+ {0, C1_7, C2_7, C3_7}, // LA7
+ {0, C1_8, C2_8, C3_8}, // LA8
+ {0, C9_1, C8_1, C7_1}, // LA9
+ {0, C9_2, C8_2, C7_2}, // LA10
+ {0, C9_3, C8_3, C7_3}, // LA11
+ {0, C9_4, C8_4, C7_4}, // LA12
+ {0, C9_5, C8_5, C7_5}, // LA13
+ {0, C9_6, C8_6, C7_6}, // LA14
+ {0, C9_7, C8_7, C6_6}, // LA15
+ {0, C9_8, C7_7, C6_7}, // LA16
+ {0, C8_8, C7_8, C6_8}, // LA17
+
+ {0, C2_9, C3_9, C4_9}, // LB0
+ {0, C1_9, C3_10, C4_10}, // LB1
+ {0, C1_10, C2_10, C4_11}, // LB2
+ {0, C1_11, C2_11, C3_11}, // LB3
+ {0, C1_12, C2_12, C3_12}, // LB4
+ {0, C1_13, C2_13, C3_13}, // LB5
+ {0, C1_14, C2_14, C3_14}, // LB6
+ {0, C1_15, C2_15, C3_15}, // LB7
+ {0, C1_16, C2_16, C3_16}, // LB8
+ {0, C9_9, C8_9, C7_9}, // LB9
+ {0, C9_10, C8_10, C7_10}, // LB10
+ {0, C9_11, C8_11, C7_11}, // LB11
+ {0, C9_12, C8_12, C7_12}, // LB12
+ {0, C9_13, C8_13, C7_13}, // LB13
+ {0, C9_14, C8_14, C7_14}, // LB14
+ {0, C9_15, C8_15, C6_14}, // LB15
+ {0, C9_16, C7_15, C6_15}, // LB16
+ {0, C8_16, C7_16, C6_16}, // LB17
+
+ {1, C2_1, C3_1, C4_1}, // LC0
+ {1, C1_1, C3_2, C4_2}, // LC1
+ {1, C1_2, C2_2, C4_3}, // LC2
+ {1, C1_3, C2_3, C3_3}, // LC3
+ {1, C1_4, C2_4, C3_4}, // LC4
+ {1, C1_5, C2_5, C3_5}, // LC5
+ {1, C1_6, C2_6, C3_6}, // LC6
+ {1, C1_7, C2_7, C3_7}, // LC7
+ {1, C1_8, C2_8, C3_8}, // LC8
+ {1, C9_1, C8_1, C7_1}, // LC9
+ {1, C9_2, C8_2, C7_2}, // LC10
+ {1, C9_3, C8_3, C7_3}, // LC11
+ {1, C9_4, C8_4, C7_4}, // LC12
+ {1, C9_5, C8_5, C7_5}, // LC13
+ {1, C9_6, C8_6, C7_6}, // LC14
+ {1, C9_7, C8_7, C6_6}, // LC15
+ {1, C9_8, C7_7, C6_7}, // LC16
+ {1, C8_8, C7_8, C6_8}, // LC17
+
+ {1, C2_9, C3_9, C4_9}, // LD0
+ {1, C1_9, C3_10, C4_10}, // LD1
+ {1, C1_10, C2_10, C4_11}, // LD2
+ {1, C1_11, C2_11, C3_11}, // LD3
+ {1, C1_12, C2_12, C3_12}, // LD4
+ {1, C1_13, C2_13, C3_13}, // LD5
+ {1, C1_14, C2_14, C3_14}, // LD6
+ {1, C1_15, C2_15, C3_15}, // LD7
+ {1, C1_16, C2_16, C3_16}, // LD8
+ {1, C9_9, C8_9, C7_9}, // LD9
+ {1, C9_10, C8_10, C7_10}, // LD10
+ {1, C9_11, C8_11, C7_11}, // LD11
+ {1, C9_12, C8_12, C7_12}, // LD12
+ {1, C9_13, C8_13, C7_13}, // LD13
+ {1, C9_14, C8_14, C7_14}, // LD14
+ {1, C9_15, C8_15, C6_14}, // LD15
+ {1, C9_16, C7_15, C6_15}, // LD16
+ {1, C8_16, C7_16, C6_16}, // LD17
+};
+#endif
diff --git a/keyboards/wilba_tech/wt60_c/config.h b/keyboards/wilba_tech/wt60_c/config.h
index 776aebcf20..97a6790fff 100644
--- a/keyboards/wilba_tech/wt60_c/config.h
+++ b/keyboards/wilba_tech/wt60_c/config.h
@@ -23,8 +23,9 @@
// IS31FL3731 driver
-#define DRIVER_COUNT 2
-#define RGB_MATRIX_LED_COUNT 72
+#define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND
+#define IS31FL3731_I2C_ADDRESS_2 IS31FL3731_I2C_ADDRESS_SDA
+#define IS31FL3731_LED_COUNT 72
#define RGB_BACKLIGHT_ENABLED 1
diff --git a/keyboards/wilba_tech/wt60_c/rules.mk b/keyboards/wilba_tech/wt60_c/rules.mk
index a9fcf043e2..397643d372 100644
--- a/keyboards/wilba_tech/wt60_c/rules.mk
+++ b/keyboards/wilba_tech/wt60_c/rules.mk
@@ -22,5 +22,5 @@ CIE1931_CURVE = yes
SRC = keyboards/wilba_tech/wt_main.c \
keyboards/wilba_tech/wt_rgb_backlight.c \
quantum/color.c \
- drivers/led/issi/is31fl3731.c \
- i2c_master.c
+ drivers/led/issi/is31fl3731.c
+I2C_DRIVER_REQUIRED = yes
diff --git a/keyboards/wilba_tech/wt60_c/wt60_c.c b/keyboards/wilba_tech/wt60_c/wt60_c.c
new file mode 100644
index 0000000000..cac6b866b0
--- /dev/null
+++ b/keyboards/wilba_tech/wt60_c/wt60_c.c
@@ -0,0 +1,94 @@
+// Copyright 2022 QMK
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#include "wt60_c.h"
+
+#ifdef RGB_BACKLIGHT_WT60_BX
+# include "drivers/led/issi/is31fl3731.h"
+#endif
+
+#if defined(RGB_MATRIX_ENABLE) || defined(RGB_BACKLIGHT_WT60_BX)
+const is31fl3731_led_t PROGMEM g_is31fl3731_leds[IS31FL3731_LED_COUNT] = {
+/* Refer to IS31 manual for these locations
+ * driver
+ * | R location
+ * | | G location
+ * | | | B location
+ * | | | | */
+ {0, C2_1, C3_1, C4_1}, // LA0
+ {0, C1_1, C3_2, C4_2}, // LA1
+ {0, C1_2, C2_2, C4_3}, // LA2
+ {0, C1_3, C2_3, C3_3}, // LA3
+ {0, C1_4, C2_4, C3_4}, // LA4
+ {0, C1_5, C2_5, C3_5}, // LA5
+ {0, C1_6, C2_6, C3_6}, // LA6
+ {0, C1_7, C2_7, C3_7}, // LA7
+ {0, C1_8, C2_8, C3_8}, // LA8
+ {0, C9_1, C8_1, C7_1}, // LA9
+ {0, C9_2, C8_2, C7_2}, // LA10
+ {0, C9_3, C8_3, C7_3}, // LA11
+ {0, C9_4, C8_4, C7_4}, // LA12
+ {0, C9_5, C8_5, C7_5}, // LA13
+ {0, C9_6, C8_6, C7_6}, // LA14
+ {0, C9_7, C8_7, C6_6}, // LA15
+ {0, C9_8, C7_7, C6_7}, // LA16
+ {0, C8_8, C7_8, C6_8}, // LA17
+
+ {0, C2_9, C3_9, C4_9}, // LB0
+ {0, C1_9, C3_10, C4_10}, // LB1
+ {0, C1_10, C2_10, C4_11}, // LB2
+ {0, C1_11, C2_11, C3_11}, // LB3
+ {0, C1_12, C2_12, C3_12}, // LB4
+ {0, C1_13, C2_13, C3_13}, // LB5
+ {0, C1_14, C2_14, C3_14}, // LB6
+ {0, C1_15, C2_15, C3_15}, // LB7
+ {0, C1_16, C2_16, C3_16}, // LB8
+ {0, C9_9, C8_9, C7_9}, // LB9
+ {0, C9_10, C8_10, C7_10}, // LB10
+ {0, C9_11, C8_11, C7_11}, // LB11
+ {0, C9_12, C8_12, C7_12}, // LB12
+ {0, C9_13, C8_13, C7_13}, // LB13
+ {0, C9_14, C8_14, C7_14}, // LB14
+ {0, C9_15, C8_15, C6_14}, // LB15
+ {0, C9_16, C7_15, C6_15}, // LB16
+ {0, C8_16, C7_16, C6_16}, // LB17
+
+ {1, C2_1, C3_1, C4_1}, // LC0
+ {1, C1_1, C3_2, C4_2}, // LC1
+ {1, C1_2, C2_2, C4_3}, // LC2
+ {1, C1_3, C2_3, C3_3}, // LC3
+ {1, C1_4, C2_4, C3_4}, // LC4
+ {1, C1_5, C2_5, C3_5}, // LC5
+ {1, C1_6, C2_6, C3_6}, // LC6
+ {1, C1_7, C2_7, C3_7}, // LC7
+ {1, C1_8, C2_8, C3_8}, // LC8
+ {1, C9_1, C8_1, C7_1}, // LC9
+ {1, C9_2, C8_2, C7_2}, // LC10
+ {1, C9_3, C8_3, C7_3}, // LC11
+ {1, C9_4, C8_4, C7_4}, // LC12
+ {1, C9_5, C8_5, C7_5}, // LC13
+ {1, C9_6, C8_6, C7_6}, // LC14
+ {1, C9_7, C8_7, C6_6}, // LC15
+ {1, C9_8, C7_7, C6_7}, // LC16
+ {1, C8_8, C7_8, C6_8}, // LC17
+
+ {1, C2_9, C3_9, C4_9}, // LD0
+ {1, C1_9, C3_10, C4_10}, // LD1
+ {1, C1_10, C2_10, C4_11}, // LD2
+ {1, C1_11, C2_11, C3_11}, // LD3
+ {1, C1_12, C2_12, C3_12}, // LD4
+ {1, C1_13, C2_13, C3_13}, // LD5
+ {1, C1_14, C2_14, C3_14}, // LD6
+ {1, C1_15, C2_15, C3_15}, // LD7
+ {1, C1_16, C2_16, C3_16}, // LD8
+ {1, C9_9, C8_9, C7_9}, // LD9
+ {1, C9_10, C8_10, C7_10}, // LD10
+ {1, C9_11, C8_11, C7_11}, // LD11
+ {1, C9_12, C8_12, C7_12}, // LD12
+ {1, C9_13, C8_13, C7_13}, // LD13
+ {1, C9_14, C8_14, C7_14}, // LD14
+ {1, C9_15, C8_15, C6_14}, // LD15
+ {1, C9_16, C7_15, C6_15}, // LD16
+ {1, C8_16, C7_16, C6_16}, // LD17
+};
+#endif
diff --git a/keyboards/wilba_tech/wt65_a/config.h b/keyboards/wilba_tech/wt65_a/config.h
index aa75002b4f..9135642f59 100644
--- a/keyboards/wilba_tech/wt65_a/config.h
+++ b/keyboards/wilba_tech/wt65_a/config.h
@@ -61,3 +61,6 @@
// Backlight config starts after VIA's EEPROM usage,
// dynamic keymaps start after this.
#define VIA_EEPROM_CUSTOM_CONFIG_SIZE 7
+
+#define IS31FL3736_I2C_ADDRESS_1 IS31FL3736_I2C_ADDRESS_GND_GND
+#define IS31FL3736_LED_COUNT 96
diff --git a/keyboards/wilba_tech/wt65_a/rules.mk b/keyboards/wilba_tech/wt65_a/rules.mk
index 4a53424c53..9ca8e8f973 100644
--- a/keyboards/wilba_tech/wt65_a/rules.mk
+++ b/keyboards/wilba_tech/wt65_a/rules.mk
@@ -11,8 +11,8 @@ BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
AUDIO_ENABLE = no # Audio output
# project specific files
-SRC = drivers/led/issi/is31fl3736.c \
- i2c_master.c \
+SRC = drivers/led/issi/is31fl3736-simple.c \
quantum/color.c \
keyboards/wilba_tech/wt_mono_backlight.c \
keyboards/wilba_tech/wt_main.c
+I2C_DRIVER_REQUIRED = yes \ No newline at end of file
diff --git a/keyboards/wilba_tech/wt65_b/config.h b/keyboards/wilba_tech/wt65_b/config.h
index 60cdbe4cc6..5f3671004d 100644
--- a/keyboards/wilba_tech/wt65_b/config.h
+++ b/keyboards/wilba_tech/wt65_b/config.h
@@ -61,3 +61,6 @@
// Backlight config starts after VIA's EEPROM usage,
// dynamic keymaps start after this.
#define VIA_EEPROM_CUSTOM_CONFIG_SIZE 7
+
+#define IS31FL3736_I2C_ADDRESS_1 IS31FL3736_I2C_ADDRESS_GND_GND
+#define IS31FL3736_LED_COUNT 96
diff --git a/keyboards/wilba_tech/wt65_b/rules.mk b/keyboards/wilba_tech/wt65_b/rules.mk
index 4a53424c53..9ca8e8f973 100644
--- a/keyboards/wilba_tech/wt65_b/rules.mk
+++ b/keyboards/wilba_tech/wt65_b/rules.mk
@@ -11,8 +11,8 @@ BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
AUDIO_ENABLE = no # Audio output
# project specific files
-SRC = drivers/led/issi/is31fl3736.c \
- i2c_master.c \
+SRC = drivers/led/issi/is31fl3736-simple.c \
quantum/color.c \
keyboards/wilba_tech/wt_mono_backlight.c \
keyboards/wilba_tech/wt_main.c
+I2C_DRIVER_REQUIRED = yes \ No newline at end of file
diff --git a/keyboards/wilba_tech/wt75_a/config.h b/keyboards/wilba_tech/wt75_a/config.h
index 4638b0fba9..9dbe040508 100644
--- a/keyboards/wilba_tech/wt75_a/config.h
+++ b/keyboards/wilba_tech/wt75_a/config.h
@@ -61,3 +61,6 @@
// Backlight config starts after VIA's EEPROM usage,
// dynamic keymaps start after this.
#define VIA_EEPROM_CUSTOM_CONFIG_SIZE 7
+
+#define IS31FL3736_I2C_ADDRESS_1 IS31FL3736_I2C_ADDRESS_GND_GND
+#define IS31FL3736_LED_COUNT 96
diff --git a/keyboards/wilba_tech/wt75_a/rules.mk b/keyboards/wilba_tech/wt75_a/rules.mk
index 4a53424c53..9ca8e8f973 100644
--- a/keyboards/wilba_tech/wt75_a/rules.mk
+++ b/keyboards/wilba_tech/wt75_a/rules.mk
@@ -11,8 +11,8 @@ BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
AUDIO_ENABLE = no # Audio output
# project specific files
-SRC = drivers/led/issi/is31fl3736.c \
- i2c_master.c \
+SRC = drivers/led/issi/is31fl3736-simple.c \
quantum/color.c \
keyboards/wilba_tech/wt_mono_backlight.c \
keyboards/wilba_tech/wt_main.c
+I2C_DRIVER_REQUIRED = yes \ No newline at end of file
diff --git a/keyboards/wilba_tech/wt75_b/config.h b/keyboards/wilba_tech/wt75_b/config.h
index f519fe6603..9a9db88ab1 100644
--- a/keyboards/wilba_tech/wt75_b/config.h
+++ b/keyboards/wilba_tech/wt75_b/config.h
@@ -61,3 +61,6 @@
// Backlight config starts after VIA's EEPROM usage,
// dynamic keymaps start after this.
#define VIA_EEPROM_CUSTOM_CONFIG_SIZE 7
+
+#define IS31FL3736_I2C_ADDRESS_1 IS31FL3736_I2C_ADDRESS_GND_GND
+#define IS31FL3736_LED_COUNT 96
diff --git a/keyboards/wilba_tech/wt75_b/rules.mk b/keyboards/wilba_tech/wt75_b/rules.mk
index 4a53424c53..9ca8e8f973 100644
--- a/keyboards/wilba_tech/wt75_b/rules.mk
+++ b/keyboards/wilba_tech/wt75_b/rules.mk
@@ -11,8 +11,8 @@ BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
AUDIO_ENABLE = no # Audio output
# project specific files
-SRC = drivers/led/issi/is31fl3736.c \
- i2c_master.c \
+SRC = drivers/led/issi/is31fl3736-simple.c \
quantum/color.c \
keyboards/wilba_tech/wt_mono_backlight.c \
keyboards/wilba_tech/wt_main.c
+I2C_DRIVER_REQUIRED = yes \ No newline at end of file
diff --git a/keyboards/wilba_tech/wt75_c/config.h b/keyboards/wilba_tech/wt75_c/config.h
index 7d07822eb6..d2164ceea0 100644
--- a/keyboards/wilba_tech/wt75_c/config.h
+++ b/keyboards/wilba_tech/wt75_c/config.h
@@ -61,3 +61,6 @@
// Backlight config starts after VIA's EEPROM usage,
// dynamic keymaps start after this.
#define VIA_EEPROM_CUSTOM_CONFIG_SIZE 7
+
+#define IS31FL3736_I2C_ADDRESS_1 IS31FL3736_I2C_ADDRESS_GND_GND
+#define IS31FL3736_LED_COUNT 96
diff --git a/keyboards/wilba_tech/wt75_c/rules.mk b/keyboards/wilba_tech/wt75_c/rules.mk
index 4a53424c53..9ca8e8f973 100644
--- a/keyboards/wilba_tech/wt75_c/rules.mk
+++ b/keyboards/wilba_tech/wt75_c/rules.mk
@@ -11,8 +11,8 @@ BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
AUDIO_ENABLE = no # Audio output
# project specific files
-SRC = drivers/led/issi/is31fl3736.c \
- i2c_master.c \
+SRC = drivers/led/issi/is31fl3736-simple.c \
quantum/color.c \
keyboards/wilba_tech/wt_mono_backlight.c \
keyboards/wilba_tech/wt_main.c
+I2C_DRIVER_REQUIRED = yes \ No newline at end of file
diff --git a/keyboards/wilba_tech/wt80_a/config.h b/keyboards/wilba_tech/wt80_a/config.h
index 59cb397a00..bda91f562c 100644
--- a/keyboards/wilba_tech/wt80_a/config.h
+++ b/keyboards/wilba_tech/wt80_a/config.h
@@ -61,3 +61,6 @@
// Backlight config starts after VIA's EEPROM usage,
// dynamic keymaps start after this.
#define VIA_EEPROM_CUSTOM_CONFIG_SIZE 7
+
+#define IS31FL3736_I2C_ADDRESS_1 IS31FL3736_I2C_ADDRESS_GND_GND
+#define IS31FL3736_LED_COUNT 96
diff --git a/keyboards/wilba_tech/wt80_a/rules.mk b/keyboards/wilba_tech/wt80_a/rules.mk
index 4a53424c53..9ca8e8f973 100644
--- a/keyboards/wilba_tech/wt80_a/rules.mk
+++ b/keyboards/wilba_tech/wt80_a/rules.mk
@@ -11,8 +11,8 @@ BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
AUDIO_ENABLE = no # Audio output
# project specific files
-SRC = drivers/led/issi/is31fl3736.c \
- i2c_master.c \
+SRC = drivers/led/issi/is31fl3736-simple.c \
quantum/color.c \
keyboards/wilba_tech/wt_mono_backlight.c \
keyboards/wilba_tech/wt_main.c
+I2C_DRIVER_REQUIRED = yes \ No newline at end of file
diff --git a/keyboards/wilba_tech/wt_mono_backlight.c b/keyboards/wilba_tech/wt_mono_backlight.c
index 28ee5fae81..e218f0af4b 100644
--- a/keyboards/wilba_tech/wt_mono_backlight.c
+++ b/keyboards/wilba_tech/wt_mono_backlight.c
@@ -33,9 +33,7 @@
#error VIA_EEPROM_CUSTOM_CONFIG_SIZE was not defined to store backlight_config struct
#endif
-#include "drivers/led/issi/is31fl3736.h"
-
-#define ISSI_ADDR_DEFAULT 0x50
+#include "drivers/led/issi/is31fl3736-simple.h"
#define BACKLIGHT_EFFECT_MAX 3
@@ -52,6 +50,116 @@ backlight_config g_config = {
.color_1 = MONO_BACKLIGHT_COLOR_1,
};
+const is31fl3736_led_t PROGMEM g_is31fl3736_leds[IS31FL3736_LED_COUNT] = {
+ {0, A_1},
+ {0, A_2},
+ {0, A_3},
+ {0, A_4},
+ {0, A_5},
+ {0, A_6},
+ {0, A_7},
+ {0, A_8},
+
+ {0, B_1},
+ {0, B_2},
+ {0, B_3},
+ {0, B_4},
+ {0, B_5},
+ {0, B_6},
+ {0, B_7},
+ {0, B_8},
+
+ {0, C_1},
+ {0, C_2},
+ {0, C_3},
+ {0, C_4},
+ {0, C_5},
+ {0, C_6},
+ {0, C_7},
+ {0, C_8},
+
+ {0, D_1},
+ {0, D_2},
+ {0, D_3},
+ {0, D_4},
+ {0, D_5},
+ {0, D_6},
+ {0, D_7},
+ {0, D_8},
+
+ {0, E_1},
+ {0, E_2},
+ {0, E_3},
+ {0, E_4},
+ {0, E_5},
+ {0, E_6},
+ {0, E_7},
+ {0, E_8},
+
+ {0, F_1},
+ {0, F_2},
+ {0, F_3},
+ {0, F_4},
+ {0, F_5},
+ {0, F_6},
+ {0, F_7},
+ {0, F_8},
+
+ {0, G_1},
+ {0, G_2},
+ {0, G_3},
+ {0, G_4},
+ {0, G_5},
+ {0, G_6},
+ {0, G_7},
+ {0, G_8},
+
+ {0, H_1},
+ {0, H_2},
+ {0, H_3},
+ {0, H_4},
+ {0, H_5},
+ {0, H_6},
+ {0, H_7},
+ {0, H_8},
+
+ {0, I_1},
+ {0, I_2},
+ {0, I_3},
+ {0, I_4},
+ {0, I_5},
+ {0, I_6},
+ {0, I_7},
+ {0, I_8},
+
+ {0, J_1},
+ {0, J_2},
+ {0, J_3},
+ {0, J_4},
+ {0, J_5},
+ {0, J_6},
+ {0, J_7},
+ {0, J_8},
+
+ {0, K_1},
+ {0, K_2},
+ {0, K_3},
+ {0, K_4},
+ {0, K_5},
+ {0, K_6},
+ {0, K_7},
+ {0, K_8},
+
+ {0, L_1},
+ {0, L_2},
+ {0, L_3},
+ {0, L_4},
+ {0, L_5},
+ {0, L_6},
+ {0, L_7},
+ {0, L_8}
+};
+
bool g_suspend_state = false;
// Global tick at 20 Hz
@@ -62,14 +170,7 @@ uint32_t g_any_key_hit = 0;
void backlight_init_drivers(void)
{
- // Initialize I2C
- i2c_init();
- is31fl3736_init( ISSI_ADDR_DEFAULT );
-
- for ( uint8_t index = 0; index < 96; index++ ) {
- is31fl3736_mono_set_led_control_register( index, true );
- }
- is31fl3736_update_led_control_registers( ISSI_ADDR_DEFAULT, 0x00 );
+ is31fl3736_init_drivers();
}
void backlight_set_key_hit(uint8_t row, uint8_t column)
@@ -119,17 +220,17 @@ void backlight_set_suspend_state(bool state)
void backlight_set_brightness_all( uint8_t value )
{
- is31fl3736_mono_set_brightness_all( value );
+ is31fl3736_set_value_all( value );
}
void backlight_effect_all_off(void)
{
- is31fl3736_mono_set_brightness_all( 0 );
+ is31fl3736_set_value_all( 0 );
}
void backlight_effect_all_on(void)
{
- is31fl3736_mono_set_brightness_all( g_config.brightness );
+ is31fl3736_set_value_all( g_config.brightness );
}
void backlight_effect_raindrops(bool initialize)
@@ -143,7 +244,7 @@ void backlight_effect_raindrops(bool initialize)
// If not, all but one will stay the same as before.
if ( initialize || i == led_to_change )
{
- is31fl3736_mono_set_brightness(i, rand() & 0xFF );
+ is31fl3736_set_value(i, rand() & 0xFF );
}
}
}
@@ -165,9 +266,9 @@ void backlight_effect_indicators(void)
// SW7,CS8 = (6*8+7) = 55
// SW8,CS8 = (7*8+7) = 63
// SW9,CS8 = (8*8+7) = 71
- is31fl3736_mono_set_brightness(55, rgb.r);
- is31fl3736_mono_set_brightness(63, rgb.g);
- is31fl3736_mono_set_brightness(71, rgb.b);
+ is31fl3736_set_value(55, rgb.r);
+ is31fl3736_set_value(63, rgb.g);
+ is31fl3736_set_value(71, rgb.b);
#endif // MONO_BACKLIGHT_WT75_A
// This pairs with "All Off" already setting zero brightness,
@@ -181,19 +282,19 @@ defined(MONO_BACKLIGHT_WT75_C) || \
defined(MONO_BACKLIGHT_WT80_A)
if ( host_keyboard_led_state().caps_lock ) {
// SW3,CS1 = (2*8+0) = 16
- is31fl3736_mono_set_brightness(16, 255);
+ is31fl3736_set_value(16, 255);
}
#endif
#if defined(MONO_BACKLIGHT_WT80_A)
if ( host_keyboard_led_state().scroll_lock ) {
// SW7,CS7 = (6*8+6) = 54
- is31fl3736_mono_set_brightness(54, 255);
+ is31fl3736_set_value(54, 255);
}
#endif
#if defined(MONO_BACKLIGHT_WT75_C)
if ( host_keyboard_led_state().scroll_lock ) {
// SW7,CS8 = (6*8+7) = 55
- is31fl3736_mono_set_brightness(55, 255);
+ is31fl3736_set_value(55, 255);
}
#endif
}
@@ -361,7 +462,7 @@ void backlight_config_save(void)
void backlight_update_pwm_buffers(void)
{
- is31fl3736_update_pwm_buffers(ISSI_ADDR_DEFAULT,0x00);
+ is31fl3736_flush();
}
bool process_record_backlight(uint16_t keycode, keyrecord_t *record)
diff --git a/keyboards/wilba_tech/wt_rgb_backlight.c b/keyboards/wilba_tech/wt_rgb_backlight.c
index 6c57416622..72ddb34ee7 100644
--- a/keyboards/wilba_tech/wt_rgb_backlight.c
+++ b/keyboards/wilba_tech/wt_rgb_backlight.c
@@ -64,7 +64,7 @@
#if defined(RGB_BACKLIGHT_DAWN60)
#include "ws2812.h"
-LED_TYPE g_ws2812_leds[WS2812_LED_TOTAL];
+rgb_led_t g_ws2812_leds[WS2812_LED_TOTAL];
#endif
#include "progmem.h"
@@ -154,799 +154,6 @@ uint8_t g_key_hit[BACKLIGHT_LED_COUNT];
// Ticks since any key was last hit.
uint32_t g_any_key_hit = 0;
-#if defined(RGB_BACKLIGHT_HS60)
-
-// This is a 7-bit address, that gets left-shifted and bit 0
-// set to 0 for write, 1 for read (as per I2C protocol)
-// ADDR_2 is not needed. it is here as a dummy
-#define ISSI_ADDR_1 0x50
-
-const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = {
-/* Refer to IS31 manual for these locations
- * driver
- * | R location
- * | | G location
- * | | | B location
- * | | | | */
- {0, B_1, A_1, C_1}, //LA1
- {0, E_1, D_1, F_1}, //LA2
- {0, H_1, G_1, I_1}, //LA3
- {0, K_1, J_1, L_1}, //LA4
- {0, B_2, A_2, C_2}, //LA5
- {0, E_2, D_2, F_2}, //LA6
- {0, H_2, G_2, I_2}, //LA7
- {0, K_2, J_2, L_2}, //LA8
- {0, B_3, A_3, C_3}, //LA9
- {0, E_3, D_3, F_3}, //LA10
- {0, H_3, G_3, I_3}, //LA11
- {0, K_3, J_3, L_3}, //LA12
- {0, B_4, A_4, C_4}, //LA13
- {0, E_4, D_4, F_4}, //LA14
- {0, H_4, G_4, I_4}, //LA15
- {0, K_4, J_4, L_4}, //LA16
- {0, B_5, A_5, C_5}, //LA17
- {0, E_5, D_5, F_5}, //LA18
- {0, H_5, G_5, I_5}, //LA19
- {0, K_5, J_5, L_5}, //LA20
- {0, B_6, A_6, C_6}, //LA21
- {0, E_6, D_6, F_6}, //LA22
- {0, H_6, G_6, I_6}, //LA23
- {0, K_6, J_6, L_6}, //LA24
- {0, B_7, A_7, C_7}, //LA25
- {0, E_7, D_7, F_7}, //LA26
- {0, H_7, G_7, I_7}, //LA27
- {0, K_7, J_7, L_7}, //LA28
- {0, B_8, A_8, C_8}, //LA29
- {0, E_8, D_8, F_8}, //LA30
- {0, H_8, G_8, I_8}, //LA31
- {0, K_8, J_8, L_8}, //LA32
- {0, B_9, A_9, C_9}, //LA33
- {0, E_9, D_9, F_9}, //LA34
- {0, H_9, G_9, I_9}, //LA35
- {0, K_9, J_9, L_9}, //LA36
- {0, B_10, A_10, C_10}, //LA37
- {0, E_10, D_10, F_10}, //LA38
- {0, H_10, G_10, I_10}, //LA39
- {0, K_10, J_10, L_10}, //LA40
- {0, B_11, A_11, C_11}, //LA41
- {0, E_11, D_11, F_11}, //LA42
- {0, H_11, G_11, I_11}, //LA43
- {0, K_11, J_11, L_11}, //LA44
- {0, B_12, A_12, C_12}, //LA45
- {0, E_12, D_12, F_12}, //LA46
- {0, H_12, G_12, I_12}, //LA47
- {0, K_12, J_12, L_12}, //LA48
- {0, B_13, A_13, C_13}, //LA49
- {0, E_13, D_13, F_13}, //LA50
- {0, H_13, G_13, I_13}, //LA51
- {0, K_13, J_13, L_13}, //LA52
- {0, B_14, A_14, C_14}, //LA53
- {0, E_14, D_14, F_14}, //LA54
- {0, H_14, G_14, I_14}, //LA55
- {0, K_14, J_14, L_14}, //LA56
- {0, B_15, A_15, C_15}, //LA57
- {0, E_15, D_15, F_15}, //LA58
- {0, H_15, G_15, I_15}, //LA59
- {0, K_15, J_15, L_15}, //LA60
- {0, B_16, A_16, C_16}, //LA61
- {0, E_16, D_16, F_16}, //LA62
- {0, H_16, G_16, I_16}, //LA63
- {0, K_16, J_16, L_16}, //LA64
-};
-
-#elif defined(RGB_BACKLIGHT_NK65) || defined(RGB_BACKLIGHT_NEBULA68) || defined(RGB_BACKLIGHT_NK87) || defined(RGB_BACKLIGHT_KW_MEGA)
-
-// This is a 7-bit address, that gets left-shifted and bit 0
-// set to 0 for write, 1 for read (as per I2C protocol)
-// ADDR_2 is not needed. it is here as a dummy
-#define ISSI_ADDR_1 0x50
-#define ISSI_ADDR_2 0x52
-
-const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = {
-/* Refer to IS31 manual for these locations
- * driver
- * | R location
- * | | G location
- * | | | B location
- * | | | | */
- {0, B_1, A_1, C_1}, //LA1
- {0, E_1, D_1, F_1}, //LA2
- {0, H_1, G_1, I_1}, //LA3
- {0, K_1, J_1, L_1}, //LA4
- {0, B_2, A_2, C_2}, //LA5
- {0, E_2, D_2, F_2}, //LA6
- {0, H_2, G_2, I_2}, //LA7
- {0, K_2, J_2, L_2}, //LA8
- {0, B_3, A_3, C_3}, //LA9
- {0, E_3, D_3, F_3}, //LA10
- {0, H_3, G_3, I_3}, //LA11
- {0, K_3, J_3, L_3}, //LA12
- {0, B_4, A_4, C_4}, //LA13
- {0, E_4, D_4, F_4}, //LA14
- {0, H_4, G_4, I_4}, //LA15
- {0, K_4, J_4, L_4}, //LA16
- {0, B_5, A_5, C_5}, //LA17
- {0, E_5, D_5, F_5}, //LA18
- {0, H_5, G_5, I_5}, //LA19
- {0, K_5, J_5, L_5}, //LA20
- {0, B_6, A_6, C_6}, //LA21
- {0, E_6, D_6, F_6}, //LA22
- {0, H_6, G_6, I_6}, //LA23
- {0, K_6, J_6, L_6}, //LA24
- {0, B_7, A_7, C_7}, //LA25
- {0, E_7, D_7, F_7}, //LA26
- {0, H_7, G_7, I_7}, //LA27
- {0, K_7, J_7, L_7}, //LA28
- {0, B_8, A_8, C_8}, //LA29
- {0, E_8, D_8, F_8}, //LA30
- {0, H_8, G_8, I_8}, //LA31
- {0, K_8, J_8, L_8}, //LA32
- {0, B_9, A_9, C_9}, //LA33
- {0, E_9, D_9, F_9}, //LA34
- {0, H_9, G_9, I_9}, //LA35
- {0, K_9, J_9, L_9}, //LA36
- {0, B_10, A_10, C_10}, //LA37
- {0, E_10, D_10, F_10}, //LA38
- {0, H_10, G_10, I_10}, //LA39
- {0, K_10, J_10, L_10}, //LA40
- {0, B_11, A_11, C_11}, //LA41
- {0, E_11, D_11, F_11}, //LA42
- {0, H_11, G_11, I_11}, //LA43
- {0, K_11, J_11, L_11}, //LA44
- {0, B_12, A_12, C_12}, //LA45
- {0, E_12, D_12, F_12}, //LA46
- {0, H_12, G_12, I_12}, //LA47
- {0, K_12, J_12, L_12}, //LA48
- {0, B_13, A_13, C_13}, //LA49
- {0, E_13, D_13, F_13}, //LA50
- {0, H_13, G_13, I_13}, //LA51
- {0, K_13, J_13, L_13}, //LA52
- {0, B_14, A_14, C_14}, //LA53
- {0, E_14, D_14, F_14}, //LA54
- {0, H_14, G_14, I_14}, //LA55
- {0, K_14, J_14, L_14}, //LA56
- {0, B_15, A_15, C_15}, //LA57
- {0, E_15, D_15, F_15}, //LA58
- {0, H_15, G_15, I_15}, //LA59
- {0, K_15, J_15, L_15}, //LA60
- {0, B_16, A_16, C_16}, //LA61
- {0, E_16, D_16, F_16}, //LA62
- {0, H_16, G_16, I_16}, //LA63
- {0, K_16, J_16, L_16}, //LA64
-
- {1, B_1, A_1, C_1}, //LB1
- {1, E_1, D_1, F_1}, //LB2
- {1, H_1, G_1, I_1}, //LB3
- {1, K_1, J_1, L_1}, //LB4
- {1, B_2, A_2, C_2}, //LB5
- {1, E_2, D_2, F_2}, //LB6
- {1, H_2, G_2, I_2}, //LB7
- {1, K_2, J_2, L_2}, //LB8
- {1, B_3, A_3, C_3}, //LB9
- {1, E_3, D_3, F_3}, //LB10
- {1, H_3, G_3, I_3}, //LB11
- {1, K_3, J_3, L_3}, //LB12
- {1, B_4, A_4, C_4}, //LB13
- {1, E_4, D_4, F_4}, //LB14
- {1, H_4, G_4, I_4}, //LB15
- {1, K_4, J_4, L_4}, //LB16
- {1, B_5, A_5, C_5}, //LB17
- {1, E_5, D_5, F_5}, //LB18
- {1, H_5, G_5, I_5}, //LB19
- {1, K_5, J_5, L_5}, //LB20
- {1, B_6, A_6, C_6}, //LB21
- {1, E_6, D_6, F_6}, //LB22
- {1, H_6, G_6, I_6}, //LB23
- {1, K_6, J_6, L_6}, //LB24
- {1, B_7, A_7, C_7}, //LB25
- {1, E_7, D_7, F_7}, //LB26
- {1, H_7, G_7, I_7}, //LB27
- {1, K_7, J_7, L_7}, //LB28
- {1, B_8, A_8, C_8}, //LB29
- {1, E_8, D_8, F_8}, //LB30
- {1, H_8, G_8, I_8}, //LB31
- {1, K_8, J_8, L_8}, //LB32
- {1, B_9, A_9, C_9}, //LB33
- {1, E_9, D_9, F_9}, //LB34
- {1, H_9, G_9, I_9}, //LB35
- {1, K_9, J_9, L_9}, //LB36
- {1, B_10, A_10, C_10}, //LB37
- {1, E_10, D_10, F_10}, //LB38
- {1, H_10, G_10, I_10}, //LB39
- {1, K_10, J_10, L_10}, //LB40
- {1, B_11, A_11, C_11}, //LB41
- {1, E_11, D_11, F_11}, //LB42
- {1, H_11, G_11, I_11}, //LB43
- {1, K_11, J_11, L_11}, //LB44
- {1, B_12, A_12, C_12}, //LB45
- {1, E_12, D_12, F_12}, //LB46
- {1, H_12, G_12, I_12}, //LB47
- {1, K_12, J_12, L_12}, //LB48
- {1, B_13, A_13, C_13}, //LB49
- {1, E_13, D_13, F_13}, //LB50
- {1, H_13, G_13, I_13}, //LB51
- {1, K_13, J_13, L_13}, //LB52
- {1, B_14, A_14, C_14}, //LB53
- {1, E_14, D_14, F_14}, //LB54
- {1, H_14, G_14, I_14}, //LB55
- {1, K_14, J_14, L_14}, //LB56
- {1, B_15, A_15, C_15}, //LB57
- {1, E_15, D_15, F_15}, //LB58
- {1, H_15, G_15, I_15}, //LB59
- {1, K_15, J_15, L_15}, //LB60
- {1, B_16, A_16, C_16}, //LB61
- {1, E_16, D_16, F_16}, //LB62
- {1, H_16, G_16, I_16}, //LB63
- {1, K_16, J_16, L_16}, //LB64
-};
-
-#elif defined(RGB_BACKLIGHT_NEBULA12)
-// This is a 7-bit address, that gets left-shifted and bit 0
-// set to 0 for write, 1 for read (as per I2C protocol)
-#define ISSI_ADDR_1 0x74
-
-const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = {
-/* Refer to IS31 manual for these locations
- * driver
- * | R location
- * | | G location
- * | | | B location
- * | | | | */
- {0, C1_1, C3_2, C4_2}, //A1
- {0, C1_2, C2_2, C4_3}, //A2
- {0, C1_3, C2_3, C3_3}, //A3
- {0, C1_4, C2_4, C3_4}, //A4
- {0, C1_5, C2_5, C3_5}, //A5
- {0, C1_6, C2_6, C3_6}, //A6
- {0, C1_7, C2_7, C3_7}, //A7
- {0, C1_8, C2_8, C3_8}, //A8
- {0, C9_1, C8_1, C7_1}, //A9
- {0, C9_2, C8_2, C7_2}, //A10
- {0, C9_3, C8_3, C7_3}, //A11
- {0, C9_4, C8_4, C7_4}, //A12
- {0, C9_5, C8_5, C7_5}, //A13
- {0, C9_6, C8_6, C7_6}, //A14
- {0, C9_7, C8_7, C6_6}, //A15
- {0, C9_8, C7_7, C6_7}, //A16
-};
-
-#elif defined(RGB_BACKLIGHT_U80_A)
-
-// U80-A prototype uses 3 ISSI drivers
-#define ISSI_ADDR_1 0x74 // 11101[00] <- GND
-#define ISSI_ADDR_2 0x76 // 11101[10] <- SDA
-#define ISSI_ADDR_3 0x75 // 11101[01] <- SCL
-
-const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = {
-/* Refer to IS31 manual for these locations
- * driver
- * | R location
- * | | G location
- * | | | B location
- * | | | | */
- {0, C2_1, C3_1, C4_1}, // LA0
- {0, C1_1, C3_2, C4_2}, // LA1
- {0, C1_2, C2_2, C4_3}, // LA2
- {0, C1_3, C2_3, C3_3}, // LA3
- {0, C1_4, C2_4, C3_4}, // LA4
- {0, C1_5, C2_5, C3_5}, // LA5
- {0, C1_6, C2_6, C3_6}, // LA6
- {0, C1_7, C2_7, C3_7}, // LA7
- {0, C1_8, C2_8, C3_8}, // LA8
- {0, C9_1, C8_1, C7_1}, // LA9
- {0, C9_2, C8_2, C7_2}, // LA10
- {0, C9_3, C8_3, C7_3}, // LA11
- {0, C9_4, C8_4, C7_4}, // LA12
- {0, C9_5, C8_5, C7_5}, // LA13
- {0, C9_6, C8_6, C7_6}, // LA14
- {0, C9_7, C8_7, C6_6}, // LA15
- {0, C9_8, C7_7, C6_7}, // LA16
- {0, C8_8, C7_8, C6_8}, // LA17
-
- {0, C2_9, C3_9, C4_9}, // LB0
- {0, C1_9, C3_10, C4_10}, // LB1
- {0, C1_10, C2_10, C4_11}, // LB2
- {0, C1_11, C2_11, C3_11}, // LB3
- {0, C1_12, C2_12, C3_12}, // LB4
- {0, C1_13, C2_13, C3_13}, // LB5
- {0, C1_14, C2_14, C3_14}, // LB6
- {0, C1_15, C2_15, C3_15}, // LB7
- {0, C1_16, C2_16, C3_16}, // LB8
- {0, C9_9, C8_9, C7_9}, // LB9
- {0, C9_10, C8_10, C7_10}, // LB10
- {0, C9_11, C8_11, C7_11}, // LB11
- {0, C9_12, C8_12, C7_12}, // LB12
- {0, C9_13, C8_13, C7_13}, // LB13
- {0, C9_14, C8_14, C7_14}, // LB14
- {0, C9_15, C8_15, C6_14}, // LB15
- {0, C9_16, C7_15, C6_15}, // LB16
- {0, C8_16, C7_16, C6_16}, // LB17
-
- {1, C2_1, C3_1, C4_1}, // LC0
- {1, C1_1, C3_2, C4_2}, // LC1
- {1, C1_2, C2_2, C4_3}, // LC2
- {1, C1_3, C2_3, C3_3}, // LC3
- {1, C1_4, C2_4, C3_4}, // LC4
- {1, C1_5, C2_5, C3_5}, // LC5
- {1, C1_6, C2_6, C3_6}, // LC6
- {1, C1_7, C2_7, C3_7}, // LC7
- {1, C1_8, C2_8, C3_8}, // LC8
- {1, C9_1, C8_1, C7_1}, // LC9
- {1, C9_2, C8_2, C7_2}, // LC10
- {1, C9_3, C8_3, C7_3}, // LC11
- {1, C9_4, C8_4, C7_4}, // LC12
- {1, C9_5, C8_5, C7_5}, // LC13
- {1, C9_6, C8_6, C7_6}, // LC14
- {1, C9_7, C8_7, C6_6}, // LC15
- {1, C9_8, C7_7, C6_7}, // LC16
- {1, C8_8, C7_8, C6_8}, // LC17
-
- {1, C2_9, C3_9, C4_9}, // LD0
- {1, C1_9, C3_10, C4_10}, // LD1
- {1, C1_10, C2_10, C4_11}, // LD2
- {1, C1_11, C2_11, C3_11}, // LD3
- {1, C1_12, C2_12, C3_12}, // LD4
- {1, C1_13, C2_13, C3_13}, // LD5
- {1, C1_14, C2_14, C3_14}, // LD6
- {1, C1_15, C2_15, C3_15}, // LD7
- {1, C1_16, C2_16, C3_16}, // LD8
- {1, C9_9, C8_9, C7_9}, // LD9
- {1, C9_10, C8_10, C7_10}, // LD10
- {1, C9_11, C8_11, C7_11}, // LD11
- {1, C9_12, C8_12, C7_12}, // LD12
- {1, C9_13, C8_13, C7_13}, // LD13
- {1, C9_14, C8_14, C7_14}, // LD14
- {1, C9_15, C8_15, C6_14}, // LD15
- {1, C9_16, C7_15, C6_15}, // LD16
- {1, C8_16, C7_16, C6_16}, // LD17
-
- {2, C2_1, C3_1, C4_1}, // LE0
- {2, C1_1, C3_2, C4_2}, // LE1
- {2, C1_2, C2_2, C4_3}, // LE2
- {2, C1_3, C2_3, C3_3}, // LE3
- {2, C1_4, C2_4, C3_4}, // LE4
- {2, C1_5, C2_5, C3_5}, // LE5
- {2, C1_6, C2_6, C3_6}, // LE6
- {2, C1_7, C2_7, C3_7}, // LE7
- {2, C1_8, C2_8, C3_8}, // LE8
- {2, C9_1, C8_1, C7_1}, // LE9
- {2, C9_2, C8_2, C7_2}, // LE10
- {2, C9_3, C8_3, C7_3}, // LE11
- {2, C9_4, C8_4, C7_4}, // LE12
- {2, C9_5, C8_5, C7_5}, // LE13
- {2, C9_6, C8_6, C7_6}, // LE14
- {2, C9_7, C8_7, C6_6}, // LE15
- {2, C9_8, C7_7, C6_7}, // LE16
- {2, C8_8, C7_8, C6_8}, // LE17
-
- {2, C2_9, C3_9, C4_9}, // LF0
- {2, C1_9, C3_10, C4_10}, // LF1
- {2, C1_10, C2_10, C4_11}, // LF2
- {2, C1_11, C2_11, C3_11}, // LF3
- {2, C1_12, C2_12, C3_12}, // LF4
- {2, C1_13, C2_13, C3_13}, // LF5
- {2, C1_14, C2_14, C3_14}, // LF6
- {2, C1_15, C2_15, C3_15}, // LF7
- {2, C1_16, C2_16, C3_16}, // LF8
- {2, C9_9, C8_9, C7_9}, // LF9
- {2, C9_10, C8_10, C7_10}, // LF10
- {2, C9_11, C8_11, C7_11}, // LF11
- {2, C9_12, C8_12, C7_12}, // LF12
- {2, C9_13, C8_13, C7_13}, // LF13
- {2, C9_14, C8_14, C7_14}, // LF14
- {2, C9_15, C8_15, C6_14}, // LF15
- {2, C9_16, C7_15, C6_15}, // LF16
- {2, C8_16, C7_16, C6_16}, // LF17
-};
-#elif defined(RGB_BACKLIGHT_DAWN60)
-// This is a 7-bit address, that gets left-shifted and bit 0
-// set to 0 for write, 1 for read (as per I2C protocol)
-#define ISSI_ADDR_1 0x74
-#define ISSI_ADDR_2 0x76
-
-const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = {
-/* Refer to IS31 manual for these locations
- * driver
- * | R location
- * | | G location
- * | | | B location
- * | | | | */
- {0, C1_1, C3_2, C4_2}, //A1
- {0, C1_2, C2_2, C4_3}, //A2
- {0, C1_3, C2_3, C3_3}, //A3
- {0, C1_4, C2_4, C3_4}, //A4
- {0, C1_5, C2_5, C3_5}, //A5
- {0, C1_6, C2_6, C3_6}, //A6
- {0, C1_7, C2_7, C3_7}, //A7
- {0, C1_8, C2_8, C3_8}, //A8
- {0, C9_1, C8_1, C7_1}, //A9
- {0, C9_2, C8_2, C7_2}, //A10
- {0, C9_3, C8_3, C7_3}, //A11
- {0, C9_4, C8_4, C7_4}, //A12
- {0, C9_5, C8_5, C7_5}, //A13
- {0, C9_6, C8_6, C7_6}, //A14
- {0, C9_7, C8_7, C6_6}, //A15
- {0, C9_8, C7_7, C6_7}, //A16
-
- {0, C1_9, C3_10, C4_10}, //B1
- {0, C1_10, C2_10, C4_11}, //B2
- {0, C1_11, C2_11, C3_11}, //B3
- {0, C1_12, C2_12, C3_12}, //B4
- {0, C1_13, C2_13, C3_13}, //B5
- {0, C1_14, C2_14, C3_14}, //B6
- {0, C1_15, C2_15, C3_15}, //B7
- {0, C1_16, C2_16, C3_16}, //B8
- {0, C9_9, C8_9, C7_9}, //B9
- {0, C9_10, C8_10, C7_10}, //B10
- {0, C9_11, C8_11, C7_11}, //B11
- {0, C9_12, C8_12, C7_12}, //B12
- {0, C9_13, C8_13, C7_13}, //B13
- {0, C9_14, C8_14, C7_14}, //B14
- {0, C9_15, C8_15, C6_14}, //B15
- {0, C9_16, C7_15, C6_15}, //B16
-
- {1, C1_1, C3_2, C4_2}, //C1
- {1, C1_2, C2_2, C4_3}, //C2
- {1, C1_3, C2_3, C3_3}, //C3
- {1, C1_4, C2_4, C3_4}, //C4
- {1, C1_5, C2_5, C3_5}, //C5
- {1, C1_6, C2_6, C3_6}, //C6
- {1, C1_7, C2_7, C3_7}, //C7
- {1, C1_8, C2_8, C3_8}, //C8
- {1, C9_1, C8_1, C7_1}, //C9
- {1, C9_2, C8_2, C7_2}, //C10
- {1, C9_3, C8_3, C7_3}, //C11
- {1, C9_4, C8_4, C7_4}, //C12
- {1, C9_5, C8_5, C7_5}, //C13
- {1, C9_6, C8_6, C7_6}, //C14
- {1, C9_7, C8_7, C6_6}, //C15
- {1, C9_8, C7_7, C6_7}, //C16
-
- {1, C1_9, C3_10, C4_10}, //D1
- {1, C1_10, C2_10, C4_11}, //D2
- {1, C1_11, C2_11, C3_11}, //D3
- {1, C1_12, C2_12, C3_12}, //D4
- {1, C1_13, C2_13, C3_13}, //D5
- {1, C1_14, C2_14, C3_14}, //D6
- {1, C1_15, C2_15, C3_15}, //D7
- {1, C1_16, C2_16, C3_16}, //D8
- {1, C9_9, C8_9, C7_9}, //D9
- {1, C9_10, C8_10, C7_10}, //D10
- {1, C9_11, C8_11, C7_11}, //D11
- {1, C9_12, C8_12, C7_12}, //D12
- {1, C9_13, C8_13, C7_13}, //D13
- {1, C9_14, C8_14, C7_14}, //D14
- {1, C9_15, C8_15, C6_14}, //D15
- {1, C9_16, C7_15, C6_15} //D16
-};
-#elif defined(RGB_BACKLIGHT_PORTICO)
-// This is a 7-bit address, that gets left-shifted and bit 0
-// set to 0 for write, 1 for read (as per I2C protocol)
-#define ISSI_ADDR_1 0x74
-#define ISSI_ADDR_2 0x77
-
-const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = {
-/* Refer to IS31 manual for these locations
- * driver
- * | R location
- * | | G location
- * | | | B location
- * | | | | */
- { 0, C2_1, C3_1, C4_1 },
- { 0, C1_1, C3_2, C4_2 },
- { 0, C1_2, C2_2, C4_3 },
- { 0, C1_3, C2_3, C3_3 },
- { 0, C1_4, C2_4, C3_4 },
- { 0, C1_5, C2_5, C3_5 },
- { 0, C1_6, C2_6, C3_6 },
- { 0, C1_7, C2_7, C3_7 },
- { 0, C1_8, C2_8, C3_8 },
- { 1, C2_1, C3_1, C4_1 },
- { 1, C1_1, C3_2, C4_2 },
- { 1, C1_2, C2_2, C4_3 },
- { 1, C1_3, C2_3, C3_3 },
- { 1, C1_4, C2_4, C3_4 },
- { 1, C1_5, C2_5, C3_5 },
-
- { 0, C9_1, C8_1, C7_1 },
- { 0, C9_2, C8_2, C7_2 },
- { 0, C9_3, C8_3, C7_3 },
- { 0, C9_4, C8_4, C7_4 },
- { 0, C9_5, C8_5, C7_5 },
- { 0, C9_6, C8_6, C7_6 },
- { 0, C9_7, C8_7, C6_6 },
- { 0, C9_8, C7_7, C6_7 },
- { 0, C8_8, C7_8, C6_8 },
- { 1, C9_1, C8_1, C7_1 },
- { 1, C9_2, C8_2, C7_2 },
- { 1, C9_3, C8_3, C7_3 },
- { 1, C9_4, C8_4, C7_4 },
- { 1, C9_5, C8_5, C7_5 },
- { 1, C9_6, C8_6, C7_6 },
-
- { 0, C1_9, C3_10, C4_10 },
- { 0, C1_10, C2_10, C4_11 },
- { 0, C1_11, C2_11, C3_11 },
- { 0, C1_12, C2_12, C3_12 },
- { 0, C1_13, C2_13, C3_13 },
- { 0, C1_14, C2_14, C3_14 },
- { 0, C1_15, C2_15, C3_15 },
- { 0, C1_16, C2_16, C3_16 },
- { 1, C1_10, C2_10, C4_11 },
- { 1, C1_11, C2_11, C3_11 },
- { 1, C1_12, C2_12, C3_12 },
- { 1, C1_13, C2_13, C3_13 },
- { 1, C1_14, C2_14, C3_14 },
- { 1, C9_7, C8_7, C6_6 },
-
- { 0, C2_9, C3_9, C4_9 },
- { 0, C9_12, C8_12, C7_12 },
- { 0, C9_13, C8_13, C7_13 },
- { 0, C9_14, C8_14, C7_14 },
- { 0, C9_15, C8_15, C6_14 },
- { 0, C9_16, C7_15, C6_15 },
- { 1, C2_9, C3_9, C4_9 },
- { 1, C1_9, C3_10, C4_10 },
- { 1, C9_9, C8_9, C7_9 },
- { 1, C9_10, C8_10, C7_10 },
- { 1, C9_11, C8_11, C7_11 },
- { 1, C9_14, C8_14, C7_14 },
- { 1, C1_15, C2_15, C3_15 },
- { 1, C1_16, C2_16, C3_16 },
-
- { 0, C9_9, C8_9, C7_9 },
- { 0, C9_10, C8_10, C7_10 },
- { 0, C9_11, C8_11, C7_11 },
- { 0, C8_16, C7_16, C6_16 },
- { 1, C9_12, C8_12, C7_12 },
- { 1, C9_13, C8_13, C7_13 },
- { 1, C9_15, C8_15, C6_14 },
- { 1, C9_16, C7_15, C6_15 },
- { 1, C8_16, C7_16, C6_16 }
-};
-
-#elif defined(RGB_BACKLIGHT_PORTICO75)
-// This is a 7-bit address, that gets left-shifted and bit 0
-// set to 0 for write, 1 for read (as per I2C protocol)
-#define ISSI_ADDR_1 0x30
-#define ISSI_ADDR_2
-
-const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = {
-/* Refer to IS31 manual for these locations
- * driver
- * | R location
- * | | G location
- * | | | B location
- * | | | | */
- {0, CS18_SW1, CS17_SW1, CS16_SW1},
- {0, CS18_SW2, CS17_SW2, CS16_SW2},
- {0, CS18_SW3, CS17_SW3, CS16_SW3},
- {0, CS18_SW4, CS17_SW4, CS16_SW4},
- {0, CS18_SW5, CS17_SW5, CS16_SW5},
- {0, CS18_SW6, CS17_SW6, CS16_SW6},
- {0, CS18_SW7, CS17_SW7, CS16_SW7},
- {0, CS18_SW8, CS17_SW8, CS16_SW8},
- {0, CS18_SW9, CS17_SW9, CS16_SW9},
-
- {0, CS21_SW1, CS20_SW1, CS19_SW1},
- {0, CS21_SW2, CS20_SW2, CS19_SW2},
- {0, CS21_SW3, CS20_SW3, CS19_SW3},
- {0, CS21_SW4, CS20_SW4, CS19_SW4},
- {0, CS21_SW5, CS20_SW5, CS19_SW5},
- {0, CS21_SW6, CS20_SW6, CS19_SW6}, //Encoder, NO_LED
-
- {0, CS15_SW1, CS14_SW1, CS13_SW1},
- {0, CS15_SW2, CS14_SW2, CS13_SW2},
- {0, CS15_SW3, CS14_SW3, CS13_SW3},
- {0, CS15_SW4, CS14_SW4, CS13_SW4},
- {0, CS15_SW5, CS14_SW5, CS13_SW5},
- {0, CS15_SW6, CS14_SW6, CS13_SW6},
- {0, CS15_SW7, CS14_SW7, CS13_SW7},
- {0, CS15_SW8, CS14_SW8, CS13_SW8},
- {0, CS15_SW9, CS14_SW9, CS13_SW9},
-
- {0, CS24_SW1, CS23_SW1, CS22_SW1},
- {0, CS24_SW2, CS23_SW2, CS22_SW2},
- {0, CS24_SW3, CS23_SW3, CS22_SW3},
- {0, CS24_SW4, CS23_SW4, CS22_SW4},
- {0, CS24_SW5, CS23_SW5, CS22_SW5},
- {0, CS24_SW6, CS23_SW6, CS22_SW6},
-
- {0, CS12_SW1, CS11_SW1, CS10_SW1},
- {0, CS12_SW2, CS11_SW2, CS10_SW2},
- {0, CS12_SW3, CS11_SW3, CS10_SW3},
- {0, CS12_SW4, CS11_SW4, CS10_SW4},
- {0, CS12_SW5, CS11_SW5, CS10_SW5},
- {0, CS12_SW6, CS11_SW6, CS10_SW6},
- {0, CS12_SW7, CS11_SW7, CS10_SW7},
- {0, CS12_SW8, CS11_SW8, CS10_SW8},
- {0, CS12_SW9, CS11_SW9, CS10_SW9},
-
- {0, CS27_SW1, CS26_SW1, CS25_SW1},
- {0, CS27_SW2, CS26_SW2, CS25_SW2},
- {0, CS27_SW3, CS26_SW3, CS25_SW3},
- {0, CS27_SW4, CS26_SW4, CS25_SW4},
- {0, CS27_SW5, CS26_SW5, CS25_SW5},
- {0, CS27_SW6, CS26_SW6, CS25_SW6},
-
- {0, CS9_SW1, CS8_SW1, CS7_SW1},
- {0, CS9_SW2, CS8_SW2, CS7_SW2},
- {0, CS9_SW3, CS8_SW3, CS7_SW3},
- {0, CS9_SW4, CS8_SW4, CS7_SW4},
- {0, CS9_SW5, CS8_SW5, CS7_SW5},
- {0, CS9_SW6, CS8_SW6, CS7_SW6},
- {0, CS9_SW7, CS8_SW7, CS7_SW7},
- {0, CS9_SW8, CS8_SW8, CS7_SW8},
- {0, CS9_SW9, CS8_SW9, CS7_SW9},
-
- {0, CS30_SW1, CS29_SW1, CS28_SW1},
- {0, CS30_SW2, CS29_SW2, CS28_SW2},
- {0, CS30_SW3, CS29_SW3, CS28_SW3},
- {0, CS30_SW4, CS29_SW4, CS28_SW4},
-
- {0, CS6_SW1, CS5_SW1, CS4_SW1},
- {0, CS6_SW2, CS5_SW2, CS4_SW2},
- {0, CS6_SW3, CS5_SW3, CS4_SW3},
- {0, CS6_SW4, CS5_SW4, CS4_SW4},
- {0, CS6_SW5, CS5_SW5, CS4_SW5},
- {0, CS6_SW6, CS5_SW6, CS4_SW6},
- {0, CS6_SW7, CS5_SW7, CS4_SW7},
- {0, CS6_SW8, CS5_SW8, CS4_SW8},
- {0, CS6_SW9, CS5_SW9, CS4_SW9},
-
- {0, CS33_SW1, CS32_SW1, CS31_SW1},
- {0, CS33_SW2, CS32_SW2, CS31_SW2},
- {0, CS33_SW3, CS32_SW3, CS31_SW3},
- {0, CS33_SW4, CS32_SW4, CS31_SW4},
-
- {0, CS3_SW1, CS2_SW1, CS1_SW1},
- {0, CS3_SW2, CS2_SW2, CS1_SW2},
- {0, CS3_SW3, CS2_SW3, CS1_SW3},
- {0, CS3_SW6, CS2_SW6, CS1_SW6},
- {0, CS3_SW8, CS2_SW8, CS1_SW8},
- {0, CS3_SW9, CS2_SW9, CS1_SW9},
-
- {0, CS36_SW1, CS35_SW1, CS34_SW1},
- {0, CS36_SW2, CS35_SW2, CS34_SW2},
- {0, CS36_SW3, CS35_SW3, CS34_SW3},
-
-/*UNDERGLOW*/
- {0, CS39_SW1, CS38_SW1, CS37_SW1},
- {0, CS39_SW2, CS38_SW2, CS37_SW2},
- {0, CS39_SW3, CS38_SW3, CS37_SW3},
- {0, CS39_SW4, CS38_SW4, CS37_SW4},
- {0, CS39_SW5, CS38_SW5, CS37_SW5},
- {0, CS39_SW6, CS38_SW6, CS37_SW6},
- {0, CS39_SW7, CS38_SW7, CS37_SW7},
- {0, CS39_SW8, CS38_SW8, CS37_SW8},
- {0, CS39_SW9, CS38_SW9, CS37_SW9},
-
- {0, CS36_SW4, CS35_SW4, CS34_SW4},
- {0, CS36_SW5, CS35_SW5, CS34_SW5},
- {0, CS36_SW6, CS35_SW6, CS34_SW6},
- {0, CS36_SW7, CS35_SW7, CS34_SW7},
- {0, CS36_SW8, CS35_SW8, CS34_SW8},
- {0, CS36_SW9, CS35_SW9, CS34_SW9},
-
- {0, CS33_SW5, CS32_SW5, CS31_SW5},
- {0, CS33_SW6, CS32_SW6, CS31_SW6},
- {0, CS33_SW7, CS32_SW7, CS31_SW7}
-};
-
-#elif defined(RGB_BACKLIGHT_M6_B)
- // Driver has fixed mapping of index to the red, green and blue LEDs
-#elif defined(RGB_BACKLIGHT_M10_C)
-// This is a 7-bit address, that gets left-shifted and bit 0
-// set to 0 for write, 1 for read (as per I2C protocol)
-#define ISSI_ADDR_1 0x74
-#define ISSI_ADDR_2
-
-const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = {
- {0, C1_9, C3_10, C4_10}, // LB1
- {0, C1_10, C2_10, C4_11}, // LB2
- {0, C1_11, C2_11, C3_11}, // LB3
- {0, C1_12, C2_12, C3_12}, // LB4
- {0, C1_13, C2_13, C3_13}, // LB5
- {0, C1_14, C2_14, C3_14}, // LB6
- {0, C9_11, C8_11, C7_11}, // LB11
- {0, C9_12, C8_12, C7_12}, // LB12
- {0, C9_13, C8_13, C7_13}, // LB13
- {0, C9_14, C8_14, C7_14}, // LB14
- {0, C9_15, C8_15, C6_14}, // LB15
- {0, C9_16, C7_15, C6_15} // LB16
-};
-#else
-// This is a 7-bit address, that gets left-shifted and bit 0
-// set to 0 for write, 1 for read (as per I2C protocol)
-#define ISSI_ADDR_1 0x74
-#define ISSI_ADDR_2 0x76
-
-const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = {
-/* Refer to IS31 manual for these locations
- * driver
- * | R location
- * | | G location
- * | | | B location
- * | | | | */
- {0, C2_1, C3_1, C4_1}, // LA0
- {0, C1_1, C3_2, C4_2}, // LA1
- {0, C1_2, C2_2, C4_3}, // LA2
- {0, C1_3, C2_3, C3_3}, // LA3
- {0, C1_4, C2_4, C3_4}, // LA4
- {0, C1_5, C2_5, C3_5}, // LA5
- {0, C1_6, C2_6, C3_6}, // LA6
- {0, C1_7, C2_7, C3_7}, // LA7
- {0, C1_8, C2_8, C3_8}, // LA8
- {0, C9_1, C8_1, C7_1}, // LA9
- {0, C9_2, C8_2, C7_2}, // LA10
- {0, C9_3, C8_3, C7_3}, // LA11
- {0, C9_4, C8_4, C7_4}, // LA12
- {0, C9_5, C8_5, C7_5}, // LA13
- {0, C9_6, C8_6, C7_6}, // LA14
- {0, C9_7, C8_7, C6_6}, // LA15
- {0, C9_8, C7_7, C6_7}, // LA16
- {0, C8_8, C7_8, C6_8}, // LA17
-
- {0, C2_9, C3_9, C4_9}, // LB0
- {0, C1_9, C3_10, C4_10}, // LB1
- {0, C1_10, C2_10, C4_11}, // LB2
- {0, C1_11, C2_11, C3_11}, // LB3
- {0, C1_12, C2_12, C3_12}, // LB4
- {0, C1_13, C2_13, C3_13}, // LB5
- {0, C1_14, C2_14, C3_14}, // LB6
- {0, C1_15, C2_15, C3_15}, // LB7
- {0, C1_16, C2_16, C3_16}, // LB8
- {0, C9_9, C8_9, C7_9}, // LB9
- {0, C9_10, C8_10, C7_10}, // LB10
- {0, C9_11, C8_11, C7_11}, // LB11
- {0, C9_12, C8_12, C7_12}, // LB12
- {0, C9_13, C8_13, C7_13}, // LB13
- {0, C9_14, C8_14, C7_14}, // LB14
- {0, C9_15, C8_15, C6_14}, // LB15
- {0, C9_16, C7_15, C6_15}, // LB16
- {0, C8_16, C7_16, C6_16}, // LB17
-
- {1, C2_1, C3_1, C4_1}, // LC0
- {1, C1_1, C3_2, C4_2}, // LC1
- {1, C1_2, C2_2, C4_3}, // LC2
- {1, C1_3, C2_3, C3_3}, // LC3
- {1, C1_4, C2_4, C3_4}, // LC4
- {1, C1_5, C2_5, C3_5}, // LC5
- {1, C1_6, C2_6, C3_6}, // LC6
- {1, C1_7, C2_7, C3_7}, // LC7
- {1, C1_8, C2_8, C3_8}, // LC8
- {1, C9_1, C8_1, C7_1}, // LC9
- {1, C9_2, C8_2, C7_2}, // LC10
- {1, C9_3, C8_3, C7_3}, // LC11
- {1, C9_4, C8_4, C7_4}, // LC12
- {1, C9_5, C8_5, C7_5}, // LC13
- {1, C9_6, C8_6, C7_6}, // LC14
- {1, C9_7, C8_7, C6_6}, // LC15
- {1, C9_8, C7_7, C6_7}, // LC16
- {1, C8_8, C7_8, C6_8}, // LC17
-
- {1, C2_9, C3_9, C4_9}, // LD0
- {1, C1_9, C3_10, C4_10}, // LD1
- {1, C1_10, C2_10, C4_11}, // LD2
- {1, C1_11, C2_11, C3_11}, // LD3
- {1, C1_12, C2_12, C3_12}, // LD4
- {1, C1_13, C2_13, C3_13}, // LD5
- {1, C1_14, C2_14, C3_14}, // LD6
- {1, C1_15, C2_15, C3_15}, // LD7
- {1, C1_16, C2_16, C3_16}, // LD8
- {1, C9_9, C8_9, C7_9}, // LD9
- {1, C9_10, C8_10, C7_10}, // LD10
- {1, C9_11, C8_11, C7_11}, // LD11
- {1, C9_12, C8_12, C7_12}, // LD12
- {1, C9_13, C8_13, C7_13}, // LD13
- {1, C9_14, C8_14, C7_14}, // LD14
- {1, C9_15, C8_15, C6_14}, // LD15
- {1, C9_16, C7_15, C6_15}, // LD16
- {1, C8_16, C7_16, C6_16}, // LD17
-};
-#endif
-
-
typedef struct Point {
uint8_t x;
uint8_t y;
@@ -1773,34 +980,34 @@ void backlight_update_pwm_buffers(void)
#if defined(RGB_BACKLIGHT_M6_B)
is31fl3218_update_pwm_buffers();
#elif defined(RGB_BACKLIGHT_PORTICO75)
- is31fl3741_update_pwm_buffers( ISSI_ADDR_1, 0 );
- is31fl3741_update_led_control_registers( ISSI_ADDR_1, 0 );
+ is31fl3741_update_pwm_buffers( IS31FL3741_I2C_ADDRESS_1, 0 );
+ is31fl3741_update_led_control_registers( IS31FL3741_I2C_ADDRESS_1, 0 );
#elif defined(RGB_BACKLIGHT_M10_C)
- is31fl3731_update_pwm_buffers( ISSI_ADDR_1, 0 );
- is31fl3731_update_led_control_registers( ISSI_ADDR_1, 0 );
+ is31fl3731_update_pwm_buffers( IS31FL3731_I2C_ADDRESS_1, 0 );
+ is31fl3731_update_led_control_registers( IS31FL3731_I2C_ADDRESS_1, 0 );
#elif defined(RGB_BACKLIGHT_HS60)
- is31fl3733_update_pwm_buffers( ISSI_ADDR_1, 0 );
- is31fl3733_update_led_control_registers( ISSI_ADDR_1, 0 );
+ is31fl3733_update_pwm_buffers( IS31FL3733_I2C_ADDRESS_1, 0 );
+ is31fl3733_update_led_control_registers( IS31FL3733_I2C_ADDRESS_1, 0 );
#elif defined(RGB_BACKLIGHT_NK65) || defined(RGB_BACKLIGHT_NEBULA68) || defined(RGB_BACKLIGHT_NK87) || defined(RGB_BACKLIGHT_KW_MEGA)
- is31fl3733_update_pwm_buffers( ISSI_ADDR_1, 0 );
- is31fl3733_update_pwm_buffers( ISSI_ADDR_2, 1 );
- is31fl3733_update_led_control_registers( ISSI_ADDR_1, 0 );
- is31fl3733_update_led_control_registers( ISSI_ADDR_2, 1 );
+ is31fl3733_update_pwm_buffers( IS31FL3733_I2C_ADDRESS_1, 0 );
+ is31fl3733_update_pwm_buffers( IS31FL3733_I2C_ADDRESS_2, 1 );
+ is31fl3733_update_led_control_registers( IS31FL3733_I2C_ADDRESS_1, 0 );
+ is31fl3733_update_led_control_registers( IS31FL3733_I2C_ADDRESS_2, 1 );
#elif defined(RGB_BACKLIGHT_NEBULA12)
- is31fl3731_update_pwm_buffers( ISSI_ADDR_1, 0 );
- is31fl3731_update_led_control_registers( ISSI_ADDR_1, 0 );
+ is31fl3731_update_pwm_buffers( IS31FL3731_I2C_ADDRESS_1, 0 );
+ is31fl3731_update_led_control_registers( IS31FL3731_I2C_ADDRESS_1, 0 );
#elif defined(RGB_BACKLIGHT_U80_A)
static uint8_t driver = 0;
switch ( driver )
{
case 0:
- is31fl3731_update_pwm_buffers( ISSI_ADDR_1, 0 );
+ is31fl3731_update_pwm_buffers( IS31FL3731_I2C_ADDRESS_1, 0 );
break;
case 1:
- is31fl3731_update_pwm_buffers( ISSI_ADDR_2, 1 );
+ is31fl3731_update_pwm_buffers( IS31FL3731_I2C_ADDRESS_2, 1 );
break;
case 2:
- is31fl3731_update_pwm_buffers( ISSI_ADDR_3, 2 );
+ is31fl3731_update_pwm_buffers( IS31FL3731_I2C_ADDRESS_3, 2 );
break;
}
if ( ++driver > 2 )
@@ -1808,10 +1015,10 @@ void backlight_update_pwm_buffers(void)
driver = 0;
}
#else
- is31fl3731_update_pwm_buffers( ISSI_ADDR_1, 0 );
- is31fl3731_update_pwm_buffers( ISSI_ADDR_2, 1 );
- is31fl3731_update_led_control_registers( ISSI_ADDR_1, 0 );
- is31fl3731_update_led_control_registers( ISSI_ADDR_2, 1 );
+ is31fl3731_update_pwm_buffers( IS31FL3731_I2C_ADDRESS_1, 0 );
+ is31fl3731_update_pwm_buffers( IS31FL3731_I2C_ADDRESS_2, 1 );
+ is31fl3731_update_led_control_registers( IS31FL3731_I2C_ADDRESS_1, 0 );
+ is31fl3731_update_led_control_registers( IS31FL3731_I2C_ADDRESS_2, 1 );
#endif
}
@@ -1831,12 +1038,12 @@ void backlight_set_color( int index, uint8_t red, uint8_t green, uint8_t blue )
is31fl3733_set_color( index, red, green, blue );
}
#elif defined(RGB_BACKLIGHT_DAWN60)
- if( index < RGB_MATRIX_LED_COUNT ) {
+ if( index < IS31FL3731_LED_COUNT ) {
is31fl3731_set_color( index, red, green, blue );
} else {
- g_ws2812_leds[index - RGB_MATRIX_LED_COUNT].r = red;
- g_ws2812_leds[index - RGB_MATRIX_LED_COUNT].g = green;
- g_ws2812_leds[index - RGB_MATRIX_LED_COUNT].b = blue;
+ g_ws2812_leds[index - IS31FL3731_LED_COUNT].r = red;
+ g_ws2812_leds[index - IS31FL3731_LED_COUNT].g = green;
+ g_ws2812_leds[index - IS31FL3731_LED_COUNT].b = blue;
ws2812_setleds(g_ws2812_leds, WS2812_LED_TOTAL);
}
#else
@@ -2125,9 +1332,9 @@ void backlight_effect_alphas_mods(void)
for (int i = 0; i < WS2812_LED_TOTAL; i++) {
if ((RGB_UNDERGLOW_ALPHA_TOP_START <= i && i <= RGB_UNDERGLOW_ALPHA_TOP_END) ||
(RGB_UNDERGLOW_ALPHA_BOT_START <= i && i <= RGB_UNDERGLOW_ALPHA_BOT_END)) {
- backlight_set_color(i + RGB_MATRIX_LED_COUNT, rgb1.r, rgb1.g, rgb1.b);
+ backlight_set_color(i + IS31FL3731_LED_COUNT, rgb1.r, rgb1.g, rgb1.b);
} else {
- backlight_set_color(i + RGB_MATRIX_LED_COUNT, rgb2.r, rgb2.g, rgb2.b);
+ backlight_set_color(i + IS31FL3731_LED_COUNT, rgb2.r, rgb2.g, rgb2.b);
}
}
#endif
@@ -2915,10 +2122,21 @@ void backlight_init_drivers(void)
#if defined(RGB_BACKLIGHT_M6_B)
is31fl3218_init();
+
+ for ( int index = 0; index < IS31FL3218_LED_COUNT; index++ )
+ {
+ bool enabled = true;
+
+ // This only caches it for later
+ is31fl3218_set_led_control_register( index, enabled, enabled, enabled );
+ }
+
+ // This actually updates the LED drivers
+ is31fl3218_update_led_control_registers();
#elif defined(RGB_BACKLIGHT_HS60)
- is31fl3733_init( ISSI_ADDR_1, 0 );
+ is31fl3733_init( IS31FL3733_I2C_ADDRESS_1, IS31FL3733_SYNC_NONE );
- for ( int index = 0; index < RGB_MATRIX_LED_COUNT; index++ )
+ for ( int index = 0; index < IS31FL3733_LED_COUNT; index++ )
{
#if defined(HS60_ANSI)
bool enabled = !( ( index == 48-1 ) || //LA48
@@ -2935,12 +2153,12 @@ void backlight_init_drivers(void)
is31fl3733_set_led_control_register( index, enabled, enabled, enabled );
}
// This actually updates the LED drivers
- is31fl3733_update_led_control_registers( ISSI_ADDR_1, 0 );
+ is31fl3733_update_led_control_registers( IS31FL3733_I2C_ADDRESS_1, 0 );
#elif defined(RGB_BACKLIGHT_NK65)
- is31fl3733_init( ISSI_ADDR_1, 0 );
- is31fl3733_init( ISSI_ADDR_2, 0 );
+ is31fl3733_init( IS31FL3733_I2C_ADDRESS_1, IS31FL3733_SYNC_NONE );
+ is31fl3733_init( IS31FL3733_I2C_ADDRESS_2, IS31FL3733_SYNC_NONE );
- for ( int index = 0; index < RGB_MATRIX_LED_COUNT; index++ )
+ for ( int index = 0; index < IS31FL3733_LED_COUNT; index++ )
{
bool enabled = !( ( index == 61-1 ) || //LA61
( index > 6+64-1 ) ); //LB7-LB64
@@ -2949,13 +2167,13 @@ void backlight_init_drivers(void)
}
is31fl3733_set_led_control_register( 7+64-1, 0, 1, 0 ); //Enable LB7 green enable for indicators
// This actually updates the LED drivers
- is31fl3733_update_led_control_registers( ISSI_ADDR_1, 0 );
- is31fl3733_update_led_control_registers( ISSI_ADDR_2, 1 );
+ is31fl3733_update_led_control_registers( IS31FL3733_I2C_ADDRESS_1, 0 );
+ is31fl3733_update_led_control_registers( IS31FL3733_I2C_ADDRESS_2, 1 );
#elif defined(RGB_BACKLIGHT_NK87)
- is31fl3733_init( ISSI_ADDR_1, 0 );
- is31fl3733_init( ISSI_ADDR_2, 0 );
+ is31fl3733_init( IS31FL3733_I2C_ADDRESS_1, IS31FL3733_SYNC_NONE );
+ is31fl3733_init( IS31FL3733_I2C_ADDRESS_2, IS31FL3733_SYNC_NONE );
- for ( int index = 0; index < RGB_MATRIX_LED_COUNT; index++ )
+ for ( int index = 0; index < IS31FL3733_LED_COUNT; index++ )
{
bool enabled = !( ( index == 61-1 ) || //LA61
( (index >= 2+64-1) && (index <= 4+64-1) ) ||
@@ -2979,13 +2197,13 @@ void backlight_init_drivers(void)
}
is31fl3733_set_led_control_register( 48+64-1, 0, 0, 1 ); //Enable LB48 blue enable for indicators
// This actually updates the LED drivers
- is31fl3733_update_led_control_registers( ISSI_ADDR_1, 0 );
- is31fl3733_update_led_control_registers( ISSI_ADDR_2, 1 );
+ is31fl3733_update_led_control_registers( IS31FL3733_I2C_ADDRESS_1, 0 );
+ is31fl3733_update_led_control_registers( IS31FL3733_I2C_ADDRESS_2, 1 );
#elif defined(RGB_BACKLIGHT_NEBULA68)
- is31fl3733_init( ISSI_ADDR_1, 0 );
- is31fl3733_init( ISSI_ADDR_2, 0 );
+ is31fl3733_init( IS31FL3733_I2C_ADDRESS_1, IS31FL3733_SYNC_NONE );
+ is31fl3733_init( IS31FL3733_I2C_ADDRESS_2, IS31FL3733_SYNC_NONE );
- for ( int index = 0; index < RGB_MATRIX_LED_COUNT; index++ )
+ for ( int index = 0; index < IS31FL3733_LED_COUNT; index++ )
{
bool enabled = !( ( index == 61-1 ) || //LA61
( index > 5+64-1 ) ); //LB6-LB64
@@ -2993,22 +2211,22 @@ void backlight_init_drivers(void)
is31fl3733_set_led_control_register( index, enabled, enabled, enabled );
}
// This actually updates the LED drivers
- is31fl3733_update_led_control_registers( ISSI_ADDR_1, 0 );
- is31fl3733_update_led_control_registers( ISSI_ADDR_2, 1 );
+ is31fl3733_update_led_control_registers( IS31FL3733_I2C_ADDRESS_1, 0 );
+ is31fl3733_update_led_control_registers( IS31FL3733_I2C_ADDRESS_2, 1 );
#elif defined(RGB_BACKLIGHT_PORTICO75)
- is31fl3741_init( ISSI_ADDR_1 );
+ is31fl3741_init( IS31FL3741_I2C_ADDRESS_1 );
bool enabled = true;
- for ( int index = 0; index < RGB_MATRIX_LED_COUNT; index++ )
+ for ( int index = 0; index < IS31FL3741_LED_COUNT; index++ )
{
is31fl3741_set_led_control_register( index, enabled, enabled, enabled );
}
// This actually updates the LED drivers
- is31fl3741_update_led_control_registers( ISSI_ADDR_1, 0 );
+ is31fl3741_update_led_control_registers( IS31FL3741_I2C_ADDRESS_1, 0 );
#elif defined(RGB_BACKLIGHT_KW_MEGA)
- is31fl3733_init( ISSI_ADDR_1, 0 );
- is31fl3733_init( ISSI_ADDR_2, 0 );
+ is31fl3733_init( IS31FL3733_I2C_ADDRESS_1, IS31FL3733_SYNC_NONE );
+ is31fl3733_init( IS31FL3733_I2C_ADDRESS_2, IS31FL3733_SYNC_NONE );
- for ( int index = 0; index < RGB_MATRIX_LED_COUNT; index++ )
+ for ( int index = 0; index < IS31FL3733_LED_COUNT; index++ )
{
bool enabled = !( ( index == 61-1 ) || //LA61
( index > 6+64-1 ) ); //LB7-LB64
@@ -3016,18 +2234,18 @@ void backlight_init_drivers(void)
is31fl3733_set_led_control_register( index, enabled, enabled, enabled );
}
// This actually updates the LED drivers
- is31fl3733_update_led_control_registers( ISSI_ADDR_1, 0 );
- is31fl3733_update_led_control_registers( ISSI_ADDR_2, 1 );
+ is31fl3733_update_led_control_registers( IS31FL3733_I2C_ADDRESS_1, 0 );
+ is31fl3733_update_led_control_registers( IS31FL3733_I2C_ADDRESS_2, 1 );
#else
// Init the #1 driver
- is31fl3731_init( ISSI_ADDR_1 );
+ is31fl3731_init( IS31FL3731_I2C_ADDRESS_1 );
// Init the #2 driver (if used)
#if !defined(RGB_BACKLIGHT_NEBULA12) && !defined(RGB_BACKLIGHT_M10_C)
- is31fl3731_init( ISSI_ADDR_2 );
+ is31fl3731_init( IS31FL3731_I2C_ADDRESS_2 );
#endif
// Init the #3 driver (if used)
#if defined(RGB_BACKLIGHT_U80_A)
- is31fl3731_init( ISSI_ADDR_3 );
+ is31fl3731_init( IS31FL3731_I2C_ADDRESS_3 );
#endif
// Experimental feature, not in configuration yet
@@ -3035,7 +2253,7 @@ void backlight_init_drivers(void)
bool disable_spacebar_stab_leds = false;
#endif
- for ( int index = 0; index < RGB_MATRIX_LED_COUNT; index++ )
+ for ( int index = 0; index < BACKLIGHT_LED_COUNT; index++ )
{
// OR the possible "disabled" cases together, then NOT the result to get the enabled state
// LC6 LD13 not present on Zeal65
@@ -3160,12 +2378,12 @@ void backlight_init_drivers(void)
}
// This actually updates the LED drivers
// TODO: refactor this to use DRIVER_COUNT
- is31fl3731_update_led_control_registers( ISSI_ADDR_1, 0 );
+ is31fl3731_update_led_control_registers( IS31FL3731_I2C_ADDRESS_1, 0 );
#if !defined(RGB_BACKLIGHT_NEBULA12) && !defined(RGB_BACKLIGHT_M10_C)
- is31fl3731_update_led_control_registers( ISSI_ADDR_2, 1 );
+ is31fl3731_update_led_control_registers( IS31FL3731_I2C_ADDRESS_2, 1 );
#endif
#if defined(RGB_BACKLIGHT_U80_A)
- is31fl3731_update_led_control_registers( ISSI_ADDR_3, 2 );
+ is31fl3731_update_led_control_registers( IS31FL3731_I2C_ADDRESS_3, 2 );
#endif
#endif
diff --git a/keyboards/wilba_tech/zeal60/config.h b/keyboards/wilba_tech/zeal60/config.h
index e57bafe20d..225c878b20 100644
--- a/keyboards/wilba_tech/zeal60/config.h
+++ b/keyboards/wilba_tech/zeal60/config.h
@@ -16,8 +16,9 @@
#pragma once
// IS31FL3731 driver
-#define DRIVER_COUNT 2
-#define RGB_MATRIX_LED_COUNT 72
+#define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND
+#define IS31FL3731_I2C_ADDRESS_2 IS31FL3731_I2C_ADDRESS_SDA
+#define IS31FL3731_LED_COUNT 72
// Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap
#define LOCKING_SUPPORT_ENABLE
diff --git a/keyboards/wilba_tech/zeal60/keymaps/sethBarberee/config.h b/keyboards/wilba_tech/zeal60/keymaps/sethBarberee/config.h
deleted file mode 100644
index 68c4b9ed33..0000000000
--- a/keyboards/wilba_tech/zeal60/keymaps/sethBarberee/config.h
+++ /dev/null
@@ -1,37 +0,0 @@
-#pragma once
-
-/* enable/disable LEDs based on layout */
-#undef RGB_BACKLIGHT_USE_SPLIT_BACKSPACE
-#define RGB_BACKLIGHT_USE_SPLIT_BACKSPACE 1
-
-#undef RGB_BACKLIGHT_USE_SPLIT_LEFT_SHIFT
-#define RGB_BACKLIGHT_USE_SPLIT_LEFT_SHIFT 0
-
-#undef RGB_BACKLIGHT_USE_SPLIT_RIGHT_SHIFT
-#define RGB_BACKLIGHT_USE_SPLIT_RIGHT_SHIFT 1
-
-#undef RGB_BACKLIGHT_USE_7U_SPACEBAR
-#define RGB_BACKLIGHT_USE_7U_SPACEBAR 1
-
-#undef RGB_BACKLIGHT_USE_ISO_ENTER
-#define RGB_BACKLIGHT_USE_ISO_ENTER 0
-
-#undef RGB_BACKLIGHT_DISABLE_HHKB_BLOCKER_LEDS
-#define RGB_BACKLIGHT_DISABLE_HHKB_BLOCKER_LEDS 0
-
-// disable backlight when USB suspended (PC sleep/hibernate/shutdown)
-//
-#undef RGB_BACKLIGHT_DISABLE_WHEN_USB_SUSPENDED
-#define RGB_BACKLIGHT_DISABLE_WHEN_USB_SUSPENDED 1
-
-#undef RGB_BACKLIGHT_EFFECT
-#define RGB_BACKLIGHT_EFFECT 5
-
-#undef RGB_BACKLIGHT_CAPS_LOCK_INDICATOR
-#undef RGB_BACKLIGHT_LAYER_2_INDICATOR
-#undef RGB_BACKLIGHT_LAYER_3_INDICATOR
-
-#define RGB_BACKLIGHT_CAPS_LOCK_INDICATOR { .color = { .h = 0, .s= 255}, .index = 254}
-#define RGB_BACKLIGHT_LAYER_2_INDICATOR { .color = { .h = 150, .s = 255 }, .index = 60-1 } //blue
-#define RGB_BACKLIGHT_LAYER_3_INDICATOR { .color = { .h = 100, .s = 255 }, .index = 60-1 } //blue
-
diff --git a/keyboards/wilba_tech/zeal60/keymaps/sethBarberee/keymap.c b/keyboards/wilba_tech/zeal60/keymaps/sethBarberee/keymap.c
deleted file mode 100644
index 898d80eaee..0000000000
--- a/keyboards/wilba_tech/zeal60/keymaps/sethBarberee/keymap.c
+++ /dev/null
@@ -1,46 +0,0 @@
-// ANSI split backspace/right shift layout for Zeal60
-#include QMK_KEYBOARD_H
-
-#define KC_CAFN LT(1,KC_CAPS)
-#define KC_ENFN LT(3,KC_ENT)
-#define KC_RSUP RSFT_T(KC_UP)
-#define KC_RGLT RALT_T(KC_LEFT)
-#define KC_RGDN RGUI_T(KC_DOWN)
-#define KC_RCRT RCTL_T(KC_RIGHT)
-
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
-// Default layer
-[0] = LAYOUT_60_ansi_split_bs_rshift(
- KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS, KC_GRV,
- 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_BSPC,
- KC_CAFN, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENFN,
- KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSUP, TL_LOWR,
- KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_TRNS, KC_RGLT, KC_RGDN, KC_RCRT),
-
-// Fn1 Layer
-[1] = LAYOUT_60_ansi_split_bs_rshift(
- KC_GRV, 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_INS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_UP, KC_END, KC_PSCR, KC_SCRL, KC_PAUS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_MUTE, KC_VOLD, KC_VOLU, KC_TRNS, KC_PGUP, KC_LEFT, KC_DOWN, KC_RGHT, KC_DEL, KC_INS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PGDN, KC_TRNS, KC_TRNS, KC_TRNS, KC_DOWN, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
-
-// Fn2 Layer
-[2] = LAYOUT_60_ansi_split_bs_rshift(
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
-
-// Fn3 Layer (zeal60 Configuration)
-[3] = LAYOUT_60_ansi_split_bs_rshift(
- QK_BOOT, EF_DEC, EF_INC, H1_DEC, H1_INC, H2_DEC, H2_INC, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, BR_DEC, BR_INC, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, S1_DEC, S1_INC, S2_DEC, S2_INC, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, ES_DEC, ES_INC, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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/wilba_tech/zeal60/keymaps/sethBarberee/rules.mk b/keyboards/wilba_tech/zeal60/keymaps/sethBarberee/rules.mk
deleted file mode 100644
index 0158bb397a..0000000000
--- a/keyboards/wilba_tech/zeal60/keymaps/sethBarberee/rules.mk
+++ /dev/null
@@ -1,2 +0,0 @@
-BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite
-VIA_ENABLE = yes
diff --git a/keyboards/wilba_tech/zeal60/rules.mk b/keyboards/wilba_tech/zeal60/rules.mk
index 4f810f3d32..d1ce11b473 100644
--- a/keyboards/wilba_tech/zeal60/rules.mk
+++ b/keyboards/wilba_tech/zeal60/rules.mk
@@ -22,5 +22,5 @@ CIE1931_CURVE = yes
SRC = keyboards/wilba_tech/wt_main.c \
keyboards/wilba_tech/wt_rgb_backlight.c \
quantum/color.c \
- drivers/led/issi/is31fl3731.c \
- i2c_master.c
+ drivers/led/issi/is31fl3731.c
+I2C_DRIVER_REQUIRED = yes
diff --git a/keyboards/wilba_tech/zeal60/zeal60.c b/keyboards/wilba_tech/zeal60/zeal60.c
index b8c2e2f83f..dd49ccabe9 100644
--- a/keyboards/wilba_tech/zeal60/zeal60.c
+++ b/keyboards/wilba_tech/zeal60/zeal60.c
@@ -14,5 +14,93 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef RGB_BACKLIGHT_ZEAL60
-#error RGB_BACKLIGHT_ZEAL60 not defined, you done goofed somehao, brah
+# error RGB_BACKLIGHT_ZEAL60 not defined, you done goofed somehao, brah
+#else
+# include "drivers/led/issi/is31fl3731.h"
+#endif
+
+#if defined(RGB_MATRIX_ENABLE) || defined(RGB_BACKLIGHT_ZEAL60)
+const is31fl3731_led_t PROGMEM g_is31fl3731_leds[IS31FL3731_LED_COUNT] = {
+/* Refer to IS31 manual for these locations
+ * driver
+ * | R location
+ * | | G location
+ * | | | B location
+ * | | | | */
+ {0, C2_1, C3_1, C4_1}, // LA0
+ {0, C1_1, C3_2, C4_2}, // LA1
+ {0, C1_2, C2_2, C4_3}, // LA2
+ {0, C1_3, C2_3, C3_3}, // LA3
+ {0, C1_4, C2_4, C3_4}, // LA4
+ {0, C1_5, C2_5, C3_5}, // LA5
+ {0, C1_6, C2_6, C3_6}, // LA6
+ {0, C1_7, C2_7, C3_7}, // LA7
+ {0, C1_8, C2_8, C3_8}, // LA8
+ {0, C9_1, C8_1, C7_1}, // LA9
+ {0, C9_2, C8_2, C7_2}, // LA10
+ {0, C9_3, C8_3, C7_3}, // LA11
+ {0, C9_4, C8_4, C7_4}, // LA12
+ {0, C9_5, C8_5, C7_5}, // LA13
+ {0, C9_6, C8_6, C7_6}, // LA14
+ {0, C9_7, C8_7, C6_6}, // LA15
+ {0, C9_8, C7_7, C6_7}, // LA16
+ {0, C8_8, C7_8, C6_8}, // LA17
+
+ {0, C2_9, C3_9, C4_9}, // LB0
+ {0, C1_9, C3_10, C4_10}, // LB1
+ {0, C1_10, C2_10, C4_11}, // LB2
+ {0, C1_11, C2_11, C3_11}, // LB3
+ {0, C1_12, C2_12, C3_12}, // LB4
+ {0, C1_13, C2_13, C3_13}, // LB5
+ {0, C1_14, C2_14, C3_14}, // LB6
+ {0, C1_15, C2_15, C3_15}, // LB7
+ {0, C1_16, C2_16, C3_16}, // LB8
+ {0, C9_9, C8_9, C7_9}, // LB9
+ {0, C9_10, C8_10, C7_10}, // LB10
+ {0, C9_11, C8_11, C7_11}, // LB11
+ {0, C9_12, C8_12, C7_12}, // LB12
+ {0, C9_13, C8_13, C7_13}, // LB13
+ {0, C9_14, C8_14, C7_14}, // LB14
+ {0, C9_15, C8_15, C6_14}, // LB15
+ {0, C9_16, C7_15, C6_15}, // LB16
+ {0, C8_16, C7_16, C6_16}, // LB17
+
+ {1, C2_1, C3_1, C4_1}, // LC0
+ {1, C1_1, C3_2, C4_2}, // LC1
+ {1, C1_2, C2_2, C4_3}, // LC2
+ {1, C1_3, C2_3, C3_3}, // LC3
+ {1, C1_4, C2_4, C3_4}, // LC4
+ {1, C1_5, C2_5, C3_5}, // LC5
+ {1, C1_6, C2_6, C3_6}, // LC6
+ {1, C1_7, C2_7, C3_7}, // LC7
+ {1, C1_8, C2_8, C3_8}, // LC8
+ {1, C9_1, C8_1, C7_1}, // LC9
+ {1, C9_2, C8_2, C7_2}, // LC10
+ {1, C9_3, C8_3, C7_3}, // LC11
+ {1, C9_4, C8_4, C7_4}, // LC12
+ {1, C9_5, C8_5, C7_5}, // LC13
+ {1, C9_6, C8_6, C7_6}, // LC14
+ {1, C9_7, C8_7, C6_6}, // LC15
+ {1, C9_8, C7_7, C6_7}, // LC16
+ {1, C8_8, C7_8, C6_8}, // LC17
+
+ {1, C2_9, C3_9, C4_9}, // LD0
+ {1, C1_9, C3_10, C4_10}, // LD1
+ {1, C1_10, C2_10, C4_11}, // LD2
+ {1, C1_11, C2_11, C3_11}, // LD3
+ {1, C1_12, C2_12, C3_12}, // LD4
+ {1, C1_13, C2_13, C3_13}, // LD5
+ {1, C1_14, C2_14, C3_14}, // LD6
+ {1, C1_15, C2_15, C3_15}, // LD7
+ {1, C1_16, C2_16, C3_16}, // LD8
+ {1, C9_9, C8_9, C7_9}, // LD9
+ {1, C9_10, C8_10, C7_10}, // LD10
+ {1, C9_11, C8_11, C7_11}, // LD11
+ {1, C9_12, C8_12, C7_12}, // LD12
+ {1, C9_13, C8_13, C7_13}, // LD13
+ {1, C9_14, C8_14, C7_14}, // LD14
+ {1, C9_15, C8_15, C6_14}, // LD15
+ {1, C9_16, C7_15, C6_15}, // LD16
+ {1, C8_16, C7_16, C6_16}, // LD17
+};
#endif
diff --git a/keyboards/wilba_tech/zeal65/config.h b/keyboards/wilba_tech/zeal65/config.h
index 4a73ed3b27..71977f4090 100644
--- a/keyboards/wilba_tech/zeal65/config.h
+++ b/keyboards/wilba_tech/zeal65/config.h
@@ -16,8 +16,9 @@
#pragma once
// IS31FL3731 driver
-#define DRIVER_COUNT 2
-#define RGB_MATRIX_LED_COUNT 72
+#define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND
+#define IS31FL3731_I2C_ADDRESS_2 IS31FL3731_I2C_ADDRESS_SDA
+#define IS31FL3731_LED_COUNT 72
// Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap
#define LOCKING_SUPPORT_ENABLE
diff --git a/keyboards/wilba_tech/zeal65/keymaps/zyber/config.h b/keyboards/wilba_tech/zeal65/keymaps/zyber/config.h
deleted file mode 100644
index 2d35bacc56..0000000000
--- a/keyboards/wilba_tech/zeal65/keymaps/zyber/config.h
+++ /dev/null
@@ -1,31 +0,0 @@
-// Copyright 2022 ZyBeR (@ZyberSE)
-// SPDX-License-Identifier: GPL-2.0
-
-#pragma once
-
-/**
- * Enable/disable LEDs based on layout
- */
-#undef RGB_BACKLIGHT_USE_SPLIT_BACKSPACE
-#define RGB_BACKLIGHT_USE_SPLIT_BACKSPACE 0
-
-
-/**
- * Switch off Backlight when computer is suspended
- */
-#undef RGB_BACKLIGHT_DISABLE_WHEN_USB_SUSPENDED
-#define RGB_BACKLIGHT_DISABLE_WHEN_USB_SUSPENDED 1
-
-
-/**
- * Use http://colorizer.org/ to get a 0-360 hue value
- * then convert it into a 0-255 value with n = (hue / 360 * 255).
- */
-#undef RGB_BACKLIGHT_CAPS_LOCK_INDICATOR
-#define RGB_BACKLIGHT_CAPS_LOCK_INDICATOR { .color = { .h = 255, .s = 255 }, .index = 254 }
-#undef RGB_BACKLIGHT_LAYER_1_INDICATOR
-#define RGB_BACKLIGHT_LAYER_1_INDICATOR { .color = { .h = 87, .s = 255 }, .index = 254 }
-#undef RGB_BACKLIGHT_LAYER_2_INDICATOR
-#define RGB_BACKLIGHT_LAYER_2_INDICATOR { .color = { .h = 167, .s = 255 }, .index = 254 }
-#undef RGB_BACKLIGHT_LAYER_3_INDICATOR
-#define RGB_BACKLIGHT_LAYER_3_INDICATOR { .color = { .h = 0, .s = 0 }, .index = 255 }
diff --git a/keyboards/wilba_tech/zeal65/keymaps/zyber/keymap.c b/keyboards/wilba_tech/zeal65/keymaps/zyber/keymap.c
deleted file mode 100644
index a1abd7b5e2..0000000000
--- a/keyboards/wilba_tech/zeal65/keymaps/zyber/keymap.c
+++ /dev/null
@@ -1,39 +0,0 @@
-// Copyright 2022 ZyBeR (@ZyberSE)
-// SPDX-License-Identifier: GPL-2.0
-
-#include "zyber.h"
-
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- // Default layer
- [0] = LAYOUT_65_normie(
- QK_GESC, KC_1, KC_2, KC_3, TD(SSHT),KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL,
- KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, TD(LBRC), KC_RBRC, KC_BSLS, TD(END_HOME),
- CTRL_C_UP, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, TD(SCLN), TD(QUOT), KC_ENT, KC_PGUP,
- 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_PGDN,
- KC_LALT, KC_LCMD, KC_SPC, TL_UPPR, TL_LOWR, KC_LEFT, KC_DOWN, KC_RGHT),
-
- // Fn1 Layer
- [1] = LAYOUT_65_normie(
- KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR, KC_SCRL, KC_PAUS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_CAPS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_LALT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
-
- // Fn2 Layer
- [2] = LAYOUT_65_normie(
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
-
- // Fn3 Layer (zeal60 Configuration)
- [3] = LAYOUT_65_normie(
- QK_BOOT, EF_DEC, EF_INC, H1_DEC, H1_INC, H2_DEC, H2_INC, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, BR_DEC, BR_INC, EE_CLR, KC_TRNS,
- C_BLK, KC_TRNS, KC_TRNS, S1_DEC, S1_INC, S2_DEC, S2_INC, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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/wilba_tech/zeal65/rules.mk b/keyboards/wilba_tech/zeal65/rules.mk
index 4f810f3d32..d1ce11b473 100644
--- a/keyboards/wilba_tech/zeal65/rules.mk
+++ b/keyboards/wilba_tech/zeal65/rules.mk
@@ -22,5 +22,5 @@ CIE1931_CURVE = yes
SRC = keyboards/wilba_tech/wt_main.c \
keyboards/wilba_tech/wt_rgb_backlight.c \
quantum/color.c \
- drivers/led/issi/is31fl3731.c \
- i2c_master.c
+ drivers/led/issi/is31fl3731.c
+I2C_DRIVER_REQUIRED = yes
diff --git a/keyboards/wilba_tech/zeal65/zeal65.c b/keyboards/wilba_tech/zeal65/zeal65.c
index 540c93080a..a4550031b3 100644
--- a/keyboards/wilba_tech/zeal65/zeal65.c
+++ b/keyboards/wilba_tech/zeal65/zeal65.c
@@ -14,5 +14,93 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef RGB_BACKLIGHT_ZEAL65
-#error RGB_BACKLIGHT_ZEAL65 not defined, you done goofed somehao, brah
+# error RGB_BACKLIGHT_ZEAL65 not defined, you done goofed somehao, brah
+#else
+# include "drivers/led/issi/is31fl3731.h"
#endif
+
+#if defined(RGB_MATRIX_ENABLE) || defined(RGB_BACKLIGHT_ZEAL65)
+const is31fl3731_led_t PROGMEM g_is31fl3731_leds[IS31FL3731_LED_COUNT] = {
+/* Refer to IS31 manual for these locations
+ * driver
+ * | R location
+ * | | G location
+ * | | | B location
+ * | | | | */
+ {0, C2_1, C3_1, C4_1}, // LA0
+ {0, C1_1, C3_2, C4_2}, // LA1
+ {0, C1_2, C2_2, C4_3}, // LA2
+ {0, C1_3, C2_3, C3_3}, // LA3
+ {0, C1_4, C2_4, C3_4}, // LA4
+ {0, C1_5, C2_5, C3_5}, // LA5
+ {0, C1_6, C2_6, C3_6}, // LA6
+ {0, C1_7, C2_7, C3_7}, // LA7
+ {0, C1_8, C2_8, C3_8}, // LA8
+ {0, C9_1, C8_1, C7_1}, // LA9
+ {0, C9_2, C8_2, C7_2}, // LA10
+ {0, C9_3, C8_3, C7_3}, // LA11
+ {0, C9_4, C8_4, C7_4}, // LA12
+ {0, C9_5, C8_5, C7_5}, // LA13
+ {0, C9_6, C8_6, C7_6}, // LA14
+ {0, C9_7, C8_7, C6_6}, // LA15
+ {0, C9_8, C7_7, C6_7}, // LA16
+ {0, C8_8, C7_8, C6_8}, // LA17
+
+ {0, C2_9, C3_9, C4_9}, // LB0
+ {0, C1_9, C3_10, C4_10}, // LB1
+ {0, C1_10, C2_10, C4_11}, // LB2
+ {0, C1_11, C2_11, C3_11}, // LB3
+ {0, C1_12, C2_12, C3_12}, // LB4
+ {0, C1_13, C2_13, C3_13}, // LB5
+ {0, C1_14, C2_14, C3_14}, // LB6
+ {0, C1_15, C2_15, C3_15}, // LB7
+ {0, C1_16, C2_16, C3_16}, // LB8
+ {0, C9_9, C8_9, C7_9}, // LB9
+ {0, C9_10, C8_10, C7_10}, // LB10
+ {0, C9_11, C8_11, C7_11}, // LB11
+ {0, C9_12, C8_12, C7_12}, // LB12
+ {0, C9_13, C8_13, C7_13}, // LB13
+ {0, C9_14, C8_14, C7_14}, // LB14
+ {0, C9_15, C8_15, C6_14}, // LB15
+ {0, C9_16, C7_15, C6_15}, // LB16
+ {0, C8_16, C7_16, C6_16}, // LB17
+
+ {1, C2_1, C3_1, C4_1}, // LC0
+ {1, C1_1, C3_2, C4_2}, // LC1
+ {1, C1_2, C2_2, C4_3}, // LC2
+ {1, C1_3, C2_3, C3_3}, // LC3
+ {1, C1_4, C2_4, C3_4}, // LC4
+ {1, C1_5, C2_5, C3_5}, // LC5
+ {1, C1_6, C2_6, C3_6}, // LC6
+ {1, C1_7, C2_7, C3_7}, // LC7
+ {1, C1_8, C2_8, C3_8}, // LC8
+ {1, C9_1, C8_1, C7_1}, // LC9
+ {1, C9_2, C8_2, C7_2}, // LC10
+ {1, C9_3, C8_3, C7_3}, // LC11
+ {1, C9_4, C8_4, C7_4}, // LC12
+ {1, C9_5, C8_5, C7_5}, // LC13
+ {1, C9_6, C8_6, C7_6}, // LC14
+ {1, C9_7, C8_7, C6_6}, // LC15
+ {1, C9_8, C7_7, C6_7}, // LC16
+ {1, C8_8, C7_8, C6_8}, // LC17
+
+ {1, C2_9, C3_9, C4_9}, // LD0
+ {1, C1_9, C3_10, C4_10}, // LD1
+ {1, C1_10, C2_10, C4_11}, // LD2
+ {1, C1_11, C2_11, C3_11}, // LD3
+ {1, C1_12, C2_12, C3_12}, // LD4
+ {1, C1_13, C2_13, C3_13}, // LD5
+ {1, C1_14, C2_14, C3_14}, // LD6
+ {1, C1_15, C2_15, C3_15}, // LD7
+ {1, C1_16, C2_16, C3_16}, // LD8
+ {1, C9_9, C8_9, C7_9}, // LD9
+ {1, C9_10, C8_10, C7_10}, // LD10
+ {1, C9_11, C8_11, C7_11}, // LD11
+ {1, C9_12, C8_12, C7_12}, // LD12
+ {1, C9_13, C8_13, C7_13}, // LD13
+ {1, C9_14, C8_14, C7_14}, // LD14
+ {1, C9_15, C8_15, C6_14}, // LD15
+ {1, C9_16, C7_15, C6_15}, // LD16
+ {1, C8_16, C7_16, C6_16}, // LD17
+};
+#endif \ No newline at end of file
diff --git a/keyboards/woodkeys/bigseries/1key/keymaps/dudeofawesome/README.md b/keyboards/woodkeys/bigseries/1key/keymaps/dudeofawesome/README.md
deleted file mode 100644
index 86b79b4621..0000000000
--- a/keyboards/woodkeys/bigseries/1key/keymaps/dudeofawesome/README.md
+++ /dev/null
@@ -1,18 +0,0 @@
-# DudeOfAwesome's Big Series 1-key layout
-
-## Features
-
-### Tap dancing taps:
-1. Media Play / Pause
-1. Media Next
-1. RGB Mode Next
-1. RGB Mode Previous
-
-## Building and flashing
-
-1. Put your board in DFU mode with the button on the bottom
-1. Flash:
- ```bash
- $ make bigseries:dudeofawesome:dfu
- ```
-
diff --git a/keyboards/woodkeys/bigseries/1key/keymaps/dudeofawesome/config.h b/keyboards/woodkeys/bigseries/1key/keymaps/dudeofawesome/config.h
deleted file mode 100644
index 131c755d4a..0000000000
--- a/keyboards/woodkeys/bigseries/1key/keymaps/dudeofawesome/config.h
+++ /dev/null
@@ -1,24 +0,0 @@
-/*
-Copyright 2018 Cole Markham
-
-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/>.
-*/
-
-#ifndef CONFIG_USER_H
-#define CONFIG_USER_H
-
-#define TAPPING_TERM 1000
-#define PERMISSIVE_HOLD
-
-#endif
diff --git a/keyboards/woodkeys/bigseries/1key/keymaps/dudeofawesome/keymap.c b/keyboards/woodkeys/bigseries/1key/keymaps/dudeofawesome/keymap.c
deleted file mode 100755
index 2c754c3a68..0000000000
--- a/keyboards/woodkeys/bigseries/1key/keymaps/dudeofawesome/keymap.c
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
-Copyright 2018 Cole Markham
-
-This program is free software: you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program. If not, see <http://www.gnu.org/licenses/>.
-*/
-
-#include QMK_KEYBOARD_H
-
-enum TAP_DANCE {
- TD_PLAY = 0,
-};
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- LAYOUT(TD(TD_PLAY)),
-};
-
-void tap_dance (tap_dance_state_t *state, void *user_data) {
- switch (state->count) {
- case 0 ... 1:
- register_code(KC_MEDIA_PLAY_PAUSE);
- unregister_code(KC_MEDIA_PLAY_PAUSE);
- break;
- case 2:
- register_code(KC_MEDIA_NEXT_TRACK);
- unregister_code(KC_MEDIA_NEXT_TRACK);
- break;
- case 3:
- rgblight_step();
- break;
- case 4: default:
- rgblight_step_reverse();
- break;
- }
-}
-
-//Tap Dance Definitions
-tap_dance_action_t tap_dance_actions[] = {
- [TD_PLAY] = ACTION_TAP_DANCE_FN(tap_dance),
-};
diff --git a/keyboards/woodkeys/bigseries/1key/keymaps/dudeofawesome/rules.mk b/keyboards/woodkeys/bigseries/1key/keymaps/dudeofawesome/rules.mk
deleted file mode 100644
index e5ddcae8d9..0000000000
--- a/keyboards/woodkeys/bigseries/1key/keymaps/dudeofawesome/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-TAP_DANCE_ENABLE = yes
diff --git a/keyboards/woodkeys/meira/TWIlib.c b/keyboards/woodkeys/meira/TWIlib.c
deleted file mode 100755
index 89e03a73d4..0000000000
--- a/keyboards/woodkeys/meira/TWIlib.c
+++ /dev/null
@@ -1,300 +0,0 @@
-/*
- * TWIlib.c
- *
- * Created: 6/01/2014 10:41:33 PM
- * Author: Chris Herring
- */
-
-#include <avr/io.h>
-#include <avr/interrupt.h>
-#include "TWIlib.h"
-#include <util/delay.h>
-#include "print.h"
-
-// Global transmit buffer
-volatile uint8_t *TWITransmitBuffer;
-// Global receive buffer
-volatile uint8_t TWIReceiveBuffer[RXMAXBUFLEN];
-// Buffer indexes
-volatile int TXBuffIndex; // Index of the transmit buffer. Is volatile, can change at any time.
-int RXBuffIndex; // Current index in the receive buffer
-// Buffer lengths
-int TXBuffLen; // The total length of the transmit buffer
-int RXBuffLen; // The total number of bytes to read (should be less than RXMAXBUFFLEN)
-
-TWIInfoStruct TWIInfo;
-
-void TWIInit(void)
-{
- TWIInfo.mode = Ready;
- TWIInfo.errorCode = 0xFF;
- TWIInfo.repStart = 0;
- // Set pre-scalers (no pre-scaling)
- TWSR = 0;
- // Set bit rate
- TWBR = ((F_CPU / TWI_FREQ) - 16) / 2;
- // Enable TWI and interrupt
- TWCR = (1 << TWIE) | (1 << TWEN);
-}
-
-uint8_t isTWIReady(void)
-{
- if ( (TWIInfo.mode == Ready) | (TWIInfo.mode == RepeatedStartSent) )
- {
-
-// xprintf("i2c ready\n");
- return 1;
- }
- else
- {
- if(TWIInfo.mode == Initializing){
- switch(TWIInfo.errorCode){
- case TWI_SUCCESS:
- break;
- case TWI_NO_RELEVANT_INFO:
-
- break;
- case TWI_LOST_ARBIT:
- case TWI_MT_DATA_NACK:
- // Some kind of I2C error, reset and re-init
- xprintf("I2C init error: %d\n", TWIInfo.errorCode);
- TWCR = (1 << TWINT)|(1 << TWSTO);
- TWIInit();
- break;
- default:
- xprintf("Other i2c init error: %d\n", TWIInfo.errorCode);
- }
- }
- return 0;
- }
-}
-
-
-void TWITransmitData(void *const TXdata, uint8_t dataLen, uint8_t repStart, uint8_t blocking)
-{
- // Wait until ready
- while (!isTWIReady()) {_delay_us(1);}
- // Reset the I2C stuff
- TWCR = (1 << TWINT)|(1 << TWSTO);
- TWIInit();
- // Set repeated start mode
- TWIInfo.repStart = repStart;
- // Copy transmit info to global variables
- TWITransmitBuffer = (uint8_t *)TXdata;
- TXBuffLen = dataLen;
- TXBuffIndex = 0;
-
- // If a repeated start has been sent, then devices are already listening for an address
- // and another start does not need to be sent.
- if (TWIInfo.mode == RepeatedStartSent)
- {
- TWIInfo.mode = Initializing;
- TWDR = TWITransmitBuffer[TXBuffIndex++]; // Load data to transmit buffer
- TWISendTransmit(); // Send the data
- }
- else // Otherwise, just send the normal start signal to begin transmission.
- {
- TWIInfo.mode = Initializing;
- TWISendStart();
- }
- if(blocking){
- // Wait until ready
- while (!isTWIReady()){_delay_us(1);}
- }
-}
-
-
-// uint8_t TWITransmitData(void *const TXdata, uint8_t dataLen, uint8_t repStart)
-// {
-// if (dataLen <= TXMAXBUFLEN)
-// {
-// // Wait until ready
-// while (!isTWIReady()) {_delay_us(1);}
-// // Set repeated start mode
-// TWIInfo.repStart = repStart;
-// // Copy data into the transmit buffer
-// uint8_t *data = (uint8_t *)TXdata;
-// for (int i = 0; i < dataLen; i++)
-// {
-// TWITransmitBuffer[i] = data[i];
-// }
-// // Copy transmit info to global variables
-// TXBuffLen = dataLen;
-// TXBuffIndex = 0;
-
-// // If a repeated start has been sent, then devices are already listening for an address
-// // and another start does not need to be sent.
-// if (TWIInfo.mode == RepeatedStartSent)
-// {
-// TWIInfo.mode = Initializing;
-// TWDR = TWITransmitBuffer[TXBuffIndex++]; // Load data to transmit buffer
-// TWISendTransmit(); // Send the data
-// }
-// else // Otherwise, just send the normal start signal to begin transmission.
-// {
-// TWIInfo.mode = Initializing;
-// TWISendStart();
-// }
-
-// }
-// else
-// {
-// return 1; // return an error if data length is longer than buffer
-// }
-// return 0;
-// }
-
-uint8_t TWIReadData(uint8_t TWIaddr, uint8_t bytesToRead, uint8_t repStart)
-{
- // Check if number of bytes to read can fit in the RXbuffer
- if (bytesToRead < RXMAXBUFLEN)
- {
- // Reset buffer index and set RXBuffLen to the number of bytes to read
- RXBuffIndex = 0;
- RXBuffLen = bytesToRead;
- // Create the one value array for the address to be transmitted
- uint8_t TXdata[1];
- // Shift the address and AND a 1 into the read write bit (set to write mode)
- TXdata[0] = (TWIaddr << 1) | 0x01;
- // Use the TWITransmitData function to initialize the transfer and address the slave
- TWITransmitData(TXdata, 1, repStart, 0);
- }
- else
- {
- return 0;
- }
- return 1;
-}
-
-ISR (TWI_vect)
-{
- switch (TWI_STATUS)
- {
- // ----\/ ---- MASTER TRANSMITTER OR WRITING ADDRESS ----\/ ---- //
- case TWI_MT_SLAW_ACK: // SLA+W transmitted and ACK received
- // Set mode to Master Transmitter
- TWIInfo.mode = MasterTransmitter;
- case TWI_START_SENT: // Start condition has been transmitted
- case TWI_MT_DATA_ACK: // Data byte has been transmitted, ACK received
- if (TXBuffIndex < TXBuffLen) // If there is more data to send
- {
- TWDR = TWITransmitBuffer[TXBuffIndex++]; // Load data to transmit buffer
- TWIInfo.errorCode = TWI_NO_RELEVANT_INFO;
- TWISendTransmit(); // Send the data
- }
- // This transmission is complete however do not release bus yet
- else if (TWIInfo.repStart)
- {
- TWIInfo.errorCode = 0xFF;
- TWISendStart();
- }
- // All transmissions are complete, exit
- else
- {
- TWIInfo.mode = Ready;
- TWIInfo.errorCode = 0xFF;
- TWISendStop();
- }
- break;
-
- // ----\/ ---- MASTER RECEIVER ----\/ ---- //
-
- case TWI_MR_SLAR_ACK: // SLA+R has been transmitted, ACK has been received
- // Switch to Master Receiver mode
- TWIInfo.mode = MasterReceiver;
- // If there is more than one byte to be read, receive data byte and return an ACK
- if (RXBuffIndex < RXBuffLen-1)
- {
- TWIInfo.errorCode = TWI_NO_RELEVANT_INFO;
- TWISendACK();
- }
- // Otherwise when a data byte (the only data byte) is received, return NACK
- else
- {
- TWIInfo.errorCode = TWI_NO_RELEVANT_INFO;
- TWISendNACK();
- }
- break;
-
- case TWI_MR_DATA_ACK: // Data has been received, ACK has been transmitted.
-
- /// -- HANDLE DATA BYTE --- ///
- TWIReceiveBuffer[RXBuffIndex++] = TWDR;
- // If there is more than one byte to be read, receive data byte and return an ACK
- if (RXBuffIndex < RXBuffLen-1)
- {
- TWIInfo.errorCode = TWI_NO_RELEVANT_INFO;
- TWISendACK();
- }
- // Otherwise when a data byte (the only data byte) is received, return NACK
- else
- {
- TWIInfo.errorCode = TWI_NO_RELEVANT_INFO;
- TWISendNACK();
- }
- break;
-
- case TWI_MR_DATA_NACK: // Data byte has been received, NACK has been transmitted. End of transmission.
-
- /// -- HANDLE DATA BYTE --- ///
- TWIReceiveBuffer[RXBuffIndex++] = TWDR;
- // This transmission is complete however do not release bus yet
- if (TWIInfo.repStart)
- {
- TWIInfo.errorCode = 0xFF;
- TWISendStart();
- }
- // All transmissions are complete, exit
- else
- {
- TWIInfo.mode = Ready;
- TWIInfo.errorCode = 0xFF;
- TWISendStop();
- }
- break;
-
- // ----\/ ---- MT and MR common ----\/ ---- //
-
- case TWI_MR_SLAR_NACK: // SLA+R transmitted, NACK received
- case TWI_MT_SLAW_NACK: // SLA+W transmitted, NACK received
- case TWI_MT_DATA_NACK: // Data byte has been transmitted, NACK received
- case TWI_LOST_ARBIT: // Arbitration has been lost
- // Return error and send stop and set mode to ready
- if (TWIInfo.repStart)
- {
- TWIInfo.errorCode = TWI_STATUS;
- TWISendStart();
- }
- // All transmissions are complete, exit
- else
- {
- TWIInfo.mode = Ready;
- TWIInfo.errorCode = TWI_STATUS;
- TWISendStop();
- }
- break;
- case TWI_REP_START_SENT: // Repeated start has been transmitted
- // Set the mode but DO NOT clear TWINT as the next data is not yet ready
- TWIInfo.mode = RepeatedStartSent;
- break;
-
- // ----\/ ---- SLAVE RECEIVER ----\/ ---- //
-
- // TODO IMPLEMENT SLAVE RECEIVER FUNCTIONALITY
-
- // ----\/ ---- SLAVE TRANSMITTER ----\/ ---- //
-
- // TODO IMPLEMENT SLAVE TRANSMITTER FUNCTIONALITY
-
- // ----\/ ---- MISCELLANEOUS STATES ----\/ ---- //
- case TWI_NO_RELEVANT_INFO: // It is not really possible to get into this ISR on this condition
- // Rather, it is there to be manually set between operations
- break;
- case TWI_ILLEGAL_START_STOP: // Illegal START/STOP, abort and return error
- TWIInfo.errorCode = TWI_ILLEGAL_START_STOP;
- TWIInfo.mode = Ready;
- TWISendStop();
- break;
- }
-
-}
diff --git a/keyboards/woodkeys/meira/TWIlib.h b/keyboards/woodkeys/meira/TWIlib.h
deleted file mode 100755
index 8ba261c6e5..0000000000
--- a/keyboards/woodkeys/meira/TWIlib.h
+++ /dev/null
@@ -1,71 +0,0 @@
-/*
- * TWIlib.h
- *
- * Created: 6/01/2014 10:38:42 PM
- * Author: Chris Herring
- */
-
-
-#ifndef TWILIB_H_
-#define TWILIB_H_
-// TWI bit rate
-#define TWI_FREQ 400000
-// Get TWI status
-#define TWI_STATUS (TWSR & 0xF8)
-// Transmit buffer length
-#define TXMAXBUFLEN 20
-// Receive buffer length
-#define RXMAXBUFLEN 20
-
-typedef enum {
- Ready,
- Initializing,
- RepeatedStartSent,
- MasterTransmitter,
- MasterReceiver,
- SlaceTransmitter,
- SlaveReciever
- } TWIMode;
-
- typedef struct TWIInfoStruct{
- TWIMode mode;
- uint8_t errorCode;
- uint8_t repStart;
- }TWIInfoStruct;
-
-extern TWIInfoStruct TWIInfo;
-
-// TWI Status Codes
-#define TWI_START_SENT 0x08 // Start sent
-#define TWI_REP_START_SENT 0x10 // Repeated Start sent
-// Master Transmitter Mode
-#define TWI_MT_SLAW_ACK 0x18 // SLA+W sent and ACK received
-#define TWI_MT_SLAW_NACK 0x20 // SLA+W sent and NACK received
-#define TWI_MT_DATA_ACK 0x28 // DATA sent and ACK received
-#define TWI_MT_DATA_NACK 0x30 // DATA sent and NACK received
-// Master Receiver Mode
-#define TWI_MR_SLAR_ACK 0x40 // SLA+R sent, ACK received
-#define TWI_MR_SLAR_NACK 0x48 // SLA+R sent, NACK received
-#define TWI_MR_DATA_ACK 0x50 // Data received, ACK returned
-#define TWI_MR_DATA_NACK 0x58 // Data received, NACK returned
-
-// Miscellaneous States
-#define TWI_LOST_ARBIT 0x38 // Arbitration has been lost
-#define TWI_NO_RELEVANT_INFO 0xF8 // No relevant information available
-#define TWI_ILLEGAL_START_STOP 0x00 // Illegal START or STOP condition has been detected
-#define TWI_SUCCESS 0xFF // Successful transfer, this state is impossible from TWSR as bit2 is 0 and read only
-
-
-#define TWISendStart() (TWCR = (1<<TWINT)|(1<<TWSTA)|(1<<TWEN)|(1<<TWIE)) // Send the START signal, enable interrupts and TWI, clear TWINT flag to resume transfer.
-#define TWISendStop() (TWCR = (1<<TWINT)|(1<<TWSTO)|(1<<TWEN)|(1<<TWIE)) // Send the STOP signal, enable interrupts and TWI, clear TWINT flag.
-#define TWISendTransmit() (TWCR = (1<<TWINT)|(1<<TWEN)|(1<<TWIE)) // Used to resume a transfer, clear TWINT and ensure that TWI and interrupts are enabled.
-#define TWISendACK() (TWCR = (1<<TWINT)|(1<<TWEN)|(1<<TWIE)|(1<<TWEA)) // FOR MR mode. Resume a transfer, ensure that TWI and interrupts are enabled and respond with an ACK if the device is addressed as a slave or after it receives a byte.
-#define TWISendNACK() (TWCR = (1<<TWINT)|(1<<TWEN)|(1<<TWIE)) // FOR MR mode. Resume a transfer, ensure that TWI and interrupts are enabled but DO NOT respond with an ACK if the device is addressed as a slave or after it receives a byte.
-
-// Function declarations
-void TWITransmitData(void *const TXdata, uint8_t dataLen, uint8_t repStart, uint8_t blocking);
-void TWIInit(void);
-uint8_t TWIReadData(uint8_t TWIaddr, uint8_t bytesToRead, uint8_t repStart);
-uint8_t isTWIReady(void);
-
-#endif // TWICOMMS_H_ \ No newline at end of file
diff --git a/keyboards/woodkeys/meira/config.h b/keyboards/woodkeys/meira/config.h
index 4b3491cfa1..1b0803602a 100644
--- a/keyboards/woodkeys/meira/config.h
+++ b/keyboards/woodkeys/meira/config.h
@@ -21,5 +21,3 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
/* key matrix size */
#define MATRIX_ROWS 4
#define MATRIX_COLS 12
-
-#define BACKLIGHT_PWM_MAP {2, 4, 8, 16, 40, 55, 70, 128, 200, 255}
diff --git a/keyboards/woodkeys/meira/featherble/config.h b/keyboards/woodkeys/meira/featherble/config.h
index eab64b36b9..fd224b2d50 100644
--- a/keyboards/woodkeys/meira/featherble/config.h
+++ b/keyboards/woodkeys/meira/featherble/config.h
@@ -32,7 +32,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
// Column pins to demux in LSB order
#define MATRIX_COL_PINS { C7, B7, B6, C6, NO_PIN, NO_PIN, NO_PIN, NO_PIN, NO_PIN, NO_PIN, NO_PIN, NO_PIN }
#define MATRIX_COL_PINS_SCANNED { C7, B7, B6, C6 }
-#define LED_EN_PIN D2
#define AUDIO_PIN B5
#define AUDIO_VOICES
diff --git a/keyboards/woodkeys/meira/info.json b/keyboards/woodkeys/meira/info.json
index 5905c00d2d..5fbcc9deaf 100644
--- a/keyboards/woodkeys/meira/info.json
+++ b/keyboards/woodkeys/meira/info.json
@@ -8,16 +8,6 @@
"pid": "0x6061",
"device_version": "0.0.1"
},
- "backlight": {
- "driver": "custom",
- "levels": 10
- },
- "rgblight": {
- "led_count": 15
- },
- "ws2812": {
- "pin": "D3"
- },
"processor": "atmega32u4",
"bootloader": "caterina",
"layout_aliases": {
diff --git a/keyboards/woodkeys/meira/issi.c b/keyboards/woodkeys/meira/issi.c
deleted file mode 100755
index 600a465ba3..0000000000
--- a/keyboards/woodkeys/meira/issi.c
+++ /dev/null
@@ -1,286 +0,0 @@
-#ifdef ISSI_ENABLE
-
-#include <stdlib.h>
-#include <stdint.h>
-#include <util/delay.h>
-#include <avr/sfr_defs.h>
-#include <avr/io.h>
-#include <util/twi.h>
-#include "issi.h"
-#include "print.h"
-#include "TWIlib.h"
-
-#define ISSI_ADDR_DEFAULT 0xE8
-
-#define ISSI_REG_CONFIG 0x00
-#define ISSI_REG_CONFIG_PICTUREMODE 0x00
-#define ISSI_REG_CONFIG_AUTOPLAYMODE 0x08
-
-#define ISSI_CONF_PICTUREMODE 0x00
-#define ISSI_CONF_AUTOFRAMEMODE 0x04
-#define ISSI_CONF_AUDIOMODE 0x08
-
-#define ISSI_REG_PICTUREFRAME 0x01
-
-#define ISSI_REG_SHUTDOWN 0x0A
-#define ISSI_REG_AUDIOSYNC 0x06
-
-#define ISSI_COMMANDREGISTER 0xFD
-#define ISSI_BANK_FUNCTIONREG 0x0B // helpfully called 'page nine'
-uint8_t control[8][9] = {
- {0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0},
- {0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0},
- {0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0},
- {0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0},
-};
-ISSIDeviceStruct *issi_devices[4] = {0, 0, 0, 0};
-
-#ifndef cbi
-#define cbi(sfr, bit) (_SFR_BYTE(sfr) &= ~_BV(bit))
-#endif
-
-#ifndef sbi
-#define sbi(sfr, bit) (_SFR_BYTE(sfr) |= _BV(bit))
-#endif
-
-#define I2C_WRITE 0
-#define F_SCL 400000UL // SCL frequency
-#define Prescaler 1
-#define TWBR_val ((((F_CPU / F_SCL) / Prescaler) - 16 ) / 2)
-
-uint8_t i2c_start(uint8_t address)
-{
- // reset TWI control register
- TWCR = 0;
- // transmit START condition
- TWCR = (1<<TWINT) | (1<<TWSTA) | (1<<TWEN);
- // wait for end of transmission
- while( !(TWCR & (1<<TWINT)) );
-
- // check if the start condition was successfully transmitted
- if((TWSR & 0xF8) != TW_START){ return 1; }
-
- // load slave address into data register
- TWDR = address;
- // start transmission of address
- TWCR = (1<<TWINT) | (1<<TWEN);
- // wait for end of transmission
- while( !(TWCR & (1<<TWINT)) );
-
- // check if the device has acknowledged the READ / WRITE mode
- uint8_t twst = TW_STATUS & 0xF8;
- if ( (twst != TW_MT_SLA_ACK) && (twst != TW_MR_SLA_ACK) ) return 1;
-
- return 0;
-}
-
-uint8_t i2c_write(uint8_t data)
-{
- // load data into data register
- TWDR = data;
- // start transmission of data
- TWCR = (1 << TWINT) | (1 << TWEN);
- // wait for end of transmission
- while (!(TWCR & (1 << TWINT)))
- ;
-
- if ((TWSR & 0xF8) != TW_MT_DATA_ACK) {
- return 1;
- }
- return 0;
-}
-
-uint8_t i2c_transmit(uint8_t address, uint8_t* data, uint16_t length)
-{
- TWBR = (uint8_t)TWBR_val;
- if (i2c_start(address | I2C_WRITE))
- return 1;
- for (uint16_t i = 0; i < length; i++) {
- if (i2c_write(data[i]))
- return 1;
- }
- // transmit STOP condition
- TWCR = (1 << TWINT) | (1 << TWEN) | (1 << TWSTO);
- return 0;
-}
-
-void setFrame(uint8_t device, uint8_t frame)
-{
- static uint8_t current_frame = -1;
- if(current_frame != frame){
- uint8_t payload[] = {
- ISSI_ADDR_DEFAULT | device << 1,
- ISSI_COMMANDREGISTER,
- frame
- };
- TWITransmitData(payload, sizeof(payload), 0, 1);
- }
- // static uint8_t current_frame = 0xFF;
- // if(current_frame == frame){
- // // return;
- // }
- // uint8_t payload[2] = { ISSI_COMMANDREGISTER, frame };
- // i2c_transmit(ISSI_ADDR_DEFAULT | device << 1, payload, 2);
- // current_frame = frame;
-}
-
-void writeRegister8(uint8_t device, uint8_t frame, uint8_t reg, uint8_t data)
-{
- // Set the frame
- setFrame(device, frame);
-
- // Write to the register
- uint8_t payload[] = {
- ISSI_ADDR_DEFAULT | device << 1,
- reg,
- data
- };
- TWITransmitData(payload, sizeof(payload), 0, 1);
-}
-
-// void activateLED(uint8_t matrix, uint8_t cx, uint8_t cy, uint8_t pwm)
-// {
-// xprintf("activeLED: %02X %02X %02X %02X\n", matrix, cy, cx, pwm);
-// uint8_t x = cx - 1; // funciton takes 1 based counts, but we need 0...
-// uint8_t y = cy - 1; // creating them once for less confusion
-// if(pwm == 0){
-// cbi(control[matrix][y], x);
-// }else{
-// sbi(control[matrix][y], x);
-// }
-// uint8_t device = (matrix & 0x06) >> 1;
-// uint8_t control_reg = (y << 1) | (matrix & 0x01);
-// uint8_t pwm_reg = 0;
-// switch(matrix & 0x01){
-// case 0:
-// pwm_reg = 0x24;
-// break;
-// case 1:
-// pwm_reg = 0x2C;
-// break;
-// }
-// pwm_reg += (y << 4) + x;
-// xprintf(" device: %02X\n", device);
-// xprintf(" control: %02X %02X\n", control_reg, control[matrix][y]);
-// xprintf(" pwm: %02X %02X\n", pwm_reg, pwm);
-// writeRegister8(device, 0, control_reg, control[matrix][y]);
-// writeRegister8(device, 0, control_reg + 0x12, control[matrix][y]);
-// writeRegister8(device, 0, pwm_reg, pwm);
-// }
-
-void activateLED(uint8_t matrix, uint8_t cx, uint8_t cy, uint8_t pwm)
-{
- uint8_t device_addr = (matrix & 0x06) >> 1;
- ISSIDeviceStruct *device = issi_devices[device_addr];
- if(device == 0){
- return;
- }
- // xprintf("activeLED: %02X %02X %02X %02X\n", matrix, cy, cx, pwm);
- uint8_t x = cx - 1; // funciton takes 1 based counts, but we need 0...
- uint8_t y = cy - 1; // creating them once for less confusion
- uint8_t control_reg = (y << 1) | (matrix & 0x01);
- if(pwm == 0){
- cbi(device->led_ctrl[control_reg], x);
- cbi(device->led_blink_ctrl[control_reg], x);
- }else{
- sbi(device->led_ctrl[control_reg], x);
- sbi(device->led_blink_ctrl[control_reg], x);
- }
- uint8_t pwm_reg = 0;
- switch(matrix & 0x01){
- case 0:
- pwm_reg = 0x00;
- break;
- case 1:
- pwm_reg = 0x08;
- break;
- }
- pwm_reg += (y << 4) + x;
- // xprintf(" device_addr: %02X\n", device_addr);
- // xprintf(" control: %02X %02X\n", control_reg, control[matrix][y]);
- // xprintf(" pwm: %02X %02X\n", pwm_reg, pwm);
- // writeRegister8(device_addr, 0, control_reg, control[matrix][y]);
- device->led_pwm[pwm_reg] = pwm;
- device->led_dirty = 1;
-
- // writeRegister8(device_addr, 0, control_reg + 0x12, control[matrix][y]);
- // writeRegister8(device_addr, 0, pwm_reg, pwm);
-}
-
-void update_issi(uint8_t device_addr, uint8_t blocking)
-{
- // This seems to take about 6ms
- ISSIDeviceStruct *device = issi_devices[device_addr];
- if(device != 0){
- if(device->fn_dirty){
- device->fn_dirty = 0;
- setFrame(device_addr, ISSI_BANK_FUNCTIONREG);
- TWITransmitData(&device->fn_device_addr, sizeof(device->fn_registers) + 2, 0, 1);
- }
- if(device->led_dirty){
- device->led_dirty = 0;
- setFrame(device_addr, 0);
- TWITransmitData(&device->led_device_addr, 0xB6, 0, blocking);
- }
- }
-}
-
-void issi_init(void)
-{
- // Set LED_EN/SDB high to enable the chip
- xprintf("Enabing SDB on pin: %d\n", LED_EN_PIN);
- _SFR_IO8((LED_EN_PIN >> 4) + 1) &= ~_BV(LED_EN_PIN & 0xF); // IN
- _SFR_IO8((LED_EN_PIN >> 4) + 2) |= _BV(LED_EN_PIN & 0xF); // HI
- TWIInit();
- for(uint8_t device_addr = 0; device_addr < 4; device_addr++){
- xprintf("ISSI Init device: %d\n", device_addr);
- // If this device has been previously allocated, free it
- if(issi_devices[device_addr] != 0){
- free(issi_devices[device_addr]);
- }
- // Try to shutdown the device, if this fails skip this device
- writeRegister8(device_addr, ISSI_BANK_FUNCTIONREG, ISSI_REG_SHUTDOWN, 0x00);
- while (!isTWIReady()){_delay_us(1);}
- if(TWIInfo.errorCode != 0xFF){
- xprintf("ISSI init failed %d %02X %02X\n", device_addr, TWIInfo.mode, TWIInfo.errorCode);
- continue;
- }
- // Allocate the device structure - calloc zeros it for us
- ISSIDeviceStruct *device = (ISSIDeviceStruct *)calloc(sizeof(ISSIDeviceStruct) * 2, 1);
- issi_devices[device_addr] = device;
- device->fn_device_addr = ISSI_ADDR_DEFAULT | device_addr << 1;
- device->fn_register_addr = 0;
- device->led_device_addr = ISSI_ADDR_DEFAULT | device_addr << 1;
- device->led_register_addr = 0;
- // set dirty bits so that all of the buffered data is written out
- device->fn_dirty = 1;
- device->led_dirty = 1;
- update_issi(device_addr, 1);
- // Set the function register to picture mode
- // device->fn_reg[ISSI_REG_CONFIG] = ISSI_REG_CONFIG_PICTUREMODE;
- writeRegister8(device_addr, ISSI_BANK_FUNCTIONREG, ISSI_REG_SHUTDOWN, 0x01);
- }
-
- // Shutdown and set all registers to 0
- // writeRegister8(device_addr, ISSI_BANK_FUNCTIONREG, ISSI_REG_SHUTDOWN, 0x00);
- // for(uint8_t bank = 0; bank <= 7; bank++){
- // for (uint8_t reg = 0x00; reg <= 0xB3; reg++) {
- // writeRegister8(device_addr, bank, reg, 0x00);
- // }
- // }
- // for (uint8_t reg = 0; reg <= 0x0C; reg++) {
- // writeRegister8(device_addr, ISSI_BANK_FUNCTIONREG, reg, 0x00);
- // }
- // writeRegister8(device_addr, ISSI_BANK_FUNCTIONREG, ISSI_REG_CONFIG, ISSI_REG_CONFIG_PICTUREMODE);
- // writeRegister8(device_addr, ISSI_BANK_FUNCTIONREG, ISSI_REG_SHUTDOWN, 0x01);
- // picture mode
- // writeRegister8(ISSI_BANK_FUNCTIONREG, 0x01, 0x01);
-
- //Enable blink
- // writeRegister8(ISSI_BANK_FUNCTIONREG, 0x05, 0x48B);
-
- //Enable Breath
-
-}
-
-#endif
diff --git a/keyboards/woodkeys/meira/issi.h b/keyboards/woodkeys/meira/issi.h
deleted file mode 100755
index 74379ddbc8..0000000000
--- a/keyboards/woodkeys/meira/issi.h
+++ /dev/null
@@ -1,39 +0,0 @@
-#pragma once
-
-#ifdef ISSI_ENABLE
-
-typedef struct ISSIDeviceStruct{
- uint8_t fn_dirty; // function registers need to be resent
- uint8_t fn_device_addr;
- uint8_t fn_register_addr;
- uint8_t fn_registers[13];
- uint8_t led_dirty; // LED data has changed and needs to be resent
- uint8_t led_device_addr;
- uint8_t led_register_addr;
- uint8_t led_ctrl[18];
- uint8_t led_blink_ctrl[18];
- uint8_t led_pwm[144];
-}ISSIDeviceStruct;
-
-extern ISSIDeviceStruct *issi_devices[];
-
-// Low level commands- 'device' is the 2-bit i2c id.
-void issi_init(void);
-void set_shutdown(uint8_t device, uint8_t shutdown);
-void writeRegister8(uint8_t device, uint8_t frame, uint8_t reg, uint8_t data);
-
-// Higher level, no device is given, but it is calculated from 'matrix'
-// Each device has 2 blocks, max of 4 devices:
-// Device | Block = Matrix
-// 0 A 0
-// 0 B 1
-// 1 A 2
-// 1 B 3
-// 2 A 4
-// 2 B 5
-// 3 A 6
-// 3 B 7
-void activateLED(uint8_t matrix, uint8_t cx, uint8_t cy, uint8_t pwm);
-void update_issi(uint8_t device_addr, uint8_t blocking);
-
-#endif
diff --git a/keyboards/woodkeys/meira/keymaps/cole/keymap.c b/keyboards/woodkeys/meira/keymaps/cole/keymap.c
index b85da25a28..91a03d8861 100644
--- a/keyboards/woodkeys/meira/keymaps/cole/keymap.c
+++ b/keyboards/woodkeys/meira/keymaps/cole/keymap.c
@@ -14,7 +14,6 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include QMK_KEYBOARD_H
-#include "lighting.h"
#ifdef RGBLIGHT_ENABLE
//Following line allows macro to read current RGB settings
diff --git a/keyboards/woodkeys/meira/keymaps/default/keymap.c b/keyboards/woodkeys/meira/keymaps/default/keymap.c
index af3dca37a8..8aedffc675 100644
--- a/keyboards/woodkeys/meira/keymaps/default/keymap.c
+++ b/keyboards/woodkeys/meira/keymaps/default/keymap.c
@@ -14,7 +14,6 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include QMK_KEYBOARD_H
-#include "lighting.h"
#ifdef RGBLIGHT_ENABLE
// Following line allows macro to read current RGB settings
diff --git a/keyboards/woodkeys/meira/keymaps/grahampheath/keymap.c b/keyboards/woodkeys/meira/keymaps/grahampheath/keymap.c
index 8057bcf2b4..c95a3183b1 100644
--- a/keyboards/woodkeys/meira/keymaps/grahampheath/keymap.c
+++ b/keyboards/woodkeys/meira/keymaps/grahampheath/keymap.c
@@ -268,15 +268,6 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
}
return false;
break;
- case BL_TOGG:
-#ifdef ISSI_ENABLE
- if (record->event.pressed) {
- print("Enabling backlight\n");
- issi_init();
- }
-#endif
- return false;
- break;
case BL_STEP:
if (record->event.pressed) {
print("Stepping backlight\n");
diff --git a/keyboards/woodkeys/meira/keymaps/grahampheath/rules.mk b/keyboards/woodkeys/meira/keymaps/grahampheath/rules.mk
index 1c61fe1c12..c4e55a1a65 100644
--- a/keyboards/woodkeys/meira/keymaps/grahampheath/rules.mk
+++ b/keyboards/woodkeys/meira/keymaps/grahampheath/rules.mk
@@ -1,5 +1,3 @@
AUDIO_ENABLE = yes # Audio output on port C6
LTO_ENABLE = yes # -4-7k
MOUSEKEY_ENABLE = no # Mouse keys(-47kb)
-ISSI_ENABLE = no
-BACKLIGHT_ENABLE = no \ No newline at end of file
diff --git a/keyboards/woodkeys/meira/keymaps/takmiya/keymap.c b/keyboards/woodkeys/meira/keymaps/takmiya/keymap.c
index 8e3c41c332..cf1b2b8ce6 100644
--- a/keyboards/woodkeys/meira/keymaps/takmiya/keymap.c
+++ b/keyboards/woodkeys/meira/keymaps/takmiya/keymap.c
@@ -14,7 +14,6 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include QMK_KEYBOARD_H
-#include "lighting.h"
#ifdef RGBLIGHT_ENABLE
//Following line allows macro to read current RGB settings
@@ -189,15 +188,6 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
}
return false;
break;
- case BL_TOGG:
-#ifdef ISSI_ENABLE
- if (record->event.pressed) {
- print("Enabling backlight\n");
- issi_init();
- }
-#endif
- return false;
- break;
case BL_STEP:
if (record->event.pressed) {
print("Stepping backlight\n");
diff --git a/keyboards/woodkeys/meira/lighting.c b/keyboards/woodkeys/meira/lighting.c
deleted file mode 100755
index 6a17250a29..0000000000
--- a/keyboards/woodkeys/meira/lighting.c
+++ /dev/null
@@ -1,84 +0,0 @@
-#ifdef ISSI_ENABLE
-
-
-#include <avr/sfr_defs.h>
-#include <avr/timer_avr.h>
-#include <avr/wdt.h>
-#include "meira.h"
-#include "issi.h"
-#include "TWIlib.h"
-#include "lighting.h"
-#include "debug.h"
-#include "audio.h"
-
-
-const uint8_t backlight_pwm_map[BACKLIGHT_LEVELS] = BACKLIGHT_PWM_MAP;
-
- const uint8_t switch_matrices[] = {0, 1};
-
-void backlight_set(uint8_t level){
-#ifdef BACKLIGHT_ENABLE
- uint8_t pwm_value = 0;
- if(level >= BACKLIGHT_LEVELS){
- level = BACKLIGHT_LEVELS;
- }
- if(level > 0){
- pwm_value = backlight_pwm_map[level-1];
- }
- xprintf("BACKLIGHT_LEVELS: %d\n", BACKLIGHT_LEVELS);
- xprintf("backlight_set level: %d pwm: %d\n", level, pwm_value);
- for(int x = 1; x <= 9; x++){
- for(int y = 1; y <= 9; y++){
- activateLED(switch_matrices[0], x, y, pwm_value);
- activateLED(switch_matrices[1], x, y, pwm_value);
- }
- }
-#endif
-}
-
-
-
-void set_backlight_by_keymap(uint8_t col, uint8_t row){
-// dprintf("LED: %02X, %d %d %d\n", lookup_value, matrix, led_col, led_row);
-// activateLED(matrix, led_col, led_row, 255);
-}
-
-void force_issi_refresh(void){
- issi_devices[0]->led_dirty = true;
- update_issi(0, true);
- issi_devices[3]->led_dirty = true;
- update_issi(3, true);
-}
-
-void led_test(void){
-#ifdef WATCHDOG_ENABLE
- // This test take a long time to run, disable the WTD until its complete
- wdt_disable();
-#endif
- backlight_set(0);
- force_issi_refresh();
-// for(uint8_t x = 0; x < sizeof(rgb_sequence); x++){
-// set_rgb(rgb_sequence[x], 255, 0, 0);
-// force_issi_refresh();
-// _delay_ms(250);
-// set_rgb(rgb_sequence[x], 0, 255, 0);
-// force_issi_refresh();
-// _delay_ms(250);
-// set_rgb(rgb_sequence[x], 0, 0, 255);
-// force_issi_refresh();
-// _delay_ms(250);
-// set_rgb(rgb_sequence[x], 0, 0, 0);
-// force_issi_refresh();
-// }
-#ifdef WATCHDOG_ENABLE
- wdt_enable(WDTO_250MS);
-#endif
-}
-
-void backlight_init_ports(void){
- xprintf("backlight_init_ports\n");
- issi_init();
-}
-
-#endif
-
diff --git a/keyboards/woodkeys/meira/lighting.h b/keyboards/woodkeys/meira/lighting.h
deleted file mode 100755
index 42fee8ac92..0000000000
--- a/keyboards/woodkeys/meira/lighting.h
+++ /dev/null
@@ -1,6 +0,0 @@
-#pragma once
-
-void led_test(void);
-void force_issi_refresh(void);
-void set_backlight(uint8_t level);
-void set_backlight_by_keymap(uint8_t col, uint8_t row);
diff --git a/keyboards/woodkeys/meira/matrix.c b/keyboards/woodkeys/meira/matrix.c
index 145750a418..e08782dd40 100644
--- a/keyboards/woodkeys/meira/matrix.c
+++ b/keyboards/woodkeys/meira/matrix.c
@@ -19,18 +19,11 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
/*
* scan matrix
*/
-#include <stdint.h>
-#include <stdbool.h>
-#if defined(__AVR__)
-#include <avr/io.h>
-#endif
+#include "matrix.h"
#include "meira.h"
#include "wait.h"
#include "print.h"
#include "debug.h"
-#include "util.h"
-#include "matrix.h"
-#include "config.h"
#include "timer.h"
#ifndef DEBOUNCE
diff --git a/keyboards/woodkeys/meira/meira.c b/keyboards/woodkeys/meira/meira.c
index 1f4c2557b0..cca87a1b51 100644
--- a/keyboards/woodkeys/meira/meira.c
+++ b/keyboards/woodkeys/meira/meira.c
@@ -14,24 +14,12 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include "meira.h"
-#include "issi.h"
-#include "TWIlib.h"
-#include "lighting.h"
-#include "quantum.h"
-
-extern void backlight_set(uint8_t level);
void matrix_init_kb(void)
{
debug_enable=true;
print("meira matrix_init_kb\n");
-#ifdef ISSI_ENABLE
- issi_init();
-#endif
-#ifdef BACKLIGHT_ENABLE
- backlight_set(5);
-#endif
#ifdef WATCHDOG_ENABLE
// This is done after turning the layer LED red, if we're caught in a loop
// we should get a flashing red light
@@ -48,30 +36,6 @@ void matrix_scan_kb(void)
#ifdef WATCHDOG_ENABLE
wdt_reset();
#endif
-#ifdef ISSI_ENABLE
- // switch/underglow lighting update
- static uint32_t issi_device = 0;
- static uint32_t twi_last_ready = 0;
- if(twi_last_ready > 1000){
- // Its been way too long since the last ISSI update, reset the I2C bus and start again
- xprintf("TWI failed to recover, TWI re-init\n");
- twi_last_ready = 0;
- TWIInit();
- force_issi_refresh();
- }
- if(isTWIReady()){
- twi_last_ready = 0;
- // If the i2c bus is available, kick off the issi update, alternate between devices
- update_issi(issi_device, issi_device);
- if(issi_device){
- issi_device = 0;
- }else{
- issi_device = 3;
- }
- }else{
- twi_last_ready++;
- }
-#endif
matrix_scan_user();
}
@@ -80,9 +44,8 @@ bool process_record_kb(uint16_t keycode, keyrecord_t *record) {
// set_backlight_by_keymap(record->event.key.col, record->event.key.row);
if (keycode == QK_BOOT) {
reset_keyboard_kb();
- } else {
}
- return process_record_user(keycode, record);
+ return process_record_user(keycode, record);
}
void reset_keyboard_kb(void){
diff --git a/keyboards/woodkeys/meira/meira.h b/keyboards/woodkeys/meira/meira.h
index 46d9791e48..cdf5b5adbe 100644
--- a/keyboards/woodkeys/meira/meira.h
+++ b/keyboards/woodkeys/meira/meira.h
@@ -16,6 +16,5 @@
#pragma once
#include "quantum.h"
-#include "issi.h"
void reset_keyboard_kb(void);
diff --git a/keyboards/woodkeys/meira/post_rules.mk b/keyboards/woodkeys/meira/post_rules.mk
deleted file mode 100644
index 5d85581c6e..0000000000
--- a/keyboards/woodkeys/meira/post_rules.mk
+++ /dev/null
@@ -1,9 +0,0 @@
-SRC += matrix.c TWIlib.c issi.c lighting.c
-
-#ifeq ($(strip $(ISSI_ENABLE)), yes)
-# OPT_DEFS += -DISSI_ENABLE
-#endif
-
-#ifeq ($(strip $(WATCHDOG_ENABLE)), yes)
-# OPT_DEFS += -DWATCHDOG_ENABLE
-#endif
diff --git a/keyboards/woodkeys/meira/promicro/config.h b/keyboards/woodkeys/meira/promicro/config.h
index 6c52f0fd11..6fda5d7ab3 100644
--- a/keyboards/woodkeys/meira/promicro/config.h
+++ b/keyboards/woodkeys/meira/promicro/config.h
@@ -33,8 +33,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define MATRIX_COL_PINS { B1, B3, B2, B6, NO_PIN, NO_PIN, NO_PIN, NO_PIN, NO_PIN, NO_PIN, NO_PIN, NO_PIN }
#define MATRIX_COL_PINS_SCANNED { B1, B3, B2, B6 }
-#define LED_EN_PIN D2
-
/*
* Feature disable options
* These options are also useful to firmware size reduction.
diff --git a/keyboards/woodkeys/meira/rules.mk b/keyboards/woodkeys/meira/rules.mk
index 63586244c0..bad7949ec0 100644
--- a/keyboards/woodkeys/meira/rules.mk
+++ b/keyboards/woodkeys/meira/rules.mk
@@ -7,11 +7,11 @@ EXTRAKEY_ENABLE = yes # Audio control and System control
CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
NKRO_ENABLE = no # Enable N-Key Rollover
-BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality, also set ISSI_ENABLE below for Meira
-ISSI_ENABLE = yes # If the I2C pullup resistors aren't install this must be disabled
+BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
AUDIO_ENABLE = no # Audio output
CUSTOM_MATRIX = yes
+SRC += matrix.c
DEFAULT_FOLDER = woodkeys/meira/promicro
diff --git a/keyboards/woodkeys/scarletbandana/rules.mk b/keyboards/woodkeys/scarletbandana/rules.mk
index 3de47dd4a0..3e736b56e5 100644
--- a/keyboards/woodkeys/scarletbandana/rules.mk
+++ b/keyboards/woodkeys/scarletbandana/rules.mk
@@ -9,5 +9,5 @@ COMMAND_ENABLE = no # Commands for debug and configuration
NKRO_ENABLE = no # Enable N-Key Rollover
AUDIO_ENABLE = yes # Audio output
RGBLIGHT_ENABLE = yes # Enable WS2812 RGB underlight. Do not enable this with audio at the same time.
-BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality, also set ISSI_ENABLE below for Miera
+BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
LTO_ENABLE = yes
diff --git a/keyboards/work_louder/micro/keymaps/peterfalken/config.h b/keyboards/work_louder/micro/keymaps/peterfalken/config.h
deleted file mode 100644
index dc1dd935a9..0000000000
--- a/keyboards/work_louder/micro/keymaps/peterfalken/config.h
+++ /dev/null
@@ -1,7 +0,0 @@
-// Copyright 2023 Peter.Falken (@PeterFalken)
-// SPDX-License-Identifier: GPL-2.0-or-later
-
-#pragma once
-
-#define CUSTOM_KEYMAP_LAYERS
-#define CUSTOM_LAYER_STATE
diff --git a/keyboards/work_louder/micro/keymaps/peterfalken/keymap.c b/keyboards/work_louder/micro/keymaps/peterfalken/keymap.c
deleted file mode 100644
index abb902597b..0000000000
--- a/keyboards/work_louder/micro/keymaps/peterfalken/keymap.c
+++ /dev/null
@@ -1,113 +0,0 @@
-// Copyright 2023 Peter.Falken (@PeterFalken)
-// SPDX-License-Identifier: GPL-2.0-or-later
-
-#include "peterfalken.h"
-
-enum keymap_layers {
- _L0,
- _L1,
- _L2,
- _L3,
- _L4,
- _L5,
- _L6,
- _ADJUST
-};
-
-// Shorter custom keycodes
-#define CK_UNDO LGUI(KC_Z) // UNDO = CMD + Z
-#define CK_REDO SGUI(KC_Z) // REDO = CMD + SHIFT + Z
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [_L0] = LAYOUT(
- KC_MPLY, KC_9, KC_0, KC_NO,
- KC_5, KC_6, KC_7, KC_8,
- KC_1, KC_2, KC_3, KC_4,
- TO(1), KC_DOT, KC_COMM, _______
- ),
- [_L1] = LAYOUT(
- KC_1, KC_2, KC_3, KC_4,
- KC_5, KC_6, KC_7, KC_8,
- KC_9, KC_0, KC_A, KC_B,
- TO(2), KC_C, KC_D, KC_E
- ),
- [_L2] = LAYOUT(
- _______, _______, _______, _______,
- _______, _______, _______, _______,
- _______, _______, _______, _______,
- TO(3), _______, _______, _______
- ),
- [_L3] = LAYOUT(
- _______, _______, _______, _______,
- _______, _______, _______, _______,
- _______, _______, _______, _______,
- TO(4), _______, _______, _______
- ),
- [_L4] = LAYOUT(
- _______, _______, _______, _______,
- _______, _______, _______, _______,
- _______, _______, _______, _______,
- TO(5), _______, _______, _______
- ),
- [_L5] = LAYOUT(
- _______, _______, _______, _______,
- _______, _______, _______, _______,
- _______, _______, _______, _______,
- TO(6), _______, _______, _______
- ),
- [_L6] = LAYOUT(
- _______, _______, _______, _______,
- _______, _______, _______, _______,
- _______, _______, _______, _______,
- TO(7), _______, _______, _______
- ),
- [_ADJUST] = LAYOUT(
- QK_BOOT, _______, _______, _______,
- _______, _______, _______, _______,
- _______, _______, _______, _______,
- TO(0), _______, _______, _______
- ),
-};
-
-typedef union {
- uint32_t raw;
- struct {
- uint8_t led_level : 3;
- };
-} work_louder_config_t;
-
-work_louder_config_t work_louder_config;
-
-#if defined(ENCODER_MAP_ENABLE)
-const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = {
- { ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(CK_UNDO, CK_REDO) },
- { ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______) },
- { ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______) },
- { ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______) },
- { ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______) },
- { ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______) },
- { ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______) },
- { ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______) },
-};
-#endif // defined(ENCODER_MAP_ENABLE)
-
-layer_state_t layer_state_set_user(layer_state_t state) {
- // Get highest layer as number
- int layer = get_highest_layer(state);
- // Toggle leds based on binary layer number [1 2 3]
- layer & 0x04 ? work_louder_micro_led_1_on(): work_louder_micro_led_1_off();
- layer & 0x02 ? work_louder_micro_led_2_on(): work_louder_micro_led_2_off();
- layer & 0x01 ? work_louder_micro_led_3_on(): work_louder_micro_led_3_off();
- return state;
-}
-
-void eeconfig_init_user(void) {
- work_louder_config.raw = 0;
- work_louder_config.led_level = 1;
- eeconfig_update_user(work_louder_config.raw);
-}
-
-void matrix_init_user(void) {
- work_louder_config.raw = eeconfig_read_user();
- work_louder_micro_led_all_set((uint8_t)(work_louder_config.led_level * 255 / 4));
-}
diff --git a/keyboards/work_louder/micro/keymaps/peterfalken/readme.md b/keyboards/work_louder/micro/keymaps/peterfalken/readme.md
deleted file mode 100644
index f64d682a51..0000000000
--- a/keyboards/work_louder/micro/keymaps/peterfalken/readme.md
+++ /dev/null
@@ -1,14 +0,0 @@
-Copyright 2023 LEG <ucaboys@gmail.com> @PeterFalken
-
-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/>.
diff --git a/keyboards/work_louder/micro/keymaps/peterfalken/rules.mk b/keyboards/work_louder/micro/keymaps/peterfalken/rules.mk
deleted file mode 100644
index 59ffb099c2..0000000000
--- a/keyboards/work_louder/micro/keymaps/peterfalken/rules.mk
+++ /dev/null
@@ -1,3 +0,0 @@
-# Setup QMK features
-ENCODER_MAP_ENABLE = yes
-RGB_MATRIX_ENABLE = no # Disable RGB key matrix
diff --git a/keyboards/work_louder/rgb_functions.c b/keyboards/work_louder/rgb_functions.c
index 138779465e..b4d1a2ad72 100644
--- a/keyboards/work_louder/rgb_functions.c
+++ b/keyboards/work_louder/rgb_functions.c
@@ -24,7 +24,7 @@
#include "ws2812_bitbang.c"
-void rgblight_call_driver(LED_TYPE *start_led, uint8_t num_leds) {
+void rgblight_call_driver(rgb_led_t *start_led, uint8_t num_leds) {
ws2812_setleds(start_led, num_leds);
}
#endif
diff --git a/keyboards/work_louder/work_board/keymaps/drashna/config.h b/keyboards/work_louder/work_board/keymaps/drashna/config.h
deleted file mode 100644
index b3bcaca25d..0000000000
--- a/keyboards/work_louder/work_board/keymaps/drashna/config.h
+++ /dev/null
@@ -1,22 +0,0 @@
-/* Copyright 2020 Christopher Courtney, aka Drashna Jael're (@drashna) <drashna@live.com>
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-#pragma once
-
-#define RGBLIGHT_EFFECT_KNIGHT_LED_NUM 12
-
-#undef RGB_MATRIX_MAXIMUM_BRIGHTNESS
-#define RGB_MATRIX_MAXIMUM_BRIGHTNESS 255
diff --git a/keyboards/work_louder/work_board/keymaps/drashna/keymap.c b/keyboards/work_louder/work_board/keymaps/drashna/keymap.c
deleted file mode 100644
index 2c20225742..0000000000
--- a/keyboards/work_louder/work_board/keymaps/drashna/keymap.c
+++ /dev/null
@@ -1,167 +0,0 @@
-/* Copyright 2020 Christopher Courtney, aka Drashna Jael're (@drashna) <drashna@live.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 "drashna.h"
-
-#define PLNK_1 SP_LWER
-#define PLNK_2 BK_LWER
-#define PLNK_3 DL_RAIS
-#define PLNK_4 ET_RAIS
-
-/*
- * The `LAYOUT_ortho_4x12_base` macro is a template to allow the use of identical
- * modifiers for the default layouts (eg QWERTY, Colemak, Dvorak, etc), so
- * that there is no need to set them up for each layout, and modify all of
- * them if I want to change them. This helps to keep consistency and ease
- * of use. K## is a placeholder to pass through the individual keycodes
- */
-// clang-format off
-#define LAYOUT_wrapper(...) LAYOUT(__VA_ARGS__)
-#define LAYOUT_base( \
- K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, \
- K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, \
- K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A \
- ) \
- LAYOUT_wrapper( \
- KC_ESC, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, KC_DEL, KC_MUTE, \
- LALT_T(KC_TAB), K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, RALT_T(K1B), \
- KC_MLSF, CTL_T(K21), K22, K23, K24, K25, K26, K27, K28, K29, RCTL_T(K2A), KC_ENT, \
- OS_LSFT, OS_LCTL, OS_LALT, OS_LGUI, PLNK_1, PLNK_2, PLNK_3, PLNK_4, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT \
- )
-#define LAYOUT_base_wrapper(...) LAYOUT_base(__VA_ARGS__)
-
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [_DEFAULT_LAYER_1] = LAYOUT_base_wrapper(
- _________________QWERTY_L1_________________, _________________QWERTY_R1_________________,
- _________________QWERTY_L2_________________, _________________QWERTY_R2_________________,
- _________________QWERTY_L3_________________, _________________QWERTY_R3_________________
- ),
-
- [_DEFAULT_LAYER_2] = LAYOUT_base_wrapper(
- ______________COLEMAK_MOD_DH_L1____________, ______________COLEMAK_MOD_DH_R1____________,
- ______________COLEMAK_MOD_DH_L2____________, ______________COLEMAK_MOD_DH_R2____________,
- ______________COLEMAK_MOD_DH_L3____________, ______________COLEMAK_MOD_DH_R3____________
- ),
- [_DEFAULT_LAYER_3] = LAYOUT_base_wrapper(
- _________________COLEMAK_L1________________, _________________COLEMAK_R1________________,
- _________________COLEMAK_L2________________, _________________COLEMAK_R2________________,
- _________________COLEMAK_L3________________, _________________COLEMAK_R3________________
- ),
-
- [_DEFAULT_LAYER_4] = LAYOUT_base_wrapper(
- _________________DVORAK_L1_________________, _________________DVORAK_R1_________________,
- _________________DVORAK_L2_________________, _________________DVORAK_R2_________________,
- _________________DVORAK_L3_________________, _________________DVORAK_R3_________________
- ),
-
- [_LOWER] = LAYOUT_wrapper(
- KC_TILD, _________________LOWER_L1__________________, _________________LOWER_R1__________________, KC_BSPC, _______,
- KC_DEL, _________________LOWER_L2__________________, _________________LOWER_R2__________________, KC_PIPE,
- _______, _________________LOWER_L3__________________, _________________LOWER_R3__________________, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
- ),
-
- [_RAISE] = LAYOUT_wrapper(
- KC_GRV, _________________RAISE_L1__________________, _________________RAISE_R1__________________, KC_BSPC, _______,
- KC_DEL, _________________RAISE_L2__________________, _________________RAISE_R2__________________, KC_BSLS,
- _______, _________________RAISE_L3__________________, _________________RAISE_R3__________________, _______,
- _______, _______, _______, _______, _______, _______, _______, _________________RAISE_R3__________________
- ),
-
- [_ADJUST] = LAYOUT_wrapper(
- QK_MAKE, _________________ADJUST_L1_________________, _________________ADJUST_R1_________________, QK_BOOT, _______,
- VRSN, _________________ADJUST_L2_________________, _________________ADJUST_R2_________________, EE_CLR,
- _______, _________________ADJUST_L3_________________, _________________ADJUST_R3_________________, RGB_IDL,
- KEYLOCK, _______, _______, _______, _______, KC_NUKE, _______, _______, _______, _______, _______, TG_MODS
- )
-
-};
-
-#ifdef ENCODER_MAP_ENABLE
-const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = {
- [_DEFAULT_LAYER_1] = { { KC_DOWN, KC_UP } },
- [_DEFAULT_LAYER_2] = { { _______, _______ } },
- [_DEFAULT_LAYER_3] = { { _______, _______ } },
- [_DEFAULT_LAYER_4] = { { _______, _______ } },
- [_GAMEPAD] = { { _______, _______ } },
- [_DIABLO] = { { _______, _______ } },
- [_MOUSE] = { { KC_WH_D, KC_WH_U } },
- [_MEDIA] = { { _______, _______ } },
- [_RAISE] = { { KC_VOLD, KC_VOLU } },
- [_LOWER] = { { RGB_MOD, RGB_RMOD} },
- [_ADJUST] = { { CK_DOWN, CK_UP } },
-};
-// clang-format on
-#endif
-
-bool rgb_matrix_indicators_advanced_keymap(uint8_t led_min, uint8_t led_max) {
- uint8_t this_mod = get_mods();
- led_t this_led = host_keyboard_led_state();
- uint8_t this_osm = get_oneshot_mods();
-#define THUMB_LED 6
-#define RGB_MATRIX_INDICATOR_SET_COLOR_wrapper(...) RGB_MATRIX_INDICATOR_SET_COLOR(__VA_ARGS__)
-
- if (get_keyboard_lock()) {
- RGB_MATRIX_INDICATOR_SET_COLOR_wrapper(THUMB_LED, RGB_OFF);
- } else {
- switch (get_highest_layer(default_layer_state)) {
- case _DEFAULT_LAYER_1:
- RGB_MATRIX_INDICATOR_SET_COLOR_wrapper(THUMB_LED, DEFAULT_LAYER_1_RGB);
- break;
- case _DEFAULT_LAYER_2:
- RGB_MATRIX_INDICATOR_SET_COLOR_wrapper(THUMB_LED, DEFAULT_LAYER_2_RGB);
- break;
- case _DEFAULT_LAYER_3:
- RGB_MATRIX_INDICATOR_SET_COLOR_wrapper(THUMB_LED, DEFAULT_LAYER_3_RGB);
- break;
- case _DEFAULT_LAYER_4:
- RGB_MATRIX_INDICATOR_SET_COLOR_wrapper(THUMB_LED, DEFAULT_LAYER_4_RGB);
- break;
- }
- }
-
- if ((this_mod | this_osm) & MOD_MASK_SHIFT || this_led.caps_lock) {
- if (!layer_state_is(_ADJUST)) {
- RGB_MATRIX_INDICATOR_SET_COLOR(12, 0x00, 0xFF, 0x00);
- RGB_MATRIX_INDICATOR_SET_COLOR(13, 0x00, 0xFF, 0x00);
- }
- RGB_MATRIX_INDICATOR_SET_COLOR(24, 0x00, 0xFF, 0x00);
- }
- if ((this_mod | this_osm) & MOD_MASK_CTRL) {
- RGB_MATRIX_INDICATOR_SET_COLOR(11, 0xFF, 0x00, 0x00);
- RGB_MATRIX_INDICATOR_SET_COLOR(23, 0xFF, 0x00, 0x00);
- RGB_MATRIX_INDICATOR_SET_COLOR(14, 0xFF, 0x00, 0x00);
- }
- if ((this_mod | this_osm) & MOD_MASK_GUI) {
- RGB_MATRIX_INDICATOR_SET_COLOR(9, 0xFF, 0xD9, 0x00);
- }
- if ((this_mod | this_osm) & MOD_MASK_ALT) {
- RGB_MATRIX_INDICATOR_SET_COLOR(10, 0x00, 0x00, 0xFF);
- RGB_MATRIX_INDICATOR_SET_COLOR(25, 0x00, 0x00, 0xFF);
- RGB_MATRIX_INDICATOR_SET_COLOR(36, 0x00, 0x00, 0xFF);
- }
- if (layer_state_is(_LOWER)) {
- RGB_MATRIX_INDICATOR_SET_COLOR(7, 0x00, 0xFF, 0x00);
- RGB_MATRIX_INDICATOR_SET_COLOR(8, 0x00, 0xFF, 0x00);
- }
- if (layer_state_is(_RAISE)) {
- RGB_MATRIX_INDICATOR_SET_COLOR(4, 0xFF, 0xFF, 0x00);
- RGB_MATRIX_INDICATOR_SET_COLOR(5, 0xFF, 0xFF, 0x00);
- }
-
- return true;
-}
diff --git a/keyboards/work_louder/work_board/keymaps/drashna/rules.mk b/keyboards/work_louder/work_board/keymaps/drashna/rules.mk
deleted file mode 100644
index 8bdc486929..0000000000
--- a/keyboards/work_louder/work_board/keymaps/drashna/rules.mk
+++ /dev/null
@@ -1,10 +0,0 @@
-BOOTMAGIC_ENABLE = yes
-EXTRAKEY_ENABLE = yes
-MOUSEKEY_ENABLE = yes
-TAP_DANCE_ENABLE = no
-NKRO_ENABLE = yes
-RGBLIGHT_STARTUP_ANIMATION = no
-ENCODER_MAP_ENABLE = yes
-
-AUTOCORRECT_ENABLE = no
-CUSTOM_UNICODE_ENABLE = no
diff --git a/keyboards/work_louder/work_board/keymaps/peterfalken/keymap.c b/keyboards/work_louder/work_board/keymaps/peterfalken/keymap.c
deleted file mode 100644
index 785322b8af..0000000000
--- a/keyboards/work_louder/work_board/keymaps/peterfalken/keymap.c
+++ /dev/null
@@ -1,88 +0,0 @@
-// Copyright 2023 Peter.Falken (@PeterFalken)
-// SPDX-License-Identifier: GPL-2.0-or-later
-
-#include "peterfalken.h"
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-/* Qwerty
- * ,-----------------------------------------------------------------------------------.
- * | Esc | Q | W | E | R | T | Y | U | I | O | P | Bksp |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | Tab | A | S | D | F | G | H | J | K | L | ; | ' |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | Shift| Z | X | C | V | B | N | M | , | . | / |Enter |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | ▽ | Ctrl | Opt | Cmd | LWR | Space | RSE | Left | Down | Up |Right |
- * `-----------------------------------------------------------------------------------'
- */
-[_QWERTY] = LAYOUT(
- KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, _______,
- KC_TAB, 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_ENT ,
- _______, KC_LCTL, KC_LOPT, KC_LCMD, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT
-),
-
-/* Lower
- * ,-----------------------------------------------------------------------------------.
- * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Del |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | Del | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | ▽ | F7 | F8 | F9 | F10 | F11 | F12 |ISO ~ |ISO | | Home | End | ▽ |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | ▽ | ▽ | ▽ | ▽ | ▽ | ▽ ▽ | ▽ | Next | Vol- | Vol+ | Play |
- * `-----------------------------------------------------------------------------------'
- */
-[_LOWER] = LAYOUT(
- KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL, _______,
- KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE,
- _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, S(KC_NUHS), S(KC_NUBS), KC_HOME, KC_END, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY
-),
-
-/* Raise
- * ,-----------------------------------------------------------------------------------.
- * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | Del | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | ▽ | F7 | F8 | F9 | F10 | F11 | F12 |ISO # |ISO / |Pg Up |Pg Dn | ▽ |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | ▽ | ▽ | ▽ | ▽ | ▽ | ▽ ▽ | ▽ | Next | Vol- | Vol+ | Play |
- * `-----------------------------------------------------------------------------------'
- */
-[_RAISE] = LAYOUT(
- KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, _______,
- KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS,
- _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NUHS, KC_NUBS, KC_PGUP, KC_PGDN, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY
-),
-
-/* Adjust (Lower + Raise)
- * ,-----------------------------------------------------------------------------------.
- * | RSET | ▽ | M.AP | M.AL | LPAD | ▽ | ▽ | ▽ | ▽ | ▽ | ▽ | Del |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | ▽ | ▽ | ▽ | ▽ | ▽ | ▽ | ▽ | ▽ | ▽ | ▽ | ▽ | SLEP |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | CPWD | UN | CU | CO | PA | MV | ▽ | ▽ | ▽ | ▽ | ▽ | ▽ |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | ▽ | ▽ | ▽ | ▽ | ▽ | ▽ ▽ | ▽ | ▽ | ▽ | ▽ | ▽ |
- * `-----------------------------------------------------------------------------------'
- */
-[_ADJUST] = LAYOUT(
- QK_BOOT, _______, CK_M1, KC_MCTL, KC_LPAD, _______, _______, _______, _______, _______, _______, KC_DEL, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, CK_SLP,
- CK_CW, _______, CK_CU, CK_CO, CK_PA, CK_MV, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
-)
-
-};
-
-#ifdef ENCODER_MAP_ENABLE
-const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = {
- [_QWERTY] = { { KC_VOLU, KC_VOLD } },
- [_RAISE] = { { _______, _______ } },
- [_LOWER] = { { _______, _______ } },
- [_ADJUST] = { { _______, _______ } },
-};
-#endif // ENCODER_ENABLE
diff --git a/keyboards/work_louder/work_board/keymaps/peterfalken/readme.md b/keyboards/work_louder/work_board/keymaps/peterfalken/readme.md
deleted file mode 100644
index f64d682a51..0000000000
--- a/keyboards/work_louder/work_board/keymaps/peterfalken/readme.md
+++ /dev/null
@@ -1,14 +0,0 @@
-Copyright 2023 LEG <ucaboys@gmail.com> @PeterFalken
-
-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/>.
diff --git a/keyboards/work_louder/work_board/keymaps/peterfalken/rules.mk b/keyboards/work_louder/work_board/keymaps/peterfalken/rules.mk
deleted file mode 100644
index e2a6e1084e..0000000000
--- a/keyboards/work_louder/work_board/keymaps/peterfalken/rules.mk
+++ /dev/null
@@ -1,3 +0,0 @@
-# Setup QMK features
-ENCODER_MAP_ENABLE = yes
-RGB_MATRIX_ENABLE = no # Disable RGB key matrix
diff --git a/keyboards/xbows/knight/config.h b/keyboards/xbows/knight/config.h
index 0875283a78..d28ca9eac4 100644
--- a/keyboards/xbows/knight/config.h
+++ b/keyboards/xbows/knight/config.h
@@ -47,10 +47,9 @@
# define ENABLE_RGB_MATRIX_SPLASH // Full gradient & value pulse away from a single key hit then fades value out
# define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH // Hue & value pulse away from multiple key hits then fades value out
-# define DRIVER_ADDR_1 0b1110100
-# define DRIVER_ADDR_2 0b1110110
-# define DRIVER_ADDR_3 0b1110101
-# define DRIVER_COUNT 3
+# define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND
+# define IS31FL3731_I2C_ADDRESS_2 IS31FL3731_I2C_ADDRESS_SDA
+# define IS31FL3731_I2C_ADDRESS_3 IS31FL3731_I2C_ADDRESS_SCL
# define DRIVER_1_LED_TOTAL 36
# define DRIVER_2_LED_TOTAL 35
# define DRIVER_3_LED_TOTAL 15
diff --git a/keyboards/xbows/knight/knight.c b/keyboards/xbows/knight/knight.c
index 5be49f9d6f..05ff84060c 100644
--- a/keyboards/xbows/knight/knight.c
+++ b/keyboards/xbows/knight/knight.c
@@ -15,7 +15,7 @@
*/
#include "quantum.h"
#ifdef RGB_MATRIX_ENABLE
- const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = {
+ const is31fl3731_led_t PROGMEM g_is31fl3731_leds[RGB_MATRIX_LED_COUNT] = {
{0, C1_3, C2_3, C3_3}, // L01
{0, C1_4, C2_4, C3_4}, // L02
diff --git a/keyboards/xbows/knight_plus/config.h b/keyboards/xbows/knight_plus/config.h
index f8ec6d273b..433d8d994f 100644
--- a/keyboards/xbows/knight_plus/config.h
+++ b/keyboards/xbows/knight_plus/config.h
@@ -47,10 +47,9 @@
# define ENABLE_RGB_MATRIX_SPLASH // Full gradient & value pulse away from a single key hit then fades value out
# define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH // Hue & value pulse away from multiple key hits then fades value out
-# define DRIVER_ADDR_1 0b1110100
-# define DRIVER_ADDR_2 0b1110110
-# define DRIVER_ADDR_3 0b1110101
-# define DRIVER_COUNT 3
+# define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND
+# define IS31FL3731_I2C_ADDRESS_2 IS31FL3731_I2C_ADDRESS_SDA
+# define IS31FL3731_I2C_ADDRESS_3 IS31FL3731_I2C_ADDRESS_SCL
# define DRIVER_1_LED_TOTAL 36
# define DRIVER_2_LED_TOTAL 35
# define DRIVER_3_LED_TOTAL 15
diff --git a/keyboards/xbows/knight_plus/knight_plus.c b/keyboards/xbows/knight_plus/knight_plus.c
index ce718d22a5..b84f6b964b 100644
--- a/keyboards/xbows/knight_plus/knight_plus.c
+++ b/keyboards/xbows/knight_plus/knight_plus.c
@@ -15,7 +15,7 @@
*/
#include "quantum.h"
#ifdef RGB_MATRIX_ENABLE
- const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = {
+ const is31fl3731_led_t PROGMEM g_is31fl3731_leds[RGB_MATRIX_LED_COUNT] = {
{0, C1_3, C2_3, C3_3}, // L01
{0, C1_4, C2_4, C3_4}, // L02
diff --git a/keyboards/xbows/nature/config.h b/keyboards/xbows/nature/config.h
index be7fbeaa64..1710e17c2f 100644
--- a/keyboards/xbows/nature/config.h
+++ b/keyboards/xbows/nature/config.h
@@ -49,10 +49,9 @@
# define ENABLE_RGB_MATRIX_SPLASH // Full gradient & value pulse away from a single key hit then fades value out
# define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH // Hue & value pulse away from multiple key hits then fades value out
-# define DRIVER_ADDR_1 0b1110100
-# define DRIVER_ADDR_2 0b1110110
-# define DRIVER_ADDR_3 0b1110101
-# define DRIVER_COUNT 3
+# define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND
+# define IS31FL3731_I2C_ADDRESS_2 IS31FL3731_I2C_ADDRESS_SDA
+# define IS31FL3731_I2C_ADDRESS_3 IS31FL3731_I2C_ADDRESS_SCL
# define DRIVER_1_LED_TOTAL 36
# define DRIVER_2_LED_TOTAL 36
# define DRIVER_3_LED_TOTAL 15
diff --git a/keyboards/xbows/nature/nature.c b/keyboards/xbows/nature/nature.c
index da0cb54a60..1ba964e453 100644
--- a/keyboards/xbows/nature/nature.c
+++ b/keyboards/xbows/nature/nature.c
@@ -15,7 +15,7 @@
*/
#include "quantum.h"
#ifdef RGB_MATRIX_ENABLE
- const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = {
+ const is31fl3731_led_t PROGMEM g_is31fl3731_leds[RGB_MATRIX_LED_COUNT] = {
{0, C1_3, C2_3, C3_3}, // L01
{0, C1_4, C2_4, C3_4}, // L02
diff --git a/keyboards/xbows/numpad/config.h b/keyboards/xbows/numpad/config.h
index 1276efe191..df025a850d 100644
--- a/keyboards/xbows/numpad/config.h
+++ b/keyboards/xbows/numpad/config.h
@@ -47,7 +47,6 @@
# define ENABLE_RGB_MATRIX_SPLASH // Full gradient & value pulse away from a single key hit then fades value out
# define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH // Hue & value pulse away from multiple key hits then fades value out
-# define DRIVER_ADDR_1 0b1110111
-# define DRIVER_COUNT 1
+# define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_VCC
# define RGB_MATRIX_LED_COUNT 22
#endif
diff --git a/keyboards/xbows/numpad/numpad.c b/keyboards/xbows/numpad/numpad.c
index da20172f34..519a1b36f4 100644
--- a/keyboards/xbows/numpad/numpad.c
+++ b/keyboards/xbows/numpad/numpad.c
@@ -15,7 +15,7 @@
*/
#include "quantum.h"
#ifdef RGB_MATRIX_ENABLE
- const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = {
+ const is31fl3731_led_t PROGMEM g_is31fl3731_leds[RGB_MATRIX_LED_COUNT] = {
{0, C3_3, C2_3, C1_3}, // L01
{0, C3_4, C2_4, C1_4}, // L02
diff --git a/keyboards/xbows/ranger/config.h b/keyboards/xbows/ranger/config.h
index 68c8227da0..92bcfa492c 100644
--- a/keyboards/xbows/ranger/config.h
+++ b/keyboards/xbows/ranger/config.h
@@ -46,10 +46,9 @@
# define ENABLE_RGB_MATRIX_SPLASH // Full gradient & value pulse away from a single key hit then fades value out
# define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH // Hue & value pulse away from multiple key hits then fades value out
-# define DRIVER_ADDR_1 0b1110100
-# define DRIVER_ADDR_2 0b1110101
-# define DRIVER_ADDR_3 0b1110110
-# define DRIVER_COUNT 3
+# define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND
+# define IS31FL3731_I2C_ADDRESS_2 IS31FL3731_I2C_ADDRESS_SCL
+# define IS31FL3731_I2C_ADDRESS_3 IS31FL3731_I2C_ADDRESS_SDA
# define DRIVER_1_LED_TOTAL 36
# define DRIVER_2_LED_TOTAL 36
# define DRIVER_3_LED_TOTAL 15
diff --git a/keyboards/xbows/ranger/ranger.c b/keyboards/xbows/ranger/ranger.c
index 4ae55e7d68..028b5fca5c 100644
--- a/keyboards/xbows/ranger/ranger.c
+++ b/keyboards/xbows/ranger/ranger.c
@@ -17,7 +17,7 @@
#include "quantum.h"
#ifdef RGB_MATRIX_ENABLE
-const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = {
+const is31fl3731_led_t PROGMEM g_is31fl3731_leds[RGB_MATRIX_LED_COUNT] = {
{0, C3_3, C2_3, C1_3}, // L01
{0, C3_4, C2_4, C1_4}, // L02
diff --git a/keyboards/xbows/woody/config.h b/keyboards/xbows/woody/config.h
index bfdbcce8c2..7d06b7abda 100644
--- a/keyboards/xbows/woody/config.h
+++ b/keyboards/xbows/woody/config.h
@@ -56,9 +56,8 @@
// # define ENABLE_RGB_MATRIX_SOLID_SPLASH
// # define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH
-# define DRIVER_ADDR_1 0b1110100
-# define DRIVER_ADDR_2 0b1110110
-# define DRIVER_COUNT 2
+# define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND
+# define IS31FL3731_I2C_ADDRESS_2 IS31FL3731_I2C_ADDRESS_SDA
# define DRIVER_1_LED_TOTAL 35
# define DRIVER_2_LED_TOTAL 32
# define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL)
diff --git a/keyboards/xbows/woody/woody.c b/keyboards/xbows/woody/woody.c
index fa0ba7f768..e58ec15e10 100644
--- a/keyboards/xbows/woody/woody.c
+++ b/keyboards/xbows/woody/woody.c
@@ -1,6 +1,6 @@
#include "quantum.h"
#ifdef RGB_MATRIX_ENABLE
-const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = {
+const is31fl3731_led_t PROGMEM g_is31fl3731_leds[RGB_MATRIX_LED_COUNT] = {
{0, C8_8, C7_8, C6_8}, // LA17
{0, C9_8, C7_7, C6_7}, // LA16
diff --git a/keyboards/xelus/dawn60/rev1/config.h b/keyboards/xelus/dawn60/rev1/config.h
index d3b505447a..2552942635 100644
--- a/keyboards/xelus/dawn60/rev1/config.h
+++ b/keyboards/xelus/dawn60/rev1/config.h
@@ -16,8 +16,9 @@
#pragma once
// IS31FL3731 driver
-#define DRIVER_COUNT 2
-#define RGB_MATRIX_LED_COUNT 64
+#define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND
+#define IS31FL3731_I2C_ADDRESS_2 IS31FL3731_I2C_ADDRESS_SDA
+#define IS31FL3731_LED_COUNT 64
// Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap
#define LOCKING_SUPPORT_ENABLE
diff --git a/keyboards/xelus/dawn60/rev1/rev1.c b/keyboards/xelus/dawn60/rev1/rev1.c
index 2d0b465bcc..47ea0ffbaa 100644
--- a/keyboards/xelus/dawn60/rev1/rev1.c
+++ b/keyboards/xelus/dawn60/rev1/rev1.c
@@ -14,5 +14,85 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef RGB_BACKLIGHT_DAWN60
-#error RGB_BACKLIGHT_DAWN60 not defined, you done goofed somehao, brah
+# error RGB_BACKLIGHT_DAWN60 not defined, you done goofed somehao, brah
+#else
+# include "drivers/led/issi/is31fl3731.h"
+#endif
+
+#if defined(RGB_MATRIX_ENABLE) || defined(RGB_BACKLIGHT_DAWN60)
+const is31fl3731_led_t PROGMEM g_is31fl3731_leds[IS31FL3731_LED_COUNT] = {
+/* Refer to IS31 manual for these locations
+ * driver
+ * | R location
+ * | | G location
+ * | | | B location
+ * | | | | */
+ {0, C1_1, C3_2, C4_2}, //A1
+ {0, C1_2, C2_2, C4_3}, //A2
+ {0, C1_3, C2_3, C3_3}, //A3
+ {0, C1_4, C2_4, C3_4}, //A4
+ {0, C1_5, C2_5, C3_5}, //A5
+ {0, C1_6, C2_6, C3_6}, //A6
+ {0, C1_7, C2_7, C3_7}, //A7
+ {0, C1_8, C2_8, C3_8}, //A8
+ {0, C9_1, C8_1, C7_1}, //A9
+ {0, C9_2, C8_2, C7_2}, //A10
+ {0, C9_3, C8_3, C7_3}, //A11
+ {0, C9_4, C8_4, C7_4}, //A12
+ {0, C9_5, C8_5, C7_5}, //A13
+ {0, C9_6, C8_6, C7_6}, //A14
+ {0, C9_7, C8_7, C6_6}, //A15
+ {0, C9_8, C7_7, C6_7}, //A16
+
+ {0, C1_9, C3_10, C4_10}, //B1
+ {0, C1_10, C2_10, C4_11}, //B2
+ {0, C1_11, C2_11, C3_11}, //B3
+ {0, C1_12, C2_12, C3_12}, //B4
+ {0, C1_13, C2_13, C3_13}, //B5
+ {0, C1_14, C2_14, C3_14}, //B6
+ {0, C1_15, C2_15, C3_15}, //B7
+ {0, C1_16, C2_16, C3_16}, //B8
+ {0, C9_9, C8_9, C7_9}, //B9
+ {0, C9_10, C8_10, C7_10}, //B10
+ {0, C9_11, C8_11, C7_11}, //B11
+ {0, C9_12, C8_12, C7_12}, //B12
+ {0, C9_13, C8_13, C7_13}, //B13
+ {0, C9_14, C8_14, C7_14}, //B14
+ {0, C9_15, C8_15, C6_14}, //B15
+ {0, C9_16, C7_15, C6_15}, //B16
+
+ {1, C1_1, C3_2, C4_2}, //C1
+ {1, C1_2, C2_2, C4_3}, //C2
+ {1, C1_3, C2_3, C3_3}, //C3
+ {1, C1_4, C2_4, C3_4}, //C4
+ {1, C1_5, C2_5, C3_5}, //C5
+ {1, C1_6, C2_6, C3_6}, //C6
+ {1, C1_7, C2_7, C3_7}, //C7
+ {1, C1_8, C2_8, C3_8}, //C8
+ {1, C9_1, C8_1, C7_1}, //C9
+ {1, C9_2, C8_2, C7_2}, //C10
+ {1, C9_3, C8_3, C7_3}, //C11
+ {1, C9_4, C8_4, C7_4}, //C12
+ {1, C9_5, C8_5, C7_5}, //C13
+ {1, C9_6, C8_6, C7_6}, //C14
+ {1, C9_7, C8_7, C6_6}, //C15
+ {1, C9_8, C7_7, C6_7}, //C16
+
+ {1, C1_9, C3_10, C4_10}, //D1
+ {1, C1_10, C2_10, C4_11}, //D2
+ {1, C1_11, C2_11, C3_11}, //D3
+ {1, C1_12, C2_12, C3_12}, //D4
+ {1, C1_13, C2_13, C3_13}, //D5
+ {1, C1_14, C2_14, C3_14}, //D6
+ {1, C1_15, C2_15, C3_15}, //D7
+ {1, C1_16, C2_16, C3_16}, //D8
+ {1, C9_9, C8_9, C7_9}, //D9
+ {1, C9_10, C8_10, C7_10}, //D10
+ {1, C9_11, C8_11, C7_11}, //D11
+ {1, C9_12, C8_12, C7_12}, //D12
+ {1, C9_13, C8_13, C7_13}, //D13
+ {1, C9_14, C8_14, C7_14}, //D14
+ {1, C9_15, C8_15, C6_14}, //D15
+ {1, C9_16, C7_15, C6_15} //D16
+};
#endif
diff --git a/keyboards/xelus/dawn60/rev1/rules.mk b/keyboards/xelus/dawn60/rev1/rules.mk
index d4e70bfbec..0a72a60eca 100644
--- a/keyboards/xelus/dawn60/rev1/rules.mk
+++ b/keyboards/xelus/dawn60/rev1/rules.mk
@@ -26,4 +26,4 @@ SRC += keyboards/wilba_tech/wt_main.c \
quantum/color.c \
drivers/led/issi/is31fl3731.c
-QUANTUM_LIB_SRC += i2c_master.c
+I2C_DRIVER_REQUIRED = yes
diff --git a/keyboards/xelus/dawn60/rev1_qmk/config.h b/keyboards/xelus/dawn60/rev1_qmk/config.h
index ad399bd962..4e6d418f21 100644
--- a/keyboards/xelus/dawn60/rev1_qmk/config.h
+++ b/keyboards/xelus/dawn60/rev1_qmk/config.h
@@ -24,14 +24,13 @@
#define WS2812_LED_TOTAL 20
//RGB Matrix defines
-#define DRIVER_ADDR_1 0x74
-#define DRIVER_ADDR_2 0x76
+#define IS31FL3731_I2C_ADDRESS_1 IS31FL3731_I2C_ADDRESS_GND
+#define IS31FL3731_I2C_ADDRESS_2 IS31FL3731_I2C_ADDRESS_SDA
-#define DRIVER_COUNT 2
#define DRIVER_1_LED_TOTAL 32
#define DRIVER_2_LED_TOTAL 32
-#define ISSI_DRIVER_TOTAL (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL)
-#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL + WS2812_LED_TOTAL)
+#define IS31FL3731_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL)
+#define RGB_MATRIX_LED_COUNT (IS31FL3731_LED_COUNT + WS2812_LED_TOTAL)
#define RGB_MATRIX_DEFAULT_VAL 80
#define RGB_MATRIX_KEYPRESSES
diff --git a/keyboards/xelus/dawn60/rev1_qmk/rev1_qmk.c b/keyboards/xelus/dawn60/rev1_qmk/rev1_qmk.c
index 7b77807326..35ac5a06b2 100644
--- a/keyboards/xelus/dawn60/rev1_qmk/rev1_qmk.c
+++ b/keyboards/xelus/dawn60/rev1_qmk/rev1_qmk.c
@@ -23,9 +23,9 @@
#include "ws2812.h"
#ifdef RGB_MATRIX_ENABLE
-LED_TYPE rgb_matrix_ws2812_array[WS2812_LED_TOTAL];
+rgb_led_t rgb_matrix_ws2812_array[WS2812_LED_TOTAL];
-const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = {
+const is31fl3731_led_t PROGMEM g_is31fl3731_leds[IS31FL3731_LED_COUNT] = {
/* Refer to IS31 manual for these locations
* driver
* | R location
@@ -99,28 +99,6 @@ const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = {
{1, C9_14, C8_14, C7_14}, //D14
{1, C9_15, C8_15, C6_14}, //D15
{1, C9_16, C7_15, C6_15}, //D16
-
- //fake underglows 1- 20
- {2, 0, 0, 0},
- {2, 0, 0, 0},
- {2, 0, 0, 0},
- {2, 0, 0, 0},
- {2, 0, 0, 0},
- {2, 0, 0, 0},
- {2, 0, 0, 0},
- {2, 0, 0, 0},
- {2, 0, 0, 0},
- {2, 0, 0, 0},
- {2, 0, 0, 0},
- {2, 0, 0, 0},
- {2, 0, 0, 0},
- {2, 0, 0, 0},
- {2, 0, 0, 0},
- {2, 0, 0, 0},
- {2, 0, 0, 0},
- {2, 0, 0, 0},
- {2, 0, 0, 0},
- {2, 0, 0, 0}
};
__attribute__ ((weak))
@@ -167,32 +145,32 @@ led_config_t g_led_config = { {
//Custom Driver
static void init(void) {
i2c_init();
- is31fl3731_init(DRIVER_ADDR_1);
- is31fl3731_init(DRIVER_ADDR_2);
- for (int index = 0; index < ISSI_DRIVER_TOTAL; index++) {
+ is31fl3731_init(IS31FL3731_I2C_ADDRESS_1);
+ is31fl3731_init(IS31FL3731_I2C_ADDRESS_2);
+ for (int index = 0; index < IS31FL3731_LED_COUNT; index++) {
bool enabled = true;
is31fl3731_set_led_control_register(index, enabled, enabled, enabled);
}
- is31fl3731_update_led_control_registers(DRIVER_ADDR_1, 0);
- is31fl3731_update_led_control_registers(DRIVER_ADDR_2, 1);
+ is31fl3731_update_led_control_registers(IS31FL3731_I2C_ADDRESS_1, 0);
+ is31fl3731_update_led_control_registers(IS31FL3731_I2C_ADDRESS_2, 1);
//RGB Underglow ws2812
}
static void flush(void) {
- is31fl3731_update_pwm_buffers(DRIVER_ADDR_1, 0);
- is31fl3731_update_pwm_buffers(DRIVER_ADDR_2, 1);
+ is31fl3731_update_pwm_buffers(IS31FL3731_I2C_ADDRESS_1, 0);
+ is31fl3731_update_pwm_buffers(IS31FL3731_I2C_ADDRESS_2, 1);
ws2812_setleds(rgb_matrix_ws2812_array, WS2812_LED_TOTAL);
}
static void set_color(int index, uint8_t red, uint8_t green, uint8_t blue) {
- if (index < ISSI_DRIVER_TOTAL) {
+ if (index < IS31FL3731_LED_COUNT) {
is31fl3731_set_color(index, red, green, blue);
} else {
- rgb_matrix_ws2812_array[index - ISSI_DRIVER_TOTAL].r = red;
- rgb_matrix_ws2812_array[index - ISSI_DRIVER_TOTAL].g = green;
- rgb_matrix_ws2812_array[index - ISSI_DRIVER_TOTAL].b = blue;
+ rgb_matrix_ws2812_array[index - IS31FL3731_LED_COUNT].r = red;
+ rgb_matrix_ws2812_array[index - IS31FL3731_LED_COUNT].g = green;
+ rgb_matrix_ws2812_array[index - IS31FL3731_LED_COUNT].b = blue;
}
}
diff --git a/keyboards/xelus/dawn60/rev1_qmk/rules.mk b/keyboards/xelus/dawn60/rev1_qmk/rules.mk
index 4a799710d2..edb15fa760 100644
--- a/keyboards/xelus/dawn60/rev1_qmk/rules.mk
+++ b/keyboards/xelus/dawn60/rev1_qmk/rules.mk
@@ -25,6 +25,6 @@ COMMON_VPATH += $(DRIVER_PATH)/issi
# project specific files
SRC += drivers/led/issi/is31fl3731.c
-QUANTUM_LIB_SRC += i2c_master.c
+I2C_DRIVER_REQUIRED = yes
LTO_ENABLE = yes
diff --git a/keyboards/xelus/kangaroo/rev1/config.h b/keyboards/xelus/kangaroo/rev1/config.h
index 7f246458f5..c174b67e57 100644
--- a/keyboards/xelus/kangaroo/rev1/config.h
+++ b/keyboards/xelus/kangaroo/rev1/config.h
@@ -35,6 +35,3 @@
// I2C EEPROM
#define EEPROM_I2C_CAT24C512
-
-// Dynamic EEPROM
-#define DYNAMIC_KEYMAP_EEPROM_MAX_ADDR 65535
diff --git a/keyboards/xelus/kangaroo/rev1/info.json b/keyboards/xelus/kangaroo/rev1/info.json
index ca5fa293e9..f40d455b9f 100644
--- a/keyboards/xelus/kangaroo/rev1/info.json
+++ b/keyboards/xelus/kangaroo/rev1/info.json
@@ -8,6 +8,9 @@
"rows": ["A9", "A8", "B15", "B14", "B13", "B12", "A4", "A5", "A6", "A7", "B0", "B1"]
},
"diode_direction": "COL2ROW",
+ "eeprom": {
+ "driver": "i2c"
+ },
"processor": "STM32F072",
"bootloader": "stm32-dfu"
}
diff --git a/keyboards/xelus/kangaroo/rev1/rules.mk b/keyboards/xelus/kangaroo/rev1/rules.mk
index a6006b7150..80aff9822d 100644
--- a/keyboards/xelus/kangaroo/rev1/rules.mk
+++ b/keyboards/xelus/kangaroo/rev1/rules.mk
@@ -9,5 +9,3 @@ COMMAND_ENABLE = yes # Commands for debug and configuration
NKRO_ENABLE = yes # Enable N-Key Rollover
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
AUDIO_ENABLE = no # Audio output
-EEPROM_DRIVER = i2c
-
diff --git a/keyboards/xelus/kangaroo/rev2/config.h b/keyboards/xelus/kangaroo/rev2/config.h
index 790db9b30a..dfe8035b10 100644
--- a/keyboards/xelus/kangaroo/rev2/config.h
+++ b/keyboards/xelus/kangaroo/rev2/config.h
@@ -20,6 +20,3 @@
#define LOCKING_SUPPORT_ENABLE
/* Locking resynchronize hack */
#define LOCKING_RESYNC_ENABLE
-
-#define WEAR_LEVELING_LOGICAL_SIZE 2048
-#define WEAR_LEVELING_BACKING_SIZE WEAR_LEVELING_LOGICAL_SIZE*2
diff --git a/keyboards/xelus/kangaroo/rev2/info.json b/keyboards/xelus/kangaroo/rev2/info.json
index 196f11860b..9e639df034 100644
--- a/keyboards/xelus/kangaroo/rev2/info.json
+++ b/keyboards/xelus/kangaroo/rev2/info.json
@@ -8,6 +8,11 @@
"rows": ["A9", "A8", "B15", "B14", "B13", "B12", "A4", "A5", "A6", "A7", "B0", "B1"]
},
"diode_direction": "COL2ROW",
+ "eeprom": {
+ "wear_leveling": {
+ "backing_size": 4096
+ }
+ },
"processor": "STM32L412",
"bootloader": "stm32-dfu"
}
diff --git a/keyboards/xelus/kangaroo/rev2/rules.mk b/keyboards/xelus/kangaroo/rev2/rules.mk
index 613adf3a22..80aff9822d 100644
--- a/keyboards/xelus/kangaroo/rev2/rules.mk
+++ b/keyboards/xelus/kangaroo/rev2/rules.mk
@@ -9,8 +9,3 @@ COMMAND_ENABLE = yes # Commands for debug and configuration
NKRO_ENABLE = yes # Enable N-Key Rollover
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
AUDIO_ENABLE = no # Audio output
-EEPROM_DRIVER = i2c
-
-EEPROM_DRIVER = wear_leveling
-WEAR_LEVELING_DRIVER = embedded_flash
-
diff --git a/keyboards/xelus/pachi/rgb/rev1/config.h b/keyboards/xelus/pachi/rgb/rev1/config.h
index 1007f5b3de..e12b1af443 100644
--- a/keyboards/xelus/pachi/rgb/rev1/config.h
+++ b/keyboards/xelus/pachi/rgb/rev1/config.h
@@ -36,16 +36,11 @@
// I2C EEPROM
#define EEPROM_I2C_24LC64
-// More EEPROM for layers
-#define DYNAMIC_KEYMAP_EEPROM_MAX_ADDR 8191
-
// RGB Matrix defines
-#define DRIVER_ADDR_1 0b0110000
+#define IS31FL3741_I2C_ADDRESS_1 IS31FL3741_I2C_ADDRESS_GND
-#define DRIVER_COUNT 1
#define DRIVER_1_LED_TOTAL 117
-#define RGB_MATRIX_LED_COUNT DRIVER_1_LED_TOTAL
-#define ISSI_DRIVER_TOTAL RGB_MATRIX_LED_COUNT
+#define IS31FL3741_LED_COUNT DRIVER_1_LED_TOTAL
#define RGB_MATRIX_DEFAULT_VAL 80
#define RGB_MATRIX_FRAMEBUFFER_EFFECTS
diff --git a/keyboards/xelus/pachi/rgb/rev1/info.json b/keyboards/xelus/pachi/rgb/rev1/info.json
index 90ab8c19ef..092021b23a 100644
--- a/keyboards/xelus/pachi/rgb/rev1/info.json
+++ b/keyboards/xelus/pachi/rgb/rev1/info.json
@@ -17,6 +17,9 @@
"rows": ["B14", "B13", "B12", "B2", "A8", "B15"]
},
"diode_direction": "COL2ROW",
+ "eeprom": {
+ "driver": "i2c"
+ },
"processor": "STM32L422",
"bootloader": "stm32-dfu",
"layout_aliases": {
diff --git a/keyboards/xelus/pachi/rgb/rev1/rev1.c b/keyboards/xelus/pachi/rgb/rev1/rev1.c
index 156c5228da..e43726115e 100644
--- a/keyboards/xelus/pachi/rgb/rev1/rev1.c
+++ b/keyboards/xelus/pachi/rgb/rev1/rev1.c
@@ -22,7 +22,7 @@ void matrix_io_delay(void) { __asm__ volatile("nop\nnop\nnop\n"); }
#ifdef RGB_MATRIX_ENABLE
#include "i2c_master.h"
#include "drivers/led/issi/is31fl3741.h"
-const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = {
+const is31fl3741_led_t PROGMEM g_is31fl3741_leds[IS31FL3741_LED_COUNT] = {
/* Refer to IS31 manual for these locations
* driver
* | R location
@@ -188,8 +188,8 @@ led_config_t g_led_config = { {
static void init(void) {
i2c_init();
- is31fl3741_init(DRIVER_ADDR_1);
- for (int index = 0; index < ISSI_DRIVER_TOTAL; index++) {
+ is31fl3741_init(IS31FL3741_I2C_ADDRESS_1);
+ for (int index = 0; index < IS31FL3741_LED_COUNT; index++) {
bool enabled = !( ( index == -1+0+13) || //A13
( index == -1+13+3) || //B3
( index == -1+13+13) || //B13
@@ -223,16 +223,12 @@ static void init(void) {
);
is31fl3741_set_led_control_register(index, enabled, enabled, enabled);
}
- is31fl3741_update_led_control_registers(DRIVER_ADDR_1, 0);
-}
-
-static void flush(void) {
- is31fl3741_update_pwm_buffers(DRIVER_ADDR_1, 0);
+ is31fl3741_update_led_control_registers(IS31FL3741_I2C_ADDRESS_1, 0);
}
const rgb_matrix_driver_t rgb_matrix_driver = {
.init = init,
- .flush = flush,
+ .flush = is31fl3741_flush,
.set_color = is31fl3741_set_color,
.set_color_all = is31fl3741_set_color_all
};
diff --git a/keyboards/xelus/pachi/rgb/rev1/rules.mk b/keyboards/xelus/pachi/rgb/rev1/rules.mk
index cec6f3c13d..4c27f45008 100644
--- a/keyboards/xelus/pachi/rgb/rev1/rules.mk
+++ b/keyboards/xelus/pachi/rgb/rev1/rules.mk
@@ -11,8 +11,6 @@ BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
AUDIO_ENABLE = no # Audio output
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
-EEPROM_DRIVER = i2c
-
RGB_MATRIX_ENABLE = yes
COMMON_VPATH += $(DRIVER_PATH)/issi
diff --git a/keyboards/xelus/pachi/rgb/rev2/config.h b/keyboards/xelus/pachi/rgb/rev2/config.h
index a11aa27d3b..f852602705 100644
--- a/keyboards/xelus/pachi/rgb/rev2/config.h
+++ b/keyboards/xelus/pachi/rgb/rev2/config.h
@@ -37,12 +37,10 @@
#define EEPROM_I2C_24LC64
// RGB Matrix defines
-#define DRIVER_ADDR_1 0b0110000
+#define IS31FL3741_I2C_ADDRESS_1 IS31FL3741_I2C_ADDRESS_GND
-#define DRIVER_COUNT 1
#define DRIVER_1_LED_TOTAL 117
-#define RGB_MATRIX_LED_COUNT DRIVER_1_LED_TOTAL
-#define ISSI_DRIVER_TOTAL RGB_MATRIX_LED_COUNT
+#define IS31FL3741_LED_COUNT DRIVER_1_LED_TOTAL
#define RGB_MATRIX_DEFAULT_VAL 80
#define RGB_MATRIX_FRAMEBUFFER_EFFECTS
diff --git a/keyboards/xelus/pachi/rgb/rev2/info.json b/keyboards/xelus/pachi/rgb/rev2/info.json
index 64aa3172c0..e0b5dc7d1a 100644
--- a/keyboards/xelus/pachi/rgb/rev2/info.json
+++ b/keyboards/xelus/pachi/rgb/rev2/info.json
@@ -16,6 +16,9 @@
"rows": ["A5", "A6", "B0", "A7", "A8", "B1", "B4", "B5", "A15", "B3", "A13", "A14"]
},
"diode_direction": "COL2ROW",
+ "eeprom": {
+ "driver": "i2c"
+ },
"processor": "STM32L422",
"bootloader": "stm32-dfu",
"layout_aliases": {
diff --git a/keyboards/xelus/pachi/rgb/rev2/rev2.c b/keyboards/xelus/pachi/rgb/rev2/rev2.c
index d7c74730f8..25d1406653 100644
--- a/keyboards/xelus/pachi/rgb/rev2/rev2.c
+++ b/keyboards/xelus/pachi/rgb/rev2/rev2.c
@@ -22,7 +22,7 @@ void matrix_io_delay(void) { __asm__ volatile("nop\nnop\nnop\n"); }
#ifdef RGB_MATRIX_ENABLE
#include "i2c_master.h"
#include "drivers/led/issi/is31fl3741.h"
-const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = {
+const is31fl3741_led_t PROGMEM g_is31fl3741_leds[IS31FL3741_LED_COUNT] = {
/* Refer to IS31 manual for these locations
* driver
* | R location
@@ -194,8 +194,8 @@ led_config_t g_led_config = { {
static void init(void) {
i2c_init();
- is31fl3741_init(DRIVER_ADDR_1);
- for (int index = 0; index < ISSI_DRIVER_TOTAL; index++) {
+ is31fl3741_init(IS31FL3741_I2C_ADDRESS_1);
+ for (int index = 0; index < IS31FL3741_LED_COUNT; index++) {
bool enabled = !( ( index == -1+0+13) || //A13
( index == -1+13+3) || //B3
( index == -1+13+13) || //B13
@@ -229,16 +229,12 @@ static void init(void) {
);
is31fl3741_set_led_control_register(index, enabled, enabled, enabled);
}
- is31fl3741_update_led_control_registers(DRIVER_ADDR_1, 0);
-}
-
-static void flush(void) {
- is31fl3741_update_pwm_buffers(DRIVER_ADDR_1, 0);
+ is31fl3741_update_led_control_registers(IS31FL3741_I2C_ADDRESS_1, 0);
}
const rgb_matrix_driver_t rgb_matrix_driver = {
.init = init,
- .flush = flush,
+ .flush = is31fl3741_flush,
.set_color = is31fl3741_set_color,
.set_color_all = is31fl3741_set_color_all
};
diff --git a/keyboards/xelus/pachi/rgb/rev2/rules.mk b/keyboards/xelus/pachi/rgb/rev2/rules.mk
index d5c0eee734..62bb12bfb0 100644
--- a/keyboards/xelus/pachi/rgb/rev2/rules.mk
+++ b/keyboards/xelus/pachi/rgb/rev2/rules.mk
@@ -10,8 +10,6 @@ NKRO_ENABLE = yes # Enable N-Key Rollover
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
AUDIO_ENABLE = no # Audio output
-EEPROM_DRIVER = i2c
-
RGB_MATRIX_ENABLE = yes
COMMON_VPATH += $(DRIVER_PATH)/issi
diff --git a/keyboards/xelus/rs108/config.h b/keyboards/xelus/rs108/config.h
index 9ff25facc8..45f2a54530 100644
--- a/keyboards/xelus/rs108/config.h
+++ b/keyboards/xelus/rs108/config.h
@@ -30,14 +30,7 @@
#define I2C1_DUTY_CYCLE FAST_DUTY_CYCLE_2
// EEPROM config
-// 24LC32
-#define EXTERNAL_EEPROM_BYTE_COUNT 4096
-#define EXTERNAL_EEPROM_PAGE_SIZE 32
-#define EXTERNAL_EEPROM_ADDRESS_SIZE 2
-#define EXTERNAL_EEPROM_WRITE_TIME 5
-
-// More EEPROM for layers
-#define DYNAMIC_KEYMAP_EEPROM_MAX_ADDR 4095
+#define EEPROM_I2C_24LC32A
// Hardware Defines
#define EARLY_INIT_PERFORM_BOOTLOADER_JUMP TRUE
diff --git a/keyboards/xelus/rs108/info.json b/keyboards/xelus/rs108/info.json
index fd2358d68d..0342177e64 100644
--- a/keyboards/xelus/rs108/info.json
+++ b/keyboards/xelus/rs108/info.json
@@ -14,6 +14,9 @@
"rows": ["B5", "B6", "B7", "A1", "A0", "C13", "B0", "A7", "A5", "A4", "A3", "A2"]
},
"diode_direction": "COL2ROW",
+ "eeprom": {
+ "driver": "i2c"
+ },
"indicators": {
"caps_lock": "A6",
"num_lock": "A14",
diff --git a/keyboards/xelus/rs108/rules.mk b/keyboards/xelus/rs108/rules.mk
index 612c1d666a..b763de52c7 100644
--- a/keyboards/xelus/rs108/rules.mk
+++ b/keyboards/xelus/rs108/rules.mk
@@ -11,8 +11,6 @@ BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
AUDIO_ENABLE = no # Audio output
-EEPROM_DRIVER = i2c
-
# Save hid interface
KEYBOARD_SHARED_EP = yes
diff --git a/keyboards/xelus/rs60/rev2_0/config.h b/keyboards/xelus/rs60/rev2_0/config.h
index 9ff25facc8..45f2a54530 100644
--- a/keyboards/xelus/rs60/rev2_0/config.h
+++ b/keyboards/xelus/rs60/rev2_0/config.h
@@ -30,14 +30,7 @@
#define I2C1_DUTY_CYCLE FAST_DUTY_CYCLE_2
// EEPROM config
-// 24LC32
-#define EXTERNAL_EEPROM_BYTE_COUNT 4096
-#define EXTERNAL_EEPROM_PAGE_SIZE 32
-#define EXTERNAL_EEPROM_ADDRESS_SIZE 2
-#define EXTERNAL_EEPROM_WRITE_TIME 5
-
-// More EEPROM for layers
-#define DYNAMIC_KEYMAP_EEPROM_MAX_ADDR 4095
+#define EEPROM_I2C_24LC32A
// Hardware Defines
#define EARLY_INIT_PERFORM_BOOTLOADER_JUMP TRUE
diff --git a/keyboards/xelus/rs60/rev2_0/info.json b/keyboards/xelus/rs60/rev2_0/info.json
index ac976a4cb4..499a5a922f 100644
--- a/keyboards/xelus/rs60/rev2_0/info.json
+++ b/keyboards/xelus/rs60/rev2_0/info.json
@@ -8,6 +8,9 @@
"rows": ["B15", "B14", "B12", "B1", "B0"]
},
"diode_direction": "COL2ROW",
+ "eeprom": {
+ "driver": "i2c"
+ },
"indicators": {
"caps_lock": "A1"
},
diff --git a/keyboards/xelus/rs60/rev2_0/rules.mk b/keyboards/xelus/rs60/rev2_0/rules.mk
index 965f4edaef..b763de52c7 100644
--- a/keyboards/xelus/rs60/rev2_0/rules.mk
+++ b/keyboards/xelus/rs60/rev2_0/rules.mk
@@ -10,7 +10,6 @@ NKRO_ENABLE = yes # Enable N-Key Rollover
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
AUDIO_ENABLE = no # Audio output
-EEPROM_DRIVER = i2c
# Save hid interface
KEYBOARD_SHARED_EP = yes
diff --git a/keyboards/xelus/rs60/rev2_1/config.h b/keyboards/xelus/rs60/rev2_1/config.h
index 1c5fe4a336..430a5a47f7 100644
--- a/keyboards/xelus/rs60/rev2_1/config.h
+++ b/keyboards/xelus/rs60/rev2_1/config.h
@@ -21,6 +21,3 @@
// Locking resynchronize hack
#define LOCKING_RESYNC_ENABLE
-// Emulated EEPROM
-#define WEAR_LEVELING_LOGICAL_SIZE 2048
-#define WEAR_LEVELING_BACKING_SIZE WEAR_LEVELING_LOGICAL_SIZE*2
diff --git a/keyboards/xelus/rs60/rev2_1/info.json b/keyboards/xelus/rs60/rev2_1/info.json
index 118a671547..fe87561e61 100644
--- a/keyboards/xelus/rs60/rev2_1/info.json
+++ b/keyboards/xelus/rs60/rev2_1/info.json
@@ -8,6 +8,11 @@
"rows": ["B15", "B14", "B12", "B1", "B0"]
},
"diode_direction": "COL2ROW",
+ "eeprom": {
+ "wear_leveling": {
+ "backing_size": 4096
+ }
+ },
"indicators": {
"caps_lock": "A1",
"on_state": 0
diff --git a/keyboards/xelus/rs60/rev2_1/rules.mk b/keyboards/xelus/rs60/rev2_1/rules.mk
index 9eeaa8553b..b763de52c7 100644
--- a/keyboards/xelus/rs60/rev2_1/rules.mk
+++ b/keyboards/xelus/rs60/rev2_1/rules.mk
@@ -11,9 +11,6 @@ BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
AUDIO_ENABLE = no # Audio output
-EEPROM_DRIVER = wear_leveling
-WEAR_LEVELING_DRIVER = embedded_flash
-
# Save hid interface
KEYBOARD_SHARED_EP = yes
diff --git a/keyboards/xelus/valor/rev2/config.h b/keyboards/xelus/valor/rev2/config.h
index e5acad6f9c..9a0146172d 100644
--- a/keyboards/xelus/valor/rev2/config.h
+++ b/keyboards/xelus/valor/rev2/config.h
@@ -36,9 +36,6 @@
// I2C EEPROM
#define EEPROM_I2C_24LC64
-// More EEPROM for layers
-#define DYNAMIC_KEYMAP_EEPROM_MAX_ADDR 8191
-
/* RGB Matrix */
#define RGB_MATRIX_LED_COUNT 28
#define NOP_FUDGE 0.4
diff --git a/keyboards/xelus/valor/rev2/info.json b/keyboards/xelus/valor/rev2/info.json
index cdb3bb9947..c082afbca2 100644
--- a/keyboards/xelus/valor/rev2/info.json
+++ b/keyboards/xelus/valor/rev2/info.json
@@ -20,6 +20,9 @@
"rows": ["B11", "B10", "A3", "A1", "A2"]
},
"diode_direction": "COL2ROW",
+ "eeprom": {
+ "driver": "i2c"
+ },
"processor": "STM32L422",
"bootloader": "stm32-dfu",
"community_layouts": ["alice", "alice_split_bs"],
diff --git a/keyboards/xelus/valor/rev2/rules.mk b/keyboards/xelus/valor/rev2/rules.mk
index e0caab1474..7fd72e35e7 100644
--- a/keyboards/xelus/valor/rev2/rules.mk
+++ b/keyboards/xelus/valor/rev2/rules.mk
@@ -12,7 +12,6 @@ RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
AUDIO_ENABLE = no # Audio output
RGB_MATRIX_ENABLE = yes
RGB_MATRIX_CUSTOM_KB = yes
-EEPROM_DRIVER = i2c
OPT = 2
LTO_ENABLE = yes
diff --git a/keyboards/xelus/valor_frl_tkl/rev1/config.h b/keyboards/xelus/valor_frl_tkl/rev1/config.h
index a03694deaa..af702fcafd 100644
--- a/keyboards/xelus/valor_frl_tkl/rev1/config.h
+++ b/keyboards/xelus/valor_frl_tkl/rev1/config.h
@@ -35,10 +35,4 @@
#define I2C1_TIMINGR_SCLL 9U
// I2C EEPROM
-// 24LC64
#define EEPROM_I2C_24LC64
-
-// Dynamic EEPROM
-// Something sensible or else VIA may crash
-// Users may enable more if they wish
-#define DYNAMIC_KEYMAP_EEPROM_MAX_ADDR 4095
diff --git a/keyboards/xelus/valor_frl_tkl/rev1/info.json b/keyboards/xelus/valor_frl_tkl/rev1/info.json
index 838396caaf..4816a9a3a5 100644
--- a/keyboards/xelus/valor_frl_tkl/rev1/info.json
+++ b/keyboards/xelus/valor_frl_tkl/rev1/info.json
@@ -8,6 +8,9 @@
"rows": ["A15", "A14", "A1", "B3", "B4"]
},
"diode_direction": "COL2ROW",
+ "eeprom": {
+ "driver": "i2c"
+ },
"processor": "STM32F072",
"bootloader": "stm32-dfu"
}
diff --git a/keyboards/xelus/valor_frl_tkl/rev1/rules.mk b/keyboards/xelus/valor_frl_tkl/rev1/rules.mk
index efbd7d0e9b..5356b24d77 100644
--- a/keyboards/xelus/valor_frl_tkl/rev1/rules.mk
+++ b/keyboards/xelus/valor_frl_tkl/rev1/rules.mk
@@ -10,6 +10,3 @@ NKRO_ENABLE = yes # Enable N-Key Rollover
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
AUDIO_ENABLE = no # Audio output
-
-EEPROM_DRIVER = i2c
-
diff --git a/keyboards/xelus/xs108/config.h b/keyboards/xelus/xs108/config.h
index 8a6ab123c4..4b3b447c95 100644
--- a/keyboards/xelus/xs108/config.h
+++ b/keyboards/xelus/xs108/config.h
@@ -34,6 +34,3 @@
// I2C EEPROM
#define EEPROM_I2C_24LC64
-
-// More EEPROM for layers
-#define DYNAMIC_KEYMAP_EEPROM_MAX_ADDR 8191
diff --git a/keyboards/xelus/xs108/info.json b/keyboards/xelus/xs108/info.json
index ab9bf597dd..c9c65f7f8b 100644
--- a/keyboards/xelus/xs108/info.json
+++ b/keyboards/xelus/xs108/info.json
@@ -13,6 +13,9 @@
"rows": ["C14", "C13", "A10", "A3", "A1", "A0"]
},
"diode_direction": "COL2ROW",
+ "eeprom": {
+ "driver": "i2c"
+ },
"indicators": {
"caps_lock": "A2",
"num_lock": "B7",
diff --git a/keyboards/xelus/xs108/rules.mk b/keyboards/xelus/xs108/rules.mk
index 5ed7b869ae..5356b24d77 100644
--- a/keyboards/xelus/xs108/rules.mk
+++ b/keyboards/xelus/xs108/rules.mk
@@ -10,5 +10,3 @@ NKRO_ENABLE = yes # Enable N-Key Rollover
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
AUDIO_ENABLE = no # Audio output
-EEPROM_DRIVER = i2c
-
diff --git a/keyboards/xelus/xs60/hotswap/config.h b/keyboards/xelus/xs60/hotswap/config.h
index d1138c735d..56ecd57ec9 100644
--- a/keyboards/xelus/xs60/hotswap/config.h
+++ b/keyboards/xelus/xs60/hotswap/config.h
@@ -34,9 +34,6 @@
// I2C EEPROM
#define EEPROM_I2C_24LC64
-// More EEPROM for layers
-#define DYNAMIC_KEYMAP_EEPROM_MAX_ADDR 8191
-
// RGBLIGHT
#define RGBLIGHT_LAYERS
#define WS2812_EXTERNAL_PULLUP
diff --git a/keyboards/xelus/xs60/hotswap/info.json b/keyboards/xelus/xs60/hotswap/info.json
index 81cf86498b..45a5e57542 100644
--- a/keyboards/xelus/xs60/hotswap/info.json
+++ b/keyboards/xelus/xs60/hotswap/info.json
@@ -17,6 +17,9 @@
"processor": "STM32L422",
"bootloader": "stm32-dfu",
"diode_direction": "COL2ROW",
+ "eeprom": {
+ "driver": "i2c"
+ },
"matrix_pins": {
"cols": ["B0", "B1", "A8", "A9", "B5", "A6", "C14", "C15", "A0", "A5", "A4", "A3", "A2", "A1"],
"rows": ["B4", "B3", "A15", "A14", "A7"]
diff --git a/keyboards/xelus/xs60/hotswap/rules.mk b/keyboards/xelus/xs60/hotswap/rules.mk
index 4819456d51..f632b896ab 100644
--- a/keyboards/xelus/xs60/hotswap/rules.mk
+++ b/keyboards/xelus/xs60/hotswap/rules.mk
@@ -10,8 +10,6 @@ NKRO_ENABLE = yes # Enable N-Key Rollover
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
AUDIO_ENABLE = no # Audio output
-EEPROM_DRIVER = i2c
-
RGBLIGHT_ENABLE = yes
LTO_ENABLE = yes
diff --git a/keyboards/xelus/xs60/soldered/info.json b/keyboards/xelus/xs60/soldered/info.json
index 20de0ef837..41af87ba7c 100644
--- a/keyboards/xelus/xs60/soldered/info.json
+++ b/keyboards/xelus/xs60/soldered/info.json
@@ -17,6 +17,9 @@
"processor": "STM32L422",
"bootloader": "stm32-dfu",
"diode_direction": "COL2ROW",
+ "eeprom": {
+ "driver": "i2c"
+ },
"matrix_pins": {
"cols": ["B0", "B1", "A8", "A9", "B5", "A6", "C14", "C15", "A0", "A5", "A4", "A3", "A2", "A1"],
"rows": ["B4", "B3", "A15", "A14", "A7"]
diff --git a/keyboards/xelus/xs60/soldered/rules.mk b/keyboards/xelus/xs60/soldered/rules.mk
index 4819456d51..f632b896ab 100644
--- a/keyboards/xelus/xs60/soldered/rules.mk
+++ b/keyboards/xelus/xs60/soldered/rules.mk
@@ -10,8 +10,6 @@ NKRO_ENABLE = yes # Enable N-Key Rollover
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
AUDIO_ENABLE = no # Audio output
-EEPROM_DRIVER = i2c
-
RGBLIGHT_ENABLE = yes
LTO_ENABLE = yes
diff --git a/keyboards/xiudi/xd002/keymaps/multilayer_rgb/rgblite.h b/keyboards/xiudi/xd002/keymaps/multilayer_rgb/rgblite.h
index 8a14a8f956..1fa6f899b9 100644
--- a/keyboards/xiudi/xd002/keymaps/multilayer_rgb/rgblite.h
+++ b/keyboards/xiudi/xd002/keymaps/multilayer_rgb/rgblite.h
@@ -4,6 +4,6 @@
#include "color.h"
static inline void rgblite_setrgb(uint8_t _r, uint8_t _g, uint8_t _b) {
- LED_TYPE leds[RGBLED_NUM] = {{.r = _r, .g = _g, .b = _b}, {.r = _r, .g = _g, .b = _b}};
+ rgb_led_t leds[RGBLED_NUM] = {{.r = _r, .g = _g, .b = _b}, {.r = _r, .g = _g, .b = _b}};
ws2812_setleds(leds, RGBLED_NUM);
}
diff --git a/keyboards/xiudi/xd002/keymaps/rgb_lite/rgblite.h b/keyboards/xiudi/xd002/keymaps/rgb_lite/rgblite.h
index b7919f9767..15ee0c0f6b 100644
--- a/keyboards/xiudi/xd002/keymaps/rgb_lite/rgblite.h
+++ b/keyboards/xiudi/xd002/keymaps/rgb_lite/rgblite.h
@@ -4,7 +4,7 @@
#include "color.h"
static inline void rgblite_setrgb(uint8_t _r, uint8_t _g, uint8_t _b) {
- LED_TYPE leds[RGBLED_NUM] = {{.r = _r, .g = _g, .b = _b}, {.r = _r, .g = _g, .b = _b}};
+ rgb_led_t leds[RGBLED_NUM] = {{.r = _r, .g = _g, .b = _b}, {.r = _r, .g = _g, .b = _b}};
ws2812_setleds(leds, RGBLED_NUM);
}
diff --git a/keyboards/xiudi/xd004/keymaps/narze/keymap.c b/keyboards/xiudi/xd004/keymaps/narze/keymap.c
deleted file mode 100644
index 9aa47081b4..0000000000
--- a/keyboards/xiudi/xd004/keymaps/narze/keymap.c
+++ /dev/null
@@ -1,24 +0,0 @@
-/* Copyright 2021 narze
- *
- * 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: Base Layer
- LAYOUT_ortho_1x4(HYPR(KC_F2), HYPR(KC_F1), LCTL(KC_B), LCTL(KC_X)),
-
-};
diff --git a/keyboards/xiudi/xd004/keymaps/narze/readme.md b/keyboards/xiudi/xd004/keymaps/narze/readme.md
deleted file mode 100644
index 6f4bca9a90..0000000000
--- a/keyboards/xiudi/xd004/keymaps/narze/readme.md
+++ /dev/null
@@ -1,13 +0,0 @@
-# narze Keymap for XD004 PCB
-
-(Key 1 is on the opposite of USB port side, so I flip the keys to make usb port be on the left)
-
-- Key 1 : Hyper + F2
-- Key 2 : Hyper + F1
-- Key 3 : Ctrl + B (Microphone : Toggle mute)
-- Key 4 : Ctrl + X (Microphone : Push to talk)
-
-## Build & Flash
-
-- Put this board in DFU : bridge the last two pins (#5 & 6) of the 6-pin "J2" header on the opposite edge of the board to the USB port.
-- `make xd004/v1:narze:flash` or `qmk flash -kb xd004/v1 -km narze`
diff --git a/keyboards/xiudi/xd75/keymaps/billypython/config.h b/keyboards/xiudi/xd75/keymaps/billypython/config.h
deleted file mode 100644
index 36e6b67851..0000000000
--- a/keyboards/xiudi/xd75/keymaps/billypython/config.h
+++ /dev/null
@@ -1,14 +0,0 @@
-#pragma once
-
-#define FORCE_NKRO
-
-#define MOUSEKEY_DELAY 50
-#define MOUSEKEY_INTERVAL 15
-#define MOUSEKEY_MAX_SPEED 4
-#define MOUSEKEY_TIME_TO_MAX 50
-#define MOUSEKEY_WHEEL_MAX_SPEED 1
-#define MOUSEKEY_WHEEL_TIME_TO_MAX 50
-
-#define PERMISSIVE_HOLD
-#define TAPPING_TERM 200
-#define TAPPING_TOGGLE 2
diff --git a/keyboards/xiudi/xd75/keymaps/billypython/keymap.c b/keyboards/xiudi/xd75/keymaps/billypython/keymap.c
deleted file mode 100644
index d8301194f8..0000000000
--- a/keyboards/xiudi/xd75/keymaps/billypython/keymap.c
+++ /dev/null
@@ -1,119 +0,0 @@
-#include QMK_KEYBOARD_H
-
-#define TOP LCTL(KC_HOME)
-#define BOTTOM LCTL(KC_END)
-
-#define FN MO(L_FN)
-#define FN_CAPS LT(L_FN, KC_CAPS)
-#define FN_FNLK TT(L_FN)
-
-#define COMMA UC(0x002C)
-#define L_PAREN UC(0x0028)
-#define R_PAREN UC(0x0029)
-#define EQUALS UC(0x003D)
-#define TIMES UC(0x00D7)
-#define DIVIDE UC(0x00F7)
-#define MINUS UC(0x2212)
-
-void eeconfig_init_user(void) {
- set_unicode_input_mode(UNICODE_MODE_LINUX);
-}
-
-enum layers {
- L_BASE,
- L_FN,
- L_NUMPAD,
-};
-
-enum custom_keycodes {
- CLEAR = SAFE_RANGE,
- NUMPAD,
-};
-
-bool process_record_user(uint16_t keycode, keyrecord_t *record) {
- switch (keycode) {
- case CLEAR:
- if (record->event.pressed) {
- SEND_STRING(SS_LCTL("a") SS_TAP(X_DELETE));
- }
- return false;
-
- case NUMPAD:
- if (record->event.pressed) {
- layer_invert(L_NUMPAD);
- bool num_lock = host_keyboard_led_state().num_lock;
- if (num_lock != (bool)IS_LAYER_ON(L_NUMPAD)) {
- tap_code(KC_NUM_LOCK); // Toggle Num Lock to match layer state.
- }
- }
- return false;
-
- default:
- return true;
- }
-}
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- /* Base layer
- * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
- * │Esc│ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │ \ │ ` │
- * ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
- * │Tab│ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │Bsp│Del│
- * ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
- * │FnC│ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │Ent│Ent│PgU│
- * ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
- * │LSf│ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │RSf│RSf│ ↑ │PgD│
- * ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
- * │LCt│LGu│LAl│Spc│Spc│Spc│Spc│Spc│Spc│RAl│FnL│RCt│ ← │ ↓ │ → │
- * └───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┘
- */
- [L_BASE] = LAYOUT_ortho_5x15(
- KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS, KC_GRV,
- 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_BSPC, KC_DEL,
- FN_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_ENT, KC_PGUP,
- 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_RSFT, KC_UP, KC_PGDN,
- KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_SPC, KC_SPC, KC_SPC, KC_RALT, FN_FNLK, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
- ),
-
- /* Base layer
- * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
- * │ │F1 │F2 │F3 │F4 │F5 │F6 │F7 │F8 │F9 │F10│F11│F12│Num│Scr│
- * ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
- * │M4 │M2 │M↑ │M1 │M3 │M5 │ │PgU│ ↑ │PgD│Ply│Prv│Nxt│Clr│Ins│
- * ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
- * │ │M← │M↓ │M→ │MW↑│ │Hom│ ← │ ↓ │ → │End│ │ │ │Top│
- * ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
- * │ │MA0│MA2│MW←│MW→│ │ │ │VoD│VoU│Mut│ │ │PgU│Btm│
- * ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
- * │ │ │ │MW↓│MW↓│MW↓│ │ │ │ │ │App│Hom│PgD│End│
- * └───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┘
- */
- [L_FN] = LAYOUT_ortho_5x15(
- _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, NUMPAD, KC_PSCR,
- KC_BTN4, KC_BTN2, KC_MS_U, KC_BTN1, KC_BTN3, KC_BTN5, _______, KC_PGUP, KC_UP, KC_PGDN, KC_MPLY, KC_MPRV, KC_MNXT, CLEAR, KC_INS,
- _______, KC_MS_L, KC_MS_D, KC_MS_R, KC_WH_U, _______, KC_HOME, KC_LEFT, KC_DOWN, KC_RGHT, KC_END, _______, _______, _______, TOP,
- _______, KC_ACL0, KC_ACL2, KC_WH_L, KC_WH_R, _______, _______, _______, KC_VOLD, KC_VOLU, KC_MUTE, _______, _______, KC_PGUP, BOTTOM,
- _______, _______, _______, KC_WH_D, KC_WH_D, KC_WH_D, _______, _______, _______, _______, _______, KC_APP, KC_HOME, KC_PGDN, KC_END
- ),
-
- /* Numpad layer
- * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
- * │Num│ │ │ │ │ │ │P7 │P8 │P9 │P- │ − │ = │Num│ │
- * ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
- * │ │ │ │ │ │ │ │P4 │P5 │P6 │P+ │ ( │ ) │ │ │
- * ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
- * │ │ │ │ │ │ │ │P1 │P2 │P3 │P* │ × │PEn│PEn│ │
- * ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
- * │ │ │ │ │ │ │ │P0 │ , │P. │P/ │ ÷ │ │ │ │
- * ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
- * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
- * └───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┘
- */
- [L_NUMPAD] = LAYOUT_ortho_5x15(
- NUMPAD, _______, _______, _______, _______, _______, _______, KC_P7, KC_P8, KC_P9, KC_PMNS, MINUS, EQUALS, NUMPAD, _______,
- _______, _______, _______, _______, _______, _______, _______, KC_P4, KC_P5, KC_P6, KC_PPLS, L_PAREN, R_PAREN, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, KC_P1, KC_P2, KC_P3, KC_PAST, TIMES, KC_PENT, KC_PENT, _______,
- _______, _______, _______, _______, _______, _______, _______, KC_P0, COMMA, KC_PDOT, KC_PSLS, DIVIDE, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
- ),
-};
diff --git a/keyboards/xiudi/xd75/keymaps/billypython/rules.mk b/keyboards/xiudi/xd75/keymaps/billypython/rules.mk
deleted file mode 100644
index a4fd56ac18..0000000000
--- a/keyboards/xiudi/xd75/keymaps/billypython/rules.mk
+++ /dev/null
@@ -1,15 +0,0 @@
-AUDIO_ENABLE = no
-BACKLIGHT_ENABLE = no
-BLUETOOTH_ENABLE = no
-BOOTMAGIC_ENABLE = no # Enable Bootmagic Lite
-COMMAND_ENABLE = yes
-CONSOLE_ENABLE = yes
-EXTRAKEY_ENABLE = yes
-MIDI_ENABLE = no
-MOUSEKEY_ENABLE = yes
-NKRO_ENABLE = yes
-RGBLIGHT_ENABLE = no
-SLEEP_LED_ENABLE = no
-TAP_DANCE_ENABLE = no
-UNICODE_ENABLE = yes
-VISUALIZER_ENABLE = no
diff --git a/keyboards/xiudi/xd75/keymaps/ericgebhart/config.h b/keyboards/xiudi/xd75/keymaps/ericgebhart/config.h
deleted file mode 100644
index 68baabaf92..0000000000
--- a/keyboards/xiudi/xd75/keymaps/ericgebhart/config.h
+++ /dev/null
@@ -1,21 +0,0 @@
-#pragma once
-
-#undef RGBLED_NUM
-#define RGBLED_NUM 6
-#define RGBLIGHT_LAYERS
-
-#undef RGBLIGHT_EFFECT_BREATHING
-#undef RGBLIGHT_EFFECT_RAINBOW_MOOD
-#undef RGBLIGHT_EFFECT_RAINBOW_SWIRL
-#undef RGBLIGHT_EFFECT_SNAKE
-#undef RGBLIGHT_EFFECT_KNIGHT
-#undef RGBLIGHT_EFFECT_CHRISTMAS
-#undef RGBLIGHT_EFFECT_STATIC_GRADIENT
-#undef RGBLIGHT_EFFECT_RGB_TEST
-#undef RGBLIGHT_EFFECT_ALTERNATING
-#undef RGBLIGHT_EFFECT_TWINKLE
-//#define RGBLIGHT_HUE_STEP 8
-//#define RGBLIGHT_SAT_STEP 8
-
-
-// place overrides here
diff --git a/keyboards/xiudi/xd75/keymaps/ericgebhart/keymap.c b/keyboards/xiudi/xd75/keymaps/ericgebhart/keymap.c
deleted file mode 100644
index c534fe3c6d..0000000000
--- a/keyboards/xiudi/xd75/keymaps/ericgebhart/keymap.c
+++ /dev/null
@@ -1,18 +0,0 @@
-/*
- Copyright 2018-2022 Eric Gebhart <e.a.gebhart@gmail.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/>.
-*/
-
-// See: users/ericgebhart.
diff --git a/keyboards/xiudi/xd75/keymaps/ericgebhart/rules.mk b/keyboards/xiudi/xd75/keymaps/ericgebhart/rules.mk
deleted file mode 100644
index f171387f29..0000000000
--- a/keyboards/xiudi/xd75/keymaps/ericgebhart/rules.mk
+++ /dev/null
@@ -1,3 +0,0 @@
-RGBLIGHT_ENABLE = yes
-RGBLIGHT_ANIMATION = no
-# BACKLIGHT_ENABLE = yes
diff --git a/keyboards/xiudi/xd75/keymaps/jarred/keymap.c b/keyboards/xiudi/xd75/keymaps/jarred/keymap.c
deleted file mode 100644
index ff45939ba9..0000000000
--- a/keyboards/xiudi/xd75/keymaps/jarred/keymap.c
+++ /dev/null
@@ -1,37 +0,0 @@
-#include QMK_KEYBOARD_H
-
-#define _QW 0
-#define _LW 1
-#define _NV 2
-#define _NM 3
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [_QW] = LAYOUT_ortho_5x15(
- KC_ESC , KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_MUTE, KC_VOLD, KC_VOLU, 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_INS , KC_HOME, KC_PGUP, KC_Y , KC_U , KC_I , KC_O , KC_P , KC_BSPC,
- MO(_NV), KC_A , KC_S , KC_D , KC_F , KC_G , KC_DEL , KC_END , KC_PGDN, 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_UP , _______, KC_N , KC_M , KC_COMM, KC_DOT , KC_SLSH, KC_RSFT,
- KC_LCTL, KC_LGUI, MO(_NM), KC_LALT, MO(_LW), KC_SPC , KC_LEFT, KC_DOWN, KC_RGHT, KC_ENT , MO(_LW), KC_RALT, KC_RGUI, KC_APP , KC_RCTL
- ),
- [_LW] = LAYOUT_ortho_5x15(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- KC_ESC , KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , _______, _______, _______, KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , _______,
- _______, KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_F5 , _______, _______, _______, KC_F11 , KC_MINS, KC_EQL , KC_LBRC, KC_RBRC, KC_BSLS,
- _______, KC_F6 , KC_F7 , KC_F8 , KC_F9 , KC_F10 , _______, _______, _______, KC_F12 , KC_GRV , _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
- ),
- [_NV] = LAYOUT_ortho_5x15(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, KC_DEL , KC_BSPC, _______, _______, _______, _______, KC_HOME, KC_UP , KC_END , KC_INS , _______,
- _______, _______, _______, KC_LSFT, KC_LCTL, KC_ENT , _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, KC_DEL , _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PGUP, KC_PGDN, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
- ),
- [_NM] = LAYOUT_ortho_5x15(
- _______, _______, _______, _______, _______, _______, RGB_TOG, RGB_MOD, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, RGB_HUD, RGB_HUI, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, RGB_SAD, RGB_SAI, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, RGB_VAD, RGB_VAI, _______, _______, _______, _______, _______, _______, _______,
- QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
- )
-};
diff --git a/keyboards/xiudi/xd75/keymaps/jarred/readme.md b/keyboards/xiudi/xd75/keymaps/jarred/readme.md
deleted file mode 100644
index 4070bb3eed..0000000000
--- a/keyboards/xiudi/xd75/keymaps/jarred/readme.md
+++ /dev/null
@@ -1 +0,0 @@
-# Jarreds xd75 keymap
diff --git a/keyboards/xiudi/xd75/keymaps/odyssey/keymap.c b/keyboards/xiudi/xd75/keymaps/odyssey/keymap.c
index 4fe70b9cca..61eb4a2dcf 100644
--- a/keyboards/xiudi/xd75/keymaps/odyssey/keymap.c
+++ b/keyboards/xiudi/xd75/keymaps/odyssey/keymap.c
@@ -49,7 +49,7 @@ int speed = 300;
void set_colors(int r, int g, int b) {
for(int i = 0; i<6; i++) {
- sethsv(r, g, b, (LED_TYPE *)&led[i]);
+ sethsv(r, g, b, (rgb_led_t *)&led[i]);
}
rgblight_set();
}
@@ -213,7 +213,7 @@ void matrix_scan_user(void) {
if (rc == 0) {
rc = speed;
for(int i = 0; i<6; i++) {
- sethsv(42*((t+i)%6), 255, 255, (LED_TYPE *)&led[i]);
+ sethsv(42*((t+i)%6), 255, 255, (rgb_led_t *)&led[i]);
}
rgblight_set();
t++; t = t % 6;
@@ -224,9 +224,9 @@ void matrix_scan_user(void) {
col = (col + 1) % 36;
for (int i = 0; i<6; i++) {
if (i==t)
- sethsv(42*(((col-1)/6)%6), 255, 255, (LED_TYPE *)&led[(right ? t : 5-t)]);
+ sethsv(42*(((col-1)/6)%6), 255, 255, (rgb_led_t *)&led[(right ? t : 5-t)]);
else
- sethsv(0, 0, 0, (LED_TYPE *)&led[right ? i : 5-i]);
+ sethsv(0, 0, 0, (rgb_led_t *)&led[right ? i : 5-i]);
}
rgblight_set();
t++; t = t % 6;
diff --git a/keyboards/xiudi/xd75/keymaps/raoeus/keymap.c b/keyboards/xiudi/xd75/keymaps/raoeus/keymap.c
index 22578350c1..8c57995f2f 100644
--- a/keyboards/xiudi/xd75/keymaps/raoeus/keymap.c
+++ b/keyboards/xiudi/xd75/keymaps/raoeus/keymap.c
@@ -16,7 +16,6 @@
*/
#include QMK_KEYBOARD_H
-#include "keymap_steno.h"
void matrix_init_user(void) {
steno_set_mode(STENO_MODE_GEMINI);
diff --git a/keyboards/xiudi/xd75/keymaps/scheiklp/config.h b/keyboards/xiudi/xd75/keymaps/scheiklp/config.h
deleted file mode 100644
index b20cb2f4f3..0000000000
--- a/keyboards/xiudi/xd75/keymaps/scheiklp/config.h
+++ /dev/null
@@ -1,29 +0,0 @@
-// Copyright 2021 Paul Maria Scheikl (@ScheiklP)
-// SPDX-License-Identifier: GPL-2.0-or-later
-
-#pragma once
-
-// place overrides here
-#define AUTO_SHIFT_TIMEOUT 175
-#define NO_AUTO_SHIFT_SPECIAL
-
-// Mouse control
-// constant mode (velocity)
-#define MK_3_SPEED
-// KC_ACL0 < KC_ACL1 < unmodified < KC_ACL2
-// Cursor offset per movement (unmodified)
-#define MK_C_OFFSET_UNMOD 16
-// Time between cursor movements (unmodified)
-#define MK_C_INTERVAL_UNMOD 16
-// Cursor offset per movement (KC_ACL0)
-#define MK_C_OFFSET_0 1
-// Time between cursor movements (KC_ACL0)
-#define MK_C_INTERVAL_0 32
-// Cursor offset per movement (KC_ACL1)
-#define MK_C_OFFSET_1 4
-// Time between cursor movements (KC_ACL1)
-#define MK_C_INTERVAL_1 16
-// Cursor offset per movement (KC_ACL2)
-#define MK_C_OFFSET_2 32
-// Time between cursor movements (KC_ACL2)
-#define MK_C_INTERVAL_2 16
diff --git a/keyboards/xiudi/xd75/keymaps/scheiklp/keymap.c b/keyboards/xiudi/xd75/keymaps/scheiklp/keymap.c
deleted file mode 100644
index 241d07275e..0000000000
--- a/keyboards/xiudi/xd75/keymaps/scheiklp/keymap.c
+++ /dev/null
@@ -1,101 +0,0 @@
-// Copyright 2021 Paul Maria Scheikl (@ScheiklP)
-// SPDX-License-Identifier: GPL-2.0-or-later
-
-#include QMK_KEYBOARD_H
-#include "koy_keys_on_quertz_de_latin1.h"
-
-// Layer shorthand
-#define _1 0
-#define _3 1
-#define _4 2
-#define _7 3
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
-/* Layer 1
- * .---------------------------------------------------------------------------------------------------------------------------------------------------.
- * | ESC | 1 | 2 | 3 | 4 | 5 | Record 1 | Play 1 | 6 | 7 | 8 | 9 | 0 | DEL | BACKSP |
- * |---------+---------+--------+--------+--------+--------+-----------+-----------+--------+---------+--------+--------+--------+-----------+---------|
- * | TAB | K | . | O | , | Y | Record 2 | Play 2P | V | G | C | L | ẞ | Z | |
- * |---------+---------+--------+--------+--------+--------+-----------+-----------+--------+---------+--------+--------+--------+-----------+---------|
- * | Layer 3 | H | A | E | I | U | Undo | Stop Rec. | D | T | R | N | S | F | Layer 3 |
- * |---------+---------+--------+--------+--------+--------+-----------+-----------+--------+---------+--------+--------+--------+-----------+---------|
- * | LSHIFT | X | Q | Ä | Ü | Ö | Copy | Cut | B | P | W | M | J | RSHIFT | RSHIFT |
- * |---------+---------+--------+--------+--------+--------+-----------+-----------+--------+---------+--------+--------+--------+-----------+---------|
- * | LCTRL | Layer 4 | | LGUI | LALT | SPACE | Paste | SPACE | SPACE | Layer 4 | RCTRL | | | KEYLOCK | Layer 7 |
- * '---------------------------------------------------------------------------------------------------------------------------------------------------'
- */
-
- [_1] = LAYOUT_ortho_5x15( /* KOY */
- KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, DM_REC1, DM_PLY1, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL, KC_BSPC,
- KC_TAB, KC_K, KC_DOT, KC_O, KC_COMM, N_Y, DM_REC2, DM_PLY2, KC_V, KC_G, KC_C, KC_L, N_SS, N_Z, KC_TRNS,
- MO(_3), KC_H, KC_A, KC_E, KC_I, KC_U, N_UNDO, DM_RSTP, KC_D, KC_T, KC_R, KC_N, KC_S, KC_F, MO(_3),
- KC_LSFT, KC_X, KC_Q, N_AE, N_UE, N_OE, N_COPY, N_CUT, KC_B, KC_P, KC_W, KC_M, KC_J, KC_RSFT, KC_RSFT,
- KC_LCTL, MO(_4), KC_TRNS, KC_LGUI, KC_LALT, KC_SPC, N_PASTE, KC_SPC, KC_SPC, MO(_4), KC_RCTL, KC_TRNS, KC_TRNS,QK_LOCK, MO(_7)
- ),
-
-/* Layer 3
- * .---------------------------------------------------------------------------------------------------------------------------------------------------.
- * | ESC | F1 | F2 | F3 | F4 | F5 | | | F6 | F7 | F8 | F9 | F0 | DEL | BACKSP |
- * |---------+---------+--------+--------+--------+--------+-----------+-----------+--------+---------+--------+--------+--------+-----------+---------|
- * | TAB | … | _ | [ | ] | ^ | | | ! | < | > | = | & | | |
- * |---------+---------+--------+--------+--------+--------+-----------+-----------+--------+---------+--------+--------+--------+-----------+---------|
- * | Layer 5 | \ | / | { | } | * | | | ? | ( | ) | - | : | @ | Layer 5 |
- * |---------+---------+--------+--------+--------+--------+-----------+-----------+--------+---------+--------+--------+--------+-----------+---------|
- * | LSHIFT | # | $ | | | ~ | ` | | | + | % | " | ' | ; | RSHIFT | RSHIFT |
- * |---------+---------+--------+--------+--------+--------+-----------+-----------+--------+---------+--------+--------+--------+-----------+---------|
- * | LCTRL | | | | LALT | | | | | | | | | | |
- * '---------------------------------------------------------------------------------------------------------------------------------------------------'
- */
- [_3] = LAYOUT_ortho_5x15( /* Layer 3 */
- KC_ESC, KC_F1, KC_F3, KC_F4, KC_F5, KC_F6, KC_TRNS, KC_TRNS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS,
- KC_TAB, N_DOTS, N_USC, N_LSQBR, N_RSQBR, N_CIRC, KC_TRNS, KC_TRNS, N_EXKL, N_LT, N_GT, N_EQ, N_AMP, KC_TRNS, KC_TRNS,
- KC_TRNS, N_BSLS, N_SLSH, N_LCUBR, N_RCUBR, N_ASTR, KC_TRNS, KC_TRNS, N_QUES, N_LPARN, N_RPARN, N_MINS, N_COLN, N_AT, KC_TRNS,
- KC_LSFT, N_HASH, N_DLR, N_PIPE, N_TILD, N_GRAVE, KC_TRNS, KC_TRNS, N_PLUS, N_PERC, N_QUOT, N_SING, N_SEMI, KC_RSFT, KC_RSFT,
- KC_LCTL, KC_TRNS, KC_TRNS, KC_LALT, KC_TRNS, KC_SPC, KC_TRNS, KC_SPC, KC_SPC, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
- ),
-
-/* Layer 4
- * .------------------------------------------------------------------------------------------------------------------------------------------------------.
- * | ESC | | | | | | | | | | | | | | |
- * |---------+---------+--------+--------+--------+-----------+-----------+-----------+--------+---------+--------+--------+--------+-----------+---------|
- * | TAB | Page up | BACKSP | Up | DEL | Page down | | | / | 7 | 8 | 9 | − | | |
- * |---------+---------+--------+--------+--------+-----------+-----------+-----------+--------+---------+--------+--------+--------+-----------+---------|
- * | | Home | Left | Down | Right | End | | | * | 4 | 5 | 6 | . | | |
- * |---------+---------+--------+--------+--------+-----------+-----------+-----------+--------+---------+--------+--------+--------+-----------+---------|
- * | LSHIFT | ESC | TAB | Insert | Enter | Undo | | | Enter | 1 | 2 | 3 | ; | RSHIFT | RSHIFT |
- * |---------+---------+--------+--------+--------+-----------+-----------+-----------+--------+---------+--------+--------+--------+-----------+---------|
- * | LCTRL | | | LALT | | 0 | | 0 | 0 | | | | | | |
- * '------------------------------------------------------------------------------------------------------------------------------------------------------'
- */
- [_4] = LAYOUT_ortho_5x15( /* Layer 4 */
- KC_ESC, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TAB, KC_PGUP, KC_BSPC, KC_UP, KC_DEL, KC_PGDN, KC_TRNS, KC_TRNS, KC_KP_SLASH, KC_7, KC_8, KC_9, KC_KP_MINUS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_HOME, KC_LEFT, KC_DOWN, KC_RIGHT, KC_END, KC_TRNS, KC_TRNS, KC_KP_ASTERISK, KC_4, KC_5, KC_6, KC_KP_PLUS, KC_TRNS, KC_TRNS,
- KC_LSFT, KC_ESC, KC_TAB, KC_INS, KC_ENTER, N_UNDO, KC_TRNS, KC_TRNS, KC_KP_ENTER, KC_1, KC_2, KC_3, KC_KP_DOT, KC_RSFT, KC_RSFT,
- KC_LCTL, KC_TRNS, KC_TRNS, KC_LALT, KC_TRNS, KC_0, KC_TRNS, KC_0, KC_0, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
- ),
-
-/* Layer 7
- * .--------------------------------------------------------------------------------------------------------------------------------------------------------------.
- * | ESC | | | Button 3 | | | | | | | | | | | QK_BOOT |
- * |---------+----------+----------+----------+----------+------------+-----------+-----------+--------+---------+--------+--------+--------+-----------+---------|
- * | TAB | Wheel up | Button 2 | Up | Button 1 | Wheel down | | | | | | | | | |
- * |---------+----------+----------+----------+----------+------------+-----------+-----------+--------+---------+--------+--------+--------+-----------+---------|
- * | | Veloc 0 | Left | Down | Right | | | | | | | | | | |
- * |---------+----------+----------+----------+----------+------------+-----------+-----------+--------+---------+--------+--------+--------+-----------+---------|
- * | LSHIFT | Veloc 1 | | | | | | | | | | | | | |
- * |---------+----------+----------+----------+----------+------------+-----------+-----------+--------+---------+--------+--------+--------+-----------+---------|
- * | LCTRL | Veloc 2 | | LALT | | | | | | | | | | | |
- * '--------------------------------------------------------------------------------------------------------------------------------------------------------------'
- */
- [_7] = LAYOUT_ortho_5x15( /* Layer 7 */
- KC_ESC, KC_TRNS, KC_TRNS, KC_MS_BTN3, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, QK_BOOT,
- KC_TAB, KC_MS_WH_UP, KC_MS_BTN2, KC_MS_UP, KC_MS_BTN1, KC_MS_WH_DOWN, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_MS_ACCEL0, KC_MS_LEFT, KC_MS_DOWN, KC_MS_RIGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_LSFT, KC_MS_ACCEL1, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_LCTL, KC_MS_ACCEL2, KC_TRNS, KC_LALT, 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/xiudi/xd75/keymaps/scheiklp/readme.md b/keyboards/xiudi/xd75/keymaps/scheiklp/readme.md
deleted file mode 100644
index c8c2dc9a2c..0000000000
--- a/keyboards/xiudi/xd75/keymaps/scheiklp/readme.md
+++ /dev/null
@@ -1,9 +0,0 @@
-# KOY Layout for the xd75 pcb board
-Compile the layout
-```bash
-qmk compile -kb xiudi/xd75 -km scheiklp
-```
-and flash it to the board
-```bash
-qmk flash -kb xiudi/xd75 -km scheiklp
-```
diff --git a/keyboards/xiudi/xd75/keymaps/scheiklp/rules.mk b/keyboards/xiudi/xd75/keymaps/scheiklp/rules.mk
deleted file mode 100644
index 0b00a6654d..0000000000
--- a/keyboards/xiudi/xd75/keymaps/scheiklp/rules.mk
+++ /dev/null
@@ -1,9 +0,0 @@
-# Copyright 2021 Paul Maria Scheikl (@ScheiklP)
-# SPDX-License-Identifier: GPL-2.0-or-later
-
-BOOTMAGIC_ENABLE = no
-COMMAND_ENABLE = no
-RGBLIGHT_ENABLE = no
-DYNAMIC_MACRO_ENABLE = yes
-AUTO_SHIFT_ENABLE = yes
-KEY_LOCK_ENABLE = yes
diff --git a/keyboards/xiudi/xd75/keymaps/zigotica/config.h b/keyboards/xiudi/xd75/keymaps/zigotica/config.h
deleted file mode 100644
index 23e276cf6e..0000000000
--- a/keyboards/xiudi/xd75/keymaps/zigotica/config.h
+++ /dev/null
@@ -1,27 +0,0 @@
-/* Copyright 2023 Sergi Meseguer <zigotica@gmail.com>
-
-This program is free software: you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program. If not, see <http://www.gnu.org/licenses/>.
-*/
-
-#pragma once
-
-// these should work better for homerow modifiers
-#define TAPPING_TERM 350
-#define PERMISSIVE_HOLD
-#define QUICK_TAP_TERM 0
-
-// needed to get same layers as split keyboards
-// see users/zigotica/zigotica.h
-#define ORTHOLINEAR_KEYBOARD
-
diff --git a/keyboards/xiudi/xd75/keymaps/zigotica/keymap.c b/keyboards/xiudi/xd75/keymaps/zigotica/keymap.c
deleted file mode 100644
index 4133b57e72..0000000000
--- a/keyboards/xiudi/xd75/keymaps/zigotica/keymap.c
+++ /dev/null
@@ -1,63 +0,0 @@
-/* Copyright 2023 Sergi Meseguer <zigotica@gmail.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 "zigotica.h"
-
-#define LAYOUT_wrapper(...) LAYOUT(__VA_ARGS__)
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [BASE] = LAYOUT_wrapper(
- KC_ESC, ____NUM15, _BLANK_3, ____NUM60, KC_DEL,
- KC_TAB, _STENAI_L1, _BLANK_3, _STENAI_R1, _______,
- KC_EQL, _STENAI_L2, _BLANK_3, _STENAI_R2, KC_ENT,
- KC_LSFT, _STENAI_L3, ____TARRS, _STENAI_R3, KC_RSFT,
- ____LORTH, _STENAI_LT, ____BARRS, _STENAI_RT, ____RORTH
- ),
-
- [_NUM] = LAYOUT_wrapper(
- QK_MAKE, _BLANK_ROW, _BLANK_3, _BLANK_ROW, _______,
- _______, ____NUM_L1, _BLANK_3, ____NUM_R1, _______,
- _______, ____NUM_L2, _BLANK_3, ____NUM_R2, _______,
- _______, ____NUM_L3, _BLANK_3, ____NUM_R3, _______,
- _BLANK_4, ____NUM_LT, _BLANK_3, ____NUM_RT, _BLANK_4
- ),
-
- [_NAV] = LAYOUT_wrapper(
- QK_MAKE, _BLANK_ROW, _BLANK_3, _BLANK_ROW, _______,
- _______, ____NAV_L1, _BLANK_3, ____NAV_R1, _______,
- _______, ____NAV_L2, _BLANK_3, ____NAV_R2, _______,
- _______, ____NAV_L3, _BLANK_3, ____NAV_R3, _______,
- _BLANK_4, ____NAV_LT, _BLANK_3, ____NAV_RT, _BLANK_4
- ),
-
- [_SYM] = LAYOUT_wrapper(
- QK_MAKE, _BLANK_ROW, _BLANK_3, _BLANK_ROW, _______,
- _______, ____SYM_L1, _BLANK_3, ____SYM_R1, _______,
- _______, ____SYM_L2, _BLANK_3, ____SYM_R2, _______,
- _______, ____SYM_L3, _BLANK_3, ____SYM_R3, _______,
- _BLANK_4, ____SYM_LT, _BLANK_3, ____SYM_RT, _BLANK_4
- ),
-
- [_FN] = LAYOUT_wrapper(
- QK_MAKE, ____FN_15, _BLANK_3, ____FN_60, _______,
- _______, ____FN_L1, _BLANK_3, ____FN_R1, _______,
- _______, ____FN_L2, _BLANK_3, ____FN_R2, _______,
- _______, ____FN_L3, _BLANK_3, ____FN_R3, _______,
- _BLANK_4, ____FN_LT, _BLANK_3, ____FN_RT, _BLANK_4
- ),
-};
-
-
diff --git a/keyboards/xiudi/xd75/keymaps/zigotica/rules.mk b/keyboards/xiudi/xd75/keymaps/zigotica/rules.mk
deleted file mode 100644
index c41232e8f9..0000000000
--- a/keyboards/xiudi/xd75/keymaps/zigotica/rules.mk
+++ /dev/null
@@ -1,6 +0,0 @@
-OLED_SUPPORTED = no
-ENCODER_SUPPORTED = no
-
-MOUSEKEY_ENABLE = yes
-COMBO_ENABLE = yes
-TAP_DANCE_ENABLE = yes
diff --git a/keyboards/xiudi/xd84/rules.mk b/keyboards/xiudi/xd84/rules.mk
index c6c7f4ef93..89d05c5487 100644
--- a/keyboards/xiudi/xd84/rules.mk
+++ b/keyboards/xiudi/xd84/rules.mk
@@ -17,4 +17,4 @@ CUSTOM_MATRIX = lite
VPATH += drivers/gpio
SRC += pca9555.c matrix.c
-QUANTUM_LIB_SRC += i2c_master.c
+I2C_DRIVER_REQUIRED = yes
diff --git a/keyboards/xiudi/xd96/rules.mk b/keyboards/xiudi/xd96/rules.mk
index c6c7f4ef93..89d05c5487 100644
--- a/keyboards/xiudi/xd96/rules.mk
+++ b/keyboards/xiudi/xd96/rules.mk
@@ -17,4 +17,4 @@ CUSTOM_MATRIX = lite
VPATH += drivers/gpio
SRC += pca9555.c matrix.c
-QUANTUM_LIB_SRC += i2c_master.c
+I2C_DRIVER_REQUIRED = yes
diff --git a/keyboards/yanghu/unicorne/keymaps/bcat/config.h b/keyboards/yanghu/unicorne/keymaps/bcat/config.h
deleted file mode 100644
index 6a27f2aa96..0000000000
--- a/keyboards/yanghu/unicorne/keymaps/bcat/config.h
+++ /dev/null
@@ -1,19 +0,0 @@
-/* Copyright 2021 Jonathan Rascher
- *
- * 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 BCAT_ORTHO_LAYERS
diff --git a/keyboards/yanghu/unicorne/keymaps/bcat/keymap.c b/keyboards/yanghu/unicorne/keymaps/bcat/keymap.c
deleted file mode 100644
index 4cffd9c32e..0000000000
--- a/keyboards/yanghu/unicorne/keymaps/bcat/keymap.c
+++ /dev/null
@@ -1,83 +0,0 @@
-/* Copyright 2021 Jonathan Rascher
- *
- * 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 "bcat.h"
-
-#if defined(OLED_ENABLE)
-# include "bcat_oled.h"
-#endif
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- // clang-format off
- /* Default layer: http://www.keyboard-layout-editor.com/#/gists/b6d0b16a913e7d1faeafc9fc751c413f */
- [LAYER_DEFAULT] = LAYOUT(
- 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_ESC, 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_RSFT,
- KC_MPLY, KC_LCTL, LY_LWR, KC_SPC, KC_ENT, LY_RSE, KC_RALT, KC_MUTE
- ),
- /* Lower layer: http://www.keyboard-layout-editor.com/#/gists/99dd65d3b857a272be7a1804b20bc266 */
- [LAYER_LOWER] = LAYOUT(
- MC_ALTT, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, _______,
- KY_CSPC, KY_ZMRST, KY_ZMOUT, KY_ZMIN, KC_WBAK, KC_WFWD, KC_PIPE, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_TILD,
- _______, KC_APP, KC_PSCR, KC_SCRL, KC_PAUS, KC_LGUI, KC_BSLS, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_GRV,
- _______, _______, _______, _______, _______, _______, _______, _______
- ),
- /* Raise layer: http://www.keyboard-layout-editor.com/#/gists/cf9e899867763dc45b65917ce4cf93ff */
- [LAYER_RAISE] = LAYOUT(
- KC_CAPS, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, _______,
- _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_F11, KC_DEL,
- _______, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_HOME, KC_PGDN, KC_PGUP, KC_END, KC_F12, KC_INS,
- _______, _______, _______, _______, _______, _______, _______, _______
- ),
- /* Adjust layer: http://www.keyboard-layout-editor.com/#/gists/7eb0f1c437169f30cc18eac271ad2302 */
- [LAYER_ADJUST] = LAYOUT(
- _______, MU_TOGG, KC_MPLY, KC_VOLU, KC_MSTP, _______, EE_CLR, QK_BOOT, _______, _______, _______, _______,
- _______, MU_NEXT, KC_MPRV, KC_VOLD, KC_MNXT, _______, RGB_RMOD, RGB_VAD, RGB_VAI, RGB_MOD, RGB_SPI, _______,
- _______, _______, _______, KC_MUTE, _______, _______, RGB_HUI, RGB_SAD, RGB_SAI, RGB_HUD, RGB_SPD, _______,
- _______, _______, _______, _______, RGB_TOG, _______, _______, _______
- ),
- // clang-format on
-};
-
-bool encoder_update_user(uint8_t index, bool clockwise) {
- switch (index) {
- case 0:
- /* Left encoder (scrolling) */
- tap_code(clockwise ? KC_PGDN : KC_PGUP);
- return false;
- case 1:
- /* Right encoder (volume) */
- tap_code(clockwise ? KC_VOLU : KC_VOLD);
- return false;
- default:
- return true;
- }
-}
-
-#if defined(OLED_ENABLE)
-oled_rotation_t oled_init_user(oled_rotation_t rotation) { return OLED_ROTATION_270; }
-
-void oled_task_keymap(const oled_keyboard_state_t *keyboard_state) {
- render_oled_layers();
- oled_advance_page(/*clearPageRemainder=*/false);
- oled_advance_page(/*clearPageRemainder=*/false);
- render_oled_wpm(keyboard_state->wpm);
- render_oled_pet(/*col=*/0, /*line=*/6, keyboard_state);
-}
-#endif
diff --git a/keyboards/yanghu/unicorne/keymaps/bcat/readme.md b/keyboards/yanghu/unicorne/keymaps/bcat/readme.md
deleted file mode 100644
index 5c30911d5e..0000000000
--- a/keyboards/yanghu/unicorne/keymaps/bcat/readme.md
+++ /dev/null
@@ -1,33 +0,0 @@
-# bcat's Unicorne layout
-
-This ergo layout follows my preferred [split 3x6 + 3 thumb
-keys](https://github.com/qmk/qmk_firmware/tree/master/layouts/community/split_3x6_3/bcat)
-layout, adding bindings for the two rotary encoders on the bottom row. (The
-left encoder scrolls vertically and the right encoder adjusts volume.) Also,
-since the Unicorne keyboard has a speaker, I added bindings on the adjust layer
-to activate and configure music mode. Finally, an adorable unicorn prances on
-the OLED, running faster the quicker you type.
-
-## Default layer
-
-![Default layer layout](https://i.imgur.com/Max5R0T.png)
-
-([KLE](http://www.keyboard-layout-editor.com/#/gists/b6d0b16a913e7d1faeafc9fc751c413f))
-
-## Lower layer
-
-![Lower layer layout](https://i.imgur.com/E8Cfowc.png)
-
-([KLE](http://www.keyboard-layout-editor.com/#/gists/99dd65d3b857a272be7a1804b20bc266))
-
-## Raise layer
-
-![Raise layer layout](https://i.imgur.com/KomdMyB.png)
-
-([KLE](http://www.keyboard-layout-editor.com/#/gists/cf9e899867763dc45b65917ce4cf93ff))
-
-## Adjust layer
-
-![Adjust layer layout](https://i.imgur.com/EtshZbn.png)
-
-([KLE](http://www.keyboard-layout-editor.com/#/gists/7eb0f1c437169f30cc18eac271ad2302))
diff --git a/keyboards/yanghu/unicorne/keymaps/bcat/rules.mk b/keyboards/yanghu/unicorne/keymaps/bcat/rules.mk
deleted file mode 100644
index e9a4fda1f7..0000000000
--- a/keyboards/yanghu/unicorne/keymaps/bcat/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-BCAT_OLED_PET = isda
diff --git a/keyboards/yiancardesigns/barleycorn/rules.mk b/keyboards/yiancardesigns/barleycorn/rules.mk
index b56efe3ef9..3808b0d3f2 100644
--- a/keyboards/yiancardesigns/barleycorn/rules.mk
+++ b/keyboards/yiancardesigns/barleycorn/rules.mk
@@ -14,4 +14,4 @@ AUDIO_ENABLE = no # Audio output
CUSTOM_MATRIX = lite
SRC += matrix.c
-QUANTUM_LIB_SRC += i2c_master.c
+I2C_DRIVER_REQUIRED = yes
diff --git a/keyboards/yiancardesigns/gingham/rules.mk b/keyboards/yiancardesigns/gingham/rules.mk
index 2fce424de8..cd47b89aed 100644
--- a/keyboards/yiancardesigns/gingham/rules.mk
+++ b/keyboards/yiancardesigns/gingham/rules.mk
@@ -1,5 +1,5 @@
-SRC = matrix.c \
- i2c_master.c
+SRC = matrix.c
+I2C_DRIVER_REQUIRED = yes
# Build Options
# change yes to no to disable
diff --git a/keyboards/yiancardesigns/seigaiha/rules.mk b/keyboards/yiancardesigns/seigaiha/rules.mk
index b56efe3ef9..3808b0d3f2 100644
--- a/keyboards/yiancardesigns/seigaiha/rules.mk
+++ b/keyboards/yiancardesigns/seigaiha/rules.mk
@@ -14,4 +14,4 @@ AUDIO_ENABLE = no # Audio output
CUSTOM_MATRIX = lite
SRC += matrix.c
-QUANTUM_LIB_SRC += i2c_master.c
+I2C_DRIVER_REQUIRED = yes
diff --git a/keyboards/ymdk/id75/info.json b/keyboards/ymdk/id75/info.json
index 692ef7e8b7..e30afaf717 100644
--- a/keyboards/ymdk/id75/info.json
+++ b/keyboards/ymdk/id75/info.json
@@ -3,7 +3,6 @@
"keyboard_name": "Idobao x YMDK ID75",
"maintainer": "qmk",
"bootloader": "uf2boot",
- "board": "STM32_F103_STM32DUINO",
"diode_direction": "ROW2COL",
"features": {
"bootmagic": true,
diff --git a/keyboards/ymdk/melody96/hotswap/info.json b/keyboards/ymdk/melody96/hotswap/info.json
new file mode 100644
index 0000000000..61112d88ab
--- /dev/null
+++ b/keyboards/ymdk/melody96/hotswap/info.json
@@ -0,0 +1,501 @@
+{
+ "keyboard_name": "Melody96 Hotswap",
+ "manufacturer": "YMDK",
+ "url": "",
+ "maintainer": "qmk",
+ "usb": {
+ "vid": "0x594D",
+ "pid": "0x4D97",
+ "device_version": "0.0.1"
+ },
+ "matrix_pins": {
+ "cols": ["D0", "D1", "D2", "D3", "D5", "D4", "D6", "D7", "B4"],
+ "rows": ["B7", "B3", "B2", "B1", "B0", "E6", "F0", "F1", "F4", "F5", "F6", "F7"]
+ },
+ "diode_direction": "ROW2COL",
+ "features": {
+ "audio": false,
+ "backlight": true,
+ "bootmagic": true,
+ "command": false,
+ "console": false,
+ "extrakey": true,
+ "mousekey": true,
+ "nkro": true,
+ "rgblight": true
+ },
+ "backlight": {
+ "pin": "B6",
+ "levels": 5
+ },
+ "rgblight": {
+ "led_count": 18,
+ "saturation_steps": 8,
+ "brightness_steps": 8,
+ "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": "E2"
+ },
+ "indicators": {
+ "caps_lock": "C7",
+ "num_lock": "C6",
+ "scroll_lock": "B5",
+ "on_state": 0
+ },
+ "bootmagic": {
+ "matrix": [5, 0]
+ },
+ "processor": "atmega32u4",
+ "bootloader": "atmel-dfu",
+ "community_layouts": ["96_ansi", "96_iso"],
+ "layouts": {
+ "LAYOUT_96_iso": {
+ "layout": [
+ {"matrix": [5, 0], "x": 0, "y": 0},
+ {"matrix": [5, 1], "x": 1, "y": 0},
+ {"matrix": [5, 2], "x": 2, "y": 0},
+ {"matrix": [5, 3], "x": 3, "y": 0},
+ {"matrix": [5, 4], "x": 4, "y": 0},
+ {"matrix": [5, 5], "x": 5, "y": 0},
+ {"matrix": [5, 6], "x": 6, "y": 0},
+ {"matrix": [5, 7], "x": 7, "y": 0},
+ {"matrix": [5, 8], "x": 8, "y": 0},
+ {"matrix": [11, 8], "x": 9, "y": 0},
+ {"matrix": [11, 7], "x": 10, "y": 0},
+ {"matrix": [11, 5], "x": 11, "y": 0},
+ {"matrix": [11, 4], "x": 12, "y": 0},
+ {"matrix": [11, 3], "x": 13, "y": 0},
+ {"matrix": [11, 6], "x": 14, "y": 0},
+ {"matrix": [11, 2], "x": 15, "y": 0},
+ {"matrix": [11, 1], "x": 16, "y": 0},
+ {"matrix": [11, 0], "x": 17, "y": 0},
+ {"matrix": [6, 3], "x": 18, "y": 0},
+
+ {"matrix": [4, 0], "x": 0, "y": 1},
+ {"matrix": [4, 1], "x": 1, "y": 1},
+ {"matrix": [4, 2], "x": 2, "y": 1},
+ {"matrix": [4, 3], "x": 3, "y": 1},
+ {"matrix": [4, 4], "x": 4, "y": 1},
+ {"matrix": [4, 5], "x": 5, "y": 1},
+ {"matrix": [4, 6], "x": 6, "y": 1},
+ {"matrix": [4, 7], "x": 7, "y": 1},
+ {"matrix": [4, 8], "x": 8, "y": 1},
+ {"matrix": [10, 8], "x": 9, "y": 1},
+ {"matrix": [10, 7], "x": 10, "y": 1},
+ {"matrix": [10, 5], "x": 11, "y": 1},
+ {"matrix": [10, 4], "x": 12, "y": 1},
+ {"matrix": [10, 6], "x": 13, "y": 1, "w": 2},
+ {"matrix": [10, 2], "x": 15, "y": 1},
+ {"matrix": [10, 1], "x": 16, "y": 1},
+ {"matrix": [10, 0], "x": 17, "y": 1},
+ {"matrix": [6, 4], "x": 18, "y": 1},
+
+ {"matrix": [3, 0], "x": 0, "y": 2, "w": 1.5},
+ {"matrix": [3, 1], "x": 1.5, "y": 2},
+ {"matrix": [3, 2], "x": 2.5, "y": 2},
+ {"matrix": [3, 3], "x": 3.5, "y": 2},
+ {"matrix": [3, 4], "x": 4.5, "y": 2},
+ {"matrix": [3, 5], "x": 5.5, "y": 2},
+ {"matrix": [3, 6], "x": 6.5, "y": 2},
+ {"matrix": [3, 7], "x": 7.5, "y": 2},
+ {"matrix": [3, 8], "x": 8.5, "y": 2},
+ {"matrix": [9, 8], "x": 9.5, "y": 2},
+ {"matrix": [9, 7], "x": 10.5, "y": 2},
+ {"matrix": [9, 5], "x": 11.5, "y": 2},
+ {"matrix": [9, 4], "x": 12.5, "y": 2},
+ {"matrix": [9, 6], "x": 15, "y": 2},
+ {"matrix": [9, 2], "x": 16, "y": 2},
+ {"matrix": [9, 1], "x": 17, "y": 2},
+ {"matrix": [8, 0], "x": 18, "y": 2, "h": 2},
+
+ {"matrix": [2, 0], "x": 0, "y": 3, "w": 1.75},
+ {"matrix": [2, 1], "x": 1.75, "y": 3},
+ {"matrix": [2, 2], "x": 2.75, "y": 3},
+ {"matrix": [2, 3], "x": 3.75, "y": 3},
+ {"matrix": [2, 4], "x": 4.75, "y": 3},
+ {"matrix": [2, 5], "x": 5.75, "y": 3},
+ {"matrix": [2, 6], "x": 6.75, "y": 3},
+ {"matrix": [2, 7], "x": 7.75, "y": 3},
+ {"matrix": [2, 8], "x": 8.75, "y": 3},
+ {"matrix": [8, 8], "x": 9.75, "y": 3},
+ {"matrix": [8, 7], "x": 10.75, "y": 3},
+ {"matrix": [8, 5], "x": 11.75, "y": 3},
+ {"matrix": [8, 4], "x": 12.75, "y": 3},
+ {"matrix": [9, 3], "x": 13.75, "y": 2, "w": 1.25, "h": 2},
+ {"matrix": [8, 6], "x": 15, "y": 3},
+ {"matrix": [8, 2], "x": 16, "y": 3},
+ {"matrix": [8, 1], "x": 17, "y": 3},
+
+ {"matrix": [1, 0], "x": 0, "y": 4, "w": 1.25},
+ {"matrix": [1, 1], "x": 1.25, "y": 4},
+ {"matrix": [1, 2], "x": 2.25, "y": 4},
+ {"matrix": [1, 3], "x": 3.25, "y": 4},
+ {"matrix": [1, 4], "x": 4.25, "y": 4},
+ {"matrix": [1, 5], "x": 5.25, "y": 4},
+ {"matrix": [1, 6], "x": 6.25, "y": 4},
+ {"matrix": [1, 7], "x": 7.25, "y": 4},
+ {"matrix": [1, 8], "x": 8.25, "y": 4},
+ {"matrix": [7, 8], "x": 9.25, "y": 4},
+ {"matrix": [7, 7], "x": 10.25, "y": 4},
+ {"matrix": [7, 5], "x": 11.25, "y": 4},
+ {"matrix": [7, 4], "x": 12.25, "y": 4, "w": 1.75},
+ {"matrix": [7, 3], "x": 14, "y": 4},
+ {"matrix": [7, 6], "x": 15, "y": 4},
+ {"matrix": [7, 2], "x": 16, "y": 4},
+ {"matrix": [7, 1], "x": 17, "y": 4},
+ {"matrix": [6, 0], "x": 18, "y": 4, "h": 2},
+
+ {"matrix": [0, 0], "x": 0, "y": 5, "w": 1.25},
+ {"matrix": [0, 1], "x": 1.25, "y": 5, "w": 1.25},
+ {"matrix": [0, 2], "x": 2.5, "y": 5, "w": 1.25},
+ {"matrix": [0, 6], "x": 3.75, "y": 5, "w": 6.25},
+ {"matrix": [0, 8], "x": 10, "y": 5},
+ {"matrix": [0, 7], "x": 11, "y": 5},
+ {"matrix": [0, 5], "x": 12, "y": 5},
+ {"matrix": [0, 4], "x": 13, "y": 5},
+ {"matrix": [0, 3], "x": 14, "y": 5},
+ {"matrix": [6, 6], "x": 15, "y": 5},
+ {"matrix": [6, 2], "x": 16, "y": 5},
+ {"matrix": [6, 1], "x": 17, "y": 5}
+ ]
+ },
+ "LAYOUT_96_iso_rwkl": {
+ "layout": [
+ {"matrix": [5, 0], "x": 0, "y": 0},
+ {"matrix": [5, 1], "x": 1, "y": 0},
+ {"matrix": [5, 2], "x": 2, "y": 0},
+ {"matrix": [5, 3], "x": 3, "y": 0},
+ {"matrix": [5, 4], "x": 4, "y": 0},
+ {"matrix": [5, 5], "x": 5, "y": 0},
+ {"matrix": [5, 6], "x": 6, "y": 0},
+ {"matrix": [5, 7], "x": 7, "y": 0},
+ {"matrix": [5, 8], "x": 8, "y": 0},
+ {"matrix": [11, 8], "x": 9, "y": 0},
+ {"matrix": [11, 7], "x": 10, "y": 0},
+ {"matrix": [11, 5], "x": 11, "y": 0},
+ {"matrix": [11, 4], "x": 12, "y": 0},
+ {"matrix": [11, 3], "x": 13, "y": 0},
+ {"matrix": [11, 6], "x": 14, "y": 0},
+ {"matrix": [11, 2], "x": 15, "y": 0},
+ {"matrix": [11, 1], "x": 16, "y": 0},
+ {"matrix": [11, 0], "x": 17, "y": 0},
+ {"matrix": [6, 3], "x": 18, "y": 0},
+
+ {"matrix": [4, 0], "x": 0, "y": 1},
+ {"matrix": [4, 1], "x": 1, "y": 1},
+ {"matrix": [4, 2], "x": 2, "y": 1},
+ {"matrix": [4, 3], "x": 3, "y": 1},
+ {"matrix": [4, 4], "x": 4, "y": 1},
+ {"matrix": [4, 5], "x": 5, "y": 1},
+ {"matrix": [4, 6], "x": 6, "y": 1},
+ {"matrix": [4, 7], "x": 7, "y": 1},
+ {"matrix": [4, 8], "x": 8, "y": 1},
+ {"matrix": [10, 8], "x": 9, "y": 1},
+ {"matrix": [10, 7], "x": 10, "y": 1},
+ {"matrix": [10, 5], "x": 11, "y": 1},
+ {"matrix": [10, 4], "x": 12, "y": 1},
+ {"matrix": [10, 6], "x": 13, "y": 1, "w": 2},
+ {"matrix": [10, 2], "x": 15, "y": 1},
+ {"matrix": [10, 1], "x": 16, "y": 1},
+ {"matrix": [10, 0], "x": 17, "y": 1},
+ {"matrix": [6, 4], "x": 18, "y": 1},
+
+ {"matrix": [3, 0], "x": 0, "y": 2, "w": 1.5},
+ {"matrix": [3, 1], "x": 1.5, "y": 2},
+ {"matrix": [3, 2], "x": 2.5, "y": 2},
+ {"matrix": [3, 3], "x": 3.5, "y": 2},
+ {"matrix": [3, 4], "x": 4.5, "y": 2},
+ {"matrix": [3, 5], "x": 5.5, "y": 2},
+ {"matrix": [3, 6], "x": 6.5, "y": 2},
+ {"matrix": [3, 7], "x": 7.5, "y": 2},
+ {"matrix": [3, 8], "x": 8.5, "y": 2},
+ {"matrix": [9, 8], "x": 9.5, "y": 2},
+ {"matrix": [9, 7], "x": 10.5, "y": 2},
+ {"matrix": [9, 5], "x": 11.5, "y": 2},
+ {"matrix": [9, 4], "x": 12.5, "y": 2},
+ {"matrix": [9, 6], "x": 15, "y": 2},
+ {"matrix": [9, 2], "x": 16, "y": 2},
+ {"matrix": [9, 1], "x": 17, "y": 2},
+ {"matrix": [8, 0], "x": 18, "y": 2, "h": 2},
+
+ {"matrix": [2, 0], "x": 0, "y": 3, "w": 1.75},
+ {"matrix": [2, 1], "x": 1.75, "y": 3},
+ {"matrix": [2, 2], "x": 2.75, "y": 3},
+ {"matrix": [2, 3], "x": 3.75, "y": 3},
+ {"matrix": [2, 4], "x": 4.75, "y": 3},
+ {"matrix": [2, 5], "x": 5.75, "y": 3},
+ {"matrix": [2, 6], "x": 6.75, "y": 3},
+ {"matrix": [2, 7], "x": 7.75, "y": 3},
+ {"matrix": [2, 8], "x": 8.75, "y": 3},
+ {"matrix": [8, 8], "x": 9.75, "y": 3},
+ {"matrix": [8, 7], "x": 10.75, "y": 3},
+ {"matrix": [8, 5], "x": 11.75, "y": 3},
+ {"matrix": [8, 4], "x": 12.75, "y": 3},
+ {"matrix": [9, 3], "x": 13.75, "y": 2, "w": 1.25, "h": 2},
+ {"matrix": [8, 6], "x": 15, "y": 3},
+ {"matrix": [8, 2], "x": 16, "y": 3},
+ {"matrix": [8, 1], "x": 17, "y": 3},
+
+ {"matrix": [1, 0], "x": 0, "y": 4, "w": 1.25},
+ {"matrix": [1, 1], "x": 1.25, "y": 4},
+ {"matrix": [1, 2], "x": 2.25, "y": 4},
+ {"matrix": [1, 3], "x": 3.25, "y": 4},
+ {"matrix": [1, 4], "x": 4.25, "y": 4},
+ {"matrix": [1, 5], "x": 5.25, "y": 4},
+ {"matrix": [1, 6], "x": 6.25, "y": 4},
+ {"matrix": [1, 7], "x": 7.25, "y": 4},
+ {"matrix": [1, 8], "x": 8.25, "y": 4},
+ {"matrix": [7, 8], "x": 9.25, "y": 4},
+ {"matrix": [7, 7], "x": 10.25, "y": 4},
+ {"matrix": [7, 5], "x": 11.25, "y": 4},
+ {"matrix": [7, 4], "x": 12.25, "y": 4, "w": 1.75},
+ {"matrix": [7, 3], "x": 14, "y": 4},
+ {"matrix": [7, 6], "x": 15, "y": 4},
+ {"matrix": [7, 2], "x": 16, "y": 4},
+ {"matrix": [7, 1], "x": 17, "y": 4},
+ {"matrix": [6, 0], "x": 18, "y": 4, "h": 2},
+
+ {"matrix": [0, 0], "x": 0, "y": 5, "w": 1.25},
+ {"matrix": [0, 1], "x": 1.25, "y": 5, "w": 1.25},
+ {"matrix": [0, 2], "x": 2.5, "y": 5, "w": 1.25},
+ {"matrix": [0, 6], "x": 3.75, "y": 5, "w": 6.25},
+ {"matrix": [0, 8], "x": 10, "y": 5, "w": 1.5},
+ {"matrix": [0, 5], "x": 11.5, "y": 5, "w": 1.5},
+ {"matrix": [0, 4], "x": 13, "y": 5},
+ {"matrix": [0, 3], "x": 14, "y": 5},
+ {"matrix": [6, 6], "x": 15, "y": 5},
+ {"matrix": [6, 2], "x": 16, "y": 5},
+ {"matrix": [6, 1], "x": 17, "y": 5}
+ ]
+ },
+ "LAYOUT_96_ansi": {
+ "layout": [
+ {"matrix": [5, 0], "x": 0, "y": 0},
+ {"matrix": [5, 1], "x": 1, "y": 0},
+ {"matrix": [5, 2], "x": 2, "y": 0},
+ {"matrix": [5, 3], "x": 3, "y": 0},
+ {"matrix": [5, 4], "x": 4, "y": 0},
+ {"matrix": [5, 5], "x": 5, "y": 0},
+ {"matrix": [5, 6], "x": 6, "y": 0},
+ {"matrix": [5, 7], "x": 7, "y": 0},
+ {"matrix": [5, 8], "x": 8, "y": 0},
+ {"matrix": [11, 8], "x": 9, "y": 0},
+ {"matrix": [11, 7], "x": 10, "y": 0},
+ {"matrix": [11, 5], "x": 11, "y": 0},
+ {"matrix": [11, 4], "x": 12, "y": 0},
+ {"matrix": [11, 3], "x": 13, "y": 0},
+ {"matrix": [11, 6], "x": 14, "y": 0},
+ {"matrix": [11, 2], "x": 15, "y": 0},
+ {"matrix": [11, 1], "x": 16, "y": 0},
+ {"matrix": [11, 0], "x": 17, "y": 0},
+ {"matrix": [6, 3], "x": 18, "y": 0},
+
+ {"matrix": [4, 0], "x": 0, "y": 1},
+ {"matrix": [4, 1], "x": 1, "y": 1},
+ {"matrix": [4, 2], "x": 2, "y": 1},
+ {"matrix": [4, 3], "x": 3, "y": 1},
+ {"matrix": [4, 4], "x": 4, "y": 1},
+ {"matrix": [4, 5], "x": 5, "y": 1},
+ {"matrix": [4, 6], "x": 6, "y": 1},
+ {"matrix": [4, 7], "x": 7, "y": 1},
+ {"matrix": [4, 8], "x": 8, "y": 1},
+ {"matrix": [10, 8], "x": 9, "y": 1},
+ {"matrix": [10, 7], "x": 10, "y": 1},
+ {"matrix": [10, 5], "x": 11, "y": 1},
+ {"matrix": [10, 4], "x": 12, "y": 1},
+ {"matrix": [10, 6], "x": 13, "y": 1, "w": 2},
+ {"matrix": [10, 2], "x": 15, "y": 1},
+ {"matrix": [10, 1], "x": 16, "y": 1},
+ {"matrix": [10, 0], "x": 17, "y": 1},
+ {"matrix": [6, 4], "x": 18, "y": 1},
+
+ {"matrix": [3, 0], "x": 0, "y": 2, "w": 1.5},
+ {"matrix": [3, 1], "x": 1.5, "y": 2},
+ {"matrix": [3, 2], "x": 2.5, "y": 2},
+ {"matrix": [3, 3], "x": 3.5, "y": 2},
+ {"matrix": [3, 4], "x": 4.5, "y": 2},
+ {"matrix": [3, 5], "x": 5.5, "y": 2},
+ {"matrix": [3, 6], "x": 6.5, "y": 2},
+ {"matrix": [3, 7], "x": 7.5, "y": 2},
+ {"matrix": [3, 8], "x": 8.5, "y": 2},
+ {"matrix": [9, 8], "x": 9.5, "y": 2},
+ {"matrix": [9, 7], "x": 10.5, "y": 2},
+ {"matrix": [9, 5], "x": 11.5, "y": 2},
+ {"matrix": [9, 4], "x": 12.5, "y": 2},
+ {"matrix": [9, 3], "x": 13.5, "y": 2, "w": 1.5},
+ {"matrix": [9, 6], "x": 15, "y": 2},
+ {"matrix": [9, 2], "x": 16, "y": 2},
+ {"matrix": [9, 1], "x": 17, "y": 2},
+ {"matrix": [8, 0], "x": 18, "y": 2, "h": 2},
+
+ {"matrix": [2, 0], "x": 0, "y": 3, "w": 1.75},
+ {"matrix": [2, 1], "x": 1.75, "y": 3},
+ {"matrix": [2, 2], "x": 2.75, "y": 3},
+ {"matrix": [2, 3], "x": 3.75, "y": 3},
+ {"matrix": [2, 4], "x": 4.75, "y": 3},
+ {"matrix": [2, 5], "x": 5.75, "y": 3},
+ {"matrix": [2, 6], "x": 6.75, "y": 3},
+ {"matrix": [2, 7], "x": 7.75, "y": 3},
+ {"matrix": [2, 8], "x": 8.75, "y": 3},
+ {"matrix": [8, 8], "x": 9.75, "y": 3},
+ {"matrix": [8, 7], "x": 10.75, "y": 3},
+ {"matrix": [8, 5], "x": 11.75, "y": 3},
+ {"matrix": [8, 4], "x": 12.75, "y": 3, "w": 2.25},
+ {"matrix": [8, 6], "x": 15, "y": 3},
+ {"matrix": [8, 2], "x": 16, "y": 3},
+ {"matrix": [8, 1], "x": 17, "y": 3},
+
+ {"matrix": [1, 0], "x": 0, "y": 4, "w": 2.25},
+ {"matrix": [1, 2], "x": 2.25, "y": 4},
+ {"matrix": [1, 3], "x": 3.25, "y": 4},
+ {"matrix": [1, 4], "x": 4.25, "y": 4},
+ {"matrix": [1, 5], "x": 5.25, "y": 4},
+ {"matrix": [1, 6], "x": 6.25, "y": 4},
+ {"matrix": [1, 7], "x": 7.25, "y": 4},
+ {"matrix": [1, 8], "x": 8.25, "y": 4},
+ {"matrix": [7, 8], "x": 9.25, "y": 4},
+ {"matrix": [7, 7], "x": 10.25, "y": 4},
+ {"matrix": [7, 5], "x": 11.25, "y": 4},
+ {"matrix": [7, 4], "x": 12.25, "y": 4, "w": 1.75},
+ {"matrix": [7, 3], "x": 14, "y": 4},
+ {"matrix": [7, 6], "x": 15, "y": 4},
+ {"matrix": [7, 2], "x": 16, "y": 4},
+ {"matrix": [7, 1], "x": 17, "y": 4},
+ {"matrix": [6, 0], "x": 18, "y": 4, "h": 2},
+
+ {"matrix": [0, 0], "x": 0, "y": 5, "w": 1.25},
+ {"matrix": [0, 1], "x": 1.25, "y": 5, "w": 1.25},
+ {"matrix": [0, 2], "x": 2.5, "y": 5, "w": 1.25},
+ {"matrix": [0, 6], "x": 3.75, "y": 5, "w": 6.25},
+ {"matrix": [0, 8], "x": 10, "y": 5},
+ {"matrix": [0, 7], "x": 11, "y": 5},
+ {"matrix": [0, 5], "x": 12, "y": 5},
+ {"matrix": [0, 4], "x": 13, "y": 5},
+ {"matrix": [0, 3], "x": 14, "y": 5},
+ {"matrix": [6, 6], "x": 15, "y": 5},
+ {"matrix": [6, 2], "x": 16, "y": 5},
+ {"matrix": [6, 1], "x": 17, "y": 5}
+ ]
+ },
+ "LAYOUT_96_ansi_rwkl": {
+ "layout": [
+ {"matrix": [5, 0], "x": 0, "y": 0},
+ {"matrix": [5, 1], "x": 1, "y": 0},
+ {"matrix": [5, 2], "x": 2, "y": 0},
+ {"matrix": [5, 3], "x": 3, "y": 0},
+ {"matrix": [5, 4], "x": 4, "y": 0},
+ {"matrix": [5, 5], "x": 5, "y": 0},
+ {"matrix": [5, 6], "x": 6, "y": 0},
+ {"matrix": [5, 7], "x": 7, "y": 0},
+ {"matrix": [5, 8], "x": 8, "y": 0},
+ {"matrix": [11, 8], "x": 9, "y": 0},
+ {"matrix": [11, 7], "x": 10, "y": 0},
+ {"matrix": [11, 5], "x": 11, "y": 0},
+ {"matrix": [11, 4], "x": 12, "y": 0},
+ {"matrix": [11, 3], "x": 13, "y": 0},
+ {"matrix": [11, 6], "x": 14, "y": 0},
+ {"matrix": [11, 2], "x": 15, "y": 0},
+ {"matrix": [11, 1], "x": 16, "y": 0},
+ {"matrix": [11, 0], "x": 17, "y": 0},
+ {"matrix": [6, 3], "x": 18, "y": 0},
+
+ {"matrix": [4, 0], "x": 0, "y": 1},
+ {"matrix": [4, 1], "x": 1, "y": 1},
+ {"matrix": [4, 2], "x": 2, "y": 1},
+ {"matrix": [4, 3], "x": 3, "y": 1},
+ {"matrix": [4, 4], "x": 4, "y": 1},
+ {"matrix": [4, 5], "x": 5, "y": 1},
+ {"matrix": [4, 6], "x": 6, "y": 1},
+ {"matrix": [4, 7], "x": 7, "y": 1},
+ {"matrix": [4, 8], "x": 8, "y": 1},
+ {"matrix": [10, 8], "x": 9, "y": 1},
+ {"matrix": [10, 7], "x": 10, "y": 1},
+ {"matrix": [10, 5], "x": 11, "y": 1},
+ {"matrix": [10, 4], "x": 12, "y": 1},
+ {"matrix": [10, 6], "x": 13, "y": 1, "w": 2},
+ {"matrix": [10, 2], "x": 15, "y": 1},
+ {"matrix": [10, 1], "x": 16, "y": 1},
+ {"matrix": [10, 0], "x": 17, "y": 1},
+ {"matrix": [6, 4], "x": 18, "y": 1},
+
+ {"matrix": [3, 0], "x": 0, "y": 2, "w": 1.5},
+ {"matrix": [3, 1], "x": 1.5, "y": 2},
+ {"matrix": [3, 2], "x": 2.5, "y": 2},
+ {"matrix": [3, 3], "x": 3.5, "y": 2},
+ {"matrix": [3, 4], "x": 4.5, "y": 2},
+ {"matrix": [3, 5], "x": 5.5, "y": 2},
+ {"matrix": [3, 6], "x": 6.5, "y": 2},
+ {"matrix": [3, 7], "x": 7.5, "y": 2},
+ {"matrix": [3, 8], "x": 8.5, "y": 2},
+ {"matrix": [9, 8], "x": 9.5, "y": 2},
+ {"matrix": [9, 7], "x": 10.5, "y": 2},
+ {"matrix": [9, 5], "x": 11.5, "y": 2},
+ {"matrix": [9, 4], "x": 12.5, "y": 2},
+ {"matrix": [9, 3], "x": 13.5, "y": 2, "w": 1.5},
+ {"matrix": [9, 6], "x": 15, "y": 2},
+ {"matrix": [9, 2], "x": 16, "y": 2},
+ {"matrix": [9, 1], "x": 17, "y": 2},
+ {"matrix": [8, 0], "x": 18, "y": 2, "h": 2},
+
+ {"matrix": [2, 0], "x": 0, "y": 3, "w": 1.75},
+ {"matrix": [2, 1], "x": 1.75, "y": 3},
+ {"matrix": [2, 2], "x": 2.75, "y": 3},
+ {"matrix": [2, 3], "x": 3.75, "y": 3},
+ {"matrix": [2, 4], "x": 4.75, "y": 3},
+ {"matrix": [2, 5], "x": 5.75, "y": 3},
+ {"matrix": [2, 6], "x": 6.75, "y": 3},
+ {"matrix": [2, 7], "x": 7.75, "y": 3},
+ {"matrix": [2, 8], "x": 8.75, "y": 3},
+ {"matrix": [8, 8], "x": 9.75, "y": 3},
+ {"matrix": [8, 7], "x": 10.75, "y": 3},
+ {"matrix": [8, 5], "x": 11.75, "y": 3},
+ {"matrix": [8, 4], "x": 12.75, "y": 3, "w": 2.25},
+ {"matrix": [8, 6], "x": 15, "y": 3},
+ {"matrix": [8, 2], "x": 16, "y": 3},
+ {"matrix": [8, 1], "x": 17, "y": 3},
+
+ {"matrix": [1, 0], "x": 0, "y": 4, "w": 2.25},
+ {"matrix": [1, 2], "x": 2.25, "y": 4},
+ {"matrix": [1, 3], "x": 3.25, "y": 4},
+ {"matrix": [1, 4], "x": 4.25, "y": 4},
+ {"matrix": [1, 5], "x": 5.25, "y": 4},
+ {"matrix": [1, 6], "x": 6.25, "y": 4},
+ {"matrix": [1, 7], "x": 7.25, "y": 4},
+ {"matrix": [1, 8], "x": 8.25, "y": 4},
+ {"matrix": [7, 8], "x": 9.25, "y": 4},
+ {"matrix": [7, 7], "x": 10.25, "y": 4},
+ {"matrix": [7, 5], "x": 11.25, "y": 4},
+ {"matrix": [7, 4], "x": 12.25, "y": 4, "w": 1.75},
+ {"matrix": [7, 3], "x": 14, "y": 4},
+ {"matrix": [7, 6], "x": 15, "y": 4},
+ {"matrix": [7, 2], "x": 16, "y": 4},
+ {"matrix": [7, 1], "x": 17, "y": 4},
+ {"matrix": [6, 0], "x": 18, "y": 4, "h": 2},
+
+ {"matrix": [0, 0], "x": 0, "y": 5, "w": 1.25},
+ {"matrix": [0, 1], "x": 1.25, "y": 5, "w": 1.25},
+ {"matrix": [0, 2], "x": 2.5, "y": 5, "w": 1.25},
+ {"matrix": [0, 6], "x": 3.75, "y": 5, "w": 6.25},
+ {"matrix": [0, 8], "x": 10, "y": 5, "w": 1.5},
+ {"matrix": [0, 5], "x": 11.5, "y": 5, "w": 1.5},
+ {"matrix": [0, 4], "x": 13, "y": 5},
+ {"matrix": [0, 3], "x": 14, "y": 5},
+ {"matrix": [6, 6], "x": 15, "y": 5},
+ {"matrix": [6, 2], "x": 16, "y": 5},
+ {"matrix": [6, 1], "x": 17, "y": 5}
+ ]
+ }
+ }
+}
diff --git a/keyboards/ymdk/melody96/hotswap/keymaps/default/keymap.c b/keyboards/ymdk/melody96/hotswap/keymaps/default/keymap.c
new file mode 100644
index 0000000000..90a18f965f
--- /dev/null
+++ b/keyboards/ymdk/melody96/hotswap/keymaps/default/keymap.c
@@ -0,0 +1,23 @@
+// Copyright 2023 James Young for QMK (@noroadsleft)
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#include QMK_KEYBOARD_H
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ [0] = LAYOUT_96_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_PSCR, KC_HOME, KC_END, KC_PGUP, KC_PGDN, 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_NUM, KC_PSLS, KC_PAST, KC_PMNS,
+ 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_P7, KC_P8, KC_P9, KC_PPLS,
+ KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, KC_P4, KC_P5, KC_P6,
+ 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_P1, KC_P2, KC_P3, KC_PENT,
+ KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RCTL, MO(1), KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT
+ ),
+ [1] = LAYOUT_96_iso(
+ QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, RGB_TOG, _______, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, _______, _______, _______, _______,
+ BL_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, BL_DOWN, BL_TOGG, BL_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
+ )
+};
diff --git a/keyboards/ymdk/melody96/hotswap/keymaps/via/keymap.c b/keyboards/ymdk/melody96/hotswap/keymaps/via/keymap.c
new file mode 100644
index 0000000000..90a18f965f
--- /dev/null
+++ b/keyboards/ymdk/melody96/hotswap/keymaps/via/keymap.c
@@ -0,0 +1,23 @@
+// Copyright 2023 James Young for QMK (@noroadsleft)
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#include QMK_KEYBOARD_H
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ [0] = LAYOUT_96_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_PSCR, KC_HOME, KC_END, KC_PGUP, KC_PGDN, 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_NUM, KC_PSLS, KC_PAST, KC_PMNS,
+ 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_P7, KC_P8, KC_P9, KC_PPLS,
+ KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, KC_P4, KC_P5, KC_P6,
+ 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_P1, KC_P2, KC_P3, KC_PENT,
+ KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RCTL, MO(1), KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT
+ ),
+ [1] = LAYOUT_96_iso(
+ QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, RGB_TOG, _______, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, _______, _______, _______, _______,
+ BL_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, BL_DOWN, BL_TOGG, BL_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
+ )
+};
diff --git a/keyboards/kprepublic/bm40hsrgb/keymaps/via/rules.mk b/keyboards/ymdk/melody96/hotswap/keymaps/via/rules.mk
index 36b7ba9cbc..36b7ba9cbc 100644
--- a/keyboards/kprepublic/bm40hsrgb/keymaps/via/rules.mk
+++ b/keyboards/ymdk/melody96/hotswap/keymaps/via/rules.mk
diff --git a/keyboards/ymdk/melody96/keymaps/zunger/config.h b/keyboards/ymdk/melody96/hotswap/keymaps/zunger/config.h
index cc06440e0d..cc06440e0d 100644
--- a/keyboards/ymdk/melody96/keymaps/zunger/config.h
+++ b/keyboards/ymdk/melody96/hotswap/keymaps/zunger/config.h
diff --git a/keyboards/ymdk/melody96/hotswap/keymaps/zunger/keymap.c b/keyboards/ymdk/melody96/hotswap/keymaps/zunger/keymap.c
new file mode 100644
index 0000000000..c84f656080
--- /dev/null
+++ b/keyboards/ymdk/melody96/hotswap/keymaps/zunger/keymap.c
@@ -0,0 +1,489 @@
+/* Copyright 2019 Yonatan Zunger
+ *
+ * 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 <assert.h>
+
+// This keymap is designed to make it easy to type in a wide variety of languages, as well as
+// generate mathematical symbols (à la Space Cadet).
+//
+// LAYER MAGIC (aka, typing in many alphabets)
+// This keyboard has three "base" layers: QWERTY, GREEK, and CADET. The GREEK and CADET layers
+// are actually full of Unicode points, and so which point they generate depends on things like
+// whether the shift key is down. To handle this, each of those layers is actually *two* layers, one
+// with and one without shift. In our main loop, we manage modifier state detection, as well as
+// layer switch detection, and pick the right layer on the fly.
+// Layers are selected with a combination of three keys. The "Greek" and "Cadet" keys act like
+// modifiers: When held down, they transiently select the indicated base layer. The "Layer Lock" key
+// locks the value of the base layer at whatever is currently held; so e.g., if you hold Greek +
+// Layer Lock, you'll stay in Greek mode until you hit Layer Lock again without any of the mods
+// held.
+// TODO: This system of layer selection is nice for math, but it's not very nice for actually
+// typing in multiple languages. It seems like a better plan will be to reserve one key for each
+// base layer -- maybe fn + F(n) -- which can either be held as a modifier or tapped to switch
+// layers. That will open up adding some more languages, like Yiddish, but to do this effectively
+// we'll need to find a good UI with which to show the currently selected layer. Need to check what
+// the melody96 has in the way of outputs (LEDs, sound, etc).
+//
+// ACCENT MAGIC (aka, typing conveniently in Romance languages)
+// We want to support easy typing of diacritical marks. We can't rely on the host OS for this,
+// because (e.g.) on MacOS, to make any of the other stuff work, we need to be using the Unicode
+// input method at the OS level, which breaks all the normal accent stuff on that end. So we do it
+// ourselves. Accents can actually be invoked in two different ways: one fast and very compatible,
+// one very versatile but with occasional compatibility problems.
+//
+// THE MAIN WAY: You can hit one of the "accent request" key patterns immediately *before* typing
+// a letter to be accented. It will emit the corresponding accented Unicode. For example, you can
+// hit fn-e to request an acute accent, followed by i, and it will output í, U+00ED LATIN SMALL
+// LETTER I WITH ACUTE. These "combined characters" are in Unicode normal form C (NFKC), which is
+// important because many European websites and apps, in particular, tend to behave very badly
+// (misunderstanding and/or crashing) when presented with characters in other forms! The catch is
+// that this only works for the various combinations of letters and accents found in the Latin-1
+// supplement block of Unicode -- basically, things you need for Western European languages.
+//
+// (NB: If you make an accent request followed by a letter which can't take the corresponding
+// accent, it will output the uncombined form of the accent followed by whatever you typed; so
+// e.g., if you hit fn-e followed by f, it will output ´f, U+00B4 ACUTE ACCENT followed by an
+// ordinary f. This is very similar to the default behavior of MacOS.)
+//
+// THE FLEXIBLE WAY: If you hit the accent request with a shift -- e.g., fn-shift-e -- it will
+// instead immediately output the corresponding *combining* Unicode accent mark, which will modify
+// the *previous* character you typed. For example, if you type i followed by fn-shift-e, it will
+// generate í. But don't be fooled by visual similarity: unlike the previous example, this one is
+// an ordinary i followed by U+0301 COMBINING ACUTE ACCENT. It's actually *two symbols*, and this
+// is Unicode normal form D (NFKD). Unlike NFKC, there are NFKD representations of far more
+// combinations of letters and accents, and it's easy to add more of these if you need. (The NFKC
+// representation of such combinations is identical to their NFKD representation)
+//
+// Programs that try to compare Unicode strings *should* first normalize them by converting them
+// all into one normal form or another, and there are functions in every programming language to
+// do this -- e.g., JavaScript's string.normalize() -- but lots of programmers fail to understand
+// this, and so write code that massively freaks out when it encounters the wrong form.
+//
+// The current accent request codes are modeled on the ones in MacOS.
+//
+// fn+` Grave accent (`)
+// fn+e Acute accent (´)
+// fn+i Circumflex (^)
+// fn+u Diaresis / umlaut / trema (¨)
+// fn+c Cedilla (¸)
+// fn+n Tilde (˜)
+//
+// Together, these functions make for a nice "polyglot" keyboard: one that can easily type in a wide
+// variety of languages, which is very useful for people who, well, need to type in a bunch of
+// languages.
+//
+// The major TODOs are:
+// - Update the layer selection logic (and add visible layer cues);
+// - Factor the code below so that the data layers are more clearly separated from the code logic,
+// so that other users of this keymap can easily add whichever alphabets they need without
+// having to deeply understand the implementation.
+
+
+enum custom_keycodes {
+ // We provide special layer management keys:
+ // GREEK triggers the Greek (aka "Front") layer, or the SHIFTGREEK layer when shift is held.
+ // (Because we use Unicode, we need to implement shift-handling at the firmware level,
+ // rather than the OS level like we do in the QWERTY layer)
+ // CADET or GREEK+ALT triggers the Cadet (aka "Top") layer, or the SHIFTCADET layer when
+ // shift is held.
+ // LAYER_LOCK locks the "base" layer (i.e., QWERTY, GREEK, or CADET) to the value which is
+ // pressed at the moment that it is being released. When a layer lock is set, the
+ // analogous layer modifier key is reversed; e.g., if you lock the GREEK layer, then the
+ // GREEK button bounces you back to QWERTY.
+ //
+ // We also parse the shift, alt, and caps lock keys to provide management of those which is
+ // compatible with these various layers.
+ KC_GREEK = SAFE_RANGE,
+ KC_CADET,
+ KC_LAYER_LOCK,
+
+ // These are the keycodes generated by the various "accent request" keystrokes.
+ KC_ACCENT_START,
+ KC_CGRV = KC_ACCENT_START, // Grave accent
+ KC_CAGU, // Acute accent
+ KC_CDIA, // Diaresis / umlaut / trema
+ KC_CCIR, // Circumflex
+ KC_CCED, // Cedilla
+ KC_CTIL, // Tilde
+ KC_ACCENT_END,
+};
+
+enum layers_keymap {
+ _QWERTY = 0,
+ _FUNCTION,
+
+ _GREEK,
+ _SHIFTGREEK,
+ _CADET,
+ _SHIFTCADET,
+};
+
+// This is so that H(xxxx) has the same width as _______, which makes the grids more legible.
+#define H(x) UC(0x##x)
+#define MO_FN MO(_FUNCTION)
+#define KC_LLCK KC_LAYER_LOCK
+
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ // NB: Using GESC for escape in the QWERTY layer as a temporary hack because I messed up the
+ // switch on the KC_GRV key; change back to KC_ESC once this is fixed.
+ [_QWERTY] = LAYOUT_96_ansi(
+ QK_GESC, 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_HOME, KC_END, KC_PGUP, KC_PGDN, KC_MPLY, KC_BRK,
+ 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_LLCK, KC_PSLS, KC_PAST, KC_PMNS,
+ 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_P7, KC_P8, KC_P9,
+ 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_ENT, KC_P4, KC_P5, KC_P6, KC_PPLS,
+ 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_P1, KC_P2, KC_P3,
+ KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, MO_FN, KC_GREEK,KC_CADET,KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT, KC_PENT),
+ /* The Greek layers. Shown here are the QWERTY layer (for visual reference) and the two Greek
+ * layers.
+ * ,----------------------------------------------------------------------------
+ * | ` |F1 |F2 |F3 |F4 |F5 |F6 |F7 |F8 |F9 |F10|F11|F12|HOM|END|PGU|PGD|MUT|BRK| QWERTY
+ * | ` | ₁ | ₂ | ₃ | ₄ | ₅ | ₆ | ₇ | ₈ | ₉ | ₀ | ₋ | ₊ | ₍ | ₎ | | | | | SHIFTGREEK
+ * | ` | ¹ | ² | ³ | ⁴ | ⁵ | ⁶ | ⁷ | ⁸ | ⁹ | ⁰ | ⁻ | ⁺ | ⁽ | ⁾ | | | | | GREEK
+ * |---------------------------------------------------------------------------|
+ * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | + | BKSPC |LCK| / | * | - |
+ * | ` | ¿ | | € | | | | | | | | | ≁ | BKSPC |LCK| | ⊗ | |
+ * | | | | | | | | | | | | ∝ | ∼ | BKSPC |LCK| ⊘ | ⊙ | ⊖ |
+ * |---------------------------------------------------------------------------|
+ * | TAB | Q | W | E | R | T | Y | U | I | O | P | [ | ] | \ | 7 | 8 | 9 | |
+ * | | Θ | Ω | Ε | Ρ | Τ | Ψ | Υ | Ι | Ο | Π | | | | | | | |
+ * | | θ | ω | ε | ρ | τ | ψ | υ | ι | ο | π | | | | | | | |
+ * |-----------------------------------------------------------------------| + |
+ * | CTRL | A | S | D | F | G | H | J | K | L | ; | ' | RET | 4 | 5 | 6 | ⊕ |
+ * | CTRL | Α | Σ | Δ | Φ | Γ | Η | | Κ | Λ | … | ∴ | RET | | | | |
+ * | CTRL | α | σ | δ | φ | γ | η | ϑ | κ | λ | ⋯ | ⋅ | RET | | | | |
+ * |-----------------------------------------------------------------------|---|
+ * | SHIFT | Z | X | C | V | B | N | M | , | . | / |SHFT | ↑ | 1 | 2 | 3 | |
+ * | SHIFT | Ζ | Ξ | Χ | ✔ | Β | Ν | Μ | ≲ | ≳ | |SHFT | | | | | |
+ * | SHIFT | ζ | ξ | χ | ς | β | ν | μ | ≪ | ≫ | ∫ |SHFT | | | | | |
+ * |-----------------------------------------------------------------------|ENT|
+ * | CTL | ALT| CMD| SPACE | α | β | γ | ← | ↓ | → | 0 | . | |
+ * | CTL | ALT| CMD| SPACE | α | β | γ | | | | | | |
+ * | CTL | ALT| CMD| SPACE | α | β | γ | | | | | | |
+ * `---------------------------------------------------------------------------'
+ */
+ [_GREEK] = LAYOUT_96_ansi(
+ KC_GRV, H(00b9), H(00b2), H(00b3), H(2074), H(2075), H(2076), H(2077), H(2078), H(2079), H(2070), H(207b), H(207a), H(207d), H(207e), XXXXXXX, XXXXXXX, XXXXXXX, _______,
+ KC_GRV, _______, _______, _______, _______, _______, _______, _______, H(00b0), _______, _______, H(221d), H(223c), _______, _______, H(2298), H(2299), H(2296),
+ _______, H(03b8), H(03c9), H(03b5), H(03c1), H(03c4), H(03c8), H(03c5), H(03b9), H(03bf), H(03c0), KC_LBRC, KC_RBRC, KC_BSLS, KC_P7, KC_P8, KC_P9,
+ _______, H(03b1), H(03c3), H(03b4), H(03c6), H(03b3), H(03b7), H(03d1), H(03ba), H(03bb), H(22ef), H(22c5), _______, KC_P4, KC_P5, KC_P6, H(2295),
+ _______, H(03b6), H(03be), H(03c7), H(03c2), H(03b2), H(03bd), H(03bc), H(226a), H(226b), H(222b), _______, _______, KC_P1, KC_P2, KC_P3,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_P0, KC_PDOT, KC_PENT),
+ [_SHIFTGREEK] = LAYOUT_96_ansi(
+ KC_GRV, H(2081), H(2082), H(2083), H(2084), H(2085), H(2086), H(2087), H(2088), H(2089), H(2080), H(208b), H(208a), H(208d), H(208e), XXXXXXX, XXXXXXX, XXXXXXX, _______,
+ KC_GRV, H(00bf), _______, H(20ac), _______, _______, _______, _______, _______, _______, _______, XXXXXXX, H(2241), _______, _______, XXXXXXX, H(2297), XXXXXXX,
+ _______, H(0398), H(03a9), H(0395), H(03a1), H(03a4), H(03a8), H(03a5), H(0399), H(039f), H(03a0), KC_LBRC, KC_RBRC, KC_BSLS, KC_P7, KC_P8, KC_P9,
+ _______, H(0391), H(03a3), H(0394), H(03a6), H(0393), H(0397), XXXXXXX, H(039a), H(039b), H(2026), H(2234), _______, KC_P4, KC_P5, KC_P6, H(2295),
+ _______, H(0396), H(039e), H(03a7), H(2714), H(0392), H(039d), H(039c), H(2272), H(2273), XXXXXXX, _______, _______, KC_P1, KC_P2, KC_P3,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_P0, KC_PDOT, KC_PENT),
+ /* The Cadet layers. Again, we show the QWERTY layer and the two cadet layers.
+ * ,----------------------------------------------------------------------------
+ * | ` |F1 |F2 |F3 |F4 |F5 |F6 |F7 |F8 |F9 |F10|F11|F12|HOM|END|PGU|PGD|MUT|BRK| QWERTY
+ * | ∅ | | | | | | | | | | | | | | | | | | | SHIFTCADET
+ * | ¬ | | | | | | | | | | | | | | | | | | | CADET
+ * |---------------------------------------------------------------------------|
+ * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | + | BKSPC |LCK| / | * | - |
+ * | ` | ¡ | | £ | | | | | ° | | | * | ∓ | BKSPC |LCK| | | |
+ * | | | | | | | | | | | | | ± | BKSPC |LCK| | × | |
+ * |---------------------------------------------------------------------------|
+ * | TAB | Q | W | E | R | T | Y | U | I | O | P | [ | ] | \ | 7 | 8 | 9 | |
+ * | | ℚ | | | ℝ | ⊆ | ⊇ | | ℵ | ∄ | | ∉ | | | * | * | * | |
+ * | | ∧ | ∨ | ∩ | ∪ | ⊂ | ⊃ | ∀ | ∞ | ∃ | ∂ | ∈ | | | * | * | * | | [1]
+ * |-----------------------------------------------------------------------| + |
+ * | CTRL | A | S | D | F | G | H | J | K | L | ; | ' | RET | 4 | 5 | 6 | ⊕ |
+ * | CTRL | Å | | ∇ | | ⇑ | ⇓ | ⇐ | ⇒ | ⇔ | | | RET | * | * | * | |
+ * | CTRL | ⟘ | ⊤ | ⊢ | ⊣ | ↑ | ↓ | ← | → | ↔ | | | RET | * | * | * | | [1]
+ * |-----------------------------------------------------------------------|---|
+ * | SHIFT | Z | X | C | V | B | N | M | , | . | / |SHFT | ↑ | 1 | 2 | 3 | |
+ * | SHIFT | ℤ | ℂ | | ≉ | ≢ | ℕ | | | | |SHFT | | * | * | * | |
+ * | SHIFT | | ≠ | | ≈ | ≡ | ≤ | ≥ | | | ÷ |SHFT | | * | * | * | | [1]
+ * |-----------------------------------------------------------------------|ENT|
+ * | CTL | ALT| CMD| SPACE | α | β | γ | ← | ↓ | → | 0 | . | |
+ * | CTL | ALT| CMD| SPACE | α | β | γ | | | | | | |
+ * | CTL | ALT| CMD| SPACE | α | β | γ | | | | | | |
+ * `---------------------------------------------------------------------------'
+ * [1] CADET + numpad moves the mouse. SHIFT+CADET+NUMPAD moves it more quickly. CADET+5
+ * clicks the mouse, and SHIFT+CADET+FIVE right-clicks.
+ */
+ [_CADET] = LAYOUT_96_ansi(
+ H(00AC), KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______,
+ KC_GRV, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, H(00b1), _______, _______, XXXXXXX, H(00d7), XXXXXXX,
+ _______, H(2227), H(2228), H(2229), H(222a), H(2282), H(2283), H(2200), H(221e), H(2203), H(2202), H(2208), XXXXXXX, XXXXXXX, KC_P7, KC_P8, KC_P9,
+ _______, H(22a5), H(22a4), H(22a2), H(22a3), H(2191), H(2193), H(2190), H(2192), H(2194), XXXXXXX, XXXXXXX, _______, KC_P4, KC_P5, KC_P6, XXXXXXX,
+ _______, XXXXXXX, H(2260), XXXXXXX, H(2248), H(2261), H(2264), H(2265), XXXXXXX, XXXXXXX, H(00f7), _______, _______, KC_P1, KC_P2, KC_P3,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_P0, KC_PDOT, KC_PENT),
+ [_SHIFTCADET] = LAYOUT_96_ansi(
+ H(2205), KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______,
+ KC_GRV, H(00a1), XXXXXXX, H(00a3), XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, H(2213), _______, _______, XXXXXXX, XXXXXXX, XXXXXXX,
+ _______, H(211a), XXXXXXX, XXXXXXX, H(211d), H(2286), H(2287), XXXXXXX, H(2135), H(2204), XXXXXXX, H(2209), XXXXXXX, XXXXXXX, KC_P7, KC_P8, KC_P9,
+ _______, H(212b), XXXXXXX, H(2207), XXXXXXX, H(21d1), H(21d3), H(21d0), H(21d2), H(21d4), XXXXXXX, XXXXXXX, _______, KC_P4, KC_P5, KC_P6, XXXXXXX,
+ _______, H(2124), H(2102), XXXXXXX, H(2249), H(2262), H(2115), XXXXXXX, XXXXXXX, XXXXXXX, H(00f7), _______, _______, KC_P1, KC_P2, KC_P3,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_P0, KC_PDOT, KC_PENT),
+
+ // Function layer is mostly for keyboard meta-control operations, but also contains the combining
+ // accent marks. These are deliberately placed to match where the analogous controls go on Mac OS.
+ [_FUNCTION] = LAYOUT_96_ansi(
+ KC_CGRV, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, QK_BOOT,
+ KC_CGRV, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, KC_CAGU, _______, _______, _______, KC_CDIA, KC_CCIR, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, UC_MAC, UC_LINX, UC_WIN, UC_BSD, UC_WINC, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, KC_CCED, _______, _______, KC_CTIL, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______),
+};
+
+////////////////////////////////////////////////////////////////////////////////////////////////////
+// Accent implementation
+//
+// In the body of process_record_user, we store an "accent_request", which is the accent keycode if
+// one was just selected, or zero otherwise. When the *next* key is hit, we look up whether the
+// accent request plus that next keycode (plus the state of the shift key) together amount to an
+// interesting combined (NFKC) character, and if so, emit it; otherwise, we emit the accent as a
+// separate character and then process the next key normally. The resulting UI behavior is similar
+// to that of the combining accent keys in MacOS.
+//
+// We store two arrays, depending on whether shift is or isn't held. Each is two-dimensional, with
+// its outer key by the next keycode struck, and the inner key by the accent requested. The outer
+// array has KC_Z + 1 as its upper bound, so that we can save memory by only coding alphabetic keys.
+// The contents are either Unicode code points, or zero to indicate that we don't have a point for
+// this combination.
+
+#define KC_NUM_ACCENTS (KC_ACCENT_END - KC_ACCENT_START)
+#define KC_NUM_SLOTS (KC_Z + 1)
+
+const uint16_t PROGMEM unshifted_accents[KC_NUM_SLOTS][KC_NUM_ACCENTS] = {
+ // KC_CGRV, KC_CAGU, KC_CDIA, KC_CCIR, KC_CCED, KC_CTIL
+ [KC_A] = { 0x00e0, 0x00e1, 0x00e4, 0x00e2, 0, 0x00e3 },
+ [KC_E] = { 0x00e8, 0x00e9, 0x00eb, 0x00ea, 0, 0 },
+ [KC_I] = { 0x00ec, 0x00ed, 0x00ef, 0x00ee, 0, 0 },
+ [KC_O] = { 0x00f2, 0x00f3, 0x00f6, 0x00f4, 0, 0x00f5 },
+ [KC_U] = { 0x00f9, 0x00fa, 0x00fc, 0x00fb, 0, 0 },
+ [KC_Y] = { 0, 0, 0x00ff, 0, 0, 0 },
+ [KC_N] = { 0, 0, 0, 0, 0, 0x00f1 },
+ [KC_C] = { 0, 0, 0, 0, 0x00e7, 0 },
+};
+
+const uint16_t PROGMEM shifted_accents[KC_NUM_SLOTS][KC_NUM_ACCENTS] = {
+ // KC_CGRV, KC_CAGU, KC_CDIA, KC_CCIR, KC_CCED, KC_CTIL
+ [KC_A] = { 0x00c0, 0x00c1, 0x00c4, 0x00c2, 0, 0x00c3 },
+ [KC_E] = { 0x00c8, 0x00c9, 0x00cb, 0x00ca, 0, 0 },
+ [KC_I] = { 0x00cc, 0x00cd, 0x00cf, 0x00ce, 0, 0 },
+ [KC_O] = { 0x00d2, 0x00d3, 0x00d6, 0x00d4, 0, 0x00d5 },
+ [KC_U] = { 0x00d9, 0x00da, 0x00dc, 0x00db, 0, 0 },
+ [KC_Y] = { 0, 0, 0x00df, 0, 0, 0 },
+ [KC_N] = { 0, 0, 0, 0, 0, 0x00d1 },
+ [KC_C] = { 0, 0, 0, 0, 0x00c7, 0 },
+};
+
+// The uncombined and combined forms of the accents, for when we want to emit them as single
+// characters.
+const uint16_t PROGMEM uncombined_accents[KC_NUM_ACCENTS] = {
+ [KC_CGRV - KC_ACCENT_START] = 0x0060,
+ [KC_CAGU - KC_ACCENT_START] = 0x00b4,
+ [KC_CDIA - KC_ACCENT_START] = 0x00a8,
+ [KC_CCIR - KC_ACCENT_START] = 0x005e,
+ [KC_CCED - KC_ACCENT_START] = 0x00b8,
+ [KC_CTIL - KC_ACCENT_START] = 0x02dc,
+};
+
+const uint16_t PROGMEM combined_accents[KC_NUM_ACCENTS] = {
+ [KC_CGRV - KC_ACCENT_START] = 0x0300,
+ [KC_CAGU - KC_ACCENT_START] = 0x0301,
+ [KC_CDIA - KC_ACCENT_START] = 0x0308,
+ [KC_CCIR - KC_ACCENT_START] = 0x0302,
+ [KC_CCED - KC_ACCENT_START] = 0x0327,
+ [KC_CTIL - KC_ACCENT_START] = 0x0303,
+};
+
+// This function manages keypresses that happen after an accent has been selected by an earlier
+// keypress.
+// Args:
+// accent_key: The accent key which was earlier selected. This must be in the range
+// [KC_ACCENT_START, KC_ACCENT_END).
+// keycode: The keycode which was just pressed.
+// is_shifted: The current shift state (as set by a combination of shift and caps lock)
+// force_no_accent: If true, we're in a situation where we want to force there to be no
+// accent combination -- if e.g. we're in a non-QWERTY layer, or if other modifier keys
+// are held.
+//
+// Returns true if the keycode has been completely handled by this function (and so should not be
+// processed further by process_record_user) or false otherwise.
+bool process_key_after_accent(
+ uint16_t accent_key,
+ uint16_t keycode,
+ bool is_shifted,
+ bool force_no_accent
+) {
+ assert(accent_key >= KC_ACCENT_START);
+ assert(accent_key < KC_ACCENT_END);
+ const int accent_index = accent_key - KC_ACCENT_START;
+
+ // If the keycode is outside A..Z, or force_no_accent is set, we know we shouldn't even bother
+ // with a table lookup.
+ if (keycode <= KC_Z && !force_no_accent) {
+ // Pick the correct array. Because this is progmem, we're going to need to do the
+ // two-dimensional array indexing by hand, and so we just cast it to a single-dimensional array.
+ const uint16_t *points = (const uint16_t*)(is_shifted ? shifted_accents : unshifted_accents);
+ const uint16_t code_point = pgm_read_word_near(points + KC_NUM_ACCENTS * keycode + accent_index);
+ if (code_point) {
+ register_unicode(code_point);
+ return true;
+ }
+ }
+
+ // If we get here, there was no accent match. Emit the accent as its own character, and then let
+ // the caller figure out what to do next.
+ register_unicode(pgm_read_word_near(uncombined_accents + accent_index));
+ return false;
+}
+
+// Layer bitfields.
+#define GREEK_LAYER (1UL << _GREEK)
+#define SHIFTGREEK_LAYER (1UL << _SHIFTGREEK)
+#define CADET_LAYER (1UL << _CADET)
+#define SHIFTCADET_LAYER (1UL << _SHIFTCADET)
+// The layers we don't touch.
+#define LAYER_MASK ~(GREEK_LAYER|SHIFTGREEK_LAYER|CADET_LAYER|SHIFTCADET_LAYER)
+
+bool process_record_user(uint16_t keycode, keyrecord_t *record) {
+ // We track these persistent globals and manage them on our own, rather than trying to rely on
+ // get_mods or the like, because this function is called *before* that's updated!
+ static bool shift_held = false;
+ static bool alt_held = false;
+ static bool ctrl_held = false;
+ static bool super_held = false;
+ static bool greek_held = false;
+ static bool cadet_held = false;
+
+ // These are where we remember the values of lock states.
+ static bool shift_lock = false;
+ static int layer_lock = _QWERTY;
+
+ // The accent request, or zero if there isn't one.
+ static uint16_t accent_request = 0;
+
+ // If this is set to true, don't trigger any handling of pending accent requests. That's what we
+ // want to do if e.g. the user just hit the shift key or something.
+ bool ignore_accent_change = !record->event.pressed;
+
+ // Step 1: Process any modifier key state changes, so we can maintain that state.
+ if (keycode == KC_LSFT || keycode == KC_RSFT) {
+ shift_held = record->event.pressed;
+ ignore_accent_change = true;
+ } else if (keycode == KC_LALT || keycode == KC_RALT) {
+ alt_held = record->event.pressed;
+ ignore_accent_change = true;
+ } else if (keycode == KC_LCTL || keycode == KC_RCTL) {
+ ctrl_held = record->event.pressed;
+ ignore_accent_change = true;
+ } else if (keycode == KC_LGUI || keycode == KC_RGUI) {
+ super_held = record->event.pressed;
+ ignore_accent_change = true;
+ } else if (keycode == KC_GREEK) {
+ greek_held = record->event.pressed;
+ ignore_accent_change = true;
+ } else if (keycode == KC_CADET) {
+ cadet_held = record->event.pressed;
+ ignore_accent_change = true;
+ }
+
+ // Step 2: Figure out which layer we're supposed to be in, by transforming all the prior stuff
+ // into layer requests.
+ const bool greek_request = (greek_held && !alt_held);
+ const bool cadet_request = (cadet_held || (greek_held && alt_held));
+
+ // Now, handle the lock keys. We store next_layer_lock in a local variable so that we can
+ // determine the layer to pick right now before we update layer_lock.
+ int next_layer_lock = layer_lock;
+ if (keycode == KC_CAPS) {
+ // If we're in QWERTY mode, caps lock is already going to be managed by the host OS, but by
+ // tracking it ourselves we can also usefully apply it to the GREEK and CADET layers.
+ if (record->event.pressed) {
+ shift_lock = !shift_lock;
+ }
+ } else if (keycode == KC_LAYER_LOCK) {
+ if (record->event.pressed) {
+ if (cadet_request) {
+ next_layer_lock = _CADET;
+ } else if (greek_request) {
+ next_layer_lock = _GREEK;
+ } else {
+ next_layer_lock = _QWERTY;
+ }
+ }
+ }
+
+ // OK! Now we know which buttons are being held, and the current and upcoming states of the locks.
+ // We can compute our new base layer. Remember that the CADET and GREEK keys act as their own
+ // antonyms if they match the layer lock -- e.g., if you have CADET locked, then CADET+X generates
+ // QWERTY-X.
+ int base_layer;
+ if (cadet_request) {
+ base_layer = (layer_lock == _CADET ? _QWERTY : _CADET);
+ } else if (greek_request) {
+ base_layer = (layer_lock == _GREEK ? _QWERTY : _GREEK);
+ } else {
+ base_layer = layer_lock;
+ }
+
+ const bool shifted = (shift_held != shift_lock);
+ int actual_layer;
+ if (base_layer == _CADET) {
+ actual_layer = (shifted ? _SHIFTCADET : _CADET);
+ } else if (base_layer == _GREEK) {
+ actual_layer = (shifted ? _SHIFTGREEK : _GREEK);
+ } else {
+ // We don't do shifting for the QWERTY layer, since for that we emit USB HID codes and shifting
+ // is managed by the host OS.
+ actual_layer = _QWERTY;
+ }
+
+ // And now we can update the layer lock and the actual firmware layer selector.
+ layer_lock = next_layer_lock;
+ layer_state_t new_layer_state = (layer_state & LAYER_MASK) | (1UL << actual_layer);
+ if (new_layer_state != layer_state) {
+ layer_state_set(new_layer_state);
+ }
+
+ // Step 3: Handle accents. If there's a pending accent request, process it. If what the user just
+ // hit creates a new accent request, update the pending state for the next keypress.
+ if (!ignore_accent_change && accent_request && record->event.pressed) {
+ // Only do the accent stuff if we're in the QWERTY layer and we aren't modifying something.
+ const bool force_no_accent = (
+ actual_layer != _QWERTY ||
+ ctrl_held ||
+ super_held ||
+ alt_held
+ );
+ const uint16_t old_accent = accent_request;
+ accent_request = 0;
+ if (process_key_after_accent(old_accent, keycode, shifted, force_no_accent)) {
+ return false;
+ }
+ }
+
+ // And if a new accent request just arrived, update accent_request.
+ if (keycode >= KC_ACCENT_START && keycode < KC_ACCENT_END && record->event.pressed) {
+ if (shifted) {
+ // Shift + accent request generates the combining accent key, and leaves accent_request alone.
+ register_unicode(pgm_read_word_near(combined_accents + keycode - KC_ACCENT_START));
+ return false;
+ } else {
+ accent_request = keycode;
+ }
+ }
+
+ return true;
+}
diff --git a/keyboards/ymdk/melody96/keymaps/zunger/readme.md b/keyboards/ymdk/melody96/hotswap/keymaps/zunger/readme.md
index 3eb64a2e73..3eb64a2e73 100644
--- a/keyboards/ymdk/melody96/keymaps/zunger/readme.md
+++ b/keyboards/ymdk/melody96/hotswap/keymaps/zunger/readme.md
diff --git a/keyboards/ymdk/melody96/keymaps/zunger/rules.mk b/keyboards/ymdk/melody96/hotswap/keymaps/zunger/rules.mk
index a61cfa33fa..a61cfa33fa 100644
--- a/keyboards/ymdk/melody96/keymaps/zunger/rules.mk
+++ b/keyboards/ymdk/melody96/hotswap/keymaps/zunger/rules.mk
diff --git a/keyboards/ymdk/melody96/hotswap/matrix_diagram.md b/keyboards/ymdk/melody96/hotswap/matrix_diagram.md
new file mode 100644
index 0000000000..77f7e6a925
--- /dev/null
+++ b/keyboards/ymdk/melody96/hotswap/matrix_diagram.md
@@ -0,0 +1,23 @@
+# Matrix Diagram for YMDK Melody96 Hotswap
+
+```
+┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
+│50 │51 │52 │53 │54 │55 │56 │57 │58 │B8 │B7 │B5 │B4 │B3 │B6 │B2 │B1 │B0 │63 │
+├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┴───┼───┼───┼───┼───┤
+│40 │41 │42 │43 │44 │45 │46 │47 │48 │A8 │A7 │A5 │A4 │A6 │A2 │A1 │A0 │64 │
+├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┼───┼───┼───┼───┤ ┌─────┐
+│30 │31 │32 │33 │34 │35 │36 │37 │38 │98 │97 │95 │94 │93 │96 │92 │91 │80 │ │ │
+├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┼───┼───┤ │ ┌──┴┐93 │ ISO Enter
+│20 │21 │22 │23 │24 │25 │26 │27 │28 │88 │87 │85 │84 │86 │82 │81 │ │ │84 │ │
+├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┼───┼───┼───┤ └───┴────┘
+│10 │11 │12 │13 │14 │15 │16 │17 │18 │78 │77 │75 │74 │73 │76 │72 │71 │60 │
+├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴──┬┴──┬┴──┬───┼───┼───┼───┼───┤ │
+│00 │01 │02 │06 │08 │07 │05 │04 │03 │66 │62 │61 │ │
+└────┴────┴────┴────────────────────────┴───┴───┴───┴───┴───┴───┴───┴───┴───┘
+┌────────┐
+│10 │ 2.25u LShift
+└────────┘
+┌────┬────┬────┬────────────────────────┬─────┬─────┐
+│00 │01 │02 │06 │08 │05 │ RWKL
+└────┴────┴────┴────────────────────────┴─────┴─────┘
+```
diff --git a/keyboards/ymdk/melody96/hotswap/readme.md b/keyboards/ymdk/melody96/hotswap/readme.md
new file mode 100644
index 0000000000..9fd379b273
--- /dev/null
+++ b/keyboards/ymdk/melody96/hotswap/readme.md
@@ -0,0 +1,19 @@
+# YMDK Melody96 Hotswap
+
+![melody96](https://i.imgur.com/9o0a6XFh.png)
+
+A 96% hotswap keyboard from YMDK, available in four different layouts.
+
+* Keyboard Maintainer: [The QMK Community](https://github.com/qmk)
+* Hardware Supported: Melody96 Hotswap PCBs
+* Hardware Availability: [YMDK](https://ymdkey.com/products/ymdk-hot-swap-hot-swappable-kailh-socket-96-pcb-qmk-fully-programmable-support-ansi-iso-interchange-melody-96-ymd96), [AliExpress](https://www.aliexpress.us/item/2251832770844523.html)
+
+Make example for this keyboard (after setting up your build environment):
+
+ make ymdk/melody96/hotswap:default
+
+Flashing example for this keyboard:
+
+ make ymdk/melody96/hotswap: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).
diff --git a/keyboards/ymdk/melody96/hotswap/rules.mk b/keyboards/ymdk/melody96/hotswap/rules.mk
new file mode 100644
index 0000000000..6e7633bfe0
--- /dev/null
+++ b/keyboards/ymdk/melody96/hotswap/rules.mk
@@ -0,0 +1 @@
+# This file intentionally left blank
diff --git a/keyboards/ymdk/melody96/keymaps/konstantin/config.h b/keyboards/ymdk/melody96/keymaps/konstantin/config.h
deleted file mode 100644
index 4b511eb848..0000000000
--- a/keyboards/ymdk/melody96/keymaps/konstantin/config.h
+++ /dev/null
@@ -1,3 +0,0 @@
-#pragma once
-
-#define LAYER_FN
diff --git a/keyboards/ymdk/melody96/keymaps/konstantin/keymap.c b/keyboards/ymdk/melody96/keymaps/konstantin/keymap.c
deleted file mode 100644
index 5dff7a249a..0000000000
--- a/keyboards/ymdk/melody96/keymaps/konstantin/keymap.c
+++ /dev/null
@@ -1,77 +0,0 @@
-#include QMK_KEYBOARD_H
-#include "konstantin.h"
-
-static const HSV *colors[] = { &godspeed_blue, &godspeed_yellow };
-static const size_t cnum = ARRAY_SIZE(colors);
-static size_t cidx = 0;
-
-enum keycodes_keymap {
- RGB_SET = RANGE_KEYMAP,
-};
-
-void eeconfig_init_keymap(void) {
- rgblight_sethsv(colors[cidx]->h, colors[cidx]->s, colors[cidx]->v);
-}
-
-bool process_record_keymap(uint16_t keycode, keyrecord_t *record) {
- switch (keycode) {
- case RGB_SET:
- if (record->event.pressed) {
- cidx = (cidx + 1) % cnum;
- rgblight_sethsv(colors[cidx]->h, colors[cidx]->s, colors[cidx]->v);
- }
- break;
- }
-
- return true;
-}
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- /* Base layer
- * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
- * │Esc│F1 │F2 │F3 │F4 │F5 │F6 │F7 │F8 │F9 │F10│F11│F12│PSc│Ins│Hom│End│PgU│PgD│
- * ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
- * │ ` │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │ \ │Del│NLk│P/ │P* │P- │
- * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┼───┼───┼───┼───┤
- * │ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │Bspc │P7 │P8 │P9 │ │
- * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┼───┼───┤P+ │
- * │FnCaps│ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ Enter │P4 │P5 │P6 │ │
- * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┼───┼───┼───┤
- * │LSft│RAG│ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │RSfRCt│ ↑ │P1 │P2 │P3 │ │
- * ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┴┬──┴──┬───┼───┼───┼───┼───┤PEn│
- * │LCtl│LGui│LAlt│ Space │RAlGu│FnFLk│ ← │ ↓ │ → │P0 │P. │ │
- * └────┴────┴────┴────────────────────────┴─────┴─────┴───┴───┴───┴───┴───┴───┘
- */
- [L_BASE] = 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_PSCR, KC_INS, KC_HOME, KC_END, KC_PGUP, KC_PGDN,
- 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_BSLS, KC_DEL, KC_NUM, KC_PSLS, KC_PAST, KC_PMNS,
- 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_BSPC, KC_P7, KC_P8, KC_P9, XXXXXXX,
- FN_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_P4, KC_P5, KC_P6, KC_PPLS,
- KC_LSFT, RAL_RGU, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, RSF_RCT, KC_UP, KC_P1, KC_P2, KC_P3, XXXXXXX,
- KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, RAL_RGU, XXXXXXX, FN_FNLK, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT, KC_PENT
- ),
-
- /* Fn layer
- * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
- * │ │ │ │ │ │ │ │ │ │ │ │ │ │Sys│SLk│Pau│Brk│Top│Btm│
- * ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
- * │ │F1 │F2 │F3 │F4 │F5 │F6 │F7 │F8 │F9 │F10│F11│F12│ │ │RTg│ ÷ │ × │ − │
- * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┼───┼───┼───┼───┤
- * │ M4 │M2 │M↑ │M1 │M3 │M5 │ │UCM│ │Stp│Ply│Prv│Nxt│Clear│RH+│RS+│RV+│ │
- * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┼───┼───┤RSt│
- * │ │M← │M↓ │M→ │MW↑│ │ │ │ │ │ │ │ │RH-│RS-│RV-│ │
- * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┼───┼───┼───┤
- * │ │ │MA0│MA2│MW←│MW→│ │ │App│Vo-│Vo+│Mut│ │PgU│RMR│RMS│RMB│ │
- * ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴──┬┴──┬┴──┬───┼───┼───┼───┼───┤RMP│
- * │ │DtPR│DtNA│ MW↓ │ │ │ │Hom│PgD│End│RM-│RM+│ │
- * └────┴────┴────┴────────────────────────┴───┴───┴───┴───┴───┴───┴───┴───┴───┘
- */
- [L_FN] = LAYOUT(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, SYSRQ, KC_SCRL, KC_PAUS, BREAK, TOP, BOTTOM,
- _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, RGB_TOG, DIVIDE, TIMES, MINUS,
- KC_BTN4, KC_BTN2, KC_MS_U, KC_BTN1, KC_BTN3, KC_BTN5, _______, UC_NEXT, _______, KC_MSTP, KC_MPLY, KC_MPRV, KC_MNXT, CLEAR, RGB_HUI, RGB_SAI, RGB_VAI, XXXXXXX,
- _______, KC_MS_L, KC_MS_D, KC_MS_R, KC_WH_U, _______, _______, _______, _______, _______, _______, _______, _______, RGB_HUD, RGB_SAD, RGB_VAD, RGB_SET,
- _______, _______, KC_ACL0, KC_ACL2, KC_WH_L, KC_WH_R, _______, _______, KC_APP, KC_VOLD, KC_VOLU, KC_MUTE, _______, KC_PGUP, RGB_M_R, RGB_M_SN,RGB_M_B, XXXXXXX,
- _______, DST_P_R, DST_N_A, KC_WH_D, _______, XXXXXXX, _______, KC_HOME, KC_PGDN, KC_END, RGB_RMOD,RGB_MOD, RGB_M_P
- ),
-};
diff --git a/keyboards/ymdk/melody96/keymaps/konstantin/rules.mk b/keyboards/ymdk/melody96/keymaps/konstantin/rules.mk
deleted file mode 100644
index b315c8e6b9..0000000000
--- a/keyboards/ymdk/melody96/keymaps/konstantin/rules.mk
+++ /dev/null
@@ -1,19 +0,0 @@
-# Generic features
-BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite
-COMMAND_ENABLE = yes
-CONSOLE_ENABLE = yes
-EXTRAKEY_ENABLE = yes
-MOUSEKEY_ENABLE = yes
-NKRO_ENABLE = yes
-TAP_DANCE_ENABLE = yes
-UNICODEMAP_ENABLE = yes
-
-# Keyboard-specific features
-BACKLIGHT_ENABLE = no
-RGBLIGHT_ENABLE = yes
-VIA_ENABLE = yes
-
-# Firmware size reduction
-GRAVE_ESC_ENABLE = no
-MAGIC_ENABLE = no
-SPACE_CADET_ENABLE = no
diff --git a/keyboards/ymdk/melody96/keymaps/zunger/keymap.c b/keyboards/ymdk/melody96/keymaps/zunger/keymap.c
deleted file mode 100644
index d65f10dcec..0000000000
--- a/keyboards/ymdk/melody96/keymaps/zunger/keymap.c
+++ /dev/null
@@ -1,489 +0,0 @@
-/* Copyright 2019 Yonatan Zunger
- *
- * 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 <assert.h>
-
-// This keymap is designed to make it easy to type in a wide variety of languages, as well as
-// generate mathematical symbols (à la Space Cadet).
-//
-// LAYER MAGIC (aka, typing in many alphabets)
-// This keyboard has three "base" layers: QWERTY, GREEK, and CADET. The GREEK and CADET layers
-// are actually full of Unicode points, and so which point they generate depends on things like
-// whether the shift key is down. To handle this, each of those layers is actually *two* layers, one
-// with and one without shift. In our main loop, we manage modifier state detection, as well as
-// layer switch detection, and pick the right layer on the fly.
-// Layers are selected with a combination of three keys. The "Greek" and "Cadet" keys act like
-// modifiers: When held down, they transiently select the indicated base layer. The "Layer Lock" key
-// locks the value of the base layer at whatever is currently held; so e.g., if you hold Greek +
-// Layer Lock, you'll stay in Greek mode until you hit Layer Lock again without any of the mods
-// held.
-// TODO: This system of layer selection is nice for math, but it's not very nice for actually
-// typing in multiple languages. It seems like a better plan will be to reserve one key for each
-// base layer -- maybe fn + F(n) -- which can either be held as a modifier or tapped to switch
-// layers. That will open up adding some more languages, like Yiddish, but to do this effectively
-// we'll need to find a good UI with which to show the currently selected layer. Need to check what
-// the melody96 has in the way of outputs (LEDs, sound, etc).
-//
-// ACCENT MAGIC (aka, typing conveniently in Romance languages)
-// We want to support easy typing of diacritical marks. We can't rely on the host OS for this,
-// because (e.g.) on MacOS, to make any of the other stuff work, we need to be using the Unicode
-// input method at the OS level, which breaks all the normal accent stuff on that end. So we do it
-// ourselves. Accents can actually be invoked in two different ways: one fast and very compatible,
-// one very versatile but with occasional compatibility problems.
-//
-// THE MAIN WAY: You can hit one of the "accent request" key patterns immediately *before* typing
-// a letter to be accented. It will emit the corresponding accented Unicode. For example, you can
-// hit fn-e to request an acute accent, followed by i, and it will output í, U+00ED LATIN SMALL
-// LETTER I WITH ACUTE. These "combined characters" are in Unicode normal form C (NFKC), which is
-// important because many European websites and apps, in particular, tend to behave very badly
-// (misunderstanding and/or crashing) when presented with characters in other forms! The catch is
-// that this only works for the various combinations of letters and accents found in the Latin-1
-// supplement block of Unicode -- basically, things you need for Western European languages.
-//
-// (NB: If you make an accent request followed by a letter which can't take the corresponding
-// accent, it will output the uncombined form of the accent followed by whatever you typed; so
-// e.g., if you hit fn-e followed by f, it will output ´f, U+00B4 ACUTE ACCENT followed by an
-// ordinary f. This is very similar to the default behavior of MacOS.)
-//
-// THE FLEXIBLE WAY: If you hit the accent request with a shift -- e.g., fn-shift-e -- it will
-// instead immediately output the corresponding *combining* Unicode accent mark, which will modify
-// the *previous* character you typed. For example, if you type i followed by fn-shift-e, it will
-// generate í. But don't be fooled by visual similarity: unlike the previous example, this one is
-// an ordinary i followed by U+0301 COMBINING ACUTE ACCENT. It's actually *two symbols*, and this
-// is Unicode normal form D (NFKD). Unlike NFKC, there are NFKD representations of far more
-// combinations of letters and accents, and it's easy to add more of these if you need. (The NFKC
-// representation of such combinations is identical to their NFKD representation)
-//
-// Programs that try to compare Unicode strings *should* first normalize them by converting them
-// all into one normal form or another, and there are functions in every programming language to
-// do this -- e.g., JavaScript's string.normalize() -- but lots of programmers fail to understand
-// this, and so write code that massively freaks out when it encounters the wrong form.
-//
-// The current accent request codes are modeled on the ones in MacOS.
-//
-// fn+` Grave accent (`)
-// fn+e Acute accent (´)
-// fn+i Circumflex (^)
-// fn+u Diaresis / umlaut / trema (¨)
-// fn+c Cedilla (¸)
-// fn+n Tilde (˜)
-//
-// Together, these functions make for a nice "polyglot" keyboard: one that can easily type in a wide
-// variety of languages, which is very useful for people who, well, need to type in a bunch of
-// languages.
-//
-// The major TODOs are:
-// - Update the layer selection logic (and add visible layer cues);
-// - Factor the code below so that the data layers are more clearly separated from the code logic,
-// so that other users of this keymap can easily add whichever alphabets they need without
-// having to deeply understand the implementation.
-
-
-enum custom_keycodes {
- // We provide special layer management keys:
- // GREEK triggers the Greek (aka "Front") layer, or the SHIFTGREEK layer when shift is held.
- // (Because we use Unicode, we need to implement shift-handling at the firmware level,
- // rather than the OS level like we do in the QWERTY layer)
- // CADET or GREEK+ALT triggers the Cadet (aka "Top") layer, or the SHIFTCADET layer when
- // shift is held.
- // LAYER_LOCK locks the "base" layer (i.e., QWERTY, GREEK, or CADET) to the value which is
- // pressed at the moment that it is being released. When a layer lock is set, the
- // analogous layer modifier key is reversed; e.g., if you lock the GREEK layer, then the
- // GREEK button bounces you back to QWERTY.
- //
- // We also parse the shift, alt, and caps lock keys to provide management of those which is
- // compatible with these various layers.
- KC_GREEK = SAFE_RANGE,
- KC_CADET,
- KC_LAYER_LOCK,
-
- // These are the keycodes generated by the various "accent request" keystrokes.
- KC_ACCENT_START,
- KC_CGRV = KC_ACCENT_START, // Grave accent
- KC_CAGU, // Acute accent
- KC_CDIA, // Diaresis / umlaut / trema
- KC_CCIR, // Circumflex
- KC_CCED, // Cedilla
- KC_CTIL, // Tilde
- KC_ACCENT_END,
-};
-
-enum layers_keymap {
- _QWERTY = 0,
- _FUNCTION,
-
- _GREEK,
- _SHIFTGREEK,
- _CADET,
- _SHIFTCADET,
-};
-
-// This is so that H(xxxx) has the same width as _______, which makes the grids more legible.
-#define H(x) UC(0x##x)
-#define MO_FN MO(_FUNCTION)
-#define KC_LLCK KC_LAYER_LOCK
-
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- // NB: Using GESC for escape in the QWERTY layer as a temporary hack because I messed up the
- // switch on the KC_GRV key; change back to KC_ESC once this is fixed.
- [_QWERTY] = LAYOUT_hotswap(
- QK_GESC, 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_HOME, KC_END, KC_PGUP, KC_PGDN, KC_MPLY, KC_BRK,
- 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_LLCK, KC_PSLS, KC_PAST, KC_PMNS,
- 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_P7, KC_P8, KC_P9,
- 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_ENT, KC_P4, KC_P5, KC_P6, KC_PPLS,
- 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_P1, KC_P2, KC_P3,
- KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, MO_FN, KC_GREEK,KC_CADET,KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT, KC_PENT),
- /* The Greek layers. Shown here are the QWERTY layer (for visual reference) and the two Greek
- * layers.
- * ,----------------------------------------------------------------------------
- * | ` |F1 |F2 |F3 |F4 |F5 |F6 |F7 |F8 |F9 |F10|F11|F12|HOM|END|PGU|PGD|MUT|BRK| QWERTY
- * | ` | ₁ | ₂ | ₃ | ₄ | ₅ | ₆ | ₇ | ₈ | ₉ | ₀ | ₋ | ₊ | ₍ | ₎ | | | | | SHIFTGREEK
- * | ` | ¹ | ² | ³ | ⁴ | ⁵ | ⁶ | ⁷ | ⁸ | ⁹ | ⁰ | ⁻ | ⁺ | ⁽ | ⁾ | | | | | GREEK
- * |---------------------------------------------------------------------------|
- * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | + | BKSPC |LCK| / | * | - |
- * | ` | ¿ | | € | | | | | | | | | ≁ | BKSPC |LCK| | ⊗ | |
- * | | | | | | | | | | | | ∝ | ∼ | BKSPC |LCK| ⊘ | ⊙ | ⊖ |
- * |---------------------------------------------------------------------------|
- * | TAB | Q | W | E | R | T | Y | U | I | O | P | [ | ] | \ | 7 | 8 | 9 | |
- * | | Θ | Ω | Ε | Ρ | Τ | Ψ | Υ | Ι | Ο | Π | | | | | | | |
- * | | θ | ω | ε | ρ | τ | ψ | υ | ι | ο | π | | | | | | | |
- * |-----------------------------------------------------------------------| + |
- * | CTRL | A | S | D | F | G | H | J | K | L | ; | ' | RET | 4 | 5 | 6 | ⊕ |
- * | CTRL | Α | Σ | Δ | Φ | Γ | Η | | Κ | Λ | … | ∴ | RET | | | | |
- * | CTRL | α | σ | δ | φ | γ | η | ϑ | κ | λ | ⋯ | ⋅ | RET | | | | |
- * |-----------------------------------------------------------------------|---|
- * | SHIFT | Z | X | C | V | B | N | M | , | . | / |SHFT | ↑ | 1 | 2 | 3 | |
- * | SHIFT | Ζ | Ξ | Χ | ✔ | Β | Ν | Μ | ≲ | ≳ | |SHFT | | | | | |
- * | SHIFT | ζ | ξ | χ | ς | β | ν | μ | ≪ | ≫ | ∫ |SHFT | | | | | |
- * |-----------------------------------------------------------------------|ENT|
- * | CTL | ALT| CMD| SPACE | α | β | γ | ← | ↓ | → | 0 | . | |
- * | CTL | ALT| CMD| SPACE | α | β | γ | | | | | | |
- * | CTL | ALT| CMD| SPACE | α | β | γ | | | | | | |
- * `---------------------------------------------------------------------------'
- */
- [_GREEK] = LAYOUT_hotswap(
- KC_GRV, H(00b9), H(00b2), H(00b3), H(2074), H(2075), H(2076), H(2077), H(2078), H(2079), H(2070), H(207b), H(207a), H(207d), H(207e), XXXXXXX, XXXXXXX, XXXXXXX, _______,
- KC_GRV, _______, _______, _______, _______, _______, _______, _______, H(00b0), _______, _______, H(221d), H(223c), _______, _______, H(2298), H(2299), H(2296),
- _______, H(03b8), H(03c9), H(03b5), H(03c1), H(03c4), H(03c8), H(03c5), H(03b9), H(03bf), H(03c0), KC_LBRC, KC_RBRC, KC_BSLS, KC_P7, KC_P8, KC_P9,
- _______, H(03b1), H(03c3), H(03b4), H(03c6), H(03b3), H(03b7), H(03d1), H(03ba), H(03bb), H(22ef), H(22c5), _______, KC_P4, KC_P5, KC_P6, H(2295),
- _______, H(03b6), H(03be), H(03c7), H(03c2), H(03b2), H(03bd), H(03bc), H(226a), H(226b), H(222b), _______, _______, KC_P1, KC_P2, KC_P3,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_P0, KC_PDOT, KC_PENT),
- [_SHIFTGREEK] = LAYOUT_hotswap(
- KC_GRV, H(2081), H(2082), H(2083), H(2084), H(2085), H(2086), H(2087), H(2088), H(2089), H(2080), H(208b), H(208a), H(208d), H(208e), XXXXXXX, XXXXXXX, XXXXXXX, _______,
- KC_GRV, H(00bf), _______, H(20ac), _______, _______, _______, _______, _______, _______, _______, XXXXXXX, H(2241), _______, _______, XXXXXXX, H(2297), XXXXXXX,
- _______, H(0398), H(03a9), H(0395), H(03a1), H(03a4), H(03a8), H(03a5), H(0399), H(039f), H(03a0), KC_LBRC, KC_RBRC, KC_BSLS, KC_P7, KC_P8, KC_P9,
- _______, H(0391), H(03a3), H(0394), H(03a6), H(0393), H(0397), XXXXXXX, H(039a), H(039b), H(2026), H(2234), _______, KC_P4, KC_P5, KC_P6, H(2295),
- _______, H(0396), H(039e), H(03a7), H(2714), H(0392), H(039d), H(039c), H(2272), H(2273), XXXXXXX, _______, _______, KC_P1, KC_P2, KC_P3,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_P0, KC_PDOT, KC_PENT),
- /* The Cadet layers. Again, we show the QWERTY layer and the two cadet layers.
- * ,----------------------------------------------------------------------------
- * | ` |F1 |F2 |F3 |F4 |F5 |F6 |F7 |F8 |F9 |F10|F11|F12|HOM|END|PGU|PGD|MUT|BRK| QWERTY
- * | ∅ | | | | | | | | | | | | | | | | | | | SHIFTCADET
- * | ¬ | | | | | | | | | | | | | | | | | | | CADET
- * |---------------------------------------------------------------------------|
- * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | + | BKSPC |LCK| / | * | - |
- * | ` | ¡ | | £ | | | | | ° | | | * | ∓ | BKSPC |LCK| | | |
- * | | | | | | | | | | | | | ± | BKSPC |LCK| | × | |
- * |---------------------------------------------------------------------------|
- * | TAB | Q | W | E | R | T | Y | U | I | O | P | [ | ] | \ | 7 | 8 | 9 | |
- * | | ℚ | | | ℝ | ⊆ | ⊇ | | ℵ | ∄ | | ∉ | | | * | * | * | |
- * | | ∧ | ∨ | ∩ | ∪ | ⊂ | ⊃ | ∀ | ∞ | ∃ | ∂ | ∈ | | | * | * | * | | [1]
- * |-----------------------------------------------------------------------| + |
- * | CTRL | A | S | D | F | G | H | J | K | L | ; | ' | RET | 4 | 5 | 6 | ⊕ |
- * | CTRL | Å | | ∇ | | ⇑ | ⇓ | ⇐ | ⇒ | ⇔ | | | RET | * | * | * | |
- * | CTRL | ⟘ | ⊤ | ⊢ | ⊣ | ↑ | ↓ | ← | → | ↔ | | | RET | * | * | * | | [1]
- * |-----------------------------------------------------------------------|---|
- * | SHIFT | Z | X | C | V | B | N | M | , | . | / |SHFT | ↑ | 1 | 2 | 3 | |
- * | SHIFT | ℤ | ℂ | | ≉ | ≢ | ℕ | | | | |SHFT | | * | * | * | |
- * | SHIFT | | ≠ | | ≈ | ≡ | ≤ | ≥ | | | ÷ |SHFT | | * | * | * | | [1]
- * |-----------------------------------------------------------------------|ENT|
- * | CTL | ALT| CMD| SPACE | α | β | γ | ← | ↓ | → | 0 | . | |
- * | CTL | ALT| CMD| SPACE | α | β | γ | | | | | | |
- * | CTL | ALT| CMD| SPACE | α | β | γ | | | | | | |
- * `---------------------------------------------------------------------------'
- * [1] CADET + numpad moves the mouse. SHIFT+CADET+NUMPAD moves it more quickly. CADET+5
- * clicks the mouse, and SHIFT+CADET+FIVE right-clicks.
- */
- [_CADET] = LAYOUT_hotswap(
- H(00AC), KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______,
- KC_GRV, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, H(00b1), _______, _______, XXXXXXX, H(00d7), XXXXXXX,
- _______, H(2227), H(2228), H(2229), H(222a), H(2282), H(2283), H(2200), H(221e), H(2203), H(2202), H(2208), XXXXXXX, XXXXXXX, KC_P7, KC_P8, KC_P9,
- _______, H(22a5), H(22a4), H(22a2), H(22a3), H(2191), H(2193), H(2190), H(2192), H(2194), XXXXXXX, XXXXXXX, _______, KC_P4, KC_P5, KC_P6, XXXXXXX,
- _______, XXXXXXX, H(2260), XXXXXXX, H(2248), H(2261), H(2264), H(2265), XXXXXXX, XXXXXXX, H(00f7), _______, _______, KC_P1, KC_P2, KC_P3,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_P0, KC_PDOT, KC_PENT),
- [_SHIFTCADET] = LAYOUT_hotswap(
- H(2205), KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______,
- KC_GRV, H(00a1), XXXXXXX, H(00a3), XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, H(2213), _______, _______, XXXXXXX, XXXXXXX, XXXXXXX,
- _______, H(211a), XXXXXXX, XXXXXXX, H(211d), H(2286), H(2287), XXXXXXX, H(2135), H(2204), XXXXXXX, H(2209), XXXXXXX, XXXXXXX, KC_P7, KC_P8, KC_P9,
- _______, H(212b), XXXXXXX, H(2207), XXXXXXX, H(21d1), H(21d3), H(21d0), H(21d2), H(21d4), XXXXXXX, XXXXXXX, _______, KC_P4, KC_P5, KC_P6, XXXXXXX,
- _______, H(2124), H(2102), XXXXXXX, H(2249), H(2262), H(2115), XXXXXXX, XXXXXXX, XXXXXXX, H(00f7), _______, _______, KC_P1, KC_P2, KC_P3,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_P0, KC_PDOT, KC_PENT),
-
- // Function layer is mostly for keyboard meta-control operations, but also contains the combining
- // accent marks. These are deliberately placed to match where the analogous controls go on Mac OS.
- [_FUNCTION] = LAYOUT_hotswap(
- KC_CGRV, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, QK_BOOT,
- KC_CGRV, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, KC_CAGU, _______, _______, _______, KC_CDIA, KC_CCIR, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, UC_MAC, UC_LINX, UC_WIN, UC_BSD, UC_WINC, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, KC_CCED, _______, _______, KC_CTIL, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______),
-};
-
-////////////////////////////////////////////////////////////////////////////////////////////////////
-// Accent implementation
-//
-// In the body of process_record_user, we store an "accent_request", which is the accent keycode if
-// one was just selected, or zero otherwise. When the *next* key is hit, we look up whether the
-// accent request plus that next keycode (plus the state of the shift key) together amount to an
-// interesting combined (NFKC) character, and if so, emit it; otherwise, we emit the accent as a
-// separate character and then process the next key normally. The resulting UI behavior is similar
-// to that of the combining accent keys in MacOS.
-//
-// We store two arrays, depending on whether shift is or isn't held. Each is two-dimensional, with
-// its outer key by the next keycode struck, and the inner key by the accent requested. The outer
-// array has KC_Z + 1 as its upper bound, so that we can save memory by only coding alphabetic keys.
-// The contents are either Unicode code points, or zero to indicate that we don't have a point for
-// this combination.
-
-#define KC_NUM_ACCENTS (KC_ACCENT_END - KC_ACCENT_START)
-#define KC_NUM_SLOTS (KC_Z + 1)
-
-const uint16_t PROGMEM unshifted_accents[KC_NUM_SLOTS][KC_NUM_ACCENTS] = {
- // KC_CGRV, KC_CAGU, KC_CDIA, KC_CCIR, KC_CCED, KC_CTIL
- [KC_A] = { 0x00e0, 0x00e1, 0x00e4, 0x00e2, 0, 0x00e3 },
- [KC_E] = { 0x00e8, 0x00e9, 0x00eb, 0x00ea, 0, 0 },
- [KC_I] = { 0x00ec, 0x00ed, 0x00ef, 0x00ee, 0, 0 },
- [KC_O] = { 0x00f2, 0x00f3, 0x00f6, 0x00f4, 0, 0x00f5 },
- [KC_U] = { 0x00f9, 0x00fa, 0x00fc, 0x00fb, 0, 0 },
- [KC_Y] = { 0, 0, 0x00ff, 0, 0, 0 },
- [KC_N] = { 0, 0, 0, 0, 0, 0x00f1 },
- [KC_C] = { 0, 0, 0, 0, 0x00e7, 0 },
-};
-
-const uint16_t PROGMEM shifted_accents[KC_NUM_SLOTS][KC_NUM_ACCENTS] = {
- // KC_CGRV, KC_CAGU, KC_CDIA, KC_CCIR, KC_CCED, KC_CTIL
- [KC_A] = { 0x00c0, 0x00c1, 0x00c4, 0x00c2, 0, 0x00c3 },
- [KC_E] = { 0x00c8, 0x00c9, 0x00cb, 0x00ca, 0, 0 },
- [KC_I] = { 0x00cc, 0x00cd, 0x00cf, 0x00ce, 0, 0 },
- [KC_O] = { 0x00d2, 0x00d3, 0x00d6, 0x00d4, 0, 0x00d5 },
- [KC_U] = { 0x00d9, 0x00da, 0x00dc, 0x00db, 0, 0 },
- [KC_Y] = { 0, 0, 0x00df, 0, 0, 0 },
- [KC_N] = { 0, 0, 0, 0, 0, 0x00d1 },
- [KC_C] = { 0, 0, 0, 0, 0x00c7, 0 },
-};
-
-// The uncombined and combined forms of the accents, for when we want to emit them as single
-// characters.
-const uint16_t PROGMEM uncombined_accents[KC_NUM_ACCENTS] = {
- [KC_CGRV - KC_ACCENT_START] = 0x0060,
- [KC_CAGU - KC_ACCENT_START] = 0x00b4,
- [KC_CDIA - KC_ACCENT_START] = 0x00a8,
- [KC_CCIR - KC_ACCENT_START] = 0x005e,
- [KC_CCED - KC_ACCENT_START] = 0x00b8,
- [KC_CTIL - KC_ACCENT_START] = 0x02dc,
-};
-
-const uint16_t PROGMEM combined_accents[KC_NUM_ACCENTS] = {
- [KC_CGRV - KC_ACCENT_START] = 0x0300,
- [KC_CAGU - KC_ACCENT_START] = 0x0301,
- [KC_CDIA - KC_ACCENT_START] = 0x0308,
- [KC_CCIR - KC_ACCENT_START] = 0x0302,
- [KC_CCED - KC_ACCENT_START] = 0x0327,
- [KC_CTIL - KC_ACCENT_START] = 0x0303,
-};
-
-// This function manages keypresses that happen after an accent has been selected by an earlier
-// keypress.
-// Args:
-// accent_key: The accent key which was earlier selected. This must be in the range
-// [KC_ACCENT_START, KC_ACCENT_END).
-// keycode: The keycode which was just pressed.
-// is_shifted: The current shift state (as set by a combination of shift and caps lock)
-// force_no_accent: If true, we're in a situation where we want to force there to be no
-// accent combination -- if e.g. we're in a non-QWERTY layer, or if other modifier keys
-// are held.
-//
-// Returns true if the keycode has been completely handled by this function (and so should not be
-// processed further by process_record_user) or false otherwise.
-bool process_key_after_accent(
- uint16_t accent_key,
- uint16_t keycode,
- bool is_shifted,
- bool force_no_accent
-) {
- assert(accent_key >= KC_ACCENT_START);
- assert(accent_key < KC_ACCENT_END);
- const int accent_index = accent_key - KC_ACCENT_START;
-
- // If the keycode is outside A..Z, or force_no_accent is set, we know we shouldn't even bother
- // with a table lookup.
- if (keycode <= KC_Z && !force_no_accent) {
- // Pick the correct array. Because this is progmem, we're going to need to do the
- // two-dimensional array indexing by hand, and so we just cast it to a single-dimensional array.
- const uint16_t *points = (const uint16_t*)(is_shifted ? shifted_accents : unshifted_accents);
- const uint16_t code_point = pgm_read_word_near(points + KC_NUM_ACCENTS * keycode + accent_index);
- if (code_point) {
- register_unicode(code_point);
- return true;
- }
- }
-
- // If we get here, there was no accent match. Emit the accent as its own character, and then let
- // the caller figure out what to do next.
- register_unicode(pgm_read_word_near(uncombined_accents + accent_index));
- return false;
-}
-
-// Layer bitfields.
-#define GREEK_LAYER (1UL << _GREEK)
-#define SHIFTGREEK_LAYER (1UL << _SHIFTGREEK)
-#define CADET_LAYER (1UL << _CADET)
-#define SHIFTCADET_LAYER (1UL << _SHIFTCADET)
-// The layers we don't touch.
-#define LAYER_MASK ~(GREEK_LAYER|SHIFTGREEK_LAYER|CADET_LAYER|SHIFTCADET_LAYER)
-
-bool process_record_user(uint16_t keycode, keyrecord_t *record) {
- // We track these persistent globals and manage them on our own, rather than trying to rely on
- // get_mods or the like, because this function is called *before* that's updated!
- static bool shift_held = false;
- static bool alt_held = false;
- static bool ctrl_held = false;
- static bool super_held = false;
- static bool greek_held = false;
- static bool cadet_held = false;
-
- // These are where we remember the values of lock states.
- static bool shift_lock = false;
- static int layer_lock = _QWERTY;
-
- // The accent request, or zero if there isn't one.
- static uint16_t accent_request = 0;
-
- // If this is set to true, don't trigger any handling of pending accent requests. That's what we
- // want to do if e.g. the user just hit the shift key or something.
- bool ignore_accent_change = !record->event.pressed;
-
- // Step 1: Process any modifier key state changes, so we can maintain that state.
- if (keycode == KC_LSFT || keycode == KC_RSFT) {
- shift_held = record->event.pressed;
- ignore_accent_change = true;
- } else if (keycode == KC_LALT || keycode == KC_RALT) {
- alt_held = record->event.pressed;
- ignore_accent_change = true;
- } else if (keycode == KC_LCTL || keycode == KC_RCTL) {
- ctrl_held = record->event.pressed;
- ignore_accent_change = true;
- } else if (keycode == KC_LGUI || keycode == KC_RGUI) {
- super_held = record->event.pressed;
- ignore_accent_change = true;
- } else if (keycode == KC_GREEK) {
- greek_held = record->event.pressed;
- ignore_accent_change = true;
- } else if (keycode == KC_CADET) {
- cadet_held = record->event.pressed;
- ignore_accent_change = true;
- }
-
- // Step 2: Figure out which layer we're supposed to be in, by transforming all the prior stuff
- // into layer requests.
- const bool greek_request = (greek_held && !alt_held);
- const bool cadet_request = (cadet_held || (greek_held && alt_held));
-
- // Now, handle the lock keys. We store next_layer_lock in a local variable so that we can
- // determine the layer to pick right now before we update layer_lock.
- int next_layer_lock = layer_lock;
- if (keycode == KC_CAPS) {
- // If we're in QWERTY mode, caps lock is already going to be managed by the host OS, but by
- // tracking it ourselves we can also usefully apply it to the GREEK and CADET layers.
- if (record->event.pressed) {
- shift_lock = !shift_lock;
- }
- } else if (keycode == KC_LAYER_LOCK) {
- if (record->event.pressed) {
- if (cadet_request) {
- next_layer_lock = _CADET;
- } else if (greek_request) {
- next_layer_lock = _GREEK;
- } else {
- next_layer_lock = _QWERTY;
- }
- }
- }
-
- // OK! Now we know which buttons are being held, and the current and upcoming states of the locks.
- // We can compute our new base layer. Remember that the CADET and GREEK keys act as their own
- // antonyms if they match the layer lock -- e.g., if you have CADET locked, then CADET+X generates
- // QWERTY-X.
- int base_layer;
- if (cadet_request) {
- base_layer = (layer_lock == _CADET ? _QWERTY : _CADET);
- } else if (greek_request) {
- base_layer = (layer_lock == _GREEK ? _QWERTY : _GREEK);
- } else {
- base_layer = layer_lock;
- }
-
- const bool shifted = (shift_held != shift_lock);
- int actual_layer;
- if (base_layer == _CADET) {
- actual_layer = (shifted ? _SHIFTCADET : _CADET);
- } else if (base_layer == _GREEK) {
- actual_layer = (shifted ? _SHIFTGREEK : _GREEK);
- } else {
- // We don't do shifting for the QWERTY layer, since for that we emit USB HID codes and shifting
- // is managed by the host OS.
- actual_layer = _QWERTY;
- }
-
- // And now we can update the layer lock and the actual firmware layer selector.
- layer_lock = next_layer_lock;
- layer_state_t new_layer_state = (layer_state & LAYER_MASK) | (1UL << actual_layer);
- if (new_layer_state != layer_state) {
- layer_state_set(new_layer_state);
- }
-
- // Step 3: Handle accents. If there's a pending accent request, process it. If what the user just
- // hit creates a new accent request, update the pending state for the next keypress.
- if (!ignore_accent_change && accent_request && record->event.pressed) {
- // Only do the accent stuff if we're in the QWERTY layer and we aren't modifying something.
- const bool force_no_accent = (
- actual_layer != _QWERTY ||
- ctrl_held ||
- super_held ||
- alt_held
- );
- const uint16_t old_accent = accent_request;
- accent_request = 0;
- if (process_key_after_accent(old_accent, keycode, shifted, force_no_accent)) {
- return false;
- }
- }
-
- // And if a new accent request just arrived, update accent_request.
- if (keycode >= KC_ACCENT_START && keycode < KC_ACCENT_END && record->event.pressed) {
- if (shifted) {
- // Shift + accent request generates the combining accent key, and leaves accent_request alone.
- register_unicode(pgm_read_word_near(combined_accents + keycode - KC_ACCENT_START));
- return false;
- } else {
- accent_request = keycode;
- }
- }
-
- return true;
-}
diff --git a/keyboards/ymdk/melody96/matrix_diagram.md b/keyboards/ymdk/melody96/matrix_diagram.md
deleted file mode 100644
index e589bcc469..0000000000
--- a/keyboards/ymdk/melody96/matrix_diagram.md
+++ /dev/null
@@ -1,35 +0,0 @@
-# Matrix Diagram for YMDK Melody96
-
-```
-┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
-│50 │51 │52 │53 │54 │55 │56 │57 │58 │B8 │B7 │B5 │B4 │B3 │B6 │B2 │B1 │B0 │63 │
-├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤ ┌───────┐
-│40 │41 │42 │43 │44 │45 │56 │47 │48 │A8 │A7 │A5 │A4 │A3 │A6 │A2 │A1 │A0 │64 │ │A6 │ 2u Backpsace
-├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┼───┼───┼───┼───┤ └─┬─────┤ ┌───┐
-│30 │31 │32 │33 │34 │35 │36 │37 │38 │98 │97 │95 │94 │84 │96 │92 │91 │90 │ │ │ │ │
-├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┼───┼───┼───┤ ┌──┴┐93 │ ISO Enter │80 │ Numpad "+" 2u
-│20 │21 │22 │23 │24 │25 │26 │27 │28 │88 │87 │85 │93 │86 │82 │81 │80 │ │84 │ │ │ │
-├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┼───┼───┼───┤ └───┴────┘ ├───┤
-│10 │11 │12 │13 │14 │15 │16 │17 │18 │78 │77 │75 │74 │73 │76 │72 │71 │70 │ │ │
-├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴──┬┴──┬┴──┬───┼───┼───┼───┼───┼───┤ ┌───────┐ │60 │ Numpad Enter 2U
-│00 │01 │02 │06 │08 │07 │05 │04 │03 │66 │62 │61 │60 │ Numpad 0 2u │62 │ │ │
-└────┴────┴────┴────────────────────────┴───┴───┴───┴───┴───┴───┴───┴───┴───┘ └───────┘ └───┘
-┌────────┐ ┌──────────┐
-│10 │ 2.25u LShift 2.75u RShift │74 │
-└────────┘ └──────────┘
-┌────┬────┬────┬────────────────────────┬────┬────┬────┬────┐
-│00 │01 │02 │06 │08 │07 │04 │03 │ 4x1.25u Right Mod
-└────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
-┌─────┬─────┬───────────────────────────┬───┬───┬───┬───┬───┐
-│00 │01 │06 │08 │07 │05 │04 │03 │ 2x1.5u Left Mod
-└─────┴─────┴───────────────────────────┴───┴───┴───┴───┴───┘
-┌─────┬───┬─────┬───────────────────────┬─────┬─────┬───┬───┐
-│00 │01 │02 │06 │08 │05 │04 │03 │ Tsangan Left Mod, 2x1.5u-2x1u Right Mod
-└─────┴───┴─────┴───────────────────────┴─────┴─────┴───┴───┘
-┌─────┬───┬─────┬───────────────────────────┬─────┬───┬─────┐
-│00 │01 │02 │06 │07 │04 │03 │ Tsangan/WKL/HHKB
-└─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘
-┌─────┬───┬─────┬───────────────────────────┬───┬───┬───┬───┐
-│00 │01 │02 │06 │07 │05 │04 │03 │ 4x1u Right Mod
-└─────┴───┴─────┴───────────────────────────┴───┴───┴───┴───┘
-```
diff --git a/keyboards/ymdk/melody96/readme.md b/keyboards/ymdk/melody96/readme.md
deleted file mode 100644
index e0e57a081e..0000000000
--- a/keyboards/ymdk/melody96/readme.md
+++ /dev/null
@@ -1,19 +0,0 @@
-# YMDK Melody96 Soldered
-
-![melody96](https://i.imgur.com/9o0a6XFh.png)
-
-96-key Keyboard from YMDK. The PCB for this board is also commonly used in the NYM96.
-
-* Keyboard Maintainer: [superuser41](https://github.com/kaylanm)
-* Hardware Supported: Melody96 Soldered PCBs
-* Hardware Availability: [YMDK on Geekhack, group buy closed](https://geekhack.org/index.php?topic=93614.0), [NYM96 on Massdrop](https://www.massdrop.com/buy/nym96-aluminum-mechanical-keyboard?mode=guest_open)
-
-Make example for this keyboard (after setting up your build environment):
-
- make ymdk/melody96:default
-
-Flashing example for this keyboard:
-
- make ymdk/melody96: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).
diff --git a/keyboards/ymdk/melody96/rules.mk b/keyboards/ymdk/melody96/rules.mk
index 3d5cb57ad5..806543977b 100644
--- a/keyboards/ymdk/melody96/rules.mk
+++ b/keyboards/ymdk/melody96/rules.mk
@@ -1,12 +1 @@
-# Build Options
-# change yes to no to disable
-#
-BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite
-MOUSEKEY_ENABLE = yes # Mouse keys
-EXTRAKEY_ENABLE = yes # Audio control and System control
-CONSOLE_ENABLE = no # Console for debug
-COMMAND_ENABLE = no # Commands for debug and configuration
-NKRO_ENABLE = yes # Enable N-Key Rollover
-BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
-RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
-AUDIO_ENABLE = no # Audio output
+DEFAULT_FOLDER = ymdk/melody96/soldered
diff --git a/keyboards/ymdk/melody96/config.h b/keyboards/ymdk/melody96/soldered/config.h
index 5f36081323..5f36081323 100644
--- a/keyboards/ymdk/melody96/config.h
+++ b/keyboards/ymdk/melody96/soldered/config.h
diff --git a/keyboards/ymdk/melody96/info.json b/keyboards/ymdk/melody96/soldered/info.json
index f941c65970..f941c65970 100644
--- a/keyboards/ymdk/melody96/info.json
+++ b/keyboards/ymdk/melody96/soldered/info.json
diff --git a/keyboards/ymdk/melody96/keymaps/crilith/keymap.c b/keyboards/ymdk/melody96/soldered/keymaps/crilith/keymap.c
index e5eff6ee9d..e5eff6ee9d 100644
--- a/keyboards/ymdk/melody96/keymaps/crilith/keymap.c
+++ b/keyboards/ymdk/melody96/soldered/keymaps/crilith/keymap.c
diff --git a/keyboards/ymdk/melody96/keymaps/default/keymap.c b/keyboards/ymdk/melody96/soldered/keymaps/default/keymap.c
index cc5a7cc0e5..cc5a7cc0e5 100644
--- a/keyboards/ymdk/melody96/keymaps/default/keymap.c
+++ b/keyboards/ymdk/melody96/soldered/keymaps/default/keymap.c
diff --git a/keyboards/ymdk/melody96/keymaps/default_96_with60_split_num0/keymap.c b/keyboards/ymdk/melody96/soldered/keymaps/default_96_with60_split_num0/keymap.c
index 6e4af827d6..6e4af827d6 100644
--- a/keyboards/ymdk/melody96/keymaps/default_96_with60_split_num0/keymap.c
+++ b/keyboards/ymdk/melody96/soldered/keymaps/default_96_with60_split_num0/keymap.c
diff --git a/keyboards/ymdk/melody96/keymaps/dvz/config.h b/keyboards/ymdk/melody96/soldered/keymaps/dvz/config.h
index 380e11a3a1..380e11a3a1 100644
--- a/keyboards/ymdk/melody96/keymaps/dvz/config.h
+++ b/keyboards/ymdk/melody96/soldered/keymaps/dvz/config.h
diff --git a/keyboards/ymdk/melody96/keymaps/dvz/keymap.c b/keyboards/ymdk/melody96/soldered/keymaps/dvz/keymap.c
index 20d4d1e510..20d4d1e510 100644
--- a/keyboards/ymdk/melody96/keymaps/dvz/keymap.c
+++ b/keyboards/ymdk/melody96/soldered/keymaps/dvz/keymap.c
diff --git a/keyboards/ymdk/melody96/keymaps/dvz/readme.md b/keyboards/ymdk/melody96/soldered/keymaps/dvz/readme.md
index d82055244e..d82055244e 100644
--- a/keyboards/ymdk/melody96/keymaps/dvz/readme.md
+++ b/keyboards/ymdk/melody96/soldered/keymaps/dvz/readme.md
diff --git a/keyboards/ymdk/melody96/keymaps/dvz/rules.mk b/keyboards/ymdk/melody96/soldered/keymaps/dvz/rules.mk
index a1e85f13f4..a1e85f13f4 100644
--- a/keyboards/ymdk/melody96/keymaps/dvz/rules.mk
+++ b/keyboards/ymdk/melody96/soldered/keymaps/dvz/rules.mk
diff --git a/keyboards/ymdk/melody96/keymaps/via/keymap.c b/keyboards/ymdk/melody96/soldered/keymaps/via/keymap.c
index 897d86acb7..897d86acb7 100644
--- a/keyboards/ymdk/melody96/keymaps/via/keymap.c
+++ b/keyboards/ymdk/melody96/soldered/keymaps/via/keymap.c
diff --git a/keyboards/ymdk/melody96/keymaps/via/rules.mk b/keyboards/ymdk/melody96/soldered/keymaps/via/rules.mk
index 36b7ba9cbc..36b7ba9cbc 100644
--- a/keyboards/ymdk/melody96/keymaps/via/rules.mk
+++ b/keyboards/ymdk/melody96/soldered/keymaps/via/rules.mk
diff --git a/keyboards/ymdk/melody96/soldered/matrix_diagram.md b/keyboards/ymdk/melody96/soldered/matrix_diagram.md
new file mode 100644
index 0000000000..af8ba0ec81
--- /dev/null
+++ b/keyboards/ymdk/melody96/soldered/matrix_diagram.md
@@ -0,0 +1,35 @@
+# Matrix Diagram for YMDK Melody96 Soldered
+
+```
+┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
+│50 │51 │52 │53 │54 │55 │56 │57 │58 │B8 │B7 │B5 │B4 │B3 │B6 │B2 │B1 │B0 │63 │
+├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤ ┌───────┐
+│40 │41 │42 │43 │44 │45 │56 │47 │48 │A8 │A7 │A5 │A4 │A3 │A6 │A2 │A1 │A0 │64 │ │A6 │ 2u Backpsace
+├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┼───┼───┼───┼───┤ └─┬─────┤ ┌───┐
+│30 │31 │32 │33 │34 │35 │36 │37 │38 │98 │97 │95 │94 │84 │96 │92 │91 │90 │ │ │ │ │
+├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┼───┼───┼───┤ ┌──┴┐93 │ ISO Enter │80 │ Numpad "+" 2u
+│20 │21 │22 │23 │24 │25 │26 │27 │28 │88 │87 │85 │93 │86 │82 │81 │80 │ │84 │ │ │ │
+├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┼───┼───┼───┤ └───┴────┘ ├───┤
+│10 │11 │12 │13 │14 │15 │16 │17 │18 │78 │77 │75 │74 │73 │76 │72 │71 │70 │ │ │
+├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴──┬┴──┬┴──┬───┼───┼───┼───┼───┼───┤ ┌───────┐ │60 │ Numpad Enter 2U
+│00 │01 │02 │06 │08 │07 │05 │04 │03 │66 │62 │61 │60 │ Numpad 0 2u │62 │ │ │
+└────┴────┴────┴────────────────────────┴───┴───┴───┴───┴───┴───┴───┴───┴───┘ └───────┘ └───┘
+┌────────┐ ┌──────────┐
+│10 │ 2.25u LShift 2.75u RShift │74 │
+└────────┘ └──────────┘
+┌────┬────┬────┬────────────────────────┬────┬────┬────┬────┐
+│00 │01 │02 │06 │08 │07 │04 │03 │ 4x1.25u Right Mod
+└────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
+┌─────┬─────┬───────────────────────────┬───┬───┬───┬───┬───┐
+│00 │01 │06 │08 │07 │05 │04 │03 │ 2x1.5u Left Mod
+└─────┴─────┴───────────────────────────┴───┴───┴───┴───┴───┘
+┌─────┬───┬─────┬───────────────────────┬─────┬─────┬───┬───┐
+│00 │01 │02 │06 │08 │05 │04 │03 │ Tsangan Left Mod, 2x1.5u-2x1u Right Mod
+└─────┴───┴─────┴───────────────────────┴─────┴─────┴───┴───┘
+┌─────┬───┬─────┬───────────────────────────┬─────┬───┬─────┐
+│00 │01 │02 │06 │07 │04 │03 │ Tsangan/WKL/HHKB
+└─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘
+┌─────┬───┬─────┬───────────────────────────┬───┬───┬───┬───┐
+│00 │01 │02 │06 │07 │05 │04 │03 │ 4x1u Right Mod
+└─────┴───┴─────┴───────────────────────────┴───┴───┴───┴───┘
+```
diff --git a/keyboards/ymdk/melody96/soldered/readme.md b/keyboards/ymdk/melody96/soldered/readme.md
new file mode 100644
index 0000000000..8cd3889a6c
--- /dev/null
+++ b/keyboards/ymdk/melody96/soldered/readme.md
@@ -0,0 +1,19 @@
+# YMDK Melody96 Soldered
+
+![melody96](https://i.imgur.com/9o0a6XFh.png)
+
+96-key Keyboard from YMDK. The PCB for this board is also commonly used in the NYM96.
+
+* Keyboard Maintainer: [superuser41](https://github.com/kaylanm)
+* Hardware Supported: Melody96 Soldered PCBs
+* Hardware Availability: [YMDK on Geekhack, group buy closed](https://geekhack.org/index.php?topic=93614.0), [NYM96 on Massdrop](https://www.massdrop.com/buy/nym96-aluminum-mechanical-keyboard?mode=guest_open)
+
+Make example for this keyboard (after setting up your build environment):
+
+ make ymdk/melody96/soldered:default
+
+Flashing example for this keyboard:
+
+ make ymdk/melody96/soldered: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).
diff --git a/keyboards/ymdk/melody96/soldered/rules.mk b/keyboards/ymdk/melody96/soldered/rules.mk
new file mode 100644
index 0000000000..3d5cb57ad5
--- /dev/null
+++ b/keyboards/ymdk/melody96/soldered/rules.mk
@@ -0,0 +1,12 @@
+# Build Options
+# change yes to no to disable
+#
+BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
+COMMAND_ENABLE = no # Commands for debug and configuration
+NKRO_ENABLE = yes # Enable N-Key Rollover
+BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
+RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
+AUDIO_ENABLE = no # Audio output
diff --git a/keyboards/ymdk/sp64/rules.mk b/keyboards/ymdk/sp64/rules.mk
index df9380f361..56da806510 100644
--- a/keyboards/ymdk/sp64/rules.mk
+++ b/keyboards/ymdk/sp64/rules.mk
@@ -14,4 +14,4 @@ RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
CUSTOM_MATRIX = yes
SRC += matrix.c
-QUANTUM_LIB_SRC += i2c_master.c
+I2C_DRIVER_REQUIRED = yes
diff --git a/keyboards/z12/keymaps/zigotica/config.h b/keyboards/z12/keymaps/zigotica/config.h
deleted file mode 100644
index eaae9053d1..0000000000
--- a/keyboards/z12/keymaps/zigotica/config.h
+++ /dev/null
@@ -1,29 +0,0 @@
-/* Copyright 2020 Sergi Meseguer <zigotica@gmail.com>
-
-This program is free software: you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program. If not, see <http://www.gnu.org/licenses/>.
-*/
-
-#pragma once
-
-
-#ifdef OLED_ENABLE
- #define OLED_DISPLAY_128X32
-#endif
-
-// EC11 encoders' resolution.
-// Reduce the value to 2 if you feel missing values:
-#define ENCODER_RESOLUTION 4
-
-// Allows correct registered values by rotary encoder:
-#define TAP_CODE_DELAY 10
diff --git a/keyboards/z12/keymaps/zigotica/encoder.c b/keyboards/z12/keymaps/zigotica/encoder.c
deleted file mode 100644
index f55b9b5ae9..0000000000
--- a/keyboards/z12/keymaps/zigotica/encoder.c
+++ /dev/null
@@ -1,110 +0,0 @@
-/* Copyright 2020 Sergi Meseguer <zigotica@gmail.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 "zigotica.h"
-
-bool encoder_update_user(uint8_t index, bool clockwise) {
- switch(get_highest_layer(layer_state)){
- case _VIM:
- if (index == 0) { // LEFT
- // Cycle through buffers
- if (clockwise) {
- register_code(KC_ESC);
- SEND_STRING(":bprevious");
- register_code(KC_ENT);
- unregister_code(KC_ESC);
- unregister_code(KC_ENT);
- } else {
- register_code(KC_ESC);
- SEND_STRING(":bnext");
- register_code(KC_ENT);
- unregister_code(KC_ESC);
- unregister_code(KC_ENT);
- }
- } else { // RIGHT
- // Scroll
- if (clockwise) {
- tap_code(KC_PGDN);
- } else {
- tap_code(KC_PGUP);
- }
- }
- break;
- case _BROWSER:
- if (index == 0) { // LEFT
- // Cycle through Tabs
- if (clockwise) {
- tap_code16(C(KC_TAB));
- } else {
- tap_code16(S(C(KC_TAB)));
- }
- } else { // RIGHT
- // Scroll up/down
- if (clockwise) {
- register_code(KC_WH_U);
- unregister_code(KC_WH_U);
- } else {
- register_code(KC_WH_D);
- unregister_code(KC_WH_D);
- }
- }
- break;
- case _FIGMA:
- if (index == 0) { // LEFT
- // Cycle through Tabs
- if (clockwise) {
- tap_code16(C(KC_TAB));
- } else {
- tap_code16(S(C(KC_TAB)));
- }
- } else { // RIGHT
- // Zoom in/out
- if (clockwise) {
- register_code(KC_LGUI);
- register_code(KC_WH_D);
- unregister_code(KC_WH_D);
- unregister_code(KC_LGUI);
- } else {
- register_code(KC_LGUI);
- register_code(KC_WH_U);
- unregister_code(KC_WH_U);
- unregister_code(KC_LGUI);
- }
- }
- break;
- case _BASE:
- default:
- if (index == 0) { // LEFT
- // Volume control.
- if (clockwise) {
- tap_code(KC_VOLU);
- } else {
- tap_code(KC_VOLD);
- }
- } else { // RIGHT
- // Scroll
- if (clockwise) {
- tap_code(KC_PGDN);
- } else {
- tap_code(KC_PGUP);
- }
- }
- break;
- }
- return false;
-}
-
-
diff --git a/keyboards/z12/keymaps/zigotica/encoder.h b/keyboards/z12/keymaps/zigotica/encoder.h
deleted file mode 100644
index 2422c68f28..0000000000
--- a/keyboards/z12/keymaps/zigotica/encoder.h
+++ /dev/null
@@ -1,18 +0,0 @@
-/* Copyright 2020 Sergi Meseguer <zigotica@gmail.com>
-
-This program is free software: you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program. If not, see <http://www.gnu.org/licenses/>.
-*/
-
-#pragma once
-#include "zigotica.h"
diff --git a/keyboards/z12/keymaps/zigotica/keymap.c b/keyboards/z12/keymaps/zigotica/keymap.c
deleted file mode 100644
index f4f5709fe0..0000000000
--- a/keyboards/z12/keymaps/zigotica/keymap.c
+++ /dev/null
@@ -1,189 +0,0 @@
-/* Copyright 2020
- Sergi Meseguer <zigotica@gmail.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 "zigotica.h"
-#include "raw_hid.h"
-
-#ifdef RAW_ENABLE
-void raw_hid_receive(uint8_t* data, uint8_t length) {
- layer_clear();
- if (data[0] == 99) {
- layer_on(_BASE);
- }
- else {
- layer_on(data[0]);
- }
-}
-#endif
-
-// Custom Keycodes
-#define MODE_1 TO(_BASE)
-#define MODE_2 TO(_FIGMA)
-#define MODE_3 TO(_BROWSER)
-#define MODE_4 TO(_VIM)
-
-enum custom_keycodes {
- VIM_SIF = SAFE_RANGE,
- VIM_FORMAT,
- VIM_GODEF,
- VIM_RENSYM,
- VIM_CODEACT,
- VIM_NEW
-};
-
-bool process_record_user(uint16_t keycode, keyrecord_t *record) {
- switch (keycode) {
- case VIM_SIF:// Search in File
- if (record->event.pressed) {
- register_code(KC_ESC);
- tap_code(KC_SPACE);
- tap_code(KC_S);
- tap_code(KC_C);
- } else { // released
- unregister_code(KC_ESC);
- }
- break;
- case VIM_FORMAT:// Autoformat file
- if (record->event.pressed) {
- register_code(KC_ESC);
- tap_code(KC_F9);
- } else { // released
- unregister_code(KC_ESC);
- }
- break;
- case VIM_GODEF:// Go to Definition
- if (record->event.pressed) {
- register_code(KC_ESC);
- tap_code(KC_G);
- tap_code(KC_D);
- } else { // released
- unregister_code(KC_ESC);
- }
- break;
- case VIM_CODEACT:// Code actions
- if (record->event.pressed) {
- register_code(KC_ESC);
- tap_code(KC_SPACE);
- tap_code(KC_C);
- tap_code(KC_A);
- } else { // released
- unregister_code(KC_ESC);
- }
- break;
- case VIM_RENSYM:// Rename symbol
- if (record->event.pressed) {
- register_code(KC_ESC);
- tap_code(KC_SPACE);
- tap_code(KC_R);
- } else { // released
- unregister_code(KC_ESC);
- }
- break;
- case VIM_NEW:// New buffer
- if (record->event.pressed) {
- SEND_STRING("\e:vnew\n");
- } else { // released
- unregister_code(KC_ENT);
- unregister_code(KC_ESC);
- }
- break;
- }
- return true;
-};
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-/*
- * BASE Layer
- *
- * ,-----------------------------.
- * | | BASE | FIGM | |
- * |-------+------+------+-------|
- * |VOL/PLY| BROW | VIM | SCROLL|
- * |-------+------+------+-------|
- * |-------+-------+-------|
- * | o | o | o |
- * |-------+-------+-------|
- * | o | o | o |
- * |-------+-------+-------|
- */
- [_BASE] = LAYOUT(
- MODE_1, MODE_2,
- ZK_MEDIA, MODE_3, MODE_4, _______,
- _______, _______, _______,
- _______, _______, _______
- ),
-/*
- * FIGMA Layer
- *
- * ,-----------------------------.
- * | | BASE | FIGM | |
- * |-------+------+------+-------|
- * | TABS | BROW | VIM | ZOOM |
- * |-------+------+------+-------|
- * |-------+-------+-------|
- * |ZOOMFIT| GRIDS | FULL |
- * |-------+-------+-------|
- * |ZOOM100| NEXT | COLOR |
- * |-------+-------+-------|
- */
- [_FIGMA] = LAYOUT(
- _______, _______,
- _______, _______, _______, _______,
- LSFT(KC_1), LCTL(KC_G), LGUI(KC_BSLS),
- LSFT(KC_0), KC_N, LCTL(KC_C)
- ),
-/*
- * BROWSER Layer
- *
- * ,-----------------------------.
- * | | BASE | FIGM | |
- * |-------+------+------+-------|
- * | TABS | BROW | VIM | SCROLL|
- * |-------+------+------+-------|
- * |-------+-------+-------|
- * |SEARCH | BOOKM | DEVTL |
- * |-------+-------+-------|
- * |ZOOM100| MUTE | READ |
- * |-------+-------+-------|
- */
- [_BROWSER] = LAYOUT(
- _______, _______,
- _______, _______, _______, _______,
- G(KC_F), G(KC_D), G(A(KC_I)),
- G(KC_0), C(KC_M), G(A(KC_R))
- ),
-/*
- * VIM Layer
- *
- * ,-----------------------------.
- * | | BASE | FIGM | |
- * |-------+------+------+-------|
- * |BUFFER | BROW | VIM | SCROLL|
- * |-------+------+------+-------|
- * |-------+-------+-------|
- * |SRCH FL| FORMAT|NEW BUF|
- * |-------+-------+-------|
- * |REN SYM|GO DEF |CODEACT|
- * |-------+-------+-------|
- */
- [_VIM] = LAYOUT(
- _______, _______,
- _______, _______, _______, _______,
- VIM_SIF, VIM_FORMAT, VIM_NEW,
- VIM_RENSYM, VIM_GODEF, VIM_CODEACT
- ),
-};
diff --git a/keyboards/z12/keymaps/zigotica/oled.c b/keyboards/z12/keymaps/zigotica/oled.c
deleted file mode 100644
index c1befb08d3..0000000000
--- a/keyboards/z12/keymaps/zigotica/oled.c
+++ /dev/null
@@ -1,56 +0,0 @@
-/* Copyright 2020 Sergi Meseguer <zigotica@gmail.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 "zigotica.h"
-
-static void render_status(void) {
- switch (get_highest_layer(layer_state)) {
- case _BASE:
- oled_write_P(PSTR("Volume Scroll"), false);
- oled_write_P(PSTR(" "), false);
- oled_write_P(PSTR(" "), false);
- oled_write_P(PSTR(" z12 v1.1"), false);
- break;
- case _FIGMA:
- oled_write_P(PSTR("Tabs Zoom"), false);
- oled_write_P(PSTR(" "), false);
- oled_write_P(PSTR("ZoomFit Grids Full"), false);
- oled_write_P(PSTR("Zoom100 Next Color"), false);
- break;
- case _BROWSER:
- oled_write_P(PSTR("Tabs Scroll"), false);
- oled_write_P(PSTR(" "), false);
- oled_write_P(PSTR("Search Fav DevTool"), false);
- oled_write_P(PSTR("Zoom100 Mute Read"), false);
- break;
- case _VIM:
- oled_write_P(PSTR("Buffer Scroll"), false);
- oled_write_P(PSTR(" "), false);
- oled_write_P(PSTR("Find-F Format New"), false);
- oled_write_P(PSTR("Rename Go-Def Action"), false);
- break;
- default:
- oled_write_P(PSTR(" "), false);
- oled_write_P(PSTR(" "), false);
- oled_write_P(PSTR(" "), false);
- oled_write_P(PSTR(" "), false);
- }
-}
-
-bool oled_task_user(void) {
- render_status();
- return false;
-}
diff --git a/keyboards/z12/keymaps/zigotica/oled.h b/keyboards/z12/keymaps/zigotica/oled.h
deleted file mode 100644
index 2422c68f28..0000000000
--- a/keyboards/z12/keymaps/zigotica/oled.h
+++ /dev/null
@@ -1,18 +0,0 @@
-/* Copyright 2020 Sergi Meseguer <zigotica@gmail.com>
-
-This program is free software: you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program. If not, see <http://www.gnu.org/licenses/>.
-*/
-
-#pragma once
-#include "zigotica.h"
diff --git a/keyboards/z12/keymaps/zigotica/readme.md b/keyboards/z12/keymaps/zigotica/readme.md
deleted file mode 100644
index a3746a88d2..0000000000
--- a/keyboards/z12/keymaps/zigotica/readme.md
+++ /dev/null
@@ -1,3 +0,0 @@
-# zigotica's z12 Layout
-
-This layout uses `RAW_ENABLE = yes`, and benefits from [active-app-qmk-layer-updater](https://github.com/zigotica/active-app-qmk-layer-updater) node script (run by the host system) to change layers programmatically depending on the current active app.
diff --git a/keyboards/z12/keymaps/zigotica/rules.mk b/keyboards/z12/keymaps/zigotica/rules.mk
deleted file mode 100644
index 02e37aa80b..0000000000
--- a/keyboards/z12/keymaps/zigotica/rules.mk
+++ /dev/null
@@ -1,4 +0,0 @@
-OLED_ENABLE = yes # Enables the use of OLED displays
-RAW_ENABLE = yes
-TAP_DANCE_ENABLE = yes
-MOUSEKEY_ENABLE = yes
diff --git a/keyboards/z34/keymaps/zigotica/config.h b/keyboards/z34/keymaps/zigotica/config.h
deleted file mode 100644
index 9fe28b9675..0000000000
--- a/keyboards/z34/keymaps/zigotica/config.h
+++ /dev/null
@@ -1,26 +0,0 @@
-/* Copyright 2020 Sergi Meseguer <zigotica@gmail.com>
-
-This program is free software: you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program. If not, see <http://www.gnu.org/licenses/>.
-*/
-
-#pragma once
-
-
-#define MASTER_RIGHT
-
-// these should work better for homerow modifiers
-#define TAPPING_TERM 350
-#define PERMISSIVE_HOLD
-#define QUICK_TAP_TERM 0
-
diff --git a/keyboards/z34/keymaps/zigotica/keymap.c b/keyboards/z34/keymaps/zigotica/keymap.c
deleted file mode 100644
index 88c6a3db1b..0000000000
--- a/keyboards/z34/keymaps/zigotica/keymap.c
+++ /dev/null
@@ -1,57 +0,0 @@
-/* Copyright 2020 Sergi Meseguer <zigotica@gmail.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 "zigotica.h"
-
-#define LAYOUT_wrapper(...) LAYOUT(__VA_ARGS__)
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [BASE] = LAYOUT_wrapper(
- _STENAI_L1, _STENAI_R1,
- _STENAI_L2, _STENAI_R2,
- _STENAI_L3, _STENAI_R3,
- _STENAI_LT, _STENAI_RT
- ),
-
- [_NUM] = LAYOUT_wrapper(
- ____NUM_L1, ____NUM_R1,
- ____NUM_L2, ____NUM_R2,
- ____NUM_L3, ____NUM_R3,
- ____NUM_LT, ____NUM_RT
- ),
-
- [_NAV] = LAYOUT_wrapper(
- ____NAV_L1, ____NAV_R1,
- ____NAV_L2, ____NAV_R2,
- ____NAV_L3, ____NAV_R3,
- ____NAV_LT, ____NAV_RT
- ),
-
- [_SYM] = LAYOUT_wrapper(
- ____SYM_L1, ____SYM_R1,
- ____SYM_L2, ____SYM_R2,
- ____SYM_L3, ____SYM_R3,
- ____SYM_LT, ____SYM_RT
- ),
-
- [_FN] = LAYOUT_wrapper(
- ____FN_L1, ____FN_R1,
- ____FN_L2, ____FN_R2,
- ____FN_L3, ____FN_R3,
- ____FN_LT, ____FN_RT
- ),
-};
-
diff --git a/keyboards/z34/keymaps/zigotica/rules.mk b/keyboards/z34/keymaps/zigotica/rules.mk
deleted file mode 100644
index 9abdfb40b4..0000000000
--- a/keyboards/z34/keymaps/zigotica/rules.mk
+++ /dev/null
@@ -1,7 +0,0 @@
-# There are no extra pins, so we make sure to disable OLED and Encoders
-OLED_SUPPORTED = no
-ENCODER_SUPPORTED = no
-
-MOUSEKEY_ENABLE = yes
-COMBO_ENABLE = yes
-TAP_DANCE_ENABLE = yes
diff --git a/keyboards/zoo/wampus/config.h b/keyboards/zoo/wampus/config.h
index eafc776bef..e0ddfaca88 100644
--- a/keyboards/zoo/wampus/config.h
+++ b/keyboards/zoo/wampus/config.h
@@ -22,7 +22,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define BACKLIGHT_PAL_MODE 1
// SPI RGB Driver
-#define WS2812_SPI SPID2
+#define WS2812_SPI_DRIVER SPID2
#define WS2812_SPI_MOSI_PAL_MODE 0
#define WS2812_SPI_SCK_PAL_MODE 0
#define WS2812_SPI_SCK_PIN B13
diff --git a/keyboards/zykrah/fuyu/config.h b/keyboards/zykrah/fuyu/config.h
index 0f24dfe7e3..20b0feb523 100644
--- a/keyboards/zykrah/fuyu/config.h
+++ b/keyboards/zykrah/fuyu/config.h
@@ -14,8 +14,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#pragma once
-#define DYNAMIC_KEYMAP_LAYER_COUNT 6
-
#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET
#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 500U
diff --git a/keyboards/zykrah/fuyu/info.json b/keyboards/zykrah/fuyu/info.json
index 874114bfca..5431d14329 100644
--- a/keyboards/zykrah/fuyu/info.json
+++ b/keyboards/zykrah/fuyu/info.json
@@ -19,6 +19,9 @@
"rgb_matrix": true
},
"diode_direction": "COL2ROW",
+ "dynamic_keymap": {
+ "layer_count": 6
+ },
"matrix_pins": {
"rows": ["GP13", "GP12", "GP11", "GP10", "GP15", "GP14"],
"cols": ["GP29", "GP28", "GP26", "GP25", "GP24", "GP23", "GP22", "GP21", "GP20", "GP19", "GP18", "GP17", "GP16", "GP27", "GP9", "GP1", "GP0"]
diff --git a/keyboards/zykrah/fuyu/keymaps/via/keymap.c b/keyboards/zykrah/fuyu/keymaps/via/keymap.c
index 11f33854ce..95eb2692cb 100644
--- a/keyboards/zykrah/fuyu/keymaps/via/keymap.c
+++ b/keyboards/zykrah/fuyu/keymaps/via/keymap.c
@@ -73,15 +73,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
// Code for Caps Locks indicator
#if defined(RGB_MATRIX_ENABLE) && defined(CAPS_LOCK_LED_INDEX)
-#define CAPS_LOCK_MAX_BRIGHTNESS 0xFF
-#ifdef RGB_MATRIX_MAXIMUM_BRIGHTNESS
- #undef CAPS_LOCK_MAX_BRIGHTNESS
+#if !defined(CAPS_LOCK_MAX_BRIGHTNESS)
#define CAPS_LOCK_MAX_BRIGHTNESS RGB_MATRIX_MAXIMUM_BRIGHTNESS
#endif
-#define CAPS_LOCK_VAL_STEP 8
-#ifdef RGB_MATRIX_VAL_STEP
- #undef CAPS_LOCK_VAL_STEP
+#if !defined(CAPS_LOCK_VAL_STEP)
#define CAPS_LOCK_VAL_STEP RGB_MATRIX_VAL_STEP
#endif
@@ -106,7 +102,7 @@ bool rgb_matrix_indicators_user(void) {
#if defined(RGB_MATRIX_ENABLE)
#define INDICATOR_RGB_DIVISOR 4
-extern LED_TYPE rgb_matrix_ws2812_array[DRIVER_LED_TOTAL];
+extern rgb_led_t rgb_matrix_ws2812_array[DRIVER_LED_TOTAL];
bool rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) {
for (uint8_t i = led_min; i < led_max; i++) {
if (g_led_config.flags[i] & LED_FLAG_INDICATOR) {
diff --git a/keyboards/zykrah/slime88/config.h b/keyboards/zykrah/slime88/config.h
index eb91a14f6e..e1a00bae4a 100644
--- a/keyboards/zykrah/slime88/config.h
+++ b/keyboards/zykrah/slime88/config.h
@@ -14,7 +14,5 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#pragma once
-#define DYNAMIC_KEYMAP_LAYER_COUNT 6
-
#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET
#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 500U
diff --git a/keyboards/zykrah/slime88/info.json b/keyboards/zykrah/slime88/info.json
index bf1719352d..8b15524cca 100644
--- a/keyboards/zykrah/slime88/info.json
+++ b/keyboards/zykrah/slime88/info.json
@@ -18,6 +18,9 @@
"nkro": true
},
"diode_direction": "COL2ROW",
+ "dynamic_keymap": {
+ "layer_count": 6
+ },
"matrix_pins": {
"rows": ["GP2", "GP29", "GP28", "GP27", "GP11", "GP12"],
"cols": ["GP26", "GP25", "GP24", "GP23", "GP22", "GP21", "GP20", "GP19", "GP18", "GP17", "GP16", "GP15", "GP14", "GP13", "GP0", "GP1", "GP3"]
diff --git a/layouts/community/60_abnt2/readme.md b/layouts/community/60_abnt2/readme.md
new file mode 100644
index 0000000000..6f6e6a1c47
--- /dev/null
+++ b/layouts/community/60_abnt2/readme.md
@@ -0,0 +1,3 @@
+# 60_abnt2
+
+ LAYOUT_60_abnt2
diff --git a/layouts/community/60_ansi/brandonschlack-ansi/keymap.c b/layouts/community/60_ansi/brandonschlack-ansi/keymap.c
deleted file mode 100644
index 5dec737ffb..0000000000
--- a/layouts/community/60_ansi/brandonschlack-ansi/keymap.c
+++ /dev/null
@@ -1,83 +0,0 @@
-/* Copyright 2020 Brandon Schlack
- *
- * 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 "brandonschlack.h"
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-/* Base layer
- * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
- * │Esc│! 1│@ 2│# 3│$ 4│% 5│^ 6│& 7│* 8│( 9│) 0│_ -│+ =│ Bckspc│
- * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤
- * │Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │{ [│} ]│| \│
- * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤
- * │HyCaps│ A │ S │ D │ F │ G │ H │ J │ K │ L │: ;│" '│ Enter│
- * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────────┤
- * │Shift │ Z │ X │ C │ V │ B │ N │ M │< ,│> .│? /│ ↑ Shift│
- * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤
- * │Ctrl│ Opt│ Cmd│ Space │CmdP│←Opt│↓ Fn│→Ctl│
- * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
- */
-[_BASE] = LAYOUT_60_ansi(
- KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC,
- KC_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,
- HY_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_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, UP_RSFT,
- KC_LCTL, KC_LOPT, KC_LCMD, KC_SPC, PLY_CMD, LFT_OPT, DWN_FN1, RGT_CTL
-),
-
-/* Function Layer
- * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
- * │~ `│ F1│ F2│ F3│ F4│ F5│ F6│ F7│ F8│ F9│F10│F11│F12│ Del │
- * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤
- * │RMod │RH+│RS+│RV+│AS+│ │ │ │F13│F14│F15│PgU│LHP│ SLP │
- * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤
- * │RTgl │RH-│RS-│RV-│AS-│ │ │VlD│VlU│Mut│Hom│End│ PlyPse │
- * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────────┤
- * │ │LYR│Thm│ │ │RST│ │MKE│Prv│Nxt│PgD│ │
- * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤
- * │ │ │ │ │ │ │ │ │
- * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
- */
-[_FN1] = LAYOUT_60_ansi(
- KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL,
- RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, RGB_SPI, _______, _______, _______, KC_F13, KC_F14, KC_F15, KC_PGUP, MC_LHPD, MC_SLPD,
- RGB_TOG, RGB_HUD, RGB_SAD, RGB_VAD, RGB_SPD, _______, _______, KC_VOLD, KC_VOLU, KC_MUTE, KC_HOME, KC_END, KC_MPLY,
- _______, RGB_LYR, RGB_THM, _______, _______, QK_BOOT, _______, QM_MAKE, KC_MPRV, KC_MNXT, KC_PGDN, _______,
- _______, _______, _______, _______, _______, _______, _______, _______
-),
-/* Layer
- * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
- * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
- * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤
- * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
- * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤
- * │ │ │ │ │ │ │ │ │ │ │ │ │ │
- * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────────┤
- * │ │ │ │ │ │ │ │ │ │ │ │ │
- * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤
- * │ │ │ │ │ │ │ │ │
- * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
- */
-/*
-[BLANK] = LAYOUT_60_ansi(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______
-)
-*/
-};
diff --git a/layouts/community/60_ansi/brandonschlack-ansi/rules.mk b/layouts/community/60_ansi/brandonschlack-ansi/rules.mk
deleted file mode 100644
index 7aaf727ad2..0000000000
--- a/layouts/community/60_ansi/brandonschlack-ansi/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-USER_NAME := brandonschlack
diff --git a/layouts/community/60_ansi/manna-harbour_miryoku/config.h b/layouts/community/60_ansi/manna-harbour_miryoku/config.h
deleted file mode 100644
index 20af16623d..0000000000
--- a/layouts/community/60_ansi/manna-harbour_miryoku/config.h
+++ /dev/null
@@ -1,68 +0,0 @@
-// Copyright 2019 Manna Harbour
-// https://github.com/manna-harbour/miryoku
-
-// 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 XXX KC_NO
-
-#if defined MIRYOKU_MAPPING_NOREVERSEANGLE
- #define LAYOUT_miryoku(\
-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,\
-N30, N31, K32, K33, K34, K35, K36, K37, N38, N39\
-)\
-LAYOUT_60_ansi(\
-K00, K01, K02, K03, K04, XXX, XXX, XXX, K05, K06, K07, K08, K09, XXX,\
- K10, K11, K12, K13, K14, XXX, XXX, XXX, K15, K16, K17, K18, K19, XXX,\
- K20, K21, K22, K23, K24, XXX, XXX, XXX, K25, K26, K27, K28, K29,\
- XXX, K32, K33, K34, XXX, XXX, XXX, XXX, K35, K36, K37, XXX,\
- XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX\
-)
-#elif defined MIRYOKU_MAPPING_LITE
- #if defined MIRYOKU_LAYERS_FLIP
- #define LAYOUT_miryoku( \
- 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, \
- N30, N31, K32, K33, K34, K35, K36, K37, N38, N39 \
-) \
-LAYOUT_60_ansi( \
-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_TAB, K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, KC_LBRC, KC_RBRC, KC_BSLS, \
-KC_CAPS, K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, KC_SCLN, KC_ENT, \
-KC_LSFT, K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, KC_RSFT, \
-KC_LCTL, KC_LGUI, KC_LALT, K36, KC_RALT, KC_RGUI, KC_APP, KC_RCTL \
-)
- #else
- #define LAYOUT_miryoku( \
- 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, \
- N30, N31, K32, K33, K34, K35, K36, K37, N38, N39 \
-) \
-LAYOUT_60_ansi( \
-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_TAB, K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, KC_LBRC, KC_RBRC, KC_BSLS, \
-KC_CAPS, K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, KC_SCLN, KC_ENT, \
-KC_LSFT, K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, KC_RSFT, \
-KC_LCTL, KC_LGUI, KC_LALT, K33, KC_RALT, KC_RGUI, KC_APP, KC_RCTL \
-)
- #endif
-#else
- #define LAYOUT_miryoku(\
- 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,\
- N30, N31, K32, K33, K34, K35, K36, K37, N38, N39\
-)\
-LAYOUT_60_ansi(\
-XXX, XXX, K00, K01, K02, K03, K04, XXX, K05, K06, K07, K08, K09, XXX,\
- XXX, K10, K11, K12, K13, K14, XXX, XXX, K15, K16, K17, K18, K19, XXX,\
- K20, K21, K22, K23, K24, XXX, XXX, XXX, K25, K26, K27, K28, K29,\
- XXX, XXX, K32, K33, K34, XXX, XXX, XXX, K35, K36, K37, XXX,\
- XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX\
-)
-#endif
diff --git a/layouts/community/60_ansi/manna-harbour_miryoku/keymap.c b/layouts/community/60_ansi/manna-harbour_miryoku/keymap.c
deleted file mode 100644
index dbab7f9820..0000000000
--- a/layouts/community/60_ansi/manna-harbour_miryoku/keymap.c
+++ /dev/null
@@ -1,4 +0,0 @@
-// Copyright 2019 Manna Harbour
-// https://github.com/manna-harbour/miryoku
-
-// 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/>.
diff --git a/layouts/community/60_ansi/mechmerlin-ansi/keymap.c b/layouts/community/60_ansi/mechmerlin-ansi/keymap.c
deleted file mode 100644
index afdd8c8697..0000000000
--- a/layouts/community/60_ansi/mechmerlin-ansi/keymap.c
+++ /dev/null
@@ -1,33 +0,0 @@
-#include QMK_KEYBOARD_H
-#include "mechmerlin.h"
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-[_BL] = LAYOUT_60_ansi(
- QK_GESC, 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_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_CTCP, 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_LCTL, KC_LGUI, KC_LALT, KC_SPACE, KC_FNX, KC_RALT, KC_RGUI, KC_RCTL),
-
-[_FL] = LAYOUT_60_ansi(
- KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL,
- BL_TOGG, BL_UP, BL_DOWN, BL_STEP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- RGB_TOG, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______,
- VK_TOGG, RGB_RMOD, RGB_HUD, RGB_SAD, RGB_VAD, RGB_SPD, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______,
- _______, _______, _______, MO(_CL), _______, _______, _______, _______),
-
-[_AL] = LAYOUT_60_ansi(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_UP,
- _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_RIGHT),
-
-[_CL] = LAYOUT_60_ansi(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, EE_CLR, QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, KC_VER, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______),
-
- };
diff --git a/layouts/community/60_ansi/mechmerlin-ansi/readme.md b/layouts/community/60_ansi/mechmerlin-ansi/readme.md
deleted file mode 100644
index 5e9c4f1a88..0000000000
--- a/layouts/community/60_ansi/mechmerlin-ansi/readme.md
+++ /dev/null
@@ -1,15 +0,0 @@
-# MechMerlin's Standard ANSI 60% Layout
-
-This is the standard 60% layout used by u/merlin36, host of the [MechMerlin](www.youtube.com/mechmerlin)
-YouTube channel.
-
-It is used on his
-* [1up60HSE](https://github.com/qmk/qmk_firmware/tree/master/keyboards/1upkeyboards/1up60hse)
-* [DZ60rgb-ANSI V1](https://github.com/qmk/qmk_firmware/tree/master/keyboards/dztech/dz60rgb)
-
-## Keymap Notes
-- Arrow toggle switch is tapping the `FN` key once.
-- `Caps Lock` can be held to act as a `Left Control`
-
-### Build
-To build the firmware file associated with this keymap, simply run `make your_keyboard:mechmerlin-ansi`.
diff --git a/layouts/community/60_ansi/mechmerlin-ansi/rules.mk b/layouts/community/60_ansi/mechmerlin-ansi/rules.mk
deleted file mode 100644
index e2ce3d7731..0000000000
--- a/layouts/community/60_ansi/mechmerlin-ansi/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-USER_NAME := mechmerlin \ No newline at end of file
diff --git a/layouts/community/60_ansi/readme.md b/layouts/community/60_ansi/readme.md
index d3595074aa..1b43cab4d9 100644
--- a/layouts/community/60_ansi/readme.md
+++ b/layouts/community/60_ansi/readme.md
@@ -1,67 +1,3 @@
# 60_ansi
-This is the standard 60% ANSI keyboard layout.
-
-## Requirements
-
-### 1. Layout defined
-
-A keyboard's `.h` file needs to have `LAYOUT_60_ansi` defined
-
-```c
-#define LAYOUT_60_ansi( \
- K36, K37, K46, K47, K56, K57, K66, K67, K76, K77, K06, K07, K17, K27, \
- K34, K35, K44, K45, K54, K55, K64, K65, K75, K05, K15, K16, K25, K24, \
- K32, K33, K43, K52, K53, K63, K73, K74, K03, K04, K13, K14, K23, \
- K31, K42, K51, K61, K62, K71, K72, K01, K02, K11, K12, K21, \
- K30, K40, K50, K60, K70, K00, K10, K20 \
-) { \
- { K00, K01, K02, K03, K04, K05, K06, K07 }, \
- { K10, K11, K12, K13, K14, K15, K16, K17 }, \
- { K20, K21, KC_NO, K23, K24, K25, KC_NO, K27 }, \
- { K30, K31, K32, K33, K34, K35, K36, K37 }, \
- { K40, KC_NO, K42, K43, K44, K45, K46, K47 }, \
- { K50, K51, K52, K53, K54, K55, K56, K57 }, \
- { K60, K61, K62, K63, K64, K65, K66, K67 }, \
- { K70, K71, K72, K73, K74, K75, K76, K77 } \
-}
-```
-
-This layout needs to match the layout defined in
-
- qmk_firmware/layouts/community/layout.json
-
-### 2. Configuring rules.mk
-
-`rules.mk` needs to have the following line:
-
- LAYOUTS = 60_ansi
-
-### 3. Defining a keymap
-
-A keymap must be defined at
-
- qmk_firmware/layouts/community/60_ansi/yourfoldername/keymap.c
-
-This keymap must have a `LAYOUT_60_ansi` layout defined.
-
-```c
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-[BASE] = LAYOUT_60_ansi(
- QK_GESC, 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_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_LCTL, 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_LCTL, KC_LALT, KC_LGUI, KC_SPACE, MO(1), KC_RALT, KC_RGUI, KC_RCTL),
- };
-```
-
-## Usage
-
-To make generate a hex file, type
-
- make yourkeyboard:yourfoldername
-
-This hex file will contain a keymap with layout `LAYOUT_60_ansi` derived from
-
- qmk_firmware/layouts/community/60_ansi/yourfoldername/keymap.c
+ LAYOUT_60_ansi
diff --git a/layouts/community/60_ansi/stanrc85-ansi/keymap.c b/layouts/community/60_ansi/stanrc85-ansi/keymap.c
deleted file mode 100644
index 42f6675282..0000000000
--- a/layouts/community/60_ansi/stanrc85-ansi/keymap.c
+++ /dev/null
@@ -1,51 +0,0 @@
-/* Copyright 2018 Stanrc85
- *
- * 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 "stanrc85.h"
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [_QWERTY] = LAYOUT_60_ansi(
- TD_TESC, 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_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_CTLE, 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_LCTL, KC_LGUI, KC_LALT, LT_SPCF, KC_RALT, TD_TWIN, MO(_FN2_60), TD_TCTL),
-
- [_DEFAULT] = LAYOUT_60_ansi(
- QK_GESC, 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_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_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_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,
- KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(_FN1_60), MO(_FN2_60), KC_RCTL),
-
- [_FN1_60] = LAYOUT_60_ansi(
- KC_TILD, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL,
- _______, _______, CA_QUOT, KC_VOLU, CA_SCLN, _______, KC_PGUP, KC_HOME, KC_UP, KC_END, KC_PSCR, _______, _______, KC_INS,
- KC_CAPS, _______, KC_MUTE, KC_VOLD, KC_MPLY, _______, KC_PGDN, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______,
- _______, KC_RDP, _______, _______, _______, _______, _______, _______, KC_WBAK, KC_WFWD, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______),
-
- [_FN2_60] = LAYOUT_60_ansi(
- _______, RGB_TOG, RGB_MOD, RGB_VAD, RGB_VAI, RGB_SAI, RGB_HUD, RGB_HUI, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, QK_BOOT,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MAKE,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, TG(_DEFAULT))
-};
-
-bool process_record_keymap(uint16_t keycode, keyrecord_t *record) {
- return true;
-}
diff --git a/layouts/community/60_ansi/stanrc85-ansi/readme.md b/layouts/community/60_ansi/stanrc85-ansi/readme.md
deleted file mode 100644
index c68211bc0b..0000000000
--- a/layouts/community/60_ansi/stanrc85-ansi/readme.md
+++ /dev/null
@@ -1,57 +0,0 @@
-<!-- Copyright 2021 Stanrc85
-
-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/>.-->
-
-# Stanrc85's Standard Layout
-
-Shared keymap between 60%, 65%, Alice layouts:
-- 1upkeyboards60HSE
-- Mark65
-- Sneakbox Alice
-
-## Keymap Notes
-- Layer 0 is default QWERTY layout with additional custom features:
- - SpaceFN to function layer 2 on `Space`
- - `CTRL` when held and `ESC` when tapped on `CAPS LOCK`
- - Tap Dance on `Fn1` for `CTRL+ALT+DEL` and `WIN+L`
- - Tap Dance on `ESC` for `ESC` and ` ` `
-
-![Base QWERTY Layer](https://imgur.com/gvCkVUW.png)
-
-- Layer 1 is default QWERTY with no custom features used mostly for gaming
- - Enabled by `Fn2+RCTL` from base layer
-
-![Default ANSI Layer](https://imgur.com/2SAel0K.png)
-
-- Layer 2 is Function layer:
- - F keys
- - Arrows
- - Volume and Media controls
- - AutoHotkey shortcuts based on [Speaker Control](https://github.com/stanrc85/Speaker-Control) script
- - AHK Mic is used to mute/unmute microphone
- - AHK Speaker switches audio output between headphones and speakers
-
-![Function Layer](https://imgur.com/FUjG0pL.png)
-
-- Layer 3 is RGB Underglow control and RESET
- - `Fn2+RCTL` used to toggle Default QWERTY layer on and off
- - `qmk compile` command on `Fn2+Enter`
- - `qmk flash` command on `Fn2+Shift+enter`
-
-![RGB and RESET Layer](https://imgur.com/UPdhR12.png)
-
-
-
-### Build
-To build the firmware file associated with this keymap, simply run `make your_keyboard:stanrc85-ansi`.
diff --git a/layouts/community/60_ansi/stanrc85-ansi/rules.mk b/layouts/community/60_ansi/stanrc85-ansi/rules.mk
deleted file mode 100644
index 89d03e8c1f..0000000000
--- a/layouts/community/60_ansi/stanrc85-ansi/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-USER_NAME := stanrc85
diff --git a/layouts/community/60_ansi/talljoe-ansi/config.h b/layouts/community/60_ansi/talljoe-ansi/config.h
deleted file mode 100644
index 0c661f5689..0000000000
--- a/layouts/community/60_ansi/talljoe-ansi/config.h
+++ /dev/null
@@ -1,33 +0,0 @@
-/* Copyright 2020 Joseph Wasson
- *
- * 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 ENABLE_GAME_LAYER
-
-#define TEMPLATE( \
- K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K2D, \
- K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \
- K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, \
- K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, \
- K40, K41, K42, K44, K45, K46, K48, K49, K4B, K4C \
-) LAYOUT_60_ansi( \
- K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, \
- K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \
- K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, \
- K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, \
- K40, K41, K42, K46, K48, K49, K4B, K4C \
-)
diff --git a/layouts/community/60_ansi/talljoe-ansi/keymap.c b/layouts/community/60_ansi/talljoe-ansi/keymap.c
deleted file mode 100644
index 7812add812..0000000000
--- a/layouts/community/60_ansi/talljoe-ansi/keymap.c
+++ /dev/null
@@ -1 +0,0 @@
-// This space intentionally left blank
diff --git a/layouts/community/60_ansi/talljoe-ansi/rules.mk b/layouts/community/60_ansi/talljoe-ansi/rules.mk
deleted file mode 100644
index 92007fe8ad..0000000000
--- a/layouts/community/60_ansi/talljoe-ansi/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-USER_NAME := talljoe
diff --git a/layouts/community/60_ansi/xyverz/keymap.c b/layouts/community/60_ansi/xyverz/keymap.c
deleted file mode 100644
index c975c8b24d..0000000000
--- a/layouts/community/60_ansi/xyverz/keymap.c
+++ /dev/null
@@ -1,125 +0,0 @@
-#include QMK_KEYBOARD_H
-
-enum layer_names {
- _QW,
- _DV,
- _CM,
- _FL,
-};
-
-enum planck_keycodes { DVORAK = SAFE_RANGE, QWERTY, COLEMAK };
-
-// clang-format off
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
- /*
- * _QW: Qwerty Layer
- * ,-----------------------------------------------------------.
- * |ESC | 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =| Backsp|
- * |-----------------------------------------------------------|
- * |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \|
- * |-----------------------------------------------------------|
- * |Fn | A| S| D| F| G| H| J| K| L| ;| '| Return|
- * |-----------------------------------------------------------|
- * |Shift | Z| X| C| V| B| N| M| ,| .| /| Shift|
- * |-----------------------------------------------------------|
- * |Ctrl|Alt |Gui | Space |Gui |Alt |Ctrl| Fn|
- * `-----------------------------------------------------------'
- */
- /* Layer 0: Qwerty */
- [_QW] = LAYOUT_60_ansi(
- KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC,
- KC_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,
- MO(_FL), 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_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_RGUI, KC_RALT, KC_RCTL, MO(_FL)
- ),
-
- /*
- * _DV: Dvorak Layer
- * ,-----------------------------------------------------------.
- * |ESC | 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| [| ]| Backsp|
- * |-----------------------------------------------------------|
- * |Tab | '| ,| .| P| Y| F| G| C| R| L| /| =| \|
- * |-----------------------------------------------------------|
- * |Fn | A| O| E| U| I| D| H| T| N| S| -| Return|
- * |-----------------------------------------------------------|
- * |Shift | ;| Q| J| K| X| B| M| W| V| Z| Shift|
- * |-----------------------------------------------------------|
- * |Ctrl|Alt |Gui | Space |Gui |Alt |Ctrl| Fn|
- * `-----------------------------------------------------------'
- */
- /* Layer 1: Dvorak */
- [_DV] = LAYOUT_60_ansi(
- KC_ESC, 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_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,
- MO(_FL), 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_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_RSFT,
- KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_RGUI, KC_RALT, KC_RCTL, MO(_FL)
- ),
-
- /*
- * _CM: Colemak Layer
- * ,-----------------------------------------------------------.
- * |ESC | 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =| Backsp|
- * |-----------------------------------------------------------|
- * |Tab | Q| W| F| P| G| J| L| U| Y| ;| [| ]| \|
- * |-----------------------------------------------------------|
- * |Fn | A| R| S| T| D| H| N| E| I| O| '| Return|
- * |-----------------------------------------------------------|
- * |Shift | Z| X| C| V| B| K| M| ,| .| /| Shift|
- * |-----------------------------------------------------------|
- * |Ctrl|Alt |Gui | Space |Gui |Alt |Ctrl| Fn|
- * `-----------------------------------------------------------'
- */
- /* Layer 2: Colemak */
- [_CM] = LAYOUT_60_ansi(
- KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC,
- KC_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,
- MO(_FL), 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_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,
- KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_RGUI, KC_RALT, KC_RCTL, MO(_FL)
- ),
-
- /*
- * _FL: Function Layer
- * ,-----------------------------------------------------------.
- * | |F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12| Del|
- * |-----------------------------------------------------------|
- * | | | | | | | |PgU| Up|PgD|PSc|SLk|Pau| |
- * |-----------------------------------------------------------|
- * | | |MPr|MPl|MNx| |Hom| Lt| Dn| Rt| | | |
- * |-----------------------------------------------------------|
- * |CAPS | |Mut|VlD|VlU| |End| | | | | |
- * |-----------------------------------------------------------|
- * |_QW |_DV |_CM | | | | | |
- * `-----------------------------------------------------------'
- */
- /* Layer 3: Functions */
- [_FL] = LAYOUT_60_ansi(
- _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL ,
- _______, _______, _______, _______, _______, _______, _______, KC_PGUP, KC_UP, KC_PGDN, KC_PSCR, KC_SCRL, KC_PAUS, _______,
- _______, _______, KC_MPRV, KC_MPLY, KC_MNXT, _______, KC_HOME, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______,
- KC_CAPS, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, KC_END, _______, _______, _______, _______, _______,
- QWERTY, DVORAK, COLEMAK, _______, _______, _______, _______, _______
- ),
-
-};
-// clang-format on
-
-bool process_record_user(uint16_t keycode, keyrecord_t *record) {
- if (record->event.pressed) {
- switch (keycode) {
- case DVORAK:
- set_single_persistent_default_layer(_DV);
- return false;
- case QWERTY:
- set_single_persistent_default_layer(_QW);
- return false;
- case COLEMAK:
- set_single_persistent_default_layer(_CM);
- return false;
- }
- }
- return true;
-} \ No newline at end of file
diff --git a/layouts/community/60_ansi_arrow/readme.md b/layouts/community/60_ansi_arrow/readme.md
new file mode 100644
index 0000000000..5103bc3d9a
--- /dev/null
+++ b/layouts/community/60_ansi_arrow/readme.md
@@ -0,0 +1,3 @@
+# 60_ansi_arrow
+
+ LAYOUT_60_ansi_arrow
diff --git a/layouts/community/60_ansi_arrow_split_bs_7u_spc/mrsendyyk/keymap.c b/layouts/community/60_ansi_arrow_split_bs_7u_spc/mrsendyyk/keymap.c
deleted file mode 100644
index 37e459893c..0000000000
--- a/layouts/community/60_ansi_arrow_split_bs_7u_spc/mrsendyyk/keymap.c
+++ /dev/null
@@ -1,142 +0,0 @@
-/*
- * 60 ANSI Arrow Split Backspace & 7U Space Keymap
- * with RGB Lighting/LED/Underglow as Caps Lock, Num Lock, Scroll Lock, and Layer Indicator.
- *
- * Copyright (C) 2020 Sendy YK <https://mr.sendyyk.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 3 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 <https://www.gnu.org/licenses/>.
- */
-
-#include QMK_KEYBOARD_H
-
-enum layer_names {
- _BASE, // Base Layer
- _FN, // Fn Layer
- _RESET // Reset Layer
-};
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- /*
- * [_BASE] Base Layer
- * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
- * │Esc│1 │2 │3 │4 │5 │6 │7 │8 │9 │0 │- │+ │\ │Del│
- * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤
- * │Tab │Q │W │E │R │T │Y │U │I │O │P │[ │] │Bspc │
- * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤
- * │Caps │A │S │D │F │G │H │J │K │L │; │' │Return │
- * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴┬───┬───┤
- * │Shift │Z │X │C │V │B │N │M │, │. │Shift │↑ │/ │
- * ├─────┬──┴┬──┴──┬┴───┴───┴───┴───┴───┴───┴──┬┴──┬───┼───┼───┤
- * │Ctrl │OS │Alt │Space │Fn │← │↓ │→ │
- * └─────┴───┴─────┴───────────────────────────┴───┴───┴───┴───┘
- */
- [_BASE] = LAYOUT_60_ansi_arrow_split_bs_7u_spc(
- QK_GESC, 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_BSLS, KC_DEL,
- 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_BSPC,
- KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
- KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_RSFT, KC_UP, KC_SLSH,
- KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(_FN), KC_LEFT, KC_DOWN, KC_RGHT
- ),
- /*
- * [_FN] Fn Layer
- * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
- * │` │F1 │F2 │F3 │F4 │F5 │F6 │F7 │F8 │F9 │F10│F11│F12│ │Ejc│
- * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤
- * │ │ │ │End│RGB│ │ │ │Ins│ │PSc│ │ │Mute │
- * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤
- * │ │ │SLc│ │ │ │Hm │ │ │ │ │ │Pause │
- * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴┬───┬───┤
- * │Vol + │ │ │Cal│ │BLT│NLc│Ml │ │ │ │PgU│MSt│
- * ├─────┬──┴┬──┴──┬┴───┴───┴───┴───┴───┴───┴──┬┴──┬───┼───┼───┤
- * │Vol -│Rwd│FFd │Play │ │Prv│PgD│Nxt│
- * └─────┴───┴─────┴───────────────────────────┴───┴───┴───┴───┘
- */
- [_FN] = LAYOUT_60_ansi_arrow_split_bs_7u_spc(
- KC_GRV, 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_EJCT,
- _______, _______, _______, KC_END, RGB_TOG, _______, _______, _______, KC_INS, _______, KC_PSCR, _______, _______, KC_MUTE,
- _______, _______, KC_SCRL, _______, _______, _______, KC_HOME, _______, _______, _______, _______, _______, KC_PAUS,
- KC_VOLU, _______, _______, KC_CALC, _______, BL_TOGG, KC_NUM, KC_MAIL, _______, _______, MO(_RESET), KC_PGUP, KC_MSTP,
- KC_VOLD, KC_MRWD, KC_MFFD, KC_MPLY, _______, KC_MPRV, KC_PGDN, KC_MNXT
- ),
- /*
- * [_RESET] Reset Layer
- * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
- * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
- * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤
- * │ │ │ │ │Rst│ │ │ │ │ │ │ │ │ │
- * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤
- * │ │ │ │ │ │ │ │ │ │ │ │ │ │
- * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴┬───┬───┤
- * │ │ │ │ │ │ │ │ │ │ │ │ │ │
- * ├─────┬──┴┬──┴──┬┴───┴───┴───┴───┴───┴───┴──┬┴──┬───┼───┼───┤
- * │ │ │ │ │ │ │ │ │
- * └─────┴───┴─────┴───────────────────────────┴───┴───┴───┴───┘
- */
- [_RESET] = LAYOUT_60_ansi_arrow_split_bs_7u_spc(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______
- )
-};
-
-void keyboard_post_init_user(void) {
- rgblight_enable_noeeprom();
- rgblight_setrgb(100, 255, 100);
-}
-
-// RGB Lighting/LED/Underglow as Caps Lock, Num Lock, Scroll Lock, and Layer Indicator
-void update_led(void) {
- // Num Lock Indicator
- if (host_keyboard_led_state().num_lock) {
- rgblight_setrgb(225, 8, 0);
- }
- // Scroll Lock Indicator
- if (host_keyboard_led_state().scroll_lock) {
- rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_GRADIENT + 2);
- }
-}
-
-bool led_update_user(led_t led_state) {
- // Caps Lock Indicator
- if (led_state.caps_lock) {
- writePinLow(B2);
- rgblight_setrgb(255, 110, 0);
- }
- // Layer Indicator
- else {
- switch (get_highest_layer(layer_state)) {
- // Fn Layer Indicator
- case _FN:
- rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_GRADIENT + 1);
- break;
- // Reset Layer Indicator
- case _RESET:
- rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_GRADIENT + 3);
- break;
- // Base Layer Indicator
- case _BASE:
- rgblight_setrgb(100, 255, 100);
- break;
- }
- update_led();
- }
- return false;
-}
-
-layer_state_t layer_state_set_user(layer_state_t state) {
- update_led();
- return state;
-}
diff --git a/layouts/community/60_ansi_arrow_split_bs_7u_spc/mrsendyyk/readme.md b/layouts/community/60_ansi_arrow_split_bs_7u_spc/mrsendyyk/readme.md
deleted file mode 100644
index d812ac343c..0000000000
--- a/layouts/community/60_ansi_arrow_split_bs_7u_spc/mrsendyyk/readme.md
+++ /dev/null
@@ -1,78 +0,0 @@
-# 60 ANSI Arrow Split Backspace & 7U Space Keymap
-
-With RGB Lighting/LED/Underglow as Caps Lock, Num Lock, Scroll Lock, and Layer Indicator by [Sendy YK](https://mr.sendyyk.com).
-
-## Base Layer
-
-```c
- /*
- * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
- * │Esc│1 │2 │3 │4 │5 │6 │7 │8 │9 │0 │- │+ │\ │Del│
- * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤
- * │Tab │Q │W │E │R │T │Y │U │I │O │P │[ │] │Bspc │
- * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤
- * │Caps │A │S │D │F │G │H │J │K │L │; │' │Return │
- * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴┬───┬───┤
- * │Shift │Z │X │C │V │B │N │M │, │. │Shift │↑ │/ │
- * ├─────┬──┴┬──┴──┬┴───┴───┴───┴───┴───┴───┴──┬┴──┬───┼───┼───┤
- * │Ctrl │OS │Alt │Space │Fn │← │↓ │→ │
- * └─────┴───┴─────┴───────────────────────────┴───┴───┴───┴───┘
- */
-```
-
-## Fn Layer
-
-```c
- /*
- * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
- * │` │F1 │F2 │F3 │F4 │F5 │F6 │F7 │F8 │F9 │F10│F11│F12│ │Ejc│
- * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤
- * │ │ │ │End│RGB│ │ │ │Ins│ │PSc│ │ │Mute │
- * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤
- * │ │ │SLc│ │ │ │Hm │ │ │ │ │ │Pause │
- * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴┬───┬───┤
- * │Vol + │ │ │Cal│ │BLT│NLc│Ml │ │ │ │PgU│MSt│
- * ├─────┬──┴┬──┴──┬┴───┴───┴───┴───┴───┴───┴──┬┴──┬───┼───┼───┤
- * │Vol -│Rwd│FFd │Play │ │Prv│PgD│Nxt│
- * └─────┴───┴─────┴───────────────────────────┴───┴───┴───┴───┘
- */
-```
-
-## Reset Layer
-
-```c
- /*
- * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
- * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
- * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤
- * │ │ │ │ │Rst│ │ │ │ │ │ │ │ │ │
- * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤
- * │ │ │ │ │ │ │ │ │ │ │ │ │ │
- * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴┬───┬───┤
- * │ │ │ │ │ │ │ │ │ │ │ │ │ │
- * ├─────┬──┴┬──┴──┬┴───┴───┴───┴───┴───┴───┴──┬┴──┬───┼───┼───┤
- * │ │ │ │ │ │ │ │ │
- * └─────┴───┴─────┴───────────────────────────┴───┴───┴───┴───┘
- */
-```
-
-## RGB Lighting/LED/Underglow as Caps Lock, Num Lock, Scroll Lock, and Layer Indicator
-
-### Caps Lock & Layer Indicator
-
-Set in `led_set_user` function.
-
-### Num Lock & Scroll Lock Indicator
-
-Set in `update_led` function.
-
-## Build The Firmware
-
-Make example for keyboard (after setting up your build environment):
-
- make <keyboard_folder>:mrsendyyk FORCE_LAYOUT=60_ansi_arrow_split_bs_7u_spc
-
-More information:
-* [Setting Up Your QMK Environment](https://docs.qmk.fm/#/getting_started_build_tools)
-* [More Detailed make Instructions](https://docs.qmk.fm/#/getting_started_make_guide)
-* [The Complete Newbs Guide To QMK](https://docs.qmk.fm/#/newbs)
diff --git a/layouts/community/60_ansi_arrow_split_bs_7u_spc/mrsendyyk/rules.mk b/layouts/community/60_ansi_arrow_split_bs_7u_spc/mrsendyyk/rules.mk
deleted file mode 100644
index 5c3115dc33..0000000000
--- a/layouts/community/60_ansi_arrow_split_bs_7u_spc/mrsendyyk/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-USER_NAME := mrsendyyk
diff --git a/layouts/community/60_ansi_arrow_split_bs_7u_spc/readme.md b/layouts/community/60_ansi_arrow_split_bs_7u_spc/readme.md
new file mode 100644
index 0000000000..d60387a000
--- /dev/null
+++ b/layouts/community/60_ansi_arrow_split_bs_7u_spc/readme.md
@@ -0,0 +1,3 @@
+# 60_ansi_arrow_split_bs_7u_spc
+
+ LAYOUT_60_ansi_arrow_split_bs_7u_spc
diff --git a/layouts/community/60_ansi_split_bs_rshift/bcat/keymap.c b/layouts/community/60_ansi_split_bs_rshift/bcat/keymap.c
deleted file mode 100644
index c9266cc3d1..0000000000
--- a/layouts/community/60_ansi_split_bs_rshift/bcat/keymap.c
+++ /dev/null
@@ -1,50 +0,0 @@
-/* Copyright 2021 Jonathan Rascher
- *
- * 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 "bcat.h"
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- // clang-format off
- /* Default layer: http://www.keyboard-layout-editor.com/#/gists/327b41b5a933b3d44bf60ca9822e85dc */
- [LAYER_DEFAULT] = LAYOUT_60_ansi_split_bs_rshift(
- KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS, KC_GRV,
- 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_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_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, LY_FN1,
- KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, LY_FN2, KC_APP, KC_RCTL
- ),
-
- /* Function 1 layer: http://www.keyboard-layout-editor.com/#/gists/c7a55e75285d474b6301140eaf53f915 */
- [LAYER_FUNCTION_1] = LAYOUT_60_ansi_split_bs_rshift(
- _______, 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_INS, KC_DEL,
- KC_CAPS, _______, _______, _______, _______, _______, _______, _______, KC_PSCR, KC_SCRL, KC_PAUS, KC_UP, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, _______,
- _______, KC_APP, _______, _______, _______, _______, _______, _______, KC_END, KC_PGDN, KC_DOWN, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______
- ),
-
- /* Function 2 layer: http://www.keyboard-layout-editor.com/#/gists/6e1068e4f91bbacccaf5ac0acbeec79c */
- [LAYER_FUNCTION_2] = LAYOUT_60_ansi_split_bs_rshift(
- _______, 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_INS, KC_DEL,
- _______, _______, KC_MPLY, KC_VOLU, KC_MSTP, BL_BRTG, EE_CLR, QK_BOOT, _______, _______, _______, RGB_VAI, _______, _______,
- _______, _______, KC_MPRV, KC_VOLD, KC_MNXT, BL_UP, _______, RGB_SPI, RGB_HUI, RGB_SAI, RGB_RMOD, RGB_MOD, RGB_TOG,
- _______, _______, _______, KC_MUTE, _______, BL_DOWN, _______, RGB_SPD, RGB_HUD, RGB_SAD, RGB_VAD, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______
- ),
- // clang-format on
-};
diff --git a/layouts/community/60_ansi_split_bs_rshift/bcat/readme.md b/layouts/community/60_ansi_split_bs_rshift/bcat/readme.md
deleted file mode 100644
index f6bcda9197..0000000000
--- a/layouts/community/60_ansi_split_bs_rshift/bcat/readme.md
+++ /dev/null
@@ -1,24 +0,0 @@
-# bcat's 60% ANSI split backspace/right-shift layout
-
-This is a hybrid of a Tsangan/HHKB layout and a standard ANSI bottom row. It's
-not my favorite layout, but it's nice enough if you only have a 6.25u spacebar.
-Other than the bottom row, this is identical to my regular [Tsangan
-layout](https://github.com/qmk/qmk_firmware/tree/master/layouts/community/60_tsangan_hhkb/bcat).
-
-## Default layer
-
-![Default layer layout](https://i.imgur.com/auP2mWT.png)
-
-([KLE](http://www.keyboard-layout-editor.com/#/gists/327b41b5a933b3d44bf60ca9822e85dc))
-
-## Function 1 layer
-
-![Function 1 layer layout](https://i.imgur.com/iRNy6Zy.png)
-
-([KLE](http://www.keyboard-layout-editor.com/#/gists/c7a55e75285d474b6301140eaf53f915))
-
-## Function 2 layer
-
-![Function 2 layer layout](https://i.imgur.com/DW03vvJ.png)
-
-([KLE](http://www.keyboard-layout-editor.com/#/gists/6e1068e4f91bbacccaf5ac0acbeec79c))
diff --git a/layouts/community/60_ansi_split_bs_rshift/brandonschlack-split/keymap.c b/layouts/community/60_ansi_split_bs_rshift/brandonschlack-split/keymap.c
deleted file mode 100644
index 0290dd36ca..0000000000
--- a/layouts/community/60_ansi_split_bs_rshift/brandonschlack-split/keymap.c
+++ /dev/null
@@ -1,83 +0,0 @@
-/* Copyright 2019 Brandon Schlack
- *
- * 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 "brandonschlack.h"
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-/* Base layer
- * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
- * │Esc│! 1│@ 2│# 3│$ 4│% 5│^ 6│& 7│* 8│( 9│) 0│_ -│+ =│| \│~ `│
- * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤
- * │ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │{ [│} ]│Bspc │
- * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤
- * │HyCaps│ A │ S │ D │ F │ G │ H │ J │ K │ L │: ;│" '│ Enter  │
- * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤
- * │ LShift │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │↑ Shft│FnP│
- * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬┴───┤
- * │Ctrl│Opt │Cmd │         Space          │ Cmd│←Opt│↓ Fn│→Ctl│
- * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
- */
-[_BASE] = LAYOUT_60_ansi_split_bs_rshift(
- KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS, KC_GRV,
- 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_BSPC,
- HY_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_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, UP_RSFT, PLY_FN1,
- KC_LCTL, KC_LOPT, KC_LCMD, KC_SPC, KC_RCMD, LFT_OPT, DWN_FN1, RGT_CTL
-),
-
-/* Function Layer
- * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
- * │MKE│ F1│ F2│ F3│ F4│ F5│ F6│ F7│ F8│ F9│F10│F11│F12│LHP│SLP│
- * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤
- * │RMod │RH+│RS+│RV+│AS+│   │   │   │   │   │   │ ↑ │MNC│ Del │
- * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤
- * │RTgl  │RH-│RS-│RV-│AS-│   │   │   │VlD│VlU│ ← │ → │   Play │
- * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤
- * │        │LYR│Thm│   │   │RST│   │Mut│Prv│Nxt│ ↓ │PgUSft│   │
- * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬┴───┤
- * │    │    │    │                        │    │HmOp│PgDF│EndC│
- * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
- */
-[_FN1] = LAYOUT_60_ansi_split_bs_rshift(
- QM_MAKE, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, MC_LHPD, MC_SLPD,
- RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, RGB_SPI, _______, _______, _______, KC_VOLU, KC_MPRV, KC_MNXT, KC_UP, MC_MSSN, KC_DEL,
- RGB_TOG, RGB_HUD, RGB_SAD, RGB_VAD, RGB_SPD, _______, _______, KC_VOLD, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, KC_MPLY,
- _______, RGB_LYR, RGB_THM, _______, _______, QK_BOOT, _______, KC_MUTE, KC_END, KC_PGDN, KC_DOWN, PGU_SFT, _______,
- _______, _______, _______, _______, _______, HOM_OPT, PGD_FN1, END_CTL
-)
-/* Layer
- * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
- * │   │   │   │   │   │   │   │   │   │   │   │   │   │   │   │
- * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤
- * │     │   │   │   │   │   │   │   │   │   │   │   │   │     │
- * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤
- * │      │   │   │   │   │   │   │   │   │   │   │   │        │
- * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤
- * │        │   │   │   │   │   │   │   │   │   │   │      │   │
- * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬┴───┤
- * │    │    │    │                        │    │    │    │    │
- * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
- */
-/*
-[BLANK] = LAYOUT_60_ansi_split_bs_rshift(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______
-)
-*/
-};
diff --git a/layouts/community/60_ansi_split_bs_rshift/brandonschlack-split/rules.mk b/layouts/community/60_ansi_split_bs_rshift/brandonschlack-split/rules.mk
deleted file mode 100644
index 7aaf727ad2..0000000000
--- a/layouts/community/60_ansi_split_bs_rshift/brandonschlack-split/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-USER_NAME := brandonschlack
diff --git a/layouts/community/60_ansi_split_bs_rshift/mechmerlin-split/keymap.c b/layouts/community/60_ansi_split_bs_rshift/mechmerlin-split/keymap.c
deleted file mode 100644
index 3ce445386a..0000000000
--- a/layouts/community/60_ansi_split_bs_rshift/mechmerlin-split/keymap.c
+++ /dev/null
@@ -1,33 +0,0 @@
-#include QMK_KEYBOARD_H
-#include "mechmerlin.h"
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-[_BL] = LAYOUT_60_ansi_split_bs_rshift(
- QK_GESC, 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_BSPC,
- 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_CTCP, 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, TG(_AL),
- KC_LCTL, KC_LGUI, KC_LALT, KC_SPACE, MO(_FL), KC_RALT, KC_RGUI, KC_RCTL),
-
-[_FL] = LAYOUT_60_ansi_split_bs_rshift(
- KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_DEL,
- BL_TOGG, BL_UP, BL_DOWN, BL_STEP, QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- RGB_TOG, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______,
- VK_TOGG, RGB_RMOD, RGB_HUD, RGB_SAD, RGB_VAD, RGB_SPD, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, _______,
- _______, _______, _______, MO(_CL), _______, _______, _______, _______),
-
-[_AL] = LAYOUT_60_ansi_split_bs_rshift(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_UP, _______,
- _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_RIGHT),
-
-[_CL] = LAYOUT_60_ansi_split_bs_rshift(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, EE_CLR, QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, KC_VER, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______)
-
- };
diff --git a/layouts/community/60_ansi_split_bs_rshift/mechmerlin-split/readme.md b/layouts/community/60_ansi_split_bs_rshift/mechmerlin-split/readme.md
deleted file mode 100644
index f883a3d046..0000000000
--- a/layouts/community/60_ansi_split_bs_rshift/mechmerlin-split/readme.md
+++ /dev/null
@@ -1,20 +0,0 @@
-# MechMerlin's Split ANSI 60% Layout
-
-This is the 60% layout with split backspace and right shift used by u/merlin36,
-host of the [MechMerlin](www.youtube.com/mechmerlin) YouTube channel.
-
-It is used on his
-
-* [DO60](https://github.com/qmk/qmk_firmware/tree/master/keyboards/do60)
-* [DP60](https://github.com/qmk/qmk_firmware/tree/master/keyboards/dp60)
-* [Sentraq S60-X RGB](https://github.com/qmk/qmk_firmware/tree/master/keyboards/s60_x)
-* [Waldo](https://github.com/qmk/qmk_firmware/tree/master/keyboards/waldo)
-* [Zeal60 Rev4](https://github.com/qmk/qmk_firmware/tree/master/keyboards/zeal60)
-* [AN-C](https://github.com/qmk/qmk_firmware/tree/master/keyboards/cannonkeys/an_c)
-
-## Keymap Notes
-- Highly influenced by the KBP V60 and WKL B.Face standard layouts
-- Arrow toggle switch is the 1u key by right shift
-
-### Build
-To build the firmware file associated with this keymap, simply run `make your_keyboard:mechmerlin-split`.
diff --git a/layouts/community/60_ansi_split_bs_rshift/mechmerlin-split/rules.mk b/layouts/community/60_ansi_split_bs_rshift/mechmerlin-split/rules.mk
deleted file mode 100644
index e2ce3d7731..0000000000
--- a/layouts/community/60_ansi_split_bs_rshift/mechmerlin-split/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-USER_NAME := mechmerlin \ No newline at end of file
diff --git a/layouts/community/60_ansi_split_bs_rshift/readme.md b/layouts/community/60_ansi_split_bs_rshift/readme.md
index 479463f9a3..362392ef8e 100644
--- a/layouts/community/60_ansi_split_bs_rshift/readme.md
+++ b/layouts/community/60_ansi_split_bs_rshift/readme.md
@@ -1,3 +1,3 @@
# 60_ansi_split_bs_rshift
- LAYOUT_60_ansi_split_bs_rshift \ No newline at end of file
+ LAYOUT_60_ansi_split_bs_rshift
diff --git a/layouts/community/60_ansi_split_bs_rshift/talljoe/config.h b/layouts/community/60_ansi_split_bs_rshift/talljoe/config.h
deleted file mode 100644
index 2a2ead2273..0000000000
--- a/layouts/community/60_ansi_split_bs_rshift/talljoe/config.h
+++ /dev/null
@@ -1,83 +0,0 @@
-/* Copyright 2020 Joseph Wasson
- *
- * 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 ENABLE_GAME_LAYER
-
-#define TEMPLATE( \
- K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K2D, \
- K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \
- K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, \
- K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, \
- K40, K41, K42, K44, K45, K46, K48, K49, K4B, K4C \
-) LAYOUT_60_ansi_split_bs_rshift( \
- K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K2D, \
- K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \
- K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, \
- K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, \
- K40, K41, K42, K46, K48, K49, K4B, K4C \
-)
-
-/* Color Map */
-#define CM( \
- K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K2D, \
- K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \
- K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, \
- K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, \
- K40, K41, K42, K47, K4A, K4B, K4C, K4D \
-) { \
- { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D }, \
- { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D }, \
- { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D }, \
- { K30, {}, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D }, \
- { K40, K41, K42, {}, {}, {}, {}, K47, {}, {}, K4A, K4B, K4C, K4D } \
- }
-
-#if defined (RGB_BACKLIGHT_ZEAL60) || defined (RGB_BACKLIGHT_M60_A)
-
- #define ZEAL_RGB
-
- /* enable/disable LEDs based on layout */
- #undef USE_SPLIT_BACKSPACE
- #define USE_SPLIT_BACKSPACE 1
-
- #undef USE_SPLIT_LEFT_SHIFT
- #define USE_SPLIT_LEFT_SHIFT 0
-
- #undef USE_SPLIT_RIGHT_SHIFT
- #define USE_SPLIT_RIGHT_SHIFT 1
-
- #undef USE_7U_SPACEBAR
- #define USE_7U_SPACEBAR 0
-
- #undef USE_ISO_ENTER
- #define USE_ISO_ENTER 0
-
- #undef TAPPING_TOGGLE
- #define TAPPING_TOGGLE 2
-
- #undef BACKLIGHT_MOD_LAYER_3
- #define BACKLIGHT_MOD_LAYER_3 RESET_LAYER
-
- #undef BACKLIGHT_ALPHAS_MODS_ROW_0
- #undef BACKLIGHT_ALPHAS_MODS_ROW_1
- #undef BACKLIGHT_ALPHAS_MODS_ROW_2
- #define BACKLIGHT_ALPHAS_MODS_ROW_0 0b0000000000000001
- #define BACKLIGHT_ALPHAS_MODS_ROW_1 0b0010000000000001
- #define BACKLIGHT_ALPHAS_MODS_ROW_2 0b0011000000000001
-
-#endif //KEYBOARD_zeal60
diff --git a/layouts/community/60_ansi_split_bs_rshift/talljoe/keymap.c b/layouts/community/60_ansi_split_bs_rshift/talljoe/keymap.c
deleted file mode 100644
index 7812add812..0000000000
--- a/layouts/community/60_ansi_split_bs_rshift/talljoe/keymap.c
+++ /dev/null
@@ -1 +0,0 @@
-// This space intentionally left blank
diff --git a/layouts/community/60_ansi_split_bs_rshift/talljoe/rules.mk b/layouts/community/60_ansi_split_bs_rshift/talljoe/rules.mk
deleted file mode 100644
index 239f03091a..0000000000
--- a/layouts/community/60_ansi_split_bs_rshift/talljoe/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-SRC += $(KEYMAP_PATH)/solarized.c
diff --git a/layouts/community/60_ansi_split_bs_rshift/talljoe/solarized.c b/layouts/community/60_ansi_split_bs_rshift/talljoe/solarized.c
deleted file mode 100644
index 617132d4ef..0000000000
--- a/layouts/community/60_ansi_split_bs_rshift/talljoe/solarized.c
+++ /dev/null
@@ -1,39 +0,0 @@
-/* Copyright 2020 Joseph Wasson
- *
- * 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 "solarized.h"
-
-#define MAKE_COLOR(_H, _S, _V) \
- { .h = (((uint32_t)_H) * 255) / 360, .s = (((uint16_t)_S) * 255) / 100, .v = (((uint16_t)_V) * 255) / 100 }
-
-solarized_t solarized = {
- .base03 = MAKE_COLOR(193, 100, 21),
- .base02 = MAKE_COLOR(192, 90, 26),
- .base01 = MAKE_COLOR(194, 25, 46),
- .base00 = MAKE_COLOR(195, 23, 51),
- .base0 = MAKE_COLOR(186, 13, 59),
- .base1 = MAKE_COLOR(180, 9, 63),
- .base2 = MAKE_COLOR( 44, 11, 93),
- .base3 = MAKE_COLOR( 44, 10, 99),
- .yellow = MAKE_COLOR( 45, 100, 71),
- .orange = MAKE_COLOR( 18, 89, 80),
- .red = MAKE_COLOR( 1, 79, 86),
- .magenta = MAKE_COLOR(331, 74, 83),
- .violet = MAKE_COLOR(237, 45, 77),
- .blue = MAKE_COLOR(205, 82, 82),
- .cyan = MAKE_COLOR(175, 74, 63),
- .green = MAKE_COLOR( 68, 100, 60),
-};
diff --git a/layouts/community/60_ansi_split_bs_rshift/talljoe/solarized.h b/layouts/community/60_ansi_split_bs_rshift/talljoe/solarized.h
deleted file mode 100644
index 15e3d588b1..0000000000
--- a/layouts/community/60_ansi_split_bs_rshift/talljoe/solarized.h
+++ /dev/null
@@ -1,40 +0,0 @@
-/* Copyright 2020 Joseph Wasson
- *
- * 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/color.h"
-
-typedef struct {
- HSV base03;
- HSV base02;
- HSV base01;
- HSV base00;
- HSV base0;
- HSV base1;
- HSV base2;
- HSV base3;
- HSV yellow;
- HSV orange;
- HSV red;
- HSV magenta;
- HSV violet;
- HSV blue;
- HSV cyan;
- HSV green;
-} solarized_t;
-
-extern solarized_t solarized;
diff --git a/layouts/community/60_ansi_split_bs_rshift/yanfali/keymap.c b/layouts/community/60_ansi_split_bs_rshift/yanfali/keymap.c
deleted file mode 100644
index ae7af18160..0000000000
--- a/layouts/community/60_ansi_split_bs_rshift/yanfali/keymap.c
+++ /dev/null
@@ -1,31 +0,0 @@
-#include QMK_KEYBOARD_H
-
-enum {
- BASE,
- FN,
- YFL
-};
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
-[BASE] = LAYOUT_60_ansi_split_bs_rshift(
- KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_GRV, 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_LBRC, KC_RBRC, KC_BSLS,
- LCTL_T(KC_ESC), 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, MO(YFL),
- KC_LCTL, KC_LALT, KC_LGUI, KC_SPACE, KC_RGUI, KC_RALT, MO(FN), KC_RCTL),
-
-[FN] = LAYOUT_60_ansi_split_bs_rshift(
- KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_DEL,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______),
-
-[YFL] = LAYOUT_60_ansi_split_bs_rshift(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, EE_CLR, QK_BOOT,
- KC_CAPS, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______),
-};
diff --git a/layouts/community/60_ansi_tsangan/readme.md b/layouts/community/60_ansi_tsangan/readme.md
new file mode 100644
index 0000000000..76b4514034
--- /dev/null
+++ b/layouts/community/60_ansi_tsangan/readme.md
@@ -0,0 +1,3 @@
+# 60_ansi_tsangan
+
+ LAYOUT_60_ansi_tsangan
diff --git a/layouts/community/60_ansi_wkl/readme.md b/layouts/community/60_ansi_wkl/readme.md
new file mode 100644
index 0000000000..c4c7e5541f
--- /dev/null
+++ b/layouts/community/60_ansi_wkl/readme.md
@@ -0,0 +1,3 @@
+# 60_ansi_wkl
+
+ LAYOUT_60_ansi_wkl
diff --git a/layouts/community/60_ansi_wkl_split_bs_rshift/readme.md b/layouts/community/60_ansi_wkl_split_bs_rshift/readme.md
new file mode 100644
index 0000000000..c34c18a0ec
--- /dev/null
+++ b/layouts/community/60_ansi_wkl_split_bs_rshift/readme.md
@@ -0,0 +1,3 @@
+# 60_ansi_wkl_split_bs_rshift
+
+ LAYOUT_60_ansi_wkl_split_bs_rshift
diff --git a/layouts/community/60_hhkb/readme.md b/layouts/community/60_hhkb/readme.md
new file mode 100644
index 0000000000..346cd6ef8a
--- /dev/null
+++ b/layouts/community/60_hhkb/readme.md
@@ -0,0 +1,3 @@
+# 60_hhkb
+
+ LAYOUT_60_hhkb
diff --git a/layouts/community/60_hhkb/talljoe-hhkb/config.h b/layouts/community/60_hhkb/talljoe-hhkb/config.h
deleted file mode 100644
index 4868890d45..0000000000
--- a/layouts/community/60_hhkb/talljoe-hhkb/config.h
+++ /dev/null
@@ -1,37 +0,0 @@
-/* Copyright 2020 Joseph Wasson
- *
- * 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 ENABLE_GAME_LAYER
-
-#define TEMPLATE( \
- K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K2D, \
- K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \
- K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, \
- K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, \
- K40, K41, K42, K44, K45, K46, K48, K49, K4B, K4C \
-) LAYOUT_60_hhkb( \
- K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K2D, \
- K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \
- K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, \
- K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, \
- K41, K42, K46, K48, K4C \
-)
-
-#ifdef RGB_BACKLIGHT_M60_A
- #define ZEAL_RGB
-#endif
diff --git a/layouts/community/60_hhkb/talljoe-hhkb/keymap.c b/layouts/community/60_hhkb/talljoe-hhkb/keymap.c
deleted file mode 100644
index 7812add812..0000000000
--- a/layouts/community/60_hhkb/talljoe-hhkb/keymap.c
+++ /dev/null
@@ -1 +0,0 @@
-// This space intentionally left blank
diff --git a/layouts/community/60_hhkb/talljoe-hhkb/rules.mk b/layouts/community/60_hhkb/talljoe-hhkb/rules.mk
deleted file mode 100644
index 92007fe8ad..0000000000
--- a/layouts/community/60_hhkb/talljoe-hhkb/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-USER_NAME := talljoe
diff --git a/layouts/community/60_hhkb/yanfali/keymap.c b/layouts/community/60_hhkb/yanfali/keymap.c
deleted file mode 100644
index d069c82396..0000000000
--- a/layouts/community/60_hhkb/yanfali/keymap.c
+++ /dev/null
@@ -1,51 +0,0 @@
-#include QMK_KEYBOARD_H
-
-enum _layers {
- BL,
- FN
-};
-/*
- * Default HHKB Layout
- */
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- /* 0: Default layer
-┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐
-│ Esc │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │ \ │ ` │
-├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
-│ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │BkSpc│█████│
-├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
-│Ctrl │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │█████│Enter│█████│
-├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
-│Shift│█████│ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │█████│Shift│ Fn │
-├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
-│█████│ Gui │ Alt │█████│█████│Space│█████│█████│█████│█████│█████│ Alt │ Gui │█████│█████│
-└─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘
- */
-[BL] = LAYOUT_60_hhkb(
- KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_GRV, 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_LBRC, KC_RBRC, KC_BSLS,
- LCTL_T(KC_ESC), 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, MO(FN),
- KC_LALT, KC_LGUI, KC_SPC, KC_RGUI, KC_RALT ),
- /* 1: HHKB Fn layer
-┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐
-│ Pwr │ F1 │ F2 │ F3 │ F4 │ F5 │ F6 │ F7 │ F8 │ F9 │ F10 │ F11 │ F12 │ Ins │ Del │
-├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
-│Caps │ RGB │RGBfw│RGBrv│BLtog│BLstp│ │ │ Psc │ Slk │ Pus │ Up │ │ │█████│
-├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
-│ │ VoD │ VoU │ Mut │ Ejc │ │NP_* │NP_/ │Home │PgUp │Left │Right│█████│NPEnt│█████│
-├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
-│ │█████│ │ │ │ │ │NP_+ │NP_- │ End │PgDwn│Down │█████│ │ │
-├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
-│█████│ │ │█████│█████│█████│ │█████│█████│█████│█████│ │ │█████│█████│
-└─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘
- */
-[FN]= LAYOUT_60_hhkb(
- KC_PWR, 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_INS, KC_DEL,
- _______, RGB_TOG, KC_UP, RGB_RMOD, BL_TOGG, BL_STEP, KC_TRNS, KC_TRNS, KC_PSCR, KC_SCRL, KC_PAUS, KC_UP, KC_TRNS, QK_BOOT,
- KC_CAPS, KC_LEFT, KC_DOWN, KC_RIGHT, KC_EJCT, KC_TRNS, KC_PAST, KC_PSLS, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, KC_PENT,
- KC_TRNS, RGB_TOG, RGB_MOD, KC_TRNS, KC_TRNS, KC_TRNS, KC_PPLS, KC_PMNS, KC_MUTE, KC_VOLD, KC_VOLU, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ),
-};
-
-
diff --git a/layouts/community/60_iso/bifbofii/keymap.c b/layouts/community/60_iso/bifbofii/keymap.c
deleted file mode 100755
index 890bdb4c56..0000000000
--- a/layouts/community/60_iso/bifbofii/keymap.c
+++ /dev/null
@@ -1,201 +0,0 @@
-/* Copyright 2021 Christoph Jabs (BifbofII)
- *
- * 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
-
-/* ====== Unicode ====== */
-/* Character names */
-enum unicode_names { SAE, BAE, SUE, BUE, SOE, BOE, SS, EUR, CPR };
-
-/* Unicode map */
-const uint32_t unicode_map[] PROGMEM = {
- [SAE] = 0x00E4, // ä
- [BAE] = 0x00C4, // Ä
- [SUE] = 0x00FC, // ü
- [BUE] = 0x00DC, // Ü
- [SOE] = 0x00F6, // ü
- [BOE] = 0x00D6, // Ü
- [SS] = 0x00DF, // ß
- [EUR] = 0x20AC, // €
- [CPR] = 0x00A9 // ©
-};
-
-/* ====== Layers ====== */
-enum layer_names {
- QWERTY = 0,
- GAMING,
- FUNCTIONS_1,
- FUNCTIONS_2,
- UNICODE,
- SPECIALS,
-};
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
- /* Qwerty
- * ,-----------------------------------------------------------------------------------------.
- * | ` ~ | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | Bkspc |
- * |-----------------------------------------------------------------------------------------+
- * | Tab | Q | W | E | R | T | Y | U | I | O | P | [ | ] | Enter |
- * |-----------------------------------------------------------------------------------+ +
- * | Esc/Unic| A | S | D | F | G | H | J | K | L | ; | ' | \ | |
- * |-----------------------------------------------------------------------------------------+
- * | Shift | Z | X | C | V | B | N | M | , | . | / | RShift |
- * |-----------------------------------------------------------------------------------------+
- * | Ctrl | Super | Alt | Space/Fnc | Alt | Super | Ctrl | Spec |
- * `-----------------------------------------------------------------------------------------'
- */
- [QWERTY] = LAYOUT_60_iso(
- 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_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,
- LT(UNICODE, KC_ESC), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_BSLS, KC_ENT,
- KC_LSFT, KC_NO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,
- KC_LCTL, KC_LGUI, KC_LALT, LT(FUNCTIONS_1, KC_SPC), KC_RALT, KC_RGUI, KC_RCTL, MO(SPECIALS)
- ),
-
- /* Arrows and media keys
- * ,-----------------------------------------------------------------------------------------.
- * | | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | Del |
- * |-----------------------------------------------------------------------------------------+
- * | | | | | |Mute | Prev| V- | V+ | Next| Play| | | Enter |
- * |-----------------------------------------------------------------------------------+ +
- * | Caps | | < | | | > |Left |Down | Up |Right| | | | |
- * |-----------------------------------------------------------------------------------------+
- * | Shift | | | | | |Home |Page-|Page+| End | | Fnc2 |
- * |-----------------------------------------------------------------------------------------+
- * | Ctrl | Super | Alt | Trans | Alt | Super | Ctrl | |
- * `-----------------------------------------------------------------------------------------'
- */
- [FUNCTIONS_1] = LAYOUT_60_iso(
- _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL,
- _______, _______, _______, _______, _______, KC_MUTE, KC_MPRV, KC_VOLD, KC_VOLU, KC_MNXT, KC_MEDIA_PLAY_PAUSE, _______, _______,
- KC_CAPS, _______, KC_WBAK, _______, _______, KC_WFWD, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, _______, _______, _______, KC_ENT,
- KC_LSFT, _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_PGUP, KC_END, _______, MO(FUNCTIONS_2),
- KC_LCTL, KC_LGUI, KC_LALT, _______, KC_RALT, KC_RGUI, KC_RCTL, _______
- ),
-
- /* More Function keys
- * ,-----------------------------------------------------------------------------------------.
- * | | F13 | F14 | F15 | F16 | F17 | F18 | F19 | F20 | F21 | F22 | F23 | F24 | Del |
- * |-----------------------------------------------------------------------------------------+
- * | | | | | | | | | | | | | | Enter |
- * |-----------------------------------------------------------------------------------+ +
- * | Caps | | | | | | | | | | | | | |
- * |-----------------------------------------------------------------------------------------+
- * | Shift | | | | | | | | | | | Trans |
- * |-----------------------------------------------------------------------------------------+
- * | Ctrl | Super | Alt | Trans | Alt | Super | Ctrl | |
- * `-----------------------------------------------------------------------------------------'
- */
- [FUNCTIONS_2] = LAYOUT_60_iso(
- _______, KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_F21, KC_F22, KC_F23, KC_F24, KC_DEL,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- KC_CAPS, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_ENT,
- KC_LSFT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- KC_LCTL, KC_LGUI, KC_LALT, _______, KC_RALT, KC_RGUI, KC_RCTL, _______
- ),
-
- /* German Umlaute
- * ,-----------------------------------------------------------------------------------------.
- * | | | | | | | | | | | | | | Bkspc |
- * |-----------------------------------------------------------------------------------------+
- * | | | | € | | | | Ü | | Ö | | | | Enter |
- * |-----------------------------------------------------------------------------------+ +
- * | Trans | Ä | ß | | | | | | | | | | | |
- * |-----------------------------------------------------------------------------------------+
- * | Trans | | | © | | | | | | | | Trans |
- * |-----------------------------------------------------------------------------------------+
- * | Ctrl | Super | Alt | Space | Alt | Super | Ctrl | |
- * `-----------------------------------------------------------------------------------------'
- */
- [UNICODE] = LAYOUT_60_iso(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_BSPC,
- _______, _______, _______, UM(EUR), _______, _______, _______, UP(SUE, BUE), _______, UP(SOE, BOE), _______, _______, _______,
- KC_TRNS, UP(SAE, BAE), UM(SS), _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_ENT,
- KC_LSFT, _______, _______, _______, UM(CPR), _______, _______, _______, _______, _______, _______, _______, KC_RSFT,
- KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL, _______
- ),
-
- /* Specials (Reset, etc)
- * ,-----------------------------------------------------------------------------------------.
- * | | | | | | | | | | | | RGB-|RGB+ | |
- * |-----------------------------------------------------------------------------------------+
- * | | | Win | | | | | | | OSX | | | | RGB |
- * |-----------------------------------------------------------------------------------+ tog +
- * | | | | | |Gamin| | | | Lnx | | | | |
- * |-----------------------------------------------------------------------------------------+
- * | | | | | |QK_BOOT| | | | | | |
- * |-----------------------------------------------------------------------------------------+
- * | | | | | | | | Trans|
- * `-----------------------------------------------------------------------------------------'
- */
- [SPECIALS] = LAYOUT_60_iso(
- XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_VAD, RGB_VAI, XXXXXXX,
- XXXXXXX, XXXXXXX, UC_WINC, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, UC_MAC, XXXXXXX, XXXXXXX, XXXXXXX,
- XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, TG(GAMING), XXXXXXX, XXXXXXX, XXXXXXX, UC_LINX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_TOG,
- XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, QK_BOOT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
- XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_TRNS
- ),
-
- /* Gaming
- * ,-----------------------------------------------------------------------------------------.
- * | Esc | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | Bkspc |
- * |-----------------------------------------------------------------------------------------+
- * | Tab | Q | W | E | R | T | Y | U | I | O | P | [ | ] | Enter |
- * |-----------------------------------------------------------------------------------+ +
- * | Caps | A | S | D | F | G | H | J | K | L | ; | ' | \ | |
- * |-----------------------------------------------------------------------------------------+
- * | Shift | Z | X | C | V | B | N | M | , | . | / | RShift |
- * |-----------------------------------------------------------------------------------------+
- * | Ctrl | Super | Alt | Space | Alt | Super | Ctrl | Spec |
- * `-----------------------------------------------------------------------------------------'
- */
- [GAMING] = LAYOUT_60_iso(
- KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC,
- KC_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_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_BSLS, KC_ENT,
- KC_LSFT, KC_NO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,
- KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL, MO(SPECIALS)
- ),
-};
-
-/* ====== LED Underglow ====== */
-#ifdef RGBLIGHT_ENABLE
-void keyboard_post_init_user(void) {
- rgblight_mode_noeeprom(1);
- rgblight_sethsv_noeeprom(HSV_WHITE);
-}
-
-bool led_update_user(led_t led_state) {
- if (led_state.caps_lock) {
- rgblight_mode_noeeprom(1);
- rgblight_sethsv_noeeprom(HSV_RED);
- }
- return true;
-}
-
-layer_state_t layer_state_set_user(layer_state_t state) {
- rgblight_mode_noeeprom(1);
- if (layer_state_cmp(state, GAMING)) {
- rgblight_sethsv_noeeprom(HSV_BLUE);
- } else if (layer_state_cmp(state, SPECIALS)) {
- rgblight_sethsv_noeeprom(HSV_PURPLE);
- } else {
- rgblight_sethsv_noeeprom(HSV_WHITE);
- }
- return state;
-}
-#endif
diff --git a/layouts/community/60_iso/bifbofii/readme.md b/layouts/community/60_iso/bifbofii/readme.md
deleted file mode 100755
index 030e03a117..0000000000
--- a/layouts/community/60_iso/bifbofii/readme.md
+++ /dev/null
@@ -1,108 +0,0 @@
-# BifbofII 60% ISO Layout
-
-![BifbofII 60% ISO](https://i.imgur.com/jz4s3iR.jpeg)
-
-This layout is for the DZ60 and other keyboards with ISO keycaps in a US layout.
-
-The first layer is a standard US QWERTY Layout.
-By holding down the spacebar, a set of function keys as arrow keys become available.
-By holding right shift and space, a second layer of function keys becomes available.
-ESC is mapped to the Caps Lock key.
-If the Caps Lock key is held, a selection of unicode Characters, such as Umlauts become available.
-By pressing Special and G you can toggle a layer for gaming that has normal keymappings.
-
-## QWERTY Layer
-
-```
-,-----------------------------------------------------------------------------------------.
-| ` ~ | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | Bkspc |
-|-----------------------------------------------------------------------------------------+
-| Tab | Q | W | E | R | T | Y | U | I | O | P | [ | ] | Enter |
-|-----------------------------------------------------------------------------------+ +
-| Esc/Unic| A | S | D | F | G | H | J | K | L | ; | ' | \ | |
-|-----------------------------------------------------------------------------------------+
-| Shift | Z | X | C | V | B | N | M | , | . | / | RShift |
-|-----------------------------------------------------------------------------------------+
-| Ctrl | Super | Alt | Space/Fnc | Alt | Super | Ctrl | Spec |
-`-----------------------------------------------------------------------------------------'
-```
-
-## Function Layer 1
-
-```
-,-----------------------------------------------------------------------------------------.
-| | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | Del |
-|-----------------------------------------------------------------------------------------+
-| | | | | |Mute | Prev| V- | V+ | Next| Play| | | Enter |
-|-----------------------------------------------------------------------------------+ +
-| Caps | | < | | | > |Left |Down | Up |Right| | | | |
-|-----------------------------------------------------------------------------------------+
-| Shift | | | | | |Home |Page-|Page+| End | | Fnc2 |
-|-----------------------------------------------------------------------------------------+
-| Ctrl | Super | Alt | Trans | Alt | Super | Ctrl | |
-`-----------------------------------------------------------------------------------------'
-```
-
-## Function Layer 2
-
-```
-,-----------------------------------------------------------------------------------------.
-| | F13 | F14 | F15 | F16 | F17 | F18 | F19 | F20 | F21 | F22 | F23 | F24 | Del |
-|-----------------------------------------------------------------------------------------+
-| | | | | | | | | | | | | | Enter |
-|-----------------------------------------------------------------------------------+ +
-| Caps | | | | | | | | | | | | | |
-|-----------------------------------------------------------------------------------------+
-| Shift | | | | | | | | | | | Trans |
-|-----------------------------------------------------------------------------------------+
-| Ctrl | Super | Alt | Trans | Alt | Super | Ctrl | |
-`-----------------------------------------------------------------------------------------'
-```
-
-## Unicode Layer
-
-```
-,-----------------------------------------------------------------------------------------.
-| | | | | | | | | | | | | | Bkspc |
-|-----------------------------------------------------------------------------------------+
-| | | | € | | | | Ü | | Ö | | | | Enter |
-|-----------------------------------------------------------------------------------+ +
-| Trans | Ä | ß | | | | | | | | | | | |
-|-----------------------------------------------------------------------------------------+
-| Trans | | | © | | | | | | | | Trans |
-|-----------------------------------------------------------------------------------------+
-| Ctrl | Super | Alt | Space | Alt | Super | Ctrl | |
-`-----------------------------------------------------------------------------------------'
-```
-
-## Specials Layer
-
-```
-,-----------------------------------------------------------------------------------------.
-| | | | | | | | | | | | RGB-|RGB+ | |
-|-----------------------------------------------------------------------------------------+
-| | | Win | | | | | | | OSX | | | | RGB |
-|-----------------------------------------------------------------------------------+ tog +
-| | | | | |Gamin| | | | Lnx | | | | |
-|-----------------------------------------------------------------------------------------+
-| | | | | |QK_BOOT| | | | | | |
-|-----------------------------------------------------------------------------------------+
-| | | | | | | | Trans|
-`-----------------------------------------------------------------------------------------'
-```
-
-## Gaming Layer
-
-```
-,-----------------------------------------------------------------------------------------.
-| Esc | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | Bkspc |
-|-----------------------------------------------------------------------------------------+
-| Tab | Q | W | E | R | T | Y | U | I | O | P | [ | ] | Enter |
-|-----------------------------------------------------------------------------------+ +
-| Caps | A | S | D | F | G | H | J | K | L | ; | ' | \ | |
-|-----------------------------------------------------------------------------------------+
-| Shift | Z | X | C | V | B | N | M | , | . | / | RShift |
-|-----------------------------------------------------------------------------------------+
-| Ctrl | Cmd | Alt | Space | Alt | Super | Ctrl | Spec |
-`-----------------------------------------------------------------------------------------'
-```
diff --git a/layouts/community/60_iso/bifbofii/rules.mk b/layouts/community/60_iso/bifbofii/rules.mk
deleted file mode 100644
index 502b2def76..0000000000
--- a/layouts/community/60_iso/bifbofii/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-UNICODEMAP_ENABLE = yes
diff --git a/layouts/community/60_iso/readme.md b/layouts/community/60_iso/readme.md
index 42ff805fb6..cd1071f2f3 100644
--- a/layouts/community/60_iso/readme.md
+++ b/layouts/community/60_iso/readme.md
@@ -1,3 +1,3 @@
# 60_iso
- LAYOUT_60_iso \ No newline at end of file
+ LAYOUT_60_iso
diff --git a/layouts/community/60_iso/unxmaal/README.md b/layouts/community/60_iso/unxmaal/README.md
deleted file mode 100644
index 6c08bbb100..0000000000
--- a/layouts/community/60_iso/unxmaal/README.md
+++ /dev/null
@@ -1,22 +0,0 @@
-Unxmaal's GH60 Layout
-=====================
-* Mostly stolen from /u/robotmaxtron
-
-##Quantum MK Firmware
-For the full Quantum feature list, see the parent readme.md.
-
-* Standard Mac ANSI layout
-* Spacebar acts as space when tapped, Fn when held
-* Menu acts as menu when tapped, Fn2 when held
-* Layer1:
- * Top row = `~, F1-F12, Del
- * JKIL = arrow cluster
-* Layer2:
- * Top row = media controls
- * JKIL = PgDn/Up/Home/Insert
- * Backspace = Reset
-
-### Additional Credits
-Keymap has been based on various keymaps available from the QMK Repo for the GH60-SATAN and KC60 keyboards.
-
-![wiring](https://i.imgur.com/8b8T1fQ.jpg) \ No newline at end of file
diff --git a/layouts/community/60_iso/unxmaal/config.h b/layouts/community/60_iso/unxmaal/config.h
deleted file mode 100644
index 4606bc8a6d..0000000000
--- a/layouts/community/60_iso/unxmaal/config.h
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
-Copyright 2012 Jun Wako <wakojun@gmail.com>
-
-This program is free software: you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program. If not, see <http://www.gnu.org/licenses/>.
-*/
-
-#pragma once
-
-#define WS2812_DI_PIN F4
-#define RGBLIGHT_EFFECT_BREATHING
-#define RGBLIGHT_EFFECT_RAINBOW_MOOD
-#define RGBLIGHT_EFFECT_RAINBOW_SWIRL
-#define RGBLIGHT_EFFECT_SNAKE
-#define RGBLIGHT_EFFECT_KNIGHT
-#define RGBLIGHT_EFFECT_CHRISTMAS
-#define RGBLIGHT_EFFECT_STATIC_GRADIENT
-#define RGBLIGHT_EFFECT_RGB_TEST
-#define RGBLIGHT_EFFECT_ALTERNATING
-#define RGBLIGHT_EFFECT_TWINKLE
- #define RGBLED_NUM 8 // Number of LEDs
- #define RGBLIGHT_HUE_STEP 8
- #define RGBLIGHT_SAT_STEP 8
- #define RGBLIGHT_VAL_STEP 8
diff --git a/layouts/community/60_iso/unxmaal/keymap.c b/layouts/community/60_iso/unxmaal/keymap.c
deleted file mode 100644
index ff97ac9eaa..0000000000
--- a/layouts/community/60_iso/unxmaal/keymap.c
+++ /dev/null
@@ -1,115 +0,0 @@
-#include QMK_KEYBOARD_H
-#include "action_layer.h"
-
-#define _BL 0
-#define _AL 1
-#define _FL 2
-#define _UL 3
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- /*
- * ISO Base, Mac style
- * ,-----------------------------------------------------------------------------.
- * |Esc | 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| = | Backsp |
- * |-----------------------------------------------------------------------------|
- * |Tab | Q | W | E | R | T | Y | U | I| O| P| [| ]| |
- * |----------------------------------------------------------------------- |
- * |Caps/Fn | A| S| D| F| G| H| J| K| L| ;| '| #|Enter|
- * |-----------------------------------------------------------------------------|
- * |Shift| \| Z| X| C| V| B| N| M| ,| .| /| Shift |
- * |-----------------------------------------------------------------------------|
- * |Fn|Alt |Gui | Space(tapped), Fn(held) |Gui |Alt |Menu(tapped, Fn2(held)|Ctrl|
- * `-----------------------------------------------------------------------------'
- */
- [_BL] = LAYOUT_60_iso(
- KC_ESC,KC_1,KC_2,KC_3,KC_4,KC_5,KC_6,KC_7,KC_8,KC_9,KC_0,KC_MINS,KC_EQL,KC_BSPC,
- KC_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_LCTL,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_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,
- MO(1),KC_LALT,KC_LGUI, LT(1,KC_SPACE), KC_RGUI, KC_RALT, LT(2,KC_MENU), KC_RCTL),
-
- /*
- * Pok3r style arrow cluster
- * ,-----------------------------------------------------------.
- * |`~ | F1| F2| F3| F4| F5| F6| F7| F8| F9| F10| F11| F12|DEL |
- * |-----------------------------------------------------------|
- * | | | | | | | | |Up| | | | | |
- * |------------------------------------------------------- |
- * | | | | | | | |Left|Down|Right| | | |
- * |-----------------------------------------------------------|
- * | | | | | | | | | | | | |
- * |-----------------------------------------------------------|
- * | | | | | | | | |
- * `-----------------------------------------------------------'
- */
- [_AL] = LAYOUT_60_iso(
- KC_GRV,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_DELETE,
- KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_UP,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
- KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_LEFT,KC_DOWN,KC_RGHT,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
- KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
- KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS),
-
-
- /*
- * Secondary function layer
- * ,-------------------------------------------------------------.
- * | | | | | | | | RW|Play|FF| Mute| Vol Down | Vol up |Reset |
- * |-------------------------------------------------------------|
- * | | | | | | | | | |PgUp| | | | |
- * |-------------------------------------------------------- |
- * | | | | | | | |Home|PgDown|End| | | | |
- * |-------------------------------------------------------------|
- * | | | | | | | | | | | | |
- * |-------------------------------------------------------------|
- * | | | | | | | | |
- * `-------------------------------------------------------------'
- */
- [_FL] = LAYOUT_60_iso(
- KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_MPRV,KC_MPLY,KC_MNXT,KC_MUTE,KC_VOLD,KC_VOLU,QK_BOOT,
- KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_PGUP,KC_TRNS,KC_TRNS,KC_TRNS,
- KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_HOME,KC_TRNS,KC_HOME,KC_PGDN,KC_END,KC_TRNS,KC_TRNS,KC_TRNS,
- KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
- KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS),
-
- /*
- * Locking layer for controlling the underglow.
- * NOTE: currently unused.
- *
- * ,-----------------------------------------------------------.
- * | | | | | | | | | | | | | | |
- * |-----------------------------------------------------------|
- * | | | | | | | | | | | | | | |
- * |------------------------------------------------------- |
- * | |On|Mode| | | | | | | | | | | |
- * |-----------------------------------------------------------|
- * | | |Hue+|Hue-|Sat+|Sat-|Val+|Val-| | | | |
- * |-----------------------------------------------------------|
- * | | | | | | | | |
- * `-----------------------------------------------------------'
- */
- [_UL] = LAYOUT_60_iso(
- KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
- KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
- KC_TRNS,RGB_TOG,RGB_MOD,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
- KC_TRNS,KC_TRNS,KC_TRNS,RGB_HUI,RGB_HUD,RGB_SAI,RGB_SAD,RGB_VAI,RGB_VAD,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
- KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS),
-};
-
-void matrix_scan_user(void) {
-// Layer LED indicators
-// ESC led on when in function layer, WASD cluster leds enabled when on arrow cluster
- #ifdef KEYBOARD_gh60
- uint32_t layer = layer_state;
- if (layer & (1<<1)) {
- gh60_wasd_leds_on();
- } else {
- gh60_wasd_leds_off();
- }
-
- if (layer & (1<<2)) {
- gh60_esc_led_on();
- } else {
- gh60_esc_led_off();
- }
- #endif
-};
diff --git a/layouts/community/60_iso/unxmaal/rules.mk b/layouts/community/60_iso/unxmaal/rules.mk
deleted file mode 100644
index 5c9eb2a26d..0000000000
--- a/layouts/community/60_iso/unxmaal/rules.mk
+++ /dev/null
@@ -1,7 +0,0 @@
-# Only enable RGBLIGHT on avr boards
-ifeq ($(strip $(PLATFORM_KEY)),avr)
- # ...that are at least prepared for it
- ifeq ($(strip $(RGBLIGHT_SUPPORTED)),yes)
- RGBLIGHT_ENABLE = yes # Enable RGB Underglow
- endif
-endif
diff --git a/layouts/community/60_iso_split_bs_rshift/readme.md b/layouts/community/60_iso_split_bs_rshift/readme.md
new file mode 100644
index 0000000000..ff7fa16454
--- /dev/null
+++ b/layouts/community/60_iso_split_bs_rshift/readme.md
@@ -0,0 +1,3 @@
+# 60_iso_split_bs_rshift
+
+ LAYOUT_60_iso_split_bs_rshift
diff --git a/layouts/community/60_iso_tsangan/readme.md b/layouts/community/60_iso_tsangan/readme.md
new file mode 100644
index 0000000000..edb7f9242d
--- /dev/null
+++ b/layouts/community/60_iso_tsangan/readme.md
@@ -0,0 +1,3 @@
+# 60_iso_tsangan
+
+ LAYOUT_60_iso_tsangan
diff --git a/layouts/community/60_iso_tsangan_split_bs_rshift/readme.md b/layouts/community/60_iso_tsangan_split_bs_rshift/readme.md
new file mode 100644
index 0000000000..4313926ca1
--- /dev/null
+++ b/layouts/community/60_iso_tsangan_split_bs_rshift/readme.md
@@ -0,0 +1,3 @@
+# 60_iso_tsangan_split_bs_rshift
+
+ LAYOUT_60_iso_tsangan_split_bs_rshift
diff --git a/layouts/community/60_iso_wkl/readme.md b/layouts/community/60_iso_wkl/readme.md
new file mode 100644
index 0000000000..f109450c9b
--- /dev/null
+++ b/layouts/community/60_iso_wkl/readme.md
@@ -0,0 +1,3 @@
+# 60_iso_wkl
+
+ LAYOUT_60_iso_wkl
diff --git a/layouts/community/60_iso_wkl_split_bs_rshift/readme.md b/layouts/community/60_iso_wkl_split_bs_rshift/readme.md
new file mode 100644
index 0000000000..c1f4df013b
--- /dev/null
+++ b/layouts/community/60_iso_wkl_split_bs_rshift/readme.md
@@ -0,0 +1,3 @@
+# 60_iso_wkl_split_bs_rshift
+
+ LAYOUT_60_iso_wkl_split_bs_rshift
diff --git a/layouts/community/60_jis/readme.md b/layouts/community/60_jis/readme.md
new file mode 100644
index 0000000000..236abdfa07
--- /dev/null
+++ b/layouts/community/60_jis/readme.md
@@ -0,0 +1,3 @@
+# 60_jis
+
+ LAYOUT_60_jis
diff --git a/layouts/community/60_tsangan_hhkb/bcat/keymap.c b/layouts/community/60_tsangan_hhkb/bcat/keymap.c
deleted file mode 100644
index 11518c97cb..0000000000
--- a/layouts/community/60_tsangan_hhkb/bcat/keymap.c
+++ /dev/null
@@ -1,48 +0,0 @@
-/* Copyright 2021 Jonathan Rascher
- *
- * 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 "bcat.h"
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- // clang-format off
- /* Default layer: http://www.keyboard-layout-editor.com/#/gists/86b33d75aa6f56d8781ab3d8475f4e77 */
- [LAYER_DEFAULT] = LAYOUT_60_tsangan_hhkb(
- KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS, KC_GRV,
- 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_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_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, LY_FN1,
- KC_LCTL, LY_FN2, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL
- ),
- /* Function 1 layer: http://www.keyboard-layout-editor.com/#/gists/f6311fd7e315de781143b80eb040a551 */
- [LAYER_FUNCTION_1] = LAYOUT_60_tsangan_hhkb(
- _______, 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_INS, KC_DEL,
- KC_CAPS, _______, _______, _______, _______, _______, _______, _______, KC_PSCR, KC_SCRL, KC_PAUS, KC_UP, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, _______,
- _______, KC_APP, _______, _______, _______, _______, _______, _______, KC_END, KC_PGDN, KC_DOWN, _______, _______,
- _______, _______, _______, _______, _______, _______, _______
- ),
- /* Function 2 layer: http://www.keyboard-layout-editor.com/#/gists/65ac939caec878401603bc36290852d4 */
- [LAYER_FUNCTION_2] = LAYOUT_60_tsangan_hhkb(
- _______, 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_INS, KC_DEL,
- _______, _______, KC_MPLY, KC_VOLU, KC_MSTP, BL_BRTG, EE_CLR, QK_BOOT, _______, _______, _______, RGB_VAI, _______, _______,
- _______, _______, KC_MPRV, KC_VOLD, KC_MNXT, BL_UP, _______, RGB_SPI, RGB_HUI, RGB_SAI, RGB_RMOD, RGB_MOD, RGB_TOG,
- _______, _______, _______, KC_MUTE, _______, BL_DOWN, _______, RGB_SPD, RGB_HUD, RGB_SAD, RGB_VAD, _______, _______,
- _______, _______, _______, _______, _______, _______, _______
- ),
- // clang-format on
-};
diff --git a/layouts/community/60_tsangan_hhkb/bcat/readme.md b/layouts/community/60_tsangan_hhkb/bcat/readme.md
deleted file mode 100644
index c8d0d72dd0..0000000000
--- a/layouts/community/60_tsangan_hhkb/bcat/readme.md
+++ /dev/null
@@ -1,44 +0,0 @@
-# bcat's 60% Tsangan HHKB layout
-
-This is a Tsangan/HHKB (split backspace, split right shift) layout following
-the [traditional HHKB layout](https://deskthority.net/wiki/HHKB_Professional2)
-with a few changes:
-
-* The Delete key is mapped as Backspace (HHKB DIP switch 3).
-
-* The Alt and Super keys are swapped to put Alt directly adjacent to the
-spacebar (HHKB DIP switch 5).
-
-* The left Super key is replaced with another Function key (HHKB DIP switch 2).
-Unlike on the real HHKB, this key triggers a different Function 2 layer. (This
-also helps prevent accidental Super key presses while gaming.)
-
-* The Function 2 layer contains reset keys, RGB underglow and backlight
-controls (in place of the arrow and navigation keys), and media controls
-(centered around the ESDF cluster).
-
-* The Function 2 layer also has the F1-F12 keys mapped just like the Function 1
-layer. This is a concession to gaming because it enables these keys to be
-easily typed with the left hand, without taking the right hand off the mouse.
-
-* The leftmost and rightmost bottom row keys are mapped to Ctrl rather than
-anything more useful because most of my Tsangan PCBs actually have HHKB plates
-and/or blockers, so there aren't switches installed in those positions.
-
-## Default layer
-
-![Default layer layout](https://i.imgur.com/3tBxms8.png)
-
-([KLE](http://www.keyboard-layout-editor.com/#/gists/86b33d75aa6f56d8781ab3d8475f4e77))
-
-## Function 1 layer
-
-![Function l 1ayer layout](https://i.imgur.com/jn4HtA5.png)
-
-([KLE](http://www.keyboard-layout-editor.com/#/gists/f6311fd7e315de781143b80eb040a551))
-
-## Function 2 layer
-
-![Function 2 layer layout](https://i.imgur.com/4Jdw9eL.png)
-
-([KLE](http://www.keyboard-layout-editor.com/#/gists/65ac939caec878401603bc36290852d4))
diff --git a/layouts/community/60_tsangan_hhkb/brandonschlack-tsngn/keymap.c b/layouts/community/60_tsangan_hhkb/brandonschlack-tsngn/keymap.c
deleted file mode 100644
index d683971003..0000000000
--- a/layouts/community/60_tsangan_hhkb/brandonschlack-tsngn/keymap.c
+++ /dev/null
@@ -1,84 +0,0 @@
-/* Copyright 2020 Brandon Schlack
- *
- * 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 "brandonschlack.h"
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-/* Base layer
- * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
- * │Esc│! 1│@ 2│# 3│$ 4│% 5│^ 6│& 7│* 8│( 9│) 0│_ -│+ =│| \│~ `│
- * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤
- * │Tab  │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │{ [│} ]│ Bspc│
- * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤
- * │HyCaps│ A │ S │ D │ F │ G │ H │ J │ K │ L │: ;│" '│   Enter│
- * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤
- * │LShift  │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │↑ Shft│FnP│
- * ├─────┬──┴┬──┴──┬┴───┴───┴───┴───┴───┴───┴──┬┴───┴┬───┬─┴───┤
- * │Ctrl │Opt│Cmd  │                           │ ←Cmd│↓Op│→Ctrl│
- * └─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘
- */
-[_BASE] = LAYOUT_60_tsangan_hhkb(
- KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS, KC_GRV,
- 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_BSPC,
- HY_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_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, UP_RSFT, PLY_FN1,
- KC_LCTL, KC_LOPT, KC_LCMD, KC_SPC, LFT_CMD, DWN_OPT, RGT_CTL
-),
-
-/* Function Layer
- * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
- * │MKE│ F1│ F2│ F3│ F4│ F5│ F6│ F7│ F8│ F9│F10│F11│F12│LHP│SLP│
- * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤
- * │RMod │RH+│RS+│RV+│Bl+│   │   │   │   │   │   │ ↑ │MNC│ Del │
- * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤
- * │RTgl  │RH-│RS-│RV-│Bl-│   │   │   │VlD│Vlu│ ← │ → │   Play │
- * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤
- * │        │LYR│Thm│BlT│   │RST│   │Mut│Prv│Nxt│ ↓ │PgUSft│   │
- * ├─────┬──┴┬──┴──┬┴───┴───┴───┴───┴───┴───┴──┬┴───┴┬───┬─┴───┤
- * │     │   │     │                           │HmCmd│PDO│EndCl│
- * └─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘
- */
-[_FN1] = LAYOUT_60_tsangan_hhkb(
- QM_MAKE, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, MC_LHPD, MC_SLPD,
- RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, BL_UP, _______, _______, _______, _______, _______, _______, KC_UP, MC_MSSN, KC_DEL,
- RGB_TOG, RGB_HUD, RGB_SAD, RGB_VAD, BL_DOWN, _______, _______, _______, KC_VOLD, KC_VOLU, KC_LEFT, KC_RGHT, KC_MPLY,
- _______, RGB_LYR, RGB_THM, BL_TOGG, _______, QK_BOOT, _______, KC_MUTE, KC_MPRV, KC_MNXT, KC_DOWN, PGU_SFT, _______,
- _______, _______, _______, _______, HOM_CMD, PGD_OPT, END_CTL
-)
-/* Layer
- * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
- * │   │   │   │   │   │   │   │   │   │   │   │   │   │   │   │
- * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤
- * │     │   │   │   │   │   │   │   │   │   │   │   │   │     │
- * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤
- * │      │   │   │   │   │   │   │   │   │   │   │   │        │
- * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤
- * │        │   │   │   │   │   │   │   │   │   │   │      │   │
- * ├─────┬──┴┬──┴──┬┴───┴───┴───┴───┴───┴───┴──┬┴───┴┬───┬─┴───┤
- * │     │   │     │                           │     │   │     │
- * └─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘
- */
-/*
-[BLANK] = LAYOUT_60_tsangan_hhkb(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______
-)
-*/
-
-};
diff --git a/layouts/community/60_tsangan_hhkb/brandonschlack-tsngn/readme.md b/layouts/community/60_tsangan_hhkb/brandonschlack-tsngn/readme.md
deleted file mode 100644
index d79cf7f07e..0000000000
--- a/layouts/community/60_tsangan_hhkb/brandonschlack-tsngn/readme.md
+++ /dev/null
@@ -1,11 +0,0 @@
-# brandonschlack's 60 Tsangan HHKB Layout
-
-It is used on
-
-* [AN-C](https://github.com/qmk/qmk_firmware/tree/master/keyboards/cannonkeys/an_c)
-* [Instant60](https://github.com/qmk/qmk_firmware/tree/master/keyboards/cannonkeys/instant60)
-* [Polaris](https://github.com/qmk/qmk_firmware/tree/master/keyboards/ai03/polaris)
-* [Plain60](https://github.com/qmk/qmk_firmware/tree/master/keyboards/maartenwut/plain60)
-
-## Features
-### Mod-Taps & Layer-Taps
diff --git a/layouts/community/60_tsangan_hhkb/brandonschlack-tsngn/rules.mk b/layouts/community/60_tsangan_hhkb/brandonschlack-tsngn/rules.mk
deleted file mode 100644
index 7aaf727ad2..0000000000
--- a/layouts/community/60_tsangan_hhkb/brandonschlack-tsngn/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-USER_NAME := brandonschlack
diff --git a/layouts/community/60_tsangan_hhkb/dohmain/keymap.c b/layouts/community/60_tsangan_hhkb/dohmain/keymap.c
deleted file mode 100644
index 3f5c09acf5..0000000000
--- a/layouts/community/60_tsangan_hhkb/dohmain/keymap.c
+++ /dev/null
@@ -1,43 +0,0 @@
-#include QMK_KEYBOARD_H
-
-enum layer {
- QWERTY,
- COLEMAK,
- FUNCTION,
- ADJUST,
-};
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [QWERTY] = LAYOUT_60_tsangan_hhkb(
- KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS, KC_GRV,
- 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_BSPC,
- LT(2, KC_CAPS), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, LT(2,KC_ENT),
- SC_LSPO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, SC_RSPC, MO(3),
- KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_RGUI, KC_RALT, KC_RCTL
- ),
-
- [COLEMAK] = LAYOUT_60_tsangan_hhkb(
- KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS, KC_GRV,
- 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_BSPC,
- LT(2, KC_CAPS), KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT, LT(2,KC_ENT),
- SC_LSPO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, SC_RSPC, MO(3),
- KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_RGUI, KC_RALT, KC_RCTL
- ),
-
- [FUNCTION] = LAYOUT_60_tsangan_hhkb(
- XXXXXXX, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, XXXXXXX, XXXXXXX,
- XXXXXXX, XXXXXXX, KC_MPLY, KC_MPRV, KC_MNXT, XXXXXXX, XXXXXXX, KC_HOME, KC_UP, KC_END, KC_PSCR, KC_SCRL, KC_PAUS, XXXXXXX,
- _______, XXXXXXX, KC_MUTE, KC_VOLD, KC_VOLU, XXXXXXX, XXXXXXX, KC_LEFT, KC_DOWN, KC_RGHT, KC_DEL, KC_INS, _______,
- _______, KC_UNDO, KC_CUT, KC_COPY, KC_PSTE, KC_AGIN, XXXXXXX, XXXXXXX, KC_WBAK, KC_WFWD, KC_WREF, _______, KC_WHOM,
- _______, _______, _______, _______, _______, KC_APP, _______
- ),
-
- [ADJUST] = LAYOUT_60_tsangan_hhkb(
- C(A(KC_DEL)), XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_BRID, KC_BRIU, XXXXXXX, XXXXXXX,
- C(S(KC_ESC)), TO(0), XXXXXXX, XXXXXXX, QK_BOOT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
- XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
- XXXXXXX, XXXXXXX, XXXXXXX, TO(1), XXXXXXX, XXXXXXX, NK_TOGG, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______,
- XXXXXXX, XXXXXXX, XXXXXXX, _______, XXXXXXX, XXXXXXX, XXXXXXX
- ),
-
-};
diff --git a/layouts/community/60_tsangan_hhkb/dohmain/readme.md b/layouts/community/60_tsangan_hhkb/dohmain/readme.md
deleted file mode 100644
index 90b615a028..0000000000
--- a/layouts/community/60_tsangan_hhkb/dohmain/readme.md
+++ /dev/null
@@ -1,37 +0,0 @@
-# dohmain's 60% Tsangan HHKB layout
-## Layout
-![Layout Image](https://i.imgur.com/LfTyOF4.png)
-## Features
-### CapsFn
-* Function layer is accessed by holding down `CapsLock` or `Enter`.
-* `CapsLock` and `Enter` still function as normal when tapped.
-### Space Cadet Shift
-* Left and right `Shift` keys now output opening parenthesis `(` and closing parenthesis `)`, respectively, when tapped.
-* When held down they function as normal.
-### Navigation Cluster
-The Navigation Cluster is laid out to be easily accessed with the right hand without moving your hand away from your typing position. The Navigation Cluster layout is focused around the placement of the arrow keys and is easy to remember the placement when broken down into groups.
-* #### Arrows
- * The arrow keys are placed on `I` `J` `K` `L` and maintains their natural positions.
-* #### Home/End
- * `Home` on `U`
- * `End` on `O`.
-* #### Page Up/Page Down
- * `Page Up` on `H`
- * `Page Down` on `N`
-* #### Delete/Insert
- * `Delete` on `;`
- * `Insert` on `'`
-### Media Controls
- * `Play/Pause` on `W`
- * `Previous Track` on `E`
- * `Next Track` on `R`
- * `Mute` on `S`
- * `Volume Down` on `D`
- * `Volume Up` on `F`
-### Shortcuts
- * `Undo` on `Z`
- * `Cut` on `X`
- * `Copy` on `C`
- * `Paste` on `V`
- * `Redo` on `B`
- * `Print Screen` on `P`
diff --git a/layouts/community/60_tsangan_hhkb/readme.md b/layouts/community/60_tsangan_hhkb/readme.md
new file mode 100644
index 0000000000..78a0b82bee
--- /dev/null
+++ b/layouts/community/60_tsangan_hhkb/readme.md
@@ -0,0 +1,3 @@
+# 60_tsangan_hhkb
+
+ LAYOUT_60_tsangan_hhkb
diff --git a/layouts/community/60_tsangan_hhkb/yanfali/keymap.c b/layouts/community/60_tsangan_hhkb/yanfali/keymap.c
deleted file mode 100644
index a6b0154211..0000000000
--- a/layouts/community/60_tsangan_hhkb/yanfali/keymap.c
+++ /dev/null
@@ -1,25 +0,0 @@
-#include QMK_KEYBOARD_H
-
-enum layer {
- BASE,
- FN,
-};
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [BASE] = LAYOUT_60_tsangan_hhkb(
- KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_GRV, 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_LBRC, KC_RBRC, KC_BSLS,
- LCTL_T(KC_ESC), 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, MO(FN),
- KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_RGUI, KC_RALT, KC_RCTL
- ),
-
- [FN] = LAYOUT_60_tsangan_hhkb(
- _______, 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_INS, KC_DEL,
- _______, _______, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, EE_CLR, QK_BOOT,
- KC_CAPS, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______
- ),
-
-};
diff --git a/layouts/community/60_tsangan_hhkb/yanfali_wkl/keymap.c b/layouts/community/60_tsangan_hhkb/yanfali_wkl/keymap.c
deleted file mode 100644
index 7dd7aeffea..0000000000
--- a/layouts/community/60_tsangan_hhkb/yanfali_wkl/keymap.c
+++ /dev/null
@@ -1,25 +0,0 @@
-#include QMK_KEYBOARD_H
-
-enum layer {
- BASE,
- FN,
-};
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [BASE] = LAYOUT_60_tsangan_hhkb(
- KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_GRV, 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_LBRC, KC_RBRC, KC_BSLS,
- LCTL_T(KC_ESC), 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, MO(FN),
- KC_LALT, KC_NO, KC_LGUI, KC_SPC, KC_RGUI, KC_NO, KC_RALT
- ),
-
- [FN] = LAYOUT_60_tsangan_hhkb(
- _______, 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_INS, KC_DEL,
- _______, _______, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, EE_CLR, QK_BOOT,
- KC_CAPS, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______
- ),
-
-};
diff --git a/layouts/community/64_ansi/readme.md b/layouts/community/64_ansi/readme.md
new file mode 100644
index 0000000000..64bb28197d
--- /dev/null
+++ b/layouts/community/64_ansi/readme.md
@@ -0,0 +1,3 @@
+# 64_ansi
+
+ LAYOUT_64_ansi
diff --git a/layouts/community/64_iso/readme.md b/layouts/community/64_iso/readme.md
new file mode 100644
index 0000000000..f56813d4a2
--- /dev/null
+++ b/layouts/community/64_iso/readme.md
@@ -0,0 +1,3 @@
+# 64_iso
+
+ LAYOUT_64_iso
diff --git a/layouts/community/65_ansi/mechmerlin/keymap.c b/layouts/community/65_ansi/mechmerlin/keymap.c
deleted file mode 100644
index 23d42b6d8c..0000000000
--- a/layouts/community/65_ansi/mechmerlin/keymap.c
+++ /dev/null
@@ -1,57 +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 QMK_KEYBOARD_H
-#include "mechmerlin.h"
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- /*
- * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┬───┐
- * │ ` │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │ Backsp│Hom│
- * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┼───┤
- * │ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │ \ │PgU│
- * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┤
- * │ Ctrl │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ Enter │PgD│
- * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┤
- * │ Shift │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │ Shift│ ↑ │End│
- * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴──┬┴──┬┴──┬───┼───┼───┤
- * │Ctrl│GUI │Alt │ │Alt│FN │Ctl│ ← │ ↓ │ → │
- * └────┴────┴────┴────────────────────────┴───┴───┴───┴───┴───┴───┘
- */
- [_BL] = LAYOUT_65_ansi(
- QK_GESC, 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,
- 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_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(_FL), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
- ),
-
- [_FL] = LAYOUT_65_ansi(
- KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- RGB_TOG, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, RGB_RMOD,RGB_HUD, RGB_SAD, RGB_VAD, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, KC_PGUP, _______,
- _______, _______, _______, MO(_CL), _______, _______, _______, KC_HOME, KC_PGDN, KC_END
- ),
-
- [_CL] = LAYOUT_65_ansi(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, EE_CLR, QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, KC_VER, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
- ),
-};
-
diff --git a/layouts/community/65_ansi/mechmerlin/readme.md b/layouts/community/65_ansi/mechmerlin/readme.md
deleted file mode 100644
index 538f14b98c..0000000000
--- a/layouts/community/65_ansi/mechmerlin/readme.md
+++ /dev/null
@@ -1,10 +0,0 @@
-# MechMerlin's 65_ansi layout
-
-This is the 65% layout used by u/merlin36, host of the [MechMerlin](www.youtube.com/mechmerlin)
-YouTube channel.
-
-It is used on his
-* [Novelkeys NK65](https://github.com/qmk/qmk_firmware/tree/master/keyboards/nk65)
-
-### Build
-To build the firmware file associated with this keymap, simply run `make your_keyboard:mechmerlin`. \ No newline at end of file
diff --git a/layouts/community/65_ansi/readme.md b/layouts/community/65_ansi/readme.md
new file mode 100644
index 0000000000..462b3c6a4e
--- /dev/null
+++ b/layouts/community/65_ansi/readme.md
@@ -0,0 +1,3 @@
+# 65_ansi
+
+ LAYOUT_65_ansi
diff --git a/layouts/community/65_ansi/yanfali/keymap.c b/layouts/community/65_ansi/yanfali/keymap.c
deleted file mode 100755
index 80190889f1..0000000000
--- a/layouts/community/65_ansi/yanfali/keymap.c
+++ /dev/null
@@ -1,40 +0,0 @@
-#include QMK_KEYBOARD_H
-
-enum _layers {
- BS,
- FN
-};
-
-// shim wilba_tech
-#ifndef EF_DEC
- #define EF_DEC RGB_RMOD
- #define EF_INC RGB_MOD
- #define H1_DEC RGB_HUD
- #define H1_INC RGB_HUI
- #define H2_DEC RGB_HUD
- #define H2_INC RGB_HUI
- #define S1_DEC RGB_SAD
- #define S1_INC RGB_SAI
- #define S2_DEC RGB_SAD
- #define S2_INC RGB_SAI
- #define BR_DEC RGB_VAD
- #define BR_INC RGB_VAI
- #define ES_DEC KC_TRNS
- #define ES_INC KC_TRNS
-#endif
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-[BS] = LAYOUT_65_ansi( /* Base */
- 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,
- LCTL_T(KC_ESC), 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_LALT, KC_LGUI, KC_SPC, KC_RGUI, MO(FN), KC_RALT, KC_LEFT, KC_DOWN, KC_RGHT),
-
-[FN] = LAYOUT_65_ansi( /* FN */
- KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_TRNS,
- KC_TRNS, 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, S1_DEC, S1_INC, S2_DEC, S2_INC, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, EF_DEC, EF_INC, H1_DEC, H1_INC, H2_DEC, H2_INC, BR_DEC, BR_INC, ES_DEC, ES_INC, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_VOLU, KC_VOLD, KC_MUTE, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS)
-};
diff --git a/layouts/community/65_ansi_blocker/brandonschlack/config.h b/layouts/community/65_ansi_blocker/brandonschlack/config.h
deleted file mode 100644
index d7687315ed..0000000000
--- a/layouts/community/65_ansi_blocker/brandonschlack/config.h
+++ /dev/null
@@ -1,62 +0,0 @@
-/* Copyright 2019 Brandon Schlack
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-#pragma once
-
-#ifdef RGB_MATRIX_ENABLE
-// Disable RGB Effects
-# undef ENABLE_RGB_MATRIX_ALPHAS_MODS
-// #undef ENABLE_RGB_MATRIX_GRADIENT_UP_DOWN
-// #undef ENABLE_RGB_MATRIX_BREATHING
-# undef ENABLE_RGB_MATRIX_BAND_SAT
-# undef ENABLE_RGB_MATRIX_BAND_VAL
-# undef ENABLE_RGB_MATRIX_BAND_PINWHEEL_SAT
-# undef ENABLE_RGB_MATRIX_BAND_PINWHEEL_VAL
-# undef ENABLE_RGB_MATRIX_BAND_SPIRAL_SAT
-# undef ENABLE_RGB_MATRIX_BAND_SPIRAL_VAL
-# undef ENABLE_RGB_MATRIX_CYCLE_ALL
-# undef ENABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT
-# undef ENABLE_RGB_MATRIX_CYCLE_UP_DOWN
-# undef ENABLE_RGB_MATRIX_CYCLE_OUT_IN
-# undef ENABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL
-# undef ENABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON
-# undef ENABLE_RGB_MATRIX_DUAL_BEACON
-# undef ENABLE_RGB_MATRIX_CYCLE_PINWHEEL
-# undef ENABLE_RGB_MATRIX_CYCLE_SPIRAL
-# undef ENABLE_RGB_MATRIX_RAINBOW_BEACON
-# undef ENABLE_RGB_MATRIX_RAINBOW_PINWHEELS
-# undef ENABLE_RGB_MATRIX_RAINDROPS
-# undef ENABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS
-# undef ENABLE_RGB_MATRIX_TYPING_HEATMAP
-# undef ENABLE_RGB_MATRIX_DIGITAL_RAIN
-# undef ENABLE_RGB_MATRIX_SOLID_REACTIVE
-// #undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE
-# undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE
-# undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE
-# undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS
-# undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS
-# undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS
-# undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS
-# undef ENABLE_RGB_MATRIX_SPLASH
-# undef ENABLE_RGB_MATRIX_MULTISPLASH
-# undef ENABLE_RGB_MATRIX_SOLID_SPLASH
-# undef ENABLE_RGB_MATRIX_SOLID_MULTISPLASH
-
-# define USB_LED_CAPS_LOCK_SCANCODE 30
-#endif
-
-#ifdef KEYBOARD_massdrop_alt
-#undef USB_LED_INDICATOR_ENABLE
-#endif
diff --git a/layouts/community/65_ansi_blocker/brandonschlack/keymap.c b/layouts/community/65_ansi_blocker/brandonschlack/keymap.c
deleted file mode 100644
index 6b5d5cc1d9..0000000000
--- a/layouts/community/65_ansi_blocker/brandonschlack/keymap.c
+++ /dev/null
@@ -1,117 +0,0 @@
-/* Copyright 2019 Brandon Schlack
- *
- * 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 "brandonschlack.h"
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-/* Base Layer
- * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┬───┐
- * │Esc│! 1│@ 2│# 3│$ 4│% 5│^ 6│& 7│* 8│( 9│) 0│_ -│+ =│ Bckspc│Hom│
- * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┼───┤
- * │Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │{ [│} ]│| \│PgU│
- * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┤
- * │HyCaps│ A │ S │ D │ F │ G │ H │ J │ K │ L │: ;│" '│ Enter│PgD│
- * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┤
- * │Shift │ Z │ X │ C │ V │ B │ N │ M │< ,│> .│? /│ Shift│ Up│End│
- * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬─┬───┼───┼───┤
- * │Ctrl│ Opt│ Cmd│ Space │Cmd │FnPy│ │Lef│Dow│Rig│
- * └────┴────┴────┴────────────────────────┴────┴────┴─┴───┴───┴───┘
- */
-[_BASE] = LAYOUT_65_ansi_blocker(
- KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_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,
- HY_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_LOPT, KC_LCMD, KC_SPC, KC_RCMD, PLY_FN1, KC_LEFT, KC_DOWN, KC_RGHT
-),
-/* Function Layer
- * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┬───┐
- * │` ~│ F1│ F2│ F3│ F4│ F5│ F6│ F7│ F8│ F9│F10│F11│F12│ Delete│SlD│
- * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┼───┤
- * │RMod │RH+│RS+│RV+│AS+│ │ │ │ │ │F13│F14│F15│ LHP │VlU│
- * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┤
- * │RTgl │RH-│RS-│RV-│AS-│ │ │ │ │ │ │ │ │VlD│
- * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┤
- * │ │LYR│Thm│ │ │RST│ │Mke│Prv│Nxt│Ply│ │PgU│Mut│
- * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬─┬───┼───┼───┤
- * │ │ │ │ │ │ │ │Hom│PgD│End│
- * └────┴────┴────┴────────────────────────┴────┴────┴─┴───┴───┴───┘
- */
-[_FN1] = LAYOUT_65_ansi_blocker(
- KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, MC_SLPD,
- RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, RGB_SPI, _______, _______, _______, _______, _______, KC_F13, KC_F14, KC_F15, MC_LHPD, KC_VOLU,
- RGB_TOG, RGB_HUD, RGB_SAD, RGB_VAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, KC_VOLD,
- _______, RGB_LYR, RGB_THM, _______, _______, QK_BOOT, _______, QM_MAKE, KC_MPRV, KC_MNXT, KC_MPLY, _______, KC_PGUP, KC_MUTE,
- _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_END
-),
-/* Blank Layout
- * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┬───┐
- * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
- * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┼───┤
- * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
- * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┤
- * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
- * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┤
- * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
- * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬─┬───┼───┼───┤
- * │ │ │ │ │ │ │ │ │ │ │
- * └────┴────┴────┴────────────────────────┴────┴────┴─┴───┴───┴───┘
-[X] = LAYOUT_65_ansi_blocker(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______
-),
-*/
-};
-
-// Runs just one time when the keyboard initializes.
-void matrix_init_keymap(void) {
-};
-
-// Runs once after keyboard initializes
-void keyboard_post_init_keymap(void) {
-};
-
-// Runs constantly in the background, in a loop.
-void matrix_scan_keymap(void) {
-};
-
-bool process_record_keymap(uint16_t keycode, keyrecord_t *record) {
- switch (keycode) {
- #ifdef KEYBOARD_massdrop
- case RGB_TOG:
- if (record->event.pressed) {
- rgb_matrix_cycle_flag();
- }
- return false;
- #endif
- default:
- return true; //Process all other keycodes normally
- }
-}
-
-#ifdef RGB_MATRIX_ENABLE
-bool rgb_matrix_indicators_user(void) {
- if (host_keyboard_led_state().caps_lock) {
- rgb_matrix_set_color(USB_LED_CAPS_LOCK_SCANCODE, RGB_GREEN);
- } else if (!HAS_ANY_FLAGS(rgb_matrix_get_flags(), LED_FLAG_KEYS)){
- rgb_matrix_set_color(USB_LED_CAPS_LOCK_SCANCODE, 0, 0, 0);
- }
- return false;
-}
-#endif
diff --git a/layouts/community/65_ansi_blocker/brandonschlack/readme.md b/layouts/community/65_ansi_blocker/brandonschlack/readme.md
deleted file mode 100644
index effb008465..0000000000
--- a/layouts/community/65_ansi_blocker/brandonschlack/readme.md
+++ /dev/null
@@ -1,15 +0,0 @@
-# brandonschlack's 65_ansi_blocker layout
-
-This is my preferred 65% layout.
-
-It is used on:
-
-* [Massdrop ALT](https://github.com/qmk/qmk_firmware/tree/master/keyboards/massdrop/alt)
-* [KBD67 MKII](https://github.com/qmk/qmk_firmware/tree/master/keyboards/kbdfans/kbd67/mkiirgb)
-
-## [Base Layer](http://www.keyboard-layout-editor.com/#/gists/a820c8629394f8f4c3943e6ee518d9a8)
-![Base Layer](https://i.imgur.com/gPxDZl7.jpg)
-
-## [Function Layer](http://www.keyboard-layout-editor.com/#/gists/8ca73a6d3bec8ce736f5db60edf31dcf)
-![Function Layer](https://i.imgur.com/gNKHgWa.jpg)
-
diff --git a/layouts/community/65_ansi_blocker/brandonschlack/rules.mk b/layouts/community/65_ansi_blocker/brandonschlack/rules.mk
deleted file mode 100644
index 8584967076..0000000000
--- a/layouts/community/65_ansi_blocker/brandonschlack/rules.mk
+++ /dev/null
@@ -1,7 +0,0 @@
-# Build Options
-ifeq ($(strip $(KEYBOARD)), gray_studio/space65)
- MOUSEKEY_ENABLE = no
- BACKLIGHT_ENABLE = no
- CONSOLE_ENABLE = yes
- COMMAND_ENABLE = yes
-endif
diff --git a/layouts/community/65_ansi_blocker/mechmerlin/keymap.c b/layouts/community/65_ansi_blocker/mechmerlin/keymap.c
deleted file mode 100644
index f95f64e4b5..0000000000
--- a/layouts/community/65_ansi_blocker/mechmerlin/keymap.c
+++ /dev/null
@@ -1,44 +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 QMK_KEYBOARD_H
-#include "mechmerlin.h"
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [_BL] = LAYOUT_65_ansi_blocker(
- QK_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS,
- KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL,
- KC_CTCP, 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_PGUP,
- 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_PGDN,
- KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(_FL), KC_LEFT, KC_DOWN, KC_RGHT
- ),
-
- [_FL] = LAYOUT_65_ansi_blocker(
- KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- RGB_TOG, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, RGB_RMOD,RGB_HUD, RGB_SAD, RGB_VAD, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, KC_PGUP, _______,
- _______, _______, _______, MO(_CL), _______, _______, KC_HOME, KC_PGDN, KC_END
- ),
-
- [_CL] = LAYOUT_65_ansi_blocker(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, EE_CLR, QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, KC_VER, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______
- )
-};
-
diff --git a/layouts/community/65_ansi_blocker/mechmerlin/readme.md b/layouts/community/65_ansi_blocker/mechmerlin/readme.md
deleted file mode 100644
index 1649c88974..0000000000
--- a/layouts/community/65_ansi_blocker/mechmerlin/readme.md
+++ /dev/null
@@ -1,12 +0,0 @@
-# MechMerlin's 65_ansi_blocker layout
-
-This is the 65% layout used by u/merlin36, host of the [MechMerlin](www.youtube.com/mechmerlin)
-YouTube channel.
-
-It is used on his
-* [RGB Doro67](https://github.com/qmk/qmk_firmware/tree/master/keyboards/doro67/rgb)
-* [KBD67 mkii](https://github.com/qmk/qmk_firmware/tree/master/keyboards/kbdfans/kbd67/mkiirgb/v1)
-* [Iron 165](https://github.com/qmk/qmk_firmware/tree/master/keyboards/cannonkeys/iron165)
-
-### Build
-To build the firmware file associated with this keymap, simply run `make your_keyboard:mechmerlin`. \ No newline at end of file
diff --git a/layouts/community/65_ansi_blocker/mechmerlin/rules.mk b/layouts/community/65_ansi_blocker/mechmerlin/rules.mk
deleted file mode 100644
index e2ce3d7731..0000000000
--- a/layouts/community/65_ansi_blocker/mechmerlin/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-USER_NAME := mechmerlin \ No newline at end of file
diff --git a/layouts/community/65_ansi_blocker/readme.md b/layouts/community/65_ansi_blocker/readme.md
new file mode 100644
index 0000000000..03503b3479
--- /dev/null
+++ b/layouts/community/65_ansi_blocker/readme.md
@@ -0,0 +1,3 @@
+# 65_ansi_blocker
+
+ LAYOUT_65_ansi_blocker
diff --git a/layouts/community/65_ansi_blocker/spidey3/config.h b/layouts/community/65_ansi_blocker/spidey3/config.h
deleted file mode 100644
index 9439de45c9..0000000000
--- a/layouts/community/65_ansi_blocker/spidey3/config.h
+++ /dev/null
@@ -1,12 +0,0 @@
-// Copyright 2022 Joshua Diamond josh@windowoffire.com (@spidey3)
-// SPDX-License-Identifier: GPL-2.0-or-later
-
-#pragma once
-
-#define NO_ACTION_ONESHOT
-#undef LOCKING_SUPPORT_ENABLE
-
-#define LAYER_STATE_8BIT
-#define MAX_LAYER 4
-
-#define SHIFT_BACKSPACE_DELETE
diff --git a/layouts/community/65_ansi_blocker/spidey3/keymap.c b/layouts/community/65_ansi_blocker/spidey3/keymap.c
deleted file mode 100644
index 81ee2bf3a7..0000000000
--- a/layouts/community/65_ansi_blocker/spidey3/keymap.c
+++ /dev/null
@@ -1,41 +0,0 @@
-// Copyright 2022 Joshua Diamond josh@windowoffire.com (@spidey3)
-// SPDX-License-Identifier: GPL-2.0-or-later
-
-#include "spidey3.h"
-
-#define FN_MENU LT(_FN,KC_APP)
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- // Base
- [_BASE] = LAYOUT_65_ansi_blocker(
- QK_GESC, 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,
- KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_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, FN_MENU, KC_LEFT, KC_DOWN, KC_RGHT
- ),
- // Numpad
- [_NUMPAD] = LAYOUT_65_ansi_blocker(
- XXXXXXX, XXXXXXX, XXXXXXX, KC_NUM, XXXXXXX, XXXXXXX, XXXXXXX, KC_KP_7, KC_KP_8, KC_KP_9, KC_KP_0, KC_PMNS, KC_PEQL, _______, _______,
- _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_KP_4, KC_KP_5, KC_KP_6, KC_PCMM, _______, _______, _______, _______,
- KC_NUM, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_KP_1, KC_KP_2, KC_KP_3, KC_PPLS, KC_PAST, KC_PENT, _______,
- _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_KP_0, SPI_KP_00, KC_PDOT, KC_PSLS, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______
- ),
- // FN
- [_FN] = LAYOUT_65_ansi_blocker(
- KC_GRV, 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_INS, KC_SCRL,
- XXXXXXX, RGB_TOG, RGB_MOD, RGB_HUD, RGB_HUI, RGB_SAD, RGB_SAI, RGB_VAD, RGB_VAI, SPI_GLO, VK_TOGG, CH_SUSP, KC_SLEP, KC_PWR, KC_BRIU,
- MO(_GLYPH), RGB_M_P, RGB_M_B, RGB_M_R, RGB_M_SW, RGB_M_SN, RGB_M_K, RGB_M_G, RGB_M_TW, UC_LINX, XXXXXXX, XXXXXXX, KC_CPNL, KC_BRID,
- _______, XXXXXXX, UC_EMAC, UC_WINC, UC_NEXT, NK_TOGG, TG(_NUMPAD),UC_MAC, XXXXXXX, XXXXXXX, DB_TOGG, _______, KC_VOLU, KC_MUTE,
- _______, _______, _______, KC_MPLY, KC_ASST, _______, KC_MPRV, KC_VOLD, KC_MNXT
- ),
- // Glyph Transformation
- [_GLYPH] = LAYOUT_65_ansi_blocker(
- QK_BOOT, UM(SAD), UM(MEH), UM(HAPPY), UM(ANGRY), UM(THUMBDN),UM(THUMBUP),UM(SPIDER), X_BUL, UM(LOL), UM(SURPRISE),X_DASH, SPI_GFLOCK, XXXXXXX, XXXXXXX,
- EE_CLR, SPI_NORMAL, SPI_WIDE, SPI_SCRIPT, SPI_BLOCKS, SPI_CIRCLE, SPI_SQUARE, SPI_PARENS, SPI_FRAKTR, SPI_BOLD, SPI_MATH, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
- _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
- XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, UM(LARR), UM(RARR), XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
- XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, XXXXXXX, XXXXXXX, XXXXXXX
- )
-};
diff --git a/layouts/community/65_ansi_blocker/spidey3/readme.md b/layouts/community/65_ansi_blocker/spidey3/readme.md
deleted file mode 100644
index a51106f84d..0000000000
--- a/layouts/community/65_ansi_blocker/spidey3/readme.md
+++ /dev/null
@@ -1,14 +0,0 @@
-Copyright 2022 Joshua Diamond josh@windowoffire.com @spidey3
-
-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/>.
diff --git a/layouts/community/65_ansi_blocker/spidey3/rules.mk b/layouts/community/65_ansi_blocker/spidey3/rules.mk
deleted file mode 100644
index 2d16a86ac6..0000000000
--- a/layouts/community/65_ansi_blocker/spidey3/rules.mk
+++ /dev/null
@@ -1,10 +0,0 @@
-# Build Options
-# comment out to disable the options.
-#
-MOUSEKEY_ENABLE = no # Mouse keys
-UNICODEMAP_ENABLE = yes
-VELOCIKEY_ENABLE = yes
-GRAVE_ESC_ENABLE = yes
-
-# The following disabled to save space
-SPACE_CADET_ENABLE = no
diff --git a/layouts/community/65_ansi_blocker/stanrc85/keymap.c b/layouts/community/65_ansi_blocker/stanrc85/keymap.c
deleted file mode 100644
index 3938f93a4c..0000000000
--- a/layouts/community/65_ansi_blocker/stanrc85/keymap.c
+++ /dev/null
@@ -1,51 +0,0 @@
-/* Copyright 2021 Stanrc85
- *
- * 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 "stanrc85.h"
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [_QWERTY] = LAYOUT_65_ansi_blocker(
- 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_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_CTLE, 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_PGUP,
- 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_PGDN,
- KC_LCTL, KC_LGUI, KC_LALT, LT_SPCF, TD_TWIN, MO(_FN2_60), KC_LEFT, KC_DOWN, KC_RGHT
- ),
-
- [_DEFAULT] = LAYOUT_65_ansi_blocker(
- QK_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS,
- KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL,
- KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGUP,
- 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_PGDN,
- KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(_FN1_60), MO(_FN2_60), KC_LEFT, KC_DOWN, KC_RGHT
- ),
-
- [_FN1_60] = LAYOUT_65_ansi_blocker(
- KC_TILD, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, _______,
- _______, _______, CA_QUOT, _______, CA_SCLN, KC_VOLU, KC_PGUP, KC_BSPC, KC_UP, KC_DEL, KC_PSCR, _______, _______, KC_INS, _______,
- KC_CAPS, _______, _______, KC_LCTL, KC_LSFT, KC_VOLD, KC_PGDN, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______,
- _______, KC_RDP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______
- ),
-
- [_FN2_60] = LAYOUT_65_ansi_blocker(
- RGB_TOG, RGB_MOD, RGB_VAD, RGB_VAI, RGB_SAI, RGB_SAD, RGB_HUD, RGB_HUI, _______, _______, _______, _______, _______, _______, BL_TOGG,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, QK_BOOT, BL_UP,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MAKE, BL_DOWN,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, TG(_DEFAULT), _______, _______, _______, _______
- )
-};
diff --git a/layouts/community/65_ansi_blocker_split_bs/bcat/keymap.c b/layouts/community/65_ansi_blocker_split_bs/bcat/keymap.c
deleted file mode 100644
index d9e88a7b55..0000000000
--- a/layouts/community/65_ansi_blocker_split_bs/bcat/keymap.c
+++ /dev/null
@@ -1,41 +0,0 @@
-/* Copyright 2021 Jonathan Rascher
- *
- * 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 "bcat.h"
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- // clang-format off
- /* Default layer: http://www.keyboard-layout-editor.com/#/gists/dd675b40cc4df2c7bb78847ac29f5988 */
- [LAYER_DEFAULT] = LAYOUT_65_ansi_blocker_split_bs(
- KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS, KC_GRV, 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_BSPC, KC_PGUP,
- 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_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, LY_FN1, KC_LEFT, KC_DOWN, KC_RGHT
- ),
-
- /* Function layer: http://www.keyboard-layout-editor.com/#/gists/f29128427f674c43777f045e363d1b44 */
- [LAYER_FUNCTION_1] = LAYOUT_65_ansi_blocker_split_bs(
- _______, 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_INS, KC_DEL, _______,
- KC_CAPS, _______, KC_MPLY, KC_VOLU, KC_MSTP, _______, EE_CLR, QK_BOOT, KC_PSCR, KC_SCRL, KC_PAUS, _______, _______, _______, _______,
- _______, _______, KC_MPRV, KC_VOLD, KC_MNXT, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, KC_APP, _______, KC_MUTE, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______
- ),
- // clang-format on
-};
diff --git a/layouts/community/65_ansi_blocker_split_bs/bcat/readme.md b/layouts/community/65_ansi_blocker_split_bs/bcat/readme.md
deleted file mode 100644
index 5777c7c38f..0000000000
--- a/layouts/community/65_ansi_blocker_split_bs/bcat/readme.md
+++ /dev/null
@@ -1,17 +0,0 @@
-# bcat's 65% ANSI blocker split backspace layout
-
-This is a standard 65% keyboard layout, with a blocker to the left of the arrow
-keys, an HHKB-style (split) backspace, and media controls in the function layer
-(centered around the ESDF cluster).
-
-## Default layer
-
-![Default layer layout](https://i.imgur.com/Vdnw2mp.png)
-
-([KLE](http://www.keyboard-layout-editor.com/#/gists/dd675b40cc4df2c7bb78847ac29f5988))
-
-## Function layer
-
-![Function layer layout](https://i.imgur.com/s4hS9ZK.png)
-
-([KLE](http://www.keyboard-layout-editor.com/#/gists/f29128427f674c43777f045e363d1b44))
diff --git a/layouts/community/65_ansi_blocker_split_bs/brandonschlack-split/config.h b/layouts/community/65_ansi_blocker_split_bs/brandonschlack-split/config.h
deleted file mode 100644
index 38b827ba32..0000000000
--- a/layouts/community/65_ansi_blocker_split_bs/brandonschlack-split/config.h
+++ /dev/null
@@ -1,62 +0,0 @@
-/* Copyright 2020 Brandon Schlack
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-#pragma once
-
-#ifdef RGB_MATRIX_ENABLE
-// Disable RGB Effects
-# undef ENABLE_RGB_MATRIX_ALPHAS_MODS
-// #undef ENABLE_RGB_MATRIX_GRADIENT_UP_DOWN
-// #undef ENABLE_RGB_MATRIX_BREATHING
-# undef ENABLE_RGB_MATRIX_BAND_SAT
-# undef ENABLE_RGB_MATRIX_BAND_VAL
-# undef ENABLE_RGB_MATRIX_BAND_PINWHEEL_SAT
-# undef ENABLE_RGB_MATRIX_BAND_PINWHEEL_VAL
-# undef ENABLE_RGB_MATRIX_BAND_SPIRAL_SAT
-# undef ENABLE_RGB_MATRIX_BAND_SPIRAL_VAL
-# undef ENABLE_RGB_MATRIX_CYCLE_ALL
-# undef ENABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT
-# undef ENABLE_RGB_MATRIX_CYCLE_UP_DOWN
-# undef ENABLE_RGB_MATRIX_CYCLE_OUT_IN
-# undef ENABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL
-# undef ENABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON
-# undef ENABLE_RGB_MATRIX_DUAL_BEACON
-# undef ENABLE_RGB_MATRIX_CYCLE_PINWHEEL
-# undef ENABLE_RGB_MATRIX_CYCLE_SPIRAL
-# undef ENABLE_RGB_MATRIX_RAINBOW_BEACON
-# undef ENABLE_RGB_MATRIX_RAINBOW_PINWHEELS
-# undef ENABLE_RGB_MATRIX_RAINDROPS
-# undef ENABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS
-# undef ENABLE_RGB_MATRIX_TYPING_HEATMAP
-# undef ENABLE_RGB_MATRIX_DIGITAL_RAIN
-# undef ENABLE_RGB_MATRIX_SOLID_REACTIVE
-// #undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE
-# undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE
-# undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE
-# undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS
-# undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS
-# undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS
-# undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS
-# undef ENABLE_RGB_MATRIX_SPLASH
-# undef ENABLE_RGB_MATRIX_MULTISPLASH
-# undef ENABLE_RGB_MATRIX_SOLID_SPLASH
-# undef ENABLE_RGB_MATRIX_SOLID_MULTISPLASH
-
-# define USB_LED_CAPS_LOCK_SCANCODE 30
-#endif
-
-#ifdef KEYBOARD_massdrop_alt
-#undef USB_LED_INDICATOR_ENABLE
-#endif
diff --git a/layouts/community/65_ansi_blocker_split_bs/brandonschlack-split/keymap.c b/layouts/community/65_ansi_blocker_split_bs/brandonschlack-split/keymap.c
deleted file mode 100644
index ed988fb4b6..0000000000
--- a/layouts/community/65_ansi_blocker_split_bs/brandonschlack-split/keymap.c
+++ /dev/null
@@ -1,105 +0,0 @@
-/* Copyright 2020 Brandon Schlack
- *
- * 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 "brandonschlack.h"
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-/* Base Layer
- * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
- * │Esc│! 1│@ 2│# 3│$ 4│% 5│^ 6│& 7│* 8│( 9│) 0│_ -│+ =│| \│~ `│Hom│
- * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┼───┤
- * │Tab  │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │{ [│} ]│ Bspc│PgU│
- * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┤
- * │HyCaps│ A │ S │ D │ F │ G │ H │ J │ K │ L │: ;│" '│   Enter│PgD│
- * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┤
- * │Shift   │ Z │ X │ C │ V │ B │ N │ M │< ,│> .│? /│ Shift│ Up│End│
- * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬┬┬───┼───┼───┤
- * │Ctrl│ Opt│ Cmd│          Space         │Cmd │FnPy│││Lef│Dow│Rig│
- * └────┴────┴────┴────────────────────────┴────┴────┴┴┴───┴───┴───┘
- */
-[_BASE] = LAYOUT_65_ansi_blocker_split_bs(
- KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS, KC_GRV, 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_BSPC, KC_PGUP,
- HY_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_LOPT, KC_LCMD, KC_SPC, KC_RCMD, PLY_FN1, KC_LEFT, KC_DOWN, KC_RGHT
-),
-/* Function Layer
- * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
- * │Mke│ F1│ F2│ F3│ F4│ F5│ F6│ F7│ F8│ F9│F10│F11│F12│LHP│MNC│SlD│
- * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┼───┤
- * │RMod │RH+│RS+│RV+│AS+│ │ │ │ │ │F13│F14│F15│  Del│VlU│
- * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┤
- * │RTgl │RH-│RS-│RV-│AS-│ │ │ │ │ │ │ │ │VlD│
- * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┤
- * │ │LYR│Thm│ │ │RST│ │   │Prv│Nxt│Ply│ │PgU│Mut│
- * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬┬┬───┼───┼───┤
- * │ │ │ │ │ │ │││Hom│PgD│End│
- * └────┴────┴────┴────────────────────────┴────┴────┴┴┴───┴───┴───┘
- */
-[_FN1] = LAYOUT_65_ansi_blocker_split_bs(
- QM_MAKE, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, MC_LHPD, MC_MSSN, MC_SLPD,
- RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, RGB_SPI, _______, _______, _______, _______, _______, KC_F13, KC_F14, KC_F15, KC_DEL, KC_VOLU,
- RGB_TOG, RGB_HUD, RGB_SAD, RGB_VAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, KC_VOLD,
- _______, RGB_LYR, RGB_THM, _______, _______, QK_BOOT, _______, _______, KC_MPRV, KC_MNXT, KC_MPLY, _______, KC_PGUP, KC_MUTE,
- _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_END
-),
-/* Blank Layout
- * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
- * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
- * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┼───┤
- * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
- * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┤
- * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
- * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┤
- * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
- * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬┬┬───┼───┼───┤
- * │ │ │ │ │ │ │││ │ │ │
- * └────┴────┴────┴────────────────────────┴────┴────┴┴┴───┴───┴───┘
-[X] = LAYOUT_65_ansi_blocker_split_bs(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______
-),
-*/
-};
-
-bool process_record_keymap(uint16_t keycode, keyrecord_t *record) {
- switch (keycode) {
- #ifdef KEYBOARD_massdrop
- case RGB_TOG:
- if (record->event.pressed) {
- rgb_matrix_cycle_flag();
- }
- return false;
- #endif
- default:
- return true; //Process all other keycodes normally
- }
-}
-
-#ifdef RGB_MATRIX_ENABLE
-bool rgb_matrix_indicators_user(void) {
- if (host_keyboard_led_state().caps_lock) {
- rgb_matrix_set_color(USB_LED_CAPS_LOCK_SCANCODE, RGB_GREEN);
- } else if (!HAS_ANY_FLAGS(rgb_matrix_get_flags(), LED_FLAG_KEYS)){
- rgb_matrix_set_color(USB_LED_CAPS_LOCK_SCANCODE, 0, 0, 0);
- }
- return false;
-}
-#endif
diff --git a/layouts/community/65_ansi_blocker_split_bs/brandonschlack-split/readme.md b/layouts/community/65_ansi_blocker_split_bs/brandonschlack-split/readme.md
deleted file mode 100644
index 51c7938eb4..0000000000
--- a/layouts/community/65_ansi_blocker_split_bs/brandonschlack-split/readme.md
+++ /dev/null
@@ -1,15 +0,0 @@
-# brandonschlack's 65% ANSI blocker split backspace layout
-
-This is my preferred 65% layout.
-
-It is used on:
-
-* [Massdrop ALT](https://github.com/qmk/qmk_firmware/tree/master/keyboards/massdrop/alt)
-* [KBD67 MKII](https://github.com/qmk/qmk_firmware/tree/master/keyboards/kbdfans/kbd67/mkiirgb)
-
-## [Base Layer](http://www.keyboard-layout-editor.com/#/gists/a820c8629394f8f4c3943e6ee518d9a8)
-![Base Layer](https://i.imgur.com/gPxDZl7.jpg)
-
-## [Function Layer](http://www.keyboard-layout-editor.com/#/gists/8ca73a6d3bec8ce736f5db60edf31dcf)
-![Function Layer](https://i.imgur.com/gNKHgWa.jpg)
-
diff --git a/layouts/community/65_ansi_blocker_split_bs/brandonschlack-split/rules.mk b/layouts/community/65_ansi_blocker_split_bs/brandonschlack-split/rules.mk
deleted file mode 100644
index d12f9d5d32..0000000000
--- a/layouts/community/65_ansi_blocker_split_bs/brandonschlack-split/rules.mk
+++ /dev/null
@@ -1,2 +0,0 @@
-# Build Options
-USER_NAME := brandonschlack
diff --git a/layouts/community/65_ansi_blocker_split_bs/readme.md b/layouts/community/65_ansi_blocker_split_bs/readme.md
new file mode 100644
index 0000000000..7b95eecc99
--- /dev/null
+++ b/layouts/community/65_ansi_blocker_split_bs/readme.md
@@ -0,0 +1,3 @@
+# 65_ansi_blocker_split_bs
+
+ LAYOUT_65_ansi_blocker_split_bs
diff --git a/layouts/community/65_ansi_blocker_tsangan/readme.md b/layouts/community/65_ansi_blocker_tsangan/readme.md
new file mode 100644
index 0000000000..50d23c5178
--- /dev/null
+++ b/layouts/community/65_ansi_blocker_tsangan/readme.md
@@ -0,0 +1,3 @@
+# 65_ansi_blocker_tsangan
+
+ LAYOUT_65_ansi_blocker_tsangan
diff --git a/layouts/community/65_ansi_blocker_tsangan_split_bs/readme.md b/layouts/community/65_ansi_blocker_tsangan_split_bs/readme.md
new file mode 100644
index 0000000000..0c6b4bc907
--- /dev/null
+++ b/layouts/community/65_ansi_blocker_tsangan_split_bs/readme.md
@@ -0,0 +1,3 @@
+# 65_ansi_blocker_tsangan_split_bs
+
+ LAYOUT_65_ansi_blocker_tsangan_split_bs
diff --git a/layouts/community/65_ansi_split_bs/readme.md b/layouts/community/65_ansi_split_bs/readme.md
new file mode 100644
index 0000000000..3051b7066a
--- /dev/null
+++ b/layouts/community/65_ansi_split_bs/readme.md
@@ -0,0 +1,3 @@
+# 65_ansi_split_bs
+
+ LAYOUT_65_ansi_split_bs
diff --git a/layouts/community/65_iso/readme.md b/layouts/community/65_iso/readme.md
new file mode 100644
index 0000000000..bade8bfd27
--- /dev/null
+++ b/layouts/community/65_iso/readme.md
@@ -0,0 +1,3 @@
+# 65_iso
+
+ LAYOUT_65_iso
diff --git a/layouts/community/65_iso_blocker/readme.md b/layouts/community/65_iso_blocker/readme.md
new file mode 100644
index 0000000000..129a85dce1
--- /dev/null
+++ b/layouts/community/65_iso_blocker/readme.md
@@ -0,0 +1,3 @@
+# 65_iso_blocker
+
+ LAYOUT_65_iso_blocker
diff --git a/layouts/community/65_iso_blocker_split_bs/readme.md b/layouts/community/65_iso_blocker_split_bs/readme.md
new file mode 100644
index 0000000000..175db25268
--- /dev/null
+++ b/layouts/community/65_iso_blocker_split_bs/readme.md
@@ -0,0 +1,3 @@
+# 65_iso_blocker_split_bs
+
+ LAYOUT_65_iso_blocker_split_bs
diff --git a/layouts/community/65_iso_blocker_tsangan/readme.md b/layouts/community/65_iso_blocker_tsangan/readme.md
new file mode 100644
index 0000000000..70e7fa82e3
--- /dev/null
+++ b/layouts/community/65_iso_blocker_tsangan/readme.md
@@ -0,0 +1,3 @@
+# 65_iso_blocker_tsangan
+
+ LAYOUT_65_iso_blocker_tsangan
diff --git a/layouts/community/65_iso_blocker_tsangan_split_bs/readme.md b/layouts/community/65_iso_blocker_tsangan_split_bs/readme.md
new file mode 100644
index 0000000000..d2b672e005
--- /dev/null
+++ b/layouts/community/65_iso_blocker_tsangan_split_bs/readme.md
@@ -0,0 +1,3 @@
+# 65_iso_blocker_tsangan_split_bs
+
+ LAYOUT_65_iso_blocker_tsangan_split_bs
diff --git a/layouts/community/65_iso_split_bs/readme.md b/layouts/community/65_iso_split_bs/readme.md
new file mode 100644
index 0000000000..b80f03e68a
--- /dev/null
+++ b/layouts/community/65_iso_split_bs/readme.md
@@ -0,0 +1,3 @@
+# 65_iso_split_bs
+
+ LAYOUT_65_iso_split_bs
diff --git a/layouts/community/66_ansi/mechmerlin/config.h b/layouts/community/66_ansi/mechmerlin/config.h
deleted file mode 100644
index 6f70f09bee..0000000000
--- a/layouts/community/66_ansi/mechmerlin/config.h
+++ /dev/null
@@ -1 +0,0 @@
-#pragma once
diff --git a/layouts/community/66_ansi/mechmerlin/keymap.c b/layouts/community/66_ansi/mechmerlin/keymap.c
deleted file mode 100644
index 5bf041dcf6..0000000000
--- a/layouts/community/66_ansi/mechmerlin/keymap.c
+++ /dev/null
@@ -1,25 +0,0 @@
-#include QMK_KEYBOARD_H
-#include "mechmerlin.h"
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-[_BL] = LAYOUT_66_ansi(
- QK_GESC,KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS,KC_EQL, KC_BSPC, KC_PGUP,
- KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC,KC_RBRC,KC_BSLS, KC_PGDN,
- KC_CTCP,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, MO(_FL),KC_RGUI,KC_RCTL,KC_LEFT,KC_DOWN,KC_RGHT),
-
-[_FL] = LAYOUT_66_ansi(
- KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_VOLU,
- BL_TOGG,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, KC_VOLD,
- RGB_TOG,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______,
- _______, _______,_______,_______,_______,_______,_______,KC_MUTE,KC_VOLD,KC_VOLU,_______, _______, KC_PGUP,
- _______,_______,_______, MO(_CL), _______,_______,_______,KC_HOME,KC_PGDN,KC_END),
-
-[_CL] = LAYOUT_66_ansi(
- BL_STEP,RGB_M_P,RGB_M_B,RGB_M_R,RGB_M_SW,RGB_M_SN,RGB_M_K,RGB_M_X,RGB_M_G,_______,_______,_______,_______, _______, RGB_VAI,
- _______,_______,_______,EE_CLR, QK_BOOT,_______,_______,_______,_______,_______,_______,_______,_______,_______, RGB_VAD,
- _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______,
- VK_TOGG, _______,_______,_______,KC_VER,_______,_______,_______,_______,_______,_______, _______, RGB_SAI,
- CK_TOGG,_______,_______, _______, _______,_______,_______,RGB_HUD,RGB_SAD,RGB_HUI),
-};
diff --git a/layouts/community/66_ansi/mechmerlin/readme.md b/layouts/community/66_ansi/mechmerlin/readme.md
deleted file mode 100644
index cf52dad61a..0000000000
--- a/layouts/community/66_ansi/mechmerlin/readme.md
+++ /dev/null
@@ -1,13 +0,0 @@
-# MechMerlin's 66_ansi layout
-
-This is the 66 key layout used by u/merlin36, host of the [MechMerlin](www.youtube.com/mechmerlin)
-YouTube channel.
-
-It is used on his
-* [Clueboard 66 rev4](https://github.com/qmk/qmk_firmware/tree/master/keyboards/clueboard/66/rev4)
-* [Clueboard 66 hotswap gen1](https://github.com/qmk/qmk_firmware/tree/master/keyboards/clueboard/66_hotswap/gen1)
-* [Clueboard 66 hotswap prototype](https://github.com/qmk/qmk_firmware/tree/master/keyboards/clueboard/66_hotswap/prototype)
-* [Clueboard 66 rev1](https://github.com/qmk/qmk_firmware/tree/master/keyboards/clueboard/66/rev1)
-
-### Build
-To build the firmware file associated with this keymap, simply run `make your_keyboard:mechmerlin`. \ No newline at end of file
diff --git a/layouts/community/66_ansi/mechmerlin/rules.mk b/layouts/community/66_ansi/mechmerlin/rules.mk
deleted file mode 100644
index e2ce3d7731..0000000000
--- a/layouts/community/66_ansi/mechmerlin/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-USER_NAME := mechmerlin \ No newline at end of file
diff --git a/layouts/community/66_ansi/skully/config.h b/layouts/community/66_ansi/skully/config.h
deleted file mode 100644
index f51361866c..0000000000
--- a/layouts/community/66_ansi/skully/config.h
+++ /dev/null
@@ -1,12 +0,0 @@
-#pragma once
-
-#ifdef AUDIO_CLICKY
- #define AUDIO_CLICKY_ON
- #define AUDIO_CLICKY_FREQ_DEFAULT 261.63f
- #define AUDIO_CLICKY_FREQ_MIN 65.41f
- #define AUDIO_CLICKY_FREQ_MAX 1046.5f
- //#define AUDIO_CLICKY_FREQ_FACTOR 1.18921f
- //#define AUDIO_CLICKY_FREQ_FACTOR 2.71828f // e
- #define AUDIO_CLICKY_FREQ_FACTOR 1.61803f // golden ratio
- #define AUDIO_CLICKY_FREQ_RANDOMNESS 17.0f
-#endif
diff --git a/layouts/community/66_ansi/skully/keymap.c b/layouts/community/66_ansi/skully/keymap.c
deleted file mode 100644
index 927352797b..0000000000
--- a/layouts/community/66_ansi/skully/keymap.c
+++ /dev/null
@@ -1,35 +0,0 @@
-#include QMK_KEYBOARD_H
-
-// Layer names
-#define _BL 0
-#define _FL 1
-#define _CL 2
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- /* Keymap _BL: Base Layer (Default Layer)
- */
-[_BL] = LAYOUT_66_ansi(
- QK_GESC,KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS,KC_EQL, KC_BSPC, KC_PGUP,
- KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC,KC_RBRC,KC_BSLS, KC_PGDN,
- KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN,KC_QUOT,KC_ENT,
- MO(_FL), KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH,KC_RSFT, KC_UP,
- KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_RGUI, KC_RALT,KC_RCTL, KC_LEFT,KC_DOWN,KC_RGHT),
-
- /* Keymap _FL: Function Layer
- */
-[_FL] = LAYOUT_66_ansi(
- KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, BL_STEP,
- S(KC_TAB), S(KC_Q),S(KC_W),S(KC_E),S(KC_R),S(KC_T),S(KC_Y),S(KC_U),S(KC_I),S(KC_O),S(KC_P),S(KC_LBRC),S(KC_RBRC),S(KC_BSLS),S(KC_PGDN),
- S(KC_LCTL), S(KC_A),MO(_CL),S(KC_D),S(KC_F),S(KC_G),S(KC_H),S(KC_J),S(KC_K),S(KC_L),S(KC_SCLN),S(KC_QUOT),S(KC_ENT),
- MO(_FL), S(KC_Z),S(KC_X),S(KC_C),S(KC_V),S(KC_B),S(KC_N),S(KC_M),S(KC_COMM),S(KC_DOT),S(KC_SLSH),KC_RSFT, KC_PGUP,
- KC_LCTL, KC_LALT, KC_LGUI, S(KC_SPC), KC_RGUI, KC_RALT,KC_RCTL, KC_HOME,KC_PGDN,KC_END),
-
- /* Keymap _CL: Control layer
- */
-[_CL] = LAYOUT_66_ansi(
- _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,RGB_TOG, RGB_VAI,
- CK_TOGG, _______,_______,_______,QK_BOOT, _______,_______,_______,_______,_______,_______,_______,_______,_______, RGB_VAD,
- _______, _______,MO(_CL),_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,
- MO(_FL), _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, RGB_SAI,
- _______, _______, _______, RGB_MOD, _______, _______,_______, RGB_HUD,RGB_SAD,RGB_HUI),
-};
diff --git a/layouts/community/66_ansi/skully/readme.md b/layouts/community/66_ansi/skully/readme.md
deleted file mode 100644
index ad1a1e458d..0000000000
--- a/layouts/community/66_ansi/skully/readme.md
+++ /dev/null
@@ -1,5 +0,0 @@
-# skullY's Clueboard Layout
-
-This layout is what I (@skullydazed) use on my personal Clueboards. I mostly use it for programming, CAD, and general typing.
-
-On boards with audio I have faux-clicky enabled. I've tuned it to values I find pleasing, they kinda remind me of the "talking" in Mike Tyson's Punch Out.
diff --git a/layouts/community/66_ansi/xyverz/config.h b/layouts/community/66_ansi/xyverz/config.h
deleted file mode 100644
index 37a57dbffd..0000000000
--- a/layouts/community/66_ansi/xyverz/config.h
+++ /dev/null
@@ -1,6 +0,0 @@
-#pragma once
-
-#define TAPPING_TERM 600 // ms
-#define PERMISSIVE_HOLD
-#undef RGBLIGHT_HUE_STEP
-#define RGBLIGHT_HUE_STEP 8
diff --git a/layouts/community/66_ansi/xyverz/keymap.c b/layouts/community/66_ansi/xyverz/keymap.c
deleted file mode 100644
index 05560f5b12..0000000000
--- a/layouts/community/66_ansi/xyverz/keymap.c
+++ /dev/null
@@ -1,122 +0,0 @@
-// Xyverz' keymap.
-// It's based on the default keymap, but Dvorak!
-
-#include QMK_KEYBOARD_H
-
-enum layer_names {
- _QWERTY,
- _DVORAK,
- _COLEMAK,
- _FL,
- _CL
-};
-
-enum planck_keycodes {
- QWERTY = SAFE_RANGE,
- COLEMAK,
- DVORAK
-};
-
-// Useful defines
-#define MODS_CTRL_MASK (MOD_BIT(KC_LSFT)|MOD_BIT(KC_RSFT))
-#define FN_CAPS LT(_FL, KC_CAPS) // Tap for Caps Lock, Hold for Function Layer
-
-// clang-format off
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- /* Keymap _QWERTY: Base Layer (Default Layer)
- * ,-----------------------------------------------------------. ,---.
- * |Esc| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =| \| BS| |PgU|
- * |-----------------------------------------------------------| |---|
- * |HpTab| Q| W| E| R| T| Y| U| I| O| P| [| ]| \| |PgD|
- * |-----------------------------------------------------------| `---'
- * |FnCaps| A| S| D| F| G| H| J| K| L| ;| '| | Ent|
- * |--------------------------------------------------------------.
- * |Shift| | Z| X| C| V| B| N| M| ,| .| /|Shift| Fn| Up|
- * |------------------------------------------------------------------.
- * |Ctrl|Gui|Alt | | Space| Space| |Alt |Gui |Ctrl|Left|Down|Rgt|
- * `------------------------------------------------------------------'
- */
-
-[_QWERTY] = LAYOUT_66_ansi (
- QK_GESC, 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_PGUP,
- KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGDN,
- FN_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_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP,
- KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_RGUI, KC_RCTL, MO(_FL), KC_LEFT, KC_DOWN, KC_RGHT),
-
- /* Keymap _COLEMAK: Base Layer
- * ,-----------------------------------------------------------. ,---.
- * |Esc| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =| \| `| |PgU|
- * |-----------------------------------------------------------| |---|
- * |HpTab| Q| W| F| P| G| J| L| U| Y| ;| [| ]| BS| |PgD|
- * |-----------------------------------------------------------| `---'
- * |FnCaps| A| R| S| T| D| H| N| E| I| O| '| | Ent|
- * |--------------------------------------------------------------.
- * |Shift| | Z| X| C| V| B| K| M| ,| .| /|Shift| Fn| Up|
- * |------------------------------------------------------------------.
- * |Ctrl|Gui|Alt | | Space| Space| |Alt |Gui |Ctrl|Left|Down|Rgt|
- * `------------------------------------------------------------------'
- */
-[_COLEMAK] = LAYOUT_66_ansi (
- QK_GESC, 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_PGUP,
- 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_PGDN,
- FN_CAPS, 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_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_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_RGUI, KC_RCTL, MO(_FL), KC_LEFT, KC_DOWN, KC_RGHT),
-
- /* Keymap _DVORAK: Base Layer
- * ,-----------------------------------------------------------. ,---.
- * |Esc| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| [| ]| \| `| |PgU|
- * |-----------------------------------------------------------| |---|
- * |HpTab| '| ,| .| P| Y| F| G| C| R| L| /| =| BS| |PgD|
- * |-----------------------------------------------------------| `---'
- * |FnCaps| A| O| E| U| I| D| H| T| N| S| -| | Ent|
- * |--------------------------------------------------------------.
- * |Shift| | ;| Q| J| K| X| B| M| W| V| Z|Shift| Fn| Up|
- * |------------------------------------------------------------------.
- * |Ctrl|Gui|Alt | | Space| Space| |Alt |Gui |Ctrl|Left|Down|Rgt|
- * `------------------------------------------------------------------'
- */
-[_DVORAK] = LAYOUT_66_ansi (
- QK_GESC, 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_PGUP,
- 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_PGDN,
- FN_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_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_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_RGUI, KC_RCTL, MO(_FL), KC_LEFT, KC_DOWN, KC_RGHT),
-
- /* Keymap _FL: Function Layer
- */
-[_FL] = LAYOUT_66_ansi (
- KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, BL_STEP,
- _______, _______, _______, _______, _______, _______, _______, _______, KC_PSCR, KC_SCRL, KC_PAUS, _______, _______, _______, _______,
- _______, _______, MO(_CL), _______, _______, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, KC_MPRV, KC_MPLY, KC_MNXT, _______, _______, _______, KC_PGUP,
- _______, _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_END),
-
- /* Keymap _CL: Control layer
- */
-[_CL] = LAYOUT_66_ansi (
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_TOG, RGB_VAI,
- _______, _______, _______, _______, QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_VAD,
- _______, _______, MO(_CL), _______, _______, _______, _______, QWERTY, COLEMAK, DVORAK, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_SAI,
- _______, _______, _______, RGB_MOD, _______, _______, _______, RGB_HUD, RGB_SAD, RGB_HUI),
-};
-// clang-format on
-
-bool process_record_user(uint16_t keycode, keyrecord_t *record) {
- if (record->event.pressed) {
- switch (keycode) {
- case QWERTY:
- set_single_persistent_default_layer(_QWERTY);
- return false;
- case DVORAK:
- set_single_persistent_default_layer(_DVORAK);
- return false;
- case COLEMAK:
- set_single_persistent_default_layer(_COLEMAK);
- return false;
- }
- }
- return true;
-}
diff --git a/layouts/community/66_ansi/xyverz/rules.mk b/layouts/community/66_ansi/xyverz/rules.mk
deleted file mode 100644
index 6ddbb80a9c..0000000000
--- a/layouts/community/66_ansi/xyverz/rules.mk
+++ /dev/null
@@ -1,3 +0,0 @@
-ifneq ($(strip $(RGBLIGHT_SUPPORTED)), no)
- RGBLIGHT_ENABLE = yes # Enable WS2812 RGB underlight.
-endif
diff --git a/layouts/community/66_iso/readme.md b/layouts/community/66_iso/readme.md
new file mode 100644
index 0000000000..db59d489a0
--- /dev/null
+++ b/layouts/community/66_iso/readme.md
@@ -0,0 +1,3 @@
+# 66_iso
+
+ LAYOUT_66_iso
diff --git a/layouts/community/68_ansi/mechmerlin/keymap.c b/layouts/community/68_ansi/mechmerlin/keymap.c
deleted file mode 100644
index ec33f0b7bf..0000000000
--- a/layouts/community/68_ansi/mechmerlin/keymap.c
+++ /dev/null
@@ -1,25 +0,0 @@
-#include QMK_KEYBOARD_H
-#include "mechmerlin.h"
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [_BL] = LAYOUT_68_ansi(
- QK_GESC, 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_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_PGDN,
- KC_CTCP, 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, MO(_FL), KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT),
-
- [_FL] = LAYOUT_68_ansi(
- KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MUTE, KC_VOLD, KC_VOLU, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, MO(_CL), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
-
- [_CL] = LAYOUT_68_ansi(
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, EE_CLR, 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_VER, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
- }; \ No newline at end of file
diff --git a/layouts/community/68_ansi/mechmerlin/rules.mk b/layouts/community/68_ansi/mechmerlin/rules.mk
deleted file mode 100644
index e2ce3d7731..0000000000
--- a/layouts/community/68_ansi/mechmerlin/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-USER_NAME := mechmerlin \ No newline at end of file
diff --git a/layouts/community/68_ansi/readme.md b/layouts/community/68_ansi/readme.md
index 2180973de8..504b914b25 100644
--- a/layouts/community/68_ansi/readme.md
+++ b/layouts/community/68_ansi/readme.md
@@ -1,5 +1,3 @@
# 68_ansi
LAYOUT_68_ansi
-
-This is the 68 key ANSI layout made popular by boards such as the Magicforce 68 and Varmilo VA68M. \ No newline at end of file
diff --git a/layouts/community/68_iso/readme.md b/layouts/community/68_iso/readme.md
new file mode 100644
index 0000000000..f4f37bbd1e
--- /dev/null
+++ b/layouts/community/68_iso/readme.md
@@ -0,0 +1,3 @@
+# 68_iso
+
+ LAYOUT_68_iso
diff --git a/layouts/community/75_ansi/brandonschlack/keymap.c b/layouts/community/75_ansi/brandonschlack/keymap.c
deleted file mode 100644
index 91f036e348..0000000000
--- a/layouts/community/75_ansi/brandonschlack/keymap.c
+++ /dev/null
@@ -1,105 +0,0 @@
-/* Copyright 2020 Brandon Schlack
- *
- * 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 "brandonschlack.h"
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-/* LAYOUT
- * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
- * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
- * ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┴───┼───┤
- * │ │ │ │ │ │ │ │ │ │ │ │ │ │ 2.0U │ │
- * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┼───┤
- * │1.5U │ │ │ │ │ │ │ │ │ │ │ │ │1.5U │ │
- * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┤
- * │1.75U │ │ │ │ │ │ │ │ │ │ │ │2.25U │ │
- * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┤
- * │2.25U │ │ │ │ │ │ │ │ │ │ │1.75U │ │ │
- * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴──┬┴──┬┴──┬───┼───┼───┤
- * │1.25│1.25│1.25│6.25U │1U │1U │1U │1U │1U │1U │
- * └────┴────┴────┴────────────────────────┴───┴───┴───┴───┴───┴───┘
- */
-
- /* Base Layer
- * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
- * │Esc│ F1│ F2│ F3│ F4│ F5│ F6│ F7│ F8│ F9│F10│F11│F12│F13│F14│F15│
- * ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┴───┼───┤
- * │~ `│! 1│@ 2│# 3│$ 4│% 5│^ 6│& 7│* 8│( 9│) 0│_ -│+ =│ Bckspc│Hom│
- * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┼───┤
- * │Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │{ [│} ]│| \│PgU│
- * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┤
- * │Caps │ A │ S │ D │ F │ G │ H │ J │ K │ L │: ;│" '│ Enter│PgD│
- * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┤
- * │Shift │ Z │ X │ C │ V │ B │ N │ M │< ,│> .│? /│ Shift│ Up│End│
- * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴──┬┴──┬┴──┬───┼───┼───┤
- * │Ctrl│ Opt│ Cmd│ Space │Cmd│Opt│Fn │Lef│Dow│Rig│
- * └────┴────┴────┴────────────────────────┴───┴───┴───┴───┴───┴───┘
- */
-[_BASE] = LAYOUT_75_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_F13, KC_F14, KC_F15,
- 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,
- HY_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_LOPT, KC_LCMD, KC_SPC, RWD_CMD, FFD_OPT, PLY_FN1, KC_LEFT, KC_DOWN, KC_RGHT
-),
-/* Function Layer
- * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
- * │Mke│BrD│BrU│Msn│LHP│RV-│RV+│ │ │ │ │ │ │Prv│Nxt│Ply│
- * ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┴───┼───┤
- * │ │ │ │ │ │ │ │ │ │ │ │ │ │ Del │SlD│
- * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┼───┤
- * │RMod │RH+│RS+│RV+│AS+│ │ │ │ │ │ │ │ │ │VlU│
- * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┤
- * │RTgl │RH-│RS-│RV-│AS-│ │ │ │ │ │ │ │ │VlD│
- * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┤
- * │ │LYR│Thm│ │ │RST│ │ │ │ │ │ │PgU│Mte│
- * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴──┬┴──┬┴──┬───┼───┼───┤
- * │ │ │ │ │ │ │ │Hom│PgD│End│
- * └────┴────┴────┴────────────────────────┴───┴───┴───┴───┴───┴───┘
- */
-[_FN1] = LAYOUT_75_ansi(
- QM_MAKE, KC_BRMD, KC_BRMU, MC_MSSN, MC_LHPD, RGB_VAD, RGB_VAI, _______, _______, _______, _______, _______, _______, KC_MPRV, KC_MNXT, KC_MPLY,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL, MC_SLPD,
- RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_VOLU,
- RGB_TOG, RGB_HUD, RGB_SAD, RGB_VAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, KC_VOLD,
- _______, RGB_LYR, RGB_THM, _______, _______, QK_BOOT, _______, _______, _______, _______, _______, _______, KC_PGUP, KC_MUTE,
- _______, _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_END
-),
-/* Blank Layer
- * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
- * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
- * ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┴───┼───┤
- * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
- * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┼───┤
- * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
- * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┤
- * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
- * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┤
- * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
- * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴──┬┴──┬┴──┬───┼───┼───┤
- * │ │ │ │ │ │ │ │ │ │ │
- * └────┴────┴────┴────────────────────────┴───┴───┴───┴───┴───┴───┘
-[X] = LAYOUT_75_ansi(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
-),
-*/
-};
diff --git a/layouts/community/75_ansi/brandonschlack/readme.md b/layouts/community/75_ansi/brandonschlack/readme.md
deleted file mode 100644
index 0dfb081ba7..0000000000
--- a/layouts/community/75_ansi/brandonschlack/readme.md
+++ /dev/null
@@ -1,7 +0,0 @@
-# brandonschlack's 75_ansi layout
-
-This is my preferred 75% layout.
-
-It is currently used on:
-
-* [KBD75](https://github.com/qmk/qmk_firmware/tree/master/keyboards/kbdfans/kbd75)
diff --git a/layouts/community/75_ansi/brandonschlack/rules.mk b/layouts/community/75_ansi/brandonschlack/rules.mk
deleted file mode 100644
index 104063ed44..0000000000
--- a/layouts/community/75_ansi/brandonschlack/rules.mk
+++ /dev/null
@@ -1,5 +0,0 @@
-# Build Options
-ifneq (, $(findstring kbd75, $(KEYBOARD)))
- MOUSEKEY_ENABLE = no
-endif
-BACKLIGHT_ENABLE = no # No backlights installed
diff --git a/layouts/community/75_ansi/mechmerlin-75_ansi/keymap.c b/layouts/community/75_ansi/mechmerlin-75_ansi/keymap.c
deleted file mode 100644
index 118309d9d0..0000000000
--- a/layouts/community/75_ansi/mechmerlin-75_ansi/keymap.c
+++ /dev/null
@@ -1,29 +0,0 @@
-#include QMK_KEYBOARD_H
-#include "mechmerlin.h"
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
-[_BL] = LAYOUT_75_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_PSCR, KC_PAUS, 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,
- KC_CTCP, 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(_FL), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT),
-
-[_FL] = LAYOUT_75_ansi(
- _______, RGB_M_P, RGB_M_B, RGB_M_R, RGB_M_SW, RGB_M_SN, RGB_M_K, RGB_M_X, RGB_M_G, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- BL_TOGG, BL_UP, BL_DOWN, BL_STEP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- RGB_TOG, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______,
- VK_TOGG, RGB_RMOD, RGB_HUD, RGB_SAD, RGB_VAD, RGB_SPD, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, KC_PGUP, _______,
- _______, _______, _______, MO(_CL), _______, _______, _______, KC_HOME, KC_PGDN, KC_END),
-
-[_CL] = LAYOUT_75_ansi(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, EE_CLR, QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, KC_VER, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______),
-};
diff --git a/layouts/community/75_ansi/mechmerlin-75_ansi/readme.md b/layouts/community/75_ansi/mechmerlin-75_ansi/readme.md
deleted file mode 100644
index 8205abe283..0000000000
--- a/layouts/community/75_ansi/mechmerlin-75_ansi/readme.md
+++ /dev/null
@@ -1,9 +0,0 @@
-# MechMerlin's Standard ANSI 75% Layout
-
-This is the 75% layout used by u/merlin36, host of the [MechMerlin](www.youtube.com/mechmerlin)
-YouTube channel.
-
-MechMerlin currently has no keyboard supporting this layout.
-
-### Build
-To build the firmware file associated with this keymap, simply run `make your_keyboard:mechmerlin-ansi`.
diff --git a/layouts/community/75_ansi/mechmerlin-75_ansi/rules.mk b/layouts/community/75_ansi/mechmerlin-75_ansi/rules.mk
deleted file mode 100644
index e2ce3d7731..0000000000
--- a/layouts/community/75_ansi/mechmerlin-75_ansi/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-USER_NAME := mechmerlin \ No newline at end of file
diff --git a/layouts/community/75_ansi/readme.md b/layouts/community/75_ansi/readme.md
index 8229571db1..df25851906 100644
--- a/layouts/community/75_ansi/readme.md
+++ b/layouts/community/75_ansi/readme.md
@@ -1,71 +1,3 @@
# 75_ansi
-This is the standard 75% ANSI keyboard layout.
-
-One may argue that having 3 1u keys to the right of spacebar
-is not desired as two 1.5u keys. However, most 75% boards that
-come out have that as the standard.
-
-## Requirements
-
-### 1. Layout defined
-
-A keyboard's `.h` file needs to have `LAYOUT_75_ansi` defined
-
-```c
-#define LAYOUT_75_ansi( \
- K5A, K5B, K5C, K5D, K5E, K5F, K5G, K5H, K5I, K5J, K5K, K5L, K5M, K5N, K5O, K5Q, \
- K4A, K4B, K4C, K4D, K4E, K4F, K4G, K4H, K4I, K4J, K4K, K4L, K4M, K4O, K4P, \
- K3A, K3B, K3C, K3D, K3E, K3F, K3G, K3H, K3I, K3J, K3K, K3L, K3M, K3O, K3P, \
- K2A, K2B, K2C, K2D, K2E, K2F, K2G, K2H, K2I, K2J, K2K, K2L, K2O, K2P, \
- K1A, K1C, K1D, K1E, K1F, K1G, K1H, K1I, K1J, K1K, K1M, K1N, K1O, K1P, \
- K0A, K0B, K0C, K0J, K0K, K0L, K0M, K0N, K0O, K0P \
-) { \
- { K5A, K5B, K5C, K5D, K5E, K5F, K5G, K5H, K5I, K5J, K5K, K5L, K5M, K5N, K5O, KC_NO, K5Q }, \
- { K4A, K4B, K4C, K4D, K4E, K4F, K4G, K4H, K4I, K4J, K4K, K4L, K4M, KC_NO, K4O, K4P, KC_NO }, \
- { K3A, K3B, K3C, K3D, K3E, K3F, K3G, K3H, K3I, K3J, K3K, K3L, K3M, KC_NO, K3O, K3P, KC_NO }, \
- { K2A, K2B, K2C, K2D, K2E, K2F, K2G, K2H, K2I, K2J, K2K, K2L, KC_NO, KC_NO, K2O, K2P, KC_NO }, \
- { K1A, KC_NO, K1C, K1D, K1E, K1F, K1G, K1H, K1I, K1J, K1K, KC_NO, K1M, K1N, K1O, K1P, KC_NO }, \
- { K0A, K0B, K0C, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, K0J, KC_NO, K0K, K0L, K0M, K0N, K0O, K0P, KC_NO } \
-}
-```
-
-This layout needs to match the layout defined in
-
- qmk_firmware/layouts/community/75_ansi/layout.json
-
-### 2. Configuring rules.mk
-
-`rules.mk` needs to have the following line:
-
- LAYOUTS = 75_ansi
-
-### 3. Defining a keymap
-
-A keymap must be defined at
-
- qmk_firmware/layouts/community/75_ansi/yourfoldername/keymap.c
-
-This keymap must have a `LAYOUT_75_ansi` layout defined.
-
-```c
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [0] = LAYOUT_75_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_PSCR, KC_PAUS, 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,
- KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_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, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT)
- };
-```
-
-## Usage
-
-To make generate a hex file, type
-
- make yourkeyboard:yourfoldername
-
-This hex file will contain a keymap with layout `LAYOUT_75_ansi` derived from
-
- qmk_firmware/layouts/community/75_ansi/yourfoldername/keymap.c
+ LAYOUT_75_ansi
diff --git a/layouts/community/75_ansi/spidey3/config.h b/layouts/community/75_ansi/spidey3/config.h
deleted file mode 100644
index 93fc4faf71..0000000000
--- a/layouts/community/75_ansi/spidey3/config.h
+++ /dev/null
@@ -1,7 +0,0 @@
-#pragma once
-
-#define NO_ACTION_ONESHOT
-#undef LOCKING_SUPPORT_ENABLE
-
-#define LAYER_STATE_8BIT
-#define MAX_LAYER 4
diff --git a/layouts/community/75_ansi/spidey3/keymap.c b/layouts/community/75_ansi/spidey3/keymap.c
deleted file mode 100644
index 4e251b41db..0000000000
--- a/layouts/community/75_ansi/spidey3/keymap.c
+++ /dev/null
@@ -1,33 +0,0 @@
-#include "spidey3.h"
-
-#define FN_MENU LT(_FN,KC_APP)
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- // Base
- [_BASE] = LAYOUT_75_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_PSCR, KC_INS, 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,
- KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_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, FN_MENU, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
- ),
- // Numpad
- [_NUMPAD] = LAYOUT_75_ansi(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- XXXXXXX, XXXXXXX, XXXXXXX, KC_NUM, XXXXXXX, XXXXXXX, XXXXXXX, KC_KP_7, KC_KP_8, KC_KP_9, KC_KP_0, KC_PMNS, KC_PEQL, _______, _______,
- _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_KP_4, KC_KP_5, KC_KP_6, KC_PCMM, _______, _______, _______, _______,
- KC_NUM, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_KP_1, KC_KP_2, KC_KP_3, KC_PPLS, KC_PAST, KC_PENT, _______,
- _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_KP_0, SPI_KP_00, KC_PDOT, KC_PSLS, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
- ),
- // FN
- [_FN] = LAYOUT_75_ansi(
- QK_BOOT, SPI_NORMAL, SPI_WIDE, SPI_SCRIPT, SPI_BLOCKS, SPI_CIRCLE, SPI_SQUARE, SPI_PARENS, SPI_FRAKTR, SPI_BOLD, SPI_MATH, XXXXXXX, SPI_GFLOCK, KC_SLEP, CH_SUSP, KC_PWR,
- EE_CLR, UM(SAD), UM(MEH), UM(HAPPY), UM(ANGRY), UM(THUMBDN),UM(THUMBUP),UM(SPIDER), X_BUL, UM(LOL), UM(SURPRISE),X_DASH, XXXXXXX, KC_PAUS, KC_SCRL,
- XXXXXXX, RGB_TOG, RGB_MOD, RGB_HUD, RGB_HUI, RGB_SAD, RGB_SAI, RGB_VAD, RGB_VAI, SPI_GLO, VK_TOGG, XXXXXXX, XXXXXXX, XXXXXXX, KC_BRIU,
- XXXXXXX, RGB_M_P, RGB_M_B, RGB_M_R, RGB_M_SW, RGB_M_SN, RGB_M_K, RGB_M_G, RGB_M_TW, UC_LINX, XXXXXXX, XXXXXXX, XXXXXXX, KC_BRID,
- _______, XXXXXXX, UC_EMAC, UC_WINC, UC_NEXT, NK_TOGG, TG(_NUMPAD),UC_MAC, UM(LARR), UM(RARR), DB_TOGG, _______, KC_VOLU, KC_MUTE,
- _______, _______, _______, KC_MPLY, KC_ASST, _______, KC_CPNL, KC_MPRV, KC_VOLD, KC_MNXT
- )
-};
diff --git a/layouts/community/75_ansi/spidey3/readme.md b/layouts/community/75_ansi/spidey3/readme.md
deleted file mode 100644
index 409d6e5f81..0000000000
--- a/layouts/community/75_ansi/spidey3/readme.md
+++ /dev/null
@@ -1,14 +0,0 @@
-Copyright 2020 Joshua Diamond josh@windowoffire.com @spidey3
-
-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/>.
diff --git a/layouts/community/75_ansi/spidey3/rules.mk b/layouts/community/75_ansi/spidey3/rules.mk
deleted file mode 100644
index 10201a5850..0000000000
--- a/layouts/community/75_ansi/spidey3/rules.mk
+++ /dev/null
@@ -1,10 +0,0 @@
-# Build Options
-# comment out to disable the options.
-#
-MOUSEKEY_ENABLE = no # Mouse keys
-UNICODEMAP_ENABLE = yes
-VELOCIKEY_ENABLE = yes
-GRAVE_ESC_ENABLE = no
-
-# The following disabled to save space
-SPACE_CADET_ENABLE = no
diff --git a/layouts/community/75_ansi/yanfali/keymap.c b/layouts/community/75_ansi/yanfali/keymap.c
deleted file mode 100644
index 618437c327..0000000000
--- a/layouts/community/75_ansi/yanfali/keymap.c
+++ /dev/null
@@ -1,25 +0,0 @@
-#include QMK_KEYBOARD_H
-
-enum {
- BASE,
- FN
-};
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
-[BASE] = LAYOUT_75_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_PSCR, KC_PAUS, 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,
- LCTL_T(KC_ESC), 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_LALT, KC_LGUI, KC_SPC, KC_RGUI, KC_NO, MO(FN), KC_LEFT, KC_DOWN, KC_RGHT),
-
-[FN] = LAYOUT_75_ansi(
- _______, RGB_M_P, RGB_M_B, RGB_M_R, RGB_M_SW, RGB_M_SN, RGB_M_K, RGB_M_X, RGB_M_G, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- BL_TOGG, BL_UP, BL_DOWN, BL_STEP, _______, _______, _______, _______, _______, _______, _______, _______, EE_CLR, QK_BOOT, _______,
- RGB_TOG, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______,
- VK_TOGG, RGB_RMOD, RGB_HUD, RGB_SAD, RGB_VAD, RGB_SPD, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, KC_PGUP, _______,
- _______, _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_END)
-};
diff --git a/layouts/community/75_iso/readme.md b/layouts/community/75_iso/readme.md
new file mode 100644
index 0000000000..8c601b7e82
--- /dev/null
+++ b/layouts/community/75_iso/readme.md
@@ -0,0 +1,3 @@
+# 75_iso
+
+ LAYOUT_75_iso
diff --git a/layouts/community/96_ansi/readme.md b/layouts/community/96_ansi/readme.md
new file mode 100644
index 0000000000..8543655610
--- /dev/null
+++ b/layouts/community/96_ansi/readme.md
@@ -0,0 +1,3 @@
+# 96_ansi
+
+ LAYOUT_96_ansi
diff --git a/layouts/community/96_iso/readme.md b/layouts/community/96_iso/readme.md
new file mode 100644
index 0000000000..c4dc7f6e90
--- /dev/null
+++ b/layouts/community/96_iso/readme.md
@@ -0,0 +1,3 @@
+# 96_iso
+
+ LAYOUT_96_iso
diff --git a/layouts/community/alice/manna-harbour_miryoku/config.h b/layouts/community/alice/manna-harbour_miryoku/config.h
deleted file mode 100644
index 61f31d228e..0000000000
--- a/layouts/community/alice/manna-harbour_miryoku/config.h
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright 2021 Manna Harbour
-// https://github.com/manna-harbour/miryoku
-
-// 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 XXX KC_NO
-
-
-#define LAYOUT_miryoku( \
- 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, \
- N30, N31, K32, K33, K34, K35, K36, K37, N38, N39 \
-) \
-LAYOUT_alice( \
-KC_ESC, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, \
-KC_PGUP, KC_TAB, K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, KC_LBRC, KC_RBRC, KC_BSLS, \
-KC_PGDN, KC_CAPS, K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, KC_SCLN, KC_ENT, \
- KC_LSFT, K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, KC_SLSH, KC_RSFT, KC_RSFT, \
- KC_LCTL, K32, K33, K34, K36, K37, KC_RCTL \
-)
diff --git a/layouts/community/alice/manna-harbour_miryoku/keymap.c b/layouts/community/alice/manna-harbour_miryoku/keymap.c
deleted file mode 100644
index dbab7f9820..0000000000
--- a/layouts/community/alice/manna-harbour_miryoku/keymap.c
+++ /dev/null
@@ -1,4 +0,0 @@
-// Copyright 2019 Manna Harbour
-// https://github.com/manna-harbour/miryoku
-
-// 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/>.
diff --git a/layouts/community/alice/readme.md b/layouts/community/alice/readme.md
new file mode 100644
index 0000000000..a52d497169
--- /dev/null
+++ b/layouts/community/alice/readme.md
@@ -0,0 +1,3 @@
+# alice
+
+ LAYOUT_alice
diff --git a/layouts/community/alice/stanrc85-alice/keymap.c b/layouts/community/alice/stanrc85-alice/keymap.c
deleted file mode 100644
index b8bcfbdd5e..0000000000
--- a/layouts/community/alice/stanrc85-alice/keymap.c
+++ /dev/null
@@ -1,52 +0,0 @@
-/*
-Copyright 2020 Stanrc85 <stanrc@gmail.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 QMK_KEYBOARD_H
-#include "stanrc85.h"
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [_QWERTY] = LAYOUT_alice(
- KC_MPLY, 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,
- CA_SCLN, 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,
- CA_QUOT, KC_CTLE, 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_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(_FN2_60),
- KC_LCTL, KC_LALT, LT_BPCF, KC_LGUI, LT_SPCF, TD_TWIN, TD_TCTL
- ),
-
- [_DEFAULT] = LAYOUT_alice(
- KC_ESC, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC,
- KC_PGUP, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS,
- KC_PGDN, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
- KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(_FN2_60),
- KC_LCTL, KC_LALT, KC_SPC, MO(_FN1_60), KC_SPC, KC_RALT, KC_RCTL
- ),
-
- [_FN1_60] = LAYOUT_alice(
- _______, KC_TILD, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL,
- _______, _______, _______, CA_QUOT, _______, CA_SCLN, KC_VOLU, KC_PGUP, KC_BSPC, KC_UP, KC_DEL, KC_PSCR, _______, _______, KC_INS,
- _______, KC_CAPS, _______, _______, KC_LCTL, KC_LSFT, KC_VOLD, KC_PGDN, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______,
- _______, KC_RDP, _______, _______, _______, _______, _______, _______, KC_WBAK, KC_WFWD, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______
- ),
-
- [_FN2_60] = LAYOUT_alice(
- BL_TOGG, RGB_TOG, RGB_MOD, RGB_VAD, RGB_VAI, RGB_SAI, RGB_HUD, RGB_HUI, _______, _______, _______, _______, _______, _______, _______,
- BL_UP, VK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, QK_BOOT,
- BL_DOWN, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MAKE,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, TG(_DEFAULT)
- )
-}; \ No newline at end of file
diff --git a/layouts/community/alice/stanrc85-alice/readme.md b/layouts/community/alice/stanrc85-alice/readme.md
deleted file mode 100644
index 3c4d7ffc34..0000000000
--- a/layouts/community/alice/stanrc85-alice/readme.md
+++ /dev/null
@@ -1,57 +0,0 @@
-<!-- Copyright 2021 Stanrc85
-
-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/>.-->
-
-# Stanrc85's Standard Layout
-
-Shared keymap between 60%, 65%, Alice layouts:
-- 1upkeyboards60HSE
-- Mark65
-- Sneakbox Alice
-
-## Keymap Notes
-- Layer 0 is default QWERTY layout with additional custom features:
- - SpaceFN to function layer 2 on `Space`
- - `CTRL` when held and `ESC` when tapped on `CAPS LOCK`
- - Tap Dance on `Fn1` for `CTRL+ALT+DEL` and `WIN+L`
- - Tap Dance on `ESC` for `ESC` and ` ` `
-
-![Base QWERTY Layer](https://imgur.com/SrLWaoj.png)
-
-- Layer 1 is default QWERTY with no custom features used mostly for gaming
- - Enabled by `Fn2+RCTL` from base layer
-
-![Default ANSI Layer](https://imgur.com/KMxFZ2v.png)
-
-- Layer 2 is Function layer:
- - F keys
- - Arrows
- - Volume and Media controls
- - AutoHotkey shortcuts based on [Speaker Control](https://github.com/stanrc85/Speaker-Control) script
- - AHK Mic is used to mute/unmute microphone
- - AHK Speaker switches audio output between headphones and speakers
-
-![Function Layer](https://imgur.com/Luqo4cg.png)
-
-- Layer 3 is RGB Underglow control and RESET
- - `Fn2+RCTL` used to toggle Default QWERTY layer on and off
- - `qmk compile` command on `Fn2+Enter`
- - `qmk flash` command on `Fn2+Shift+enter`
-
-![RGB and RESET Layer](https://imgur.com/tlpoP5E.png)
-
-
-
-### Build
-To build the firmware file associated with this keymap, simply run `make your_keyboard:stanrc85-alice`. \ No newline at end of file
diff --git a/layouts/community/alice/stanrc85-alice/rules.mk b/layouts/community/alice/stanrc85-alice/rules.mk
deleted file mode 100644
index 9db643c8e6..0000000000
--- a/layouts/community/alice/stanrc85-alice/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-USER_NAME := stanrc85 \ No newline at end of file
diff --git a/layouts/community/alice_split_bs/manna-harbour_miryoku/config.h b/layouts/community/alice_split_bs/manna-harbour_miryoku/config.h
deleted file mode 100644
index 8d8ad00227..0000000000
--- a/layouts/community/alice_split_bs/manna-harbour_miryoku/config.h
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright 2021 Manna Harbour
-// https://github.com/manna-harbour/miryoku
-
-// 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 XXX KC_NO
-
-#define LAYOUT_miryoku( \
- 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, \
- N30, N31, K32, K33, K34, K35, K36, K37, N38, N39 \
-) \
-LAYOUT_alice_split_bs( \
-KC_ESC, 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_DEL, \
-KC_PGUP, KC_TAB, K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, KC_LBRC, KC_RBRC, KC_BSLS, \
-KC_PGDN, KC_CAPS, K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, KC_SCLN, KC_ENT, \
- KC_LSFT, K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, KC_SLSH, KC_RSFT, KC_RSFT, \
- KC_LCTL, K32, K33, K34, K36, K37, KC_RCTL \
-)
diff --git a/layouts/community/alice_split_bs/manna-harbour_miryoku/keymap.c b/layouts/community/alice_split_bs/manna-harbour_miryoku/keymap.c
deleted file mode 100644
index dbab7f9820..0000000000
--- a/layouts/community/alice_split_bs/manna-harbour_miryoku/keymap.c
+++ /dev/null
@@ -1,4 +0,0 @@
-// Copyright 2019 Manna Harbour
-// https://github.com/manna-harbour/miryoku
-
-// 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/>.
diff --git a/layouts/community/alice_split_bs/readme.md b/layouts/community/alice_split_bs/readme.md
new file mode 100644
index 0000000000..705defa818
--- /dev/null
+++ b/layouts/community/alice_split_bs/readme.md
@@ -0,0 +1,3 @@
+# alice_split_bs
+
+ LAYOUT_alice_split_bs
diff --git a/layouts/community/ergodox/333fred/README.md b/layouts/community/ergodox/333fred/README.md
deleted file mode 100644
index 01041c893a..0000000000
--- a/layouts/community/ergodox/333fred/README.md
+++ /dev/null
@@ -1,125 +0,0 @@
-## Layout
-
-### Keymap 0: Basic layer
-```
-,--------------------------------------------------. ,--------------------------------------------------.
-| ` | 1 | 2 | 3 | 4 | 5 | = | | L1 | 6 | 7 | 8 | 9 | 0 | - |
-|--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
-| TAB | Q | W | E | R | T | L1 | | L2 | Y | U | I | O | P | \ |
-|--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
-| Esc | A | S | D | F | G |------| |------| H | J | K | L | ; | ' |
-|--------+------+------+------+------+------| L2 | |TT(3) |------+------+------+------+------+--------|
-| LShift |Z/Ctrl| X | C | V | B | | | | N | M | , | . |//Ctrl| RShift |
-`--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- |LCTRL | F4 | F5 | LGUI | LALT | | Left | Down | Up | Right| RGUI |
- `----------------------------------' `----------------------------------'
- ,-------------. ,-------------.
- | Copy | Paste| | Copy | Paste |
- ,------|------|------| |------+--------+------.
- | | | PgUp | | PgDn | | |
- | Bcksp|OSL(2)|------| |------| Ent |Space |
- | | VIM | Del | |OSL(2)| | |
- `--------------------' `----------------------'
-```
-* For a single tap or single hold, OSL behaves like OSL(SYMB). For a tap + hold, it behaves like MO(VIM).
-
-### Keymap 1: Code Layer
-```
-,--------------------------------------------------. ,--------------------------------------------------.
-| | | | | | | | | | | | | | | |
-|--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
-| | | | | | | F10 | | F11 | | | | | | |
-|--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
-| | | | | | |------| |------| | | | | | |
-|--------+------+------+------+------+------| L2 | | |------+------+------+------+------+--------|
-| | | | | | | | | | | | | | | |
-`--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- | | | | | | | F12 |GoToIm| FAR | | |
- `----------------------------------' `----------------------------------'
- ,-------------. ,---------------.
- |Format|Build | | Copy | Paste |
- ,------|------|------| |------+--------+------.
- | | |Refact| | Up | | |
- | | |------| |------| | |
- | | | | | Down | | |
- `--------------------' `----------------------'
-```
-* Build - Visualt Studio Build Solution. Sends `CTRL + SHFT + B`
-* FAR - Visual Studio Find All References. Sends `CTRL + K, R`
-* Format - Visual Studio Format. Sends `CTRL + K, CTRL + D`
-* GoToIm - Visual Studio Go To Implementation. Sends `CTRL + F12`
-* Refact - Visual Studio Refactor. Sends `CTRL + R, R`
-* Sort U - Visual Studio Sort Usings. Sends `CTRL + R, CTRL + G`
-
-
-### Keymap 2: Symbol Layer
-```
-,---------------------------------------------------. ,--------------------------------------------------.
-|Version | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | F11 |
-|---------+------+------+------+------+------+------| |------+------+------+------+------+------+--------|
-| | ! | @ | ( | ) | | | | | | Up | 7 | 8 | 9 | * | F12 |
-|---------+------+------+------+------+------| | | |------+------+------+------+------+--------|
-| | # | $ | { | } | ` |------| |------| Down | 4 | 5 | 6 | + | |
-|---------+------+------+------+------+------| | | |------+------+------+------+------+--------|
-| | % | ^ | [ | ] | ~ | | | | & | 1 | 2 | 3 | \ | |
-`---------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- | EPRM | | | | | | 0 | 0 | . | = | |
- `-----------------------------------' `----------------------------------'
- ,-------------. ,-------------.
- | | Caps | | | |
- ,------|------|------| |------+------+------.
- | | |APscr | | | | |
- | | |------| |------| | |
- | | | PScr | | | | |
- `--------------------' `--------------------'
-```
-* APscr - Take a printscreen of the current app. Sends `Alt + Print Screen`
-
-### Keymap 3: Media and Mouse Keys
-```
-,--------------------------------------------------. ,--------------------------------------------------.
-| | | | | | | | | | | | | | | |
-|--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
-| | | | MsUp | | | | | | | | | | | |
-|--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
-| | |MsLeft|MsDown|MsRght| |------| |------| | | | | | |
-|--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
-| | | | | | | | | | | | | | | |
-`--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- | | | | Lclk | Rclk | | | | | | |
- `----------------------------------' `----------------------------------'
- ,-------------. ,-------------.
- | Back+| Back-| | Vol+ | |
- ,------|------|------| |------+------+------.
- | | |BL_TOG| | Vol- | | |
- | | |------| |------| PL/PS| Next |
- | | | | | Back | | |
- `--------------------' `--------------------'
-```
-
-### Keymap 4: Movement
-```
-,--------------------------------------------------. ,--------------------------------------------------.
-| | | | | | | | | | | | | | | |
-|--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
-| |KOpen |KType | LSFT | | | | | | Copy | | | | Paste| |
-|--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
-| |DLeft |DRight| LCTL | LGUI | |------| |------| Left | Down | Up | Right| | |
-|--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
-| |SFT_TB| Tab | | | | | | | | | | | | |
-`--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- | | | | | | | | | | | |
- `----------------------------------' `----------------------------------'
- ,-------------. ,-------------.
- | | | | Home | End |
- ,------|------|------| |------+------+------.
- | | | | | | | |
- | | |------| |------| | |
- | | | | | | | |
- `--------------------' `--------------------'
-```
-* DLeft - Move to the left Desktop. Sends `Ctrl + Win + Left Arrow`
-* DRight - Move to the right Desktop. Sends `Ctrl + Win + Right Arrow`
-* KOpen - Opens KeePass. Sends `Ctrl + Alt + k`
-* KType - Autotypes KeePass password. Sends `Ctrl + Alt + a`
-* SFT_TB - Sends `CTRL + TAB`.
diff --git a/layouts/community/ergodox/333fred/config.h b/layouts/community/ergodox/333fred/config.h
deleted file mode 100644
index 00ed747817..0000000000
--- a/layouts/community/ergodox/333fred/config.h
+++ /dev/null
@@ -1,26 +0,0 @@
-/*
- Copyright (c) 2020 Fred Silberberg
-
- Permission is hereby granted, free of charge, to any person obtaining a copy
- of this software and associated documentation files (the "Software"), to deal
- in the Software without restriction, including without limitation the rights
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- copies of the Software, and to permit persons to whom the Software is
- furnished to do so, subject to the following conditions:
-
- The above copyright notice and this permission notice shall be included in all
- copies or substantial portions of the Software.
-
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- THE SOFTWARE.
-*/
-
-#pragma once
-
-#undef TAPPING_TERM
-#define TAPPING_TERM 200
diff --git a/layouts/community/ergodox/333fred/keymap.c b/layouts/community/ergodox/333fred/keymap.c
deleted file mode 100644
index e374ef442f..0000000000
--- a/layouts/community/ergodox/333fred/keymap.c
+++ /dev/null
@@ -1,314 +0,0 @@
-/*
- Copyright (c) 2020 Fred Silberberg
-
- Permission is hereby granted, free of charge, to any person obtaining a copy
- of this software and associated documentation files (the "Software"), to deal
- in the Software without restriction, including without limitation the rights
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- copies of the Software, and to permit persons to whom the Software is
- furnished to do so, subject to the following conditions:
-
- The above copyright notice and this permission notice shall be included in all
- copies or substantial portions of the Software.
-
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- THE SOFTWARE.
-*/
-
-#include QMK_KEYBOARD_H
-#include "debug.h"
-#include "action_layer.h"
-#include "version.h"
-#include "333fred.h"
-
-// NOTE: Cells marked with ACCESS must remain transparent, they're the keys that actually get to that layer
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-/* Keymap 0: Basic layer
- *
- * ,--------------------------------------------------. ,--------------------------------------------------.
- * | ` | 1 | 2 | 3 | 4 | 5 | F5 | | F6 | 6 | 7 | 8 | 9 | 0 | - |
- * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | TAB | Q | W | E | R | T | GAME | |GAMEA | Y | U | I | O | P | \ |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | Esc | A | S | D | F | G |------| |------| H | J | K | L | ; | ' |
- * |--------+------+------+------+------+------| SYMB | |MEDIA |------+------+------+------+------+--------|
- * | LShift |Z/Ctrl| X | C | V | B | | | | N | M | , | . |//Ctrl| RShift |
- * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * |LCTRL | F4 | F5 | LGUI | LALT | | Left | Down | = | Right| RGUI |
- * `----------------------------------' `----------------------------------'
- * ,-------------. ,-------------.
- * | Copy | Paste| | Copy | Paste |
- * ,------|------|------| |------+--------+------.
- * | | | PgUp | | Up | | |
- * | Bcksp|OSL(2)|------| |------| Ent |Space |
- * | | VIM | Del | | Down | | |
- * `--------------------' `----------------------'
- */
-[BASE] = LAYOUT_ergodox_pretty( // layer 0 : default
- // left hand
- KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_F5, KC_F6, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS,
- KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, TG(GAME), TG(GAME_ARROW), KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS,
- KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
- OSM(MOD_LSFT), CTL_T(KC_Z), KC_X, KC_C, KC_V, KC_B, TG(SYMB), MO(MDIA), KC_N, KC_M, KC_COMM, KC_DOT, CTL_T(KC_SLSH), OSM(MOD_RSFT),
- OSM(MOD_LCTL), KC_F4, KC_F5, KC_LGUI, KC_LALT, KC_LEFT, KC_DOWN, KC_EQL, KC_RIGHT, KC_RGUI,
- LCTL(KC_C), LCTL(KC_V), LCTL(KC_C), LCTL(KC_V),
- KC_PGUP, KC_UP,
- KC_BSPC, TD(TD_SYM_VIM), KC_DEL, KC_DOWN, KC_ENT, KC_SPC
- ),
-
-/* Keymap 2: Codeflow Layer
- *
- * ,--------------------------------------------------. ,--------------------------------------------------.
- * | | | | | | | | | | | | | | | |
- * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | | | | | | | | | | | | | | | |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | | | | | |------| |------| | | | | | |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | | | | | | | | | | | | | | |
- * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * | | | | | | | F7 | F8 | | | |
- * `----------------------------------' `----------------------------------'
- * ,-------------. ,---------------.
- * | |ACCESS| | | |
- * ,------|------|------| |------+--------+------.
- * | | | | | | | |
- * | | |------| |------| | |
- * | | | | | | | |
- * `--------------------' `----------------------'
- */
-// If it accepts an argument (i.e, is a function), it doesn't need KC_.
-// Otherwise, it needs KC_*
-[CODEFLOW] = LAYOUT_ergodox_pretty( // layer 1 : code
- // left hand
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, KC_F7, KC_F8, _______, _______, _______,
- _______, _______, _______, _______,
- _______, _______,
- _______, _______, _______, _______, _______, _______
- ),
-/* Keymap 3: Symbol Layer
- *
- * ,---------------------------------------------------. ,--------------------------------------------------.
- * | | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | F11 |
- * |---------+------+------+------+------+------+------| |------+------+------+------+------+------+--------|
- * | | ! | @ | ( | ) | | | | | | Up | 7 | 8 | 9 | * | F12 |
- * |---------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | # | $ | { | } | ` |------| |------| Down | 4 | 5 | 6 | + | |
- * |---------+------+------+------+------+------|ACCESS| | |------+------+------+------+------+--------|
- * | | % | ^ | [ | ] | ~ | | | | & | 1 | 2 | 3 | \ | |
- * `---------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * | | | | | | | 0 | 0 | . | = | |
- * `-----------------------------------' `----------------------------------'
- * ,-------------. ,-------------.
- * | | | | | |
- * ,------|------|------| |------+------+------.
- * | | |APScr | | | | |
- * | |ACCESS|------| |------| | |
- * | | | PScr | | | | |
- * `--------------------' `--------------------'
- */
-[SYMB] = LAYOUT_ergodox_pretty(
- // left hand
- _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, _______, _______, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,
- _______, KC_EXLM, KC_AT, KC_LPRN, KC_RPRN, KC_PIPE, _______, _______, KC_UP, KC_7, KC_8, KC_9, KC_ASTR, KC_F12,
- _______, KC_HASH, KC_DLR, KC_LCBR, KC_RCBR, KC_GRV, KC_DOWN, 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, _______,
- _______, _______, _______, _______, _______, KC_0, KC_0, KC_DOT, KC_EQL, _______,
- _______, _______, _______, _______,
- PSCREEN_APP, _______,
- _______, _______, KC_PSCR, _______, _______, _______
-),
-/* Keymap 3: Media and mouse keys
- *
- * ,--------------------------------------------------. ,--------------------------------------------------.
- * | | | | | | | | | | | | | | | |
- * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | | | | MsUp | | | | | | | | | | | |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | |MsLeft|MsDown|MsRght| |------| |------| | | | | | |
- * |--------+------+------+------+------+------| | |ACCESS|------+------+------+------+------+--------|
- * | | | | | | | | | | | | | | | |
- * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * | | | | Lclk | Rclk | | | | | | |
- * `----------------------------------' `----------------------------------'
- * ,-------------. ,-------------.
- * | Back+| Back-| | Vol+ | |
- * ,------|------|------| |------+------+------.
- * | | |BackTg| | Vol- | | |
- * | | |------| |------| PL/PS| Next |
- * | | | | | Back | | |
- * `--------------------' `--------------------'
- */
-[MDIA] = LAYOUT_ergodox_pretty(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, KC_MS_U, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, KC_MS_L, KC_MS_D, KC_MS_R, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, KC_BTN1, KC_BTN2, _______, _______, _______, _______, _______,
- BL_UP, BL_DOWN, KC_VOLU, _______,
- BL_TOGG, KC_VOLD,
- _______, _______, _______, KC_MPRV, KC_MPLY, KC_MNXT
-),
-/* Keymap 4: Movement
- *
- * ,--------------------------------------------------. ,--------------------------------------------------.
- * | | | | | | | | | | | | | | | |
- * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | |KOpen |KType |TERMCP|TERMPT| | | | | Copy | | | | Paste| |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | |DLeft |DRight|LCTRL | LGUI | |------| |------| Left | Down | Up | Right| | |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | |SFT_TB| TAB | | | | | | | | | | | | |
- * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * | | | | | | | | | | | |
- * `----------------------------------' `----------------------------------'
- * ,-------------. ,-------------.
- * | | | | Home | End |
- * ,------|------|------| |------+------+------.
- * | | | | | | | |
- * | |ACCESS|------| |------| | |
- * | | | | | | | |
- * `--------------------' `--------------------'
- */
-// MEDIA AND MOUSE
-[VIM] = LAYOUT_ergodox_pretty(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, DLEFT, DRIGHT, KC_LCTL, KC_LGUI, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, _______, _______,
- _______, _______, KC_TAB, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, KC_HOME, KC_END,
- _______, _______,
- _______, _______, _______, _______, _______, _______
-),
-/* Keymap 1: Game Layer
- *
- * ,--------------------------------------------------. ,--------------------------------------------------.
- * | ESC | | | | | | | | | | | | | | |
- * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | | | | | | |ACCESS| | | | | | | | |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | CTRL | | | | | |------| |------| | | | | | |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | SHIFT | Z | | | | | | | | | | | | | |
- * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * |ENTER | | | LOCK | BSPC | | | | | | |
- * `----------------------------------' `----------------------------------'
- * ,-------------. ,---------------.
- * | F5 | F6 | | | |
- * ,------|------|------| |------+--------+------.
- * | | | | | | | |
- * | ALT | SPC |------| |------| | |
- * | | | SYMB | | | | |
- * `--------------------' `----------------------'
- */
-// If it accepts an argument (i.e, is a function), it doesn't need KC_.
-// Otherwise, it needs KC_*
-[GAME] = LAYOUT_ergodox_pretty( // layer 1 : code
- // left hand
- KC_ESC, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- KC_LCTL, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- KC_LSFT, KC_Z, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- KC_ENT, _______, _______, QK_LOCK, KC_BSPC, _______, _______, _______, _______, _______,
- KC_F5, KC_F6, LCTL(KC_C), LCTL(KC_V),
- _______, KC_UP,
- KC_LALT, KC_SPC, OSM(SYMB), KC_DOWN, _______, _______
- ),
-/* Keymap 1: Game Arrow Layer
- *
- * ,--------------------------------------------------. ,--------------------------------------------------.
- * | ESC | | | | | | | | | | | | | | |
- * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | | | Up | | | | | |ACCESS| | | | | | |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | CTRL | Left | Down |Right | | |------| |------| | | | | | |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | SHIFT | Z | | | | | | | | | | | | | |
- * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * |ENTER | | | LOCK | BSPC | | | | | | |
- * `----------------------------------' `----------------------------------'
- * ,-------------. ,---------------.
- * | F5 | F6 | | | |
- * ,------|------|------| |------+--------+------.
- * | | | | | | | |
- * | ALT | SPC |------| |------| | |
- * | | | SYMB | | | | |
- * `--------------------' `----------------------'
- */
-// If it accepts an argument (i.e, is a function), it doesn't need KC_.
-// Otherwise, it needs KC_*
-[GAME_ARROW] = LAYOUT_ergodox_pretty( // layer 1 : code
- // left hand
- KC_ESC, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- KC_LCTL, KC_LEFT, KC_DOWN, KC_RIGHT, _______, _______, _______, _______, _______, _______, _______, _______,
- KC_LSFT, KC_Z, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- KC_ENT, _______, _______, QK_LOCK, KC_BSPC, _______, _______, _______, _______, _______,
- KC_F5, KC_F6, LCTL(KC_C), LCTL(KC_V),
- _______, KC_UP,
- KC_LALT, KC_SPC, OSM(SYMB), KC_DOWN, _______, _______
- )
-};
-
-bool process_record_user(uint16_t keycode, keyrecord_t *record) {
- tap_dance_process_keycode(keycode);
- return true;
-}
-
-// Runs constantly in the background, in a loop.
-void matrix_scan_user(void) {
- ergodox_board_led_on();
- ergodox_led_all_on();
-}
-
-#ifdef ST7565_ENABLE
-
-void st7565_task_user(void) {
- // The colors will need to be ported over to the quantum painter API when
- // https://github.com/qmk/qmk_firmware/pull/10174 is merged.
-
- st7565_clear();
- switch (get_highest_layer(layer_state)) {
- case BASE:
- //state->target_lcd_color = LCD_COLOR(84, saturation, 0xFF);
- st7565_write_P(PSTR("Default\n"), false);
- break;
- case CODEFLOW:
- //state->target_lcd_color = LCD_COLOR(216, 90, 0xFF);
- st7565_write_P(PSTR("Code\n"), false);
- break;
- case SYMB:
- //state->target_lcd_color = LCD_COLOR(168, saturation, 0xFF);
- st7565_write_P(PSTR("Symbol\n"), false);
- break;
- case MDIA:
- //state->target_lcd_color = LCD_COLOR(0, saturation, 0xFF);
- st7565_write_P(PSTR("Media\n"), false);
- break;
- case VIM:
- //state->target_lcd_color = LCD_COLOR(140, 100, 60);
- st7565_write_P(PSTR("Movement\n"), false);
- break;
- case GAME:
- //state->target_lcd_color = LCD_COLOR(0, 255, 60);
- st7565_write_P(PSTR("Game\n"), false);
- break;
- case GAME_ARROW:
- //state->target_lcd_color = LCD_COLOR(0, 255, 60);
- st7565_write_P(PSTR("Game Arrow\n"), false);
- break;
- }
-}
-
-#endif
diff --git a/layouts/community/ergodox/333fred/rules.mk b/layouts/community/ergodox/333fred/rules.mk
deleted file mode 100644
index 9a3e2b97e5..0000000000
--- a/layouts/community/ergodox/333fred/rules.mk
+++ /dev/null
@@ -1,2 +0,0 @@
-KEY_LOCK_ENABLE = yes
-CONSOLE_ENABLE = no
diff --git a/layouts/community/ergodox/adnw_k_o_y/keymap.c b/layouts/community/ergodox/adnw_k_o_y/keymap.c
deleted file mode 100644
index 6aa309c2cc..0000000000
--- a/layouts/community/ergodox/adnw_k_o_y/keymap.c
+++ /dev/null
@@ -1,161 +0,0 @@
-#include QMK_KEYBOARD_H
-#include "debug.h"
-#include "action_layer.h"
-#include "keymap_german.h"
-
-#define BASE 0 // default layer
-#define SYMB 1 // symbols
-#define MDIA 2 // media keys
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-/* Keymap 0: Basic layer
- *
- * ,--------------------------------------------------. ,--------------------------------------------------.
- * | = | 1 | 2 | 3 | 4 | 5 | LEFT | | RIGHT| 6 | 7 | 8 | 9 | 0 | - |
- * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | Del | K | . | O | , | Y | L1 | | L1 | V | G | C | L | ß | Z |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | BkSp | H | A | E | I | U |------| |------| D | T | R | N | S | F |
- * |--------+------+------+------+------+------| Hyper| | Meh |------+------+------+------+------+--------|
- * | LShift |X/Ctrl| Q | Ä | Ü | Ö | | | | B | P | W | M | J | RShift |
- * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * |Grv/L1| '" |AltShf| Left | Right| | Up | Down | [ | ] | ~L1 |
- * `----------------------------------' `----------------------------------'
- * ,-------------. ,-------------.
- * | App | LGui | | Alt |Ctrl/Esc|
- * ,------|------|------| |------+--------+------.
- * | | | Home | | PgUp | | |
- * | Space|Enter |------| |------| Tab |RShift|
- * | | | End | | PgDn | | |
- * `--------------------' `----------------------'
- */
-// If it accepts an argument (i.e, is a function), it doesn't need KC_.
-// Otherwise, it needs KC_*
-[BASE] = LAYOUT_ergodox( // layer 0 : default
- // left hand
- KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, KC_LEFT,
- KC_DEL, DE_K, DE_DOT, DE_O, DE_COMM,DE_Y, TG(SYMB),
- KC_BSPC, DE_H, DE_A, DE_E, DE_I, DE_U,
- KC_LSFT, CTL_T(DE_X), DE_Q, DE_ADIA,DE_UDIA,DE_ODIA,ALL_T(KC_NO),
- LT(SYMB,KC_GRV),KC_QUOT, LALT(KC_LSFT), KC_LEFT,KC_RGHT,
- ALT_T(KC_APP), KC_LGUI,
- KC_HOME,
- KC_SPC,KC_ENT ,KC_END,
- // right hand
- KC_RGHT, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS,
- TG(SYMB), DE_V, DE_G, DE_C, DE_L, DE_SS, DE_Z,
- DE_D, DE_T, DE_R, DE_N, LT(MDIA, DE_S), GUI_T(KC_F),
- MEH_T(KC_NO),KC_B, KC_P, KC_W, KC_M, CTL_T(KC_J), KC_RSFT,
- KC_UP, KC_DOWN,KC_LBRC,KC_RBRC, TT(SYMB),
- KC_LALT, CTL_T(KC_ESC),
- KC_PGUP,
- KC_PGDN,KC_TAB, KC_RSFT
- ),
-/* Keymap 1: Symbol Layer
- *
- * ,--------------------------------------------------. ,--------------------------------------------------.
- * | | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | F11 |
- * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | | ! | @ | { | } | | | | | | Up | 7 | 8 | 9 | * | F12 |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | # | $ | ( | ) | ` |------| |------| Down | 4 | 5 | 6 | + | |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | % | ^ | [ | ] | ~ | | | | & | 1 | 2 | 3 | \ | |
- * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * | | | | | | | | . | 0 | = | |
- * `----------------------------------' `----------------------------------'
- * ,-------------. ,-------------.
- * | | | | | |
- * ,------|------|------| |------+------+------.
- * | | | | | | | |
- * | | |------| |------| | |
- * | | | | | | | |
- * `--------------------' `--------------------'
- */
-// SYMBOLS
-[SYMB] = LAYOUT_ergodox(
- // left hand
- KC_TRNS,KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_TRNS,
- KC_TRNS,KC_EXLM,KC_AT, KC_LCBR,KC_RCBR,KC_PIPE,KC_TRNS,
- KC_TRNS,KC_HASH,KC_DLR, KC_LPRN,KC_RPRN,KC_GRV,
- KC_TRNS,KC_PERC,KC_CIRC,KC_LBRC,KC_RBRC,KC_TILD,KC_TRNS,
- KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
- KC_TRNS,KC_TRNS,
- KC_TRNS,
- KC_TRNS,KC_TRNS,KC_TRNS,
- // right hand
- KC_TRNS, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,
- KC_TRNS, KC_UP, KC_7, KC_8, KC_9, KC_ASTR, KC_F12,
- KC_DOWN, KC_4, KC_5, KC_6, KC_PLUS, KC_TRNS,
- KC_TRNS, KC_AMPR, KC_1, KC_2, KC_3, KC_BSLS, KC_TRNS,
- KC_TRNS,KC_DOT, KC_0, KC_EQL, KC_TRNS,
- KC_TRNS, KC_TRNS,
- KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS
-),
-/* Keymap 2: Media and mouse keys
- *
- * ,--------------------------------------------------. ,--------------------------------------------------.
- * | | | | | | | | | | | | | | | |
- * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | | | | MsUp | | | | | | | | | | | |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | |MsLeft|MsDown|MsRght| |------| |------| | | | | | Play |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | | | | | | | | | | | Prev | Next | | |
- * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * | | | | Lclk | Rclk | |VolUp |VolDn | Mute | | |
- * `----------------------------------' `----------------------------------'
- * ,-------------. ,-------------.
- * | | | | | |
- * ,------|------|------| |------+------+------.
- * | | | | | | |Brwser|
- * | | |------| |------| |Back |
- * | | | | | | | |
- * `--------------------' `--------------------'
- */
-// MEDIA AND MOUSE
-[MDIA] = LAYOUT_ergodox(
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_MS_U, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_R, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_BTN1, KC_BTN2,
- KC_TRNS, KC_TRNS,
- KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS,
- // right hand
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_MPRV, KC_MNXT, KC_TRNS, KC_TRNS,
- KC_VOLU, KC_VOLD, KC_MUTE, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS,
- KC_TRNS,
- KC_TRNS, KC_TRNS, KC_WBAK
-),
-};
-
-// Runs constantly in the background, in a loop.
-void matrix_scan_user(void) {
-
- uint8_t layer = get_highest_layer(layer_state);
-
- ergodox_board_led_off();
- ergodox_right_led_1_off();
- ergodox_right_led_2_off();
- ergodox_right_led_3_off();
- switch (layer) {
- // TODO: Make this relevant to the ErgoDox EZ.
- case 1:
- ergodox_right_led_1_on();
- break;
- case 2:
- ergodox_right_led_2_on();
- break;
- default:
- // none
- break;
- }
-
-};
diff --git a/layouts/community/ergodox/adnw_k_o_y/readme.md b/layouts/community/ergodox/adnw_k_o_y/readme.md
deleted file mode 100644
index f0dd3815c1..0000000000
--- a/layouts/community/ergodox/adnw_k_o_y/readme.md
+++ /dev/null
@@ -1,7 +0,0 @@
-# Basic implementation for k.o,y variant of the adnw layout
-
-adnw is a layout optimised for usage with german and english language
-k.o,y is a variant of this layout
-http://www.adnw.de/index.php?n=Main.SeitlicheNachbaranschl%C3%A4ge
-
-The os must use the de_DE layout
diff --git a/layouts/community/ergodox/adnw_p_u_q/config.h b/layouts/community/ergodox/adnw_p_u_q/config.h
deleted file mode 100644
index b1170aa78c..0000000000
--- a/layouts/community/ergodox/adnw_p_u_q/config.h
+++ /dev/null
@@ -1,9 +0,0 @@
-#pragma once
-
-// This is the ideal value for me but find your own
-#undef TAPPING_TERM
-#define TAPPING_TERM 145
-
-// more options here: https://docs.qmk.fm/config_options.html
-#define FORCE_NKRO
-#define PERMISSIVE_HOLD // tab/hold-Keys should work better with that
diff --git a/layouts/community/ergodox/adnw_p_u_q/keymap.c b/layouts/community/ergodox/adnw_p_u_q/keymap.c
deleted file mode 100644
index e5856f4894..0000000000
--- a/layouts/community/ergodox/adnw_p_u_q/keymap.c
+++ /dev/null
@@ -1,335 +0,0 @@
-#include QMK_KEYBOARD_H
-#include "keymap_german.h"
-
-
-#define BASE 0 // default layer / VIM
-#define ARW 1 // arrow layer / Terminal
-#define DIAK 2 // diakritika layer
-#define BRACK 3 // brackets layer
-#define SYMBOLS 4 // symbols
-#define MEDIA 5 // media keys / Mouse-Navigation
-
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-/* Keymap 0: Basic layer / VIM
- * ,--------------------------------------------------. ,--------------------------------------------------.
- * | | 1 | 2 | 3 | 4 | 5 | | | | 6 | 7 | 8 | 9 | 0 | Media |
- * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | | P | U | Dia-L| , | Q | | | | V | C | L | M | B | |
- * |--------+------+------+------+------+------| G | | gg |------+------+------+------+------+--------|
- * | Symbols| H | I | E | A | O |------| |------| D | T | R | N | S | ARW |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | LShift | K | Y | . | ' | X |str-D | |str-U | J | G | Z | W | F | RShift |
- * * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * | Ctrl | Alt | | | | | H | J | K | L | Ctrl |
- * `----------------------------------' `----------------------------------'
- * LShift is Tab on Click
- *
- * ,-------------. ,-------------.
- * | ^ | / | | ? | $ |
- * ,------|------|------| |------+--------+------.
- * | | |str+a | |str+c | | |
- * | Brack| Space|------| |------| Enter |BSpace|
- * | -Lay |/shift| Tab/ | | | | |
- * | | | GUI | | ESC | | |
- * `--------------------' `----------------------'
- * GUI is one shot
- * str + a is for tmux etc.
- * str + c is for stopping programs
- */
-[BASE] = LAYOUT_ergodox( // layer 0 : default
- // left hand
- KC_NO, KC_1, KC_2, KC_3, KC_4, KC_5, KC_NO,
- TG(SYMBOLS), DE_P, DE_U, OSL(DIAK), DE_COMM, DE_Q, LSFT(DE_G),
- OSL(SYMBOLS), DE_H, DE_I, DE_E, DE_A, DE_O,
- SFT_T(KC_TAB), DE_K, DE_Y, DE_DOT, DE_QUOT, DE_X, LCTL(DE_D),
- KC_LCTL, KC_LALT, KC_NO, KC_NO, KC_NO,
-
-
- // left hand thumb-cluster
- DE_CIRC, DE_SLSH,
- LCTL(DE_A),
- OSL(BRACK), SFT_T(KC_SPACE), GUI_T(KC_TAB),
-
-
- // right hand
- KC_NO, KC_6, KC_7, KC_8, KC_9, KC_0, TG(MEDIA),
- DE_G, DE_V, DE_C, DE_L, DE_M, DE_B, KC_NO,
- DE_D, DE_T, DE_R, DE_N, DE_S, TG(ARW),
- LCTL(DE_U), DE_J, DE_G, DE_Z, DE_W, DE_F, KC_RSFT,
- KC_H, KC_J, KC_K, KC_L, KC_RCTL,
-
- // right thumb-cluster
- DE_QUES, DE_DLR,
- LCTL(DE_C),
- KC_ESCAPE, KC_ENTER, KC_BSPC
-),
-
-
-/* Keymap 1: Arrow Layer / Terminal
- *
- * ,--------------------------------------------------. ,--------------------------------------------------.
- * | | | | | | | | | | | | | | | |
- * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | | | | | | | | | | | | | | | |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | | | | | |------| |------| | | | | | |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | | | | | |P-Down| |P-Up | | | | | | |
- * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * | | | | | | | Left | Bot | Top | Right| |
- * `----------------------------------' `----------------------------------'
- * ,-------------. ,-------------.
- * | Home | | | | End |
- * ,------|------|------| |------+------+------.
- * | | | | | | | |
- * | | |------| |------| | |
- * | | | | | | | |
- * `--------------------' `--------------------'
- */
-// Arrows
-[ARW] = LAYOUT_ergodox(
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PGDN,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_HOME, KC_TRNS,
- KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS,
-
- // right hand
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_PGUP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, KC_TRNS,
- KC_TRNS, KC_END,
- KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS
-),
-
-
-/* Keymap 2: Diakritika Layer
- *
- * ,--------------------------------------------------. ,--------------------------------------------------.
- * | | | | | | | | | | | | | | | |
- * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | | | Ü | | | | | | | | | | | | |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | | | | Ä | Ö |------| |------| | | | | ß | |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | | | | | | | | | | | | | | |
- * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * | | | | | | | | | | | |
- * `----------------------------------' `----------------------------------'
- * ,-------------. ,-------------.
- * | | | | | |
- * ,------|------|------| |------+------+------.
- * | | | | | | | |
- * | | |------| |------| | |
- * | | | | | | | |
- * `--------------------' `--------------------'
- */
-// Diakritika
-[DIAK] = LAYOUT_ergodox(
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, DE_UDIA, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, DE_ADIA, DE_ODIA,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS,
- KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS,
-
- // right hand
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, DE_SS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS,
- KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS
-),
-
-
-/* Keymap 3: Brackets Layer
- *
- * ,--------------------------------------------------. ,--------------------------------------------------.
- * | | | | | | | | | | | | | | | |
- * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | | | | | | | | | | | | | | | |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | | ( | { | [ | |------| |------| | ] | } | ) | | |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | | | | | | | | | | | | | | |
- * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * | | | | | | | | | | | |
- * `----------------------------------' `----------------------------------'
- * ,-------------. ,-------------.
- * | | | | | |
- * ,------|------|------| |------+------+------.
- * | | | | | | | |
- * | | |------| |------| | |
- * | | | | | | | |
- * `--------------------' `--------------------'
- */
-// BRACK
-[BRACK] = LAYOUT_ergodox(
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, DE_LPRN, DE_LCBR, DE_LBRC, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS,
- KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS,
-
- // right hand
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, DE_RBRC, DE_RCBR, DE_RPRN, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS,
- KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS
-),
-
-
-/* Keymap 4: Symbol Layer
- *
- *
- * Original:
- * ,--------------------------------------------------. ,--------------------------------------------------.
- * | | F1 | F2 | F3 | F4 | F5 | F6 | | F7 | F8 | F9 | F10 | F11 | F12 | |
- * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | | ² | ° | ~ | @ | ! | | | | ? | & | § | " | ³ | |
- * |--------+------+------+------+------+------| ( | | ) |------+------+------+------+------+--------|
- * | | ´ | ' | : | ^ | < |------| |------| > | $ | ; | | | ` | |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | € | + | = | * | / | { | | } | \ | % | # | - | _ | |
- * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * | | | | | | | | | | | |
- * `----------------------------------' `----------------------------------'
- */
-// SYMBOLS
-[SYMBOLS] = LAYOUT_ergodox(
- // left hand
- KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, //DE_LBRC,
- KC_TRNS,DE_SUP2,DE_DEG, DE_TILD, DE_AT, DE_EXLM, DE_LPRN,
- KC_TRNS,DE_ACUT,DE_QUOT, DE_COLN, DE_CIRC, DE_LABK,
- KC_TRNS,DE_EURO,DE_PLUS, DE_EQL, DE_ASTR, DE_SLSH, DE_LCBR,
- KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
-
- KC_TRNS,KC_TRNS,
- KC_TRNS,
- KC_TRNS,KC_TRNS,KC_TRNS,
-
- // right hand
- //DE_RBRC,
- KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS,
- DE_RPRN, DE_QUES, DE_AMPR, DE_SECT, DE_DQUO, DE_SUP3, KC_TRNS,
- DE_RABK, DE_DLR, DE_SCLN, DE_PIPE, DE_GRV, KC_TRNS,
- DE_RCBR, DE_BSLS, DE_PERC, DE_HASH, DE_MINS, DE_UNDS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
-
- KC_TRNS, KC_TRNS,
- KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS
-),
-
-/* Keymap 5: Numbers
- *
- * ,--------------------------------------------------. ,--------------------------------------------------.
- * | | | | | | | | | | | | Num | / | * | - |
- * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | | | | | | | | | | | | 7 | 8 | 9 | + |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | | | | | |------| |------| | | 4 | 5 | 6 | + |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | | | | | | | | | | | 1 | 2 | 3 | Enter |
- * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * | | | | | | | 0 | , | | | Enter|
- * `----------------------------------' `----------------------------------'
- * ,-------------. ,-------------.
- * | | | | | |
- * ,------|------|------| |------+------+------.
- * | | | | | | | |
- * | | |------| |------| | |
- * | | | | | | | |
- * `--------------------' `--------------------'
-// NUMBERS
-[NUMBERS] = LAYOUT_ergodox(
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS,
- KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS,
-
- // right hand
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_7, KC_8, KC_9, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_4, KC_5, KC_8, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_1, KC_2, KC_3, KC_TRNS,
- KC_0, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS,
- KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS
-),
-
-
-*/
-
-/* Keymap 6: Media and mouse keys
- *
- * ,--------------------------------------------------. ,--------------------------------------------------.
- * | | | | | | | | | | | | | | | |
- * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | | Sleep| | | | | | | | | | | | | |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | Wake | | | | |------| |------| |MsLeft|MsDown| MsUp |MsRght| |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | | | | | | | | | | | | | | |
- * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * | | | Mute| VolDn| VolUp| | Play| Prev | Next | Stop | |
- * `----------------------------------' `----------------------------------'
- * ,-------------. ,-------------.
- * | | | | | |
- * ,------|------|------| |------+------+------.
- * | | | | | | | |
- * | | Lclk|------| |------|Rclk | |
- * | | | | | | | |
- * `--------------------' `--------------------'
- */
-// MEDIA AND MOUSE
-[MEDIA] = LAYOUT_ergodox(
- KC_TRNS, KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
- KC_TRNS, KC_SLEP, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
- KC_TRNS, KC_WAKE, KC_NO, KC_NO, KC_NO, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
- KC_TRNS, KC_TRNS, KC_MUTE, KC_VOLD, KC_VOLU,
- KC_TRNS, KC_TRNS,
- KC_TRNS,
- KC_TRNS, KC_BTN1, KC_TRNS,
- // right hand
- KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_TRNS,
- KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_TRNS,
- KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_U, KC_MS_R, KC_TRNS,
- KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_TRNS,
- KC_MPLY, KC_MPRV, KC_MNXT, KC_MSTP, KC_TRNS,
- KC_TRNS, KC_TRNS,
- KC_TRNS,
- KC_TRNS, KC_BTN2, KC_TRNS
-),
-};
-
-// Runs constantly in the background, in a loop.
-void matrix_scan_user_keyboard(void) {
- ergodox_board_led_on();
- ergodox_led_all_on();
-}
diff --git a/layouts/community/ergodox/adnw_p_u_q/readme.md b/layouts/community/ergodox/adnw_p_u_q/readme.md
deleted file mode 100644
index dc914a0aa2..0000000000
--- a/layouts/community/ergodox/adnw_p_u_q/readme.md
+++ /dev/null
@@ -1,17 +0,0 @@
-This is a fork of the adnw_k_o_y-Layout
-
-Features:
-- Diakritika-Layer for ADNW-PUQ-Layout
-- all basic-symbols of the german-layout can be found in the Symbol- and Diakritika-Layer
-- Symbol-Layer: Symbols are mirrored -- left = < and right = >
-- Basic-Layer-Keys which always be present in any Layer and allow the movement between layers
-- HJKL-Keys and Arrow-Keys can be switched, necessary for working with a terminal and vim
-- Number-Layer for Numpad-Emulation
-- Brackets-Layer for easier programming
-- Media-Layer for Mouse-Navigation
-
-Notes:
-- adnw is a layout optimised for usage with german and english language
-- PUQ is a variant of adnw: http://www.adnw.de/index.php?n=Main.OptimierungF%C3%BCrDieGeradeTastaturMitDaumen-Shift
-- This implementation is optimised for my workflow with vim/tmux/xmonad and ergodox
-- The OS must use the de_DE layout
diff --git a/layouts/community/ergodox/andrew_osx/keymap.c b/layouts/community/ergodox/andrew_osx/keymap.c
deleted file mode 100644
index 4f3f6ef0cb..0000000000
--- a/layouts/community/ergodox/andrew_osx/keymap.c
+++ /dev/null
@@ -1,163 +0,0 @@
-// Netable differences vs. the default firmware for the ErgoDox EZ:
-// 1. The Cmd key is now on the right side, making Cmd+Space easier.
-// 2. The media keys work on OSX (But not on Windows).
-#include QMK_KEYBOARD_H
-#include "debug.h"
-#include "action_layer.h"
-
-#define BASE 0 // default layer
-#define SYMB 1 // symbols
-#define MDIA 2 // media keys
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-/* Keymap 0: Basic layer
- *
- * ,--------------------------------------------------. ,--------------------------------------------------.
- * | = | 1 | 2 | 3 | 4 | 5 | '" | | '" | 6 | 7 | 8 | 9 | 0 | BkSp |
- * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | Tab | Q | W | E | R | T | ~L1 | | ~L1 | Y | U | I | O | P | - |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * |Ctrl/Esc| A | S | D | F | G |------| |------| H | J | K | L |; / L2| / |
- * |--------+------+------+------+------+------| Hyper| | Meh |------+------+------+------+------+--------|
- * | LShift |Z/Ctrl| X | C | V | B | | | | N | M | , | . |//Ctrl| RShift |
- * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * |Grv/L1| Alt |AltShf| Left | Right| | Up | Down | [ | ] | L1 |
- * `----------------------------------' `----------------------------------'
- * ,-------------. ,-------------.
- * | App | LGui | | Esc |Ctrl/Esc|
- * ,------|------|------| |------+--------+------.
- * | | | ( | | { | | |
- * | Space| LGui |------| |------| RGui |Enter |
- * | | | ) | | } | | |
- * `--------------------' `----------------------'
- */
-// If it accepts an argument (i.e, is a function), it doesn't need KC_.
-// Otherwise, it needs KC_*
-[BASE] = LAYOUT_ergodox( // layer 0 : default
- // left hand
- KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, KC_QUOT,
- KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, TT(SYMB),
- CTL_T(KC_ESC), KC_A, KC_S, KC_D, KC_F, KC_G,
- KC_LSFT, CTL_T(KC_Z), KC_X, KC_C, KC_V, KC_B, ALL_T(KC_NO),
- LT(SYMB,KC_GRV),KC_LALT, LALT(KC_LSFT), KC_LEFT,KC_RGHT,
- ALT_T(KC_APP), KC_LGUI,
- KC_LPRN,
- KC_SPC,KC_LGUI,KC_RPRN,
- // right hand
- KC_QUOT, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC,
- TT(SYMB), KC_Y, KC_U, KC_I, KC_O, KC_P, KC_MINS,
- KC_H, KC_J, KC_K, KC_L, LT(MDIA, KC_SCLN),KC_BSLS,
- MEH_T(KC_NO),KC_N, KC_M, KC_COMM,KC_DOT, CTL_T(KC_SLSH), KC_RSFT,
- KC_UP, KC_DOWN,KC_LBRC,KC_RBRC, TG(1),
- KC_ESC, CTL_T(KC_ESC),
- KC_LCBR,
- KC_RCBR,KC_RGUI, KC_ENT
- ),
-/* Keymap 1: Symbol Layer
- *
- * ,--------------------------------------------------. ,--------------------------------------------------.
- * | | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | F11 |
- * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | | ! | @ | { | } | | | | | | Up | 7 | 8 | 9 | * | F12 |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | # | $ | ( | ) | ` |------| |------| Down | 4 | 5 | 6 | + | |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | % | ^ | [ | ] | ~ | | | | & | 1 | 2 | 3 | \ | |
- * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * | | | | | | | | . | 0 | = | |
- * `----------------------------------' `----------------------------------'
- * ,-------------. ,-------------.
- * | | | | | |
- * ,------|------|------| |------+------+------.
- * | | | | | | | |
- * | | |------| |------| | |
- * | | | | | | | |
- * `--------------------' `--------------------'
- */
-// SYMBOLS
-[SYMB] = LAYOUT_ergodox(
- // left hand
- KC_TRNS,KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_TRNS,
- KC_TRNS,KC_EXLM,KC_AT, KC_LCBR,KC_RCBR,KC_PIPE,KC_TRNS,
- KC_TRNS,KC_HASH,KC_DLR, KC_LPRN,KC_RPRN,KC_GRV,
- KC_TRNS,KC_PERC,KC_CIRC,KC_LBRC,KC_RBRC,KC_TILD,KC_TRNS,
- KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
- KC_TRNS,KC_TRNS,
- KC_TRNS,
- KC_TRNS,KC_TRNS,KC_TRNS,
- // right hand
- KC_TRNS, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,
- KC_TRNS, KC_UP, KC_7, KC_8, KC_9, KC_ASTR, KC_F12,
- KC_DOWN, KC_4, KC_5, KC_6, KC_PLUS, KC_TRNS,
- KC_TRNS, KC_AMPR, KC_1, KC_2, KC_3, KC_BSLS, KC_TRNS,
- KC_TRNS,KC_DOT, KC_0, KC_EQL, KC_TRNS,
- KC_TRNS, KC_TRNS,
- KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS
-),
-/* Keymap 2: Media and mouse keys
- *
- * ,--------------------------------------------------. ,--------------------------------------------------.
- * | | | | | | | | | | | | | | | |
- * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | | | | MsUp | | | | | | | | | | | |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | |MsLeft|MsDown|MsRght| |------| |------| | | | | | Play |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | | | | | | | | | | | Prev | Next | | |
- * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * | | | | Lclk | Rclk | |VolUp |VolDn | Mute | | |
- * `----------------------------------' `----------------------------------'
- * ,-------------. ,-------------.
- * | | | | | |
- * ,------|------|------| |------+------+------.
- * | | | | | | |Brwser|
- * | | |------| |------| |Back |
- * | | | | | | | |
- * `--------------------' `--------------------'
- */
-// MEDIA AND MOUSE
-LAYOUT_ergodox(
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_MS_U, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_R, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_BTN1, KC_BTN2,
- KC_TRNS, KC_TRNS,
- KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS,
- // right hand
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_MPRV, KC_MNXT, KC_TRNS, KC_TRNS,
- KC_VOLU, KC_VOLD, KC_MUTE, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS,
- KC_TRNS,
- KC_TRNS, KC_TRNS, KC_WBAK
-),
-};
-
-// Runs constantly in the background, in a loop.
-void matrix_scan_user(void) {
-
- uint8_t layer = get_highest_layer(layer_state);
-
- ergodox_board_led_off();
- ergodox_right_led_1_off();
- ergodox_right_led_2_off();
- ergodox_right_led_3_off();
- switch (layer) {
- // TODO: Make this relevant to the ErgoDox EZ.
- case 1:
- ergodox_right_led_1_on();
- break;
- case 2:
- ergodox_right_led_2_on();
- break;
- default:
- // none
- break;
- }
-
-};
diff --git a/layouts/community/ergodox/belak/LICENSE b/layouts/community/ergodox/belak/LICENSE
deleted file mode 100644
index b462ba30e5..0000000000
--- a/layouts/community/ergodox/belak/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-MIT License
-
-Copyright (c) 2016 Kaleb Elwert
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
diff --git a/layouts/community/ergodox/belak/README.md b/layouts/community/ergodox/belak/README.md
deleted file mode 100644
index e251dc099a..0000000000
--- a/layouts/community/ergodox/belak/README.md
+++ /dev/null
@@ -1,79 +0,0 @@
-# Belak's Ergodox Layout
-
-This has been based off of [emacs\_osx\_dk](https://github.com/qmk/qmk_firmware/tree/master/layouts/community/ergodox/emacs_osx_dk)
-from the main qmk repo. However, I've taken some of the ideas for the thumbs
-from [dvorak\_emacs](https://github.com/qmk/qmk_firmware/tree/master/layouts/community/ergodox/dvorak_emacs)
-and tweaked it a bit based on the keycaps I have.
-
-This keyboard is intended for use in emacs (one of the main reasons for easy
-access to modifiers) but it could be useful in other instances as well.
-
-The main repo is used as a testbed, so sometimes the layout may be in a strange
-state. The qmk version should be relatively stable.
-
-## Instructions
-
-This is currently being used on a regular ergodox, but it should work fine on
-the infinity as well. Though, you may have to modify the commands to build and
-flash the firmware to match the separate halves as defined in the infinity
-documentation.
-
-If you are using this keymap in the qmk repo, you should be able to just run
-`make ergodox-belak-teensy`. If you're using this externally (I sometimes make
-changes before syncing them to qmk), use the following instructions:
-
-1. Clone the main qmk repo
-2. Clone this to `$QMK/keyboards/ergodox/keymaps/belak-external`
-3. Run `make ergodox-belak-external-teensy` from the root of the qmk repo.
-
-## Changelog
-
-Fifth Revision
-
-* Change layer keys to tap-dance keys which cycle through additional layers
-* Add a few emoji keys (in preparation for an emoji layer)
-
-Fourth Revision
-
-* Remove media layer
-* Add a layer which swaps control and gui on the thumb keys.
-* Add some basic code to save settings to the eeprom
-* Save the state of the keys swapped in the thumb in the eeprom
-
-Third Revision
-
-* Add numpad layer and remove numpad from symbols layer
-* Disable media layer
-* Add arrow keys on ijkl to the symbols layer
-* Replace ALT on held enter and held delete with GUI (for better OSX
- compatibility, as there's already an ALT key relatively close)
-* Replace keys above enter and delete with temporary layer switch buttons not
- matching the other layer switch for that hand.
-* Reindent and space out most of the layer definitions
-
-Second Revision
-
-* Clean up definitions to make differences between layers easier to see
-* Remove old LCD code
-* Add new LCD code based on fredizzimo's branch
-
-First Revision
-
-* Reverse grave and escape
-
-Initial Version
-
-* Copy from emacs\_osx\_dk
-* "Fix" right alt
-* Change thumb keys to match default layout (backspace, delete, enter, space)
-* Add modifiers to thumb keys (ctrl to backspace and space, alt to delete and
- enter)
-* Replace the RAlt below the brackets with LGui and RGui
-* Remove LCtrl and RCtrl from the keys above shift
-* Add browser forward, and move browser back
-* "Fix" the order of volume keys
-
-## Repository
-
-The original code for this is kept at https://github.com/belak/ergodox-layout and
-is synced to qmk every few main revisions.
diff --git a/layouts/community/ergodox/belak/keymap.c b/layouts/community/ergodox/belak/keymap.c
deleted file mode 100644
index ea72091145..0000000000
--- a/layouts/community/ergodox/belak/keymap.c
+++ /dev/null
@@ -1,362 +0,0 @@
-#include QMK_KEYBOARD_H
-#include "debug.h"
-#include "action_layer.h"
-#include "eeconfig.h"
-#include "eeprom.h"
-
-#define LAYER_ON(pos) ((layer_state) & (1<<(pos)))
-
-#define EECONFIG_BELAK_MAGIC (uint16_t)0xBE42
-
-// NOTE: This is just a number that's a bit beyond the end of what's already
-// defined. As there is no other define we can base this on, it may need to be
-// changed in the future. The initial value here is used as a placeholder with a
-// magic word, similar to the normal eeconfig. Note that all the storage being
-// used needs to fit inside the 32 bytes of the Ergodox Infinity.
-#define EECONFIG_BELAK (uint16_t *)16
-
-// The correct way to do this would be how the normal eeconfig handles it and
-// use a bitfield. However, the eeprom has a ton of space which isn't being
-// used so I don't really care and have a separate byte for every setting.
-#define EECONFIG_BELAK_SWAP_GUI_CTRL (uint8_t *)18
-
-static uint8_t swap_gui_ctrl = 0;
-static uint8_t td_led_override = 0;
-
-enum belak_keycodes {
- // Function codes
- BEL_F0 = SAFE_RANGE,
- BEL_F1,
-
- E_SHRUG,
- E_TFLIP,
- E_TSET,
-};
-
-// TODO: Add LED support to the tap dance by using the advanced macro
-#define LTOGGLE TD(TD_LAYER_TOGGLE)
-
-#define BASE 0 // default layer
-#define SYMB 1 // symbols
-#define NUMP 2 // numpad
-#define SWPH 3 // swap gui/ctrl on the hands
-
-enum belak_td {
- TD_LAYER_TOGGLE = 0,
-};
-
-void belak_td_each(tap_dance_state_t *state, void *user_data);
-void belak_td_finished(tap_dance_state_t *state, void *user_data);
-void belak_td_reset(tap_dance_state_t *state, void *user_data);
-
-tap_dance_action_t tap_dance_actions[] = {
- [TD_LAYER_TOGGLE] = ACTION_TAP_DANCE_FN_ADVANCED(belak_td_each, belak_td_finished, belak_td_reset),
-};
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-/* Keymap 0: Basic layer
- *
- * ,--------------------------------------------------. ,--------------------------------------------------.
- * | Esc | 1 | 2 | 3 | 4 | 5 | L1 | | L2 | 6 | 7 | 8 | 9 | 0 | = |
- * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | Tab | Q | W | E | R | T | [ | | ] | Y | U | I | O | P | - |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | \ | A | S | D | F | G |------| |------| H | J | K | L | ; | ' |
- * |--------+------+------+------+------+------| LGui | | RGui |------+------+------+------+------+--------|
- * | LShift | Z | X | C | V | B | | | | N | M | , | . | / | RShift |
- * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * |Layers| LCtrl| Left | Right| LAlt | | RAlt | Up | Down | RCtrl|Layers|
- * `----------------------------------' `----------------------------------'
- * ,-------------. ,--------------.
- * | ~L2 | Ins | | Grv | ~L1 |
- * ,-------|------|------| |------+-------+-------.
- * | Back | | Home | | PgUp | | |
- * | Space | Del |------| |------| Enter | Space |
- * | | | End | | PgDn | | |
- * `---------------------' `----------------------'
- */
- [BASE] = LAYOUT_ergodox( // layer 0 : default
- // left hand
- KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, TG(SYMB),
- KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_LBRC,
- CTL_T(KC_BSLS), KC_A, KC_S, KC_D, KC_F, KC_G,
- KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_LGUI,
- LTOGGLE, KC_LCTL, KC_LEFT,KC_RGHT,KC_LALT,
- MO(NUMP),KC_INS,
- KC_HOME,
- CTL_T(KC_BSPC),GUI_T(KC_DEL),KC_END,
- // right hand
- TG(NUMP), KC_6, KC_7, KC_8, KC_9, KC_0, KC_EQL,
- KC_RBRC, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_MINS,
- KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
- KC_RGUI, KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH, KC_RSFT,
- KC_RALT,KC_UP, KC_DOWN,KC_RCTL, LTOGGLE,
- KC_GRV, MO(SYMB),
- KC_PGUP,
- KC_PGDN, GUI_T(KC_ENT), CTL_T(KC_SPC)
- ),
-/* Keymap 1: Symbol Layer
- *
- * ,--------------------------------------------------. ,--------------------------------------------------.
- * | | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | F11 |
- * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | | ! | @ | { | } | | | | | | Up | | Up | | | F12 |
- * |--------+------+------+------+------+------| TFLIP| | TSET |------+------+------+------+------+--------|
- * | | # | $ | ( | ) | ` |------| |------| Down | Left | Down | Rght | | |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | % | ^ | [ | ] | ~ | SHRUG| | | & | | | | | |
- * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * |LClear| | | | | | | | | |LClear|
- * `----------------------------------' `----------------------------------'
- * ,-------------. ,-------------.
- * | TOGL | | | | TOGL |
- * ,------|------|------| |------+------+------.
- * | | | | | | | |
- * | | |------| |------| | |
- * | | | | | | | |
- * `--------------------' `--------------------'
- */
- [SYMB] = LAYOUT_ergodox(
- // left hand
- _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, E_TFLIP,
- _______, KC_EXLM, KC_AT, KC_LCBR, KC_RCBR, KC_PIPE, E_TSET,
- _______, KC_HASH, KC_DLR, KC_LPRN, KC_RPRN, KC_GRV,
- _______, KC_PERC, KC_CIRC, KC_LBRC, KC_RBRC, KC_TILD, E_SHRUG,
- BEL_F1, _______, _______, _______, _______,
- BEL_F0, _______,
- _______,
- _______, _______, _______,
- // right hand
- _______, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,
- _______, KC_UP, _______, KC_UP, _______, _______, KC_F12,
- KC_DOWN, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______,
- _______, KC_AMPR, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, BEL_F1,
- _______, BEL_F0,
- _______,
- _______, _______, _______
- ),
-/* Keymap 2: Numpad Layer
- *
- * ,--------------------------------------------------. ,--------------------------------------------------.
- * | | | | | | | | | | | | | | | |
- * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | | | | | | | | | | | 7 | 8 | 9 | * | |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | | | | | |------| |------| | 4 | 5 | 6 | + | |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | | | | | | | | | | 1 | 2 | 3 | \ | |
- * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * |LClear| | | | | | 0 | 0 | . | = |LClear|
- * `----------------------------------' `----------------------------------'
- * ,-------------. ,-------------.
- * | TOGL | | | | TOGL |
- * ,------|------|------| |------+------+------.
- * | | | | | | | |
- * | | |------| |------| | |
- * | | | | | | | |
- * `--------------------' `--------------------'
- */
- [NUMP] = LAYOUT_ergodox(
- // left hand
- _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______,
- BEL_F1, _______, _______, _______, _______,
- BEL_F0, _______,
- _______,
- _______, _______, _______,
- // right hand
- _______, _______, _______, _______, _______, _______, _______,
- _______, _______, KC_7, KC_8, KC_9, KC_ASTR, _______,
- _______, KC_4, KC_5, KC_6, KC_PLUS, _______,
- _______, _______, KC_1, KC_2, KC_3, KC_BSLS, _______,
- KC_0, KC_0, KC_DOT, KC_EQL, BEL_F1,
- _______, BEL_F0,
- _______,
- _______, _______, _______
- ),
-/* Keymap 3: Swap control and gui on the thumb */
- [SWPH] = LAYOUT_ergodox(
- // left hand
- _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______,
- _______, _______,
- _______,
- GUI_T(KC_BSPC), CTL_T(KC_DEL), _______,
- // right hand
- _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______,
- _______, _______,
- _______,
- _______, CTL_T(KC_ENT), GUI_T(KC_SPC)
- ),
-};
-
-// Runs just one time when the keyboard initializes.
-void matrix_init_user(void) {
- // If our magic word wasn't set properly, we need to zero out the settings.
- if (eeprom_read_word(EECONFIG_BELAK) != EECONFIG_BELAK_MAGIC) {
- eeprom_update_word(EECONFIG_BELAK, EECONFIG_BELAK_MAGIC);
- eeprom_update_byte(EECONFIG_BELAK_SWAP_GUI_CTRL, 0);
- }
-
- if (eeprom_read_byte(EECONFIG_BELAK_SWAP_GUI_CTRL)) {
- layer_on(SWPH);
- swap_gui_ctrl = 1;
- }
-};
-
-// Runs constantly in the background, in a loop.
-void matrix_scan_user(void) {
- ergodox_board_led_off();
- ergodox_right_led_1_off();
- ergodox_right_led_2_off();
- ergodox_right_led_3_off();
-
- switch (td_led_override) {
- case 1:
- ergodox_right_led_1_on();
- break;
- case 2:
- ergodox_right_led_2_on();
- break;
- default:
- // Layer 1 and 2 are both overlay layers, so they could both be on. This
- // means we can't use the lazy check of checking for the first significant
- // bit.
- if (LAYER_ON(SYMB)) {
- ergodox_right_led_1_on();
- }
- if (LAYER_ON(NUMP)) {
- ergodox_right_led_2_on();
- }
- }
-};
-
-bool process_record_user(uint16_t keycode, keyrecord_t *record) {
- switch (keycode) {
- case BEL_F0:
- if(record->event.pressed){
- swap_gui_ctrl = !swap_gui_ctrl;
- eeprom_update_byte(EECONFIG_BELAK_SWAP_GUI_CTRL, swap_gui_ctrl);
-
- if (swap_gui_ctrl) {
- layer_on(SWPH);
- } else {
- layer_off(SWPH);
- }
-
- return false;
- }
- break;
- case BEL_F1:
- if(record->event.pressed){
- layer_off(SYMB);
- layer_off(NUMP);
-
- return false;
- }
- break;
- case E_SHRUG: // ¯\_(ツ)_/¯
- if (record->event.pressed) {
- process_unicode((0x00AF|QK_UNICODE), record); // Hand
- tap_code16(KC_BSLS); // Arm
- register_code(KC_RSFT);
- tap_code16(KC_UNDS); // Arm
- tap_code16(KC_LPRN); // Head
- unregister_code(KC_RSFT);
- process_unicode((0x30C4|QK_UNICODE), record); // Face
- register_code(KC_RSFT);
- tap_code16(KC_RPRN); // Head
- tap_code16(KC_UNDS); // Arm
- unregister_code(KC_RSFT);
- tap_code16(KC_SLSH); // Arm
- process_unicode((0x00AF|QK_UNICODE), record); // Hand
- }
- return false;
- break;
- case E_TFLIP: // (╯°□°)╯ ︵ ┻━┻
- if (record->event.pressed) {
- register_code(KC_RSFT);
- tap_code16(KC_9);
- unregister_code(KC_RSFT);
- process_unicode((0x256F|QK_UNICODE), record); // Arm
- process_unicode((0x00B0|QK_UNICODE), record); // Eye
- process_unicode((0x25A1|QK_UNICODE), record); // Mouth
- process_unicode((0x00B0|QK_UNICODE), record); // Eye
- register_code(KC_RSFT);
- tap_code16(KC_0);
- unregister_code(KC_RSFT);
- process_unicode((0x256F|QK_UNICODE), record); // Arm
- tap_code16(KC_SPC);
- process_unicode((0x0361|QK_UNICODE), record); // Flippy
- tap_code16(KC_SPC);
- process_unicode((0x253B|QK_UNICODE), record); // Table
- process_unicode((0x2501|QK_UNICODE), record); // Table
- process_unicode((0x253B|QK_UNICODE), record); // Table
- }
- return false;
- break;
- case E_TSET: // ┬──┬ ノ( ゜-゜ノ)
- if (record->event.pressed) {
- process_unicode((0x252C|QK_UNICODE), record); // Table
- process_unicode((0x2500|QK_UNICODE), record); // Table
- process_unicode((0x2500|QK_UNICODE), record); // Table
- process_unicode((0x252C|QK_UNICODE), record); // Table
- tap_code16(KC_SPC);
- process_unicode((0x30CE|QK_UNICODE), record); // Arm
- register_code(KC_RSFT);
- tap_code16(KC_9);
- unregister_code(KC_RSFT);
- tap_code16(KC_SPC);
- process_unicode((0x309C|QK_UNICODE), record); // Eye
- tap_code16(KC_MINS);
- process_unicode((0x309C|QK_UNICODE), record); // Eye
- process_unicode((0x30CE|QK_UNICODE), record); // Arm
- register_code(KC_RSFT);
- tap_code16(KC_0);
- unregister_code(KC_RSFT);
- }
- return false;
- break;
- }
-
- return true;
-}
-
-void belak_td_each(tap_dance_state_t *state, void *user_data) {
- switch (state->count) {
- case 1:
- td_led_override = 1;
- break;
- case 2:
- td_led_override = 2;
- break;
- default:
- reset_tap_dance(state);
- }
-}
-
-void belak_td_finished(tap_dance_state_t *state, void *user_data) {
- switch (state->count) {
- case 1:
- layer_on(SYMB);
- break;
- case 2:
- layer_on(NUMP);
- break;
- }
- td_led_override = 0;
-}
-
-void belak_td_reset(tap_dance_state_t *state, void *user_data) {
- td_led_override = 0;
-}
diff --git a/layouts/community/ergodox/belak/rules.mk b/layouts/community/ergodox/belak/rules.mk
deleted file mode 100644
index cd8fdec641..0000000000
--- a/layouts/community/ergodox/belak/rules.mk
+++ /dev/null
@@ -1,4 +0,0 @@
-TAP_DANCE_ENABLE=yes
-UNICODE_ENABLE=yes
-
-
diff --git a/layouts/community/ergodox/bepo_alt/keymap.c b/layouts/community/ergodox/bepo_alt/keymap.c
deleted file mode 100644
index e379df030f..0000000000
--- a/layouts/community/ergodox/bepo_alt/keymap.c
+++ /dev/null
@@ -1,127 +0,0 @@
-/* Bepo layout for ergodox EZ by Nicolas CARPi (deltablot.com) */
-#include QMK_KEYBOARD_H
-#include "keymap_bepo.h"
-#include "keymap_french.h"
-
-#define BEPO 0 // default layer, for bepo compatible systems
-#define FNAV 1 // function / navigation / mouse layer
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-/* Keymap 0: default layer
- *
- * ,--------------------------------------------------. ,--------------------------------------------------.
- * | $ | " | < | > | ( | ) | @ | | + | - | - | / | * | = | % |
- * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | TAB | B |E_ACUT| P | O |E_GRAV|Backsp| |CapsLo| ^ | V | D | L | J | Z |
- * |--------+------+------+------+------+------| ace | | |------+------+------+------+------+--------|
- * | W | A | U | I | E | , |------| |------| C | T | S | R | N | M |
- * |--------+------+------+------+------+------| | | ESCAP------+------+------+------+------+--------|
- * | SHIFT |E_CIRC | A_GRAV | Y | X | . | K | | | ' | Q | G | H | F | C_CEDIL|
- * `--------+------+------+------+------+-------------,-------------. ,-------------`-------------+------+------+------+------+--------'
- * |Ctrl|LSuper|LSuper| LSuper| LAlt| | PgUp | PgDwn| |BEPO| Delete | | AltGr| RSuper|RSuper|RCtrl| Enter|
- * `----------------------------------' ,------|------|------| |------+------+------. `----------------------------------'
- * | | |Insert| |L_Fnav| | |
- * | Space|Shift |------| |------|RShift|Enter |
- * | | |Mouse | | Fn | | |
- * `--------------------' `--------------------'
- * df is for temporary stuff and mo is for toggle (momentary)
- * so mouse is to toggle the mouse mode
- */
-[BEPO] = LAYOUT_ergodox(
-
-/* Left hand */
-BP_DLR, BP_DQUO, BP_LDAQ, BP_RDAQ, BP_LPRN, BP_RPRN, BP_AT,
-KC_TAB, BP_B, BP_EACU, BP_P, BP_O, BP_EGRV, KC_BSPC,
-BP_W, BP_A, BP_U, BP_I, BP_E, BP_COMM,
-KC_LSFT, BP_ECIR, BP_AGRV, BP_Y, BP_X, BP_DOT, BP_K,
-KC_LCTL, KC_LGUI, KC_LGUI, KC_LGUI, KC_LALT,
- KC_PGUP, KC_PGDN,
- KC_INS,
- KC_SPC, KC_LSFT, DF(FNAV),
-
-/* Right hand */
- BP_PLUS, BP_MINS, BP_MINS, BP_SLSH, BP_ASTR, BP_EQL, BP_PERC,
- KC_CAPS, BP_DCIR, BP_V, BP_D, BP_L, BP_J, BP_Z,
- BP_C, BP_T, BP_S, BP_R, BP_N, BP_M,
- KC_ESC, BP_QUOT, BP_Q, BP_G, BP_H, BP_F, BP_CCED,
- KC_ALGR, KC_RGUI, KC_RGUI, KC_RCTL, KC_ENTER,
-DF(BEPO), KC_DEL,
-DF(FNAV),
-MO(FNAV), KC_RSFT, KC_ENTER),
-
-/* Keymap 1: function / navigation / mouse layer
- *
- * ,--------------------------------------------------. ,--------------------------------------------------.
- * | | F1 | F2 | F3 | F4 | F5 | F6 | | F7 | F8 | F9 | F10 | F11 | F12 | F12 |
- * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | | Next |LClick| Up |RClick| WhUp |Backspace| | | PgUp | Home | Up | End | F11 | |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | Prev | Left | Down | Right|WhDown|------| |------| Left | Down | Up | Right | F12 | |
- * |--------+------+------+------+------+------| VolUp| | |------+------+------+------+------+--------|
- * | Shift | Undo | Cut | Copy | Paste| | | | | | | | | | |
- * `--------+------+------+------+------+-------------,-------------. ,-------------`-------------+------+------+------+------+--------'
- * | ctrl | super | super | alt | | Home | End | | | | | | Alt | | |Ctrl | |
- * `----------------------------------' ,------|------|------| |------+------+------. `----------------------------------'
- * | | | | | | | |
- * | | |------| |------| | |
- * | | | | | | | |
- * `--------------------' `--------------------'
- */
-[FNAV] = LAYOUT_ergodox(
-
-/* Left hand */
-KC_NO, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6,
-KC_NO, KC_MS_BTN5, KC_MS_BTN1, KC_MS_UP, KC_MS_BTN2, KC_MS_WH_UP, KC_BSPC,
-KC_NO, KC_MS_BTN4, KC_MS_LEFT, KC_MS_DOWN, KC_MS_RIGHT, KC_MS_WH_DOWN,
-KC_LSFT, KC_UNDO, KC_CUT, KC_COPY, KC_PASTE, KC_NO, KC_VOLD,
-KC_LCTL, KC_INS, KC_LGUI, KC_LGUI, KC_LALT,
- KC_HOME, KC_END,
- KC_TRNS,
- KC_NO, KC_TRNS, KC_TRNS,
-
-/* Right hand */
- KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_F12,
- KC_NO, KC_PGUP, KC_HOME, KC_UP, KC_END, KC_F11, KC_NO,
- KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, KC_F12, KC_NO,
- KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
- KC_RALT, KC_TRNS, KC_TRNS, KC_RCTL, KC_NO,
-KC_TRNS, KC_TRNS,
-KC_TRNS,
-KC_TRNS, KC_TRNS, KC_NO),
-};
-
-/* helper function to switch on of the right LED ON/OFF */
-static void indicate_using_led(const uint8_t led, const bool enabled) {
- if (enabled) {
- ergodox_right_led_on(led);
- } else {
- ergodox_right_led_off(led);
- }
-}
-
-/* Runs constantly in the background, in a loop */
-void matrix_scan_user(void) {
-
- /* red led for shift */
- if (keyboard_report->mods & MOD_BIT(KC_LSFT) ||
- ((get_oneshot_mods() & MOD_BIT(KC_LSFT)) && !has_oneshot_mods_timed_out())) {
- indicate_using_led(1, true);
- } else {
- indicate_using_led(1, false);
- }
-
- /* green led for alt */
- if (keyboard_report->mods & MOD_BIT(KC_LALT) ||
- ((get_oneshot_mods() & MOD_BIT(KC_LALT)) && !has_oneshot_mods_timed_out())) {
- indicate_using_led(2, true);
- } else {
- indicate_using_led(2, false);
- }
-
- /* blue led for function mode */
- if (IS_LAYER_ON(FNAV)) {
- indicate_using_led(3, true);
- } else {
- indicate_using_led(3, false);
- }
-};
diff --git a/layouts/community/ergodox/bepo_alt/readme.md b/layouts/community/ergodox/bepo_alt/readme.md
deleted file mode 100644
index c8cc1225cc..0000000000
--- a/layouts/community/ergodox/bepo_alt/readme.md
+++ /dev/null
@@ -1,66 +0,0 @@
-![layer0](https://i.imgur.com/vd4QLBf.png)
-
-![layer1](https://i.imgur.com/eo101eD.png)
-
-# BEPO keymap for the ErgoDox (alternate version)
-
-This keymap has been made for the BEPO layout (https://bepo.fr), which is an ergonomic french keyboard layout based on Dvorak rules. As it's made for french people, the following of this readme will be in french.
-
-Keyboard Maintainer: [Nicolas CARPi](https://github.com/NicolasCARPi)
-
-Hardware Supported: Ergodox EZ
-
-## Disposition BÉPO pour l'ErgoDox
-
-Cette keymap a été adaptée de la keymap "bepo_csa" présente dans le dossier parent.
-
-Certaines modifications ont été apportées pour ressembler un peu plus à une clavier traditionel:
-
-* entrée sur la touche tout en bas à droite (comme la touche entrée du pavé numérique sur un clavier traditionnel)
-* plusieurs touches "Super" pour faciliter son accès
-
-Il y a deux layers, celui de base, et celui avec les flèches, les touches fonction et la souris (main gauche).
-
-## Particularités
-
-* Touches de repos des pouces : "espace" à gauche et "entrée" à droite.
-* Touche Ctrl gauche accessible avec la paume de la main.
-* Touche "w" placée sur la main gauche (j'ai toujours trouvé le "w" difficle d'accès sur un clavier bépo classique.
-* Plusieurs touches F12.
-* Les flèches sont disposées avec un déplacement à la VIM.
-* Un mode souris permet d'utiliser la souris avec le clavier.
-* Possibilité de changer de mode de manière temporaire ou permanente.
-* Les leds s'allument avec SHIFT, ALT ou la touche function.
-
-J'ai fait cette disposition pour mes besoins, à vous de la modifier pour les vôtres ;)
-
-## Utilisation
-
-### Pré-requis
-
-Pour Archlinux, il est nécessaire d'installer ces paquets au préalable:
-
-~~~bash
-sudo pacman -S avr-gcc avr-libc teensy-loader-cli
-~~~
-
-Les paquets "avr" permettent de compiler le firmware, et teensy-loader permet de le charger sur le clavier.
-
-### Compilation
-
-~~~bash
-# clone the repo
-git clone https://github.com/qmk/qmk_firmware
-# install submodules
-make git-submodule
-# compile this layout
-make ergodox_ez:bepo_alt
-~~~
-
-### Chargement
-
-~~~bash
-teensy-loader-cli -w -mmcu=atmega32u4 -v ergodox_ez_bepo_alt.hex && sleep 6 && setxkbmap fr bepo
-~~~
-
-J'ai ajouté un sleep avant la commande pour remettre en bépo afin de laisser au clavier le temps de rebooter.
diff --git a/layouts/community/ergodox/bepo_alt/rules.mk b/layouts/community/ergodox/bepo_alt/rules.mk
deleted file mode 100644
index faca18b543..0000000000
--- a/layouts/community/ergodox/bepo_alt/rules.mk
+++ /dev/null
@@ -1,5 +0,0 @@
-# Having a file like this allows you to override Makefile definitions
-# for your own particular keymap
-
-SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
-COMMAND_ENABLE = no # Commands for debug and configuration
diff --git a/layouts/community/ergodox/berfarah/config.h b/layouts/community/ergodox/berfarah/config.h
deleted file mode 100644
index 381b66edf1..0000000000
--- a/layouts/community/ergodox/berfarah/config.h
+++ /dev/null
@@ -1,8 +0,0 @@
-#pragma once
-
-#undef TAPPING_TERM
-#define TAPPING_TERM 150
-
-#define RGBLIGHT_EFFECT_BREATHE_CENTER 1.4
-#define RGBLIGHT_EFFECT_BREATHE_MAX 150
-
diff --git a/layouts/community/ergodox/berfarah/keymap.c b/layouts/community/ergodox/berfarah/keymap.c
deleted file mode 100644
index 3ef58b6025..0000000000
--- a/layouts/community/ergodox/berfarah/keymap.c
+++ /dev/null
@@ -1,286 +0,0 @@
-// Netable differences vs. the default firmware for the ErgoDox EZ:
-// 1. The Cmd key is now on the right side, making Cmd+Space easier.
-// 2. The media keys work on OSX (But not on Windows).
-#include QMK_KEYBOARD_H
-#include "action_layer.h"
-
-enum keyboard_layers {
- QWERTY = 0, // default layer
- NUMS, // numbers + symbols
- MOVE, // vim-like movement
- AFK,
-};
-
-enum custom_keycodes {
- BF_AFK = SAFE_RANGE,
- BF_WAKE,
- BF_NUMS,
- BF_MOVE,
-};
-
-// Dashes (macOS)
-#define KC_NDSH LALT(KC_MINS)
-#define KC_MDSH S(LALT(KC_MINS))
-
-#define VIM_B LALT(KC_LEFT)
-#define VIM_W LALT(KC_RIGHT)
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- /* Keymap 0: Basic layer
- *
- * ,--------------------------------------------------. ,--------------------------------------------------.
- * | | | | | | | | | Power| | | | | | |
- * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | Tab | Q | W | E | R | T | [ | | ] | Y | U | I | O | P | \ |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * |Ctrl/Esc| A | S | D | F | G |------| |------| H | J | K | L | ; | ' |
- * |--------+------+------+------+------+------| ( | | ) |------+------+------+------+------+--------|
- * | LShift | Z | X | C | V | B | | | | N | M | , | . | / | RShift |
- * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * |Hyper | F19 |AltShf| | NUMS | | NUMS | |Ctrl/E| F19 | Meh |
- * `----------------------------------' `----------------------------------'
- * ,-------------. ,-------------.
- * | V- | V+ | | Next |Play/Pau|
- * ,------|------|------| |------+--------+------.
- * | | | Vx | | Prev | | |
- * | Space| LGUI |------| |------| Bsp | Enter|
- * | | | LAlt | | LAlt | | |
- * `--------------------' `----------------------'
- */
- // If it accepts an argument (i.e, is a function), it doesn't need KC_.
- // Otherwise, it needs KC_*
- [QWERTY] = LAYOUT_ergodox( // layer 0 : default
- // left hand
- KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
- KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_LBRC,
- CTL_T(KC_ESC),KC_A, KC_S, KC_D, KC_F, KC_G,
- KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, S(KC_9),
- ALL_T(KC_NO), KC_F19,KC_LALT,KC_NO, BF_NUMS,
- KC_VOLD,KC_VOLU,
- KC_MUTE,
- KC_SPC,KC_LGUI,KC_LALT,
-
- // right hand
- BF_AFK, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
- KC_RBRC, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS,
- KC_H, KC_J, KC_K, KC_L, LT(MOVE, KC_SCLN),KC_QUOT,
- S(KC_0), KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH, KC_RSFT,
- BF_NUMS,KC_NO, CTL_T(KC_ESC),KC_F19, MEH_T(KC_NO),
- KC_MNXT,KC_MPLY,
- KC_MPRV,
- KC_LALT,KC_BSPC,KC_ENT
- ),
-
- /* Keymap: Number Layer
- *
- * ,--------------------------------------------------. ,--------------------------------------------------.
- * | | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | |
- * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | ⌘-` | ` | | | | | | | | | | | - | = | |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | 1 | 2 | 3 | 4 | 5 |------| |------| 6 | 7 | 8 | 9 | 0 | |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | F11 | F12 | F13 | F14 | F15 | | | | F16 | F17 | F18 | F19 | F20 | |
- * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * | | | | | | | | | | | |
- * `----------------------------------' `----------------------------------'
- * ,-------------. ,-------------.
- * | | | | | |
- * ,------|------|------| |------+------+------.
- * | | | | | | | |
- * | | |------| |------| | |
- * | | | | | | | |
- * `--------------------' `--------------------'
- */
- [NUMS] = LAYOUT_ergodox(
- // left hand
- KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_TRNS,
- LGUI(KC_GRV),KC_GRV, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS,
- KC_TRNS, KC_1, KC_2, KC_3, KC_4, KC_5,
- KC_TRNS, KC_F11, KC_F12, KC_F13, KC_F14, KC_F15, KC_TRNS,
- KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
- KC_TRNS,KC_TRNS,
- KC_TRNS,
- KC_TRNS,KC_TRNS,KC_TRNS,
-
- // right hand
- KC_TRNS, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS, KC_MINS, KC_EQL, KC_TRNS,
- KC_6 , KC_7, KC_8, KC_9, KC_0, KC_TRNS,
- KC_TRNS, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_TRNS,
- KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS,
- KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS
- ),
-
- /* Keymap 2: Movement Layer
- *
- * ,--------------------------------------------------. ,--------------------------------------------------.
- * | | | | | | | | | | | | | | | |
- * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | | |VIM W | | | | | | | ⌘ ← | ⌥ ← | ⌥ → | ⌘ → | | |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | | HOME | PGUP | PGDW | END |------| |------| ← | ↓ | ↑ | → | | |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | | | | |VIM B | | | | | | | | | |
- * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * | | | | | | | | | | | |
- * `----------------------------------' `----------------------------------'
- * ,-------------. ,-------------.
- * | | | | | |
- * ,------|------|------| |------+------+------.
- * | | | | | | | |
- * | | |------| |------| | |
- * | | | | | | | |
- * `--------------------' `--------------------'
- */
- [MOVE] = LAYOUT_ergodox(
- // left hand
- KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
- KC_TRNS,KC_TRNS,VIM_W, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
- KC_TRNS,KC_TRNS,KC_HOME,KC_PGUP,KC_PGDN,KC_END,
- KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,VIM_B, KC_TRNS,
- KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
- KC_TRNS,KC_TRNS,
- KC_TRNS,
- KC_TRNS,KC_TRNS,KC_TRNS,
-
- // right hand
- KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS,
- KC_TRNS,LGUI(KC_LEFT),LALT(KC_LEFT),LALT(KC_RIGHT),LGUI(KC_RIGHT),KC_TRNS,KC_TRNS,
- KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_TRNS,KC_TRNS,
- KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS,
- KC_TRNS,KC_TRNS,
- KC_TRNS,
- KC_TRNS,KC_TRNS,KC_TRNS
- ),
-
- /* Keymap: AFK Layer
- * All keys wake
- */
- [AFK] = LAYOUT_ergodox(
- // left hand
- BF_WAKE,BF_WAKE,BF_WAKE,BF_WAKE,BF_WAKE,BF_WAKE,BF_WAKE,
- BF_WAKE,BF_WAKE,BF_WAKE,BF_WAKE,BF_WAKE,BF_WAKE,BF_WAKE,
- BF_WAKE,BF_WAKE,BF_WAKE,BF_WAKE,BF_WAKE,BF_WAKE,
- BF_WAKE,BF_WAKE,BF_WAKE,BF_WAKE,BF_WAKE,BF_WAKE,BF_WAKE,
- BF_WAKE,BF_WAKE,BF_WAKE,BF_WAKE,BF_WAKE,
- BF_WAKE,BF_WAKE,
- BF_WAKE,
- BF_WAKE,BF_WAKE,BF_WAKE,
-
- // right hand
- KC_TRNS,BF_WAKE,BF_WAKE,BF_WAKE,BF_WAKE,BF_WAKE,BF_WAKE,
- BF_WAKE,BF_WAKE,BF_WAKE,BF_WAKE,BF_WAKE,BF_WAKE,BF_WAKE,
- BF_WAKE,BF_WAKE,BF_WAKE,BF_WAKE,BF_WAKE,BF_WAKE,
- BF_WAKE,BF_WAKE,BF_WAKE,BF_WAKE,BF_WAKE,BF_WAKE,BF_WAKE,
- BF_WAKE,BF_WAKE,BF_WAKE,BF_WAKE,BF_WAKE,
- BF_WAKE,BF_WAKE,
- BF_WAKE,
- BF_WAKE,BF_WAKE,BF_WAKE
- ),
-};
-
-#ifdef RGBLIGHT_ENABLE
-/*
- * Led Configuration
- */
-extern rgblight_config_t rgblight_config;
-
-typedef struct {
- uint16_t hue :9;
- uint8_t sat :8;
- uint8_t val :8;
- uint8_t mode :6;
-} bf_rgb_data;
-
-bf_rgb_data bf_rgb_config[] = { // color mode
- [QWERTY] = { .hue = 274, .sat = 255, .val = 36, .mode = 3 }, // purple breathing
- [MOVE] = { .hue = 180, .sat = 255, .val = 75, .mode = 1 }, // teal solid
- [NUMS] = { .hue = 120, .sat = 255, .val = 75, .mode = 1 }, // green solid
- [AFK] = { .hue = 0, .sat = 255, .val = 150, .mode = 22 }, // red knight
-};
-
-static inline void bf_set_led(uint8_t layer) {
- bf_rgb_data cfg = bf_rgb_config[layer];
-
- if (rgblight_config.mode != cfg.mode) {
- rgblight_mode(cfg.mode);
- }
-
- rgblight_sethsv(cfg.hue, cfg.sat, cfg.val);
-}
-
-static inline void mod_layer_with_rgb(keyrecord_t *record, uint8_t layer) {
- if (record->event.pressed) {
- layer_on(layer);
- bf_set_led(layer);
- } else {
- layer_off(layer);
- uint8_t currentLayer = get_highest_layer(layer_state);
- bf_set_led(currentLayer);
- };
-};
-#endif
-
-/*
- * Custom keycodes
- */
-bool process_record_user(uint16_t keycode, keyrecord_t *record) {
- switch(keycode) {
- case BF_AFK:
- if (record->event.pressed) {
- layer_on(AFK);
- SEND_STRING(SS_DOWN(X_LCTL)SS_DOWN(X_LSFT)SS_TAP(X_PWR)SS_UP(X_LSFT)SS_UP(X_LCTL));
- }
- return false; break;
- case BF_WAKE:
- if (record->event.pressed) {
- layer_off(AFK);
- SEND_STRING(" ");
- }
- return false; break;
- #ifdef RGBLIGHT_ENABLE
- case BF_NUMS:
- mod_layer_with_rgb(record, NUMS);
- return false; break;
- case BF_MOVE:
- mod_layer_with_rgb(record, MOVE);
- return false; break;
- #endif
- }
-
- return true;
-};
-
-/*
- * Active Routines
- */
-void matrix_init_user(void) {
-#ifdef RGBLIGHT_ENABLE
- bf_set_led(QWERTY);
-#endif
-};
-
-// Runs constantly in the background, in a loop.
-void matrix_scan_user(void) {
- uint8_t layer = get_highest_layer(layer_state);
-
- ergodox_right_led_1_off();
- ergodox_right_led_2_off();
- ergodox_right_led_3_off();
-
- switch (layer) {
- case NUMS:
- ergodox_right_led_2_on();
- break;
- case MOVE:
- ergodox_right_led_3_on();
- break;
- case AFK:
- ergodox_right_led_1_on();
- break;
- }
-};
diff --git a/layouts/community/ergodox/berfarah/readme.md b/layouts/community/ergodox/berfarah/readme.md
deleted file mode 100644
index ccdcb91fbe..0000000000
--- a/layouts/community/ergodox/berfarah/readme.md
+++ /dev/null
@@ -1,93 +0,0 @@
-# Bernardo's modified version of the OSX defaults
-
-I map F19 to spotlight so I like having that handy
-
-## Base
-
-
-```
- ,--------------------------------------------------. ,--------------------------------------------------.
- | | | | | | | | | Power| | | | | | |
- |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- | Tab | Q | W | E | R | T | [ | | ] | Y | U | I | O | P | \ |
- |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- |Ctrl/Esc| A | S | D | F | G |------| |------| H | J | K | L |;/MOVE| ' |
- |--------+------+------+------+------+------| ( | | ) |------+------+------+------+------+--------|
- | LShift | Z | X | C | V | B | | | | N | M | , | . | / | RShift |
- `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- |Hyper | F19 |AltShf| | NUMS | | NUMS | |Ctrl/E| F19 | Meh |
- `----------------------------------' `----------------------------------'
- ,-------------. ,-------------.
- | V- | V+ | | Next |Play/Pau|
- ,------|------|------| |------+--------+------.
- | | | Vx | | Prev | | |
- | Space| LGUI |------| |------| Bsp | Enter|
- | | | LAlt | | LAlt | | |
- `--------------------' `----------------------'
-```
-
-## Numbers and Symbols
-
-
-```
-,--------------------------------------------------. ,--------------------------------------------------.
-| | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | |
-|--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
-| ⌘-` | ` | | | | | | | | | | | - | = | |
-|--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
-| | 1 | 2 | 3 | 4 | 5 |------| |------| 6 | 7 | 8 | 9 | 0 | |
-|--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
-| | F11 | F12 | F13 | F14 | F15 | | | | F16 | F17 | F18 | F19 | F20 | |
-`--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- | | | | | | | | | | | |
- `----------------------------------' `----------------------------------'
- ,-------------. ,-------------.
- | | | | | |
- ,------|------|------| |------+------+------.
- | | | | | | | |
- | | |------| |------| | |
- | | | | | | | |
- `--------------------' `--------------------'
-```
-
-## Movement
-
-```
-,--------------------------------------------------. ,--------------------------------------------------.
-| | | | | | | | | | | | | | | |
-|--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
-| | | ⌥ ← | | | | | | | ⌘ ← | ⌥ ← | ⌥ → | ⌘ → | | |
-|--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
-| | | HOME | PGUP | PGDW | END |------| |------| ← | ↓ | ↑ | → | | |
-|--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
-| | | | | | ⌥ → | | | | | | | | | |
-`--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- | | | | | | | | | | | |
- `----------------------------------' `----------------------------------'
- ,-------------. ,-------------.
- | | | | | |
- ,------|------|------| |------+------+------.
- | | | | | | | |
- | | |------| |------| | |
- | | | | | | | |
- `--------------------' `--------------------'
-```
-
-## Building
-
-In order to be able to make frequent updates, I maintain this layout [in its own
-repository](berfarah:ergodox-layout)
-
-```sh
-git clone https://github.com/qmk/qmk_firmware.git
-cd qmk_firmware
-git clone https://github.com/berfarah/ergodox-layout.git \
- layouts/community/ergodox/berfarah_master
-make ergodox_ez-berfarah_master
-```
-
-To use this keyboard, run `make ergodox_ez:berfarah`
-
-## Using on Windows
-
-The keymap default to forcing NKRO, which seems to upset Windows, and except the modifiers, none of them work. If you experience this problem, recompile the firmware with `FORCE_NKRO=no` added to the `make` command line.
diff --git a/layouts/community/ergodox/berfarah/rules.mk b/layouts/community/ergodox/berfarah/rules.mk
deleted file mode 100644
index 2ad1630644..0000000000
--- a/layouts/community/ergodox/berfarah/rules.mk
+++ /dev/null
@@ -1,16 +0,0 @@
-BOOTMAGIC_ENABLE = no # Enable Bootmagic Lite
-COMMAND_ENABLE = no
-SLEEP_LED_ENABLE = yes
-FORCE_NKRO ?= yes
-DEBUG_ENABLE = no
-CONSOLE_ENABLE = no
-TAP_DANCE_ENABLE = no
-MOUSEKEY_ENABLE = no
-ifdef RGBLIGHT_ENABLE
-RGBLIGHT_ANIMATION = yes
-endif
-
-ifeq (${FORCE_NKRO},yes)
-OPT_DEFS += -DFORCE_NKRO
-endif
-
diff --git a/layouts/community/ergodox/choromanski/keymap.c b/layouts/community/ergodox/choromanski/keymap.c
deleted file mode 100644
index a84935d392..0000000000
--- a/layouts/community/ergodox/choromanski/keymap.c
+++ /dev/null
@@ -1,284 +0,0 @@
-#include QMK_KEYBOARD_H
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
-/* Keymap 0: Colemak
- * ,--------------------------------------------------. ,--------------------------------------------------.
- * | ` ~ | 1 ! | 2 @ | 3 # | 4 $ | 5 % | 6 ^ | | 7 & | 8 * | 9 ( | 0 ) | - _ | = + | BSPACE |
- * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | TAB | Q | W | F | P | G | | | | J | L | U | Y | ; : | \ | |
- * |--------+------+------+------+------+------| ( | | ) |------+------+------+------+------+--------|
- * | ESC | A | R | S | T | D |------| |------| H | N | E | I | O | ' " |
- * |--------+------+------+------+------+------| { | | } |------+------+------+------+------+--------|
- * | Shift |CTR(Z)|GUI(X)|ALT(C)| V | B | [ | | ] | K | M | , < |ALT(.)|CTR(/)| Shift |
- * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * |OSL(3)| TG(2)| TO(5)| TO(1)| CAPS | | LEFT | DOWN | UP |RIGHT |TG(4)|
- * `----------------------------------' `---------------------------------'
- * ,--------------. ,--------------.
- * | LCTR | LALT | | RALT | RCTR |
- * ,------|------|-------| |------+-------+------.
- * | | | MUTE | |SCROLU| | |
- * |BSPACE|DELETE|-------| |------| ENTER |SPACE |
- * | | | GUI | |SCROLD| | |
- * `---------------------' `---------------------'
- */
- [0] = LAYOUT_ergodox(
- KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6,
- KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_LPRN,
- KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_D,
- KC_LSFT, CTL_T(KC_Z), GUI_T(KC_X), ALT_T(KC_C), KC_V, KC_B, KC_LBRC,
- OSL(3), TG(2), TO(5), TO(1), KC_CAPS,
- KC_LCTL, KC_LALT,
- KC_MUTE,
- KC_BSPC, KC_DEL, KC_LGUI,
-
- KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC,
- KC_RPRN, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSLS,
- KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT,
- KC_RBRC, KC_K, KC_M, KC_COMM, ALT_T(KC_DOT), CTL_T(KC_SLSH), KC_RSFT,
- KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, TG(4),
- KC_RALT, KC_RCTL,
- KC_WH_U,
- KC_WH_D, KC_ENT, KC_SPC
- ),
-
-/* Keymap 1: QWERTY
- *
- * ,--------------------------------------------------. ,--------------------------------------------------.
- * | | | | | | | | | | | | | | | ESC |
- * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | | Q | W | E | R | T | | | | Y | U | I | O | P | |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | CAPS | A | S | D | F | G |------| |------| H | J | K | L | ; | |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | |CTL(Z)|GUI(X)|ALT(C)| V | B | | | | N | M | , < |ALT(.)|CTL(/)| |
- * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * |OSL(3)| TG(2)| TO(5)| TO(0)| | | | | | | TG(4)|
- * `----------------------------------' `----------------------------------'
- * ,-------------. ,--------------.
- * | | | | | |
- * ,------|------|------| |------+-------+------.
- * | | | | | | | |
- * | | |------| |------| | |
- * | | | | | | | |
- * `--------------------' `---------------------'
- */
- [1] = LAYOUT_ergodox(
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_TRNS,
- KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G,
- KC_TRNS, CTL_T(KC_Z), GUI_T(KC_X), ALT_T(KC_C), KC_V, KC_B, KC_TRNS,
- OSL(3), TG(2), TO(5), TO(0), KC_TRNS,
- KC_TRNS, KC_TRNS,
- KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS,
-
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_ESC,
- KC_RPRN, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_TRNS,
- KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_TRNS,
- KC_RBRC, KC_N, KC_M, KC_COMM, ALT_T(KC_DOT), CTL_T(KC_SLSH), KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, TG(4),
- KC_TRNS, KC_TRNS,
- KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS
- ),
-
-/* Keymap 2: Function Row
- *
- * ,--------------------------------------------------. ,--------------------------------------------------.
- * | | F1 | F2 | F3 | F4 | F5 | F6 | | F7 | F8 | F9 | F10 | F11 | F12 | |
- * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | | | | | | | | | | | | | | | |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | | | | | |------| |------| | | | | | |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | | | | | | | | | | | | | | |
- * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * | | | | | | | | | | | |
- * `----------------------------------' `----------------------------------'
- * ,-------------. ,--------------.
- * | | | | | |
- * ,------|------|------| |------+-------+------.
- * | | | | | | | |
- * | | |------| |------| | |
- * | | | | | | | |
- * `--------------------' `---------------------'
- */
- [2] = LAYOUT_ergodox(
- KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS,
- KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS,
-
- KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS,
- KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS
- ),
-
- /* Keymap 3: Symbols
- *
- * ,--------------------------------------------------. ,--------------------------------------------------.
- * | | F1 | F2 | F3 | F4 | F5 | F6 | | F7 | F8 | F9 | F10 | F11 | F12 | |
- * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | | | | + | < | > | # | | | | ~ | ( | ) | \ | : | |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | ! | - | = | % | @ |------| |------| _ | { | } | / | ? | |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | * | & | / | $ | ^ | | | | | | [ | ] | | | |
- * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * | | | | | | | | | | | |
- * `----------------------------------' `----------------------------------'
- * ,-------------. ,--------------.
- * | | | | | |
- * ,------|------|------| |------+-------+------.
- * | | | | | | | |
- * | | |------| |------| | |
- * | | | | | | | |
- * `--------------------' `---------------------'
- */
- [3] = LAYOUT_ergodox(
- KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6,
- KC_TRNS, KC_PIPE, KC_PLUS, KC_LABK, KC_RABK, KC_HASH, KC_TRNS,
- KC_TRNS, KC_EXLM, KC_MINS, KC_EQL, KC_PERC, KC_AT,
- KC_TRNS, KC_ASTR, KC_AMPR, KC_SLSH, KC_DLR, KC_CIRC, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS,
- KC_TRNS,
- KC_TRNS,KC_TRNS, KC_TRNS,
-
- KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS,
- KC_TRNS, KC_TILD, KC_LPRN, KC_RPRN, KC_BSLS, KC_COLN, KC_TRNS,
- KC_UNDS, KC_LCBR, KC_RCBR, KC_SLSH, KC_QUES, KC_TRNS,
- KC_TRNS, KC_PIPE, KC_LBRC, KC_RBRC, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS,
- KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS
- ),
-
-/* Keymap 4: Numlock
- *
- * ,--------------------------------------------------. ,--------------------------------------------------.
- * | POWER |SLEEP | |MOUSE3| | | QK_BOOT| |QK_BOOT |SCROL | NUML | / | * | - | |
- * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | | |MOUSE1|MOUSEU|MOUSE2|SCROLU| | | | | 7 | 8 | 9 | + | ACCEL0 |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | |MOUSEL|MOUSED|MOUSER|SCROLD|------| |------| | 4 | 5 | 6 | + | ACCEL1 |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | |ACCEL0|ACCEL1|ACCEL2| | | | | | 1 | 2 | 3 |ENTER | ACCEL2 |
- * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * | | | | | | | 0 | 0 | . |ENTER | |
- * `----------------------------------' `----------------------------------'
- * ,-------------. ,-------------.
- * | VOL+ | VOL- | |MEDIA<|MEDIA>|
- * ,------|------|------| |------+------+------.
- * | | | MUTE | |Pause | | |
- * | | |------| |------| | |
- * | | |FILES | | CALC | | |
- * `--------------------' `--------------------'
- */
- [4] = LAYOUT_ergodox(
- KC_PWR, KC_SLEP, KC_TRNS, KC_BTN3, KC_TRNS, KC_TRNS, QK_BOOT,
- KC_TRNS, KC_TRNS, KC_BTN1, KC_MS_U, KC_BTN2, KC_WH_U, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_R, KC_WH_D,
- KC_TRNS, KC_TRNS, KC_ACL0, KC_ACL1, KC_ACL2, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_VOLD, KC_VOLU,
- KC_MUTE,
- KC_TRNS, KC_TRNS, KC_MYCM,
-
- QK_BOOT, KC_SCRL, KC_NUM, KC_SLSH, KC_ASTR, KC_MINS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_7, KC_8, KC_9, KC_PLUS, KC_ACL2,
- KC_TRNS, KC_4, KC_5, KC_6, KC_PLUS, KC_ACL1,
- KC_TRNS, KC_TRNS, KC_1, KC_2, KC_3, KC_ENT, KC_ACL0,
- KC_0, KC_0, KC_DOT, KC_ENT, KC_TRNS,
- KC_MPRV, KC_MNXT,
- KC_MPLY,
- KC_CALC, KC_TRNS, KC_TRNS
- ),
-
-/* Keymap 5: Gaming
- * ,--------------------------------------------------. ,--------------------------------------------------.
- * | ` ~ | 1 ! | 2 @ | 3 # | 4 $ | 5 % | 6 ^ | | 7 & | 8 * | 9 ( | 0 ) | - _ | = + | ESC |
- * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | TAB | Q | W | E | R | T | | | | Y | U | I | O | P | \ | |
- * |--------+------+------+------+------+------| ( | | ) |------+------+------+------+------+--------|
- * | LCTR | A | S | D | F | G |------| |------| H | J | K | L | ; : | ' " |
- * |--------+------+------+------+------+------| MEDIA| | } |------+------+------+------+------+--------|
- * | LShift | Z | X | C | V | B | P/P | | ] | K | M | UP | . > | / ? | Shift |
- * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * | LCTR |ALTTAB| TO(0)| ALT | SPACE| | LEFT | DOWN | RIGHT| , < |TO(0) |
- * `----------------------------------' `----------------------------------'
- * ,--------------. ,--------------.
- * |MEDIA<| MEDIA>| | RALT | RCTR |
- * ,------|------|-------| |------+-------+------.
- * | | | VOL+ | | PGUP | | |
- * |SPACE |ENTER |-------| |------|BSPACE |DELETE|
- * | | | VOL- | | PGDWN| | |
- * `---------------------' `---------------------'
- */
- [5] = LAYOUT_ergodox(
- KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6,
- KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_TRNS,
- KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G,
- KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_MPLY,
- KC_LCTL, LALT(KC_TAB), TO(0), KC_LALT, KC_SPC,
- KC_MPRV, KC_MNXT,
- KC_VOLU,
- KC_SPC, KC_ENT, KC_VOLD,
-
- KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_ESC,
- KC_TRNS, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS,
- KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOTE,
- KC_TRNS, KC_N, KC_M, KC_UP, KC_DOT, KC_SLSH, KC_LSFT,
- KC_LEFT, KC_DOWN, KC_RGHT, KC_COMM, TO(0),
- KC_LALT, KC_LCTL,
- KC_PGUP,
- KC_PGDN, KC_BSPC, KC_DEL
- ),
-};
-
-void matrix_scan_user(void) {
-
- uint8_t layer = get_highest_layer(layer_state);
-
- ergodox_board_led_off();
- ergodox_right_led_1_off();
- ergodox_right_led_2_off();
- ergodox_right_led_3_off();
- switch (layer) {
- case 1:
- ergodox_right_led_1_on();
- break;
- case 2:
- ergodox_right_led_2_on();
- break;
- case 3:
- ergodox_right_led_3_on();
- break;
- case 4:
- ergodox_right_led_1_on();
- ergodox_right_led_2_on();
- break;
- case 5:
- ergodox_right_led_1_on();
- ergodox_right_led_3_on();
- break;
- case 6:
- ergodox_right_led_2_on();
- ergodox_right_led_3_on();
- break;
- default:
- break;
- }
-
-};
diff --git a/layouts/community/ergodox/choromanski/readme.md b/layouts/community/ergodox/choromanski/readme.md
deleted file mode 100644
index 848a6670c9..0000000000
--- a/layouts/community/ergodox/choromanski/readme.md
+++ /dev/null
@@ -1,138 +0,0 @@
-# Choromanski
-
-## Features
-* Colemak
-* Qwerty
-* Toggable function row
-* Symbol layer programmer friendly
-* Numpad/Mouse layer with media controls
-* Gaming friendly layer
-
-## Layers
-
-### 0 Colemak
-```
-,--------------------------------------------------. ,--------------------------------------------------.
-| ` ~ | 1 ! | 2 @ | 3 # | 4 $ | 5 % | 6 ^ | | 7 & | 8 * | 9 ( | 0 ) | - _ | = + | BSPACE |
-|--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
-| TAB | Q | W | F | P | G | | | | J | L | U | Y | ; : | \ | |
-|--------+------+------+------+------+------| ( | | ) |------+------+------+------+------+--------|
-| ESC | A | R | S | T | D |------| |------| H | N | E | I | O | ' " |
-|--------+------+------+------+------+------| { | | } |------+------+------+------+------+--------|
-| Shift |CTR(Z)|GUI(X)|ALT(C)| V | B | [ | | ] | K | M | , < |ALT(.)|CTR(/)| Shift |
-`--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- |OSL(3)| TG(2)| TO(5)| TO(1)| CAPS | | LEFT | DOWN | UP |RIGHT |TG(4)|
- `----------------------------------' `---------------------------------'
- ,--------------. ,--------------.
- | LCTR | LALT | | RALT | RCTR |
- ,------|------|-------| |------+-------+------.
- | | | MUTE | |SCROLU| | |
- |BSPACE|DELETE|-------| |------| ENTER |SPACE |
- | | | GUI | |SCROLD| | |
- `---------------------' `---------------------'
-```
-### 1 Qwerty
-```
-,--------------------------------------------------. ,--------------------------------------------------.
-| | | | | | | | | | | | | | | ESC |
-|--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
-| | Q | W | E | R | T | | | | Y | U | I | O | P | |
-|--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
-| CAPS | A | S | D | F | G |------| |------| H | J | K | L | ; | |
-|--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
-| |CTL(Z)|GUI(X)|ALT(C)| V | B | | | | N | M | , < |ALT(.)|CTL(/)| |
-`--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- |OSL(3)| TG(2)| TO(5)| TO(0)| | | | | | | TG(4)|
- `----------------------------------' `----------------------------------'
- ,-------------. ,--------------.
- | | | | | |
- ,------|------|------| |------+-------+------.
- | | | | | | | |
- | | |------| |------| | |
- | | | | | | | |
- `--------------------' `---------------------'
-```
-### 2 Function Lock
-```
-,--------------------------------------------------. ,--------------------------------------------------.
-| | F1 | F2 | F3 | F4 | F5 | F6 | | F7 | F8 | F9 | F10 | F11 | F12 | |
-|--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
-| | | | | | | | | | | | | | | |
-|--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
-| | | | | | |------| |------| | | | | | |
-|--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
-| | | | | | | | | | | | | | | |
-`--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- | | | | | | | | | | | |
- `----------------------------------' `----------------------------------'
- ,-------------. ,--------------.
- | | | | | |
- ,------|------|------| |------+-------+------.
- | | | | | | | |
- | | |------| |------| | |
- | | | | | | | |
- `--------------------' `---------------------'
-```
-### 3 Symbols
-```
-,--------------------------------------------------. ,--------------------------------------------------.
-| | F1 | F2 | F3 | F4 | F5 | F6 | | F7 | F8 | F9 | F10 | F11 | F12 | |
-|--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
-| | | | + | < | > | # | | | | ~ | ( | ) | \ | : | |
-|--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
-| | ! | - | = | % | @ |------| |------| _ | { | } | / | ? | |
-|--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
-| | * | & | / | $ | ^ | | | | | | [ | ] | | | |
-`--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- | | | | | | | | | | | |
- `----------------------------------' `----------------------------------'
- ,-------------. ,--------------.
- | | | | | |
- ,------|------|------| |------+-------+------.
- | | | | | | | |
- | | |------| |------| | |
- | | | | | | | |
- `--------------------' `---------------------'
-```
-### 4 Numpad/Mouse with Media Controls
-```
-,--------------------------------------------------. ,--------------------------------------------------.
-| POWER |SLEEP | |MOUSE3| | | RESET| |RESET |SCROL | NUML | / | | - | |
-|--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
-| | |MOUSE1|MOUSEU|MOUSE2|SCROLU| | | | | 7 | 8 | 9 | + | ACCEL0 |
-|--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
-| | |MOUSEL|MOUSED|MOUSER|SCROLD|------| |------| | 4 | 5 | 6 | + | ACCEL1 |
-|--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
-| | |ACCEL0|ACCEL1|ACCEL2| | | | | | 1 | 2 | 3 |ENTER | ACCEL2 |
-`--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- | | | | | | | 0 | 0 | . |ENTER | |
- `----------------------------------' `----------------------------------'
- ,-------------. ,-------------.
- | VOL+ | VOL- | |MEDIA<|MEDIA>|
- ,------|------|------| |------+------+------.
- | | | MUTE | |Pause | | |
- | | |------| |------| | |
- | | |FILES | | CALC | | |
- `--------------------' `--------------------'
-```
-### 5 Gaming
-```
-,--------------------------------------------------. ,--------------------------------------------------.
-| ` ~ | 1 ! | 2 @ | 3 # | 4 $ | 5 % | 6 ^ | | 7 & | 8 * | 9 ( | 0 ) | - _ | = + | ESC |
-|--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
-| TAB | Q | W | E | R | T | | | | Y | U | I | O | P | \ | |
-|--------+------+------+------+------+------| ( | | ) |------+------+------+------+------+--------|
-| LCTR | A | S | D | F | G |------| |------| H | J | K | L | ; : | ' " |
-|--------+------+------+------+------+------| MEDIA| | } |------+------+------+------+------+--------|
-| LShift | Z | X | C | V | B | P/P | | ] | K | M | UP | . > | / ? | Shift |
-`--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- | LCTR |ALTTAB| TO(0)| ALT | SPACE| | LEFT | DOWN | RIGHT| , < |TO(0) |
- `----------------------------------' `----------------------------------'
- ,--------------. ,--------------.
- |MEDIA<| MEDIA>| | RALT | RCTR |
- ,------|------|-------| |------+-------+------.
- | | | VOL+ | | PGUP | | |
- |SPACE |ENTER |-------| |------|BSPACE |DELETE|
- | | | VOL- | | PGDWN| | |
- `---------------------' `---------------------'
-``` \ No newline at end of file
diff --git a/layouts/community/ergodox/colemak/keymap.c b/layouts/community/ergodox/colemak/keymap.c
deleted file mode 100644
index db2addd6d9..0000000000
--- a/layouts/community/ergodox/colemak/keymap.c
+++ /dev/null
@@ -1,160 +0,0 @@
-#include QMK_KEYBOARD_H
-#include "debug.h"
-#include "action_layer.h"
-
-#define BASE 0 // default layer
-#define SYMB 1 // symbols
-#define MDIA 2 // media keys
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-/* Keymap 0: Basic layer
- *
- * ,--------------------------------------------------. ,--------------------------------------------------.
- * | = | 1 | 2 | 3 | 4 | 5 | LEFT | | RIGHT| 6 | 7 | 8 | 9 | 0 | - |
- * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | Del | Q | W | F | P | G | L1 | | L1 | J | L | U | Y | ; | \ |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | BkSp | A | R | S | T | D |------| |------| H | N | E | I |O / L2| ' |
- * |--------+------+------+------+------+------| Hyper| | Meh |------+------+------+------+------+--------|
- * | LShift |Z/Ctrl| X | C | V | B | | | | K | M | , | . |//Ctrl| RShift |
- * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * |Grv/L1| '" |AltShf| Left | Right| | Up | Down | [ | ] | ~L1 |
- * `----------------------------------' `----------------------------------'
- * ,-------------. ,-------------.
- * | App | LGui | | Alt |Ctrl/Esc|
- * ,------|------|------| |------+--------+------.
- * | | | Home | | PgUp | | |
- * | Space|Backsp|------| |------| Tab |Enter |
- * | |ace | End | | PgDn | | |
- * `--------------------' `----------------------'
- */
-// If it accepts an argument (i.e, is a function), it doesn't need KC_.
-// Otherwise, it needs KC_*
-[BASE] = LAYOUT_ergodox( // layer 0 : default
- // left hand
- KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, KC_LEFT,
- KC_DEL, KC_Q, KC_W, KC_F, KC_P, KC_G, TG(SYMB),
- KC_BSPC, KC_A, KC_R, KC_S, KC_T, KC_D,
- KC_LSFT, CTL_T(KC_Z), KC_X, KC_C, KC_V, KC_B, ALL_T(KC_NO),
- LT(SYMB,KC_GRV),KC_QUOT, LALT(KC_LSFT), KC_LEFT,KC_RGHT,
- ALT_T(KC_APP), KC_LGUI,
- KC_HOME,
- KC_SPC,KC_BSPC,KC_END,
- // right hand
- KC_RGHT, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS,
- TG(SYMB), KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSLS,
- KC_H, KC_N, KC_E, KC_I, LT(MDIA, KC_O), KC_QUOT,
- MEH_T(KC_NO),KC_K, KC_M, KC_COMM,KC_DOT, CTL_T(KC_SLSH), KC_RSFT,
- KC_UP, KC_DOWN,KC_LBRC,KC_RBRC, TT(SYMB),
- KC_LALT, CTL_T(KC_ESC),
- KC_PGUP,
- KC_PGDN,KC_TAB, KC_ENT
- ),
-/* Keymap 1: Symbol Layer
- *
- * ,--------------------------------------------------. ,--------------------------------------------------.
- * | | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | F11 |
- * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | | ! | @ | { | } | | | | | | Up | 7 | 8 | 9 | * | F12 |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | # | $ | ( | ) | ` |------| |------| Down | 4 | 5 | 6 | + | |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | % | ^ | [ | ] | ~ | | | | & | 1 | 2 | 3 | \ | |
- * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * | | | | | | | | . | 0 | = | |
- * `----------------------------------' `----------------------------------'
- * ,-------------. ,-------------.
- * | | | | | |
- * ,------|------|------| |------+------+------.
- * | | | | | | | |
- * | | |------| |------| | |
- * | | | | | | | |
- * `--------------------' `--------------------'
- */
-// SYMBOLS
-[SYMB] = LAYOUT_ergodox(
- // left hand
- KC_TRNS,KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_TRNS,
- KC_TRNS,KC_EXLM,KC_AT, KC_LCBR,KC_RCBR,KC_PIPE,KC_TRNS,
- KC_TRNS,KC_HASH,KC_DLR, KC_LPRN,KC_RPRN,KC_GRV,
- KC_TRNS,KC_PERC,KC_CIRC,KC_LBRC,KC_RBRC,KC_TILD,KC_TRNS,
- KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
- KC_TRNS,KC_TRNS,
- KC_TRNS,
- KC_TRNS,KC_TRNS,KC_TRNS,
- // right hand
- KC_TRNS, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,
- KC_TRNS, KC_UP, KC_7, KC_8, KC_9, KC_ASTR, KC_F12,
- KC_DOWN, KC_4, KC_5, KC_6, KC_PLUS, KC_TRNS,
- KC_TRNS, KC_AMPR, KC_1, KC_2, KC_3, KC_BSLS, KC_TRNS,
- KC_TRNS,KC_DOT, KC_0, KC_EQL, KC_TRNS,
- KC_TRNS, KC_TRNS,
- KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS
-),
-/* Keymap 2: Media and mouse keys
- *
- * ,--------------------------------------------------. ,--------------------------------------------------.
- * | | | | | | | | | | | | | | | |
- * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | | | | MsUp | | | | | | | | | | | |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | |MsLeft|MsDown|MsRght| |------| |------| | | | | | Play |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | | | | | | | | | | | Prev | Next | | |
- * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * | | | | Lclk | Rclk | |VolUp |VolDn | Mute | | |
- * `----------------------------------' `----------------------------------'
- * ,-------------. ,-------------.
- * | | | | | |
- * ,------|------|------| |------+------+------.
- * | | | | | | |Brwser|
- * | | |------| |------| |Back |
- * | | | | | | | |
- * `--------------------' `--------------------'
- */
-// MEDIA AND MOUSE
-[MDIA] = LAYOUT_ergodox(
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_MS_U, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_R, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_BTN1, KC_BTN2,
- KC_TRNS, KC_TRNS,
- KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS,
- // right hand
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_MPRV, KC_MNXT, KC_TRNS, KC_TRNS,
- KC_VOLU, KC_VOLD, KC_MUTE, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS,
- KC_TRNS,
- KC_TRNS, KC_TRNS, KC_WBAK
-),
-};
-
-// Runs constantly in the background, in a loop.
-void matrix_scan_user(void) {
-
- uint8_t layer = get_highest_layer(layer_state);
-
- ergodox_board_led_off();
- ergodox_right_led_1_off();
- ergodox_right_led_2_off();
- ergodox_right_led_3_off();
- switch (layer) {
- // TODO: Make this relevant to the ErgoDox EZ.
- case 1:
- ergodox_right_led_1_on();
- break;
- case 2:
- ergodox_right_led_2_on();
- break;
- default:
- // none
- break;
- }
-
-};
diff --git a/layouts/community/ergodox/colemak/readme.md b/layouts/community/ergodox/colemak/readme.md
deleted file mode 100644
index e28b2f0856..0000000000
--- a/layouts/community/ergodox/colemak/readme.md
+++ /dev/null
@@ -1,4 +0,0 @@
-# ErgoDox EZ Colemak Configuration
-
-Colemak layout with same layers as default ergodox ez keymap.
-
diff --git a/layouts/community/ergodox/colemak_code_friendly/keymap.c b/layouts/community/ergodox/colemak_code_friendly/keymap.c
deleted file mode 100644
index d9e3c9fa61..0000000000
--- a/layouts/community/ergodox/colemak_code_friendly/keymap.c
+++ /dev/null
@@ -1,333 +0,0 @@
-/* -*- Mode:C; c-basic-offset:2; tab-width:2; indent-tabs-mode:nil; evil-indent-convert-tabs:t; -*- */
-
-#include QMK_KEYBOARD_H
-
-//#define DYNAMIC_MACRO_SIZE 128
-
-#define LAYER_BASE 0 /* default layer */
-#define LAYER_NUM 1 /* numbers and symbols */
-#define LAYER_LNUM 2 /* Left side -> LAYER_NUM, Right side -> Shift + LAYER_BASE */
-#define LAYER_RNUM 3 /* Left side -> Shift + LAYER_BASE, Right side -> LAYER_NUM */
-
-enum custom_keycodes5 {
- PLACEHOLDER = SAFE_RANGE, /* can always be here */
-
- M_POINER, /* -> */
- M_LAMBDA, /* => */
- M_IN_CBR, /* {} */
- M_IN_PRN, /* () */
- M_IN_BRC, /* [] */
- M_IN_ANG, /* <> */
- M_NOT_EQL, /* != */
- M_COL_EQL, /* := */
- M_PLUS_EQL,/* += */
-
- DYNAMIC_MACRO_RANGE,
-};
-
-#include "dynamic_macro.h"
-
-
-
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-/* Keymap 0: Basic layer
- * .--------------------------------------------------. .--------------------------------------------------.
- * | Grave | ! | @ | # | $ | % | ^ | | TG(1)| & | * | ( | ) | - | Bspc |
- * |--------+------+------+------+------+------+------| |------+------+------+------+------+------+--------|
- * | Tab | Q | W | F | P | G | = | | _ | J | L | U | Y | ; | \ |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | Esc | A | R | S | T | D |------| |------| H | N | E | I | O | ' |
- * |--------+------+------+------+------+------| { | | } |------+------+------+------+------+--------|
- * | LShift |Z/LCtl|X/Supe| C | V |B/RAlt| | | |K/RAlt| M | , |./Supe|/ RCtl| RShift |
- * '--------+------+------+------+------+-------------' '-------------+------+------+------+------+--------'
- * | LCtl |Super | Alt | [ | ] | | Left | Down | Up |Right | Del |
- * '----------------------------------' '----------------------------------'
- * .-------------. .-------------.
- * | Home | End | | Ins |ScrLck|
- * .------+------+------| |------+------+------.
- * | | |PrnScr| | PgUp | | |
- * | LNUM | Enter|------| |------| Space| RNUM |
- * | | | Super| | PgDn | | |
- * '--------------------' '--------------------'
- */
-
-[LAYER_BASE] = LAYOUT_ergodox( /* layer 0 : default */
- /* left hand */
- KC_GRV, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC,
- KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_EQL,
- KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_D,
- KC_LSFT, LCTL_T(KC_Z), LGUI_T(KC_X), KC_C, KC_V, RALT_T(KC_B), KC_LCBR,
- KC_LCTL, KC_LGUI, KC_LALT, KC_LBRC, KC_RBRC,
-
- KC_HOME, KC_END,
- KC_PSCR,
- MO(LAYER_LNUM), KC_ENT, KC_LGUI,
- /* right hand */
- TG(1), KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_MINS, KC_BSPC,
- KC_UNDS, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSLS,
- KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT,
- KC_RCBR, RALT_T(KC_K), KC_M, KC_COMM, LGUI_T(KC_DOT), RCTL_T(KC_SLSH), KC_RSFT,
- KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_DEL,
- KC_INS, KC_SCRL,
- KC_PGUP,
- KC_PGDN, KC_SPC, MO(LAYER_RNUM)
-),
-/* Keymap 1: Numbers, Macro Record
- *
- * .--------------------------------------------------. .--------------------------------------------------.
- * | | | | | | <> | | | | | * | ( | ) | - | |
- * |--------+------+------+------+------+------+------| |------+------+------+------+------+------+--------|
- * | | F12 | F11 | F10 | F9 | {} | | | = | => | 7 | 8 | 9 | + | |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | F8 | F7 | F6 | F5 | () |------| |------| -> | 4 | 5 | 6 | 0 | |
- * |--------+------+------+------+------+------| | | Enter|------+------+------+------+------+--------|
- * | | F4 | F3 | F2 | F1 | [] | | | | != | 1 | 2 | 3 | | |
- * '--------+------+------+------+------+-------------' '-------------+------+------+------+------+--------'
- * | MUTE | VOLD | VOLU | | | | 0 | , | . | | |
- * '----------------------------------' '----------------------------------'
- * .-------------. .-------------.
- * | | | | | Stop |
- * .------+------+------| |------+------+------.
- * | | |Start1| |Start2| | |
- * | | |------| |------| | |
- * | | |Play1 | |Play2 | | |
- * '--------------------' '--------------------'
- */
-[LAYER_NUM] = LAYOUT_ergodox(
- /* left hand */
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, M_IN_ANG, KC_TRNS,
- KC_TRNS, KC_F12, KC_F11, KC_F10, KC_F9, M_IN_CBR, KC_TRNS,
- KC_TRNS, KC_F8, KC_F7, KC_F6, KC_F5, M_IN_PRN,
- KC_TRNS, KC_F4, KC_F3, KC_F2, KC_F1, M_IN_BRC, KC_TRNS,
- KC_MUTE, KC_VOLD, KC_VOLU, KC_TRNS, KC_TRNS,
-
- KC_TRNS, KC_TRNS,
- DM_REC1,
- KC_TRNS, KC_TRNS, DM_PLY1,
- /* right hand */
- KC_TRNS, KC_TRNS, KC_ASTR, KC_LPRN, KC_RPRN, KC_MINS, KC_TRNS,
- KC_EQL, M_LAMBDA, KC_7, KC_8, KC_9, KC_PLUS, KC_TRNS,
- M_POINER, KC_4, KC_5, KC_6, KC_0, KC_TRNS,
- KC_ENT, M_NOT_EQL, KC_1, KC_2, KC_3, KC_TRNS, KC_TRNS,
- KC_0, KC_COMM, KC_DOT, KC_TRNS, KC_TRNS,
- KC_TRNS, DM_RSTP,
- DM_REC2,
- DM_PLY2, KC_TRNS, KC_TRNS
-),
-/* Keymap 2: Left side -> LAYER_NUM, Right side -> Shift + LAYER_BASE
- *
- * .--------------------------------------------------. .--------------------------------------------------.
- * | | | | | | <> | | | TG(1)| & | * | ( | ) | - | Bspc |
- * |--------+------+------+------+------+------+------| |------+------+------+------+------+------+--------|
- * | | F12 | F11 | F10 | F9 | {} | | | _ | J | L | U | Y | ; | \ |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | F8 | F7 | F6 | F5 | () |------| |------| H | N | E | I | O | ' |
- * |--------+------+------+------+------+------| | | } |------+------+------+------+------+--------|
- * | | F4 | F3 | F2 | F1 | [] | | | |K/RAlt| M | , |./Supe|/ RCtl| RShift |
- * '--------+------+------+------+------+-------------' '-------------+------+------+------+------+--------'
- * | MUTE | VOLD | VOLU | | | | Left | Down | Up |Right | Del |
- * '----------------------------------' '----------------------------------'
- * .-------------. .-------------.
- * | | | | Ins |ScrLck|
- * .------+------+------| |------+------+------.
- * | | |Start1| | PgUp | | |
- * | | |------| |------| Space|CapsLk|
- * | | |Play1 | | PgDn | | |
- * '--------------------' '--------------------'
- */
-[LAYER_LNUM] = LAYOUT_ergodox(
- /* left hand */
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, M_IN_ANG, KC_TRNS,
- KC_TRNS, KC_F12, KC_F11, KC_F10, KC_F9, M_IN_CBR, KC_TRNS,
- KC_TRNS, KC_F8, KC_F7, KC_F6, KC_F5, M_IN_PRN,
- KC_TRNS, KC_F4, KC_F3, KC_F2, KC_F1, M_IN_BRC, KC_TRNS,
- KC_MUTE, KC_VOLD, KC_VOLU, KC_TRNS, KC_TRNS,
-
- KC_TRNS, KC_TRNS,
- DM_REC1,
- KC_TRNS, KC_TRNS, DM_PLY1,
- /* right hand */
- TG(1), KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, S(KC_MINS), S(KC_BSPC),
- KC_UNDS, S(KC_J), S(KC_L), S(KC_U), S(KC_Y), S(KC_SCLN), S(KC_BSLS),
- S(KC_H), S(KC_N), S(KC_E), S(KC_I), S(KC_O), S(KC_QUOT),
- KC_RCBR, S(KC_K), S(KC_M), S(KC_COMM), S(KC_DOT), S(KC_SLSH), KC_RSFT,
- S(KC_LEFT), S(KC_DOWN), S(KC_UP), S(KC_RGHT), S(KC_DEL),
- S(KC_INS), S(KC_SCRL),
- S(KC_PGUP),
- S(KC_PGDN), S(KC_SPC), KC_CAPS
-),
-/* Keymap 3: Left side -> Shift + LAYER_BASE, Right side -> LAYER_NUM
- *
- * .--------------------------------------------------. .--------------------------------------------------.
- * | Grave | ! | @ | # | $ | % | ^ | | | | * | ( | ) | - | |
- * |--------+------+------+------+------+------+------| |------+------+------+------+------+------+--------|
- * | Tab | Q | W | F | P | G | = | | = | => | 7 | 8 | 9 | + | |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | Esc | A | R | S | T | D |------| |------| -> | 4 | 5 | 6 | 0 | |
- * |--------+------+------+------+------+------| { | | Enter|------+------+------+------+------+--------|
- * | LShift |Z/LCtl|X/Supe| C | V |B/RAlt| | | | != | 1 | 2 | 3 | | |
- * '--------+------+------+------+------+-------------' '-------------+------+------+------+------+--------'
- * | LCtl |Super | Alt | [ | ] | | 0 | , | . | | |
- * '----------------------------------' '----------------------------------'
- * .-------------. .-------------.
- * | Home | End | | | Stop |
- * .------+------+------| |------+------+------.
- * | | |PrnScr| |Start2| | |
- * |CapsLk| Enter|------| |------| | |
- * | | | Super| |Play2 | | |
- * '--------------------' '--------------------'
- */
-[LAYER_RNUM] = LAYOUT_ergodox(
- /* left hand */
- S(KC_GRV), KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC,
- S(KC_TAB), S(KC_Q), S(KC_W), S(KC_F), S(KC_P), S(KC_G), S(KC_EQL),
- S(KC_ESC), S(KC_A), S(KC_R), S(KC_S), S(KC_T), S(KC_D),
- KC_LSFT, S(KC_Z), S(KC_X), S(KC_C), S(KC_V), S(KC_B), KC_LCBR,
- S(KC_LCTL), S(KC_LGUI), S(KC_LALT), S(KC_LBRC), S(KC_RBRC),
-
- S(KC_HOME), S(KC_END),
- S(KC_PSCR),
- KC_CAPS, S(KC_ENT), S(KC_LGUI),
- /* right hand */
- KC_TRNS, KC_TRNS, KC_ASTR, KC_LPRN, KC_RPRN, KC_MINS, KC_TRNS,
- KC_EQL, M_LAMBDA, KC_7, KC_8, KC_9, KC_PLUS, KC_TRNS,
- M_POINER, KC_4, KC_5, KC_6, KC_0, KC_TRNS,
- KC_ENT, M_NOT_EQL, KC_1, KC_2, KC_3, KC_TRNS, KC_TRNS,
- KC_0, KC_COMM, KC_DOT, KC_TRNS, KC_TRNS,
- KC_TRNS, DM_RSTP,
- DM_REC2,
- DM_PLY2, KC_TRNS, KC_TRNS
-),
-};
-
-static bool recording_dynamic_macro;
-
-static bool process_record_dynamic_macro_wrapper(uint16_t keycode, keyrecord_t *record) {
- switch (keycode) {
- /* detect dynamic macro recording state */
- case QK_DYNAMIC_MACRO_RECORD_START_1:
- case QK_DYNAMIC_MACRO_RECORD_START_2:
- if (record->event.pressed) {
- recording_dynamic_macro = true;
- }
- break;
- case QK_DYNAMIC_MACRO_RECORD_STOP:
- if (record->event.pressed) {
- recording_dynamic_macro = false;
- }
- break;
- }
-
- if (!process_record_dynamic_macro(keycode, record)) {
- return false;
- }
-
- return true;
-}
-
-bool process_record_user(uint16_t keycode, keyrecord_t *record) {
-
- /* the purpose of the ..._wrapper is to detect START/ST0P keys to
- light the blue led during recording */
- if (!process_record_dynamic_macro_wrapper(keycode, record)) {
- return false;
- }
-
- switch (keycode) {
- /* static macro keys */
- case M_IN_CBR:
- if (record->event.pressed) {
- SEND_STRING("{}" SS_TAP(X_LEFT));
- return false;
- }
- break;
- case M_IN_PRN:
- if (record->event.pressed) {
- SEND_STRING("()" SS_TAP(X_LEFT));
- return false;
- }
- break;
- case M_IN_BRC:
- if (record->event.pressed) {
- SEND_STRING("[]" SS_TAP(X_LEFT));
- return false;
- }
- break;
- case M_IN_ANG:
- if (record->event.pressed) {
- SEND_STRING("<>" SS_TAP(X_LEFT));
- return false;
- }
- break;
- case M_POINER:
- if (record->event.pressed) {
- SEND_STRING("->");
- return false;
- }
- break;
- case M_LAMBDA:
- if (record->event.pressed) {
- SEND_STRING("=>");
- return false;
- }
- break;
- case M_NOT_EQL:
- if (record->event.pressed) {
- SEND_STRING("!=");
- return false;
- }
- break;
- case M_COL_EQL:
- if (record->event.pressed) {
- SEND_STRING(":=");
- return false;
- }
- break;
- case M_PLUS_EQL:
- if (record->event.pressed) {
- SEND_STRING("+=");
- return false;
- }
- break;
- }
-
- return true;
-}
-
-/* Runs just one time when the keyboard initializes. */
-void matrix_init_user(void) {
- ergodox_board_led_off();
- ergodox_right_led_1_off();
- ergodox_right_led_2_off();
- ergodox_right_led_3_off();
- ergodox_right_led_1_set(5);
- ergodox_right_led_2_set(5);
- ergodox_right_led_3_set(5);
-};
-
-/* Runs constantly in the background, in a loop. */
-void matrix_scan_user(void) {
- uint8_t layer = get_highest_layer(layer_state);
-
- //led 2, GREEN
- if (layer == LAYER_NUM)
- ergodox_right_led_2_on();
- else
- ergodox_right_led_2_off();
-
- //led 3, BLUE
- if (recording_dynamic_macro)
- ergodox_right_led_3_on();
- else
- ergodox_right_led_3_off();
-};
-
-// Runs constantly in the background, in a loop.
-bool led_update_user(led_t led_state) {
- if (led_state.caps_lock)
- ergodox_right_led_1_on();
- else
- ergodox_right_led_1_off();
- return false;
-}
diff --git a/layouts/community/ergodox/colemak_code_friendly/readme.md b/layouts/community/ergodox/colemak_code_friendly/readme.md
deleted file mode 100644
index 1135d153a4..0000000000
--- a/layouts/community/ergodox/colemak_code_friendly/readme.md
+++ /dev/null
@@ -1,106 +0,0 @@
-# ErgoDox EZ Code Friendly Colemak Layout
-
- _This layout was inspired by qwerty_code_friendly layout._
-
- Having all the symbols accessible without modifiers is a good improvement for coding.
-
- There are only two layouts which is easy to memorize.
-
- There are two _"Super shifts"_, LNUM and RNUM, placed on the most convenient physical keys. Each of them act as shift for the opposite side of the keyboard, and as a modifier key for the current side (usage similar to AltGr in many national layouts). This is achieved by duplicating the corresponding parts of Layer 0 and 1 into Layer 3 and 4. As a bonus, pressing both keys toggles Caps-Lock.
-
- The numerical keypad is composed from regular number keys, works even in macOS.
-
-## Keymap 0: Basic layer
-
-```
-.--------------------------------------------------. .--------------------------------------------------.
-| Grave | ! | @ | # | $ | % | ^ | | TG(1)| & | * | ( | ) | - | Bspc |
-|--------+------+------+------+------+------+------| |------+------+------+------+------+------+--------|
-| Tab | Q | W | F | P | G | = | | _ | J | L | U | Y | ; | \ |
-|--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
-| Esc | A | R | S | T | D |------| |------| H | N | E | I | O | ' |
-|--------+------+------+------+------+------| { | | } |------+------+------+------+------+--------|
-| LShift |Z/LCtl|X/Supe| C | V |B/RAlt| | | |K/RAlt| M | , |./Supe|/ RCtl| RShift |
-'--------+------+------+------+------+-------------' '-------------+------+------+------+------+--------'
- | LCtl |Super | Alt | [ | ] | | Left | Down | Up |Right | Del |
- '----------------------------------' '----------------------------------'
- .-------------. .-------------.
- | Home | End | | Ins |ScrLck|
- .------+------+------| |------+------+------.
- | | |PrnScr| | PgUp | | |
- | LNUM | Enter|------| |------| Space| RNUM |
- | | | Super| | PgDn | | |
- '--------------------' '--------------------'
-```
-
-## Keymap 1: Numbers, Macro Record
-
-
-```
-.--------------------------------------------------. .--------------------------------------------------.
-| | | | | | <> | | | | | * | ( | ) | - | |
-|--------+------+------+------+------+------+------| |------+------+------+------+------+------+--------|
-| | F12 | F11 | F10 | F9 | {} | | | = | => | 7 | 8 | 9 | + | |
-|--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
-| | F8 | F7 | F6 | F5 | () |------| |------| -> | 4 | 5 | 6 | 0 | |
-|--------+------+------+------+------+------| | | Enter|------+------+------+------+------+--------|
-| | F4 | F3 | F2 | F1 | [] | | | | != | 1 | 2 | 3 | | |
-'--------+------+------+------+------+-------------' '-------------+------+------+------+------+--------'
- | MUTE | VOLD | VOLU | | | | 0 | , | . | | |
- '----------------------------------' '----------------------------------'
- .-------------. .-------------.
- | | | | | Stop |
- .------+------+------| |------+------+------.
- | | |Start1| |Start2| | |
- | | |------| |------| | |
- | | |Play1 | |Play2 | | |
- '--------------------' '--------------------'
-```
-
-## Keymap 2: Left side -> LAYER_NUM, Right side -> Shift + LAYER_BASE
-
-
-```
-.--------------------------------------------------. .--------------------------------------------------.
-| | | | | | <> | | | TG(1)| & | * | ( | ) | - | Bspc |
-|--------+------+------+------+------+------+------| |------+------+------+------+------+------+--------|
-| | F12 | F11 | F10 | F9 | {} | | | _ | J | L | U | Y | ; | \ |
-|--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
-| | F8 | F7 | F6 | F5 | () |------| |------| H | N | E | I | O | ' |
-|--------+------+------+------+------+------| | | } |------+------+------+------+------+--------|
-| | F4 | F3 | F2 | F1 | [] | | | |K/RAlt| M | , |./Supe|/ RCtl| RShift |
-'--------+------+------+------+------+-------------' '-------------+------+------+------+------+--------'
- | MUTE | VOLD | VOLU | | | | Left | Down | Up |Right | Del |
- '----------------------------------' '----------------------------------'
- .-------------. .-------------.
- | | | | Ins |ScrLck|
- .------+------+------| |------+------+------.
- | | |Start1| | PgUp | | |
- | | |------| |------| Space|CapsLk|
- | | |Play1 | | PgDn | | |
- '--------------------' '--------------------'
-```
-
-## Keymap 3: Left side -> Shift + LAYER_BASE, Right side -> LAYER_NUM
-
-
-```
-.--------------------------------------------------. .--------------------------------------------------.
-| Grave | ! | @ | # | $ | % | ^ | | | | * | ( | ) | - | |
-|--------+------+------+------+------+------+------| |------+------+------+------+------+------+--------|
-| Tab | Q | W | F | P | G | = | | = | => | 7 | 8 | 9 | + | |
-|--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
-| Esc | A | R | S | T | D |------| |------| -> | 4 | 5 | 6 | 0 | |
-|--------+------+------+------+------+------| { | | Enter|------+------+------+------+------+--------|
-| LShift |Z/LCtl|X/Supe| C | V |B/RAlt| | | | != | 1 | 2 | 3 | | |
-'--------+------+------+------+------+-------------' '-------------+------+------+------+------+--------'
- | LCtl |Super | Alt | [ | ] | | 0 | , | . | | |
- '----------------------------------' '----------------------------------'
- .-------------. .-------------.
- | Home | End | | | Stop |
- .------+------+------| |------+------+------.
- | | |PrnScr| |Start2| | |
- |CapsLk| Enter|------| |------| | |
- | | | Super| |Play2 | | |
- '--------------------' '--------------------'
-```
diff --git a/layouts/community/ergodox/colemak_code_friendly/rules.mk b/layouts/community/ergodox/colemak_code_friendly/rules.mk
deleted file mode 100644
index ee89b5486e..0000000000
--- a/layouts/community/ergodox/colemak_code_friendly/rules.mk
+++ /dev/null
@@ -1,7 +0,0 @@
-COMMAND_ENABLE = no
-BOOTMAGIC_ENABLE = no # Enable Bootmagic Lite
-MOUSEKEY_ENABLE = no
-CONSOLE_ENABLE = no
-RGBLIGHT_ENABLE = no
-LEADER_ENABLE = no
-MIDI_ENABLE = no
diff --git a/layouts/community/ergodox/colemak_osx_pc_no/keymap.c b/layouts/community/ergodox/colemak_osx_pc_no/keymap.c
deleted file mode 100644
index b9986e0e9d..0000000000
--- a/layouts/community/ergodox/colemak_osx_pc_no/keymap.c
+++ /dev/null
@@ -1,285 +0,0 @@
-#include QMK_KEYBOARD_H
-#include "debug.h"
-#include "action_layer.h"
-#include "keymap_norwegian.h"
-
-#define BASE 0 // default layer
-#define BASE_MAC 1 // default layer mac
-#define NUMB_SYMB 2 // numbers and symbols
-#define NUMB_SYMB_MAC 3 // numbers and symbols mac
-#define FUNCTION 4 // function keys
-
-enum custom_keycodes {
- TILDE_NO = SAFE_RANGE,
- LESS_NO,
- GRTR_NO,
- CIRC_NO,
- ACUT_NO,
- GRV_NO,
- LESS_NO_MAC,
- GRTR_NO_MAC,
- ACUT_NO_MAC
-};
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
-/* Keymap 0: Basic layer PC
- *
- * ,--------------------------------------------------. ,--------------------------------------------------.
- * | \ | [ | ] | { | } | * |Mac/PC| | ^ | $ | ( | ) | < | > | @ |
- * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | ? | Q | W | F | P | G | " | | ' | J | L | U | Y | Å | Æ |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | : | A | R | S | T | D |------| |------| H | N | E | I | O | Ø |
- * |--------+------+------+------+------+------| ; | | = |------+------+------+------+------+--------|
- * | ! | Z | X | C | V | B | | | | K | M | RIGHT| DOWN | UP | _ |
- * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * | Func | Lclk | Rclk | TAB |,/CTRL| | LEFT | Esc | ` | # | Num |
- * `----------------------------------' `----------------------------------'
- * ,-------------. ,--------------.
- * | & | | | |Insert| / |
- * ,------|------|------| |------+-------+------.
- * | | | + | | Del | | |
- * | Shift| ./Spc|------| |------| Enter |Space|
- * | | |-/Alt | | Bspc | | |
- * `--------------------' `---------------------'
- */
-[BASE] = LAYOUT_ergodox(
- // left hand
- NO_BSLS, NO_LBRC, NO_RBRC, NO_LCBR, NO_RCBR, NO_ASTR, TG(1),
- NO_QUES, KC_Q, KC_W, KC_F, KC_P, KC_G, NO_DQUO,
- NO_COLN, KC_A, KC_R, KC_S, KC_T, KC_D,
- KC_EXLM, KC_Z, KC_X, KC_C, KC_V, KC_B, NO_SCLN,
- MO(4), KC_BTN1, KC_BTN2, KC_TAB,GUI_T(KC_COMMA),
- NO_AMPR, NO_PIPE,
- NO_PLUS,
- OSM(MOD_LSFT),CTL_T(KC_DOT),ALT_T(NO_MINS),
- // right hand
- CIRC_NO, NO_DLR, NO_LPRN, NO_RPRN ,LESS_NO, GRTR_NO,NO_AT,
- NO_QUOT, KC_J, KC_L, KC_U, KC_Y, NO_ARNG, NO_AE ,
- KC_H, KC_N, KC_E, KC_I, KC_O, NO_OSTR,
- NO_EQL, KC_K, KC_M, KC_RIGHT, KC_DOWN, KC_UP, NO_UNDS,
- KC_LEFT, KC_ESC, GRV_NO, KC_HASH, MO(2),
- KC_INSERT, NO_SLSH,
- KC_DEL,
- KC_BSPC,KC_ENT,KC_SPC
- ),
-/* Keymap 1: Basic layer MACS (Same as pc, except for cmd/ctrl, which are swapped)
- *
- * ,--------------------------------------------------. ,--------------------------------------------------.
- * | \ | | | { | } | | | | | $ | | | < | > | @ |
- * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | | | | | | | | | | | | | | | |
- * |--------+------+------+------+------+------| | | ' |------+------+------+------+------+--------|
- * | | | | | | |------| |------| | | | | | |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | | | | | | | | | | | | | | |
- * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * | Func | | | |,/Ctrl| | | | ` | | Num |
- * `----------------------------------' `----------------------------------'
- * ,-------------. ,-------------.
- * | | | | | | |
- * ,------|------|------| |------+------+------.
- * | | | | | | | |
- * | |./Cmd |------| |------| | |
- * | | | | | | | |
- * `--------------------' `--------------------'
- */
-[BASE_MAC] = LAYOUT_ergodox(
- S(ALGR(NO_7)), KC_TRNS,KC_TRNS, S(ALGR(NO_8)),S(ALGR(NO_9)), KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS , KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, CTL_T(KC_COMMA),
- KC_TRNS, ALGR(NO_7),
- KC_TRNS,
- KC_TRNS,GUI_T(KC_DOT) , KC_TRNS,
- // right hand
- KC_TRNS, S(NO_4), KC_TRNS,KC_TRNS,LESS_NO_MAC, GRTR_NO_MAC,NO_QUOT,
- NO_LABK, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, ALGR(NO_BSLS), KC_TRNS, MO(3),
- KC_TRNS, KC_TRNS,
- KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS
-),
-
-/* Keymap 2: Number ++ layer pc
- *
- * ,--------------------------------------------------. ,--------------------------------------------------.
- * | | | | | | | | | | | | | | | |
- * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | | | | | % | | | | | | ~ | ´ | | | |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | 3 | 2 | 1 | 0 | |------| |------| | 5 | 6 | 7 | 8 | |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | | | | 4 | | | | | | 9 | END | PGDWN| PGUP | |
- * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * | | | | | | | HOME | | | | |
- * `----------------------------------' `----------------------------------'
- * ,-------------. ,-------------.
- * | | | | | |
- * ,------|------|------| |------+------+------.
- * | | | | | | | |
- * | | |------| |------| | |
- * | | | | | | | |
- * `--------------------' `--------------------'
- */
-[NUMB_SYMB] = LAYOUT_ergodox(
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS,KC_PERC, KC_TRNS , KC_TRNS,
- KC_TRNS, KC_3 , KC_2 , KC_1 , KC_0 , KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_4, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS,
- KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS,
- // right hand
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, TILDE_NO, ACUT_NO , KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_5, KC_6, KC_7, KC_8, KC_TRNS,
- KC_TRNS, KC_HOME, KC_9, KC_END, KC_PGDN, KC_PGUP, KC_TRNS,
- KC_HOME, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS,
- KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS
-),
-
-/* Keymap 3: Number ++ layer mac. Some keys have to be repeated from the pc symbol layer, since transient keys inherit from the layer we jump from, not the layer above.
- *
- * ,--------------------------------------------------. ,--------------------------------------------------.
- * | | | | | | | | | | | | | | | |
- * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | | | | | % | | | | | | ~ | ´ | | | |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | 3 | 2 | 1 | 0 | |------| |------| | 5 | 6 | 7 | 8 | |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | | | | 4 | | | | | | 9 | END | PGDWN| PGUP | |
- * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * | | | | | | | HOME | | | | |
- * `----------------------------------' `----------------------------------'
- * ,-------------. ,-------------.
- * | | | | | |
- * ,------|------|------| |------+------+------.
- * | | | | | | | |
- * | | |------| |------| | |
- * | | | | | | | |
- * `--------------------' `--------------------'
- */
-[NUMB_SYMB_MAC] = LAYOUT_ergodox(
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS,KC_PERC, KC_TRNS , KC_TRNS,
- KC_TRNS, KC_3 , KC_2 , KC_1 , KC_0 , KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_4, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS,
- KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS,
- // right hand
- KC_TRNS, KC_TRNS, KC_TRNS , KC_TRNS, KC_TRNS , KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, TILDE_NO, ACUT_NO_MAC, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_5, KC_6, KC_7, KC_8, KC_TRNS,
- KC_TRNS, KC_HOME, KC_9, KC_END, KC_PGDN, KC_PGUP, KC_TRNS,
- KC_HOME, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS,
- KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS
-),
-
-/* Keymap 4: Function layer mac + pc
- *
- * ,--------------------------------------------------. ,--------------------------------------------------.
- * | | | | | | | | | | | | | | | |
- * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | | | | | | | | | | | | | | | |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | F3 | F2 | F1 | | |------| |------| | F5 | F6 | F7 | F8 | |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | | | | F4 | | | | | | F9 | F10 | F11 | F12 | |
- * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * | | | | | | | | | | | |
- * `----------------------------------' `----------------------------------'
- * ,-------------. ,-------------.
- * | | | | | |
- * ,------|------|------| |------+------+------.
- * | | | | | | | |
- * | | |------| |------| | |
- * | | | | | | | |
- * `--------------------' `--------------------'
- */
-[FUNCTION] = LAYOUT_ergodox(
- KC_5, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS , KC_TRNS,
- KC_TRNS, KC_F3 , KC_F2 , KC_F1 , KC_TRNS , KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_F4, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS,
- KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS,
- // right hand
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_F5, KC_F6, KC_F7, KC_F8, KC_TRNS,
- KC_TRNS, NO_TILD, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS,
- KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS
-)
-};
-
-bool process_record_user(uint16_t keycode, keyrecord_t *record) {
- switch (keycode) {
- case TILDE_NO:
- if (record->event.pressed) {
- tap_code16(ALGR(KC_RBRC));
- tap_code(KC_SPC);
- }
- return false;
- case LESS_NO:
- if (record->event.pressed) {
- tap_code(KC_NUBS);
- }
- return false;
- case GRTR_NO:
- if (record->event.pressed) {
- tap_code16(S(KC_NUBS));
- }
- return false;
- case CIRC_NO:
- if (record->event.pressed) {
- tap_code16(S(KC_RBRC));
- tap_code(KC_SPC);
- }
- return false;
- case ACUT_NO:
- if (record->event.pressed) {
- tap_code16(ALGR(KC_EQL));
- tap_code(KC_SPC);
- }
- return false;
- case GRV_NO:
- if (record->event.pressed) {
- SEND_STRING(SS_LSFT("= "));
- }
- return false;
- case LESS_NO_MAC:
- if (record->event.pressed) {
- tap_code(KC_GRV);
- }
- return false;
- case GRTR_NO_MAC:
- if (record->event.pressed) {
- tap_code16(S(KC_GRV));
- }
- return false;
- case ACUT_NO_MAC:
- if (record->event.pressed) {
- tap_code(KC_EQL);
- tap_code(KC_SPC);
- }
- return false;
- }
- return true;
-}
diff --git a/layouts/community/ergodox/colemak_osx_pc_no/readme.md b/layouts/community/ergodox/colemak_osx_pc_no/readme.md
deleted file mode 100644
index b28483f391..0000000000
--- a/layouts/community/ergodox/colemak_osx_pc_no/readme.md
+++ /dev/null
@@ -1,23 +0,0 @@
-# Norwegian Colemak setup with osx/pc toggle
-
-## Motivation
-I wanted a Norwegian Colemak setup that worked in a similar way on both my Mac and PC. I also wanted it to translate from a standard Norwegian keyboard OS setup.
-
-## Overview
-The setup is created to be programmer friendly.
-- Most of the symbols used in code can be activated without using layers or shift key.
-- You can reach the IDE/OS shortcut activators(Ctrl, Win/Cmd, Alt, Shift) with the thumb.
-- Navigation is prioritized, arrows are right below the home row.
-
-## PC/Mac toggle
-The default setup is for Norwegian keyboard setting(not colemak variants) on a PC(Windows or Linux). Use the Mac/PC toggle button to switch between OSX and PC setup. The settings will be reverted to PC setup each time you restart/connect the keyboard.
-
-## Layers
-Numbers and function buttons are on their own layers. The easiest way to switch layers(at least with my hands) in this setup, is to push your hand right below the little finger, on the layer switches. You will then have all your fingers free to type numbers or press function buttons.
-
-## Shift-key
-Tap for the next character to be shifted, hold down for regular shift functionality
-
-## Layout
-
-![keyboard-layout](https://i.imgur.com/168aGmR.png)
diff --git a/layouts/community/ergodox/colemak_programmer/keymap.c b/layouts/community/ergodox/colemak_programmer/keymap.c
deleted file mode 100644
index 2f053f9b7a..0000000000
--- a/layouts/community/ergodox/colemak_programmer/keymap.c
+++ /dev/null
@@ -1,256 +0,0 @@
-#include QMK_KEYBOARD_H
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-/* Keymap 0: Basic layer
- * MEH: Alt+Control+Shift
- * HYPER: Alt+Control+Shift+Gui
- * ,--------------------------------------------------. ,--------------------------------------------------.
- * | ` ~ | 1 ! | 2 @ | 3 # | 4 $ | 5 % | 6 ^ | | 7 & | 8 * | 9 ( | 0 ) | - _ | = + | Backsp |
- * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | TAB | Q | W | F | P | G |TG(3) | |TG(4) | J | L | U | Y | ; : | ' " |
- * |--------+------+------+------+------+------|F-lck | |N-lck |------+------+------+------+------+--------|
- * | CAPS | A | R | S | T | D |------| |------| H | N | E | I | O | ENT |
- * |--------+------+------+------+------+------| MEH | | MEH |------+------+------+------+------+--------|
- * | Shift | Z | X | C | V | B | | | | K | M | , < | . > | UP | Shift |
- * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * | LCTL | LCTL | LGUI | LALT | LGUI | | RALT | RCTL | LEFT | DOWN | RIGHT|
- * `----------------------------------' `----------------------------------'
- * ,--------------. ,--------------.
- * | Esc | App | | Ins | Del |
- * ,------|------|-------| |------+-------+------.
- * | | | Home | | PgUp | | |
- * | MO(2)| MO(4)|-------| |------| Space |Space |
- * |symbol|N-Lock| End | | PgDn | | |
- * `---------------------' `---------------------'
- */
-[0] = LAYOUT_ergodox( // layer 0 : default
- // left hand
- KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6,
- KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, TG(3),
- KC_CAPS, KC_A, KC_R, KC_S, KC_T, KC_D,
- KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_MEH,
- KC_LCTL, KC_LCTL, KC_LGUI, KC_LALT, KC_LGUI,
-
- KC_ESC, KC_APP,
- KC_HOME,
- MO(2), MO(4), KC_END,
-
- // right hand
- KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC,
- TG(4), KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_QUOT,
- KC_H, KC_N, KC_E, KC_I, KC_O, KC_ENT,
- KC_MEH, KC_K, KC_M, KC_COMM, KC_DOT, KC_UP, KC_RSFT,
- KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT,
-
- KC_INS, KC_DEL,
- KC_PGUP,
- KC_PGDN, KC_SPC, KC_SPC
- ),
-
-/* Keymap 1: QWERTY layer (games)
- *
- * ,--------------------------------------------------. ,--------------------------------------------------.
- * | | | | | | | | | | | | | | | |
- * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | | Q | W | E | R | T | | | | Y | U | I | O | P | |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | A | S | D | F | G |------| |------| H | J | K | L | ; | |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | Z | X | C | V | B | | | | N | M | | | | |
- * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * | | | | | | | | | | | |
- * `----------------------------------' `----------------------------------'
- * ,-------------. ,-------------.
- * | | | | | |
- * ,------|------|------| |------+--------+------.
- * | | | | | | | |
- * | | |------| |------| | |
- * | | | | | | | |
- * `--------------------' `----------------------'
- */
-[1] = LAYOUT_ergodox( // layer 1: QWERTY layer (games)
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_TRNS,
- KC_TRNS, KC_A, KC_S, KC_D, KC_F, KC_G,
- KC_TRNS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
-
- KC_TRNS, KC_TRNS,
- KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS,
-
- // right hand
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_TRNS,
- KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_TRNS,
- KC_TRNS, KC_N, KC_M, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS,
- KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS
- ),
-
-/* Keymap 2: Symbol Layer
-*
-* ,--------------------------------------------------. ,--------------------------------------------------.
-* | | F1 | F2 | F3 | F4 | F5 | F6 | | F7 | F8 | F9 | F10 | F11 | F12 | |
-* |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
-* | | | | + | < | % | # | DF(1)| | | & | [ | ] | \ | : | " |
-* |--------+------+------+------+------+------|QWERTY| | |------+------+------+------+------+--------|
-* | | ! | - | > | = | @ |------| |------| * | { | } | / | ? | |
-* |--------+------+------+------+------+------| DF(0)| | |------+------+------+------+------+--------|
-* | | NUBS | NUHS | / | $ | ^ |COLEMAK | | | | ( | ) | | | |
-* `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
-* | | | | | | | | | | | |
-* `----------------------------------' `----------------------------------'
-* ,-------------. ,-------------.
-* | | | | | |
-* ,------|------|------| |------+------+------.
-* | | | | | | | |
-* | | |------| |------| | |
-* | | | | | | | |
-* `--------------------' `--------------------'
-*/
-// SYMBOLS
-[2] = LAYOUT_ergodox(
- // left hand
- KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6,
- KC_TRNS, KC_PIPE, KC_PLUS, KC_LT, KC_PERC, KC_HASH, DF(1),
- KC_LBRC, KC_EXCLAIM, KC_MINUS, KC_GT, KC_EQUAL, KC_AT,
- KC_TRNS, KC_NUBS, KC_NUHS, KC_SLSH, KC_DOLLAR, KC_CIRC, DF(0),
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
-
- KC_TRNS, KC_TRNS,
- KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS,
-
- // right hand
- KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS,
- KC_TRNS, KC_AMPERSAND, KC_LBRC, KC_RBRC, KC_BSLS, KC_COLN, KC_DQT,
- KC_ASTERISK, KC_LCBR, KC_RCBR, KC_SLSH, KC_QUES, KC_TRNS,
- KC_TRNS, KC_PIPE, KC_LPRN, KC_RPRN, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
-
- KC_TRNS, KC_TRNS,
- KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS
-),
-
-/* Keymap 3:
- *
- * ,--------------------------------------------------. ,--------------------------------------------------.
- * | | F1 | F2 | F3 | F4 | F5 | F6 | | F7 | F8 | F9 | F10 | F11 | F12 | |
- * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | | | | | | | | | | | | | | | |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | | | | | |------| |------| | | | | | |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | | | | | | HYPR | | HYPR | | | | | | |
- * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * | | | | | | | | | | | |
- * `----------------------------------' `----------------------------------'
- * ,-------------. ,-------------.
- * | | | | | |
- * ,------|------|------| |------+------+------.
- * | | | | | | | |
- * | | |------ |------| | |
- * | | | | | | | |
- * `--------------------' `--------------------'
- */
-// F-keys
-[3] = LAYOUT_ergodox(
- KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HYPR,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
-
- KC_TRNS, KC_TRNS,
- KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS,
-
- // right hand
- KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_HYPR, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
-
- KC_TRNS, KC_TRNS,
- KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS
-),
-/* Keymap 4: Numlock
- *
- * ,--------------------------------------------------. ,--------------------------------------------------.
- * | QK_BOOT | | | |P-SCRE|S-LOCK|PAUSE | |NLOCK | CALC | = | / | * | | |
- * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | | | | | | | | | | Vol+ | 7 | 8 | 9 | - | |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | | | | | |------| |------| Vol- | 4 | 5 | 6 | + | |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | | | | | | HYPR | | HYPR | Mute | 1 | 2 | 3 |Enter | |
- * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * | | | | | | | | 0 | . | RCTL | RCTL |
- * `----------------------------------' `----------------------------------'
- * ,-------------. ,-------------.
- * | | | | | |
- * ,------|------|------| |------+------+------.
- * | | | | | | | |
- * | | |------ |------| | |
- * | | | | | | | |
- * `--------------------' `--------------------'
- */
-[4] = LAYOUT_ergodox(
- QK_BOOT, KC_LSFT, KC_LSFT, KC_SYRQ, KC_PSCR, KC_SCRL, KC_PAUSE,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HYPR,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
-
- KC_TRNS, KC_TRNS,
- KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS,
-
- // right hand
- KC_NUM, KC_CALC, KC_PEQL, KC_PSLS, KC_PAST, KC_LSFT, KC_TRNS,
- KC_TRNS, KC_VOLU, KC_P7, KC_P8, KC_P9, KC_PMNS, KC_TRNS,
- KC_VOLD, KC_P4, KC_P5, KC_P6, KC_PPLS, KC_TRNS,
- KC_HYPR, KC_MUTE, KC_P1, KC_P2, KC_P3, KC_PENT, KC_TRNS,
- KC_TRNS, KC_P0, KC_PDOT, KC_RCTL, KC_RCTL,
-
- KC_TRNS, KC_TRNS,
- KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS
-),
-
-};
-
-
-// Runs constantly in the background, in a loop.
-void matrix_scan_user(void) {
- static uint8_t state;
-
- ergodox_board_led_off();
- ergodox_right_led_1_off();
- ergodox_right_led_2_off();
- ergodox_right_led_3_off();
-
- //reduce LED on time to 1/6th because LEDs are too strong
- if (++state < 6) return;
- state = 0;
-
- //bit 1: default layer 1 - QWERTY
- if (default_layer_state & (1UL << 1)) ergodox_right_led_1_on();
-
- uint8_t layer = get_highest_layer(layer_state);
-
- //layer 2 : Symbols (& Fs)
- //if (layer == 2) ergodox_right_led_2_on();
-
- //layer 3 : F-lock
- if (layer == 3) ergodox_right_led_2_on();
-
- //layer 4 : Num-lock
- if (layer == 4) ergodox_right_led_3_on();
-};
diff --git a/layouts/community/ergodox/colemak_programmer/readme.md b/layouts/community/ergodox/colemak_programmer/readme.md
deleted file mode 100644
index a1544dcc56..0000000000
--- a/layouts/community/ergodox/colemak_programmer/readme.md
+++ /dev/null
@@ -1,23 +0,0 @@
-# ErgoDox EZ colemak_programmer
-
-## Features
-
-* Qwerty and colemak 2 in 1
- * Use DF() macro to swap the bottom layer so it behaves literally as collemak or qwerty
- * Graphical creator did not allow this so I had to use TO(0) and TO(1) on the picture
-* Symbol layer programmers friendly
- * Not only symbols are easy to access but common combination are easy too: ->, =>, !=, etc.
-* Windows and Mac
- * The extra repeated Win key is very handy on Mac
-* Numlock
-
-I came to this layout after several iterations. It is not the ultimate best ergonomic layout but it is the best if you switch back and forth between ergodox and laptops.
-
-## Notes
-* The Quote and Enter can be swapped
-* If you use sculpted key caps try turning the bottom key 180 degrees so it became very comfortable to type with thumb.
-
-Alternatively view the [graphical creator version](http://configure.ergodox-ez.com/keyboard_layouts/kmevwm/edit) but beware it is not the same due to the creator limitations.
-
-![Default](https://i.imgur.com/BCJEoKw.jpg)
-![Default](https://i.imgur.com/0P1jBph.jpg) \ No newline at end of file
diff --git a/layouts/community/ergodox/colemak_programmer/rules.mk b/layouts/community/ergodox/colemak_programmer/rules.mk
deleted file mode 100644
index 91b77c77ab..0000000000
--- a/layouts/community/ergodox/colemak_programmer/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-TAP_DANCE_ENABLE = no \ No newline at end of file
diff --git a/layouts/community/ergodox/dave/keymap.c b/layouts/community/ergodox/dave/keymap.c
deleted file mode 100644
index 19ab66545c..0000000000
--- a/layouts/community/ergodox/dave/keymap.c
+++ /dev/null
@@ -1,174 +0,0 @@
-#include QMK_KEYBOARD_H
-#include "debug.h"
-#include "action_layer.h"
-
-#define BASE 0 // default layer
-#define PROG 1 // programming
-#define NAVI 2 // navigation
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-/* Keymap 0: Basic layer
- *
- * ,--------------------------------------------------. ,--------------------------------------------------.
- * | Esc | 1 | 2 | 3 | 4 | 5 | 6 | | 6 | 7 | 8 | 9 | 0 | - | BkSpce |
- * |--------+------+------+------+------+------+------| |------+------+------+------+------+------+--------|
- * | Tab | Q | W | E | R | T | Y | | G | Y | U | I | O | P | Enter |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | LCtrl | A | S | D | F | G |------| |------| H | J | K | L | ; | Enter |
- * |--------+------+------+------+------+------| H | | B |------+------+------+------+------+--------|
- * | LShift | Z | X | C | V | B | | | | N | M | , | . | / | RShift |
- * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * |`/Ctrl| \ | | | LAlt | | RAlt | [ | ] | |'/Ctrl|
- * `----------------------------------' `----------------------------------'
- * ,-------------. ,-------------.
- * | PrtS | PrtS | | CtAl | CtAl |
- * ,------+------+------| |------+------+------.
- * | | | L1 | | L1 | | |
- * | Spce | ~L2 +------| |------+ ~L1 | Spce |
- * | | | LGui | | RGui | | |
- * `--------------------' `--------------------'
- */
-// If it accepts an argument (i.e, is a function), it doesn't need KC_.
-// Otherwise, it needs KC_*
-[BASE] = LAYOUT_ergodox( // layer 0 : default
- // left hand
- KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6,
- KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y,
- KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G,
- KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_H,
- CTL_T(KC_GRV),KC_NUBS,KC_NO, KC_NO, KC_LALT,
- KC_PSCR, KC_PSCR,
- TO(PROG),
- KC_SPC, MO(NAVI), KC_LGUI,
- // right hand
- KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_BSPC,
- KC_G, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_ENTER,
- KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_ENTER,
- KC_B, KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH, KC_RSFT,
- KC_RALT,KC_LBRC,KC_RBRC,KC_NO, CTL_T(KC_QUOT),
- MT(0x5, KC_NO), MT(0x5, KC_NO),
- TO(PROG),
- KC_RGUI, MO(PROG), KC_SPC
- ),
-
-/* Keymap 1: Symbol Layer
- *
- * ,--------------------------------------------------. ,--------------------------------------------------.
- * | | | | | | | | | | | | K/ | K* | K- | = |
- * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | | ! | @ | ( | ) | | | | | | | K7 | K8 | K9 | K+ | # |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | # | $ | { | } | ` |------| |------| | K4 | K5 | K6 | K+ | ' |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | % | ^ | [ | ] | ~ | | | | | K1 | K2 | K3 | K= | |
- * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * | | | | | | | K0 | K0 | K. | K= | |
- * `----------------------------------' `----------------------------------'
- * ,-------------. ,-------------.
- * | | | | | |
- * ,------|------|------| |------+------+------.
- * | | | L2 | | L2 | | |
- * | | |------| |------| | |
- * | | | | | | | |
- * `--------------------' `--------------------'
- */
-// PROGRAMMING
-[PROG] = LAYOUT_ergodox(
- // left hand
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_EXLM, KC_AT, KC_LCBR, KC_RCBR, KC_PIPE, KC_TRNS,
- KC_TRNS, KC_HASH, KC_DLR, KC_LPRN, KC_RPRN, KC_GRV,
- KC_TRNS, KC_PERC, KC_CIRC, KC_LBRC, KC_RBRC, KC_TILD, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS,
- TO(NAVI),
- KC_TRNS, KC_TRNS, KC_TRNS,
- // right hand
- KC_TRNS, KC_TRNS, KC_NO, KC_PSLS, KC_PAST, KC_PMNS, KC_EQUAL,
- KC_TRNS, KC_TRNS, KC_P7, KC_P8, KC_P9, KC_PPLS, KC_NUHS,
- KC_TRNS, KC_P4, KC_P5, KC_P6, KC_PPLS, KC_QUOT,
- KC_TRNS, KC_TRNS, KC_P1, KC_P2, KC_P3, KC_PENT, KC_TRNS,
- KC_P0, KC_P0, KC_PDOT, KC_PENT, KC_TRNS,
- KC_TRNS, KC_TRNS,
- TO(NAVI),
- KC_TRNS, KC_TRNS, KC_TRNS
-),
-
-/* Keymap 2: Navigation and system keys
- *
- * ,--------------------------------------------------. ,--------------------------------------------------.
- * | | F1 | F2 | F3 | F4 | F5 | F6 | | F7 | F8 | F9 | F10 | F11 | F12 | |
- * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | | Home | Up | End | Ins | PgUp | | | | | | Ins | | | |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | Left | Down | Rght | Del | PgDn |------| |------| | Back | Del | Fwrd | | |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | Lclk | MsUp | Rclk | | | | | | | Prev | Play | Next | | |
- * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * | | MsLt | MsDn | MsRt | | |VolDn | Mute |VolUp | | |
- * `----------------------------------' `----------------------------------'
- * ,-------------. ,-------------.
- * | | | | | |
- * ,------|------|------| |------+------+------.
- * | | | L0 | | L0 | | |
- * | | |------| |------| | |
- * | | | | | | | |
- * `--------------------' `--------------------'
- */
-// NAVIGATION
-[NAVI] = LAYOUT_ergodox(
- KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6,
- KC_TRNS, KC_HOME, KC_UP, KC_END, KC_INS, KC_PGUP, KC_TRNS,
- KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_DEL, KC_PGDN,
- KC_TRNS, KC_BTN1, KC_MS_U, KC_BTN2, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_R, KC_TRNS,
- KC_TRNS, KC_TRNS,
- TO(BASE),
- KC_TRNS, KC_TRNS, KC_TRNS,
- // right hand
- KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_INS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_WBAK, KC_DEL, KC_WFWD, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_MPRV, KC_MPLY, KC_MNXT, KC_TRNS, KC_TRNS,
- KC_VOLD, KC_MUTE, KC_VOLU, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS,
- TO(BASE),
- KC_TRNS, KC_TRNS, KC_TRNS
-),
-};
-
-// Runs constantly in the background, in a loop.
-void matrix_scan_user(void) {
- /* leds is a static array holding the current brightness of each of the
- * three keyboard LEDs. It's 4 long simply to avoid the ugliness of +1s and
- * -1s in the code below, and because wasting a byte really doesn't matter
- * that much (no, it *doesn't*, stop whinging!). Note that because it's
- * static it'll maintain state across invocations of this routine.
- */
- static uint8_t leds[4];
- uint8_t led;
- uint8_t layer = get_highest_layer(layer_state);
-
- ergodox_board_led_off();
-
- /* Loop over each LED/layer */
- for (led = 1; led <= 3; ++led) {
- /* If the current layer matches the current LED, increment its
- * brightness by 1 up to a maximum of 255. If the current layer doesn't
- * match, decrement its brightness by 1 down to a minimum of zero.
- */
- leds[led] += (layer == led) ?
- (leds[led] < 255 ? 1 : 0):
- (leds[led] > 0 ? -1 : 0);
- /* Set LED state according to the new brightness */
- if (leds[led]) {
- ergodox_right_led_on(led);
- ergodox_right_led_set(led, leds[led]);
- }
- else {
- ergodox_right_led_off(led);
- }
- }
-
-
-};
diff --git a/layouts/community/ergodox/dave/readme.md b/layouts/community/ergodox/dave/readme.md
deleted file mode 100644
index aa0f9bd192..0000000000
--- a/layouts/community/ergodox/dave/readme.md
+++ /dev/null
@@ -1,38 +0,0 @@
-This keymap is my preferred layout (after a certain amount of experimentation).
-The rationale behind the design is as follows:
-
-I grew up typing from a very early age and thus never learned the "correct" way
-to touch type (essentially, I'm self-taught). As a, result my fingers don't
-tend to stay on the "home keys" and occasionally my right hand wants to type
-keys that are on the left of the keyboard, and vice versa.
-
-Hence, despite liking the idea of split keyboards in principle, I've never been
-able to get on with them because the split simply doesn't work with my style of
-typing. The Ergodox solves this neatly by virtue of having a few extra keys in
-the "middle" of the keyboard which I can utilise for deliberate redundancy.
-Thus in this keymap there are two "6" keys (one on the left, one on the right)
-and likewise Y, H, G, and B are all duplicated to enable one-handed patterns
-that I use frequently (e.g. "byobu" with the right hand, "yes" with the left,
-etc.).
-
-I occasionally use the numeric pad for data entry, thus this is duplicated
-under the natural home position of the right hand in layer 1 (activated by
-holding one of the right thumb buttons), while the cursor keys are duplicated
-under the classic WASD gaming layout of the left hand in layer 2 (activated by
-holding one of the left thumb buttons). Various other useful keys also appear
-in these layers (brackets and symbols for coding in layer 1, navigation and
-F-keys in layer 2, etc.).
-
-Finally, modifier keys like Ctrl, Shift, and Alt, along with Backspace and
-Enter are all in traditional locations in an effort to reuse existing muscle
-memory as much as possible (keys like =, #, and ' are in layer 1). The layout
-maps are in the comments of keymap_dave.c so I won't bother duplicating them
-here.
-
-Oh, and the LEDs are rather pimped ... because I could!
-
-Anyway, although I'm sure this keymap won't be to many people's taste you might
-find some interesting ideas in here for your own layouts. Do tweet me
-(@waveform80) if you have any questions / suggestions / bugs.
-
-Dave.
diff --git a/layouts/community/ergodox/deadcyclo/keymap.c b/layouts/community/ergodox/deadcyclo/keymap.c
deleted file mode 100644
index 97e95d103b..0000000000
--- a/layouts/community/ergodox/deadcyclo/keymap.c
+++ /dev/null
@@ -1,386 +0,0 @@
-#include QMK_KEYBOARD_H
-#include "version.h"
-
-#define BASE 0 // default layer
-#define SYMB 1 // symbols
-#define MDIA 2 // media keys and navigation
-#define UNI 3 // unicode 1
-#define UNI2 4 // unicode 2
-
-enum custom_keycodes {
- I3_RUN = SAFE_RANGE,
- VRSN,
- I3_GO_GROUP_1,
- I3_GO_GROUP_2,
- I3_GO_GROUP_3,
- I3_GO_GROUP_4,
- I3_GO_GROUP_5,
- I3_GO_GROUP_6,
- I3_GO_GROUP_7,
- I3_GO_GROUP_8,
- I3_GO_GROUP_9,
- I3_GO_GROUP_10,
- EMOJI_SHRUG,
- EMOJI_YAY,
- EMOJI_HUG,
- EMOJI_SMILE,
- EMOJI_SMILE2,
- EMOJI_HMM1,
- EMOJI_HMM2,
- EMOJI_BEAR1,
- EMOJI_BEAR2,
- EMOJI_FUU,
- EMOJI_EGGY1,
- EMOJI_EGGY2,
- EMOJI_FACE1,
- EMOJI_FACE2,
- EMOJI_UHU,
- EMOJI_SMRK1,
- EMOJI_SMRK2,
- EMOJI_LOVE
-};
-
-// TODO: Finish the macros for i3 (Macros should potentially be own function instead to make things easier? some of them at least, f. ex. the ones that use 1-0 keys so we can have a single switch)
-
-// TODO: Do stuff with hyper and meh keys
-// TODO: Add macros for lots of stuff. (Lastpass cli, pushbullet cli, other push service cli, linode cli, more?)
-// TODO: Make macros for gnu screen and i3wm
-// TODO: Need to change hotkeys for lastpass, and potentially make my own keys for them on one of my layers
-// TODO: Look into using tap dance
-// TODO: Use leader key for stuff. See https://github.com/qmk/qmk_firmware/wiki
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-/* Keymap 0: Basic layer
- *
- * ,--------------------------------------------------. ,--------------------------------------------------.
- * | Esc/L3 | 1 | 2 | 3 | 4 | 5 | 6 | | 6 | 7 | 8 | 9 | 0 | - | =/L3 |
- * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | Tab/L1 | Q | W | E | R | T | L1 | | L2 | Y | U | I | O | P | \/L1 |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | LCtrl | A | S | D | F | G |------| |------| H | J | K | L | ; | ctrl/'|
- * |--------+------+------+------+------+------| Hyper| | Meh |------+------+------+------+------+--------|
- * | LShift |Z / L4|X / L2| C | V | B | | | | N | M | , |. / L2|/ / L4| RShift |
- * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * |Grv/L1| UNI |AltShf| Lalt | Ralt | | Lalt | Ralt | LEAD | UNI | ~/L1 |
- * `----------------------------------' `----------------------------------'
- * ,-------------. ,-------------.
- * | App | Home | | PgUp | Ins |
- * ,------|------|------| |------+--------+------.
- * | | | End | | PgDn | | |
- * | Space| TAB |------| |------| BSPC |Enter |
- * | | | [ | | ] | | |
- * `--------------------' `----------------------'
- */
-// If it accepts an argument (i.e, is a function), it doesn't need KC_.
-// Otherwise, it needs KC_*
-[BASE] = LAYOUT_ergodox( // layer 0 : default
- // left hand
- LT(UNI,KC_ESC), KC_1, KC_2, KC_3, KC_4, KC_5, KC_6,
- LT(SYMB,KC_TAB), KC_Q, KC_W, KC_E, KC_R, KC_T, TG(SYMB),
- KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G,
- KC_LSFT, LT(4, KC_Z), LT(MDIA, KC_X), KC_C, KC_V, KC_B, ALL_T(KC_NO),
- LT(SYMB,KC_GRV),LCTL(LSFT(KC_U)), LALT(KC_LSFT), KC_RALT,KC_LALT,
- ALT_T(KC_APP), KC_HOME,
- KC_END,
- KC_SPC,KC_TAB,KC_LBRC,
- // right hand
- KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, LT(UNI,KC_EQL),
- TG(MDIA), KC_Y, KC_U, KC_I, KC_O, KC_P, LT(SYMB, KC_BSLS),
- KC_H, KC_J, KC_K, KC_L, KC_SCLN,CTL_T(KC_QUOT),
- MEH_T(KC_NO),KC_N, KC_M, KC_COMM,LT(MDIA, KC_DOT), LT(UNI2, KC_SLSH), KC_RSFT,
- KC_LALT, KC_RALT,QK_LEAD,LCTL(LSFT(KC_U)), LT(SYMB,KC_TILD),
- KC_PGUP, KC_INS,
- KC_PGDN,
- KC_RBRC,KC_BSPC, KC_ENT
- ),
-/* Keymap 1: Symbol Layer LCTL(LSFT(KC_U))
- *
- * ,--------------------------------------------------. ,--------------------------------------------------.
- * | | F1 | F2 | F3 | F4 | F5 | F6 | | F6 | F7 | F8 | F9 | F10 | F11 | F12 |
- * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | | ! | @ | { | } | | | | | | Up | 7 | 8 | 9 | * | |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | # | $ | ( | ) | ` |------| |------| Down | 4 | 5 | 6 | + | |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | % | ^ | [ | ] | ~ | | | | & | 1 | 2 | 3 | \ | |
- * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * | | | | | | | | . | 0 | = | |
- * `----------------------------------' `----------------------------------'
- * ,-------------. ,-------------.
- * |Toggle|Animat| | Hue+ | Hue- |
- * ,------|------|------| |------+------+------.
- * |Bright|Bright|Solid | | | | |
- * |ness- |ness+ |------| |------| DEL | |
- * | | | | | EPRM | | |
- * `--------------------' `--------------------'
- */
-// SYMBOLS
-[SYMB] = LAYOUT_ergodox(
- // left hand
- KC_TRNS,KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6,
- KC_TRNS,KC_EXLM,KC_AT, KC_LCBR,KC_RCBR,KC_PIPE,KC_TRNS,
- KC_TRNS,KC_HASH,KC_DLR, KC_LPRN,KC_RPRN,KC_GRV,
- KC_TRNS,KC_PERC,KC_CIRC,KC_LBRC,KC_RBRC,KC_TILD,KC_TRNS,
- KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
- RGB_TOG,RGB_MOD,
- RGB_M_P,
- RGB_VAD,RGB_VAI,KC_TRNS,
- // right hand
- KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,
- KC_TRNS, KC_UP, KC_7, KC_8, KC_9, KC_ASTR, KC_TRNS,
- KC_DOWN, KC_4, KC_5, KC_6, KC_PLUS, KC_TRNS,
- KC_TRNS, KC_AMPR, KC_1, KC_2, KC_3, KC_BSLS, KC_TRNS,
- KC_TRNS,KC_DOT, KC_0, KC_EQL, KC_TRNS,
- RGB_HUD, RGB_HUI,
- KC_TRNS,
- EE_CLR, KC_DEL, KC_TRNS
-),
-/* Keymap 2: Media, mouse and navigation
- *
- * ,--------------------------------------------------. ,--------------------------------------------------.
- * | | gg(1)| gg(2)| gg(3)| gg(4)| gg(5)| gg(6)| | gg(6)| gg(7)| gg(8)| gg(9)| gg(0)| | |
- * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | | | | MsUp | RUN | | | | | | | Up | | | |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | |MsLeft|MsDown|MsRght| |------| |------| | Left | Down | Right| | Play |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | | | | | | | | | | Prev | Next | | | |
- * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * | | | | Lclk | Rclk | |VolUp |VolDn | Mute | | |
- * `----------------------------------' `----------------------------------'
- * ,-------------. ,-------------.
- * | | | | | |
- * ,------|------|------| |------+------+------.
- * | | | | | | |Brwser|
- * | | |------| |------| |Back |
- * | | | | | | | |
- * `--------------------' `--------------------'
- */
-// MEDIA , MOUSE and NAVIGATION
-[MDIA] = LAYOUT_ergodox(
- KC_TRNS, I3_GO_GROUP_1, I3_GO_GROUP_2, I3_GO_GROUP_3, I3_GO_GROUP_4, I3_GO_GROUP_5, I3_GO_GROUP_6,
-KC_TRNS, KC_TRNS, KC_TRNS, KC_MS_U, I3_RUN, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_R, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_BTN1, KC_BTN2,
- KC_TRNS, KC_TRNS,
- KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS,
- // right hand
- I3_GO_GROUP_6, I3_GO_GROUP_7, I3_GO_GROUP_8, I3_GO_GROUP_9, I3_GO_GROUP_10, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_LEFT, KC_DOWN, KC_RIGHT, KC_TRNS, KC_MPLY,
- KC_TRNS, KC_TRNS, KC_MPRV, KC_MNXT, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_VOLU, KC_VOLD, KC_MUTE, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS,
- KC_TRNS,
- KC_TRNS, KC_TRNS, KC_WBAK
-),
-
-/* Keymap 3: Unicode
- *
- * ,--------------------------------------------------. ,--------------------------------------------------.
- * | | ┌ | ┐ | └ | ┘ | │ | ─ | | ╔ | ╗ | ╚ | ╝ | ║ | ═ | |
- * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | | shrug| yay | hug | smile|smile2| | | | ■ | λ | → | ➙ | ▻ | █ |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | hmm1 | hmm2 | bear1| bear2| fuu |------| |------| ☺ | ☻ | ☹ | ♡ | ♥ | ░ |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | eggy1| eggy2| face1| face2| uhu | | | | ❤ | ☐ | ☑ | ☒ | ✓ | ▄ |
- * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * | | smrk1| smrk2| love | VER | | ✔ | ✗ | ✘ | ● | ▀ |
- * `----------------------------------' `----------------------------------'
- * ,-------------. ,-------------.
- * | | | | ▒ | ▓ |
- * ,------|------|------| |------+------+------.
- * | | | | | | | |
- * | | |------| |------| | |
- * | | | | | | | |
- * `--------------------' `--------------------'
- */
-// Unicode
-[UNI] = LAYOUT_ergodox(
- KC_TRNS, UC(0x250c), UC(0x2510), UC(0x2514), UC(0x2518), UC(0x2502), UC(0x2500),
- KC_TRNS, EMOJI_SHRUG, EMOJI_YAY, EMOJI_HUG, EMOJI_SMILE, EMOJI_SMILE2, KC_TRNS,
- KC_TRNS, EMOJI_HMM1, EMOJI_HMM2, EMOJI_BEAR1, EMOJI_BEAR2, EMOJI_FUU,
- KC_TRNS, EMOJI_EGGY1, EMOJI_EGGY2, EMOJI_FACE1, EMOJI_FACE2, EMOJI_UHU, KC_TRNS,
- KC_TRNS, EMOJI_SMRK1, EMOJI_SMRK2, EMOJI_LOVE, VRSN,
- KC_TRNS, KC_TRNS,
- KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS,
- // right hand
- UC(0x2554), UC(0x2557), UC(0x255a), UC(0x255d), UC(0x2551), UC(0x2550), KC_TRNS,
- KC_TRNS, UC(0x25a0), UC(0x03bb), UC(0x2192), UC(0x2799), UC(0x25bb), UC(0x2588),
- UC(0x263a), UC(0x263b), UC(0x2639), UC(0x2661), UC(0x2665), UC(0x2591),
- KC_TRNS, UC(0x2764), UC(0x2610), UC(0x2611), UC(0x2612), UC(0x2713), UC(0x2584),
- UC(0x2714), UC(0x2717), UC(0x2718), UC(0x25cf), UC(0x2580),
- UC(0x2592), UC(0x2593),
- KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS
-),
-
-/* Keymap 4: Unicode 2
- *
- * ,--------------------------------------------------. ,--------------------------------------------------.
- * | | ¹ | ² | ³ | ⁴ | ⁵ | ⁶ | | ⁶ | ⁷ | ⁸ | ⁹ | ⁰ | ℃ | ™ |
- * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | | ₁ | ₂ | ₃ | ₄ | ₅ | ₆ | | ₆ | ₇ | ₈ | ₉ | ₀ | ⁄ | |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | ⅞ | ⅝ | ⅜ | ⅛ | ⅚ |------| |------| ⅓ | ⅒ | ⅑ | ⅐ | ¾ | |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | | | ⅗ | ⅖ | ⅕ | ⅔ | | ¼ | ⅙ | ⅘ | ½ | | | |
- * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * | | | | | | | | | | | |
- * `----------------------------------' `----------------------------------'
- * ,-------------. ,-------------.
- * | | | | | |
- * ,------|------|------| |------+------+------.
- * | | | | | | | |
- * | | |------| |------| | |
- * | | | | | | | |
- * `--------------------' `--------------------'
- */
-// Unicode 2
-[UNI2] = LAYOUT_ergodox(
- KC_TRNS, UC(0x00b9), UC(0x00b2), UC(0x00b3), UC(0x2074), UC(0x2075), UC(0x2076),
- KC_TRNS, UC(0x2081), UC(0x2082), UC(0x2083), UC(0x2084), UC(0x2085), UC(0x2086),
- KC_TRNS, UC(0x215e), UC(0x215d), UC(0x215c), UC(0x215b), UC(0x215a),
- KC_TRNS, KC_TRNS, KC_TRNS, UC(0x2157), UC(0x2156), UC(0x2155), UC(0x2154),
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS,
- KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS,
- // right hand
- UC(0x2076), UC(0x2077), UC(0x2078), UC(0x2079), UC(0x2070), UC(0x2103), UC(0x2122),
- UC(0x2086), UC(0x2087), UC(0x2088), UC(0x2089), UC(0x2080), UC(0x2044), KC_TRNS,
- UC(0x2153), UC(0x2152), UC(0x2151), UC(0x2150), UC(0x00be), KC_TRNS,
- UC(0x00bc), UC(0x2159), UC(0x2158), UC(0x00bd), KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS,
- KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS
-),
-};
-
-bool process_record_user(uint16_t keycode, keyrecord_t *record) {
- if (record->event.pressed) {
- switch (keycode) {
- case I3_RUN:
- tap_code16(C(KC_I));
- tap_code(KC_R);
- return false;
- case VRSN:
- SEND_STRING(QMK_KEYBOARD "/" QMK_KEYMAP " @ " QMK_VERSION);
- return false;
- case I3_GO_GROUP_1 ... I3_GO_GROUP_10:
- tap_code16(C(KC_I));
- tap_code(KC_G);
- if (keycode == I3_GO_GROUP_10) {
- tap_code(KC_0);
- } else {
- tap_code(KC_1 + (keycode - I3_GO_GROUP_1));
- }
- return false;
- case EMOJI_SHRUG:
- send_unicode_string("¯\\_(ツ)_/¯");
- return false;
- case EMOJI_YAY:
- SEND_STRING("\\o/");
- return false;
- case EMOJI_HUG:
- send_unicode_string("༼ つ ◕_◕ ༽つ");
- return false;
- case EMOJI_SMILE:
- send_unicode_string("ʘ‿ʘ");
- return false;
- case EMOJI_SMILE2:
- send_unicode_string("(ʘ‿ʘ)");
- return false;
- case EMOJI_HMM1:
- send_unicode_string("ಠ_ಠ");
- return false;
- case EMOJI_HMM2:
- send_unicode_string("(ಠ_ಠ)");
- return false;
- case EMOJI_BEAR1:
- send_unicode_string("ʕ•ᴥ•ʔ");
- return false;
- case EMOJI_BEAR2:
- send_unicode_string("(ᵔᴥᵔ)");
- return false;
- case EMOJI_FUU:
- send_unicode_string("╭∩╮(-_-)╭∩╮");
- return false;
- case EMOJI_EGGY1:
- send_unicode_string("(╯°□°)╯");
- return false;
- case EMOJI_EGGY2:
- send_unicode_string("ノ( ゜-゜ノ)");
- return false;
- case EMOJI_FACE1:
- SEND_STRING("(-_-)");
- return false;
- case EMOJI_FACE2:
- send_unicode_string("(•_•)");
- return false;
- case EMOJI_UHU:
- send_unicode_string("⊙﹏⊙");
- return false;
- case EMOJI_SMRK1:
- send_unicode_string("^̮^");
- return false;
- case EMOJI_SMRK2:
- send_unicode_string("(^̮^)");
- return false;
- case EMOJI_LOVE:
- send_unicode_string("♥‿♥");
- return false;
- }
- }
- return true;
-}
-
-// Runs just one time when the keyboard initializes.
-void matrix_init_user(void) {
- set_unicode_input_mode(UNICODE_MODE_LINUX);
-};
-
-// Runs constantly in the background, in a loop.
-void matrix_scan_user(void) {
- uint8_t layer = get_highest_layer(layer_state);
-
- ergodox_board_led_off();
- ergodox_right_led_1_off();
- ergodox_right_led_2_off();
- ergodox_right_led_3_off();
- switch (layer) {
- case 1:
- ergodox_right_led_1_on();
- #ifdef RGBLIGHT_ENABLE
- rgblight_setrgb(0xff,0x00,0x00);
- #endif
- break;
- case 2:
- ergodox_right_led_2_on();
- #ifdef RGBLIGHT_ENABLE
- rgblight_setrgb(0x00,0xff,0x00);
- #endif
- break;
- case 3:
- ergodox_right_led_3_on();
- #ifdef RGBLIGHT_ENABLE
- rgblight_setrgb(0x00,0x00,0xff);
- #endif
- break;
- case 4:
- ergodox_right_led_1_on();
- ergodox_right_led_3_on();
- #ifdef RGBLIGHT_ENABLE
- rgblight_setrgb(0xff,0x00,0xff);
- #endif
- break;
- default:
- // none
- break;
- }
-
-};
diff --git a/layouts/community/ergodox/deadcyclo/readme.md b/layouts/community/ergodox/deadcyclo/readme.md
deleted file mode 100644
index 6ae5299d87..0000000000
--- a/layouts/community/ergodox/deadcyclo/readme.md
+++ /dev/null
@@ -1,79 +0,0 @@
-# ErgoDox EZ 1337 configuration
-
-Custom layout based on the default layout. Intended for interational
-users of us intl-altgr layout. Note that some common keys might be
-missing, as this layout is intented to be used on *nix systems by
-users familiar with their system. The layout is geared towards
-avoiding using the rat (mouse for those of you who are unfamiliar with
-tiling window managers) as much as possibly.
-
-# Layouts
-
-All layer images created using [keyboard-layout-editor](http://www.keyboard-layout-editor.com/)
-
-## Base layer
-
-[![Base layer](https://i.imgur.com/PGhP2jZ.png)](http://www.keyboard-layout-editor.com/#/gists/0321b18620180a3e46c498206eb65366)
-
-The base layer here is marked with the us international alt-gr layout,
-including characters bound to what on an iso keyboard would be alt-gr
-and on an ansi keyboard right alt.
-
-Regular (and irregular) modifier keys are marked with a yellowish
-gray. Layer moderators are marked with blue, red and green, which are
-the same colors each layer displays on the LEDs when active.
-
-All of the layer switch keys, except for the two center keys marked L1
-TOG, are dual purpose. Hence for example the top left key produces ESC
-if tapped, and temporarilly toggles L3 when hold down. The two center
-L1 TOG keys toggle L1 on and off for more permanent layer toggling.
-
-The UNI keys enter the linux ibus unicode composer mode
-(ie. Ctrl+Shift+u). Use this to enter unicode characters. Hit the key,
-type in the unicode hex value, and hit enter.
-
-## Layer 1 - Symbols and RGB
-
-[![Layer 1 - Symbols and RGB](https://i.imgur.com/SfkkU5D.png)](http://www.keyboard-layout-editor.com/#/gists/96714e198054c9115bafb5267cc6bc73)
-
-The Symbols and RGB layer contains function keys, commonly used
-symbols, a numpad and if you have the new Ergodox Ez shine keys for
-controlling various RGB-led functions. In addition, it provides an up
-and a down key for easy scrolling. RGB controller keys are yellow.
-
-## Layer 2 - Media, Mouse and Navigation
-
-[![Layer 2 - Media, Mouse and Navigation](https://i.imgur.com/UwPHjCO.png)](http://www.keyboard-layout-editor.com/#/gists/824759486e378bcec30784309a7e5731)
-
-The Media, Mouse and unicode layer contains special keys for moving
-the mouse and clicking on it with the keyboard. In addition it
-provides standard media control keys, and default arrow keys.
-
-## Layer 3 - Unicode
-
-[![Layer 3 - Unicode](https://i.imgur.com/HRkeY8j.png)](http://www.keyboard-layout-editor.com/#/gists/67d9613dcd873c68693d11863d0fd289)
-
-The unicode layer provides keys for directly typing unicode (utf-8)
-
-## Layer 4 - Unicode 2
-
-[![Layer 43 - Unicode](https://i.imgur.com/dyB459q.png)](http://www.keyboard-layout-editor.com/#/gists/7b2241110ab8311d9668a0798f3baf4a)
-
-The unicode 2 layer provides keys for directly typing unicode (utf-8)
-
-# Changelog
-
-- 02.01.2017 Added delete key on second layer
-- 10.01.2017 Added layer images to readme
-- 24.01.2017 Added support for Ergodox Shine. Added secondary L2 switch key on left hand
-- 24.01.2017 Added unicode keys. Added shrug hug and yay. Moved Navigation to layer 2
-- 25.01.2017 Added lots of new emojis and some unicode keys
-- 27.01.2017 Added new unicode keys and shortcut for ibus unicode composer key (CTRL+SHIFT+U)
-- 11.03.2017 Added additional unicode layer. Moved some layer switch keys to more sane locations
-
-# TODO
-
-- Add macros for lots of stuff. (Lastpass cli, pushbullet cli, other push service cli, linode cli, more?)
-- Make macros for gnu screen and i3wm
-- Look into the app launch macros in algernon keymap
-
diff --git a/layouts/community/ergodox/deadcyclo/rules.mk b/layouts/community/ergodox/deadcyclo/rules.mk
deleted file mode 100644
index f5093529bf..0000000000
--- a/layouts/community/ergodox/deadcyclo/rules.mk
+++ /dev/null
@@ -1,2 +0,0 @@
-UNICODE_ENABLE = yes
-LEADER_ENABLE = yes
diff --git a/layouts/community/ergodox/dragon788/keymap.c b/layouts/community/ergodox/dragon788/keymap.c
deleted file mode 100644
index b41cf2c9b3..0000000000
--- a/layouts/community/ergodox/dragon788/keymap.c
+++ /dev/null
@@ -1,205 +0,0 @@
-#include QMK_KEYBOARD_H
-#include "debug.h"
-#include "action_layer.h"
-
-#define BASE 0 // default layer
-#define SYMB 1 // symbols
-#define MDIA 2 // media keys
-#define PLVR 3 // Plover layer
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-/* Keymap 0: Basic layer
- *
- * ,--------------------------------------------------. ,--------------------------------------------------.
- * | = | 1 | 2 | 3 | 4 | 5 | LGui | |Plover| 6 | 7 | 8 | 9 | 0 | - |
- * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | Tab | Q | W | E | R | T | L1 | | L2 | Y | U | I | O | P | \ |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * |Esc/Ctrl| A | S | D | F | G |------| |------| H | J | K | L | ; | '"/Ctrl|
- * |--------+------+------+------+------+------| Hyper| | Meh |------+------+------+------+------+--------|
- * | LShift | Z | X | C | V | B | | | | N | M | , | . | / | RShift |
- * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * | ~L1 | Grv | '" | Left |Rgt/L2| | Up/L2| Down | [ | ] | ~L1 |
- * `----------------------------------' `----------------------------------'
- * ,-------------. ,-------------.
- * | App | Home | | PgUp |Ctrl/Esc|
- * ,------|------|------| |------+--------+------.
- * | | | End | | PgDn | | |
- * |Backsp|Delete|------| |------| Enter |Space |
- * | ace | | LAlt | |TabCtl| | |
- * `--------------------' `----------------------'
- */
-// If it accepts an argument (i.e, is a function), it doesn't need KC_.
-// Otherwise, it needs KC_*
-[BASE] = LAYOUT_ergodox( // layer 0 : default
- // left hand
- KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, KC_LGUI,
- KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, TG(1),
- CTL_T(KC_ESC), KC_A, KC_S, KC_D, KC_F, KC_G,
- KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, ALL_T(KC_NO),
- TT(SYMB), KC_GRV, KC_QUOT,KC_LEFT, LT(MDIA, KC_RGHT),
- KC_APP, KC_HOME,
- KC_END,
- KC_BSPC,KC_DEL, KC_LALT,
- // right hand
- TG(3), KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS,
- TG(2), KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS,
- KC_H, KC_J, KC_K, KC_L, KC_SCLN, CTL_T(KC_QUOT),
- MEH_T(KC_NO),KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH, KC_RSFT,
- LT(MDIA, KC_UP), KC_DOWN,KC_LBRC,KC_RBRC, TT(SYMB),
- KC_PGUP, CTL_T(KC_ESC),
- KC_PGDN,
- CTL_T(KC_TAB),KC_ENT, KC_SPC
- ),
-/* Keymap 1: Symbol Layer
- *
- * ,--------------------------------------------------. ,--------------------------------------------------.
- * | | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | F11 |
- * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | | ! | @ | { | } | | | | | | Up | 7 | 8 | 9 | * | F12 |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | # | $ | ( | ) | ` |------| |------| Down | 4 | 5 | 6 | + | |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | % | ^ | [ | ] | ~ | | | | & | 1 | 2 | 3 | \ | |
- * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * | | | | | | | | . | 0 | = | |
- * `----------------------------------' `----------------------------------'
- * ,-------------. ,-------------.
- * | | | | | Calc |
- * ,------|------|------| |------+------+------.
- * | | | | | | | |
- * | | |------| |------| | |
- * | | | | | | | |
- * `--------------------' `--------------------'
- */
-// SYMBOLS
-[SYMB] = LAYOUT_ergodox(
- // left hand
- KC_TRNS,KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_TRNS,
- KC_TRNS,KC_EXLM,KC_AT, KC_LCBR,KC_RCBR,KC_PIPE,KC_TRNS,
- KC_TRNS,KC_HASH,KC_DLR, KC_LPRN,KC_RPRN,KC_GRV,
- KC_TRNS,KC_PERC,KC_CIRC,KC_LBRC,KC_RBRC,KC_TILD,KC_TRNS,
- KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
- KC_TRNS,KC_TRNS,
- KC_TRNS,
- KC_TRNS,KC_TRNS,KC_TRNS,
- // right hand
- KC_TRNS, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,
- KC_TRNS, KC_UP, KC_7, KC_8, KC_9, KC_ASTR, KC_F12,
- KC_DOWN, KC_4, KC_5, KC_6, KC_PLUS, KC_TRNS,
- KC_TRNS, KC_AMPR, KC_1, KC_2, KC_3, KC_BSLS, KC_TRNS,
- KC_TRNS,KC_DOT, KC_0, KC_EQL, KC_TRNS,
- KC_TRNS, KC_CALC,
- KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS
-),
-/* Keymap 2: Media and mouse keys
- *
- * ,--------------------------------------------------. ,--------------------------------------------------.
- * | | | | | | | | | | | | | | | |
- * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | | | | Rclk | Lclk | | | | | | Lclk | Rclk | | | |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | |MsLeft| MsUp |MsDown|MsRght|------| |------|MsLeft|MsDown| MsUp |MsRght| | |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | | | | | | | | | | | | | | |
- * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * | | | | Lclk | Rclk | | | | | | |
- * `----------------------------------' `----------------------------------'
- * ,-------------. ,-------------.
- * | | Prev | |VolUp | |
- * ,------|------|------| |------+------+------.
- * | | | Play | | Mute |Brwser|Brwser|
- * | Lclk | Rclk |------| |------|Fwd |Back |
- * | | | Next | |VolDn | | |
- * `--------------------' `--------------------'
- */
-// MEDIA AND MOUSE
-LAYOUT_ergodox(
- QK_BOOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_BTN2, KC_BTN1, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_MS_L, KC_MS_U, KC_MS_D, KC_MS_R,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_MPRV,
- KC_MPLY,
- KC_BTN1, KC_BTN2, KC_MNXT,
- // right hand
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_BTN1, KC_BTN2, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_MS_L, KC_MS_D, KC_MS_U, KC_MS_R, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_VOLU, KC_TRNS,
- KC_MUTE,
- KC_VOLD, KC_WBAK, KC_WFWD
-),
-
-/* Keymap 4: Steno for Plover from https://github.com/shayneholmes/tmk_keyboard/commit/11290f8489013018f778627db725160c745e75bd
- *
- * ,--------------------------------------------------. ,--------------------------------------------------.
- * | | | | | | | | | | | | | | | |
- * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | | 1 | 2 | 3 | 4 | 5 | | | | 6 | 7 | 8 | 9 | 0 | |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | q | w | e | r | t |------| |------| y | u | i | o | p | [ |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | a | s | d | f | g | | | | h | j | k | l | ; | ' |
- * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * | | | | | | | | | | | |
- * `----------------------------------' `----------------------------------'
- * ,-------------. ,-------------.
- * | | | | | |
- * ,------|------|------| |------+------+------.
- * | | | | | | | |
- * | c | v |------| |------| n | m |
- * | | | | | | | |
- * `--------------------' `--------------------'
- */
-
-[PLVR] = LAYOUT_ergodox( // layout: layer 4: Steno for Plover
- // left hand
- KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
- KC_NO, KC_1, KC_2, KC_3, KC_4, KC_5, KC_NO,
- KC_NO, KC_Q, KC_W, KC_E, KC_R, KC_T,
- KC_NO, KC_A, KC_S, KC_D, KC_F, KC_G, KC_NO,
- KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
- KC_NO, KC_NO,
- KC_NO,
- KC_C, KC_V, KC_NO,
- // right hand
- KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_TRNS,
- KC_NO, KC_6, KC_7, KC_8, KC_9, KC_0, KC_TRNS,
- KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC,
- KC_NO, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
- KC_TRNS, KC_TRNS, KC_NO, KC_NO, KC_NO,
- KC_TRNS, KC_TRNS,
- KC_TRNS,
- KC_NO, KC_N, KC_M
-),
-
-};
-
-// Runs constantly in the background, in a loop.
-void matrix_scan_user(void) {
-
- uint8_t layer = get_highest_layer(layer_state);
-
- ergodox_board_led_off();
- ergodox_right_led_1_off();
- ergodox_right_led_2_off();
- ergodox_right_led_3_off();
- switch (layer) {
- // TODO: Make this relevant to the ErgoDox EZ.
- case 1:
- ergodox_right_led_1_on();
- break;
- case 2:
- ergodox_right_led_2_on();
- break;
- default:
- // none
- break;
- }
-
-};
diff --git a/layouts/community/ergodox/drashna/README.md b/layouts/community/ergodox/drashna/README.md
deleted file mode 100644
index e77defc912..0000000000
--- a/layouts/community/ergodox/drashna/README.md
+++ /dev/null
@@ -1,25 +0,0 @@
-Overview
-========
-
-This is my personal Ergodox EZ configuration, and my daily driver.
-
-Most of the code resides in my userspace, rather than here, as I have multiple keyboards.
-
-How to build
-------------
-make ergodox_ez:drashna:teensy
-
-Layers
-------
-* QWERTY/DVORAK/COLEMAK/WORKMAN: basic layout, default set like the OLKB boards. Default is set and persists on power cycle.
-* SYMB: F keys across the top, symbols on the left and numpad on the right.
-* GAMEPAD: This is the QWERTY layout shifted to the right for FPS type games. Destiny and Overwatch are the primary games for this.
-* DIABLO: This contains a Diablo 3 layout, that requires much less reaching or shifting. If Tap Dance is enabled, then it has a "spam" feature. See Userspace for details.
-* MOUSE: mouse navigation
-
-All layers have RGB specific indicators, so you can see what layer you're on by the underglow.
-
-Ergodox Specific Code
----------------------
-
-Aside from my userspace code, this includes LED indications for Shift (Green LED), Ctrl (Red LED), and Alt (Blue LED).
diff --git a/layouts/community/ergodox/drashna/config.h b/layouts/community/ergodox/drashna/config.h
deleted file mode 100644
index aa1d05779b..0000000000
--- a/layouts/community/ergodox/drashna/config.h
+++ /dev/null
@@ -1,51 +0,0 @@
-/* Copyright 2020 Christopher Courtney, aka Drashna Jael're (@drashna) <drashna@live.com>
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-#pragma once
-
-#ifdef RGBLIGHT_ENABLE
-# undef RGBLIGHT_SAT_STEP
-# define RGBLIGHT_SAT_STEP 12
-
-# define RGBLIGHT_EFFECT_KNIGHT_LENGTH 3
-# define RGBLIGHT_EFFECT_SNAKE_LENGTH 3
-# ifdef RGB_MATRIX_ENABLE
-# define RGBLIGHT_DISABLE_KEYCODES
-# endif
-#endif // RGBLIGHT_ENABLE
-
-#undef PRODUCT
-#define PRODUCT "DrashnaDox - Hacked ErgoDox EZ Hybrid Monstrosity"
-
-#undef DEBOUNCE
-#define DEBOUNCE 20
-
-#define TAPPING_TERM_PER_KEY
-
-#define ERGODOX_LED_30
-
-#ifdef RGB_MATRIX_ENABLE
-# undef RGB_MATRIX_LED_PROCESS_LIMIT
-# undef RGB_MATRIX_LED_FLUSH_LIMIT
-# if defined(RGBLIGHT_ENABLE) && defined(RGB_MATRIX_ENABLE)
-# define RGBLIGHT_LIMIT_VAL 100
-# endif
-#endif
-
-#ifdef TAPPING_TERM
-# undef TAPPING_TERM
-#endif
-#define TAPPING_TERM 185
diff --git a/layouts/community/ergodox/drashna/keymap.c b/layouts/community/ergodox/drashna/keymap.c
deleted file mode 100644
index 8d1449486a..0000000000
--- a/layouts/community/ergodox/drashna/keymap.c
+++ /dev/null
@@ -1,289 +0,0 @@
-/* Copyright 2020 Christopher Courtney, aka Drashna Jael're (@drashna) <drashna@live.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 "drashna.h"
-
-enum more_custom_keycodes {
- KC_SWAP_NUM = USER_SAFE_RANGE,
-};
-
-// define layer change stuff for underglow indicator
-bool skip_leds = false;
-
-/*
- * The `LAYOUT_ergodox_pretty_base` macro is a template to allow the use of
- * identical modifiers for the default layouts (eg QWERTY, Colemak, Dvorak,
- * etc), so that there is no need to set them up for each layout, and modify
- * all of them if I want to change them. This helps to keep consistency and
- * ease of use. K## is a placeholder to pass through the individual keycodes
- */
-// clang-format off
-#define LAYOUT_ergodox_wrapper(...) LAYOUT_ergodox(__VA_ARGS__)
-#define LAYOUT_ergodox_pretty_wrapper(...) LAYOUT_ergodox_pretty(__VA_ARGS__)
-
-#define LAYOUT_ergodox_pretty_base( \
- K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, \
- K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, \
- K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A \
- ) \
- LAYOUT_ergodox_pretty_wrapper( \
- KC_ESC, ________________NUMBER_LEFT________________, UC_FLIP, UC_TABL, ________________NUMBER_RIGHT_______________, KC_MINS, \
- LALT_T(KC_TAB), K01, K02, K03, K04, K05, TG_DBLO, TG_DBLO, K06, K07, K08, K09, K0A, KC_BSLS, \
- KC_C1R3, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, RALT_T(K1B), \
- KC_MLSF, CTL_T(K21), K22, K23, K24, K25, TG_GAME, TG_GAME, K26, K27, K28, K29, RCTL_T(K2A), KC_MRSF, \
- KC_GRV, OS_MEH, OS_HYPR, KC_LBRC, KC_RBRC, KC_LEFT, KC_UP, KC_DOWN, KC_RGHT, KC_NO, \
- OS_LALT, OS_LGUI, OS_RGUI, CTL_T(KC_ESCAPE), \
- KC_APP, KC_MENU, \
- KC_SPC, LT(_LOWER, KC_BSPC), OS_LWR, OS_RSE, LT(_RAISE, KC_DEL), KC_ENT \
- )
-
-#define LAYOUT_base_wrapper(...) LAYOUT_ergodox_pretty_base(__VA_ARGS__)
-
-
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [_DEFAULT_LAYER_1] = LAYOUT_base_wrapper(
- _________________QWERTY_L1_________________, _________________QWERTY_R1_________________,
- _________________QWERTY_L2_________________, _________________QWERTY_R2_________________,
- _________________QWERTY_L3_________________, _________________QWERTY_R3_________________
- ),
-
- [_DEFAULT_LAYER_2] = LAYOUT_base_wrapper(
- ______________COLEMAK_MOD_DH_L1____________, ______________COLEMAK_MOD_DH_R1____________,
- ______________COLEMAK_MOD_DH_L2____________, ______________COLEMAK_MOD_DH_R2____________,
- ______________COLEMAK_MOD_DH_L3____________, ______________COLEMAK_MOD_DH_R3____________
- ),
- [_DEFAULT_LAYER_3] = LAYOUT_base_wrapper(
- _________________COLEMAK_L1________________, _________________COLEMAK_R1________________,
- _________________COLEMAK_L2________________, _________________COLEMAK_R2________________,
- _________________COLEMAK_L3________________, _________________COLEMAK_R3________________
- ),
-
- [_DEFAULT_LAYER_4] = LAYOUT_base_wrapper(
- _________________DVORAK_L1_________________, _________________DVORAK_R1_________________,
- _________________DVORAK_L2_________________, _________________DVORAK_R2_________________,
- _________________DVORAK_L3_________________, _________________DVORAK_R3_________________
- ),
-
-/* Keymap 4: Customized Overwatch Layout
- *
- * ,--------------------------------------------------. ,--------------------------------------------------.
- * | ESC | | | | | | | | | F9 | F10 | F11 | F12 | | |
- * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | F1 | K | Q | W | E | R | T | | | | | | | | |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | TAB | G | A | S | D | F |------| |------| | | | | | |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | LCTR | LSHFT| Z | X | C | V | | | | N | M | | | | |
- * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * | J | U | I | Y | T | | | | | | |
- * `----------------------------------' `----------------------------------'
- * ,-------------. ,-------------.
- * | O | P | | | |
- * ,------|------|------| |------+------+------.
- * | | | LGUI | | | | |
- * | V | SPACE|------ |------| | Enter|
- * | | | H | | | | |
- * `--------------------' `--------------------'
- */
- [_GAMEPAD] = LAYOUT_ergodox_pretty_wrapper(
- KC_ESC, KC_NO, KC_1, KC_2, KC_3, HYPR(KC_Q), HYPR(KC_GRV), KC_TRNS, KC_F9, KC_F10, KC_F11, KC_F12, KC_NO, KC_NO,
- KC_F1, KC_K, KC_Q, KC_W, KC_E, KC_R, KC_T, UC_SHRG, UC_DISA, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
- KC_TAB, KC_G, KC_A, KC_S, KC_D, KC_F, KC_I, KC_O, KC_NO, KC_NO, KC_NO, KC_NO,
- KC_LCTL, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_TRNS, TG_GAME, KC_N, KC_M, KC_NO, KC_NO, KC_NO, KC_NO,
- KC_GRV, KC_U, KC_I, KC_Y, KC_T, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_NO,
- KC_O, KC_P, MAGIC_TOGGLE_NKRO, LALT(KC_PSCR),
- KC_LGUI, KC_HYPR,
- KC_V, KC_SPC, KC_H, KC_NO, KC_NO, KC_SWAP_NUM
- ),
-
-/* Keymap 3:
- *
- * ,--------------------------------------------------. ,--------------------------------------------------.
- * | ESC | V | D | ALT | | | | | | | | | | | |
- * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | TAB | S | I | F | M | T | | | | | | | | | |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | Q | 1 | 2 | 3 | 4 | G |------| |------| | | | | | |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | NUMLOCK| NUM1 | NUM2 | NUM3 | NUM4 | Z | | | | | | | | | |
- * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * | LCTL | MAC1 | MAC2 | MAC3 | MAC4 | | | | | | |
- * `----------------------------------' `----------------------------------'
- * ,-------------. ,-------------.
- * | L | J | | | |
- * ,------|------|------| |------+------+------.
- * | | | G | | | | |
- * | SPACE| Q |------ |------| | |
- * | SHIFT| ALT | 0MAC | | | | |
- * `--------------------' `--------------------'
- */
- [_DIABLO] = LAYOUT_ergodox_pretty_wrapper(
- KC_ESC, KC_V, KC_D, KC_LALT, KC_NO, KC_NO, KC_NO, KC_TRNS, KC_F9, KC_F10, KC_F11, KC_F12, KC_NO, KC_NO,
- KC_TAB, KC_S, KC_I, KC_F, KC_M, KC_T, KC_TRNS, KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
- KC_Q, KC_1, KC_2, KC_3, KC_4, KC_G, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
- KC_LCTL, KC_D3_1, KC_D3_2, KC_D3_3, KC_D3_4, KC_Z, KC_NO, KC_NO, KC_N, KC_M, KC_NO, KC_NO, KC_NO, KC_NO,
- KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
- KC_L, KC_J, KC_NO, KC_NO,
- KC_F, KC_NO,
- SFT_T(KC_SPACE), ALT_T(KC_Q), KC_DIABLO_CLEAR, KC_PGDN, KC_DEL, KC_ENT
- ),
-
- [_LOWER] = LAYOUT_ergodox_pretty_wrapper(
- KC_F12, _________________FUNC_LEFT_________________, _______, _______, _________________FUNC_RIGHT________________, KC_F11,
- KC_TILD, _________________LOWER_L1__________________, _______, _______, _________________LOWER_R1__________________, KC_PIPE,
- _______, ___________________BLANK___________________, _________________LOWER_R2__________________, KC_DQUO,
- _______, ___________________BLANK___________________, _______, _______, _________________LOWER_R3__________________, KC_PSCR,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PAUS,
- _______, _______, _______, _______,
- _______, _______,
- _______, _______, _______, _______, _______, _______
- ),
-
- [_RAISE] = LAYOUT_ergodox_pretty_wrapper(
- KC_F12, _________________FUNC_LEFT_________________, _______, _______, _________________FUNC_RIGHT________________, KC_F11,
- KC_GRV, _________________RAISE_L1__________________, _______, _______, _________________RAISE_R1__________________, KC_BSLS,
- _______, _________________RAISE_L2__________________, _________________RAISE_R2__________________, KC_QUOT,
- _______, _________________RAISE_L3__________________, _______, _______, _________________RAISE_R3__________________, KC_PSCR,
- _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_PGUP, KC_END, KC_SCRL,
- _______, _______, _______, _______,
- _______, _______,
- _______, _______, _______, _______, _______, _______
- ),
-
- [_ADJUST] = LAYOUT_ergodox_pretty_wrapper(
- QK_MAKE, _______, _______, _______, _______, _______, UC_NEXT, KC_NUKE, _________________ADJUST_R1_________________, QK_BOOT,
- VRSN, _________________ADJUST_L1_________________, _______, _______, _________________ADJUST_R1_________________, EE_CLR,
- _______, _________________ADJUST_L2_________________, _________________ADJUST_R2_________________, RGB_IDL,
- KEYLOCK, _________________ADJUST_L3_________________, _______, _______, _________________ADJUST_R3_________________, TG_MODS,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______,
- _______, _______,
- _______, _______, _______, _______, _______, _______
- ),
-
-};
-// clang-format on
-
-bool process_record_keymap(uint16_t keycode, keyrecord_t *record) {
- switch (keycode) {
- case KC_1:
- if (IS_LAYER_ON(_GAMEPAD) && userspace_config.swapped_numbers) {
- if (record->event.pressed) {
- register_code(KC_2);
- } else {
- unregister_code(KC_2);
- }
- return false;
- }
- break;
- case KC_2:
- if (IS_LAYER_ON(_GAMEPAD) && userspace_config.swapped_numbers) {
- if (record->event.pressed) {
- register_code(KC_1);
- } else {
- unregister_code(KC_1);
- }
- return false;
- }
- break;
- case KC_SWAP_NUM:
- if (record->event.pressed) {
- userspace_config.swapped_numbers ^= 1;
- eeconfig_update_user_config(&userspace_config.raw);
- }
- break;
- }
- return true;
-}
-
-void housekeeping_task_keymap(void) { // runs frequently to update info
-#ifdef KEYBOARD_ergodox_ez
- uint8_t modifiers = get_mods();
- led_t led_state = host_keyboard_led_state();
- uint8_t one_shot = get_oneshot_mods();
-
- if (!skip_leds) {
- ergodox_board_led_off();
- ergodox_right_led_1_off();
- ergodox_right_led_2_off();
- ergodox_right_led_3_off();
-
- // Since we're not using the LEDs here for layer indication anymore,
- // then lets use them for modifier indicators. Shame we don't have 4...
- // Also, no "else", since we want to know each, independently.
- if ((modifiers | one_shot) & MOD_MASK_SHIFT || led_state.caps_lock) {
- ergodox_right_led_2_on();
- ergodox_right_led_2_set(50);
- }
- if ((modifiers | one_shot) & MOD_MASK_CTRL) {
- ergodox_right_led_1_on();
- ergodox_right_led_1_set(10);
- }
- if ((modifiers | one_shot) & MOD_MASK_ALT) {
- ergodox_right_led_3_on();
- ergodox_right_led_3_set(10);
- }
- }
-#endif
-}
-
-bool indicator_is_this_led_used_keyboard(uint8_t index) {
- switch (index) {
- case 13 ... 14:
- return true;
- break;
- default:
- return false;
- }
-}
-
-#ifdef RGB_MATRIX_ENABLE
-
-void suspend_power_down_keymap(void) { rgb_matrix_set_suspend_state(true); }
-
-void suspend_wakeup_init_keymap(void) { rgb_matrix_set_suspend_state(false); }
-
-bool rgb_matrix_indicators_advanced_keymap(uint8_t led_min, uint8_t led_max) {
- if (layer_state_is(_GAMEPAD)) {
- RGB_MATRIX_INDICATOR_SET_COLOR(32, 0x00, 0xFF, 0x00); // Q
- RGB_MATRIX_INDICATOR_SET_COLOR(31, 0x00, 0xFF, 0xFF); // W
- RGB_MATRIX_INDICATOR_SET_COLOR(30, 0xFF, 0x00, 0x00); // E
- RGB_MATRIX_INDICATOR_SET_COLOR(29, 0xFF, 0x80, 0x00); // R
- RGB_MATRIX_INDICATOR_SET_COLOR(37, 0x00, 0xFF, 0xFF); // A
- RGB_MATRIX_INDICATOR_SET_COLOR(36, 0x00, 0xFF, 0xFF); // S
- RGB_MATRIX_INDICATOR_SET_COLOR(35, 0x00, 0xFF, 0xFF); // D
- RGB_MATRIX_INDICATOR_SET_COLOR(34, 0x7A, 0x00, 0xFF); // F
-
- RGB_MATRIX_INDICATOR_SET_COLOR((userspace_config.swapped_numbers ? 26 : 27), 0xFF, 0xFF, 0xFF); // 1
- RGB_MATRIX_INDICATOR_SET_COLOR((userspace_config.swapped_numbers ? 27 : 26), 0x00, 0xFF, 0x00); // 2
- RGB_MATRIX_INDICATOR_SET_COLOR(25, 0x7A, 0x00, 0xFF); // 3
- }
- return true;
-}
-
-#endif // RGB_MATRIX_INIT
-
-#ifdef TAPPING_TERM_PER_KEY
-uint16_t get_tapping_term(uint16_t keycode, keyrecord_t *record) {
- if (keycode >= QK_MOD_TAP && keycode <= QK_MOD_TAP_MAX) {
- if (mod_config(keycode & 0xf) & MOD_MASK_ALT) {
- return (2 * TAPPING_TERM);
- }
- }
- return TAPPING_TERM;
-}
-#endif
diff --git a/layouts/community/ergodox/drashna/notes.txt b/layouts/community/ergodox/drashna/notes.txt
deleted file mode 100644
index 0f3959ff61..0000000000
--- a/layouts/community/ergodox/drashna/notes.txt
+++ /dev/null
@@ -1,6 +0,0 @@
-Pins used by Ergodox EZ
-
-Column Pins: F0 F1 F4 F5 F6 F7
-Row Pins : B0 B1 B2 B3 D2 D3 C6
-LEDs : D6 B5 B6 B7
-:
diff --git a/layouts/community/ergodox/drashna/rules.mk b/layouts/community/ergodox/drashna/rules.mk
deleted file mode 100644
index 072b70de19..0000000000
--- a/layouts/community/ergodox/drashna/rules.mk
+++ /dev/null
@@ -1,20 +0,0 @@
-BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite
-TAP_DANCE_ENABLE = no
-COMMAND_ENABLE = no # Commands for debug and configuration
-CONSOLE_ENABLE = no
-
-ifeq ($(strip $(KEYBOARD)), ergodox_ez)
- RGBLIGHT_ENABLE = yes
- RGB_MATRIX_ENABLE = yes
- INDICATOR_LIGHTS = no
- RGBLIGHT_STARTUP_ANIMATION = yes
-endif
-
-UNICODE_ENABLE = no
-UNICDOEMAP_ENABLE = no
-CUSTOM_UNICODE_ENABLE = no
-
-ifeq ($(strip $(KEYBOARD)), hotdox76v2)
- OLED_ENABLE = no
- RGB_MATRIX_ENABLE = no
-endif
diff --git a/layouts/community/ergodox/dvorak/dvorak.png.md b/layouts/community/ergodox/dvorak/dvorak.png.md
deleted file mode 100644
index 0022150013..0000000000
--- a/layouts/community/ergodox/dvorak/dvorak.png.md
+++ /dev/null
@@ -1 +0,0 @@
-https://i.imgur.com/zLx5fus.png
diff --git a/layouts/community/ergodox/dvorak/keymap.c b/layouts/community/ergodox/dvorak/keymap.c
deleted file mode 100644
index 664d8055a4..0000000000
--- a/layouts/community/ergodox/dvorak/keymap.c
+++ /dev/null
@@ -1,160 +0,0 @@
-#include QMK_KEYBOARD_H
-#include "debug.h"
-#include "action_layer.h"
-
-#define BASE 0 // default layer
-#define SYMB 1 // symbols
-#define MDIA 2 // media keys
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-/* Keymap 0: Basic layer
- *
- * ,--------------------------------------------------. ,--------------------------------------------------.
- * | = | 1 | 2 | 3 | 4 | 5 | LEFT | | RIGHT| 6 | 7 | 8 | 9 | 0 | \ |
- * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | Del | ' | , | . | P | Y | L1 | | L1 | F | G | C | R | L | / |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | BkSp | A | O | E | U | I |------| |------| D | H | T | N |S / L2| - |
- * |--------+------+------+------+------+------| Hyper| | Meh |------+------+------+------+------+--------|
- * | LShift |:/Ctrl| Q | J | K | X | | | | B | M | W | V |Z/Ctrl| RShift |
- * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * |Grv/L1| '" |AltShf| Left | Right| | Up | Down | [ | ] | ~L1 |
- * `----------------------------------' `----------------------------------'
- * ,-------------. ,-------------.
- * | App | LGui | | Alt |Ctrl/Esc|
- * ,------|------|------| |------+--------+------.
- * | | | Home | | PgUp | | |
- * | Space|Backsp|------| |------| Tab |Enter |
- * | |ace | End | | PgDn | | |
- * `--------------------' `----------------------'
- */
-// If it accepts an argument (i.e, is a function), it doesn't need KC_.
-// Otherwise, it needs KC_*
-[BASE] = LAYOUT_ergodox( // layer 0 : default
- // left hand
- KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, KC_LEFT,
- KC_DEL, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, TG(1),
- KC_BSPC, KC_A, KC_O, KC_E, KC_U, KC_I,
- KC_LSFT, CTL_T(KC_SCLN), KC_Q, KC_J, KC_K, KC_X, ALL_T(KC_NO),
- LT(SYMB,KC_GRV),KC_QUOT, LALT(KC_LSFT), KC_LEFT,KC_RGHT,
- ALT_T(KC_APP), KC_LGUI,
- KC_HOME,
- KC_SPC,KC_BSPC,KC_END,
- // right hand
- KC_RGHT, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSLS,
- TG(1), KC_F, KC_G, KC_C, KC_R, KC_L, KC_SLSH,
- KC_D, KC_H, KC_T, KC_N, LT(MDIA, KC_S), KC_MINS,
- MEH_T(KC_NO),KC_B, KC_M, KC_W, KC_V, CTL_T(KC_Z), KC_RSFT,
- KC_UP, KC_DOWN,KC_LBRC,KC_RBRC, TT(SYMB),
- KC_LALT, CTL_T(KC_ESC),
- KC_PGUP,
- KC_PGDN,KC_TAB, KC_ENT
- ),
-/* Keymap 1: Symbol Layer
- *
- * ,--------------------------------------------------. ,--------------------------------------------------.
- * | | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | F11 |
- * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | | ! | @ | { | } | | | | | | Up | 7 | 8 | 9 | * | F12 |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | # | $ | ( | ) | ` |------| |------| Down | 4 | 5 | 6 | + | |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | % | ^ | [ | ] | ~ | | | | & | 1 | 2 | 3 | \ | |
- * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * | | | | | | | | . | 0 | = | |
- * `----------------------------------' `----------------------------------'
- * ,-------------. ,-------------.
- * | | | | | |
- * ,------|------|------| |------+------+------.
- * | | | | | | | |
- * | | |------| |------| | |
- * | | | | | | | |
- * `--------------------' `--------------------'
- */
-// SYMBOLS
-[SYMB] = LAYOUT_ergodox(
- // left hand
- KC_TRNS,KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_TRNS,
- KC_TRNS,KC_EXLM,KC_AT, KC_LCBR,KC_RCBR,KC_PIPE,KC_TRNS,
- KC_TRNS,KC_HASH,KC_DLR, KC_LPRN,KC_RPRN,KC_GRV,
- KC_TRNS,KC_PERC,KC_CIRC,KC_LBRC,KC_RBRC,KC_TILD,KC_TRNS,
- KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
- KC_TRNS,KC_TRNS,
- KC_TRNS,
- KC_TRNS,KC_TRNS,KC_TRNS,
- // right hand
- KC_TRNS, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,
- KC_TRNS, KC_UP, KC_7, KC_8, KC_9, KC_ASTR, KC_F12,
- KC_DOWN, KC_4, KC_5, KC_6, KC_PLUS, KC_TRNS,
- KC_TRNS, KC_AMPR, KC_1, KC_2, KC_3, KC_BSLS, KC_TRNS,
- KC_TRNS,KC_DOT, KC_0, KC_EQL, KC_TRNS,
- KC_TRNS, KC_TRNS,
- KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS
-),
-/* Keymap 2: Media and mouse keys
- *
- * ,--------------------------------------------------. ,--------------------------------------------------.
- * | | | | | | | | | | | | | | | |
- * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | | | | MsUp | | | | | | | | | | | |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | |MsLeft|MsDown|MsRght| |------| |------| | | | | | Play |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | | | | | | | | | | | Prev | Next | | |
- * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * | | | | Lclk | Rclk | |VolUp |VolDn | Mute | | |
- * `----------------------------------' `----------------------------------'
- * ,-------------. ,-------------.
- * | | | | | |
- * ,------|------|------| |------+------+------.
- * | | | | | | |Brwser|
- * | | |------| |------| |Back |
- * | | | | | | | |
- * `--------------------' `--------------------'
- */
-// MEDIA AND MOUSE
-LAYOUT_ergodox(
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_MS_U, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_R, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_BTN1, KC_BTN2,
- KC_TRNS, KC_TRNS,
- KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS,
- // right hand
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_MPRV, KC_MNXT, KC_TRNS, KC_TRNS,
- KC_VOLU, KC_VOLD, KC_MUTE, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS,
- KC_TRNS,
- KC_TRNS, KC_TRNS, KC_WBAK
-),
-};
-
-// Runs constantly in the background, in a loop.
-void matrix_scan_user(void) {
-
- uint8_t layer = get_highest_layer(layer_state);
-
- ergodox_board_led_off();
- ergodox_right_led_1_off();
- ergodox_right_led_2_off();
- ergodox_right_led_3_off();
- switch (layer) {
- // TODO: Make this relevant to the ErgoDox EZ.
- case 1:
- ergodox_right_led_1_on();
- break;
- case 2:
- ergodox_right_led_2_on();
- break;
- default:
- // none
- break;
- }
-
-};
diff --git a/layouts/community/ergodox/dvorak_emacs/keymap.c b/layouts/community/ergodox/dvorak_emacs/keymap.c
deleted file mode 100644
index 8bd22bc17e..0000000000
--- a/layouts/community/ergodox/dvorak_emacs/keymap.c
+++ /dev/null
@@ -1,133 +0,0 @@
-#include QMK_KEYBOARD_H
-#include "debug.h"
-#include "action_layer.h"
-
-/******************************************************************************************
- * DVORAK LAYOUT (see http://djelibeibi.unex.es/dvorak/)
- * Layer 1: auxiliary keys
- * Layer 2: full qwerty layout
- *****************************************************************************************/
-
-// LAYERS
-#define BASE 0 // dvorak layout (default)
-#define AUX 1 // auxiliary keys
-
-// MACROS
-/* #define OBRACE 0 // key { or shift */
-/* #define CBRACE 1 // key } or shift */
-/* #define OBRACK 2 // key [ or left alt */
-/* #define CBRACK 3 // key ] or left alt */
-/* #define CAPS 4 // caps lock */
-
-// TIMERS
-#define KEY_TAP_FAST 85
-#define KEY_TAP_SLOW 95
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-/* Keymap 0: Base layer
- * Keys with double values (like Esc/Ctrl) correspond to the 'tapped' key and the 'held' key, respectively
- *
- * ,--------------------------------------------------. ,--------------------------------------------------.
- * | | 1 | 2 | 3 | 4 | 5 | Esc | | Esc | 6 | 7 | 8 | 9 | 0 | = / + |
- * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | ~ |" / ' |, / < |. / > | P | Y | [ | | ] | F | G | C | H | L | / / ? |
- * |--------+------+------+------+------+------| { | | } |------+------+------+------+------+--------|
- * | Tab | A | O | E |U/LSft| I/L1 |------| |------| D/L1|R/RSft| T | N | S | - / _ |
- * |--------+------+------+------+------+------| LGUI | | LGUI |------+------+------+------+------+--------|
- * | {/LSft |; / : | Q | J | K | X | | | | B | M | W | V | Z | }/RSft |
- * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * | | | | | ~L1 | | ~L1 | | | \ / || |
- * `----------------------------------' `----------------------------------'
- * ,-------------. ,-------------.
- * | HOME | END | | LEFT | RIGHT|
- * ,------|------|------| |------+--------+------.
- * | BSPC | DEL | PGUP | | UP | SPACE |RETURN|
- * | / | / |------| |------| / | / |
- * | LCTL | LALT |PGDWN | | DOWN | LALT | LCTL |
- * `--------------------' `----------------------'
- *
- */
-[BASE] = LAYOUT_ergodox(
- // left hand
- KC_NO, KC_1, KC_2, KC_3, KC_4, KC_5, KC_ESC,
- KC_TILD, KC_QUOTE, KC_COMM,KC_DOT, KC_P, KC_Y, KC_LBRC,
- KC_TAB, KC_A, KC_O, KC_E, SFT_T(KC_U), LT(AUX, KC_I),
- SFT_T(KC_LBRC), KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_LGUI,
- KC_NO, KC_NO, KC_NO, KC_NO, MO(AUX),
- KC_HOME, KC_END,
- KC_PGUP,
- CTL_T(KC_BSPC), ALT_T(KC_DEL), KC_PGDN,
- // right hand
- KC_ESC, KC_6, KC_7, KC_8, KC_9, KC_0, KC_EQL,
- KC_RBRC, KC_F, KC_G, KC_C, KC_R, KC_L, KC_SLASH,
- LT(AUX, KC_D), SFT_T(KC_H), KC_T, KC_N, KC_S, KC_MINUS,
- KC_LGUI, KC_B, KC_M, KC_W, KC_V, KC_Z, SFT_T(KC_RBRC),
- MO(AUX), KC_NO, KC_NO, KC_BSLS, KC_NO,
- KC_LEFT, KC_RIGHT,
- KC_UP,
- KC_DOWN, ALT_T(KC_ENT), CTL_T(KC_SPC)
- ),
-/* Keymap 1: Aux layer
- *
- * ,--------------------------------------------------. ,--------------------------------------------------.
- * | VolUp | | | | | | SLEEP | PWR | | | | | | |
- * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | VolDn | F1 | F2 | F3 | F4 | | | | | | 7 | 8 | 9 | * | |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | F5 | F6 | F7 | F8 | TRANS|------| |------|TRANS | 4 | 5 | 6 | + | |
- * |--------+------+------+------+------+------| | |PSCR |------+------+------+------+------+--------|
- * | TRANS | F9 | F10 | F11 | F12 | | | | | | 1 | 2 | 3 | / | TRANS |
- * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * |CTRL-S|CTRL-Z|CTRL-X|CTRL-C| TRANS| | TRANS| . | 0 | = | |
- * `----------------------------------' `----------------------------------'
- * ,-------------. ,-------------.
- * | TRANS| TRANS| | TRANS| TRANS|
- * ,------|------|------| |------+------+------.
- * | | | TRANS| | TRANS| | |
- * |TRANS |TRANS |------| |------| TRANS| TRANS|
- * | | | TRANS| | TRANS| | |
- * `--------------------' `--------------------'
- */
-[AUX] = LAYOUT_ergodox(
- // left hand
- KC_VOLU, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_SLEP,
- KC_VOLD, KC_F1, KC_F2, KC_F3, KC_F4, KC_NO, KC_NO,
- KC_NO , KC_F5, KC_F6, KC_F7, KC_F8, KC_TRNS,
- KC_TRNS, KC_F9, KC_F10, KC_F11, KC_F12, KC_NO, KC_NO,
- LCTL(KC_S), LCTL(KC_Z), LCTL(KC_X), LCTL(KC_C), KC_TRNS,
- KC_TRNS , KC_TRNS,
- KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS,
- // right hand
- KC_PWR, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
- KC_NO, KC_NO, KC_7, KC_8, KC_9, KC_PAST, KC_NO,
- KC_TRNS, KC_4, KC_5, KC_6, KC_PPLS, KC_NO,
- KC_PSCR, KC_NO, KC_1, KC_2, KC_3, KC_PSLS, KC_TRNS,
- KC_TRNS,KC_DOT, KC_0, KC_PEQL, KC_NO,
- KC_TRNS , KC_TRNS,
- KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS
-),
-};
-
-// Runs constantly in the background, in a loop.
-void matrix_scan_user(void) {
-
- uint8_t layer = get_highest_layer(layer_state);
-
- ergodox_board_led_off();
- ergodox_right_led_1_off();
- ergodox_right_led_2_off();
- ergodox_right_led_3_off();
- switch (layer) {
- case 1:
- ergodox_right_led_1_on();
- break;
- case 2:
- ergodox_right_led_2_on();
- break;
- default:
- // none
- break;
- }
-}
diff --git a/layouts/community/ergodox/dvorak_emacs/readme.md b/layouts/community/ergodox/dvorak_emacs/readme.md
deleted file mode 100644
index a3fc34afeb..0000000000
--- a/layouts/community/ergodox/dvorak_emacs/readme.md
+++ /dev/null
@@ -1,70 +0,0 @@
-# Ergodox Dvorak Layout with emacs binding in mind
- * Control & Alt key on the thumbs (activated if pressed with another key).
- * In the same way, "U" and "R" are the shift modifier if pressed with another key.
- * "I" and "D" set the layer 1 for the auxiliary keys if pressed with another key.
- * Software layout set to english.
-
-## Keymap Layers
- - L0: dvorak with some customizations (see layout below)
- - L1: auxiliary keys (includes function keys, numpad...)
-
-
-### Keymap 0: Base layer
-Keys with double values (like U/LSft) correspond to the 'tapped' key and the 'held' key, respectively
-
-<pre><code>
-
-,--------------------------------------------------. ,--------------------------------------------------.
-| | 1 | 2 | 3 | 4 | 5 | Esc | | Esc | 6 | 7 | 8 | 9 | 0 | = |
-|--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
-| ~ | ' | , | . | P | Y | [ | | ] | F | G | C | H | L | / |
-|--------+------+------+------+------+------| { | | } |------+------+------+------+------+--------|
-| Tab | A | O | E |U/LSft| I/L1 |------| |------| D/L1|R/RSft| T | N | S | - |
-|--------+------+------+------+------+------| LGUI | | LGUI |------+------+------+------+------+--------|
-| {/LSft | ; | Q | J | K | X | | | | B | M | W | V | Z | }/RSft |
-`--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- | | | | | ~L1 | | ~L1 | | | \ | |
- `----------------------------------' `----------------------------------'
- ,-------------. ,-------------.
- | HOME | END | | LEFT | RIGHT|
- ,------|------|------| |------+--------+------.
- | BSPC | DEL | PGUP | | UP | SPACE |RETURN|
- | / | / |------| |------| / | / |
- | LCTL | LALT |PGDWN | | DOWN | LALT | LCTL |
- `--------------------' `----------------------'
-
-</pre></code>
-
-### Keymap 1: Aux layer
-
-<pre><code>
-
-,--------------------------------------------------. ,--------------------------------------------------.
-| VolUp | | | | | | SLEEP | PWR | | | | | | |
-|--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
-| VolDn | F1 | F2 | F3 | F4 | | | | | | 7 | 8 | 9 | * | |
-|--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
-| | F5 | F6 | F7 | F8 | TRANS|------| |------|TRANS | 4 | 5 | 6 | + | |
-|--------+------+------+------+------+------| | |PSCR |------+------+------+------+------+--------|
-| TRANS | F9 | F10 | F11 | F12 | | | | | | 1 | 2 | 3 | / | TRANS |
-`--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- |CTRL-S|CTRL-Z|CTRL-X|CTRL-C| TRANS| | TRANS| . | 0 | = | |
- `----------------------------------' `----------------------------------'
- ,-------------. ,-------------.
- | TRANS| TRANS| | TRANS| TRANS|
- ,------|------|------| |------+------+------.
- | | | TRANS| | TRANS| | |
- |TRANS |TRANS |------| |------| TRANS| TRANS|
- | | | TRANS| | TRANS| | |
- `--------------------' `--------------------'
-
-</pre></code>
-
-
-
-## Generation of .hex file
-> In the "qmk_firmware/keyboards/ergodox" directory.
-
-> Execute "make dvorak_emacs". Then the hex file "ergodox_ez_dvorak_emacs.hex" is in the root directory : "qmk_firmware".
-
-> Flash with `teensy_loader` binary
diff --git a/layouts/community/ergodox/dvorak_emacs_software/keymap.c b/layouts/community/ergodox/dvorak_emacs_software/keymap.c
deleted file mode 100644
index 188347607f..0000000000
--- a/layouts/community/ergodox/dvorak_emacs_software/keymap.c
+++ /dev/null
@@ -1,134 +0,0 @@
-#include QMK_KEYBOARD_H
-#include "keymap_dvorak.h"
-#include "debug.h"
-#include "action_layer.h"
-
-/******************************************************************************************
- * DVORAK LAYOUT (see http://djelibeibi.unex.es/dvorak/)
- * Layer 1: auxiliary keys
- * Layer 2: full qwerty layout
- *****************************************************************************************/
-
-// LAYERS
-#define BASE 0 // dvorak layout (default)
-#define AUX 1 // auxiliary keys
-
-// MACROS
-/* #define OBRACE 0 // key { or shift */
-/* #define CBRACE 1 // key } or shift */
-/* #define OBRACK 2 // key [ or left alt */
-/* #define CBRACK 3 // key ] or left alt */
-/* #define CAPS 4 // caps lock */
-
-// TIMERS
-#define KEY_TAP_FAST 85
-#define KEY_TAP_SLOW 95
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-/* Keymap 0: Base layer
- * Keys with double values (like Esc/Ctrl) correspond to the 'tapped' key and the 'held' key, respectively
- *
- * ,--------------------------------------------------. ,--------------------------------------------------.
- * | | 1 | 2 | 3 | 4 | 5 | Esc | | Esc | 6 | 7 | 8 | 9 | 0 | = / + |
- * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | ~ |" / ' |, / < |. / > | P | Y | [ | | ] | F | G | C | H | L | / / ? |
- * |--------+------+------+------+------+------| { | | } |------+------+------+------+------+--------|
- * | Tab | A | O | E |U/LSft| I/L1 |------| |------| D/L1|R/RSft| T | N | S | - / _ |
- * |--------+------+------+------+------+------| LGUI | | LGUI |------+------+------+------+------+--------|
- * | {/LSft |; / : | Q | J | K | X | | | | B | M | W | V | Z | }/RSft |
- * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * | | | | | ~L1 | | ~L1 | | | \ / || |
- * `----------------------------------' `----------------------------------'
- * ,-------------. ,-------------.
- * | HOME | END | | LEFT | RIGHT|
- * ,------|------|------| |------+--------+------.
- * | BSPC | DEL | PGUP | | UP | SPACE |RETURN|
- * | / | / |------| |------| / | / |
- * | LCTL | LALT |PGDWN | | DOWN | LALT | LCTL |
- * `--------------------' `----------------------'
- *
- */
-[BASE] = LAYOUT_ergodox(
- // left hand
- KC_NO, KC_1, KC_2, KC_3, KC_4, KC_5, KC_ESC,
- KC_TILD, DV_QUOT, DV_COMM,DV_DOT, DV_P, DV_Y, DV_LBRC,
- KC_TAB, DV_A, DV_O, DV_E, SFT_T(DV_U), LT(AUX, DV_I),
- SFT_T(DV_LBRC), DV_SCLN, DV_Q, DV_J, DV_K, DV_X, KC_LGUI,
- KC_NO, KC_NO, KC_NO, KC_NO, MO(AUX),
- KC_HOME, KC_END,
- KC_PGUP,
- CTL_T(KC_BSPC), ALT_T(KC_DEL), KC_PGDN,
- // right hand
- KC_ESC, KC_6, KC_7, KC_8, KC_9, KC_0, DV_EQL,
- DV_RBRC, DV_F, DV_G, DV_C, DV_R, DV_L, DV_SLSH,
- LT(AUX, DV_D), SFT_T(DV_H), DV_T, DV_N, DV_S, DV_MINS,
- KC_LGUI, DV_B, DV_M, DV_W, DV_V, DV_Z, SFT_T(DV_RBRC),
- MO(AUX), KC_NO, KC_NO, KC_BSLS, KC_NO,
- KC_LEFT, KC_RIGHT,
- KC_UP,
- KC_DOWN, ALT_T(KC_ENT), CTL_T(KC_SPC)
- ),
-/* Keymap 1: Aux layer
- *
- * ,--------------------------------------------------. ,--------------------------------------------------.
- * | VolUp | | | | | | SLEEP | PWR | | | | | | |
- * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | VolDn | F1 | F2 | F3 | F4 | | | | | | 7 | 8 | 9 | * | |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | F5 | F6 | F7 | F8 | TRANS|------| |------|TRANS | 4 | 5 | 6 | + | |
- * |--------+------+------+------+------+------| | |PSCR |------+-----aan+------+------+------+--------|
- * | TRANS | F9 | F10 | F11 | F12 | | | | | | 1 | 2 | 3 | / | TRANS |
- * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * |CTRL-S|CTRL-Z|CTRL-X|CTRL-C| TRANS| | TRANS| . | 0 | = | |
- * `----------------------------------' `----------------------------------'
- * ,-------------. ,-------------.
- * | TRANS| TRANS| | TRANS| TRANS|
- * ,------|------|------| |------+------+------.
- * | | | TRANS| | TRANS| | |
- * |TRANS |TRANS |------| |------| TRANS| TRANS|
- * | | | TRANS| | TRANS| | |
- * `--------------------' `--------------------'
- */
-[AUX] = LAYOUT_ergodox(
- // left hand
- KC_VOLU, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_SLEP,
- KC_VOLD, KC_F1, KC_F2, KC_F3, KC_F4, KC_NO, KC_NO,
- KC_NO , KC_F5, KC_F6, KC_F7, KC_F8, KC_TRNS,
- KC_TRNS, KC_F9, KC_F10, KC_F11, KC_F12, KC_NO, KC_NO,
- LCTL(DV_S), LCTL(DV_Z), LCTL(DV_X), LCTL(DV_C), KC_TRNS,
- KC_TRNS , KC_TRNS,
- KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS,
- // right hand
- KC_PWR, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
- KC_NO, KC_NO, KC_7, KC_8, KC_9, KC_PAST, KC_NO,
- KC_TRNS, KC_4, KC_5, KC_6, KC_PPLS, KC_NO,
- KC_PSCR, KC_NO, KC_1, KC_2, KC_3, KC_PSLS, KC_TRNS,
- KC_TRNS,KC_DOT, KC_0, KC_PEQL, KC_NO,
- KC_TRNS , KC_TRNS,
- KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS
-),
-};
-
-// Runs constantly in the background, in a loop.
-void matrix_scan_user(void) {
-
- uint8_t layer = get_highest_layer(layer_state);
-
- ergodox_board_led_off();
- ergodox_right_led_1_off();
- ergodox_right_led_2_off();
- ergodox_right_led_3_off();
- switch (layer) {
- case 1:
- ergodox_right_led_1_on();
- break;
- case 2:
- ergodox_right_led_2_on();
- break;
- default:
- // none
- break;
- }
-}
diff --git a/layouts/community/ergodox/dvorak_emacs_software/readme.md b/layouts/community/ergodox/dvorak_emacs_software/readme.md
deleted file mode 100644
index 0e1e94ffe1..0000000000
--- a/layouts/community/ergodox/dvorak_emacs_software/readme.md
+++ /dev/null
@@ -1,74 +0,0 @@
-# Ergodox Dvorak Layout with emacs binding in mind - software version
-
-This configuration is the same as the dvorak_emacs layout, but using a sofware dvorak configuration
-instead of a firmware configuration. This layout is for those who run their computer in dvorak mode.
-
- * Control & Alt key on the thumbs (activated if pressed with another key).
- * In the same way, "U" and "R" are the shift modifier if pressed with another key.
- * "I" and "D" set the layer 1 for the auxiliary keys if pressed with another key.
- * Software layout set to english.
-
-## Keymap Layers
- - L0: dvorak with some customizations (see layout below)
- - L1: auxiliary keys (includes function keys, numpad...)
-
-
-### Keymap 0: Base layer
-Keys with double values (like U/LSft) correspond to the 'tapped' key and the 'held' key, respectively
-
-<pre><code>
-
-,--------------------------------------------------. ,--------------------------------------------------.
-| | 1 | 2 | 3 | 4 | 5 | Esc | | Esc | 6 | 7 | 8 | 9 | 0 | = |
-|--------|------|------|------|------|-------------| |------|------|------|------|------|------|--------|
-| ~ | ' | , | . | P | Y | [ | | ] | F | G | C | H | L | / |
-|--------|------|------|------|------|------| { | | } |------|------|------|------|------|--------|
-| Tab | A | O | E |U/LSft| I/L1 |------| |------| D/L1|R/RSft| T | N | S | - |
-|--------|------|------|------|------|------| LGUI | | LGUI |------|------|------|------|------|--------|
-| {/LSft | ; | Q | J | K | X | | | | B | M | W | V | Z | }/RSft |
-`--------|------|------|------|------|-------------' `-------------|------|------|------|------|--------'
- | | | | | ~L1 | | ~L1 | | | \ | |
- `----------------------------------' `----------------------------------'
- ,-------------. ,-------------.
- | HOME | END | | LEFT | RIGHT|
- ,------|------|------| |------|--------|------.
- | BSPC | DEL | PGUP | | UP | SPACE |RETURN|
- | / | / |------| |------| / | / |
- | LCTL | LALT |PGDWN | | DOWN | LALT | LCTL |
- `--------------------' `----------------------'
-
-</pre></code>
-
-### Keymap 1: Aux layer
-
-<pre><code>
-
-,--------------------------------------------------. ,--------------------------------------------------.
-| VolUp | | | | | | SLEEP | PWR | | | | | | |
-|--------|------|------|------|------|-------------| |------|------|------|------|------|------|--------|
-| VolDn | F1 | F2 | F3 | F4 | | | | | | 7 | 8 | 9 | * | |
-|--------|------|------|------|------|------| | | |------|------|------|------|------|--------|
-| | F5 | F6 | F7 | F8 | TRANS|------| |------|TRANS | 4 | 5 | 6 | + | |
-|--------|------|------|------|------|------| | |PSCR |------|------|------|------|------|--------|
-| TRANS | F9 | F10 | F11 | F12 | | | | | | 1 | 2 | 3 | / | TRANS |
-`--------|------|------|------|------|-------------' `-------------|------|------|------|------|--------'
- |CTRL-S|CTRL-Z|CTRL-X|CTRL-C| TRANS| | TRANS| . | 0 | = | |
- `----------------------------------' `----------------------------------'
- ,-------------. ,-------------.
- | TRANS| TRANS| | TRANS| TRANS|
- ,------|------|------| |------|------|------.
- | | | TRANS| | TRANS| | |
- |TRANS |TRANS |------| |------| TRANS| TRANS|
- | | | TRANS| | TRANS| | |
- `--------------------' `--------------------'
-
-</pre></code>
-
-
-
-## Generation of .hex file
-> In the "qmk_firmware/keyboards/ergodox" directory.
-
-> Execute "make dvorak_emacs". Then the hex file "ergodox_ez_dvorak_emacs.hex" is in the root directory : "qmk_firmware".
-
-> Flash with `teensy_loader` binary
diff --git a/layouts/community/ergodox/dvorak_intl_squisher/keymap.c b/layouts/community/ergodox/dvorak_intl_squisher/keymap.c
deleted file mode 100644
index 5d998a110b..0000000000
--- a/layouts/community/ergodox/dvorak_intl_squisher/keymap.c
+++ /dev/null
@@ -1,161 +0,0 @@
-#include QMK_KEYBOARD_H
-#include "debug.h"
-#include "action_layer.h"
-
-#define BASE 0 // default layer
-#define SYMB 1 // symbols
-#define MDIA 2 // media keys
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-/* Keymap 0: Basic layer
- *
- * ,--------------------------------------------------. ,--------------------------------------------------.
- * | = | 1 | 2 | 3 | 4 | 5 | BrBck| | Play | 6 | 7 | 8 | 9 | 0 | \ / L2 |
- * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | Esc | ' | , | . | P | Y | Del | | Ins | F | G | C | R | L | / |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | BkSp | A | O | E | U | I |------| |------| D | H | T | N | S | - |
- * |--------+------+------+------+------+------| Hyper| | Meh |------+------+------+------+------+--------|
- * | LShift |:/Ctrl| Q | J | K | X | | | | B | M | W | V |Z/Ctrl| RShift |
- * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * |Grv/L1| LAlt | LGui | Left | Right| | Up | Down | [ | ] | ~L1 |
- * `----------------------------------' `----------------------------------'
- * ,-------------. ,---------------.
- * | App | L1 | | L2 |PrntScr |
- * ,------|------|------| |------+--------+------.
- * | | | Home | | PgUp | | |
- * | Space| Tab |------| |------| AltShf |Enter |
- * | | | End | | PgDn | | |
- * `--------------------' `----------------------'
- */
-// If it accepts an argument (i.e, is a function), it doesn't need KC_.
-// Otherwise, it needs KC_*
-[BASE] = LAYOUT_ergodox( // layer 0 : default
- // left hand
- KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, KC_WBAK,
- KC_ESC, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_DEL,
- KC_BSPC, KC_A, KC_O, KC_E, KC_U, KC_I,
- KC_LSFT, CTL_T(KC_SCLN), KC_Q, KC_J, KC_K, KC_X, ALL_T(KC_NO),
- LT(SYMB,KC_GRV),KC_LALT, KC_LGUI, KC_LEFT,KC_RGHT,
- CTL_T(KC_APP), TG(1),
- KC_HOME,
- KC_SPC,KC_TAB,KC_END,
- // right hand
- KC_MPLY, KC_6, KC_7, KC_8, KC_9, KC_0, LT(MDIA, KC_BSLS),
- KC_INS, KC_F, KC_G, KC_C, KC_R, KC_L, KC_SLSH,
- KC_D, KC_H, KC_T, KC_N, KC_S, KC_MINS,
- MEH_T(KC_NO),KC_B, KC_M, KC_W, KC_V, CTL_T(KC_Z), KC_RSFT,
- KC_UP, KC_DOWN,KC_LBRC,KC_RBRC, TT(SYMB),
- TG(2), KC_PSCR,
- KC_PGUP,
- KC_PGDN,RALT(KC_RSFT), KC_ENT
- ),
-/* Keymap 1: Symbol & Media Layer
- *
- * ,--------------------------------------------------. ,--------------------------------------------------.
- * | | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | F11 |
- * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | | ! | @ | { | } | | | | | | Up | 7 | 8 | 9 | * | F12 |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | # | $ | ( | ) | ` |------| |------| Down | 4 | 5 | 6 | + | |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | % | ^ | [ | ] | ~ | | | | & | 1 | 2 | 3 | \ | |
- * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * | | | | Prev | Next | | | . | 0 | = | |
- * `----------------------------------' `----------------------------------'
- * ,-------------. ,-------------.
- * | | | | | |
- * ,------|------|------| |------+------+------.
- * | | | | |VolUp | | |
- * | | |------| |------| Mute | |
- * | | | | |VolDn | | |
- * `--------------------' `--------------------'
- */
-// SYMBOLS
-[SYMB] = LAYOUT_ergodox(
- // left hand
- KC_TRNS,KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_TRNS,
- KC_TRNS,KC_EXLM,KC_AT, KC_LCBR,KC_RCBR,KC_PIPE,KC_TRNS,
- KC_TRNS,KC_HASH,KC_DLR, KC_LPRN,KC_RPRN,KC_GRV,
- KC_TRNS,KC_PERC,KC_CIRC,KC_LBRC,KC_RBRC,KC_TILD,KC_TRNS,
- KC_TRNS,KC_TRNS,KC_TRNS,KC_MPRV,KC_MNXT,
- KC_TRNS,KC_TRNS,
- KC_TRNS,
- KC_TRNS,KC_TRNS,KC_TRNS,
- // right hand
- KC_TRNS, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,
- KC_TRNS, KC_UP, KC_7, KC_8, KC_9, KC_ASTR, KC_F12,
- KC_DOWN, KC_4, KC_5, KC_6, KC_PLUS, KC_TRNS,
- KC_TRNS, KC_AMPR, KC_1, KC_2, KC_3, KC_BSLS, KC_TRNS,
- KC_TRNS,KC_DOT, KC_0, KC_EQL, KC_TRNS,
- KC_TRNS, KC_TRNS,
- KC_VOLU,
- KC_VOLD, KC_MUTE, KC_TRNS
-),
-/* Keymap 2: QWERTY Layer
- *
- * ,--------------------------------------------------. ,--------------------------------------------------.
- * | | | | | | | | | | | | | | | |
- * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | | Q | W | E | R | T | | | | Y | U | I | O | P | |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | A | S | D | F | G |------| |------| H | J | K | L | ; | |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | |Z/Ctrl| X | C | V | B | | | | N | M | , | . |//Ctrl| |
- * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * | | | | | | | | | | | |
- * `----------------------------------' `----------------------------------'
- * ,-------------. ,-------------.
- * | | | | | |
- * ,------|------|------| |------+------+------.
- * | | | | | | | |
- * | | |------| |------| | |
- * | | | | | | | |
- * `--------------------' `--------------------'
- */
-// MEDIA AND MOUSE
-LAYOUT_ergodox( // layer 0 : default
- // left hand
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
- KC_TRNS, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_TRNS,
- KC_TRNS, KC_A, KC_S, KC_D, KC_F, KC_G,
- KC_TRNS, CTL_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS,
- KC_TRNS, KC_TRNS,
- KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS,
- // right hand
- KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS,
- KC_TRNS, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_TRNS,
- KC_H, KC_J, KC_K, KC_L, LT(MDIA, KC_SCLN),KC_TRNS,
- KC_TRNS, KC_N, KC_M, KC_COMM,KC_DOT, CTL_T(KC_SLSH), KC_TRNS,
- KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS,
- KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS
- ),
-};
-
-// Runs constantly in the background, in a loop.
-void matrix_scan_user(void) {
-
- uint8_t layer = get_highest_layer(layer_state);
-
- ergodox_board_led_off();
- ergodox_right_led_1_off();
- ergodox_right_led_2_off();
- ergodox_right_led_3_off();
- switch (layer) {
- // TODO: Make this relevant to the ErgoDox EZ.
- case 1:
- ergodox_right_led_1_on();
- break;
- case 2:
- ergodox_right_led_2_on();
- break;
- default:
- // none
- break;
- }
-
-};
diff --git a/layouts/community/ergodox/dvorak_intl_squisher/readme.md b/layouts/community/ergodox/dvorak_intl_squisher/readme.md
deleted file mode 100644
index 7a48bf5247..0000000000
--- a/layouts/community/ergodox/dvorak_intl_squisher/readme.md
+++ /dev/null
@@ -1,29 +0,0 @@
-# ErgoDox EZ Dvorak International Squisher
-
-Dvorak layout adjusted with several (linux) applications in mind:
-
-* Easier Escape for VIM
-* Windows/Super key for awesome WM
-* Alt+Shift for international characters
-* PrintScreen for sys-rq
-* Insert for the X11 clip-board
-
-Major layer changes:
-
-* Common multimedia keys are integrated into layer 0, less common into layer 1
-* No mouse keys
-* Layer 2 is qwerty (for easier gaming & less fortunate keyboard users)
-
-Known issues:
-
-* Alt+Shift does not work reliably (depends on the X11 kb layout? Not
- entirely clear...)
-
-![layer0](https://i.imgur.com/AL70X44.png)
-![layer1](https://i.imgur.com/k1DcUdt.png)
-![layer2](https://i.imgur.com/nK80mKf.png)
-
-## Changelog
-
-* 2016-03-29
- * Initial release
diff --git a/layouts/community/ergodox/dvorak_plover/README.md b/layouts/community/ergodox/dvorak_plover/README.md
deleted file mode 100644
index c8287b0195..0000000000
--- a/layouts/community/ergodox/dvorak_plover/README.md
+++ /dev/null
@@ -1,14 +0,0 @@
-Dvorak support, plover support, gaming support
-
-I'm used to the Kinesis, so originally I was just going to patch up
-the thumb keys to be more familiar. But the ergodox is really well
-suited to NKRO support in Plover, so I added a layer for that, and
-then I remembered that dvorak can be really annoying for video
-games (try to reach WASD), so I added a layer for that.
-
-The result is probably a bit idiosyncratic, but it works for me.
-
-(I also don't have any press/hold distinction keys, because that
-confuses my fuzzy little brain.)
-
-Contributed by seebs (seebs@seebs.net)
diff --git a/layouts/community/ergodox/dvorak_plover/keymap.c b/layouts/community/ergodox/dvorak_plover/keymap.c
deleted file mode 100644
index 51f7e61203..0000000000
--- a/layouts/community/ergodox/dvorak_plover/keymap.c
+++ /dev/null
@@ -1,206 +0,0 @@
-#include QMK_KEYBOARD_H
-#include "debug.h"
-#include "action_layer.h"
-
-#define BASE 0 // default layer
-#define SYMB 1 // symbols
-#define PLVR 2 // media keys
-#define QWRT 3 // qwerty layer for gaming
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-/* Keymap 0: Basic layer
- *
- * ,--------------------------------------------------. ,--------------------------------------------------.
- * | = | 1 | 2 | 3 | 4 | 5 | Esc | | Esc | 6 | 7 | 8 | 9 | 0 | \ |
- * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | Tab | ' | , | . | P | Y | L1 | | L2 | F | G | C | R | L | / |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | LGui | A | O | E | U | I |------| |------| D | H | T | N | S | - |
- * |--------+------+------+------+------+------| Esc | | L3 |------+------+------+------+------+--------|
- * | LShift | ; | Q | J | K | X | | | | B | M | W | V | Z | RShift |
- * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * |Lalt | Grv | | Left | Right| | Up | Down | [ | ] | RAlt |
- * `----------------------------------' `----------------------------------'
- * ,-------------. ,---------------.
- * | LCtrl| Alt | | LGui | RCtrl |
- * ,------|------|------| |------+--------+------.
- * | | | Home | | PgUp | | |
- * |Backsp|Delete|------| |------| Enter |Space |
- * | ace| | End | | PgDn | | |
- * `--------------------' `----------------------'
- */
-// If it accepts an argument (i.e, is a function), it doesn't need KC_.
-// Otherwise, it needs KC_*
-[BASE] = LAYOUT_ergodox( // layer 0 : default
- // left hand
- KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, KC_ESC,
- KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, MO(SYMB),
- KC_LGUI, KC_A, KC_O, KC_E, KC_U, KC_I,
- KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_ESC,
- KC_LALT, KC_GRV, KC_ESC, KC_LEFT,KC_RGHT,
- KC_LCTL, KC_LALT,
- KC_HOME,
- KC_BSPC,KC_DEL,KC_END,
- // right hand
- KC_ESC, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSLS,
- TG(PLVR), KC_F, KC_G, KC_C, KC_R, KC_L, KC_SLSH,
- KC_D, KC_H, KC_T, KC_N, KC_S, KC_MINS,
- TG(QWRT),KC_B, KC_M, KC_W, KC_V, KC_Z, KC_RSFT,
- KC_UP, KC_DOWN,KC_LBRC,KC_RBRC, KC_RALT,
- KC_LGUI, KC_RCTL,
- KC_PGUP,
- KC_PGDN,KC_ENT, KC_SPC
- ),
-/* Keymap 1: Symbol Layer
- *
- * ,--------------------------------------------------. ,--------------------------------------------------.
- * | | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | F11 |
- * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | | ! | @ | { | } | | | | | | Up | KP7 | KP8 | KP9 | KP* | F12 |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | # | $ | ( | ) | ` |------| |------| Down | KP4 | KP5 | KP6 | KP+ | |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | % | ^ | [ | ] | ~ | | | | & | KP1 | KP2 | KP3 | KP/ | |
- * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * | | | | | | | | KP. | KP0 | KP= | |
- * `----------------------------------' `----------------------------------'
- * ,-------------. ,-------------.
- * | | | | | |
- * ,------|------|------| |------+------+------.
- * | | | | | | | |
- * | | |------| |------| | |
- * | | | | | | | |
- * `--------------------' `--------------------'
- */
-// SYMBOLS
-[SYMB] = LAYOUT_ergodox(
- // left hand
- KC_TRNS,KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_TRNS,
- KC_TRNS,KC_EXLM,KC_AT, KC_LCBR,KC_RCBR,KC_PIPE,KC_TRNS,
- KC_TRNS,KC_HASH,KC_DLR, KC_LPRN,KC_RPRN,KC_GRV,
- KC_TRNS,KC_PERC,KC_CIRC,KC_LBRC,KC_RBRC,KC_TILD,KC_TRNS,
- KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
- KC_TRNS,KC_TRNS,
- KC_TRNS,
- KC_TRNS,KC_TRNS,KC_TRNS,
- // right hand
- KC_TRNS, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,
- KC_TRNS, KC_UP, KC_P7, KC_P8, KC_P9, KC_PAST, KC_F12,
- KC_DOWN, KC_P4, KC_P5, KC_P6, KC_PPLS, KC_TRNS,
- KC_TRNS, KC_AMPR, KC_P1, KC_P2, KC_P3, KC_PSLS, KC_TRNS,
- KC_TRNS,KC_PDOT, KC_P0, KC_PEQL, KC_TRNS,
- KC_TRNS, KC_TRNS,
- KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS
-),
-/* Keymap 2: Steno for Plover from https://github.com/shayneholmes/tmk_keyboard/commit/11290f8489013018f778627db725160c745e75bd
- *
- * ,--------------------------------------------------. ,--------------------------------------------------.
- * | | | | | | | | | | | | | | | |
- * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | | 1 | 2 | 3 | 4 | 5 | | | L2 | 6 | 7 | 8 | 9 | 0 | |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | q | w | e | r | t |------| |------| y | u | i | o | p | [ |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | a | s | d | f | g | | | | h | j | k | l | ; | ' |
- * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * | | | | | | | | | | | |
- * `----------------------------------' `----------------------------------'
- * ,-------------. ,-------------.
- * | | | | | |
- * ,------|------|------| |------+------+------.
- * | | | | | | | |
- * | c | v |------| |------| n | m |
- * | | | | | | | |
- * `--------------------' `--------------------'
- */
-
-[PLVR] = LAYOUT_ergodox( // layout: layer 2: Steno for Plover
- // left hand
- KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
- KC_NO, KC_1, KC_2, KC_3, KC_4, KC_5, KC_TRNS,
- KC_NO, KC_Q, KC_W, KC_E, KC_R, KC_T,
- KC_NO, KC_A, KC_S, KC_D, KC_F, KC_G, KC_NO,
- KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
- KC_NO, KC_NO,
- KC_NO,
- KC_C, KC_V, KC_NO,
- // right hand
- KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_TRNS,
- TG(2), KC_6, KC_7, KC_8, KC_9, KC_0, KC_TRNS,
- KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC,
- KC_NO, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
- KC_TRNS, KC_TRNS, KC_NO, KC_NO, KC_NO,
- KC_TRNS, KC_TRNS,
- KC_TRNS,
- KC_NO, KC_N, KC_M
-),
-/* Keymap 3: qwerty-ish
- *
- * ,--------------------------------------------------. ,--------------------------------------------------.
- * | = | 1 | 2 | 3 | 4 | 5 | Esc | | Esc | 6 | 7 | 8 | 9 | 0 | - |
- * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | Tab | Q | W | E | R | T | | | | Y | U | I | O | P | \ |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | LGui | A | S | D | F | G |------| |------| H | J | K | L | ; | LGui |
- * |--------+------+------+------+------+------| Spc | | L3 |------+------+------+------+------+--------|
- * | LShift | Z | X | C | V | B | | | | N | M | , | . | / | RShift |
- * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * | Lalt | Grv | '" | Left | Right| | Up | Down | [ | ] | RAlt |
- * `----------------------------------' `----------------------------------'
- * ,-------------. ,---------------.
- * | LCtrl| LAlt | | LGui | RCtrl |
- * ,------|------|------| |------+--------+------.
- * | | | Home | | PgUp | | |
- * |Backsp|Delete|------| |------| Enter |Space |
- * | ace| | End | | PgDn | | |
- * `--------------------' `----------------------'
- */
-[QWRT] = LAYOUT_ergodox( // layer 3: qwerty for gaming
- // left hand
- KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, KC_ESC,
- KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, TG(SYMB),
- KC_LGUI, KC_A, KC_S, KC_D, KC_F, KC_G,
- KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_SPACE,
- KC_LALT, KC_GRV, KC_QUOT, KC_LEFT,KC_RGHT,
- KC_LCTL, KC_LALT,
- KC_HOME,
- KC_BSPC,KC_DEL,KC_END,
- // right hand
- KC_ESC, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS,
- KC_NO, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS,
- KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
- TG(QWRT), KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH, KC_RSFT,
- KC_UP, KC_DOWN,KC_LBRC,KC_RBRC, KC_RALT,
- KC_LGUI, KC_RCTL,
- KC_PGUP,
- KC_PGDN,KC_ENT, KC_SPC
- ),
-};
-
-// Runs constantly in the background, in a loop.
-void matrix_scan_user(void) {
-
- uint8_t layer = get_highest_layer(layer_state);
-
- ergodox_board_led_off();
- ergodox_right_led_1_off();
- ergodox_right_led_2_off();
- ergodox_right_led_3_off();
- switch (layer) {
- // TODO: Make this relevant to the ErgoDox EZ.
- case 1:
- ergodox_right_led_1_on();
- break;
- case 2:
- ergodox_right_led_2_on();
- break;
- case 3:
- ergodox_right_led_3_on();
- break;
- default:
- // none
- break;
- }
-
-};
diff --git a/layouts/community/ergodox/dvorak_svorak_a5/keymap.c b/layouts/community/ergodox/dvorak_svorak_a5/keymap.c
deleted file mode 100644
index e35739c07e..0000000000
--- a/layouts/community/ergodox/dvorak_svorak_a5/keymap.c
+++ /dev/null
@@ -1,209 +0,0 @@
-#include QMK_KEYBOARD_H
-#include "debug.h"
-#include "action_layer.h"
-#include "keymap_swedish.h"
-
-#define BASE 0 // default layer
-#define SYMB 1 // symbols
-#define MOUS 2 // mouse keys
-#define QWRT 3 // qwerty layout
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-/* Keymap 0: Basic layer
- *
- * ,--------------------------------------------------. ,--------------------------------------------------.
- * | | 1 | 2 | 3 | 4 | 5 | ~MOUS| | QWRT | 6 | 7 | 8 | 9 | 0 | + |
- * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | | Å | Ä | Ö | P | Y | | | Del | F | G | C | R | L | , |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | Escape | A | O | E | U | I |------| |------| D | H | T | N | S | -/_ |
- * |--------+------+------+------+------+------| | | RCTRL|------+------+------+------+------+--------|
- * | LShift | . | Q | J | K | X | | | | B | M | W | V | Z | RShift |
- * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * | LCTRL | | | LAlt | Super| | ~SYMB| Left | Down | Up | Right |
- * `-----------------------------------' `----------------------------------'
- * ,-------------. ,-------------.
- * | Ins | Del | | HOME | END |
- * ,------|------|------| |------+--------+-------.
- * | | | | | PgUp | | |
- * | BSP | Tab |------| |------| Enter | Space |
- * | | | | | PgDn | | |
- * `--------------------' `-----------------------'
- */
-[BASE] = LAYOUT_ergodox( // layer 0 : default
- // left hand
- KC_NO, KC_1, KC_2, KC_3, KC_4, KC_5, MO(MOUS),
- KC_TAB, SE_ARNG,SE_ADIA, SE_ODIA, KC_P, KC_Y, KC_NO,
- KC_ESC, KC_A, KC_O, KC_E, KC_U, KC_I,
- KC_LSFT, KC_DOT, KC_Q, KC_J, KC_K, KC_X, KC_NO,
- KC_LCTL, KC_NO, KC_NO, KC_LALT, KC_LCMD,
- KC_INSERT, KC_DEL,
- KC_NO,
- KC_BSPC, KC_TAB, KC_NO,
- // right hand
- TG(QWRT), KC_6, KC_7, KC_8, KC_9, KC_0, SE_PLUS,
- KC_DEL, KC_F, KC_G, KC_C, KC_R, KC_L, KC_COMM,
- KC_D, KC_H, KC_T, KC_N, KC_S, SE_MINS,
- KC_RCTL, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_RSFT,
- MO(SYMB), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT,
- KC_HOME, KC_END,
- KC_PGUP,
- KC_PGDN, KC_ENT, KC_SPACE
- ),
-/* Keymap 1: Symbol Layer
- *
- * ,--------------------------------------------------. ,--------------------------------------------------.
- * | | | | | | | | | | | | | | | |
- * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | | { | } | [ | ] | $ | | | | " | ? | & | < | > | |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | ; | / | ( | ) | | |------| |------| # | ^ | # | " | ~ | |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | : | = | @ | ! | \ | | | | % | ´ | ' | * | | |
- * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * | | | | | | | | | | | |
- * `----------------------------------' `----------------------------------'
- * ,-------------. ,-------------.
- * | | | | | |
- * ,------|------|------| |------+------+------.
- * | | | | | | | |
- * | BSP | |------| |------| | |
- * | | | | | | | |
- * `--------------------' `--------------------'
- */
-// SYMBOLS
-[SYMB] = LAYOUT_ergodox(
- // left hand
- KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
- KC_NO, ALGR(KC_7), ALGR(KC_0), ALGR(KC_8), ALGR(KC_9), ALGR(KC_4), KC_NO,
- KC_NO, LSFT(KC_COMM), KC_KP_SLASH, LSFT(KC_8), LSFT(KC_9), ALGR(KC_NUBS),
- KC_NO, LSFT(KC_DOT), LSFT(KC_0), ALGR(KC_2), KC_EXLM, ALGR(KC_MINS), KC_NO,
- KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
- KC_NO, KC_NO,
- KC_NO,
- KC_TRNS, KC_NO, KC_NO,
- // right hand
- KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
- KC_NO, LSFT(KC_2), SE_QUES, LSFT(KC_6), SE_LABK, SE_RABK, KC_NO,
- KC_HASH, SE_CIRC, KC_HASH, LSFT(KC_2), SE_TILD, KC_NO,
- KC_NO, KC_PERC, SE_ACUT, SE_QUOT, SE_ASTR, SE_GRV, KC_NO,
- KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
- KC_NO, KC_NO,
- KC_NO,
- KC_NO, KC_NO, KC_NO
-),
-/* Keymap 2: Media and mouse keys
- *
- * ,--------------------------------------------------. ,--------------------------------------------------.
- * | | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | |
- * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | | F11 | F12 | | | | | | | | | | | | |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | | | | | |------| |------| | | | | | Vol Up |
- * |--------+------+------+------+------+------| | | RCTRL|------+------+------+------+------+--------|
- * | | | | | | | | | | | | | B1 | B2 |Vol Down|
- * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * | LCTRL| | | LALT | | | | M_L | M_D | M_U | M_R |
- * `----------------------------------' `----------------------------------'
- * ,-------------. ,-------------.
- * | | | | | |
- * ,------|------|------| |------+------+------.
- * | | | | | | | |
- * | | |------| |------| | Play |
- * | | | | | | | Pause|
- * `--------------------' `--------------------'
- */
-// MEDIA AND MOUSE
-[MOUS] = LAYOUT_ergodox(
- KC_NO, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_NO,
- KC_NO, KC_F11, KC_F12, KC_NO, KC_NO, KC_NO, KC_NO,
- KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
- KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
- KC_TRNS, KC_NO, KC_NO, KC_TRNS, KC_NO,
- KC_NO, KC_NO,
- KC_NO,
- KC_NO, KC_NO, KC_NO,
- // right hand
- KC_NO, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_NO,
- KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
- KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_VOLU,
- KC_TRNS, KC_NO, KC_NO, KC_NO, KC_BTN1, KC_BTN2, KC_VOLD,
- KC_NO, KC_MS_L, KC_MS_D, KC_MS_U, KC_MS_R,
- KC_NO, KC_NO,
- KC_NO,
- KC_NO, KC_NO, KC_MPLY
-),
-/* Keymap 3: QWERTY Layer
- *
- * ,--------------------------------------------------. ,--------------------------------------------------.
- * | Print | ! | " | # | # | % | | |Middle| & | / | ( | ) | = | ? |
- * | Screen | 1 | 2 @ | 3 £ | 4 $ | 5 | F11 | |Mouse | 6 | 7 { | 8 [ | 9 ] | 0 } | + \ |
- * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | Tab | Q | W | E | R | T | | | | Y | U | I | O | P | Å |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | CapsLk | A | S | D | F | G |------| |------| H | J | K | L | Ö | Ä |
- * |--------+------+------+------+------+------| ` | | Del |------+------+------+------+------+--------|
- * | LShft | Z | X | C | V | B | ' | | | N | M | , | . | - | RShift |
- * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * | LCtl | ^ | * | LAlt | LGui | | AltGr| Down | Up | Left | Right|
- * | (') | " ~ | ' ´ | | | | | | | | |
- * `----------------------------------' `----------------------------------'
- * ,-------------. ,--------------.
- * | LCtl | LAlt | | Home | End |
- * ,------|------|------| |------+-------+------.
- * | | | ~ | | PgUp | | |
- * | BSP | TAB |------| |------| Enter | Space|
- * | | | Esc | | PgDn | | |
- * `--------------------' `---------------------'
- */
-[QWRT] = LAYOUT_ergodox(
- // left hand
- KC_PSCR, KC_1, KC_2, KC_3, KC_4, KC_5, KC_TRNS,
- KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_TRNS,
- KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G,
- KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, SE_ACUT,
- CTL_T(SE_QUOT), SE_CIRC, SE_ASTR, KC_LALT, KC_LGUI,
- KC_LCTL, KC_LALT,
- SE_TILD,
- KC_BSPC, KC_TAB, KC_ESC,
- // right hand
- KC_TRNS, KC_6, KC_7, KC_8, KC_9, KC_0, SE_PLUS,
- KC_TRNS, KC_Y, KC_U, KC_I, KC_O, KC_P, SE_ARNG,
- KC_H, KC_J, KC_K, KC_L, SE_ODIA, SE_ADIA,
- KC_DEL, KC_N, KC_M, KC_COMM, KC_DOT, SE_MINS, KC_RSFT,
- KC_ALGR, KC_DOWN, KC_UP, KC_LEFT, KC_RGHT,
- KC_HOME, KC_END,
- KC_PGUP,
- KC_PGDN, KC_ENT, KC_SPACE
-),
-};
-
-// Runs just one time when the keyboard initializes.
-void matrix_init_user(void) {
-
-};
-
-// Runs constantly in the background, in a loop.
-void matrix_scan_user(void) {
-
- uint8_t layer = get_highest_layer(layer_state);
-
- ergodox_board_led_off();
- ergodox_right_led_1_off();
- ergodox_right_led_2_off();
- ergodox_right_led_3_off();
- switch (layer) {
- case 1:
- ergodox_right_led_1_on();
- break;
- case 2:
- ergodox_right_led_2_on();
- break;
- case 3:
- ergodox_right_led_3_on();
- break;
- default:
- break;
- }
-
-};
diff --git a/layouts/community/ergodox/dvorak_svorak_a5/readme.md b/layouts/community/ergodox/dvorak_svorak_a5/readme.md
deleted file mode 100644
index c4b9184166..0000000000
--- a/layouts/community/ergodox/dvorak_svorak_a5/readme.md
+++ /dev/null
@@ -1,42 +0,0 @@
-# ErgoDox EZ Svorak A5
-
-This layout is supposed to be an implementation of the [Svorak A5
-layout](http://aoeu.info/s/dvorak/svorak). Unfortunately, the Ergodox EZ lacks
-one column for the right hand, why the three buttons furthest to the right, on
-the right half, are missing. I have tried to move them around and have yet to
-find a perfect position for them.
-
-
-## Note
-
-The keyboard assumes that the operating system interprets your keyboard as
-Swedish. If you get weird issues (like, most letters work, but not all special
-characters) please make sure your operating system uses a Swedish keyboard
-layout.
-
-
-## Flashing
-
-In order to compile and flash your Ergodox EZ, invoke the following at the root
-of the repository.
-
-`make ergodox_ez:dvorak_svorak_a5:teensy`
-
-I haven't gotten the above to work on Windows. Instead I use
-[Msys2](https://www.msys2.org/) to compile the .hex-file (`make ergodox_ez:dvorak_svorak_a5`)
-and [Teensy Loader](https://www.pjrc.com/teensy/loader_win10.html) to flash the
-board.
-
-
-## Changelog
-
-* 2018-08-09
- * Initial release
-* 2018-08-10
- * Make special characters work in Windows
- * Add QWERTY layer
-
-# Author
-Erik Thorsell
-erikthorsell @ github and twitter
-
diff --git a/layouts/community/ergodox/emacs_osx_dk/keymap.c b/layouts/community/ergodox/emacs_osx_dk/keymap.c
deleted file mode 100644
index ccffc74d30..0000000000
--- a/layouts/community/ergodox/emacs_osx_dk/keymap.c
+++ /dev/null
@@ -1,160 +0,0 @@
-#include QMK_KEYBOARD_H
-#include "debug.h"
-#include "action_layer.h"
-
-#define BASE 0 // default layer
-#define SYMB 1 // symbols
-#define MDIA 2 // media keys
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-/* Keymap 0: Basic layer
- *
- * ,--------------------------------------------------. ,--------------------------------------------------.
- * | Grv | 1 | 2 | 3 | 4 | 5 | L1 | | L2 | 6 | 7 | 8 | 9 | 0 | = |
- * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | Tab | Q | W | E | R | T | [ | | ] | Y | U | I | O | P | - |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | \/LCtrl| A | S | D | F | G |------| |------| H | J | K | L | ; |'/RCtrl |
- * |--------+------+------+------+------+------| RAlt | | RAlt |------+------+------+------+------+--------|
- * | LShift | Z | X | C | V | B | | | | N | M | , | . | / | RShift |
- * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * | ~L1 | LCtrl| Left| Right| LAlt | | LAlt | Up | Down | RCtrl| ~L2 |
- * `----------------------------------' `----------------------------------'
- * ,-------------. ,-------------.
- * | Del | Ins | | Esc | App |
- * ,------|------|------| |------+--------+------.
- * | | | Home | | PgUp | | |
- * | Space|Backsp|------| |------| LGui |Enter |
- * | |ace | End | | PgDn | | |
- * `--------------------' `----------------------'
- */
-// If it accepts an argument (i.e, is a function), it doesn't need KC_.
-// Otherwise, it needs KC_*
-[BASE] = LAYOUT_ergodox( // layer 0 : default
- // left hand
- KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, TG(SYMB),
- KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_LBRC,
- CTL_T(KC_BSLS), KC_A, KC_S, KC_D, KC_F, KC_G,
- KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_RALT,
- MO(SYMB), KC_LCTL, KC_LEFT,KC_RGHT,KC_LALT,
- KC_DEL, KC_INS,
- KC_HOME,
- KC_SPC,KC_BSPC,KC_END,
- // right hand
- TG(MDIA), KC_6, KC_7, KC_8, KC_9, KC_0, KC_EQL,
- KC_RBRC, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_MINS,
- KC_H, KC_J, KC_K, KC_L, KC_SCLN, CTL_T(KC_QUOT),
- KC_RALT, KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH, KC_RSFT,
- KC_LALT,KC_UP, KC_DOWN,KC_RCTL, MO(MDIA),
- KC_ESC, KC_APP,
- KC_PGUP,
- KC_PGDN, KC_LGUI, KC_ENT
- ),
-/* Keymap 1: Symbol Layer
- *
- * ,--------------------------------------------------. ,--------------------------------------------------.
- * | | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | F11 |
- * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | | ! | @ | { | } | | | | | | Up | 7 | 8 | 9 | * | F12 |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | # | $ | ( | ) | ` |------| |------| Down | 4 | 5 | 6 | + | |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | % | ^ | [ | ] | ~ | | | | & | 1 | 2 | 3 | \ | |
- * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * | | | | | | | 0 | 0 | . | = | |
- * `----------------------------------' `----------------------------------'
- * ,-------------. ,-------------.
- * | | | | | |
- * ,------|------|------| |------+------+------.
- * | | | | | | | |
- * | | |------| |------| | |
- * | | | | | | | |
- * `--------------------' `--------------------'
- */
-// SYMBOLS
-[SYMB] = LAYOUT_ergodox(
- // left hand
- KC_TRNS,KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_TRNS,
- KC_TRNS,KC_EXLM,KC_AT, KC_LCBR,KC_RCBR,KC_PIPE,KC_TRNS,
- KC_TRNS,KC_HASH,KC_DLR, KC_LPRN,KC_RPRN,KC_GRV,
- KC_TRNS,KC_PERC,KC_CIRC,KC_LBRC,KC_RBRC,KC_TILD,KC_TRNS,
- KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
- KC_TRNS,KC_TRNS,
- KC_TRNS,
- KC_TRNS,KC_TRNS,KC_TRNS,
- // right hand
- KC_TRNS, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,
- KC_TRNS, KC_UP, KC_7, KC_8, KC_9, KC_ASTR, KC_F12,
- KC_DOWN, KC_4, KC_5, KC_6, KC_PLUS, KC_TRNS,
- KC_TRNS, KC_AMPR, KC_1, KC_2, KC_3, KC_BSLS, KC_TRNS,
- KC_0, KC_0, KC_DOT, KC_EQL, KC_TRNS,
- KC_TRNS, KC_TRNS,
- KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS
-),
-/* Keymap 2: Media and mouse keys
- *
- * ,--------------------------------------------------. ,--------------------------------------------------.
- * | | | | | | | | | | | | | | | |
- * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | | | | MsUp | | | | | | | | | | | |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | |MsLeft|MsDown|MsRght| |------| |------| | | | | | Play |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | | | | | | | | | | | Prev | Next | | |
- * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * | | | | Lclk | Rclk | |VolUp |VolDn | Mute | | |
- * `----------------------------------' `----------------------------------'
- * ,-------------. ,-------------.
- * | | | | | |
- * ,------|------|------| |------+------+------.
- * | | | | | | |Brwser|
- * | | |------| |------| |Back |
- * | | | | | | | |
- * `--------------------' `--------------------'
- */
-// MEDIA AND MOUSE
-[MDIA] = LAYOUT_ergodox(
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_MS_U, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_R, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_BTN1, KC_BTN2,
- KC_TRNS, KC_TRNS,
- KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS,
- // right hand
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_MPRV, KC_MNXT, KC_TRNS, KC_TRNS,
- KC_VOLU, KC_VOLD, KC_MUTE, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS,
- KC_TRNS,
- KC_TRNS, KC_TRNS, KC_WBAK
-),
-};
-
-// Runs constantly in the background, in a loop.
-void matrix_scan_user(void) {
-
- uint8_t layer = get_highest_layer(layer_state);
-
- ergodox_board_led_off();
- ergodox_right_led_1_off();
- ergodox_right_led_2_off();
- ergodox_right_led_3_off();
- switch (layer) {
- // TODO: Make this relevant to the ErgoDox EZ.
- case 1:
- ergodox_right_led_1_on();
- break;
- case 2:
- ergodox_right_led_2_on();
- break;
- default:
- // none
- break;
- }
-
-};
diff --git a/layouts/community/ergodox/emacs_osx_dk/readme.md b/layouts/community/ergodox/emacs_osx_dk/readme.md
deleted file mode 100644
index bd12c7d9ae..0000000000
--- a/layouts/community/ergodox/emacs_osx_dk/readme.md
+++ /dev/null
@@ -1,10 +0,0 @@
-# ErgoDox EZ Emacs-OSX-DeadKeys Configuration
-
-Since I'm an Emacs user, ctrl keys are very important and gets a placement where the usual caps_lock is. There
-are an extra pair of ctrls, just in case there where problems with the holding one's, but not as comfortable.
-
-Gui button takes a predominant place on the thumb cluster, as I'm using a mac os x and it relies heavily on it.
-
-Finally there is also two Right Alts to easily access to accented letters of the spanish alphabet.
-
-![Default](https://i.imgur.com/EDgp9xj.png)
diff --git a/layouts/community/ergodox/german-kinergo/keymap.c b/layouts/community/ergodox/german-kinergo/keymap.c
deleted file mode 100644
index e48452274a..0000000000
--- a/layouts/community/ergodox/german-kinergo/keymap.c
+++ /dev/null
@@ -1,186 +0,0 @@
-// German keymap derived from "german", but more closely resembling the German layout of the Kinesis Ergo Elan.
-//
-// chschmitz, 2016-01-27
-#include QMK_KEYBOARD_H
-#include "debug.h"
-#include "action_layer.h"
-#include "keymap_german.h"
-
-// Layer names
-#define BASE 0 // default layer
-#define SYMB 1 // symbol layer
-#define MDIA 2 // media keys
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-/* Keymap 0: Basic layer
- *
- * X'es mark the spots where this is different from the "german" layout which it is based on.
- *
- * ,--------------------------------------------------. ,--------------------------------------------------.
- * |X Esc X| 1 | 2 | 3 | 4 | 5 |X ` X| |XPRSCX| 6 | 7 | 8 | 9 | 0 | ß |
- * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * |X Tab X| Q | W | E | R | T |X L1 X| |X L1 X| Z | U | I | O | P | Ü |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | Caps | A | S | D | F | G |------| |------| H | J | K | L | Ö | Ä/L2 |
- * |--------+------+------+------+------+------|X L2 X| |X L2 X|------+------+------+------+------+--------|
- * | LShift | Y | X | C | V | B | | | | N | M | , | . |X - X| RShift |
- * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * |XLGuiX|X ^ X|X < X|XLEFTX|XRIGHT| |XDownX|X Up X|X # X|X + X|XRGuiX|
- * `----------------------------------' `----------------------------------'
- * ,-------------. ,-------------.
- * |XCTRLX|XALTX | | Alt |Ctrl/Esc|
- * ,------+------+------| |------+--------+------.
- * |XXX |XXX | Home | | PgUp |XXX |XXX |
- * | Bkspc|Del |------| |------| Enter | Space|
- * | | | End | | PgDn | | |
- * `--------------------' `----------------------'
- */
-// If it accepts an argument (i.e, is a function), it doesn't need KC_.
-// Otherwise, it needs KC_*
-[BASE] = LAYOUT_ergodox( // layer 0 : default
- // left hand
- KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, DE_ACUT,
- KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, MO(1),
- KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G,
- KC_LSFT, DE_Y, KC_X, KC_C, KC_V, KC_B, MO(2),
- KC_LGUI, DE_CIRC, DE_LABK, KC_LEFT, KC_RIGHT,
- KC_LCTL, KC_LALT,
- KC_HOME,
- KC_BSPC,KC_DEL,KC_END,
- // right hand
- KC_PSCR, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS,
- MO(1), DE_Z, KC_U, KC_I, KC_O, KC_P, DE_UDIA,
- KC_H, KC_J, KC_K, KC_L, DE_ODIA, LT(MDIA,DE_ADIA),
- MO(2), KC_N, KC_M, KC_COMM, KC_DOT, DE_MINS, KC_RSFT,
- KC_DOWN, KC_UP, DE_HASH, DE_PLUS, KC_RGUI,
- KC_RALT, KC_RCTL,
- KC_PGUP,
- KC_PGDN, KC_ENT, KC_SPC
- ),
-// [BASE] = LAYOUT_ergodox( // layer 0 : default
-// // left hand
-// KC_CIRC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_MPLY,
-// KC_DEL, KC_Q, KC_W, KC_E, KC_R, KC_T, TG(1),
-// KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G,
-// KC_LSFT, DE_Y, KC_X, KC_C, KC_V, KC_B, ALL_T(KC_NO),
-// LT(SYMB,DE_LABK),CTL_T(DE_HASH), DE_ACUT, DE_MINS, DE_PLUS,
-// ALT_T(KC_APP), KC_LGUI,
-// KC_HOME,
-// KC_SPC,KC_BSPC,KC_END,
-// // right hand
-// KC_MNXT, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS,
-// TG(2), DE_Z, KC_U, KC_I, KC_O, KC_P, DE_UDIA,
-// KC_H, KC_J, KC_K, KC_L, DE_ODIA, LT(MDIA,DE_ADIA),
-// MEH_T(KC_NO),KC_N, KC_M, KC_COMM, KC_DOT, CTL_T(DE_MINS), KC_RSFT,
-// KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, TT(SYMB),
-// KC_LALT,CTL_T(KC_ESC),
-// KC_PGUP,
-// KC_PGDN,KC_TAB, KC_ENT
-// ),
-/* Keymap 1: Symbol Layer
- *
- * ,--------------------------------------------------. ,--------------------------------------------------.
- * | | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | F11 |
- * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | | ! | @ | { | } | | | | | | Up | 7 | 8 | 9 | * | F12 |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | # | $ | ( | ) | ` |------| |------| Down | 4 | 5 | 6 | + | |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | % | ^ | [ | ] | ~ | | | | & | 1 | 2 | 3 | \ | |
- * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * | | | | | | | | . | 0 | = | |
- * `----------------------------------' `----------------------------------'
- * ,-------------. ,-------------.
- * | | | | | |
- * ,------|------|------| |------+------+------.
- * | | | | | | | |
- * | | |------| |------| | |
- * | | | | | | | |
- * `--------------------' `--------------------'
- */
-// SYMBOLS
-[SYMB] = LAYOUT_ergodox(
- // left hand
- KC_TRNS,KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_TRNS,
- KC_TRNS,DE_EXLM,DE_AT, DE_LCBR,DE_RCBR,DE_PIPE,KC_TRNS,
- KC_TRNS,DE_HASH,DE_DLR, DE_LPRN,DE_RPRN,DE_GRV,
- KC_TRNS,DE_PERC,DE_CIRC,DE_LBRC,DE_RBRC,DE_TILD,KC_TRNS,
- KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
- KC_TRNS,KC_TRNS,
- KC_TRNS,
- KC_TRNS,KC_TRNS,KC_TRNS,
- // right hand
- KC_TRNS, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,
- KC_TRNS, KC_UP, KC_7, KC_8, KC_9, DE_ASTR, KC_F12,
- KC_DOWN, KC_4, KC_5, KC_6, DE_PLUS, KC_TRNS,
- KC_TRNS, DE_AMPR, KC_1, KC_2, KC_3, DE_BSLS, KC_TRNS,
- KC_TRNS,KC_DOT, KC_0, DE_EQL, KC_TRNS,
- KC_TRNS, KC_TRNS,
- KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS
-),
-/* Keymap 2: Media and mouse keys
- *
- * ,--------------------------------------------------. ,--------------------------------------------------.
- * | | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | F11 |
- * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | | | Lclk | MsUp | Rclk | | | | | |VolDwn| Mute |VolUp | | F12 |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | Btn4 |MsLeft|MsDown|MsRght| Btn5 |------| |------| | Prev | Stop | Play | Next | |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | |WhRght|WhDown| WhUp |WhLeft|WhClk | | | |BwSrch|BwBack|BwHome|BwRefr|BwFwd | |
- * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * | | |MsAcl0|MsAcl1|MsAcl2| | | | | | |
- * `----------------------------------' `----------------------------------'
- * ,-------------. ,-------------.
- * | | | | | |
- * ,------|------|------| |------+------+------.
- * | | | | | |Brwser|Brwser|
- * | Lclk | Rclk |------| |------|Back |Forwd |
- * | | | | | | | |
- * `--------------------' `--------------------'
- */
-// MEDIA AND MOUSE
-[MDIA] = LAYOUT_ergodox(
- KC_TRNS, KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_F5 , KC_TRNS,
- KC_TRNS, KC_TRNS, KC_BTN1, KC_MS_U, KC_BTN2, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_BTN4, KC_MS_L, KC_MS_D, KC_MS_R, KC_BTN5,
- KC_TRNS, KC_WH_L, KC_WH_D, KC_WH_U, KC_WH_R, KC_BTN3, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_ACL0, KC_ACL1, KC_ACL2,
- KC_TRNS, KC_TRNS,
- KC_TRNS,
- KC_BTN1, KC_BTN2, KC_TRNS,
- // right hand
- KC_TRNS, KC_F6 , KC_F7 , KC_F8 , KC_F9 , KC_F10 , KC_F11,
- KC_TRNS, KC_TRNS, KC_VOLD, KC_MUTE, KC_VOLU, KC_TRNS, KC_F12,
- KC_TRNS, KC_MPRV, KC_MSTP, KC_MPLY, KC_MNXT, KC_TRNS,
- KC_TRNS, KC_WSCH, KC_WBAK, KC_WHOM, KC_WREF, KC_WFWD, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS,
- KC_TRNS,
- KC_TRNS, KC_WBAK, KC_WFWD
-),
-};
-
-// Runs constantly in the background, in a loop.
-void matrix_scan_user(void) {
-
- uint8_t layer = get_highest_layer(layer_state);
-
- ergodox_board_led_off();
- ergodox_right_led_1_off();
- ergodox_right_led_2_off();
- ergodox_right_led_3_off();
- switch (layer) {
- case SYMB:
- ergodox_right_led_1_on();
- break;
- case MDIA:
- ergodox_right_led_2_on();
- break;
- default:
- ergodox_board_led_off();
- break;
- }
-
-};
diff --git a/layouts/community/ergodox/german-kinergo/readme.md b/layouts/community/ergodox/german-kinergo/readme.md
deleted file mode 100644
index addead0c1f..0000000000
--- a/layouts/community/ergodox/german-kinergo/readme.md
+++ /dev/null
@@ -1,35 +0,0 @@
-# German Layout for the ErgoDox
-
-This layout is inspired by the "kinesis-qwerty-mod" from benblazak's
-[ergodox-firmware](https://github.com/benblazak/ergodox-firmware), as well as by the "german" layout from the
-[qmk_firmware](https://github.com/qmk/qmk_firmware).
-The goal was to have a layout that is pretty close to an ordinary German
-keyboard, so I don't have to make adjustments on the operating system level
-and I keep some of the muscle memory to use a regular keyboard.
-
-Modifications I made with regard to the aforementioned layouts:
-
-* The key layout is pretty close to the layout of a German Kinesis Ergo Elan.
- The only exception I made is that I reversed the "up" and "down" cursor keys,
- since that feels more natural to me.
-
-* All layer changes are "momentary", i.e. they only last as long as the respective key is pressed.
-
-* I sacrificed the Hyper and Meh keys, which I don't use, and put layer change keys in their place.
-
-* I added a PrintScreen key which I use quite regularly for screenshots.
-
-## Default Layer
-
-![Layout of the default layer](https://i.imgur.com/BIn8QF8.png "Layout of the default layer")
-
-## Code Layer
-
-![Layout of the code layer](https://i.imgur.com/RHZjBlt.png "Layout of the code layer")
-
-## Media Layer
-
-![Layout of the media layer](https://i.imgur.com/qRMmrL4.png "Layout of the media layer")
-
-Christoph Schmitz &lt;schm4704 at web dot de&gt;
-2016-01-28
diff --git a/layouts/community/ergodox/german-lukas/README.md b/layouts/community/ergodox/german-lukas/README.md
deleted file mode 100644
index 3566b4ee64..0000000000
--- a/layouts/community/ergodox/german-lukas/README.md
+++ /dev/null
@@ -1,12 +0,0 @@
-# About this keymap
-
-This keymap is based on the qwertz layout.
-It has a key for pressing the left control and the left alt key at once.
-
-Linux makes a difference between AltGr and Control + Alt. Some keybindings are easier to press now.
-
-Also, I added a layer for pressing Control + Alt + F-Keys very fast.
-
-# Layer
-
-Each layer in the *keymap.c*-file has a comment showing the mappings of the layer.
diff --git a/layouts/community/ergodox/german-lukas/keymap.c b/layouts/community/ergodox/german-lukas/keymap.c
deleted file mode 100644
index 891bf0474b..0000000000
--- a/layouts/community/ergodox/german-lukas/keymap.c
+++ /dev/null
@@ -1,212 +0,0 @@
-#include QMK_KEYBOARD_H
-#include "debug.h"
-#include "action_layer.h"
-#include "keymap_german.h"
-
-// Layer names
-#define BASE 0 // default layer
-#define SYMB 1 // symbol layer
-#define MDIA 2 // media keys
-#define SHRT 3 // shortcut layer
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-/* Keymap 0: Basic layer
- *
- *
- * ,--------------------------------------------------. ,--------------------------------------------------.
- * | Caps | 1 | 2 | 3 | 4 | 5 |X ` X| | PRSC | 6 | 7 | 8 | 9 | 0 | ß |
- * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | Tab | Q | W | E | R | T | L1 | | L1 | Z | U | I | O | P | Ü |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | Esc | A | S | D | F | G |------| |------| H | J | K | L | Ö | Ä/L2 |
- * |--------+------+------+------+------+------| L2 | | L2 |------+------+------+------+------+--------|
- * | LShift | Y | X | C | V | B | | | | N | M | , | . | - | RShift |
- * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * | LGui | ^ | < | LEFT | RIGHT| | Up | Down | # | + | LCA |
- * `----------------------------------' `----------------------------------'
- * ,-------------. ,-------------.
- * | CTRL | ALT | | Alt |Ctrl/Esc|
- * ,------+------+------| |------+--------+------.
- * | | | Home | | PgUp | | |
- * | Space|Del |------| |------| Bkspc | Enter|
- * | | | End | | PgDn | | |
- * `--------------------' `----------------------'
- */
-// If it accepts an argument (i.e, is a function), it doesn't need KC_.
-// Otherwise, it needs KC_*
-[BASE] = LAYOUT_ergodox( // layer 0 : default
- // left hand
- KC_CAPS, KC_1, KC_2, KC_3, KC_4, KC_5, DE_ACUT,
- KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, TG(SYMB),
- KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G,
- KC_LSFT, DE_Y, KC_X, KC_C, KC_V, KC_B, ALL_T(KC_NO),
- KC_LGUI, DE_CIRC, DE_LABK, KC_LEFT, KC_RIGHT,
- KC_LCTL, KC_LALT,
- KC_HOME,
- KC_SPC ,KC_DEL,KC_END,
- // right hand
- KC_PSCR, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS,
- TG(MDIA), DE_Z, KC_U, KC_I, KC_O, KC_P, LT(SHRT,DE_UDIA),
- KC_H, KC_J, KC_K, KC_L, DE_ODIA, LT(MDIA,DE_ADIA),
- MEH_T(KC_NO), KC_N, KC_M, KC_COMM, KC_DOT, DE_MINS, KC_RSFT,
- KC_UP, KC_DOWN, DE_HASH, DE_PLUS, LCA_T(KC_NO),
- KC_RALT, KC_RCTL,
- KC_PGUP,
- KC_PGDN, KC_BSPC, KC_ENT
- ),
-
-/* Keymap 1: Symbol Layer
- *
- * ,--------------------------------------------------. ,--------------------------------------------------.
- * | | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | F11 |
- * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | | ! | @ | { | } | | | | | | Up | 7 | 8 | 9 | * | F12 |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | # | $ | ( | ) | ` |------| |------| Down | 4 | 5 | 6 | + | |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | % | ^ | [ | ] | ~ | | | | & | 1 | 2 | 3 | \ | |
- * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * | | | | | | | | . | 0 | = | |
- * `----------------------------------' `----------------------------------'
- * ,-------------. ,-------------.
- * | | | | | |
- * ,------|------|------| |------+------+------.
- * | | | | | | | |
- * | | |------| |------| | |
- * | | | | | | | |
- * `--------------------' `--------------------'
- */
-// SYMBOLS
-[SYMB] = LAYOUT_ergodox(
- // left hand
- KC_TRNS,KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_TRNS,
- KC_TRNS,DE_EXLM,DE_AT, DE_LCBR,DE_RCBR,DE_PIPE,KC_TRNS,
- KC_TRNS,DE_HASH,DE_DLR, DE_LPRN,DE_RPRN,DE_GRV,
- KC_TRNS,DE_PERC,DE_CIRC,DE_LBRC,DE_RBRC,DE_TILD,KC_TRNS,
- KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
- KC_TRNS,KC_TRNS,
- KC_TRNS,
- KC_TRNS,KC_TRNS,KC_TRNS,
- // right hand
- KC_TRNS, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,
- KC_TRNS, KC_UP, KC_7, KC_8, KC_9, DE_ASTR, KC_F12,
- KC_DOWN, KC_4, KC_5, KC_6, DE_PLUS, KC_TRNS,
- KC_TRNS, DE_AMPR, KC_1, KC_2, KC_3, DE_BSLS, KC_TRNS,
- KC_TRNS,KC_DOT, KC_0, DE_EQL, KC_TRNS,
- KC_TRNS, KC_TRNS,
- KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS
-),
-
-/* Keymap 2: Media and mouse keys
- *
- * ,--------------------------------------------------. ,--------------------------------------------------.
- * | | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | F11 |
- * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | | | Lclk | MsUp | Rclk | | | | | |VolDwn| Mute |VolUp | | F12 |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | Btn4 |MsLeft|MsDown|MsRght| Btn5 |------| |------| | Prev | Stop | Play | Next | |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | |WhRght|WhDown| WhUp |WhLeft|WhClk | | | |BwSrch|BwBack|BwHome|BwRefr|BwFwd | |
- * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * | | |MsAcl0|MsAcl1|MsAcl2| | | | | | |
- * `----------------------------------' `----------------------------------'
- * ,-------------. ,-------------.
- * | | | | | |
- * ,------|------|------| |------+------+------.
- * | | | | | |Brwser|Brwser|
- * | Lclk | Rclk |------| |------|Back |Forwd |
- * | | | | | | | |
- * `--------------------' `--------------------'
- */
-// MEDIA AND MOUSE
-[MDIA] = LAYOUT_ergodox(
- // left hand
- KC_TRNS, KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_F5 , KC_TRNS,
- KC_TRNS, KC_TRNS, KC_BTN1, KC_MS_U, KC_BTN2, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_BTN4, KC_MS_L, KC_MS_D, KC_MS_R, KC_BTN5,
- KC_TRNS, KC_WH_L, KC_WH_D, KC_WH_U, KC_WH_R, KC_BTN3, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_ACL0, KC_ACL1, KC_ACL2,
- KC_TRNS, KC_TRNS,
- KC_TRNS,
- KC_BTN1, KC_BTN2, KC_TRNS,
- // right hand
- KC_TRNS, KC_F6 , KC_F7 , KC_F8 , KC_F9 , KC_F10 , KC_F11,
- KC_TRNS, KC_TRNS, KC_VOLD, KC_MUTE, KC_VOLU, KC_TRNS, KC_F12,
- KC_TRNS, KC_MPRV, KC_MSTP, KC_MPLY, KC_MNXT, KC_TRNS,
- KC_TRNS, KC_WSCH, KC_WBAK, KC_WHOM, KC_WREF, KC_WFWD, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS,
- KC_TRNS,
- KC_TRNS, KC_WBAK, KC_WFWD
-),
-
-/* Keymap 3: Linux shortcuts
- *
- * ,--------------------------------------------------. ,--------------------------------------------------.
- * | | | | | | | | | | | | | | | |
- * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | |LCA-F1|LCA-F2|LCA-F3|LCA-F4|LCA-F5| | | |LCA-F6|LCA-F7|LCA-F8|LCA-F9| | |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | |LCA-Le| |LCA-Ri| |------| |------| | | | | | |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | | | | | | | | | | | | | | |
- * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * | | | |LCA-Le|LCA-Ri| | | | | | |
- * `----------------------------------' `----------------------------------'
- * ,-------------. ,-------------.
- * | | | | | |
- * ,------|------|------| |------+------+------.
- * | | | | | | | |
- * | | |------| |------| | |
- * | | | | | | | |
- * `--------------------' `--------------------'
- */
-// Shortcuts
-[SHRT] = LAYOUT_ergodox(
- // left hand
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, LCA(KC_F1), LCA(KC_F2), LCA(KC_F3), LCA(KC_F4), LCA(KC_F5), KC_TRNS,
- KC_TRNS, KC_TRNS, LCA(KC_LEFT), KC_TRNS, LCA(KC_RIGHT), KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, LCA(KC_LEFT), LCA(KC_RIGHT),
- KC_TRNS, KC_TRNS,
- KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS,
- // right hand
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, LCA(KC_F6), LCA(KC_F7), LCA(KC_F8), LCA(KC_F9), KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- LCA(KC_UP), LCA(KC_DOWN), KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS,
- KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS
-),
-};
-
-// Runs constantly in the background, in a loop.
-void matrix_scan_user(void) {
-
- uint8_t layer = get_highest_layer(layer_state);
-
- ergodox_board_led_off();
- ergodox_right_led_1_off();
- ergodox_right_led_2_off();
- ergodox_right_led_3_off();
- switch (layer) {
- case SYMB:
- ergodox_right_led_1_on();
- break;
- case MDIA:
- ergodox_right_led_2_on();
- break;
- case SHRT:
- ergodox_right_led_3_on();
- break;
- default:
- ergodox_board_led_off();
- break;
- }
-
-};
diff --git a/layouts/community/ergodox/german/keymap.c b/layouts/community/ergodox/german/keymap.c
deleted file mode 100644
index 150aaf3a73..0000000000
--- a/layouts/community/ergodox/german/keymap.c
+++ /dev/null
@@ -1,161 +0,0 @@
-#include QMK_KEYBOARD_H
-#include "debug.h"
-#include "action_layer.h"
-#include "keymap_german.h"
-
-// Layer names
-#define BASE 0 // default layer
-#define SYMB 1 // symbol layer
-#define MDIA 2 // media keys
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-/* Keymap 0: Basic layer
- *
- * ,--------------------------------------------------. ,--------------------------------------------------.
- * | ^ | 1 | 2 | 3 | 4 | 5 | Play | | Next | 6 | 7 | 8 | 9 | 0 | ß |
- * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | Del | Q | W | E | R | T | L1 | | L2 | Z | U | I | O | P | Ü |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | Caps | A | S | D | F | G |------| |------| H | J | K | L | Ö | Ä/L2 |
- * |--------+------+------+------+------+------| Hyper| | Meh |------+------+------+------+------+--------|
- * | LShift | Y | X | C | V | B | | | | N | M | , | . |-/Ctrl| RShift |
- * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * | </L1 |#/Ctrl| ´ | - | + | | Right| Down | Up | Left | ~L1 |
- * `----------------------------------' `----------------------------------'
- * ,-------------. ,-------------.
- * | App | LGui | | Alt |Ctrl/Esc|
- * ,------+------+------| |------+--------+------.
- * | | | Home | | PgUp | | |
- * | Space|Backsp|------| |------| Tab |Enter |
- * | |ace | End | | PgDn | | |
- * `--------------------' `----------------------'
- */
-// If it accepts an argument (i.e, is a function), it doesn't need KC_.
-// Otherwise, it needs KC_*
-[BASE] = LAYOUT_ergodox( // layer 0 : default
- // left hand
- KC_CIRC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_MPLY,
- KC_DEL, KC_Q, KC_W, KC_E, KC_R, KC_T, TG(1),
- KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G,
- KC_LSFT, DE_Y, KC_X, KC_C, KC_V, KC_B, ALL_T(KC_NO),
- LT(SYMB,DE_LABK),CTL_T(DE_HASH), DE_ACUT, DE_MINS, DE_PLUS,
- ALT_T(KC_APP), KC_LGUI,
- KC_HOME,
- KC_SPC,KC_BSPC,KC_END,
- // right hand
- KC_MNXT, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS,
- TG(2), DE_Z, KC_U, KC_I, KC_O, KC_P, DE_UDIA,
- KC_H, KC_J, KC_K, KC_L, DE_ODIA, LT(MDIA,DE_ADIA),
- MEH_T(KC_NO),KC_N, KC_M, KC_COMM, KC_DOT, CTL_T(DE_MINS), KC_RSFT,
- KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, TT(SYMB),
- KC_LALT,CTL_T(KC_ESC),
- KC_PGUP,
- KC_PGDN,KC_TAB, KC_ENT
- ),
-/* Keymap 1: Symbol Layer
- *
- * ,--------------------------------------------------. ,--------------------------------------------------.
- * | | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | F11 |
- * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | | ! | @ | { | } | | | | | | Up | 7 | 8 | 9 | * | F12 |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | # | $ | ( | ) | ` |------| |------| Down | 4 | 5 | 6 | + | |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | % | ^ | [ | ] | ~ | | | | & | 1 | 2 | 3 | \ | |
- * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * | | | | | | | | . | 0 | = | |
- * `----------------------------------' `----------------------------------'
- * ,-------------. ,-------------.
- * | | | | | |
- * ,------|------|------| |------+------+------.
- * | | | | | | | |
- * | | |------| |------| | |
- * | | | | | | | |
- * `--------------------' `--------------------'
- */
-// SYMBOLS
-[SYMB] = LAYOUT_ergodox(
- // left hand
- KC_TRNS,KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_TRNS,
- KC_TRNS,DE_EXLM,DE_AT, DE_LCBR,DE_RCBR,DE_PIPE,KC_TRNS,
- KC_TRNS,DE_HASH,DE_DLR, DE_LPRN,DE_RPRN,DE_GRV,
- KC_TRNS,DE_PERC,DE_CIRC,DE_LBRC,DE_RBRC,DE_TILD,KC_TRNS,
- KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
- KC_TRNS,KC_TRNS,
- KC_TRNS,
- KC_TRNS,KC_TRNS,KC_TRNS,
- // right hand
- KC_TRNS, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,
- KC_TRNS, KC_UP, KC_7, KC_8, KC_9, DE_ASTR, KC_F12,
- KC_DOWN, KC_4, KC_5, KC_6, DE_PLUS, KC_TRNS,
- KC_TRNS, DE_AMPR, KC_1, KC_2, KC_3, DE_BSLS, KC_TRNS,
- KC_TRNS,KC_DOT, KC_0, DE_EQL, KC_TRNS,
- KC_TRNS, KC_TRNS,
- KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS
-),
-/* Keymap 2: Media and mouse keys
- *
- * ,--------------------------------------------------. ,--------------------------------------------------.
- * | | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | F11 |
- * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | | | Lclk | MsUp | Rclk | | | | | |VolDwn| Mute |VolUp | | F12 |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | Btn4 |MsLeft|MsDown|MsRght| Btn5 |------| |------| | Prev | Stop | Play | Next | |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | |WhRght|WhDown| WhUp |WhLeft|WhClk | | | |BwSrch|BwBack|BwHome|BwRefr|BwFwd | |
- * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * | | |MsAcl0|MsAcl1|MsAcl2| | | | | | |
- * `----------------------------------' `----------------------------------'
- * ,-------------. ,-------------.
- * | | | | | |
- * ,------|------|------| |------+------+------.
- * | | | | | |Brwser|Brwser|
- * | Lclk | Rclk |------| |------|Back |Forwd |
- * | | | | | | | |
- * `--------------------' `--------------------'
- */
-// MEDIA AND MOUSE
-[MDIA] = LAYOUT_ergodox(
- KC_TRNS, KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_F5 , KC_TRNS,
- KC_TRNS, KC_TRNS, KC_BTN1, KC_MS_U, KC_BTN2, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_BTN4, KC_MS_L, KC_MS_D, KC_MS_R, KC_BTN5,
- KC_TRNS, KC_WH_L, KC_WH_D, KC_WH_U, KC_WH_R, KC_BTN3, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_ACL0, KC_ACL1, KC_ACL2,
- KC_TRNS, KC_TRNS,
- KC_TRNS,
- KC_BTN1, KC_BTN2, KC_TRNS,
- // right hand
- KC_TRNS, KC_F6 , KC_F7 , KC_F8 , KC_F9 , KC_F10 , KC_F11,
- KC_TRNS, KC_TRNS, KC_VOLD, KC_MUTE, KC_VOLU, KC_TRNS, KC_F12,
- KC_TRNS, KC_MPRV, KC_MSTP, KC_MPLY, KC_MNXT, KC_TRNS,
- KC_TRNS, KC_WSCH, KC_WBAK, KC_WHOM, KC_WREF, KC_WFWD, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS,
- KC_TRNS,
- KC_TRNS, KC_WBAK, KC_WFWD
-),
-};
-
-// Runs constantly in the background, in a loop.
-void matrix_scan_user(void) {
-
- uint8_t layer = get_highest_layer(layer_state);
-
- ergodox_board_led_off();
- ergodox_right_led_1_off();
- ergodox_right_led_2_off();
- ergodox_right_led_3_off();
- switch (layer) {
- case SYMB:
- ergodox_right_led_1_on();
- break;
- case MDIA:
- ergodox_right_led_2_on();
- break;
- default:
- ergodox_board_led_off();
- break;
- }
-
-};
diff --git a/layouts/community/ergodox/guni/keymap.c b/layouts/community/ergodox/guni/keymap.c
deleted file mode 100644
index 570a45b127..0000000000
--- a/layouts/community/ergodox/guni/keymap.c
+++ /dev/null
@@ -1,109 +0,0 @@
-#include QMK_KEYBOARD_H
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- LAYOUT_ergodox( // layer 0 : default
- // left hand
- KC_EQL , KC_1, KC_2, KC_3, KC_4, KC_5, KC_LBRC,
- MT(MOD_LCTL, KC_TAB) , KC_Q, KC_W, KC_E, KC_R, KC_T, KC_HOME,
- LT(1, KC_CAPS) , KC_A, KC_S, KC_D, KC_F, KC_G,
- KC_LSFT , KC_Z, KC_X, KC_C, KC_V, KC_B, KC_PGUP,
- KC_LGUI , KC_GRV,KC_LEFT,KC_RGHT,KC_LALT,
- KC_NO , KC_NO ,
- KC_NO ,
- KC_BSPC,KC_DEL ,TO(3),
- // right hand
- KC_RBRC , KC_6, KC_7 , KC_8, KC_9, KC_0, KC_MINS,
- KC_END , KC_Y, KC_U , KC_I, KC_O, KC_P, MT(MOD_RCTL, KC_BSLS),
- KC_H , KC_J, KC_K , KC_L, KC_SCLN,LT(1, KC_QUOT),
- KC_PGDN , KC_N, KC_M , KC_COMM,KC_DOT, KC_SLSH,MT(MOD_RSFT, KC_ESC),
- KC_RALT , KC_DOWN,KC_UP, KC_NO ,KC_RGUI,
- KC_NO , KC_NO,
- KC_NO ,
- MT(MOD_RSFT, KC_ESC),KC_ENT ,KC_SPC
- ),
-
- LAYOUT_ergodox( // layer 1 : function and symbol keys
- // left hand
- KC_TRNS,KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F11,
- KC_TRNS,KC_AT,KC_UNDS ,KC_LBRC,KC_RBRC,KC_CIRC ,KC_TRNS,
- KC_TRNS,KC_BSLS,KC_SLSH,KC_LCBR ,KC_RCBR ,KC_ASTR,
- KC_TRNS,KC_HASH ,KC_DLR ,KC_PIPE ,KC_TILD ,KC_GRV ,KC_TRNS,
- KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
- KC_TRNS,KC_TRNS,
- KC_TRNS,
- KC_TRNS,KC_TRNS,TO(0),
- // right hand
- KC_F12, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_TRNS,
- KC_TRNS,KC_EXLM,LSFT(KC_COMM),LSFT(KC_DOT),KC_EQL,KC_AMPR, KC_TRNS,
- LSFT(KC_SLSH),KC_LPRN,KC_RPRN,KC_MINS,LSFT(KC_SCLN),KC_TRNS,
- KC_TRNS,KC_PLUS,LSFT(KC_5),LSFT(KC_QUOT),KC_QUOT,KC_SCLN,KC_TRNS,
- KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
- KC_TRNS,KC_TRNS,
- KC_TRNS,
- KC_TRNS,KC_TRNS,KC_TRNS
- ),
-
- LAYOUT_ergodox( // layer 2: navigation
- // left hand
- KC_NO,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
- KC_TRNS,KC_PGUP,KC_HOME,KC_UP ,KC_END,KC_NO ,KC_TRNS,
- KC_TRNS,KC_PGDN,KC_LEFT,KC_DOWN,KC_RGHT,KC_NO,
- KC_TRNS,KC_NO, KC_NO, KC_NO, KC_NO,KC_NO,KC_NO,
- KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
- KC_TRNS,KC_TRNS,
- KC_TRNS,
- KC_TRNS,KC_TRNS,TO(0) ,
- // right hand
- KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
- KC_TRNS ,KC_TRNS, KC_HOME, KC_TRNS, KC_TRNS, KC_END ,KC_TRNS,
- KC_NO, KC_LEFT, KC_UP, KC_DOWN, KC_RGHT,KC_TRNS,
- KC_TRNS,KC_TRNS, KC_HOME, KC_UP, KC_END, KC_PGUP,KC_TRNS,
- KC_LEFT, KC_DOWN,KC_RGHT,KC_PGDN,KC_TRNS,
- KC_TRNS,KC_TRNS,
- KC_TRNS,
- KC_TRNS,KC_TRNS,KC_TRNS
- ),
- LAYOUT_ergodox( // layer 3 : teensy bootloader functions
- // left hand
- 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,TO(0) ,
- // right hand
- KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
- KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
- KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
- KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
- KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
- KC_TRNS,KC_TRNS,
- KC_TRNS,
- KC_TRNS,KC_TRNS,KC_TRNS
- ),
-
-
- LAYOUT_ergodox( // layer 4: numpad
- // left hand
- KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
- KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
- KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
- KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
- KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
- KC_TRNS,KC_TRNS,
- KC_TRNS,
- KC_TRNS,KC_TRNS,KC_TRNS,
- // right hand
- KC_TRNS,KC_NUM, KC_PSLS,KC_PAST,KC_PAST,KC_PMNS,KC_BSPC,
- KC_TRNS,KC_NO, KC_P7, KC_P8, KC_P9, KC_PMNS,KC_BSPC,
- KC_NO, KC_P4, KC_P5, KC_P6, KC_PPLS,KC_PENT,
- KC_TRNS,KC_NO, KC_P1, KC_P2, KC_P3, KC_PPLS,KC_PENT,
- KC_P0, KC_PDOT,KC_SLSH,KC_PENT,KC_PENT,
- KC_TRNS,KC_TRNS,
- KC_TRNS,
- KC_TRNS,KC_TRNS,KC_TRNS
- ),
-
-};
diff --git a/layouts/community/ergodox/guni/readme.txt b/layouts/community/ergodox/guni/readme.txt
deleted file mode 100644
index b39018feb4..0000000000
--- a/layouts/community/ergodox/guni/readme.txt
+++ /dev/null
@@ -1,133 +0,0 @@
-My main layout (Layer 0) is based on qwerty. I tried to fit the layout of the kinesis keyboard onto the ergodox. Furthermore I did some tweaks.
-The other layers are seldom used. Except the F Keys and the teensy key. As I own a ergodox I cant press the reset button, so i need a key to send the teensy into reprogram mode.
-There is a layer with symbols a numpad. These layers are seldom used. Except the F Keys and the teensy key. As I own a ergodox I need a key to reprogram, because I can't access the reset button.
-
-I am a linux user and need the esc key and str keys often therefore it is easyly accessed. Switching console str+alt+tab+f2 (layer 2 and 2) is tricky but you get it after a while.
-As I live in germany and need to type umlaut frquently, i mapped the CAPS to the meta key, and swapped ' and ". So I can type ö with CAPS o + ¨. no need to press o+SHIFT+'
-As a note for linux users i use str+p to get last command, instead of using the cursor keys.
-
-HOWTO to convert CAPS to Meta-Key and swap ' with "
-
-* create file with following content
-.Xmodmap
- clear Lock
- keycode 48 = quotedbl apostrophe quotedbl apostrophe
- keycode 66 = Multi_key
-
-* apply with
-xmodmap .Xmodmap
-
-* convert to xkbmap
-xkbcomp $DISPLAY $HOME/.xkbmap
-
-* automatic startup each time you startup x
-echo 'xkbcomp $HOME/.xkbmap $DISPLAY' >> ~/.xinitrc
-
- LAYOUT_ergodox( // layer 0 : default
- // left hand
- KC_EQL , KC_1, KC_2, KC_3, KC_4, KC_5, KC_LBRC,
- KC_FN25 , KC_Q, KC_W, KC_E, KC_R, KC_T, KC_HOME,
- KC_FN27 , KC_A, KC_S, KC_D, KC_F, KC_G,
- KC_LSFT , KC_Z, KC_X, KC_C, KC_V, KC_B, KC_PGUP,
- KC_LGUI , KC_GRV,KC_LEFT,KC_RGHT,KC_LALT,
- KC_NO , KC_NO ,
- KC_NO ,
- KC_BSPC,KC_DEL ,KC_FN23,
- // right hand
- KC_RBRC , KC_6, KC_7 , KC_8, KC_9, KC_0, KC_MINS,
- KC_END , KC_Y, KC_U , KC_I, KC_O, KC_P, KC_FN28,
- KC_H , KC_J, KC_K , KC_L, KC_SCLN,KC_FN30,
- KC_PGDN , KC_N, KC_M , KC_COMM,KC_DOT, KC_SLSH,KC_FN29,
- KC_RALT , KC_DOWN,KC_UP, KC_NO ,KC_RGUI,
- KC_NO , KC_NO,
- KC_NO ,
- KC_FN29,KC_ENT ,KC_SPC
- ),
-
- LAYOUT_ergodox( // layer 1 : function and symbol keys
- // left hand
- KC_TRNS,KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F11,
- KC_TRNS,KC_AT,KC_UNDS ,KC_LBRC,KC_RBRC,KC_CIRC ,KC_TRNS,
- KC_TRNS,KC_BSLS,KC_SLSH,KC_LCBR ,KC_RCBR ,KC_ASTR,
- KC_TRNS,KC_HASH ,KC_DLR ,KC_PIPE ,KC_TILD ,KC_GRV ,KC_TRNS,
- KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
- KC_TRNS,KC_TRNS,
- KC_TRNS,
- KC_TRNS,KC_TRNS,KC_FN1,
- // right hand
- KC_F12, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_TRNS,
- KC_TRNS,KC_EXLM,LSFT(KC_COMM),LSFT(KC_DOT),KC_EQL,KC_AMPR, KC_TRNS,
- LSFT(KC_SLSH),KC_LPRN,KC_RPRN,KC_MINS,LSFT(KC_SCLN),KC_TRNS,
- KC_TRNS,KC_PLUS,LSFT(KC_5),LSFT(KC_QUOT),KC_QUOT,KC_SCLN,KC_TRNS,
- KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
- KC_TRNS,KC_TRNS,
- KC_TRNS,
- KC_TRNS,KC_TRNS,KC_TRNS
- ),
-
- LAYOUT_ergodox( // layer 2: navigation
- // left hand
- KC_NO,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
- KC_TRNS,KC_PGUP,KC_HOME,KC_UP ,KC_END,KC_NO ,KC_TRNS,
- KC_TRNS,KC_PGDN,KC_LEFT,KC_DOWN,KC_RGHT,KC_NO,
- KC_TRNS,KC_NO, KC_NO, KC_NO, KC_NO,KC_NO,KC_NO,
- KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
- KC_TRNS,KC_TRNS,
- KC_TRNS,
- KC_TRNS,KC_TRNS,KC_FN1 ,
- // right hand
- KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
- KC_TRNS ,KC_TRNS, KC_HOME, KC_TRNS, KC_TRNS, KC_END ,KC_TRNS,
- KC_NO, KC_LEFT, KC_UP, KC_DOWN, KC_RGHT,KC_TRNS,
- KC_TRNS,KC_TRNS, KC_HOME, KC_UP, KC_END, KC_PGUP,KC_TRNS,
- KC_LEFT, KC_DOWN,KC_RGHT,KC_PGDN,KC_TRNS,
- KC_TRNS,KC_TRNS,
- KC_TRNS,
- KC_TRNS,KC_TRNS,KC_TRNS
- ),
- LAYOUT_ergodox( // layer 3 : teensy bootloader functions
- // left hand
- KC_FN0, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
- KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
- KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
- KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
- KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
- KC_TRNS,KC_TRNS,
- KC_TRNS,
- KC_TRNS,KC_TRNS,KC_FN1 ,
- // right hand
- KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
- KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
- KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
- KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
- KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
- KC_TRNS,KC_TRNS,
- KC_TRNS,
- KC_TRNS,KC_TRNS,KC_TRNS
- ),
-
-
- LAYOUT_ergodox( // layer 4: numpad
- // left hand
- KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
- KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
- KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
- KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
- KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
- KC_TRNS,KC_TRNS,
- KC_TRNS,
- KC_TRNS,KC_TRNS,KC_TRNS,
- // right hand
- KC_TRNS,KC_NUM, KC_PSLS,KC_PAST,KC_PAST,KC_PMNS,KC_BSPC,
- KC_TRNS,KC_NO, KC_P7, KC_P8, KC_P9, KC_PMNS,KC_BSPC,
- KC_NO, KC_P4, KC_P5, KC_P6, KC_PPLS,KC_PENT,
- KC_TRNS,KC_NO, KC_P1, KC_P2, KC_P3, KC_PPLS,KC_PENT,
- KC_P0, KC_PDOT,KC_SLSH,KC_PENT,KC_PENT,
- KC_TRNS,KC_TRNS,
- KC_TRNS,
- KC_TRNS,KC_TRNS,KC_TRNS
- ),
-
-};
-
-
diff --git a/layouts/community/ergodox/haegin/keymap.c b/layouts/community/ergodox/haegin/keymap.c
deleted file mode 100644
index 3704fe557c..0000000000
--- a/layouts/community/ergodox/haegin/keymap.c
+++ /dev/null
@@ -1,248 +0,0 @@
-// Netable differences vs. the default firmware for the ErgoDox EZ:
-// 1. The Cmd key is now on the right side, making Cmd+Space easier.
-// 2. The media keys work on OSX (But not on Windows).
-#include QMK_KEYBOARD_H
-#include "debug.h"
-#include "action_layer.h"
-
-#define BASE 0 // default layer
-#define SYMBOLS 1 // symbols
-#define MEDIA 2 // media keys
-
-enum {
- TD_BSPC = 0
-};
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
-/* Keymap 0: Basic layer
- *
- * ,--------------------------------------------------. ,--------------------------------------------------.
- * | = | 1 | 2 | 3 | 4 | 5 | LEFT | | RIGHT| 6 | 7 | 8 | 9 | 0 | - |
- * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | / | Q | W | E | R | T | | | | Y | U | I | O | P | \ |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | Ctl/Esc| A | S | D | F | G |------| |------| H | J | K | L |; / L2| LGui |
- * |--------+------+------+------+------+------| Hyper| | Meh |------+------+------+------+------+--------|
- * | LShift | Z | X | C | V | B | | | | N | M | , | . |//Ctrl| RShift |
- * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * |Grv/L1| '" |AltShf| Left | Right| | Up | Down | [ | ] | ~L1 |
- * `----------------------------------' `----------------------------------'
- * ,-------------. ,-------------.
- * | App | LGui | | Alt |Ctrl/Esc|
- * ,------|------|------| |------+--------+------.
- * | | | Home | | PgUp | | |
- * | Space|Backsp|------| |------| Tab |Enter |
- * | |ace | End | | PgDn | | |
- * `--------------------' `----------------------'
- */
-// If it accepts an argument (i.e, is a function), it doesn't need KC_.
-// Otherwise, it needs KC_*
-
-[BASE] = LAYOUT_ergodox( // layer 0 : default
- // Left hand
- KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, KC_LEFT,
- KC_SLSH, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_NO,
- CTL_T(KC_ESC), KC_A, KC_O, KC_E, KC_U, KC_I,
- SC_LSPO, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, ALL_T(KC_NO),
- LT(SYMBOLS,KC_GRV), KC_QUOT, KC_SLSH, KC_LALT, SFT_T(KC_RGHT),
- KC_HOME, KC_END,
- KC_PGUP,
- GUI_T(KC_SPC), TD(TD_BSPC), LGUI(KC_SPC),
-
- // Right hand
- KC_RGHT, KC_6, KC_7, KC_8, KC_9, KC_0, LGUI(KC_SPC),
- KC_NO, KC_F, KC_G, KC_C, KC_R, KC_L, LT(MEDIA, KC_BSLS),
- KC_D, KC_H, KC_T, KC_N, KC_S, KC_MINS,
- MEH_T(KC_NO), KC_B, KC_M, KC_W, KC_V, KC_Z, SC_RSPC,
- ALT_T(KC_UP), KC_DOWN, KC_LBRC, KC_RBRC, KC_NO,
- KC_PGUP, CTL_T(KC_ESC),
- KC_PGDN,
- LCTL(KC_B), LT(MEDIA, KC_TAB), LT(SYMBOLS, KC_ENT)
- ),
-
-
-/* Keymap 1: Symbol Layer
- *
- * ,--------------------------------------------------. ,--------------------------------------------------.
- * | | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | F11 |
- * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | | ! | @ | { | } | | | | | | Up | 7 | 8 | 9 | * | F12 |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | # | $ | ( | ) | ` |------| |------| Down | 4 | 5 | 6 | + | |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | % | ^ | [ | ] | ~ | | | | & | 1 | 2 | 3 | \ | |
- * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * | | | | | | | | . | 0 | = | |
- * `----------------------------------' `----------------------------------'
- * ,-------------. ,-------------.
- * | | | | | |
- * ,------|------|------| |------+------+------.
- * | | | | | | | |
- * | | |------| |------| | |
- * | | | | | | | |
- * `--------------------' `--------------------'
- */
-// SYMBOLS
-
-[SYMBOLS] = LAYOUT_ergodox(
- // left hand
- _______,KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, _______,
- _______,KC_EXLM,KC_AT, KC_LCBR,KC_RCBR,KC_PIPE,_______,
- _______,KC_HASH,KC_DLR, KC_LPRN,KC_RPRN,KC_GRV,
- _______,KC_PERC,KC_CIRC,KC_LBRC,KC_RBRC,KC_TILD,_______,
- _______,_______,_______,_______,_______,
- _______,_______,
- _______,
- _______,_______,_______,
- // right hand
- _______, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,
- _______, KC_EQL, KC_7, KC_8, KC_9, KC_ASTR, KC_F12,
- KC_MINS, KC_4, KC_5, KC_6, KC_PLUS, _______,
- _______, KC_AMPR, KC_1, KC_2, KC_3, KC_SLSH, _______,
- _______,KC_0, KC_DOT, KC_EQL, _______,
- _______, _______,
- _______,
- _______, _______, _______
-),
-
-/* Keymap 2: Media and mouse keys
- *
- * ,--------------------------------------------------. ,--------------------------------------------------.
- * | | | | | | | | | | | | | | | |
- * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | | | | MsUp | | | | | | | | ↑ | | | |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | |MsLeft|MsDown|MsRght| |------| |------|VolUp | ← | ↓ | → | | Play |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | | | | | | | | |VolDn | Prev | Play | Next | | |
- * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * | | | | Lclk | Rclk | | Mute | | | | |
- * `----------------------------------' `----------------------------------'
- * ,-------------. ,-------------.
- * | | | | | |
- * ,------|------|------| |------+------+------.
- * | | | | | | |Brwser|
- * | | |------| |------| |Back |
- * | | | | | | | |
- * `--------------------' `--------------------'
- */
-// MEDIA AND MOUSE
-[MEDIA] = LAYOUT_ergodox(
- _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, KC_MS_U, _______, _______, _______,
- _______, _______, KC_MS_L, KC_MS_D, KC_MS_R, _______,
- _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, KC_BTN1, KC_BTN2,
- _______, _______,
- _______,
- _______, _______, _______,
- // right hand
- _______, _______, _______, _______, _______, _______, _______,
- _______, _______, KC_HOME, KC_UP, KC_END, KC_PGUP, _______,
- KC_VOLU, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, KC_MPLY,
- KC_MUTE, KC_VOLD, KC_MPRV, KC_MPLY, KC_MFFD, _______, _______,
- _______, _______, _______, _______, _______,
- _______, _______,
- _______,
- _______, _______, KC_WBAK
-),
-};
-
-enum {
- BSPC_LETTER = 0,
- BSPC_WORD = 1,
- HOLD_CTRL = 2
-};
-
-typedef struct {
- int a;
- int b;
- int state;
-} fib_tap;
-
-static fib_tap fib_bspc = {
- .a = 0,
- .b = 1,
- .state = BSPC_LETTER
-};
-
-void cur_backspace (tap_dance_state_t *state) {
- int next_fib = fib_bspc.a + fib_bspc.b;
- fib_bspc.a = fib_bspc.b;
- fib_bspc.b = next_fib;
- for (int i=0; i < next_fib; i++) {
- unregister_code(KC_BSPC);
- register_code(KC_BSPC);
- }
-}
-
-void dance_backspace (tap_dance_state_t *state, void *user_data) {
- // If we're at the fifth tap, switch to deleting by words, and reset the fib
- // counter
- if (state->count == 4) {
- register_code(KC_LALT);
- fib_bspc.state = BSPC_WORD;
- fib_bspc.a = 0;
- fib_bspc.b = 1;
- }
- // If we're on the first press, wait to find out if it's being held
- // If we're on the second tap, process the first tap, because we're past
- // holding for ctrl now, then act normally
- if (state->count == 2) {
- register_code(KC_BSPC);
- }
- if (state->count > 1) {
- cur_backspace(state);
- }
-};
-
-void dance_backspace_ended (tap_dance_state_t *state, void *user_data) {
- if (state->count == 1) {
- if (state->pressed) {
- fib_bspc.state = HOLD_CTRL;
- register_code(KC_LCTL);
- } else {
- register_code(KC_BSPC);
- }
- }
-};
-
-void dance_backspace_reset (tap_dance_state_t *state, void *user_data) {
- switch (fib_bspc.state) {
- case HOLD_CTRL: unregister_code(KC_LCTL); break;
- case BSPC_WORD: unregister_code(KC_BSPC); unregister_code(KC_LALT); break;
- case BSPC_LETTER: unregister_code(KC_BSPC); break;
- }
- fib_bspc.a = 0;
- fib_bspc.b = 1;
- fib_bspc.state = BSPC_LETTER;
-};
-
-tap_dance_action_t tap_dance_actions[] = {
- [TD_BSPC] = ACTION_TAP_DANCE_FN_ADVANCED (dance_backspace, dance_backspace_ended, dance_backspace_reset)
-};
-
-// Runs constantly in the background, in a loop.
-void matrix_scan_user(void) {
-
- uint8_t layer = get_highest_layer(layer_state);
-
- ergodox_board_led_off();
- ergodox_right_led_1_off();
- ergodox_right_led_2_off();
- ergodox_right_led_3_off();
- switch (layer) {
- // TODO: Make this relevant to the ErgoDox EZ.
- case 1:
- ergodox_right_led_1_on();
- break;
- case 2:
- ergodox_right_led_3_on();
- break;
- default:
- // none
- break;
- }
-
-};
diff --git a/layouts/community/ergodox/haegin/readme.md b/layouts/community/ergodox/haegin/readme.md
deleted file mode 100644
index 15e7f2441a..0000000000
--- a/layouts/community/ergodox/haegin/readme.md
+++ /dev/null
@@ -1,5 +0,0 @@
-# Haegin's Ergodox Firmware
-
-Mostly uses keys available on the Minidox, with some extras that are nice
-to have when they're available, provided they're in a roughly similar place on
-the Model 01.
diff --git a/layouts/community/ergodox/haegin/rules.mk b/layouts/community/ergodox/haegin/rules.mk
deleted file mode 100644
index 31e0fcf293..0000000000
--- a/layouts/community/ergodox/haegin/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-TAP_DANCE_ENABLE=yes
diff --git a/layouts/community/ergodox/issmirnov/README.md b/layouts/community/ergodox/issmirnov/README.md
deleted file mode 100644
index fc8de6f99f..0000000000
--- a/layouts/community/ergodox/issmirnov/README.md
+++ /dev/null
@@ -1,49 +0,0 @@
-# Ivan's Ergodox Config
-
-
-## Details about the layout
-
-- Shift and Cmd are One Shot Modifiers, so tapping them once will apply them to the next key. When tapped twice they will lock, until tapped again to clear.
-- When switching to other layers, any stuck modifiers are cleared in order to avoid unintended key combos
-- There are a few leader key combinations. Right now, `QK_LEAD` + `s` will open my wiki homepage.
-- All transparent keys have been replaced with noops to avoid layer bleeding.
-
-## Initial Setup
-
-### QMK
-
-```
-brew tap osx-cross/avr
-brew tap PX4/homebrew-px4
-brew update
-brew install avr-gcc
-brew install dfu-programmer
-brew install gcc-arm-none-eabi
-brew install avrdude
-
-git clone https://github.com/qmk/qmk_firmware.git
-git clone https://github.com/issmirnov/ergodox-layout.git \
- layouts/community/ergodox/ismirnov
-```
-
-### Teensy utils
-
-Download and add both of these to $PATH
-
-- [hid_listen](https://www.pjrc.com/teensy/hid_listen.html)
-- [teensy loader cli](https://www.pjrc.com/teensy/loader_cli.html)
-
-## Flashing
-
-```
-make ergodox_ez:ismirnov
-teensy_loader_cli -mmcu=atmega32u4 -w -v ergodox_ez_ismirnov.hex
-
-# or just
-make ergodox_ez:ismirnov:flash
-```
-
-## Gotchas
-
-- If you get error: `dyld: Library not loaded: /usr/local/opt/isl/lib/libisl.15.dylib` then do `brew reinstall avr-gcc`
-- If `hid_listen` just prints out a ton of dots, update makefile with `CONSOLE_ENABLE = yes`
diff --git a/layouts/community/ergodox/issmirnov/asci-keymap.txt b/layouts/community/ergodox/issmirnov/asci-keymap.txt
deleted file mode 100644
index 9b023f6641..0000000000
--- a/layouts/community/ergodox/issmirnov/asci-keymap.txt
+++ /dev/null
@@ -1,95 +0,0 @@
- Qwerty
-,--------------------------------------------. ,--------------------------------------------.
-| Escape | 1 | 2 | 3 | 4 | 5 | ! | | = | 6 | 7 | 8 | 9 | 0 | Escape |
-|--------+-----+-----+-----+-----+-----+-----| |-----+-----+-----+-----+-----+-----+--------|
-|Lctl(Spa| Q | W | E | R | T | * | | + | Y | U | I | O | P |Lgui(Spa|
-|--------+-----+-----+-----+-----+-----| | | |-----+-----+-----+-----+-----+--------|
-| Tab | A | S | D | F | G |-----| |-----| H | J | K | L |TapTo|Mo(Navi)|
-|--------+-----+-----+-----+-----+-----| / | | - |-----+-----+-----+-----+-----+--------|
-|Osm(ModL| Z | X | C | V | B | | | | N | M | . |Comma|Tg(Nu| ' |
-`--------+-----+-----+-----+-----+-----------' `-----------+-----+-----+-----+-----+--------'
- |Ctrl |Lsft(|Lsft(| Alt | Mod | |Escap| : | % | |Lgui(|
- `-----------------------------' ,-----------. ,-----------. `-----------------------------'
- | | | | ← | → |
- ,-----|-----|-----| |-----+-----+-----.
- | | | | | ↑ | | |
- | ⎵ | ⌫ |-----| |-----| Tab |Enter|
- | | | Del | | ↓ | | |
- `-----------------' `-----------------'
-
- Symb
-,--------------------------------------------. ,--------------------------------------------.
-| Escape | F1 | F2 | F3 | F4 | F5 | F6 | | F7 | F8 | F9 | F10 | F11 | F12 | |
-|--------+-----+-----+-----+-----+-----+-----| |-----+-----+-----+-----+-----+-----+--------|
-| | - | @ | { | } | ` | * | | + | * | ! | | | % | + |Mo(Navi)|
-|--------+-----+-----+-----+-----+-----| | | |-----+-----+-----+-----+-----+--------|
-| Tab | ^ | _ | ( | ) | $ |-----| |-----| # | = | : | ; |TapTo| Dquo |
-|--------+-----+-----+-----+-----+-----| / | | - |-----+-----+-----+-----+-----+--------|
-| Lshift | < | > | [ | ] | ~ | | | | & | ? | / | \ |Tg(Nu| ' |
-`--------+-----+-----+-----+-----+-----------' `-----------+-----+-----+-----+-----+--------'
- |Ctrl |Lsft(|Lsft(| Alt |WkspL| |Escap| : | % | | |
- `-----------------------------' ,-----------. ,-----------. `-----------------------------'
- | | | | ← | → |
- ,-----|-----|-----| |-----+-----+-----.
- | | | | | ↑ | | |
- |WkspR| ⌫ |-----| |-----| Tab |Enter|
- | | | Del | | ↓ | | |
- `-----------------' `-----------------'
-
- Nump
-,--------------------------------------------. ,--------------------------------------------.
-| | | | | | | | | = | | | | | | Reset |
-|--------+-----+-----+-----+-----+-----+-----| |-----+-----+-----+-----+-----+-----+--------|
-| | No | No |Lgui(| | | * | | + | , | 7 | 8 | 9 | | |
-|--------+-----+-----+-----+-----+-----| | | |-----+-----+-----+-----+-----+--------|
-| Tab | |Lgui(|Lgui(|Lgui(| |-----| |-----| 0 | 4 | 5 | 6 |To(Sy| |
-|--------+-----+-----+-----+-----+-----| / | | - |-----+-----+-----+-----+-----+--------|
-| | | | |Audio|Audio| | | | . | 1 | 2 | 3 |To(Qw| |
-`--------+-----+-----+-----+-----+-----------' `-----------+-----+-----+-----+-----+--------'
- |To(0)| | | | | | 0 | | |To(3)| |
- `-----------------------------' ,-----------. ,-----------. `-----------------------------'
- | | | | ← | → |
- ,-----|-----|-----| |-----+-----+-----.
- | | | | | ↑ | | |
- | ⎵ | ⌫ |-----| |-----| Alt |Shift|
- | | | Del | | ↓ | | |
- `-----------------' `-----------------'
-
- Overwatch
-,--------------------------------------------. ,--------------------------------------------.
-| Escape | 1 | 2 | 3 | 4 | 5 |To(0)| | | | | | | | |
-|--------+-----+-----+-----+-----+-----+-----| |-----+-----+-----+-----+-----+-----+--------|
-| Tab | Q | W | E | R | T | | | | | | | | | |
-|--------+-----+-----+-----+-----+-----| | | |-----+-----+-----+-----+-----+--------|
-| Ctrl | A | S | D | F | P |-----| |-----| | | | | | |
-|--------+-----+-----+-----+-----+-----| | | |-----+-----+-----+-----+-----+--------|
-| Lshift | Z | X | C | V |Grave| | | | | | | | | |
-`--------+-----+-----+-----+-----+-----------' `-----------+-----+-----+-----+-----+--------'
- |Ctrl | F9 |Pscre| H | R | | | | | | |
- `-----------------------------' ,-----------. ,-----------. `-----------------------------'
- | | | | | |
- ,-----|-----|-----| |-----+-----+-----.
- | | | | | | | |
- | ⎵ | |-----| |-----| | |
- | | | | | | | |
- `-----------------' `-----------------'
-
- Navi
-,--------------------------------------------. ,--------------------------------------------.
-| Escape | 1 | 2 | 3 | 4 | 5 | 6 | | | | | | | | |
-|--------+-----+-----+-----+-----+-----+-----| |-----+-----+-----+-----+-----+-----+--------|
-| | | | ↑ | | | | | | | | | | | |
-|--------+-----+-----+-----+-----+-----| | | |-----+-----+-----+-----+-----+--------|
-| | | ← | ↓ | → | |-----| |-----| |Ctrl | | | | |
-|--------+-----+-----+-----+-----+-----| | | |-----+-----+-----+-----+-----+--------|
-| | | | | | | | | | | | | | | |
-`--------+-----+-----+-----+-----+-----------' `-----------+-----+-----+-----+-----+--------'
- | | | | |WkspL| | ⌘⇧ | | | | |
- `-----------------------------' ,-----------. ,-----------. `-----------------------------'
- | | | | | |
- ,-----|-----|-----| |-----+-----+-----.
- | | | | | | | |
- |WkspR| |-----| |-----| | Mod |
- | | | | | | | |
- `-----------------' `-----------------'
-
diff --git a/layouts/community/ergodox/issmirnov/build.sh b/layouts/community/ergodox/issmirnov/build.sh
deleted file mode 100755
index 7bb694d8a7..0000000000
--- a/layouts/community/ergodox/issmirnov/build.sh
+++ /dev/null
@@ -1,2 +0,0 @@
-#!/bin/bash
-make ergodox_ez:issmirnov
diff --git a/layouts/community/ergodox/issmirnov/config.h b/layouts/community/ergodox/issmirnov/config.h
deleted file mode 100644
index 32f7aeccc1..0000000000
--- a/layouts/community/ergodox/issmirnov/config.h
+++ /dev/null
@@ -1,3 +0,0 @@
-// Reference: https://beta.docs.qmk.fm/reference/config-options
-// and https://github.com/qmk/qmk_firmware/blob/master/docs/config_options.md
-#pragma once
diff --git a/layouts/community/ergodox/issmirnov/keymap.c b/layouts/community/ergodox/issmirnov/keymap.c
deleted file mode 100644
index 91c349a5d3..0000000000
--- a/layouts/community/ergodox/issmirnov/keymap.c
+++ /dev/null
@@ -1,250 +0,0 @@
-#include QMK_KEYBOARD_H
-
-// Custom user includes
-#include "issmirnov.h"
-#include "tap_tog.h"
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-[_QWERTY] = LAYOUT_ergodox_wrapper(
-KC_ESCAPE, KC_1, KC_2, KC_3, KC_4, KC_5, KC_EXLM,
-LCTL(KC_SPACE), _________________QWERTY_L1_________________, KC_ASTR,
-KC_TAB, _________________QWERTY_L2_________________,
-OSM(MOD_LSFT), _________________QWERTY_L3_________________, KC_SLASH,
-KC_LCTL, LSFT(KC_LGUI), LSFT(KC_LALT), KC_LALT, KC_LGUI,
- XXXXXXX, XXXXXXX,
- XXXXXXX,
- KC_SPACE, KC_BSPC, KC_DEL,
-
-KC_EQL , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , KC_ESCAPE ,
-KC_PLUS , _________________QWERTY_R1_________________ , LGUI(KC_SPACE) ,
- _________________QWERTY_R2_________________ , MO(_NAVI) ,
-KC_MINS , _________________QWERTY_R3_________________ , KC_QUOTE ,
-KC_ESCAPE , KC_COLN , KC_PERC , XXXXXXX , LGUI(KC_L) ,
-
-KC_LEFT, KC_RGHT,
-KC_UP,
-KC_DOWN, KC_TAB, KC_ENTER
-),
-
- // layer 1
-[_SYMB] = LAYOUT_ergodox_wrapper(
-KC_ESCAPE , KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_F5 , KC_F6 ,
-XXXXXXX , _________________SYMB_L1___________________ ,KC_ASTR ,
-KC_TAB , _________________SYMB_L2___________________,
-KC_LSFT , _________________SYMB_L3___________________, KC_SLASH ,
-KC_LCTL , LSFT(KC_LGUI) , LSFT(KC_LALT) , KC_LALT , WKSP_LEFT ,
-
- XXXXXXX, XXXXXXX,
- XXXXXXX,
- WKSP_RIGHT, KC_BSPC, KC_DEL,
-
-KC_F7 , KC_F8 , KC_F9 , KC_F10 , KC_F11 , KC_F12 , XXXXXXX ,
-KC_PLUS , _________________SYMB_R1___________________ , MO(_NAVI) ,
- _________________SYMB_R2___________________ , KC_DQUO ,
-KC_MINS , _________________SYMB_R3___________________ , KC_QUOTE ,
-KC_ESCAPE , KC_COLN , KC_PERC , XXXXXXX , XXXXXXX ,
-
-KC_LEFT, KC_RGHT,
-KC_UP,
-KC_DOWN, KC_TAB, KC_ENTER
-),
-
- // layer 2
-[_NUMP] = LAYOUT_ergodox_wrapper(
-XXXXXXX , ___________________XXXXX___________________, XXXXXXX ,
-XXXXXXX , _________________NUMP_L1___________________ , KC_ASTR ,
-KC_TAB , _________________NUMP_L2___________________ ,
-XXXXXXX , _________________NUMP_L3___________________ , KC_SLASH ,
-TO(0) , XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
-
- XXXXXXX , XXXXXXX ,
- XXXXXXX ,
- KC_SPACE , KC_BSPC , KC_DEL ,
-
-KC_EQL , ___________________XXXXX___________________ , QK_BOOT ,
-KC_PLUS , _________________NUMP_R1___________________ , XXXXXXX ,
- _________________NUMP_R2___________________ , XXXXXXX ,
-KC_MINS , _________________NUMP_R3___________________ , XXXXXXX ,
- KC_0 , XXXXXXX , XXXXXXX , TO(3) , XXXXXXX ,
-
-KC_LEFT, KC_RGHT,
-KC_UP,
-KC_DOWN, KC_LALT, KC_LSFT
-),
-
- // layer 3
-[_OVERWATCH] = LAYOUT_ergodox_wrapper(
-KC_ESCAPE, KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , TO(0) ,
-______________OVERWATCH_L1_________________ , XXXXXXX ,
-______________OVERWATCH_L2_________________ ,
-______________OVERWATCH_L3_________________ , XXXXXXX ,
-______________OVERWATCH_L4_________________ ,
-
-XXXXXXX , XXXXXXX ,
-XXXXXXX ,
-KC_SPACE , XXXXXXX , XXXXXXX ,
-
-
-_______, _______, _______, _______, _______, _______, _______,
-_______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______,
-_______, _______, _______, _______, _______, _______, _______,
-_______, _______, _______, _______, _______,
-
-_______, _______,
-_______,
-_______, _______, _______
-
-),
-// layer 4
-[_NAVI] = LAYOUT_ergodox_wrapper(
-KC_ESCAPE, KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 ,
-XXXXXXX, _________________NAVI_L1___________________ , XXXXXXX ,
-XXXXXXX, _________________NAVI_L2___________________ ,
-XXXXXXX, _________________NAVI_L3___________________ , XXXXXXX ,
-XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, WKSP_LEFT,
-
-XXXXXXX , XXXXXXX ,
-XXXXXXX ,
-WKSP_RIGHT , XXXXXXX , XXXXXXX ,
-
-
-_______, _______, _______, _______, _______, _______, _______,
-_______, _________________NAVI_R1___________________, _______,
- _________________NAVI_R2___________________, _______,
-_______, _________________NAVI_R3___________________, _______,
-MODSFT, _______, _______, _______, _______,
-
-_______, _______,
-_______,
-_______, _______, KC_LGUI
-
-),
-};
-
-
-// called by QMK during key processing before the actual key event is handled. Useful for macros.
-bool process_record_user(uint16_t keycode, keyrecord_t *record) {
- uint8_t layer = get_highest_layer(layer_state);
- switch (keycode) {
- case TAP_TOG_LAYER:
- process_tap_tog(_SYMB,record);
- return false;
- break;
-
- case WKSP_LEFT:
- // Only if TAP_TOG_LAYER is being held right now do we want to do actions.
- if (record->event.pressed && (!tap_tog_layer_toggled_on || layer == _NAVI)) {
- tap_code16(LGUI(LSFT(KC_Z)));
- tap_tog_layer_other_key_pressed = true; // Add flag so layer resets
- }
- break;
- case WKSP_RIGHT:
- // Only if TAP_TOG_LAYER is being held right now do we want to do actions.
- if (record->event.pressed && (!tap_tog_layer_toggled_on || layer == _NAVI)) {
- tap_code16(LGUI(LSFT(KC_X)));
- tap_tog_layer_other_key_pressed = true; // Add flag so layer resets
- }
- break;
- default:
- tap_tog_count = 0; // reset counter.
- tap_tog_layer_other_key_pressed = true; // always set this to true, TAP_TOG_LAYER handlers will handle interpreting this
- break;
- }
- return true;
-}
-
-// Runs constantly in the background, in a loop every 100ms or so.
-// Best used for LED status output triggered when user isn't actively typing.
-void matrix_scan_user(void) {
- uint8_t layer = get_highest_layer(layer_state);
- if (layer == 0) {
- // Set up LED indicators for stuck modifier keys.
- // https://github.com/qmk/qmk_firmware/blob/master/tmk_core/common/report.h#L118
- switch (keyboard_report->mods) {
- case MOD_BIT(KC_LSFT): // LSHIFT
- ergodox_right_led_1_set (LED_BRIGHTNESS_LO);
- ergodox_right_led_1_on ();
- ergodox_right_led_2_set (LED_BRIGHTNESS_LO);
- ergodox_right_led_2_on ();
- ergodox_right_led_3_set (LED_BRIGHTNESS_HI);
- ergodox_right_led_3_off ();
- break;
-
- case MOD_BIT(KC_LGUI): // LGUI
- ergodox_right_led_1_set (LED_BRIGHTNESS_HI);
- ergodox_right_led_1_off ();
- ergodox_right_led_2_set (LED_BRIGHTNESS_LO);
- ergodox_right_led_2_on ();
- ergodox_right_led_3_set (LED_BRIGHTNESS_LO);
- ergodox_right_led_3_on ();
- break;
-
- case MOD_BIT(KC_LSFT) ^ MOD_BIT(KC_LGUI):
- ergodox_right_led_1_set (70);
- ergodox_right_led_1_on ();
- ergodox_right_led_2_set (70);
- ergodox_right_led_2_on ();
- ergodox_right_led_3_set (70);
- ergodox_right_led_3_on ();
- break;
-
- default: // reset leds
- ergodox_right_led_1_set (LED_BRIGHTNESS_HI);
- ergodox_right_led_1_off ();
- ergodox_right_led_2_set (LED_BRIGHTNESS_HI);
- ergodox_right_led_2_off ();
- ergodox_right_led_3_set (LED_BRIGHTNESS_HI);
- ergodox_right_led_3_off ();
- }
- }
-}
-
-// only runs when when the layer is changed, good for updating LED's and clearing sticky state
-layer_state_t layer_state_set_user(layer_state_t state) {
- uint8_t layer = get_highest_layer(state);
-
- ergodox_board_led_off();
- ergodox_right_led_1_off();
- ergodox_right_led_2_off();
- ergodox_right_led_3_off();
-
- combo_enable(); // by default, enable combos.
- switch (layer) {
- case 0:
- break;
- case 1:
- clear_mods();
- ergodox_right_led_1_on();
- break;
- case 2:
- clear_mods();
- ergodox_right_led_2_on();
- break;
- case _OVERWATCH:
- clear_mods();
- combo_disable(); // We don't want combos in overwatch
- ergodox_right_led_3_on();
- break;
- case 4:
- ergodox_right_led_1_on();
- ergodox_right_led_2_on();
- break;
- case 5:
- ergodox_right_led_1_on();
- ergodox_right_led_3_on();
- break;
- case 6:
- ergodox_right_led_2_on();
- ergodox_right_led_3_on();
- break;
- case 7:
- ergodox_right_led_1_on();
- ergodox_right_led_2_on();
- ergodox_right_led_3_on();
- break;
- default:
- break;
- }
- return state;
-};
diff --git a/layouts/community/ergodox/issmirnov/push.sh b/layouts/community/ergodox/issmirnov/push.sh
deleted file mode 100755
index 1a6c7c4478..0000000000
--- a/layouts/community/ergodox/issmirnov/push.sh
+++ /dev/null
@@ -1,2 +0,0 @@
-#!/bin/bash
-make ergodox_ez:issmirnov:teensy
diff --git a/layouts/community/ergodox/issmirnov/template.txt b/layouts/community/ergodox/issmirnov/template.txt
deleted file mode 100644
index 35c7920a11..0000000000
--- a/layouts/community/ergodox/issmirnov/template.txt
+++ /dev/null
@@ -1,17 +0,0 @@
-,--------------------------------------------. ,--------------------------------------------.
-| 0 | 1 | 2 | 3 | 4 | 5 | 6 | | 38 | 39 | 40 | 41 | 42 | 43 | 44 |
-|--------+-----+-----+-----+-----+-----+-----| |-----+-----+-----+-----+-----+-----+--------|
-| 7 | 8 | 9 | 10 | 11 | 12 | 13 | | 45 | 46 | 47 | 48 | 49 | 50 | 51 |
-|--------+-----+-----+-----+-----+-----| | | |-----+-----+-----+-----+-----+--------|
-| 14 | 15 | 16 | 17 | 18 | 19 |-----| |-----| 52 | 53 | 54 | 55 | 56 | 57 |
-|--------+-----+-----+-----+-----+-----| 26 | | 58 |-----+-----+-----+-----+-----+--------|
-| 20 | 21 | 22 | 23 | 24 | 25 | | | | 59 | 60 | 61 | 62 | 63 | 64 |
-`--------+-----+-----+-----+-----+-----------' `-----------+-----+-----+-----+-----+--------'
- | 27 | 28 | 29 | 30 | 31 | | 65 | 66 | 67 | 68 | 69 |
- `-----------------------------' ,-----------. ,-----------. `-----------------------------'
- | 32 | 33 | | 70 | 71 |
- ,-----|-----|-----| |-----+-----+-----.
- | | | 34 | | 72 | | |
- | 35 | 36 |-----| |-----| 74 | 75 |
- | | | 37 | | 73 | | |
- `-----------------' `-----------------'
diff --git a/layouts/community/ergodox/j3rn/keymap.c b/layouts/community/ergodox/j3rn/keymap.c
deleted file mode 100644
index 8ff8db2381..0000000000
--- a/layouts/community/ergodox/j3rn/keymap.c
+++ /dev/null
@@ -1,163 +0,0 @@
-#include QMK_KEYBOARD_H
-#include "debug.h"
-#include "action_layer.h"
-
-#define BASE 0 // default layer
-#define SYMB 1 // symbols
-#define MDIA 2 // media keys
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-/* Keymap 0: Basic layer
- *
- * ,--------------------------------------------------. ,--------------------------------------------------.
- * | Sleep | 1 | 2 | 3 | 4 | 5 | [ | | ] | 6 | 7 | 8 | 9 | 0 | BkSp |
- * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | Esc | Q | W | E | R | T | - | | = | Y | U | I | O | P | \ |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * |Ctrl/Esc| A | S/Sft| D/Ctl| F/Alt| G |------| |------| H | J/Alt| K/Ctl| L/Sft| ; | ' |
- * |--------+------+------+------+------+------| Hyper| | Meh |------+------+------+------+------+--------|
- * | LShift | Z | X | C | V | B | | | | N | M | , | . | / | RShift |
- * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * | ~L1 | Alt |AltShf| Left | Right| | Up | Down |AltShf| Alt | ~L1 |
- * `----------------------------------' `----------------------------------'
- * ,-------------. ,-------------.
- * | App | Home | | PgUp |Ctrl/Esc|
- * ,------|------|------| |------+--------+------.
- * | | | End | | PgDn | | |
- * |Space | LGui |------| |------| Tab |Enter |
- * | | | ~L2 | | ~L1 | | |
- * `--------------------' `----------------------'
- */
-// If it accepts an argument (i.e, is a function), it doesn't need KC_.
-// Otherwise, it needs KC_*
-[BASE] = LAYOUT_ergodox( // layer 0 : default
- // left hand
- KC_SLEP, KC_1, KC_2, KC_3, KC_4, KC_5, KC_LBRC,
- KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_MINS,
- CTL_T(KC_ESC), KC_A, LSFT_T(KC_S), LCTL_T(KC_D), LALT_T(KC_F), KC_G,
- KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, ALL_T(KC_NO),
- MO(SYMB), KC_LALT, LALT(KC_LSFT), KC_LEFT, KC_RGHT,
-
- ALT_T(KC_APP), KC_HOME,
- KC_END,
- KC_SPC,KC_LGUI,MO(MDIA),
- // right hand
- KC_RBRC, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC,
- KC_EQL, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS,
- KC_H, RALT_T(KC_J), RCTL_T(KC_K), RSFT_T(KC_L), KC_SCLN, KC_QUOT,
- MEH_T(KC_NO), KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,
- KC_UP, KC_DOWN, RALT(KC_RSFT), KC_RALT, MO(SYMB),
-
- KC_PGUP, CTL_T(KC_ESC),
- KC_PGDN,
- MO(SYMB),KC_TAB, KC_ENT
- ),
-/* Keymap 1: Symbol Layer
- *
- * ,--------------------------------------------------. ,--------------------------------------------------.
- * | | | | | | | | | | | | | | | |
- * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | | ! | @ | { | } | | | | | | Up | 7 | 8 | 9 | * | |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | # | $ | ( | ) | ` |------| |------| Down | 4 | 5 | 6 | + | |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | % | ^ | [ | ] | ~ | | | | & | 1 | 2 | 3 | \ | |
- * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * | | | | | | | 0 | 0 | . | = | |
- * `----------------------------------' `----------------------------------'
- * ,-------------. ,-------------.
- * | | | | | |
- * ,------|------|------| |------+------+------.
- * | | | | | | | |
- * | | |------| |------| | |
- * | | | | | | | |
- * `--------------------' `--------------------'
- */
-// SYMBOLS
-[SYMB] = LAYOUT_ergodox(
- // left hand
- KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
- KC_TRNS,KC_EXLM,KC_AT, KC_LCBR,KC_RCBR,KC_PIPE,KC_TRNS,
- KC_TRNS,KC_HASH,KC_DLR, KC_LPRN,KC_RPRN,KC_GRV,
- KC_TRNS,KC_PERC,KC_CIRC,KC_LBRC,KC_RBRC,KC_TILD,KC_TRNS,
- KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
-
- KC_TRNS,KC_TRNS,
- KC_TRNS,
- KC_TRNS,KC_TRNS,KC_TRNS,
- // right hand
- KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_UP, KC_7, KC_8, KC_9, KC_ASTR, KC_TRNS,
- KC_DOWN, KC_4, KC_5, KC_6, KC_PLUS, KC_TRNS,
- KC_TRNS, KC_AMPR, KC_1, KC_2, KC_3, KC_BSLS, KC_TRNS,
- KC_0, KC_0, KC_DOT, KC_EQL, KC_TRNS,
- KC_TRNS, KC_TRNS,
- KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS
-),
-/* Keymap 2: Media and mouse keys
- *
- * ,--------------------------------------------------. ,--------------------------------------------------.
- * | | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | F11 |
- * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | | | | | | | | | | | | Lclk | Rclk | | F12 |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | | | | | |------| |------|MsLeft|MsDown| MsUp |MsRght| | |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | | | | | | | | | | Prev | Play | Next | | |
- * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * | | | | | | |VolUp |VolDn | Mute | | |
- * `----------------------------------' `----------------------------------'
- * ,-------------. ,-------------.
- * | | | | | |
- * ,------|------|------| |------+------+------.
- * | | | | | | |Brwser|
- * | | |------| |------| |Back |
- * | | | | | | | |
- * `--------------------' `--------------------'
- */
-// MEDIA AND MOUSE
-[MDIA] = LAYOUT_ergodox(
- KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS,
- KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS,
- // right hand
- KC_TRNS, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_BTN1, KC_BTN2, KC_TRNS, KC_F12,
- KC_MS_L, KC_MS_D, KC_MS_U, KC_MS_R, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_MPRV, KC_MPLY, KC_MNXT, KC_TRNS, KC_TRNS,
- KC_VOLU, KC_VOLD, KC_MUTE, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS,
- KC_TRNS,
- KC_TRNS, KC_TRNS, KC_WBAK
-),
-};
-
-// Runs constantly in the background, in a loop.
-void matrix_scan_user(void) {
-
- uint8_t layer = get_highest_layer(layer_state);
-
- ergodox_board_led_off();
- ergodox_right_led_1_off();
- ergodox_right_led_2_off();
- ergodox_right_led_3_off();
- switch (layer) {
- // TODO: Make this relevant to the ErgoDox EZ.
- case 1:
- ergodox_right_led_1_on();
- break;
- case 2:
- ergodox_right_led_2_on();
- break;
- default:
- // none
- break;
- }
-
-};
diff --git a/layouts/community/ergodox/j3rn/readme.md b/layouts/community/ergodox/j3rn/readme.md
deleted file mode 100644
index 23071482a3..0000000000
--- a/layouts/community/ergodox/j3rn/readme.md
+++ /dev/null
@@ -1,37 +0,0 @@
-# J3RN's ErgoDox EZ keymap
-
-## Motivation
-
-I wanted a layout that was gave easy access to the CMD (LGui) key, and did not require finger gymnastics to use my beloved Emacs shortcuts.
-
-## How is it different from the default ErgoDox EZ default_osx layout?
-
-This layout more closely resembles that of the Mac keyboard, and has some other goodness baked in. Here is a rundown of what that means:
-
-### Mac-like changes
-
-- **The key to the right of "0" is Backspace instead of "-"** (misleadingly labeled "delete" on the Mac's keyboard). There was no room to fit in "-" and "=" between "0" and Backspace, unfortunately.
-- **The rightmost big key on the left thumb is CMD (LGui) instead of Backspace.**
-- **The key to the left of Alt-Shift is an Alt key**. This is close to it's position on the Mac keyboard, though slightly further left.
-
-### Emacs changes
-- **Holding "S" sends "left shift," holding "D" sends "left control," and holding "F" sends "left alt." This is mirrored on the right side with "J," "K," and "L."** This should make it easy to use those crazy Escape-Meta-Alt-Control-Shift bindings.
-
-### Other changes
-
-- **The button in the top-left is "Sleep."** Before macOS High Sierra, the power button was part of the key combination for triggering sleep. Since there's no power key in my layout, I was unable to sleep my laptop with this keyboard. By adding a dedicated sleep key, I fixed this. Now I just need a cool moon keycap for that key.
-- **The middle-most big key on the right thumb is "Tab."** I use tab *a lot*, so I decided to make it incredibly convenient.
-- **The button to the left of "Q" is Esc.** There is no functional reason for this other than to train me to use the tab under my right thumb.
-- **The button to the left of "A" is Ctrl/Esc instead of Backspace.** This is actually how I have the keyboard on my Macbook set up to be, since it's loads more convenient than a CAPS LOCK key. This is the Ctrl key I find myself using most.
-- **Mouse uses Vim-style navigation**. This allows you to move the mouse around with hjkl just like in Vim. Additionally, right and left click are the conveniently placed 'i' and 'o' keys.
-- **The key to the right of "5" and the key to left of "6" are "[" and "]", respectively, instead of Left and Right.** There is a more convenient set of Left and Right already present. Truth be told, I don't really use these keys, as they are a stretch to reach.
-- **The Toggle L1 keys in the center of the keyboard have been replaced by the otherwise displaced "-" and "=".** They are laid out, left-to-right, in the same order as on the Mac keyboard. Honestly, they are not terribly conveniently placed, and their placement might change in a later version. I found that the ~L1 would be better situated elsewhere.
-- **The "~" key in the extreme bottom-left is now just momentary L1.** I go to L1 (the symbol layer) to get to "~".
-- **The Home and End buttons have been shifted up on the left thumb, and ~L2 inserted below them.** Nearly all of my media layer changes are on the right side, so the ~L2 key is on the left side.
-- **The Page Up and Page Down buttons have been shifted up on the right thumb, and ~L1 inserted below them.** I don't use either of the "Page" keys often, and use this ~L1 more than any other.
-- **Traditional numpad layout.** The base of most numpads is a double-wide "0" key to the left of a "." key. This is reflected in my layout by having two "0" keys to the left of a "." key.
-- **The function keys (F1-F12) have been moved to L2.** They were in the way in L1.
-- **⏯ lives on ',' in the media layer, between ⏪ on 'm' and ⏩ on '.'.** This is the way they are laid out on the mac keyboard, and makes the most sense to me.
-- **The keys on the bottom-right that were formerly "[" and "]" are now Alt-Shift and Alt, respectively.** This was originally for convenience with Emacs bindings, but since I've moved the modifiers to the home row the only purpose for this change is that the symmetry makes me happy.
-
-**I'm always open to feedback and/or suggestions!**
diff --git a/layouts/community/ergodox/jackhumbert/config.h b/layouts/community/ergodox/jackhumbert/config.h
deleted file mode 100644
index 0181b66605..0000000000
--- a/layouts/community/ergodox/jackhumbert/config.h
+++ /dev/null
@@ -1,21 +0,0 @@
-#pragma once
-
-/* ws2812 RGB LED */
-#define WS2812_DI_PIN D7
-#define RGBLIGHT_EFFECT_BREATHING
-#define RGBLIGHT_EFFECT_RAINBOW_MOOD
-#define RGBLIGHT_EFFECT_RAINBOW_SWIRL
-#define RGBLIGHT_EFFECT_SNAKE
-#define RGBLIGHT_EFFECT_KNIGHT
-#define RGBLIGHT_EFFECT_CHRISTMAS
-#define RGBLIGHT_EFFECT_STATIC_GRADIENT
-#define RGBLIGHT_EFFECT_RGB_TEST
-#define RGBLIGHT_EFFECT_ALTERNATING
-#define RGBLIGHT_EFFECT_TWINKLE
-#define RGBLED_NUM 15 // Number of LEDs
-#define RGBLIGHT_HUE_STEP 12
-#define RGBLIGHT_SAT_STEP 255
-#define RGBLIGHT_VAL_STEP 12
-
-#define RGB_MIDI
-#define RGBW_BB_TWI
diff --git a/layouts/community/ergodox/jackhumbert/keymap.c b/layouts/community/ergodox/jackhumbert/keymap.c
deleted file mode 100644
index 2e1678d8b2..0000000000
--- a/layouts/community/ergodox/jackhumbert/keymap.c
+++ /dev/null
@@ -1,119 +0,0 @@
-#include QMK_KEYBOARD_H
-#include "debug.h"
-#include "action_layer.h"
-
-// TODO: Define layer names that make sense for the ErgoDox EZ.
-#define BASE 0 // default layer
-#define SYMB 1 // symbols
-#define MDIA 2 // media keys
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-[BASE] = LAYOUT_ergodox( // layer 0 : default
- // left hand
- KC_NO, KC_1, KC_2, KC_3, KC_4, KC_5, KC_NO,
- KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_NO,
- KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G,
- KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_NO,
- KC_NO, KC_LCTL, KC_LALT,KC_LGUI, MO(2),
- ALT_T(KC_APP), KC_LGUI,
- KC_HOME,
- KC_SPC,KC_SPC,KC_END,
- // right hand
- KC_NO, M(1), QK_BOOT, KC_8, KC_9, KC_0, KC_NO,
- KC_NO, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, KC_P, KC_BSPC,
- RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_SCLN, KC_QUOT,
- KC_NO, KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH, KC_ENT,
- MO(1), KC_LEFT,KC_DOWN,KC_UP, KC_RGHT,
- RGB_TOG, RGB_HUI,
- RGB_MOD,
- M(2), KC_SPC,KC_SPC
- ),
-[SYMB] = LAYOUT_ergodox(
- // left hand
- KC_TRNS,KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_TRNS,
- KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_TRNS,
- KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5,
- KC_TRNS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,KC_TRNS,
- KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
- KC_TRNS,KC_TRNS,
- KC_TRNS,
- KC_TRNS,KC_TRNS,KC_TRNS,
- // right hand
- KC_TRNS, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,
- KC_TRNS, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC,
- KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS,
- KC_TRNS, KC_F12, KC_NO, KC_NO, KC_NO, QK_BOOT, KC_TRNS,
- KC_TRNS, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY,
- KC_TRNS, KC_TRNS,
- KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS
-),
-[MDIA] = LAYOUT_ergodox(
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_TRNS,
- KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5,
- KC_TRNS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS,
- KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS,
- // right hand
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC,
- KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE,
- KC_TRNS, KC_F12, KC_NO, KC_NO, KC_NO, QK_BOOT, KC_TRNS,
- KC_TRNS, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY,
- KC_TRNS, KC_TRNS,
- KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS
-),
-};
-
-const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
-{
- // MACRODOWN only works in this function
- switch(id) {
- case 0:
- if (record->event.pressed) {
- register_code(KC_RSFT);
- } else {
- unregister_code(KC_RSFT);
- }
- break;
- case 1:
- if (record->event.pressed) { // For resetting EEPROM
- eeconfig_init();
- }
- break;
- }
- return MACRO_NONE;
-};
-
-// Runs just one time when the keyboard initializes.
-void matrix_init_user(void) {
-
-};
-
-// Runs constantly in the background, in a loop.
-void matrix_scan_user(void) {
-
- uint8_t layer = get_highest_layer(layer_state);
-
- ergodox_board_led_off();
- ergodox_right_led_1_off();
- ergodox_right_led_2_off();
- ergodox_right_led_3_off();
- switch (layer) {
- // TODO: Make this relevant to the ErgoDox EZ.
- case 1:
- ergodox_right_led_1_on();
- break;
- case 2:
- ergodox_right_led_2_on();
- break;
- default:
- // none
- break;
- }
-
-};
diff --git a/layouts/community/ergodox/jacobono/keymap.c b/layouts/community/ergodox/jacobono/keymap.c
deleted file mode 100644
index 2e9d6f2006..0000000000
--- a/layouts/community/ergodox/jacobono/keymap.c
+++ /dev/null
@@ -1,249 +0,0 @@
-#include QMK_KEYBOARD_H
-#include "debug.h"
-#include "action_layer.h"
-
-#define COLEMAK 0 // new colemak layout
-#define QWERTY 1 // default layer
-#define SYMB 2 // symbols
-#define NUMPAD 3 // number pad
-#define MDIA 4 // media keys
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- /* Keymap 0: Basic COLEMAK layer
- *
- * ,--------------------------------------------------. ,--------------------------------------------------.
- * | | 1 | 2 | 3 | 4 | 5 | LEFT | | RIGHT| 6 | 7 | 8 | 9 | 0 | |
- * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | Tab | Q | W | F | P | G | | | | J | L | U | Y | ; | TAB |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | BkSp | A | R | S | T | D |------| |------| H | N | E | I | O | DEL |
- * |--------+------+------+------+------+------| | LGUI(TAB)------+------+------+------+------+--------|
- * | LShift |Z/Ctrl| X | C | V | B | | | | K | M | , | . |//Ctrl| RShift |
- * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * | L1 | | | UP |MO(L2)| |MO(L2)| Down | | ALT | RGUI |
- * `----------------------------------' `------------------------------------'
- * ,-------------. ,---------------.
- * | LGUI | App | |Ctrl/Esc| Alt |
- * ,------|------|------| |--------+--------+------.
- * | | |QUKSL | | QUKSL | | |
- * |Space |ENTER |------| |--------| ENTER |Space |
- * | | |MO(L3)| | MO(L3) | | |
- * `--------------------' `------------------------'
- */
-
- // If it accepts an argument (i.e, is a function), it doesn't need KC_.
- // Otherwise, it needs KC_*
- [COLEMAK] = LAYOUT_ergodox( // layer 0 : Colemak layout default layer
- // left hand
- KC_TRNS, KC_1, KC_2, KC_3, KC_4, KC_5, KC_LEFT,
- KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_TRNS,
- KC_BSPC, KC_A, KC_R, KC_S, KC_T, KC_D,
- KC_LSFT, CTL_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_TRNS,
- TG(QWERTY), KC_TRNS, KC_TRNS,KC_UP, MO(SYMB),
- KC_LGUI, KC_APP,
- LGUI(S(KC_SPC)),
- KC_SPC,KC_ENT,MO(NUMPAD),
- // right hand
- KC_RGHT, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL,
- KC_TRNS, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_TAB,
- KC_H, KC_N, KC_E, KC_I, KC_O, KC_DEL,
- LGUI(KC_TAB), KC_K, KC_M, KC_COMM, KC_DOT, CTL_T(KC_SLSH), KC_RSFT,
- MO(SYMB), KC_DOWN, KC_TRNS, KC_RALT, KC_RGUI,
- CTL_T(KC_ESC), KC_LALT,
- LGUI(S(KC_SPC)),
- MO(NUMPAD), KC_ENT, KC_SPC),
-
- /* Keymap 1: Basic QWERTY layer
- *
- * ,--------------------------------------------------. ,--------------------------------------------------.
- * | BkSp | 1 | 2 | 3 | 4 | 5 | LEFT | | RIGHT| 6 | 7 | 8 | 9 | 0 | DEL |
- * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | Tab | Q | W | E | R | T | L0 | | L0 | Y | U | I | O | P | \ |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | Ctrl | A | S | D | F | G |------| |------| H | J | K | L |; / L4| CTRL |
- * |--------+------+------+------+------+------| Alt | | Alt |------+------+------+------+------+--------|
- * | LShift |Z/Ctrl| X | C | V | B | | | | N | M | , | . |//Ctrl| RShift |
- * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * |Grv/L3| '" |AltShf| Left |MO(L2)| |MO(L2)| Down | [ | ] | ~L3 |
- * `----------------------------------' `----------------------------------'
- * ,-------------. ,---------------.
- * | Tab | BkSp | | Alt |Ctrl/Esc|
- * ,------|------|------| |------+--------+------.
- * | | | Home | | PgUp | | |
- * | Space| LGUI |------| |------| RGUI |Enter |
- * | | | End | | PgDn | | |
- * `--------------------' `----------------------'
- */
- // If it accepts an argument (i.e, is a function), it doesn't need KC_.
- // Otherwise, it needs KC_*
- [QWERTY] = LAYOUT_ergodox( // layer 1
- // left hand
- KC_BSPC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_LEFT,
- KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_TRNS,
- KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G,
- KC_LSFT, CTL_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_LALT,
- KC_TRNS, KC_QUOT, LALT(KC_LSFT), KC_LEFT, MO(SYMB),
- KC_TAB, KC_DEL,
- KC_HOME,
- KC_SPC, KC_LGUI, KC_END,
- // right hand
- KC_RGHT, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL,
- KC_TRNS, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS,
- KC_H, KC_J, KC_K, KC_L, LT(MDIA, KC_SCLN), KC_RCTL,
- KC_RALT, KC_N, KC_M, KC_COMM, KC_DOT, CTL_T(KC_SLSH), KC_RSFT,
- MO(SYMB), KC_DOWN, KC_LBRC, KC_RBRC, TT(SYMB),
- KC_LALT, CTL_T(KC_ESC),
- KC_PGUP,
- KC_PGDN, KC_RGUI, KC_ENT),
-
-
- /* Keymap 2: Symbol Layer
- *
- * ,--------------------------------------------------. ,--------------------------------------------------.
- * | | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | F11 |
- * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | | | @ | * | = | _ | | | | ~ | { | } | # | : | F12 |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | | | ! | + | - | " |------| |------| " | ( | ) | ' | ` | |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | | % | ^ | $ | & | | | | ; | [ | ] | \ | / | |
- * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * | | | | | | | | | | | |
- * `----------------------------------' `----------------------------------'
- * ,-------------. ,-------------.
- * | | | | | |
- * ,------|------|------| |------+------+------.
- * | | | | | | | |
- * | | |------| |------| | |
- * | | | | | | | |
- * `--------------------' `--------------------'
- */
- // SYMBOL
- [SYMB] = LAYOUT_ergodox(
- // left hand
- KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_AT, KC_ASTR, KC_EQL, KC_UNDS, KC_TRNS,
- KC_TRNS, KC_PIPE, KC_EXLM, KC_PLUS, KC_MINS, S(KC_QUOTE),
- KC_TRNS, KC_TRNS, KC_PERC, KC_CIRC, KC_DLR, KC_AMPR, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS,
- KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS,
-
- // right hand
- KC_TRNS, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,
- KC_TRNS, KC_TILD, KC_LCBR, KC_RCBR, KC_HASH, S(KC_SCLN), KC_F12,
- S(KC_QUOTE),KC_LPRN, KC_RPRN, KC_QUOTE, KC_GRV, KC_TRNS,
- KC_TRNS, KC_SCLN, KC_LBRC, KC_RBRC, KC_BSLS, KC_SLSH, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS,
- KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS),
-
- /* Keymap 3: Numpad Layer
- *
- * ,--------------------------------------------------. ,--------------------------------------------------.
- * | | | | | | | | | | | | | | | |
- * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | | | | UP | | | | | | $ | 7 | 8 | 9 | + | |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | | LEFT | DOWN | RIGHT| |------| |------| = | 4 | 5 | 6 | - | |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | | | | | | | | | | 1 | 2 | 3 | * | |
- * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * | | | | | | | , | 0 | . | / | |
- * `----------------------------------' `----------------------------------'
- * ,-------------. ,-------------.
- * | | | | | |
- * ,------|------|------| |------+------+------.
- * | | | | | | | |
- * | | |------| |------| | |
- * | | | | | | | |
- * `--------------------' `--------------------'
- */
- // Numpad
- [NUMPAD] = LAYOUT_ergodox(
- // left hand
- KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
- KC_TRNS,KC_TRNS,KC_TRNS,KC_UP,KC_TRNS,KC_TRNS,KC_TRNS,
- KC_TRNS,KC_TRNS,KC_LEFT,KC_DOWN,KC_RIGHT,KC_TRNS,
- KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
- KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
- KC_TRNS,KC_TRNS,
- KC_TRNS,
- KC_TRNS,KC_TRNS,KC_TRNS,
- // right hand
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_DLR, KC_7, KC_8, KC_9, KC_PLUS, KC_TRNS,
- KC_EQL, KC_4, KC_5, KC_6, KC_MINS, KC_TRNS,
- KC_TRNS, KC_AMPR, KC_1, KC_2, KC_3, KC_ASTR, KC_TRNS,
- KC_COMMA,KC_0, KC_DOT, KC_SLSH, KC_TRNS,
- KC_TRNS, KC_TRNS,
- KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS),
-
- /* Keymap 4: Media and mouse keys
- *
- * ,--------------------------------------------------. ,--------------------------------------------------.
- * | | | | | | | | | | | | | | | |
- * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | | | | MsUp | | | | | | | | | | | |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | |MsLeft|MsDown|MsRght| |------| |------| | | | | | Play |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | | | | | | | | | | | Prev | Next | | |
- * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * | | | | Lclk | Rclk | |VolUp |VolDn | Mute | | |
- * `----------------------------------' `----------------------------------'
- * ,-------------. ,-------------.
- * | | | | | |
- * ,------|------|------| |------+------+------.
- * | | | | | | |Brwser|
- * | | |------| |------| |Back |
- * | | | | | | | |
- * `--------------------' `--------------------'
- */
- // MEDIA AND MOUSE
- LAYOUT_ergodox(
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_MS_U, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_R, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_BTN1, KC_BTN2,
- KC_TRNS, KC_TRNS,
- KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS,
- // right hand
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_MPRV, KC_MNXT, KC_TRNS, KC_TRNS,
- KC_VOLU, KC_VOLD, KC_MUTE, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS,
- KC_TRNS,
- KC_TRNS, KC_TRNS, KC_WBAK),
-};
-
-// Runs constantly in the background, in a loop.
-void matrix_scan_user(void) {
-
- uint8_t layer = get_highest_layer(layer_state);
-
- ergodox_board_led_off();
- ergodox_right_led_1_off();
- ergodox_right_led_2_off();
- ergodox_right_led_3_off();
- switch (layer) {
- // TODO: Make this relevant to the ErgoDox EZ.
- case 1:
- ergodox_right_led_1_on();
- break;
- case 2:
- ergodox_right_led_2_on();
- break;
- default:
- // none
- break;
- }
-
-};
diff --git a/layouts/community/ergodox/jacobono/readme.md b/layouts/community/ergodox/jacobono/readme.md
deleted file mode 100644
index f977054ef1..0000000000
--- a/layouts/community/ergodox/jacobono/readme.md
+++ /dev/null
@@ -1,34 +0,0 @@
-# Default Layer #
-
-I'm using the colemak layer -- customized a bit to work a bit better when using spacemacs as my editor.
-
-![default-layer](https://i.imgur.com/7uRqlWw.png)
-
-## Special Keys ##
-
-`SC1` => `LGUI + TAB`
-
-`SC2` => `LGUI + SPACE + TAB`
-
-`L1` => Switch to QWERTY Layout
-
-`T(L2)` => Toggle Symbol Layer
-
-`T(L3)` => Toggle Number and D-Pad Layer
-
-# QWERTY #
-
-Nothing special here -- just need this layer tucked away for the `WASD`. Which is literally the only reason I use it.
-Just have the same button to toggle back to colemak.
-
-# Symbol Layer #
-
-![symbol-layer](https://i.imgur.com/ppT0rIU.png)
-
-This is just putting matching closing symbols next to each other -- useful when editing lisp.
-
-# Number and D-Pad Layer #
-
-Just a basic number layer with a D-PAD on the other side.
-
-![number-dpad-layer](https://i.imgur.com/Q0VHfyq.png)
diff --git a/layouts/community/ergodox/jafo/jafo-Notes b/layouts/community/ergodox/jafo/jafo-Notes
deleted file mode 100644
index 33a67d40d1..0000000000
--- a/layouts/community/ergodox/jafo/jafo-Notes
+++ /dev/null
@@ -1,10 +0,0 @@
-These are notes on how to build and deploy the firmware to Ez, but they are
-from before the qmk restructuring.
-
-cd qmk_firmware/keyboard/ergodox_ez
-make LAYOUT_ergodox=jafo
-cp ergodox_ez.hex keymaps/jafo/
-/tmp/teensy.64bit
-Open hex keymap file
-Program
-Upload
diff --git a/layouts/community/ergodox/jafo/keymap.c b/layouts/community/ergodox/jafo/keymap.c
deleted file mode 100644
index 28c95d6540..0000000000
--- a/layouts/community/ergodox/jafo/keymap.c
+++ /dev/null
@@ -1,161 +0,0 @@
-#include QMK_KEYBOARD_H
-#include "debug.h"
-#include "action_layer.h"
-#include "version.h"
-
-#define BASE 0 // default layer
-#define SYMB 1 // symbols
-#define MDIA 2 // media keys
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-/* Keymap 0: Basic layer
- *
- * ,--------------------------------------------------. ,--------------------------------------------------.
- * | Grv | 1 | 2 | 3 | 4 | 5 | LEFT | | RIGHT| 6 | 7 | 8 | 9 | 0 | - |
- * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | = | Q | W | E | R | T | L1 | | L1 | Y | U | I | O | P | \ |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | Esc/Cmd| A | S | D | F | G |------| |------| H | J | K | L |; / L2|' / Cmd |
- * |--------+------+------+------+------+------| L2 | | L2 |------+------+------+------+------+--------|
- * | LShift |Z/Ctrl| X | C | V | B | | | | N | M | , | . |//Ctrl| RShift |
- * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * |Grv/L1| '" | Del | Left | Right| | Up | Down | [ | ] | ~L1 |
- * `----------------------------------' `----------------------------------'
- * ,-------------. ,-------------.
- * |Ctrl/Esc| Alt| | Alt |Ctrl/Esc|
- * ,------|------|------| |------+--------+------.
- * | | | Home | | PgUp | | |
- * | Space|Backsp|------| |------| Tab |Enter |
- * | |ace | End | | PgDn | | |
- * `--------------------' `----------------------'
- */
-// If it accepts an argument (i.e, is a function), it doesn't need KC_.
-// Otherwise, it needs KC_*
-[BASE] = LAYOUT_ergodox( // layer 0 : default
- // left hand
- KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_LEFT,
- KC_EQL, KC_Q, KC_W, KC_E, KC_R, KC_T, TG(SYMB),
- GUI_T(KC_ESC), KC_A, KC_S, KC_D, KC_F, KC_G,
- KC_LSFT, CTL_T(KC_Z), KC_X, KC_C, KC_V, KC_B, TG(MDIA),
- LT(SYMB,KC_GRV),KC_QUOT, KC_DEL, KC_LEFT,KC_RGHT,
- CTL_T(KC_ESC), KC_LALT,
- KC_HOME,
- KC_SPC,KC_BSPC,KC_END,
- // right hand
- KC_RGHT, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS,
- TG(SYMB), KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS,
- KC_H, KC_J, KC_K, KC_L, LT(MDIA, KC_SCLN),GUI_T(KC_QUOT),
- TG(MDIA), KC_N, KC_M, KC_COMM,KC_DOT, CTL_T(KC_SLSH), KC_RSFT,
- KC_UP, KC_DOWN,KC_LBRC,KC_RBRC, TT(SYMB),
- KC_LALT, CTL_T(KC_ESC),
- KC_PGUP,
- KC_PGDN,KC_TAB, KC_ENT
- ),
-/* Keymap 1: Symbol Layer
- *
- * ,--------------------------------------------------. ,--------------------------------------------------.
- * | | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | F11 |
- * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | | ! | @ | { | } | | | | | | Up | 7 | 8 | 9 | * | F12 |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | # | $ | ( | ) | ` |------| |------| Down | 4 | 5 | 6 | + | |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | % | ^ | [ | ] | ~ | | | | & | 1 | 2 | 3 | \ | |
- * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * | | | | | | | | . | 0 | = | |
- * `----------------------------------' `----------------------------------'
- * ,-------------. ,-------------.
- * | | | | | |
- * ,------|------|------| |------+------+------.
- * | | | | | | | |
- * | | |------| |------| | |
- * | | | | | | | |
- * `--------------------' `--------------------'
- */
-// SYMBOLS
-[SYMB] = LAYOUT_ergodox(
- // left hand
- KC_TRNS,KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_TRNS,
- KC_TRNS,KC_EXLM,KC_AT, KC_LCBR,KC_RCBR,KC_PIPE,KC_TRNS,
- KC_TRNS,KC_HASH,KC_DLR, KC_LPRN,KC_RPRN,KC_GRV,
- KC_TRNS,KC_PERC,KC_CIRC,KC_LBRC,KC_RBRC,KC_TILD,KC_TRNS,
- KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
- KC_TRNS,KC_TRNS,
- KC_TRNS,
- KC_TRNS,KC_TRNS,KC_TRNS,
- // right hand
- KC_TRNS, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,
- KC_TRNS, KC_UP, KC_7, KC_8, KC_9, KC_ASTR, KC_F12,
- KC_DOWN, KC_4, KC_5, KC_6, KC_PLUS, KC_TRNS,
- KC_TRNS, KC_AMPR, KC_1, KC_2, KC_3, KC_BSLS, KC_TRNS,
- KC_TRNS,KC_DOT, KC_0, KC_EQL, KC_TRNS,
- KC_TRNS, KC_TRNS,
- KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS
-),
-/* Keymap 2: Media and mouse keys
- *
- * ,--------------------------------------------------. ,--------------------------------------------------.
- * | | | | | | | | | | | | | | | |
- * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | | | | MsUp | | | | | | | | | | | |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | |MsLeft|MsDown|MsRght| |------| |------| LEFT | DOWN | UP | RIGHT| | Play |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | | | | | | | | | | | Prev | Next | | |
- * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * | | | Lclk | Mclk | Rclk | |VolUp |VolDn | Mute | | |
- * `----------------------------------' `----------------------------------'
- * ,-------------. ,-------------.
- * | | | | | |
- * ,------|------|------| |------+------+------.
- * | | | | | | |Brwser|
- * | | |------| |------| |Back |
- * | | | | | | | |
- * `--------------------' `--------------------'
- */
-// MEDIA AND MOUSE
-[MDIA] = LAYOUT_ergodox(
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_MS_U, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_R, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_BTN1, KC_BTN3, KC_BTN2,
- KC_TRNS, KC_TRNS,
- KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS,
- // right hand
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_TRNS, KC_MPLY,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_MPRV, KC_MNXT, KC_TRNS, KC_TRNS,
- KC_VOLU, KC_VOLD, KC_MUTE, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS,
- KC_TRNS,
- KC_TRNS, KC_TRNS, KC_WBAK
-),
-};
-
-// Runs constantly in the background, in a loop.
-void matrix_scan_user(void) {
-
- uint8_t layer = get_highest_layer(layer_state);
-
- ergodox_board_led_off();
- ergodox_right_led_1_off();
- ergodox_right_led_2_off();
- ergodox_right_led_3_off();
- switch (layer) {
- // TODO: Make this relevant to the ErgoDox EZ.
- case 1:
- ergodox_right_led_1_on();
- break;
- case 2:
- ergodox_right_led_2_on();
- break;
- default:
- // none
- break;
- }
-
-};
diff --git a/layouts/community/ergodox/jafo/readme.md b/layouts/community/ergodox/jafo/readme.md
deleted file mode 100644
index 219cb06222..0000000000
--- a/layouts/community/ergodox/jafo/readme.md
+++ /dev/null
@@ -1,20 +0,0 @@
-# ErgoDox EZ "jafo" Configuration
-
-This is a layout based on the ErgoDox Ez default layout, but with some
-customizations I made for my use-case. I use Linux, vi and the i3 window
-manager, so I made these changes:
-
-- Arrow keys laid out in vi positions in media layer.
-
-- Esc (tap) and Win (held) to the left of A. i3 uses Win key for navigation
- and having that be symmetric on the left and right makes it easier.
-
-- Grave accent below equals, I was having a hard time using ~
-
-- Layer 2 switch below the L1 switch, so I can go into a mode where I get
- arrow keys under my vi motion fingers.
-
-- Making the Ctrl (held) and Esc (tap) on my thumbs symmetric. Not sure I
- need that with the Esc left of A and Ctrl on the Z and / keys when held...
-
-![Jafo](https://i.imgur.com/ISEc630.png)
diff --git a/layouts/community/ergodox/jgarr/keymap.c b/layouts/community/ergodox/jgarr/keymap.c
deleted file mode 100644
index 38eaa5fca0..0000000000
--- a/layouts/community/ergodox/jgarr/keymap.c
+++ /dev/null
@@ -1,160 +0,0 @@
-#include QMK_KEYBOARD_H
-#include "debug.h"
-#include "action_layer.h"
-
-#define BASE 0 // default layer
-#define SYMB 1 // symbols
-#define MDIA 2 // media keys
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-/* Keymap 0: Basic layer
- *
- * ,--------------------------------------------------. ,-----------------------------------------------------.
- * | Grv | 1 | 2 | 3 | 4 | 5 | Del | |Backspace| 6 | 7 | 8 | 9 | 0 | \ |
- * |--------+------+------+------+------+-------------| |---------+------+------+------+------+------+--------|
- * | Tab | ' | , | . | P | Y | L1 | | L1 | F | G | C | R | L | / |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * |Ctrl/Esc| A | O | E | U | I |------| |---------| D | H | T | N |S / L2| - |
- * |--------+------+------+------+------+------| Hyper| | Meh |------+------+------+------+------+--------|
- * | LShift |:/Ctrl| Q | J | K | X | | | | B | M | W | V |Z/Ctrl| RShift |
- * `--------+------+------+------+------+-------------' `----------------+------+------+------+------+--------'
- * | Ctrl | LGui | Alt | Left | Right| | Up | Down | [ | ] | = |
- * `----------------------------------' `----------------------------------'
- * ,--------------. ,-------------.
- * | AltShf| LGui | | Alt | ~L1 |
- * ,------|-------|------| |------+--------+------.
- * | | | Home | | PgUp | | |
- * | Space|Backsp |------| |------| Enter |Space |
- * | |ace | End | | PgDn | | |
- * `---------------------' `----------------------'
- */
-// If it accepts an argument (i.e, is a function), it doesn't need KC_.
-// Otherwise, it needs KC_*
-[BASE] = LAYOUT_ergodox( // layer 0 : default
- // left hand
- KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_DEL,
- KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, TG(1),
- CTL_T(KC_ESC), KC_A, KC_O, KC_E, KC_U, KC_I,
- KC_LSFT, CTL_T(KC_SCLN), KC_Q, KC_J, KC_K, KC_X, ALL_T(KC_NO),
- KC_LCTL, KC_LGUI, KC_LALT, KC_LEFT, KC_RGHT,
- LALT(KC_LSFT), KC_LGUI,
- KC_HOME,
- KC_SPC,KC_BSPC,KC_END,
- // right hand
- KC_BSPC, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSLS,
- TG(1), KC_F, KC_G, KC_C, KC_R, KC_L, KC_SLSH,
- KC_D, KC_H, KC_T, KC_N, LT(MDIA, KC_S), KC_MINS,
- MEH_T(KC_NO),KC_B, KC_M, KC_W, KC_V, CTL_T(KC_Z), KC_RSFT,
- KC_UP, KC_DOWN,KC_LBRC,KC_RBRC, KC_EQL,
- KC_LALT, TT(SYMB),
- KC_PGUP,
- KC_PGDN,KC_ENT, KC_SPC
- ),
-/* Keymap 1: Symbol Layer
- *
- * ,--------------------------------------------------. ,--------------------------------------------------.
- * | | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | F11 |
- * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | | ! | @ | { | } | | | | | | Up | 7 | 8 | 9 | * | F12 |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | # | $ | ( | ) | ` |------| |------| Down | 4 | 5 | 6 | + | |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | % | ^ | [ | ] | ~ | | | | & | 1 | 2 | 3 | \ | |
- * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * | | | | | | | | . | 0 | = | |
- * `----------------------------------' `----------------------------------'
- * ,-------------. ,-------------.
- * | | | | | |
- * ,------|------|------| |------+------+------.
- * | | | | | | | |
- * | | |------| |------| | |
- * | | | | | | | |
- * `--------------------' `--------------------'
- */
-// SYMBOLS
-[SYMB] = LAYOUT_ergodox(
- // left hand
- KC_TRNS,KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_TRNS,
- KC_TRNS,KC_EXLM,KC_AT, KC_LCBR,KC_RCBR,KC_PIPE,KC_TRNS,
- KC_TRNS,KC_HASH,KC_DLR, KC_LPRN,KC_RPRN,KC_GRV,
- KC_TRNS,KC_PERC,KC_CIRC,KC_LBRC,KC_RBRC,KC_TILD,KC_TRNS,
- KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
- KC_TRNS,KC_TRNS,
- KC_TRNS,
- KC_TRNS,KC_TRNS,KC_TRNS,
- // right hand
- KC_TRNS, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,
- KC_TRNS, KC_UP, KC_7, KC_8, KC_9, KC_ASTR, KC_F12,
- KC_DOWN, KC_4, KC_5, KC_6, KC_PLUS, KC_TRNS,
- KC_TRNS, KC_AMPR, KC_1, KC_2, KC_3, KC_BSLS, KC_TRNS,
- KC_TRNS,KC_DOT, KC_0, KC_EQL, KC_TRNS,
- KC_TRNS, KC_TRNS,
- KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS
-),
-/* Keymap 2: Media and mouse keys
- *
- * ,--------------------------------------------------. ,--------------------------------------------------.
- * | | | | | | | | | | | | | | | |
- * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | | | | MsUp | | | | | | | | | | | |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | |MsLeft|MsDown|MsRght| |------| |------| | | | | | Play |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | | | | | | | | | | | Prev | Next | | |
- * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * | | | | Lclk | Rclk | |VolUp |VolDn | Mute | | |
- * `----------------------------------' `----------------------------------'
- * ,-------------. ,-------------.
- * | | | | | |
- * ,------|------|------| |------+------+------.
- * | | | | | | |Brwser|
- * | | |------| |------| |Back |
- * | | | | | | | |
- * `--------------------' `--------------------'
- */
-// MEDIA AND MOUSE
-LAYOUT_ergodox(
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_MS_U, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_R, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_BTN1, KC_BTN2,
- KC_TRNS, KC_TRNS,
- KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS,
- // right hand
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_MPRV, KC_MNXT, KC_TRNS, KC_TRNS,
- KC_VOLU, KC_VOLD, KC_MUTE, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS,
- KC_TRNS,
- KC_TRNS, KC_TRNS, KC_WBAK
-),
-};
-
-// Runs constantly in the background, in a loop.
-void matrix_scan_user(void) {
-
- uint8_t layer = get_highest_layer(layer_state);
-
- ergodox_board_led_off();
- ergodox_right_led_1_off();
- ergodox_right_led_2_off();
- ergodox_right_led_3_off();
- switch (layer) {
- // TODO: Make this relevant to the ErgoDox EZ.
- case 1:
- ergodox_right_led_1_on();
- break;
- case 2:
- ergodox_right_led_2_on();
- break;
- default:
- // none
- break;
- }
-
-};
diff --git a/layouts/community/ergodox/jjerrell/config.h b/layouts/community/ergodox/jjerrell/config.h
deleted file mode 100644
index 6aeaef35ce..0000000000
--- a/layouts/community/ergodox/jjerrell/config.h
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Jerrell, Jacob <@jjerrell>
-//
-// This file is part of qmk_firmware.
-//
-// qmk_firmware 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 3 of the License, or
-// (at your option) any later version.
-//
-// qmk_firmware 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 qmk_firmware. If not, see <http://www.gnu.org/licenses/>.
-
-#ifdef KEYBOARD_ergodox_ez
-#undef PRODUCT
-#define PRODUCT "ErgoDox EZ - Modified by <@jjerrell>"
-#endif
diff --git a/layouts/community/ergodox/jjerrell/keymap.c b/layouts/community/ergodox/jjerrell/keymap.c
deleted file mode 100644
index 48572d2de3..0000000000
--- a/layouts/community/ergodox/jjerrell/keymap.c
+++ /dev/null
@@ -1,129 +0,0 @@
-/**
- * Copyright (C) 2021 Jerrell, Jacob <@jjerrell>
- *
- * This file is part of qmk_firmware.
- *
- * qmk_firmware 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 3 of the License, or
- * (at your option) any later version.
- *
- * qmk_firmware 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 qmk_firmware. If not, see <http://www.gnu.org/licenses/>.
- */
-
-#include "jjerrell.h"
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- // clang-format off
- [_WORKMAN] = LAYOUT_ergodox_mods(
- __________________WORKMN_L1__________________, __________________WORKMN_R1__________________,
- __________________WORKMN_L2__________________, __________________WORKMN_R2__________________,
- __________________WORKMN_L3__________________, __________________WORKMN_R3__________________,
- XXXXXXX, XXXXXXX, XXXXXXX, KC_LSFT, KC_RSFT, XXXXXXX, XXXXXXX, XXXXXXX
- ),
- /* Lower - Nav/Select/Nums */
- [_LOWER] = LAYOUT_ergodox_mods(
- __________________LOWER_L1___________________, __________________LOWER_R1___________________,
- __________________LOWER_L2___________________, __________________LOWER_R2___________________,
- __________________LOWER_L3___________________, __________________LOWER_R3___________________,
- XXXXXXX, XXXXXXX, XXXXXXX, KC_LSFT, KC_0, KC_DOT, KC_COMM, KC_PLUS
- ),
- /* Raise - Symbols */
- [_RAISE] = LAYOUT_ergodox_common(
- __________________RAISE_L1___________________, __________________RAISE_R1___________________,
- __________________RAISE_L2___________________, __________________RAISE_R2___________________,
- __________________RAISE_L3___________________, __________________RAISE_R3___________________,
- XXXXXXX, XXXXXXX, XXXXXXX, KC_LSFT, KC_RSFT, XXXXXXX, XXXXXXX, XXXXXXX
- ),
- /* Adjust (Lower + Raise) */
- [_ADJUST] = LAYOUT_ergodox_common(
- __________________ADJUST_L1__________________, __________________ADJUST_R1__________________,
- __________________ADJUST_L2__________________, __________________ADJUST_R2__________________,
- __________________ADJUST_L3__________________, __________________ADJUST_R3__________________,
- XXXXXXX, XXXXXXX, XXXXXXX, KC_LSFT, KC_RSFT, XXXXXXX, XXXXXXX, XXXXXXX
- ),
- [_SPECIAL] = LAYOUT_ergodox_common(
- XXXXXXX, XXXXXXX, KC_WH_D, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
- XXXXXXX, KC_WH_L, KC_WH_U, KC_WH_R, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
- XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
- XXXXXXX, XXXXXXX, XXXXXXX, KC_LALT, KC_RALT, XXXXXXX, XXXXXXX, XXXXXXX
- )
-// clang-format on
-};
-
-#ifdef KEYBOARD_ergodox_ez
-// Runs whenever there is a layer state change.
-layer_state_t layer_state_set_keymap(layer_state_t state) {
- ergodox_board_led_off();
- ergodox_right_led_1_off();
- ergodox_right_led_2_off();
- ergodox_right_led_3_off();
-
- uint8_t layer = get_highest_layer(state);
- switch (layer) {
- case _LOWER:
- ergodox_right_led_3_on();
- break;
- case _RAISE:
- ergodox_right_led_1_on();
- break;
- case _ADJUST:
- ergodox_right_led_1_on();
- ergodox_right_led_2_on();
- ergodox_right_led_3_on();
- break;
- case _SPECIAL:
- ergodox_right_led_2_on();
- break;
- default:
- break;
- }
-
- ergodox_right_led_1_set(25);
- ergodox_right_led_2_set(25);
- ergodox_right_led_3_set(25);
-
- return state;
-};
-
-void matrix_scan_keymap(void) {
- uint8_t modifiers = get_mods();
- led_t led_state = host_keyboard_led_state();
- uint8_t one_shot = get_oneshot_mods();
- uint8_t layer_is_workman = layer_state_is(_WORKMAN);
-
- if ((modifiers) && (layer_is_workman)) {
- if (modifiers & MOD_MASK_SHIFT || led_state.caps_lock || one_shot & MOD_MASK_SHIFT) {
- ergodox_right_led_1_on();
- ergodox_right_led_1_set( 25 );
- } else {
- ergodox_right_led_1_off();
- }
- if ((modifiers & MOD_MASK_CTRL || one_shot & MOD_MASK_CTRL) && (modifiers & MOD_MASK_GUI || one_shot & MOD_MASK_GUI)) {
- ergodox_right_led_2_on();
- ergodox_right_led_2_set( 50 );
- } else if ((modifiers & MOD_MASK_CTRL || one_shot & MOD_MASK_CTRL) || (modifiers & MOD_MASK_GUI || one_shot & MOD_MASK_GUI)) {
- ergodox_right_led_2_on();
- ergodox_right_led_2_set( 10 );
- } else {
- ergodox_right_led_2_off();
- }
- if (modifiers & MOD_MASK_ALT || one_shot & MOD_MASK_ALT) {
- ergodox_right_led_3_on();
- ergodox_right_led_3_set( 10 );
- } else {
- ergodox_right_led_3_off();
- }
- } else if (layer_is_workman) {
- ergodox_right_led_1_off();
- ergodox_right_led_2_off();
- ergodox_right_led_3_off();
- }
-};
-#endif
diff --git a/layouts/community/ergodox/jjerrell/readme.md b/layouts/community/ergodox/jjerrell/readme.md
deleted file mode 100644
index 6b89134c2f..0000000000
--- a/layouts/community/ergodox/jjerrell/readme.md
+++ /dev/null
@@ -1,5 +0,0 @@
-# Jacob Jerrell's Ergodox Layout
-
-This is my original QMK keyboard. There isn't much to see here aside from some control over the 3 ergodox_right LEDs for layer & modifier indication.
-
-The bulk of the functionality is implemented in [my userspace](../../../../users/jjerrell) so it can be shared among my other keyboards.
diff --git a/layouts/community/ergodox/jjerrell/rules.mk b/layouts/community/ergodox/jjerrell/rules.mk
deleted file mode 100644
index 6f3150d7d4..0000000000
--- a/layouts/community/ergodox/jjerrell/rules.mk
+++ /dev/null
@@ -1,14 +0,0 @@
-BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite
-TAP_DANCE_ENABLE = no
-COMMAND_ENABLE = no
-CONSOLE_ENABLE = yes
-SPACE_CADET_ENABLE = no
-KEY_LOCK_ENABLE = no
-MOUSEKEY_ENABLE = yes
-EXTRAKEY_ENABLE = yes
-LEADER_ENABLE = yes
-
-UNICODE_ENABLE = no
-UNICODEMAP_ENABLE = no
-RGB_MATRIX_ENABLE = no
-RGBLIGHT_ENABLE = no
diff --git a/layouts/community/ergodox/kastyle/keymap.c b/layouts/community/ergodox/kastyle/keymap.c
deleted file mode 100644
index 20f08cb44c..0000000000
--- a/layouts/community/ergodox/kastyle/keymap.c
+++ /dev/null
@@ -1,165 +0,0 @@
-/* Setup to approximate a Kinesis Advantage with an eye to use in a
- * Mac/OSX environment
- * This version adds a hand swap feature to flip the keyboard */
-#include QMK_KEYBOARD_H
-#include "debug.h"
-#include "action_layer.h"
-
-#define BASE 0 // default layer
-#define SYMB 1 // symbols
-#define MDIA 2 // media keys
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-/* Keymap 0: Basic layer
- *
- * ,--------------------------------------------------. ,--------------------------------------------------.
- * | = | 1 | 2 | 3 | 4 | 5 | LGUI | | App | 6 | 7 | 8 | 9 | 0 | - |
- * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | Tab | Q | W | E | R | T | L1 | | L1 | Y | U | I | O | P | \ |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | LCtrl | A | S | D | F | G |------| |------| H | J | K | L |; / L2| ' |
- * |--------+------+------+------+------+------| Hyper| | Meh |------+------+------+------+------+--------|
- * | LShift |Z/Ctrl| X | C | V | B | | | | N | M | , | . |//Ctrl| RShift |
- * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * |Grv/L1| \ |AltShf| Left | Right| | Up | Down | [ | ] |Grv/L1|
- * `----------------------------------' `----------------------------------'
- * ,---------------. ,---------------.
- * | LGUI |Al/Esc| |Al/Esc| RGUI |
- * ,------|--------|------| |------+--------+------.
- * | | | Home | | PgUp | | |
- * |Backsp| Del |------| |------| Enter | Space|
- * | | | End | | PgDn | | |
- * `----------------------' `----------------------'
- */
-// If it accepts an argument (i.e, is a function), it doesn't need KC_.
-// Otherwise, it needs KC_*
-[BASE] = LAYOUT_ergodox( // layer 0 : default
- // left hand
- KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, KC_LGUI,
- KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, TG(1),
- KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G,
- KC_LSFT, CTL_T(KC_Z), KC_X, KC_C, KC_V, KC_B, ALL_T(KC_NO),
- SH_T(KC_GRV), KC_BSLS, LALT(KC_LSFT), KC_LEFT, KC_RGHT,
- KC_LGUI, ALT_T(KC_ESC),
- KC_HOME,
- KC_BSPC, KC_DEL, KC_END,
- // right hand
- KC_APP, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS,
- TG(1), KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS,
- KC_H, KC_J, KC_K, KC_L, LT(MDIA, KC_SCLN), KC_QUOT,
- MEH_T(KC_NO), KC_N, KC_M, KC_COMM, KC_DOT, CTL_T(KC_SLSH), KC_RSFT,
- KC_UP, KC_DOWN, KC_LBRC, KC_RBRC, SH_T(KC_GRV),
- ALT_T(KC_ESC), KC_RGUI,
- KC_PGUP,
- KC_PGDN, KC_ENT, KC_SPC
-),
-
-/* Keymap 1: Symbol Layer
- *
- * ,--------------------------------------------------. ,--------------------------------------------------.
- * | PrScr | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | F11 |
- * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | ScrLk | ! | @ | { | } | | | | | | Up | 7 | 8 | 9 | * | F12 |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | Pause | # | $ | ( | ) | ` |------| |------| Down | 4 | 5 | 6 | + | |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | % | ^ | [ | ] | ~ | | | | & | 1 | 2 | 3 | \ | |
- * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * | | | | | | | | . | 0 | = | |
- * `----------------------------------' `----------------------------------'
- * ,-------------. ,-------------.
- * | | | | | |
- * ,------|------|------| |------+------+------.
- * | | | | | | | |
- * | | |------| |------| | |
- * | | | | | | | |
- * `--------------------' `--------------------'
- */
-// SYMBOLS
-[SYMB] = LAYOUT_ergodox(
- // left hand
- KC_PSCR, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_TRNS,
- KC_SCRL, KC_EXLM, KC_AT, KC_LCBR, KC_RCBR, KC_PIPE, KC_TRNS,
- KC_PAUS, KC_HASH, KC_DLR, KC_LPRN, KC_RPRN, KC_GRV,
- KC_TRNS, KC_PERC, KC_CIRC, KC_LBRC, KC_RBRC, KC_TILD, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS,
- KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS,
- // right hand
- KC_TRNS, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,
- KC_TRNS, KC_UP, KC_7, KC_8, KC_9, KC_ASTR, KC_F12,
- KC_DOWN, KC_4, KC_5, KC_6, KC_PLUS, KC_TRNS,
- KC_TRNS, KC_AMPR, KC_1, KC_2, KC_3, KC_BSLS, KC_TRNS,
- KC_TRNS,KC_DOT, KC_0, KC_EQL, KC_TRNS,
- KC_TRNS, KC_TRNS,
- KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS
-),
-
-/* Keymap 2: Media and mouse keys
- *
- * ,--------------------------------------------------. ,--------------------------------------------------.
- * | | | | | | | | | | | | | | | |
- * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | | | | MsUp | | | | | | | | | | | |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | |MsLeft|MsDown|MsRght| |------| |------| | | | | | Play |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | | | | | | | | | | | Prev | Next | | |
- * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * | | | | Lclk | Rclk | |VolUp |VolDn | Mute | | |
- * `----------------------------------' `----------------------------------'
- * ,-------------. ,-------------.
- * | | | | | |
- * ,------|------|------| |------+------+------.
- * | | | | | | |Brwser|
- * | | |------| |------| |Back |
- * | | | | | | | |
- * `--------------------' `--------------------'
- */
-// MEDIA AND MOUSE
-LAYOUT_ergodox(
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_MS_U, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_R, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_BTN1, KC_BTN2,
- KC_TRNS, KC_TRNS,
- KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS,
- // right hand
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_MPRV, KC_MNXT, KC_TRNS, KC_TRNS,
- KC_VOLU, KC_VOLD, KC_MUTE, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS,
- KC_TRNS,
- KC_TRNS, KC_TRNS, KC_WBAK
-),
-};
-
-// Runs constantly in the background, in a loop.
-void matrix_scan_user(void) {
-
- uint8_t layer = get_highest_layer(layer_state);
-
- ergodox_board_led_off();
- ergodox_right_led_1_off();
- ergodox_right_led_2_off();
- ergodox_right_led_3_off();
- switch (layer) {
- // TODO: Make this relevant to the ErgoDox EZ.
- case 1:
- ergodox_right_led_1_on();
- break;
- case 2:
- ergodox_right_led_2_on();
- break;
- default:
- // none
- break;
- }
-
-};
diff --git a/layouts/community/ergodox/kastyle/readme.md b/layouts/community/ergodox/kastyle/readme.md
deleted file mode 100644
index 944286a818..0000000000
--- a/layouts/community/ergodox/kastyle/readme.md
+++ /dev/null
@@ -1,14 +0,0 @@
-The kastyle keymap was originally intended to remap the ErgoDox EZ to more
-closely approximate the layout of a Kinesis Advantage. Notable changes
-over the stock ErgoDox layout include:
-
- * Re-arragnement of tab, enter, space, and delete to match the Kinesis
- * Addition of print screen, pause, etc. keys following the kines-ish keymap
- on L1
- * GUI keys have replaced Ctrl on the thumb keys (for Mac use), and Alt keys
- are mapped to allow Esc on tap (good for Vi users)
- * Most notably, the addition of a momentary one-handed mode for quick and
- easy access to keys on the other half of the keyboard, e.g. while using a
- mouse in one hand, one may add text to a dialogue box with the other without
- having to reach across the keyboard or remove one's hand from the mouse.
-
diff --git a/layouts/community/ergodox/kejadlen/config.h b/layouts/community/ergodox/kejadlen/config.h
deleted file mode 100644
index 4f14eff96b..0000000000
--- a/layouts/community/ergodox/kejadlen/config.h
+++ /dev/null
@@ -1,5 +0,0 @@
-#pragma once
-
-#define FORCE_NKRO
-
-#undef TAPPING_TERM
diff --git a/layouts/community/ergodox/kejadlen/keymap.c b/layouts/community/ergodox/kejadlen/keymap.c
deleted file mode 100644
index 86d42aa740..0000000000
--- a/layouts/community/ergodox/kejadlen/keymap.c
+++ /dev/null
@@ -1,93 +0,0 @@
-#include QMK_KEYBOARD_H
-#include "debug.h"
-#include "action_layer.h"
-
-#define BASE 0 // default layer
-#define SYMB 1 // symbols
-#define ETC 2 // etc
-
-enum macro_id {
- TEENSY,
-};
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
-[BASE] = LAYOUT_ergodox(
- KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
- KC_TAB, KC_Q, KC_W, KC_D, KC_F, KC_K, KC_PGUP,
- CTL_T(KC_ESC), LT(ETC,KC_A), KC_S, KC_E, KC_T, KC_G,
- KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_PGDN,
- KC_GRV, KC_DEL, KC_DEL, KC_LALT, GUI_T(KC_TAB),
- KC_NO, KC_NO,
- KC_NO,
- LT(SYMB,KC_BSPC), CTL_T(KC_ESC), KC_NO,
-
- KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
- KC_VOLU, KC_J, KC_U, KC_R, KC_L, KC_SCLN, KC_BSLS,
- KC_Y, KC_N, KC_I, KC_O, KC_H, KC_QUOT,
- KC_VOLD, KC_P, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,
- GUI_T(KC_TAB), ALT_T(KC_LEFT), KC_DOWN, KC_UP, LCAG_T(KC_RGHT),
- KC_WAKE, KC_PWR,
- KC_NO,
- KC_NO, SFT_T(KC_ENT), LT(SYMB,KC_SPC)
-),
-
-[SYMB] = LAYOUT_ergodox(
- KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
- KC_TRNS, KC_EXLM, KC_AT, KC_LCBR, KC_RCBR, KC_PIPE, KC_TRNS,
- KC_TRNS, KC_HASH, KC_DLR, KC_LPRN, KC_RPRN, KC_BSLS,
- KC_TRNS, KC_PERC, KC_CIRC, KC_LBRC, KC_RBRC, KC_ASTR, KC_TRNS,
- KC_TILD, KC_AMPR, KC_AMPR, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS,
- KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS,
-
- KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
- KC_TRNS, KC_EQL, KC_7, KC_8, KC_9, KC_PLUS, KC_NO,
- KC_MINS, KC_4, KC_5, KC_6, KC_QUOT, KC_NO,
- KC_TRNS, KC_UNDS, KC_1, KC_2, KC_3, KC_DQUO, KC_TRNS,
- KC_0, KC_NO, KC_DOT, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS,
- KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS
-),
-
-[ETC] = LAYOUT_ergodox(
- QK_BOOT, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
- KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_PGUP, KC_TRNS,
- KC_TRNS, LT(ETC,KC_A), KC_NO, KC_NO, KC_NO, KC_PGDN,
- KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_DEL, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_NO, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS,
- KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS,
-
- KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
- KC_TRNS, KC_VOLU, KC_F7, KC_F8, KC_F9, KC_HOME, KC_NO,
- KC_VOLD, KC_F4, KC_F5, KC_F6, KC_END, KC_NO,
- KC_TRNS, KC_MUTE, KC_F1, KC_F2, KC_F3, KC_INS, KC_TRNS,
- KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
- KC_TRNS, KC_TRNS,
- KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS
-),
-};
-
-void matrix_scan_user(void) {
- uint8_t layer = get_highest_layer(layer_state);
-
- ergodox_board_led_off();
- ergodox_right_led_1_off();
- ergodox_right_led_2_off();
- ergodox_right_led_3_off();
- switch (layer) {
- case 1:
- ergodox_right_led_1_on();
- break;
- case 2:
- ergodox_right_led_2_on();
- break;
- default:
- break;
- }
-};
diff --git a/layouts/community/ergodox/kejadlen/rules.mk b/layouts/community/ergodox/kejadlen/rules.mk
deleted file mode 100644
index ceee166876..0000000000
--- a/layouts/community/ergodox/kejadlen/rules.mk
+++ /dev/null
@@ -1,13 +0,0 @@
-BOOTMAGIC_ENABLE = no # Enable Bootmagic Lite
-MOUSEKEY_ENABLE = no # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
-COMMAND_ENABLE = no # Commands for debug and configuration
-NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ # nkro-doesnt-work
-BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
-MIDI_ENABLE = no # MIDI controls
-AUDIO_ENABLE = no # Audio output on port C6
-UNICODE_ENABLE = no # Unicode
-BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
-RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight.
-SLEEP_LED_ENABLE = yes # Breathing sleep LED during USB suspend
diff --git a/layouts/community/ergodox/kines-ish/keymap.c b/layouts/community/ergodox/kines-ish/keymap.c
deleted file mode 100644
index 132b65845e..0000000000
--- a/layouts/community/ergodox/kines-ish/keymap.c
+++ /dev/null
@@ -1,160 +0,0 @@
-#include QMK_KEYBOARD_H
-#include "debug.h"
-#include "action_layer.h"
-
-#define BASE 0 // default layer
-#define SYMB 1 // symbols
-#define MDIA 2 // media keys
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-/* Keymap 0: Basic layer
- *
- * ,--------------------------------------------------. ,--------------------------------------------------.
- * | = | 1 | 2 | 3 | 4 | 5 | LEFT | | RIGHT| 6 | 7 | 8 | 9 | 0 | - |
- * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | Tab | Q | W | E | R | T | L1 | | L1 | Y | U | I | O | P | \ |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | Caps | A | S | D | F | G |------| |------| H | J | K | L | ; | ' |
- * |--------+------+------+------+------+------| Hyper| | Meh |------+------+------+------+------+--------|
- * | LShift | Z | X | C | V | B | | | | N | M | , | . | / | RShift |
- * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * | Esc | Grv |Insert| Left | Right| | Up | Down | [ | ] | L2 |
- * `----------------------------------' `----------------------------------'
- * ,-------------. ,-------------.
- * | Ctrl | Alt | | LGui | Ctrl |
- * ,------|------|------| |------+------+------.
- * | | | Home | | PgUp | | |
- * |Backsp| Del |------| |------| Enter| Space|
- * |ace | | End | | PgDn | | |
- * `--------------------' `--------------------'
- */
-// If it accepts an argument (i.e, is a function), it doesn't need KC_.
-// Otherwise, it needs KC_*
-[BASE] = LAYOUT_ergodox( // layer 0 : default
- // left hand
- KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, KC_LEFT,
- KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, TG(SYMB),
- KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G,
- KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, ALL_T(KC_NO),
- KC_ESC, KC_GRV, KC_INS, KC_LEFT, KC_RGHT,
- KC_LCTL,KC_LALT,
- KC_HOME,
- KC_BSPC,KC_DEL,KC_END,
- // right hand
- KC_RGHT, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS,
- TG(SYMB), KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS,
- KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
- MEH_T(KC_NO),KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH, KC_RSFT,
- KC_UP, KC_DOWN,KC_LBRC,KC_RBRC, KC_NO,
- KC_LGUI, KC_RCTL,
- KC_PGUP,
- KC_PGDN, KC_ENT, KC_SPC
- ),
-/* Keymap 1: Symbol Layer
- *
- * ,--------------------------------------------------. ,--------------------------------------------------.
- * | PrScr | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | F11 |
- * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | ScrLk | ! | @ | { | } | | | | | | Up | 7 | 8 | 9 | * | F12 |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | Pause | # | $ | ( | ) | ` |------| |------| Down | 4 | 5 | 6 | + | |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | % | ^ | [ | ] | ~ | | | | & | 1 | 2 | 3 | \ | |
- * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * | | | | | | | | . | 0 | = | |
- * `----------------------------------' `----------------------------------'
- * ,-------------. ,-------------.
- * | | | | | |
- * ,------|------|------| |------+------+------.
- * | | | | | | | |
- * | | |------| |------| | |
- * | | | | | | | |
- * `--------------------' `--------------------'
- */
-// SYMBOLS
-[SYMB] = LAYOUT_ergodox(
- // left hand
- KC_PSCR,KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_TRNS,
- KC_SCRL,KC_EXLM,KC_AT, KC_LCBR,KC_RCBR,KC_PIPE,KC_TRNS,
- KC_PAUS,KC_HASH,KC_DLR, KC_LPRN,KC_RPRN,KC_GRV,
- KC_TRNS,KC_PERC,KC_CIRC,KC_LBRC,KC_RBRC,KC_TILD,KC_TRNS,
- KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
- KC_TRNS,KC_TRNS,
- KC_TRNS,
- KC_TRNS,KC_TRNS,KC_TRNS,
- // right hand
- KC_TRNS, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,
- KC_TRNS, KC_UP, KC_7, KC_8, KC_9, KC_ASTR, KC_F12,
- KC_DOWN, KC_4, KC_5, KC_6, KC_PLUS, KC_TRNS,
- KC_TRNS, KC_AMPR, KC_1, KC_2, KC_3, KC_BSLS, KC_TRNS,
- KC_TRNS,KC_DOT, KC_0, KC_EQL, KC_TRNS,
- KC_TRNS, KC_TRNS,
- KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS
-),
-/* Keymap 2: Media and mouse keys
- *
- * ,--------------------------------------------------. ,--------------------------------------------------.
- * | | | | | | | | | | | | | | | |
- * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | | | | MsUp | | | | | | | | | | | |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | |MsLeft|MsDown|MsRght| |------| |------| | | | | | Play |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | | | | | | | | | | | Prev | Next | | |
- * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * | | | | Lclk | Rclk | |VolUp |VolDn | Mute | | |
- * `----------------------------------' `----------------------------------'
- * ,-------------. ,-------------.
- * | | | | | |
- * ,------|------|------| |------+------+------.
- * | | | | | | |Brwser|
- * | | |------| |------| |Back |
- * | | | | | | | |
- * `--------------------' `--------------------'
- */
-// MEDIA AND MOUSE
-[MDIA] = LAYOUT_ergodox(
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_MS_U, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_R, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_BTN1, KC_BTN2,
- KC_TRNS, KC_TRNS,
- KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS,
- // right hand
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_MPRV, KC_MNXT, KC_TRNS, KC_TRNS,
- KC_VOLU, KC_VOLD, KC_MUTE, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS,
- KC_TRNS,
- KC_TRNS, KC_TRNS, KC_WBAK
-),
-};
-
-// Runs constantly in the background, in a loop.
-void matrix_scan_user(void) {
-
- uint8_t layer = get_highest_layer(layer_state);
-
- ergodox_board_led_off();
- ergodox_right_led_1_off();
- ergodox_right_led_2_off();
- ergodox_right_led_3_off();
- switch (layer) {
- // TODO: Make this relevant to the ErgoDox EZ.
- case 1:
- ergodox_right_led_1_on();
- break;
- case 2:
- ergodox_right_led_2_on();
- break;
- default:
- // none
- break;
- }
-
-};
diff --git a/layouts/community/ergodox/kines-ish/readme.md b/layouts/community/ergodox/kines-ish/readme.md
deleted file mode 100644
index 5d39a0590d..0000000000
--- a/layouts/community/ergodox/kines-ish/readme.md
+++ /dev/null
@@ -1,19 +0,0 @@
-This keymap attempts to match the Kinesis Contoured (aka Advantage) default
-layout as closely as possible. See
-http://www.kinesis-ergo.com/wp-content/uploads/2013/06/advantage_layout_win.pdf
-
-Apart from the obvious mappings, this keymap also:
-
-* removes the dual-purpose momentary layer/normal keys: Z, /, and Grv;
- because the author--coming from a Kinesis keyboard--finds the delays and
- accidental modifiers to be more disconcerting than helpful.
-
-* puts Esc in the bottom left since there's no place for it in the top
- left to match the Kinesis.
-
-* changes the bottom-right key into an L2 toggle since there's otherwise no
- way to get to L2.
-
-* adds PrScr, ScrLk and Pause to the L1 keymap, down the left side, since
- they're present on the Kinesis but not available in the default
- ergodox_ez keymap.
diff --git a/layouts/community/ergodox/manna-harbour_miryoku/config.h b/layouts/community/ergodox/manna-harbour_miryoku/config.h
deleted file mode 100644
index 566701bfc4..0000000000
--- a/layouts/community/ergodox/manna-harbour_miryoku/config.h
+++ /dev/null
@@ -1,78 +0,0 @@
-// Copyright 2019 Manna Harbour
-// https://github.com/manna-harbour/miryoku
-
-// 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 XXX KC_NO
-
-#if defined (MIRYOKU_MAPPING_SHIFTED_ROWS)
-#define LAYOUT_miryoku( \
- 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, \
- N30, N31, K32, K33, K34, K35, K36, K37, N38, N39 \
-) \
-LAYOUT_ergodox_pretty( \
-XXX, K00, K01, K02, K03, K04, XXX, XXX, K05, K06, K07, K08, K09, XXX, \
-XXX, K10, K11, K12, K13, K14, XXX, XXX, K15, K16, K17, K18, K19, XXX, \
-XXX, K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, XXX, \
-XXX, XXX, XXX, K32, K33, K34, XXX, XXX, K35, K36, K37, XXX, XXX, XXX, \
-XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, \
- XXX, XXX, XXX, XXX, \
- XXX, XXX, \
- XXX, XXX, XXX, XXX, XXX, XXX \
-)
-#elif defined (MIRYOKU_MAPPING_SHIFTED_ROWS_EXTENDED_THUMBS)
-#define LAYOUT_miryoku( \
- 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, \
- N30, N31, K32, K33, K34, K35, K36, K37, N38, N39 \
-) \
-LAYOUT_ergodox_pretty( \
-XXX, K00, K01, K02, K03, K04, XXX, XXX, K05, K06, K07, K08, K09, XXX, \
-XXX, K10, K11, K12, K13, K14, XXX, XXX, K15, K16, K17, K18, K19, XXX, \
-XXX, K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, XXX, \
-XXX, XXX, XXX, XXX, K32, K33, K34, K35, K36, K37, XXX, XXX, XXX, XXX, \
-XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, \
- XXX, XXX, XXX, XXX, \
- XXX, XXX, \
- XXX, XXX, XXX, XXX, XXX, XXX \
-)
-#elif defined (MIRYOKU_MAPPING_SHIFTED_ROWS_EXTENDED_THUMBS_PINKIE_STAGGER) || defined (MIRYOKU_MAPPING_PEAK_ERGODOX)
-#define LAYOUT_miryoku( \
- 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, \
- N30, N31, K32, K33, K34, K35, K36, K37, N38, N39 \
-) \
-LAYOUT_ergodox_pretty( \
-XXX, XXX, K01, K02, K03, K04, XXX, XXX, K05, K06, K07, K08, XXX, XXX, \
-XXX, K00, K11, K12, K13, K14, XXX, XXX, K15, K16, K17, K18, K09, XXX, \
-XXX, K10, K21, K22, K23, K24, K25, K26, K27, K28, K19, XXX, \
-XXX, K20, XXX, XXX, K32, K33, K34, K35, K36, K37, XXX, XXX, K29, XXX, \
-XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, \
- XXX, XXX, XXX, XXX, \
- XXX, XXX, \
- XXX, XXX, XXX, XXX, XXX, XXX \
-)
-#else
-#define LAYOUT_miryoku(\
- 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,\
- N30, N31, K32, K33, K34, K35, K36, K37, N38, N39\
-)\
-LAYOUT_ergodox_pretty(\
-XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX,\
-XXX, K00, K01, K02, K03, K04, XXX, XXX, K05, K06, K07, K08, K09, XXX,\
-XXX, K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, XXX,\
-XXX, K20, K21, K22, K23, K24, XXX, XXX, K25, K26, K27, K28, K29, XXX,\
-XXX, XXX, XXX, XXX, K32, K37, XXX, XXX, XXX, XXX,\
- XXX, XXX, XXX, XXX,\
- XXX, XXX,\
- K33, K34, XXX, XXX, K35, K36\
-)
-#endif
diff --git a/layouts/community/ergodox/manna-harbour_miryoku/keymap.c b/layouts/community/ergodox/manna-harbour_miryoku/keymap.c
deleted file mode 100644
index dbab7f9820..0000000000
--- a/layouts/community/ergodox/manna-harbour_miryoku/keymap.c
+++ /dev/null
@@ -1,4 +0,0 @@
-// Copyright 2019 Manna Harbour
-// https://github.com/manna-harbour/miryoku
-
-// 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/>.
diff --git a/layouts/community/ergodox/maz/keymap.c b/layouts/community/ergodox/maz/keymap.c
deleted file mode 100644
index fc0509e8a2..0000000000
--- a/layouts/community/ergodox/maz/keymap.c
+++ /dev/null
@@ -1,205 +0,0 @@
-#include QMK_KEYBOARD_H
-#include "debug.h"
-#include "action_layer.h"
-
-#define BASE 0 // default layer
-#define SYMB 1 // symbols
-#define ARRW 2 // arrow keys
-#define MDIA 3 // media keys, including mouse
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-/* Keymap 0: Basic layer
- *
- * ,--------------------------------------------------. ,--------------------------------------------------.
- * | = | 1 | 2 | 3 | 4 | 5 | | | | 6 | 7 | 8 | 9 | 0 | - |
- * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | Tab | Q | W | E | R | T | L1 | | CAPS | Y | U | I | O | P | \ |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | ESC | A | S | D | F | G |------| |------| H | J | K | L | ; | ' |
- * |--------+------+------+------+------+------| Hyper| | Meh |------+------+------+------+------+--------|
- * | LShift | Z | X | C | V | B | | | | N | M | , | . | / | RShift |
- * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * | | Grv | |*SYMB*|*ARRW*| |*MDIA*|*SYMB*| [ | ] | |
- * `----------------------------------' `----------------------------------'
- * ,-------------. ,-------------.
- * | | | | | |
- * ,------|------|------| |------+--------+------.
- * | | | | | | | |
- * | Space| Bksp |------| |------| Tab |Enter |
- * | ctrl | gui | Alt | | Alt | gui | ctrl |
- * `--------------------' `----------------------'
- */
- // TODO: maybe look into changing the delay or whatever for the holding macros... not sure which way you would go with this. if the macro automatically kicks in if you hold it and press another button (no matter how long you held it for), then it wouldn't hurt to have a longer period i think... although if you hold a button and then decide not to, then you;ll register a space/bksp/etc. on accident. on the other hand, if it's too short of a delay, then you might be able to register spc/bksp/etc quickly enough, although i don't see this as big of an issue
- // not sure if gui is meta key or super... it says meta on the basic keycodes page, and i think that's consitent with other shit, but you should really figure out how to program the keyboard to have meta and super separately instead of hacking your init.el to recognize alt as meta... because shit will get fucked up beteween awesome and emacs and other shit i'm guessing
-// If it accepts an argument (i.e, is a function), it doesn't need KC_.
-// Otherwise, it needs KC_*
-[BASE] = LAYOUT_ergodox( // layer 0 : default
- // left hand
- KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, KC_TRNS,
- KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, TG(SYMB),
- KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G,
- KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, ALL_T(KC_NO),
- KC_TRNS, KC_GRV, KC_TRNS,MO(SYMB),MO(ARRW),
- KC_TRNS, KC_TRNS,
- KC_TRNS,
- CTL_T(KC_SPC),GUI_T(KC_BSPC),KC_LALT,
- // right hand
- KC_TRNS, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS,
- KC_CAPS, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS,
- KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
- MEH_T(KC_NO), KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,
- MO(MDIA), MO(SYMB), KC_LBRC,KC_RBRC, KC_TRNS,
- KC_TRNS, KC_TRNS,
- KC_TRNS,
- KC_RALT,GUI_T(KC_TAB), CTL_T(KC_ENT)
- ),
-/* Keymap 1: Symbol Layer
- *
- * ,--------------------------------------------------. ,--------------------------------------------------.
- * | | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | F11 |
- * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | | ! | @ | { | } | | | | | | Up | 7 | 8 | 9 | * | F12 |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | # | $ | ( | ) | ` |------| |------| Down | 4 | 5 | 6 | + | . |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | % | ^ | [ | ] | ~ | | | | & | 1 | 2 | 3 | \ | |
- * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * | | | | | | | | | 0 | = | |
- * `----------------------------------' `----------------------------------'
- * ,-------------. ,-------------.
- * | | | | | |
- * ,------|------|------| |------+------+------.
- * | | | | | | | |
- * | | |------| |------| | |
- * | | | | | | | |
- * `--------------------' `--------------------'
- */
-// SYMBOLS
-[SYMB] = LAYOUT_ergodox(
- // left hand
- KC_TRNS,KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_TRNS,
- KC_TRNS,KC_EXLM,KC_AT, KC_LCBR,KC_RCBR,KC_PIPE,KC_TRNS,
- KC_TRNS,KC_HASH,KC_DLR, KC_LPRN,KC_RPRN,KC_GRV,
- KC_TRNS,KC_PERC,KC_CIRC,KC_LBRC,KC_RBRC,KC_TILD,KC_TRNS,
- KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
- KC_TRNS,KC_TRNS,
- KC_TRNS,
- KC_TRNS,KC_TRNS,KC_TRNS,
- // right hand
- KC_TRNS, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,
- KC_TRNS, KC_UP, KC_7, KC_8, KC_9, KC_ASTR, KC_F12,
- KC_DOWN, KC_4, KC_5, KC_6, KC_PLUS, KC_DOT,
- KC_TRNS, KC_AMPR, KC_1, KC_2, KC_3, KC_BSLS, KC_TRNS,
- KC_TRNS,KC_TRNS, KC_0, KC_EQL, KC_TRNS,
- KC_TRNS, KC_TRNS,
- KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS
-),
-/* Keymap 2: Arrow keys
- *
- * ,--------------------------------------------------. ,--------------------------------------------------.
- * | | | | | | | | | | | | | | | |
- * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | | | | | | | | | | |PGDOWN| PGUP | | | |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | | | | | |------| |------| LEFT | DOWN | UP |RIGHT | | |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | | | | | | | | | | HOME | END | | | |
- * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * | | | | | | | | | | | |
- * `----------------------------------' `----------------------------------'
- * ,-------------. ,-------------.
- * | | | | | |
- * ,------|------|------| |------+------+------.
- * | | | | | | | |
- * | | |------| |------| | |
- * | | | | | | | |
- * `--------------------' `--------------------'
- */
-// MEDIA AND MOUSE
-[ARRW] = LAYOUT_ergodox(
- // left hand
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS,
- KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS,
- // right hand
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_PGDN, KC_PGUP, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_HOME, KC_END, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS,
- KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS
-),
-/* Keymap 3: Media and mouse keys
- *
- * ,--------------------------------------------------. ,--------------------------------------------------.
- * | | | | | | | | | | | | | | | |
- * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | | | | MsUp | | | | | | | | | | | |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | |MsLeft|MsDown|MsRght| |------| |------| | Lclk | Rclk | | | |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | |Mute |VolDn | VolUp| | | | | | | | | | |
- * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * | | | Prev | Play | Next | | | | | | |
- * `----------------------------------' `----------------------------------'
- * ,-------------. ,-------------.
- * | | | | | |
- * ,------|------|------| |------+------+------.
- * |Brwser| | | | | | |
- * |Back | |------| |------| | |
- * | | | | | | | |
- * `--------------------' `--------------------'
- */
-// MEDIA AND MOUSE
-[MDIA] = LAYOUT_ergodox(
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_MS_U, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_R, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_MUTE, KC_VOLD, KC_VOLU, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_MPRV, KC_MPLY, KC_MNXT,
- KC_TRNS, KC_TRNS,
- KC_TRNS,
- KC_WBAK, KC_TRNS, KC_TRNS,
- // right hand
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_BTN1, KC_BTN2, KC_TRNS, KC_TRNS, KC_MPLY,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS,
- KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS
-),
-};
-
-// Runs constantly in the background, in a loop.
-void matrix_scan_user(void) {
-
- uint8_t layer = get_highest_layer(layer_state);
-
- ergodox_board_led_off();
- ergodox_right_led_1_off();
- ergodox_right_led_2_off();
- ergodox_right_led_3_off();
- switch (layer) {
- // TODO: Make this relevant to the ErgoDox EZ.
- case 1:
- ergodox_right_led_1_on();
- break;
- case 2:
- ergodox_right_led_2_on();
- break;
- default:
- // none
- break;
- }
-
-};
diff --git a/layouts/community/ergodox/maz/readme.md b/layouts/community/ergodox/maz/readme.md
deleted file mode 100644
index 000a8d0000..0000000000
--- a/layouts/community/ergodox/maz/readme.md
+++ /dev/null
@@ -1,121 +0,0 @@
-# Introduction
-
-## Motivation
-I created this keymap in an attempt to optimize my typing experience in text editors (vim and emacs) and the command-line.
-
-More specifically, I wanted to have each modifier key controlled by the thumbs, the most powerful of the digits (I think). This cured me of emacs pinky, which had surprisingly grown quite quickly over the first two weeks of using emacs & emacs-like commands on the command-line.
-
-## Changes
-There are some miscellaneous changes that I kind of forgot I made, such as moving the tilde key, but you can check out the visual layouts below, which I **have** kept up to date.
-### Modifier Keys
-The biggest changes from the ergodox ez default keymap are the modifiers on the thumb cluster. You must hold each key down for a certain amount of time (forgot where this is specified) in order for the modifier key to activate.
-
-### Layers
-* an arrow layer (ARRW) has been created because the default arrow keys suck. Beware, these do use vim bindings because they're the best.
-* the keys in the media layer have been moved around for a better experience (imo), especially with respect to the mouse
-* the three layers (SYMB, MDIA, and ARRW) now have their own dedicated keys accessible by the thumbs in the basic layer
-* caps lock has been put in place of the right-side `L1` toggle key because there was really no need to have two keys to toggle one layer, and caps lock is useful when writing queries
-** unfortunatley, caps lock is not indicated by an LED, so be careful. I use caps lock just like I do insert in vim; for a short burst of text. I always turn off caps lock when I change my focus
-
-### Removal Of Keys
-I also removed a bunch of unnecessary keys that I wasn't going to use anyway. You'll see such keys are blank in the basic layer. I will probably add some more keys in place of these, but I'm fine for now; I just didn't want the distraction of extra keys I barely use.
-
-## Caveats
-### Thumb Cluster Range
-I've heard many complaints about the thumb clusters. I agree that the three outter keys are almost impossible to reach. I am going to try to build [Matt Adereth's keyboard](https://github.com/adereth/dactyl-keyboard), which looks to have a better layout. However, I am able to comfortably use the three modifier keys mainly because:
-* I use DCS keycaps with SA Row 3 keycaps where the Alt keys are
-* I have relatively large hands (I guarantee you there's no problem - I guarantee you)
-
-### Dangerous positioning
-I think it's quite dangerous to put something like control on the same key as enter. Alas, this is a risk I'm willing to accept, and so should you if you decide to use this keymap. I tend to avoid putting myself in situtations in which disaster could occur with one fell swoop of a keypress.
-
-# Keymap
-## Keymap 0: Basic layer
-```
-,--------------------------------------------------. ,--------------------------------------------------.
-| = | 1 | 2 | 3 | 4 | 5 | | | | 6 | 7 | 8 | 9 | 0 | - |
-|--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
-| Tab | Q | W | E | R | T | L1 | | CAPS | Y | U | I | O | P | \ |
-|--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
-| ESC | A | S | D | F | G |------| |------| H | J | K | L | ; | ' |
-|--------+------+------+------+------+------| Hyper| | Meh |------+------+------+------+------+--------|
-| LShift | Z | X | C | V | B | | | | N | M | , | . | / | RShift |
-`--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- | | Grv | |*SYMB*|*ARRW*| |*MDIA*|*SYMB*| [ | ] | |
- `----------------------------------' `----------------------------------'
- ,-------------. ,-------------.
- | | | | | |
- ,------|------|------| |------+--------+------.
- | | | | | | | |
- | Space| Bksp |------| |------| Tab |Enter |
- | ctrl | gui | Alt | | Alt | gui | ctrl |
- `--------------------' `----------------------'
-
-```
-
-## Keymap 1: Symbol Layer
-The only change here is the *dot* (`.`) character moving from next to `0` next to `+` in order to move the layer keys in the correct position
-```
- ,--------------------------------------------------. ,--------------------------------------------------.
- | | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | F11 |
- |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- | | ! | @ | { | } | | | | | | Up | 7 | 8 | 9 | * | F12 |
- |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- | | # | $ | ( | ) | ` |------| |------| Down | 4 | 5 | 6 | + | . |
- |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- | | % | ^ | [ | ] | ~ | | | | & | 1 | 2 | 3 | \ | |
- `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- | | | | | | | | | 0 | = | |
- `----------------------------------' `----------------------------------'
- ,-------------. ,-------------.
- | | | | | |
- ,------|------|------| |------+------+------.
- | | | | | | | |
- | | |------| |------| | |
- | | | | | | | |
- `--------------------' `--------------------'
-```
-
-## Keymap 2: Arrow Layer
-```
- ,--------------------------------------------------. ,--------------------------------------------------.
- | | | | | | | | | | | | | | | |
- |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- | | | | | | | | | | |PGDOWN| PGUP | | | |
- |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- | | | | | | |------| |------| LEFT | DOWN | UP |RIGHT | | |
- |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- | | | | | | | | | | | HOME | END | | | |
- `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- | | | | | | | | | | | |
- `----------------------------------' `----------------------------------'
- ,-------------. ,-------------.
- | | | | | |
- ,------|------|------| |------+------+------.
- | | | | | | | |
- | | |------| |------| | |
- | | | | | | | |
- `--------------------' `--------------------'
-```
-
-## Keymap 3: Media and mouse keys
-```
- ,--------------------------------------------------. ,--------------------------------------------------.
- | | | | | | | | | | | | | | | |
- |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- | | | | MsUp | | | | | | | | | | | |
- |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- | | |MsLeft|MsDown|MsRght| |------| |------| | Lclk | Rclk | | | |
- |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- | | |Mute |VolDn | VolUp| | | | | | | | | | |
- `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- | | | Prev | Play | Next | | | | | | |
- `----------------------------------' `----------------------------------'
- ,-------------. ,-------------.
- | | | | | |
- ,------|------|------| |------+------+------.
- |Brwser| | | | | | |
- |Back | |------| |------| | |
- | | | | | | | |
- `--------------------' `--------------------'
-```
diff --git a/layouts/community/ergodox/mclennon_osx/README.md b/layouts/community/ergodox/mclennon_osx/README.md
deleted file mode 100644
index 53b3d48414..0000000000
--- a/layouts/community/ergodox/mclennon_osx/README.md
+++ /dev/null
@@ -1,5 +0,0 @@
-# Ergodox EZ for OS X
-
-This keymapping is designed to be reasonably familiar to an ordinary Mac keyboard while taking advantage of the Ergodox EZ's features. Caps lock instead enables a layer which allows a user to use HJKL as arrow keys and to control media. Shift and control have additional mappings on S and D to provide easier access while holding down caps lock.
-
-Firmware built using [qmk_firmware](https://github.com/qmk/qmk_firmware/).
diff --git a/layouts/community/ergodox/mclennon_osx/keymap.c b/layouts/community/ergodox/mclennon_osx/keymap.c
deleted file mode 100644
index aba1e3e7dc..0000000000
--- a/layouts/community/ergodox/mclennon_osx/keymap.c
+++ /dev/null
@@ -1,120 +0,0 @@
-// Media keys work on OSX, but not on Windows.
-#include QMK_KEYBOARD_H
-#include "debug.h"
-#include "action_layer.h"
-
-#define BASE 0 // Default layer
-#define AUXI 1 // Auxiliary layer
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-/* Keymap 0: Basic Layer
- *
- * ,--------------------------------------------------. ,--------------------------------------------------.
- * | ~` | 1 | 2 | 3 | 4 | 5 | 6 | | 7 | 8 | 9 | 0 | -_ | += | Bkspc |
- * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | Tab | Q | W | E | R | T | L1 | | Del | Y | U | I | O | P | |\ |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | L1 | A | S | D | F | G |------| |------| H | J | K | L | ;: | Enter |
- * |--------+------+------+------+------+------| {[ | | }] |------+------+------+------+------+--------|
- * | LShift | Z | X | C | V | B | | | | N | M | <, | >. | ?/ | "' |
- * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * |LCtrl | | | | Esc | | | | | | |
- * `----------------------------------' `----------------------------------'
- * ,-------------. ,-------------.
- * | | | |Power | |
- * ,------|------|------| |------+--------+------.
- * | | | | | | | |
- * | LGui | LAlt |------| |------| Bkspc |Space |
- * | | | | | Del | | |
- * `--------------------' `----------------------'
- */
-// If it accepts an argument (i.e, is a function), it doesn't need KC_.
-// Otherwise, it needs KC_*
-[BASE] = LAYOUT_ergodox( // layer 0 : default
- // left hand
- KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6,
- KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, MO(1),
- MO(1), KC_A, KC_S, KC_D, KC_F, KC_G,
- KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_LBRC,
- KC_LCTL, KC_TRNS,KC_TRNS,KC_TRNS,KC_ESC,
- KC_TRNS,KC_TRNS,
- KC_TRNS,
- KC_LGUI,KC_LALT,KC_TRNS,
-
- // right hand
- KC_7, KC_8, KC_9, KC_0, KC_MINS,KC_EQL, KC_BSPC,
- KC_DELETE, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS,
- KC_H, KC_J, KC_K, KC_L, KC_SCLN,KC_ENT,
- KC_RBRC, KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH,KC_QUOT,
- KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
- KC_PWR, KC_TRNS,
- KC_TRNS,
- KC_DELETE, KC_BSPC, KC_SPC
- ),
-/* Keymap 1: Auxiliary Layer
- *
- * ,--------------------------------------------------. ,--------------------------------------------------.
- * | | F1 | F2 | F3 | F4 | F5 | F6 | | F7 | F8 | F9 | F10 | F11 | F12 | |
- * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | | | | | | | TRNS | | | Mute | VolDn| VolUp| Play | | |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | TRNS | |LShift| LCtrl| | |------| |------| LEFT | DOWN | UP |RIGHT | | |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | LShift | | | | | | | | | MPrv | MNxt | | | | |
- * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * |LCtrl | | | | | | | | | | |
- * `----------------------------------' `----------------------------------'
- * ,-------------. ,-------------.
- * | | | | | |
- * ,------|------|------| |------+------+------.
- * | | | | | | | |
- * | LGui | LAlt |------| |------| Bkspc| Space|
- * | | | | | Del | | |
- * `--------------------' `--------------------'
- */
-// AUXILIARY
-[AUXI] = LAYOUT_ergodox(
- // left hand
- KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_LSFT, KC_LCTL, KC_TRNS, KC_TRNS,
- KC_LSFT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_LCTL, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS,
- KC_TRNS,
- KC_LGUI, KC_LALT, KC_TRNS,
- // right hand
- KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS,
- KC_TRNS, KC_MUTE, KC_VOLD, KC_VOLU, KC_MPLY, KC_TRNS, KC_TRNS,
- KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT,KC_TRNS, KC_TRNS,
- KC_TRNS, KC_MPRV, KC_MNXT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_PWR, KC_TRNS,
- KC_TRNS,
- KC_DELETE, KC_BSPC, KC_SPC
-),
-};
-
-// Runs constantly in the background, in a loop.
-void matrix_scan_user(void) {
-
- uint8_t layer = get_highest_layer(layer_state);
-
- ergodox_board_led_off();
- ergodox_right_led_1_off();
- ergodox_right_led_2_off();
- ergodox_right_led_3_off();
- switch (layer) {
- // TODO: Make this relevant to the ErgoDox EZ.
- case 1:
- ergodox_right_led_1_on();
- break;
- case 2:
- ergodox_right_led_2_on();
- break;
- default:
- // none
- break;
- }
-
-};
diff --git a/layouts/community/ergodox/meagerfindings/README.md b/layouts/community/ergodox/meagerfindings/README.md
deleted file mode 100644
index e7e4270db9..0000000000
--- a/layouts/community/ergodox/meagerfindings/README.md
+++ /dev/null
@@ -1,109 +0,0 @@
-![Base](https://meagerfindings.com/assets/img/ergodox/base.png)
-
-# Meagerfinding's ErgoDox Layout
-
-<!-- TOC depthFrom:2 depthTo:6 withLinks:1 updateOnSave:1 orderedList:0 -->
-
-- [Overview](#overview)
-- [Credit where credit is due](#credit-where-credit-is-due)
-- [Features](#features)
- - [Tap/Hold Macro Keys](#taphold-macro-keys)
- - [TapDance Keys](#tapdance-keys)
-- [Base Layer](#base-layer)
- - [Things to note:](#things-to-note)
-- [Old Base Layer](#old-base-layer)
-- [Symbols Layer](#symbols-layer)
-- [Mouse & Media Keys Layer](#mouse-media-keys-layer)
-- [Markdown Layer](#markdown-layer)
-- [Arrow/Movements Layer](#arrowmovements-layer)
-- [Numpad Layer](#numpad-layer)
-
-<!-- /TOC -->
-
-## Overview
-
-The overall goals of this layout are to:
-1. Use the Ergodox thumb clusters to eliminate pinky reach.
-2. Place as many useful keys under the home rows as possible.
-
-I first decided to build an ErgoDox as I wanted to use my thumbs for more with the added ergonomic benefits of a split board and ortholinear layout. I knew my hands were hurting from the weird contortions of copying and pasting constantly on my Mac, but I had no idea how strained I really was until I started moving as many modifier keys to the thumb clusters.
-
-## Credit where credit is due
-
-The initial layout used created on the [ErgoDox EZ Configurator](https://ergodox-ez.com/pages/graphical-configurator). I went through 26+ iterations within the configurator prior to beginning my journey with QMK itself. Much of the dual function/layer keys are influenced by and adapted from the EZ Configurator.
-
-Many features in this layout are either directly inspired by or are adaptations of [Algernon's incredible ErgoDox layout](https://github.com/algernon/ergodox-layout). Specifically: TapDance and its usage, and the brilliant idea of using TapDance to pair down the four keys for parens, brackets, and curly braces into just 2 keys.
-
-## Features
-
-### Tap/Hold Macro Keys
-* `Paste/Paste Special` key sends Paste on tap and Paste Special when held.
-* `Screen/Video` key sends `||scrn` when tapped and `||video` when held
- - [Typinator](http://www.ergonis.com/products/typinator/) expands `||scrn` into `(Screenshot: <CLIPBOARD CONTENTS>)`, and `||video` into `(Video: <CLIPBOARD CONTENTS>)`, the QMK macro then moves back to before the last paren, inserts a space and removes a space to create a hyperlink for use in Zendesk.
-* When tapped, `Todoist` toggles quick add window for a new Todoist task (`CMD + Shift + A`) and switches to Todoist when held
-* The RubyMine key opens RubyMine by triggering spotlight, typing out `Rubymine`, and submitting the enter key.
-* `Zendesk` triggers spotlight and then calls Typinator expansion to open my Zendesk Agent dashboard in Chrome.
-
-
-### TapDance Keys
-* `Copy/Cut` key copies on tap, cut's on two taps.
-* One tap on `Snagit` key = sends `Ctrl + Shift + C` which is Snagit's selector and two taps on `Snagit` key = `Cmd + Shift + Opt + 4`, OS X cropping screenshot that is copied to the clipboard only.
-* Tapping the `[{(`/`)}]` keys once yields `[` or `{` when the shift key is engaged, tapping them twice yields `(`.
-
-## Base Layer
-
-![Base](https://meagerfindings.com/assets/img/ergodox/base.png)
-
-The base layer retains the alphas from the QWERTY layout without any modifications.
-
-### Things to note:
-
-- The shift key is a One Shot Modifier key, meaning shift is not submitted when the key is tapped, instead, it only submits when you either tap it again, or on the next key press.
- - There is no CAPSLOCK key designated as it is pretty comfortable to simply hold down shift in this layout and continue typing.
-- There is only one layer that you can fully switch to on this layout, the [Old Base layer](#old-base-layer). All other layers require holding a key to reach them. For the most part, the key that toggles a layer, will be on the opposite hand that will be typing with that layer.
- - For example: the symbols layer is reached by holding down the enter key with your right thumb, and most of the symbols are located on the left hand board.
-
-
-## Old Base Layer
-
-![Old Base](https://meagerfindings.com/assets/img/ergodox/old_base.png)
-
-I am moving into a new position (software engineering) at work from a Support position. My hope is to use my F keys more often and write fewer emails. This is my old base layer, still easily accessible, as I'm not used to having F key's on my top row quite yet.
-
-## Symbols Layer
-
-![Symbols](https://meagerfindings.com/assets/img/ergodox/symbols.png)
-
-Holding down the `enter` key with your right thumb toggles the symbol layer.
-
-I've placed my most used symbols under the homerow. Granted, right now I mainly right emails/support ticket responses, so this home row may need to change as I transition to software engineering.
-
-## Mouse & Media Keys Layer
-
-![Mouse & Media](https://meagerfindings.com/assets/img/ergodox/mouse_media.png)
-
-Holding down the `:` key on with your right pinky toggles the mouse and media layer. Your left hand controls the mouse directions just in a similar fashion to the keys used in the [movement layer](#arrowmovements-layer).
-
-The right hand has a media controls under the homerow for quick muting/pausing.
-
-* `XKCD #1319` Key that ironically partially-automates accessing the link to [XKCD #1319](https://xkcd.com/1319/).
-
-## Markdown Layer
-
-![Markdown](https://meagerfindings.com/assets/img/ergodox/markdown.png)
-
-This layer places most common markdown symbols under the right hand. You can reach this layer by holding down the `F` key on your left hand.
-
-## Arrow/Movements Layer
-
-![Movement](https://meagerfindings.com/assets/img/ergodox/movement_arrows.png)
-
-Toggled by holding down the space key with the right thumb. This isn't vim like movement, nope, it's `WASD` but over one column. So I guess it's actually `ESDF` on the left hand and `IJKL` on the right hand to better line up with the columns offset/staggered columns on the Dox.
-
-## Numpad Layer
-
-![Numpad](https://meagerfindings.com/assets/img/ergodox/numpad.png)
-
-My right hand is pretty comfortable with tenkey number input so this is easily accessible by holding down backspace with the left thumb.
-
-Also, on the left hand, there is a tap to copy and hold to cut macro under the `D` key, and a tap to paste and a hold to paste special macro on the `F` key. I guess I'm to too lazy to move my fingers when copying/pasting...
diff --git a/layouts/community/ergodox/meagerfindings/config.h b/layouts/community/ergodox/meagerfindings/config.h
deleted file mode 100644
index 28a92e2bf6..0000000000
--- a/layouts/community/ergodox/meagerfindings/config.h
+++ /dev/null
@@ -1,24 +0,0 @@
-#undef VENDOR_ID
-#define VENDOR_ID 0xFEED
-#undef PRODUCT_ID
-#define PRODUCT_ID 0x1307
-#undef DEVICE_VER
-#define DEVICE_VER 0x0001
-#undef MANUFACTURER
-#define MANUFACTURER "meagerfindings"
-#undef PRODUCT
-#define PRODUCT "ErgoDox"
-
-#define USB_MAX_POWER_CONSUMPTION 500
-
-#undef MOUSEKEY_INTERVAL
-#define MOUSEKEY_INTERVAL 20
-#undef MOUSEKEY_DELAY
-#define MOUSEKEY_DELAY 0
-#undef MOUSEKEY_TIME_TO_MAX
-#define MOUSEKEY_TIME_TO_MAX 18
-#undef MOUSEKEY_MAX_SPEED
-#define MOUSEKEY_MAX_SPEED 4
-
-#undef TAPPING_TERM
-#define TAPPING_TERM 200
diff --git a/layouts/community/ergodox/meagerfindings/keymap.c b/layouts/community/ergodox/meagerfindings/keymap.c
deleted file mode 100644
index 800fd091b3..0000000000
--- a/layouts/community/ergodox/meagerfindings/keymap.c
+++ /dev/null
@@ -1,557 +0,0 @@
-#include QMK_KEYBOARD_H
-#include "version.h"
-
-enum {
- BASE = 0,
- OLD_BASE,
- SYMBL,
- MEDIA,
- MKDWN,
- ARROWS,
- NUM,
-};
-
-enum custom_keycodes {
- PLACEHOLDER = SAFE_RANGE, // can always be here
- EPRM,
- VRSN,
- MD_LINK,
- XKCD,
- DBLE_ZER0,
- L_ID_0,
- L_ID_1,
- L_ID_2,
- PAST_PS,
- TODO,
- RUBYMINE,
- ZENDESK,
- DBLE_ASTR,
- TRPLE_GRAVE,
- H_ONE,
- H_TWO,
- H_THREE,
- H_FOUR,
- H_FIVE,
- M_LINK,
- M_GREATER,
- TD_COPY_CUT = 6,
- TD_SNAGIT = 8,
- TD_B_L_SEL = 10,
- CT_LBP = 11,
- CT_RBP = 12
-};
-
-//Redefine Key Names for Readaibilty
-#define SCRN_CLIPB LCTL(LGUI(LSFT(KC_4)))
-#define CHRM_L LALT(LGUI(KC_LEFT)) //Move left one tab in Chrome
-#define CHRM_R LALT(LGUI(KC_RIGHT)) //Move right one tab in Chrome
-#define S_CMD_S LGUI_T(KC_S) //`S` when typing `CMD` when held
-#define D_CMD_OPT LGUI_T(LALT_T(KC_D)) //`D` when typing `CMD + Opt` when held
-
-static uint16_t key_timer; //key timer for macros
-
-//Tap Dance Definitions
-tap_dance_action_t tap_dance_actions[] = {
- //Tap once for Copy, twice for Paste, three times for Cut.
- [TD_COPY_CUT] = ACTION_TAP_DANCE_DOUBLE(LGUI(KC_C),LGUI(KC_X)),
- //Tap once for Snagit, twice for Cmd + Shift + Opt + 4 (OS X cropping screenshot that is copied to the clipboard only.)
- [TD_SNAGIT] = ACTION_TAP_DANCE_DOUBLE(LCTL(LSFT(KC_C)), LCTL(LGUI(LSFT(KC_4)))),
- [CT_LBP] = ACTION_TAP_DANCE_DOUBLE (KC_LBRC, KC_LPRN),
- [CT_RBP] = ACTION_TAP_DANCE_DOUBLE (KC_RBRC, KC_RPRN)
-};
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
- /* Keymap 0: Basic layer
- * ,--------------------------------------------------. ,--------------------------------------------------.
- * | = | F1 | F2 | F3 | F4 | F5 | F6 | | F7 | F8 | F9 | F10 | F11 | F12 | - |
- * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | Tab | Q | W | E | R | T | "> " | | []() | Y | U | I | O | P | \ |
- * |--------+------+------+------+------+------| | | SCRN |------+------+------+------+------+--------|
- * | Hyper | A |S /CMD|D/OPT | F /MD| G |------| |------| H | J |K/OPT |L /CMD| ; /L2| '/Hyper|
- * |--------+------+------+------+------+------| ( | | ) |------+------+------+------+------+--------|
- * |Shft Tab|Z/Ctrl|X/Alt | C | V | B | [ { | | ] } | N | M | , | ./Alt|//Ctrl|CMD+SHFT|
- * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * | ` |Zendsk|RBMINE|CMD+S | ToDo | | _ | | 00 | 00 |OLD BASE|
- * `----------------------------------' `----------------------------------'
- * ,-------------. ,--------------.
- * | Esc | Home | |Layer?| Esc |
- * ,------|------|------| |------+-------+------.
- * | | | End | | Undo | | |
- * |Shift |Backsp|------| |------| Return|Space/|
- * | OSM | /NUM | DEL | | Ctrl | /SYML |Arrows|
- * `--------------------' `---------------------'
- *
- *Copy/Cut key copies on tap, cut's on two taps.
- *
- *One tap on Snagit key = is Ctrl + Shift + C which is Snagit's selector.
- *Two taps on Snagit key = Cmd + Shift + Opt + 4 (OS X cropping screenshot that is copied to the clipboard only.)
- */
-
- [BASE] = LAYOUT_ergodox(
- //left hand
- KC_EQUAL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6,
- KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, M_GREATER,
- OSM(MOD_HYPR), KC_A, S_CMD_S, ALT_T(KC_D), LT(MKDWN,KC_F), KC_G,
- LSFT(KC_TAB), CTL_T(KC_Z), ALT_T(KC_X), KC_C, KC_V, KC_B, TD(CT_LBP),
- KC_GRAVE, ZENDESK, RUBYMINE, LGUI(KC_S), TODO,
- KC_ESCAPE, KC_HOME,
- KC_END,
- OSM(MOD_LSFT), LT(NUM,KC_BSPC), LT(MKDWN,KC_DELETE),
-
- //right hand
- KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_MINUS,
- MD_LINK, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS,
- KC_H, KC_J, ALT_T(KC_K), LGUI_T(KC_L), LT(MEDIA,KC_SCLN), ALL_T(KC_QUOTE),
- TD(CT_RBP), KC_N, KC_M, KC_COMMA, ALT_T(KC_DOT), CTL_T(KC_SLASH), SCMD_T(_______),
- LSFT(KC_MINUS), _______, DBLE_ZER0, DBLE_ZER0, TO(OLD_BASE),
- L_ID_0, KC_ESCAPE,
- LGUI(KC_Z),
- LT(MEDIA,KC_LCTL), LT(SYMBL,KC_ENTER), LT(ARROWS,KC_SPACE)),
-
- /* Keymap 1: OLD Base layer
- * ,--------------------------------------------------. ,--------------------------------------------------.
- * | = | 1 | 2 | 3 | 4 | 5 | []() | |Snagit| 6 | 7 | 8 | 9 | 0 | - |
- * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | Tab | Q | W | E | R | T | "> " | | []() | Y | U | I | O | P | \ |
- * |--------+------+------+------+------+------| | | SCRN |------+------+------+------+------+--------|
- * | Hyper | A |S /CMD| D | F | G |------| |------| H | J | K |L /CMD| ; /L2| '/Hyper|
- * |--------+------+------+------+------+------| ( | | ) |------+------+------+------+------+--------|
- * |Shft Tab|Z/Ctrl|X/Alt | C | V | B | [ { | | ] } | N | M | , | ./Alt|//Ctrl|CMD+SHFT|
- * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * | ` |Zendsk|RBMINE|CMD+S | ToDo | | _ | | 00 | 00 |ToBase|
- * `----------------------------------' `----------------------------------'
- * ,-------------. ,--------------.
- * | Esc | Home | |Layer?| Esc |
- * ,------|------|------| |------+-------+------.
- * | | | End | | Undo | | |
- * |Shift |Backsp|------| |------| Return|Space/|
- * | OSM | /L5 | DEL | | Ctrl | /LT1 |Arrows|
- * `--------------------' `---------------------'
- *
- *Copy/Cut key copies on tap, cut's on two taps.
- *
- *One tap on Snagit key = is Ctrl + Shift + C which is Snagit's selector.
- *Two taps on Snagit key = Cmd + Shift + Opt + 4 (OS X cropping screenshot that is copied to the clipboard only.)
- */
-
- [OLD_BASE] = LAYOUT_ergodox(
- //left hand
- KC_EQUAL, KC_1, KC_2, KC_3, KC_4, KC_5, M_LINK,
- KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, M_GREATER,
- OSM(MOD_HYPR), KC_A, S_CMD_S, D_CMD_OPT, LT(MKDWN,KC_F),KC_G,
- LSFT(KC_TAB), CTL_T(KC_Z), ALT_T(KC_X), KC_C, KC_V, KC_B, TD(CT_LBP),
- KC_GRAVE, ZENDESK, RUBYMINE, LGUI(KC_S), TODO,
- KC_ESCAPE, KC_HOME,
- KC_END,
- OSM(MOD_LSFT), LT(NUM,KC_BSPC), LT(MKDWN,KC_DELETE),
-
- //right hand
- TD(TD_SNAGIT), KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINUS,
- MD_LINK, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS,
- KC_H, KC_J, KC_K, LGUI_T(KC_L), LT(MEDIA,KC_SCLN), ALL_T(KC_QUOTE),
- TD(CT_RBP), KC_N, KC_M, KC_COMMA, ALT_T(KC_DOT), CTL_T(KC_SLASH), SCMD_T(_______),
- LSFT(KC_MINUS), _______, DBLE_ZER0, DBLE_ZER0, TO(BASE),
- L_ID_0, KC_ESCAPE,
- LGUI(KC_Z),
- LT(MEDIA,KC_LCTL), LT(SYMBL,KC_ENTER), LT(ARROWS,KC_SPACE)),
-
- /* Keymap 2: Symbol
- * ,--------------------------------------------------. ,--------------------------------------------------.
- * | | 1 | 2 | 3 | 4 | 5 | []() | |Snagit| 6 | 7 | 8 | 9 | 0 | - |
- * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | | | $ | & | ` | | | Cmd | | | | | * | | | |
- * |--------+------+------+------+------+------| + K | | |------+------+------+------+------+--------|
- * | | # | $ | & | ! | @ |------| |------| - | [ | ] | ( | ) | |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | % | ^ | | | ~ | | | | | | | | | |
- * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * | | | | | | | | | | | |
- * `----------------------------------' `----------------------------------'
- * ,-------------. ,-------------.
- * | | | |Layer?| |
- * ,------|------|------| |------+------+------.
- * | | | | | | | |
- * | | |------| |------| | |
- * | | | | | | | |
- * `--------------------' `--------------------'
- */
- // SYMBOLS
- [SYMBL] = LAYOUT_ergodox(
- //left hand
- _______, KC_1, KC_2, KC_3, KC_4, KC_5, M_LINK,
- _______, _______, KC_DLR, KC_AMPR, KC_GRAVE, KC_PIPE, LGUI(KC_K),
- _______, KC_HASH, KC_DLR, KC_AMPR, KC_EXLM, KC_AT,
- _______, KC_PERC, KC_CIRC, _______, _______, KC_TILD, _______,
- _______, _______, _______, _______, _______,
- _______, _______,
- _______,
- _______, _______, _______,
-
- //right hand
- TD(TD_SNAGIT), KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINUS,
- _______, _______, _______, KC_PAST, _______, _______, _______,
- KC_MINUS, KC_LBRC, KC_RBRC, KC_LPRN, KC_RPRN, _______,
- _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______,
- L_ID_1, _______,
- _______,
- _______, _______, _______),
-
- /* Keymap 3: Media and mouse keys
- * ,--------------------------------------------------. ,--------------------------------------------------.
- * | | | | | | | | | XKCD | | | | | | F15 |
- * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | | |Whl Up| MsUp |Whl Dn| | | | | | | | | | F14 |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | |Ctl L |MsLeft|MsDown|MsRght| Ctl R|------| |------| | Mute | VolDn| VolUp| TL 2 | Play |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | |WHL L | |Whl R | | | | | | | Prev | Next | | |
- * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * | | | | | | | Mute | | | | |
- * `----------------------------------' `----------------------------------'
- * ,-------------. ,-------------.
- * | | | |LAYER?| |
- * ,------|------|------| |------+------+------.
- * | Left |Right | | | |Copy/ | paste|
- * | Click|Click |------| |------| cut |/paste|
- * | | | | | | |spcial|
- * `--------------------' `--------------------'
- */
- // MEDIA AND MOUSE
-
- [MEDIA] = LAYOUT_ergodox(
- //left hand
- _______, _______, _______, _______, _______, _______, _______,
- _______, _______, KC_MS_WH_UP, KC_MS_UP, KC_MS_WH_DOWN, _______, _______,
- _______, LCTL(KC_LEFT), KC_MS_LEFT, KC_MS_DOWN, KC_MS_RIGHT, RCTL(KC_RIGHT),
- XXXXXXX, _______, KC_MS_WH_LEFT, _______, KC_MS_WH_RIGHT, _______, _______,
- _______, _______, _______, _______, _______,
- _______, _______,
- _______,
- KC_MS_BTN1, KC_MS_BTN2, _______,
-
- //right hand
- XKCD, _______, _______, _______, _______, _______, KC_F15,
- _______, _______, _______, _______, _______, _______, KC_F14,
- _______, KC_AUDIO_MUTE, KC_AUDIO_VOL_DOWN, KC_AUDIO_VOL_UP, _______, KC_MEDIA_PLAY_PAUSE,
- _______, _______, _______, KC_MEDIA_PREV_TRACK, KC_MEDIA_NEXT_TRACK, _______, XXXXXXX,
- _______, _______, _______, _______, _______,
- L_ID_2, _______,
- _______,
- _______, TD(TD_COPY_CUT), PAST_PS),
-
- /* Keymap 4: Markdown Symbols
- * ,--------------------------------------------------. ,--------------------------------------------------.
- * | | | | | | | | |SCRNCL| | | | | | |
- * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | | | | | | | | | | | ``` | ** | _ | ` | |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | | | | TL MD| |------| |------| - | [ | ] | ( | ) | |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | | | | | | | | | # | ## | ### | #### | #####| |
- * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * | | | | | | | | | | | |
- * `----------------------------------' `----------------------------------'
- * ,-------------. ,-------------.
- * | | | |Layer?| |
- * ,------|------|------| |------+------+------.
- * | | | | | | | |
- * | | |------| |------| | |
- * | | | | | | | |
- * `--------------------' `--------------------'
- * Sc cp = OS X cropping screenshot that is copied to the clipboard only.
- */
- // Markdown Layer
- [MKDWN] = LAYOUT_ergodox(
- //left hand
- _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______,
- _______, _______,
- _______,
- _______, _______, _______,
-
- //right hand
- SCRN_CLIPB, _______, _______, _______, _______, _______, _______,
- _______, _______, TRPLE_GRAVE, DBLE_ASTR,LSFT(KC_MINUS), KC_GRAVE, _______,
- KC_MINUS, KC_LBRC, KC_RBRC, KC_LPRN, KC_RPRN, _______,
- _______, H_ONE, H_TWO, H_THREE, H_FOUR, H_FIVE, _______,
- _______, _______, _______, _______, _______,
- _______, _______,
- _______,
- _______, _______, _______),
-
- /* Keymap 5: Arrows
- *
- * ,--------------------------------------------------. ,--------------------------------------------------.
- * | QK_BOOT | | | | | | | | | | | | | | |
- * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | | | Opt+L| Up |Opt+R | | | | | | Opt+L| Up |Opt+R | | |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | |Ctrl+L| Left | Dn | Right|Ctrl+R|------| |------|Ctrl+L| Left | Dn | Right|Ctrl+R| |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | | | | | | | | | | | | | | |
- * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * | | | | | | | | | | | |
- * `----------------------------------' `----------------------------------'
- * ,-------------. ,-------------.
- * | | | | | |
- * ,------|------|------| |------+------+------.
- * | | | | | | | |
- * | | |------| |------| | |
- * | | | | | | | |
- * `--------------------' `--------------------'
- *
- *
- *
- */
- // Movement Layer
-
- [ARROWS] = LAYOUT_ergodox(
- //left hand
- QK_BOOT, _______, _______, _______, _______, _______, _______,
- _______, _______, CHRM_L, KC_UP, CHRM_R, _______, _______,
- _______,LCTL(KC_LEFT), KC_LEFT, KC_DOWN, KC_RIGHT, LCTL(KC_RIGHT),
- _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______,
- _______, _______,
- _______,
- _______, _______, _______,
- //right hand
- _______, _______, _______, _______, _______, _______, _______,
- _______, _______, CHRM_L, KC_UP, CHRM_R, _______, _______,
- LCTL(KC_LEFT), KC_LEFT, KC_DOWN, LGUI_T(KC_RIGHT), LCTL(KC_RIGHT), _______,
- _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______,
- _______, _______,
- _______,
- _______, _______, _______),
-
- /* Keymap 6: Numpad
- * ,--------------------------------------------------. ,--------------------------------------------------.
- * | | | | | | | | | | | | | | | |
- * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | | | | | | | | | | = | 7 | 8 | 9 | * | |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | | |Cp/Cut|paste | |------| |------| + | 4 | 5 | 6 | + | |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | | | | | | | | | - | 1 | 2 | 3 | / | |
- * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * | | | | | | | 0 | . | 00 | 00 | Enter|
- * `----------------------------------' `----------------------------------'
- * ,-------------. ,-------------.
- * | | | | | |
- * ,------|------|------| |------+------+------.
- * | | | | | |Nupmad| |
- * | | |------| |------|Enter | |
- * | | | | | | | |
- * `--------------------' `--------------------'
- */
- // Numpad Layer
- [NUM] = LAYOUT_ergodox(
- //left hand
- _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, TD(TD_COPY_CUT), PAST_PS, _______,
- _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______,
- _______, _______,
- _______,
- _______, _______, _______,
-
- //right hand
- _______, _______, _______, _______, _______, _______, _______,
- _______, KC_EQUAL, KC_7, KC_8, KC_9, KC_ASTR, _______,
- KC_PLUS, KC_4, KC_5, KC_6, KC_PLUS, _______,
- _______, KC_MINUS, KC_1, KC_2, KC_3, KC_KP_SLASH, _______,
- KC_KP_0, KC_DOT, DBLE_ZER0, DBLE_ZER0, KC_KP_ENTER,
- _______, _______,
- _______,
- _______, KC_PENT, _______),
-};
-
-bool process_record_user(uint16_t keycode, keyrecord_t *record) {
-
- switch (keycode) {
- case EPRM:
- if (record->event.pressed) {
- eeconfig_init();
- }
- return false;
- break;
-
- case VRSN:
- if (record->event.pressed) {
- SEND_STRING (QMK_KEYBOARD "/" QMK_KEYMAP " @ " QMK_VERSION);
- }
- return false;
- break;
-
- case MD_LINK:
- if (record->event.pressed){
- key_timer = timer_read();
- } else {
- if (timer_elapsed(key_timer) > 150) {
- SEND_STRING ("([Video](");
- } else {
- SEND_STRING ("([Screenshot](");
- }
- SEND_STRING(SS_LGUI("v"));
- SEND_STRING("))");
- }
- break;
-
- case XKCD:
- if (record->event.pressed) {
- SEND_STRING ("https://xkcd.com/1319/");
- }
- break;
-
- case DBLE_ZER0:
- if (record->event.pressed){
- SEND_STRING ("00");
- }
- break;
-
- case DBLE_ASTR:
- if (record->event.pressed){
- SEND_STRING ("**");
- SEND_STRING ("**");
- SEND_STRING (SS_TAP(X_LEFT));
- SEND_STRING (SS_TAP(X_LEFT));
- }
- break;
-
- case TRPLE_GRAVE:
- if (record->event.pressed){
- SEND_STRING ("```");
- }
- break;
-
- case L_ID_0:
- if (record->event.pressed) {
- SEND_STRING (SS_LGUI(" "));
- SEND_STRING ("Layer 0: Base");
- }
- break;
-
- case L_ID_1:
- if (record->event.pressed) {
- SEND_STRING (SS_LGUI(" "));
- SEND_STRING ("Layer 1: Symbols");
- }
- break;
-
- case L_ID_2:
- if (record->event.pressed) {
- SEND_STRING (SS_LGUI(" "));
- SEND_STRING ("Layer 2: Media & Mousekeys");
- }
- break;
-
- case PAST_PS:
- if (record->event.pressed) {
- key_timer = timer_read();
- } else {
- if (timer_elapsed(key_timer) > 150) {
- SEND_STRING (SS_LGUI("V")); // Paste special
- } else {
- SEND_STRING (SS_LGUI("v")); // Paste
- }
- }
- break;
-
- case TODO:
- if (record->event.pressed) {
- key_timer = timer_read();
- } else {
- if (timer_elapsed(key_timer) > 150) { //switch to Todoist when held and released
- SEND_STRING (SS_LGUI(" "));
- SEND_STRING ("Todoist");
- SEND_STRING (SS_TAP(X_ENTER));
- } else {
- SEND_STRING (SS_LGUI(SS_LCTL("a"))); //macro to open Todoist new task dialog
- }
- }
- break;
-
- case RUBYMINE:
- if (record->event.pressed){
- SEND_STRING (SS_LGUI(" "));
- SEND_STRING ("RUBYMINE");
- SEND_STRING (SS_TAP(X_ENTER));
- }
- break;
-
- case ZENDESK:
- if (record->event.pressed){
- SEND_STRING (SS_LGUI(" "));
- SEND_STRING ("||ZEN");
- SEND_STRING (SS_TAP(X_ENTER));
- }
- break;
-
- case H_ONE:
- if (record->event.pressed){
- SEND_STRING ("# ");
- }
- break;
-
- case H_TWO:
- if (record->event.pressed){
- SEND_STRING ("## ");
- }
- break;
-
- case H_THREE:
- if (record->event.pressed){
- SEND_STRING ("### ");
- }
- break;
-
- case H_FOUR:
- if (record->event.pressed){
- SEND_STRING ("#### ");
- }
- break;
-
- case H_FIVE:
- if (record->event.pressed){
- SEND_STRING ("##### ");
- }
- break;
- case M_LINK:
- if (record->event.pressed){
- SEND_STRING ("[]()");
- }
- break;
- case M_GREATER:
- if (record->event.pressed){
- SEND_STRING ("> ");
- }
- break;
- }
- return true;
-};
-
-void matrix_scan_user(void) {
- uint8_t layer = get_highest_layer(layer_state);
-
- ergodox_board_led_off();
- ergodox_right_led_1_off();
- ergodox_right_led_2_off();
- ergodox_right_led_3_off();
- switch (layer) {
- case 1:
- ergodox_right_led_1_on();
- break;
- case 2:
- ergodox_right_led_2_on();
- break;
- default:
- break;
- }
-};
diff --git a/layouts/community/ergodox/meagerfindings/rules.mk b/layouts/community/ergodox/meagerfindings/rules.mk
deleted file mode 100644
index c775e1f6d6..0000000000
--- a/layouts/community/ergodox/meagerfindings/rules.mk
+++ /dev/null
@@ -1,3 +0,0 @@
-COMMAND_ENABLE = no
-TAP_DANCE_ENABLE = yes
-FORCE_NKRO = yes
diff --git a/layouts/community/ergodox/mpiechotka/keymap.c b/layouts/community/ergodox/mpiechotka/keymap.c
deleted file mode 100644
index b13ff0796b..0000000000
--- a/layouts/community/ergodox/mpiechotka/keymap.c
+++ /dev/null
@@ -1,259 +0,0 @@
-#include QMK_KEYBOARD_H
-
-#include "keymap_colemak.h"
-
-enum layer_names {
- BASE = 0,
- BASE_CM,
- SYMB,
- MACR
-};
-
-enum custom_keycodes {
- LWIN = SAFE_RANGE,
- KC_PC1,
- KC_PC2,
- KC_PC3,
- KC_PC4
-};
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-/* Keymap 0a: Basic layer
- *
- * ,--------------------------------------------------. ,--------------------------------------------------.
- * | = | 1 | 2 | 3 | 4 | 5 | LEFT | | RIGHT| 6 | 7 | 8 | 9 | 0 | - |
- * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | Del | Q | W | F | P | G | L1 | | L1 | J | L | U | Y | ; | \ |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | Esc | A | R | S | T | D |------| |------| H | N | E | I | O | ' |
- * |--------+------+------+------+------+------| = | | - |------+------+------+------+------+--------|
- * | LShift |Z/Ctrl| X | C | V | B | | | | K | M | , | . |//Ctrl| RShift |
- * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * |Grv/L1| '" |AltShf| Left | Right| | Up | Down | [ | ] | ~L1 |
- * `----------------------------------' `----------------------------------'
- * ,-------------. ,-------------.
- * | LAlt | LGui | | LAlt | RAlt |
- * ,------|------|------| |------+--------+------.
- * | |Backsp| Home | | PgUp | | |
- * | Space|ace/ |------| |------| Tab/ |Enter/|
- * | /Shft|Ctrl | 1) | | 2) | Ctrl |Shift |
- * `--------------------' `----------------------'
- *
- * 1) End/L1
- * 2) PgDown/L2
- */
-[BASE] = LAYOUT_ergodox( // layer 0 : default
- // left hand
- KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, KC_LEFT,
- KC_DEL, KC_Q, KC_W, KC_F, KC_P, KC_G, TG(SYMB),
- KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_D,
- KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_EQL,
- LT(SYMB,KC_GRV),KC_QUOT, LALT(KC_LSFT), KC_LEFT, KC_RGHT,
- KC_LALT, LWIN,
- KC_HOME,
- SFT_T(KC_SPC),CTL_T(KC_BSPC),LT(SYMB, KC_END),
- // right hand
- KC_RGHT, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS,
- TG(SYMB), KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSLS,
- KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT,
- KC_MINS, KC_K, KC_M, KC_COMM,KC_DOT, CTL_T(KC_SLSH), KC_RSFT,
- KC_UP, KC_DOWN,KC_LBRC,KC_RBRC, LT(SYMB,KC_NO),
- KC_LALT, KC_RALT,
- KC_PGUP,
- LT(MACR,KC_PGDN),CTL_T(KC_TAB), SFT_T(KC_ENT)
- ),
-/* Keymap 0b: Basic layer (Colemak keycodes or QWERTY)
- *
- * ,--------------------------------------------------. ,--------------------------------------------------.
- * | = | 1 | 2 | 3 | 4 | 5 | LEFT | | RIGHT| 6 | 7 | 8 | 9 | 0 | - |
- * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | Del | Q | W | F | P | G | L1 | | L1 | J | L | U | Y | ; | \ |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | Esc | A | R | S | T | D |------| |------| H | N | E | I | O | ' |
- * |--------+------+------+------+------+------| = | | - |------+------+------+------+------+--------|
- * | LShift |Z/Ctrl| X | C | V | B | | | | K | M | , | . |//Ctrl| RShift |
- * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * |Grv/L1| '" |AltShf| Left | Right| | Up | Down | [ | ] | ~L1 |
- * `----------------------------------' `----------------------------------'
- * ,-------------. ,-------------.
- * | LAlt | LGui | | LAlt | RAlt |
- * ,------|------|------| |------+--------+------.
- * | |Backsp| Home | | PgUp | | |
- * | Space|ace/ |------| |------| Tab/ |Enter/|
- * | /Shft|Ctrl | 1) | | 2) | Ctrl |Shift |
- * `--------------------' `----------------------'
- *
- * 1) End/L1
- * 2) PgDown/L2
- */
-[BASE_CM] = LAYOUT_ergodox( // layer 0 : default
- // left hand
- KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, KC_LEFT,
- KC_DEL, CM_Q, CM_W, CM_F, CM_P, CM_G, TG(SYMB),
- KC_ESC, CM_A, CM_R, CM_S, CM_T, CM_D,
- KC_LSFT, CM_Z, CM_X, CM_C, CM_V, CM_B, KC_EQL,
- LT(SYMB,KC_GRV),KC_QUOT, LALT(KC_LSFT), KC_LEFT, KC_RGHT,
- KC_LALT, LWIN,
- KC_HOME,
- SFT_T(KC_SPC),CTL_T(KC_BSPC),LT(SYMB, KC_END),
- // right hand
- KC_RGHT, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS,
- TG(SYMB), CM_J, CM_L, CM_U, CM_Y, KC_P, /*CM_SCLN*/ KC_BSLS,
- CM_H, CM_N, CM_E, CM_I, CM_O, KC_QUOT,
- KC_MINS, CM_K, CM_M, CM_COMM,CM_DOT, CTL_T(CM_SLSH), KC_RSFT,
- KC_UP, KC_DOWN,KC_LBRC,KC_RBRC, LT(SYMB,KC_NO),
- KC_LALT, KC_RALT,
- KC_PGUP,
- LT(MACR,KC_PGDN),CTL_T(KC_TAB), SFT_T(KC_ENT)
- ),
-/* Keymap 1: Symbol Layer
- *
- * ,--------------------------------------------------. ,--------------------------------------------------.
- * | | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | F11 |
- * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | | ! | @ | { | } | | | | | | Up | 7 | 8 | 9 | * | F12 |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | # | $ | ( | ) | ` |------| |------| Down | 4 | 5 | 6 | + | |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | % | ^ | [ | ] | ~ | | | | & | 1 | 2 | 3 | \ | |
- * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * | | | | | | | | . | 0 | = | |
- * `----------------------------------' `----------------------------------'
- * ,-------------. ,-------------.
- * | | | | | |
- * ,------|------|------| |------+------+------.
- * | | | | | | | |
- * | | |------| |------| | |
- * | | | | | | | |
- * `--------------------' `--------------------'
- */
-// SYMBOLS
-[SYMB] = LAYOUT_ergodox(
- // left hand
- KC_TRNS,KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_TRNS,
- KC_TRNS,KC_EXLM,KC_AT, KC_LCBR,KC_RCBR,KC_PIPE,KC_TRNS,
- KC_TRNS,KC_HASH,KC_DLR, KC_LPRN,KC_RPRN,KC_GRV,
- KC_TRNS,KC_PERC,KC_CIRC,KC_LBRC,KC_RBRC,KC_TILD,KC_TRNS,
- KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
- KC_TRNS,KC_TRNS,
- KC_TRNS,
- KC_TRNS,KC_TRNS,KC_TRNS,
- // right hand
- KC_TRNS, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,
- KC_TRNS, KC_UP, KC_7, KC_8, KC_9, KC_ASTR, KC_F12,
- KC_DOWN, KC_4, KC_5, KC_6, KC_PLUS, KC_TRNS,
- KC_TRNS, KC_AMPR, KC_1, KC_2, KC_3, KC_BSLS, KC_TRNS,
- KC_TRNS,KC_DOT, KC_0, KC_EQL, KC_TRNS,
- KC_TRNS, KC_TRNS,
- KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS
-),
-/* Keymap 2: Macros
- *
- * ,--------------------------------------------------. ,--------------------------------------------------.
- * | | | | | | | | | | | | | | | |
- * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | | DLa | DLb | | | | | | | | | | | | |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | PC1 | PC2 | PC3 | PC4 | |------| |------| | | | | | |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | | | | | | | | | | | | | | |
- * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * | | | | | | | | | | | |
- * `----------------------------------' `----------------------------------'
- * ,-------------. ,-------------.
- * | | | | | |
- * ,------|------|------| |------+------+------.
- * | | | | | | | |
- * | | |------| |------| | |
- * | | | | | | | |
- * `--------------------' `--------------------'
- */
-// MACROS
-[MACR] = LAYOUT_ergodox(
- KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
- KC_NO, DF(BASE), DF(BASE_CM), KC_NO, KC_NO, KC_NO, KC_NO,
- KC_NO, KC_PC1, KC_PC2, KC_PC3, KC_PC4, KC_NO,
- KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
- KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
- KC_TRNS,KC_TRNS,
- KC_TRNS,
- KC_TRNS,KC_TRNS,KC_TRNS,
- // right hand
- KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
- KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
- KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
- KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
- KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
- KC_TRNS, KC_TRNS,
- KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS
-),
-};
-
-bool process_record_user(uint16_t keycode, keyrecord_t *record) {
- switch (keycode) {
- case LWIN:
- if (record->event.pressed) {
- tap_code(KC_RSFT);
- register_code(KC_LGUI);
- } else {
- unregister_code(KC_LGUI);
- }
- return false;
- case KC_PC1:
- if (record->event.pressed) {
- tap_code_delay(KC_SCRL, 50);
- wait_ms(50);
- tap_code_delay(KC_1, 50);
- tap_code(KC_ENT);
- }
- return false;
- case KC_PC2:
- if (record->event.pressed) {
- tap_code_delay(KC_SCRL, 50);
- wait_ms(50);
- tap_code_delay(KC_2, 50);
- tap_code(KC_ENT);
- }
- return false;
- case KC_PC3:
- if (record->event.pressed) {
- tap_code_delay(KC_SCRL, 50);
- wait_ms(50);
- tap_code_delay(KC_3, 50);
- tap_code(KC_ENT);
- }
- return false;
- case KC_PC4:
- if (record->event.pressed) {
- tap_code_delay(KC_SCRL, 50);
- wait_ms(50);
- tap_code_delay(KC_4, 50);
- tap_code(KC_ENT);
- }
- return false;
- }
- return true;
-}
-
-// Runs constantly in the background, in a loop.
-void matrix_scan_user(void) {
- ergodox_board_led_off();
- ergodox_right_led_1_off();
- ergodox_right_led_2_off();
- ergodox_right_led_3_off();
-
- switch (get_highest_layer(layer_state)) {
- // TODO: Make this relevant to the ErgoDox EZ.
- case SYMB:
- ergodox_right_led_1_on();
- break;
- case MACR:
- ergodox_right_led_2_on();
- break;
- default:
- // none
- break;
- }
-}
diff --git a/layouts/community/ergodox/mpiechotka/readme.md b/layouts/community/ergodox/mpiechotka/readme.md
deleted file mode 100644
index 785400d1d2..0000000000
--- a/layouts/community/ergodox/mpiechotka/readme.md
+++ /dev/null
@@ -1,6 +0,0 @@
-# ErgoDox EZ mpiechotka Configuration
-
-Modification of ErgoDox EZ Colemak layout with additional QWERTY/software Colemak layer and change of the special keys.
-
-
-
diff --git a/layouts/community/ergodox/msc/keymap.c b/layouts/community/ergodox/msc/keymap.c
deleted file mode 100644
index 62d18798dd..0000000000
--- a/layouts/community/ergodox/msc/keymap.c
+++ /dev/null
@@ -1,160 +0,0 @@
-#include QMK_KEYBOARD_H
-#include "debug.h"
-#include "action_layer.h"
-
-#define BASE 0 // default layer
-#define SYMB 1 // symbols
-#define MDIA 2 // media keys
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-/* Keymap 0: Basic layer
- *
- * ,--------------------------------------------------. ,--------------------------------------------------.
- * | = | 1 | 2 | 3 | 4 | 5 | LEFT | | RIGHT| 6 | 7 | 8 | 9 | 0 | - |
- * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | Del | Q | W | E | R | T | L1 | | L1 | Y | U | I | O | P | \ |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | BkSp | A | S | D | F | G |------| |------| H | J | K | L | ; |' / Cmd |
- * |--------+------+------+------+------+------| Hyper| | Meh |------+------+------+------+------+--------|
- * | LShift |Z/Ctrl| X | C | V | B | | | | N | M | , | . |//Ctrl| RShift |
- * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * | Cmd | Alt |AltShf| Left | Right| | Left | Down | Up |Right | L2 |
- * `----------------------------------' `----------------------------------'
- * ,-------------. ,-------------.
- * | App | LGui | | Alt |Ctrl/Esc|
- * ,------|------|------| |------+--------+------.
- * | | | Home | | PgUp | | |
- * | Space|Backsp|------| |------| Tab |Enter |
- * | |ace | End | | PgDn | | |
- * `--------------------' `----------------------'
- */
-// If it accepts an argument (i.e, is a function), it doesn't need KC_.
-// Otherwise, it needs KC_*
-[BASE] = LAYOUT_ergodox( // layer 0 : default
- // left hand
- KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, KC_LEFT,
- KC_DEL, KC_Q, KC_W, KC_E, KC_R, KC_T, TG(SYMB),
- KC_BSPC, KC_A, KC_S, KC_D, KC_F, KC_G,
- KC_LSFT, CTL_T(KC_Z), KC_X, KC_C, KC_V, KC_B, ALL_T(KC_NO),
- KC_LGUI,KC_LALT, LALT(KC_LSFT), KC_LEFT,KC_RGHT,
- ALT_T(KC_APP), KC_LGUI,
- KC_HOME,
- KC_SPC,KC_BSPC,KC_END,
- // right hand
- KC_RGHT, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS,
- TG(SYMB), KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS,
- KC_H, KC_J, KC_K, KC_L, KC_SCLN,GUI_T(KC_QUOT),
- MEH_T(KC_NO),KC_N, KC_M, KC_COMM,KC_DOT, CTL_T(KC_SLSH), KC_RSFT,
- KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, TG(MDIA),
- KC_LALT, CTL_T(KC_ESC),
- KC_PGUP,
- KC_PGDN,KC_TAB, KC_ENT
- ),
-/* Keymap 1: Symbol Layer
- *
- * ,--------------------------------------------------. ,--------------------------------------------------.
- * | | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | F11 |
- * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | | ! | @ | { | } | | | | | | Up | 7 | 8 | 9 | * | F12 |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | # | $ | ( | ) | ` |------| |------| Down | 4 | 5 | 6 | + | |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | % | ^ | [ | ] | ~ | | | | & | 1 | 2 | 3 | \ | |
- * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * | | | | | | | | . | 0 | = | |
- * `----------------------------------' `----------------------------------'
- * ,-------------. ,-------------.
- * | | | | | |
- * ,------|------|------| |------+------+------.
- * | | | | | | | |
- * | | |------| |------| | |
- * | | | | | | | |
- * `--------------------' `--------------------'
- */
-// SYMBOLS
-[SYMB] = LAYOUT_ergodox(
- // left hand
- KC_TRNS,KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_TRNS,
- KC_TRNS,KC_EXLM,KC_AT, KC_LCBR,KC_RCBR,KC_PIPE,KC_TRNS,
- KC_TRNS,KC_HASH,KC_DLR, KC_LPRN,KC_RPRN,KC_GRV,
- KC_TRNS,KC_PERC,KC_CIRC,KC_LBRC,KC_RBRC,KC_TILD,KC_TRNS,
- KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
- KC_TRNS,KC_TRNS,
- KC_TRNS,
- KC_TRNS,KC_TRNS,KC_TRNS,
- // right hand
- KC_TRNS, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,
- KC_TRNS, KC_UP, KC_7, KC_8, KC_9, KC_ASTR, KC_F12,
- KC_DOWN, KC_4, KC_5, KC_6, KC_PLUS, KC_TRNS,
- KC_TRNS, KC_AMPR, KC_1, KC_2, KC_3, KC_BSLS, KC_TRNS,
- KC_TRNS,KC_DOT, KC_0, KC_EQL, KC_TRNS,
- KC_TRNS, KC_TRNS,
- KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS
-),
-/* Keymap 2: Media and mouse keys
- *
- * ,--------------------------------------------------. ,--------------------------------------------------.
- * | | | | | | | | | | | | | | | |
- * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | | | | MsUp | | | | | | | | | | | |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | |MsLeft|MsDown|MsRght| |------| |------| | | | | | Play |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | | | | | | | | | | Mute | | | | |
- * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * | | | | | | | Prev |VolDn |VolUp | Next | |
- * `----------------------------------' `----------------------------------'
- * ,-------------. ,-------------.
- * | | | | | |
- * ,------|------|------| |------+------+------.
- * | | | | | | |Brwser|
- * | Lclk | Rclk |------| |------| |Back |
- * | | | | | | | |
- * `--------------------' `--------------------'
- */
-// MEDIA AND MOUSE
-[MDIA] = LAYOUT_ergodox(
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_MS_U, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_R, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS,
- KC_TRNS,
- KC_BTN1, KC_BTN2, KC_TRNS,
- // right hand
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY,
- KC_TRNS, KC_TRNS, KC_MUTE, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_MPRV, KC_VOLD, KC_VOLU, KC_MNXT, KC_TRNS,
- KC_TRNS, KC_TRNS,
- KC_TRNS,
- KC_TRNS, KC_TRNS, KC_WBAK
-),
-};
-
-// Runs constantly in the background, in a loop.
-void matrix_scan_user(void) {
-
- uint8_t layer = get_highest_layer(layer_state);
-
- ergodox_board_led_off();
- ergodox_right_led_1_off();
- ergodox_right_led_2_off();
- ergodox_right_led_3_off();
- switch (layer) {
- // TODO: Make this relevant to the ErgoDox EZ.
- case 1:
- ergodox_right_led_1_on();
- break;
- case 2:
- ergodox_right_led_2_on();
- break;
- default:
- // none
- break;
- }
-
-};
diff --git a/layouts/community/ergodox/msc/readme.md b/layouts/community/ergodox/msc/readme.md
deleted file mode 100644
index ff24d2b685..0000000000
--- a/layouts/community/ergodox/msc/readme.md
+++ /dev/null
@@ -1,32 +0,0 @@
-# MSC Configuration
-
-### Based mostly on the ErgoDox EZ default layout with optimizations for coding on osx.
-
-#### Expecting the user to rely on Coder Layer this keymap removes some of the duplicate symbol keys in the lower portions of the board and replaces them with arrow keys and modifiers. The Media Layer is also updated to match the change in the arrow keys and the left and right click buttons are moved under the thumb position. The Media layer is now reached with toggle button in the lower right.
-
-### Main Layer
-
-![Main Layer](https://i.imgur.com/n1Bl4R3.png)
-
-### Code Layer
-
-![Code Layer](https://i.imgur.com/1B0vfpG.png)
-
-### Media Layer
-
-![Media Layer](https://i.imgur.com/CGPyOfj.png)
-
-## Changelog
-
-Version 1.0
-
-- Changed the temp code layer key in the bottom right to toggle media layer
-- Changed the temp media key to only be ";"
-- Changed right hand bottom row to match vim home row nav directions
-- Changed media keys to match arrow key changes
-- Changed media left and right click to spacebar and backspace locations
-- Changed bottom left to Cmd
-- Changed single quote on left bottom row to alt
-
-#### Coming Soon:
-- A new layer for Blender editing with a focus on left hand shortcut and a righthand num pad to control the view in Blender.
diff --git a/layouts/community/ergodox/naps62/keymap.c b/layouts/community/ergodox/naps62/keymap.c
deleted file mode 100644
index e9697497a0..0000000000
--- a/layouts/community/ergodox/naps62/keymap.c
+++ /dev/null
@@ -1,163 +0,0 @@
-#include QMK_KEYBOARD_H
-#include "debug.h"
-#include "action_layer.h"
-
-#define BASE 0 // default layer
-#define SYMB 1 // symbols
-#define MDIA 2 // media keys
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-/* Keymap 0: Basic layer
- *
- * ,--------------------------------------------------. ,--------------------------------------------------.
- * | Esc | 1 ! | 2 @ | 3 # | 4 $ | 5 % | Lang | | Esc | 6 ^ | 7 & | 8 * | 9 ( | 0 ) | Bckspc |
- * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | Tab | Q | W | E | R | T | L2 | | L2 | Y | U | I | O | P | \ | |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | Ctrl | A | S | D | F | G |------| |------| H | J | K | L | ; : | ' " |
- * |--------+------+------+------+------+------| L1 | | L1 |------+------+------+------+------+--------|
- * | LShift | Z | X | C | V | B | | | | N | M | , < | . > | / ? | - _ |
- * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * | L1 | ` ~ | ' " | \ | | L2 | | { | } | [ { | ] } | L1 |
- * `----------------------------------' `----------------------------------'
- * ,--------------. ,---------------.
- * | Home | End | | PgUp |Insert |
- * ,------|-------|------| |-------+-------+------.
- * | | | LGui | | Del | | |
- * | Space| Alt |------| |-------| Enter |Space |
- * | | | LGui | | Bcsp | | |
- * `---------------------' `----------------------'
- */
-// If it accepts an argument (i.e, is a function), it doesn't need KC_.
-// Otherwise, it needs KC_*
-[BASE] = LAYOUT_ergodox( // layer 0 : default
- // left hand
- KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, LGUI(KC_SPC),
- KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, MO(2),
- KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G,
- KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, MO(1),
- MO(1), KC_GRV, KC_QUOT, KC_BSLS, MO(2),
-
- KC_HOME, KC_END,
- KC_LGUI,
- KC_SPC, KC_LALT, KC_LGUI,
-
- // right hand
- KC_ESC, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC,
- MO(2), KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS,
- KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
- MO(1), KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_MINS,
- KC_LCBR, KC_RCBR, KC_LBRC, KC_RBRC, MO(1),
-
- KC_PGUP, KC_INS,
- KC_DEL,
- KC_BSPC, KC_ENT, KC_SPC
-),
-/* Keymap 1: Symbol Layer
- *
- * ,--------------------------------------------------. ,--------------------------------------------------.
- * | | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | F11 |
- * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | | ! | @ | { | } | | | | | | Up | 7 | 8 | 9 | * | F12 |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | # | $ | ( | ) | ` |------| |------| Down | 4 | 5 | 6 | + | |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | % | ^ | [ | ] | ~ | | | | & | 1 | 2 | 3 | \ | |
- * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * | | | | | | | = | . | 0 | - | |
- * `----------------------------------' `----------------------------------'
- * ,-------------. ,-------------.
- * | | | | | |
- * ,------|------|------| |------+------+------.
- * | | | | | | | |
- * | | |------| |------| | |
- * | | | | | | | |
- * `--------------------' `--------------------'
- */
-// SYMBOLS
-[SYMB] = LAYOUT_ergodox(
- // left hand
- KC_TRNS,KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_TRNS,
- KC_TRNS,KC_EXLM,KC_AT, KC_LCBR,KC_RCBR,KC_PIPE,KC_TRNS,
- KC_TRNS,KC_HASH,KC_DLR, KC_LPRN,KC_RPRN,KC_GRV,
- KC_TRNS,KC_PERC,KC_CIRC,KC_LBRC,KC_RBRC,KC_TILD,KC_TRNS,
- KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
- KC_TRNS,KC_TRNS,
- KC_TRNS,
- KC_TRNS,KC_TRNS,KC_TRNS,
- // right hand
- KC_TRNS, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,
- KC_TRNS, KC_UP, KC_7, KC_8, KC_9, KC_ASTR, KC_F12,
- KC_DOWN, KC_4, KC_5, KC_6, KC_PLUS, KC_TRNS,
- KC_TRNS, KC_AMPR, KC_1, KC_2, KC_3, KC_BSLS, KC_TRNS,
- KC_EQL,KC_DOT, KC_0, KC_MINS, KC_TRNS,
- KC_TRNS, KC_TRNS,
- KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS
-),
-/* Keymap 2: Media and mouse keys
- *
- * ,--------------------------------------------------. ,--------------------------------------------------.
- * | | | | | | | | | | | | | | | |
- * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | | |GuiUp | Expl | | Term | | | | | | | | | |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | |GuiLft|GuiDwn|GuiRgt| | |------| |------| Left | Down | Up |Right | |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | | | | |Browsr| | | | |VolDwn|VolUp | Mute | | |
- * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * | | | | Lclk | Rclk | | Play | Prev | Next | | |
- * `----------------------------------' `----------------------------------'
- * ,-------------. ,-------------.
- * | | | | | |
- * ,------|------|------| |------+------+------.
- * | | | | | |Brwser|Brwser|
- * | Lclk | Rclk |------| |------|Fwd |Back |
- * | | | | | | | |
- * `--------------------' `--------------------'
- */
-// MEDIA AND MOUSE
-LAYOUT_ergodox(
- QK_BOOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, LGUI(KC_W), LGUI(KC_E), KC_BTN1, LGUI(KC_T), KC_TRNS,
- KC_TRNS, LGUI(KC_A), LGUI(KC_S), LGUI(KC_D), KC_MS_D, KC_MS_R,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS,
- KC_TRNS,
- KC_BTN1, KC_BTN2, KC_TRNS,
- // right hand
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_VOLD, KC_VOLU, KC_MUTE, KC_TRNS, KC_TRNS,
- KC_MPLY, KC_MPRV, KC_MNXT, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS,
- KC_TRNS,
- KC_TRNS, KC_WBAK, KC_WFWD
-),
-};
-
-// Runs constantly in the background, in a loop.
-void matrix_scan_user(void) {
-
- uint8_t layer = get_highest_layer(layer_state);
-
- ergodox_board_led_off();
- ergodox_right_led_1_off();
- ergodox_right_led_2_off();
- ergodox_right_led_3_off();
- switch (layer) {
- // TODO: Make this relevant to the ErgoDox EZ.
- case 1:
- ergodox_right_led_1_on();
- break;
- case 2:
- ergodox_right_led_2_on();
- break;
- default:
- // none
- break;
- }
-
-};
diff --git a/layouts/community/ergodox/naps62/readme.md b/layouts/community/ergodox/naps62/readme.md
deleted file mode 100644
index 14728e4cc4..0000000000
--- a/layouts/community/ergodox/naps62/readme.md
+++ /dev/null
@@ -1,29 +0,0 @@
-# ErgoDox EZ naps62 Configuration
-
-## Motivation
-
-I wanted a layout that suited my Linux & Vim usage. I also didn't like the lack of efficient access to some of the more common special characters used in programming.
-
-## Key features / changes
-
-### Base Layer (L1)
-
-* **No `MT(mod, kc)` keys (modifier when pressed, key when tapped).** Those keys work with a global timeout. When a key press is shorter than the timeout, it's considered a tap, otherwise it's a hold. I couldn't find any particular timeout that would work for me. I need to use mods extremely fast, but also want the confort of using them more slowly in other occasions. So I gave up on this feature altogether.
-* **Direct access to `{}[]`.** When programming, these are used extremely often. I was still getting used to the coder layer, and I prefer the arrows on the home row, so I used the bottom-right keys for this.
-* **Layer keys everywhere.** I either use my little finger or my index finger to go to L1, whichever is more confortable in any given situation. L2 is not used while coding/writing, so I don't need an extremely-optimized access to it.
-* **Lang key.** This is nothing more than `Super-Space` combo, which in my systems (both Linux & Windows) is the shortcut to change the keyboard language. I'm Portuguese, so I often cycle between US layout for coding, and PT layout for writing.
-* **Special chars on the right-most column.** I only use Ctrl & Shift keys on the left side, so I used the right keys to include some of the more useful special characters as well.
-
-### Coder Layer (L2)
-
-* The `=` and `-` signs where nowhere to be found. `-` was already on the base layer, but it's still useful to have a fully-featured NumPad on the coder layer.
-
-### Media Layer (L3)
-
-* **Better media keys**. Why was Play/Pause so far away? And where was Mute? I put all my media keys close to each other, including the missing ones
-* **Arrow keys on home row.** I use vim, so I'm always on my home row. I use this sometimes to get around, but not as often as to need them on the base row. I'm fine with them here
-* I don't use mouse keys. They're still set up, and I made some changes as an experiment, but I mostly forgot they exist by now.
-
-## Author
-
-[Miguel Palhas](https://github.com/naps62)
diff --git a/layouts/community/ergodox/neo2_on_qwertz_hardware/keymap.c b/layouts/community/ergodox/neo2_on_qwertz_hardware/keymap.c
deleted file mode 100644
index 7c57820c43..0000000000
--- a/layouts/community/ergodox/neo2_on_qwertz_hardware/keymap.c
+++ /dev/null
@@ -1,384 +0,0 @@
-#include QMK_KEYBOARD_H
-#include "action_layer.h"
-#include "keymap_extras/keymap_german.h"
-
-#define UM 0
-
-#define L0 0 // layer_0
-#define L1 1 // layer_1
-#define L2 2 // layer_2
-#define L3 3 // layer_3
-#define L4 4 // layer_4
-#define L5 5 // layer_5
-#define L6 6 // layer_6
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-/*
- .------------------------------------.------------------------------------.
- |ESC | 1 | 2 | 3 | 4 | 5 | ´ | ` | 6 | 7 | 8 | 9 | 0 | ^ |
- !-----+----+----+----+----+----------!-----+----+----+----+----+----+-----!
- |TAB | X | V | L | C | W |Print| | K | H | G | F | Q | ß |
- !-----+----+----+----x----x----! ! !----x----x----+----+----+-----!
- |MO(1)| U | I | A | E | O |-----!-----! S | N | R | T | D | Y |
- !-----+----+----+----x----x----! ! !----x----x----+----+----+-----!
- |LSFT | ü | ö | ä | P | Z |SPACE| | B | M | , | . | J |RSFT |
- '-----+----+----+----+----+----------'----------+----+----+----+----+-----'
- |LCTL|LGUI|LALT|MO(3)|MO(2)| !MO(2)|MO(3)|APP |RALT|RCTL|
- '------------------------' '------------------------'
- .-----------. .-----------.
- |VOL- |VOL+ | !MUTE |PLAY |
- .-----+-----+-----! !-----+-----+-----.
- ! ! | | ! | ! !
- ! ! |-----| !-----| ! !
- ! CTL ! ! ALT ! ! CTL ! ! ALT !
- |ENTER|MO(1)| TAB | !ESC |MO(1)|SPACE|
- '-----------------' '-----------------'
- */
-[L0] = LAYOUT_ergodox(
- KC_ESC, DE_1, DE_2, DE_3, DE_4, DE_5, DE_ACUT,
- KC_TAB, DE_X, DE_V, DE_L, DE_C, DE_W, KC_PSCR,
- MO(1), DE_U, DE_I, DE_A, DE_E, DE_O,
- KC_LSFT, DE_UDIA, DE_ODIA, DE_ADIA, DE_P, DE_Z, KC_SPACE,
- KC_LCTL, KC_LGUI, KC_LALT, MO(3), MO(2),
- /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_VOLD, KC_VOLU,
- /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_TRNS,
- /*-*/ /*-*/ /*-*/ /*-*/ CTL_T(KC_ENTER), MO(1), ALT_T(KC_TAB),
- DE_GRV, DE_6, DE_7, DE_8, DE_9, DE_0, DE_CIRC,
- KC_TRNS, DE_K, DE_H, DE_G, DE_F, DE_Q, DE_SS,
- /*-*/ DE_S, DE_N, DE_R, DE_T, DE_D, DE_Y,
- KC_TRNS, DE_B, DE_M, DE_COMM, DE_DOT, DE_J, KC_RSFT,
- /*-*/ /*-*/ MO(2), MO(3), KC_APP, KC_RALT, KC_RCTL,
- KC_MUTE, KC_MPLY,
- KC_TRNS,
- CTL_T(KC_ESC), MO(1), ALT_T(KC_SPACE)
-),
-/*
- .------------------------------------.------------------------------------.
- | | | | | | | | | | | | | | |
- !-----+----+----+----+----+----------!-----+----+----+----+----+----+-----!
- | | € | _ | [ | ] | | | | ! | < | > | = | & | |
- !-----+----+----+----x----x----! ! !----x----x----+----+----+-----!
- | | \ | / | { | } | * |-----!-----! ? | ( | ) | - | : | @ |
- !-----+----+----+----x----x----! ! !----x----x----+----+----+-----!
- | | # | $ | | | ~ | | | | + | % | " | ' | ; | |
- '-----+----+----+----+----+----------'----------+----+----+----+----+-----'
- | | | | | | ! | | | | |
- '------------------------' '------------------------'
- .-----------. .-----------.
- | | | ! | |
- .-----+-----+-----! !-----+-----+-----.
- ! ! | | ! | ! !
- ! ! !-----! !-----! ! !
- | | | | ! | | |
- '-----------------' '-----------------'
- */
-[L1] = LAYOUT_ergodox(
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, DE_EURO, DE_UNDS, DE_LBRC, DE_RBRC, KC_TRNS, KC_TRNS,
- KC_TRNS, DE_BSLS, DE_SLSH, DE_LCBR, DE_RCBR, DE_ASTR,
- KC_TRNS, DE_HASH, DE_DLR, DE_PIPE, DE_TILD, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_TRNS, KC_TRNS,
- /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_TRNS,
- /*-*/ /*-*/ /*-*/ /*-*/ KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, DE_EXLM, DE_LABK, DE_RABK, DE_EQL, DE_AMPR, KC_TRNS,
- /*-*/ DE_QUES, DE_LPRN, DE_RPRN, DE_MINS, DE_COLN, DE_AT,
- KC_TRNS, DE_PLUS, DE_PERC, DE_DQUO, DE_QUOT, DE_SCLN, KC_TRNS,
- /*-*/ /*-*/ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS,
- KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS
-),
-/*
- * .------------------------------------.------------------------------------.
- * | | | | | | | | | | | | | | |
- * !-----+----+----+----+----+----------!-----+----+----+----+----+----+-----!
- * | |PGUP|BSPC| UP |DEL |PGDN| | | | 7 | 8 | 9 | | |
- * !-----+----+----+----x----x----! ! !----x----x----+----+----+-----!
- * | |HOME|LEFT|DOWN|RGHT|END |-----!-----! | 4 | 5 | 6 | | |
- * !-----+----+----+----x----x----! ! !----x----x----+----+----+-----!
- * | | | |PREV|NEXT| | | | | 1 | 2 | 3 | | |
- * '-----+----+----+----+----+----------'----------+----+----+----+----+-----'
- * | | | | | | ! | | | | |
- * '------------------------' '------------------------'
- * .-----------. .-----------.
- * | | | ! | |
- * .-----+-----+-----! !-----+-----+-----.
- * ! ! | | ! | ! !
- * ! ! !-----! !-----! ! !
- * | | | | ! | | 0 |
- * '-----------------' '-----------------'
- */
-[L2] = LAYOUT_ergodox(
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_PGUP, KC_BSPC, KC_UP, KC_DEL, KC_PGDN, KC_TRNS,
- KC_TRNS, KC_HOME, KC_LEFT, KC_DOWN, KC_RGHT, KC_END,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_MPRV, KC_MNXT, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_TRNS, KC_TRNS,
- /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_TRNS,
- /*-*/ /*-*/ /*-*/ /*-*/ KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, DE_7, DE_8, DE_9, KC_TRNS, KC_TRNS,
- /*-*/ KC_TRNS, DE_4, DE_5, DE_6, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, DE_1, DE_2, DE_3, KC_TRNS, KC_TRNS,
- /*-*/ /*-*/ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS,
- KC_TRNS,
- KC_TRNS, KC_TRNS, DE_0
-),
-/*
- * .------------------------------------.------------------------------------.
- * | | F1 | F2 | F3 | F4 | F5 | F6 | | | | | | | |
- * !-----+----+----+----+----+----------!-----+----+----+----+----+----+-----!
- * | | F7 | F8 | F9 | F10| F11| F12 | | |M_WU|M_CU|M_WD| | |
- * !-----+----+----+----x----x----! ! !----x----x----+----+----+-----!
- * |M_B5 |M_B4|M_B3|M_B2|M_B1| |-----!-----! |M_CL|M_CD|M_CR| | |
- * !-----+----+----+----x----x----! ! !----x----x----+----+----+-----!
- * | | |M_A2|M_A1|M_A0| | | | | | | | | |
- * '-----+----+----+----+----+----------'----------+----+----+----+----+-----'
- * | | | | | | ! | | | | |
- * '------------------------' '------------------------'
- * .-----------. .-----------.
- * | | | ! | |
- * .-----+-----+-----! !-----+-----+-----.
- * ! ! | | ! | ! !
- * ! ! !-----! !-----! ! !
- * | | | | ! | | |
- * '-----------------' '-----------------'
- */
-[L3] = LAYOUT_ergodox(
- KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6,
- KC_TRNS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,
- KC_BTN5, KC_BTN4, KC_BTN3, KC_BTN2, KC_BTN1, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_ACL2, KC_ACL1, KC_ACL0, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_TRNS, KC_TRNS,
- /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_TRNS,
- /*-*/ /*-*/ /*-*/ /*-*/ KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_WH_U, KC_MS_U, KC_WH_D, KC_TRNS, KC_TRNS,
- /*-*/ KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_R, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- /*-*/ /*-*/ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS,
- KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS
-),
-/*
- * .------------------------------------.------------------------------------.
- * | | | | | | | | | | | | | | |
- * !-----+----+----+----+----+----------!-----+----+----+----+----+----+-----!
- * | | | | | | | | | | | | | | |
- * !-----+----+----+----x----x----! ! !----x----x----+----+----+-----!
- * | | | | | | |-----!-----! | | | | | |
- * !-----+----+----+----x----x----! ! !----x----x----+----+----+-----!
- * | | | | | | | | | | | | | | |
- * '-----+----+----+----+----+----------'----------+----+----+----+----+-----'
- * | | | | | | ! | | | | |
- * '------------------------' '------------------------'
- * .-----------. .-----------.
- * | | | ! | |
- * .-----+-----+-----! !-----+-----+-----.
- * ! ! | | ! | ! !
- * ! ! !-----! !-----! ! !
- * | | | | ! | | |
- * '-----------------' '-----------------'
- */
-[L4] = LAYOUT_ergodox(
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_TRNS, KC_TRNS,
- /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_TRNS,
- /*-*/ /*-*/ /*-*/ /*-*/ KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- /*-*/ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- /*-*/ /*-*/ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS,
- KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS
-),
-/*
- * .------------------------------------.------------------------------------.
- * | | | | | | | | | | | | | | |
- * !-----+----+----+----+----+----------!-----+----+----+----+----+----+-----!
- * | | | | | | | | | | | | | | |
- * !-----+----+----+----x----x----! ! !----x----x----+----+----+-----!
- * | | | | | | |-----!-----! | | | | | |
- * !-----+----+----+----x----x----! ! !----x----x----+----+----+-----!
- * | | | | | | | | | | | | | | |
- * '-----+----+----+----+----+----------'----------+----+----+----+----+-----'
- * | | | | | | ! | | | | |
- * '------------------------' '------------------------'
- * .-----------. .-----------.
- * | | | ! | |
- * .-----+-----+-----! !-----+-----+-----.
- * ! ! | | ! | ! !
- * ! ! !-----! !-----! ! !
- * | | | | ! | | |
- * '-----------------' '-----------------'
- */
-[L5] = LAYOUT_ergodox(
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_TRNS, KC_TRNS,
- /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_TRNS,
- /*-*/ /*-*/ /*-*/ /*-*/ KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- /*-*/ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- /*-*/ /*-*/ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS,
- KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS
-),
-/*
- * .------------------------------------.------------------------------------.
- * | | | | | | | | | | | | | | |
- * !-----+----+----+----+----+----------!-----+----+----+----+----+----+-----!
- * | | | | | | | | | | | | | | |
- * !-----+----+----+----x----x----! ! !----x----x----+----+----+-----!
- * | | | | | | |-----!-----! | | | | | |
- * !-----+----+----+----x----x----! ! !----x----x----+----+----+-----!
- * | | | | | | | | | | | | | | |
- * '-----+----+----+----+----+----------'----------+----+----+----+----+-----'
- * | | | | | | ! | | | | |
- * '------------------------' '------------------------'
- * .-----------. .-----------.
- * | | | ! | |
- * .-----+-----+-----! !-----+-----+-----.
- * ! ! | | ! | ! !
- * ! ! !-----! !-----! ! !
- * | | | | ! | | |
- * '-----------------' '-----------------'
- */
-[L6] = LAYOUT_ergodox(
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_TRNS, KC_TRNS,
- /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_TRNS,
- /*-*/ /*-*/ /*-*/ /*-*/ KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- /*-*/ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- /*-*/ /*-*/ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS,
- KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS
-),
-};
-
-#define UC_MODE_WIN 0
-#define UC_MODE_LINUX 1
-#define UC_MODE_OSX 2
-
-// TODO: allow default mode to be configured
-static uint16_t unicode_mode = UC_MODE_WIN;
-
-uint16_t hextokeycode(uint8_t hex) {
- if (hex == 0x0) {
- return KC_P0;
- }
- if (hex < 0xA) {
- return KC_P1 + (hex - 0x1);
- }
- return KC_A + (hex - 0xA);
-}
-
-void unicode_action_function(uint16_t hi, uint16_t lo) {
- switch (unicode_mode) {
- case UC_MODE_WIN:
- register_code(KC_LALT);
-
- register_code(KC_PPLS);
- unregister_code(KC_PPLS);
-
- register_code(hextokeycode((hi & 0xF0) >> 4));
- unregister_code(hextokeycode((hi & 0xF0) >> 4));
- register_code(hextokeycode((hi & 0x0F)));
- unregister_code(hextokeycode((hi & 0x0F)));
- register_code(hextokeycode((lo & 0xF0) >> 4));
- unregister_code(hextokeycode((lo & 0xF0) >> 4));
- register_code(hextokeycode((lo & 0x0F)));
- unregister_code(hextokeycode((lo & 0x0F)));
-
- unregister_code(KC_LALT);
- break;
- case UC_MODE_LINUX:
- register_code(KC_LCTL);
- register_code(KC_LSFT);
-
- register_code(KC_U);
- unregister_code(KC_U);
-
- register_code(hextokeycode((hi & 0xF0) >> 4));
- unregister_code(hextokeycode((hi & 0xF0) >> 4));
- register_code(hextokeycode((hi & 0x0F)));
- unregister_code(hextokeycode((hi & 0x0F)));
- register_code(hextokeycode((lo & 0xF0) >> 4));
- unregister_code(hextokeycode((lo & 0xF0) >> 4));
- register_code(hextokeycode((lo & 0x0F)));
- unregister_code(hextokeycode((lo & 0x0F)));
-
- unregister_code(KC_LCTL);
- unregister_code(KC_LSFT);
- break;
- case UC_MODE_OSX:
- break;
- }
-}
-
-// Runs constantly in the background, in a loop.
-void matrix_scan_user(void) {
- uint8_t layer = get_highest_layer(layer_state);
-
- ergodox_board_led_off();
- ergodox_right_led_1_off();
- ergodox_right_led_2_off();
- ergodox_right_led_3_off();
- switch (layer) {
- case L1:
- ergodox_right_led_1_on();
- break;
- case L2:
- ergodox_right_led_2_on();
- break;
- case L3:
- ergodox_right_led_3_on();
- break;
- case L4:
- ergodox_right_led_1_on();
- ergodox_right_led_2_on();
- break;
- case L5:
- ergodox_right_led_1_on();
- ergodox_right_led_3_on();
- break;
- // case L6:
- // ergodox_right_led_2_on();
- // ergodox_right_led_3_on();
- // break;
- // case L7:
- // ergodox_right_led_1_on();
- // ergodox_right_led_2_on();
- // ergodox_right_led_3_on();
- // break;
- default:
- ergodox_board_led_off();
- break;
- }
-};
diff --git a/layouts/community/ergodox/neo2_on_qwertz_hardware/keymap.md b/layouts/community/ergodox/neo2_on_qwertz_hardware/keymap.md
deleted file mode 100644
index d9fcda9661..0000000000
--- a/layouts/community/ergodox/neo2_on_qwertz_hardware/keymap.md
+++ /dev/null
@@ -1,194 +0,0 @@
-# Neo2 for ErgoDox on QWERTZ
-#
-# Description
-This layout is ment to be used on PCs with DE-de with an additional guest keyboard. E.g. on your PC at work you can use your ergodox with neo but a second keybord is plugged in so your coworkers can enter a few signs if necessary. I live in Germany, so this is my usecase.
-# Layers
-[Layer0](#layer-0)
-Letters, modifiers and volume
-
-[Layer1](#layer-1)
-Symbols
-
-[Layer2](#layer-2)
-Motion, digits and next/prev Song
-
-[Layer3](#layer-3)
-F1 to F12 and mouse actions
-
-[Layer4](#layer-4)
-not used
-
-[Layer5](#layer-5)
-not used
-
-[Layer6](#layer-6)
-not used
-
-
-## Layer 0
-
- .------------------------------------.------------------------------------.
- |ESC | 1 | 2 | 3 | 4 | 5 | ´ | ` | 6 | 7 | 8 | 9 | 0 | ^ |
- !-----+----+----+----+----+----------!-----+----+----+----+----+----+-----!
- |TAB | X | V | L | C | W |Print| | K | H | G | F | Q | ß |
- !-----+----+----+----x----x----! ! !----x----x----+----+----+-----!
- |MO(1)| U | I | A | E | O |-----!-----! S | N | R | T | D | Y |
- !-----+----+----+----x----x----! ! !----x----x----+----+----+-----!
- |LSFT | ü | ö | ä | P | Z |SPACE| | B | M | , | . | J |RSFT |
- '-----+----+----+----+----+----------'----------+----+----+----+----+-----'
- |LCTL|LGUI|LALT|MO(3)|MO(2)| !MO(2)|MO(3)|APP |RALT|RCTL|
- '------------------------' '------------------------'
- .-----------. .-----------.
- |VOL- |VOL+ | !MUTE |PLAY |
- .-----+-----+-----! !-----+-----+-----.
- ! ! | | ! | ! !
- ! ! |-----| !-----| ! !
- ! CTL ! ! ALT ! ! CTL ! ! ALT !
- |ENTER|MO(1)| TAB | !ESC |MO(1)|SPACE|
- '-----------------' '-----------------'
-
-* Left side ESC, TAB, [SymbolLayer], Shift, Ctr, Gui(Windows key), and Alt like normal QWERTZ with neo2.
-* Space on right side of left half for mous activity so you don't have to leave the mouse for Space.
-* Top row of thumb keys is hard to reach for me, so I put media control on there.
-* Thumb keys make use of modifier/tap. E.g. if you tap the Enter key it will be Enter. If you keep it pressed down it will be Ctr. The hold action is written on top of the tap action.
-* The small middle thumb keys are not used, es well as the 1.5 sized ones on the left side of the right half.
-
-
-## Layer 1
-
- .------------------------------------.------------------------------------.
- | | | | | | | | | | | | | | |
- !-----+----+----+----+----+----------!-----+----+----+----+----+----+-----!
- | | € | _ | [ | ] | | | | ! | < | > | = | & | |
- !-----+----+----+----x----x----! ! !----x----x----+----+----+-----!
- | | \ | / | { | } | * |-----!-----! ? | ( | ) | - | : | @ |
- !-----+----+----+----x----x----! ! !----x----x----+----+----+-----!
- | | # | $ | | | ~ | | | | + | % | " | ' | ; | |
- '-----+----+----+----+----+----------'----------+----+----+----+----+-----'
- | | | | | | ! | | | | |
- '------------------------' '------------------------'
- .-----------. .-----------.
- | | | ! | |
- .-----+-----+-----! !-----+-----+-----.
- ! ! | | ! | ! !
- ! ! !-----! !-----! ! !
- | | | | ! | | |
- '-----------------' '-----------------'
-
-
-## Layer 2
-
- .------------------------------------.------------------------------------.
- | | | | | | | | | | | | | | |
- !-----+----+----+----+----+----------!-----+----+----+----+----+----+-----!
- | |PGUP|BSPC| UP |DEL |PGDN| | | | 7 | 8 | 9 | | |
- !-----+----+----+----x----x----! ! !----x----x----+----+----+-----!
- | |HOME|LEFT|DOWN|RGHT|END |-----!-----! | 4 | 5 | 6 | | |
- !-----+----+----+----x----x----! ! !----x----x----+----+----+-----!
- | | | |PREV|NEXT| | | | | 1 | 2 | 3 | | |
- '-----+----+----+----+----+----------'----------+----+----+----+----+-----'
- | | | | | | ! | | | | |
- '------------------------' '------------------------'
- .-----------. .-----------.
- | | | ! | |
- .-----+-----+-----! !-----+-----+-----.
- ! ! | | ! | ! !
- ! ! !-----! !-----! ! !
- | | | | ! | | 0 |
- '-----------------' '-----------------'
-
-
-
-## Layer 3
-
- .------------------------------------.------------------------------------.
- | | F1 | F2 | F3 | F4 | F5 | F6 | | | | | | | |
- !-----+----+----+----+----+----------!-----+----+----+----+----+----+-----!
- | | F7 | F8 | F9 | F10| F11| F12 | | |M_WU|M_CU|M_WD| | |
- !-----+----+----+----x----x----! ! !----x----x----+----+----+-----!
- |M_B5 |M_B4|M_B3|M_B2|M_B1| |-----!-----! |M_CL|M_CD|M_CR| | |
- !-----+----+----+----x----x----! ! !----x----x----+----+----+-----!
- | | |M_A2|M_A1|M_A0| | | | | | | | | |
- '-----+----+----+----+----+----------'----------+----+----+----+----+-----'
- | | | | | | ! | | | | |
- '------------------------' '------------------------'
- .-----------. .-----------.
- | | | ! | |
- .-----+-----+-----! !-----+-----+-----.
- ! ! | | ! | ! !
- ! ! !-----! !-----! ! !
- | | | | ! | | |
- '-----------------' '-----------------'
-* M_A Mouse acceleration
-* M_B Mouse button
-* M_C Mouse cursor
-* M_W Mouse wheel
-
-## Layer 4
-
-
-
- .------------------------------------.------------------------------------.
- | | | | | | | | | | | | | | |
- !-----+----+----+----+----+----------!-----+----+----+----+----+----+-----!
- | | | | | | | | | | | | | | |
- !-----+----+----+----x----x----! ! !----x----x----+----+----+-----!
- | | | | | | |-----!-----! | | | | | |
- !-----+----+----+----x----x----! ! !----x----x----+----+----+-----!
- | | | | | | | | | | | | | | |
- '-----+----+----+----+----+----------'----------+----+----+----+----+-----'
- | | | | | | ! | | | | |
- '------------------------' '------------------------'
- .-----------. .-----------.
- | | | ! | |
- .-----+-----+-----! !-----+-----+-----.
- ! ! | | ! | ! !
- ! ! !-----! !-----! ! !
- | | | | ! | | |
- '-----------------' '-----------------'
-
-
-## Layer 5
-
-
- .------------------------------------.------------------------------------.
- | | | | | | | | | | | | | | |
- !-----+----+----+----+----+----------!-----+----+----+----+----+----+-----!
- | | | | | | | | | | | | | | |
- !-----+----+----+----x----x----! ! !----x----x----+----+----+-----!
- | | | | | | |-----!-----! | | | | | |
- !-----+----+----+----x----x----! ! !----x----x----+----+----+-----!
- | | | | | | | | | | | | | | |
- '-----+----+----+----+----+----------'----------+----+----+----+----+-----'
- | | | | | | ! | | | | |
- '------------------------' '------------------------'
- .-----------. .-----------.
- | | | ! | |
- .-----+-----+-----! !-----+-----+-----.
- ! ! | | ! | ! !
- ! ! !-----! !-----! ! !
- | | | | ! | | |
- '-----------------' '-----------------'
-
-
-## Layer 6
-
- .------------------------------------.------------------------------------.
- | | | | | | | | | | | | | | |
- !-----+----+----+----+----+----------!-----+----+----+----+----+----+-----!
- | | | | | | | | | | | | | | |
- !-----+----+----+----x----x----! ! !----x----x----+----+----+-----!
- | | | | | | |-----!-----! | | | | | |
- !-----+----+----+----x----x----! ! !----x----x----+----+----+-----!
- | | | | | | | | | | | | | | |
- '-----+----+----+----+----+----------'----------+----+----+----+----+-----'
- | | | | | | ! | | | | |
- '------------------------' '------------------------'
- .-----------. .-----------.
- | | | ! | |
- .-----+-----+-----! !-----+-----+-----.
- ! ! | | ! | ! !
- ! ! !-----! !-----! ! !
- | | | | ! | | |
- '-----------------' '-----------------'
-
diff --git a/layouts/community/ergodox/norwegian_programmer_osx_pc/keymap.c b/layouts/community/ergodox/norwegian_programmer_osx_pc/keymap.c
deleted file mode 100644
index 2ddd7ab209..0000000000
--- a/layouts/community/ergodox/norwegian_programmer_osx_pc/keymap.c
+++ /dev/null
@@ -1,201 +0,0 @@
-#include QMK_KEYBOARD_H
-#include "debug.h"
-#include "action_layer.h"
-#include "keymap_norwegian.h"
-
-#define BASE 0 // default layer
-#define BASE_MAC 1 // default layer mac
-#define NUMB_FUNC 2 // numbers and function keys
-
-enum custom_keycodes {
- TILDE_NO = SAFE_RANGE,
- LESS_NO,
- GRTR_NO,
- CIRC_NO,
- ACUT_NO,
- GRV_NO,
- LESS_NO_MAC,
- GRTR_NO_MAC,
- ACUT_NO_MAC
-};
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
-/* Keymap 0: Basic layer PC
- *
- * ,--------------------------------------------------. ,--------------------------------------------------.
- * | * | [ | ] | { | } | ~ |Mac/PC| | ^ | $ | ( | ) | < | > | @ |
- * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | + | Q | W | E | R | T | " | | ' | Y | U | I | O | P | Å |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | / | A | S | D | F | G |------| |------| H | J | K | L | Ø | Æ |
- * |--------+------+------+------+------+------| ; | | = |------+------+------+------+------+--------|
- * | - | Z | X | C | V | B | | | | N | M | RIGHT| DOWN | UP | _ |
- * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * |Alt/esc| ! | ? | : | TAB | | LEFT | _ | & | | |Num/fn|
- * `----------------------------------' `----------------------------------'
- * ,-------------. ,--------------.
- * | # | ` | |Insert| % |
- * ,------|------|------| |------+-------+------.
- * | | | ´ | | Del | | |
- * | Shift|Ctrl/.|------| |------| Enter |Space |
- * | | |GUI/, | | Bspc | | |
- * `--------------------' `---------------------'
- */
-[BASE] = LAYOUT_ergodox(
- // left hand
- KC_PAST, NO_LBRC, NO_RBRC, NO_LCBR, NO_RCBR, TILDE_NO, TG(1),
- KC_PPLS, KC_Q, KC_W, KC_E, KC_R, KC_T, NO_DQUO,
- KC_PSLS, KC_A, KC_S, KC_D, KC_F, KC_G,
- KC_PMNS, KC_Z, KC_X, KC_C, KC_V, KC_B, NO_SCLN,
- ALT_T(KC_ESC), KC_EXLM , NO_QUES, NO_COLN, KC_TAB,
- KC_HASH, GRV_NO,
- ACUT_NO,
- OSM(MOD_LSFT),CTL_T(KC_DOT),GUI_T(KC_COMMA),
- // right hand
- CIRC_NO, NO_DLR, NO_LPRN, NO_RPRN ,LESS_NO, GRTR_NO,NO_AT,
- NO_QUOT, KC_Y, KC_U, KC_I, KC_O, KC_P, NO_ARNG,
- KC_H, KC_J, KC_K, KC_L, NO_OSTR, NO_AE,
- NO_EQL, KC_N, KC_M, KC_RIGHT, KC_DOWN, KC_UP, NO_BSLS,
- KC_LEFT, NO_UNDS, NO_AMPR, NO_PIPE, OSL(2),
- KC_INSERT, KC_PERC,
- KC_DEL,
- KC_BSPC,KC_ENT,KC_SPC
- ),
-/* Keymap 1: Basic layer MACS (Same as pc, except for cmd/ctrl, which are swapped)
- *
- * ,--------------------------------------------------. ,--------------------------------------------------.
- * | \ | | | { | } | | | | | $ | | | < | > | @ |
- * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | | | | | | | | | | | | | | | |
- * |--------+------+------+------+------+------| | | ' |------+------+------+------+------+--------|
- * | | | | | | |------| |------| | | | | | |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | | | | | | | | | | | | | | |
- * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * | | | | |,/Ctrl| | | | ` | |Num/fn|
- * `----------------------------------' `----------------------------------'
- * ,-------------. ,-------------.
- * | | ` | | | |
- * ,------|------|------| |------+------+------.
- * | | | ´ | | | | |
- * | |GUI/. |------| |------| | |
- * | | |crtl/,| | | | |
- * `--------------------' `--------------------'
- */
-[BASE_MAC] = LAYOUT_ergodox(
- KC_TRNS, KC_TRNS,KC_TRNS, S(ALGR(NO_8)),S(ALGR(NO_9)), KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS , KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, ALGR(NO_BSLS),
- ACUT_NO_MAC,
- KC_TRNS,GUI_T(KC_DOT) , CTL_T(KC_COMMA),
- // right hand
- KC_TRNS, S(NO_4), KC_TRNS,KC_TRNS,LESS_NO_MAC, GRTR_NO_MAC,NO_QUOT,
- NO_LABK, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, S(ALGR(NO_7)),
- KC_TRNS, KC_TRNS, KC_TRNS, ALGR(NO_7), OSL(2),
- KC_TRNS, KC_TRNS,
- KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS
-),
-
-/* Keymap 2: Number ++´ánd Fn layer
- *
- * ,--------------------------------------------------. ,--------------------------------------------------.
- * | | | | | | | | | | | F9 | F10 | F11 | F12 | |
- * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | | 8 | 7 | 6 | 5 | 9 | | | | | F5 | F6 | F7 | F8 | |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | 4 | 3 | 2 | 1 | 0 |------| |------| | F1 | F2 | F3 | F4 | |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | | | | | | | | | | | END | PGDWN| PGUP | |
- * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * | | | | | | | HOME | | | | |
- * `----------------------------------' `----------------------------------'
- * ,-------------. ,-------------.
- * | | | | | |
- * ,------|------|------| |------+------+------.
- * | | | | | | | |
- * | | |------| |------| | |
- * | | | | | | | |
- * `--------------------' `--------------------'
- */
-[NUMB_FUNC] = LAYOUT_ergodox(
- NO_ASTR, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- NO_PLUS, KC_8, KC_7,KC_6,KC_5, KC_9 , KC_TRNS,
- NO_SLSH , KC_4 , KC_3 , KC_2 , KC_1 , KC_0,
- NO_MINS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS,
- KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS,
- // right hand
- KC_TRNS, KC_TRNS, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_F5, KC_F6 , KC_F7, KC_F8, KC_TRNS,
- KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_TRNS,
- KC_TRNS, KC_HOME, KC_TRNS, KC_END, KC_PGDN, KC_PGUP, KC_TRNS,
- KC_HOME, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS,
- KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS
-)
-};
-
-bool process_record_user(uint16_t keycode, keyrecord_t *record) {
- switch (keycode) {
- case TILDE_NO:
- if (record->event.pressed) {
- tap_code16(ALGR(KC_RBRC));
- tap_code(KC_SPC);
- }
- return false;
- case LESS_NO:
- if (record->event.pressed) {
- tap_code(KC_NUBS);
- }
- return false;
- case GRTR_NO:
- if (record->event.pressed) {
- tap_code16(S(KC_NUBS));
- }
- return false;
- case CIRC_NO:
- if (record->event.pressed) {
- tap_code16(S(KC_RBRC));
- tap_code(KC_SPC);
- }
- return false;
- case ACUT_NO:
- if (record->event.pressed) {
- tap_code16(ALGR(KC_EQL));
- tap_code(KC_SPC);
- }
- return false;
- case GRV_NO:
- if (record->event.pressed) {
- SEND_STRING(SS_LSFT("= "));
- }
- return false;
- case LESS_NO_MAC:
- if (record->event.pressed) {
- tap_code(KC_GRV);
- }
- return false;
- case GRTR_NO_MAC:
- if (record->event.pressed) {
- tap_code16(S(KC_GRV));
- }
- return false;
- case ACUT_NO_MAC:
- if (record->event.pressed) {
- tap_code(KC_EQL);
- tap_code(KC_SPC);
- }
- return false;
- }
- return true;
-}
diff --git a/layouts/community/ergodox/norwegian_programmer_osx_pc/readme.md b/layouts/community/ergodox/norwegian_programmer_osx_pc/readme.md
deleted file mode 100644
index 444f2e9207..0000000000
--- a/layouts/community/ergodox/norwegian_programmer_osx_pc/readme.md
+++ /dev/null
@@ -1,30 +0,0 @@
-# Norwegian setup with osx/pc toggle
-
-## Motivation
-I wanted a Norwegian setup that worked in a similar way on both my Mac and PC. I also wanted the keyboard to translate from a standard Norwegian keyboard OS setup.
-
-## Overview
-The setup is created to be programmer friendly.
-- Most of the symbols used in code can be activated without using layers or shift key.
-- You can reach the IDE/OS shortcut activators(Ctrl, Win/Cmd, Alt, Shift) with the thumb or the wrist.
-- Navigation is prioritized, arrows below the home row.
-
-## PC/Mac toggle
-The default setup is for Norwegian keyboard setting(on a PC(Windows or Linux) or Mac. Use the Mac/PC toggle button to switch between OSX and PC setup. The settings will be reverted to PC setup each time you restart/connect the keyboard.
-
-## Layers
-Since symbols are prioritized in this setup, numbers and function keys are on a new layer. The easiest way to use the layer switch(and also the alt key), is to push your hand right below the little finger, on the key. You will then have all your fingers free to type numbers or press function keys.
-
-## Tap-shift
-Tap for the next character to be shifted, hold down for regular shift.
-
-## Comma dot and escape
-Comma, dot and escape share buttons with modifier keys. Tap to access these keys, hold down to use the keys as modifier keys.
-
-## Numpad symbols
-+-/* are implemented with the numpad keycodes. The benefit is that they will work better with shortcuts in certain programs. For some reason, the default setting in the osx terminal is to not accept numpad characters for '/' and '-'. For a solution, see https://discussions.apple.com/thread/6613968?start=0&tstart=0.
-If you really need the norwegian symbols in a program, you can access them using the number toggle button.
-
-## Layout
-
-![keyboard-layout](https://i.imgur.com/Qz3E9po.png)
diff --git a/layouts/community/ergodox/norwegian_programmer_osx_pc_colemak/keymap.c b/layouts/community/ergodox/norwegian_programmer_osx_pc_colemak/keymap.c
deleted file mode 100644
index 5ca8d40db0..0000000000
--- a/layouts/community/ergodox/norwegian_programmer_osx_pc_colemak/keymap.c
+++ /dev/null
@@ -1,201 +0,0 @@
-#include QMK_KEYBOARD_H
-#include "debug.h"
-#include "action_layer.h"
-#include "keymap_norwegian.h"
-
-#define BASE 0 // default layer
-#define BASE_MAC 1 // default layer mac
-#define NUMB_FUNC 2 // numbers and function keys
-
-enum custom_keycodes {
- TILDE_NO = SAFE_RANGE,
- LESS_NO,
- GRTR_NO,
- CIRC_NO,
- ACUT_NO,
- GRV_NO,
- LESS_NO_MAC,
- GRTR_NO_MAC,
- ACUT_NO_MAC
-};
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
-/* Keymap 0: Basic layer PC
- *
- * ,--------------------------------------------------. ,--------------------------------------------------.
- * | * | [ | ] | { | } | ~ |Mac/PC| | ^ | $ | ( | ) | < | > | @ |
- * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | + | Q | W | F | P | G | " | | ' | J | L | U | Y | Å | Æ |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | / | A | R | S | T | D |------| |------| H | N | E | I | O | Ø |
- * |--------+------+------+------+------+------| ; | | = |------+------+------+------+------+--------|
- * | - | Z | X | C | V | B | | | | K | M | RIGHT| DOWN | UP | _ |
- * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * |Alt/esc| ! | ? | : | TAB | | LEFT | _ | & | | |Num/fn|
- * `----------------------------------' `----------------------------------'
- * ,-------------. ,--------------.
- * | # | ` | |Insert| % |
- * ,------|------|------| |------+-------+------.
- * | | | ´ | | Del | | |
- * | Shift|Ctrl/.|------| |------| Enter |Space |
- * | | |GUI/, | | Bspc | | |
- * `--------------------' `---------------------'
- */
-[BASE] = LAYOUT_ergodox(
- // left hand
- KC_PAST, NO_LBRC, NO_RBRC, NO_LCBR, NO_RCBR, TILDE_NO, TG(1),
- KC_PPLS, KC_Q, KC_W, KC_F, KC_P, KC_G, NO_DQUO,
- KC_PSLS, KC_A, KC_R, KC_S, KC_T, KC_D,
- KC_PMNS, KC_Z, KC_X, KC_C, KC_V, KC_B, NO_SCLN,
- ALT_T(KC_ESC), KC_EXLM , NO_QUES, NO_COLN, KC_TAB,
- KC_HASH, GRV_NO,
- ACUT_NO,
- OSM(MOD_LSFT),CTL_T(KC_DOT),GUI_T(KC_COMMA),
- // right hand
- CIRC_NO, NO_DLR, NO_LPRN, NO_RPRN ,LESS_NO, GRTR_NO,NO_AT,
- NO_QUOT, KC_J, KC_L, KC_U, KC_Y, NO_ARNG, NO_AE ,
- KC_H, KC_N, KC_E, KC_I, KC_O, NO_OSTR,
- NO_EQL, KC_K, KC_M, KC_RIGHT, KC_DOWN, KC_UP, NO_BSLS,
- KC_LEFT, NO_UNDS, NO_AMPR, NO_PIPE, OSL(2),
- KC_INSERT, KC_PERC,
- KC_DEL,
- KC_BSPC,KC_ENT,KC_SPC
- ),
-/* Keymap 1: Basic layer MAC (Same as pc, except for cmd/ctrl, which are swapped)
- *
- * ,--------------------------------------------------. ,--------------------------------------------------.
- * | \ | | | { | } | | | | | $ | | | < | > | @ |
- * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | | | | | | | | | | | | | | | |
- * |--------+------+------+------+------+------| | | ' |------+------+------+------+------+--------|
- * | | | | | | |------| |------| | | | | | |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | | | | | | | | | | | | | | |
- * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * | | | | |,/Ctrl| | | | ` | |Num/fn|
- * `----------------------------------' `----------------------------------'
- * ,-------------. ,-------------.
- * | | ` | | | |
- * ,------|------|------| |------+------+------.
- * | | | ´ | | | | |
- * | |GUI/. |------| |------| | |
- * | | |crtl/,| | | | |
- * `--------------------' `--------------------'
- */
-[BASE_MAC] = LAYOUT_ergodox(
- KC_TRNS, KC_TRNS,KC_TRNS, S(ALGR(NO_8)),S(ALGR(NO_9)), KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS , KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, ALGR(NO_BSLS),
- ACUT_NO_MAC,
- KC_TRNS,GUI_T(KC_DOT) , CTL_T(KC_COMMA),
- // right hand
- KC_TRNS, S(NO_4), KC_TRNS,KC_TRNS,LESS_NO_MAC, GRTR_NO_MAC,NO_QUOT,
- NO_LABK, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, S(ALGR(NO_7)),
- KC_TRNS, KC_TRNS, KC_TRNS, ALGR(NO_7), OSL(2),
- KC_TRNS, KC_TRNS,
- KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS
-),
-
-/* Keymap 2: Number ++´ánd Fn layer pc
- *
- * ,--------------------------------------------------. ,--------------------------------------------------.
- * | | | | | | | | | | | F9 | F10 | F11 | F12 | |
- * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | | 8 | 7 | 6 | 5 | 9 | | | | | F5 | F6 | F7 | F8 | |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | 4 | 3 | 2 | 1 | 0 |------| |------| | F1 | F2 | F3 | F4 | |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | | | | | | | | | | | END | PGDWN| PGUP | |
- * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * | | | | | | | HOME | | | | |
- * `----------------------------------' `----------------------------------'
- * ,-------------. ,-------------.
- * | | | | | |
- * ,------|------|------| |------+------+------.
- * | | | | | | | |
- * | | |------| |------| | |
- * | | | | | | | |
- * `--------------------' `--------------------'
- */
-[NUMB_FUNC] = LAYOUT_ergodox(
- NO_ASTR, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- NO_PLUS, KC_8, KC_7,KC_6,KC_5, KC_9 , KC_TRNS,
- NO_SLSH , KC_4 , KC_3 , KC_2 , KC_1 , KC_0,
- NO_MINS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS,
- KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS,
- // right hand
- KC_TRNS, KC_TRNS, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_F5, KC_F6 , KC_F7, KC_F8, KC_TRNS,
- KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_TRNS,
- KC_TRNS, KC_HOME, KC_TRNS, KC_END, KC_PGDN, KC_PGUP, KC_TRNS,
- KC_HOME, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS,
- KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS
-)
-};
-
-bool process_record_user(uint16_t keycode, keyrecord_t *record) {
- switch (keycode) {
- case TILDE_NO:
- if (record->event.pressed) {
- tap_code16(ALGR(KC_RBRC));
- tap_code(KC_SPC);
- }
- return false;
- case LESS_NO:
- if (record->event.pressed) {
- tap_code(KC_NUBS);
- }
- return false;
- case GRTR_NO:
- if (record->event.pressed) {
- tap_code16(S(KC_NUBS));
- }
- return false;
- case CIRC_NO:
- if (record->event.pressed) {
- tap_code16(S(KC_RBRC));
- tap_code(KC_SPC);
- }
- return false;
- case ACUT_NO:
- if (record->event.pressed) {
- tap_code16(ALGR(KC_EQL));
- tap_code(KC_SPC);
- }
- return false;
- case GRV_NO:
- if (record->event.pressed) {
- SEND_STRING(SS_LSFT("= "));
- }
- return false;
- case LESS_NO_MAC:
- if (record->event.pressed) {
- tap_code(KC_GRV);
- }
- return false;
- case GRTR_NO_MAC:
- if (record->event.pressed) {
- tap_code16(S(KC_GRV));
- }
- return false;
- case ACUT_NO_MAC:
- if (record->event.pressed) {
- tap_code(KC_EQL);
- tap_code(KC_SPC);
- }
- return false;
- }
- return true;
-}
diff --git a/layouts/community/ergodox/norwegian_programmer_osx_pc_colemak/readme.md b/layouts/community/ergodox/norwegian_programmer_osx_pc_colemak/readme.md
deleted file mode 100644
index ad568ecd41..0000000000
--- a/layouts/community/ergodox/norwegian_programmer_osx_pc_colemak/readme.md
+++ /dev/null
@@ -1,30 +0,0 @@
-# Norwegian Colemak setup with osx/pc toggle
-
-## Motivation
-I wanted a Norwegian Colemak setup that worked in a similar way on both my Mac and PC. I also wanted the keyboard to translate from a standard Norwegian keyboard OS setup.
-
-## Overview
-The setup is created to be programmer friendly.
-- Most of the symbols used in code can be activated without using layers or shift key.
-- You can reach the IDE/OS shortcut activators(Ctrl, Win/Cmd, Alt, Shift) with the thumb or the wrist.
-- Navigation is prioritized, arrows below the home row.
-
-## PC/Mac toggle
-The default setup is for Norwegian keyboard setting(not colemak software variants) on a PC(Windows or Linux) or Mac. Use the Mac/PC toggle button to switch between OSX and PC setup. The settings will be reverted to PC setup each time you restart/connect the keyboard.
-
-## Layers
-Since symbols are prioritized in this setup, numbers and function keys are on a new layer. The easiest way to use the layer switch(and also the alt key), is to push your hand right below the little finger, on the key. You will then have all your fingers free to type numbers or press function keys.
-
-## Tap-shift
-Tap for the next character to be shifted, hold down for regular shift.
-
-## Comma dot and escape
-Comma, dot and escape share buttons with modifier keys. Tap to access these keys, hold down to use the keys as modifier keys.
-
-## Numpad symbols
-+-/* are implemented with the numpad keycodes. The benefit is that they will work better with shortcuts in certain programs. For some reason, the default setting in the osx terminal is to not accept numpad characters for '/' and '-'. For a solution, see https://discussions.apple.com/thread/6613968?start=0&tstart=0.
-If you really need the norwegian symbols in a program, you can access them using the number toggle button.
-
-## Layout
-
-![keyboard-layout](https://i.imgur.com/sArgD9S.png)
diff --git a/layouts/community/ergodox/ordinary/keymap.c b/layouts/community/ergodox/ordinary/keymap.c
deleted file mode 100644
index c828c6fb97..0000000000
--- a/layouts/community/ergodox/ordinary/keymap.c
+++ /dev/null
@@ -1,260 +0,0 @@
-#include QMK_KEYBOARD_H
-
-enum layer_names {
- BASE, // default layer
- SYMB, // symbols layer
- MDIA, // media layer
- SPEC, // special layer
- RBASE // reverse default layer
-};
-
-/*
- * The Ordinary Layout for the Ergodox EZ keyboard, v5
- *
- * Modifications from the default Ergodox EZ layout
- * by Nicholas Keene ergodoxez@nicholaskeene.com
- *
- * No rights reserved. This software is in the public domain.
- * Credit me if you are friendly but if you're a jerk don't bother.
- * If you use or modify this layout I would love to hear from you.
- *
- * Details: readme.md
- * https://github.com/nrrkeene/qmk_firmware/tree/master/keyboards/ergodox/keymaps/ordinary
- */
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
-/******* Base Layer ****************************************************************************************************
- *
- * ,------------------------------------------------------. ,------------------------------------------------------.
- * | Special `~ | 1 | 2 | 3 | 4 | 5 | ESC | | - | 6 | 7 | 8 | 9 | 0 | =+ Special |
- * |------------+------+------+------+------+-------------| |------+------+------+------+------+------+------------|
- * | Media Tab | Q | W | E | R | T | [ | | ] | Y | U | I | O | P | \| Media |
- * |------------+------+------+------+------+------| | | |------+------+------+------+------+------------|
- * | Symbol | ^A | S | D | ^F | G |------| |------| H | ^J | K | L | ^; | '" Symbol |
- * |------------+------+------+------+------+------|Shift | | Tab |------+------+------+------+------+------------|
- * | Capitals | Z | X | C | V | B | -Tab | | | N | M | , | . | / | Capitals |
- * `------------+------+------+------+------+-------------' `-------------+------+------+------+------+------------'
- * | LCtrl | Meh |Hyper | LAlt | LGui | | RGui | RAlt | Hyper| Meh | RCtrl |
- * `-----------------------------------' `-----------------------------------'
- * ,-------------. ,-------------.
- * | Home | End | | Left | Right|
- * ,------|------|------| |------+------+------.
- * | | | PgUp | | Up | | |
- * |Backsp| Del |------| |------| Enter| Space|
- * | | | PgDn | | Down | | |
- * `--------------------' `--------------------'
- */
-[BASE] = LAYOUT_ergodox(
-// left hand
- KC_NO ,KC_1 ,KC_2 ,KC_3 ,KC_4 ,KC_5 ,KC_ESC
-,KC_NO ,KC_Q ,KC_W ,KC_E ,KC_R ,KC_T ,KC_LBRC
-,KC_NO ,LT(RBASE, KC_A),KC_S ,KC_D ,LT(RBASE, KC_F) ,KC_G
-,KC_LSFT ,KC_Z ,KC_X ,KC_C ,KC_V ,KC_B ,LSFT(KC_TAB)
-,KC_LCTL ,MEH_T(KC_NO) ,ALL_T(KC_NO),KC_LALT,KC_LGUI
- ,KC_HOME,KC_END
- ,KC_PGUP
- ,KC_BSPC,KC_DEL ,KC_PGDN
- // right hand
- ,KC_MINS ,KC_6 ,KC_7 ,KC_8 ,KC_9 ,KC_0 ,KC_NO
- ,KC_RBRC ,KC_Y ,KC_U ,KC_I ,KC_O ,KC_P ,KC_NO
- ,KC_H ,LT(RBASE, KC_J),KC_K ,KC_L ,LT(RBASE,KC_SCLN),KC_NO
- ,KC_TAB ,KC_N ,KC_M ,KC_COMM,KC_DOT ,KC_SLSH ,KC_RSFT
- ,KC_RGUI ,KC_RALT,KC_HYPR,KC_MEH ,KC_RCTL
- ,KC_LEFT ,KC_RGHT
- ,KC_UP
- ,KC_DOWN ,KC_ENT ,KC_SPC
-),
-
-/******* Symbols Layer *************************************************************************************************
- *
- * ,-----------------------------------------------------. ,-----------------------------------------------------.
- * | | F1 | F2 | F3 | F4 | F5 | Esc | | - | F6 | F7 | F8 | F9 | F10 | |
- * |-----------+------+------+------+------+-------------| |------+------+------+------+------+------+-----------|
- * | | ! | @ | { | } | & | < | | > | | | 7 | 8 | 9 | / | |
- * |-----------+------+------+------+------+------| | | |------+------+------+------+------+-----------|
- * | | # | $ | ( | ) | ` |------| |------| / | 4 | 5 | 6 | * | |
- * |-----------+------+------+------+------+------| ' | | " |------+------+------+------+------+-----------|
- * | | % | ^ | [ | ] | ~ | | | | \ | 1 | 2 | 3 | - | |
- * `-----------+------+------+------+------+-------------' `-------------+------+------+------+------+-----------'
- * | ; | & | * | < | > | | 0 | . | = | + | Enter |
- * `-----------------------------------' `-----------------------------------'
- * ,-------------. ,-------------.
- * | |||| | |||| | | |||| | |||| |
- * ,------|------|------| |------+------+------.
- * | Plus | Equal| |||| | | |||| | Under| Dash |
- * | | |------| |------| Score| |
- * | + | = | != | | -> | _ | - |
- * `--------------------' `--------------------'
- */
-[SYMB] = LAYOUT_ergodox(
-// left hand
- KC_TRNS ,KC_F1 ,KC_F2 ,KC_F3 ,KC_F4 ,KC_F5 ,KC_ESC
-,KC_TRNS ,KC_EXLM ,KC_AT ,KC_LCBR ,KC_RCBR ,KC_AMPR ,LSFT(KC_COMM)
-,KC_TRNS ,KC_HASH ,KC_DLR ,KC_LPRN ,KC_RPRN ,KC_GRV
-,KC_TRNS ,KC_PERC ,KC_CIRC ,KC_LBRC ,KC_RBRC ,KC_TILD ,KC_QUOT
-,KC_SCLN ,KC_AMPR ,KC_ASTR ,LSFT(KC_COMM),LSFT(KC_DOT)
- ,KC_NO,KC_NO
- ,KC_NO
- ,KC_PLUS ,KC_EQL ,KC_NO
- // right hand
- ,KC_MINS ,KC_F6 ,KC_F7 ,KC_F8 ,KC_F9 ,KC_F10 ,KC_TRNS
- ,LSFT(KC_DOT),KC_PIPE ,KC_7 ,KC_8 ,KC_9 ,KC_SLSH ,KC_TRNS
- ,KC_SLSH ,KC_4 ,KC_5 ,KC_6 ,KC_ASTR ,KC_TRNS
- ,LSFT(KC_QUOT),KC_BSLS ,KC_1 ,KC_2 ,KC_3 ,KC_MINS ,KC_TRNS
- ,KC_0 ,KC_DOT ,KC_EQL,KC_PLUS ,KC_ENT
- ,KC_NO ,KC_NO
- ,KC_NO
- ,KC_NO ,LSFT(KC_MINS),KC_MINS
-),
-
-/******* Media Layer *******************************************************************************************************
- *
- * ,---------------------------------------------------------------. ,---------------------------------------------------------------.
- * | | F11 | F12 | F13 | F14 | F15 | Esc | | |||| | F16 | F17 | F18 | F19 | F20 | |
- * |------+---------+---------+---------+---------+----------------| |------+---------+---------+---------+---------+---------+------|
- * | |Shut Down|MouseUpLf|Mouse Up |MouseUpRg|Volume Up|Scroll| |Scroll|PrintScrn| Home | Up | PgUp | Mail | |
- * |------+---------+---------+---------+---------+---------| Up | | Up |---------+---------+---------+---------+---------+------|
- * | | Sleep |MouseLeft|MouseDown|MouseRght|Volume Dn|------| |------| Num Lock| Left | Down | Right | MyComp | |
- * |------+---------+---------+---------+---------+---------|Scroll| |Scroll|---------+---------+---------+---------+---------+------|
- * | | |||| |MouseDnLf|MouseDown|MouseDnRg| Mute | Down | | Down | |||| | End | Down | PgDn | |||| | |
- * `------+---------+---------+---------+---------+----------------' `----------------+---------+---------+---------+---------+------'
- * | ||| | |||| | MClick | LClick | R Click| | Insert | Del | |||| | |||| | ||| |
- * `---------------------------------------------' `---------------------------------------------'
- * ,-------------. ,-------------.
- * | Stop |Refrsh| | Prev | Next |
- * ,------|------|------| |------+------+------.
- * |Brwser|Brwser|Search| |VolUp | | |
- * |Back | Fwd |------| |------| Stop | Play-|
- * | | | Home | |VolDn | | Pause|
- * `--------------------' `--------------------'
- */
-[MDIA] = LAYOUT_ergodox(
-// left hand
- KC_TRNS ,KC_F11 ,KC_F12 ,KC_F13 ,KC_F14 ,KC_F15 ,KC_ESC
-,KC_TRNS ,KC_PWR ,KC_NO ,KC_MS_U ,KC_NO ,KC_VOLU ,KC_WH_U
-,KC_TRNS ,KC_SLEP ,KC_MS_L ,KC_MS_D ,KC_MS_R ,KC_VOLD
-,KC_TRNS ,KC_NO ,KC_NO ,KC_MS_D ,KC_NO ,KC_MUTE ,KC_WH_D
-,KC_NO ,KC_NO ,KC_BTN3 ,KC_BTN1 ,KC_BTN2
- ,KC_WSTP ,KC_WREF
- ,KC_WSCH
- ,KC_WBAK ,KC_NO ,KC_WHOM
- // right hand
- ,KC_NO ,KC_F16 ,KC_F17 ,KC_F18 ,KC_F19 ,KC_F20 ,KC_TRNS
- ,KC_WH_U ,KC_PSCR ,KC_HOME ,KC_UP ,KC_PGUP ,KC_MAIL ,KC_TRNS
- ,KC_NUM ,KC_LEFT ,KC_DOWN ,KC_RIGHT,KC_MYCM ,KC_TRNS
- ,KC_WH_D ,KC_NO ,KC_END ,KC_DOWN ,KC_PGDN ,KC_NO ,KC_TRNS
- ,KC_INS ,KC_DEL ,KC_NO ,KC_NO ,KC_NO
- ,KC_MPRV ,KC_MNXT
- ,KC_VOLU
- ,KC_VOLD ,KC_MSTP ,KC_MPLY
-),
-
-/******* Special Layer *****************************************************************************************************
- *
- * ,-------------------------------------------------------. ,-------------------------------------------------------.
- * | | Esc | | | | | | | | | | | - | Bspc | |
- * |-------------+------+------+------+------+-------------| |------+------+------+------+------+------+-------------|
- * | Media Lock | | | | | | | | | | | | [ | ] | Media Lock |
- * |-------------+------+------+------+------+------| | | |------+------+------+------+------+-------------|
- * | Symbol Lock | | | | | |------| |------| | | | | | Symbol Lock |
- * |-------------+------+------+------+------+------| | | |------+------+------+------+------+-------------|
- * | Caps Lock | | | | | | | | | | | | | | Caps Lock |
- * `-------------+------+------+------+------+-------------' `-------------+------+------+------+------+-------------'
- * | | | | | | | | | | | |
- * `------------------------------------' `------------------------------------'
- * ,-------------. ,-------------.
- * | | | | | |
- * ,------|------|------| |------+------+------.
- * | | | | | | | |
- * | | |------| |------| | |
- * | | | | | | | |
- * `--------------------' `--------------------'
- */
-[SPEC] = LAYOUT_ergodox(
-// left hand
- KC_TRNS ,KC_ESC ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS
-,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS
-,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS
-,KC_CAPS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS
-,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS
- ,KC_TRNS ,KC_TRNS
- ,KC_TRNS
- ,KC_TRNS,KC_TRNS ,KC_TRNS
- // right hand
- ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_MINS ,KC_BSPC ,KC_TRNS
- ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_LBRC ,KC_RBRC ,KC_TRNS
- ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS
- ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_CAPS
- ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS
- ,KC_TRNS ,KC_TRNS
- ,KC_TRNS
- ,KC_TRNS ,KC_TRNS ,KC_TRNS
-),
-
-/******* Reverse Base Layer *********************************************************************************************
- *
- * ,------------------------------------------------------. ,------------------------------------------------------.
- * | =+ | 0 | 9 | 8 | 7 | 6 | - | | Esc | 5 | 4 | 3 | 2 | 1 | `~ |
- * |------------+------+------+------+------+-------------| |------+------+------+------+------+------+------------|
- * | \| | P | O | I | U | Y | ] | | [ | T | R | E | W | Q | Tab |
- * |------------+------+------+------+------+------| | | |------+------+------+------+------+------------|
- * | '" | ; | L | K | J | H |------| |------| G | F | D | S | A | |
- * |------------+------+------+------+------+------| Tab | |Shift |------+------+------+------+------+------------|
- * | Capitals | / | . | , | M | N | | | -Tab | B | V | C | X | Z | Capitals |
- * `------------+------+------+------+------+-------------' `-------------+------+------+------+------+------------'
- * | LCtrl | Meh |Hyper | LAlt | LGui | | RGui | RAlt | Hyper| Meh | RCtrl |
- * `-----------------------------------' `-----------------------------------'
- * ,-------------. ,-------------.
- * | Left | Right| | Home | End |
- * ,------|------|------| |------+------+------.
- * | | | Up | | PgUp | | |
- * |Space |Enter |------| |------|BackSp| Del |
- * | | | Down | | PgDn | | |
- * `--------------------' `--------------------'
- */
-[RBASE] = LAYOUT_ergodox(
-// left hand
- KC_EQL ,KC_0 ,KC_9 ,KC_8 ,KC_7 ,KC_6 ,KC_MINS
-,KC_BSLS ,KC_P ,KC_O ,KC_I ,KC_U ,KC_Y ,KC_RBRC
-,KC_QUOT ,LT(RBASE, KC_SCLN) ,KC_L ,KC_K ,LT(RBASE, KC_J) ,KC_H
-,KC_RSFT ,KC_SLSH ,KC_DOT ,KC_COMM,KC_M ,KC_N ,KC_TAB
-,KC_RCTL ,MEH_T(KC_NO),ALL_T(KC_NO),KC_RALT,KC_RGUI
- ,KC_LEFT ,KC_RGHT
- ,KC_UP
- ,KC_SPC ,KC_ENT ,KC_DOWN
- // right hand
- ,KC_ESC ,KC_5 ,KC_4 ,KC_3 ,KC_2 ,KC_1 ,KC_GRV
- ,KC_LBRC ,KC_T ,KC_R ,KC_E ,KC_W ,KC_Q ,KC_TAB
- ,KC_G ,LT(RBASE, KC_F),KC_D ,KC_S ,LT(RBASE, KC_A) ,KC_NO
- ,LSFT(KC_TAB),KC_B ,KC_V ,KC_C ,KC_X ,KC_Z ,KC_LSFT
- ,KC_LGUI,KC_LALT,KC_HYPR ,KC_MEH,KC_LCTL
- ,KC_HOME ,KC_END
- ,KC_PGUP
- ,KC_PGDN ,KC_BSPC ,KC_DEL
-)
-};
-
-// Runs constantly in the background, in a loop.
-void matrix_scan_user(void) {
- // shift or caps lock turns on red light
- if ((keyboard_report->mods & MOD_BIT(KC_LSFT)) || (keyboard_report->mods & MOD_BIT(KC_RSFT)) || host_keyboard_led_state().caps_lock) {
- ergodox_right_led_1_on();
- } else {
- ergodox_right_led_1_off();
- }
-
- // Symbol layer turns on green light
- if (layer_state & (1UL<<SYMB)) {
- ergodox_right_led_2_on();
- } else {
- ergodox_right_led_2_off();
- }
-
- // Media layer turns on blue light
- if (layer_state & (1UL<<MDIA)) {
- ergodox_right_led_3_on();
- } else {
- ergodox_right_led_3_off();
- }
-}
diff --git a/layouts/community/ergodox/ordinary/ordinary-base.txt b/layouts/community/ergodox/ordinary/ordinary-base.txt
deleted file mode 100644
index 4fc11faf94..0000000000
--- a/layouts/community/ergodox/ordinary/ordinary-base.txt
+++ /dev/null
@@ -1,27 +0,0 @@
-[{x:3.5},"#\n3",{x:10.5},"*\n8"],
-[{y:-0.875,x:2.5},"@\n2",{x:1},"$\n4",{x:8.5},"&\n7",{x:1},"(\n9"],
-[{y:-0.875,x:5.5},"%\n5",{c:"#ff4444"},"Esc",{x:4.5,c:"#cccccc"},"_\n\n\n\n\n\n-","^\n6"],
-[{y:-0.875,c:"#c6c600",w:1.5},"Special\n\n~\n\n\n\nShift\n`",{c:"#cccccc"},"!\n1",{x:14.5},")\n0",{c:"#c6c600",w:1.5},"+\n\nSpecial\n\n\n\n=\nShift"],
-[{y:-0.375,x:3.5,c:"#cccccc"},"E",{x:10.5},"I"],
-[{y:-0.875,x:2.5},"W",{x:1},"R",{x:8.5},"U",{x:1},"O"],
-[{y:-0.875,x:5.5},"T",{h:1.5},"{\n\n\n\n\n\n[",{x:4.5,h:1.5},"}\n\n\n\n\n\n]","Y"],
-[{y:-0.875,c:"#c6c600",t:"#002299",w:1.5},"Media\n\nTab\n\n\n\nShift",{c:"#cccccc",t:"#000000"},"Q",{x:14.5},"P",{c:"#c6c600",t:"#002299",w:1.5},"|\n\\\nMedia\n\n\n\n\nShift"],
-[{y:-0.375,x:3.5,c:"#cccccc",t:"#000000"},"D",{x:10.5},"K"],
-[{y:-0.875,x:2.5},"S",{x:1,fa:[0,0,0,1]},"F\n\n\nreverse",{x:8.5},"J\n\n\nreverse",{x:1},"L"],
-[{y:-0.875,x:5.5},"G",{x:6.5},"H"],
-[{y:-0.875,c:"#c6c600",t:"#007d00",w:1.5},"Symbols\n\n\n\n\n\nShift",{c:"#cccccc",t:"#000000"},"A\n\n\nreverse",{x:14.5},":\n;\n\nreverse",{c:"#c6c600",t:"#007d00",w:1.5},"\"\n'\nSymbols\n\n\n\n\nShift"],
-[{y:-0.625,x:6.5,c:"#ff8500",t:"#000000",h:1.5},"< Tab\n\n\nShift Tab",{x:4.5,h:1.5},"Tab >\n\n\nTab"],
-[{y:-0.75,x:3.5,c:"#cccccc"},"C",{x:10.5},"<\n,"],
-[{y:-0.875,x:2.5},"X",{x:1},"V",{x:8.5},"M",{x:1},">\n."],
-[{y:-0.875,x:5.5},"B",{x:6.5},"N"],
-[{y:-0.875,c:"#c6c600",t:"#9e0000",w:1.5},"Capitals\n\n\n\n\n\nShift",{c:"#cccccc",t:"#000000"},"Z",{x:14.5},"?\n/",{c:"#c6c600",t:"#9e0000",w:1.5},"\n\nCapitals\n\n\n\n\nShift"],
-[{y:-0.375,x:3.5,c:"#dddd77",t:"#000000"},"Option\n\n\nLAlt",{x:10.5},"Option\n\n\nRAlt"],
-[{y:-0.875,x:2.5},"Hyper",{x:1},"Cmd\n\n\nSuper",{x:8.5},"Cmd\n\n\nSuper",{x:1},"Hyper"],
-[{y:-0.75,x:0.5},"Ctrl\n\n\nLCtrl","Meh",{x:14.5},"Meh","Ctrl\n\n\nRCtrl"],
-[{r:30,rx:6.5,ry:4.25,y:-1,x:1,c:"#ff8500"},"Home","End"],
-[{h:2},"< Del\n\n\nBackspace",{h:2},"Del >\n\n\nDelete","Page\n\n\n\n\n\nUp"],
-[{x:2},"Page\n\n\n\n\n\nDown"],
-[{r:-30,rx:13,y:-1,x:-3},"Left","Right"],
-[{x:-3},"Up",{h:2},"Enter",{h:2},"Space"],
-[{x:-3},"Down"]
-
diff --git a/layouts/community/ergodox/ordinary/ordinary-media.txt b/layouts/community/ergodox/ordinary/ordinary-media.txt
deleted file mode 100644
index 67b7840b52..0000000000
--- a/layouts/community/ergodox/ordinary/ordinary-media.txt
+++ /dev/null
@@ -1,27 +0,0 @@
-[{x:3.5,c:"#99de2a"},"F13",{x:10.5},"F18"],
-[{y:-0.875,x:2.5},"F12",{x:1},"F14",{x:8.5},"F17",{x:1},"F19"],
-[{y:-0.875,x:5.5},"F15",{c:"#ff4444"},"Esc",{x:4.5,c:"#737373",a:7},"",{c:"#99de2a",a:4},"F16"],
-[{y:-0.875,c:"#c6c600",w:1.5},"Shift\n\n\n\n\n\nLock",{c:"#99de2a"},"F11",{x:14.5},"F20",{c:"#c6c600",w:1.5},"\n\nShift\n\n\n\n\nLock"],
-[{y:-0.375,x:3.5,c:"#0066cc"},"Mouse\n\n\n\n\n\nUp",{x:10.5},"Cursor\n\n\n\n\n\nUp"],
-[{y:-0.875,x:2.5},"Mouse\n\n\n\n\n\nUpLeft",{x:1},"Mouse\n\n\n\n\n\nUpRgt",{x:8.5,c:"#1e8fff"},"Home",{x:1},"Page\n\n\n\n\n\nUp"],
-[{y:-0.875,x:5.5,c:"#9977ee"},"Vol\n\n\n\n\n\nUp",{c:"#1e8fff",h:1.5},"Scroll\n\n\n\n\n\nUp",{x:4.5,h:1.5},"Scroll\n\n\n\n\n\nUp",{c:"#9977ee"},"Print\n\n\n\n\n\nScreen"],
-[{y:-0.875,c:"#000000",t:"#3f68ff",w:1.5},"Media\n\n\n\n\n\nShift",{c:"#9977ee",t:"#000000"},"Shut\n\n\n\n\n\nDown",{x:14.5},"Mail",{c:"#000000",t:"#3f68ff",w:1.5},"\n\nMedia\n\n\n\n\nShift"],
-[{y:-0.375,x:3.5,c:"#0066cc",t:"#000000"},"Mouse\n\n\n\n\n\nDown",{x:10.5},"Cursor\n\n\n\n\n\nDown"],
-[{y:-0.875,x:2.5},"Mouse\n\n\n\n\n\nLeft",{x:1},"Mouse\n\n\n\n\n\nRight",{x:8.5},"Cursor\n\n\n\n\n\nLeft",{x:1},"Cursor\n\n\n\n\n\nRight"],
-[{y:-0.875,x:5.5,c:"#9977ee"},"Vol\n\n\n\n\n\nDown",{x:6.5},"Num\n\n\n\n\n\nLock"],
-[{y:-0.875,c:"#c6c600",t:"#007d00",w:1.5},"Symbols\n\n\n\n\n\nShift",{c:"#9977ee",t:"#000000"},"Sleep",{x:14.5},"My\n\n\n\n\n\nComp",{c:"#c6c600",t:"#007d00",w:1.5},"\n\nSymbols\n\n\n\n\nShift"],
-[{y:-0.625,x:6.5,c:"#1e8fff",t:"#000000",h:1.5},"Scroll\n\n\n\n\n\nDown",{x:4.5,h:1.5},"Scroll\n\n\n\n\n\nDown"],
-[{y:-0.75,x:3.5,c:"#0066cc"},"Mouse\n\n\n\n\n\nDown",{x:10.5},"Cursor\n\n\n\n\n\nDown"],
-[{y:-0.875,x:2.5},"Mouse\n\n\n\n\n\nDnLeft",{x:1},"Mouse\n\n\n\n\n\nDnRgt",{x:8.5,c:"#1e8fff"},"End",{x:1},"Page\n\n\n\n\n\nDown"],
-[{y:-0.875,x:5.5,c:"#9977ee"},"Mute",{x:6.5,c:"#737373",a:7},""],
-[{y:-0.875,c:"#c6c600",t:"#9e0000",a:4,w:1.5},"Capitals\n\n\n\n\n\nShift",{c:"#737373",t:"#000000",a:7},"",{x:14.5},"",{c:"#c6c600",t:"#9e0000",a:4,w:1.5},"\n\nCapitals\n\n\n\n\nShift"],
-[{y:-0.375,x:3.5,c:"#0066cc",t:"#000000"},"Middle\n\n\n\n\n\nClick",{x:10.5,c:"#1e8fff"},"Delete"],
-[{y:-0.875,x:2.5,c:"#0066cc"},"Left\n\n\n\n\n\nClick",{x:1},"Right\n\n\n\n\n\nClick",{x:8.5,c:"#1e8fff"},"Insert",{x:1,c:"#737373",a:7},""],
-[{y:-0.75,x:0.5},"","",{x:14.5},"",""],
-[{r:30,rx:6.5,ry:4.25,y:-1,x:1,c:"#6633ee",a:4,fa:[0,0,0,1]},"Stop\n\n\nBrowser","Reload\n\n\nBrowser"],
-[{h:2},"< Web\n\n\nBrowser",{h:2},"Web >\n\n\nBrowser","Search\n\n\nBrowser"],
-[{x:2},"Home\n\n\nBrowser"],
-[{r:-30,rx:13,y:-1,x:-3},"Prev\n\n\nAudio\n\n\nTrack","Next\n\n\nAudio\n\n\nTrack"],
-[{x:-3,c:"#9977ee"},"Vol\n\n\n\n\n\nUp",{c:"#6633ee",h:2},"Stop\n\n\nAudio",{h:2},"Play\n\n\nAudio\n\n\nPause"],
-[{x:-3,c:"#9977ee"},"Vol\n\n\n\n\n\nDown"]
-
diff --git a/layouts/community/ergodox/ordinary/ordinary-special.txt b/layouts/community/ergodox/ordinary/ordinary-special.txt
deleted file mode 100644
index 97f40f9dbc..0000000000
--- a/layouts/community/ergodox/ordinary/ordinary-special.txt
+++ /dev/null
@@ -1,27 +0,0 @@
-[{x:3.5,a:7},"",{x:10.5},""],
-[{y:-0.875,x:2.5},"",{x:1},"",{x:8.5},"",{x:1,a:4},"_\n\n\n\n\n\n-"],
-[{y:-0.875,x:5.5,a:7},"",{c:"#ff4444",a:4},"Esc",{x:4.5,c:"#cccccc",a:7},"",""],
-[{y:-0.875,c:"#000000",t:"#ff0000",a:4,w:1.5},"Special\n\n\n\n\n\nShift",{c:"#ff4444",t:"#000000"},"Esc",{x:14.5,c:"#ff8500"},"Back\n\n\n\n\n\nspace",{c:"#000000",t:"#ff0000",w:1.5},"\n\nSpecial\n\n\n\n\nShift"],
-[{y:-0.375,x:3.5,c:"#cccccc",t:"#000000",a:7},"",{x:10.5},""],
-[{y:-0.875,x:2.5},"",{x:1},"",{x:8.5},"",{x:1,a:4},"{\n["],
-[{y:-0.875,x:5.5,a:7},"",{h:1.5},"",{x:4.5,h:1.5},"",""],
-[{y:-0.875,c:"#c6c600",t:"#002299",a:4,w:1.5},"Media\n\n\n\n\n\nLock",{c:"#cccccc",t:"#000000",a:7},"",{x:14.5,a:4},"\n\n}\n]",{c:"#c6c600",t:"#002299",w:1.5},"Media\n\n\n\n\n\nLock"],
-[{y:-0.375,x:3.5,c:"#cccccc",t:"#000000",a:7},"",{x:10.5},""],
-[{y:-0.875,x:2.5},"",{x:1},"",{x:8.5},"",{x:1},""],
-[{y:-0.875,x:5.5},"",{x:6.5},""],
-[{y:-0.875,c:"#c6c600",t:"#007d00",a:4,w:1.5},"Symbols\n\n\n\n\n\nLock",{c:"#cccccc",t:"#000000",a:7},"",{x:14.5},"",{c:"#c6c600",t:"#007d00",a:4,w:1.5},"Symbols\n\n\n\n\n\nLock"],
-[{y:-0.625,x:6.5,c:"#cccccc",t:"#000000",a:7,h:1.5},"",{x:4.5,h:1.5},""],
-[{y:-0.75,x:3.5},"",{x:10.5},""],
-[{y:-0.875,x:2.5},"",{x:1},"",{x:8.5},"",{x:1},""],
-[{y:-0.875,x:5.5},"",{x:6.5},""],
-[{y:-0.875,c:"#c6c600",t:"#9e0000",a:4,w:1.5},"Capitals\n\n\n\n\n\nLock",{c:"#cccccc",t:"#000000",a:7},"",{x:14.5},"",{c:"#c6c600",t:"#9e0000",a:4,w:1.5},"Capitals\n\n\n\n\n\nLock"],
-[{y:-0.375,x:3.5,c:"#cccccc",t:"#000000",a:7},"",{x:10.5},""],
-[{y:-0.875,x:2.5},"",{x:1},"",{x:8.5},"",{x:1},""],
-[{y:-0.75,x:0.5},"","",{x:14.5},"",""],
-[{r:30,rx:6.5,ry:4.25,y:-1,x:1},"",""],
-[{h:2},"",{h:2},"",""],
-[{x:2},""],
-[{r:-30,rx:13,y:-1,x:-3},"",""],
-[{x:-3},"",{h:2},"",{h:2},""],
-[{x:-3},""]
-
diff --git a/layouts/community/ergodox/ordinary/ordinary-symbol.txt b/layouts/community/ergodox/ordinary/ordinary-symbol.txt
deleted file mode 100644
index 65eca9d6a5..0000000000
--- a/layouts/community/ergodox/ordinary/ordinary-symbol.txt
+++ /dev/null
@@ -1,27 +0,0 @@
-[{x:3.5,c:"#99de2a"},"F3",{x:10.5},"F8"],
-[{y:-0.875,x:2.5},"F2",{x:1},"F4",{x:8.5},"F7",{x:1},"F9"],
-[{y:-0.875,x:5.5},"F5",{c:"#ff4444"},"Esc",{x:4.5,c:"#bbddbb"},"_\n\n\n\n\n\n-",{c:"#99de2a"},"F6"],
-[{y:-0.875,c:"#c6c600",w:1.5},"Shift\n\n\n\n\n\nLock",{c:"#99de2a"},"F1",{x:14.5},"F10",{c:"#c6c600",w:1.5},"\n\nShift\n\n\n\n\nLock"],
-[{y:-0.375,x:3.5,c:"#bbddbb"},"{",{x:10.5,c:"#89b087"},"8"],
-[{y:-0.875,x:2.5,c:"#bbddbb"},"@",{x:1},"}",{x:8.5,c:"#89b087"},"7",{x:1},"9"],
-[{y:-0.875,x:5.5,c:"#bbddbb"},"&",{h:1.5},"<",{x:4.5,h:1.5},">","|"],
-[{y:-0.875,c:"#c6c600",t:"#002299",w:1.5},"Media\n\n\n\n\n\nShift",{c:"#bbddbb",t:"#000000"},"!",{x:14.5,c:"#89b087"},"/",{c:"#c6c600",t:"#002299",w:1.5},"\n\nMedia\n\n\n\n\nShift"],
-[{y:-0.375,x:3.5,c:"#bbddbb",t:"#000000"},"(",{x:10.5,c:"#89b087"},"5"],
-[{y:-0.875,x:2.5,c:"#bbddbb"},"$",{x:1},")",{x:8.5,c:"#89b087"},"4",{x:1},"6"],
-[{y:-0.875,x:5.5,c:"#bbddbb"},"`",{x:6.5},"/"],
-[{y:-0.875,c:"#000000",t:"#007d00",w:1.5},"Symbols\n\n\n\n\n\nShift",{c:"#bbddbb",t:"#000000"},"#",{x:14.5,c:"#89b087"},"*",{c:"#000000",t:"#007d00",w:1.5},"\n\nSymbols\n\n\n\n\nShift"],
-[{y:-0.625,x:6.5,c:"#bbddbb",t:"#000000",a:6,h:1.5},"'",{x:4.5,h:1.5},"\""],
-[{y:-0.75,x:3.5,a:4},"[",{x:10.5,c:"#89b087"},"2"],
-[{y:-0.875,x:2.5,c:"#bbddbb"},"^",{x:1},"]",{x:8.5,c:"#89b087"},"1",{x:1},"3"],
-[{y:-0.875,x:5.5,c:"#bbddbb"},"~",{x:6.5},"\\"],
-[{y:-0.875,c:"#c6c600",t:"#9e0000",w:1.5},"Capitals\n\n\n\n\n\nShift",{c:"#bbddbb",t:"#000000"},"%",{x:14.5,c:"#89b087"},"-",{c:"#c6c600",t:"#9e0000",w:1.5},"\n\nCapitals\n\n\n\n\nShift"],
-[{y:-0.375,x:3.5,c:"#bbddbb",t:"#000000"},"<",{x:10.5,c:"#89b087"},"."],
-[{y:-0.875,x:2.5,c:"#bbddbb"},"*",{x:1},">",{x:8.5,c:"#89b087"},"0",{x:1},"="],
-[{y:-0.75,x:0.5,c:"#bbddbb"},";","&",{x:14.5,c:"#89b087"},"+","Enter"],
-[{r:30,rx:6.5,ry:4.25,y:-1,x:1,c:"#bbddbb"},"<=",">="],
-[{a:7,h:2},"+",{h:2},"=",{c:"#737373"},""],
-[{x:2,c:"#bbddbb",a:4},"!="],
-[{r:-30,rx:13,y:-1,x:-3,c:"#737373",a:7},"",""],
-[{x:-3},"",{c:"#bbddbb",h:2},"_",{h:2},"-"],
-[{x:-3,a:4},"->"]
-
diff --git a/layouts/community/ergodox/ordinary/readme.md b/layouts/community/ergodox/ordinary/readme.md
deleted file mode 100644
index 53cba0450e..0000000000
--- a/layouts/community/ergodox/ordinary/readme.md
+++ /dev/null
@@ -1,101 +0,0 @@
-# The Ordinary Layout, a familiar and powerful layout #
-
-The Ordinary Layout is intended to be unremarkably mundane and remarkably useful. This layout maintains most key positions from common QWERTY keyboards, and it features enhanced Symbol and Media layers compared to the default Ergodox EZ layout.
-
-The Ordinary Layout is supposed to look mostly like a normal keyboard, except in the ways that the Ergodox key arrangement is unique. The thumbs are responsible for space, enter, plus both forward and backward delete; with only a couple exceptions, all other keys are in the same place they are found on traditional keyboards.
-
-Nicholas Keene
-ordinarylayout@nicholaskeene.com
-no rights reserved, use for any purposes, credit me if you are a nice person
-
-## The Base Layout ##
-
-* *White Keys* are all the normal characters and symbols in all the normal locations (except for the brackets, and who touch-types brackets?).
-* *Modifier Keys* are light yellow and in the traditional locationn at the bottom of the keyboard: Control, Option, Command, plus Hyper and Meh. Modifier keys are only found on the base layout.
-* *Shift Keys* are dark yellow, found on the outsides of the keyboard. Capitals Shift (traditional Shift) is found in the usual place and above that are Symbol Shift, Media Shift, and Special Shift (Shift Lock).
-* Several of the shift keys double for entry of characters which would typically be in those locations.
-* *Thumb Keys* shown in orange are for text navigation and manipulation.
-* The keys under pinky fingers and index fingers will *reverse* the keyboard layout.
-* *Escape* is red and it is always found in that location (*except* when the layout is reversed).
-
-![Ordinary base layout](https://i.imgur.com/CA5t9dF.png)
-
-The four big orange keys are arranged differently than in the default Ergodox EZ layout. The Ordinary Layout here copies the design of the old Fingerworks TouchStream keyboard, but also reflects the natural presumptions of the author -- me! I type the space character with my right hand, and to me it makes sense for the two delete keys to be next to one another.
-
-The Forward Tab and Backward Tab keys are in their locations mostly because I ended up with two extra buttons and needed something to do with them. My muscle memory from using the Truly Ergonomic Keyboard makes me look for the Tab key with my right index finger, so it is handy to have this redundant Tab, and the idea with the Backward Tab key is that it becomes easy to navigate text fields in forms, or to indent/unindent code.
-
-#### Reversing The Base Layout ####
-
-The Ordinary Layout can be used to perform one-handed chorded text input. If you hold down the key under either index finger or either pinky finger (A, F, J and Semicolon), the whole base layout reverses order. Most keys are _mirrored_ but the delete keys, home/end, and left/right arrow keys are merely *translated* to preserve directionality. Pro-tip: This feature is particularly handly for bringing the Enter key to the left hand when the right hand is using the mouse.
-
-## The Symbols Layer ##
-
-* *Symbols* shown in light green. All kinds of brackets are available on this layer. Ampersand and Pipe juxtapose each other. Pipe, slash, and backslash are arranged in a column.
-* *F-Keys* are bright green and overlay the row of numerals. This layer has F1-F10, higher *F-Keys* are on the Symbols layer.
-* *Number pad* in dark green under the right hand includes all four arithmetic operations in the same order found on most number pads and features an Enter key. The keycodes emitted here are normal numeric keycodes, not the number-pad specific keycodes emitted by most number pads so that NumLock is not needed.
-* The dark gray keys do nothing in case you bump them by accident.
-
-![Ordinary symbol layout](https://i.imgur.com/JnX3lV2.png)
-
-The Symbols Layer is based on the Coder Layer from the default Ergodox EZ layout. I slightly rearranged the symbols, added some symbols, expanded the number pad, and straightened out the F-Keys. It's very handy to have the symbols directly underneath the normal typing keys.
-
-## The Media Layer ##
-
-* *Mouse Cursor Keys* are under the left hand, shown in dark blue. Diagonal keys won't automatically repeat unless combined with other keys. Buttons to left- middle- and right-click the mouse are also featured.
-* *Text Cursor Keys* are under the right hand, shown in dark blue. They overlay the numberpad from the Symbols Layer, such that in the Media Layer the same keys can be used as if they were a number pad in navigational mode (Num Lock off). For instance, in traditional number pads the '3' key became 'Page Down', and so it is here. This means a user can do text navigation without moving either hand.
-* *Scrolling and Paging* keys are shown in light blue and have some useful redundancy across the layout.
-* Higher-order *F-Keys* are shown in bright green overylaying the numerals.
-* *Application Keys* to control web browsers and audio players are dark purple but don't get too excited because these have weak support on operating systems I've looked at. Good luck.
-* The light purple keys are various operating system keys such as NumLock and Mute and a button to navigate to My Computer (usually your home dir).
-* The dark gray keys do nothing in case you bump them by accident.
-
-![Ordinary media layout](https://i.imgur.com/1jJnQrG.png)
-
-This layer is a substantial extension of the Media layer on the Ergodox EZ default layout. The Fingerworks TouchStream keyboard had a very useful feature for controlling the text cursor easily and this layer does something similar. The left hand can move the mouse, the right hand moves the text cursor, in all four directions, in small or large increments. This greatly enhances navigation in text documents.
-
-Keys to directly interact with the operating system are also found on this layer, such as volume and shutdown.
-
-## Switching Between Layers ##
-
-In addition to Symbols and Media there is the Capitals layer which is exactly the same as pressing the shift key. Each layer is accessed by a shift key on each edge of the keyboard and corresponds to one of the three LEDs on the keyboard: Capitals (red), Symbols (green), Media (blue). The color of a layer illuminates when the layer is active.
-
-Shift buttons work in the expected way: press them and all of the keys switch to that layer; release them and the keys switch back to the base layer. Lock the shift keys using the Shift Lock button, which is the same as the Special Shift button.
-
-Multiple layers can be turned on at once. The Capitals layer will affect characters on other layers to capitalize. Other layers, however, don't 'mix': Symbols blankets the base layout; Media blankets Symbols.
-
-## Special Sequences ##
-
-![Ordinary special layout](https://i.imgur.com/XHXELD5.png)
-
-The Special Shift layer is mostly used to lock the shift keys but in order to make this layout more _ordinary_ there are a few special sequences which put some keys near their most common traditional locations.
-
-#### Escape ####
-
-The One True Location for an Escape key is separated from the rest of the keys, way up on the top left of the keyboard. The Ergodox does not have a physical button in such a location, however, and the nearest one is home to the tilde (er, *grave*) which is commonly found there. In the Ordinary layout the Escape key is found on all layers in the prominent location in the corner next to the 5, which is easy to remember, and yet it isn't natural for those of us with muscle memory flicking our wrists up and to the left looking for Escape.
-
-The Ordinary layout offers as a consolation prize, a Special sequence for Escape: **Special Shift + 1**. This is natural so you can tap the top left button, then the button next to it and get Escape. This gesture works in all layers.
-
-#### Backspace ####
-
-At the top right corner of the Ergodox EZ you can do **Special Shift + 0** to produce a Backspace. Users of this keyboard and this layout are well advised to learn to use their thumbs for deleting text, but sometimes you are doing other computery things and just want to flick your digits up to the right and press backspace a bunch times.
-
-#### Other Characters ####
-
-The Escape and Backspace special sequences are so useful why not have a few more? You can find dash under 9, left bracket under o, and right bracket under p. That's pretty much all the characters from the top right corner of the keyboard which moved to make room for the columnar layout.
-
-## Errata ##
-
-Some of the symbols on the Symbols layer are produced by the keyboard by "capitalizing" another character (such as *!* from *1*) so when you type that key you will notice the Capitals Shift red LED turn on.
-
-****
-
-The Ordinary Layout for the Ergodox EZ keyboard, v5
-
-Modifications from default by Nicholas Keene ergodoxez@nicholaskeene.com
-
-No rights reserved. This software is in the public domain. Credit me if you are friendly but if you're a jerk don't bother.
-
-Keyboard layout images were created with http://www.keyboard-layout-editor.com/ by Ian Prest my thanks to that free service
-
-Details: readme.md
- https://github.com/nrrkeene/qmk_firmware/tree/master/layouts/community/ergodox/ordinary
diff --git a/layouts/community/ergodox/ordinary_osx/keymap.c b/layouts/community/ergodox/ordinary_osx/keymap.c
deleted file mode 100644
index 3de64f4994..0000000000
--- a/layouts/community/ergodox/ordinary_osx/keymap.c
+++ /dev/null
@@ -1,260 +0,0 @@
-#include QMK_KEYBOARD_H
-
-enum layer_names {
- BASE, // default layer
- SYMB, // symbols layer
- MDIA, // media layer
- SPEC, // special layer
- RBASE // reverse default layer
-};
-
-/*
- * The Ordinary Layout for the Ergodox EZ keyboard, v5
- *
- * Modifications from the default Ergodox EZ layout
- * by Nicholas Keene ergodoxez@nicholaskeene.com
- *
- * No rights reserved. This software is in the public domain.
- * Credit me if you are friendly but if you're a jerk don't bother.
- * If you use or modify this layout I would love to hear from you.
- *
- * Details: readme.md
- * https://github.com/nrrkeene/qmk_firmware/tree/master/keyboards/ergodox/keymaps/ordinary
- */
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
-/******* Base Layer ****************************************************************************************************
- *
- * ,------------------------------------------------------. ,------------------------------------------------------.
- * | Special `~ | 1 | 2 | 3 | 4 | 5 | ESC | | - | 6 | 7 | 8 | 9 | 0 | =+ Special |
- * |------------+------+------+------+------+-------------| |------+------+------+------+------+------+------------|
- * | Media Tab | Q | W | E | R | T |Shift | | Tab | Y | U | I | O | P | \| Media |
- * |------------+------+------+------+------+------|-Tab | | |------+------+------+------+------+------------|
- * | Symbol | ^A | S | D | ^F | G |------| |------| H | ^J | K | L | ^; | '" Symbol |
- * |------------+------+------+------+------+------| [ | | ] |------+------+------+------+------+------------|
- * | Capitals | Z | X | C | V | B | | | | N | M | , | . | / | Capitals |
- * `------------+------+------+------+------+-------------' `-------------+------+------+------+------+------------'
- * | Left | Right | LCtrl | LAlt | LGui| | RGui | RAlt | RCtrl | Up | Down |
- * `-----------------------------------' `-----------------------------------'
- * ,-------------. ,-------------.
- * | Home | End | | Left | Right|
- * ,------|------|------| |------+------+------.
- * | | | PgUp | | Up | | |
- * |Backsp| Del |------| |------| Enter| Space|
- * | | | PgDn | | Down | | |
- * `--------------------' `--------------------'
- */
-[BASE] = LAYOUT_ergodox(
-// left hand
- KC_NO ,KC_1 ,KC_2 ,KC_3 ,KC_4 ,KC_5 ,KC_ESC
-,KC_NO ,KC_Q ,KC_W ,KC_E ,KC_R ,KC_T ,LSFT(KC_TAB)
-,KC_NO ,LT(RBASE, KC_A),KC_S ,KC_D ,LT(RBASE, KC_F) ,KC_G
-,KC_LSFT ,KC_Z ,KC_X ,KC_C ,KC_V ,KC_B ,KC_LBRC
-,KC_LEFT ,KC_RIGHT ,KC_LCTL,KC_LALT,KC_LGUI
- ,KC_HOME,KC_END
- ,KC_PGUP
- ,KC_BSPC,KC_DEL ,KC_PGDN
- // right hand
- ,KC_MINS ,KC_6 ,KC_7 ,KC_8 ,KC_9 ,KC_0 ,KC_NO
- ,KC_TAB ,KC_Y ,KC_U ,KC_I ,KC_O ,KC_P ,KC_NO
- ,KC_H ,LT(RBASE, KC_J),KC_K ,KC_L ,LT(RBASE,KC_SCLN),KC_NO
- ,KC_RBRC ,KC_N ,KC_M ,KC_COMM,KC_DOT ,KC_SLSH ,KC_RSFT
- ,KC_RGUI ,KC_RALT,KC_RCTL,KC_UP ,KC_DOWN
- ,KC_LEFT ,KC_RGHT
- ,KC_UP
- ,KC_DOWN ,KC_ENT ,KC_SPC
-),
-
-/******* Symbols Layer *************************************************************************************************
- *
- * ,-----------------------------------------------------. ,-----------------------------------------------------.
- * | | F1 | F2 | F3 | F4 | F5 | Esc | | - | F6 | F7 | F8 | F9 | F10 | |
- * |-----------+------+------+------+------+-------------| |------+------+------+------+------+------+-----------|
- * | | ! | @ | { | } | & | < | | > | | | 7 | 8 | 9 | / | |
- * |-----------+------+------+------+------+------| | | |------+------+------+------+------+-----------|
- * | | # | $ | ( | ) | ` |------| |------| / | 4 | 5 | 6 | * | |
- * |-----------+------+------+------+------+------| ' | | " |------+------+------+------+------+-----------|
- * | | % | ^ | [ | ] | ~ | | | | \ | 1 | 2 | 3 | - | |
- * `-----------+------+------+------+------+-------------' `-------------+------+------+------+------+-----------'
- * | ; | & | * | < | > | | 0 | . | = | + | Enter |
- * `-----------------------------------' `-----------------------------------'
- * ,-------------. ,-------------.
- * | |||| | |||| | | |||| | |||| |
- * ,------|------|------| |------+------+------.
- * | Plus | Equal| |||| | | |||| | Under| Dash |
- * | | |------| |------| Score| |
- * | + | = | != | | -> | _ | - |
- * `--------------------' `--------------------'
- */
-[SYMB] = LAYOUT_ergodox(
-// left hand
- KC_TRNS ,KC_F1 ,KC_F2 ,KC_F3 ,KC_F4 ,KC_F5 ,KC_ESC
-,KC_TRNS ,KC_EXLM ,KC_AT ,KC_LCBR ,KC_RCBR ,KC_AMPR ,LSFT(KC_COMM)
-,KC_TRNS ,KC_HASH ,KC_DLR ,KC_LPRN ,KC_RPRN ,KC_GRV
-,KC_TRNS ,KC_PERC ,KC_CIRC ,KC_LBRC ,KC_RBRC ,KC_TILD ,KC_QUOT
-,KC_SCLN ,KC_AMPR ,KC_ASTR ,LSFT(KC_COMM),LSFT(KC_DOT)
- ,KC_NO,KC_NO
- ,KC_NO
- ,KC_PLUS ,KC_EQL ,KC_NO
- // right hand
- ,KC_MINS ,KC_F6 ,KC_F7 ,KC_F8 ,KC_F9 ,KC_F10 ,KC_TRNS
- ,LSFT(KC_DOT),KC_PIPE ,KC_7 ,KC_8 ,KC_9 ,KC_SLSH ,KC_TRNS
- ,KC_SLSH ,KC_4 ,KC_5 ,KC_6 ,KC_ASTR ,KC_TRNS
- ,LSFT(KC_QUOT),KC_BSLS ,KC_1 ,KC_2 ,KC_3 ,KC_MINS ,KC_TRNS
- ,KC_0 ,KC_DOT ,KC_EQL,KC_PLUS ,KC_ENT
- ,KC_NO ,KC_NO
- ,KC_NO
- ,KC_NO ,LSFT(KC_MINS),KC_MINS
-),
-
-/******* Media Layer *******************************************************************************************************
- *
- * ,---------------------------------------------------------------. ,---------------------------------------------------------------.
- * | | F11 | F12 | F13 | F14 | F15 | Esc | | |||| | F16 | F17 | F18 | F19 | F20 | |
- * |------+---------+---------+---------+---------+----------------| |------+---------+---------+---------+---------+---------+------|
- * | |Shut Down|MouseUpLf|Mouse Up |MouseUpRg|Volume Up|Scroll| |Scroll|PrintScrn| Home | Up | PgUp | Mail | |
- * |------+---------+---------+---------+---------+---------| Up | | Up |---------+---------+---------+---------+---------+------|
- * | | Sleep |MouseLeft|MouseDown|MouseRght|Volume Dn|------| |------| Num Lock| Left | Down | Right | MyComp | |
- * |------+---------+---------+---------+---------+---------|Scroll| |Scroll|---------+---------+---------+---------+---------+------|
- * | | |||| |MouseDnLf|MouseDown|MouseDnRg| Mute | Down | | Down | |||| | End | Down | PgDn | |||| | |
- * `------+---------+---------+---------+---------+----------------' `----------------+---------+---------+---------+---------+------'
- * | ||| | |||| | MClick | LClick | R Click| | Insert | Del | |||| | |||| | ||| |
- * `---------------------------------------------' `---------------------------------------------'
- * ,-------------. ,-------------.
- * | Stop |Refrsh| | Prev | Next |
- * ,------|------|------| |------+------+------.
- * |Brwser|Brwser|Search| |VolUp | | |
- * |Back | Fwd |------| |------| Stop | Play-|
- * | | | Home | |VolDn | | Pause|
- * `--------------------' `--------------------'
- */
-[MDIA] = LAYOUT_ergodox(
-// left hand
- KC_TRNS ,KC_F11 ,KC_F12 ,KC_F13 ,KC_F14 ,KC_F15 ,KC_ESC
-,KC_TRNS ,KC_PWR ,KC_NO ,KC_MS_U ,KC_NO ,KC_VOLU ,KC_WH_U
-,KC_TRNS ,KC_SLEP ,KC_MS_L ,KC_MS_D ,KC_MS_R ,KC_VOLD
-,KC_TRNS ,KC_NO ,KC_NO ,KC_MS_D ,KC_NO ,KC_MUTE ,KC_WH_D
-,KC_NO ,KC_NO ,KC_BTN3 ,KC_BTN1 ,KC_BTN2
- ,KC_WSTP ,KC_WREF
- ,KC_WSCH
- ,KC_WBAK ,KC_NO ,KC_WHOM
- // right hand
- ,KC_NO ,KC_F16 ,KC_F17 ,KC_F18 ,KC_F19 ,KC_F20 ,KC_TRNS
- ,KC_WH_U ,KC_PSCR ,KC_HOME ,KC_UP ,KC_PGUP ,KC_MAIL ,KC_TRNS
- ,KC_NUM ,KC_LEFT ,KC_DOWN ,KC_RIGHT,KC_MYCM ,KC_TRNS
- ,KC_WH_D ,KC_NO ,KC_END ,KC_DOWN ,KC_PGDN ,KC_NO ,KC_TRNS
- ,KC_INS ,KC_DEL ,KC_NO ,KC_NO ,KC_NO
- ,KC_MPRV ,KC_MNXT
- ,KC_VOLU
- ,KC_VOLD ,KC_MSTP ,KC_MPLY
-),
-
-/******* Special Layer *****************************************************************************************************
- *
- * ,-------------------------------------------------------. ,-------------------------------------------------------.
- * | | Esc | | | | | | | | | | | - | Bspc | |
- * |-------------+------+------+------+------+-------------| |------+------+------+------+------+------+-------------|
- * | Media Lock | | | | | | | | | | | | [ | ] | Media Lock |
- * |-------------+------+------+------+------+------| | | |------+------+------+------+------+-------------|
- * | Symbol Lock | | | | | |------| |------| | | | | | Symbol Lock |
- * |-------------+------+------+------+------+------| | | |------+------+------+------+------+-------------|
- * | Caps Lock | | | | | | | | | | | | | | Caps Lock |
- * `-------------+------+------+------+------+-------------' `-------------+------+------+------+------+-------------'
- * | | | | | | | | | | | |
- * `------------------------------------' `------------------------------------'
- * ,-------------. ,-------------.
- * | | | | | |
- * ,------|------|------| |------+------+------.
- * | | | | | | | |
- * | | |------| |------| | |
- * | | | | | | | |
- * `--------------------' `--------------------'
- */
-[SPEC] = LAYOUT_ergodox(
-// left hand
- KC_TRNS ,KC_ESC ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS
-,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS
-,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS
-,KC_CAPS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS
-,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS
- ,KC_TRNS ,KC_TRNS
- ,KC_TRNS
- ,KC_TRNS,KC_TRNS ,KC_TRNS
- // right hand
- ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_MINS ,KC_BSPC ,KC_TRNS
- ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_LBRC ,KC_RBRC ,KC_TRNS
- ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS
- ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_CAPS
- ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS
- ,KC_TRNS ,KC_TRNS
- ,KC_TRNS
- ,KC_TRNS ,KC_TRNS ,KC_TRNS
-),
-
-/******* Reverse Base Layer *********************************************************************************************
- *
- * ,------------------------------------------------------. ,------------------------------------------------------.
- * | =+ | 0 | 9 | 8 | 7 | 6 | - | | Esc | 5 | 4 | 3 | 2 | 1 | `~ |
- * |------------+------+------+------+------+-------------| |------+------+------+------+------+------+------------|
- * | \| | P | O | I | U | Y | ] | | [ | T | R | E | W | Q | Tab |
- * |------------+------+------+------+------+------| | | |------+------+------+------+------+------------|
- * | '" | ; | L | K | J | H |------| |------| G | F | D | S | A | |
- * |------------+------+------+------+------+------| Tab | |Shift |------+------+------+------+------+------------|
- * | Capitals | / | . | , | M | N | | | -Tab | B | V | C | X | Z | Capitals |
- * `------------+------+------+------+------+-------------' `-------------+------+------+------+------+------------'
- * | LCtrl | Meh |Hyper | LAlt | LGui | | RGui | RAlt | Hyper| Meh | RCtrl |
- * `-----------------------------------' `-----------------------------------'
- * ,-------------. ,-------------.
- * | Left | Right| | Home | End |
- * ,------|------|------| |------+------+------.
- * | | | Up | | PgUp | | |
- * |Space |Enter |------| |------|BackSp| Del |
- * | | | Down | | PgDn | | |
- * `--------------------' `--------------------'
- */
-[RBASE] = LAYOUT_ergodox(
-// left hand
- KC_EQL ,KC_0 ,KC_9 ,KC_8 ,KC_7 ,KC_6 ,KC_MINS
-,KC_BSLS ,KC_P ,KC_O ,KC_I ,KC_U ,KC_Y ,KC_RBRC
-,KC_QUOT ,LT(RBASE, KC_SCLN) ,KC_L ,KC_K ,LT(RBASE, KC_J) ,KC_H
-,KC_RSFT ,KC_SLSH ,KC_DOT ,KC_COMM,KC_M ,KC_N ,KC_TAB
-,KC_RCTL ,MEH_T(KC_NO),ALL_T(KC_NO),KC_RALT,KC_RGUI
- ,KC_LEFT ,KC_RGHT
- ,KC_UP
- ,KC_SPC ,KC_ENT ,KC_DOWN
- // right hand
- ,KC_ESC ,KC_5 ,KC_4 ,KC_3 ,KC_2 ,KC_1 ,KC_GRV
- ,KC_LBRC ,KC_T ,KC_R ,KC_E ,KC_W ,KC_Q ,KC_TAB
- ,KC_G ,LT(RBASE, KC_F),KC_D ,KC_S ,LT(RBASE, KC_A) ,KC_NO
- ,LSFT(KC_TAB),KC_B ,KC_V ,KC_C ,KC_X ,KC_Z ,KC_LSFT
- ,KC_LGUI,KC_LALT,KC_HYPR ,KC_MEH,KC_LCTL
- ,KC_HOME ,KC_END
- ,KC_PGUP
- ,KC_PGDN ,KC_BSPC ,KC_DEL
-)
-};
-
-// Runs constantly in the background, in a loop.
-void matrix_scan_user(void) {
- // shift or caps lock turns on red light
- if ((keyboard_report->mods & MOD_BIT(KC_LSFT)) || (keyboard_report->mods & MOD_BIT(KC_RSFT)) || host_keyboard_led_state().caps_lock) {
- ergodox_right_led_1_on();
- } else {
- ergodox_right_led_1_off();
- }
-
- // Symbol layer turns on green light
- if (layer_state & (1UL<<SYMB)) {
- ergodox_right_led_2_on();
- } else {
- ergodox_right_led_2_off();
- }
-
- // Media layer turns on blue light
- if (layer_state & (1UL<<MDIA)) {
- ergodox_right_led_3_on();
- } else {
- ergodox_right_led_3_off();
- }
-}
diff --git a/layouts/community/ergodox/ordinary_osx/ordinary-base.txt b/layouts/community/ergodox/ordinary_osx/ordinary-base.txt
deleted file mode 100644
index 4fc11faf94..0000000000
--- a/layouts/community/ergodox/ordinary_osx/ordinary-base.txt
+++ /dev/null
@@ -1,27 +0,0 @@
-[{x:3.5},"#\n3",{x:10.5},"*\n8"],
-[{y:-0.875,x:2.5},"@\n2",{x:1},"$\n4",{x:8.5},"&\n7",{x:1},"(\n9"],
-[{y:-0.875,x:5.5},"%\n5",{c:"#ff4444"},"Esc",{x:4.5,c:"#cccccc"},"_\n\n\n\n\n\n-","^\n6"],
-[{y:-0.875,c:"#c6c600",w:1.5},"Special\n\n~\n\n\n\nShift\n`",{c:"#cccccc"},"!\n1",{x:14.5},")\n0",{c:"#c6c600",w:1.5},"+\n\nSpecial\n\n\n\n=\nShift"],
-[{y:-0.375,x:3.5,c:"#cccccc"},"E",{x:10.5},"I"],
-[{y:-0.875,x:2.5},"W",{x:1},"R",{x:8.5},"U",{x:1},"O"],
-[{y:-0.875,x:5.5},"T",{h:1.5},"{\n\n\n\n\n\n[",{x:4.5,h:1.5},"}\n\n\n\n\n\n]","Y"],
-[{y:-0.875,c:"#c6c600",t:"#002299",w:1.5},"Media\n\nTab\n\n\n\nShift",{c:"#cccccc",t:"#000000"},"Q",{x:14.5},"P",{c:"#c6c600",t:"#002299",w:1.5},"|\n\\\nMedia\n\n\n\n\nShift"],
-[{y:-0.375,x:3.5,c:"#cccccc",t:"#000000"},"D",{x:10.5},"K"],
-[{y:-0.875,x:2.5},"S",{x:1,fa:[0,0,0,1]},"F\n\n\nreverse",{x:8.5},"J\n\n\nreverse",{x:1},"L"],
-[{y:-0.875,x:5.5},"G",{x:6.5},"H"],
-[{y:-0.875,c:"#c6c600",t:"#007d00",w:1.5},"Symbols\n\n\n\n\n\nShift",{c:"#cccccc",t:"#000000"},"A\n\n\nreverse",{x:14.5},":\n;\n\nreverse",{c:"#c6c600",t:"#007d00",w:1.5},"\"\n'\nSymbols\n\n\n\n\nShift"],
-[{y:-0.625,x:6.5,c:"#ff8500",t:"#000000",h:1.5},"< Tab\n\n\nShift Tab",{x:4.5,h:1.5},"Tab >\n\n\nTab"],
-[{y:-0.75,x:3.5,c:"#cccccc"},"C",{x:10.5},"<\n,"],
-[{y:-0.875,x:2.5},"X",{x:1},"V",{x:8.5},"M",{x:1},">\n."],
-[{y:-0.875,x:5.5},"B",{x:6.5},"N"],
-[{y:-0.875,c:"#c6c600",t:"#9e0000",w:1.5},"Capitals\n\n\n\n\n\nShift",{c:"#cccccc",t:"#000000"},"Z",{x:14.5},"?\n/",{c:"#c6c600",t:"#9e0000",w:1.5},"\n\nCapitals\n\n\n\n\nShift"],
-[{y:-0.375,x:3.5,c:"#dddd77",t:"#000000"},"Option\n\n\nLAlt",{x:10.5},"Option\n\n\nRAlt"],
-[{y:-0.875,x:2.5},"Hyper",{x:1},"Cmd\n\n\nSuper",{x:8.5},"Cmd\n\n\nSuper",{x:1},"Hyper"],
-[{y:-0.75,x:0.5},"Ctrl\n\n\nLCtrl","Meh",{x:14.5},"Meh","Ctrl\n\n\nRCtrl"],
-[{r:30,rx:6.5,ry:4.25,y:-1,x:1,c:"#ff8500"},"Home","End"],
-[{h:2},"< Del\n\n\nBackspace",{h:2},"Del >\n\n\nDelete","Page\n\n\n\n\n\nUp"],
-[{x:2},"Page\n\n\n\n\n\nDown"],
-[{r:-30,rx:13,y:-1,x:-3},"Left","Right"],
-[{x:-3},"Up",{h:2},"Enter",{h:2},"Space"],
-[{x:-3},"Down"]
-
diff --git a/layouts/community/ergodox/ordinary_osx/ordinary-media.txt b/layouts/community/ergodox/ordinary_osx/ordinary-media.txt
deleted file mode 100644
index 67b7840b52..0000000000
--- a/layouts/community/ergodox/ordinary_osx/ordinary-media.txt
+++ /dev/null
@@ -1,27 +0,0 @@
-[{x:3.5,c:"#99de2a"},"F13",{x:10.5},"F18"],
-[{y:-0.875,x:2.5},"F12",{x:1},"F14",{x:8.5},"F17",{x:1},"F19"],
-[{y:-0.875,x:5.5},"F15",{c:"#ff4444"},"Esc",{x:4.5,c:"#737373",a:7},"",{c:"#99de2a",a:4},"F16"],
-[{y:-0.875,c:"#c6c600",w:1.5},"Shift\n\n\n\n\n\nLock",{c:"#99de2a"},"F11",{x:14.5},"F20",{c:"#c6c600",w:1.5},"\n\nShift\n\n\n\n\nLock"],
-[{y:-0.375,x:3.5,c:"#0066cc"},"Mouse\n\n\n\n\n\nUp",{x:10.5},"Cursor\n\n\n\n\n\nUp"],
-[{y:-0.875,x:2.5},"Mouse\n\n\n\n\n\nUpLeft",{x:1},"Mouse\n\n\n\n\n\nUpRgt",{x:8.5,c:"#1e8fff"},"Home",{x:1},"Page\n\n\n\n\n\nUp"],
-[{y:-0.875,x:5.5,c:"#9977ee"},"Vol\n\n\n\n\n\nUp",{c:"#1e8fff",h:1.5},"Scroll\n\n\n\n\n\nUp",{x:4.5,h:1.5},"Scroll\n\n\n\n\n\nUp",{c:"#9977ee"},"Print\n\n\n\n\n\nScreen"],
-[{y:-0.875,c:"#000000",t:"#3f68ff",w:1.5},"Media\n\n\n\n\n\nShift",{c:"#9977ee",t:"#000000"},"Shut\n\n\n\n\n\nDown",{x:14.5},"Mail",{c:"#000000",t:"#3f68ff",w:1.5},"\n\nMedia\n\n\n\n\nShift"],
-[{y:-0.375,x:3.5,c:"#0066cc",t:"#000000"},"Mouse\n\n\n\n\n\nDown",{x:10.5},"Cursor\n\n\n\n\n\nDown"],
-[{y:-0.875,x:2.5},"Mouse\n\n\n\n\n\nLeft",{x:1},"Mouse\n\n\n\n\n\nRight",{x:8.5},"Cursor\n\n\n\n\n\nLeft",{x:1},"Cursor\n\n\n\n\n\nRight"],
-[{y:-0.875,x:5.5,c:"#9977ee"},"Vol\n\n\n\n\n\nDown",{x:6.5},"Num\n\n\n\n\n\nLock"],
-[{y:-0.875,c:"#c6c600",t:"#007d00",w:1.5},"Symbols\n\n\n\n\n\nShift",{c:"#9977ee",t:"#000000"},"Sleep",{x:14.5},"My\n\n\n\n\n\nComp",{c:"#c6c600",t:"#007d00",w:1.5},"\n\nSymbols\n\n\n\n\nShift"],
-[{y:-0.625,x:6.5,c:"#1e8fff",t:"#000000",h:1.5},"Scroll\n\n\n\n\n\nDown",{x:4.5,h:1.5},"Scroll\n\n\n\n\n\nDown"],
-[{y:-0.75,x:3.5,c:"#0066cc"},"Mouse\n\n\n\n\n\nDown",{x:10.5},"Cursor\n\n\n\n\n\nDown"],
-[{y:-0.875,x:2.5},"Mouse\n\n\n\n\n\nDnLeft",{x:1},"Mouse\n\n\n\n\n\nDnRgt",{x:8.5,c:"#1e8fff"},"End",{x:1},"Page\n\n\n\n\n\nDown"],
-[{y:-0.875,x:5.5,c:"#9977ee"},"Mute",{x:6.5,c:"#737373",a:7},""],
-[{y:-0.875,c:"#c6c600",t:"#9e0000",a:4,w:1.5},"Capitals\n\n\n\n\n\nShift",{c:"#737373",t:"#000000",a:7},"",{x:14.5},"",{c:"#c6c600",t:"#9e0000",a:4,w:1.5},"\n\nCapitals\n\n\n\n\nShift"],
-[{y:-0.375,x:3.5,c:"#0066cc",t:"#000000"},"Middle\n\n\n\n\n\nClick",{x:10.5,c:"#1e8fff"},"Delete"],
-[{y:-0.875,x:2.5,c:"#0066cc"},"Left\n\n\n\n\n\nClick",{x:1},"Right\n\n\n\n\n\nClick",{x:8.5,c:"#1e8fff"},"Insert",{x:1,c:"#737373",a:7},""],
-[{y:-0.75,x:0.5},"","",{x:14.5},"",""],
-[{r:30,rx:6.5,ry:4.25,y:-1,x:1,c:"#6633ee",a:4,fa:[0,0,0,1]},"Stop\n\n\nBrowser","Reload\n\n\nBrowser"],
-[{h:2},"< Web\n\n\nBrowser",{h:2},"Web >\n\n\nBrowser","Search\n\n\nBrowser"],
-[{x:2},"Home\n\n\nBrowser"],
-[{r:-30,rx:13,y:-1,x:-3},"Prev\n\n\nAudio\n\n\nTrack","Next\n\n\nAudio\n\n\nTrack"],
-[{x:-3,c:"#9977ee"},"Vol\n\n\n\n\n\nUp",{c:"#6633ee",h:2},"Stop\n\n\nAudio",{h:2},"Play\n\n\nAudio\n\n\nPause"],
-[{x:-3,c:"#9977ee"},"Vol\n\n\n\n\n\nDown"]
-
diff --git a/layouts/community/ergodox/ordinary_osx/ordinary-special.txt b/layouts/community/ergodox/ordinary_osx/ordinary-special.txt
deleted file mode 100644
index 97f40f9dbc..0000000000
--- a/layouts/community/ergodox/ordinary_osx/ordinary-special.txt
+++ /dev/null
@@ -1,27 +0,0 @@
-[{x:3.5,a:7},"",{x:10.5},""],
-[{y:-0.875,x:2.5},"",{x:1},"",{x:8.5},"",{x:1,a:4},"_\n\n\n\n\n\n-"],
-[{y:-0.875,x:5.5,a:7},"",{c:"#ff4444",a:4},"Esc",{x:4.5,c:"#cccccc",a:7},"",""],
-[{y:-0.875,c:"#000000",t:"#ff0000",a:4,w:1.5},"Special\n\n\n\n\n\nShift",{c:"#ff4444",t:"#000000"},"Esc",{x:14.5,c:"#ff8500"},"Back\n\n\n\n\n\nspace",{c:"#000000",t:"#ff0000",w:1.5},"\n\nSpecial\n\n\n\n\nShift"],
-[{y:-0.375,x:3.5,c:"#cccccc",t:"#000000",a:7},"",{x:10.5},""],
-[{y:-0.875,x:2.5},"",{x:1},"",{x:8.5},"",{x:1,a:4},"{\n["],
-[{y:-0.875,x:5.5,a:7},"",{h:1.5},"",{x:4.5,h:1.5},"",""],
-[{y:-0.875,c:"#c6c600",t:"#002299",a:4,w:1.5},"Media\n\n\n\n\n\nLock",{c:"#cccccc",t:"#000000",a:7},"",{x:14.5,a:4},"\n\n}\n]",{c:"#c6c600",t:"#002299",w:1.5},"Media\n\n\n\n\n\nLock"],
-[{y:-0.375,x:3.5,c:"#cccccc",t:"#000000",a:7},"",{x:10.5},""],
-[{y:-0.875,x:2.5},"",{x:1},"",{x:8.5},"",{x:1},""],
-[{y:-0.875,x:5.5},"",{x:6.5},""],
-[{y:-0.875,c:"#c6c600",t:"#007d00",a:4,w:1.5},"Symbols\n\n\n\n\n\nLock",{c:"#cccccc",t:"#000000",a:7},"",{x:14.5},"",{c:"#c6c600",t:"#007d00",a:4,w:1.5},"Symbols\n\n\n\n\n\nLock"],
-[{y:-0.625,x:6.5,c:"#cccccc",t:"#000000",a:7,h:1.5},"",{x:4.5,h:1.5},""],
-[{y:-0.75,x:3.5},"",{x:10.5},""],
-[{y:-0.875,x:2.5},"",{x:1},"",{x:8.5},"",{x:1},""],
-[{y:-0.875,x:5.5},"",{x:6.5},""],
-[{y:-0.875,c:"#c6c600",t:"#9e0000",a:4,w:1.5},"Capitals\n\n\n\n\n\nLock",{c:"#cccccc",t:"#000000",a:7},"",{x:14.5},"",{c:"#c6c600",t:"#9e0000",a:4,w:1.5},"Capitals\n\n\n\n\n\nLock"],
-[{y:-0.375,x:3.5,c:"#cccccc",t:"#000000",a:7},"",{x:10.5},""],
-[{y:-0.875,x:2.5},"",{x:1},"",{x:8.5},"",{x:1},""],
-[{y:-0.75,x:0.5},"","",{x:14.5},"",""],
-[{r:30,rx:6.5,ry:4.25,y:-1,x:1},"",""],
-[{h:2},"",{h:2},"",""],
-[{x:2},""],
-[{r:-30,rx:13,y:-1,x:-3},"",""],
-[{x:-3},"",{h:2},"",{h:2},""],
-[{x:-3},""]
-
diff --git a/layouts/community/ergodox/ordinary_osx/ordinary-symbol.txt b/layouts/community/ergodox/ordinary_osx/ordinary-symbol.txt
deleted file mode 100644
index 65eca9d6a5..0000000000
--- a/layouts/community/ergodox/ordinary_osx/ordinary-symbol.txt
+++ /dev/null
@@ -1,27 +0,0 @@
-[{x:3.5,c:"#99de2a"},"F3",{x:10.5},"F8"],
-[{y:-0.875,x:2.5},"F2",{x:1},"F4",{x:8.5},"F7",{x:1},"F9"],
-[{y:-0.875,x:5.5},"F5",{c:"#ff4444"},"Esc",{x:4.5,c:"#bbddbb"},"_\n\n\n\n\n\n-",{c:"#99de2a"},"F6"],
-[{y:-0.875,c:"#c6c600",w:1.5},"Shift\n\n\n\n\n\nLock",{c:"#99de2a"},"F1",{x:14.5},"F10",{c:"#c6c600",w:1.5},"\n\nShift\n\n\n\n\nLock"],
-[{y:-0.375,x:3.5,c:"#bbddbb"},"{",{x:10.5,c:"#89b087"},"8"],
-[{y:-0.875,x:2.5,c:"#bbddbb"},"@",{x:1},"}",{x:8.5,c:"#89b087"},"7",{x:1},"9"],
-[{y:-0.875,x:5.5,c:"#bbddbb"},"&",{h:1.5},"<",{x:4.5,h:1.5},">","|"],
-[{y:-0.875,c:"#c6c600",t:"#002299",w:1.5},"Media\n\n\n\n\n\nShift",{c:"#bbddbb",t:"#000000"},"!",{x:14.5,c:"#89b087"},"/",{c:"#c6c600",t:"#002299",w:1.5},"\n\nMedia\n\n\n\n\nShift"],
-[{y:-0.375,x:3.5,c:"#bbddbb",t:"#000000"},"(",{x:10.5,c:"#89b087"},"5"],
-[{y:-0.875,x:2.5,c:"#bbddbb"},"$",{x:1},")",{x:8.5,c:"#89b087"},"4",{x:1},"6"],
-[{y:-0.875,x:5.5,c:"#bbddbb"},"`",{x:6.5},"/"],
-[{y:-0.875,c:"#000000",t:"#007d00",w:1.5},"Symbols\n\n\n\n\n\nShift",{c:"#bbddbb",t:"#000000"},"#",{x:14.5,c:"#89b087"},"*",{c:"#000000",t:"#007d00",w:1.5},"\n\nSymbols\n\n\n\n\nShift"],
-[{y:-0.625,x:6.5,c:"#bbddbb",t:"#000000",a:6,h:1.5},"'",{x:4.5,h:1.5},"\""],
-[{y:-0.75,x:3.5,a:4},"[",{x:10.5,c:"#89b087"},"2"],
-[{y:-0.875,x:2.5,c:"#bbddbb"},"^",{x:1},"]",{x:8.5,c:"#89b087"},"1",{x:1},"3"],
-[{y:-0.875,x:5.5,c:"#bbddbb"},"~",{x:6.5},"\\"],
-[{y:-0.875,c:"#c6c600",t:"#9e0000",w:1.5},"Capitals\n\n\n\n\n\nShift",{c:"#bbddbb",t:"#000000"},"%",{x:14.5,c:"#89b087"},"-",{c:"#c6c600",t:"#9e0000",w:1.5},"\n\nCapitals\n\n\n\n\nShift"],
-[{y:-0.375,x:3.5,c:"#bbddbb",t:"#000000"},"<",{x:10.5,c:"#89b087"},"."],
-[{y:-0.875,x:2.5,c:"#bbddbb"},"*",{x:1},">",{x:8.5,c:"#89b087"},"0",{x:1},"="],
-[{y:-0.75,x:0.5,c:"#bbddbb"},";","&",{x:14.5,c:"#89b087"},"+","Enter"],
-[{r:30,rx:6.5,ry:4.25,y:-1,x:1,c:"#bbddbb"},"<=",">="],
-[{a:7,h:2},"+",{h:2},"=",{c:"#737373"},""],
-[{x:2,c:"#bbddbb",a:4},"!="],
-[{r:-30,rx:13,y:-1,x:-3,c:"#737373",a:7},"",""],
-[{x:-3},"",{c:"#bbddbb",h:2},"_",{h:2},"-"],
-[{x:-3,a:4},"->"]
-
diff --git a/layouts/community/ergodox/ordinary_osx/readme.md b/layouts/community/ergodox/ordinary_osx/readme.md
deleted file mode 100644
index 90ff500440..0000000000
--- a/layouts/community/ergodox/ordinary_osx/readme.md
+++ /dev/null
@@ -1,3 +0,0 @@
-# The Ordinary Layout for OSX #
-
-It is based on [Ordinary Layout](../ordinary/readme.md) with some keys re-mapped for OSX.
diff --git a/layouts/community/ergodox/osx_de_adnw_koy/keymap.c b/layouts/community/ergodox/osx_de_adnw_koy/keymap.c
deleted file mode 100644
index cd09d066a6..0000000000
--- a/layouts/community/ergodox/osx_de_adnw_koy/keymap.c
+++ /dev/null
@@ -1,141 +0,0 @@
-#include QMK_KEYBOARD_H
-#include "debug.h"
-#include "action_layer.h"
-
-#include "keymap_neo2.h"
-#include "keymap_uk.h"
-#include "keymap_colemak.h"
-#include "keymap_french_mac_iso.h"
-#include "keymap_nordic.h"
-#include "keymap_dvorak.h"
-#include "keymap_german.h"
-#include "keymap_norwegian.h"
-#include "keymap_swiss_fr.h"
-#include "keymap_german_mac_iso.h"
-#include "keymap_spanish.h"
-#include "keymap_bepo.h"
-
-#define BASE 0
-#define SYMB 1
-#define MDIA 2
-#define QWERTZ 3
-#define NUMB 4
-
-#define UNUSED 0
-
-//Layout keymap.c generated with ErgodoxLayoutGenerator V1.0BETA1
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-[BASE]=LAYOUT_ergodox(
-//left half
- KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_LCTL,
- KC_TAB, KC_K, KC_DOT, KC_O, KC_COMM, KC_Z, KC_LGUI,
- TG(QWERTZ), KC_H, KC_A, KC_E, KC_I, KC_U,
- KC_LSFT, CTL_T(KC_X), KC_Q, DE_ADIA, DE_UDIA, DE_ODIA, KC_LALT,
- LT(SYMB,KC_GRV), DE_LABK, LALT(KC_LSFT), KC_LEFT, KC_RGHT,
- TG(MDIA), MEH_T(LSFT(DE_ACUT)),
- KC_HOME,
- KC_BSPC, KC_DEL, KC_END,
- //right half
- KC_RCTL, KC_6, KC_7, KC_8, KC_9, KC_0, DE_MINS,
- KC_RGUI, KC_V, KC_G, KC_C, KC_L, KC_MINS, KC_Y,
- KC_D, KC_T, KC_R, KC_N, KC_S, LT(MDIA,KC_F),
- KC_RALT, KC_B, KC_P, KC_W, KC_M, CTL_T(KC_J), KC_RSFT,
- KC_UP, KC_DOWN, LGUI(KC_LSFT), KC_RBRC, LT(SYMB,KC_BSLS),
- ALL_T(DE_ACUT), TG(NUMB),
- KC_PGUP,
- KC_PGDN, KC_ENT, KC_SPC),
-[SYMB]=LAYOUT_ergodox(
-//left half
- KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_TRNS,
- KC_TRNS, KC_GRV, LSFT(KC_GRV), DE_EXLM, DE_QUES, KC_TRNS, KC_TRNS,
- KC_TRNS, DE_HASH, DE_DLR, LALT(LSFT(KC_7)), DE_SLSH, KC_DOT,
- KC_TRNS, KC_TRNS, DE_LABK, DE_PERC, LALT(KC_7), LALT(KC_N), KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS,
- KC_TRNS,
- KC_TRNS, KC_DEL, KC_TRNS,
- //right half
- KC_TRNS, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,
- KC_TRNS, LALT(LSFT(KC_7)), LALT(KC_5), LALT(KC_6), LALT(KC_7), DE_HASH, KC_F12,
- DE_SLSH, DE_LPRN, DE_RPRN, LALT(KC_8), LALT(KC_9), KC_TRNS,
- KC_TRNS, DE_AMPR, KC_GRV, LSFT(KC_GRV), DE_DQUO, DE_QUOT, DE_QUES,
- KC_TRNS, KC_DOT, KC_EXLM, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS,
- KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS),
-[MDIA]=LAYOUT_ergodox(
-//left half
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_MS_U, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_R, KC_TRNS,
- KC_TRNS, KC_WH_L, KC_WH_U, KC_WH_D, KC_WH_R, KC_BTN3, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_BTN1, KC_BTN2,
- KC_TRNS, KC_TRNS,
- KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS,
- //right half
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_MUTE, KC_MPRV, KC_MNXT, KC_UP, KC_TRNS,
- KC_VOLU, KC_VOLD, KC_LEFT, KC_DOWN, KC_RIGHT,
- KC_TRNS, KC_TRNS,
- KC_TRNS,
- KC_TRNS, KC_TRNS, KC_WBAK),
-[QWERTZ]=LAYOUT_ergodox(
-//left half
- KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, LGUI(KC_V),
- KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_LGUI,
- KC_TRNS, KC_A, KC_S, KC_D, KC_F, KC_G,
- KC_LSFT, CTL_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_LALT,
- LT(SYMB,KC_GRV), DE_LABK, LALT(KC_LSFT), KC_LEFT, KC_RGHT,
- KC_TRNS, MEH_T(LSFT(DE_ACUT)),
- KC_HOME,
- KC_BSPC, KC_DEL, KC_END,
- //right half
- LGUI(KC_C), KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS,
- KC_RGUI, KC_Y, KC_U, KC_I, KC_O, KC_P, DE_UDIA,
- KC_H, KC_J, KC_K, KC_L, KC_SCLN, LT(MDIA,DE_ADIA),
- KC_RALT, KC_N, KC_M, KC_COMM, KC_DOT, CTL_T(KC_SLSH), KC_RSFT,
- KC_UP, KC_DOWN, LGUI(KC_LSFT), KC_RBRC, LT(SYMB,KC_BSLS),
- ALL_T(DE_ACUT), KC_TRNS,
- KC_PGUP,
- KC_PGDN, KC_ENT, KC_SPC),
-[NUMB]=LAYOUT_ergodox(
-//left half
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS,
- KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS,
- //right half
- KC_TRNS, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,
- KC_TRNS, KC_UP, KC_7, KC_8, KC_9, LSFT(KC_RBRC), KC_F12,
- KC_DOWN, KC_4, KC_5, KC_6, KC_RBRC, KC_TRNS,
- KC_TRNS, LSFT(KC_6), KC_1, KC_2, KC_3, LSFT(KC_7), KC_TRNS,
- KC_0, KC_DOT, KC_0, KC_EQL, KC_TRNS,
- KC_TRNS, KC_TRNS,
- KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS),
-};
-
-// Runs constantly in the background, in a loop.
-void matrix_scan_user(void) {
-
-uint8_t layer = get_highest_layer(layer_state);
-
-ergodox_board_led_off();
-ergodox_right_led_1_off();
-ergodox_right_led_2_off();
-ergodox_right_led_3_off();
-switch (layer) {
-
-default:
-// none
-break;
-}
-
-};
diff --git a/layouts/community/ergodox/osx_de_adnw_koy/osx_de_adnw_koy_highres.png.md b/layouts/community/ergodox/osx_de_adnw_koy/osx_de_adnw_koy_highres.png.md
deleted file mode 100644
index 4d4b777e08..0000000000
--- a/layouts/community/ergodox/osx_de_adnw_koy/osx_de_adnw_koy_highres.png.md
+++ /dev/null
@@ -1 +0,0 @@
-https://i.imgur.com/5s9UKyc.png
diff --git a/layouts/community/ergodox/osx_fr/keymap.c b/layouts/community/ergodox/osx_fr/keymap.c
deleted file mode 100644
index 22451c1a30..0000000000
--- a/layouts/community/ergodox/osx_fr/keymap.c
+++ /dev/null
@@ -1,163 +0,0 @@
-// French AZERTY version of the default_osx file
-#include QMK_KEYBOARD_H
-#include "debug.h"
-#include "action_layer.h"
-#include "keymap_french_mac_iso.h"
-
-#define BASE 0 // default layer
-#define SYMB 1 // symbols
-#define MDIA 2 // media keys
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-/* Keymap 0: Basic layer
- *
- * ,--------------------------------------------------. ,--------------------------------------------------.
- * | - | & | é | " | ' | ( | LEFT | | RIGHT| § | è | ! | ç | à | ) |
- * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | Del | A | Z | E | R | T | L1 | | L1 | Y | U | I | O | P | ` |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | BkSp | Q | S | D | F | G |------| |------| H | J | K | L | M | LGui |
- * |--------+------+------+------+------+------| Hyper| | Meh |------+------+------+------+------+--------|
- * | LShift |W/Ctrl| X | C | V | B | | | | N | , |; / L2| : |=/Ctrl| RShift |
- * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * | ù /L1| < |AltShf| Left | Right| | Up | Down | ^ | $ | ~L1 |
- * `----------------------------------' `----------------------------------'
- * ,-------------. ,---------------.
- * | App | LGui | | Alt |Ctrl/Esc|
- * ,------|------|------| |------+--------+------.
- * | | | Home | | PgUp | | |
- * | Space|Backsp|------| |------| Tab |Enter |
- * | |ace | End | | PgDn | | |
- * `--------------------' `----------------------'
- */
-// If it accepts an argument (i.e, is a function), it doesn't need KC_.
-// Otherwise, it needs KC_*
-[BASE] = LAYOUT_ergodox( // layer 0 : default
- // left hand
- FR_MINS, FR_AMPR, FR_LEAC, FR_DQUO, FR_QUOT, FR_LPRN, KC_LEFT,
- KC_DEL, FR_A, FR_Z, KC_E, KC_R, KC_T, TG(1),
- KC_BSPC, FR_Q, KC_S, KC_D, KC_F, KC_G,
- KC_LSFT, CTL_T(FR_W), KC_X, KC_C, KC_V, KC_B, ALL_T(KC_NO),
- LT(SYMB,FR_LUGR), FR_LABK, LALT(KC_LSFT), KC_LEFT, KC_RGHT,
- ALT_T(KC_APP), KC_LGUI,
- KC_HOME,
- KC_SPC, KC_BSPC, KC_END,
-
- // right hand
- KC_RGHT, FR_SECT, FR_LEGR, FR_EXLM, FR_LCCE, FR_LAGR, FR_RPRN,
- TG(1), KC_Y, KC_U, KC_I, KC_O, KC_P, FR_GRV,
- KC_H, KC_J, KC_K, KC_L, FR_M, KC_LGUI,
- MEH_T(KC_NO), KC_N, FR_COMM, LT(MDIA, FR_SCLN), FR_COLN, CTL_T(FR_EQL), KC_RSFT,
- KC_UP, KC_DOWN, KC_LBRC, KC_RBRC, TT(SYMB),
- KC_LALT, CTL_T(KC_ESC),
- KC_PGUP,
- KC_PGDN, KC_TAB, KC_ENT
- ),
-/* Keymap 1: Symbol Layer
- *
- * ,--------------------------------------------------. ,--------------------------------------------------.
- * | | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | F11 |
- * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | | ! | @ | { | } | | | | | | Up | 7 | 8 | 9 | * | F12 |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | # | $ | ( | ) | ` |------| |------| Down | 4 | 5 | 6 | + | |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | % | ^ | [ | ] | ~ | | | | & | 1 | 2 | 3 | \ | |
- * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * | | | | | | | | , | 0 | = | |
- * `----------------------------------' `----------------------------------'
- * ,-------------. ,-------------.
- * | | | | | |
- * ,------|------|------| |------+------+------.
- * | | | | | | | |
- * | | |------| |------| | |
- * | | | | | | | |
- * `--------------------' `--------------------'
- */
-// SYMBOLS
-[SYMB] = LAYOUT_ergodox(
- // left hand
- KC_TRNS,KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_TRNS,
- KC_TRNS,FR_EXLM,FR_AT, FR_LCBR,FR_RCBR,FR_PIPE,KC_TRNS,
- KC_TRNS,FR_HASH,FR_DLR, FR_LPRN,FR_RPRN,FR_GRV,
- KC_TRNS,FR_PERC,FR_CIRC,FR_LBRC,FR_RBRC,FR_TILD,KC_TRNS,
- KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
- KC_TRNS,KC_TRNS,
- KC_TRNS,
- KC_TRNS,KC_TRNS,KC_TRNS,
- // right hand
- KC_TRNS, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,
- KC_TRNS, KC_UP, FR_7, FR_8, FR_9, FR_ASTR, KC_F12,
- KC_DOWN, FR_4, FR_5, FR_6, FR_PLUS, KC_TRNS,
- KC_TRNS, FR_AMPR, FR_1, FR_2, FR_3, FR_BSLS, KC_TRNS,
- KC_TRNS,FR_COMM, FR_0, FR_EQL, KC_TRNS,
- KC_TRNS, KC_TRNS,
- KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS
-),
-/* Keymap 2: Media and mouse keys
- *
- * ,--------------------------------------------------. ,--------------------------------------------------.
- * | | | | | | | | | | | | | | | |
- * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | | | | MsUp | | | | | | | | | | | |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | |MsLeft|MsDown|MsRght| |------| |------| | | | | | Play |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | | | | | | | | | | | Prev | Next | | |
- * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * | | | | Lclk | Rclk | |VolUp |VolDn | Mute | | |
- * `----------------------------------' `----------------------------------'
- * ,-------------. ,-------------.
- * | | | | | |
- * ,------|------|------| |------+------+------.
- * | | | | | | |Brwser|
- * | | |------| |------| |Back |
- * | | | | | | | |
- * `--------------------' `--------------------'
- */
-// MEDIA AND MOUSE
-LAYOUT_ergodox(
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_MS_U, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_R, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_BTN1, KC_BTN2,
- KC_TRNS, KC_TRNS,
- KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS,
- // right hand
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_MPRV, KC_MNXT, KC_TRNS, KC_TRNS,
- KC_VOLU, KC_VOLD, KC_MUTE, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS,
- KC_TRNS,
- KC_TRNS, KC_TRNS, KC_WBAK
-),
-};
-
-// Runs constantly in the background, in a loop.
-void matrix_scan_user(void) {
-
- uint8_t layer = get_highest_layer(layer_state);
-
- ergodox_board_led_off();
- ergodox_right_led_1_off();
- ergodox_right_led_2_off();
- ergodox_right_led_3_off();
- switch (layer) {
- // TODO: Make this relevant to the ErgoDox EZ.
- case 1:
- ergodox_right_led_1_on();
- break;
- case 2:
- ergodox_right_led_2_on();
- break;
- default:
- // none
- break;
- }
-
-};
diff --git a/layouts/community/ergodox/osx_kinesis_pnut/keymap.c b/layouts/community/ergodox/osx_kinesis_pnut/keymap.c
deleted file mode 100644
index f0be6d9a7f..0000000000
--- a/layouts/community/ergodox/osx_kinesis_pnut/keymap.c
+++ /dev/null
@@ -1,167 +0,0 @@
-// Netable differences vs. the default firmware for the ErgoDox EZ:
-// 1. The Cmd key is now on the right side, making Cmd+Space easier.
-// 2. The media keys work on OSX (But not on Windows).
-// Wanted to map default layer of my EZ to my existing Kinesis Mapping.
-// Only default layer was remapped all others layers are standard Ergodox EZ
-// Very personal mapping of-course, but who knows a starting point for others.
-
-#include QMK_KEYBOARD_H
-#include "debug.h"
-#include "action_layer.h"
-
-#define BASE 0 // default layer
-#define SYMB 1 // symbols
-#define MDIA 2 // media keys
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-/* Keymap 0: Basic layer
- *
- * ,--------------------------------------------------. ,--------------------------------------------------.
- * | CapsL | 1 | 2 | 3 | 4 | 5 | LEFT | | RIGHT| 6 | 7 | 8 | 9 | 0 | - |
- * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | TAB | Q | W | E | R | T | L1 | | L1 | Y | U | I | O | P | \ |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | ESC | A | S | D | F | G |------| |------| H | J | K | L |; / L2| '" |
- * |--------+------+------+------+------+------| Hyper| | Meh |------+------+------+------+------+--------|
- * | LShift |Z/Ctrl| X | C | V | B | | | | N | M | , | . |//Ctrl| RShift |
- * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * |AltShf|Grv/L1| '" | Left | Right| | Up | Down | [ | ] | ~L1 |
- * `----------------------------------' `----------------------------------'
- * ,-------------. ,-------------.
- * | LGui | App | | Ctrl/Esc | RGui |
- * ,------|------|------| |------+--------+------.
- * | | | Home | | = | | |
- * | Backs|Delete|------| |------| Enter |Space |
- * | pace | | End | | TAB | | |
- * `--------------------' `----------------------'
- */
-// If it accepts an argument (i.e, is a function), it doesn't need KC_.
-// Otherwise, it needs KC_*
-[BASE] = LAYOUT_ergodox( // layer 0 : default
- // left hand
- KC_CAPS, KC_1, KC_2, KC_3, KC_4, KC_5, KC_LEFT,
- KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, TG(1),
- KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G,
- KC_LSFT, CTL_T(KC_Z), KC_X, KC_C, KC_V, KC_B, ALL_T(KC_NO),
- LALT(KC_LSFT), LT(SYMB,KC_GRV),KC_QUOT,KC_LEFT,KC_RGHT,
- KC_LGUI, ALT_T(KC_APP),
- KC_HOME,
- KC_BSPC,KC_DEL,KC_END,
- // right hand
- KC_RGHT, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS,
- TG(1), KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS,
- KC_H, KC_J, KC_K, KC_L, LT(MDIA, KC_SCLN),KC_QUOTE,
- MEH_T(KC_NO),KC_N, KC_M, KC_COMM,KC_DOT, CTL_T(KC_SLSH), KC_RSFT,
- KC_UP, KC_DOWN,KC_LBRC,KC_RBRC, TT(SYMB),
- CTL_T(KC_ESC), KC_LGUI,
- KC_EQL,
- KC_TAB, KC_ENT, KC_SPC
- ),
-/* Keymap 1: Symbol Layer
- *
- * ,--------------------------------------------------. ,--------------------------------------------------.
- * | | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | F11 |
- * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | | ! | @ | { | } | | | | | | Up | 7 | 8 | 9 | * | F12 |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | # | $ | ( | ) | ` |------| |------| Down | 4 | 5 | 6 | + | |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | % | ^ | [ | ] | ~ | | | | & | 1 | 2 | 3 | \ | |
- * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * | | | | | | | | . | 0 | = | |
- * `----------------------------------' `----------------------------------'
- * ,-------------. ,-------------.
- * | | | | | |
- * ,------|------|------| |------+------+------.
- * | | | | | | | |
- * | | |------| |------| | |
- * | | | | | | | |
- * `--------------------' `--------------------'
- */
-// SYMBOLS
-[SYMB] = LAYOUT_ergodox(
- // left hand
- KC_TRNS,KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_TRNS,
- KC_TRNS,KC_EXLM,KC_AT, KC_LCBR,KC_RCBR,KC_PIPE,KC_TRNS,
- KC_TRNS,KC_HASH,KC_DLR, KC_LPRN,KC_RPRN,KC_GRV,
- KC_TRNS,KC_PERC,KC_CIRC,KC_LBRC,KC_RBRC,KC_TILD,KC_TRNS,
- KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
- KC_TRNS,KC_TRNS,
- KC_TRNS,
- KC_TRNS,KC_TRNS,KC_TRNS,
- // right hand
- KC_TRNS, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,
- KC_TRNS, KC_UP, KC_7, KC_8, KC_9, KC_ASTR, KC_F12,
- KC_DOWN, KC_4, KC_5, KC_6, KC_PLUS, KC_TRNS,
- KC_TRNS, KC_AMPR, KC_1, KC_2, KC_3, KC_BSLS, KC_TRNS,
- KC_TRNS,KC_DOT, KC_0, KC_EQL, KC_TRNS,
- KC_TRNS, KC_TRNS,
- KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS
-),
-/* Keymap 2: Media and mouse keys
- *
- * ,--------------------------------------------------. ,--------------------------------------------------.
- * | | | | | | | | | | | | | | | |
- * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | | | | MsUp | | | | | | | | | | | |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | |MsLeft|MsDown|MsRght| |------| |------| | | | | | Play |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | | | | | | | | | | | Prev | Next | | |
- * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * | | | | Lclk | Rclk | |VolUp |VolDn | Mute | | |
- * `----------------------------------' `----------------------------------'
- * ,-------------. ,-------------.
- * | | | | | |
- * ,------|------|------| |------+------+------.
- * | | | | | | |Brwser|
- * | | |------| |------| |Back |
- * | | | | | | | |
- * `--------------------' `--------------------'
- */
-// MEDIA AND MOUSE
-LAYOUT_ergodox(
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_MS_U, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_R, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_BTN1, KC_BTN2,
- KC_TRNS, KC_TRNS,
- KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS,
- // right hand
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_MPRV, KC_MNXT, KC_TRNS, KC_TRNS,
- KC_VOLU, KC_VOLD, KC_MUTE, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS,
- KC_TRNS,
- KC_TRNS, KC_TRNS, KC_WBAK
-),
-};
-
-// Runs constantly in the background, in a loop.
-void matrix_scan_user(void) {
-
- uint8_t layer = get_highest_layer(layer_state);
-
- ergodox_board_led_off();
- ergodox_right_led_1_off();
- ergodox_right_led_2_off();
- ergodox_right_led_3_off();
- switch (layer) {
- // TODO: Make this relevant to the ErgoDox EZ.
- case 1:
- ergodox_right_led_1_on();
- break;
- case 2:
- ergodox_right_led_2_on();
- break;
- default:
- // none
- break;
- }
-
-};
diff --git a/layouts/community/ergodox/osx_neo2/config.h b/layouts/community/ergodox/osx_neo2/config.h
deleted file mode 100644
index faa79da026..0000000000
--- a/layouts/community/ergodox/osx_neo2/config.h
+++ /dev/null
@@ -1,7 +0,0 @@
-#pragma once
-
-#undef TAPPING_TERM
-#define TAPPING_TERM 200
-
-#undef TAPPING_TOGGLE
-#define TAPPING_TOGGLE 2
diff --git a/layouts/community/ergodox/osx_neo2/keymap.c b/layouts/community/ergodox/osx_neo2/keymap.c
deleted file mode 100644
index 079a92a97e..0000000000
--- a/layouts/community/ergodox/osx_neo2/keymap.c
+++ /dev/null
@@ -1,720 +0,0 @@
-#include QMK_KEYBOARD_H
-#include "layers.h"
-#include "version.h"
-
-// Timer to detect tap/hold on NEO_RMOD3 key
-static uint16_t neo3_timer;
-// State bitmap to track which key(s) enabled NEO_3 layer
-// Bit 1 = LMOD state
-// Bit 2 = RMOD state
-// Bit 3 = Seen other keypress
-static uint8_t neo3_state = 0;
-// State bitmap to track key combo for CAPSLOCK
-static uint8_t capslock_state = 0;
-
-// bitmasks for modifier keys
-#define MOD_MASK_NONE 0
-
-// Used to trigger macros / sequences of keypresses
-enum custom_keycodes {
- PLACEHOLDER = SAFE_RANGE, // can always be here
- US_OSX_SMALL_UE,
- US_OSX_SMALL_AE,
- US_OSX_SMALL_OE,
- US_OSX_CAPITAL_UE,
- US_OSX_CAPITAL_AE,
- US_OSX_CAPITAL_OE,
- NEO2_LMOD3,
- NEO2_RMOD3,
- NEO2_1,
- NEO2_2,
- NEO2_3,
- NEO2_4,
- NEO2_5,
- NEO2_6,
- NEO2_7,
- NEO2_8,
- NEO2_9,
- NEO2_0,
- NEO2_MINUS,
- NEO2_UE,
- NEO2_AE,
- NEO2_OE,
- NEO2_COMMA,
- NEO2_DOT,
- NEO2_SHARP_S
-};
-
-#define NEO2_LMOD4 TT(NEO_4)
-#define NEO2_RMOD4 NEO2_LMOD4
-
-// NEO_3 special characters
-#define US_OSX_SUPERSCRIPT_1 KC_NO // ¹
-#define US_OSX_SUPERSCRIPT_2 KC_NO // ²
-#define US_OSX_SUPERSCRIPT_3 KC_NO // ³
-#define US_OSX_RSAQUO LALT(LSFT(KC_4)) // ›
-#define US_OSX_LSAQUO LALT(LSFT(KC_3)) // ‹
-#define US_OSX_CENT LALT(KC_4) // ¢
-#define US_OSX_YEN LALT(KC_Y) // ¥
-#define US_OSX_SBQUO LALT(LSFT(KC_0)) // ‚
-#define US_OSX_LEFT_SINGLE_QUOTE LALT(KC_RBRC) // ‘
-#define US_OSX_RIGHT_SINGLE_QUOTE LALT(LSFT(KC_RBRC)) // ’
-#define US_OSX_ELLIPSIS LALT(KC_SCLN) // …
-#define US_OSX_UNDERSCORE LSFT(KC_MINUS) // _
-#define US_OSX_LBRACKET KC_LBRC // [
-#define US_OSX_RBRACKET KC_RBRC // ]
-#define US_OSX_CIRCUMFLEX LSFT(KC_6) // ^
-#define US_OSX_EXCLAMATION LSFT(KC_1) // !
-#define US_OSX_LESSTHAN LSFT(KC_COMMA) // <
-#define US_OSX_GREATERTHAN LSFT(KC_DOT) // >
-#define US_OSX_EQUAL KC_EQUAL // =
-#define US_OSX_AMPERSAND LSFT(KC_7) // &
-#define US_OSX_SMALL_LONG_S KC_NO // ſ
-#define US_OSX_BSLASH KC_BACKSLASH
-#define US_OSX_SLASH KC_SLASH // /
-#define US_OSX_CLBRACKET LSFT(KC_LBRC) // {
-#define US_OSX_CRBRACKET LSFT(KC_RBRC) // }
-#define US_OSX_ASTERISK LSFT(KC_8) // *
-#define US_OSX_QUESTIONMARK LSFT(KC_SLASH) // ?
-#define US_OSX_LPARENTHESES LSFT(KC_9) // (
-#define US_OSX_RPARENTHESES LSFT(KC_0) // )
-#define US_OSX_HYPHEN_MINUS KC_MINUS // -
-#define US_OSX_COLON LSFT(KC_SCLN) // :
-#define US_OSX_AT LSFT(KC_2) // @
-#define US_OSX_HASH LSFT(KC_3) // #
-#define US_OSX_PIPE LSFT(KC_BACKSLASH) // |
-#define US_OSX_TILDE LSFT(KC_GRAVE) // ~
-#define US_OSX_BACKTICK KC_GRAVE // `
-#define US_OSX_PLUS LSFT(KC_EQUAL) // +
-#define US_OSX_PERCENT LSFT(KC_5) // %
-#define US_OSX_DOUBLE_QUOTE LSFT(KC_QUOTE) // "
-#define US_OSX_SINGLE_QUOTE KC_QUOTE // '
-#define US_OSX_SEMICOLON KC_SCLN // ;
-
-// NEO_4 special characters
-#define US_OSX_FEMININE_ORDINAL LALT(KC_9) // ª
-#define US_OSX_MASCULINE_ORDINAL LALT(KC_0) // º
-#define US_OSX_NUMERO_SIGN KC_NO // №
-#define US_OSX_MIDDLE_DOT LALT(LSFT(KC_9)) // ·
-#define US_OSX_BRITISH_POUND LALT(KC_3) // £
-#define US_OSX_CURRENCY_SIGN KC_NO // ¤
-#define US_OSX_INV_EXCLAMATION LALT(KC_1) // ¡
-#define US_OSX_INV_QUESTIONMARK LALT(LSFT(KC_SLASH)) // ¿
-#define US_OSX_DOLLAR KC_DOLLAR // $
-#define US_OSX_EM_DASH LALT(LSFT(KC_MINUS)) // —
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- /* NEO_1: Basic layer
- *
- * ,--------------------------------------------------. ,--------------------------------------------------.
- * | ---- | 1/° | 2/§ | 3/ | 4/» | 5/« | ESC | | US_1 | 6/$ | 7/€ | 8/„ | 9/“ | 0/” | -/— |
- * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | TAB | X | V | L | C | W | LCTL | | RCTL | K | H | G | F | Q | ß |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | NEO_3 | U | I | A | E | O |------| |------| S | N | R | T | D | Y |
- * |--------+------+------+------+------+------| LALT | | RALT |------+------+------+------+------+--------|
- * | LSHIFT | Ü | Ö | Ä | P | Z | | | | B | M | ,/– | ./• | J | RSHIFT |
- * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * | ---- | ---- | LCTL | LALT | LGUI | | RGUI | Left | Down | Up | Right|
- * `----------------------------------' `----------------------------------'
- * ,-------------. ,-------------.
- * | FKEYS| Home | | PgUp | FKEYS|
- * ,------|------|------| |------+------+------.
- * | Back-| | End | | PgDn | | |
- * | space|Delete|------| |------| Enter|Space |
- * | | | NEO_4| | NEO_4| | |
- * `--------------------' `--------------------'
- */
- [NEO_1] = LAYOUT_ergodox(
- // left hand side - main
- KC_NO /* NOOP */, NEO2_1, NEO2_2, NEO2_3, NEO2_4, NEO2_5, KC_ESCAPE,
- KC_TAB, KC_X, KC_V, KC_L, KC_C, KC_W, KC_LCTL,
- NEO2_LMOD3, KC_U, KC_I, KC_A, KC_E, KC_O, /* --- */
- KC_LSFT, NEO2_UE, NEO2_OE, NEO2_AE, KC_P, KC_Z, KC_LALT,
- KC_NO /* NOOP */, KC_NO /* NOOP */, KC_LCTL, KC_LALT, KC_LGUI, /* --- */ /* --- */
-
- // left hand side - thumb cluster
- /* --- */ MO(FKEYS), KC_HOME,
- /* KC_BSPC */ /* KC_DELETE */ KC_END,
- KC_BSPC, KC_DELETE, NEO2_LMOD4,
-
- // right hand side - main
- TO(US_1), NEO2_6, NEO2_7, NEO2_8, NEO2_9, NEO2_0, NEO2_MINUS,
- KC_RCTL, KC_K, KC_H, KC_G, KC_F, KC_Q, NEO2_SHARP_S,
- /* --- */ KC_S, KC_N, KC_R, KC_T, KC_D, NEO2_RMOD3,
- KC_RALT, KC_B, KC_M, NEO2_COMMA, NEO2_DOT, KC_J, KC_RSFT,
- /* --- */ /* --- */ KC_RGUI, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT,
-
- // right hand side - thumb cluster
- KC_PGUP, MO(FKEYS), /* --- */
- KC_PGDN, /* --- */ /* --- */
- NEO2_RMOD4, KC_ENTER, KC_SPACE
- ),
-
- /* NEO_3: Symbol layer
- *
- * ,--------------------------------------------------. ,--------------------------------------------------.
- * | ---- | ---- | ---- | ---- | › | ‹ | | | | ¢ | ¥ | ‚ | ‘ | ’ | ---- |
- * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | ---- | … | _ | [ | ] | ^ | | | | ! | < | > | = | & | ---- |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | \ | / | { | } | * |------| |------| ? | ( | ) | - | : | @ |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | # | $ | | | ~ | ` | | | | + | % | " | ' | ; | |
- * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * | | | | | | | | | | | |
- * `----------------------------------' `----------------------------------'
- * ,-------------. ,-------------.
- * | | | | | |
- * ,------|------|------| |------+------+------.
- * | | | | | | | |
- * | | |------| |------| | |
- * | | | | | | | |
- * `--------------------' `--------------------'
- */
- [NEO_3] = LAYOUT_ergodox(
- // left hand side - main
- KC_NO /* NOOP */, KC_NO /* NOOP */, KC_NO /* NOOP */, KC_NO /* NOOP */, US_OSX_RSAQUO, US_OSX_LSAQUO, _______,
- KC_NO /* NOOP */, US_OSX_ELLIPSIS, US_OSX_UNDERSCORE, US_OSX_LBRACKET, US_OSX_RBRACKET, US_OSX_CIRCUMFLEX, _______,
- _______, US_OSX_BSLASH, US_OSX_SLASH, US_OSX_CLBRACKET, US_OSX_CRBRACKET, US_OSX_ASTERISK, /* --- */
- _______, US_OSX_HASH, US_OSX_DOLLAR, US_OSX_PIPE, US_OSX_TILDE, US_OSX_BACKTICK, _______,
- _______, _______, _______, _______, _______, /* --- */ /* --- */
-
- // left hand side - thumb cluster
- /* --- */ _______, _______,
- /* --- */ /* --- */ _______,
- _______, _______, _______,
-
- // right hand side - main
- _______, US_OSX_CENT, US_OSX_YEN, US_OSX_SBQUO, US_OSX_LEFT_SINGLE_QUOTE, US_OSX_RIGHT_SINGLE_QUOTE, KC_NO,
- _______, US_OSX_EXCLAMATION, US_OSX_LESSTHAN, US_OSX_GREATERTHAN, US_OSX_EQUAL, US_OSX_AMPERSAND, US_OSX_SMALL_LONG_S,
- /* --- */ US_OSX_QUESTIONMARK, US_OSX_LPARENTHESES, US_OSX_RPARENTHESES, US_OSX_HYPHEN_MINUS, US_OSX_COLON, NEO2_RMOD3,
- _______, US_OSX_PLUS, US_OSX_PERCENT, US_OSX_DOUBLE_QUOTE, US_OSX_SINGLE_QUOTE, US_OSX_SEMICOLON, _______,
- /* --- */ /* --- */ _______, _______, _______, _______, _______,
-
- // right hand side - thumb cluster
- _______, _______, /* --- */
- _______, /* --- */ /* --- */
- _______, _______, _______
- ),
-
- /* NEO_4: Cursor & Numpad
- *
- * ,--------------------------------------------------. ,--------------------------------------------------.
- * | ---- | ª | º | ---- | · | £ | | | | ---- | Tab | / | * | - | ---- |
- * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | ---- | PgUp | ⌫ | Up | ⌦ | PgDn | | | | ¡ | 7 | 8 | 9 | + | – |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | Home | Left | Down | Right| End |------| |------| ¿ | 4 | 5 | 6 | , | . |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | Esc | Tab | Ins |Return| ---- | | | | : | 1 | 2 | 3 | ; | |
- * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * | | | | | | | | 0 | | | |
- * `----------------------------------' `----------------------------------'
- * ,-------------. ,-------------.
- * | | | | | |
- * ,------|------|------| |------+------+------.
- * | | | | | | | |
- * | | |------| |------| | |
- * | | | | | | | |
- * `--------------------' `--------------------'
- */
- [NEO_4] = LAYOUT_ergodox(
- // left hand side - main
- KC_NO /* NOOP */, US_OSX_FEMININE_ORDINAL, US_OSX_MASCULINE_ORDINAL, KC_NO /* NOOP */, US_OSX_MIDDLE_DOT, US_OSX_BRITISH_POUND, _______,
- _______, KC_PGUP, KC_BSPC, KC_UP, KC_DELETE, KC_PGDN, _______,
- _______, KC_HOME, KC_LEFT, KC_DOWN, KC_RIGHT, KC_END, /* --- */
- _______, KC_ESCAPE, KC_TAB, KC_INSERT, KC_ENTER, KC_NO /* NOOP */, _______,
- _______, _______, _______, _______, _______, /* --- */ /* --- */
-
- // left hand side - thumb cluster
- /* --- */ _______, _______,
- /* --- */ /* --- */ _______,
- _______, _______, _______,
-
- // right hand side - main
- _______, US_OSX_CURRENCY_SIGN, KC_TAB, KC_KP_SLASH, KC_KP_ASTERISK, KC_KP_MINUS, KC_NO /* NOOP */,
- _______, US_OSX_INV_EXCLAMATION, KC_KP_7, KC_KP_8, KC_KP_9, KC_KP_PLUS, US_OSX_EM_DASH,
- /* --- */ US_OSX_INV_QUESTIONMARK, KC_KP_4, KC_KP_5, KC_KP_6, KC_KP_COMMA, KC_KP_DOT,
- _______, US_OSX_COLON, KC_KP_1, KC_KP_2, KC_KP_3, US_OSX_SEMICOLON, _______,
- /* --- */ /* --- */ _______, KC_KP_0, _______, _______, _______,
-
- // right hand side - thumb cluster
- _______, _______, /* --- */
- _______, /* --- */ /* --- */
- _______, _______, _______
- ),
-
- /* NEO_5: Greek
- *
- * ,--------------------------------------------------. ,--------------------------------------------------.
- * | ---- | ---- | ---- | ---- | ---- | ---- | | | | ---- | ---- | ---- | ---- | ---- | ---- |
- * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | ---- | ---- | ---- | ---- | ---- | ---- | | | | ---- | ---- | ---- | ---- | ---- | ---- |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | ---- | ----| ---- | ---- | ---- |------| |------| ---- | ---- | ---- | ---- | ---- | ---- |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | ---- | ----| ---- | ---- | ---- | | | | ---- | ---- | ---- | ---- | ---- | |
- * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * | | | | | | | | | | | |
- * `----------------------------------' `----------------------------------'
- * ,-------------. ,-------------.
- * | | | | | |
- * ,------|------|------| |------+------+------.
- * | | | | | | | |
- * | | |------| |------| | |
- * | | | | | | | |
- * `--------------------' `--------------------'
- */
- [NEO_5] = LAYOUT_ergodox(
- // left hand side - main
- KC_NO /* NOOP */, KC_NO /* NOOP */, KC_NO /* NOOP */, KC_NO /* NOOP */, KC_NO /* NOOP */, KC_NO /* NOOP */, _______,
- KC_NO /* NOOP */, KC_NO /* NOOP */, KC_NO /* NOOP */, KC_NO /* NOOP */, KC_NO /* NOOP */, KC_NO /* NOOP */, _______,
- _______, KC_NO /* NOOP */, KC_NO /* NOOP */, KC_NO /* NOOP */, KC_NO /* NOOP */, KC_NO /* NOOP */, /* --- */
- _______, KC_NO /* NOOP */, KC_NO /* NOOP */, KC_NO /* NOOP */, KC_NO /* NOOP */, KC_NO /* NOOP */, _______,
- _______, _______, _______, _______, _______, /* --- */ /* --- */
-
- // left hand side - thumb cluster
- /* --- */ _______, _______,
- /* --- */ /* --- */ _______,
- _______, _______, _______,
-
- // right hand side - main
- _______, KC_NO /* NOOP */, KC_NO /* NOOP */, KC_NO /* NOOP */, KC_NO /* NOOP */, KC_NO /* NOOP */, KC_NO /* NOOP */,
- _______, KC_NO /* NOOP */, KC_NO /* NOOP */, KC_NO /* NOOP */, KC_NO /* NOOP */, KC_NO /* NOOP */, KC_NO /* NOOP */,
- /* --- */ KC_NO /* NOOP */, KC_NO /* NOOP */, KC_NO /* NOOP */, KC_NO /* NOOP */, KC_NO /* NOOP */, KC_NO /* NOOP */,
- _______, KC_NO /* NOOP */, KC_NO /* NOOP */, KC_NO /* NOOP */, KC_NO /* NOOP */, KC_NO /* NOOP */, _______,
- /* --- */ /* --- */ _______, _______, _______, _______, _______,
-
- // right hand side - thumb cluster
- _______, _______, /* --- */
- _______, /* --- */ /* --- */
- _______, _______, _______
- ),
-
- /* NEO_6: Math symbols
- *
- * ,--------------------------------------------------. ,--------------------------------------------------.
- * | ---- | ---- | ---- | ---- | ---- | ---- | | | | ---- | ---- | ---- | ---- | ---- | ---- |
- * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | ---- | ---- | ---- | ---- | ---- | ---- | | | | ---- | ---- | ---- | ---- | ---- | ---- |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | ---- | ----| ---- | ---- | ---- |------| |------| ---- | ---- | ---- | ---- | ---- | ---- |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | ---- | ----| ---- | ---- | ---- | | | | ---- | ---- | ---- | ---- | ---- | |
- * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * | | | | | | | | | | | |
- * `----------------------------------' `----------------------------------'
- * ,-------------. ,-------------.
- * | | | | | |
- * ,------|------|------| |------+------+------.
- * | | | | | | | |
- * | | |------| |------| | |
- * | | | | | | | |
- * `--------------------' `--------------------'
- */
- [NEO_6] = LAYOUT_ergodox(
- // left hand side - main
- KC_NO /* NOOP */, KC_NO /* NOOP */, KC_NO /* NOOP */, KC_NO /* NOOP */, KC_NO /* NOOP */, KC_NO /* NOOP */, _______,
- KC_NO /* NOOP */, KC_NO /* NOOP */, KC_NO /* NOOP */, KC_NO /* NOOP */, KC_NO /* NOOP */, KC_NO /* NOOP */, _______,
- _______, KC_NO /* NOOP */, KC_NO /* NOOP */, KC_NO /* NOOP */, KC_NO /* NOOP */, KC_NO /* NOOP */, /* --- */
- _______, KC_NO /* NOOP */, KC_NO /* NOOP */, KC_NO /* NOOP */, KC_NO /* NOOP */, KC_NO /* NOOP */, _______,
- _______, _______, _______, _______, _______, /* --- */ /* --- */
-
- // left hand side - thumb cluster
- /* --- */ _______, _______,
- /* --- */ /* --- */ _______,
- _______, _______, _______,
-
- // right hand side - main
- _______, KC_NO /* NOOP */, KC_NO /* NOOP */, KC_NO /* NOOP */, KC_NO /* NOOP */, KC_NO /* NOOP */, KC_NO /* NOOP */,
- _______, KC_NO /* NOOP */, KC_NO /* NOOP */, KC_NO /* NOOP */, KC_NO /* NOOP */, KC_NO /* NOOP */, KC_NO /* NOOP */,
- /* --- */ KC_NO /* NOOP */, KC_NO /* NOOP */, KC_NO /* NOOP */, KC_NO /* NOOP */, KC_NO /* NOOP */, KC_NO /* NOOP */,
- _______, KC_NO /* NOOP */, KC_NO /* NOOP */, KC_NO /* NOOP */, KC_NO /* NOOP */, KC_NO /* NOOP */, _______,
- /* --- */ /* --- */ _______, _______, _______, _______, _______,
-
- // right hand side - thumb cluster
- _______, _______, /* --- */
- _______, /* --- */ /* --- */
- _______, _______, _______
- ),
-
- /* US_1: US QWERTY
- *
- * ,--------------------------------------------------. ,--------------------------------------------------.
- * | = | 1 | 2 | 3 | 4 | 5 | ESC | | NEO_1| 6 | 7 | 8 | 9 | 0 | - |
- * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | \ | Q | W | E | R | T | ---- | | [ | Y | U | I | O | P | ] |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | TAB | A | S | D | F | G |------| |------| H | J | K | L | ; | ' |
- * |--------+------+------+------+------+------| ---- | | ---- |------+------+------+------+------+--------|
- * | LSHIFT | Z | X | C | V | B | | | | N | M | , | . | / | RSHIFT |
- * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * | LGUI | ` | ---- | ---- | FKEYS| | Left | Down | Up | Right| RGUI |
- * `----------------------------------' `----------------------------------'
- * ,-------------. ,-------------.
- * | LCTRL| LALT | | RALT | RCTRL|
- * ,------|------|------| |------+------+------.
- * | | | HOME | | PGUP | | |
- * | BKSP | DEL |------| |------| ENTR | SPCE |
- * | | | END | | PGDN | | |
- * `--------------------' `--------------------'
- */
- [US_1] = LAYOUT_ergodox(
- // left hand side - main
- KC_EQUAL, KC_1, KC_2, KC_3, KC_4, KC_5, KC_ESCAPE,
- KC_BSLS, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_NO /* NOOP */,
- KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, /* --- */
- KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_NO /* NOOP */,
- KC_LGUI, KC_GRAVE, KC_NO, KC_NO, MO(FKEYS), /* --- */ /* --- */
-
- // left hand side - thumb cluster
- /* --- */ KC_LCTL, KC_LALT,
- /* --- */ /* --- */ KC_HOME,
- KC_BSPC, KC_DELETE, KC_END,
-
- // right hand side - main
- TO(NEO_1), KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINUS,
- KC_LBRC, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_RBRC,
- /* --- */ KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOTE,
- KC_NO /* NOOP */, KC_N, KC_M, KC_COMMA, KC_DOT, KC_SLASH, KC_RSFT,
- /* --- */ /* --- */ KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, KC_RGUI,
-
- // right hand side - thumb cluster
- KC_RALT, KC_RCTL, /* --- */
- KC_PGUP, /* --- */ /* --- */
- KC_PGDN, KC_ENTER, KC_SPACE
- ),
-
- /* FKEYS: Function keys
- *
- * ,--------------------------------------------------. ,--------------------------------------------------.
- * | Prev | F1 | F2 | F3 | F4 | F5 | F11 | | F12 | F6 | F7 | F8 | F9 | F10 | VolUp |
- * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | Play | | | | | | | | | | | | | | VolDn |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | Next | | | | | |------| |------| | | | | | Mute |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | | | | | | | | | | | | | | |
- * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * | | | | | | | | | | | |
- * `----------------------------------' `----------------------------------'
- * ,-------------. ,-------------.
- * | | | | | |
- * ,------|------|------| |------+------+------.
- * | | | | | | | |
- * | | |------| |------| | |
- * | | | | | | | |
- * `--------------------' `--------------------'
- */
- [FKEYS] = LAYOUT_ergodox(
- // left hand side - main
- KC_MEDIA_REWIND, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F11,
- KC_MEDIA_PLAY_PAUSE, _______, _______, _______, _______, _______, _______,
- KC_MEDIA_FAST_FORWARD, _______, _______, _______, _______, _______, /* --- */
- _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, /* --- */ /* --- */
-
- // left hand side - thumb cluster
- /* --- */ _______, _______,
- /* --- */ /* --- */ _______,
- _______, _______, _______,
-
- // right hand side - main
- KC_F12, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_AUDIO_VOL_UP,
- _______, _______, _______, _______, _______, _______, KC_AUDIO_VOL_DOWN,
- /* --- */ _______, _______, _______, _______, _______, KC_AUDIO_MUTE,
- _______, _______, _______, _______, _______, _______, _______,
- /* --- */ /* --- */ _______, _______, _______, _______, _______,
-
- // right hand side - thumb cluster
- _______, _______, /* --- */
- _______, /* --- */ /* --- */
- _______, _______, _______
- ),
-};
-
-// Send a key tap with a optional set of modifiers.
-void tap_with_modifiers(uint16_t keycode, uint8_t force_modifiers) {
- uint8_t active_modifiers = get_mods();
-
- if ((force_modifiers & MOD_MASK_SHIFT) && !(active_modifiers & MOD_MASK_SHIFT)) register_code(KC_LSFT);
- if ((force_modifiers & MOD_MASK_CTRL) && !(active_modifiers & MOD_MASK_CTRL)) register_code(KC_LCTL);
- if ((force_modifiers & MOD_MASK_ALT) && !(active_modifiers & MOD_MASK_ALT)) register_code(KC_LALT);
- if ((force_modifiers & MOD_MASK_GUI) && !(active_modifiers & MOD_MASK_GUI)) register_code(KC_LGUI);
-
- register_code(keycode);
- unregister_code(keycode);
-
- if ((force_modifiers & MOD_MASK_SHIFT) && !(active_modifiers & MOD_MASK_SHIFT)) unregister_code(KC_LSFT);
- if ((force_modifiers & MOD_MASK_CTRL) && !(active_modifiers & MOD_MASK_CTRL)) unregister_code(KC_LCTL);
- if ((force_modifiers & MOD_MASK_ALT) && !(active_modifiers & MOD_MASK_ALT)) unregister_code(KC_LALT);
- if ((force_modifiers & MOD_MASK_GUI) && !(active_modifiers & MOD_MASK_GUI)) unregister_code(KC_LGUI);
-}
-
-// Special remapping for keys with different keycodes/macros when used with shift modifiers.
-bool process_record_user_shifted(uint16_t keycode, keyrecord_t *record) {
- uint8_t active_modifiers = get_mods();
- uint8_t shifted = active_modifiers & MOD_MASK_SHIFT;
- uint8_t command = active_modifiers & MOD_MASK_GUI;
-
- // Early return on key release
- if (!record->event.pressed) {
- return true;
- }
-
- if (shifted) {
- clear_mods();
-
- switch (keycode) {
- case NEO2_1:
- // degree symbol
- tap_code16(S(A(KC_8)));
- break;
- case NEO2_2:
- // section symbol
- tap_code16(A(KC_6));
- break;
- case NEO2_3:
- if (command) {
- tap_code16(S(G(KC_3)));
- } else {
- // There is no OSX key combination for the script small l character
- }
- break;
- case NEO2_4:
- if (command) {
- tap_code16(S(G(KC_4)));
- } else {
- tap_code16(S(A(KC_BACKSLASH)));
- }
- break;
- case NEO2_5:
- if (command) {
- tap_code16(S(G(KC_5)));
- } else {
- // left angled quote
- tap_code16(A(KC_BACKSLASH));
- }
- break;
- case NEO2_6:
- // dollar sign
- tap_code16(S(KC_4));
- break;
- case NEO2_7:
- // euro sign
- tap_code16(S(A(KC_2)));
- break;
- case NEO2_8:
- // low9 double quote
- tap_code16(S(A(KC_W)));
- break;
- case NEO2_9:
- // left double quote
- tap_code16(A(KC_LEFT_BRACKET));
- break;
- case NEO2_0:
- // right double quote
- tap_code16(S(A(KC_LEFT_BRACKET)));
- break;
- case NEO2_MINUS:
- // em dash
- tap_code16(S(A(KC_MINUS)));
- break;
- case NEO2_COMMA:
- // en dash
- tap_code16(A(KC_MINUS));
- break;
- case NEO2_DOT:
- // bullet
- tap_code16(A(KC_8));
- break;
- case NEO2_SHARP_S:
- // german sharp s
- tap_code16(S(KC_S));
- break;
- case NEO2_UE:
- tap_code16(A(KC_U));
- tap_code16(S(KC_U));
- break;
- case NEO2_OE:
- tap_code16(A(KC_U));
- tap_code16(S(KC_O));
- break;
- case NEO2_AE:
- tap_code16(A(KC_U));
- tap_code16(S(KC_A));
- break;
- default:
- set_mods(active_modifiers);
- return true;
- }
-
- set_mods(active_modifiers);
- return false;
- } else {
- switch (keycode) {
- case NEO2_1:
- tap_code(KC_1);
- break;
- case NEO2_2:
- tap_code(KC_2);
- break;
- case NEO2_3:
- tap_code(KC_3);
- break;
- case NEO2_4:
- tap_code(KC_4);
- break;
- case NEO2_5:
- tap_code(KC_5);
- break;
- case NEO2_6:
- tap_code(KC_6);
- break;
- case NEO2_7:
- tap_code(KC_7);
- break;
- case NEO2_8:
- tap_code(KC_8);
- break;
- case NEO2_9:
- tap_code(KC_9);
- break;
- case NEO2_0:
- tap_code(KC_0);
- break;
- case NEO2_MINUS:
- tap_code(KC_MINUS);
- break;
- case NEO2_COMMA:
- tap_code(KC_COMMA);
- break;
- case NEO2_DOT:
- tap_code(KC_DOT);
- break;
- case NEO2_SHARP_S:
- // german sharp s
- tap_code16(A(KC_S));
- break;
- case NEO2_UE:
- tap_code16(A(KC_U));
- tap_code(KC_U);
- break;
- case NEO2_OE:
- tap_code16(A(KC_U));
- tap_code(KC_O);
- break;
- case NEO2_AE:
- tap_code16(A(KC_U));
- tap_code(KC_A);
- break;
- default:
- return true;
- }
-
- return false;
- }
-}
-
-// Runs for each key down or up event.
-bool process_record_user(uint16_t keycode, keyrecord_t *record) {
- switch (keycode) {
- case KC_LSFT:
- if (record->event.pressed) {
- capslock_state |= (MOD_BIT(KC_LSFT));
- } else {
- capslock_state &= ~(MOD_BIT(KC_LSFT));
- }
- break;
- case KC_RIGHT_SHIFT:
- if (record->event.pressed) {
- capslock_state |= MOD_BIT(KC_RSFT);
- } else {
- capslock_state &= ~(MOD_BIT(KC_RSFT));
- }
- break;
- case NEO2_LMOD3:
- if (record->event.pressed) {
- layer_on(NEO_3);
- neo3_state |= (1 << 1);
- } else {
- // Turn off NEO_3 layer unless it's enabled through NEO2_RMOD3 as well.
- if ((neo3_state & (1 << 2)) == 0) {
- layer_off(NEO_3);
- }
- neo3_state &= ~(1 << 1);
- }
- break;
- case NEO2_RMOD3:
- if (record->event.pressed) {
- neo3_timer = timer_read();
- neo3_state |= (1 << 2);
- // Reset tap detection state
- neo3_state &= ~(1 << 3);
- layer_on(NEO_3);
- } else {
- // Turn off NEO_3 layer unless it's enabled through NEO2_LMOD3 as well.
- if ((neo3_state & (1 << 1)) == 0) {
- layer_off(NEO_3);
- }
- neo3_state &= ~(1 << 2);
-
- // Was the NEO2_RMOD3 key TAPPED?
- if (timer_elapsed(neo3_timer) <= TAPPING_TERM) {
- if ((neo3_state & ~(1 << 3)) > 0) {
- // We are still in NEO_3 layer, send keycode and modifiers for @
- tap_with_modifiers(KC_2, MOD_MASK_SHIFT);
- return false;
- } else {
- // Do the normal key processing, send y
- if ((neo3_state & (1 << 3)) == 0) {
- tap_with_modifiers(KC_Y, MOD_MASK_NONE);
- }
- return false;
- }
- }
- }
- break;
- default:
- if (record->event.pressed && neo3_state > 0) {
- // Track that we've seen a separate keypress event
- neo3_state |= (1 << 3);
- }
- break;
- }
-
- if ((capslock_state & MOD_MASK_SHIFT) == MOD_MASK_SHIFT) {
- // CAPSLOCK is currently active, disable it
- if (host_keyboard_led_state().caps_lock) {
- unregister_code(KC_LOCKING_CAPS_LOCK);
- } else {
- register_code(KC_LOCKING_CAPS_LOCK);
- }
- return false;
- }
-
- return process_record_user_shifted(keycode, record);
-};
-
-// Runs constantly in the background, in a loop.
-void matrix_scan_user(void) {
- uint8_t layer = get_highest_layer(layer_state);
-
- ergodox_board_led_off();
- ergodox_right_led_1_off();
- ergodox_right_led_2_off();
- ergodox_right_led_3_off();
- switch (layer) {
- // TODO: Make this relevant to the ErgoDox EZ.
- case 1:
- ergodox_right_led_1_on();
- break;
- case 2:
- ergodox_right_led_2_on();
- break;
- default:
- // none
- break;
- }
-};
diff --git a/layouts/community/ergodox/osx_neo2/layers.h b/layouts/community/ergodox/osx_neo2/layers.h
deleted file mode 100644
index a5e0cba00d..0000000000
--- a/layouts/community/ergodox/osx_neo2/layers.h
+++ /dev/null
@@ -1,9 +0,0 @@
-enum layers {
- NEO_1, // layer_0
- NEO_3, // layer_1
- NEO_4, // layer_2
- NEO_5, // layer_3
- NEO_6, // layer_4
- US_1, // layer_5
- FKEYS // layer_6
-}; \ No newline at end of file
diff --git a/layouts/community/ergodox/osx_neo2/readme.md b/layouts/community/ergodox/osx_neo2/readme.md
deleted file mode 100644
index cab4dfe709..0000000000
--- a/layouts/community/ergodox/osx_neo2/readme.md
+++ /dev/null
@@ -1,219 +0,0 @@
-# Neo 2 for ErgoDox on QWERTY
-
-# Description
-
-The Neo layout is an optimized German keyboard layout developed by the
-Neo Users Group, supporting many Latin-based alphabets. The positions
-of the letters are not only optimized for German letter frequency,
-but also for typical groups of two or three letters. English is
-considered a primary target as well.
-
-The design tries to enforce the alternating usage of both hands to
-increase typing speed and incorporates ideas from de-ergo and other
-ergonomic layouts. High frequency keys are placed in the home row.
-The current layout Neo 2.0 has unique features making it suited for
-many target groups such as programmers, mathematicians, scientists or
-LaTeX authors.
-
-Neo is grouped into six layers, each dedicated to a special purpose.
-
-# Layers
-
-At the core this is a Neo 2.0 layout adjusted for the Ergodox Infinity.
-The keymap is laid out expecting a macOs using the US QWERTY or ABC
-Extended layout.
-
-[Layer 1](#layer-1) Lowercase, upppercase and typographical characters
-
-[Layer 2](#layer-2) Special characters for programming
-
-[Layer 3](#layer-3) WASD-like movement keys and number block
-
-[Layer 4](#layer-4) Greek characters
-
-[Layer 5](#layer-5) Mathematical symbols and Greek uppercase characters
-
-[Layer 6](#layer-6) Ergodox Infinity US QWERTY layout
-
-[Layer 7](#layer-7) Function keys
-
-## Legend
-
- * Keys marked with `----` are dead keys.
- * Blank keys are transparent and fall through to lower levels.
-
-## Layer 1
-
-This layer implements NEO layers 1 and 2.
-
-```
-,--------------------------------------------------. ,--------------------------------------------------.
-| ---- | 1/° | 2/§ | 3/ | 4/» | 5/« | ESC | | US_1 | 6/$ | 7/€ | 8/„ | 9/“ | 0/” | -/— |
-|--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
-| TAB | X | V | L | C | W | LCTL | | RCTL | K | H | G | F | Q | ß |
-|--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
-| NEO_3 | U | I | A | E | O |------| |------| S | N | R | T | D | Y |
-|--------+------+------+------+------+------| LALT | | RALT |------+------+------+------+------+--------|
-| LSHIFT | Ü | Ö | Ä | P | Z | | | | B | M | ,/– | ./• | J | RSHIFT |
-`--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- | ---- | ---- | LCTL | LALT | LGUI | | RGUI | Left | Down | Up | Right|
- `----------------------------------' `----------------------------------'
- ,-------------. ,-------------.
- | FKEYS| Home | | PgUp | FKEYS|
- ,------|------|------| |------+------+------.
- | Back-| | End | | PgDn | | |
- | space|Delete|------| |------| Enter|Space |
- | | | NEO_4| | NEO_4| | |
- `--------------------' `--------------------'
-```
-
-## Layer 2
-
-This layer implements NEO layer 3.
-
-
-```
-,--------------------------------------------------. ,--------------------------------------------------.
-| ---- | ---- | ---- | ---- | › | ‹ | | | | ¢ | ¥ | ‚ | ‘ | ’ | ---- |
-|--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
-| ---- | … | _ | [ | ] | ^ | | | | ! | < | > | = | & | ---- |
-|--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
-| | \ | / | { | } | * |------| |------| ? | ( | ) | - | : | @ |
-|--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
-| | # | $ | | | ~ | ` | | | | + | % | " | ' | ; | |
-`--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- | | | | | | | | | | | |
- `----------------------------------' `----------------------------------'
- ,-------------. ,-------------.
- | | | | | |
- ,------|------|------| |------+------+------.
- | | | | | | | |
- | | |------| |------| | |
- | | | | | | | |
- `--------------------' `--------------------'
-```
-
-## Layer 3
-
-This layer implements NEO layer 4.
-
-```
-,--------------------------------------------------. ,--------------------------------------------------.
-| ---- | ª | º | ---- | · | £ | | | | ---- | Tab | / | * | - | ---- |
-|--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
-| ---- | PgUp | ⌫ | Up | ⌦ | PgDn | | | | ¡ | 7 | 8 | 9 | + | – |
-|--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
-| | Home | Left | Down | Right| End |------| |------| ¿ | 4 | 5 | 6 | , | . |
-|--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
-| | Esc | Tab | Ins |Return| ---- | | | | : | 1 | 2 | 3 | ; | |
-`--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- | | | | | | | | 0 | | | |
- `----------------------------------' `----------------------------------'
- ,-------------. ,-------------.
- | | | | | |
- ,------|------|------| |------+------+------.
- | | | | | | | |
- | | |------| |------| | |
- | | | | | | | |
- `--------------------' `--------------------'
-```
-
-## Layer 4
-
-This layer is currently empty/reserved for NEO layer 5.
-
-```
-,--------------------------------------------------. ,--------------------------------------------------.
-| ---- | ---- | ---- | ---- | ---- | ---- | | | | ---- | ---- | ---- | ---- | ---- | ---- |
-|--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
-| ---- | ---- | ---- | ---- | ---- | ---- | | | | ---- | ---- | ---- | ---- | ---- | ---- |
-|--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
-| | ---- | ----| ---- | ---- | ---- |------| |------| ---- | ---- | ---- | ---- | ---- | ---- |
-|--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
-| | ---- | ----| ---- | ---- | ---- | | | | ---- | ---- | ---- | ---- | ---- | |
-`--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- | | | | | | | | | | | |
- `----------------------------------' `----------------------------------'
- ,-------------. ,-------------.
- | | | | | |
- ,------|------|------| |------+------+------.
- | | | | | | | |
- | | |------| |------| | |
- | | | | | | | |
- `--------------------' `--------------------'
-```
-
-## Layer 5
-
-This layer is currently empty/reserved for NEO layer 6.
-
-```
-,--------------------------------------------------. ,--------------------------------------------------.
-| ---- | ---- | ---- | ---- | ---- | ---- | | | | ---- | ---- | ---- | ---- | ---- | ---- |
-|--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
-| ---- | ---- | ---- | ---- | ---- | ---- | | | | ---- | ---- | ---- | ---- | ---- | ---- |
-|--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
-| | ---- | ----| ---- | ---- | ---- |------| |------| ---- | ---- | ---- | ---- | ---- | ---- |
-|--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
-| | ---- | ----| ---- | ---- | ---- | | | | ---- | ---- | ---- | ---- | ---- | |
-`--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- | | | | | | | | | | | |
- `----------------------------------' `----------------------------------'
- ,-------------. ,-------------.
- | | | | | |
- ,------|------|------| |------+------+------.
- | | | | | | | |
- | | |------| |------| | |
- | | | | | | | |
- `--------------------' `--------------------'
-```
-
-## Layer 6
-
-A bare bones implementation of the default Ergodox Infinity layout.
-
-```
-,--------------------------------------------------. ,--------------------------------------------------.
-| = | 1 | 2 | 3 | 4 | 5 | ESC | | NEO_1| 6 | 7 | 8 | 9 | 0 | - |
-|--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
-| \ | Q | W | E | R | T | ---- | | [ | Y | U | I | O | P | ] |
-|--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
-| TAB | A | S | D | F | G |------| |------| H | J | K | L | ; | ' |
-|--------+------+------+------+------+------| ---- | | ---- |------+------+------+------+------+--------|
-| LSHIFT | Z | X | V | B | M | | | | N | M | , | . | / | RSHIFT |
-`--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- | LGUI | ` | ---- | ---- | FKEYS| | Left | Down | Up | Right| RGUI |
- `----------------------------------' `----------------------------------'
- ,-------------. ,-------------.
- | LCTRL| LALT | | RALT | RCTRL|
- ,------|------|------| |------+------+------.
- | | | HOME | | PGUP | | |
- | BKSP | DEL |------| |------| ENTR | SPCE |
- | | | END | | PGDN | | |
- `--------------------' `--------------------'
-```
-
-## Layer 7
-
-This layer implements function and multimedia keys.
-
-```
-,--------------------------------------------------. ,--------------------------------------------------.
-| Prev | F1 | F2 | F3 | F4 | F5 | F11 | | F12 | F6 | F7 | F8 | F9 | F10 | VolUp |
-|--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
-| Play | | | | | | | | | | | | | | VolDn |
-|--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
-| Next | | | | | |------| |------| | | | | | Mute |
-|--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
-| | | | | | | | | | | | | | | |
-`--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- | | | | | | | | | | | |
- `----------------------------------' `----------------------------------'
- ,-------------. ,-------------.
- | | | | | |
- ,------|------|------| |------+------+------.
- | | | | | | | |
- | | |------| |------| | |
- | | | | | | | |
- `--------------------' `--------------------'
-```
diff --git a/layouts/community/ergodox/osx_whiskey_tango_foxtrot_capslock/keymap.c b/layouts/community/ergodox/osx_whiskey_tango_foxtrot_capslock/keymap.c
deleted file mode 100644
index 592a70238a..0000000000
--- a/layouts/community/ergodox/osx_whiskey_tango_foxtrot_capslock/keymap.c
+++ /dev/null
@@ -1,221 +0,0 @@
-/*
- * This is built out of frustration with OSX / Sierra caps lock delay.
- * Fake it till you make it!
- */
-
-#include QMK_KEYBOARD_H
-
-enum layer_names {
- BASE, // default layer
- SYMB, // symbols
- MDIA // media keys
-};
-
-#define BLINK_BASE 150U // timer threshold for blinking on MDIA layer
-
-typedef enum onoff_t {OFF, ON} onoff;
-
-#define caps_led_on ergodox_right_led_2_on
-#define caps_led_off ergodox_right_led_2_off
-
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-/* Keymap 0: Basic layer
- *
- * ,--------------------------------------------------. ,--------------------------------------------------.
- * | Esc | 1 | 2 | 3 | 4 | 5 | 6 | | ` | 7 | 8 | 9 | 0 | - | = |
- * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | Tab | Q | W | E | R | T | [ | | ] | Y | U | I | O | P | \ |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | CapsL | A | S | D | F | G |------| |------| H | J | K | L | ; | " |
- * |--------+------+------+------+------+------| ~L1 | | ~L1 |------+------+------+------+------+--------|
- * | LShift | Z | X | C | V | B | | | | N | M | , | . | / | RShift |
- * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * | Ctrl | Opt | Cmd | Left | Right| | Down | Up | Ctrl | Cmd | Opt |
- * `----------------------------------' `----------------------------------'
- * ,-------------. ,-------------.
- * | | L1 | | Alt | Ctrl ]
- * ,------|------|------| |------+--------+------.
- * | | | Home | | PgUp | | |
- * |Backsp| Del |------| |------| Enter | Spc |
- * | | | End | | PgDn | | |
- * `--------------------' `----------------------'
- */
-
- [BASE] = LAYOUT_ergodox( // layer 0 : default
- // left hand
- KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6,
- KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_LBRC,
- KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G,
- KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, MO(SYMB),
- KC_LCTL, KC_LALT, KC_LGUI, KC_LEFT, KC_RGHT,
- KC_TRNS, TG(SYMB),
- KC_HOME,
- KC_BSPC, KC_DEL, KC_END,
- // right hand
- KC_GRV, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL,
- KC_RBRC, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS,
- KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
- MO(SYMB), KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,
- KC_DOWN, KC_UP, KC_RCTL, KC_RGUI, KC_RALT,
- KC_RALT, KC_RCTL,
- KC_PGUP,
- KC_PGDN, KC_ENT, KC_SPC
- ),
-/* Keymap 1: Symbol Layer
- *
- * ,--------------------------------------------------. ,--------------------------------------------------.
- * | ` | F1 | F2 | F3 | F4 | F5 | F6 | | | F7 | F8 | F9 | F10 | F11 | F12 |
- * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | | | | | | | | | | | | | | | |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | | | | | |------| |------| | | | | | |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | | | | | | | | | | | | | | |
- * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * | | | | | | | | | | | |
- * `----------------------------------' `----------------------------------'
- * ,-------------. ,-------------.
- * | L0 | L2 | | | |
- * ,------|------|------| |------+------+------.
- * | | | | | | | |
- * | | |------| |------| | |
- * | | | | | | | |
- * `--------------------' `--------------------'
- */
-// SYMBOLS
- [SYMB] = LAYOUT_ergodox(
- // left hand
- KC_GRV ,KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6,
- KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
- KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
- KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
- KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
- TG(SYMB),TG(MDIA),
- KC_TRNS,
- KC_TRNS,KC_TRNS,KC_TRNS,
- // right hand
- KC_TRNS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,
- KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS,
- KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS
- ),
-/* Keymap 2: Media and tenkey
- *
- * ,--------------------------------------------------. ,--------------------------------------------------.
- * | BOOTL | | Mute | Vol- | Vol+ | F14 | F15 | | | | NumLk| / | * | - | |
- * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | | | | | | | | | | | 7 | 8 | 9 | + | |
- * |--------+------+------+------+------+------| | | |------+-----+-------+------+------+--------|
- * | | | | | | |------| |------| | 4 | 5 | 6 | + | |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | | | | | | | | | | 1 | 2 | 3 | Enter| |
- * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * | | | | | | | 0 | 0 | . | Enter| |
- * `----------------------------------' `----------------------------------'
- * ,-------------. ,-------------.
- * | L1 | | | | |
- * ,------|------|------| |------+------+------.
- * | | | | | | | |
- * | | |------| |------| | |
- * | | | | | | | |
- * `--------------------' `--------------------'
- */
- // MEDIA AND TENKEY
- [MDIA] = LAYOUT_ergodox(
- QK_BOOT, KC_NO, KC_MUTE, KC_VOLD, KC_VOLU, KC_F14, KC_F15,
- KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
- KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
- KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_NO, KC_NO,
- TG(MDIA),KC_NO,
- KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS,
- // right hand
- KC_NO, KC_NO, KC_NUM, KC_PSLS, KC_PAST, KC_PMNS, KC_NO,
- KC_NO, KC_NO, KC_P7, KC_P8, KC_P9, KC_PPLS, KC_NO,
- KC_NO, KC_P4, KC_P5, KC_P6, KC_PPLS, KC_NO,
- KC_NO, KC_NO, KC_P1, KC_P2, KC_P3, KC_PENT, KC_NO,
- KC_P0, KC_P0, KC_PDOT, KC_PENT, KC_NO,
- KC_NO, KC_NO,
- KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS
- ),
-};
-#ifndef NO_FAKE_CAPS
-bool process_record_user(uint16_t keycode, keyrecord_t *record) {
- static onoff caps_state = OFF;
-
- switch (keycode) {
- case KC_CAPS:
- if (record->event.pressed) {
- if (caps_state == OFF) {
- caps_led_on();
- caps_state = ON;
- } else {
- caps_led_off();
- caps_state = OFF;
- }
- }
- break;
- default:
- if (keycode < KC_A || keycode > KC_Z) {
- // This isn't an alpha or a KC_CAPS, continue on as usual.
- return true;
- }
- if (record->event.pressed) {
- bool shifted = (caps_state == ON && get_mods() == 0);
- if (shifted) {
- register_code(KC_LSFT);
- }
- register_code(keycode);
- if (shifted) {
- unregister_code(KC_LSFT);
- }
- } else {
- unregister_code(keycode);
- }
- break;
- }
- // If we get here, we've already handled the keypresses.
- return false;
-}
-#endif
-
-// Runs constantly in the background, in a loop.
-void matrix_scan_user(void) {
- uint8_t layer = get_highest_layer(layer_state);
-
- static onoff board_led_state = OFF;
- static uint16_t dt = 0;
- static uint8_t oldlayer = 0;
-
- if (oldlayer != layer) {
- // Layer was just toggled.
- if (layer == BASE) {
- ergodox_board_led_off();
- board_led_state = OFF;
- } else {
- ergodox_board_led_on();
- board_led_state = ON;
- }
- } else if (layer >= MDIA) {
- // We need to do blinking.
- if (timer_elapsed(dt) > BLINK_BASE) {
- // toggle
- dt = timer_read();
- if (board_led_state == OFF) {
- ergodox_board_led_on();
- board_led_state = ON;
- } else {
- ergodox_board_led_off();
- board_led_state = OFF;
- }
- }
- }
- oldlayer = layer;
-}
diff --git a/layouts/community/ergodox/osx_whiskey_tango_foxtrot_capslock/readme.md b/layouts/community/ergodox/osx_whiskey_tango_foxtrot_capslock/readme.md
deleted file mode 100644
index 3bae07977a..0000000000
--- a/layouts/community/ergodox/osx_whiskey_tango_foxtrot_capslock/readme.md
+++ /dev/null
@@ -1,38 +0,0 @@
-# The extra special ergodox build for MacOS Sierra caps lock users
-
-### Do you
-- Hate the OSX / MacOS caps lock delay?
-- Have an ergodox?
-
-### Then this might just be for you!
-
-[This](http://apple.stackexchange.com/questions/81234/how-to-remove-caps-lock-delay-on-apple-macbook-pro-aluminum-keyboard)
-and [this](http://sleepycow.org/2014/07/removing-the-caps-lock-delay-on-a-macbook/)
-are good workarounds for the caps lock delay, however none of these
-work on Sierra. This abomination of a keymap simulates capslock to the best
-of its abilities.
-This means that it keeps track of caps lock state internally rather than
-sending a caps lock keypress to the OS. It is smart enough to check for
-modifiers, such as Control being held down, and stop it with the hanky panky
-and just send on the key event unmolested even if FakeCaps is enabled. And
-since the macro isn't even registered on the non-alphas, it will not affect
-them regardless. Only in the event that FakeCaps is enabled and an alpha key
-is pressed will it sneak in a shift keydown before the alpha keydown and
-immediately afterward sneaks in a shift keyup. Generally this works well,
-however there is one known issue:
-
-- Holding down a key will only have the first character in caps. For instance,
- with caps lock on, if you hold down the 'a' key, you get:
-
- ```
- Aaaaaaaaaaaaaaaaaa
- ```
-
-I have only tested this on an original Ergodox with a Teensy 2.0.
-
-#### Some other small tweaks
- - Layer 0 board light is off
- - Layer 1 board light is on solid
- - Layer 2 board light blinks at speed controlled by BLINK_BASE
-
-![osx whiskey tango foxtrot](https://i.imgur.com/yQl1DFe.png)
diff --git a/layouts/community/ergodox/osx_whiskey_tango_foxtrot_capslock/rules.mk b/layouts/community/ergodox/osx_whiskey_tango_foxtrot_capslock/rules.mk
deleted file mode 100644
index e8242c2695..0000000000
--- a/layouts/community/ergodox/osx_whiskey_tango_foxtrot_capslock/rules.mk
+++ /dev/null
@@ -1,2 +0,0 @@
-# uncomment below to disable fake capslock
-# OPT_DEFS += -DNO_FAKE_CAPS
diff --git a/layouts/community/ergodox/phoenix/keymap.c b/layouts/community/ergodox/phoenix/keymap.c
deleted file mode 100644
index 4371e5f2e7..0000000000
--- a/layouts/community/ergodox/phoenix/keymap.c
+++ /dev/null
@@ -1,160 +0,0 @@
-#include QMK_KEYBOARD_H
-#include "debug.h"
-#include "action_layer.h"
-
-#define BASE 0 // default layer
-#define SYMB 1 // symbols
-#define MDIA 2 // media keys
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-/* Keymap 0: Basic layer
- *
- * ,--------------------------------------------------. ,--------------------------------------------------.
- * | Esc | 1 | 2 | 3 | 4 | 5 | _ | | Del | 6 | 7 | 8 | 9 | 0 | - |
- * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | Tab | Q | W | E | R | T | L1 | | L1 | Y | U | I | O | P | \ |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | = | A | S | D | F | G |------| |------| H | J | K | L |; / L2|' / Cmd |
- * |--------+------+------+------+------+------| Hyper| | Meh |------+------+------+------+------+--------|
- * | LShift |Z/Ctrl| X | C | V | B | | | | N | M | , | . |//Ctrl| RShift |
- * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * |Grv/L1| '" |AltShf| Left | Right| | Down | UP | [ | ] | ~L1 |
- * `----------------------------------' `----------------------------------'
- * ,-------------. ,-------------.
- * | App | Home | | Alt |Ctrl/Esc|
- * ,------|------|------| |------+--------+------.
- * | | | End | | PgUp | | |
- * | Space|Backsp|------| |------| Enter |Space |
- * | |ace | LGui | | PgDn | | |
- * `--------------------' `----------------------'
- */
-// If it accepts an argument (i.e, is a function), it doesn't need KC_.
-// Otherwise, it needs KC_*
-[BASE] = LAYOUT_ergodox( // layer 0 : default
- // left hand
- KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, LSFT(KC_MINS),
- KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, TG(SYMB),
- KC_EQL, KC_A, KC_S, KC_D, KC_F, KC_G,
- KC_LSFT, CTL_T(KC_Z), KC_X, KC_C, KC_V, KC_B, ALL_T(KC_NO),
- LT(SYMB,KC_GRV),KC_QUOT, LALT(KC_LSFT), KC_LEFT,KC_RGHT,
- ALT_T(KC_APP), KC_HOME,
- KC_END,
- KC_SPC,KC_BSPC,KC_LGUI,
- // right hand
- KC_DEL, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS,
- TG(SYMB), KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS,
- KC_H, KC_J, KC_K, KC_L, LT(MDIA, KC_SCLN),GUI_T(KC_QUOT),
- MEH_T(KC_NO),KC_N, KC_M, KC_COMM,KC_DOT, CTL_T(KC_SLSH), KC_RSFT,
- KC_DOWN,KC_UP ,KC_LBRC,KC_RBRC, TT(SYMB),
- KC_LALT, CTL_T(KC_ESC),
- KC_PGUP,
- KC_PGDN,KC_ENT, KC_SPC
- ),
-/* Keymap 1: Symbol Layer
- *
- * ,--------------------------------------------------. ,--------------------------------------------------.
- * | | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | |
- * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | | F11 | F12 | | | | | | | Up | 7 | 8 | 9 | * | |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | | | | | ` |------| |------| Down | 4 | 5 | 6 | + | |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | | | | | | | | | & | 1 | 2 | 3 | \ | |
- * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * | | | | | | | 0 | 0 | . | = | |
- * `----------------------------------' `----------------------------------'
- * ,-------------. ,-------------.
- * | | | | | |
- * ,------|------|------| |------+------+------.
- * | | | | | | | |
- * | | |------| |------| | |
- * | | | | | | | |
- * `--------------------' `--------------------'
- */
-// SYMBOLS
-[SYMB] = LAYOUT_ergodox(
- // left hand
- KC_TRNS,KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_TRNS,
- KC_TRNS,KC_F11, KC_F12, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
- KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
- KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
- KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
- KC_TRNS,KC_TRNS,
- KC_TRNS,
- KC_TRNS,KC_TRNS,KC_TRNS,
- // right hand
- KC_TRNS, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_TRNS,
- KC_TRNS, KC_UP, KC_7, KC_8, KC_9, KC_ASTR, KC_TRNS,
- KC_DOWN, KC_4, KC_5, KC_6, KC_PLUS, KC_TRNS,
- KC_TRNS, KC_AMPR, KC_1, KC_2, KC_3, KC_BSLS, KC_TRNS,
- KC_0, KC_0, KC_DOT, KC_EQL, KC_TRNS,
- KC_TRNS, KC_TRNS,
- KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS
-),
-/* Keymap 2: Media and mouse keys
- *
- * ,--------------------------------------------------. ,--------------------------------------------------.
- * | | | | | | | | | | | | | | | |
- * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | | | | MsUp | | | | | | | | | | | |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | |MsLeft|MsDown|MsRght| |------| |------| | | | | | Play |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | | | | | | | | | | | Prev | Next | | |
- * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * | | | | Lclk | Rclk | |VolDn |VolUp | Mute | | |
- * `----------------------------------' `----------------------------------'
- * ,-------------. ,-------------.
- * | | | | | |
- * ,------|------|------| |------+------+------.
- * | | | | | | |Brwser|
- * | | |------| |------| |Back |
- * | | | | | | | |
- * `--------------------' `--------------------'
- */
-// MEDIA AND MOUSE
-[MDIA] = LAYOUT_ergodox(
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_MS_U, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_R, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_BTN1, KC_BTN2,
- KC_TRNS, KC_TRNS,
- KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS,
- // right hand
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_MPRV, KC_MNXT, KC_TRNS, KC_TRNS,
- KC_VOLD, KC_VOLU, KC_MUTE, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS,
- KC_TRNS,
- KC_TRNS, KC_TRNS, KC_WBAK
-),
-};
-
-// Runs constantly in the background, in a loop.
-void matrix_scan_user(void) {
-
- uint8_t layer = get_highest_layer(layer_state);
-
- ergodox_board_led_off();
- ergodox_right_led_1_off();
- ergodox_right_led_2_off();
- ergodox_right_led_3_off();
- switch (layer) {
- // TODO: Make this relevant to the ErgoDox EZ.
- case 1:
- ergodox_right_led_1_on();
- break;
- case 2:
- ergodox_right_led_2_on();
- break;
- default:
- // none
- break;
- }
-
-};
diff --git a/layouts/community/ergodox/phoenix/readme.md b/layouts/community/ergodox/phoenix/readme.md
deleted file mode 100644
index b1053bfb78..0000000000
--- a/layouts/community/ergodox/phoenix/readme.md
+++ /dev/null
@@ -1,10 +0,0 @@
-# ErgoDox EZ Phoenix Configuration
-
-I started working using the default layout. The changes that I made are largely things that I consistely do wrong.
-
-As a programmer I hit tab a lot for autocomplete so that muscle memory is very difficult to re-write. The stragest change might be all the keys that I cleared in the Code layer. This is mainly to facilitate quickly typing uuids, as sometimes it is quite tedious to copy/paste them from one window to the other.
-
-## Changelog
-
-* April 25, 2016 (V1.0):
- * Initial submission.
diff --git a/layouts/community/ergodox/plover/keymap.c b/layouts/community/ergodox/plover/keymap.c
deleted file mode 100644
index 7b34dde2ed..0000000000
--- a/layouts/community/ergodox/plover/keymap.c
+++ /dev/null
@@ -1,204 +0,0 @@
-#include QMK_KEYBOARD_H
-#include "debug.h"
-#include "action_layer.h"
-
-#define BASE 0 // default layer
-#define SYMB 1 // symbols
-#define MDIA 2 // media keys
-#define PLVR 3 // Plover layer
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-/* Keymap 0: Basic layer
- *
- * ,--------------------------------------------------. ,--------------------------------------------------.
- * | = | 1 | 2 | 3 | 4 | 5 | LGui | | RIGHT| 6 | 7 | 8 | 9 | 0 | - |
- * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | Tab | Q | W | E | R | T | L1 | |Plover| Y | U | I | O | P | \ |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | Esc | A | S | D | F | G |------| |------| H | J | K | L |; / L2| ' |
- * |--------+------+------+------+------+------| Hyper| | Meh |------+------+------+------+------+--------|
- * | LShift |Z/Ctrl| X | C | V | B | | | | N | M | , | . |//Ctrl| RShift |
- * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * |Grv/L1| '" |AltShf| Left | Right| | Up | Down | [ | ] | ~L1 |
- * `----------------------------------' `----------------------------------'
- * ,-------------. ,-------------.
- * | App | Home | | Alt |Ctrl/Esc|
- * ,------|------|------| |------+--------+------.
- * | | | End | | PgUp | | |
- * |Backsp|Delete|------| |------| Enter |Space |
- * | ace | | LAlt | | PgDn | | |
- * `--------------------' `----------------------'
- */
-// If it accepts an argument (i.e, is a function), it doesn't need KC_.
-// Otherwise, it needs KC_*
-[BASE] = LAYOUT_ergodox( // layer 0 : default
- // left hand
- KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, KC_LGUI,
- KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, TG(1),
- KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G,
- KC_LSFT, CTL_T(KC_Z), KC_X, KC_C, KC_V, KC_B, ALL_T(KC_NO),
- LT(SYMB,KC_GRV),KC_QUOT, LALT(KC_LSFT), KC_LEFT,KC_RGHT,
- ALT_T(KC_APP), KC_HOME,
- KC_END,
- KC_BSPC,KC_DEL,KC_LALT,
- // right hand
- KC_RGHT, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS,
- TG(3), KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS,
- KC_H, KC_J, KC_K, KC_L, LT(MDIA, KC_SCLN),KC_QUOT,
- MEH_T(KC_NO),KC_N, KC_M, KC_COMM,KC_DOT, CTL_T(KC_SLSH), KC_RSFT,
- KC_UP, KC_DOWN,KC_LBRC,KC_RBRC, TT(SYMB),
- KC_LALT, CTL_T(KC_ESC),
- KC_PGUP,
- KC_PGDN,KC_ENT, KC_SPC
- ),
-/* Keymap 1: Symbol Layer
- *
- * ,--------------------------------------------------. ,--------------------------------------------------.
- * | | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | F11 |
- * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | | ! | @ | { | } | | | | | | Up | 7 | 8 | 9 | * | F12 |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | # | $ | ( | ) | ` |------| |------| Down | 4 | 5 | 6 | + | |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | % | ^ | [ | ] | ~ | | | | & | 1 | 2 | 3 | \ | |
- * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * | | | | | | | | . | 0 | = | |
- * `----------------------------------' `----------------------------------'
- * ,-------------. ,-------------.
- * | | | | | |
- * ,------|------|------| |------+------+------.
- * | | | | | | | |
- * | | |------| |------| | |
- * | | | | | | | |
- * `--------------------' `--------------------'
- */
-// SYMBOLS
-[SYMB] = LAYOUT_ergodox(
- // left hand
- KC_TRNS,KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_TRNS,
- KC_TRNS,KC_EXLM,KC_AT, KC_LCBR,KC_RCBR,KC_PIPE,KC_TRNS,
- KC_TRNS,KC_HASH,KC_DLR, KC_LPRN,KC_RPRN,KC_GRV,
- KC_TRNS,KC_PERC,KC_CIRC,KC_LBRC,KC_RBRC,KC_TILD,KC_TRNS,
- KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
- KC_TRNS,KC_TRNS,
- KC_TRNS,
- KC_TRNS,KC_TRNS,KC_TRNS,
- // right hand
- KC_TRNS, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,
- KC_TRNS, KC_UP, KC_7, KC_8, KC_9, KC_ASTR, KC_F12,
- KC_DOWN, KC_4, KC_5, KC_6, KC_PLUS, KC_TRNS,
- KC_TRNS, KC_AMPR, KC_1, KC_2, KC_3, KC_BSLS, KC_TRNS,
- KC_TRNS,KC_DOT, KC_0, KC_EQL, KC_TRNS,
- KC_TRNS, KC_TRNS,
- KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS
-),
-/* Keymap 2: Media and mouse keys
- *
- * ,--------------------------------------------------. ,--------------------------------------------------.
- * | | | | | | | | | | | | | | | |
- * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | | | | | | | | | | | | | | | |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | | | | | |------| |------|MsLeft|MsDown| MsUp |MsRght| | Play |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | | | | | | | | | | | Prev | Next | | |
- * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * | | | | Lclk | Rclk | |VolUp |VolDn | Mute | | |
- * `----------------------------------' `----------------------------------'
- * ,-------------. ,-------------.
- * | | | | | |
- * ,------|------|------| |------+------+------.
- * | | | | | |Brwser|Brwser|
- * | Lclk | Rclk |------| |------|Fwd |Back |
- * | | | | | | | |
- * `--------------------' `--------------------'
- */
-// MEDIA AND MOUSE
-LAYOUT_ergodox(
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_MS_U, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_R, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_BTN1, KC_BTN2,
- KC_TRNS, KC_TRNS,
- KC_TRNS,
- KC_BTN1, KC_BTN2, KC_TRNS,
- // right hand
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_MS_L, KC_MS_D, KC_MS_U, KC_MS_R, KC_TRNS, KC_MPLY,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_MPRV, KC_MNXT, KC_TRNS, KC_TRNS,
- KC_VOLU, KC_VOLD, KC_MUTE, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS,
- KC_TRNS,
- KC_TRNS, KC_WBAK, KC_WFWD
-),
-
-/* Keymap 4: Steno for Plover from https://github.com/shayneholmes/tmk_keyboard/commit/11290f8489013018f778627db725160c745e75bd
- *
- * ,--------------------------------------------------. ,--------------------------------------------------.
- * | | | | | | | | | | | | | | | |
- * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | | 1 | 2 | 3 | 4 | 5 | | | | 6 | 7 | 8 | 9 | 0 | |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | q | w | e | r | t |------| |------| y | u | i | o | p | [ |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | a | s | d | f | g | | | | h | j | k | l | ; | ' |
- * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * | | | | | | | | | | | |
- * `----------------------------------' `----------------------------------'
- * ,-------------. ,-------------.
- * | | | | | |
- * ,------|------|------| |------+------+------.
- * | | | | | | | |
- * | c | v |------| |------| n | m |
- * | | | | | | | |
- * `--------------------' `--------------------'
- */
-
-[PLVR] = LAYOUT_ergodox( // layout: layer 4: Steno for Plover
- // left hand
- KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
- KC_NO, KC_1, KC_2, KC_3, KC_4, KC_5, KC_TRNS,
- KC_NO, KC_Q, KC_W, KC_E, KC_R, KC_T,
- KC_NO, KC_A, KC_S, KC_D, KC_F, KC_G, KC_NO,
- KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
- KC_NO, KC_NO,
- KC_NO,
- KC_C, KC_V, KC_NO,
- // right hand
- KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_TRNS,
- KC_TRNS, KC_6, KC_7, KC_8, KC_9, KC_0, KC_TRNS,
- KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC,
- KC_NO, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
- KC_TRNS, KC_TRNS, KC_NO, KC_NO, KC_NO,
- KC_TRNS, KC_TRNS,
- KC_TRNS,
- KC_NO, KC_N, KC_M
-),
-};
-
-// Runs constantly in the background, in a loop.
-void matrix_scan_user(void) {
-
- uint8_t layer = get_highest_layer(layer_state);
-
- ergodox_board_led_off();
- ergodox_right_led_1_off();
- ergodox_right_led_2_off();
- ergodox_right_led_3_off();
- switch (layer) {
- // TODO: Make this relevant to the ErgoDox EZ.
- case 1:
- ergodox_right_led_1_on();
- break;
- case 2:
- ergodox_right_led_2_on();
- break;
- default:
- // none
- break;
- }
-
-};
diff --git a/layouts/community/ergodox/plums/keymap.c b/layouts/community/ergodox/plums/keymap.c
deleted file mode 100644
index dd273e579b..0000000000
--- a/layouts/community/ergodox/plums/keymap.c
+++ /dev/null
@@ -1,155 +0,0 @@
-#include QMK_KEYBOARD_H
-
-#define BASE 0 // default layer
-#define SYMB 1 // symbols
-#define MDIA 2 // media keys
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-/* Keymap 0: Basic layer
- *
- * ,--------------------------------------------------. ,--------------------------------------------------.
- * | ` | 1 | 2 | 3 | 4 | 5 | F5 | |Hypr+M| 6 | 7 | 8 | 9 | 0 | Mute |
- * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | Tab | Q | W | E | R | T | [ | | ] | Y | U | I | O | P | \ |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | LGui | A | S | D | F | G |------| |------| H | J | K | L | ; | ' |
- * |--------+------+------+------+------+------| SYMB | | MDIA |------+------+------+------+------+--------|
- * | LShift | Z | X | C | V | B | | | | N | M | , | . | / | RShift |
- * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * |Ca/Ctl| { | ( | | | : | | - | = | ) | } |C`/Ctl|
- * `----------------------------------' `----------------------------------'
- * ,-------------. ,-------------.
- * | LGA | LAlt | | RAlt | Play |
- * ,------|------|------| |------+------+------.
- * | | | Home | | PgUp | | |
- * |Backsp| Esc |------| |------|Enter |Space |
- * |ace | | End | | PgDn | | |
- * `--------------------' `--------------------'
- */
-// If it accepts an argument (i.e, is a function), it doesn't need KC_.
-// Otherwise, it needs KC_*
-[BASE] = LAYOUT_ergodox( // layer 0 : default
- // left hand
- KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_F5,
- KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_LBRC,
- KC_LGUI, KC_A, KC_S, KC_D, KC_F, KC_G,
- KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, TG(SYMB),
- KC_NO, KC_LCBR, KC_LPRN,KC_PIPE,KC_COLN,
- LGUI(KC_LALT), KC_LALT,
- KC_HOME,
- KC_BSPC, KC_ESC, KC_END,
- // right hand
- HYPR(KC_M), KC_6, KC_7, KC_8, KC_9, KC_0, KC_MUTE,
- KC_RBRC, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS,
- KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
- TG(MDIA), KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,
- KC_MINS, KC_EQL, KC_RPRN, KC_RCBR, KC_NO,
- KC_RALT, KC_MPLY,
- KC_PGUP,
- KC_PGDN, KC_ENT, KC_SPC
- ),
-/* Keymap 1: Symbol Layer
- *
- * ,--------------------------------------------------. ,--------------------------------------------------.
- * | | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | F11 |
- * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | | ! | @ | { | } | | | | | | | | | | | F12 |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | # | $ | ( | ) | ` |------| |------| Left | Down | Up | Right| | |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | % | ^ | [ | ] | ~ | | | | | | | | | |
- * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * | | | | | | | | | | | |
- * `----------------------------------' `----------------------------------'
- * ,-------------. ,-------------.
- * | | | | | |
- * ,------|------|------| |------+------+------.
- * | | | | | | | |
- * | | |------| |------| | |
- * | | | | | | | |
- * `--------------------' `--------------------'
- */
-// SYMBOLS
-[SYMB] = LAYOUT_ergodox(
- // left hand
- KC_TRNS,KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_TRNS,
- KC_TRNS,KC_EXLM,KC_AT, KC_LCBR,KC_RCBR,KC_PIPE,KC_TRNS,
- KC_TRNS,KC_HASH,KC_DLR, KC_LPRN,KC_RPRN,KC_GRV,
- KC_TRNS,KC_PERC,KC_CIRC,KC_LBRC,KC_RBRC,KC_TILD,KC_TRNS,
- KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
- KC_TRNS,KC_TRNS,
- KC_TRNS,
- KC_TRNS,KC_TRNS,KC_TRNS,
- // right hand
- KC_TRNS, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_F12,
- KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS,
- KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS
-),
-/* Keymap 2: Media and mouse keys
- *
- * ,--------------------------------------------------. ,--------------------------------------------------.
- * | | | | | | | | | | | | | | | |
- * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | | | | | | | | | | | | | | | |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | | | | | |------| |------|MsLeft|MsDown| MsUp |MsRght| | |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | | | | | | | | | | | | | | |
- * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * |VolUp |VolDn | Prev | Next | | | LClk | RClk | | | |
- * `----------------------------------' `----------------------------------'
- * ,-------------. ,-------------.
- * | | | | | |
- * ,------|------|------| |------+------+------.
- * | | | | | | | |
- * | | |------| |------| | |
- * | | | | | | | |
- * `--------------------' `--------------------'
- */
-// MEDIA AND MOUSE
-[MDIA] = LAYOUT_ergodox(
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_VOLU, KC_VOLD, KC_MPRV, KC_MNXT, KC_TRNS,
- KC_TRNS, KC_TRNS,
- KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS,
- // right hand
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_MS_L, KC_MS_D, KC_MS_U, KC_MS_R, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_BTN1, KC_BTN2, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS,
- KC_TRNS,
- KC_TRNS, KC_TRNS, KC_WBAK
-),
-};
-
-// Runs constantly in the background, in a loop.
-void matrix_scan_user(void) {
- ergodox_board_led_off();
- ergodox_right_led_1_off();
- ergodox_right_led_2_off();
- ergodox_right_led_3_off();
-
- switch (get_highest_layer(layer_state)) {
- // TODO: Make this relevant to the ErgoDox EZ.
- case 1:
- ergodox_right_led_1_on();
- break;
- case 2:
- ergodox_right_led_2_on();
- break;
- default:
- // none
- break;
- }
-}
diff --git a/layouts/community/ergodox/plums/readme.md b/layouts/community/ergodox/plums/readme.md
deleted file mode 100644
index 32930e0d60..0000000000
--- a/layouts/community/ergodox/plums/readme.md
+++ /dev/null
@@ -1,11 +0,0 @@
-# ErgoDox EZ Plums Configuration
-
-## Changelog
-
-* Apr 23, 2016 (v0.1.0):
- * Shortcut for iTerm2 quake style dropdown (Ctrl+`)
- * Shortcut for screen/tmux (Ctrl+a)
- * Shortcut for shush (Hyper+m)
- * Combo modifier for LGUI + LALT
-
-![Plums](https://i.imgur.com/0HkgLvb.png)
diff --git a/layouts/community/ergodox/qwerty_code_friendly/keymap.c b/layouts/community/ergodox/qwerty_code_friendly/keymap.c
deleted file mode 100644
index b07bc42aca..0000000000
--- a/layouts/community/ergodox/qwerty_code_friendly/keymap.c
+++ /dev/null
@@ -1,686 +0,0 @@
-/* -*- Mode:C; c-basic-offset:2; tab-width:2; indent-tabs-mode:nil; evil-indent-convert-tabs:t; -*- */
-
-#include QMK_KEYBOARD_H
-#include "debug.h"
-#include "action_layer.h"
-#include "version.h"
-
-/**
- * See `readme.md` for notes on each define.
- */
-
-/**
- * Optionally support 80 key layout.
- *
- * No default keys defined: use 'CFQ_USER_K80_L0K0' .. etc.
- */
-/* #define CFQ_USE_80_KEYS */
-
-/** Personal preference (enable by passing 'EXTRAFLAGS=...' to make). */
-/* #define CFQ_USE_MOMENTARY_LAYER_KEYS */
-
-/** Holding right/left or left/right shift for single or double quote pair */
-/* #define CFQ_USE_SHIFT_QUOTES */
-
-#define CFQ_USE_DYNAMIC_MACRO
-
-#if !defined(CFQ_USER_KEY0)
-# define CFQ_USER_KEY0 KC_APP
-#endif
-#if !defined(CFQ_USER_KEY1)
-# define CFQ_USER_KEY1 KC_MENU
-#endif
-#if !defined(CFQ_USER_KEY2)
-# define CFQ_USER_KEY2 KC_BSPC
-#endif
-#if !defined(CFQ_USER_KEY3)
-# define CFQ_USER_KEY3 KC_DEL
-#endif
-#if !defined(CFQ_USER_KEY4)
-# define CFQ_USER_KEY4 KC_SPC
-#endif
-#if !defined(CFQ_USER_KEY5)
-# define CFQ_USER_KEY5 CFQ_KC_FN1
-#endif
-#if !defined(CFQ_USER_KEY6)
-# define CFQ_USER_KEY6 KC_CAPS
-#endif
-#if !defined(CFQ_USER_KEY7)
-# define CFQ_USER_KEY7 KC_INS
-#endif
-#if !defined(CFQ_USER_KEY8)
-# define CFQ_USER_KEY8 KC_DEL
-#endif
-#if !defined(CFQ_USER_KEY9)
-# define CFQ_USER_KEY9 KC_BSPC
-#endif
-
-
-#ifdef CFQ_USE_80_KEYS
-# define LAYOUT_ergodox_76_or_80 LAYOUT_ergodox_80
-# define K80(a) CFQ_USER_K80_##a
-#else
-# define LAYOUT_ergodox_76_or_80( \
- 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, \
- \
- k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, \
- k50, k51, k52, k53, k54, k55, k56, k57, k58, k59, \
- k60, k61, k62, k63, k64, k65, k66, k67, k68, k69, \
- k70, k71, k72, k73, k74, k75, k76, k77, k78, k79) \
- LAYOUT_ergodox( \
- 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, k36, k37, k38, k39, \
- \
- k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, \
- k50, k51, k52, k53, k54, k55, k56, k57, k58, k59, \
- k60, k61, k62, k63, k64, k65, k66, k67, k68, k69, \
- k70, k71, k72, k73, k74, k77, k78, k79)
-# define K80(a) KC_TRNS
-#endif
-
-/**
- * Used to generate lines below:
- * \code{.py}
- * text = '# ifndef CFQ_USER_K80_L0K0\n# define CFQ_USER_K80_L0K0 KC_TRNS\n# endif'
- * print('\n'.join([text.replace('L0', f'L{l}').replace('K0', f'K{k}') for l in range(3) for k in range(4)]))
- * \endcode
- */
-#ifdef CFQ_USE_80_KEYS
-# ifndef CFQ_USER_K80_L0K0
-# define CFQ_USER_K80_L0K0 KC_TRNS
-# endif
-# ifndef CFQ_USER_K80_L0K1
-# define CFQ_USER_K80_L0K1 KC_TRNS
-# endif
-# ifndef CFQ_USER_K80_L0K2
-# define CFQ_USER_K80_L0K2 KC_TRNS
-# endif
-# ifndef CFQ_USER_K80_L0K3
-# define CFQ_USER_K80_L0K3 KC_TRNS
-# endif
-# ifndef CFQ_USER_K80_L1K0
-# define CFQ_USER_K80_L1K0 KC_TRNS
-# endif
-# ifndef CFQ_USER_K80_L1K1
-# define CFQ_USER_K80_L1K1 KC_TRNS
-# endif
-# ifndef CFQ_USER_K80_L1K2
-# define CFQ_USER_K80_L1K2 KC_TRNS
-# endif
-# ifndef CFQ_USER_K80_L1K3
-# define CFQ_USER_K80_L1K3 KC_TRNS
-# endif
-# ifndef CFQ_USER_K80_L2K0
-# define CFQ_USER_K80_L2K0 KC_TRNS
-# endif
-# ifndef CFQ_USER_K80_L2K1
-# define CFQ_USER_K80_L2K1 KC_TRNS
-# endif
-# ifndef CFQ_USER_K80_L2K2
-# define CFQ_USER_K80_L2K2 KC_TRNS
-# endif
-# ifndef CFQ_USER_K80_L2K3
-# define CFQ_USER_K80_L2K3 KC_TRNS
-# endif
-# ifndef CFQ_USER_K80_L3K0
-# define CFQ_USER_K80_L3K0 KC_TRNS
-# endif
-# ifndef CFQ_USER_K80_L3K1
-# define CFQ_USER_K80_L3K1 KC_TRNS
-# endif
-# ifndef CFQ_USER_K80_L3K2
-# define CFQ_USER_K80_L3K2 KC_TRNS
-# endif
-# ifndef CFQ_USER_K80_L3K3
-# define CFQ_USER_K80_L3K3 KC_TRNS
-# endif
-#endif
-
-#ifndef CFQ_WORD_A
-#define CFQ_WORD_A ""
-#endif
-#ifndef CFQ_WORD_B
-#define CFQ_WORD_B ""
-#endif
-#ifndef CFQ_WORD_C
-#define CFQ_WORD_C ""
-#endif
-#ifndef CFQ_WORD_D
-#define CFQ_WORD_D ""
-#endif
-#ifndef CFQ_WORD_E
-#define CFQ_WORD_E ""
-#endif
-#ifndef CFQ_WORD_F
-#define CFQ_WORD_F ""
-#endif
-#ifndef CFQ_WORD_G
-#define CFQ_WORD_G ""
-#endif
-#ifndef CFQ_WORD_H
-#define CFQ_WORD_H ""
-#endif
-#ifndef CFQ_WORD_I
-#define CFQ_WORD_I ""
-#endif
-#ifndef CFQ_WORD_J
-#define CFQ_WORD_J ""
-#endif
-#ifndef CFQ_WORD_K
-#define CFQ_WORD_K ""
-#endif
-#ifndef CFQ_WORD_L
-#define CFQ_WORD_L ""
-#endif
-#ifndef CFQ_WORD_M
-#define CFQ_WORD_M ""
-#endif
-#ifndef CFQ_WORD_N
-#define CFQ_WORD_N ""
-#endif
-#ifndef CFQ_WORD_O
-#define CFQ_WORD_O ""
-#endif
-#ifndef CFQ_WORD_P
-#define CFQ_WORD_P ""
-#endif
-#ifndef CFQ_WORD_Q
-#define CFQ_WORD_Q ""
-#endif
-#ifndef CFQ_WORD_R
-#define CFQ_WORD_R ""
-#endif
-#ifndef CFQ_WORD_S
-#define CFQ_WORD_S ""
-#endif
-#ifndef CFQ_WORD_T
-#define CFQ_WORD_T ""
-#endif
-#ifndef CFQ_WORD_U
-#define CFQ_WORD_U ""
-#endif
-#ifndef CFQ_WORD_V
-#define CFQ_WORD_V ""
-#endif
-#ifndef CFQ_WORD_W
-#define CFQ_WORD_W ""
-#endif
-#ifndef CFQ_WORD_X
-#define CFQ_WORD_X ""
-#endif
-#ifndef CFQ_WORD_Y
-#define CFQ_WORD_Y ""
-#endif
-#ifndef CFQ_WORD_Z
-#define CFQ_WORD_Z ""
-#endif
-
-/* lower and title capitals versions (setup at start). */
-static char *cfq_word_lut[2][26] = {
- {
- CFQ_WORD_A, CFQ_WORD_B, CFQ_WORD_C, CFQ_WORD_D, CFQ_WORD_E, CFQ_WORD_F,
- CFQ_WORD_G, CFQ_WORD_H, CFQ_WORD_I, CFQ_WORD_J, CFQ_WORD_K, CFQ_WORD_L,
- CFQ_WORD_M, CFQ_WORD_N, CFQ_WORD_O, CFQ_WORD_P, CFQ_WORD_Q, CFQ_WORD_R,
- CFQ_WORD_S, CFQ_WORD_T, CFQ_WORD_U, CFQ_WORD_V, CFQ_WORD_W, CFQ_WORD_X,
- CFQ_WORD_Y, CFQ_WORD_Z,
- },
- {NULL}
-};
-
-/* Storage for title-caps strings. */
-static char cfq_word_lut_title_caps[
- sizeof(CFQ_WORD_A) + sizeof(CFQ_WORD_B) + sizeof(CFQ_WORD_C) + sizeof(CFQ_WORD_D) +
- sizeof(CFQ_WORD_E) + sizeof(CFQ_WORD_F) + sizeof(CFQ_WORD_G) + sizeof(CFQ_WORD_H) +
- sizeof(CFQ_WORD_I) + sizeof(CFQ_WORD_J) + sizeof(CFQ_WORD_K) + sizeof(CFQ_WORD_L) +
- sizeof(CFQ_WORD_M) + sizeof(CFQ_WORD_N) + sizeof(CFQ_WORD_O) + sizeof(CFQ_WORD_P) +
- sizeof(CFQ_WORD_Q) + sizeof(CFQ_WORD_R) + sizeof(CFQ_WORD_S) + sizeof(CFQ_WORD_T) +
- sizeof(CFQ_WORD_U) + sizeof(CFQ_WORD_V) + sizeof(CFQ_WORD_W) + sizeof(CFQ_WORD_X) +
- sizeof(CFQ_WORD_Y) + sizeof(CFQ_WORD_Z)
-];
-
-#define LAYER_BASE 0 /* Default Layer. */
-#define LAYER_KPAD 1 /* Keypad, Bracket Pairs & Macro Record. */
-#define LAYER_FKEY 2 /* Function Keys, Media & Mouse Keys. */
-#define LAYER_WORD 3 /* Entire Words (one for each key) & Numbers. */
-
-enum custom_keycodes {
- PLACEHOLDER = SAFE_RANGE, /* can always be here */
- RGB_SLD,
-
- M_BRACKET_IN_CBR,
- M_BRACKET_IN_PRN,
- M_BRACKET_IN_BRC,
- M_BRACKET_IN_ANG,
- M_BRACKET_OUT_CBR,
- M_BRACKET_OUT_PRN,
- M_BRACKET_OUT_BRC,
- M_BRACKET_OUT_ANG,
- M_ARROW_RMINUS,
- M_ARROW_LMINUS,
- M_ARROW_REQL,
- M_ARROW_LEQL,
-
- /* allow user defined words for each character:
- * use CFQ_WORD_[A-Z] defines. */
- M_WORD_A, M_WORD_B, M_WORD_C, M_WORD_D, M_WORD_E, M_WORD_F,
- M_WORD_G, M_WORD_H, M_WORD_I, M_WORD_J, M_WORD_K, M_WORD_L,
- M_WORD_M, M_WORD_N, M_WORD_O, M_WORD_P, M_WORD_Q, M_WORD_R,
- M_WORD_S, M_WORD_T, M_WORD_U, M_WORD_V, M_WORD_W, M_WORD_X,
- M_WORD_Y, M_WORD_Z,
-
-#ifdef CFQ_USE_DYNAMIC_MACRO
- DYNAMIC_MACRO_RANGE,
-#endif
-};
-
-#ifdef CFQ_USE_DYNAMIC_MACRO
-# include "dynamic_macro.h"
-#else
- /* avoid ifdef's in keymap */
-# define DM_REC1 KC_TRNS
-# define DM_REC2 KC_TRNS
-# define DM_PLY1 KC_TRNS
-# define DM_PLY2 KC_TRNS
-# define DM_RSTP KC_TRNS
-#endif
-
-#ifdef CFQ_USE_MOMENTARY_LAYER_KEYS
-#define CFQ_KC_FN1 MO(1)
-#define CFQ_KC_FN2 MO(2)
-#define CFQ_KC_FN3 MO(3)
-#else
-#define CFQ_KC_FN1 TT(1)
-#define CFQ_KC_FN2 TT(2)
-#define CFQ_KC_FN3 TT(3)
-#endif
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-/* Keymap 0: Basic layer
- * .--------------------------------------------------. .--------------------------------------------------.
- * | Grave | ! | @ | # | $ | % | { | | } | ^ | & | * | - | = | BSpace |
- * |--------+------+------+------+------+------+------| |------+------+------+------+------+------+--------|
- * | Tab | Q | W | E | R | T | ( | | ) | Y | U | I | O | P | \ |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | Esc | A | S | D | F | G |------| |------| H | J | K | L | ; | ' |
- * |--------+------+------+------+------+------| [ | | ] |------+------+------+------+------+--------|
- * | LShift | Z | X | C | V | B | | | | N | M | , | . | / | RShift |
- * '--------+------+------+------+------+-------------' '-------------+------+------+------+------+--------'
- * | LCtl |Super | Alt | App | Menu | | Left | Down | Up |Right | Del |
- * '----------------------------------' '----------------------------------'
- * .-------------. .-------------.
- * |BSpace| Del | | Home | End |
- * .------+------+------| |------+------+------.
- * | | |CapsLk| | PgUp | | |
- * |Space | ~L1 |------| |------| ~L2 |Enter |
- * | | |Insert| | PgDn | | |
- * '--------------------' '--------------------'
- *
- * Optional overrides: see CFQ_USER_KEY# defines.
- * .--------------------------------------------------. .--------------------------------------------------.
- * | | | | | | | | | | | | | | | USR9 |
- * |--------+------+------+------+------+------+------| |------+------+------+------+------+------+--------|
- * | | | | | | | | | | | | | | | |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | | | | | |------| |------| | | | | | |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | | | | | | | | | | | | | | |
- * '--------+------+------+------+------+-------------' '-------------+------+------+------+------+--------'
- * | | | | USR0 | USR1 | | | | | | USR8 |
- * '----------------------------------' '----------------------------------'
- * .-------------. .-------------.
- * | USR2 | USR3 | | | |
- * .------+------+------| |------+------+------.
- * | | | USR6 | | | | |
- * | USR4 | USR5 |------| |------| | |
- * | | | USR7 | | | | |
- * '--------------------' '--------------------'
- */
-
-/* If it accepts an argument (i.e, is a function), it doesn't need KC_.
- * Otherwise, it needs KC_* */
-[LAYER_BASE] = LAYOUT_ergodox_76_or_80( /* layer 0 : default */
- /* left hand */
- KC_GRV, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_LCBR,
- KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_LPRN,
- KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G,
- KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_LBRC,
- KC_LCTL, KC_LGUI, KC_LALT, CFQ_USER_KEY0, CFQ_USER_KEY1,
- CFQ_USER_KEY2, CFQ_USER_KEY3,
- K80(L0K0), K80(L0K1), CFQ_USER_KEY6,
- CFQ_USER_KEY4, CFQ_USER_KEY5, CFQ_USER_KEY7,
- /* right hand */
- KC_RCBR, KC_CIRC, KC_AMPR, KC_ASTR,KC_MINS, KC_EQL, CFQ_USER_KEY9,
- KC_RPRN, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS,
- KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
- KC_RBRC, KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH, KC_RSFT,
- KC_LEFT, KC_DOWN,KC_UP, KC_RGHT, CFQ_USER_KEY8,
- KC_HOME, KC_END,
- KC_PGUP, K80(L0K2), K80(L0K3),
- KC_PGDN, CFQ_KC_FN2, KC_ENT
-),
-/* Keymap 1: Keypad, Bracket Pairs & Macro Record
- *
- * .--------------------------------------------------. .--------------------------------------------------.
- * | | | | | | | {} | | }{ | |NumLck| / | * | - | |
- * |--------+------+------+------+------+------+------| |------+------+------+------+------+------+--------|
- * | | | | | | => | () | | )( | <= | 7 | 8 | 9 | + | |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | | | | | -> |------| |------| <- | 4 | 5 | 6 | + | |
- * |--------+------+------+------+------+------| [] | | ][ |------+------+------+------+------+--------|
- * | | | | | | <> | | | | >< | 1 | 2 | 3 | Enter| |
- * '--------+------+------+------+------+-------------' '-------------+------+------+------+------+--------'
- * | | | | | | | 0 | | . | Enter| |
- * '----------------------------------' '----------------------------------'
- * .-------------. .-------------.
- * |Start1|Start2| | | |
- * .------+------+------| |------+------+------.
- * | | |Play1 | | | | |
- * | Stop | |------| |------| | |
- * | | |Play2 | | | | |
- * '--------------------' '--------------------'
- */
-[LAYER_KPAD] = LAYOUT_ergodox_76_or_80(
- /* left hand */
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, M_BRACKET_IN_CBR,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, M_ARROW_REQL, M_BRACKET_IN_PRN,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, M_ARROW_RMINUS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, M_BRACKET_IN_ANG, M_BRACKET_IN_BRC,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- DM_REC1, DM_REC2,
- K80(L1K0), K80(L1K1), DM_PLY1,
- DM_RSTP, KC_TRNS, DM_PLY2,
- /* right hand */
- M_BRACKET_OUT_CBR, KC_TRNS, KC_NUM, KC_KP_SLASH, KC_KP_ASTERISK, KC_KP_MINUS, KC_TRNS,
- M_BRACKET_OUT_PRN, M_ARROW_LEQL, KC_KP_7, KC_KP_8, KC_KP_9, KC_KP_PLUS, KC_TRNS,
- M_ARROW_LMINUS, KC_KP_4, KC_KP_5, KC_KP_6, KC_KP_PLUS, KC_TRNS,
- M_BRACKET_OUT_BRC, M_BRACKET_OUT_ANG, KC_KP_1, KC_KP_2, KC_KP_3, KC_KP_ENTER, KC_TRNS,
- KC_KP_0, KC_TRNS, KC_KP_DOT, KC_KP_ENTER, KC_TRNS,
- KC_TRNS, KC_TRNS,
- KC_TRNS, K80(L1K2), K80(L1K3),
- KC_TRNS, KC_TRNS, KC_TRNS
-),
-/* Keymap 2: Function Keys, Media & Mouse Keys
- *
- * .--------------------------------------------------. .--------------------------------------------------.
- * | | | | | | | | | Mute | | F10 | F11 | F12 | | |
- * |--------+------+------+------+------+------+------| |------+------+------+------+------+------+--------|
- * | | | | MsUp | | |MWhlUp| |VolUp | | F7 | F8 | F9 | | |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | |MsLeft|MsDown|MsRght| |------| |------| | F4 | F5 | F6 | | |
- * |--------+------+------+------+------+------|MWhlDn| |VolDn |------+------+------+------+------+--------|
- * | | | Rclk | Mclk | Lclk | | | | | | F1 | F2 | F3 | | |
- * '--------+------+------+------+------+-------------' '-------------+------+------+------+------+--------'
- * | | | | | | | | | | | |
- * '----------------------------------' '----------------------------------'
- * .-------------. .-------------.
- * | | | | MRwd | MFwd |
- * .------+------+------| |------+------+------.
- * | | | | | MPrv | | |
- * | | |------| |------| | Play |
- * | | | | | MNxt | | |
- * '--------------------' '--------------------'
- */
-[LAYER_FKEY] = LAYOUT_ergodox_76_or_80(
- /* left hand */
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_MS_U, KC_TRNS, KC_TRNS, KC_WH_U,
- KC_TRNS, KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_R, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_BTN2, KC_BTN3, KC_BTN1, KC_TRNS, KC_WH_D,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS,
- K80(L2K0), K80(L2K1), KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS,
- /* right hand */
- KC_MUTE, KC_TRNS, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_TRNS,
- KC_VOLU, KC_TRNS, KC_F7, KC_F8, KC_F9, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_F4, KC_F5, KC_F6, KC_TRNS, KC_TRNS,
- KC_VOLD, KC_TRNS, KC_F1, KC_F2, KC_F3, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_MRWD, KC_MFFD,
- KC_MPRV, K80(L2K2), K80(L2K3),
- KC_MNXT, KC_TRNS, KC_MPLY
-),
-/* Keymap 3: Entire Words (one for each key) & Numbers
- *
- * Activate by holding L1 & L2.
- *
- * .--------------------------------------------------. .--------------------------------------------------.
- * | | 1 | 2 | 3 | 4 | 5 | | | | 6 | 7 | 8 | 9 | 0 | |
- * |--------+------+------+------+------+------+------| |------+------+------+------+------+------+--------|
- * | | Q | W | E | R | T | | | | Y | U | I | O | P | |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | A | S | D | F | G |------| |------| H | J | K | L | | |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | Z | X | C | V | B | | | | N | M | | | | |
- * '--------+------+------+------+------+-------------' '-------------+------+------+------+------+--------'
- * | | | | | | | | | | | |
- * '----------------------------------' '----------------------------------'
- * .-------------. .-------------.
- * | | | | | |
- * .------+------+------| |------+------+------.
- * | | | | | | | |
- * | | |------| |------| | |
- * | | | | | | | |
- * '--------------------' '--------------------'
- */
-[LAYER_WORD] = LAYOUT_ergodox_76_or_80(
- /* left hand */
- KC_TRNS, KC_1, KC_2, KC_3, KC_4, KC_5, KC_TRNS,
- KC_TRNS, M_WORD_Q, M_WORD_W, M_WORD_E, M_WORD_R, M_WORD_T, KC_TRNS,
- KC_TRNS, M_WORD_A, M_WORD_S, M_WORD_D, M_WORD_F, M_WORD_G,
- KC_TRNS, M_WORD_Z, M_WORD_X, M_WORD_C, M_WORD_V, M_WORD_B, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS,
- K80(L3K0), K80(L3K1), KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS,
- /* right hand */
- KC_TRNS, KC_6, KC_7, KC_8, KC_9, KC_0, KC_TRNS,
- KC_TRNS, M_WORD_Y, M_WORD_U, M_WORD_I, M_WORD_O, M_WORD_P, KC_TRNS,
- M_WORD_H, M_WORD_J, M_WORD_K, M_WORD_L, KC_TRNS, KC_TRNS,
- KC_TRNS, M_WORD_N, M_WORD_M, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS,
- KC_TRNS, K80(L3K2), K80(L3K3),
- KC_TRNS, KC_TRNS, KC_TRNS
-),
-};
-
-layer_state_t layer_state_set_user(layer_state_t state) {
- /* Use layer 3 when 1 & 2 are pressed. */
- state = update_tri_layer_state(state, LAYER_KPAD, LAYER_FKEY, LAYER_WORD);
- return state;
-}
-
-#define WITHOUT_MODS(...) \
- do { \
- uint8_t _real_mods = get_mods(); \
- clear_mods(); \
- { __VA_ARGS__ } \
- set_mods(_real_mods); \
- } while (0)
-
-bool process_record_user(uint16_t keycode, keyrecord_t *record) {
-#ifdef CFQ_USE_DYNAMIC_MACRO
- if (!process_record_dynamic_macro(keycode, record)) {
- return false;
- }
-#endif
- switch (keycode) {
- /* dynamically generate these. */
- case RGB_SLD:
- if (record->event.pressed) {
-#ifdef RGBLIGHT_ENABLE
- rgblight_mode(1);
-#endif
- }
- return false;
- break;
- case M_BRACKET_IN_CBR: /* {} */
- if (record->event.pressed) {
- SEND_STRING("{}" SS_TAP(X_LEFT));
- return false;
- }
- break;
- case M_BRACKET_IN_PRN: /* () */
- if (record->event.pressed) {
- SEND_STRING("()" SS_TAP(X_LEFT));
- return false;
- }
- break;
- case M_BRACKET_IN_BRC: /* [] */
- if (record->event.pressed) {
- SEND_STRING("[]" SS_TAP(X_LEFT));
- return false;
- }
- break;
- case M_BRACKET_IN_ANG: /* <> */
- if (record->event.pressed) {
- SEND_STRING("<>" SS_TAP(X_LEFT));
- return false;
- }
- break;
- case M_BRACKET_OUT_CBR: /* }{ */
- if (record->event.pressed) {
- SEND_STRING("}{" SS_TAP(X_LEFT));
- return false;
- }
- break;
- case M_BRACKET_OUT_PRN: /* )( */
- if (record->event.pressed) {
- SEND_STRING(")(" SS_TAP(X_LEFT));
- return false;
- }
- break;
- case M_BRACKET_OUT_BRC: /* ][ */
- if (record->event.pressed) {
- SEND_STRING("][" SS_TAP(X_LEFT));
- return false;
- }
- break;
- case M_BRACKET_OUT_ANG: /* >< */
- if (record->event.pressed) {
- SEND_STRING("><" SS_TAP(X_LEFT));
- return false;
- }
- break;
- case M_ARROW_LMINUS: /* <- */
- if (record->event.pressed) {
- SEND_STRING("<-");
- return false;
- }
- break;
- case M_ARROW_RMINUS: /* -> */
- if (record->event.pressed) {
- SEND_STRING("->");
- return false;
- }
- break;
- case M_ARROW_LEQL: /* <= */
- if (record->event.pressed) {
- SEND_STRING("<=");
- return false;
- }
- break;
- case M_ARROW_REQL: /* => */
- if (record->event.pressed) {
- SEND_STRING("=>");
- return false;
- }
- break;
-#ifdef CFQ_USE_SHIFT_QUOTES
- case KC_LEFT_SHIFT: /* '' */
- if (record->event.pressed && (keyboard_report->mods & (MOD_BIT(KC_RSFT)))) {
- WITHOUT_MODS({
- SEND_STRING("''" SS_TAP(X_LEFT) SS_DOWN(X_RSFT) SS_DOWN(X_LSFT));
- });
- return false;
- }
- break;
- case KC_RIGHT_SHIFT: /* "" */
- if (record->event.pressed && (keyboard_report->mods & (MOD_BIT(KC_LSFT)))) {
- WITHOUT_MODS({
- SEND_STRING("\x22\x22" SS_TAP(X_LEFT) SS_DOWN(X_LSFT) SS_DOWN(X_RSFT));
- });
- return false;
- }
- break;
-#endif /* CFQ_USE_SHIFT_QUOTES */
- case M_WORD_A...M_WORD_Z:
- {
- uint8_t shift_index = (keyboard_report->mods & (MOD_BIT(KC_RSFT) | MOD_BIT(KC_LSFT))) ? 1 : 0;
- const char *word = cfq_word_lut[shift_index][keycode - M_WORD_A];
- if (record->event.pressed) {
- if (*word) {
- WITHOUT_MODS({
- send_string(word);
- });
- }
- return false;
- }
- break;
- }
- }
-
- return true;
-}
-
-/* Runs just one time when the keyboard initializes. */
-void matrix_init_user(void) {
-
- /* Duplicate 'cfq_word_lut[0][...]' into 'cfq_word_lut[1][...]' */
- {
- char *d = cfq_word_lut_title_caps;
- for (uint16_t i = 0; i < 26; i++) {
- char *s = cfq_word_lut[0][i];
- cfq_word_lut[1][i] = d;
- while ((*d++ = *s++)) {}
- }
- }
- /* Title caps. */
- for (uint16_t i = 0; i < 26; i++) {
- char *w = cfq_word_lut[1][i];
- bool prev_is_alpha = false;
- if (*w) {
- while (*w) {
- bool is_lower = (*w >= 'a' && *w <= 'z');
- bool is_upper = (*w >= 'A' && *w <= 'Z');
- if (prev_is_alpha == false && is_lower) {
- *w -= ('a' - 'A');
- }
- prev_is_alpha = is_lower || is_upper;
- w++;
- }
- }
- }
-};
-
-/* Runs constantly in the background, in a loop. */
-void matrix_scan_user(void) {
-
- uint8_t layer = get_highest_layer(layer_state);
-
- ergodox_board_led_off();
- ergodox_right_led_1_off();
- ergodox_right_led_2_off();
- ergodox_right_led_3_off();
- switch (layer) {
- case 1:
- ergodox_right_led_1_on();
- break;
- case 2:
- ergodox_right_led_2_on();
- break;
- case 3:
- ergodox_right_led_3_on();
- break;
- default:
- /* none */
- break;
- }
-
-};
diff --git a/layouts/community/ergodox/qwerty_code_friendly/readme.md b/layouts/community/ergodox/qwerty_code_friendly/readme.md
deleted file mode 100644
index e615fa28f0..0000000000
--- a/layouts/community/ergodox/qwerty_code_friendly/readme.md
+++ /dev/null
@@ -1,232 +0,0 @@
-# ErgoDox EZ Code Friendly Qwerty Layout
-
-- This layout aims to balance muscle memory from a typical QWERTY layout
- with having keys used for software development easily accessible.
-
- The this layout is a normalized qwerty,
- with some configurable keys left thumb cluster so you can use it more as needed.
-
-- Arrow keys follow VIM convention.
-
-- On the top row only symbols are used (not numbers),
- it's expected the symbol layer's number-pad layout will be used for numbers.
-
-- Symbols match regular QWERTY.
- except for '()' which are grouped with other brackets.
- In their place -/= keys are placed, which almost matches a regular layout.
-
-- Brackets are placed symmetrically along the center edges,
- if using keys from both sides is inconvenient - the symbol layer has macros
- at the same key locations to type matching pairs.
-
-- The space-bar on the lower-left looks like it's in an obscure location,
- however using the larger thumb cluster
- ended up being more of a reach while typing.
-
-## Configuration
-
-Some optional behavior is configurable without editing the code
-using `CFQ_` prefixed defines which can be set by passing `EXTRAFLAGS` to make.
-
-- `CFQ_USER_KEY0`
- (0..8) are used for custom-keys
-- `CFQ_USE_MOMENTARY_LAYER_KEYS`
- is used to prevent layer keys from toggling when tapped.
-- `CFQ_USE_SHIFT_QUOTES`
- an optional handy shortcut for writing quotes that inserts the
- cursor between the quotation marks.
-
- Holding LShift, then RShift types: "" (then presses left).
-
- Holding RShift, then LShift types: '' (then presses left).
-
-- `CFQ_WORD_[A-Z]`
- defines can bind a key to an entire user defined word.
-
-- `CFQ_USE_80_KEYS`
- enables 80 key layout, none of the extra keys are bound,
- they need to be set with defines: `CFQ_USER_K80_L0K0` .. `CFQ_USER_K80_L3K4`.
- Where `L#` is the layer and `K#` is the key.
-
-
-## Keymap 0: Basic layer
-
-```
-.--------------------------------------------------. .--------------------------------------------------.
-| Grave | ! | @ | # | $ | % | { | | } | ^ | & | * | - | = | BSpace |
-|--------+------+------+------+------+------+------| |------+------+------+------+------+------+--------|
-| Tab | Q | W | E | R | T | ( | | ) | Y | U | I | O | P | \ |
-|--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
-| Esc | A | S | D | F | G |------| |------| H | J | K | L | ; | ' |
-|--------+------+------+------+------+------| [ | | ] |------+------+------+------+------+--------|
-| LShift | Z | X | C | V | B | | | | N | M | , | . | / | RShift |
-'--------+------+------+------+------+-------------' '-------------+------+------+------+------+--------'
- | LCtl |Super | Alt | App | Menu | | Left | Down | Up |Right | Del |
- '----------------------------------' '----------------------------------'
- .-------------. .-------------.
- |BSpace| Del | | Home | End |
- .------+------+------| |------+------+------.
- | | |CapsLk| | PgUp | | |
- |Space | ~L1 |------| |------| ~L2 |Enter |
- | | |Insert| | PgDn | | |
- '--------------------' '--------------------'
-
-Optional overrides: see CFQ_USER_KEY# defines.
-
-.--------------------------------------------------. .--------------------------------------------------.
-| | | | | | | | | | | | | | | USR9 |
-|--------+------+------+------+------+------+------| |------+------+------+------+------+------+--------|
-| | | | | | | | | | | | | | | |
-|--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
-| | | | | | |------| |------| | | | | | |
-|--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
-| | | | | | | | | | | | | | | |
-'--------+------+------+------+------+-------------' '-------------+------+------+------+------+--------'
- | | | | USR0 | USR1 | | | | | | USR8 |
- '----------------------------------' '----------------------------------'
- .-------------. .-------------.
- | USR2 | USR3 | | | |
- .------+------+------| |------+------+------.
- | | | USR6 | | | | |
- | USR4 | USR5 |------| |------| | |
- | | | USR7 | | | | |
- '--------------------' '--------------------'
-```
-
-## Keymap 1: KeyPad, Bracket Pairs & Macro Record
-
-Notes:
-
-- The double bracket keys on this layer press left to position the cursor between them.
-- The left thumb cluster is used for macro record/replay.
-
-```
-.--------------------------------------------------. .--------------------------------------------------.
-| | | | | | | {} | | }{ | |NumLck| / | * | - | |
-|--------+------+------+------+------+------+------| |------+------+------+------+------+------+--------|
-| | | | | | => | () | | )( | <= | 7 | 8 | 9 | + | |
-|--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
-| | | | | | -> |------| |------| <- | 4 | 5 | 6 | + | |
-|--------+------+------+------+------+------| [] | | ][ |------+------+------+------+------+--------|
-| | | | | | <> | | | | >< | 1 | 2 | 3 | Enter| |
-'--------+------+------+------+------+-------------' '-------------+------+------+------+------+--------'
- | | | | | | | 0 | | . | Enter| |
- '----------------------------------' '----------------------------------'
- .-------------. .-------------.
- |Start1|Start2| | | |
- .------+------+------| |------+------+------.
- | | |Play1 | | | | |
- | Stop | |------| |------| | |
- | | |Play2 | | | | |
- '--------------------' '--------------------'
-```
-
-## Keymap 2: F-Keys, Media & Mouse Keys
-
-```
-.--------------------------------------------------. .--------------------------------------------------.
-| | | | | | | | | Mute | | F10 | F11 | F12 | | |
-|--------+------+------+------+------+------+------| |------+------+------+------+------+------+--------|
-| | | | MsUp | | |MWhlUp| |VolUp | | F7 | F8 | F9 | | |
-|--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
-| | |MsLeft|MsDown|MsRght| |------| |------| | F4 | F5 | F6 | | |
-|--------+------+------+------+------+------|MWhlDn| |VolDn |------+------+------+------+------+--------|
-| | | Rclk | Mclk | Lclk | | | | | | F1 | F2 | F3 | | |
-'--------+------+------+------+------+-------------' '-------------+------+------+------+------+--------'
- | | | | | | | | | | | |
- '----------------------------------' '----------------------------------'
- .-------------. .-------------.
- | | | | MRwd | MFwd |
- .------+------+------| |------+------+------.
- | | | | | MPrv | | |
- | | |------| |------| | Play |
- | | | | | MNxt | | |
- '--------------------' '--------------------'
-```
-
-## Keymap 3: User Defined Words & Numbers
-
-Activate by holding L1 & L2.
-
-This is for assigning whole words to single keys.
-You can define the arguments (which must be quoted) using: `CFQ_WORD_[A-Z]`
-eg: `-DCFQ_WORD_E=\"my@email.com\"`
-
-Notes:
-
-- Numbers are included on this layer since some applications differentiate
- between numbers top row and keypad.
-
-```
-.--------------------------------------------------. .--------------------------------------------------.
-| | 1 | 2 | 3 | 4 | 5 | | | | 6 | 7 | 8 | 9 | 0 | |
-|--------+------+------+------+------+------+------| |------+------+------+------+------+------+--------|
-| | Q | W | E | R | T | | | | Y | U | I | O | P | |
-|--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
-| | A | S | D | F | G |------| |------| H | J | K | L | | |
-|--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
-| | Z | X | C | V | B | | | | N | M | | | | |
-'--------+------+------+------+------+-------------' '-------------+------+------+------+------+--------'
- | | | | | | | | | | | |
- '----------------------------------' '----------------------------------'
- .-------------. .-------------.
- | | | | | |
- .------+------+------| |------+------+------.
- | | | | | | | |
- | | |------| |------| | |
- | | | | | | | |
- '--------------------' '--------------------'
-```
-
-## Changelog
-
-- 2019/11/20
- Move space to thumb cluster
- Make L1 and L2 symmetrical.
- Activate L3 by holding L1 & L2.
- Add App & Menu keys.
-
-- 2018/10/19
- Move F-Keys to key-pad like layout.
-
-- 2018/05/29
- Add number keys for cases when keypad numbers are handled differently.
-
-- 2018/05/19
- Move all media keys to right thumb cluster
- (matching page up/down, home/end locations).
-
-- 2018/04/14
- Add `CFQ_USE_80_KEYS` to optionally support an 80 key layout.
-
-- 2018/03/08
- Add `CFQ_USE_SHIFT_QUOTES` option.
- Add `CFQ_USER_KEY8` key.
-
- When holding shift `CFQ_WORD_[A-Z]` use title caps.
-
-- 2018/03/06
- Add layer for user defined words (replaces `CFQ_USE_EXPEREMENTAL_LAYER`).
-
- Minor changes to thumb cluster.
-
- Move backspace to left thumb, optionally remap the top right backspace.
-
- Make keypad layout match a typical numpad.
-
- Move F-Keys to layer 3.
-
-- 2017/11/09
- Use Caps-Lock when `CFQ_USE_EXPEREMENTAL_LAYER` isn't defined.
-
-- 2017/11/07
- Make thumb left thumb cluster completely configurable with defines.
- Add mouse wheel to mouse layer.
-
-- 2017/10/28
- Make more keys user defined on the left thumb cluster.
- Add macro record/replay keys.
-
-- 2017/10/04
- Move Insert key to the left thumb cluster (away from the modifier keys).
- Replace with `USR2` which defaults to `APP`.
diff --git a/layouts/community/ergodox/readme.md b/layouts/community/ergodox/readme.md
index ddbe1933c2..e69af2bdef 100644
--- a/layouts/community/ergodox/readme.md
+++ b/layouts/community/ergodox/readme.md
@@ -1,3 +1,3 @@
# ergodox
- LAYOUT_ergodox \ No newline at end of file
+ LAYOUT_ergodox
diff --git a/layouts/community/ergodox/reset_eeprom/keymap.c b/layouts/community/ergodox/reset_eeprom/keymap.c
deleted file mode 100644
index 726447cbd0..0000000000
--- a/layouts/community/ergodox/reset_eeprom/keymap.c
+++ /dev/null
@@ -1,118 +0,0 @@
-#include QMK_KEYBOARD_H
-#include "debug.h"
-#include "action_layer.h"
-#include "version.h"
-
-#define BASE 0 // default layer
-#define SYMB 1 // symbols
-#define MDIA 2 // media keys
-
-enum custom_keycodes {
- PLACEHOLDER = SAFE_RANGE, // can always be here
- EPRM,
- VRSN,
- RGB_SLD
-};
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-/* Keymap 0: Basic layer
- *
- * ,--------------------------------------------------. ,--------------------------------------------------.
- * | = | 1 | 2 | 3 | 4 | 5 | LEFT | | RIGHT| 6 | 7 | 8 | 9 | 0 | - |
- * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | Del | Q | W | E | R | T | L1 | | L1 | Y | U | I | O | P | \ |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | BkSp | A | S | D | F | G |------| |------| H | J | K | L |; / L2|' / Cmd |
- * |--------+------+------+------+------+------| Hyper| | Meh |------+------+------+------+------+--------|
- * | LShift |Z/Ctrl| X | C | V | B | | | | N | M | , | . |//Ctrl| RShift |
- * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * |Grv/L1| '" |AltShf| Left | Right| | Up | Down | [ | ] | ~L1 |
- * `----------------------------------' `----------------------------------'
- * ,-------------. ,-------------.
- * | App | LGui | | Alt |Ctrl/Esc|
- * ,------|------|------| |------+--------+------.
- * | | | Home | | PgUp | | |
- * | Space|Backsp|------| |------| Tab |Enter |
- * | |ace | End | | PgDn | | |
- * `--------------------' `----------------------'
- */
-// If it accepts an argument (i.e, is a function), it doesn't need KC_.
-// Otherwise, it needs KC_*
-[BASE] = LAYOUT_ergodox( // layer 0 : default
- // left hand
- EPRM, EPRM, EPRM, EPRM, EPRM, EPRM, EPRM,
- EPRM, EPRM, EPRM, EPRM, EPRM, EPRM, EPRM,
- EPRM, EPRM, EPRM, EPRM, EPRM, EPRM,
- EPRM, EPRM, EPRM, EPRM, EPRM, EPRM, EPRM,
- EPRM, EPRM, EPRM, EPRM,EPRM,
- EPRM, EPRM,
- EPRM,
- EPRM,EPRM,EPRM,
- // right hand
- EPRM, EPRM, EPRM, EPRM, EPRM, EPRM, EPRM,
- EPRM, EPRM, EPRM, EPRM, EPRM, EPRM, EPRM,
- EPRM, EPRM, EPRM, EPRM, EPRM,EPRM,
- EPRM,EPRM, EPRM, EPRM,EPRM, EPRM, EPRM,
- EPRM, EPRM,EPRM,EPRM, EPRM,
- EPRM, EPRM,
- EPRM,
- EPRM,EPRM, EPRM
- )
-};
-
-bool process_record_user(uint16_t keycode, keyrecord_t *record) {
- switch (keycode) {
- // dynamically generate these.
- case EPRM:
- if (record->event.pressed) {
- eeconfig_init();
- }
- return false;
- break;
- case VRSN:
- if (record->event.pressed) {
- SEND_STRING (QMK_KEYBOARD "/" QMK_KEYMAP " @ " QMK_VERSION);
- }
- return false;
- break;
- case RGB_SLD:
- if (record->event.pressed) {
- #ifdef RGBLIGHT_ENABLE
- rgblight_mode(1);
- #endif
- }
- return false;
- break;
- }
- return true;
-}
-
-// Runs just one time when the keyboard initializes.
-void matrix_init_user(void) {
- eeconfig_init();
-};
-
-
-// Runs constantly in the background, in a loop.
-void matrix_scan_user(void) {
-
- uint8_t layer = get_highest_layer(layer_state);
-
- ergodox_board_led_off();
- ergodox_right_led_1_off();
- ergodox_right_led_2_off();
- ergodox_right_led_3_off();
- switch (layer) {
- // TODO: Make this relevant to the ErgoDox EZ.
- case 1:
- ergodox_right_led_1_on();
- break;
- case 2:
- ergodox_right_led_2_on();
- break;
- default:
- // none
- break;
- }
-
-};
diff --git a/layouts/community/ergodox/robot_test_layout/keymap.c b/layouts/community/ergodox/robot_test_layout/keymap.c
deleted file mode 100644
index 4bdda3ae83..0000000000
--- a/layouts/community/ergodox/robot_test_layout/keymap.c
+++ /dev/null
@@ -1,133 +0,0 @@
-#include QMK_KEYBOARD_H
-#include "debug.h"
-#include "action_layer.h"
-#include "version.h"
-
-enum custom_keycodes {
- PLACEHOLDER = SAFE_RANGE, // can always be here
- RGB_FF0000,
- RGB_00FF00,
- RGB_0000FF,
- RGB_FFFFFF,
- RGB_TOGGLE,
- LED1,
- LED2,
- LED3
-};
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
-[0] = LAYOUT_ergodox(
- RGB_TOGGLE, RGB_FF0000, RGB_00FF00, RGB_0000FF, RGB_FFFFFF, KC_5, KC_LPRN,
- KC_GRAVE, KC_A, KC_B, KC_C, KC_D, KC_E, KC_EXLM,
- KC_HASH, KC_J, KC_K, KC_L, KC_M, KC_N,
- KC_AMPR, KC_T, KC_U, KC_V, KC_W, KC_X, KC_DLR,
- KC_PIPE, KC_R, KC_PLUS, KC_LCBR, KC_RCBR,
-
- KC_F, KC_G,
- KC_H,
- KC_P, KC_O, KC_I,
-
-
-
- // RIGHT HAND
- KC_RPRN, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS,
- KC_AT, KC_F, KC_G, KC_H, KC_I, KC_COLN, KC_BSLS,
- KC_O, KC_P, KC_Q, KC_R, KC_S, KC_QUOT,
- LSFT(KC_COMM), KC_Y, KC_Z, KC_COMM, KC_DOT, KC_SLSH, KC_ASTR,
- KC_A, KC_B, KC_C, KC_D, KC_PIPE,
-
- LED1, KC_E,
- LED2,
- LED3, KC_J, KC_K
- )
-};
-
-bool status_led1_on = false, status_led2_on = false, status_led3_on = false;
-bool process_record_user(uint16_t keycode, keyrecord_t *record) {
- switch (keycode) {
- // dynamically generate these.
- case RGB_FF0000:
- if (record->event.pressed) {
- #ifdef RGBLIGHT_ENABLE
- EZ_RGB(0xff0000UL);
- register_code(KC_1); unregister_code(KC_1);
- #endif
- }
- return false;
- break;
- case RGB_00FF00:
- if (record->event.pressed) {
- #ifdef RGBLIGHT_ENABLE
- EZ_RGB(0x00ff00UL);
- register_code(KC_2); unregister_code(KC_2);
- #endif
- }
- return false;
- break;
- case RGB_0000FF:
- if (record->event.pressed) {
- #ifdef RGBLIGHT_ENABLE
- EZ_RGB(0x0000ffUL);
- register_code(KC_3); unregister_code(KC_3);
- #endif
- }
- return false;
- break;
- case RGB_FFFFFF:
- if (record->event.pressed) {
- #ifdef RGBLIGHT_ENABLE
- EZ_RGB(0xffffffUL);
- register_code(KC_4); unregister_code(KC_4);
- #endif
- }
- return false;
- break;
- case RGB_TOGGLE:
- if (record->event.pressed) {
- #ifdef RGBLIGHT_ENABLE
- rgblight_toggle();
- register_code(KC_EQL); unregister_code(KC_EQL);
- #endif
- }
- return false;
- break;
- case LED1:
- if (record->event.pressed) {
- if(status_led1_on) {
- ergodox_right_led_1_off();
- status_led1_on = false;
- } else {
- ergodox_right_led_1_on();
- status_led1_on = true;
- }
- }
- return false;
- break;
- case LED2:
- if (record->event.pressed) {
- if(status_led2_on) {
- ergodox_right_led_2_off();
- status_led2_on = false;
- } else {
- ergodox_right_led_2_on();
- status_led2_on = true;
- }
- }
- return false;
- break;
- case LED3:
- if (record->event.pressed) {
- if(status_led3_on) {
- ergodox_right_led_3_off();
- status_led3_on = false;
- } else {
- ergodox_right_led_3_on();
- status_led3_on = true;
- }
- }
- return false;
- break;
- }
- return true;
-}
diff --git a/layouts/community/ergodox/robot_test_layout/readme.md b/layouts/community/ergodox/robot_test_layout/readme.md
deleted file mode 100644
index 45dc2aa76c..0000000000
--- a/layouts/community/ergodox/robot_test_layout/readme.md
+++ /dev/null
@@ -1,5 +0,0 @@
-# Robot test layout
-
-Use this layout if you like to pretend you're [Norman](https://www.youtube.com/watch?v=-sbxFBay-tg), the ErgoDox EZ manufacturing robot.
-
-It's really meant just for internal use, but we're posting it on GitHub anyway, because hurray to open source. :)
diff --git a/layouts/community/ergodox/romanzolotarev-norman-osx/keymap.c b/layouts/community/ergodox/romanzolotarev-norman-osx/keymap.c
deleted file mode 100644
index 971e764ee2..0000000000
--- a/layouts/community/ergodox/romanzolotarev-norman-osx/keymap.c
+++ /dev/null
@@ -1,35 +0,0 @@
-#include QMK_KEYBOARD_H
-#include "debug.h"
-#include "action_layer.h"
-
-#define BASE 0
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [BASE] = LAYOUT_ergodox(
- KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_F5,
- KC_TAB, KC_Q, KC_W, KC_D, KC_F, KC_K, KC_BSLS,
- KC_LCTL, KC_A, KC_S, KC_E, KC_T, KC_G,
- KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_LBRC,
- KC_F1, KC_F2, KC_F3, KC_F4, KC_LGUI,
- /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_VOLD, KC_MUTE,
- /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_VOLU,
- /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_BSPC, CTL_T(KC_ESC), KC_LALT,
- //
- /*-*/ KC_F6, KC_6, KC_7, KC_8, KC_9, KC_0, KC_EQL,
- /*-*/ KC_NO, KC_J, KC_U, KC_R, KC_L, KC_SCLN, KC_MINS,
- /*-*/ /*-*/ KC_Y, KC_N, KC_I, KC_O, KC_H, KC_ENT,
- /*-*/ KC_RBRC, KC_P, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,
- /*-*/ /*-*/ /*-*/ KC_RGUI, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT,
- KC_MPLY, KC_MNXT,
- KC_MPRV,
- KC_RALT, KC_QUOT, KC_SPC
- )
-};
-
-// Runs just one time when the keyboard initializes.
-void matrix_init_user(void) {
- ergodox_board_led_off();
- ergodox_right_led_1_off();
- ergodox_right_led_2_off();
- ergodox_right_led_3_off();
-};
diff --git a/layouts/community/ergodox/romanzolotarev-norman-osx/readme.md b/layouts/community/ergodox/romanzolotarev-norman-osx/readme.md
deleted file mode 100644
index 5e7d0ebb1e..0000000000
--- a/layouts/community/ergodox/romanzolotarev-norman-osx/readme.md
+++ /dev/null
@@ -1,41 +0,0 @@
-# Roman's Layout
-
-There is only one layer, and it is based on [Norman
-layout](https://normanlayout.info/).
-
-Looking for multiple-layer layouts?
-
-- [Symbols, arrows, plover, HJKL
- arrows](../romanzolotarev-norman-plover-osx-hjkl/)
-- [Same with IJKL arrows](../romanzolotarev-norman-plover-osx/)
-
-[![keyboard-layout](https://i.imgur.com/U14664K.png)](http://www.keyboard-layout-editor.com/#/gists/9e89d54f1ea6eeeb7dab1b2d19d28195)
-
-## How to use Vim key
-
-It is `CTL_T(KC_ESC)` and it works this way:
-
-- Tap `CTRL/ESC` to send `ESC`.
-- Hold `CTRL/ESC` to use as `CTRL`.
-
-## How to activate N-rollover
-
-- Hold left `SHIFT` and right `SHIFT` and then tap `N`.
-
-## How to make and flash on OS X
-
-First you need to install few brew packages.
-
-```bash
-brew tap osx-cross/avr
-brew install dfu-programmer avr-libc teensy_loader_cli
-```
-
-Then you can clone this repository, make and flash your ErgoDox.
-
-```bash
-git clone https://github.com/romanzolotarev/qmk_firmware
-cd qmk_firmware/keyboards/ergodox
-# Optionally tweak ./keymaps/romanzolotarev-norman-osx/keymap.c
-SLEEP_LED_ENABLED=no LAYOUT_ergodox=romanzolotarev-norman-osx make teensy
-```
diff --git a/layouts/community/ergodox/romanzolotarev-norman-plover-osx-hjkl/keymap.c b/layouts/community/ergodox/romanzolotarev-norman-plover-osx-hjkl/keymap.c
deleted file mode 100644
index 6eb319ca63..0000000000
--- a/layouts/community/ergodox/romanzolotarev-norman-plover-osx-hjkl/keymap.c
+++ /dev/null
@@ -1,109 +0,0 @@
-#include QMK_KEYBOARD_H
-#include "debug.h"
-#include "action_layer.h"
-
-#define BASE 0
-#define SYMB 1
-#define PLVR 2
-#define ARRW 3
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [BASE] = LAYOUT_ergodox(
- KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_F14,
- KC_TAB, KC_Q, KC_W, KC_D, KC_F, KC_K, TG(PLVR),
- CTL_T(KC_ESC), KC_A, KC_S, KC_E, KC_T, KC_G,
- KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_LBRC,
- KC_F1, KC_F2, KC_F3, KC_LALT, KC_LGUI,
- /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_VOLD, KC_MUTE,
- /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_VOLU,
- /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_BSPC, CTL_T(KC_ESC), TT(SYMB),
- //
- /*-*/ KC_F15, KC_6, KC_7, KC_8, KC_9, KC_0, KC_EQL,
- /*-*/ KC_BSLS, KC_J, KC_U, KC_R, KC_L, KC_SCLN, KC_MINS,
- /*-*/ /*-*/ KC_Y, KC_N, KC_I, KC_O, KC_H, KC_ENT,
- /*-*/ KC_RBRC, KC_P, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,
- /*-*/ /*-*/ /*-*/ KC_RGUI, KC_RALT, KC_F4, KC_F5, KC_F6,
- KC_MPLY, KC_MNXT,
- KC_MPRV,
- TT(ARRW), KC_QUOT, KC_SPC
- ),
- [SYMB] = LAYOUT_ergodox(
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_1, KC_2, KC_3, KC_4, KC_5, KC_TRNS,
- KC_TRNS, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_TRNS, KC_TRNS,
- /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_TRNS,
- /*-*/ /*-*/ /*-*/ /*-*/ KC_TRNS, KC_TRNS, KC_TRNS,
- //
- /*-*/ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- /*-*/ KC_TRNS, KC_6, KC_7, KC_8, KC_9, KC_0, KC_TRNS,
- /*-*/ /*-*/ KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_TRNS,
- /*-*/ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- /*-*/ /*-*/ /*-*/ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS,
- KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS
- ),
- [PLVR] = LAYOUT_ergodox(
- KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_TRNS,
- KC_NO, KC_1, KC_2, KC_3, KC_4, KC_5, KC_TRNS,
- KC_NO, KC_Q, KC_W, KC_E, KC_R, KC_T,
- KC_NO, KC_A, KC_S, KC_D, KC_F, KC_G, KC_NO,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_NO, KC_NO,
- /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_TRNS, KC_TRNS,
- /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_TRNS,
- /*-*/ /*-*/ /*-*/ /*-*/ KC_C, KC_V, KC_NO,
- //
- /*-*/ KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
- /*-*/ KC_NO, KC_6, KC_7, KC_8, KC_9, KC_0, KC_NO,
- /*-*/ /*-*/ KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC,
- /*-*/ KC_NO, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
- /*-*/ /*-*/ /*-*/ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
- KC_TRNS, KC_TRNS,
- KC_TRNS,
- KC_NO, KC_N, KC_M
- ),
- [ARRW] = LAYOUT_ergodox(
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_MS_L, KC_MS_U, KC_MS_D, KC_MS_R,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_BTN1, KC_BTN2, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_TRNS, KC_TRNS,
- /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_TRNS,
- /*-*/ /*-*/ /*-*/ /*-*/ KC_TRNS, KC_TRNS, KC_TRNS,
- //
- /*-*/ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- /*-*/ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- /*-*/ /*-*/ KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_TRNS, KC_TRNS,
- /*-*/ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- /*-*/ /*-*/ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS,
- KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS
- ),
-};
-
-// Runs constantly in the background, in a loop.
-void matrix_scan_user(void) {
- uint8_t layer = get_highest_layer(layer_state);
- ergodox_board_led_off();
- ergodox_right_led_1_off();
- ergodox_right_led_2_off();
- ergodox_right_led_3_off();
- switch (layer) {
- case SYMB:
- ergodox_right_led_1_on();
- break;
- case PLVR:
- ergodox_right_led_2_on();
- break;
- case ARRW:
- ergodox_right_led_3_on();
- break;
- default:
- break;
- }
-};
diff --git a/layouts/community/ergodox/romanzolotarev-norman-plover-osx-hjkl/readme.md b/layouts/community/ergodox/romanzolotarev-norman-plover-osx-hjkl/readme.md
deleted file mode 100644
index 577d5749cd..0000000000
--- a/layouts/community/ergodox/romanzolotarev-norman-plover-osx-hjkl/readme.md
+++ /dev/null
@@ -1,50 +0,0 @@
-# Roman's Layout
-
-There are four layers:
-
-- **BASE** is [Norman layout](https://normanlayout.info/).
-- **SYMB** for numbers and symbols.
-- **PLVR** is optimized for [Plover](http://www.openstenoproject.org).
-- **ARRW** for navigation (same fingers for arrows as HJKL on QWERTY).
-
-Looking for IJKL arrows? [Here we
-go](../romanzolotarev-norman-plover-osx/).
-
-[![keyboard-layout](https://i.imgur.com/uvMxLuJ.png)](http://www.keyboard-layout-editor.com/#/gists/56ffedceb0668dda47c993e7271563e0)
-
-## Switching
-
-- Tap `SYMB` to toggle **SYMB**.
-- Tap `ARRW` to toggle **ARRW**.
-- Hold `SYMB` (or `ARRW`) to activate **SYMB** (or **ARRW**) while holding.
-- Tap `PLVR` to toggle **PLVR**.
-
-## LEDs
-
-- Red: SYMB is on.
-- Green: PLVR is on.
-- Blue: ARRW is on.
-
-## Functional Keys
-
-- Tap `F1` to mute microphone via [Shush](http://mizage.com/shush/).
-- Tap `F2` to copy screenshot to the clipboard.
-- Hold `SHIFT` and tap `F2` to save screenshot as a file.
-- Tap `F3`, `F4`, `F5`, `F6` to resize a window via [Divvy](http://mizage.com/divvy/).
-- Tap `F14`, `F15` to adjust display brightness.
-
-**IMPORTANT**: If you have another keyboard connected via Bluetooth, then
-`F14` and `F15` will not work. Turn off that Bluetooth keyboard. Re-plug
-you ErgoDox. Enjoy!
-
-## CTRL/ESC
-
-Both of those keys are frequently used in Vim.
-
-- Tap `CTRL/ESC` to send `ESC`.
-- Hold `CTRL/ESC` to use as `CTRL`.
-
-## Activate N-rollover
-
-- While in **BASE** hold left `SHIFT` and right `SHIRT` and then tap `N`.
-- Then you can activate **PLVR** and use ErgoDox EZ for steno.
diff --git a/layouts/community/ergodox/romanzolotarev-norman-plover-osx/keymap.c b/layouts/community/ergodox/romanzolotarev-norman-plover-osx/keymap.c
deleted file mode 100644
index adf420daa0..0000000000
--- a/layouts/community/ergodox/romanzolotarev-norman-plover-osx/keymap.c
+++ /dev/null
@@ -1,109 +0,0 @@
-#include QMK_KEYBOARD_H
-#include "debug.h"
-#include "action_layer.h"
-
-#define BASE 0
-#define SYMB 1
-#define PLVR 2
-#define ARRW 3
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [BASE] = LAYOUT_ergodox(
- KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_F14,
- KC_TAB, KC_Q, KC_W, KC_D, KC_F, KC_K, TG(PLVR),
- CTL_T(KC_ESC), KC_A, KC_S, KC_E, KC_T, KC_G,
- KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_LBRC,
- KC_F1, KC_F2, KC_F3, KC_LALT, KC_LGUI,
- /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_VOLD, KC_MUTE,
- /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_VOLU,
- /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_BSPC, CTL_T(KC_ESC), TT(SYMB),
- //
- /*-*/ KC_F15, KC_6, KC_7, KC_8, KC_9, KC_0, KC_EQL,
- /*-*/ KC_BSLS, KC_J, KC_U, KC_R, KC_L, KC_SCLN, KC_MINS,
- /*-*/ /*-*/ KC_Y, KC_N, KC_I, KC_O, KC_H, KC_ENT,
- /*-*/ KC_RBRC, KC_P, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,
- /*-*/ /*-*/ /*-*/ KC_RGUI, KC_RALT, KC_F4, KC_F5, KC_F6,
- KC_MPLY, KC_MNXT,
- KC_MPRV,
- TT(ARRW), KC_QUOT, KC_SPC
- ),
- [SYMB] = LAYOUT_ergodox(
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_1, KC_2, KC_3, KC_4, KC_5, KC_TRNS,
- KC_TRNS, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_TRNS, KC_TRNS,
- /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_TRNS,
- /*-*/ /*-*/ /*-*/ /*-*/ KC_TRNS, KC_TRNS, KC_TRNS,
- //
- /*-*/ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- /*-*/ KC_TRNS, KC_6, KC_7, KC_8, KC_9, KC_0, KC_TRNS,
- /*-*/ /*-*/ KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_TRNS,
- /*-*/ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- /*-*/ /*-*/ /*-*/ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS,
- KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS
- ),
- [PLVR] = LAYOUT_ergodox(
- KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_TRNS,
- KC_NO, KC_1, KC_2, KC_3, KC_4, KC_5, KC_TRNS,
- KC_NO, KC_Q, KC_W, KC_E, KC_R, KC_T,
- KC_NO, KC_A, KC_S, KC_D, KC_F, KC_G, KC_NO,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_NO, KC_NO,
- /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_TRNS, KC_TRNS,
- /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_TRNS,
- /*-*/ /*-*/ /*-*/ /*-*/ KC_C, KC_V, KC_NO,
- //
- /*-*/ KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
- /*-*/ KC_NO, KC_6, KC_7, KC_8, KC_9, KC_0, KC_NO,
- /*-*/ /*-*/ KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC,
- /*-*/ KC_NO, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
- /*-*/ /*-*/ /*-*/ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
- KC_TRNS, KC_TRNS,
- KC_TRNS,
- KC_NO, KC_N, KC_M
- ),
- [ARRW] = LAYOUT_ergodox(
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_BTN1, KC_MS_U, KC_BTN2, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_R, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_TRNS, KC_TRNS,
- /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_TRNS,
- /*-*/ /*-*/ /*-*/ /*-*/ KC_TRNS, KC_TRNS, KC_TRNS,
- //
- /*-*/ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- /*-*/ KC_TRNS, KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS,
- /*-*/ /*-*/ KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, KC_TRNS,
- /*-*/ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- /*-*/ /*-*/ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS,
- KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS
- ),
-};
-
-// Runs constantly in the background, in a loop.
-void matrix_scan_user(void) {
- uint8_t layer = get_highest_layer(layer_state);
- ergodox_board_led_off();
- ergodox_right_led_1_off();
- ergodox_right_led_2_off();
- ergodox_right_led_3_off();
- switch (layer) {
- case SYMB:
- ergodox_right_led_1_on();
- break;
- case PLVR:
- ergodox_right_led_2_on();
- break;
- case ARRW:
- ergodox_right_led_3_on();
- break;
- default:
- break;
- }
-};
diff --git a/layouts/community/ergodox/romanzolotarev-norman-plover-osx/readme.md b/layouts/community/ergodox/romanzolotarev-norman-plover-osx/readme.md
deleted file mode 100644
index 6703bb8bc7..0000000000
--- a/layouts/community/ergodox/romanzolotarev-norman-plover-osx/readme.md
+++ /dev/null
@@ -1,50 +0,0 @@
-# Roman's Layout
-
-There are four layers:
-
-- **BASE** is [Norman layout](https://normanlayout.info/).
-- **SYMB** for numbers and symbols.
-- **PLVR** is optimized for [Plover](http://www.openstenoproject.org).
-- **ARRW** for navigation (same fingers for arrows as IJKL on QWERTY).
-
-Looking for HJKL arrows? [Here we
-go](../romanzolotarev-norman-plover-osx-hjkl/).
-
-[![keyboard-layout](https://i.imgur.com/kseXR4Z.png)](http://www.keyboard-layout-editor.com/#/gists/8ebcb701ecb763944417)
-
-## Switching
-
-- Tap `SYMB` to toggle **SYMB**.
-- Tap `ARRW` to toggle **ARRW**.
-- Hold `SYMB` (or `ARRW`) to activate **SYMB** (or **ARRW**) while holding.
-- Tap `PLVR` to toggle **PLVR**.
-
-## LEDs
-
-- Red: SYMB is on.
-- Green: PLVR is on.
-- Blue: ARRW is on.
-
-## Functional Keys
-
-- Tap `F1` to mute microphone via [Shush](http://mizage.com/shush/).
-- Tap `F2` to copy screenshot to the clipboard.
-- Hold `SHIFT` and tap `F2` to save screenshot as a file.
-- Tap `F3`, `F4`, `F5`, `F6` to resize a window via [Divvy](http://mizage.com/divvy/).
-- Tap `F14`, `F15` to adjust display brightness.
-
-**IMPORTANT**: If you have another keyboard connected via Bluetooth, then
-`F14` and `F15` will not work. Turn off that Bluetooth keyboard. Re-plug
-you ErgoDox. Enjoy!
-
-## CTRL/ESC
-
-Both of those keys are frequently used in Vim.
-
-- Tap `CTRL/ESC` to send `ESC`.
-- Hold `CTRL/ESC` to use as `CTRL`.
-
-## Activate N-rollover
-
-- While in **BASE** hold left `SHIFT` and right `SHIRT` and then tap `N`.
-- Then you can activate **PLVR** and use ErgoDox EZ for steno.
diff --git a/layouts/community/ergodox/romanzolotarev-norman-qwerty-osx/keymap.c b/layouts/community/ergodox/romanzolotarev-norman-qwerty-osx/keymap.c
deleted file mode 100644
index cf3941ee1d..0000000000
--- a/layouts/community/ergodox/romanzolotarev-norman-qwerty-osx/keymap.c
+++ /dev/null
@@ -1,63 +0,0 @@
-#include QMK_KEYBOARD_H
-#include "debug.h"
-#include "action_layer.h"
-
-#define BASE 0
-#define QWRT 1
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [BASE] = LAYOUT_ergodox(
- KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_F5,
- KC_TAB, KC_Q, KC_W, KC_D, KC_F, KC_K, KC_BSLS,
- KC_LCTL, KC_A, KC_S, KC_E, KC_T, KC_G,
- KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_LBRC,
- KC_F1, KC_F2, KC_F3, KC_F4, KC_LGUI,
- /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_VOLD, KC_MUTE,
- /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_VOLU,
- /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_BSPC, CTL_T(KC_ESC), KC_LALT,
- //
- /*-*/ KC_F6, KC_6, KC_7, KC_8, KC_9, KC_0, KC_EQL,
- /*-*/ TG(QWRT), KC_J, KC_U, KC_R, KC_L, KC_SCLN, KC_MINS,
- /*-*/ /*-*/ KC_Y, KC_N, KC_I, KC_O, KC_H, KC_ENT,
- /*-*/ KC_RBRC, KC_P, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,
- /*-*/ /*-*/ /*-*/ KC_RGUI, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT,
- KC_MPLY, KC_MNXT,
- KC_MPRV,
- KC_RALT, KC_QUOT, KC_SPC
- ),
- [QWRT] = LAYOUT_ergodox(
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_E, KC_R, KC_T, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_D, KC_F, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_TRNS, KC_TRNS,
- /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_TRNS,
- /*-*/ /*-*/ /*-*/ /*-*/ KC_TRNS, KC_TRNS, KC_TRNS,
- //
- /*-*/ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- /*-*/ KC_TRNS, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_TRNS,
- /*-*/ /*-*/ KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_TRNS,
- /*-*/ KC_TRNS, KC_N, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- /*-*/ /*-*/ /*-*/ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS,
- KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS
- ),
-};
-
-// Runs constantly in the background, in a loop.
-void matrix_scan_user(void) {
- uint8_t layer = get_highest_layer(layer_state);
- ergodox_board_led_off();
- ergodox_right_led_1_off();
- ergodox_right_led_2_off();
- ergodox_right_led_3_off();
- switch (layer) {
- case QWRT:
- ergodox_right_led_1_on();
- break;
- default:
- break;
- }
-};
diff --git a/layouts/community/ergodox/romanzolotarev-norman-qwerty-osx/readme.md b/layouts/community/ergodox/romanzolotarev-norman-qwerty-osx/readme.md
deleted file mode 100644
index 41859f1ad2..0000000000
--- a/layouts/community/ergodox/romanzolotarev-norman-qwerty-osx/readme.md
+++ /dev/null
@@ -1,34 +0,0 @@
-# Roman's Layout
-
-There are two layers:
-
-- **BASE** is [Norman layout](https://normanlayout.info/).
-- **QWRT** is QWERTY.
-
-[![keyboard-layout](https://i.imgur.com/jfKBznw.png)](http://www.keyboard-layout-editor.com/#/gists/3b236f450da474dc506a5a80390c3cc7)
-
-## Switching
-
-- Tap `QWRT` to toggle **QWRT**.
-
-## LEDs
-
-- Red: QWRT is on.
-
-## Functional Keys
-
-- Tap `F1` to mute microphone via [Shush](http://mizage.com/shush/).
-- Tap `F2` to copy screenshot to the clipboard.
-- Hold `SHIFT` and tap `F2` to save screenshot as a file.
-- Tap `F3`, `F4`, `F5`, `F6` to resize a window via [Divvy](http://mizage.com/divvy/).
-
-## CTRL/ESC
-
-Both CTRL and ESC are frequently used in Vim.
-
-- Tap `CTRL/ESC` to send `ESC`.
-- Hold `CTRL/ESC` to use as `CTRL`.
-
-## Activate N-rollover
-
-- Hold left `SHIFT` and right `SHIRT` and then tap `N`.
diff --git a/layouts/community/ergodox/sethbc/keymap.c b/layouts/community/ergodox/sethbc/keymap.c
deleted file mode 100644
index 1d21471688..0000000000
--- a/layouts/community/ergodox/sethbc/keymap.c
+++ /dev/null
@@ -1,99 +0,0 @@
-#include QMK_KEYBOARD_H
-#include "action_layer.h"
-
-#define BASE 0 // default layer
-#define FN1 1 // symbols
-#define FN2 2 // media keys
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-[BASE] = LAYOUT_ergodox( // layer 0 : default
- // left hand
- KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, KC_ESC,
- KC_BSLS, KC_Q, KC_W, KC_E, KC_R, KC_T, MO(FN2),
- KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G,
- KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, MO(FN1),
- KC_LGUI, KC_GRV, KC_BSLS, KC_LEFT, KC_RGHT,
- KC_LCTL, KC_LALT,
- KC_HOME,
- KC_BSPC, KC_DEL, KC_END,
- // right hand
- MO(FN2), KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS,
- KC_LBRC, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_RBRC,
- KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
- MO(FN1), KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,
- KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_RGUI,
- KC_RALT, KC_RCTL,
- KC_PGUP,
- KC_PGDN, KC_ENT, KC_SPC
- ),
-// FN1
-[FN1] = LAYOUT_ergodox(
- // left hand
- KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F11,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS,
- KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS,
- // right hand
- KC_F12, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS,
- KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS
-),
-// FN2
-[FN2] = LAYOUT_ergodox(
- 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,
- // right hand
- KC_TRNS, KC_NUM, KC_PSLS, KC_PAST, KC_PAST, KC_PMNS, KC_BSPC,
- KC_TRNS, KC_NO, KC_P7, KC_P8, KC_P9, KC_PMNS, KC_BSPC,
- KC_NO, KC_P4, KC_P5, KC_P6, KC_PPLS, KC_PENT,
- KC_TRNS, KC_NO, KC_P1, KC_P2, KC_P3, KC_PPLS, KC_PENT,
- KC_P0, KC_PDOT, KC_SLSH, KC_PENT, KC_PENT,
- KC_TRNS, KC_TRNS,
- KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS
-),
-};
-
-// Runs just one time when the keyboard initializes.
-void matrix_init_user(void) {
-
-};
-
-// Runs constantly in the background, in a loop.
-void matrix_scan_user(void) {
-
- uint8_t layer = get_highest_layer(layer_state);
-
- ergodox_board_led_off();
- ergodox_right_led_1_off();
- ergodox_right_led_2_off();
- ergodox_right_led_3_off();
- switch (layer) {
- // TODO: Make this relevant to the ErgoDox EZ.
- case 1:
- ergodox_right_led_1_on();
- break;
- case 2:
- ergodox_right_led_2_on();
- break;
- default:
- // none
- break;
- }
-
-};
diff --git a/layouts/community/ergodox/sethbc/readme.md b/layouts/community/ergodox/sethbc/readme.md
deleted file mode 100644
index 57b5d0ec7c..0000000000
--- a/layouts/community/ergodox/sethbc/readme.md
+++ /dev/null
@@ -1,4 +0,0 @@
-# sethbc's Ergodox EZ keymap
-
-Largely based on the Ergodox Infinity default keymap, but layer locking has been
-removed in favor of momentary layer activation
diff --git a/layouts/community/ergodox/sethbc/rules.mk b/layouts/community/ergodox/sethbc/rules.mk
deleted file mode 100644
index 8b13789179..0000000000
--- a/layouts/community/ergodox/sethbc/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-
diff --git a/layouts/community/ergodox/siroken3/default.png.md b/layouts/community/ergodox/siroken3/default.png.md
deleted file mode 100644
index 440b424d0e..0000000000
--- a/layouts/community/ergodox/siroken3/default.png.md
+++ /dev/null
@@ -1 +0,0 @@
-https://i.imgur.com/9xDhYOd.png
diff --git a/layouts/community/ergodox/siroken3/default_highres.png.md b/layouts/community/ergodox/siroken3/default_highres.png.md
deleted file mode 100644
index 22453303d3..0000000000
--- a/layouts/community/ergodox/siroken3/default_highres.png.md
+++ /dev/null
@@ -1 +0,0 @@
-https://i.imgur.com/E5oJXz5.jpg
diff --git a/layouts/community/ergodox/siroken3/keymap.c b/layouts/community/ergodox/siroken3/keymap.c
deleted file mode 100644
index 50695fd695..0000000000
--- a/layouts/community/ergodox/siroken3/keymap.c
+++ /dev/null
@@ -1,163 +0,0 @@
-// Netable differences vs. the default firmware for the ErgoDox EZ:
-// 1. The Cmd key is now on the right side, making Cmd+Space easier.
-// 2. The media keys work on OSX (But not on Windows).
-#include QMK_KEYBOARD_H
-#include "debug.h"
-#include "action_layer.h"
-
-#define BASE 0 // default layer
-#define SYMB 1 // symbols
-#define MDIA 2 // media keys
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-/* Keymap 0: Basic layer
- *
- * ,--------------------------------------------------. ,--------------------------------------------------.
- * | = | 1 | 2 | 3 | 4 | 5 | LEFT | | RIGHT| 6 | 7 | 8 | 9 | 0 | - |
- * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | Tab | Q | W | E | R | T | L1 | | L1 | Y | U | I | O | P | \ |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | LCtl | A | S | D | F | G |------| |------| H | J | K | L |; / L2| LGui |
- * |--------+------+------+------+------+------| BkSp | | Meh |------+------+------+------+------+--------|
- * | LShift |Z/Ctrl| X | C | V | B | | | | N | M | , | . |//Ctrl| RShift |
- * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * |Grv/L1| '" |AltShf| Left | Right| | Up | Down | [ | ] | ~L1 |
- * `----------------------------------' `----------------------------------'
- * ,-------------. ,---------------.
- * | BkSp | LGui | | Alt |Ctrl/Esc|
- * ,------|------|------| |------+--------+------.
- * | | | Home | | PgUp | | |
- * | Space|LANG1 |------| |------|LANG2 |Enter |
- * | /LGui| | End | | PgDn | | |
- * `--------------------' `----------------------'
- */
-// If it accepts an argument (i.e, is a function), it doesn't need KC_.
-// Otherwise, it needs KC_*
-[BASE] = LAYOUT_ergodox( // layer 0 : default
- // left hand
- KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, KC_LEFT,
- KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, TG(SYMB),
- KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G,
- KC_LSFT, CTL_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_BSPC,
- LT(SYMB,KC_GRV),KC_QUOT, LALT(KC_LSFT), KC_LEFT,KC_RGHT,
- KC_BSPC, KC_LGUI,
- KC_HOME,
- MT(MOD_LGUI, KC_SPC),KC_LNG1,KC_END,
- // right hand
- KC_RGHT, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS,
- TG(SYMB), KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS,
- KC_H, KC_J, KC_K, KC_L, LT(MDIA, KC_SCLN),KC_LGUI,
- MEH_T(KC_NO),KC_N, KC_M, KC_COMM,KC_DOT, CTL_T(KC_SLSH), KC_RSFT,
- KC_UP, KC_DOWN,KC_LBRC,KC_RBRC, TT(SYMB),
- KC_LALT, CTL_T(KC_ESC),
- KC_PGUP,
- KC_PGDN,KC_LNG2, KC_ENT
- ),
-/* Keymap 1: Symbol Layer
- *
- * ,--------------------------------------------------. ,--------------------------------------------------.
- * | | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | F11 |
- * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | | ! | @ | { | } | | | | | | Up | 7 | 8 | 9 | * | F12 |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | # | $ | ( | ) | ` |------| |------| Down | 4 | 5 | 6 | + | |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | % | ^ | [ | ] | ~ | | | | & | 1 | 2 | 3 | \ | |
- * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * | | | | | | | | . | 0 | = | |
- * `----------------------------------' `----------------------------------'
- * ,-------------. ,-------------.
- * | | | | | |
- * ,------|------|------| |------+------+------.
- * | | | | | | | |
- * | | |------| |------| | |
- * | | | | | | | |
- * `--------------------' `--------------------'
- */
-// SYMBOLS
-[SYMB] = LAYOUT_ergodox(
- // left hand
- KC_TRNS,KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_TRNS,
- KC_TRNS,KC_EXLM,KC_AT, KC_LCBR,KC_RCBR,KC_PIPE,KC_TRNS,
- KC_TRNS,KC_HASH,KC_DLR, KC_LPRN,KC_RPRN,KC_GRV,
- KC_TRNS,KC_PERC,KC_CIRC,KC_LBRC,KC_RBRC,KC_TILD,KC_TRNS,
- KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
- KC_TRNS,KC_TRNS,
- KC_TRNS,
- KC_TRNS,KC_TRNS,KC_TRNS,
- // right hand
- KC_TRNS, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,
- KC_TRNS, KC_UP, KC_7, KC_8, KC_9, KC_ASTR, KC_F12,
- KC_DOWN, KC_4, KC_5, KC_6, KC_PLUS, KC_TRNS,
- KC_TRNS, KC_AMPR, KC_1, KC_2, KC_3, KC_BSLS, KC_TRNS,
- KC_TRNS,KC_DOT, KC_0, KC_EQL, KC_TRNS,
- KC_TRNS, KC_TRNS,
- KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS
-),
-/* Keymap 2: Media and mouse keys
- *
- * ,--------------------------------------------------. ,--------------------------------------------------.
- * | | | | | | | | | | | | | | | |
- * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | | | | MsUp | | | | | | | | | | | |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | |MsLeft|MsDown|MsRght| |------| |------| | | | | | Play |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | | | | | | | | | | | Prev | Next | | |
- * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * | | | | Lclk | Rclk | |VolUp |VolDn | Mute | | |
- * `----------------------------------' `----------------------------------'
- * ,-------------. ,-------------.
- * | | | | | |
- * ,------|------|------| |------+------+------.
- * | | | | | | |Brwser|
- * | | |------| |------| |Back |
- * | | | | | | | |
- * `--------------------' `--------------------'
- */
-// MEDIA AND MOUSE
-[MDIA] = LAYOUT_ergodox(
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_MS_U, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_R, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_BTN1, KC_BTN2,
- KC_TRNS, KC_TRNS,
- KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS,
- // right hand
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_MPRV, KC_MNXT, KC_TRNS, KC_TRNS,
- KC_VOLU, KC_VOLD, KC_MUTE, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS,
- KC_TRNS,
- KC_TRNS, KC_TRNS, KC_WBAK
-),
-};
-
-// Runs constantly in the background, in a loop.
-void matrix_scan_user(void) {
-
- uint8_t layer = get_highest_layer(layer_state);
-
- ergodox_board_led_off();
- ergodox_right_led_1_off();
- ergodox_right_led_2_off();
- ergodox_right_led_3_off();
- switch (layer) {
- // TODO: Make this relevant to the ErgoDox EZ.
- case 1:
- ergodox_right_led_1_on();
- break;
- case 2:
- ergodox_right_led_2_on();
- break;
- default:
- // none
- break;
- }
-
-};
diff --git a/layouts/community/ergodox/siroken3/readme.md b/layouts/community/ergodox/siroken3/readme.md
deleted file mode 100644
index ed085ebfd5..0000000000
--- a/layouts/community/ergodox/siroken3/readme.md
+++ /dev/null
@@ -1,15 +0,0 @@
-# ErgoDox EZ Default Configuration
-
-## Changelog
-
-* Dec 2016:
- * Added LED keys
- * Refreshed layout graphic, comes from http://configure.ergodox-ez.com now.
-* Sep 22, 2016:
- * Created a new key in layer 1 (bottom-corner key) that resets the EEPROM.
-* Feb 2, 2016 (V1.1):
- * Made the right-hand quote key double as Cmd/Win on hold. So you get ' when you tap it, " when you tap it with Shift, and Cmd or Win when you hold it. You can then use it as a modifier, or just press and hold it for a moment (and then let go) to send a single Cmd or Win keystroke (handy for opening the Start menu on Windows).
-
-This is what we ship with out of the factory. :) The image says it all:
-
-![Default](https://i.imgur.com/h8k5P0l.png)
diff --git a/layouts/community/ergodox/sneako/keymap.c b/layouts/community/ergodox/sneako/keymap.c
deleted file mode 100644
index dffe797ab0..0000000000
--- a/layouts/community/ergodox/sneako/keymap.c
+++ /dev/null
@@ -1,163 +0,0 @@
-// Based on `default_osx`
-// Replace left Bksp with Ctrl/Esc
-// Remove the Ctrl from Z and /
-#include QMK_KEYBOARD_H
-#include "debug.h"
-#include "action_layer.h"
-
-#define BASE 0 // default layer
-#define SYMB 1 // symbols
-#define MDIA 2 // media keys
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-/* Keymap 0: Basic layer
- *
- * ,--------------------------------------------------. ,--------------------------------------------------.
- * | = | 1 | 2 | 3 | 4 | 5 | LEFT | | RIGHT| 6 | 7 | 8 | 9 | 0 | - |
- * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | Del | Q | W | E | R | T | L1 | | L1 | Y | U | I | O | P | \ |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * |Ctrl/Esc| A | S | D | F | G |------| |------| H | J | K | L |; / L2| LGui |
- * |--------+------+------+------+------+------| Hyper| | Meh |------+------+------+------+------+--------|
- * | LShift | Z | X | C | V | B | | | | N | M | , | . | / | RShift |
- * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * |Grv/L1| '" |AltShf| Left | Right| | Up | Down | [ | ] | ~L1 |
- * `----------------------------------' `----------------------------------'
- * ,-------------. ,-------------.
- * | App | LGui | | Alt |Ctrl/Esc|
- * ,------|------|------| |------+--------+------.
- * | | | Home | | PgUp | | |
- * | Space|Backsp|------| |------| Tab |Enter |
- * | |ace | End | | PgDn | | |
- * `--------------------' `----------------------'
- */
-// If it accepts an argument (i.e, is a function), it doesn't need KC_.
-// Otherwise, it needs KC_*
-[BASE] = LAYOUT_ergodox( // layer 0 : default
- // left hand
- KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, KC_LEFT,
- KC_DEL, KC_Q, KC_W, KC_E, KC_R, KC_T, TG(1),
- CTL_T(KC_ESC), KC_A, KC_S, KC_D, KC_F, KC_G,
- KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, ALL_T(KC_NO),
- LT(SYMB,KC_GRV),KC_QUOT, LALT(KC_LSFT), KC_LEFT,KC_RGHT,
- ALT_T(KC_APP), KC_LGUI,
- KC_HOME,
- KC_SPC,KC_BSPC,KC_END,
- // right hand
- KC_RGHT, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS,
- TG(1), KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS,
- KC_H, KC_J, KC_K, KC_L, LT(MDIA, KC_SCLN),GUI_T(KC_QUOT),
- MEH_T(KC_NO),KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH, KC_RSFT,
- KC_UP, KC_DOWN,KC_LBRC,KC_RBRC, TT(SYMB),
- KC_LALT, CTL_T(KC_ESC),
- KC_PGUP,
- KC_PGDN,KC_TAB, KC_ENT
- ),
-/* Keymap 1: Symbol Layer
- *
- * ,--------------------------------------------------. ,--------------------------------------------------.
- * | | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | F11 |
- * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | | ! | @ | { | } | | | | | | Up | 7 | 8 | 9 | * | F12 |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | # | $ | ( | ) | ` |------| |------| Down | 4 | 5 | 6 | + | |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | % | ^ | [ | ] | ~ | | | | & | 1 | 2 | 3 | \ | |
- * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * | | | | | | | | . | 0 | = | |
- * `----------------------------------' `----------------------------------'
- * ,-------------. ,-------------.
- * | | | | | |
- * ,------|------|------| |------+------+------.
- * | | | | | | | |
- * | | |------| |------| | |
- * | | | | | | | |
- * `--------------------' `--------------------'
- */
-// SYMBOLS
-[SYMB] = LAYOUT_ergodox(
- // left hand
- KC_TRNS,KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_TRNS,
- KC_TRNS,KC_EXLM,KC_AT, KC_LCBR,KC_RCBR,KC_PIPE,KC_TRNS,
- KC_TRNS,KC_HASH,KC_DLR, KC_LPRN,KC_RPRN,KC_GRV,
- KC_TRNS,KC_PERC,KC_CIRC,KC_LBRC,KC_RBRC,KC_TILD,KC_TRNS,
- KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
- KC_TRNS,KC_TRNS,
- KC_TRNS,
- KC_TRNS,KC_TRNS,KC_TRNS,
- // right hand
- KC_TRNS, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,
- KC_TRNS, KC_UP, KC_7, KC_8, KC_9, KC_ASTR, KC_F12,
- KC_DOWN, KC_4, KC_5, KC_6, KC_PLUS, KC_TRNS,
- KC_TRNS, KC_AMPR, KC_1, KC_2, KC_3, KC_BSLS, KC_TRNS,
- KC_TRNS,KC_DOT, KC_0, KC_EQL, KC_TRNS,
- KC_TRNS, KC_TRNS,
- KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS
-),
-/* Keymap 2: Media and mouse keys
- *
- * ,--------------------------------------------------. ,--------------------------------------------------.
- * | | | | | | | | | | | | | | | |
- * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | | | | MsUp | | | | | | | | | | | |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | |MsLeft|MsDown|MsRght| |------| |------| | | | | | Play |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | | | | | | | | | | | Prev | Next | | |
- * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * | | | | Lclk | Rclk | |VolUp |VolDn | Mute | | |
- * `----------------------------------' `----------------------------------'
- * ,-------------. ,-------------.
- * | | | | | |
- * ,------|------|------| |------+------+------.
- * | | | | | | |Brwser|
- * | | |------| |------| |Back |
- * | | | | | | | |
- * `--------------------' `--------------------'
- */
-// MEDIA AND MOUSE
-LAYOUT_ergodox(
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_MS_U, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_R, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_BTN1, KC_BTN2,
- KC_TRNS, KC_TRNS,
- KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS,
- // right hand
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_MPRV, KC_MNXT, KC_TRNS, KC_TRNS,
- KC_VOLU, KC_VOLD, KC_MUTE, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS,
- KC_TRNS,
- KC_TRNS, KC_TRNS, KC_WBAK
-),
-};
-
-// Runs constantly in the background, in a loop.
-void matrix_scan_user(void) {
-
- uint8_t layer = get_highest_layer(layer_state);
-
- ergodox_board_led_off();
- ergodox_right_led_1_off();
- ergodox_right_led_2_off();
- ergodox_right_led_3_off();
- switch (layer) {
- // TODO: Make this relevant to the ErgoDox EZ.
- case 1:
- ergodox_right_led_1_on();
- break;
- case 2:
- ergodox_right_led_2_on();
- break;
- default:
- // none
- break;
- }
-
-};
diff --git a/layouts/community/ergodox/sneako/readme.md b/layouts/community/ergodox/sneako/readme.md
deleted file mode 100644
index 8dd110ee68..0000000000
--- a/layouts/community/ergodox/sneako/readme.md
+++ /dev/null
@@ -1,6 +0,0 @@
-# ergodox_keymap
-
-Based on the default Ergodox EZ firmware
-
-Replaced the left side Bksp with a Crtl/Esc, this really helps in vim.
-Removed the Ctrls from the Z and / keys.
diff --git a/layouts/community/ergodox/software_neo2/keymap.c b/layouts/community/ergodox/software_neo2/keymap.c
deleted file mode 100644
index 1c68a68b0f..0000000000
--- a/layouts/community/ergodox/software_neo2/keymap.c
+++ /dev/null
@@ -1,119 +0,0 @@
-#include QMK_KEYBOARD_H
-#include "debug.h"
-#include "led.h"
-#include "action_layer.h"
-#include "keymap_extras/keymap_neo2.h"
-
-// Layer names
-#define BASE 0 // default layer
-#define MDIA 1 // media keys
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-/* Keymap 0: Basic layer
- *
- * ,--------------------------------------------------. ,--------------------------------------------------.
- * | Del | 1 | 2 | 3 | 4 | 5 | Play | | Next | 6 | 7 | 8 | 9 | 0 | ß |
- * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | Tab | X | V | L | C | W | Esc | | Esc | K | H | G | F | Q | Y |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | NeoL1 | U | I | A | E | O |------| |------| S | N | R | T | D | NeoR1 |
- * |--------+------+------+------+------+------| L1 | | L1 |------+------+------+------+------+--------|
- * | LShift |Ü/Ctrl| Ö/Win| Ä/Alt| P | Z | | | | B | M | , | . | J | RShift |
- * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * |NeoL2 | Home | PgDn | PgUp | End | | Right| Down | Up | Left | NeoR2|
- * `----------------------------------' `----------------------------------'
- * ,-------------. ,---------------.
- * | App | LGui | | Alt |Ctrl/Esc|
- * ,------+------+------| |------+--------+------.
- * | | | Enter| |Delete| | |
- * | Space|Backsp|------| |------| Enter |Space |
- * | |ace | Tab | | Esc | | |
- * `--------------------' `----------------------'
- */
-// If it accepts an argument (i.e, is a function), it doesn't need KC_.
-// Otherwise, it needs KC_*
-[BASE] = LAYOUT_ergodox( // layer 0 : default
- // left hand
- KC_DEL, NE_1, NE_2, NE_3, NE_4, NE_5, KC_MPLY,
- KC_TAB, NE_X, NE_V, NE_L, NE_C, NE_W, KC_ESC,
- NE_L3L, NE_U, NE_I, NE_A, NE_E, NE_O,
- KC_LSFT, CTL_T(NE_UDIA), GUI_T(NE_ODIA), ALT_T(NE_ADIA), NE_P, NE_Z, TG(1),
- NE_L4L, KC_HOME, KC_PGDN, KC_PGUP, KC_END,
- C_S_T(KC_ESC),KC_LGUI,
- KC_ENT,
- KC_SPC,KC_BSPC,KC_TAB,
- // right hand
- KC_MNXT, NE_6, NE_7, NE_8, NE_9, NE_0, NE_SS,
- KC_ESC, NE_K, NE_H, NE_G, NE_F, NE_Q, NE_Y,
- NE_S, NE_N, NE_R, NE_T, NE_D, NE_L3R,
- TG(1), NE_B, NE_M, NE_COMM, NE_DOT, NE_J, KC_RSFT,
- KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, NE_L4R,
- KC_LALT,KC_RGUI,
- KC_DEL,
- KC_ESC,KC_ENT, KC_SPC
- ),
-/* Keymap 1: Media and mouse keys
- *
- * ,--------------------------------------------------. ,--------------------------------------------------.
- * | | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | F11 |
- * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | | | Lclk | MsUp | Rclk | | | | | |VolDwn| Mute |VolUp | | F12 |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | Btn4 |MsLeft|MsDown|MsRght| Btn5 |------| |------| | Prev | Stop | Play | Next | |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | |WhRght|WhDown| WhUp |WhLeft|WhClk | | | |BwSrch|BwBack|BwHome|BwRefr|BwFwd | |
- * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * | | |MsAcl0|MsAcl1|MsAcl2| | | | | | |
- * `----------------------------------' `----------------------------------'
- * ,-------------. ,-------------.
- * | | | | | |
- * ,------|------|------| |------+------+------.
- * | | | | | |Brwser|Brwser|
- * | Lclk | Rclk |------| |------|Back |Forwd |
- * | | | | | | | |
- * `--------------------' `--------------------'
- */
-// MEDIA AND MOUSE
-[MDIA] = LAYOUT_ergodox(
- KC_TRNS, KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_F5 , KC_TRNS,
- KC_TRNS, KC_TRNS, KC_BTN1, KC_MS_U, KC_BTN2, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_BTN4, KC_MS_L, KC_MS_D, KC_MS_R, KC_BTN5,
- KC_TRNS, KC_WH_L, KC_WH_D, KC_WH_U, KC_WH_R, KC_BTN3, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_ACL0, KC_ACL1, KC_ACL2,
- KC_TRNS, KC_TRNS,
- KC_TRNS,
- KC_BTN1, KC_BTN2, KC_TRNS,
- // right hand
- KC_TRNS, KC_F6 , KC_F7 , KC_F8 , KC_F9 , KC_F10 , KC_F11,
- KC_TRNS, KC_TRNS, KC_VOLD, KC_MUTE, KC_VOLU, KC_TRNS, KC_F12,
- KC_TRNS, KC_MPRV, KC_MSTP, KC_MPLY, KC_MNXT, KC_TRNS,
- KC_TRNS, KC_WSCH, KC_WBAK, KC_WHOM, KC_WREF, KC_WFWD, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS,
- KC_TRNS,
- KC_TRNS, KC_WBAK, KC_WFWD
-),
-};
-
-// Runs constantly in the background, in a loop.
-void matrix_scan_user(void) {
-
- uint8_t layer = get_highest_layer(layer_state);
-
- ergodox_board_led_off();
- ergodox_right_led_1_off();
- ergodox_right_led_2_off();
- ergodox_right_led_3_off();
- ergodox_board_led_off();
-
- if (host_keyboard_led_state().caps_lock) {
- ergodox_right_led_3_on();
- }
-
- switch (layer) {
- case MDIA:
- ergodox_right_led_2_on();
- break;
- }
-
-};
diff --git a/layouts/community/ergodox/supercoder/config.h b/layouts/community/ergodox/supercoder/config.h
deleted file mode 100644
index 0212a4bcf5..0000000000
--- a/layouts/community/ergodox/supercoder/config.h
+++ /dev/null
@@ -1,4 +0,0 @@
-#pragma once
-
-#undef LOCKING_SUPPORT_ENABLE
-#undef LOCKING_RESYNC_ENABLE
diff --git a/layouts/community/ergodox/supercoder/keymap.c b/layouts/community/ergodox/supercoder/keymap.c
deleted file mode 100644
index 9efe09fcf5..0000000000
--- a/layouts/community/ergodox/supercoder/keymap.c
+++ /dev/null
@@ -1,59 +0,0 @@
-/*
- * SuperCoder 2000 layout
- */
-
-#include QMK_KEYBOARD_H
-
-/* Layers */
-
-#define SC2K 0 // default layer
-
-/* The Keymap */
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
- /* Keymap 0: Base Layer
- *
- * ,-----------------------------------------------------. ,-----------------------------------------------------.
- * | 0 | 0 | 0 | 0 | 0 | 0 | 0 | | 1 | 1 | 1 | 1 | 1 | 1 | 1 |
- * |-----------+------+------+------+------+-------------| |------+------+------+------+------+------+-----------|
- * | 0 | 0 | 0 | 0 | 0 | 0 | 0 | | 1 | 1 | 1 | 1 | 1 | 1 | 1 |
- * |-----------+------+------+------+------+------| | | |------+------+------+------+------+-----------|
- * | 0 | 0 | 0 | 0 | 0 | 0 |------| |------| 1 | 1 | 1 | 1 | 1 | 1 |
- * |-----------+------+------+------+------+------| 0 | | 1 |------+------+------+------+------+-----------|
- * | 0 | 0 | 0 | 0 | 0 | 0 | | | | 1 | 1 | 1 | 1 | 1 | 1 |
- * `-----------+------+------+------+------+-------------' `-------------+------+------+------+------+-----------'
- * | 0 | 0 | 0 | 0 | 0 | | 1 | 1 | 1 | 1 | 1 |
- * `-----------------------------------' `-----------------------------------'
- * ,-------------. ,-------------.
- * | DONE | DONE | | DONE | DONE |
- * ,------|------|------| |------+------+------.
- * | | | DONE | | DONE | | |
- * | DONE | DONE |------| |------| DONE | DONE |
- * | | | DONE | | DONE | | |
- * `--------------------' `--------------------'
- */
-[SC2K] = LAYOUT_ergodox(
- // left hand
- KC_0 ,KC_0 ,KC_0 ,KC_0 ,KC_0 ,KC_0 ,KC_0
-,KC_0 ,KC_0 ,KC_0 ,KC_0 ,KC_0 ,KC_0 ,KC_0
-,KC_0 ,KC_0 ,KC_0 ,KC_0 ,KC_0 ,KC_0
-,KC_0 ,KC_0 ,KC_0 ,KC_0 ,KC_0 ,KC_0 ,KC_0
-,KC_0 ,KC_0 ,KC_0 ,KC_0 ,KC_0
-
- ,KC_ENT ,KC_ENT
- ,KC_ENT
- ,KC_ENT ,KC_ENT ,KC_ENT
-
- // right hand
- ,KC_1 ,KC_1 ,KC_1 ,KC_1 ,KC_1 ,KC_1 ,KC_1
- ,KC_1 ,KC_1 ,KC_1 ,KC_1 ,KC_1 ,KC_1 ,KC_1
- ,KC_1 ,KC_1 ,KC_1 ,KC_1 ,KC_1 ,KC_1
- ,KC_1 ,KC_1 ,KC_1 ,KC_1 ,KC_1 ,KC_1 ,KC_1
- ,KC_1 ,KC_1 ,KC_1 ,KC_1 ,KC_1
-
- ,KC_ENT ,KC_ENT
- ,KC_ENT
- ,KC_ENT ,KC_ENT ,KC_ENT
- ),
-};
diff --git a/layouts/community/ergodox/supercoder/readme.md b/layouts/community/ergodox/supercoder/readme.md
deleted file mode 100644
index e82ec59709..0000000000
--- a/layouts/community/ergodox/supercoder/readme.md
+++ /dev/null
@@ -1,28 +0,0 @@
-SuperCoder 2000 layout for the ErgoDox
-==================================================
-
-![SuperCoder 2000](https://i.imgur.com/6dcU9VY.jpg)
-
-Ever found yourself in need of entering binary codes rapidly? Ever wanted to use
-all ten fingers to do so? Ever felt your SuperCoder 2000 too limiting, by only
-having three buttons? We heard you! With this layout for the ErgoDox EZ, you
-will be able to tap in binary at an unparalleled speed and accuracy! Efficiency
-never seen before!
-
-Behold the Ultimate SuperCoder 2000 layout!
-
-![SuperCoder layout](https://i.imgur.com/Ymzlr9G.png)
-
-### To use it...
-
-To use this piece of top quality engineering, you must compile it on
-your own:
-
- [hex]: https://raw.githubusercontent.com/algernon/ergodox-supercoder/master/supercoder.hex
-
-```
-$ git clone https://github.com/qmk/qmk_firmware.git
-$ cd qmk_firmware/keyboards/ergodox
-$ git clone https://github.com/algernon/ergodox-supercoder.git keymaps/supercoder
-$ make LAYOUT_ergodox=supercoder
-```
diff --git a/layouts/community/ergodox/supercoder/rules.mk b/layouts/community/ergodox/supercoder/rules.mk
deleted file mode 100644
index 61b6dae84c..0000000000
--- a/layouts/community/ergodox/supercoder/rules.mk
+++ /dev/null
@@ -1,6 +0,0 @@
-BOOTMAGIC_ENABLE = no # Enable Bootmagic Lite
-COMMAND_ENABLE=no
-SLEEP_LED_ENABLE=no
-UNICODE_ENABLE=no
-MOUSEKEY_ENABLE=no
-EXTRAKEY_ENABLE=no
diff --git a/layouts/community/ergodox/swedish-lindhe/keymap.c b/layouts/community/ergodox/swedish-lindhe/keymap.c
deleted file mode 100644
index 376574f690..0000000000
--- a/layouts/community/ergodox/swedish-lindhe/keymap.c
+++ /dev/null
@@ -1,190 +0,0 @@
-/* Copyright 2017 Andreas Lindhé
- *
- * 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 "debug.h"
-#include "action_layer.h"
-#include "keymap_swedish.h"
-
-#define BASE 0 // default layer
-#define SYMB 1 // symbols
-#define MDIA 2 // media keys
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-/* Keymap 0: Basic layer
- *
- * ,--------------------------------------------------. ,--------------------------------------------------.
- * | Print | ! | " | # | # | % | | |Middle| & | / | ( | ) | = | ? |
- * | Screen | 1 | 2 @ | 3 £ | 4 $ | 5 | F11 | |Mouse | 6 | 7 { | 8 [ | 9 ] | 0 } | + \ |
- * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | Tab | Q | W | E | R | T | ~L1 | | L1 | Y | U | I | O | P | Å |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | CapsLk | A | S | D | F | G |------| |------| H | J | K | L | Ö | Ä |
- * |--------+------+------+------+------+------| ` | | Del |------+------+------+------+------+--------|
- * | LShft | Z | X | C | V | B | ' | | | N | M | , | . | - | RShift |
- * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * | LCtl | ^ | * | LAlt | LGui | | AltGr| Down | Up | Left | Right|
- * | (') | " ~ | ' ´ | | | | | | | | |
- * `----------------------------------' `----------------------------------'
- * ,-------------. ,--------------.
- * | LCtl | LAlt | | Home | End |
- * ,------|------|------| |------+-------+------.
- * | | | ~ | | PgUp | | |
- * | Space|Back- |------| |------| Tab |Enter |
- * | |space | Esc | | PgDn | | L2 |
- * `--------------------' `---------------------'
- */
-
-[BASE] = LAYOUT_ergodox( // layer 0 : default
- // left hand
- KC_PSCR, KC_1, KC_2, KC_3, KC_4, KC_5, KC_F11,
- KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, MO(SYMB),
- KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G,
- KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, SE_ACUT,
- CTL_T(SE_QUOT), SE_CIRC, SE_ASTR, KC_LALT, KC_LGUI,
- KC_LCTL, KC_LALT,
- SE_TILD,
- KC_SPC, KC_BSPC, KC_ESC,
- // right hand
- KC_MS_BTN3, KC_6, KC_7, KC_8, KC_9, KC_0, SE_PLUS,
- TG(SYMB), KC_Y, KC_U, KC_I, KC_O, KC_P, SE_ARNG,
- KC_H, KC_J, KC_K, KC_L, SE_ODIA, SE_ADIA,
- KC_DEL, KC_N, KC_M, KC_COMM, KC_DOT, SE_MINS, KC_RSFT,
- KC_ALGR, KC_DOWN, KC_UP, KC_LEFT, KC_RGHT,
- KC_HOME, KC_END,
- KC_PGUP,
- KC_PGDN, KC_TAB, LT(MDIA, KC_ENT)
-),
-
-/* Keymap 1: Symbol Layer
- *
- * ,--------------------------------------------------. ,--------------------------------------------------.
- * | | | | | | | | | | | | / | * | - | |
- * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | | F1 | F2 | F3 | F4 | | | | | | 7 | 8 | 9 | + | |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | F5 | F6 | F7 | F8 | |------| |------| | 4 | 5 | 6 | + | |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | F9 | F10 | F11 | F12 | | | | | | 1 | 2 | 3 | Enter| |
- * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * | | | | | | | 0 | , | . | Enter| |
- * `----------------------------------' `----------------------------------'
- * ,-------------. ,-------------.
- * | | | | | |
- * ,------|------|------| |------+------+------.
- * | | | | | | | |
- * | | |------| |------| | |
- * | | | | | | | |
- * `--------------------' `--------------------'
- */
-// SYMBOLS
-[SYMB] = LAYOUT_ergodox(
- // left hand
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_F5, KC_F6, KC_F7, KC_F8, KC_TRNS,
- KC_TRNS, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS,KC_TRNS,
- KC_TRNS,
- KC_TRNS,KC_TRNS,KC_TRNS,
- // right hand
- KC_TRNS, KC_TRNS, KC_TRNS, KC_PSLS, KC_PAST, KC_PMNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_7, KC_8, KC_9, KC_PPLS, KC_TRNS,
- KC_TRNS, KC_4, KC_5, KC_6, KC_PPLS, KC_TRNS,
- QK_BOOT, KC_TRNS, KC_1, KC_2, KC_3, KC_PENT, KC_TRNS,
- KC_0, KC_COMM, KC_DOT, KC_PENT, KC_TRNS,
- KC_TRNS, KC_TRNS,
- KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS
-),
-/* Keymap 2: Media and mouse keys
- *
- * ,--------------------------------------------------. ,--------------------------------------------------.
- * | | | | | | | | | | | | | | | |
- * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | | | | MsUp | | | | | | | | | | | |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | |MsLeft|MsDown|MsRght| |------| |------| | Play | Pause| Prev | Next | |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | | | Lclk | Rclk | | | | | |VolDn |VolUp | Mute | | |
- * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * | | | | | | | | | | | |
- * `----------------------------------' `----------------------------------'
- * ,-------------. ,-------------.
- * | | | | | |
- * ,------|------|------| |------+------+------.
- * | | | | | | | |
- * |LeClk |RiClk |------| |------| | |
- * | | | | | | | |
- * `--------------------' `--------------------'
- */
-// MEDIA AND MOUSE
-[MDIA] = LAYOUT_ergodox(
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_MS_U, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_R, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_BTN1, KC_BTN2, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS,
- KC_TRNS,
- KC_BTN1, KC_BTN2, KC_TRNS,
- // right hand
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_MPLY, KC_MPLY, KC_MPRV, KC_MNXT, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_VOLD, KC_VOLU, KC_MUTE, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS,
- KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS
-),
-};
-
-// Runs constantly in the background, in a loop.
-void matrix_scan_user(void) {
-
- uint8_t layer = get_highest_layer(layer_state);
-
- ergodox_board_led_off();
- ergodox_right_led_1_off();
- ergodox_right_led_2_off();
- ergodox_right_led_3_off();
- switch (layer) {
- // TODO: Make this relevant to the ErgoDox EZ.
- case 1:
- ergodox_right_led_3_on();
- break;
- case 2:
- ergodox_right_led_2_on();
- break;
- case 3:
- ergodox_right_led_2_on();
- ergodox_right_led_3_on();
- break;
- default:
- // none
- break;
- }
-
- if (host_keyboard_led_state().caps_lock) {
- // if capslk is on, set led 1 on
- ergodox_right_led_1_on();
- } else {
- ergodox_right_led_1_off();
- }
-
-};
diff --git a/layouts/community/ergodox/swedish-lindhe/readme.md b/layouts/community/ergodox/swedish-lindhe/readme.md
deleted file mode 100644
index ef62d9499c..0000000000
--- a/layouts/community/ergodox/swedish-lindhe/readme.md
+++ /dev/null
@@ -1,50 +0,0 @@
-# swedish-lindhe ErgoDox (EZ) keymap
-
-This is a setup that is very useful for me. It may or may not be for
-you. I will use it in conjunction with the A5 overlayed sv_SE layout.
-
-The layout is subject to change (in particular I'm thinking about adding
-a macro recording feature), but it have not changed much the past year
-or two so you can expect it to be stable enough to learn it.
-
-A5: http://aoeu.info/s/dvorak/svorak
-My xkb map: https://github.com/lindhe/dotfiles/blob/master/usr/share/X11/xkb/symbols/se-A5
-
-The most major points:
-======================
-
-I think the layout image can be found on
-[www.keyboard-layout-editor.com](http://www.keyboard-layout-editor.com/#/gists/d84bc5915707cb30a4f9f754e06ecea3)
-
-L0:
----
-
-* Easily accessible F11 key for fullscreening
-* Print screen
-* Middle mouse button for X-paste
-* Improved reachability of meta buttons (LCtrl, LALt, AltGr, LGui etc.)
-* Cluster Page Up/Down + Home/End by the right thumb
-* Vim-like arrow layout in right bottom row
-
-* Set media layer toggle to right thumb (Enter)
-* Set apostrophe on LCtl (putting it next to some other small
- characters)
-
-L1:
----
-
-* Full function key layout
-* Teensy button
-
-L2:
----
-
-* Improved media buttons layout (close by the jkl; Vim binding)
-* Improved layout of emulated mouse buttons
-
-LED behaviour to binary+CAPS
-============================
-
-The ErgoDox LEDs on this layout is using the two rightmost LEDs as the
-two LSB in a two digit binary number, representing layer 0, 1, 2 and 3.
-The leftmost byte/LED indicates CAPS status.
diff --git a/layouts/community/ergodox/swedish/keymap.c b/layouts/community/ergodox/swedish/keymap.c
deleted file mode 100644
index 5e2d47de57..0000000000
--- a/layouts/community/ergodox/swedish/keymap.c
+++ /dev/null
@@ -1,225 +0,0 @@
-/* Copyright 2017 Andreas Lindhé
- *
- * 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 "debug.h"
-#include "action_layer.h"
-#include "version.h"
-#include "keymap_swedish.h"
-
-#define BASE 0 // default layer
-#define SYMB 1 // symbols
-#define MDIA 2 // media keys
-
-enum custom_keycodes {
- PLACEHOLDER = SAFE_RANGE, // can always be here
- EPRM,
- VRSN,
- RGB_SLD
-};
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-/* Keymap 0: Basic layer
- *
- * ,--------------------------------------------------. ,--------------------------------------------------.
- * | ½ | ! | " | # | # | % | LEFT | | RIGHT| & | / | ( | ) | = | ? |
- * | § | 1 | 2 @ | 3 £ | 4 $ | 5 | | | | 6 | 7 { | 8 [ | 9 ] | 0 } | + \ |
- * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | Delete | Q | W | E | R | T | L1 | | L1 | Y | U | I | O | P | Å |
- * | | | | | | | | | | | | | | | |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | Caps | A | S | D | F | G |------| |------| H | J | K | L |Ö / L2|Ä / Cmd |
- * | Lock | | | | | | Hyper| | Meh | | | | | | |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | Left |Z/Ctrl| X | C | V | B | | | | N | M | ; | : |_/Ctrl| RShift |
- * | Shift | | | | | | | | | | | , | . |- | |
- * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * | '/L1 | ` |AltShf| Left | Right| | Up | Down | ^ | * | ~L1 |
- * | | ' | | | | | | | | | |
- * `----------------------------------' `----------------------------------'
- * ,-------------. ,---------------.
- * | App | LGui | | AltGr|Ctrl/Esc|
- * ,------|------|------| |------+--------+------.
- * | | | Home | | PgUp | | |
- * | Space|Back- |------| |------| Tab |Enter |
- * | |space | End | | PgDn | | |
- * `--------------------' `----------------------'
- */
-// If it accepts an argument (i.e, is a function), it doesn't need KC_.
-// Otherwise, it needs KC_*
-[BASE] = LAYOUT_ergodox( // layer 0 : default
- // left hand
- SE_HALF, KC_1, KC_2, KC_3, KC_4, KC_5, KC_LEFT,
- KC_DEL, KC_Q, KC_W, KC_E, KC_R, KC_T, TG(SYMB),
- KC_BSPC, KC_A, KC_S, KC_D, KC_F, KC_G,
- KC_LSFT, CTL_T(KC_Z), KC_X, KC_C, KC_V, KC_B, ALL_T(KC_NO),
- LT(SYMB,SE_QUOT), SE_ACUT, LALT(KC_LSFT), KC_LEFT, KC_RGHT,
- ALT_T(KC_APP), KC_LGUI,
- KC_HOME,
- KC_SPC,KC_BSPC,KC_END,
- // right hand
- KC_RGHT, KC_6, KC_7, KC_8, KC_9, KC_0, SE_PLUS,
- TG(SYMB), KC_Y, KC_U, KC_I, KC_O, KC_P, SE_ARNG,
- KC_H, KC_J, KC_K, KC_L, LT(MDIA, SE_ODIA), GUI_T(SE_ADIA),
- MEH_T(KC_NO), KC_N, KC_M, KC_COMM, KC_DOT, CTL_T(SE_MINS), KC_RSFT,
- KC_UP, KC_DOWN, SE_CIRC, SE_ASTR, TT(SYMB),
- KC_ALGR, CTL_T(KC_ESC),
- KC_PGUP,
- KC_PGDN,KC_TAB, KC_ENT
-),
-
-/* Keymap 1: Symbol Layer
- *
- * ,--------------------------------------------------. ,--------------------------------------------------.
- * |Version | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | F11 |
- * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | | ! | @ | { | } | | | | | | Up | 7 | 8 | 9 | * | F12 |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | # | $ | ( | ) | ` |------| |------| Down | 4 | 5 | 6 | + | |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | % | ^ | [ | ] | ~ | | | | & | 1 | 2 | 3 | \ | |
- * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * | | | | | | | | . | 0 | = | |
- * `----------------------------------' `----------------------------------'
- * ,-------------. ,-------------.
- * |Animat| | |Toggle|Solid |
- * ,------|------|------| |------+------+------.
- * |Bright|Bright| | | |Hue- |Hue+ |
- * |ness- |ness+ |------| |------| | |
- * | | | | | | | |
- * `--------------------' `--------------------'
- */
-// SYMBOLS
-[SYMB] = LAYOUT_ergodox(
- // left hand
- VRSN, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_TRNS,
- KC_TRNS,KC_EXLM,SE_AT, SE_LCBR,SE_RCBR,SE_PIPE,KC_TRNS,
- KC_TRNS,KC_HASH,SE_DLR, SE_LPRN,SE_RPRN,SE_GRV,
- KC_TRNS,KC_PERC,SE_CIRC,SE_LBRC,SE_RBRC,SE_TILD,KC_TRNS,
- EPRM,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
- RGB_MOD,KC_TRNS,
- KC_TRNS,
- RGB_VAD,RGB_VAI,KC_TRNS,
- // right hand
- KC_TRNS, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,
- KC_TRNS, KC_UP, KC_7, KC_8, KC_9, SE_ASTR, KC_F12,
- KC_DOWN, KC_4, KC_5, KC_6, SE_PLUS, KC_TRNS,
- KC_TRNS, SE_AMPR, KC_1, KC_2, KC_3, SE_MINS, KC_TRNS,
- KC_TRNS,KC_DOT, KC_0, SE_EQL, KC_TRNS,
- RGB_TOG, RGB_SLD,
- KC_TRNS,
- KC_TRNS, RGB_HUD, RGB_HUI
-),
-
-/* Keymap 2: Media and mouse keys
- *
- * ,--------------------------------------------------. ,--------------------------------------------------.
- * | | | | | | | | | | | | | | | |
- * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | | | | MsUp | | | | | | | | | | | |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | |MsLeft|MsDown|MsRght| |------| |------| | | | | | Play |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | | | | | | | | | | | Prev | Next | | |
- * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * | | | | Lclk | Rclk | |VolUp |VolDn | Mute | | |
- * `----------------------------------' `----------------------------------'
- * ,-------------. ,-------------.
- * | | | | | |
- * ,------|------|------| |------+------+------.
- * | | | | | | |Brwser|
- * | | |------| |------| |Back |
- * | | | | | | | |
- * `--------------------' `--------------------'
- */
-// MEDIA AND MOUSE
-[MDIA] = LAYOUT_ergodox(
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_MS_U, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_R, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_BTN1, KC_BTN2,
- KC_TRNS, KC_TRNS,
- KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS,
- // right hand
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_MPRV, KC_MNXT, KC_TRNS, KC_TRNS,
- KC_VOLU, KC_VOLD, KC_MUTE, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS,
- KC_TRNS,
- KC_TRNS, KC_TRNS, KC_WBAK
-),
-};
-
-bool process_record_user(uint16_t keycode, keyrecord_t *record) {
- switch (keycode) {
- // dynamically generate these.
- case EPRM:
- if (record->event.pressed) {
- eeconfig_init();
- }
- return false;
- break;
- case VRSN:
- if (record->event.pressed) {
- SEND_STRING (QMK_KEYBOARD "/" QMK_KEYMAP " @ " QMK_VERSION);
- }
- return false;
- break;
- case RGB_SLD:
- if (record->event.pressed) {
- #ifdef RGBLIGHT_ENABLE
- rgblight_mode(1);
- #endif
- }
- return false;
- break;
- }
- return true;
-}
-
-// Runs just one time when the keyboard initializes.
-void matrix_init_user(void) {
-
-};
-
-
-// Runs constantly in the background, in a loop.
-void matrix_scan_user(void) {
-
- uint8_t layer = get_highest_layer(layer_state);
-
- ergodox_board_led_off();
- ergodox_right_led_1_off();
- ergodox_right_led_2_off();
- ergodox_right_led_3_off();
- switch (layer) {
- // TODO: Make this relevant to the ErgoDox EZ.
- case 1:
- ergodox_right_led_1_on();
- break;
- case 2:
- ergodox_right_led_2_on();
- break;
- default:
- // none
- break;
- }
-
-};
diff --git a/layouts/community/ergodox/swedish/readme.md b/layouts/community/ergodox/swedish/readme.md
deleted file mode 100644
index b5b859bce6..0000000000
--- a/layouts/community/ergodox/swedish/readme.md
+++ /dev/null
@@ -1,36 +0,0 @@
-# Swedish (sv_SE) Qwerty layout for ErgoDox EZ, based on the Default configuration
-
-*NOTE:* it might still be desirable to set the software layout to sv_SE in your
-OS.
-
-Remind me and I'll provide a picture of the layout.
-
-I have tried making this as close of a match I could between the [default
-ErgoDox EZ configuration](https://ergodox-ez.com/pages/our-firmware) and a
-standard Swedish Qwerty layout.
-
-## Notable differences from default:
-
-* There are three special character buttons (acute accent, circumflex/tilde and
- apostrophe/asterisk) that don't have any buttons to map to naturally. I've put
- these at other places:
-
- * Acute accent (´) can be found in the lower left corner, conveniently
- placed to reach for making an é.
-
- * Apostrophe (') was put in the lower left corner, close to acute accent.
-
- * Circumflex (^) and asterisk (*) was placed in the lower right corner.
-
- * Tilde (~) and diaeresis (¨) I couldn't find a good place for, so I left
- those out. I could only get the buttons to produce a single one of the
- characters. How can I get it to work properly?
-
-* The Alt button on right thumb was exchanged for AltGr (RAlt).
-
-* I changed the backslash in the numpad (layer 1) for a minus. Thought it was
- more sensible.
-
-* I didn't find a good place for the "<>|" button, so that one was left out.
- That is a problem that really needs to be resolved. Pipe can be found on layer
- one, however.
diff --git a/layouts/community/ergodox/techtomas/keymap.c b/layouts/community/ergodox/techtomas/keymap.c
deleted file mode 100644
index bdbb50be42..0000000000
--- a/layouts/community/ergodox/techtomas/keymap.c
+++ /dev/null
@@ -1,205 +0,0 @@
-#include QMK_KEYBOARD_H
-#include "debug.h"
-#include "action_layer.h"
-
-#define BASE 0 // default layer
-#define SYMB 1 // symbols
-#define APP 2 // app layer
-#define CNTL 3 // control layer
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-/* Keymap 0: Basic layer
- *
- * ,--------------------------------------------------. ,--------------------------------------------------.
- * | L2/` | 1 | 2 | 3 | 4 | 5 |CmdSpc| | - | 6 | 7 | 8 | 9 | 0 | = |
- * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | MEH/Tab| Q | W | E | R | T | [ | | ] | Y | U | I | O | P | MEH/\ |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * |Hyp/Esc | A | S | D | F | G |------| |------| H | J | K | L | L2/; | Hyp/' |
- * |--------+------+------+------+------+------| Tab | | STab |------+------+------+------+------+--------|
- * | LShift | Z | X | C | V | B | | | | N | M | , | . | L2// | RShift |
- * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * |L1/Lft|L3/Rht| LCtl | LAlt | LGui | | Rgui | Up | Dn | L3 | L1 |
- * `----------------------------------' `----------------------------------'
- * ,-------------. ,-------------.
- * | LCtl | LGui | |AltGui|ShfGui|
- * ,-------|------|------| |------+--------+------.
- * | | |L1/Hom| |L2/PUp| | |
- * | Backsp|Delete|------| |------| Enter | Space |
- * | | |L3/End| |L1/PDn| | |
- * `--------------------' `-----------------------'
- */
-// If it accepts an argument (i.e, is a function), it doesn't need KC_.
-// Otherwise, it needs KC_*
-[BASE] = LAYOUT_ergodox( // layer 0 : default
- // left hand
- LT(APP,KC_GRV), KC_1, KC_2, KC_3, KC_4, KC_5, LGUI(KC_SPC),
- MEH_T(KC_TAB), KC_Q, KC_W, KC_E, KC_R, KC_T, KC_LBRC,
- ALL_T(KC_ESC), KC_A, KC_S, KC_D, KC_F, KC_G,
- KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_TAB,
- LT(SYMB,KC_LEFT), LT(CNTL,KC_RIGHT), KC_LCTL, KC_LALT, KC_LGUI,
- KC_LCTL, KC_LGUI,
- LT(SYMB,KC_HOME),
- KC_BSPC, KC_DELETE, LT(CNTL,KC_END),
- // right hand
- KC_MINS, KC_6, KC_7, KC_8, KC_9, KC_0, KC_EQL,
- KC_RBRC, KC_Y, KC_U, KC_I, KC_O, KC_P, MEH_T(KC_BSLS),
- KC_H, KC_J, KC_K, KC_L, LT(APP,KC_SCLN), ALL_T(KC_QUOT),
- S(KC_TAB), KC_N, KC_M, KC_COMM, KC_DOT, LT(APP,KC_SLSH), KC_RSFT,
- KC_RGUI, KC_UP, KC_DOWN, TT(CNTL), TT(SYMB),
- LALT(KC_LGUI), S(KC_LGUI),
- LT(APP,KC_PGUP),
- LT(SYMB,KC_PGDN), KC_ENT, KC_SPC
- ),
-/* Keymap 1: Symbol Layer
- *
- * ,--------------------------------------------------. ,--------------------------------------------------.
- * | | F1 | F2 | F3 | F4 | F5 | | | Tab | F6 | F7 | F8 | F9 | F10 | F11 |
- * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | | ! | @ | { | } | | | < | | > | : | 7 | 8 | 9 | / | F12 |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | # | $ | ( | ) | ` |------| |------| ; | 4 | 5 | 6 | * | |
- * |--------+------+------+------+------+------| F14 | | F15 |------+------+------+------+------+--------|
- * | | % | ^ | [ | ] | ~ | | | | & | 1 | 2 | 3 | - | Entr |
- * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * | | | | | | | 0 | . | = | + | |
- * `----------------------------------' `----------------------------------'
- * ,-------------. ,-------------.
- * | | | | | |
- * ,------|------|------| |------+------+------.
- * | | | | | | | |
- * | | |------| |------| | |
- * | | | | | | | |
- * `--------------------' `--------------------'
- */
-// SYMBOLS
-[SYMB] = LAYOUT_ergodox(
- // left hand
- KC_TRNS,KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_TRNS,
- KC_TRNS,KC_EXLM,KC_AT, KC_LCBR,KC_RCBR,KC_PIPE,S(KC_COMM),
- KC_TRNS,KC_HASH,KC_DLR, KC_LPRN,KC_RPRN,KC_GRV,
- KC_TRNS,KC_PERC,KC_CIRC,KC_LBRC,KC_RBRC,KC_TILD,KC_F14,
- KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
- KC_TRNS,KC_TRNS,
- KC_TRNS,
- KC_TRNS,KC_TRNS,KC_TRNS,
- // right hand
- KC_TAB, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,
- S(KC_DOT), KC_COLN, KC_7, KC_8, KC_9, KC_BSLS, KC_F12,
- KC_SCLN, KC_4, KC_5, KC_6, KC_ASTR, KC_TRNS,
- KC_F15, KC_AMPR, KC_1, KC_2, KC_3, KC_MINS, KC_ENT,
- KC_0, KC_DOT, KC_EQL, KC_PLUS, KC_TRNS,
- KC_TRNS, KC_TRNS,
- KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS
-),
-/* Keymap 2: App Layer
- *
- * ,--------------------------------------------------. ,--------------------------------------------------.
- * | | | | | | | | | | | | | | | |
- * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | | CmdQ | CmdW | | | | Stab | | Play | Prev | Next | | |PrtSc | |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | | | | | |------| |------| VolDn|VolUp | | | | |
- * |--------+------+------+------+------+------| | | Mute |------+------+------+------+------+--------|
- * | | CmdZ | CmdX | CmdC | CmdY | CtrlC| | | | | | | | | |
- * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * | | | | | | | | | | | |
- * `----------------------------------' `----------------------------------'
- * ,-------------. ,-------------.
- * | | | | | |
- * ,------|------|------| |------+------+------.
- * | | | | | | | |
- * | | |------| |------| | |
- * | | | | | | | |
- * `--------------------' `--------------------'
- */
-// Control
-[APP] = LAYOUT_ergodox(
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, LGUI(KC_Q), LGUI(KC_W), KC_TRNS, KC_TRNS, KC_TRNS, S(KC_TAB),
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, LGUI(KC_Z), LGUI(KC_X), LGUI(KC_C), LGUI(KC_V), LCTL(KC_C), KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS,
- KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS,
- // right hand
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_MPLY, KC_MPRV, KC_MNXT, KC_TRNS, KC_TRNS, KC_PSCR, KC_TRNS,
- KC_VOLD, KC_VOLU, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_MUTE, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS,
- KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS
-),
-/* Keymap 3: Control Layer
- *
- * ,--------------------------------------------------. ,--------------------------------------------------.
- * | Pwr | | | | | | | | | | | | | | |
- * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | | | | MsUp | | | | | | | | | | | |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | |MsLeft|MsDown|MsRght| Lclk |------| |------| Lft | Down | Up | Right| | |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | | | | | Rclk | | | | | | | | | |
- * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * | | | | | | | | | | | |
- * `----------------------------------' `----------------------------------'
- * ,-------------. ,-------------.
- * | Shift| | | Home | End |
- * ,------|------|------| |------+------+------.
- * | | | LAtl | | | | |
- * | | |------| |------| | |
- * | | | | | | | |
- * `--------------------' `--------------------'
- */
-// Control
-[CNTL] = LAYOUT_ergodox(
- KC_PWR, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_MS_U, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_R, KC_BTN1,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_BTN2, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_LSFT, KC_TRNS,
- KC_LALT,
- KC_TRNS, KC_TRNS, KC_TRNS,
- // right hand
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_HOME, KC_END,
- KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS
-),
-};
-
-// Runs constantly in the background, in a loop.
-void matrix_scan_user(void) {
-
- uint8_t layer = get_highest_layer(layer_state);
-
- ergodox_board_led_off();
- ergodox_right_led_1_off();
- ergodox_right_led_2_off();
- ergodox_right_led_3_off();
- switch (layer) {
- // TODO: Make this relevant to the ErgoDox EZ.
- case 1:
- ergodox_right_led_1_on();
- break;
- case 2:
- ergodox_right_led_2_on();
- break;
- case 3:
- ergodox_right_led_3_on();
- break;
- default:
- // none
- break;
- }
-
-};
diff --git a/layouts/community/ergodox/techtomas/readme.md b/layouts/community/ergodox/techtomas/readme.md
deleted file mode 100644
index 3d1bcb9e11..0000000000
--- a/layouts/community/ergodox/techtomas/readme.md
+++ /dev/null
@@ -1,57 +0,0 @@
-# Techtomas Configuration
-
-## Base Layer
-
-The base layer is a merge of what I liked with the default layout and the ordinary layout. The thumb cluster is more like the Kinesis advantage and the top row of the cluster is convient for use on the mac.
-
-* The Caps Lock postion handles [Hyper/Esc](http://brettterpstra.com/2012/12/08/a-useful-caps-lock-key/)
-* The Tab key toggles MEH.
-* The top vertical mods on the left and right are [ and ].
-* The bottom vertical mods on the left and right are tab and shift+tab
-* The HYPER and MEH key are made in the same location on the right side of the board as well. Using Keyboard Maestro for OS X makes one-handed shortcuts very easy.
-* Layer switching is focused around the thumb clusters plus some additional locations for convience.
-
-## Symbol Layer
-The symbol layer can be tap/toggled with the bottom right key and also toggled on the thumb clusters.
-
-The bottom two vertical mods are set to F14 and F15 which is the default for changing screen brightness on the mac
-
-## App Layer
-The app layer is used to control media playback and also some application shortcuts (OS X Focused).
-It can be toggled on the left board in the top left corner (tilde/grave) or using your pinky on the right side of the board using either ; or /.
-There is one additional toggle on the right thumb cluster for quick access to play and mute key combos.
-
-### Current App shortcuts defined
-* Q = CMD+Q
-* W = CMD+W
-* Z = CMD+Z
-* X = CMD+X
-* C = CMD+C
-* V = CMD+V
-* B = CTRL+C
-* P = Print Screen
-
-## Control Layer
-The control layer is meant to help easily navigate and select text. It can also be stacked ontop of the Symbol layer when needed.
-
-The right arrow key and End key toggle the control layer on the left board. There is also a tap toggle for the layer in the same position on the right side of the board.
-
-On the left board you have mouse control with left & right click in the location of the G and B keys.
-On the right board you have vim-style arrow keys using hjkl
-
-The left thumb cluster moves shift and alt within easy reach while holding the toggle (end). So far I've found this convient to navigate and skip around text when using the hjkl arrow keys.
-
-## Changelog
-
-* May 4th, 2016 (v1.2):
- * Moved layer toggles around to match my habbits of typing
- * Enabled Prevent Stuck Modifers in my config.h (L3 + Alt on cluster would get stuck)
- * Changed media layer to be more like an app layer with some quick shortcuts (mac centric)
- * Moved around the base layer arrow keys so mod keys were more accesible
-
-* Apr 29, 2016 (V1.1):
- * Added F14 and F15 to symbol layer
- * Added control layer toggle to A key.
-
-* Apr 28, 2016 (V1.0):
- * Modified config based on the default layout plus inspiration from the ordinary layout
diff --git a/layouts/community/ergodox/teckinesis/keymap.c b/layouts/community/ergodox/teckinesis/keymap.c
deleted file mode 100644
index adfc935c28..0000000000
--- a/layouts/community/ergodox/teckinesis/keymap.c
+++ /dev/null
@@ -1,218 +0,0 @@
-#include QMK_KEYBOARD_H
-
-enum layer_names {
- BASE, // default layer
- SYMB, // symbols layer
- MDIA, // media layer
- SPEC // special layer
-};
-
-/*
- * teckinesis layout for ErgoDox (EZ)
- *
- * Modifications from The Ordinary Layout v4 by Will Wolff-Myren willwm@gmail.com
- * Modifications from default by Nicholas Keene ergodoxez@nicholaskeene.com
- *
- * No rights reserved. This software is in the public domain.
- * Credit me if you are friendly but if you're a jerk don't bother.
- *
- * Details: readme.md
- * https://github.com/willwm/qmk_firmware/tree/master/keyboard/ergodox_ez/keymaps/teckinesis
- */
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
-/******* Base Layer ********************************************************************************************************
- *
- * ,------------------------------------------------------. ,------------------------------------------------------.
- * | Special =+ | 1 | 2 | 3 | 4 | 5 | ESC | | ` | 6 | 7 | 8 | 9 | 0 | -_ Special |
- * |------------+------+------+------+------+-------------| |------+------+------+------+------+------+------------|
- * | Media Tab | Q | W | E | R | T | [ | | ] | Y | U | I | O | P | \| Media |
- * |------------+------+------+------+------+------| | | |------+------+------+------+------+------------|
- * | Symbol | A | S | D | F | G |------| |------| H | J | K | L | ; | '" Symbol |
- * |------------+------+------+------+------+------|Shift | | Tab |------+------+------+------+------+------------|
- * | Capitals | Z | X | C | V | B | -Tab | | | N | M | , | . | / | Capitals |
- * `------------+------+------+------+------+-------------' `-------------+------+------+------+------+------------'
- * | LCtrl |Meh/\ |Hypr//| LAlt | LGui | | RGui | RAlt |Hypr/[|Meh/] | RCtrl |
- * `-----------------------------------' `-----------------------------------'
- * ,-------------. ,-------------.
- * | Home | End | | Left | Right|
- * ,------|------|------| |------+------+------.
- * | | | PgUp | | Up | | |
- * |Backsp| Del |------| |------| Enter| Space|
- * | | | PgDn | | Down | | |
- * `--------------------' `--------------------'
- */
-[BASE] = LAYOUT_ergodox(
-// left hand
- KC_NO ,KC_1,KC_2,KC_3 ,KC_4 ,KC_5 ,KC_ESC
-,KC_NO ,KC_Q ,KC_W ,KC_E ,KC_R ,KC_T ,KC_LBRC
-,KC_NO ,KC_A ,KC_S ,KC_D ,KC_F ,KC_G
-,KC_NO ,KC_Z ,KC_X ,KC_C ,KC_V ,KC_B ,LSFT(KC_TAB)
-,KC_LCTL,MEH_T(KC_BSLS),ALL_T(KC_SLSH),KC_LALT,KC_LGUI
- ,KC_HOME,KC_END
- ,KC_PGUP
- ,KC_BSPC,KC_DEL ,KC_PGDN
- // right hand
- ,KC_GRV ,KC_6 ,KC_7 ,KC_8 ,KC_9 ,KC_0 ,KC_NO
- ,KC_RBRC ,KC_Y ,KC_U ,KC_I ,KC_O ,KC_P ,KC_NO
- ,KC_H ,KC_J ,KC_K ,KC_L ,KC_SCLN ,KC_NO
- ,KC_TAB ,KC_N ,KC_M ,KC_COMM,KC_DOT ,KC_SLSH ,KC_NO
- ,KC_RGUI,KC_RALT,ALL_T(KC_LBRC),MEH_T(KC_RBRC),KC_RCTL
- ,KC_LEFT ,KC_RGHT
- ,KC_UP
- ,KC_DOWN ,KC_ENT ,KC_SPC
- ),
-
-/******* Symbols Layer *****************************************************************************************************
- *
- * ,-----------------------------------------------------. ,-----------------------------------------------------.
- * | | F1 | F2 | F3 | F4 | F5 | Esc | | - | F6 | F7 | F8 | F9 | F10 | |
- * |-----------+------+------+------+------+-------------| |------+------+------+------+------+------+-----------|
- * | | ! | @ | { | } | & | < | | > | | | 7 | 8 | 9 | / | |
- * |-----------+------+------+------+------+------| | | |------+------+------+------+------+-----------|
- * | | # | $ | ( | ) | ` |------| |------| / | 4 | 5 | 6 | * | |
- * |-----------+------+------+------+------+------| Tab | | Shift|------+------+------+------+------+-----------|
- * | | % | ^ | [ | ] | ~ | | | -Tab| \ | 1 | 2 | 3 | - | |
- * `-----------+------+------+------+------+-------------' `-------------+------+------+------+------+-----------'
- * | LCtrl | Meh |Hyper | LAlt | LGui | |RGui/0|RAlt/.|Hypr/=|Meh/+ |RCtrl/Ent|
- * `-----------------------------------' `-------------------------------------'
- * ,-------------. ,-------------.
- * | Left | Right| | Home | End |
- * ,------|------|------| |------+------+------.
- * | | | Up | | PgUp | | |
- * |Space |Enter |------| |------|BackSp| Del |
- * | | | Down | | PgDn | | |
- * `--------------------' `--------------------'
- */
-[SYMB] = LAYOUT_ergodox(
-// left hand
- KC_TRNS ,KC_F1 ,KC_F2 ,KC_F3 ,KC_F4 ,KC_F5 ,KC_ESC
-,KC_TRNS ,KC_EXLM ,KC_AT ,KC_LCBR ,KC_RCBR ,KC_AMPR ,LSFT(KC_COMM)
-,KC_TRNS ,KC_HASH ,KC_DLR ,KC_LPRN ,KC_RPRN ,KC_GRV
-,KC_TRNS ,KC_PERC ,KC_CIRC ,KC_LBRC ,KC_RBRC ,KC_TILD ,KC_TAB
-,KC_LCTL ,KC_MEH ,KC_HYPR ,KC_LALT ,KC_LGUI
- ,KC_LEFT ,KC_RGHT
- ,KC_UP
- ,KC_SPC ,KC_ENT ,KC_DOWN
- // right hand
- ,KC_MINS ,KC_F6 ,KC_F7 ,KC_F8 ,KC_F9 ,KC_F10 ,KC_TRNS
- ,LSFT(KC_DOT),KC_PIPE ,KC_7 ,KC_8 ,KC_9 ,KC_SLSH ,KC_TRNS
- ,KC_SLSH ,KC_4 ,KC_5 ,KC_6 ,KC_ASTR ,KC_TRNS
- ,LSFT(KC_TAB),KC_BSLS ,KC_1 ,KC_2 ,KC_3 ,KC_MINS ,KC_TRNS
- ,GUI_T(KC_0),ALT_T(KC_DOT),ALL_T(KC_EQL),MEH_T(KC_PLUS),CTL_T(KC_ENT)
- ,KC_HOME ,KC_END
- ,KC_PGUP
- ,KC_PGDN ,KC_BSPC ,KC_DEL
-),
-
-/******* Media Layer *******************************************************************************************************
- *
- * ,---------------------------------------------------------------. ,---------------------------------------------------------------.
- * | | F11 | F12 | F13 | F14 | F15 | Esc | | | F16 | F17 | F18 | F19 | F20 | |
- * |------+---------+---------+---------+---------+----------------| |------+---------+---------+---------+---------+---------+------|
- * | | |MouseUpLf|Mouse Up |MouseUpRg|Volume Up|Scroll| |Scroll|PrintScrn| Home | Up | PgUp | | |
- * |------+---------+---------+---------+---------+---------| Up | | Up |---------+---------+---------+---------+---------+------|
- * | | |MouseLeft|MouseDown|MouseRght|Volume Dn|------| |------| Num Lock| Left | Down | Right | | |
- * |------+---------+---------+---------+---------+---------|Scroll| |Scroll|---------+---------+---------+---------+---------+------|
- * | | |MouseDnLf|MouseDown|MouseDnRg| Mute | Down | | Down | | End | Down | PgDn | | |
- * `------+---------+---------+---------+---------+----------------' `----------------+---------+---------+---------+---------+------'
- * |LCtrl| Meh | MClick | LClick | R Click| |Cmd/Insrt|Optn/Del | Hyper | Meh |RCtrl|
- * `---------------------------------------------' `---------------------------------------------'
- * ,-------------. ,-------------.
- * | Stop |Refrsh| | Prev | Next |
- * ,------|------|------| |------+------+------.
- * |Brwser|Brwser|Search| |VolUp | | |
- * |Back | Fwd |------| |------| Stop | Play-|
- * | | | Home | |VolDn | | Pause|
- * `--------------------' `--------------------'
- */
-[MDIA] = LAYOUT_ergodox(
-// left hand
- KC_TRNS ,KC_F11 ,KC_F12 ,KC_F13 ,KC_F14 ,KC_F15 ,KC_ESC
-,KC_TRNS ,KC_NO ,KC_NO ,KC_MS_U ,KC_NO ,KC_VOLU ,KC_WH_U
-,KC_TRNS ,KC_NO ,KC_MS_L ,KC_MS_D ,KC_MS_R ,KC_VOLD
-,KC_TRNS ,KC_NO ,KC_NO ,KC_MS_D ,KC_NO ,KC_MUTE ,KC_WH_D
-,KC_LCTL ,KC_MEH ,KC_BTN3 ,KC_BTN1 ,KC_BTN2
- ,KC_WSTP ,KC_WREF
- ,KC_WSCH
- ,KC_WBAK ,KC_NO ,KC_WHOM
- // right hand
- ,KC_NO ,KC_F16 ,KC_F17 ,KC_F18 ,KC_F19 ,KC_F20 ,KC_TRNS
- ,KC_WH_U ,KC_PSCR ,KC_HOME ,KC_UP ,KC_PGUP ,KC_NO ,KC_TRNS
- ,KC_NUM ,KC_LEFT ,KC_DOWN ,KC_RIGHT,KC_NO ,KC_TRNS
- ,KC_WH_D ,KC_NO ,KC_END ,KC_DOWN ,KC_PGDN ,KC_NO ,KC_TRNS
- ,GUI_T(KC_INS),ALT_T(KC_DEL),KC_HYPR ,KC_MEH ,KC_RCTL
- ,KC_MPRV ,KC_MNXT
- ,KC_VOLU
- ,KC_VOLD ,KC_MSTP ,KC_MPLY
-),
-
-/******* Special Layer *****************************************************************************************************
- *
- * ,-----------------------------------------------------. ,-----------------------------------------------------.
- * | | Esc | | | | | | | | | | | | Bspc | |
- * |-----------+------+------+------+------+-------------| |------+------+------+------+------+------+-----------|
- * | | | | | | | | | | | | | | | |
- * |-----------+------+------+------+------+------| | | |------+------+------+------+------+-----------|
- * | | | | | | |------| |------| | | | | | |
- * |-----------+------+------+------+------+------| | | |------+------+------+------+------+-----------|
- * | | | | | | | | | | | | | | | RShift |
- * `-----------+------+------+------+------+-------------' `-------------+------+------+------+------+-----------'
- * | | | | | | | | | | | |
- * `----------------------------------' `----------------------------------'
- * ,-------------. ,-------------.
- * | | | | | |
- * ,------|------|------| |------+------+------.
- * | | | | | | | |
- * | | |------| |------| | |
- * | | | | | | | |
- * `--------------------' `--------------------'
- */
-[SPEC] = LAYOUT_ergodox(
-// left hand
- KC_TRNS ,KC_ESC ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS
-,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS
-,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS
-,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS
-,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS
-
- ,KC_TRNS ,KC_TRNS
- ,KC_TRNS
- ,KC_TRNS,KC_TRNS ,KC_TRNS
- // right hand
- ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_BSPC ,KC_TRNS
- ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS
- ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS
- ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_RSFT
- ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS
-
- ,KC_TRNS ,KC_TRNS
- ,KC_TRNS
- ,KC_TRNS ,KC_TRNS ,KC_TRNS
- )
-};
-
-// Runs constantly in the background, in a loop.
-void matrix_scan_user(void) {
- // shift or caps lock turns on red light
- if((keyboard_report->mods & MOD_BIT(KC_RSFT)) || (host_keyboard_led_state().caps_lock)) {
- ergodox_right_led_1_on();
- } else {
- ergodox_right_led_1_off();
- }
-
- // Symbol layer turns on green light
- if(IS_LAYER_ON(SYMB)) {
- ergodox_right_led_2_on();
- } else {
- ergodox_right_led_2_off();
- }
-
- // Media layer turns on blue light
- if(IS_LAYER_ON(MDIA)) {
- ergodox_right_led_3_on();
- } else {
- ergodox_right_led_3_off();
- }
-}
diff --git a/layouts/community/ergodox/teckinesis/ordinary-special.png.md b/layouts/community/ergodox/teckinesis/ordinary-special.png.md
deleted file mode 100644
index 20b8761ed0..0000000000
--- a/layouts/community/ergodox/teckinesis/ordinary-special.png.md
+++ /dev/null
@@ -1 +0,0 @@
-https://i.imgur.com/p3y6E8F.png
diff --git a/layouts/community/ergodox/teckinesis/ordinary-special.txt b/layouts/community/ergodox/teckinesis/ordinary-special.txt
deleted file mode 100644
index a08827c6de..0000000000
--- a/layouts/community/ergodox/teckinesis/ordinary-special.txt
+++ /dev/null
@@ -1,27 +0,0 @@
-[{x:3.5,a:7},"",{x:10.5},""],
-[{y:-0.875,x:2.5},"",{x:1},"",{x:8.5},"",{x:1},""],
-[{y:-0.875,x:5.5},"",{c:"#ff4444",a:4},"Esc",{x:4.5,c:"#cccccc",a:7},"",""],
-[{y:-0.875,c:"#000000",t:"#ff0000",a:4,w:1.5},"Special\n\n\n\n\n\nShift",{c:"#ff4444",t:"#000000"},"Esc",{x:14.5,c:"#54d6de"},"Back\n\n\n\n\n\nspace",{c:"#000000",t:"#ff0000",w:1.5},"\n\nSpecial\n\n\n\n\nShift"],
-[{y:-0.375,x:3.5,c:"#cccccc",t:"#000000",a:7},"",{x:10.5},""],
-[{y:-0.875,x:2.5},"",{x:1},"",{x:8.5},"",{x:1},""],
-[{y:-0.875,x:5.5},"",{h:1.5},"",{x:4.5,h:1.5},"",""],
-[{y:-0.875,w:1.5},"","",{x:14.5},"",{w:1.5},""],
-[{y:-0.375,x:3.5},"",{x:10.5},""],
-[{y:-0.875,x:2.5},"",{x:1},"",{x:8.5},"",{x:1},""],
-[{y:-0.875,x:5.5},"",{x:6.5},""],
-[{y:-0.875,w:1.5},"","",{x:14.5},"",{w:1.5},""],
-[{y:-0.625,x:6.5,h:1.5},"",{x:4.5,h:1.5},""],
-[{y:-0.75,x:3.5},"",{x:10.5},""],
-[{y:-0.875,x:2.5},"",{x:1},"",{x:8.5},"",{x:1},""],
-[{y:-0.875,x:5.5},"",{x:6.5},""],
-[{y:-0.875,w:1.5},"","",{x:14.5},"",{c:"#2277ff",w:1.5},"RShift"],
-[{y:-0.375,x:3.5,c:"#cccccc"},"",{x:10.5},""],
-[{y:-0.875,x:2.5},"",{x:1},"",{x:8.5},"",{x:1},""],
-[{y:-0.75,x:0.5},"","",{x:14.5},"",""],
-[{r:30,rx:6.5,ry:4.25,y:-1,x:1},"",""],
-[{h:2},"",{h:2},"",""],
-[{x:2},""],
-[{r:-30,rx:13,y:-1,x:-3},"",""],
-[{x:-3},"",{h:2},"",{h:2},""],
-[{x:-3},""]
-
diff --git a/layouts/community/ergodox/teckinesis/readme.md b/layouts/community/ergodox/teckinesis/readme.md
deleted file mode 100644
index d9b22742c9..0000000000
--- a/layouts/community/ergodox/teckinesis/readme.md
+++ /dev/null
@@ -1,45 +0,0 @@
-# teckinesis Layout
-
-*A blend of TECK and Kinesis layouts, based on ["The Ordinary Layout" by Nicholas Keene](/layouts/community/ergodox/ordinary)*
-
-I love "The Ordinary Layout", but I still use a [TECK](https://www.trulyergonomic.com/store/index.php)
-at the office, and I found the transition back and forth to be a bit more difficult than I expected.
-
-This layout consists of only slight changes to "The Ordinary Layout" based on the layouts of the
-[(original) TECK Model 209](https://www.trulyergonomic.com/store/layout-designer--configurator--reprogrammable--truly-ergonomic-mechanical-keyboard/#KTo7PD0+P0BBQkNERUw5394rNR4fICEi4yMkJSYnLS4xOBQaCBUXTBwYDBITLzDhBBYHCQorCw0ODzPl4B0bBhkFKhEQNjc05OPiSktOTSwoLFBSUU/mZQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAX2BhAFZXAAAAAAAAAAAAXF1eVAAAAAAAAAAAAABZWltVAAAAAAAAAAAAYgBjAAAAAAAAAAAAWFcAAAAAAACTAQAMAiMBAAwBigEADAIhAQAMAZQBAAwBkgEADAGDAQAMALYBAAwAzQEADAC1AQAMAOIBAAwA6gEADADpAQAMALhJAEYAAAAAAEitR64AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACk6Ozw9Pj9AQUJDREVMOd/eKzUeHyAhIuMjJCUmJy0uMTgUGggVF0wcGAwSEy8w4QQWBwkKKwsNDg8z5eMdGwYZBSoREDY3NOfg4kpLTk0sKCxQUlFP5uQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAF9gYQBWVwAAAAAAAAAAAFxdXlQAAAAAAAAAAAAAWVpbVQAAAAAAAAAAAGIAYwAAAAAAAAAAAFhXAAAAAAAAkwEADAIjAQAMAYoBAAwCIQEADAGUAQAMAZIBAAwBgwEADAC2AQAMAM0BAAwAtQEADADiAQAMAOoBAAwA6QEADAC4SQBGAAAAAABIrUeuAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=) and
-the [Kinesis Advantage](http://www.kinesis-ergo.com/wp-content/uploads/2013/06/advantage_layout_win.pdf)
-
-## The Base Layout ##
-
-[teckinesis (Base Layer)](http://www.keyboard-layout-editor.com/#/gists/befd4c5800d92114aa9e50d4f7c0dfb0)
-![teckinesis base layout](https://i.imgur.com/DeehOSY.png)
-
-### Changes from The Ordinary Layout ###
-
-* Moved KC_MINS from the key left of the 6 to the RSpec key.
-* Moved KC_EQL from RSpec to LSpec.
-* Moved KC_GRV from LSpec to the key left of the 6.
-* Mdded KC_BSLS to the left Meh key.
-* Added KC_SLSH to the left Hyper key.
-* Added KC_LBRC to the right Hyper key.
-* Added KC_RBRC to the right Meh key.
-
-## The Symbols Layer ##
-
-[teckinesis (Symbols Layer)](http://www.keyboard-layout-editor.com/#/gists/e6ddc4e9e0d194b3e52ac0616238ab61)
-![teckinesis symbols layout](https://i.imgur.com/u8faqMq.png)
-
-### Changes from The Ordinary Layout ###
-
-* None.
-
-## The Media Layer ##
-
-[teckinesis (Media Layer)](http://www.keyboard-layout-editor.com/#/gists/41ff65e6a7c490211fd6702fb34d9908)
-![teckinesis media layout](https://i.imgur.com/NgdJkuh.png)
-
-### Changes from The Ordinary Layout ###
-
-* Removed Power, Sleep, Mail, My Computer keys.
-(I kept hitting these while using the mouse/cursor. =P)
-
diff --git a/layouts/community/ergodox/teckinesis/teckinesis-base.json b/layouts/community/ergodox/teckinesis/teckinesis-base.json
deleted file mode 100644
index 69fe28cf7c..0000000000
--- a/layouts/community/ergodox/teckinesis/teckinesis-base.json
+++ /dev/null
@@ -1,434 +0,0 @@
-[
- {
- "name": "teckinesis (Base Layer)",
- "author": "Will Wolff-Myren",
- "notes": "# teckinesis Layout # \r\n\r\n*A blend of TECK and Kinesis layouts, based on [\"The Ordinary Layout\" by Nicholas Keene](http://qmk.fm/keyboards/ergodox_ez/keymaps/ordinary/#the-ordinary-layout-a-familiar-and-powerful-layout)*\r\n\r\n## The Base Layout ##\r\n\r\n![teckinesis base layout](teckinesis-base.png)\r\n\r\n## The Symbols Layer ##\r\n\r\n![teckinesis symbols layout](teckinesis-symbol.png)\r\n\r\n## The Media Layer ##\r\n\r\n(placeholder)\r\n",
- "switchMount": "cherry",
- "switchBrand": "gateron",
- "switchType": "KS-3-Tea"
- },
- [
- {
- "x": 3.5
- },
- "#\n3",
- {
- "x": 10.5
- },
- "*\n8"
- ],
- [
- {
- "y": -0.875,
- "x": 2.5
- },
- "@\n2",
- {
- "x": 1
- },
- "$\n4",
- {
- "x": 8.5
- },
- "&\n7",
- {
- "x": 1
- },
- "(\n9"
- ],
- [
- {
- "y": -0.875,
- "x": 5.5
- },
- "%\n5",
- {
- "c": "#ff4444"
- },
- "Esc",
- {
- "x": 4.5,
- "c": "#cccccc"
- },
- "~\n`",
- "^\n6"
- ],
- [
- {
- "y": -0.875,
- "c": "#2277ff",
- "w": 1.5
- },
- "Special\n\n+\n\n\n\nShift\n=",
- {
- "c": "#cccccc"
- },
- "!\n1",
- {
- "x": 14.5
- },
- ")\n0",
- {
- "c": "#2277ff",
- "w": 1.5
- },
- "_\n\nSpecial\n\n\n\n-\nShift"
- ],
- [
- {
- "y": -0.375,
- "x": 3.5,
- "c": "#cccccc"
- },
- "E",
- {
- "x": 10.5
- },
- "I"
- ],
- [
- {
- "y": -0.875,
- "x": 2.5
- },
- "W",
- {
- "x": 1
- },
- "R",
- {
- "x": 8.5
- },
- "U",
- {
- "x": 1
- },
- "O"
- ],
- [
- {
- "y": -0.875,
- "x": 5.5
- },
- "T",
- {
- "h": 1.5
- },
- "{\n\n\n\n\n\n[",
- {
- "x": 4.5,
- "h": 1.5
- },
- "}\n\n\n\n\n\n]",
- "Y"
- ],
- [
- {
- "y": -0.875,
- "c": "#2277ff",
- "fa": [
- 0,
- 0,
- 4
- ],
- "w": 1.5
- },
- "Media\n\n<i class='kb kb-Line-Start-End'></i>\n\n\n\nShift",
- {
- "c": "#cccccc"
- },
- "Q",
- {
- "x": 14.5
- },
- "P",
- {
- "c": "#2277ff",
- "f": 3,
- "w": 1.5
- },
- "|\n\\\nMedia\n\n\n\n\nShift"
- ],
- [
- {
- "y": -0.375,
- "x": 3.5,
- "c": "#cccccc"
- },
- "D",
- {
- "x": 10.5
- },
- "K"
- ],
- [
- {
- "y": -0.875,
- "x": 2.5
- },
- "S",
- {
- "x": 1
- },
- "F",
- {
- "x": 8.5
- },
- "J",
- {
- "x": 1
- },
- "L"
- ],
- [
- {
- "y": -0.875,
- "x": 5.5
- },
- "G",
- {
- "x": 6.5
- },
- "H"
- ],
- [
- {
- "y": -0.875,
- "c": "#2277ff",
- "w": 1.5
- },
- "Symbols\n\n\n\n\n\nShift",
- {
- "c": "#cccccc"
- },
- "A",
- {
- "x": 14.5
- },
- ":\n;",
- {
- "c": "#2277ff",
- "f": 3,
- "w": 1.5
- },
- "\"\n'\nSymbols\n\n\n\n\nShift"
- ],
- [
- {
- "y": -0.625,
- "x": 6.5,
- "c": "#54d6de",
- "fa": [
- 0,
- 0,
- 4,
- 1
- ],
- "h": 1.5
- },
- "< Tab\n\n\nShift Tab",
- {
- "x": 4.5,
- "h": 1.5
- },
- "Tab >\n\n\nTab"
- ],
- [
- {
- "y": -0.75,
- "x": 3.5,
- "c": "#cccccc"
- },
- "C",
- {
- "x": 10.5
- },
- "<\n,"
- ],
- [
- {
- "y": -0.875,
- "x": 2.5
- },
- "X",
- {
- "x": 1
- },
- "V",
- {
- "x": 8.5
- },
- "M",
- {
- "x": 1
- },
- ">\n."
- ],
- [
- {
- "y": -0.875,
- "x": 5.5
- },
- "B",
- {
- "x": 6.5
- },
- "N"
- ],
- [
- {
- "y": -0.875,
- "c": "#2277ff",
- "w": 1.5
- },
- "Capitals\n\n\n\n\n\nShift",
- {
- "c": "#cccccc"
- },
- "Z",
- {
- "x": 14.5
- },
- "?\n/",
- {
- "c": "#2277ff",
- "f": 3,
- "w": 1.5
- },
- "\n\nCapitals\n\n\n\n\nShift"
- ],
- [
- {
- "y": -0.375,
- "x": 3.5,
- "c": "#77aaff",
- "fa": [
- 5,
- 0,
- 4,
- 1
- ]
- },
- "<i class='mss mss-Unicode-Option-3'></i>\n\n\nLAlt",
- {
- "x": 10.5
- },
- "<i class='mss mss-Unicode-Option-3'></i>\n\n\nRAlt"
- ],
- [
- {
- "y": -0.875,
- "x": 2.5,
- "fa": [
- 5,
- 1
- ]
- },
- "\nHyper\n?\n/",
- {
- "x": 1,
- "fa": [
- 5,
- 1,
- 0,
- 1
- ]
- },
- "<i class='mss mss-Unicode-Command-3'></i>\n\n\nSuper",
- {
- "x": 8.5
- },
- "<i class='mss mss-Unicode-Command-3'></i>\n\n\nSuper",
- {
- "x": 1,
- "fa": [
- 0,
- 0,
- 0,
- 1
- ]
- },
- "{\n[\n\nHyper"
- ],
- [
- {
- "y": -0.75,
- "x": 0.5
- },
- "Ctrl\n\n\nLCtrl",
- {
- "f2": 1
- },
- "\nMeh\n|\n\\",
- {
- "x": 14.5,
- "fa": [
- 0,
- 0,
- 1,
- 1
- ]
- },
- "}\n]\n\nMeh",
- "Ctrl\n\n\nRCtrl"
- ],
- [
- {
- "r": 30,
- "rx": 6.5,
- "ry": 4.25,
- "y": -1,
- "x": 1,
- "c": "#54d6de"
- },
- "Home",
- "End"
- ],
- [
- {
- "h": 2
- },
- "< Del\n\n\nBackspace",
- {
- "h": 2
- },
- "Del >\n\n\nDelete",
- "Page\n\n\n\n\n\nUp"
- ],
- [
- {
- "x": 2
- },
- "Page\n\n\n\n\n\nDown"
- ],
- [
- {
- "r": -30,
- "rx": 13,
- "y": -1,
- "x": -3
- },
- "Left",
- "Right"
- ],
- [
- {
- "x": -3
- },
- "Up",
- {
- "h": 2
- },
- "Enter",
- {
- "h": 2
- },
- "Space"
- ],
- [
- {
- "x": -3
- },
- "Down"
- ]
-] \ No newline at end of file
diff --git a/layouts/community/ergodox/teckinesis/teckinesis-media.json b/layouts/community/ergodox/teckinesis/teckinesis-media.json
deleted file mode 100644
index 65fe394e8a..0000000000
--- a/layouts/community/ergodox/teckinesis/teckinesis-media.json
+++ /dev/null
@@ -1,436 +0,0 @@
-[
- {
- "name": "teckinesis (MediaLayer)",
- "author": "Will Wolff-Myren",
- "switchMount": "cherry",
- "switchBrand": "gateron",
- "switchType": "KS-3-Tea"
- },
- [
- {
- "x": 3.5,
- "c": "#99de2a"
- },
- "F13",
- {
- "x": 10.5
- },
- "F18"
- ],
- [
- {
- "y": -0.875,
- "x": 2.5
- },
- "F12",
- {
- "x": 1
- },
- "F14",
- {
- "x": 8.5
- },
- "F17",
- {
- "x": 1
- },
- "F19"
- ],
- [
- {
- "y": -0.875,
- "x": 5.5
- },
- "F15",
- {
- "c": "#ff4444"
- },
- "Esc",
- {
- "x": 4.5
- },
- "Esc",
- {
- "c": "#99de2a"
- },
- "F16"
- ],
- [
- {
- "y": -0.875,
- "x": 1.5
- },
- "F11",
- {
- "x": 14.5
- },
- "F20"
- ],
- [
- {
- "y": -0.995,
- "c": "#000000",
- "t": "#ff0000",
- "w": 1.5
- },
- "Media\n\n\n\n\n\nShift",
- {
- "x": 16.5,
- "w": 1.5
- },
- "\n\nMedia\n\n\n\n\nShift"
- ],
- [
- {
- "y": -0.3799999999999999,
- "x": 3.5,
- "c": "#ff8500",
- "t": "#000000"
- },
- "Mouse\n\n\n\n\n\nUp",
- {
- "x": 10.5
- },
- "Cursor\n\n\n\n\n\nUp"
- ],
- [
- {
- "y": -0.875,
- "x": 2.5
- },
- "Mouse\n\n\n\n\n\nUpLeft",
- {
- "x": 1
- },
- "Mouse\n\n\n\n\n\nUpRgt",
- {
- "x": 8.5,
- "c": "#ffb063"
- },
- "Home",
- {
- "x": 1
- },
- "Page\n\n\n\n\n\nUp"
- ],
- [
- {
- "y": -0.875,
- "x": 5.5,
- "c": "#e6e067"
- },
- "Vol\n\n\n\n\n\nUp",
- {
- "c": "#ffb063",
- "h": 1.5
- },
- "Scroll\n\n\n\n\n\nUp",
- {
- "x": 4.5,
- "h": 1.5
- },
- "Scroll\n\n\n\n\n\nUp",
- {
- "c": "#e6e067"
- },
- "Print\n\n\n\n\n\nScreen"
- ],
- [
- {
- "y": -0.875,
- "x": 1.5,
- "c": "#737373",
- "a": 7
- },
- "",
- {
- "x": 14.5
- },
- ""
- ],
- [
- {
- "y": -0.9950000000000001,
- "c": "#2277ff",
- "a": 4,
- "w": 1.5
- },
- "Symbols\n\n\n\n\n\nShift",
- {
- "x": 16.5,
- "w": 1.5
- },
- "\n\nSymbols\n\n\n\n\nShift"
- ],
- [
- {
- "y": -0.3799999999999999,
- "x": 3.5,
- "c": "#ff8500"
- },
- "Mouse\n\n\n\n\n\nDown",
- {
- "x": 10.5
- },
- "Cursor\n\n\n\n\n\nDown"
- ],
- [
- {
- "y": -0.875,
- "x": 2.5
- },
- "Mouse\n\n\n\n\n\nLeft",
- {
- "x": 1
- },
- "Mouse\n\n\n\n\n\nRight",
- {
- "x": 8.5
- },
- "Cursor\n\n\n\n\n\nLeft",
- {
- "x": 1
- },
- "Cursor\n\n\n\n\n\nRight"
- ],
- [
- {
- "y": -0.875,
- "x": 5.5,
- "c": "#e6e067"
- },
- "Vol\n\n\n\n\n\nDown",
- {
- "x": 6.5
- },
- "Num\n\n\n\n\n\nLock"
- ],
- [
- {
- "y": -0.875,
- "x": 1.5,
- "c": "#737373",
- "a": 7
- },
- "",
- {
- "x": 14.5
- },
- ""
- ],
- [
- {
- "y": -0.9950000000000001,
- "c": "#2277ff",
- "a": 4,
- "w": 1.5
- },
- "Capitals\n\n\n\n\n\nShift",
- {
- "x": 16.5,
- "w": 1.5
- },
- "\n\nCapitals\n\n\n\n\nShift"
- ],
- [
- {
- "y": -0.6299999999999999,
- "x": 6.5,
- "c": "#ffb063",
- "h": 1.5
- },
- "Scroll\n\n\n\n\n\nDown",
- {
- "x": 4.5,
- "h": 1.5
- },
- "Scroll\n\n\n\n\n\nDown"
- ],
- [
- {
- "y": -0.75,
- "x": 3.5,
- "c": "#ff8500"
- },
- "Mouse\n\n\n\n\n\nDown",
- {
- "x": 10.5
- },
- "Cursor\n\n\n\n\n\nDown"
- ],
- [
- {
- "y": -0.875,
- "x": 2.5
- },
- "Mouse\n\n\n\n\n\nDnLeft",
- {
- "x": 1
- },
- "Mouse\n\n\n\n\n\nDnRgt",
- {
- "x": 8.5,
- "c": "#ffb063"
- },
- "End",
- {
- "x": 1
- },
- "Page\n\n\n\n\n\nDown"
- ],
- [
- {
- "y": -0.875,
- "x": 5.5,
- "c": "#e6e067"
- },
- "Mute",
- {
- "x": 6.5,
- "c": "#737373",
- "a": 7
- },
- ""
- ],
- [
- {
- "y": -0.875,
- "x": 1.5
- },
- "",
- {
- "x": 14.5
- },
- ""
- ],
- [
- {
- "y": -0.9950000000000001,
- "c": "#2277ff",
- "a": 4,
- "w": 1.5
- },
- "Ctrl",
- {
- "x": 16.5,
- "w": 1.5
- },
- "Ctrl"
- ],
- [
- {
- "y": -0.3799999999999999,
- "x": 3.5,
- "c": "#ff8500"
- },
- "Middle\n\n\n\n\n\nClick",
- {
- "x": 10.5,
- "c": "#ffb063",
- "fa": [
- 0,
- 0,
- 0,
- 1
- ]
- },
- "Delete\n\n\nOption"
- ],
- [
- {
- "y": -0.875,
- "x": 2.5,
- "c": "#ff8500"
- },
- "Left\n\n\n\n\n\nClick",
- {
- "x": 1
- },
- "Right\n\n\n\n\n\nClick",
- {
- "x": 8.5,
- "c": "#ffb063"
- },
- "Insert\n\n\nCmd",
- {
- "x": 1,
- "c": "#77aaff"
- },
- "Hyper"
- ],
- [
- {
- "y": -0.75,
- "x": 0.5
- },
- "Alt\n\n\nLAlt",
- "Meh",
- {
- "x": 14.5
- },
- "Meh",
- "Alt\n\n\nRAlt"
- ],
- [
- {
- "r": 30,
- "rx": 6.5,
- "ry": 4.25,
- "y": -1,
- "x": 1,
- "c": "#ccbb00"
- },
- "Stop\n\n\nBrowser",
- "Reload\n\n\nBrowser"
- ],
- [
- {
- "h": 2
- },
- "< Web\n\n\nBrowser",
- {
- "h": 2
- },
- "Web >\n\n\nBrowser",
- "Search\n\n\nBrowser"
- ],
- [
- {
- "x": 2
- },
- "Home\n\n\nBrowser"
- ],
- [
- {
- "r": -30,
- "rx": 13,
- "y": -1,
- "x": -3
- },
- "Prev\n\n\nAudio\n\n\nTrack",
- "Next\n\n\nAudio\n\n\nTrack"
- ],
- [
- {
- "x": -3,
- "c": "#e6e067"
- },
- "Vol\n\n\n\n\n\nUp",
- {
- "c": "#ccbb00",
- "h": 2
- },
- "Stop\n\n\nAudio",
- {
- "h": 2
- },
- "Play\n\n\nAudio\n\n\nPause"
- ],
- [
- {
- "x": -3,
- "c": "#e6e067"
- },
- "Vol\n\n\n\n\n\nDown"
- ]
-] \ No newline at end of file
diff --git a/layouts/community/ergodox/teckinesis/teckinesis-symbol.json b/layouts/community/ergodox/teckinesis/teckinesis-symbol.json
deleted file mode 100644
index 439d0128ea..0000000000
--- a/layouts/community/ergodox/teckinesis/teckinesis-symbol.json
+++ /dev/null
@@ -1,422 +0,0 @@
-[
- {
- "name": "teckinesis (Symbol Layer)",
- "author": "Will Wolff-Myren",
- "switchMount": "cherry",
- "switchBrand": "gateron",
- "switchType": "KS-3-Tea"
- },
- [
- {
- "x": 3.5,
- "c": "#99de2a"
- },
- "F3",
- {
- "x": 10.5
- },
- "F8"
- ],
- [
- {
- "y": -0.875,
- "x": 2.5
- },
- "F2",
- {
- "x": 1
- },
- "F4",
- {
- "x": 8.5
- },
- "F7",
- {
- "x": 1
- },
- "F9"
- ],
- [
- {
- "y": -0.875,
- "x": 5.5
- },
- "F5",
- {
- "c": "#ff4444"
- },
- "Esc",
- {
- "x": 4.5,
- "c": "#bbddbb"
- },
- "_\n\n\n\n\n\n-",
- {
- "c": "#99de2a"
- },
- "F6"
- ],
- [
- {
- "y": -0.875,
- "c": "#2277ff",
- "w": 1.5
- },
- "Special\n\n\n\n\n\nShift",
- {
- "c": "#99de2a"
- },
- "F1",
- {
- "x": 14.5
- },
- "F10",
- {
- "c": "#2277ff",
- "w": 1.5
- },
- "\n\nSpecial\n\n\n\n\nShift"
- ],
- [
- {
- "y": -0.375,
- "x": 3.5,
- "c": "#bbddbb"
- },
- "{",
- {
- "x": 10.5,
- "c": "#89b087"
- },
- "8"
- ],
- [
- {
- "y": -0.875,
- "x": 2.5,
- "c": "#bbddbb"
- },
- "@",
- {
- "x": 1
- },
- "}",
- {
- "x": 8.5,
- "c": "#89b087"
- },
- "7",
- {
- "x": 1
- },
- "9"
- ],
- [
- {
- "y": -0.875,
- "x": 5.5,
- "c": "#bbddbb"
- },
- "&",
- {
- "h": 1.5
- },
- "<",
- {
- "x": 4.5,
- "h": 1.5
- },
- ">",
- "|"
- ],
- [
- {
- "y": -0.875,
- "c": "#2277ff",
- "w": 1.5
- },
- "Media\n\n\n\n\n\nShift",
- {
- "c": "#bbddbb"
- },
- "!",
- {
- "x": 14.5,
- "c": "#89b087"
- },
- "/",
- {
- "c": "#2277ff",
- "w": 1.5
- },
- "\n\nMedia\n\n\n\n\nShift"
- ],
- [
- {
- "y": -0.375,
- "x": 3.5,
- "c": "#bbddbb"
- },
- "(",
- {
- "x": 10.5,
- "c": "#89b087"
- },
- "5"
- ],
- [
- {
- "y": -0.875,
- "x": 2.5,
- "c": "#bbddbb"
- },
- "$",
- {
- "x": 1
- },
- ")",
- {
- "x": 8.5,
- "c": "#89b087"
- },
- "4",
- {
- "x": 1
- },
- "6"
- ],
- [
- {
- "y": -0.875,
- "x": 5.5,
- "c": "#bbddbb"
- },
- "`",
- {
- "x": 6.5
- },
- "/"
- ],
- [
- {
- "y": -0.875,
- "c": "#000000",
- "t": "#ff0000",
- "w": 1.5
- },
- "Symbols\n\n\n\n\n\nShift",
- {
- "c": "#bbddbb",
- "t": "#000000"
- },
- "#",
- {
- "x": 14.5,
- "c": "#89b087"
- },
- "*",
- {
- "c": "#000000",
- "t": "#ff0000",
- "w": 1.5
- },
- "\n\nSymbols\n\n\n\n\nShift"
- ],
- [
- {
- "y": -0.625,
- "x": 6.5,
- "c": "#54d6de",
- "t": "#000000",
- "fa": [
- 0,
- 0,
- 0,
- 1
- ],
- "h": 1.5
- },
- "Tab >\n\n\nTab",
- {
- "x": 4.5,
- "h": 1.5
- },
- "< Tab\n\n\nShift Tab"
- ],
- [
- {
- "y": -0.75,
- "x": 3.5,
- "c": "#bbddbb"
- },
- "[",
- {
- "x": 10.5,
- "c": "#89b087"
- },
- "2"
- ],
- [
- {
- "y": -0.875,
- "x": 2.5,
- "c": "#bbddbb"
- },
- "^",
- {
- "x": 1
- },
- "]",
- {
- "x": 8.5,
- "c": "#89b087"
- },
- "1",
- {
- "x": 1
- },
- "3"
- ],
- [
- {
- "y": -0.875,
- "x": 5.5,
- "c": "#bbddbb"
- },
- "~",
- {
- "x": 6.5
- },
- "\\"
- ],
- [
- {
- "y": -0.875,
- "c": "#2277ff",
- "w": 1.5
- },
- "Capitals\n\n\n\n\n\nShift",
- {
- "c": "#bbddbb"
- },
- "%",
- {
- "x": 14.5,
- "c": "#89b087"
- },
- "-",
- {
- "c": "#2277ff",
- "w": 1.5
- },
- "\n\nCapitals\n\n\n\n\nShift"
- ],
- [
- {
- "y": -0.375,
- "x": 3.5,
- "c": "#77aaff"
- },
- "<i class='mss mss-Unicode-Option-3'></i>\n\n\nLAlt",
- {
- "x": 10.5,
- "c": "#89b087"
- },
- ".\n\n\nOption"
- ],
- [
- {
- "y": -0.875,
- "x": 2.5,
- "c": "#77aaff"
- },
- "Hyper",
- {
- "x": 1
- },
- "<i class='mss mss-Unicode-Command-3'></i>\n\n\nSuper",
- {
- "x": 8.5,
- "c": "#89b087"
- },
- "0\n\n\nCmd",
- {
- "x": 1
- },
- "=\n\n\nHyper"
- ],
- [
- {
- "y": -0.75,
- "x": 0.5,
- "c": "#77aaff"
- },
- "Ctrl\n\n\nLCtrl",
- "Meh",
- {
- "x": 14.5,
- "c": "#89b087"
- },
- "+\n\n\nMeh",
- "Enter\n\n\nCtrl"
- ],
- [
- {
- "r": 30,
- "rx": 6.5,
- "ry": 4.25,
- "y": -1,
- "x": 1,
- "c": "#54d6de"
- },
- "Left",
- "Right"
- ],
- [
- {
- "h": 2
- },
- "Space",
- {
- "h": 2
- },
- "Enter",
- "Up"
- ],
- [
- {
- "x": 2
- },
- "Down"
- ],
- [
- {
- "r": -30,
- "rx": 13,
- "y": -1,
- "x": -3
- },
- "Home",
- "End"
- ],
- [
- {
- "x": -3
- },
- "Page\n\n\n\n\n\nUp",
- {
- "h": 2
- },
- "< Del\n\n\nBackspace",
- {
- "h": 2
- },
- "Del >\n\n\nDelete"
- ],
- [
- {
- "x": -3
- },
- "Page\n\n\n\n\n\nDown"
- ]
-] \ No newline at end of file
diff --git a/layouts/community/ergodox/tkuichooseyou/README.md b/layouts/community/ergodox/tkuichooseyou/README.md
deleted file mode 100644
index ab02fac2ca..0000000000
--- a/layouts/community/ergodox/tkuichooseyou/README.md
+++ /dev/null
@@ -1,13 +0,0 @@
-# Based on Default OSX
-I'm a vim and OSX user
-
-- Moved Hyper and Meh up, replaced with CMD
- - Because I'm used to having symmetrical CMD keys on both hands
-- Changed left delete to Tab to match OSX
-- Changed left Backspace to CTRL/ESC for vim
-- Changed top left and top right arrow to `CMD+{` and `CMD+}`
- - Useful for switching tabs in Safari, Xcode, etc.
-- Remove the Ctrl from Z and /
-- Remove CMD from right quote
-- Changed right Alt to Delete
-
diff --git a/layouts/community/ergodox/tkuichooseyou/keymap.c b/layouts/community/ergodox/tkuichooseyou/keymap.c
deleted file mode 100644
index 08f1cfc9ab..0000000000
--- a/layouts/community/ergodox/tkuichooseyou/keymap.c
+++ /dev/null
@@ -1,160 +0,0 @@
-#include QMK_KEYBOARD_H
-#include "debug.h"
-#include "action_layer.h"
-
-#define BASE 0 // default layer
-#define SYMB 1 // symbols
-#define MDIA 2 // media keys
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-/* Keymap 0: Basic layer
- *
- * ,--------------------------------------------------. ,--------------------------------------------------.
- * | = | 1 | 2 | 3 | 4 | 5 |CMD+{ | | CMD+}| 6 | 7 | 8 | 9 | 0 | - |
- * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | Tab | Q | W | E | R | T | Hyper| | Meh | Y | U | I | O | P | \ |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * |Ctrl/Esc| A | S | D | F | G |------| |------| H | J | K | L |; / L2| LGui |
- * |--------+------+------+------+------+------| LGui | | LGui |------+------+------+------+------+--------|
- * | LShift | Z | X | C | V | B | | | | N | M | , | . | / | RShift |
- * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * |Grv/L1| '" |AltShf| Left | Right| | Up | Down | [ | ] | ~L1 |
- * `----------------------------------' `----------------------------------'
- * ,-------------. ,-------------.
- * | App | LGui | | Del |Ctrl/Esc|
- * ,------|------|------| |------+--------+------.
- * | | | Home | | PgUp | | |
- * | Space|Backsp|------| |------| Tab |Enter |
- * | |ace | End | | PgDn | | |
- * `--------------------' `----------------------'
- */
-// If it accepts an argument (i.e, is a function), it doesn't need KC_.
-// Otherwise, it needs KC_*
-[BASE] = LAYOUT_ergodox( // layer 0 : default
- // left hand
- KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, LGUI(LSFT(KC_LBRC)),
- KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, ALL_T(KC_NO),
- CTL_T(KC_ESC), KC_A, KC_S, KC_D, KC_F, KC_G,
- KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_LGUI,
- LT(SYMB,KC_GRV),KC_QUOT, LALT(KC_LSFT), KC_LEFT,KC_RGHT,
- ALT_T(KC_APP), KC_LGUI,
- KC_HOME,
- KC_SPC,KC_BSPC,KC_END,
- // right hand
- LGUI(LSFT(KC_RBRC)), KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS,
- MEH_T(KC_NO), KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS,
- KC_H, KC_J, KC_K, KC_L, LT(MDIA, KC_SCLN),KC_QUOT,
- KC_LGUI, KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH, KC_RSFT,
- KC_UP, KC_DOWN,KC_LBRC,KC_RBRC, TT(SYMB),
- KC_DEL, CTL_T(KC_ESC),
- KC_PGUP,
- KC_PGDN,KC_TAB, KC_ENT
- ),
-/* Keymap 1: Symbol Layer
- *
- * ,--------------------------------------------------. ,--------------------------------------------------.
- * | | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | F11 |
- * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | | ! | @ | { | } | | | | | | Up | 7 | 8 | 9 | * | F12 |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | # | $ | ( | ) | ` |------| |------| Down | 4 | 5 | 6 | + | |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | % | ^ | [ | ] | ~ | | | | & | 1 | 2 | 3 | \ | |
- * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * | | | | | | | | . | 0 | = | |
- * `----------------------------------' `----------------------------------'
- * ,-------------. ,-------------.
- * | | | | | |
- * ,------|------|------| |------+------+------.
- * | | | | | | | |
- * | | |------| |------| | |
- * | | | | | | | |
- * `--------------------' `--------------------'
- */
-// SYMBOLS
-[SYMB] = LAYOUT_ergodox(
- // left hand
- KC_TRNS,KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_TRNS,
- KC_TRNS,KC_EXLM,KC_AT, KC_LCBR,KC_RCBR,KC_PIPE,KC_TRNS,
- KC_TRNS,KC_HASH,KC_DLR, KC_LPRN,KC_RPRN,KC_GRV,
- KC_TRNS,KC_PERC,KC_CIRC,KC_LBRC,KC_RBRC,KC_TILD,KC_TRNS,
- KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
- KC_TRNS,KC_TRNS,
- KC_TRNS,
- KC_TRNS,KC_TRNS,KC_TRNS,
- // right hand
- KC_TRNS, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,
- KC_TRNS, KC_UP, KC_7, KC_8, KC_9, KC_ASTR, KC_F12,
- KC_DOWN, KC_4, KC_5, KC_6, KC_PLUS, KC_TRNS,
- KC_TRNS, KC_AMPR, KC_1, KC_2, KC_3, KC_BSLS, KC_TRNS,
- KC_TRNS,KC_DOT, KC_0, KC_EQL, KC_TRNS,
- KC_TRNS, KC_TRNS,
- KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS
-),
-/* Keymap 2: Media and mouse keys
- *
- * ,--------------------------------------------------. ,--------------------------------------------------.
- * | | | | | | | | | | | | | | | |
- * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | | | | MsUp | | | | | | | | | | | |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | |MsLeft|MsDown|MsRght| |------| |------| | | | | | Play |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | | | | | | | | | | | Prev | Next | | |
- * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * | | | | Lclk | Rclk | |VolUp |VolDn | Mute | | |
- * `----------------------------------' `----------------------------------'
- * ,-------------. ,-------------.
- * | | | | | |
- * ,------|------|------| |------+------+------.
- * | | | | | | |Brwser|
- * | | |------| |------| |Back |
- * | | | | | | | |
- * `--------------------' `--------------------'
- */
-// MEDIA AND MOUSE
-LAYOUT_ergodox(
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_MS_U, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_R, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_BTN1, KC_BTN2,
- KC_TRNS, KC_TRNS,
- KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS,
- // right hand
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_MPRV, KC_MNXT, KC_TRNS, KC_TRNS,
- KC_VOLU, KC_VOLD, KC_MUTE, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS,
- KC_TRNS,
- KC_TRNS, KC_TRNS, KC_WBAK
-),
-};
-
-// Runs constantly in the background, in a loop.
-void matrix_scan_user(void) {
-
- uint8_t layer = get_highest_layer(layer_state);
-
- ergodox_board_led_off();
- ergodox_right_led_1_off();
- ergodox_right_led_2_off();
- ergodox_right_led_3_off();
- switch (layer) {
- // TODO: Make this relevant to the ErgoDox EZ.
- case 1:
- ergodox_right_led_1_on();
- break;
- case 2:
- ergodox_right_led_2_on();
- break;
- default:
- // none
- break;
- }
-
-};
diff --git a/layouts/community/ergodox/tonyabra_osx/keymap.c b/layouts/community/ergodox/tonyabra_osx/keymap.c
deleted file mode 100644
index 9b8048dda3..0000000000
--- a/layouts/community/ergodox/tonyabra_osx/keymap.c
+++ /dev/null
@@ -1,160 +0,0 @@
-#include QMK_KEYBOARD_H
-#include "debug.h"
-#include "action_layer.h"
-
-#define BASE 0 // default layer
-#define SYMB 1 // symbols
-#define MDIA 2 // media keys
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-/* Keymap 0: Basic layer
- *
- * ,--------------------------------------------------. ,--------------------------------------------------.
- * | Esc | 1 | 2 | 3 | 4 | 5 | = | | - | 6 | 7 | 8 | 9 | 0 | Enter |
- * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | Tab | Q | W | E | R | T | L1 | | L1 | Y | U | I | O | P | \ |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | BkSp | A | S | D | F | G |------| |------| H | J | K | L | ; | '" |
- * |--------+------+------+------+------+------| LGui | | LGui |------+------+------+------+------+--------|
- * | LShift | Z | X | C | V | B | | | | N | M | , | . | / | RShift |
- * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * | L1 | ` | { | } | '" | | Left | Up | Down | Right| L2 |
- * `----------------------------------' `----------------------------------'
- * ,-------------. ,-------------.
- * | Del | Alt | | Alt | Ctrl |
- * ,------|------|------| |------+--------+------.
- * | | | Home | | PgUp | | |
- * | Space|Backsp|------| |------| Tab |Enter |
- * | |ace | End | | PgDn | | |
- * `--------------------' `----------------------'
- */
-// If it accepts an argument (i.e, is a function), it doesn't need KC_.
-// Otherwise, it needs KC_*
-[BASE] = LAYOUT_ergodox( // layer 0 : default
- // left hand
- KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_EQL,
- KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, TG(SYMB),
- KC_BSPC, KC_A, KC_S, KC_D, KC_F, KC_G,
- KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_LGUI,
- TG(SYMB), KC_GRV, KC_LBRC, KC_RBRC,KC_QUOT,
- KC_DEL, KC_LALT,
- KC_HOME,
- KC_SPC,KC_BSPC,KC_END,
- // right hand
- KC_MINS, KC_6, KC_7, KC_8, KC_9, KC_0, KC_ENT,
- TG(SYMB), KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS,
- KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
- KC_LGUI, KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH, KC_RSFT,
- KC_LEFT,KC_UP, KC_DOWN,KC_RIGHT, TG(MDIA),
- KC_RALT, KC_RCTL,
- KC_PGUP,
- KC_PGDN,KC_TAB, KC_ENT
- ),
-/* Keymap 1: Symbol Layer
- *
- * ,--------------------------------------------------. ,--------------------------------------------------.
- * | | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | F11 |
- * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | | ! | @ | { | } | | | | | | Up | 7 | 8 | 9 | * | F12 |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | # | $ | ( | ) | ` |------| |------| Down | 4 | 5 | 6 | + | |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | % | ^ | [ | ] | ~ | | | | & | 1 | 2 | 3 | \ | |
- * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * | | | | | | | | . | 0 | = | |
- * `----------------------------------' `----------------------------------'
- * ,-------------. ,-------------.
- * | | | | | |
- * ,------|------|------| |------+------+------.
- * | | | | | | | |
- * | | |------| |------| | |
- * | | | | | | | |
- * `--------------------' `--------------------'
- */
-// SYMBOLS
-[SYMB] = LAYOUT_ergodox(
- // left hand
- KC_TRNS,KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_TRNS,
- KC_TRNS,KC_EXLM,KC_AT, KC_LCBR,KC_RCBR,KC_PIPE,KC_TRNS,
- KC_TRNS,KC_HASH,KC_DLR, KC_LPRN,KC_RPRN,KC_GRV,
- KC_TRNS,KC_PERC,KC_CIRC,KC_LBRC,KC_RBRC,KC_TILD,KC_TRNS,
- KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
- KC_TRNS,KC_TRNS,
- KC_TRNS,
- KC_TRNS,KC_TRNS,KC_TRNS,
- // right hand
- KC_TRNS, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,
- KC_TRNS, KC_UP, KC_7, KC_8, KC_9, KC_ASTR, KC_F12,
- KC_DOWN, KC_4, KC_5, KC_6, KC_PLUS, KC_TRNS,
- KC_TRNS, KC_AMPR, KC_1, KC_2, KC_3, KC_BSLS, KC_TRNS,
- KC_TRNS,KC_DOT, KC_0, KC_EQL, KC_TRNS,
- KC_TRNS, KC_TRNS,
- KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS
-),
-/* Keymap 2: Media and mouse keys
- *
- * ,--------------------------------------------------. ,--------------------------------------------------.
- * | | | | | | | | | | | | | | | |
- * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | | | | MsUp | | | | | | | | | | | |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | |MsLeft|MsDown|MsRght| |------| |------| | | | | | Play |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | | | | | | | | | | | Prev | Next | | |
- * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * | | | | Lclk | Rclk | |VolUp |VolDn | Mute | | |
- * `----------------------------------' `----------------------------------'
- * ,-------------. ,-------------.
- * | | | | | |
- * ,------|------|------| |------+------+------.
- * | | | | | | |Brwser|
- * | | |------| |------| |Back |
- * | | | | | | | |
- * `--------------------' `--------------------'
- */
-// MEDIA AND MOUSE
-[MDIA] = LAYOUT_ergodox(
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_MS_U, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_R, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_BTN1, KC_BTN2,
- KC_TRNS, KC_TRNS,
- KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS,
- // right hand
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_MPRV, KC_MNXT, KC_TRNS, KC_TRNS,
- KC_VOLU, KC_VOLD, KC_MUTE, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS,
- KC_TRNS,
- KC_TRNS, KC_TRNS, KC_WBAK
-),
-};
-
-// Runs constantly in the background, in a loop.
-void matrix_scan_user(void) {
-
- uint8_t layer = get_highest_layer(layer_state);
-
- ergodox_board_led_off();
- ergodox_right_led_1_off();
- ergodox_right_led_2_off();
- ergodox_right_led_3_off();
- switch (layer) {
- // TODO: Make this relevant to the ErgoDox EZ.
- case 1:
- ergodox_right_led_1_on();
- break;
- case 2:
- ergodox_right_led_2_on();
- break;
- default:
- // none
- break;
- }
-
-};
diff --git a/layouts/community/ergodox/tonyabra_osx/readme.md b/layouts/community/ergodox/tonyabra_osx/readme.md
deleted file mode 100644
index f9d76efc23..0000000000
--- a/layouts/community/ergodox/tonyabra_osx/readme.md
+++ /dev/null
@@ -1,5 +0,0 @@
-# ErgoDox EZ OS X Simplified Configuration
-
-This keyboard configuration replaces the hyper and meh keys with the command key. It also removes all of the meta keys that require a "hold" because I found that I hesitate when I type, which can accidentally fire those combinations. On the upper left of the left hand, I mimicked the Mac placement of tab and escape, and on the upper right of the right hand, I placed an additional enter key for convenience when breezing through prompts.
-
-This is my standard working configuration for now, but I can see myself tweaking it as I use it more. I highly recommend you do the same. \ No newline at end of file
diff --git a/layouts/community/ergodox/twentylives_dvorak_with_hebrew/keymap.c b/layouts/community/ergodox/twentylives_dvorak_with_hebrew/keymap.c
deleted file mode 100644
index cc18259d40..0000000000
--- a/layouts/community/ergodox/twentylives_dvorak_with_hebrew/keymap.c
+++ /dev/null
@@ -1,197 +0,0 @@
-#include QMK_KEYBOARD_H
-#include "debug.h"
-#include "action_layer.h"
-#include "version.h"
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
-
-/* Keymap 0: Basic Dvorak layer
- *
- * ,--------------------------------------------------. ,--------------------------------------------------.
- * | Hebrew | 1 | 2 | 3 | 4 | 5 |ALT+S | |B.tick| 6 | 7 | 8 | 9 | 0 | = |
- * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | TAB | ' | , | . | P | Y | LCK2 | | | F | G | C | R | L | / |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | ESC | A | O | E | U | I |------| |------| D | H | T | N | S | - |
- * |--------+------+------+------+------+------| LCK1 | | |------+------+------+------+------+--------|
- * | LShift | ; | Q | J | K | X | | | | B | M | W | V | Z | RSHIFT |
- * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * |FN2 | COPY | CUT | PASTE| FN1 | | [ | ] | \ | UNDO | CTRL+A |
- * `----------------------------------' `------------------------------------'
- * ,-------------. ,-------------.
-* | DEL | | | END | HOME |
- * ,------|------|------| |------+--------+------.
- * | | | SUPER| | PgUp | | |
- * | BACK | CTRL |------| |------| Enter |SPACE |
- * | SPACE| | ALT | | PgDn | | |
- * `--------------------' `----------------------'
- */
-[0] = LAYOUT_ergodox(
- TG(1), KC_1, KC_2, KC_3, KC_4, KC_5, LALT(KC_LSFT),
- KC_TAB, KC_QUOTE, KC_COMMA, KC_DOT, KC_P, KC_Y, TG(3),
- KC_ESCAPE, KC_A, KC_O, KC_E, KC_U, KC_I,
- KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, TG(2),
- MO(3), LCTL(KC_C), LCTL(KC_X), LCTL(KC_V), MO(2),
- KC_DELETE, KC_TRNS,
- KC_LGUI,
- KC_BSPC,CTL_T(KC_NO),KC_LALT,
-
- KC_TILD, KC_6, KC_7, KC_8, KC_9, KC_0, KC_EQUAL,
- KC_TRNS, KC_F, KC_G, KC_C, KC_R, KC_L, KC_SLASH,
- KC_D, KC_H, KC_T, KC_N, KC_S, KC_MINUS,
- KC_TRNS, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_LSFT,
- KC_LBRC, KC_RBRC, KC_BSLS, KC_UNDO, LCTL(KC_A),
- KC_END, KC_HOME,
- KC_PGUP,
- KC_PGDN, KC_ENTER, KC_SPACE
-),
-
- /* Keymap 1: Hebrew layer
- *
- * ,--------------------------------------------------. ,--------------------------------------------------.
- * | | | | | | | | | | | | | | | |
- * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | | | | | | | | | | | | | | | |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | | | | | |------| |------| | | | | | |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | | | | | | | | | | | | | | |
- * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * | | | | | | | | | | | |
- * `----------------------------------' `----------------------------------'
- * ,-------------. ,-------------.
- * | | | | | |
- * ,------|------|------| |------+------+------.
- * | | | | | | | |
- * | | |------| |------| | |
- * | | | | | | | |
- * `--------------------' `--------------------'
- */
-[1] = LAYOUT_ergodox(
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_W, KC_QUOTE, KC_SLASH, KC_R, KC_T, KC_TRNS,
- KC_TRNS, KC_A, KC_S, KC_D, KC_F, KC_G,
- KC_TRNS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS,
- KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS,
-
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_Y, KC_U, KC_E, KC_O, KC_P, KC_TRNS,
- KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_TRNS,
- KC_TRNS, KC_N, KC_M, KC_COMMA, KC_DOT, KC_I, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS,
- KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS
-),
-
-/* Keymap 2: Arrows ,Mouse Navigation and F Layer
- *
- * ,--------------------------------------------------. ,--------------------------------------------------.
- * | | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | |
- * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | | | | MsUp | | | | | F11 | | | UP | | | |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | |MsLeft|MsDown|MsRght| |------| |------| | LEFT | DOWN | RIGHT| | |
- * |--------+------+------+------+------+------| | | F12 |------+------+------+------+------+--------|
- * | | | | | | | | | | | | | | | |
- * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * | | | | | | | Lclk | Rclk | | | |
- * `----------------------------------' `----------------------------------'
- * ,-------------. ,-------------.
- * | | | | | |
- * ,------|------|------| |------+------+------.
- * | | | | | | | |
- * | | |------| |------| | |
- * | | | | | | | |
- * `--------------------' `--------------------'
- */
-[2] = LAYOUT_ergodox(
- KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_MS_UP, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_MS_LEFT, KC_MS_DOWN, KC_MS_RIGHT, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS,
- KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS,
-
- KC_TRNS, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_TRNS,
- KC_F11, KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_LEFT, KC_DOWN, KC_RIGHT, KC_TRNS, KC_TRNS,
- KC_F12, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_MS_BTN1, KC_MS_BTN2, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS,
- KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS
-),
-
- /* Keymap 3: Numpad Layer
- *
- * ,--------------------------------------------------. ,--------------------------------------------------.
- * | | | | | | | | | | | NMLK | P/ | P* | P- | |
- * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | | | | | | | | | | | 7 | 8 | 9 | P+ | |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | | | | | |------| |------| | 4 | 5 | 6 | P+ | |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | | | | | | | | | | 1 | 2 | 3 | ENTER| |
- * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * | | | | | | | 0 | 0 | . | ENTER| |
- * `----------------------------------' `----------------------------------'
- * ,-------------. ,-------------.
- * | | | | | |
- * ,------|------|------| |------+------+------.
- * | | | | | | | |
- * | | |------| |------| | |
- * | | | | | | | |
- * `--------------------' `--------------------'
- */
-[3] = LAYOUT_ergodox(
- // Left Hand
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS,KC_TRNS,
- KC_TRNS,
- KC_TRNS,KC_TRNS,KC_TRNS,
- // Right Hand
- KC_TRNS, KC_TRNS, KC_LNUM, KC_KP_SLASH, KC_KP_ASTERISK, KC_KP_MINUS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_KP_7, KC_KP_8, KC_KP_9, KC_KP_PLUS, KC_TRNS,
- KC_TRNS, KC_KP_4, KC_KP_5, KC_KP_6, KC_KP_PLUS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_KP_1, KC_KP_2, KC_KP_3, KC_ENTER, KC_TRNS,
- KC_KP_0, KC_KP_0, KC_KP_DOT, KC_ENTER, KC_TRNS,
- KC_TRNS, KC_TRNS,
- KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS
-),
-
-};
-
-void matrix_scan_user(void) {
-
- uint8_t layer = get_highest_layer(layer_state);
-
- ergodox_board_led_off();
- ergodox_right_led_1_off();
- ergodox_right_led_2_off();
- ergodox_right_led_3_off();
- switch (layer) {
- case 1:
- ergodox_right_led_1_on();
- break;
- case 2:
- ergodox_right_led_2_on();
- break;
- case 3:
- ergodox_right_led_3_on();
- default:
- break;
- }
-
-};
diff --git a/layouts/community/ergodox/twentylives_dvorak_with_hebrew/readme.md b/layouts/community/ergodox/twentylives_dvorak_with_hebrew/readme.md
deleted file mode 100644
index fbd54fd511..0000000000
--- a/layouts/community/ergodox/twentylives_dvorak_with_hebrew/readme.md
+++ /dev/null
@@ -1,10 +0,0 @@
-#Dvorak-Hebrew
-
-* This layout solves the problem of Dvorak Keyboard with OS QWERTY, which when you change to hebrew all the letters scrumble, the second layer is the Hebrew (top left button), which you can use on any computer, Plug and play.
-
-* The Hebrew layout itself solve another problem with the different locations of punctuation on Dvorak/Hebrew with few minor changes, it's based on Yuval Rabinovich's layout which you can find here : http://heboard.wordpress.com for regular QWERTY keyboards and for other operation systems.
-
-* these are only good when using a public computer or one you can't change settings on, because you need to change both keyboard layout and os layout each time you change language. A better solution is to use [hebrew-hw-dvorak](https://github.com/20lives/hebrew-hw-dvorak) as os layout.
-
-![layout image](https://i.imgur.com/wp2ouhf.png)
-![layout image](https://i.imgur.com/Z9XCgPW.png)
diff --git a/layouts/community/ergodox/videck/config.h b/layouts/community/ergodox/videck/config.h
deleted file mode 100644
index e44dcd37c8..0000000000
--- a/layouts/community/ergodox/videck/config.h
+++ /dev/null
@@ -1,8 +0,0 @@
-#pragma once
-
-#ifndef NO_DEBUG
- #define NO_DEBUG
-#endif
-#ifndef NO_PRINT
- #define NO_PRINT
-#endif
diff --git a/layouts/community/ergodox/videck/keymap.c b/layouts/community/ergodox/videck/keymap.c
deleted file mode 100644
index e0a3cec912..0000000000
--- a/layouts/community/ergodox/videck/keymap.c
+++ /dev/null
@@ -1,179 +0,0 @@
-#include <stdbool.h>
-
-#include QMK_KEYBOARD_H
-#include "action_layer.h"
-
-enum {
- BASE = 0, // Default layer
- ARROWS = 1, // Arrows and Fx keys layer
- MOUSE = 2, // Mouse movement and buttons layer
- PARENS = 3, // Parenthesis easy access layer
-
- TD_L = 0, // Tap dance index for left shift
- TD_R = 1 // Tap dance index for right shift
-};
-
-// See the videck.png image for a visualization of the layout.
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [BASE] = LAYOUT_ergodox(
- // left hand
- KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_HOME,
- KC_EQL, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_END,
- MO(PARENS), KC_A, KC_S, KC_D, KC_F, KC_G,
- TD(TD_L), KC_Z, KC_X, KC_C, KC_V, KC_B, KC_BSPC,
- KC_LCTL, KC_LALT, KC_VOLD, KC_VOLU, KC_MUTE,
- KC_ESC, KC_LGUI,
- TG(MOUSE),
- KC_SPC, KC_TAB, TG(ARROWS),
- // right hand
- KC_PGUP, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS,
- KC_PGDN, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS,
- KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
- KC_DEL, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, TD(TD_R),
- KC_LBRC, KC_RBRC, KC_EQL, KC_RALT, KC_RCTL,
- KC_APP, KC_ESC,
- KC_INS,
- KC_SCRL, KC_ENT, KC_SPC
- ),
- [ARROWS] = LAYOUT_ergodox(
- // left hand
- KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS,
- KC_NO,
- KC_TRNS, KC_TRNS, KC_TRNS,
- // right hand
- KC_TRNS, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_F12,
- KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS,
- KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS
- ),
- [MOUSE] = LAYOUT_ergodox(
- // left hand
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_BTN3, KC_TRNS,
- KC_TRNS,
- KC_BTN1, KC_BTN2, KC_NO,
- // right hand
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_MS_L, KC_MS_D, KC_MS_U, KC_MS_R, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS,
- KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS
- ),
- [PARENS] = LAYOUT_ergodox(
- // left hand
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS,
- KC_NO,
- KC_TRNS, KC_TRNS, KC_NO,
- // right hand
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LCBR, KC_RCBR, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_LPRN, KC_RPRN, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LBRC, KC_RBRC, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS,
- KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS
- )
-};
-
-typedef void (*videck_tap_dance_trigger_t) (const uint16_t kc);
-
-typedef struct
-{
- uint16_t kc1;
- uint16_t kc2;
- videck_tap_dance_trigger_t trigger;
-} videck_tap_dance_tuple_t;
-
-static void videck_tap_dance_finished (tap_dance_state_t *state, void *user_data) {
- videck_tap_dance_tuple_t *const tuple = (videck_tap_dance_tuple_t *)user_data;
-
- if (state->count == 1) {
- register_code16 (tuple->kc1);
- } else if (state->count == 2) {
- register_code16 (tuple->kc2);
- }
-}
-
-static void videck_tap_dance_reset (tap_dance_state_t *state, void *user_data) {
- videck_tap_dance_tuple_t *const tuple = (videck_tap_dance_tuple_t *)user_data;
-
- if (state->count == 1) {
- unregister_code16 (tuple->kc1);
- } else if (state->count == 2) {
- unregister_code16 (tuple->kc2);
- tuple->trigger(tuple->kc2);
- }
-}
-
-static bool caps_lock_is_on;
-
-// Toggles caps lock status.
-static void videck_caps_trigger (const uint16_t kc) {
- caps_lock_is_on ^= true;
-}
-
-#define ACTION_TAP_DANCE_DOUBLE_TRIGGER(kc1, kc2, double_trigger) { \
- .fn = { NULL, videck_tap_dance_finished, videck_tap_dance_reset }, \
- .user_data = (void *)&((videck_tap_dance_tuple_t) { kc1, kc2, double_trigger }), \
- }
-
-tap_dance_action_t tap_dance_actions[] = {
- [TD_L] = ACTION_TAP_DANCE_DOUBLE_TRIGGER(KC_LSFT, KC_CAPS, videck_caps_trigger),
- [TD_R] = ACTION_TAP_DANCE_DOUBLE_TRIGGER(KC_RSFT, KC_CAPS, videck_caps_trigger)
-};
-
-// Runs just one time when the keyboard initializes.
-void matrix_init_user(void) {
- ergodox_led_all_set(LED_BRIGHTNESS_LO);
- caps_lock_is_on = false;
-};
-
-static void indicate_using_led(const uint8_t led, const bool enabled) {
- if (enabled) {
- ergodox_right_led_on(led);
- } else {
- ergodox_right_led_off(led);
- }
-}
-
-static inline void indicate_caps_lock_state(const bool enabled) {
- indicate_using_led(1, enabled);
-}
-
-static inline void indicate_arrows_layer_state(const bool enabled) {
- indicate_using_led(2, enabled);
-}
-
-static inline void indicate_mouse_layer_state(const bool enabled) {
- indicate_using_led(3, enabled);
-}
-
-// Runs constantly in the background, in a loop.
-void matrix_scan_user(void) {
- // Check if we have shift locked.
- indicate_caps_lock_state(caps_lock_is_on);
- indicate_arrows_layer_state(IS_LAYER_ON(ARROWS));
- indicate_mouse_layer_state(IS_LAYER_ON(MOUSE));
-};
diff --git a/layouts/community/ergodox/videck/readme.md b/layouts/community/ergodox/videck/readme.md
deleted file mode 100644
index 35d20b6ce6..0000000000
--- a/layouts/community/ergodox/videck/readme.md
+++ /dev/null
@@ -1,26 +0,0 @@
-ViDeck keymap for ErgoDox
-=========================
-
-This is a QWERTY layout based on the US layout, where Vi functionality has been
-especially considered.
-
-# Features
-* Mouse movements using the Vi movement keys.
-* Vi movement keys doubling as arrow keys.
-* Shift lock using double tap.
-* A coder's modifier key for easy input of parenthesis.
-* Acess to the escape key using either thumb.
-* Reasonably accessible Scroll Lock key (useful if you, like me, want to switch
- to a non-US layout once in a while in X).
-
-# Missing keys
-* Caps Lock (shift lock is used instead).
-* Pause/Break.
-* Print Screen.
-
-# LEDs
-* Shift lock is indicated using first LED.
-* Arrow keys layer is indicated using second LED.
-* Mouse keys layer is indicated using third LED.
-
-![videck.png](https://i.imgur.com/kw0CwuB.png) \ No newline at end of file
diff --git a/layouts/community/ergodox/videck/rules.mk b/layouts/community/ergodox/videck/rules.mk
deleted file mode 100644
index 62cf81ea31..0000000000
--- a/layouts/community/ergodox/videck/rules.mk
+++ /dev/null
@@ -1,17 +0,0 @@
-AUDIO_ENABLE:=no
-BACKLIGHT_ENABLE:=no
-BLUETOOTH_ENABLE:=no
-BOOTMAGIC_ENABLE:=no
-COMMAND_ENABLE:=no
-CONSOLE_ENABLE:=no
-EXTRAKEY_ENABLE:=yes
-MIDI_ENABLE:=no
-MOUSEKEY_ENABLE:=yes
-NKRO_ENABLE:=no
-RGBLIGHT_ENABLE:=no
-SLEEP_LED_ENABLE:=no
-TAP_DANCE_ENABLE:=yes
-UNICODEMAP_ENABLE:=no
-UNICODE_ENABLE:=no
-
-
diff --git a/layouts/community/ergodox/videck/videck.json b/layouts/community/ergodox/videck/videck.json
deleted file mode 100644
index 7068cf5485..0000000000
--- a/layouts/community/ergodox/videck/videck.json
+++ /dev/null
@@ -1,443 +0,0 @@
-[
- {
- "backcolor": "#333333",
- "background": {
- "name": "PBT Black",
- "style": "background-image: url('/bg/plastic/pbt-black.png');"
- },
- "switchMount": "cherry",
- "switchBrand": "gateron",
- "switchType": "KS-3-Red"
- },
- [
- {
- "x": 3.5,
- "c": "#323232",
- "t": "#ffffff\n\n\n#ac97d8"
- },
- "#\n3\n\nF3",
- {
- "x": 10.5
- },
- "*\n8\n\nF8"
- ],
- [
- {
- "y": -0.875,
- "x": 2.5
- },
- "@\n2\n\nF2",
- {
- "x": 1
- },
- "$\n4\n\nF4",
- {
- "x": 8.5
- },
- "&\n7\n\nF7",
- {
- "x": 1,
- "t": "#ffffff\n\n\n#ac97d8\n\n\n\n#555454"
- },
- "(\n9\n\nF9"
- ],
- [
- {
- "y": -0.875,
- "x": 5.5,
- "t": "#ffffff\n\n\n#ac97d8"
- },
- "%\n5\n\nF5",
- {
- "t": "#ffffff"
- },
- "home",
- {
- "x": 4.5
- },
- "pgup",
- {
- "t": "#ffffff\n\n\n#ac97d8"
- },
- "^\n6\n\nF6"
- ],
- [
- {
- "y": -0.875,
- "t": "#ffffff",
- "w": 1.5
- },
- "~\n`",
- {
- "t": "#ffffff\n\n\n#ac97d8"
- },
- "!\n1\n\nF1",
- {
- "x": 14.5
- },
- ")\n0\n\nF10",
- {
- "w": 1.5
- },
- "_\n-\n\nF11"
- ],
- [
- {
- "y": -0.375,
- "x": 3.5,
- "t": "#ffffff"
- },
- "E",
- {
- "x": 10.5
- },
- "I"
- ],
- [
- {
- "y": -0.875,
- "x": 2.5
- },
- "W",
- {
- "x": 1
- },
- "R",
- {
- "x": 8.5
- },
- "U",
- {
- "x": 1,
- "t": "#ffffff\n\n\n\n\n\n\n\n\n#f8d615"
- },
- "O\n\n\n\n\n\n\n\n\n{"
- ],
- [
- {
- "y": -0.875,
- "x": 5.5,
- "t": "#ffffff"
- },
- "T",
- {
- "h": 1.5
- },
- "end",
- {
- "x": 4.5,
- "h": 1.5
- },
- "pgdn",
- "Y"
- ],
- [
- {
- "y": -0.875,
- "w": 1.5
- },
- "+\n=",
- "Q",
- {
- "x": 14.5,
- "t": "#ffffff\n\n\n\n\n\n\n\n\n#f8d615"
- },
- "P\n\n\n\n\n\n\n\n\n}",
- {
- "t": "#ffffff\n\n\n#ac97d8",
- "w": 1.5
- },
- "|\n\\\n\nF12"
- ],
- [
- {
- "y": -0.375,
- "x": 3.5,
- "t": "#ffffff"
- },
- "D",
- {
- "x": 10.5,
- "t": "#ffffff\n\n#5eb1e7\n#ac97d8"
- },
- "K\n\n<i class='fa fa-caret-up'></i>\n<i class='kb kb-Arrows-Up'></i>"
- ],
- [
- {
- "y": -0.875,
- "x": 2.5,
- "t": "#ffffff"
- },
- "S",
- {
- "x": 1,
- "n": true
- },
- "F",
- {
- "x": 8.5,
- "t": "#ffffff\n\n#5eb1e7\n#ac97d8",
- "n": true
- },
- "J\n\n<i class='fa fa-caret-down'></i>\n<i class='kb kb-Arrows-Down'></i>",
- {
- "x": 1,
- "t": "#ffffff\n\n#5eb1e7\n#ac97d8\n\n\n\n\n\n#f8d615"
- },
- "L\n\n<i class='fa fa-caret-right'></i>\n<i class='kb kb-Arrows-Right'></i>\n\n\n\n\n\n("
- ],
- [
- {
- "y": -0.875,
- "x": 5.5,
- "t": "#ffffff"
- },
- "G",
- {
- "x": 6.5,
- "t": "#ffffff\n\n#5eb1e7\n#ac97d8"
- },
- "H\n\n<i class='fa fa-caret-left'></i>\n<i class='kb kb-Arrows-Left'></i>"
- ],
- [
- {
- "y": -0.875,
- "t": "#f8d615",
- "a": 6,
- "w": 1.5
- },
- "( ) [ ] { }",
- {
- "t": "#ffffff",
- "a": 4
- },
- "A",
- {
- "x": 14.5,
- "t": "#ffffff\n\n\n\n\n\n\n#60605b\n\n#f8d615"
- },
- ":\n;\n\n\n\n\n\n&Ouml;\n\n)",
- {
- "t": "#ffffff\n\n\n\n\n\n\n#60605b",
- "w": 1.5
- },
- "\"\n'\n\n\n\n\n\n&Auml;"
- ],
- [
- {
- "y": -0.625,
- "x": 6.5,
- "t": "#ffffff",
- "h": 1.5
- },
- "<i class='kb kb-Unicode-BackSpace-DeleteLeft-Big'></i>",
- {
- "x": 4.5,
- "h": 1.5
- },
- "<i class='kb kb-Unicode-DeleteRight-Big'></i>"
- ],
- [
- {
- "y": -0.75,
- "x": 3.5
- },
- "C",
- {
- "x": 10.5
- },
- "<\n,"
- ],
- [
- {
- "y": -0.875,
- "x": 2.5
- },
- "X",
- {
- "x": 1
- },
- "V",
- {
- "x": 8.5
- },
- "M",
- {
- "x": 1,
- "t": "#ffffff\n\n\n\n\n\n\n\n\n#f8d615"
- },
- ">\n.\n\n\n\n\n\n\n\n["
- ],
- [
- {
- "y": -0.875,
- "x": 5.5,
- "t": "#ffffff"
- },
- "B",
- {
- "x": 6.5
- },
- "N"
- ],
- [
- {
- "y": -0.875,
- "t": "#ffffff\n\n#f67f00",
- "a": 6,
- "fa": [
- 5
- ],
- "w": 1.5
- },
- "&uArr;\n\n2-tap<br/>locks",
- {
- "t": "#ffffff",
- "a": 4,
- "f": 3
- },
- "Z",
- {
- "x": 14.5,
- "t": "#ffffff\n\n\n\n\n\n\n\n\n#f8d615",
- "f": 3
- },
- "?\n/\n\n\n\n\n\n\n\n]",
- {
- "t": "#ffffff\n\n#f67f00",
- "a": 6,
- "f": 3,
- "w": 1.5
- },
- "&uArr;\n\n2-tap<br/>locks"
- ],
- [
- {
- "y": -0.375,
- "x": 3.5,
- "t": "#ffffff",
- "a": 4
- },
- "\n<i class='kb kb-Multimedia-Volume-Up-2'></i>",
- {
- "x": 10.5,
- "f": 3
- },
- "}\n]"
- ],
- [
- {
- "y": -0.875,
- "x": 2.5
- },
- "\n<i class='kb kb-Multimedia-Volume-Down-1'></i>",
- {
- "x": 1
- },
- "\n<i class='kb kb-Multimedia-Mute-1'></i>",
- {
- "x": 8.5,
- "t": "#ffffff\n\n\n\n\n\n\n#60605b",
- "f": 3
- },
- "{\n[\n\n\n\n\n\n&Aring;",
- {
- "x": 1,
- "t": "#ffffff",
- "f": 3
- },
- "+\n="
- ],
- [
- {
- "y": -0.75,
- "x": 0.5,
- "f": 3
- },
- "ctrl",
- {
- "f": 3
- },
- "alt",
- {
- "x": 14.5,
- "f": 3
- },
- "altgr",
- {
- "f": 3
- },
- "ctrl"
- ],
- [
- {
- "r": 30,
- "rx": 6.5,
- "ry": 4.25,
- "y": -1,
- "x": 1,
- "t": "#ffffff\n\n\n\n\n\n\n\n\n\n#5eb1e7",
- "f": 3
- },
- "esc\n\n\n\n\n\n\n\n\n\n<i class='fa fa-mouse-pointer'></i>M",
- {
- "t": "#ffffff",
- "f": 7
- },
- "<i class='kb kb-logo-linux-tux'></i>"
- ],
- [
- {
- "t": "#ffffff\n\n\n\n\n\n\n\n\n\n#5eb1e7",
- "f": 3,
- "h": 2
- },
- "space\n\n\n\n\n\n\n\n\n\n<i class='fa fa-mouse-pointer'></i>L",
- {
- "h": 2
- },
- "<i class='kb kb-Tab-1'></i>\n\n\n\n\n\n\n\n\n\n<i class='fa fa-mouse-pointer'></i>R",
- {
- "t": "#5eb1e7"
- },
- "<i class='fa fa-mouse-pointer'></i>"
- ],
- [
- {
- "x": 2,
- "t": "#ac97d8"
- },
- "<i class='fa fa-arrows'></i>"
- ],
- [
- {
- "r": -30,
- "rx": 13,
- "y": -1,
- "x": -3,
- "t": "#ffffff"
- },
- "<i class='kb kb-Hamburger-Menu'></i>",
- "esc"
- ],
- [
- {
- "x": -3
- },
- "ins",
- {
- "h": 2
- },
- "<i class='kb kb-Return-2'></i>",
- {
- "h": 2
- },
- "space"
- ],
- [
- {
- "x": -3
- },
- "scroll<br/>lock"
- ]
-] \ No newline at end of file
diff --git a/layouts/community/ergodox/workman_osx_mdw/keymap.c b/layouts/community/ergodox/workman_osx_mdw/keymap.c
deleted file mode 100644
index 5b2c7d718e..0000000000
--- a/layouts/community/ergodox/workman_osx_mdw/keymap.c
+++ /dev/null
@@ -1,409 +0,0 @@
-#include QMK_KEYBOARD_H
-
-// readme
-// This keyboard layout is based on the [Workman Dead layout](https://github.com/ojbucao/Workman/tree/master/mac#workman-dead-for-programmers), which uses the comma as a dead key to trigger a second layer.
-// Since I have more keys at my disposal on the ErgoDox, I moved the dead key to the bottom right. There are still a lot of
-// blanks so still discovering what I like.
-// If you aren't familiar with a dead key, the idea is that you tap the dead key which switches the layout. the next key you hit
-// triggers the key you pressed AND switches the layout back to the original. For now I do this with a super kludgey macro and I
-// look forward to learning about a more elegant way to do the same thing. Until then, this will have to do.
-
-enum layer_names {
- BASE, // default layer
- SYMB, // symbols
- MDIA, // media keys
- DEAD // dead version of the symbols layer
-};
-
-enum custom_keycodes {
- M_100 = SAFE_RANGE,
- M_101,
- M_102,
- M_103,
- M_104,
- M_105,
- M_106,
- M_107,
- M_108,
- M_109,
- M_110,
- M_111,
- M_112,
- M_113,
- M_114,
- M_115,
- M_116,
- M_117,
- M_118,
- M_119,
- M_120,
- M_121,
- M_122,
- M_123,
- M_124,
- M_125,
- M_126,
- M_127,
- M_128,
- M_129,
- M_130
-};
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-/* Keymap 0: Basic layer
- *
- * ,--------------------------------------------------. ,--------------------------------------------------.
- * | ` | 1 | 2 | 3 | 4 | 5 | LEFT | | RIGHT| 6 | 7 | 8 | 9 | 0 | - |
- * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | Tab | Q | D | R | W | B | L1 | | L1 | J | F | U | P | ; | |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | Hyper | A | S | H | T | G |------| |------| Y | N | E | O | I | ' |
- * |--------+------+------+------+------+------| | | Meh |------+------+------+------+------+--------|
- * | LShift | Z | X | M | C | V | | | | K | L | , | . |//Ctrl| RShift |
- * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * | | | CTRL | OPT | CMD | | Left | Down | Up | Right| L3 |
- * `----------------------------------' `----------------------------------'
- * ,-------------. ,-------------.
- * | | | | | |
- * ,------|------|------| |------+--------+------.
- * | | | Home | | PgUp | | |
- * |Bckspc| Space|------| |------| Space |Enter |
- * | | | End | | PgDn | | |
- * `--------------------' `----------------------'
- */
-// If it accepts an argument (i.e, is a function), it doesn't need KC_.
-// Otherwise, it needs KC_*
-[BASE] = LAYOUT_ergodox( // layer 0 : default
- // left hand
- KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_LEFT,
- KC_TAB, KC_Q, KC_D, KC_R, KC_W, KC_B, TG(SYMB),
- ALL_T(KC_ESC), KC_A, KC_S, KC_H, KC_T, KC_G,
- KC_LSFT, KC_Z, KC_X, KC_M, KC_C, KC_V, KC_NO,
- KC_NO, KC_NO, KC_LCTL,KC_LALT,KC_LGUI,
- KC_NO, KC_NO,
- KC_HOME,
- KC_BSPC,KC_SPC,KC_END,
- // right hand
- KC_RGHT, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS,
- TG(SYMB), KC_J, KC_F, KC_U, KC_P, KC_SCLN, KC_BSLS,
- KC_Y, KC_N, KC_E, KC_O, KC_I, KC_QUOT,
- MEH_T(KC_NO),KC_K, KC_L, KC_COMM,KC_DOT, CTL_T(KC_SLSH), KC_RSFT,
- KC_LEFT,KC_DOWN,KC_UP, KC_RGHT, TG(DEAD),
- KC_NO, KC_NO,
- KC_PGUP,
- KC_PGDN,KC_SPC,KC_ENT
- ),
-/* Keymap 1: Symbol Layer
- *
- * ,--------------------------------------------------. ,--------------------------------------------------.
- * | | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | F11 |
- * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | | % | & | ? | + | @ | | | | $ | _ | [ | ] | ! | F12 |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | / | ( | = | 0 | { |------| |------| } | 1 | * | ) | - | " |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | 6 | 7 | 8 | 9 | | | | | | \ | 2 | 3 | 4 | 5 | |
- * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * | | | | | | | | | | | |
- * `----------------------------------' `----------------------------------'
- * ,-------------. ,-------------.
- * | | | | | |
- * ,------|------|------| |------+------+------.
- * | | | | | | | |
- * | | |------| |------| | |
- * | | | | | | | |
- * `--------------------' `--------------------'
- */
-// SYMBOLS
-[SYMB] = LAYOUT_ergodox(
- // left hand
- KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_TRNS,
- KC_TRNS, KC_PERC, KC_AMPR, LSFT(KC_SLSH), LSFT(KC_EQL), KC_AT, KC_TRNS,
- KC_TRNS, KC_SLSH, KC_LPRN, KC_EQL, KC_0, LSFT(KC_LBRC),
- KC_TRNS, KC_6, KC_7, KC_8, KC_9, KC_PIPE, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS,KC_TRNS,
- KC_TRNS,
- KC_TRNS,KC_TRNS,KC_TRNS,
- // right hand
- KC_TRNS, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,
- KC_TRNS, KC_DLR, KC_UNDERSCORE, KC_LBRC, KC_RBRC, KC_EXLM, KC_F12,
- KC_RCBR, KC_1, KC_ASTR, KC_RPRN, KC_MINS, KC_QUOT,
- KC_TRNS, KC_SLSH, KC_2, KC_3, KC_4, KC_5, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS,
- KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS
-),
-/* Keymap 2: Media and mouse keys
- *
- * ,--------------------------------------------------. ,--------------------------------------------------.
- * | | | | | | | | | | | | | | | |
- * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | | | | MsUp | | | | | | | | | | | |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | |MsLeft|MsDown|MsRght| |------| |------| | | | | | Play |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | | | | | | | | | | | Prev | Next | | |
- * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * | | | | Lclk | Rclk | |VolUp |VolDn | Mute | | |
- * `----------------------------------' `----------------------------------'
- * ,-------------. ,-------------.
- * | | | | | |
- * ,------|------|------| |------+------+------.
- * | | | | | | |Brwser|
- * | | |------| |------| |Back |
- * | | | | | | | |
- * `--------------------' `--------------------'
- */
-// MEDIA AND MOUSE
-[MDIA] = LAYOUT_ergodox(
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_MS_U, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_R, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_BTN1, KC_BTN2,
- KC_TRNS, KC_TRNS,
- KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS,
- // right hand
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_MPRV, KC_MNXT, KC_TRNS, KC_TRNS,
- KC_VOLU, KC_VOLD, KC_MUTE, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS,
- KC_TRNS,
- KC_TRNS, KC_TRNS, KC_WBAK
-),
-/* Keymap 4: Dead Symbol Layer
- *
- * ,--------------------------------------------------. ,--------------------------------------------------.
- * | | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | F11 |
- * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | | % | & | ? | + | @ | | | | $ | _ | [ | ] | ! | F12 |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | / | ( | = | 0 | { |------| |------| } | 1 | * | ) | - | " |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | 6 | 7 | 8 | 9 | | | | | | \ | 2 | 3 | 4 | 5 | |
- * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * | | | | | | | | | | | |
- * `----------------------------------' `----------------------------------'
- * ,-------------. ,-------------.
- * | | | | | |
- * ,------|------|------| |------+------+------.
- * | | | | | | | |
- * | | |------| |------| | |
- * | | | | | | | |
- * `--------------------' `--------------------'
- */
-// SYMBOLS
-[DEAD] = LAYOUT_ergodox(
- // left hand
- KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_TRNS,
- KC_TRNS, M_100, M_101, M_102, M_103, M_104, KC_TRNS,
- KC_TRNS, M_109, M_110, M_111, M_112, M_113,
- KC_TRNS, M_120, M_121, M_122, M_123, M_124, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS,KC_TRNS,
- KC_TRNS,
- KC_TRNS,KC_TRNS,KC_TRNS,
- // right hand
- KC_TRNS, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,
- KC_TRNS, M_105, M_106, M_107, M_108, M_130, KC_F12,
- M_114, M_115, M_116, M_117, M_118, M_119,
- KC_TRNS, M_125, M_126, M_127, M_128, M_129, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS,
- KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS
-),
-};
-
-void tap_dead_code(uint16_t keycode) {
- layer_clear();
- tap_code16(keycode);
- layer_on(DEAD);
-}
-
-bool process_record_user(uint16_t keycode, keyrecord_t *record) {
- switch (keycode) {
- case M_100:
- if (record->event.pressed) {
- tap_dead_code(S(KC_5));
- }
- return false;
- case M_101:
- if (record->event.pressed) {
- tap_dead_code(S(KC_7));
- }
- return false;
- case M_102:
- if (record->event.pressed) {
- tap_dead_code(S(KC_SLSH));
- }
- return false;
- case M_103:
- if (record->event.pressed) {
- tap_dead_code(S(KC_EQL));
- }
- return false;
- case M_104:
- if (record->event.pressed) {
- tap_dead_code(S(KC_2));
- }
- return false;
- case M_105:
- if (record->event.pressed) {
- tap_dead_code(S(KC_4));
- }
- return false;
- case M_106:
- if (record->event.pressed) {
- tap_dead_code(S(KC_MINS));
- }
- return false;
- case M_107:
- if (record->event.pressed) {
- tap_dead_code(KC_LBRC);
- }
- return false;
- case M_108:
- if (record->event.pressed) {
- tap_dead_code(KC_RBRC);
- }
- return false;
- case M_109:
- if (record->event.pressed) {
- tap_dead_code(KC_SLSH);
- }
- return false;
- case M_110:
- if (record->event.pressed) {
- tap_dead_code(S(KC_9));
- }
- return false;
- case M_111:
- if (record->event.pressed) {
- tap_dead_code(KC_EQL);
- }
- return false;
- case M_112:
- if (record->event.pressed) {
- tap_dead_code(KC_0);
- }
- return false;
- case M_113:
- if (record->event.pressed) {
- tap_dead_code(S(KC_LBRC));
- }
- return false;
- case M_114:
- if (record->event.pressed) {
- tap_dead_code(S(KC_RBRC));
- }
- return false;
- case M_115:
- if (record->event.pressed) {
- tap_dead_code(KC_1);
- }
- return false;
- case M_116:
- if (record->event.pressed) {
- tap_dead_code(S(KC_8));
- }
- return false;
- case M_117:
- if (record->event.pressed) {
- tap_dead_code(S(KC_0));
- }
- return false;
- case M_118:
- if (record->event.pressed) {
- tap_dead_code(KC_MINS);
- }
- return false;
- case M_119:
- if (record->event.pressed) {
- tap_dead_code(S(KC_QUOT));
- }
- return false;
- case M_120:
- if (record->event.pressed) {
- tap_dead_code(KC_6);
- }
- return false;
- case M_121:
- if (record->event.pressed) {
- tap_dead_code(KC_7);
- }
- return false;
- case M_122:
- if (record->event.pressed) {
- tap_dead_code(KC_8);
- }
- return false;
- case M_123:
- if (record->event.pressed) {
- tap_dead_code(KC_9);
- }
- return false;
- case M_124:
- if (record->event.pressed) {
- tap_dead_code(S(KC_BSLS));
- }
- return false;
- case M_125:
- if (record->event.pressed) {
- tap_dead_code(KC_BSLS);
- }
- return false;
- case M_126:
- if (record->event.pressed) {
- tap_dead_code(KC_2);
- }
- return false;
- case M_127:
- if (record->event.pressed) {
- tap_dead_code(KC_3);
- }
- return false;
- case M_128:
- if (record->event.pressed) {
- tap_dead_code(KC_4);
- }
- return false;
- case M_129:
- if (record->event.pressed) {
- tap_dead_code(KC_5);
- }
- return false;
- case M_130:
- if (record->event.pressed) {
- tap_dead_code(S(KC_1));
- }
- return false;
- }
- return true;
-}
-
-// Runs constantly in the background, in a loop.
-void matrix_scan_user(void) {
- ergodox_board_led_off();
- ergodox_right_led_1_off();
- ergodox_right_led_2_off();
- ergodox_right_led_3_off();
-
- switch (get_highest_layer(layer_state)) {
- // TODO: Make this relevant to the ErgoDox EZ.
- case 1:
- ergodox_right_led_1_on();
- break;
- case 2:
- ergodox_right_led_2_on();
- break;
- default:
- // none
- break;
- }
-}
diff --git a/layouts/community/ergodox/xyverz/keymap.c b/layouts/community/ergodox/xyverz/keymap.c
deleted file mode 100644
index 88a8ad2cc3..0000000000
--- a/layouts/community/ergodox/xyverz/keymap.c
+++ /dev/null
@@ -1,268 +0,0 @@
-/*
- * About this keymap:
- *
- * The Dvorak layout shown here stems from my early Kinesis years, using the Contour PS/2 with a Dvorak
- * software layout. Because of this, the RBRC and LBRC were on opposite sides of the board in the corner
- * keys. When I originally set up this keymap, I'd decided to continue using this layout with my ErgoDox.
- * I've since modified my layout to be more effective for me and to more closely match my other ortho
- * keyboard layouts
- *
- * The QWERTY layout shown here is based entirely on the Kinesis Advantage layout, with the additional
- * keys as shown in the diagrams. The Colemak layout is merely an adaptation of that.
- *
- * I've enabled persistent keymaps for Qwerty, Dvorak and Colemak layers, similar to the default Planck
- * layouts.
- *
- * What's New:
- *
- * I've overhauled this Dvorak layout a bit to more match what I've got on my other Ortho boards. For
- * some keys, I'm moving away from my old Kinesis keymap and adding the brackets and braces to the
- * inner column vertical keys. I figure this will help me have better ease of use. In this update, I
- * have also removed the keypad layer since I no longer use that at all, and have remapped the MEDIA
- * layer a bit.
- *
- */
-
-#include QMK_KEYBOARD_H
-
-enum layer_names {
- _DVORAK,
- _QWERTY,
- _COLEMAK,
- _MEDIA,
-};
-
-enum custom_keycodes { DVORAK = SAFE_RANGE, QWERTY, COLEMAK };
-
-// Aliases to make the keymap more uniform
-#define GUI_END GUI_T(KC_END)
-#define MEDIA MO(_MEDIA)
-#define MACLOCK LGUI(LCTL(KC_Q))
-
-// clang-format off
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
-/* Layer 0 : Dvorak
- * ,--------------------------------------------------. ,--------------------------------------------------.
- * | ESC | 1 | 2 | 3 | 4 | 5 | | | | 6 | 7 | 8 | 9 | 0 | ~ |
- * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | Tab | ' | , | . | P | Y | | | | F | G | C | R | L | \ |
- * |--------+------+------+------+------+------| [ | | ] |------+------+------+------+------+--------|
- * | CapsLk | A | O | E | U | I |------| |------| D | H | T | N | S | - |
- * |--------+------+------+------+------+------| { | | } |------+------+------+------+------+--------|
- * | LShift | ; | Q | J | K | X | | | | B | M | W | V | Z | RShift |
- * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * |MEDIA | ` | ~ | Left | Rght | | Up | Dn | / | = | MEDIA|
- * `----------------------------------' `----------------------------------'
- * ,-------------. ,-------------.
- * | LCTL | LALT | | RALT | RCTL |
- * ,------|------|------| |------+------+------.
- * | | | Home | | PgUp | | |
- * | BkSp | Del |------| |------| Enter| Space|
- * | | | End | | PgDn | | |
- * `--------------------' `--------------------'
- *
- */
-
-[_DVORAK] = LAYOUT_ergodox(
- // left hand
- KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, XXXXXXX,
- KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_LBRC,
- KC_CAPS, KC_A, KC_O, KC_E, KC_U, KC_I,
- KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_LCBR,
- MEDIA, KC_GRV, KC_TILD, KC_LEFT, KC_RGHT,
- // left thumb
- KC_LCTL, KC_LALT,
- KC_HOME,
- KC_BSPC, KC_DEL, GUI_END,
- // right hand
- XXXXXXX, KC_6, KC_7, KC_8, KC_9, KC_0, KC_SLSH,
- KC_RBRC, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSLS,
- KC_D, KC_H, KC_T, KC_N, KC_S, KC_MINS,
- KC_RCBR, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_RSFT,
- KC_UP, KC_DOWN, KC_SLSH, KC_EQL, MEDIA,
- // right thumb
- KC_RGUI, KC_RCTL,
- KC_PGUP,
- KC_PGDN, KC_ENT, KC_SPC
- ),
-
-/* Layer 1: QWERTY
- * ,--------------------------------------------------. ,--------------------------------------------------.
- * | ESC | 1 | 2 | 3 | 4 | 5 | | | | 6 | 7 | 8 | 9 | 0 | - |
- * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | Tab | Q | W | E | R | T | | | | Y | U | I | O | P | \ |
- * |--------+------+------+------+------+------| [ | | ] |------+------+------+------+------+--------|
- * | CapsLk | A | S | D | F | G |------| |------| H | J | K | L | ; | ' |
- * |--------+------+------+------+------+------| { | | } |------+------+------+------+------+--------|
- * | LShift | Z | X | C | V | B | | | | N | M | , | . | / | RShift |
- * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * |MEDIA | ` | = | Left | Rght | | Up | Dn | [ | ] | MEDIA|
- * `----------------------------------' `----------------------------------'
- * ,-------------. ,-------------.
- * | LCTL | LALT | | RGUI | RCTL |
- * ,------|------|------| |------+------+------.
- * | | | Home | | PgUp | | |
- * | BkSp | Del |------| |------| Enter| Space|
- * | | | End | | PgDn | | |
- * `--------------------' `--------------------'
- */
-[_QWERTY] = LAYOUT_ergodox(
- // left hand
- KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, XXXXXXX,
- KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_LBRC,
- KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G,
- KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_LCBR,
- MEDIA, KC_GRV, KC_EQL, KC_LEFT, KC_RGHT,
- // left thumb
- KC_LCTL, KC_LALT,
- KC_HOME,
- KC_BSPC, KC_DEL, KC_END,
- // right hand
- XXXXXXX, KC_6, KC_7, KC_8, KC_9, KC_0, KC_SLSH,
- KC_RBRC, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS,
- KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
- KC_RCBR, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,
- KC_UP, KC_DOWN, KC_LBRC, KC_RBRC, MEDIA,
- // right thumb
- KC_RGUI, KC_RCTL,
- KC_PGUP,
- KC_PGDN, KC_ENT, KC_SPC
- ),
-
-
-/* Layer 2 : Colemak
- * ,--------------------------------------------------. ,--------------------------------------------------.
- * | ESC | 1 | 2 | 3 | 4 | 5 | | | | 6 | 7 | 8 | 9 | 0 | - |
- * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | Tab | Q | W | F | P | G | | | | J | L | U | Y | ; | \ |
- * |--------+------+------+------+------+------| [ | | ] |------+------+------+------+------+--------|
- * | BkSpc | A | R | S | T | D |------| |------| H | N | E | I | O | ' |
- * |--------+------+------+------+------+------| { | | } |------+------+------+------+------+--------|
- * | LShift | Z | X | C | V | B | | | | K | M | , | . | / | RShift |
- * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * | MEDIA| ` | = | Left | Rght | | Up | Dn | [ | ] | MEDIA|
- * `----------------------------------' `----------------------------------'
- * ,-------------. ,-------------.
- * | LCTL | LALT | | RGUI | RCTL |
- * ,------|------|------| |------+------+------.
- * | | | Home | | PgUp | | |
- * | BkSp | Del |------| |------| Enter| Space|
- * | | | End | | PgDn | | |
- * `--------------------' `--------------------'
- */
-[_COLEMAK] = LAYOUT_ergodox(
- // left hand
- KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, XXXXXXX,
- KC_DEL, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_LBRC,
- KC_BSPC, KC_A, KC_R, KC_S, KC_T, KC_D,
- KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_LCBR,
- MEDIA, KC_GRV, KC_EQL, KC_LEFT, KC_RGHT,
- // left thumb
- KC_LCTL, KC_LALT,
- KC_HOME,
- KC_BSPC, KC_DEL, KC_END,
- // right hand
- XXXXXXX, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS,
- KC_RBRC, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSLS,
- KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT,
- KC_RCBR, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,
- KC_UP, KC_DOWN, KC_LBRC, KC_RBRC, MEDIA,
- // right thumb
- KC_RGUI, KC_RCTL,
- KC_PGUP,
- KC_PGDN, KC_ENT, KC_SPC
- ),
-
-
-/* Layer 3 : Media layer
- * ,--------------------------------------------------. ,--------------------------------------------------.
- * | F11 | F1 | F2 | F3 | F4 | F5 |TEENSY| | | F6 | F7 | F8 | F9 | F10 | F11 |
- * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | | | | | | | | | | | PrSc | ScLk | Paus | | |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | CapsLk | | Mute | Vol- | Vol+ | |------| |------| |Dvorak|Qwerty|Colmak| | |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | Stop | Prev | Play | Next | Sel | | | | | | | | | |
- * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * | | | | | | | | | | | |
- * `----------------------------------' `----------------------------------'
- * ,-------------. ,-------------.
- * | |MacLck| |MacLck| |
- * ,------|------|------| |------+------+------.
- * | | | | | | | |
- * | | |------| |------| | |
- * | | | | | | | |
- * `--------------------' `--------------------'
- */
-[_MEDIA] = LAYOUT_ergodox(
- // left hand
- KC_F11, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, QK_BOOT,
- _______, _______, _______, _______, _______, _______, _______,
- _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______,
- KC_CAPS, KC_MSTP, KC_MPRV, KC_MPLY, KC_MNXT, KC_MSEL, _______,
- _______, _______, _______, _______, _______,
- _______, MACLOCK,
- _______,
- _______, _______, _______,
- // right hand
- _______, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F12,
- _______, _______, KC_PSCR, KC_SCRL, KC_PAUS, _______, _______,
- _______, DVORAK, QWERTY, COLEMAK, _______, _______,
- _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______,
- MACLOCK, _______,
- _______,
- _______, _______, KC_INS
- ),
-
-};
-
-// clang-format on
-
-bool process_record_user(uint16_t keycode, keyrecord_t *record) {
- if (record->event.pressed) {
- switch (keycode) {
- case DVORAK:
- set_single_persistent_default_layer(_DVORAK);
- return false;
- case QWERTY:
- set_single_persistent_default_layer(_QWERTY);
- return false;
- case COLEMAK:
- set_single_persistent_default_layer(_COLEMAK);
- return false;
- }
- }
- return true;
-};
-
-// Runs just one time when the keyboard initializes.
-void matrix_init_user(void) {
-
-};
-
-// Runs constantly in the background, in a loop.
-void matrix_scan_user(void) {
-
- uint8_t layer = get_highest_layer(layer_state);
-
- ergodox_board_led_off();
- ergodox_right_led_1_off();
- ergodox_right_led_2_off();
- ergodox_right_led_3_off();
- switch (layer) {
- // TODO: Make this relevant to the ErgoDox EZ.
- case 1:
- ergodox_right_led_1_on();
- break;
- case 2:
- ergodox_right_led_2_on();
- break;
- default:
- // none
- break;
- }
-
-};
diff --git a/layouts/community/ergodox/xyverz/readme.md b/layouts/community/ergodox/xyverz/readme.md
deleted file mode 100644
index 51315803b6..0000000000
--- a/layouts/community/ergodox/xyverz/readme.md
+++ /dev/null
@@ -1,103 +0,0 @@
-# Xyverz's ErgoDox EZ Keymap
-
-## About this keymap:
-
-The Dvorak layout shown here stems from my early Kinesis years, using the Contour PS/2 with a Dvorak software layout. Because of this, the RBRC and LBRC were on opposite sides of the board in the corner keys. When I originally set up this keymap, I had decided to continue using this layout with my ErgoDox. I've since modified my layout to be more effective for me and to more closely match my other ortholinear keyboard layouts
-
-The QWERTY layout shown here is based entirely on the Kinesis Advantage layout, with the additional keys as shown in the diagrams. The Colemak layout is merely an adaptation of that.
-
-I've enabled persistent keymaps for Qwerty, Dvorak and Colemak layers, similar to the default Planck layouts.
-
-## What's New:
-
-* I've overhauled this Dvorak layout a bit to more match what I've got on my other Ortho boards. For some keys, I'm moving away from my old Kinesis keymap and adding the brackets and braces to the inner column vertical keys. I figure this will help me have better ease of use. In this update, I have also removed the keypad layer since I no longer use that at all, and have remapped the MEDIA layer a bit.
-
-## Still to do:
-
- * Need to figure out a better position for the ESC key.
- * Come up with a function for the empty keys shown in the alpha layers below.
- * Fix the CapsLock, NumLock, and ScrLck LEDs.
-
-### Layer 0: Dvorak layer
-
- ,--------------------------------------------------. ,--------------------------------------------------.
- | ESC | 1 | 2 | 3 | 4 | 5 | | | | 6 | 7 | 8 | 9 | 0 | ~ |
- |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- | Tab | ' | , | . | P | Y | | | | F | G | C | R | L | \ |
- |--------+------+------+------+------+------| [ | | ] |------+------+------+------+------+--------|
- | CapsLk | A | O | E | U | I |------| |------| D | H | T | N | S | - |
- |--------+------+------+------+------+------| { | | } |------+------+------+------+------+--------|
- | LShift | ; | Q | J | K | X | | | | B | M | W | V | Z | RShift |
- `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- |MEDIA | ` | ~ | Left | Rght | | Up | Dn | / | = | MEDIA|
- `----------------------------------' `----------------------------------'
- ,-------------. ,-------------.
- | LCTL | LALT | | RGUI | RCTL |
- ,------|------|------| |------+------+------.
- | | | Home | | PgUp | | |
- | BkSp | Del |------| |------| Enter| Space|
- | | | End | | PgDn | | |
- `--------------------' `--------------------'
-
-### Layer 1: QWERTY layer
-
- ,--------------------------------------------------. ,--------------------------------------------------.
- | ESC | 1 | 2 | 3 | 4 | 5 | | | | 6 | 7 | 8 | 9 | 0 | - |
- |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- | Tab | Q | W | E | R | T | | | | Y | U | I | O | P | \ |
- |--------+------+------+------+------+------| [ | | ] |------+------+------+------+------+--------|
- | CapsLk | A | S | D | F | G |------| |------| H | J | K | L | ; | ' |
- |--------+------+------+------+------+------| { | | } |------+------+------+------+------+--------|
- | LShift | Z | X | C | V | B | | | | N | M | , | . | / | RShift |
- `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- |MEDIA | ` | = | Left | Rght | | Up | Dn | [ | ] | MEDIA|
- `----------------------------------' `----------------------------------'
- ,-------------. ,-------------.
- | LCTL | LALT | | RGUI | RCTL |
- ,------|------|------| |------+------+------.
- | | | Home | | PgUp | | |
- | BkSp | Del |------| |------| Enter| Space|
- | | | End | | PgDn | | |
- `--------------------' `--------------------'
-
-### Keymap 2: Colemak layer
-
- ,--------------------------------------------------. ,--------------------------------------------------.
- | ESC | 1 | 2 | 3 | 4 | 5 | | | | 6 | 7 | 8 | 9 | 0 | - |
- |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- | Tab | Q | W | F | P | G | | | | J | L | U | Y | ; | \ |
- |--------+------+------+------+------+------| [ | | ] |------+------+------+------+------+--------|
- | BkSpc | A | R | S | T | D |------| |------| H | N | E | I | O | ' |
- |--------+------+------+------+------+------| { | | } |------+------+------+------+------+--------|
- | LShift | Z | X | C | V | B | | | | K | M | , | . | / | RShift |
- `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- | MEDIA| ` | = | Left | Rght | | Up | Dn | [ | ] | MEDIA|
- `----------------------------------' `----------------------------------'
- ,-------------. ,-------------.
- | LCTL | LALT | | RGUI | RCTL |
- ,------|------|------| |------+------+------.
- | | | Home | | PgUp | | |
- | BkSp | Del |------| |------| Enter| Space|
- | | | End | | PgDn | | |
- `--------------------' `--------------------'
-
-### layer 3 : Media layer
-
- ,--------------------------------------------------. ,--------------------------------------------------.
- | F11 | F1 | F2 | F3 | F4 | F5 |TEENSY| | | F6 | F7 | F8 | F9 | F10 | F11 |
- |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- | | | | | | | | | | | PrSc | ScLk | Paus | | |
- |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- | CapsLk | | Mute | Vol- | Vol+ | |------| |------| |Dvorak|Qwerty|Colmak| | |
- |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- | | Stop | Prev | Play | Next | Sel | | | | | | | | | |
- `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- | | | | | | | | | | | |
- `----------------------------------' `----------------------------------'
- ,-------------. ,-------------.
- | |MacLck| |MacLck| |
- ,------|------|------| |------+------+------.
- | | | | | | | |
- | | |------| |------| | |
- | | | | | | | |
- `--------------------' `--------------------' \ No newline at end of file
diff --git a/layouts/community/ergodox/yoruian/90-ergodox-yoruian.conf b/layouts/community/ergodox/yoruian/90-ergodox-yoruian.conf
deleted file mode 100644
index ce4fce3b1d..0000000000
--- a/layouts/community/ergodox/yoruian/90-ergodox-yoruian.conf
+++ /dev/null
@@ -1,6 +0,0 @@
-Section "InputClass"
- Identifier "ErgoDox EZ"
- MatchIsKeyboard "on"
- MatchProduct "ErgoDox EZ ErgoDox EZ"
- Option "XkbLayout" "ergodox_yoruian"
-EndSection
diff --git a/layouts/community/ergodox/yoruian/README b/layouts/community/ergodox/yoruian/README
deleted file mode 100644
index 99b41434ef..0000000000
--- a/layouts/community/ergodox/yoruian/README
+++ /dev/null
@@ -1,102 +0,0 @@
- Snarfangel's YORUIAN for the ErgoDox EZ
- ‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾
-DEFAULT
-┏━━━┯━━━┯━━━┯━━━┯━━━┯━━━┯━━━┓ ┏━━━┯━━━┯━━━┯━━━┯━━━┯━━━┯━━━┓
-┃ ` │ ; │ : │ - │ / │ ( │ < ┃ ┃ > │ ) │ ^ │ * │ ~ │ Γ │ σ ┃
-┠───┼───┼───┼───┼───┼───┼───┨ ┠───┼───┼───┼───┼───┼───┼───┨
-┃ ⎋ │ . │ y │ o │ r │ ? │ ✦ ┃ ┃ ✦ │ j │ v │ d │ f │ w │ q ┃
-┠───┼───┼───┼───┼───┼───┤ ┃ ┃ ├───┼───┼───┼───┼───┼───┨
-┃ ⎈ │ u │ i │ a │ n │ ! ├───┨ ┠───┤ m │ h │ t │ s │ c │ ⎈ ┃
-┠───┼───┼───┼───┼───┼───┤ ❖ ┃ ┃ ❖ ├───┼───┼───┼───┼───┼───┨
-┃ λ │ ' │ " │ , │ _ │ = │ ┃ ┃ │ k │ l │ p │ g │ b │ x ┃
-┠───┼───┼───┼───┼───╆━━━┷━━━┛ ┗━━━┷━━━╅───┼───┼───┼───┼───┨
-┃ ⎀ │ E │ │ │ ◆ ┃ ┃ ◆ │ │ │ z │ ⎙ ┃
-┗━━━┷━━━┷━━━┷━━━┷━━━┛ ┗━━━┷━━━┷━━━┷━━━┷━━━┛
- ┏━━━┯━━━┓ ┏━━━┯━━━┓
- ┃ ⌫ │ ⌥ ┃ ┃ ⎄ │ ↹ ┃
- ┏━━━╃───┼───┨ ┠───┼───╄━━━┓
- ┃ │ │ ┃ ┃ │ │ ┃
- ┃ e │ ⇧ ├───┨ ┠───┤ ⏎ │ ␣ ┃
- ┃ │ │ ┃ ┃ │ │ ┃
- ┗━━━┷━━━┷━━━┛ ┗━━━┷━━━┷━━━┛
-SHIFTED
-┏━━━┯━━━┯━━━┯━━━┯━━━┯━━━┯━━━┓ ┏━━━┯━━━┯━━━┯━━━┯━━━┯━━━┯━━━┓
-┃ 9 │ 7 │ 5 │ 3 │ 1 │ [ │ { ┃ ┃ } │ ] │ 0 │ 2 │ 4 │ 6 │ 8 ┃
-┠───┼───┼───┼───┼───┼───┼───┨ ┠───┼───┼───┼───┼───┼───┼───┨
-┃ │ * │ Y │ O │ R │ \ │ ┃ ┃ │ J │ V │ D │ F │ W │ Q ┃
-┠───┼───┼───┼───┼───┼───┤ ┃ ┃ ├───┼───┼───┼───┼───┼───┨
-┃ │ U │ I │ A │ N │ | ├───┨ ┠───┤ M │ H │ T │ S │ C │ ┃
-┠───┼───┼───┼───┼───┼───┤ ┃ ┃ ├───┼───┼───┼───┼───┼───┨
-┃ │ # │ $ │ @ │ & │ + │ ┃ ┃ │ K │ L │ P │ G │ B │ X ┃
-┠───┼───┼───┼───┼───╆━━━┷━━━┛ ┗━━━┷━━━╅───┼───┼───┼───┼───┨
-┃ │ │ │ │ ┃ ┃ │ │ │ Z │ ┃
-┗━━━┷━━━┷━━━┷━━━┷━━━┛ ┗━━━┷━━━┷━━━┷━━━┷━━━┛
- ┏━━━┯━━━┓ ┏━━━┯━━━┓
- ┃ │ ┃ ┃ │ ┃
- ┏━━━╃───┼───┨ ┠───┼───╄━━━┓
- ┃ │ │ ┃ ┃ │ │ ┃
- ┃ │ ├───┨ ┠───┤ │ ┃
- ┃ │ │ ┃ ┃ │ │ ┃
- ┗━━━┷━━━┷━━━┛ ┗━━━┷━━━┷━━━┛
-λ LAYER
-┏━━━┯━━━┯━━━┯━━━┯━━━┯━━━┯━━━┓ ┏━━━┯━━━┯━━━┯━━━┯━━━┯━━━┯━━━┓
-┃ │ │ │ │ │ │ ┃ ┃ │ │ ⑤ │ ⑥ │ ⑦ │ ⑧ │ ⑨ ┃
-┠───┼───┼───┼───┼───┼───┼───┨ ┠───┼───┼───┼───┼───┼───┼───┨
-┃ │ │ │ │ │ │ ┃ ┃ │ │ ① │ ② │ ③ │ ④ │ ⑩ ┃
-┠───┼───┼───┼───┼───┼───┤ ┃ ┃ ├───┼───┼───┼───┼───┼───┨
-┃ │ │ │ │ │ ├───┨ ┠───┤ ⎉ │ ← │ ↓ │ ↑ │ → │ ⑪ ┃
-┠───┼───┼───┼───┼───┼───┤ ┃ ┃ ├───┼───┼───┼───┼───┼───┨
-┃ λ │ │ │ │ │ │ ┃ ┃ │ │ ⇱ │ ⎘ │ ⎗ │ ⇲ │ ⑫ ┃
-┠───┼───┼───┼───┼───╆━━━┷━━━┛ ┗━━━┷━━━╅───┼───┼───┼───┼───┨
-┃ │ │ │ │ ┃ ┃ │ │ │ │ ┃
-┗━━━┷━━━┷━━━┷━━━┷━━━┛ ┗━━━┷━━━┷━━━┷━━━┷━━━┛
- ┏━━━┯━━━┓ ┏━━━┯━━━┓
- ┃ │ ┃ ┃ │ ┃
- ┏━━━╃───┼───┨ ┠───┼───╄━━━┓
- ┃ │ │ ┃ ┃ │ │ ┃
- ┃ │ ├───┨ ┠───┤ │ ┃
- ┃ │ │ ┃ ┃ │ │ ┃
- ┗━━━┷━━━┷━━━┛ ┗━━━┷━━━┷━━━┛
-
-Installation (X only)
-‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾
- 1. Build and flash firmware as usual
-
- 2. sudo make install-xorg-configuration
-
- 3. Restart X
-
-Features
-‾‾‾‾‾‾‾‾
- • E on the thumb
-
- • Emacs-friendly
-
- • Symmetric control keys for finger wear levelling
-
- • Greek and subscript dead keys
-
- • Compose key for arbitrary Unicode input via ~/.XCompose
-
-Don't Cares
-‾‾‾‾‾‾‾‾‾‾‾
- • Easy migration from QWERTY
-
- • Compatbility with non-XKB systems
-
- • Mouse emulation
-
- • Media keys
-
-Acknowledgements
-‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾
-Snarfangel, for designing the layout.
-
-The GNU FreeFont project and Steve White, for adding new keyboard
-symbols.
-
-Xah Lee, for http://xahlee.info/comp/unicode_computing_symbols.html
-
-Colophon
-‾‾‾‾‾‾‾‾
-This file is best-viewed with an SVN version of GNU FreeFont Mono.
diff --git a/layouts/community/ergodox/yoruian/ergodox_yoruian b/layouts/community/ergodox/yoruian/ergodox_yoruian
deleted file mode 100644
index 0d13fbfd4c..0000000000
--- a/layouts/community/ergodox/yoruian/ergodox_yoruian
+++ /dev/null
@@ -1,34 +0,0 @@
-partial alphanumeric_keys modifier_keys
-xkb_symbols "ergodox_yoruian" {
- include "us"
- name[Group1]= "English (yoruian-1.0.0)";
-
- replace key <KP2> { [ Multi_key, Multi_key ] };
- replace key <KP3> { [ Hyper_L, Hyper_L ] };
- replace key <AE09> { [ grave, 9 ] };
- replace key <AE07> { [ semicolon, 7 ] };
- replace key <AE05> { [ colon, 5 ] };
- replace key <AE03> { [ minus, 3 ] };
- replace key <AE01> { [ slash, 1 ] };
- replace key <AE10> { [ asciicircum, 0 ] };
- replace key <AE02> { [ percent, 2 ] };
- replace key <AE04> { [ asciitilde, 4 ] };
- replace key <AE06> { [ dead_greek, 6 ] };
- replace key <AE08> { [ dead_caron, 8 ] };
- replace key <KP1> { [ E, E ] };
- replace key <AD12> { [ period, asterisk ] };
- replace key <BKSL> { [ question, backslash ] };
- replace key <AC10> { [ exclam, bar ] };
- replace key <AC11> { [ apostrophe, numbersign ] };
- replace key <AB08> { [ quotedbl, dollar ] };
- replace key <AB09> { [ comma, at ] };
- replace key <AB10> { [ underscore, ampersand ] };
- replace key <KP0> { [ equal, plus ] };
- replace key <TLDE> { [ parenleft, bracketleft ] };
- replace key <AE11> { [ less, braceleft ] };
- replace key <AE12> { [ greater, braceright ] };
- replace key <AD11> { [ parenright, bracketright ] };
-
- modifier_map none { <HYPR> };
- modifier_map Mod3 { <KP3> };
-};
diff --git a/layouts/community/ergodox/yoruian/keymap.c b/layouts/community/ergodox/yoruian/keymap.c
deleted file mode 100644
index c51a3586c6..0000000000
--- a/layouts/community/ergodox/yoruian/keymap.c
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
- * Copyright 2016 Thomas Fitzsimmons <fitzsim@fitzsim.org>
- *
- * 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 3 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 "yoruian.h"
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-[0] = LAYOUT_ergodox_YORUIAN
-(9, 7, 5, 3, 1, GRV, MINS, EQL, LBRC, 0, 2, 4, 6, 8,
- ES, RBRC, Y, O, R, BSLS, P3, P3, J, V, D, F, W, Q,
- LC, U, I, A, N, SCLN, M, H, T, S, C, RC,
- FF, QUOT, COMM, DOT, SLSH, P0, LGUI, LGUI, K, L, P, G, B, X,
- IN, P1, NO, NO, LALT, LALT, NO, NO, Z, PS,
- BSPC, RALT, P2, TAB,
- NO, NO,
- E, LSFT, NO, NO, ENT, SPC),
-[1] = LAYOUT_ergodox_YORUIAN
-(TR, TR, TR, TR, TR, TR, TR, TR, TR, F5, F6, F7, F8, F9,
- TR, TR, TR, TR, TR, TR, TR, TR, TR, F1, F2, F3, F4, FT,
- TR, TR, TR, TR, TR, TR, PAUS, LEFT, DOWN, UP, RGHT, FE,
- TR, TR, TR, TR, TR, TR, TR, TR, TR, HOME, PGDN, PGUP, END, FW,
- TR, TR, TR, TR, TR, TR, TR, TR, TR, TR,
- TR, TR, TR, TR,
- TR, TR,
- TR, TR, TR, TR, TR, TR),
-};
-
-void matrix_scan_user(void) {
- ergodox_board_led_off();
- ergodox_right_led_1_off();
- ergodox_right_led_2_off();
- ergodox_right_led_3_off();
-};
-
-/*
- * Local Variables:
- * electric-indent-mode: nil
- * End:
- */
diff --git a/layouts/community/ergodox/yoruian/rules.mk b/layouts/community/ergodox/yoruian/rules.mk
deleted file mode 100644
index 0e9338d249..0000000000
--- a/layouts/community/ergodox/yoruian/rules.mk
+++ /dev/null
@@ -1,11 +0,0 @@
-
-
-install-xorg-configuration:
- install -m 0664 90-$(KEYBOARD)-$(LAYOUT_ergodox).conf \
- /etc/X11/xorg.conf.d/90-$(KEYBOARD)-$(LAYOUT_ergodox).conf
- install -m 0644 $(KEYBOARD)_$(LAYOUT_ergodox) \
- /usr/share/X11/xkb/symbols/$(KEYBOARD)_$(LAYOUT_ergodox)
-
-uninstall-xorg-configuration:
- -rm -f /etc/X11/xorg.conf.d/90-$(KEYBOARD)-$(LAYOUT_ergodox).conf
- -rm -f /usr/share/X11/xkb/symbols/$(KEYBOARD)_$(LAYOUT_ergodox)
diff --git a/layouts/community/ergodox/yoruian/yoruian.h b/layouts/community/ergodox/yoruian/yoruian.h
deleted file mode 100644
index 2a85ef9a2e..0000000000
--- a/layouts/community/ergodox/yoruian/yoruian.h
+++ /dev/null
@@ -1,57 +0,0 @@
-/*
- * Copyright 2016 Thomas Fitzsimmons <fitzsim@fitzsim.org>
- *
- * 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 3 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 "debug.h"
-#include "action_layer.h"
-
-#define LAYOUT_ergodox_YORUIAN( \
- /* Spacial positions. */ \
- k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, \
- k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, \
- k20, k21, k22, k23, k24, k25, k28, k29, k2A, k2B, k2C, k2D, \
- k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, k3D, \
- k40, k41, k42, k43, k44, k49, k4A, k4B, k4C, k4D, \
- k55, k56, k57, k58, \
- k54, k59, \
- k53, k52, k51, k5C, k5B, k5A) \
- LAYOUT_ergodox(KC_##k00, KC_##k01, KC_##k02, KC_##k03, KC_##k04, KC_##k05, KC_##k06, \
- KC_##k10, KC_##k11, KC_##k12, KC_##k13, KC_##k14, KC_##k15, KC_##k16, \
- KC_##k20, KC_##k21, KC_##k22, KC_##k23, KC_##k24, KC_##k25, \
- KC_##k30, KC_##k31, KC_##k32, KC_##k33, KC_##k34, KC_##k35, KC_##k36, \
- KC_##k40, KC_##k41, KC_##k42, KC_##k43, KC_##k44, \
- KC_##k55, KC_##k56, \
- KC_##k54, \
- KC_##k53, KC_##k52, KC_##k51, \
- KC_##k07, KC_##k08, KC_##k09, KC_##k0A, KC_##k0B, KC_##k0C, KC_##k0D, \
- KC_##k17, KC_##k18, KC_##k19, KC_##k1A, KC_##k1B, KC_##k1C, KC_##k1D, \
- KC_##k28, KC_##k29, KC_##k2A, KC_##k2B, KC_##k2C, KC_##k2D, \
- KC_##k37, KC_##k38, KC_##k39, KC_##k3A, KC_##k3B, KC_##k3C, KC_##k3D, \
- KC_##k49, KC_##k4A, KC_##k4B, KC_##k4C, KC_##k4D, \
- KC_##k57, KC_##k58, \
- KC_##k59, \
- KC_##k5C, KC_##k5B, KC_##k5A)
-
-#define KC_ES KC_ESC
-#define KC_LC KC_LCTL
-#define KC_RC KC_RCTL
-#define KC_FF MO(1)
-#define KC_IN KC_INS
-#define KC_PS KC_PSCR
-#define KC_TR KC_TRNS
-#define KC_FT KC_F10
-#define KC_FE KC_F11
-#define KC_FW KC_F12
diff --git a/layouts/community/ergodox/zweihander-macos/config.h b/layouts/community/ergodox/zweihander-macos/config.h
deleted file mode 100644
index 5f414d86e7..0000000000
--- a/layouts/community/ergodox/zweihander-macos/config.h
+++ /dev/null
@@ -1,14 +0,0 @@
-/*
- Set any config.h overrides for your specific keymap here.
- See config.h options at https://docs.qmk.fm/#/config_options?id=the-configh-file
-*/
-
-#pragma once
-// 15, the default, is too low for Kailh Coppers. I get lots of double presses.
-// (ba-dum tish)
-// #undef DEBOUNCE
-// #define DEBOUNCE 22
-
-// Reduce USB power consumption to 100 mA to make it work with a Lightning to USB 3 Camera Adapter (MK0W2AM/A). ZSA says 100 mA is high enough for the keyboard if you disable the big Shine/Glow LEDs first.
-#undef USB_MAX_POWER_CONSUMPTION
-#define USB_MAX_POWER_CONSUMPTION 100
diff --git a/layouts/community/ergodox/zweihander-macos/keymap.c b/layouts/community/ergodox/zweihander-macos/keymap.c
deleted file mode 100644
index 19567797a0..0000000000
--- a/layouts/community/ergodox/zweihander-macos/keymap.c
+++ /dev/null
@@ -1,178 +0,0 @@
-#include QMK_KEYBOARD_H
-#include "debug.h"
-#include "action_layer.h"
-
-#define BASE 0 // default layer
-#define SYMB 1 // symbols
-#define MDIA 2 // media keys
-
-// Best viewed in Xcode in Menlo Regular or SF Mono.
-
-enum custom_keycodes {
- NEWITEM = SAFE_RANGE,
-};
-
-bool process_record_user(uint16_t keycode, keyrecord_t *record) {
- switch (keycode) {
- case NEWITEM:
- if (record->event.pressed) {
- // when keycode NEWITEM is pressed
- SEND_STRING("\n- "); // starts a new item in a Markdown-style list
- }
- // else-clause (for when NEWITEM is released) omitted
- break;
- }
- return true; // the key press we just processed should continue to be processed as normal
-};
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-/* Keymap 0: Basic layer
- *
- * ,--------------------------------------------------. ,--------------------------------------------------.
- * | = | 1 | 2 | 3 | 4 | 5 | L1 | | L1 | 6 | 7 | 8 | 9 | 0 | - |
- * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | ⌦ | Q | W | E | R | T | ~L1 | | ~L1 | Y | U | I | O | P | \ |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | ⌫ | A | S | D | F | G |------| |------| H | J | K | L |; / L2| ' / R⌘ |
- * |--------+------+------+------+------+------| L⌘ | | R⌘ |------+------+------+------+------+--------|
- * | L⇧ | Z | X | C | V | B | | | | N | M | , | . | / /R⌥| R⇧ |
- * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * | L⌃ | L⌥ | L⌘ | ← | → | | ↑ | ↓ | [ | ] | ↩︎ |
- * `----------------------------------' `----------------------------------'
- * ,-------------. ,---------------.
- * | `~ | ⇪ | | ⎋ | ⌫ |
- * ,------|------|------| |------+--------+------.
- * | | | L⌥ | | R⌥ | | |
- * | ↩︎ | ⇥ |------| |------| ⇥ | |
- * | | | L⌃ | | R⌃ | | |
- * `--------------------' `----------------------'
- */
-// If it accepts an argument (i.e, is a function), it doesn't need KC_.
-// Otherwise, it needs KC_*
-[BASE] = LAYOUT_ergodox( // layer 0 : default
- // left hand
- KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, TG(SYMB),
- KC_DEL, KC_Q, KC_W, KC_E, KC_R, KC_T, MO(SYMB),
- KC_BSPC, KC_A, KC_S, KC_D, KC_F, KC_G,
- KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_LGUI,
- KC_LCTL, KC_LALT, KC_LGUI, KC_LEFT,KC_RGHT,
- KC_GRV, KC_CAPS,
- KC_LALT,
- KC_ENT ,KC_TAB ,KC_LCTL,
- // right hand
- TG(SYMB), KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS,
- MO(SYMB), KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS,
- KC_H, KC_J, KC_K, KC_L, LT(MDIA, KC_SCLN),RGUI_T(KC_QUOT),
- KC_RGUI, KC_N, KC_M, KC_COMM,KC_DOT, RALT_T(KC_SLSH), KC_RSFT,
- KC_UP, KC_DOWN,KC_LBRC,KC_RBRC, KC_ENT ,
- KC_ESC, KC_BSPC,
- KC_RALT,
- KC_RCTL, KC_TAB, KC_SPC
- ),
-/* Keymap 1: Symbol Layer
- *
- * ,--------------------------------------------------. ,--------------------------------------------------.
- * | | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | F11 |
- * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | | [ | ] | { | } | " | | | | / | 7 | 8 | 9 | * | F12 |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | < | > | ( | ) | ' |------| |------| - | 4 | 5 | 6 | + | `~ |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | | | | | = | | | | : | 1 | 2 | 3 | = | |
- * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * | | | | | | | 0 | . | ← | → | |
- * `----------------------------------' `----------------------------------'
- * ,-------------. ,-------------.
- * | | | | | |
- * ,------|------|------| |------+------+------.
- * | | | | | | | |
- * | | |------| |------| | |
- * | | | | | | | |
- * `--------------------' `--------------------'
- */
-// SYMBOLS
-[SYMB] = LAYOUT_ergodox(
- // left hand
- KC_TRNS,KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_TRNS,
- KC_TRNS,KC_LBRC,KC_RBRC,KC_LCBR,KC_RCBR,KC_DQT ,KC_TRNS,
- KC_TRNS,KC_LABK,KC_RABK,KC_LPRN,KC_RPRN,KC_QUOT,
- KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,NEWITEM,KC_EQL ,KC_TRNS,
- KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
- KC_TRNS,KC_TRNS,
- KC_TRNS,
- KC_TRNS,KC_TRNS,KC_TRNS,
- // right hand
- KC_TRNS, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,
- KC_TRNS, KC_SLSH, KC_7, KC_8, KC_9, KC_ASTR, KC_F12,
- KC_MINS, KC_4, KC_5, KC_6, KC_PLUS, KC_GRV,
- KC_TRNS, KC_COLN, KC_1, KC_2, KC_3, KC_EQL, KC_TRNS,
- KC_0, KC_DOT, KC_LEFT, KC_RGHT, KC_TRNS,
- KC_TRNS, KC_TRNS,
- KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS
-),
-/* Keymap 2: Media keys
- *
- * ,--------------------------------------------------. ,--------------------------------------------------.
- * | | F14 | F15 |PrtScr|SclLck| Pause| | | | ⌘W | ⌘⇧` | ⌘` | | ⏏ | Power |
- * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | | | ⌥↑ | PgUp | ⌥↓ | | | | | ⌘] | ⌥⌘↑ | ↑ | ⌥⌘↓ | | |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | ⌃⇧⌘← | Home | PgDn | End | ⌃⇧⌘→ |------| |------| ⌘[ | ← | ↓ | → | | F16 |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | | | | | | | | | | ⏯ | ⏮ | ⏭ | | |
- * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * | | | | | | |VolDn |VolUp | Mute | | |
- * `----------------------------------' `----------------------------------'
- * ,-------------. ,-------------.
- * | | | | | |
- * ,------|------|------| |------+------+------.
- * | | | | | | | |
- * | | |------| |------| ⌘C | ⌘V |
- * | | | | | ⌘X | | |
- * `--------------------' `--------------------'
- */
-// MEDIA AND MOUSE
-[MDIA] = LAYOUT_ergodox(
- KC_TRNS, KC_F14 , KC_F15 , KC_PSCR, KC_SCRL, KC_PAUS, KC_TRNS, /* F14 dims screen, F15 brightens */
- KC_TRNS, KC_TRNS, LALT(KC_UP), KC_PGUP, LALT(KC_DOWN), KC_TRNS, KC_TRNS,
- KC_TRNS, C(S(G(KC_LEFT))), KC_HOME, KC_PGDN, KC_END , C(S(G(KC_RGHT))),
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS,
- KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS,
- // right hand
- KC_TRNS, LGUI(KC_W), LGUI(LSFT(KC_GRV)), LGUI(KC_GRV), KC_TRNS, KC_EJCT, KC_PWR,
- KC_TRNS, LGUI(KC_RBRC), LGUI(LALT(KC_UP)), KC_UP , LGUI(LALT(KC_DOWN)), KC_TRNS, KC_TRNS,
- LGUI(KC_LBRC), KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, KC_F16 ,
- KC_TRNS, KC_TRNS, KC_MPLY, KC_MPRV, KC_MNXT, KC_TRNS, KC_TRNS,
- KC_VOLD, KC_VOLU, KC_MUTE, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS,
- KC_TRNS,
- LGUI(KC_X), LGUI(KC_C), LGUI(KC_V)
-),
-};
-
-// Runs constantly in the background, in a loop.
-void matrix_scan_user(void) {
-
- uint8_t layer = get_highest_layer(layer_state);
-
- ergodox_board_led_off();
- ergodox_right_led_1_off();
- ergodox_right_led_2_off();
- ergodox_right_led_3_off();
- switch (layer) {
- // TODO: Make this relevant to the ErgoDox EZ.
- case 1:
- ergodox_right_led_1_on();
- break;
- case 2:
- ergodox_right_led_2_on();
- break;
- default:
- // none
- break;
- }
-};
diff --git a/layouts/community/ergodox/zweihander-macos/readme.markdown b/layouts/community/ergodox/zweihander-macos/readme.markdown
deleted file mode 100644
index fa65e2faad..0000000000
--- a/layouts/community/ergodox/zweihander-macos/readme.markdown
+++ /dev/null
@@ -1,82 +0,0 @@
-# The Zweihander Layout
-
-NB: the backtick (\`) is special in Markdown. If I write ⌘\` in this readme, I mean “Command-backtick”, not “Command-backslash-backtick”.
-
-This README refers to two secondary layers: the Media Layer and the Symbol Layer. The Media Layer is accessed by holding ; (the semicolon) and has cursor-movement, window-management, and volume-adjustment keys on it. The Symbol Layer is accessed by holding either of the two tall keys between T and Y, or by tapping one of the small keys between 5 and 6. It has a 10-key keypad, parentheses and similar grouping punctuation, and F1–F12.
-
-This layout is tuned for people who…
-
-## use macOS
-
-While this layout works fine in Windows, it’s not tuned for it. No sane person who primarily uses Windows would put this many Windows keys on a keyboard layout. That said, Print Screen, Scroll Lock, and Pause are available in their usual order on the Media Layer if you need them.
-
-## mouse left-handed while doing other things with the right hand
-
-I tend to have my mouse in my left hand, but I like to use my other hand to make things go faster. I’ve added a bunch of buttons to the Media Layer (hold ;) to speed up browsing in applications like Safari and Finder:
-
-- ⌘[ — Back
-- ⌘] — Forward
-- ⌥⌘↓ — Open Selection and Close Parent Folder
-- ⌥⌘↑ — Go Up and Close Just-Left Folder
-
-I also have a few keys dedicated to window management:
-
-- ⌘W — Close Window
-- ⌘\` — Move Focus to Next Window
-- ⌘⇧\` — Move Focus to Previous Window
-
-Cut, Copy, and Paste (⌘X, ⌘C, and ⌘V) are also available on the three bottommost right-thumb buttons if you hold ;.
-
-## use lots of modifier keys in macOS menu-item shortcuts
-
-I wanted to preserve the feel of a number of shortcuts that involve pressing lots of modifier keys at once. This is why the bottom left of the keyboard has Shift, Control, Option, and Command in the usual spots. Further I’ve added affordances so some key combinations are easier to press with just the right hand.
-
-I also put a second Backspace (⌫) key on the right half of the keyboard to make some particularly commonly-used keyboard shortcuts faster and more convenient for right-handed use:
-
-- ⌘⌫ — Move to Trash / Delete
-- ⇧⌥⌘⌫ — Empty Trash Without Asking for Confirmation
-
-⇧⌥⌘⌫ is much more satisfying to press when you do it like on a normal keyboard: one left-hand finger on each of ⇧, ⌥, and ⌘, and the right index finger on ⌫.
-
-Pressing and holding / will give you Option. This makes a number of keyboard shortcuts easy to press with just the right hand:
-
-- ⌥↑ — Move Line Up (in Visual Studio Code)
-- ⌥↓ — Move Line Down (in Visual Studio Code)
-- ⌥⇧↑ — Copy Line Up / Go To Previous Channel With Unread Messages
-- ⌥⇧↓ — Copy Line Down / Go To Next Channel With Unread Messages
-
-## use Emacs-style shortcuts
-
-I press C-a, C-e, and C-k all the time. It’s difficult to press these key combinations with the Control key on the far left, so the innermost thumb buttons are Control keys. Above/inside them are Option keys.
-
-## use Visual Studio Code
-
-;-W and ;-R are bound to ⌥↑ and ⌥↓, respectively, for moving lines up and down in Visual Studio Code. In normal macOS applications, they’re used for moving the cursor to the beginning and end of a line, and then on to the previous/next line.
-
-## use spreadsheets
-
-All the common spreadsheet operations (+-*/=) are on the right side of the Symbol Layer. Make-numbers-bigger (+, \*) operations on the right; make-numbers-smaller (-, /) on the left. There’s also a colon there for entering times and maybe IPv6 addresses.
-
-## know the ↑↓←→ fn-key shortcuts for MacBooks
-
-Have you looked at the Page Up, Page Down, Home, and End keys on the EDSF keys and wondered why they’re arranged that way? They’re arranged the same way as the fn-key shortcuts on an Apple laptop’s arrow keys. On Apple keyboards with an\* fn key, if you press fn-↑, you’ll get Page Up; if you press fn-← you’ll get Home. Similarly, on Zweihander, ;-E is Page Up and ;-S is Home.
-
-## write a fair bit of Markdown
-
-If you’re on the second layer (hold/tap one of the four inside middle top keys), the `'` button on the far right is a `\`` key.
-
-If you’re on the second layer, pressing `v` will send the string `"\n- "`, not including the quotation marks. This is intended to be a faster way to make a new list item when writing meeting notes in Markdown.
-
-## use Siri
-
-F16, accessed by holding ; and pressing the ' key next to it, is intended for Siri.
-
-## use the fn/🌐︎︎︎ key
-
-A thumb key is bound to Caps Lock. You are not expected to use this for Caps Lock. You would probably be happier going into System Settings, opening the “Customize modifier keys” part of it, and having Caps Lock work as the fn key. macOS is convinced that Ergodoxen EZ have fn keys, so you might as well have one in a place that lends itself tolerably well to keyboard shortcuts.
-
-## use it with an iPad
-
-This layout overrides `USB_MAX_POWER_CONSUMPTION` to turn it down to 100 mA instead of the default of 500 mA. This is not what you want if your Ergodox EZ has the Shine or Glow lights, but good if you want to be able to plug it into your iPad’s lightning port with a USB adapter. The indicator lights that tell you what layer you’re on are _not_ Shine or Glow lights.
-
-\* I pronounce “fn” as “effin’”. Your mileage may vary.
diff --git a/layouts/community/ergodox/zweihander-macos/rules.mk b/layouts/community/ergodox/zweihander-macos/rules.mk
deleted file mode 100644
index 4a9626356a..0000000000
--- a/layouts/community/ergodox/zweihander-macos/rules.mk
+++ /dev/null
@@ -1,6 +0,0 @@
-# Don’t do a tricolor flashing-light wave when the computer is shut down in Windows,
-# or when the machine is sleeping in macOS
-SLEEP_LED_ENABLE = no
-
-# Don’t pretend to be a mouse (if a a mouse is plugged into a FreeBSD machine, an annoying cursor will pop up)
-MOUSEKEY_ENABLE = no
diff --git a/layouts/community/fullsize_ansi/readme.md b/layouts/community/fullsize_ansi/readme.md
new file mode 100644
index 0000000000..9589abe0d7
--- /dev/null
+++ b/layouts/community/fullsize_ansi/readme.md
@@ -0,0 +1,3 @@
+# fullsize_ansi
+
+ LAYOUT_fullsize_ansi
diff --git a/layouts/community/fullsize_extended_ansi/readme.md b/layouts/community/fullsize_extended_ansi/readme.md
new file mode 100644
index 0000000000..7cc035cde9
--- /dev/null
+++ b/layouts/community/fullsize_extended_ansi/readme.md
@@ -0,0 +1,3 @@
+# fullsize_extended_ansi
+
+ LAYOUT_fullsize_extended_ansi
diff --git a/layouts/community/fullsize_extended_iso/readme.md b/layouts/community/fullsize_extended_iso/readme.md
new file mode 100644
index 0000000000..8688591ef1
--- /dev/null
+++ b/layouts/community/fullsize_extended_iso/readme.md
@@ -0,0 +1,3 @@
+# fullsize_extended_iso
+
+ LAYOUT_fullsize_extended_iso
diff --git a/layouts/community/fullsize_extended_jis/readme.md b/layouts/community/fullsize_extended_jis/readme.md
new file mode 100644
index 0000000000..79a00b5084
--- /dev/null
+++ b/layouts/community/fullsize_extended_jis/readme.md
@@ -0,0 +1,3 @@
+# fullsize_extended_jis
+
+ LAYOUT_fullsize_extended_jis
diff --git a/layouts/community/fullsize_iso/readme.md b/layouts/community/fullsize_iso/readme.md
new file mode 100644
index 0000000000..65c7a89044
--- /dev/null
+++ b/layouts/community/fullsize_iso/readme.md
@@ -0,0 +1,3 @@
+# fullsize_iso
+
+ LAYOUT_fullsize_iso
diff --git a/layouts/community/fullsize_jis/readme.md b/layouts/community/fullsize_jis/readme.md
new file mode 100644
index 0000000000..9385325157
--- /dev/null
+++ b/layouts/community/fullsize_jis/readme.md
@@ -0,0 +1,3 @@
+# fullsize_jis
+
+ LAYOUT_fullsize_jis
diff --git a/layouts/community/numpad_4x4/readme.md b/layouts/community/numpad_4x4/readme.md
new file mode 100644
index 0000000000..5d4b8c6e31
--- /dev/null
+++ b/layouts/community/numpad_4x4/readme.md
@@ -0,0 +1,3 @@
+# numpad_4x4
+
+ LAYOUT_numpad_4x4
diff --git a/layouts/community/numpad_5x4/mrsendyyk/keymap.c b/layouts/community/numpad_5x4/mrsendyyk/keymap.c
deleted file mode 100644
index 874e4e8c97..0000000000
--- a/layouts/community/numpad_5x4/mrsendyyk/keymap.c
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
- * Numpad 5x4 Keymap
- *
- * Copyright (C) 2020 Sendy YK <https://mr.sendyyk.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 3 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 <https://www.gnu.org/licenses/>.
- */
-
-#include QMK_KEYBOARD_H
-
-enum layer_names {
- _BASE
-};
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [_BASE] = LAYOUT_numpad_5x4(
- KC_NUM, KC_PSLS, KC_PAST, KC_PMNS,
- KC_P7, KC_P8, KC_P9,
- KC_P4, KC_P5, KC_P6, KC_PPLS,
- KC_P1, KC_P2, KC_P3,
- KC_P0, KC_PDOT, KC_PENT
- )
-};
diff --git a/layouts/community/numpad_5x4/mrsendyyk/readme.md b/layouts/community/numpad_5x4/mrsendyyk/readme.md
deleted file mode 100644
index 9669c8fcc0..0000000000
--- a/layouts/community/numpad_5x4/mrsendyyk/readme.md
+++ /dev/null
@@ -1,14 +0,0 @@
-# Numpad 5x4 Keymap by [Sendy YK](https://mr.sendyyk.com).
-
-![_BASE](https://raw.githubusercontent.com/mrsendyyk/qmk_firmware/development/images/numpad_5x4_keymap.png)
-
-## Build The Firmware
-
-Make example for keyboard (after setting up your build environment):
-
- make <keyboard_folder>:mrsendyyk
-
-More information:
-* [Setting Up Your QMK Environment](https://docs.qmk.fm/#/getting_started_build_tools)
-* [More Detailed make Instructions](https://docs.qmk.fm/#/getting_started_make_guide)
-* [The Complete Newbs Guide To QMK](https://docs.qmk.fm/#/newbs)
diff --git a/layouts/community/numpad_5x4/mrsendyyk/rules.mk b/layouts/community/numpad_5x4/mrsendyyk/rules.mk
deleted file mode 100644
index 5c3115dc33..0000000000
--- a/layouts/community/numpad_5x4/mrsendyyk/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-USER_NAME := mrsendyyk
diff --git a/layouts/community/numpad_5x4/readme.md b/layouts/community/numpad_5x4/readme.md
new file mode 100644
index 0000000000..e3fb7171bc
--- /dev/null
+++ b/layouts/community/numpad_5x4/readme.md
@@ -0,0 +1,3 @@
+# numpad_5x4
+
+ LAYOUT_numpad_5x4
diff --git a/layouts/community/numpad_5x6/bjohnson/config.h b/layouts/community/numpad_5x6/bjohnson/config.h
deleted file mode 100644
index a02b1d6df8..0000000000
--- a/layouts/community/numpad_5x6/bjohnson/config.h
+++ /dev/null
@@ -1,32 +0,0 @@
-#pragma once
-
-#if defined(RGBLIGHT_ENABLE) && !defined(RGBLED_NUM)
-#define WS2812_DI_PIN B7
-#define RGBLED_NUM 13 // Number of LEDs
-#define RGBLIGHT_EFFECT_BREATHING
-#define RGBLIGHT_EFFECT_RAINBOW_MOOD
-#define RGBLIGHT_EFFECT_RAINBOW_SWIRL
-#define RGBLIGHT_EFFECT_SNAKE
-#define RGBLIGHT_EFFECT_KNIGHT
-#define RGBLIGHT_EFFECT_CHRISTMAS
-#define RGBLIGHT_EFFECT_STATIC_GRADIENT
-#define RGBLIGHT_EFFECT_RGB_TEST
-#define RGBLIGHT_EFFECT_ALTERNATING
-#define RGBLIGHT_EFFECT_TWINKLE
-
-#define RGBLIGHT_HUE_STEP 12
-#define RGBLIGHT_SAT_STEP 12
-#define RGBLIGHT_VAL_STEP 12
-#define RGBLIGHT_EFFECT_KNIGHT_LENGTH 2
-#define RGBLIGHT_EFFECT_SNAKE_LENGTH 2
-#define RGBLIGHT_EFFECT_BREATHE_CENTER 1
-
-#define RGBLIGHT_SLEEP
-#endif // RGBLIGHT_ENABLE
-
-#ifdef AUDIO_ENABLE
-#ifdef RGBLIGHT_ENABLE
-#define NO_MUSIC_MODE
-#endif // RGBLIGHT_ENABLE
-#endif // AUDIO_ENABLE
-#define TAP_CODE_DELAY 10
diff --git a/layouts/community/numpad_5x6/bjohnson/keymap.c b/layouts/community/numpad_5x6/bjohnson/keymap.c
deleted file mode 100644
index 63b358f226..0000000000
--- a/layouts/community/numpad_5x6/bjohnson/keymap.c
+++ /dev/null
@@ -1,53 +0,0 @@
-#include QMK_KEYBOARD_H
-
-extern rgblight_config_t rgblight_config;
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [0] = LAYOUT_numpad_5x6(
- KC_F1, LT(1,KC_F2), KC_NUM, KC_PSLS, KC_PAST, KC_PMNS,
- KC_F3, KC_F4, KC_P7, KC_P8, KC_P9,
- KC_F5, KC_F6, KC_P4, KC_P5, KC_P6, KC_PPLS,
- KC_F7, KC_F8, KC_P1, KC_P2, KC_P3,
- KC_F9, KC_F10, KC_P0, KC_PDOT, KC_PENT
- ),
- [1] = LAYOUT_numpad_5x6(
- RGB_TOG, _______, _______, _______, _______, QK_BOOT,
- RGB_MOD, RGB_RMOD, _______, _______, _______,
- RGB_HUI, RGB_HUD, _______, _______, _______, _______,
- RGB_SAI, RGB_SAD, _______, _______, _______,
- RGB_VAI, RGB_VAD, _______, _______, _______
- ),
-};
-
-
-void keyboard_post_init_user(void) {
-#ifdef RGBLIGHT_ENABLE
- uint8_t temp_mode = rgblight_config.mode;
- rgblight_enable_noeeprom();
- rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_LIGHT);
- for (uint16_t i = 255; i > 0; i--) {
- rgblight_sethsv_noeeprom( ( i + 128) % 255, 255, 255);
- matrix_scan();
- wait_ms(10);
- }
- led_set_user(host_keyboard_leds());
- rgblight_mode_noeeprom(temp_mode);
-#endif
-}
-
-bool led_update_user(led_t led_state) {
- if (led_state.num_lock) {
- rgblight_sethsv_noeeprom(HSV_CYAN);
- } else {
- rgblight_sethsv_noeeprom(HSV_MAGENTA);
- }
- return false;
-}
-
-void shutdown_user (void) {
- #ifdef RGBLIGHT_ENABLE
- rgblight_enable_noeeprom();
- rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_LIGHT);
- rgblight_setrgb(RGB_RED);
- #endif // RGBLIGHT_ENABLE
-}
diff --git a/layouts/community/numpad_5x6/bjohnson/rules.mk b/layouts/community/numpad_5x6/bjohnson/rules.mk
deleted file mode 100644
index b54c78f39b..0000000000
--- a/layouts/community/numpad_5x6/bjohnson/rules.mk
+++ /dev/null
@@ -1,5 +0,0 @@
-AUDIO_ENABLE = no
-RGBLIGHT_ENABLE = yes
-BACKLIGHT_ENABLE = no
-NO_SECRETS = yes
-BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite
diff --git a/layouts/community/numpad_5x6/drashna/config.h b/layouts/community/numpad_5x6/drashna/config.h
deleted file mode 100644
index 51fd021c75..0000000000
--- a/layouts/community/numpad_5x6/drashna/config.h
+++ /dev/null
@@ -1,36 +0,0 @@
-/* Copyright 2020 Christopher Courtney, aka Drashna Jael're (@drashna) <drashna@live.com>
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-#pragma once
-
-
-#if defined(RGBLIGHT_ENABLE) && !defined(RGBLED_NUM)
-# define WS2812_DI_PIN B1
-# define RGBLED_NUM 16 // Number of LEDs
-
-# define RGBLIGHT_HUE_STEP 12
-# define RGBLIGHT_SAT_STEP 12
-# define RGBLIGHT_VAL_STEP 12
-# define RGBLIGHT_EFFECT_KNIGHT_LENGTH 2
-# define RGBLIGHT_EFFECT_SNAKE_LENGTH 2
-#endif // RGBLIGHT_ENABLE
-
-#define RGBLIGHT_ALL_ANIMATIONS
-
-#if defined(KEYBOARD_primekb_prime_m)
-# undef PRODUCT
-# define PRODUCT "Drashna Hacked Prime_M Macro Pad"
-#endif
diff --git a/layouts/community/numpad_5x6/drashna/keymap.c b/layouts/community/numpad_5x6/drashna/keymap.c
deleted file mode 100644
index 014da361f6..0000000000
--- a/layouts/community/numpad_5x6/drashna/keymap.c
+++ /dev/null
@@ -1,39 +0,0 @@
-/* Copyright 2020 Christopher Courtney, aka Drashna Jael're (@drashna) <drashna@live.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 "drashna.h"
-
-#define F2_MCRO LT(_GAMEPAD, KC_F2)
-
-// clang-format off
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [_NUMLOCK] = LAYOUT_numpad_5x6(
- KC_F1, F2_MCRO, KC_NUM, KC_PSLS, KC_PAST, KC_PMNS,
- KC_F3, KC_F4, KC_P7, KC_P8, KC_P9,
- KC_F5, KC_F6, KC_P4, KC_P5, KC_P6, KC_PPLS,
- KC_F7, KC_F8, KC_P1, KC_P2, KC_P3,
- KC_F9, KC_COLN, KC_P0, KC_PDOT, KC_PENT
- ),
-
- [_GAMEPAD] = LAYOUT_numpad_5x6(
- RGB_TOG, _______, _______, EE_CLR, QK_MAKE, QK_BOOT,
- RGB_MOD, RGB_RMOD, _______, _______, _______,
- RGB_HUI, RGB_HUD, _______, _______, _______, _______,
- RGB_SAI, RGB_SAD, _______, _______, _______,
- RGB_VAI, RGB_VAD, _______, _______, _______
- ),
-};
-// clang-format on
diff --git a/layouts/community/numpad_5x6/drashna/rules.mk b/layouts/community/numpad_5x6/drashna/rules.mk
deleted file mode 100644
index a2a2b7f8f1..0000000000
--- a/layouts/community/numpad_5x6/drashna/rules.mk
+++ /dev/null
@@ -1,8 +0,0 @@
-AUDIO_ENABLE = no
-RGBLIGHT_ENABLE = yes
-BACKLIGHT_ENABLE = no
-NO_SECRETS = yes
-BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite
-INDICATOR_LIGHTS = no
-MAKE_BOOTLOADER = yes
-RGBLIGHT_STARTUP_ANIMATION = yes
diff --git a/layouts/community/numpad_6x4/readme.md b/layouts/community/numpad_6x4/readme.md
new file mode 100644
index 0000000000..063700d420
--- /dev/null
+++ b/layouts/community/numpad_6x4/readme.md
@@ -0,0 +1,3 @@
+# numpad_6x4
+
+ LAYOUT_numpad_6x4
diff --git a/layouts/community/numpad_6x5/readme.md b/layouts/community/numpad_6x5/readme.md
new file mode 100644
index 0000000000..0c6d0959e3
--- /dev/null
+++ b/layouts/community/numpad_6x5/readme.md
@@ -0,0 +1,3 @@
+# numpad_6x5
+
+ LAYOUT_numpad_6x5
diff --git a/layouts/community/ortho_1x1/readme.md b/layouts/community/ortho_1x1/readme.md
new file mode 100644
index 0000000000..c6352dd8d5
--- /dev/null
+++ b/layouts/community/ortho_1x1/readme.md
@@ -0,0 +1,3 @@
+# ortho_1x1
+
+ LAYOUT_ortho_1x1
diff --git a/layouts/community/ortho_1x4/belgorath/keymap.c b/layouts/community/ortho_1x4/belgorath/keymap.c
deleted file mode 100644
index ace4022957..0000000000
--- a/layouts/community/ortho_1x4/belgorath/keymap.c
+++ /dev/null
@@ -1,24 +0,0 @@
-#include QMK_KEYBOARD_H
-
-extern keymap_config_t keymap_config;
-
-// Each layer gets a name for readability, which is then used in the keymap matrix below.
-// The underscores don't mean anything - you can have a layer called STUFF or any other name.
-// Layer names don't all need to be of the same length, obviously, and you can also skip them
-// entirely and just use numbers.
-
-#define _DEFAULT 0
-#define _LOWER 1
-#define LOWER LT(_LOWER, KC_PENT)
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
-[_DEFAULT] = LAYOUT_ortho_1x4 (
- LOWER, KC_P0, KC_PDOT,KC_PAST
-),
-
-/* Lower */
-[_LOWER] = LAYOUT_ortho_1x4 (
- _______,_______,_______,_______
-),
-};
diff --git a/layouts/community/ortho_3x10/wanleg/config.h b/layouts/community/ortho_3x10/wanleg/config.h
deleted file mode 100644
index dc22454481..0000000000
--- a/layouts/community/ortho_3x10/wanleg/config.h
+++ /dev/null
@@ -1,26 +0,0 @@
-#pragma once
-
-//QMK DFU settings (ProMicro boards)
-// set top left key as bootloader mode escape key on Gherkin
-#if defined(KEYBOARD_40percentclub_gherkin) && !defined(FLIP)
-#define QMK_LED B0
-#define QMK_ESC_OUTPUT B4 // usually COL
-#define QMK_ESC_INPUT F7 // usually ROW
-#endif
-
-//change gherkin orientation (i.e. move USB port from right side to left side)
-#if defined(KEYBOARD_40percentclub_gherkin) && defined(FLIP)
-//need to fix QMKdfu setting:
-#define QMK_ESC_OUTPUT B6 // usually COL
-#define QMK_ESC_INPUT D0 // usually ROW
-#define QMK_LED B0
-
-//need to undefine standard 4x4 array before defining alternate ProMicro array
-#undef MATRIX_ROW_PINS
-#undef MATRIX_COL_PINS
-//standard config:
-//#define MATRIX_ROW_PINS { F7, B1, B3, B2, B6 }
-//#define MATRIX_COL_PINS { B4, E6, D7, C6, D4, D0 }
-#define MATRIX_ROW_PINS { B6, B2, B3, B1, F7 }
-#define MATRIX_COL_PINS { D0, D4, C6, D7, E6, B4 }
-#endif
diff --git a/layouts/community/ortho_3x10/wanleg/keymap.c b/layouts/community/ortho_3x10/wanleg/keymap.c
deleted file mode 100644
index 96d36eb312..0000000000
--- a/layouts/community/ortho_3x10/wanleg/keymap.c
+++ /dev/null
@@ -1,34 +0,0 @@
-#include QMK_KEYBOARD_H
-#include "wanleg.h"
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-[gGK] = LAYOUT_ortho_3x10_wrapper(
- _______________Gherkin_Row_0_______________,
- _______________Gherkin_Row_1_______________,
- _______________Gherkin_Row_2_______________
-),
-
-[gNUM] = LAYOUT_ortho_3x10_wrapper(
- _______________Gherkin_NUM_0_______________,
- _______________Gherkin_NUM_1_______________,
- _______________Gherkin_NUM_2_______________
-),
-
-[gDIR] = LAYOUT_ortho_3x10_wrapper(
- _______________Gherkin_DIR_0_______________,
- _______________Gherkin_DIR_1_______________,
- _______________Gherkin_DIR_2_______________
-),
-
-[gETC] = LAYOUT_ortho_3x10_wrapper(
- _______________Gherkin_ETC_0_______________,
- _______________Gherkin_ETC_1_______________,
- _______________Gherkin_ETC_2_______________
-),
-
-[_FN] = LAYOUT_ortho_3x10_wrapper(
- _______________Gherkin_FN_0________________,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
-),
-};
diff --git a/layouts/community/ortho_3x10/wanleg/readme.md b/layouts/community/ortho_3x10/wanleg/readme.md
deleted file mode 100644
index 17d2277f82..0000000000
--- a/layouts/community/ortho_3x10/wanleg/readme.md
+++ /dev/null
@@ -1,80 +0,0 @@
-![Gherkin Wanleg Layout Image](https://i.imgur.com/iNkR90W.png)
-# Gherkin Wanleg Layout
-This is the layout I came up with to preserve a standard QWERTY 104 key ANSI layout as much as possible, in as few layers as possible for a 30 key board.
-Here are the two Tap Dance keys I've set up for this board:
-
-Legend Name | Single Tap | Double Tap | Hold
---- | --- | --- | ---
-Sft//Cp | shift | caps lock | *null*
-Q//Esc | KC_Q | escape | *null*
-
-# Gherkin Flashing
-## Windows
-1. The standard Gherkin uses a ProMicro (or clone) microcontroller, which has the Caterina bootloader by default.
-2. If you have never flashed your ProMicro with QMK before, you will need to short the RST pin to GND to put it into bootloader mode (you only have 7 seconds to flash once it enters bootloader mode). You may need to touch the RST pin to GND **TWICE** in quick succession if it doesn't flash with just one touch.
-3. Once connected to your computer, you should be able to flash using
-`make gherkin:wanleg:avrdude`
-4. Once you've been able to successfully flash the ProMicro, you should be able to use the `QK_BOOT` key for future flashes instead of shorting the RST pin.
-
-## Linux
-### First Flash with QMK
-The built-in `:avrdude` QMK target in Linux doesn't work with the default Caterina bootloader on the ProMicro, so we have to use avrdude separately. The instructions below are adapted from https://deskthority.net/workshop-f7/how-to-use-a-pro-micro-as-a-cheap-controller-converter-like-soarer-s-t8448.html
-
-1. To flash the device, you need to have AVRdude installed. You can do this via your distro's package manager (or compile from source if needed).
-2. Once avrdude has been installed, open a terminal and run
-`ls /dev/tty*`
-3. Next, plug in your device and re-run `ls /dev/tty*`
-There should be one more device than was seen previously. Make a note of it. For me, it's `/dev/ttyACM0`.
-4. Navigate to the directory with your `.hex` file in it. Touch the RST pin to GND **TWICE** in quick succession, then run the following within 7 seconds:
-`sudo avrdude -p m32u4 -P YOUR_SERIAL_PORT -c avr109 -U flash:w:YOUR_FILENAME.hex`
-Replace YOUR_SERIAL_PORT with your serial port's device name, and YOUR_FILENAME.hex with the appropriate filename. For me, it looks like this:
-`sudo avrdude -p m32u4 -P /dev/ttyACM0 -c avr109 -U flash:w:gherkin_wanleg.hex`
-If you miss the 7 second window, the ProMicro will leave bootloader mode and the flash will fail. Hit `Control` + `C` to exit the `avrdude` command, connect RST to GND twice quickly, and try the `avrdude` command again.
-
-### Subsequent Flashes with QMK
-1. Re-flashing is similar to the initial flash procedure. Plug in your keyboard, open a terminal and run
-`ls /dev/tty*`
-2. Next, hit the `QK_BOOT` key on your keyboard and re-run the `ls /dev/tty*` command to find your keyboard's serial port.
-3. Flash your keyboard with the avrdude command you used for the initial flash within 7 seconds after hitting `QK_BOOT`.
-
-# ProMicro Bootloader Replacement (Caterina to QMK DFU)
-If you have an Arduino (or clone), you can replace the bootloader for a few extra features (e.g. no more 7 second "flash window", simplified Linux flashing, blinking LED when the ProMicro is in bootloader mode, ability to exit bootloader mode without unplugging your keyboard, among others).
-The instructions below have been adapted from https://www.reddit.com/r/olkb/comments/8sxgzb/replace_pro_micro_bootloader_with_qmk_dfu/)
-## Arduino Setup
-1. Upload the ArduinoISP sketch onto your Arduino board (https://www.arduino.cc/en/Tutorial/ArduinoISP).
-2. Wire the Arduino to the ProMicro
-
-| Arduino | ProMicro |
-| --- | --- |
-| 10 | RST |
-| 11 (MOSI) | 16 |
-| 12 (MISO) | 14 |
-| 13 (SCK) | 15 |
-| GND | GND |
-| 5V | VCC |
-
-## Make the QMK DFU .hex
-3. In `config.h` add the following. This is already set up in `qmk_firmware/layouts/community/ortho_3x10/wanleg`. You only need to do this on other keymaps.
-```
-#define QMK_ESC_OUTPUT B4
-#define QMK_ESC_INPUT F7
-#define QMK_LED B0
-```
-The `QMK_ESC_` lines define where the bootloader escape key is. Refer to the `MATRIX_ROW_PINS` and `MATRIX_COL_PINS` lines in your keyboard's `config.h` to choose your preferred key.
-You hit the bootloader escape key to exit bootloader mode after you've hit the QK_BOOT key to enter bootloader mode (e.g. if you change your mind and don't want to flash just then).
-On a Gherkin, B4/F7 corresponds to the top-left corner key.
-`B0` is an indicator light on one of the ProMicro's onboard LEDs. With QMK DFU, it will flash to indicate the ProMicro is in bootloader mode.
-You can add `#define QMK_SPEAKER C6` if you have a speaker hooked up to pin C6. The Gherkin PCB already uses pin C6 in its switch layout, so you cannot use a speaker on a standard Gherkin.
-4. Also, you should add `BOOTLOADER = qmk-dfu` to your `rules.mk` file, so it is flagged properly. Again, this is already set up in `qmk_firmware/layouts/community/ortho_3x10/wanleg`.
-5. Once you've made the required edits, it's time to compile the firmware. If you use the `:production` target when compiling, it will produce the usual `.hex` file as well as `_bootloader.hex` and `_production.hex` files. The `_production.hex` will be what we want. This contains the bootloader and the firmware, so we only have to flash once (rather than flash the bootloader, and THEN flash the firmware).
-For example
-`make <keyboard>:<keymap>:production`
-
-## Burn QMK DFU
-6. Navigate to the directory with your `_production.hex` file, and burn it with the following command
-`avrdude -b 19200 -c avrisp -p m32u4 -v -e -U lock:w:0x3F:m -U efuse:w:0xC3:m -U hfuse:w:0xD9:m -U lfuse:w:0x5E:m -U YOUR_production.hex -P comPORT`
-Change `comPORT` to whatever port is used by the Arduino (e.g. `com11` in Windows or `/dev/ttyACM0` in Linux). Use Device Manager in Windows to find the port being used. Use `ls /dev/tty*` in Linux. Change `YOUR_production.hex` to whatever you've created in the previous step.
-
-## Using QMK DFU
-7. Once QMK DFU is burned to your ProMicro, you can then flash subsequent hex files with
-`make gherkin:<keymap>:dfu`
diff --git a/layouts/community/ortho_3x10/wanleg/rules.mk b/layouts/community/ortho_3x10/wanleg/rules.mk
deleted file mode 100644
index efd11f7f80..0000000000
--- a/layouts/community/ortho_3x10/wanleg/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-BOOTLOADER = qmk-dfu \ No newline at end of file
diff --git a/layouts/community/ortho_3x3/readme.md b/layouts/community/ortho_3x3/readme.md
new file mode 100644
index 0000000000..b6b2053565
--- /dev/null
+++ b/layouts/community/ortho_3x3/readme.md
@@ -0,0 +1,3 @@
+# ortho_3x3
+
+ LAYOUT_ortho_3x3
diff --git a/layouts/community/ortho_4x10/manna-harbour_miryoku/config.h b/layouts/community/ortho_4x10/manna-harbour_miryoku/config.h
deleted file mode 100644
index 99f40f2dc8..0000000000
--- a/layouts/community/ortho_4x10/manna-harbour_miryoku/config.h
+++ /dev/null
@@ -1,36 +0,0 @@
-// Copyright 2019 Manna Harbour
-// https://github.com/manna-harbour/miryoku
-
-// 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 XXX KC_NO
-
-#if defined MIRYOKU_MAPPING_ROTATE
-#define LAYOUT_miryoku( \
-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, \
-N30, N31, K32, K33, K34, K35, K36, K37, N38, N39 \
-) \
-LAYOUT_ortho_4x10( \
-XXX, XXX, K37, K36, K35, K34, K33, K32, XXX, XXX, \
-K29, K28, K27, K26, K25, K24, K23, K22, K21, K20, \
-K19, K18, K17, K16, K15, K14, K13, K12, K11, K10, \
-K09, K08, K07, K06, K05, K04, K03, K02, K01, K00 \
-)
-#else
-#define LAYOUT_miryoku(\
-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, \
-N30, N31, K32, K33, K34, K35, K36, K37, N38, N39 \
-) \
-LAYOUT_ortho_4x10( \
-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, \
-XXX, XXX, K32, K33, K34, K35, K36, K37, XXX, XXX \
-)
-#endif
diff --git a/layouts/community/ortho_4x10/manna-harbour_miryoku/keymap.c b/layouts/community/ortho_4x10/manna-harbour_miryoku/keymap.c
deleted file mode 100644
index dbab7f9820..0000000000
--- a/layouts/community/ortho_4x10/manna-harbour_miryoku/keymap.c
+++ /dev/null
@@ -1,4 +0,0 @@
-// Copyright 2019 Manna Harbour
-// https://github.com/manna-harbour/miryoku
-
-// 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/>.
diff --git a/layouts/community/ortho_4x10/readme.md b/layouts/community/ortho_4x10/readme.md
new file mode 100644
index 0000000000..c5c29251c8
--- /dev/null
+++ b/layouts/community/ortho_4x10/readme.md
@@ -0,0 +1,3 @@
+# ortho_4x10
+
+ LAYOUT_ortho_4x10
diff --git a/layouts/community/ortho_4x10/scotto/keymap.c b/layouts/community/ortho_4x10/scotto/keymap.c
deleted file mode 100644
index 919764324b..0000000000
--- a/layouts/community/ortho_4x10/scotto/keymap.c
+++ /dev/null
@@ -1,74 +0,0 @@
-/*
-Copyright 2023 Joe Scotto
-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 "scotto.h"
-
-#define LAYOUT_ortho_4x10_wrapper(...) LAYOUT_ortho_4x10(__VA_ARGS__)
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [0] = LAYOUT_ortho_4x10_wrapper(
- _________________KEYMAP1__________________,
- _________________KEYMAP2__________________,
- _________________KEYMAP3a_________________,
- KC_NO, KC_NO, _______THUMB6_1_______, KC_NO, KC_NO
- ),
- [1] = LAYOUT_ortho_4x10_wrapper(
- ______________SYM_MEDIA_NAV1______________,
- ______________SYM_MEDIA_NAV2______________,
- ______________SYM_MEDIA_NAV3______________,
- KC_NO, KC_NO, _____THUMB6_TRNS______, KC_NO, KC_NO
- ),
- [2] = LAYOUT_ortho_4x10_wrapper(
- _________________NUM_SYM1_________________,
- _________________NUM_SYM2_________________,
- _________________NUM_SYM3a________________,
- KC_NO, KC_NO, _____THUMB6_TRNS______, KC_NO, KC_NO
- ),
- [3] = LAYOUT_ortho_4x10_wrapper(
- ________________FUNC_SYS1a________________,
- ________________FUNC_SYS2_________________,
- ________________FUNC_SYS3_________________,
- KC_NO, KC_NO, _____THUMB6_TRNS______, KC_NO, KC_NO
- ),
- [4] = LAYOUT_ortho_4x10_wrapper(
- _________________KEYMAP1__________________,
- _________________KEYMAP2__________________,
- _________________KEYMAP3a_________________,
- KC_NO, KC_NO, _______THUMB6_4_______, KC_NO, KC_NO
- ),
- [5] = LAYOUT_ortho_4x10_wrapper(
- _________________KEYMAP1__________________,
- _________________KEYMAP2__________________,
- _________________KEYMAP3b_________________,
- KC_NO, KC_NO, _______THUMB6_5_______, KC_NO, KC_NO
- ),
- [6] = LAYOUT_ortho_4x10_wrapper(
- ______________SYM_MEDIA_NAV1______________,
- ______________SYM_MEDIA_NAV2______________,
- ______________SYM_MEDIA_NAV3______________,
- KC_NO, KC_NO, _____THUMB6_TRNS______, KC_NO, KC_NO
- ),
- [7] = LAYOUT_ortho_4x10_wrapper(
- _________________NUM_SYM1_________________,
- _________________NUM_SYM2_________________,
- _________________NUM_SYM3b________________,
- KC_NO, KC_NO, _____THUMB6_TRNS______, KC_NO, KC_NO
- ),
- [8] = LAYOUT_ortho_4x10_wrapper(
- ________________FUNC_SYS1b________________,
- ________________FUNC_SYS2_________________,
- ________________FUNC_SYS3_________________,
- KC_NO, KC_NO, _____THUMB6_TRNS______, KC_NO, KC_NO
- )
-};
diff --git a/layouts/community/ortho_4x12/ajp10304/keymap.c b/layouts/community/ortho_4x12/ajp10304/keymap.c
deleted file mode 100644
index 9e9096c33e..0000000000
--- a/layouts/community/ortho_4x12/ajp10304/keymap.c
+++ /dev/null
@@ -1,219 +0,0 @@
-/* Copyright 2021 Alan Pocklington
- *
- * 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 "ajp10304.h"
-#include "keymap_uk.h"
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
-/* Qwerty
- * ,-----------------------------------------------------------------------------------.
- * | Esc | Q | W | E | R | T | Y | U | I | O | P | Bksp |
- * |------+------+------+------+------+-------------+------+------+------+------+------|
- * | Tab | A | S | D | F | G | H | J | K | L | ;: | Enter|
- * |------+------+------+------+------+------|------+------+------+------+------+------|
- * | Shft | Z | X | C | V | B | N | M | ,< | .> | /? | Shft |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | Fn | Ctrl | Alt | GUI |Lower | Bksp |Space |Raise | Shift| MENU | Ctrl | Fn2 |
- * `-----------------------------------------------------------------------------------'
- */
-[_QWERTY] = LAYOUT_ortho_4x12(
- LT(_NUMPAD, KC_ESC), KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC ,
- MT(MOD_LSFT, KC_TAB), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, MT(MOD_RSFT, 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 ,
- MO(_FUNC), KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_BSPC, KC_SPC, RAISE, KC_LSFT, KC_BTN2, KC_RCTL, MO(_FUNC2)
-),
-
-/* Colemak-DHm
- * ,-----------------------------------------------------------------------------------.
- * | Esc | Q | W | F | P | B | J | L | U | Y | ;: | Bksp |
- * |------+------+------+------+------+-------------+------+------+------+------+------|
- * | Tab | A | R | S | T | G | M | N | E | I | O | Enter|
- * |------+------+------+------+------+------|------+------+------+------+------+------|
- * | Shft | Z | X | C | D | V | K | H | ,< | .> | /? | Shft |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | Fn | Ctrl | Alt | GUI |Lower | Bksp |Space |Raise | Shift| MENU | Ctrl | Fn2 |
- * `-----------------------------------------------------------------------------------'
- */
-[_COLEMAK] = LAYOUT_ortho_4x12(
- LT(_NUMPAD, KC_ESC), KC_Q, KC_W, KC_F, KC_P, KC_B, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC ,
- MT(MOD_LSFT, KC_TAB), KC_A, KC_R, KC_S, KC_T, KC_G, KC_M, KC_N, KC_E, KC_I, KC_O, MT(MOD_RSFT, KC_ENT) ,
- KC_LSFT, KC_Z, KC_X, KC_C, KC_D, KC_V, KC_K, KC_H, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT ,
- MO(_FUNC), KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_BSPC, KC_SPC, RAISE, KC_LSFT, KC_BTN2, KC_RCTL, MO(_FUNC2)
-),
-
-/* Function
- * ,-----------------------------------------------------------------------------------.
- * | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 |
- * |------+------+------+------+------+-------------+------+------+------+------+------|
- * | 1! | 2" | 3£ | 4$ | 5% | 6^ | 7& | 8* | 9( | 0) | ~ |INSERT|
- * |------+------+------+------+------+------|------+------+------+------+------+------|
- * | Shift| \| | `¬ | #~ | * | -_ | =+ | \| | [{ | ]} | '@ |Shift |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | Fn | Ctrl | Alt | GUI |Lower | Bksp |Space |Mouse | MENU | Alt | Ctrl | Fn |
- * `-----------------------------------------------------------------------------------'
- */
-[_FUNC] = LAYOUT_ortho_4x12(
- 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_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, UK_TILD, KC_INSERT ,
- KC_LSFT, KC_NUBS, KC_GRAVE, KC_NONUS_HASH, KC_PAST, KC_MINS, KC_EQL, KC_BSLS, KC_LBRC, KC_RBRC, KC_QUOT, MT(MOD_RSFT, KC_ENT) ,
- _______, _______, _______, _______, _______, _______, _______, MO(_MOUSE), _______, _______, _______, _______
-),
-
-/* Lower
- * ,-----------------------------------------------------------------------------------.
- * | 1! | 2" | 3£ | 4$ | 5% | 6^ | 7& | 8* | 9( | 0) | DEL | Bksp |
- * |------+------+------+------+------+-------------+------+------+------+------+------|
- * | ! | " | £ | $ | % | ^ | & | * | ( | ) |WrdDel|WrdBks|
- * |------+------+------+------+------+------|------+------+------+------+------+------|
- * | Shift| \| | `¬ | #~ | '@ | -_ | =+ | #~ | [{ | ]} | '@ |Shift |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | | | | |Lower | Del |Space | | Next | Vol- | Vol+ | Play |
- * `-----------------------------------------------------------------------------------'
- */
-[_LOWER] = LAYOUT_ortho_4x12(
- KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL, KC_BSPC ,
- LSFT(KC_1), LSFT(KC_2), LSFT(KC_3), LSFT(KC_4), LSFT(KC_5), LSFT(KC_6), LSFT(KC_7), LSFT(KC_8), LSFT(KC_9), LSFT(KC_0), LCTL(KC_DEL), LCTL(KC_BSPC) ,
- SC_LSPO, KC_NUBS, KC_GRAVE, KC_NONUS_HASH, KC_QUOT, KC_MINS, KC_EQL, KC_NONUS_HASH, KC_LBRC, KC_RBRC, KC_QUOT, MT(MOD_RSFT, KC_ENT) ,
- _______, _______, _______, _______, _______, KC_DEL, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY
-),
-
-/* Raise
- * ,-----------------------------------------------------------------------------------.
- * | ` | |WRDSEL| [ | ] | | | PGUP | HOME |PGDOWN| |PRNTSC|
- * |------+------+------+------+------+-------------+------+------+------+------+------|
- * | ` | | | ( | ) | | | HOME | UP | END | |ZOOM +|
- * |------+------+------+------+------+------|------+------+------+------+------+------|
- * | | | | { | } | | |< | LEFT | DOWN |RIGHT | >| |ZOOM -|
- * |------+------+------+------+------+------|------+------+------+------+------+------|
- * | Mouse| | | | | Alt | Enter|Raise | | | | |
- * `-----------------------------------------------------------------------------------'
- */
-[_RAISE] = LAYOUT_ortho_4x12(
- KC_GRV, XXXXXXX, M_WORD_SEL, KC_LBRC, KC_RBRC, XXXXXXX, XXXXXXX, KC_PGUP, KC_HOME, KC_PGDN, XXXXXXX, KC_PSCR ,
- KC_GRV, XXXXXXX, XXXXXXX, LSFT(KC_9), LSFT(KC_0), XXXXXXX, XXXXXXX, KC_HOME, KC_UP, KC_END, XXXXXXX, LCTL(LSFT(KC_EQL)) ,
- _______, XXXXXXX, XXXXXXX, LSFT(KC_LBRC), LSFT(KC_RBRC), XXXXXXX, LCTL(KC_LEFT), KC_LEFT, KC_DOWN, KC_RIGHT, LCTL(KC_RIGHT), LCTL(KC_MINS) ,
- MO(_MOUSE), _______, _______, _______, _______, KC_LALT, KC_ENT, _______, XXXXXXX, _______, _______, _______
-),
-
-/* Adjust (Lower + Raise)
- * ,------------------------------------------------------------------------------------.
- * | ???? | Reset|Qwerty| | | REC1 | REC2 | | | | | Del |
- * |------+------+------+------+------+-------------+------+------+------+------+-------|
- * | CAPS | | | | | PLAY1| PLAY2| Mute | Vol+ | Play | |Qwerty |
- * |------+------+------+------+------+------|------+------+------+------+------+-------|
- * | PC/MC| | | | | STOP | STOP | Prev | Vol- | Next | |Colemak|
- * |------+------+------+------+------+------+------+------+------+------+------+-------|
- * | | | | | | | | | | | |
- * `------------------------------------------------------------------------------------'
- */
-[_ADJUST] = LAYOUT_ortho_4x12(
- M_CUSTOM, QK_BOOT, QWERTY, BL_ON, BL_OFF, DM_REC1, DM_REC2, _______, _______, _______, _______, KC_DEL ,
- KC_CAPS, RGB_TOG, RGB_MOD, RGB_VAD, RGB_VAI, DM_PLY1, DM_PLY2, KC_AUDIO_MUTE, KC_AUDIO_VOL_UP, KC_MEDIA_PLAY_PAUSE, _______, QWERTY ,
- TG(_MAC), RGB_HUD, RGB_HUI, RGB_SAD, RGB_SAI, DM_RSTP, DM_RSTP, KC_MEDIA_PREV_TRACK, KC_AUDIO_VOL_DOWN, KC_MEDIA_NEXT_TRACK, _______, COLEMAK ,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
-),
-
-/* Mouse
- * ,-----------------------------------------------------------------------------------.
- * | ESC | | | | | | WH_L | WH_UP| BTN3 | WH_D | WH_R | |
- * |------+------+------+------+------+-------------+------+------+------+------+------|
- * | ACC0 | ACC1 | ACC2 | | | | | BTN1 | UP | BTN2 | | |
- * |------+------+------+------+------+------|------+------+------+------+------+------|
- * | ACC0 | ACC1 | ACC2 | | | | | LEFT | DOWN |RIGHT | | |
- * |------+------+------+------+------+------|------+------+------+------+------+------|
- * | | | | | | | | | | | | |
- * `-----------------------------------------------------------------------------------'
- */
-[_MOUSE] = LAYOUT_ortho_4x12(
- KC_ESC , _______, _______, _______, _______, _______, KC_MS_WH_LEFT, KC_MS_WH_UP, KC_MS_BTN3, KC_MS_WH_DOWN, KC_MS_WH_RIGHT, _______,
- KC_MS_ACCEL0, KC_MS_ACCEL1, KC_MS_ACCEL2, _______, _______, _______, _______, KC_MS_BTN1, KC_MS_UP, KC_MS_BTN2, _______, _______,
- KC_MS_ACCEL0, KC_MS_ACCEL1, KC_MS_ACCEL2, _______, _______, _______, _______, KC_MS_LEFT, KC_MS_DOWN, KC_MS_RIGHT, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
-),
-
-/* Num Pad
- * ,-----------------------------------------------------------------------------------.
- * | ESC | | | | | |NMLOCK| 7 | 8 | 9 | / | |
- * |------+------+------+------+------+-------------+------+------+------+------+------|
- * | | | | | | | | 4 | 5 | 6 | * | |
- * |------+------+------+------+------+------|------+------+------+------+------+------|
- * | | | | | | | | 1 | 2 | 3 | + | |
- * |------+------+------+------+------+------|------+------+------+------+------+------|
- * | | | | | | | | 0 | . | , | - | |
- * `-----------------------------------------------------------------------------------'
- */
-[_NUMPAD] = LAYOUT_ortho_4x12(
- _______, _______, _______, _______, _______, _______, KC_NUM, KC_KP_7, KC_KP_8, KC_KP_9, KC_KP_SLASH, _______,
- _______, _______, _______, _______, _______, _______, _______, KC_KP_4, KC_KP_5, KC_KP_6, KC_KP_ASTERISK, _______,
- _______, _______, _______, _______, _______, _______, _______, KC_KP_1, KC_KP_2, KC_KP_3, KC_KP_PLUS, _______,
- _______, _______, _______, _______, _______, _______, _______, KC_KP_0, KC_KP_DOT, KC_COMM, KC_KP_MINUS, _______
-),
-
-/* Function 2 (Right hand side)
- * ,-----------------------------------------------------------------------------------.
- * | | |WRDSEL| | | | LNDEL| | | | | |
- * |------+------+------+------+------+-------------+------+------+------+------+------|
- * | | | LNSEL| DUP | | | | |LNJOIN| | | |
- * |------+------+------+------+------+------|------+------+------+------+------+------|
- * | | UNDO | CUT | COPY | PASTE| | | | | | | MODE |
- * |------+------+------+------+------+------|------+------+------+------+------+------|
- * | | | | | | | | | | | | |
- * `-----------------------------------------------------------------------------------'
- */
-[_FUNC2] = LAYOUT_ortho_4x12(
- _______, _______, M_WORD_SEL, _______, _______, _______, M_LINE_DEL, _______, _______, _______, _______, _______,
- _______, _______, M_LINE_SEL, M_DUP, _______, _______, _______, M_JOIN, _______, _______, _______, _______,
- _______, LCTL(KC_Z), LCTL(KC_X), LCTL(KC_C), LCTL(KC_V), _______, _______, _______, _______, _______, _______, M_MODE,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
-),
-
-[_MAC]= LAYOUT_ortho_4x12(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- MFNC, _______, _______, _______, MLWR, _______, _______, MRSE, _______, _______, _______, MFNC2
-),
-
-[_MLWR] = LAYOUT_ortho_4x12(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
-),
-
-[_MRSE] = LAYOUT_ortho_4x12(
- _______, _______, M_WORD_SEL_MAC, _______, _______, _______, _______, _______, _______, _______, _______, _______ ,
- _______, _______, _______, _______, _______, _______, _______, LCTL(KC_A), _______, LCTL(KC_E), _______, LGUI(KC_EQL) ,
- _______, _______, _______, _______, _______, _______, LALT(KC_LEFT), _______, _______, _______, LALT(KC_RIGHT), LGUI(KC_MINS) ,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
-),
-
-[_MFNC]= LAYOUT_ortho_4x12(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, LGUI(KC_PENT) ,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
-),
-
-[_MFNC2] = LAYOUT_ortho_4x12(
- _______, _______, M_WORD_SEL_MAC, _______, _______, _______, M_LINE_DEL_MAC, _______, _______, _______, _______, _______,
- _______, _______, M_LINE_SEL_MAC, M_DUP_MAC, _______, _______, _______, M_JOIN_MAC, _______, _______, _______, _______,
- _______, LGUI(KC_Z), LGUI(KC_X), LGUI(KC_C), LGUI(KC_V), _______, _______, _______, _______, _______, _______, M_MODE_MAC,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
-)
-
-};
diff --git a/layouts/community/ortho_4x12/ajp10304/readme.md b/layouts/community/ortho_4x12/ajp10304/readme.md
deleted file mode 100644
index 402e9426dd..0000000000
--- a/layouts/community/ortho_4x12/ajp10304/readme.md
+++ /dev/null
@@ -1,126 +0,0 @@
-# AJP10304 Ortho 4x12 Layout
-# For Planck, Shark, Quark, JJ40 and Atreus50
-
-**Note:** In the tables below where there are two characters on a key,
-the second is the output when shift is applied.
-
-**Note:** The below tables assume a UK layout.
-
-#### Flashing
-Refer to the README.md of the keyboard you want to flash.
-
-##### Main Qwerty Layer
-
-* Tab: when held, operates as shift.
-* Enter: when held, operates as shift.
-* MENU: perform right-click
-
-| | | | | | | | | | | | |
-| ---- |:----:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| ----:|
-| Esc | Q | W | E | R | T | Y | U | I | O | P | Bksp |
-| Tab | A | S | D | F | G | H | J | K | L | ;: | Enter|
-| Shft | Z | X | C | V | B | N | M | ,< | .> | /? | Shft |
-| Fn | Ctrl | Alt | GUI |Lower | Bksp |Space |Raise | Shift| MENU | Ctrl | Fn2 |
-
-##### Main Colemak-DHm Layer
-
-| | | | | | | | | | | | |
-| ---- |:----:| :---:|:---:|:-----:|:----:|:-----:|:-----:|:-----:|:----:|:----:| ----:|
-| Esc | Q | W | F | P | B | J | L | U | Y | ;: | Bksp |
-| Tab | A | R | S | T | G | M | N | E | I | O | Enter|
-| Shft | Z | X | C | D | V | K | H | ,< | .> | /? | Shft |
-| Fn | Ctrl | Alt | GUI | Lower | Bksp | Space | Raise | Shift | MENU | Ctrl | Fn2 |
-
-##### Function Layer
-Activated when `fn` held in the above `qwerty` layer.
-
-| | | | | | | | | | | | |
-| :---: |:----:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:|
-| F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 |
-| 1! | 2" | 3£ | 4$ | 5% | 6^ | 7& | 8* | 9( | 0) | ~ |INSERT|
-| Shift | \| | `¬ | #~ | * | -_ | =+ | \| | [{ | ]} | '@ |Shift |
-| Fn | Ctrl | Alt | GUI |Lower | Bksp |Space |Mouse | MENU | Alt | Ctrl | Fn2 |
-
-##### Lower Layer
-Activated when `Lower` is held in the above `qwerty` layer.
-
-* Numbers are along the top row, their shifted counterparts are on row 2.
-* WrdBks: `backspace` with `ctrl` applied. I.e. delete a word.
-* WrdDel: `delete` with `ctrl` applied. I.e. forward delete a word.
-
-| | | | | | | | | | | | |
-| :---: |:----:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:|
-| 1! | 2" | 3£ | 4$ | 5% | 6^ | 7& | 8* | 9( | 0) | DEL | Bksp |
-| ! | " | £ | $ | % | ^ | & | * | ( | ) |WrdDel|WrdBks|
-| Shift | \| | `¬ | #~ | '@ | -_ | =+ | #~ | [{ | ]} | '@ |Shift |
-| | | | |Lower | Del |Space | | Next | Vol- | Vol+ | Play |
-
-##### Raise Layer
-Activated when `Raise` is held in the above `qwerty` layer.
-
-* Preferred layer for typing brackets.
-* Allows for cursor navigation to be used solely with the right hand.
-* WRDSEL: Select the word where the cursor is.
-* |< and >|: Apply `ctrl` to `left` and `right` respectively for word jumping.
-
-| | | | | | | | | | | | |
-| :---: |:----:| :---:| :---:| :---:| :---:| :---: | :---:| :---:| :---:| :---: | :---:|
-| ` | |WRDSEL| [ | ] | | | PGUP | HOME |PGDOWN| |PRNTSC|
-| ` | | | ( | ) | | | HOME | UP | END | |ZOOM +|
-| | | | { | } | |&#124;<| LEFT | DOWN |RIGHT |>&#124;|ZOOM -|
-| Mouse | | | | | Alt | Enter |Raise | | | | |
-
-##### Lower + Raise
-Activated when `Lower` and `Raise` are held together in the above `qwerty` layer.
-
-* Audio controls in the same position as cursor keys from the `Raise` layer.
-* ????: Runs a macro for outputting a text string. Do not use this store passwords.
-* Reset: Enter bootloader for flashing firmware to the keyboard.
-* CAPS: Toggle caps lock.
-* Macro functions: Allows recording of macros. To start recording the macro, press either REC1 or REC2.
-To finish the recording, press STOP. To replay the macro, press either PLAY1 or PLAY2.
-* MAC: Toggle MAC OS extensions to layers. This allows MLWR to be enabled with LOWER,
-MRSE with RAISE, MFNC with FUNC and MFNC2 with FUNC2 respectively.
-
-| | | | | | | | | | | | |
-| :---: |:----:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:|:-------:|
-| ???? | Reset|Qwerty| | | REC1 | REC2 | | | | | Del |
-| CAPS | | | | | PLAY1|PLAY2 | Mute | Vol+ | Play | | Qwerty |
-| MAC | | | | | STOP1|STOP2 | Prev | Vol- | Next | | Colemak |
-| | | | | | | | | DYN | | | |
-
-##### Function 2 Layer
-Activated when `fn` held in the above `qwerty` layer.
-* WRDSEL: Select the word where the cursor is.
-* LNDEL: Delete the line where the cursor is.
-* LNSEL: Select the line where the cursor is.
-* DUP: Duplicate the selected text.
-* LNJOIN: Join the line where the cursor is with the following line.
-* MODE: Print either `PC` or `OSX` depending on what layer mode is active.
-
-| | | | | | | | | | | | |
-| :---: | :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:|
-| | |WRDSEL| | | | LNDEL| | | | | |
-| | | LNSEL| DUP | | | | |LNJOIN| | | |
-| | UNDO | CUT | COPY | PASTE| | | | | | | MODE |
-| | | | | | | | | | | | |
-
-##### Mouse Layer
-Activated when `fn` and `raise` held together.
-
-| | | | | | | | | | | | |
-| :---: | :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:|
-| ESC | | | | | | W_L | W_UP | BTN3 | W_DWN| W_R | |
-| ACC0 | ACC1 | ACC2 | | | | | BTN1 | UP | BTN2 | | |
-| ACC0 | ACC1 | ACC2 | | | | | LEFT | DOWN | RIGHT| | |
-| | | | | | | | | | | | |
-
-##### Number Pad Layout
-Activated when holding `Esc` key.
-
-| | | | | | | | | | | | |
-| :---: | :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:|
-| | | | | | |NMLOCK| 7 | 8 | 9 | / | |
-| | | | | | | | 4 | 5 | 6 | * | |
-| | | | | | | | 1 | 2 | 3 | + | |
-| | | | | | | | 0 | . | , | - | |
diff --git a/layouts/community/ortho_4x12/ajp10304/rules.mk b/layouts/community/ortho_4x12/ajp10304/rules.mk
deleted file mode 100644
index ebe923c9b3..0000000000
--- a/layouts/community/ortho_4x12/ajp10304/rules.mk
+++ /dev/null
@@ -1,3 +0,0 @@
-AUDIO_ENABLE = no
-MOUSEKEY_ENABLE = yes
-DYNAMIC_MACRO_ENABLE = yes
diff --git a/layouts/community/ortho_4x12/alfrdmalr/config.h b/layouts/community/ortho_4x12/alfrdmalr/config.h
deleted file mode 100644
index 58c9d57abc..0000000000
--- a/layouts/community/ortho_4x12/alfrdmalr/config.h
+++ /dev/null
@@ -1,5 +0,0 @@
-#pragma once
-
-#ifdef AUDIO_ENABLE
- #define STARTUP_SONG SONG(NO_SOUND)
-#endif \ No newline at end of file
diff --git a/layouts/community/ortho_4x12/alfrdmalr/keymap.c b/layouts/community/ortho_4x12/alfrdmalr/keymap.c
deleted file mode 100644
index 14b7633965..0000000000
--- a/layouts/community/ortho_4x12/alfrdmalr/keymap.c
+++ /dev/null
@@ -1,44 +0,0 @@
-#include "alfrdmalr.h"
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
-// QWERTY
-[_QWERTY] = LAYOUT_ortho_4x12_wrapper(
- K10, ____QWERTY_L1____, ____QWERTY_R1____, K1B,
- K20, ____QWERTY_L2____, ____QWERTY_R2____, K2B,
- K30, ____QWERTY_L3____, ____QWERTY_R3____, K3B,
- K40, _____BASE_L4_____, _____BASE_R4_____, K4B
-),
-
-// SYMBOL
-[_SYMBOL] = LAYOUT_ortho_4x12_wrapper(
- K10_SYM, ____SYMBOL_L1____, ____SYMBOL_R1____, K1B_SYM,
- K20_SYM, ____SYMBOL_L2____, ____SYMBOL_R2____, K2B_SYM,
- K30_SYM, ____SYMBOL_L3____, ____SYMBOL_R3____, K3B_SYM,
- K40_SYM, ____SYMBOL_L4____, ____SYMBOL_R4____, K4B_SYM
-),
-
-// NAVIGATION
-[_NAVIGATION] = LAYOUT_ortho_4x12_wrapper(
- K10_NAV, __NAVIGATION_L1__, __NAVIGATION_R1__, K1B_NAV,
- K20_NAV, __NAVIGATION_L2__, __NAVIGATION_R2__, K2B_NAV,
- K30_NAV, __NAVIGATION_L3__, __NAVIGATION_R3__, K3B_NAV,
- K40_NAV, __NAVIGATION_L4__, __NAVIGATION_R4__, K4B_NAV
-),
-
-// NUMPAD
-[_NUMPAD] = LAYOUT_ortho_4x12_wrapper(
- K10_NUM, ____NUMPAD_L1____, ____NUMPAD_R1____, K1B_NUM,
- K20_NUM, ____NUMPAD_L2____, ____NUMPAD_R2____, K2B_NUM,
- K30_NUM, ____NUMPAD_L3____, ____NUMPAD_R3____, K3B_NUM,
- K40_NUM, ____NUMPAD_L4____, ____NUMPAD_R4____, K4B_NUM
-),
-
-// SETTINGS
-[_SETTINGS] = LAYOUT_ortho_4x12_wrapper(
- K10_SET, ___SETTINGS_L1___, ___SETTINGS_R1___, K1B_SET,
- K20_SET, ___SETTINGS_L2___, ___SETTINGS_R2___, K2B_SET,
- K30_SET, ___SETTINGS_L3___, ___SETTINGS_R3___, K3B_SET,
- K40_SET, ___SETTINGS_L4___, ___SETTINGS_R4___, K4B_SET
-)
-}; \ No newline at end of file
diff --git a/layouts/community/ortho_4x12/bakingpy/config.h b/layouts/community/ortho_4x12/bakingpy/config.h
deleted file mode 100644
index fcfa2ca49c..0000000000
--- a/layouts/community/ortho_4x12/bakingpy/config.h
+++ /dev/null
@@ -1,29 +0,0 @@
-#pragma once
-
-#define USE_I2C
-
-/* Select hand configuration */
-//#define MASTER_RIGHT
-
-#define TAPPING_TERM 150
-
-#undef RGBLED_NUM
-#define RGBLIGHT_EFFECT_BREATHING
-#define RGBLIGHT_EFFECT_RAINBOW_MOOD
-#define RGBLIGHT_EFFECT_RAINBOW_SWIRL
-#define RGBLIGHT_EFFECT_SNAKE
-#define RGBLIGHT_EFFECT_KNIGHT
-#define RGBLIGHT_EFFECT_CHRISTMAS
-#define RGBLIGHT_EFFECT_STATIC_GRADIENT
-#define RGBLIGHT_EFFECT_RGB_TEST
-#define RGBLIGHT_EFFECT_ALTERNATING
-#define RGBLIGHT_EFFECT_TWINKLE
-#define RGBLED_NUM 12
-#define RGBLED_SPLIT { 6, 6 }
-#define RGBLIGHT_HUE_STEP 8
-#define RGBLIGHT_SAT_STEP 8
-#define RGBLIGHT_VAL_STEP 8
-
-#ifdef AUDIO_ENABLE
-#define AUDIO_PIN C6
-#endif
diff --git a/layouts/community/ortho_4x12/bakingpy/keymap.c b/layouts/community/ortho_4x12/bakingpy/keymap.c
deleted file mode 100644
index f43bc5ad24..0000000000
--- a/layouts/community/ortho_4x12/bakingpy/keymap.c
+++ /dev/null
@@ -1,200 +0,0 @@
-#include QMK_KEYBOARD_H
-
-extern keymap_config_t keymap_config;
-
-enum layer_names {
- _MAC,
- _WINDOWS,
- _TESTMODE,
- _LOWER,
- _RAISE,
- _FKEYS,
- _ADJUST,
-};
-
-enum custom_keycodes {
- MAC = SAFE_RANGE,
- WINDOWS,
- TESTMODE,
- LOWER,
- RAISE,
- ADJUST,
-};
-
-#define KC_ KC_TRNS
-
-#define KC_CAPW LGUI(LSFT(KC_3)) // Capture whole screen
-#define KC_CPYW LGUI(LSFT(LCTL(KC_3))) // Copy whole screen
-#define KC_CAPP LGUI(LSFT(KC_4)) // Capture portion of screen
-#define KC_CPYP LGUI(LSFT(LCTL(KC_4))) // Copy portion of screen
-#define KC_ESCC MT(MOD_LCTL, KC_ESC)
-#define KC_LOWR LOWER
-#define KC_RASE RAISE
-#define KC_GRVF LT(_FKEYS, KC_GRV)
-#define KC_ENTS MT(MOD_LSFT, KC_ENT)
-#define KC_BL_S BL_STEP
-#define KC_BL_T BL_TOGG
-#define KC_RMOD RGB_MOD
-
-#ifndef LAYOUT_kc_ortho_4x12
-#define LAYOUT_kc_ortho_4x12( \
- L00, L01, L02, L03, L04, L05, R00, R01, R02, R03, R04, R05, \
- L10, L11, L12, L13, L14, L15, R10, R11, R12, R13, R14, R15, \
- L20, L21, L22, L23, L24, L25, R20, R21, R22, R23, R24, R25, \
- L30, L31, L32, L33, L34, L35, R30, R31, R32, R33, R34, R35 \
- ) \
- LAYOUT_ortho_4x12( \
- KC_##L00, KC_##L01, KC_##L02, KC_##L03, KC_##L04, KC_##L05, KC_##R00, KC_##R01, KC_##R02, KC_##R03, KC_##R04, KC_##R05, \
- KC_##L10, KC_##L11, KC_##L12, KC_##L13, KC_##L14, KC_##L15, KC_##R10, KC_##R11, KC_##R12, KC_##R13, KC_##R14, KC_##R15, \
- KC_##L20, KC_##L21, KC_##L22, KC_##L23, KC_##L24, KC_##L25, KC_##R20, KC_##R21, KC_##R22, KC_##R23, KC_##R24, KC_##R25, \
- KC_##L30, KC_##L31, KC_##L32, KC_##L33, KC_##L34, KC_##L35, KC_##R30, KC_##R31, KC_##R32, KC_##R33, KC_##R34, KC_##R35 \
- )
-
-#endif
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
- [_MAC] = LAYOUT_kc_ortho_4x12(
- //┌────┬────┬────┬────┬────┬────┐ ┌────┬────┬────┬────┬────┬────┐
- TAB , Q , W , E , R , T , Y , U , I , O , P ,MINS,
- //├────┼────┼────┼────┼────┼────┤ ├────┼────┼────┼────┼────┼────┤
- ESCC, A , S , D , F , G , H , J , K , L ,SCLN,QUOT,
- //├────┼────┼────┼────┼────┼────┤ ├────┼────┼────┼────┼────┼────┤
- LSFT, Z , X , C , V , B , N , M ,COMM,DOT ,SLSH,ENTS,
- //├────┼────┼────┼────┼────┼────┤ ├────┼────┼────┼────┼────┼────┤
- GRVF,LCTL,LALT,LGUI,LOWR,SPC , BSPC,RASE,LEFT,DOWN, UP ,RGHT
- //└────┴────┴────┴────┴────┴────┘ └────┴────┴────┴────┴────┴────┘
- ),
-
- [_WINDOWS] = LAYOUT_kc_ortho_4x12(
- //┌────┬────┬────┬────┬────┬────┐ ┌────┬────┬────┬────┬────┬────┐
- TAB , Q , W , E , R , T , Y , U , I , O , P ,MINS,
- //├────┼────┼────┼────┼────┼────┤ ├────┼────┼────┼────┼────┼────┤
- ESCC, A , S , D , F , G , H , J , K , L ,SCLN,QUOT,
- //├────┼────┼────┼────┼────┼────┤ ├────┼────┼────┼────┼────┼────┤
- LSFT, Z , X , C , V , B , N , M ,COMM,DOT ,SLSH,ENTS,
- //├────┼────┼────┼────┼────┼────┤ ├────┼────┼────┼────┼────┼────┤
- GRVF,LALT,LGUI,LCTL,LOWR,SPC , BSPC,RASE,LEFT,DOWN, UP ,RGHT
- //└────┴────┴────┴────┴────┴────┘ └────┴────┴────┴────┴────┴────┘
- ),
-
- [_TESTMODE] = LAYOUT_kc_ortho_4x12(
- //┌────┬────┬────┬────┬────┬────┐ ┌────┬────┬────┬────┬────┬────┐
- TAB , Q , W , E , R , T , Y , U , I , O , P ,MINS,
- //├────┼────┼────┼────┼────┼────┤ ├────┼────┼────┼────┼────┼────┤
- RMOD,BL_S, S , D , F , G , RMOD,BL_S, K , L ,SCLN,QUOT,
- //├────┼────┼────┼────┼────┼────┤ ├────┼────┼────┼────┼────┼────┤
- LSFT, Z , X , C , V , B , N , M ,COMM,DOT ,SLSH,ENTS,
- //├────┼────┼────┼────┼────┼────┤ ├────┼────┼────┼────┼────┼────┤
- GRVF,LALT,LGUI,LCTL,LOWR,SPC , BSPC,RASE,LEFT,DOWN, UP ,RGHT
- //└────┴────┴────┴────┴────┴────┘ └────┴────┴────┴────┴────┴────┘
- ),
-
- [_LOWER] = LAYOUT_kc_ortho_4x12(
- //┌────┬────┬────┬────┬────┬────┐ ┌────┬────┬────┬────┬────┬────┐
- , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 0 , ,
- //├────┼────┼────┼────┼────┼────┤ ├────┼────┼────┼────┼────┼────┤
- DEL ,CAPP,LEFT,RGHT, UP ,LBRC, RBRC, P4 , P5 , P6 ,PLUS,PIPE,
- //├────┼────┼────┼────┼────┼────┤ ├────┼────┼────┼────┼────┼────┤
- ,CPYP, , ,DOWN,LCBR, RCBR, P1 , P2 , P3 ,MINS, ,
- //├────┼────┼────┼────┼────┼────┤ ├────┼────┼────┼────┼────┼────┤
- BL_S,BL_T, , , ,DEL , DEL , , P0 ,PDOT, ,
- //└────┴────┴────┴────┴────┴────┘ └────┴────┴────┴────┴────┴────┘
- ),
-
- [_RAISE] = LAYOUT_kc_ortho_4x12(
- //┌────┬────┬────┬────┬────┬────┐ ┌────┬────┬────┬────┬────┬────┐
- ,EXLM, AT ,HASH,DLR ,PERC, CIRC,AMPR,ASTR,LPRN,RPRN, ,
- //├────┼────┼────┼────┼────┼────┤ ├────┼────┼────┼────┼────┼────┤
- DEL ,MPRV,MNXT,VOLU,PGUP,UNDS, EQL ,HOME, , , ,BSLS,
- //├────┼────┼────┼────┼────┼────┤ ├────┼────┼────┼────┼────┼────┤
- MUTE,MSTP,MPLY,VOLD,PGDN,MINS, PLUS,END , , , , ,
- //├────┼────┼────┼────┼────┼────┤ ├────┼────┼────┼────┼────┼────┤
- , , , , , , , , , , ,
- //└────┴────┴────┴────┴────┴────┘ └────┴────┴────┴────┴────┴────┘
- ),
-
- [_FKEYS] = LAYOUT_kc_ortho_4x12(
- //┌────┬────┬────┬────┬────┬────┐ ┌────┬────┬────┬────┬────┬────┐
- F12 , F1 , F2 , F3 , F4 , F5 , F6 , F7 , F8 , F9 ,F10 ,F11 ,
- //├────┼────┼────┼────┼────┼────┤ ├────┼────┼────┼────┼────┼────┤
- , , , , , , , , , , , ,
- //├────┼────┼────┼────┼────┼────┤ ├────┼────┼────┼────┼────┼────┤
- , , , , , , , , , , , ,
- //├────┼────┼────┼────┼────┼────┤ ├────┼────┼────┼────┼────┼────┤
- , , , , , , , , , , ,
- //└────┴────┴────┴────┴────┴────┘ └────┴────┴────┴────┴────┴────┘
- ),
-
-/* Adjust (Lower + Raise)
- * ,-----------------------------------------------------------------------------------.
- * | | Reset|RGB Tg|RGB Md|Hue Up|Hue Dn|Sat Up|Sat Dn|Val Up|Val Dn| | |
- * |------+------+------+------+------+-------------+------+------+------+------+------|
- * | | | |Aud on|Audoff|AGnorm|AGswap|Qwerty|Colemk|Dvorak| | |
- * |------+------+------+------+------+------|------+------+------+------+------+------|
- * | | | | | | | | | | | | |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | | | | | | | | | | | |
- * `-----------------------------------------------------------------------------------'
- */
- [_ADJUST] = LAYOUT_ortho_4x12(
- _______, QK_BOOT , RGB_TOG, RGB_MOD, RGB_HUD, RGB_HUI, RGB_SAD, RGB_SAI, RGB_VAD, RGB_VAI, _______, _______,
- _______, _______, _______, AU_ON, AU_OFF, AG_NORM, AG_SWAP, MAC, WINDOWS, TESTMODE,_______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
- )
-
-
-};
-
-bool process_record_user(uint16_t keycode, keyrecord_t *record) {
- switch (keycode) {
- case MAC:
- if (record->event.pressed) {
- set_single_persistent_default_layer(_MAC);
- }
- return false;
- break;
- case WINDOWS:
- if (record->event.pressed) {
- set_single_persistent_default_layer(_WINDOWS);
- }
- return false;
- break;
- case TESTMODE:
- if (record->event.pressed) {
- set_single_persistent_default_layer(_TESTMODE);
- }
- return false;
- break;
- case LOWER:
- if (record->event.pressed) {
- layer_on(_LOWER);
- update_tri_layer(_LOWER, _RAISE, _ADJUST);
- } else {
- layer_off(_LOWER);
- update_tri_layer(_LOWER, _RAISE, _ADJUST);
- }
- return false;
- break;
- case RAISE:
- if (record->event.pressed) {
- layer_on(_RAISE);
- update_tri_layer(_LOWER, _RAISE, _ADJUST);
- } else {
- layer_off(_RAISE);
- update_tri_layer(_LOWER, _RAISE, _ADJUST);
- }
- return false;
- break;
- case ADJUST:
- if (record->event.pressed) {
- layer_on(_ADJUST);
- } else {
- layer_off(_ADJUST);
- }
- return false;
- break;
- }
- return true;
-}
diff --git a/layouts/community/ortho_4x12/bakingpy/readme.md b/layouts/community/ortho_4x12/bakingpy/readme.md
deleted file mode 100644
index 4d852de196..0000000000
--- a/layouts/community/ortho_4x12/bakingpy/readme.md
+++ /dev/null
@@ -1,108 +0,0 @@
-Bakingpy's Let's Split Layout
-============================
-
-### Changes from default layout
-
-- Main layer
- - The right space bar key has been changed to backspace, as I only hit space with my left thumb
- - Backtick is at the lower right and also serves goes to the 3rd function layer when held
- - Enter key acts as shift when held
- - Escape key acts as control when held
- - Minus key at upper right
-- Lower layer
- - Numbers are on the lower layer, to make it easier to use a numpad on the right hand
- - Arrow keys
- - Straight and curly brackets in the middle two columns
- - Screenshot keys for MacOS
-- Upper layer
- - Symbols are on the upper layer
- - Media keys
- - Page Up/Down, Home/End
-- 3rd function layer
- - Function keys
-
-## Layouts
-
-### Qwerty
-
-```
-,----+----+----+----+----+----. ,----+----+----+----+----+----.
- TAB , Q , W , E , R , T , Y , U , I , O , P ,MINS,
-|----+----+----+----+----+----| |----+----+----+----+----+----|
- ESCC, A , S , D , F , G , H , J , K , L ,SCLN,QUOT,
-|----+----+----+----+----+----| |----+----+----+----+----+----|
- LSFT, Z , X , C , V , B , N , M ,COMM,DOT ,SLSH,ENTS,
-|----+----+----+----+----+----| |----+----+----+----+----+----|
- GRVF,LCTL,LALT,LGUI,LOWR,SPC , BSPC,RASE,LEFT,DOWN, UP ,RGHT
-`----+----+----+----+----+----' `----+----+----+----+----+----'
-```
-
-### Colemak
-
-```
-,----+----+----+----+----+----. ,----+----+----+----+----+----.
- TAB , Q , W , F , P , G , J , L , U , Y ,SCLN,MINS,
-|----+----+----+----+----+----| |----+----+----+----+----+----|
- ESCC, A , R , S , T , D , H , N , E , I , O ,QUOT,
-|----+----+----+----+----+----| |----+----+----+----+----+----|
- LSFT, Z , X , C , V , B , K , M ,COMM,DOT ,SLSH,ENTS,
-|----+----+----+----+----+----| |----+----+----+----+----+----|
- GRVF,LCTL,LALT,LGUI,LOWR,SPC , BSPC,RASE,LEFT,DOWN, UP ,RGHT
-`----+----+----+----+----+----' `----+----+----+----+----+----'
-```
-
-### Dvorak
-
-```
-,----+----+----+----+----+----. ,----+----+----+----+----+----.
- TAB ,QUOT,COMM,DOT , P , Y , F , G , C , R , L ,MINS,
-|----+----+----+----+----+----| |----+----+----+----+----+----|
- ESCC, A , O , E , U , I , D , H , R , N , S ,SLSH,
-|----+----+----+----+----+----| |----+----+----+----+----+----|
- LSFT,SCLN, Q , J , K , X , B , M , W , V , Z ,ENTS,
-|----+----+----+----+----+----| |----+----+----+----+----+----|
- GRVF,LCTL,LALT,LGUI,LOWR,SPC , BSPC,RASE,LEFT,DOWN, UP ,RGHT
-`----+----+----+----+----+----' `----+----+----+----+----+----'
-```
-
-### Lower
-
-```
-,----+----+----+----+----+----. ,----+----+----+----+----+----.
- , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 0 , ,
-|----+----+----+----+----+----| |----+----+----+----+----+----|
- DEL ,CAPP,LEFT,RGHT, UP ,LBRC, RBRC, P4 , P5 , P6 ,PLUS,PIPE,
-|----+----+----+----+----+----| |----+----+----+----+----+----|
- ,CPYP, , ,DOWN,LCBR, RCBR, P1 , P2 , P3 ,MINS, ,
-|----+----+----+----+----+----| |----+----+----+----+----+----|
- , , , , ,DEL , DEL , , P0 ,PDOT, ,
-`----+----+----+----+----+----' `----+----+----+----+----+----'
-```
-
-### Raise
-
-```
-,----+----+----+----+----+----. ,----+----+----+----+----+----.
- ,EXLM, AT ,HASH,DLR ,PERC, CIRC,AMPR,ASTR,LPRN,RPRN, ,
-|----+----+----+----+----+----| |----+----+----+----+----+----|
- DEL ,MPRV,MNXT,VOLU,PGUP,UNDS, EQL ,HOME, , , ,BSLS,
-|----+----+----+----+----+----| |----+----+----+----+----+----|
- MUTE,MSTP,MPLY,VOLD,PGDN,MINS, PLUS,END , , , , ,
-|----+----+----+----+----+----| |----+----+----+----+----+----|
- , , , , , , , , , , ,
-`----+----+----+----+----+----' `----+----+----+----+----+----'
-```
-
-### 3rd function layer
-
-```
-,----+----+----+----+----+----. ,----+----+----+----+----+----.
- F12 , F1 , F2 , F3 , F4 , F5 , F6 , F7 , F8 , F9 ,F10 ,F11 ,
-|----+----+----+----+----+----| |----+----+----+----+----+----|
- , , , , , , , , , , , ,
-|----+----+----+----+----+----| |----+----+----+----+----+----|
- , , , , , , , , , , , ,
-|----+----+----+----+----+----| |----+----+----+----+----+----|
- , , , , , , , , , , ,
-`----+----+----+----+----+----' `----+----+----+----+----+----'
-```
diff --git a/layouts/community/ortho_4x12/bakingpy/rules.mk b/layouts/community/ortho_4x12/bakingpy/rules.mk
deleted file mode 100644
index 0da75e0be4..0000000000
--- a/layouts/community/ortho_4x12/bakingpy/rules.mk
+++ /dev/null
@@ -1,13 +0,0 @@
-ifneq ($(LAYOUTS_HAS_RGB), no)
- RGBLIGHT_ENABLE = yes
-endif
-AUDIO_ENABLE = no
-ifeq ($(strip $(KEYBOARD)), zlant)
- BACKLIGHT_ENABLE = no
-else ifeq ($(strip $(KEYBOARD)), 40percentclub/4x4)
- BACKLIGHT_ENABLE = no
-else ifneq (, $(findstring lets_split, $(KEYBOARD)))
- BACKLIGHT_ENABLE = no
-else
- BACKLIGHT_ENABLE = yes
-endif
diff --git a/layouts/community/ortho_4x12/bifbofii/keymap.c b/layouts/community/ortho_4x12/bifbofii/keymap.c
deleted file mode 100644
index e7f427127e..0000000000
--- a/layouts/community/ortho_4x12/bifbofii/keymap.c
+++ /dev/null
@@ -1,173 +0,0 @@
-/* Copyright 2021 Christoph Jabs (BifbofII)
- *
- * 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
-
-/* ====== Unicode ====== */
-/* Character names */
-enum unicode_names {
- SAE,
- BAE,
- SUE,
- BUE,
- SOE,
- BOE,
- SS,
- EUR,
- CPR
-};
-
-/* Unicode map */
-const uint32_t unicode_map[] PROGMEM = {
- [SAE] = 0x00E4, // ä
- [BAE] = 0x00C4, // Ä
- [SUE] = 0x00FC, // ü
- [BUE] = 0x00DC, // Ü
- [SOE] = 0x00F6, // ü
- [BOE] = 0x00D6, // Ü
- [SS] = 0x00DF, // ß
- [EUR] = 0x20AC, // €
- [CPR] = 0x00A9 // ©
-};
-
-// ====== Layers ======
-// Layer numbers
-enum layer_names {
- QWERTY = 0,
- RAISE,
- LOWER,
- FUNCTIONS,
- UNICODE,
- SPECIALS,
-};
-
-#define L_LOW MO(LOWER)
-#define L_RAIS MO(RAISE)
-#define L_SPEC MO(SPECIALS)
-#define L_FNC LT(FUNCTIONS, KC_SPC)
-#define L_UNI LT(UNICODE, KC_ESC)
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
-/* Qwerty
- * +-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+
- * | Tab | Q | W | E | R | T | Y | U | I | O | P | Bsp |
- * +-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+
- * | Esc | A | S | D | F | G | H | J | K | L | ; | ' |
- * +-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+
- * |Shift| Z | X | C | V | B | N | M | , | . | / | Ret |
- * +-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+
- * |Ctrl |Super| | Alt |Lower| Spc |Raise| Alt |Super|Ctrl |Spec |
- * +-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+
- */
-[QWERTY] = LAYOUT_ortho_4x12(
- KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,
- L_UNI, 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, RSFT_T(KC_ENT),
- KC_LCTL, KC_LGUI, XXXXXXX, KC_LALT, L_LOW, L_FNC, L_FNC, L_RAIS, KC_RALT, KC_RGUI, KC_RCTL, L_SPEC
-),
-
-/* Raise
- * +-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+
- * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bsp |
- * +-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+
- * | | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ |
- * +-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+
- * | | F7 | F8 | F9 | F10 | F11 | F12 | | | | | |
- * +-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+
- * | | | | | | | | | | | | |
- * +-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+
- */
-[RAISE] = LAYOUT_ortho_4x12(
- KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC,
- _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS,
- _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NUHS, KC_NUBS, KC_PGUP, KC_PGDN, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
-),
-
-/* Lower
- * +-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+
- * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bsp |
- * +-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+
- * | | | | | | | | _ | + | { | } | | |
- * +-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+
- * | | | | | | | | | | | | |
- * +-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+
- * | | | | | | | | | | | |
- * +-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+
- */
-[LOWER] = LAYOUT_ortho_4x12(
- KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC,
- _______, _______, _______, _______, _______, _______, _______, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
-),
-
-/* Functions Layer 1
- * +-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+
- * | | | | | |Mute |Prev |Vol- |Vol+ |Next |Play | Del |
- * +-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+
- * |Caps | | < | | | > |Left |Down | Up |Right| | |
- * +-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+
- * | | | | | | |Home |PgDn |PgUp | End | | |
- * +-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+
- * | | | | | | | | | | | |
- * +-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+
- */
-[FUNCTIONS] = LAYOUT_ortho_4x12(
- _______, _______, _______, _______, _______, KC_MUTE, KC_MPRV, KC_VOLD, KC_VOLU, KC_MNXT, KC_MEDIA_PLAY_PAUSE, KC_DEL,
- KC_CAPS, _______, KC_WBAK, _______, _______, KC_WFWD, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, _______, _______,
- _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_PGUP, KC_END, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
-),
-
-/* Unicode Layer
- * +-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+
- * | | | | € | | | | Ü | | Ö | | |
- * +-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+
- * | | Ä | ß | | | | | | | | | |
- * +-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+
- * | | | | © | | | | | | | | |
- * +-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+
- * | | | | | | | | | | | |
- * +-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+
- */
-[UNICODE] = LAYOUT_ortho_4x12(
- _______, _______, _______, UM(EUR), _______, _______, _______, UP(SUE, BUE), _______, UP(SOE, BOE), _______, _______,
- _______, UP(SAE, BAE), UM(SS), _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, UM(CPR), _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
-),
-
-/* Specials Layer
- * +-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+
- * | XXX | XXX | Win | XXX | XXX | XXX | XXX | XXX | XXX | OSX | XXX | XXX |
- * +-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+
- * | XXX | XXX | XXX | XXX | XXX | XXX | XXX | XXX | XXX | Lnx | XXX | XXX |
- * +-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+
- * | XXX | XXX | XXX | XXX | XXX |QK_BOOT| XXX | XXX | XXX | XXX | XXX | XXX |
- * +-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+
- * | XXX | XXX | XXX | XXX | XXX | XXX | XXX | XXX | XXX | XXX | XXX |
- * +-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+
- */
-[SPECIALS] = LAYOUT_ortho_4x12(
- XXXXXXX, XXXXXXX, UC_WINC, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, UC_MAC, XXXXXXX, XXXXXXX,
- XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, UC_LINX, XXXXXXX, XXXXXXX,
- XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, QK_BOOT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
- XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX
-)
-
-};
diff --git a/layouts/community/ortho_4x12/bifbofii/readme.md b/layouts/community/ortho_4x12/bifbofii/readme.md
deleted file mode 100644
index 0d17f3a07e..0000000000
--- a/layouts/community/ortho_4x12/bifbofii/readme.md
+++ /dev/null
@@ -1,89 +0,0 @@
-# Personal Ortho 4x12 Layout of BifbofII
-
-![BifbofII Ortho 4x12 Layout](https://i.imgur.com/hHSexjE.jpeg)
-
-## QWERTY Layer
-
-```
-+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+
-| Tab | Q | W | E | R | T | Y | U | I | O | P | Bsp |
-+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+
-| Esc | A | S | D | F | G | H | J | K | L | ; | ' |
-+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+
-|Shift| Z | X | C | V | B | N | M | , | . | / | Ret |
-+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+
-|Ctrl |Super| | Alt |Lower| Spc | Spc |Raise| Alt |Super|Ctrl |Spec |
-+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+
-```
-
-Holding the Space Bar switches to the Function layer.
-
-## Raise
-
-```
-+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+
-| ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bsp |
-+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+
-| | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ |
-+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+
-| | F7 | F8 | F9 | F10 | F11 | F12 | | | | | |
-+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+
-| | | | | | | | | | | | |
-+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+
-```
-
-## Lower
-
-```
-+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+
-| ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bsp |
-+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+
-| | | | | | | | _ | + | { | } | | |
-+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+
-| | | | | | | | | | | | |
-+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+
-| | | | | | | | | | | | |
-+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+
-```
-
-## Function Layer
-
-```
-+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+
-| | | | | |Mute |Prev |Vol- |Vol+ |Next |Play | Del |
-+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+
-|Caps | | < | | | > |Left |Down | Up |Right| | |
-+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+
-| | | | | | |Home |Page-|Page+| End | | |
-+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+
-| | | | | | | | | | | | |
-+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+
-```
-
-## Unicode Layer
-
-```
-+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+
-| | | | € | | | | Ü | | Ö | | |
-+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+
-| | Ä | ß | | | | | | | | | |
-+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+
-| | | | © | | | | | | | | |
-+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+
-| | | | | | | | | | | | |
-+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+
-```
-
-## Specials Layer
-
-```
-+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+
-| XXX | XXX | Win | XXX | XXX | XXX | XXX | XXX | XXX | OSX | XXX | XXX |
-+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+
-| XXX | XXX | XXX | XXX | XXX | XXX | XXX | XXX | XXX | Lnx | XXX | XXX |
-+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+
-| XXX | XXX | XXX | XXX | XXX |QK_BOOT| XXX | XXX | XXX | XXX | XXX | XXX |
-+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+
-| XXX | XXX | XXX | XXX | XXX | XXX | XXX | XXX | XXX | XXX | XXX | XXX |
-+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+
-```
diff --git a/layouts/community/ortho_4x12/bifbofii/rules.mk b/layouts/community/ortho_4x12/bifbofii/rules.mk
deleted file mode 100644
index 502b2def76..0000000000
--- a/layouts/community/ortho_4x12/bifbofii/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-UNICODEMAP_ENABLE = yes
diff --git a/layouts/community/ortho_4x12/brandonschlack/config.h b/layouts/community/ortho_4x12/brandonschlack/config.h
deleted file mode 100644
index 7828f057ab..0000000000
--- a/layouts/community/ortho_4x12/brandonschlack/config.h
+++ /dev/null
@@ -1,52 +0,0 @@
-/* Copyright 2020 Brandon Schlack
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-#pragma once
-
-#ifdef KEYBOARD_planck_rev6
-#ifdef AUDIO_ENABLE
- #define STARTUP_SONG SONG(PLANCK_SOUND)
- // #define STARTUP_SONG SONG(NO_SOUND)
-
- #define DEFAULT_LAYER_SONGS { SONG(QWERTY_SOUND) \
- }
-#endif
-
-#define MUSIC_MASK (keycode != KC_NO)
-
-/*
- * MIDI options
- */
-
-/* enable basic MIDI features:
- - MIDI notes can be sent when in Music mode is on
-*/
-
-#define MIDI_BASIC
-
-/* enable advanced MIDI features:
- - MIDI notes can be added to the keymap
- - Octave shift and transpose
- - Virtual sustain, portamento, and modulation wheel
- - etc.
-*/
-//#define MIDI_ADVANCED
-
-/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
-//#define MIDI_TONE_KEYCODE_OCTAVES 2
-
-// Most tactile encoders have detents every 4 stages
-#define ENCODER_RESOLUTION 4
-#endif
diff --git a/layouts/community/ortho_4x12/brandonschlack/keymap.c b/layouts/community/ortho_4x12/brandonschlack/keymap.c
deleted file mode 100644
index 04c83de9e9..0000000000
--- a/layouts/community/ortho_4x12/brandonschlack/keymap.c
+++ /dev/null
@@ -1,221 +0,0 @@
-/* Copyright 2019 Brandon Schlack
- *
- * 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
-#ifdef KEYBOARD_planck_rev6
- #include "muse.h"
-#endif
-#include "brandonschlack.h"
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
-/* Qwerty */
-[_BASE] = LAYOUT_ortho_4x12(
-// ┌────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┐
- KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,
-// ├────────┼────────┼────────┼────────┼────────┼────────┴────────┼────────┼────────┼────────┼────────┼────────┤
- HY_ESC, 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, SFT_ENT,
-// ├────────┼────────┼────────┼────────┼────────┼────────┴────────┼────────┼────────┼────────┼────────┼────────┤
- MCO_LYR, KC_LCTL, KC_LOPT, KC_LCMD, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT
-// └────────┴────────┴────────┴────────┴────────┴─────────────────┴────────┴────────┴────────┴────────┴────────┘
-),
-
-/* Lower */
-[_LOWER] = LAYOUT_ortho_4x12(
-// ┌────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┐
- KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC,
-// ├────────┼────────┼────────┼────────┼────────┼────────┴────────┼────────┼────────┼────────┼────────┼────────┤
- KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE,
-// ├────────┼────────┼────────┼────────┼────────┼────────┴────────┼────────┼────────┼────────┼────────┼────────┤
- SF_CAPS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_HOME, KC_PGUP, KC_PGDN, KC_END, _______,
-// ├────────┼────────┼────────┼────────┼────────┼────────┴────────┼────────┼────────┼────────┼────────┼────────┤
- _______, _______, _______, _______, _______, KC_MUTE, KC_MUTE, _______, KC_MPRV, KC_VOLD, KC_VOLU, KC_MNXT
-// └────────┴────────┴────────┴────────┴────────┴─────────────────┴────────┴────────┴────────┴────────┴────────┘
-),
-
-/* Raise */
-[_RAISE] = LAYOUT_ortho_4x12(
-// ┌────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┐
- KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC,
-// ├────────┼────────┼────────┼────────┼────────┼────────┴────────┼────────┼────────┼────────┼────────┼────────┤
- KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS,
-// ├────────┼────────┼────────┼────────┼────────┼────────┴────────┼────────┼────────┼────────┼────────┼────────┤
- SF_CAPS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_HOME, KC_PGUP, KC_PGDN, KC_END, _______,
-// ├────────┼────────┼────────┼────────┼────────┼────────┴────────┼────────┼────────┼────────┼────────┼────────┤
- _______, _______, _______, _______, _______, KC_MPLY, KC_MPLY, _______, KC_MPRV, KC_VOLD, KC_VOLU, KC_MNXT
-// └────────┴────────┴────────┴────────┴────────┴─────────────────┴────────┴────────┴────────┴────────┴────────┘
-),
-
-/* Macros */
-[_MACRO] = LAYOUT_ortho_4x12(
-// ┌────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┐
- _______, _______, _______, _______, _______, _______, _______, KC_BRMD, KC_BRMU, MC_MSSN, MC_LHPD, MC_SLPD,
-// ├────────┼────────┼────────┼────────┼────────┼────────┴────────┼────────┼────────┼────────┼────────┼────────┤
- _______, _______, _______, _______, _______, _______, _______, MC_BACK, MC_FWRD, PRV_TAB, NXT_TAB, NXT_WIN,
-// ├────────┼────────┼────────┼────────┼────────┼────────┴────────┼────────┼────────┼────────┼────────┼────────┤
- _______, _______, _______, _______, _______, _______, PX_AFLL, OP_AFLL, _______, _______, _______, _______,
-// ├────────┼────────┼────────┼────────┼────────┼────────┴────────┼────────┼────────┼────────┼────────┼────────┤
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
-// └────────┴────────┴────────┴────────┴────────┴─────────────────┴────────┴────────┴────────┴────────┴────────┘
-),
-
-/* Adjust (Lower + Raise) */
-[_ADJUST] = LAYOUT_ortho_4x12(
-// ┌────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┐
- QM_MAKE, QK_BOOT, DB_TOGG, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, MC_SLPD,
-// ├────────┼────────┼────────┼────────┼────────┼────────┴────────┼────────┼────────┼────────┼────────┼────────┤
- QM_FLSH, _______, MU_NEXT, AU_ON, AU_OFF, AG_NORM, AG_SWAP, _______, _______, _______, _______, _______,
-// ├────────┼────────┼────────┼────────┼────────┼────────┴────────┼────────┼────────┼────────┼────────┼────────┤
- _______, AU_PREV, AU_NEXT, MU_ON, MU_OFF, MI_ON, MI_OFF, RGB_RTHM,RGB_THM, _______, _______, _______,
-// ├────────┼────────┼────────┼────────┼────────┼────────┴────────┼────────┼────────┼────────┼────────┼────────┤
- EE_CLR, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
-// └────────┴────────┴────────┴────────┴────────┴─────────────────┴────────┴────────┴────────┴────────┴────────┘
-)
-
-};
-
-layer_state_t layer_state_set_keymap(layer_state_t state) {
- state = update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST);
- return state;
-}
-
-#ifdef KEYBOARD_plaid
-// Turn on Red LED when initialized
-void keyboard_post_init_keymap(void) {
- writePinHigh(LED_RED);
-}
-
-// Use Green LED for Caps Lock
-bool led_update_user(led_t led_state) {
- if (led_state.caps_lock) {
- writePinLow(LED_GREEN);
- } else {
- writePinHigh(LED_GREEN);
- }
- return false;
-}
-#endif
-
-#ifdef KEYBOARD_planck_rev6
-#ifdef AUDIO_ENABLE
- float plover_song[][2] = SONG(PLOVER_SOUND);
- float plover_gb_song[][2] = SONG(PLOVER_GOODBYE_SOUND);
-#endif
-
-bool muse_mode = false;
-uint8_t last_muse_note = 0;
-uint16_t muse_counter = 0;
-uint8_t muse_offset = 70;
-uint16_t muse_tempo = 50;
-
-bool encoder_update_keymap(uint8_t index, bool clockwise) {
- if (muse_mode) {
- if (IS_LAYER_ON(_RAISE)) {
- if (clockwise) {
- muse_offset++;
- } else {
- muse_offset--;
- }
- } else {
- if (clockwise) {
- muse_tempo+=1;
- } else {
- muse_tempo-=1;
- }
- }
- } else {
- if (clockwise) {
- #ifdef MOUSEKEY_ENABLE
- tap_code(MC_WH_U);
- #else
- tap_code(KC_VOLU);
- #endif
- } else {
- #ifdef MOUSEKEY_ENABLE
- tap_code(MC_WH_D);
- #else
- tap_code(KC_VOLD);
- #endif
- }
- }
- return true;
-}
-
-bool dip_switch_update_user(uint8_t index, bool active) {
- switch (index) {
- case 0: {
-#ifdef AUDIO_ENABLE
- static bool play_sound = false;
-#endif
- if (active) {
-#ifdef AUDIO_ENABLE
- if (play_sound) { PLAY_SONG(plover_song); }
-#endif
- layer_on(_ADJUST);
- } else {
-#ifdef AUDIO_ENABLE
- if (play_sound) { PLAY_SONG(plover_gb_song); }
-#endif
- layer_off(_ADJUST);
- }
-#ifdef AUDIO_ENABLE
- play_sound = true;
-#endif
- break;
- }
- case 1:
- if (active) {
- muse_mode = true;
- } else {
- muse_mode = false;
- }
- }
- return true;
-}
-
-void matrix_scan_keymap(void) {
-#ifdef AUDIO_ENABLE
- if (muse_mode) {
- if (muse_counter == 0) {
- uint8_t muse_note = muse_offset + SCALE[muse_clock_pulse()];
- if (muse_note != last_muse_note) {
- stop_note(compute_freq_for_midi_note(last_muse_note));
- play_note(compute_freq_for_midi_note(muse_note), 0xF);
- last_muse_note = muse_note;
- }
- }
- muse_counter = (muse_counter + 1) % muse_tempo;
- } else {
- if (muse_counter) {
- stop_all_notes();
- muse_counter = 0;
- }
- }
-#endif
-}
-
-bool music_mask_user(uint16_t keycode) {
- switch (keycode) {
- case RAISE:
- case LOWER:
- case MCO_LYR:
- return false;
- default:
- return true;
- }
-}
-#endif
diff --git a/layouts/community/ortho_4x12/brandonschlack/readme.md b/layouts/community/ortho_4x12/brandonschlack/readme.md
deleted file mode 100644
index 847851329f..0000000000
--- a/layouts/community/ortho_4x12/brandonschlack/readme.md
+++ /dev/null
@@ -1,20 +0,0 @@
-# brandonschlack's 4x12 Ortho Keymap
-
-This layout is based on the Planck layout. It is macOS-centric, with Colemak and DVORAK removed as I don't use them.
-
-## Keyboards Using This Layout
-
-* [Planck](https://github.com/qmk/qmk_firmware/tree/master/keyboards/planck)
-* [Plaid](https://github.com/qmk/qmk_firmware/tree/master/keyboards/plaid)
-* [JNAO](https://github.com/qmk/qmk_firmware/tree/master/keyboards/planck) (FORCE_LAYOUT=ortho_4x12)
-
-## Features
-
-* *Enter* acts as *Right Shift* when held
-* On either **LOWER** or **RAISE** layers, tapping *Shift* will toggle *Caps Lock*, hold for Shift.
-* Bottom left key is *Hyper* (Shift+Control+Option+Command) which I use to map global shortcuts in macOS.
- * Holding *Esc* will also act as Hyper.
-* **ADJUST** Layer
- * Make command for compiling keyboard firmmware, a Reset key, and Debug toggle.
- * Mission Control, Launchpad, and Sleep Display macOS macros
- * Alt-Gui swapping
diff --git a/layouts/community/ortho_4x12/brandonschlack/rules.mk b/layouts/community/ortho_4x12/brandonschlack/rules.mk
deleted file mode 100644
index 0c4b14a4e5..0000000000
--- a/layouts/community/ortho_4x12/brandonschlack/rules.mk
+++ /dev/null
@@ -1,10 +0,0 @@
-ifeq ($(strip $(KEYBOARD)), planck/rev6)
- SRC += muse.c
-endif
-
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-BACKLIGHT_ENABLE = no # No backlights installed
-
-ifeq ($(strip $(KEYBOARD)), jnao)
- BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite
-endif
diff --git a/layouts/community/ortho_4x12/bredfield/config.h b/layouts/community/ortho_4x12/bredfield/config.h
deleted file mode 100644
index 9065e41396..0000000000
--- a/layouts/community/ortho_4x12/bredfield/config.h
+++ /dev/null
@@ -1,4 +0,0 @@
-#pragma once
-
-#define TAPPING_TERM 200
-#define PERMISSIVE_HOLD \ No newline at end of file
diff --git a/layouts/community/ortho_4x12/bredfield/keymap.c b/layouts/community/ortho_4x12/bredfield/keymap.c
deleted file mode 100644
index 97d85d5d40..0000000000
--- a/layouts/community/ortho_4x12/bredfield/keymap.c
+++ /dev/null
@@ -1,175 +0,0 @@
-#include QMK_KEYBOARD_H
-
-extern keymap_config_t keymap_config;
-
-// Keymap layers
-enum layer_names {
- _BASE_LAYER,
- _RAISE_LAYER,
- _LOWER_LAYER,
- _NUMPAD_LAYER,
- _NAVIGATION_LAYER,
- _UI_LAYER,
- _KEYBOARD_LAYER,
-};
-
-// Layer switches aliases
-#define L_LOWER MO(_LOWER_LAYER)
-#define L_RAISE MO(_RAISE_LAYER)
-#define L_NUMPAD MO(_NUMPAD_LAYER)
-#define L_UI MO(_UI_LAYER)
-#define L_KEYBD MO(_KEYBOARD_LAYER)
-#define SCL_NAV LT(_NAVIGATION_LAYER, KC_SCLN)
-#define SFT_MIN MT(MOD_RSFT, KC_MINS)
-#define SFT_ENT SC_SENT
-
-// GUI chords
-#define GUI_1 LGUI(KC_1)
-#define GUI_2 LGUI(KC_2)
-#define GUI_3 LGUI(KC_3)
-#define GUI_4 LGUI(KC_4)
-#define GUI_5 LGUI(KC_5)
-#define GUI_6 LGUI(KC_6)
-#define GUI_7 LGUI(KC_7)
-#define GUI_8 LGUI(KC_8)
-#define GUI_9 LGUI(KC_9)
-#define GUI_0 LGUI(KC_0)
-#define GUI_MIN LGUI(KC_MINS)
-#define GUI_EQL LGUI(KC_EQL)
-#define GUI_LBR LGUI(KC_LBRC)
-#define GUI_RBR LGUI(KC_RBRC)
-#define GUI_ENT LGUI_T(KC_ENT)
-#define GUI_ESC LGUI_T(KC_ESC)
-#define GUI_TAB LGUI(KC_TAB) // application toggle
-#define GUI_GRV LGUI(KC_GRV) // window toggle
-#define GUI_SSF LGUI(LSFT(KC_3)) // Full screen shot
-#define GUI_SST LGUI(LSFT(KC_4)) // Targetted screen shot
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
-/* Qwerty
- * ,-----------------------------------------------------------------------------------------------------------.
- * | Tab | Q | W | E | R | T | Y | U | I | O | P | - |
- * |--------+--------+--------+--------+--------+-----------------+--------+--------+--------+--------+--------|
- * | GUI/Esc| A | S | D | F | G | H | J | K | L | ;/nav | " |
- * |--------+--------+--------+--------+--------+-----------------+--------+--------+--------+--------+--------|
- * | Shift | Z | X | C | V | B | N | M | , | . | / | Sft/ent|
- * |--------+--------+--------+--------+--------+-----------------+--------+--------+--------+--------+--------|
- * | Numpad | Ctrl | Alt | GUI | Lower | Bksp | Space | Raise | Ctrl | Alt | UI | Keybd |
- * `-----------------------------------------------------------------------------------------------------------'
- */
-[_BASE_LAYER] = LAYOUT_ortho_4x12(
- KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_MINS,
- GUI_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, SCL_NAV, KC_QUOT,
- KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, SFT_ENT,
- L_NUMPAD,KC_LCTL, KC_LALT, KC_LGUI, L_LOWER, KC_BSPC, KC_SPACE,L_RAISE, KC_RCTL, KC_RALT, L_UI, L_KEYBD
-),
-
-/* Lower
- * ,-----------------------------------------------------------------------------------------------------------.
- * | ` | ! | @ | # | $ | % | ^ | & | * | + | = | - |
- * |--------+--------+--------+--------+--------+-----------------+--------+--------+--------+--------+--------|
- * | | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | \ |
- * |--------+--------+--------+--------+--------+-----------------+--------+--------+--------+--------+--------|
- * | | | | | | | | | , | . | / | |
- * |--------+--------+--------+--------+--------+-----------------+--------+--------+--------+--------+--------|
- * | | | | | | Del | | | | | |
- * `-----------------------------------------------------------------------------------------------------------'
- */
-[_LOWER_LAYER] = LAYOUT_ortho_4x12(
- KC_GRV, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_PLUS, KC_EQL, _______,
- _______, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSLS,
- _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_COMM, KC_DOT, KC_SLSH, _______,
- _______, _______, _______, _______, _______, KC_DEL, _______, _______, _______, _______, _______, _______
-),
-
-/* Raise
- * ,-----------------------------------------------------------------------------------------------------------.
- * | ~ | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | _ |
- * |--------+--------+--------+--------+--------+-----------------+--------+--------+--------+--------+--------|
- * | | | { | [ | ( | < | > | ) | ] | } | | | |
- * |--------+--------+--------+--------+--------+-----------------+--------+--------+--------+--------+--------|
- * | | | | | | | | | | | | |
- * |--------+--------+--------+--------+--------+-----------------+--------+--------+--------+--------+--------|
- * | | | | | | Del | | | | | | |
- * `-----------------------------------------------------------------------------------------------------------'
- */
-[_RAISE_LAYER] = LAYOUT_ortho_4x12(
- KC_TILD, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_7, KC_F8, KC_F9, KC_F10, KC_UNDS,
- _______, XXXXXXX, KC_LCBR, KC_LBRC, KC_LPRN, KC_LABK, KC_RABK, KC_RPRN, KC_RBRC, KC_RCBR, XXXXXXX, KC_PIPE,
- _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______,
- _______, _______, _______, _______, _______, KC_DEL, _______, _______, _______, _______, _______, _______
-),
-
-/* Numpad
- * ,-----------------------------------------------------------------------------------------------------------.
- * | | | | | | | | 7 | 8 | 9 | * | |
- * |--------+--------+--------+--------+--------+-----------------+--------+--------+--------+--------+--------|
- * | | | | | | | | 4 | 5 | 6 | - | |
- * |--------+--------+--------+--------+--------+-----------------+--------+--------+--------+--------+--------|
- * | | | | | | | | 1 | 2 | 3 | + | |
- * |--------+--------+--------+--------+--------+-----------------+--------+--------+--------+--------+--------|
- * | | | | | | | | 0 | . | / | | |
- * `-----------------------------------------------------------------------------------------------------------'
- */
-[_NUMPAD_LAYER] = LAYOUT_ortho_4x12(
- _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_7, KC_8, KC_9, KC_ASTR, XXXXXXX,
- _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_4, KC_5, KC_6, KC_MINS, XXXXXXX,
- _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_1, KC_2, KC_3, KC_PLUS, _______,
- _______, _______, _______, _______, _______, _______, _______, KC_0, KC_DOT, KC_SLSH, _______, _______
-),
-
-/* Navigation
- * ,-----------------------------------------------------------------------------------------------------------.
- * | | | | | | | | Home | Up | End | | |
- * |--------+--------+--------+--------+--------+-----------------+--------+--------+--------+--------+--------|
- * | | | | | | | | Left | Down | Right | | |
- * |--------+--------+--------+--------+--------+-----------------+--------+--------+--------+--------+--------|
- * | | | | | | | | | | | | |
- * |--------+--------+--------+--------+--------+-----------------+--------+--------+--------+--------+--------|
- * | | | | | Enter | | | Del | | | | |
- * `-----------------------------------------------------------------------------------------------------------'
- */
-[_NAVIGATION_LAYER] = LAYOUT_ortho_4x12(
- _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_HOME, KC_UP, KC_END, XXXXXXX, XXXXXXX,
- _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_LEFT, KC_DOWN, KC_RGHT, XXXXXXX, XXXXXXX,
- _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
- _______, _______, _______, _______, KC_ENT, _______, _______, KC_DEL, _______, _______, _______, _______
-),
-
-/* UI
- * ,--------------------------------------------------------------------------------+--------+-----------------.
- * | GUI Tab| | | | | | | | | GUI - | GUI = | |
- * |--------+--------+--------+--------+--------+-----------------+--------+--------+--------+--------+--------|
- * | GUI ` | GUI 1 | GUI 2 | GUI 3 | GUI 4 | GUI 5 | GUI 6 | GUI 7 | | GUI [ | GUI ] | |
- * |--------+--------+--------+--------+--------+-----------------+--------+--------------------------+--------|
- * | |Full SS | Area SS| | | | | | | | | |
- * |--------+--------+--------+--------+--------+-----------------+--------+--------+--------+--------+--------|
- * | | Prev | Play | Next | Bri - | | | Bri + | Mute | Vol - | Vol + | |
- * `-----------------------------------------------------------------------------------------------------------'
- */
-[_UI_LAYER] = LAYOUT_ortho_4x12(
- GUI_TAB, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, GUI_MIN, GUI_EQL, XXXXXXX,
- GUI_GRV, GUI_1, GUI_2, GUI_3, GUI_4, GUI_5, GUI_6, GUI_7, XXXXXXX, GUI_LBR, GUI_RBR, XXXXXXX,
- _______, GUI_SSF, GUI_SST, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
- _______, KC_MRWD, KC_MPLY, KC_MFFD, KC_VOLD, KC_MUTE, KC_MUTE, KC_VOLU, _______, _______, _______, _______
-),
-
-/* Keyboard
- * ,--------------------------------------------------------------------------------+--------+-----------------.
- * | | | | | | | | | | | | Boot |
- * |--------+--------+--------+--------+--------+-----------------+--------+--------+--------+--------+--------|
- * | | | | | | | | | | | | Debug |
- * |--------+--------+--------+--------+--------+-----------------+--------+--------------------------+--------|
- * | | | | | | | | | | | | |
- * |--------+--------+--------+--------+--------+-----------------+--------+--------+--------+--------+--------|
- * | | | | | | | | | | | | |
- * `-----------------------------------------------------------------------------------------------------------'
- */
-[_KEYBOARD_LAYER] = LAYOUT_ortho_4x12(
- XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, QK_BOOT,
- XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, DB_TOGG,
- XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
- _______, _______, _______, _______, _______, XXXXXXX, XXXXXXX, _______, _______, _______, _______, _______
-),
-}; \ No newline at end of file
diff --git a/layouts/community/ortho_4x12/bredfield/readme.md b/layouts/community/ortho_4x12/bredfield/readme.md
deleted file mode 100644
index f43b809167..0000000000
--- a/layouts/community/ortho_4x12/bredfield/readme.md
+++ /dev/null
@@ -1,105 +0,0 @@
-# bredfield's 4x12 Ortho Keymap
-
-## Overview
-This is the layout that I use for all 4x12 boards, for writing and programming.
-
-- Works with planck or split style boards
-- Split spacebar; left position is backspace, which frees up the typical key for minus/undersc
-- Targets mac os; linux variant to come
-- Navigation layer is triggered via the `;` key, allowing for single-hand navigation without leaving the home row
-- Brackets are located on the home row on raise, which is comfortable when programming
-- Reduced mod / layer tap use, to avoid input lag
-- LEDs are overrated
-
-## Layers
-### Main
-```
- * ,-----------------------------------------------------------------------------------------------------------.
- * | Tab | Q | W | E | R | T | Y | U | I | O | P | - |
- * |--------+--------+--------+--------+--------+-----------------+--------+--------+--------+--------+--------|
- * | GUI/Esc| A | S | D | F | G | H | J | K | L | ;/nav | " |
- * |--------+--------+--------+--------+--------+-----------------+--------+--------+--------+--------+--------|
- * | Shift | Z | X | C | V | B | N | M | , | . | / | Sft/ent|
- * |--------+--------+--------+--------+--------+-----------------+--------+--------+--------+--------+--------|
- * | Numpad | Ctrl | Alt | GUI | Lower | Bksp | Space | Raise | Ctrl | Alt | UI | Keybd |
- * `-----------------------------------------------------------------------------------------------------------'
- ```
-
- ### Lower
- ```
- * ,-----------------------------------------------------------------------------------------------------------.
- * | ` | ! | @ | # | $ | % | ^ | & | * | + | = | - |
- * |--------+--------+--------+--------+--------+-----------------+--------+--------+--------+--------+--------|
- * | | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | \ |
- * |--------+--------+--------+--------+--------+-----------------+--------+--------+--------+--------+--------|
- * | | | | | | | | | , | . | / | |
- * |--------+--------+--------+--------+--------+-----------------+--------+--------+--------+--------+--------|
- * | | | | | | Del | | | | | | |
- * `-----------------------------------------------------------------------------------------------------------'
-```
-
-### Raise
-```
- * ,-----------------------------------------------------------------------------------------------------------.
- * | ~ | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | _ |
- * |--------+--------+--------+--------+--------+-----------------+--------+--------+--------+--------+--------|
- * | | | { | [ | ( | < | > | ) | ] | } | | | |
- * |--------+--------+--------+--------+--------+-----------------+--------+--------+--------+--------+--------|
- * | | | | | | | | | | | | |
- * |--------+--------+--------+--------+--------+-----------------+--------+--------+--------+--------+--------|
- * | | | | | | Del | | | | | | |
- * `-----------------------------------------------------------------------------------------------------------'
-```
-
-### Numpad
-```
- * ,-----------------------------------------------------------------------------------------------------------.
- * | | | | | | | | 7 | 8 | 9 | * | |
- * |--------+--------+--------+--------+--------+-----------------+--------+--------+--------+--------+--------|
- * | | | | | | | | 4 | 5 | 6 | - | |
- * |--------+--------+--------+--------+--------+-----------------+--------+--------+--------+--------+--------|
- * | | | | | | | | 1 | 2 | 3 | + | |
- * |--------+--------+--------+--------+--------+-----------------+--------+--------+--------+--------+--------|
- * | | | | | | | | 0 | . | / | | |
- * `-----------------------------------------------------------------------------------------------------------'
- ```
-
-### Navigation
-```
- * ,-----------------------------------------------------------------------------------------------------------.
- * | | | | | | | | Home | Up | End | | |
- * |--------+--------+--------+--------+--------+-----------------+--------+--------+--------+--------+--------|
- * | | | | | | | | Left | Down | Right | | |
- * |--------+--------+--------+--------+--------+-----------------+--------+--------+--------+--------+--------|
- * | | | | | | | | | | | | |
- * |--------+--------+--------+--------+--------+-----------------+--------+--------+--------+--------+--------|
- * | | | | | Enter | | | Del | | | | |
- * `-----------------------------------------------------------------------------------------------------------'
-```
-
-### UI
-```
- * ,--------------------------------------------------------------------------------+--------+-----------------.
- * | GUI Tab| | | | | | | | | GUI - | GUI = | |
- * |--------+--------+--------+--------+--------+-----------------+--------+--------+--------+--------+--------|
- * | GUI ` | GUI 1 | GUI 2 | GUI 3 | GUI 4 | GUI 5 | GUI 6 | GUI 7 | | GUI [ | GUI ] | |
- * |--------+--------+--------+--------+--------+-----------------+--------+--------------------------+--------|
- * | |Full SS | Area SS| | | | | | | | | |
- * |--------+--------+--------+--------+--------+-----------------+--------+--------+--------+--------+--------|
- * | | Prev | Play | Next | Bri - | | | Bri + | Mute | Vol - | Vol + | |
- * `-----------------------------------------------------------------------------------------------------------'
-```
-
-### Keyboard
-```
- * ,--------------------------------------------------------------------------------+--------+-----------------.
- * | | | | | | | | | | | | RESET |
- * |--------+--------+--------+--------+--------+-----------------+--------+--------+--------+--------+--------|
- * | | | | | | | | | | | | Debug |
- * |--------+--------+--------+--------+--------+-----------------+--------+--------------------------+--------|
- * | | | | | | | | | | | | |
- * |--------+--------+--------+--------+--------+-----------------+--------+--------+--------+--------+--------|
- * | | | | | | | | | | | | |
- * `-----------------------------------------------------------------------------------------------------------'
- */
- ``` \ No newline at end of file
diff --git a/layouts/community/ortho_4x12/buswerks/config.h b/layouts/community/ortho_4x12/buswerks/config.h
deleted file mode 100644
index f96d099db5..0000000000
--- a/layouts/community/ortho_4x12/buswerks/config.h
+++ /dev/null
@@ -1,22 +0,0 @@
-#pragma once
-
-/* Select hand configuration */
-
-#define MASTER_LEFT
-// #define _MASTER_RIGHT
-// #define EE_HANDS
-
-#ifdef AUDIO_ENABLE
- #define STARTUP_SONG SONG(PLANCK_SOUND)
- // #define STARTUP_SONG SONG(NO_SOUND)
- #define DEFAULT_LAYER_SONGS { SONG(QWERTY_SOUND), \
- SONG(COLEMAK_SOUND), \
- SONG(DVORAK_SOUND) \
- }
-#endif
-
-// MIDI notes can be sent when in Music mode
-#define MIDI_BASIC
-
-// Most tactile encoders have detents every 4 stages
-#define ENCODER_RESOLUTION 4
diff --git a/layouts/community/ortho_4x12/buswerks/keymap.c b/layouts/community/ortho_4x12/buswerks/keymap.c
deleted file mode 100644
index d4a53e8096..0000000000
--- a/layouts/community/ortho_4x12/buswerks/keymap.c
+++ /dev/null
@@ -1,174 +0,0 @@
-#include QMK_KEYBOARD_H
-
-extern keymap_config_t keymap_config;
-
-enum layers {
- _QWERTY,
- _COLEMAK,
- _DVORAK,
- _LOWER,
- _RAISE,
- _GAME,
- _ADJUST
-};
-
-enum custom_keycodes {
- QWERTY = SAFE_RANGE,
- COLEMAK,
- DVORAK,
- LOWER,
- RAISE,
- GAME,
- ADJUST
-};
-
-#define GAME TG(_GAME)
-#define RSE_ENT LT(_RAISE, KC_ENT)
-#define ESC_CTL LCTL_T(KC_ESC) // for Linux
-#define ESC_CMD LGUI_T(KC_ESC) // for macOS
-
-// Use these to switch desktops on macOS
-#define DESK_L LCTL(KC_LEFT)
-#define DESK_R LCTL(KC_RGHT)
-
-// Use these to switch desktops on Gnome
-#define DESK_UP LGUI(KC_PGUP)
-#define DESK_DN LGUI(KC_PGDN)
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
- // Use QWERTY on macOS (Colemak mapped using software)
- [_QWERTY] = LAYOUT_ortho_4x12(
- KC_TAB , KC_Q , KC_W , KC_E , KC_R , KC_T , KC_Y , KC_U , KC_I, KC_O , KC_P , KC_BSPC,
- ESC_CMD, KC_A , KC_S , KC_D , KC_F , KC_G , KC_H , KC_J , KC_K, KC_L , KC_SCLN, KC_QUOT,
- SC_LSPO, KC_Z , KC_X , KC_C , KC_V , KC_B , KC_N , KC_M , KC_COMM, KC_DOT , KC_SLSH, SC_RSPC,
- XXXXXXX, KC_LCTL, KC_LGUI, KC_LALT, LOWER , KC_SPC , KC_SPC , RSE_ENT, KC_LEFT, KC_DOWN, KC_UP , KC_RGHT
- ),
-
- // Use Colemak on Linux (No native Colemak mapping)
- [_COLEMAK] = LAYOUT_ortho_4x12(
- KC_TAB , KC_Q , KC_W , KC_F , KC_P , KC_G , KC_J , KC_L , KC_U , KC_Y , KC_SCLN, KC_BSPC,
- ESC_CTL, KC_A , KC_R , KC_S , KC_T , KC_D , KC_H , KC_N , KC_E , KC_I , KC_O , KC_QUOT,
- SC_LSPO, KC_Z , KC_X , KC_C , KC_V , KC_B , KC_K , KC_M , KC_COMM, KC_DOT , KC_SLSH, SC_RSPC,
- XXXXXXX, KC_LCTL, KC_LGUI, KC_LALT, LOWER , KC_SPC , KC_SPC , RSE_ENT, KC_LEFT, KC_DOWN, KC_UP , KC_RGHT
- ),
-
- [_DVORAK] = LAYOUT_ortho_4x12(
- KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSPC,
- ESC_CTL, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH,
- KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_ENT ,
- XXXXXXX, KC_LCTL, KC_LGUI, KC_LALT, LOWER , KC_SPC , KC_SPC , RSE_ENT, KC_LEFT, KC_DOWN, KC_UP , KC_RGHT
- ),
-
- [_LOWER] = LAYOUT_ortho_4x12(
- KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_7, KC_8, KC_9, KC_MINS, _______,
- KC_TILD, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_4, KC_5, KC_6, KC_PLUS, KC_PIPE,
- _______, _______, _______, KC_UNDS, KC_EQL, _______, _______, KC_1, KC_2, KC_3, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, KC_0, KC_DOT, KC_COMM, _______, _______
- ),
-
- [_RAISE] = LAYOUT_ortho_4x12(
- KC_GRV, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, _______, KC_INS, KC_DEL,
- KC_TILD, _______, KC_LBRC, KC_LCBR, KC_RCBR, KC_RBRC, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, _______, KC_BSLS,
- _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_PGUP, KC_END, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, DESK_R, DESK_DN, DESK_UP, DESK_L
- ),
-
- [_GAME] = LAYOUT_ortho_4x12(
- KC_TAB , KC_Q , KC_W , KC_F , KC_P , KC_G , KC_J , KC_L , KC_U , KC_Y , KC_SCLN, KC_BSPC,
- ESC_CMD, KC_A , KC_R , KC_S , KC_T , KC_D , KC_H , KC_N , KC_E , KC_I , KC_O , KC_QUOT,
- KC_LSFT, KC_Z , KC_X , KC_C , KC_V , KC_B , KC_K , KC_M , KC_COMM, KC_DOT , KC_SLSH, KC_ENT,
- XXXXXXX, KC_LCTL, KC_LGUI, KC_LALT, LOWER , KC_SPC , KC_SPC , RSE_ENT, KC_LEFT, KC_DOWN, KC_UP , KC_RGHT
- ),
-
- [_ADJUST] = LAYOUT_ortho_4x12(
- _______, QK_BOOT, DB_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL ,
- _______, _______, MU_NEXT, AU_ON, AU_OFF, AG_NORM, AG_SWAP, QWERTY, COLEMAK, DVORAK, GAME, _______,
- _______, AU_PREV, AU_NEXT, MU_ON, MU_OFF, MI_ON, MI_OFF, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
- )
-
-};
-
-bool process_record_user(uint16_t keycode, keyrecord_t *record) {
- switch (keycode) {
- case QWERTY:
- if (record->event.pressed) {
- set_single_persistent_default_layer(_QWERTY);
- }
- return false;
- break;
- case COLEMAK:
- if (record->event.pressed) {
- set_single_persistent_default_layer(_COLEMAK);
- }
- return false;
- break;
- case DVORAK:
- if (record->event.pressed) {
- set_single_persistent_default_layer(_DVORAK);
- }
- return false;
- break;
- case LOWER:
- if (record->event.pressed) {
- layer_on(_LOWER);
- update_tri_layer(_LOWER, _RAISE, _ADJUST);
- } else {
- layer_off(_LOWER);
- update_tri_layer(_LOWER, _RAISE, _ADJUST);
- }
- return false;
- break;
- case RAISE:
- if (record->event.pressed) {
- layer_on(_RAISE);
- update_tri_layer(_LOWER, _RAISE, _ADJUST);
- } else {
- layer_off(_RAISE);
- update_tri_layer(_LOWER, _RAISE, _ADJUST);
- }
- return false;
- break;
- case ADJUST:
- if (record->event.pressed) {
- layer_on(_ADJUST);
- } else {
- layer_off(_ADJUST);
- }
- return false;
- break;
- }
- return true;
-}
-
-bool encoder_update_user(uint8_t index, bool clockwise) {
- if (IS_LAYER_ON(_RAISE) || IS_LAYER_ON(_LOWER)) {
- if (clockwise) {
- register_code(KC_VOLU);
- unregister_code(KC_VOLU);
- } else {
- register_code(KC_VOLD);
- register_code(KC_VOLD);
- }
- } else {
- if (clockwise) {
- #ifdef MOUSEKEY_ENABLE
- register_code(KC_MS_WH_DOWN);
- unregister_code(KC_MS_WH_DOWN);
- #else
- register_code(KC_PGDN);
- unregister_code(KC_PGDN);
- #endif
- } else {
- #ifdef MOUSEKEY_ENABLE
- register_code(KC_MS_WH_UP);
- unregister_code(KC_MS_WH_UP);
- #else
- register_code(KC_PGUP);
- unregister_code(KC_PGUP);
- #endif
- }
- }
- return true;
-}
diff --git a/layouts/community/ortho_4x12/buswerks/readme.md b/layouts/community/ortho_4x12/buswerks/readme.md
deleted file mode 100644
index e469d6a50f..0000000000
--- a/layouts/community/ortho_4x12/buswerks/readme.md
+++ /dev/null
@@ -1,12 +0,0 @@
-![Imgur](https://i.imgur.com/yx9tFUq.png)
-
-# Logan's Ortho 4x12 Layout
-
-This layout is what I use on my Planck. Some features of the layout:
-
-- Rotary encoder support (no function for clicking yet)
-- Numpad under right hand (I find this much more comfortable than touch-typing the number row)
-- Space cadet shift
-- Curly braces are under the home row (makes programming much more comfortable)
-
-Also, another note: the QWERTY layout uses `LGUI_T(KC_ESC)` and the COLEMAK/DVORAK layouts use `LCTL_T(KC_ESC)`. This is because I use the QWERTY layout on my Mac laptop so that I don't have to change the software remapping every time I dock my laptop. This also allows a convenient remapping of the modifier keys. I use the hardware mapped COLEMAK layout on Linux.
diff --git a/layouts/community/ortho_4x12/buswerks/rules.mk b/layouts/community/ortho_4x12/buswerks/rules.mk
deleted file mode 100644
index d08db7130b..0000000000
--- a/layouts/community/ortho_4x12/buswerks/rules.mk
+++ /dev/null
@@ -1,9 +0,0 @@
-BOOTMAGIC_ENABLE = no # Enable Bootmagic Lite
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
-COMMAND_ENABLE = no # Commands for debug and configuration
-TAP_DANCE_ENABLE = no
-AUDIO_ENABLE = yes
-
-MACROS_ENABLED = no \ No newline at end of file
diff --git a/layouts/community/ortho_4x12/callum/config.h b/layouts/community/ortho_4x12/callum/config.h
deleted file mode 100644
index 8034fe51b6..0000000000
--- a/layouts/community/ortho_4x12/callum/config.h
+++ /dev/null
@@ -1,14 +0,0 @@
-#pragma once
-
-#define LAYOUT_callum( \
- KEY00, KEY01, KEY02, KEY03, KEY04, KEY05, KEY06, KEY07, KEY08, KEY09, \
- KEY10, KEY11, KEY12, KEY13, KEY14, KEY15, KEY16, KEY17, KEY18, KEY19, \
- KEY20, KEY21, KEY22, KEY23, KEY24, KEY25, KEY26, KEY27, KEY28, KEY29, \
- KEY30, KEY31, KEY32, KEY33 \
-) \
-LAYOUT_ortho_4x12( \
- KEY00, KEY01, KEY02, KEY03, KEY04, KC_NO, KC_NO, KEY05, KEY06, KEY07, KEY08, KEY09, \
- KEY10, KEY11, KEY12, KEY13, KEY14, KC_NO, KC_NO, KEY15, KEY16, KEY17, KEY18, KEY19, \
- KEY20, KEY21, KEY22, KEY23, KEY24, KC_NO, KC_NO, KEY25, KEY26, KEY27, KEY28, KEY29, \
- KC_NO, KC_NO, KC_NO, KEY30, KEY31, KC_NO, KC_NO, KEY32, KEY33, KC_NO, KC_NO, KC_NO \
-)
diff --git a/layouts/community/ortho_4x12/callum/keymap.c b/layouts/community/ortho_4x12/callum/keymap.c
deleted file mode 100644
index acff75905d..0000000000
--- a/layouts/community/ortho_4x12/callum/keymap.c
+++ /dev/null
@@ -1 +0,0 @@
-// Intentionally empty. See /users/callum/readme.md.
diff --git a/layouts/community/ortho_4x12/colemak_mod_dh_wide/config.h b/layouts/community/ortho_4x12/colemak_mod_dh_wide/config.h
deleted file mode 100644
index 2f0c23b7f1..0000000000
--- a/layouts/community/ortho_4x12/colemak_mod_dh_wide/config.h
+++ /dev/null
@@ -1,27 +0,0 @@
-/*
-This is the c configuration file for the keymap
-
-Copyright 2012 Jun Wako <wakojun@gmail.com>
-Copyright 2015 Jack Humbert
-
-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
-
-/* Select hand configuration */
-
-#define MASTER_LEFT
-// #define _MASTER_RIGHT
-// #define EE_HANDS
diff --git a/layouts/community/ortho_4x12/colemak_mod_dh_wide/keymap.c b/layouts/community/ortho_4x12/colemak_mod_dh_wide/keymap.c
deleted file mode 100644
index ac2304f7f8..0000000000
--- a/layouts/community/ortho_4x12/colemak_mod_dh_wide/keymap.c
+++ /dev/null
@@ -1,137 +0,0 @@
-#include QMK_KEYBOARD_H
-#include "action_layer.h"
-#include "eeconfig.h"
-
-extern keymap_config_t keymap_config;
-
-// Each layer gets a name for readability, which is then used in the keymap matrix below.
-// The underscores don't mean anything - you can have a layer called STUFF or any other name.
-// Layer names don't all need to be of the same length, obviously, and you can also skip them
-// entirely and just use numbers.
-#define _COLEMAKDH 0
-#define _LOWER 1
-#define _RAISE 2
-#define _ADJUST 16
-
-enum custom_keycodes {
- COLEMAKDH = SAFE_RANGE,
- LOWER,
- RAISE,
- ADJUST,
-};
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
-/* Colemak
- * ,-----------------------------------------------------------------------------------.
- * | Q | W | F | P | B | Tab | Bksp | J | L | U | Y | ; |
- * |------+------+------+------+------+-------------+------+------+------+------+------|
- * | A | R | S | T | G | Esc | " | M | N | E | I | O |
- * |------+------+------+------+------+------|------+------+------+------+------+------|
- * | Z | X | C | D | V |Shift |Enter | K | H | , | . | / |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | Ctrl | Alt | GUI |Adjust|Space |Lower |Raise |Space | Left | Down | Up |Right |
- * `-----------------------------------------------------------------------------------'
- */
-[_COLEMAKDH] = LAYOUT_ortho_4x12(
- KC_Q, KC_W, KC_F, KC_P, KC_B, KC_TAB, KC_BSPC, KC_J, KC_L, KC_U, KC_Y, KC_SCLN,
- KC_A, KC_R, KC_S, KC_T, KC_G, KC_ESC, KC_QUOT, KC_M, KC_N, KC_E, KC_I, KC_O,
- KC_Z, KC_X, KC_C, KC_D, KC_V, KC_LSFT, KC_ENT, KC_K, KC_H, KC_COMM, KC_DOT, KC_SLSH,
- ADJUST, KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, LOWER, RAISE, KC_SPC, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT
-),
-
-/* Lower
- * ,-----------------------------------------------------------------------------------.
- * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp |
- * |------+------+------+------+------+-------------+------+------+------+------+------|
- * | Del | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | | \ | | |
- * |------+------+------+------+------+------|------+------+------+------+------+------|
- * | | F7 | F8 | F9 | F10 | F11 | F12 |ISO ~ |ISO | | | |Enter |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | | | | | | | | Next | Vol- | Vol+ | Play |
- * `-----------------------------------------------------------------------------------'
- */
-[_LOWER] = LAYOUT_ortho_4x12(
- KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC,
- KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE,
- _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,S(KC_NUHS),S(KC_NUBS),_______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY
-),
-
-/* Raise
- * ,-----------------------------------------------------------------------------------.
- * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp |
- * |------+------+------+------+------+-------------+------+------+------+------+------|
- * | Del | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ |
- * |------+------+------+------+------+------|------+------+------+------+------+------|
- * | | F7 | F8 | F9 | F10 | F11 | F12 |ISO # |ISO / | | |Enter |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | | | | | | | | Next | Vol- | Vol+ | Play |
- * `-----------------------------------------------------------------------------------'
- */
-[_RAISE] = LAYOUT_ortho_4x12(
- KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC,
- KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS,
- _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NUHS, KC_NUBS, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY
-),
-
-/* Adjust (Lower + Raise)
- * ,-----------------------------------------------------------------------------------.
- * | | Reset| | | | | | | | | | Del |
- * |------+------+------+------+------+-------------+------+------+------+------+------|
- * | | | |Aud on|Audoff|AGnorm|AGswap|Qwerty|Colemk|Dvorak| | |
- * |------+------+------+------+------+------|------+------+------+------+------+------|
- * | | | | | | | | | | | | |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | | | | | | | | | | | |
- * `-----------------------------------------------------------------------------------'
- */
-[_ADJUST] = LAYOUT_ortho_4x12(
- _______, QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL,
- _______, _______, _______, AU_ON, AU_OFF, AG_NORM, AG_SWAP, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
-)
-
-
-};
-
-void persistent_default_layer_set(uint16_t default_layer) {
- eeconfig_update_default_layer(default_layer);
- default_layer_set(default_layer);
-}
-
-bool process_record_user(uint16_t keycode, keyrecord_t *record) {
- switch (keycode) {
- case LOWER:
- if (record->event.pressed) {
- layer_on(_LOWER);
- update_tri_layer(_LOWER, _RAISE, _ADJUST);
- } else {
- layer_off(_LOWER);
- update_tri_layer(_LOWER, _RAISE, _ADJUST);
- }
- return false;
- break;
- case RAISE:
- if (record->event.pressed) {
- layer_on(_RAISE);
- update_tri_layer(_LOWER, _RAISE, _ADJUST);
- } else {
- layer_off(_RAISE);
- update_tri_layer(_LOWER, _RAISE, _ADJUST);
- }
- return false;
- break;
- case ADJUST:
- if (record->event.pressed) {
- layer_on(_ADJUST);
- } else {
- layer_off(_ADJUST);
- }
- return false;
- break;
- }
- return true;
-}
diff --git a/layouts/community/ortho_4x12/colemak_mod_dh_wide/readme.md b/layouts/community/ortho_4x12/colemak_mod_dh_wide/readme.md
deleted file mode 100644
index 63193e5869..0000000000
--- a/layouts/community/ortho_4x12/colemak_mod_dh_wide/readme.md
+++ /dev/null
@@ -1,5 +0,0 @@
-# ortho_4x12
-
-A wide, split layout for use on grid Planck or Let's Split based on the Colemak Mod-DH keyboard layout.
-
-![layout image](https://i.imgur.com/y3O6U1R.png)
diff --git a/layouts/community/ortho_4x12/drashna/config.h b/layouts/community/ortho_4x12/drashna/config.h
deleted file mode 100644
index 7db0afa40f..0000000000
--- a/layouts/community/ortho_4x12/drashna/config.h
+++ /dev/null
@@ -1,153 +0,0 @@
-/* Copyright 2020 Christopher Courtney, aka Drashna Jael're (@drashna) <drashna@live.com>
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-#pragma once
-
-#if defined(RGBLIGHT_ENABLE) && !defined(RGBLED_NUM)
-# if defined(KEYBOARD_planck_light)
-# define WS2812_DI_PIN A0
-# define RGBLED_NUM 13 // Number of LEDs
-# endif
-# define RGBLIGHT_HUE_STEP 12
-# define RGBLIGHT_SAT_STEP 12
-# define RGBLIGHT_VAL_STEP 12
-# define RGBLIGHT_EFFECT_KNIGHT_LENGTH 2
-# define RGBLIGHT_EFFECT_SNAKE_LENGTH 2
-# ifdef RGB_MATRIX_ENABLE
-# define RGBLIGHT_DISABLE_KEYCODES
-# endif
-#endif // RGBLIGHT_ENABLE
-
-#ifdef RGB_MATRIX_ENABLE
-# define RGB_MATRIX_KEYPRESSES // reacts to keypresses (will slow down matrix scan by a lot)
-// #define RGB_MATRIX_KEYRELEASES // reacts to keyreleases (not recommened)
-# define RGB_MATRIX_FRAMEBUFFER_EFFECTS
-// #define RGB_MATRIX_MAXIMUM_BRIGHTNESS 200 // limits maximum brightness of LEDs to 200 out of 255. If not defined maximum brightness is set to 255
-# define RGB_DISABLE_WHEN_USB_SUSPENDED // turn off effects when suspended
-# undef RGB_MATRIX_LED_PROCESS_LIMIT
-# undef RGB_MATRIX_LED_FLUSH_LIMIT
-# ifdef KEYBOARD_planck_rev6
-# define RGB_MATRIX_LED_COUNT RGBLED_NUM
-# endif
-#endif
-
-#if defined(KEYBOARD_lets_split_rev2)
-# undef USE_I2C
-# define EE_HANDS
-#endif
-
-#if !defined(KEYBOARD_planck_light)
-# ifdef RGBLIGHT_ENABLE
-# define NO_MUSIC_MODE
-# endif // RGBLIGHT_ENABLE
-#else
-# undef QMK_ESC_OUTPUT
-# define QMK_ESC_OUTPUT E6 // usually COL
-# undef QMK_ESC_INPUT
-# define QMK_ESC_INPUT B0 // usually ROW
-# undef QMK_LED
-# define QMK_LED D6
-# undef QMK_SPEAKER
-# define QMK_SPEAKER B5
-# define SOLENOID_PIN A1
-#endif // KEYBOARD_planck_light
-
-#if defined(KEYBOARD_planck)
-# if defined(KEYBOARD_planck_light)
-# undef PRODUCT
-# define PRODUCT "Drashna Hacked RGB Beacon(Planck Light)"
-# elif defined(KEYBOARD_planck_rev6)
-# undef PRODUCT
-# define PRODUCT "Drashna Hacked Planck Rev6"
-# elif defined(KEYBOARD_planck_ez)
-# undef PRODUCT
-# define PRODUCT "Drashna Hacked Planck EZ"
-# define DYNAMIC_KEYMAP_EEPROM_MAX_ADDR 4095
-# endif
-#endif
-#undef NO_USB_STARTUP_CHECK
-
-
-#define EEPROM_I2C_RM24C512C
-
-#define ENCODER_DIRECTION_FLIP
-/*
- * MIDI options
- */
-
-/* enable basic MIDI features:
- - MIDI notes can be sent when in Music mode is on
-*/
-
-// #define MIDI_BASIC
-
-/* enable advanced MIDI features:
- - MIDI notes can be added to the keymap
- - Octave shift and transpose
- - Virtual sustain, portamento, and modulation wheel
- - etc.
-*/
-//#define MIDI_ADVANCED
-
-/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
-//#define MIDI_TONE_KEYCODE_OCTAVES 2
-
-#define DRV2605L_FB_ERM_LRA 1 /* For ERM:0 or LRA:1*/
-#define DRV2605L_FB_BRAKEFACTOR 6 /* For 1x:0, 2x:1, 3x:2, 4x:3, 6x:4, 8x:5, 16x:6, Disable Braking:7 */
-#define DRV2605L_FB_LOOPGAIN 1 /* For Low:0, Medium:1, High:2, Very High:3 */
-
-/* default 3V ERM vibration motor voltage and library*/
-#if DRV2605L_FB_ERM_LRA == 0
-# define DRV2605L_RATED_VOLTAGE 3
-# define DRV2605L_V_RMS 2.3
-# define DRV2605L_V_PEAK 3.30
-/* Library Selection */
-# define DRV2605L_LIBRARY 4 /* For Empty:0' TS2200 library A to D:1-5, LRA Library: 6 */
-
-/* default 2V LRA voltage and library */
-#elif DRV2605L_FB_ERM_LRA == 1
-# define DRV2605L_RATED_VOLTAGE 2
-# define DRV2605L_V_RMS 2.0
-# define DRV2605L_V_PEAK 2.85
-# define DRV2605L_F_LRA 200
-/* Library Selection */
-# define DRV2605L_LIBRARY 6 /* For Empty:0' TS2200 library A to D:1-5, LRA Library: 6 */
-
-#endif
-
-/* Control 1 register settings */
-#define DRV2605L_DRIVE_TIME 25
-#define DRV2605L_AC_COUPLE 0
-#define DRV2605L_STARTUP_BOOST 1
-
-/* Control 2 Settings */
-#define DRV2605L_BIDIR_INPUT 1
-#define DRV2605L_BRAKE_STAB 1 /* Loopgain is reduced when braking is almost complete to improve stability */
-#define DRV2605L_SAMPLE_TIME 3
-#define DRV2605L_BLANKING_TIME 1
-#define DRV2605L_IDISS_TIME 1
-
-/* Control 3 settings */
-#define DRV2605L_NG_THRESH 2
-#define DRV2605L_ERM_OPEN_LOOP 1
-#define DRV2605L_SUPPLY_COMP_DIS 0
-#define DRV2605L_DATA_FORMAT_RTO 0
-#define DRV2605L_LRA_DRIVE_MODE 0
-#define DRV2605L_N_PWM_ANALOG 0
-#define DRV2605L_LRA_OPEN_LOOP 0
-/* Control 4 settings */
-#define DRV2605L_ZC_DET_TIME 0
-#define DRV2605L_AUTO_CAL_TIME 3
diff --git a/layouts/community/ortho_4x12/drashna/keymap.c b/layouts/community/ortho_4x12/drashna/keymap.c
deleted file mode 100644
index cdf41fc5dc..0000000000
--- a/layouts/community/ortho_4x12/drashna/keymap.c
+++ /dev/null
@@ -1,288 +0,0 @@
-/* Copyright 2020 Christopher Courtney, aka Drashna Jael're (@drashna) <drashna@live.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 "drashna.h"
-
-#define BACKLIT OSM(MOD_LSFT)
-enum planck_keycodes {
- TH_LVL = USER_SAFE_RANGE,
-};
-
-#ifdef KEYBOARD_planck_ez
-# define PLNK_1 BK_LWER
-# define PLNK_2 SP_LWER
-# define PLNK_3 KC_NO
-# define PLNK_4 ET_RAIS
-#else
-# define PLNK_1 SP_LWER
-# define PLNK_2 BK_LWER
-# define PLNK_3 DL_RAIS
-# define PLNK_4 ET_RAIS
-#endif
-
-/*
- * The `LAYOUT_ortho_4x12_base` macro is a template to allow the use of identical
- * modifiers for the default layouts (eg QWERTY, Colemak, Dvorak, etc), so
- * that there is no need to set them up for each layout, and modify all of
- * them if I want to change them. This helps to keep consistency and ease
- * of use. K## is a placeholder to pass through the individual keycodes
- */
-// clang-format off
-#define LAYOUT_ortho_4x12_wrapper(...) LAYOUT_ortho_4x12(__VA_ARGS__)
-#define LAYOUT_ortho_4x12_base( \
- K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, \
- K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, \
- K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A \
- ) \
- LAYOUT_ortho_4x12_wrapper( \
- KC_ESC, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, PRINT_SETUPS, \
- LALT_T(KC_TAB), K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, RALT_T(K1B), \
- KC_MLSF, CTL_T(K21), K22, K23, K24, K25, K26, K27, K28, K29, RCTL_T(K2A), KC_ENT, \
- STORE_SETUPS, OS_LCTL, OS_LALT, OS_LGUI, PLNK_1, PLNK_2, PLNK_3, PLNK_4, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT \
- )
-#define LAYOUT_base_wrapper(...) LAYOUT_ortho_4x12_base(__VA_ARGS__)
-
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [_DEFAULT_LAYER_1] = LAYOUT_base_wrapper(
- _________________QWERTY_L1_________________, _________________QWERTY_R1_________________,
- _________________QWERTY_L2_________________, _________________QWERTY_R2_________________,
- _________________QWERTY_L3_________________, _________________QWERTY_R3_________________
- ),
-
- [_DEFAULT_LAYER_2] = LAYOUT_base_wrapper(
- ______________COLEMAK_MOD_DH_L1____________, ______________COLEMAK_MOD_DH_R1____________,
- ______________COLEMAK_MOD_DH_L2____________, ______________COLEMAK_MOD_DH_R2____________,
- ______________COLEMAK_MOD_DH_L3____________, ______________COLEMAK_MOD_DH_R3____________
- ),
- [_DEFAULT_LAYER_3] = LAYOUT_base_wrapper(
- _________________COLEMAK_L1________________, _________________COLEMAK_R1________________,
- _________________COLEMAK_L2________________, _________________COLEMAK_R2________________,
- _________________COLEMAK_L3________________, _________________COLEMAK_R3________________
- ),
-
- [_DEFAULT_LAYER_4] = LAYOUT_base_wrapper(
- _________________DVORAK_L1_________________, _________________DVORAK_R1_________________,
- _________________DVORAK_L2_________________, _________________DVORAK_R2_________________,
- _________________DVORAK_L3_________________, _________________DVORAK_R3_________________
- ),
-
- [_LOWER] = LAYOUT_ortho_4x12_wrapper(
- KC_TILD, _________________LOWER_L1__________________, _________________LOWER_R1__________________, KC_BSPC,
- KC_DEL, _________________LOWER_L2__________________, _________________LOWER_R2__________________, KC_PIPE,
- _______, _________________LOWER_L3__________________, _________________LOWER_R3__________________, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
- ),
-
- [_RAISE] = LAYOUT_ortho_4x12_wrapper(
- KC_GRV, _________________RAISE_L1__________________, _________________RAISE_R1__________________, KC_BSPC,
- KC_DEL, _________________RAISE_L2__________________, _________________RAISE_R2__________________, KC_BSLS,
- _______, _________________RAISE_L3__________________, _________________RAISE_R3__________________, _______,
- _______, _______, _______, _______, _______, _______, _______, _________________RAISE_R3__________________
- ),
-
- [_ADJUST] = LAYOUT_ortho_4x12_wrapper(
- QK_MAKE, _________________ADJUST_L1_________________, _________________ADJUST_R1_________________, QK_BOOT,
- VRSN, _________________ADJUST_L2_________________, _________________ADJUST_R2_________________, EE_CLR,
- TH_LVL, _________________ADJUST_L3_________________, _________________ADJUST_R3_________________, RGB_IDL,
- KEYLOCK, _______, _______, QK_RBT, _______, KC_NUKE, _______, _______, AUTO_CTN,_______, _______, TG_MODS
- )
-
-};
-
-#ifdef ENCODER_MAP_ENABLE
-const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = {
- [_DEFAULT_LAYER_1] = { { KC_DOWN, KC_UP } },
- [_DEFAULT_LAYER_2] = { { _______, _______ } },
- [_DEFAULT_LAYER_3] = { { _______, _______ } },
- [_DEFAULT_LAYER_4] = { { _______, _______ } },
- [_GAMEPAD] = { { _______, _______ } },
- [_DIABLO] = { { _______, _______ } },
- [_MOUSE] = { { KC_WH_D, KC_WH_U } },
- [_MEDIA] = { { _______, _______ } },
- [_RAISE] = { { KC_VOLD, KC_VOLU } },
- [_LOWER] = { { RGB_MOD, RGB_RMOD} },
- [_ADJUST] = { { CK_DOWN, CK_UP } },
-};
-#endif
-// clang-format on
-
-bool process_record_keymap(uint16_t keycode, keyrecord_t *record) {
- switch (keycode) {
-#ifdef KEYBOARD_planck_ez
- case TH_LVL:
- if (record->event.pressed) {
- keyboard_config.led_level++;
- if (keyboard_config.led_level > 4) {
- keyboard_config.led_level = 0;
- }
- planck_ez_right_led_level((uint8_t)keyboard_config.led_level * 255 / 4);
- planck_ez_left_led_level((uint8_t)keyboard_config.led_level * 255 / 4);
- eeconfig_update_kb(keyboard_config.raw);
- layer_state_set_kb(layer_state);
- }
- break;
-#endif
- }
- return true;
-}
-
-bool music_mask_user(uint16_t keycode) {
- switch (keycode) {
- case RAISE:
- case LOWER:
- case BK_LWER:
- case SP_LWER:
- case DL_RAIS:
- case ET_RAIS:
- return false;
- default:
- return true;
- }
-}
-
-#ifdef RGB_MATRIX_ENABLE
-
-# ifdef KEYBOARD_planck_rev6
-// clang-format off
-led_config_t g_led_config = {
- {
- // Key Matrix to LED Index
- { NO_LED, 6, NO_LED, NO_LED, 5, NO_LED },
- { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED },
- { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, 0 },
- { NO_LED, 7, NO_LED, NO_LED, 2, NO_LED },
- { NO_LED, 4, NO_LED, NO_LED, 3, NO_LED },
- { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED },
- { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED },
- { NO_LED, 1, NO_LED, NO_LED, 8, NO_LED }
- }, {
- // LED Index to Physical Position
- {112, 39}, {148, 60}, {206, 53}, {206, 3}, {150, 3}, {74, 3}, {18, 3}, {18, 54}, {77, 60}
- }, {
- // LED Index to Flag
- LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL,
- LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL
- }
-};
-// clange-format on
-# endif
-
-
-bool rgb_matrix_indicators_advanced_keymap(uint8_t led_min, uint8_t led_max) {
- uint8_t this_mod = get_mods();
- led_t this_led = host_keyboard_led_state();
- uint8_t this_osm = get_oneshot_mods();
-# ifdef KEYBOARD_planck_ez
-# define THUMB_LED 41
-# else
-# define THUMB_LED 42
-# endif
-# define RGB_MATRIX_INDICATOR_SET_COLOR_wrapper(...) RGB_MATRIX_INDICATOR_SET_COLOR(__VA_ARGS__)
-
- switch (get_highest_layer(default_layer_state)) {
- case _DEFAULT_LAYER_1:
- RGB_MATRIX_INDICATOR_SET_COLOR_wrapper(THUMB_LED, DEFAULT_LAYER_1_RGB);
- break;
- case _DEFAULT_LAYER_2:
- RGB_MATRIX_INDICATOR_SET_COLOR_wrapper(THUMB_LED, DEFAULT_LAYER_2_RGB);
- break;
- case _DEFAULT_LAYER_3:
- RGB_MATRIX_INDICATOR_SET_COLOR_wrapper(THUMB_LED, DEFAULT_LAYER_3_RGB);
- break;
- case _DEFAULT_LAYER_4:
- RGB_MATRIX_INDICATOR_SET_COLOR_wrapper(THUMB_LED, DEFAULT_LAYER_4_RGB);
- break;
- }
-
- if ((this_mod | this_osm) & MOD_MASK_SHIFT || this_led.caps_lock) {
- if (!layer_state_cmp(layer_state, _ADJUST)) {
- RGB_MATRIX_INDICATOR_SET_COLOR(24, 0x00, 0xFF, 0x00);
- }
- RGB_MATRIX_INDICATOR_SET_COLOR(36, 0x00, 0xFF, 0x00);
- }
- if ((this_mod | this_osm) & MOD_MASK_CTRL) {
- RGB_MATRIX_INDICATOR_SET_COLOR(25, 0xFF, 0x00, 0x00);
- RGB_MATRIX_INDICATOR_SET_COLOR(34, 0xFF, 0x00, 0x00);
- RGB_MATRIX_INDICATOR_SET_COLOR(37, 0xFF, 0x00, 0x00);
- }
- if ((this_mod | this_osm) & MOD_MASK_GUI) {
- RGB_MATRIX_INDICATOR_SET_COLOR(39, 0xFF, 0xD9, 0x00);
- }
- if ((this_mod | this_osm) & MOD_MASK_ALT) {
- RGB_MATRIX_INDICATOR_SET_COLOR(38, 0x00, 0x00, 0xFF);
- }
-
- return true;
-}
-
-void keyboard_post_init_keymap(void) {
-# ifdef KEYBOARD_planck_light
- writePinLow(D6);
-# endif
- // rgblight_mode(RGB_MATRIX_MULTISPLASH);
-}
-#endif // RGB_MATRIX_INIT
-
-#ifdef KEYBOARD_planck_rev6
-bool dip_switch_update_user(uint8_t index, bool active) {
- switch (index) {
- case 0:
- if (active) {
- audio_on();
- } else {
- audio_off();
- }
- break;
- case 1:
- if (active) {
- clicky_on();
- } else {
- clicky_off();
- }
- break;
- case 2:
- keymap_config.swap_lctl_lgui = keymap_config.swap_rctl_rgui = active;
- break;
- case 3:
- userspace_config.nuke_switch = active;
- break;
- }
- return true;
-}
-#endif // KEYBOARD_planck_rev6
-
-#ifdef KEYBOARD_planck_ez
-layer_state_t layer_state_set_keymap(layer_state_t state) {
- planck_ez_left_led_off();
- planck_ez_right_led_off();
- switch (get_highest_layer(state)) {
- case _LOWER:
- planck_ez_left_led_on();
- break;
- case _RAISE:
- planck_ez_right_led_on();
- break;
- case _ADJUST:
- planck_ez_right_led_on();
- planck_ez_left_led_on();
- break;
- default:
- break;
- }
- return state;
-}
-#endif
diff --git a/layouts/community/ortho_4x12/drashna/readme.md b/layouts/community/ortho_4x12/drashna/readme.md
deleted file mode 100644
index de9680b498..0000000000
--- a/layouts/community/ortho_4x12/drashna/readme.md
+++ /dev/null
@@ -1,2 +0,0 @@
-# The Default Planck Layout
-
diff --git a/layouts/community/ortho_4x12/drashna/rules.mk b/layouts/community/ortho_4x12/drashna/rules.mk
deleted file mode 100644
index 15775bcbe3..0000000000
--- a/layouts/community/ortho_4x12/drashna/rules.mk
+++ /dev/null
@@ -1,51 +0,0 @@
-BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite
-MOUSEKEY_ENABLE = no # Mouse keys
-EXTRAKEY_ENABLE = yes # Audio control and System control
-TAP_DANCE_ENABLE = no
-NKRO_ENABLE = yes
-CAPS_WORD_ENABLE = no
-CONSOLE_ENABLE = no
-COMMAND_ENABLE = no
-BACKLIGHT_ENABLE = no
-
-ifeq ($(strip $(LAYOUTS_HAS_RGB)), yes)
- RGBLIGHT_ENABLE = yes
-endif
-
-ifeq ($(strip $(KEYBOARD)), planck/rev6)
- CONSOLE_ENABLE = yes
- RGBLIGHT_ENABLE = yes
- RGB_MATRIX_ENABLE = no
- RGBLIGHT_STARTUP_ANIMATION = yes
- AUDIO_ENABLE = yes
- EEPROM_DRIVER = i2c
- ENCODER_MAP_ENABLE = yes
- AUTOCORRECT_ENABLE = yes
- CAPS_WORD_ENABLE = yes
-endif
-ifeq ($(strip $(KEYBOARD)), planck/light)
- RGB_MATRIX_ENABLE = yes
- RGBLIGHT_ENABLE = yes
- RGBLIGHT_STARTUP_ANIMATION = yes
- AUDIO_ENABLE = yes
-endif
-ifeq ($(strip $(KEYBOARD)), planck/ez)
- RGBLIGHT_ENABLE = no
- ENCODER_ENABLE = yes
- ENCODER_MAP_ENABLE = yes
- RGB_MATRIX_ENABLE = yes
- INDICATOR_LIGHTS = yes
- RGBLIGHT_STARTUP_ANIMATION = yes
- CONSOLE_ENABLE = yes
- COMMAND_ENABLE = yes
- AUDIO_ENABLE = yes
- AUTOCORRECT_ENABLE = yes
- CAPS_WORD_ENABLE = yes
-endif
-
-ifeq ($(strip $(MCU)), atmega32u4)
- BOOTLOADER = qmk-hid
- BOOTLOADER_SIZE = 512
- LTO_ENABLE = yes
- CUSTOM_UNICODE_ENABLE = no
-endif
diff --git a/layouts/community/ortho_4x12/ergodoxish/config.h b/layouts/community/ortho_4x12/ergodoxish/config.h
deleted file mode 100644
index 2f0c23b7f1..0000000000
--- a/layouts/community/ortho_4x12/ergodoxish/config.h
+++ /dev/null
@@ -1,27 +0,0 @@
-/*
-This is the c configuration file for the keymap
-
-Copyright 2012 Jun Wako <wakojun@gmail.com>
-Copyright 2015 Jack Humbert
-
-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
-
-/* Select hand configuration */
-
-#define MASTER_LEFT
-// #define _MASTER_RIGHT
-// #define EE_HANDS
diff --git a/layouts/community/ortho_4x12/ergodoxish/keymap.c b/layouts/community/ortho_4x12/ergodoxish/keymap.c
deleted file mode 100644
index c4a36aa485..0000000000
--- a/layouts/community/ortho_4x12/ergodoxish/keymap.c
+++ /dev/null
@@ -1,210 +0,0 @@
-#include QMK_KEYBOARD_H
-#include "action_layer.h"
-#include "eeconfig.h"
-
-extern keymap_config_t keymap_config;
-
-// Each layer gets a name for readability, which is then used in the keymap matrix below.
-// The underscores don't mean anything - you can have a layer called STUFF or any other name.
-// Layer names don't all need to be of the same length, obviously, and you can also skip them
-// entirely and just use numbers.
-#define _QWERTY 0
-#define _COLEMAK 1
-#define _DVORAK 2
-#define _LOWER 3
-#define _RAISE 4
-#define _ADJUST 16
-
-enum custom_keycodes {
- QWERTY = SAFE_RANGE,
- COLEMAK,
- DVORAK,
- LOWER,
- RAISE,
- ADJUST,
-};
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
-/* Qwerty
- * ,-----------------------------------------------------------------------------------.
- * | Tab | Q | W | E | R | T | Y | U | I | O | P | Bksp |
- * |------+------+------+------+------+-------------+------+------+------+------+------|
- * | Esc | A | S | D | F | G | H | J | K | L | ; | " |
- * |------+------+------+------+------+------|------+------+------+------+------+------|
- * | Shift| Z | X | C | V | B | N | M | , | . | / |Enter |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * |Adjust| Ctrl | Alt | GUI |Lower |Space |Space |Raise | Left | Down | Up |Right |
- * `-----------------------------------------------------------------------------------'
- */
-[_QWERTY] = LAYOUT_ortho_4x12(
- 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_ESC, 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_ENT ,
- ADJUST, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT
-),
-
-/* Colemak
- * ,-----------------------------------------------------------------------------------.
- * | Tab | Q | W | F | P | G | J | L | U | Y | ; | Bksp |
- * |------+------+------+------+------+-------------+------+------+------+------+------|
- * | Esc | A | R | S | T | D | H | N | E | I | O | " |
- * |------+------+------+------+------+------|------+------+------+------+------+------|
- * | Shift| Z | X | C | V | B | K | M | , | . | / |Enter |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * |Adjust| Ctrl | Alt | GUI |Lower |Space |Space |Raise | Left | Down | Up |Right |
- * `-----------------------------------------------------------------------------------'
- */
-[_COLEMAK] = LAYOUT_ortho_4x12(
- KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC,
- KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT,
- KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT ,
- ADJUST, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT
-),
-
-/* Dvorak
- * ,-----------------------------------------------------------------------------------.
- * | Tab | " | , | . | P | Y | F | G | C | R | L | Bksp |
- * |------+------+------+------+------+-------------+------+------+------+------+------|
- * | Esc | A | O | E | U | I | D | H | T | N | S | / |
- * |------+------+------+------+------+------|------+------+------+------+------+------|
- * | Shift| ; | Q | J | K | X | B | M | W | V | Z |Enter |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * |Adjust| Ctrl | Alt | GUI |Lower |Space |Space |Raise | Left | Down | Up |Right |
- * `-----------------------------------------------------------------------------------'
- */
-[_DVORAK] = LAYOUT_ortho_4x12(
- KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSPC,
- KC_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH,
- KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_ENT ,
- ADJUST, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT
-),
-
-/* Lower
- * ,-----------------------------------------------------------------------------------.
- * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp |
- * |------+------+------+------+------+-------------+------+------+------+------+------|
- * | Del | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | | \ | | |
- * |------+------+------+------+------+------|------+------+------+------+------+------|
- * | | F7 | F8 | F9 | F10 | F11 | F12 |ISO ~ |ISO | | | |Enter |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | | | | | | | | Next | Vol- | Vol+ | Play |
- * `-----------------------------------------------------------------------------------'
- */
-[_LOWER] = LAYOUT_ortho_4x12(
- KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC,
- KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE,
- _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,S(KC_NUHS),S(KC_NUBS),_______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY
-),
-
-/* Raise
- * ,-----------------------------------------------------------------------------------.
- * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp |
- * |------+------+------+------+------+-------------+------+------+------+------+------|
- * | Del | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ |
- * |------+------+------+------+------+------|------+------+------+------+------+------|
- * | | F7 | F8 | F9 | F10 | F11 | F12 |ISO # |ISO / | | |Enter |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | | | | | | | | Next | Vol- | Vol+ | Play |
- * `-----------------------------------------------------------------------------------'
- */
-[_RAISE] = LAYOUT_ortho_4x12(
- KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC,
- KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS,
- _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NUHS, KC_NUBS, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY
-),
-
-/* Adjust (Lower + Raise)
- * ,-----------------------------------------------------------------------------------.
- * | | Reset| | | | | | | | | | Del |
- * |------+------+------+------+------+-------------+------+------+------+------+------|
- * | | | |Aud on|Audoff|AGnorm|AGswap|Qwerty|Colemk|Dvorak| | |
- * |------+------+------+------+------+------|------+------+------+------+------+------|
- * | | | | | | | | | | | | |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | | | | | | | | | | | |
- * `-----------------------------------------------------------------------------------'
- */
-[_ADJUST] = LAYOUT_ortho_4x12(
- _______, QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL,
- _______, _______, _______, AU_ON, AU_OFF, AG_NORM, AG_SWAP, QWERTY, COLEMAK, DVORAK, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
-)
-
-
-};
-
-#ifdef AUDIO_ENABLE
-float tone_qwerty[][2] = SONG(QWERTY_SOUND);
-float tone_dvorak[][2] = SONG(DVORAK_SOUND);
-float tone_colemak[][2] = SONG(COLEMAK_SOUND);
-#endif
-
-void persistent_default_layer_set(uint16_t default_layer) {
- eeconfig_update_default_layer(default_layer);
- default_layer_set(default_layer);
-}
-
-bool process_record_user(uint16_t keycode, keyrecord_t *record) {
- switch (keycode) {
- case QWERTY:
- if (record->event.pressed) {
- #ifdef AUDIO_ENABLE
- PLAY_SONG(tone_qwerty);
- #endif
- persistent_default_layer_set(1UL<<_QWERTY);
- }
- return false;
- break;
- case COLEMAK:
- if (record->event.pressed) {
- #ifdef AUDIO_ENABLE
- PLAY_SONG(tone_colemak);
- #endif
- persistent_default_layer_set(1UL<<_COLEMAK);
- }
- return false;
- break;
- case DVORAK:
- if (record->event.pressed) {
- #ifdef AUDIO_ENABLE
- PLAY_SONG(tone_dvorak);
- #endif
- persistent_default_layer_set(1UL<<_DVORAK);
- }
- return false;
- break;
- case LOWER:
- if (record->event.pressed) {
- layer_on(_LOWER);
- update_tri_layer(_LOWER, _RAISE, _ADJUST);
- } else {
- layer_off(_LOWER);
- update_tri_layer(_LOWER, _RAISE, _ADJUST);
- }
- return false;
- break;
- case RAISE:
- if (record->event.pressed) {
- layer_on(_RAISE);
- update_tri_layer(_LOWER, _RAISE, _ADJUST);
- } else {
- layer_off(_RAISE);
- update_tri_layer(_LOWER, _RAISE, _ADJUST);
- }
- return false;
- break;
- case ADJUST:
- if (record->event.pressed) {
- layer_on(_ADJUST);
- } else {
- layer_off(_ADJUST);
- }
- return false;
- break;
- }
- return true;
-}
diff --git a/layouts/community/ortho_4x12/grahampheath/config.h b/layouts/community/ortho_4x12/grahampheath/config.h
deleted file mode 100644
index 342c55cdea..0000000000
--- a/layouts/community/ortho_4x12/grahampheath/config.h
+++ /dev/null
@@ -1,32 +0,0 @@
-/*
-This is the c configuration file for the keymap
-
-Copyright 2012 Jun Wako <wakojun@gmail.com>
-Copyright 2015 Jack Humbert
-
-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/>.
-*/
-
-#ifndef CONFIG_USER_H
-#define CONFIG_USER_H
-
-#include "keyboards/lets_split/config.h"
-
-/* Select hand configuration */
-
-#define MASTER_LEFT
-// #define MASTER_RIGHT
-// #define EE_HANDS
-
-#endif
diff --git a/layouts/community/ortho_4x12/grahampheath/keymap.c b/layouts/community/ortho_4x12/grahampheath/keymap.c
deleted file mode 100644
index a4fa168c5c..0000000000
--- a/layouts/community/ortho_4x12/grahampheath/keymap.c
+++ /dev/null
@@ -1,297 +0,0 @@
-#include QMK_KEYBOARD_H
-
-extern keymap_config_t keymap_config;
-
-enum custom_layers {
- _QWERTY,
- _LOWER,
- _RAISE,
- _EMOJI,
-};
-
-enum custom_keycodes {
- QWERTY = SAFE_RANGE,
- LOWER,
- RAISE,
- EMOJI,
- ABOVE,
- BUG,
- CONFUSED,
- CRY,
- CLAP,
- ELIP,
- FLIP,
- FNGLEFT,
- FNGRIGHT,
- FROWN,
- GRIN,
- HEART,
- JOY,
- LLAP,
- ROFL,
- SHIT,
- SING,
- SHRUG,
- THINK,
- THMBDN,
- THMBUP,
- TOUNGE,
- THANKS,
- WINK
-};
-
-#define KC_X0 MT(MOD_LCTL, KC_ESC) // Hold for Left Ctrl, Tap for GraveESC
-#define KC_X1 MT(MOD_RSFT, KC_ENT) // Hold for Right Shift, Tap for Enter
-#define KC_X2 MT(MOD_RSFT, LGUI(KC_ENT)) // Send Command Enter
-#define KC_BACK LGUI(KC_LBRC) // Back
-#define KC_FORWARD LGUI(KC_RBRC) // Forward
-#define KC_EMOJ TT(_EMOJI) // Hold for Emoji Layer, or tap 5 times.
-#define KC_QS LGUI(KC_SPC) // Send Command + Space (for QuickSilver).
-#define KC_WTAB LGUI(KC_TILD) // Send Command + ~ (for window changing).
-#define KC_TABR LGUI(KC_RCBR) // Send Command + } (for tab changing).
-#define KC_TABL LGUI(KC_LCBR) // Send Command + { (for tab changing).
-#define HYPR_0 HYPR(KC_TILD) // Send Hyper + ~.
-#define HYPR_1 HYPR(KC_EXLM) // Send Hyper + !.
-#define HYPR_2 HYPR(KC_AT) // Send Hyper + @.
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
-/* Qwerty
- * ,-----------------------------------------------------------------------------------.
- * | Esc | Q | W | E | R | T | Y | U | I | O | P | Bksp |
- * |------+------+------+------+------+-------------+------+------+------+------+------|
- * | Tab | A | S | D | F | G | H | J | K | L | ; | ' |
- * |------+------+------+------+------+------|------+------+------+------+------+------|
- * | Shift| Z | X | C | V | B | N | M | , | . | / |Enter |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * |Emoji | Ctrl | Alt |Lower | Cmd |Space |Space |Raise | Left | Down | Up |Right |
- * `-----------------------------------------------------------------------------------'
- */
-[_QWERTY] = LAYOUT_ortho_4x12(
- 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_X0, 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_X1,
- KC_EMOJ, KC_LCTL, KC_LALT, KC_LGUI, MO(_LOWER), KC_SPC, KC_SPC, MO(_RAISE), KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT
-),
-
-/* Lower
- * ,-----------------------------------------------------------------------------------.
- * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp |
- * |------+------+------+------+------+-------------+------+------+------+------+------|
- * |cmd(~)| <- | -> | TAB_L| TAB_R| F5 | F6 | _ | + | { | } | | |
- * |------+------+------+------+------+------|------+------+------+------+------+------|
- * | | F7 | F8 | F9 | F10 | F11 | F12 |ISO ~ |ISO | | | |Enter |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | | | | | | | | Tab- | Vol- | Vol+ | Tab+ |
- * `-----------------------------------------------------------------------------------'
- */
-[_LOWER] = LAYOUT_ortho_4x12(
- KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC,
- KC_WTAB, KC_BACK, KC_FORWARD, KC_TABL, KC_TABR, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE,
- KC_LSFT, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, S(KC_NUHS), S(KC_NUBS), _______, _______, _______,
- _______, _______, _______, _______, _______, KC_QS, KC_QS, _______, _______, _______, _______, _______
-),
-
-/* Raise
- * ,-----------------------------------------------------------------------------------.
- * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp |
- * |------+------+------+------+------+-------------+------+------+------+------+------|
- * |cmd(~)| F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ |
- * |------+------+------+------+------+------|------+------+------+------+------+------|
- * | | F7 | F8 | F9 | F10 | F11 | F12 |ISO # |ISO / | | |Enter |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | | | | | | | | Home | PgUp | PgDn | End |
- * `-----------------------------------------------------------------------------------'
- */
-[_RAISE] = LAYOUT_ortho_4x12(
- KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC,
- KC_WTAB, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS,
- KC_LSFT, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NUHS, KC_NUBS, _______, _______, KC_X2,
- _______, _______, _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_PGUP, KC_END
-),
-
-/* Emoji Layer
- * ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐
- * │HYPR0│ Q │ ;-) │ E │ 🤣 │ :-P │ 🙏🏼 │ U │:'-( │FLIP │ P │ │
- * ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
- * │HYPR1│ 👆 │SHRUG│ GRIN│ :-( │ G │ <3 │ :-) │ k │LLAP │ ; │ │
- * ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
- * │HYPR2│🎶^🎶│💭^💭│ 👏 | :-\ │ 🐛 │ n │ :-D │ SHIT│ ... │ / │ │
- * ├─────┼─────┼─────┼─────┼─────┼─────┴─────┼─────┼─────┼─────┼─────┼─────┤
- * │ │ │ │ │Brig-│ Sleep │Brig+│ 👈 │ 👎 | 👍 │ 👉 │
- * └─────┴─────┴─────┴─────┴─────┴───────────┴─────┴─────┴─────┴─────┴─────┘
- */
-[_EMOJI] = LAYOUT_ortho_4x12(
- HYPR_0, _______, WINK, _______, ROFL, TOUNGE, THANKS, _______, CRY, FLIP, _______, _______ ,
- HYPR_1, ABOVE, SHRUG, GRIN, FROWN, _______, HEART, JOY, _______, LLAP, _______, _______ ,
- HYPR_2, SING, THINK, CLAP, CONFUSED, BUG, _______, _______, SHIT, ELIP, _______, _______ ,
- _______, _______, _______, _______, KC_SCRL, KC_SLEP, KC_SLEP, KC_PAUS, FNGLEFT, THMBDN, THMBUP, FNGRIGHT
-),
-};
-
-#ifdef AUDIO_ENABLE
-float tone_qwerty[][2] = SONG(QWERTY_SOUND);
-float tone_dvorak[][2] = SONG(DVORAK_SOUND);
-float tone_colemak[][2] = SONG(COLEMAK_SOUND);
-#endif
-
-void persistent_default_layer_set(uint16_t default_layer) {
- eeconfig_update_default_layer(default_layer);
- default_layer_set(default_layer);
-}
-
-bool process_record_user(uint16_t keycode, keyrecord_t *record) {
- switch (keycode) {
- case ABOVE:
- if (record->event.pressed) {
- SEND_STRING("&above; ");
- }
- return false;
- break;
- case BUG:
- if (record->event.pressed) {
- SEND_STRING("&bug;");
- }
- return false;
- break;
- case CONFUSED:
- if (record->event.pressed) {
- SEND_STRING(":-\\");
- }
- return false;
- break;
- case CRY:
- if (record->event.pressed) {
- SEND_STRING(":'-( ");
- }
- return false;
- break;
- case CLAP:
- if (record->event.pressed) {
- SEND_STRING("&clap; ");
- }
- return false;
- break;
- case ELIP:
- if (record->event.pressed) {
- SEND_STRING("...");
- }
- return false;
- break;
- case FLIP:
- if (record->event.pressed) {
- SEND_STRING("&fliptable;");
- }
- return false;
- break;
- case FNGLEFT:
- if (record->event.pressed) {
- SEND_STRING("&fingerleft; ");
- }
- return false;
- break;
- case FNGRIGHT:
- if (record->event.pressed) {
- SEND_STRING("&fingerright; ");
- }
- return false;
- break;
- case FROWN:
- if (record->event.pressed) {
- SEND_STRING(":-( ");
- }
- return false;
- break;
- case GRIN:
- if (record->event.pressed) {
- SEND_STRING(":-D ");
- }
- return false;
- break;
- case HEART:
- if (record->event.pressed) {
- SEND_STRING("<3 ");
- }
- return false;
- break;
- case JOY:
- if (record->event.pressed) {
- SEND_STRING(":-) ");
- }
- return false;
- break;
- case LLAP:
- if (record->event.pressed) {
- SEND_STRING("&llap; ");
- }
- return false;
- break;
- case ROFL:
- if (record->event.pressed) {
- SEND_STRING("&rofl; ");
- }
- return false;
- break;
- case SHIT:
- if (record->event.pressed) {
- SEND_STRING("&shit; ");
- }
- return false;
- break;
- case SING:
- if (record->event.pressed) {
- SEND_STRING("_sing_");
- }
- return false;
- break;
- case SHRUG:
- if (record->event.pressed) {
- SEND_STRING("&shrug; ");
- }
- return false;
- break;
- case THANKS:
- if (record->event.pressed) {
- SEND_STRING("&thanks;");
- }
- return false;
- break;
- case THINK:
- if (record->event.pressed) {
- SEND_STRING("_think_");
- }
- return false;
- break;
- case THMBDN:
- if (record->event.pressed) {
- SEND_STRING("&thumbdown; ");
- }
- return false;
- break;
- case THMBUP:
- if (record->event.pressed) {
- SEND_STRING("&thumbup; ");
- }
- return false;
- break;
- case TOUNGE:
- if (record->event.pressed) {
- SEND_STRING(":-P ");
- }
- return false;
- break;
- case WINK:
- if (record->event.pressed) {
- SEND_STRING(";-) ");
- }
- return false;
- break;
-
- }
- return true;
-}
-
-void matrix_scan_user(void) {
- return;
-};
-
diff --git a/layouts/community/ortho_4x12/greatwizard/README.md b/layouts/community/ortho_4x12/greatwizard/README.md
deleted file mode 100644
index 9eadb6343a..0000000000
--- a/layouts/community/ortho_4x12/greatwizard/README.md
+++ /dev/null
@@ -1,149 +0,0 @@
-# GreatWizard ortholinear 4x12 keymap
-
-## Base layers
-
-### Qwerty
-
-```
-,-----------------------------------------------------------------------------------.
-| Tab | Q | W | E | R | T | Y | U | I | O | P | Bksp |
-|------+------+------+------+------+------+------+------+------+------+------+------|
-| Esc | A | S | D | F | G | H | J | K | L | ; | ' |
-|------+------+------+------+------+------+------+------+------+------+------+------|
-| Shift| Z | X | C | V | B | N | M | , | . | / |Enter |
-|------+------+------+------+------+------+------+------+------+------+------+------|
-| Fn | Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right |
-`-----------------------------------------------------------------------------------'
-```
-
-### Workman
-
-```
-,-----------------------------------------------------------------------------------.
-| Tab | Q | D | R | W | B | J | F | U | P | ; | Bksp |
-|------+------+------+------+------+------+------+------+------+------+------+------|
-| Esc | A | S | H | T | G | Y | N | E | O | I | ' |
-|------+------+------+------+------+------+------+------+------+------+------+------|
-| Shift| Z | X | M | C | V | K | L | , | . | / |Enter |
-|------+------+------+------+------+------+------+------+------+------+------+------|
-| Fn | Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right |
-`-----------------------------------------------------------------------------------'
-```
-
-### Colemak
-
-```
-,-----------------------------------------------------------------------------------.
-| Tab | Q | W | F | P | G | J | L | U | Y | ; | Bksp |
-|------+------+------+------+------+------+------+------+------+------+------+------|
-| Esc | A | R | S | T | D | H | N | E | I | O | ' |
-|------+------+------+------+------+------+------+------+------+------+------+------|
-| Shift| Z | X | C | V | B | K | M | , | . | / |Enter |
-|------+------+------+------+------+------+------+------+------+------+------+------|
-| Fn | Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right |
-`-----------------------------------------------------------------------------------'
-```
-
-### Dvorak
-
-```
-,-----------------------------------------------------------------------------------.
-| Tab | ' | , | . | P | Y | F | G | C | R | L | Bksp |
-|------+------+------+------+------+------+------+------+------+------+------+------|
-| Esc | A | O | E | U | I | D | H | T | N | S | / |
-|------+------+------+------+------+------+------+------+------+------+------+------|
-| Shift| ; | Q | J | K | X | B | M | W | V | Z |Enter |
-|------+------+------+------+------+------+------+------+------+------+------+------|
-| Fn | Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right |
-`-----------------------------------------------------------------------------------'
-```
-
-### Game
-
-```
-,-----------------------------------------------------------------------------------.
-| Tab | Q | W | E | R | T | Y | U | I | O | P | Bksp |
-|------+------+------+------+------+------+------+------+------+------+------+------|
-| Esc | A | S | D | F | G | H | J | K | L | ; | ' |
-|------+------+------+------+------+------+------+------+------+------+------+------|
-| Shift| Z | X | C | V | B | N | M | , | . | Up |Enter |
-|------+------+------+------+------+------+------+------+------+------+------+------|
-| Fn | Ctrl | Alt | GUI |Lower | Space |Raise | / | Left | Down |Right |
-`-----------------------------------------------------------------------------------'
-```
-
-## Momentarily Layers
-
-### Lower
-
-```
-,-----------------------------------------------------------------------------------.
-| ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | |
-|------+------+------+------+------+------+------+------+------+------+------+------|
-| Del | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | |
-|------+------+------+------+------+------+------+------+------+------+------+------|
-| | F7 | F8 | F9 | F10 | F11 | F12 |ISO ~ |ISO | | Home | End | |
-|------+------+------+------+------+------+------+------+------+------+------+------|
-| | | | | | | | Next | Vol- | Vol+ | Play |
-`-----------------------------------------------------------------------------------'
-```
-
-### Raise
-
-```
-,-----------------------------------------------------------------------------------.
-| ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | |
-|------+------+------+------+------+------+------+------+------+------+------+------|
-| Del | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ |
-|------+------+------+------+------+------+------+------+------+------+------+------|
-| | F7 | F8 | F9 | F10 | F11 | F12 |ISO # |ISO / |PageUp|PageDn| |
-|------+------+------+------+------+------+------+------+------+------+------+------|
-| | | | | | | | Next | Vol- | Vol+ | Play |
-`-----------------------------------------------------------------------------------'
-```
-
-### Adjust (Lower + Raise)
-
-```
-,-----------------------------------------------------------------------------------.
-| F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 |
-|------+------+------+------+------+------+------+------+------+------+------+------|
-|CPSLCK| Reset|EP_RST| | | | Game |Qwerty|Workmn|Colemk|Dvorak| |
-|------+------+------+------+------+------+------+------+------+------+------+------|
-| | | | | | | | | | | | |
-|------+------+------+------+------+------+------+------+------+------+------+------|
-| | | | | | | | | | | |
-`-----------------------------------------------------------------------------------'
-```
-
-### Fn (rgblight and backlight layout)
-
-```
-,-----------------------------------------------------------------------------------.
-| | | | | | | | | |RGBVA-|RGBVA+| |
-|------+------+------+------+------+------+------+------+------+------+------+------|
-| | | | | | | | | |RGBSA-|RGBSA+|RGBLYR|
-|------+------+------+------+------+------+------+------+------+------+------+------|
-| | | | | | | | |RGBTOG|RGBHU-|RGBHU+|RGBMOD|
-|------+------+------+------+------+------+------+------+------+------+------+------|
-| | | | | | | |BLTOGG| BL- | BL+ |BLBRTG|
-`-----------------------------------------------------------------------------------'
-```
-
-## One Shot Key Layers
-
-### GIT
-
-Double tap on Alt to activate it.
-
-```
-,-----------------------------------------------------------------------------------.
-| |CHRPCK| SHOW |REBASE|RESET | TAG | | PULL | INIT |REMOTE| PUSH | |
-|------+------+------+------+------+------+------+------+------+------+------+------|
-| | ADD |STATUS| DIFF |FETCH | GREP |STASH | |CHECKT| LOG | | |
-|------+------+------+------+------+------+------+------+------+------+------+------|
-| | | |COMMIT| MV |BRANCH| |MERGE | | | | |
-|------+------+------+------+------+------+------+------+------+------+------+------|
-| | | | | | | | | | | | |
-`-----------------------------------------------------------------------------------'
-```
diff --git a/layouts/community/ortho_4x12/greatwizard/config.h b/layouts/community/ortho_4x12/greatwizard/config.h
deleted file mode 100644
index 48dab19c10..0000000000
--- a/layouts/community/ortho_4x12/greatwizard/config.h
+++ /dev/null
@@ -1,24 +0,0 @@
-/* Copyright 2020 Guillaume Gérard
- *
- * 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 LAYERS_ORTHO
-#define LAYER_GAME
-#define LAYER_GIT
-#define LAYER_FN
-
-#define TAP_DANCE_LALT_GIT
-#define TAP_DANCE_LSFT_CAPS
diff --git a/layouts/community/ortho_4x12/greatwizard/keymap.c b/layouts/community/ortho_4x12/greatwizard/keymap.c
deleted file mode 100644
index eaf920fe7a..0000000000
--- a/layouts/community/ortho_4x12/greatwizard/keymap.c
+++ /dev/null
@@ -1,209 +0,0 @@
-/* Copyright 2020 Guillaume Gérard
- *
- * 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 "greatwizard.h"
-
-#define LAYOUT_ortho_4x12_wrapper(...) LAYOUT_ortho_4x12(__VA_ARGS__)
-#define LAYOUT_ortho_4x12_base( \
- K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, \
- K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, \
- K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A \
- ) \
- LAYOUT_ortho_4x12_wrapper( \
- KC_TAB, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, KC_BSPC, \
- KC_ESC, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, \
- TD_LSCP, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, KC_ENT, \
- FN, KC_LCTL, TD_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT \
- )
-#define LAYOUT_ortho_4x12_base_wrapper(...) LAYOUT_ortho_4x12_base(__VA_ARGS__)
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
- /* Qwerty
- * ,-----------------------------------------------------------------------------------.
- * | Tab | Q | W | E | R | T | Y | U | I | O | P | Bksp |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | Esc | A | S | D | F | G | H | J | K | L | ; | ' |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | Shift| Z | X | C | V | B | N | M | , | . | / |Enter |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | Fn | Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right |
- * `-----------------------------------------------------------------------------------'
- */
- [_QWERTY] = LAYOUT_ortho_4x12_base_wrapper(
- _______________QWERTY_LEFT1________________, _______________QWERTY_RIGHT1_______________,
- _______________QWERTY_LEFT2________________, _______________QWERTY_RIGHT2_______________, KC_QUOT,
- _______________QWERTY_LEFT3________________, _______________QWERTY_RIGHT3_______________
- ),
-
- /* Workman
- * ,-----------------------------------------------------------------------------------.
- * | Tab | Q | D | R | W | B | J | F | U | P | ; | Bksp |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | Esc | A | S | H | T | G | Y | N | E | O | I | ' |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | Shift| Z | X | M | C | V | K | L | , | . | / |Enter |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | Fn | Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right |
- * `-----------------------------------------------------------------------------------'
- */
- [_WORKMAN] = LAYOUT_ortho_4x12_base_wrapper(
- _______________WORKMAN_LEFT1_______________, _______________WORKMAN_RIGHT1______________,
- _______________WORKMAN_LEFT2_______________, _______________WORKMAN_RIGHT2______________, KC_QUOT,
- _______________WORKMAN_LEFT3_______________, _______________WORKMAN_RIGHT3______________
- ),
-
- /* Colemak
- * ,-----------------------------------------------------------------------------------.
- * | Tab | Q | W | F | P | G | J | L | U | Y | ; | Bksp |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | Esc | A | R | S | T | D | H | N | E | I | O | ' |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | Shift| Z | X | C | V | B | K | M | , | . | / |Enter |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | Fn | Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right |
- * `-----------------------------------------------------------------------------------'
- */
- [_COLEMAK] = LAYOUT_ortho_4x12_base_wrapper(
- _______________COLEMAK_LEFT1_______________, _______________COLEMAK_RIGHT1______________,
- _______________COLEMAK_LEFT2_______________, _______________COLEMAK_RIGHT2______________, KC_QUOT,
- _______________COLEMAK_LEFT3_______________, _______________COLEMAK_RIGHT3______________
- ),
-
- /* Dvorak
- * ,-----------------------------------------------------------------------------------.
- * | Tab | ' | , | . | P | Y | F | G | C | R | L | Bksp |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | Esc | A | O | E | U | I | D | H | T | N | S | / |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | Shift| ; | Q | J | K | X | B | M | W | V | Z |Enter |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | Fn | Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right |
- * `-----------------------------------------------------------------------------------'
- */
- [_DVORAK] = LAYOUT_ortho_4x12_base_wrapper(
- _______________DVORAK_LEFT1________________, _______________DVORAK_RIGHT1_______________,
- _______________DVORAK_LEFT2________________, _______________DVORAK_RIGHT2_______________, KC_SLSH,
- _______________DVORAK_LEFT3________________, _______________DVORAK_RIGHT3_______________
- ),
-
- /* Game
- * ,-----------------------------------------------------------------------------------.
- * | Tab | Q | W | E | R | T | Y | U | I | O | P | Del |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | Esc | A | S | D | F | G | H | J | K | L | ; | ' |
- * |------+------+------+------+------+------|------+------+------+------+------+------|
- * | Shift| Z | X | C | V | B | N | M | , | . | Up |Enter |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | Fn | Ctrl | Alt | GUI |Lower | Space |Raise | / | Left | Down |Right |
- * `-----------------------------------------------------------------------------------'
- */
- [_GAME] = LAYOUT_ortho_4x12_wrapper(
- KC_TAB, _______________QWERTY_LEFT1________________, _______________QWERTY_RIGHT1_______________, KC_BSPC,
- KC_ESC, _______________QWERTY_LEFT2________________, _______________QWERTY_RIGHT2_______________, KC_QUOT,
- TD_LSCP, _______________QWERTY_LEFT3________________, KC_N, KC_M, KC_COMM, KC_DOT, KC_UP, KC_ENT,
- FN, KC_LCTL, TD_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_SLSH, KC_LEFT, KC_DOWN, KC_RGHT
- ),
-
- /* Lower
- * ,-----------------------------------------------------------------------------------.
- * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | Del | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | | F7 | F8 | F9 | F10 | F11 | F12 |ISO ~ |ISO | | Home | End | |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | | | | | | | | Next | Vol- | Vol+ | Play |
- * `-----------------------------------------------------------------------------------'
- */
- [_LOWER] = LAYOUT_ortho_4x12_wrapper(
- KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, _______,
- KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE,
- _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,S(KC_NUHS),S(KC_NUBS),KC_HOME, KC_END, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY
- ),
-
- /* Raise
- * ,-----------------------------------------------------------------------------------.
- * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | Del | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | | F7 | F8 | F9 | F10 | F11 | F12 |ISO # |ISO / |PageUp|PageDn| |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | | | | | | | | Next | Vol- | Vol+ | Play |
- * `-----------------------------------------------------------------------------------'
- */
- [_RAISE] = LAYOUT_ortho_4x12_wrapper(
- KC_GRV, _______________NUMBER_LEFT_________________, _______________NUMBER_RIGHT________________, _______,
- KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS,
- _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NUHS, KC_NUBS, KC_PGUP, KC_PGDN, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY
- ),
-
- /* Adjust (Lower + Raise)
- * ,-----------------------------------------------------------------------------------.
- * | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * |CPSLCK| Reset|EP_RST| | | | Game |Qwerty|Workmn|Colemk|Dvorak| |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | | | | | | | | | | | | |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | | | | | | | | | | | |
- * `-----------------------------------------------------------------------------------'
- */
- [_ADJUST] = LAYOUT_ortho_4x12_wrapper(
- 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_CAPS, QK_BOOT, EE_CLR, _______, _______, _______, GAME, QWERTY, WORKMAN, COLEMAK, DVORAK, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
- ),
-
- /* Fn (rgblight and backlight layout)
- * ,-----------------------------------------------------------------------------------.
- * | | | | | | | | | |RGBVA-|RGBVA+| |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | | | | | | | | | |RGBSA-|RGBSA+|RGBLYR|
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | | | | | | | | |RGBTOG|RGBHU-|RGBHU+|RGBMOD|
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | | | | | | | |BLTOGG| BL- | BL+ |BLBRTG|
- * `-----------------------------------------------------------------------------------'
- */
- [_FN] = LAYOUT_ortho_4x12_wrapper(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_VAD, RGB_VAI, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_SAD, RGB_SAI, RGB_LYR,
- _______, _______, _______, _______, _______, _______, _______, _______, RGB_TOG, RGB_HUD, RGB_HUI, RGB_MOD,
- _______, _______, _______, _______, _______, _______, _______, _______, BL_TOGG, BL_DOWN, BL_UP, BL_BRTG
- ),
-
- /* GIT
- * ,-----------------------------------------------------------------------------------.
- * | |CHRPCK| SHOW |REBASE|QK_BOOT | TAG | | PULL | INIT |REMOTE| PUSH | |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | | ADD |STATUS| DIFF |FETCH | GREP |STASH | |CHECKT| LOG | | |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | | | |COMMIT| MV |BRANCH| |MERGE | | | | |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | | | | | | | | | | | |
- * `-----------------------------------------------------------------------------------'
- */
- [_GIT] = LAYOUT_ortho_4x12_wrapper(
- _______, _________________GIT_LEFT1_________________, _________________GIT_RIGHT1________________, _______,
- _______, _________________GIT_LEFT2_________________, _________________GIT_RIGHT2________________, _______,
- _______, _________________GIT_LEFT3_________________, _________________GIT_RIGHT3________________, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
- )
-};
diff --git a/layouts/community/ortho_4x12/greatwizard/rules.mk b/layouts/community/ortho_4x12/greatwizard/rules.mk
deleted file mode 100644
index bbc8f14c27..0000000000
--- a/layouts/community/ortho_4x12/greatwizard/rules.mk
+++ /dev/null
@@ -1,7 +0,0 @@
-EXTRAKEY_ENABLE = yes # Audio control and System control
-TAP_DANCE_ENABLE = yes # Enable Tap Dance
-
-LAYERS_ORTHO = yes
-LAYER_GAME = yes
-LAYER_GIT = yes
-LAYER_FN = yes
diff --git a/layouts/community/ortho_4x12/jackhumbert/config.h b/layouts/community/ortho_4x12/jackhumbert/config.h
deleted file mode 100644
index 4cc8382fbc..0000000000
--- a/layouts/community/ortho_4x12/jackhumbert/config.h
+++ /dev/null
@@ -1,51 +0,0 @@
- /* Copyright 2015-2020 Jack Humbert
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
- #pragma once
-
-#ifdef AUDIO_ENABLE
- #define STARTUP_SONG SONG(PLANCK_SOUND)
- // #define STARTUP_SONG SONG(NO_SOUND)
-
- #define DEFAULT_LAYER_SONGS { SONG(QWERTY_SOUND), \
- SONG(COLEMAK_SOUND), \
- SONG(DVORAK_SOUND) \
- }
-#endif
-
-/*
- * MIDI options
- */
-
-/* enable basic MIDI features:
- - MIDI notes can be sent when in Music mode is on
-*/
-
-#define MIDI_BASIC
-
-/* enable advanced MIDI features:
- - MIDI notes can be added to the keymap
- - Octave shift and transpose
- - Virtual sustain, portamento, and modulation wheel
- - etc.
-*/
-//#define MIDI_ADVANCED
-
-/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
-//#define MIDI_TONE_KEYCODE_OCTAVES 2
-
-// Most tactile encoders have detents every 4 stages
-#define ENCODER_RESOLUTION 4
diff --git a/layouts/community/ortho_4x12/jackhumbert/keymap.c b/layouts/community/ortho_4x12/jackhumbert/keymap.c
deleted file mode 100644
index 2f3cf3c286..0000000000
--- a/layouts/community/ortho_4x12/jackhumbert/keymap.c
+++ /dev/null
@@ -1,158 +0,0 @@
-/* Copyright 2015-2020 Jack Humbert
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-#include QMK_KEYBOARD_H
-
-
-enum planck_layers {
- _COLEMAK,
- _SHIFT_COLEMAK,
- _LOWER,
- _RAISE,
- _ADJUST
-};
-
-#define S_SFT MO(_SHIFT_COLEMAK)
-#define LOWER MO(_LOWER)
-#define RAISE MO(_RAISE)
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
-
-/* Colemak
- * ,-----------------------------------------------------------------------------------.
- * | Tab | q | w | f | p | g | j | l | u | y | ; | Bksp |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | - | a | r | s | t | d | h | n | e | i | o | ' |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | Esc | z | x | c | v | b | k | m | , | . | / |Enter |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | Shft | Ctrl | Alt | GUI |Lower | Shft | Spc |Raise | Left | Down | Up |Right |
- * `-----------------------------------------------------------------------------------'
- */
-[_COLEMAK] = LAYOUT_ortho_4x12(
- KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC,
- KC_MINS, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT,
- KC_ESC, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT ,
- KC_LSFT, KC_LGUI, KC_LALT, KC_LCTL, LOWER, S_SFT, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT
-),
-
-/* Colemak, Shifted
- * ,-----------------------------------------------------------------------------------.
- * | Tab | Q | W | F | P | G | J | L | U | Y | ; | |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | _ | A | R | S | T | D | H | N | E | I | O | ` |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | Esc | Z | X | C | V | B | K | M | ! | @ | ? | |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | | | | | | | | | | | | |
- * `-----------------------------------------------------------------------------------'
- */
-[_SHIFT_COLEMAK] = LAYOUT_ortho_4x12(
- S(KC_TAB), S(KC_Q), S(KC_W), S(KC_F), S(KC_P), S(KC_G), S(KC_J), S(KC_L), S(KC_U), S(KC_Y), KC_COLN, _______,
- S(KC_MINS), S(KC_A), S(KC_R), S(KC_S), S(KC_T), S(KC_D), S(KC_H), S(KC_N), S(KC_E), S(KC_I), S(KC_O), KC_GRV,
- S(KC_ESC), S(KC_Z), S(KC_X), S(KC_C), S(KC_V), S(KC_B), S(KC_K), S(KC_M), KC_EXLM, KC_AT, KC_QUES, _______ ,
- _______, _______, _______, _______, _______, _______, _______, _______, S(KC_LEFT), S(KC_DOWN), S(KC_UP), S(KC_RGHT)
-),
-
-
-/* Lower
- * ,-----------------------------------------------------------------------------------.
- * | | | 7 | 8 | 9 | | Del | F9 | F10 | F11 | F12 | |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | Del | | 4 | 5 | 6 | | | F5 | F6 | F7 | F8 | |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | | 0 | 1 | 2 | 3 | | | F1 | F2 | F3 | F4 | |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | | | | | | | | | Home | Pgup | Pgdn | End |
- * `-----------------------------------------------------------------------------------'
- */
-[_LOWER] = LAYOUT_ortho_4x12(
- _______, XXXXXXX, KC_7, KC_8, KC_9, XXXXXXX, KC_DEL, KC_F9, KC_F10, KC_F11, KC_F12, _______,
- KC_DEL, XXXXXXX, KC_4, KC_5, KC_6, XXXXXXX, XXXXXXX, KC_F5, KC_F6, KC_F7, KC_F8, _______,
- _______, KC_0, KC_1, KC_2, KC_3, XXXXXXX, XXXXXXX, KC_F1, KC_F2, KC_F3, KC_F4, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGUP, KC_PGDN, KC_END
-),
-
-/* Raise
- * ,-----------------------------------------------------------------------------------.
- * | | | < | $ | > | | | [ | _ | ] | | |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | | \ | ( | " | ) | # | % | { | = | } | ] | |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | | | : | * | + | | | & | ^ | ~ | | |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | | | | | | | | | Next | Vol- | Vol+ | Play |
- * `-----------------------------------------------------------------------------------'
- */
-[_RAISE] = LAYOUT_ortho_4x12(
- _______, XXXXXXX, KC_LT, KC_DLR, KC_GT, XXXXXXX, XXXXXXX, KC_LBRC, KC_UNDS, KC_RBRC, XXXXXXX, _______,
- _______, KC_BSLS, KC_LPRN, KC_DQUO, KC_RPRN, KC_HASH, KC_PERC, KC_LCBR, KC_EQL, KC_RCBR, KC_PIPE, _______,
- _______, XXXXXXX, KC_COLN, KC_ASTR, KC_PLUS, XXXXXXX, XXXXXXX, KC_AMPR, KC_CIRC, KC_TILD, XXXXXXX, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY
-),
-
-/* Adjust (Lower + Raise)
- * v------------------------RGB CONTROL--------------------v
- * ,-----------------------------------------------------------------------------------.
- * | | Reset|Debug | RGB |RGBMOD| HUE+ | HUE- | SAT+ | SAT- |BRGTH+|BRGTH-| |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | | |MUSmod|Aud on|Audoff|AGnorm|AGswap| | | | | |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | |Voice-|Voice+|Mus on|Musoff|MIDIon|MIDIof| | | | | |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | | | | | | | | | | | | |
- * `-----------------------------------------------------------------------------------'
- */
-[_ADJUST] = LAYOUT_ortho_4x12(
- _______, QK_BOOT, DB_TOGG, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______,
- _______, XXXXXXX, MU_NEXT, AU_ON, AU_OFF, AG_NORM, AG_SWAP, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______,
- _______, AU_PREV, AU_NEXT, MU_ON, MU_OFF, MI_ON, MI_OFF, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
-)
-
-};
-
-layer_state_t layer_state_set_user(layer_state_t state) {
- return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST);
-};
-
-bool encoder_update_user(uint8_t index, bool clockwise) {
- if (clockwise) {
- #ifdef MOUSEKEY_ENABLE
- tap_code(KC_MS_WH_DOWN);
- #else
- tap_code(KC_PGDN);
- #endif
- } else {
- #ifdef MOUSEKEY_ENABLE
- tap_code(KC_MS_WH_UP);
- #else
- tap_code(KC_PGUP);
- #endif
- }
- return true;
-}
-
-bool music_mask_user(uint16_t keycode) {
- switch (keycode) {
- case RAISE:
- case LOWER:
- return false;
- default:
- return true;
- }
-}
diff --git a/layouts/community/ortho_4x12/jackhumbert/readme.md b/layouts/community/ortho_4x12/jackhumbert/readme.md
deleted file mode 100644
index a3b05e64aa..0000000000
--- a/layouts/community/ortho_4x12/jackhumbert/readme.md
+++ /dev/null
@@ -1,9 +0,0 @@
-![Jack's Planck Keymap](https://i.imgur.com/763RLNC.png)
-
-# Jack's Planck Keymap
-
-[Link to KLE of above image](http://www.keyboard-layout-editor.com/#/gists/8d5e8d5ee3884333bc5c4a231035f145)
-
-Mostly standard Colemak, but the shift and symbol layers are influenced from BEAKL: https://ieants.cc/code/keyboard/beakl/
-
-Unfortunately I haven't figured out a good way to adapt this to a 2u format yet. \ No newline at end of file
diff --git a/layouts/community/ortho_4x12/jarred/keymap.c b/layouts/community/ortho_4x12/jarred/keymap.c
deleted file mode 100644
index e419b3942c..0000000000
--- a/layouts/community/ortho_4x12/jarred/keymap.c
+++ /dev/null
@@ -1,23 +0,0 @@
-#include QMK_KEYBOARD_H
-#include "jarred.h"
-
-#define LAYOUT_ortho_4x12_wrapper(...) LAYOUT_ortho_4x12(__VA_ARGS__)
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [_QW] = LAYOUT_ortho_4x12_wrapper(QWERTY_4x12),
- [_GAME] = LAYOUT_ortho_4x12_wrapper(GAME_4x12),
- [_LW] = LAYOUT_ortho_4x12_wrapper(LOWER_4x12),
- [_NV] = LAYOUT_ortho_4x12_wrapper(NAV_4x12),
- [_NP] = LAYOUT_ortho_4x12_wrapper(NUMPAD_4x12),
- [_MS] = LAYOUT_ortho_4x12_wrapper(MOUSE_4x12)
-};
-
-#ifdef RGB_MATRIX_ENABLE
-bool rgb_matrix_indicators_user(void) {
- #ifdef KEYBOARD_planck_light
- // Disable light in middle of 2U position of Planck Light
- rgb_matrix_set_color(42, 0, 0, 0);
- #endif
- return false;
-}
-#endif
diff --git a/layouts/community/ortho_4x12/jarred/readme.md b/layouts/community/ortho_4x12/jarred/readme.md
deleted file mode 100644
index 05f1ff0866..0000000000
--- a/layouts/community/ortho_4x12/jarred/readme.md
+++ /dev/null
@@ -1,22 +0,0 @@
-# Jarred's ortho 4x12 keymap
-
-[User space](../../../../users/jarred/readme.md)
-
-Boards used on:
-- [Planck](../../../../keyboards/planck/readme.md)
-- [Plaid](../../../../keyboards/plaid/readme.md)
-
-# Plaid build notes
-
-Enter Bootloader:
-Press Reset / Press Boot / Release Reset / Release Boot
-
-Install libusbK driver for usbasp:
-https://zadig.akeo.ie/
-
-make plaid:jarred:program
-
-Press Reset
-
-https://github.com/hsgw/plaid/blob/master/doc/en/bootloader.md
-https://github.com/hsgw/plaid/blob/master/doc/en/firmware.md
diff --git a/layouts/community/ortho_4x12/jjerrell/config.h b/layouts/community/ortho_4x12/jjerrell/config.h
deleted file mode 100644
index 8d2080d868..0000000000
--- a/layouts/community/ortho_4x12/jjerrell/config.h
+++ /dev/null
@@ -1,57 +0,0 @@
-// Copyright (C) 2021 Jerrell, Jacob <@jjerrell>
-//
-// This file is part of qmk_firmware.
-//
-// qmk_firmware 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 3 of the License, or
-// (at your option) any later version.
-//
-// qmk_firmware 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 qmk_firmware. If not, see <http://www.gnu.org/licenses/>.
-
-#pragma once
-
-// Allows time for repositioning hands due to awkward key placement
-#define LEADER_NO_TIMEOUT
-
-#ifdef AUDIO_ENABLE
- #define STARTUP_SONG SONG(PLANCK_SOUND)
- // #define STARTUP_SONG SONG(NO_SOUND)
-
- #define DEFAULT_LAYER_SONGS { SONG(QWERTY_SOUND), \
- SONG(COLEMAK_SOUND), \
- SONG(DVORAK_SOUND) \
- }
-#endif
-
-#ifdef KEYBOARD_planck_ez_glow
-#undef PRODUCT
-#define PRODUCT "Planck EZ Glow - Modified by <@jjerrell>"
-#endif
-
-/*
- * MIDI options
- */
-
-/* enable basic MIDI features:
- - MIDI notes can be sent when in Music mode is on
-*/
-
-#define MIDI_BASIC
-
-/* enable advanced MIDI features:
- - MIDI notes can be added to the keymap
- - Octave shift and transpose
- - Virtual sustain, portamento, and modulation wheel
- - etc.
-*/
-//#define MIDI_ADVANCED
-
-// Most tactile encoders have detents every 4 stages
-#define ENCODER_RESOLUTION 4
diff --git a/layouts/community/ortho_4x12/jjerrell/keymap.c b/layouts/community/ortho_4x12/jjerrell/keymap.c
deleted file mode 100644
index 90b7714ec4..0000000000
--- a/layouts/community/ortho_4x12/jjerrell/keymap.c
+++ /dev/null
@@ -1,227 +0,0 @@
-/* Copyright 2015-2017 Jack Humbert
- * Copyright 2021 Jacob Jerrell <@jjerrell>
- *
- * 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 "jjerrell.h"
-
-enum planck_layers {
- _GAME_LOWER = LAYER_SAFE_RANGE,
- // _GAME_RAISE,
-};
-
-#define LAYOUT_planck_plain(...) WRAPPER_ortho_4x12(__VA_ARGS__)
-
-// clang-format off
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [_WORKMAN] = LAYOUT_planck_base(
- __________________WORKMN_L1__________________, __________________WORKMN_R1__________________,
- __________________WORKMN_L2__________________, __________________WORKMN_R2__________________,
- __________________WORKMN_L3__________________, __________________WORKMN_R3__________________
- ),
- /* Lower - Nav/Select/Nums
- * ,-----------------------------------------------------------------------------------.
- * | PGUP | BSPC | UP | DEL | PGDN | | | | 7 | 8 | 9 | * |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | HOME | LEFT | DOWN | RGHT | END | | | | 4 | 5 | 6 | / |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | ESC | TAB | | ENTR | | | | | 1 | 2 | 3 | - |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | | | | | held | SPACE | ENTR | 0 | . | , | + |
- * `-----------------------------------------------------------------------------------'
- */
- [_LOWER] = LAYOUT_planck_mods(
- __________________LOWER_L1___________________, XXXXXXX, XXXXXXX, __________________LOWER_R1___________________,
- __________________LOWER_L2___________________, XXXXXXX, XXXXXXX, __________________LOWER_R2___________________,
- __________________LOWER_L3___________________, XXXXXXX, XXXXXXX, __________________LOWER_R3___________________,
- _________________________________________PLANCK_LOWER_BOTTOM_ROW_________________________________________
- ),
- /* Raise - Symbols
- * ,-----------------------------------------------------------------------------------.
- * | % | _ | [ | ] | ^ | | | ! | < | > | = | : |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | \ | / | { | } | * | | | ? | ( | ) | - | ; |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | # | $ | | | ~ | ` | | | @ | " | ' | + | & |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | | LEAD | | | BSPC | SPACE | held | | | | |
- * `-----------------------------------------------------------------------------------'
- */
- [_RAISE] = LAYOUT_planck_common(
- __________________RAISE_L1___________________, __________________RAISE_R1___________________,
- __________________RAISE_L2___________________, __________________RAISE_R2___________________,
- __________________RAISE_L3___________________, __________________RAISE_R3___________________
- ),
- /* Adjust (Lower + Raise)
- * ,-----------------------------------------------------------------------------------.
- * | Make | Debug|Reset | | | | |MusMod|Mus On|MusOff|MidiOn|MidOff|
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | Mute | Vol- | Vol+ | Play | Skip | | |Voice-| HUE+ | HUE- | SAT+ | SAT- |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | Vrsn | AudOn|AudOff|CGswap|CGnorm| | |Voice+|RGBTog|RGBMod|BRGHT+|BRGHT-|
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | | | | | held | | held | | | | |
- * `-----------------------------------------------------------------------------------'
- */
- [_ADJUST] = LAYOUT_planck_common(
- __________________ADJUST_L1__________________, __________________ADJUST_R1__________________,
- __________________ADJUST_L2__________________, __________________ADJUST_R2__________________,
- __________________ADJUST_L3__________________, __________________ADJUST_R3__________________
- ),
- [_GAME] = LAYOUT_planck_plain(
- __________________QWERTY_L1__________________, _______, _______, XXXXXXX, KC_9, KC_0, KC_MINS, KC_EQL,
- __________________QWERTY_L2__________________, XXXXXXX, XXXXXXX, XXXXXXX, KC_5, KC_6, KC_7, KC_8,
- __________________QWERTY_L3__________________, XXXXXXX, XXXXXXX, XXXXXXX, KC_1, KC_2, KC_3, KC_4,
- KC_LSFT, KC_LGUI, KC_LALT, KC_LCTL, LT(_LOWER, KC_BSPC), KC_SPC, XXXXXXX, LT(_WORKMAN, KC_ENT), MACRO_1, MACRO_2, MACRO_3, MACRO_4
- ),
- [_GAME_LOWER] = LAYOUT_planck_plain(
- _______, _______, _______, _______, _______, _______, _______, _______, C(_______), C(_______), C(_______), C(_______),
- _______, _______, _______, _______, _______, XXXXXXX, XXXXXXX, _______, C(_______), C(_______), C(_______), C(_______),
- _______, _______, _______, _______, _______, XXXXXXX, XXXXXXX, _______, C(_______), C(_______), C(_______), C(_______),
- MACRO_1, MACRO_2, MACRO_3, MACRO_4, _______, _______, XXXXXXX, _______, MACRO_5, MACRO_6, MACRO_7, MACRO_8
- )
-
-};
-// clang-format on
-
-bool muse_mode = false;
-uint8_t last_muse_note = 0;
-uint16_t muse_counter = 0;
-uint8_t muse_offset = 70;
-uint16_t muse_tempo = 50;
-
-#ifdef KEYBOARD_planck_ez
-void planck_ez_teeth_set(layer_state_t state) {
- switch (get_highest_layer(state)) {
- case _LOWER:
- planck_ez_left_led_level(40);
- break;
- case _RAISE:
- planck_ez_right_led_level(40);
- break;
- case _ADJUST:
- planck_ez_left_led_level(40);
- planck_ez_right_led_level(40);
- break;
- case _GAME_LOWER:
- planck_ez_left_led_level(20);
- break;
-// todo case _GAME_RAISE:
- // planck_ez_right_led_level(20);
- // break;
- case _WORKMAN:
- if (IS_LAYER_ON(_GAME)) {
- planck_ez_left_led_level(60);
- planck_ez_right_led_level(60);
- break;
- }
- default:
- planck_ez_left_led_off();
- planck_ez_right_led_off();
- break;
- }
-}
-
-layer_state_t layer_state_set_keymap(layer_state_t state) {
- planck_ez_left_led_off();
- planck_ez_right_led_off();
- state = update_tri_layer_state(state, _GAME, _LOWER, _GAME_LOWER);
- planck_ez_teeth_set(state);
- return state;
-}
-#endif
-
-bool encoder_update(bool clockwise) {
- if (muse_mode) {
- if (IS_LAYER_ON(_RAISE)) {
- if (clockwise) {
- muse_offset++;
- } else {
- muse_offset--;
- }
- } else {
- if (clockwise) {
- muse_tempo+=1;
- } else {
- muse_tempo-=1;
- }
- }
- } else {
- if (clockwise) {
-# ifdef MOUSEKEY_ENABLE
- tap_code(KC_MS_WH_DOWN);
-# else
- tap_code(KC_PGDN);
-# endif
- } else {
-# ifdef MOUSEKEY_ENABLE
- tap_code(KC_MS_WH_UP);
-# else
- tap_code(KC_PGUP);
-# endif
- }
- }
- return true;
-}
-
-void dip_switch_update_keymap(uint8_t index, bool active) {
- switch (index) {
- case 0: {
- if (active) {
- layer_on(_ADJUST);
- } else {
- layer_off(_ADJUST);
- }
- break;
- }
- case 1:
- if (active) {
- muse_mode = true;
- } else {
- muse_mode = false;
- }
- }
-}
-
-#ifdef AUDIO_ENABLE
-void matrix_scan_keymap(void) {
- if (muse_mode) {
- if (muse_counter == 0) {
- uint8_t muse_note = muse_offset + SCALE[muse_clock_pulse()];
- if (muse_note != last_muse_note) {
- stop_note(compute_freq_for_midi_note(last_muse_note));
- play_note(compute_freq_for_midi_note(muse_note), 0xF);
- last_muse_note = muse_note;
- }
- }
- muse_counter = (muse_counter + 1) % muse_tempo;
- } else {
- if (muse_counter) {
- stop_all_notes();
- muse_counter = 0;
- }
- }
-}
-#endif
-
-bool music_mask_keymap(uint16_t keycode) {
- switch (keycode) {
- case _RAISE:
- case _LOWER:
- return false;
- default:
- return true;
- }
-}
diff --git a/layouts/community/ortho_4x12/jjerrell/readme.md b/layouts/community/ortho_4x12/jjerrell/readme.md
deleted file mode 100644
index ec947ea353..0000000000
--- a/layouts/community/ortho_4x12/jjerrell/readme.md
+++ /dev/null
@@ -1,7 +0,0 @@
-# JJerrell's Planck EZ Layout
-
-As with my other keymaps, this layout is a close adaptation of the Neo keyboard. Obvious differences are that the alpha keymap is Workman and if you're already used to the secondary layers of the Neo keymap, this might be very uncomfortable for you because of slight variations.
-
-The keymap has been setup to pretty much remove the center columns above the spacebar and limit use of the bottom row by supplying paths to removed functionality that are simpler to process mentally and require less finger acrobatics.
-
-My ownership of this keyboard could not have been easily predicted because my original justification of this hobby was health related. I found QMK through the Ergodox EZ and this keyboard is a result of that discovery -- I could not live without some QMK features. As you can see, my problem has come full circle... now I use this keyboard when I'm not at a desk and it's tiny. This is offset by eliminating use of the center columns, relying on a symbol layer almost exclusively, and relying on a navigation layer instead of getting by with the minimum on the alpha layers which became uncomfortable even with the thumbs doing the heavy lifting and mods being comfortably placed on the home row.
diff --git a/layouts/community/ortho_4x12/jjerrell/rules.mk b/layouts/community/ortho_4x12/jjerrell/rules.mk
deleted file mode 100644
index 9b1b8e8915..0000000000
--- a/layouts/community/ortho_4x12/jjerrell/rules.mk
+++ /dev/null
@@ -1,8 +0,0 @@
-SRC += muse.c
-
-BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite
-MOUSEKEY_ENABLE = no
-EXTRAKEY_ENABLE = yes
-TAP_DANCE_ENABLE = no
-SPACE_CADET_ENABLE = no
-NKRO_ENABLE = no
diff --git a/layouts/community/ortho_4x12/jotix/keymap.c b/layouts/community/ortho_4x12/jotix/keymap.c
deleted file mode 100644
index 756f92a2bc..0000000000
--- a/layouts/community/ortho_4x12/jotix/keymap.c
+++ /dev/null
@@ -1,95 +0,0 @@
-#include QMK_KEYBOARD_H
-
-enum layers {
- _QWERTY,
- _LOWER,
- _RAISE,
- _NUMPAD,
- _ADJUST,
-};
-
-#define LOWER MO(_LOWER)
-#define RAISE MO(_RAISE)
-#define NUMPAD TG(_NUMPAD)
-#define ADJUST MO(_ADJUST)
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
-[_QWERTY] = LAYOUT_ortho_4x12 (
-// ┌───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┐
- KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,
-// ├───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┤
- KC_TAB, 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_ENT,
-// ├───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┤
- KC_LCTL,KC_LGUI,KC_LALT,KC_RALT,LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT,KC_DOWN,KC_UP, KC_RGHT
-// └───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┘
-),
-
-[_LOWER] = LAYOUT_ortho_4x12 (
-// ┌───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┐
- KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, _______,
-// ├───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┤
- _______,KC_VOLD,KC_MUTE,KC_VOLU,KC_F13, KC_F14, KC_F15, KC_PSCR,KC_SCRL,KC_PAUS,_______,_______,
-// ├───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┤
- _______,KC_MPRV,KC_MPLY,KC_MNXT,KC_F16, KC_F17, KC_F18, KC_INS, _______,_______,_______,_______,
-// ├───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┤
- _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______
-// └───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┘
-),
-
-[_RAISE] = LAYOUT_ortho_4x12 (
-// ┌───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┐
- KC_TILD,KC_EXLM,KC_AT, KC_HASH,KC_DLR, KC_PERC,KC_CIRC,KC_AMPR,KC_ASTR,KC_LPRN,KC_RPRN,KC_DEL,
-// ├───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┤
- KC_CAPS,KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS,KC_EQL, KC_LBRC,KC_RBRC,KC_BSLS,
-// ├───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┤
- _______,KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_UNDS,KC_PLUS,KC_LCBR,KC_RCBR,KC_PIPE,
-// ├───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┤
- _______,_______,_______,KC_APP, ADJUST, _______,NUMPAD, _______,KC_HOME,KC_PGDN,KC_PGUP,KC_END
-// └───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┘
-),
-
-[_NUMPAD] = LAYOUT_ortho_4x12 (
-// ┌───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┐
- NUMPAD, KC_BTN1,KC_MS_U,KC_BTN2,KC_WH_U,_______,_______,KC_P7, KC_P8, KC_P9, KC_PMNS,_______,
-// ├───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┤
- _______,KC_MS_L,KC_MS_D,KC_MS_R,KC_WH_D,_______,_______,KC_P4, KC_P5, KC_P6, KC_PPLS,_______,
-// ├───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┤
- _______,_______,_______,_______,_______,_______,KC_NUM, KC_P1, KC_P2, KC_P3, KC_PSLS,KC_PENT,
-// ├───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┤
- _______,_______,_______,_______,_______,_______,_______,_______,KC_P0, KC_PDOT,KC_PAST,_______
-// └───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┘
-),
-
-[_ADJUST] = LAYOUT_ortho_4x12 (
-// ┌───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┐
- _______,QK_BOOT,_______,_______,QK_RBT, _______,_______,_______,_______,_______,_______,_______,
-// ├───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┤
- _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,
-// ├───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┤
- _______,_______,_______,_______,_______,_______,_______,QK_MAKE,_______,_______,_______,_______,
-// ├───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┤
- _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______
-// └───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┘
-),
-};
-
-layer_state_t layer_state_set_user(layer_state_t state) {
- #ifdef JOTANCK_LEDS
- writePin(JOTANCK_LED2, (IS_LAYER_ON_STATE(state, _NUMPAD)));
- #endif
- return state;
-}
-
-bool led_update_user(led_t led_state) {
- // NumLock allways on
- if (!led_state.num_lock) {
- tap_code(KC_NUM_LOCK);
- }
- #ifdef JOTANCK_LEDS
- writePin(JOTANCK_LED1, led_state.caps_lock);
- #endif
- return true;
-}
diff --git a/layouts/community/ortho_4x12/jotix/readme.md b/layouts/community/ortho_4x12/jotix/readme.md
deleted file mode 100644
index 1b44ca6596..0000000000
--- a/layouts/community/ortho_4x12/jotix/readme.md
+++ /dev/null
@@ -1,6 +0,0 @@
-# Jotix ortho 4x12 keymap
-
-Tested on:
-
-* Planck/rev4
-* Jotanck
diff --git a/layouts/community/ortho_4x12/jotix/rules.mk b/layouts/community/ortho_4x12/jotix/rules.mk
deleted file mode 100644
index ab2f67b7a4..0000000000
--- a/layouts/community/ortho_4x12/jotix/rules.mk
+++ /dev/null
@@ -1,2 +0,0 @@
-DYNAMIC_MACRO_ENABLE = yes
-BOOTMAGIC_ENABLE = yes
diff --git a/layouts/community/ortho_4x12/juno/config.h b/layouts/community/ortho_4x12/juno/config.h
deleted file mode 100644
index 81fc217278..0000000000
--- a/layouts/community/ortho_4x12/juno/config.h
+++ /dev/null
@@ -1,38 +0,0 @@
-#pragma once
-
-#ifdef AUDIO_ENABLE
- #define STARTUP_SONG SONG(PLANCK_SOUND)
- // #define STARTUP_SONG SONG(NO_SOUND)
-
- #define DEFAULT_LAYER_SONGS { SONG(QWERTY_SOUND), \
- SONG(COLEMAK_SOUND), \
- SONG(DVORAK_SOUND) \
- }
-#endif
-
-/*
- * MIDI options
- */
-
-/* enable basic MIDI features:
- - MIDI notes can be sent when in Music mode is on
-*/
-
-#define MIDI_BASIC
-
-/* enable advanced MIDI features:
- - MIDI notes can be added to the keymap
- - Octave shift and transpose
- - Virtual sustain, portamento, and modulation wheel
- - etc.
-*/
-//#define MIDI_ADVANCED
-
-/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
-//#define MIDI_TONE_KEYCODE_OCTAVES 2
-
-// Most tactile encoders have detents every 4 stages
-#define ENCODER_RESOLUTION 4
-
-// Reduce power consumption for iOS compatibility
-#define USB_MAX_POWER_CONSUMPTION 100 \ No newline at end of file
diff --git a/layouts/community/ortho_4x12/juno/keymap.c b/layouts/community/ortho_4x12/juno/keymap.c
deleted file mode 100644
index 1e29306031..0000000000
--- a/layouts/community/ortho_4x12/juno/keymap.c
+++ /dev/null
@@ -1,450 +0,0 @@
-#include QMK_KEYBOARD_H
-#include "muse.h"
-
-
-enum planck_layers {
- _QWERTY,
- _COLEMAK,
- _DVORAK,
- _LOWER,
- _RAISE,
- _PLOVER,
- _ADJUST,
-
- _FN1,
- _DPAD,
- _DPADNUM
-};
-
-enum planck_keycodes {
- QWERTY = SAFE_RANGE,
- COLEMAK,
- DVORAK,
- PLOVER,
- BACKLIT,
- EXT_PLV,
-
- DP_ON,
- DP_OFF
-};
-
-#define LOWER MO(_LOWER)
-#define RAISE MO(_RAISE)
-#define SPACEFN LT(_FN1, KC_SPC)
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
- /* Qwerty
- * ,-----------------------------------------------------------------------------------.
- * | ESC | Q | W | E | R | T | Y | U | I | O | P | Bksp |
- * |------+------+------+------+------+-------------+------+------+------+------+------|
- * | Tab | A | S | D | F | G | H | J | K | L | ; | " |
- * |------+------+------+------+------+------|------+------+------+------+------+------|
- * | Shift| Z | X | C | V | B | N | M | , | . | / |Enter |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | App | Ctrl | GUI | Alt |Lower | SpaceFn |Raise | Left | Down | Up |Right |
- * `-----------------------------------------------------------------------------------'
- */
- [_QWERTY] = LAYOUT_ortho_4x12(
- KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,
- KC_TAB, 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, RSFT_T(KC_ENT),
- KC_APP, KC_LCTL, KC_LGUI, KC_LALT, LOWER, SPACEFN, SPACEFN, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT
- ),
-
- /* Colemak
- * ,-----------------------------------------------------------------------------------.
- * | Tab | Q | W | F | P | G | J | L | U | Y | ; | Bksp |
- * |------+------+------+------+------+-------------+------+------+------+------+------|
- * | Esc | A | R | S | T | D | H | N | E | I | O | " |
- * |------+------+------+------+------+------|------+------+------+------+------+------|
- * | Shift| Z | X | C | V | B | K | M | , | . | / |Enter |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | Brite| Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right |
- * `-----------------------------------------------------------------------------------'
- */
- [_COLEMAK] = LAYOUT_ortho_4x12(
- KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC,
- KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT,
- KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT ,
- BACKLIT, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT
- ),
-
- /* Dvorak
- * ,-----------------------------------------------------------------------------------.
- * | Tab | " | , | . | P | Y | F | G | C | R | L | Bksp |
- * |------+------+------+------+------+-------------+------+------+------+------+------|
- * | Esc | A | O | E | U | I | D | H | T | N | S | / |
- * |------+------+------+------+------+------|------+------+------+------+------+------|
- * | Shift| ; | Q | J | K | X | B | M | W | V | Z |Enter |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | Brite| Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right |
- * `-----------------------------------------------------------------------------------'
- */
- [_DVORAK] = LAYOUT_ortho_4x12(
- KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSPC,
- KC_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH,
- KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_ENT ,
- BACKLIT, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT
- ),
-
- /* Lower
- * ,-----------------------------------------------------------------------------------.
- * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | |
- * |------+------+------+------+------+-------------+------+------+------+------+------|
- * | Del | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | |
- * |------+------+------+------+------+------|------+------+------+------+------+------|
- * | | F7 | F8 | F9 | F10 | F11 | F12 | | | | | |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | | | | | | | | Next | Vol- | Vol+ | Play |
- * `-----------------------------------------------------------------------------------'
- */
- [_LOWER] = LAYOUT_ortho_4x12(
- KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, _______,
- KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE,
- _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY
- ),
-
- /* Raise
- * ,-----------------------------------------------------------------------------------.
- * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | |
- * |------+------+------+------+------+-------------+------+------+------+------+------|
- * | Del | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ |
- * |------+------+------+------+------+------|------+------+------+------+------+------|
- * | | F7 | F8 | F9 | F10 | F11 | F12 | | | | | |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | | | | | | | | Next | Vol- | Vol+ | Play |
- * `-----------------------------------------------------------------------------------'
- */
- [_RAISE] = LAYOUT_ortho_4x12(
- KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, _______,
- KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS,
- _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY
- ),
-
- /* Plover layer (http://opensteno.org)
- * ,-----------------------------------------------------------------------------------.
- * | # | # | # | # | # | # | # | # | # | # | # | # |
- * |------+------+------+------+------+-------------+------+------+------+------+------|
- * | | S | T | P | H | * | * | F | P | L | T | D |
- * |------+------+------+------+------+------|------+------+------+------+------+------|
- * | | S | K | W | R | * | * | R | B | G | S | Z |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | Exit | | | A | O | | E | U | | | |
- * `-----------------------------------------------------------------------------------'
- */
-
- [_PLOVER] = LAYOUT_ortho_4x12(
- KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1 ,
- XXXXXXX, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC,
- XXXXXXX, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
- EXT_PLV, XXXXXXX, XXXXXXX, KC_C, KC_V, XXXXXXX, XXXXXXX, KC_N, KC_M, XXXXXXX, XXXXXXX, XXXXXXX
- ),
-
- /* Adjust (Lower + Raise)
- * ,-----------------------------------------------------------------------------------.
- * | | Reset| | | | | | | | | | Del |
- * |------+------+------+------+------+-------------+------+------+------+------+------|
- * | | | |Aud on|Audoff|AGnorm|AGswap|Qwerty|Colemk|Dvorak|Plover| |
- * |------+------+------+------+------+------|------+------+------+------+------+------|
- * | |Voice-|Voice+|Mus on|Musoff|MIDIon|MIDIof| | | | | |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | | | | | | | | | | | |
- * `-----------------------------------------------------------------------------------'
- */
- [_ADJUST] = LAYOUT_ortho_4x12(
- _______, QK_BOOT, DB_TOGG, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_DEL ,
- _______, _______, 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, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
- ),
-
- // Two personal additional layers below
-
- /* Personal custom Fn layer
- * ,-----------------------------------------------------------------------------------.
- * | | Vol+ | PgUp | Up | PdDn | Ins | | | Up | | PScr | |
- * |------+------+------+------+------+-------------+------+------+------+------+------|
- * | | Vol- | Left | Down | Right| Home | | Left | Down |Right | | Del |
- * |------+------+------+------+------+------|------+------+------+------+------+------|
- * | | Prev | Play | Next | Brite| End | | | Vol- | Vol+ | Mute | |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | Caps | | | | | Space | | DP_ON| | | |
- * `-----------------------------------------------------------------------------------'
- */
- [_FN1] = LAYOUT_ortho_4x12(
- _______, KC_VOLU, KC_PGUP, KC_UP, KC_PGDN, KC_INS, _______, _______, KC_UP, _______, KC_PSCR, _______,
- _______, KC_VOLD, KC_LEFT, KC_DOWN, KC_RGHT, KC_HOME, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, KC_DEL ,
- _______, KC_MPRV, KC_MPLY, KC_MNXT, BACKLIT, KC_END, _______, _______, KC_VOLD, KC_VOLU, KC_MUTE, _______,
- KC_CAPS, _______, _______, _______, _______, _______, _______, _______, DP_ON, _______, _______, _______
- ),
-
- /* DPAD layer, to activate arrow cluster at the bottom right corner
-
- * ,-----------------------------------------------------------------------------------.
- * | ESC | Q | W | E | R | T | Y | U | I | O | P | Bksp |
- * |------+------+------+------+------+-------------+------+------+------+------+------|
- * | Tab | A | S | D | F | G | H | J | K | L | ; | " |
- * |------+------+------+------+------+------|------+------+------+------+------+------|
- * | Shift| Z | X | C | V | B | N | M | , | . | Up |Enter |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | Ctrl | GUI | Alt | |DNUM | Space | |DP_OFF| Left | Down |Right |
- * `-----------------------------------------------------------------------------------'
- */
-
- [_DPAD] = LAYOUT_ortho_4x12(
- KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,
- KC_TAB, 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_UP, KC_ENT ,
- KC_LCTL, KC_LGUI, KC_LALT, XXXXXXX, MO(_DPADNUM),
- KC_SPC, KC_SPC, LOWER, DP_OFF, KC_LEFT, KC_DOWN, KC_RGHT
- ),
-
- // Extended layer for weapon switching
-
- [_DPADNUM] = LAYOUT_ortho_4x12(
- XXXXXXX, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, XXXXXXX,
- XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6,
- _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,
- _______, _______, _______, XXXXXXX, MO(_DPADNUM),
- XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX
- )
-
-
-};
-
-#ifdef AUDIO_ENABLE
- float plover_song[][2] = SONG(PLOVER_SOUND);
- float plover_gb_song[][2] = SONG(PLOVER_GOODBYE_SOUND);
-
- // Borrowing audio from unused audio
- // Caps Lock on and off sound too similar
-
- float caps_song_on[][2] = SONG(NUM_LOCK_ON_SOUND);
- float caps_song_off[][2] = SONG(SCROLL_LOCK_ON_SOUND);
-
- float dpad_song_on[][2] = SONG(ODE_TO_JOY);
- float dpad_song_off[][2] = SONG(UNICODE_WINDOWS);
-#endif
-
-// Disable LED on Rev6
-#ifdef KEYBOARD_planck_rev6
-layer_state_t layer_state_set_user(layer_state_t state) {
- return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST);
-}
-
-#else
-
-layer_state_t layer_state_set_user(layer_state_t state) {
- // LED control, lighting up when Fn layer is activated
- state = update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST);
-# ifdef BACKLIGHT_ENABLE
- switch (get_highest_layer(state)) {
- case _QWERTY:
- backlight_set(0);
- break;
- case _FN1:
- backlight_set(3);
- break;
- case _DPAD:
- backlight_set(3);
- break;
- }
-# endif
- return state;
-}
-
-#endif
-
-bool process_record_user(uint16_t keycode, keyrecord_t *record) {
- switch (keycode) {
- case QWERTY:
- if (record->event.pressed) {
- print("mode just switched to qwerty and this is a huge string\n");
- set_single_persistent_default_layer(_QWERTY);
- }
- return false;
- break;
- case COLEMAK:
- if (record->event.pressed) {
- set_single_persistent_default_layer(_COLEMAK);
- }
- return false;
- break;
- case DVORAK:
- if (record->event.pressed) {
- set_single_persistent_default_layer(_DVORAK);
- }
- return false;
- break;
- case BACKLIT:
- if (record->event.pressed) {
- register_code(KC_RSFT);
- #ifdef BACKLIGHT_ENABLE
- backlight_step();
- #endif
- #ifdef KEYBOARD_planck_rev5
- writePinLow(E6);
- #endif
- } else {
- unregister_code(KC_RSFT);
- #ifdef KEYBOARD_planck_rev5
- writePinHigh(E6);
- #endif
- }
- return false;
- break;
- case PLOVER:
- if (record->event.pressed) {
- #ifdef AUDIO_ENABLE
- stop_all_notes();
- PLAY_SONG(plover_song);
- #endif
- layer_off(_RAISE);
- layer_off(_LOWER);
- layer_off(_ADJUST);
- layer_on(_PLOVER);
- if (!eeconfig_is_enabled()) {
- eeconfig_init();
- }
- keymap_config.raw = eeconfig_read_keymap();
- keymap_config.nkro = 1;
- eeconfig_update_keymap(keymap_config.raw);
- }
- return false;
- break;
- case EXT_PLV:
- if (record->event.pressed) {
- #ifdef AUDIO_ENABLE
- PLAY_SONG(plover_gb_song);
- #endif
- layer_off(_PLOVER);
- }
- return false;
- break;
-
-
-// Play audio upon switching Caps Lock and custom layers
-
- case KC_CAPS:
- if (record->event.pressed) {
- #ifdef AUDIO_ENABLE
- if (host_keyboard_led_state().caps_lock) {
- PLAY_SONG(caps_song_off);
- } else {
- PLAY_SONG(caps_song_on);
- }
- #endif
- }
- return true;
-
- case DP_ON:
- if (record->event.pressed) {
-
- } else {
- #ifdef AUDIO_ENABLE
- PLAY_SONG(dpad_song_on);
- #endif
-
- layer_off(_FN1);
- layer_on(_DPAD);
- }
-
- case DP_OFF:
- if (record->event.pressed) {
- #ifdef AUDIO_ENABLE
- PLAY_SONG(dpad_song_off);
- #endif
-
- layer_off(_DPAD);
- }
- }
- return true;
-}
-
-bool muse_mode = false;
-uint8_t last_muse_note = 0;
-uint16_t muse_counter = 0;
-uint8_t muse_offset = 70;
-uint16_t muse_tempo = 50;
-
-bool encoder_update_user(uint8_t index, bool clockwise) {
- if (muse_mode) {
- if (IS_LAYER_ON(_RAISE)) {
- if (clockwise) {
- muse_offset++;
- } else {
- muse_offset--;
- }
- } else {
- if (clockwise) {
- muse_tempo+=1;
- } else {
- muse_tempo-=1;
- }
- }
- } else {
- if (clockwise) {
- tap_code(KC_PGDN);
- } else {
- tap_code(KC_PGUP);
- }
- }
- return true;
-}
-
-bool dip_switch_update_user(uint8_t index, bool active) {
- switch (index) {
- case 0:
- if (active) {
- #ifdef AUDIO_ENABLE
- PLAY_SONG(plover_song);
- #endif
- layer_on(_ADJUST);
- } else {
- #ifdef AUDIO_ENABLE
- PLAY_SONG(plover_gb_song);
- #endif
- layer_off(_ADJUST);
- }
- break;
- case 1:
- if (active) {
- muse_mode = true;
- } else {
- muse_mode = false;
- #ifdef AUDIO_ENABLE
- stop_all_notes();
- #endif
- }
- }
- return true;
-}
-
-void matrix_scan_user(void) {
- #ifdef AUDIO_ENABLE
- if (muse_mode) {
- if (muse_counter == 0) {
- uint8_t muse_note = muse_offset + SCALE[muse_clock_pulse()];
- if (muse_note != last_muse_note) {
- stop_note(compute_freq_for_midi_note(last_muse_note));
- play_note(compute_freq_for_midi_note(muse_note), 0xF);
- last_muse_note = muse_note;
- }
- }
- muse_counter = (muse_counter + 1) % muse_tempo;
- }
- #endif
-}
-
-bool music_mask_user(uint16_t keycode) {
- switch (keycode) {
- case RAISE:
- case LOWER:
- return false;
- default:
- return true;
- }
-}
diff --git a/layouts/community/ortho_4x12/juno/readme.md b/layouts/community/ortho_4x12/juno/readme.md
deleted file mode 100644
index b8ce97ec52..0000000000
--- a/layouts/community/ortho_4x12/juno/readme.md
+++ /dev/null
@@ -1,16 +0,0 @@
-# Juno's Universal ortholinear 4x12 Layout
-created by Juno Nguyen
-
-## Features:
-* **Minimal changes from the default keymap**: to minimize re-adaptation.
-* **Top corner Esc**: swapped with Tab.
-* **Double function ShiftEnter**: hold for Right Shift; tap for Enter.
-* **Removed infrequently used keys**: Euro-specific keys.
-* **Custom Fn layer**: inspired by Pok3r and refined over time.
-* **SpaceFn**: the ultimate way to Fn.
-* **Double arrow clusters**: both Fn + WASD and Fn + IJKL are simultaneously usable for maximum comfort.
-* **Gaming-specific layer**: T-inverted arrow cluster shape; swapped Raise and Lower for easy access to numeric keys (for switching weapons in action games); standard-positioned bottom modifiers.
-* **LED indicator**: lighting up when Fn or Gaming layer is activated.
-* **Audio indicators**: Caps Lock and gaming layer.
-
-Refined since September 2017. \ No newline at end of file
diff --git a/layouts/community/ortho_4x12/juno/rules.mk b/layouts/community/ortho_4x12/juno/rules.mk
deleted file mode 100644
index cf0942b718..0000000000
--- a/layouts/community/ortho_4x12/juno/rules.mk
+++ /dev/null
@@ -1,14 +0,0 @@
-SRC += muse.c
-
-ifeq ($(strip $(KEYBOARD)), planck/rev6)
- BACKLIGHT_ENABLE = no
-else
- BACKLIGHT_ENABLE = yes
-endif
-
-MIDI_ENABLE=no
-RGBLIGHT_ENABLE = no
-MOUSEKEY_ENABLE = no # Mouse keys
-EXTRAKEY_ENABLE = yes # Audio control and System control
-CONSOLE_ENABLE = no # Console for debug
-COMMAND_ENABLE = no # Commands for debug and configuration \ No newline at end of file
diff --git a/layouts/community/ortho_4x12/junonum/config.h b/layouts/community/ortho_4x12/junonum/config.h
deleted file mode 100644
index c16d74892d..0000000000
--- a/layouts/community/ortho_4x12/junonum/config.h
+++ /dev/null
@@ -1,40 +0,0 @@
-#pragma once
-
-#ifdef AUDIO_ENABLE
- #define STARTUP_SONG SONG(PLANCK_SOUND)
- // #define STARTUP_SONG SONG(NO_SOUND)
-
- #define DEFAULT_LAYER_SONGS { SONG(QWERTY_SOUND), \
- SONG(COLEMAK_SOUND), \
- SONG(DVORAK_SOUND) \
- }
-#endif
-
-/*
- * MIDI options
- */
-
-/* enable basic MIDI features:
- - MIDI notes can be sent when in Music mode is on
-*/
-#define MIDI_BASIC
-
-/* enable advanced MIDI features:
- - MIDI notes can be added to the keymap
- - Octave shift and transpose
- - Virtual sustain, portamento, and modulation wheel
- - etc.
-*/
-//#define MIDI_ADVANCED
-
-/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
-//#define MIDI_TONE_KEYCODE_OCTAVES 2
-
-// Most tactile encoders have detents every 4 stages
-#define ENCODER_RESOLUTION 4
-
-// Reduce power consumption for iOS compatibility
-#define USB_MAX_POWER_CONSUMPTION 100
-
-// Short tap threshold
-#define TAPPING_TERM 250
diff --git a/layouts/community/ortho_4x12/junonum/keymap.c b/layouts/community/ortho_4x12/junonum/keymap.c
deleted file mode 100644
index 7d7ca3d48b..0000000000
--- a/layouts/community/ortho_4x12/junonum/keymap.c
+++ /dev/null
@@ -1,379 +0,0 @@
-/* Copyright 2023 Juno Nguyen <juno.ngx@gmail.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 QMK_KEYBOARD_H
-
-#ifdef AUDIO_ENABLE
-# include "muse.h"
-#endif
-
-enum planck_layers {
- _QWERTY,
- _COLEMAK,
- _DVORAK,
- _LOWER,
- _RAISE,
- _PLOVER,
- _ADJUST,
-
- _FN1,
- _DPAD,
- _DPADNUM
-};
-
-enum planck_keycodes {
- QWERTY = SAFE_RANGE,
- COLEMAK,
- DVORAK,
- PLOVER,
- BACKLIT,
- EXT_PLV,
-
- DP_ON,
- DP_OFF
-};
-
-#define LOWER MO(_LOWER)
-#define RAISE MO(_RAISE)
-#define SPACEFN LT(_FN1, KC_SPC)
-#define DPADNUM MO(_DPADNUM)
-
-// Homerow mods
-#define MD_A LALT_T(KC_A)
-#define MD_S LGUI_T(KC_S)
-#define MD_D LCTL_T(KC_D)
-#define MD_F LSFT_T(KC_F)
-
-#define MD_J RSFT_T(KC_J)
-#define MD_K RCTL_T(KC_K)
-#define MD_L RGUI_T(KC_L)
-#define MD_SCLN RALT_T(KC_SCLN)
-
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
- [_QWERTY] = LAYOUT_ortho_4x12(
- KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,
- KC_TAB, MD_A, MD_S, MD_D, MD_F, KC_G, KC_H, MD_J, MD_K, MD_L, MD_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_ENT ,
- _______, KC_LCTL, KC_LGUI, KC_LALT, LOWER, SPACEFN, SPACEFN, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT
- ),
-
- [_COLEMAK] = LAYOUT_ortho_4x12(
- KC_ESC, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC,
- KC_TAB, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT,
- KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT ,
- _______, KC_LCTL, KC_LGUI, KC_LALT, LOWER, SPACEFN, SPACEFN, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT
- ),
-
- [_DVORAK] = LAYOUT_ortho_4x12(
- KC_ESC, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSPC,
- KC_TAB, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_QUOT,
- KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_ENT ,
- _______, KC_LCTL, KC_LGUI, KC_LALT, LOWER, SPACEFN, SPACEFN, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT
- ),
-
- [_LOWER] = LAYOUT_ortho_4x12(
- KC_TILD, _______, KC_MPRV, KC_MPLY, KC_MNXT, _______, _______, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, _______,
- _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_DLR, KC_PERC, KC_CIRC, KC_UNDS, KC_PIPE,
- _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_EXLM, KC_AT, KC_HASH, KC_PLUS, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_VOLD, KC_VOLU, KC_MPLY
- ),
-
- [_RAISE] = LAYOUT_ortho_4x12(
- KC_GRV, _______, _______, KC_LBRC, KC_RBRC, _______, _______, KC_7, KC_8, KC_9, KC_0, _______,
- _______, _______, _______, KC_LCBR, KC_RCBR, _______, _______, KC_4, KC_5, KC_6, KC_MINUS, KC_BSLS,
- _______, _______, _______, _______, _______, _______, _______, KC_1, KC_2, KC_3, KC_EQUAL, KC_ENT,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_VOLD, KC_VOLU, KC_MPLY
- ),
-
- [_PLOVER] = LAYOUT_ortho_4x12(
- KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1 ,
- XXXXXXX, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC,
- XXXXXXX, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
- EXT_PLV, XXXXXXX, XXXXXXX, KC_C, KC_V, XXXXXXX, XXXXXXX, KC_N, KC_M, XXXXXXX, XXXXXXX, XXXXXXX
- ),
-
- [_ADJUST] = LAYOUT_ortho_4x12(
- _______, QK_BOOT, DB_TOGG, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_DEL ,
- _______, AG_NORM, MU_NEXT, AU_ON, AU_OFF, CG_NORM, CG_SWAP, QWERTY, COLEMAK, DVORAK, PLOVER, _______,
- _______, AU_PREV, AU_NEXT, MU_ON, MU_OFF, MI_ON, MI_OFF, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
- ),
-
- [_FN1] = LAYOUT_ortho_4x12(
- KC_APP, DP_ON, KC_PGDN, KC_UP, KC_PGUP, KC_INS, KC_CAPS, KC_PGUP, KC_UP, KC_PGDN, KC_PSCR, _______,
- _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, KC_HOME, KC_HOME, KC_LEFT, KC_DOWN, KC_RGHT, _______, KC_DEL ,
- _______, _______, _______, _______, _______, KC_END, KC_END, _______, KC_VOLD, KC_VOLU, KC_MUTE, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, DP_ON, _______, _______, _______
- ),
-
- // Slightly modified layer with inverted T-shaped directional pad
- [_DPAD] = LAYOUT_ortho_4x12(
- KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,
- KC_TAB, 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_UP, KC_ENT ,
- XXXXXXX, KC_LCTL, KC_LGUI, KC_LALT, DPADNUM, KC_SPC, KC_SPC, DPADNUM, DP_OFF, KC_LEFT, KC_DOWN, KC_RGHT
- ),
-
- // Extended numeric layer for FPS weapon switching and StarCraft group control
- [_DPADNUM] = LAYOUT_ortho_4x12(
- KC_LGUI, KC_1, KC_2, KC_3, KC_4, KC_5, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, DP_OFF, XXXXXXX,
- KC_LCTL, _______, KC_6, KC_7, KC_8, KC_9, KC_0, XXXXXXX, KC_F10, KC_F11, KC_F12, XXXXXXX,
- KC_LSFT, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_SLSH, XXXXXXX,
- _______, _______, _______, _______, DPADNUM, XXXXXXX, XXXXXXX, DPADNUM, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX
- )
-};
-
-#ifdef AUDIO_ENABLE
- float plover_song[][2] = SONG(PLOVER_SOUND);
- float plover_gb_song[][2] = SONG(PLOVER_GOODBYE_SOUND);
-
- float caps_song_on[][2] = SONG(NUM_LOCK_ON_SOUND);
- float caps_song_off[][2] = SONG(SCROLL_LOCK_ON_SOUND);
-
- // Custom songs for DPAD layer status
- float dpad_song_on[][2] = {
- HD_NOTE(_A4), HD_NOTE(_A4), HD_NOTE(_A4),
- QD_NOTE(_F4), QD_NOTE(_C5), HD_NOTE(_A4),
- QD_NOTE(_F4), QD_NOTE(_C5), WD_NOTE(_A4)
- };
-
- float dpad_song_off[][2] = {
- ED_NOTE(_C6), ED_NOTE(_C6),
- ED_NOTE(_C6), ED_NOTE(_C6),
- W__NOTE(_REST), QD_NOTE(_GS5),
- QD_NOTE(_AS5), Q__NOTE(_C6),
- Q__NOTE(_AS5), Q__NOTE(_C6)
- };
-#endif
-
-layer_state_t layer_state_set_user(layer_state_t state) {
- state = update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST);
-# ifdef BACKLIGHT_ENABLE
- // LED control, lighting up when Fn layer is activated
- switch (get_highest_layer(state)) {
- case _QWERTY:
- backlight_set(0);
- break;
- case _FN1:
- backlight_set(3);
- break;
- case _DPAD:
- backlight_set(3);
- break;
- }
-# endif
-
- return state;
-}
-
-bool process_record_user(uint16_t keycode, keyrecord_t *record) {
- switch (keycode) {
- case QWERTY:
- if (record->event.pressed) {
- print("mode just switched to qwerty and this is a huge string\n");
- set_single_persistent_default_layer(_QWERTY);
- }
- return false;
- break;
- case COLEMAK:
- if (record->event.pressed) {
- set_single_persistent_default_layer(_COLEMAK);
- }
- return false;
- break;
- case DVORAK:
- if (record->event.pressed) {
- set_single_persistent_default_layer(_DVORAK);
- }
- return false;
- break;
- case BACKLIT:
- if (record->event.pressed) {
- register_code(KC_RSFT);
-# ifdef BACKLIGHT_ENABLE
- backlight_step();
-# endif
-# ifdef KEYBOARD_planck_rev5
- writePinLow(E6);
-# endif
- } else {
- unregister_code(KC_RSFT);
-# ifdef KEYBOARD_planck_rev5
- writePinHigh(E6);
-# endif
- }
- return false;
- break;
- case PLOVER:
- if (record->event.pressed) {
-# ifdef AUDIO_ENABLE
- stop_all_notes();
- PLAY_SONG(plover_song);
-# endif
- layer_off(_RAISE);
- layer_off(_LOWER);
- layer_off(_ADJUST);
- layer_on(_PLOVER);
- if (!eeconfig_is_enabled()) {
- eeconfig_init();
- }
- keymap_config.raw = eeconfig_read_keymap();
- keymap_config.nkro = 1;
- eeconfig_update_keymap(keymap_config.raw);
- }
- return false;
- break;
- case EXT_PLV:
- if (record->event.pressed) {
-# ifdef AUDIO_ENABLE
- PLAY_SONG(plover_gb_song);
-# endif
- layer_off(_PLOVER);
- }
- return false;
- break;
-
- // Play audio upon switching Caps Lock and custom layers
- case KC_CAPS:
- if (record->event.pressed) {
-# ifdef AUDIO_ENABLE
- if (host_keyboard_led_state().caps_lock) {
- PLAY_SONG(caps_song_off);
- } else {
- PLAY_SONG(caps_song_on);
- }
-# endif
- }
- return true;
-
- case DP_ON:
- if (record->event.pressed) {
- } else { // only actived upon key release
-# ifdef AUDIO_ENABLE
- PLAY_SONG(dpad_song_on);
-# endif
-
- layer_off(_FN1);
- layer_on(_DPAD);
- }
-
- case DP_OFF:
- if (record->event.pressed) {
-# ifdef AUDIO_ENABLE
- PLAY_SONG(dpad_song_off);
-# endif
-
- layer_off(_DPAD);
- }
- }
- return true;
-}
-
-bool muse_mode = false;
-uint8_t last_muse_note = 0;
-uint16_t muse_counter = 0;
-uint8_t muse_offset = 70;
-uint16_t muse_tempo = 50;
-
-bool encoder_update_user(uint8_t index, bool clockwise) {
- if (muse_mode) {
- if (IS_LAYER_ON(_RAISE)) {
- if (clockwise) {
- muse_offset++;
- } else {
- muse_offset--;
- }
- } else {
- if (clockwise) {
- muse_tempo += 1;
- } else {
- muse_tempo -= 1;
- }
- }
- } else {
- if (clockwise) {
- tap_code(KC_PGDN);
- } else {
- tap_code(KC_PGUP);
- }
- }
- return true;
-}
-
-bool dip_switch_update_user(uint8_t index, bool active) {
- switch (index) {
- case 0:
- if (active) {
-# ifdef AUDIO_ENABLE
- PLAY_SONG(plover_song);
-# endif
- layer_on(_ADJUST);
- } else {
-# ifdef AUDIO_ENABLE
- PLAY_SONG(plover_gb_song);
-# endif
- layer_off(_ADJUST);
- }
- break;
- case 1:
- if (active) {
- muse_mode = true;
- } else {
- muse_mode = false;
-# ifdef AUDIO_ENABLE
- stop_all_notes();
-# endif
- }
- }
- return true;
-}
-
-void matrix_scan_user(void) {
-#ifdef AUDIO_ENABLE
- if (muse_mode) {
- if (muse_counter == 0) {
- uint8_t muse_note = muse_offset + SCALE[muse_clock_pulse()];
- if (muse_note != last_muse_note) {
- stop_note(compute_freq_for_midi_note(last_muse_note));
- play_note(compute_freq_for_midi_note(muse_note), 0xF);
- last_muse_note = muse_note;
- }
- }
- muse_counter = (muse_counter + 1) % muse_tempo;
- }
-#endif
-}
-
-bool music_mask_user(uint16_t keycode) {
- switch (keycode) {
- case RAISE:
- case LOWER:
- return false;
- default:
- return true;
- }
-}
-
-#ifdef RGBLIGHT_ENABLE
- void keyboard_post_init_user(void) {
- rgblight_enable_noeeprom(); // Enables RGB, without saving settings
- // Vibrant cyan
- rgblight_sethsv_noeeprom(HSV_SPRINGGREEN);
- rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_LIGHT);
- }
-#endif
diff --git a/layouts/community/ortho_4x12/junonum/readme.md b/layouts/community/ortho_4x12/junonum/readme.md
deleted file mode 100644
index 39041e69f3..0000000000
--- a/layouts/community/ortho_4x12/junonum/readme.md
+++ /dev/null
@@ -1,17 +0,0 @@
-# junonum
-A universal ortholinear 4x12 keymap created by Juno Nguyen
-
-## Features:
-* Successor to *juno*.
-* Numpad-like cluster for numerics.
-* ESDF and IJKL arrow cluster from SpaceFn for navigation.
-* ~~CtrlTab for even more HHKB-ness.~~
-* Audio indicator for Caps Lock.
-* Huge amount of omissions of redundant keys.
-* minimalism (not really).
-* DPAD layer for gaming with inverted T-shaped direction keys.
-* DPADNUM secondary layer tailored for StarCraft group control and FPS weapon switching.
-* Homerow mods for even less movement
-* Toggle Control and GUI swap instead of default Alt and GUI to better accommodate switching between Windows/Linux and Mac
-
-Refined since Oct 2019 \ No newline at end of file
diff --git a/layouts/community/ortho_4x12/junonum/rules.mk b/layouts/community/ortho_4x12/junonum/rules.mk
deleted file mode 100644
index ecb8d8aa1a..0000000000
--- a/layouts/community/ortho_4x12/junonum/rules.mk
+++ /dev/null
@@ -1,22 +0,0 @@
-ifeq ($(strip $(AUDIO_ENABLE)), yes)
- SRC += muse.c
-endif
-
-ifeq ($(strip $(KEYBOARD)),$(filter $(strip $(KEYBOARD)), planck/rev2 planck/rev3 planck/rev4 planck/rev5))
- BACKLIGHT_ENABLE = yes
-else
- BACKLIGHT_ENABLE = no
-endif
-
-ifeq ($(strip $(KEYBOARD)), vitamins_included/rev1)
- NKRO_ENABLE = no
-endif
-
-MIDI_ENABLE=no
-RGBLIGHT_ENABLE = no
-MOUSEKEY_ENABLE = no # Mouse keys
-EXTRAKEY_ENABLE = yes # Audio control and System control
-CONSOLE_ENABLE = no # Console for debug
-COMMAND_ENABLE = no # Commands for debug and configuration
-
-BOOTMAGIC_ENABLE = no # Enable Bootmagic Lite \ No newline at end of file
diff --git a/layouts/community/ortho_4x12/manna-harbour_miryoku/config.h b/layouts/community/ortho_4x12/manna-harbour_miryoku/config.h
deleted file mode 100644
index 0b218502ba..0000000000
--- a/layouts/community/ortho_4x12/manna-harbour_miryoku/config.h
+++ /dev/null
@@ -1,47 +0,0 @@
-// Copyright 2019 Manna Harbour
-// https://github.com/manna-harbour/miryoku
-
-// 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
-
-#if defined MIRYOKU_MAPPING_SPLIT
-#define LAYOUT_miryoku(\
-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,\
-N30, N31, K32, K33, K34, K35, K36, K37, N38, N39\
-)\
-LAYOUT_ortho_4x12(\
-KC_NO, K01, K02, K03, K04, KC_NO, KC_NO, K05, K06, K07, K08, KC_NO,\
-K00, K11, K12, K13, K14, KC_NO, KC_NO, K15, K16, K17, K18, K09,\
-K10, K21, K22, K23, K24, KC_NO, KC_NO, K25, K26, K27, K28, K19,\
-K20, KC_NO, KC_NO, K32, K33, K34, K35, K36, K37, KC_NO, KC_NO, K29\
-)
-#elif defined MIRYOKU_MAPPING_EXTENDED_THUMBS
-#define LAYOUT_miryoku(\
-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,\
-N30, N31, K32, K33, K34, K35, K36, K37, N38, N39\
-)\
-LAYOUT_ortho_4x12(\
-K00, K01, K02, K03, K04, KC_NO, KC_NO, K05, K06, K07, K08, K09,\
-K10, K11, K12, K13, K14, KC_NO, KC_NO, K15, K16, K17, K18, K19,\
-K20, K21, K22, K23, K24, KC_NO, KC_NO, K25, K26, K27, K28, K29,\
-KC_NO, KC_NO, KC_NO, K32, K33, K34, K35, K36, K37, KC_NO, KC_NO, KC_NO\
-)
-#else
-#define LAYOUT_miryoku(\
-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,\
-N30, N31, K32, K33, K34, K35, K36, K37, N38, N39\
-)\
-LAYOUT_ortho_4x12(\
-K00, K01, K02, K03, K04, KC_NO, KC_NO, K05, K06, K07, K08, K09,\
-K10, K11, K12, K13, K14, KC_NO, KC_NO, K15, K16, K17, K18, K19,\
-K20, K21, K22, K23, K24, KC_NO, KC_NO, K25, K26, K27, K28, K29,\
-KC_NO, KC_NO, K32, K33, K34, KC_NO, KC_NO, K35, K36, K37, KC_NO, KC_NO\
-)
-#endif
diff --git a/layouts/community/ortho_4x12/manna-harbour_miryoku/keymap.c b/layouts/community/ortho_4x12/manna-harbour_miryoku/keymap.c
deleted file mode 100644
index dbab7f9820..0000000000
--- a/layouts/community/ortho_4x12/manna-harbour_miryoku/keymap.c
+++ /dev/null
@@ -1,4 +0,0 @@
-// Copyright 2019 Manna Harbour
-// https://github.com/manna-harbour/miryoku
-
-// 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/>.
diff --git a/layouts/community/ortho_4x12/mguterl/config.h b/layouts/community/ortho_4x12/mguterl/config.h
deleted file mode 100644
index 9020d2b9f8..0000000000
--- a/layouts/community/ortho_4x12/mguterl/config.h
+++ /dev/null
@@ -1,36 +0,0 @@
-#pragma once
-
-#ifdef AUDIO_ENABLE
- #define STARTUP_SONG SONG(PLANCK_SOUND)
- // #define STARTUP_SONG SONG(NO_SOUND)
-
- #define DEFAULT_LAYER_SONGS { SONG(QWERTY_SOUND), \
- SONG(COLEMAK_SOUND), \
- SONG(DVORAK_SOUND) \
- }
-#endif
-
-/*
- * MIDI options
- */
-
-/* enable basic MIDI features:
- - MIDI notes can be sent when in Music mode is on
-*/
-
-#define MIDI_BASIC
-
-/* enable advanced MIDI features:
- - MIDI notes can be added to the keymap
- - Octave shift and transpose
- - Virtual sustain, portamento, and modulation wheel
- - etc.
-*/
-//#define MIDI_ADVANCED
-
-/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
-//#define MIDI_TONE_KEYCODE_OCTAVES 2
-
-// Most tactile encoders have detents every 4 stages
-#define ENCODER_RESOLUTION 4
-
diff --git a/layouts/community/ortho_4x12/mguterl/keymap.c b/layouts/community/ortho_4x12/mguterl/keymap.c
deleted file mode 100644
index 4f060e5550..0000000000
--- a/layouts/community/ortho_4x12/mguterl/keymap.c
+++ /dev/null
@@ -1,354 +0,0 @@
-/* Copyright 2015-2017 Jack Humbert
- *
- * 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 "muse.h"
-#include "mguterl.h"
-
-extern keymap_config_t keymap_config;
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
-/* Qwerty
- * ,-----------------------------------------------------------------------------------.
- * |HypTab| Q | W | E | R | T | Y | U | I | O | P | Bksp |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * |EscCtl| A | S | D | F | G | H | J | K | L | ; | " |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | Shift| Z | X | C | V | B | N | M | , | . | / |Enter |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | GESC | Ctrl | Alt | GUI |Lower |SpcUtl|SpcUtl|Raise | Left | Down | Up |Right |
- * `-----------------------------------------------------------------------------------'
- */
-[_QWERTY] = LAYOUT_ortho_4x12(
- HPR_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,
- ESC_CTL, 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, SFT_ENT,
- QK_GESC, KC_LCTL, KC_LALT, KC_LGUI, LOWER, SPC_UTL, SPC_UTL, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT
-),
-
-/*
- * Gaming is very similar to Qwerty. Certain features from Qwerty are disable
- * for better gaming experience.
- */
-[_GAMING] = LAYOUT_ortho_4x12(
- KC_TAB, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- KC_ESC, _______, _______, _______, _______, KC_SPC, KC_SPC, _______, _______, _______, _______, _______
-),
-
-/*
- * Util is accessed by holding Space. The Util layer contains vimkeys and
- * shortcuts that I find myself needing often.
- */
-[_UTIL] = LAYOUT_ortho_4x12(
- _______, GUI_1, GUI_2, GUI_3, GUI_4, GUI_5, GUI_6, GUI_7, GUI_8, GUI_9, GUI_0, _______,
- _______, KC_VOLD, KC_VOLU, KC_MUTE, _______, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, GO_BACK, GO_FWD, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
-),
-/* Colemak
- * ,-----------------------------------------------------------------------------------.
- * | Tab | Q | W | F | P | G | J | L | U | Y | ; | Bksp |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | Esc | A | R | S | T | D | H | N | E | I | O | " |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | Shift| Z | X | C | V | B | K | M | , | . | / |Enter |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | Brite| Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right |
- * `-----------------------------------------------------------------------------------'
- */
-[_COLEMAK] = LAYOUT_ortho_4x12(
- KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC,
- KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT,
- KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT ,
- BACKLIT, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT
-),
-
-/* Dvorak
- * ,-----------------------------------------------------------------------------------.
- * | Tab | " | , | . | P | Y | F | G | C | R | L | Bksp |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | Esc | A | O | E | U | I | D | H | T | N | S | / |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | Shift| ; | Q | J | K | X | B | M | W | V | Z |Enter |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | Brite| Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right |
- * `-----------------------------------------------------------------------------------'
- */
-[_DVORAK] = LAYOUT_ortho_4x12(
- KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSPC,
- KC_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH,
- KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_ENT ,
- BACKLIT, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT
-),
-
-/* Lower
- * ,-----------------------------------------------------------------------------------.
- * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | Del | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | | F7 | F8 | F9 | F10 | F11 | F12 | - | = | [ | ] | |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | | | | | | | | Next | Vol- | Vol+ | Play |
- * `-----------------------------------------------------------------------------------'
- */
-[_LOWER] = LAYOUT_ortho_4x12(
- KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC,
- KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE,
- _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS,
- _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY
-),
-
-/* Raise
- * ,-----------------------------------------------------------------------------------.
- * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | Del | F1 | F2 | F3 | F4 | F5 | F6 | | | | | |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | | F7 | F8 | F9 | F10 | F11 | F12 | | |Pg Up |Pg Dn | |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | | | | | | | | Next | Vol- | Vol+ | Play |
- * `-----------------------------------------------------------------------------------'
- */
-[_RAISE] = LAYOUT_ortho_4x12(
- KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC,
- KC_DEL, 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_PGUP, KC_PGDN, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY
-),
-
-/* Plover layer (http://opensteno.org)
- * ,-----------------------------------------------------------------------------------.
- * | # | # | # | # | # | # | # | # | # | # | # | # |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | | S | T | P | H | * | * | F | P | L | T | D |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | | S | K | W | R | * | * | R | B | G | S | Z |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | Exit | | | A | O | | E | U | | | |
- * `-----------------------------------------------------------------------------------'
- */
-[_PLOVER] = LAYOUT_ortho_4x12(
- KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1 ,
- XXXXXXX, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC,
- XXXXXXX, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
- EXT_PLV, XXXXXXX, XXXXXXX, KC_C, KC_V, XXXXXXX, XXXXXXX, KC_N, KC_M, XXXXXXX, XXXXXXX, XXXXXXX
-),
-
-/* Adjust (Lower + Raise)
- * v------------------------RGB CONTROL--------------------v
- * ,-----------------------------------------------------------------------------------.
- * |ToGame| Reset|Debug | RGB |RGBMOD| HUE+ | HUE- | SAT+ | SAT- |BRGTH+|BRGTH-| Del |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | | |MUSmod|Aud on|Audoff|AGnorm|AGswap|Qwerty|Colemk|Dvorak|Plover| |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | |Voice-|Voice+|Mus on|Musoff|MIDIon|MIDIof| | | | | |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | | | | | | | | | | | |
- * `-----------------------------------------------------------------------------------'
- */
-[_ADJUST] = LAYOUT_ortho_4x12(
- TG_GAME, QK_BOOT, DB_TOGG, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_DEL ,
- _______, _______, 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 AUDIO_ENABLE
- float plover_song[][2] = SONG(PLOVER_SOUND);
- float plover_gb_song[][2] = SONG(PLOVER_GOODBYE_SOUND);
-#endif
-
-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) {
- switch (keycode) {
- case QWERTY:
- if (record->event.pressed) {
- print("mode just switched to qwerty and this is a huge string\n");
- set_single_persistent_default_layer(_QWERTY);
- }
- return false;
- break;
- case COLEMAK:
- if (record->event.pressed) {
- set_single_persistent_default_layer(_COLEMAK);
- }
- return false;
- break;
- case DVORAK:
- if (record->event.pressed) {
- set_single_persistent_default_layer(_DVORAK);
- }
- return false;
- break;
- case BACKLIT:
- if (record->event.pressed) {
- register_code(KC_RSFT);
- #ifdef BACKLIGHT_ENABLE
- backlight_step();
- #endif
- #ifdef KEYBOARD_planck_rev5
- writePinLow(E6);
- #endif
- } else {
- unregister_code(KC_RSFT);
- #ifdef KEYBOARD_planck_rev5
- writePinHigh(E6);
- #endif
- }
- return false;
- break;
- case PLOVER:
- if (record->event.pressed) {
- #ifdef AUDIO_ENABLE
- stop_all_notes();
- PLAY_SONG(plover_song);
- #endif
- layer_off(_RAISE);
- layer_off(_LOWER);
- layer_off(_ADJUST);
- layer_on(_PLOVER);
- if (!eeconfig_is_enabled()) {
- eeconfig_init();
- }
- keymap_config.raw = eeconfig_read_keymap();
- keymap_config.nkro = 1;
- eeconfig_update_keymap(keymap_config.raw);
- }
- return false;
- break;
- case EXT_PLV:
- if (record->event.pressed) {
- #ifdef AUDIO_ENABLE
- PLAY_SONG(plover_gb_song);
- #endif
- layer_off(_PLOVER);
- }
- return false;
- break;
- }
- return true;
-}
-
-bool muse_mode = false;
-uint8_t last_muse_note = 0;
-uint16_t muse_counter = 0;
-uint8_t muse_offset = 70;
-uint16_t muse_tempo = 50;
-
-bool encoder_update_user(uint8_t index, bool clockwise) {
- if (muse_mode) {
- if (IS_LAYER_ON(_RAISE)) {
- if (clockwise) {
- muse_offset++;
- } else {
- muse_offset--;
- }
- } else {
- if (clockwise) {
- muse_tempo+=1;
- } else {
- muse_tempo-=1;
- }
- }
- } else {
- if (clockwise) {
- #ifdef MOUSEKEY_ENABLE
- tap_code(KC_MS_WH_DOWN);
- #else
- tap_code(KC_PGDN);
- #endif
- } else {
- #ifdef MOUSEKEY_ENABLE
- tap_code(KC_MS_WH_UP);
- #else
- tap_code(KC_PGUP);
- #endif
- }
- }
- return true;
-}
-
-bool dip_switch_update_user(uint8_t index, bool active) {
- switch (index) {
- case 0: {
-#ifdef AUDIO_ENABLE
- static bool play_sound = false;
-#endif
- if (active) {
-#ifdef AUDIO_ENABLE
- if (play_sound) { PLAY_SONG(plover_song); }
-#endif
- layer_on(_ADJUST);
- } else {
-#ifdef AUDIO_ENABLE
- if (play_sound) { PLAY_SONG(plover_gb_song); }
-#endif
- layer_off(_ADJUST);
- }
-#ifdef AUDIO_ENABLE
- play_sound = true;
-#endif
- break;
- }
- case 1:
- if (active) {
- muse_mode = true;
- } else {
- muse_mode = false;
- }
- }
- return true;
-}
-
-void matrix_scan_user(void) {
-#ifdef AUDIO_ENABLE
- if (muse_mode) {
- if (muse_counter == 0) {
- uint8_t muse_note = muse_offset + SCALE[muse_clock_pulse()];
- if (muse_note != last_muse_note) {
- stop_note(compute_freq_for_midi_note(last_muse_note));
- play_note(compute_freq_for_midi_note(muse_note), 0xF);
- last_muse_note = muse_note;
- }
- }
- muse_counter = (muse_counter + 1) % muse_tempo;
- } else {
- if (muse_counter) {
- stop_all_notes();
- muse_counter = 0;
- }
- }
-#endif
-}
-
-bool music_mask_user(uint16_t keycode) {
- switch (keycode) {
- case RAISE:
- case LOWER:
- return false;
- default:
- return true;
- }
-}
diff --git a/layouts/community/ortho_4x12/mguterl/readme.md b/layouts/community/ortho_4x12/mguterl/readme.md
deleted file mode 100644
index d1328c9aa5..0000000000
--- a/layouts/community/ortho_4x12/mguterl/readme.md
+++ /dev/null
@@ -1,20 +0,0 @@
-# Michael Guterl's Ortho 4x12 Layout
-
-I use this layout for both my Planck and Levinson. I also have a very similar
-[keymap](/keyboards/preonic/keymaps/mguterl) for my Preonic.
-
-Check out my [userspace](/users/mguterl) for the custom keycodes that are used
-in keymap.c.
-
-At a very high level I use 4 layers:
-
-* Qwerty - Letters
-* Util - Vimkeys for navigation and other convenient things
-* Raise - Numbers and F keys
-* Lower - Symbols
-
-```sh
-make planck/rev5:mguterl:flash # For Planck rev5 or earlier and Planck Light
-make planck/rev6:mguterl:flash # For Planck rev6
-make keebio/levinson/rev2:mguterl:dfu # For Levinson rev2
-```
diff --git a/layouts/community/ortho_4x12/mguterl/rules.mk b/layouts/community/ortho_4x12/mguterl/rules.mk
deleted file mode 100644
index dcf16bef39..0000000000
--- a/layouts/community/ortho_4x12/mguterl/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-SRC += muse.c
diff --git a/layouts/community/ortho_4x12/mindsound/config.h b/layouts/community/ortho_4x12/mindsound/config.h
deleted file mode 100644
index e615fe77eb..0000000000
--- a/layouts/community/ortho_4x12/mindsound/config.h
+++ /dev/null
@@ -1,34 +0,0 @@
-#pragma once
-
-#define ADVENTURE_TIME \
- H__NOTE(_F5), \
- Q__NOTE(_F5), \
- H__NOTE(_F5), \
- H__NOTE(_G5), \
- H__NOTE(_E5), \
- H__NOTE(_E5), \
- H__NOTE(_D5), \
- H__NOTE(_C5), \
- HD_NOTE(_C6),
-
-#ifdef AUDIO_ENABLE
- #define STARTUP_SONG SONG(ADVENTURE_TIME)
- #define AUDIO_CLICKY
- #define AUDIO_CLICKY_ON
- #define AUDIO_CLICKY_DELAY_DURATION 0
- #define AUDIO_CLICKY_FREQ_MAX 2500.0f
- #define AUDIO_CLICKY_FREQ_RANDOMNESS 0.3f
- #define AUDIO_CLICKY_FREQ_DEFAULT 880.0f
-#endif
-
-// for some reason the LSvi rev1 disables action tapping...
-#ifdef NO_ACTION_TAPPING
- #undef NO_ACTION_TAPPING
-#endif
-
-#undef BACKLIGHT_LEVELS
-#define BACKLIGHT_LEVELS 15
-
-// let's split configuration:
-#define USE_I2C
-#define EE_HANDS
diff --git a/layouts/community/ortho_4x12/mindsound/flicker.h b/layouts/community/ortho_4x12/mindsound/flicker.h
deleted file mode 100644
index a982f19aed..0000000000
--- a/layouts/community/ortho_4x12/mindsound/flicker.h
+++ /dev/null
@@ -1,5 +0,0 @@
-#pragma once
-
-void flicker_toggle(void);
-void flicker_keydown(void);
-void flicker_keyup(void);
diff --git a/layouts/community/ortho_4x12/mindsound/keymap.c b/layouts/community/ortho_4x12/mindsound/keymap.c
deleted file mode 100644
index dcfdfa01b2..0000000000
--- a/layouts/community/ortho_4x12/mindsound/keymap.c
+++ /dev/null
@@ -1,222 +0,0 @@
-#include QMK_KEYBOARD_H
-
-#ifdef BACKLIGHT_ENABLE
-#include "flicker.h"
-#endif
-
-extern keymap_config_t keymap_config;
-
-// Each layer gets a name for readability, which is then used in the keymap matrix below.
-// The underscores don't mean anything - you can have a layer called STUFF or any other name.
-// Layer names don't all need to be of the same length, obviously, and you can also skip them
-// entirely and just use numbers.
-
-enum planck_layers {
- _QWERTY,
- _LOWER,
- _RAISE,
- _ADJUST
-};
-
-// keycodes custom to this keymap:
-enum planck_keycodes {
- QWERTY = SAFE_RANGE,
- BL_FLICKER
-};
-
-// flicker state:
-#ifdef BACKLIGHT_ENABLE
-bool flicker_enable = true;
-bool flicker_isdown = false;
-const uint8_t flicker_min_levels = 2;
-const uint8_t flicker_max_levels = 7;
-uint8_t flicker_restore_level = 0;
-#endif
-
-#define LOWER MO(_LOWER)
-#define RAISE MO(_RAISE)
-
-// mod tap definitions:
-#define CTRL_ESC MT(MOD_LCTL, KC_ESC)
-#define HYPR_SPC MT(MOD_HYPR, KC_SPC)
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
-/* Qwerty
- * ,-----------------------------------------------------------------------------------.
- * | Tab | Q | W | E | R | T | Y | U | I | O | P | Bksp |
- * |------+------+------+------+------+-------------+------+------+------+------+------|
- * | Ctrl | A | S | D | F | G | H | J | K | L | ; | ' |
- * |------+------+------+------+------+------|------+------+------+------+------+------|
- * | Shift| Z | X | C | V | B | N | M | , | . | / |Enter |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | Esc | Del | GUI | Alt |Lower |HyprSp|Space |Raise | Left | Down | Up |Right |
- * `-----------------------------------------------------------------------------------'
- */
-[_QWERTY] = LAYOUT_ortho_4x12(
- KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,
- CTRL_ESC, 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_ENT ,
- KC_MPLY, KC_DEL, KC_LGUI, KC_LALT, LOWER, HYPR_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT
-),
-
-
-/* Lower
- * ,-----------------------------------------------------------------------------------.
- * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp |
- * |------+------+------+------+------+-------------+------+------+------+------+------|
- * | | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | |
- * |------+------+------+------+------+------|------+------+------+------+------+------|
- * | | F7 | F8 | F9 | F10 | F11 | F12 |ISO ~ |ISO | | Home | End | |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | | | | | | | | Next | Vol- | Vol+ | Play |
- * `-----------------------------------------------------------------------------------'
- */
-[_LOWER] = LAYOUT_ortho_4x12(
- KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC,
- _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE,
- _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, S(KC_NUHS), S(KC_NUBS), KC_HOME, KC_END, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY
-),
-
-
-/* Raise
- * ,-----------------------------------------------------------------------------------.
- * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp |
- * |------+------+------+------+------+-------------+------+------+------+------+------|
- * | | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ |
- * |------+------+------+------+------+------|------+------+------+------+------+------|
- * | | F7 | F8 | F9 | F10 | F11 | F12 |ISO # |ISO / |Pg Up |Pg Dn | |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | | | | | | | | Next | Vol- | Vol+ | Play |
- * `-----------------------------------------------------------------------------------'
- */
-[_RAISE] = LAYOUT_ortho_4x12(
- KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC,
- _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS,
- _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NUHS, KC_NUBS, KC_PGUP, KC_PGDN, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY
-),
-
-
-/* Adjust (Lower + Raise)
- * ,-----------------------------------------------------------------------------------.
- * | | Reset| | | | | | | | | | Del |
- * |------+------+------+------+------+-------------+------+------+------+------+------|
- * | | | |Aud on|Audoff|AGnorm|AGswap| | | | | |
- * |------+------+------+------+------+------|------+------+------+------+------+------|
- * | |Voice-|Voice+|Mus on|Musoff|MIDIon|MIDIof| | | | | |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | | | | | | | |Clicky|ClkDn |ClkUp |ClkRst|
- * `-----------------------------------------------------------------------------------'
- */
-[_ADJUST] = LAYOUT_ortho_4x12(
- _______, QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL,
- _______, _______, _______, AU_ON, AU_OFF, AG_NORM, AG_SWAP, _______, _______, _______, _______, _______,
- _______, AU_PREV, AU_NEXT, MU_ON, MU_OFF, MI_ON, MI_OFF, _______, BL_TOGG, BL_DOWN, BL_UP, BL_FLICKER,
- _______, _______, _______, _______, _______, _______, _______, _______, CK_TOGG, CK_DOWN, CK_UP, CK_RST
-),
-
-}; // end keymaps
-
-// if backlighting is enabled, configure it on boot
-#ifdef BACKLIGHT_ENABLE
-void matrix_init_user(void) {
- // set to max
- backlight_level(BACKLIGHT_LEVELS);
- flicker_restore_level = get_backlight_level();
-
- // if breathing happens to be compiled in, turn it off
-#ifdef BACKLIGHT_BREATHING
- breathing_disable();
-#endif
-}
-#endif
-
-void persistant_default_layer_set(uint16_t default_layer) {
- eeconfig_update_default_layer(default_layer);
- default_layer_set(default_layer);
-}
-
-bool process_record_user(uint16_t keycode, keyrecord_t *record) {
-
- // handle the _ADJUST layer and custom keycodes:
- switch (keycode) {
- case LOWER:
- if (record->event.pressed) {
- layer_on(_LOWER);
- update_tri_layer(_LOWER, _RAISE, _ADJUST);
- } else {
- layer_off(_LOWER);
- update_tri_layer(_LOWER, _RAISE, _ADJUST);
- }
- return false;
- break;
- case RAISE:
- if (record->event.pressed) {
- layer_on(_RAISE);
- update_tri_layer(_LOWER, _RAISE, _ADJUST);
- } else {
- layer_off(_RAISE);
- update_tri_layer(_LOWER, _RAISE, _ADJUST);
- }
- return false;
- break;
-#ifdef BACKLIGHT_ENABLE
- case BL_FLICKER:
- if (record->event.pressed) {
- flicker_toggle();
- }
- return false;
- break;
-#endif
- } // end switch case over custom keycodes
-
-#ifdef BACKLIGHT_ENABLE
- if (flicker_enable) {
- if (record->event.pressed) {
- flicker_keydown();
- } else {
- flicker_keyup();
- }
- }
-#endif
-
- return true;
-}
-
-bool encoder_update_user(uint8_t index, bool clockwise) {
- if (clockwise) {
- register_code(KC_VOLU);
- unregister_code(KC_VOLU);
- } else {
- register_code(KC_VOLD);
- unregister_code(KC_VOLD);
- }
- return true;
-}
-
-// flicker implementation:
-#ifdef BACKLIGHT_ENABLE
-void flicker_toggle(void) {
- flicker_enable = !flicker_enable;
-}
-
-void flicker_keydown(void) {
- // guard condition: only set the level to restore if the flicker is NOT already down
- if (!flicker_isdown) {
- flicker_restore_level = get_backlight_level();
- flicker_isdown = true;
- }
-
- // calculate a random flicker level between min and max
- uint8_t flicker_level = (rand() % (flicker_max_levels - flicker_min_levels)) + flicker_min_levels;
- uint8_t level_to_set = flicker_level <= flicker_restore_level ? flicker_restore_level - flicker_level : 0;
- backlight_level(level_to_set);
-}
-
-void flicker_keyup(void) {
- backlight_level(flicker_restore_level);
- flicker_isdown = false;
-}
-#endif
diff --git a/layouts/community/ortho_4x12/mindsound/readme.md b/layouts/community/ortho_4x12/mindsound/readme.md
deleted file mode 100644
index e9db480494..0000000000
--- a/layouts/community/ortho_4x12/mindsound/readme.md
+++ /dev/null
@@ -1,19 +0,0 @@
-# Josh's 4x12 layout
-
-Notable features:
-
-* Esc is Ctrl on hold
-* Left space is `MOD_HYPER` on hold
-* Backspace is still backspace on `RAISE` and `LOWER`
-* Faux clicky controls are on the arrow keys on the `ADJUST` layer, and the backlight controls are directly above that
-* Backlight breathing is disabled; backlight flickering is implemented instead
-* Colemak and other layouts are thoroughly disabled
-* Rotary encoder controls media volume on base layer
-
-This layout has been tested on:
-
-* Let's Split (rev 2)
-* Let's Split Vitamins Included (rev 1)
-* Planck (rev 4)
-
-It builds for the Planck rev 6 but has not been tested yet.
diff --git a/layouts/community/ortho_4x12/mindsound/rules.mk b/layouts/community/ortho_4x12/mindsound/rules.mk
deleted file mode 100644
index c01a1ddb58..0000000000
--- a/layouts/community/ortho_4x12/mindsound/rules.mk
+++ /dev/null
@@ -1,26 +0,0 @@
-# none of my keyboards need LTO and it screws up I2C on my LSVI:
-EXTRAFLAGS:=$(filter-out -flto,$(EXTRAFLAGS))
-
-# turning off backlighting and audio for the split keebs
-ifneq (,$(findstring lets_split,$(KEYBOARD)))
- BACKLIGHT_ENABLE = no
- BACKLIGHT_BREATHING = no
- AUDIO_ENABLE = no
-endif
-ifneq (,$(findstring vitamins_included,$(KEYBOARD)))
- BACKLIGHT_ENABLE = no
- BACKLIGHT_BREATHING = no
- AUDIO_ENABLE = no
-endif
-
-# both my plancks use audio but only the rev4 has backlighting
-ifneq (,$(findstring planck,$(KEYBOARD)))
- ifneq (,$(findstring rev4,$(KEYBOARD)))
- BACKLIGHT_ENABLE = yes
- BACKLIGHT_BREATHING = no
- else
- BACKLIGHT_ENABLE = no
- BACKLIGHT_BREATHING = no
- endif
- AUDIO_ENABLE = yes
-endif
diff --git a/layouts/community/ortho_4x12/neo2marin/config.h b/layouts/community/ortho_4x12/neo2marin/config.h
deleted file mode 100644
index 1062aa2d83..0000000000
--- a/layouts/community/ortho_4x12/neo2marin/config.h
+++ /dev/null
@@ -1,23 +0,0 @@
-/* Copyright 2018-2022 TheAmarin (@theamarin)
- *
- * 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
-
-// Tune the tapping term for dual-use `y`/`MOD3` key
-#define TAPPING_TERM 150
-
-#define NO_ACTION_ONESHOT
-#define NO_MUSIC_MODE
diff --git a/layouts/community/ortho_4x12/neo2marin/keymap.c b/layouts/community/ortho_4x12/neo2marin/keymap.c
deleted file mode 100644
index d6aa2eec38..0000000000
--- a/layouts/community/ortho_4x12/neo2marin/keymap.c
+++ /dev/null
@@ -1,175 +0,0 @@
-/* Copyright 2018-2022 TheAmarin (@theamarin)
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-
-#include QMK_KEYBOARD_H
-#include "keymap_german.h"
-
-enum custom_keycodes {
- NEO2 = SAFE_RANGE,
- QWERTZ,
-};
-
-enum custom_layers {
- L_NEO, // NEO2
- L_QWZ, // QWERTZ
- L_COD, // NEO2 Layer 3 (Coding layer using right MOD3)
- L_COD_AT, // NEO2 Layer 3 (Coding layer using left MOD3, with @)
- L_MOV, // NEO2 Layer 4 (Movements)
- L_FUN, // Function and media keys
-};
-
-#define MCOD MO(L_COD)
-#define MCODAT MO(L_COD_AT)
-#define MMOV MO(L_MOV)
-#define MFUN MO(L_FUN)
-#define YMCOD LT(L_COD, DE_Y)
-#define AEMCOD MT(DE_HASH, DE_ADIA)
-#define RALTF LM(L_FUN, MOD_RALT)
-
-#define LALTTAB LALT(KC_TAB)
-#define RALTTAB RALT(KC_TAB)
-#define ME_MAXM LCTL(LGUI(KC_UP))
-
-#if defined(SWAP_HANDS_ENABLE)
-#define SWAPH SH_MON
-#else
-#define SWAPH KC_TRNS
-#endif
-
-#define ____ KC_TRNS
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
- [L_NEO] = LAYOUT_ortho_4x12(
- //,-------+-------+-------+-------+-------+-------. ,-------+-------+-------+-------+-------+-------.
- KC_TAB , DE_X , DE_V , DE_L , DE_C , DE_W , DE_K , DE_H , DE_G , DE_F , DE_Q , DE_SS ,
- //|-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------|
- MCODAT , DE_U , DE_I , DE_A , DE_E , DE_O , DE_S , DE_N , DE_R , DE_T , DE_D , YMCOD ,
- //|-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------|
- KC_LSFT,DE_UDIA,DE_ODIA,DE_ADIA, DE_P , DE_Z , DE_B , DE_M ,DE_COMM, DE_DOT, DE_J ,KC_RSFT,
- //|-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------|
- KC_LCTL,KC_LGUI,KC_LALT, SWAPH , MFUN , MMOV , KC_SPACE, SWAPH , MFUN , KC_APP, RALTF ,KC_RCTL
- //`-------+-------+-------+-------+-------+-------' `-------+-------+-------+-------+-------+-------'
- ),
-
- [L_QWZ] = LAYOUT_ortho_4x12(
- //,-------+-------+-------+-------+-------+-------. ,-------+-------+-------+-------+-------+-------.
- KC_TAB , DE_Q , DE_W , DE_E , DE_R , DE_T , DE_Z , DE_U , DE_I , DE_O , DE_P ,DE_UDIA,
- //|-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------|
- KC_CAPS, DE_A , DE_S , DE_D , DE_F , DE_G , DE_H , DE_J , DE_K , DE_L ,DE_ODIA,AEMCOD ,
- //|-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------|
- KC_LSFT, DE_Y , DE_X , DE_C , DE_V , DE_B , DE_N , DE_M ,DE_COMM, DE_DOT, DE_SS ,KC_RSFT,
- //|-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------|
- KC_LCTL,KC_LGUI,KC_LALT, ____ , MFUN , MMOV , KC_SPACE, ____ ,KC_RALT,KC_APP , RALTF ,KC_RCTL
- //`-------+-------+-------+-------+-------+-------' `-------+-------+-------+-------+-------+-------'
- ),
-
- [L_COD] = LAYOUT_ortho_4x12(
- //,-------+-------+-------+-------+-------+-------. ,-------+-------+-------+-------+-------+-------.
- DE_ACUT,DE_EURO,DE_UNDS,DE_LBRC,DE_RBRC,DE_CIRC, DE_EXLM,DE_LABK,DE_RABK,DE_EQL, DE_AMPR, DE_GRV,
- //|-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------|
- ____ ,DE_BSLS,DE_SLSH,DE_LCBR,DE_RCBR,DE_ASTR, DE_QUES,DE_LPRN,DE_RPRN,DE_MINS,DE_COLN, ____ ,
- //|-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------|
- ____ ,DE_HASH, DE_DLR,DE_PIPE,DE_TILD,DE_ACUT, DE_PLUS,DE_PERC,DE_DQUO,DE_QUOT,DE_SCLN, ____ ,
- //|-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------|
- ____ , ____ , ____ , ____ , ____ , ____ , ____ , ____ , ____ , ____ , ____ , ____
- //`-------+-------+-------+-------+-------+-------' `-------+-------+-------+-------+-------+-------'
- ),
-
- [L_COD_AT] = LAYOUT_ortho_4x12(
- //,-------+-------+-------+-------+-------+-------. ,-------+-------+-------+-------+-------+-------.
- DE_ACUT,DE_EURO,DE_UNDS,DE_LBRC,DE_RBRC,DE_CIRC, DE_EXLM,DE_LABK,DE_RABK,DE_EQL, DE_AMPR, DE_GRV,
- //|-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------|
- ____ ,DE_BSLS,DE_SLSH,DE_LCBR,DE_RCBR,DE_ASTR, DE_QUES,DE_LPRN,DE_RPRN,DE_MINS,DE_COLN, DE_AT ,
- //|-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------|
- ____ ,DE_HASH, DE_DLR,DE_PIPE,DE_TILD,DE_ACUT, DE_PLUS,DE_PERC,DE_DQUO,DE_QUOT,DE_SCLN, ____ ,
- //|-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------|
- ____ , ____ , ____ , ____ , ____ , ____ , ____ , ____ , ____ , ____ , ____ , ____
- //`-------+-------+-------+-------+-------+-------' `-------+-------+-------+-------+-------+-------'
- ),
-
- [L_MOV] = LAYOUT_ortho_4x12(
- //,-------+-------+-------+-------+-------+-------. ,-------+-------+-------+-------+-------+-------.
- ____ ,KC_PGUP,KC_BSPC, KC_UP ,KC_DEL, KC_PGDN, ____ , KC_7 , KC_8 , KC_9 ,DE_PLUS,DE_MINS,
- //|-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------|
- ____ ,KC_HOME,KC_LEFT,KC_DOWN,KC_RGHT,KC_END , ____ , KC_4 , KC_5 , KC_6 ,DE_COMM, DE_DOT,
- //|-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------|
- ____ ,KC_ESC ,KC_TAB ,KC_INS, KC_ENTER,____ , KC_0 , KC_1 , KC_2 , KC_3 ,DE_SCLN, ____ ,
- //|-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------|
- ____ , ____ , ____ , ____ , ____ , ____ , ____ , KC_0 , ____ , ____ , ____ , ____
- //`-------+-------+-------+-------+-------+-------' `-------+-------+-------+-------+-------+-------'
- ),
-
- [L_FUN] = LAYOUT_ortho_4x12(
- //,-------+-------+-------+-------+-------+-------. ,-------+-------+-------+-------+-------+-------.
- ____ , AU_ON ,KC_VOLD,ME_MAXM,KC_VOLU, ____ , DM_REC1, KC_F7 , KC_F8 , KC_F9 , KC_F12,KC_PSCR,
- //|-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------|
- ____ ,KC_MSTP,KC_MPRV,KC_MPLY,KC_MNXT, NEO2 , DM_RSTP, KC_F4 , KC_F5 , KC_F6 , KC_F11,KC_BRK ,
- //|-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------|
- ____ , AU_OFF,KC_TAB ,KC_INS ,KC_ENTER,QWERTZ, DM_PLY1, KC_F1 , KC_F2 , KC_F3 , KC_F10, ____ ,
- //|-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------|
- ____ , ____ , ____ , ____ , ____ , ____ , ____ , ____ , ____ , ____ , ____ , ____
- //|-------+-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------+-------|
- ),
-
-};
-
-#if defined(AUDIO_ENABLE)
-float SONG_QWERTZ[][2] = SONG(QWERTY_SOUND);
-float SONG_NEO2[][2] = SONG(DVORAK_SOUND);
-#endif
-
-bool process_record_user(uint16_t keycode, keyrecord_t *record) {
- switch (keycode) {
- case QWERTZ:
- if (record->event.pressed) {
- default_layer_set(1UL<<L_QWZ);
- #if defined(AUDIO_ENABLE)
- PLAY_SONG(SONG_QWERTZ);
- #endif
- }
- return false;
-
- case NEO2:
- if (record->event.pressed) {
- default_layer_set(1UL<<L_NEO);
- #if defined(AUDIO_ENABLE)
- PLAY_SONG(SONG_NEO2);
- #endif
- }
- return false;
- }
- return true;
-}
-
-#if defined(BACKLIGHT_ENABLE)
-layer_state_t layer_state_set_user(layer_state_t state) {
- switch (get_highest_layer(state)) {
- case L_COD:
- case L_COD_AT:
- backlight_set(1);
- break;
- case L_MOV:
- backlight_set(3);
- break;
- default:
- backlight_set(0);
- break;
- }
- return state;
-}
-#endif
diff --git a/layouts/community/ortho_4x12/neo2marin/readme.md b/layouts/community/ortho_4x12/neo2marin/readme.md
deleted file mode 100644
index 40782a9f53..0000000000
--- a/layouts/community/ortho_4x12/neo2marin/readme.md
+++ /dev/null
@@ -1,105 +0,0 @@
-TheAmarin's Neo2-based Layout
-================================
-
-This layout is based on [Neo2](https://www.neo-layout.org/), an ergonomic keyboard layout optimized for coding and German language.
-**neo2marin** tries to squeeze Neo2 onto the Planck keyboard.
-
-Neo2 already uses several layers with multiple modifiers, so we don't have to invent new layers.
-A major difficulty is the missing 'hashtag' key which is usually left to the 'return' key on German QWERTZ keyboards.
-
-Another astonishing thing might be that `return`/`enter` needs a modifier (`MOD4`+`P`).
-
-This layout makes heavy use of the split `space` key, as its left part becomes the quite important `MOD4` modifier.
-
-
-## The Neo2 Main Layer
-
-```
-|----+----+----+----+----+----| |----+----+----+----+----+------|
-|TAB | X | V | L | C | W | | K | H | G | F | Q | SS |
-|----+----+----+----+----+----| |----+----+----+----+----+------|
-|MOD3| U | I | A | E | O | | S | N | R | T | D |Y/MOD3|
-|----+----+----+----+----+----| |----+----+----+----+----+------|
-|LSFT| Ü | Ö | Ä | P | Z | | B | M | , | . | J |RSFT |
-|----+----+----+----+----+----| |----+----+----+----+----+------|
-|LCTL|LGUI|LALT|SWAP|MOD5|MOD4| |SPC |SWAP|MOD5|APP |RALT|RCTL |
-|----+----+----+----+----+----| |----+----+----+----+----+------|
-```
-
-Unfortunately, `y` and `MOD3` (switch to layer 3) need to share a single key.
-This works for me most of the time but I am happy [to learn about your solution](https://github.com/theamarin/qmk_firmware/issues)!
-
-
-## The QWERTZ fallback layer
-
-I nearly never use this layer, so there may be room for optimization.
-
-```
-|----+----+----+----+----+----| |----+----+----+----+----+------|
-|TAB | Q | W | E | R | T | | Z | U | I | O | P | Ü |
-|----+----+----+----+----+----| |----+----+----+----+----+------|
-|CAPS| A | S | D | F | G | | H | J | K | L | Ö |Ä/MOD3|
-|----+----+----+----+----+----| |----+----+----+----+----+------|
-|LSFT| Y | X | C | V | B | | N | M | , | . | SS |RSFT |
-|----+----+----+----+----+----| |----+----+----+----+----+------|
-|LCTL|LGUI|LALT|SWAP|MOD5|MOD4| |SPC |SWAP|RALT|APP |RALT|RCTL |
-|----+----+----+----+----+----| |----+----+----+----+----+------|
-```
-
-The German `ß` has moved right to the `.` key, and we have to reuse `Ä` for `MOD3` again.
-
-
-## MOD3: The Coding Layer
-
-This is definitively the coolest part of Neo2, having most of the coding-related symbols right on your home row!
-Of course, this is the only way to do it on Planck.
-
-```
-|----+----+----+----+----+----| |----+----+----+----+----+----|
-|' | € | _ | [ | ] | ^ | | ! | < | > | = | & | ` |
-|----+----+----+----+----+----| |----+----+----+----+----+----|
-|MOD3, \ | / | { | } | * | | ? | ( | ) | - | : | @ |
-|----+----+----+----+----+----| |----+----+----+----+----+----|
-|LSFT, # | $ | | | ~ | ' | | + | % | " | ' | ; |RSFT|
-|----+----+----+----+----+----| |----+----+----+----+----+----|
-|LCTL|LGUI|LALT|SWAP|MOD5|MOD4| |SPC |SWAP|MOD5|APP |RALT|RCTL|
-|----+----+----+----+----+----| |----+----+----+----+----+----|
-```
-
-Because `y` and `MOD3` have to share a key, we need two variants of the MOD3 layer (as can be seen in the keymap).
-
-
-
-## MOD4: The Movements Layer
-
-```
-|----+----+----+----+----+----| |----+----+----+----+----+----|
-| |PGUP|BSPC| UP |DEL |PGDN| | | 7 | 8 | 9 | + | - |
-|----+----+----+----+----+----| |----+----+----+----+----+----|
-| |HOME|LEFT|DOWN|RGHT|END | | | 4 | 5 | 6 | , | . |
-|----+----+----+----+----+----| |----+----+----+----+----+----|
-| |ESC |TAB |INS |ENTR| | | 0 | 1 | 2 | 3 | ; | |
-|----+----+----+----+----+----| |----+----+----+----+----+----|
-| | | | | | | | | 0 | | | | |
-|----+----+----+----+----+----| |----+----+----+----+----+----|
-```
-
-
-## MOD5: The Fun(ctions) Layer
-
-```
-|----+----+----+----+----+----| |----+----+----+----+----+----|
-| |AUD1|VOLD|MAXM|VOLU| | |M1R | F7 | F8 | F9 |F12 |PSCR|
-|----+----+----+----+----+----| |----+----+----+----+----+----|
-| |MSTP|MPRV|MPLY|MNXT|NEO2| |M1S | F4 | F5 | F6 |F11 |BRK |
-|----+----+----+----+----+----| |----+----+----+----+----+----|
-| |AUD0|TAB |INS |ENTR|QWERTZ |M1P | F1 | F2 | F3 |F10 | |
-|----+----+----+----+----+----| |----+----+----+----+----+----|
-| | | | | | | | | | | | | |
-|----+----+----+----+----+----| |----+----+----+----+----+----|
-```
-
-
-Have fun!
-
-[Your feedback is appreciated](https://github.com/theamarin/qmk_firmware/issues)!
diff --git a/layouts/community/ortho_4x12/neo2marin/rules.mk b/layouts/community/ortho_4x12/neo2marin/rules.mk
deleted file mode 100644
index 7c91bc8c2a..0000000000
--- a/layouts/community/ortho_4x12/neo2marin/rules.mk
+++ /dev/null
@@ -1,6 +0,0 @@
-DYNAMIC_MACRO_ENABLE = yes
-
-ifeq ($(strip $(KEYBOARD)), planck/rev5)
- AUDIO_ENABLE = yes
- BACKLIGHT_ENABLE = yes
-endif
diff --git a/layouts/community/ortho_4x12/peej/keymap.c b/layouts/community/ortho_4x12/peej/keymap.c
deleted file mode 100644
index 1e2874ac99..0000000000
--- a/layouts/community/ortho_4x12/peej/keymap.c
+++ /dev/null
@@ -1,73 +0,0 @@
-/* Copyright 2020 Paul James
- *
- * 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/>.
- */
-
-#define USE_2U_SPACE 1
-
-#include QMK_KEYBOARD_H
-#include "peej.h"
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
-[_BASE] = LAYOUT_PEEJ(
- BASE_ROW_2,
- BASE_ROW_3,
- BASE_ROW_4,
- BASE_ROW_5
-),
-
-[_SYMBOL] = LAYOUT_PEEJ(
- SYMBOL_ROW_2,
- SYMBOL_ROW_3,
- SYMBOL_ROW_4,
- SYMBOL_ROW_5
-),
-
-[_FUNCTION] = LAYOUT_PEEJ(
- FUNCTION_ROW_2,
- FUNCTION_ROW_3,
- FUNCTION_ROW_4,
- FUNCTION_ROW_5
-),
-
-[_ADJUST] = LAYOUT_PEEJ(
- ADJUST_ROW_2,
- ADJUST_ROW_3,
- ADJUST_ROW_4,
- ADJUST_ROW_5
-)
-
-};
-
-layer_state_t layer_state_set_user(layer_state_t state) {
-#if defined(LED_RED) && defined(LED_GREEN)
- writePinLow(LED_RED);
- writePinLow(LED_GREEN);
-
- switch (get_highest_layer(state)) {
- case _FUNCTION:
- writePinHigh(LED_RED);
- break;
- case _SYMBOL:
- writePinHigh(LED_GREEN);
- break;
- case _ADJUST:
- writePinHigh(LED_RED);
- writePinHigh(LED_GREEN);
- break;
- }
-#endif
- return state;
-}
diff --git a/layouts/community/ortho_4x12/readme.md b/layouts/community/ortho_4x12/readme.md
index 6963727c6e..5273e296d8 100644
--- a/layouts/community/ortho_4x12/readme.md
+++ b/layouts/community/ortho_4x12/readme.md
@@ -1,3 +1,3 @@
# ortho_4x12
- LAYOUT_ortho_4x12 \ No newline at end of file
+ LAYOUT_ortho_4x12
diff --git a/layouts/community/ortho_4x12/rs/config.h b/layouts/community/ortho_4x12/rs/config.h
deleted file mode 100644
index 6f70f09bee..0000000000
--- a/layouts/community/ortho_4x12/rs/config.h
+++ /dev/null
@@ -1 +0,0 @@
-#pragma once
diff --git a/layouts/community/ortho_4x12/rs/keymap.c b/layouts/community/ortho_4x12/rs/keymap.c
deleted file mode 100644
index 7319df68e5..0000000000
--- a/layouts/community/ortho_4x12/rs/keymap.c
+++ /dev/null
@@ -1,52 +0,0 @@
-#include QMK_KEYBOARD_H
-#include "rs.h"
-
-// Used to create a keymap using only KC_ prefixed keys
-#define LAYOUT_kc( \
- k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, \
- k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, \
- k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, \
- k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b \
- ) \
- LAYOUT_ortho_4x12( \
- KC_##k00, KC_##k01, KC_##k02, KC_##k03, KC_##k04, KC_##k05, KC_##k06, KC_##k07, KC_##k08, KC_##k09, KC_##k0a, KC_##k0b, \
- KC_##k10, KC_##k11, KC_##k12, KC_##k13, KC_##k14, KC_##k15, KC_##k16, KC_##k17, KC_##k18, KC_##k19, KC_##k1a, KC_##k1b, \
- KC_##k20, KC_##k21, KC_##k22, KC_##k23, KC_##k24, KC_##k25, KC_##k26, KC_##k27, KC_##k28, KC_##k29, KC_##k2a, KC_##k2b, \
- KC_##k30, KC_##k31, KC_##k32, KC_##k33, KC_##k34, KC_##k35, KC_##k36, KC_##k37, KC_##k38, KC_##k39, KC_##k3a, KC_##k3b \
- )
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [_QWERTY] = LAYOUT_kc(
- // ,-----------------------------------------------------------------------------------.
- TAB , Q , W , E , R , T , Y , U , I , O , P , EQL ,
- // |------+------+------+------+------+------+------+------+------+------+------+------|
- ESCC , A , S , D , F , G , H , J , K , L , SCLN , QUOT ,
- // |------+------+------+------+------+------+------+------+------+------+------+------|
- LSFT , Z , X , C , V , B , N , M , COMM , DOT , SLSH , ENTS ,
- // |------+------+------+------+------+------+------+------+------+------+------+------|
- TRNS , TRNS , LCTL , LALT , LGUI , SPC , SPC , BCOD , FN , TRNS , LEFT , RGHT
- // `-----------------------------------------------------------------------------------'
- ),
- [_CODE] = LAYOUT_kc(
- // ,-----------------------------------------------------------------------------------.
- GRV , EXLM , AT , HASH , DLR , PERC , CIRC , LPLT , ASTR , RPGT , NEQL , TRNS ,
- // |------+------+------+------+------+------+------+------+------+------+------+------|
- TRNS , 1 , 2 , 3 , 4 , 5 , MINS , LBRC , UP , RBRC , TRNS , BSLS ,
- // |------+------+------+------+------+------+------+------+------+------+------+------|
- TRNS , 6 , 7 , 8 , 9 , 0 , AMPR , LEFT , DOWN , RGHT , TRNS , PIPE ,
- // |------+------+------+------+------+------+------+------+------+------+------+------|
- TRNS , TRNS , TRNS , TRNS , TRNS , DOT , TRNS , TRNS , TRNS , TRNS , TRNS , TRNS
- // `-----------------------------------------------------------------------------------'
- ),
- [_FN] = LAYOUT_kc(
- // ,-----------------------------------------------------------------------------------.
- TRNS , F1 , F2 , F3 , F4 , F5 , F6 , F7 , F8 , F9 , F10 , F11 ,
- // |------+------+------+------+------+------+------+------+------+------+------+------|
- BLTG , BLUP , TRNS , TRNS , TRNS , BRMU , VOLU , TRNS , PGUP , TRNS , TRNS , TRNS ,
- // |------+------+------+------+------+------+------+------+------+------+------+------|
- BLTG , BLDN , TRNS , TRNS , RST , BRMD , VOLD , CTRA , PGDN , CTRE , TRNS , TRNS ,
- // |------+------+------+------+------+------+------+------+------+------+------+------|
- TRNS , TRNS , TRNS , TRNS , TRNS , TRNS , MUTE , TRNS , TRNS , TRNS , TRNS , TRNS
- // `-----------------------------------------------------------------------------------'
- ),
-};
diff --git a/layouts/community/ortho_4x12/rs/readme.md b/layouts/community/ortho_4x12/rs/readme.md
deleted file mode 100644
index d23ab66877..0000000000
--- a/layouts/community/ortho_4x12/rs/readme.md
+++ /dev/null
@@ -1 +0,0 @@
-See [rs readme](../../../../users/rs/readme.md). \ No newline at end of file
diff --git a/layouts/community/ortho_4x12/symbolic/README.md b/layouts/community/ortho_4x12/symbolic/README.md
deleted file mode 100644
index 2c69d5160e..0000000000
--- a/layouts/community/ortho_4x12/symbolic/README.md
+++ /dev/null
@@ -1,75 +0,0 @@
-# Symbolic ortho 4x12 layout
-
-## Features
-
-### QWERTY based
-
-![QWERTY layout](https://gist.githubusercontent.com/leico/5bf4d9ff94f2068c5333739f7f1f88b4/raw/2af7fed6f282b6ac278e79433d15887f6b91ba3a/QWERTY.png)
-
-* Default keymap
-* QWERTY layout
-* Hold and tap
- * `Left Ctrl` and `Tab`
-* Symmetric Modifiers
- * `Shift`
- * `Raise Layer`
- * `Lower Layer`
- * `GUI`
-
-### symbol charactor layer
-
-![Raise layout](https://gist.githubusercontent.com/leico/5bf4d9ff94f2068c5333739f7f1f88b4/raw/2af7fed6f282b6ac278e79433d15887f6b91ba3a/Raise.png)
-
-* Raise Layer
-* assigned symbolic(punctuation) characters
-* as could as possible, related neighbor keys
- * brackets
- * quotes
- * operators
- * slashes
-* related default layer keys
- * colons
- * exclamation and question
-* thus above features, easy learn keymapping
-* transparent all modifiers
-
-### numbers and allows layer
-
-![Lower layout](https://gist.githubusercontent.com/leico/5bf4d9ff94f2068c5333739f7f1f88b4/raw/2af7fed6f282b6ac278e79433d15887f6b91ba3a/Lower.png)
-
-* Lower Layer
-* entrust vim style arrows
-* also numkeys
-* additional, computer volume keys
-* transparent all modifiers
-* **changed 2018/09/04**
- * assign keys
- * Home
- * Page Down
- * Page Up
- * End
- * Print Screen
-
-### Numpads and F key layer
-
-![Neutral layout](https://gist.githubusercontent.com/leico/5bf4d9ff94f2068c5333739f7f1f88b4/raw/2af7fed6f282b6ac278e79433d15887f6b91ba3a/Neutral.png)
-
-* visibled when Raise and Lower layer visibled
-* F keys assigned left hand side
-* Numpads assigned right hand side
- * for that reason, override `RGUI` key
-* transparent mostly modifiers
-* visibled `Reset` key on both hands
-
-
-### Goals
-
-* release a right little finger from symbols
-* entrust more symbols for a left hand
-* simple, minimal, easy learn
-* as soon as possible, don't disable any shortcuts
-
-### suggestions or find issues
-
-[post issues for my fork](https://github.com/leico/qmk_firmware/issues)
-
diff --git a/layouts/community/ortho_4x12/symbolic/config.h b/layouts/community/ortho_4x12/symbolic/config.h
deleted file mode 100644
index db74d0fdfa..0000000000
--- a/layouts/community/ortho_4x12/symbolic/config.h
+++ /dev/null
@@ -1,35 +0,0 @@
-/*
-This is the c configuration file for the keymap
-
-Copyright 2012 Jun Wako <wakojun@gmail.com>
-Copyright 2015 Jack Humbert
-
-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
-
-/* Select hand configuration */
-
-//#define MASTER_LEFT
-// #define MASTER_RIGHT
-#define EE_HANDS
-
-#ifdef AUDIO_ENABLE
- #define DEFAULT_LAYER_SONGS { SONG(QWERTY_SOUND), \
- SONG(DVORAK_SOUND), \
- SONG(COLEMAK_SOUND) \
- }
-#endif
-
diff --git a/layouts/community/ortho_4x12/symbolic/keymap.c b/layouts/community/ortho_4x12/symbolic/keymap.c
deleted file mode 100644
index 7418324f01..0000000000
--- a/layouts/community/ortho_4x12/symbolic/keymap.c
+++ /dev/null
@@ -1,229 +0,0 @@
-#include QMK_KEYBOARD_H
-
-extern keymap_config_t keymap_config;
-
-// Each layer gets a name for readability, which is then used in the keymap matrix below.
-// The underscores don't mean anything - you can have a layer called STUFF or any other name.
-// Layer names don't all need to be of the same length, obviously, and you can also skip them
-// entirely and just use numbers.
-#define _QWERTY 0
-#define _LOWER 1
-#define _RAISE 2
-#define _NEUTRAL 3
-
-enum custom_keycodes {
- QWERTY = SAFE_RANGE,
- L_LOWER,
- R_LOWER,
- L_RAISE,
- R_RAISE
-};
-
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
-/* Qwerty
- * ,------------------------------------------------------------------------------------.
- * | | | | | | || | | | | | |
- * | Esc | Q | W | E | R | T || Y | U | I | O | P | Bksp |
- * |------+------+------+------+------+------++------+------+------+------+------+------|
- * |LCTL_T| | | | | || | | | | | |
- * | Tab | A | S | D | F | G || H | J | K | L | ; |Enter |
- * |------+------+------+------+------+------++------+------+------+------+------+------|
- * | | | | | | || | | | | | |
- * |Shift | Z | X | C | V | B || N | M | , | . | ! |Shift |
- * |------+------+------+------+------+------++------+------+------+------+------+------|
- * | | | | | | || | | | | | |
- * |LRaise| Alt | GUI | |LLower|Space ||Space |RLower| | GUI | Del |RRaise|
- * `------------------------------------------------------------------------------------'
- */
-[_QWERTY] = LAYOUT_ortho_4x12(
- KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,
- LCTL_T(KC_TAB), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_ENT,
- KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_EXLM, KC_RSFT,
- L_RAISE, KC_LALT, KC_LGUI, XXXXXXX, L_LOWER, KC_SPC, KC_SPC, R_LOWER, XXXXXXX, KC_RGUI, KC_DEL, R_RAISE
-),
-
-/* Raise
- * ,------------------------------------------------------------------------------------.
- * | | | | | | || | | | | | |
- * | Esc | | & | { | } | % || \ | [ | ] | # | | Bksp |
- * |------+------+------+------+------+------++------+------+------+------+------+------|
- * |LCTL_T| | | | | || | | | | | |
- * | Tab | ~ | | | ( | ) | * || / | < | > | ' | : |Enter |
- * |------+------+------+------+------+------++------+------+------+------+------+------|
- * | | | | | | || | | | | | |
- * |Shift | ` | ^ | @ | $ | + || - | = | _ | " | ? |Shift |
- * |------+------+------+------+------+------++------+------+------+------+------+------|
- * | | | | | | || | | | | | |
- * |LRaise| Alt | GUI | |LLower|Space ||Space |RLower| | GUI | Del |RRaise|
- * `------------------------------------------------------------------------------------'
- */
-[_RAISE] = LAYOUT_ortho_4x12(
- _______, XXXXXXX, KC_AMPR, KC_LCBR, KC_RCBR, KC_PERC, KC_BSLS, KC_LBRC, KC_RBRC, KC_HASH, XXXXXXX, _______,
- _______, KC_TILD, KC_PIPE, KC_LPRN, KC_RPRN, KC_ASTR, KC_SLSH, KC_LABK, KC_RABK, KC_DQUO, KC_COLN, _______,
- _______, KC_GRV, KC_CIRC, KC_AT, KC_DLR, KC_PLUS, KC_MINS, KC_EQL, KC_UNDS, KC_QUOT, KC_QUES, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
-),
-/* Lower
- * ,------------------------------------------------------------------------------------.
- * | | | | | | || | | | | | |
- * | Esc | 1 | 2 | 3 | 4 | 5 || 6 | 7 | 8 | 9 | 0 | Bksp |
- * |------+------+------+------+------+------++------+------+------+------+------+------|
- * |LCTL_T| | | | | || | | | | | |
- * | Tab | |VolDn |VolUp | Mute | || Left | Down | Up |Right | |Enter |
- * |------+------+------+------+------+------++------+------+------+------+------+------|
- * | | | | | | || | | | | | |
- * |Shift | | | | | PrSc || Home | PgDn | PgUp | End | |Shift |
- * |------+------+------+------+------+------++------+------+------+------+------+------|
- * | | | | | | || | | | | | |
- * |LRaise| Alt | GUI | |LLower|Space ||Space |RLower| | GUI | Del |RRaise|
- * `------------------------------------------------------------------------------------'
- */
-[_LOWER] = LAYOUT_ortho_4x12(
- _______, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, _______,
- _______, XXXXXXX, KC_VOLD, KC_VOLU, KC_MUTE, XXXXXXX, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, XXXXXXX, _______,
- _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_PSCR, KC_HOME, KC_PGDN, KC_PGUP, KC_END, XXXXXXX, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
-),
-
-/* Neutral
- * ,------------------------------------------------------------------------------------.
- * | | | | | | || | | | | | |
- * | Esc | F1 | F2 | F3 | F4 | || + | - | 1 | 2 | 3 | Bksp |
- * |------+------+------+------+------+------++------+------+------+------+------+------|
- * |LCTL_T| | | | | || | | | | | |
- * | Tab | F5 | F6 | F7 | F8 | || * | / | 4 | 5 | 6 |Enter |
- * |------+------+------+------+------+------++------+------+------+------+------+------|
- * | | | | | | || | | | | | |
- * |Shift | F9 | F10 | F11 | F12 | || . | , | 7 | 8 | 9 |Shift |
- * |------+------+------+------+------+------++------+------+------+------+------+------|
- * | | | | | | || | | | | | |
- * |LRaise| Alt | GUI |Reset |LLower|Space ||Space |RLower|Reset | 0 | Del |RRaise|
- * `------------------------------------------------------------------------------------'
- */
-[_NEUTRAL] = LAYOUT_ortho_4x12(
- _______, KC_F1, KC_F2, KC_F3, KC_F4, XXXXXXX, KC_PPLS, KC_PMNS, KC_P1, KC_P2, KC_P3, _______,
- _______, KC_F5, KC_F6, KC_F7, KC_F8, XXXXXXX, KC_PAST, KC_PSLS, KC_P4, KC_P5, KC_P6, _______,
- _______, KC_F9, KC_F10, KC_F11, KC_F12, XXXXXXX, KC_PDOT, KC_COMM, KC_P7, KC_P8, KC_P9, _______,
- _______, _______, _______, QK_BOOT, _______, _______, _______, _______, QK_BOOT, KC_P0, _______, _______
-)
-
-
-};
-
-
-
-/**** Raise Layer functions *****/
-
- /* RaisePressed function */
- /* called RaiseSwitch */
-void RaisePressed ( keyevent_t *event, bool brother_state ){
-
- if( brother_state ) { return; }
-
- layer_on( _RAISE );
- update_tri_layer( _LOWER, _RAISE, _NEUTRAL );
- return;
-
-}
-
-
- /* RaiseReleased function */
- /* called RaiseSwitch */
-void RaiseReleased ( bool brother_state ){
-
- if( brother_state ) { return; }
-
- layer_off( _RAISE );
- update_tri_layer( _LOWER, _RAISE, _NEUTRAL );
- return;
-}
-
-
- /* RaiseSwitch function */
- /* called process_record_user */
-bool RaiseSwitch ( keyrecord_t *record, bool *key_state, bool brother ){
-
- if( record -> event.pressed ) {
- *key_state = true;
- RaisePressed( &(record -> event), brother );
- } else {
- *key_state = false;
- RaiseReleased( brother );
- }
- return false;
-
-}
-
-
-
-
-
-
-/**** Lower layer functions ****/
-
- /* LowerPressed function */
- /* call from LowerSwitch */
-void LowerPressed ( bool brother_state ){
-
- if( brother_state ) { return; }
-
- layer_on( _LOWER );
- update_tri_layer(_LOWER, _RAISE, _NEUTRAL );
- return;
-}
-
- /* LowerReleased function */
- /* call from LowerSwitch */
-void LowerReleased ( bool brother_state ){
-
- if( brother_state ) { return; }
-
- layer_off( _LOWER );
- update_tri_layer(_LOWER, _RAISE, _NEUTRAL );
- return ;
-}
-
- /* LowerSwitch function */
- /* call from process_record_user */
-bool LowerSwitch ( keyrecord_t *record, bool *key_state, bool brother ){
- if ( record -> event.pressed ) {
- *key_state = true;
- LowerPressed( brother );
- } else {
- *key_state = false;
- LowerReleased( brother );
- }
-
- return false;
-
-}
-
-
-
-/**** process_record_user ****/
-bool process_record_user(uint16_t keycode, keyrecord_t *record) {
-
- static bool l_lower = false;
- static bool r_lower = false;
-
- static bool l_raise = false;
- static bool r_raise = false;
-
- switch (keycode) {
-
-
- case L_LOWER : return LowerSwitch( record, &l_lower, r_lower ); break;
- case R_LOWER : return LowerSwitch( record, &r_lower, l_lower ); break;
- case L_RAISE : return RaiseSwitch( record, &l_raise, r_raise ); break;
- case R_RAISE : return RaiseSwitch( record, &r_raise, l_raise ); break;
-
- default: break;
-
- }
- return true;
-}
-
-
-
diff --git a/layouts/community/ortho_4x12/talljoe/config.h b/layouts/community/ortho_4x12/talljoe/config.h
deleted file mode 100644
index 34c24b8624..0000000000
--- a/layouts/community/ortho_4x12/talljoe/config.h
+++ /dev/null
@@ -1,33 +0,0 @@
-/* Copyright 2020 Joseph Wasson
- *
- * 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 SPACE_COUNT 3
-
-#define TEMPLATE( \
- K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K2D, \
- K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \
- K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, \
- K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, \
- K40, K41, K42, K44, K45, K46, K48, K49, K4B, K4C \
-) \
-LAYOUT_ortho_4x12( \
- K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1D, \
- K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, \
- K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, \
- K40, K41, K0D, K42, K44, K45, K45, K46, K48, K49, K4B, K4C \
-)
diff --git a/layouts/community/ortho_4x12/talljoe/keymap.c b/layouts/community/ortho_4x12/talljoe/keymap.c
deleted file mode 100644
index 7812add812..0000000000
--- a/layouts/community/ortho_4x12/talljoe/keymap.c
+++ /dev/null
@@ -1 +0,0 @@
-// This space intentionally left blank
diff --git a/layouts/community/ortho_4x12/trguhq/config.h b/layouts/community/ortho_4x12/trguhq/config.h
deleted file mode 100644
index 476141e232..0000000000
--- a/layouts/community/ortho_4x12/trguhq/config.h
+++ /dev/null
@@ -1,27 +0,0 @@
-/* Ortho 4x12 Unicode Rune Layout
- *
- * Copyright 2021 trguhq
- *
- * 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 UNICODE_SELECTED_MODES UC_MAC, UC_LNX, UC_WIN, UC_WINC
-
-// #define UNICODE_SONG_MAC AUDIO_ON_SOUND
-// #define UNICODE_SONG_LNX UNICODE_LINUX
-// #define UNICODE_SONG_BSD TERMINAL_SOUND
-// #define UNICODE_SONG_WIN UNICODE_WINDOWS
-// #define UNICODE_SONG_WINC UNICODE_WINDOWS
diff --git a/layouts/community/ortho_4x12/trguhq/keymap.c b/layouts/community/ortho_4x12/trguhq/keymap.c
deleted file mode 100644
index 536cea0a5c..0000000000
--- a/layouts/community/ortho_4x12/trguhq/keymap.c
+++ /dev/null
@@ -1,29 +0,0 @@
-/* Ortho 4x12 Unicode Rune Layout
- *
- * Copyright 2021 trguhq
- *
- * 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_ortho_4x12(KC_ESC, KC_GRV, UC(0x16A0), UC(0x16A2), UC(0x16A6), UC(0x16A8), UC(0x16B1), UC(0x16B2), UC(0x16B7), UC(0x16B9), KC_QUOT, KC_BSPC, KC_TAB, KC_SCLN, UC(0x16BA), UC(0x16BE), UC(0x16C1), UC(0x16C3), UC(0x16C7), UC(0x16C8), UC(0x16C9), UC(0x16CA), KC_COMM, KC_DOT, KC_LSFT, KC_BSLS, UC(0x16CF), UC(0x16D2), UC(0x16D6), UC(0x16D7), UC(0x16DA), UC(0x16DC), UC(0x16DF), UC(0x16DE), KC_UP, KC_ENT, BL_STEP, KC_LCTL, KC_LALT, KC_LGUI, MO(3), KC_SPC, KC_SPC, MO(4), KC_SLSH, KC_LEFT, KC_DOWN, KC_RGHT),
- [1] = LAYOUT_ortho_4x12(KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC, KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT, BL_STEP, KC_LCTL, KC_LALT, KC_LGUI, MO(3), KC_SPC, KC_SPC, MO(4), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT),
- [2] = LAYOUT_ortho_4x12(KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSPC, KC_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH, KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_ENT, BL_STEP, KC_LCTL, KC_LALT, KC_LGUI, MO(3), KC_SPC, KC_SPC, MO(4), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT),
- [3] = LAYOUT_ortho_4x12(KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC, KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, KC_TRNS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, LSFT(KC_NUHS), LSFT(KC_NUBS), KC_HOME, KC_END, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, MO(6), KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY),
- [4] = LAYOUT_ortho_4x12(KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, KC_TRNS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NUHS, KC_NUBS, KC_PGUP, KC_PGDN, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, MO(6), KC_TRNS, KC_TRNS, KC_TRNS, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY),
- [5] = LAYOUT_ortho_4x12(KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_NO, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_NO, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, TO(0), KC_NO, KC_NO, KC_C, KC_V, KC_NO, KC_NO, KC_N, KC_M, KC_NO, KC_NO, KC_NO),
- [6] = LAYOUT_ortho_4x12(UC_MAC, QK_BOOT, DB_TOGG, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_DEL, UC_LINX, KC_TRNS, MU_NEXT, AU_ON, AU_OFF, AG_NORM, AG_SWAP, DF(0), DF(1), DF(2), TO(5), KC_TRNS, UC_WIN, AU_PREV, AU_NEXT, MU_ON, MU_OFF, MI_ON, MI_OFF, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, UC_WINC, 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/layouts/community/ortho_4x12/trguhq/readme.md b/layouts/community/ortho_4x12/trguhq/readme.md
deleted file mode 100644
index e0f5025a09..0000000000
--- a/layouts/community/ortho_4x12/trguhq/readme.md
+++ /dev/null
@@ -1,36 +0,0 @@
-# Planck Ortho 4x12 Unicode Futhark Rune layout
-
-![Planck Futhark Layout Image](https://i.imgur.com/ocILTZ3.png)
-
-* Layout Maintainer: [trguhq](https://github.com/trguhq)
-
-Types unicode runes on ortholinear QMK keyboard. Legacy Latin letter
-layers left for user but have been marked red as irrelevant.
-
-## OS specific
-
-With both modifiers (either side of spacebar) selected, layer 6
-lets you select which OS mode to use with the first vertical column
-of keys:
-
-1. macOS
-2. Linux
-3. Windows Unicode
-4. Windows WinCompose
-
-See [QMK docs](https://github.com/qmk/qmk_firmware/blob/master/docs/feature_unicode.md) for details.
-
-### macOS
-
-On macOS this will have to be enabled in keyboard settings as a
-Unicode Hex Input Keyboard Source and selected under the
-keyboard layouts icon on the menu bar.
-
-### Linux
-
-Uses IBus or GTK.
-
-### Windows
-
-Either create the needed EnableHexNumpad registry key for Windows Unicode
-entry, or (recommended) install WinCompose.
diff --git a/layouts/community/ortho_4x12/trguhq/rules.mk b/layouts/community/ortho_4x12/trguhq/rules.mk
deleted file mode 100644
index 039f07c8e3..0000000000
--- a/layouts/community/ortho_4x12/trguhq/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-UNICODE_ENABLE = yes
diff --git a/layouts/community/ortho_4x12/trguhq/trguhq.json b/layouts/community/ortho_4x12/trguhq/trguhq.json
deleted file mode 100644
index 06f3e9660e..0000000000
--- a/layouts/community/ortho_4x12/trguhq/trguhq.json
+++ /dev/null
@@ -1,361 +0,0 @@
-{
- "version": 1,
- "notes": "",
- "documentation": "\"This file is a QMK Configurator export. You can import this at <https://config.qmk.fm>. It can also be used directly with QMK's source code.\n\nTo setup your QMK environment check out the tutorial: <https://docs.qmk.fm/#/newbs>\n\nYou can convert this file to a keymap.c using this command: `qmk json2c {keymap}`\n\nYou can compile this keymap using this command: `qmk compile {keymap}`\"\n",
- "keyboard": "planck/rev6_drop",
- "keymap": "trguhq",
- "layout": "LAYOUT_ortho_4x12",
- "layers": [
- [
- "KC_ESC",
- "KC_GRV",
- "ANY(UC(0x16A0))",
- "ANY(UC(0x16A2))",
- "ANY(UC(0x16A6))",
- "ANY(UC(0x16A8))",
- "ANY(UC(0x16B1))",
- "ANY(UC(0x16B2))",
- "ANY(UC(0x16B7))",
- "ANY(UC(0x16B9))",
- "KC_QUOT",
- "KC_BSPC",
- "KC_TAB",
- "KC_SCLN",
- "ANY(UC(0x16BA))",
- "ANY(UC(0x16BE))",
- "ANY(UC(0x16C1))",
- "ANY(UC(0x16C3))",
- "ANY(UC(0x16C7))",
- "ANY(UC(0x16C8))",
- "ANY(UC(0x16C9))",
- "ANY(UC(0x16CA))",
- "KC_COMM",
- "KC_DOT",
- "KC_LSFT",
- "KC_BSLS",
- "ANY(UC(0x16CF))",
- "ANY(UC(0x16D2))",
- "ANY(UC(0x16D6))",
- "ANY(UC(0x16D7))",
- "ANY(UC(0x16DA))",
- "ANY(UC(0x16DC))",
- "ANY(UC(0x16DF))",
- "ANY(UC(0x16DE))",
- "KC_UP",
- "KC_ENT",
- "BL_STEP",
- "KC_LCTL",
- "KC_LALT",
- "KC_LGUI",
- "MO(3)",
- "KC_SPC",
- "KC_SPC",
- "MO(4)",
- "KC_SLSH",
- "KC_LEFT",
- "KC_DOWN",
- "KC_RGHT"
- ],
- [
- "KC_TAB",
- "KC_Q",
- "KC_W",
- "KC_F",
- "KC_P",
- "KC_G",
- "KC_J",
- "KC_L",
- "KC_U",
- "KC_Y",
- "KC_SCLN",
- "KC_BSPC",
- "KC_ESC",
- "KC_A",
- "KC_R",
- "KC_S",
- "KC_T",
- "KC_D",
- "KC_H",
- "KC_N",
- "KC_E",
- "KC_I",
- "KC_O",
- "KC_QUOT",
- "KC_LSFT",
- "KC_Z",
- "KC_X",
- "KC_C",
- "KC_V",
- "KC_B",
- "KC_K",
- "KC_M",
- "KC_COMM",
- "KC_DOT",
- "KC_SLSH",
- "KC_ENT",
- "BL_STEP",
- "KC_LCTL",
- "KC_LALT",
- "KC_LGUI",
- "MO(3)",
- "KC_SPC",
- "KC_SPC",
- "MO(4)",
- "KC_LEFT",
- "KC_DOWN",
- "KC_UP",
- "KC_RGHT"
- ],
- [
- "KC_TAB",
- "KC_QUOT",
- "KC_COMM",
- "KC_DOT",
- "KC_P",
- "KC_Y",
- "KC_F",
- "KC_G",
- "KC_C",
- "KC_R",
- "KC_L",
- "KC_BSPC",
- "KC_ESC",
- "KC_A",
- "KC_O",
- "KC_E",
- "KC_U",
- "KC_I",
- "KC_D",
- "KC_H",
- "KC_T",
- "KC_N",
- "KC_S",
- "KC_SLSH",
- "KC_LSFT",
- "KC_SCLN",
- "KC_Q",
- "KC_J",
- "KC_K",
- "KC_X",
- "KC_B",
- "KC_M",
- "KC_W",
- "KC_V",
- "KC_Z",
- "KC_ENT",
- "BL_STEP",
- "KC_LCTL",
- "KC_LALT",
- "KC_LGUI",
- "MO(3)",
- "KC_SPC",
- "KC_SPC",
- "MO(4)",
- "KC_LEFT",
- "KC_DOWN",
- "KC_UP",
- "KC_RGHT"
- ],
- [
- "KC_TILD",
- "KC_EXLM",
- "KC_AT",
- "KC_HASH",
- "KC_DLR",
- "KC_PERC",
- "KC_CIRC",
- "KC_AMPR",
- "KC_ASTR",
- "KC_LPRN",
- "KC_RPRN",
- "KC_BSPC",
- "KC_DEL",
- "KC_F1",
- "KC_F2",
- "KC_F3",
- "KC_F4",
- "KC_F5",
- "KC_F6",
- "KC_UNDS",
- "KC_PLUS",
- "KC_LCBR",
- "KC_RCBR",
- "KC_PIPE",
- "KC_TRNS",
- "KC_F7",
- "KC_F8",
- "KC_F9",
- "KC_F10",
- "KC_F11",
- "KC_F12",
- "LSFT(KC_NUHS)",
- "LSFT(KC_NUBS)",
- "KC_HOME",
- "KC_END",
- "KC_TRNS",
- "KC_TRNS",
- "KC_TRNS",
- "KC_TRNS",
- "KC_TRNS",
- "KC_TRNS",
- "KC_TRNS",
- "KC_TRNS",
- "MO(6)",
- "KC_MNXT",
- "KC_VOLD",
- "KC_VOLU",
- "KC_MPLY"
- ],
- [
- "KC_GRV",
- "KC_1",
- "KC_2",
- "KC_3",
- "KC_4",
- "KC_5",
- "KC_6",
- "KC_7",
- "KC_8",
- "KC_9",
- "KC_0",
- "KC_BSPC",
- "KC_DEL",
- "KC_F1",
- "KC_F2",
- "KC_F3",
- "KC_F4",
- "KC_F5",
- "KC_F6",
- "KC_MINS",
- "KC_EQL",
- "KC_LBRC",
- "KC_RBRC",
- "KC_BSLS",
- "KC_TRNS",
- "KC_F7",
- "KC_F8",
- "KC_F9",
- "KC_F10",
- "KC_F11",
- "KC_F12",
- "KC_NUHS",
- "KC_NUBS",
- "KC_PGUP",
- "KC_PGDN",
- "KC_TRNS",
- "KC_TRNS",
- "KC_TRNS",
- "KC_TRNS",
- "KC_TRNS",
- "MO(6)",
- "KC_TRNS",
- "KC_TRNS",
- "KC_TRNS",
- "KC_MNXT",
- "KC_VOLD",
- "KC_VOLU",
- "KC_MPLY"
- ],
- [
- "KC_1",
- "KC_1",
- "KC_1",
- "KC_1",
- "KC_1",
- "KC_1",
- "KC_1",
- "KC_1",
- "KC_1",
- "KC_1",
- "KC_1",
- "KC_1",
- "KC_NO",
- "KC_Q",
- "KC_W",
- "KC_E",
- "KC_R",
- "KC_T",
- "KC_Y",
- "KC_U",
- "KC_I",
- "KC_O",
- "KC_P",
- "KC_LBRC",
- "KC_NO",
- "KC_A",
- "KC_S",
- "KC_D",
- "KC_F",
- "KC_G",
- "KC_H",
- "KC_J",
- "KC_K",
- "KC_L",
- "KC_SCLN",
- "KC_QUOT",
- "TO(0)",
- "KC_NO",
- "KC_NO",
- "KC_C",
- "KC_V",
- "KC_NO",
- "KC_NO",
- "KC_N",
- "KC_M",
- "KC_NO",
- "KC_NO",
- "KC_NO"
- ],
- [
- "ANY(UC_MAC)",
- "QK_BOOT",
- "DG_TOGG",
- "RGB_TOG",
- "RGB_MOD",
- "RGB_HUI",
- "RGB_HUD",
- "RGB_SAI",
- "RGB_SAD",
- "RGB_VAI",
- "RGB_VAD",
- "KC_DEL",
- "ANY(UC_LINX)",
- "KC_TRNS",
- "ANY(MU_NEXT)",
- "ANY(AU_ON)",
- "ANY(AU_OFF)",
- "AG_NORM",
- "AG_SWAP",
- "DF(0)",
- "DF(1)",
- "DF(2)",
- "TO(5)",
- "KC_TRNS",
- "ANY(UC_WIN)",
- "ANY(AU_PREV)",
- "ANY(AU_NEXT)",
- "ANY(MU_ON)",
- "ANY(MU_OFF)",
- "ANY(MI_ON)",
- "ANY(MI_OFF)",
- "KC_TRNS",
- "KC_TRNS",
- "KC_TRNS",
- "KC_TRNS",
- "KC_TRNS",
- "ANY(UC_WINC)",
- "KC_TRNS",
- "KC_TRNS",
- "KC_TRNS",
- "KC_TRNS",
- "KC_TRNS",
- "KC_TRNS",
- "KC_TRNS",
- "KC_TRNS",
- "KC_TRNS",
- "KC_TRNS",
- "KC_TRNS"
- ]
- ],
- "author": ""
-}
diff --git a/layouts/community/ortho_4x12/wanleg/config.h b/layouts/community/ortho_4x12/wanleg/config.h
deleted file mode 100644
index 7ec47302bc..0000000000
--- a/layouts/community/ortho_4x12/wanleg/config.h
+++ /dev/null
@@ -1,49 +0,0 @@
-#pragma once
-
-#if defined(KEYBOARD_jj40)
-#undef BACKLIGHT_BREATHING
-#undef BACKLIGHT_LEVELS
-#undef BREATHING_PERIOD
-#define BACKLIGHT_BREATHING
-#define BACKLIGHT_LEVELS 3
-#define BREATHING_PERIOD 15
-#endif
-
-//QMK DFU settings (ProMicro boards with QMK bootloader)
-// set top left key as bootloader mode escape key on Lets Split rev2
-#if defined(KEYBOARD_lets_split_rev2)
-#define QMK_LED B0
-#define QMK_ESC_OUTPUT F6 // usually COL
-#define QMK_ESC_INPUT D7 // usually ROW
-#undef USE_I2C
-#define EE_HANDS
-#endif
-
-// set top left key as bootloader mode escape key on Nori
-#if defined(KEYBOARD_40percentclub_nori)
-#define QMK_LED B0
-#define QMK_ESC_OUTPUT F4 // usually COL
-#define QMK_ESC_INPUT D3 // usually ROW
-#endif
-
-// set top left key as bootloader mode escape key on 4x4 48key layout
-#if defined(KEYBOARD_40percentclub_4x4) && !defined(PRO_MICRO)
-#define QMK_LED B0
-#define QMK_ESC_OUTPUT C6 // usually COL
-#define QMK_ESC_INPUT B2 // usually ROW
-#endif
-
-// use alternate settings for 4x4 board using ProMicro instead of Micro
-// usage: make 4x4:wanleg PM=yes
-#if defined(KEYBOARD_40percentclub_4x4) && defined(PRO_MICRO)
-#define QMK_ESC_OUTPUT F4 // usually COL
-#define QMK_ESC_INPUT D1 // usually ROW
-#define QMK_LED B0
-
-//need to undefine standard 4x4 array before defining alternate ProMicro array
-#undef MATRIX_ROW_PINS
-#undef MATRIX_COL_PINS
-#define MATRIX_ROW_PINS { D1, D0, D4, C6 }
-//last 4 elements of the column array are not broken out on a ProMicro (included only to preserve array structure)
-#define MATRIX_COL_PINS { F4, F5, F6, F7, B1, B3, B2, B6, B5, B4, E6, D7, F0, B7, D6, F1 }
-#endif
diff --git a/layouts/community/ortho_4x12/wanleg/keymap.c b/layouts/community/ortho_4x12/wanleg/keymap.c
deleted file mode 100644
index bcf6671aed..0000000000
--- a/layouts/community/ortho_4x12/wanleg/keymap.c
+++ /dev/null
@@ -1,96 +0,0 @@
-#include QMK_KEYBOARD_H
-#include "wanleg.h"
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-#if defined(KEYBOARD_lets_split_rev2)
-[_GK] = LAYOUT_ortho_4x12_wrapper(
- _______________GherkinLike_0_______________,
- _______________GherkinLike_1_______________,
- _______________GherkinLike_2_______________,
- _______________GherkinLike_3_OneHand_______
-),
-[ONE] = LAYOUT_ortho_4x12_wrapper(
- _______________Qwerty_Row__0_______________,
- _______________Qwerty_Row__1_______________,
- _______________Qwerty_Row__2_______________,
- KC_LCTL, KC_LGUI, KC_LALT, GHERKIN, SUBTER, SH_T(KC_SPC), SH_T(KC_SPC), SUPRA, KC_RGUI, KC_RALT, GHERKIN, KC_RCTL
-),
-[DIR] = LAYOUT_ortho_4x12_wrapper(
- _____________DIRECTIONS_Row__0_____________,
- _____________DIRECTIONS_Row__1_____________,
- _____________DIRECTIONS_Row__2_____________,
- _______, _______, ONEHAND, _______, _______, _______, _______, _______, _______, _______, _______, _______
-),
-#elif defined(KEYBOARD_40percentclub_4x4) || defined(KEYBOARD_40percentclub_nori)
-[_GK] = LAYOUT_ortho_4x12_wrapper(
- _______________GherkinLike_0_______________,
- _______________GherkinLike_1_______________,
- _______________GherkinLike_2_______________,
- TD(RST_TAP_DANCE), KC_LGUI, KC_LALT, NUMPAD, NUMBER, ETCETERA, KC_SPC,DIRECTION, KC_RGUI, KC_RALT, KC_DEL, KC_RCTL
-),
-
-[PAD] = LAYOUT_ortho_4x4_wrapper(
- _______________NUMPAD_Row__0_______________,
- _______________NUMPAD_Row__1_______________,
- _______________NUMPAD_Row__2_______________,
- _______________NUMPAD_Row__3_______________
-),
-
-#else
-[_GK] = LAYOUT_ortho_4x12_wrapper(
- _______________GherkinLike_0_______________,
- _______________GherkinLike_1_______________,
- _______________GherkinLike_2_______________,
- _______________GherkinLike_3_______________
-),
-#endif
-[_QW] = LAYOUT_ortho_4x12_wrapper(
- _______________Qwerty_Row__0_______________,
- _______________Qwerty_Row__1_______________,
- _______________Qwerty_Row__2_______________,
- _______________Qwerty_Row__3_______________
-),
-
-[SUP] = LAYOUT_ortho_4x12_wrapper(
- ________________SUPRA_Row_0________________,
- ________________SUPRA_Row_1________________,
- ________________SUPRA_Row_2________________,
- ________________SUPRA_Row_3________________
-),
-
-[SUB] = LAYOUT_ortho_4x12_wrapper(
- _______________SUBTER_Row__0_______________,
- _______________SUBTER_Row__1_______________,
- _______________SUBTER_Row__2_______________,
- _______________SUBTER_Row__3_______________
-),
-
-[NUM] = LAYOUT_ortho_4x12_wrapper(
- _______________NUMBERS_Row_0_______________,
- _______________NUMBERS_Row_1_______________,
- _______________NUMBERS_Row_2_______________,
- _______________NUMBERS_Row_3_______________
-),
-
-[DIR] = LAYOUT_ortho_4x12_wrapper(
- _____________DIRECTIONS_Row__0_____________,
- _____________DIRECTIONS_Row__1_____________,
- _____________DIRECTIONS_Row__2_____________,
- _____________DIRECTIONS_Row__3_____________
-),
-
-[ETC] = LAYOUT_ortho_4x12_wrapper(
- ______________ETCETERA_Row__0______________,
- ______________ETCETERA_Row__1______________,
- ______________ETCETERA_Row__2______________,
- ______________ETCETERA_Row__3______________
-),
-
-[_FN] = LAYOUT_ortho_4x12_wrapper(
- _______, _______________Gherkin_FN_0________________, _______,
- _______, _______________Gherkin_FN_0________________, _______,
- _______, _______________Gherkin_FN_0________________, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
-),
-
-};
diff --git a/layouts/community/ortho_4x12/wanleg/readme.md b/layouts/community/ortho_4x12/wanleg/readme.md
deleted file mode 100644
index 3fc1fc65ad..0000000000
--- a/layouts/community/ortho_4x12/wanleg/readme.md
+++ /dev/null
@@ -1,46 +0,0 @@
-# Let's Split Flashing
-(More information at `qmk_firmware/layouts/community/ortho_3x10/wanleg/readme.md`)
-## Make the QMK DFU .hex
-`make lets_split/rev2:wanleg:production dfu=qmk`
-
-## Burning EEPROM settings and Firmware
-Navigate to the directory with your .hex file and the `eeprom-lefthand.eep` and `eeprom-righthand.eep` files in it.
-**Burn Left Side With QMK DFU and Firmware**
-`avrdude -b 19200 -c avrisp -p m32u4 -v -e -U lock:w:0x3F:m -U efuse:w:0xC3:m -U hfuse:w:0xD9:m -U lfuse:w:0x5E:m -U eeprom:w:eeprom-lefthand.eep -P comPORT -U flash:w:YOUR_production.hex:a`
-
-**Burn Right Side With QMK DFU and Firmware**
-`avrdude -b 19200 -c avrisp -p m32u4 -v -e -U lock:w:0x3F:m -U efuse:w:0xC3:m -U hfuse:w:0xD9:m -U lfuse:w:0x5E:m -U eeprom:w:eeprom-righthand.eep -P comPORT -U flash:w:YOUR_production.hex:a`
-
-Change `comPORT` to whatever port is used by the Arduino (e.g. `com11` in Windows or `/dev/ttyACM0` in Linux). Use Device Manager in Windows to find the port being used. Use `ls /dev/tty*` in Linux. Change `YOUR_production.hex` to whatever you've created in the previous step.
-
-## Using QMK DFU
-Once QMK DFU is burned to your ProMicro, you can then flash subsequent hex files with
-`make lets_split/rev2:<keymap>:dfu dfu=qmk`
-The `dfu=qmk` conditional will set `BOOTLOADER = qmk-dfu` instead of `BOOTLOADER = caterina`
-
-# Let's Split LEDs
-In `qmk_firmware/keyboards/lets_split/rev2/rev2.c`, replace contents with
-```
-#include "lets_split.h"
-
-void matrix_init_kb(void) {
-
- // // green led on
- // DDRD |= (1<<5);
- // PORTD &= ~(1<<5);
-
- // // orange led on
- // DDRB |= (1<<0);
- // PORTB &= ~(1<<0);
-
- //turn off LEDs on ProMicro
- DDRD &= ~(1<<5);
- PORTD &= ~(1<<5);
-
- DDRB &= ~(1<<0);
- PORTB &= ~(1<<0);
-
- matrix_init_user();
-};
-```
-to turn off LEDs
diff --git a/layouts/community/ortho_4x12/wanleg/rules.mk b/layouts/community/ortho_4x12/wanleg/rules.mk
deleted file mode 100644
index 0b3917e98f..0000000000
--- a/layouts/community/ortho_4x12/wanleg/rules.mk
+++ /dev/null
@@ -1,15 +0,0 @@
-AUDIO_ENABLE = no
-SWAP_HANDS_ENABLE = no
-
-ifeq ($(strip $(KEYBOARD)), lets_split/rev2)
- SWAP_HANDS_ENABLE = yes
-endif
-
-ifeq ($(strip $(KEYBOARD)), planck/rev6)
- AUDIO_ENABLE = yes
-endif
-
-#disable RGB on version 1 of jj40 keyboard (does not exist)
-ifeq ($(strip $(KEYBOARD)), jj40)
- RGBLIGHT_ENABLE = no
-endif \ No newline at end of file
diff --git a/layouts/community/ortho_4x12/xyverz/config.h b/layouts/community/ortho_4x12/xyverz/config.h
deleted file mode 100644
index 1ccf427557..0000000000
--- a/layouts/community/ortho_4x12/xyverz/config.h
+++ /dev/null
@@ -1,39 +0,0 @@
-#ifndef CONFIG_USER_H
-#define CONFIG_USER_H
-
-#define MIDI_BASIC
-
-#define EE_HANDS
-
-#undef RGBLED_NUM
-#if defined(KEYBOARD_planck_rev5)
- #define RGBLED_NUM 10
- #define WS2812_DI_PIN D1
-#elif defined(KEYBOARD_keebio_levinson_rev2)
- #define RGBLED_NUM 12
-#elif defined(KEYBOARD_lets_split_rev2)
- #define RGBLED_NUM 8
-#elif defined(KEYBOARD_jj40)
- #define RGBLED_NUM 5
-#else
- #define RGBLED_NUM 1
-#endif
-
-#define RGBLIGHT_EFFECT_BREATHING
-#define RGBLIGHT_EFFECT_RAINBOW_MOOD
-#define RGBLIGHT_EFFECT_RAINBOW_SWIRL
-#define RGBLIGHT_EFFECT_SNAKE
-#define RGBLIGHT_EFFECT_KNIGHT
-#define RGBLIGHT_EFFECT_CHRISTMAS
-#define RGBLIGHT_EFFECT_STATIC_GRADIENT
-#define RGBLIGHT_EFFECT_RGB_TEST
-#define RGBLIGHT_EFFECT_ALTERNATING
-#define RGBLIGHT_EFFECT_TWINKLE
-#define RGBLIGHT_HUE_STEP 8
-#define RGBLIGHT_SAT_STEP 8
-#define RGBLIGHT_VAL_STEP 8
-
-#undef BACKLIGHT_LEVELS
-#define BACKLIGHT_LEVELS 8
-
-#endif
diff --git a/layouts/community/ortho_4x12/xyverz/keymap.c b/layouts/community/ortho_4x12/xyverz/keymap.c
deleted file mode 100644
index a54add00e0..0000000000
--- a/layouts/community/ortho_4x12/xyverz/keymap.c
+++ /dev/null
@@ -1,159 +0,0 @@
-#include QMK_KEYBOARD_H
-
-enum layer_names { _QWERTY, _COLEMAK, _DVORAK, _LOWER, _RAISE, _ADJUST };
-
-enum custom_keycodes { QWERTY = SAFE_RANGE, COLEMAK, DVORAK, ADJUST };
-
-// Aliases to keep the keymap tidy
-#define GUIBSPC GUI_T(KC_BSPC) // GUI when held, BSPC when tapped.
-#define RGB_SWR RGB_M_SW // Swirl Animation alias
-#define RGB_SNK RGB_M_SN // Snake Animation alias
-#define MACLOCK LGUI(LCTL(KC_Q)) // Lock my MacBook!
-#define RAISE MO(_RAISE)
-#define LOWER MO(_LOWER)
-
-// clang-format off
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
-/* Qwerty
- * ,-----------------------------------------------------------------------------------.
- * | Tab | Q | W | E | R | T | Y | U | I | O | P | Bksp |
- * |------+------+------+------+------+-------------+------+------+------+------+------|
- * | Esc | A | S | D | F | G | H | J | K | L | ; | " |
- * |------+------+------+------+------+------|------+------+------+------+------+------|
- * | Shift| Z | X | C | V | B | N | M | , | . | / | Shift|
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | Ctrl | Alt | Left |Right |Lower | Bksp |Space |Raise | Up | Down | GUI |Enter |
- * `-----------------------------------------------------------------------------------'
- */
-[_QWERTY] = LAYOUT_ortho_4x12 (
- 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_ESC, 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_RSFT,
- KC_LCTL, KC_LALT, KC_LEFT, KC_RGHT, LOWER, GUIBSPC, KC_SPC, RAISE, KC_UP, KC_DOWN, KC_RGUI, KC_ENT
- ),
-
-/* Colemak
- * ,-----------------------------------------------------------------------------------.
- * | Tab | Q | W | F | P | G | J | L | U | Y | ; | Bksp |
- * |------+------+------+------+------+-------------+------+------+------+------+------|
- * | Esc | A | R | S | T | D | H | N | E | I | O | " |
- * |------+------+------+------+------+------|------+------+------+------+------+------|
- * | Shift| Z | X | C | V | B | K | M | , | . | / | Shift|
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | Ctrl | Alt | Left |Right |Lower | Bksp |Space |Raise | Up | Down | GUI |Enter |
- * `-----------------------------------------------------------------------------------'
- */
-[_COLEMAK] = LAYOUT_ortho_4x12 (
- KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC,
- KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT,
- 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_LCTL, KC_LALT, KC_LEFT, KC_RGHT, LOWER, GUIBSPC, KC_SPC, RAISE, KC_UP, KC_DOWN, KC_RGUI, KC_ENT
- ),
-
-/* Dvorak
- * ,-----------------------------------------------------------------------------------.
- * | Tab | " | , | . | P | Y | F | G | C | R | L | / |
- * |------+------+------+------+------+-------------+------+------+------+------+------|
- * | Esc | A | O | E | U | I | D | H | T | N | S | - |
- * |------+------+------+------+------+------|------+------+------+------+------+------|
- * | Shift| ; | Q | J | K | X | B | M | W | V | Z | Shift|
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | Ctrl | Alt | Left |Right |Lower | Bksp |Space |Raise | Up | Down | GUI |Enter |
- * `-----------------------------------------------------------------------------------'
- */
-[_DVORAK] = LAYOUT_ortho_4x12 (
- 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_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_MINS,
- 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_LCTL, KC_LALT, KC_LEFT, KC_RGHT, LOWER, GUIBSPC, KC_SPC, RAISE, KC_UP, KC_DOWN, KC_RGUI, KC_ENT
- ),
-
-/* Lower
- * ,-----------------------------------------------------------------------------------.
- * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | |
- * |------+------+------+------+------+-------------+------+------+------+------+------|
- * | Caps | | Mute | Vol- | Vol+ | | | | + | { | } | | |
- * |------+------+------+------+------+------|------+------+------+------+------+------|
- * | | | Prev | Play | Next | | | | | | | |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | Brite| | Home | End | | Del | Ins | | PgUp | PgDN | |Enter |
- * `-----------------------------------------------------------------------------------'
- */
-[_LOWER] = LAYOUT_ortho_4x12 (
- KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_PIPE,
- KC_CAPS, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, _______,
- _______, _______, KC_MPRV, KC_MPLY, KC_MNXT, _______, _______, _______, _______, _______, _______, _______,
- BL_STEP, _______, KC_HOME, KC_END, _______, KC_DEL, KC_INS, _______, KC_PGUP, KC_PGDN, _______, _______
- ),
-
-/* Raise
- * ,-----------------------------------------------------------------------------------.
- * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | |
- * |------+------+------+------+------+-------------+------+------+------+------+------|
- * | Caps | | Mute | Vol- | Vol+ | | | | = | [ | ] | \ |
- * |------+------+------+------+------+------|------+------+------+------+------+------|
- * | | | Prev | Play | Next | | | | | | | |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | Brite| | Home | End | | Del | Ins | | PgUp | PgDN | |Enter |
- * `-----------------------------------------------------------------------------------'
- */
-[_RAISE] = LAYOUT_ortho_4x12 (
- KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSLS,
- KC_CAPS, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, _______,
- _______, _______, KC_MPRV, KC_MPLY, KC_MNXT, _______, _______, _______, _______, _______, _______, _______,
- BL_STEP, _______, KC_HOME, KC_END, _______, KC_DEL, KC_INS, _______, KC_PGUP, KC_PGDN, _______, _______
- ),
-
-/* Adjust (Lower + Raise)
- * ,-----------------------------------------------------------------------------------.
- * | F11 | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F12 |
- * |------+------+------+------+------+-------------+------+------+------+------+------|
- * | | Reset|RGB PL|RGB BR|RGB RB|AGnorm|AGswap|Qwerty|Colemk|Dvorak| | |
- * |------+------+------+------+------+------|------+------+------+------+------+------|
- * |RGB ON| MODE |RGB SW|RGB KN|RGB GR| HUE- | HUE+ | HUE- | SAT+ | SAT- | VAL+ | VAL- |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | | | | | |MacLck| | | | | | |
- * `-----------------------------------------------------------------------------------'
- */
-[_ADJUST] = LAYOUT_ortho_4x12 (
- KC_F11, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F12 ,
- _______, QK_BOOT, RGB_M_P, RGB_M_B, RGB_M_R, AG_NORM, AG_SWAP, QWERTY, COLEMAK, DVORAK, _______, _______,
- RGB_TOG, RGB_MOD, RGB_SWR, RGB_M_K, RGB_M_G, RGB_HUI, RGB_HUD, RGB_HUI, RGB_SAD, RGB_SAI, RGB_VAD, RGB_VAI,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, MACLOCK
- )
-};
-// clang-format on
-
-#ifdef AUDIO_ENABLE
-float tone_qwerty[][2] = SONG(QWERTY_SOUND);
-float tone_dvorak[][2] = SONG(DVORAK_SOUND);
-float tone_colemak[][2] = SONG(COLEMAK_SOUND);
-#endif
-
-void matrix_init_user(void) {
-#ifdef BOOTLOADER_CATERINA
- // This will disable the red LEDs on the ProMicros
- setPinInput(D5);
- setPinInput(B0);
-#endif
-};
-
-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) {
- if (record->event.pressed) {
- switch (keycode) {
- case QWERTY:
- set_single_persistent_default_layer(_QWERTY);
- return false;
- case COLEMAK:
- set_single_persistent_default_layer(_COLEMAK);
- return false;
- case DVORAK:
- set_single_persistent_default_layer(_DVORAK);
- return false;
- }
- }
- return true;
-}
diff --git a/layouts/community/ortho_4x12/xyverz/readme.md b/layouts/community/ortho_4x12/xyverz/readme.md
deleted file mode 100644
index 2ee86792ec..0000000000
--- a/layouts/community/ortho_4x12/xyverz/readme.md
+++ /dev/null
@@ -1,99 +0,0 @@
-# Xyverz's 4x12 Ortho Keymap
-
-## About this keymap:
-
-I'm moving all my 4x12s to the same keymap since I pretty much use it across all of them anyway, regardless of whether they're split or not. Gotta get the `LAYOUT` lovin', yo.
-
-This revision includes this documentation and introduction of the individual RGB mode keys in the `ADJUST` layer.
-
-## What's New?
- * Added the Mac Lock macro of CMD+CTRL+Q to lock the screen on my mac.
- * Changed the location of the `pipe` and `backslash` keys to match my other layouts.
-
-## Still to do:
-
- * Enjoy this revision; figure out new things later.
-
-### Qwerty layer
-
-```
- ,-----------------------------------------------------------------------------------.
- | Tab | Q | W | E | R | T | Y | U | I | O | P | Bksp |
- |------+------+------+------+------+-------------+------+------+------+------+------|
- | Esc | A | S | D | F | G | H | J | K | L | ; | " |
- |------+------+------+------+------+------|------+------+------+------+------+------|
- | Shift| Z | X | C | V | B | N | M | , | . | / | Shift|
- |------+------+------+------+------+------+------+------+------+------+------+------|
- | Ctrl | Alt | Left |Right |Lower | Bksp |Space |Raise | Up | Down | GUI | Enter|
- `-----------------------------------------------------------------------------------'
- ```
-
-### Colemak layer
-
-```
- ,-----------------------------------------------------------------------------------.
- | Tab | Q | W | F | P | G | J | L | U | Y | ; | Bksp |
- |------+------+------+------+------+-------------+------+------+------+------+------|
- | Esc | A | R | S | T | D | H | N | E | I | O | " |
- |------+------+------+------+------+------|------+------+------+------+------+------|
- | Shift| Z | X | C | V | B | K | M | , | . | / | Shift|
- |------+------+------+------+------+------+------+------+------+------+------+------|
- | Ctrl | Alt | Left |Right |Lower | Bksp |Space |Raise | Up | Down | GUI | Enter|
- `-----------------------------------------------------------------------------------'
- ```
-
-### Dvorak layer
-
-```
- ,-----------------------------------------------------------------------------------.
- | Tab | " | , | . | P | Y | F | G | C | R | L | / |
- |------+------+------+------+------+-------------+------+------+------+------+------|
- | Esc | A | O | E | U | I | D | H | T | N | S | - |
- |------+------+------+------+------+------|------+------+------+------+------+------|
- | Shift| ; | Q | J | K | X | B | M | W | V | Z | Shift|
- |------+------+------+------+------+------+------+------+------+------+------+------|
- | Ctrl | Alt | Left |Right |Lower | Bksp |Space |Raise | Up | Down | GUI | Enter|
- `-----------------------------------------------------------------------------------'
- ```
-
-### LOWER layer
-
-```
- ,-----------------------------------------------------------------------------------.
- | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | | |
- |------+------+------+------+------+-------------+------+------+------+------+------|
- | Caps | | Mute | Vol- | Vol+ | | | _ | + | { | } | |
- |------+------+------+------+------+------|------+------+------+------+------+------|
- | | | Prev | Play | Next | | | | | | | |
- |------+------+------+------+------+------+------+------+------+------+------+------|
- | Brite| | Home | End | | Del | Ins | | PgUp | PgDN | | |
- `-----------------------------------------------------------------------------------'
- ```
-
-### RAISE layer
-
-```
- ,-----------------------------------------------------------------------------------.
- | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | \ |
- |------+------+------+------+------+-------------+------+------+------+------+------|
- | Caps | | Mute | Vol- | Vol+ | | | - | = | [ | ] | |
- |------+------+------+------+------+------|------+------+------+------+------+------|
- | | | Prev | Play | Next | | | | | | | |
- |------+------+------+------+------+------+------+------+------+------+------+------|
- | Brite| | Home | End | | Del | Ins | | PgUp | PgDN | | |
- `-----------------------------------------------------------------------------------'
- ```
-
-### ADJUST layer
-
-```
- ,-----------------------------------------------------------------------------------.
- | F11 | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F12 |
- |------+------+------+------+------+-------------+------+------+------+------+------|
- | | Reset|RGB PL|RGB BR|RGB RB|AGnorm|AGswap|Qwerty|Colemk|Dvorak| | |
- |------+------+------+------+------+------|------+------+------+------+------+------|
- |RGB ON| MODE |RGB SW|RGB KN|RGB GR| HUE- | HUE+ | HUE- | SAT+ | SAT- | VAL+ | VAL- |
- |------+------+------+------+------+------+------+------+------+------+------+------|
- | | | | | |MacLck| | | | | | |
- `-----------------------------------------------------------------------------------'
- ```
diff --git a/layouts/community/ortho_4x12/xyverz/rules.mk b/layouts/community/ortho_4x12/xyverz/rules.mk
deleted file mode 100644
index f52fe17540..0000000000
--- a/layouts/community/ortho_4x12/xyverz/rules.mk
+++ /dev/null
@@ -1,11 +0,0 @@
-BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
-AUDIO_ENABLE = no # Audio output on port C6
-
-ifeq ("$(KEYBOARD)","vitamins_included")
- RGBLIGHT_ENABLE = no
-else ifeq ($(strip $(KEYBOARD)), 40percentclub/4x4)
- RGBLIGHT_ENABLE = no
-else
- RGBLIGHT_ENABLE = yes
-endif
-
diff --git a/layouts/community/ortho_4x16/readme.md b/layouts/community/ortho_4x16/readme.md
new file mode 100644
index 0000000000..6dce03f51a
--- /dev/null
+++ b/layouts/community/ortho_4x16/readme.md
@@ -0,0 +1,3 @@
+# ortho_4x16
+
+ LAYOUT_ortho_4x16
diff --git a/layouts/community/ortho_4x4/jotix/keymap.c b/layouts/community/ortho_4x4/jotix/keymap.c
deleted file mode 100644
index ec975d6db2..0000000000
--- a/layouts/community/ortho_4x4/jotix/keymap.c
+++ /dev/null
@@ -1,74 +0,0 @@
-#include QMK_KEYBOARD_H
-
-enum layers {
- _NUMPAD,
- _GAMEPAD,
- _FN
-};
-
-static bool is_p0_pressed;
-static bool is_p7_pressed;
-static bool is_pmns_pressed;
-
-#define TGGAME TG(_GAMEPAD)
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
-[_NUMPAD] = LAYOUT_ortho_4x4 (
- KC_P7, KC_P8, KC_P9, KC_PMNS,
- KC_P4, KC_P5, KC_P6, KC_PPLS,
- KC_P1, KC_P2, KC_P3, MO(_FN),
- KC_P0, KC_PDOT,KC_PSLS,KC_PAST
-),
-
-[_GAMEPAD] = LAYOUT_ortho_4x4 (
- KC_5, KC_6, KC_7, KC_8,
- KC_1, KC_2, KC_3, KC_4,
- KC_Q, KC_W, KC_E, _______,
- KC_A, KC_S, KC_D, KC_SPC
-),
-
-[_FN] = LAYOUT_ortho_4x4 (
- KC_PERC,KC_CIRC,KC_AMPR,KC_ASTR,
- KC_EXLM,KC_AT, KC_HASH,KC_DLR,
- KC_Z, KC_X, KC_C, _______,
- KC_NUM, _______,_______,TGGAME
-)
-};
-
-layer_state_t layer_state_set_user(layer_state_t state) {
-#ifdef JOTPAD16_LEDS
- writePin(JOTPAD16_LED1, (get_highest_layer(state) == _FN));
- writePin(JOTPAD16_LED2, (get_highest_layer(state) == _GAMEPAD));
-#endif
- return state;
-}
-
-bool led_update_user(led_t led_state) {
- // NumLock allways on
- if (!led_state.num_lock) {
- tap_code(KC_NUM_LOCK);
- }
- return true;
-}
-
-bool process_record_user(uint16_t keycode, keyrecord_t *record) {
- switch (keycode) {
- case KC_P0:
- is_p0_pressed = record->event.pressed;
- break;
- case KC_P7:
- is_p7_pressed = record->event.pressed;
- break;
- case KC_PMNS:
- is_pmns_pressed = record->event.pressed;
- break;
- };
- return true;
-}
-
-void matrix_scan_user(void) {
- if (is_p0_pressed && is_p7_pressed && is_pmns_pressed) {
- reset_keyboard();
- }
-}
diff --git a/layouts/community/ortho_4x4/jotix/readme.md b/layouts/community/ortho_4x4/jotix/readme.md
deleted file mode 100644
index b4b56b58df..0000000000
--- a/layouts/community/ortho_4x4/jotix/readme.md
+++ /dev/null
@@ -1,3 +0,0 @@
-# Jotix ortho 4x4 keymap
-
-Tested on jotpad16 \ No newline at end of file
diff --git a/layouts/community/ortho_4x4/readme.md b/layouts/community/ortho_4x4/readme.md
index b7afef7b88..2c94c4c1cd 100644
--- a/layouts/community/ortho_4x4/readme.md
+++ b/layouts/community/ortho_4x4/readme.md
@@ -1,3 +1,3 @@
# ortho_4x4
- LAYOUT_ortho_4x4 \ No newline at end of file
+ LAYOUT_ortho_4x4
diff --git a/layouts/community/ortho_4x6/readme.md b/layouts/community/ortho_4x6/readme.md
new file mode 100644
index 0000000000..67c6175ee8
--- /dev/null
+++ b/layouts/community/ortho_4x6/readme.md
@@ -0,0 +1,3 @@
+# ortho_4x6
+
+ LAYOUT_ortho_4x6
diff --git a/layouts/community/ortho_5x12/333fred/README.md b/layouts/community/ortho_5x12/333fred/README.md
deleted file mode 100644
index f619effc61..0000000000
--- a/layouts/community/ortho_5x12/333fred/README.md
+++ /dev/null
@@ -1,75 +0,0 @@
-# 333fred's 5x12 Layout
-
-This 5x12 layout is based on my Ergodox Infinity Layout, which is [here](../../ergodox/333fred/README.md). It doesn't have all of my VS extensions.
-
-## Layers
-
-### QWERTY
-The shift modifiers on this layer all use OSM to allow for quick single capitalization. LwrVIM acts a combo one-shot toggle and momentary layer toggle. Tap once to make the next key be sent on the Lower. Hold to move to the Lower layer until release. Tap and hold (so press, release, press and hold) to move to the VIM layer until release. Game is a regular toggle layer.
-
-```
-Qwerty
-,-----------------------------------------------------------------------------------.
-| ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - |
-|------+------+------+------+------+------+------+------+------+------+------+------|
-| Tab | Q | W | E | R | T | Y | U | I | O | P | \ |
-|------+------+------+------+------+-------------+------+------+------+------+------|
-| Esc | A | S | D | F | G | H | J | K | L | ; | " |
-|------+------+------+------+------+------|------+------+------+------+------+------|
-| Shift| Z | X | C | V | B | N | M | , | . |/ Ctrl| Shift|
-|------+------+------+------+------+------+------+------+------+------+------+------|
-| Ctrl | Alt | F4 | GUI | Bksp |LwrVIM| Spc | Ent | Lock | = | RAlt | Del |
-`-----------------------------------------------------------------------------------'
-```
-
-### Lower
-My symbol and numpad layer. APscr is a macro that sends ALT+PRSC, to take a screenshot of the current application.
-
-```
-Lower
-,-----------------------------------------------------------------------------------.
-| Caps | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 |
-|------+------+------+------+------+-------------+------+------+------+------+------|
-| | ! | @ | ( | ) | | | 7 | 8 | 9 | * | ) | F12 |
-|------+------+------+------+------+-------------+------+------+------+------+------|
-| | # | $ | { | } | ` | 4 | 5 | 6 | + | } | | |
-|------+------+------+------+------+------|------+------+------+------+------+------|
-| APscr| % | ^ | [ | ] | ~ | 1 | 2 | 3 | \ | Vol- | Vol+ |
-|------+------+------+------+------+------+------+------+------+------+------+------|
-| Pscr | | | | | GAME | 0 | . | = | Prev | Next | Play |
-`-----------------------------------------------------------------------------------'
-```
-
-### VIM Movement
-Pressing and holding F moves to this layer, which turns hjkl into vim movement keys. a and d are macros which send WIN+Left and WIN+Right, respectively. Shift and CTRL have been remapped for ease of selecting text.
-```
-Vim Movement (Hold down F)
-,-----------------------------------------------------------------------------------.
-| | | | | | | | | | | | |
-|------+------+------+------+------+------+------+------+------+------+------+------|
-| | | | | | | | | | | | |
-|------+------+------+------+------+------+------+------+------+------+------+------|
-| | DLeft|DRight| LCTRL| | | Left | Down | Up | Right| | |
-|------+------+------+------+------+------+------+------+------+------+------+------|
-| | | | | | | | | | | | |
-|------+------+------+------+------+------+------+------+------+------+------+------|
-| | | | | LShft| | | | | | | |
-`-----------------------------------------------------------------------------------'
- ```
-
-### Gaming
-This layer is designed for playing games. All one-shot modification has been turned off, and the common game controls keys have been moved around for easier access.
-```
-Gaming mode (Raise)
-,-----------------------------------------------------------------------------------.
-| ESC | | | | | | | | | | | |
-|------+------+------+------+------+------+------+------+------+------+------+------|
-| | | | | | | | | | | | |
-|------+------+------+------+------+------+------+------+------+------+------+------|
-| CTRL | | | | | | | | | | | |
-|------+------+------+------+------+------+------+------+------+------+------+------|
-| Shift| Z | | | | | | | | | | GUI |
-|------+------+------+------+------+------+------+------+------+------+------+------|
-| Enter| | Lock | Bksp | Alt | Spc | Lower| Left | Up | Down | Right|QWERTY|
-`-----------------------------------------------------------------------------------'
-```
diff --git a/layouts/community/ortho_5x12/333fred/config.h b/layouts/community/ortho_5x12/333fred/config.h
deleted file mode 100644
index 4327d154c2..0000000000
--- a/layouts/community/ortho_5x12/333fred/config.h
+++ /dev/null
@@ -1,28 +0,0 @@
-/*
- Copyright (c) 2020 Fred Silberberg
-
- Permission is hereby granted, free of charge, to any person obtaining a copy
- of this software and associated documentation files (the "Software"), to deal
- in the Software without restriction, including without limitation the rights
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- copies of the Software, and to permit persons to whom the Software is
- furnished to do so, subject to the following conditions:
-
- The above copyright notice and this permission notice shall be included in all
- copies or substantial portions of the Software.
-
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- THE SOFTWARE.
-*/
-
-#pragma once
-
-#define MASTER_LEFT
-
-#undef TAPPING_TERM
-#define TAPPING_TERM 150
diff --git a/layouts/community/ortho_5x12/333fred/keymap.c b/layouts/community/ortho_5x12/333fred/keymap.c
deleted file mode 100644
index 7ae5fc58a4..0000000000
--- a/layouts/community/ortho_5x12/333fred/keymap.c
+++ /dev/null
@@ -1,128 +0,0 @@
-/*
- Copyright (c) 2020 Fred Silberberg
-
- Permission is hereby granted, free of charge, to any person obtaining a copy
- of this software and associated documentation files (the "Software"), to deal
- in the Software without restriction, including without limitation the rights
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- copies of the Software, and to permit persons to whom the Software is
- furnished to do so, subject to the following conditions:
-
- The above copyright notice and this permission notice shall be included in all
- copies or substantial portions of the Software.
-
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- THE SOFTWARE.
-*/
-
-#include QMK_KEYBOARD_H
-#include "333fred.h"
-
-extern keymap_config_t keymap_config;
-
-#if (!defined(LAYOUT) && defined(KEYMAP))
-# define LAYOUT KEYMAP
-#endif
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
-/* Qwerty
- * ,-----------------------------------------------------------------------------------.
- * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | Tab | Q | W | E | R | T | Y | U | I | O | P | \ |
- * |------+------+------+------+------+-------------+------+------+------+------+------|
- * | Esc | A | S | D | F | G | H | J | K | L | ; | " |
- * |------+------+------+------+------+------|------+------+------+------+------+------|
- * | Shift| Z | X | C | V | B | N | M | , | . |/ Ctrl| Shift|
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | Ctrl | Alt | F4 | GUI | Bksp |Lwr/VM| Spc | Ent | Lock | = | Alt | Del |
- * `-----------------------------------------------------------------------------------'
- */
-[BASE] = LAYOUT_ortho_5x12(
- KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINUS,
- KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS,
- KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
- OSM(MOD_LSFT), LCTL_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, RCTL_T(KC_SLSH), OSM(MOD_RSFT),
- KC_LCTL, KC_LALT, KC_F4, KC_LGUI, KC_BSPC, TD(TD_SYM_VIM), KC_SPC, KC_ENT, QK_LOCK, KC_EQL, KC_RALT, KC_DEL
-),
-
-/* Symbols
- * ,-----------------------------------------------------------------------------------.
- * | Caps | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 |
- * |------+------+------+------+------+-------------+------+------+------+------+------|
- * | | ! | @ | ( | ) | | | 7 | 8 | 9 | * | ) | F12 |
- * |------+------+------+------+------+-------------+------+------+------+------+------|
- * | | # | $ | { | } | ` | 4 | 5 | 6 | + | } | | |
- * |------+------+------+------+------+------|------+------+------+------+------+------|
- * | APscr| % | ^ | [ | ] | ~ | 1 | 2 | 3 | \ | Vol- | Vol+ |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | Pscr | | | | | GAME | 0 | . | = | Prev | Next | Play |
- * `-----------------------------------------------------------------------------------'
- */
-[SYMB] = LAYOUT_ortho_5x12(
- KC_CAPS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,
- _______, KC_EXLM, KC_AT, KC_LPRN, KC_RPRN, KC_PIPE, KC_7, KC_8, KC_9, KC_ASTR, KC_RPRN, KC_F12,
- _______, KC_HASH, KC_DLR, KC_LCBR, KC_RCBR, KC_GRV, KC_4, KC_5, KC_6, KC_PLUS, KC_RCBR, KC_PIPE,
- PSCREEN_APP, KC_PERC, KC_CIRC, KC_LBRC, KC_RBRC, KC_TILD, KC_1, KC_2, KC_3, KC_BSLS, KC_VOLD, KC_VOLU,
- KC_PSCR, _______, _______, _______, _______, TG(GAME), KC_0, KC_DOT, KC_EQL, KC_MPRV, KC_MNXT, KC_MPLY
-),
-
-/* Vim Movement (Hold down F)
- * ,-----------------------------------------------------------------------------------.
- * | | | | | | | | | | | | |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | | | | LSHFT| | | | | | | | |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | | DLeft|DRight| LCTRL| LGUI | | Left | Down | Up | Right| | |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | | | | | | | | | | | | |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | | | | | | | | | | | | |
- * `-----------------------------------------------------------------------------------'
- */
-[VIM] = LAYOUT_ortho_5x12(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, KC_LSFT, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, DLEFT, DRIGHT, KC_LCTL, KC_LGUI, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
-),
-
-/* Gaming mode (Raise)
- * All one-shot mods are disabled on this layer
- * ,-----------------------------------------------------------------------------------.
- * | ESC | | | | | | | | | | | |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | | | | | | | | | | | | |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | CTRL | | | | F | | | | | | | |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | Shift| Z | | | | | | | | | | GUI |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | Enter| | Lock | Bksp | Alt | Spc | Lower| Left | Up | Down | Right|QWERTY|
- * `-----------------------------------------------------------------------------------'
- */
-[GAME] = LAYOUT_ortho_5x12(
- KC_ESC, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- KC_LCTL, _______, _______, _______, KC_F, _______, _______, _______, _______, _______, _______, _______,
- KC_LSFT, KC_Z, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_LGUI,
- KC_ENT, _______, QK_LOCK, KC_BSPC, KC_LALT, KC_SPC, OSL(SYMB), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, TO(BASE)
-)
-};
-
-void persistent_default_layer_set(uint16_t default_layer) {
- eeconfig_update_default_layer(default_layer);
- default_layer_set(default_layer);
-}
-
-bool process_record_user(uint16_t keycode, keyrecord_t *record) {
- tap_dance_process_keycode(keycode);
- return true;
-}
diff --git a/layouts/community/ortho_5x12/333fred/rules.mk b/layouts/community/ortho_5x12/333fred/rules.mk
deleted file mode 100644
index 9a3e2b97e5..0000000000
--- a/layouts/community/ortho_5x12/333fred/rules.mk
+++ /dev/null
@@ -1,2 +0,0 @@
-KEY_LOCK_ENABLE = yes
-CONSOLE_ENABLE = no
diff --git a/layouts/community/ortho_5x12/alfrdmalr/config.h b/layouts/community/ortho_5x12/alfrdmalr/config.h
deleted file mode 100644
index 885107524d..0000000000
--- a/layouts/community/ortho_5x12/alfrdmalr/config.h
+++ /dev/null
@@ -1,5 +0,0 @@
-#pragma once
-
-#ifdef AUDIO_ENABLE
- #define STARTUP_SONG SONG(PREONIC_SOUND)
-#endif \ No newline at end of file
diff --git a/layouts/community/ortho_5x12/alfrdmalr/keymap.c b/layouts/community/ortho_5x12/alfrdmalr/keymap.c
deleted file mode 100644
index 2cd5105b21..0000000000
--- a/layouts/community/ortho_5x12/alfrdmalr/keymap.c
+++ /dev/null
@@ -1,49 +0,0 @@
-#include "alfrdmalr.h"
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
-// QWERTY
-[_QWERTY] = LAYOUT_ortho_5x12_wrapper(
- K00, ____NUMROW_L0____, ____NUMROW_R0____, K0B,
- K10, ____QWERTY_L1____, ____QWERTY_R1____, K1B_ALT,
- K20, ____QWERTY_L2____, ____QWERTY_R2____, K2B,
- K30, ____QWERTY_L3____, ____QWERTY_R3____, K3B,
- K40, _____BASE_L4_____, _____BASE_R4_____, K4B
-),
-
-// SYMBOL
-[_SYMBOL] = LAYOUT_ortho_5x12_wrapper(
- K00_SYM, ____NUMROW_L0____, ____NUMROW_R0____, K0B_SYM,
- K10_SYM, ____SYMBOL_L1____, ____SYMBOL_R1____, K1B_SYM,
- K20_SYM, ____SYMBOL_L2____, ____SYMBOL_R2____, K2B_SYM,
- K30_SYM, ____SYMBOL_L3____, ____SYMBOL_R3____, K3B_SYM,
- K40_SYM, ____SYMBOL_L4____, ____SYMBOL_R4____, K4B_SYM
-),
-
-// NAVIGATION
-[_NAVIGATION] = LAYOUT_ortho_5x12_wrapper(
- K00_NAV, ____NUMROW_L0____, ____NUMROW_R0____, K0B_NAV,
- K10_NAV, __NAVIGATION_L1__, __NAVIGATION_R1__, K1B_NAV,
- K20_NAV, __NAVIGATION_L2__, __NAVIGATION_R2__, K2B_NAV,
- K30_NAV, __NAVIGATION_L3__, __NAVIGATION_R3__, K3B_NAV,
- K40_NAV, __NAVIGATION_L4__, __NAVIGATION_R4__, K4B_NAV
-),
-
-// NUMPAD
-[_NUMPAD] = LAYOUT_ortho_5x12_wrapper(
- K00_NUM, ____NUMROW_L0____, ____NUMROW_R0____, K0B_NUM,
- K10_NUM, ____NUMPAD_L1____, ____NUMPAD_R1____, K1B_NUM,
- K20_NUM, ____NUMPAD_L2____, ____NUMPAD_R2____, K2B_NUM,
- K30_NUM, ____NUMPAD_L3____, ____NUMPAD_R3____, K3B_NUM,
- K40_NUM, ____NUMPAD_L4____, ____NUMPAD_R4____, K4B_NUM
-),
-
-// SETTINGS
-[_SETTINGS] = LAYOUT_ortho_5x12_wrapper(
- K00_SET, ______TRANS______, ______TRANS______, K0B_SET,
- K10_SET, ___SETTINGS_L1___, ___SETTINGS_R1___, K1B_SET,
- K20_SET, ___SETTINGS_L2___, ___SETTINGS_R2___, K2B_SET,
- K30_SET, ___SETTINGS_L3___, ___SETTINGS_R3___, K3B_SET,
- K40_SET, ___SETTINGS_L4___, ___SETTINGS_R4___, K4B_SET
-)
-}; \ No newline at end of file
diff --git a/layouts/community/ortho_5x12/alfrdmalr/rules.mk b/layouts/community/ortho_5x12/alfrdmalr/rules.mk
deleted file mode 100644
index e69de29bb2..0000000000
--- a/layouts/community/ortho_5x12/alfrdmalr/rules.mk
+++ /dev/null
diff --git a/layouts/community/ortho_5x12/brandonschlack/config.h b/layouts/community/ortho_5x12/brandonschlack/config.h
deleted file mode 100644
index 5704ca12f7..0000000000
--- a/layouts/community/ortho_5x12/brandonschlack/config.h
+++ /dev/null
@@ -1,52 +0,0 @@
-/* Copyright 2020 Brandon Schlack
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-#pragma once
-
-#ifdef KEYBOARD_preonic_rev3
-#ifdef AUDIO_ENABLE
- #define STARTUP_SONG SONG(PREONIC_SOUND)
- // #define STARTUP_SONG SONG(NO_SOUND)
-
- #define DEFAULT_LAYER_SONGS { SONG(QWERTY_SOUND) \
- }
-#endif
-
-#define MUSIC_MASK (keycode != KC_NO)
-
-/*
- * MIDI options
- */
-
-/* enable basic MIDI features:
- - MIDI notes can be sent when in Music mode is on
-*/
-
-#define MIDI_BASIC
-
-/* enable advanced MIDI features:
- - MIDI notes can be added to the keymap
- - Octave shift and transpose
- - Virtual sustain, portamento, and modulation wheel
- - etc.
-*/
-//#define MIDI_ADVANCED
-
-/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
-//#define MIDI_TONE_KEYCODE_OCTAVES 2
-
-// Most tactile encoders have detents every 4 stages
-#define ENCODER_RESOLUTION 4
-#endif
diff --git a/layouts/community/ortho_5x12/brandonschlack/keymap.c b/layouts/community/ortho_5x12/brandonschlack/keymap.c
deleted file mode 100644
index b68368e5a8..0000000000
--- a/layouts/community/ortho_5x12/brandonschlack/keymap.c
+++ /dev/null
@@ -1,216 +0,0 @@
-/* Copyright 2019 Brandon Schlack
- *
- * 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
-#ifdef KEYBOARD_preonic_rev3
- #include "muse.h"
-#endif
-#include "brandonschlack.h"
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
-/* Qwerty */
-[_BASE] = LAYOUT_ortho_5x12(
-// ┌────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┐
- KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSLS,
-// ├────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┤
- KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,
-// ├────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┤
- HY_ESC, 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, SFT_ENT,
-// ├────────┼────────┼────────┼────────┼────────┼────────┴────────┼────────┼────────┼────────┼────────┼────────┤
- MCO_LYR, KC_LCTL, KC_LOPT, KC_LCMD, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT
-// └────────┴────────┴────────┴────────┴────────┴─────────────────┴────────┴────────┴────────┴────────┴────────┘
-),
-
-/* Lower */
-[_LOWER] = LAYOUT_ortho_5x12(
-// ┌────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┐
- 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_ESC, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL,
-// ├────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┤
- _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, _______,
-// ├────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┤
- SF_CAPS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_HOME, KC_PGDN, KC_PGUP, KC_END, _______,
-// ├────────┼────────┼────────┼────────┼────────┼────────┴────────┼────────┼────────┼────────┼────────┼────────┤
- _______, _______, _______, _______, _______, KC_MUTE, KC_MUTE, _______, KC_MPRV, KC_VOLD, KC_VOLU, KC_MNXT
-// └────────┴────────┴────────┴────────┴────────┴─────────────────┴────────┴────────┴────────┴────────┴────────┘
-),
-
-/* Raise */
-[_RAISE] = LAYOUT_ortho_5x12(
-// ┌────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┐
- KC_GRV, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_PIPE,
-// ├────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┤
- KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL,
-// ├────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┤
- _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, _______,
-// ├────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┤
- SF_CAPS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_HOME, KC_PGDN, KC_PGUP, KC_END, _______,
-// ├────────┼────────┼────────┼────────┼────────┼────────┴────────┼────────┼────────┼────────┼────────┼────────┤
- _______, _______, _______, _______, _______, KC_MPLY, KC_MPLY, _______, KC_MPRV, KC_VOLD, KC_VOLU, KC_MNXT
-// └────────┴────────┴────────┴────────┴────────┴─────────────────┴────────┴────────┴────────┴────────┴────────┘
-),
-
-/* Function */
-[_MACRO] = LAYOUT_ortho_5x12(
-// ┌────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┐
- _______, _______, _______, _______, _______, _______, _______, KC_BRMD, KC_BRMU, MC_MSSN, MC_LHPD, MC_SLPD,
-// ├────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┤
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
-// ├────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┤
- _______, _______, _______, _______, _______, _______, _______, MC_BACK, MC_FWRD, PRV_TAB, NXT_TAB, NXT_WIN,
-// ├────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┤
- _______, _______, _______, _______, _______, _______, PX_AFLL, OP_AFLL, _______, _______, _______, _______,
-// ├────────┼────────┼────────┼────────┼────────┼────────┴────────┼────────┼────────┼────────┼────────┼────────┤
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
-// └────────┴────────┴────────┴────────┴────────┴─────────────────┴────────┴────────┴────────┴────────┴────────┘
-),
-
-/* Adjust (Lower + Raise) */
-[_ADJUST] = LAYOUT_ortho_5x12(
-// ┌────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┐
- KC_ESC, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, MC_SLPD,
-// ├────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┤
- QM_MAKE, QK_BOOT, DB_TOGG, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______,
-// ├────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┤
- QM_FLSH, _______, MU_NEXT, AU_ON, AU_OFF, AG_NORM, AG_SWAP, _______, _______, _______, _______, _______,
-// ├────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┤
- _______, AU_PREV, AU_NEXT, MU_ON, MU_OFF, MI_ON, MI_OFF, RGB_RTHM,RGB_THM, _______, _______, _______,
-// ├────────┼────────┼────────┼────────┼────────┼────────┴────────┼────────┼────────┼────────┼────────┼────────┤
- EE_CLR, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
-// └────────┴────────┴────────┴────────┴────────┴─────────────────┴────────┴────────┴────────┴────────┴────────┘
-)
-
-
-};
-
-layer_state_t layer_state_set_keymap(layer_state_t state) {
- state = update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST);
- return state;
-}
-
-#ifdef KEYBOARD_preonic_rev3
-#ifdef AUDIO_ENABLE
- float plover_song[][2] = SONG(PLOVER_SOUND);
- float plover_gb_song[][2] = SONG(PLOVER_GOODBYE_SOUND);
-#endif
-
-bool muse_mode = false;
-uint8_t last_muse_note = 0;
-uint16_t muse_counter = 0;
-uint8_t muse_offset = 70;
-uint16_t muse_tempo = 50;
-
-bool encoder_update_keymap(uint8_t index, bool clockwise) {
- if (muse_mode) {
- if (IS_LAYER_ON(_RAISE)) {
- if (clockwise) {
- muse_offset++;
- } else {
- muse_offset--;
- }
- } else {
- if (clockwise) {
- muse_tempo+=1;
- } else {
- muse_tempo-=1;
- }
- }
- } else {
- if (clockwise) {
- #ifdef MOUSEKEY_ENABLE
- tap_code(MC_WH_U);
- #else
- tap_code(KC_VOLU);
- #endif
- } else {
- #ifdef MOUSEKEY_ENABLE
- tap_code(MC_WH_D);
- #else
- tap_code(KC_VOLD);
- #endif
- }
- }
- return true;
-}
-
-bool dip_switch_update_user(uint8_t index, bool active) {
- switch (index) {
- case 0: {
-#ifdef AUDIO_ENABLE
- static bool play_sound = false;
-#endif
- if (active) {
-#ifdef AUDIO_ENABLE
- if (play_sound) { PLAY_SONG(plover_song); }
-#endif
- layer_on(_ADJUST);
- } else {
-#ifdef AUDIO_ENABLE
- if (play_sound) { PLAY_SONG(plover_gb_song); }
-#endif
- layer_off(_ADJUST);
- }
-#ifdef AUDIO_ENABLE
- play_sound = true;
-#endif
- break;
- }
- case 1:
- if (active) {
- muse_mode = true;
- } else {
- muse_mode = false;
- }
- }
- return true;
-}
-
-
-void matrix_scan_keymap(void) {
-#ifdef AUDIO_ENABLE
- if (muse_mode) {
- if (muse_counter == 0) {
- uint8_t muse_note = muse_offset + SCALE[muse_clock_pulse()];
- if (muse_note != last_muse_note) {
- stop_note(compute_freq_for_midi_note(last_muse_note));
- play_note(compute_freq_for_midi_note(muse_note), 0xF);
- last_muse_note = muse_note;
- }
- }
- muse_counter = (muse_counter + 1) % muse_tempo;
- } else {
- if (muse_counter) {
- stop_all_notes();
- muse_counter = 0;
- }
- }
-#endif
-}
-
-bool music_mask_user(uint16_t keycode) {
- switch (keycode) {
- case RAISE:
- case LOWER:
- case MCO_LYR:
- return false;
- default:
- return true;
- }
-}
-#endif
diff --git a/layouts/community/ortho_5x12/brandonschlack/readme.md b/layouts/community/ortho_5x12/brandonschlack/readme.md
deleted file mode 100644
index 787fbb8207..0000000000
--- a/layouts/community/ortho_5x12/brandonschlack/readme.md
+++ /dev/null
@@ -1,19 +0,0 @@
-# brandonschlack's 5x12 Ortho Keymap
-
-This layout takes inspiration from the Preonic and JNAO. It is macOS-centric, with Colemak and DVORAK removed as I don't use them.
-
-## Keyboards Using This Layout
-
-* [Preonic](https://github.com/qmk/qmk_firmware/tree/master/keyboards/planck)
-* [JNAO](https://github.com/qmk/qmk_firmware/tree/master/keyboards/planck) (FORCE_LAYOUT=ortho_5x12)
-
-## Features
-
-* *Enter* acts as *Right Shift* when held
-* On either **LOWER** or **RAISE** layers, tapping *Shift* will toggle *Caps Lock*, hold for Shift.
-* Bottom left key is *Hyper* (Shift+Control+Option+Command) which I use to map global shortcuts in macOS.
- * Holding *Esc* will also act as Hyper.
-* **ADJUST** Layer
- * Make command for compiling keyboard firmmware, a Reset key, and Debug toggle.
- * Mission Control, Launchpad, and Sleep Display macOS macros
- * Alt-Gui swapping
diff --git a/layouts/community/ortho_5x12/brandonschlack/rules.mk b/layouts/community/ortho_5x12/brandonschlack/rules.mk
deleted file mode 100644
index a727043b44..0000000000
--- a/layouts/community/ortho_5x12/brandonschlack/rules.mk
+++ /dev/null
@@ -1,10 +0,0 @@
-ifeq ($(strip $(KEYBOARD)), preonic/rev3)
- SRC += muse.c
-endif
-
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-BACKLIGHT_ENABLE = no # No backlights installed
-
-ifeq ($(strip $(KEYBOARD)), jnao)
- BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite
-endif
diff --git a/layouts/community/ortho_5x12/drashna/config.h b/layouts/community/ortho_5x12/drashna/config.h
deleted file mode 100644
index 0e7d1dd0db..0000000000
--- a/layouts/community/ortho_5x12/drashna/config.h
+++ /dev/null
@@ -1,47 +0,0 @@
-/* Copyright 2020 Christopher Courtney, aka Drashna Jael're (@drashna) <drashna@live.com>
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-#pragma once
-
-/* ws2812 RGB LED */
-#if defined(KEYBOARD_fractal)
-# define WS2812_DI_PIN D2
-# undef RGBLED_NUM
-# define RGBLIGHT_EFFECT_BREATHING
-# define RGBLIGHT_EFFECT_RAINBOW_MOOD
-# define RGBLIGHT_EFFECT_RAINBOW_SWIRL
-# define RGBLIGHT_EFFECT_SNAKE
-# define RGBLIGHT_EFFECT_KNIGHT
-# define RGBLIGHT_EFFECT_CHRISTMAS
-# define RGBLIGHT_EFFECT_STATIC_GRADIENT
-# define RGBLIGHT_EFFECT_RGB_TEST
-# define RGBLIGHT_EFFECT_ALTERNATING
-# define RGBLIGHT_EFFECT_TWINKLE
-# define RGBLED_NUM 29 // Number of LEDs
-# undef RGBLIGHT_HUE_STEP
-# define RGBLIGHT_HUE_STEP 8
-# undef RGBLIGHT_SAT_STEP
-# define RGBLIGHT_SAT_STEP 8
-# undef RGBLIGHT_VAL_STEP
-# define RGBLIGHT_VAL_STEP 8
-# define RGBLIGHT_LIMIT_VAL 175
-# define RGBLIGHT_SLEEP
-
-# define RGBLIGHT_EFFECT_KNIGHT_OFFSET 3
-# define RGBLIGHT_EFFECT_KNIGHT_LED_NUM 14
-# define AUDIO_PIN B7
-# define NO_MUSIC_MODE
-#endif
diff --git a/layouts/community/ortho_5x12/drashna/keymap.c b/layouts/community/ortho_5x12/drashna/keymap.c
deleted file mode 100644
index 7632bc833e..0000000000
--- a/layouts/community/ortho_5x12/drashna/keymap.c
+++ /dev/null
@@ -1,131 +0,0 @@
-/* Copyright 2020 Christopher Courtney, aka Drashna Jael're (@drashna) <drashna@live.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 "drashna.h"
-
-/*
- * The `LAYOUT_ortho_5x12_base` macro is a template to allow the use of identical
- * modifiers for the default layouts (eg QWERTY, Colemak, Dvorak, etc), so
- * that there is no need to set them up for each layout, and modify all of
- * them if I want to change them. This helps to keep consistency and ease
- * of use. K## is a placeholder to pass through the individual keycodes
- */
-// clang-format off
-#define LAYOUT_ortho_5x12_wrapper(...) LAYOUT_ortho_5x12(__VA_ARGS__)
-#define LAYOUT_ortho_5x12_base( \
- K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, \
- K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, \
- K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A \
- ) \
- LAYOUT_ortho_5x12_wrapper( \
- KC_ESC, ________________NUMBER_LEFT________________, ________________NUMBER_RIGHT_______________, KC_BSPC, \
- LALT_T(KC_TAB), K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, KC_BSPC, \
- KC_C1R3, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, RALT_T(K1B), \
- KC_MLSF, CTL_T(K21), K22, K23, K24, K25, K26, K27, K28, K29, RCTL_T(K2A), KC_ENT, \
- KC_NO, OS_LCTL, OS_LALT, OS_LGUI, SP_LWER, BK_LWER, DL_RAIS, ET_RAIS, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT \
- )
-
-#define LAYOUT_base_wrapper(...) LAYOUT_ortho_5x12_base(__VA_ARGS__)
-
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [_DEFAULT_LAYER_1] = LAYOUT_base_wrapper(
- _________________QWERTY_L1_________________, _________________QWERTY_R1_________________,
- _________________QWERTY_L2_________________, _________________QWERTY_R2_________________,
- _________________QWERTY_L3_________________, _________________QWERTY_R3_________________
- ),
-
- [_DEFAULT_LAYER_2] = LAYOUT_base_wrapper(
- ______________COLEMAK_MOD_DH_L1____________, ______________COLEMAK_MOD_DH_R1____________,
- ______________COLEMAK_MOD_DH_L2____________, ______________COLEMAK_MOD_DH_R2____________,
- ______________COLEMAK_MOD_DH_L3____________, ______________COLEMAK_MOD_DH_R3____________
- ),
- [_DEFAULT_LAYER_3] = LAYOUT_base_wrapper(
- _________________COLEMAK_L1________________, _________________COLEMAK_R1________________,
- _________________COLEMAK_L2________________, _________________COLEMAK_R2________________,
- _________________COLEMAK_L3________________, _________________COLEMAK_R3________________
- ),
-
- [_DEFAULT_LAYER_4] = LAYOUT_base_wrapper(
- _________________DVORAK_L1_________________, _________________DVORAK_R1_________________,
- _________________DVORAK_L2_________________, _________________DVORAK_R2_________________,
- _________________DVORAK_L3_________________, _________________DVORAK_R3_________________
- ),
-
-/* Lower
- * ,-----------------------------------------------------------------------------------.
- * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp |
- * |------+------+------+------+------+-------------+------+------+------+------+------|
- * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Del |
- * |------+------+------+------+------+-------------+------+------+------+------+------|
- * | Del | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | |
- * |------+------+------+------+------+------|------+------+------+------+------+------|
- * | | F7 | F8 | F9 | F10 | F11 | F12 |ISO ~ |ISO | | | | |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | | | | | | | | Next | Vol- | Vol+ | Play |
- * `-----------------------------------------------------------------------------------'
- */
-[_LOWER] = LAYOUT_ortho_5x12_wrapper(
- _______, ___________________BLANK___________________, ___________________BLANK___________________, _______,
- KC_TILD, _________________LOWER_L1__________________, _________________LOWER_R1__________________, KC_PIPE,
- KC_DEL, _________________LOWER_L2__________________, _________________LOWER_R2__________________, _______,
- _______, _________________LOWER_L3__________________, _________________LOWER_R3__________________, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY
-),
-
-/* Raise
- * ,-----------------------------------------------------------------------------------.
- * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Del |
- * |------+------+------+------+------+-------------+------+------+------+------+------|
- * | Del | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ |
- * |------+------+------+------+------+------|------+------+------+------+------+------|
- * | | F7 | F8 | F9 | F10 | F11 | F12 |ISO # |ISO / | | | |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | | | | | | | | Next | Vol- | Vol+ | Play |
- * `-----------------------------------------------------------------------------------'
- */
-[_RAISE] = LAYOUT_ortho_5x12_wrapper(
- KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC,
- KC_GRV, _________________RAISE_L1__________________, _________________RAISE_R1__________________, _______,
- KC_DEL, _________________RAISE_L2__________________, _________________RAISE_R2__________________, KC_BSLS,
- _______, _________________RAISE_L3__________________, _________________RAISE_R3__________________, _______,
- _______, _______, _______, _______, _______, _______, _______, _________________RAISE_R3__________________
-),
-
-/* Adjust (Lower + Raise)
- * ,-----------------------------------------------------------------------------------.
- * | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | | Reset| | | | | | | | | | Del |
- * |------+------+------+------+------+-------------+------+------+------+------+------|
- * | | | |Aud on|AudOff|AGnorm|AGswap|Qwerty|Colemk|Dvorak| | |
- * |------+------+------+------+------+------|------+------+------+------+------+------|
- * | |Voice-|Voice+|Mus on|MusOff|MidiOn|MidOff| | | | | |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | | | | | | | | | | | |
- * `-----------------------------------------------------------------------------------'
- */
-[_ADJUST] = LAYOUT_ortho_5x12_wrapper(
- QK_MAKE, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, QK_BOOT,
- VRSN, _________________ADJUST_L1_________________, _________________ADJUST_R1_________________, EE_CLR,
- _______, _________________ADJUST_L2_________________, _________________ADJUST_R2_________________, RGB_IDL,
- KEYLOCK, _________________ADJUST_L3_________________, _________________ADJUST_R3_________________, TG_MODS,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
-)
-};
-// clang-format on
diff --git a/layouts/community/ortho_5x12/drashna/rules.mk b/layouts/community/ortho_5x12/drashna/rules.mk
deleted file mode 100644
index c3b417f1bd..0000000000
--- a/layouts/community/ortho_5x12/drashna/rules.mk
+++ /dev/null
@@ -1,24 +0,0 @@
-BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite
-MOUSEKEY_ENABLE = no # Mouse keys
-EXTRAKEY_ENABLE = yes # Audio control and System control
-CONSOLE_ENABLE = no # Console for debug
-COMMAND_ENABLE = no # Commands for debug and configuration
-TAP_DANCE_ENABLE = no
-NKRO_ENABLE = yes
-
-ifeq ($(strip $(KEYBOARD)), fractal)
- RGB_MATRIX_ENABLE = no
- AUDIO_ENABLE = yes
- AUDIO_SUPPORTED = yes
- RGBLIGHT_SUPPORTED = yes
- RGBLIGHT_ENABLE = yes
- RGBLIGHT_STARTUP_ANIMATION = no
- BOOTLOADER = qmk-dfu
- CUSTOM_UNICODE_ENABLE = no
-endif
-
-ifeq ($(strip $(MCU)), atmega32u4)
- BOOTLOADER = qmk-dfu
- BOOTLOADER_SIZE = 512
- LTO_ENABLE = yes
-endif
diff --git a/layouts/community/ortho_5x12/greatwizard/README.md b/layouts/community/ortho_5x12/greatwizard/README.md
deleted file mode 100644
index 4158af5a35..0000000000
--- a/layouts/community/ortho_5x12/greatwizard/README.md
+++ /dev/null
@@ -1,233 +0,0 @@
-# GreatWizard ortholinear 5x12 keymap
-
-## Base layers
-
-### Qwerty
-
-```
-,-----------------------------------------------------------------------------------.
-| ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp |
-|------+------+------+------+------+------+------+------+------+------+------+------|
-| Tab | Q | W | E | R | T | Y | U | I | O | P | Del |
-|------+------+------+------+------+------+------+------+------+------+------+------|
-| Esc | A | S | D | F | G | H | J | K | L | ; | ' |
-|------+------+------+------+------+------+------+------+------+------+------+------|
-| Shift| Z | X | C | V | B | N | M | , | . | / |Enter |
-|------+------+------+------+------+------+------+------+------+------+------+------|
-| Fn | Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right |
-`-----------------------------------------------------------------------------------'
-```
-
-### Qwerty Programmer
-
-```
-,-----------------------------------------------------------------------------------.
-| ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp |
-|------+------+------+------+------+------+------+------+------+------+------+------|
-| Tab | Q | W | E | R | T | Y | U | I | O | P | Del |
-|------+------+------+------+------+------+------+------+------+------+------+------|
-| Esc | A | S | D | F | G | H | J | K | L | ; | ' |
-|------+------+------+------+------+------+------+------+------+------+------+------|
-| Shift| Z | X | C | V | B | N | M | , | . | / |Enter |
-|------+------+------+------+------+------+------+------+------+------+------+------|
-| Fn | Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right |
-`-----------------------------------------------------------------------------------'
-```
-
-### Workman
-
-```
-,-----------------------------------------------------------------------------------.
-| ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp |
-|------+------+------+------+------+------+------+------+------+------+------+------|
-| Tab | Q | D | R | W | B | J | F | U | P | ; | Del |
-|------+------+------+------+------+------+------+------+------+------+------+------|
-| Esc | A | S | H | T | G | Y | N | E | O | I | ' |
-|------+------+------+------+------+------+------+------+------+------+------+------|
-| Shift| Z | X | M | C | V | K | L | , | . | / |Enter |
-|------+------+------+------+------+------+------+------+------+------+------+------|
-| Fn | Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right |
-`-----------------------------------------------------------------------------------'
-```
-
-### Workman Programmer
-
-```
-,-----------------------------------------------------------------------------------.
-| ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp |
-|------+------+------+------+------+------+------+------+------+------+------+------|
-| Tab | Q | D | R | W | B | J | F | U | P | ; | Del |
-|------+------+------+------+------+------+------+------+------+------+------+------|
-| Esc | A | S | H | T | G | Y | N | E | O | I | ' |
-|------+------+------+------+------+------+------+------+------+------+------+------|
-| Shift| Z | X | M | C | V | K | L | , | . | / |Enter |
-|------+------+------+------+------+------+------+------+------+------+------+------|
-| Fn | Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right |
-`-----------------------------------------------------------------------------------'
-```
-
-### Colemak
-
-```
-,-----------------------------------------------------------------------------------.
-| ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp |
-|------+------+------+------+------+------+------+------+------+------+------+------|
-| Tab | Q | W | F | P | G | J | L | U | Y | ; | Del |
-|------+------+------+------+------+------+------+------+------+------+------+------|
-| Esc | A | R | S | T | D | H | N | E | I | O | ' |
-|------+------+------+------+------+------+------+------+------+------+------+------|
-| Shift| Z | X | C | V | B | K | M | , | . | / |Enter |
-|------+------+------+------+------+------+------+------+------+------+------+------|
-| Fn | Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right |
-`-----------------------------------------------------------------------------------'
-```
-
-### Colemak Programmer
-
-```
-,-----------------------------------------------------------------------------------.
-| ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp |
-|------+------+------+------+------+------+------+------+------+------+------+------|
-| Tab | Q | W | F | P | G | J | L | U | Y | ; | Del |
-|------+------+------+------+------+------+------+------+------+------+------+------|
-| Esc | A | R | S | T | D | H | N | E | I | O | ' |
-|------+------+------+------+------+------+------+------+------+------+------+------|
-| Shift| Z | X | C | V | B | K | M | , | . | / |Enter |
-|------+------+------+------+------+------+------+------+------+------+------+------|
-| Fn | Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right |
-`-----------------------------------------------------------------------------------'
-```
-
-### Dvorak
-
-```
-,-----------------------------------------------------------------------------------.
-| ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp |
-|------+------+------+------+------+------+------+------+------+------+------+------|
-| Tab | ' | , | . | P | Y | F | G | C | R | L | Del |
-|------+------+------+------+------+------+------+------+------+------+------+------|
-| Esc | A | O | E | U | I | D | H | T | N | S | / |
-|------+------+------+------+------+------+------+------+------+------+------+------|
-| Shift| ; | Q | J | K | X | B | M | W | V | Z |Enter |
-|------+------+------+------+------+------+------+------+------+------+------+------|
-| Fn | Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right |
-`-----------------------------------------------------------------------------------'
-```
-
-### Dvorak Programmer
-
-```
-,-----------------------------------------------------------------------------------.
-| ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp |
-|------+------+------+------+------+------+------+------+------+------+------+------|
-| Tab | ' | , | . | P | Y | F | G | C | R | L | Del |
-|------+------+------+------+------+------+------+------+------+------+------+------|
-| Esc | A | O | E | U | I | D | H | T | N | S | / |
-|------+------+------+------+------+------+------+------+------+------+------+------|
-| Shift| ; | Q | J | K | X | B | M | W | V | Z |Enter |
-|------+------+------+------+------+------+------+------+------+------+------+------|
-| Fn | Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right |
-`-----------------------------------------------------------------------------------'
-```
-
-### Game
-
-```
-,-----------------------------------------------------------------------------------.
-| ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp |
-|------+------+------+------+------+------+------+------+------+------+------+------|
-| Tab | Q | W | E | R | T | Y | U | I | O | P | Del |
-|------+------+------+------+------+------+------+------+------+------+------+------|
-| Esc | A | S | D | F | G | H | J | K | L | ; | ' |
-|------+------+------+------+------+------+------+------+------+------+------+------|
-| Shift| Z | X | C | V | B | N | M | , | . | Up |Enter |
-|------+------+------+------+------+------+------+------+------+------+------+------|
-| Fn | Ctrl | Alt | GUI |Lower | Space |Raise | / | Left | Down |Right |
-`-----------------------------------------------------------------------------------'
-```
-
-## Momentarily Layers
-
-### Lower
-
-```
-,-----------------------------------------------------------------------------------.
-| ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | |
-|------+------+------+------+------+------+------+------+------+------+------+------|
-| ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | |
-|------+------+------+------+------+------+------+------+------+------+------+------|
-| Del | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | |
-|------+------+------+------+------+------+------+------+------+------+------+------|
-| | F7 | F8 | F9 | F10 | F11 | F12 |ISO ~ |ISO | | Home | End | |
-|------+------+------+------+------+------+------+------+------+------+------+------|
-| | | | | | | | Next | Vol- | Vol+ | Play |
-`-----------------------------------------------------------------------------------'
-```
-
-### Raise
-
-```
-,-----------------------------------------------------------------------------------.
-| ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | |
-|------+------+------+------+------+------+------+------+------+------+------+------|
-| ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | |
-|------+------+------+------+------+------+------+------+------+------+------+------|
-| Del | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ |
-|------+------+------+------+------+------+------+------+------+------+------+------|
-| | F7 | F8 | F9 | F10 | F11 | F12 |ISO # |ISO / |PageUp|PageDn| |
-|------+------+------+------+------+------+------+------+------+------+------+------|
-| | | | | | | | Next | Vol- | Vol+ | Play |
-`-----------------------------------------------------------------------------------'
-```
-
-### Adjust (Lower + Raise)
-
-```
-,-----------------------------------------------------------------------------------.
-| F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 |
-|------+------+------+------+------+------+------+------+------+------+------+------|
-| | Reset|EP_RST| | | | | | | | | |
-|------+------+------+------+------+------+------+------+------+------+------+------|
-|CPSLCK| | | | | | Game |Qwerty|Workmn|Colemk|Dvorak| |
-|------+------+------+------+------+------+------+------+------+------+------+------|
-| | | | | | | |QwertP|WrkmnP|ColmkP|DvorkP| |
-|------+------+------+------+------+------+------+------+------+------+------+------|
-| | | | | | | | | | | |
-`-----------------------------------------------------------------------------------'
-```
-
-### Fn (rgblight and backlight layout)
-
-```
-,-----------------------------------------------------------------------------------.
-| | | | | | | | | | | | |
-|------+------+------+------+------+------+------+------+------+------+------+------|
-| | | | | | | | | |RGBVA-|RGBVA+| |
-|------+------+------+------+------+------+------+------+------+------+------+------|
-| | | | | | | | | |RGBSA-|RGBSA+|RGBLYR|
-|------+------+------+------+------+------+------+------+------+------+------+------|
-| | | | | | | | |RGBTOG|RGBHU-|RGBHU+|RGBMOD|
-|------+------+------+------+------+------+------+------+------+------+------+------|
-| | | | | | | |BLTOGG| BL- | BL+ |BLBRTG|
-`-----------------------------------------------------------------------------------'
-```
-
-## One Shot Key Layers
-
-### GIT
-
-Double tap on Alt to activate it.
-
-```
-,-----------------------------------------------------------------------------------.
-| | | | | | | | | | | | |
-|------+------+------+------+------+------+------+------+------+------+------+------|
-| |CHRPCK| SHOW |REBASE|RESET | TAG | | PULL | INIT |REMOTE| PUSH | |
-|------+------+------+------+------+------+------+------+------+------+------+------|
-| | ADD |STATUS| DIFF |FETCH | GREP |STASH | |CHECKT| LOG | | |
-|------+------+------+------+------+------+------+------+------+------+------+------|
-| | | |COMMIT| MV |BRANCH| |MERGE | | | | |
-|------+------+------+------+------+------+------+------+------+------+------+------|
-| | | | | | | | | | | | |
-`-----------------------------------------------------------------------------------'
-```
diff --git a/layouts/community/ortho_5x12/greatwizard/config.h b/layouts/community/ortho_5x12/greatwizard/config.h
deleted file mode 100644
index 598a7e56ab..0000000000
--- a/layouts/community/ortho_5x12/greatwizard/config.h
+++ /dev/null
@@ -1,25 +0,0 @@
-/* Copyright 2020 Guillaume Gérard
- *
- * 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 LAYERS_ORTHO
-#define LAYERS_PROGRAMMER
-#define LAYER_GAME
-#define LAYER_GIT
-#define LAYER_FN
-
-#define TAP_DANCE_LALT_GIT
-#define TAP_DANCE_LSFT_CAPS
diff --git a/layouts/community/ortho_5x12/greatwizard/keymap.c b/layouts/community/ortho_5x12/greatwizard/keymap.c
deleted file mode 100644
index ba1e9374ec..0000000000
--- a/layouts/community/ortho_5x12/greatwizard/keymap.c
+++ /dev/null
@@ -1,342 +0,0 @@
-/* Copyright 2020 Guillaume Gérard
- *
- * 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 "greatwizard.h"
-
-#define LAYOUT_ortho_5x12_wrapper(...) LAYOUT_ortho_5x12(__VA_ARGS__)
-#define LAYOUT_ortho_5x12_base( \
- K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, \
- K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, \
- K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, \
- K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A \
- ) \
- LAYOUT_ortho_5x12_wrapper( \
- K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, KC_BSPC, \
- KC_TAB, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, KC_DEL, \
- KC_ESC, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, \
- K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, KC_ENT, \
- FN, KC_LCTL, TD_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT \
- )
-#define LAYOUT_ortho_5x12_base_wrapper(...) LAYOUT_ortho_5x12_base(__VA_ARGS__)
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
- /* Qwerty
- * ,-----------------------------------------------------------------------------------.
- * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | Tab | Q | W | E | R | T | Y | U | I | O | P | Del |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | Esc | A | S | D | F | G | H | J | K | L | ; | ' |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | Shift| Z | X | C | V | B | N | M | , | . | / |Enter |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | Fn | Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right |
- * `-----------------------------------------------------------------------------------'
- */
- [_QWERTY] = LAYOUT_ortho_5x12_base_wrapper(
- KC_GRV, _______________NUMBER_LEFT_________________, _______________NUMBER_RIGHT________________,
- _______________QWERTY_LEFT1________________, _______________QWERTY_RIGHT1_______________,
- _______________QWERTY_LEFT2________________, _______________QWERTY_RIGHT2_______________, KC_QUOT,
- TD_LSCP, _______________QWERTY_LEFT3________________, _______________QWERTY_RIGHT3_______________
- ),
-
- /* Qwerty Programmer
- * ,-----------------------------------------------------------------------------------.
- * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | Tab | Q | W | E | R | T | Y | U | I | O | P | Del |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | Esc | A | S | D | F | G | H | J | K | L | ; | ' |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | Shift| Z | X | C | V | B | N | M | , | . | / |Enter |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | Fn | Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right |
- * `-----------------------------------------------------------------------------------'
- */
- [_QWERTY_PROGRAMMER] = LAYOUT_ortho_5x12_base_wrapper(
- KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN,
- _______________QWERTY_LEFT1________________, _______________QWERTY_RIGHT1_______________,
- _______________QWERTY_LEFT2________________, _______________QWERTY_RIGHT2_______________, KC_QUOT,
- PG_LSCP, _______________QWERTY_LEFT3________________, _______________QWERTY_RIGHT3_______________
- ),
-
- /* Workman
- * ,-----------------------------------------------------------------------------------.
- * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | Tab | Q | D | R | W | B | J | F | U | P | ; | Del |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | Esc | A | S | H | T | G | Y | N | E | O | I | ' |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | Shift| Z | X | M | C | V | K | L | , | . | / |Enter |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | Fn | Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right |
- * `-----------------------------------------------------------------------------------'
- */
- [_WORKMAN] = LAYOUT_ortho_5x12_base_wrapper(
- KC_GRV, _______________NUMBER_LEFT_________________, _______________NUMBER_RIGHT________________,
- _______________WORKMAN_LEFT1_______________, _______________WORKMAN_RIGHT1______________,
- _______________WORKMAN_LEFT2_______________, _______________WORKMAN_RIGHT2______________, KC_QUOT,
- TD_LSCP, _______________WORKMAN_LEFT3_______________, _______________WORKMAN_RIGHT3______________
- ),
-
- /* Workman Programmer
- * ,-----------------------------------------------------------------------------------.
- * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | Tab | Q | D | R | W | B | J | F | U | P | ; | Del |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | Esc | A | S | H | T | G | Y | N | E | O | I | ' |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | Shift| Z | X | M | C | V | K | L | , | . | / |Enter |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | Fn | Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right |
- * `-----------------------------------------------------------------------------------'
- */
- [_WORKMAN_PROGRAMMER] = LAYOUT_ortho_5x12_base_wrapper(
- KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN,
- _______________WORKMAN_LEFT1_______________, _______________WORKMAN_RIGHT1______________,
- _______________WORKMAN_LEFT2_______________, _______________WORKMAN_RIGHT2______________, KC_QUOT,
- PG_LSCP, _______________WORKMAN_LEFT3_______________, _______________WORKMAN_RIGHT3______________
- ),
-
- /* Colemak
- * ,-----------------------------------------------------------------------------------.
- * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | Tab | Q | W | F | P | G | J | L | U | Y | ; | Del |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | Esc | A | R | S | T | D | H | N | E | I | O | ' |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | Shift| Z | X | C | V | B | K | M | , | . | / |Enter |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | Fn | Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right |
- * `-----------------------------------------------------------------------------------'
- */
- [_COLEMAK] = LAYOUT_ortho_5x12_base_wrapper(
- KC_GRV, _______________NUMBER_LEFT_________________, _______________NUMBER_RIGHT________________,
- _______________COLEMAK_LEFT1_______________, _______________COLEMAK_RIGHT1______________,
- _______________COLEMAK_LEFT2_______________, _______________COLEMAK_RIGHT2______________, KC_QUOT,
- TD_LSCP, _______________COLEMAK_LEFT3_______________, _______________COLEMAK_RIGHT3______________
- ),
-
- /* Colemak Programmer
- * ,-----------------------------------------------------------------------------------.
- * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | Tab | Q | W | F | P | G | J | L | U | Y | ; | Del |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | Esc | A | R | S | T | D | H | N | E | I | O | ' |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | Shift| Z | X | C | V | B | K | M | , | . | / |Enter |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | Fn | Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right |
- * `-----------------------------------------------------------------------------------'
- */
- [_COLEMAK_PROGRAMMER] = LAYOUT_ortho_5x12_base_wrapper(
- KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN,
- _______________COLEMAK_LEFT1_______________, _______________COLEMAK_RIGHT1______________,
- _______________COLEMAK_LEFT2_______________, _______________COLEMAK_RIGHT2______________, KC_QUOT,
- PG_LSCP, _______________COLEMAK_LEFT3_______________, _______________COLEMAK_RIGHT3______________
- ),
-
- /* Dvorak
- * ,-----------------------------------------------------------------------------------.
- * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | Tab | ' | , | . | P | Y | F | G | C | R | L | Del |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | Esc | A | O | E | U | I | D | H | T | N | S | / |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | Shift| ; | Q | J | K | X | B | M | W | V | Z |Enter |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | Fn | Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right |
- * `-----------------------------------------------------------------------------------'
- */
- [_DVORAK] = LAYOUT_ortho_5x12_base_wrapper(
- KC_GRV, _______________NUMBER_LEFT_________________, _______________NUMBER_RIGHT________________,
- _______________DVORAK_LEFT1________________, _______________DVORAK_RIGHT1_______________,
- _______________DVORAK_LEFT2________________, _______________DVORAK_RIGHT2_______________, KC_SLSH,
- TD_LSCP, _______________DVORAK_LEFT3________________, _______________DVORAK_RIGHT3_______________
- ),
-
- /* Dvorak Programmer
- * ,-----------------------------------------------------------------------------------.
- * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | Tab | ' | , | . | P | Y | F | G | C | R | L | Del |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | Esc | A | O | E | U | I | D | H | T | N | S | / |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | Shift| ; | Q | J | K | X | B | M | W | V | Z |Enter |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | Fn | Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right |
- * `-----------------------------------------------------------------------------------'
- */
- [_DVORAK_PROGRAMMER] = LAYOUT_ortho_5x12_base_wrapper(
- KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN,
- _______________DVORAK_LEFT1________________, _______________DVORAK_RIGHT1_______________,
- _______________DVORAK_LEFT2________________, _______________DVORAK_RIGHT2_______________, KC_SLSH,
- PG_LSCP, _______________DVORAK_LEFT3________________, _______________DVORAK_RIGHT3_______________
- ),
-
- /* X Programmer Shifted
- * ,-----------------------------------------------------------------------------------.
- * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | | | | | | | | | | | | |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | | | | | | | | | | | | |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | | | | | | | | | | | | |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | | | | | | | | | | | |
- * `-----------------------------------------------------------------------------------'
- */
- [_PROGRAMMER_SHIFTED] = LAYOUT_ortho_5x12_wrapper(
- PG_GRV, PG_1, PG_2, PG_3, PG_4, PG_5, PG_6, PG_7, PG_8, PG_9, PG_0, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
- ),
-
- /* Game
- * ,-----------------------------------------------------------------------------------.
- * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | Tab | Q | W | E | R | T | Y | U | I | O | P | Del |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | Esc | A | S | D | F | G | H | J | K | L | ; | ' |
- * |------+------+------+------+------+------|------+------+------+------+------+------|
- * | Shift| Z | X | C | V | B | N | M | , | . | Up |Enter |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | Fn | Ctrl | Alt | GUI |Lower | Space |Raise | / | Left | Down |Right |
- * `-----------------------------------------------------------------------------------'
- */
- [_GAME] = LAYOUT_ortho_5x12_wrapper(
- KC_GRV, _______________NUMBER_LEFT_________________, _______________NUMBER_RIGHT________________, KC_BSPC,
- KC_TAB, _______________QWERTY_LEFT1________________, _______________QWERTY_RIGHT1_______________, KC_DEL,
- KC_ESC, _______________QWERTY_LEFT2________________, _______________QWERTY_RIGHT2_______________, KC_QUOT,
- TD_LSCP, _______________QWERTY_LEFT3________________, KC_N, KC_M, KC_COMM, KC_DOT, KC_UP, KC_ENT,
- FN, KC_LCTL, TD_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_SLSH, KC_LEFT, KC_DOWN, KC_RGHT
- ),
-
- /* Lower
- * ,-----------------------------------------------------------------------------------.
- * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | Del | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | | F7 | F8 | F9 | F10 | F11 | F12 |ISO ~ |ISO | | Home | End | |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | | | | | | | | Next | Vol- | Vol+ | Play |
- * `-----------------------------------------------------------------------------------'
- */
- [_LOWER] = LAYOUT_ortho_5x12_wrapper(
- KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, _______,
- KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, _______,
- KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE,
- _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,S(KC_NUHS),S(KC_NUBS),KC_HOME, KC_END, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY
- ),
-
- /* Raise
- * ,-----------------------------------------------------------------------------------.
- * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | Del | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | | F7 | F8 | F9 | F10 | F11 | F12 |ISO # |ISO / |PageUp|PageDn| |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | | | | | | | | Next | Vol- | Vol+ | Play |
- * `-----------------------------------------------------------------------------------'
- */
- [_RAISE] = LAYOUT_ortho_5x12_wrapper(
- KC_GRV, _______________NUMBER_LEFT_________________, _______________NUMBER_RIGHT________________, _______,
- KC_GRV, _______________NUMBER_LEFT_________________, _______________NUMBER_RIGHT________________, _______,
- KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS,
- _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NUHS, KC_NUBS, KC_PGUP, KC_PGDN, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY
- ),
-
- /* Adjust (Lower + Raise)
- * ,-----------------------------------------------------------------------------------.
- * | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | | Reset|EP_RST| | | | | | | | | |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * |CPSLCK| | | | | | Game |Qwerty|Workmn|Colemk|Dvorak| |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | | | | | | | |QwertP|WrkmnP|ColmkP|DvorkP| |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | | | | | | | | | | | |
- * `-----------------------------------------------------------------------------------'
- */
- [_ADJUST] = LAYOUT_ortho_5x12_wrapper(
- KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,
- _______, QK_BOOT, EE_CLR, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- KC_CAPS, _______, _______, _______, _______, _______, GAME, QWERTY, WORKMAN, COLEMAK, DVORAK, _______,
- _______, _______, _______, _______, _______, _______, _______, QWERTYP, WORKMNP, COLEMKP, DVORAKP, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
- ),
-
- /* Fn (rgblight and backlight layout)
- * ,-----------------------------------------------------------------------------------.
- * | | | | | | | | | | | | |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | | | | | | | | | |RGBVA-|RGBVA+| |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | | | | | | | | | |RGBSA-|RGBSA+|RGBLYR|
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | | | | | | | | |RGBTOG|RGBHU-|RGBHU+|RGBMOD|
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | | | | | | | |BLTOGG| BL- | BL+ |BLBRTG|
- * `-----------------------------------------------------------------------------------'
- */
- [_FN] = LAYOUT_ortho_5x12_wrapper(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_VAD, RGB_VAI, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_SAD, RGB_SAI, RGB_LYR,
- _______, _______, _______, _______, _______, _______, _______, _______, RGB_TOG, RGB_HUD, RGB_HUI, RGB_MOD,
- _______, _______, _______, _______, _______, _______, _______, _______, BL_TOGG, BL_DOWN, BL_UP, BL_BRTG
- ),
-
- /* GIT
- * ,-----------------------------------------------------------------------------------.
- * | | | | | | | | | | | | |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | |CHRPCK| SHOW |REBASE|QK_BOOT | TAG | | PULL | INIT |REMOTE| PUSH | |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | | ADD |STATUS| DIFF |FETCH | GREP |STASH | |CHECKT| LOG | | |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | | | |COMMIT| MV |BRANCH| |MERGE | | | | |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | | | | | | | | | | | |
- * `-----------------------------------------------------------------------------------'
- */
- [_GIT] = LAYOUT_ortho_5x12_wrapper(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _________________GIT_LEFT1_________________, _________________GIT_RIGHT1________________, _______,
- _______, _________________GIT_LEFT2_________________, _________________GIT_RIGHT2________________, _______,
- _______, _________________GIT_LEFT3_________________, _________________GIT_RIGHT3________________, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
- )
-};
diff --git a/layouts/community/ortho_5x12/greatwizard/rules.mk b/layouts/community/ortho_5x12/greatwizard/rules.mk
deleted file mode 100644
index fbff04ed91..0000000000
--- a/layouts/community/ortho_5x12/greatwizard/rules.mk
+++ /dev/null
@@ -1,8 +0,0 @@
-EXTRAKEY_ENABLE = yes # Audio control and System control
-TAP_DANCE_ENABLE = yes # Enable Tap Dance
-
-LAYERS_ORTHO = yes
-LAYERS_PROGRAMMER = yes
-LAYER_GAME = yes
-LAYER_GIT = yes
-LAYER_FN = yes
diff --git a/layouts/community/ortho_5x12/manna-harbour_miryoku/config.h b/layouts/community/ortho_5x12/manna-harbour_miryoku/config.h
deleted file mode 100644
index f94af8118f..0000000000
--- a/layouts/community/ortho_5x12/manna-harbour_miryoku/config.h
+++ /dev/null
@@ -1,50 +0,0 @@
-// Copyright 2019 Manna Harbour
-// https://github.com/manna-harbour/miryoku
-
-// 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
-
-#if defined MIRYOKU_MAPPING_SPLIT
-#define LAYOUT_miryoku(\
-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,\
-N30, N31, K32, K33, K34, K35, K36, K37, N38, N39\
-)\
-LAYOUT_ortho_5x12(\
-KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,\
-KC_NO, K01, K02, K03, K04, KC_NO, KC_NO, K05, K06, K07, K08, KC_NO,\
-K00, K11, K12, K13, K14, KC_NO, KC_NO, K15, K16, K17, K18, K09,\
-K10, K21, K22, K23, K24, KC_NO, KC_NO, K25, K26, K27, K28, K19,\
-K20, KC_NO, KC_NO, K32, K33, K34, K35, K36, K37, KC_NO, KC_NO, K29\
-)
-#elif defined MIRYOKU_MAPPING_EXTENDED_THUMBS
-#define LAYOUT_miryoku(\
-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,\
-N30, N31, K32, K33, K34, K35, K36, K37, N38, N39\
-)\
-LAYOUT_ortho_5x12(\
-KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,\
-K00, K01, K02, K03, K04, KC_NO, KC_NO, K05, K06, K07, K08, K09,\
-K10, K11, K12, K13, K14, KC_NO, KC_NO, K15, K16, K17, K18, K19,\
-K20, K21, K22, K23, K24, KC_NO, KC_NO, K25, K26, K27, K28, K29,\
-KC_NO, KC_NO, KC_NO, K32, K33, K34, K35, K36, K37, KC_NO, KC_NO, KC_NO\
-)
-#else
-#define LAYOUT_miryoku(\
-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,\
-N30, N31, K32, K33, K34, K35, K36, K37, N38, N39\
-)\
-LAYOUT_ortho_5x12(\
-KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,\
-K00, K01, K02, K03, K04, KC_NO, KC_NO, K05, K06, K07, K08, K09,\
-K10, K11, K12, K13, K14, KC_NO, KC_NO, K15, K16, K17, K18, K19,\
-K20, K21, K22, K23, K24, KC_NO, KC_NO, K25, K26, K27, K28, K29,\
-KC_NO, KC_NO, K32, K33, K34, KC_NO, KC_NO, K35, K36, K37, KC_NO, KC_NO\
-)
-#endif
diff --git a/layouts/community/ortho_5x12/manna-harbour_miryoku/keymap.c b/layouts/community/ortho_5x12/manna-harbour_miryoku/keymap.c
deleted file mode 100644
index dbab7f9820..0000000000
--- a/layouts/community/ortho_5x12/manna-harbour_miryoku/keymap.c
+++ /dev/null
@@ -1,4 +0,0 @@
-// Copyright 2019 Manna Harbour
-// https://github.com/manna-harbour/miryoku
-
-// 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/>.
diff --git a/layouts/community/ortho_5x12/peej/keymap.c b/layouts/community/ortho_5x12/peej/keymap.c
deleted file mode 100644
index 95b1d43ac6..0000000000
--- a/layouts/community/ortho_5x12/peej/keymap.c
+++ /dev/null
@@ -1,54 +0,0 @@
-/* Copyright 2020 Paul James
- *
- * 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 "peej.h"
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
-[_BASE] = LAYOUT_PEEJ(
- BASE_ROW_1,
- BASE_ROW_2,
- BASE_ROW_3,
- BASE_ROW_4,
- BASE_ROW_5
-),
-
-[_SYMBOL] = LAYOUT_PEEJ(
- SYMBOL_ROW_1,
- SYMBOL_ROW_2,
- SYMBOL_ROW_3,
- SYMBOL_ROW_4,
- SYMBOL_ROW_5
-),
-
-[_FUNCTION] = LAYOUT_PEEJ(
- FUNCTION_ROW_1,
- FUNCTION_ROW_2,
- FUNCTION_ROW_3,
- FUNCTION_ROW_4,
- FUNCTION_ROW_5
-),
-
-[_ADJUST] = LAYOUT_PEEJ(
- ADJUST_ROW_1,
- ADJUST_ROW_2,
- ADJUST_ROW_3,
- ADJUST_ROW_4,
- ADJUST_ROW_5
-)
-
-};
diff --git a/layouts/community/ortho_5x12/readme.md b/layouts/community/ortho_5x12/readme.md
index b5037efecd..956f2b7023 100644
--- a/layouts/community/ortho_5x12/readme.md
+++ b/layouts/community/ortho_5x12/readme.md
@@ -1,3 +1,3 @@
# ortho_5x12
- LAYOUT_ortho_5x12 \ No newline at end of file
+ LAYOUT_ortho_5x12
diff --git a/layouts/community/ortho_5x12/riblee/config.h b/layouts/community/ortho_5x12/riblee/config.h
deleted file mode 100644
index 6f7393861e..0000000000
--- a/layouts/community/ortho_5x12/riblee/config.h
+++ /dev/null
@@ -1,18 +0,0 @@
-/* Copyright 2020 Janos Daniel Reibl <janos.daniel.reibl@protonmail.com> @riblee
- *
- * 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 UNICODE_SELECTED_MODES UNICODE_MODE_MACOS, UNICODE_MODE_LINUX
diff --git a/layouts/community/ortho_5x12/riblee/keymap.c b/layouts/community/ortho_5x12/riblee/keymap.c
deleted file mode 100644
index 4e6e80d9d3..0000000000
--- a/layouts/community/ortho_5x12/riblee/keymap.c
+++ /dev/null
@@ -1,205 +0,0 @@
-/* Copyright 2020 Janos Daniel Reibl <janos.daniel.reibl@protonmail.com> @riblee
- *
- * 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 "riblee.h"
-
-
-// Tap Dance definitions
-tap_dance_action_t tap_dance_actions[] = {
- [TD_A] = ACTION_TAP_DANCE_FN(dance_key_a),
- [TD_E] = ACTION_TAP_DANCE_FN(dance_key_e),
- [TD_I] = ACTION_TAP_DANCE_FN(dance_key_i),
- [TD_O] = ACTION_TAP_DANCE_FN(dance_key_o),
- [TD_U] = ACTION_TAP_DANCE_FN(dance_key_u),
-};
-
-// Tap Dance keys
-#define C_KC_A TD(TD_A)
-#define C_KC_E TD(TD_E)
-#define C_KC_I TD(TD_I)
-#define C_KC_O TD(TD_O)
-#define C_KC_U TD(TD_U)
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
-/* Qwerty
- * ,-----------------------------------------------------------------------------------.
- * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | Tab | Q | W | E | R | T | Y | U | I | O | P | Del |
- * |------+------+------+------+------+-------------+------+------+------+------+------|
- * | Esc | A | S | D | F | G | H | J | K | L | ; | " |
- * |------+------+------+------+------+------|------+------+------+------+------+------|
- * | Shift| Z | X | C | V | B | N | M | , | . | Up |Enter |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | Ctrl | GUI | Alt |Shift |Lower | Space |Raise | / | Left | Down |Right |
- * `-----------------------------------------------------------------------------------'
- */
-[_QWERTY] = LAYOUT_ortho_5x12(
- KC_GRV, 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_DEL,
- KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
- SC_LSPO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_UP, KC_ENT,
- KC_LCTL, KC_LGUI, KC_LALT, SC_RSPC, LOWER, KC_SPC, KC_SPC, RAISE, KC_SLSH, KC_LEFT, KC_DOWN, KC_RGHT
-),
-
-/* Hungarian
-* ,-----------------------------------------------------------------------------------.
-* | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp |
-* |------+------+------+------+------+------+------+------+------+------+------+------|
-* | Tab | Q | W | E | R | T | Y | U | I | O | P | Del |
-* |------+------+------+------+------+-------------+------+------+------+------+------|
-* | Esc | A | S | D | F | G | H | J | K | L | ; | " |
-* |------+------+------+------+------+------|------+------+------+------+------+------|
-* | Shift| Z | X | C | V | B | N | M | , | . | Up |Enter |
-* |------+------+------+------+------+------+------+------+------+------+------+------|
-* | Ctrl | GUI | Alt |Shift |Lower | Space |Raise | / | Left | Down |Right |
-* `-----------------------------------------------------------------------------------'
-*/
-[_HUNGARIAN] = LAYOUT_ortho_5x12(
- _______, _______, _______, _______, _______, _______, _______,_______, _______, _______, _______, _______,
- _______, _______, _______, C_KC_E, _______, _______, _______, C_KC_U, C_KC_I, C_KC_O, _______, _______,
- _______, C_KC_A, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
-),
-
-/* Colemak
- * ,-----------------------------------------------------------------------------------.
- * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | Tab | Q | W | F | P | G | J | L | U | Y | ; | Del |
- * |------+------+------+------+------+-------------+------+------+------+------+------|
- * | Esc | A | R | S | T | D | H | N | E | I | O | " |
- * |------+------+------+------+------+------|------+------+------+------+------+------|
- * | Shift| Z | X | C | V | B | K | M | , | . | Up |Enter |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | Ctrl | GUI | Alt |Shift |Lower | Space |Raise | / | Left | Down |Right |
- * `-----------------------------------------------------------------------------------'
- */
-[_COLEMAK] = LAYOUT_ortho_5x12(
- KC_GRV, 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_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_DEL,
- KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT,
- KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_UP, KC_ENT,
- KC_LCTL, KC_LGUI, KC_LALT, SC_RSPC, LOWER, KC_SPC, KC_SPC, RAISE, KC_SLSH, KC_LEFT, KC_DOWN, KC_RGHT
-),
-
-/* Dvorak
- * ,-----------------------------------------------------------------------------------.
- * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | Tab | " | , | . | P | Y | F | G | C | R | L | Del |
- * |------+------+------+------+------+-------------+------+------+------+------+------|
- * | Esc | A | O | E | U | I | D | H | T | N | S | / |
- * |------+------+------+------+------+------|------+------+------+------+------+------|
- * | Shift| ; | Q | J | K | X | B | M | W | V | Z |Enter |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | Ctrl | GUI | Alt |Shift |Lower | Space |Raise | Left | Down | Up |Right |
- * `-----------------------------------------------------------------------------------'
- */
-[_DVORAK] = LAYOUT_ortho_5x12(
- KC_GRV, 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_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_DEL,
- KC_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH,
- KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_ENT,
- KC_LCTL, KC_LGUI, KC_LALT, SC_RSPC, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT
-),
-
-/* Workman
- * ,-----------------------------------------------------------------------------------.
- * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | Tab | Q | D | R | W | B | J | F | U | P | ; | Del |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | Esc | A | S | H | T | G | Y | N | E | O | I | ' |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | Shift| Z | X | M | C | V | K | L | , | . | Up |Enter |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | Ctrl | GUI | Alt |Shift |Lower | Space |Raise | / | Left | Down |Right |
- * `-----------------------------------------------------------------------------------'
- */
-[_WORKMAN] = LAYOUT_ortho_5x12(
- KC_GRV, 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_D, KC_R, KC_W, KC_B, KC_J, KC_F, KC_U, KC_P, KC_SCLN, KC_DEL,
- KC_ESC, KC_A, KC_S, KC_H, KC_T, KC_G, KC_Y, KC_N, KC_E, KC_O, KC_I, KC_QUOT,
- KC_LSFT, KC_Z, KC_X, KC_M, KC_C, KC_V, KC_K, KC_L, KC_COMM, KC_DOT, KC_UP, KC_ENT,
- KC_LCTL, KC_LGUI, KC_LALT, SC_RSPC, LOWER, KC_SPC, KC_SPC, RAISE, KC_SLSH, KC_LEFT, KC_DOWN, KC_RGHT
-),
-
-/* Lower
- * ,-----------------------------------------------------------------------------------.
- * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp |
- * |------+------+------+------+------+-------------+------+------+------+------+------|
- * | ~ | ! | @ | # | $ | % | ^ | & | * | [ | ] | Del |
- * |------+------+------+------+------+-------------+------+------+------+------+------|
- * | Del | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | |
- * |------+------+------+------+------+------|------+------+------+------+------+------|
- * | | F7 | F8 | F9 | F10 | F11 | F12 | Ins | Home | End | MS_U | BTN2 |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | | | | | | BTN1 | BTN2 | | BTN1 | MS_L | MS_D | MS_R |
- * `-----------------------------------------------------------------------------------'
- */
-[_LOWER] = LAYOUT_ortho_5x12(
- KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC,
- KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LBRC, KC_RBRC, KC_DEL,
- KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE,
- _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_INS, KC_HOME, KC_END, KC_MS_U, KC_BTN2,
- _______, _______, _______, _______, _______, KC_BTN1, KC_BTN2, _______, KC_BTN1, KC_MS_L, KC_MS_D, KC_MS_R
-),
-
-/* Raise
- * ,-----------------------------------------------------------------------------------.
- * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 |
- * |------+------+------+------+------+-------------+------+------+------+------+------|
- * | Del | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ |
- * |------+------+------+------+------+------|------+------+------+------+------+------|
- * | Shift| F7 | F8 | F9 | F10 | F11 | F12 |ISO # | PGUP | PGDN | Vol+ | Play |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | | | | | | | | | Prev | Vol- | Next |
- * `-----------------------------------------------------------------------------------'
- */
-[_RAISE] = LAYOUT_ortho_5x12(
- 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_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,
- KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS,
- KC_LSFT, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NUHS, KC_PGUP, KC_PGDN, KC_VOLU, KC_MPLY,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MPRV, KC_VOLD, KC_MNXT
-),
-
-/* Adjust (Lower + Raise)
- * ,-----------------------------------------------------------------------------------.
- * | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | |Reset |Debug | | | | | | | Ins |Prt sc| Del |
- * |------+------+------+------+------+-------------+------+------+------+------+------|
- * | | |Mu mod|Aud on|AudOff|AGnorm|AGswap|Qwerty|Colemk|Dvorak| HUN |Wrkmn |
- * |------+------+------+------+------+------|------+------+------+------+------+------|
- * | | | | | UCM | R_UCM| NKRO |CGNorm|CGSwap| | | |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | | | | | | | | | | | |
- * `-----------------------------------------------------------------------------------'
- */
-[_ADJUST] = LAYOUT_ortho_5x12(
- KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,
- _______, QK_BOOT, DB_TOGG, _______, _______, _______, _______, _______, _______, KC_INS, KC_PSCR, KC_DEL,
- _______, _______, MU_NEXT, AU_ON, AU_OFF, AG_NORM, AG_SWAP, QWERTY, COLEMAK, DVORAK, HUNGARIAN, WORKMAN,
- _______, _______, _______, _______, UC_NEXT, UC_PREV, NK_TOGG, CG_NORM, CG_SWAP, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
-)
-
-}; \ No newline at end of file
diff --git a/layouts/community/ortho_5x12/riblee/readme.md b/layouts/community/ortho_5x12/riblee/readme.md
deleted file mode 100644
index 43ed0f34d1..0000000000
--- a/layouts/community/ortho_5x12/riblee/readme.md
+++ /dev/null
@@ -1,111 +0,0 @@
-# Riblee preonic
-
-This Hungarian layout is the same as Qwerty, but with modified vowels to support accent Hungarian keys (á, é, í, ó, ö, ő, ú, ü, ű) via Unicode and Tap Dance
-
-```
-
-Qwerty
-,-----------------------------------------------------------------------------------.
-| ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp |
-|------+------+------+------+------+------+------+------+------+------+------+------|
-| Tab | Q | W | E | R | T | Y | U | I | O | P | Del |
-|------+------+------+------+------+-------------+------+------+------+------+------|
-| Esc | A | S | D | F | G | H | J | K | L | ; | " |
-|------+------+------+------+------+------|------+------+------+------+------+------|
-| Shift| Z | X | C | V | B | N | M | , | . | Up |Enter |
-|------+------+------+------+------+------+------+------+------+------+------+------|
-| Ctrl | GUI | Alt |Shift |Lower | Space |Raise | / | Left | Down |Right |
-`-----------------------------------------------------------------------------------'
-
- Hungarian
-,-----------------------------------------------------------------------------------.
-| ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp |
-|------+------+------+------+------+------+------+------+------+------+------+------|
-| Tab | Q | W | E | R | T | Y | U | I | O | P | Del |
-|------+------+------+------+------+-------------+------+------+------+------+------|
-| Esc | A | S | D | F | G | H | J | K | L | ; | " |
-|------+------+------+------+------+------|------+------+------+------+------+------|
-| Shift| Z | X | C | V | B | N | M | , | . | Up |Enter |
-|------+------+------+------+------+------+------+------+------+------+------+------|
-| Ctrl | GUI | Alt |Shift |Lower | Space |Raise | / | Left | Down |Right |
-`-----------------------------------------------------------------------------------'
-
-Colemak
-,-----------------------------------------------------------------------------------.
-| ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp |
-|------+------+------+------+------+------+------+------+------+------+------+------|
-| Tab | Q | W | F | P | G | J | L | U | Y | ; | Del |
-|------+------+------+------+------+-------------+------+------+------+------+------|
-| Esc | A | R | S | T | D | H | N | E | I | O | " |
-|------+------+------+------+------+------|------+------+------+------+------+------|
-| Shift| Z | X | C | V | B | K | M | , | . | / |Enter |
-|------+------+------+------+------+------+------+------+------+------+------+------|
-| Ctrl | GUI | Alt |Shift |Lower | Space |Raise | Left | Down | Up |Right |
-`-----------------------------------------------------------------------------------'
-
-Dvorak
-,-----------------------------------------------------------------------------------.
-| ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp |
-|------+------+------+------+------+------+------+------+------+------+------+------|
-| Tab | " | , | . | P | Y | F | G | C | R | L | Del |
-|------+------+------+------+------+-------------+------+------+------+------+------|
-| Esc | A | O | E | U | I | D | H | T | N | S | / |
-|------+------+------+------+------+------|------+------+------+------+------+------|
-| Shift| ; | Q | J | K | X | B | M | W | V | Z |Enter |
-|------+------+------+------+------+------+------+------+------+------+------+------|
-| Ctrl | GUI | Alt |Shift |Lower | Space |Raise | Left | Down | Up |Right |
-`-----------------------------------------------------------------------------------'
-
-Workman
-,-----------------------------------------------------------------------------------.
-| ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp |
-|------+------+------+------+------+------+------+------+------+------+------+------|
-| Tab | Q | D | R | W | B | J | F | U | P | ; | Del |
-|------+------+------+------+------+------+------+------+------+------+------+------|
-| Esc | A | S | H | T | G | Y | N | E | O | I | ' |
-|------+------+------+------+------+------+------+------+------+------+------+------|
-| Shift| Z | X | M | C | V | K | L | , | . | Up |Enter |
-|------+------+------+------+------+------+------+------+------+------+------+------|
-| Ctrl | GUI | Alt |Shift |Lower | Space |Raise | / | Left | Down |Right |
-`-----------------------------------------------------------------------------------'
-
-Lower
-,-----------------------------------------------------------------------------------.
-| ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp |
-|------+------+------+------+------+-------------+------+------+------+------+------|
-| ~ | ! | @ | # | $ | % | ^ | & | * | [ | ] | Del |
-|------+------+------+------+------+-------------+------+------+------+------+------|
-| Del | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | |
-|------+------+------+------+------+------|------+------+------+------+------+------|
-| | F7 | F8 | F9 | F10 | F11 | F12 | | Home | End | MS_U | BTN2 |
-|------+------+------+------+------+------+------+------+------+------+------+------|
-| | | | | | BTN1 | BTN2 | | BTN1 | MS_L | MS_D | MS_R |
-`-----------------------------------------------------------------------------------'
-
-Raise
-,-----------------------------------------------------------------------------------.
-| ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - |
-|------+------+------+------+------+------+------+------+------+------+------+------|
-| F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 |
-|------+------+------+------+------+-------------+------+------+------+------+------|
-| Del | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ |
-|------+------+------+------+------+------|------+------+------+------+------+------|
-| Shift| F7 | F8 | F9 | F10 | F11 | F12 |ISO # | PGUP | PGDN | Vol+ | Play |
-|------+------+------+------+------+------+------+------+------+------+------+------|
-| | | | | | | | | Prev | Vol- | Next |
-`-----------------------------------------------------------------------------------'
-
-Adjust (Lower + Raise)
-,-----------------------------------------------------------------------------------.
-| F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 |
-|------+------+------+------+------+------+------+------+------+------+------+------|
-| |Reset |Debug | | | | | | | | | Del |
-|------+------+------+------+------+-------------+------+------+------+------+------|
-| | |Mu mod|Aud on|AudOff|AGnorm|AGswap|Qwerty|Colemk|Dvorak| HUN | |
-|------+------+------+------+------+------|------+------+------+------+------+------|
-| | | | | | | NKRO | Swap |Un swp|UC Mod| | |
-|------+------+------+------+------+------+------+------+------+------+------+------|
-| | | | | | | | | | | |
-`-----------------------------------------------------------------------------------'
-
-``` \ No newline at end of file
diff --git a/layouts/community/ortho_5x12/riblee/rules.mk b/layouts/community/ortho_5x12/riblee/rules.mk
deleted file mode 100644
index 517f2700e1..0000000000
--- a/layouts/community/ortho_5x12/riblee/rules.mk
+++ /dev/null
@@ -1,2 +0,0 @@
-UNICODE_ENABLE = yes
-TAP_DANCE_ENABLE = yes \ No newline at end of file
diff --git a/layouts/community/ortho_5x12/rs/config.h b/layouts/community/ortho_5x12/rs/config.h
deleted file mode 100644
index 6f70f09bee..0000000000
--- a/layouts/community/ortho_5x12/rs/config.h
+++ /dev/null
@@ -1 +0,0 @@
-#pragma once
diff --git a/layouts/community/ortho_5x12/rs/keymap.c b/layouts/community/ortho_5x12/rs/keymap.c
deleted file mode 100644
index 9667b032f3..0000000000
--- a/layouts/community/ortho_5x12/rs/keymap.c
+++ /dev/null
@@ -1,63 +0,0 @@
-#include QMK_KEYBOARD_H
-#include "rs.h"
-
-// Used to create a keymap using only KC_ prefixed keys
-#ifndef LAYOUT_kc
-#define LAYOUT_kc( \
- k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, \
- k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, \
- k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, \
- k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, \
- k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4a, k4b \
- ) \
- LAYOUT_ortho_5x12( \
- KC_##k00, KC_##k01, KC_##k02, KC_##k03, KC_##k04, KC_##k05, KC_##k06, KC_##k07, KC_##k08, KC_##k09, KC_##k0a, KC_##k0b, \
- KC_##k10, KC_##k11, KC_##k12, KC_##k13, KC_##k14, KC_##k15, KC_##k16, KC_##k17, KC_##k18, KC_##k19, KC_##k1a, KC_##k1b, \
- KC_##k20, KC_##k21, KC_##k22, KC_##k23, KC_##k24, KC_##k25, KC_##k26, KC_##k27, KC_##k28, KC_##k29, KC_##k2a, KC_##k2b, \
- KC_##k30, KC_##k31, KC_##k32, KC_##k33, KC_##k34, KC_##k35, KC_##k36, KC_##k37, KC_##k38, KC_##k39, KC_##k3a, KC_##k3b, \
- KC_##k40, KC_##k41, KC_##k42, KC_##k43, KC_##k44, KC_##k45, KC_##k46, KC_##k47, KC_##k48, KC_##k49, KC_##k4a, KC_##k4b \
- )
-#endif
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [_QWERTY] = LAYOUT_kc(
- // ,-----------------------------------------------------------------------------------.
- GRV , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 0 , MINS ,
- // |------+------+------+------+------+------+------+------+------+------+------+------|
- TAB , Q , W , E , R , T , Y , U , I , O , P , EQL ,
- // |------+------+------+------+------+------+------+------+------+------+------+------|
- ESCC , A , S , D , F , G , H , J , K , L , SCLN , QUOT ,
- // |------+------+------+------+------+------+------+------+------+------+------+------|
- LSFT , Z , X , C , V , B , N , M , COMM , DOT , SLSH , ENTS ,
- // |------+------+------+------+------+------+------+------+------+------+------+------|
- , , LCTL , LALT , LGUI , SPC , SPC , BCOD , FN , , LEFT , RGHT
- // `---------------------------------------------------+-------------------------------'
- ),
- [_CODE] = LAYOUT_kc(
- // ,-----------------------------------------------------------------------------------.
- , , , , , , , , , , , ,
- // |------+------+------+------+------+------+------+------+------+------+------+------|
- GRV , EXLM , AT , HASH , DLR , PERC , CIRC , LPLT , ASTR , RPGT , NEQL , ,
- // |------+------+------+------+------+------+------+------+------+------+------+------|
- , 1 , 2 , 3 , 4 , 5 , MINS , LBRC , UP , RBRC , , BSLS ,
- // |------+------+------+------+------+------+------+------+------+------+------+------|
- , 6 , 7 , 8 , 9 , 0 , AMPR , LEFT , DOWN , RGHT , , PIPE ,
- // |------+------+------+------+------+------+------+------+------+------+------+------|
- , , , , , DOT , , , , , ,
- // `-----------------------------------------------------------------------------------'
- ),
- [_FN] = LAYOUT_kc(
- // ,-----------------------------------------------------------------------------------.
- , F1 , F2 , F3 , F4 , F5 , F6 , F7 , F8 , F9 , F10 , F11 ,
- // |------+------+------+------+------+------+------+------+------+------+------+------|
- , , , , , , , , , , , ,
- // |------+------+------+------+------+------+------+------+------+------+------+------|
- BLTG , BLUP , , , , BRMU , VOLU , , PGUP , , , ,
- // |------+------+------+------+------+------+------+------+------+------+------+------|
- BLTG , BLDN , , , RST , BRMD , VOLD , CTRA , PGDN , CTRE , , ,
- // |------+------+------+------+------+------+------+------+------+------+------+------|
- , , , , , , MUTE , , , , ,
- // `-----------------------------------------------------------------------------------'
- ),
-};
-
diff --git a/layouts/community/ortho_5x12/rs/readme.md b/layouts/community/ortho_5x12/rs/readme.md
deleted file mode 100644
index d23ab66877..0000000000
--- a/layouts/community/ortho_5x12/rs/readme.md
+++ /dev/null
@@ -1 +0,0 @@
-See [rs readme](../../../../users/rs/readme.md). \ No newline at end of file
diff --git a/layouts/community/ortho_5x12/xyverz/config.h b/layouts/community/ortho_5x12/xyverz/config.h
deleted file mode 100644
index 5ee4d372ef..0000000000
--- a/layouts/community/ortho_5x12/xyverz/config.h
+++ /dev/null
@@ -1,36 +0,0 @@
-#ifndef CONFIG_USER_H
-#define CONFIG_USER_H
-
-#undef BACKLIGHT_LEVELS
-#define BACKLIGHT_LEVELS 8
-
-/* ws2812 RGB LED */
-#ifndef RGBLIGHT_ENABLE
-#undef WS2812_DI_PIN
-#endif
-#if defined(KEYBOARD_preonic_rev2)
- #define WS2812_DI_PIN B3
- #undef RGBLED_NUM
-#define RGBLIGHT_EFFECT_BREATHING
-#define RGBLIGHT_EFFECT_RAINBOW_MOOD
-#define RGBLIGHT_EFFECT_RAINBOW_SWIRL
-#define RGBLIGHT_EFFECT_SNAKE
-#define RGBLIGHT_EFFECT_KNIGHT
-#define RGBLIGHT_EFFECT_CHRISTMAS
-#define RGBLIGHT_EFFECT_STATIC_GRADIENT
-#define RGBLIGHT_EFFECT_RGB_TEST
-#define RGBLIGHT_EFFECT_ALTERNATING
-#define RGBLIGHT_EFFECT_TWINKLE
- #define RGBLED_NUM 11 // Number of LEDs
- #undef RGBLIGHT_HUE_STEP
- #define RGBLIGHT_HUE_STEP 8
- #undef RGBLIGHT_SAT_STEP
- #define RGBLIGHT_SAT_STEP 8
- #undef RGBLIGHT_VAL_STEP
- #define RGBLIGHT_VAL_STEP 8
-#endif
-
-// for the split boards //
-#define EE_HANDS
-
-#endif
diff --git a/layouts/community/ortho_5x12/xyverz/keymap.c b/layouts/community/ortho_5x12/xyverz/keymap.c
deleted file mode 100644
index afc9db4398..0000000000
--- a/layouts/community/ortho_5x12/xyverz/keymap.c
+++ /dev/null
@@ -1,178 +0,0 @@
-#include QMK_KEYBOARD_H
-
-enum layer_names { _QWERTY, _COLEMAK, _DVORAK, _LOWER, _RAISE, _ADJUST };
-
-enum custom_keycodes { QWERTY = SAFE_RANGE, COLEMAK, DVORAK, LOWER, RAISE, ADJUST };
-
-// Aliases to keep the keymap tidy
-#define GUIBSPC GUI_T(KC_BSPC) // GUI when held, BSPC when tapped.
-#define RGB_SWR RGB_M_SW // Swirl Animation alias
-#define RGB_SNK RGB_M_SN // Snake Animation alias
-#define MACLOCK LGUI(LCTL(KC_Q)) // Lock my MacBook!
-#define RAISE MO(_RAISE)
-#define LOWER MO(_LOWER)
-
-// clang-format off
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
-/* Qwerty
- * ,-----------------------------------------------------------------------------------.
- * | Esc | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | Tab | Q | W | E | R | T | Y | U | I | O | P | Del |
- * |------+------+------+------+------+-------------+------+------+------+------+------|
- * | ` | A | S | D | F | G | H | J | K | L | ; | " |
- * |------+------+------+------+------+------|------+------+------+------+------+------|
- * | Shift| Z | X | C | V | B | N | M | , | . | / | Shift|
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | Ctrl | Alt | Left |Right |Lower | Bksp |Space |Raise | Up | Down | GUI |Enter |
- * `-----------------------------------------------------------------------------------'
- */
-[_QWERTY] = LAYOUT_ortho_5x12 (
- 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_DEL ,
- KC_GRV, 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_RSFT,
- KC_LCTL, KC_LALT, KC_LEFT, KC_RGHT, LOWER, GUIBSPC, KC_SPC, RAISE, KC_UP, KC_DOWN, KC_RGUI, KC_ENT
- ),
-
-/* Colemak
- * ,-----------------------------------------------------------------------------------.
- * | Esc | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Grv |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | Tab | Q | W | F | P | G | J | L | U | Y | ; | Del |
- * |------+------+------+------+------+-------------+------+------+------+------+------|
- * | Bksp | A | R | S | T | D | H | N | E | I | O | " |
- * |------+------+------+------+------+------|------+------+------+------+------+------|
- * | Shift| Z | X | C | V | B | K | M | , | . | / | Shift|
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | Ctrl | Alt | Left |Right |Lower | Bksp |Space |Raise | Up | Down | GUI |Enter |
- * `-----------------------------------------------------------------------------------'
- */
-[_COLEMAK] = LAYOUT_ortho_5x12 (
- KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_GRV,
- KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_DEL ,
- 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_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,
- KC_LCTL, KC_LALT, KC_LEFT, KC_RGHT, LOWER, GUIBSPC, KC_SPC, RAISE, KC_UP, KC_DOWN, KC_RGUI, KC_ENT
- ),
-
-/* Dvorak
- * ,-----------------------------------------------------------------------------------.
- * | Esc | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | \ |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | Tab | " | , | . | P | Y | F | G | C | R | L | / |
- * |------+------+------+------+------+-------------+------+------+------+------+------|
- * | ` | A | O | E | U | I | D | H | T | N | S | - |
- * |------+------+------+------+------+------|------+------+------+------+------+------|
- * | Shift| ; | Q | J | K | X | B | M | W | V | Z | Shift|
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | Ctrl | Alt | Left |Right |Lower | Bksp |Space |Raise | Up | Down | GUI |Enter |
- * `-----------------------------------------------------------------------------------'
- */
-[_DVORAK] = LAYOUT_ortho_5x12 (
- KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSLS,
- 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_GRV, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_MINS,
- 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_LCTL, KC_LALT, KC_LEFT, KC_RGHT, LOWER, GUIBSPC, KC_SPC, RAISE, KC_UP, KC_DOWN, KC_RGUI, KC_ENT
- ),
-
-/* Lower
- * ,-----------------------------------------------------------------------------------.
- * | F11 | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F12 |
- * |------+------+------+------+------+-------------+------+------+------+------+------|
- * | | | | | | | | | | | | |
- * |------+------+------+------+------+-------------+------+------+------+------+------|
- * | Caps | | Mute | Vol- | Vol+ | | | | + | { | } | |
- * |------+------+------+------+------+------|------+------+------+------+------+------|
- * | | | Prev | Play | Next | | | | | | | |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | Brite| | Home | End | | Del | Ins | | PgUp | PgDN | |Enter |
- * `-----------------------------------------------------------------------------------'
- */
-[_LOWER] = LAYOUT_ortho_5x12 (
- KC_F11, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F12,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- KC_CAPS, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, _______, KC_PLUS, KC_LCBR, KC_RCBR, _______,
- _______, _______, KC_MPRV, KC_MPLY, KC_MNXT, _______, _______, _______, KC_PSCR, KC_SCRL, KC_PAUS, _______,
- BL_STEP, _______, KC_HOME, KC_END, _______, KC_DEL, KC_INS, _______, KC_PGUP, KC_PGDN, _______, _______
- ),
-
-/* Raise
- * ,-----------------------------------------------------------------------------------.
- * | F11 | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F12 |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | | | | | | | | | | | | |
- * |------+------+------+------+------+-------------+------+------+------+------+------|
- * | Caps | | Mute | Vol- | Vol+ | | | | = | [ | ] | |
- * |------+------+------+------+------+------|------+------+------+------+------+------|
- * | | | Prev | Play | Next | | | | PrSc | Slck | Paus | |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | Brite| | Home | End | | Del | Ins | | PgUp | PgDN | |Enter |
- * `-----------------------------------------------------------------------------------'
- */
-[_RAISE] = LAYOUT_ortho_5x12 (
- KC_F11, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F12,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- KC_CAPS, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, _______, KC_EQL, KC_LBRC, KC_RBRC, _______,
- _______, _______, KC_MPRV, KC_MPLY, KC_MNXT, _______, _______, _______, KC_PSCR, KC_SCRL, KC_PAUS, _______,
- BL_STEP, _______, KC_HOME, KC_END, _______, KC_DEL, KC_INS, _______, KC_PGUP, KC_PGDN, _______, _______
- ),
-
-/* Adjust (Lower + Raise)
- * ,-----------------------------------------------------------------------------------.
- * | F11 | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F12 |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | | Reset| | | | | | | | | | |
- * |------+------+------+------+------+-------------+------+------+------+------+------|
- * | | |RGB PL|RGB BR|RGB RB|AGnorm|AGswap|Qwerty|Colemk|Dvorak| | |
- * |------+------+------+------+------+------|------+------+------+------+------+------|
- * |RGB ON| MODE |RGB SW|RGB KN|RGB GR| HUE- | HUE+ | HUE- | SAT+ | SAT- | VAL+ | VAL- |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | | | | | | | | | | |MACLCK|
- * `-----------------------------------------------------------------------------------'
- */
-[_ADJUST] = LAYOUT_ortho_5x12 (
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, RGB_M_P, RGB_M_B, RGB_M_R, AG_NORM, AG_SWAP, QWERTY, COLEMAK, DVORAK, _______, _______,
- RGB_TOG, RGB_MOD, RGB_SWR, RGB_M_K, RGB_M_G, RGB_HUI, RGB_HUD, RGB_HUI, RGB_SAD, RGB_SAI, RGB_VAD, RGB_VAI,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, MACLOCK
- )
-};
-
-// clang-format on
-
-#ifdef AUDIO_ENABLE
-float tone_qwerty[][2] = SONG(QWERTY_SOUND);
-float tone_dvorak[][2] = SONG(DVORAK_SOUND);
-float tone_colemak[][2] = SONG(COLEMAK_SOUND);
-#endif
-
-void matrix_init_user(void) {
-#ifdef BOOTLOADER_CATERINA
- // This will disable the red LEDs on the ProMicros
- setPinInput(D5);
- setPinInput(B0);
-#endif
-};
-
-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) {
- if (record->event.pressed) {
- switch (keycode) {
- case QWERTY:
- set_single_persistent_default_layer(_QWERTY);
- return false;
- case COLEMAK:
- set_single_persistent_default_layer(_COLEMAK);
- return false;
- case DVORAK:
- set_single_persistent_default_layer(_DVORAK);
- return false;
- }
- }
- return true;
-}
diff --git a/layouts/community/ortho_5x12/xyverz/rules.mk b/layouts/community/ortho_5x12/xyverz/rules.mk
deleted file mode 100644
index 94b076ecef..0000000000
--- a/layouts/community/ortho_5x12/xyverz/rules.mk
+++ /dev/null
@@ -1,32 +0,0 @@
-# Build Options
-# change to "no" to disable the options, or define them in the Makefile in
-# the appropriate keymap folder that will get included automatically
-#
-BOOTMAGIC_ENABLE = no # Enable Bootmagic Lite
-MOUSEKEY_ENABLE = no # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
-COMMAND_ENABLE = no # Commands for debug and configuration
-MIDI_ENABLE = no # MIDI controls
-AUDIO_ENABLE = no # Audio output on port C6
-UNICODE_ENABLE = no # Unicode
-BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
-
-
-#ifneq ("$(KEYBOARD)","nyquist")
-# RGBLIGHT_ENABLE = yes
-# BACKLIGHT_ENABLE = yes
-#else
- RGBLIGHT_ENABLE = no
- BACKLIGHT_ENABLE = no
-#endif
-
-# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
-SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
-
-# Enable N-Key Rollover, except in cases of VUSB:
-ifeq ($(strip $(PROTOCOL)), VUSB)
- NKRO_ENABLE = no
-else
- NKRO_ENABLE = yes
-endif
diff --git a/layouts/community/ortho_5x14/peej/keymap.c b/layouts/community/ortho_5x14/peej/keymap.c
deleted file mode 100644
index ea55361bd5..0000000000
--- a/layouts/community/ortho_5x14/peej/keymap.c
+++ /dev/null
@@ -1,88 +0,0 @@
-/* Copyright 2020 Paul James
- *
- * 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 "peej.h"
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
-#define MODS KC_LCTL, KC_LALT, KC_LGUI, FUNCT
-#define ARROWS KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT
-
-/*
- * ,-----------------------------------------------------------------------------------------------------------------------------.
- * | ESC | 1 | 2 | 3 | 4 | 5 | - | = | 6 | 7 | 8 | 9 | 0 | BACK |
- * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
- * | TAB | Q | W | E | R | T | [ | ] | Y | U | I | O | P | \ |
- * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
- * | ESC | A | S | D | F | G | { | } | H | J | K | L | ; | ' |
- * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
- * | SHIFT | Z | X | C | V | B | ( | ) | N | M | , | . | / | ENTER |
- * `--------+--------+--------+--------+--------+-----------------+-----------------+--------+--------+--------+--------+--------'
- * | CTRL | ALT | CMD | FUNC | SPACE | BACKSPACE | LEFT | DOWN | UP | RIGHT |
- * `-----------------------------------------------------------------------------------------------------------'
-*/
-[_BASE] = LAYOUT_PEEJ_hhkb(
- QK_GESC, BASE_ROW_1_L, BASE_ROW_1_M, BASE_ROW_1_R, KC_BSPC,
- KC_TAB, BASE_ROW_2_L, BASE_ROW_2_M, BASE_ROW_2_R, KC_BSLS,
- CTLESC, BASE_ROW_3_L, BASE_ROW_3_M, BASE_ROW_3_R, KC_QUOT,
- KC_LSFT, BASE_ROW_4_L, BASE_ROW_4_M, BASE_ROW_4_R, KC_ENT,
- MODS, KC_SPC, KC_BSPC, ARROWS
-),
-
-/*
- * ,-----------------------------------------------------------------------------------------------------------------------------.
- * | LOCK | F1 | F2 | F3 | F4 | F5 | F11 | F12 | F6 | F7 | F8 | F9 | F10 | DEL |
- * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
- * | ADJUST | | | | | | | | | HOME | UP | PGUP | | |
- * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
- * | SHIFT | CTRL | ALT | CMD | | | | | | LEFT | DOWN | RIGHT | | |
- * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
- * | | | | | | | | | | END | SHIFT | PGDN | | |
- * `--------+--------+--------+--------+--------+-----------------+-----------------+--------+--------+--------+--------+--------'
- * | | | | | | ENTER | HOME | PGDN | PGUP | END |
- * `-----------------------------------------------------------------------------------------------------------'
- */
-[_FUNCTION] = LAYOUT_PEEJ_hhkb(
- LOCK, FUNCTION_ROW_1_L, ______2, FUNCTION_ROW_1_R, KC_DEL,
- ADJUST, ______5, ______2, FUNCTION_ROW_2_R, _______,
- KC_LSFT, FUNCTION_ROW_3_L, ______2, FUNCTION_ROW_3_R, _______,
- _______, ______5, ______2, FUNCTION_ROW_4_R, _______,
- ______4, _______, KC_ENT, ______4
-),
-
-/*
- * ,----------------------------------------Backlight-------------------------RGB-----Bright---Sat------Hue----------------------.
- * | LOCK | QK_BOOT | | | STEP | TOGGLE | | | TOGGLE | UP | UP | UP | | LOCK |
- * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
- * | | | | | | | | | MODE | DOWN | DOWN | DOWN | | |
- * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
- * | | | | | | | | | | | | | | |
- * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
- * | | Norm | Swap | | | | | | | | | | | |
- * `--------+--------+--------+--------+--------+-----------------+-----------------+--------+--------+--------+--------+--------'
- * | | | | | | | | | | |
- * `-----------------------------------------------------------------------------------------------------------'
- */
-[_ADJUST] = LAYOUT_PEEJ_hhkb(
- LOCK, ADJUST_ROW_2_L, XXXXXXX, XXXXXXX, ADJUST_ROW_2_R, LOCK,
- XXXXXXX, EMPTY_ROW, XXXXXXX, XXXXXXX, ADJUST_ROW_3_R, XXXXXXX,
- XXXXXXX, EMPTY_ROW, KC_MPLY, KC_MUTE, EMPTY_ROW, XXXXXXX,
- XXXXXXX, ADJUST_ROW_4_L, KC_VOLD, KC_VOLU, EMPTY_ROW, _______,
- XXXXXXX, XXXXXXX, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX
-)
-
-};
diff --git a/layouts/community/ortho_5x14/readme.md b/layouts/community/ortho_5x14/readme.md
new file mode 100644
index 0000000000..bf2af9a639
--- /dev/null
+++ b/layouts/community/ortho_5x14/readme.md
@@ -0,0 +1,3 @@
+# ortho_5x14
+
+ LAYOUT_ortho_5x14
diff --git a/layouts/community/ortho_5x14/yet-another-developer/config.h b/layouts/community/ortho_5x14/yet-another-developer/config.h
deleted file mode 100644
index 933f2f3ad7..0000000000
--- a/layouts/community/ortho_5x14/yet-another-developer/config.h
+++ /dev/null
@@ -1,31 +0,0 @@
-#pragma once
-
-/* ws2812 RGB LED */
-#if defined(KEYBOARD_fractal)
-# define WS2812_DI_PIN D2
-# undef RGBLED_NUM
-# define RGBLIGHT_EFFECT_BREATHING
-# define RGBLIGHT_EFFECT_RAINBOW_MOOD
-# define RGBLIGHT_EFFECT_RAINBOW_SWIRL
-# define RGBLIGHT_EFFECT_SNAKE
-# define RGBLIGHT_EFFECT_KNIGHT
-# define RGBLIGHT_EFFECT_CHRISTMAS
-# define RGBLIGHT_EFFECT_STATIC_GRADIENT
-# define RGBLIGHT_EFFECT_RGB_TEST
-# define RGBLIGHT_EFFECT_ALTERNATING
-# define RGBLIGHT_EFFECT_TWINKLE
-# define RGBLED_NUM 29 // Number of LEDs
-# undef RGBLIGHT_HUE_STEP
-# define RGBLIGHT_HUE_STEP 8
-# undef RGBLIGHT_SAT_STEP
-# define RGBLIGHT_SAT_STEP 8
-# undef RGBLIGHT_VAL_STEP
-# define RGBLIGHT_VAL_STEP 8
-# define RGBLIGHT_LIMIT_VAL 175
-# define RGBLIGHT_SLEEP
-
-# define RGBLIGHT_EFFECT_KNIGHT_OFFSET 3
-# define RGBLIGHT_EFFECT_KNIGHT_LED_NUM 14
-# define AUDIO_PIN B7
-# define NO_MUSIC_MODE
-#endif
diff --git a/layouts/community/ortho_5x14/yet-another-developer/keymap.c b/layouts/community/ortho_5x14/yet-another-developer/keymap.c
deleted file mode 100644
index ea4252b6d7..0000000000
--- a/layouts/community/ortho_5x14/yet-another-developer/keymap.c
+++ /dev/null
@@ -1,208 +0,0 @@
-#include QMK_KEYBOARD_H
-#include "yet-another-developer.h"
-
-// clang-format off
-
-/* ---------- LEFT HAND ----------- ---------- RIGHT HAND ---------- */
-#define LAYOUT_ergodash_pretty( \
- L00, L01, L02, L03, L04, L05, L06, R00, R01, R02, R03, R04, R05, R06, \
- L10, L11, L12, L13, L14, L15, L16, R10, R11, R12, R13, R14, R15, R16, \
- L20, L21, L22, L23, L24, L25, L26, R20, R21, R22, R23, R24, R25, R26, \
- L30, L31, L32, L33, L34, L35, R31, R32, R33, R34, R35, R36, \
- L40, L41, L42, L43, R43, R44, R45, R46 \
- L36, R30, \
- L44, L45, L46, R40, R41, R42, \
- ) \
- /* matrix positions */ \
- { \
- { L00, L01, L02, L03, L04, L05, L06 }, \
- { L10, L11, L12, L13, L14, L15, L16 }, \
- { L20, L21, L22, L23, L24, L25, L26 }, \
- { L30, L31, L32, L33, L34, L35, L36 }, \
- { L40, L41, L42, L43, L44, L45, L46 }, \
- { R06, R05, R04, R03, R02, R01, R00 }, \
- { R16, R15, R14, R13, R12, R11, R10 }, \
- { R26, R25, R24, R23, R22, R21, R20 }, \
- { R36, R35, R34, R33, R32, R31, R30 }, \
- { R46, R45, R44, R43, R42, R41, R40 } \
- }
-
-#define LAYOUT_ergodash_pretty_wrapper(...) LAYOUT_ergodash_pretty(__VA_ARGS__)
-
-#define LAYOUT_ergodash_pretty_base( \
- K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, \
- K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, \
- K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A \
- ) \
- LAYOUT_ergodox_pretty_wrapper( \
- KC_ESC, ________________NUMBER_LEFT________________, KC_LBRC, KC_RBRC, ________________NUMBER_RIGHT_______________, KC_PSCR, \
- KC_GRV, K01, K02, K03, K04, K05, KC_MINS, KC_EQL, K06, K07, K08, K09, K0A, KC_BSLS, \
- KC_TAB, ALT_T(K11), K12, K13, K14, K15, KC_DEL, KC_BSPC, K16, K17, K18, K19, K1A, RALT_T(KC_QUOT), \
- KC_LSFT, CTL_T(K21), K22, K23, K24, K25, K26, K27, K28, K29, RCTL_T(K2A), KC_MRSF, \
- KC_LCTL, KC_LGUI, KC_LALT, EISU, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT \
- LT(_LOWER, KC_SPC), LT(_RAISE, KC_ENT), \
- OS_LGUI,LT(_LOWER, KC_SPC),KC_DEL, KC_BSPC, LT(_RAISE, KC_ENT), OS_RGUI \
- )
-
-#define LAYOUT_ergodash_pretty_base_wrapper(...) LAYOUT_ergodash_pretty_base(__VA_ARGS__)
-
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-/* Keymap 0: QWERTY Layer
- *
- *
- * ,--------------------------------------------------. ,--------------------------------------------------.
- * | = + | 1 ! | 2 @ | 3 # | 4 $ | 5 % | TG(4)| | TG(4)| 6 ^ | 7 & | 8 * | 9 ( | 0 ) | - _ |
- * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | TAB | Q | W | E | R | T | TG(3)| |TG(3) | Y | U | I | O | P | \ | |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | Bksp | A | S | D | F | G |------| |------| H | J | K | L | ; | ' " |
- * |--------+------+------+------+------+------| TG(2)| | TG(2)|------+------+------+------+------+--------|
- * | Shift | Z | X | C | V | B | | | | N | M | , < | . > | ? / | Shift |
- * |--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------|
- * | `/SYM | MEH | LGUI | [ { | | LEFT | DOWN | UP |RIGHT | SYMB |
- * `-----------------------------' `------------------------------------'
- * ,--------------. ,--------------.
- * |Alt/Ap| Win | | Alt |Ctl/Esc|
- * ,------|------|-------| |------+-------+------.
- * | | | Home | | PgUp | | |
- * `---------------------' `---------------------'
- */
- [_QWERTY] = LAYOUT_ergodash_pretty_base_wrapper(
- _________________QWERTY_L1_________________, _________________QWERTY_R1_________________,
- _________________QWERTY_L2_________________, _________________QWERTY_R2_________________,
- _________________QWERTY_L3_________________, _________________QWERTY_R3_________________
- ),
-/* Keymap 0: COLEMAK layer
- *
- * ,--------------------------------------------------. ,--------------------------------------------------.
- * | = | 1 | 2 | 3 | 4 | 5 | LEFT | | RIGHT| 6 | 7 | 8 | 9 | 0 | - |
- * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | Del | Q | W | F | P | G | L1 | | L1 | J | L | U | Y | ; | \ |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | BkSp | A | R | S | T | D |------| |------| H | N | E | I |O / L2| ' |
- * |--------+------+------+------+------+------| OVER | | Meh |------+------+------+------+------+--------|
- * | LShift |Z/Ctrl| X | C | V | B | | | | K | M | , | . |//Ctrl| RShift |
- * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * | `/SYM | MEH | LGUI | [ { | | LEFT | DOWN | UP |RIGHT | SYMB |
- * `-----------------------------' `------------------------------------'
- * ,--------------. ,--------------.
- * |Alt/Ap| Win | | Alt |Ctl/Esc|
- * ,------|------|-------| |------+-------+------.
- * | | | Home | | PgUp | | |
- * `---------------------' `---------------------'
- */
-// If it accepts an argument (i.e, is a function), it doesn't need KC_.
-// Otherwise, it needs KC_*
- [_COLEMAK] = LAYOUT_ergodash_pretty_base_wrapper(
- _________________COLEMAK_L1________________, _________________COLEMAK_R1________________,
- _________________COLEMAK_L2________________, _________________COLEMAK_R2________________,
- _________________COLEMAK_L3________________, _________________COLEMAK_R3________________
- ),
-
-// Reverts OSM(Shift) to normal Shifts. However, may not need since we fixed the issue with RDP (LOCAL RESOURCES)
- [_MODS] = LAYOUT_ergodash_pretty_wrapper(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- KC_LSFT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_RSFT,
- _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______
- ),
-
-
-/* Keymap 4: Customized Overwatch Layout
- *
- * ,--------------------------------------------------. ,--------------------------------------------------.
- * | ESC | | | | | | | | | F9 | F10 | F11 | F12 | | |
- * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | F1 | K | Q | W | E | R | T | | | | | | | | |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | TAB | G | A | S | D | F |------| |------| | | | | | |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | LCTR | LSHFT| Z | X | C | V | | | | N | M | | | | |
- * |--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------|
- * | `/SYM | MEH | LGUI | [ { | | LEFT | DOWN | UP |RIGHT | SYMB |
- * `-----------------------------' `------------------------------------'
- * ,--------------. ,--------------.
- * |Alt/Ap| Win | | Alt |Ctl/Esc|
- * ,------|------|-------| |------+-------+------.
- * | | | Home | | PgUp | | |
- * `---------------------' `---------------------'
- */
- [_GAMEPAD] = LAYOUT_ergodash_pretty_wrapper(
- KC_ESC, KC_NO, KC_1, KC_2, KC_3, HYPR(KC_Q), HYPR(KC_GRV), KC_TRNS, KC_F9, KC_F10, KC_F11, KC_F12, KC_NO, KC_NO,
- KC_F1, KC_K, KC_Q, KC_W, KC_E, KC_R, KC_T, UC_SHRG, UC_DISA, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
- KC_TAB, KC_G, KC_A, KC_S, KC_D, KC_F, KC_I, KC_O, KC_NO, KC_NO, KC_NO, KC_NO,
- KC_LCTL, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_TRNS, TG(_GAMEPAD), KC_N, KC_M, KC_NO, KC_NO, KC_NO, KC_NO,
- KC_GRV, KC_U, KC_I, KC_Y, KC_T, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_NO,
- KC_O, KC_P, MAGIC_TOGGLE_NKRO, LALT(KC_PSCR),
- KC_LGUI, KC_HYPR,
- KC_V, KC_SPC, KC_H, KC_NO, KC_NO, KC_SWAP_NUM
- ),
-
-/* Keymap 3:
- *
- * ,--------------------------------------------------. ,--------------------------------------------------.
- * | ESC | V | D | ALT | | | | | | | | | | | |
- * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | TAB | S | I | F | M | T | | | | | | | | | |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | Q | 1 | 2 | 3 | 4 | G |------| |------| | | | | | |
- * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | NUMLOCK| NUM1 | NUM2 | NUM3 | NUM4 | Z | | | | | | | | | |
- * |--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * | `/SYM | MEH | LGUI | [ { | | LEFT | DOWN | UP |RIGHT | SYMB |
- * `-----------------------------' `------------------------------------'
- * ,--------------. ,--------------.
- * |Alt/Ap| Win | | Alt |Ctl/Esc|
- * ,------|------|-------| |------+-------+------.
- * | | | Home | | PgUp | | |
- * `---------------------' `---------------------'
- */
- [_DIABLO] = LAYOUT_ergodash_pretty_wrapper(
- KC_ESC, KC_V, KC_D, KC_LALT, KC_NO, KC_NO, KC_NO, KC_TRNS, KC_F9, KC_F10, KC_F11, KC_F12, KC_NO, KC_NO,
- KC_TAB, KC_S, KC_I, KC_F, KC_M, KC_T, KC_TRNS, KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
- KC_Q, KC_1, KC_2, KC_3, KC_4, KC_G, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
- KC_LCTL, KC_D3_1, KC_D3_2, KC_D3_3, KC_D3_4, KC_Z, KC_NO, KC_NO, KC_N, KC_M, KC_NO, KC_NO, KC_NO, KC_NO,
- KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
- KC_L, KC_J, KC_NO, KC_NO,
- KC_F, KC_NO,
- SFT_T(KC_SPACE), ALT_T(KC_Q), KC_DIABLO_CLEAR, KC_PGDN, KC_DEL, KC_ENT
- ),
-
- [_LOWER] = LAYOUT_ergodash_pretty_wrapper(
- KC_F12, _________________FUNC_LEFT_________________, _______, _______, _________________FUNC_RIGHT________________, KC_F11,
- KC_TILD, _________________LOWER_L1__________________, _______, _______, _________________LOWER_R1__________________, KC_PIPE,
- _______, ___________________BLANK___________________, _________________LOWER_R2__________________, KC_DQUO,
- _______, ___________________BLANK___________________, _______, _______, _________________LOWER_R3__________________, KC_PSCR,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PAUS,
- _______, _______, _______, _______,
- _______, _______,
- _______, _______, _______, _______, _______, _______
- ),
-
- [_RAISE] = LAYOUT_ergodash_pretty_wrapper(
- KC_F12, _________________FUNC_LEFT_________________, _______, _______, _________________FUNC_RIGHT________________, KC_F11,
- KC_GRV, _________________RAISE_L1__________________, _______, _______, _________________RAISE_R1__________________, KC_BSLS,
- _______, _________________RAISE_L2__________________, _________________RAISE_R2__________________, KC_QUOT,
- _______, _________________RAISE_L3__________________, _______, _______, _________________RAISE_R3__________________, KC_PSCR,
- _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_PGUP, KC_END, KC_SCRL,
- _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______
- ),
-
- [_ADJUST] = LAYOUT_ergodash_pretty_wrapper(
- KC_MAKE, _______, _______, _______, _______, _______, _______, KC_NUKE, _________________ADJUST_R1_________________, KC_RST,
- VRSN, _________________ADJUST_L1_________________, _______, _______, _______, _______, _______, _______, _______, EE_CLR,
- _______, _________________ADJUST_L2_________________, _________________ADJUST_R2_________________, RGB_IDL,
- _______, _________________ADJUST_L3_________________, _______, _______, _________________ADJUST_R3_________________, TG(_MODS),
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______,
- _______, _______,
- _______, _______, _______, _______, _______, _______
- ),
-
-};
-// clang-format on
diff --git a/layouts/community/ortho_5x14/yet-another-developer/rules.mk b/layouts/community/ortho_5x14/yet-another-developer/rules.mk
deleted file mode 100644
index 8b13789179..0000000000
--- a/layouts/community/ortho_5x14/yet-another-developer/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-
diff --git a/layouts/community/ortho_5x15/manna-harbour_miryoku/config.h b/layouts/community/ortho_5x15/manna-harbour_miryoku/config.h
deleted file mode 100644
index e0ac4b1493..0000000000
--- a/layouts/community/ortho_5x15/manna-harbour_miryoku/config.h
+++ /dev/null
@@ -1,38 +0,0 @@
-// Copyright 2019 Manna Harbour
-// https://github.com/manna-harbour/miryoku
-
-// 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 XXX KC_NO
-
-#if defined MIRYOKU_MAPPING_EXTENDED_THUMBS
-#define LAYOUT_miryoku(\
-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,\
-N30, N31, K32, K33, K34, K35, K36, K37, N38, N39\
-)\
-LAYOUT_ortho_5x15(\
-XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX,\
-K00, K01, K02, K03, K04, XXX, XXX, XXX, XXX, XXX, K05, K06, K07, K08, K09,\
-K10, K11, K12, K13, K14, XXX, XXX, XXX, XXX, XXX, K15, K16, K17, K18, K19,\
-K20, K21, K22, K23, K24, XXX, XXX, XXX, XXX, XXX, K25, K26, K27, K28, K29,\
-XXX, XXX, XXX, K32, K33, K34, XXX, XXX, XXX, K35, K36, K37, XXX, XXX, XXX\
-)
-#else
-#define LAYOUT_miryoku(\
-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,\
-N30, N31, K32, K33, K34, K35, K36, K37, N38, N39\
-)\
-LAYOUT_ortho_5x15(\
-XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX,\
-K00, K01, K02, K03, K04, XXX, XXX, XXX, XXX, XXX, K05, K06, K07, K08, K09,\
-K10, K11, K12, K13, K14, XXX, XXX, XXX, XXX, XXX, K15, K16, K17, K18, K19,\
-K20, K21, K22, K23, K24, XXX, XXX, XXX, XXX, XXX, K25, K26, K27, K28, K29,\
-XXX, XXX, K32, K33, K34, XXX, XXX, XXX, XXX, XXX, K35, K36, K37, XXX, XXX\
-)
-#endif
diff --git a/layouts/community/ortho_5x15/manna-harbour_miryoku/keymap.c b/layouts/community/ortho_5x15/manna-harbour_miryoku/keymap.c
deleted file mode 100644
index dbab7f9820..0000000000
--- a/layouts/community/ortho_5x15/manna-harbour_miryoku/keymap.c
+++ /dev/null
@@ -1,4 +0,0 @@
-// Copyright 2019 Manna Harbour
-// https://github.com/manna-harbour/miryoku
-
-// 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/>.
diff --git a/layouts/community/ortho_5x15/readme.md b/layouts/community/ortho_5x15/readme.md
index 137af0aeb0..2fe7c7f769 100644
--- a/layouts/community/ortho_5x15/readme.md
+++ b/layouts/community/ortho_5x15/readme.md
@@ -1,3 +1,3 @@
# ortho_5x15
- LAYOUT_ortho_5x15 \ No newline at end of file
+ LAYOUT_ortho_5x15
diff --git a/layouts/community/ortho_5x15/wanleg/config.h b/layouts/community/ortho_5x15/wanleg/config.h
deleted file mode 100644
index 3e809cb842..0000000000
--- a/layouts/community/ortho_5x15/wanleg/config.h
+++ /dev/null
@@ -1,13 +0,0 @@
-#pragma once
-
-//5x5 powered by Adafruit Feather 32u4 Bluefruit LE
-#if defined(KEYBOARD_40percentclub_5x5) && defined(BLUEFRUIT)
-
-//need to undefine standard 5x5 array before defining alternate Bluefruit array
-#undef MATRIX_ROW_PINS
-#undef MATRIX_COL_PINS
-#define MATRIX_ROW_PINS { F7, F6, F5, D1, D0 }
-//last 5 elements not tested
-#define MATRIX_COL_PINS { C6, D7, B5, B6, B7, D6, C7, F0, F1, F4, B1, B2, B3, D2, D3 }
-
-#endif
diff --git a/layouts/community/ortho_5x15/wanleg/keymap.c b/layouts/community/ortho_5x15/wanleg/keymap.c
deleted file mode 100644
index b54562c701..0000000000
--- a/layouts/community/ortho_5x15/wanleg/keymap.c
+++ /dev/null
@@ -1,274 +0,0 @@
-#include QMK_KEYBOARD_H
-#include "wanleg.h"
-
-#define _________________BLANK_50__________________ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
-
-#if defined(PADC)
-#define LAYOUT_75_base( \
- K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0a, K0b, K0c, K0d, K0e, \
- K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1a, K1b, K1c, K1d, K1e, \
- K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2a, K2b, K2c, K2d, K2e, \
- K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3a, K3b, K3c, K3d, K3e \
- ) \
- LAYOUT_ortho_5x15_wrapper( \
- KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, QWERTY, GHERKIN, FUNCTION, KC_6, KC_7, KC_8, KC_9, KC_0, KC_NUM, \
- K00, K01, K02, K03, K04, K05, K0c, K0d, K0e, K06, K07, K08, K09, K0a, K0b, \
- K10, K11, K12, K13, K14, K15, K1c, K1d, K1e, K16, K17, K18, K19, K1a, K1b, \
- K20, K21, K22, K23, K24, K25, K2c, K2d, K2e, K26, K27, K28, K29, K2a, K2b, \
- K30, K31, K32, K33, K34, K35, K3c, K3d, K3e, K36, K37, K38, K39, K3a, K3b \
- )
-
-#elif defined(PADL)
-#define LAYOUT_75_base( \
- K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0a, K0b, K0c, K0d, K0e, \
- K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1a, K1b, K1c, K1d, K1e, \
- K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2a, K2b, K2c, K2d, K2e, \
- K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3a, K3b, K3c, K3d, K3e \
- ) \
- LAYOUT_ortho_5x15_wrapper( \
- QWERTY, GHERKIN, FUNCTION, KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_NUM, \
- K0c, K0d, K0e, K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0a, K0b, \
- K1c, K1d, K1e, K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1a, K1b, \
- K2c, K2d, K2e, K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2a, K2b, \
- K3c, K3d, K3e, K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3a, K3b \
- )
-
-#else
-#define LAYOUT_75_base( \
- K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0a, K0b, K0c, K0d, K0e, \
- K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1a, K1b, K1c, K1d, K1e, \
- K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2a, K2b, K2c, K2d, K2e, \
- K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3a, K3b, K3c, K3d, K3e \
- ) \
- LAYOUT_ortho_5x15_wrapper( \
- KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_NUM, QWERTY, GHERKIN, FUNCTION, \
- K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0a, K0b, K0c, K0d, K0e, \
- K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1a, K1b, K1c, K1d, K1e, \
- K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2a, K2b, K2c, K2d, K2e, \
- K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3a, K3b, K3c, K3d, K3e \
- )
-#endif
-
-#define LAYOUT_75_base_wrapper(...) LAYOUT_75_base(__VA_ARGS__)
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-#if defined(KEYBOARD_40percentclub_5x5)
-[_GK] = LAYOUT_75_base_wrapper(
- _______________GherkinLike_0_______________, KC_7, KC_8, KC_9,
- _______________GherkinLike_1_______________, KC_4, KC_5, KC_6,
- TD(TD_SFT_CAPS), SFT_T(KC_Z), KC_X, KC_C, LT(NUM, KC_V), LT(ETC, KC_B), KC_N, LT(DIR, KC_M), GUI_T(KC_COMM), ALT_T(KC_DOT), CTL_T(KC_BSPC), SFT_T(KC_ENT), KC_1, KC_2, KC_3,
- TD(RST_TAP_DANCE), GHERKIN50, KC_LALT, NUMPAD, NUMBER, ETCETERA, KC_SPC,DIRECTION, KC_RGUI, KC_RALT, KC_DEL, KC_RCTL, KC_0, KC_0, KC_DOT
-),
-
-[GK50] = LAYOUT_ortho_5x10_wrapper(
- KC_ESC, _______, _______, _______, _______, _______, _______, _______, _______, KC_BSPC,
- _______________Gherkin_Row_0_______________,
- _______________Gherkin_Row_1_______________,
- _______________Gherkin_Row_2_______________,
- TD(RST_TAP_DANCE), GHERKIN, NUMPAD, gNUMBER, gETCETERA, KC_SPC,gDIRECTION, KC_RGUI, KC_RALT, KC_RGUI
-),
-
-[gNUM] = LAYOUT_ortho_5x10_wrapper(
- _________________BLANK_50__________________,
- _______________Gherkin_NUM_0_______________,
- _______________Gherkin_NUM_1_______________,
- _______________Gherkin_NUM_2_______________,
- _______, _______, _______, _______, _______, KC_ENT, KC_RSFT, KC_RGUI, _______, _______
-),
-
-[gDIR] = LAYOUT_ortho_5x10_wrapper(
- _________________BLANK_50__________________,
- _______________Gherkin_DIR_0_______________,
- _______________Gherkin_DIR_1_______________,
- _______________Gherkin_DIR_2_______________,
- _________________BLANK_50__________________
-),
-
-[gETC] = LAYOUT_ortho_5x10_wrapper(
- _________________BLANK_50__________________,
- _______________Gherkin_ETC_0_______________,
- _______________Gherkin_ETC_1_______________,
- _______________Gherkin_ETC_2_______________,
- _______, KC_CAPS, _______, _______, _______, LALT(LCTL(KC_DEL)), _______, _______, _______, _______
-),
-
-#if defined(BLUEFRUIT)
-[PAD] = LAYOUT_ortho_5x5_wrapper(
- _______, _______, _______, OU_BT, OU_USB,
- _______________NUMPAD_Row__0_______________, _______,
- _______________NUMPAD_Row__1_______________, _______,
- _______________NUMPAD_Row__2_______________, _______,
- KC_KP_0, TD(LYR50_TAP_DANCE), KC_KP_DOT, KC_PMNS, _______
-),
-#else
- [PAD] = LAYOUT_ortho_5x5_wrapper(
- _______, _______, _______, _______, _______,
- _______________NUMPAD_Row__0_______________, _______,
- _______________NUMPAD_Row__1_______________, _______,
- _______________NUMPAD_Row__2_______________, _______,
- KC_KP_0, TD(LYR50_TAP_DANCE), KC_KP_DOT, KC_PMNS, _______
-),
-#endif
-#else
- /* Gherkin-Like
- * .--------------------------------------------------------------------------------------------------------------------------------------.
- * | ESC | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | NUMLOCK| qwerty | gherkin| FN |
- * |-----------------------------------------------------------------------------------------------------------+--------+--------+--------|
- * | | 7 | 8 | 9 |
- * | |--------+--------+--------|
- * | 4x12 GHERKIN LAYOUT | 4 | 5 | 6 |
- * | |--------+--------+--------|
- * | | 1 | 2 | 3 |
- * | |--------+--------+--------|
- * | | 0 | 0 | . |
- * '--------------------------------------------------------------------------------------------------------------------------------------'
- */
-[_GK] = LAYOUT_75_base_wrapper(
- _______________GherkinLike_0_______________, KC_7, KC_8, KC_9,
- _______________GherkinLike_1_______________, KC_4, KC_5, KC_6,
- _______________GherkinLike_2_______________, KC_1, KC_2, KC_3,
- _______________GherkinLike_3_______________, KC_0, KC_0, KC_DOT
-),
-#endif
-/* QWERTY
- * .--------------------------------------------------------------------------------------------------------------------------------------.
- * | ESC | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | NUMLOCK| qwerty | gherkin| FN |
- * |-----------------------------------------------------------------------------------------------------------+--------+--------+--------|
- * | | 7 | 8 | 9 |
- * | |--------+--------+--------|
- * | 4x12 QWERTY LAYOUT | 4 | 5 | 6 |
- * | |--------+--------+--------|
- * | | 1 | 2 | 3 |
- * | |--------+--------+--------|
- * | | 0 | 0 | . |
- * '--------------------------------------------------------------------------------------------------------------------------------------'
- */
-[_QW] = LAYOUT_75_base_wrapper(
- _______________Qwerty_Row__0_______________, KC_7, KC_8, KC_9,
- _______________Qwerty_Row__1_______________, KC_4, KC_5, KC_6,
- _______________Qwerty_Row__2_______________, KC_1, KC_2, KC_3,
- _______________Qwerty_Row__3_______________, KC_0, KC_0, KC_DOT
-),
-
- /* SUBTER
- * .--------------------------------------------------------------------------------------------------------------------------------------.
- * | | | | | | | | | | | | | | | |
- * |-----------------------------------------------------------------------------------------------------------+--------+-----------------|
- * | | / | * | - |
- * | |--------+--------+--------|
- * | 4x12 SUBTER LAYOUT | | | + |
- * | |--------+--------+--------|
- * | | | | ENTER |
- * | |--------+--------+--------|
- * | | | | |
- * '--------------------------------------------------------------------------------------------------------------------------------------'
- */
-[SUB] = LAYOUT_75_base_wrapper(
- _______________SUBTER_Row__0_______________, KC_PSLS, KC_PAST, KC_PMNS,
- _______________SUBTER_Row__1_______________, _______, _______, KC_PPLS,
- _______________SUBTER_Row__2_______________, _______, _______, KC_PENT,
- _______________SUBTER_Row__3_______________, _______, _______, _______
-),
-
-/* SUPRA
- * .--------------------------------------------------------------------------------------------------------------------------------------.
- * | | | | | | | | | | | | | | | |
- * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------|
- * | | | | |
- * | |--------+--------+--------|
- * | 4x12 SUPRA LAYOUT | | | |
- * | |--------+--------+--------|
- * | | | | |
- * | |--------+--------+--------|
- * | | | | |
- * '--------------------------------------------------------------------------------------------------------------------------------------'
- */
-[SUP] = LAYOUT_75_base_wrapper(
- ________________SUPRA_Row_0________________, _______, _______, _______,
- ________________SUPRA_Row_1________________, _______, _______, _______,
- ________________SUPRA_Row_2________________, _______, _______, _______,
- ________________SUPRA_Row_3________________, _______, _______, _______
-),
-
-/* Gherkin-Like Numbers
- * .--------------------------------------------------------------------------------------------------------------------------------------.
- * | | | | | | | | | | | | | | | |
- * |-----------------------------------------------------------------------------------------------------------|--------+-----------------|
- * | | / | * | - |
- * | |--------+--------+--------|
- * | 4x12 NUMBERS LAYOUT | | | + |
- * | |--------+--------+--------|
- * | | | | ENTER |
- * | |--------+--------+--------|
- * | | | | |
- * '--------------------------------------------------------------------------------------------------------------------------------------'
- */
-[NUM] = LAYOUT_75_base_wrapper(
- _______________NUMBERS_Row_0_______________, KC_PSLS, KC_PAST, KC_PMNS,
- _______________NUMBERS_Row_1_______________, _______, _______, KC_PPLS,
- _______________NUMBERS_Row_2_______________, _______, _______, KC_PENT,
- _______________NUMBERS_Row_3_______________, _______, _______, _______
-),
-
-/* Gherkin-Like Et Cetera
- * .--------------------------------------------------------------------------------------------------------------------------------------.
- * | | | | | | | | | | | | | | | |
- * |-----------------------------------------------------------------------------------------------------------|--------+-----------------|
- * | | | | |
- * | |--------+--------+--------|
- * | 4x12 ETCETERA LAYOUT | | | |
- * | |--------+--------+--------|
- * | | | | |
- * | |--------+--------+--------|
- * | | | | |
- * '--------------------------------------------------------------------------------------------------------------------------------------'
- */
-[ETC] = LAYOUT_75_base_wrapper(
- ______________ETCETERA_Row__0______________, _______, _______, _______,
- ______________ETCETERA_Row__1______________, _______, _______, _______,
- ______________ETCETERA_Row__2______________, _______, _______, _______,
- ______________ETCETERA_Row__3______________, _______, _______, _______
-),
-
-/* Gherkin-Like Directional Keys
- * .--------------------------------------------------------------------------------------------------------------------------------------.
- * | | | | | | | | | | | | | | | |
- * |-----------------------------------------------------------------------------------------------------------|--------+-----------------|
- * | | | | |
- * | |--------+--------+--------|
- * | 4x12 DIRECTIONAL LAYOUT | | | |
- * | |--------+--------+--------|
- * | | | | |
- * | |--------+--------+--------|
- * | | | | |
- * '--------------------------------------------------------------------------------------------------------------------------------------'
- */
-[DIR] = LAYOUT_75_base_wrapper(
- _____________DIRECTIONS_Row__0_____________, _______, _______, _______,
- _____________DIRECTIONS_Row__1_____________, _______, _______, _______,
- _____________DIRECTIONS_Row__2_____________, _______, _______, _______,
- _____________DIRECTIONS_Row__3_____________, _______, _______, _______
-),
-
-/* Gherkin FN/Lighting
- * .--------------------------------------------------------------------------------------------------------------------------------------.
- * | | | | | | | | | | | | | | | |
- * |-----------------------------------------------------------------------------------------------------------|--------+-----------------|
- * | | | | |
- * | |--------+--------+--------|
- * | 4x12 FN/Lighting LAYOUT | | | |
- * | |--------+--------+--------|
- * | | | | |
- * | |--------+--------+--------|
- * | | | | |
- * '--------------------------------------------------------------------------------------------------------------------------------------'
- */
-
-[_FN] = LAYOUT_75_base_wrapper(
- _______, _______________Gherkin_FN_0________________, _______, _______, _______, _______,
- _______, _______________Gherkin_FN_1________________, _______, _______, _______, _______,
- _______, _______________Gherkin_FN_2________________, _______, _______, _______, _______,
- _______, _________________BLANK_50__________________, _______, _______, _______, _______
-),
-
-};
diff --git a/layouts/community/ortho_5x15/wanleg/rules.mk b/layouts/community/ortho_5x15/wanleg/rules.mk
deleted file mode 100644
index 96bbaa458e..0000000000
--- a/layouts/community/ortho_5x15/wanleg/rules.mk
+++ /dev/null
@@ -1,11 +0,0 @@
-#ifeq ($(strip $(KEYBOARD)), xd75)
-#or
-#ifeq (,$(findstring xd75,$(KEYBOARD)))
-#something
-#endif
-
-#ifeq ($(strip $(KEYBOARD)), 40percentclub/5x5)
-#or
-#ifeq (,$(findstring 40percentclub/5x5,$(KEYBOARD)))
-#something
-#endif \ No newline at end of file
diff --git a/layouts/community/ortho_5x4/readme.md b/layouts/community/ortho_5x4/readme.md
new file mode 100644
index 0000000000..c953628ef6
--- /dev/null
+++ b/layouts/community/ortho_5x4/readme.md
@@ -0,0 +1,3 @@
+# ortho_5x4
+
+ LAYOUT_ortho_5x4
diff --git a/layouts/community/ortho_5x5/readme.md b/layouts/community/ortho_5x5/readme.md
index 3dd75765d1..2922976d3a 100644
--- a/layouts/community/ortho_5x5/readme.md
+++ b/layouts/community/ortho_5x5/readme.md
@@ -1,3 +1,3 @@
# ortho_5x5
- LAYOUT_ortho_5x5 \ No newline at end of file
+ LAYOUT_ortho_5x5
diff --git a/layouts/community/ortho_6x4/readme.md b/layouts/community/ortho_6x4/readme.md
new file mode 100644
index 0000000000..02b1c32d58
--- /dev/null
+++ b/layouts/community/ortho_6x4/readme.md
@@ -0,0 +1,3 @@
+# ortho_6x4
+
+ LAYOUT_ortho_6x4
diff --git a/layouts/community/planck_mit/guidoism/config.h b/layouts/community/planck_mit/guidoism/config.h
deleted file mode 100644
index df53dda471..0000000000
--- a/layouts/community/planck_mit/guidoism/config.h
+++ /dev/null
@@ -1,23 +0,0 @@
-/*
-This is the c configuration file for the keymap
-
-Copyright 2012 Jun Wako <wakojun@gmail.com>
-Copyright 2015 Jack Humbert
-
-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 USB_MAX_POWER_CONSUMPTION 50
diff --git a/layouts/community/planck_mit/guidoism/generate_c.py b/layouts/community/planck_mit/guidoism/generate_c.py
deleted file mode 100644
index 5bee576084..0000000000
--- a/layouts/community/planck_mit/guidoism/generate_c.py
+++ /dev/null
@@ -1,75 +0,0 @@
-import itertools
-import json
-import os.path
-import re
-
-KEYMAP_C = """/* {0}
-{1}
-*/
-[{2}] = {3}(
- {4})
-"""
-
-README_MD = """## {0}
-```
-{1}
-```
-"""
-
-base = os.path.dirname(__file__)
-
-layer_names = dict(enumerate(['_QWERTY', '_LOWER', '_RAISE', '_MOVEMENT', '_NUMPAD', '_FUNCTION']))
-layer_name = {('MO(%d)' % i): layer_names.get(i).strip('_') for i in layer_names.keys()}
-
-keys = json.load(open(os.path.join(base, 'keys.json')))
-
-d = json.load(open(os.path.join(base, 'guidoism.json')))
-
-def surround(s, a, b, c):
- return a + b.join(s) + c
-
-def pattern(cell, table):
- return ['─'*cell for i in range(table)]
-
-top = surround(pattern(5, 12), '┌', '┬', '┐')
-mid = surround(pattern(5, 12), '├', '┼', '┤')
-bottom = surround(pattern(5, 12), '└', '┴', '┘')
-
-from more_itertools import chunked, intersperse, interleave_longest
-
-def uni(k):
- return keys.get(k, k).lower().center(5)
-
-def c_layout(i, definition, template):
- c_name = layer_names[i]
- pretty_name = c_name.strip('_').capitalize()
- layout = d['layout']
-
- surround = lambda s: ''.join(interleave_longest(['│']*(len(s)+1), s))
- layer = list(map(uni, definition))
- layer[41] = layer[41].center(11)
- layer = chunked(layer, 12)
- rows = intersperse(mid, map(surround, layer))
- pretty = '\n'.join(itertools.chain([top], rows, [bottom]))
-
- surround = lambda s: ', '.join(s)
- layer = list(map(lambda k: layer_name.get(k, k), definition))
- layer = chunked(layer, 12)
- rows = map(surround, layer)
- c_layer = ',\n '.join(itertools.chain([], rows, []))
-
- return template.format(pretty_name, pretty, c_name, layout, c_layer)
-
-start = '// START_REPLACEMENT\n'
-end = '// END_REPLACEMENT\n'
-replacement = start + ',\n\n'.join(c_layout(i, l, KEYMAP_C) for i, l in enumerate(d['layers'])) + end
-keymap = os.path.join(base, 'keymap.c')
-existing = open(keymap).read()
-r = re.compile(r'// START_REPLACEMENT.*// END_REPLACEMENT', re.DOTALL)
-open(keymap, 'w').write(r.sub(replacement, existing))
-
-replacement = '## Current Configuration\n\n' + '\n\n'.join(c_layout(i, l, README_MD) for i, l in enumerate(d['layers']))
-keymap = os.path.join(base, 'readme.md')
-existing = open(keymap).read()
-r = re.compile(r'## Current Configuration.*', re.DOTALL)
-open(keymap, 'w').write(r.sub(replacement, existing))
diff --git a/layouts/community/planck_mit/guidoism/guidoism.json b/layouts/community/planck_mit/guidoism/guidoism.json
deleted file mode 100644
index 9c2083bbe8..0000000000
--- a/layouts/community/planck_mit/guidoism/guidoism.json
+++ /dev/null
@@ -1 +0,0 @@
-{"keyboard":"planck/rev4","keymap":"guidoism","layout":"LAYOUT_planck_mit","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_COLN","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_NO","MO(3)","KC_ESC","KC_LALT","KC_LGUI","MO(1)","LSFT_T(KC_SPC)","MO(2)","KC_RGUI","KC_RALT","KC_SCLN","MO(5)"],["KC_TILD","KC_EXLM","KC_AT","KC_HASH","KC_DLR","KC_PERC","KC_CIRC","KC_AMPR","KC_ASTR","KC_NO","KC_NO","KC_UNDO","KC_TRNS","KC_NO","KC_CUT","KC_COPY","KC_PSTE","KC_NO","KC_NO","KC_UNDS","KC_PLUS","KC_DQUO","KC_QUOT","KC_PIPE","KC_CAPS","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_MNXT","KC_VOLD","KC_VOLU","KC_MPLY"],["KC_GRV","KC_P1","KC_P2","KC_P3","KC_P4","KC_P5","KC_P6","KC_P7","KC_P8","KC_P9","KC_P0","KC_TRNS","KC_TRNS","KC_LBRC","KC_RBRC","KC_LPRN","KC_RPRN","KC_NO","KC_NO","KC_PMNS","KC_PEQL","KC_NO","KC_NO","KC_BSLS","KC_TRNS","KC_LT","KC_GT","KC_LCBR","KC_RCBR","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","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","DB_TOGG","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_PGUP","KC_UP","KC_PGDN","KC_NO","KC_TRNS","KC_TRNS","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_LEFT","KC_DOWN","KC_RGHT","KC_NO","KC_TRNS","KC_TRNS","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_HOME","KC_NO","KC_END","KC_NO","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS"],["KC_TRNS","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_PERC","KC_P7","KC_P8","KC_P9","KC_P0","KC_TRNS","KC_TRNS","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_DLR","KC_P4","KC_P5","KC_P6","KC_PDOT","KC_TRNS","KC_TRNS","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_P0","KC_P1","KC_P2","KC_P3","KC_PCMM","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_NO","KC_P0","KC_NO","KC_NO","KC_TRNS"],["KC_NO","KC_F1","KC_F2","KC_F3","KC_F4","KC_F5","KC_F6","KC_F7","KC_F8","KC_F9","KC_F10","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_TRNS"]]} \ No newline at end of file
diff --git a/layouts/community/planck_mit/guidoism/keymap.c b/layouts/community/planck_mit/guidoism/keymap.c
deleted file mode 100644
index df8a64c203..0000000000
--- a/layouts/community/planck_mit/guidoism/keymap.c
+++ /dev/null
@@ -1,183 +0,0 @@
-#include QMK_KEYBOARD_H
-
-extern keymap_config_t keymap_config;
-
-enum planck_layers {
- _QWERTY,
- _LOWER,
- _RAISE,
- _MOVEMENT,
- _NUMPAD,
- _FUNCTION,
-};
-
-enum planck_keycodes {
- QWERTY = SAFE_RANGE,
- LOWER,
- RAISE,
- MOVEMENT,
- NUMPAD,
-};
-
-#define FUNCTION MO(_FUNCTION)
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
-// START_REPLACEMENT
-/* Qwerty
-┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐
-│ ⇥ │ q │ w │ e │ r │ t │ y │ u │ i │ o │ p │ ⌫ │
-├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
-│ ctrl│ a │ s │ d │ f │ g │ h │ j │ k │ l │ : │ ⏎ │
-├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
-│ ⇧ │ z │ x │ c │ v │ b │ n │ m │ , │ . │ / │ │
-├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
-│ mov │ ⎋ │ ⌥ │ ⌘ │lower│ sp/sh │raise│ ⌘ │ ⌥ │ ; │ fn │
-└─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘
-*/
-[_QWERTY] = LAYOUT_planck_mit(
- 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_COLN, 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_NO,
- MOVEMENT, KC_ESC, KC_LALT, KC_LGUI, LOWER, LSFT_T(KC_SPC), RAISE, KC_RGUI, KC_RALT, KC_SCLN, FUNCTION)
-,
-
-/* Lower
-┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐
-│ ~ │ ! │ @ │ # │ $ │ % │ ^ │ & │ * │ │ │ undo│
-├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
-│ │ │ cut │ copy│paste│ │ │ _ │ + │ " │ ' │ | │
-├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
-│ caps│ │ │ │ │ │ │ │ │ │ │ │
-├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
-│ │ │ │ │ │ │ │ next│ vol-│ vol+│ play│
-└─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘
-*/
-[_LOWER] = LAYOUT_planck_mit(
- KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_NO, KC_NO, KC_UNDO,
- KC_TRNS, KC_NO, KC_CUT, KC_COPY, KC_PSTE, KC_NO, KC_NO, KC_UNDS, KC_PLUS, KC_DQUO, KC_QUOT, KC_PIPE,
- KC_CAPS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY)
-,
-
-/* Raise
-┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐
-│ ` │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ │
-├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
-│ │ [ │ ] │ ( │ ) │ │ │ - │ = │ │ │ \ │
-├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
-│ │ < │ > │ { │ } │ │ │ │ │ │ │ │
-├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
-│ │ │ │ │ │ │ │ │ │ │ │
-└─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘
-*/
-[_RAISE] = LAYOUT_planck_mit(
- KC_GRV, KC_P1, KC_P2, KC_P3, KC_P4, KC_P5, KC_P6, KC_P7, KC_P8, KC_P9, KC_P0, KC_TRNS,
- KC_TRNS, KC_LBRC, KC_RBRC, KC_LPRN, KC_RPRN, KC_NO, KC_NO, KC_PMNS, KC_PEQL, KC_NO, KC_NO, KC_BSLS,
- KC_TRNS, KC_LT, KC_GT, KC_LCBR, KC_RCBR, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS)
-,
-
-/* Movement
-┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐
-│reset│debug│ │ │ │ │ │ pgup│ ↑ │ pgdn│ │ │
-├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
-│ │ │ │ │ │ │ │ ← │ ↓ │ → │ │ │
-├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
-│ │ │ │ │ │ │ │ home│ │ end │ │ │
-├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
-│ │ │ │ │ │ │ │ │ │ │ │
-└─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘
-*/
-[_MOVEMENT] = LAYOUT_planck_mit(
- QK_BOOT, DB_TOGG, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_PGUP, KC_UP, KC_PGDN, KC_NO, KC_TRNS,
- KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_LEFT, KC_DOWN, KC_RGHT, KC_NO, KC_TRNS,
- KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_HOME, KC_NO, KC_END, KC_NO, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS)
-,
-
-/* Numpad
-┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐
-│ │ │ │ │ │ │ % │ 7 │ 8 │ 9 │ 0 │ │
-├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
-│ │ │ │ │ │ │ $ │ 4 │ 5 │ 6 │ . │ │
-├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
-│ │ │ │ │ │ │ 0 │ 1 │ 2 │ 3 │ , │ │
-├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
-│ │ │ │ │ │ │ │ 0 │ │ │ │
-└─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘
-*/
-[_NUMPAD] = LAYOUT_planck_mit(
- KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_PERC, KC_P7, KC_P8, KC_P9, KC_P0, KC_TRNS,
- KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_DLR, KC_P4, KC_P5, KC_P6, KC_PDOT, KC_TRNS,
- KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_P0, KC_P1, KC_P2, KC_P3, KC_PCMM, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_NO, KC_P0, KC_NO, KC_NO, KC_TRNS)
-,
-
-/* Function
-┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐
-│ │ f1 │ f2 │ f3 │ f4 │ f5 │ f6 │ f7 │ f8 │ f9 │ f10 │ │
-├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
-│ │ │ │ │ │ │ │ │ │ │ │ │
-├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
-│ │ │ │ │ │ │ │ │ │ │ │ │
-├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
-│ │ │ │ │ │ │ │ │ │ │ │
-└─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘
-*/
-[_FUNCTION] = LAYOUT_planck_mit(
- KC_NO, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_NO,
- KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
- KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
- KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_TRNS)
-// END_REPLACEMENT
-
-
-
-
-
-
-
-
-};
-
-
-bool process_record_user(uint16_t keycode, keyrecord_t *record) {
- switch (keycode) {
- case QWERTY:
- if (record->event.pressed) {
- set_single_persistent_default_layer(_QWERTY);
- }
- return false;
- break;
- case LOWER:
- if (record->event.pressed) {
- layer_on(_LOWER);
- update_tri_layer(_LOWER, _MOVEMENT, _NUMPAD);
- } else {
- layer_off(_LOWER);
- update_tri_layer(_LOWER, _MOVEMENT, _NUMPAD);
- }
- return false;
- break;
- case RAISE:
- if (record->event.pressed) {
- layer_on(_RAISE);
- } else {
- layer_off(_RAISE);
- }
- return false;
- break;
- case MOVEMENT:
- if (record->event.pressed) {
- layer_on(_MOVEMENT);
- update_tri_layer(_LOWER, _MOVEMENT, _NUMPAD);
- } else {
- layer_off(_MOVEMENT);
- update_tri_layer(_LOWER, _MOVEMENT, _NUMPAD);
- }
- return false;
- break;
- }
- return true;
-}
diff --git a/layouts/community/planck_mit/guidoism/keys.json b/layouts/community/planck_mit/guidoism/keys.json
deleted file mode 100644
index 31cecd5638..0000000000
--- a/layouts/community/planck_mit/guidoism/keys.json
+++ /dev/null
@@ -1,315 +0,0 @@
-{
- "KC_1": "1",
- "SHIFTED_KC_1": "!",
- "KC_2": "2",
- "SHIFTED_KC_2": "@",
- "KC_3": "3",
- "SHIFTED_KC_3": "#",
- "KC_4": "4",
- "SHIFTED_KC_4": "$",
- "KC_5": "5",
- "SHIFTED_KC_5": "%",
- "KC_6": "6",
- "SHIFTED_KC_6": "^",
- "KC_7": "7",
- "SHIFTED_KC_7": "&",
- "KC_8": "8",
- "SHIFTED_KC_8": "*",
- "KC_9": "9",
- "SHIFTED_KC_9": "(",
- "KC_0": "0",
- "SHIFTED_KC_0": ")",
- "KC_A": "a",
- "SHIFTED_KC_A": "A",
- "KC_B": "b",
- "SHIFTED_KC_B": "B",
- "KC_C": "c",
- "SHIFTED_KC_C": "C",
- "KC_D": "d",
- "SHIFTED_KC_D": "D",
- "KC_E": "e",
- "SHIFTED_KC_E": "E",
- "KC_F": "f",
- "SHIFTED_KC_F": "F",
- "KC_G": "g",
- "SHIFTED_KC_G": "G",
- "KC_H": "h",
- "SHIFTED_KC_H": "H",
- "KC_I": "i",
- "SHIFTED_KC_I": "I",
- "KC_J": "j",
- "SHIFTED_KC_J": "J",
- "KC_K": "k",
- "SHIFTED_KC_K": "K",
- "KC_L": "l",
- "SHIFTED_KC_L": "L",
- "KC_M": "m",
- "SHIFTED_KC_M": "M",
- "KC_N": "n",
- "SHIFTED_KC_N": "N",
- "KC_O": "o",
- "SHIFTED_KC_O": "O",
- "KC_P": "p",
- "SHIFTED_KC_P": "P",
- "KC_Q": "q",
- "SHIFTED_KC_Q": "Q",
- "KC_R": "r",
- "SHIFTED_KC_R": "R",
- "KC_S": "s",
- "SHIFTED_KC_S": "S",
- "KC_T": "t",
- "SHIFTED_KC_T": "T",
- "KC_U": "u",
- "SHIFTED_KC_U": "U",
- "KC_V": "v",
- "SHIFTED_KC_V": "V",
- "KC_W": "w",
- "SHIFTED_KC_W": "W",
- "KC_X": "x",
- "SHIFTED_KC_X": "X",
- "KC_Y": "y",
- "SHIFTED_KC_Y": "Y",
- "KC_Z": "z",
- "SHIFTED_KC_Z": "Z",
- "KC_ENTER": "\u23ce",
- "KC_ENT": "\u23ce",
- "KC_ESCAPE": "\u238b",
- "KC_ESC": "\u238b",
- "KC_BACKSPACE": "\u232b",
- "KC_BSPC": "\u232b",
- "KC_TAB": "\u21e5",
- "KC_SPACE": "",
- "KC_SPC": "",
- "KC_MINUS": "-",
- "KC_MINS": "-",
- "KC_EQUAL": "+",
- "KC_EQL": "=",
- "KC_LEFT_BRACKET": "{",
- "KC_LBRC": "[",
- "KC_RIGHT_BRACKET": "}",
- "KC_RBRC": "]",
- "KC_BSLS": "\\",
- "KC_BACKSLASH": "\\",
- "KC_SEMICOLON": ":",
- "KC_SCLN": ";",
- "KC_QUOTE": "\"",
- "KC_QUOT": "'",
- "KC_GRAVE": "`",
- "KC_GRV": "`",
- "KC_COMMA": ",",
- "KC_COMM": ",",
- "KC_DOT": ".",
- "KC_SLASH": "/",
- "KC_NUBS": "/",
- "KC_NUHS": "#",
- "KC_CAPS_LOCK": "Caps",
- "KC_CAPS": "Caps",
- "KC_LEFT_CTRL": "Ctrl",
- "KC_LCTL": "Ctrl",
- "KC_LEFT_SHIFT": "\u21e7",
- "KC_LSFT": "\u21e7",
- "KC_LALT": "\u2325",
- "KC_LGUI": "\u2318",
- "KC_LCMD": "\u2318",
- "KC_RIGHT_CTRL": "Right Control",
- "KC_RCTL": "Right Control",
- "KC_RIGHT_SHIFT": "\u21e7",
- "KC_RSFT": "\u21e7",
- "KC_RALT": "\u2325",
- "KC_RGUI": "\u2318",
- "KC_RCMD": "\u2318",
- "KC_LOCKING_CAPS_LOCK": "Locking Caps Lock",
- "KC_LCAP": "Locking Caps Lock",
- "KC_LOCKING_NUM_LOCK": "Locking Num Lock",
- "KC_LNUM": "Locking Num Lock",
- "KC_LOCKING_SCROLL_LOCK": "Locking Scroll Lock",
- "KC_LSCR": "Locking Scroll Lock",
- "KC_INT4": "JIS Henkan",
- "KC_INT5": "JIS Muhenkan",
- "KC_PRINT_SCREEN": "Print Screen",
- "KC_PSCR": "Print Screen",
- "KC_SCROLL_LOCK": "Scroll Lock",
- "KC_SCRL": "Scroll Lock",
- "KC_PAUSE": "Pause",
- "KC_PAUS": "Pause",
- "KC_INSERT": "Insert",
- "KC_INS": "Insert",
- "KC_HOME": "Home",
- "KC_PGUP": "PgUp",
- "KC_DELETE": "\u2326",
- "KC_DEL": "\u2326",
- "KC_END": "End",
- "KC_PAGE_DOWN": "PgDn",
- "KC_PGDN": "PgDn",
- "KC_RIGHT": "→",
- "KC_RGHT": "→",
- "KC_LEFT": "←",
- "KC_DOWN": "↓",
- "KC_UP": "↑",
- "KC_APPLICATION": "Application (Windows Menu Key)",
- "KC_APP": "Application (Windows Menu Key)",
- "KC_KB_POWER": "Deprecated by MS in favor of KC_SYSTEM_POWER.",
- "KC_EXECUTE": "Execute",
- "KC_HELP": "Help",
- "KC_MENU": "Menu",
- "KC_SELECT": "Select",
- "KC_AGAIN": "Again",
- "KC_UNDO": "Undo",
- "KC_CUT": "Cut",
- "KC_COPY": "Copy",
- "KC_PASTE": "Paste",
- "KC_FIND": "Find",
- "KC_ERAS": "Alternate Erase",
- "KC_SYRQ": "SysReq/Attention",
- "KC_CANCEL": "Cancel",
- "KC_CLEAR": "Clear",
- "KC_PRIOR": "Prior",
- "KC_RETURN": "Return",
- "KC_SEPARATOR": "Separator",
- "KC_OUT": "Out",
- "KC_OPER": "Oper",
- "KC_CLEAR_AGAIN": "Clear/Again",
- "KC_CRSEL": "CrSel/Props",
- "KC_EXSEL": "ExSel",
- "KC_SYSTEM_POWER": "System Power Down.",
- "KC_PWR": "System Power Down.",
- "KC_SYSTEM_SLEEP": "System Sleep",
- "KC_SLEP": "System Sleep",
- "KC_SYSTEM_WAKE": "System Wake",
- "KC_WAKE": "System Wake",
- "KC_STOP": "Stop",
- "KC_KB_MUTE": "Mute (macOS)",
- "KC_KB_VOLUME_UP": "vol+",
- "KC_KB_VOLUME_DOWN": "vol-",
- "KC_AUDIO_MUTE": "Mute",
- "KC_MUTE": "Mute",
- "KC_AUDIO_VOL_UP": "vol+",
- "KC_VOLU": "vol+",
- "KC_AUDIO_VOL_DOWN": "vol-",
- "KC_VOLD": "vol-",
- "KC_MEDIA_NEXT_TRACK": "next",
- "KC_MNXT": "next",
- "KC_MEDIA_PREV_TRACK": "Previous Track (Windows)",
- "KC_MPRV": "Previous Track (Windows)",
- "KC_MEDIA_FAST_FORWARD": "next",
- "KC_MFFD": "next",
- "KC_MEDIA_REWIND": "Previous Track (macOS)",
- "KC_MRWD": "Previous Track (macOS)",
- "KC_MEDIA_STOP": "Stop Track",
- "KC_MSTP": "Stop Track",
- "KC_MEDIA_PLAY_PAUSE": "play",
- "KC_MPLY": "play",
- "KC_NUM_LOCK": "Keypad Num Lock and Clear",
- "KC_NUM": "Keypad Num Lock and Clear",
- "KC_SLSH": "/",
- "KC_KP_SLASH": "/",
- "KC_PSLS": "/",
- "KC_KP_ASTERISK": "*",
- "KC_PAST": "*",
- "KC_KP_MINUS": "-",
- "KC_PMNS": "-",
- "KC_PPLS": "+",
- "KC_KP_ENTER": "Enter",
- "KC_PENT": "Enter",
- "KC_KP_1": "1",
- "KC_KP_2": "2",
- "KC_KP_3": "3",
- "KC_KP_4": "4",
- "KC_KP_5": "5",
- "KC_KP_6": "6",
- "KC_KP_7": "7",
- "KC_KP_8": "8",
- "KC_KP_9": "9",
- "KC_KP_0": "0",
- "KC_F1": "F1",
- "KC_F2": "F2",
- "KC_F3": "F3",
- "KC_F4": "F4",
- "KC_F5": "F5",
- "KC_F6": "F6",
- "KC_F7": "F7",
- "KC_F8": "F8",
- "KC_F9": "F9",
- "KC_F10": "F10",
- "KC_F11": "F11",
- "KC_F12": "F12",
- "_______": "",
- "KC_TILDE": "~",
- "KC_TILD": "~",
- "KC_EXCLAIM": "!",
- "KC_EXLM": "!",
- "KC_AT": "@",
- "KC_HASH": "#",
- "KC_DOLLAR": "$",
- "KC_DLR": "$",
- "KC_PERCENT": "%",
- "KC_PERC": "%",
- "KC_CIRCUMFLEX": "^",
- "KC_CIRC": "^",
- "KC_AMPERSAND": "&",
- "KC_AMPR": "&",
- "KC_ASTERISK": "*",
- "KC_ASTR": "*",
- "KC_LEFT_PAREN": "(",
- "KC_LPRN": "(",
- "KC_RIGHT_PAREN": ")",
- "KC_RPRN": ")",
- "KC_UNDERSCORE": "_",
- "KC_UNDS": "_",
- "KC_PLUS": "+",
- "KC_LEFT_CURLY_BRACE": "{",
- "KC_LCBR": "{",
- "KC_RIGHT_CURLY_BRACE": "}",
- "KC_RCBR": "}",
- "KC_PIPE": "|",
- "KC_COLON": ":",
- "KC_COLN": ":",
- "KC_DOUBLE_QUOTE": "\"",
- "KC_DQUO": "\"",
- "KC_DQT": "\"",
- "KC_LEFT_ANGLE_BRACKET": "<",
- "KC_LABK": "<",
- "KC_LT": "<",
- "KC_RIGHT_ANGLE_BRACKET": ">",
- "KC_RABK": ">",
- "KC_GT": ">",
- "KC_QUESTION": "?",
- "KC_QUES": "?",
- "KC_KP_PLUS": "+",
- "LSFT_T(KC_CAPS)": "\u21e7",
-
- "LGUI(KC_X)": "<i class='fa fa-cut'></i>",
- "LGUI(KC_C)": "<i class='fa fa-copy'></i>",
- "LGUI(S(LALT(KC_V)))": "<i class='fa fa-paste'></i>",
-
- "S(KC_NUHS)": "#",
- "S(KC_NUBS)": "/",
- "MOVEMENT": "\u0394",
- "RAISE": "\u2350",
- "LOWER": "\u2357",
- "LCTL_T(KC_ESC)": "c/e",
- "KC_NO": " ",
-
- "MO(3)": "mov",
- "MO(1)": "lower",
- "MO(2)": "raise",
- "MO(5)": "fn",
- "LSFT_T(KC_SPC)": "sp/sh",
- "KC_TRNS": "",
- "KC_PSTE": "Paste",
-
- "KC_P1": "1",
- "KC_P2": "2",
- "KC_P3": "3",
- "KC_P4": "4",
- "KC_P5": "5",
- "KC_P6": "6",
- "KC_P7": "7",
- "KC_P8": "8",
- "KC_P9": "9",
- "KC_P0": "0",
-
- "KC_PCMM": ",",
- "KC_PDOT": ".",
- "KC_PEQL": "="
-}
diff --git a/layouts/community/planck_mit/guidoism/readme.md b/layouts/community/planck_mit/guidoism/readme.md
deleted file mode 100644
index 540db64e85..0000000000
--- a/layouts/community/planck_mit/guidoism/readme.md
+++ /dev/null
@@ -1,107 +0,0 @@
-# Guido's Planck Keyboard Layout
-
-I've written a script to convert the json file from the
-[QMK Configurator](https://config.qmk.fm) to the C macros
-and a pretty form the comments.
-
-First import the json file in this directory into the configurator,
-make any changes, export the file and then run this:
-
- mv ~/Downloads/guidoism.json layouts/community/ortho_4x12/guidoism/ && python3 layouts/community/ortho_4x12/guidoism/generate_c.py && make planck:guidoism:dfu
-
-TODO: Move running of generate_c.py to makefile so I just need to run `make planck:guidoism:dfu`
-
-Note that the pretty forms of the keys are defined in another json
-file and are made for my specific board. You made need to update this
-file to get the pretty forms to look right.
-
-* Left palm to the `mov` key gets you the `Move` layer
-* Right thumb on the `raise` key gets you the various programming brackets and parens on your left hand
-* Left palm on `mov` key and left thumb on `lower` key gets you a numpad on your right hand
-* Shift with the spacebar
-* Left pinky is control on hold and escape on tap
-
-## Current Configuration
-
-## Qwerty
-```
-┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐
-│ ⇥ │ q │ w │ e │ r │ t │ y │ u │ i │ o │ p │ ⌫ │
-├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
-│ ctrl│ a │ s │ d │ f │ g │ h │ j │ k │ l │ : │ ⏎ │
-├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
-│ ⇧ │ z │ x │ c │ v │ b │ n │ m │ , │ . │ / │ │
-├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
-│ mov │ ⎋ │ ⌥ │ ⌘ │lower│ sp/sh │raise│ ⌘ │ ⌥ │ ; │ fn │
-└─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘
-```
-
-
-## Lower
-```
-┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐
-│ ~ │ ! │ @ │ # │ $ │ % │ ^ │ & │ * │ │ │ undo│
-├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
-│ │ │ cut │ copy│paste│ │ │ _ │ + │ " │ ' │ | │
-├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
-│ caps│ │ │ │ │ │ │ │ │ │ │ │
-├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
-│ │ │ │ │ │ │ │ next│ vol-│ vol+│ play│
-└─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘
-```
-
-
-## Raise
-```
-┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐
-│ ` │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ │
-├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
-│ │ [ │ ] │ ( │ ) │ │ │ - │ = │ │ │ \ │
-├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
-│ │ < │ > │ { │ } │ │ │ │ │ │ │ │
-├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
-│ │ │ │ │ │ │ │ │ │ │ │
-└─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘
-```
-
-
-## Movement
-```
-┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐
-│reset│debug│ │ │ │ │ │ pgup│ ↑ │ pgdn│ │ │
-├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
-│ │ │ │ │ │ │ │ ← │ ↓ │ → │ │ │
-├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
-│ │ │ │ │ │ │ │ home│ │ end │ │ │
-├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
-│ │ │ │ │ │ │ │ │ │ │ │
-└─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘
-```
-
-
-## Numpad
-```
-┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐
-│ │ │ │ │ │ │ % │ 7 │ 8 │ 9 │ 0 │ │
-├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
-│ │ │ │ │ │ │ $ │ 4 │ 5 │ 6 │ . │ │
-├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
-│ │ │ │ │ │ │ 0 │ 1 │ 2 │ 3 │ , │ │
-├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
-│ │ │ │ │ │ │ │ 0 │ │ │ │
-└─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘
-```
-
-
-## Function
-```
-┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐
-│ │ f1 │ f2 │ f3 │ f4 │ f5 │ f6 │ f7 │ f8 │ f9 │ f10 │ │
-├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
-│ │ │ │ │ │ │ │ │ │ │ │ │
-├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
-│ │ │ │ │ │ │ │ │ │ │ │ │
-├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
-│ │ │ │ │ │ │ │ │ │ │ │
-└─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘
-```
diff --git a/layouts/community/planck_mit/manna-harbour_miryoku/config.h b/layouts/community/planck_mit/manna-harbour_miryoku/config.h
deleted file mode 100644
index b9dea9ede3..0000000000
--- a/layouts/community/planck_mit/manna-harbour_miryoku/config.h
+++ /dev/null
@@ -1,19 +0,0 @@
-// Copyright 2019 Manna Harbour
-// https://github.com/manna-harbour/miryoku
-
-// 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 LAYOUT_miryoku(\
-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,\
-N30, N31, K32, K33, K34, K35, K36, K37, N38, N39\
-)\
-LAYOUT_planck_mit(\
-K00, K01, K02, K03, K04, KC_NO, KC_NO, K05, K06, K07, K08, K09,\
-K10, K11, K12, K13, K14, KC_NO, KC_NO, K15, K16, K17, K18, K19,\
-K20, K21, K22, K23, K24, KC_NO, KC_NO, K25, K26, K27, K28, K29,\
-KC_NO, KC_NO, K32, K33, K34, KC_NO, K35, K36, K37, KC_NO, KC_NO\
-)
diff --git a/layouts/community/planck_mit/manna-harbour_miryoku/keymap.c b/layouts/community/planck_mit/manna-harbour_miryoku/keymap.c
deleted file mode 100644
index dbab7f9820..0000000000
--- a/layouts/community/planck_mit/manna-harbour_miryoku/keymap.c
+++ /dev/null
@@ -1,4 +0,0 @@
-// Copyright 2019 Manna Harbour
-// https://github.com/manna-harbour/miryoku
-
-// 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/>.
diff --git a/layouts/community/planck_mit/readme.md b/layouts/community/planck_mit/readme.md
new file mode 100644
index 0000000000..e1cf2c9e36
--- /dev/null
+++ b/layouts/community/planck_mit/readme.md
@@ -0,0 +1,3 @@
+# planck_mit
+
+ LAYOUT_planck_mit
diff --git a/layouts/community/split_3x5_2/manna-harbour_miryoku/config.h b/layouts/community/split_3x5_2/manna-harbour_miryoku/config.h
deleted file mode 100644
index c9f1117a6f..0000000000
--- a/layouts/community/split_3x5_2/manna-harbour_miryoku/config.h
+++ /dev/null
@@ -1,19 +0,0 @@
-// Copyright 2022 Manna Harbour
-// https://github.com/manna-harbour/miryoku
-
-// 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 LAYOUT_miryoku( \
-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, \
-N30, N31, K32, K33, K34, K35, K36, K37, N38, N39 \
-) \
-LAYOUT_split_3x5_2( \
-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, \
- K33, K34, K35, K36 \
-)
diff --git a/layouts/community/split_3x5_2/manna-harbour_miryoku/keymap.c b/layouts/community/split_3x5_2/manna-harbour_miryoku/keymap.c
deleted file mode 100644
index dbab7f9820..0000000000
--- a/layouts/community/split_3x5_2/manna-harbour_miryoku/keymap.c
+++ /dev/null
@@ -1,4 +0,0 @@
-// Copyright 2019 Manna Harbour
-// https://github.com/manna-harbour/miryoku
-
-// 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/>.
diff --git a/layouts/community/split_3x5_2/manna-harbour_miryoku/rules.mk b/layouts/community/split_3x5_2/manna-harbour_miryoku/rules.mk
deleted file mode 100644
index ef40279cbc..0000000000
--- a/layouts/community/split_3x5_2/manna-harbour_miryoku/rules.mk
+++ /dev/null
@@ -1,4 +0,0 @@
-# Copyright 2021 Manna Harbour
-# https://github.com/manna-harbour/miryoku
-
-MIRYOKU_KLUDGE_THUMBCOMBOS=yes
diff --git a/layouts/community/split_3x5_2/readme.md b/layouts/community/split_3x5_2/readme.md
new file mode 100644
index 0000000000..379bdac675
--- /dev/null
+++ b/layouts/community/split_3x5_2/readme.md
@@ -0,0 +1,3 @@
+# split_3x5_2
+
+ LAYOUT_split_3x5_2
diff --git a/layouts/community/split_3x5_2/scotto/keymap.c b/layouts/community/split_3x5_2/scotto/keymap.c
deleted file mode 100644
index fcba0f483b..0000000000
--- a/layouts/community/split_3x5_2/scotto/keymap.c
+++ /dev/null
@@ -1,78 +0,0 @@
-/*
-Copyright 2023 Joe Scotto
-
-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 "scotto.h"
-
-#define LAYOUT_split_3x5_2_wrapper(...) LAYOUT_split_3x5_2(__VA_ARGS__)
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [0] = LAYOUT_split_3x5_2_wrapper(
- _________________KEYMAP1__________________,
- _________________KEYMAP2__________________,
- _________________KEYMAP3a_________________,
- _______THUMB4_1_______
- ),
- [1] = LAYOUT_split_3x5_2_wrapper(
- ______________SYM_MEDIA_NAV1______________,
- ______________SYM_MEDIA_NAV2______________,
- ______________SYM_MEDIA_NAV3______________,
- _____THUMB4_TRNS______
- ),
- [2] = LAYOUT_split_3x5_2_wrapper(
- _________________NUM_SYM1_________________,
- _________________NUM_SYM2_________________,
- _________________NUM_SYM3a________________,
- _____THUMB4_TRNS______
- ),
- [3] = LAYOUT_split_3x5_2_wrapper(
- ________________FUNC_SYS1a________________,
- ________________FUNC_SYS2_________________,
- ________________FUNC_SYS3_________________,
- _____THUMB4_TRNS______
- ),
- [4] = LAYOUT_split_3x5_2_wrapper(
- _________________KEYMAP1__________________,
- _________________KEYMAP2__________________,
- _________________KEYMAP3a_________________,
- _______THUMB4_4_______
- ),
- [5] = LAYOUT_split_3x5_2_wrapper(
- _________________KEYMAP1__________________,
- _________________KEYMAP2__________________,
- _________________KEYMAP3b_________________,
- _______THUMB4_5_______
- ),
- [6] = LAYOUT_split_3x5_2_wrapper(
- ______________SYM_MEDIA_NAV1______________,
- ______________SYM_MEDIA_NAV2______________,
- ______________SYM_MEDIA_NAV3______________,
- _____THUMB4_TRNS______
- ),
- [7] = LAYOUT_split_3x5_2_wrapper(
- _________________NUM_SYM1_________________,
- _________________NUM_SYM2_________________,
- _________________NUM_SYM3b________________,
- _____THUMB4_TRNS______
- ),
- [8] = LAYOUT_split_3x5_2_wrapper(
- ________________FUNC_SYS1b________________,
- ________________FUNC_SYS2_________________,
- ________________FUNC_SYS3_________________,
- _____THUMB4_TRNS______
- )
-};
diff --git a/layouts/community/split_3x5_3/manna-harbour_miryoku/config.h b/layouts/community/split_3x5_3/manna-harbour_miryoku/config.h
deleted file mode 100644
index 3f55144b41..0000000000
--- a/layouts/community/split_3x5_3/manna-harbour_miryoku/config.h
+++ /dev/null
@@ -1,19 +0,0 @@
-// Copyright 2019 Manna Harbour
-// https://github.com/manna-harbour/miryoku
-
-// 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 LAYOUT_miryoku(\
-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,\
-N30, N31, K32, K33, K34, K35, K36, K37, N38, N39\
-)\
-LAYOUT_split_3x5_3(\
-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,\
- K32, K33, K34, K35, K36, K37\
-)
diff --git a/layouts/community/split_3x5_3/manna-harbour_miryoku/keymap.c b/layouts/community/split_3x5_3/manna-harbour_miryoku/keymap.c
deleted file mode 100644
index dbab7f9820..0000000000
--- a/layouts/community/split_3x5_3/manna-harbour_miryoku/keymap.c
+++ /dev/null
@@ -1,4 +0,0 @@
-// Copyright 2019 Manna Harbour
-// https://github.com/manna-harbour/miryoku
-
-// 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/>.
diff --git a/layouts/community/split_3x5_3/readme.md b/layouts/community/split_3x5_3/readme.md
new file mode 100644
index 0000000000..c24b0c0293
--- /dev/null
+++ b/layouts/community/split_3x5_3/readme.md
@@ -0,0 +1,3 @@
+# split_3x5_3
+
+ LAYOUT_split_3x5_3
diff --git a/layouts/community/split_3x5_3/scotto/keymap.c b/layouts/community/split_3x5_3/scotto/keymap.c
deleted file mode 100644
index b0d4d9a038..0000000000
--- a/layouts/community/split_3x5_3/scotto/keymap.c
+++ /dev/null
@@ -1,75 +0,0 @@
-/*
-Copyright 2023 Joe Scotto
-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 "scotto.h"
-
-#define LAYOUT_split_3x5_3_wrapper(...) LAYOUT_split_3x5_3(__VA_ARGS__)
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [0] = LAYOUT_split_3x5_3_wrapper(
- _________________KEYMAP1__________________,
- _________________KEYMAP2__________________,
- _________________KEYMAP3a_________________,
- _______THUMB6_1_______
- ),
- [1] = LAYOUT_split_3x5_3_wrapper(
- ______________SYM_MEDIA_NAV1______________,
- ______________SYM_MEDIA_NAV2______________,
- ______________SYM_MEDIA_NAV3______________,
- _____THUMB6_TRNS______
- ),
- [2] = LAYOUT_split_3x5_3_wrapper(
- _________________NUM_SYM1_________________,
- _________________NUM_SYM2_________________,
- _________________NUM_SYM3a________________,
- _____THUMB6_TRNS______
- ),
- [3] = LAYOUT_split_3x5_3_wrapper(
- ________________FUNC_SYS1a________________,
- ________________FUNC_SYS2_________________,
- ________________FUNC_SYS3_________________,
- _____THUMB6_TRNS______
- ),
- [4] = LAYOUT_split_3x5_3_wrapper(
- _________________KEYMAP1__________________,
- _________________KEYMAP2__________________,
- _________________KEYMAP3a_________________,
- _______THUMB6_4_______
- ),
- [5] = LAYOUT_split_3x5_3_wrapper(
- _________________KEYMAP1__________________,
- _________________KEYMAP2__________________,
- _________________KEYMAP3b_________________,
- _______THUMB6_5_______
- ),
- [6] = LAYOUT_split_3x5_3_wrapper(
- ______________SYM_MEDIA_NAV1______________,
- ______________SYM_MEDIA_NAV2______________,
- ______________SYM_MEDIA_NAV3______________,
- _____THUMB6_TRNS______
- ),
- [7] = LAYOUT_split_3x5_3_wrapper(
- _________________NUM_SYM1_________________,
- _________________NUM_SYM2_________________,
- _________________NUM_SYM3b________________,
- _____THUMB6_TRNS______
- ),
- [8] = LAYOUT_split_3x5_3_wrapper(
- ________________FUNC_SYS1b________________,
- ________________FUNC_SYS2_________________,
- ________________FUNC_SYS3_________________,
- _____THUMB6_TRNS______
- )
-};
diff --git a/layouts/community/split_3x6_3/bcat/config.h b/layouts/community/split_3x6_3/bcat/config.h
deleted file mode 100644
index 556fb90d5f..0000000000
--- a/layouts/community/split_3x6_3/bcat/config.h
+++ /dev/null
@@ -1,28 +0,0 @@
-/* Copyright 2020 Jonathan Rascher
- *
- * 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 BCAT_ORTHO_LAYERS
-
-#if defined(KEYBOARD_crkbd_rev1)
-# define EE_HANDS
-
-# if defined(OLED_ENABLE)
-# undef OLED_FONT_H
-# define OLED_FONT_H "lib/glcdfont.c"
-# endif
-#endif
diff --git a/layouts/community/split_3x6_3/bcat/keymap.c b/layouts/community/split_3x6_3/bcat/keymap.c
deleted file mode 100644
index 535950da53..0000000000
--- a/layouts/community/split_3x6_3/bcat/keymap.c
+++ /dev/null
@@ -1,70 +0,0 @@
-/* Copyright 2020 Jonathan Rascher
- *
- * 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 "bcat.h"
-
-#if defined(OLED_ENABLE)
-# include "bcat_oled.h"
-#endif
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- // clang-format off
- /* Default layer: http://www.keyboard-layout-editor.com/#/gists/08d9827d916662a9414f48805aa895a5 */
- [LAYER_DEFAULT] = LAYOUT_split_3x6_3(
- 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_ESC, 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_RSFT,
- KC_LCTL, LY_LWR, KC_SPC, KC_ENT, LY_RSE, KC_RALT
- ),
- /* Lower layer: http://www.keyboard-layout-editor.com/#/gists/c3fba5eaa2cd70fdfbdbc0f9e34d3bc0 */
- [LAYER_LOWER] = LAYOUT_split_3x6_3(
- MC_ALTT, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, _______,
- KY_CSPC, KY_ZMRST, KY_ZMOUT, KY_ZMIN, KC_WBAK, KC_WFWD, KC_PIPE, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_TILD,
- _______, KC_APP, KC_PSCR, KC_SCRL, KC_PAUS, KC_LGUI, KC_BSLS, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_GRV,
- _______, _______, _______, _______, _______, _______
- ),
- /* Raise layer: http://www.keyboard-layout-editor.com/#/gists/08b44355d4ca85d294bad9e2821f91d7 */
- [LAYER_RAISE] = LAYOUT_split_3x6_3(
- KC_CAPS, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, _______,
- _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_F11, KC_DEL,
- _______, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_HOME, KC_PGDN, KC_PGUP, KC_END, KC_F12, KC_INS,
- _______, _______, _______, _______, _______, _______
- ),
- /* Adjust layer: http://www.keyboard-layout-editor.com/#/gists/77e7572e077b36a23eb2086017e16fee */
- [LAYER_ADJUST] = LAYOUT_split_3x6_3(
- _______, _______, KC_MPLY, KC_VOLU, KC_MSTP, _______, EE_CLR, QK_BOOT, _______, _______, _______, _______,
- _______, _______, KC_MPRV, KC_VOLD, KC_MNXT, _______, RGB_RMOD, RGB_VAD, RGB_VAI, RGB_MOD, RGB_SPI, _______,
- _______, _______, _______, KC_MUTE, _______, _______, RGB_HUI, RGB_SAD, RGB_SAI, RGB_HUD, RGB_SPD, _______,
- _______, _______, _______, RGB_TOG, _______, _______
- ),
- // clang-format on
-};
-
-#if defined(OLED_ENABLE)
-oled_rotation_t oled_init_user(oled_rotation_t rotation) { return is_keyboard_master() ? OLED_ROTATION_270 : OLED_ROTATION_180; }
-
-void oled_task_keymap(const oled_keyboard_state_t *keyboard_state) {
- render_oled_layers();
- oled_advance_page(/*clearPageRemainder=*/false);
- render_oled_indicators(keyboard_state->leds);
- oled_advance_page(/*clearPageRemainder=*/false);
- oled_advance_page(/*clearPageRemainder=*/false);
- render_oled_wpm(keyboard_state->wpm);
- render_oled_pet(/*col=*/0, /*line=*/12, keyboard_state);
-}
-#endif
diff --git a/layouts/community/split_3x6_3/bcat/readme.md b/layouts/community/split_3x6_3/bcat/readme.md
deleted file mode 100644
index b7b5d3de7d..0000000000
--- a/layouts/community/split_3x6_3/bcat/readme.md
+++ /dev/null
@@ -1,131 +0,0 @@
-# bcat's split 3x6 + 3 thumb keys layout
-
-(See also the
-[BlueMicro](https://github.com/jpconstantineau/BlueMicro_BLE/tree/master/firmware/keyboards/crkbd/keymaps/bcat)
-and [ZMK](https://github.com/bcat/zmk-config/blob/master/config/corne.keymap)
-versions of this keymap.)
-
-This is my favorite split ergo layout for typing, featuring the traditional
-four ortho/ergo layers (Default, Lower, Raise, Adjust). It is loosely inspired
-by the default Planck (numbers on Lower, symbols on Raise) and Crkbd (Space on
-left, Enter on right) layouts, but has since been redesigned heavily according
-to the principles described below.
-
-* Since my most-frequently-used keyboard shortcuts involve Ctrl, which lives on
-the left half of the keyboard, keys frequently used with it (numbers, function
-keys, etc.) are on the Raise layer activated by the right thumb.
-
-* Navigation can be done on the right half alone, to enable simultaneous
-left-handed mousing. Additionally, Web pages can be scrolled with Space or
-Shift+Space on the left half alone, to enable taking notes with the right hand
-at the same time.
-
-* Other than Right Shift (which I seldom use), mods aren't rebound on layers.
-
-* Likewise, Backspace is not rebound on layers to avoid having to let go of
-layer-switch keys to correct mistakes.
-
-## Default layer
-
-![Default layer layout](https://i.imgur.com/g5N7g8D.png)
-
-([KLE](http://www.keyboard-layout-editor.com/#/gists/08d9827d916662a9414f48805aa895a5))
-
-* The alpha keys are a standard QWERTY layout, no funny business there.
-
-* Tab and Backspace are in familiar locations from my row-staggered boards
-(almost all of which use HHKB-style split backspace).
-
-* The Esc key is next to the home row for convenience in Vim.
-
-* There are two Shift keys, although I generally use Left Shift. (I've
-considered replacing Right Shift with another key, but haven't chosen one.)
-
-* Lower and Raise layer-switch keys are in the resting position of my left and
-right thumbs, respectively.
-
-* Space and Enter are on the big thumb keys so they're easy to press.
-
-* Ctrl is on the left for ease of chording, especially one-handed use of common
-shortcuts like Ctrl+T and Ctrl+W. This puts Alt on the right by the process of
-elimination. (I would really like one more 1U thumb key on each half to allow
-for a redundant Alt key on the left and a dedicated Super key on the right.)
-
-## Lower layer
-
-![Lower layer layout](https://i.imgur.com/vaIc9JY.png)
-
-([KLE](http://www.keyboard-layout-editor.com/#/gists/c3fba5eaa2cd70fdfbdbc0f9e34d3bc0))
-
-* This could also be called the "symbol layer".
-
-* Shifted numbers are bound in their usual positions on the top row.
-
-* Hyphen/Underscore and Equals/Plus are in the right index- and middle-finger
-columns for easy reach. They share the same relative position as on a
-row-staggered keyboard, and the shifted versions are physically above the
-unshifted versions as a mnemonic device.
-
-* Brackets and braces are placed below the parens for easy recall. Once again,
-the shifted versions are on the home row and the unshifted versions are on the
-bottom row.
-
-* Forward Slash/Pipe and Backtick/Tilde fill out the remaining positions on the
-right half, with the same relative positions as on a row-staggered HHKB layout.
-And yup, the shifted versions are above the unshifted versions.
-
-* Remaining keys from a TKL are placed out of the way on the bottom row of the
-left half.
-
-* The home row on the left half contains handy shortcuts for zooming and browser
-navigation.
-
-* Lower+Esc is bound to Ctrl+Space because the Ctrl and Space keys are both on
-the left thumb, so this key combination (which I use for tmux prefix and editor
-autocomplete) is hard to press in its natural location.
-
-* Lower+Tab is bound to a custom Alt+Tab macro that keeps the Alt modifier held
-as long as the Lower key is held down. This means that window switching is on
-Lower+Tab immediately next to browser tab switching (Ctrl+Tab).
-
-## Raise layer
-
-![Raise layer layout](https://i.imgur.com/VNEiV9A.png)
-
-([KLE](http://www.keyboard-layout-editor.com/#/gists/08b44355d4ca85d294bad9e2821f91d7))
-
-* This could also be called the "number layer".
-
-* Unshifted numbers are bound in their usual positions on the top row.
-
-* Arrow keys are on VIM-style HJKL keys.
-
-* Home/End and Page Up/Page Down are in the same column as the arrow keys, but
-translated down one row. (This means that the comma and period keys are not
-bound on the number layer, which makes data entry a bit funky. I might add a
-dedicated numpad layer to compensate.)
-
-* Function keys F1–F10 take up most of remaining space on the left half, with
-F11 and F12 spilling over to the right half. (This puts the most used function
-keys (F1–F5) on the home row.)
-
-* Insert and Delete are on the rightmost column, because there didn't seem to
-be a better place to put them.
-
-* Caps Lock is bound in the same position as on an HHKB, for lack of an obvious
-better location.
-
-## Adjust layer
-
-![Adjust layer layout](https://i.imgur.com/Q4rN6cQ.png)
-
-([KLE](http://www.keyboard-layout-editor.com/#/gists/77e7572e077b36a23eb2086017e16fee))
-
-* Media keys are centered around the ESDF cluster, just like I arrange them on
-row-staggered keyboards. (It's even more sensible with columnar stagger.)
-
-* The navigation keys are replaced by RGB controls. Again, this mirrors the
-positioning I use on my row-staggered keyboards.
-
-* Finally, reset keys live at the top-left corner of the right half where it's
-reasonably hard to press them by accident.
diff --git a/layouts/community/split_3x6_3/bcat/rules.mk b/layouts/community/split_3x6_3/bcat/rules.mk
deleted file mode 100644
index e0ce760a79..0000000000
--- a/layouts/community/split_3x6_3/bcat/rules.mk
+++ /dev/null
@@ -1,8 +0,0 @@
-BCAT_OLED_PET = luna
-
-ifeq ($(strip $(KEYBOARD)), crkbd/rev1)
- BOOTLOADER = atmel-dfu # Elite-C
-
- OLED_ENABLE = yes # dual 128x32 OLED screens
- RGB_MATRIX_ENABLE = yes # per-key RGB and underglow
-endif
diff --git a/layouts/community/split_3x6_3/drashna/chconf.h b/layouts/community/split_3x6_3/drashna/chconf.h
deleted file mode 100644
index 1e277d357d..0000000000
--- a/layouts/community/split_3x6_3/drashna/chconf.h
+++ /dev/null
@@ -1,11 +0,0 @@
-
-#if defined(KEYBOARD_crkbd)
-# define CH_CFG_ST_RESOLUTION 16
-# define CH_CFG_ST_FREQUENCY 10000
-#endif
-
-#if __has_include("platforms/chibios/common/configs/chconf.h")
-# include_next "platforms/chibios/common/configs/chconf.h"
-#else
-# include_next <chconf.h>
-#endif
diff --git a/layouts/community/split_3x6_3/drashna/config.h b/layouts/community/split_3x6_3/drashna/config.h
deleted file mode 100644
index cfed26931b..0000000000
--- a/layouts/community/split_3x6_3/drashna/config.h
+++ /dev/null
@@ -1,102 +0,0 @@
-/* Copyright 2020 Christopher Courtney, aka Drashna Jael're (@drashna) <drashna@live.com>
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-#pragma once
-
-/* Select hand configuration */
-
-// #define MASTER_LEFT
-// #define MASTER_RIGHT
-#define EE_HANDS
-#define SPLIT_MODS_ENABLE
-
-#undef USE_I2C
-
-// #define QUICK_TAP_TERM 0
-// #define TAPPING_TERM 100
-
-#ifdef RGBLIGHT_ENABLE
-# undef RGBLED_NUM
-# define RGBLED_NUM 27
-
-# define RGBLIGHT_HUE_STEP 8
-# define RGBLIGHT_SAT_STEP 8
-# define RGBLIGHT_VAL_STEP 5
-# define RGBLIGHT_LIMIT_VAL 120
-#endif
-
-#ifdef RGB_MATRIX_ENABLE
-# ifdef CONVERT_TO_PROTON_C
-# undef WS2812_DI_PIN
-# define WS2812_DI_PIN A3
-# endif
-# define RGB_MATRIX_KEYPRESSES // reacts to keypresses
-// # define RGB_MATRIX_KEYRELEASES // reacts to keyreleases (instead of keypresses)
-# define RGB_DISABLE_WHEN_USB_SUSPENDED // turn off effects when suspended
-// # define RGB_MATRIX_LED_PROCESS_LIMIT (RGB_MATRIX_LED_COUNT + 4) / 5 // limits the number of LEDs to process in an animation per task run (increases keyboard responsiveness)
-// # define RGB_MATRIX_LED_FLUSH_LIMIT 16 // limits in milliseconds how frequently an animation will update the LEDs. 16 (16ms) is equivalent to limiting to 60fps (increases keyboard responsiveness)
-# ifndef RGB_MATRIX_MAXIMUM_BRIGHTNESS
-# define RGB_MATRIX_MAXIMUM_BRIGHTNESS 120 // limits maximum brightness of LEDs to 200 out of 255. If not defined maximum brightness is set to 255
-# endif
-# define RGB_MATRIX_HUE_STEP 8
-# define RGB_MATRIX_SAT_STEP 8
-# define RGB_MATRIX_VAL_STEP 5
-# define RGB_MATRIX_SPD_STEP 10
-#endif
-
-#ifdef CONVERT_TO_PROTON_C
-# 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_DMA_STREAM STM32_DMA1_STREAM2 // DMA Stream for TIMx_UP, see the respective reference manual for the appropriate values for your MCU.
-# define WS2812_DMA_CHANNEL 2 // DMA Channel for TIMx_UP, see the respective reference manual for the appropriate values for your MCU.
-# define WS2812_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.
-
-# undef SOFT_SERIAL_PIN
-# define SOFT_SERIAL_PIN D3
-# 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 INIT_EE_HANDS_LEFT
-// #define INIT_EE_HANDS_RIGHT
-#endif
-
-#if defined(AUDIO_ENABLE) && !defined(CONVERT_TO_PROTON_C)
-# define AUDIO_PIN B6
-# define NO_MUSIC_MODE
-#endif
-
-#if defined(HAPTIC_ENABLE)
-# if defined(CONVERT_TO_PROTON_C)
-# define A13 PAL_LINE(GPIOA, 13)
-# define SOLENOID_PIN A13
-# else
-# define SOLENOID_PIN B7
-# endif
-#endif
-
-#undef PRODUCT
-#ifdef CONVERT_TO_PROTON_C
-# define PRODUCT "Drashna Hacked ARM Corne Keyboard"
-#else
-# define PRODUCT "Drashna Hacked Corne Keyboard"
-#endif
-
-#define TAPPING_TERM_PER_KEY
-#ifdef TAPPING_TERM
-# undef TAPPING_TERM
-#endif
-#define TAPPING_TERM 200
diff --git a/layouts/community/split_3x6_3/drashna/glcdfont.c b/layouts/community/split_3x6_3/drashna/glcdfont.c
deleted file mode 100644
index 10ce3b3457..0000000000
--- a/layouts/community/split_3x6_3/drashna/glcdfont.c
+++ /dev/null
@@ -1,232 +0,0 @@
-#include "progmem.h"
-
-// Corne 8x6 font with QMK Firmware Logo
-// Online editor: https://helixfonteditor.netlify.com/
-
-// clang-format off
-const unsigned char font[] PROGMEM = {
-0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-0x3E, 0x5B, 0x4F, 0x5B, 0x3E, 0x00,
-0x3E, 0x6B, 0x4F, 0x6B, 0x3E, 0x00,
-0x1C, 0x3E, 0x7C, 0x3E, 0x1C, 0x00,
-0x18, 0x3C, 0x7E, 0x3C, 0x18, 0x00,
-0x1C, 0x57, 0x7D, 0x57, 0x1C, 0x00,
-0x1C, 0x5E, 0x7F, 0x5E, 0x1C, 0x00,
-0x00, 0x18, 0x3C, 0x18, 0x00, 0x00,
-0xFF, 0xE7, 0xC3, 0xE7, 0xFF, 0x00,
-0x00, 0x18, 0x24, 0x18, 0x00, 0x00,
-0xFF, 0xE7, 0xDB, 0xE7, 0xFF, 0x00,
-0x30, 0x48, 0x3A, 0x06, 0x0E, 0x00,
-0x26, 0x29, 0x79, 0x29, 0x26, 0x00,
-0x40, 0x7F, 0x05, 0x05, 0x07, 0x00,
-0x40, 0x7F, 0x05, 0x25, 0x3F, 0x00,
-0x5A, 0x3C, 0xE7, 0x3C, 0x5A, 0x00,
-0x7F, 0x3E, 0x1C, 0x1C, 0x08, 0x00,
-0x08, 0x1C, 0x1C, 0x3E, 0x7F, 0x00,
-0x14, 0x22, 0x7F, 0x22, 0x14, 0x00,
-0x5F, 0x5F, 0x00, 0x5F, 0x5F, 0x00,
-0x06, 0x09, 0x7F, 0x01, 0x7F, 0x00,
-0x00, 0x66, 0x89, 0x95, 0x6A, 0x00,
-0x60, 0x60, 0x60, 0x60, 0x60, 0x00,
-0x94, 0xA2, 0xFF, 0xA2, 0x94, 0x00,
-0x08, 0x04, 0x7E, 0x04, 0x08, 0x00,
-0x10, 0x20, 0x7E, 0x20, 0x10, 0x00,
-0x08, 0x08, 0x2A, 0x1C, 0x08, 0x00,
-0x08, 0x1C, 0x2A, 0x08, 0x08, 0x00,
-0x1E, 0x10, 0x10, 0x10, 0x10, 0x00,
-0x0C, 0x1E, 0x0C, 0x1E, 0x0C, 0x00,
-0x30, 0x38, 0x3E, 0x38, 0x30, 0x00,
-0x06, 0x0E, 0x3E, 0x0E, 0x06, 0x00,
-0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x5F, 0x00, 0x00, 0x00,
-0x00, 0x07, 0x00, 0x07, 0x00, 0x00,
-0x14, 0x7F, 0x14, 0x7F, 0x14, 0x00,
-0x24, 0x2A, 0x7F, 0x2A, 0x12, 0x00,
-0x23, 0x13, 0x08, 0x64, 0x62, 0x00,
-0x36, 0x49, 0x56, 0x20, 0x50, 0x00,
-0x00, 0x08, 0x07, 0x03, 0x00, 0x00,
-0x00, 0x1C, 0x22, 0x41, 0x00, 0x00,
-0x00, 0x41, 0x22, 0x1C, 0x00, 0x00,
-0x2A, 0x1C, 0x7F, 0x1C, 0x2A, 0x00,
-0x08, 0x08, 0x3E, 0x08, 0x08, 0x00,
-0x00, 0x80, 0x70, 0x30, 0x00, 0x00,
-0x08, 0x08, 0x08, 0x08, 0x08, 0x00,
-0x00, 0x00, 0x60, 0x60, 0x00, 0x00,
-0x20, 0x10, 0x08, 0x04, 0x02, 0x00,
-0x3E, 0x51, 0x49, 0x45, 0x3E, 0x00,
-0x00, 0x42, 0x7F, 0x40, 0x00, 0x00,
-0x72, 0x49, 0x49, 0x49, 0x46, 0x00,
-0x21, 0x41, 0x49, 0x4D, 0x33, 0x00,
-0x18, 0x14, 0x12, 0x7F, 0x10, 0x00,
-0x27, 0x45, 0x45, 0x45, 0x39, 0x00,
-0x3C, 0x4A, 0x49, 0x49, 0x31, 0x00,
-0x41, 0x21, 0x11, 0x09, 0x07, 0x00,
-0x36, 0x49, 0x49, 0x49, 0x36, 0x00,
-0x46, 0x49, 0x49, 0x29, 0x1E, 0x00,
-0x00, 0x00, 0x14, 0x00, 0x00, 0x00,
-0x00, 0x40, 0x34, 0x00, 0x00, 0x00,
-0x00, 0x08, 0x14, 0x22, 0x41, 0x00,
-0x14, 0x14, 0x14, 0x14, 0x14, 0x00,
-0x00, 0x41, 0x22, 0x14, 0x08, 0x00,
-0x02, 0x01, 0x59, 0x09, 0x06, 0x00,
-0x3E, 0x41, 0x5D, 0x59, 0x4E, 0x00,
-0x7C, 0x12, 0x11, 0x12, 0x7C, 0x00,
-0x7F, 0x49, 0x49, 0x49, 0x36, 0x00,
-0x3E, 0x41, 0x41, 0x41, 0x22, 0x00,
-0x7F, 0x41, 0x41, 0x41, 0x3E, 0x00,
-0x7F, 0x49, 0x49, 0x49, 0x41, 0x00,
-0x7F, 0x09, 0x09, 0x09, 0x01, 0x00,
-0x3E, 0x41, 0x41, 0x51, 0x73, 0x00,
-0x7F, 0x08, 0x08, 0x08, 0x7F, 0x00,
-0x00, 0x41, 0x7F, 0x41, 0x00, 0x00,
-0x20, 0x40, 0x41, 0x3F, 0x01, 0x00,
-0x7F, 0x08, 0x14, 0x22, 0x41, 0x00,
-0x7F, 0x40, 0x40, 0x40, 0x40, 0x00,
-0x7F, 0x02, 0x1C, 0x02, 0x7F, 0x00,
-0x7F, 0x04, 0x08, 0x10, 0x7F, 0x00,
-0x3E, 0x41, 0x41, 0x41, 0x3E, 0x00,
-0x7F, 0x09, 0x09, 0x09, 0x06, 0x00,
-0x3E, 0x41, 0x51, 0x21, 0x5E, 0x00,
-0x7F, 0x09, 0x19, 0x29, 0x46, 0x00,
-0x26, 0x49, 0x49, 0x49, 0x32, 0x00,
-0x03, 0x01, 0x7F, 0x01, 0x03, 0x00,
-0x3F, 0x40, 0x40, 0x40, 0x3F, 0x00,
-0x1F, 0x20, 0x40, 0x20, 0x1F, 0x00,
-0x3F, 0x40, 0x38, 0x40, 0x3F, 0x00,
-0x63, 0x14, 0x08, 0x14, 0x63, 0x00,
-0x03, 0x04, 0x78, 0x04, 0x03, 0x00,
-0x61, 0x59, 0x49, 0x4D, 0x43, 0x00,
-0x00, 0x7F, 0x41, 0x41, 0x41, 0x00,
-0x02, 0x04, 0x08, 0x10, 0x20, 0x00,
-0x00, 0x41, 0x41, 0x41, 0x7F, 0x00,
-0x04, 0x02, 0x01, 0x02, 0x04, 0x00,
-0x40, 0x40, 0x40, 0x40, 0x40, 0x00,
-0x00, 0x03, 0x07, 0x08, 0x00, 0x00,
-0x20, 0x54, 0x54, 0x78, 0x40, 0x00,
-0x7F, 0x28, 0x44, 0x44, 0x38, 0x00,
-0x38, 0x44, 0x44, 0x44, 0x28, 0x00,
-0x38, 0x44, 0x44, 0x28, 0x7F, 0x00,
-0x38, 0x54, 0x54, 0x54, 0x18, 0x00,
-0x00, 0x08, 0x7E, 0x09, 0x02, 0x00,
-0x18, 0x24, 0x24, 0x1C, 0x78, 0x00,
-0x7F, 0x08, 0x04, 0x04, 0x78, 0x00,
-0x00, 0x44, 0x7D, 0x40, 0x00, 0x00,
-0x20, 0x40, 0x40, 0x3D, 0x00, 0x00,
-0x7F, 0x10, 0x28, 0x44, 0x00, 0x00,
-0x00, 0x41, 0x7F, 0x40, 0x00, 0x00,
-0x7C, 0x04, 0x78, 0x04, 0x78, 0x00,
-0x7C, 0x08, 0x04, 0x04, 0x78, 0x00,
-0x38, 0x44, 0x44, 0x44, 0x38, 0x00,
-0x7C, 0x18, 0x24, 0x24, 0x18, 0x00,
-0x18, 0x24, 0x24, 0x18, 0x7C, 0x00,
-0x7C, 0x08, 0x04, 0x04, 0x08, 0x00,
-0x48, 0x54, 0x54, 0x54, 0x24, 0x00,
-0x04, 0x04, 0x3F, 0x44, 0x24, 0x00,
-0x3C, 0x40, 0x40, 0x20, 0x7C, 0x00,
-0x1C, 0x20, 0x40, 0x20, 0x1C, 0x00,
-0x3C, 0x40, 0x30, 0x40, 0x3C, 0x00,
-0x44, 0x28, 0x10, 0x28, 0x44, 0x00,
-0x4C, 0x90, 0x90, 0x90, 0x7C, 0x00,
-0x44, 0x64, 0x54, 0x4C, 0x44, 0x00,
-0x00, 0x08, 0x36, 0x41, 0x00, 0x00,
-0x00, 0x00, 0x77, 0x00, 0x00, 0x00,
-0x00, 0x41, 0x36, 0x08, 0x00, 0x00,
-0x02, 0x01, 0x02, 0x04, 0x02, 0x00,
-0x3C, 0x26, 0x23, 0x26, 0x3C, 0x00,
-0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x00, 0x00, 0xC0, 0xE0,
-0xF0, 0xF8, 0xF8, 0x18, 0x00, 0xC0,
-0xF0, 0xFC, 0xFE, 0xFF, 0xFF, 0xFF,
-0xFF, 0xFF, 0xFF, 0xFF, 0x7E, 0x00,
-0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x80, 0xC0, 0xE0, 0xE0,
-0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0,
-0xC0, 0x80, 0x00, 0x00, 0x00, 0x00,
-0x80, 0xC0, 0xE0, 0xE0, 0xE0, 0xE0,
-0xE0, 0xE0, 0xE0, 0xE0, 0xC0, 0x80,
-0x00, 0x00, 0x00, 0xE0, 0xE0, 0xC0,
-0xC0, 0xE0, 0xE0, 0xE0, 0xE0, 0x00,
-0x00, 0xE0, 0xE0, 0xC0, 0xC0, 0xE0,
-0xE0, 0xE0, 0xE0, 0xE0, 0xC0, 0x80,
-0x00, 0x00, 0x00, 0x00, 0x80, 0xC0,
-0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0,
-0xE0, 0xE0, 0xC0, 0x80, 0x00, 0x00,
-0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-0xE0, 0xF0, 0xF0, 0xF0, 0xE0, 0xEC,
-0xEE, 0xF7, 0xF3, 0x70, 0x20, 0x00,
-0x7C, 0x7C, 0x7C, 0x7E, 0x00, 0x7E,
-0x7E, 0x7E, 0x7F, 0x7F, 0x7F, 0x00,
-0x00, 0x80, 0xC0, 0xE0, 0x7E, 0x5B,
-0x4F, 0x5B, 0xFE, 0xC0, 0x00, 0x00,
-0xC0, 0x00, 0xDC, 0xD7, 0xDE, 0xDE,
-0xDE, 0xD7, 0xDC, 0x00, 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, 0xF8, 0xFC, 0xFE,
-0xFF, 0xE0, 0x00, 0xFF, 0xFF, 0xFF,
-0xFF, 0xFF, 0xFF, 0x80, 0xFF, 0xFF,
-0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
-0xFF, 0x1F, 0x07, 0x01, 0x00, 0x00,
-0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-0x00, 0xFF, 0xFF, 0xFF, 0x81, 0x00,
-0x00, 0x00, 0x00, 0x00, 0x00, 0x81,
-0xC3, 0xC3, 0xC3, 0x00, 0x00, 0xFF,
-0xFF, 0xFF, 0x81, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x00, 0x81, 0xFF, 0xFF,
-0xFF, 0x00, 0x00, 0xFF, 0xFF, 0xFF,
-0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
-0x00, 0xFF, 0xFF, 0xFF, 0x01, 0x00,
-0x00, 0x00, 0x00, 0x01, 0xFF, 0xFF,
-0xFF, 0x00, 0x00, 0xFF, 0xFF, 0xFF,
-0x9D, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C,
-0x1C, 0x9D, 0xDF, 0xDF, 0xDF, 0x00,
-0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-0x0F, 0x1F, 0x3F, 0x7F, 0x7F, 0x7F,
-0x7F, 0x7F, 0x3F, 0x1E, 0x0C, 0x00,
-0x1F, 0x1F, 0x1F, 0x3F, 0x00, 0x3F,
-0x3F, 0x3F, 0x7F, 0x7F, 0x7F, 0x00,
-0x30, 0x7B, 0x7F, 0x78, 0x30, 0x20,
-0x20, 0x30, 0x78, 0x7F, 0x3B, 0x00,
-0x03, 0x00, 0x0F, 0x7F, 0x0F, 0x0F,
-0x0F, 0x7F, 0x0F, 0x00, 0x03, 0x00,
-0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x00, 0x03, 0x0F, 0x1F,
-0x3F, 0x3F, 0x3F, 0x3F, 0x1F, 0x1F,
-0x3F, 0x3F, 0x7F, 0x7F, 0x7F, 0x3F,
-0x3F, 0x1F, 0x3F, 0x7F, 0x7F, 0x7F,
-0x7F, 0x7C, 0x78, 0x78, 0x38, 0x1C,
-0x0F, 0x00, 0x00, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x01, 0x03, 0x07, 0x07,
-0x07, 0x07, 0x07, 0x07, 0x07, 0x07,
-0x03, 0x01, 0x00, 0x00, 0x00, 0x00,
-0x01, 0x03, 0x07, 0x07, 0x07, 0x07,
-0x07, 0x07, 0x07, 0x07, 0x03, 0x01,
-0x00, 0x00, 0x00, 0x07, 0x07, 0x07,
-0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-0x00, 0x07, 0x07, 0x07, 0x00, 0x00,
-0x00, 0x00, 0x00, 0x00, 0x07, 0x07,
-0x07, 0x00, 0x00, 0x00, 0x01, 0x03,
-0x07, 0x07, 0x07, 0x07, 0x07, 0x07,
-0x07, 0x07, 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,
-};
diff --git a/layouts/community/split_3x6_3/drashna/halconf.h b/layouts/community/split_3x6_3/drashna/halconf.h
deleted file mode 100644
index 7cc1306598..0000000000
--- a/layouts/community/split_3x6_3/drashna/halconf.h
+++ /dev/null
@@ -1,23 +0,0 @@
-/* Copyright 2020 Nick Brassel (tzarc)
- *
- * 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 3 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 <https://www.gnu.org/licenses/>.
- */
-#pragma once
-
-#if defined(KEYBOARD_crkbd)
-# define HAL_USE_PWM TRUE
-# define HAL_USE_SERIAL TRUE
-#endif
-
-#include_next <halconf.h>
diff --git a/layouts/community/split_3x6_3/drashna/keymap.c b/layouts/community/split_3x6_3/drashna/keymap.c
deleted file mode 100644
index 257e033f22..0000000000
--- a/layouts/community/split_3x6_3/drashna/keymap.c
+++ /dev/null
@@ -1,307 +0,0 @@
-/* Copyright 2020 Christopher Courtney, aka Drashna Jael're (@drashna) <drashna@live.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 "drashna.h"
-
-enum crkbd_keycodes {
- RGBRST = USER_SAFE_RANGE,
-};
-
-/*
- * The `LAYOUT_crkbd_base` macro is a template to allow the use of identical
- * modifiers for the default layouts (eg QWERTY, Colemak, Dvorak, etc), so
- * that there is no need to set them up for each layout, and modify all of
- * them if I want to change them. This helps to keep consistency and ease
- * of use. K## is a placeholder to pass through the individual keycodes
- */
-
-#ifdef CONVERT_TO_PROTON_C
-# define MID_TMB ET_RAIS
-#else
-# define MID_TMB KC_ENT
-#endif
-
-// clang-format off
-#define LAYOUT_split_3x6_3_wrapper(...) LAYOUT_split_3x6_3(__VA_ARGS__)
-#define LAYOUT_split_3x6_3_base( \
- K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, \
- K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, \
- K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A \
- ) \
- LAYOUT_split_3x6_3_wrapper( \
- KC_ESC, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, KC_MINS, \
- ALT_T(KC_TAB), K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, RALT_T(K1B), \
- OS_LSFT, CTL_T(K21), K22, K23, K24, K25, K26, K27, K28, K29, RCTL_T(K2A), OS_RSFT, \
- OS_LGUI, KC_SPC, BK_LWER, DL_RAIS, MID_TMB, OS_RGUI \
- )
-#define LAYOUT_base_wrapper(...) LAYOUT_split_3x6_3_base(__VA_ARGS__)
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [_DEFAULT_LAYER_1] = LAYOUT_base_wrapper(
- _________________QWERTY_L1_________________, _________________QWERTY_R1_________________,
- _________________QWERTY_L2_________________, _________________QWERTY_R2_________________,
- _________________QWERTY_L3_________________, _________________QWERTY_R3_________________
- ),
-
- [_DEFAULT_LAYER_2] = LAYOUT_base_wrapper(
- ______________COLEMAK_MOD_DH_L1____________, ______________COLEMAK_MOD_DH_R1____________,
- ______________COLEMAK_MOD_DH_L2____________, ______________COLEMAK_MOD_DH_R2____________,
- ______________COLEMAK_MOD_DH_L3____________, ______________COLEMAK_MOD_DH_R3____________
- ),
-
- [_DEFAULT_LAYER_3] = LAYOUT_base_wrapper(
- _________________COLEMAK_L1________________, _________________COLEMAK_R1________________,
- _________________COLEMAK_L2________________, _________________COLEMAK_R2________________,
- _________________COLEMAK_L3________________, _________________COLEMAK_R3________________
- ),
-
- [_DEFAULT_LAYER_4] = LAYOUT_base_wrapper(
- _________________DVORAK_L1_________________, _________________DVORAK_R1_________________,
- _________________DVORAK_L2_________________, _________________DVORAK_R2_________________,
- _________________DVORAK_L3_________________, _________________DVORAK_R3_________________
- ),
-
- [_LOWER] = LAYOUT_split_3x6_3_wrapper(
- KC_F11, _________________LOWER_L1__________________, _________________LOWER_R1__________________, KC_F11,
- KC_F12, _________________LOWER_L2__________________, _________________LOWER_R2__________________, KC_PIPE,
- _______, _________________LOWER_L3__________________, _________________LOWER_R3__________________, _______,
- _______, _______, _______, _______, _______, _______
- ),
-
- [_RAISE] = LAYOUT_split_3x6_3_wrapper(
- _______, _________________RAISE_L1__________________, _________________RAISE_R1__________________, _______,
- _______, _________________RAISE_L2__________________, _________________RAISE_R2__________________, KC_BSLS,
- _______, _________________RAISE_L3__________________, _________________RAISE_R3__________________, _______,
- _______, _______, _______, _______, _______, _______
- ),
-
- [_ADJUST] = LAYOUT_split_3x6_3_wrapper(
- QK_MAKE, _________________ADJUST_L1_________________, _________________ADJUST_R1_________________, QK_BOOT,
- VRSN, _________________ADJUST_L2_________________, _________________ADJUST_R2_________________, EE_CLR,
- KEYLOCK, _________________ADJUST_L3_________________, _________________ADJUST_R3_________________, RGB_IDL,
- QK_RBT, KC_NUKE, _______, _______, TG_MODS, AUTO_CTN
- )
-};
-// clang-format on
-
-#ifdef OLED_ENABLE
-oled_rotation_t oled_init_keymap(oled_rotation_t rotation) {
- return OLED_ROTATION_270;
-}
-
-# ifdef CONVERT_TO_PROTON_C
-// WPM-responsive animation stuff here
-# define SLEEP_FRAMES 2
-# define SLEEP_SPEED 10 // below this wpm value your animation will idle
-
-# define WAKE_FRAMES 2 // uncomment if >1
-
-# define KAKI_FRAMES 3
-# define KAKI_SPEED 40 // above this wpm value typing animation to triggere
-
-# define RTOGI_FRAMES 2
-// #define LTOGI_FRAMES 2
-
-// #define ANIM_FRAME_DURATION 500 // how long each frame lasts in ms
-// #define SLEEP_TIMER 60000 // should sleep after this period of 0 wpm, needs fixing
-# define ANIM_SIZE 512 // number of bytes in array, minimize for adequate firmware size, max is 1024
-
-uint32_t anim_timer = 0;
-uint32_t anim_frame_duration = 500;
-uint8_t current_sleep_frame = 0;
-uint8_t current_wake_frame = 0; // uncomment if WAKE_FRAMES >1
-uint8_t current_kaki_frame = 0;
-# ifdef SWAP_HANDS_ENABLE
-uint8_t current_rtogi_frame = 0;
-# endif
-// uint8_t current_ltogi_frame = 0;
-// clang-format off
-void render_small_kitty(void) {
- // Images credit j-inc(/James Incandenza) and pixelbenny. Credit to obosob for initial animation approach.
- static const char PROGMEM sleep[SLEEP_FRAMES][ANIM_SIZE] = {{
- // 'sleep1', 32x32px
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x08, 0xa8, 0x48, 0xa8, 0x18, 0x08, 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, 0x02, 0x03, 0x02, 0x02, 0x02, 0x02, 0x02, 0x00, 0x00, 0x80, 0x44, 0x84, 0x06, 0x05, 0x04, 0x80, 0x40, 0x20, 0x10, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x20, 0x18, 0x04, 0x04, 0x02, 0x7a, 0x86, 0x01, 0x80, 0x80, 0x01, 0x03, 0x05, 0x07, 0x01, 0x00, 0x00, 0x80, 0x83, 0x45, 0xfa, 0x3c, 0xe0, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x08, 0x10, 0x10, 0x10, 0x10, 0x10, 0x33, 0x24, 0x28, 0x28, 0x29, 0x29, 0x29, 0x3a, 0x18, 0x1c, 0x39, 0x24, 0x24, 0x3a, 0x2d, 0x26, 0x31, 0x1f, 0x00,
- },
- {// 'sleep2', 32x32px
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x22, 0x22, 0x3a, 0x2a, 0x26, 0x22, 0x80, 0xc0, 0x80, 0x00, 0x24, 0x34, 0x2c, 0xe4, 0x60, 0x10, 0x70, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x38, 0x04, 0x02, 0x02, 0x01, 0x79, 0x87, 0x01, 0x80, 0x81, 0x83, 0x05, 0x05, 0x03, 0x01, 0x00, 0x00, 0x80, 0x43, 0x05, 0xfa, 0x3c, 0xe0, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x08, 0x10, 0x10, 0x10, 0x10, 0x10, 0x33, 0x24, 0x28, 0x28, 0x28, 0x29, 0x29, 0x3a, 0x18, 0x1c, 0x39, 0x24, 0x24, 0x3a, 0x2d, 0x26, 0x31, 0x1f, 0x00
- }};
- static const char PROGMEM wake[WAKE_FRAMES][ANIM_SIZE] = {{
- // 'mati2', 32x32px
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x30, 0x08, 0x10, 0x60, 0x80, 0x00, 0x80, 0x60, 0x10, 0x08, 0x30, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0x80, 0x40, 0x40, 0x5c, 0x00, 0x01, 0x41, 0x01, 0x00, 0x5c, 0x40, 0x40, 0x80, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x40, 0x40, 0x80, 0xe1, 0x12, 0x0a, 0x06, 0x00, 0x80, 0x00, 0x06, 0x0a, 0x12, 0xe1, 0x80, 0x40, 0x40, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x1f, 0x14, 0x14, 0x10, 0x10, 0x11, 0x1f, 0x10, 0x10, 0x18, 0x0f, 0x18, 0x10, 0x10, 0x1f, 0x11, 0x10, 0x10, 0x14, 0x14, 0x1f, 0x1c, 0x14, 0x14, 0x14, 0x08
- },
- {// 'mati3', 32x32px
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x30, 0x08, 0x10, 0x60, 0x80, 0x00, 0x80, 0x60, 0x10, 0x08, 0x30, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0x90, 0x12, 0x0a, 0x02, 0xf4, 0x09, 0x0d, 0xf1, 0x04, 0x02, 0x0a, 0x12, 0x90, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x40, 0x40, 0x80, 0xe1, 0x12, 0x0a, 0x06, 0x01, 0x81, 0x00, 0x06, 0x0a, 0x12, 0xe1, 0x80, 0x40, 0x40, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x1f, 0x14, 0x14, 0x10, 0x10, 0x11, 0x1f, 0x10, 0x10, 0x18, 0x0f, 0x18, 0x10, 0x10, 0x1f, 0x11, 0x10, 0x10, 0x14, 0x14, 0x1f, 0x1c, 0x14, 0x14, 0x14, 0x08
- }};
- static const char PROGMEM kaki[KAKI_FRAMES][ANIM_SIZE] = {{
- // 'jare2', 32x32px
- 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x40, 0x40, 0x80, 0x80, 0x80, 0x00, 0xfc, 0x84, 0x08, 0x08, 0x10, 0x20, 0x40, 0x40, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x1e, 0x60, 0x80, 0x00, 0x00, 0x91, 0xa1, 0x80, 0x00, 0x00, 0x22, 0x84, 0x40, 0x50, 0x48, 0xc1, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x40, 0x41, 0x82, 0xe2, 0x12, 0x0a, 0x06, 0x00, 0x80, 0x88, 0x4f, 0x02, 0x22, 0xe2, 0x9f, 0x40, 0x40, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x1f, 0x14, 0x14, 0x10, 0x10, 0x11, 0x1f, 0x10, 0x10, 0x18, 0x0f, 0x18, 0x14, 0x10, 0x10, 0x10, 0x10, 0x10, 0x14, 0x14, 0x1f, 0x1a, 0x0a, 0x0a, 0x04, 0x00
- },
- {
- // 'kaki1', 32x32px
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x10, 0x20, 0x20, 0x40, 0x40, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x06, 0x1a, 0x22, 0xc2, 0x04, 0x04, 0x04, 0x07, 0x00, 0xc0, 0x20, 0x10, 0x80, 0x80, 0x01, 0x01, 0x02, 0xfc, 0xfe, 0x02, 0x3c, 0x20, 0x40, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x0d, 0x8d, 0x55, 0x50, 0x94, 0xf0, 0x10, 0x09, 0x08, 0x00, 0x80, 0x00, 0x06, 0x09, 0x1b, 0xee, 0x00, 0x00, 0x00, 0x00, 0x81, 0xfe, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x1f, 0x14, 0x14, 0x10, 0x10, 0x11, 0x1f, 0x10, 0x10, 0x18, 0x0f, 0x18, 0x10, 0x10, 0x1f, 0x19, 0x18, 0x1c, 0x14, 0x16, 0x15, 0x14, 0x14, 0x14, 0x14, 0x08
- },
- {// 'kaki2', 32x32px
- 0x00, 0x00, 0x00, 0x00, 0x80, 0x40, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x10, 0x20, 0x40, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x0f, 0xf0, 0x00, 0x01, 0x02, 0x04, 0x04, 0x03, 0x80, 0x40, 0x40, 0x20, 0x00, 0x01, 0x02, 0x8c, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x0d, 0x8d, 0x55, 0x50, 0x94, 0xf0, 0x10, 0x0a, 0x0e, 0x1d, 0x95, 0x24, 0x24, 0x27, 0x13, 0xe1, 0x01, 0x01, 0x01, 0x01, 0x02, 0xfc, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x1f, 0x14, 0x14, 0x10, 0x10, 0x11, 0x1f, 0x10, 0x10, 0x18, 0x0f, 0x18, 0x10, 0x10, 0x1f, 0x19, 0x18, 0x1c, 0x14, 0x14, 0x17, 0x14, 0x14, 0x14, 0x14, 0x08,
- }};
-#ifdef SWAP_HANDS_ENABLE
- static const char PROGMEM rtogi[KAKI_FRAMES][ANIM_SIZE] = {{
- // 'rtogi1', 32x32px
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x20, 0x10, 0x10, 0x08, 0x04, 0x02, 0x01, 0x0f, 0x90, 0x10, 0x20, 0xf0, 0xf8, 0xf8,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x40, 0x20, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x48, 0x47, 0x88, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x88, 0xc7, 0xc4, 0x62, 0x23, 0x11, 0x3f,
- 0x80, 0x40, 0x20, 0x10, 0x88, 0xcc, 0x43, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0xc0, 0x80, 0x80, 0xc0, 0xe1, 0xfe, 0xb8, 0x88, 0x0c, 0x04, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x06, 0x04, 0x04, 0x04, 0x04, 0x05, 0x04, 0x04, 0x04, 0x07, 0x07, 0x07, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
- },
- {// 'rtogi2', 32x32px
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x20, 0x10, 0x10, 0x08, 0x04, 0x02, 0x01, 0x1f, 0xa0, 0x20, 0x40, 0x80, 0x00, 0xf0,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x40, 0x20, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x48, 0x47, 0x88, 0x00, 0x00, 0x00, 0x00, 0x24, 0x24, 0x28, 0x6b, 0x40, 0xa0, 0x99, 0x86, 0xff,
- 0x0f, 0x11, 0x22, 0x44, 0x48, 0x4c, 0x43, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0xc0, 0x80, 0x80, 0xc0, 0xe1, 0xfe, 0xb8, 0x88, 0x0c, 0x04, 0x06, 0x06, 0x06, 0x0e, 0x0e, 0x06, 0x01,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x06, 0x04, 0x04, 0x04, 0x04, 0x05, 0x04, 0x04, 0x04, 0x07, 0x07, 0x07, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
- }};
-#endif
- // assumes 1 frame prep stage
-#ifdef SWAP_HANDS_ENABLE
- extern bool swap_hands;
-#endif
- void animation_phase(void) {
-#ifdef SWAP_HANDS_ENABLE
- if (swap_hands) {
- anim_frame_duration = 300;
- current_rtogi_frame = (current_rtogi_frame + 1) % RTOGI_FRAMES;
- oled_write_raw_P(rtogi[abs((RTOGI_FRAMES - 1) - current_rtogi_frame)], ANIM_SIZE);
- } else
-#endif
- {
- if (get_current_wpm() <= SLEEP_SPEED) {
- anim_frame_duration = 500;
- current_sleep_frame = (current_sleep_frame + 1) % SLEEP_FRAMES;
- oled_write_raw_P(sleep[abs((SLEEP_FRAMES - 1) - current_sleep_frame)], ANIM_SIZE);
- }
- // if(get_current_wpm() >IDLE_SPEED && get_current_wpm() <TAP_SPEED){
- if (get_current_wpm() > SLEEP_SPEED) {
- anim_frame_duration = 800;
- current_wake_frame = (current_wake_frame + 1) % WAKE_FRAMES;
- oled_write_raw_P(wake[abs((WAKE_FRAMES - 1) - current_wake_frame)], ANIM_SIZE);
- // oled_write_raw_P(wake[0], ANIM_SIZE); // remove if IDLE_FRAMES >1
- }
- if (get_current_wpm() >= KAKI_SPEED) {
- anim_frame_duration = 500;
- current_kaki_frame = (current_kaki_frame + 1) % KAKI_FRAMES;
- oled_write_raw_P(kaki[abs((KAKI_FRAMES - 1) - current_kaki_frame)], ANIM_SIZE);
- }
- }
- }
- if (get_current_wpm() != 000) {
- // if(timer_elapsed32(anim_timer) > ANIM_FRAME_DURATION) {
- if (timer_elapsed32(anim_timer) > anim_frame_duration) {
- anim_timer = timer_read32();
- animation_phase();
- }
- } else {
- // if(timer_elapsed32(anim_timer) > ANIM_FRAME_DURATION) {
- if (timer_elapsed32(anim_timer) > anim_frame_duration) {
- anim_timer = timer_read32();
- animation_phase();
- }
- }
-}
-
-void oled_driver_render_logo_right(void) {
- render_small_kitty();
-
- render_default_layer_state(0, 4);
-}
-# endif
-#endif
-
-#ifdef TAPPING_TERM_PER_KEY
-uint16_t get_tapping_term(uint16_t keycode, keyrecord_t *record) {
- switch (keycode) {
- case ALT_T(KC_A):
- return TAPPING_TERM + 100;
- default:
- return TAPPING_TERM;
- }
-}
-#endif
-
-#ifdef RGB_MATRIX_ENABLE
-void check_default_layer(uint8_t mode, uint8_t type, uint8_t led_min, uint8_t led_max) {
- switch (get_highest_layer(default_layer_state)) {
- case _QWERTY:
- rgb_matrix_layer_helper(DEFAULT_LAYER_1_HSV, mode, rgb_matrix_config.speed, type, led_min, led_max);
- break;
- case _COLEMAK_DH:
- rgb_matrix_layer_helper(DEFAULT_LAYER_2_HSV, mode, rgb_matrix_config.speed, type, led_min, led_max);
- break;
- case _COLEMAK:
- rgb_matrix_layer_helper(DEFAULT_LAYER_3_HSV, mode, rgb_matrix_config.speed, type, led_min, led_max);
- break;
- case _DVORAK:
- rgb_matrix_layer_helper(DEFAULT_LAYER_4_HSV, mode, rgb_matrix_config.speed, type, led_min, led_max);
- break;
- }
-}
-
-bool rgb_matrix_indicators_advanced_keymap(uint8_t led_min, uint8_t led_max) {
- if (userspace_config.rgb_layer_change) {
- switch (get_highest_layer(layer_state)) {
- case _GAMEPAD:
- rgb_matrix_layer_helper(HSV_ORANGE, 0, rgb_matrix_config.speed, LED_FLAG_UNDERGLOW, led_min, led_max);
- break;
- case _DIABLO:
- rgb_matrix_layer_helper(HSV_RED, 0, rgb_matrix_config.speed, LED_FLAG_UNDERGLOW, led_min, led_max);
- break;
- case _RAISE:
- rgb_matrix_layer_helper(HSV_YELLOW, 0, rgb_matrix_config.speed, LED_FLAG_UNDERGLOW, led_min, led_max);
- break;
- case _LOWER:
- rgb_matrix_layer_helper(HSV_GREEN, 0, rgb_matrix_config.speed, LED_FLAG_UNDERGLOW, led_min, led_max);
- break;
- case _ADJUST:
- rgb_matrix_layer_helper(HSV_RED, 0, rgb_matrix_config.speed, LED_FLAG_UNDERGLOW, led_min, led_max);
- break;
- default:
- {
- check_default_layer(0, LED_FLAG_UNDERGLOW, led_min, led_max);
- break;
- }
- }
- check_default_layer(0, LED_FLAG_MODIFIER, led_min, led_max);
- }
- return false;
-}
-#endif
diff --git a/layouts/community/split_3x6_3/drashna/mcuconf.h b/layouts/community/split_3x6_3/drashna/mcuconf.h
deleted file mode 100644
index 920261476c..0000000000
--- a/layouts/community/split_3x6_3/drashna/mcuconf.h
+++ /dev/null
@@ -1,32 +0,0 @@
-/* Copyright 2020 Nick Brassel (tzarc)
- *
- * 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 3 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 <https://www.gnu.org/licenses/>.
- */
-#pragma once
-
-#include_next <mcuconf.h>
-
-#if defined(KEYBOARD_crkbd)
-
-# undef STM32_PWM_USE_TIM2
-# define STM32_PWM_USE_TIM2 TRUE
-# undef STM32_PWM_USE_TIM3
-# define STM32_PWM_USE_TIM3 FALSE
-
-# undef STM32_SERIAL_USE_USART1
-# define STM32_SERIAL_USE_USART1 TRUE
-
-# undef STM32_ST_USE_TIMER
-# define STM32_ST_USE_TIMER 3
-#endif
diff --git a/layouts/community/split_3x6_3/drashna/rules.mk b/layouts/community/split_3x6_3/drashna/rules.mk
deleted file mode 100644
index 2d07ad5a77..0000000000
--- a/layouts/community/split_3x6_3/drashna/rules.mk
+++ /dev/null
@@ -1,57 +0,0 @@
-# Build Options
-# change to "no" to disable the options
-#
-
-BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite
-MOUSEKEY_ENABLE = no # Mouse keys
-EXTRAKEY_ENABLE = yes # Audio control and System control
-CONSOLE_ENABLE = no # Console for debug
-COMMAND_ENABLE = no # Commands for debug and configuration
-NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
-BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
-AUDIO_ENABLE = no # Audio output
-UNICODE_ENABLE = no # Unicode
-RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight.
-SWAP_HANDS_ENABLE = no # Enable one-hand typing
-OS_DETECTION_ENABLE = no
-CUSTOM_UNICODE_ENABLE = no
-CUSTOM_POINTING_DEVICE = no
-CUSTOM_SPLIT_TRANSPORT_SYNC = no
-
-USE_ARM_CONFIG ?= no
-ifeq ($(strip $(CONVERT_TO)), proton_c)
- USE_ARM_CONFIG = yes
-endif
-ifeq ($(strip $(MCU)), STM32F303)
- USE_ARM_CONFIG = yes
-endif
-ifeq ($(strip $(MCU)), STM32F401)
- USE_ARM_CONFIG = yes
-endif
-ifeq ($(strip $(MCU)), STM32F411)
- USE_ARM_CONFIG = yes
-endif
-
-ifeq ($(strip $(MCU)), atmega32u4)
- BOOTLOADER = qmk-hid
- BOOTLOADER_SIZE = 512
-endif
-
-ifeq ($(strip $(USE_ARM_CONFIG)), yes)
- HAPTIC_ENABLE = no
- WS2812_DRIVER = pwm # won't work without a patch to the ctpc mk file
- SERIAL_DRIVER = usart
- WPM_ENABLE = yes
- AUTOCORRECT_ENABLE = yes
- CAPS_WORD_ENABLE = yes
- OS_DETECTION_ENABLE = yes
- CUSTOM_UNICODE_ENABLE = no
- CUSTOM_POINTING_DEVICE = no
- CUSTOM_SPLIT_TRANSPORT_SYNC = no
-endif
-
-ifeq ($(strip $(KEYBOARD)), crkbd/rev1)
- OLED_ENABLE = yes
- RGB_MATRIX_ENABLE = yes
- HAPTIC_ENABLE = no
-endif
diff --git a/layouts/community/split_3x6_3/manna-harbour_miryoku/config.h b/layouts/community/split_3x6_3/manna-harbour_miryoku/config.h
deleted file mode 100644
index d7083f5603..0000000000
--- a/layouts/community/split_3x6_3/manna-harbour_miryoku/config.h
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright 2022 Manna Harbour
-// https://github.com/manna-harbour/miryoku
-
-// 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 XXX KC_NO
-
-#define LAYOUT_miryoku( \
- 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, \
- N30, N31, K32, K33, K34, K35, K36, K37, N38, N39 \
-) \
-LAYOUT_split_3x6_3( \
-XXX, K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, XXX, \
-XXX, K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, XXX, \
-XXX, K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, XXX , \
- K32, K33, K34, K35, K36, K37 \
-)
diff --git a/layouts/community/split_3x6_3/manna-harbour_miryoku/keymap.c b/layouts/community/split_3x6_3/manna-harbour_miryoku/keymap.c
deleted file mode 100644
index dbab7f9820..0000000000
--- a/layouts/community/split_3x6_3/manna-harbour_miryoku/keymap.c
+++ /dev/null
@@ -1,4 +0,0 @@
-// Copyright 2019 Manna Harbour
-// https://github.com/manna-harbour/miryoku
-
-// 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/>.
diff --git a/layouts/community/split_3x6_3/readme.md b/layouts/community/split_3x6_3/readme.md
new file mode 100644
index 0000000000..ced9a2e752
--- /dev/null
+++ b/layouts/community/split_3x6_3/readme.md
@@ -0,0 +1,3 @@
+# split_3x6_3
+
+ LAYOUT_split_3x6_3
diff --git a/layouts/community/tkl_ansi/brandonschlack/config.h b/layouts/community/tkl_ansi/brandonschlack/config.h
deleted file mode 100644
index f7a21c81b0..0000000000
--- a/layouts/community/tkl_ansi/brandonschlack/config.h
+++ /dev/null
@@ -1,29 +0,0 @@
-/* Copyright 2020 Brandon Schlack
- *
- * 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
-
-// Explicit RGB Animation Mode Include
-#undef RGBLIGHT_EFFECT_RAINBOW_MOOD
-#undef RGBLIGHT_EFFECT_RAINBOW_SWIRL
-#undef RGBLIGHT_EFFECT_SNAKE
-#undef RGBLIGHT_EFFECT_KNIGHT
-#undef RGBLIGHT_EFFECT_CHRISTMAS
-#undef RGBLIGHT_EFFECT_STATIC_GRADIENT
-#undef RGBLIGHT_EFFECT_RGB_TEST
-#undef RGBLIGHT_EFFECT_ALTERNATING
-#undef RGBLIGHT_EFFECT_TWINKLE
-
-#define RGBLIGHT_EFFECT_BREATHING // Only have Breathing Animation
diff --git a/layouts/community/tkl_ansi/brandonschlack/keymap.c b/layouts/community/tkl_ansi/brandonschlack/keymap.c
deleted file mode 100644
index 9b425c477a..0000000000
--- a/layouts/community/tkl_ansi/brandonschlack/keymap.c
+++ /dev/null
@@ -1,98 +0,0 @@
-/* Copyright 2019 Brandon Schlack
- *
- * 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 "brandonschlack.h"
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-/* Base Layer
- * ┌───┬───┬───┬───┬───┬───┬─┬───┬───┬───┬───┬─┬───┬───┬───┬───┬─┬───┬───┬───┐
- * │Esc│ │ F1│ F2│ F3│ F4│ │ F5│ F6│ F7│ F8│ │ F9│F10│F11│F12│ │F13│F14│F15│
- * ├───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┤
- * ├───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ ┌───┬───┬───┤
- * │~ `│! 1│@ 2│# 3│$ 4│% 5│^ 6│& 7│* 8│( 9│) 0│_ -│+ =│ Bckspc│ │Ins│Hom│PgU│
- * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ ├───┼───┼───┤
- * │Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │{ [│} ]│| \│ │Del│End│PgD│
- * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ └───┴───┴───┤
- * │HyCaps│ A │ S │ D │ F │ G │ H │ J │ K │ L │: ;│" '│ Enter│ │
- * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────────┤ ┌───┐ │
- * │Shift │ Z │ X │ C │ V │ B │ N │ M │< ,│> .│? /│ Shift│ │ Up│ │
- * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤ ┌───┼───┼───┤
- * │Ctrl│ Opt│ Cmd│ Space │Cmd │Opt │Fn │Ctrl│ │Lef│Dow│Rig│
- * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┴─┴───┴───┴───┘
- */
-[_BASE] = LAYOUT_tkl_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_F13, KC_F14, KC_F15,
- 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,
- HY_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_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP,
- KC_LCTL, KC_LOPT, KC_LCMD, KC_SPC, RWD_CMD, FFD_OPT, PLY_FN1, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
-),
-/* Function Layer
- * ┌───┬───┬───┬───┬───┬───┬─┬───┬───┬───┬───┬─┬───┬───┬───┬───┬─┬───┬───┬───┐
- * │Mke│ │BrD│BrU│Msn│LHP│ │RV-│RV+│ │ │ │ │ │ │ │ │ │ │Mut│
- * ├───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┤
- * ├───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ ┌───┬───┬───┤
- * │ │ │ │ │ │ │ │ │ │ │ │ │ │ Del │ │Ply│Slp│VlU│
- * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ ├───┼───┼───┤
- * │RMod │RH+│RS+│RV+│AS+│ │ │ │ │ │ │ │ │ │ │Prv│Nxt│VlD│
- * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ └───┴───┴───┤
- * │RTgl │RH-│RS-│RV-│AS-│ │ │ │ │ │ │ │ │ │
- * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────────┤ ┌───┐ │
- * │ │LYR│Thm│ │ │RST│ │ │ │ │ │ │ │PgU│ │
- * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤ ┌───┼───┼───┤
- * │ │ │ │ │ │ │ │ │ │Hom│PgD│End│
- * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┴─┴───┴───┴───┘
- */
-[_FN1] = LAYOUT_tkl_ansi(
- QM_MAKE, KC_BRMD, KC_BRMU, MC_MSSN, MC_LHPD, RGB_VAD, RGB_VAI, _______, _______, _______, _______, _______, _______, _______, _______, KC_MUTE,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL, KC_MPLY, MC_SLPD, KC_VOLU,
- RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MPRV, KC_MNXT, KC_VOLD,
- RGB_TOG, RGB_HUD, RGB_SAD, RGB_VAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, RGB_LYR, RGB_THM, _______, _______, QK_BOOT, _______, _______, _______, _______, _______, _______, KC_PGUP,
- _______, _______, _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_END
-)
-/* Blank Template
- * ┌───┬───┬───┬───┬───┬───┬─┬───┬───┬───┬───┬─┬───┬───┬───┬───┬─┬───┬───┬───┐
- * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
- * ├───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┤
- * ├───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ ┌───┬───┬───┤
- * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
- * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ ├───┼───┼───┤
- * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
- * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ └───┴───┴───┤
- * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
- * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────────┤ ┌───┐ │
- * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
- * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤ ┌───┼───┼───┤
- * │ │ │ │ │ │ │ │ │ │ │ │ │
- * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┴─┴───┴───┴───┘
- */
-/*
-[BLANK] = LAYOUT_tkl_ansi(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______,_______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
-)
-*/
-};
-
-bool process_record_keymap(uint16_t keycode, keyrecord_t *record) {
- return true;
-}
diff --git a/layouts/community/tkl_ansi/brandonschlack/readme.md b/layouts/community/tkl_ansi/brandonschlack/readme.md
deleted file mode 100644
index e8885a13ca..0000000000
--- a/layouts/community/tkl_ansi/brandonschlack/readme.md
+++ /dev/null
@@ -1,55 +0,0 @@
-# brandonschlack's TKL ANSI layout
-
-A mostly typical Mac setup, with some personal QMK touches.
-
-## Base Layer
-
-The base layer has a standard macOS modifier layout, with **F13-F15** in the F row, in place of **Print Screen**, **Scroll Lock**, and **Pause/Break**.
-
-### [Mod-Taps](https://docs.qmk.fm/#/feature_advanced_keycodes?id=mod-tap)
-
-* Hyper Caps Lock
- * Hold **Caps Lock** for '**Hyper**' (**Shift**+**Control**+**Option**+**Command**). I use it for mapping global shortcuts for apps.
- * Tapping **Caps Lock** functions normally
-* Media controls mapped to Right Modifiers
- * **Right Command** for **Prev Track**
- * **Right Option** for **Next Track**
- * **Fn** for **Play/Pause**
-
-## Function Layer
-
-The Function layer is a mix of [Apple's *Fn* shortcuts](https://support.apple.com/en-us/HT201236), [WASD Keyboard's Media shortcuts](https://codekeyboards.com/#multimedia), and some QMK functionality.
-
-### [Apple's *Fn* shortcuts](https://support.apple.com/en-us/HT201236)
-
-* **Home/Page Down/Page Up/End** as **Fn+Left/Down/Up/Right**
-* **Foward Delete** as **Fn+Backspace**
-* **Display Brightness Down/Up** as **Fn+F1/F2**
-* **Misson Control** (*KC_FIND, but use [Karabiner-Elements](https://pqrs.org/osx/karabiner/index.html) as find -> mission_control*) as **Fn+F3**
-* **Launchpad** (*KC_MENU, but use [Karabiner-Elements](https://pqrs.org/osx/karabiner/index.html) as menu -> launchpad*) as **Fn+F4**
-* Keyboard Illumination Down/Up used as **RGB Underglow Value Decrease/Increase** on **Fn+F5/F6**
-
-### [WASD Keyboard's Media shortcuts](https://codekeyboards.com/#multimedia)
-
-* **Play/Pause** as **Fn+Insert**
-* **Prev/Next Track** as **Fn+Delete/End**
-* **Volume Up/Down** as **Fn+Page Up/Page Down**
-* **Volume Mute** as **Fn+F15**
-
-### Personal & QMK shortcuts
-
-* **Sleep Display** (Shift+Control+Power) as **Fn+Home**.
-* **QMK Make** as **Fn+Esc**. Sends make command to command line. Holding **Shift** will also append `:flash` target and put keyboard into bootloader.
-* **Reset** as **Fn+B**
-
-### RGB Controls
-
-* **RGB Toggle** as **Fn+Caps Lock**
-* **RGB Hue Increase/Decrease** as **Fn+Q/A**
-* **RGB Saturation Increase/Decrease** as **Fn+W/S**
-* **RGB Value Increase/Decrease** as **Fn+E/D**
-* **RGB Mode Next/Previous** as **Fn+Tab/Shift+Tab**
-* **RGB Toggle Layer Indication** as **Fn+Z**
- * Changes RGB Color with Layer change (*uses custom RGB_THEME*).
-* **RGB Cycle Next Theme** as **Fn+X**
-
diff --git a/layouts/community/tkl_ansi/brandonschlack/rules.mk b/layouts/community/tkl_ansi/brandonschlack/rules.mk
deleted file mode 100644
index 5ce3c8ee43..0000000000
--- a/layouts/community/tkl_ansi/brandonschlack/rules.mk
+++ /dev/null
@@ -1,4 +0,0 @@
-# Build Options
-CONSOLE_ENABLE = yes # Enable Console for Debugging
-MOUSEKEY_ENABLE = no # Don't need Mouse Keys
-BACKLIGHT_ENABLE = no # Backlights not installed
diff --git a/layouts/community/tkl_ansi/readme.md b/layouts/community/tkl_ansi/readme.md
new file mode 100644
index 0000000000..cd4197ef4e
--- /dev/null
+++ b/layouts/community/tkl_ansi/readme.md
@@ -0,0 +1,3 @@
+# tkl_ansi
+
+ LAYOUT_tkl_ansi
diff --git a/layouts/community/tkl_ansi/talljoe-tkl/config.h b/layouts/community/tkl_ansi/talljoe-tkl/config.h
deleted file mode 100644
index 8433461044..0000000000
--- a/layouts/community/tkl_ansi/talljoe-tkl/config.h
+++ /dev/null
@@ -1,35 +0,0 @@
-/* Copyright 2020 Joseph Wasson
- *
- * 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 ENABLE_GAME_LAYER
-
-#define TEMPLATE_TKL(\
- KJ6, KI4, KH4, KH2, KH6, KA7, KE6, KD2, KD4, KB4, KB7, KB6, KB0, KC7, KC5, KA5, \
- KJ4, KJ7, KI7, KH7, KG7, KG4, KF4, KF7, KE7, KD7, KR7, KR4, KE4, KB2, KL4, KO4, KQ4, \
- KJ2, KJ5, KI5, KH5, KG5, KG2, KF2, KF5, KE5, KD5, KR5, KR2, KE2, KB3, KK4, KO7, KQ7, \
- KI2, KJ3, KI3, KH3, KG3, KG6, KF6, KF3, KE3, KD3, KR3, KR6, KB1, \
- KN2, KJ1, KI1, KH1, KG1, KG0, KF0, KF1, KE1, KD1, KR0, KN3, KO6, \
- KA4, KP2, KC6, KX1, KK6, KX2, KC0, KM3, KD0, KA1, KO0, KK0, KL0 \
-) LAYOUT_tkl_ansi( \
- KJ6, KI4, KH4, KH2, KH6, KA7, KE6, KD2, KD4, KB4, KB7, KB6, KB0, KC7, KC5, KA5, \
- KJ4, KJ7, KI7, KH7, KG7, KG4, KF4, KF7, KE7, KD7, KR7, KR4, KE4, KB2, KL4, KO4, KQ4, \
- KJ2, KJ5, KI5, KH5, KG5, KG2, KF2, KF5, KE5, KD5, KR5, KR2, KE2, KB3, KK4, KO7, KQ7, \
- KI2, KJ3, KI3, KH3, KG3, KG6, KF6, KF3, KE3, KD3, KR3, KR6, KB1, \
- KN2, KJ1, KI1, KH1, KG1, KG0, KF0, KF1, KE1, KD1, KR0, KN3, KO6, \
- KA4, KP2, KC6, KX2, KC0, KM3, KD0, KA1, KO0, KK0, KL0 \
-)
diff --git a/layouts/community/tkl_ansi/talljoe-tkl/keymap.c b/layouts/community/tkl_ansi/talljoe-tkl/keymap.c
deleted file mode 100644
index 7812add812..0000000000
--- a/layouts/community/tkl_ansi/talljoe-tkl/keymap.c
+++ /dev/null
@@ -1 +0,0 @@
-// This space intentionally left blank
diff --git a/layouts/community/tkl_ansi/talljoe-tkl/rules.mk b/layouts/community/tkl_ansi/talljoe-tkl/rules.mk
deleted file mode 100644
index 92007fe8ad..0000000000
--- a/layouts/community/tkl_ansi/talljoe-tkl/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-USER_NAME := talljoe
diff --git a/layouts/community/tkl_ansi/xyverz/keymap.c b/layouts/community/tkl_ansi/xyverz/keymap.c
deleted file mode 100644
index f8007c6374..0000000000
--- a/layouts/community/tkl_ansi/xyverz/keymap.c
+++ /dev/null
@@ -1,69 +0,0 @@
-#include QMK_KEYBOARD_H
-
-enum layer_names {
- _QW,
- _DV,
- _CM,
- _FL,
-};
-
-enum planck_keycodes { DVORAK = SAFE_RANGE, QWERTY, COLEMAK };
-
-// clang-format off
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
- [_QW] = LAYOUT_tkl_ansi( /* Layer 0: Qwerty */
- 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,
- KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
- KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP,
- KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_RGUI, KC_RALT, KC_RCTL, MO(_FL), KC_LEFT, KC_DOWN, KC_RGHT
- ),
-
- [_DV] = LAYOUT_tkl_ansi( /* Layer 1: Dvorak */
- 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_LBRC, KC_RBRC, KC_BSPC, KC_INS, KC_HOME, KC_PGUP,
- 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_DEL, KC_END, KC_PGDN,
- KC_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_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_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_RGUI, KC_RALT, KC_RCTL, MO(_FL), KC_LEFT, KC_DOWN, KC_RGHT
- ),
-
- [_CM] = LAYOUT_tkl_ansi( /* Layer 2: Colemak */
- 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_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN,
- 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_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_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_RGUI, KC_RALT, KC_RCTL, MO(_FL), KC_LEFT, KC_DOWN, KC_RGHT
- ),
-
-[_FL] = LAYOUT_tkl_ansi( /* Layer 3: Functions */
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, QK_BOOT, KC_MPRV, KC_MPLY, KC_MNXT,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- QWERTY, DVORAK, COLEMAK, _______, _______, _______, _______, _______, _______, _______, _______
- ),
-
-};
-// clang-format on
-
-bool process_record_user(uint16_t keycode, keyrecord_t *record) {
- if (record->event.pressed) {
- switch (keycode) {
- case DVORAK:
- set_single_persistent_default_layer(_DV);
- return false;
- case QWERTY:
- set_single_persistent_default_layer(_QW);
- return false;
- case COLEMAK:
- set_single_persistent_default_layer(_CM);
- return false;
- }
- }
- return true;
-} \ No newline at end of file
diff --git a/layouts/community/tkl_ansi/xyverz/readme.md b/layouts/community/tkl_ansi/xyverz/readme.md
deleted file mode 100644
index b67b1385dd..0000000000
--- a/layouts/community/tkl_ansi/xyverz/readme.md
+++ /dev/null
@@ -1 +0,0 @@
-2019-10-16 Updated to bring keymap up to current.
diff --git a/layouts/community/tkl_ansi/yanfali/keymap.c b/layouts/community/tkl_ansi/yanfali/keymap.c
deleted file mode 100644
index f80ff697ce..0000000000
--- a/layouts/community/tkl_ansi/yanfali/keymap.c
+++ /dev/null
@@ -1,25 +0,0 @@
-#include QMK_KEYBOARD_H
-
-enum _layer {
- BASE,
- FN
-};
-
-// clang-format off
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [BASE] = LAYOUT_tkl_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_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,
- MT(MOD_LCTL, KC_ESC), 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_LALT,KC_LGUI, KC_SPC, KC_RGUI,KC_RGUI,MO(FN) ,KC_RCTL, KC_LEFT,KC_DOWN,KC_RGHT),
- [FN] = LAYOUT_tkl_ansi(
- _______, _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, KC_WAKE,KC_PWR, KC_SLEP,
- _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,EE_CLR, _______,_______,KC_VOLU,
- _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,QK_BOOT, _______,_______,KC_VOLD,
- _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______,
- _______,_______,_______,_______,_______,_______,_______,KC_MUTE,KC_VOLD,KC_VOLU,_______, _______, KC_MPLY,
- _______,_______,_______, _______, _______,_______,MO(FN) ,_______, KC_MPRV,KC_MSTP,KC_MNXT)
-};
-// clang-format on
diff --git a/layouts/community/tkl_ansi_split_bs_rshift/readme.md b/layouts/community/tkl_ansi_split_bs_rshift/readme.md
new file mode 100644
index 0000000000..9eaefc20ab
--- /dev/null
+++ b/layouts/community/tkl_ansi_split_bs_rshift/readme.md
@@ -0,0 +1,3 @@
+# tkl_ansi_split_bs_rshift
+
+ LAYOUT_tkl_ansi_split_bs_rshift
diff --git a/layouts/community/tkl_ansi_tsangan/readme.md b/layouts/community/tkl_ansi_tsangan/readme.md
new file mode 100644
index 0000000000..f731757359
--- /dev/null
+++ b/layouts/community/tkl_ansi_tsangan/readme.md
@@ -0,0 +1,3 @@
+# tkl_ansi_tsangan
+
+ LAYOUT_tkl_ansi_tsangan
diff --git a/layouts/community/tkl_ansi_tsangan_split_bs_rshift/readme.md b/layouts/community/tkl_ansi_tsangan_split_bs_rshift/readme.md
new file mode 100644
index 0000000000..eaa7fe6668
--- /dev/null
+++ b/layouts/community/tkl_ansi_tsangan_split_bs_rshift/readme.md
@@ -0,0 +1,3 @@
+# tkl_ansi_tsangan_split_bs_rshift
+
+ LAYOUT_tkl_ansi_tsangan_split_bs_rshift
diff --git a/layouts/community/tkl_f13_ansi/readme.md b/layouts/community/tkl_f13_ansi/readme.md
new file mode 100644
index 0000000000..902a8e5395
--- /dev/null
+++ b/layouts/community/tkl_f13_ansi/readme.md
@@ -0,0 +1,3 @@
+# tkl_f13_ansi
+
+ LAYOUT_tkl_f13_ansi
diff --git a/layouts/community/tkl_f13_ansi_split_bs_rshift/readme.md b/layouts/community/tkl_f13_ansi_split_bs_rshift/readme.md
new file mode 100644
index 0000000000..229fc74918
--- /dev/null
+++ b/layouts/community/tkl_f13_ansi_split_bs_rshift/readme.md
@@ -0,0 +1,3 @@
+# tkl_f13_ansi_split_bs_rshift
+
+ LAYOUT_tkl_f13_ansi_split_bs_rshift
diff --git a/layouts/community/tkl_f13_ansi_tsangan/readme.md b/layouts/community/tkl_f13_ansi_tsangan/readme.md
new file mode 100644
index 0000000000..2151c877c3
--- /dev/null
+++ b/layouts/community/tkl_f13_ansi_tsangan/readme.md
@@ -0,0 +1,3 @@
+# tkl_f13_ansi_tsangan
+
+ LAYOUT_tkl_f13_ansi_tsangan
diff --git a/layouts/community/tkl_f13_ansi_tsangan_split_bs_rshift/readme.md b/layouts/community/tkl_f13_ansi_tsangan_split_bs_rshift/readme.md
new file mode 100644
index 0000000000..7a1c4baa1b
--- /dev/null
+++ b/layouts/community/tkl_f13_ansi_tsangan_split_bs_rshift/readme.md
@@ -0,0 +1,3 @@
+# tkl_f13_ansi_tsangan_split_bs_rshift
+
+ LAYOUT_tkl_f13_ansi_tsangan_split_bs_rshift
diff --git a/layouts/community/tkl_f13_iso/readme.md b/layouts/community/tkl_f13_iso/readme.md
new file mode 100644
index 0000000000..e7bba09f3f
--- /dev/null
+++ b/layouts/community/tkl_f13_iso/readme.md
@@ -0,0 +1,3 @@
+# tkl_f13_iso
+
+ LAYOUT_tkl_f13_iso
diff --git a/layouts/community/tkl_f13_iso_split_bs_rshift/readme.md b/layouts/community/tkl_f13_iso_split_bs_rshift/readme.md
new file mode 100644
index 0000000000..4c4fc597df
--- /dev/null
+++ b/layouts/community/tkl_f13_iso_split_bs_rshift/readme.md
@@ -0,0 +1,3 @@
+# tkl_f13_iso_split_bs_rshift
+
+ LAYOUT_tkl_f13_iso_split_bs_rshift
diff --git a/layouts/community/tkl_f13_iso_tsangan/readme.md b/layouts/community/tkl_f13_iso_tsangan/readme.md
new file mode 100644
index 0000000000..377b9a014e
--- /dev/null
+++ b/layouts/community/tkl_f13_iso_tsangan/readme.md
@@ -0,0 +1,3 @@
+# tkl_f13_iso_tsangan
+
+ LAYOUT_tkl_f13_iso_tsangan
diff --git a/layouts/community/tkl_f13_iso_tsangan_split_bs_rshift/readme.md b/layouts/community/tkl_f13_iso_tsangan_split_bs_rshift/readme.md
new file mode 100644
index 0000000000..03e957dada
--- /dev/null
+++ b/layouts/community/tkl_f13_iso_tsangan_split_bs_rshift/readme.md
@@ -0,0 +1,3 @@
+# tkl_f13_iso_tsangan_split_bs_rshift
+
+ LAYOUT_tkl_f13_iso_tsangan_split_bs_rshift
diff --git a/layouts/community/tkl_f13_jis/readme.md b/layouts/community/tkl_f13_jis/readme.md
new file mode 100644
index 0000000000..cc49ffd830
--- /dev/null
+++ b/layouts/community/tkl_f13_jis/readme.md
@@ -0,0 +1,3 @@
+# tkl_f13_jis
+
+ LAYOUT_tkl_f13_jis
diff --git a/layouts/community/tkl_iso/readme.md b/layouts/community/tkl_iso/readme.md
new file mode 100644
index 0000000000..27281687cd
--- /dev/null
+++ b/layouts/community/tkl_iso/readme.md
@@ -0,0 +1,3 @@
+# tkl_iso
+
+ LAYOUT_tkl_iso
diff --git a/layouts/community/tkl_iso_split_bs_rshift/readme.md b/layouts/community/tkl_iso_split_bs_rshift/readme.md
new file mode 100644
index 0000000000..4fcb279dc0
--- /dev/null
+++ b/layouts/community/tkl_iso_split_bs_rshift/readme.md
@@ -0,0 +1,3 @@
+# tkl_iso_split_bs_rshift
+
+ LAYOUT_tkl_iso_split_bs_rshift
diff --git a/layouts/community/tkl_iso_tsangan/readme.md b/layouts/community/tkl_iso_tsangan/readme.md
new file mode 100644
index 0000000000..9f20ae7ba1
--- /dev/null
+++ b/layouts/community/tkl_iso_tsangan/readme.md
@@ -0,0 +1,3 @@
+# tkl_iso_tsangan
+
+ LAYOUT_tkl_iso_tsangan
diff --git a/layouts/community/tkl_iso_tsangan_split_bs_rshift/readme.md b/layouts/community/tkl_iso_tsangan_split_bs_rshift/readme.md
new file mode 100644
index 0000000000..08daf376bc
--- /dev/null
+++ b/layouts/community/tkl_iso_tsangan_split_bs_rshift/readme.md
@@ -0,0 +1,3 @@
+# tkl_iso_tsangan_split_bs_rshift
+
+ LAYOUT_tkl_iso_tsangan_split_bs_rshift
diff --git a/layouts/community/tkl_jis/readme.md b/layouts/community/tkl_jis/readme.md
new file mode 100644
index 0000000000..860d9b2936
--- /dev/null
+++ b/layouts/community/tkl_jis/readme.md
@@ -0,0 +1,3 @@
+# tkl_jis
+
+ LAYOUT_tkl_jis
diff --git a/layouts/community/tkl_nofrow_ansi/readme.md b/layouts/community/tkl_nofrow_ansi/readme.md
new file mode 100644
index 0000000000..693b1245e6
--- /dev/null
+++ b/layouts/community/tkl_nofrow_ansi/readme.md
@@ -0,0 +1,3 @@
+# tkl_nofrow_ansi
+
+ LAYOUT_tkl_nofrow_ansi
diff --git a/layouts/community/tkl_nofrow_iso/readme.md b/layouts/community/tkl_nofrow_iso/readme.md
new file mode 100644
index 0000000000..aeaa5cfd06
--- /dev/null
+++ b/layouts/community/tkl_nofrow_iso/readme.md
@@ -0,0 +1,3 @@
+# tkl_nofrow_iso
+
+ LAYOUT_tkl_nofrow_iso
diff --git a/layouts/default/fullsize_extended_ansi/default_fullsize_extended_ansi/keymap.c b/layouts/default/fullsize_extended_ansi/default_fullsize_extended_ansi/keymap.c
new file mode 100644
index 0000000000..13ade5545d
--- /dev/null
+++ b/layouts/default/fullsize_extended_ansi/default_fullsize_extended_ansi/keymap.c
@@ -0,0 +1,32 @@
+// Copyright 2023 QMK
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#include QMK_KEYBOARD_H
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ /*
+ * ┌───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┐ ┌───┬───┬───┬───┐
+ * │Esc│ │F1 │F2 │F3 │F4 │ │F5 │F6 │F7 │F8 │ │F9 │F10│F11│F12│ │PSc│Scr│Pse│ │Clc│VMT│VDN│VUP│
+ * └───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┘ └───┴───┴───┴───┘
+ * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ ┌───┬───┬───┐ ┌───┬───┬───┬───┐
+ * │ ` │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │ Backsp│ │Ins│Hom│PgU│ │Num│ / │ * │ - │
+ * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ ├───┼───┼───┤ ├───┼───┼───┼───┤
+ * │ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │ \ │ │Del│End│PgD│ │ 7 │ 8 │ 9 │ │
+ * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ └───┴───┴───┘ ├───┼───┼───┤ + │
+ * │ Caps │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ Enter │ │ 4 │ 5 │ 6 │ │
+ * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────────┤ ┌───┐ ├───┼───┼───┼───┤
+ * │ Shift │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │ Shift │ │ ↑ │ │ 1 │ 2 │ 3 │ │
+ * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤ ┌───┼───┼───┐ ├───┴───┼───┤Ent│
+ * │Ctrl│GUI │Alt │ │ Alt│ GUI│Menu│Ctrl│ │ ← │ ↓ │ → │ │ 0 │ . │ │
+ * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ └───┴───┴───┘ └───────┴───┴───┘
+ */
+ [0] = LAYOUT_fullsize_extended_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_PSCR, KC_SCRL, KC_PAUS, KC_CALC, KC_MUTE, KC_VOLD, KC_VOLU,
+
+ 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_NUM, KC_PSLS, KC_PAST, KC_PMNS,
+ 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, KC_P7, KC_P8, KC_P9, KC_PPLS,
+ KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_P4, KC_P5, KC_P6,
+ 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_P1, KC_P2, KC_P3, KC_PENT,
+ KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT
+ )
+};
diff --git a/layouts/default/fullsize_extended_ansi/info.json b/layouts/default/fullsize_extended_ansi/info.json
new file mode 100644
index 0000000000..55ce7d11f7
--- /dev/null
+++ b/layouts/default/fullsize_extended_ansi/info.json
@@ -0,0 +1,124 @@
+{
+ "keyboard_name": "Fullsize Extended ANSI layout",
+ "url": "",
+ "maintainer": "qmk",
+ "layouts": {
+ "LAYOUT_fullsize_extended_ansi": {
+ "layout": [
+ {"x":0, "y":0},
+ {"x":2, "y":0},
+ {"x":3, "y":0},
+ {"x":4, "y":0},
+ {"x":5, "y":0},
+ {"x":6.5, "y":0},
+ {"x":7.5, "y":0},
+ {"x":8.5, "y":0},
+ {"x":9.5, "y":0},
+ {"x":11, "y":0},
+ {"x":12, "y":0},
+ {"x":13, "y":0},
+ {"x":14, "y":0},
+ {"x":15.25, "y":0},
+ {"x":16.25, "y":0},
+ {"x":17.25, "y":0},
+ {"x":18.5, "y":0},
+ {"x":19.5, "y":0},
+ {"x":20.5, "y":0},
+ {"x":21.5, "y":0},
+
+ {"x":0, "y":1.25},
+ {"x":1, "y":1.25},
+ {"x":2, "y":1.25},
+ {"x":3, "y":1.25},
+ {"x":4, "y":1.25},
+ {"x":5, "y":1.25},
+ {"x":6, "y":1.25},
+ {"x":7, "y":1.25},
+ {"x":8, "y":1.25},
+ {"x":9, "y":1.25},
+ {"x":10, "y":1.25},
+ {"x":11, "y":1.25},
+ {"x":12, "y":1.25},
+ {"x":13, "y":1.25, "w":2},
+ {"x":15.25, "y":1.25},
+ {"x":16.25, "y":1.25},
+ {"x":17.25, "y":1.25},
+ {"x":18.5, "y":1.25},
+ {"x":19.5, "y":1.25},
+ {"x":20.5, "y":1.25},
+ {"x":21.5, "y":1.25},
+
+ {"x":0, "y":2.25, "w":1.5},
+ {"x":1.5, "y":2.25},
+ {"x":2.5, "y":2.25},
+ {"x":3.5, "y":2.25},
+ {"x":4.5, "y":2.25},
+ {"x":5.5, "y":2.25},
+ {"x":6.5, "y":2.25},
+ {"x":7.5, "y":2.25},
+ {"x":8.5, "y":2.25},
+ {"x":9.5, "y":2.25},
+ {"x":10.5, "y":2.25},
+ {"x":11.5, "y":2.25},
+ {"x":12.5, "y":2.25},
+ {"x":13.5, "y":2.25, "w":1.5},
+ {"x":15.25, "y":2.25},
+ {"x":16.25, "y":2.25},
+ {"x":17.25, "y":2.25},
+ {"x":18.5, "y":2.25},
+ {"x":19.5, "y":2.25},
+ {"x":20.5, "y":2.25},
+ {"x":21.5, "y":2.25, "h": 2},
+
+ {"x":0, "y":3.25, "w":1.75},
+ {"x":1.75, "y":3.25},
+ {"x":2.75, "y":3.25},
+ {"x":3.75, "y":3.25},
+ {"x":4.75, "y":3.25},
+ {"x":5.75, "y":3.25},
+ {"x":6.75, "y":3.25},
+ {"x":7.75, "y":3.25},
+ {"x":8.75, "y":3.25},
+ {"x":9.75, "y":3.25},
+ {"x":10.75, "y":3.25},
+ {"x":11.75, "y":3.25},
+ {"x":12.75, "y":3.25, "w":2.25},
+ {"x":18.5, "y":3.25},
+ {"x":19.5, "y":3.25},
+ {"x":20.5, "y":3.25},
+
+ {"x":0, "y":4.25, "w":2.25},
+ {"x":2.25, "y":4.25},
+ {"x":3.25, "y":4.25},
+ {"x":4.25, "y":4.25},
+ {"x":5.25, "y":4.25},
+ {"x":6.25, "y":4.25},
+ {"x":7.25, "y":4.25},
+ {"x":8.25, "y":4.25},
+ {"x":9.25, "y":4.25},
+ {"x":10.25, "y":4.25},
+ {"x":11.25, "y":4.25},
+ {"x":12.25, "y":4.25, "w":2.75},
+ {"x":16.25, "y":4.25},
+ {"x":18.5, "y":4.25},
+ {"x":19.5, "y":4.25},
+ {"x":20.5, "y":4.25},
+ {"x":21.5, "y":4.25, "h":2},
+
+ {"x":0, "y":5.25, "w":1.25},
+ {"x":1.25, "y":5.25, "w":1.25},
+ {"x":2.5, "y":5.25, "w":1.25},
+ {"x":3.75, "y":5.25, "w":6.25},
+ {"x":10, "y":5.25, "w":1.25},
+ {"x":11.25, "y":5.25, "w":1.25},
+ {"x":12.5, "y":5.25, "w":1.25},
+ {"x":13.75, "y":5.25, "w":1.25},
+ {"x":15.25, "y":5.25},
+ {"x":16.25, "y":5.25},
+ {"x":17.25, "y":5.25},
+ {"x":18.5, "y":5.25, "w":2},
+ {"x":20.5, "y":5.25}
+ ]
+ }
+ }
+}
diff --git a/layouts/default/fullsize_extended_ansi/layout.json b/layouts/default/fullsize_extended_ansi/layout.json
new file mode 100644
index 0000000000..b2503d1831
--- /dev/null
+++ b/layouts/default/fullsize_extended_ansi/layout.json
@@ -0,0 +1,6 @@
+[{a:7},"",{x:1},"","","","",{x:0.5},"","","","",{x:0.5},"","","","",{x:0.25},"","","",{x:0.25},"","","",""],
+[{y:0.25},"","","","","","","","","","","","","",{w:2},"",{x:0.25},"","","",{x:0.25},"","","",""],
+[{w:1.5},"","","","","","","","","","","","","",{w:1.5},"",{x:0.25},"","","",{x:0.25},"","","",{h:2},""],
+[{w:1.75},"","","","","","","","","","","","",{w:2.25},"",{x:3.5},"","",""],
+[{w:2.25},"","","","","","","","","","","",{w:2.75},"",{x:1.25},"",{x:1.25},"","","",{h:2},""],
+[{w:1.25},"",{w:1.25},"",{w:1.25},"",{w:6.25},"",{w:1.25},"",{w:1.25},"",{w:1.25},"",{w:1.25},"",{x:0.25},"","","",{x:0.25,w:2},"",""]
diff --git a/layouts/default/fullsize_extended_ansi/readme.md b/layouts/default/fullsize_extended_ansi/readme.md
new file mode 100644
index 0000000000..7cc035cde9
--- /dev/null
+++ b/layouts/default/fullsize_extended_ansi/readme.md
@@ -0,0 +1,3 @@
+# fullsize_extended_ansi
+
+ LAYOUT_fullsize_extended_ansi
diff --git a/layouts/default/fullsize_extended_iso/default_fullsize_extended_iso/keymap.c b/layouts/default/fullsize_extended_iso/default_fullsize_extended_iso/keymap.c
new file mode 100644
index 0000000000..3efe70b4cf
--- /dev/null
+++ b/layouts/default/fullsize_extended_iso/default_fullsize_extended_iso/keymap.c
@@ -0,0 +1,32 @@
+// Copyright 2023 QMK
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#include QMK_KEYBOARD_H
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ /*
+ * ┌───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┐ ┌───┬───┬───┬───┐
+ * │Esc│ │F1 │F2 │F3 │F4 │ │F5 │F6 │F7 │F8 │ │F9 │F10│F11│F12│ │PSc│Scr│Pse│ │Clc│VMT│VDN│VUP│
+ * └───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┘ └───┴───┴───┴───┘
+ * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ ┌───┬───┬───┐ ┌───┬───┬───┬───┐
+ * │ ` │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │ Backsp│ │Ins│Hom│PgU│ │Num│ / │ * │ - │
+ * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ ├───┼───┼───┤ ├───┼───┼───┼───┤
+ * │ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │ │ │Del│End│PgD│ │ 7 │ 8 │ 9 │ │
+ * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ Ent│ └───┴───┴───┘ ├───┼───┼───┤ + │
+ * │ Caps │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ # │ │ │ 4 │ 5 │ 6 │ │
+ * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤ ┌───┐ ├───┼───┼───┼───┤
+ * │Shft│ \ │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │ Shift │ │ ↑ │ │ 1 │ 2 │ 3 │ │
+ * ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤ ┌───┼───┼───┐ ├───┴───┼───┤Ent│
+ * │Ctrl│GUI │Alt │ │ Alt│ GUI│Menu│Ctrl│ │ ← │ ↓ │ → │ │ 0 │ . │ │
+ * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ └───┴───┴───┘ └───────┴───┴───┘
+ */
+ [0] = LAYOUT_fullsize_extended_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_PSCR, KC_SCRL, KC_PAUS, KC_CALC, KC_MUTE, KC_VOLD, KC_VOLU,
+
+ 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_NUM, KC_PSLS, KC_PAST, KC_PMNS,
+ 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_DEL, KC_END, KC_PGDN, KC_P7, KC_P8, KC_P9, KC_PPLS,
+ KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, KC_P4, KC_P5, KC_P6,
+ 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_P1, KC_P2, KC_P3, KC_PENT,
+ KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT
+ )
+};
diff --git a/layouts/default/fullsize_extended_iso/info.json b/layouts/default/fullsize_extended_iso/info.json
new file mode 100644
index 0000000000..25a0e65b8e
--- /dev/null
+++ b/layouts/default/fullsize_extended_iso/info.json
@@ -0,0 +1,125 @@
+{
+ "keyboard_name": "Fullsize Extended ISO layout",
+ "url": "",
+ "maintainer": "qmk",
+ "layouts": {
+ "LAYOUT_fullsize_extended_iso": {
+ "layout": [
+ {"x":0, "y":0},
+ {"x":2, "y":0},
+ {"x":3, "y":0},
+ {"x":4, "y":0},
+ {"x":5, "y":0},
+ {"x":6.5, "y":0},
+ {"x":7.5, "y":0},
+ {"x":8.5, "y":0},
+ {"x":9.5, "y":0},
+ {"x":11, "y":0},
+ {"x":12, "y":0},
+ {"x":13, "y":0},
+ {"x":14, "y":0},
+ {"x":15.25, "y":0},
+ {"x":16.25, "y":0},
+ {"x":17.25, "y":0},
+ {"x":18.5, "y":0},
+ {"x":19.5, "y":0},
+ {"x":20.5, "y":0},
+ {"x":21.5, "y":0},
+
+ {"x":0, "y":1.25},
+ {"x":1, "y":1.25},
+ {"x":2, "y":1.25},
+ {"x":3, "y":1.25},
+ {"x":4, "y":1.25},
+ {"x":5, "y":1.25},
+ {"x":6, "y":1.25},
+ {"x":7, "y":1.25},
+ {"x":8, "y":1.25},
+ {"x":9, "y":1.25},
+ {"x":10, "y":1.25},
+ {"x":11, "y":1.25},
+ {"x":12, "y":1.25},
+ {"x":13, "y":1.25, "w":2},
+ {"x":15.25, "y":1.25},
+ {"x":16.25, "y":1.25},
+ {"x":17.25, "y":1.25},
+ {"x":18.5, "y":1.25},
+ {"x":19.5, "y":1.25},
+ {"x":20.5, "y":1.25},
+ {"x":21.5, "y":1.25},
+
+ {"x":0, "y":2.25, "w":1.5},
+ {"x":1.5, "y":2.25},
+ {"x":2.5, "y":2.25},
+ {"x":3.5, "y":2.25},
+ {"x":4.5, "y":2.25},
+ {"x":5.5, "y":2.25},
+ {"x":6.5, "y":2.25},
+ {"x":7.5, "y":2.25},
+ {"x":8.5, "y":2.25},
+ {"x":9.5, "y":2.25},
+ {"x":10.5, "y":2.25},
+ {"x":11.5, "y":2.25},
+ {"x":12.5, "y":2.25},
+ {"x":15.25, "y":2.25},
+ {"x":16.25, "y":2.25},
+ {"x":17.25, "y":2.25},
+ {"x":18.5, "y":2.25},
+ {"x":19.5, "y":2.25},
+ {"x":20.5, "y":2.25},
+ {"x":21.5, "y":2.25, "h": 2},
+
+ {"x":0, "y":3.25, "w":1.75},
+ {"x":1.75, "y":3.25},
+ {"x":2.75, "y":3.25},
+ {"x":3.75, "y":3.25},
+ {"x":4.75, "y":3.25},
+ {"x":5.75, "y":3.25},
+ {"x":6.75, "y":3.25},
+ {"x":7.75, "y":3.25},
+ {"x":8.75, "y":3.25},
+ {"x":9.75, "y":3.25},
+ {"x":10.75, "y":3.25},
+ {"x":11.75, "y":3.25},
+ {"x":12.75, "y":3.25},
+ {"x":13.75, "y":2.25, "w":1.25, "h":2},
+ {"x":18.5, "y":3.25},
+ {"x":19.5, "y":3.25},
+ {"x":20.5, "y":3.25},
+
+ {"x":0, "y":4.25, "w":1.25},
+ {"x":1.25, "y":4.25},
+ {"x":2.25, "y":4.25},
+ {"x":3.25, "y":4.25},
+ {"x":4.25, "y":4.25},
+ {"x":5.25, "y":4.25},
+ {"x":6.25, "y":4.25},
+ {"x":7.25, "y":4.25},
+ {"x":8.25, "y":4.25},
+ {"x":9.25, "y":4.25},
+ {"x":10.25, "y":4.25},
+ {"x":11.25, "y":4.25},
+ {"x":12.25, "y":4.25, "w":2.75},
+ {"x":16.25, "y":4.25},
+ {"x":18.5, "y":4.25},
+ {"x":19.5, "y":4.25},
+ {"x":20.5, "y":4.25},
+ {"x":21.5, "y":4.25, "h":2},
+
+ {"x":0, "y":5.25, "w":1.25},
+ {"x":1.25, "y":5.25, "w":1.25},
+ {"x":2.5, "y":5.25, "w":1.25},
+ {"x":3.75, "y":5.25, "w":6.25},
+ {"x":10, "y":5.25, "w":1.25},
+ {"x":11.25, "y":5.25, "w":1.25},
+ {"x":12.5, "y":5.25, "w":1.25},
+ {"x":13.75, "y":5.25, "w":1.25},
+ {"x":15.25, "y":5.25},
+ {"x":16.25, "y":5.25},
+ {"x":17.25, "y":5.25},
+ {"x":18.5, "y":5.25, "w":2},
+ {"x":20.5, "y":5.25}
+ ]
+ }
+ }
+}
diff --git a/layouts/default/fullsize_extended_iso/layout.json b/layouts/default/fullsize_extended_iso/layout.json
new file mode 100644
index 0000000000..c841aec943
--- /dev/null
+++ b/layouts/default/fullsize_extended_iso/layout.json
@@ -0,0 +1,6 @@
+[{a:7},"",{x:1},"","","","",{x:0.5},"","","","",{x:0.5},"","","","",{x:0.25},"","","",{x:0.25},"","","",""],
+[{y:0.25},"","","","","","","","","","","","","",{w:2},"",{x:0.25},"","","",{x:0.25},"","","",""],
+[{w:1.5},"","","","","","","","","","","","","",{x:0.25,w:1.25,h:2,w2:1.5,h2:1,x2:-0.25},"",{x:0.25},"","","",{x:0.25},"","","",{h:2},""],
+[{w:1.75},"","","","","","","","","","","","","",{x:4.75},"","",""],
+[{w:1.25},"","","","","","","","","","","","",{w:2.75},"",{x:1.25},"",{x:1.25},"","","",{h:2},""],
+[{w:1.25},"",{w:1.25},"",{w:1.25},"",{w:6.25},"",{w:1.25},"",{w:1.25},"",{w:1.25},"",{w:1.25},"",{x:0.25},"","","",{x:0.25,w:2},"",""]
diff --git a/layouts/default/fullsize_extended_iso/readme.md b/layouts/default/fullsize_extended_iso/readme.md
new file mode 100644
index 0000000000..8688591ef1
--- /dev/null
+++ b/layouts/default/fullsize_extended_iso/readme.md
@@ -0,0 +1,3 @@
+# fullsize_extended_iso
+
+ LAYOUT_fullsize_extended_iso
diff --git a/layouts/default/fullsize_extended_jis/default_fullsize_extended_jis/keymap.c b/layouts/default/fullsize_extended_jis/default_fullsize_extended_jis/keymap.c
new file mode 100644
index 0000000000..16c78f4b2d
--- /dev/null
+++ b/layouts/default/fullsize_extended_jis/default_fullsize_extended_jis/keymap.c
@@ -0,0 +1,32 @@
+// Copyright 2023 QMK
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#include QMK_KEYBOARD_H
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ /*
+ * ┌───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┐ ┌───┬───┬───┬───┐
+ * │Esc│ │F1 │F2 │F3 │F4 │ │F5 │F6 │F7 │F8 │ │F9 │F10│F11│F12│ │PSc│Scr│Pse│ │Clc│VMT│VDN│VUP│
+ * └───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┘ └───┴───┴───┴───┘
+ * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ ┌───┬───┬───┐ ┌───┬───┬───┬───┐
+ * │ZHK│ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ ^ │ ¥ │Bsp│ │Ins│Hom│PgU│ │Num│ / │ * │ - │
+ * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤ ├───┼───┼───┤ ├───┼───┼───┼───┤
+ * │ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ @ │ [ │ │ │Del│End│PgD│ │ 7 │ 8 │ 9 │ │
+ * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ Ent│ └───┴───┴───┘ ├───┼───┼───┤ + │
+ * │ Eisu │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ : │ ] │ │ │ 4 │ 5 │ 6 │ │
+ * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┤ ┌───┐ ├───┼───┼───┼───┤
+ * │ Shift │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │ \ │ Shft │ │ ↑ │ │ 1 │ 2 │ 3 │ │
+ * ├────┬───┴┬──┴─┬─┴──┬┴───┴───┴───┼───┴┬──┴─┬─┴─┬─┴─┬─┴─┬────┤ ┌───┼───┼───┐ ├───┴───┼───┤Ent│
+ * │Ctrl│GUI │Alt │Mhen│ Space │Henk│Kana│Alt│GUI│App│Ctrl│ │ ← │ ↓ │ → │ │ 0 │ . │ │
+ * └────┴────┴────┴────┴────────────┴────┴────┴───┴───┴───┴────┘ └───┴───┴───┘ └───────┴───┴───┘
+ */
+ [0] = LAYOUT_fullsize_extended_jis(
+ 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_CALC, KC_MUTE, KC_VOLD, KC_VOLU,
+
+ 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_INT3, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, KC_NUM, KC_PSLS, KC_PAST, KC_PMNS,
+ 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_DEL, KC_END, KC_PGDN, KC_P7, KC_P8, KC_P9, KC_PPLS,
+ KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, KC_P4, KC_P5, KC_P6,
+ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_INT1, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, KC_PENT,
+ KC_LCTL, KC_LGUI, KC_LALT, KC_INT5, KC_SPC, KC_INT4, KC_INT2, KC_RALT, KC_RGUI, KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT
+ )
+};
diff --git a/layouts/default/fullsize_extended_jis/info.json b/layouts/default/fullsize_extended_jis/info.json
new file mode 100644
index 0000000000..8267b4c54f
--- /dev/null
+++ b/layouts/default/fullsize_extended_jis/info.json
@@ -0,0 +1,129 @@
+{
+ "keyboard_name": "Fullsize Extended JIS layout",
+ "url": "",
+ "maintainer": "qmk",
+ "layouts": {
+ "LAYOUT_fullsize_extended_jis": {
+ "layout": [
+ {"x": 0, "y": 0},
+ {"x": 2, "y": 0},
+ {"x": 3, "y": 0},
+ {"x": 4, "y": 0},
+ {"x": 5, "y": 0},
+ {"x": 6.5, "y": 0},
+ {"x": 7.5, "y": 0},
+ {"x": 8.5, "y": 0},
+ {"x": 9.5, "y": 0},
+ {"x": 11, "y": 0},
+ {"x": 12, "y": 0},
+ {"x": 13, "y": 0},
+ {"x": 14, "y": 0},
+ {"x": 15.25, "y": 0},
+ {"x": 16.25, "y": 0},
+ {"x": 17.25, "y": 0},
+ {"x":18.5, "y":0},
+ {"x":19.5, "y":0},
+ {"x":20.5, "y":0},
+ {"x":21.5, "y":0},
+
+ {"x": 0, "y": 1.25},
+ {"x": 1, "y": 1.25},
+ {"x": 2, "y": 1.25},
+ {"x": 3, "y": 1.25},
+ {"x": 4, "y": 1.25},
+ {"x": 5, "y": 1.25},
+ {"x": 6, "y": 1.25},
+ {"x": 7, "y": 1.25},
+ {"x": 8, "y": 1.25},
+ {"x": 9, "y": 1.25},
+ {"x": 10, "y": 1.25},
+ {"x": 11, "y": 1.25},
+ {"x": 12, "y": 1.25},
+ {"x": 13, "y": 1.25},
+ {"x": 14, "y": 1.25},
+ {"x": 15.25, "y": 1.25},
+ {"x": 16.25, "y": 1.25},
+ {"x": 17.25, "y": 1.25},
+ {"x": 18.5, "y": 1.25},
+ {"x": 19.5, "y": 1.25},
+ {"x": 20.5, "y": 1.25},
+ {"x": 21.5, "y": 1.25},
+ {"x": 0, "y": 2.25, "w": 1.5},
+
+ {"x": 1.5, "y": 2.25},
+ {"x": 2.5, "y": 2.25},
+ {"x": 3.5, "y": 2.25},
+ {"x": 4.5, "y": 2.25},
+ {"x": 5.5, "y": 2.25},
+ {"x": 6.5, "y": 2.25},
+ {"x": 7.5, "y": 2.25},
+ {"x": 8.5, "y": 2.25},
+ {"x": 9.5, "y": 2.25},
+ {"x": 10.5, "y": 2.25},
+ {"x": 11.5, "y": 2.25},
+ {"x": 12.5, "y": 2.25},
+ {"x": 13.75, "y": 2.25, "w": 1.25, "h": 2},
+ {"x": 15.25, "y": 2.25},
+ {"x": 16.25, "y": 2.25},
+ {"x": 17.25, "y": 2.25},
+ {"x": 18.5, "y": 2.25},
+ {"x": 19.5, "y": 2.25},
+ {"x": 20.5, "y": 2.25},
+ {"x": 21.5, "y": 2.25, "h": 2},
+
+ {"x": 0, "y": 3.25, "w": 1.75},
+ {"x": 1.75, "y": 3.25},
+ {"x": 2.75, "y": 3.25},
+ {"x": 3.75, "y": 3.25},
+ {"x": 4.75, "y": 3.25},
+ {"x": 5.75, "y": 3.25},
+ {"x": 6.75, "y": 3.25},
+ {"x": 7.75, "y": 3.25},
+ {"x": 8.75, "y": 3.25},
+ {"x": 9.75, "y": 3.25},
+ {"x": 10.75, "y": 3.25},
+ {"x": 11.75, "y": 3.25},
+ {"x": 12.75, "y": 3.25},
+ {"x": 18.5, "y": 3.25},
+ {"x": 19.5, "y": 3.25},
+ {"x": 20.5, "y": 3.25},
+
+ {"x": 0, "y": 4.25, "w": 2.25},
+ {"x": 2.25, "y": 4.25},
+ {"x": 3.25, "y": 4.25},
+ {"x": 4.25, "y": 4.25},
+ {"x": 5.25, "y": 4.25},
+ {"x": 6.25, "y": 4.25},
+ {"x": 7.25, "y": 4.25},
+ {"x": 8.25, "y": 4.25},
+ {"x": 9.25, "y": 4.25},
+ {"x": 10.25, "y": 4.25},
+ {"x": 11.25, "y": 4.25},
+ {"x": 12.25, "y": 4.25},
+ {"x": 13.25, "y": 4.25, "w": 1.75},
+ {"x": 16.25, "y": 4.25},
+ {"x": 18.5, "y": 4.25},
+ {"x": 19.5, "y": 4.25},
+ {"x": 20.5, "y": 4.25},
+ {"x": 21.5, "y": 4.25, "h": 2},
+
+ {"x": 0, "y": 5.25, "w": 1.25},
+ {"x": 1.25, "y": 5.25, "w": 1.25},
+ {"x": 2.5, "y": 5.25, "w": 1.25},
+ {"x": 3.75, "y": 5.25, "w": 1.25},
+ {"x": 5, "y": 5.25, "w": 3.25},
+ {"x": 8.25, "y": 5.25, "w": 1.25},
+ {"x": 9.5, "y": 5.25, "w": 1.25},
+ {"x": 10.75, "y": 5.25},
+ {"x": 11.75, "y": 5.25},
+ {"x": 12.75, "y": 5.25},
+ {"x": 13.75, "y": 5.25, "w": 1.25},
+ {"x": 15.25, "y": 5.25},
+ {"x": 16.25, "y": 5.25},
+ {"x": 17.25, "y": 5.25},
+ {"x": 18.5, "y": 5.25, "w": 2},
+ {"x": 20.5, "y": 5.25}
+ ]
+ }
+ }
+}
diff --git a/layouts/default/fullsize_extended_jis/layout.json b/layouts/default/fullsize_extended_jis/layout.json
new file mode 100644
index 0000000000..e5716fe996
--- /dev/null
+++ b/layouts/default/fullsize_extended_jis/layout.json
@@ -0,0 +1,6 @@
+[{a:7},"",{x:1},"","","","",{x:0.5},"","","","",{x:0.5},"","","","",{x:0.25},"","","",{x:0.25},"","","",""],
+[{y:0.25},"","","","","","","","","","","","","","","",{x:0.25},"","","",{x:0.25},"","","",""],
+[{w:1.5},"","","","","","","","","","","","","",{x:0.25,w:1.25,h:2,w2:1.5,h2:1,x2:-0.25},"",{x:0.25},"","","",{x:0.25},"","","",{h:2},""],
+[{w:1.75},"","","","","","","","","","","","","",{x:4.75},"","",""],
+[{w:2.25},"","","","","","","","","","","","",{w:1.75},"",{x:1.25},"",{x:1.25},"","","",{h:2},""],
+[{w:1.25},"",{w:1.25},"",{w:1.25},"",{w:1.25},"",{w:3.25},"",{w:1.25},"",{w:1.25},"","","","",{w:1.25},"",{x:0.25},"","","",{x:0.25,w:2},"",""]
diff --git a/layouts/default/fullsize_extended_jis/readme.md b/layouts/default/fullsize_extended_jis/readme.md
new file mode 100644
index 0000000000..79a00b5084
--- /dev/null
+++ b/layouts/default/fullsize_extended_jis/readme.md
@@ -0,0 +1,3 @@
+# fullsize_extended_jis
+
+ LAYOUT_fullsize_extended_jis
diff --git a/layouts/default/readme.md b/layouts/default/readme.md
index 361fa86792..d5d268ae8b 100644
--- a/layouts/default/readme.md
+++ b/layouts/default/readme.md
@@ -1017,6 +1017,60 @@ LAYOUT_fullsize_jis
└────┴────┴────┴────┴────────────┴────┴────┴───┴───┴───┴────┘ └───┴───┴───┘ └───────┴───┴───┘
```
+```
+LAYOUT_fullsize_extended_ansi
+┌───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┐ ┌───┬───┬───┬───┐
+│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
+└───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┘ └───┴───┴───┴───┘
+┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ ┌───┬───┬───┐ ┌───┬───┬───┬───┐
+│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
+├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ ├───┼───┼───┤ ├───┼───┼───┼───┤
+│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
+├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ └───┴───┴───┘ ├───┼───┼───┤ │
+│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
+├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────────┤ ┌───┐ ├───┼───┼───┼───┤
+│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
+├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤ ┌───┼───┼───┐ ├───┴───┼───┤ │
+│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
+└────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ └───┴───┴───┘ └───────┴───┴───┘
+```
+
+```
+LAYOUT_fullsize_extended_iso
+┌───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┐ ┌───┬───┬───┬───┐
+│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
+└───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┘ └───┴───┴───┴───┘
+┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ ┌───┬───┬───┐ ┌───┬───┬───┬───┐
+│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
+├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ ├───┼───┼───┤ ├───┼───┼───┼───┤
+│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
+├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │ └───┴───┴───┘ ├───┼───┼───┤ │
+│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
+├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤ ┌───┐ ├───┼───┼───┼───┤
+│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
+├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤ ┌───┼───┼───┐ ├───┴───┼───┤ │
+│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
+└────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ └───┴───┴───┘ └───────┴───┴───┘
+```
+
+```
+LAYOUT_fullsize_extended_jis
+┌───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┐ ┌───┬───┬───┬───┐
+│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
+└───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┘ └───┴───┴───┴───┘
+┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ ┌───┬───┬───┐ ┌───┬───┬───┬───┐
+│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
+├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤ ├───┼───┼───┤ ├───┼───┼───┼───┤
+│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
+├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │ └───┴───┴───┘ ├───┼───┼───┤ │
+│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
+├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┤ ┌───┐ ├───┼───┼───┼───┤
+│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
+├────┬───┴┬──┴─┬─┴──┬┴───┴───┴───┼───┴┬──┴─┬─┴─┬─┴─┬─┴─┬────┤ ┌───┼───┼───┐ ├───┴───┼───┤ │
+│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
+└────┴────┴────┴────┴────────────┴────┴────┴───┴───┴───┴────┘ └───┴───┴───┘ └───────┴───┴───┘
+```
+
### Split Layouts
```
diff --git a/lib/python/qmk/build_targets.py b/lib/python/qmk/build_targets.py
new file mode 100644
index 0000000000..1ab489cec3
--- /dev/null
+++ b/lib/python/qmk/build_targets.py
@@ -0,0 +1,238 @@
+# Copyright 2023 Nick Brassel (@tzarc)
+# SPDX-License-Identifier: GPL-2.0-or-later
+import json
+import shutil
+from typing import List, Union
+from pathlib import Path
+from dotty_dict import dotty, Dotty
+from milc import cli
+from qmk.constants import QMK_FIRMWARE, INTERMEDIATE_OUTPUT_PREFIX
+from qmk.commands import find_make, get_make_parallel_args, parse_configurator_json
+from qmk.keyboard import keyboard_folder
+from qmk.info import keymap_json
+from qmk.keymap import locate_keymap
+from qmk.path import is_under_qmk_firmware, is_under_qmk_userspace
+
+
+class BuildTarget:
+ def __init__(self, keyboard: str, keymap: str, json: Union[dict, Dotty] = None):
+ self._keyboard = keyboard_folder(keyboard)
+ self._keyboard_safe = self._keyboard.replace('/', '_')
+ self._keymap = keymap
+ self._parallel = 1
+ self._clean = False
+ self._compiledb = False
+ self._target = f'{self._keyboard_safe}_{self.keymap}'
+ self._intermediate_output = Path(f'{INTERMEDIATE_OUTPUT_PREFIX}{self._target}')
+ self._generated_files_path = self._intermediate_output / 'src'
+ self._json = json.to_dict() if isinstance(json, Dotty) else json
+
+ def __str__(self):
+ return f'{self.keyboard}:{self.keymap}'
+
+ def __repr__(self):
+ return f'BuildTarget(keyboard={self.keyboard}, keymap={self.keymap})'
+
+ def __eq__(self, __value: object) -> bool:
+ if not isinstance(__value, BuildTarget):
+ return False
+ return self.__repr__() == __value.__repr__()
+
+ def __ne__(self, __value: object) -> bool:
+ return not self.__eq__(__value)
+
+ def __hash__(self) -> int:
+ return self.__repr__().__hash__()
+
+ def configure(self, parallel: int = None, clean: bool = None, compiledb: bool = None) -> None:
+ if parallel is not None:
+ self._parallel = parallel
+ if clean is not None:
+ self._clean = clean
+ if compiledb is not None:
+ self._compiledb = compiledb
+
+ @property
+ def keyboard(self) -> str:
+ return self._keyboard
+
+ @property
+ def keymap(self) -> str:
+ return self._keymap
+
+ @property
+ def json(self) -> dict:
+ if not self._json:
+ self._load_json()
+ if not self._json:
+ return {}
+ return self._json
+
+ @property
+ def dotty(self) -> Dotty:
+ return dotty(self.json)
+
+ def _common_make_args(self, dry_run: bool = False, build_target: str = None):
+ compile_args = [
+ find_make(),
+ *get_make_parallel_args(self._parallel),
+ '-r',
+ '-R',
+ '-f',
+ 'builddefs/build_keyboard.mk',
+ ]
+
+ if not cli.config.general.verbose:
+ compile_args.append('-s')
+
+ verbose = 'true' if cli.config.general.verbose else 'false'
+ color = 'true' if cli.config.general.color else 'false'
+
+ if dry_run:
+ compile_args.append('-n')
+
+ if build_target:
+ compile_args.append(build_target)
+
+ compile_args.extend([
+ f'KEYBOARD={self.keyboard}',
+ f'KEYMAP={self.keymap}',
+ f'KEYBOARD_FILESAFE={self._keyboard_safe}',
+ f'TARGET={self._target}',
+ f'INTERMEDIATE_OUTPUT={self._intermediate_output}',
+ f'VERBOSE={verbose}',
+ f'COLOR={color}',
+ 'SILENT=false',
+ 'QMK_BIN="qmk"',
+ ])
+
+ return compile_args
+
+ def prepare_build(self, build_target: str = None, dry_run: bool = False, **env_vars) -> None:
+ raise NotImplementedError("prepare_build() not implemented in base class")
+
+ def compile_command(self, build_target: str = None, dry_run: bool = False, **env_vars) -> List[str]:
+ raise NotImplementedError("compile_command() not implemented in base class")
+
+ def generate_compilation_database(self, build_target: str = None, skip_clean: bool = False, **env_vars) -> None:
+ self.prepare_build(build_target=build_target, **env_vars)
+ command = self.compile_command(build_target=build_target, dry_run=True, **env_vars)
+ from qmk.cli.generate.compilation_database import write_compilation_database # Lazy load due to circular references
+ write_compilation_database(command=command, output_path=QMK_FIRMWARE / 'compile_commands.json', skip_clean=skip_clean, **env_vars)
+
+ def compile(self, build_target: str = None, dry_run: bool = False, **env_vars) -> None:
+ if self._clean or self._compiledb:
+ command = [find_make(), "clean"]
+ if dry_run:
+ command.append('-n')
+ cli.log.info('Cleaning with {fg_cyan}%s', ' '.join(command))
+ cli.run(command, capture_output=False)
+
+ if self._compiledb and not dry_run:
+ self.generate_compilation_database(build_target=build_target, skip_clean=True, **env_vars)
+
+ self.prepare_build(build_target=build_target, dry_run=dry_run, **env_vars)
+ command = self.compile_command(build_target=build_target, **env_vars)
+ cli.log.info('Compiling keymap with {fg_cyan}%s', ' '.join(command))
+ if not dry_run:
+ cli.echo('\n')
+ ret = cli.run(command, capture_output=False)
+ if ret.returncode:
+ return ret.returncode
+
+
+class KeyboardKeymapBuildTarget(BuildTarget):
+ def __init__(self, keyboard: str, keymap: str, json: dict = None):
+ super().__init__(keyboard=keyboard, keymap=keymap, json=json)
+
+ def __repr__(self):
+ return f'KeyboardKeymapTarget(keyboard={self.keyboard}, keymap={self.keymap})'
+
+ def _load_json(self):
+ self._json = keymap_json(self.keyboard, self.keymap)
+
+ def prepare_build(self, build_target: str = None, dry_run: bool = False, **env_vars) -> None:
+ pass
+
+ def compile_command(self, build_target: str = None, dry_run: bool = False, **env_vars) -> List[str]:
+ compile_args = self._common_make_args(dry_run=dry_run, build_target=build_target)
+
+ for key, value in env_vars.items():
+ compile_args.append(f'{key}={value}')
+
+ # Need to override the keymap path if the keymap is a userspace directory.
+ # This also ensures keyboard aliases as per `keyboard_aliases.hjson` still work if the userspace has the keymap
+ # in an equivalent historical location.
+ keymap_location = locate_keymap(self.keyboard, self.keymap)
+ if is_under_qmk_userspace(keymap_location) and not is_under_qmk_firmware(keymap_location):
+ keymap_directory = keymap_location.parent
+ compile_args.extend([
+ f'MAIN_KEYMAP_PATH_1={keymap_directory}',
+ f'MAIN_KEYMAP_PATH_2={keymap_directory}',
+ f'MAIN_KEYMAP_PATH_3={keymap_directory}',
+ f'MAIN_KEYMAP_PATH_4={keymap_directory}',
+ f'MAIN_KEYMAP_PATH_5={keymap_directory}',
+ ])
+
+ return compile_args
+
+
+class JsonKeymapBuildTarget(BuildTarget):
+ def __init__(self, json_path):
+ if isinstance(json_path, Path):
+ self.json_path = json_path
+ else:
+ self.json_path = None
+
+ json = parse_configurator_json(json_path) # Will load from stdin if provided
+
+ # In case the user passes a keymap.json from a keymap directory directly to the CLI.
+ # e.g.: qmk compile - < keyboards/clueboard/california/keymaps/default/keymap.json
+ json["keymap"] = json.get("keymap", "default_json")
+
+ super().__init__(keyboard=json['keyboard'], keymap=json['keymap'], json=json)
+
+ self._keymap_json = self._generated_files_path / 'keymap.json'
+
+ def __repr__(self):
+ return f'JsonKeymapTarget(keyboard={self.keyboard}, keymap={self.keymap}, path={self.json_path})'
+
+ def _load_json(self):
+ pass # Already loaded in constructor
+
+ def prepare_build(self, build_target: str = None, dry_run: bool = False, **env_vars) -> None:
+ if self._clean:
+ if self._intermediate_output.exists():
+ shutil.rmtree(self._intermediate_output)
+
+ # begin with making the deepest folder in the tree
+ self._generated_files_path.mkdir(exist_ok=True, parents=True)
+
+ # Compare minified to ensure consistent comparison
+ new_content = json.dumps(self.json, separators=(',', ':'))
+ if self._keymap_json.exists():
+ old_content = json.dumps(json.loads(self._keymap_json.read_text(encoding='utf-8')), separators=(',', ':'))
+ if old_content == new_content:
+ new_content = None
+
+ # Write the keymap.json file if different so timestamps are only updated
+ # if the content changes -- running `make` won't treat it as modified.
+ if new_content:
+ self._keymap_json.write_text(new_content, encoding='utf-8')
+
+ def compile_command(self, build_target: str = None, dry_run: bool = False, **env_vars) -> List[str]:
+ compile_args = self._common_make_args(dry_run=dry_run, build_target=build_target)
+ compile_args.extend([
+ f'MAIN_KEYMAP_PATH_1={self._intermediate_output}',
+ f'MAIN_KEYMAP_PATH_2={self._intermediate_output}',
+ f'MAIN_KEYMAP_PATH_3={self._intermediate_output}',
+ f'MAIN_KEYMAP_PATH_4={self._intermediate_output}',
+ f'MAIN_KEYMAP_PATH_5={self._intermediate_output}',
+ f'KEYMAP_JSON={self._keymap_json}',
+ f'KEYMAP_PATH={self._generated_files_path}',
+ ])
+
+ for key, value in env_vars.items():
+ compile_args.append(f'{key}={value}')
+
+ return compile_args
diff --git a/lib/python/qmk/cli/__init__.py b/lib/python/qmk/cli/__init__.py
index 695a180066..cf60903687 100644
--- a/lib/python/qmk/cli/__init__.py
+++ b/lib/python/qmk/cli/__init__.py
@@ -81,6 +81,11 @@ subcommands = [
'qmk.cli.new.keymap',
'qmk.cli.painter',
'qmk.cli.pytest',
+ 'qmk.cli.userspace.add',
+ 'qmk.cli.userspace.compile',
+ 'qmk.cli.userspace.doctor',
+ 'qmk.cli.userspace.list',
+ 'qmk.cli.userspace.remove',
'qmk.cli.via2json',
]
diff --git a/lib/python/qmk/cli/c2json.py b/lib/python/qmk/cli/c2json.py
index 7f6aca070a..f7f1f2ffba 100644
--- a/lib/python/qmk/cli/c2json.py
+++ b/lib/python/qmk/cli/c2json.py
@@ -1,45 +1,57 @@
"""Generate a keymap.json from a keymap.c file.
"""
+import re
import json
from argcomplete.completers import FilesCompleter
from milc import cli
-import qmk.keymap
import qmk.path
from qmk.json_encoders import InfoJSONEncoder
+from qmk.decorators import automagic_keyboard, automagic_keymap
from qmk.keyboard import keyboard_completer, keyboard_folder
+from qmk.keymap import locate_keymap, find_keymap_from_dir, generate_json, c2json as c2json_impl
from qmk.errors import CppError
+from qmk.commands import dump_lines
@cli.argument('--no-cpp', arg_only=True, action='store_false', help='Do not use \'cpp\' on keymap.c')
@cli.argument('-o', '--output', arg_only=True, type=qmk.path.normpath, help='File to write to')
@cli.argument('-q', '--quiet', arg_only=True, action='store_true', help="Quiet mode, only output error messages")
-@cli.argument('-kb', '--keyboard', arg_only=True, type=keyboard_folder, completer=keyboard_completer, required=True, help='The keyboard\'s name')
-@cli.argument('-km', '--keymap', arg_only=True, required=True, help='The keymap\'s name')
-@cli.argument('filename', arg_only=True, completer=FilesCompleter('.c'), help='keymap.c file')
+@cli.argument('-kb', '--keyboard', type=keyboard_folder, completer=keyboard_completer, help='The keyboard\'s name')
+@cli.argument('-km', '--keymap', help='The keymap\'s name')
+@cli.argument('filename', nargs='?', type=qmk.path.FileType('r'), arg_only=True, completer=FilesCompleter('.c'), help='keymap.c file')
@cli.subcommand('Creates a keymap.json from a keymap.c file.')
+@automagic_keyboard
+@automagic_keymap
def c2json(cli):
"""Generate a keymap.json from a keymap.c file.
This command uses the `qmk.keymap` module to generate a keymap.json from a keymap.c file. The generated keymap is written to stdout, or to a file if -o is provided.
"""
- if cli.args.filename != '-':
- cli.args.filename = qmk.path.normpath(cli.args.filename)
+ filename = cli.args.filename
+ keyboard = cli.config.c2json.keyboard
+ keymap = cli.config.c2json.keymap
- # Error checking
- if not cli.args.filename.exists():
- cli.log.error('C file does not exist!')
- cli.print_usage()
- return False
+ if filename:
+ if not keyboard and not keymap:
+ # fallback to inferring keyboard/keymap from path
+ (keymap, found_type) = find_keymap_from_dir(filename)
+ if found_type == 'keymap_directory':
+ keyboard = re.search(fr"keyboards/(.+)/keymaps/{keymap}/.*", filename.as_posix()).group(1)
- # Environment processing
- if cli.args.output == ('-'):
- cli.args.output = None
+ elif keyboard and keymap:
+ if not filename:
+ # fallback to inferring keyboard/keymap from path
+ filename = locate_keymap(keyboard, keymap)
+
+ if not all((filename, keyboard, keymap)):
+ cli.log.error('You must supply keyboard and keymap, a path to a keymap.c within qmk_firmware, or absolute filename and keyboard and keymap')
+ cli.print_help()
+ return False
- # Parse the keymap.c
try:
- keymap_json = qmk.keymap.c2json(cli.args.keyboard, cli.args.keymap, cli.args.filename, use_cpp=cli.args.no_cpp)
+ keymap_json = c2json_impl(keyboard, keymap, filename, use_cpp=cli.args.no_cpp)
except CppError as e:
if cli.config.general.verbose:
cli.log.debug('The C pre-processor ran into a fatal error: %s', e)
@@ -48,19 +60,14 @@ def c2json(cli):
# Generate the keymap.json
try:
- keymap_json = qmk.keymap.generate_json(keymap_json['keymap'], keymap_json['keyboard'], keymap_json['layout'], keymap_json['layers'])
+ keymap_json = generate_json(keymap_json['keymap'], keymap_json['keyboard'], keymap_json['layout'], keymap_json['layers'])
except KeyError:
cli.log.error('Something went wrong. Try to use --no-cpp.')
return False
if cli.args.output:
- cli.args.output.parent.mkdir(parents=True, exist_ok=True)
- if cli.args.output.exists():
- cli.args.output.replace(cli.args.output.parent / (cli.args.output.name + '.bak'))
- cli.args.output.write_text(json.dumps(keymap_json, cls=InfoJSONEncoder, sort_keys=True))
-
- if not cli.args.quiet:
- cli.log.info('Wrote keymap to %s.', cli.args.output)
-
+ keymap_lines = [json.dumps(keymap_json, cls=InfoJSONEncoder, sort_keys=True)]
else:
- print(json.dumps(keymap_json))
+ keymap_lines = [json.dumps(keymap_json)]
+
+ dump_lines(cli.args.output, keymap_lines, cli.args.quiet)
diff --git a/lib/python/qmk/cli/ci/validate_aliases.py b/lib/python/qmk/cli/ci/validate_aliases.py
index a205d03cff..7f781d4397 100644
--- a/lib/python/qmk/cli/ci/validate_aliases.py
+++ b/lib/python/qmk/cli/ci/validate_aliases.py
@@ -1,11 +1,8 @@
"""Validates the list of keyboard aliases.
"""
-from pathlib import Path
-
from milc import cli
-from qmk.json_schema import json_load
-from qmk.keyboard import resolve_keyboard, keyboard_folder
+from qmk.keyboard import resolve_keyboard, keyboard_folder, keyboard_alias_definitions
def _safe_keyboard_folder(target):
@@ -34,7 +31,7 @@ def _target_keyboard_exists(target):
@cli.subcommand('Validates the list of keyboard aliases.', hidden=True)
def ci_validate_aliases(cli):
- aliases = json_load(Path('data/mappings/keyboard_aliases.hjson'))
+ aliases = keyboard_alias_definitions()
success = True
for alias in aliases.keys():
diff --git a/lib/python/qmk/cli/clean.py b/lib/python/qmk/cli/clean.py
index 72b7ffe810..bdec01e4b6 100644
--- a/lib/python/qmk/cli/clean.py
+++ b/lib/python/qmk/cli/clean.py
@@ -2,7 +2,7 @@
"""
from subprocess import DEVNULL
-from qmk.commands import create_make_target
+from qmk.commands import find_make
from milc import cli
@@ -11,4 +11,4 @@ from milc import cli
def clean(cli):
"""Runs `make clean` (or `make distclean` if --all is passed)
"""
- cli.run(create_make_target('distclean' if cli.args.all else 'clean'), capture_output=False, stdin=DEVNULL)
+ cli.run([find_make(), 'distclean' if cli.args.all else 'clean'], capture_output=False, stdin=DEVNULL)
diff --git a/lib/python/qmk/cli/compile.py b/lib/python/qmk/cli/compile.py
index 2478ea1fed..3c8f3664ea 100755
--- a/lib/python/qmk/cli/compile.py
+++ b/lib/python/qmk/cli/compile.py
@@ -7,22 +7,11 @@ from argcomplete.completers import FilesCompleter
from milc import cli
import qmk.path
-from qmk.constants import QMK_FIRMWARE
from qmk.decorators import automagic_keyboard, automagic_keymap
-from qmk.commands import compile_configurator_json, create_make_command, parse_configurator_json, build_environment
+from qmk.commands import build_environment
from qmk.keyboard import keyboard_completer, keyboard_folder_or_all, is_all_keyboards
from qmk.keymap import keymap_completer, locate_keymap
-from qmk.cli.generate.compilation_database import write_compilation_database
-
-
-def _is_keymap_target(keyboard, keymap):
- if keymap == 'all':
- return True
-
- if locate_keymap(keyboard, keymap):
- return True
-
- return False
+from qmk.build_targets import KeyboardKeymapBuildTarget, JsonKeymapBuildTarget
@cli.argument('filename', nargs='?', arg_only=True, type=qmk.path.FileType('r'), completer=FilesCompleter('.json'), help='The configurator export to compile')
@@ -32,6 +21,7 @@ def _is_keymap_target(keyboard, keymap):
@cli.argument('-j', '--parallel', type=int, default=1, help="Set the number of parallel make jobs; 0 means unlimited.")
@cli.argument('-e', '--env', arg_only=True, action='append', default=[], help="Set a variable to be passed to make. May be passed multiple times.")
@cli.argument('-c', '--clean', arg_only=True, action='store_true', help="Remove object files before compiling.")
+@cli.argument('-t', '--target', type=str, default=None, help="Intended alternative build target, such as `production` in `make planck/rev4:default:production`.")
@cli.argument('--compiledb', arg_only=True, action='store_true', help="Generates the clang compile_commands.json file during build. Implies --clean.")
@cli.subcommand('Compile a QMK Firmware.')
@automagic_keyboard
@@ -47,53 +37,35 @@ def compile(cli):
from .mass_compile import mass_compile
cli.args.builds = []
cli.args.filter = []
- cli.args.no_temp = False
+ cli.config.mass_compile.keymap = cli.config.compile.keymap
+ cli.config.mass_compile.parallel = cli.config.compile.parallel
+ cli.config.mass_compile.no_temp = False
return mass_compile(cli)
# Build the environment vars
envs = build_environment(cli.args.env)
- # Determine the compile command
- commands = []
-
- current_keyboard = None
- current_keymap = None
+ # Handler for the build target
+ target = None
if cli.args.filename:
- # If a configurator JSON was provided generate a keymap and compile it
- user_keymap = parse_configurator_json(cli.args.filename)
- commands = [compile_configurator_json(user_keymap, parallel=cli.config.compile.parallel, clean=cli.args.clean, **envs)]
+ # if we were given a filename, assume we have a json build target
+ target = JsonKeymapBuildTarget(cli.args.filename)
elif cli.config.compile.keyboard and cli.config.compile.keymap:
- # Generate the make command for a specific keyboard/keymap.
- if not _is_keymap_target(cli.config.compile.keyboard, cli.config.compile.keymap):
+ # if we got a keyboard and keymap, attempt to find it
+ if not locate_keymap(cli.config.compile.keyboard, cli.config.compile.keymap):
cli.log.error('Invalid keymap argument.')
cli.print_help()
return False
- if cli.args.clean:
- commands.append(create_make_command(cli.config.compile.keyboard, cli.config.compile.keymap, 'clean', **envs))
- commands.append(create_make_command(cli.config.compile.keyboard, cli.config.compile.keymap, parallel=cli.config.compile.parallel, **envs))
+ # If we got here, then we have a valid keyboard and keymap for a build target
+ target = KeyboardKeymapBuildTarget(cli.config.compile.keyboard, cli.config.compile.keymap)
- current_keyboard = cli.config.compile.keyboard
- current_keymap = cli.config.compile.keymap
-
- if not commands:
+ if not target:
cli.log.error('You must supply a configurator export, both `--keyboard` and `--keymap`, or be in a directory for a keyboard or keymap.')
cli.print_help()
return False
- if cli.args.compiledb:
- if current_keyboard is None or current_keymap is None:
- cli.log.error('You must supply both `--keyboard` and `--keymap` or be in a directory with a keymap to generate a compile_commands.json file.')
- cli.print_help()
- return False
- write_compilation_database(current_keyboard, current_keymap, QMK_FIRMWARE / 'compile_commands.json')
-
- cli.log.info('Compiling keymap with {fg_cyan}%s', ' '.join(commands[-1]))
- if not cli.args.dry_run:
- cli.echo('\n')
- for command in commands:
- ret = cli.run(command, capture_output=False)
- if ret.returncode:
- return ret.returncode
+ target.configure(parallel=cli.config.compile.parallel, clean=cli.args.clean, compiledb=cli.args.compiledb)
+ target.compile(cli.args.target, dry_run=cli.args.dry_run, **envs)
diff --git a/lib/python/qmk/cli/doctor/main.py b/lib/python/qmk/cli/doctor/main.py
index 6a6feb87d1..dd8b58b2c7 100755
--- a/lib/python/qmk/cli/doctor/main.py
+++ b/lib/python/qmk/cli/doctor/main.py
@@ -9,10 +9,11 @@ from milc import cli
from milc.questions import yesno
from qmk import submodules
-from qmk.constants import QMK_FIRMWARE, QMK_FIRMWARE_UPSTREAM
+from qmk.constants import QMK_FIRMWARE, QMK_FIRMWARE_UPSTREAM, QMK_USERSPACE, HAS_QMK_USERSPACE
from .check import CheckStatus, check_binaries, check_binary_versions, check_submodules
from qmk.git import git_check_repo, git_get_branch, git_get_tag, git_get_last_log_entry, git_get_common_ancestor, git_is_dirty, git_get_remotes, git_check_deviation
from qmk.commands import in_virtualenv
+from qmk.userspace import qmk_userspace_paths, qmk_userspace_validate, UserspaceValidationError
def os_tests():
@@ -92,6 +93,25 @@ def output_submodule_status():
cli.log.error(f'- {sub_name}: <<< missing or unknown >>>')
+def userspace_tests(qmk_firmware):
+ if qmk_firmware:
+ cli.log.info(f'QMK home: {{fg_cyan}}{qmk_firmware}')
+
+ for path in qmk_userspace_paths():
+ try:
+ qmk_userspace_validate(path)
+ cli.log.info(f'Testing userspace candidate: {{fg_cyan}}{path}{{fg_reset}} -- {{fg_green}}Valid `qmk.json`')
+ except FileNotFoundError:
+ cli.log.warn(f'Testing userspace candidate: {{fg_cyan}}{path}{{fg_reset}} -- {{fg_red}}Missing `qmk.json`')
+ except UserspaceValidationError as err:
+ cli.log.warn(f'Testing userspace candidate: {{fg_cyan}}{path}{{fg_reset}} -- {{fg_red}}Invalid `qmk.json`')
+ cli.log.warn(f' -- {{fg_cyan}}{path}/qmk.json{{fg_reset}} validation error: {err}')
+
+ if QMK_USERSPACE is not None:
+ cli.log.info(f'QMK userspace: {{fg_cyan}}{QMK_USERSPACE}')
+ cli.log.info(f'Userspace enabled: {{fg_cyan}}{HAS_QMK_USERSPACE}')
+
+
@cli.argument('-y', '--yes', action='store_true', arg_only=True, help='Answer yes to all questions.')
@cli.argument('-n', '--no', action='store_true', arg_only=True, help='Answer no to all questions.')
@cli.subcommand('Basic QMK environment checks')
@@ -108,6 +128,9 @@ def doctor(cli):
cli.log.info('QMK home: {fg_cyan}%s', QMK_FIRMWARE)
status = os_status = os_tests()
+
+ userspace_tests(None)
+
git_status = git_tests()
if git_status == CheckStatus.ERROR or (os_status == CheckStatus.OK and git_status == CheckStatus.WARNING):
diff --git a/lib/python/qmk/cli/find.py b/lib/python/qmk/cli/find.py
index f2135bbc16..55a0530092 100644
--- a/lib/python/qmk/cli/find.py
+++ b/lib/python/qmk/cli/find.py
@@ -19,13 +19,9 @@ from qmk.search import search_keymap_targets
def find(cli):
"""Search through all keyboards and keymaps for a given search criteria.
"""
+ targets = search_keymap_targets([('all', cli.config.find.keymap)], cli.args.filter)
+ for target in sorted(targets, key=lambda t: (t.keyboard, t.keymap)):
+ print(f'{target}')
- if len(cli.args.filter) == 0 and len(cli.args.print) > 0:
- cli.log.warning('No filters supplied -- keymaps not parsed, unable to print requested values.')
-
- targets = search_keymap_targets([('all', cli.config.find.keymap)], cli.args.filter, cli.args.print)
- for keyboard, keymap, print_vals in targets:
- print(f'{keyboard}:{keymap}')
-
- for key, val in print_vals:
- print(f' {key}={val}')
+ for key in cli.args.print:
+ print(f' {key}={target.dotty.get(key, None)}')
diff --git a/lib/python/qmk/cli/flash.py b/lib/python/qmk/cli/flash.py
index 8724f26889..5df31e4781 100644
--- a/lib/python/qmk/cli/flash.py
+++ b/lib/python/qmk/cli/flash.py
@@ -4,25 +4,17 @@ You can compile a keymap already in the repo or using a QMK Configurator export.
A bootloader must be specified.
"""
from argcomplete.completers import FilesCompleter
+from pathlib import Path
from milc import cli
import qmk.path
from qmk.decorators import automagic_keyboard, automagic_keymap
-from qmk.commands import compile_configurator_json, create_make_command, parse_configurator_json, build_environment
+from qmk.commands import build_environment
from qmk.keyboard import keyboard_completer, keyboard_folder
from qmk.keymap import keymap_completer, locate_keymap
from qmk.flashers import flasher
-
-
-def _is_keymap_target(keyboard, keymap):
- if keymap == 'all':
- return True
-
- if locate_keymap(keyboard, keymap):
- return True
-
- return False
+from qmk.build_targets import KeyboardKeymapBuildTarget, JsonKeymapBuildTarget
def _list_bootloaders():
@@ -89,7 +81,7 @@ def flash(cli):
If bootloader is omitted the make system will use the configured bootloader for that keyboard.
"""
- if cli.args.filename and cli.args.filename.suffix in ['.bin', '.hex', '.uf2']:
+ if cli.args.filename and isinstance(cli.args.filename, Path) and cli.args.filename.suffix in ['.bin', '.hex', '.uf2']:
return _flash_binary(cli.args.filename, cli.args.mcu)
if cli.args.bootloaders:
@@ -98,34 +90,27 @@ def flash(cli):
# Build the environment vars
envs = build_environment(cli.args.env)
- # Determine the compile command
- commands = []
+ # Handler for the build target
+ target = None
if cli.args.filename:
- # If a configurator JSON was provided generate a keymap and compile it
- user_keymap = parse_configurator_json(cli.args.filename)
- commands = [compile_configurator_json(user_keymap, cli.args.bootloader, parallel=cli.config.flash.parallel, clean=cli.args.clean, **envs)]
+ # if we were given a filename, assume we have a json build target
+ target = JsonKeymapBuildTarget(cli.args.filename)
elif cli.config.flash.keyboard and cli.config.flash.keymap:
- # Generate the make command for a specific keyboard/keymap.
- if not _is_keymap_target(cli.config.flash.keyboard, cli.config.flash.keymap):
+ # if we got a keyboard and keymap, attempt to find it
+ if not locate_keymap(cli.config.flash.keyboard, cli.config.flash.keymap):
cli.log.error('Invalid keymap argument.')
cli.print_help()
return False
- if cli.args.clean:
- commands.append(create_make_command(cli.config.flash.keyboard, cli.config.flash.keymap, 'clean', **envs))
- commands.append(create_make_command(cli.config.flash.keyboard, cli.config.flash.keymap, cli.args.bootloader, parallel=cli.config.flash.parallel, **envs))
+ # If we got here, then we have a valid keyboard and keymap for a build target
+ target = KeyboardKeymapBuildTarget(cli.config.flash.keyboard, cli.config.flash.keymap)
- if not commands:
+ if not target:
cli.log.error('You must supply a configurator export, both `--keyboard` and `--keymap`, or be in a directory for a keyboard or keymap.')
cli.print_help()
return False
- cli.log.info('Compiling keymap with {fg_cyan}%s', ' '.join(commands[-1]))
- if not cli.args.dry_run:
- cli.echo('\n')
- for command in commands:
- ret = cli.run(command, capture_output=False)
- if ret.returncode:
- return ret.returncode
+ target.configure(parallel=cli.config.flash.parallel, clean=cli.args.clean)
+ target.compile(cli.args.bootloader, dry_run=cli.args.dry_run, **envs)
diff --git a/lib/python/qmk/cli/format/json.py b/lib/python/qmk/cli/format/json.py
index 3299a0d807..283513254c 100755
--- a/lib/python/qmk/cli/format/json.py
+++ b/lib/python/qmk/cli/format/json.py
@@ -9,48 +9,74 @@ from milc import cli
from qmk.info import info_json
from qmk.json_schema import json_load, validate
-from qmk.json_encoders import InfoJSONEncoder, KeymapJSONEncoder
+from qmk.json_encoders import InfoJSONEncoder, KeymapJSONEncoder, UserspaceJSONEncoder
from qmk.path import normpath
-@cli.argument('json_file', arg_only=True, type=normpath, help='JSON file to format')
-@cli.argument('-f', '--format', choices=['auto', 'keyboard', 'keymap'], default='auto', arg_only=True, help='JSON formatter to use (Default: autodetect)')
-@cli.argument('-i', '--inplace', action='store_true', arg_only=True, help='If set, will operate in-place on the input file')
-@cli.argument('-p', '--print', action='store_true', arg_only=True, help='If set, will print the formatted json to stdout ')
-@cli.subcommand('Generate an info.json file for a keyboard.', hidden=False if cli.config.user.developer else True)
-def format_json(cli):
- """Format a json file.
+def _detect_json_format(file, json_data):
+ """Detect the format of a json file.
"""
- json_file = json_load(cli.args.json_file)
-
- if cli.args.format == 'auto':
+ json_encoder = None
+ try:
+ validate(json_data, 'qmk.user_repo.v1')
+ json_encoder = UserspaceJSONEncoder
+ except ValidationError:
+ pass
+
+ if json_encoder is None:
try:
- validate(json_file, 'qmk.keyboard.v1')
+ validate(json_data, 'qmk.keyboard.v1')
json_encoder = InfoJSONEncoder
-
except ValidationError as e:
- cli.log.warning('File %s did not validate as a keyboard:\n\t%s', cli.args.json_file, e)
- cli.log.info('Treating %s as a keymap file.', cli.args.json_file)
+ cli.log.warning('File %s did not validate as a keyboard info.json or userspace qmk.json:\n\t%s', file, e)
+ cli.log.info('Treating %s as a keymap file.', file)
json_encoder = KeymapJSONEncoder
+
+ return json_encoder
+
+
+def _get_json_encoder(file, json_data):
+ """Get the json encoder for a file.
+ """
+ json_encoder = None
+ if cli.args.format == 'auto':
+ json_encoder = _detect_json_format(file, json_data)
elif cli.args.format == 'keyboard':
json_encoder = InfoJSONEncoder
elif cli.args.format == 'keymap':
json_encoder = KeymapJSONEncoder
+ elif cli.args.format == 'userspace':
+ json_encoder = UserspaceJSONEncoder
else:
# This should be impossible
cli.log.error('Unknown format: %s', cli.args.format)
+ return json_encoder
+
+
+@cli.argument('json_file', arg_only=True, type=normpath, help='JSON file to format')
+@cli.argument('-f', '--format', choices=['auto', 'keyboard', 'keymap', 'userspace'], default='auto', arg_only=True, help='JSON formatter to use (Default: autodetect)')
+@cli.argument('-i', '--inplace', action='store_true', arg_only=True, help='If set, will operate in-place on the input file')
+@cli.argument('-p', '--print', action='store_true', arg_only=True, help='If set, will print the formatted json to stdout ')
+@cli.subcommand('Generate an info.json file for a keyboard.', hidden=False if cli.config.user.developer else True)
+def format_json(cli):
+ """Format a json file.
+ """
+ json_data = json_load(cli.args.json_file)
+
+ json_encoder = _get_json_encoder(cli.args.json_file, json_data)
+ if json_encoder is None:
return False
- if json_encoder == KeymapJSONEncoder and 'layout' in json_file:
+ if json_encoder == KeymapJSONEncoder and 'layout' in json_data:
# Attempt to format the keycodes.
- layout = json_file['layout']
- info_data = info_json(json_file['keyboard'])
+ layout = json_data['layout']
+ info_data = info_json(json_data['keyboard'])
if layout in info_data.get('layout_aliases', {}):
- layout = json_file['layout'] = info_data['layout_aliases'][layout]
+ layout = json_data['layout'] = info_data['layout_aliases'][layout]
if layout in info_data.get('layouts'):
- for layer_num, layer in enumerate(json_file['layers']):
+ for layer_num, layer in enumerate(json_data['layers']):
current_layer = []
last_row = 0
@@ -61,9 +87,9 @@ def format_json(cli):
current_layer.append(keymap_key)
- json_file['layers'][layer_num] = current_layer
+ json_data['layers'][layer_num] = current_layer
- output = json.dumps(json_file, cls=json_encoder, sort_keys=True)
+ output = json.dumps(json_data, cls=json_encoder, sort_keys=True)
if cli.args.inplace:
with open(cli.args.json_file, 'w+', encoding='utf-8') as outfile:
diff --git a/lib/python/qmk/cli/generate/api.py b/lib/python/qmk/cli/generate/api.py
index 61a2f9f732..1948b483a1 100755
--- a/lib/python/qmk/cli/generate/api.py
+++ b/lib/python/qmk/cli/generate/api.py
@@ -10,7 +10,7 @@ from qmk.datetime import current_datetime
from qmk.info import info_json
from qmk.json_schema import json_load
from qmk.keymap import list_keymaps
-from qmk.keyboard import find_readme, list_keyboards
+from qmk.keyboard import find_readme, list_keyboards, keyboard_alias_definitions
from qmk.keycodes import load_spec, list_versions, list_languages
DATA_PATH = Path('data')
@@ -166,7 +166,7 @@ def generate_api(cli):
# Generate data for the global files
keyboard_list = sorted(kb_all)
- keyboard_aliases = json_load(Path('data/mappings/keyboard_aliases.hjson'))
+ keyboard_aliases = keyboard_alias_definitions()
keyboard_metadata = {
'last_updated': current_datetime(),
'keyboards': keyboard_list,
diff --git a/lib/python/qmk/cli/generate/compilation_database.py b/lib/python/qmk/cli/generate/compilation_database.py
index 9e5c266516..5100d2b6d2 100755
--- a/lib/python/qmk/cli/generate/compilation_database.py
+++ b/lib/python/qmk/cli/generate/compilation_database.py
@@ -12,7 +12,7 @@ from typing import Dict, Iterator, List, Union
from milc import cli, MILC
-from qmk.commands import create_make_command
+from qmk.commands import find_make
from qmk.constants import QMK_FIRMWARE
from qmk.decorators import automagic_keyboard, automagic_keymap
from qmk.keyboard import keyboard_completer, keyboard_folder
@@ -76,9 +76,12 @@ def parse_make_n(f: Iterator[str]) -> List[Dict[str, str]]:
return records
-def write_compilation_database(keyboard: str, keymap: str, output_path: Path) -> bool:
+def write_compilation_database(keyboard: str = None, keymap: str = None, output_path: Path = QMK_FIRMWARE / 'compile_commands.json', skip_clean: bool = False, command: List[str] = None, **env_vars) -> bool:
# Generate the make command for a specific keyboard/keymap.
- command = create_make_command(keyboard, keymap, dry_run=True)
+ if not command:
+ from qmk.build_targets import KeyboardKeymapBuildTarget # Lazy load due to circular references
+ target = KeyboardKeymapBuildTarget(keyboard, keymap)
+ command = target.compile_command(dry_run=True, **env_vars)
if not command:
cli.log.error('You must supply both `--keyboard` and `--keymap`, or be in a directory for a keyboard or keymap.')
@@ -90,9 +93,10 @@ def write_compilation_database(keyboard: str, keymap: str, output_path: Path) ->
env.pop("MAKEFLAGS", None)
# re-use same executable as the main make invocation (might be gmake)
- clean_command = [command[0], 'clean']
- cli.log.info('Making clean with {fg_cyan}%s', ' '.join(clean_command))
- cli.run(clean_command, capture_output=False, check=True, env=env)
+ if not skip_clean:
+ clean_command = [find_make(), "clean"]
+ cli.log.info('Making clean with {fg_cyan}%s', ' '.join(clean_command))
+ cli.run(clean_command, capture_output=False, check=True, env=env)
cli.log.info('Gathering build instructions from {fg_cyan}%s', ' '.join(command))
diff --git a/lib/python/qmk/cli/generate/config_h.py b/lib/python/qmk/cli/generate/config_h.py
index 64d4db6ffe..00fb1d9585 100755
--- a/lib/python/qmk/cli/generate/config_h.py
+++ b/lib/python/qmk/cli/generate/config_h.py
@@ -15,7 +15,12 @@ from qmk.constants import GPL2_HEADER_C_LIKE, GENERATED_HEADER_C_LIKE
def generate_define(define, value=None):
+ is_keymap = cli.args.filename
value = f' {value}' if value is not None else ''
+ if is_keymap:
+ return f"""
+#undef {define}
+#define {define}{value}"""
return f"""
#ifndef {define}
# define {define}{value}
@@ -67,6 +72,19 @@ def generate_matrix_size(kb_info_json, config_h_lines):
config_h_lines.append(generate_define('MATRIX_ROWS', kb_info_json['matrix_size']['rows']))
+def generate_matrix_masked(kb_info_json, config_h_lines):
+ """"Enable matrix mask if required"""
+ mask_required = False
+
+ if 'matrix_grid' in kb_info_json.get('dip_switch', {}):
+ mask_required = True
+ if 'matrix_grid' in kb_info_json.get('split', {}).get('handedness', {}):
+ mask_required = True
+
+ if mask_required:
+ config_h_lines.append(generate_define('MATRIX_MASKED'))
+
+
def generate_config_items(kb_info_json, config_h_lines):
"""Iterate through the info_config map to generate basic config values.
"""
@@ -75,9 +93,9 @@ def generate_config_items(kb_info_json, config_h_lines):
for config_key, info_dict in info_config_map.items():
info_key = info_dict['info_key']
key_type = info_dict.get('value_type', 'raw')
- to_config = info_dict.get('to_config', True)
+ to_c = info_dict.get('to_c', True)
- if not to_config:
+ if not to_c:
continue
try:
@@ -130,23 +148,11 @@ def generate_encoder_config(encoder_json, config_h_lines, postfix=''):
def generate_split_config(kb_info_json, config_h_lines):
"""Generate the config.h lines for split boards."""
- if 'primary' in kb_info_json['split']:
- if kb_info_json['split']['primary'] in ('left', 'right'):
- config_h_lines.append('')
- config_h_lines.append('#ifndef MASTER_LEFT')
- config_h_lines.append('# ifndef MASTER_RIGHT')
- if kb_info_json['split']['primary'] == 'left':
- config_h_lines.append('# define MASTER_LEFT')
- elif kb_info_json['split']['primary'] == 'right':
- config_h_lines.append('# define MASTER_RIGHT')
- config_h_lines.append('# endif // MASTER_RIGHT')
- config_h_lines.append('#endif // MASTER_LEFT')
- elif kb_info_json['split']['primary'] == 'pin':
- config_h_lines.append(generate_define('SPLIT_HAND_PIN'))
- elif kb_info_json['split']['primary'] == 'matrix_grid':
- config_h_lines.append(generate_define('SPLIT_HAND_MATRIX_GRID', f'{{ {",".join(kb_info_json["split"]["matrix_grid"])} }}'))
- elif kb_info_json['split']['primary'] == 'eeprom':
- config_h_lines.append(generate_define('EE_HANDS'))
+ if 'handedness' in kb_info_json['split']:
+ # TODO: change SPLIT_HAND_MATRIX_GRID to require brackets
+ handedness = kb_info_json['split']['handedness']
+ if 'matrix_grid' in handedness:
+ config_h_lines.append(generate_define('SPLIT_HAND_MATRIX_GRID', ', '.join(handedness['matrix_grid'])))
if 'protocol' in kb_info_json['split'].get('transport', {}):
if kb_info_json['split']['transport']['protocol'] == 'i2c':
@@ -159,10 +165,13 @@ def generate_split_config(kb_info_json, config_h_lines):
generate_encoder_config(kb_info_json['split']['encoder']['right'], config_h_lines, '_RIGHT')
-def generate_led_animations_config(led_feature_json, config_h_lines, prefix):
+def generate_led_animations_config(feature, led_feature_json, config_h_lines, enable_prefix, animation_prefix):
+ if 'animation' in led_feature_json.get('default', {}):
+ config_h_lines.append(generate_define(f'{feature.upper()}_DEFAULT_MODE', f'{animation_prefix}{led_feature_json["default"]["animation"].upper()}'))
+
for animation in led_feature_json.get('animations', {}):
if led_feature_json['animations'][animation]:
- config_h_lines.append(generate_define(f'{prefix}{animation.upper()}'))
+ config_h_lines.append(generate_define(f'{enable_prefix}{animation.upper()}'))
@cli.argument('filename', nargs='?', arg_only=True, type=FileType('r'), completer=FilesCompleter('.json'), help='A configurator export JSON to be compiled and flashed or a pre-compiled binary firmware file (bin/hex) to be flashed.')
@@ -191,6 +200,8 @@ def generate_config_h(cli):
generate_matrix_size(kb_info_json, config_h_lines)
+ generate_matrix_masked(kb_info_json, config_h_lines)
+
if 'matrix_pins' in kb_info_json:
config_h_lines.append(matrix_pins(kb_info_json['matrix_pins']))
@@ -201,13 +212,13 @@ def generate_config_h(cli):
generate_split_config(kb_info_json, config_h_lines)
if 'led_matrix' in kb_info_json:
- generate_led_animations_config(kb_info_json['led_matrix'], config_h_lines, 'ENABLE_LED_MATRIX_')
+ generate_led_animations_config('led_matrix', kb_info_json['led_matrix'], config_h_lines, 'ENABLE_LED_MATRIX_', 'LED_MATRIX_')
if 'rgb_matrix' in kb_info_json:
- generate_led_animations_config(kb_info_json['rgb_matrix'], config_h_lines, 'ENABLE_RGB_MATRIX_')
+ generate_led_animations_config('rgb_matrix', kb_info_json['rgb_matrix'], config_h_lines, 'ENABLE_RGB_MATRIX_', 'RGB_MATRIX_')
if 'rgblight' in kb_info_json:
- generate_led_animations_config(kb_info_json['rgblight'], config_h_lines, 'RGBLIGHT_EFFECT_')
+ generate_led_animations_config('rgblight', kb_info_json['rgblight'], config_h_lines, 'RGBLIGHT_EFFECT_', 'RGBLIGHT_MODE_')
# Show the results
dump_lines(cli.args.output, config_h_lines, cli.args.quiet)
diff --git a/lib/python/qmk/cli/generate/keyboard_c.py b/lib/python/qmk/cli/generate/keyboard_c.py
index 9004b41abb..f8a2372cf3 100755
--- a/lib/python/qmk/cli/generate/keyboard_c.py
+++ b/lib/python/qmk/cli/generate/keyboard_c.py
@@ -57,6 +57,32 @@ def _gen_led_config(info_data):
return lines
+def _gen_matrix_mask(info_data):
+ """Convert info.json content to matrix_mask
+ """
+ cols = info_data['matrix_size']['cols']
+ rows = info_data['matrix_size']['rows']
+
+ # Default mask to everything disabled
+ mask = [['0'] * cols for i in range(rows)]
+
+ # Mirror layout macros squashed on top of each other
+ for layout_data in info_data['layouts'].values():
+ for key_data in layout_data['layout']:
+ row, col = key_data['matrix']
+ mask[row][col] = '1'
+
+ lines = []
+ lines.append('#ifdef MATRIX_MASKED')
+ lines.append('__attribute__((weak)) const matrix_row_t matrix_mask[] = {')
+ for i in range(rows):
+ lines.append(f' 0b{"".join(reversed(mask[i]))},')
+ lines.append('};')
+ lines.append('#endif')
+
+ return lines
+
+
@cli.argument('-o', '--output', arg_only=True, type=normpath, help='File to write to')
@cli.argument('-q', '--quiet', arg_only=True, action='store_true', help="Quiet mode, only output error messages")
@cli.argument('-kb', '--keyboard', arg_only=True, type=keyboard_folder, completer=keyboard_completer, required=True, help='Keyboard to generate keyboard.c for.')
@@ -70,6 +96,7 @@ def generate_keyboard_c(cli):
keyboard_h_lines = [GPL2_HEADER_C_LIKE, GENERATED_HEADER_C_LIKE, '#include QMK_KEYBOARD_H', '']
keyboard_h_lines.extend(_gen_led_config(kb_info_json))
+ keyboard_h_lines.extend(_gen_matrix_mask(kb_info_json))
# Show the results
dump_lines(cli.args.output, keyboard_h_lines, cli.args.quiet)
diff --git a/lib/python/qmk/cli/generate/keycodes.py b/lib/python/qmk/cli/generate/keycodes.py
index ed8b6827bd..719fced5d5 100644
--- a/lib/python/qmk/cli/generate/keycodes.py
+++ b/lib/python/qmk/cli/generate/keycodes.py
@@ -94,6 +94,14 @@ def _generate_helpers(lines, keycodes):
hi = keycodes["keycodes"][f'0x{codes[1]:04X}']['key']
lines.append(f'#define IS_{ _translate_group(group).upper() }_KEYCODE(code) ((code) >= {lo} && (code) <= {hi})')
+ lines.append('')
+ lines.append('// Switch statement Helpers')
+ for group, codes in temp.items():
+ lo = keycodes["keycodes"][f'0x{codes[0]:04X}']['key']
+ hi = keycodes["keycodes"][f'0x{codes[1]:04X}']['key']
+ name = f'{ _translate_group(group).upper() }_KEYCODE_RANGE'
+ lines.append(f'#define { name.ljust(35) } {lo} ... {hi}')
+
def _generate_aliases(lines, keycodes):
# Work around ChibiOS ch.h include guard
diff --git a/lib/python/qmk/cli/generate/rules_mk.py b/lib/python/qmk/cli/generate/rules_mk.py
index fc272da6c6..5291556109 100755
--- a/lib/python/qmk/cli/generate/rules_mk.py
+++ b/lib/python/qmk/cli/generate/rules_mk.py
@@ -14,6 +14,12 @@ from qmk.path import normpath, FileType
from qmk.constants import GPL2_HEADER_SH_LIKE, GENERATED_HEADER_SH_LIKE
+def generate_rule(rules_key, rules_value):
+ is_keymap = cli.args.filename
+ rule_assignment_operator = '=' if is_keymap else '?='
+ return f'{rules_key} {rule_assignment_operator} {rules_value}'
+
+
def process_mapping_rule(kb_info_json, rules_key, info_dict):
"""Return the rules.mk line(s) for a mapping rule.
"""
@@ -29,15 +35,15 @@ def process_mapping_rule(kb_info_json, rules_key, info_dict):
return None
if key_type in ['array', 'list']:
- return f'{rules_key} ?= {" ".join(rules_value)}'
+ return generate_rule(rules_key, " ".join(rules_value))
elif key_type == 'bool':
- return f'{rules_key} ?= {"yes" if rules_value else "no"}'
+ return generate_rule(rules_key, "yes" if rules_value else "no")
elif key_type == 'mapping':
- return '\n'.join([f'{key} ?= {value}' for key, value in rules_value.items()])
+ return '\n'.join([generate_rule(key, value) for key, value in rules_value.items()])
elif key_type == 'str':
- return f'{rules_key} ?= "{rules_value}"'
+ return generate_rule(rules_key, f'"{rules_value}"')
- return f'{rules_key} ?= {rules_value}'
+ return generate_rule(rules_key, rules_value)
@cli.argument('filename', nargs='?', arg_only=True, type=FileType('r'), completer=FilesCompleter('.json'), help='A configurator export JSON to be compiled and flashed or a pre-compiled binary firmware file (bin/hex) to be flashed.')
@@ -77,21 +83,21 @@ def generate_rules_mk(cli):
for feature, enabled in kb_info_json['features'].items():
feature = feature.upper()
enabled = 'yes' if enabled else 'no'
- rules_mk_lines.append(f'{feature}_ENABLE ?= {enabled}')
+ rules_mk_lines.append(generate_rule(f'{feature}_ENABLE', enabled))
# Set SPLIT_TRANSPORT, if needed
if kb_info_json.get('split', {}).get('transport', {}).get('protocol') == 'custom':
- rules_mk_lines.append('SPLIT_TRANSPORT ?= custom')
+ rules_mk_lines.append(generate_rule('SPLIT_TRANSPORT', 'custom'))
# Set CUSTOM_MATRIX, if needed
if kb_info_json.get('matrix_pins', {}).get('custom'):
if kb_info_json.get('matrix_pins', {}).get('custom_lite'):
- rules_mk_lines.append('CUSTOM_MATRIX ?= lite')
+ rules_mk_lines.append(generate_rule('CUSTOM_MATRIX', 'lite'))
else:
- rules_mk_lines.append('CUSTOM_MATRIX ?= yes')
+ rules_mk_lines.append(generate_rule('CUSTOM_MATRIX', 'yes'))
if converter:
- rules_mk_lines.append(f'CONVERT_TO ?= {converter}')
+ rules_mk_lines.append(generate_rule('CONVERT_TO', converter))
# Show the results
dump_lines(cli.args.output, rules_mk_lines)
diff --git a/lib/python/qmk/cli/mass_compile.py b/lib/python/qmk/cli/mass_compile.py
index 06e6e411a7..b025f85701 100755
--- a/lib/python/qmk/cli/mass_compile.py
+++ b/lib/python/qmk/cli/mass_compile.py
@@ -3,26 +3,28 @@
This will compile everything in parallel, for testing purposes.
"""
import os
+from typing import List
from pathlib import Path
from subprocess import DEVNULL
from milc import cli
from qmk.constants import QMK_FIRMWARE
-from qmk.commands import _find_make, get_make_parallel_args
+from qmk.commands import find_make, get_make_parallel_args, build_environment
from qmk.search import search_keymap_targets, search_make_targets
+from qmk.build_targets import BuildTarget, JsonKeymapBuildTarget
-def mass_compile_targets(targets, clean, dry_run, no_temp, parallel, env):
+def mass_compile_targets(targets: List[BuildTarget], clean: bool, dry_run: bool, no_temp: bool, parallel: int, **env):
if len(targets) == 0:
return
- make_cmd = _find_make()
+ make_cmd = find_make()
builddir = Path(QMK_FIRMWARE) / '.build'
makefile = builddir / 'parallel_kb_builds.mk'
if dry_run:
cli.log.info('Compilation targets:')
- for target in sorted(targets):
+ for target in sorted(targets, key=lambda t: (t.keyboard, t.keymap)):
cli.log.info(f"{{fg_cyan}}qmk compile -kb {target[0]} -km {target[1]}{{fg_reset}}")
else:
if clean:
@@ -30,9 +32,13 @@ def mass_compile_targets(targets, clean, dry_run, no_temp, parallel, env):
builddir.mkdir(parents=True, exist_ok=True)
with open(makefile, "w") as f:
- for target in sorted(targets):
- keyboard_name = target[0]
- keymap_name = target[1]
+ for target in sorted(targets, key=lambda t: (t.keyboard, t.keymap)):
+ keyboard_name = target.keyboard
+ keymap_name = target.keymap
+ target.configure(parallel=1) # We ignore parallelism on a per-build basis as we defer to the parent make invocation
+ target.prepare_build(**env) # If we've got json targets, allow them to write out any extra info to .build before we kick off `make`
+ command = target.compile_command(**env)
+ command[0] = '+@$(MAKE)' # Override the make so that we can use jobserver to handle parallelism
keyboard_safe = keyboard_name.replace('/', '_')
build_log = f"{QMK_FIRMWARE}/.build/build.log.{os.getpid()}.{keyboard_safe}.{keymap_name}"
failed_log = f"{QMK_FIRMWARE}/.build/failed.log.{os.getpid()}.{keyboard_safe}.{keymap_name}"
@@ -43,7 +49,7 @@ all: {keyboard_safe}_{keymap_name}_binary
{keyboard_safe}_{keymap_name}_binary:
@rm -f "{build_log}" || true
@echo "Compiling QMK Firmware for target: '{keyboard_name}:{keymap_name}'..." >>"{build_log}"
- +@$(MAKE) -C "{QMK_FIRMWARE}" -f "{QMK_FIRMWARE}/builddefs/build_keyboard.mk" KEYBOARD="{keyboard_name}" KEYMAP="{keymap_name}" COLOR=true SILENT=false {' '.join(env)} \\
+ {' '.join(command)} \\
>>"{build_log}" 2>&1 \\
|| cp "{build_log}" "{failed_log}"
@{{ grep '\[ERRORS\]' "{build_log}" >/dev/null 2>&1 && printf "Build %-64s \e[1;31m[ERRORS]\e[0m\\n" "{keyboard_name}:{keymap_name}" ; }} \\
@@ -66,7 +72,7 @@ all: {keyboard_safe}_{keymap_name}_binary
# yapf: enable
f.write('\n')
- cli.run([make_cmd, *get_make_parallel_args(parallel), '-f', makefile.as_posix(), 'all'], capture_output=False, stdin=DEVNULL)
+ cli.run([find_make(), *get_make_parallel_args(parallel), '-f', makefile.as_posix(), 'all'], capture_output=False, stdin=DEVNULL)
# Check for failures
failures = [f for f in builddir.glob(f'failed.log.{os.getpid()}.*')]
@@ -95,8 +101,11 @@ def mass_compile(cli):
"""Compile QMK Firmware against all keyboards.
"""
if len(cli.args.builds) > 0:
- targets = search_make_targets(cli.args.builds, cli.args.filter)
+ json_like_targets = list([Path(p) for p in filter(lambda e: Path(e).exists() and Path(e).suffix == '.json', cli.args.builds)])
+ make_like_targets = list(filter(lambda e: Path(e) not in json_like_targets, cli.args.builds))
+ targets = search_make_targets(make_like_targets)
+ targets.extend([JsonKeymapBuildTarget(e) for e in json_like_targets])
else:
targets = search_keymap_targets([('all', cli.config.mass_compile.keymap)], cli.args.filter)
- return mass_compile_targets(targets, cli.args.clean, cli.args.dry_run, cli.config.mass_compile.no_temp, cli.config.mass_compile.parallel, cli.args.env)
+ return mass_compile_targets(targets, cli.args.clean, cli.args.dry_run, cli.config.mass_compile.no_temp, cli.config.mass_compile.parallel, **build_environment(cli.args.env))
diff --git a/lib/python/qmk/cli/new/keymap.py b/lib/python/qmk/cli/new/keymap.py
index 9b0ac221a4..d4339bc9ef 100755
--- a/lib/python/qmk/cli/new/keymap.py
+++ b/lib/python/qmk/cli/new/keymap.py
@@ -5,10 +5,12 @@ import shutil
from milc import cli
from milc.questions import question
+from qmk.constants import HAS_QMK_USERSPACE, QMK_USERSPACE
from qmk.path import is_keyboard, keymaps, keymap
from qmk.git import git_get_username
from qmk.decorators import automagic_keyboard, automagic_keymap
from qmk.keyboard import keyboard_completer, keyboard_folder
+from qmk.userspace import UserspaceDefs
def prompt_keyboard():
@@ -68,3 +70,9 @@ def new_keymap(cli):
# end message to user
cli.log.info(f'{{fg_green}}Created a new keymap called {{fg_cyan}}{user_name}{{fg_green}} in: {{fg_cyan}}{keymap_path_new}.{{fg_reset}}')
cli.log.info(f"Compile a firmware with your new keymap by typing: {{fg_yellow}}qmk compile -kb {kb_name} -km {user_name}{{fg_reset}}.")
+
+ # Add to userspace compile if we have userspace available
+ if HAS_QMK_USERSPACE:
+ userspace = UserspaceDefs(QMK_USERSPACE / 'qmk.json')
+ userspace.add_target(keyboard=kb_name, keymap=user_name, do_print=False)
+ return userspace.save()
diff --git a/lib/python/qmk/cli/userspace/__init__.py b/lib/python/qmk/cli/userspace/__init__.py
new file mode 100644
index 0000000000..5757d3a4c9
--- /dev/null
+++ b/lib/python/qmk/cli/userspace/__init__.py
@@ -0,0 +1,5 @@
+from . import doctor
+from . import add
+from . import remove
+from . import list
+from . import compile
diff --git a/lib/python/qmk/cli/userspace/add.py b/lib/python/qmk/cli/userspace/add.py
new file mode 100644
index 0000000000..8993d54dba
--- /dev/null
+++ b/lib/python/qmk/cli/userspace/add.py
@@ -0,0 +1,51 @@
+# Copyright 2023 Nick Brassel (@tzarc)
+# SPDX-License-Identifier: GPL-2.0-or-later
+from pathlib import Path
+from milc import cli
+
+from qmk.constants import QMK_USERSPACE, HAS_QMK_USERSPACE
+from qmk.keyboard import keyboard_completer, keyboard_folder_or_all
+from qmk.keymap import keymap_completer, is_keymap_target
+from qmk.userspace import UserspaceDefs
+
+
+@cli.argument('builds', nargs='*', arg_only=True, help="List of builds in form <keyboard>:<keymap>, or path to a keymap JSON file.")
+@cli.argument('-kb', '--keyboard', type=keyboard_folder_or_all, completer=keyboard_completer, help='The keyboard to build a firmware for. Ignored when a configurator export is supplied.')
+@cli.argument('-km', '--keymap', completer=keymap_completer, help='The keymap to build a firmware for. Ignored when a configurator export is supplied.')
+@cli.subcommand('Adds a build target to userspace `qmk.json`.')
+def userspace_add(cli):
+ if not HAS_QMK_USERSPACE:
+ cli.log.error('Could not determine QMK userspace location. Please run `qmk doctor` or `qmk userspace-doctor` to diagnose.')
+ return False
+
+ userspace = UserspaceDefs(QMK_USERSPACE / 'qmk.json')
+
+ if len(cli.args.builds) > 0:
+ json_like_targets = list([Path(p) for p in filter(lambda e: Path(e).exists() and Path(e).suffix == '.json', cli.args.builds)])
+ make_like_targets = list(filter(lambda e: Path(e) not in json_like_targets, cli.args.builds))
+
+ for e in json_like_targets:
+ userspace.add_target(json_path=e)
+
+ for e in make_like_targets:
+ s = e.split(':')
+ userspace.add_target(keyboard=s[0], keymap=s[1])
+
+ else:
+ failed = False
+ try:
+ if not is_keymap_target(cli.args.keyboard, cli.args.keymap):
+ failed = True
+ except KeyError:
+ failed = True
+
+ if failed:
+ from qmk.cli.new.keymap import new_keymap
+ cli.config.new_keymap.keyboard = cli.args.keyboard
+ cli.config.new_keymap.keymap = cli.args.keymap
+ if new_keymap(cli) is not False:
+ userspace.add_target(keyboard=cli.args.keyboard, keymap=cli.args.keymap)
+ else:
+ userspace.add_target(keyboard=cli.args.keyboard, keymap=cli.args.keymap)
+
+ return userspace.save()
diff --git a/lib/python/qmk/cli/userspace/compile.py b/lib/python/qmk/cli/userspace/compile.py
new file mode 100644
index 0000000000..0a42dd5bf5
--- /dev/null
+++ b/lib/python/qmk/cli/userspace/compile.py
@@ -0,0 +1,38 @@
+# Copyright 2023 Nick Brassel (@tzarc)
+# SPDX-License-Identifier: GPL-2.0-or-later
+from pathlib import Path
+from milc import cli
+
+from qmk.constants import QMK_USERSPACE, HAS_QMK_USERSPACE
+from qmk.commands import build_environment
+from qmk.userspace import UserspaceDefs
+from qmk.build_targets import JsonKeymapBuildTarget
+from qmk.search import search_keymap_targets
+from qmk.cli.mass_compile import mass_compile_targets
+
+
+@cli.argument('-t', '--no-temp', arg_only=True, action='store_true', help="Remove temporary files during build.")
+@cli.argument('-j', '--parallel', type=int, default=1, help="Set the number of parallel make jobs; 0 means unlimited.")
+@cli.argument('-c', '--clean', arg_only=True, action='store_true', help="Remove object files before compiling.")
+@cli.argument('-n', '--dry-run', arg_only=True, action='store_true', help="Don't actually build, just show the commands to be run.")
+@cli.argument('-e', '--env', arg_only=True, action='append', default=[], help="Set a variable to be passed to make. May be passed multiple times.")
+@cli.subcommand('Compiles the build targets specified in userspace `qmk.json`.')
+def userspace_compile(cli):
+ if not HAS_QMK_USERSPACE:
+ cli.log.error('Could not determine QMK userspace location. Please run `qmk doctor` or `qmk userspace-doctor` to diagnose.')
+ return False
+
+ userspace = UserspaceDefs(QMK_USERSPACE / 'qmk.json')
+
+ build_targets = []
+ keyboard_keymap_targets = []
+ for e in userspace.build_targets:
+ if isinstance(e, Path):
+ build_targets.append(JsonKeymapBuildTarget(e))
+ elif isinstance(e, dict):
+ keyboard_keymap_targets.append((e['keyboard'], e['keymap']))
+
+ if len(keyboard_keymap_targets) > 0:
+ build_targets.extend(search_keymap_targets(keyboard_keymap_targets))
+
+ mass_compile_targets(list(set(build_targets)), cli.args.clean, cli.args.dry_run, cli.config.userspace_compile.no_temp, cli.config.userspace_compile.parallel, **build_environment(cli.args.env))
diff --git a/lib/python/qmk/cli/userspace/doctor.py b/lib/python/qmk/cli/userspace/doctor.py
new file mode 100644
index 0000000000..2b7e29aa7e
--- /dev/null
+++ b/lib/python/qmk/cli/userspace/doctor.py
@@ -0,0 +1,11 @@
+# Copyright 2023 Nick Brassel (@tzarc)
+# SPDX-License-Identifier: GPL-2.0-or-later
+from milc import cli
+
+from qmk.constants import QMK_FIRMWARE
+from qmk.cli.doctor.main import userspace_tests
+
+
+@cli.subcommand('Checks userspace configuration.')
+def userspace_doctor(cli):
+ userspace_tests(QMK_FIRMWARE)
diff --git a/lib/python/qmk/cli/userspace/list.py b/lib/python/qmk/cli/userspace/list.py
new file mode 100644
index 0000000000..a63f669dd7
--- /dev/null
+++ b/lib/python/qmk/cli/userspace/list.py
@@ -0,0 +1,51 @@
+# Copyright 2023 Nick Brassel (@tzarc)
+# SPDX-License-Identifier: GPL-2.0-or-later
+from pathlib import Path
+from dotty_dict import Dotty
+from milc import cli
+
+from qmk.constants import QMK_USERSPACE, HAS_QMK_USERSPACE
+from qmk.userspace import UserspaceDefs
+from qmk.build_targets import BuildTarget
+from qmk.keyboard import is_all_keyboards, keyboard_folder
+from qmk.keymap import is_keymap_target
+from qmk.search import search_keymap_targets
+
+
+@cli.argument('-e', '--expand', arg_only=True, action='store_true', help="Expands any use of `all` for either keyboard or keymap.")
+@cli.subcommand('Lists the build targets specified in userspace `qmk.json`.')
+def userspace_list(cli):
+ if not HAS_QMK_USERSPACE:
+ cli.log.error('Could not determine QMK userspace location. Please run `qmk doctor` or `qmk userspace-doctor` to diagnose.')
+ return False
+
+ userspace = UserspaceDefs(QMK_USERSPACE / 'qmk.json')
+
+ if cli.args.expand:
+ build_targets = []
+ for e in userspace.build_targets:
+ if isinstance(e, Path):
+ build_targets.append(e)
+ elif isinstance(e, dict) or isinstance(e, Dotty):
+ build_targets.extend(search_keymap_targets([(e['keyboard'], e['keymap'])]))
+ else:
+ build_targets = userspace.build_targets
+
+ for e in build_targets:
+ if isinstance(e, Path):
+ # JSON keymap from userspace
+ cli.log.info(f'JSON keymap: {{fg_cyan}}{e}{{fg_reset}}')
+ continue
+ elif isinstance(e, dict) or isinstance(e, Dotty):
+ # keyboard/keymap dict from userspace
+ keyboard = e['keyboard']
+ keymap = e['keymap']
+ elif isinstance(e, BuildTarget):
+ # BuildTarget from search_keymap_targets()
+ keyboard = e.keyboard
+ keymap = e.keymap
+
+ if is_all_keyboards(keyboard) or is_keymap_target(keyboard_folder(keyboard), keymap):
+ cli.log.info(f'Keyboard: {{fg_cyan}}{keyboard}{{fg_reset}}, keymap: {{fg_cyan}}{keymap}{{fg_reset}}')
+ else:
+ cli.log.warn(f'Keyboard: {{fg_cyan}}{keyboard}{{fg_reset}}, keymap: {{fg_cyan}}{keymap}{{fg_reset}} -- not found!')
diff --git a/lib/python/qmk/cli/userspace/remove.py b/lib/python/qmk/cli/userspace/remove.py
new file mode 100644
index 0000000000..c7d180bfd1
--- /dev/null
+++ b/lib/python/qmk/cli/userspace/remove.py
@@ -0,0 +1,37 @@
+# Copyright 2023 Nick Brassel (@tzarc)
+# SPDX-License-Identifier: GPL-2.0-or-later
+from pathlib import Path
+from milc import cli
+
+from qmk.constants import QMK_USERSPACE, HAS_QMK_USERSPACE
+from qmk.keyboard import keyboard_completer, keyboard_folder_or_all
+from qmk.keymap import keymap_completer
+from qmk.userspace import UserspaceDefs
+
+
+@cli.argument('builds', nargs='*', arg_only=True, help="List of builds in form <keyboard>:<keymap>, or path to a keymap JSON file.")
+@cli.argument('-kb', '--keyboard', type=keyboard_folder_or_all, completer=keyboard_completer, help='The keyboard to build a firmware for. Ignored when a configurator export is supplied.')
+@cli.argument('-km', '--keymap', completer=keymap_completer, help='The keymap to build a firmware for. Ignored when a configurator export is supplied.')
+@cli.subcommand('Removes a build target from userspace `qmk.json`.')
+def userspace_remove(cli):
+ if not HAS_QMK_USERSPACE:
+ cli.log.error('Could not determine QMK userspace location. Please run `qmk doctor` or `qmk userspace-doctor` to diagnose.')
+ return False
+
+ userspace = UserspaceDefs(QMK_USERSPACE / 'qmk.json')
+
+ if len(cli.args.builds) > 0:
+ json_like_targets = list([Path(p) for p in filter(lambda e: Path(e).exists() and Path(e).suffix == '.json', cli.args.builds)])
+ make_like_targets = list(filter(lambda e: Path(e) not in json_like_targets, cli.args.builds))
+
+ for e in json_like_targets:
+ userspace.remove_target(json_path=e)
+
+ for e in make_like_targets:
+ s = e.split(':')
+ userspace.remove_target(keyboard=s[0], keymap=s[1])
+
+ else:
+ userspace.remove_target(keyboard=cli.args.keyboard, keymap=cli.args.keymap)
+
+ return userspace.save()
diff --git a/lib/python/qmk/commands.py b/lib/python/qmk/commands.py
index 34696e3793..d95ff5f923 100644
--- a/lib/python/qmk/commands.py
+++ b/lib/python/qmk/commands.py
@@ -2,18 +2,18 @@
"""
import os
import sys
-import json
import shutil
from pathlib import Path
from milc import cli
import jsonschema
-from qmk.constants import INTERMEDIATE_OUTPUT_PREFIX
+from qmk.constants import QMK_USERSPACE, HAS_QMK_USERSPACE
from qmk.json_schema import json_load, validate
+from qmk.keyboard import keyboard_alias_definitions
-def _find_make():
+def find_make():
"""Returns the correct make command for this environment.
"""
make_cmd = os.environ.get('MAKE')
@@ -24,74 +24,6 @@ def _find_make():
return make_cmd
-def create_make_target(target, dry_run=False, parallel=1, **env_vars):
- """Create a make command
-
- Args:
-
- target
- Usually a make rule, such as 'clean' or 'all'.
-
- dry_run
- make -n -- don't actually build
-
- parallel
- The number of make jobs to run in parallel
-
- **env_vars
- Environment variables to be passed to make.
-
- Returns:
-
- A command that can be run to make the specified keyboard and keymap
- """
- env = []
- make_cmd = _find_make()
-
- for key, value in env_vars.items():
- env.append(f'{key}={value}')
-
- if cli.config.general.verbose:
- env.append('VERBOSE=true')
-
- return [make_cmd, *(['-n'] if dry_run else []), *get_make_parallel_args(parallel), *env, target]
-
-
-def create_make_command(keyboard, keymap, target=None, dry_run=False, parallel=1, **env_vars):
- """Create a make compile command
-
- Args:
-
- keyboard
- The path of the keyboard, for example 'plank'
-
- keymap
- The name of the keymap, for example 'algernon'
-
- target
- Usually a bootloader.
-
- dry_run
- make -n -- don't actually build
-
- parallel
- The number of make jobs to run in parallel
-
- **env_vars
- Environment variables to be passed to make.
-
- Returns:
-
- A command that can be run to make the specified keyboard and keymap
- """
- make_args = [keyboard, keymap]
-
- if target:
- make_args.append(target)
-
- return create_make_target(':'.join(make_args), dry_run=dry_run, parallel=parallel, **env_vars)
-
-
def get_make_parallel_args(parallel=1):
"""Returns the arguments for running the specified number of parallel jobs.
"""
@@ -100,7 +32,7 @@ def get_make_parallel_args(parallel=1):
if int(parallel) <= 0:
# 0 or -1 means -j without argument (unlimited jobs)
parallel_args.append('--jobs')
- else:
+ elif int(parallel) > 1:
parallel_args.append('--jobs=' + str(parallel))
if int(parallel) != 1:
@@ -110,96 +42,6 @@ def get_make_parallel_args(parallel=1):
return parallel_args
-def compile_configurator_json(user_keymap, bootloader=None, parallel=1, clean=False, **env_vars):
- """Convert a configurator export JSON file into a C file and then compile it.
-
- Args:
-
- user_keymap
- A deserialized keymap export
-
- bootloader
- A bootloader to flash
-
- parallel
- The number of make jobs to run in parallel
-
- Returns:
-
- A command to run to compile and flash the C file.
- """
- # In case the user passes a keymap.json from a keymap directory directly to the CLI.
- # e.g.: qmk compile - < keyboards/clueboard/california/keymaps/default/keymap.json
- user_keymap["keymap"] = user_keymap.get("keymap", "default_json")
-
- keyboard_filesafe = user_keymap['keyboard'].replace('/', '_')
- target = f'{keyboard_filesafe}_{user_keymap["keymap"]}'
- intermediate_output = Path(f'{INTERMEDIATE_OUTPUT_PREFIX}{keyboard_filesafe}_{user_keymap["keymap"]}')
- keymap_dir = intermediate_output / 'src'
- keymap_json = keymap_dir / 'keymap.json'
-
- if clean:
- if intermediate_output.exists():
- shutil.rmtree(intermediate_output)
-
- # begin with making the deepest folder in the tree
- keymap_dir.mkdir(exist_ok=True, parents=True)
-
- # Compare minified to ensure consistent comparison
- new_content = json.dumps(user_keymap, separators=(',', ':'))
- if keymap_json.exists():
- old_content = json.dumps(json.loads(keymap_json.read_text(encoding='utf-8')), separators=(',', ':'))
- if old_content == new_content:
- new_content = None
-
- # Write the keymap.json file if different
- if new_content:
- keymap_json.write_text(new_content, encoding='utf-8')
-
- # Return a command that can be run to make the keymap and flash if given
- verbose = 'true' if cli.config.general.verbose else 'false'
- color = 'true' if cli.config.general.color else 'false'
- make_command = [_find_make()]
-
- if not cli.config.general.verbose:
- make_command.append('-s')
-
- make_command.extend([
- *get_make_parallel_args(parallel),
- '-r',
- '-R',
- '-f',
- 'builddefs/build_keyboard.mk',
- ])
-
- if bootloader:
- make_command.append(bootloader)
-
- make_command.extend([
- f'KEYBOARD={user_keymap["keyboard"]}',
- f'KEYMAP={user_keymap["keymap"]}',
- f'KEYBOARD_FILESAFE={keyboard_filesafe}',
- f'TARGET={target}',
- f'INTERMEDIATE_OUTPUT={intermediate_output}',
- f'MAIN_KEYMAP_PATH_1={intermediate_output}',
- f'MAIN_KEYMAP_PATH_2={intermediate_output}',
- f'MAIN_KEYMAP_PATH_3={intermediate_output}',
- f'MAIN_KEYMAP_PATH_4={intermediate_output}',
- f'MAIN_KEYMAP_PATH_5={intermediate_output}',
- f'KEYMAP_JSON={keymap_json}',
- f'KEYMAP_PATH={keymap_dir}',
- f'VERBOSE={verbose}',
- f'COLOR={color}',
- 'SILENT=false',
- 'QMK_BIN="qmk"',
- ])
-
- for key, value in env_vars.items():
- make_command.append(f'{key}={value}')
-
- return make_command
-
-
def parse_configurator_json(configurator_file):
"""Open and parse a configurator json export
"""
@@ -213,7 +55,7 @@ def parse_configurator_json(configurator_file):
exit(1)
keyboard = user_keymap['keyboard']
- aliases = json_load(Path('data/mappings/keyboard_aliases.hjson'))
+ aliases = keyboard_alias_definitions()
while keyboard in aliases:
last_keyboard = keyboard
@@ -235,6 +77,10 @@ def build_environment(args):
envs[key] = value
else:
cli.log.warning('Invalid environment variable: %s', env)
+
+ if HAS_QMK_USERSPACE:
+ envs['QMK_USERSPACE'] = Path(QMK_USERSPACE).resolve()
+
return envs
diff --git a/lib/python/qmk/constants.py b/lib/python/qmk/constants.py
index 1967441fc8..90e4452f2b 100644
--- a/lib/python/qmk/constants.py
+++ b/lib/python/qmk/constants.py
@@ -4,9 +4,17 @@ from os import environ
from datetime import date
from pathlib import Path
+from qmk.userspace import detect_qmk_userspace
+
# The root of the qmk_firmware tree.
QMK_FIRMWARE = Path.cwd()
+# The detected userspace tree
+QMK_USERSPACE = detect_qmk_userspace()
+
+# Whether or not we have a separate userspace directory
+HAS_QMK_USERSPACE = True if QMK_USERSPACE is not None else False
+
# Upstream repo url
QMK_FIRMWARE_UPSTREAM = 'qmk/qmk_firmware'
diff --git a/lib/python/qmk/info.py b/lib/python/qmk/info.py
index 9c8521a2a3..3efd34555c 100644
--- a/lib/python/qmk/info.py
+++ b/lib/python/qmk/info.py
@@ -55,6 +55,29 @@ def _get_key_left_position(key):
return key['x'] - 0.25 if key.get('h', 1) == 2 and key.get('w', 1) == 1.25 else key['x']
+def _find_invalid_encoder_index(info_data):
+ """Perform additional validation of encoders
+ """
+ enc_count = len(info_data.get('encoder', {}).get('rotary', []))
+ enc_count += len(info_data.get('split', {}).get('encoder', {}).get('right', {}).get('rotary', []))
+
+ ret = []
+ layouts = info_data.get('layouts', {})
+ for layout_name, layout_data in layouts.items():
+ found = set()
+ for key in layout_data['layout']:
+ if 'encoder' in key:
+ if enc_count == 0:
+ ret.append((layout_name, key['encoder'], 'non-configured'))
+ elif key['encoder'] >= enc_count:
+ ret.append((layout_name, key['encoder'], 'out of bounds'))
+ elif key['encoder'] in found:
+ ret.append((layout_name, key['encoder'], 'duplicate'))
+ found.add(key['encoder'])
+
+ return ret
+
+
def _additional_validation(keyboard, info_data):
"""Non schema checks
"""
@@ -105,6 +128,11 @@ def _additional_validation(keyboard, info_data):
if not decl.get("aliases", []):
_log_error(info_data, f'Keycode {decl["key"]} has no short form alias')
+ # encoder IDs in layouts must be in range and not duplicated
+ found = _find_invalid_encoder_index(info_data)
+ for layout_name, encoder_index, reason in found:
+ _log_error(info_data, f'Layout "{layout_name}" contains {reason} encoder index {encoder_index}.')
+
def _validate(keyboard, info_data):
"""Perform various validation on the provided info.json data
@@ -352,55 +380,12 @@ def _extract_secure_unlock(info_data, config_c):
info_data['secure']['unlock_sequence'] = unlock_array
-def _extract_split_main(info_data, config_c):
- """Populate data about the split configuration
- """
- # Figure out how the main half is determined
- if config_c.get('SPLIT_HAND_PIN') is True:
- if 'split' not in info_data:
- info_data['split'] = {}
-
- if 'main' in info_data['split']:
- _log_warning(info_data, 'Split main hand is specified in both config.h (SPLIT_HAND_PIN) and info.json (split.main) (Value: %s), the config.h value wins.' % info_data['split']['main'])
-
- info_data['split']['main'] = 'pin'
-
- if config_c.get('SPLIT_HAND_MATRIX_GRID'):
- if 'split' not in info_data:
- info_data['split'] = {}
-
- if 'main' in info_data['split']:
- _log_warning(info_data, 'Split main hand is specified in both config.h (SPLIT_HAND_MATRIX_GRID) and info.json (split.main) (Value: %s), the config.h value wins.' % info_data['split']['main'])
-
- info_data['split']['main'] = 'matrix_grid'
- info_data['split']['matrix_grid'] = _extract_pins(config_c['SPLIT_HAND_MATRIX_GRID'])
-
- if config_c.get('EE_HANDS') is True:
- if 'split' not in info_data:
- info_data['split'] = {}
-
- if 'main' in info_data['split']:
- _log_warning(info_data, 'Split main hand is specified in both config.h (EE_HANDS) and info.json (split.main) (Value: %s), the config.h value wins.' % info_data['split']['main'])
-
- info_data['split']['main'] = 'eeprom'
-
- if config_c.get('MASTER_RIGHT') is True:
- if 'split' not in info_data:
- info_data['split'] = {}
-
- if 'main' in info_data['split']:
- _log_warning(info_data, 'Split main hand is specified in both config.h (MASTER_RIGHT) and info.json (split.main) (Value: %s), the config.h value wins.' % info_data['split']['main'])
-
- info_data['split']['main'] = 'right'
-
- if config_c.get('MASTER_LEFT') is True:
- if 'split' not in info_data:
- info_data['split'] = {}
-
- if 'main' in info_data['split']:
- _log_warning(info_data, 'Split main hand is specified in both config.h (MASTER_LEFT) and info.json (split.main) (Value: %s), the config.h value wins.' % info_data['split']['main'])
-
- info_data['split']['main'] = 'left'
+def _extract_split_handedness(info_data, config_c):
+ # Migrate
+ split = info_data.get('split', {})
+ if 'matrix_grid' in split:
+ split['handedness'] = split.get('handedness', {})
+ split['handedness']['matrix_grid'] = split.pop('matrix_grid')
def _extract_split_transport(info_data, config_c):
@@ -428,6 +413,15 @@ def _extract_split_transport(info_data, config_c):
if 'protocol' not in info_data['split']['transport']:
info_data['split']['transport']['protocol'] = 'serial'
+ # Migrate
+ transport = info_data.get('split', {}).get('transport', {})
+ if 'sync_matrix_state' in transport:
+ transport['sync'] = transport.get('sync', {})
+ transport['sync']['matrix_state'] = transport.pop('sync_matrix_state')
+ if 'sync_modifiers' in transport:
+ transport['sync'] = transport.get('sync', {})
+ transport['sync']['modifiers'] = transport.pop('sync_modifiers')
+
def _extract_split_right_pins(info_data, config_c):
# Figure out the right half matrix pins
@@ -520,6 +514,8 @@ def _config_to_json(key_type, config_value):
return list(map(str.strip, config_value.split(',')))
elif key_type == 'bool':
+ if isinstance(config_value, bool):
+ return config_value
return config_value in true_values
elif key_type == 'hex':
@@ -583,7 +579,7 @@ def _extract_config_h(info_data, config_c):
_extract_matrix_info(info_data, config_c)
_extract_audio(info_data, config_c)
_extract_secure_unlock(info_data, config_c)
- _extract_split_main(info_data, config_c)
+ _extract_split_handedness(info_data, config_c)
_extract_split_transport(info_data, config_c)
_extract_split_right_pins(info_data, config_c)
_extract_encoders(info_data, config_c)
diff --git a/lib/python/qmk/json_encoders.py b/lib/python/qmk/json_encoders.py
index 1e90f6a288..0e4ad1d220 100755
--- a/lib/python/qmk/json_encoders.py
+++ b/lib/python/qmk/json_encoders.py
@@ -217,3 +217,21 @@ class KeymapJSONEncoder(QMKJSONEncoder):
return '50' + str(key)
return key
+
+
+class UserspaceJSONEncoder(QMKJSONEncoder):
+ """Custom encoder to make userspace qmk.json's a little nicer to work with.
+ """
+ def sort_dict(self, item):
+ """Sorts the hashes in a nice way.
+ """
+ key = item[0]
+
+ if self.indentation_level == 1:
+ if key == 'userspace_version':
+ return '00userspace_version'
+
+ if key == 'build_targets':
+ return '01build_targets'
+
+ return key
diff --git a/lib/python/qmk/keyboard.py b/lib/python/qmk/keyboard.py
index 9826f3f887..b56505d649 100644
--- a/lib/python/qmk/keyboard.py
+++ b/lib/python/qmk/keyboard.py
@@ -30,6 +30,28 @@ BOX_DRAWING_CHARACTERS = {
"h": "_",
},
}
+ENC_DRAWING_CHARACTERS = {
+ "unicode": {
+ "tl": "╭",
+ "tr": "╮",
+ "bl": "╰",
+ "br": "╯",
+ "vl": "▲",
+ "vr": "▼",
+ "v": "│",
+ "h": "─",
+ },
+ "ascii": {
+ "tl": " ",
+ "tr": " ",
+ "bl": "\\",
+ "br": "/",
+ "v": "|",
+ "vl": "/",
+ "vr": "\\",
+ "h": "_",
+ },
+}
class AllKeyboards:
@@ -48,16 +70,25 @@ class AllKeyboards:
base_path = os.path.join(os.getcwd(), "keyboards") + os.path.sep
+@lru_cache(maxsize=1)
+def keyboard_alias_definitions():
+ return json_load(Path('data/mappings/keyboard_aliases.hjson'))
+
+
def is_all_keyboards(keyboard):
"""Returns True if the keyboard is an AllKeyboards object.
"""
+ if isinstance(keyboard, str):
+ return (keyboard == 'all')
return isinstance(keyboard, AllKeyboards)
def find_keyboard_from_dir():
"""Returns a keyboard name based on the user's current directory.
"""
- relative_cwd = qmk.path.under_qmk_firmware()
+ relative_cwd = qmk.path.under_qmk_userspace()
+ if not relative_cwd:
+ relative_cwd = qmk.path.under_qmk_firmware()
if relative_cwd and len(relative_cwd.parts) > 1 and relative_cwd.parts[0] == 'keyboards':
# Attempt to extract the keyboard name from the current directory
@@ -90,7 +121,7 @@ def keyboard_folder(keyboard):
This checks aliases and DEFAULT_FOLDER to resolve the actual path for a keyboard.
"""
- aliases = json_load(Path('data/mappings/keyboard_aliases.hjson'))
+ aliases = keyboard_alias_definitions()
while keyboard in aliases:
last_keyboard = keyboard
@@ -98,11 +129,7 @@ def keyboard_folder(keyboard):
if keyboard == last_keyboard:
break
- rules_mk_file = Path(base_path, keyboard, 'rules.mk')
-
- if rules_mk_file.exists():
- rules_mk = parse_rules_mk_file(rules_mk_file)
- keyboard = rules_mk.get('DEFAULT_FOLDER', keyboard)
+ keyboard = resolve_keyboard(keyboard)
if not qmk.path.is_keyboard(keyboard):
raise ValueError(f'Invalid keyboard: {keyboard}')
@@ -110,6 +137,22 @@ def keyboard_folder(keyboard):
return keyboard
+def keyboard_aliases(keyboard):
+ """Returns the list of aliases for the supplied keyboard.
+
+ Includes the keyboard itself.
+ """
+ aliases = json_load(Path('data/mappings/keyboard_aliases.hjson'))
+
+ if keyboard in aliases:
+ keyboard = aliases[keyboard].get('target', keyboard)
+
+ keyboards = set(filter(lambda k: aliases[k].get('target', '') == keyboard, aliases.keys()))
+ keyboards.add(keyboard)
+ keyboards = list(sorted(keyboards))
+ return keyboards
+
+
def keyboard_folder_or_all(keyboard):
"""Returns the actual keyboard folder.
@@ -217,7 +260,9 @@ def render_layout(layout_data, render_ascii, key_labels=None):
else:
label = key.get('label', '')
- if x >= 0.25 and w == 1.25 and h == 2:
+ if 'encoder' in key:
+ render_encoder(textpad, x, y, w, h, label, style)
+ elif x >= 0.25 and w == 1.25 and h == 2:
render_key_isoenter(textpad, x, y, w, h, label, style)
elif w == 1.5 and h == 2:
render_key_baenter(textpad, x, y, w, h, label, style)
@@ -335,3 +380,32 @@ def render_key_baenter(textpad, x, y, w, h, label, style):
textpad[y + 3][x - 3:x + w] = crn_line
textpad[y + 4][x - 3:x + w] = lab_line
textpad[y + 5][x - 3:x + w] = bot_line
+
+
+def render_encoder(textpad, x, y, w, h, label, style):
+ box_chars = ENC_DRAWING_CHARACTERS[style]
+ x = ceil(x * 4)
+ y = ceil(y * 3)
+ w = ceil(w * 4)
+ h = ceil(h * 3)
+
+ label_len = w - 2
+ label_leftover = label_len - len(label)
+
+ if len(label) > label_len:
+ label = label[:label_len]
+
+ label_blank = ' ' * label_len
+ label_border = box_chars['h'] * label_len
+ label_middle = label + ' ' * label_leftover
+
+ top_line = array('u', box_chars['tl'] + label_border + box_chars['tr'])
+ lab_line = array('u', box_chars['vl'] + label_middle + box_chars['vr'])
+ mid_line = array('u', box_chars['v'] + label_blank + box_chars['v'])
+ bot_line = array('u', box_chars['bl'] + label_border + box_chars['br'])
+
+ textpad[y][x:x + w] = top_line
+ textpad[y + 1][x:x + w] = lab_line
+ for i in range(h - 3):
+ textpad[y + i + 2][x:x + w] = mid_line
+ textpad[y + h - 1][x:x + w] = bot_line
diff --git a/lib/python/qmk/keymap.py b/lib/python/qmk/keymap.py
index 11e8d39dad..b7bf897377 100644
--- a/lib/python/qmk/keymap.py
+++ b/lib/python/qmk/keymap.py
@@ -12,7 +12,8 @@ from pygments.token import Token
from pygments import lex
import qmk.path
-from qmk.keyboard import find_keyboard_from_dir, keyboard_folder
+from qmk.constants import QMK_FIRMWARE, QMK_USERSPACE, HAS_QMK_USERSPACE
+from qmk.keyboard import find_keyboard_from_dir, keyboard_folder, keyboard_aliases
from qmk.errors import CppError
from qmk.info import info_json
@@ -191,33 +192,41 @@ def _strip_any(keycode):
return keycode
-def find_keymap_from_dir():
- """Returns `(keymap_name, source)` for the directory we're currently in.
-
+def find_keymap_from_dir(*args):
+ """Returns `(keymap_name, source)` for the directory provided (or cwd if not specified).
"""
- relative_cwd = qmk.path.under_qmk_firmware()
+ def _impl_find_keymap_from_dir(relative_path):
+ if relative_path and len(relative_path.parts) > 1:
+ # If we're in `qmk_firmware/keyboards` and `keymaps` is in our path, try to find the keyboard name.
+ if relative_path.parts[0] == 'keyboards' and 'keymaps' in relative_path.parts:
+ current_path = Path('/'.join(relative_path.parts[1:])) # Strip 'keyboards' from the front
+
+ if 'keymaps' in current_path.parts and current_path.name != 'keymaps':
+ while current_path.parent.name != 'keymaps':
+ current_path = current_path.parent
- if relative_cwd and len(relative_cwd.parts) > 1:
- # If we're in `qmk_firmware/keyboards` and `keymaps` is in our path, try to find the keyboard name.
- if relative_cwd.parts[0] == 'keyboards' and 'keymaps' in relative_cwd.parts:
- current_path = Path('/'.join(relative_cwd.parts[1:])) # Strip 'keyboards' from the front
+ return current_path.name, 'keymap_directory'
- if 'keymaps' in current_path.parts and current_path.name != 'keymaps':
- while current_path.parent.name != 'keymaps':
- current_path = current_path.parent
+ # If we're in `qmk_firmware/layouts` guess the name from the community keymap they're in
+ elif relative_path.parts[0] == 'layouts' and is_keymap_dir(relative_path):
+ return relative_path.name, 'layouts_directory'
- return current_path.name, 'keymap_directory'
+ # If we're in `qmk_firmware/users` guess the name from the userspace they're in
+ elif relative_path.parts[0] == 'users':
+ # Guess the keymap name based on which userspace they're in
+ return relative_path.parts[1], 'users_directory'
+ return None, None
- # If we're in `qmk_firmware/layouts` guess the name from the community keymap they're in
- elif relative_cwd.parts[0] == 'layouts' and is_keymap_dir(relative_cwd):
- return relative_cwd.name, 'layouts_directory'
+ if HAS_QMK_USERSPACE:
+ name, source = _impl_find_keymap_from_dir(qmk.path.under_qmk_userspace(*args))
+ if name and source:
+ return name, source
- # If we're in `qmk_firmware/users` guess the name from the userspace they're in
- elif relative_cwd.parts[0] == 'users':
- # Guess the keymap name based on which userspace they're in
- return relative_cwd.parts[1], 'users_directory'
+ name, source = _impl_find_keymap_from_dir(qmk.path.under_qmk_firmware(*args))
+ if name and source:
+ return name, source
- return None, None
+ return (None, None)
def keymap_completer(prefix, action, parser, parsed_args):
@@ -418,29 +427,45 @@ def locate_keymap(keyboard, keymap):
raise KeyError('Invalid keyboard: ' + repr(keyboard))
# Check the keyboard folder first, last match wins
- checked_dirs = ''
keymap_path = ''
- for dir in keyboard_folder(keyboard).split('/'):
- if checked_dirs:
- checked_dirs = '/'.join((checked_dirs, dir))
- else:
- checked_dirs = dir
+ search_dirs = [QMK_FIRMWARE]
+ keyboard_dirs = [keyboard_folder(keyboard)]
+ if HAS_QMK_USERSPACE:
+ # When we've got userspace, check there _last_ as we want them to override anything in the main repo.
+ search_dirs.append(QMK_USERSPACE)
+ # We also want to search for any aliases as QMK's folder structure may have changed, with an alias, but the user
+ # hasn't updated their keymap location yet.
+ keyboard_dirs.extend(keyboard_aliases(keyboard))
+ keyboard_dirs = list(set(keyboard_dirs))
+
+ for search_dir in search_dirs:
+ for keyboard_dir in keyboard_dirs:
+ checked_dirs = ''
+ for dir in keyboard_dir.split('/'):
+ if checked_dirs:
+ checked_dirs = '/'.join((checked_dirs, dir))
+ else:
+ checked_dirs = dir
- keymap_dir = Path('keyboards') / checked_dirs / 'keymaps'
+ keymap_dir = Path(search_dir) / Path('keyboards') / checked_dirs / 'keymaps'
- if (keymap_dir / keymap / 'keymap.c').exists():
- keymap_path = keymap_dir / keymap / 'keymap.c'
- if (keymap_dir / keymap / 'keymap.json').exists():
- keymap_path = keymap_dir / keymap / 'keymap.json'
+ if (keymap_dir / keymap / 'keymap.c').exists():
+ keymap_path = keymap_dir / keymap / 'keymap.c'
+ if (keymap_dir / keymap / 'keymap.json').exists():
+ keymap_path = keymap_dir / keymap / 'keymap.json'
- if keymap_path:
- return keymap_path
+ if keymap_path:
+ return keymap_path
# Check community layouts as a fallback
info = info_json(keyboard)
- for community_parent in Path('layouts').glob('*/'):
+ community_parents = list(Path('layouts').glob('*/'))
+ if HAS_QMK_USERSPACE and (Path(QMK_USERSPACE) / "layouts").exists():
+ community_parents.append(Path(QMK_USERSPACE) / "layouts")
+
+ for community_parent in community_parents:
for layout in info.get("community_layouts", []):
community_layout = community_parent / layout / keymap
if community_layout.exists():
@@ -450,6 +475,16 @@ def locate_keymap(keyboard, keymap):
return community_layout / 'keymap.c'
+def is_keymap_target(keyboard, keymap):
+ if keymap == 'all':
+ return True
+
+ if locate_keymap(keyboard, keymap):
+ return True
+
+ return False
+
+
def list_keymaps(keyboard, c=True, json=True, additional_files=None, fullpath=False):
"""List the available keymaps for a keyboard.
@@ -474,26 +509,30 @@ def list_keymaps(keyboard, c=True, json=True, additional_files=None, fullpath=Fa
"""
names = set()
- keyboards_dir = Path('keyboards')
- kb_path = keyboards_dir / keyboard
-
# walk up the directory tree until keyboards_dir
# and collect all directories' name with keymap.c file in it
- while kb_path != keyboards_dir:
- keymaps_dir = kb_path / "keymaps"
-
- if keymaps_dir.is_dir():
- for keymap in keymaps_dir.iterdir():
- if is_keymap_dir(keymap, c, json, additional_files):
- keymap = keymap if fullpath else keymap.name
- names.add(keymap)
+ for search_dir in [QMK_FIRMWARE, QMK_USERSPACE] if HAS_QMK_USERSPACE else [QMK_FIRMWARE]:
+ keyboards_dir = search_dir / Path('keyboards')
+ kb_path = keyboards_dir / keyboard
+
+ while kb_path != keyboards_dir:
+ keymaps_dir = kb_path / "keymaps"
+ if keymaps_dir.is_dir():
+ for keymap in keymaps_dir.iterdir():
+ if is_keymap_dir(keymap, c, json, additional_files):
+ keymap = keymap if fullpath else keymap.name
+ names.add(keymap)
- kb_path = kb_path.parent
+ kb_path = kb_path.parent
# Check community layouts as a fallback
info = info_json(keyboard)
- for community_parent in Path('layouts').glob('*/'):
+ community_parents = list(Path('layouts').glob('*/'))
+ if HAS_QMK_USERSPACE and (Path(QMK_USERSPACE) / "layouts").exists():
+ community_parents.append(Path(QMK_USERSPACE) / "layouts")
+
+ for community_parent in community_parents:
for layout in info.get("community_layouts", []):
cl_path = community_parent / layout
if cl_path.is_dir():
@@ -657,7 +696,7 @@ def parse_keymap_c(keymap_file, use_cpp=True):
Returns:
a dictionary containing the parsed keymap
"""
- if keymap_file == '-':
+ if not isinstance(keymap_file, (Path, str)) or keymap_file == '-':
if use_cpp:
keymap_file = _c_preprocess(None, sys.stdin)
else:
diff --git a/lib/python/qmk/path.py b/lib/python/qmk/path.py
index 9d248451b8..74364ee04b 100644
--- a/lib/python/qmk/path.py
+++ b/lib/python/qmk/path.py
@@ -5,7 +5,7 @@ import os
import argparse
from pathlib import Path
-from qmk.constants import MAX_KEYBOARD_SUBFOLDERS, QMK_FIRMWARE
+from qmk.constants import MAX_KEYBOARD_SUBFOLDERS, QMK_FIRMWARE, QMK_USERSPACE, HAS_QMK_USERSPACE
from qmk.errors import NoSuchKeyboardError
@@ -19,17 +19,49 @@ def is_keyboard(keyboard_name):
return rules_mk.exists()
-def under_qmk_firmware():
+def under_qmk_firmware(path=Path(os.environ['ORIG_CWD'])):
"""Returns a Path object representing the relative path under qmk_firmware, or None.
"""
- cwd = Path(os.environ['ORIG_CWD'])
-
try:
- return cwd.relative_to(QMK_FIRMWARE)
+ return path.relative_to(QMK_FIRMWARE)
except ValueError:
return None
+def under_qmk_userspace(path=Path(os.environ['ORIG_CWD'])):
+ """Returns a Path object representing the relative path under $QMK_USERSPACE, or None.
+ """
+ try:
+ if HAS_QMK_USERSPACE:
+ return path.relative_to(QMK_USERSPACE)
+ except ValueError:
+ pass
+ return None
+
+
+def is_under_qmk_firmware(path=Path(os.environ['ORIG_CWD'])):
+ """Returns a boolean if the input path is a child under qmk_firmware.
+ """
+ if path is None:
+ return False
+ try:
+ return Path(os.path.commonpath([Path(path), QMK_FIRMWARE])) == QMK_FIRMWARE
+ except ValueError:
+ return False
+
+
+def is_under_qmk_userspace(path=Path(os.environ['ORIG_CWD'])):
+ """Returns a boolean if the input path is a child under $QMK_USERSPACE.
+ """
+ if path is None:
+ return False
+ try:
+ if HAS_QMK_USERSPACE:
+ return Path(os.path.commonpath([Path(path), QMK_USERSPACE])) == QMK_USERSPACE
+ except ValueError:
+ return False
+
+
def keyboard(keyboard_name):
"""Returns the path to a keyboard's directory relative to the qmk root.
"""
@@ -47,11 +79,28 @@ def keymaps(keyboard_name):
keyboard_folder = keyboard(keyboard_name)
found_dirs = []
+ if HAS_QMK_USERSPACE:
+ this_keyboard_folder = Path(QMK_USERSPACE) / keyboard_folder
+ for _ in range(MAX_KEYBOARD_SUBFOLDERS):
+ if (this_keyboard_folder / 'keymaps').exists():
+ found_dirs.append((this_keyboard_folder / 'keymaps').resolve())
+
+ this_keyboard_folder = this_keyboard_folder.parent
+ if this_keyboard_folder.resolve() == QMK_USERSPACE.resolve():
+ break
+
+ # We don't have any relevant keymap directories in userspace, so we'll use the fully-qualified path instead.
+ if len(found_dirs) == 0:
+ found_dirs.append((QMK_USERSPACE / keyboard_folder / 'keymaps').resolve())
+
+ this_keyboard_folder = QMK_FIRMWARE / keyboard_folder
for _ in range(MAX_KEYBOARD_SUBFOLDERS):
- if (keyboard_folder / 'keymaps').exists():
- found_dirs.append((keyboard_folder / 'keymaps').resolve())
+ if (this_keyboard_folder / 'keymaps').exists():
+ found_dirs.append((this_keyboard_folder / 'keymaps').resolve())
- keyboard_folder = keyboard_folder.parent
+ this_keyboard_folder = this_keyboard_folder.parent
+ if this_keyboard_folder.resolve() == QMK_FIRMWARE.resolve():
+ break
if len(found_dirs) > 0:
return found_dirs
diff --git a/lib/python/qmk/search.py b/lib/python/qmk/search.py
index a74450ca87..84cf6cbe32 100644
--- a/lib/python/qmk/search.py
+++ b/lib/python/qmk/search.py
@@ -6,13 +6,14 @@ import fnmatch
import logging
import re
from typing import List, Tuple
-from dotty_dict import dotty
+from dotty_dict import dotty, Dotty
from milc import cli
from qmk.util import parallel_map
from qmk.info import keymap_json
-import qmk.keyboard
-import qmk.keymap
+from qmk.keyboard import list_keyboards, keyboard_folder
+from qmk.keymap import list_keymaps, locate_keymap
+from qmk.build_targets import KeyboardKeymapBuildTarget, BuildTarget
def _set_log_level(level):
@@ -36,15 +37,15 @@ def _all_keymaps(keyboard):
"""Returns a list of tuples of (keyboard, keymap) for all keymaps for the given keyboard.
"""
with ignore_logging():
- keyboard = qmk.keyboard.resolve_keyboard(keyboard)
- return [(keyboard, keymap) for keymap in qmk.keymap.list_keymaps(keyboard)]
+ keyboard = keyboard_folder(keyboard)
+ return [(keyboard, keymap) for keymap in list_keymaps(keyboard)]
def _keymap_exists(keyboard, keymap):
"""Returns the keyboard name if the keyboard+keymap combination exists, otherwise None.
"""
with ignore_logging():
- return keyboard if qmk.keymap.locate_keymap(keyboard, keymap) is not None else None
+ return keyboard if locate_keymap(keyboard, keymap) is not None else None
def _load_keymap_info(kb_km):
@@ -75,7 +76,7 @@ def _expand_keymap_target(keyboard: str, keymap: str, all_keyboards: List[str] =
Caters for 'all' in either keyboard or keymap, or both.
"""
if all_keyboards is None:
- all_keyboards = qmk.keyboard.list_keyboards()
+ all_keyboards = list_keyboards()
if keyboard == 'all':
if keymap == 'all':
@@ -90,30 +91,38 @@ def _expand_keymap_target(keyboard: str, keymap: str, all_keyboards: List[str] =
return [(kb, keymap) for kb in filter(lambda e: e is not None, parallel_map(keyboard_filter, all_keyboards))]
else:
if keymap == 'all':
- keyboard = qmk.keyboard.resolve_keyboard(keyboard)
cli.log.info(f'Retrieving list of keymaps for keyboard "{keyboard}"...')
return _all_keymaps(keyboard)
else:
- return [(qmk.keyboard.resolve_keyboard(keyboard), keymap)]
+ return [(keyboard, keymap)]
def expand_keymap_targets(targets: List[Tuple[str, str]]) -> List[Tuple[str, str]]:
"""Expand a list of (keyboard, keymap) tuples inclusive of 'all', into a list of explicit (keyboard, keymap) tuples.
"""
overall_targets = []
- all_keyboards = qmk.keyboard.list_keyboards()
+ all_keyboards = list_keyboards()
for target in targets:
overall_targets.extend(_expand_keymap_target(target[0], target[1], all_keyboards))
return list(sorted(set(overall_targets)))
-def _filter_keymap_targets(target_list: List[Tuple[str, str]], filters: List[str] = [], print_vals: List[str] = []) -> List[Tuple[str, str, List[Tuple[str, str]]]]:
+def _construct_build_target_kb_km(e):
+ return KeyboardKeymapBuildTarget(keyboard=e[0], keymap=e[1])
+
+
+def _construct_build_target_kb_km_json(e):
+ return KeyboardKeymapBuildTarget(keyboard=e[0], keymap=e[1], json=e[2])
+
+
+def _filter_keymap_targets(target_list: List[Tuple[str, str]], filters: List[str] = []) -> List[BuildTarget]:
"""Filter a list of (keyboard, keymap) tuples based on the supplied filters.
Optionally includes the values of the queried info.json keys.
"""
- if len(filters) == 0 and len(print_vals) == 0:
- targets = [(kb, km, {}) for kb, km in target_list]
+ if len(filters) == 0:
+ cli.log.info('Preparing target list...')
+ targets = list(set(parallel_map(_construct_build_target_kb_km, target_list)))
else:
cli.log.info('Parsing data for all matching keyboard/keymap combinations...')
valid_keymaps = [(e[0], e[1], dotty(e[2])) for e in parallel_map(_load_keymap_info, target_list)]
@@ -172,18 +181,20 @@ def _filter_keymap_targets(target_list: List[Tuple[str, str]], filters: List[str
cli.log.warning(f'Unrecognized filter expression: {filter_expr}')
continue
- targets = [(e[0], e[1], [(p, e[2].get(p)) for p in print_vals]) for e in valid_keymaps]
+ cli.log.info('Preparing target list...')
+ valid_keymaps = [(e[0], e[1], e[2].to_dict() if isinstance(e[2], Dotty) else e[2]) for e in valid_keymaps] # need to convert dotty_dict back to dict because it doesn't survive parallelisation
+ targets = list(set(parallel_map(_construct_build_target_kb_km_json, list(valid_keymaps))))
return targets
-def search_keymap_targets(targets: List[Tuple[str, str]] = [('all', 'default')], filters: List[str] = [], print_vals: List[str] = []) -> List[Tuple[str, str, List[Tuple[str, str]]]]:
+def search_keymap_targets(targets: List[Tuple[str, str]] = [('all', 'default')], filters: List[str] = []) -> List[BuildTarget]:
"""Search for build targets matching the supplied criteria.
"""
- return list(sorted(_filter_keymap_targets(expand_keymap_targets(targets), filters, print_vals), key=lambda e: (e[0], e[1])))
+ return _filter_keymap_targets(expand_keymap_targets(targets), filters)
-def search_make_targets(targets: List[str], filters: List[str] = [], print_vals: List[str] = []) -> List[Tuple[str, str, List[Tuple[str, str]]]]:
+def search_make_targets(targets: List[str], filters: List[str] = []) -> List[BuildTarget]:
"""Search for build targets matching the supplied criteria.
"""
- return list(sorted(_filter_keymap_targets(expand_make_targets(targets), filters, print_vals), key=lambda e: (e[0], e[1])))
+ return _filter_keymap_targets(expand_make_targets(targets), filters)
diff --git a/lib/python/qmk/userspace.py b/lib/python/qmk/userspace.py
new file mode 100644
index 0000000000..3783568006
--- /dev/null
+++ b/lib/python/qmk/userspace.py
@@ -0,0 +1,185 @@
+# Copyright 2023 Nick Brassel (@tzarc)
+# SPDX-License-Identifier: GPL-2.0-or-later
+from os import environ
+from pathlib import Path
+import json
+import jsonschema
+
+from milc import cli
+
+from qmk.json_schema import validate, json_load
+from qmk.json_encoders import UserspaceJSONEncoder
+
+
+def qmk_userspace_paths():
+ test_dirs = []
+
+ # If we're already in a directory with a qmk.json and a keyboards or layouts directory, interpret it as userspace
+ current_dir = Path(environ['ORIG_CWD'])
+ while len(current_dir.parts) > 1:
+ if (current_dir / 'qmk.json').is_file():
+ test_dirs.append(current_dir)
+ current_dir = current_dir.parent
+
+ # If we have a QMK_USERSPACE environment variable, use that
+ if environ.get('QMK_USERSPACE') is not None:
+ current_dir = Path(environ.get('QMK_USERSPACE'))
+ if current_dir.is_dir():
+ test_dirs.append(current_dir)
+
+ # If someone has configured a directory, use that
+ if cli.config.user.overlay_dir is not None:
+ current_dir = Path(cli.config.user.overlay_dir)
+ if current_dir.is_dir():
+ test_dirs.append(current_dir)
+
+ return test_dirs
+
+
+def qmk_userspace_validate(path):
+ # Construct a UserspaceDefs object to ensure it validates correctly
+ if (path / 'qmk.json').is_file():
+ UserspaceDefs(path / 'qmk.json')
+ return
+
+ # No qmk.json file found
+ raise FileNotFoundError('No qmk.json file found.')
+
+
+def detect_qmk_userspace():
+ # Iterate through all the detected userspace paths and return the first one that validates correctly
+ test_dirs = qmk_userspace_paths()
+ for test_dir in test_dirs:
+ try:
+ qmk_userspace_validate(test_dir)
+ return test_dir
+ except FileNotFoundError:
+ continue
+ except UserspaceValidationError:
+ continue
+ return None
+
+
+class UserspaceDefs:
+ def __init__(self, userspace_json: Path):
+ self.path = userspace_json
+ self.build_targets = []
+ json = json_load(userspace_json)
+
+ exception = UserspaceValidationError()
+ success = False
+
+ try:
+ validate(json, 'qmk.user_repo.v0') # `qmk.json` must have a userspace_version at minimum
+ except jsonschema.ValidationError as err:
+ exception.add('qmk.user_repo.v0', err)
+ raise exception
+
+ # Iterate through each version of the schema, starting with the latest and decreasing to v1
+ try:
+ validate(json, 'qmk.user_repo.v1')
+ self.__load_v1(json)
+ success = True
+ except jsonschema.ValidationError as err:
+ exception.add('qmk.user_repo.v1', err)
+
+ if not success:
+ raise exception
+
+ def save(self):
+ target_json = {
+ "userspace_version": "1.0", # Needs to match latest version
+ "build_targets": []
+ }
+
+ for e in self.build_targets:
+ if isinstance(e, dict):
+ target_json['build_targets'].append([e['keyboard'], e['keymap']])
+ elif isinstance(e, Path):
+ target_json['build_targets'].append(str(e.relative_to(self.path.parent)))
+
+ try:
+ # Ensure what we're writing validates against the latest version of the schema
+ validate(target_json, 'qmk.user_repo.v1')
+ except jsonschema.ValidationError as err:
+ cli.log.error(f'Could not save userspace file: {err}')
+ return False
+
+ # Only actually write out data if it changed
+ old_data = json.dumps(json.loads(self.path.read_text()), cls=UserspaceJSONEncoder, sort_keys=True)
+ new_data = json.dumps(target_json, cls=UserspaceJSONEncoder, sort_keys=True)
+ if old_data != new_data:
+ self.path.write_text(new_data)
+ cli.log.info(f'Saved userspace file to {self.path}.')
+ return True
+
+ def add_target(self, keyboard=None, keymap=None, json_path=None, do_print=True):
+ if json_path is not None:
+ # Assume we're adding a json filename/path
+ json_path = Path(json_path)
+ if json_path not in self.build_targets:
+ self.build_targets.append(json_path)
+ if do_print:
+ cli.log.info(f'Added {json_path} to userspace build targets.')
+ else:
+ cli.log.info(f'{json_path} is already a userspace build target.')
+
+ elif keyboard is not None and keymap is not None:
+ # Both keyboard/keymap specified
+ e = {"keyboard": keyboard, "keymap": keymap}
+ if e not in self.build_targets:
+ self.build_targets.append(e)
+ if do_print:
+ cli.log.info(f'Added {keyboard}:{keymap} to userspace build targets.')
+ else:
+ if do_print:
+ cli.log.info(f'{keyboard}:{keymap} is already a userspace build target.')
+
+ def remove_target(self, keyboard=None, keymap=None, json_path=None, do_print=True):
+ if json_path is not None:
+ # Assume we're removing a json filename/path
+ json_path = Path(json_path)
+ if json_path in self.build_targets:
+ self.build_targets.remove(json_path)
+ if do_print:
+ cli.log.info(f'Removed {json_path} from userspace build targets.')
+ else:
+ cli.log.info(f'{json_path} is not a userspace build target.')
+
+ elif keyboard is not None and keymap is not None:
+ # Both keyboard/keymap specified
+ e = {"keyboard": keyboard, "keymap": keymap}
+ if e in self.build_targets:
+ self.build_targets.remove(e)
+ if do_print:
+ cli.log.info(f'Removed {keyboard}:{keymap} from userspace build targets.')
+ else:
+ if do_print:
+ cli.log.info(f'{keyboard}:{keymap} is not a userspace build target.')
+
+ def __load_v1(self, json):
+ for e in json['build_targets']:
+ if isinstance(e, list) and len(e) == 2:
+ self.add_target(keyboard=e[0], keymap=e[1], do_print=False)
+ if isinstance(e, str):
+ p = self.path.parent / e
+ if p.exists() and p.suffix == '.json':
+ self.add_target(json_path=p, do_print=False)
+
+
+class UserspaceValidationError(Exception):
+ def __init__(self, *args, **kwargs):
+ super().__init__(*args, **kwargs)
+ self.__exceptions = []
+
+ def __str__(self):
+ return self.message
+
+ @property
+ def exceptions(self):
+ return self.__exceptions
+
+ def add(self, schema, exception):
+ self.__exceptions.append((schema, exception))
+ errorlist = "\n\n".join([f"{schema}: {exception}" for schema, exception in self.__exceptions])
+ self.message = f'Could not validate against any version of the userspace schema. Errors:\n\n{errorlist}'
diff --git a/platforms/arm_atsam/_util.h b/platforms/arm_atsam/_util.h
new file mode 100644
index 0000000000..38aa9f4472
--- /dev/null
+++ b/platforms/arm_atsam/_util.h
@@ -0,0 +1,9 @@
+// Copyright 2023 Nick Brassel (@tzarc)
+// SPDX-License-Identifier: GPL-2.0-or-later
+#pragma once
+
+#define RESIDENT_IN_RAM(funcname) __attribute__((section(".ramfunc." #funcname), noinline)) funcname
+
+#if __has_include_next("_util.h")
+# include_next "_util.h"
+#endif
diff --git a/platforms/avr/_util.h b/platforms/avr/_util.h
new file mode 100644
index 0000000000..81b94896ba
--- /dev/null
+++ b/platforms/avr/_util.h
@@ -0,0 +1,10 @@
+// Copyright 2023 Nick Brassel (@tzarc)
+// SPDX-License-Identifier: GPL-2.0-or-later
+#pragma once
+
+// AVR can't actually run anything from RAM, so just no-op the define.
+#define RESIDENT_IN_RAM(funcname) funcname
+
+#if __has_include_next("_util.h")
+# include_next "_util.h"
+#endif
diff --git a/platforms/avr/drivers/ws2812_bitbang.c b/platforms/avr/drivers/ws2812_bitbang.c
index aad10d86b0..116053591f 100644
--- a/platforms/avr/drivers/ws2812_bitbang.c
+++ b/platforms/avr/drivers/ws2812_bitbang.c
@@ -37,13 +37,13 @@
static inline void ws2812_sendarray_mask(uint8_t *data, uint16_t datlen, uint8_t masklo, uint8_t maskhi);
-void ws2812_setleds(LED_TYPE *ledarray, uint16_t number_of_leds) {
+void ws2812_setleds(rgb_led_t *ledarray, uint16_t number_of_leds) {
DDRx_ADDRESS(WS2812_DI_PIN) |= pinmask(WS2812_DI_PIN);
uint8_t masklo = ~(pinmask(WS2812_DI_PIN)) & PORTx_ADDRESS(WS2812_DI_PIN);
uint8_t maskhi = pinmask(WS2812_DI_PIN) | PORTx_ADDRESS(WS2812_DI_PIN);
- ws2812_sendarray_mask((uint8_t *)ledarray, number_of_leds * sizeof(LED_TYPE), masklo, maskhi);
+ ws2812_sendarray_mask((uint8_t *)ledarray, number_of_leds * sizeof(rgb_led_t), masklo, maskhi);
_delay_us(WS2812_TRST_US);
}
diff --git a/platforms/avr/drivers/ws2812_i2c.c b/platforms/avr/drivers/ws2812_i2c.c
index f4a2fbe0b3..f52a037b8e 100644
--- a/platforms/avr/drivers/ws2812_i2c.c
+++ b/platforms/avr/drivers/ws2812_i2c.c
@@ -18,12 +18,12 @@ void ws2812_init(void) {
}
// Setleds for standard RGB
-void ws2812_setleds(LED_TYPE *ledarray, uint16_t leds) {
+void ws2812_setleds(rgb_led_t *ledarray, uint16_t leds) {
static bool s_init = false;
if (!s_init) {
ws2812_init();
s_init = true;
}
- i2c_transmit(WS2812_I2C_ADDRESS, (uint8_t *)ledarray, sizeof(LED_TYPE) * leds, WS2812_I2C_TIMEOUT);
+ i2c_transmit(WS2812_I2C_ADDRESS, (uint8_t *)ledarray, sizeof(rgb_led_t) * leds, WS2812_I2C_TIMEOUT);
}
diff --git a/platforms/avr/flash.mk b/platforms/avr/flash.mk
index 9c2ab72410..51731f0aa8 100644
--- a/platforms/avr/flash.mk
+++ b/platforms/avr/flash.mk
@@ -130,10 +130,10 @@ avrdude-split-right: $(BUILD_DIR)/$(TARGET).hex check-size cpfirmware
$(call EXEC_AVRDUDE,eeprom-righthand.eep)
define EXEC_USBASP
- if $(AVRDUDE_PROGRAMMER) -p $(AVRDUDE_MCU) -c usbasp 2>&1 | grep -q "could not find USB device with"; then \
+ if $(AVRDUDE_PROGRAMMER) -p $(AVRDUDE_MCU) -c usbasp 2>&1 | grep -q "\(could not\|cannot\) find USB device with"; then \
printf "$(MSG_BOOTLOADER_NOT_FOUND_QUICK_RETRY)" ;\
sleep $(BOOTLOADER_RETRY_TIME) ;\
- until $(AVRDUDE_PROGRAMMER) -p $(AVRDUDE_MCU) -c usbasp 2>&1 | (! grep -q "could not find USB device with"); do\
+ until $(AVRDUDE_PROGRAMMER) -p $(AVRDUDE_MCU) -c usbasp 2>&1 | (! grep -q "\(could not\|cannot\) find USB device with"); do\
printf "." ;\
sleep $(BOOTLOADER_RETRY_TIME) ;\
done ;\
diff --git a/platforms/avr/platform.mk b/platforms/avr/platform.mk
index 09028d80af..aef449cadf 100644
--- a/platforms/avr/platform.mk
+++ b/platforms/avr/platform.mk
@@ -109,6 +109,29 @@ DEBUG_HOST = localhost
#============================================================================
+SIZE_MARGIN = 1024
+
+check-size:
+ $(eval MAX_SIZE=$(shell n=`$(CC) -E -mmcu=$(MCU) -D__ASSEMBLER__ $(CFLAGS) $(OPT_DEFS) platforms/avr/bootloader_size.c 2> /dev/null | $(SED) -ne 's/\r//;/^#/n;/^AVR_SIZE:/,$${s/^AVR_SIZE: //;p;}'` && echo $$(($$n)) || echo 0))
+ $(eval CURRENT_SIZE=$(shell if [ -f $(BUILD_DIR)/$(TARGET).hex ]; then $(SIZE) --target=$(FORMAT) $(BUILD_DIR)/$(TARGET).hex | $(AWK) 'NR==2 {print $$4}'; else printf 0; fi))
+ $(eval FREE_SIZE=$(shell expr $(MAX_SIZE) - $(CURRENT_SIZE)))
+ $(eval OVER_SIZE=$(shell expr $(CURRENT_SIZE) - $(MAX_SIZE)))
+ $(eval PERCENT_SIZE=$(shell expr $(CURRENT_SIZE) \* 100 / $(MAX_SIZE)))
+ if [ $(MAX_SIZE) -gt 0 ] && [ $(CURRENT_SIZE) -gt 0 ]; then \
+ $(SILENT) || printf "$(MSG_CHECK_FILESIZE)" | $(AWK_CMD); \
+ if [ $(CURRENT_SIZE) -gt $(MAX_SIZE) ]; then \
+ $(REMOVE) $(TARGET).$(FIRMWARE_FORMAT); \
+ $(REMOVE) $(BUILD_DIR)/$(TARGET).{hex,bin,uf2}; \
+ printf "\n * $(MSG_FILE_TOO_BIG)"; $(PRINT_ERROR_PLAIN); \
+ else \
+ if [ $(FREE_SIZE) -lt $(SIZE_MARGIN) ]; then \
+ $(PRINT_WARNING_PLAIN); printf " * $(MSG_FILE_NEAR_LIMIT)"; \
+ else \
+ $(PRINT_OK); $(SILENT) || printf " * $(MSG_FILE_JUST_RIGHT)"; \
+ fi ; \
+ fi ; \
+ fi
+
# Convert hex to bin.
bin: $(BUILD_DIR)/$(TARGET).hex
ifeq ($(BOOTLOADER),lufa-ms)
diff --git a/platforms/chibios/_pin_defs.h b/platforms/chibios/_pin_defs.h
index 414c9e3d11..e144ef9b0a 100644
--- a/platforms/chibios/_pin_defs.h
+++ b/platforms/chibios/_pin_defs.h
@@ -24,271 +24,272 @@
/* Include the vendor specific pin defs */
#if __has_include_next("_pin_defs.h")
# include_next "_pin_defs.h"
-#endif
+#else
+# define A0 PAL_LINE(GPIOA, 0)
+# define A1 PAL_LINE(GPIOA, 1)
+# define A2 PAL_LINE(GPIOA, 2)
+# define A3 PAL_LINE(GPIOA, 3)
+# define A4 PAL_LINE(GPIOA, 4)
+# define A5 PAL_LINE(GPIOA, 5)
+# define A6 PAL_LINE(GPIOA, 6)
+# define A7 PAL_LINE(GPIOA, 7)
+# define A8 PAL_LINE(GPIOA, 8)
+# define A9 PAL_LINE(GPIOA, 9)
+# define A10 PAL_LINE(GPIOA, 10)
+# define A11 PAL_LINE(GPIOA, 11)
+# define A12 PAL_LINE(GPIOA, 12)
+# define A13 PAL_LINE(GPIOA, 13)
+# define A14 PAL_LINE(GPIOA, 14)
+# define A15 PAL_LINE(GPIOA, 15)
+# define A16 PAL_LINE(GPIOA, 16)
+# define A17 PAL_LINE(GPIOA, 17)
+# define A18 PAL_LINE(GPIOA, 18)
+# define A19 PAL_LINE(GPIOA, 19)
+# define A20 PAL_LINE(GPIOA, 20)
+# define A21 PAL_LINE(GPIOA, 21)
+# define A22 PAL_LINE(GPIOA, 22)
+# define A23 PAL_LINE(GPIOA, 23)
+# define A24 PAL_LINE(GPIOA, 24)
+# define A25 PAL_LINE(GPIOA, 25)
+# define A26 PAL_LINE(GPIOA, 26)
+# define A27 PAL_LINE(GPIOA, 27)
+# define A28 PAL_LINE(GPIOA, 28)
+# define A29 PAL_LINE(GPIOA, 29)
+# define A30 PAL_LINE(GPIOA, 30)
+# define A31 PAL_LINE(GPIOA, 31)
+# define A32 PAL_LINE(GPIOA, 32)
+# define B0 PAL_LINE(GPIOB, 0)
+# define B1 PAL_LINE(GPIOB, 1)
+# define B2 PAL_LINE(GPIOB, 2)
+# define B3 PAL_LINE(GPIOB, 3)
+# define B4 PAL_LINE(GPIOB, 4)
+# define B5 PAL_LINE(GPIOB, 5)
+# define B6 PAL_LINE(GPIOB, 6)
+# define B7 PAL_LINE(GPIOB, 7)
+# define B8 PAL_LINE(GPIOB, 8)
+# define B9 PAL_LINE(GPIOB, 9)
+# define B10 PAL_LINE(GPIOB, 10)
+# define B11 PAL_LINE(GPIOB, 11)
+# define B12 PAL_LINE(GPIOB, 12)
+# define B13 PAL_LINE(GPIOB, 13)
+# define B14 PAL_LINE(GPIOB, 14)
+# define B15 PAL_LINE(GPIOB, 15)
+# define B16 PAL_LINE(GPIOB, 16)
+# define B17 PAL_LINE(GPIOB, 17)
+# define B18 PAL_LINE(GPIOB, 18)
+# define B19 PAL_LINE(GPIOB, 19)
+# define B20 PAL_LINE(GPIOB, 20)
+# define B21 PAL_LINE(GPIOB, 21)
+# define B22 PAL_LINE(GPIOB, 22)
+# define B23 PAL_LINE(GPIOB, 23)
+# define B24 PAL_LINE(GPIOB, 24)
+# define B25 PAL_LINE(GPIOB, 25)
+# define B26 PAL_LINE(GPIOB, 26)
+# define B27 PAL_LINE(GPIOB, 27)
+# define B28 PAL_LINE(GPIOB, 28)
+# define B29 PAL_LINE(GPIOB, 29)
+# define B30 PAL_LINE(GPIOB, 30)
+# define B31 PAL_LINE(GPIOB, 31)
+# define B32 PAL_LINE(GPIOB, 32)
+# define C0 PAL_LINE(GPIOC, 0)
+# define C1 PAL_LINE(GPIOC, 1)
+# define C2 PAL_LINE(GPIOC, 2)
+# define C3 PAL_LINE(GPIOC, 3)
+# define C4 PAL_LINE(GPIOC, 4)
+# define C5 PAL_LINE(GPIOC, 5)
+# define C6 PAL_LINE(GPIOC, 6)
+# define C7 PAL_LINE(GPIOC, 7)
+# define C8 PAL_LINE(GPIOC, 8)
+# define C9 PAL_LINE(GPIOC, 9)
+# define C10 PAL_LINE(GPIOC, 10)
+# define C11 PAL_LINE(GPIOC, 11)
+# define C12 PAL_LINE(GPIOC, 12)
+# define C13 PAL_LINE(GPIOC, 13)
+# define C14 PAL_LINE(GPIOC, 14)
+# define C15 PAL_LINE(GPIOC, 15)
+# define C16 PAL_LINE(GPIOC, 16)
+# define C17 PAL_LINE(GPIOC, 17)
+# define C18 PAL_LINE(GPIOC, 18)
+# define C19 PAL_LINE(GPIOC, 19)
+# define C20 PAL_LINE(GPIOC, 20)
+# define C21 PAL_LINE(GPIOC, 21)
+# define C22 PAL_LINE(GPIOC, 22)
+# define C23 PAL_LINE(GPIOC, 23)
+# define C24 PAL_LINE(GPIOC, 24)
+# define C25 PAL_LINE(GPIOC, 25)
+# define C26 PAL_LINE(GPIOC, 26)
+# define C27 PAL_LINE(GPIOC, 27)
+# define C28 PAL_LINE(GPIOC, 28)
+# define C29 PAL_LINE(GPIOC, 29)
+# define C30 PAL_LINE(GPIOC, 30)
+# define C31 PAL_LINE(GPIOC, 31)
+# define C32 PAL_LINE(GPIOC, 32)
+# define D0 PAL_LINE(GPIOD, 0)
+# define D1 PAL_LINE(GPIOD, 1)
+# define D2 PAL_LINE(GPIOD, 2)
+# define D3 PAL_LINE(GPIOD, 3)
+# define D4 PAL_LINE(GPIOD, 4)
+# define D5 PAL_LINE(GPIOD, 5)
+# define D6 PAL_LINE(GPIOD, 6)
+# define D7 PAL_LINE(GPIOD, 7)
+# define D8 PAL_LINE(GPIOD, 8)
+# define D9 PAL_LINE(GPIOD, 9)
+# define D10 PAL_LINE(GPIOD, 10)
+# define D11 PAL_LINE(GPIOD, 11)
+# define D12 PAL_LINE(GPIOD, 12)
+# define D13 PAL_LINE(GPIOD, 13)
+# define D14 PAL_LINE(GPIOD, 14)
+# define D15 PAL_LINE(GPIOD, 15)
+# define D16 PAL_LINE(GPIOD, 16)
+# define D17 PAL_LINE(GPIOD, 17)
+# define D18 PAL_LINE(GPIOD, 18)
+# define D19 PAL_LINE(GPIOD, 19)
+# define D20 PAL_LINE(GPIOD, 20)
+# define D21 PAL_LINE(GPIOD, 21)
+# define D22 PAL_LINE(GPIOD, 22)
+# define D23 PAL_LINE(GPIOD, 23)
+# define D24 PAL_LINE(GPIOD, 24)
+# define D25 PAL_LINE(GPIOD, 25)
+# define D26 PAL_LINE(GPIOD, 26)
+# define D27 PAL_LINE(GPIOD, 27)
+# define D28 PAL_LINE(GPIOD, 28)
+# define D29 PAL_LINE(GPIOD, 29)
+# define D30 PAL_LINE(GPIOD, 30)
+# define D31 PAL_LINE(GPIOD, 31)
+# define D32 PAL_LINE(GPIOD, 32)
+# define E0 PAL_LINE(GPIOE, 0)
+# define E1 PAL_LINE(GPIOE, 1)
+# define E2 PAL_LINE(GPIOE, 2)
+# define E3 PAL_LINE(GPIOE, 3)
+# define E4 PAL_LINE(GPIOE, 4)
+# define E5 PAL_LINE(GPIOE, 5)
+# define E6 PAL_LINE(GPIOE, 6)
+# define E7 PAL_LINE(GPIOE, 7)
+# define E8 PAL_LINE(GPIOE, 8)
+# define E9 PAL_LINE(GPIOE, 9)
+# define E10 PAL_LINE(GPIOE, 10)
+# define E11 PAL_LINE(GPIOE, 11)
+# define E12 PAL_LINE(GPIOE, 12)
+# define E13 PAL_LINE(GPIOE, 13)
+# define E14 PAL_LINE(GPIOE, 14)
+# define E15 PAL_LINE(GPIOE, 15)
+# define E16 PAL_LINE(GPIOE, 16)
+# define E17 PAL_LINE(GPIOE, 17)
+# define E18 PAL_LINE(GPIOE, 18)
+# define E19 PAL_LINE(GPIOE, 19)
+# define E20 PAL_LINE(GPIOE, 20)
+# define E21 PAL_LINE(GPIOE, 21)
+# define E22 PAL_LINE(GPIOE, 22)
+# define E23 PAL_LINE(GPIOE, 23)
+# define E24 PAL_LINE(GPIOE, 24)
+# define E25 PAL_LINE(GPIOE, 25)
+# define E26 PAL_LINE(GPIOE, 26)
+# define E27 PAL_LINE(GPIOE, 27)
+# define E28 PAL_LINE(GPIOE, 28)
+# define E29 PAL_LINE(GPIOE, 29)
+# define E30 PAL_LINE(GPIOE, 30)
+# define E31 PAL_LINE(GPIOE, 31)
+# define E32 PAL_LINE(GPIOE, 32)
+# define F0 PAL_LINE(GPIOF, 0)
+# define F1 PAL_LINE(GPIOF, 1)
+# define F2 PAL_LINE(GPIOF, 2)
+# define F3 PAL_LINE(GPIOF, 3)
+# define F4 PAL_LINE(GPIOF, 4)
+# define F5 PAL_LINE(GPIOF, 5)
+# define F6 PAL_LINE(GPIOF, 6)
+# define F7 PAL_LINE(GPIOF, 7)
+# define F8 PAL_LINE(GPIOF, 8)
+# define F9 PAL_LINE(GPIOF, 9)
+# define F10 PAL_LINE(GPIOF, 10)
+# define F11 PAL_LINE(GPIOF, 11)
+# define F12 PAL_LINE(GPIOF, 12)
+# define F13 PAL_LINE(GPIOF, 13)
+# define F14 PAL_LINE(GPIOF, 14)
+# define F15 PAL_LINE(GPIOF, 15)
+# define G0 PAL_LINE(GPIOG, 0)
+# define G1 PAL_LINE(GPIOG, 1)
+# define G2 PAL_LINE(GPIOG, 2)
+# define G3 PAL_LINE(GPIOG, 3)
+# define G4 PAL_LINE(GPIOG, 4)
+# define G5 PAL_LINE(GPIOG, 5)
+# define G6 PAL_LINE(GPIOG, 6)
+# define G7 PAL_LINE(GPIOG, 7)
+# define G8 PAL_LINE(GPIOG, 8)
+# define G9 PAL_LINE(GPIOG, 9)
+# define G10 PAL_LINE(GPIOG, 10)
+# define G11 PAL_LINE(GPIOG, 11)
+# define G12 PAL_LINE(GPIOG, 12)
+# define G13 PAL_LINE(GPIOG, 13)
+# define G14 PAL_LINE(GPIOG, 14)
+# define G15 PAL_LINE(GPIOG, 15)
+# define H0 PAL_LINE(GPIOH, 0)
+# define H1 PAL_LINE(GPIOH, 1)
+# define H2 PAL_LINE(GPIOH, 2)
+# define H3 PAL_LINE(GPIOH, 3)
+# define H4 PAL_LINE(GPIOH, 4)
+# define H5 PAL_LINE(GPIOH, 5)
+# define H6 PAL_LINE(GPIOH, 6)
+# define H7 PAL_LINE(GPIOH, 7)
+# define H8 PAL_LINE(GPIOH, 8)
+# define H9 PAL_LINE(GPIOH, 9)
+# define H10 PAL_LINE(GPIOH, 10)
+# define H11 PAL_LINE(GPIOH, 11)
+# define H12 PAL_LINE(GPIOH, 12)
+# define H13 PAL_LINE(GPIOH, 13)
+# define H14 PAL_LINE(GPIOH, 14)
+# define H15 PAL_LINE(GPIOH, 15)
+# define I0 PAL_LINE(GPIOI, 0)
+# define I1 PAL_LINE(GPIOI, 1)
+# define I2 PAL_LINE(GPIOI, 2)
+# define I3 PAL_LINE(GPIOI, 3)
+# define I4 PAL_LINE(GPIOI, 4)
+# define I5 PAL_LINE(GPIOI, 5)
+# define I6 PAL_LINE(GPIOI, 6)
+# define I7 PAL_LINE(GPIOI, 7)
+# define I8 PAL_LINE(GPIOI, 8)
+# define I9 PAL_LINE(GPIOI, 9)
+# define I10 PAL_LINE(GPIOI, 10)
+# define I11 PAL_LINE(GPIOI, 11)
+# define I12 PAL_LINE(GPIOI, 12)
+# define I13 PAL_LINE(GPIOI, 13)
+# define I14 PAL_LINE(GPIOI, 14)
+# define I15 PAL_LINE(GPIOI, 15)
+# define J0 PAL_LINE(GPIOJ, 0)
+# define J1 PAL_LINE(GPIOJ, 1)
+# define J2 PAL_LINE(GPIOJ, 2)
+# define J3 PAL_LINE(GPIOJ, 3)
+# define J4 PAL_LINE(GPIOJ, 4)
+# define J5 PAL_LINE(GPIOJ, 5)
+# define J6 PAL_LINE(GPIOJ, 6)
+# define J7 PAL_LINE(GPIOJ, 7)
+# define J8 PAL_LINE(GPIOJ, 8)
+# define J9 PAL_LINE(GPIOJ, 9)
+# define J10 PAL_LINE(GPIOJ, 10)
+# define J11 PAL_LINE(GPIOJ, 11)
+# define J12 PAL_LINE(GPIOJ, 12)
+# define J13 PAL_LINE(GPIOJ, 13)
+# define J14 PAL_LINE(GPIOJ, 14)
+# define J15 PAL_LINE(GPIOJ, 15)
-#define A0 PAL_LINE(GPIOA, 0)
-#define A1 PAL_LINE(GPIOA, 1)
-#define A2 PAL_LINE(GPIOA, 2)
-#define A3 PAL_LINE(GPIOA, 3)
-#define A4 PAL_LINE(GPIOA, 4)
-#define A5 PAL_LINE(GPIOA, 5)
-#define A6 PAL_LINE(GPIOA, 6)
-#define A7 PAL_LINE(GPIOA, 7)
-#define A8 PAL_LINE(GPIOA, 8)
-#define A9 PAL_LINE(GPIOA, 9)
-#define A10 PAL_LINE(GPIOA, 10)
-#define A11 PAL_LINE(GPIOA, 11)
-#define A12 PAL_LINE(GPIOA, 12)
-#define A13 PAL_LINE(GPIOA, 13)
-#define A14 PAL_LINE(GPIOA, 14)
-#define A15 PAL_LINE(GPIOA, 15)
-#define A16 PAL_LINE(GPIOA, 16)
-#define A17 PAL_LINE(GPIOA, 17)
-#define A18 PAL_LINE(GPIOA, 18)
-#define A19 PAL_LINE(GPIOA, 19)
-#define A20 PAL_LINE(GPIOA, 20)
-#define A21 PAL_LINE(GPIOA, 21)
-#define A22 PAL_LINE(GPIOA, 22)
-#define A23 PAL_LINE(GPIOA, 23)
-#define A24 PAL_LINE(GPIOA, 24)
-#define A25 PAL_LINE(GPIOA, 25)
-#define A26 PAL_LINE(GPIOA, 26)
-#define A27 PAL_LINE(GPIOA, 27)
-#define A28 PAL_LINE(GPIOA, 28)
-#define A29 PAL_LINE(GPIOA, 29)
-#define A30 PAL_LINE(GPIOA, 30)
-#define A31 PAL_LINE(GPIOA, 31)
-#define A32 PAL_LINE(GPIOA, 32)
-#define B0 PAL_LINE(GPIOB, 0)
-#define B1 PAL_LINE(GPIOB, 1)
-#define B2 PAL_LINE(GPIOB, 2)
-#define B3 PAL_LINE(GPIOB, 3)
-#define B4 PAL_LINE(GPIOB, 4)
-#define B5 PAL_LINE(GPIOB, 5)
-#define B6 PAL_LINE(GPIOB, 6)
-#define B7 PAL_LINE(GPIOB, 7)
-#define B8 PAL_LINE(GPIOB, 8)
-#define B9 PAL_LINE(GPIOB, 9)
-#define B10 PAL_LINE(GPIOB, 10)
-#define B11 PAL_LINE(GPIOB, 11)
-#define B12 PAL_LINE(GPIOB, 12)
-#define B13 PAL_LINE(GPIOB, 13)
-#define B14 PAL_LINE(GPIOB, 14)
-#define B15 PAL_LINE(GPIOB, 15)
-#define B16 PAL_LINE(GPIOB, 16)
-#define B17 PAL_LINE(GPIOB, 17)
-#define B18 PAL_LINE(GPIOB, 18)
-#define B19 PAL_LINE(GPIOB, 19)
-#define B20 PAL_LINE(GPIOB, 20)
-#define B21 PAL_LINE(GPIOB, 21)
-#define B22 PAL_LINE(GPIOB, 22)
-#define B23 PAL_LINE(GPIOB, 23)
-#define B24 PAL_LINE(GPIOB, 24)
-#define B25 PAL_LINE(GPIOB, 25)
-#define B26 PAL_LINE(GPIOB, 26)
-#define B27 PAL_LINE(GPIOB, 27)
-#define B28 PAL_LINE(GPIOB, 28)
-#define B29 PAL_LINE(GPIOB, 29)
-#define B30 PAL_LINE(GPIOB, 30)
-#define B31 PAL_LINE(GPIOB, 31)
-#define B32 PAL_LINE(GPIOB, 32)
-#define C0 PAL_LINE(GPIOC, 0)
-#define C1 PAL_LINE(GPIOC, 1)
-#define C2 PAL_LINE(GPIOC, 2)
-#define C3 PAL_LINE(GPIOC, 3)
-#define C4 PAL_LINE(GPIOC, 4)
-#define C5 PAL_LINE(GPIOC, 5)
-#define C6 PAL_LINE(GPIOC, 6)
-#define C7 PAL_LINE(GPIOC, 7)
-#define C8 PAL_LINE(GPIOC, 8)
-#define C9 PAL_LINE(GPIOC, 9)
-#define C10 PAL_LINE(GPIOC, 10)
-#define C11 PAL_LINE(GPIOC, 11)
-#define C12 PAL_LINE(GPIOC, 12)
-#define C13 PAL_LINE(GPIOC, 13)
-#define C14 PAL_LINE(GPIOC, 14)
-#define C15 PAL_LINE(GPIOC, 15)
-#define C16 PAL_LINE(GPIOC, 16)
-#define C17 PAL_LINE(GPIOC, 17)
-#define C18 PAL_LINE(GPIOC, 18)
-#define C19 PAL_LINE(GPIOC, 19)
-#define C20 PAL_LINE(GPIOC, 20)
-#define C21 PAL_LINE(GPIOC, 21)
-#define C22 PAL_LINE(GPIOC, 22)
-#define C23 PAL_LINE(GPIOC, 23)
-#define C24 PAL_LINE(GPIOC, 24)
-#define C25 PAL_LINE(GPIOC, 25)
-#define C26 PAL_LINE(GPIOC, 26)
-#define C27 PAL_LINE(GPIOC, 27)
-#define C28 PAL_LINE(GPIOC, 28)
-#define C29 PAL_LINE(GPIOC, 29)
-#define C30 PAL_LINE(GPIOC, 30)
-#define C31 PAL_LINE(GPIOC, 31)
-#define C32 PAL_LINE(GPIOC, 32)
-#define D0 PAL_LINE(GPIOD, 0)
-#define D1 PAL_LINE(GPIOD, 1)
-#define D2 PAL_LINE(GPIOD, 2)
-#define D3 PAL_LINE(GPIOD, 3)
-#define D4 PAL_LINE(GPIOD, 4)
-#define D5 PAL_LINE(GPIOD, 5)
-#define D6 PAL_LINE(GPIOD, 6)
-#define D7 PAL_LINE(GPIOD, 7)
-#define D8 PAL_LINE(GPIOD, 8)
-#define D9 PAL_LINE(GPIOD, 9)
-#define D10 PAL_LINE(GPIOD, 10)
-#define D11 PAL_LINE(GPIOD, 11)
-#define D12 PAL_LINE(GPIOD, 12)
-#define D13 PAL_LINE(GPIOD, 13)
-#define D14 PAL_LINE(GPIOD, 14)
-#define D15 PAL_LINE(GPIOD, 15)
-#define D16 PAL_LINE(GPIOD, 16)
-#define D17 PAL_LINE(GPIOD, 17)
-#define D18 PAL_LINE(GPIOD, 18)
-#define D19 PAL_LINE(GPIOD, 19)
-#define D20 PAL_LINE(GPIOD, 20)
-#define D21 PAL_LINE(GPIOD, 21)
-#define D22 PAL_LINE(GPIOD, 22)
-#define D23 PAL_LINE(GPIOD, 23)
-#define D24 PAL_LINE(GPIOD, 24)
-#define D25 PAL_LINE(GPIOD, 25)
-#define D26 PAL_LINE(GPIOD, 26)
-#define D27 PAL_LINE(GPIOD, 27)
-#define D28 PAL_LINE(GPIOD, 28)
-#define D29 PAL_LINE(GPIOD, 29)
-#define D30 PAL_LINE(GPIOD, 30)
-#define D31 PAL_LINE(GPIOD, 31)
-#define D32 PAL_LINE(GPIOD, 32)
-#define E0 PAL_LINE(GPIOE, 0)
-#define E1 PAL_LINE(GPIOE, 1)
-#define E2 PAL_LINE(GPIOE, 2)
-#define E3 PAL_LINE(GPIOE, 3)
-#define E4 PAL_LINE(GPIOE, 4)
-#define E5 PAL_LINE(GPIOE, 5)
-#define E6 PAL_LINE(GPIOE, 6)
-#define E7 PAL_LINE(GPIOE, 7)
-#define E8 PAL_LINE(GPIOE, 8)
-#define E9 PAL_LINE(GPIOE, 9)
-#define E10 PAL_LINE(GPIOE, 10)
-#define E11 PAL_LINE(GPIOE, 11)
-#define E12 PAL_LINE(GPIOE, 12)
-#define E13 PAL_LINE(GPIOE, 13)
-#define E14 PAL_LINE(GPIOE, 14)
-#define E15 PAL_LINE(GPIOE, 15)
-#define E16 PAL_LINE(GPIOE, 16)
-#define E17 PAL_LINE(GPIOE, 17)
-#define E18 PAL_LINE(GPIOE, 18)
-#define E19 PAL_LINE(GPIOE, 19)
-#define E20 PAL_LINE(GPIOE, 20)
-#define E21 PAL_LINE(GPIOE, 21)
-#define E22 PAL_LINE(GPIOE, 22)
-#define E23 PAL_LINE(GPIOE, 23)
-#define E24 PAL_LINE(GPIOE, 24)
-#define E25 PAL_LINE(GPIOE, 25)
-#define E26 PAL_LINE(GPIOE, 26)
-#define E27 PAL_LINE(GPIOE, 27)
-#define E28 PAL_LINE(GPIOE, 28)
-#define E29 PAL_LINE(GPIOE, 29)
-#define E30 PAL_LINE(GPIOE, 30)
-#define E31 PAL_LINE(GPIOE, 31)
-#define E32 PAL_LINE(GPIOE, 32)
-#define F0 PAL_LINE(GPIOF, 0)
-#define F1 PAL_LINE(GPIOF, 1)
-#define F2 PAL_LINE(GPIOF, 2)
-#define F3 PAL_LINE(GPIOF, 3)
-#define F4 PAL_LINE(GPIOF, 4)
-#define F5 PAL_LINE(GPIOF, 5)
-#define F6 PAL_LINE(GPIOF, 6)
-#define F7 PAL_LINE(GPIOF, 7)
-#define F8 PAL_LINE(GPIOF, 8)
-#define F9 PAL_LINE(GPIOF, 9)
-#define F10 PAL_LINE(GPIOF, 10)
-#define F11 PAL_LINE(GPIOF, 11)
-#define F12 PAL_LINE(GPIOF, 12)
-#define F13 PAL_LINE(GPIOF, 13)
-#define F14 PAL_LINE(GPIOF, 14)
-#define F15 PAL_LINE(GPIOF, 15)
-#define G0 PAL_LINE(GPIOG, 0)
-#define G1 PAL_LINE(GPIOG, 1)
-#define G2 PAL_LINE(GPIOG, 2)
-#define G3 PAL_LINE(GPIOG, 3)
-#define G4 PAL_LINE(GPIOG, 4)
-#define G5 PAL_LINE(GPIOG, 5)
-#define G6 PAL_LINE(GPIOG, 6)
-#define G7 PAL_LINE(GPIOG, 7)
-#define G8 PAL_LINE(GPIOG, 8)
-#define G9 PAL_LINE(GPIOG, 9)
-#define G10 PAL_LINE(GPIOG, 10)
-#define G11 PAL_LINE(GPIOG, 11)
-#define G12 PAL_LINE(GPIOG, 12)
-#define G13 PAL_LINE(GPIOG, 13)
-#define G14 PAL_LINE(GPIOG, 14)
-#define G15 PAL_LINE(GPIOG, 15)
-#define H0 PAL_LINE(GPIOH, 0)
-#define H1 PAL_LINE(GPIOH, 1)
-#define H2 PAL_LINE(GPIOH, 2)
-#define H3 PAL_LINE(GPIOH, 3)
-#define H4 PAL_LINE(GPIOH, 4)
-#define H5 PAL_LINE(GPIOH, 5)
-#define H6 PAL_LINE(GPIOH, 6)
-#define H7 PAL_LINE(GPIOH, 7)
-#define H8 PAL_LINE(GPIOH, 8)
-#define H9 PAL_LINE(GPIOH, 9)
-#define H10 PAL_LINE(GPIOH, 10)
-#define H11 PAL_LINE(GPIOH, 11)
-#define H12 PAL_LINE(GPIOH, 12)
-#define H13 PAL_LINE(GPIOH, 13)
-#define H14 PAL_LINE(GPIOH, 14)
-#define H15 PAL_LINE(GPIOH, 15)
-#define I0 PAL_LINE(GPIOI, 0)
-#define I1 PAL_LINE(GPIOI, 1)
-#define I2 PAL_LINE(GPIOI, 2)
-#define I3 PAL_LINE(GPIOI, 3)
-#define I4 PAL_LINE(GPIOI, 4)
-#define I5 PAL_LINE(GPIOI, 5)
-#define I6 PAL_LINE(GPIOI, 6)
-#define I7 PAL_LINE(GPIOI, 7)
-#define I8 PAL_LINE(GPIOI, 8)
-#define I9 PAL_LINE(GPIOI, 9)
-#define I10 PAL_LINE(GPIOI, 10)
-#define I11 PAL_LINE(GPIOI, 11)
-#define I12 PAL_LINE(GPIOI, 12)
-#define I13 PAL_LINE(GPIOI, 13)
-#define I14 PAL_LINE(GPIOI, 14)
-#define I15 PAL_LINE(GPIOI, 15)
-#define J0 PAL_LINE(GPIOJ, 0)
-#define J1 PAL_LINE(GPIOJ, 1)
-#define J2 PAL_LINE(GPIOJ, 2)
-#define J3 PAL_LINE(GPIOJ, 3)
-#define J4 PAL_LINE(GPIOJ, 4)
-#define J5 PAL_LINE(GPIOJ, 5)
-#define J6 PAL_LINE(GPIOJ, 6)
-#define J7 PAL_LINE(GPIOJ, 7)
-#define J8 PAL_LINE(GPIOJ, 8)
-#define J9 PAL_LINE(GPIOJ, 9)
-#define J10 PAL_LINE(GPIOJ, 10)
-#define J11 PAL_LINE(GPIOJ, 11)
-#define J12 PAL_LINE(GPIOJ, 12)
-#define J13 PAL_LINE(GPIOJ, 13)
-#define J14 PAL_LINE(GPIOJ, 14)
-#define J15 PAL_LINE(GPIOJ, 15)
// Keyboards can `#define KEYBOARD_REQUIRES_GPIOK` if they need to access GPIO-K pins. These conflict with a whole
// bunch of layout definitions, so it's intentionally left out unless absolutely required -- in that case, the
// keyboard designer should use a different symbol when defining their layout macros.
-#ifdef KEYBOARD_REQUIRES_GPIOK
-# define K0 PAL_LINE(GPIOK, 0)
-# define K1 PAL_LINE(GPIOK, 1)
-# define K2 PAL_LINE(GPIOK, 2)
-# define K3 PAL_LINE(GPIOK, 3)
-# define K4 PAL_LINE(GPIOK, 4)
-# define K5 PAL_LINE(GPIOK, 5)
-# define K6 PAL_LINE(GPIOK, 6)
-# define K7 PAL_LINE(GPIOK, 7)
-# define K8 PAL_LINE(GPIOK, 8)
-# define K9 PAL_LINE(GPIOK, 9)
-# define K10 PAL_LINE(GPIOK, 10)
-# define K11 PAL_LINE(GPIOK, 11)
-# define K12 PAL_LINE(GPIOK, 12)
-# define K13 PAL_LINE(GPIOK, 13)
-# define K14 PAL_LINE(GPIOK, 14)
-# define K15 PAL_LINE(GPIOK, 15)
+# ifdef KEYBOARD_REQUIRES_GPIOK
+# define K0 PAL_LINE(GPIOK, 0)
+# define K1 PAL_LINE(GPIOK, 1)
+# define K2 PAL_LINE(GPIOK, 2)
+# define K3 PAL_LINE(GPIOK, 3)
+# define K4 PAL_LINE(GPIOK, 4)
+# define K5 PAL_LINE(GPIOK, 5)
+# define K6 PAL_LINE(GPIOK, 6)
+# define K7 PAL_LINE(GPIOK, 7)
+# define K8 PAL_LINE(GPIOK, 8)
+# define K9 PAL_LINE(GPIOK, 9)
+# define K10 PAL_LINE(GPIOK, 10)
+# define K11 PAL_LINE(GPIOK, 11)
+# define K12 PAL_LINE(GPIOK, 12)
+# define K13 PAL_LINE(GPIOK, 13)
+# define K14 PAL_LINE(GPIOK, 14)
+# define K15 PAL_LINE(GPIOK, 15)
+# endif
#endif
diff --git a/platforms/chibios/_util.h b/platforms/chibios/_util.h
new file mode 100644
index 0000000000..64eb62fa15
--- /dev/null
+++ b/platforms/chibios/_util.h
@@ -0,0 +1,9 @@
+// Copyright 2023 Nick Brassel (@tzarc)
+// SPDX-License-Identifier: GPL-2.0-or-later
+#pragma once
+
+#define RESIDENT_IN_RAM(funcname) __attribute__((section(".ram0_init." #funcname), noinline)) funcname
+
+#if __has_include_next("_util.h")
+# include_next "_util.h"
+#endif
diff --git a/platforms/chibios/boards/BONSAI_C4/configs/config.h b/platforms/chibios/boards/BONSAI_C4/configs/config.h
index c5dbb25c45..193b028bde 100644
--- a/platforms/chibios/boards/BONSAI_C4/configs/config.h
+++ b/platforms/chibios/boards/BONSAI_C4/configs/config.h
@@ -24,11 +24,9 @@
// FRAM configuration
#ifndef EXTERNAL_EEPROM_SPI_SLAVE_SELECT_PIN
+# define EEPROM_SPI_MB85RS64V
# define EXTERNAL_EEPROM_SPI_SLAVE_SELECT_PIN PAL_LINE(GPIOA, 0)
# define EXTERNAL_EEPROM_SPI_CLOCK_DIVISOR 8 // 96MHz / 8 = 12MHz; max supported by MB85R64 is 20MHz
-# define EXTERNAL_EEPROM_BYTE_COUNT 8192
-# define EXTERNAL_EEPROM_PAGE_SIZE 64 // does not matter for FRAM, just sets the RAM buffer size in STM32F chip
-# define DYNAMIC_KEYMAP_EEPROM_MAX_ADDR 8191
#endif
// External flash configuration
@@ -66,7 +64,7 @@
#endif
// WS2812-style LED control on pin A10
-#ifdef WS2812_DRIVER_PWM
+#ifdef WS2812_PWM
# ifndef WS2812_DI_PIN
# define WS2812_DI_PIN PAL_LINE(GPIOA, 10)
# endif
diff --git a/platforms/chibios/boards/BONSAI_C4/configs/halconf.h b/platforms/chibios/boards/BONSAI_C4/configs/halconf.h
index 7887e7c9ba..6bab6fbcff 100644
--- a/platforms/chibios/boards/BONSAI_C4/configs/halconf.h
+++ b/platforms/chibios/boards/BONSAI_C4/configs/halconf.h
@@ -32,7 +32,7 @@
# endif
#endif
-#ifdef WS2812_DRIVER_PWM
+#ifdef WS2812_PWM
# ifndef HAL_USE_PWM
# define HAL_USE_PWM TRUE
# endif
diff --git a/platforms/chibios/boards/GENERIC_PROMICRO_RP2040/configs/mcuconf.h b/platforms/chibios/boards/GENERIC_PROMICRO_RP2040/configs/mcuconf.h
index 8621807cbb..4f39793264 100644
--- a/platforms/chibios/boards/GENERIC_PROMICRO_RP2040/configs/mcuconf.h
+++ b/platforms/chibios/boards/GENERIC_PROMICRO_RP2040/configs/mcuconf.h
@@ -54,6 +54,7 @@
#define RP_IRQ_USB0_PRIORITY 3
#define RP_IRQ_I2C0_PRIORITY 2
#define RP_IRQ_I2C1_PRIORITY 2
+#define RP_IRQ_RTC_PRIORITY 3
/*
* ADC driver system settings.
diff --git a/platforms/chibios/boards/GENERIC_RP_RP2040/configs/mcuconf.h b/platforms/chibios/boards/GENERIC_RP_RP2040/configs/mcuconf.h
index 902f9b5005..3a10f67727 100644
--- a/platforms/chibios/boards/GENERIC_RP_RP2040/configs/mcuconf.h
+++ b/platforms/chibios/boards/GENERIC_RP_RP2040/configs/mcuconf.h
@@ -54,6 +54,7 @@
#define RP_IRQ_USB0_PRIORITY 3
#define RP_IRQ_I2C0_PRIORITY 2
#define RP_IRQ_I2C1_PRIORITY 2
+#define RP_IRQ_RTC_PRIORITY 3
/*
* ADC driver system settings.
diff --git a/platforms/chibios/boards/GENERIC_WB32_F3G71XX/board/board.c b/platforms/chibios/boards/GENERIC_WB32_F3G71XX/board/board.c
index f74c9e8be7..80472b88f7 100644
--- a/platforms/chibios/boards/GENERIC_WB32_F3G71XX/board/board.c
+++ b/platforms/chibios/boards/GENERIC_WB32_F3G71XX/board/board.c
@@ -73,6 +73,7 @@ void __early_init(void) {
wb32_clock_init();
wb32_gpio_init();
}
+
/**
* @brief Board-specific initialization code.
* @note You can add your board-specific code here.
@@ -80,7 +81,3 @@ void __early_init(void) {
void boardInit(void) {
}
-
-void restart_usb_driver(USBDriver *usbp) {
- // Do nothing. Restarting the USB driver on these boards breaks it.
-}
diff --git a/platforms/chibios/boards/GENERIC_WB32_FQ95XX/board/board.c b/platforms/chibios/boards/GENERIC_WB32_FQ95XX/board/board.c
index a99537fc27..5701fd2e0d 100644
--- a/platforms/chibios/boards/GENERIC_WB32_FQ95XX/board/board.c
+++ b/platforms/chibios/boards/GENERIC_WB32_FQ95XX/board/board.c
@@ -73,6 +73,7 @@ void __early_init(void) {
wb32_clock_init();
wb32_gpio_init();
}
+
/**
* @brief Board-specific initialization code.
* @note You can add your board-specific code here.
@@ -80,7 +81,3 @@ void __early_init(void) {
void boardInit(void) {
}
-
-void restart_usb_driver(USBDriver *usbp) {
- // Do nothing. Restarting the USB driver on these boards breaks it.
-}
diff --git a/platforms/chibios/boards/QMK_BLOK/configs/mcuconf.h b/platforms/chibios/boards/QMK_BLOK/configs/mcuconf.h
index 0c2ef592d6..d5dec0fcd0 100644
--- a/platforms/chibios/boards/QMK_BLOK/configs/mcuconf.h
+++ b/platforms/chibios/boards/QMK_BLOK/configs/mcuconf.h
@@ -54,6 +54,7 @@
#define RP_IRQ_USB0_PRIORITY 3
#define RP_IRQ_I2C0_PRIORITY 2
#define RP_IRQ_I2C1_PRIORITY 2
+#define RP_IRQ_RTC_PRIORITY 3
/*
* ADC driver system settings.
diff --git a/platforms/chibios/boards/QMK_PM2040/configs/mcuconf.h b/platforms/chibios/boards/QMK_PM2040/configs/mcuconf.h
index 493dcf6434..e3351deb3b 100644
--- a/platforms/chibios/boards/QMK_PM2040/configs/mcuconf.h
+++ b/platforms/chibios/boards/QMK_PM2040/configs/mcuconf.h
@@ -54,6 +54,7 @@
#define RP_IRQ_USB0_PRIORITY 3
#define RP_IRQ_I2C0_PRIORITY 2
#define RP_IRQ_I2C1_PRIORITY 2
+#define RP_IRQ_RTC_PRIORITY 3
/*
* ADC driver system settings.
diff --git a/platforms/chibios/bootloader.mk b/platforms/chibios/bootloader.mk
index fc898e7699..5b6edd73ad 100644
--- a/platforms/chibios/bootloader.mk
+++ b/platforms/chibios/bootloader.mk
@@ -107,6 +107,7 @@ ifeq ($(strip $(BOOTLOADER)), tinyuf2)
endif
ifeq ($(strip $(BOOTLOADER)), uf2boot)
OPT_DEFS += -DBOOTLOADER_UF2BOOT
+ BOARD = STM32_F103_STM32DUINO
BOOTLOADER_TYPE = uf2boot
FIRMWARE_FORMAT = uf2
endif
diff --git a/platforms/chibios/chibios_config.h b/platforms/chibios/chibios_config.h
index 1f8a7842fe..f1636f9da0 100644
--- a/platforms/chibios/chibios_config.h
+++ b/platforms/chibios/chibios_config.h
@@ -37,7 +37,9 @@
# define BACKLIGHT_PAL_MODE (PAL_MODE_ALTERNATE_PWM | PAL_RP_PAD_DRIVE12 | PAL_RP_GPIO_OE)
# endif
# define BACKLIGHT_PWM_COUNTER_FREQUENCY 1000000
-# define BACKLIGHT_PWM_PERIOD BACKLIGHT_PWM_COUNTER_FREQUENCY / 2048
+# ifndef BACKLIGHT_PWM_PERIOD
+# define BACKLIGHT_PWM_PERIOD BACKLIGHT_PWM_COUNTER_FREQUENCY / 2048
+# endif
# ifndef AUDIO_PWM_PAL_MODE
# define AUDIO_PWM_PAL_MODE (PAL_MODE_ALTERNATE_PWM | PAL_RP_PAD_DRIVE12 | PAL_RP_GPIO_OE)
diff --git a/platforms/chibios/drivers/audio_dac_additive.c b/platforms/chibios/drivers/audio_dac_additive.c
index 22e4fa2608..26e044b048 100644
--- a/platforms/chibios/drivers/audio_dac_additive.c
+++ b/platforms/chibios/drivers/audio_dac_additive.c
@@ -84,7 +84,7 @@ static const dacsample_t dac_buffer_trapezoid[AUDIO_DAC_BUFFER_SIZE] = {0x0, 0
0xfff, 0xfdf, 0xf7f, 0xf1f, 0xebf, 0xe5f, 0xdff, 0xd9f, 0xd3f, 0xcdf, 0xc7f, 0xc1f, 0xbbf, 0xb5f, 0xaff, 0xa9f, 0xa3f, 0x9df, 0x97f, 0x91f, 0x8bf, 0x85f, 0x7ff, 0x79f, 0x73f, 0x6df, 0x67f, 0x61f, 0x5bf, 0x55f, 0x4ff, 0x49f, 0x43f, 0x3df, 0x37f, 0x31f, 0x2bf, 0x25f, 0x1ff, 0x19f, 0x13f, 0xdf, 0x7f, 0x1f, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0};
#endif // AUDIO_DAC_SAMPLE_WAVEFORM_TRAPEZOID
-static dacsample_t dac_buffer_empty[AUDIO_DAC_BUFFER_SIZE] = {AUDIO_DAC_OFF_VALUE};
+static dacsample_t dac_buffer[AUDIO_DAC_BUFFER_SIZE];
/* keep track of the sample position for for each frequency */
static float dac_if[AUDIO_MAX_SIMULTANEOUS_TONES] = {0.0};
@@ -121,24 +121,27 @@ __attribute__((weak)) uint16_t dac_value_generate(void) {
/* doing additive wave synthesis over all currently playing tones = adding up
* sine-wave-samples for each frequency, scaled by the number of active tones
*/
- uint16_t value = 0;
- float frequency = 0.0f;
+ uint_fast16_t value = 0;
+ float frequency = 0.0f;
- for (uint8_t i = 0; i < active_tones_snapshot_length; i++) {
+ for (size_t i = 0; i < active_tones_snapshot_length; i++) {
/* Note: a user implementation does not have to rely on the active_tones_snapshot, but
* could directly query the active frequencies through audio_get_processed_frequency */
frequency = active_tones_snapshot[i];
- dac_if[i] = dac_if[i] + ((frequency * AUDIO_DAC_BUFFER_SIZE) / AUDIO_DAC_SAMPLE_RATE) * 2 / 3;
+ float new_dac_if = dac_if[i];
+ new_dac_if += frequency * ((float)AUDIO_DAC_BUFFER_SIZE / AUDIO_DAC_SAMPLE_RATE * 2.0f / 3.0f);
/*Note: the 2/3 are necessary to get the correct frequencies on the
* DAC output (as measured with an oscilloscope), since the gpt
* timer runs with 3*AUDIO_DAC_SAMPLE_RATE; and the DAC callback
* is called twice per conversion.*/
- dac_if[i] = fmodf(dac_if[i], AUDIO_DAC_BUFFER_SIZE);
+ while (new_dac_if >= AUDIO_DAC_BUFFER_SIZE)
+ new_dac_if -= AUDIO_DAC_BUFFER_SIZE;
+ dac_if[i] = new_dac_if;
// Wavetable generation/lookup
- uint16_t dac_i = (uint16_t)dac_if[i];
+ size_t dac_i = (size_t)new_dac_if;
#if defined(AUDIO_DAC_SAMPLE_WAVEFORM_SINE)
value += dac_buffer_sine[dac_i] / active_tones_snapshot_length;
@@ -308,10 +311,17 @@ void audio_driver_initialize(void) {
DACD1.params->dac->CR &= ~DAC_CR_BOFF1;
DACD2.params->dac->CR &= ~DAC_CR_BOFF2;
+ /* Start the DAC output with all off values. This buffer will then get fed
+ * with samples from dac_end, which will play notes.
+ */
+ for (size_t i = 0; i < AUDIO_DAC_BUFFER_SIZE; i++) {
+ dac_buffer[i] = AUDIO_DAC_OFF_VALUE;
+ }
+
if (AUDIO_PIN == A4) {
- dacStartConversion(&DACD1, &dac_conv_cfg, dac_buffer_empty, AUDIO_DAC_BUFFER_SIZE);
+ dacStartConversion(&DACD1, &dac_conv_cfg, dac_buffer, AUDIO_DAC_BUFFER_SIZE);
} else if (AUDIO_PIN == A5) {
- dacStartConversion(&DACD2, &dac_conv_cfg, dac_buffer_empty, AUDIO_DAC_BUFFER_SIZE);
+ dacStartConversion(&DACD2, &dac_conv_cfg, dac_buffer, AUDIO_DAC_BUFFER_SIZE);
}
// no inverted/out-of-phase waveform (yet?), only pulling AUDIO_PIN_ALT to AUDIO_DAC_OFF_VALUE
diff --git a/platforms/chibios/drivers/eeprom/eeprom_kinetis_flexram.c b/platforms/chibios/drivers/eeprom/eeprom_kinetis_flexram.c
index 6468cbf3fa..9cf956b2f7 100644
--- a/platforms/chibios/drivers/eeprom/eeprom_kinetis_flexram.c
+++ b/platforms/chibios/drivers/eeprom/eeprom_kinetis_flexram.c
@@ -146,7 +146,7 @@ uint32_t eeprom_read_dword(const uint32_t *addr) {
*
* FIXME: needs doc
*/
-void eeprom_read_block(void *buf, const void *addr, uint32_t len) {
+void eeprom_read_block(void *buf, const void *addr, size_t len) {
uint32_t offset = (uint32_t)addr;
uint8_t *dest = (uint8_t *)buf;
uint32_t end = offset + len;
@@ -271,7 +271,7 @@ void eeprom_write_dword(uint32_t *addr, uint32_t value) {
*
* FIXME: needs doc
*/
-void eeprom_write_block(const void *buf, void *addr, uint32_t len) {
+void eeprom_write_block(const void *buf, void *addr, size_t len) {
uint32_t offset = (uint32_t)addr;
const uint8_t *src = (const uint8_t *)buf;
@@ -480,7 +480,7 @@ uint32_t eeprom_read_dword(const uint32_t *addr) {
return eeprom_read_byte(p) | (eeprom_read_byte(p + 1) << 8) | (eeprom_read_byte(p + 2) << 16) | (eeprom_read_byte(p + 3) << 24);
}
-void eeprom_read_block(void *buf, const void *addr, uint32_t len) {
+void eeprom_read_block(void *buf, const void *addr, size_t len) {
const uint8_t *p = (const uint8_t *)addr;
uint8_t * dest = (uint8_t *)buf;
while (len--) {
@@ -506,7 +506,7 @@ void eeprom_write_dword(uint32_t *addr, uint32_t value) {
eeprom_write_byte(p, value >> 24);
}
-void eeprom_write_block(const void *buf, void *addr, uint32_t len) {
+void eeprom_write_block(const void *buf, void *addr, size_t len) {
uint8_t * p = (uint8_t *)addr;
const uint8_t *src = (const uint8_t *)buf;
while (len--) {
diff --git a/platforms/chibios/drivers/serial.c b/platforms/chibios/drivers/serial.c
index f087d0c2ed..f199716a2b 100644
--- a/platforms/chibios/drivers/serial.c
+++ b/platforms/chibios/drivers/serial.c
@@ -10,7 +10,7 @@
#include <hal.h>
// TODO: resolve/remove build warnings
-#if defined(RGBLIGHT_ENABLE) && defined(RGBLED_SPLIT) && defined(PROTOCOL_CHIBIOS) && defined(WS2812_DRIVER_BITBANG)
+#if defined(RGBLIGHT_ENABLE) && defined(RGBLED_SPLIT) && defined(PROTOCOL_CHIBIOS) && defined(WS2812_BITBANG)
# warning "RGBLED_SPLIT not supported with bitbang WS2812 driver"
#endif
diff --git a/platforms/chibios/drivers/spi_master.c b/platforms/chibios/drivers/spi_master.c
index c3ab0623f0..481a2e422a 100644
--- a/platforms/chibios/drivers/spi_master.c
+++ b/platforms/chibios/drivers/spi_master.c
@@ -18,14 +18,14 @@
#include "timer.h"
-static pin_t currentSlavePin = NO_PIN;
+static bool spiStarted = false;
-#if defined(K20x) || defined(KL2x) || defined(RP2040)
-static SPIConfig spiConfig = {NULL, 0, 0, 0};
-#else
-static SPIConfig spiConfig = {false, NULL, 0, 0, 0, 0};
+#if SPI_SELECT_MODE == SPI_SELECT_MODE_NONE
+static pin_t currentSlavePin;
#endif
+static SPIConfig spiConfig;
+
__attribute__((weak)) void spi_init(void) {
static bool is_initialised = false;
if (!is_initialised) {
@@ -33,28 +33,45 @@ __attribute__((weak)) void spi_init(void) {
// Try releasing special pins for a short time
setPinInput(SPI_SCK_PIN);
- setPinInput(SPI_MOSI_PIN);
- setPinInput(SPI_MISO_PIN);
+ if (SPI_MOSI_PIN != NO_PIN) {
+ setPinInput(SPI_MOSI_PIN);
+ }
+ if (SPI_MISO_PIN != NO_PIN) {
+ setPinInput(SPI_MISO_PIN);
+ }
chThdSleepMilliseconds(10);
#if defined(USE_GPIOV1)
palSetPadMode(PAL_PORT(SPI_SCK_PIN), PAL_PAD(SPI_SCK_PIN), SPI_SCK_PAL_MODE);
- palSetPadMode(PAL_PORT(SPI_MOSI_PIN), PAL_PAD(SPI_MOSI_PIN), SPI_MOSI_PAL_MODE);
- palSetPadMode(PAL_PORT(SPI_MISO_PIN), PAL_PAD(SPI_MISO_PIN), SPI_MISO_PAL_MODE);
+ if (SPI_MOSI_PIN != NO_PIN) {
+ palSetPadMode(PAL_PORT(SPI_MOSI_PIN), PAL_PAD(SPI_MOSI_PIN), SPI_MOSI_PAL_MODE);
+ }
+ if (SPI_MISO_PIN != NO_PIN) {
+ palSetPadMode(PAL_PORT(SPI_MISO_PIN), PAL_PAD(SPI_MISO_PIN), SPI_MISO_PAL_MODE);
+ }
#else
palSetPadMode(PAL_PORT(SPI_SCK_PIN), PAL_PAD(SPI_SCK_PIN), SPI_SCK_FLAGS);
- palSetPadMode(PAL_PORT(SPI_MOSI_PIN), PAL_PAD(SPI_MOSI_PIN), SPI_MOSI_FLAGS);
- palSetPadMode(PAL_PORT(SPI_MISO_PIN), PAL_PAD(SPI_MISO_PIN), SPI_MISO_FLAGS);
+ if (SPI_MOSI_PIN != NO_PIN) {
+ palSetPadMode(PAL_PORT(SPI_MOSI_PIN), PAL_PAD(SPI_MOSI_PIN), SPI_MOSI_FLAGS);
+ }
+ if (SPI_MISO_PIN != NO_PIN) {
+ palSetPadMode(PAL_PORT(SPI_MISO_PIN), PAL_PAD(SPI_MISO_PIN), SPI_MISO_FLAGS);
+ }
#endif
spiStop(&SPI_DRIVER);
- currentSlavePin = NO_PIN;
+ spiStarted = false;
}
}
bool spi_start(pin_t slavePin, bool lsbFirst, uint8_t mode, uint16_t divisor) {
- if (currentSlavePin != NO_PIN || slavePin == NO_PIN) {
+ if (spiStarted) {
+ return false;
+ }
+#if SPI_SELECT_MODE != SPI_SELECT_MODE_NONE
+ if (slavePin == NO_PIN) {
return false;
}
+#endif
#if !(defined(WB32F3G71xx) || defined(WB32FQ95xx))
uint16_t roundedDivisor = 2;
@@ -247,13 +264,29 @@ bool spi_start(pin_t slavePin, bool lsbFirst, uint8_t mode, uint16_t divisor) {
}
#endif
- currentSlavePin = slavePin;
+ spiStarted = true;
+#if SPI_SELECT_MODE == SPI_SELECT_MODE_NONE
+ currentSlavePin = slavePin;
+#endif
+#if SPI_SELECT_MODE == SPI_SELECT_MODE_PAD
spiConfig.ssport = PAL_PORT(slavePin);
spiConfig.sspad = PAL_PAD(slavePin);
-
setPinOutput(slavePin);
+#elif SPI_SELECT_MODE == SPI_SELECT_MODE_NONE
+ if (slavePin != NO_PIN) {
+ setPinOutput(slavePin);
+ }
+#else
+# error "Unsupported SPI_SELECT_MODE"
+#endif
+
spiStart(&SPI_DRIVER, &spiConfig);
spiSelect(&SPI_DRIVER);
+#if SPI_SELECT_MODE == SPI_SELECT_MODE_NONE
+ if (slavePin != NO_PIN) {
+ writePinLow(slavePin);
+ }
+#endif
return true;
}
@@ -283,9 +316,14 @@ spi_status_t spi_receive(uint8_t *data, uint16_t length) {
}
void spi_stop(void) {
- if (currentSlavePin != NO_PIN) {
+ if (spiStarted) {
+#if SPI_SELECT_MODE == SPI_SELECT_MODE_NONE
+ if (currentSlavePin != NO_PIN) {
+ writePinHigh(currentSlavePin);
+ }
+#endif
spiUnselect(&SPI_DRIVER);
spiStop(&SPI_DRIVER);
- currentSlavePin = NO_PIN;
+ spiStarted = false;
}
}
diff --git a/platforms/chibios/drivers/vendor/RP/RP2040/ws2812_vendor.c b/platforms/chibios/drivers/vendor/RP/RP2040/ws2812_vendor.c
index 8d59e13bb2..de317e269a 100644
--- a/platforms/chibios/drivers/vendor/RP/RP2040/ws2812_vendor.c
+++ b/platforms/chibios/drivers/vendor/RP/RP2040/ws2812_vendor.c
@@ -268,7 +268,7 @@ static inline void sync_ws2812_transfer(void) {
busy_wait_until(LAST_TRANSFER);
}
-void ws2812_setleds(LED_TYPE* ledarray, uint16_t leds) {
+void ws2812_setleds(rgb_led_t* ledarray, uint16_t leds) {
static bool is_initialized = false;
if (unlikely(!is_initialized)) {
is_initialized = ws2812_init();
diff --git a/platforms/chibios/drivers/wear_leveling/wear_leveling_efl.c b/platforms/chibios/drivers/wear_leveling/wear_leveling_efl.c
index 3e4f5ffb89..3d6ed52e5c 100644
--- a/platforms/chibios/drivers/wear_leveling/wear_leveling_efl.c
+++ b/platforms/chibios/drivers/wear_leveling/wear_leveling_efl.c
@@ -17,6 +17,9 @@ static flash_sector_t first_sector = UINT16_MAX;
static flash_sector_t sector_count = UINT16_MAX;
static BaseFlash * flash;
+static volatile bool is_issuing_read = false;
+static volatile bool ecc_error_occurred = false;
+
// "Automatic" detection of the flash size -- ideally ChibiOS would have this already, but alas, it doesn't.
static inline uint32_t detect_flash_size(void) {
#if defined(WEAR_LEVELING_EFL_FLASH_SIZE)
@@ -131,11 +134,38 @@ bool backing_store_lock(void) {
return true;
}
+static backing_store_int_t backing_store_safe_read_from_location(backing_store_int_t *loc) {
+ backing_store_int_t value;
+ is_issuing_read = true;
+ ecc_error_occurred = false;
+ value = ~(*loc);
+ is_issuing_read = false;
+ return value;
+}
+
bool backing_store_read(uint32_t address, backing_store_int_t *value) {
uint32_t offset = (base_offset + address);
backing_store_int_t *loc = (backing_store_int_t *)flashGetOffsetAddress(flash, offset);
- *value = ~(*loc);
+ backing_store_int_t tmp = backing_store_safe_read_from_location(loc);
+
+ if (ecc_error_occurred) {
+ bs_dprintf("Failed to read from backing store, ECC error detected\n");
+ ecc_error_occurred = false;
+ *value = 0;
+ return false;
+ }
+
+ *value = tmp;
+
bs_dprintf("Read ");
wl_dump(offset, value, sizeof(backing_store_int_t));
return true;
}
+
+bool backing_store_allow_ecc_errors(void) {
+ return is_issuing_read;
+}
+
+void backing_store_signal_ecc_error(void) {
+ ecc_error_occurred = true;
+}
diff --git a/platforms/chibios/drivers/wear_leveling/wear_leveling_efl_config.h b/platforms/chibios/drivers/wear_leveling/wear_leveling_efl_config.h
index e74cf85efd..0f0fa694e9 100644
--- a/platforms/chibios/drivers/wear_leveling/wear_leveling_efl_config.h
+++ b/platforms/chibios/drivers/wear_leveling/wear_leveling_efl_config.h
@@ -50,5 +50,5 @@
// 1kB logical EEPROM
#ifndef WEAR_LEVELING_LOGICAL_SIZE
-# define WEAR_LEVELING_LOGICAL_SIZE 1024
+# define WEAR_LEVELING_LOGICAL_SIZE ((WEAR_LEVELING_BACKING_SIZE) / 2)
#endif // WEAR_LEVELING_LOGICAL_SIZE
diff --git a/platforms/chibios/drivers/wear_leveling/wear_leveling_rp2040_flash.c b/platforms/chibios/drivers/wear_leveling/wear_leveling_rp2040_flash.c
index 640628e1e9..6624c30b5b 100644
--- a/platforms/chibios/drivers/wear_leveling/wear_leveling_rp2040_flash.c
+++ b/platforms/chibios/drivers/wear_leveling/wear_leveling_rp2040_flash.c
@@ -25,8 +25,8 @@
#define FLASHCMD_READ_STATUS 0x05
#define FLASHCMD_WRITE_ENABLE 0x06
-extern uint8_t BOOT2_ROM[256];
-static uint32_t BOOT2_ROM_RAM[64];
+extern const uint8_t BOOT2_ROM[256];
+static uint32_t BOOT2_ROM_RAM[64];
static ssi_hw_t *const ssi = (ssi_hw_t *)XIP_SSI_BASE;
diff --git a/platforms/chibios/drivers/wear_leveling/wear_leveling_rp2040_flash_config.h b/platforms/chibios/drivers/wear_leveling/wear_leveling_rp2040_flash_config.h
index 93a9aa0372..e1e2433601 100644
--- a/platforms/chibios/drivers/wear_leveling/wear_leveling_rp2040_flash_config.h
+++ b/platforms/chibios/drivers/wear_leveling/wear_leveling_rp2040_flash_config.h
@@ -18,7 +18,7 @@
// 32kB logical EEPROM
#ifndef WEAR_LEVELING_LOGICAL_SIZE
-# define WEAR_LEVELING_LOGICAL_SIZE 4096
+# define WEAR_LEVELING_LOGICAL_SIZE ((WEAR_LEVELING_BACKING_SIZE) / 2)
#endif // WEAR_LEVELING_LOGICAL_SIZE
// Define how much flash space we have (defaults to lib/pico-sdk/src/boards/include/boards/***)
diff --git a/platforms/chibios/drivers/ws2812_bitbang.c b/platforms/chibios/drivers/ws2812_bitbang.c
index c55e0f654c..e3b735a1a6 100644
--- a/platforms/chibios/drivers/ws2812_bitbang.c
+++ b/platforms/chibios/drivers/ws2812_bitbang.c
@@ -72,7 +72,7 @@ void ws2812_init(void) {
}
// Setleds for standard RGB
-void ws2812_setleds(LED_TYPE *ledarray, uint16_t leds) {
+void ws2812_setleds(rgb_led_t *ledarray, uint16_t leds) {
static bool s_init = false;
if (!s_init) {
ws2812_init();
diff --git a/platforms/chibios/drivers/ws2812_pwm.c b/platforms/chibios/drivers/ws2812_pwm.c
index cfee547a82..440687bd72 100644
--- a/platforms/chibios/drivers/ws2812_pwm.c
+++ b/platforms/chibios/drivers/ws2812_pwm.c
@@ -379,7 +379,7 @@ void ws2812_write_led_rgbw(uint16_t led_number, uint8_t r, uint8_t g, uint8_t b,
}
// Setleds for standard RGB
-void ws2812_setleds(LED_TYPE* ledarray, uint16_t leds) {
+void ws2812_setleds(rgb_led_t* ledarray, uint16_t leds) {
static bool s_init = false;
if (!s_init) {
ws2812_init();
diff --git a/platforms/chibios/drivers/ws2812_spi.c b/platforms/chibios/drivers/ws2812_spi.c
index f188576e04..01162f07f4 100644
--- a/platforms/chibios/drivers/ws2812_spi.c
+++ b/platforms/chibios/drivers/ws2812_spi.c
@@ -6,8 +6,8 @@
/* Adapted from https://github.com/gamazeps/ws2812b-chibios-SPIDMA/ */
// Define the spi your LEDs are plugged to here
-#ifndef WS2812_SPI
-# define WS2812_SPI SPID1
+#ifndef WS2812_SPI_DRIVER
+# define WS2812_SPI_DRIVER SPID1
#endif
#ifndef WS2812_SPI_MOSI_PAL_MODE
@@ -106,7 +106,7 @@ static uint8_t get_protocol_eq(uint8_t data, int pos) {
return eq;
}
-static void set_led_color_rgb(LED_TYPE color, int pos) {
+static void set_led_color_rgb(rgb_led_t color, int pos) {
uint8_t* tx_start = &txbuf[PREAMBLE_SIZE];
#if (WS2812_BYTE_ORDER == WS2812_BYTE_ORDER_GRB)
@@ -179,15 +179,15 @@ void ws2812_init(void) {
#endif
};
- spiAcquireBus(&WS2812_SPI); /* Acquire ownership of the bus. */
- spiStart(&WS2812_SPI, &spicfg); /* Setup transfer parameters. */
- spiSelect(&WS2812_SPI); /* Slave Select assertion. */
+ spiAcquireBus(&WS2812_SPI_DRIVER); /* Acquire ownership of the bus. */
+ spiStart(&WS2812_SPI_DRIVER, &spicfg); /* Setup transfer parameters. */
+ spiSelect(&WS2812_SPI_DRIVER); /* Slave Select assertion. */
#ifdef WS2812_SPI_USE_CIRCULAR_BUFFER
- spiStartSend(&WS2812_SPI, ARRAY_SIZE(txbuf), txbuf);
+ spiStartSend(&WS2812_SPI_DRIVER, ARRAY_SIZE(txbuf), txbuf);
#endif
}
-void ws2812_setleds(LED_TYPE* ledarray, uint16_t leds) {
+void ws2812_setleds(rgb_led_t* ledarray, uint16_t leds) {
static bool s_init = false;
if (!s_init) {
ws2812_init();
@@ -202,9 +202,9 @@ void ws2812_setleds(LED_TYPE* ledarray, uint16_t leds) {
// Instead spiSend can be used to send synchronously (or the thread logic can be added back).
#ifndef WS2812_SPI_USE_CIRCULAR_BUFFER
# ifdef WS2812_SPI_SYNC
- spiSend(&WS2812_SPI, ARRAY_SIZE(txbuf), txbuf);
+ spiSend(&WS2812_SPI_DRIVER, ARRAY_SIZE(txbuf), txbuf);
# else
- spiStartSend(&WS2812_SPI, ARRAY_SIZE(txbuf), txbuf);
+ spiStartSend(&WS2812_SPI_DRIVER, ARRAY_SIZE(txbuf), txbuf);
# endif
#endif
}
diff --git a/platforms/chibios/interrupt_handlers.c b/platforms/chibios/interrupt_handlers.c
new file mode 100644
index 0000000000..4ba32d58e4
--- /dev/null
+++ b/platforms/chibios/interrupt_handlers.c
@@ -0,0 +1,45 @@
+// Copyright 2023 Nick Brassel (@tzarc)
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+///////////////////////////////////////////////////////////////////////////////
+// BEGIN: STM32 EFL Wear-leveling ECC fault handling
+//
+// Some STM32s have ECC checks for all flash memory access. Whenever there's an
+// ECC failure, the MCU raises the NMI interrupt. Whenever we receive such an
+// interrupt whilst reading the wear-leveling EEPROM area, we gracefully cater
+// for it, signalling the wear-leveling code that a failure has occurred.
+///////////////////////////////////////////////////////////////////////////////
+
+#include <ch.h>
+#include <chcore.h>
+
+#ifdef WEAR_LEVELING_EMBEDDED_FLASH
+# ifdef QMK_MCU_SERIES_STM32L4XX
+# define ECC_ERRORS_TRIGGER_NMI_INTERRUPT
+# define ECC_CHECK_REGISTER FLASH->ECCR
+# define ECC_CHECK_FLAG FLASH_ECCR_ECCD
+# endif // QMK_MCU_SERIES_STM32L4XX
+#endif // WEAR_LEVELING_EMBEDDED_FLASH
+
+#ifdef ECC_ERRORS_TRIGGER_NMI_INTERRUPT
+
+extern bool backing_store_allow_ecc_errors(void);
+extern void backing_store_signal_ecc_error(void);
+
+void NMI_Handler(void) {
+ if ((ECC_CHECK_REGISTER) & (ECC_CHECK_FLAG)) {
+ if (backing_store_allow_ecc_errors()) {
+ (ECC_CHECK_REGISTER) = (ECC_CHECK_FLAG);
+ backing_store_signal_ecc_error();
+ return;
+ }
+ }
+
+ chSysHalt("NMI");
+}
+
+#endif // ECC_ERRORS_TRIGGER_NMI_INTERRUPT
+
+///////////////////////////////////////////////////////////////////////////////
+// END: STM32 EFL Wear-leveling ECC fault handling
+///////////////////////////////////////////////////////////////////////////////
diff --git a/platforms/chibios/platform.mk b/platforms/chibios/platform.mk
index 081b001e6d..f38a888012 100644
--- a/platforms/chibios/platform.mk
+++ b/platforms/chibios/platform.mk
@@ -277,7 +277,8 @@ PLATFORM_SRC = \
$(CHIBIOS)/os/various/syscalls.c \
$(PLATFORM_COMMON_DIR)/syscall-fallbacks.c \
$(PLATFORM_COMMON_DIR)/wait.c \
- $(PLATFORM_COMMON_DIR)/synchronization_util.c
+ $(PLATFORM_COMMON_DIR)/synchronization_util.c \
+ $(PLATFORM_COMMON_DIR)/interrupt_handlers.c
# Ensure the ASM files are not subjected to LTO -- it'll strip out interrupt handlers otherwise.
QUANTUM_LIB_SRC += $(STARTUPASM) $(PORTASM) $(OSALASM) $(PLATFORMASM)
@@ -476,6 +477,11 @@ HEX = $(OBJCOPY) -O $(FORMAT)
EEP =
BIN = $(OBJCOPY) -O binary
+# disable warning about RWX triggered by ChibiOS linker scripts
+ifeq ("$(shell echo "int main(){}" | $(CC) -shared -Wl,--no-warn-rwx-segments -x c - -o /dev/null 2>&1)", "")
+ SHARED_LDFLAGS += -Wl,--no-warn-rwx-segments
+endif
+
##############################################################################
# Make targets
#
diff --git a/platforms/chibios/vendors/RP/stage2_bootloaders.c b/platforms/chibios/vendors/RP/stage2_bootloaders.c
index e65b0a5802..131fa0ce9e 100644
--- a/platforms/chibios/vendors/RP/stage2_bootloaders.c
+++ b/platforms/chibios/vendors/RP/stage2_bootloaders.c
@@ -13,7 +13,7 @@
#if defined(RP2040_FLASH_AT25SF128A)
-uint8_t BOOTLOADER_SECTION BOOT2_ROM[256] = {
+const uint8_t BOOTLOADER_SECTION BOOT2_ROM[256] = {
0x00, 0xb5, 0x31, 0x4b, 0x21, 0x20, 0x58, 0x60, 0x98, 0x68, 0x02, 0x21,
0x88, 0x43, 0x98, 0x60, 0xd8, 0x60, 0x18, 0x61, 0x58, 0x61, 0x2d, 0x4b,
0x00, 0x21, 0x99, 0x60, 0x04, 0x21, 0x59, 0x61, 0x01, 0x21, 0xf0, 0x22,
@@ -40,7 +40,7 @@ uint8_t BOOTLOADER_SECTION BOOT2_ROM[256] = {
#elif defined(RP2040_FLASH_GD25Q64CS)
-uint8_t BOOTLOADER_SECTION BOOT2_ROM[256] = {
+const uint8_t BOOTLOADER_SECTION BOOT2_ROM[256] = {
0x00, 0xb5, 0x31, 0x4b, 0x21, 0x20, 0x58, 0x60, 0x98, 0x68, 0x02, 0x21,
0x88, 0x43, 0x98, 0x60, 0xd8, 0x60, 0x18, 0x61, 0x58, 0x61, 0x2d, 0x4b,
0x00, 0x21, 0x99, 0x60, 0x04, 0x21, 0x59, 0x61, 0x01, 0x21, 0xf0, 0x22,
@@ -67,7 +67,7 @@ uint8_t BOOTLOADER_SECTION BOOT2_ROM[256] = {
#elif defined(RP2040_FLASH_W25X10CL)
-uint8_t BOOTLOADER_SECTION BOOT2_ROM[256] = {
+const uint8_t BOOTLOADER_SECTION BOOT2_ROM[256] = {
0x00, 0xb5, 0x14, 0x4b, 0x00, 0x21, 0x99, 0x60, 0x04, 0x21, 0x59, 0x61,
0x12, 0x49, 0x19, 0x60, 0x00, 0x21, 0x59, 0x60, 0x11, 0x49, 0x12, 0x48,
0x01, 0x60, 0x01, 0x21, 0x99, 0x60, 0xbb, 0x21, 0x19, 0x66, 0x02, 0x21,
@@ -94,7 +94,7 @@ uint8_t BOOTLOADER_SECTION BOOT2_ROM[256] = {
#elif defined(RP2040_FLASH_IS25LP080)
-uint8_t BOOTLOADER_SECTION BOOT2_ROM[256] = {
+const uint8_t BOOTLOADER_SECTION BOOT2_ROM[256] = {
0x00, 0xb5, 0x2b, 0x4b, 0x00, 0x21, 0x99, 0x60, 0x04, 0x21, 0x59, 0x61,
0x29, 0x49, 0x19, 0x60, 0x01, 0x21, 0x99, 0x60, 0x28, 0x48, 0x00, 0xf0,
0x42, 0xf8, 0x28, 0x4a, 0x90, 0x42, 0x12, 0xd0, 0x06, 0x21, 0x19, 0x66,
@@ -121,7 +121,7 @@ uint8_t BOOTLOADER_SECTION BOOT2_ROM[256] = {
#elif defined(RP2040_FLASH_GENERIC_03H)
-uint8_t BOOTLOADER_SECTION BOOT2_ROM[256] = {
+const uint8_t BOOTLOADER_SECTION BOOT2_ROM[256] = {
0x00, 0xb5, 0x0c, 0x4b, 0x00, 0x21, 0x99, 0x60, 0x04, 0x21, 0x59, 0x61,
0x0a, 0x49, 0x19, 0x60, 0x0a, 0x49, 0x0b, 0x48, 0x01, 0x60, 0x00, 0x21,
0x59, 0x60, 0x01, 0x21, 0x99, 0x60, 0x01, 0xbc, 0x00, 0x28, 0x00, 0xd0,
@@ -148,7 +148,7 @@ uint8_t BOOTLOADER_SECTION BOOT2_ROM[256] = {
#else
-uint8_t BOOTLOADER_SECTION BOOT2_ROM[256] = {
+const uint8_t BOOTLOADER_SECTION BOOT2_ROM[256] = {
0x00, 0xb5, 0x32, 0x4b, 0x21, 0x20, 0x58, 0x60, 0x98, 0x68, 0x02, 0x21,
0x88, 0x43, 0x98, 0x60, 0xd8, 0x60, 0x18, 0x61, 0x58, 0x61, 0x2e, 0x4b,
0x00, 0x21, 0x99, 0x60, 0x04, 0x21, 0x59, 0x61, 0x01, 0x21, 0xf0, 0x22,
diff --git a/platforms/test/timer.c b/platforms/test/timer.c
index 320cc57782..eb929d7dac 100644
--- a/platforms/test/timer.c
+++ b/platforms/test/timer.c
@@ -17,34 +17,65 @@
#include "timer.h"
#include <stdatomic.h>
-static atomic_uint_least32_t current_time = 0;
+static atomic_uint_least32_t current_time = 0;
+static atomic_uint_least32_t async_tick_amount = 0;
+static atomic_uint_least32_t access_counter = 0;
+
+void simulate_async_tick(uint32_t t) {
+ async_tick_amount = t;
+}
+
+uint32_t timer_read_internal(void) {
+ return current_time;
+}
+
+uint32_t current_access_counter(void) {
+ return access_counter;
+}
+
+void reset_access_counter(void) {
+ access_counter = 0;
+}
void timer_init(void) {
- current_time = 0;
+ current_time = 0;
+ async_tick_amount = 0;
+ access_counter = 0;
}
void timer_clear(void) {
- current_time = 0;
+ current_time = 0;
+ async_tick_amount = 0;
+ access_counter = 0;
}
uint16_t timer_read(void) {
- return current_time & 0xFFFF;
+ return (uint16_t)timer_read32();
}
+
uint32_t timer_read32(void) {
+ if (access_counter++ > 0) {
+ current_time += async_tick_amount;
+ }
return current_time;
}
+
uint16_t timer_elapsed(uint16_t last) {
return TIMER_DIFF_16(timer_read(), last);
}
+
uint32_t timer_elapsed32(uint32_t last) {
return TIMER_DIFF_32(timer_read32(), last);
}
void set_time(uint32_t t) {
- current_time = t;
+ current_time = t;
+ access_counter = 0;
}
+
void advance_time(uint32_t ms) {
current_time += ms;
+ access_counter = 0;
}
void wait_ms(uint32_t ms) {
diff --git a/quantum/action.c b/quantum/action.c
index 6368f7398c..29822c39e9 100644
--- a/quantum/action.c
+++ b/quantum/action.c
@@ -374,7 +374,7 @@ void process_action(keyrecord_t *record, action_t action) {
if (is_oneshot_layer_active() && event.pressed &&
(action.kind.id == ACT_USAGE || !(IS_MODIFIER_KEYCODE(action.key.code)
# ifndef NO_ACTION_TAPPING
- || (tap_count == 0 && (action.kind.id == ACT_LMODS_TAP || action.kind.id == ACT_RMODS_TAP))
+ || ((action.kind.id == ACT_LMODS_TAP || action.kind.id == ACT_RMODS_TAP) && (action.layer_tap.code <= MODS_TAP_TOGGLE || tap_count == 0))
# endif
))
# ifdef SWAP_HANDS_ENABLE
@@ -497,7 +497,7 @@ void process_action(keyrecord_t *record, action_t action) {
default:
if (event.pressed) {
if (tap_count > 0) {
-# ifdef HOLD_ON_OTHER_KEY_PRESS_PER_KEY
+# ifdef HOLD_ON_OTHER_KEY_PRESS
if (
# ifdef HOLD_ON_OTHER_KEY_PRESS_PER_KEY
get_hold_on_other_key_press(get_event_keycode(record->event, false), record) &&
@@ -925,7 +925,7 @@ __attribute__((weak)) void register_code(uint8_t code) {
// Force a new key press if the key is already pressed
// without this, keys with the same keycode, but different
// modifiers will be reported incorrectly, see issue #1708
- if (is_key_pressed(keyboard_report, code)) {
+ if (is_key_pressed(code)) {
del_key(code);
send_keyboard_report();
}
diff --git a/quantum/action_tapping.c b/quantum/action_tapping.c
index f94e5e6f69..8f238490f2 100644
--- a/quantum/action_tapping.c
+++ b/quantum/action_tapping.c
@@ -116,25 +116,26 @@ void action_tapping_process(keyrecord_t record) {
* readable. The conditional definition of tapping_keycode and all the
* conditional uses of it are hidden inside macros named TAP_...
*/
-# if (defined(AUTO_SHIFT_ENABLE) && defined(RETRO_SHIFT)) || defined(PERMISSIVE_HOLD_PER_KEY) || defined(HOLD_ON_OTHER_KEY_PRESS_PER_KEY)
-# define TAP_DEFINE_KEYCODE const uint16_t tapping_keycode = get_record_keycode(&tapping_key, false)
-# else
-# define TAP_DEFINE_KEYCODE
-# endif
+# define TAP_DEFINE_KEYCODE const uint16_t tapping_keycode = get_record_keycode(&tapping_key, false)
# if defined(AUTO_SHIFT_ENABLE) && defined(RETRO_SHIFT)
# ifdef RETRO_TAPPING_PER_KEY
-# define TAP_GET_RETRO_TAPPING get_retro_tapping(tapping_keycode, &tapping_key)
+# define TAP_GET_RETRO_TAPPING(keyp) get_auto_shifted_key(tapping_keycode, keyp) && get_retro_tapping(tapping_keycode, &tapping_key)
# else
-# define TAP_GET_RETRO_TAPPING true
+# define TAP_GET_RETRO_TAPPING(keyp) get_auto_shifted_key(tapping_keycode, keyp)
# endif
-# define MAYBE_RETRO_SHIFTING(ev) (TAP_GET_RETRO_TAPPING && (RETRO_SHIFT + 0) != 0 && TIMER_DIFF_16((ev).time, tapping_key.event.time) < (RETRO_SHIFT + 0))
+/* Used to extend TAPPING_TERM:
+ * indefinitely if RETRO_SHIFT does not have a value
+ * to RETRO_SHIFT if RETRO_SHIFT is set
+ * for possibly retro shifted keys.
+ */
+# define MAYBE_RETRO_SHIFTING(ev, keyp) (get_auto_shifted_key(tapping_keycode, keyp) && TAP_GET_RETRO_TAPPING(keyp) && ((RETRO_SHIFT + 0) == 0 || TIMER_DIFF_16((ev).time, tapping_key.event.time) < (RETRO_SHIFT + 0)))
# define TAP_IS_LT IS_QK_LAYER_TAP(tapping_keycode)
# define TAP_IS_MT IS_QK_MOD_TAP(tapping_keycode)
# define TAP_IS_RETRO IS_RETRO(tapping_keycode)
# else
-# define TAP_GET_RETRO_TAPPING false
-# define MAYBE_RETRO_SHIFTING(ev) false
+# define TAP_GET_RETRO_TAPPING(keyp) false
+# define MAYBE_RETRO_SHIFTING(ev, kp) false
# define TAP_IS_LT false
# define TAP_IS_MT false
# define TAP_IS_RETRO false
@@ -187,20 +188,19 @@ bool process_tapping(keyrecord_t *keyp) {
return true;
}
+# if (defined(AUTO_SHIFT_ENABLE) && defined(RETRO_SHIFT)) || defined(PERMISSIVE_HOLD_PER_KEY) || defined(HOLD_ON_OTHER_KEY_PRESS_PER_KEY)
TAP_DEFINE_KEYCODE;
+# endif
// process "pressed" tapping key state
if (tapping_key.event.pressed) {
- if (WITHIN_TAPPING_TERM(event) || MAYBE_RETRO_SHIFTING(event)) {
+ if (WITHIN_TAPPING_TERM(event) || MAYBE_RETRO_SHIFTING(event, keyp)) {
if (IS_NOEVENT(event)) {
// early return for tick events
return true;
}
if (tapping_key.tap.count == 0) {
if (IS_TAPPING_RECORD(keyp) && !event.pressed) {
-# if defined(AUTO_SHIFT_ENABLE) && defined(RETRO_SHIFT)
- retroshift_swap_times();
-# endif
// first tap!
ac_dprintf("Tapping: First tap(0->1).\n");
tapping_key.tap.count = 1;
@@ -218,28 +218,12 @@ bool process_tapping(keyrecord_t *keyp) {
*/
// clang-format off
else if (
+ !event.pressed && waiting_buffer_typed(event) &&
(
- !event.pressed && waiting_buffer_typed(event) &&
- TAP_GET_PERMISSIVE_HOLD
- )
- // Causes nested taps to not wait past TAPPING_TERM/RETRO_SHIFT
- // unnecessarily and fixes them for Layer Taps.
- || (TAP_GET_RETRO_TAPPING &&
- (
- // Rolled over the two keys.
- (tapping_key.tap.interrupted == true && (
- (TAP_IS_LT && TAP_GET_HOLD_ON_OTHER_KEY_PRESS) ||
- (TAP_IS_MT && TAP_GET_HOLD_ON_OTHER_KEY_PRESS)
- )
- )
- // Makes Retro Shift ignore the default behavior of
- // MTs and LTs on nested taps below TAPPING_TERM or RETRO_SHIFT
- || (
- TAP_IS_RETRO
- && (event.key.col != tapping_key.event.key.col || event.key.row != tapping_key.event.key.row)
- && !event.pressed && waiting_buffer_typed(event)
- )
- )
+ TAP_GET_PERMISSIVE_HOLD ||
+ // Causes nested taps to not wait past TAPPING_TERM/RETRO_SHIFT
+ // unnecessarily and fixes them for Layer Taps.
+ TAP_GET_RETRO_TAPPING(keyp)
)
) {
// clang-format on
@@ -284,10 +268,16 @@ bool process_tapping(keyrecord_t *keyp) {
process_record(keyp);
return true;
} else {
- // set interrupted flag when other key preesed during tapping
+ // set interrupted flag when other key pressed during tapping
if (event.pressed) {
tapping_key.tap.interrupted = true;
- if (TAP_GET_HOLD_ON_OTHER_KEY_PRESS) {
+ if (TAP_GET_HOLD_ON_OTHER_KEY_PRESS
+# if defined(AUTO_SHIFT_ENABLE) && defined(RETRO_SHIFT)
+ // Auto Shift cannot evaluate this early
+ // Retro Shift uses the hold action for all nested taps even without HOLD_ON_OTHER_KEY_PRESS, so this is fine to skip
+ && !(MAYBE_RETRO_SHIFTING(event, keyp) && get_auto_shifted_key(get_record_keycode(keyp, false), keyp))
+# endif
+ ) {
ac_dprintf("Tapping: End. No tap. Interfered by pressed key\n");
process_record(&tapping_key);
tapping_key = (keyrecord_t){0};
@@ -332,6 +322,9 @@ bool process_tapping(keyrecord_t *keyp) {
return true;
} else {
ac_dprintf("Tapping: key event while last tap(>0).\n");
+# if defined(AUTO_SHIFT_ENABLE) && defined(RETRO_SHIFT)
+ retroshift_swap_times();
+# endif
process_record(keyp);
return true;
}
@@ -388,7 +381,7 @@ bool process_tapping(keyrecord_t *keyp) {
}
// process "released" tapping key state
else {
- if (WITHIN_TAPPING_TERM(event) || MAYBE_RETRO_SHIFTING(event)) {
+ if (WITHIN_TAPPING_TERM(event) || MAYBE_RETRO_SHIFTING(event, keyp)) {
if (IS_NOEVENT(event)) {
// early return for tick events
return true;
@@ -506,9 +499,16 @@ void waiting_buffer_scan_tap(void) {
return;
}
+# if (defined(AUTO_SHIFT_ENABLE) && defined(RETRO_SHIFT))
+ TAP_DEFINE_KEYCODE;
+# endif
for (uint8_t i = waiting_buffer_tail; i != waiting_buffer_head; i = (i + 1) % WAITING_BUFFER_SIZE) {
keyrecord_t *candidate = &waiting_buffer[i];
- if (IS_EVENT(candidate->event) && KEYEQ(candidate->event.key, tapping_key.event.key) && !candidate->event.pressed && WITHIN_TAPPING_TERM(candidate->event)) {
+ // clang-format off
+ if (IS_EVENT(candidate->event) && KEYEQ(candidate->event.key, tapping_key.event.key) && !candidate->event.pressed && (
+ WITHIN_TAPPING_TERM(waiting_buffer[i].event) || MAYBE_RETRO_SHIFTING(waiting_buffer[i].event, &tapping_key)
+ )) {
+ // clang-format on
tapping_key.tap.count = 1;
candidate->tap.count = 1;
process_record(&tapping_key);
diff --git a/quantum/action_util.c b/quantum/action_util.c
index 909dea0595..52171b5050 100644
--- a/quantum/action_util.c
+++ b/quantum/action_util.c
@@ -35,6 +35,9 @@ static uint8_t suppressed_mods = 0;
// TODO: pointer variable is not needed
// report_keyboard_t keyboard_report = {};
report_keyboard_t *keyboard_report = &(report_keyboard_t){};
+#ifdef NKRO_ENABLE
+report_nkro_t *nkro_report = &(report_nkro_t){};
+#endif
extern inline void add_key(uint8_t key);
extern inline void del_key(uint8_t key);
@@ -252,13 +255,8 @@ bool is_oneshot_enabled(void) {
#endif
-/** \brief Send keyboard report
- *
- * FIXME: needs doc
- */
-void send_keyboard_report(void) {
- keyboard_report->mods = real_mods;
- keyboard_report->mods |= weak_mods;
+static uint8_t get_mods_for_report(void) {
+ uint8_t mods = real_mods | weak_mods;
#ifndef NO_ACTION_ONESHOT
if (oneshot_mods) {
@@ -268,20 +266,25 @@ void send_keyboard_report(void) {
clear_oneshot_mods();
}
# endif
- keyboard_report->mods |= oneshot_mods;
- if (has_anykey(keyboard_report)) {
+ mods |= oneshot_mods;
+ if (has_anykey()) {
clear_oneshot_mods();
}
}
-
#endif
#ifdef KEY_OVERRIDE_ENABLE
// These need to be last to be able to properly control key overrides
- keyboard_report->mods &= ~suppressed_mods;
- keyboard_report->mods |= weak_override_mods;
+ mods &= ~suppressed_mods;
+ mods |= weak_override_mods;
#endif
+ return mods;
+}
+
+void send_6kro_report(void) {
+ keyboard_report->mods = get_mods_for_report();
+
#ifdef PROTOCOL_VUSB
host_keyboard_send(keyboard_report);
#else
@@ -295,6 +298,36 @@ void send_keyboard_report(void) {
#endif
}
+#ifdef NKRO_ENABLE
+void send_nkro_report(void) {
+ nkro_report->mods = get_mods_for_report();
+
+ static report_nkro_t last_report;
+
+ /* Only send the report if there are changes to propagate to the host. */
+ if (memcmp(nkro_report, &last_report, sizeof(report_nkro_t)) != 0) {
+ memcpy(&last_report, nkro_report, sizeof(report_nkro_t));
+ host_nkro_send(nkro_report);
+ }
+}
+#endif
+
+/** \brief Send keyboard report
+ *
+ * FIXME: needs doc
+ */
+void send_keyboard_report(void) {
+#ifdef NKRO_ENABLE
+ if (keyboard_protocol && keymap_config.nkro) {
+ send_nkro_report();
+ } else {
+ send_6kro_report();
+ }
+#else
+ send_6kro_report();
+#endif
+}
+
/** \brief Get mods
*
* FIXME: needs doc
diff --git a/quantum/action_util.h b/quantum/action_util.h
index 831caf3c0a..d2ecb145be 100644
--- a/quantum/action_util.h
+++ b/quantum/action_util.h
@@ -26,20 +26,23 @@ extern "C" {
#endif
extern report_keyboard_t *keyboard_report;
+#ifdef NKRO_ENABLE
+extern report_nkro_t *nkro_report;
+#endif
void send_keyboard_report(void);
/* key */
inline void add_key(uint8_t key) {
- add_key_to_report(keyboard_report, key);
+ add_key_to_report(key);
}
inline void del_key(uint8_t key) {
- del_key_from_report(keyboard_report, key);
+ del_key_from_report(key);
}
inline void clear_keys(void) {
- clear_keys_from_report(keyboard_report);
+ clear_keys_from_report();
}
/* modifier */
diff --git a/quantum/backlight/backlight.c b/quantum/backlight/backlight.c
index 9d9f944f5d..e89b34696c 100644
--- a/quantum/backlight/backlight.c
+++ b/quantum/backlight/backlight.c
@@ -22,10 +22,21 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
backlight_config_t backlight_config;
+#ifndef BACKLIGHT_DEFAULT_ON
+# define BACKLIGHT_DEFAULT_ON true
+#endif
+
#ifndef BACKLIGHT_DEFAULT_LEVEL
# define BACKLIGHT_DEFAULT_LEVEL BACKLIGHT_LEVELS
#endif
+#ifndef BACKLIGHT_DEFAULT_BREATHING
+# define BACKLIGHT_DEFAULT_BREATHING false
+#else
+# undef BACKLIGHT_DEFAULT_BREATHING
+# define BACKLIGHT_DEFAULT_BREATHING true
+#endif
+
#ifdef BACKLIGHT_BREATHING
// TODO: migrate to backlight_config_t
static uint8_t breathing_period = BREATHING_PERIOD;
@@ -172,13 +183,9 @@ void eeconfig_update_backlight_current(void) {
}
void eeconfig_update_backlight_default(void) {
- backlight_config.enable = 1;
-#ifdef BACKLIGHT_DEFAULT_BREATHING
- backlight_config.breathing = 1;
-#else
- backlight_config.breathing = 0;
-#endif
- backlight_config.level = BACKLIGHT_DEFAULT_LEVEL;
+ backlight_config.enable = BACKLIGHT_DEFAULT_ON;
+ backlight_config.breathing = BACKLIGHT_DEFAULT_BREATHING;
+ backlight_config.level = BACKLIGHT_DEFAULT_LEVEL;
eeconfig_update_backlight(backlight_config.raw);
}
diff --git a/quantum/color.c b/quantum/color.c
index 767155c9db..395383f428 100644
--- a/quantum/color.c
+++ b/quantum/color.c
@@ -110,7 +110,7 @@ RGB hsv_to_rgb_nocie(HSV hsv) {
}
#ifdef RGBW
-void convert_rgb_to_rgbw(LED_TYPE *led) {
+void convert_rgb_to_rgbw(rgb_led_t *led) {
// Determine lowest value in all three colors, put that into
// the white channel and then shift all colors by that amount
led->w = MIN(led->r, MIN(led->g, led->b));
diff --git a/quantum/color.h b/quantum/color.h
index 135ad623b5..00a3bfb3f8 100644
--- a/quantum/color.h
+++ b/quantum/color.h
@@ -18,6 +18,7 @@
#include <stdint.h>
#include <stdbool.h>
+#include "util.h"
// clang-format off
@@ -73,22 +74,6 @@
// clang-format on
-#if defined(__GNUC__)
-# define PACKED __attribute__((__packed__))
-#else
-# define PACKED
-#endif
-
-#if defined(_MSC_VER)
-# pragma pack(push, 1)
-#endif
-
-#ifdef RGBW
-# define LED_TYPE cRGBW
-#else
-# define LED_TYPE RGB
-#endif
-
#define WS2812_BYTE_ORDER_RGB 0
#define WS2812_BYTE_ORDER_GRB 1
#define WS2812_BYTE_ORDER_BGR 2
@@ -97,26 +82,7 @@
# define WS2812_BYTE_ORDER WS2812_BYTE_ORDER_GRB
#endif
-typedef struct PACKED {
-#if (WS2812_BYTE_ORDER == WS2812_BYTE_ORDER_GRB)
- uint8_t g;
- uint8_t r;
- uint8_t b;
-#elif (WS2812_BYTE_ORDER == WS2812_BYTE_ORDER_RGB)
- uint8_t r;
- uint8_t g;
- uint8_t b;
-#elif (WS2812_BYTE_ORDER == WS2812_BYTE_ORDER_BGR)
- uint8_t b;
- uint8_t g;
- uint8_t r;
-#endif
-} cRGB;
-
-typedef cRGB RGB;
-
-// WS2812 specific layout
-typedef struct PACKED {
+typedef struct PACKED rgb_led_t {
#if (WS2812_BYTE_ORDER == WS2812_BYTE_ORDER_GRB)
uint8_t g;
uint8_t r;
@@ -130,21 +96,21 @@ typedef struct PACKED {
uint8_t g;
uint8_t r;
#endif
+#ifdef RGBW
uint8_t w;
-} cRGBW;
+#endif
+} rgb_led_t;
-typedef struct PACKED {
+typedef rgb_led_t RGB;
+
+typedef struct PACKED HSV {
uint8_t h;
uint8_t s;
uint8_t v;
} HSV;
-#if defined(_MSC_VER)
-# pragma pack(pop)
-#endif
-
RGB hsv_to_rgb(HSV hsv);
RGB hsv_to_rgb_nocie(HSV hsv);
#ifdef RGBW
-void convert_rgb_to_rgbw(LED_TYPE *led);
+void convert_rgb_to_rgbw(rgb_led_t *led);
#endif
diff --git a/quantum/command.c b/quantum/command.c
index aa64b75064..c188638eb4 100644
--- a/quantum/command.c
+++ b/quantum/command.c
@@ -222,21 +222,16 @@ static void print_status(void) {
"\n\t- Status -\n"
"host_keyboard_leds(): %02X\n"
-#ifndef PROTOCOL_VUSB
"keyboard_protocol: %02X\n"
"keyboard_idle: %02X\n"
-#endif
#ifdef NKRO_ENABLE
"keymap_config.nkro: %02X\n"
#endif
"timer_read32(): %08lX\n"
, host_keyboard_leds()
-#ifndef PROTOCOL_VUSB
- /* these aren't set on the V-USB protocol, so we just ignore them for now */
, keyboard_protocol
, keyboard_idle
-#endif
#ifdef NKRO_ENABLE
, keymap_config.nkro
#endif
diff --git a/quantum/debounce/none.c b/quantum/debounce/none.c
index 1b8b1dc13a..0a8ccfc4ee 100644
--- a/quantum/debounce/none.c
+++ b/quantum/debounce/none.c
@@ -20,9 +20,15 @@
void debounce_init(uint8_t num_rows) {}
bool debounce(matrix_row_t raw[], matrix_row_t cooked[], uint8_t num_rows, bool changed) {
- bool cooked_changed = memcmp(raw, cooked, sizeof(matrix_row_t) * num_rows) != 0;
+ bool cooked_changed = false;
- memcpy(cooked, raw, sizeof(matrix_row_t) * num_rows);
+ if (changed) {
+ size_t matrix_size = num_rows * sizeof(matrix_row_t);
+ if (memcmp(cooked, raw, matrix_size) != 0) {
+ memcpy(cooked, raw, matrix_size);
+ cooked_changed = true;
+ }
+ }
return cooked_changed;
}
diff --git a/quantum/debounce/sym_defer_g.c b/quantum/debounce/sym_defer_g.c
index 25e18890af..d96758fab3 100644
--- a/quantum/debounce/sym_defer_g.c
+++ b/quantum/debounce/sym_defer_g.c
@@ -24,6 +24,12 @@ When no state changes have occured for DEBOUNCE milliseconds, we push the state.
# define DEBOUNCE 5
#endif
+// Maximum debounce: 255ms
+#if DEBOUNCE > UINT8_MAX
+# undef DEBOUNCE
+# define DEBOUNCE UINT8_MAX
+#endif
+
#if DEBOUNCE > 0
static bool debouncing = false;
static fast_timer_t debouncing_time;
@@ -36,11 +42,10 @@ bool debounce(matrix_row_t raw[], matrix_row_t cooked[], uint8_t num_rows, bool
if (changed) {
debouncing = true;
debouncing_time = timer_read_fast();
- }
-
- if (debouncing && timer_elapsed_fast(debouncing_time) >= DEBOUNCE) {
- if (memcmp(cooked, raw, sizeof(matrix_row_t) * num_rows) != 0) {
- memcpy(cooked, raw, sizeof(matrix_row_t) * num_rows);
+ } else if (debouncing && timer_elapsed_fast(debouncing_time) >= DEBOUNCE) {
+ size_t matrix_size = num_rows * sizeof(matrix_row_t);
+ if (memcmp(cooked, raw, matrix_size) != 0) {
+ memcpy(cooked, raw, matrix_size);
cooked_changed = true;
}
debouncing = false;
diff --git a/quantum/debounce/sym_eager_pr.c b/quantum/debounce/sym_eager_pr.c
index ccc5d20fa2..6cd9308aff 100644
--- a/quantum/debounce/sym_eager_pr.c
+++ b/quantum/debounce/sym_eager_pr.c
@@ -128,8 +128,8 @@ static void transfer_matrix_values(matrix_row_t raw[], matrix_row_t cooked[], ui
if (existing_row != raw_row) {
if (*debounce_pointer == DEBOUNCE_ELAPSED) {
*debounce_pointer = DEBOUNCE;
- cooked[row] = raw_row;
- cooked_changed |= cooked[row] ^ raw[row];
+ cooked_changed |= cooked[row] ^ raw_row;
+ cooked[row] = raw_row;
counters_need_update = true;
}
}
diff --git a/quantum/debounce/tests/asym_eager_defer_pk_tests.cpp b/quantum/debounce/tests/asym_eager_defer_pk_tests.cpp
index 44b4fe1956..6737f499ab 100644
--- a/quantum/debounce/tests/asym_eager_defer_pk_tests.cpp
+++ b/quantum/debounce/tests/asym_eager_defer_pk_tests.cpp
@@ -392,3 +392,32 @@ TEST_F(DebounceTest, OneKeyDelayedScan8) {
time_jumps_ = true;
runEvents();
}
+
+TEST_F(DebounceTest, AsyncTickOneKeyShort1) {
+ addEvents({
+ /* Time, Inputs, Outputs */
+ {0, {{0, 1, DOWN}}, {{0, 1, DOWN}}},
+ /* Release key after 1ms delay */
+ {1, {{0, 1, UP}}, {}},
+
+ /*
+ * Until the eager timer on DOWN is observed to finish, the defer timer
+ * on UP can't start. There's no workaround for this because it's not
+ * possible to debounce an event that isn't being tracked.
+ *
+ * sym_defer_pk has the same problem but the test has to track that the
+ * key changed state so the DOWN timer is always allowed to finish
+ * before starting the UP timer.
+ */
+ {5, {}, {}},
+
+ {10, {}, {{0, 1, UP}}}, /* 5ms+5ms after DOWN at time 0 */
+ /* Press key again after 1ms delay */
+ {11, {{0, 1, DOWN}}, {{0, 1, DOWN}}},
+ });
+ /*
+ * Debounce implementations should never read the timer more than once per invocation
+ */
+ async_time_jumps_ = DEBOUNCE;
+ runEvents();
+}
diff --git a/quantum/debounce/tests/debounce_test_common.cpp b/quantum/debounce/tests/debounce_test_common.cpp
index b11378b286..fd4b6f01a6 100644
--- a/quantum/debounce/tests/debounce_test_common.cpp
+++ b/quantum/debounce/tests/debounce_test_common.cpp
@@ -26,8 +26,12 @@ extern "C" {
#include "debounce.h"
#include "timer.h"
-void set_time(uint32_t t);
-void advance_time(uint32_t ms);
+void simulate_async_tick(uint32_t t);
+void reset_access_counter(void);
+uint32_t current_access_counter(void);
+uint32_t timer_read_internal(void);
+void set_time(uint32_t t);
+void advance_time(uint32_t ms);
}
void DebounceTest::addEvents(std::initializer_list<DebounceTestEvent> events) {
@@ -58,6 +62,7 @@ void DebounceTest::runEventsInternal() {
/* Initialise keyboard with start time (offset to avoid testing at 0) and all keys UP */
debounce_init(MATRIX_ROWS);
set_time(time_offset_);
+ simulate_async_tick(async_time_jumps_);
std::fill(std::begin(input_matrix_), std::end(input_matrix_), 0);
std::fill(std::begin(output_matrix_), std::end(output_matrix_), 0);
@@ -70,9 +75,9 @@ void DebounceTest::runEventsInternal() {
advance_time(1);
} else {
/* Fast forward to the time for this event, calling debounce() with no changes */
- ASSERT_LT((time_offset_ + event.time_) - timer_read_fast(), 60000) << "Test tries to advance more than 1 minute of time";
+ ASSERT_LT((time_offset_ + event.time_) - timer_read_internal(), 60000) << "Test tries to advance more than 1 minute of time";
- while (timer_read_fast() != time_offset_ + event.time_) {
+ while (timer_read_internal() != time_offset_ + event.time_) {
runDebounce(false);
checkCookedMatrix(false, "debounce() modified cooked matrix");
advance_time(1);
@@ -124,14 +129,20 @@ void DebounceTest::runDebounce(bool changed) {
std::copy(std::begin(input_matrix_), std::end(input_matrix_), std::begin(raw_matrix_));
std::copy(std::begin(output_matrix_), std::end(output_matrix_), std::begin(cooked_matrix_));
+ reset_access_counter();
+
bool cooked_changed = debounce(raw_matrix_, cooked_matrix_, MATRIX_ROWS, changed);
if (!std::equal(std::begin(input_matrix_), std::end(input_matrix_), std::begin(raw_matrix_))) {
FAIL() << "Fatal error: debounce() modified raw matrix at " << strTime() << "\ninput_matrix: changed=" << changed << "\n" << strMatrix(input_matrix_) << "\nraw_matrix:\n" << strMatrix(raw_matrix_);
}
- if (std::equal(std::begin(output_matrix_), std::end(output_matrix_), std::begin(cooked_matrix_)) && cooked_changed) {
- FAIL() << "Fatal error: debounce() did detect a wrong cooked matrix change at " << strTime() << "\noutput_matrix: cooked_changed=" << cooked_changed << "\n" << strMatrix(output_matrix_) << "\ncooked_matrix:\n" << strMatrix(cooked_matrix_);
+ if (std::equal(std::begin(output_matrix_), std::end(output_matrix_), std::begin(cooked_matrix_)) == cooked_changed) {
+ FAIL() << "Fatal error: debounce() reported a wrong cooked matrix change result at " << strTime() << "\noutput_matrix: cooked_changed=" << cooked_changed << "\n" << strMatrix(output_matrix_) << "\ncooked_matrix:\n" << strMatrix(cooked_matrix_);
+ }
+
+ if (current_access_counter() > 1) {
+ FAIL() << "Fatal error: debounce() read the timer multiple times, which is not allowed, at " << strTime() << "\ntimer: access_count=" << current_access_counter() << "\noutput_matrix: cooked_changed=" << cooked_changed << "\n" << strMatrix(output_matrix_) << "\ncooked_matrix:\n" << strMatrix(cooked_matrix_);
}
}
@@ -144,7 +155,7 @@ void DebounceTest::checkCookedMatrix(bool changed, const std::string &error_mess
std::string DebounceTest::strTime() {
std::stringstream text;
- text << "time " << (timer_read_fast() - time_offset_) << " (extra_iterations=" << extra_iterations_ << ", auto_advance_time=" << auto_advance_time_ << ")";
+ text << "time " << (timer_read_internal() - time_offset_) << " (extra_iterations=" << extra_iterations_ << ", auto_advance_time=" << auto_advance_time_ << ")";
return text.str();
}
diff --git a/quantum/debounce/tests/debounce_test_common.h b/quantum/debounce/tests/debounce_test_common.h
index 7319abfbf3..ebbe340c05 100644
--- a/quantum/debounce/tests/debounce_test_common.h
+++ b/quantum/debounce/tests/debounce_test_common.h
@@ -54,8 +54,9 @@ class DebounceTest : public ::testing::Test {
void addEvents(std::initializer_list<DebounceTestEvent> events);
void runEvents();
- fast_timer_t time_offset_ = 7777;
- bool time_jumps_ = false;
+ fast_timer_t time_offset_ = 7777;
+ bool time_jumps_ = false;
+ fast_timer_t async_time_jumps_ = 0;
private:
static bool directionValue(Direction direction);
diff --git a/quantum/debounce/tests/none_tests.cpp b/quantum/debounce/tests/none_tests.cpp
new file mode 100644
index 0000000000..69fdd02101
--- /dev/null
+++ b/quantum/debounce/tests/none_tests.cpp
@@ -0,0 +1,256 @@
+/* Copyright 2021 Simon Arlott
+ *
+ * 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 "gtest/gtest.h"
+
+#include "debounce_test_common.h"
+
+TEST_F(DebounceTest, OneKeyShort1) {
+ addEvents({
+ /* Time, Inputs, Outputs */
+ {0, {{0, 1, DOWN}}, {{0, 1, DOWN}}},
+
+ {5, {}, {}},
+ /* 0ms delay (fast scan rate) */
+ {5, {{0, 1, UP}}, {{0, 1, UP}}},
+
+ {10, {}, {}},
+ });
+ runEvents();
+}
+
+TEST_F(DebounceTest, OneKeyShort2) {
+ addEvents({
+ /* Time, Inputs, Outputs */
+ {0, {{0, 1, DOWN}}, {{0, 1, DOWN}}},
+
+ {5, {}, {}},
+ /* 1ms delay */
+ {6, {{0, 1, UP}}, {{0, 1, UP}}},
+
+ {11, {}, {}},
+ });
+ runEvents();
+}
+
+TEST_F(DebounceTest, OneKeyShort3) {
+ addEvents({
+ /* Time, Inputs, Outputs */
+ {0, {{0, 1, DOWN}}, {{0, 1, DOWN}}},
+
+ {5, {}, {}},
+ /* 2ms delay */
+ {7, {{0, 1, UP}}, {{0, 1, UP}}},
+
+ {12, {}, {}},
+ });
+ runEvents();
+}
+
+TEST_F(DebounceTest, OneKeyTooQuick1) {
+ addEvents({
+ /* Time, Inputs, Outputs */
+ {0, {{0, 1, DOWN}}, {{0, 1, DOWN}}},
+ /* Release key exactly on the debounce time */
+ {5, {{0, 1, UP}}, {{0, 1, UP}}},
+ });
+ runEvents();
+}
+
+TEST_F(DebounceTest, OneKeyTooQuick2) {
+ addEvents({
+ /* Time, Inputs, Outputs */
+ {0, {{0, 1, DOWN}}, {{0, 1, DOWN}}},
+
+ {5, {}, {}},
+ {6, {{0, 1, UP}}, {{0, 1, UP}}},
+
+ /* Press key exactly on the debounce time */
+ {11, {{0, 1, DOWN}}, {{0, 1, DOWN}}},
+ });
+ runEvents();
+}
+
+TEST_F(DebounceTest, OneKeyBouncing1) {
+ addEvents({
+ /* Time, Inputs, Outputs */
+ {0, {{0, 1, DOWN}}, {{0, 1, DOWN}}},
+ {1, {{0, 1, UP}}, {{0, 1, UP}}},
+ {2, {{0, 1, DOWN}}, {{0, 1, DOWN}}},
+ {3, {{0, 1, UP}}, {{0, 1, UP}}},
+ {4, {{0, 1, DOWN}}, {{0, 1, DOWN}}},
+ {5, {{0, 1, UP}}, {{0, 1, UP}}},
+ {6, {{0, 1, DOWN}}, {{0, 1, DOWN}}},
+ {11, {{0, 1, UP}}, {{0, 1, UP}}}, /* 5ms after DOWN at time 7 */
+ });
+ runEvents();
+}
+
+TEST_F(DebounceTest, OneKeyBouncing2) {
+ addEvents({
+ /* Time, Inputs, Outputs */
+ {0, {{0, 1, DOWN}}, {{0, 1, DOWN}}},
+ {5, {}, {}},
+ {6, {{0, 1, UP}}, {{0, 1, UP}}},
+ {7, {{0, 1, DOWN}}, {{0, 1, DOWN}}},
+ {8, {{0, 1, UP}}, {{0, 1, UP}}},
+ {9, {{0, 1, DOWN}}, {{0, 1, DOWN}}},
+ {10, {{0, 1, UP}}, {{0, 1, UP}}},
+ {15, {}, {}}, /* 5ms after UP at time 10 */
+ });
+ runEvents();
+}
+
+TEST_F(DebounceTest, OneKeyLong) {
+ addEvents({
+ /* Time, Inputs, Outputs */
+ {0, {{0, 1, DOWN}}, {{0, 1, DOWN}}},
+
+ {5, {}, {}},
+
+ {25, {{0, 1, UP}}, {{0, 1, UP}}},
+
+ {30, {}, {}},
+
+ {50, {{0, 1, DOWN}}, {{0, 1, DOWN}}},
+
+ {55, {}, {}},
+ });
+ runEvents();
+}
+
+TEST_F(DebounceTest, TwoKeysShort) {
+ addEvents({
+ /* Time, Inputs, Outputs */
+ {0, {{0, 1, DOWN}}, {{0, 1, DOWN}}},
+ {1, {{0, 2, DOWN}}, {{0, 2, DOWN}}},
+
+ {6, {}, {}},
+
+ {7, {{0, 1, UP}}, {{0, 1, UP}}},
+ {8, {{0, 2, UP}}, {{0, 2, UP}}},
+
+ {13, {}, {}},
+ });
+ runEvents();
+}
+
+TEST_F(DebounceTest, TwoKeysSimultaneous1) {
+ addEvents({
+ /* Time, Inputs, Outputs */
+ {0, {{0, 1, DOWN}, {0, 2, DOWN}}, {{0, 1, DOWN}, {0, 2, DOWN}}},
+
+ {5, {}, {}},
+ {6, {{0, 1, UP}, {0, 2, UP}}, {{0, 1, UP}, {0, 2, UP}}},
+
+ {11, {}, {}},
+ });
+ runEvents();
+}
+
+TEST_F(DebounceTest, TwoKeysSimultaneous2) {
+ addEvents({
+ /* Time, Inputs, Outputs */
+ {0, {{0, 1, DOWN}}, {{0, 1, DOWN}}},
+ {1, {{0, 2, DOWN}}, {{0, 2, DOWN}}},
+
+ {5, {}, {}},
+ {6, {}, {}},
+ {7, {{0, 1, UP}}, {{0, 1, UP}}},
+ {8, {{0, 2, UP}}, {{0, 2, UP}}},
+
+ {13, {}, {}},
+ });
+ runEvents();
+}
+
+TEST_F(DebounceTest, OneKeyDelayedScan1) {
+ addEvents({
+ /* Time, Inputs, Outputs */
+ {0, {{0, 1, DOWN}}, {{0, 1, DOWN}}},
+
+ /* Processing is very late */
+ {300, {}, {}},
+ /* Immediately release key */
+ {300, {{0, 1, UP}}, {{0, 1, UP}}},
+
+ {305, {}, {}},
+ });
+ time_jumps_ = true;
+ runEvents();
+}
+
+TEST_F(DebounceTest, OneKeyDelayedScan2) {
+ addEvents({
+ /* Time, Inputs, Outputs */
+ {0, {{0, 1, DOWN}}, {{0, 1, DOWN}}},
+
+ /* Processing is very late */
+ {300, {}, {}},
+ /* Release key after 1ms */
+ {301, {{0, 1, UP}}, {{0, 1, UP}}},
+
+ {306, {}, {}},
+ });
+ time_jumps_ = true;
+ runEvents();
+}
+
+TEST_F(DebounceTest, OneKeyDelayedScan3) {
+ addEvents({
+ /* Time, Inputs, Outputs */
+ {0, {{0, 1, DOWN}}, {{0, 1, DOWN}}},
+
+ /* Release key before debounce expires */
+ {300, {{0, 1, UP}}, {{0, 1, UP}}},
+ });
+ time_jumps_ = true;
+ runEvents();
+}
+
+TEST_F(DebounceTest, OneKeyDelayedScan4) {
+ addEvents({
+ /* Time, Inputs, Outputs */
+ {0, {{0, 1, DOWN}}, {{0, 1, DOWN}}},
+
+ /* Processing is a bit late */
+ {50, {}, {}},
+ /* Release key after 1ms */
+ {51, {{0, 1, UP}}, {{0, 1, UP}}},
+
+ {56, {}, {}},
+ });
+ time_jumps_ = true;
+ runEvents();
+}
+
+TEST_F(DebounceTest, AsyncTickOneKeyShort1) {
+ addEvents({
+ /* Time, Inputs, Outputs */
+ {0, {{0, 1, DOWN}}, {{0, 1, DOWN}}},
+
+ {5, {}, {}},
+ /* 0ms delay (fast scan rate) */
+ {5, {{0, 1, UP}}, {{0, 1, UP}}},
+
+ {10, {}, {}},
+ });
+ /*
+ * Debounce implementations should never read the timer more than once per invocation
+ */
+ async_time_jumps_ = DEBOUNCE;
+ runEvents();
+}
diff --git a/quantum/debounce/tests/rules.mk b/quantum/debounce/tests/rules.mk
index 8318b1c668..bbc362d4c7 100644
--- a/quantum/debounce/tests/rules.mk
+++ b/quantum/debounce/tests/rules.mk
@@ -18,6 +18,11 @@ DEBOUNCE_COMMON_DEFS := -DMATRIX_ROWS=4 -DMATRIX_COLS=10 -DDEBOUNCE=5
DEBOUNCE_COMMON_SRC := $(QUANTUM_PATH)/debounce/tests/debounce_test_common.cpp \
$(PLATFORM_PATH)/$(PLATFORM_KEY)/timer.c
+debounce_none_DEFS := $(DEBOUNCE_COMMON_DEFS)
+debounce_none_SRC := $(DEBOUNCE_COMMON_SRC) \
+ $(QUANTUM_PATH)/debounce/none.c \
+ $(QUANTUM_PATH)/debounce/tests/none_tests.cpp
+
debounce_sym_defer_g_DEFS := $(DEBOUNCE_COMMON_DEFS)
debounce_sym_defer_g_SRC := $(DEBOUNCE_COMMON_SRC) \
$(QUANTUM_PATH)/debounce/sym_defer_g.c \
diff --git a/quantum/debounce/tests/sym_defer_g_tests.cpp b/quantum/debounce/tests/sym_defer_g_tests.cpp
index 73d3d45e30..33e8b17852 100644
--- a/quantum/debounce/tests/sym_defer_g_tests.cpp
+++ b/quantum/debounce/tests/sym_defer_g_tests.cpp
@@ -236,3 +236,21 @@ TEST_F(DebounceTest, OneKeyDelayedScan4) {
time_jumps_ = true;
runEvents();
}
+
+TEST_F(DebounceTest, AsyncTickOneKeyShort1) {
+ addEvents({
+ /* Time, Inputs, Outputs */
+ {0, {{0, 1, DOWN}}, {}},
+
+ {5, {}, {{0, 1, DOWN}}},
+ /* 0ms delay (fast scan rate) */
+ {5, {{0, 1, UP}}, {}},
+
+ {10, {}, {{0, 1, UP}}},
+ });
+ /*
+ * Debounce implementations should never read the timer more than once per invocation
+ */
+ async_time_jumps_ = DEBOUNCE;
+ runEvents();
+}
diff --git a/quantum/debounce/tests/sym_defer_pk_tests.cpp b/quantum/debounce/tests/sym_defer_pk_tests.cpp
index 7542c2dad4..864b7afcc4 100644
--- a/quantum/debounce/tests/sym_defer_pk_tests.cpp
+++ b/quantum/debounce/tests/sym_defer_pk_tests.cpp
@@ -238,3 +238,21 @@ TEST_F(DebounceTest, OneKeyDelayedScan4) {
time_jumps_ = true;
runEvents();
}
+
+TEST_F(DebounceTest, AsyncTickOneKeyShort1) {
+ addEvents({
+ /* Time, Inputs, Outputs */
+ {0, {{0, 1, DOWN}}, {}},
+
+ {5, {}, {{0, 1, DOWN}}},
+ /* 0ms delay (fast scan rate) */
+ {5, {{0, 1, UP}}, {}},
+
+ {10, {}, {{0, 1, UP}}},
+ });
+ /*
+ * Debounce implementations should never read the timer more than once per invocation
+ */
+ async_time_jumps_ = DEBOUNCE;
+ runEvents();
+}
diff --git a/quantum/debounce/tests/sym_defer_pr_tests.cpp b/quantum/debounce/tests/sym_defer_pr_tests.cpp
index 417e1f4ca2..3ed360b966 100644
--- a/quantum/debounce/tests/sym_defer_pr_tests.cpp
+++ b/quantum/debounce/tests/sym_defer_pr_tests.cpp
@@ -236,3 +236,21 @@ TEST_F(DebounceTest, OneKeyDelayedScan4) {
time_jumps_ = true;
runEvents();
}
+
+TEST_F(DebounceTest, AsyncTickOneKeyShort1) {
+ addEvents({
+ /* Time, Inputs, Outputs */
+ {0, {{0, 1, DOWN}}, {}},
+
+ {5, {}, {{0, 1, DOWN}}},
+ /* 0ms delay (fast scan rate) */
+ {5, {{0, 1, UP}}, {}},
+
+ {10, {}, {{0, 1, UP}}},
+ });
+ /*
+ * Debounce implementations should never read the timer more than once per invocation
+ */
+ async_time_jumps_ = DEBOUNCE;
+ runEvents();
+}
diff --git a/quantum/debounce/tests/sym_eager_pk_tests.cpp b/quantum/debounce/tests/sym_eager_pk_tests.cpp
index d9a02fe33c..39d5b10d8e 100644
--- a/quantum/debounce/tests/sym_eager_pk_tests.cpp
+++ b/quantum/debounce/tests/sym_eager_pk_tests.cpp
@@ -251,3 +251,21 @@ TEST_F(DebounceTest, OneKeyDelayedScan6) {
time_jumps_ = true;
runEvents();
}
+
+TEST_F(DebounceTest, AsyncTickOneKeyShort1) {
+ addEvents({
+ /* Time, Inputs, Outputs */
+ {0, {{0, 1, DOWN}}, {{0, 1, DOWN}}},
+ {1, {{0, 1, UP}}, {}},
+
+ {5, {}, {{0, 1, UP}}},
+ /* Press key again after 1ms delay (debounce has not yet finished) */
+ {6, {{0, 1, DOWN}}, {}},
+ {10, {}, {{0, 1, DOWN}}}, /* 5ms after UP at time 5 */
+ });
+ /*
+ * Debounce implementations should never read the timer more than once per invocation
+ */
+ async_time_jumps_ = DEBOUNCE;
+ runEvents();
+}
diff --git a/quantum/debounce/tests/sym_eager_pr_tests.cpp b/quantum/debounce/tests/sym_eager_pr_tests.cpp
index e91dd9cb87..9a94807a49 100644
--- a/quantum/debounce/tests/sym_eager_pr_tests.cpp
+++ b/quantum/debounce/tests/sym_eager_pr_tests.cpp
@@ -297,3 +297,21 @@ TEST_F(DebounceTest, OneKeyDelayedScan6) {
time_jumps_ = true;
runEvents();
}
+
+TEST_F(DebounceTest, AsyncTickOneKeyShort1) {
+ addEvents({
+ /* Time, Inputs, Outputs */
+ {0, {{0, 1, DOWN}}, {{0, 1, DOWN}}},
+ {1, {{0, 1, UP}}, {}},
+
+ {5, {}, {{0, 1, UP}}},
+ /* Press key again after 1ms delay (debounce has not yet finished) */
+ {6, {{0, 1, DOWN}}, {}},
+ {10, {}, {{0, 1, DOWN}}}, /* 5ms after UP at time 5 */
+ });
+ /*
+ * Debounce implementations should never read the timer more than once per invocation
+ */
+ async_time_jumps_ = DEBOUNCE;
+ runEvents();
+}
diff --git a/quantum/debounce/tests/testlist.mk b/quantum/debounce/tests/testlist.mk
index f7bd520698..dd53633343 100644
--- a/quantum/debounce/tests/testlist.mk
+++ b/quantum/debounce/tests/testlist.mk
@@ -1,4 +1,5 @@
TEST_LIST += \
+ debounce_none \
debounce_sym_defer_g \
debounce_sym_defer_pk \
debounce_sym_defer_pr \
diff --git a/quantum/eeconfig.c b/quantum/eeconfig.c
index 84de025f0e..d9eea13758 100644
--- a/quantum/eeconfig.c
+++ b/quantum/eeconfig.c
@@ -49,15 +49,15 @@ void eeconfig_init_quantum(void) {
eeprom_update_word(EECONFIG_MAGIC, EECONFIG_MAGIC_NUMBER);
eeprom_update_byte(EECONFIG_DEBUG, 0);
- eeprom_update_byte(EECONFIG_DEFAULT_LAYER, 0);
- default_layer_state = 0;
+ default_layer_state = (layer_state_t)1 << 0;
+ eeprom_update_byte(EECONFIG_DEFAULT_LAYER, default_layer_state);
// Enable oneshot and autocorrect by default: 0b0001 0100 0000 0000
eeprom_update_word(EECONFIG_KEYMAP, 0x1400);
eeprom_update_byte(EECONFIG_BACKLIGHT, 0);
eeprom_update_byte(EECONFIG_AUDIO, 0xFF); // On by default
eeprom_update_dword(EECONFIG_RGBLIGHT, 0);
eeprom_update_byte(EECONFIG_RGBLIGHT_EXTENDED, 0);
- eeprom_update_byte(EECONFIG_VELOCIKEY, 0);
+ eeprom_update_byte(EECONFIG_UNUSED, 0);
eeprom_update_byte(EECONFIG_UNICODEMODE, 0);
eeprom_update_byte(EECONFIG_STENOMODE, 0);
uint64_t dummy = 0;
diff --git a/quantum/eeconfig.h b/quantum/eeconfig.h
index 85e80226b6..d7cce166bd 100644
--- a/quantum/eeconfig.h
+++ b/quantum/eeconfig.h
@@ -19,6 +19,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#include <stdint.h>
#include <stdbool.h>
+#include "eeprom.h"
#ifndef EECONFIG_MAGIC_NUMBER
# define EECONFIG_MAGIC_NUMBER (uint16_t)0xFEE6 // When changing, decrement this value to avoid future re-init issues
@@ -39,7 +40,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define EECONFIG_HANDEDNESS (uint8_t *)14
#define EECONFIG_KEYBOARD (uint32_t *)15
#define EECONFIG_USER (uint32_t *)19
-#define EECONFIG_VELOCIKEY (uint8_t *)23
+#define EECONFIG_UNUSED (uint8_t *)23
// Mutually exclusive
#define EECONFIG_LED_MATRIX (uint32_t *)24
#define EECONFIG_RGB_MATRIX (uint64_t *)24
diff --git a/quantum/haptic.c b/quantum/haptic.c
index 5a700dca38..a1fea29625 100644
--- a/quantum/haptic.c
+++ b/quantum/haptic.c
@@ -20,6 +20,7 @@
#include "debug.h"
#include "usb_device_state.h"
#include "gpio.h"
+#include "keyboard.h"
#ifdef HAPTIC_DRV2605L
# include "drv2605l.h"
@@ -58,6 +59,11 @@ static void set_haptic_config_enable(bool enabled) {
}
void haptic_init(void) {
+// only initialize on secondary boards if the user desires
+#if defined(SPLIT_KEYBOARD) && !defined(SPLIT_HAPTIC_ENABLE)
+ if (!is_keyboard_master()) return;
+#endif
+
if (!eeconfig_is_enabled()) {
eeconfig_init();
}
@@ -99,8 +105,12 @@ void haptic_init(void) {
void haptic_task(void) {
#ifdef HAPTIC_SOLENOID
+// Only run task on seconary boards if the user desires
+# if defined(SPLIT_KEYBOARD) && !defined(SPLIT_HAPTIC_ENABLE)
+ if (!is_keyboard_master()) return;
+# endif
solenoid_check();
-#endif
+#endif // HAPTIC_SOLENOID
}
void eeconfig_debug_haptic(void) {
diff --git a/quantum/keyboard.c b/quantum/keyboard.c
index c2ca15d52d..86a1a9fea3 100644
--- a/quantum/keyboard.c
+++ b/quantum/keyboard.c
@@ -99,9 +99,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#ifdef ST7565_ENABLE
# include "st7565.h"
#endif
-#ifdef VELOCIKEY_ENABLE
-# include "velocikey.h"
-#endif
#ifdef VIA_ENABLE
# include "via.h"
#endif
@@ -395,9 +392,6 @@ void quantum_init(void) {
#if defined(UNICODE_COMMON_ENABLE)
unicode_input_mode_init();
#endif
-#ifdef HAPTIC_ENABLE
- haptic_init();
-#endif
}
/** \brief keyboard_init
@@ -462,6 +456,9 @@ void keyboard_init(void) {
#ifdef BLUETOOTH_ENABLE
bluetooth_init();
#endif
+#ifdef HAPTIC_ENABLE
+ haptic_init();
+#endif
#if defined(DEBUG_MATRIX_SCAN_RATE) && defined(CONSOLE_ENABLE)
debug_enable = true;
@@ -617,10 +614,6 @@ void quantum_task(void) {
decay_wpm();
#endif
-#ifdef HAPTIC_ENABLE
- haptic_task();
-#endif
-
#ifdef DIP_SWITCH_ENABLE
dip_switch_read(false);
#endif
@@ -712,12 +705,6 @@ void keyboard_task(void) {
midi_task();
#endif
-#ifdef VELOCIKEY_ENABLE
- if (velocikey_enabled()) {
- velocikey_decelerate();
- }
-#endif
-
#ifdef JOYSTICK_ENABLE
joystick_task();
#endif
@@ -726,5 +713,9 @@ void keyboard_task(void) {
bluetooth_task();
#endif
+#ifdef HAPTIC_ENABLE
+ haptic_task();
+#endif
+
led_task();
}
diff --git a/quantum/keycodes.h b/quantum/keycodes.h
index bbf10da36d..39fd2e2726 100644
--- a/quantum/keycodes.h
+++ b/quantum/keycodes.h
@@ -1420,3 +1420,25 @@ enum qk_keycode_defines {
#define IS_QUANTUM_KEYCODE(code) ((code) >= QK_BOOTLOADER && (code) <= QK_ALT_REPEAT_KEY)
#define IS_KB_KEYCODE(code) ((code) >= QK_KB_0 && (code) <= QK_KB_31)
#define IS_USER_KEYCODE(code) ((code) >= QK_USER_0 && (code) <= QK_USER_31)
+
+// Switch statement Helpers
+#define INTERNAL_KEYCODE_RANGE KC_NO ... KC_TRANSPARENT
+#define BASIC_KEYCODE_RANGE KC_A ... KC_EXSEL
+#define SYSTEM_KEYCODE_RANGE KC_SYSTEM_POWER ... KC_SYSTEM_WAKE
+#define CONSUMER_KEYCODE_RANGE KC_AUDIO_MUTE ... KC_LAUNCHPAD
+#define MOUSE_KEYCODE_RANGE KC_MS_UP ... KC_MS_ACCEL2
+#define MODIFIER_KEYCODE_RANGE KC_LEFT_CTRL ... KC_RIGHT_GUI
+#define SWAP_HANDS_KEYCODE_RANGE QK_SWAP_HANDS_TOGGLE ... QK_SWAP_HANDS_ONE_SHOT
+#define MAGIC_KEYCODE_RANGE QK_MAGIC_SWAP_CONTROL_CAPS_LOCK ... QK_MAGIC_TOGGLE_ESCAPE_CAPS_LOCK
+#define MIDI_KEYCODE_RANGE QK_MIDI_ON ... QK_MIDI_PITCH_BEND_UP
+#define SEQUENCER_KEYCODE_RANGE QK_SEQUENCER_ON ... QK_SEQUENCER_STEPS_CLEAR
+#define JOYSTICK_KEYCODE_RANGE QK_JOYSTICK_BUTTON_0 ... QK_JOYSTICK_BUTTON_31
+#define PROGRAMMABLE_BUTTON_KEYCODE_RANGE QK_PROGRAMMABLE_BUTTON_1 ... QK_PROGRAMMABLE_BUTTON_32
+#define AUDIO_KEYCODE_RANGE QK_AUDIO_ON ... QK_AUDIO_VOICE_PREVIOUS
+#define STENO_KEYCODE_RANGE QK_STENO_BOLT ... QK_STENO_COMB_MAX
+#define MACRO_KEYCODE_RANGE QK_MACRO_0 ... QK_MACRO_31
+#define BACKLIGHT_KEYCODE_RANGE QK_BACKLIGHT_ON ... QK_BACKLIGHT_TOGGLE_BREATHING
+#define RGB_KEYCODE_RANGE RGB_TOG ... RGB_MODE_TWINKLE
+#define QUANTUM_KEYCODE_RANGE QK_BOOTLOADER ... QK_ALT_REPEAT_KEY
+#define KB_KEYCODE_RANGE QK_KB_0 ... QK_KB_31
+#define USER_KEYCODE_RANGE QK_USER_0 ... QK_USER_31
diff --git a/quantum/keymap_common.c b/quantum/keymap_common.c
index 9a67fad278..91e47a72ee 100644
--- a/quantum/keymap_common.c
+++ b/quantum/keymap_common.c
@@ -59,19 +59,19 @@ action_t action_for_keycode(uint16_t keycode) {
(void)mod;
switch (keycode) {
- case KC_A ... KC_EXSEL:
- case KC_LEFT_CTRL ... KC_RIGHT_GUI:
+ case BASIC_KEYCODE_RANGE:
+ case MODIFIER_KEYCODE_RANGE:
action.code = ACTION_KEY(keycode);
break;
#ifdef EXTRAKEY_ENABLE
- case KC_SYSTEM_POWER ... KC_SYSTEM_WAKE:
+ case SYSTEM_KEYCODE_RANGE:
action.code = ACTION_USAGE_SYSTEM(KEYCODE2SYSTEM(keycode));
break;
- case KC_AUDIO_MUTE ... KC_LAUNCHPAD:
+ case CONSUMER_KEYCODE_RANGE:
action.code = ACTION_USAGE_CONSUMER(KEYCODE2CONSUMER(keycode));
break;
#endif
- case KC_MS_UP ... KC_MS_ACCEL2:
+ case MOUSE_KEYCODE_RANGE:
action.code = ACTION_MOUSEKEY(keycode);
break;
case KC_TRANSPARENT:
diff --git a/quantum/keymap_extras/keymap_russian_typewriter.h b/quantum/keymap_extras/keymap_russian_typewriter.h
new file mode 100644
index 0000000000..59f341e38b
--- /dev/null
+++ b/quantum/keymap_extras/keymap_russian_typewriter.h
@@ -0,0 +1,93 @@
+// Copyright 2023 QMK
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+/*******************************************************************************
+ 88888888888 888 d8b .d888 d8b 888 d8b
+ 888 888 Y8P d88P" Y8P 888 Y8P
+ 888 888 888 888
+ 888 88888b. 888 .d8888b 888888 888 888 .d88b. 888 .d8888b
+ 888 888 "88b 888 88K 888 888 888 d8P Y8b 888 88K
+ 888 888 888 888 "Y8888b. 888 888 888 88888888 888 "Y8888b.
+ 888 888 888 888 X88 888 888 888 Y8b. 888 X88
+ 888 888 888 888 88888P' 888 888 888 "Y8888 888 88888P'
+ 888 888
+ 888 888
+ 888 888
+ .d88b. .d88b. 88888b. .d88b. 888d888 8888b. 888888 .d88b. .d88888
+ d88P"88b d8P Y8b 888 "88b d8P Y8b 888P" "88b 888 d8P Y8b d88" 888
+ 888 888 88888888 888 888 88888888 888 .d888888 888 88888888 888 888
+ Y88b 888 Y8b. 888 888 Y8b. 888 888 888 Y88b. Y8b. Y88b 888
+ "Y88888 "Y8888 888 888 "Y8888 888 "Y888888 "Y888 "Y8888 "Y88888
+ 888
+ Y8b d88P
+ "Y88P"
+*******************************************************************************/
+
+#pragma once
+#include "keycodes.h"
+// clang-format off
+
+// Aliases
+#define RU_PIPE KC_GRV // |
+#define RU_NUM KC_1 // №
+#define RU_MINS KC_2 // -
+#define RU_SLSH KC_3 // /
+#define RU_DQUO KC_4 // "
+#define RU_COLN KC_5 // :
+#define RU_COMM KC_6 // ,
+#define RU_DOT KC_7 // .
+#define RU_UNDS KC_8 // _
+#define RU_QUES KC_9 // ?
+#define RU_PERC KC_0 // %
+#define RU_EXLM KC_MINS // !
+#define RU_SCLN KC_EQL // ;
+#define RU_SHTI KC_Q // Й
+#define RU_TSE KC_W // Ц
+#define RU_U KC_E // У
+#define RU_KA KC_R // К
+#define RU_IE KC_T // Е
+#define RU_EN KC_Y // Н
+#define RU_GHE KC_U // Г
+#define RU_SHA KC_I // Ш
+#define RU_SHCH KC_O // Щ
+#define RU_ZE KC_P // З
+#define RU_HA KC_LBRC // Х
+#define RU_HARD KC_RBRC // Ъ
+#define RU_RPRN KC_BSLS // )
+#define RU_EF KC_A // Ф
+#define RU_YERU KC_S // Ы
+#define RU_VE KC_D // В
+#define RU_A KC_F // А
+#define RU_PE KC_G // П
+#define RU_ER KC_H // Р
+#define RU_O KC_J // О
+#define RU_EL KC_K // Л
+#define RU_DE KC_L // Д
+#define RU_ZHE KC_SCLN // Ж
+#define RU_E KC_QUOT // Э
+#define RU_YA KC_Z // Я
+#define RU_CHE KC_X // Ч
+#define RU_ES KC_C // С
+#define RU_EM KC_V // М
+#define RU_I KC_B // И
+#define RU_TE KC_N // Т
+#define RU_SOFT KC_M // Ь
+#define RU_BE KC_COMM // Б
+#define RU_YU KC_DOT // Ю
+#define RU_YO KC_SLSH // Ё
+#define RU_PLUS S(RU_PIPE) // +
+#define RU_1 S(RU_NUM) // 1
+#define RU_2 S(RU_MINS) // 2
+#define RU_3 S(RU_SLSH) // 3
+#define RU_4 S(RU_DQUO) // 4
+#define RU_5 S(RU_COLN) // 5
+#define RU_6 S(RU_COMM) // 6
+#define RU_7 S(RU_DOT) // 7
+#define RU_8 S(RU_UNDS) // 8
+#define RU_9 S(RU_QUES) // 9
+#define RU_0 S(RU_PERC) // 0
+#define RU_EQL S(RU_EXLM) // =
+#define RU_BSLS S(RU_SCLN) // (backslash)
+#define RU_LPRN S(RU_RPRN) // (
+#define RU_RUBL ALGR(RU_UNDS) // ₽
+
diff --git a/quantum/keymap_extras/keymap_steno.h b/quantum/keymap_extras/keymap_steno.h
index 852b2f7121..d2635446c6 100644
--- a/quantum/keymap_extras/keymap_steno.h
+++ b/quantum/keymap_extras/keymap_steno.h
@@ -1,119 +1,6 @@
-/* Copyright 2017 Joseph Wasson
- *
- * 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 2023 QMK
+// SPDX-License-Identifier: GPL-2.0-or-later
#pragma once
-#include "keycodes.h"
-
-// List of keycodes for the steno keyboard. To prevent
-// errors, this must be <= 42 total entries in order to
-// support the GeminiPR protocol.
-enum steno_keycodes {
- STN__MIN = QK_STENO,
- STN_FN = STN__MIN,
- STN_NUM,
- STN_N1 = STN_NUM,
- STN_N2,
- STN_N3,
- STN_N4,
- STN_N5,
- STN_N6,
- STN_SL,
- STN_S1 = STN_SL,
- STN_S2,
- STN_TL,
- STN_KL,
- STN_PL,
- STN_WL,
- STN_HL,
- STN_RL,
- STN_A,
- STN_O,
- STN_STR,
- STN_ST1 = STN_STR,
- STN_ST2,
- STN_RES1,
- STN_RE1 = STN_RES1,
- STN_RES2,
- STN_RE2 = STN_RES2,
- STN_PWR,
- STN_ST3,
- STN_ST4,
- STN_E,
- STN_U,
- STN_FR,
- STN_RR,
- STN_PR,
- STN_BR,
- STN_LR,
- STN_GR,
- STN_TR,
- STN_SR,
- STN_DR,
- STN_N7,
- STN_N8,
- STN_N9,
- STN_NA,
- STN_NB,
- STN_NC,
- STN_ZR,
- STN__MAX = STN_ZR, // must be less than QK_STENO_BOLT
-};
-
-#ifdef STENO_COMBINEDMAP
-enum steno_combined_keycodes {
- STN_S3 = QK_STENO_COMB,
- STN_TKL,
- STN_PWL,
- STN_HRL,
- STN_FRR,
- STN_PBR,
- STN_LGR,
- STN_TSR,
- STN_DZR,
- STN_AO,
- STN_EU,
- STN_COMB_MAX = STN_EU,
-};
-#endif
-
-#ifdef STENO_ENABLE_BOLT
-// TxBolt Codes
-# define TXB_NUL 0
-# define TXB_S_L 0b00000001
-# define TXB_T_L 0b00000010
-# define TXB_K_L 0b00000100
-# define TXB_P_L 0b00001000
-# define TXB_W_L 0b00010000
-# define TXB_H_L 0b00100000
-# define TXB_R_L 0b01000001
-# define TXB_A_L 0b01000010
-# define TXB_O_L 0b01000100
-# define TXB_STR 0b01001000
-# define TXB_E_R 0b01010000
-# define TXB_U_R 0b01100000
-# define TXB_F_R 0b10000001
-# define TXB_R_R 0b10000010
-# define TXB_P_R 0b10000100
-# define TXB_B_R 0b10001000
-# define TXB_L_R 0b10010000
-# define TXB_G_R 0b10100000
-# define TXB_T_R 0b11000001
-# define TXB_S_R 0b11000010
-# define TXB_D_R 0b11000100
-# define TXB_Z_R 0b11001000
-# define TXB_NUM 0b11010000
-#endif // STENO_ENABLE_BOLT
+#pragma message("keymap_steno.h include is no longer required")
diff --git a/quantum/led_matrix/led_matrix.c b/quantum/led_matrix/led_matrix.c
index 2ec0ec4b19..4d67a295df 100644
--- a/quantum/led_matrix/led_matrix.c
+++ b/quantum/led_matrix/led_matrix.c
@@ -58,35 +58,6 @@ const led_point_t k_led_matrix_center = LED_MATRIX_CENTER;
// -----End led effect includes macros-------
// ------------------------------------------
-#ifndef LED_MATRIX_TIMEOUT
-# define LED_MATRIX_TIMEOUT 0
-#endif
-
-#if !defined(LED_MATRIX_MAXIMUM_BRIGHTNESS) || LED_MATRIX_MAXIMUM_BRIGHTNESS > UINT8_MAX
-# undef LED_MATRIX_MAXIMUM_BRIGHTNESS
-# define LED_MATRIX_MAXIMUM_BRIGHTNESS UINT8_MAX
-#endif
-
-#if !defined(LED_MATRIX_VAL_STEP)
-# define LED_MATRIX_VAL_STEP 8
-#endif
-
-#if !defined(LED_MATRIX_SPD_STEP)
-# define LED_MATRIX_SPD_STEP 16
-#endif
-
-#if !defined(LED_MATRIX_DEFAULT_MODE)
-# define LED_MATRIX_DEFAULT_MODE LED_MATRIX_SOLID
-#endif
-
-#if !defined(LED_MATRIX_DEFAULT_VAL)
-# define LED_MATRIX_DEFAULT_VAL LED_MATRIX_MAXIMUM_BRIGHTNESS
-#endif
-
-#if !defined(LED_MATRIX_DEFAULT_SPD)
-# define LED_MATRIX_DEFAULT_SPD UINT8_MAX / 2
-#endif
-
// globals
led_eeconfig_t led_matrix_eeconfig; // TODO: would like to prefix this with g_ for global consistancy, do this in another pr
uint32_t g_led_timer;
@@ -126,7 +97,7 @@ void eeconfig_update_led_matrix(void) {
void eeconfig_update_led_matrix_default(void) {
dprintf("eeconfig_update_led_matrix_default\n");
- led_matrix_eeconfig.enable = 1;
+ led_matrix_eeconfig.enable = LED_MATRIX_DEFAULT_ON;
led_matrix_eeconfig.mode = LED_MATRIX_DEFAULT_MODE;
led_matrix_eeconfig.val = LED_MATRIX_DEFAULT_VAL;
led_matrix_eeconfig.speed = LED_MATRIX_DEFAULT_SPD;
@@ -371,9 +342,8 @@ void led_matrix_task(void) {
case RENDERING:
led_task_render(effect);
if (effect) {
- // Only run the basic indicators in the last render iteration (default there are 5 iterations)
- if (led_effect_params.iter == LED_MATRIX_LED_PROCESS_MAX_ITERATIONS) {
- led_matrix_indicators();
+ if (led_task_state == FLUSHING) {
+ led_matrix_indicators(); // ensure we only draw basic indicators once rendering is finished
}
led_matrix_indicators_advanced(&led_effect_params);
}
@@ -405,14 +375,7 @@ void led_matrix_indicators_advanced(effect_params_t *params) {
* and not sure which would be better. Otherwise, this should be called from
* led_task_render, right before the iter++ line.
*/
-#if defined(LED_MATRIX_LED_PROCESS_LIMIT) && LED_MATRIX_LED_PROCESS_LIMIT > 0 && LED_MATRIX_LED_PROCESS_LIMIT < LED_MATRIX_LED_COUNT
- uint8_t min = LED_MATRIX_LED_PROCESS_LIMIT * (params->iter - 1);
- uint8_t max = min + LED_MATRIX_LED_PROCESS_LIMIT;
- if (max > LED_MATRIX_LED_COUNT) max = LED_MATRIX_LED_COUNT;
-#else
- uint8_t min = 0;
- uint8_t max = LED_MATRIX_LED_COUNT;
-#endif
+ LED_MATRIX_USE_LIMITS_ITER(min, max, params->iter - 1);
led_matrix_indicators_advanced_kb(min, max);
}
@@ -424,6 +387,36 @@ __attribute__((weak)) bool led_matrix_indicators_advanced_user(uint8_t led_min,
return true;
}
+struct led_matrix_limits_t led_matrix_get_limits(uint8_t iter) {
+ struct led_matrix_limits_t limits = {0};
+#if defined(LED_MATRIX_LED_PROCESS_LIMIT) && LED_MATRIX_LED_PROCESS_LIMIT > 0 && LED_MATRIX_LED_PROCESS_LIMIT < LED_MATRIX_LED_COUNT
+# if defined(LED_MATRIX_SPLIT)
+ limits.led_min_index = LED_MATRIX_LED_PROCESS_LIMIT * (iter);
+ limits.led_max_index = limits.led_min_index + LED_MATRIX_LED_PROCESS_LIMIT;
+ if (limits.led_max_index > LED_MATRIX_LED_COUNT) limits.led_max_index = LED_MATRIX_LED_COUNT;
+ uint8_t k_led_matrix_split[2] = LED_MATRIX_SPLIT;
+ if (is_keyboard_left() && (limits.led_max_index > k_led_matrix_split[0])) limits.led_max_index = k_led_matrix_split[0];
+ if (!(is_keyboard_left()) && (limits.led_min_index < k_led_matrix_split[0])) limits.led_min_index = k_led_matrix_split[0];
+# else
+ limits.led_min_index = LED_MATRIX_LED_PROCESS_LIMIT * (iter);
+ limits.led_max_index = limits.led_min_index + LED_MATRIX_LED_PROCESS_LIMIT;
+ if (limits.led_max_index > LED_MATRIX_LED_COUNT) limits.led_max_index = LED_MATRIX_LED_COUNT;
+# endif
+#else
+# if defined(LED_MATRIX_SPLIT)
+ limits.led_min_index = 0;
+ limits.led_max_index = LED_MATRIX_LED_COUNT;
+ const uint8_t k_led_matrix_split[2] = LED_MATRIX_SPLIT;
+ if (is_keyboard_left() && (limits.led_max_index > k_led_matrix_split[0])) limits.led_max_index = k_led_matrix_split[0];
+ if (!(is_keyboard_left()) && (limits.led_min_index < k_led_matrix_split[0])) limits.led_min_index = k_led_matrix_split[0];
+# else
+ limits.led_min_index = 0;
+ limits.led_max_index = LED_MATRIX_LED_COUNT;
+# endif
+#endif
+ return limits;
+}
+
void led_matrix_init(void) {
led_matrix_driver.init();
@@ -630,7 +623,7 @@ void led_matrix_decrease_speed(void) {
void led_matrix_set_flags_eeprom_helper(led_flags_t flags, bool write_to_eeprom) {
led_matrix_eeconfig.flags = flags;
eeconfig_flag_led_matrix(write_to_eeprom);
- dprintf("led matrix set speed [%s]: %u\n", (write_to_eeprom) ? "EEPROM" : "NOEEPROM", led_matrix_eeconfig.flags);
+ dprintf("led matrix set flags [%s]: %u\n", (write_to_eeprom) ? "EEPROM" : "NOEEPROM", led_matrix_eeconfig.flags);
}
led_flags_t led_matrix_get_flags(void) {
diff --git a/quantum/led_matrix/led_matrix.h b/quantum/led_matrix/led_matrix.h
index c2533ca49c..c903a230f4 100644
--- a/quantum/led_matrix/led_matrix.h
+++ b/quantum/led_matrix/led_matrix.h
@@ -25,16 +25,60 @@
#include "led_matrix_types.h"
#include "keyboard.h"
-#ifdef IS31FL3731
+#if defined(LED_MATRIX_IS31FL3218)
+# include "is31fl3218-simple.h"
+#elif defined(LED_MATRIX_IS31FL3731)
# include "is31fl3731-simple.h"
-#elif defined(IS31FLCOMMON)
-# include "is31flcommon.h"
#endif
-#ifdef IS31FL3733
+#ifdef LED_MATRIX_IS31FL3733
# include "is31fl3733-simple.h"
#endif
-#ifdef CKLED2001
-# include "ckled2001-simple.h"
+#ifdef LED_MATRIX_IS31FL3736
+# include "is31fl3736-simple.h"
+#endif
+#ifdef LED_MATRIX_IS31FL3737
+# include "is31fl3737-simple.h"
+#endif
+#ifdef LED_MATRIX_IS31FL3741
+# include "is31fl3741-simple.h"
+#endif
+#if defined(IS31FLCOMMON)
+# include "is31flcommon.h"
+#endif
+#ifdef LED_MATRIX_SNLED27351
+# include "snled27351-simple.h"
+#endif
+
+#ifndef LED_MATRIX_TIMEOUT
+# define LED_MATRIX_TIMEOUT 0
+#endif
+
+#ifndef LED_MATRIX_MAXIMUM_BRIGHTNESS
+# define LED_MATRIX_MAXIMUM_BRIGHTNESS UINT8_MAX
+#endif
+
+#ifndef LED_MATRIX_VAL_STEP
+# define LED_MATRIX_VAL_STEP 8
+#endif
+
+#ifndef LED_MATRIX_SPD_STEP
+# define LED_MATRIX_SPD_STEP 16
+#endif
+
+#ifndef LED_MATRIX_DEFAULT_ON
+# define LED_MATRIX_DEFAULT_ON true
+#endif
+
+#ifndef LED_MATRIX_DEFAULT_MODE
+# define LED_MATRIX_DEFAULT_MODE LED_MATRIX_SOLID
+#endif
+
+#ifndef LED_MATRIX_DEFAULT_VAL
+# define LED_MATRIX_DEFAULT_VAL LED_MATRIX_MAXIMUM_BRIGHTNESS
+#endif
+
+#ifndef LED_MATRIX_DEFAULT_SPD
+# define LED_MATRIX_DEFAULT_SPD UINT8_MAX / 2
#endif
#ifndef LED_MATRIX_LED_FLUSH_LIMIT
@@ -44,37 +88,22 @@
#ifndef LED_MATRIX_LED_PROCESS_LIMIT
# define LED_MATRIX_LED_PROCESS_LIMIT ((LED_MATRIX_LED_COUNT + 4) / 5)
#endif
-#define LED_MATRIX_LED_PROCESS_MAX_ITERATIONS ((LED_MATRIX_LED_COUNT + LED_MATRIX_LED_PROCESS_LIMIT - 1) / LED_MATRIX_LED_PROCESS_LIMIT)
-
-#if defined(LED_MATRIX_LED_PROCESS_LIMIT) && LED_MATRIX_LED_PROCESS_LIMIT > 0 && LED_MATRIX_LED_PROCESS_LIMIT < LED_MATRIX_LED_COUNT
-# if defined(LED_MATRIX_SPLIT)
-# define LED_MATRIX_USE_LIMITS(min, max) \
- uint8_t min = LED_MATRIX_LED_PROCESS_LIMIT * params->iter; \
- uint8_t max = min + LED_MATRIX_LED_PROCESS_LIMIT; \
- if (max > LED_MATRIX_LED_COUNT) max = LED_MATRIX_LED_COUNT; \
- uint8_t k_led_matrix_split[2] = LED_MATRIX_SPLIT; \
- if (is_keyboard_left() && (max > k_led_matrix_split[0])) max = k_led_matrix_split[0]; \
- if (!(is_keyboard_left()) && (min < k_led_matrix_split[0])) min = k_led_matrix_split[0];
-# else
-# define LED_MATRIX_USE_LIMITS(min, max) \
- uint8_t min = LED_MATRIX_LED_PROCESS_LIMIT * params->iter; \
- uint8_t max = min + LED_MATRIX_LED_PROCESS_LIMIT; \
- if (max > LED_MATRIX_LED_COUNT) max = LED_MATRIX_LED_COUNT;
-# endif
-#else
-# if defined(LED_MATRIX_SPLIT)
-# define LED_MATRIX_USE_LIMITS(min, max) \
- uint8_t min = 0; \
- uint8_t max = LED_MATRIX_LED_COUNT; \
- const uint8_t k_led_matrix_split[2] = LED_MATRIX_SPLIT; \
- if (is_keyboard_left() && (max > k_led_matrix_split[0])) max = k_led_matrix_split[0]; \
- if (!(is_keyboard_left()) && (min < k_led_matrix_split[0])) min = k_led_matrix_split[0];
-# else
-# define LED_MATRIX_USE_LIMITS(min, max) \
- uint8_t min = 0; \
- uint8_t max = LED_MATRIX_LED_COUNT;
-# endif
-#endif
+
+struct led_matrix_limits_t {
+ uint8_t led_min_index;
+ uint8_t led_max_index;
+};
+
+struct led_matrix_limits_t led_matrix_get_limits(uint8_t iter);
+
+#define LED_MATRIX_USE_LIMITS_ITER(min, max, iter) \
+ struct led_matrix_limits_t limits = led_matrix_get_limits(iter); \
+ uint8_t min = limits.led_min_index; \
+ uint8_t max = limits.led_max_index; \
+ (void)min; \
+ (void)max;
+
+#define LED_MATRIX_USE_LIMITS(min, max) LED_MATRIX_USE_LIMITS_ITER(min, max, params->iter)
#define LED_MATRIX_TEST_LED_FLAGS() \
if (!HAS_ANY_FLAGS(g_led_config.flags[i], params->flags)) continue
diff --git a/quantum/led_matrix/led_matrix_drivers.c b/quantum/led_matrix/led_matrix_drivers.c
index 13c8935d11..117bed9851 100644
--- a/quantum/led_matrix/led_matrix_drivers.c
+++ b/quantum/led_matrix/led_matrix_drivers.c
@@ -25,223 +25,68 @@
* in their own files.
*/
-#if defined(IS31FL3731) || defined(IS31FL3733) || defined(IS31FLCOMMON) || defined(CKLED2001)
-# include "i2c_master.h"
-
-static void init(void) {
- i2c_init();
-
-# if defined(IS31FL3731)
- is31fl3731_init(LED_DRIVER_ADDR_1);
-# if defined(LED_DRIVER_ADDR_2)
- is31fl3731_init(LED_DRIVER_ADDR_2);
-# if defined(LED_DRIVER_ADDR_3)
- is31fl3731_init(LED_DRIVER_ADDR_3);
-# if defined(LED_DRIVER_ADDR_4)
- is31fl3731_init(LED_DRIVER_ADDR_4);
-# endif
-# endif
-# endif
-
-# elif defined(IS31FL3733)
-# if !defined(LED_DRIVER_SYNC_1)
-# define LED_DRIVER_SYNC_1 0
-# endif
- is31fl3733_init(LED_DRIVER_ADDR_1, LED_DRIVER_SYNC_1);
-# if defined(LED_DRIVER_ADDR_2)
-# if !defined(LED_DRIVER_SYNC_2)
-# define LED_DRIVER_SYNC_2 0
-# endif
- is31fl3733_init(LED_DRIVER_ADDR_2, LED_DRIVER_SYNC_2);
-# if defined(LED_DRIVER_ADDR_3)
-# if !defined(LED_DRIVER_SYNC_3)
-# define LED_DRIVER_SYNC_3 0
-# endif
- is31fl3733_init(LED_DRIVER_ADDR_3, LED_DRIVER_SYNC_3);
-# if defined(LED_DRIVER_ADDR_4)
-# if !defined(LED_DRIVER_SYNC_4)
-# define LED_DRIVER_SYNC_4 0
-# endif
- is31fl3733_init(LED_DRIVER_ADDR_4, LED_DRIVER_SYNC_4);
-# endif
-# endif
-# endif
-
-# elif defined(IS31FLCOMMON)
- IS31FL_common_init(DRIVER_ADDR_1, ISSI_SSR_1);
-# if defined(LED_DRIVER_ADDR_2)
- IS31FL_common_init(DRIVER_ADDR_2, ISSI_SSR_2);
-# if defined(LED_DRIVER_ADDR_3)
- IS31FL_common_init(DRIVER_ADDR_3, ISSI_SSR_3);
-# if defined(LED_DRIVER_ADDR_4)
- IS31FL_common_init(DRIVER_ADDR_4, ISSI_SSR_4);
-# endif
-# endif
-# endif
-# elif defined(CKLED2001)
-# if defined(LED_DRIVER_SHUTDOWN_PIN)
- setPinOutput(LED_DRIVER_SHUTDOWN_PIN);
- writePinHigh(LED_DRIVER_SHUTDOWN_PIN);
-# endif
-
- ckled2001_init(DRIVER_ADDR_1);
-# if defined(DRIVER_ADDR_2)
- ckled2001_init(DRIVER_ADDR_2);
-# if defined(DRIVER_ADDR_3)
- ckled2001_init(DRIVER_ADDR_3);
-# if defined(DRIVER_ADDR_4)
- ckled2001_init(DRIVER_ADDR_4);
-# endif
-# endif
-# endif
-# endif
-
- for (int index = 0; index < LED_MATRIX_LED_COUNT; index++) {
-# if defined(IS31FL3731)
- is31fl3731_set_led_control_register(index, true);
-# elif defined(IS31FL3733)
- is31fl3733_set_led_control_register(index, true);
-# elif defined(IS31FLCOMMON)
- IS31FL_simple_set_scaling_buffer(index, true);
-# elif defined(CKLED2001)
- ckled2001_set_led_control_register(index, true);
-# endif
- }
-
-// This actually updates the LED drivers
-# if defined(IS31FL3731)
- is31fl3731_update_led_control_registers(LED_DRIVER_ADDR_1, 0);
-# if defined(LED_DRIVER_ADDR_2)
- is31fl3731_update_led_control_registers(LED_DRIVER_ADDR_2, 1);
-# if defined(LED_DRIVER_ADDR_3)
- is31fl3731_update_led_control_registers(LED_DRIVER_ADDR_3, 2);
-# if defined(LED_DRIVER_ADDR_4)
- is31fl3731_update_led_control_registers(LED_DRIVER_ADDR_4, 3);
-# endif
-# endif
-# endif
-
-# elif defined(IS31FL3733)
- is31fl3733_update_led_control_registers(LED_DRIVER_ADDR_1, 0);
-# if defined(LED_DRIVER_ADDR_2)
- is31fl3733_update_led_control_registers(LED_DRIVER_ADDR_2, 1);
-# if defined(LED_DRIVER_ADDR_3)
- is31fl3733_update_led_control_registers(LED_DRIVER_ADDR_3, 2);
-# if defined(LED_DRIVER_ADDR_4)
- is31fl3733_update_led_control_registers(LED_DRIVER_ADDR_4, 3);
-# endif
-# endif
-# endif
-
-# elif defined(IS31FLCOMMON)
-# ifdef ISSI_MANUAL_SCALING
- IS31FL_set_manual_scaling_buffer();
-# endif
- IS31FL_common_update_scaling_register(DRIVER_ADDR_1, 0);
-# if defined(LED_DRIVER_ADDR_2)
- IS31FL_common_update_scaling_register(DRIVER_ADDR_2, 1);
-# if defined(LED_DRIVER_ADDR_3)
- IS31FL_common_update_scaling_register(DRIVER_ADDR_3, 2);
-# if defined(LED_DRIVER_ADDR_4)
- IS31FL_common_update_scaling_register(DRIVER_ADDR_4, 3);
-# endif
-# endif
-# endif
-# elif defined(CKLED2001)
- ckled2001_update_led_control_registers(DRIVER_ADDR_1, 0);
-# if defined(DRIVER_ADDR_2)
- ckled2001_update_led_control_registers(DRIVER_ADDR_2, 1);
-# if defined(DRIVER_ADDR_3)
- ckled2001_update_led_control_registers(DRIVER_ADDR_3, 2);
-# if defined(DRIVER_ADDR_4)
- ckled2001_update_led_control_registers(DRIVER_ADDR_4, 3);
-# endif
-# endif
-# endif
-# endif
-}
-
-# if defined(IS31FL3731)
-static void flush(void) {
- is31fl3731_update_pwm_buffers(LED_DRIVER_ADDR_1, 0);
-# if defined(LED_DRIVER_ADDR_2)
- is31fl3731_update_pwm_buffers(LED_DRIVER_ADDR_2, 1);
-# if defined(LED_DRIVER_ADDR_3)
- is31fl3731_update_pwm_buffers(LED_DRIVER_ADDR_3, 2);
-# if defined(LED_DRIVER_ADDR_4)
- is31fl3731_update_pwm_buffers(LED_DRIVER_ADDR_4, 3);
-# endif
-# endif
-# endif
-}
+#if defined(LED_MATRIX_IS31FL3218)
+const led_matrix_driver_t led_matrix_driver = {
+ .init = is31fl3218_init,
+ .flush = is31fl3218_update_pwm_buffers,
+ .set_value = is31fl3218_set_value,
+ .set_value_all = is31fl3218_set_value_all,
+};
+#elif defined(LED_MATRIX_IS31FL3731)
const led_matrix_driver_t led_matrix_driver = {
- .init = init,
- .flush = flush,
+ .init = is31fl3731_init_drivers,
+ .flush = is31fl3731_flush,
.set_value = is31fl3731_set_value,
.set_value_all = is31fl3731_set_value_all,
};
-# elif defined(IS31FL3733)
-static void flush(void) {
- is31fl3733_update_pwm_buffers(LED_DRIVER_ADDR_1, 0);
-# if defined(LED_DRIVER_ADDR_2)
- is31fl3733_update_pwm_buffers(LED_DRIVER_ADDR_2, 1);
-# if defined(LED_DRIVER_ADDR_3)
- is31fl3733_update_pwm_buffers(LED_DRIVER_ADDR_3, 2);
-# if defined(LED_DRIVER_ADDR_4)
- is31fl3733_update_pwm_buffers(LED_DRIVER_ADDR_4, 3);
-# endif
-# endif
-# endif
-}
-
+#elif defined(LED_MATRIX_IS31FL3733)
const led_matrix_driver_t led_matrix_driver = {
- .init = init,
- .flush = flush,
- .set_value = is31fl3733_set_value,
+ .init = is31fl3733_init_drivers,
+ .flush = is31fl3733_flush,
+ .set_value = is31fl3733_set_value,
.set_value_all = is31fl3733_set_value_all,
};
-# elif defined(IS31FLCOMMON)
-static void flush(void) {
- IS31FL_common_update_pwm_register(DRIVER_ADDR_1, 0);
-# if defined(LED_DRIVER_ADDR_2)
- IS31FL_common_update_pwm_register(DRIVER_ADDR_2, 1);
-# if defined(LED_DRIVER_ADDR_3)
- IS31FL_common_update_pwm_register(DRIVER_ADDR_3, 2);
-# if defined(LED_DRIVER_ADDR_4)
- IS31FL_common_update_pwm_register(DRIVER_ADDR_4, 3);
-# endif
-# endif
-# endif
-}
+#elif defined(LED_MATRIX_IS31FL3736)
+const led_matrix_driver_t led_matrix_driver = {
+ .init = is31fl3736_init_drivers,
+ .flush = is31fl3736_flush,
+ .set_value = is31fl3736_set_value,
+ .set_value_all = is31fl3736_set_value_all,
+};
+#elif defined(LED_MATRIX_IS31FL3737)
const led_matrix_driver_t led_matrix_driver = {
- .init = init,
- .flush = flush,
- .set_value = IS31FL_simple_set_brightness,
+ .init = is31fl3737_init_drivers,
+ .flush = is31fl3737_flush,
+ .set_value = is31fl3737_set_value,
+ .set_value_all = is31fl3737_set_value_all,
+};
+
+#elif defined(LED_MATRIX_IS31FL3741)
+const led_matrix_driver_t led_matrix_driver = {
+ .init = is31fl3741_init_drivers,
+ .flush = is31fl3741_flush,
+ .set_value = is31fl3741_set_value,
+ .set_value_all = is31fl3741_set_value_all,
+};
+
+#elif defined(IS31FLCOMMON)
+const led_matrix_driver_t led_matrix_driver = {
+ .init = IS31FL_simple_init_drivers,
+ .flush = IS31FL_common_flush,
+ .set_value = IS31FL_simple_set_brightness,
.set_value_all = IS31FL_simple_set_brigntness_all,
};
-# elif defined(CKLED2001)
-static void flush(void) {
- ckled2001_update_pwm_buffers(DRIVER_ADDR_1, 0);
-# if defined(DRIVER_ADDR_2)
- ckled2001_update_pwm_buffers(DRIVER_ADDR_2, 1);
-# if defined(DRIVER_ADDR_3)
- ckled2001_update_pwm_buffers(DRIVER_ADDR_3, 2);
-# if defined(DRIVER_ADDR_4)
- ckled2001_update_pwm_buffers(DRIVER_ADDR_4, 3);
-# endif
-# endif
-# endif
-}
+#elif defined(LED_MATRIX_SNLED27351)
const led_matrix_driver_t led_matrix_driver = {
- .init = init,
- .flush = flush,
- .set_value = ckled2001_set_value,
- .set_value_all = ckled2001_set_value_all,
+ .init = snled27351_init_drivers,
+ .flush = snled27351_flush,
+ .set_value = snled27351_set_value,
+ .set_value_all = snled27351_set_value_all,
};
-# endif
+
#endif
diff --git a/quantum/led_matrix/led_matrix_types.h b/quantum/led_matrix/led_matrix_types.h
index 6709a558bb..5a516ceb10 100644
--- a/quantum/led_matrix/led_matrix_types.h
+++ b/quantum/led_matrix/led_matrix_types.h
@@ -18,16 +18,7 @@
#include <stdint.h>
#include <stdbool.h>
-
-#if defined(__GNUC__)
-# define PACKED __attribute__((__packed__))
-#else
-# define PACKED
-#endif
-
-#if defined(_MSC_VER)
-# pragma pack(push, 1)
-#endif
+#include "util.h"
#if defined(LED_MATRIX_KEYPRESSES) || defined(LED_MATRIX_KEYRELEASES)
# define LED_MATRIX_KEYREACTIVE_ENABLED
@@ -92,7 +83,3 @@ typedef union {
} led_eeconfig_t;
_Static_assert(sizeof(led_eeconfig_t) == sizeof(uint32_t), "LED Matrix EECONFIG out of spec.");
-
-#if defined(_MSC_VER)
-# pragma pack(pop)
-#endif
diff --git a/quantum/mousekey.c b/quantum/mousekey.c
index c982a2f40b..3910811752 100644
--- a/quantum/mousekey.c
+++ b/quantum/mousekey.c
@@ -389,7 +389,20 @@ void mousekey_on(uint8_t code) {
if (mouse_timer == 0) {
mouse_timer = timer_read();
}
-# endif /* #ifdef MK_KINETIC_SPEED */
+# endif
+
+# ifndef MOUSEKEY_INERTIA
+ // If mouse report is not zero, the current mousekey press is overlapping
+ // with another. Restart acceleration for smoother directional transition.
+ if (mouse_report.x || mouse_report.y || mouse_report.h || mouse_report.v) {
+# ifdef MK_KINETIC_SPEED
+ mouse_timer = timer_read() - (MOUSEKEY_INTERVAL << 2);
+# else
+ mousekey_repeat = MOUSEKEY_MOVE_DELTA;
+ mousekey_wheel_repeat = MOUSEKEY_WHEEL_DELTA;
+# endif
+ }
+# endif // ifndef MOUSEKEY_INERTIA
# ifdef MOUSEKEY_INERTIA
diff --git a/quantum/painter/lvgl/qp_lvgl.c b/quantum/painter/lvgl/qp_lvgl.c
index 280aeaf91f..877b2652c6 100644
--- a/quantum/painter/lvgl/qp_lvgl.c
+++ b/quantum/painter/lvgl/qp_lvgl.c
@@ -81,8 +81,8 @@ bool qp_lvgl_attach(painter_device_t device) {
lvgl_state_t *lv_task_handler_state = &lvgl_states[1];
lv_task_handler_state->fnc_id = 1;
- lv_task_handler_state->delay_ms = 5;
- lv_task_handler_state->defer_token = defer_exec_advanced(lvgl_executors, 2, 5, tick_task_callback, lv_task_handler_state);
+ lv_task_handler_state->delay_ms = QP_LVGL_TASK_PERIOD;
+ lv_task_handler_state->defer_token = defer_exec_advanced(lvgl_executors, 2, QP_LVGL_TASK_PERIOD, tick_task_callback, lv_task_handler_state);
if (lv_task_handler_state->defer_token == INVALID_DEFERRED_TOKEN) {
qp_dprintf("qp_lvgl_attach: fail (could not set up qp_lvgl executor)\n");
@@ -96,13 +96,14 @@ bool qp_lvgl_attach(painter_device_t device) {
// Set up lvgl display buffer
static lv_disp_draw_buf_t draw_buf;
// Allocate a buffer for 1/10 screen size
- const size_t count_required = driver->panel_width * driver->panel_height / 10;
- color_buffer = color_buffer ? realloc(color_buffer, sizeof(lv_color_t) * count_required) : malloc(sizeof(lv_color_t) * count_required);
- if (!color_buffer) {
+ const size_t count_required = driver->panel_width * driver->panel_height / 10;
+ void * new_color_buffer = realloc(color_buffer, sizeof(lv_color_t) * count_required);
+ if (!new_color_buffer) {
qp_dprintf("qp_lvgl_attach: fail (could not set up memory buffer)\n");
qp_lvgl_detach();
return false;
}
+ color_buffer = new_color_buffer;
memset(color_buffer, 0, sizeof(lv_color_t) * count_required);
// Initialize the display buffer.
lv_disp_draw_buf_init(&draw_buf, color_buffer, NULL, count_required);
diff --git a/quantum/painter/lvgl/qp_lvgl.h b/quantum/painter/lvgl/qp_lvgl.h
index d9ad5e8df1..87ba3ac0a5 100644
--- a/quantum/painter/lvgl/qp_lvgl.h
+++ b/quantum/painter/lvgl/qp_lvgl.h
@@ -7,6 +7,10 @@
#include "qp.h"
#include "lvgl.h"
+#ifndef QP_LVGL_TASK_PERIOD
+# define QP_LVGL_TASK_PERIOD 5
+#endif
+
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Quantum Painter - LVGL External API
diff --git a/quantum/painter/qff.c b/quantum/painter/qff.c
index cd6af788f9..8590f5b400 100644
--- a/quantum/painter/qff.c
+++ b/quantum/painter/qff.c
@@ -10,7 +10,7 @@
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// QFF API
-bool qff_read_font_descriptor(qp_stream_t *stream, uint8_t *line_height, bool *has_ascii_table, uint16_t *num_unicode_glyphs, uint8_t *bpp, bool *has_palette, painter_compression_t *compression_scheme, uint32_t *total_bytes) {
+bool qff_read_font_descriptor(qp_stream_t *stream, uint8_t *line_height, bool *has_ascii_table, uint16_t *num_unicode_glyphs, uint8_t *bpp, bool *has_palette, bool *is_panel_native, painter_compression_t *compression_scheme, uint32_t *total_bytes) {
// Seek to the start
qp_stream_setpos(stream, 0);
@@ -49,7 +49,7 @@ bool qff_read_font_descriptor(qp_stream_t *stream, uint8_t *line_height, bool *h
*num_unicode_glyphs = font_descriptor.num_unicode_glyphs;
}
if (bpp || has_palette) {
- if (!qgf_parse_format(font_descriptor.format, bpp, has_palette)) {
+ if (!qgf_parse_format(font_descriptor.format, bpp, has_palette, is_panel_native)) {
return false;
}
}
@@ -102,7 +102,7 @@ bool qff_validate_stream(qp_stream_t *stream) {
bool has_ascii_table;
uint16_t num_unicode_glyphs;
- if (!qff_read_font_descriptor(stream, NULL, &has_ascii_table, &num_unicode_glyphs, NULL, NULL, NULL, NULL)) {
+ if (!qff_read_font_descriptor(stream, NULL, &has_ascii_table, &num_unicode_glyphs, NULL, NULL, NULL, NULL, NULL)) {
return false;
}
@@ -127,7 +127,7 @@ uint32_t qff_get_total_size(qp_stream_t *stream) {
// Read the font descriptor, grabbing the size
uint32_t total_size;
- if (!qff_read_font_descriptor(stream, NULL, NULL, NULL, NULL, NULL, NULL, &total_size)) {
+ if (!qff_read_font_descriptor(stream, NULL, NULL, NULL, NULL, NULL, NULL, NULL, &total_size)) {
return false;
}
diff --git a/quantum/painter/qff.h b/quantum/painter/qff.h
index d1d629582f..c3b831da17 100644
--- a/quantum/painter/qff.h
+++ b/quantum/painter/qff.h
@@ -85,4 +85,4 @@ typedef struct QP_PACKED qff_unicode_glyph_table_v1_t {
bool qff_validate_stream(qp_stream_t *stream);
uint32_t qff_get_total_size(qp_stream_t *stream);
-bool qff_read_font_descriptor(qp_stream_t *stream, uint8_t *line_height, bool *has_ascii_table, uint16_t *num_unicode_glyphs, uint8_t *bpp, bool *has_palette, painter_compression_t *compression_scheme, uint32_t *total_bytes);
+bool qff_read_font_descriptor(qp_stream_t *stream, uint8_t *line_height, bool *has_ascii_table, uint16_t *num_unicode_glyphs, uint8_t *bpp, bool *has_palette, bool *is_panel_native, painter_compression_t *compression_scheme, uint32_t *total_bytes);
diff --git a/quantum/painter/qgf.c b/quantum/painter/qgf.c
index 6a4af07001..bc2df94933 100644
--- a/quantum/painter/qgf.c
+++ b/quantum/painter/qgf.c
@@ -24,22 +24,23 @@ bool qgf_validate_block_header(qgf_block_header_v1_t *desc, uint8_t expected_typ
return true;
}
-bool qgf_parse_format(qp_image_format_t format, uint8_t *bpp, bool *has_palette) {
+bool qgf_parse_format(qp_image_format_t format, uint8_t *bpp, bool *has_palette, bool *is_panel_native) {
// clang-format off
- static const struct QP_PACKED {
+ static const struct QP_PACKED {
uint8_t bpp;
bool has_palette;
+ bool is_panel_native;
} formats[] = {
- [GRAYSCALE_1BPP] = {.bpp = 1, .has_palette = false},
- [GRAYSCALE_2BPP] = {.bpp = 2, .has_palette = false},
- [GRAYSCALE_4BPP] = {.bpp = 4, .has_palette = false},
- [GRAYSCALE_8BPP] = {.bpp = 8, .has_palette = false},
- [PALETTE_1BPP] = {.bpp = 1, .has_palette = true},
- [PALETTE_2BPP] = {.bpp = 2, .has_palette = true},
- [PALETTE_4BPP] = {.bpp = 4, .has_palette = true},
- [PALETTE_8BPP] = {.bpp = 8, .has_palette = true},
- [RGB565_16BPP] = {.bpp = 16, .has_palette = false},
- [RGB888_24BPP] = {.bpp = 24, .has_palette = false},
+ [GRAYSCALE_1BPP] = {.bpp = 1, .has_palette = false, .is_panel_native = false},
+ [GRAYSCALE_2BPP] = {.bpp = 2, .has_palette = false, .is_panel_native = false},
+ [GRAYSCALE_4BPP] = {.bpp = 4, .has_palette = false, .is_panel_native = false},
+ [GRAYSCALE_8BPP] = {.bpp = 8, .has_palette = false, .is_panel_native = false},
+ [PALETTE_1BPP] = {.bpp = 1, .has_palette = true, .is_panel_native = false},
+ [PALETTE_2BPP] = {.bpp = 2, .has_palette = true, .is_panel_native = false},
+ [PALETTE_4BPP] = {.bpp = 4, .has_palette = true, .is_panel_native = false},
+ [PALETTE_8BPP] = {.bpp = 8, .has_palette = true, .is_panel_native = false},
+ [RGB565_16BPP] = {.bpp = 16, .has_palette = false, .is_panel_native = true},
+ [RGB888_24BPP] = {.bpp = 24, .has_palette = false, .is_panel_native = true},
};
// clang-format on
@@ -56,13 +57,16 @@ bool qgf_parse_format(qp_image_format_t format, uint8_t *bpp, bool *has_palette)
if (has_palette) {
*has_palette = formats[format].has_palette;
}
+ if (is_panel_native) {
+ *is_panel_native = formats[format].is_panel_native;
+ }
return true;
}
-bool qgf_parse_frame_descriptor(qgf_frame_v1_t *frame_descriptor, uint8_t *bpp, bool *has_palette, bool *is_delta, painter_compression_t *compression_scheme, uint16_t *delay) {
+bool qgf_parse_frame_descriptor(qgf_frame_v1_t *frame_descriptor, uint8_t *bpp, bool *has_palette, bool *is_panel_native, bool *is_delta, painter_compression_t *compression_scheme, uint16_t *delay) {
// Decode the format
- qgf_parse_format(frame_descriptor->format, bpp, has_palette);
+ qgf_parse_format(frame_descriptor->format, bpp, has_palette, is_panel_native);
// Copy out the required info
if (is_delta) {
@@ -173,7 +177,7 @@ void qgf_seek_to_frame_descriptor(qp_stream_t *stream, uint16_t frame_number) {
qp_stream_setpos(stream, offset);
}
-bool qgf_validate_frame_descriptor(qp_stream_t *stream, uint16_t frame_number, uint8_t *bpp, bool *has_palette, bool *is_delta) {
+bool qgf_validate_frame_descriptor(qp_stream_t *stream, uint16_t frame_number, uint8_t *bpp, bool *has_palette, bool *is_panel_native, bool *is_delta) {
// Seek to the correct location
qgf_seek_to_frame_descriptor(stream, frame_number);
@@ -189,7 +193,7 @@ bool qgf_validate_frame_descriptor(qp_stream_t *stream, uint16_t frame_number, u
return false;
}
- return qgf_parse_frame_descriptor(&frame_descriptor, bpp, has_palette, is_delta, NULL, NULL);
+ return qgf_parse_frame_descriptor(&frame_descriptor, bpp, has_palette, is_panel_native, is_delta, NULL, NULL);
}
bool qgf_validate_palette_descriptor(qp_stream_t *stream, uint16_t frame_number, uint8_t bpp) {
@@ -253,8 +257,9 @@ bool qgf_validate_stream(qp_stream_t *stream) {
// Validate the frame descriptor block
uint8_t bpp;
bool has_palette;
+ bool is_panel_native;
bool has_delta;
- if (!qgf_validate_frame_descriptor(stream, i, &bpp, &has_palette, &has_delta)) {
+ if (!qgf_validate_frame_descriptor(stream, i, &bpp, &has_palette, &is_panel_native, &has_delta)) {
return false;
}
diff --git a/quantum/painter/qgf.h b/quantum/painter/qgf.h
index 54585edd04..33a37709e6 100644
--- a/quantum/painter/qgf.h
+++ b/quantum/painter/qgf.h
@@ -65,7 +65,7 @@ _Static_assert(sizeof(qgf_frame_offsets_v1_t) == sizeof(qgf_block_header_v1_t),
typedef struct QP_PACKED qgf_frame_v1_t {
qgf_block_header_v1_t header; // = { .type_id = 0x02, .neg_type_id = (~0x02), .length = 6 }
- qp_image_format_t format : 8; // Frame format, see qp.h.
+ qp_image_format_t format : 8; // Frame format, see qp_internal_formats.h.
uint8_t flags; // Frame flags, see below.
painter_compression_t compression_scheme : 8; // Compression scheme, see qp.h.
uint8_t transparency_index; // palette index used for transparent pixels (not yet implemented)
@@ -131,6 +131,6 @@ uint32_t qgf_get_total_size(qp_stream_t *stream);
bool qgf_validate_stream(qp_stream_t *stream);
bool qgf_validate_block_header(qgf_block_header_v1_t *desc, uint8_t expected_typeid, int32_t expected_length);
bool qgf_read_graphics_descriptor(qp_stream_t *stream, uint16_t *image_width, uint16_t *image_height, uint16_t *frame_count, uint32_t *total_bytes);
-bool qgf_parse_format(qp_image_format_t format, uint8_t *bpp, bool *has_palette);
+bool qgf_parse_format(qp_image_format_t format, uint8_t *bpp, bool *has_palette, bool *is_panel_native);
void qgf_seek_to_frame_descriptor(qp_stream_t *stream, uint16_t frame_number);
-bool qgf_parse_frame_descriptor(qgf_frame_v1_t *frame_descriptor, uint8_t *bpp, bool *has_palette, bool *is_delta, painter_compression_t *compression_scheme, uint16_t *delay);
+bool qgf_parse_frame_descriptor(qgf_frame_v1_t *frame_descriptor, uint8_t *bpp, bool *has_palette, bool *is_panel_native, bool *is_delta, painter_compression_t *compression_scheme, uint16_t *delay);
diff --git a/quantum/painter/qp.c b/quantum/painter/qp.c
index f27bb7892a..3759866509 100644
--- a/quantum/painter/qp.c
+++ b/quantum/painter/qp.c
@@ -12,11 +12,11 @@
// Internal driver validation
static bool validate_driver_vtable(painter_driver_t *driver) {
- return (driver->driver_vtable && driver->driver_vtable->init && driver->driver_vtable->power && driver->driver_vtable->clear && driver->driver_vtable->viewport && driver->driver_vtable->pixdata && driver->driver_vtable->palette_convert && driver->driver_vtable->append_pixels && driver->driver_vtable->append_pixdata) ? true : false;
+ return (driver && driver->driver_vtable && driver->driver_vtable->init && driver->driver_vtable->power && driver->driver_vtable->clear && driver->driver_vtable->viewport && driver->driver_vtable->pixdata && driver->driver_vtable->palette_convert && driver->driver_vtable->append_pixels && driver->driver_vtable->append_pixdata) ? true : false;
}
static bool validate_comms_vtable(painter_driver_t *driver) {
- return (driver->comms_vtable && driver->comms_vtable->comms_init && driver->comms_vtable->comms_start && driver->comms_vtable->comms_stop && driver->comms_vtable->comms_send) ? true : false;
+ return (driver && driver->comms_vtable && driver->comms_vtable->comms_init && driver->comms_vtable->comms_start && driver->comms_vtable->comms_stop && driver->comms_vtable->comms_send) ? true : false;
}
static bool validate_driver_integrity(painter_driver_t *driver) {
@@ -131,49 +131,126 @@ bool qp_flush(painter_device_t device) {
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-// Quantum Painter External API: qp_get_geometry
+// Quantum Painter External API: qp_get_*
-void qp_get_geometry(painter_device_t device, uint16_t *width, uint16_t *height, painter_rotation_t *rotation, uint16_t *offset_x, uint16_t *offset_y) {
- qp_dprintf("qp_get_geometry: entry\n");
+uint16_t qp_get_width(painter_device_t device) {
+ qp_dprintf("qp_get_width: entry\n");
painter_driver_t *driver = (painter_driver_t *)device;
- if (!driver) {
- qp_dprintf("qp_get_geometry: fail (pointer to NULL)\n");
- return;
+ if (!driver || !driver->validate_ok) {
+ qp_dprintf("qp_get_width: fail (invalid driver)\n");
+ return 0;
+ }
+
+ uint16_t width;
+ switch (driver->rotation) {
+ default:
+ case QP_ROTATION_0:
+ case QP_ROTATION_180:
+ width = driver->panel_width;
+ break;
+ case QP_ROTATION_90:
+ case QP_ROTATION_270:
+ width = driver->panel_height;
+ break;
}
+ qp_dprintf("qp_get_width: ok\n");
+ return width;
+}
+
+uint16_t qp_get_height(painter_device_t device) {
+ qp_dprintf("qp_get_height: entry\n");
+ painter_driver_t *driver = (painter_driver_t *)device;
+
+ if (!driver || !driver->validate_ok) {
+ qp_dprintf("qp_get_height: fail (invalid driver)\n");
+ return 0;
+ }
+
+ uint16_t height;
switch (driver->rotation) {
default:
case QP_ROTATION_0:
case QP_ROTATION_180:
- if (width) {
- *width = driver->panel_width;
- }
- if (height) {
- *height = driver->panel_height;
- }
+ height = driver->panel_height;
break;
case QP_ROTATION_90:
case QP_ROTATION_270:
- if (width) {
- *width = driver->panel_height;
- }
- if (height) {
- *height = driver->panel_width;
- }
+ height = driver->panel_width;
break;
}
+ qp_dprintf("qp_get_height: ok\n");
+ return height;
+}
+
+painter_rotation_t qp_get_rotation(painter_device_t device) {
+ qp_dprintf("qp_get_rotation: entry\n");
+ painter_driver_t *driver = (painter_driver_t *)device;
+
+ if (!driver || !driver->validate_ok) {
+ qp_dprintf("qp_get_rotation: fail (invalid driver)\n");
+ return QP_ROTATION_0;
+ }
+
+ qp_dprintf("qp_get_rotation: ok\n");
+ return driver->rotation;
+}
+
+uint16_t qp_get_offset_x(painter_device_t device) {
+ qp_dprintf("qp_get_offset_x: entry\n");
+ painter_driver_t *driver = (painter_driver_t *)device;
+
+ if (!driver || !driver->validate_ok) {
+ qp_dprintf("qp_get_offset_x: fail (invalid driver)\n");
+ return 0;
+ }
+
+ qp_dprintf("qp_get_offset_x: ok\n");
+ return driver->offset_x;
+}
+
+uint16_t qp_get_offset_y(painter_device_t device) {
+ qp_dprintf("qp_get_offset_y: entry\n");
+ painter_driver_t *driver = (painter_driver_t *)device;
+
+ if (!driver || !driver->validate_ok) {
+ qp_dprintf("qp_get_offset_y: fail (invalid driver)\n");
+ return 0;
+ }
+
+ qp_dprintf("qp_get_offset_y: ok\n");
+ return driver->offset_y;
+}
+
+void qp_get_geometry(painter_device_t device, uint16_t *width, uint16_t *height, painter_rotation_t *rotation, uint16_t *offset_x, uint16_t *offset_y) {
+ qp_dprintf("qp_geometry: entry\n");
+ painter_driver_t *driver = (painter_driver_t *)device;
+
+ if (!driver || !driver->validate_ok) {
+ qp_dprintf("qp_geometry: fail (invalid driver)\n");
+ return;
+ }
+
+ if (width) {
+ *width = qp_get_width(device);
+ }
+
+ if (height) {
+ *height = qp_get_height(device);
+ }
+
if (rotation) {
- *rotation = driver->rotation;
+ *rotation = qp_get_rotation(device);
}
if (offset_x) {
- *offset_x = driver->offset_x;
+ *offset_x = qp_get_offset_x(device);
}
if (offset_y) {
- *offset_y = driver->offset_y;
+ *offset_y = qp_get_offset_y(device);
}
qp_dprintf("qp_get_geometry: ok\n");
diff --git a/quantum/painter/qp.h b/quantum/painter/qp.h
index 7222d3b413..873a9d9f32 100644
--- a/quantum/painter/qp.h
+++ b/quantum/painter/qp.h
@@ -176,6 +176,41 @@ bool qp_clear(painter_device_t device);
bool qp_flush(painter_device_t device);
/**
+ * Retrieves the width of the display.
+ *
+ * @param device[in] the handle of the device to control
+ */
+uint16_t qp_get_width(painter_device_t device);
+
+/**
+ * Retrieves the height of the display.
+ *
+ * @param device[in] the handle of the device to control
+ */
+uint16_t qp_get_height(painter_device_t device);
+
+/**
+ * Retrieves the rotation of the display.
+ *
+ * @param device[in] the handle of the device to control
+ */
+painter_rotation_t qp_get_rotation(painter_device_t device);
+
+/**
+ * Retrieves the x-offset of the display.
+ *
+ * @param device[in] the handle of the device to control
+ */
+uint16_t qp_get_offset_x(painter_device_t device);
+
+/**
+ * Retrieves the y-offset of the display.
+ *
+ * @param device[in] the handle of the device to control
+ */
+uint16_t qp_get_offset_y(painter_device_t device);
+
+/**
* Retrieves the size, rotation, and offsets for the display.
*
* @note Any arguments of NULL will be ignored.
@@ -504,6 +539,12 @@ int16_t qp_drawtext_recolor(painter_device_t device, uint16_t x, uint16_t y, pai
# define SSD1351_NUM_DEVICES 0
#endif // QUANTUM_PAINTER_SSD1351_ENABLE
+#ifdef QUANTUM_PAINTER_SH1106_ENABLE
+# include "qp_sh1106.h"
+#else // QUANTUM_PAINTER_SH1106_ENABLE
+# define SH1106_NUM_DEVICES 0
+#endif // QUANTUM_PAINTER_SH1106_ENABLE
+
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Quantum Painter Extras
diff --git a/quantum/painter/qp_draw_ellipse.c b/quantum/painter/qp_draw_ellipse.c
index e912a3e91f..9e77bca8b0 100644
--- a/quantum/painter/qp_draw_ellipse.c
+++ b/quantum/painter/qp_draw_ellipse.c
@@ -67,10 +67,10 @@ bool qp_ellipse(painter_device_t device, uint16_t x, uint16_t y, uint16_t sizex,
return false;
}
- int16_t aa = ((int16_t)sizex) * ((int16_t)sizex);
- int16_t bb = ((int16_t)sizey) * ((int16_t)sizey);
- int16_t fa = 4 * ((int16_t)aa);
- int16_t fb = 4 * ((int16_t)bb);
+ int32_t aa = ((int32_t)sizex) * ((int32_t)sizex);
+ int32_t bb = ((int32_t)sizey) * ((int32_t)sizey);
+ int32_t fa = 4 * aa;
+ int32_t fb = 4 * bb;
int16_t dx = 0;
int16_t dy = ((int16_t)sizey);
@@ -83,7 +83,7 @@ bool qp_ellipse(painter_device_t device, uint16_t x, uint16_t y, uint16_t sizex,
}
bool ret = true;
- for (int16_t delta = (2 * bb) + (aa * (1 - (2 * sizey))); bb * dx <= aa * dy; dx++) {
+ for (int32_t delta = (2 * bb) + (aa * (1 - (2 * sizey))); bb * dx <= aa * dy; dx++) {
if (!qp_ellipse_helper_impl(device, x, y, dx, dy, filled)) {
ret = false;
break;
@@ -98,7 +98,7 @@ bool qp_ellipse(painter_device_t device, uint16_t x, uint16_t y, uint16_t sizex,
dx = sizex;
dy = 0;
- for (int16_t delta = (2 * aa) + (bb * (1 - (2 * sizex))); aa * dy <= bb * dx; dy++) {
+ for (int32_t delta = (2 * aa) + (bb * (1 - (2 * sizex))); aa * dy <= bb * dx; dy++) {
if (!qp_ellipse_helper_impl(device, x, y, dx, dy, filled)) {
ret = false;
break;
diff --git a/quantum/painter/qp_draw_image.c b/quantum/painter/qp_draw_image.c
index fb17a05a1b..87c59148c2 100644
--- a/quantum/painter/qp_draw_image.c
+++ b/quantum/painter/qp_draw_image.c
@@ -115,6 +115,7 @@ typedef struct qgf_frame_info_t {
painter_compression_t compression_scheme;
uint8_t bpp;
bool has_palette;
+ bool is_panel_native;
bool is_delta;
uint16_t left;
uint16_t top;
@@ -143,7 +144,7 @@ static bool qp_drawimage_prepare_frame_for_stream_read(painter_device_t device,
}
// Parse out the frame info
- if (!qgf_parse_frame_descriptor(&frame_descriptor, &info->bpp, &info->has_palette, &info->is_delta, &info->compression_scheme, &info->delay)) {
+ if (!qgf_parse_frame_descriptor(&frame_descriptor, &info->bpp, &info->has_palette, &info->is_panel_native, &info->is_delta, &info->compression_scheme, &info->delay)) {
return false;
}
@@ -236,8 +237,8 @@ static bool qp_drawimage_recolor_impl(painter_device_t device, uint16_t x, uint1
if (frame_info->is_delta) {
l = x + frame_info->left;
t = y + frame_info->top;
- r = x + frame_info->right - 1;
- b = y + frame_info->bottom - 1;
+ r = x + frame_info->right;
+ b = y + frame_info->bottom;
} else {
l = x;
t = y;
@@ -263,7 +264,7 @@ static bool qp_drawimage_recolor_impl(painter_device_t device, uint16_t x, uint1
}
bool ret = false;
- if (frame_info->bpp <= 8) {
+ if (!frame_info->is_panel_native) {
// Set up the output state
qp_internal_pixel_output_state_t output_state = {.device = device, .pixel_write_pos = 0, .max_pixels = qp_internal_num_pixels_in_buffer(device)};
diff --git a/quantum/painter/qp_draw_text.c b/quantum/painter/qp_draw_text.c
index ff6fc01d11..1ac5cab646 100644
--- a/quantum/painter/qp_draw_text.c
+++ b/quantum/painter/qp_draw_text.c
@@ -19,6 +19,7 @@ typedef struct qff_font_handle_t {
uint16_t num_unicode_glyphs;
uint8_t bpp;
bool has_palette;
+ bool is_panel_native;
painter_compression_t compression_scheme;
union {
qp_stream_t stream;
@@ -97,7 +98,7 @@ static painter_font_handle_t qp_load_font_internal(bool (*stream_factory)(qff_fo
#endif // QUANTUM_PAINTER_LOAD_FONTS_TO_RAM
// Read the info (parsing already successful above, no need to check return value)
- qff_read_font_descriptor(&font->stream, &font->base.line_height, &font->has_ascii_table, &font->num_unicode_glyphs, &font->bpp, &font->has_palette, &font->compression_scheme, NULL);
+ qff_read_font_descriptor(&font->stream, &font->base.line_height, &font->has_ascii_table, &font->num_unicode_glyphs, &font->bpp, &font->has_palette, &font->is_panel_native, &font->compression_scheme, NULL);
if (!qp_internal_bpp_capable(font->bpp)) {
qp_dprintf("qp_load_font: fail (image bpp too high (%d), check QUANTUM_PAINTER_SUPPORTS_256_PALETTE or QUANTUM_PAINTER_SUPPORTS_NATIVE_COLORS)\n", (int)font->bpp);
diff --git a/quantum/painter/qp_internal.c b/quantum/painter/qp_internal.c
index 87a30c3f9b..0e81467e26 100644
--- a/quantum/painter/qp_internal.c
+++ b/quantum/painter/qp_internal.c
@@ -16,6 +16,7 @@ enum {
+ (ST7735_NUM_DEVICES) // ST7735
+ (GC9A01_NUM_DEVICES) // GC9A01
+ (SSD1351_NUM_DEVICES) // SSD1351
+ + (SH1106_NUM_DEVICES) // SH1106
};
static painter_device_t qp_devices[QP_NUM_DEVICES] = {NULL};
diff --git a/quantum/painter/qp_internal_formats.h b/quantum/painter/qp_internal_formats.h
index 194f82b31a..1beb604b9e 100644
--- a/quantum/painter/qp_internal_formats.h
+++ b/quantum/painter/qp_internal_formats.h
@@ -44,8 +44,8 @@ typedef enum qp_image_format_t {
PALETTE_2BPP = 0x05,
PALETTE_4BPP = 0x06,
PALETTE_8BPP = 0x07,
- RGB565_16BPP = 0x08,
- RGB888_24BPP = 0x09,
+ RGB565_16BPP = 0x08, // Natively streamed to the panel, no interpolation or palette handling
+ RGB888_24BPP = 0x09, // Natively streamed to the panel, no interpolation or palette handling
} qp_image_format_t;
typedef enum painter_compression_t { IMAGE_UNCOMPRESSED, IMAGE_COMPRESSED_RLE } painter_compression_t;
diff --git a/quantum/painter/rules.mk b/quantum/painter/rules.mk
index 7752936cbd..ca81cffb03 100644
--- a/quantum/painter/rules.mk
+++ b/quantum/painter/rules.mk
@@ -6,14 +6,16 @@ QUANTUM_PAINTER_LVGL_INTEGRATION ?= no
# The list of permissible drivers that can be listed in QUANTUM_PAINTER_DRIVERS
VALID_QUANTUM_PAINTER_DRIVERS := \
- rgb565_surface \
- ili9163_spi \
- ili9341_spi \
- ili9488_spi \
- st7735_spi \
- st7789_spi \
- gc9a01_spi \
- ssd1351_spi
+ surface \
+ ili9163_spi \
+ ili9341_spi \
+ ili9488_spi \
+ st7735_spi \
+ st7789_spi \
+ gc9a01_spi \
+ ssd1351_spi \
+ sh1106_i2c \
+ sh1106_spi
#-------------------------------------------------------------------------------
@@ -42,7 +44,9 @@ ifeq ($(strip $(QUANTUM_PAINTER_ANIMATIONS_ENABLE)), yes)
endif
# Comms flags
+QUANTUM_PAINTER_NEEDS_COMMS_DUMMY ?= no
QUANTUM_PAINTER_NEEDS_COMMS_SPI ?= no
+QUANTUM_PAINTER_NEEDS_COMMS_I2C ?= no
# Handler for each driver
define handle_quantum_painter_driver
@@ -51,12 +55,8 @@ define handle_quantum_painter_driver
ifeq ($$(filter $$(strip $$(CURRENT_PAINTER_DRIVER)),$$(VALID_QUANTUM_PAINTER_DRIVERS)),)
$$(error "$$(CURRENT_PAINTER_DRIVER)" is not a valid Quantum Painter driver)
- else ifeq ($$(strip $$(CURRENT_PAINTER_DRIVER)),rgb565_surface)
- OPT_DEFS += -DQUANTUM_PAINTER_RGB565_SURFACE_ENABLE
- COMMON_VPATH += \
- $(DRIVER_PATH)/painter/generic
- SRC += \
- $(DRIVER_PATH)/painter/generic/qp_rgb565_surface.c \
+ else ifeq ($$(strip $$(CURRENT_PAINTER_DRIVER)),surface)
+ QUANTUM_PAINTER_NEEDS_SURFACE := yes
else ifeq ($$(strip $$(CURRENT_PAINTER_DRIVER)),ili9163_spi)
QUANTUM_PAINTER_NEEDS_COMMS_SPI := yes
@@ -135,16 +135,60 @@ define handle_quantum_painter_driver
$(DRIVER_PATH)/painter/tft_panel/qp_tft_panel.c \
$(DRIVER_PATH)/painter/ssd1351/qp_ssd1351.c
+ else ifeq ($$(strip $$(CURRENT_PAINTER_DRIVER)),sh1106_spi)
+ QUANTUM_PAINTER_NEEDS_SURFACE := yes
+ QUANTUM_PAINTER_NEEDS_COMMS_SPI := yes
+ QUANTUM_PAINTER_NEEDS_COMMS_SPI_DC_RESET := yes
+ OPT_DEFS += -DQUANTUM_PAINTER_SH1106_ENABLE -DQUANTUM_PAINTER_SH1106_SPI_ENABLE
+ COMMON_VPATH += \
+ $(DRIVER_PATH)/painter/oled_panel \
+ $(DRIVER_PATH)/painter/sh1106
+ SRC += \
+ $(DRIVER_PATH)/painter/oled_panel/qp_oled_panel.c \
+ $(DRIVER_PATH)/painter/sh1106/qp_sh1106.c
+
+ else ifeq ($$(strip $$(CURRENT_PAINTER_DRIVER)),sh1106_i2c)
+ QUANTUM_PAINTER_NEEDS_SURFACE := yes
+ QUANTUM_PAINTER_NEEDS_COMMS_I2C := yes
+ OPT_DEFS += -DQUANTUM_PAINTER_SH1106_ENABLE -DQUANTUM_PAINTER_SH1106_I2C_ENABLE
+ COMMON_VPATH += \
+ $(DRIVER_PATH)/painter/oled_panel \
+ $(DRIVER_PATH)/painter/sh1106
+ SRC += \
+ $(DRIVER_PATH)/painter/oled_panel/qp_oled_panel.c \
+ $(DRIVER_PATH)/painter/sh1106/qp_sh1106.c
+
endif
endef
# Iterate through the listed drivers for the build, including what's necessary
$(foreach qp_driver,$(QUANTUM_PAINTER_DRIVERS),$(eval $(call handle_quantum_painter_driver,$(qp_driver))))
+# If a surface is needed, set up the required files
+ifeq ($(strip $(QUANTUM_PAINTER_NEEDS_SURFACE)), yes)
+ QUANTUM_PAINTER_NEEDS_COMMS_DUMMY := yes
+ OPT_DEFS += -DQUANTUM_PAINTER_SURFACE_ENABLE
+ COMMON_VPATH += \
+ $(DRIVER_PATH)/painter/generic
+ SRC += \
+ $(DRIVER_PATH)/painter/generic/qp_surface_common.c \
+ $(DRIVER_PATH)/painter/generic/qp_surface_mono1bpp.c \
+ $(DRIVER_PATH)/painter/generic/qp_surface_rgb565.c
+endif
+
+# If dummy comms is needed, set up the required files
+ifeq ($(strip $(QUANTUM_PAINTER_NEEDS_COMMS_DUMMY)), yes)
+ OPT_DEFS += -DQUANTUM_PAINTER_DUMMY_COMMS_ENABLE
+ VPATH += $(DRIVER_PATH)/painter/comms
+ SRC += \
+ $(QUANTUM_DIR)/painter/qp_comms.c \
+ $(DRIVER_PATH)/painter/comms/qp_comms_dummy.c
+endif
+
# If SPI comms is needed, set up the required files
ifeq ($(strip $(QUANTUM_PAINTER_NEEDS_COMMS_SPI)), yes)
OPT_DEFS += -DQUANTUM_PAINTER_SPI_ENABLE
- QUANTUM_LIB_SRC += spi_master.c
+ SPI_DRIVER_REQUIRED = yes
VPATH += $(DRIVER_PATH)/painter/comms
SRC += \
$(QUANTUM_DIR)/painter/qp_comms.c \
@@ -155,7 +199,17 @@ ifeq ($(strip $(QUANTUM_PAINTER_NEEDS_COMMS_SPI)), yes)
endif
endif
+# If I2C comms is needed, set up the required files
+ifeq ($(strip $(QUANTUM_PAINTER_NEEDS_COMMS_I2C)), yes)
+ OPT_DEFS += -DQUANTUM_PAINTER_I2C_ENABLE
+ I2C_DRIVER_REQUIRED = yes
+ VPATH += $(DRIVER_PATH)/painter/comms
+ SRC += \
+ $(QUANTUM_DIR)/painter/qp_comms.c \
+ $(DRIVER_PATH)/painter/comms/qp_comms_i2c.c
+endif
+
# Check if LVGL needs to be enabled
ifeq ($(strip $(QUANTUM_PAINTER_LVGL_INTEGRATION)), yes)
- include $(QUANTUM_DIR)/painter/lvgl/rules.mk
+ include $(QUANTUM_DIR)/painter/lvgl/rules.mk
endif
diff --git a/quantum/pointing_device/pointing_device.h b/quantum/pointing_device/pointing_device.h
index afd653eaee..1cd4b0b5e6 100644
--- a/quantum/pointing_device/pointing_device.h
+++ b/quantum/pointing_device/pointing_device.h
@@ -39,6 +39,9 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
# include "analog.h"
# include "drivers/sensors/analog_joystick.h"
# define POINTING_DEVICE_MOTION_PIN_ACTIVE_LOW
+#elif defined(POINTING_DEVICE_DRIVER_azoteq_iqs5xx)
+# include "i2c_master.h"
+# include "drivers/sensors/azoteq_iqs5xx.h"
#elif defined(POINTING_DEVICE_DRIVER_cirque_pinnacle_i2c) || defined(POINTING_DEVICE_DRIVER_cirque_pinnacle_spi)
# include "drivers/sensors/cirque_pinnacle.h"
# include "drivers/sensors/cirque_pinnacle_gestures.h"
diff --git a/quantum/pointing_device/pointing_device_drivers.c b/quantum/pointing_device/pointing_device_drivers.c
index 9a4315f76f..bf131c6eda 100644
--- a/quantum/pointing_device/pointing_device_drivers.c
+++ b/quantum/pointing_device/pointing_device_drivers.c
@@ -115,6 +115,119 @@ const pointing_device_driver_t pointing_device_driver = {
};
// clang-format on
+#elif defined(POINTING_DEVICE_DRIVER_azoteq_iqs5xx)
+
+static i2c_status_t azoteq_iqs5xx_init_status = 1;
+
+void azoteq_iqs5xx_init(void) {
+ i2c_init();
+ azoteq_iqs5xx_wake();
+ azoteq_iqs5xx_reset_suspend(true, false, true);
+ wait_ms(100);
+ azoteq_iqs5xx_wake();
+ if (azoteq_iqs5xx_get_product() != AZOTEQ_IQS5XX_UNKNOWN) {
+ azoteq_iqs5xx_setup_resolution();
+ azoteq_iqs5xx_init_status = azoteq_iqs5xx_set_report_rate(AZOTEQ_IQS5XX_REPORT_RATE, AZOTEQ_IQS5XX_ACTIVE, false);
+ azoteq_iqs5xx_init_status |= azoteq_iqs5xx_set_event_mode(false, false);
+ azoteq_iqs5xx_init_status |= azoteq_iqs5xx_set_reati(true, false);
+# if defined(AZOTEQ_IQS5XX_ROTATION_90)
+ azoteq_iqs5xx_init_status |= azoteq_iqs5xx_set_xy_config(false, true, true, true, false);
+# elif defined(AZOTEQ_IQS5XX_ROTATION_180)
+ azoteq_iqs5xx_init_status |= azoteq_iqs5xx_set_xy_config(true, true, false, true, false);
+# elif defined(AZOTEQ_IQS5XX_ROTATION_270)
+ azoteq_iqs5xx_init_status |= azoteq_iqs5xx_set_xy_config(true, false, true, true, false);
+# else
+ azoteq_iqs5xx_init_status |= azoteq_iqs5xx_set_xy_config(false, false, false, true, false);
+# endif
+ azoteq_iqs5xx_init_status |= azoteq_iqs5xx_set_gesture_config(true);
+ wait_ms(AZOTEQ_IQS5XX_REPORT_RATE + 1);
+ }
+};
+
+report_mouse_t azoteq_iqs5xx_get_report(report_mouse_t mouse_report) {
+ report_mouse_t temp_report = {0};
+ static uint8_t previous_button_state = 0;
+ static uint8_t read_error_count = 0;
+
+ if (azoteq_iqs5xx_init_status == I2C_STATUS_SUCCESS) {
+ azoteq_iqs5xx_base_data_t base_data = {0};
+# if !defined(POINTING_DEVICE_MOTION_PIN)
+ azoteq_iqs5xx_wake();
+# endif
+ i2c_status_t status = azoteq_iqs5xx_get_base_data(&base_data);
+ bool ignore_movement = false;
+
+ if (status == I2C_STATUS_SUCCESS) {
+ // pd_dprintf("IQS5XX - previous cycle time: %d \n", base_data.previous_cycle_time);
+ read_error_count = 0;
+ if (base_data.gesture_events_0.single_tap || base_data.gesture_events_0.press_and_hold) {
+ pd_dprintf("IQS5XX - Single tap/hold.\n");
+ temp_report.buttons = pointing_device_handle_buttons(temp_report.buttons, true, POINTING_DEVICE_BUTTON1);
+ } else if (base_data.gesture_events_1.two_finger_tap) {
+ pd_dprintf("IQS5XX - Two finger tap.\n");
+ temp_report.buttons = pointing_device_handle_buttons(temp_report.buttons, true, POINTING_DEVICE_BUTTON2);
+ } else if (base_data.gesture_events_0.swipe_x_neg) {
+ pd_dprintf("IQS5XX - X-.\n");
+ temp_report.buttons = pointing_device_handle_buttons(temp_report.buttons, true, POINTING_DEVICE_BUTTON4);
+ ignore_movement = true;
+ } else if (base_data.gesture_events_0.swipe_x_pos) {
+ pd_dprintf("IQS5XX - X+.\n");
+ temp_report.buttons = pointing_device_handle_buttons(temp_report.buttons, true, POINTING_DEVICE_BUTTON5);
+ ignore_movement = true;
+ } else if (base_data.gesture_events_0.swipe_y_neg) {
+ pd_dprintf("IQS5XX - Y-.\n");
+ temp_report.buttons = pointing_device_handle_buttons(temp_report.buttons, true, POINTING_DEVICE_BUTTON6);
+ ignore_movement = true;
+ } else if (base_data.gesture_events_0.swipe_y_pos) {
+ pd_dprintf("IQS5XX - Y+.\n");
+ temp_report.buttons = pointing_device_handle_buttons(temp_report.buttons, true, POINTING_DEVICE_BUTTON3);
+ ignore_movement = true;
+ } else if (base_data.gesture_events_1.zoom) {
+ if (AZOTEQ_IQS5XX_COMBINE_H_L_BYTES(base_data.x.h, base_data.x.l) < 0) {
+ pd_dprintf("IQS5XX - Zoom out.\n");
+ temp_report.buttons = pointing_device_handle_buttons(temp_report.buttons, true, POINTING_DEVICE_BUTTON7);
+ } else if (AZOTEQ_IQS5XX_COMBINE_H_L_BYTES(base_data.x.h, base_data.x.l) > 0) {
+ pd_dprintf("IQS5XX - Zoom in.\n");
+ temp_report.buttons = pointing_device_handle_buttons(temp_report.buttons, true, POINTING_DEVICE_BUTTON8);
+ }
+ } else if (base_data.gesture_events_1.scroll) {
+ pd_dprintf("IQS5XX - Scroll.\n");
+ temp_report.h = CONSTRAIN_HID(AZOTEQ_IQS5XX_COMBINE_H_L_BYTES(base_data.x.h, base_data.x.l));
+ temp_report.v = CONSTRAIN_HID(AZOTEQ_IQS5XX_COMBINE_H_L_BYTES(base_data.y.h, base_data.y.l));
+ }
+ if (base_data.number_of_fingers == 1 && !ignore_movement) {
+ temp_report.x = CONSTRAIN_HID_XY(AZOTEQ_IQS5XX_COMBINE_H_L_BYTES(base_data.x.h, base_data.x.l));
+ temp_report.y = CONSTRAIN_HID_XY(AZOTEQ_IQS5XX_COMBINE_H_L_BYTES(base_data.y.h, base_data.y.l));
+ }
+
+ previous_button_state = temp_report.buttons;
+
+ } else {
+ if (read_error_count > 10) {
+ read_error_count = 0;
+ previous_button_state = 0;
+ } else {
+ read_error_count++;
+ }
+ temp_report.buttons = previous_button_state;
+ pd_dprintf("IQS5XX - get report failed: %d \n", status);
+ }
+ } else {
+ pd_dprintf("IQS5XX - Init failed: %d \n", azoteq_iqs5xx_init_status);
+ }
+
+ return temp_report;
+}
+
+// clang-format off
+const pointing_device_driver_t pointing_device_driver = {
+ .init = azoteq_iqs5xx_init,
+ .get_report = azoteq_iqs5xx_get_report,
+ .set_cpi = azoteq_iqs5xx_set_cpi,
+ .get_cpi = azoteq_iqs5xx_get_cpi
+};
+// clang-format on
+
#elif defined(POINTING_DEVICE_DRIVER_cirque_pinnacle_i2c) || defined(POINTING_DEVICE_DRIVER_cirque_pinnacle_spi)
# ifdef POINTING_DEVICE_GESTURES_CURSOR_GLIDE_ENABLE
static bool cursor_glide_enable = true;
diff --git a/quantum/process_keycode/process_auto_shift.c b/quantum/process_keycode/process_auto_shift.c
index 9b78214e43..28a21c4b67 100644
--- a/quantum/process_keycode/process_auto_shift.c
+++ b/quantum/process_keycode/process_auto_shift.c
@@ -66,7 +66,7 @@ __attribute__((weak)) bool get_custom_auto_shifted_key(uint16_t keycode, keyreco
return false;
}
-/** \brief Called on physical press, returns whether is Auto Shift key */
+/** \brief Called on physical press, returns whether key is an Auto Shift key */
__attribute__((weak)) bool get_auto_shifted_key(uint16_t keycode, keyrecord_t *record) {
switch (keycode) {
#ifndef NO_AUTO_SHIFT_ALPHA
@@ -178,9 +178,8 @@ static bool autoshift_press(uint16_t keycode, uint16_t now, keyrecord_t *record)
}
// Store record to be sent to user functions if there's no release record then.
- autoshift_lastrecord = *record;
- autoshift_lastrecord.event.pressed = false;
- autoshift_lastrecord.event.time = 0;
+ autoshift_lastrecord = *record;
+ autoshift_lastrecord.event.time = 0;
// clang-format off
#if defined(AUTO_SHIFT_REPEAT) || defined(AUTO_SHIFT_REPEAT_PER_KEY)
if (keycode == autoshift_lastkey &&
@@ -409,8 +408,12 @@ bool process_auto_shift(uint16_t keycode, keyrecord_t *record) {
// If Retro Shift is disabled, possible custom actions shouldn't happen.
// clang-format off
#if defined(RETRO_SHIFT) && !defined(NO_ACTION_TAPPING)
-# ifdef HOLD_ON_OTHER_KEY_PRESS_PER_KEY
- const bool is_hold_on_interrupt = get_hold_on_other_key_press(keycode, record);
+# ifdef HOLD_ON_OTHER_KEY_PRESS
+ const bool is_hold_on_interrupt = (IS_QK_MOD_TAP(keycode)
+# ifdef HOLD_ON_OTHER_KEY_PRESS_PER_KEY
+ && get_hold_on_other_key_press(keycode, record)
+# endif
+ );
# else
const bool is_hold_on_interrupt = false;
# endif
@@ -450,8 +453,12 @@ bool process_auto_shift(uint16_t keycode, keyrecord_t *record) {
#endif
) {
// Fixes modifiers not being applied to rolls with AUTO_SHIFT_MODIFIERS set.
-#ifdef HOLD_ON_OTHER_KEY_PRESS_PER_KEY
- if (autoshift_flags.in_progress && get_hold_on_other_key_press(keycode, record)) {
+#ifdef HOLD_ON_OTHER_KEY_PRESS
+ if (autoshift_flags.in_progress
+# ifdef HOLD_ON_OTHER_KEY_PRESS_PER_KEY
+ && get_hold_on_other_key_press(keycode, record)
+# endif
+ ) {
autoshift_end(KC_NO, now, false, &autoshift_lastrecord);
}
#endif
@@ -488,10 +495,8 @@ void retroshift_poll_time(keyevent_t *event) {
}
// Used to swap the times of Retro Shifted key and Auto Shift key that interrupted it.
void retroshift_swap_times(void) {
- if (last_retroshift_time != 0 && autoshift_flags.in_progress) {
- uint16_t temp = retroshift_time;
- retroshift_time = last_retroshift_time;
- last_retroshift_time = temp;
+ if (autoshift_flags.in_progress) {
+ autoshift_time = last_retroshift_time;
}
}
#endif
diff --git a/quantum/process_keycode/process_auto_shift.h b/quantum/process_keycode/process_auto_shift.h
index 885a47b533..1353548aa6 100644
--- a/quantum/process_keycode/process_auto_shift.h
+++ b/quantum/process_keycode/process_auto_shift.h
@@ -56,4 +56,5 @@ uint16_t (get_autoshift_timeout)(uint16_t keycode, keyrecord_t *record);
void set_autoshift_timeout(uint16_t timeout);
void autoshift_matrix_scan(void);
bool get_custom_auto_shifted_key(uint16_t keycode, keyrecord_t *record);
+bool get_auto_shifted_key(uint16_t keycode, keyrecord_t *record);
// clang-format on
diff --git a/quantum/process_keycode/process_clicky.c b/quantum/process_keycode/process_clicky.c
index 0ee58282e6..82000db9b3 100644
--- a/quantum/process_keycode/process_clicky.c
+++ b/quantum/process_keycode/process_clicky.c
@@ -28,7 +28,7 @@ float clicky_freq = AUDIO_CLICKY_FREQ_DEFAULT;
float clicky_rand = AUDIO_CLICKY_FREQ_RANDOMNESS;
// the first "note" is an intentional delay; the 2nd and 3rd notes are the "clicky"
-float clicky_song[][2] = {{AUDIO_CLICKY_FREQ_MIN, AUDIO_CLICKY_DELAY_DURATION}, {AUDIO_CLICKY_FREQ_DEFAULT, 3}, {AUDIO_CLICKY_FREQ_DEFAULT, 1}}; // 3 and 1 --> durations
+float clicky_song[][2] = {{0.0f, AUDIO_CLICKY_DELAY_DURATION}, {AUDIO_CLICKY_FREQ_DEFAULT, 3}, {AUDIO_CLICKY_FREQ_DEFAULT, 1}}; // 3 and 1 --> durations
extern audio_config_t audio_config;
diff --git a/quantum/process_keycode/process_steno.c b/quantum/process_keycode/process_steno.c
index af26d4ca86..bd4361580b 100644
--- a/quantum/process_keycode/process_steno.c
+++ b/quantum/process_keycode/process_steno.c
@@ -16,7 +16,6 @@
#include "process_steno.h"
#include "quantum_keycodes.h"
#include "eeconfig.h"
-#include "keymap_steno.h"
#include <string.h>
#ifdef VIRTSER_ENABLE
# include "virtser.h"
diff --git a/quantum/process_keycode/process_steno.h b/quantum/process_keycode/process_steno.h
index 0dd2103218..5529980b71 100644
--- a/quantum/process_keycode/process_steno.h
+++ b/quantum/process_keycode/process_steno.h
@@ -19,6 +19,7 @@
#include <stdint.h>
#include <stdbool.h>
#include "action.h"
+#include "steno_keycodes.h"
#define BOLT_STROKE_SIZE 4
#define GEMINI_STROKE_SIZE 6
diff --git a/quantum/quantum.c b/quantum/quantum.c
index 3323a5adb6..6639dc2291 100644
--- a/quantum/quantum.c
+++ b/quantum/quantum.c
@@ -40,7 +40,7 @@
# include "process_leader.h"
#endif
-#ifdef MAGIC_KEYCODE_ENABLE
+#ifdef MAGIC_ENABLE
# include "process_magic.h"
#endif
@@ -68,10 +68,6 @@
# include "process_unicode_common.h"
#endif
-#ifdef VELOCIKEY_ENABLE
-# include "velocikey.h"
-#endif
-
#ifdef AUDIO_ENABLE
# ifndef GOODBYE_SONG
# define GOODBYE_SONG SONG(GOODBYE_SOUND)
@@ -176,7 +172,7 @@ __attribute__((weak)) void post_process_record_kb(uint16_t keycode, keyrecord_t
__attribute__((weak)) void post_process_record_user(uint16_t keycode, keyrecord_t *record) {}
-void shutdown_quantum(void) {
+void shutdown_quantum(bool jump_to_bootloader) {
clear_keyboard();
#if defined(MIDI_ENABLE) && defined(MIDI_BASIC)
process_midi_all_notes_off();
@@ -187,12 +183,12 @@ void shutdown_quantum(void) {
# endif
uint16_t timer_start = timer_read();
PLAY_SONG(goodbye_song);
- shutdown_user();
+ shutdown_kb(jump_to_bootloader);
while (timer_elapsed(timer_start) < 250)
wait_ms(1);
stop_all_notes();
#else
- shutdown_user();
+ shutdown_kb(jump_to_bootloader);
wait_ms(250);
#endif
#ifdef HAPTIC_ENABLE
@@ -201,12 +197,12 @@ void shutdown_quantum(void) {
}
void reset_keyboard(void) {
- shutdown_quantum();
+ shutdown_quantum(true);
bootloader_jump();
}
void soft_reset_keyboard(void) {
- shutdown_quantum();
+ shutdown_quantum(false);
mcu_reset();
}
@@ -288,9 +284,9 @@ bool process_record_quantum(keyrecord_t *record) {
}
#endif
-#ifdef VELOCIKEY_ENABLE
- if (velocikey_enabled() && record->event.pressed) {
- velocikey_accelerate();
+#ifdef RGBLIGHT_ENABLE
+ if (record->event.pressed) {
+ preprocess_rgblight();
}
#endif
@@ -370,7 +366,7 @@ bool process_record_quantum(keyrecord_t *record) {
#ifdef SPACE_CADET_ENABLE
process_space_cadet(keycode, record) &&
#endif
-#ifdef MAGIC_KEYCODE_ENABLE
+#ifdef MAGIC_ENABLE
process_magic(keycode, record) &&
#endif
#ifdef GRAVE_ESC_ENABLE
@@ -495,9 +491,16 @@ void set_single_persistent_default_layer(uint8_t default_layer) {
// Override these functions in your keymap file to play different tunes on
// different events such as startup and bootloader jump
-__attribute__((weak)) void startup_user(void) {}
+__attribute__((weak)) bool shutdown_user(bool jump_to_bootloader) {
+ return true;
+}
-__attribute__((weak)) void shutdown_user(void) {}
+__attribute__((weak)) bool shutdown_kb(bool jump_to_bootloader) {
+ if (!shutdown_user(jump_to_bootloader)) {
+ return false;
+ }
+ return true;
+}
void suspend_power_down_quantum(void) {
suspend_power_down_kb();
diff --git a/quantum/quantum.h b/quantum/quantum.h
index 4d183e755f..996e93a12f 100644
--- a/quantum/quantum.h
+++ b/quantum/quantum.h
@@ -56,6 +56,8 @@
#include "suspend.h"
#include <stddef.h>
#include <stdlib.h>
+#include <stdio.h>
+#include <string.h>
#ifdef DEFERRED_EXEC_ENABLE
# include "deferred_exec.h"
@@ -209,6 +211,10 @@ extern layer_state_t layer_state;
# include "pointing_device.h"
#endif
+#ifdef MOUSEKEY_ENABLE
+# include "mousekey.h"
+#endif
+
#ifdef CAPS_WORD_ENABLE
# include "caps_word.h"
# include "process_caps_word.h"
@@ -249,8 +255,8 @@ void post_process_record_user(uint16_t keycode, keyrecord_t *record);
void reset_keyboard(void);
void soft_reset_keyboard(void);
-void startup_user(void);
-void shutdown_user(void);
+bool shutdown_kb(bool jump_to_bootloader);
+bool shutdown_user(bool jump_to_bootloader);
void register_code16(uint16_t code);
void unregister_code16(uint16_t code);
diff --git a/quantum/rgb_matrix/animations/flower_blooming_anim.h b/quantum/rgb_matrix/animations/flower_blooming_anim.h
new file mode 100644
index 0000000000..7629fde858
--- /dev/null
+++ b/quantum/rgb_matrix/animations/flower_blooming_anim.h
@@ -0,0 +1,53 @@
+/* Copyright 2023 HorrorTroll <https://github.com/HorrorTroll>
+ *
+ * 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/>.
+ */
+
+#ifdef ENABLE_RGB_MATRIX_FLOWER_BLOOMING
+RGB_MATRIX_EFFECT(FLOWER_BLOOMING)
+# ifdef RGB_MATRIX_CUSTOM_EFFECT_IMPLS
+
+typedef HSV (*flower_blooming_f)(HSV hsv, uint8_t i, uint8_t time);
+
+bool effect_runner_bloom(effect_params_t* params, flower_blooming_f effect_func) {
+ RGB_MATRIX_USE_LIMITS(led_min, led_max);
+
+ uint8_t time = scale16by8(g_rgb_timer, qadd8(rgb_matrix_config.speed / 10, 1));
+ for (uint8_t i = led_min; i < led_max; i++) {
+ RGB_MATRIX_TEST_LED_FLAGS();
+ if (g_led_config.point[i].y > k_rgb_matrix_center.y) {
+ RGB bgr = rgb_matrix_hsv_to_rgb(effect_func(rgb_matrix_config.hsv, i, time));
+ rgb_matrix_set_color(i, bgr.b, bgr.g, bgr.r);
+ } else {
+ RGB rgb = rgb_matrix_hsv_to_rgb(effect_func(rgb_matrix_config.hsv, i, time));
+ rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b);
+ }
+ }
+ return rgb_matrix_check_finished_leds(led_max);
+}
+
+static HSV FLOWER_BLOOMING_math(HSV hsv, uint8_t i, uint8_t time) {
+ if (g_led_config.point[i].y > k_rgb_matrix_center.y)
+ hsv.h = g_led_config.point[i].x * 3 - g_led_config.point[i].y * 3 + time;
+ else
+ hsv.h = g_led_config.point[i].x * 3 - g_led_config.point[i].y * 3 - time;
+ return hsv;
+}
+
+bool FLOWER_BLOOMING(effect_params_t* params) {
+ return effect_runner_bloom(params, &FLOWER_BLOOMING_math);
+}
+
+# endif // RGB_MATRIX_CUSTOM_EFFECT_IMPLS
+#endif // ENABLE_RGB_MATRIX_FLOWER_BLOOMING
diff --git a/quantum/rgb_matrix/animations/rgb_matrix_effects.inc b/quantum/rgb_matrix/animations/rgb_matrix_effects.inc
index ac7bac428d..a02238a2d1 100644
--- a/quantum/rgb_matrix/animations/rgb_matrix_effects.inc
+++ b/quantum/rgb_matrix/animations/rgb_matrix_effects.inc
@@ -21,6 +21,7 @@
#include "dual_beacon_anim.h"
#include "rainbow_beacon_anim.h"
#include "rainbow_pinwheels_anim.h"
+#include "flower_blooming_anim.h"
#include "raindrops_anim.h"
#include "jellybean_raindrops_anim.h"
#include "hue_breathing_anim.h"
@@ -38,3 +39,7 @@
#include "solid_reactive_nexus.h"
#include "splash_anim.h"
#include "solid_splash_anim.h"
+#include "starlight_anim.h"
+#include "starlight_dual_sat_anim.h"
+#include "starlight_dual_hue_anim.h"
+#include "riverflow_anim.h" \ No newline at end of file
diff --git a/quantum/rgb_matrix/animations/riverflow_anim.h b/quantum/rgb_matrix/animations/riverflow_anim.h
new file mode 100644
index 0000000000..79a38e7f6e
--- /dev/null
+++ b/quantum/rgb_matrix/animations/riverflow_anim.h
@@ -0,0 +1,22 @@
+#ifdef ENABLE_RGB_MATRIX_RIVERFLOW
+RGB_MATRIX_EFFECT(RIVERFLOW)
+# ifdef RGB_MATRIX_CUSTOM_EFFECT_IMPLS
+
+// inspired by @PleasureTek's Massdrop Alt LED animation
+
+bool RIVERFLOW(effect_params_t* params) {
+ RGB_MATRIX_USE_LIMITS(led_min, led_max);
+ for (uint8_t i = led_min; i < led_max; i++) {
+ HSV hsv = rgb_matrix_config.hsv;
+ uint16_t time = scale16by8(g_rgb_timer + (i * 315), rgb_matrix_config.speed / 8);
+ hsv.v = scale8(abs8(sin8(time) - 128) * 2, hsv.v);
+ RGB rgb = rgb_matrix_hsv_to_rgb(hsv);
+ RGB_MATRIX_TEST_LED_FLAGS();
+ rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b);
+ }
+
+ return rgb_matrix_check_finished_leds(led_max);
+}
+
+# endif // RGB_MATRIX_CUSTOM_EFFECT_IMPLS
+#endif // ENABLE_RGB_MATRIX_RIVERFLOW
diff --git a/quantum/rgb_matrix/animations/starlight_anim.h b/quantum/rgb_matrix/animations/starlight_anim.h
new file mode 100644
index 0000000000..33f0b61a91
--- /dev/null
+++ b/quantum/rgb_matrix/animations/starlight_anim.h
@@ -0,0 +1,30 @@
+#ifdef ENABLE_RGB_MATRIX_STARLIGHT
+RGB_MATRIX_EFFECT(STARLIGHT)
+# ifdef RGB_MATRIX_CUSTOM_EFFECT_IMPLS
+
+void set_starlight_color(int i, effect_params_t* params) {
+ uint16_t time = scale16by8(g_rgb_timer, rgb_matrix_config.speed / 8);
+ HSV hsv = rgb_matrix_config.hsv;
+ hsv.v = scale8(abs8(sin8(time) - 128) * 2, hsv.v);
+ RGB rgb = hsv_to_rgb(hsv);
+ rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b);
+}
+
+bool STARLIGHT(effect_params_t* params) {
+ if (!params->init) {
+ if (scale16by8(g_rgb_timer, qadd8(rgb_matrix_config.speed, 5)) % 5 == 0) {
+ int rand_led = rand() % RGB_MATRIX_LED_COUNT;
+ set_starlight_color(rand_led, params);
+ }
+ return false;
+ }
+
+ RGB_MATRIX_USE_LIMITS(led_min, led_max);
+ for (int i = led_min; i < led_max; i++) {
+ set_starlight_color(i, params);
+ }
+ return rgb_matrix_check_finished_leds(led_max);
+}
+
+# endif // RGB_MATRIX_CUSTOM_EFFECT_IMPLS
+#endif // ENABLE_RGB_MATRIX_STARLIGHT \ No newline at end of file
diff --git a/quantum/rgb_matrix/animations/starlight_dual_hue_anim.h b/quantum/rgb_matrix/animations/starlight_dual_hue_anim.h
new file mode 100644
index 0000000000..df6461b8b7
--- /dev/null
+++ b/quantum/rgb_matrix/animations/starlight_dual_hue_anim.h
@@ -0,0 +1,31 @@
+#ifdef ENABLE_RGB_MATRIX_STARLIGHT_DUAL_HUE
+RGB_MATRIX_EFFECT(STARLIGHT_DUAL_HUE)
+# ifdef RGB_MATRIX_CUSTOM_EFFECT_IMPLS
+
+void set_starlight_dual_hue_color(int i, effect_params_t* params) {
+ uint16_t time = scale16by8(g_rgb_timer, rgb_matrix_config.speed / 8);
+ HSV hsv = rgb_matrix_config.hsv;
+ hsv.v = scale8(abs8(sin8(time) - 128) * 2, hsv.v);
+ hsv.h = hsv.h + (rand() % (30 + 1 - -30) + -30);
+ RGB rgb = hsv_to_rgb(hsv);
+ rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b);
+}
+
+bool STARLIGHT_DUAL_HUE(effect_params_t* params) {
+ if (!params->init) {
+ if (scale16by8(g_rgb_timer, qadd8(rgb_matrix_config.speed, 5)) % 5 == 0) {
+ int rand_led = rand() % RGB_MATRIX_LED_COUNT;
+ set_starlight_dual_hue_color(rand_led, params);
+ }
+ return false;
+ }
+
+ RGB_MATRIX_USE_LIMITS(led_min, led_max);
+ for (int i = led_min; i < led_max; i++) {
+ set_starlight_dual_hue_color(i, params);
+ }
+ return rgb_matrix_check_finished_leds(led_max);
+}
+
+# endif // RGB_MATRIX_CUSTOM_EFFECT_IMPLS
+#endif // ENABLE_RGB_MATRIX_STARLIGHT_DUAL_HUE \ No newline at end of file
diff --git a/quantum/rgb_matrix/animations/starlight_dual_sat_anim.h b/quantum/rgb_matrix/animations/starlight_dual_sat_anim.h
new file mode 100644
index 0000000000..f6ecd48aa1
--- /dev/null
+++ b/quantum/rgb_matrix/animations/starlight_dual_sat_anim.h
@@ -0,0 +1,31 @@
+#ifdef ENABLE_RGB_MATRIX_STARLIGHT_DUAL_SAT
+RGB_MATRIX_EFFECT(STARLIGHT_DUAL_SAT)
+# ifdef RGB_MATRIX_CUSTOM_EFFECT_IMPLS
+
+void set_starlight_dual_sat_color(int i, effect_params_t* params) {
+ uint16_t time = scale16by8(g_rgb_timer, rgb_matrix_config.speed / 8);
+ HSV hsv = rgb_matrix_config.hsv;
+ hsv.v = scale8(abs8(sin8(time) - 128) * 2, hsv.v);
+ hsv.s = hsv.s + (rand() % (30 + 1 - -30) + -30);
+ RGB rgb = hsv_to_rgb(hsv);
+ rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b);
+}
+
+bool STARLIGHT_DUAL_SAT(effect_params_t* params) {
+ if (!params->init) {
+ if (scale16by8(g_rgb_timer, qadd8(rgb_matrix_config.speed, 5)) % 5 == 0) {
+ int rand_led = rand() % RGB_MATRIX_LED_COUNT;
+ set_starlight_dual_sat_color(rand_led, params);
+ }
+ return false;
+ }
+
+ RGB_MATRIX_USE_LIMITS(led_min, led_max);
+ for (int i = led_min; i < led_max; i++) {
+ set_starlight_dual_sat_color(i, params);
+ }
+ return rgb_matrix_check_finished_leds(led_max);
+}
+
+# endif // RGB_MATRIX_CUSTOM_EFFECT_IMPLS
+#endif // ENABLE_RGB_MATRIX_STARLIGHT_DUAL_SAT \ No newline at end of file
diff --git a/quantum/rgb_matrix/rgb_matrix.c b/quantum/rgb_matrix/rgb_matrix.c
index 96be615162..d93d189827 100644
--- a/quantum/rgb_matrix/rgb_matrix.c
+++ b/quantum/rgb_matrix/rgb_matrix.c
@@ -60,56 +60,6 @@ __attribute__((weak)) RGB rgb_matrix_hsv_to_rgb(HSV hsv) {
// -----End rgb effect includes macros-------
// ------------------------------------------
-#ifndef RGB_MATRIX_TIMEOUT
-# define RGB_MATRIX_TIMEOUT 0
-#endif
-
-#if !defined(RGB_MATRIX_MAXIMUM_BRIGHTNESS) || RGB_MATRIX_MAXIMUM_BRIGHTNESS > UINT8_MAX
-# undef RGB_MATRIX_MAXIMUM_BRIGHTNESS
-# define RGB_MATRIX_MAXIMUM_BRIGHTNESS UINT8_MAX
-#endif
-
-#if !defined(RGB_MATRIX_HUE_STEP)
-# define RGB_MATRIX_HUE_STEP 8
-#endif
-
-#if !defined(RGB_MATRIX_SAT_STEP)
-# define RGB_MATRIX_SAT_STEP 16
-#endif
-
-#if !defined(RGB_MATRIX_VAL_STEP)
-# define RGB_MATRIX_VAL_STEP 16
-#endif
-
-#if !defined(RGB_MATRIX_SPD_STEP)
-# define RGB_MATRIX_SPD_STEP 16
-#endif
-
-#if !defined(RGB_MATRIX_DEFAULT_MODE)
-# ifdef ENABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT
-# define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_CYCLE_LEFT_RIGHT
-# else
-// fallback to solid colors if RGB_MATRIX_CYCLE_LEFT_RIGHT is disabled in userspace
-# define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_SOLID_COLOR
-# endif
-#endif
-
-#if !defined(RGB_MATRIX_DEFAULT_HUE)
-# define RGB_MATRIX_DEFAULT_HUE 0
-#endif
-
-#if !defined(RGB_MATRIX_DEFAULT_SAT)
-# define RGB_MATRIX_DEFAULT_SAT UINT8_MAX
-#endif
-
-#if !defined(RGB_MATRIX_DEFAULT_VAL)
-# define RGB_MATRIX_DEFAULT_VAL RGB_MATRIX_MAXIMUM_BRIGHTNESS
-#endif
-
-#if !defined(RGB_MATRIX_DEFAULT_SPD)
-# define RGB_MATRIX_DEFAULT_SPD UINT8_MAX / 2
-#endif
-
// globals
rgb_config_t rgb_matrix_config; // TODO: would like to prefix this with g_ for global consistancy, do this in another pr
uint32_t g_rgb_timer;
@@ -149,7 +99,7 @@ void eeconfig_update_rgb_matrix(void) {
void eeconfig_update_rgb_matrix_default(void) {
dprintf("eeconfig_update_rgb_matrix_default\n");
- rgb_matrix_config.enable = 1;
+ rgb_matrix_config.enable = RGB_MATRIX_DEFAULT_ON;
rgb_matrix_config.mode = RGB_MATRIX_DEFAULT_MODE;
rgb_matrix_config.hsv = (HSV){RGB_MATRIX_DEFAULT_HUE, RGB_MATRIX_DEFAULT_SAT, RGB_MATRIX_DEFAULT_VAL};
rgb_matrix_config.speed = RGB_MATRIX_DEFAULT_SPD;
@@ -433,8 +383,7 @@ void rgb_matrix_task(void) {
case RENDERING:
rgb_task_render(effect);
if (effect) {
- // Only run the basic indicators in the last render iteration (default there are 5 iterations)
- if (rgb_effect_params.iter == RGB_MATRIX_LED_PROCESS_MAX_ITERATIONS) {
+ if (rgb_task_state == FLUSHING) { // ensure we only draw basic indicators once rendering is finished
rgb_matrix_indicators();
}
rgb_matrix_indicators_advanced(&rgb_effect_params);
@@ -461,6 +410,36 @@ __attribute__((weak)) bool rgb_matrix_indicators_user(void) {
return true;
}
+struct rgb_matrix_limits_t rgb_matrix_get_limits(uint8_t iter) {
+ struct rgb_matrix_limits_t limits = {0};
+#if defined(RGB_MATRIX_LED_PROCESS_LIMIT) && RGB_MATRIX_LED_PROCESS_LIMIT > 0 && RGB_MATRIX_LED_PROCESS_LIMIT < RGB_MATRIX_LED_COUNT
+# if defined(RGB_MATRIX_SPLIT)
+ limits.led_min_index = RGB_MATRIX_LED_PROCESS_LIMIT * (iter);
+ limits.led_max_index = limits.led_min_index + RGB_MATRIX_LED_PROCESS_LIMIT;
+ if (limits.led_max_index > RGB_MATRIX_LED_COUNT) limits.led_max_index = RGB_MATRIX_LED_COUNT;
+ uint8_t k_rgb_matrix_split[2] = RGB_MATRIX_SPLIT;
+ if (is_keyboard_left() && (limits.led_max_index > k_rgb_matrix_split[0])) limits.led_max_index = k_rgb_matrix_split[0];
+ if (!(is_keyboard_left()) && (limits.led_min_index < k_rgb_matrix_split[0])) limits.led_min_index = k_rgb_matrix_split[0];
+# else
+ limits.led_min_index = RGB_MATRIX_LED_PROCESS_LIMIT * (iter);
+ limits.led_max_index = limits.led_min_index + RGB_MATRIX_LED_PROCESS_LIMIT;
+ if (limits.led_max_index > RGB_MATRIX_LED_COUNT) limits.led_max_index = RGB_MATRIX_LED_COUNT;
+# endif
+#else
+# if defined(RGB_MATRIX_SPLIT)
+ limits.led_min_index = 0;
+ limits.led_max_index = RGB_MATRIX_LED_COUNT;
+ const uint8_t k_rgb_matrix_split[2] = RGB_MATRIX_SPLIT;
+ if (is_keyboard_left() && (limits.led_max_index > k_rgb_matrix_split[0])) limits.led_max_index = k_rgb_matrix_split[0];
+ if (!(is_keyboard_left()) && (limits.led_min_index < k_rgb_matrix_split[0])) limits.led_min_index = k_rgb_matrix_split[0];
+# else
+ limits.led_min_index = 0;
+ limits.led_max_index = RGB_MATRIX_LED_COUNT;
+# endif
+#endif
+ return limits;
+}
+
void rgb_matrix_indicators_advanced(effect_params_t *params) {
/* special handling is needed for "params->iter", since it's already been incremented.
* Could move the invocations to rgb_task_render, but then it's missing a few checks
@@ -736,7 +715,7 @@ void rgb_matrix_decrease_speed(void) {
void rgb_matrix_set_flags_eeprom_helper(led_flags_t flags, bool write_to_eeprom) {
rgb_matrix_config.flags = flags;
eeconfig_flag_rgb_matrix(write_to_eeprom);
- dprintf("rgb matrix set speed [%s]: %u\n", (write_to_eeprom) ? "EEPROM" : "NOEEPROM", rgb_matrix_config.flags);
+ dprintf("rgb matrix set flags [%s]: %u\n", (write_to_eeprom) ? "EEPROM" : "NOEEPROM", rgb_matrix_config.flags);
}
led_flags_t rgb_matrix_get_flags(void) {
diff --git a/quantum/rgb_matrix/rgb_matrix.h b/quantum/rgb_matrix/rgb_matrix.h
index 38040fb0cc..9a3ffb8ea3 100644
--- a/quantum/rgb_matrix/rgb_matrix.h
+++ b/quantum/rgb_matrix/rgb_matrix.h
@@ -24,26 +24,81 @@
#include "color.h"
#include "keyboard.h"
-#ifdef IS31FL3731
+#if defined(RGB_MATRIX_IS31FL3218)
+# include "is31fl3218.h"
+#elif defined(RGB_MATRIX_IS31FL3731)
# include "is31fl3731.h"
-#elif defined(IS31FL3733)
+#elif defined(RGB_MATRIX_IS31FL3733)
# include "is31fl3733.h"
-#elif defined(IS31FL3736)
+#elif defined(RGB_MATRIX_IS31FL3736)
# include "is31fl3736.h"
-#elif defined(IS31FL3737)
+#elif defined(RGB_MATRIX_IS31FL3737)
# include "is31fl3737.h"
-#elif defined(IS31FL3741)
+#elif defined(RGB_MATRIX_IS31FL3741)
# include "is31fl3741.h"
#elif defined(IS31FLCOMMON)
# include "is31flcommon.h"
-#elif defined(CKLED2001)
-# include "ckled2001.h"
-#elif defined(AW20216)
-# include "aw20216.h"
-#elif defined(WS2812)
+#elif defined(RGB_MATRIX_SNLED27351)
+# include "snled27351.h"
+#elif defined(RGB_MATRIX_AW20216S)
+# include "aw20216s.h"
+#elif defined(RGB_MATRIX_WS2812)
# include "ws2812.h"
#endif
+#ifndef RGB_MATRIX_TIMEOUT
+# define RGB_MATRIX_TIMEOUT 0
+#endif
+
+#ifndef RGB_MATRIX_MAXIMUM_BRIGHTNESS
+# define RGB_MATRIX_MAXIMUM_BRIGHTNESS UINT8_MAX
+#endif
+
+#ifndef RGB_MATRIX_HUE_STEP
+# define RGB_MATRIX_HUE_STEP 8
+#endif
+
+#ifndef RGB_MATRIX_SAT_STEP
+# define RGB_MATRIX_SAT_STEP 16
+#endif
+
+#ifndef RGB_MATRIX_VAL_STEP
+# define RGB_MATRIX_VAL_STEP 16
+#endif
+
+#ifndef RGB_MATRIX_SPD_STEP
+# define RGB_MATRIX_SPD_STEP 16
+#endif
+
+#ifndef RGB_MATRIX_DEFAULT_ON
+# define RGB_MATRIX_DEFAULT_ON true
+#endif
+
+#ifndef RGB_MATRIX_DEFAULT_MODE
+# ifdef ENABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT
+# define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_CYCLE_LEFT_RIGHT
+# else
+// fallback to solid colors if RGB_MATRIX_CYCLE_LEFT_RIGHT is disabled in userspace
+# define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_SOLID_COLOR
+# endif
+#endif
+
+#ifndef RGB_MATRIX_DEFAULT_HUE
+# define RGB_MATRIX_DEFAULT_HUE 0
+#endif
+
+#ifndef RGB_MATRIX_DEFAULT_SAT
+# define RGB_MATRIX_DEFAULT_SAT UINT8_MAX
+#endif
+
+#ifndef RGB_MATRIX_DEFAULT_VAL
+# define RGB_MATRIX_DEFAULT_VAL RGB_MATRIX_MAXIMUM_BRIGHTNESS
+#endif
+
+#ifndef RGB_MATRIX_DEFAULT_SPD
+# define RGB_MATRIX_DEFAULT_SPD UINT8_MAX / 2
+#endif
+
#ifndef RGB_MATRIX_LED_FLUSH_LIMIT
# define RGB_MATRIX_LED_FLUSH_LIMIT 16
#endif
@@ -51,37 +106,20 @@
#ifndef RGB_MATRIX_LED_PROCESS_LIMIT
# define RGB_MATRIX_LED_PROCESS_LIMIT ((RGB_MATRIX_LED_COUNT + 4) / 5)
#endif
-#define RGB_MATRIX_LED_PROCESS_MAX_ITERATIONS ((RGB_MATRIX_LED_COUNT + RGB_MATRIX_LED_PROCESS_LIMIT - 1) / RGB_MATRIX_LED_PROCESS_LIMIT)
-
-#if defined(RGB_MATRIX_LED_PROCESS_LIMIT) && RGB_MATRIX_LED_PROCESS_LIMIT > 0 && RGB_MATRIX_LED_PROCESS_LIMIT < RGB_MATRIX_LED_COUNT
-# if defined(RGB_MATRIX_SPLIT)
-# define RGB_MATRIX_USE_LIMITS_ITER(min, max, iter) \
- uint8_t min = RGB_MATRIX_LED_PROCESS_LIMIT * (iter); \
- uint8_t max = min + RGB_MATRIX_LED_PROCESS_LIMIT; \
- if (max > RGB_MATRIX_LED_COUNT) max = RGB_MATRIX_LED_COUNT; \
- uint8_t k_rgb_matrix_split[2] = RGB_MATRIX_SPLIT; \
- if (is_keyboard_left() && (max > k_rgb_matrix_split[0])) max = k_rgb_matrix_split[0]; \
- if (!(is_keyboard_left()) && (min < k_rgb_matrix_split[0])) min = k_rgb_matrix_split[0];
-# else
-# define RGB_MATRIX_USE_LIMITS_ITER(min, max, iter) \
- uint8_t min = RGB_MATRIX_LED_PROCESS_LIMIT * (iter); \
- uint8_t max = min + RGB_MATRIX_LED_PROCESS_LIMIT; \
- if (max > RGB_MATRIX_LED_COUNT) max = RGB_MATRIX_LED_COUNT;
-# endif
-#else
-# if defined(RGB_MATRIX_SPLIT)
-# define RGB_MATRIX_USE_LIMITS_ITER(min, max, iter) \
- uint8_t min = 0; \
- uint8_t max = RGB_MATRIX_LED_COUNT; \
- const uint8_t k_rgb_matrix_split[2] = RGB_MATRIX_SPLIT; \
- if (is_keyboard_left() && (max > k_rgb_matrix_split[0])) max = k_rgb_matrix_split[0]; \
- if (!(is_keyboard_left()) && (min < k_rgb_matrix_split[0])) min = k_rgb_matrix_split[0];
-# else
-# define RGB_MATRIX_USE_LIMITS_ITER(min, max, iter) \
- uint8_t min = 0; \
- uint8_t max = RGB_MATRIX_LED_COUNT;
-# endif
-#endif
+
+struct rgb_matrix_limits_t {
+ uint8_t led_min_index;
+ uint8_t led_max_index;
+};
+
+struct rgb_matrix_limits_t rgb_matrix_get_limits(uint8_t iter);
+
+#define RGB_MATRIX_USE_LIMITS_ITER(min, max, iter) \
+ struct rgb_matrix_limits_t limits = rgb_matrix_get_limits(iter); \
+ uint8_t min = limits.led_min_index; \
+ uint8_t max = limits.led_max_index; \
+ (void)min; \
+ (void)max;
#define RGB_MATRIX_USE_LIMITS(min, max) RGB_MATRIX_USE_LIMITS_ITER(min, max, params->iter)
diff --git a/quantum/rgb_matrix/rgb_matrix_drivers.c b/quantum/rgb_matrix/rgb_matrix_drivers.c
index 695ecc78a4..0f979cb233 100644
--- a/quantum/rgb_matrix/rgb_matrix_drivers.c
+++ b/quantum/rgb_matrix/rgb_matrix_drivers.c
@@ -24,410 +24,87 @@
* be here if shared between boards.
*/
-#if defined(IS31FL3731) || defined(IS31FL3733) || defined(IS31FL3736) || defined(IS31FL3737) || defined(IS31FL3741) || defined(IS31FLCOMMON) || defined(CKLED2001)
-# include "i2c_master.h"
-
-// TODO: Remove this at some later date
-# if defined(DRIVER_ADDR_1) && defined(DRIVER_ADDR_2)
-# if DRIVER_ADDR_1 == DRIVER_ADDR_2
-# error "Setting DRIVER_ADDR_2 == DRIVER_ADDR_1 is obsolete. If you are only using one ISSI driver, set DRIVER_COUNT to 1 and remove DRIVER_ADDR_2"
-# endif
-# endif
-
-static void init(void) {
- i2c_init();
-
-# if defined(IS31FL3731)
- is31fl3731_init(DRIVER_ADDR_1);
-# if defined(DRIVER_ADDR_2)
- is31fl3731_init(DRIVER_ADDR_2);
-# if defined(DRIVER_ADDR_3)
- is31fl3731_init(DRIVER_ADDR_3);
-# if defined(DRIVER_ADDR_4)
- is31fl3731_init(DRIVER_ADDR_4);
-# endif
-# endif
-# endif
-
-# elif defined(IS31FL3733)
-# if !defined(DRIVER_SYNC_1)
-# define DRIVER_SYNC_1 0
-# endif
- is31fl3733_init(DRIVER_ADDR_1, DRIVER_SYNC_1);
-# if defined(DRIVER_ADDR_2)
-# if !defined(DRIVER_SYNC_2)
-# define DRIVER_SYNC_2 0
-# endif
- is31fl3733_init(DRIVER_ADDR_2, DRIVER_SYNC_2);
-# if defined(DRIVER_ADDR_3)
-# if !defined(DRIVER_SYNC_3)
-# define DRIVER_SYNC_3 0
-# endif
- is31fl3733_init(DRIVER_ADDR_3, DRIVER_SYNC_3);
-# if defined(DRIVER_ADDR_4)
-# if !defined(DRIVER_SYNC_4)
-# define DRIVER_SYNC_4 0
-# endif
- is31fl3733_init(DRIVER_ADDR_4, DRIVER_SYNC_4);
-# endif
-# endif
-# endif
-
-# elif defined(IS31FL3736)
- is31fl3736_init(DRIVER_ADDR_1);
-# if defined(DRIVER_ADDR_2)
- is31fl3736_init(DRIVER_ADDR_2);
-# if defined(DRIVER_ADDR_3)
- is31fl3736_init(DRIVER_ADDR_3);
-# if defined(DRIVER_ADDR_4)
- is31fl3736_init(DRIVER_ADDR_4);
-# endif
-# endif
-# endif
-
-# elif defined(IS31FL3737)
- is31fl3737_init(DRIVER_ADDR_1);
-# if defined(DRIVER_ADDR_2)
- is31fl3737_init(DRIVER_ADDR_2);
-# if defined(DRIVER_ADDR_3)
- is31fl3737_init(DRIVER_ADDR_3);
-# if defined(DRIVER_ADDR_4)
- is31fl3737_init(DRIVER_ADDR_4);
-# endif
-# endif
-# endif
-
-# elif defined(IS31FL3741)
- is31fl3741_init(DRIVER_ADDR_1);
-# if defined(DRIVER_ADDR_2)
- is31fl3741_init(DRIVER_ADDR_2);
-# if defined(DRIVER_ADDR_3)
- is31fl3741_init(DRIVER_ADDR_3);
-# if defined(DRIVER_ADDR_4)
- is31fl3741_init(DRIVER_ADDR_4);
-# endif
-# endif
-# endif
-
-# elif defined(IS31FLCOMMON)
- IS31FL_common_init(DRIVER_ADDR_1, ISSI_SSR_1);
-# if defined(DRIVER_ADDR_2)
- IS31FL_common_init(DRIVER_ADDR_2, ISSI_SSR_2);
-# if defined(DRIVER_ADDR_3)
- IS31FL_common_init(DRIVER_ADDR_3, ISSI_SSR_3);
-# if defined(DRIVER_ADDR_4)
- IS31FL_common_init(DRIVER_ADDR_4, ISSI_SSR_4);
-# endif
-# endif
-# endif
-
-# elif defined(CKLED2001)
- ckled2001_init(DRIVER_ADDR_1);
-# if defined(DRIVER_ADDR_2)
- ckled2001_init(DRIVER_ADDR_2);
-# if defined(DRIVER_ADDR_3)
- ckled2001_init(DRIVER_ADDR_3);
-# if defined(DRIVER_ADDR_4)
- ckled2001_init(DRIVER_ADDR_4);
-# endif
-# endif
-# endif
-# endif
-
- for (int index = 0; index < RGB_MATRIX_LED_COUNT; index++) {
- bool enabled = true;
-
- // This only caches it for later
-# if defined(IS31FL3731)
- is31fl3731_set_led_control_register(index, enabled, enabled, enabled);
-# elif defined(IS31FL3733)
- is31fl3733_set_led_control_register(index, enabled, enabled, enabled);
-# elif defined(IS31FL3736)
- is31fl3736_set_led_control_register(index, enabled, enabled, enabled);
-# elif defined(IS31FL3737)
- is31fl3737_set_led_control_register(index, enabled, enabled, enabled);
-# elif defined(IS31FL3741)
- is31fl3741_set_led_control_register(index, enabled, enabled, enabled);
-# elif defined(IS31FLCOMMON)
- IS31FL_RGB_set_scaling_buffer(index, enabled, enabled, enabled);
-# elif defined(CKLED2001)
- ckled2001_set_led_control_register(index, enabled, enabled, enabled);
-# endif
- }
-
- // This actually updates the LED drivers
-# if defined(IS31FL3731)
- is31fl3731_update_led_control_registers(DRIVER_ADDR_1, 0);
-# if defined(DRIVER_ADDR_2)
- is31fl3731_update_led_control_registers(DRIVER_ADDR_2, 1);
-# if defined(DRIVER_ADDR_3)
- is31fl3731_update_led_control_registers(DRIVER_ADDR_3, 2);
-# if defined(DRIVER_ADDR_4)
- is31fl3731_update_led_control_registers(DRIVER_ADDR_4, 3);
-# endif
-# endif
-# endif
-
-# elif defined(IS31FL3733)
- is31fl3733_update_led_control_registers(DRIVER_ADDR_1, 0);
-# if defined(DRIVER_ADDR_2)
- is31fl3733_update_led_control_registers(DRIVER_ADDR_2, 1);
-# if defined(DRIVER_ADDR_3)
- is31fl3733_update_led_control_registers(DRIVER_ADDR_3, 2);
-# if defined(DRIVER_ADDR_4)
- is31fl3733_update_led_control_registers(DRIVER_ADDR_4, 3);
-# endif
-# endif
-# endif
-
-# elif defined(IS31FL3736)
- is31fl3736_update_led_control_registers(DRIVER_ADDR_1, 0);
-# if defined(DRIVER_ADDR_2)
- is31fl3736_update_led_control_registers(DRIVER_ADDR_2, 1);
-# if defined(DRIVER_ADDR_3)
- is31fl3736_update_led_control_registers(DRIVER_ADDR_3, 2);
-# if defined(DRIVER_ADDR_4)
- is31fl3736_update_led_control_registers(DRIVER_ADDR_4, 3);
-# endif
-# endif
-# endif
-
-# elif defined(IS31FL3737)
- is31fl3737_update_led_control_registers(DRIVER_ADDR_1, 0);
-# if defined(DRIVER_ADDR_2)
- is31fl3737_update_led_control_registers(DRIVER_ADDR_2, 1);
-# if defined(DRIVER_ADDR_3)
- is31fl3737_update_led_control_registers(DRIVER_ADDR_3, 2);
-# if defined(DRIVER_ADDR_4)
- is31fl3737_update_led_control_registers(DRIVER_ADDR_4, 3);
-# endif
-# endif
-# endif
-
-# elif defined(IS31FL3741)
- is31fl3741_update_led_control_registers(DRIVER_ADDR_1, 0);
-# if defined(DRIVER_ADDR_2)
- is31fl3741_update_led_control_registers(DRIVER_ADDR_2, 1);
-# if defined(DRIVER_ADDR_3)
- is31fl3741_update_led_control_registers(DRIVER_ADDR_3, 2);
-# if defined(DRIVER_ADDR_4)
- is31fl3741_update_led_control_registers(DRIVER_ADDR_4, 3);
-# endif
-# endif
-# endif
-
-# elif defined(IS31FLCOMMON)
-# ifdef ISSI_MANUAL_SCALING
- IS31FL_set_manual_scaling_buffer();
-# endif
- IS31FL_common_update_scaling_register(DRIVER_ADDR_1, 0);
-# if defined(DRIVER_ADDR_2)
- IS31FL_common_update_scaling_register(DRIVER_ADDR_2, 1);
-# if defined(DRIVER_ADDR_3)
- IS31FL_common_update_scaling_register(DRIVER_ADDR_3, 2);
-# if defined(DRIVER_ADDR_4)
- IS31FL_common_update_scaling_register(DRIVER_ADDR_4, 3);
-# endif
-# endif
-# endif
-
-# elif defined(CKLED2001)
- ckled2001_update_led_control_registers(DRIVER_ADDR_1, 0);
-# if defined(DRIVER_ADDR_2)
- ckled2001_update_led_control_registers(DRIVER_ADDR_2, 1);
-# if defined(DRIVER_ADDR_3)
- ckled2001_update_led_control_registers(DRIVER_ADDR_3, 2);
-# if defined(DRIVER_ADDR_4)
- ckled2001_update_led_control_registers(DRIVER_ADDR_4, 3);
-# endif
-# endif
-# endif
-# endif
-}
-
-# if defined(IS31FL3731)
-static void flush(void) {
- is31fl3731_update_pwm_buffers(DRIVER_ADDR_1, 0);
-# if defined(DRIVER_ADDR_2)
- is31fl3731_update_pwm_buffers(DRIVER_ADDR_2, 1);
-# if defined(DRIVER_ADDR_3)
- is31fl3731_update_pwm_buffers(DRIVER_ADDR_3, 2);
-# if defined(DRIVER_ADDR_4)
- is31fl3731_update_pwm_buffers(DRIVER_ADDR_4, 3);
-# endif
-# endif
-# endif
-}
+#if defined(RGB_MATRIX_IS31FL3218)
+const rgb_matrix_driver_t rgb_matrix_driver = {
+ .init = is31fl3218_init,
+ .flush = is31fl3218_update_pwm_buffers,
+ .set_color = is31fl3218_set_color,
+ .set_color_all = is31fl3218_set_color_all,
+};
+#elif defined(RGB_MATRIX_IS31FL3731)
const rgb_matrix_driver_t rgb_matrix_driver = {
- .init = init,
- .flush = flush,
+ .init = is31fl3731_init_drivers,
+ .flush = is31fl3731_flush,
.set_color = is31fl3731_set_color,
.set_color_all = is31fl3731_set_color_all,
};
-# elif defined(IS31FL3733)
-static void flush(void) {
- is31fl3733_update_pwm_buffers(DRIVER_ADDR_1, 0);
-# if defined(DRIVER_ADDR_2)
- is31fl3733_update_pwm_buffers(DRIVER_ADDR_2, 1);
-# if defined(DRIVER_ADDR_3)
- is31fl3733_update_pwm_buffers(DRIVER_ADDR_3, 2);
-# if defined(DRIVER_ADDR_4)
- is31fl3733_update_pwm_buffers(DRIVER_ADDR_4, 3);
-# endif
-# endif
-# endif
-}
-
+#elif defined(RGB_MATRIX_IS31FL3733)
const rgb_matrix_driver_t rgb_matrix_driver = {
- .init = init,
- .flush = flush,
- .set_color = is31fl3733_set_color,
+ .init = is31fl3733_init_drivers,
+ .flush = is31fl3733_flush,
+ .set_color = is31fl3733_set_color,
.set_color_all = is31fl3733_set_color_all,
};
-# elif defined(IS31FL3736)
-static void flush(void) {
- is31fl3736_update_pwm_buffers(DRIVER_ADDR_1, 0);
-# if defined(DRIVER_ADDR_2)
- is31fl3736_update_pwm_buffers(DRIVER_ADDR_2, 1);
-# if defined(DRIVER_ADDR_3)
- is31fl3736_update_pwm_buffers(DRIVER_ADDR_3, 2);
-# if defined(DRIVER_ADDR_4)
- is31fl3736_update_pwm_buffers(DRIVER_ADDR_4, 3);
-# endif
-# endif
-# endif
-}
-
+#elif defined(RGB_MATRIX_IS31FL3736)
const rgb_matrix_driver_t rgb_matrix_driver = {
- .init = init,
- .flush = flush,
- .set_color = is31fl3736_set_color,
+ .init = is31fl3736_init_drivers,
+ .flush = is31fl3736_flush,
+ .set_color = is31fl3736_set_color,
.set_color_all = is31fl3736_set_color_all,
};
-# elif defined(IS31FL3737)
-static void flush(void) {
- is31fl3737_update_pwm_buffers(DRIVER_ADDR_1, 0);
-# if defined(DRIVER_ADDR_2)
- is31fl3737_update_pwm_buffers(DRIVER_ADDR_2, 1);
-# if defined(DRIVER_ADDR_3)
- is31fl3737_update_pwm_buffers(DRIVER_ADDR_3, 2);
-# if defined(DRIVER_ADDR_4)
- is31fl3737_update_pwm_buffers(DRIVER_ADDR_4, 3);
-# endif
-# endif
-# endif
-}
-
+#elif defined(RGB_MATRIX_IS31FL3737)
const rgb_matrix_driver_t rgb_matrix_driver = {
- .init = init,
- .flush = flush,
- .set_color = is31fl3737_set_color,
+ .init = is31fl3737_init_drivers,
+ .flush = is31fl3737_flush,
+ .set_color = is31fl3737_set_color,
.set_color_all = is31fl3737_set_color_all,
};
-# elif defined(IS31FL3741)
-static void flush(void) {
- is31fl3741_update_pwm_buffers(DRIVER_ADDR_1, 0);
-# if defined(DRIVER_ADDR_2)
- is31fl3741_update_pwm_buffers(DRIVER_ADDR_2, 1);
-# if defined(DRIVER_ADDR_3)
- is31fl3741_update_pwm_buffers(DRIVER_ADDR_3, 2);
-# if defined(DRIVER_ADDR_4)
- is31fl3741_update_pwm_buffers(DRIVER_ADDR_4, 3);
-# endif
-# endif
-# endif
-}
-
+#elif defined(RGB_MATRIX_IS31FL3741)
const rgb_matrix_driver_t rgb_matrix_driver = {
- .init = init,
- .flush = flush,
- .set_color = is31fl3741_set_color,
+ .init = is31fl3741_init_drivers,
+ .flush = is31fl3741_flush,
+ .set_color = is31fl3741_set_color,
.set_color_all = is31fl3741_set_color_all,
};
-# elif defined(IS31FLCOMMON)
-static void flush(void) {
- IS31FL_common_update_pwm_register(DRIVER_ADDR_1, 0);
-# if defined(DRIVER_ADDR_2)
- IS31FL_common_update_pwm_register(DRIVER_ADDR_2, 1);
-# if defined(DRIVER_ADDR_3)
- IS31FL_common_update_pwm_register(DRIVER_ADDR_3, 2);
-# if defined(DRIVER_ADDR_4)
- IS31FL_common_update_pwm_register(DRIVER_ADDR_4, 3);
-# endif
-# endif
-# endif
-}
-
+#elif defined(IS31FLCOMMON)
const rgb_matrix_driver_t rgb_matrix_driver = {
- .init = init,
- .flush = flush,
- .set_color = IS31FL_RGB_set_color,
+ .init = IS31FL_RGB_init_drivers,
+ .flush = IS31FL_common_flush,
+ .set_color = IS31FL_RGB_set_color,
.set_color_all = IS31FL_RGB_set_color_all,
};
-# elif defined(CKLED2001)
-static void flush(void) {
- ckled2001_update_pwm_buffers(DRIVER_ADDR_1, 0);
-# if defined(DRIVER_ADDR_2)
- ckled2001_update_pwm_buffers(DRIVER_ADDR_2, 1);
-# if defined(DRIVER_ADDR_3)
- ckled2001_update_pwm_buffers(DRIVER_ADDR_3, 2);
-# if defined(DRIVER_ADDR_4)
- ckled2001_update_pwm_buffers(DRIVER_ADDR_4, 3);
-# endif
-# endif
-# endif
-}
-
+#elif defined(RGB_MATRIX_SNLED27351)
const rgb_matrix_driver_t rgb_matrix_driver = {
- .init = init,
- .flush = flush,
- .set_color = ckled2001_set_color,
- .set_color_all = ckled2001_set_color_all,
+ .init = snled27351_init_drivers,
+ .flush = snled27351_flush,
+ .set_color = snled27351_set_color,
+ .set_color_all = snled27351_set_color_all,
};
-# endif
-
-#elif defined(AW20216)
-# include "spi_master.h"
-
-static void init(void) {
- spi_init();
-
- aw20216_init(DRIVER_1_CS, DRIVER_1_EN);
-# if defined(DRIVER_2_CS)
- aw20216_init(DRIVER_2_CS, DRIVER_2_EN);
-# endif
-}
-
-static void flush(void) {
- aw20216_update_pwm_buffers(DRIVER_1_CS, 0);
-# if defined(DRIVER_2_CS)
- aw20216_update_pwm_buffers(DRIVER_2_CS, 1);
-# endif
-}
+#elif defined(RGB_MATRIX_AW20216S)
const rgb_matrix_driver_t rgb_matrix_driver = {
- .init = init,
- .flush = flush,
- .set_color = aw20216_set_color,
- .set_color_all = aw20216_set_color_all,
+ .init = aw20216s_init_drivers,
+ .flush = aw20216s_flush,
+ .set_color = aw20216s_set_color,
+ .set_color_all = aw20216s_set_color_all,
};
-#elif defined(WS2812)
-# if defined(RGBLIGHT_ENABLE) && !defined(RGBLIGHT_CUSTOM_DRIVER)
+#elif defined(RGB_MATRIX_WS2812)
+# if defined(RGBLIGHT_WS2812)
# pragma message "Cannot use RGBLIGHT and RGB Matrix using WS2812 at the same time."
# pragma message "You need to use a custom driver, or re-implement the WS2812 driver to use a different configuration."
# endif
// LED color buffer
-LED_TYPE rgb_matrix_ws2812_array[RGB_MATRIX_LED_COUNT];
-bool ws2812_dirty = false;
+rgb_led_t rgb_matrix_ws2812_array[RGB_MATRIX_LED_COUNT];
+bool ws2812_dirty = false;
static void init(void) {
ws2812_dirty = false;
@@ -480,4 +157,5 @@ const rgb_matrix_driver_t rgb_matrix_driver = {
.set_color = setled,
.set_color_all = setled_all,
};
+
#endif
diff --git a/quantum/rgb_matrix/rgb_matrix_types.h b/quantum/rgb_matrix/rgb_matrix_types.h
index 53ff7321b8..0a3fd7cc0d 100644
--- a/quantum/rgb_matrix/rgb_matrix_types.h
+++ b/quantum/rgb_matrix/rgb_matrix_types.h
@@ -19,16 +19,7 @@
#include <stdint.h>
#include <stdbool.h>
#include "color.h"
-
-#if defined(__GNUC__)
-# define PACKED __attribute__((__packed__))
-#else
-# define PACKED
-#endif
-
-#if defined(_MSC_VER)
-# pragma pack(push, 1)
-#endif
+#include "util.h"
#if defined(RGB_MATRIX_KEYPRESSES) || defined(RGB_MATRIX_KEYRELEASES)
# define RGB_MATRIX_KEYREACTIVE_ENABLED
@@ -94,7 +85,3 @@ typedef union {
} rgb_config_t;
_Static_assert(sizeof(rgb_config_t) == sizeof(uint64_t), "RGB Matrix EECONFIG out of spec.");
-
-#if defined(_MSC_VER)
-# pragma pack(pop)
-#endif
diff --git a/quantum/rgblight/rgblight.c b/quantum/rgblight/rgblight.c
index 158112f31d..8ac886d441 100644
--- a/quantum/rgblight/rgblight.c
+++ b/quantum/rgblight/rgblight.c
@@ -27,9 +27,6 @@
#ifdef EEPROM_ENABLE
# include "eeprom.h"
#endif
-#ifdef VELOCIKEY_ENABLE
-# include "velocikey.h"
-#endif
#ifdef RGBLIGHT_SPLIT
/* for split keyboard */
@@ -89,6 +86,10 @@ static uint8_t mode_base_table[] = {
# define RGBLIGHT_DEFAULT_SPD 0
#endif
+#if !defined(RGBLIGHT_DEFAULT_ON)
+# define RGBLIGHT_DEFAULT_ON true
+#endif
+
static inline int is_static_effect(uint8_t mode) {
return memchr(static_effect_table, mode, sizeof(static_effect_table)) != NULL;
}
@@ -115,7 +116,7 @@ animation_status_t animation_status = {};
#endif
#ifndef LED_ARRAY
-LED_TYPE led[RGBLED_NUM];
+rgb_led_t led[RGBLED_NUM];
# define LED_ARRAY led
#endif
@@ -144,17 +145,17 @@ __attribute__((weak)) RGB rgblight_hsv_to_rgb(HSV hsv) {
return hsv_to_rgb(hsv);
}
-void sethsv_raw(uint8_t hue, uint8_t sat, uint8_t val, LED_TYPE *led1) {
+void sethsv_raw(uint8_t hue, uint8_t sat, uint8_t val, rgb_led_t *led1) {
HSV hsv = {hue, sat, val};
RGB rgb = rgblight_hsv_to_rgb(hsv);
setrgb(rgb.r, rgb.g, rgb.b, led1);
}
-void sethsv(uint8_t hue, uint8_t sat, uint8_t val, LED_TYPE *led1) {
+void sethsv(uint8_t hue, uint8_t sat, uint8_t val, rgb_led_t *led1) {
sethsv_raw(hue, sat, val > RGBLIGHT_LIMIT_VAL ? RGBLIGHT_LIMIT_VAL : val, led1);
}
-void setrgb(uint8_t r, uint8_t g, uint8_t b, LED_TYPE *led1) {
+void setrgb(uint8_t r, uint8_t g, uint8_t b, rgb_led_t *led1) {
led1->r = r;
led1->g = g;
led1->b = b;
@@ -198,12 +199,13 @@ void eeconfig_update_rgblight_current(void) {
}
void eeconfig_update_rgblight_default(void) {
- rgblight_config.enable = 1;
- rgblight_config.mode = RGBLIGHT_DEFAULT_MODE;
- rgblight_config.hue = RGBLIGHT_DEFAULT_HUE;
- rgblight_config.sat = RGBLIGHT_DEFAULT_SAT;
- rgblight_config.val = RGBLIGHT_DEFAULT_VAL;
- rgblight_config.speed = RGBLIGHT_DEFAULT_SPD;
+ rgblight_config.enable = RGBLIGHT_DEFAULT_ON;
+ rgblight_config.velocikey = 0;
+ rgblight_config.mode = RGBLIGHT_DEFAULT_MODE;
+ rgblight_config.hue = RGBLIGHT_DEFAULT_HUE;
+ rgblight_config.sat = RGBLIGHT_DEFAULT_SAT;
+ rgblight_config.val = RGBLIGHT_DEFAULT_VAL;
+ rgblight_config.speed = RGBLIGHT_DEFAULT_SPD;
RGBLIGHT_SPLIT_SET_CHANGE_MODEHSVS;
eeconfig_update_rgblight(rgblight_config.raw);
}
@@ -211,6 +213,7 @@ void eeconfig_update_rgblight_default(void) {
void eeconfig_debug_rgblight(void) {
dprintf("rgblight_config EEPROM:\n");
dprintf("rgblight_config.enable = %d\n", rgblight_config.enable);
+ dprintf("rgblight_config.velocikey = %d\n", rgblight_config.velocikey);
dprintf("rghlight_config.mode = %d\n", rgblight_config.mode);
dprintf("rgblight_config.hue = %d\n", rgblight_config.hue);
dprintf("rgblight_config.sat = %d\n", rgblight_config.sat);
@@ -516,7 +519,7 @@ void rgblight_decrease_speed_noeeprom(void) {
void rgblight_sethsv_noeeprom_old(uint8_t hue, uint8_t sat, uint8_t val) {
if (rgblight_config.enable) {
- LED_TYPE tmp_led;
+ rgb_led_t tmp_led;
sethsv(hue, sat, val, &tmp_led);
rgblight_setrgb(tmp_led.r, tmp_led.g, tmp_led.b);
}
@@ -532,7 +535,7 @@ void rgblight_sethsv_eeprom_helper(uint8_t hue, uint8_t sat, uint8_t val, bool w
rgblight_status.base_mode = mode_base_table[rgblight_config.mode];
if (rgblight_config.mode == RGBLIGHT_MODE_STATIC_LIGHT) {
// same static color
- LED_TYPE tmp_led;
+ rgb_led_t tmp_led;
#ifdef RGBLIGHT_LAYERS_RETAIN_VAL
// needed for rgblight_layers_write() to get the new val, since it reads rgblight_config.val
rgblight_config.val = val;
@@ -576,7 +579,7 @@ void rgblight_sethsv_eeprom_helper(uint8_t hue, uint8_t sat, uint8_t val, bool w
_hue = hue - _hue;
}
dprintf("rgblight rainbow set hsv: %d,%d,%d,%u\n", i, _hue, direction, range);
- sethsv(_hue, sat, val, (LED_TYPE *)&led[i + rgblight_ranges.effect_start_pos]);
+ sethsv(_hue, sat, val, (rgb_led_t *)&led[i + rgblight_ranges.effect_start_pos]);
}
# ifdef RGBLIGHT_LAYERS_RETAIN_VAL
// needed for rgblight_layers_write() to get the new val, since it reads rgblight_config.val
@@ -679,7 +682,7 @@ void rgblight_sethsv_at(uint8_t hue, uint8_t sat, uint8_t val, uint8_t index) {
return;
}
- LED_TYPE tmp_led;
+ rgb_led_t tmp_led;
sethsv(hue, sat, val, &tmp_led);
rgblight_setrgb_at(tmp_led.r, tmp_led.g, tmp_led.b, index);
}
@@ -689,9 +692,9 @@ void rgblight_sethsv_at(uint8_t hue, uint8_t sat, uint8_t val, uint8_t index) {
static uint8_t get_interval_time(const uint8_t *default_interval_address, uint8_t velocikey_min, uint8_t velocikey_max) {
return
# ifdef VELOCIKEY_ENABLE
- velocikey_enabled() ? velocikey_match_speed(velocikey_min, velocikey_max) :
+ rgblight_velocikey_enabled() ? rgblight_velocikey_match_speed(velocikey_min, velocikey_max) :
# endif
- pgm_read_byte(default_interval_address);
+ pgm_read_byte(default_interval_address);
}
#endif
@@ -717,7 +720,7 @@ void rgblight_sethsv_range(uint8_t hue, uint8_t sat, uint8_t val, uint8_t start,
return;
}
- LED_TYPE tmp_led;
+ rgb_led_t tmp_led;
sethsv(hue, sat, val, &tmp_led);
rgblight_setrgb_range(tmp_led.r, tmp_led.g, tmp_led.b, start, end);
}
@@ -786,8 +789,8 @@ static void rgblight_layers_write(void) {
break; // No more segments
}
// Write segment.count LEDs
- LED_TYPE *const limit = &led[MIN(segment.index + segment.count, RGBLED_NUM)];
- for (LED_TYPE *led_ptr = &led[segment.index]; led_ptr < limit; led_ptr++) {
+ rgb_led_t *const limit = &led[MIN(segment.index + segment.count, RGBLED_NUM)];
+ for (rgb_led_t *led_ptr = &led[segment.index]; led_ptr < limit; led_ptr++) {
# ifdef RGBLIGHT_LAYERS_RETAIN_VAL
sethsv(segment.hue, segment.sat, current_val, led_ptr);
# else
@@ -897,15 +900,15 @@ void rgblight_wakeup(void) {
#endif
-__attribute__((weak)) void rgblight_call_driver(LED_TYPE *start_led, uint8_t num_leds) {
+__attribute__((weak)) void rgblight_call_driver(rgb_led_t *start_led, uint8_t num_leds) {
ws2812_setleds(start_led, num_leds);
}
-#ifndef RGBLIGHT_CUSTOM_DRIVER
+#ifndef RGBLIGHT_CUSTOM
void rgblight_set(void) {
- LED_TYPE *start_led;
- uint8_t num_leds = rgblight_ranges.clipping_num_leds;
+ rgb_led_t *start_led;
+ uint8_t num_leds = rgblight_ranges.clipping_num_leds;
if (!rgblight_config.enable) {
for (uint8_t i = rgblight_ranges.effect_start_pos; i < rgblight_ranges.effect_end_pos; i++) {
@@ -931,7 +934,7 @@ void rgblight_set(void) {
# endif
# ifdef RGBLIGHT_LED_MAP
- LED_TYPE led0[RGBLED_NUM];
+ rgb_led_t led0[RGBLED_NUM];
for (uint8_t i = 0; i < RGBLED_NUM; i++) {
led0[i] = led[pgm_read_byte(&led_map[i])];
}
@@ -1049,7 +1052,7 @@ static void rgblight_effect_dummy(animation_status_t *anim) {
**/
}
-void rgblight_task(void) {
+void rgblight_timer_task(void) {
if (rgblight_status.timer_enabled) {
effect_func_t effect_func = rgblight_effect_dummy;
uint16_t interval_time = 2000; // dummy interval
@@ -1230,7 +1233,7 @@ void rgblight_effect_rainbow_swirl(animation_status_t *anim) {
for (i = 0; i < rgblight_ranges.effect_num_leds; i++) {
hue = (RGBLIGHT_RAINBOW_SWIRL_RANGE / rgblight_ranges.effect_num_leds * i + anim->current_hue);
- sethsv(hue, rgblight_config.sat, rgblight_config.val, (LED_TYPE *)&led[i + rgblight_ranges.effect_start_pos]);
+ sethsv(hue, rgblight_config.sat, rgblight_config.val, (rgb_led_t *)&led[i + rgblight_ranges.effect_start_pos]);
}
rgblight_set();
@@ -1267,10 +1270,10 @@ void rgblight_effect_snake(animation_status_t *anim) {
# endif
for (i = 0; i < rgblight_ranges.effect_num_leds; i++) {
- LED_TYPE *ledp = led + i + rgblight_ranges.effect_start_pos;
- ledp->r = 0;
- ledp->g = 0;
- ledp->b = 0;
+ rgb_led_t *ledp = led + i + rgblight_ranges.effect_start_pos;
+ ledp->r = 0;
+ ledp->g = 0;
+ ledp->b = 0;
# ifdef RGBW
ledp->w = 0;
# endif
@@ -1340,7 +1343,7 @@ void rgblight_effect_knight(animation_status_t *anim) {
cur = (i + RGBLIGHT_EFFECT_KNIGHT_OFFSET) % rgblight_ranges.effect_num_leds + rgblight_ranges.effect_start_pos;
if (i >= low_bound && i <= high_bound) {
- sethsv(rgblight_config.hue, rgblight_config.sat, rgblight_config.val, (LED_TYPE *)&led[cur]);
+ sethsv(rgblight_config.hue, rgblight_config.sat, rgblight_config.val, (rgb_led_t *)&led[cur]);
} else {
led[cur].r = 0;
led[cur].g = 0;
@@ -1392,7 +1395,7 @@ void rgblight_effect_christmas(animation_status_t *anim) {
for (i = 0; i < rgblight_ranges.effect_num_leds; i++) {
uint8_t local_hue = (i / RGBLIGHT_EFFECT_CHRISTMAS_STEP) % 2 ? hue : hue_green - hue;
- sethsv(local_hue, rgblight_config.sat, val, (LED_TYPE *)&led[i + rgblight_ranges.effect_start_pos]);
+ sethsv(local_hue, rgblight_config.sat, val, (rgb_led_t *)&led[i + rgblight_ranges.effect_start_pos]);
}
rgblight_set();
@@ -1415,7 +1418,7 @@ void rgblight_effect_rgbtest(animation_status_t *anim) {
uint8_t b;
if (maxval == 0) {
- LED_TYPE tmp_led;
+ rgb_led_t tmp_led;
sethsv(0, 255, RGBLIGHT_LIMIT_VAL, &tmp_led);
maxval = tmp_led.r;
}
@@ -1439,7 +1442,7 @@ void rgblight_effect_rgbtest(animation_status_t *anim) {
#ifdef RGBLIGHT_EFFECT_ALTERNATING
void rgblight_effect_alternating(animation_status_t *anim) {
for (int i = 0; i < rgblight_ranges.effect_num_leds; i++) {
- LED_TYPE *ledp = led + i + rgblight_ranges.effect_start_pos;
+ rgb_led_t *ledp = led + i + rgblight_ranges.effect_start_pos;
if (i < rgblight_ranges.effect_num_leds / 2 && anim->pos) {
sethsv(rgblight_config.hue, rgblight_config.sat, rgblight_config.val, ledp);
} else if (i >= rgblight_ranges.effect_num_leds / 2 && !anim->pos) {
@@ -1512,10 +1515,68 @@ void rgblight_effect_twinkle(animation_status_t *anim) {
// This LED is off, and was NOT selected to start brightening
}
- LED_TYPE *ledp = led + i + rgblight_ranges.effect_start_pos;
+ rgb_led_t *ledp = led + i + rgblight_ranges.effect_start_pos;
sethsv(c->h, c->s, c->v, ledp);
}
rgblight_set();
}
#endif
+
+void preprocess_rgblight(void) {
+#ifdef VELOCIKEY_ENABLE
+ if (rgblight_velocikey_enabled()) {
+ rgblight_velocikey_accelerate();
+ }
+#endif
+}
+
+void rgblight_task(void) {
+#ifdef RGBLIGHT_USE_TIMER
+ rgblight_timer_task();
+#endif
+
+#ifdef VELOCIKEY_ENABLE
+ if (rgblight_velocikey_enabled()) {
+ rgblight_velocikey_decelerate();
+ }
+#endif
+}
+
+#ifdef VELOCIKEY_ENABLE
+# define TYPING_SPEED_MAX_VALUE 200
+
+static uint8_t typing_speed = 0;
+
+bool rgblight_velocikey_enabled(void) {
+ return rgblight_config.velocikey;
+}
+
+void rgblight_velocikey_toggle(void) {
+ dprintf("rgblight velocikey toggle [EEPROM]: rgblight_config.velocikey = %u\n", !rgblight_config.velocikey);
+ rgblight_config.velocikey = !rgblight_config.velocikey;
+ eeconfig_update_rgblight_current();
+}
+
+void rgblight_velocikey_accelerate(void) {
+ if (typing_speed < TYPING_SPEED_MAX_VALUE) typing_speed += (TYPING_SPEED_MAX_VALUE / 100);
+}
+
+void rgblight_velocikey_decelerate(void) {
+ static uint16_t decay_timer = 0;
+
+ if (timer_elapsed(decay_timer) > 500 || decay_timer == 0) {
+ if (typing_speed > 0) typing_speed -= 1;
+ // Decay a little faster at half of max speed
+ if (typing_speed > TYPING_SPEED_MAX_VALUE / 2) typing_speed -= 1;
+ // Decay even faster at 3/4 of max speed
+ if (typing_speed > TYPING_SPEED_MAX_VALUE / 4 * 3) typing_speed -= 2;
+ decay_timer = timer_read();
+ }
+}
+
+uint8_t rgblight_velocikey_match_speed(uint8_t minValue, uint8_t maxValue) {
+ return MAX(minValue, maxValue - (maxValue - minValue) * ((float)typing_speed / TYPING_SPEED_MAX_VALUE));
+}
+
+#endif \ No newline at end of file
diff --git a/quantum/rgblight/rgblight.h b/quantum/rgblight/rgblight.h
index 001058f962..a222ab6b9f 100644
--- a/quantum/rgblight/rgblight.h
+++ b/quantum/rgblight/rgblight.h
@@ -233,7 +233,7 @@ void rgblight_unblink_all_but_layer(uint8_t layer);
#endif
-extern LED_TYPE led[RGBLED_NUM];
+extern rgb_led_t led[RGBLED_NUM];
extern const uint8_t RGBLED_BREATHING_INTERVALS[4] PROGMEM;
extern const uint8_t RGBLED_RAINBOW_MOOD_INTERVALS[3] PROGMEM;
@@ -248,7 +248,8 @@ typedef union {
uint64_t raw;
struct {
bool enable : 1;
- uint8_t mode : 7;
+ bool velocikey : 1;
+ uint8_t mode : 6;
uint8_t hue : 8;
uint8_t sat : 8;
uint8_t val : 8;
@@ -283,9 +284,9 @@ typedef struct _rgblight_ranges_t {
extern rgblight_ranges_t rgblight_ranges;
/* === Utility Functions ===*/
-void sethsv(uint8_t hue, uint8_t sat, uint8_t val, LED_TYPE *led1);
-void sethsv_raw(uint8_t hue, uint8_t sat, uint8_t val, LED_TYPE *led1); // without RGBLIGHT_LIMIT_VAL check
-void setrgb(uint8_t r, uint8_t g, uint8_t b, LED_TYPE *led1);
+void sethsv(uint8_t hue, uint8_t sat, uint8_t val, rgb_led_t *led1);
+void sethsv_raw(uint8_t hue, uint8_t sat, uint8_t val, rgb_led_t *led1); // without RGBLIGHT_LIMIT_VAL check
+void setrgb(uint8_t r, uint8_t g, uint8_t b, rgb_led_t *led1);
/* === Low level Functions === */
void rgblight_set(void);
@@ -385,14 +386,15 @@ void rgblight_mode_eeprom_helper(uint8_t mode, bool write_to_eeprom);
#define EZ_RGB(val) rgblight_show_solid_color((val >> 16) & 0xFF, (val >> 8) & 0xFF, val & 0xFF)
void rgblight_show_solid_color(uint8_t r, uint8_t g, uint8_t b);
-#ifdef RGBLIGHT_USE_TIMER
+void preprocess_rgblight(void);
void rgblight_task(void);
+
+#ifdef RGBLIGHT_USE_TIMER
void rgblight_timer_init(void);
void rgblight_timer_enable(void);
void rgblight_timer_disable(void);
void rgblight_timer_toggle(void);
#else
-# define rgblight_task()
# define rgblight_timer_init()
# define rgblight_timer_enable()
# define rgblight_timer_disable()
@@ -446,3 +448,14 @@ void rgblight_effect_alternating(animation_status_t *anim);
void rgblight_effect_twinkle(animation_status_t *anim);
#endif
+
+#ifdef VELOCIKEY_ENABLE
+bool rgblight_velocikey_enabled(void);
+void rgblight_velocikey_toggle(void);
+void rgblight_velocikey_accelerate(void);
+void rgblight_velocikey_decelerate(void);
+uint8_t rgblight_velocikey_match_speed(uint8_t minValue, uint8_t maxValue);
+
+# define velocikey_enabled rgblight_velocikey_enabled
+# define velocikey_toggle rgblight_velocikey_toggle
+#endif
diff --git a/quantum/split_common/split_util.c b/quantum/split_common/split_util.c
index 5d044c4ea0..874339361d 100644
--- a/quantum/split_common/split_util.c
+++ b/quantum/split_common/split_util.c
@@ -56,6 +56,11 @@ static uint8_t connection_errors = 0;
volatile bool isLeftHand = true;
+static struct {
+ bool master;
+ bool left;
+} split_config;
+
#if defined(SPLIT_USB_DETECT)
_Static_assert((SPLIT_USB_TIMEOUT / SPLIT_USB_TIMEOUT_POLL) <= UINT16_MAX, "Please lower SPLIT_USB_TIMEOUT and/or increase SPLIT_USB_TIMEOUT_POLL.");
static bool usbIsActive(void) {
@@ -131,8 +136,10 @@ static uint8_t peek_matrix_intersection(pin_t out_pin, pin_t in_pin) {
}
#endif
-__attribute__((weak)) bool is_keyboard_left(void) {
+__attribute__((weak)) bool is_keyboard_left_impl(void) {
#if defined(SPLIT_HAND_PIN)
+ setPinInput(SPLIT_HAND_PIN);
+ wait_us(100);
// Test pin SPLIT_HAND_PIN for High/Low, if low it's right hand
# ifdef SPLIT_HAND_PIN_LOW_IS_LEFT
return !readPin(SPLIT_HAND_PIN);
@@ -146,36 +153,6 @@ __attribute__((weak)) bool is_keyboard_left(void) {
return !peek_matrix_intersection(SPLIT_HAND_MATRIX_GRID);
# endif
#elif defined(EE_HANDS)
- return eeconfig_read_handedness();
-#elif defined(MASTER_RIGHT)
- return !is_keyboard_master();
-#endif
-
- return is_keyboard_master();
-}
-
-__attribute__((weak)) bool is_keyboard_master(void) {
- static enum { UNKNOWN, MASTER, SLAVE } usbstate = UNKNOWN;
-
- // only check once, as this is called often
- if (usbstate == UNKNOWN) {
- usbstate = usbIsActive() ? MASTER : SLAVE;
-
- // Avoid NO_USB_STARTUP_CHECK - Disable USB as the previous checks seem to enable it somehow
- if (usbstate == SLAVE) {
- usb_disconnect();
- }
- }
-
- return (usbstate == MASTER);
-}
-
-// this code runs before the keyboard is fully initialized
-void split_pre_init(void) {
-#if defined(SPLIT_HAND_PIN)
- setPinInput(SPLIT_HAND_PIN);
- wait_us(100);
-#elif defined(EE_HANDS)
if (!eeconfig_is_enabled()) {
eeconfig_init();
}
@@ -193,12 +170,42 @@ void split_pre_init(void) {
eeconfig_update_handedness(should_be_left);
}
# endif // defined(INIT_EE_HANDS_LEFT) || defined(INIT_EE_HANDS_RIGHT)
+ return eeconfig_read_handedness();
+#elif defined(MASTER_RIGHT)
+ return !is_keyboard_master();
+#else
+ return is_keyboard_master();
#endif
- isLeftHand = is_keyboard_left();
+}
+
+__attribute__((weak)) bool is_keyboard_master_impl(void) {
+ bool is_master = usbIsActive();
+
+ // Avoid NO_USB_STARTUP_CHECK - Disable USB as the previous checks seem to enable it somehow
+ if (!is_master) {
+ usb_disconnect();
+ }
+ return is_master;
+}
+
+__attribute__((weak)) bool is_keyboard_left(void) {
+ return split_config.left;
+}
+
+__attribute__((weak)) bool is_keyboard_master(void) {
+ return split_config.master;
+}
+
+// this code runs before the keyboard is fully initialized
+void split_pre_init(void) {
+ split_config.master = is_keyboard_master_impl();
+ split_config.left = is_keyboard_left_impl();
+
+ isLeftHand = is_keyboard_left(); // TODO: Remove isLeftHand
#if defined(RGBLIGHT_ENABLE) && defined(RGBLED_SPLIT)
uint8_t num_rgb_leds_split[2] = RGBLED_SPLIT;
- if (isLeftHand) {
+ if (is_keyboard_left()) {
rgblight_set_clipping_range(0, num_rgb_leds_split[0]);
} else {
rgblight_set_clipping_range(num_rgb_leds_split[0], num_rgb_leds_split[1]);
diff --git a/quantum/steno_keycodes.h b/quantum/steno_keycodes.h
new file mode 100644
index 0000000000..852b2f7121
--- /dev/null
+++ b/quantum/steno_keycodes.h
@@ -0,0 +1,119 @@
+/* Copyright 2017 Joseph Wasson
+ *
+ * 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 "keycodes.h"
+
+// List of keycodes for the steno keyboard. To prevent
+// errors, this must be <= 42 total entries in order to
+// support the GeminiPR protocol.
+enum steno_keycodes {
+ STN__MIN = QK_STENO,
+ STN_FN = STN__MIN,
+ STN_NUM,
+ STN_N1 = STN_NUM,
+ STN_N2,
+ STN_N3,
+ STN_N4,
+ STN_N5,
+ STN_N6,
+ STN_SL,
+ STN_S1 = STN_SL,
+ STN_S2,
+ STN_TL,
+ STN_KL,
+ STN_PL,
+ STN_WL,
+ STN_HL,
+ STN_RL,
+ STN_A,
+ STN_O,
+ STN_STR,
+ STN_ST1 = STN_STR,
+ STN_ST2,
+ STN_RES1,
+ STN_RE1 = STN_RES1,
+ STN_RES2,
+ STN_RE2 = STN_RES2,
+ STN_PWR,
+ STN_ST3,
+ STN_ST4,
+ STN_E,
+ STN_U,
+ STN_FR,
+ STN_RR,
+ STN_PR,
+ STN_BR,
+ STN_LR,
+ STN_GR,
+ STN_TR,
+ STN_SR,
+ STN_DR,
+ STN_N7,
+ STN_N8,
+ STN_N9,
+ STN_NA,
+ STN_NB,
+ STN_NC,
+ STN_ZR,
+ STN__MAX = STN_ZR, // must be less than QK_STENO_BOLT
+};
+
+#ifdef STENO_COMBINEDMAP
+enum steno_combined_keycodes {
+ STN_S3 = QK_STENO_COMB,
+ STN_TKL,
+ STN_PWL,
+ STN_HRL,
+ STN_FRR,
+ STN_PBR,
+ STN_LGR,
+ STN_TSR,
+ STN_DZR,
+ STN_AO,
+ STN_EU,
+ STN_COMB_MAX = STN_EU,
+};
+#endif
+
+#ifdef STENO_ENABLE_BOLT
+// TxBolt Codes
+# define TXB_NUL 0
+# define TXB_S_L 0b00000001
+# define TXB_T_L 0b00000010
+# define TXB_K_L 0b00000100
+# define TXB_P_L 0b00001000
+# define TXB_W_L 0b00010000
+# define TXB_H_L 0b00100000
+# define TXB_R_L 0b01000001
+# define TXB_A_L 0b01000010
+# define TXB_O_L 0b01000100
+# define TXB_STR 0b01001000
+# define TXB_E_R 0b01010000
+# define TXB_U_R 0b01100000
+# define TXB_F_R 0b10000001
+# define TXB_R_R 0b10000010
+# define TXB_P_R 0b10000100
+# define TXB_B_R 0b10001000
+# define TXB_L_R 0b10010000
+# define TXB_G_R 0b10100000
+# define TXB_T_R 0b11000001
+# define TXB_S_R 0b11000010
+# define TXB_D_R 0b11000100
+# define TXB_Z_R 0b11001000
+# define TXB_NUM 0b11010000
+#endif // STENO_ENABLE_BOLT
diff --git a/quantum/util.h b/quantum/util.h
index 9c034cc404..94d9f22317 100644
--- a/quantum/util.h
+++ b/quantum/util.h
@@ -46,3 +46,11 @@
*/
# define ARRAY_SIZE(array) (__builtin_choose_expr(IS_ARRAY((array)), sizeof((array)) / sizeof((array)[0]), (void)0))
#endif
+
+#if !defined(PACKED)
+# define PACKED __attribute__((__packed__))
+#endif
+
+#if __has_include("_util.h")
+# include "_util.h" /* Include the platform's _util.h */
+#endif
diff --git a/quantum/velocikey.c b/quantum/velocikey.c
deleted file mode 100644
index 03e91911f6..0000000000
--- a/quantum/velocikey.c
+++ /dev/null
@@ -1,40 +0,0 @@
-#include "velocikey.h"
-#include "timer.h"
-#include "eeconfig.h"
-#include "eeprom.h"
-#include "util.h"
-
-#define TYPING_SPEED_MAX_VALUE 200
-uint8_t typing_speed = 0;
-
-bool velocikey_enabled(void) {
- return eeprom_read_byte(EECONFIG_VELOCIKEY) == 1;
-}
-
-void velocikey_toggle(void) {
- if (velocikey_enabled())
- eeprom_update_byte(EECONFIG_VELOCIKEY, 0);
- else
- eeprom_update_byte(EECONFIG_VELOCIKEY, 1);
-}
-
-void velocikey_accelerate(void) {
- if (typing_speed < TYPING_SPEED_MAX_VALUE) typing_speed += (TYPING_SPEED_MAX_VALUE / 100);
-}
-
-void velocikey_decelerate(void) {
- static uint16_t decay_timer = 0;
-
- if (timer_elapsed(decay_timer) > 500 || decay_timer == 0) {
- if (typing_speed > 0) typing_speed -= 1;
- // Decay a little faster at half of max speed
- if (typing_speed > TYPING_SPEED_MAX_VALUE / 2) typing_speed -= 1;
- // Decay even faster at 3/4 of max speed
- if (typing_speed > TYPING_SPEED_MAX_VALUE / 4 * 3) typing_speed -= 2;
- decay_timer = timer_read();
- }
-}
-
-uint8_t velocikey_match_speed(uint8_t minValue, uint8_t maxValue) {
- return MAX(minValue, maxValue - (maxValue - minValue) * ((float)typing_speed / TYPING_SPEED_MAX_VALUE));
-}
diff --git a/quantum/velocikey.h b/quantum/velocikey.h
deleted file mode 100644
index c375f82f71..0000000000
--- a/quantum/velocikey.h
+++ /dev/null
@@ -1,10 +0,0 @@
-#pragma once
-
-#include <stdint.h>
-#include <stdbool.h>
-
-bool velocikey_enabled(void);
-void velocikey_toggle(void);
-void velocikey_accelerate(void);
-void velocikey_decelerate(void);
-uint8_t velocikey_match_speed(uint8_t minValue, uint8_t maxValue);
diff --git a/quantum/via.c b/quantum/via.c
index 2acd7aa90c..643d7aa3c3 100644
--- a/quantum/via.c
+++ b/quantum/via.c
@@ -634,11 +634,6 @@ void via_qmk_rgblight_save(void) {
#if defined(RGB_MATRIX_ENABLE)
-# if !defined(RGB_MATRIX_MAXIMUM_BRIGHTNESS) || RGB_MATRIX_MAXIMUM_BRIGHTNESS > UINT8_MAX
-# undef RGB_MATRIX_MAXIMUM_BRIGHTNESS
-# define RGB_MATRIX_MAXIMUM_BRIGHTNESS UINT8_MAX
-# endif
-
void via_qmk_rgb_matrix_command(uint8_t *data, uint8_t length) {
// data = [ command_id, channel_id, value_id, value_data ]
uint8_t *command_id = &(data[0]);
@@ -727,11 +722,6 @@ void via_qmk_rgb_matrix_save(void) {
#if defined(LED_MATRIX_ENABLE)
-# if !defined(LED_MATRIX_MAXIMUM_BRIGHTNESS) || LED_MATRIX_MAXIMUM_BRIGHTNESS > UINT8_MAX
-# undef LED_MATRIX_MAXIMUM_BRIGHTNESS
-# define LED_MATRIX_MAXIMUM_BRIGHTNESS UINT8_MAX
-# endif
-
void via_qmk_led_matrix_command(uint8_t *data, uint8_t length) {
// data = [ command_id, channel_id, value_id, value_data ]
uint8_t *command_id = &(data[0]);
diff --git a/tests/auto_shift/auto_shift_repeat/auto_shift_no_auto_repeat/config.h b/tests/auto_shift/auto_shift_repeat/auto_shift_no_auto_repeat/config.h
new file mode 100644
index 0000000000..973e04582f
--- /dev/null
+++ b/tests/auto_shift/auto_shift_repeat/auto_shift_no_auto_repeat/config.h
@@ -0,0 +1,22 @@
+/* Copyright 2022 Isaac Elenbaas
+ *
+ * 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 "test_common.h"
+
+#define AUTO_SHIFT_REPEAT
+#define AUTO_SHIFT_NO_AUTO_REPEAT
diff --git a/tests/auto_shift/auto_shift_repeat/auto_shift_no_auto_repeat/test.mk b/tests/auto_shift/auto_shift_repeat/auto_shift_no_auto_repeat/test.mk
new file mode 100644
index 0000000000..b687332005
--- /dev/null
+++ b/tests/auto_shift/auto_shift_repeat/auto_shift_no_auto_repeat/test.mk
@@ -0,0 +1,20 @@
+# Copyright 2022 Isaac Elenbaas
+#
+# 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/>.
+
+# --------------------------------------------------------------------------------
+# Keep this file, even if it is empty, as a marker that this folder contains tests
+# --------------------------------------------------------------------------------
+
+AUTO_SHIFT_ENABLE = yes
diff --git a/tests/auto_shift/auto_shift_repeat/auto_shift_no_auto_repeat/test_auto_shift.cpp b/tests/auto_shift/auto_shift_repeat/auto_shift_no_auto_repeat/test_auto_shift.cpp
new file mode 100644
index 0000000000..cd219a5474
--- /dev/null
+++ b/tests/auto_shift/auto_shift_repeat/auto_shift_no_auto_repeat/test_auto_shift.cpp
@@ -0,0 +1,105 @@
+/* Copyright 2022 Isaac Elenbaas
+ *
+ * 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 "keyboard_report_util.hpp"
+#include "keycode.h"
+#include "test_common.hpp"
+#include "action_tapping.h"
+#include "test_fixture.hpp"
+#include "test_keymap_key.hpp"
+
+using testing::_;
+using testing::AnyNumber;
+using testing::AnyOf;
+using testing::InSequence;
+
+class AutoShiftNoAutoRepeat : public TestFixture {};
+
+TEST_F(AutoShiftNoAutoRepeat, no_auto_repeat) {
+ TestDriver driver;
+ InSequence s;
+ auto repeat_key = KeymapKey(0, 1, 0, KC_A);
+
+ set_keymap({repeat_key});
+
+ /* Press repeat key. */
+ EXPECT_NO_REPORT(driver);
+ repeat_key.press();
+ run_one_scan_loop();
+ testing::Mock::VerifyAndClearExpectations(&driver);
+
+ /* Idle for auto-repeat to (not) kick in. */
+ EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_LSFT))).Times(AnyNumber());
+ EXPECT_REPORT(driver, (KC_LSFT, KC_A));
+ EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_LSFT))).Times(AnyNumber());
+ EXPECT_EMPTY_REPORT(driver);
+ idle_for(AUTO_SHIFT_TIMEOUT);
+ run_one_scan_loop();
+ testing::Mock::VerifyAndClearExpectations(&driver);
+
+ /* Release repeat key. */
+ EXPECT_NO_REPORT(driver);
+ repeat_key.release();
+ run_one_scan_loop();
+ testing::Mock::VerifyAndClearExpectations(&driver);
+}
+
+TEST_F(AutoShiftNoAutoRepeat, tap_regular_key_while_another_key_repeats) {
+ TestDriver driver;
+ InSequence s;
+ auto repeat_key = KeymapKey(0, 1, 0, KC_P);
+ auto regular_key = KeymapKey(0, 2, 0, KC_A);
+
+ set_keymap({repeat_key, regular_key});
+
+ /* Press repeat key. */
+ EXPECT_NO_REPORT(driver);
+ repeat_key.press();
+ run_one_scan_loop();
+ testing::Mock::VerifyAndClearExpectations(&driver);
+
+ /* Release repeat key. */
+ EXPECT_REPORT(driver, (KC_P));
+ EXPECT_EMPTY_REPORT(driver);
+ repeat_key.release();
+ run_one_scan_loop();
+ testing::Mock::VerifyAndClearExpectations(&driver);
+
+ /* Press repeat key. */
+ EXPECT_REPORT(driver, (KC_P));
+ repeat_key.press();
+ run_one_scan_loop();
+ testing::Mock::VerifyAndClearExpectations(&driver);
+
+ /* Press regular key. */
+ EXPECT_NO_REPORT(driver);
+ regular_key.press();
+ run_one_scan_loop();
+ testing::Mock::VerifyAndClearExpectations(&driver);
+
+ /* Release regular key. */
+ EXPECT_REPORT(driver, (KC_P, KC_A));
+ EXPECT_REPORT(driver, (KC_P));
+ regular_key.release();
+ run_one_scan_loop();
+ testing::Mock::VerifyAndClearExpectations(&driver);
+
+ /* Release repeat key. */
+ EXPECT_EMPTY_REPORT(driver);
+ repeat_key.release();
+ run_one_scan_loop();
+ testing::Mock::VerifyAndClearExpectations(&driver);
+}
diff --git a/tests/auto_shift/auto_shift_repeat/config.h b/tests/auto_shift/auto_shift_repeat/config.h
new file mode 100644
index 0000000000..fb4c506b20
--- /dev/null
+++ b/tests/auto_shift/auto_shift_repeat/config.h
@@ -0,0 +1,21 @@
+/* Copyright 2022 Isaac Elenbaas
+ *
+ * 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 "test_common.h"
+
+#define AUTO_SHIFT_REPEAT
diff --git a/tests/auto_shift/auto_shift_repeat/test.mk b/tests/auto_shift/auto_shift_repeat/test.mk
new file mode 100644
index 0000000000..b687332005
--- /dev/null
+++ b/tests/auto_shift/auto_shift_repeat/test.mk
@@ -0,0 +1,20 @@
+# Copyright 2022 Isaac Elenbaas
+#
+# 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/>.
+
+# --------------------------------------------------------------------------------
+# Keep this file, even if it is empty, as a marker that this folder contains tests
+# --------------------------------------------------------------------------------
+
+AUTO_SHIFT_ENABLE = yes
diff --git a/tests/auto_shift/auto_shift_repeat/test_auto_shift.cpp b/tests/auto_shift/auto_shift_repeat/test_auto_shift.cpp
new file mode 100644
index 0000000000..4a7569ea90
--- /dev/null
+++ b/tests/auto_shift/auto_shift_repeat/test_auto_shift.cpp
@@ -0,0 +1,107 @@
+/* Copyright 2022 Isaac Elenbaas
+ *
+ * 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 "keyboard_report_util.hpp"
+#include "keycode.h"
+#include "test_common.hpp"
+#include "action_tapping.h"
+#include "test_fixture.hpp"
+#include "test_keymap_key.hpp"
+
+using testing::_;
+using testing::AnyNumber;
+using testing::InSequence;
+
+class AutoShiftRepeat : public TestFixture {};
+
+TEST_F(AutoShiftRepeat, tap_regular_key_cancelling_another_key_hold) {
+ TestDriver driver;
+ InSequence s;
+ auto repeat_key = KeymapKey(0, 1, 0, KC_P);
+ auto regular_key = KeymapKey(0, 2, 0, KC_A);
+
+ set_keymap({repeat_key, regular_key});
+
+ /* Press repeat key. */
+ EXPECT_NO_REPORT(driver);
+ repeat_key.press();
+ run_one_scan_loop();
+ testing::Mock::VerifyAndClearExpectations(&driver);
+
+ /* Press regular key. */
+ EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport())).Times(testing::AnyNumber());
+ EXPECT_REPORT(driver, (KC_P));
+ EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport())).Times(testing::AnyNumber());
+ regular_key.press();
+ run_one_scan_loop();
+ testing::Mock::VerifyAndClearExpectations(&driver);
+
+ /* Release regular key. */
+ EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport())).Times(testing::AnyNumber());
+ EXPECT_REPORT(driver, (KC_A));
+ EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport())).Times(testing::AnyNumber());
+ regular_key.release();
+ run_one_scan_loop();
+ testing::Mock::VerifyAndClearExpectations(&driver);
+
+ /* Release repeat key. */
+ EXPECT_NO_REPORT(driver);
+ repeat_key.release();
+ run_one_scan_loop();
+ testing::Mock::VerifyAndClearExpectations(&driver);
+}
+
+TEST_F(AutoShiftRepeat, tap_regular_key_while_another_key_is_held) {
+ TestDriver driver;
+ InSequence s;
+ auto repeat_key = KeymapKey(0, 1, 0, KC_P);
+ auto regular_key = KeymapKey(0, 2, 0, KC_A);
+
+ set_keymap({repeat_key, regular_key});
+
+ /* Press repeat key. */
+ EXPECT_NO_REPORT(driver);
+ repeat_key.press();
+ run_one_scan_loop();
+ testing::Mock::VerifyAndClearExpectations(&driver);
+
+ /* Idle for auto-repeat to kick in. */
+ EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_LSFT))).Times(AnyNumber());
+ EXPECT_REPORT(driver, (KC_LSFT, KC_P));
+ idle_for(AUTO_SHIFT_TIMEOUT);
+ run_one_scan_loop();
+ testing::Mock::VerifyAndClearExpectations(&driver);
+
+ /* Press regular key. */
+ EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_LSFT))).Times(AnyNumber());
+ EXPECT_NO_REPORT(driver);
+ regular_key.press();
+ run_one_scan_loop();
+ testing::Mock::VerifyAndClearExpectations(&driver);
+
+ /* Release regular key. */
+ EXPECT_REPORT(driver, (KC_P, KC_A));
+ EXPECT_REPORT(driver, (KC_P));
+ regular_key.release();
+ run_one_scan_loop();
+ testing::Mock::VerifyAndClearExpectations(&driver);
+
+ /* Release repeat key. */
+ EXPECT_EMPTY_REPORT(driver);
+ repeat_key.release();
+ run_one_scan_loop();
+ testing::Mock::VerifyAndClearExpectations(&driver);
+}
diff --git a/tests/auto_shift/config.h b/tests/auto_shift/config.h
index 4f343b4529..6d872dd57b 100644
--- a/tests/auto_shift/config.h
+++ b/tests/auto_shift/config.h
@@ -16,4 +16,4 @@
#pragma once
-#include "test_common.h" \ No newline at end of file
+#include "test_common.h"
diff --git a/tests/auto_shift/retro_shift/tap_hold_configurations/default_mod_tap/config.h b/tests/auto_shift/retro_shift/tap_hold_configurations/default_mod_tap/config.h
new file mode 100644
index 0000000000..0de9845d9d
--- /dev/null
+++ b/tests/auto_shift/retro_shift/tap_hold_configurations/default_mod_tap/config.h
@@ -0,0 +1,24 @@
+/* Copyright 2022 Isaac Elenbaas
+ *
+ * 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 "test_common.h"
+
+#define RETRO_SHIFT 2 * TAPPING_TERM
+// releases between AUTO_SHIFT_TIMEOUT and TAPPING_TERM are not tested
+#define AUTO_SHIFT_TIMEOUT TAPPING_TERM
+#define AUTO_SHIFT_MODIFIERS
diff --git a/tests/auto_shift/retro_shift/tap_hold_configurations/default_mod_tap/no_timeout/config.h b/tests/auto_shift/retro_shift/tap_hold_configurations/default_mod_tap/no_timeout/config.h
new file mode 100644
index 0000000000..dc9dc28cab
--- /dev/null
+++ b/tests/auto_shift/retro_shift/tap_hold_configurations/default_mod_tap/no_timeout/config.h
@@ -0,0 +1,21 @@
+/* Copyright 2021 Stefan Kerkmann
+ *
+ * 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 "test_common.h"
+
+#define RETRO_SHIFT
diff --git a/tests/auto_shift/retro_shift/tap_hold_configurations/default_mod_tap/no_timeout/test.mk b/tests/auto_shift/retro_shift/tap_hold_configurations/default_mod_tap/no_timeout/test.mk
new file mode 100644
index 0000000000..b687332005
--- /dev/null
+++ b/tests/auto_shift/retro_shift/tap_hold_configurations/default_mod_tap/no_timeout/test.mk
@@ -0,0 +1,20 @@
+# Copyright 2022 Isaac Elenbaas
+#
+# 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/>.
+
+# --------------------------------------------------------------------------------
+# Keep this file, even if it is empty, as a marker that this folder contains tests
+# --------------------------------------------------------------------------------
+
+AUTO_SHIFT_ENABLE = yes
diff --git a/tests/auto_shift/retro_shift/tap_hold_configurations/default_mod_tap/no_timeout/test_retro_shift.cpp b/tests/auto_shift/retro_shift/tap_hold_configurations/default_mod_tap/no_timeout/test_retro_shift.cpp
new file mode 100644
index 0000000000..6d7d06427c
--- /dev/null
+++ b/tests/auto_shift/retro_shift/tap_hold_configurations/default_mod_tap/no_timeout/test_retro_shift.cpp
@@ -0,0 +1,57 @@
+/* Copyright 2022 Isaac Elenbaas
+ *
+ * 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 "keyboard_report_util.hpp"
+#include "keycode.h"
+#include "test_common.hpp"
+#include "action_tapping.h"
+#include "test_fixture.hpp"
+#include "test_keymap_key.hpp"
+
+bool get_auto_shifted_key(uint16_t keycode, keyrecord_t *record) {
+ return true;
+}
+
+using testing::_;
+using testing::AnyNumber;
+using testing::AnyOf;
+using testing::InSequence;
+
+class RetroShiftDefaultTapHold : public TestFixture {};
+
+TEST_F(RetroShiftDefaultTapHold, hold_mod_tap_key_for_long) {
+ TestDriver driver;
+ InSequence s;
+ auto mod_tap_hold_key = KeymapKey(0, 0, 0, CTL_T(KC_A));
+
+ set_keymap({mod_tap_hold_key});
+
+ /* Press mod-tap-hold key. */
+ EXPECT_NO_REPORT(driver);
+ mod_tap_hold_key.press();
+ run_one_scan_loop();
+ idle_for(4 * TAPPING_TERM);
+ testing::Mock::VerifyAndClearExpectations(&driver);
+
+ /* Release mod-tap-hold key. */
+ EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_LSFT))).Times(AnyNumber());
+ EXPECT_REPORT(driver, (KC_LSFT, KC_A));
+ EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_LSFT))).Times(AnyNumber());
+ EXPECT_EMPTY_REPORT(driver);
+ mod_tap_hold_key.release();
+ run_one_scan_loop();
+ testing::Mock::VerifyAndClearExpectations(&driver);
+}
diff --git a/tests/auto_shift/retro_shift/tap_hold_configurations/default_mod_tap/test.mk b/tests/auto_shift/retro_shift/tap_hold_configurations/default_mod_tap/test.mk
new file mode 100644
index 0000000000..b687332005
--- /dev/null
+++ b/tests/auto_shift/retro_shift/tap_hold_configurations/default_mod_tap/test.mk
@@ -0,0 +1,20 @@
+# Copyright 2022 Isaac Elenbaas
+#
+# 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/>.
+
+# --------------------------------------------------------------------------------
+# Keep this file, even if it is empty, as a marker that this folder contains tests
+# --------------------------------------------------------------------------------
+
+AUTO_SHIFT_ENABLE = yes
diff --git a/tests/auto_shift/retro_shift/tap_hold_configurations/default_mod_tap/test_retro_shift.cpp b/tests/auto_shift/retro_shift/tap_hold_configurations/default_mod_tap/test_retro_shift.cpp
new file mode 100644
index 0000000000..f85a511632
--- /dev/null
+++ b/tests/auto_shift/retro_shift/tap_hold_configurations/default_mod_tap/test_retro_shift.cpp
@@ -0,0 +1,485 @@
+/* Copyright 2022 Isaac Elenbaas
+ *
+ * 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 "keyboard_report_util.hpp"
+#include "keycode.h"
+#include "test_common.hpp"
+#include "action_tapping.h"
+#include "test_fixture.hpp"
+#include "test_keymap_key.hpp"
+
+bool get_auto_shifted_key(uint16_t keycode, keyrecord_t *record) {
+ return true;
+}
+
+using testing::_;
+using testing::AnyNumber;
+using testing::AnyOf;
+using testing::InSequence;
+
+class RetroShiftDefaultTapHold : public TestFixture {};
+
+TEST_F(RetroShiftDefaultTapHold, tap_mod_tap_key) {
+ TestDriver driver;
+ InSequence s;
+ auto mod_tap_hold_key = KeymapKey(0, 0, 0, CTL_T(KC_A));
+
+ set_keymap({mod_tap_hold_key});
+
+ /* Press mod-tap-hold key. */
+ EXPECT_NO_REPORT(driver);
+ mod_tap_hold_key.press();
+ run_one_scan_loop();
+ testing::Mock::VerifyAndClearExpectations(&driver);
+
+ /* Release mod-tap-hold key. */
+ EXPECT_REPORT(driver, (KC_A));
+ EXPECT_EMPTY_REPORT(driver);
+ mod_tap_hold_key.release();
+ run_one_scan_loop();
+ testing::Mock::VerifyAndClearExpectations(&driver);
+}
+
+TEST_F(RetroShiftDefaultTapHold, hold_mod_tap_key_under_retro_shift) {
+ TestDriver driver;
+ InSequence s;
+ auto mod_tap_hold_key = KeymapKey(0, 0, 0, CTL_T(KC_A));
+
+ set_keymap({mod_tap_hold_key});
+
+ /* Press mod-tap-hold key. */
+ EXPECT_NO_REPORT(driver);
+ mod_tap_hold_key.press();
+ run_one_scan_loop();
+ idle_for(AUTO_SHIFT_TIMEOUT);
+ testing::Mock::VerifyAndClearExpectations(&driver);
+
+ /* Release mod-tap-hold key. */
+ EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_LSFT))).Times(AnyNumber());
+ EXPECT_REPORT(driver, (KC_LSFT, KC_A));
+ EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_LSFT))).Times(AnyNumber());
+ EXPECT_EMPTY_REPORT(driver);
+ mod_tap_hold_key.release();
+ run_one_scan_loop();
+ testing::Mock::VerifyAndClearExpectations(&driver);
+}
+
+TEST_F(RetroShiftDefaultTapHold, hold_mod_tap_key_over_retro_shift) {
+ TestDriver driver;
+ InSequence s;
+ auto mod_tap_hold_key = KeymapKey(0, 0, 0, CTL_T(KC_A));
+
+ set_keymap({mod_tap_hold_key});
+
+ /* Press mod-tap-hold key. */
+ EXPECT_REPORT(driver, (KC_LCTL));
+ mod_tap_hold_key.press();
+ run_one_scan_loop();
+ idle_for(RETRO_SHIFT);
+ testing::Mock::VerifyAndClearExpectations(&driver);
+
+ /* Release mod-tap-hold key. */
+ EXPECT_EMPTY_REPORT(driver);
+ mod_tap_hold_key.release();
+ run_one_scan_loop();
+ testing::Mock::VerifyAndClearExpectations(&driver);
+}
+
+TEST_F(RetroShiftDefaultTapHold, tap_regular_key_while_mod_tap_key_is_held_under_tapping_term) {
+ TestDriver driver;
+ InSequence s;
+ auto mod_tap_hold_key = KeymapKey(0, 0, 0, CTL_T(KC_P));
+ auto regular_key = KeymapKey(0, 1, 0, KC_A);
+
+ set_keymap({mod_tap_hold_key, regular_key});
+
+ /* Press mod-tap-hold key. */
+ EXPECT_NO_REPORT(driver);
+ mod_tap_hold_key.press();
+ run_one_scan_loop();
+ testing::Mock::VerifyAndClearExpectations(&driver);
+
+ /* Press regular key. */
+ EXPECT_NO_REPORT(driver);
+ regular_key.press();
+ run_one_scan_loop();
+ testing::Mock::VerifyAndClearExpectations(&driver);
+
+ /* Release regular key. */
+ EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_LCTL))).Times(AnyNumber());
+ EXPECT_REPORT(driver, (KC_LCTL, KC_A));
+ EXPECT_REPORT(driver, (KC_LCTL));
+ regular_key.release();
+ run_one_scan_loop();
+ testing::Mock::VerifyAndClearExpectations(&driver);
+
+ /* Release mod-tap-hold key. */
+ EXPECT_EMPTY_REPORT(driver);
+ mod_tap_hold_key.release();
+ run_one_scan_loop();
+ testing::Mock::VerifyAndClearExpectations(&driver);
+}
+
+TEST_F(RetroShiftDefaultTapHold, tap_mod_tap_key_while_mod_tap_key_is_held_under_tapping_term) {
+ TestDriver driver;
+ InSequence s;
+ auto mod_tap_hold_key = KeymapKey(0, 0, 0, CTL_T(KC_P));
+ auto mod_tap_regular_key = KeymapKey(0, 1, 0, ALT_T(KC_A));
+
+ set_keymap({mod_tap_hold_key, mod_tap_regular_key});
+
+ /* Press mod-tap-hold key. */
+ EXPECT_NO_REPORT(driver);
+ mod_tap_hold_key.press();
+ run_one_scan_loop();
+ testing::Mock::VerifyAndClearExpectations(&driver);
+
+ /* Press mod-tap-regular key. */
+ EXPECT_NO_REPORT(driver);
+ mod_tap_regular_key.press();
+ run_one_scan_loop();
+ testing::Mock::VerifyAndClearExpectations(&driver);
+
+ /* Release mod-tap-regular key. */
+ EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_LCTL))).Times(AnyNumber());
+ EXPECT_REPORT(driver, (KC_LCTL, KC_A));
+ EXPECT_REPORT(driver, (KC_LCTL));
+ mod_tap_regular_key.release();
+ run_one_scan_loop();
+ testing::Mock::VerifyAndClearExpectations(&driver);
+
+ /* Release mod-tap-hold key. */
+ EXPECT_EMPTY_REPORT(driver);
+ mod_tap_hold_key.release();
+ run_one_scan_loop();
+ testing::Mock::VerifyAndClearExpectations(&driver);
+}
+
+TEST_F(RetroShiftDefaultTapHold, tap_regular_key_while_mod_tap_key_is_held_over_tapping_term) {
+ TestDriver driver;
+ InSequence s;
+ auto mod_tap_hold_key = KeymapKey(0, 0, 0, CTL_T(KC_P));
+ auto regular_key = KeymapKey(0, 1, 0, KC_A);
+
+ set_keymap({mod_tap_hold_key, regular_key});
+
+ /* Press mod-tap-hold key. */
+ EXPECT_NO_REPORT(driver);
+ mod_tap_hold_key.press();
+ run_one_scan_loop();
+ testing::Mock::VerifyAndClearExpectations(&driver);
+
+ /* Press regular key. */
+ EXPECT_NO_REPORT(driver);
+ regular_key.press();
+ run_one_scan_loop();
+ testing::Mock::VerifyAndClearExpectations(&driver);
+
+ /* Release regular key. */
+ EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_LCTL))).Times(AnyNumber());
+ EXPECT_REPORT(driver, (KC_LCTL, KC_A));
+ EXPECT_REPORT(driver, (KC_LCTL));
+ regular_key.release();
+ run_one_scan_loop();
+ idle_for(TAPPING_TERM);
+ testing::Mock::VerifyAndClearExpectations(&driver);
+
+ /* Release mod-tap-hold key. */
+ EXPECT_EMPTY_REPORT(driver);
+ mod_tap_hold_key.release();
+ run_one_scan_loop();
+ testing::Mock::VerifyAndClearExpectations(&driver);
+}
+
+TEST_F(RetroShiftDefaultTapHold, tap_mod_tap_key_while_mod_tap_key_is_held_over_tapping_term) {
+ TestDriver driver;
+ InSequence s;
+ auto mod_tap_hold_key = KeymapKey(0, 0, 0, CTL_T(KC_P));
+ auto mod_tap_regular_key = KeymapKey(0, 1, 0, ALT_T(KC_A));
+
+ set_keymap({mod_tap_hold_key, mod_tap_regular_key});
+
+ /* Press mod-tap-hold key. */
+ EXPECT_NO_REPORT(driver);
+ mod_tap_hold_key.press();
+ run_one_scan_loop();
+ testing::Mock::VerifyAndClearExpectations(&driver);
+
+ /* Press mod-tap-regular key. */
+ EXPECT_NO_REPORT(driver);
+ mod_tap_regular_key.press();
+ run_one_scan_loop();
+ testing::Mock::VerifyAndClearExpectations(&driver);
+
+ /* Release mod-tap-regular key. */
+ EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_LCTL))).Times(AnyNumber());
+ EXPECT_REPORT(driver, (KC_LCTL, KC_A));
+ EXPECT_REPORT(driver, (KC_LCTL));
+ mod_tap_regular_key.release();
+ run_one_scan_loop();
+ idle_for(TAPPING_TERM);
+ testing::Mock::VerifyAndClearExpectations(&driver);
+
+ /* Release mod-tap-hold key. */
+ EXPECT_EMPTY_REPORT(driver);
+ mod_tap_hold_key.release();
+ run_one_scan_loop();
+ testing::Mock::VerifyAndClearExpectations(&driver);
+}
+
+TEST_F(RetroShiftDefaultTapHold, hold_regular_key_while_mod_tap_key_is_held_over_tapping_term) {
+ TestDriver driver;
+ InSequence s;
+ auto mod_tap_hold_key = KeymapKey(0, 0, 0, CTL_T(KC_P));
+ auto regular_key = KeymapKey(0, 1, 0, KC_A);
+
+ set_keymap({mod_tap_hold_key, regular_key});
+
+ /* Press mod-tap-hold key. */
+ EXPECT_NO_REPORT(driver);
+ mod_tap_hold_key.press();
+ run_one_scan_loop();
+ testing::Mock::VerifyAndClearExpectations(&driver);
+
+ /* Press regular key. */
+ EXPECT_NO_REPORT(driver);
+ regular_key.press();
+ run_one_scan_loop();
+ idle_for(AUTO_SHIFT_TIMEOUT);
+ testing::Mock::VerifyAndClearExpectations(&driver);
+
+ /* Release regular key. */
+ // clang-format off
+ EXPECT_CALL(driver, send_keyboard_mock(AnyOf(
+ KeyboardReport(KC_LCTL, KC_LSFT),
+ KeyboardReport(KC_LSFT),
+ KeyboardReport(KC_LCTL))))
+ .Times(AnyNumber());
+ // clang-format on
+ EXPECT_REPORT(driver, (KC_LCTL, KC_LSFT, KC_A));
+ // clang-format off
+ EXPECT_CALL(driver, send_keyboard_mock(AnyOf(
+ KeyboardReport(KC_LCTL, KC_LSFT),
+ KeyboardReport(KC_LSFT))))
+ .Times(AnyNumber());
+ // clang-format on
+ EXPECT_REPORT(driver, (KC_LCTL));
+ regular_key.release();
+ run_one_scan_loop();
+ testing::Mock::VerifyAndClearExpectations(&driver);
+
+ /* Release mod-tap-hold key. */
+ EXPECT_EMPTY_REPORT(driver);
+ mod_tap_hold_key.release();
+ run_one_scan_loop();
+ testing::Mock::VerifyAndClearExpectations(&driver);
+}
+
+TEST_F(RetroShiftDefaultTapHold, hold_mod_tap_key_while_mod_tap_key_is_held_over_tapping_term) {
+ TestDriver driver;
+ InSequence s;
+ auto mod_tap_hold_key = KeymapKey(0, 0, 0, CTL_T(KC_P));
+ auto mod_tap_regular_key = KeymapKey(0, 1, 0, ALT_T(KC_A));
+
+ set_keymap({mod_tap_hold_key, mod_tap_regular_key});
+
+ /* Press mod-tap-hold key. */
+ EXPECT_NO_REPORT(driver);
+ mod_tap_hold_key.press();
+ run_one_scan_loop();
+ testing::Mock::VerifyAndClearExpectations(&driver);
+
+ /* Press mod-tap-regular key. */
+ EXPECT_NO_REPORT(driver);
+ mod_tap_regular_key.press();
+ run_one_scan_loop();
+ idle_for(AUTO_SHIFT_TIMEOUT);
+ testing::Mock::VerifyAndClearExpectations(&driver);
+
+ /* Release mod-tap-regular key. */
+ // clang-format off
+ EXPECT_CALL(driver, send_keyboard_mock(AnyOf(
+ KeyboardReport(KC_LCTL, KC_LSFT),
+ KeyboardReport(KC_LSFT),
+ KeyboardReport(KC_LCTL))))
+ .Times(AnyNumber());
+ // clang-format on
+ EXPECT_REPORT(driver, (KC_LCTL, KC_LSFT, KC_A));
+ // clang-format off
+ EXPECT_CALL(driver, send_keyboard_mock(AnyOf(
+ KeyboardReport(KC_LCTL, KC_LSFT),
+ KeyboardReport(KC_LSFT))))
+ .Times(AnyNumber());
+ // clang-format on
+ EXPECT_REPORT(driver, (KC_LCTL));
+ mod_tap_regular_key.release();
+ run_one_scan_loop();
+ idle_for(TAPPING_TERM);
+ testing::Mock::VerifyAndClearExpectations(&driver);
+
+ /* Release mod-tap-hold key. */
+ EXPECT_EMPTY_REPORT(driver);
+ mod_tap_hold_key.release();
+ run_one_scan_loop();
+ testing::Mock::VerifyAndClearExpectations(&driver);
+}
+
+TEST_F(RetroShiftDefaultTapHold, roll_tap_regular_key_while_mod_tap_key_is_held_under_tapping_term) {
+ TestDriver driver;
+ InSequence s;
+ auto mod_tap_hold_key = KeymapKey(0, 0, 0, CTL_T(KC_P));
+ auto regular_key = KeymapKey(0, 1, 0, KC_A);
+
+ set_keymap({mod_tap_hold_key, regular_key});
+
+ /* Press mod-tap-hold key. */
+ EXPECT_NO_REPORT(driver);
+ mod_tap_hold_key.press();
+ run_one_scan_loop();
+ testing::Mock::VerifyAndClearExpectations(&driver);
+
+ /* Press regular key. */
+ EXPECT_NO_REPORT(driver);
+ regular_key.press();
+ run_one_scan_loop();
+ testing::Mock::VerifyAndClearExpectations(&driver);
+
+ /* Release mod-tap-hold key. */
+ EXPECT_REPORT(driver, (KC_P));
+ EXPECT_EMPTY_REPORT(driver);
+ mod_tap_hold_key.release();
+ run_one_scan_loop();
+ testing::Mock::VerifyAndClearExpectations(&driver);
+
+ /* Release regular key. */
+ EXPECT_REPORT(driver, (KC_A));
+ EXPECT_EMPTY_REPORT(driver);
+ regular_key.release();
+ run_one_scan_loop();
+ testing::Mock::VerifyAndClearExpectations(&driver);
+}
+
+TEST_F(RetroShiftDefaultTapHold, roll_tap_mod_tap_key_while_mod_tap_key_is_held_under_tapping_term) {
+ TestDriver driver;
+ InSequence s;
+ auto mod_tap_hold_key = KeymapKey(0, 0, 0, CTL_T(KC_P));
+ auto mod_tap_regular_key = KeymapKey(0, 1, 0, ALT_T(KC_A));
+
+ set_keymap({mod_tap_hold_key, mod_tap_regular_key});
+
+ /* Press mod-tap-hold key. */
+ EXPECT_NO_REPORT(driver);
+ mod_tap_hold_key.press();
+ run_one_scan_loop();
+ testing::Mock::VerifyAndClearExpectations(&driver);
+
+ /* Press mod-tap-regular key. */
+ EXPECT_NO_REPORT(driver);
+ mod_tap_regular_key.press();
+ run_one_scan_loop();
+ testing::Mock::VerifyAndClearExpectations(&driver);
+
+ /* Release mod-tap-hold key. */
+ EXPECT_REPORT(driver, (KC_P));
+ EXPECT_EMPTY_REPORT(driver);
+ mod_tap_hold_key.release();
+ run_one_scan_loop();
+ testing::Mock::VerifyAndClearExpectations(&driver);
+
+ /* Release mod-tap-regular key. */
+ EXPECT_REPORT(driver, (KC_A));
+ EXPECT_EMPTY_REPORT(driver);
+ mod_tap_regular_key.release();
+ run_one_scan_loop();
+ testing::Mock::VerifyAndClearExpectations(&driver);
+}
+
+TEST_F(RetroShiftDefaultTapHold, roll_hold_regular_key_while_mod_tap_key_is_held_under_tapping_term) {
+ TestDriver driver;
+ InSequence s;
+ auto mod_tap_hold_key = KeymapKey(0, 0, 0, CTL_T(KC_P));
+ auto regular_key = KeymapKey(0, 1, 0, KC_A);
+
+ set_keymap({mod_tap_hold_key, regular_key});
+
+ /* Press mod-tap-hold key. */
+ EXPECT_NO_REPORT(driver);
+ mod_tap_hold_key.press();
+ run_one_scan_loop();
+ testing::Mock::VerifyAndClearExpectations(&driver);
+
+ /* Press regular key. */
+ EXPECT_NO_REPORT(driver);
+ regular_key.press();
+ run_one_scan_loop();
+ testing::Mock::VerifyAndClearExpectations(&driver);
+
+ /* Release mod-tap-hold key. */
+ EXPECT_REPORT(driver, (KC_P));
+ EXPECT_EMPTY_REPORT(driver);
+ EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_LSFT))).Times(AnyNumber());
+ EXPECT_REPORT(driver, (KC_LSFT, KC_A));
+ EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_LSFT))).Times(AnyNumber());
+ EXPECT_EMPTY_REPORT(driver);
+ mod_tap_hold_key.release();
+ run_one_scan_loop();
+ idle_for(AUTO_SHIFT_TIMEOUT);
+ testing::Mock::VerifyAndClearExpectations(&driver);
+
+ /* Release regular key. */
+ EXPECT_NO_REPORT(driver);
+ regular_key.release();
+ run_one_scan_loop();
+ testing::Mock::VerifyAndClearExpectations(&driver);
+}
+
+TEST_F(RetroShiftDefaultTapHold, roll_hold_mod_tap_key_while_mod_tap_key_is_held_under_tapping_term) {
+ TestDriver driver;
+ InSequence s;
+ auto mod_tap_hold_key = KeymapKey(0, 0, 0, CTL_T(KC_P));
+ auto mod_tap_regular_key = KeymapKey(0, 1, 0, ALT_T(KC_A));
+
+ set_keymap({mod_tap_hold_key, mod_tap_regular_key});
+
+ /* Press mod-tap-hold key. */
+ EXPECT_NO_REPORT(driver);
+ mod_tap_hold_key.press();
+ run_one_scan_loop();
+ testing::Mock::VerifyAndClearExpectations(&driver);
+
+ /* Press mod-tap-regular key. */
+ EXPECT_NO_REPORT(driver);
+ mod_tap_regular_key.press();
+ run_one_scan_loop();
+ testing::Mock::VerifyAndClearExpectations(&driver);
+
+ /* Release mod-tap-hold key. */
+ EXPECT_REPORT(driver, (KC_P));
+ EXPECT_EMPTY_REPORT(driver);
+ mod_tap_hold_key.release();
+ run_one_scan_loop();
+ testing::Mock::VerifyAndClearExpectations(&driver);
+
+ /* Release mod-tap-regular key. */
+ EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_LSFT))).Times(AnyNumber());
+ EXPECT_REPORT(driver, (KC_LSFT, KC_A));
+ EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_LSFT))).Times(AnyNumber());
+ EXPECT_EMPTY_REPORT(driver);
+ idle_for(AUTO_SHIFT_TIMEOUT);
+ mod_tap_regular_key.release();
+ run_one_scan_loop();
+ testing::Mock::VerifyAndClearExpectations(&driver);
+}
diff --git a/tests/auto_shift/retro_shift/tap_hold_configurations/hold_on_other_key_press/config.h b/tests/auto_shift/retro_shift/tap_hold_configurations/hold_on_other_key_press/config.h
new file mode 100644
index 0000000000..396683963d
--- /dev/null
+++ b/tests/auto_shift/retro_shift/tap_hold_configurations/hold_on_other_key_press/config.h
@@ -0,0 +1,26 @@
+/* Copyright 2022 Isaac Elenbaas
+ *
+ * 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 "test_common.h"
+
+#define HOLD_ON_OTHER_KEY_PRESS
+
+#define RETRO_SHIFT 2 * TAPPING_TERM
+// releases between AUTO_SHIFT_TIMEOUT and TAPPING_TERM are not tested
+#define AUTO_SHIFT_TIMEOUT TAPPING_TERM
+#define AUTO_SHIFT_MODIFIERS
diff --git a/tests/auto_shift/retro_shift/tap_hold_configurations/hold_on_other_key_press/test.mk b/tests/auto_shift/retro_shift/tap_hold_configurations/hold_on_other_key_press/test.mk
new file mode 100644
index 0000000000..b687332005
--- /dev/null
+++ b/tests/auto_shift/retro_shift/tap_hold_configurations/hold_on_other_key_press/test.mk
@@ -0,0 +1,20 @@
+# Copyright 2022 Isaac Elenbaas
+#
+# 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/>.
+
+# --------------------------------------------------------------------------------
+# Keep this file, even if it is empty, as a marker that this folder contains tests
+# --------------------------------------------------------------------------------
+
+AUTO_SHIFT_ENABLE = yes
diff --git a/tests/auto_shift/retro_shift/tap_hold_configurations/hold_on_other_key_press/test_retro_shift.cpp b/tests/auto_shift/retro_shift/tap_hold_configurations/hold_on_other_key_press/test_retro_shift.cpp
new file mode 100644
index 0000000000..52fc082ea3
--- /dev/null
+++ b/tests/auto_shift/retro_shift/tap_hold_configurations/hold_on_other_key_press/test_retro_shift.cpp
@@ -0,0 +1,442 @@
+/* Copyright 2022 Isaac Elenbaas
+ *
+ * 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 "keyboard_report_util.hpp"
+#include "keycode.h"
+#include "test_common.hpp"
+#include "action_tapping.h"
+#include "test_fixture.hpp"
+#include "test_keymap_key.hpp"
+
+bool get_auto_shifted_key(uint16_t keycode, keyrecord_t *record) {
+ return true;
+}
+
+using testing::_;
+using testing::AnyNumber;
+using testing::AnyOf;
+using testing::InSequence;
+
+class RetroShiftHoldOnOtherKeyPress : public TestFixture {};
+
+TEST_F(RetroShiftHoldOnOtherKeyPress, tap_regular_key_while_mod_tap_key_is_held_under_tapping_term) {
+ TestDriver driver;
+ InSequence s;
+ auto mod_tap_hold_key = KeymapKey(0, 0, 0, CTL_T(KC_P));
+ auto regular_key = KeymapKey(0, 1, 0, KC_A);
+
+ set_keymap({mod_tap_hold_key, regular_key});
+
+ /* Press mod-tap-hold key. */
+ EXPECT_NO_REPORT(driver);
+ mod_tap_hold_key.press();
+ run_one_scan_loop();
+ testing::Mock::VerifyAndClearExpectations(&driver);
+
+ /* Press regular key. */
+ EXPECT_NO_REPORT(driver);
+ regular_key.press();
+ run_one_scan_loop();
+ testing::Mock::VerifyAndClearExpectations(&driver);
+
+ /* Release regular key. */
+ EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_LCTL))).Times(AnyNumber());
+ EXPECT_REPORT(driver, (KC_LCTL, KC_A));
+ EXPECT_REPORT(driver, (KC_LCTL));
+ regular_key.release();
+ run_one_scan_loop();
+ testing::Mock::VerifyAndClearExpectations(&driver);
+
+ /* Release mod-tap-hold key. */
+ EXPECT_EMPTY_REPORT(driver);
+ mod_tap_hold_key.release();
+ run_one_scan_loop();
+ testing::Mock::VerifyAndClearExpectations(&driver);
+}
+
+TEST_F(RetroShiftHoldOnOtherKeyPress, tap_mod_tap_key_while_mod_tap_key_is_held_under_tapping_term) {
+ TestDriver driver;
+ InSequence s;
+ auto mod_tap_hold_key = KeymapKey(0, 0, 0, CTL_T(KC_P));
+ auto mod_tap_regular_key = KeymapKey(0, 1, 0, ALT_T(KC_A));
+
+ set_keymap({mod_tap_hold_key, mod_tap_regular_key});
+
+ /* Press mod-tap-hold key. */
+ EXPECT_NO_REPORT(driver);
+ mod_tap_hold_key.press();
+ run_one_scan_loop();
+ testing::Mock::VerifyAndClearExpectations(&driver);
+
+ /* Press mod-tap-regular key. */
+ EXPECT_NO_REPORT(driver);
+ mod_tap_regular_key.press();
+ run_one_scan_loop();
+ testing::Mock::VerifyAndClearExpectations(&driver);
+
+ /* Release mod-tap-regular key. */
+ EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_LCTL))).Times(AnyNumber());
+ EXPECT_REPORT(driver, (KC_LCTL, KC_A));
+ EXPECT_REPORT(driver, (KC_LCTL));
+ mod_tap_regular_key.release();
+ run_one_scan_loop();
+ testing::Mock::VerifyAndClearExpectations(&driver);
+
+ /* Release mod-tap-hold key. */
+ EXPECT_EMPTY_REPORT(driver);
+ mod_tap_hold_key.release();
+ run_one_scan_loop();
+ testing::Mock::VerifyAndClearExpectations(&driver);
+}
+
+TEST_F(RetroShiftHoldOnOtherKeyPress, tap_regular_key_while_mod_tap_key_is_held_over_tapping_term) {
+ TestDriver driver;
+ InSequence s;
+ auto mod_tap_hold_key = KeymapKey(0, 0, 0, CTL_T(KC_P));
+ auto regular_key = KeymapKey(0, 1, 0, KC_A);
+
+ set_keymap({mod_tap_hold_key, regular_key});
+
+ /* Press mod-tap-hold key. */
+ EXPECT_NO_REPORT(driver);
+ mod_tap_hold_key.press();
+ run_one_scan_loop();
+ testing::Mock::VerifyAndClearExpectations(&driver);
+
+ /* Press regular key. */
+ EXPECT_NO_REPORT(driver);
+ regular_key.press();
+ run_one_scan_loop();
+ testing::Mock::VerifyAndClearExpectations(&driver);
+
+ /* Release regular key. */
+ EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_LCTL))).Times(AnyNumber());
+ EXPECT_REPORT(driver, (KC_LCTL, KC_A));
+ EXPECT_REPORT(driver, (KC_LCTL));
+ regular_key.release();
+ run_one_scan_loop();
+ idle_for(TAPPING_TERM);
+ testing::Mock::VerifyAndClearExpectations(&driver);
+
+ /* Release mod-tap-hold key. */
+ EXPECT_EMPTY_REPORT(driver);
+ mod_tap_hold_key.release();
+ run_one_scan_loop();
+ testing::Mock::VerifyAndClearExpectations(&driver);
+}
+
+TEST_F(RetroShiftHoldOnOtherKeyPress, tap_mod_tap_key_while_mod_tap_key_is_held_over_tapping_term) {
+ TestDriver driver;
+ InSequence s;
+ auto mod_tap_hold_key = KeymapKey(0, 0, 0, CTL_T(KC_P));
+ auto mod_tap_regular_key = KeymapKey(0, 1, 0, ALT_T(KC_A));
+
+ set_keymap({mod_tap_hold_key, mod_tap_regular_key});
+
+ /* Press mod-tap-hold key. */
+ EXPECT_NO_REPORT(driver);
+ mod_tap_hold_key.press();
+ run_one_scan_loop();
+ testing::Mock::VerifyAndClearExpectations(&driver);
+
+ /* Press mod-tap-regular key. */
+ EXPECT_NO_REPORT(driver);
+ mod_tap_regular_key.press();
+ run_one_scan_loop();
+ testing::Mock::VerifyAndClearExpectations(&driver);
+
+ /* Release mod-tap-regular key. */
+ EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_LCTL))).Times(AnyNumber());
+ EXPECT_REPORT(driver, (KC_LCTL, KC_A));
+ EXPECT_REPORT(driver, (KC_LCTL));
+ mod_tap_regular_key.release();
+ run_one_scan_loop();
+ idle_for(TAPPING_TERM);
+ testing::Mock::VerifyAndClearExpectations(&driver);
+
+ /* Release mod-tap-hold key. */
+ EXPECT_EMPTY_REPORT(driver);
+ mod_tap_hold_key.release();
+ run_one_scan_loop();
+ testing::Mock::VerifyAndClearExpectations(&driver);
+}
+
+TEST_F(RetroShiftHoldOnOtherKeyPress, hold_regular_key_while_mod_tap_key_is_held_over_tapping_term) {
+ TestDriver driver;
+ InSequence s;
+ auto mod_tap_hold_key = KeymapKey(0, 0, 0, CTL_T(KC_P));
+ auto regular_key = KeymapKey(0, 1, 0, KC_A);
+
+ set_keymap({mod_tap_hold_key, regular_key});
+
+ /* Press mod-tap-hold key. */
+ EXPECT_NO_REPORT(driver);
+ mod_tap_hold_key.press();
+ run_one_scan_loop();
+ testing::Mock::VerifyAndClearExpectations(&driver);
+
+ /* Press regular key. */
+ EXPECT_NO_REPORT(driver);
+ regular_key.press();
+ run_one_scan_loop();
+ idle_for(AUTO_SHIFT_TIMEOUT);
+ testing::Mock::VerifyAndClearExpectations(&driver);
+
+ /* Release regular key. */
+ // clang-format off
+ EXPECT_CALL(driver, send_keyboard_mock(AnyOf(
+ KeyboardReport(KC_LCTL, KC_LSFT),
+ KeyboardReport(KC_LSFT),
+ KeyboardReport(KC_LCTL))))
+ .Times(AnyNumber());
+ // clang-format on
+ EXPECT_REPORT(driver, (KC_LCTL, KC_LSFT, KC_A));
+ // clang-format off
+ EXPECT_CALL(driver, send_keyboard_mock(AnyOf(
+ KeyboardReport(KC_LCTL, KC_LSFT),
+ KeyboardReport(KC_LSFT))))
+ .Times(AnyNumber());
+ // clang-format on
+ EXPECT_REPORT(driver, (KC_LCTL));
+ regular_key.release();
+ run_one_scan_loop();
+ testing::Mock::VerifyAndClearExpectations(&driver);
+
+ /* Release mod-tap-hold key. */
+ EXPECT_EMPTY_REPORT(driver);
+ mod_tap_hold_key.release();
+ run_one_scan_loop();
+ testing::Mock::VerifyAndClearExpectations(&driver);
+}
+
+TEST_F(RetroShiftHoldOnOtherKeyPress, hold_mod_tap_key_while_mod_tap_key_is_held_over_tapping_term) {
+ TestDriver driver;
+ InSequence s;
+ auto mod_tap_hold_key = KeymapKey(0, 0, 0, CTL_T(KC_P));
+ auto mod_tap_regular_key = KeymapKey(0, 1, 0, ALT_T(KC_A));
+
+ set_keymap({mod_tap_hold_key, mod_tap_regular_key});
+
+ /* Press mod-tap-hold key. */
+ EXPECT_NO_REPORT(driver);
+ mod_tap_hold_key.press();
+ run_one_scan_loop();
+ testing::Mock::VerifyAndClearExpectations(&driver);
+
+ /* Press mod-tap-regular key. */
+ EXPECT_NO_REPORT(driver);
+ mod_tap_regular_key.press();
+ run_one_scan_loop();
+ idle_for(AUTO_SHIFT_TIMEOUT);
+ testing::Mock::VerifyAndClearExpectations(&driver);
+
+ /* Release mod-tap-regular key. */
+ // clang-format off
+ EXPECT_CALL(driver, send_keyboard_mock(AnyOf(
+ KeyboardReport(KC_LCTL, KC_LSFT),
+ KeyboardReport(KC_LSFT),
+ KeyboardReport(KC_LCTL))))
+ .Times(AnyNumber());
+ // clang-format on
+ EXPECT_REPORT(driver, (KC_LCTL, KC_LSFT, KC_A));
+ // clang-format off
+ EXPECT_CALL(driver, send_keyboard_mock(AnyOf(
+ KeyboardReport(KC_LCTL, KC_LSFT),
+ KeyboardReport(KC_LSFT))))
+ .Times(AnyNumber());
+ // clang-format on
+ EXPECT_REPORT(driver, (KC_LCTL));
+ mod_tap_regular_key.release();
+ run_one_scan_loop();
+ idle_for(TAPPING_TERM);
+ testing::Mock::VerifyAndClearExpectations(&driver);
+
+ /* Release mod-tap-hold key. */
+ EXPECT_EMPTY_REPORT(driver);
+ mod_tap_hold_key.release();
+ run_one_scan_loop();
+ testing::Mock::VerifyAndClearExpectations(&driver);
+}
+
+TEST_F(RetroShiftHoldOnOtherKeyPress, roll_tap_regular_key_while_mod_tap_key_is_held_under_tapping_term) {
+ TestDriver driver;
+ InSequence s;
+ auto mod_tap_hold_key = KeymapKey(0, 0, 0, CTL_T(KC_P));
+ auto regular_key = KeymapKey(0, 1, 0, KC_A);
+
+ set_keymap({mod_tap_hold_key, regular_key});
+
+ /* Press mod-tap-hold key. */
+ EXPECT_NO_REPORT(driver);
+ mod_tap_hold_key.press();
+ run_one_scan_loop();
+ testing::Mock::VerifyAndClearExpectations(&driver);
+
+ /* Press regular key. */
+ EXPECT_NO_REPORT(driver);
+ regular_key.press();
+ run_one_scan_loop();
+ testing::Mock::VerifyAndClearExpectations(&driver);
+
+ /* Release mod-tap-hold key. */
+ EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_LCTL))).Times(AnyNumber());
+ mod_tap_hold_key.release();
+ run_one_scan_loop();
+ testing::Mock::VerifyAndClearExpectations(&driver);
+
+ /* Release regular key. */
+ EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_LCTL))).Times(AnyNumber());
+ EXPECT_REPORT(driver, (KC_LCTL, KC_A));
+ EXPECT_REPORT(driver, (KC_LCTL));
+ EXPECT_EMPTY_REPORT(driver);
+ regular_key.release();
+ run_one_scan_loop();
+ testing::Mock::VerifyAndClearExpectations(&driver);
+}
+
+TEST_F(RetroShiftHoldOnOtherKeyPress, roll_tap_mod_tap_key_while_mod_tap_key_is_held_under_tapping_term) {
+ TestDriver driver;
+ InSequence s;
+ auto mod_tap_hold_key = KeymapKey(0, 0, 0, CTL_T(KC_P));
+ auto mod_tap_regular_key = KeymapKey(0, 1, 0, ALT_T(KC_A));
+
+ set_keymap({mod_tap_hold_key, mod_tap_regular_key});
+
+ /* Press mod-tap-hold key. */
+ EXPECT_NO_REPORT(driver);
+ mod_tap_hold_key.press();
+ run_one_scan_loop();
+ testing::Mock::VerifyAndClearExpectations(&driver);
+
+ /* Press mod-tap-regular key. */
+ EXPECT_NO_REPORT(driver);
+ mod_tap_regular_key.press();
+ run_one_scan_loop();
+ testing::Mock::VerifyAndClearExpectations(&driver);
+
+ /* Release mod-tap-hold key. */
+ EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_LCTL))).Times(AnyNumber());
+ mod_tap_hold_key.release();
+ run_one_scan_loop();
+ testing::Mock::VerifyAndClearExpectations(&driver);
+
+ /* Release mod-tap-regular key. */
+ EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_LCTL))).Times(AnyNumber());
+ EXPECT_REPORT(driver, (KC_LCTL, KC_A));
+ EXPECT_REPORT(driver, (KC_LCTL));
+ EXPECT_EMPTY_REPORT(driver);
+ mod_tap_regular_key.release();
+ run_one_scan_loop();
+ testing::Mock::VerifyAndClearExpectations(&driver);
+}
+
+TEST_F(RetroShiftHoldOnOtherKeyPress, roll_hold_regular_key_while_mod_tap_key_is_held_under_tapping_term) {
+ TestDriver driver;
+ InSequence s;
+ auto mod_tap_hold_key = KeymapKey(0, 0, 0, CTL_T(KC_P));
+ auto regular_key = KeymapKey(0, 1, 0, KC_A);
+
+ set_keymap({mod_tap_hold_key, regular_key});
+
+ /* Press mod-tap-hold key. */
+ EXPECT_NO_REPORT(driver);
+ mod_tap_hold_key.press();
+ run_one_scan_loop();
+ testing::Mock::VerifyAndClearExpectations(&driver);
+
+ /* Press regular key. */
+ EXPECT_NO_REPORT(driver);
+ regular_key.press();
+ run_one_scan_loop();
+ testing::Mock::VerifyAndClearExpectations(&driver);
+
+ /* Release mod-tap-hold key. */
+ EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_LCTL))).Times(AnyNumber());
+ mod_tap_hold_key.release();
+ run_one_scan_loop();
+ testing::Mock::VerifyAndClearExpectations(&driver);
+
+ /* Release regular key. */
+ // clang-format off
+ EXPECT_CALL(driver, send_keyboard_mock(AnyOf(
+ KeyboardReport(KC_LCTL, KC_LSFT),
+ KeyboardReport(KC_LSFT),
+ KeyboardReport(KC_LCTL))))
+ .Times(AnyNumber());
+ // clang-format on
+ EXPECT_REPORT(driver, (KC_LCTL, KC_LSFT, KC_A));
+ // clang-format off
+ EXPECT_CALL(driver, send_keyboard_mock(AnyOf(
+ KeyboardReport(KC_LCTL, KC_LSFT),
+ KeyboardReport(KC_LSFT),
+ KeyboardReport(KC_LCTL))))
+ .Times(AnyNumber());
+ // clang-format on
+ EXPECT_EMPTY_REPORT(driver);
+ idle_for(AUTO_SHIFT_TIMEOUT);
+ regular_key.release();
+ run_one_scan_loop();
+ testing::Mock::VerifyAndClearExpectations(&driver);
+}
+
+TEST_F(RetroShiftHoldOnOtherKeyPress, roll_hold_mod_tap_key_while_mod_tap_key_is_held_under_tapping_term) {
+ TestDriver driver;
+ InSequence s;
+ auto mod_tap_hold_key = KeymapKey(0, 0, 0, CTL_T(KC_P));
+ auto mod_tap_regular_key = KeymapKey(0, 1, 0, ALT_T(KC_A));
+
+ set_keymap({mod_tap_hold_key, mod_tap_regular_key});
+
+ /* Press mod-tap-hold key. */
+ EXPECT_NO_REPORT(driver);
+ mod_tap_hold_key.press();
+ run_one_scan_loop();
+ testing::Mock::VerifyAndClearExpectations(&driver);
+
+ /* Press mod-tap-regular key. */
+ EXPECT_NO_REPORT(driver);
+ mod_tap_regular_key.press();
+ run_one_scan_loop();
+ testing::Mock::VerifyAndClearExpectations(&driver);
+
+ /* Release mod-tap-hold key. */
+ EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_LCTL))).Times(AnyNumber());
+ mod_tap_hold_key.release();
+ run_one_scan_loop();
+ testing::Mock::VerifyAndClearExpectations(&driver);
+
+ /* Release mod-tap-regular key. */
+ // clang-format off
+ EXPECT_CALL(driver, send_keyboard_mock(AnyOf(
+ KeyboardReport(KC_LCTL, KC_LSFT),
+ KeyboardReport(KC_LSFT),
+ KeyboardReport(KC_LCTL))))
+ .Times(AnyNumber());
+ // clang-format on
+ EXPECT_REPORT(driver, (KC_LCTL, KC_LSFT, KC_A));
+ // clang-format off
+ EXPECT_CALL(driver, send_keyboard_mock(AnyOf(
+ KeyboardReport(KC_LCTL, KC_LSFT),
+ KeyboardReport(KC_LSFT),
+ KeyboardReport(KC_LCTL))))
+ .Times(AnyNumber());
+ // clang-format on
+ EXPECT_EMPTY_REPORT(driver);
+ idle_for(AUTO_SHIFT_TIMEOUT);
+ mod_tap_regular_key.release();
+ run_one_scan_loop();
+ testing::Mock::VerifyAndClearExpectations(&driver);
+}
diff --git a/tests/auto_shift/retro_shift/tap_hold_configurations/permissive_hold/config.h b/tests/auto_shift/retro_shift/tap_hold_configurations/permissive_hold/config.h
new file mode 100644
index 0000000000..5194027c9f
--- /dev/null
+++ b/tests/auto_shift/retro_shift/tap_hold_configurations/permissive_hold/config.h
@@ -0,0 +1,26 @@
+/* Copyright 2022 Isaac Elenbaas
+ *
+ * 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 "test_common.h"
+
+#define PERMISSIVE_HOLD
+
+#define RETRO_SHIFT 2 * TAPPING_TERM
+// releases between AUTO_SHIFT_TIMEOUT and TAPPING_TERM are not tested
+#define AUTO_SHIFT_TIMEOUT TAPPING_TERM
+#define AUTO_SHIFT_MODIFIERS
diff --git a/tests/auto_shift/retro_shift/tap_hold_configurations/permissive_hold/test.mk b/tests/auto_shift/retro_shift/tap_hold_configurations/permissive_hold/test.mk
new file mode 100644
index 0000000000..b687332005
--- /dev/null
+++ b/tests/auto_shift/retro_shift/tap_hold_configurations/permissive_hold/test.mk
@@ -0,0 +1,20 @@
+# Copyright 2022 Isaac Elenbaas
+#
+# 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/>.
+
+# --------------------------------------------------------------------------------
+# Keep this file, even if it is empty, as a marker that this folder contains tests
+# --------------------------------------------------------------------------------
+
+AUTO_SHIFT_ENABLE = yes
diff --git a/tests/auto_shift/retro_shift/tap_hold_configurations/permissive_hold/test_retro_shift.cpp b/tests/auto_shift/retro_shift/tap_hold_configurations/permissive_hold/test_retro_shift.cpp
new file mode 100644
index 0000000000..a6c2cab167
--- /dev/null
+++ b/tests/auto_shift/retro_shift/tap_hold_configurations/permissive_hold/test_retro_shift.cpp
@@ -0,0 +1,419 @@
+/* Copyright 2022 Isaac Elenbaas
+ *
+ * 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 "keyboard_report_util.hpp"
+#include "keycode.h"
+#include "test_common.hpp"
+#include "action_tapping.h"
+#include "test_fixture.hpp"
+#include "test_keymap_key.hpp"
+
+bool get_auto_shifted_key(uint16_t keycode, keyrecord_t *record) {
+ return true;
+}
+
+using testing::_;
+using testing::AnyNumber;
+using testing::AnyOf;
+using testing::InSequence;
+
+class RetroShiftPermissiveHold : public TestFixture {};
+
+TEST_F(RetroShiftPermissiveHold, tap_regular_key_while_mod_tap_key_is_held_under_tapping_term) {
+ TestDriver driver;
+ InSequence s;
+ auto mod_tap_hold_key = KeymapKey(0, 0, 0, CTL_T(KC_P));
+ auto regular_key = KeymapKey(0, 1, 0, KC_A);
+
+ set_keymap({mod_tap_hold_key, regular_key});
+
+ /* Press mod-tap-hold key. */
+ EXPECT_NO_REPORT(driver);
+ mod_tap_hold_key.press();
+ run_one_scan_loop();
+ testing::Mock::VerifyAndClearExpectations(&driver);
+
+ /* Press regular key. */
+ EXPECT_NO_REPORT(driver);
+ regular_key.press();
+ run_one_scan_loop();
+ testing::Mock::VerifyAndClearExpectations(&driver);
+
+ /* Release regular key. */
+ EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_LCTL))).Times(AnyNumber());
+ EXPECT_REPORT(driver, (KC_LCTL, KC_A));
+ EXPECT_REPORT(driver, (KC_LCTL));
+ regular_key.release();
+ run_one_scan_loop();
+ testing::Mock::VerifyAndClearExpectations(&driver);
+
+ /* Release mod-tap-hold key. */
+ EXPECT_EMPTY_REPORT(driver);
+ mod_tap_hold_key.release();
+ run_one_scan_loop();
+ testing::Mock::VerifyAndClearExpectations(&driver);
+}
+
+TEST_F(RetroShiftPermissiveHold, tap_mod_tap_key_while_mod_tap_key_is_held_under_tapping_term) {
+ TestDriver driver;
+ InSequence s;
+ auto mod_tap_hold_key = KeymapKey(0, 0, 0, CTL_T(KC_P));
+ auto mod_tap_regular_key = KeymapKey(0, 1, 0, ALT_T(KC_A));
+
+ set_keymap({mod_tap_hold_key, mod_tap_regular_key});
+
+ /* Press mod-tap-hold key. */
+ EXPECT_NO_REPORT(driver);
+ mod_tap_hold_key.press();
+ run_one_scan_loop();
+ testing::Mock::VerifyAndClearExpectations(&driver);
+
+ /* Press mod-tap-regular key. */
+ EXPECT_NO_REPORT(driver);
+ mod_tap_regular_key.press();
+ run_one_scan_loop();
+ testing::Mock::VerifyAndClearExpectations(&driver);
+
+ /* Release mod-tap-regular key. */
+ EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_LCTL))).Times(AnyNumber());
+ EXPECT_REPORT(driver, (KC_LCTL, KC_A));
+ EXPECT_REPORT(driver, (KC_LCTL));
+ mod_tap_regular_key.release();
+ run_one_scan_loop();
+ testing::Mock::VerifyAndClearExpectations(&driver);
+
+ /* Release mod-tap-hold key. */
+ EXPECT_EMPTY_REPORT(driver);
+ mod_tap_hold_key.release();
+ run_one_scan_loop();
+ testing::Mock::VerifyAndClearExpectations(&driver);
+}
+
+TEST_F(RetroShiftPermissiveHold, tap_regular_key_while_mod_tap_key_is_held_over_tapping_term) {
+ TestDriver driver;
+ InSequence s;
+ auto mod_tap_hold_key = KeymapKey(0, 0, 0, CTL_T(KC_P));
+ auto regular_key = KeymapKey(0, 1, 0, KC_A);
+
+ set_keymap({mod_tap_hold_key, regular_key});
+
+ /* Press mod-tap-hold key. */
+ EXPECT_NO_REPORT(driver);
+ mod_tap_hold_key.press();
+ run_one_scan_loop();
+ testing::Mock::VerifyAndClearExpectations(&driver);
+
+ /* Press regular key. */
+ EXPECT_NO_REPORT(driver);
+ regular_key.press();
+ run_one_scan_loop();
+ testing::Mock::VerifyAndClearExpectations(&driver);
+
+ /* Release regular key. */
+ EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_LCTL))).Times(AnyNumber());
+ EXPECT_REPORT(driver, (KC_LCTL, KC_A));
+ EXPECT_REPORT(driver, (KC_LCTL));
+ regular_key.release();
+ run_one_scan_loop();
+ idle_for(TAPPING_TERM);
+ testing::Mock::VerifyAndClearExpectations(&driver);
+
+ /* Release mod-tap-hold key. */
+ EXPECT_EMPTY_REPORT(driver);
+ mod_tap_hold_key.release();
+ run_one_scan_loop();
+ testing::Mock::VerifyAndClearExpectations(&driver);
+}
+
+TEST_F(RetroShiftPermissiveHold, tap_mod_tap_key_while_mod_tap_key_is_held_over_tapping_term) {
+ TestDriver driver;
+ InSequence s;
+ auto mod_tap_hold_key = KeymapKey(0, 0, 0, CTL_T(KC_P));
+ auto mod_tap_regular_key = KeymapKey(0, 1, 0, ALT_T(KC_A));
+
+ set_keymap({mod_tap_hold_key, mod_tap_regular_key});
+
+ /* Press mod-tap-hold key. */
+ EXPECT_NO_REPORT(driver);
+ mod_tap_hold_key.press();
+ run_one_scan_loop();
+ testing::Mock::VerifyAndClearExpectations(&driver);
+
+ /* Press mod-tap-regular key. */
+ EXPECT_NO_REPORT(driver);
+ mod_tap_regular_key.press();
+ run_one_scan_loop();
+ testing::Mock::VerifyAndClearExpectations(&driver);
+
+ /* Release mod-tap-regular key. */
+ EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_LCTL))).Times(AnyNumber());
+ EXPECT_REPORT(driver, (KC_LCTL, KC_A));
+ EXPECT_REPORT(driver, (KC_LCTL));
+ mod_tap_regular_key.release();
+ run_one_scan_loop();
+ idle_for(TAPPING_TERM);
+ testing::Mock::VerifyAndClearExpectations(&driver);
+
+ /* Release mod-tap-hold key. */
+ EXPECT_EMPTY_REPORT(driver);
+ mod_tap_hold_key.release();
+ run_one_scan_loop();
+ testing::Mock::VerifyAndClearExpectations(&driver);
+}
+
+TEST_F(RetroShiftPermissiveHold, hold_regular_key_while_mod_tap_key_is_held_over_tapping_term) {
+ TestDriver driver;
+ InSequence s;
+ auto mod_tap_hold_key = KeymapKey(0, 0, 0, CTL_T(KC_P));
+ auto regular_key = KeymapKey(0, 1, 0, KC_A);
+
+ set_keymap({mod_tap_hold_key, regular_key});
+
+ /* Press mod-tap-hold key. */
+ EXPECT_NO_REPORT(driver);
+ mod_tap_hold_key.press();
+ run_one_scan_loop();
+ testing::Mock::VerifyAndClearExpectations(&driver);
+
+ /* Press regular key. */
+ EXPECT_NO_REPORT(driver);
+ regular_key.press();
+ run_one_scan_loop();
+ idle_for(AUTO_SHIFT_TIMEOUT);
+ testing::Mock::VerifyAndClearExpectations(&driver);
+
+ /* Release regular key. */
+ // clang-format off
+ EXPECT_CALL(driver, send_keyboard_mock(AnyOf(
+ KeyboardReport(KC_LCTL, KC_LSFT),
+ KeyboardReport(KC_LSFT),
+ KeyboardReport(KC_LCTL))))
+ .Times(AnyNumber());
+ // clang-format on
+ EXPECT_REPORT(driver, (KC_LCTL, KC_LSFT, KC_A));
+ // clang-format off
+ EXPECT_CALL(driver, send_keyboard_mock(AnyOf(
+ KeyboardReport(KC_LCTL, KC_LSFT),
+ KeyboardReport(KC_LSFT))))
+ .Times(AnyNumber());
+ // clang-format on
+ EXPECT_REPORT(driver, (KC_LCTL));
+ regular_key.release();
+ run_one_scan_loop();
+ testing::Mock::VerifyAndClearExpectations(&driver);
+
+ /* Release mod-tap-hold key. */
+ EXPECT_EMPTY_REPORT(driver);
+ mod_tap_hold_key.release();
+ run_one_scan_loop();
+ testing::Mock::VerifyAndClearExpectations(&driver);
+}
+
+TEST_F(RetroShiftPermissiveHold, hold_mod_tap_key_while_mod_tap_key_is_held_over_tapping_term) {
+ TestDriver driver;
+ InSequence s;
+ auto mod_tap_hold_key = KeymapKey(0, 0, 0, CTL_T(KC_P));
+ auto mod_tap_regular_key = KeymapKey(0, 1, 0, ALT_T(KC_A));
+
+ set_keymap({mod_tap_hold_key, mod_tap_regular_key});
+
+ /* Press mod-tap-hold key. */
+ EXPECT_NO_REPORT(driver);
+ mod_tap_hold_key.press();
+ run_one_scan_loop();
+ testing::Mock::VerifyAndClearExpectations(&driver);
+
+ /* Press mod-tap-regular key. */
+ EXPECT_NO_REPORT(driver);
+ mod_tap_regular_key.press();
+ run_one_scan_loop();
+ idle_for(AUTO_SHIFT_TIMEOUT);
+ testing::Mock::VerifyAndClearExpectations(&driver);
+
+ /* Release mod-tap-regular key. */
+ // clang-format off
+ EXPECT_CALL(driver, send_keyboard_mock(AnyOf(
+ KeyboardReport(KC_LCTL, KC_LSFT),
+ KeyboardReport(KC_LSFT),
+ KeyboardReport(KC_LCTL))))
+ .Times(AnyNumber());
+ // clang-format on
+ EXPECT_REPORT(driver, (KC_LCTL, KC_LSFT, KC_A));
+ // clang-format off
+ EXPECT_CALL(driver, send_keyboard_mock(AnyOf(
+ KeyboardReport(KC_LCTL, KC_LSFT),
+ KeyboardReport(KC_LSFT))))
+ .Times(AnyNumber());
+ // clang-format on
+ EXPECT_REPORT(driver, (KC_LCTL));
+ mod_tap_regular_key.release();
+ run_one_scan_loop();
+ idle_for(TAPPING_TERM);
+ testing::Mock::VerifyAndClearExpectations(&driver);
+
+ /* Release mod-tap-hold key. */
+ EXPECT_EMPTY_REPORT(driver);
+ mod_tap_hold_key.release();
+ run_one_scan_loop();
+ testing::Mock::VerifyAndClearExpectations(&driver);
+}
+
+TEST_F(RetroShiftPermissiveHold, roll_tap_regular_key_while_mod_tap_key_is_held_under_tapping_term) {
+ TestDriver driver;
+ InSequence s;
+ auto mod_tap_hold_key = KeymapKey(0, 0, 0, CTL_T(KC_P));
+ auto regular_key = KeymapKey(0, 1, 0, KC_A);
+
+ set_keymap({mod_tap_hold_key, regular_key});
+
+ /* Press mod-tap-hold key. */
+ EXPECT_NO_REPORT(driver);
+ mod_tap_hold_key.press();
+ run_one_scan_loop();
+ testing::Mock::VerifyAndClearExpectations(&driver);
+
+ /* Press regular key. */
+ EXPECT_NO_REPORT(driver);
+ regular_key.press();
+ run_one_scan_loop();
+ testing::Mock::VerifyAndClearExpectations(&driver);
+
+ /* Release mod-tap-hold key. */
+ EXPECT_REPORT(driver, (KC_P));
+ EXPECT_EMPTY_REPORT(driver);
+ mod_tap_hold_key.release();
+ run_one_scan_loop();
+ testing::Mock::VerifyAndClearExpectations(&driver);
+
+ /* Release regular key. */
+ EXPECT_REPORT(driver, (KC_A));
+ EXPECT_EMPTY_REPORT(driver);
+ regular_key.release();
+ run_one_scan_loop();
+ testing::Mock::VerifyAndClearExpectations(&driver);
+}
+
+TEST_F(RetroShiftPermissiveHold, roll_tap_mod_tap_key_while_mod_tap_key_is_held_under_tapping_term) {
+ TestDriver driver;
+ InSequence s;
+ auto mod_tap_hold_key = KeymapKey(0, 0, 0, CTL_T(KC_P));
+ auto mod_tap_regular_key = KeymapKey(0, 1, 0, ALT_T(KC_A));
+
+ set_keymap({mod_tap_hold_key, mod_tap_regular_key});
+
+ /* Press mod-tap-hold key. */
+ EXPECT_NO_REPORT(driver);
+ mod_tap_hold_key.press();
+ run_one_scan_loop();
+ testing::Mock::VerifyAndClearExpectations(&driver);
+
+ /* Press mod-tap-regular key. */
+ EXPECT_NO_REPORT(driver);
+ mod_tap_regular_key.press();
+ run_one_scan_loop();
+ testing::Mock::VerifyAndClearExpectations(&driver);
+
+ /* Release mod-tap-hold key. */
+ EXPECT_REPORT(driver, (KC_P));
+ EXPECT_EMPTY_REPORT(driver);
+ mod_tap_hold_key.release();
+ run_one_scan_loop();
+ testing::Mock::VerifyAndClearExpectations(&driver);
+
+ /* Release mod-tap-regular key. */
+ EXPECT_REPORT(driver, (KC_A));
+ EXPECT_EMPTY_REPORT(driver);
+ mod_tap_regular_key.release();
+ run_one_scan_loop();
+ testing::Mock::VerifyAndClearExpectations(&driver);
+}
+
+TEST_F(RetroShiftPermissiveHold, roll_hold_regular_key_while_mod_tap_key_is_held_under_tapping_term) {
+ TestDriver driver;
+ InSequence s;
+ auto mod_tap_hold_key = KeymapKey(0, 0, 0, CTL_T(KC_P));
+ auto regular_key = KeymapKey(0, 1, 0, KC_A);
+
+ set_keymap({mod_tap_hold_key, regular_key});
+
+ /* Press mod-tap-hold key. */
+ EXPECT_NO_REPORT(driver);
+ mod_tap_hold_key.press();
+ run_one_scan_loop();
+ testing::Mock::VerifyAndClearExpectations(&driver);
+
+ /* Press regular key. */
+ EXPECT_NO_REPORT(driver);
+ regular_key.press();
+ run_one_scan_loop();
+ testing::Mock::VerifyAndClearExpectations(&driver);
+
+ /* Release mod-tap-hold key. */
+ EXPECT_REPORT(driver, (KC_P));
+ EXPECT_EMPTY_REPORT(driver);
+ EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_LSFT))).Times(AnyNumber());
+ EXPECT_REPORT(driver, (KC_LSFT, KC_A));
+ EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_LSFT))).Times(AnyNumber());
+ EXPECT_EMPTY_REPORT(driver);
+ mod_tap_hold_key.release();
+ run_one_scan_loop();
+ idle_for(AUTO_SHIFT_TIMEOUT);
+ testing::Mock::VerifyAndClearExpectations(&driver);
+
+ /* Release regular key. */
+ EXPECT_NO_REPORT(driver);
+ regular_key.release();
+ run_one_scan_loop();
+ testing::Mock::VerifyAndClearExpectations(&driver);
+}
+
+TEST_F(RetroShiftPermissiveHold, roll_hold_mod_tap_key_while_mod_tap_key_is_held_under_tapping_term) {
+ TestDriver driver;
+ InSequence s;
+ auto mod_tap_hold_key = KeymapKey(0, 0, 0, CTL_T(KC_P));
+ auto mod_tap_regular_key = KeymapKey(0, 1, 0, ALT_T(KC_A));
+
+ set_keymap({mod_tap_hold_key, mod_tap_regular_key});
+
+ /* Press mod-tap-hold key. */
+ EXPECT_NO_REPORT(driver);
+ mod_tap_hold_key.press();
+ run_one_scan_loop();
+ testing::Mock::VerifyAndClearExpectations(&driver);
+
+ /* Press mod-tap-regular key. */
+ EXPECT_NO_REPORT(driver);
+ mod_tap_regular_key.press();
+ run_one_scan_loop();
+ testing::Mock::VerifyAndClearExpectations(&driver);
+
+ /* Release mod-tap-hold key. */
+ EXPECT_REPORT(driver, (KC_P));
+ EXPECT_EMPTY_REPORT(driver);
+ mod_tap_hold_key.release();
+ run_one_scan_loop();
+ testing::Mock::VerifyAndClearExpectations(&driver);
+
+ /* Release mod-tap-regular key. */
+ EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_LSFT))).Times(AnyNumber());
+ EXPECT_REPORT(driver, (KC_LSFT, KC_A));
+ EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_LSFT))).Times(AnyNumber());
+ EXPECT_EMPTY_REPORT(driver);
+ idle_for(AUTO_SHIFT_TIMEOUT);
+ mod_tap_regular_key.release();
+ run_one_scan_loop();
+ testing::Mock::VerifyAndClearExpectations(&driver);
+}
diff --git a/tests/auto_shift/retro_shift/tap_hold_configurations/permissive_hold_hold_on_other_key_press/config.h b/tests/auto_shift/retro_shift/tap_hold_configurations/permissive_hold_hold_on_other_key_press/config.h
new file mode 100644
index 0000000000..a9535d8db0
--- /dev/null
+++ b/tests/auto_shift/retro_shift/tap_hold_configurations/permissive_hold_hold_on_other_key_press/config.h
@@ -0,0 +1,27 @@
+/* Copyright 2022 Isaac Elenbaas
+ *
+ * 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 "test_common.h"
+
+#define HOLD_ON_OTHER_KEY_PRESS
+#define PERMISSIVE_HOLD
+
+#define RETRO_SHIFT 2 * TAPPING_TERM
+// releases between AUTO_SHIFT_TIMEOUT and TAPPING_TERM are not tested
+#define AUTO_SHIFT_TIMEOUT TAPPING_TERM
+#define AUTO_SHIFT_MODIFIERS
diff --git a/tests/auto_shift/retro_shift/tap_hold_configurations/permissive_hold_hold_on_other_key_press/test.mk b/tests/auto_shift/retro_shift/tap_hold_configurations/permissive_hold_hold_on_other_key_press/test.mk
new file mode 100644
index 0000000000..b687332005
--- /dev/null
+++ b/tests/auto_shift/retro_shift/tap_hold_configurations/permissive_hold_hold_on_other_key_press/test.mk
@@ -0,0 +1,20 @@
+# Copyright 2022 Isaac Elenbaas
+#
+# 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/>.
+
+# --------------------------------------------------------------------------------
+# Keep this file, even if it is empty, as a marker that this folder contains tests
+# --------------------------------------------------------------------------------
+
+AUTO_SHIFT_ENABLE = yes
diff --git a/tests/auto_shift/retro_shift/tap_hold_configurations/permissive_hold_hold_on_other_key_press/test_retro_shift.cpp b/tests/auto_shift/retro_shift/tap_hold_configurations/permissive_hold_hold_on_other_key_press/test_retro_shift.cpp
new file mode 100644
index 0000000000..25c80b2cba
--- /dev/null
+++ b/tests/auto_shift/retro_shift/tap_hold_configurations/permissive_hold_hold_on_other_key_press/test_retro_shift.cpp
@@ -0,0 +1,442 @@
+/* Copyright 2022 Isaac Elenbaas
+ *
+ * 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 "keyboard_report_util.hpp"
+#include "keycode.h"
+#include "test_common.hpp"
+#include "action_tapping.h"
+#include "test_fixture.hpp"
+#include "test_keymap_key.hpp"
+
+bool get_auto_shifted_key(uint16_t keycode, keyrecord_t *record) {
+ return true;
+}
+
+using testing::_;
+using testing::AnyNumber;
+using testing::AnyOf;
+using testing::InSequence;
+
+class RetroShiftPermissiveHoldHoldOnOtherKeyPress : public TestFixture {};
+
+TEST_F(RetroShiftPermissiveHoldHoldOnOtherKeyPress, tap_regular_key_while_mod_tap_key_is_held_under_tapping_term) {
+ TestDriver driver;
+ InSequence s;
+ auto mod_tap_hold_key = KeymapKey(0, 0, 0, CTL_T(KC_P));
+ auto regular_key = KeymapKey(0, 1, 0, KC_A);
+
+ set_keymap({mod_tap_hold_key, regular_key});
+
+ /* Press mod-tap-hold key. */
+ EXPECT_NO_REPORT(driver);
+ mod_tap_hold_key.press();
+ run_one_scan_loop();
+ testing::Mock::VerifyAndClearExpectations(&driver);
+
+ /* Press regular key. */
+ EXPECT_NO_REPORT(driver);
+ regular_key.press();
+ run_one_scan_loop();
+ testing::Mock::VerifyAndClearExpectations(&driver);
+
+ /* Release regular key. */
+ EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_LCTL))).Times(AnyNumber());
+ EXPECT_REPORT(driver, (KC_LCTL, KC_A));
+ EXPECT_REPORT(driver, (KC_LCTL));
+ regular_key.release();
+ run_one_scan_loop();
+ testing::Mock::VerifyAndClearExpectations(&driver);
+
+ /* Release mod-tap-hold key. */
+ EXPECT_EMPTY_REPORT(driver);
+ mod_tap_hold_key.release();
+ run_one_scan_loop();
+ testing::Mock::VerifyAndClearExpectations(&driver);
+}
+
+TEST_F(RetroShiftPermissiveHoldHoldOnOtherKeyPress, tap_mod_tap_key_while_mod_tap_key_is_held_under_tapping_term) {
+ TestDriver driver;
+ InSequence s;
+ auto mod_tap_hold_key = KeymapKey(0, 0, 0, CTL_T(KC_P));
+ auto mod_tap_regular_key = KeymapKey(0, 1, 0, ALT_T(KC_A));
+
+ set_keymap({mod_tap_hold_key, mod_tap_regular_key});
+
+ /* Press mod-tap-hold key. */
+ EXPECT_NO_REPORT(driver);
+ mod_tap_hold_key.press();
+ run_one_scan_loop();
+ testing::Mock::VerifyAndClearExpectations(&driver);
+
+ /* Press mod-tap-regular key. */
+ EXPECT_NO_REPORT(driver);
+ mod_tap_regular_key.press();
+ run_one_scan_loop();
+ testing::Mock::VerifyAndClearExpectations(&driver);
+
+ /* Release mod-tap-regular key. */
+ EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_LCTL))).Times(AnyNumber());
+ EXPECT_REPORT(driver, (KC_LCTL, KC_A));
+ EXPECT_REPORT(driver, (KC_LCTL));
+ mod_tap_regular_key.release();
+ run_one_scan_loop();
+ testing::Mock::VerifyAndClearExpectations(&driver);
+
+ /* Release mod-tap-hold key. */
+ EXPECT_EMPTY_REPORT(driver);
+ mod_tap_hold_key.release();
+ run_one_scan_loop();
+ testing::Mock::VerifyAndClearExpectations(&driver);
+}
+
+TEST_F(RetroShiftPermissiveHoldHoldOnOtherKeyPress, tap_regular_key_while_mod_tap_key_is_held_over_tapping_term) {
+ TestDriver driver;
+ InSequence s;
+ auto mod_tap_hold_key = KeymapKey(0, 0, 0, CTL_T(KC_P));
+ auto regular_key = KeymapKey(0, 1, 0, KC_A);
+
+ set_keymap({mod_tap_hold_key, regular_key});
+
+ /* Press mod-tap-hold key. */
+ EXPECT_NO_REPORT(driver);
+ mod_tap_hold_key.press();
+ run_one_scan_loop();
+ testing::Mock::VerifyAndClearExpectations(&driver);
+
+ /* Press regular key. */
+ EXPECT_NO_REPORT(driver);
+ regular_key.press();
+ run_one_scan_loop();
+ testing::Mock::VerifyAndClearExpectations(&driver);
+
+ /* Release regular key. */
+ EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_LCTL))).Times(AnyNumber());
+ EXPECT_REPORT(driver, (KC_LCTL, KC_A));
+ EXPECT_REPORT(driver, (KC_LCTL));
+ regular_key.release();
+ run_one_scan_loop();
+ idle_for(TAPPING_TERM);
+ testing::Mock::VerifyAndClearExpectations(&driver);
+
+ /* Release mod-tap-hold key. */
+ EXPECT_EMPTY_REPORT(driver);
+ mod_tap_hold_key.release();
+ run_one_scan_loop();
+ testing::Mock::VerifyAndClearExpectations(&driver);
+}
+
+TEST_F(RetroShiftPermissiveHoldHoldOnOtherKeyPress, tap_mod_tap_key_while_mod_tap_key_is_held_over_tapping_term) {
+ TestDriver driver;
+ InSequence s;
+ auto mod_tap_hold_key = KeymapKey(0, 0, 0, CTL_T(KC_P));
+ auto mod_tap_regular_key = KeymapKey(0, 1, 0, ALT_T(KC_A));
+
+ set_keymap({mod_tap_hold_key, mod_tap_regular_key});
+
+ /* Press mod-tap-hold key. */
+ EXPECT_NO_REPORT(driver);
+ mod_tap_hold_key.press();
+ run_one_scan_loop();
+ testing::Mock::VerifyAndClearExpectations(&driver);
+
+ /* Press mod-tap-regular key. */
+ EXPECT_NO_REPORT(driver);
+ mod_tap_regular_key.press();
+ run_one_scan_loop();
+ testing::Mock::VerifyAndClearExpectations(&driver);
+
+ /* Release mod-tap-regular key. */
+ EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_LCTL))).Times(AnyNumber());
+ EXPECT_REPORT(driver, (KC_LCTL, KC_A));
+ EXPECT_REPORT(driver, (KC_LCTL));
+ mod_tap_regular_key.release();
+ run_one_scan_loop();
+ idle_for(TAPPING_TERM);
+ testing::Mock::VerifyAndClearExpectations(&driver);
+
+ /* Release mod-tap-hold key. */
+ EXPECT_EMPTY_REPORT(driver);
+ mod_tap_hold_key.release();
+ run_one_scan_loop();
+ testing::Mock::VerifyAndClearExpectations(&driver);
+}
+
+TEST_F(RetroShiftPermissiveHoldHoldOnOtherKeyPress, hold_regular_key_while_mod_tap_key_is_held_over_tapping_term) {
+ TestDriver driver;
+ InSequence s;
+ auto mod_tap_hold_key = KeymapKey(0, 0, 0, CTL_T(KC_P));
+ auto regular_key = KeymapKey(0, 1, 0, KC_A);
+
+ set_keymap({mod_tap_hold_key, regular_key});
+
+ /* Press mod-tap-hold key. */
+ EXPECT_NO_REPORT(driver);
+ mod_tap_hold_key.press();
+ run_one_scan_loop();
+ testing::Mock::VerifyAndClearExpectations(&driver);
+
+ /* Press regular key. */
+ EXPECT_NO_REPORT(driver);
+ regular_key.press();
+ run_one_scan_loop();
+ idle_for(AUTO_SHIFT_TIMEOUT);
+ testing::Mock::VerifyAndClearExpectations(&driver);
+
+ /* Release regular key. */
+ // clang-format off
+ EXPECT_CALL(driver, send_keyboard_mock(AnyOf(
+ KeyboardReport(KC_LCTL, KC_LSFT),
+ KeyboardReport(KC_LSFT),
+ KeyboardReport(KC_LCTL))))
+ .Times(AnyNumber());
+ // clang-format on
+ EXPECT_REPORT(driver, (KC_LCTL, KC_LSFT, KC_A));
+ // clang-format off
+ EXPECT_CALL(driver, send_keyboard_mock(AnyOf(
+ KeyboardReport(KC_LCTL, KC_LSFT),
+ KeyboardReport(KC_LSFT))))
+ .Times(AnyNumber());
+ // clang-format on
+ EXPECT_REPORT(driver, (KC_LCTL));
+ regular_key.release();
+ run_one_scan_loop();
+ testing::Mock::VerifyAndClearExpectations(&driver);
+
+ /* Release mod-tap-hold key. */
+ EXPECT_EMPTY_REPORT(driver);
+ mod_tap_hold_key.release();
+ run_one_scan_loop();
+ testing::Mock::VerifyAndClearExpectations(&driver);
+}
+
+TEST_F(RetroShiftPermissiveHoldHoldOnOtherKeyPress, hold_mod_tap_key_while_mod_tap_key_is_held_over_tapping_term) {
+ TestDriver driver;
+ InSequence s;
+ auto mod_tap_hold_key = KeymapKey(0, 0, 0, CTL_T(KC_P));
+ auto mod_tap_regular_key = KeymapKey(0, 1, 0, ALT_T(KC_A));
+
+ set_keymap({mod_tap_hold_key, mod_tap_regular_key});
+
+ /* Press mod-tap-hold key. */
+ EXPECT_NO_REPORT(driver);
+ mod_tap_hold_key.press();
+ run_one_scan_loop();
+ testing::Mock::VerifyAndClearExpectations(&driver);
+
+ /* Press mod-tap-regular key. */
+ EXPECT_NO_REPORT(driver);
+ mod_tap_regular_key.press();
+ run_one_scan_loop();
+ idle_for(AUTO_SHIFT_TIMEOUT);
+ testing::Mock::VerifyAndClearExpectations(&driver);
+
+ /* Release mod-tap-regular key. */
+ // clang-format off
+ EXPECT_CALL(driver, send_keyboard_mock(AnyOf(
+ KeyboardReport(KC_LCTL, KC_LSFT),
+ KeyboardReport(KC_LSFT),
+ KeyboardReport(KC_LCTL))))
+ .Times(AnyNumber());
+ // clang-format on
+ EXPECT_REPORT(driver, (KC_LCTL, KC_LSFT, KC_A));
+ // clang-format off
+ EXPECT_CALL(driver, send_keyboard_mock(AnyOf(
+ KeyboardReport(KC_LCTL, KC_LSFT),
+ KeyboardReport(KC_LSFT))))
+ .Times(AnyNumber());
+ // clang-format on
+ EXPECT_REPORT(driver, (KC_LCTL));
+ mod_tap_regular_key.release();
+ run_one_scan_loop();
+ idle_for(TAPPING_TERM);
+ testing::Mock::VerifyAndClearExpectations(&driver);
+
+ /* Release mod-tap-hold key. */
+ EXPECT_EMPTY_REPORT(driver);
+ mod_tap_hold_key.release();
+ run_one_scan_loop();
+ testing::Mock::VerifyAndClearExpectations(&driver);
+}
+
+TEST_F(RetroShiftPermissiveHoldHoldOnOtherKeyPress, roll_tap_regular_key_while_mod_tap_key_is_held_under_tapping_term) {
+ TestDriver driver;
+ InSequence s;
+ auto mod_tap_hold_key = KeymapKey(0, 0, 0, CTL_T(KC_P));
+ auto regular_key = KeymapKey(0, 1, 0, KC_A);
+
+ set_keymap({mod_tap_hold_key, regular_key});
+
+ /* Press mod-tap-hold key. */
+ EXPECT_NO_REPORT(driver);
+ mod_tap_hold_key.press();
+ run_one_scan_loop();
+ testing::Mock::VerifyAndClearExpectations(&driver);
+
+ /* Press regular key. */
+ EXPECT_NO_REPORT(driver);
+ regular_key.press();
+ run_one_scan_loop();
+ testing::Mock::VerifyAndClearExpectations(&driver);
+
+ /* Release mod-tap-hold key. */
+ EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_LCTL))).Times(AnyNumber());
+ mod_tap_hold_key.release();
+ run_one_scan_loop();
+ testing::Mock::VerifyAndClearExpectations(&driver);
+
+ /* Release regular key. */
+ EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_LCTL))).Times(AnyNumber());
+ EXPECT_REPORT(driver, (KC_LCTL, KC_A));
+ EXPECT_REPORT(driver, (KC_LCTL));
+ EXPECT_EMPTY_REPORT(driver);
+ regular_key.release();
+ run_one_scan_loop();
+ testing::Mock::VerifyAndClearExpectations(&driver);
+}
+
+TEST_F(RetroShiftPermissiveHoldHoldOnOtherKeyPress, roll_tap_mod_tap_key_while_mod_tap_key_is_held_under_tapping_term) {
+ TestDriver driver;
+ InSequence s;
+ auto mod_tap_hold_key = KeymapKey(0, 0, 0, CTL_T(KC_P));
+ auto mod_tap_regular_key = KeymapKey(0, 1, 0, ALT_T(KC_A));
+
+ set_keymap({mod_tap_hold_key, mod_tap_regular_key});
+
+ /* Press mod-tap-hold key. */
+ EXPECT_NO_REPORT(driver);
+ mod_tap_hold_key.press();
+ run_one_scan_loop();
+ testing::Mock::VerifyAndClearExpectations(&driver);
+
+ /* Press mod-tap-regular key. */
+ EXPECT_NO_REPORT(driver);
+ mod_tap_regular_key.press();
+ run_one_scan_loop();
+ testing::Mock::VerifyAndClearExpectations(&driver);
+
+ /* Release mod-tap-hold key. */
+ EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_LCTL))).Times(AnyNumber());
+ mod_tap_hold_key.release();
+ run_one_scan_loop();
+ testing::Mock::VerifyAndClearExpectations(&driver);
+
+ /* Release mod-tap-regular key. */
+ EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_LCTL))).Times(AnyNumber());
+ EXPECT_REPORT(driver, (KC_LCTL, KC_A));
+ EXPECT_REPORT(driver, (KC_LCTL));
+ EXPECT_EMPTY_REPORT(driver);
+ mod_tap_regular_key.release();
+ run_one_scan_loop();
+ testing::Mock::VerifyAndClearExpectations(&driver);
+}
+
+TEST_F(RetroShiftPermissiveHoldHoldOnOtherKeyPress, roll_hold_regular_key_while_mod_tap_key_is_held_under_tapping_term) {
+ TestDriver driver;
+ InSequence s;
+ auto mod_tap_hold_key = KeymapKey(0, 0, 0, CTL_T(KC_P));
+ auto regular_key = KeymapKey(0, 1, 0, KC_A);
+
+ set_keymap({mod_tap_hold_key, regular_key});
+
+ /* Press mod-tap-hold key. */
+ EXPECT_NO_REPORT(driver);
+ mod_tap_hold_key.press();
+ run_one_scan_loop();
+ testing::Mock::VerifyAndClearExpectations(&driver);
+
+ /* Press regular key. */
+ EXPECT_NO_REPORT(driver);
+ regular_key.press();
+ run_one_scan_loop();
+ testing::Mock::VerifyAndClearExpectations(&driver);
+
+ /* Release mod-tap-hold key. */
+ EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_LCTL))).Times(AnyNumber());
+ mod_tap_hold_key.release();
+ run_one_scan_loop();
+ testing::Mock::VerifyAndClearExpectations(&driver);
+
+ /* Release regular key. */
+ // clang-format off
+ EXPECT_CALL(driver, send_keyboard_mock(AnyOf(
+ KeyboardReport(KC_LCTL, KC_LSFT),
+ KeyboardReport(KC_LSFT),
+ KeyboardReport(KC_LCTL))))
+ .Times(AnyNumber());
+ // clang-format on
+ EXPECT_REPORT(driver, (KC_LCTL, KC_LSFT, KC_A));
+ // clang-format off
+ EXPECT_CALL(driver, send_keyboard_mock(AnyOf(
+ KeyboardReport(KC_LCTL, KC_LSFT),
+ KeyboardReport(KC_LSFT),
+ KeyboardReport(KC_LCTL))))
+ .Times(AnyNumber());
+ // clang-format on
+ EXPECT_EMPTY_REPORT(driver);
+ idle_for(AUTO_SHIFT_TIMEOUT);
+ regular_key.release();
+ run_one_scan_loop();
+ testing::Mock::VerifyAndClearExpectations(&driver);
+}
+
+TEST_F(RetroShiftPermissiveHoldHoldOnOtherKeyPress, roll_hold_mod_tap_key_while_mod_tap_key_is_held_under_tapping_term) {
+ TestDriver driver;
+ InSequence s;
+ auto mod_tap_hold_key = KeymapKey(0, 0, 0, CTL_T(KC_P));
+ auto mod_tap_regular_key = KeymapKey(0, 1, 0, ALT_T(KC_A));
+
+ set_keymap({mod_tap_hold_key, mod_tap_regular_key});
+
+ /* Press mod-tap-hold key. */
+ EXPECT_NO_REPORT(driver);
+ mod_tap_hold_key.press();
+ run_one_scan_loop();
+ testing::Mock::VerifyAndClearExpectations(&driver);
+
+ /* Press mod-tap-regular key. */
+ EXPECT_NO_REPORT(driver);
+ mod_tap_regular_key.press();
+ run_one_scan_loop();
+ testing::Mock::VerifyAndClearExpectations(&driver);
+
+ /* Release mod-tap-hold key. */
+ EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_LCTL))).Times(AnyNumber());
+ mod_tap_hold_key.release();
+ run_one_scan_loop();
+ testing::Mock::VerifyAndClearExpectations(&driver);
+
+ /* Release mod-tap-regular key. */
+ // clang-format off
+ EXPECT_CALL(driver, send_keyboard_mock(AnyOf(
+ KeyboardReport(KC_LCTL, KC_LSFT),
+ KeyboardReport(KC_LSFT),
+ KeyboardReport(KC_LCTL))))
+ .Times(AnyNumber());
+ // clang-format on
+ EXPECT_REPORT(driver, (KC_LCTL, KC_LSFT, KC_A));
+ // clang-format off
+ EXPECT_CALL(driver, send_keyboard_mock(AnyOf(
+ KeyboardReport(KC_LCTL, KC_LSFT),
+ KeyboardReport(KC_LSFT),
+ KeyboardReport(KC_LCTL))))
+ .Times(AnyNumber());
+ // clang-format on
+ EXPECT_EMPTY_REPORT(driver);
+ idle_for(AUTO_SHIFT_TIMEOUT);
+ mod_tap_regular_key.release();
+ run_one_scan_loop();
+ testing::Mock::VerifyAndClearExpectations(&driver);
+}
diff --git a/tests/auto_shift/test.mk b/tests/auto_shift/test.mk
index 4259c606e4..a4c6b380ed 100644
--- a/tests/auto_shift/test.mk
+++ b/tests/auto_shift/test.mk
@@ -17,4 +17,4 @@
# Keep this file, even if it is empty, as a marker that this folder contains tests
# --------------------------------------------------------------------------------
-AUTO_SHIFT_ENABLE = yes \ No newline at end of file
+AUTO_SHIFT_ENABLE = yes
diff --git a/tests/basic/config.h b/tests/basic/config.h
index 85fa9d691d..7fc76d7c2e 100644
--- a/tests/basic/config.h
+++ b/tests/basic/config.h
@@ -16,4 +16,4 @@
#pragma once
-#include "test_common.h" \ No newline at end of file
+#include "test_common.h"
diff --git a/tests/basic/test.mk b/tests/basic/test.mk
index 29690d1adf..6ec384609c 100644
--- a/tests/basic/test.mk
+++ b/tests/basic/test.mk
@@ -15,4 +15,4 @@
# --------------------------------------------------------------------------------
# Keep this file, even if it is empty, as a marker that this folder contains tests
-# -------------------------------------------------------------------------------- \ No newline at end of file
+# --------------------------------------------------------------------------------
diff --git a/tests/basic/test_one_shot_keys.cpp b/tests/basic/test_one_shot_keys.cpp
index 2a3434bf16..9748dad7da 100644
--- a/tests/basic/test_one_shot_keys.cpp
+++ b/tests/basic/test_one_shot_keys.cpp
@@ -337,3 +337,49 @@ TEST_F(OneShot, OSLWithAdditionalKeypress) {
run_one_scan_loop();
VERIFY_AND_CLEAR(driver);
}
+
+TEST_F(OneShot, OSLWithOsmAndAdditionalKeypress) {
+ TestDriver driver;
+ InSequence s;
+ KeymapKey osl_key = KeymapKey{0, 0, 0, OSL(1)};
+ KeymapKey osm_key = KeymapKey{1, 1, 0, OSM(MOD_LSFT), KC_LSFT};
+ KeymapKey regular_key = KeymapKey{1, 1, 1, KC_A};
+
+ set_keymap({osl_key, osm_key, regular_key});
+
+ /* Press OSL key */
+ EXPECT_NO_REPORT(driver);
+ osl_key.press();
+ run_one_scan_loop();
+ VERIFY_AND_CLEAR(driver);
+
+ /* Release OSL key */
+ EXPECT_NO_REPORT(driver);
+ osl_key.release();
+ run_one_scan_loop();
+ EXPECT_TRUE(layer_state_is(1));
+ VERIFY_AND_CLEAR(driver);
+
+ /* Press and release OSM */
+ EXPECT_NO_REPORT(driver);
+ osm_key.press();
+ run_one_scan_loop();
+ osm_key.release();
+ run_one_scan_loop();
+ EXPECT_TRUE(layer_state_is(1));
+ VERIFY_AND_CLEAR(driver);
+
+ /* Press regular key */
+ EXPECT_REPORT(driver, (osm_key.report_code, regular_key.report_code)).Times(1);
+ EXPECT_EMPTY_REPORT(driver);
+ regular_key.press();
+ run_one_scan_loop();
+ EXPECT_FALSE(layer_state_is(1));
+ VERIFY_AND_CLEAR(driver);
+
+ /* Release regular key */
+ EXPECT_NO_REPORT(driver);
+ regular_key.release();
+ run_one_scan_loop();
+ VERIFY_AND_CLEAR(driver);
+}
diff --git a/tests/caps_word/auto_shift/config.h b/tests/caps_word/auto_shift/config.h
new file mode 100644
index 0000000000..aff389100e
--- /dev/null
+++ b/tests/caps_word/auto_shift/config.h
@@ -0,0 +1,21 @@
+// Copyright 2022 Google LLC
+//
+// 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 "test_common.h"
+
+#define TAPPING_TERM 200
+#define AUTO_SHIFT_TIMEOUT 150
diff --git a/tests/caps_word/caps_word_autoshift/config.h b/tests/caps_word/auto_shift/retro_shift/config.h
index b80f53b9dd..b80f53b9dd 100644
--- a/tests/caps_word/caps_word_autoshift/config.h
+++ b/tests/caps_word/auto_shift/retro_shift/config.h
diff --git a/tests/caps_word/caps_word_autoshift/test.mk b/tests/caps_word/auto_shift/retro_shift/test.mk
index 7f717d7fc1..7f717d7fc1 100644
--- a/tests/caps_word/caps_word_autoshift/test.mk
+++ b/tests/caps_word/auto_shift/retro_shift/test.mk
diff --git a/tests/caps_word/auto_shift/retro_shift/test_caps_word_retroshift.cpp b/tests/caps_word/auto_shift/retro_shift/test_caps_word_retroshift.cpp
new file mode 100644
index 0000000000..03a7a61a73
--- /dev/null
+++ b/tests/caps_word/auto_shift/retro_shift/test_caps_word_retroshift.cpp
@@ -0,0 +1,141 @@
+// Copyright 2022 Google LLC
+//
+// 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 "keyboard_report_util.hpp"
+#include "keycode.h"
+#include "test_common.hpp"
+#include "test_fixture.hpp"
+#include "test_keymap_key.hpp"
+
+// Allow reports with no keys or only KC_LSFT.
+// clang-format off
+#define EXPECT_EMPTY_OR_LSFT(driver) \
+ EXPECT_CALL(driver, send_keyboard_mock(AnyOf( \
+ KeyboardReport(), \
+ KeyboardReport(KC_LSFT))))
+// clang-format on
+
+bool get_auto_shifted_key(uint16_t keycode, keyrecord_t *record) {
+ return true;
+}
+
+using ::testing::_;
+using ::testing::AnyNumber;
+using ::testing::AnyOf;
+using ::testing::InSequence;
+
+class CapsWord : public TestFixture {
+ public:
+ void SetUp() override {
+ caps_word_off();
+ }
+};
+
+// Tests that with Auto Shift, letter keys are shifted by Caps Word
+// regardless of whether they are released before AUTO_SHIFT_TIMEOUT.
+TEST_F(CapsWord, AutoShiftKeys) {
+ TestDriver driver;
+ KeymapKey key_a(0, 0, 0, KC_A);
+ KeymapKey key_spc(0, 1, 0, KC_SPC);
+ set_keymap({key_a, key_spc});
+
+ EXPECT_EMPTY_OR_LSFT(driver).Times(AnyNumber());
+ { // Expect: "A, A, space, a".
+ InSequence s;
+ EXPECT_REPORT(driver, (KC_LSFT, KC_A));
+ EXPECT_REPORT(driver, (KC_LSFT, KC_A));
+ EXPECT_REPORT(driver, (KC_SPC));
+ EXPECT_REPORT(driver, (KC_A));
+ }
+
+ // Turn on Caps Word and type "A (quick tap), A (long press), space, A".
+ caps_word_on();
+
+ tap_key(key_a); // Tap A quickly.
+ tap_key(key_a, AUTO_SHIFT_TIMEOUT + 1); // Long press A.
+ tap_key(key_spc);
+ tap_key(key_a);
+
+ VERIFY_AND_CLEAR(driver);
+}
+
+// Test Caps Word + Auto Shift where keys A and B are rolled.
+TEST_F(CapsWord, AutoShiftRolledShiftedKeys) {
+ TestDriver driver;
+ KeymapKey key_a(0, 0, 0, KC_A);
+ KeymapKey key_b(0, 0, 1, KC_B);
+ set_keymap({key_a, key_b});
+
+ EXPECT_EMPTY_OR_LSFT(driver).Times(AnyNumber());
+ { // Expect: "A, B, A, B".
+ InSequence s;
+ EXPECT_REPORT(driver, (KC_LSFT, KC_A));
+ EXPECT_REPORT(driver, (KC_LSFT, KC_B));
+ EXPECT_REPORT(driver, (KC_LSFT, KC_A));
+ EXPECT_REPORT(driver, (KC_LSFT, KC_B));
+ }
+
+ caps_word_on();
+
+ key_a.press(); // Overlapping taps: A down, B down, A up, B up.
+ run_one_scan_loop();
+ key_b.press();
+ run_one_scan_loop();
+ key_a.release();
+ run_one_scan_loop();
+ key_b.release();
+ run_one_scan_loop();
+
+ key_a.press(); // Nested taps: A down, B down, B up, A up.
+ run_one_scan_loop();
+ key_b.press();
+ run_one_scan_loop();
+ key_b.release();
+ run_one_scan_loop();
+ key_a.release();
+ run_one_scan_loop();
+
+ caps_word_off();
+ VERIFY_AND_CLEAR(driver);
+}
+
+// Tests that with tap-hold keys with Retro Shift, letter keys are shifted by
+// Caps Word regardless of whether they are retroshifted.
+TEST_F(CapsWord, RetroShiftKeys) {
+ TestDriver driver;
+ KeymapKey key_modtap_a(0, 0, 0, LCTL_T(KC_A));
+ KeymapKey key_layertap_b(0, 1, 0, LT(1, KC_B));
+ set_keymap({key_modtap_a, key_layertap_b});
+
+ EXPECT_EMPTY_OR_LSFT(driver).Times(AnyNumber());
+ { // Expect: "B, A, B, A".
+ InSequence s;
+ EXPECT_REPORT(driver, (KC_LSFT, KC_B));
+ EXPECT_REPORT(driver, (KC_LSFT, KC_A));
+ EXPECT_REPORT(driver, (KC_LSFT, KC_B));
+ EXPECT_REPORT(driver, (KC_LSFT, KC_A));
+ }
+
+ // Turn on Caps Word and type "B, A (long press), B (long press), A".
+ caps_word_on();
+
+ tap_key(key_layertap_b); // Tap B quickly.
+ tap_key(key_modtap_a, TAPPING_TERM + 1); // Long press A.
+ tap_key(key_layertap_b, TAPPING_TERM + 1); // Long press B.
+ tap_key(key_modtap_a); // Tap A quickly.
+
+ EXPECT_EQ(is_caps_word_on(), true);
+ VERIFY_AND_CLEAR(driver);
+}
diff --git a/tests/caps_word/auto_shift/test.mk b/tests/caps_word/auto_shift/test.mk
new file mode 100644
index 0000000000..7f717d7fc1
--- /dev/null
+++ b/tests/caps_word/auto_shift/test.mk
@@ -0,0 +1,18 @@
+# Copyright 2022 Google LLC
+#
+# 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/>.
+
+CAPS_WORD_ENABLE = yes
+AUTO_SHIFT_ENABLE = yes
+
diff --git a/tests/caps_word/auto_shift/test_caps_word_autoshift.cpp b/tests/caps_word/auto_shift/test_caps_word_autoshift.cpp
new file mode 100644
index 0000000000..849b993525
--- /dev/null
+++ b/tests/caps_word/auto_shift/test_caps_word_autoshift.cpp
@@ -0,0 +1,66 @@
+// Copyright 2022 Google LLC
+//
+// 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 "keyboard_report_util.hpp"
+#include "keycode.h"
+#include "test_common.hpp"
+#include "test_fixture.hpp"
+#include "test_keymap_key.hpp"
+
+using ::testing::_;
+using ::testing::AnyNumber;
+using ::testing::AnyOf;
+using ::testing::InSequence;
+
+class CapsWord : public TestFixture {
+ public:
+ void SetUp() override {
+ caps_word_off();
+ }
+};
+
+// Tests that with Auto Shift, letter keys are shifted by Caps Word
+// regardless of whether they are released before AUTO_SHIFT_TIMEOUT.
+TEST_F(CapsWord, AutoShiftKeys) {
+ TestDriver driver;
+ KeymapKey key_a(0, 0, 0, KC_A);
+ KeymapKey key_spc(0, 1, 0, KC_SPC);
+ set_keymap({key_a, key_spc});
+
+ // Allow any number of reports with no keys or only KC_LSFT.
+ // clang-format off
+ EXPECT_CALL(driver, send_keyboard_mock(AnyOf(
+ KeyboardReport(),
+ KeyboardReport(KC_LSFT))))
+ .Times(AnyNumber());
+ // clang-format on
+ { // Expect: "A, A, space, a".
+ InSequence s;
+ EXPECT_REPORT(driver, (KC_LSFT, KC_A));
+ EXPECT_REPORT(driver, (KC_LSFT, KC_A));
+ EXPECT_REPORT(driver, (KC_SPC));
+ EXPECT_REPORT(driver, (KC_A));
+ }
+
+ // Turn on Caps Word and type "A (quick tap), A (long press), space, A".
+ caps_word_on();
+
+ tap_key(key_a); // Tap A quickly.
+ tap_key(key_a, AUTO_SHIFT_TIMEOUT + 1); // Long press A.
+ tap_key(key_spc);
+ tap_key(key_a);
+
+ testing::Mock::VerifyAndClearExpectations(&driver);
+}
diff --git a/tests/caps_word/caps_word_autoshift/test_caps_word_autoshift.cpp b/tests/caps_word/caps_word_autoshift/test_caps_word_autoshift.cpp
deleted file mode 100644
index 01b1a78a5f..0000000000
--- a/tests/caps_word/caps_word_autoshift/test_caps_word_autoshift.cpp
+++ /dev/null
@@ -1,137 +0,0 @@
-// Copyright 2022 Google LLC
-//
-// 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 "keyboard_report_util.hpp"
-#include "keycode.h"
-#include "test_common.hpp"
-#include "test_fixture.hpp"
-#include "test_keymap_key.hpp"
-
-// Allow reports with no keys or only KC_LSFT.
-// clang-format off
-#define EXPECT_EMPTY_OR_LSFT(driver) \
- EXPECT_CALL(driver, send_keyboard_mock(AnyOf( \
- KeyboardReport(), \
- KeyboardReport(KC_LSFT))))
-// clang-format on
-
-using ::testing::_;
-using ::testing::AnyNumber;
-using ::testing::AnyOf;
-using ::testing::InSequence;
-
-class CapsWord : public TestFixture {
- public:
- void SetUp() override {
- caps_word_off();
- }
-};
-
-// Tests that with Auto Shift, letter keys are shifted by Caps Word
-// regardless of whether they are released before AUTO_SHIFT_TIMEOUT.
-TEST_F(CapsWord, AutoShiftKeys) {
- TestDriver driver;
- KeymapKey key_a(0, 0, 0, KC_A);
- KeymapKey key_spc(0, 1, 0, KC_SPC);
- set_keymap({key_a, key_spc});
-
- EXPECT_EMPTY_OR_LSFT(driver).Times(AnyNumber());
- { // Expect: "A, A, space, a".
- InSequence s;
- EXPECT_REPORT(driver, (KC_LSFT, KC_A));
- EXPECT_REPORT(driver, (KC_LSFT, KC_A));
- EXPECT_REPORT(driver, (KC_SPC));
- EXPECT_REPORT(driver, (KC_A));
- }
-
- // Turn on Caps Word and type "A (quick tap), A (long press), space, A".
- caps_word_on();
-
- tap_key(key_a); // Tap A quickly.
- tap_key(key_a, AUTO_SHIFT_TIMEOUT + 1); // Long press A.
- tap_key(key_spc);
- tap_key(key_a);
-
- VERIFY_AND_CLEAR(driver);
-}
-
-// Test Caps Word + Auto Shift where keys A and B are rolled.
-TEST_F(CapsWord, AutoShiftRolledShiftedKeys) {
- TestDriver driver;
- KeymapKey key_a(0, 0, 0, KC_A);
- KeymapKey key_b(0, 0, 1, KC_B);
- set_keymap({key_a, key_b});
-
- EXPECT_EMPTY_OR_LSFT(driver).Times(AnyNumber());
- { // Expect: "A, B, A, B".
- InSequence s;
- EXPECT_REPORT(driver, (KC_LSFT, KC_A));
- EXPECT_REPORT(driver, (KC_LSFT, KC_B));
- EXPECT_REPORT(driver, (KC_LSFT, KC_A));
- EXPECT_REPORT(driver, (KC_LSFT, KC_B));
- }
-
- caps_word_on();
-
- key_a.press(); // Overlapping taps: A down, B down, A up, B up.
- run_one_scan_loop();
- key_b.press();
- run_one_scan_loop();
- key_a.release();
- run_one_scan_loop();
- key_b.release();
- run_one_scan_loop();
-
- key_a.press(); // Nested taps: A down, B down, B up, A up.
- run_one_scan_loop();
- key_b.press();
- run_one_scan_loop();
- key_b.release();
- run_one_scan_loop();
- key_a.release();
- run_one_scan_loop();
-
- caps_word_off();
- VERIFY_AND_CLEAR(driver);
-}
-
-// Tests that with tap-hold keys with Retro Shift, letter keys are shifted by
-// Caps Word regardless of whether they are retroshifted.
-TEST_F(CapsWord, RetroShiftKeys) {
- TestDriver driver;
- KeymapKey key_modtap_a(0, 0, 0, LCTL_T(KC_A));
- KeymapKey key_layertap_b(0, 1, 0, LT(1, KC_B));
- set_keymap({key_modtap_a, key_layertap_b});
-
- EXPECT_EMPTY_OR_LSFT(driver).Times(AnyNumber());
- { // Expect: "B, A, B, A".
- InSequence s;
- EXPECT_REPORT(driver, (KC_LSFT, KC_B));
- EXPECT_REPORT(driver, (KC_LSFT, KC_A));
- EXPECT_REPORT(driver, (KC_LSFT, KC_B));
- EXPECT_REPORT(driver, (KC_LSFT, KC_A));
- }
-
- // Turn on Caps Word and type "B, A (long press), B (long press), A".
- caps_word_on();
-
- tap_key(key_layertap_b); // Tap B quickly.
- tap_key(key_modtap_a, TAPPING_TERM + 1); // Long press A.
- tap_key(key_layertap_b, TAPPING_TERM + 1); // Long press B.
- tap_key(key_modtap_a); // Tap A quickly.
-
- EXPECT_EQ(is_caps_word_on(), true);
- VERIFY_AND_CLEAR(driver);
-}
diff --git a/tests/caps_word/caps_word_unicodemap/config.h b/tests/caps_word/unicodemap/config.h
index 0f770337b1..0f770337b1 100644
--- a/tests/caps_word/caps_word_unicodemap/config.h
+++ b/tests/caps_word/unicodemap/config.h
diff --git a/tests/caps_word/caps_word_unicodemap/test.mk b/tests/caps_word/unicodemap/test.mk
index 92bcba762c..92bcba762c 100644
--- a/tests/caps_word/caps_word_unicodemap/test.mk
+++ b/tests/caps_word/unicodemap/test.mk
diff --git a/tests/caps_word/caps_word_unicodemap/test_caps_word_unicodemap.cpp b/tests/caps_word/unicodemap/test_caps_word_unicodemap.cpp
index 21e5493526..21e5493526 100644
--- a/tests/caps_word/caps_word_unicodemap/test_caps_word_unicodemap.cpp
+++ b/tests/caps_word/unicodemap/test_caps_word_unicodemap.cpp
diff --git a/tests/tap_hold_configurations/default_mod_tap/test.mk b/tests/tap_hold_configurations/default_mod_tap/test.mk
index cfab996e0e..efecca2c22 100644
--- a/tests/tap_hold_configurations/default_mod_tap/test.mk
+++ b/tests/tap_hold_configurations/default_mod_tap/test.mk
@@ -15,4 +15,4 @@
# --------------------------------------------------------------------------------
# Keep this file, even if it is empty, as a marker that this folder contains tests
-# -------------------------------------------------------------------------------- \ No newline at end of file
+# --------------------------------------------------------------------------------
diff --git a/tests/tap_hold_configurations/permissive_hold/config.h b/tests/tap_hold_configurations/permissive_hold/config.h
index 2d5a9849e7..0031c6e5bc 100644
--- a/tests/tap_hold_configurations/permissive_hold/config.h
+++ b/tests/tap_hold_configurations/permissive_hold/config.h
@@ -18,4 +18,4 @@
#include "test_common.h"
-#define PERMISSIVE_HOLD \ No newline at end of file
+#define PERMISSIVE_HOLD
diff --git a/tests/test_common/build.mk b/tests/test_common/build.mk
index aeb3057854..d7423bc78a 100644
--- a/tests/test_common/build.mk
+++ b/tests/test_common/build.mk
@@ -13,4 +13,4 @@
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
-CUSTOM_MATRIX=yes \ No newline at end of file
+CUSTOM_MATRIX=yes
diff --git a/tests/test_common/keyboard_report_util.cpp b/tests/test_common/keyboard_report_util.cpp
index cb7f7ae735..5676483539 100644
--- a/tests/test_common/keyboard_report_util.cpp
+++ b/tests/test_common/keyboard_report_util.cpp
@@ -95,12 +95,12 @@ std::ostream& operator<<(std::ostream& os, const report_keyboard_t& report) {
}
KeyboardReportMatcher::KeyboardReportMatcher(const std::vector<uint8_t>& keys) {
- memset(m_report.raw, 0, sizeof(m_report.raw));
+ memset(&m_report, 0, sizeof(report_keyboard_t));
for (auto k : keys) {
if (IS_MODIFIER_KEYCODE(k)) {
m_report.mods |= MOD_BIT(k);
} else {
- add_key_to_report(&m_report, k);
+ add_key_byte(&m_report, k);
}
}
}
diff --git a/tests/test_common/main.cpp b/tests/test_common/main.cpp
index 0f4e320b07..ac481b8fba 100644
--- a/tests/test_common/main.cpp
+++ b/tests/test_common/main.cpp
@@ -29,4 +29,4 @@ int main(int argc, char **argv) {
init_logging();
return RUN_ALL_TESTS();
-} \ No newline at end of file
+}
diff --git a/tests/test_common/test_common.h b/tests/test_common/test_common.h
index 19ffcddcea..8b93c032b6 100644
--- a/tests/test_common/test_common.h
+++ b/tests/test_common/test_common.h
@@ -1,4 +1,4 @@
#pragma once
#define MATRIX_ROWS 4
-#define MATRIX_COLS 10 \ No newline at end of file
+#define MATRIX_COLS 10
diff --git a/tests/test_common/test_driver.cpp b/tests/test_common/test_driver.cpp
index 0495da8205..d410b225f9 100644
--- a/tests/test_common/test_driver.cpp
+++ b/tests/test_common/test_driver.cpp
@@ -31,7 +31,7 @@ uint8_t hex_digit_to_keycode(uint8_t digit) {
}
} // namespace
-TestDriver::TestDriver() : m_driver{&TestDriver::keyboard_leds, &TestDriver::send_keyboard, &TestDriver::send_mouse, &TestDriver::send_extra} {
+TestDriver::TestDriver() : m_driver{&TestDriver::keyboard_leds, &TestDriver::send_keyboard, &TestDriver::send_nkro, &TestDriver::send_mouse, &TestDriver::send_extra} {
host_set_driver(&m_driver);
m_this = this;
}
@@ -49,6 +49,10 @@ void TestDriver::send_keyboard(report_keyboard_t* report) {
m_this->send_keyboard_mock(*report);
}
+void TestDriver::send_nkro(report_nkro_t* report) {
+ m_this->send_nkro_mock(*report);
+}
+
void TestDriver::send_mouse(report_mouse_t* report) {
m_this->send_mouse_mock(*report);
}
diff --git a/tests/test_common/test_driver.hpp b/tests/test_common/test_driver.hpp
index d8a6885d0f..ec75d3fff2 100644
--- a/tests/test_common/test_driver.hpp
+++ b/tests/test_common/test_driver.hpp
@@ -32,12 +32,14 @@ class TestDriver {
}
MOCK_METHOD1(send_keyboard_mock, void(report_keyboard_t&));
+ MOCK_METHOD1(send_nkro_mock, void(report_nkro_t&));
MOCK_METHOD1(send_mouse_mock, void(report_mouse_t&));
MOCK_METHOD1(send_extra_mock, void(report_extra_t&));
private:
static uint8_t keyboard_leds(void);
static void send_keyboard(report_keyboard_t* report);
+ static void send_nkro(report_nkro_t* report);
static void send_mouse(report_mouse_t* report);
static void send_extra(report_extra_t* report);
host_driver_t m_driver;
diff --git a/tmk_core/protocol.mk b/tmk_core/protocol.mk
index d159dacc55..fd5342d637 100644
--- a/tmk_core/protocol.mk
+++ b/tmk_core/protocol.mk
@@ -46,9 +46,7 @@ else
endif
ifeq ($(strip $(NKRO_ENABLE)), yes)
- ifeq ($(PROTOCOL), VUSB)
- $(info NKRO is not currently supported on V-USB, and has been disabled.)
- else ifeq ($(strip $(BLUETOOTH_ENABLE)), yes)
+ ifeq ($(strip $(BLUETOOTH_ENABLE)), yes)
$(info NKRO is not currently supported with Bluetooth, and has been disabled.)
else
OPT_DEFS += -DNKRO_ENABLE
diff --git a/tmk_core/protocol/arm_atsam/main_arm_atsam.c b/tmk_core/protocol/arm_atsam/main_arm_atsam.c
index 30817c17b6..8abcfd6090 100644
--- a/tmk_core/protocol/arm_atsam/main_arm_atsam.c
+++ b/tmk_core/protocol/arm_atsam/main_arm_atsam.c
@@ -36,6 +36,7 @@ uint8_t g_usb_state = USB_FSMSTATUS_FSMSTATE_OFF_Val; // Saved USB state from ha
void main_subtasks(void);
uint8_t keyboard_leds(void);
void send_keyboard(report_keyboard_t *report);
+void send_nkro(report_nkro_t *report);
void send_mouse(report_mouse_t *report);
void send_extra(report_extra_t *report);
@@ -43,7 +44,7 @@ void send_extra(report_extra_t *report);
void deferred_exec_task(void);
#endif // DEFERRED_EXEC_ENABLE
-host_driver_t arm_atsam_driver = {keyboard_leds, send_keyboard, send_mouse, send_extra};
+host_driver_t arm_atsam_driver = {keyboard_leds, send_keyboard, send_nkro, send_mouse, send_extra};
uint8_t led_states;
@@ -59,41 +60,41 @@ uint8_t keyboard_leds(void) {
void send_keyboard(report_keyboard_t *report) {
uint32_t irqflags;
-#ifdef NKRO_ENABLE
- if (!keymap_config.nkro) {
-#endif // NKRO_ENABLE
- while (udi_hid_kbd_b_report_trans_ongoing) {
- main_subtasks();
- } // Run other tasks while waiting for USB to be free
+ while (udi_hid_kbd_b_report_trans_ongoing) {
+ main_subtasks();
+ } // Run other tasks while waiting for USB to be free
- irqflags = __get_PRIMASK();
- __disable_irq();
- __DMB();
+ irqflags = __get_PRIMASK();
+ __disable_irq();
+ __DMB();
- memcpy(udi_hid_kbd_report, report->raw, UDI_HID_KBD_REPORT_SIZE);
- udi_hid_kbd_b_report_valid = 1;
- udi_hid_kbd_send_report();
+ memcpy(udi_hid_kbd_report, report, UDI_HID_KBD_REPORT_SIZE);
+ udi_hid_kbd_b_report_valid = 1;
+ udi_hid_kbd_send_report();
- __DMB();
- __set_PRIMASK(irqflags);
+ __DMB();
+ __set_PRIMASK(irqflags);
+}
+
+void send_nkro(report_nkro_t *report) {
#ifdef NKRO_ENABLE
- } else {
- while (udi_hid_nkro_b_report_trans_ongoing) {
- main_subtasks();
- } // Run other tasks while waiting for USB to be free
+ uint32_t irqflags;
- irqflags = __get_PRIMASK();
- __disable_irq();
- __DMB();
+ while (udi_hid_nkro_b_report_trans_ongoing) {
+ main_subtasks();
+ } // Run other tasks while waiting for USB to be free
- memcpy(udi_hid_nkro_report, report->raw, UDI_HID_NKRO_REPORT_SIZE);
- udi_hid_nkro_b_report_valid = 1;
- udi_hid_nkro_send_report();
+ irqflags = __get_PRIMASK();
+ __disable_irq();
+ __DMB();
- __DMB();
- __set_PRIMASK(irqflags);
- }
-#endif // NKRO_ENABLE
+ memcpy(udi_hid_nkro_report, report, UDI_HID_NKRO_REPORT_SIZE);
+ udi_hid_nkro_b_report_valid = 1;
+ udi_hid_nkro_send_report();
+
+ __DMB();
+ __set_PRIMASK(irqflags);
+#endif
}
void send_mouse(report_mouse_t *report) {
diff --git a/tmk_core/protocol/arm_atsam/usb/udi_device_epsize.h b/tmk_core/protocol/arm_atsam/usb/udi_device_epsize.h
index 7a9ed31930..47bd02c074 100644
--- a/tmk_core/protocol/arm_atsam/usb/udi_device_epsize.h
+++ b/tmk_core/protocol/arm_atsam/usb/udi_device_epsize.h
@@ -19,7 +19,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define _UDI_DEVICE_EPSIZE_H_
#define KEYBOARD_EPSIZE 8
-#define MOUSE_EPSIZE 8
+#define MOUSE_EPSIZE 16
#define EXTRAKEY_EPSIZE 8
#define RAW_EPSIZE 32
#define CONSOLE_EPSIZE 32
diff --git a/tmk_core/protocol/chibios/chibios.c b/tmk_core/protocol/chibios/chibios.c
index 4d97f1cd82..91bb252c7c 100644
--- a/tmk_core/protocol/chibios/chibios.c
+++ b/tmk_core/protocol/chibios/chibios.c
@@ -59,11 +59,12 @@
/* declarations */
uint8_t keyboard_leds(void);
void send_keyboard(report_keyboard_t *report);
+void send_nkro(report_nkro_t *report);
void send_mouse(report_mouse_t *report);
void send_extra(report_extra_t *report);
/* host struct */
-host_driver_t chibios_driver = {keyboard_leds, send_keyboard, send_mouse, send_extra};
+host_driver_t chibios_driver = {keyboard_leds, send_keyboard, send_nkro, send_mouse, send_extra};
#ifdef VIRTSER_ENABLE
void virtser_task(void);
diff --git a/tmk_core/protocol/chibios/usb_main.c b/tmk_core/protocol/chibios/usb_main.c
index b14ca30c1a..66f9ad0318 100644
--- a/tmk_core/protocol/chibios/usb_main.c
+++ b/tmk_core/protocol/chibios/usb_main.c
@@ -43,6 +43,7 @@
#include "usb_device_state.h"
#include "usb_descriptor.h"
#include "usb_driver.h"
+#include "usb_types.h"
#ifdef NKRO_ENABLE
# include "keycode_config.h"
@@ -71,7 +72,7 @@ static virtual_timer_t keyboard_idle_timer;
static void keyboard_idle_timer_cb(struct ch_virtual_timer *, void *arg);
-report_keyboard_t keyboard_report_sent = {{0}};
+report_keyboard_t keyboard_report_sent = {0};
report_mouse_t mouse_report_sent = {0};
union {
@@ -103,30 +104,18 @@ union {
NULL, /* SETUP buffer (not a SETUP endpoint) */
#endif
-/* HID specific constants */
-#define HID_GET_REPORT 0x01
-#define HID_GET_IDLE 0x02
-#define HID_GET_PROTOCOL 0x03
-#define HID_SET_REPORT 0x09
-#define HID_SET_IDLE 0x0A
-#define HID_SET_PROTOCOL 0x0B
-
-/*
- * Handles the GET_DESCRIPTOR callback
- *
- * Returns the proper descriptor
- */
static const USBDescriptor *usb_get_descriptor_cb(USBDriver *usbp, uint8_t dtype, uint8_t dindex, uint16_t wIndex) {
- (void)usbp;
- static USBDescriptor desc;
- uint16_t wValue = ((uint16_t)dtype << 8) | dindex;
- uint16_t wLength = ((uint16_t)usbp->setup[7] << 8) | usbp->setup[6];
- desc.ud_string = NULL;
- desc.ud_size = get_usb_descriptor(wValue, wIndex, wLength, (const void **const) & desc.ud_string);
- if (desc.ud_string == NULL)
+ usb_control_request_t *setup = (usb_control_request_t *)usbp->setup;
+
+ static USBDescriptor descriptor;
+ descriptor.ud_string = NULL;
+ descriptor.ud_size = get_usb_descriptor(setup->wValue.word, setup->wIndex, setup->wLength, (const void **const) & descriptor.ud_string);
+
+ if (descriptor.ud_string == NULL) {
return NULL;
- else
- return &desc;
+ }
+
+ return &descriptor;
}
/*
@@ -497,8 +486,7 @@ void usb_event_queue_task(void) {
}
}
-/* Handles the USB driver global events
- * TODO: maybe disable some things when connection is lost? */
+/* Handles the USB driver global events. */
static void usb_event_cb(USBDriver *usbp, usbevent_t event) {
switch (event) {
case USB_EVENT_ADDRESS:
@@ -570,16 +558,6 @@ static void usb_event_cb(USBDriver *usbp, usbevent_t event) {
}
}
-/* Function used locally in os/hal/src/usb.c for getting descriptors
- * need it here for HID descriptor */
-static uint16_t get_hword(uint8_t *p) {
- uint16_t hw;
-
- hw = (uint16_t)*p++;
- hw |= (uint16_t)*p << 8U;
- return hw;
-}
-
/*
* Appendix G: HID Request Support Requirements
*
@@ -596,7 +574,9 @@ static uint16_t get_hword(uint8_t *p) {
static uint8_t set_report_buf[2] __attribute__((aligned(4)));
static void set_led_transfer_cb(USBDriver *usbp) {
- if (usbp->setup[6] == 2) { /* LSB(wLength) */
+ usb_control_request_t *setup = (usb_control_request_t *)usbp->setup;
+
+ if (setup->wLength == 2) {
uint8_t report_id = set_report_buf[0];
if ((report_id == REPORT_ID_KEYBOARD) || (report_id == REPORT_ID_NKRO)) {
keyboard_led_state = set_report_buf[1];
@@ -606,24 +586,16 @@ static void set_led_transfer_cb(USBDriver *usbp) {
}
}
-/* Callback for SETUP request on the endpoint 0 (control) */
-static bool usb_request_hook_cb(USBDriver *usbp) {
- const USBDescriptor *dp;
-
- /* usbp->setup fields:
- * 0: bmRequestType (bitmask)
- * 1: bRequest
- * 2,3: (LSB,MSB) wValue
- * 4,5: (LSB,MSB) wIndex
- * 6,7: (LSB,MSB) wLength (number of bytes to transfer if there is a data phase) */
+static bool usb_requests_hook_cb(USBDriver *usbp) {
+ usb_control_request_t *setup = (usb_control_request_t *)usbp->setup;
/* Handle HID class specific requests */
- if (((usbp->setup[0] & USB_RTYPE_TYPE_MASK) == USB_RTYPE_TYPE_CLASS) && ((usbp->setup[0] & USB_RTYPE_RECIPIENT_MASK) == USB_RTYPE_RECIPIENT_INTERFACE)) {
- switch (usbp->setup[0] & USB_RTYPE_DIR_MASK) {
+ if ((setup->bmRequestType & (USB_RTYPE_TYPE_MASK | USB_RTYPE_RECIPIENT_MASK)) == (USB_RTYPE_TYPE_CLASS | USB_RTYPE_RECIPIENT_INTERFACE)) {
+ switch (setup->bmRequestType & USB_RTYPE_DIR_MASK) {
case USB_RTYPE_DIR_DEV2HOST:
- switch (usbp->setup[1]) { /* bRequest */
- case HID_GET_REPORT:
- switch (usbp->setup[4]) { /* LSB(wIndex) (check MSB==0?) */
+ switch (setup->bRequest) {
+ case HID_REQ_GetReport:
+ switch (setup->wIndex) {
#ifndef KEYBOARD_SHARED_EP
case KEYBOARD_INTERFACE:
usbSetupTransfer(usbp, (uint8_t *)&keyboard_report_sent, KEYBOARD_REPORT_SIZE, NULL);
@@ -639,59 +611,54 @@ static bool usb_request_hook_cb(USBDriver *usbp) {
#ifdef SHARED_EP_ENABLE
case SHARED_INTERFACE:
# ifdef KEYBOARD_SHARED_EP
- if (usbp->setup[2] == REPORT_ID_KEYBOARD) {
+ if (setup->wValue.lbyte == REPORT_ID_KEYBOARD) {
usbSetupTransfer(usbp, (uint8_t *)&keyboard_report_sent, KEYBOARD_REPORT_SIZE, NULL);
- return TRUE;
- break;
+ return true;
}
# endif
# ifdef MOUSE_SHARED_EP
- if (usbp->setup[2] == REPORT_ID_MOUSE) {
+ if (setup->wValue.lbyte == REPORT_ID_MOUSE) {
usbSetupTransfer(usbp, (uint8_t *)&mouse_report_sent, sizeof(mouse_report_sent), NULL);
- return TRUE;
- break;
+ return true;
}
# endif
#endif /* SHARED_EP_ENABLE */
default:
- universal_report_blank.report_id = usbp->setup[2];
- usbSetupTransfer(usbp, (uint8_t *)&universal_report_blank, usbp->setup[6], NULL);
- return TRUE;
- break;
+ universal_report_blank.report_id = setup->wValue.lbyte;
+ usbSetupTransfer(usbp, (uint8_t *)&universal_report_blank, setup->wLength, NULL);
+ return true;
}
break;
- case HID_GET_PROTOCOL:
- if ((usbp->setup[4] == KEYBOARD_INTERFACE) && (usbp->setup[5] == 0)) { /* wIndex */
- usbSetupTransfer(usbp, &keyboard_protocol, 1, NULL);
- return TRUE;
+ case HID_REQ_GetProtocol:
+ if (setup->wIndex == KEYBOARD_INTERFACE) {
+ usbSetupTransfer(usbp, &keyboard_protocol, sizeof(uint8_t), NULL);
+ return true;
}
break;
- case HID_GET_IDLE:
- usbSetupTransfer(usbp, &keyboard_idle, 1, NULL);
- return TRUE;
- break;
+ case HID_REQ_GetIdle:
+ usbSetupTransfer(usbp, &keyboard_idle, sizeof(uint8_t), NULL);
+ return true;
}
break;
case USB_RTYPE_DIR_HOST2DEV:
- switch (usbp->setup[1]) { /* bRequest */
- case HID_SET_REPORT:
- switch (usbp->setup[4]) { /* LSB(wIndex) (check MSB==0?) */
+ switch (setup->bRequest) {
+ case HID_REQ_SetReport:
+ switch (setup->wIndex) {
case KEYBOARD_INTERFACE:
#if defined(SHARED_EP_ENABLE) && !defined(KEYBOARD_SHARED_EP)
case SHARED_INTERFACE:
#endif
usbSetupTransfer(usbp, set_report_buf, sizeof(set_report_buf), set_led_transfer_cb);
- return TRUE;
- break;
+ return true;
}
break;
- case HID_SET_PROTOCOL:
- if ((usbp->setup[4] == KEYBOARD_INTERFACE) && (usbp->setup[5] == 0)) { /* wIndex */
- keyboard_protocol = ((usbp->setup[2]) != 0x00); /* LSB(wValue) */
+ case HID_REQ_SetProtocol:
+ if (setup->wIndex == KEYBOARD_INTERFACE) {
+ keyboard_protocol = setup->wValue.word;
#ifdef NKRO_ENABLE
if (!keyboard_protocol && keyboard_idle) {
#else /* NKRO_ENABLE */
@@ -704,12 +671,11 @@ static bool usb_request_hook_cb(USBDriver *usbp) {
}
}
usbSetupTransfer(usbp, NULL, 0, NULL);
- return TRUE;
- break;
+ return true;
- case HID_SET_IDLE:
- keyboard_idle = usbp->setup[3]; /* MSB(wValue) */
- /* arm the timer */
+ case HID_REQ_SetIdle:
+ keyboard_idle = setup->wValue.hbyte;
+ /* arm the timer */
#ifdef NKRO_ENABLE
if (!keymap_config.nkro && keyboard_idle) {
#else /* NKRO_ENABLE */
@@ -720,19 +686,21 @@ static bool usb_request_hook_cb(USBDriver *usbp) {
osalSysUnlockFromISR();
}
usbSetupTransfer(usbp, NULL, 0, NULL);
- return TRUE;
- break;
+ return true;
}
break;
}
}
- /* Handle the Get_Descriptor Request for HID class (not handled by the default hook) */
- if ((usbp->setup[0] == 0x81) && (usbp->setup[1] == USB_REQ_GET_DESCRIPTOR)) {
- dp = usbp->config->get_descriptor_cb(usbp, usbp->setup[3], usbp->setup[2], get_hword(&usbp->setup[4]));
- if (dp == NULL) return FALSE;
- usbSetupTransfer(usbp, (uint8_t *)dp->ud_string, dp->ud_size, NULL);
- return TRUE;
+ /* Handle the Get_Descriptor Request for HID class, which is not handled by
+ * the ChibiOS USB driver */
+ if (((setup->bmRequestType & (USB_RTYPE_DIR_MASK | USB_RTYPE_RECIPIENT_MASK)) == (USB_RTYPE_DIR_DEV2HOST | USB_RTYPE_RECIPIENT_INTERFACE)) && (setup->bRequest == USB_REQ_GET_DESCRIPTOR)) {
+ const USBDescriptor *descriptor = usbp->config->get_descriptor_cb(usbp, setup->wValue.lbyte, setup->wValue.hbyte, setup->wIndex);
+ if (descriptor == NULL) {
+ return false;
+ }
+ usbSetupTransfer(usbp, (uint8_t *)descriptor->ud_string, descriptor->ud_size, NULL);
+ return true;
}
for (int i = 0; i < NUM_USB_DRIVERS; i++) {
@@ -742,10 +710,9 @@ static bool usb_request_hook_cb(USBDriver *usbp) {
}
}
- return FALSE;
+ return false;
}
-/* Start-of-frame callback */
static void usb_sof_cb(USBDriver *usbp) {
osalSysLockFromISR();
for (int i = 0; i < NUM_USB_DRIVERS; i++) {
@@ -758,7 +725,7 @@ static void usb_sof_cb(USBDriver *usbp) {
static const USBConfig usbcfg = {
usb_event_cb, /* USB events callback */
usb_get_descriptor_cb, /* Device GET_DESCRIPTOR request callback */
- usb_request_hook_cb, /* Requests hook callback */
+ usb_requests_hook_cb, /* Requests hook callback */
usb_sof_cb /* Start Of Frame callback */
};
@@ -883,26 +850,22 @@ void send_report(uint8_t endpoint, void *report, size_t size) {
/* prepare and start sending a report IN
* not callable from ISR or locked state */
void send_keyboard(report_keyboard_t *report) {
- uint8_t ep = KEYBOARD_IN_EPNUM;
- size_t size = KEYBOARD_REPORT_SIZE;
-
/* If we're in Boot Protocol, don't send any report ID or other funky fields */
if (!keyboard_protocol) {
- send_report(ep, &report->mods, 8);
+ send_report(KEYBOARD_IN_EPNUM, &report->mods, 8);
} else {
-#ifdef NKRO_ENABLE
- if (keymap_config.nkro) {
- ep = SHARED_IN_EPNUM;
- size = sizeof(struct nkro_report);
- }
-#endif
-
- send_report(ep, report, size);
+ send_report(KEYBOARD_IN_EPNUM, report, KEYBOARD_REPORT_SIZE);
}
keyboard_report_sent = *report;
}
+void send_nkro(report_nkro_t *report) {
+#ifdef NKRO_ENABLE
+ send_report(SHARED_IN_EPNUM, report, sizeof(report_nkro_t));
+#endif
+}
+
/* ---------------------------------------------------------
* Mouse functions
* ---------------------------------------------------------
diff --git a/tmk_core/protocol/host.c b/tmk_core/protocol/host.c
index 2c6654e9a6..732fbdc37d 100644
--- a/tmk_core/protocol/host.c
+++ b/tmk_core/protocol/host.c
@@ -81,26 +81,29 @@ void host_keyboard_send(report_keyboard_t *report) {
#endif
if (!driver) return;
-#if defined(NKRO_ENABLE) && defined(NKRO_SHARED_EP)
- if (keyboard_protocol && keymap_config.nkro) {
- /* The callers of this function assume that report->mods is where mods go in.
- * But report->nkro.mods can be at a different offset if core keyboard does not have a report ID.
- */
- report->nkro.mods = report->mods;
- report->nkro.report_id = REPORT_ID_NKRO;
- } else
-#endif
- {
#ifdef KEYBOARD_SHARED_EP
- report->report_id = REPORT_ID_KEYBOARD;
+ report->report_id = REPORT_ID_KEYBOARD;
#endif
- }
(*driver->send_keyboard)(report);
if (debug_keyboard) {
- dprint("keyboard_report: ");
- for (uint8_t i = 0; i < KEYBOARD_REPORT_SIZE; i++) {
- dprintf("%02X ", report->raw[i]);
+ dprintf("keyboard_report: %02X | ", report->mods);
+ for (uint8_t i = 0; i < KEYBOARD_REPORT_KEYS; i++) {
+ dprintf("%02X ", report->keys[i]);
+ }
+ dprint("\n");
+ }
+}
+
+void host_nkro_send(report_nkro_t *report) {
+ if (!driver) return;
+ report->report_id = REPORT_ID_NKRO;
+ (*driver->send_nkro)(report);
+
+ if (debug_keyboard) {
+ dprintf("nkro_report: %02X | ", report->mods);
+ for (uint8_t i = 0; i < NKRO_REPORT_BITS; i++) {
+ dprintf("%02X ", report->bits[i]);
}
dprint("\n");
}
diff --git a/tmk_core/protocol/host.h b/tmk_core/protocol/host.h
index add408caf6..959753ae02 100644
--- a/tmk_core/protocol/host.h
+++ b/tmk_core/protocol/host.h
@@ -23,9 +23,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#include "host_driver.h"
#include "led.h"
-#define IS_LED_ON(leds, led_name) ((leds) & (1 << (led_name)))
-#define IS_LED_OFF(leds, led_name) (~(leds) & (1 << (led_name)))
-
#ifdef __cplusplus
extern "C" {
#endif
@@ -41,6 +38,7 @@ host_driver_t *host_get_driver(void);
uint8_t host_keyboard_leds(void);
led_t host_keyboard_led_state(void);
void host_keyboard_send(report_keyboard_t *report);
+void host_nkro_send(report_nkro_t *report);
void host_mouse_send(report_mouse_t *report);
void host_system_send(uint16_t usage);
void host_consumer_send(uint16_t usage);
diff --git a/tmk_core/protocol/host_driver.h b/tmk_core/protocol/host_driver.h
index 7dc6c3d810..8aa38b6dee 100644
--- a/tmk_core/protocol/host_driver.h
+++ b/tmk_core/protocol/host_driver.h
@@ -26,6 +26,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
typedef struct {
uint8_t (*keyboard_leds)(void);
void (*send_keyboard)(report_keyboard_t *);
+ void (*send_nkro)(report_nkro_t *);
void (*send_mouse)(report_mouse_t *);
void (*send_extra)(report_extra_t *);
} host_driver_t;
diff --git a/tmk_core/protocol/lufa/lufa.c b/tmk_core/protocol/lufa/lufa.c
index f04ca79a0c..553f69b1e4 100644
--- a/tmk_core/protocol/lufa/lufa.c
+++ b/tmk_core/protocol/lufa/lufa.c
@@ -55,12 +55,6 @@
#include "usb_device_state.h"
#include <util/atomic.h>
-#ifdef NKRO_ENABLE
-# include "keycode_config.h"
-
-extern keymap_config_t keymap_config;
-#endif
-
#ifdef VIRTSER_ENABLE
# include "virtser.h"
#endif
@@ -83,9 +77,10 @@ static report_keyboard_t keyboard_report_sent;
/* Host driver */
static uint8_t keyboard_leds(void);
static void send_keyboard(report_keyboard_t *report);
+static void send_nkro(report_nkro_t *report);
static void send_mouse(report_mouse_t *report);
static void send_extra(report_extra_t *report);
-host_driver_t lufa_driver = {keyboard_leds, send_keyboard, send_mouse, send_extra};
+host_driver_t lufa_driver = {keyboard_leds, send_keyboard, send_nkro, send_mouse, send_extra};
void send_report(uint8_t endpoint, void *report, size_t size) {
uint8_t timeout = 255;
@@ -559,27 +554,26 @@ static uint8_t keyboard_leds(void) {
* FIXME: Needs doc
*/
static void send_keyboard(report_keyboard_t *report) {
- /* Select the Keyboard Report Endpoint */
- uint8_t ep = KEYBOARD_IN_EPNUM;
- uint8_t size = KEYBOARD_REPORT_SIZE;
-
/* If we're in Boot Protocol, don't send any report ID or other funky fields */
if (!keyboard_protocol) {
- send_report(ep, &report->mods, 8);
+ send_report(KEYBOARD_IN_EPNUM, &report->mods, 8);
} else {
-#ifdef NKRO_ENABLE
- if (keymap_config.nkro) {
- ep = SHARED_IN_EPNUM;
- size = sizeof(struct nkro_report);
- }
-#endif
-
- send_report(ep, report, size);
+ send_report(KEYBOARD_IN_EPNUM, report, KEYBOARD_REPORT_SIZE);
}
keyboard_report_sent = *report;
}
+/** \brief Send NKRO
+ *
+ * FIXME: Needs doc
+ */
+static void send_nkro(report_nkro_t *report) {
+#ifdef NKRO_ENABLE
+ send_report(SHARED_IN_EPNUM, report, sizeof(report_nkro_t));
+#endif
+}
+
/** \brief Send Mouse
*
* FIXME: Needs doc
diff --git a/tmk_core/protocol/report.c b/tmk_core/protocol/report.c
index 1ba3be4604..0166bf654f 100644
--- a/tmk_core/protocol/report.c
+++ b/tmk_core/protocol/report.c
@@ -15,6 +15,7 @@
*/
#include "report.h"
+#include "action_util.h"
#include "host.h"
#include "keycode_config.h"
#include "debug.h"
@@ -35,14 +36,14 @@ static int8_t cb_count = 0;
*
* FIXME: Needs doc
*/
-uint8_t has_anykey(report_keyboard_t* keyboard_report) {
+uint8_t has_anykey(void) {
uint8_t cnt = 0;
uint8_t* p = keyboard_report->keys;
uint8_t lp = sizeof(keyboard_report->keys);
#ifdef NKRO_ENABLE
if (keyboard_protocol && keymap_config.nkro) {
- p = keyboard_report->nkro.bits;
- lp = sizeof(keyboard_report->nkro.bits);
+ p = nkro_report->bits;
+ lp = sizeof(nkro_report->bits);
}
#endif
while (lp--) {
@@ -55,13 +56,13 @@ uint8_t has_anykey(report_keyboard_t* keyboard_report) {
*
* FIXME: Needs doc
*/
-uint8_t get_first_key(report_keyboard_t* keyboard_report) {
+uint8_t get_first_key(void) {
#ifdef NKRO_ENABLE
if (keyboard_protocol && keymap_config.nkro) {
uint8_t i = 0;
- for (; i < KEYBOARD_REPORT_BITS && !keyboard_report->nkro.bits[i]; i++)
+ for (; i < NKRO_REPORT_BITS && !nkro_report->bits[i]; i++)
;
- return i << 3 | biton(keyboard_report->nkro.bits[i]);
+ return i << 3 | biton(nkro_report->bits[i]);
}
#endif
#ifdef RING_BUFFERED_6KRO_REPORT_ENABLE
@@ -83,14 +84,14 @@ uint8_t get_first_key(report_keyboard_t* keyboard_report) {
* Returns true if the keyboard_report reports that the key is pressed, otherwise false
* Note: The function doesn't support modifers currently, and it returns false for KC_NO
*/
-bool is_key_pressed(report_keyboard_t* keyboard_report, uint8_t key) {
+bool is_key_pressed(uint8_t key) {
if (key == KC_NO) {
return false;
}
#ifdef NKRO_ENABLE
if (keyboard_protocol && keymap_config.nkro) {
- if ((key >> 3) < KEYBOARD_REPORT_BITS) {
- return keyboard_report->nkro.bits[key >> 3] & 1 << (key & 7);
+ if ((key >> 3) < NKRO_REPORT_BITS) {
+ return nkro_report->bits[key >> 3] & 1 << (key & 7);
} else {
return false;
}
@@ -215,9 +216,9 @@ void del_key_byte(report_keyboard_t* keyboard_report, uint8_t code) {
*
* FIXME: Needs doc
*/
-void add_key_bit(report_keyboard_t* keyboard_report, uint8_t code) {
- if ((code >> 3) < KEYBOARD_REPORT_BITS) {
- keyboard_report->nkro.bits[code >> 3] |= 1 << (code & 7);
+void add_key_bit(report_nkro_t* nkro_report, uint8_t code) {
+ if ((code >> 3) < NKRO_REPORT_BITS) {
+ nkro_report->bits[code >> 3] |= 1 << (code & 7);
} else {
dprintf("add_key_bit: can't add: %02X\n", code);
}
@@ -227,9 +228,9 @@ void add_key_bit(report_keyboard_t* keyboard_report, uint8_t code) {
*
* FIXME: Needs doc
*/
-void del_key_bit(report_keyboard_t* keyboard_report, uint8_t code) {
- if ((code >> 3) < KEYBOARD_REPORT_BITS) {
- keyboard_report->nkro.bits[code >> 3] &= ~(1 << (code & 7));
+void del_key_bit(report_nkro_t* nkro_report, uint8_t code) {
+ if ((code >> 3) < NKRO_REPORT_BITS) {
+ nkro_report->bits[code >> 3] &= ~(1 << (code & 7));
} else {
dprintf("del_key_bit: can't del: %02X\n", code);
}
@@ -240,10 +241,10 @@ void del_key_bit(report_keyboard_t* keyboard_report, uint8_t code) {
*
* FIXME: Needs doc
*/
-void add_key_to_report(report_keyboard_t* keyboard_report, uint8_t key) {
+void add_key_to_report(uint8_t key) {
#ifdef NKRO_ENABLE
if (keyboard_protocol && keymap_config.nkro) {
- add_key_bit(keyboard_report, key);
+ add_key_bit(nkro_report, key);
return;
}
#endif
@@ -254,10 +255,10 @@ void add_key_to_report(report_keyboard_t* keyboard_report, uint8_t key) {
*
* FIXME: Needs doc
*/
-void del_key_from_report(report_keyboard_t* keyboard_report, uint8_t key) {
+void del_key_from_report(uint8_t key) {
#ifdef NKRO_ENABLE
if (keyboard_protocol && keymap_config.nkro) {
- del_key_bit(keyboard_report, key);
+ del_key_bit(nkro_report, key);
return;
}
#endif
@@ -268,11 +269,11 @@ void del_key_from_report(report_keyboard_t* keyboard_report, uint8_t key) {
*
* FIXME: Needs doc
*/
-void clear_keys_from_report(report_keyboard_t* keyboard_report) {
+void clear_keys_from_report(void) {
// not clear mods
#ifdef NKRO_ENABLE
if (keyboard_protocol && keymap_config.nkro) {
- memset(keyboard_report->nkro.bits, 0, sizeof(keyboard_report->nkro.bits));
+ memset(nkro_report->bits, 0, sizeof(nkro_report->bits));
return;
}
#endif
diff --git a/tmk_core/protocol/report.h b/tmk_core/protocol/report.h
index 9d415a3bfd..3028cf9426 100644
--- a/tmk_core/protocol/report.h
+++ b/tmk_core/protocol/report.h
@@ -20,6 +20,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#include <stdint.h>
#include <stdbool.h>
#include "keycode.h"
+#include "util.h"
// clang-format off
@@ -54,9 +55,9 @@ enum mouse_buttons {
*/
enum consumer_usages {
// 15.5 Display Controls
- SNAPSHOT = 0x065,
- BRIGHTNESS_UP = 0x06F, // https://www.usb.org/sites/default/files/hutrr41_0.pdf
- BRIGHTNESS_DOWN = 0x070,
+ SNAPSHOT = 0x065,
+ BRIGHTNESS_UP = 0x06F, // https://www.usb.org/sites/default/files/hutrr41_0.pdf
+ BRIGHTNESS_DOWN = 0x070,
// 15.7 Transport Controls
TRANSPORT_RECORD = 0x0B2,
TRANSPORT_FAST_FORWARD = 0x0B3,
@@ -69,43 +70,44 @@ enum consumer_usages {
TRANSPORT_STOP_EJECT = 0x0CC,
TRANSPORT_PLAY_PAUSE = 0x0CD,
// 15.9.1 Audio Controls - Volume
- AUDIO_MUTE = 0x0E2,
- AUDIO_VOL_UP = 0x0E9,
- AUDIO_VOL_DOWN = 0x0EA,
+ AUDIO_MUTE = 0x0E2,
+ AUDIO_VOL_UP = 0x0E9,
+ AUDIO_VOL_DOWN = 0x0EA,
// 15.15 Application Launch Buttons
- AL_CC_CONFIG = 0x183,
- AL_EMAIL = 0x18A,
- AL_CALCULATOR = 0x192,
- AL_LOCAL_BROWSER = 0x194,
- AL_LOCK = 0x19E,
- AL_CONTROL_PANEL = 0x19F,
- AL_ASSISTANT = 0x1CB,
- AL_KEYBOARD_LAYOUT = 0x1AE,
+ AL_CC_CONFIG = 0x183,
+ AL_EMAIL = 0x18A,
+ AL_CALCULATOR = 0x192,
+ AL_LOCAL_BROWSER = 0x194,
+ AL_LOCK = 0x19E,
+ AL_CONTROL_PANEL = 0x19F,
+ AL_ASSISTANT = 0x1CB,
+ AL_KEYBOARD_LAYOUT = 0x1AE,
// 15.16 Generic GUI Application Controls
- AC_NEW = 0x201,
- AC_OPEN = 0x202,
- AC_CLOSE = 0x203,
- AC_EXIT = 0x204,
- AC_MAXIMIZE = 0x205,
- AC_MINIMIZE = 0x206,
- AC_SAVE = 0x207,
- AC_PRINT = 0x208,
- AC_PROPERTIES = 0x209,
- AC_UNDO = 0x21A,
- AC_COPY = 0x21B,
- AC_CUT = 0x21C,
- AC_PASTE = 0x21D,
- AC_SELECT_ALL = 0x21E,
- AC_FIND = 0x21F,
- AC_SEARCH = 0x221,
- AC_HOME = 0x223,
- AC_BACK = 0x224,
- AC_FORWARD = 0x225,
- AC_STOP = 0x226,
- AC_REFRESH = 0x227,
- AC_BOOKMARKS = 0x22A,
- AC_MISSION_CONTROL = 0x29F,
- AC_LAUNCHPAD = 0x2A0
+ AC_NEW = 0x201,
+ AC_OPEN = 0x202,
+ AC_CLOSE = 0x203,
+ AC_EXIT = 0x204,
+ AC_MAXIMIZE = 0x205,
+ AC_MINIMIZE = 0x206,
+ AC_SAVE = 0x207,
+ AC_PRINT = 0x208,
+ AC_PROPERTIES = 0x209,
+ AC_UNDO = 0x21A,
+ AC_COPY = 0x21B,
+ AC_CUT = 0x21C,
+ AC_PASTE = 0x21D,
+ AC_SELECT_ALL = 0x21E,
+ AC_FIND = 0x21F,
+ AC_SEARCH = 0x221,
+ AC_HOME = 0x223,
+ AC_BACK = 0x224,
+ AC_FORWARD = 0x225,
+ AC_STOP = 0x226,
+ AC_REFRESH = 0x227,
+ AC_BOOKMARKS = 0x22A,
+ AC_NEXT_KEYBOARD_LAYOUT_SELECT = 0x29D,
+ AC_DESKTOP_SHOW_ALL_WINDOWS = 0x29F,
+ AC_SOFT_KEY_LEFT = 0x2A0
};
/* Generic Desktop Page (0x01)
@@ -124,21 +126,7 @@ enum desktop_usages {
// clang-format on
-#define NKRO_SHARED_EP
-/* key report size(NKRO or boot mode) */
-#if defined(NKRO_ENABLE)
-# if defined(PROTOCOL_LUFA) || defined(PROTOCOL_CHIBIOS)
-# include "protocol/usb_descriptor.h"
-# define KEYBOARD_REPORT_BITS (SHARED_EPSIZE - 2)
-# elif defined(PROTOCOL_ARM_ATSAM)
-# include "protocol/arm_atsam/usb/udi_device_epsize.h"
-# define KEYBOARD_REPORT_BITS (NKRO_EPSIZE - 1)
-# undef NKRO_SHARED_EP
-# undef MOUSE_SHARED_EP
-# else
-# error "NKRO not supported with this protocol"
-# endif
-#endif
+#define NKRO_REPORT_BITS 30
#ifdef KEYBOARD_SHARED_EP
# define KEYBOARD_REPORT_SIZE 9
@@ -172,36 +160,30 @@ extern "C" {
* desc |Lcontrol|Lshift |Lalt |Lgui |Rcontrol|Rshift |Ralt |Rgui
*
*/
-typedef union {
- uint8_t raw[KEYBOARD_REPORT_SIZE];
- struct {
+typedef struct {
#ifdef KEYBOARD_SHARED_EP
- uint8_t report_id;
-#endif
- uint8_t mods;
- uint8_t reserved;
- uint8_t keys[KEYBOARD_REPORT_KEYS];
- };
-#ifdef NKRO_ENABLE
- struct nkro_report {
-# ifdef NKRO_SHARED_EP
- uint8_t report_id;
-# endif
- uint8_t mods;
- uint8_t bits[KEYBOARD_REPORT_BITS];
- } nkro;
+ uint8_t report_id;
#endif
-} __attribute__((packed)) report_keyboard_t;
+ uint8_t mods;
+ uint8_t reserved;
+ uint8_t keys[KEYBOARD_REPORT_KEYS];
+} PACKED report_keyboard_t;
+
+typedef struct {
+ uint8_t report_id;
+ uint8_t mods;
+ uint8_t bits[NKRO_REPORT_BITS];
+} PACKED report_nkro_t;
typedef struct {
uint8_t report_id;
uint16_t usage;
-} __attribute__((packed)) report_extra_t;
+} PACKED report_extra_t;
typedef struct {
uint8_t report_id;
uint32_t usage;
-} __attribute__((packed)) report_programmable_button_t;
+} PACKED report_programmable_button_t;
#ifdef MOUSE_EXTENDED_REPORT
typedef int16_t mouse_xy_report_t;
@@ -222,7 +204,7 @@ typedef struct {
mouse_xy_report_t y;
int8_t v;
int8_t h;
-} __attribute__((packed)) report_mouse_t;
+} PACKED report_mouse_t;
typedef struct {
#ifdef DIGITIZER_SHARED_EP
@@ -234,24 +216,26 @@ typedef struct {
uint8_t reserved : 5;
uint16_t x;
uint16_t y;
-} __attribute__((packed)) report_digitizer_t;
+} PACKED report_digitizer_t;
+
+#if JOYSTICK_AXIS_RESOLUTION > 8
+typedef int16_t joystick_axis_t;
+#else
+typedef int8_t joystick_axis_t;
+#endif
typedef struct {
#ifdef JOYSTICK_SHARED_EP
uint8_t report_id;
#endif
#if JOYSTICK_AXIS_COUNT > 0
-# if JOYSTICK_AXIS_RESOLUTION > 8
- int16_t axes[JOYSTICK_AXIS_COUNT];
-# else
- int8_t axes[JOYSTICK_AXIS_COUNT];
-# endif
+ joystick_axis_t axes[JOYSTICK_AXIS_COUNT];
#endif
#if JOYSTICK_BUTTON_COUNT > 0
uint8_t buttons[(JOYSTICK_BUTTON_COUNT - 1) / 8 + 1];
#endif
-} __attribute__((packed)) report_joystick_t;
+} PACKED report_joystick_t;
/* keycode to system usage */
static inline uint16_t KEYCODE2SYSTEM(uint8_t key) {
@@ -321,28 +305,28 @@ static inline uint16_t KEYCODE2CONSUMER(uint8_t key) {
case KC_WWW_FAVORITES:
return AC_BOOKMARKS;
case KC_MISSION_CONTROL:
- return AC_MISSION_CONTROL;
+ return AC_DESKTOP_SHOW_ALL_WINDOWS;
case KC_LAUNCHPAD:
- return AC_LAUNCHPAD;
+ return AC_SOFT_KEY_LEFT;
default:
return 0;
}
}
-uint8_t has_anykey(report_keyboard_t* keyboard_report);
-uint8_t get_first_key(report_keyboard_t* keyboard_report);
-bool is_key_pressed(report_keyboard_t* keyboard_report, uint8_t key);
+uint8_t has_anykey(void);
+uint8_t get_first_key(void);
+bool is_key_pressed(uint8_t key);
void add_key_byte(report_keyboard_t* keyboard_report, uint8_t code);
void del_key_byte(report_keyboard_t* keyboard_report, uint8_t code);
#ifdef NKRO_ENABLE
-void add_key_bit(report_keyboard_t* keyboard_report, uint8_t code);
-void del_key_bit(report_keyboard_t* keyboard_report, uint8_t code);
+void add_key_bit(report_nkro_t* nkro_report, uint8_t code);
+void del_key_bit(report_nkro_t* nkro_report, uint8_t code);
#endif
-void add_key_to_report(report_keyboard_t* keyboard_report, uint8_t key);
-void del_key_from_report(report_keyboard_t* keyboard_report, uint8_t key);
-void clear_keys_from_report(report_keyboard_t* keyboard_report);
+void add_key_to_report(uint8_t key);
+void del_key_from_report(uint8_t key);
+void clear_keys_from_report(void);
#ifdef MOUSE_ENABLE
bool has_mouse_report_changed(report_mouse_t* new_report, report_mouse_t* old_report);
diff --git a/tmk_core/protocol/usb_descriptor.c b/tmk_core/protocol/usb_descriptor.c
index e215c90900..eb214c0492 100644
--- a/tmk_core/protocol/usb_descriptor.c
+++ b/tmk_core/protocol/usb_descriptor.c
@@ -359,10 +359,10 @@ const USB_Descriptor_HIDReport_Datatype_t PROGMEM SharedReport[] = {
// Keycodes
HID_RI_USAGE_PAGE(8, 0x07), // Keyboard/Keypad
HID_RI_USAGE_MINIMUM(8, 0x00),
- HID_RI_USAGE_MAXIMUM(8, KEYBOARD_REPORT_BITS * 8 - 1),
+ HID_RI_USAGE_MAXIMUM(8, NKRO_REPORT_BITS * 8 - 1),
HID_RI_LOGICAL_MINIMUM(8, 0x00),
HID_RI_LOGICAL_MAXIMUM(8, 0x01),
- HID_RI_REPORT_COUNT(8, KEYBOARD_REPORT_BITS * 8),
+ HID_RI_REPORT_COUNT(8, NKRO_REPORT_BITS * 8),
HID_RI_REPORT_SIZE(8, 0x01),
HID_RI_INPUT(8, HID_IOF_DATA | HID_IOF_VARIABLE | HID_IOF_ABSOLUTE),
diff --git a/tmk_core/protocol/usb_descriptor.h b/tmk_core/protocol/usb_descriptor.h
index ed84f4c9ab..1268bdae73 100644
--- a/tmk_core/protocol/usb_descriptor.h
+++ b/tmk_core/protocol/usb_descriptor.h
@@ -299,7 +299,7 @@ enum usb_endpoints {
#define KEYBOARD_EPSIZE 8
#define SHARED_EPSIZE 32
-#define MOUSE_EPSIZE 8
+#define MOUSE_EPSIZE 16
#define RAW_EPSIZE 32
#define CONSOLE_EPSIZE 32
#define MIDI_STREAM_EPSIZE 64
diff --git a/tmk_core/protocol/usb_types.h b/tmk_core/protocol/usb_types.h
new file mode 100644
index 0000000000..019775a1c4
--- /dev/null
+++ b/tmk_core/protocol/usb_types.h
@@ -0,0 +1,23 @@
+// Copyright 2023 Stefan Kerkmann
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#pragma once
+
+#include "util.h"
+
+/**
+ * @brief Common USB 2.0 control request structure
+ */
+typedef struct {
+ uint8_t bmRequestType; // [0] (Bitmask)
+ uint8_t bRequest; // [1]
+ union {
+ struct {
+ uint8_t lbyte; // [2] (LSB)
+ uint8_t hbyte; // [3] (MSB)
+ };
+ uint16_t word; // [2,3] (LSB,MSB)
+ } wValue;
+ uint16_t wIndex; // [4,5] (LSB,MSB)
+ uint16_t wLength; // [6,7] (LSB,MSB)
+} PACKED usb_control_request_t;
diff --git a/tmk_core/protocol/vusb/protocol.c b/tmk_core/protocol/vusb/protocol.c
index ae99680ce4..1f64561274 100644
--- a/tmk_core/protocol/vusb/protocol.c
+++ b/tmk_core/protocol/vusb/protocol.c
@@ -153,7 +153,6 @@ void protocol_task(void) {
if (usbConfiguration && usbInterruptIsReady()) {
keyboard_task();
}
- vusb_transfer_keyboard();
#ifdef RAW_ENABLE
usbPoll();
diff --git a/tmk_core/protocol/vusb/vusb.c b/tmk_core/protocol/vusb/vusb.c
index d74f375f66..d09b2f19b7 100644
--- a/tmk_core/protocol/vusb/vusb.c
+++ b/tmk_core/protocol/vusb/vusb.c
@@ -48,16 +48,14 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
# include "os_detection.h"
#endif
-#define NEXT_INTERFACE __COUNTER__
-
/*
* Interface indexes
*/
enum usb_interfaces {
#ifndef KEYBOARD_SHARED_EP
- KEYBOARD_INTERFACE = NEXT_INTERFACE,
+ KEYBOARD_INTERFACE,
#else
- SHARED_INTERFACE = NEXT_INTERFACE,
+ SHARED_INTERFACE,
# define KEYBOARD_INTERFACE SHARED_INTERFACE
#endif
@@ -65,67 +63,77 @@ enum usb_interfaces {
// interface number, to support Linux/OSX platforms and chrome.hid
// If Raw HID is enabled, let it be always 1.
#ifdef RAW_ENABLE
- RAW_INTERFACE = NEXT_INTERFACE,
+ RAW_INTERFACE,
#endif
#if defined(SHARED_EP_ENABLE) && !defined(KEYBOARD_SHARED_EP)
- SHARED_INTERFACE = NEXT_INTERFACE,
+ SHARED_INTERFACE,
#endif
#ifdef CONSOLE_ENABLE
- CONSOLE_INTERFACE = NEXT_INTERFACE,
+ CONSOLE_INTERFACE,
#endif
- TOTAL_INTERFACES = NEXT_INTERFACE
+ TOTAL_INTERFACES
};
#define MAX_INTERFACES 3
-#if (NEXT_INTERFACE - 1) > MAX_INTERFACES
-# error There are not enough available interfaces to support all functions. Please disable one or more of the following: Mouse Keys, Extra Keys, Raw HID, Console
-#endif
+_Static_assert(TOTAL_INTERFACES <= MAX_INTERFACES, "There are not enough available interfaces to support all functions. Please disable one or more of the following: Mouse Keys, Extra Keys, Raw HID, Console.");
#if (defined(MOUSE_ENABLE) || defined(EXTRAKEY_ENABLE)) && CONSOLE_ENABLE
# error Mouse/Extra Keys share an endpoint with Console. Please disable one of the two.
#endif
static uint8_t keyboard_led_state = 0;
-static uint8_t vusb_idle_rate = 0;
-
-/* Keyboard report send buffer */
-#define KBUF_SIZE 16
-static report_keyboard_t kbuf[KBUF_SIZE];
-static uint8_t kbuf_head = 0;
-static uint8_t kbuf_tail = 0;
+uint8_t keyboard_idle = 0;
+uint8_t keyboard_protocol = 1;
static report_keyboard_t keyboard_report_sent;
-#define VUSB_TRANSFER_KEYBOARD_MAX_TRIES 10
-
-/* transfer keyboard report from buffer */
-void vusb_transfer_keyboard(void) {
- for (int i = 0; i < VUSB_TRANSFER_KEYBOARD_MAX_TRIES; i++) {
- if (usbInterruptIsReady()) {
- if (kbuf_head != kbuf_tail) {
-#ifndef KEYBOARD_SHARED_EP
- usbSetInterrupt((void *)&kbuf[kbuf_tail], sizeof(report_keyboard_t));
-#else
- // Ugly hack! :(
- usbSetInterrupt((void *)&kbuf[kbuf_tail], sizeof(report_keyboard_t) - 1);
- while (!usbInterruptIsReady()) {
- usbPoll();
+static void send_report_fragment(uint8_t endpoint, void *data, size_t size) {
+ for (uint8_t retries = 5; retries > 0; retries--) {
+ switch (endpoint) {
+ case 1:
+ if (usbInterruptIsReady()) {
+ usbSetInterrupt(data, size);
+ return;
}
- usbSetInterrupt((void *)(&(kbuf[kbuf_tail].keys[5])), 1);
-#endif
- kbuf_tail = (kbuf_tail + 1) % KBUF_SIZE;
- if (debug_keyboard) {
- dprintf("V-USB: kbuf[%d->%d](%02X)\n", kbuf_tail, kbuf_head, (kbuf_head < kbuf_tail) ? (KBUF_SIZE - kbuf_tail + kbuf_head) : (kbuf_head - kbuf_tail));
+ break;
+ case USB_CFG_EP3_NUMBER:
+ if (usbInterruptIsReady3()) {
+ usbSetInterrupt3(data, size);
+ return;
}
- }
- break;
+ break;
+ case USB_CFG_EP4_NUMBER:
+ if (usbInterruptIsReady4()) {
+ usbSetInterrupt4(data, size);
+ return;
+ }
+ break;
+ default:
+ return;
}
+
usbPoll();
- wait_ms(1);
+ wait_ms(5);
+ }
+}
+
+static void send_report(uint8_t endpoint, void *report, size_t size) {
+ uint8_t *temp = (uint8_t *)report;
+
+ // Send as many full packets as possible
+ for (uint8_t i = 0; i < size / 8; i++) {
+ send_report_fragment(endpoint, temp, 8);
+ temp += 8;
+ }
+
+ // Send any data left over
+ uint8_t remainder = size % 8;
+ if (remainder) {
+ send_report_fragment(endpoint, temp, remainder);
}
}
@@ -144,18 +152,7 @@ void raw_hid_send(uint8_t *data, uint8_t length) {
return;
}
- uint8_t *temp = data;
- for (uint8_t i = 0; i < 4; i++) {
- while (!usbInterruptIsReady4()) {
- usbPoll();
- }
- usbSetInterrupt4(temp, 8);
- temp += 8;
- }
- while (!usbInterruptIsReady4()) {
- usbPoll();
- }
- usbSetInterrupt4(0, 0);
+ send_report(4, data, 32);
}
__attribute__((weak)) void raw_hid_receive(uint8_t *data, uint8_t length) {
@@ -184,19 +181,6 @@ int8_t sendchar(uint8_t c) {
return 0;
}
-static inline bool usbSendData3(char *data, uint8_t len) {
- uint8_t retries = 5;
- while (!usbInterruptIsReady3()) {
- if (!(retries--)) {
- return false;
- }
- usbPoll();
- }
-
- usbSetInterrupt3((unsigned char *)data, len);
- return true;
-}
-
void console_task(void) {
if (!usbConfiguration) {
return;
@@ -213,16 +197,7 @@ void console_task(void) {
send_buf[send_buf_count++] = rbuf_dequeue();
}
- char *temp = send_buf;
- for (uint8_t i = 0; i < 4; i++) {
- if (!usbSendData3(temp, 8)) {
- break;
- }
- temp += 8;
- }
-
- usbSendData3(0, 0);
- usbPoll();
+ send_report(3, send_buf, CONSOLE_BUFFER_SIZE);
}
#endif
@@ -231,10 +206,11 @@ void console_task(void) {
*------------------------------------------------------------------*/
static uint8_t keyboard_leds(void);
static void send_keyboard(report_keyboard_t *report);
+static void send_nkro(report_nkro_t *report);
static void send_mouse(report_mouse_t *report);
static void send_extra(report_extra_t *report);
-static host_driver_t driver = {keyboard_leds, send_keyboard, send_mouse, send_extra};
+static host_driver_t driver = {keyboard_leds, send_keyboard, send_nkro, send_mouse, send_extra};
host_driver_t *vusb_driver(void) {
return &driver;
@@ -245,65 +221,56 @@ static uint8_t keyboard_leds(void) {
}
static void send_keyboard(report_keyboard_t *report) {
- uint8_t next = (kbuf_head + 1) % KBUF_SIZE;
- if (next != kbuf_tail) {
- kbuf[kbuf_head] = *report;
- kbuf_head = next;
+ if (!keyboard_protocol) {
+ send_report(1, &report->mods, 8);
} else {
- dprint("kbuf: full\n");
+ send_report(1, report, sizeof(report_keyboard_t));
}
- // NOTE: send key strokes of Macro
- usbPoll();
- vusb_transfer_keyboard();
keyboard_report_sent = *report;
}
#ifndef KEYBOARD_SHARED_EP
-# define usbInterruptIsReadyShared usbInterruptIsReady3
-# define usbSetInterruptShared usbSetInterrupt3
+# define MOUSE_IN_EPNUM 3
+# define SHARED_IN_EPNUM 3
#else
-# define usbInterruptIsReadyShared usbInterruptIsReady
-# define usbSetInterruptShared usbSetInterrupt
+# define MOUSE_IN_EPNUM 1
+# define SHARED_IN_EPNUM 1
+#endif
+
+static void send_nkro(report_nkro_t *report) {
+#ifdef NKRO_ENABLE
+ send_report(3, report, sizeof(report_nkro_t));
#endif
+}
static void send_mouse(report_mouse_t *report) {
#ifdef MOUSE_ENABLE
- if (usbInterruptIsReadyShared()) {
- usbSetInterruptShared((void *)report, sizeof(report_mouse_t));
- }
+ send_report(MOUSE_IN_EPNUM, report, sizeof(report_mouse_t));
#endif
}
static void send_extra(report_extra_t *report) {
#ifdef EXTRAKEY_ENABLE
- if (usbInterruptIsReadyShared()) {
- usbSetInterruptShared((void *)report, sizeof(report_extra_t));
- }
+ send_report(SHARED_IN_EPNUM, report, sizeof(report_extra_t));
#endif
}
void send_joystick(report_joystick_t *report) {
#ifdef JOYSTICK_ENABLE
- if (usbInterruptIsReadyShared()) {
- usbSetInterruptShared((void *)report, sizeof(report_joystick_t));
- }
+ send_report(SHARED_IN_EPNUM, report, sizeof(report_joystick_t));
#endif
}
void send_digitizer(report_digitizer_t *report) {
#ifdef DIGITIZER_ENABLE
- if (usbInterruptIsReadyShared()) {
- usbSetInterruptShared((void *)report, sizeof(report_digitizer_t));
- }
+ send_report(SHARED_IN_EPNUM, report, sizeof(report_digitizer_t));
#endif
}
void send_programmable_button(report_programmable_button_t *report) {
#ifdef PROGRAMMABLE_BUTTON_ENABLE
- if (usbInterruptIsReadyShared()) {
- usbSetInterruptShared((void *)report, sizeof(report_programmable_button_t));
- }
+ send_report(SHARED_IN_EPNUM, report, sizeof(report_programmable_button_t));
#endif
}
@@ -319,30 +286,44 @@ usbMsgLen_t usbFunctionSetup(uchar data[8]) {
usbRequest_t *rq = (void *)data;
if ((rq->bmRequestType & USBRQ_TYPE_MASK) == USBRQ_TYPE_CLASS) { /* class request type */
- if (rq->bRequest == USBRQ_HID_GET_REPORT) {
- dprint("GET_REPORT:");
- if (rq->wIndex.word == KEYBOARD_INTERFACE) {
- usbMsgPtr = (usbMsgPtr_t)&keyboard_report_sent;
- return sizeof(keyboard_report_sent);
- }
- } else if (rq->bRequest == USBRQ_HID_GET_IDLE) {
- dprint("GET_IDLE:");
- usbMsgPtr = (usbMsgPtr_t)&vusb_idle_rate;
- return 1;
- } else if (rq->bRequest == USBRQ_HID_SET_IDLE) {
- vusb_idle_rate = rq->wValue.bytes[1];
- dprintf("SET_IDLE: %02X", vusb_idle_rate);
- } else if (rq->bRequest == USBRQ_HID_SET_REPORT) {
- dprint("SET_REPORT:");
- // Report Type: 0x02(Out)/ReportID: 0x00(none) && Interface: 0(keyboard)
- if (rq->wValue.word == 0x0200 && rq->wIndex.word == KEYBOARD_INTERFACE) {
- dprint("SET_LED:");
- last_req.kind = SET_LED;
- last_req.len = rq->wLength.word;
- }
- return USB_NO_MSG; // to get data in usbFunctionWrite
- } else {
- dprint("UNKNOWN:");
+ switch (rq->bRequest) {
+ case USBRQ_HID_GET_REPORT:
+ dprint("GET_REPORT:");
+ if (rq->wIndex.word == KEYBOARD_INTERFACE) {
+ usbMsgPtr = (usbMsgPtr_t)&keyboard_report_sent;
+ return sizeof(keyboard_report_sent);
+ }
+ break;
+ case USBRQ_HID_GET_IDLE:
+ dprint("GET_IDLE:");
+ usbMsgPtr = (usbMsgPtr_t)&keyboard_idle;
+ return 1;
+ case USBRQ_HID_GET_PROTOCOL:
+ dprint("GET_PROTOCOL:");
+ usbMsgPtr = (usbMsgPtr_t)&keyboard_protocol;
+ return 1;
+ case USBRQ_HID_SET_REPORT:
+ dprint("SET_REPORT:");
+ // Report Type: 0x02(Out)/ReportID: 0x00(none) && Interface: 0(keyboard)
+ if (rq->wValue.word == 0x0200 && rq->wIndex.word == KEYBOARD_INTERFACE) {
+ dprint("SET_LED:");
+ last_req.kind = SET_LED;
+ last_req.len = rq->wLength.word;
+ }
+ return USB_NO_MSG; // to get data in usbFunctionWrite
+ case USBRQ_HID_SET_IDLE:
+ keyboard_idle = (rq->wValue.word & 0xFF00) >> 8;
+ dprintf("SET_IDLE: %02X", keyboard_idle);
+ break;
+ case USBRQ_HID_SET_PROTOCOL:
+ if (rq->wIndex.word == KEYBOARD_INTERFACE) {
+ keyboard_protocol = rq->wValue.word & 0xFF;
+ dprintf("SET_PROTOCOL: %02X", keyboard_protocol);
+ }
+ break;
+ default:
+ dprint("UNKNOWN:");
+ break;
}
} else {
dprint("VENDOR:");
@@ -454,6 +435,45 @@ const PROGMEM uchar shared_hid_report[] = {
# define SHARED_REPORT_STARTED
#endif
+#ifdef NKRO_ENABLE
+ // NKRO report descriptor
+ 0x05, 0x01, // Usage Page (Generic Desktop)
+ 0x09, 0x06, // Usage (Keyboard)
+ 0xA1, 0x01, // Collection (Application)
+ 0x85, REPORT_ID_NKRO, // Report ID
+ // Modifiers (8 bits)
+ 0x05, 0x07, // Usage Page (Keyboard/Keypad)
+ 0x19, 0xE0, // Usage Minimum (Keyboard Left Control)
+ 0x29, 0xE7, // Usage Maximum (Keyboard Right GUI)
+ 0x15, 0x00, // Logical Minimum (0)
+ 0x25, 0x01, // Logical Maximum (1)
+ 0x95, 0x08, // Report Count (8)
+ 0x75, 0x01, // Report Size (1)
+ 0x81, 0x02, // Input (Data, Variable, Absolute)
+ // Keycodes
+ 0x05, 0x07, // Usage Page (Keyboard/Keypad)
+ 0x19, 0x00, // Usage Minimum (0)
+ 0x29, NKRO_REPORT_BITS * 8 - 1, // Usage Maximum
+ 0x15, 0x00, // Logical Minimum (0)
+ 0x25, 0x01, // Logical Maximum (1)
+ 0x95, NKRO_REPORT_BITS * 8, // Report Count
+ 0x75, 0x01, // Report Size (1)
+ 0x81, 0x02, // Input (Data, Variable, Absolute)
+
+ // Status LEDs (5 bits)
+ 0x05, 0x08, // Usage Page (LED)
+ 0x19, 0x01, // Usage Minimum (Num Lock)
+ 0x29, 0x05, // Usage Maximum (Kana)
+ 0x95, 0x05, // Report Count (5)
+ 0x75, 0x01, // Report Size (1)
+ 0x91, 0x02, // Output (Data, Variable, Absolute)
+ // LED padding (3 bits)
+ 0x95, 0x01, // Report Count (1)
+ 0x75, 0x03, // Report Size (3)
+ 0x91, 0x03, // Output (Constant)
+ 0xC0, // End Collection
+#endif
+
#ifdef MOUSE_ENABLE
// Mouse report descriptor
0x05, 0x01, // Usage Page (Generic Desktop)
@@ -1024,7 +1044,7 @@ USB_PUBLIC usbMsgLen_t usbFunctionDescriptor(struct usbRequest *rq) {
#endif
break;
case USBDESCR_HID:
- switch (rq->wValue.bytes[0]) {
+ switch (rq->wIndex.word) {
#ifndef KEYBOARD_SHARED_EP
case KEYBOARD_INTERFACE:
usbMsgPtr = (usbMsgPtr_t)&usbConfigurationDescriptor.keyboardHID;
diff --git a/tmk_core/protocol/vusb/vusb.h b/tmk_core/protocol/vusb/vusb.h
index c5cb27ded6..ae17e5e014 100644
--- a/tmk_core/protocol/vusb/vusb.h
+++ b/tmk_core/protocol/vusb/vusb.h
@@ -121,4 +121,3 @@ typedef struct usbConfigurationDescriptor {
extern bool vusb_suspended;
host_driver_t *vusb_driver(void);
-void vusb_transfer_keyboard(void);
diff --git a/users/333fred/333fred.c b/users/333fred/333fred.c
deleted file mode 100644
index e75a862a3e..0000000000
--- a/users/333fred/333fred.c
+++ /dev/null
@@ -1,144 +0,0 @@
-/*
- Copyright (c) 2020 Fred Silberberg
-
- Permission is hereby granted, free of charge, to any person obtaining a copy
- of this software and associated documentation files (the "Software"), to deal
- in the Software without restriction, including without limitation the rights
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- copies of the Software, and to permit persons to whom the Software is
- furnished to do so, subject to the following conditions:
-
- The above copyright notice and this permission notice shall be included in all
- copies or substantial portions of the Software.
-
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- THE SOFTWARE.
-*/
-
-#include "333fred.h"
-#include "quantum.h"
-#include "action.h"
-
-typedef enum {
- SINGLE_TAP, SINGLE_HOLD, DOUBLE
-} tap_dance_state_enum;
-
-static tap_dance_state_enum tap_dance_state;
-static bool tap_dance_active = false;
-
-void tap_dance_sym_vim_finished(tap_dance_state_t *state, void *user_data) {
- // Determine the current state
- if (state->count == 1) {
- if (state->interrupted || state->pressed == 0) tap_dance_state = SINGLE_TAP;
- else tap_dance_state = SINGLE_HOLD;
- } else {
- // Handle any number of other taps as a VIM movement hold
- tap_dance_state = DOUBLE;
- }
-
- switch (tap_dance_state) {
- case SINGLE_TAP:
- if (tap_dance_active) {
- reset_oneshot_layer();
- tap_dance_active = false;
- } else {
- set_oneshot_layer(SYMB, ONESHOT_START);
- tap_dance_active = true;
- }
- break;
- case SINGLE_HOLD:
- layer_on(SYMB);
- break;
- case DOUBLE:
- layer_on(VIM);
- break;
- }
-}
-
-void tap_dance_sym_vim_reset(tap_dance_state_t *state, void *user_data) {
- switch(tap_dance_state) {
- case SINGLE_TAP:
- clear_oneshot_layer_state(ONESHOT_PRESSED);
- break;
- case SINGLE_HOLD:
- layer_off(SYMB);
- break;
- case DOUBLE:
- layer_off(VIM);
- break;
- }
-}
-
-void tap_dance_copy_paste_finished(tap_dance_state_t *state, void *user_data) {
- bool is_paste = state->count == 2;
- // If either the one-shot shift is set, or if shift is being held, count as shift being held.
- // We'll clear the one-shot shift if it was held
- uint8_t one_shot_mods = get_oneshot_mods();
- bool is_shift = false;
-
- if (get_mods() & MOD_MASK_SHIFT) {
- is_shift = true;
- } else if (one_shot_mods & MOD_MASK_SHIFT) {
- set_oneshot_mods(one_shot_mods & ~MOD_MASK_SHIFT);
- is_shift = true;
- }
-
- if (is_paste) {
- if (is_shift) {
- SEND_STRING(SS_LSFT(SS_TAP(X_INSERT)));
- } else {
- SEND_STRING(SS_LCTL("v"));
- }
- } else {
- if (is_shift) {
- SEND_STRING(SS_LCTL(SS_TAP(X_INSERT)));
- } else {
- SEND_STRING(SS_LCTL("c"));
- }
- }
-}
-
-tap_dance_action_t tap_dance_actions[] = {
- [TD_SYM_VIM] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, tap_dance_sym_vim_finished, tap_dance_sym_vim_reset),
- [TD_COPY_PASTE] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, tap_dance_copy_paste_finished, NULL)
-};
-
-void tap_dance_process_keycode(uint16_t keycode) {
- if (tap_dance_state == SINGLE_TAP && keycode != TD(TD_SYM_VIM)) {
- tap_dance_active = false;
- }
-}
-
-__attribute__ ((weak))
-void layer_state_set_rgb(layer_state_t state) {}
-
-layer_state_t layer_state_set_user(layer_state_t state) {
- layer_state_set_rgb(state);
- return state;
-}
-
-bool try_handle_macro(uint16_t keycode, keyrecord_t *record) {
- switch (keycode)
- {
- case DLEFT:
- if (record->event.pressed)
- SEND_STRING(SS_LGUI(SS_LALT(SS_TAP(X_LEFT))));
- return true;
- case DRIGHT:
- if (record->event.pressed)
- SEND_STRING(SS_LGUI(SS_LALT(SS_TAP(X_RIGHT))));
- return true;
- case PSCREEN_APP:
- if (record->event.pressed)
- SEND_STRING(SS_LALT(SS_TAP(X_PRINT_SCREEN)));
- return true;
-
- default:
- return false;
- }
-}
diff --git a/users/333fred/333fred.h b/users/333fred/333fred.h
deleted file mode 100644
index e8473e7ce1..0000000000
--- a/users/333fred/333fred.h
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
- Copyright (c) 2020 Fred Silberberg
-
- Permission is hereby granted, free of charge, to any person obtaining a copy
- of this software and associated documentation files (the "Software"), to deal
- in the Software without restriction, including without limitation the rights
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- copies of the Software, and to permit persons to whom the Software is
- furnished to do so, subject to the following conditions:
-
- The above copyright notice and this permission notice shall be included in all
- copies or substantial portions of the Software.
-
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- THE SOFTWARE.
-*/
-
-#pragma once
-
-#include "quantum.h"
-#include "layout_macros.h"
-
-#define BASE 0
-#define CODEFLOW 1
-#define SYMB 2
-#define MDIA 3 // media keys
-#define VIM 4
-#define GAME 5
-#define GAME_ARROW 6
-
-// Tap dance config shared between my keyboards
-enum tap_dance_declarations {
- TD_SYM_VIM = 0,
- TD_COPY_PASTE,
-};
-
-enum custom_keys {
- DLEFT = SAFE_RANGE,
- DRIGHT,
- PSCREEN_APP
-};
-
-void tap_dance_sym_vim_finished(tap_dance_state_t*, void*);
-void tap_dance_sym_vim_reset(tap_dance_state_t*, void*);
-void tap_dance_process_keycode(uint16_t);
-bool try_handle_macro(uint16_t keycode, keyrecord_t *record);
diff --git a/users/333fred/config.h b/users/333fred/config.h
deleted file mode 100644
index 0bbaa38a99..0000000000
--- a/users/333fred/config.h
+++ /dev/null
@@ -1,27 +0,0 @@
-/*
- Copyright (c) 2020 Fred Silberberg
-
- Permission is hereby granted, free of charge, to any person obtaining a copy
- of this software and associated documentation files (the "Software"), to deal
- in the Software without restriction, including without limitation the rights
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- copies of the Software, and to permit persons to whom the Software is
- furnished to do so, subject to the following conditions:
-
- The above copyright notice and this permission notice shall be included in all
- copies or substantial portions of the Software.
-
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- THE SOFTWARE.
-*/
-
-#pragma once
-
-#define PERMISSIVE_HOLD
-#define NO_ACTION_MACRO
-#undef ONESHOT_TAP_TOGGLE
diff --git a/users/333fred/layout_macros.h b/users/333fred/layout_macros.h
deleted file mode 100644
index d46a41905e..0000000000
--- a/users/333fred/layout_macros.h
+++ /dev/null
@@ -1,66 +0,0 @@
-/*
- Copyright (c) 2020 Fred Silberberg
-
- Permission is hereby granted, free of charge, to any person obtaining a copy
- of this software and associated documentation files (the "Software"), to deal
- in the Software without restriction, including without limitation the rights
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- copies of the Software, and to permit persons to whom the Software is
- furnished to do so, subject to the following conditions:
-
- The above copyright notice and this permission notice shall be included in all
- copies or substantial portions of the Software.
-
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- THE SOFTWARE.
-*/
-
-#pragma once
-
-#define SIX_TRNS _______, _______, _______, _______, _______, _______
-#define FOUR_TRNS _______, _______, _______, _______
-
-// Row 5: 6 keys
-#define ROW5_LEFT_BASE KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5
-#define ROW5_RGHT_BASE KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS
-#define ROW5_LEFT_SYMB _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5
-#define ROW5_RGHT_SYMB KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11
-#define ROW5_LEFT_VIM SIX_TRNS
-#define ROW5_RGHT_VIM SIX_TRNS
-
-// Row 4: 6 keys
-#define ROW4_LEFT_BASE KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T
-#define ROW4_RGHT_BASE KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS
-#define ROW4_LEFT_SYMB _______, KC_EXLM, KC_AT, KC_LPRN, KC_RPRN, KC_PIPE
-#define ROW4_RGHT_SYMB KC_UP, KC_7, KC_8, KC_9, KC_ASTR, KC_F12
-#define ROW4_LEFT_VIM SIX_TRNS
-#define ROW4_RGHT_VIM SIX_TRNS
-
-// Row 3: 6 keys
-#define ROW3_LEFT_BASE CTL_T(KC_ESC), KC_A, KC_S, KC_D, KC_F, KC_G
-#define ROW3_RGHT_BASE KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT
-#define ROW3_LEFT_SYMB _______, KC_HASH, KC_DLR, KC_LCBR, KC_RCBR, KC_GRV
-#define ROW3_RGHT_SYMB KC_DOWN, KC_4, KC_5, KC_6, KC_PLUS, _______
-#define ROW3_LEFT_VIM _______, DLEFT, DRIGHT, KC_LCTL, KC_LGUI, _______
-#define ROW3_RGHT_VIM KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, _______, _______
-
-// Row 2: 6 keys
-#define ROW2_LEFT_BASE OSM(MOD_LSFT), CTL_T(KC_Z), KC_X, KC_C, KC_V, KC_B
-#define ROW2_RGHT_BASE KC_N, KC_M, KC_COMM, KC_DOT, CTL_T(KC_SLSH), OSM(MOD_RSFT)
-#define ROW2_LEFT_SYMB _______, KC_PERC, KC_CIRC, KC_LBRC, KC_RBRC, KC_TILD
-#define ROW2_RGHT_SYMB KC_AMPR, KC_1, KC_2, KC_3, KC_BSLS, _______
-#define ROW2_LEFT_VIM _______, _______, KC_TAB, _______, _______, _______
-#define ROW2_RGHT_VIM SIX_TRNS
-
-// Row 1: 4 keys
-#define ROW1_LEFT_BASE OSM(MOD_LCTL), KC_F4, KC_F5, KC_LALT
-#define ROW1_RGHT_BASE KC_DOWN, KC_EQL, KC_RIGHT, KC_RGUI
-#define ROW1_LEFT_SYMB _______, _______, _______, _______
-#define ROW1_RGHT_SYMB KC_0, KC_DOT, KC_EQL, _______
-#define ROW1_LEFT_VIM FOUR_TRNS
-#define ROW1_RGHT_VIM FOUR_TRNS
diff --git a/users/333fred/rgb.c b/users/333fred/rgb.c
deleted file mode 100644
index ae21702030..0000000000
--- a/users/333fred/rgb.c
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
- Copyright (c) 2020 Fred Silberberg
-
- Permission is hereby granted, free of charge, to any person obtaining a copy
- of this software and associated documentation files (the "Software"), to deal
- in the Software without restriction, including without limitation the rights
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- copies of the Software, and to permit persons to whom the Software is
- furnished to do so, subject to the following conditions:
-
- The above copyright notice and this permission notice shall be included in all
- copies or substantial portions of the Software.
-
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- THE SOFTWARE.
-*/
-
-#include "quantum.h"
-#include "333fred.h"
-
-void layer_state_set_rgb(layer_state_t state) {
- switch (get_highest_layer(state)) {
- case BASE:
- // purple
- rgblight_sethsv_noeeprom(210, 255, 20);
- break;
- case SYMB:
- // blue
- rgblight_sethsv_noeeprom(191, 255, 20);
- break;
- case VIM:
- // green
- rgblight_sethsv_noeeprom(85, 255, 20);
- break;
- case GAME:
- // red
- rgblight_sethsv_noeeprom(0, 255, 20);
- break;
- }
-}
-
-void keyboard_post_init_user(void) {
- rgblight_enable_noeeprom();
- layer_state_set_rgb(1); // Set layer 0 (bit 1) on
-}
diff --git a/users/333fred/rules.mk b/users/333fred/rules.mk
deleted file mode 100644
index 265a6c18cb..0000000000
--- a/users/333fred/rules.mk
+++ /dev/null
@@ -1,10 +0,0 @@
-SRC += 333fred.c
-
-ifeq ($(strip $(RGBLIGHT_ENABLE)), yes)
- SRC += rgb.c
-endif
-
-TAP_DANCE_ENABLE=yes
-NKRO_ENABLE = yes
-PERMISSIVE_HOLD = yes
-LTO_ENABLE = yes
diff --git a/users/ajp10304/ajp10304.c b/users/ajp10304/ajp10304.c
deleted file mode 100644
index b8729b94d7..0000000000
--- a/users/ajp10304/ajp10304.c
+++ /dev/null
@@ -1,176 +0,0 @@
-/* Copyright 2021 Alan Pocklington
- *
- * 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 "ajp10304.h"
-
-bool process_record_user(uint16_t keycode, keyrecord_t *record) {
-
- switch (keycode) {
- case QWERTY:
- if (record->event.pressed) {
- set_single_persistent_default_layer(_QWERTY);
- }
- return false;
- case COLEMAK:
- if (record->event.pressed) {
- set_single_persistent_default_layer(_COLEMAK);
- }
- case LOWER:
- if (record->event.pressed) {
- layer_on(_LOWER);
- update_tri_layer(_LOWER, _RAISE, _ADJUST);
- } else {
- layer_off(_LOWER);
- update_tri_layer(_LOWER, _RAISE, _ADJUST);
- }
- return false;
- case RAISE:
- if (record->event.pressed) {
- layer_on(_RAISE);
- update_tri_layer(_LOWER, _RAISE, _ADJUST);
- } else {
- layer_off(_RAISE);
- update_tri_layer(_LOWER, _RAISE, _ADJUST);
- }
- return false;
- case MLWR:
- if (record->event.pressed) {
- layer_on(_LOWER);
- layer_on(_MLWR);
- update_tri_layer(_LOWER, _RAISE, _ADJUST);
- } else {
- layer_off(_LOWER);
- layer_off(_MLWR);
- update_tri_layer(_LOWER, _RAISE, _ADJUST);
- }
- return false;
- case MRSE:
- if (record->event.pressed) {
- layer_on(_RAISE);
- layer_on(_MRSE);
- update_tri_layer(_LOWER, _RAISE, _ADJUST);
- } else {
- layer_off(_RAISE);
- layer_off(_MRSE);
- update_tri_layer(_LOWER, _RAISE, _ADJUST);
- }
- return false;
- case MFNC:
- if (record->event.pressed) {
- layer_on(_FUNC);
- layer_on(_MFNC);
- } else {
- layer_off(_FUNC);
- layer_off(_MFNC);
- }
- return false;
- case MFNC2:
- if (record->event.pressed) {
- layer_on(_FUNC2);
- layer_on(_MFNC2);
- } else {
- layer_off(_FUNC2);
- layer_off(_MFNC2);
- }
- return false;
- case M_CUSTOM:
- if (record->event.pressed) {
- SEND_STRING("Custom text here");
- }
- break;
- case M_WORD_SEL:
- if (record->event.pressed) {
- register_mods(MOD_LCTL);
- tap_code(KC_RGHT);
- tap_code16(S(KC_LEFT));
- unregister_mods(MOD_LCTL);
- }
- break;
- case M_WORD_SEL_MAC:
- if (record->event.pressed) {
- register_mods(MOD_LALT);
- tap_code(KC_RGHT);
- tap_code16(S(KC_LEFT));
- unregister_mods(MOD_LALT);
- }
- break;
- case M_LINE_SEL:
- if (record->event.pressed) {
- tap_code(KC_HOME);
- tap_code16(S(KC_END));
- }
- break;
- case M_LINE_SEL_MAC:
- if (record->event.pressed) {
- tap_code16(C(KC_A));
- tap_code16(C(S(KC_E)));
- }
- break;
- case M_LINE_DEL:
- if (record->event.pressed) {
- tap_code(KC_HOME);
- tap_code16(S(KC_END));
- tap_code(KC_BSPC);
- }
- break;
- case M_LINE_DEL_MAC:
- if (record->event.pressed) {
- tap_code16(C(KC_A));
- tap_code16(C(S(KC_E)));
- tap_code(KC_BSPC);
- }
- break;
- case M_DUP:
- if (record->event.pressed) {
- tap_code16(C(KC_C));
- tap_code(KC_RGHT);
- tap_code16(C(KC_V));
- }
- break;
- case M_DUP_MAC:
- if (record->event.pressed) {
- tap_code16(G(KC_C));
- tap_code(KC_RGHT);
- tap_code16(G(KC_V));
- }
- break;
- case M_JOIN:
- if (record->event.pressed) {
- tap_code(KC_END);
- tap_code(KC_DEL);
- }
- break;
- case M_JOIN_MAC:
- if (record->event.pressed) {
- tap_code16(C(KC_E));
- tap_code(KC_DEL);
- }
- break;
- case M_MODE:
- if (record->event.pressed) {
- send_string("PC ");
- send_string(get_highest_layer(default_layer_state) == _COLEMAK ? "COLEMAK" : "QWERTY");
- }
- break;
- case M_MODE_MAC:
- if (record->event.pressed) {
- send_string("OSX ");
- send_string(get_highest_layer(default_layer_state) == _COLEMAK ? "COLEMAK" : "QWERTY");
- }
- break;
- }
- return true;
-}
diff --git a/users/ajp10304/ajp10304.h b/users/ajp10304/ajp10304.h
deleted file mode 100644
index 130c841607..0000000000
--- a/users/ajp10304/ajp10304.h
+++ /dev/null
@@ -1,63 +0,0 @@
-/* Copyright 2021 Alan Pocklington
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-#include QMK_KEYBOARD_H
-
-enum ajp10304_layers {
- _QWERTY,
- _COLEMAK,
- _MAC,
- _LOWER,
- _MLWR,
- _RAISE,
- _MRSE,
- _FUNC,
- _MFNC,
- _FUNC2,
- _MFNC2,
- _ADJUST,
- _MOUSE,
- _NUMPAD
-};
-
-enum ajp10304_keycodes {
- QWERTY = SAFE_RANGE,
- COLEMAK,
- MAC,
- FUNC,
- MFNC,
- FUNC2,
- MFNC2,
- LOWER,
- MLWR,
- RAISE,
- MRSE,
- MOUSE,
- NUMPAD,
- M_CUSTOM,
- M_WORD_SEL,
- M_WORD_SEL_MAC,
- M_LINE_SEL,
- M_LINE_SEL_MAC,
- M_LINE_DEL,
- M_LINE_DEL_MAC,
- M_DUP,
- M_DUP_MAC,
- M_JOIN,
- M_JOIN_MAC,
- M_MODE,
- M_MODE_MAC
-};
diff --git a/users/ajp10304/readme.md b/users/ajp10304/readme.md
deleted file mode 100644
index 0683f42384..0000000000
--- a/users/ajp10304/readme.md
+++ /dev/null
@@ -1,141 +0,0 @@
-Copyright 2021 Alan Pocklington <ajp10304@gmail.com> @ajp10304
-
-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/>.
-
-# AJP10304 Custom 40% Layout
-# For the Planck, Shark, Quark, JJ40 and Atreus50
-
-**Note:** In the tables below where there are two characters on a key,
-the second is the output when shift is applied.
-
-**Note:** The below tables assume a UK layout.
-
-#### Flashing
-Refer to the README.md of the keyboard you want to flash.
-
-##### Main Qwerty Layer
-
-* Tab: when held, operates as shift.
-* Enter: when held, operates as shift.
-* MENU: perform right-click
-
-| | | | | | | | | | | | |
-| ---- |:----:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| ----:|
-| Esc | Q | W | E | R | T | Y | U | I | O | P | Bksp |
-| Tab | A | S | D | F | G | H | J | K | L | ;: | Enter|
-| Shft | Z | X | C | V | B | N | M | ,< | .> | /? | Shft |
-| Fn | Ctrl | Alt | GUI |Lower | Bksp |Space |Raise | Shift| MENU | Ctrl | Fn2 |
-
-##### Main Colemak-DHm Layer
-
-| | | | | | | | | | | | |
-| ---- |:----:| :---:|:---:|:-----:|:----:|:-----:|:-----:|:-----:|:----:|:----:| ----:|
-| Esc | Q | W | F | P | B | J | L | U | Y | ;: | Bksp |
-| Tab | A | R | S | T | G | M | N | E | I | O | Enter|
-| Shft | Z | X | C | D | V | K | H | ,< | .> | /? | Shft |
-| Fn | Ctrl | Alt | GUI | Lower | Bksp | Space | Raise | Shift | MENU | Ctrl | Fn2 |
-
-##### Function Layer
-Activated when `fn` held in the above `qwerty` layer.
-
-| | | | | | | | | | | | |
-| :---: |:----:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:|
-| F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 |
-| 1! | 2" | 3£ | 4$ | 5% | 6^ | 7& | 8* | 9( | 0) | ~ |INSERT|
-| Shift | \| | `¬ | #~ | * | -_ | =+ | \| | [{ | ]} | '@ |Shift |
-| Fn | Ctrl | Alt | GUI |Lower | Bksp |Space |Mouse | MENU | Alt | Ctrl | Fn2 |
-
-##### Lower Layer
-Activated when `Lower` is held in the above `qwerty` layer.
-
-* Numbers are along the top row, their shifted counterparts are on row 2.
-* WrdBks: `backspace` with `ctrl` applied. I.e. delete a word.
-* WrdDel: `delete` with `ctrl` applied. I.e. forward delete a word.
-
-| | | | | | | | | | | | |
-| :---: |:----:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:|
-| 1! | 2" | 3£ | 4$ | 5% | 6^ | 7& | 8* | 9( | 0) | DEL | Bksp |
-| ! | " | £ | $ | % | ^ | & | * | ( | ) |WrdDel|WrdBks|
-| Shift | \| | `¬ | #~ | '@ | -_ | =+ | #~ | [{ | ]} | '@ |Shift |
-| | | | |Lower | Del |Space | | Next | Vol- | Vol+ | Play |
-
-##### Raise Layer
-Activated when `Raise` is held in the above `qwerty` layer.
-
-* Preferred layer for typing brackets.
-* Allows for cursor navigation to be used solely with the right hand.
-* WRDSEL: Select the word where the cursor is.
-* |< and >|: Apply `ctrl` to `left` and `right` respectively for word jumping.
-
-| | | | | | | | | | | | |
-| :---: |:----:| :---:| :---:| :---:| :---:| :---: | :---:| :---:| :---:| :---: | :---:|
-| ` | |WRDSEL| [ | ] | | | PGUP | HOME |PGDOWN| |PRNTSC|
-| ` | | | ( | ) | | | HOME | UP | END | |ZOOM +|
-| | | | { | } | |&#124;<| LEFT | DOWN |RIGHT |>&#124;|ZOOM -|
-| Mouse | | | | | Alt | Enter |Raise | | | | |
-
-##### Lower + Raise
-Activated when `Lower` and `Raise` are held together in the above `qwerty` layer.
-
-* Audio controls in the same position as cursor keys from the `Raise` layer.
-* ????: Runs a macro for outputting a text string. Do not use this store passwords.
-* Reset: Enter bootloader for flashing firmware to the keyboard.
-* CAPS: Toggle caps lock.
-* Macro functions: Allows recording of macros. To start recording the macro, press either REC1 or REC2.
-To finish the recording, press STOP. To replay the macro, press either PLAY1 or PLAY2.
-* MAC: Toggle MAC OS extensions to layers. This allows MLWR to be enabled with LOWER,
-MRSE with RAISE, MFNC with FUNC and MFNC2 with FUNC2 respectively.
-
-| | | | | | | | | | | | |
-| :---: |:----:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:|:-------:|
-| ???? | Reset|Qwerty| | | REC1 | REC2 | | | | | Del |
-| CAPS | | | | | PLAY1|PLAY2 | Mute | Vol+ | Play | | Qwerty |
-| MAC | | | | | STOP1|STOP2 | Prev | Vol- | Next | | Colemak |
-| | | | | | | | | DYN | | | |
-
-##### Function 2 Layer
-Activated when `fn` held in the above `qwerty` layer.
-* WRDSEL: Select the word where the cursor is.
-* LNDEL: Delete the line where the cursor is.
-* LNSEL: Select the line where the cursor is.
-* DUP: Duplicate the selected text.
-* LNJOIN: Join the line where the cursor is with the following line.
-* MODE: Print either `PC` or `OSX` depending on what layer mode is active.
-
-| | | | | | | | | | | | |
-| :---: | :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:|
-| | |WRDSEL| | | | LNDEL| | | | | |
-| | | LNSEL| DUP | | | | |LNJOIN| | | |
-| | UNDO | CUT | COPY | PASTE| | | | | | | MODE |
-| | | | | | | | | | | | |
-
-##### Mouse Layer
-Activated when `fn` and `raise` held together.
-
-| | | | | | | | | | | | |
-| :---: | :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:|
-| ESC | | | | | | W_L | W_UP | BTN3 | W_DWN| W_R | |
-| ACC0 | ACC1 | ACC2 | | | | | BTN1 | UP | BTN2 | | |
-| ACC0 | ACC1 | ACC2 | | | | | LEFT | DOWN | RIGHT| | |
-| | | | | | | | | | | | |
-
-##### Number Pad Layout
-Activated when holding `Esc` key.
-
-| | | | | | | | | | | | |
-| :---: | :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:|
-| | | | | | |NMLOCK| 7 | 8 | 9 | / | |
-| | | | | | | | 4 | 5 | 6 | * | |
-| | | | | | | | 1 | 2 | 3 | + | |
-| | | | | | | | 0 | . | , | - | |
diff --git a/users/ajp10304/rules.mk b/users/ajp10304/rules.mk
deleted file mode 100644
index 5ae7f651e8..0000000000
--- a/users/ajp10304/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-SRC += ajp10304.c
diff --git a/users/alfrdmalr/alfrdmalr.c b/users/alfrdmalr/alfrdmalr.c
deleted file mode 100644
index 7bc04fb55c..0000000000
--- a/users/alfrdmalr/alfrdmalr.c
+++ /dev/null
@@ -1,91 +0,0 @@
-#include "alfrdmalr.h"
-#include "muse.h"
-
-bool muse_mode = false;
-uint8_t last_muse_note = 0;
-uint16_t muse_counter = 0;
-uint8_t muse_offset = 70;
-uint16_t muse_tempo = 50;
-
-void leader_end_user(void) {
- // reset keyboard to bootloader
- if (leader_sequence_five_keys(KC_R, KC_E, KC_S, KC_E, KC_T)) {
- reset_keyboard();
- }
-}
-
-void matrix_scan_user(void) {
-#ifdef AUDIO_ENABLE
- if (muse_mode) {
- if (muse_counter == 0) {
- uint8_t muse_note = muse_offset + SCALE[muse_clock_pulse()];
- if (muse_note != last_muse_note) {
- stop_note(compute_freq_for_midi_note(last_muse_note));
- play_note(compute_freq_for_midi_note(muse_note), 0xF);
- last_muse_note = muse_note;
- }
- }
- muse_counter = (muse_counter + 1) % muse_tempo;
- } else {
- if (muse_counter) {
- stop_all_notes();
- muse_counter = 0;
- }
- }
-#endif
-}
-
-bool syml_pressed = false;
-bool symr_pressed = false;
-bool settings_active = false;
-bool symbols_active = false;
-bool process_record_user(uint16_t keycode, keyrecord_t *record) {
- switch(keycode) {
- case SYML:
- if (record->event.pressed) {
- syml_pressed = true;
- } else {
- syml_pressed = false;
- }
- break;
- case SYMR:
- if (record->event.pressed) {
- symr_pressed = true;
- } else {
- symr_pressed = false;
- }
- break;
- }
-
- // trilayer-esque behavior. If both SYMBOL layer keys are held, then the
- // settings layer is open. If only one is held, SYMBOL is active.
- if (syml_pressed && symr_pressed) {
- layer_on(_SETTINGS);
- settings_active = true;
- } else if (syml_pressed || symr_pressed) {
- if (settings_active) {
- layer_off(_SETTINGS);
- settings_active = false;
- }
- layer_on(_SYMBOL);
- symbols_active = true;
- } else {
- if (symbols_active) {
- layer_off(_SYMBOL);
- symbols_active = false;
- }
- }
-
- return true;
-}
-
-// allow access to the settings layer to turn music mode back off
-bool music_mask_user(uint16_t keycode) {
- switch (keycode) {
- case SYML:
- case SYMR:
- return false;
- default:
- return true;
- }
-} \ No newline at end of file
diff --git a/users/alfrdmalr/alfrdmalr.h b/users/alfrdmalr/alfrdmalr.h
deleted file mode 100644
index 0709f80b86..0000000000
--- a/users/alfrdmalr/alfrdmalr.h
+++ /dev/null
@@ -1,286 +0,0 @@
-/*
-Copyright 2020 Alfred Maler @alfrdmalr
-
-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
-MERCHANTIBILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program. If not, see <http://www.gnu/org/licenses/>.
-*/
-
-#pragma once
-#include QMK_KEYBOARD_H
-
-enum shared_layers {
- _QWERTY,
- _SYMBOL,
- _NAVIGATION,
- _NUMPAD,
- _SETTINGS
-};
-
-// KEYCODES ============================================================================
-
-// the SYML and SYMR keycodes are just used to activate the symbols layer.
-// they're distinct so that I can hit both of them to activate a trilayer
-enum alfrdmalr_keycodes {
- SYML = SAFE_RANGE,
- SYMR
-};
-
-#define NUMSPACE LT(_NUMPAD, KC_SPC)
-#define NAVLAYER MO(_NAVIGATION)
-#define SYMLAYER MO(_SYMBOL)
-#define SETLAYER MO(_SETTINGS)
-#define CTRLSHFT C(KC_LSFT)
-#define WINUNDO C(KC_Z)
-#define WINCOPY C(KC_C)
-#define WINCUT C(KC_X)
-#define WINPASTE C(KC_V)
-
-// convenience keycodes/aliases for base modifiers
-// bottom row
-#define K41 CTRLSHFT
-#define K42 KC_LGUI
-#define K43 KC_LALT
-// #define K44 SYMLAYER
-#define K44 SYML
-#define K45 NUMSPACE
-#define K46 NUMSPACE
-// #define K47 SYMLAYER
-#define K47 SYMR
-#define K48 KC_RALT
-#define K49 SETLAYER
-#define K4A MU_TOGG
-
-// leftmost column
-#define K00 KC_ESC
-#define K10 KC_TAB
-#define K20 NAVLAYER
-#define K30 KC_LSFT
-#define K40 KC_LCTL
-
-// rightmost column
-#define K0B KC_BSPC
-#define K1B KC_BSPC
-#define K1B_ALT KC_DEL // for 5x12 boards, keep backspace as the top-left key and add delete key
-#define K2B KC_QUOT
-#define K3B KC_RSFT
-#define K4B QK_LEAD
-
-// LAYOUT WRAPPERS =====================================================================
-#if (!defined(LAYOUT) && defined(KEYMAP))
-# define LAYOUT KEYMAP
-#endif
-
-#define LAYOUT_wrapper(...) LAYOUT(__VA_ARGS__)
-#define LAYOUT_ortho_4x12_wrapper(...) LAYOUT_ortho_4x12(__VA_ARGS__)
-#define LAYOUT_ortho_5x12_wrapper(...) LAYOUT_ortho_5x12(__VA_ARGS__)
-
-// KEYCODE GROUPS ======================================================================
-// MISC
-#define ______TRANS______ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
-#define ____NUMROW_L0____ KC_1, KC_2, KC_3, KC_4, KC_5
-#define ____NUMROW_R0____ KC_6, KC_7, KC_8, KC_9, KC_0
-#define _____BASE_L4_____ K41, K42, K43, K44, K45
-#define _____BASE_R4_____ K46, K47, K48, K49, K4A
-
-/* QWERTY ==============================================================================
- * ,-----------------------------------------------------------------------------------.
- * | ESC | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | BKSP |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | TAB | Q | W | E | R | T | Y | U | I | O | P | BKSP |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | NAV | A | S | D | F | G | H | J | K | L | ; | " |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | SHFT | Z | X | C | V | B | N | M | , | . | / | SHFT |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | CTRL | C/S | LGUI | LALT | SYMB | NUM/SPACE | SYMB | RALT | SETT | MUTG | LEAD |
- * `-----------------------------------------------------------------------------------'
- */
-
-// LEFT
-// - CORE
-#define ____QWERTY_L1____ KC_Q, KC_W, KC_E, KC_R, KC_T
-#define ____QWERTY_L2____ KC_A, KC_S, KC_D, KC_F, KC_G
-#define ____QWERTY_L3____ KC_Z, KC_X, KC_C, KC_V, KC_B
-
-// RIGHT
-// - CORE
-#define ____QWERTY_R1____ KC_Y, KC_U, KC_I, KC_O, KC_P
-#define ____QWERTY_R2____ KC_H, KC_J, KC_K, KC_L, KC_SCLN
-#define ____QWERTY_R3____ KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH
-
-/* NUMPAD ==============================================================================
- * ,-----------------------------------------------------------------------------------.
- * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | TRNS |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | TRNS | F9 | F10 | F11 | F12 | | NLCK | 7 | 8 | 9 | - | TRNS |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | ESC | F5 | F6 | F7 | F8 | SPC | SPC | 4 | 5 | 6 | + | ENTR |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | TRNS | F1 | F2 | F3 | F4 | ALT | | 1 | 2 | 3 | / | TRNS |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | TRNS | TRNS | TRNS | TRNS | TRNS | TRNS | 0 | , | . | * | TRNS |
- * `-----------------------------------------------------------------------------------'
- */
-
-// LEFT
-// - CORE
-#define ____NUMPAD_L1____ KC_F9, KC_F10, KC_F11, KC_F12, KC_NO
-#define ____NUMPAD_L2____ KC_F5, KC_F6, KC_F7, KC_F8, KC_SPC
-#define ____NUMPAD_L3____ KC_F1, KC_F2, KC_F3, KC_F4, KC_LALT
-
-// - MODS
-#define ____NUMPAD_L4____ ______TRANS______
-#define K00_NUM KC_TRNS
-#define K10_NUM KC_TRNS
-#define K20_NUM KC_TRNS
-#define K30_NUM KC_TRNS
-#define K40_NUM KC_TRNS
-
-// RIGHT
-// - CORE
-#define ____NUMPAD_R1____ KC_NUM, KC_7, KC_8, KC_9, KC_MINS
-#define ____NUMPAD_R2____ KC_SPC, KC_4, KC_5, KC_6, KC_PLUS
-#define ____NUMPAD_R3____ KC_NO, KC_1, KC_2, KC_3, KC_SLSH
-
-// - MODS
-#define ____NUMPAD_R4____ KC_TRNS, KC_0, KC_COMM, KC_DOT, KC_ASTR
-#define K0B_NUM KC_TRNS
-#define K1B_NUM KC_TRNS
-#define K2B_NUM KC_ENT
-#define K3B_NUM KC_TRNS
-#define K4B_NUM KC_TRNS
-
-/* SYMBOL ==============================================================================
- * ,-----------------------------------------------------------------------------------.
- * | TRNS | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | TRNS |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | TRNS | ! | # | { | } | | | ^ | $ | & | | | DEL |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | TRNS | < | > | ( | ) | | | - | + | = | \ | ` |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | TRNS | ~ | @ | [ | ] | | | _ | * | % | / | TRNS |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | TRNS | TRNS | TRNS | TRNS | TRNS | TRNS | TRNS | TRNS | TRNS | TRNS | TRNS |
- * `-----------------------------------------------------------------------------------'
- */
-
-// LEFT
-// - CORE
-#define ____SYMBOL_L1____ KC_EXCLAIM, KC_HASH, KC_LCBR, KC_RCBR, KC_NO
-#define ____SYMBOL_L2____ KC_LABK, KC_RABK, KC_LPRN, KC_RPRN, KC_NO
-#define ____SYMBOL_L3____ KC_TILD, KC_AT, KC_LBRC, KC_RBRC, KC_NO
-
-// - MODS
-#define ____SYMBOL_L4____ ______TRANS______
-#define K00_SYM KC_TRNS
-#define K10_SYM KC_TRNS
-#define K20_SYM KC_TRNS
-#define K30_SYM KC_TRNS
-#define K40_SYM KC_TRNS
-
-// RIGHT
-// - CORE
-#define ____SYMBOL_R1____ KC_NO, KC_CIRC, KC_DOLLAR, KC_AMPR, KC_PIPE
-#define ____SYMBOL_R2____ KC_NO, KC_MINS, KC_PLUS, KC_EQL, KC_BSLS
-#define ____SYMBOL_R3____ KC_NO, KC_UNDS, KC_ASTR, KC_PERC, KC_SLSH
-
-// - MODS
-#define ____SYMBOL_R4____ ______TRANS______
-#define K0B_SYM KC_TRNS
-#define K1B_SYM KC_DEL
-#define K2B_SYM KC_GRV
-#define K3B_SYM KC_TRNS
-#define K4B_SYM KC_TRNS
-
-/* NAVIGATION ==========================================================================
- * ,-----------------------------------------------------------------------------------.
- * | TRNS | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | TRNS |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | TRNS | | | SPC | F5 | | INS | HOME | END | TAB | DEL | TRNS |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | TRNS | SHFT | CTRl | ALT | GUI | | LEFT | DOWN | UP | RGHT | | ENTR |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | TRNS | UNDO | CUT | COPY | PSTE | | | PGDO | PGUP | CAPS | | TRNS |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | TRNS | TRNS | TRNS | TRNS | TRNS | ESC | TRNS | TRNS | TRNS | TRNS | TRNS |
- * `-----------------------------------------------------------------------------------'
- */
-
-// LEFT
-// - CORE
-#define __NAVIGATION_L1__ KC_NO, KC_NO, KC_SPC, KC_F5, KC_NO
-#define __NAVIGATION_L2__ KC_LSFT, KC_LCTL, KC_LALT, KC_LGUI, KC_NO
-#define __NAVIGATION_L3__ WINUNDO, WINCUT, WINCOPY, WINPASTE, KC_NO
-
-// - MODS
-#define __NAVIGATION_L4__ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_ESC
-#define K00_NAV KC_TRNS
-#define K10_NAV KC_TRNS
-#define K20_NAV KC_TRNS
-#define K30_NAV KC_TRNS
-#define K40_NAV KC_TRNS
-
-// RIGHT
-// - CORE
-#define __NAVIGATION_R1__ KC_INS, KC_HOME, KC_END, KC_TAB, KC_DEL
-#define __NAVIGATION_R2__ KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, KC_NO
-#define __NAVIGATION_R3__ KC_NO, KC_PGDN, KC_PGUP, KC_CAPS, KC_NO
-
-// - MODS
-#define __NAVIGATION_R4__ KC_ESC, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
-#define K0B_NAV KC_TRNS
-#define K1B_NAV KC_TRNS
-#define K2B_NAV KC_ENT
-#define K3B_NAV KC_TRNS
-#define K4B_NAV KC_TRNS
-
-/* SETTINGS ============================================================================
- * ,-----------------------------------------------------------------------------------.
- * | | | | | | | | | | BRID | BRIU | |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | | | | | | | | | | | | |
- * |------+------+------+------+------+-------------+------+------+------+------+------|
- * | | | | | | | MPRV | MPLY | MUTE | MNXT | | |
- * |------+------+------+------+------+------|------+------+------+------+------+------|
- * | ASTG | MUTO | AUOF | AUON | | | | VOLD | VOLU | | | ASTG |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | | | | | TRNS | | TRNS | | | | |
- * `-----------------------------------------------------------------------------------'
- */
-// LEFT
-// - CORE
-#define ___SETTINGS_L1___ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO
-#define ___SETTINGS_L2___ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO
-#define ___SETTINGS_L3___ MU_TOGG, AU_OFF, AU_ON, KC_NO, KC_NO
-
-// - MODS
-#define ___SETTINGS_L4___ KC_NO, KC_NO, KC_NO, KC_TRNS, KC_NO
-#define K00_SET KC_NO
-#define K10_SET KC_NO
-#define K20_SET KC_NO
-#define K30_SET AS_TOGG
-#define K40_SET KC_NO
-
-// RIGHT
-// - CORE
-#define ___SETTINGS_R1___ KC_NO, KC_NO, KC_NO, KC_BRID, KC_BRIU
-#define ___SETTINGS_R2___ KC_MPRV, KC_MPLY, KC_MUTE, KC_MNXT, KC_NO
-#define ___SETTINGS_R3___ KC_NO, KC_VOLD, KC_VOLU, KC_NO, KC_NO
-
-// - MODS
-#define ___SETTINGS_R4___ KC_NO, KC_TRNS, KC_NO, KC_NO, KC_NO
-#define K0B_SET KC_NO
-#define K1B_SET KC_NO
-#define K2B_SET KC_NO
-#define K3B_SET AS_TOGG
-#define K4B_SET KC_NO
diff --git a/users/alfrdmalr/config.h b/users/alfrdmalr/config.h
deleted file mode 100644
index 502d3158bc..0000000000
--- a/users/alfrdmalr/config.h
+++ /dev/null
@@ -1,7 +0,0 @@
-#pragma once
-
-#define MUSIC_MASK (keycode != KC_NO)
-#define MIDI_BASIC
-
-#define LEADER_TIMEOUT 400
-#define LEADER_PER_KEY_TIMING
diff --git a/users/alfrdmalr/readme.md b/users/alfrdmalr/readme.md
deleted file mode 100644
index 9e5f962bbb..0000000000
--- a/users/alfrdmalr/readme.md
+++ /dev/null
@@ -1,46 +0,0 @@
-# alfrdmalr's userspace
-## Overview
-The alphanumeric characters and symbols are spread between three main 'typing' layers: REGULAR, NUMPAD, and SYMBOL.
-
-A fourth layer, NAVIGATION, contains useful modifiers, shortcuts, and navigation functions like the arrow keys and page up/down. This layer also provides access to the `ENTER` and `ESC` keys.
-
-Finally, a SETTINGS layer can be used to adjust certain keyboard-related options.
-
-A visual representation of each layer can be found in [alfrdmalr.h](./alfrdmalr.h)
-
-### Layers
-
-#### REGULAR
-Right now this is just a QWERTY layer, but other layouts (DVORAK, COLEMAK, etc.) could easily be added. The REGULAR layer uses the default modifiers.
-
-The default modifiers are defined in the style `K00`, where the first digit is the row index and the second digit is the column index. These indices are based on the Preonic's 5x12 grid, and are **not** adjusted for a board of different size; for instance, the upper-leftmost key in the preonic layout is `K00`, whereas the upper-leftmost key on a Planck would be `K10`.
-
-This convention is designed to work nicely with layout wrappers.
-
-#### NUMPAD
-The NUMPAD layer puts a numpad under the right hand, surrounding the home row position. Several basic arithmetic operators are also provided, as well as comma/decimal symbols, to emulate a traditional numpad. The numlock/capslock keys are accessible from this layer as well, though it should be noted that the actual keycodes being sent by the numpad are NOT the numpad versions of the numbers - this is to prevent the normal numlock behavior from blocking numbers from being sent.
-
-This layer also holds the first twelve function keys.
-
-#### SYMBOL
-This layer holds all the symbols that are not accessible from the REGULAR layer. There is some redundancy (for instance, `/` exists in both the REGULAR and SYMBOL layer; its position, however, remains consistent) but with the exception of single and double quotes, all symbols are available from this layer.
-
-#### NAVIGATION
-Over time, this layer has become a general utility layer, though its primary function of is still to provide arrow keys under hjkl. The surrounding keys contain similar functionality - for instance, the keys directly below `DOWN` and `UP` are `PAGEDOWN` and `PAGEUP`, respectively. `HOME` and `END` are inverted from this convention, simply because I kept hitting the wrong key when trying to jump to the beginning/end of lines when editing text.
-
-To the immediate right of the NAVIGATION layer key are the following modifiers: `SHIFT`, `CONTROL`, `ALT`, `GUI`. All modifiers are the "left" variants. The idea is to use the left hand to hold different modifiers as necessary while using the right hand to navigate and format.
-
-`ESCAPE` is located on the spacebar from this layer, and `DELETE` is placed next to `BACKSPACE`, for convenience when formatting text. There are also four Windows shortcuts for undo, cut, copy, and paste, located in the same position as the relevant keys on the base layer (undo, for example, is in the same place as the `Z` key). Again, this is for convenience when formatting text.
-
-#### SETTINGS
-The SETTINGS layer can be accessed by pressing both SYMBOL layer keys at once. This is functionally the same as a trilayer, though because both keys are activating the same layer it doesn't actually use the trilayer feature.
-
-This layer contains things like feature toggles, media controls, and other infrequently-used options.
-
-### Leader Key Sequences
-A complete list of leader sequences can be found below. The LEAD key that begins each sequence has been omitted.
-
-
-| Sequence | Function |
-| :------: | -------------------------------- |
-| R-E-S-E-T | Reset the keyboard into DFU mode |
diff --git a/users/alfrdmalr/rules.mk b/users/alfrdmalr/rules.mk
deleted file mode 100644
index 1b674c04ec..0000000000
--- a/users/alfrdmalr/rules.mk
+++ /dev/null
@@ -1,8 +0,0 @@
-SRC += alfrdmalr.c
-
-ifdef AUDIO_ENABLE
- SRC += muse.c
-endif
-
-AUTO_SHIFT_ENABLE = yes
-LEADER_ENABLE = yes
diff --git a/users/anderson/dmc12.c b/users/anderson/dmc12.c
deleted file mode 100644
index 1dd89dce41..0000000000
--- a/users/anderson/dmc12.c
+++ /dev/null
@@ -1,46 +0,0 @@
-#include "dmc12.h"
-
-static uint32_t dmc12_color = 0;
-static uint16_t dmc12_timer = 0;
-static int8_t dmc12_current = 0;
-static uint8_t dmc12_direction = 1;
-
-void dmc12_start(uint32_t color, bool reset) {
- dmc12_color = color;
- if (reset) {
- dmc12_timer = 0;
- dmc12_current = 0;
- dmc12_direction = 1;
- }
-}
-
-void dmc12_process(void) {
- if (!dmc12_timer) {
- dmc12_timer = timer_read();
- return;
- }
- float dist_from_center = ((float)abs(dmc12_current - RGBLED_NUM / 2)) / ((float)RGBLED_NUM);
- if (timer_elapsed(dmc12_timer) > dist_from_center * LED_INTERVAL) {
- dmc12_current += dmc12_direction;
- if (dmc12_current == 0 || dmc12_current == RGBLED_NUM - 1) {
- dmc12_direction *= -1;
- }
- dmc12_timer = timer_read();
- for (int i = 0; i < RGBLED_NUM; i++) {
- if (i > dmc12_current - LED_RADIUS && i < dmc12_current + LED_RADIUS) {
- float intensity = (LED_RADIUS - abs(i - dmc12_current)) / ((float)LED_RADIUS);
- if (i != dmc12_current) {
- intensity /= 4.0;
- }
- rgblight_setrgb_at(
- ((dmc12_color >> 16) & 0xFF) * intensity,
- ((dmc12_color >> 8) & 0xFF) * intensity,
- (dmc12_color & 0xFF) * intensity,
- i
- );
- } else {
- rgblight_setrgb_at(0, 0, 0, i);
- }
- }
- }
-}
diff --git a/users/anderson/dmc12.h b/users/anderson/dmc12.h
deleted file mode 100644
index 6b2bf94a51..0000000000
--- a/users/anderson/dmc12.h
+++ /dev/null
@@ -1,9 +0,0 @@
-// Sexy LED animation.
-
-#include "quantum.h"
-
-#define LED_INTERVAL 160
-#define LED_RADIUS 6
-
-void dmc12_start(uint32_t color, bool reset);
-void dmc12_process(void);
diff --git a/users/anderson/seq.c b/users/anderson/seq.c
deleted file mode 100644
index 8e6edb35d3..0000000000
--- a/users/anderson/seq.c
+++ /dev/null
@@ -1,38 +0,0 @@
-#include "seq.h"
-
-static char buffer[32];
-static uint8_t buffer_size = 0;
-
-void seq_start(void) {
- buffer_size = 0;
- SEND_STRING(":");
-}
-
-bool seq_feed(uint16_t keycode) {
- if (keycode == KC_ENTER) {
- for (int i = 0; i < buffer_size + 1; i++) {
- tap_code(KC_BACKSPACE);
- }
- for (int i = 0; i < seq_config_size; i++) {
- seq_t item = seq_config[i];
- if (strncmp(item.sequence, buffer, buffer_size) == 0) {
- send_unicode_string(item.result);
- }
- }
- buffer_size = 0;
- return false;
- } else if (keycode == KC_BACKSPACE) {
- if (buffer_size) {
- buffer_size--;
- tap_code(keycode);
- }
- return true;
- } else {
- if (keycode >= KC_A && keycode <= KC_Z) {
- buffer[buffer_size++] = keycode - KC_A + 'a';
- tap_code(keycode);
- }
- return true;
- }
-}
-
diff --git a/users/anderson/seq.h b/users/anderson/seq.h
deleted file mode 100644
index 2da4e76154..0000000000
--- a/users/anderson/seq.h
+++ /dev/null
@@ -1,14 +0,0 @@
-#include "quantum.h"
-
-#include <string.h>
-
-typedef struct seq_t {
- const char *sequence;
- const char *result;
-} seq_t;
-
-extern seq_t seq_config[];
-extern uint16_t seq_config_size;
-
-void seq_start(void);
-bool seq_feed(uint16_t keycode);
diff --git a/users/anderson/smoothled.c b/users/anderson/smoothled.c
deleted file mode 100644
index 3af729563c..0000000000
--- a/users/anderson/smoothled.c
+++ /dev/null
@@ -1,34 +0,0 @@
-#include <smoothled.h>
-
-static uint32_t sourceColor = 0x000000;
-static uint32_t currentColor = 0x000000;
-static uint32_t targetColor = 0x000000;
-static int32_t smoothledTimer = -1;
-
-void smoothled_set(uint32_t color) {
- smoothledTimer = timer_read32();
- sourceColor = currentColor;
- targetColor = color;
-}
-
-void smoothled_process(void) {
- if (smoothledTimer < 0) {
- return;
- }
- int32_t kb = timer_elapsed32(smoothledTimer);
- int32_t ka = SMOOTH_DURATION - kb;
- if (kb > SMOOTH_DURATION) {
- kb = SMOOTH_DURATION;
- ka = 0;
- smoothledTimer = -1;
- }
- currentColor = 0;
- for (int i = 2; i >= 0; i--) {
- uint32_t shift = i * 8;
- currentColor |= (ka * ((uint32_t)(sourceColor >> shift) & 0xFF) + kb * ((uint32_t)(targetColor >> shift) & 0xFF)) / SMOOTH_DURATION;
- /*currentColor |= ((targetColor >> shift) & 0xFF);*/
- currentColor <<= 8;
- }
- currentColor >>= 8;
- rgblight_setrgb((currentColor >> 16) & 0xFF, (currentColor >> 8) & 0xFF, currentColor & 0xFF);
-}
diff --git a/users/anderson/smoothled.h b/users/anderson/smoothled.h
deleted file mode 100644
index bf4f8c1770..0000000000
--- a/users/anderson/smoothled.h
+++ /dev/null
@@ -1,6 +0,0 @@
-#include "quantum.h"
-
-#define SMOOTH_DURATION 160
-
-void smoothled_set(uint32_t color);
-void smoothled_process(void);
diff --git a/users/arkag/arkag.c b/users/arkag/arkag.c
deleted file mode 100644
index 7af06acdf1..0000000000
--- a/users/arkag/arkag.c
+++ /dev/null
@@ -1,456 +0,0 @@
-#include "arkag.h"
-#include "eeprom.h"
-
-/*
- Current Layout and Keeb:
- https://github.com/arkag/qmk_firmware/blob/master/keyboards/mechmini/v2/keymaps/arkag/keymap.c
-*/
-
-#include <stdbool.h>
-
-// Start: Written by Chris Lewis
-#ifndef MIN
-#define MIN(a,b) (((a)<(b))?(a):(b))
-#endif
-#ifndef MAX
-#define MAX(a,b) (((a)>(b))?(a):(b))
-#endif
-
-#define TYPING_SPEED_MAX_VALUE 200
-uint8_t typing_speed = 0;
-
-void velocikey_accelerate(void) {
- if (typing_speed < TYPING_SPEED_MAX_VALUE) typing_speed += (TYPING_SPEED_MAX_VALUE / 50);
-}
-
-void velocikey_decelerate(void) {
- static uint16_t decay_timer = 0;
-
- if (timer_elapsed(decay_timer) > 500 || decay_timer == 0) {
- if (typing_speed > 0) typing_speed -= 1;
- //Decay a little faster at half of max speed
- if (typing_speed > TYPING_SPEED_MAX_VALUE / 2) typing_speed -= 1;
- //Decay even faster at 3/4 of max speed
- if (typing_speed > TYPING_SPEED_MAX_VALUE / 4 * 3) typing_speed -= 3;
- decay_timer = timer_read();
- }
-}
-
-uint8_t velocikey_match_speed(uint8_t minValue, uint8_t maxValue) {
- return MAX(minValue, maxValue - (maxValue - minValue) * ((float)typing_speed / TYPING_SPEED_MAX_VALUE));
-}
-// End: Written by Chris Lewis
-
-uint8_t current_os,
- mod_primary_mask,
- fade_interval,
- num_extra_flashes_off = 0;
-Color underglow,
- flash_color,
- saved_color,
- hsv_none = {0,0,0};
-flashState flash_state = no_flash;
-fadeState fade_state = add_fade;
-activityState state = boot;
-
-float song_ussr[][2] = SONG(USSR_ANTHEM);
-
-void set_color (Color new, bool update) {
- rgblight_sethsv_eeprom_helper(new.h, new.s, new.v, update);
-}
-
-void save_color(Color to_save) {
- saved_color = to_save;
-}
-
-void reset_color(void) {
- underglow = saved_color;
-}
-
-Color mod_color(Color current_color, bool should_add, uint8_t change_amount) {
- save_color(underglow);
- int addlim = HUE_MAX - change_amount;
- int sublim = change_amount;
- int leftovers;
- if (should_add) {
- if (current_color.h <= addlim) {
- current_color.h += change_amount;
- } else {
- leftovers = (HUE_MAX + change_amount) % HUE_MAX;
- current_color.h = 0 + leftovers;
- }
- } else {
- if (current_color.h >= sublim) {
- current_color.h -= change_amount;
- } else {
- leftovers = change_amount - current_color.h;
- current_color.h = HUE_MAX - leftovers;
- }
- }
- return current_color;
-}
-
-void check_state (void) {
- static uint16_t active_timer;
- if (!active_timer) {active_timer = timer_read();}
- static bool activated, deactivated, slept;
- switch (state) {
- case active:
- if (!activated) {
- if (slept) {rgblight_mode_noeeprom(1);}
- activated = true;
- deactivated = false;
- }
- fade_interval = velocikey_match_speed(1, 25);
- if (timer_elapsed(active_timer) < INACTIVE_DELAY) {return;}
- active_timer = timer_read();
- state = inactive;
- return;
-
- case inactive:
- if (!deactivated) {
- deactivated = true;
- activated = false;
- }
- velocikey_decelerate();
- fade_interval = velocikey_match_speed(1, 25);
- return;
-
- case boot:
- return;
- }
-}
-
-void fade_rgb (void) {
- static uint16_t fade_timer;
- if (state == boot) {return;}
- if (!fade_timer) {fade_timer = timer_read();}
- if (timer_elapsed(fade_timer) < fade_interval) {return;}
- switch (fade_state) {
- case add_fade:
- if (underglow.h == HUE_MAX) {
- fade_state = sub_fade;
- return;
- }
- underglow.h = underglow.h + 1;
- break;
-
- case sub_fade:
- if (underglow.h == 0) {
- fade_state = add_fade;
- return;
- }
- underglow.h = underglow.h - 1;
- break;
- }
- fade_timer = timer_read();
- if (flash_state == no_flash) {
- set_color(underglow, false);
- }
-}
-
-void flash_rgb (void) {
- static uint16_t flash_timer;
- switch(flash_state) {
- case no_flash:
- return;
-
- case flash_off:
- if (!flash_timer) {flash_timer = timer_read();}
- if (timer_elapsed(flash_timer) >= LED_FLASH_DELAY) {
- set_color(hsv_none, false);
- flash_timer = timer_read();
- flash_state = flash_on;
- }
- return;
-
- case flash_on:
- if (timer_elapsed(flash_timer) >= LED_FLASH_DELAY) {
- set_color(flash_color, false);
- flash_timer = timer_read();
- if (num_extra_flashes_off > 0) {
- flash_state = flash_off;
- num_extra_flashes_off--;
- } else {
- set_color(underglow, false);
- flash_state = no_flash;
- }
- }
- return;
- }
-}
-
-void set_os (uint8_t os, bool update) {
- current_os = os;
- if (update) {
- eeprom_update_byte(EECONFIG_USERSPACE, current_os);
- }
- switch (os) {
- case OS_MAC:
- set_unicode_input_mode(UNICODE_MODE_MACOS);
- underglow = (Color){ 213, 255, 255 };
- break;
- case OS_WIN:
- set_unicode_input_mode(UNICODE_MODE_WINCOMPOSE);
- underglow = (Color){ 128, 255, 255 };
- break;
- case OS_NIX:
- set_unicode_input_mode(UNICODE_MODE_LINUX);
- underglow = (Color){ 43, 255, 255 };
- break;
- default:
- underglow = (Color){ 0, 0, 255 };
- }
- set_color(underglow, update);
- flash_color = underglow;
- flash_state = flash_off;
- state = boot;
- num_extra_flashes_off = 3;
-}
-
-// register GUI if Mac or Ctrl if other
-void pri_mod(bool press) {
- if (press) {
- if (current_os == OS_MAC) {
- register_code(KC_LGUI);
- } else {
- register_code(KC_LCTL);
- }
- } else {
- if (current_os == OS_MAC) {
- unregister_code(KC_LGUI);
- } else {
- unregister_code(KC_LCTL);
- }
- }
-}
-
-// register Ctrl if Mac or GUI if other
-void sec_mod(bool press) {
- if (press) {
- if (current_os == OS_MAC) {
- register_code(KC_LCTL);
- } else {
- register_code(KC_LGUI);
- }
- } else {
- if (current_os == OS_MAC) {
- unregister_code(KC_LCTL);
- } else {
- unregister_code(KC_LGUI);
- }
- }
-}
-
-void multi_tap(uint8_t num_of_chars, uint16_t keycode, bool use_shift) {
- if (use_shift) {
- register_code(KC_LSFT);
- }
- for (int i = 0; i < num_of_chars; i++) {
- tap_code(keycode);
- }
- if (use_shift) {
- unregister_code(KC_LSFT);
- }
-}
-
-void pair_surround_type(uint8_t num_of_chars, uint16_t keycode, bool use_shift) {
- for (int i = 0; i < num_of_chars; i++) {
- (use_shift) ? register_mods(MOD_BIT( KC_LSFT)) : NULL;
- tap_code(keycode);
- tap_code((keycode == KC_LCBR) ? KC_RCBR : (keycode == KC_LBRC) ? KC_RBRC : (keycode == KC_LPRN) ? KC_RPRN : KC_NO);
- (use_shift) ? unregister_mods(MOD_BIT( KC_LSFT)) : NULL;
- tap_code(KC_LEFT);
- }
-}
-
-void surround_type(uint8_t num_of_chars, uint16_t keycode, bool use_shift) {
- for (int i = 0; i < num_of_chars; i++) {
- (use_shift) ? register_mods(MOD_BIT( KC_LSFT)) : NULL;
- tap_code(keycode);
- (use_shift) ? unregister_mods(MOD_BIT( KC_LSFT)) : NULL;
- }
- multi_tap(num_of_chars / 2, KC_LEFT, false);
-}
-
-void long_keystroke(size_t num_of_keys, uint16_t keys[]) {
- for (int i = 0; i < num_of_keys-1; i++) {
- register_code(keys[i]);
- }
- tap_code(keys[num_of_keys-1]);
- for (int i = 0; i < num_of_keys-1; i++) {
- unregister_code(keys[i]);
- }
-}
-
-void pri_mod_keystroke(uint16_t key) {
- pri_mod(true);
- tap_code(key);
- pri_mod(false);
-}
-
-void leader_end_user(void) {
- // begin OS functions
- if (leader_sequence_two_keys(KC_P, KC_B)) {
- if (current_os == OS_WIN) {
- long_keystroke(2, (uint16_t[]){KC_LGUI, KC_PAUSE});
- } else {
- return;
- }
- }
- if (leader_sequence_two_keys(KC_S, KC_S)) {
- if (current_os == OS_MAC) {
- long_keystroke(3, (uint16_t[]){KC_LGUI, KC_LSFT, KC_4});
- } else if (current_os == OS_WIN) {
- long_keystroke(3, (uint16_t[]){KC_LGUI, KC_LSFT, KC_S});
- } else {
- return;
- }
- }
- if (leader_sequence_three_keys(KC_C, KC_A, KC_D)) {
- if (current_os == OS_WIN) {
- long_keystroke(3, (uint16_t[]){KC_LCTL, KC_LALT, KC_DEL});
- } else {
- }
- }
- if (leader_sequence_three_keys(KC_C, KC_A, KC_E)) {
- if (current_os == OS_WIN) {
- long_keystroke(3, (uint16_t[]){KC_LCTL, KC_LALT, KC_END});
- } else {
- }
- }
- // end OS functions
-
- // begin format functions
- if (leader_sequence_one_key(KC_B)) {
- surround_type(2, KC_8, true);
- }
- if (leader_sequence_one_key(KC_I)) {
- surround_type(2, KC_MINS, true);
- }
- if (leader_sequence_one_key(KC_U)) {
- surround_type(4, KC_MINS, true);
- }
- if (leader_sequence_one_key(KC_S)) {
- surround_type(4, KC_GRAVE, true);
- }
- if (leader_sequence_one_key(KC_C)) {
- register_unicode(0x00E7); // ç
- }
- if (leader_sequence_two_keys(KC_A, KC_V)) {
- surround_type(2, KC_QUOT, true);
- pair_surround_type(2, KC_LCBR, true);
- surround_type(2, KC_SPC, false);
- }
- if (leader_sequence_two_keys(KC_M, KC_L)) {
- pair_surround_type(1, KC_LBRC, false);
- SEND_STRING("LINK_NAME");
- tap_code(KC_RGHT);
- pair_surround_type(1, KC_LPRN, true);
- pri_mod_keystroke(KC_V);
- }
- if (leader_sequence_two_keys(KC_C, KC_C)) {
- surround_type(2, KC_GRAVE, false);
- }
- if (leader_sequence_three_keys(KC_C, KC_C, KC_C)) {
- surround_type(6, KC_GRAVE, false);
- }
- if (leader_sequence_one_key(KC_E)) {
- register_unicode(0x00E8); // è
- }
- if (leader_sequence_two_keys(KC_E, KC_E)) {
- register_unicode(0x00E9); // é
- }
- // end format functions
-
- // start fancy functions
- if (leader_sequence_two_keys(KC_V, KC_P)) {
- SEND_STRING("ggvG}x:set paste\ni");
- pri_mod_keystroke(KC_V);
- }
- if (leader_sequence_three_keys(KC_C, KC_C, KC_ENT)) {
- surround_type(6, KC_GRAVE, false);
- pri_mod_keystroke(KC_V);
- multi_tap(3, KC_RGHT, false);
- tap_code(KC_ENTER);
- }
- if (leader_sequence_three_keys(KC_T, KC_C, KC_ENT)) {
- multi_tap(3, KC_GRAVE, false);
- pri_mod_keystroke(KC_V);
- multi_tap(2, KC_ENTER, false);
- }
- // end fancy functions
-
- // start typing functions
- if (leader_sequence_two_keys(KC_T, KC_M)) {
- register_unicode(0x2122); // ™
- }
- if (leader_sequence_two_keys(KC_D, KC_D)) {
- SEND_STRING(".\\Administrator");
- }
- if (leader_sequence_three_keys(KC_D, KC_D, KC_D)) {
- SEND_STRING(".\\Administrator");
- tap_code(KC_TAB);
- pri_mod_keystroke(KC_V);
- tap_code(KC_ENTER);
- }
- if (leader_sequence_three_keys(KC_L, KC_O, KC_D)) {
- send_unicode_string("ಠ__ಠ");
- }
- if (leader_sequence_three_keys(KC_M, KC_A, KC_P)) {
- SEND_STRING("https://github.com/qmk/qmk_firmware/tree/master/users/arkag");
- }
- if (leader_sequence_two_keys(KC_F, KC_F)) {
- send_unicode_string("(╯‵Д′)╯彡┻━┻");
- }
- if (leader_sequence_three_keys(KC_F, KC_F, KC_F)) {
- send_unicode_string("┬─┬ノ( º _ º ノ)");
- }
- if (leader_sequence_three_keys(KC_L, KC_O, KC_L)) {
- send_unicode_string("( ͡° ͜ʖ ͡°)");
- }
- if (leader_sequence_three_keys(KC_S, KC_S, KC_S)) {
- send_unicode_string("¯\\_(ツ)_/¯");
- }
- // end typing functions
-}
-
-void matrix_init_user(void) {
- current_os = eeprom_read_byte(EECONFIG_USERSPACE);
- set_os(current_os, false);
-}
-
-void matrix_scan_user(void) {
- check_state();
- flash_rgb();
- fade_rgb();
-}
-
-bool process_record_user(uint16_t keycode, keyrecord_t *record) {
- switch (keycode) {
- #ifdef AUDIO_ENABLE
- case M_USSR:
- PLAY_SONG(song_ussr);
- return false;
- #endif
-
- case M_OS:
- if (record->event.pressed){
- set_os((current_os+1) % _OS_COUNT, true);
- }
- return false;
-
- case M_DASH:
- if (record->event.pressed){
- register_unicode(0x2014); // —
- }
- return false;
-
- default:
- if (record->event.pressed) {
- state = active;
- velocikey_accelerate();
- }
- return true;
- }
-}
diff --git a/users/arkag/arkag.h b/users/arkag/arkag.h
deleted file mode 100644
index e127702e94..0000000000
--- a/users/arkag/arkag.h
+++ /dev/null
@@ -1,105 +0,0 @@
-#pragma once
-
-#include QMK_KEYBOARD_H
-
-#define EECONFIG_USERSPACE (uint8_t *)20
-
-#define SYMBOL MO(_SYMBOL)
-#define MEDIA MO(_MEDIA)
-#define ARROW MO(_ARROW)
-#define FUNCT MO(_FUNCT)
-#define KEEB MO(_KEEB)
-#define HITBOX TT(_HITBOX)
-
-#define LED_FLASH_DELAY 150
-
-#define ACCEL_DELAY 500
-#define DEACCEL_DELAY 500
-
-#define INACTIVE_DELAY 250
-#define SLEEP_DELAY 180000
-
-#define HUE_MAX 254
-
-enum {
- _QWERTY = 0,
- _SYMBOL,
- _MEDIA,
- _ARROW,
- _FUNCT,
- _KEEB,
- _HITBOX,
-};
-
-typedef enum {
- OS_MAC, // Don't assign values
- OS_WIN,
- OS_NIX,
- _OS_COUNT,
-} OS;
-
-typedef struct {
- uint16_t h;
- uint8_t s;
- uint8_t v;
-} Color;
-
-typedef enum {
- no_flash = 0,
- flash_off,
- flash_on,
-} flashState;
-
-typedef enum {
- add_fade = 0,
- sub_fade,
-} fadeState;
-
-typedef enum {
- active = 0,
- inactive,
- boot,
-} activityState;
-
-enum custom_keycodes {
- M_PMOD = SAFE_RANGE,
- M_SMOD,
- M_OS,
- M_DASH,
- M_USSR,
-};
-
-void velocikey_accelerate(void);
-void velocikey_decelerate(void);
-uint8_t velocikey_match_speed(uint8_t minValue, uint8_t maxValue);
-
-void set_color (Color new, bool update);
-void save_color(Color to_save);
-void reset_color(void);
-
-Color mod_color(Color current_color, bool should_add, uint8_t change_amount);
-
-void reverse_fade (void);
-
-void check_state (void);
-
-void fade_rgb (void);
-
-void flash_rgb (void);
-
-void set_os (uint8_t os, bool update);
-
-void tap_key(uint8_t keycode);
-
-void pri_mod(bool press);
-
-void sec_mod(bool press);
-
-void meh_hyper(bool press);
-
-void multi_tap(uint8_t num_of_chars, uint16_t keycode, bool use_shift);
-
-void surround_type(uint8_t num_of_chars, uint16_t keycode, bool use_shift);
-void pair_surround_type(uint8_t num_of_chars, uint16_t keycode, bool use_shift);
-
-void long_keystroke(size_t num_of_keys, uint16_t keys[]);
diff --git a/users/arkag/config.h b/users/arkag/config.h
deleted file mode 100644
index 7dccac7a85..0000000000
--- a/users/arkag/config.h
+++ /dev/null
@@ -1,22 +0,0 @@
-/* Copyright 2021 Alex Kagno
- *
- * 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 TAPPING_TERM 200
-#define LEADER_TIMEOUT 300
-
-#define LEADER_PER_KEY_TIMING
diff --git a/users/arkag/readme.md b/users/arkag/readme.md
deleted file mode 100644
index c685892f86..0000000000
--- a/users/arkag/readme.md
+++ /dev/null
@@ -1,42 +0,0 @@
-# Shot on Pixel 2 XL with Cheap Lamp at Work
-
-![mmm, tasty](mechmini2.jpg)
-
-# I don't know what I'm doing
-
-Some links:
-* [Layout File: Mech Mini 2](layout_mm2)
-* [Userspace Header](arkag_h)
-* [Userspace Main](arkag_c)
-
-Here's a list of some things I have working with my currently [keyboard](mm2_home):
-
-* Reactive (sort of) fading while typing, ported from [Velocikey](https://github.com/qmk/qmk_firmware/pull/3754).
-* OS Switching, storing to EEPROM
-* OS Specific Macros and Shortcuts(WIN+SHIFT+S for Windows and CMD+SHIFT+4 for MacOS)
-* Flashing RGB LED on OS change
-* Hex Unicode Macros dependent on OS(half works on Windows due to [WinCompose](https://github.com/SamHocevar/wincompose) not functioning properly just yet).
-* "Sleep" function activates after 3 minutes (breathing).
-* Markdown style macros for surround type __eve__ ~~ryw~~ *her* **eee** (apparently only certain places support underline and strikethrough ಠ__ಠ)
-
-# License Stuff
-
-Copyright 2018 arkag arkag@pm.me
-
-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/>.
-
-[arkag_c]: /users/arkag/arkag.c
-[arkag_h]: /users/arkag/arkag.h
-[layout_mm2]: /keyboards/mechmini/v2/keymaps/arkag/keymap.c
-[mm2_home]: https://cartel.ltd/projects/mechmini2/
diff --git a/users/arkag/rules.mk b/users/arkag/rules.mk
deleted file mode 100644
index 14d60970b3..0000000000
--- a/users/arkag/rules.mk
+++ /dev/null
@@ -1,4 +0,0 @@
-SRC += arkag.c
-
-# save me space!
-LTO_ENABLE = yes \ No newline at end of file
diff --git a/users/art/.gitignore b/users/art/.gitignore
deleted file mode 100644
index c05ba7978b..0000000000
--- a/users/art/.gitignore
+++ /dev/null
@@ -1,3 +0,0 @@
-*user_config.*
-custom_definitions.h
-secr.h
diff --git a/users/art/art.c b/users/art/art.c
deleted file mode 100644
index f96a5d6cfd..0000000000
--- a/users/art/art.c
+++ /dev/null
@@ -1,722 +0,0 @@
-// Copyright 2022 Artjoms Rizihs (@artjomsR)
-// SPDX-License-Identifier: GPL-2.0-or-later
-
-#include "art.h"
-#include "custom_definitions.h"
-#include "secr.h"
-#include "funcs/led_funcs.h"
-#include "funcs/string_funcs.h"
-
-static const int COPY_DELAY = 50;
-static const int INCOGNITO_DELAY = 500;
-static const int LMB_SPAM_INTERVAL = 30;
-static const uint8_t OS_MOD_KEYS[2] = {MOD_LALT, MOD_LCTL};
-
-bool mac_ctrl_on = false; //for switching tabs
-bool mac_gui_on = false; //for switching languages
-bool mac_alt_window_switching_on = false; //for switching windows
-
-int char_to_bspace = 1;
-int char_to_del = 0;
-
-static bool sarcasm_on = false;
-static bool sarcasm_key = false;
-static bool full_caps_mode = false;
-bool hw_caps_on;
-
-static bool is_lmb_timer_active = false;
-static uint16_t lmb_timer = 0;
-
-__attribute__ ((weak))
-bool process_record_keymap(uint16_t keycode, keyrecord_t *record) {
- return true;
-}
-
-void keyboard_post_init_user(void) {
- led_show_variable_status(is_win);
- layer_state_set_user(layer_state);
-}
-
-void matrix_scan_user(void) {
- if (is_lmb_timer_active) {
- if (timer_elapsed(lmb_timer) > LMB_SPAM_INTERVAL) {
- SEND_STRING(SS_TAP(X_BTN1)); //do stuff that needs spamming
- lmb_timer = timer_read();
- }
- }
-}
-
-bool caps_word_on(void) {
- return hw_caps_on && !full_caps_mode;
-}
-
-
-bool process_record_user(uint16_t keycode, keyrecord_t *record) {
- if (record->event.pressed) {
- if (sarcasm_on) {
- sarcasm_key = ! sarcasm_key;
- del_mods(MOD_LSFT);
- if (sarcasm_key) {
- add_mods(MOD_LSFT);
- }
- }
-
- //Checking all other non-backspace keys to clear the backspace buffer. This is to prevent the bug of deleting N chars sometime after using a macro
- switch (keycode) {
- case LT(COMBOS,KC_BSPC):
- case KC_BACKSPACE:
- case KC_DEL:
- case KC_LSFT:
- case KC_RSFT:
- case XXXXXXX:
- break;
- default:
- char_to_bspace = 1;
- char_to_del = 0;
- break;
- }
- }
-
- switch (keycode) {
- case XXXXXXX:
- if (record->event.pressed && !layer_state_is(BASE)) {
- blink_leds(NUM_SCROLL_LED_ON);
- return true;
- }
- break;
- case KC_TAB:
- if (record->event.pressed && is_mac_with_base_layer_off()) {
- uint8_t mod_state = get_mods() & MOD_MASK_CTRL;
- if (get_mods() & mod_state && !mac_alt_window_switching_on) {
- del_mods(mod_state);
- add_mods(MOD_LGUI);
- mac_ctrl_on = true;
- }
- }
- case KC_GRAVE:
- if (record->event.pressed && is_mac_with_base_layer_off()) {
- uint8_t mod_state = get_mods() & MOD_MASK_ALT;
- if (get_mods() & mod_state) {
- del_mods(mod_state);
- add_mods(MOD_LCTL);
- mac_alt_window_switching_on = true;
- }
- }
- break;
- case KC_LSFT:
- if (record->event.pressed && is_mac_with_base_layer_off() && !mac_ctrl_on) {
- uint8_t mod_state = get_mods() & MOD_MASK_AG;
- if (get_mods() & mod_state) {
- del_mods(mod_state);
- add_mods(MOD_LGUI);
- mac_gui_on = true;
- send_string(lang_switch_combo);
- return false;
- } else {
- return true;
- }
- }
- break;
- case KC_LEFT:
- case KC_RIGHT:
- if (record->event.pressed && is_mac_with_base_layer_off()) {
- /* && !mac_ctrl_on/!mac_alt_tab_on are required since setting the state while holding the key changes
- the modifier from OS's perspective. As a result, just the pressed key cannot be the single source
- of truth to determine which state we're in, and a separate bool is required */
- uint8_t alt_state = get_mods() & MOD_MASK_ALT;
- uint8_t ctrl_state = get_mods() & MOD_MASK_CTRL;
-
- //Allows Ctrl <-/-> on Mac if Ctrl Tab is already pressed
- if (get_mods() & alt_state && mac_alt_window_switching_on && !mac_ctrl_on) {
- del_mods(alt_state);
- add_mods(MOD_LCTL);
- }
-
- if (get_mods() & ctrl_state && !mac_alt_window_switching_on && !mac_gui_on) {
- del_mods(ctrl_state);
- add_mods(MOD_LALT);
- mac_ctrl_on = true;
- }
- }
- break;
- case KC_LALT:
- if (!record->event.pressed && is_mac_with_base_layer_off()) {
- if (mac_alt_window_switching_on) {
- unregister_mods(MOD_LCTL);
- mac_alt_window_switching_on = false;
- return false;
- } else if (mac_gui_on) {
- unregister_mods(MOD_LGUI);
- mac_gui_on = false;
- return false;
- }
- return true;
- }
- break;
- case KC_RALT:
- if (!record->event.pressed && mac_alt_window_switching_on && is_mac_with_base_layer_off()) {
- unregister_mods(MOD_LCTL);
- mac_alt_window_switching_on = false;
- return false;
- }
- break;
- case KC_LCTL:
- case KC_RCTL:
- if (!record->event.pressed && mac_ctrl_on && is_mac_with_base_layer_off()) {
- // Need to remove only previously set mods (e.g. WIN & ALT) to preserve Shift, etc
- unregister_mods(MOD_LGUI);
- unregister_mods(MOD_LALT);
- mac_ctrl_on = false;
- return false;
- }
- break;
-
- case KC_HOME:
- if (record->event.pressed && is_mac_with_base_layer_off()) {
- SEND_STRING(SS_LCTL(SS_TAP(X_LEFT)));
- return false;
- }
- break;
- case KC_END:
- if (record->event.pressed && is_mac_with_base_layer_off()) {
- SEND_STRING(SS_LCTL(SS_TAP(X_RIGHT)));
- return false;
- }
- break;
- case KC_DEL:
- case KC_BSPC:
- if (record->event.pressed) {
- return handle_del_bspace();
- }
- break;
- case LT(COMBOS, KC_BSPC):
- if (record->event.pressed && record->tap.count == 1) {
- return handle_del_bspace();
- }
- break;
- case LT(NAV,KC_APP):
- if (!record->event.pressed && !is_win) {
- mac_ctrl_on = false;
- mac_gui_on = false;
- mac_alt_window_switching_on = false;
- clear_mods();
- SEND_STRING(SS_TAP(X_LCTL) SS_TAP(X_LGUI) SS_TAP(X_LALT) SS_TAP(X_LSFT));
- return true;
- }
- break;
- /* -------------------------------------------------------------------------
- * CAPS WORD
- * ------------------------------------------------------------------------ */
- case KC_CAPS:
- if (record->event.pressed && !layer_state_is(BASE)) {
- if (get_mods() & MOD_MASK_SHIFT) {
- full_caps_mode = true;
- led_show_variable_status(full_caps_mode);
- if (hw_caps_on) {
- SEND_STRING(SS_TAP(X_CAPS));
- }
- } else if (hw_caps_on) {
- full_caps_mode = false;
- }
- }
- break;
- // case KC_SPACE:
- case LT(MEDIA,KC_SPC):
- case LT(NAV,KC_SPC):
- if (record->event.pressed && caps_word_on() && !layer_state_is(BASE) && record->tap.count == 1) {
- SEND_STRING(SS_TAP(X_CAPS));
- }
- break;
- case KC_MINS:
- if (record->event.pressed && caps_word_on() && !layer_state_is(BASE)) {
- SEND_STRING("_");
- return false;
- }
- break;
- /* -------------------------------------------------------------------------
- * CUSTOM MACROS
- * ------------------------------------------------------------------------ */
-
- case CTRL_CTV:
- if (record->event.pressed) {
- bool shifted = get_mods() & MOD_MASK_SHIFT;
- clear_mods();
-
- SEND_STRING(SS_LCTL("c"));
- wait_ms(COPY_DELAY);
- SEND_STRING(SS_LCTL("tv"));
-
- if (!shifted) {
- SEND_STRING(SS_TAP(X_ENTER));
- }
- }
- break;
- case BEAT_BROWSER:
- if (record->event.pressed) {
- SEND_STRING(SS_LCTL("c"));
- wait_ms(COPY_DELAY);
- SEND_STRING(SS_LGUI("1") SS_LCTL("tv") SS_TAP(X_ENTER));
- }
- break;
- case CTRL_LCTV:
- if (record->event.pressed) {
- if (get_mods() & MOD_MASK_SHIFT) {
- //Firefox
- clear_mods();
- SEND_STRING(SS_LCTL("lc"));
- wait_ms(COPY_DELAY);
- SEND_STRING(SS_LCTL("P"));
- wait_ms(INCOGNITO_DELAY);
- SEND_STRING(SS_LCTL("v") SS_TAP(X_ENTER));
- } else if (get_mods() & MOD_MASK_CTRL) {
- //Chrome
- clear_mods();
- SEND_STRING(SS_LCTL("lc"));
- wait_ms(COPY_DELAY);
- SEND_STRING(SS_LCTL("Nv") SS_TAP(X_ENTER));
- } else {
- SEND_STRING(SS_LCTL("lc"));
- wait_ms(COPY_DELAY);
- SEND_STRING(SS_LCTL("tv"));
- }
- }
- break;
- case CTRL_CAV:
- if (record->event.pressed) {
- SEND_STRING(SS_LCTL("c" SS_TAP(X_TAB)));
- wait_ms(COPY_DELAY);
- SEND_STRING(SS_LCTL("av"));
- }
- break;
- case NEUTRAL_COPY:
- if (record->event.pressed && is_win) {
- uint8_t shifted = get_mods() & MOD_MASK_SHIFT;
- if (shifted) {
- del_mods(shifted);
- SEND_STRING(SS_LCTL("z"));
- }
- SEND_STRING(SS_LCTL("c"));
- wait_ms(COPY_DELAY);
- SEND_STRING(SS_LGUI("r") SS_LCTL("vac") SS_TAP(X_ESC));
- }
- break;
- case SARCASM:
- if (record->event.pressed) {
- del_mods(MOD_LSFT);
- sarcasm_on = !sarcasm_on;
- led_show_variable_status(sarcasm_on);
- }
- break;
- case LMB_SPAM:
- if (record->event.pressed) {
- is_lmb_timer_active = ! is_lmb_timer_active;
- lmb_timer = timer_read();
- }
- break;
-
- /* -------------------------------------------------------------------------
- * OS TOGGLING
- * ------------------------------------------------------------------------ */
- case TOG_OS:
- if (record->event.pressed) {
- is_win = ! is_win;
- led_show_variable_status(is_win);
- }
- break;
- case CTR_ALT:
- if (record->event.pressed) {
- add_mods(OS_MOD_KEYS[is_win]);
- } else {
- unregister_mods(OS_MOD_KEYS[is_win]);
- }
- break;
- case CTR_ALT_SHIFT:
- if (record->event.pressed) {
- add_mods(OS_MOD_KEYS[is_win]);
- add_mods(MOD_RSFT);
- } else {
- unregister_mods(OS_MOD_KEYS[is_win]);
- unregister_mods(MOD_RSFT);
- }
- break;
- case OS_CTRL:
- if (is_win) {
- if (record->event.pressed) {
- SEND_STRING(SS_DOWN(X_LCTL));
- } else {
- SEND_STRING(SS_UP(X_LCTL));
- }
- } else {
- if (record->event.pressed) {
- SEND_STRING(SS_DOWN(X_LGUI));
- } else {
- SEND_STRING(SS_UP(X_LGUI));
- }
- }
- break;
- case OS_WIN:
- if (is_win) {
- if (record->event.pressed) {
- SEND_STRING(SS_DOWN(X_LGUI));
- } else {
- SEND_STRING(SS_UP(X_LGUI));
- }
- } else {
- if (record->event.pressed) {
- SEND_STRING(SS_DOWN(X_LCTL));
- } else {
- SEND_STRING(SS_UP(X_LCTL));
- }
- }
- break;
-
- /* -------------------------------------------------------------------------
- * STRING MACROS
- * ------------------------------------------------------------------------ */
- // case :
- // if (record->event.pressed) {
- // send_string_remembering_length("");
- // }
- // break;
- // case :
- // if (record->event.pressed) {
- // send_shifted_strings("", "");
- // }
- // break;
- case TILD_BLOCK:
- if (record->event.pressed) {
- uint8_t alted = get_mods() & MOD_MASK_ALT;
- uint8_t switch_lang_state = get_mods() & MOD_MASK_CTRL;
-
- if (switch_lang_state) {
- del_mods(switch_lang_state);
- switch_lang();
- }
-
- if (alted) {
- del_mods(alted);
- SEND_STRING(SS_TAP(X_ESC) "```" SS_LSFT(SS_TAP(X_ENTER) SS_TAP(X_ENTER)) "```" SS_TAP(X_UP));
- char_to_bspace = 4;
- char_to_del = 4;
- } else {
- SEND_STRING("`` ");
-
- uint8_t shifted = get_mods() & MOD_MASK_SHIFT;
- del_mods(shifted);
- SEND_STRING(SS_TAP(X_LEFT) SS_TAP(X_LEFT));
- add_mods(shifted);
- char_to_bspace = 1;
- char_to_del = 2;
- }
-
- if (switch_lang_state) {
- switch_lang();
- }
- }
- break;
- case ALL_BEST:
- if (record->event.pressed) {
- send_shifted_strings_add("All the best,\nArt", "joms");
- }
- break;
- case AT_EMAIL:
- if (record->event.pressed) {
- send_string_remembering_length("@gmail.com");
- }
- break;
- case BRACES:
- if (record->event.pressed) {
- uint8_t shifted = get_mods() & MOD_MASK_SHIFT;
- uint8_t switch_lang_state = get_mods() & MOD_MASK_CTRL;
- if (switch_lang_state) {
- del_mods(switch_lang_state);
- switch_lang();
- }
-
- add_mods(shifted);
- SEND_STRING("[]");
-
- del_mods(shifted);
- SEND_STRING(SS_TAP(X_LEFT));
- add_mods(shifted);
-
- if (switch_lang_state) {
- switch_lang();
- }
- char_to_bspace = 1;
- char_to_del = 1;
- }
- break;
- case DASHES:
- if (record->event.pressed) {
- SEND_STRING("--");
-
- uint8_t shifted = get_mods() & MOD_MASK_SHIFT;
- del_mods(shifted);
- SEND_STRING(" " SS_TAP(X_LEFT) SS_TAP(X_LEFT));
- add_mods(shifted);
- char_to_bspace = 1;
- char_to_del = 2;
- }
- break;
- case PARENTHS:
- if (record->event.pressed) {
- clear_mods();
- SEND_STRING("() " SS_TAP(X_LEFT) SS_TAP(X_LEFT));
- char_to_bspace = 1;
- char_to_del = 2;
- }
- break;
- case QUOTES:
- if (record->event.pressed) {
- uint8_t shifted = get_mods() & MOD_MASK_SHIFT;
- uint8_t switch_lang_state = get_mods() & MOD_MASK_CTRL;
- if (switch_lang_state) {
- del_mods(switch_lang_state);
- switch_lang();
- }
-
- add_mods(shifted);
- SEND_STRING("''");
-
- del_mods(shifted);
- wait_ms(LONG_TYPING_INTERVAL);
- SEND_STRING(" " SS_TAP(X_LEFT) SS_TAP(X_LEFT));
- add_mods(shifted);
-
- if (switch_lang_state) {
- switch_lang();
- }
- char_to_bspace = 1;
- char_to_del = 2;
- }
- break;
- case QUOTES_RU:
- if (record->event.pressed) {
- clear_mods();
- SEND_STRING("@@ ");
- wait_ms(LONG_TYPING_INTERVAL);
- SEND_STRING(SS_TAP(X_LEFT) SS_TAP(X_LEFT));
- char_to_bspace = 1;
- char_to_del = 2;
- }
- break;
- case STARS:
- if (record->event.pressed) {
- clear_mods();
- SEND_STRING("** " SS_TAP(X_LEFT) SS_TAP(X_LEFT));
- char_to_bspace = 1;
- char_to_del = 2;
- }
- break;
-
- case ADMINS:
- if (record->event.pressed) {
- send_string_remembering_length("admin");
- }
- break;
-
- case G_ADD:
- if (record->event.pressed) {
- send_string_remembering_length("git add ");
- }
- break;
- case G_BRCH:
- if (record->event.pressed) {
- send_shifted_strings_add("git branch ", "-d ");
- }
- break;
- case G_C:
- if (record->event.pressed) {
- send_string_remembering_length("git c[Heckout/Ommit]");
- layer_on(GIT_C);
- }
- break;
- case G_CHEC:
- if (!record->event.pressed) {
- bool shifted = get_mods() & MOD_MASK_SHIFT;
- clear_mods();
-
- press_n_times(15, KC_BACKSPACE);
- send_string_with_translation("heckout ");
- char_to_bspace = 13;
- if (shifted) {
- send_string_with_translation("-b ");
- char_to_bspace = 16;
- }
- layer_off(GIT_C);
- }
- break;
- case G_COMM:
- if (!record->event.pressed) {
- bool ctrled = get_mods() & MOD_MASK_CTRL;
- bool shifted = get_mods() & MOD_MASK_SHIFT;
- clear_mods();
-
- press_n_times(15, KC_BACKSPACE);
- send_string_with_translation("ommit ");
- char_to_bspace = 11;
- layer_off(GIT_C);
-
- if (ctrled) {
- return false;
- }
-
- SEND_STRING("-");
- char_to_bspace = 15;
- if (shifted) {
- send_string_with_translation("a");
- char_to_bspace = 16;
- }
- send_string_with_translation("m");
- SEND_STRING(" \"\"" SS_TAP(X_LEFT));
- char_to_del = 1;
- }
- break;
- case G_DEV:
- if (record->event.pressed) {
- send_shifted_strings("develop", "master");
- }
- break;
- case G_DIFF:
- if (record->event.pressed) {
- send_string_remembering_length("git diff ");
- }
- break;
- case G_FTCH:
- if (record->event.pressed) {
- send_string_remembering_length("git fetch ");
- }
- break;
- case G_LOG:
- if (record->event.pressed) {
- send_string_remembering_length("git log ");
- }
- break;
- case G_MERG:
- if (record->event.pressed) {
- send_string_remembering_length("git merge ");
- }
- break;
- case G_PULL:
- if (record->event.pressed) {
- send_string_remembering_length("git pull ");
- }
- break;
- case G_PUSH:
- if (record->event.pressed) {
- send_string_remembering_length("git push -u ");
- }
- break;
- case G_R:
- if (!record->event.pressed) {
- send_string_remembering_length("git re[Set/Vert/Base -i]");
- layer_on(GIT_R);
- }
- break;
- case G_RBASE:
- if (!record->event.pressed) {
- press_n_times(18, KC_BACKSPACE);
- send_string_with_translation("base -i ");
- char_to_bspace = 14;
- layer_off(GIT_R);
- }
- break;
- case G_RVERT:
- if (!record->event.pressed) {
- press_n_times(18, KC_BACKSPACE);
- send_string_with_translation("vert ");
- char_to_bspace = 11;
- layer_off(GIT_R);
- }
- break;
- case G_RST:
- if (!record->event.pressed) {
- bool shifted = get_mods() & MOD_MASK_SHIFT;
- clear_mods();
-
- press_n_times(18, KC_BACKSPACE);
- send_string_with_translation("set ");
- char_to_bspace = 10;
-
- if (shifted) {
- send_string_with_translation("--hard ");
- char_to_bspace = 17;
- }
- layer_off(GIT_R);
- }
- break;
- case G_S:
- if (!record->event.pressed) {
- send_string_remembering_length("git s[taSh/How/taTus]");
- layer_on(GIT_S);
- }
- break;
- case G_SHOW:
- if (!record->event.pressed) {
- press_n_times(16, KC_BACKSPACE);
- send_string_with_translation("how ");
- char_to_bspace = 9;
- layer_off(GIT_S);
- }
- break;
- case G_STSH:
- if (!record->event.pressed) {
- bool shifted = get_mods() & MOD_MASK_SHIFT;
- clear_mods();
-
- press_n_times(16, KC_BACKSPACE);
- send_string_with_translation("tash ");
- char_to_bspace = 10;
-
- if (shifted) {
- clear_mods();
- send_string_with_translation("apply ");
-
- char_to_bspace = 16;
- }
-
- layer_off(GIT_S);
- }
- break;
- case G_STAT:
- if (!record->event.pressed) {
- press_n_times(16, KC_BACKSPACE);
- send_string_with_translation("tatus ");
- char_to_bspace = 11;
- layer_off(GIT_S);
- }
- break;
-
- case K_CUST1 ... K_CUST3: // custom strings not stored in source control
- if (!record->event.pressed) {
- send_string_remembering_length(custom[keycode - K_CUST1]);
- blink_leds(NUM_SCROLL_LED_ON);
- }
- break;
- case K_SECR1 ... K_SECR4: // Secrets! Externally defined strings, not stored in repo
- if (!record->event.pressed) {
- send_string_remembering_length(secrets[keycode - K_SECR1]);
- blink_leds(NUM_SCROLL_LED_ON);
- }
- break;
-
- case CTL_ALT_START ... CTL_ALT_END:
- if (record->event.pressed) {
- if (is_win) {
- register_code16(LCTL(keycode - CTL_ALT_START));
- } else {
- register_code16(LALT(keycode - CTL_ALT_START));
- }
- } else {
- if (is_win) {
- unregister_code16(LCTL(keycode - CTL_ALT_START));
- } else {
- unregister_code16(LALT(keycode - CTL_ALT_START));
- }
- }
- break;
- }
-
- return process_record_keymap(keycode, record);
-}
diff --git a/users/art/art.h b/users/art/art.h
deleted file mode 100644
index 71af966bef..0000000000
--- a/users/art/art.h
+++ /dev/null
@@ -1,107 +0,0 @@
-// Copyright 2022 Artjoms Rizihs (@artjomsR)
-// SPDX-License-Identifier: GPL-2.0-or-later
-
-#pragma once
-#include QMK_KEYBOARD_H
-
-#define CTL_ALT(kc) (CTL_ALT_START + ((kc) & 0xff))
-
-extern bool is_win;
-#define TYPING_INTERVAL 20
-#define LONG_TYPING_INTERVAL 50
-
-enum layer_names {
-#if SPLIT75_SETUP_FOR_PUBLIC_USE_BY_DEFAULT && defined(KEYBOARD_wheatfield_split75) // defined by "KEYBOARD" followed by folder structure
- BASE,
- QWERTY,
-#else
- QWERTY,
- BASE,
-#endif
-
- WORKMAN,
-#if defined(KEYBOARD_mt_split75)
- CONFIG,
- LAYOUT_CHG,
- QWERTY_MOD,
-#elif defined(KEYBOARD_ktec_ergodone)
- FKEYS,
- CTRL_NAV,
- SHIFT_NAV,
-#endif
-
- MEDIA,
- COMBOS,
- //STRINGS,
- NAV,
- NUMPAD,
- GIT,
- GIT_C,
- GIT_R,
- GIT_S
-};
-
-enum custom_keycodes_art {
- CTRL_CTV = SAFE_RANGE,
- CTRL_LCTV,
- CTRL_CAV,
- BEAT_BROWSER,
- NEUTRAL_COPY,
- SARCASM,
- LMB_SPAM,
-
- TOG_OS,
- CTR_ALT,
- CTR_ALT_SHIFT,
- OS_CTRL,
- OS_WIN,
-
- TILD_BLOCK,
- ALL_BEST,
- AT_EMAIL,
- BRACES,
- DASHES,
- PARENTHS,
- STARS,
- QUOTES,
- QUOTES_RU,
-
- ADMINS,
- PRESCRIPTION,
- FOURS,
-
- G_ADD,
- G_BRCH,
- G_C,
- G_CHEC,
- G_COMM,
- G_DEV,
- G_DIFF,
- G_FTCH,
- G_LOG,
- G_MERG,
- G_PULL,
- G_PUSH,
- G_R,
- G_RBASE,
- G_RVERT,
- G_RST,
- G_S,
- G_STAT,
- G_STSH,
- G_SHOW,
-
- K_CUST1,
- K_CUST2,
- K_CUST3,
-
- K_SECR1,
- K_SECR2,
- K_SECR3,
- K_SECR4,
-
- CTL_ALT_START,
- CTL_ALT_END = CTL_ALT_START + 0xff,
-
- NEW_SAFE_RANGE //for keymap specific codes
-};
diff --git a/users/art/art_user_config.h.example b/users/art/art_user_config.h.example
deleted file mode 100644
index b523867259..0000000000
--- a/users/art/art_user_config.h.example
+++ /dev/null
@@ -1,7 +0,0 @@
-// Copyright 2022 Artjoms Rizihs (@artjomsR)
-// SPDX-License-Identifier: GPL-2.0-or-later
-
-#define SPLIT75_SETUP_FOR_PUBLIC_USE_BY_DEFAULT true
-#define WORKMAN_TO_QWERTY_HW_MAPPING false
-
-#define lang_switch_combo SS_LGUI(SS_TAP(X_Z)) \ No newline at end of file
diff --git a/users/art/config.h b/users/art/config.h
deleted file mode 100644
index 78c7851c65..0000000000
--- a/users/art/config.h
+++ /dev/null
@@ -1,14 +0,0 @@
-// Copyright 2022 Artjoms Rizihs (@artjomsR)
-// SPDX-License-Identifier: GPL-2.0-or-later
-
-#pragma once
-
-#undef TAPPING_TOGGLE
-#define TAPPING_TOGGLE 2
-
-#define COMBO_SHOULD_TRIGGER
-
-// saving space
-#define LAYER_STATE_16BIT // remove if using more than 16 layers
-#define NO_ACTION_ONESHOT
-#define NO_MUSIC_MODE \ No newline at end of file
diff --git a/users/art/custom_definitions.h.example b/users/art/custom_definitions.h.example
deleted file mode 100644
index b15d3d5e6d..0000000000
--- a/users/art/custom_definitions.h.example
+++ /dev/null
@@ -1,8 +0,0 @@
-// Copyright 2022 Artjoms Rizihs (@artjomsR)
-// SPDX-License-Identifier: GPL-2.0-or-later
-
-static char * custom[] = {
- "",
- "",
- ""
-}; \ No newline at end of file
diff --git a/users/art/funcs/led_funcs.c b/users/art/funcs/led_funcs.c
deleted file mode 100644
index 873836d368..0000000000
--- a/users/art/funcs/led_funcs.c
+++ /dev/null
@@ -1,55 +0,0 @@
-// Copyright 2022 Artjoms Rizihs (@artjomsR)
-// SPDX-License-Identifier: GPL-2.0-or-later
-
-#include "led_funcs.h"
-
-bool hw_caps_on;
-
-__attribute__ ((weak)) void num_led_on(void) {}
-__attribute__ ((weak)) void num_led_off(void) {}
-__attribute__ ((weak)) void caps_led_on(void) {}
-__attribute__ ((weak)) void caps_led_off(void) {}
-__attribute__ ((weak)) void scroll_led_on(void) {}
-__attribute__ ((weak)) void scroll_led_off(void) {}
-
-void toggle_leds(int leds) {
- if (NUM_LED_ON & leds) {
- num_led_on();
- } else {
- num_led_off();
- }
- if (SCROLL_LED_ON & leds) {
- scroll_led_on();
- } else {
- scroll_led_off();
- }
-}
-
-bool led_update_user(led_t led_state) {
- // only use caps LED - ignore Num & Scroll
- if (led_state.caps_lock) {
- caps_led_on();
- } else {
- caps_led_off();
- }
-
- hw_caps_on = led_state.caps_lock;
- return false; // 'false' prevents led_update_kb from firing
-}
-
-void blink_leds(int leds) {
- for (int i = 0; i < 3; i++) {
- toggle_leds(leds);
- wait_ms(BLINKING_INTERVAL);
- toggle_leds(ALL_OFF);
- wait_ms(BLINKING_INTERVAL);
- }
-}
-
-void led_show_variable_status(bool value) {
- if (value) {
- blink_leds(NUM_LED_ON);
- } else {
- blink_leds(SCROLL_LED_ON);
- }
-} \ No newline at end of file
diff --git a/users/art/funcs/led_funcs.h b/users/art/funcs/led_funcs.h
deleted file mode 100644
index 65d2b7c155..0000000000
--- a/users/art/funcs/led_funcs.h
+++ /dev/null
@@ -1,17 +0,0 @@
-// Copyright 2022 Artjoms Rizihs (@artjomsR)
-// SPDX-License-Identifier: GPL-2.0-or-later
-
-#pragma once
-#include QMK_KEYBOARD_H
-
-#define NUM_LED_ON 4
-#define SCROLL_LED_ON 1
-#define NUM_SCROLL_LED_ON 5
-#define ALL_OFF 0
-
-#define BLINKING_INTERVAL 25
-
-void toggle_leds(int leds);
-bool led_update_user(led_t led_state);
-void blink_leds(int leds);
-void led_show_variable_status(bool value); \ No newline at end of file
diff --git a/users/art/funcs/string_funcs.c b/users/art/funcs/string_funcs.c
deleted file mode 100644
index 1ea86779cc..0000000000
--- a/users/art/funcs/string_funcs.c
+++ /dev/null
@@ -1,307 +0,0 @@
-// Copyright 2022 Artjoms Rizihs (@artjomsR)
-// SPDX-License-Identifier: GPL-2.0-or-later
-
-#include "art.h"
-#include "string_funcs.h"
-#include "string.h"
-
-bool mac_ctrl_on;
-
-int char_to_bspace;
-int char_to_del;
-
-enum combo_events {
- HOMEROW_UP,
- HOMEROW_LEFT,
- HOMEROW_RIGHT,
- HOMEROW_DOWN,
- HOMEROW_PREV_WORD,
- HOMEROW_NEXT_WORD,
- HOMEROW_HOME,
- HOMEROW_END,
-
- ED_F1,
- ED_F2,
- ED_F3,
- ED_F4,
- ED_F5,
- ED_F6,
- ED_F7,
- ED_F8,
- ED_F9,
- ED_F10,
- ED_F11,
- ED_F12,
- ED_PSCREEN,
-
- ED_ENTER,
-
- ED_CS_ENTER,
- BSPC_LSFT_CLEAR
-};
-
-const uint16_t PROGMEM combo_up[] = {KC_W, KC_R, COMBO_END};
-const uint16_t PROGMEM combo_left[] = {KC_S, KC_E, COMBO_END};
-const uint16_t PROGMEM combo_right[] = {KC_F, KC_E, COMBO_END};
-const uint16_t PROGMEM combo_down[] = {KC_S, KC_F, COMBO_END};
-const uint16_t PROGMEM combo_prev_word[] = {KC_S, KC_LCTL, COMBO_END};
-const uint16_t PROGMEM combo_next_word[] = {KC_F, KC_LCTL, COMBO_END};
-const uint16_t PROGMEM combo_end[] = {KC_W, KC_E, COMBO_END};
-const uint16_t PROGMEM combo_home[] = {KC_E, KC_R, COMBO_END};
-
-const uint16_t PROGMEM combo_enter[] = {KC_BSPC, KC_INS, COMBO_END};
-
-const uint16_t PROGMEM combo_f1[] = {KC_1, KC_Q, COMBO_END};
-const uint16_t PROGMEM combo_f2[] = {KC_2, KC_W, COMBO_END};
-const uint16_t PROGMEM combo_f3[] = {KC_3, KC_E, COMBO_END};
-const uint16_t PROGMEM combo_f4[] = {KC_4, KC_R, COMBO_END};
-const uint16_t PROGMEM combo_f5[] = {KC_5, KC_T, COMBO_END};
-const uint16_t PROGMEM combo_f6[] = {KC_6, KC_Y, COMBO_END};
-const uint16_t PROGMEM combo_f7[] = {KC_7, KC_U, COMBO_END};
-const uint16_t PROGMEM combo_f8[] = {KC_8, KC_I, COMBO_END};
-const uint16_t PROGMEM combo_f9[] = {KC_9, KC_O, COMBO_END};
-const uint16_t PROGMEM combo_f10[] = {KC_0, KC_P, COMBO_END};
-const uint16_t PROGMEM combo_f11[] = {LT(GIT,KC_SLSH), KC_RSFT, COMBO_END};
-const uint16_t PROGMEM combo_f12[] = {KC_RALT, KC_RCTL, COMBO_END};
-const uint16_t PROGMEM combo_pscreen[] = {TO(WORKMAN), KC_RALT, COMBO_END};
-
-const uint16_t PROGMEM done_sm[] = {KC_LEFT, KC_RIGHT, COMBO_END};
-const uint16_t PROGMEM clear_line_combo[] = {KC_BSPC, KC_LSFT, COMBO_END};
-
-combo_t key_combos[] = {
- [HOMEROW_UP] = COMBO(combo_up, KC_UP),
- [HOMEROW_LEFT] = COMBO(combo_left, KC_LEFT),
- [HOMEROW_RIGHT] = COMBO(combo_right, KC_RIGHT),
- [HOMEROW_DOWN] = COMBO(combo_down, KC_DOWN),
- [HOMEROW_PREV_WORD] = COMBO_ACTION(combo_prev_word),
- [HOMEROW_NEXT_WORD] = COMBO_ACTION(combo_next_word),
- [HOMEROW_HOME] = COMBO(combo_end, KC_HOME),
- [HOMEROW_END] = COMBO(combo_home, KC_END),
-
- #if defined(KEYBOARD_ktec_ergodone)
- [ED_ENTER] = COMBO(combo_enter, KC_ENTER),
-
- [ED_F1] = COMBO(combo_f1, KC_F1),
- [ED_F2] = COMBO(combo_f2, KC_F2),
- [ED_F3] = COMBO(combo_f3, KC_F3),
- [ED_F4] = COMBO(combo_f4, KC_F4),
- [ED_F5] = COMBO(combo_f5, KC_F5),
- [ED_F6] = COMBO(combo_f6, KC_F6),
- [ED_F7] = COMBO(combo_f7, KC_F7),
- [ED_F8] = COMBO(combo_f8, KC_F8),
- [ED_F9] = COMBO(combo_f9, KC_F9),
- [ED_F10] = COMBO(combo_f10, KC_F10),
- [ED_F11] = COMBO(combo_f11, KC_F11),
- [ED_F12] = COMBO(combo_f12, KC_F12),
- [ED_PSCREEN] = COMBO(combo_pscreen, KC_PRINT_SCREEN),
-
- [ED_CS_ENTER] = COMBO_ACTION(done_sm),
- #endif
-
- [BSPC_LSFT_CLEAR] = COMBO_ACTION(clear_line_combo),
-};
-
-void process_combo_event(uint16_t combo_index, bool pressed) {
- switch(combo_index) {
- case HOMEROW_PREV_WORD:
- if (pressed) {
- if (is_win) {
- tap_code16(C(KC_LEFT));
- } else {
- tap_code16(A(KC_LEFT));
- }
- }
- break;
- case HOMEROW_NEXT_WORD:
- if (pressed) {
- if (is_win) {
- tap_code16(C(KC_RIGHT));
- } else {
- tap_code16(A(KC_RIGHT));
- }
- }
- break;
- case BSPC_LSFT_CLEAR:
- if (pressed) {
- tap_code16(KC_END);
- tap_code16(S(KC_HOME));
- tap_code16(KC_BSPC);
- }
- break;
- case ED_CS_ENTER:
- if (pressed) {
- tap_code16(C(S(KC_ENTER)));
- }
- break;
- }
-}
-
-bool combo_should_trigger(uint16_t combo_index, combo_t *combo, uint16_t keycode, keyrecord_t *record) {
- return !layer_state_is(BASE);
-}
-
-bool is_mac_with_base_layer_off(void) {
- return !is_win && !layer_state_is(BASE);
-}
-
-void switch_lang(void) {
- if (is_win) {
- SEND_STRING(SS_LALT(SS_TAP(X_LSFT)));
- } else {
- send_string(lang_switch_combo);
- wait_ms(10);
- }
-}
-
-void press_n_times(int times, uint16_t key) {
- for (int i=0; i<times; i++) {
- // wait_ms(TYPING_INTERVAL);
- tap_code16(key);
- }
-}
-
-
-bool handle_del_bspace(void) {
- if (char_to_bspace > 1 || char_to_del > 0) {
- layer_off(GIT_C);
- layer_off(GIT_R);
- layer_off(GIT_S);
-
- press_n_times(char_to_bspace, KC_BACKSPACE);
- char_to_bspace = 1;
- press_n_times(char_to_del, KC_DEL);
- char_to_del = 0;
-
- return false;
- }
-
- if (is_mac_with_base_layer_off()) {
- uint8_t mod_state = get_mods() & MOD_MASK_CTRL;
- if (get_mods() & mod_state) {
- del_mods(mod_state);
- add_mods(MOD_LALT);
- mac_ctrl_on = true;
- }
- }
- return true;
-}
-
-void send_string_with_translation(char *string) {
- #if WORKMAN_TO_QWERTY_HW_MAPPING
- if (layer_state_is(WORKMAN)) {
- int isUpperCase = 0;
- for (int i = 0; i < strlen(string); i++) {
- char toPrint = string[i];
- if (isupper(toPrint)) {
- if (toPrint == 'P') {
- SEND_STRING(":");
- continue;
- }
-
- isUpperCase = 1;
- toPrint = tolower(toPrint);
- }
- switch (toPrint) {
- case ':':
- toPrint = 'I';
- break;
-
- case 'w':
- toPrint = 'd';
- break;
- case 'e':
- toPrint = 'r';
- break;
- case 'r':
- toPrint = 'w';
- break;
- case 't':
- toPrint = 'b';
- break;
- case 'y':
- toPrint = 'j';
- break;
- case 'u':
- toPrint = 'f';
- break;
- case 'i':
- toPrint = 'u';
- break;
- case 'o':
- toPrint = 'p';
- break;
- case 'p':
- toPrint = ';';
- break;
-
- case 'd':
- toPrint = 'h';
- break;
- case 'f':
- toPrint = 't';
- break;
- case 'h':
- toPrint = 'y';
- break;
- case 'j':
- toPrint = 'n';
- break;
- case 'k':
- toPrint = 'e';
- break;
- case 'l':
- toPrint = 'o';
- break;
- case ';':
- toPrint = 'i';
- break;
-
- case 'b':
- toPrint = 'm';
- break;
- case 'n':
- toPrint = 'k';
- break;
- case 'm':
- toPrint = 'l';
- break;
- }
- if (isUpperCase) {
- isUpperCase = 0;
- toPrint = toupper(toPrint);
- }
- send_char(toPrint);
- }
- } else {
- send_string(string);
- }
- #else
- send_string(string);
- #endif
-}
-
-void send_string_remembering_length(char *string) {
- send_string_with_translation(string);
- char_to_bspace = strlen(string);
-}
-
-void send_shifted_strings(char *string1, char *string2) {
- if (get_mods() & MOD_MASK_SHIFT) {
- clear_mods();
- send_string_remembering_length(string2);
- } else {
- send_string_remembering_length(string1);
- }
-}
-
-void send_shifted_strings_add(char *string1, char *string2) {
- bool shifted = get_mods() & MOD_MASK_SHIFT;
- clear_mods();
-
- send_string_remembering_length(string1);
-
- if (shifted) {
- send_string(string2);
- char_to_bspace = strlen(string1) + strlen(string2);
- }
-}
diff --git a/users/art/funcs/string_funcs.h b/users/art/funcs/string_funcs.h
deleted file mode 100644
index 6d0c424245..0000000000
--- a/users/art/funcs/string_funcs.h
+++ /dev/null
@@ -1,14 +0,0 @@
-// Copyright 2022 Artjoms Rizihs (@artjomsR)
-// SPDX-License-Identifier: GPL-2.0-or-later
-
-#pragma once
-#include QMK_KEYBOARD_H
-
-bool is_mac_with_base_layer_off(void);
-void switch_lang(void);
-void press_n_times(int times, uint16_t key);
-bool handle_del_bspace(void);
-void send_string_with_translation(char *string);
-void send_string_remembering_length(char *string);
-void send_shifted_strings(char *string1, char *string2);
-void send_shifted_strings_add(char *string1, char *string2); \ No newline at end of file
diff --git a/users/art/rules.mk b/users/art/rules.mk
deleted file mode 100644
index 9bf4d167fc..0000000000
--- a/users/art/rules.mk
+++ /dev/null
@@ -1,15 +0,0 @@
-SRC += art.c
-SRC += funcs/led_funcs.c
-SRC += funcs/string_funcs.c
-
-COMBO_ENABLE = yes
-
-# saving space
-COMMAND_ENABLE = no
-CONSOLE_ENABLE = no
-GRAVE_ESC_ENABLE = no
-LTO_ENABLE = yes
-MAGIC_ENABLE = no
-# MOUSEKEY_ENABLE = no
-MUSIC_ENABLE = no
-SPACE_CADET_ENABLE = no \ No newline at end of file
diff --git a/users/art/secr.h.example b/users/art/secr.h.example
deleted file mode 100644
index 468943fad2..0000000000
--- a/users/art/secr.h.example
+++ /dev/null
@@ -1,9 +0,0 @@
-// Copyright 2022 Artjoms Rizihs (@artjomsR)
-// SPDX-License-Identifier: GPL-2.0-or-later
-
-static char * secrets[] = {
- "",
- "",
- "",
- ""
-}; \ No newline at end of file
diff --git a/users/badger/README.md b/users/badger/README.md
deleted file mode 100644
index fca1028a59..0000000000
--- a/users/badger/README.md
+++ /dev/null
@@ -1,31 +0,0 @@
-# A multi-OS keyboard layout with support for both Linux (KDE) and MacOS-specific QWERTY layouts for many 60-ish% keyboards (
-
-## Author: [BlueTufa](https://github.com/BlueTufa)
-
-> Supported Keyboards: 1up RGB and HTE, Clueboard 66, dztech 60 RGB, and partial support for Preonic and Planck ortholinear keyboards.
-
-## Layouts
-
-### QWERTY
-Default layer: Standard QWERTY layer with CAPS lock mapped to ESC. ESC is a Layer toggle, when held down it maps to KDE-specific MOVE layer. Dedicated Function key for ADJUST layer. I also take advantage of the AG_SWAP when using this keyboard on Linux, which swaps between ALT and GUI on both sides.
-
-Mac layer: Mostly the same as the default layer, except that the ESC key maps to a MacOS specific set of MOVE layer shortcuts. These leverage a piece of software called Rectangle, which makes up for some of the tiling shortcomings of MacOS.
-
-### MOVE layer
-OS-specific convenience shortcuts. Macros are defined to make it easier to adapt these to other operating systems. The macros also help maintain the spacing that helps with the readability of the layers in source control.
-
-The main goal of the MOVE layer is to manage window move and resize, and jump to a specific virtual desktop. The other function is to expose VIM-style move keys as arrow keys to other applications. Some keys from ADJUST layer are also redefined here.
-
-Care was taken to keep the tiling and virtual desktop shortcuts as similar as possible between Linux and MacOS in this MOVE layer. The most notable difference is that I haven't found a good way to do corner tiling in Linux the way that it's supported in MacOS Rectangle.
-
-REMINDER: The 9-key left-hand pattern requires the installation of the MacOS rectangle app:
-
-```bash
-brew cask install rectangle
-```
-
-### ADJUST layer
-Access to function keys as well as media controls and keyboard settings. Some useful OS action keys are defined here as well.
-
-### Config layer
-Access to Quantum keyboard controls as well as RGB configuration. If audio is supported it would belong in this layer as well.
diff --git a/users/badger/badger.c b/users/badger/badger.c
deleted file mode 100644
index 4551840610..0000000000
--- a/users/badger/badger.c
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
-Copyright 2020 Dan White <opensource@bluetufa.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 "badger.h"
-
-bool _capsLockState;
-
-__attribute__ ((weak))
-void keyboard_post_init_user(void) {
- _capsLockState = false;
-}
-
-__attribute__ ((weak))
-bool process_record_user(uint16_t keycode, keyrecord_t *record) {
- switch (keycode) {
- case CS_RIGHT:
- if (record->event.pressed) {
- SEND_STRING(SS_LALT(SS_TAP(X_B)SS_TAP(X_ENTER)));
- return false;
- }
- break;
- case CS_DOWN:
- if (record->event.pressed) {
- SEND_STRING(SS_LALT(SS_TAP(X_V)SS_TAP(X_ENTER)));
- return false;
- }
- break;
- case KC_CAPS:
- if (record->event.pressed) {
- _capsLockState = !_capsLockState;
- return true;
- }
- break;
- default:
- return true;
- }
- return true;
-}
diff --git a/users/badger/badger.h b/users/badger/badger.h
deleted file mode 100644
index bb2dcd0bd3..0000000000
--- a/users/badger/badger.h
+++ /dev/null
@@ -1,109 +0,0 @@
-/*
-Copyright 2020 Dan White <opensource@bluetufa.com>
-
-This program is free software: you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 2 of the License, or
-(at your option) any later version.
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-You should have received a copy of the GNU General Public License
-along with this program. If not, see <http://www.gnu.org/licenses/>.
-*/
-#pragma once
-
-#include QMK_KEYBOARD_H
-
-enum layers {
- _QWERTY_MAC,
- _MOVE_MAC,
- _QWERTY_LINUX,
- _MOVE_LINUX,
- _ADJUST,
- _CONFIG
-};
-
-enum CustomKeys {
- CS_RIGHT = SAFE_RANGE,
- CS_DOWN
-};
-
-#define OS_POP LCTL(KC_F10)
-#define MAC_POP LCTL(KC_UP)
-#define MAC_FRC LGUI(LALT(KC_ESC))
-#define OS_COPY LSFT(LCTL(KC_C))
-#define OS_PAST LSFT(LCTL(KC_V))
-#define MAC_PST LGUI(KC_V)
-#define MAC_CPY LGUI(KC_C)
-#define KC_BACK LCTL(LSFT(KC_LBRC))
-#define KC_NEXT LCTL(LSFT(KC_RBRC))
-
-#define MOVE LT(_MOVE_LINUX, KC_ESC)
-#define MOVE_MAC LT(_MOVE_MAC, KC_ESC)
-#define ADJUST MO(_ADJUST)
-#define CFG_MAC LT(_CONFIG, MAC_POP)
-#define CFG_LNX LT(_CONFIG, OS_POP)
-
-#define WD_BACK LALT(KC_LEFT)
-#define WD_FRWD LALT(KC_RIGHT)
-
-#define VD_1 LCTL(KC_F1)
-#define VD_2 LCTL(KC_F2)
-#define VD_3 LCTL(KC_F3)
-
-#define WM_UH LGUI(KC_UP)
-#define WM_BH LGUI(KC_DOWN)
-#define WM_LH LGUI(KC_LEFT)
-#define WM_RH LGUI(KC_RIGHT)
-#define WM_MAX LGUI(KC_PGUP)
-
-#define CM_RIGHT LGUI(KC_D)
-#define CM_DOWN LGUI(LSFT(KC_D))
-
-/* THESE are not defaults in KDE and must be set manually */
-#define WM_VD1 HYPR(KC_1)
-#define WM_VD2 HYPR(KC_2)
-#define WM_VD3 HYPR(KC_3)
-
-/* IntelliJ / JetBrains shortcuts with Mac keymap */
-#define IJ_BACK LGUI(LALT(KC_LEFT))
-#define IJ_FWD LGUI(LALT(KC_RIGHT))
-#define IJ_UP LGUI(LALT(KC_UP))
-#define IJ_DOWN LGUI(LALT(KC_DOWN))
-#define IJ_IMPL LGUI(LALT(KC_B))
-#define IJ_DECL LGUI(KC_B)
-#define IJ_REN LSFT(KC_F6)
-#define IJ_USAG LALT(KC_F7)
-#define IJ_RUN KC_F9
-#define IJ_STEP KC_F8
-#define IJ_INTO LSFT(KC_F7)
-#define IJ_OUT LSFT(KC_F8)
-#define IJ_STOP LGUI(KC_F2)
-#define IJ_IMPS LCTL(LALT(LSFT(KC_EQUAL)))
-#define IJ_IMPH LCTL(LALT(LSFT(KC_MINUS)))
-#define IJ_TOP LGUI(KC_HOME)
-#define IJ_BOTT LGUI(KC_END)
-#define IJ_FIND LGUI(LSFT(KC_F))
-
-/* MacOS virtual desktop shortcuts */
-#define M_VD1 LCTL(KC_1)
-#define M_VD2 LCTL(KC_2)
-#define M_VD3 LCTL(KC_3)
-
-/* rectangle shortcuts */
-#define MM_ULCN LCTL(LGUI(KC_LEFT))
-#define MM_URCN LCTL(LGUI(KC_RIGHT))
-#define MM_LLCN LCTL(LSFT(LGUI(KC_LEFT)))
-#define MM_LRCN LCTL(LSFT(LGUI(KC_RIGHT)))
-#define MM_MAX LALT(LGUI(KC_F))
-#define MM_LH HYPR(KC_LBRC)
-#define MM_RH HYPR(KC_RBRC)
-#define MM_UH LALT(LGUI(KC_UP))
-#define MM_BH LALT(LGUI(KC_DOWN))
-#define MM_LEFT LCTL(LALT(LGUI(KC_LEFT)))
-#define MM_RGHT LCTL(LALT(LGUI(KC_RIGHT)))
-
-#define DF_1 DF(_QWERTY_MAC)
-#define DF_2 DF(_QWERTY_LINUX)
diff --git a/users/badger/ortho.c b/users/badger/ortho.c
deleted file mode 100644
index ff84e1706f..0000000000
--- a/users/badger/ortho.c
+++ /dev/null
@@ -1,151 +0,0 @@
-/*
-Copyright 2020 Dan White <opensource@bluetufa.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 "ortho.h"
-#include "badger.h"
-
-int _currentLayer;
-bool _capsLock;
-
-#ifdef AUDIO_ENABLE
-float capsOnSong[][2] = SONG(CAPS_ON);
-float capsOffSong[][2] = SONG(CAPS_OFF);
-float defaultLayerSong[][2] = SONG(QWERTY_LAYER_SONG);
-float moveLayerSong[][2] = SONG(MOVE_LAYER_SONG);
-float macLayerSong[][2] = SONG(MAC_LAYER_SONG);
-float raiseLayerSong[][2] = SONG(RAISE_LAYER_SONG);
-float lowerLayerSong[][2] = SONG(LOWER_LAYER_SONG);
-float agSwapSong[][2] = SONG(LONG_AG_SWAP);
-float agNormSong[][2] = SONG(LONG_AG_NORM);
-#endif
-
-__attribute__ ((weak))
-void keyboard_post_init_user(void) {
- _capsLock = false;
- _currentLayer = _QWERTY_MAC_ORTHO;
- layer_on(_currentLayer);
-}
-
-__attribute__ ((weak))
-bool process_record_user(uint16_t keycode, keyrecord_t *record) {
- dprintf("Key event recorded. KEYCODE: %u , event: %u\n", keycode, record->event.pressed);
- switch (keycode) {
- case CS_RIGHT:
- if (record->event.pressed) {
- SEND_STRING(SS_LALT(SS_TAP(X_B)SS_TAP(X_ENTER)));
- return false;
- }
- break;
- case CS_DOWN:
- if (record->event.pressed) {
- SEND_STRING(SS_LALT(SS_TAP(X_V)SS_TAP(X_ENTER)));
- return false;
- }
- break;
- case KC_CAPS:
- if (record->event.pressed) {
- dprintf("CAPS_LOCK state: %u\n", _capsLock);
- _capsLock = !_capsLock;
- #ifdef AUDIO_ENABLE
- _capsLock ? PLAY_SONG(capsOnSong) : PLAY_SONG(capsOffSong);
- #endif
- return true;
- }
- break;
- case AG_SWAP:
- #ifdef AUDIO_ENABLE
- PLAY_SONG(agSwapSong);
- #endif
- return true;
- break;
- case AG_NORM:
- #ifdef AUDIO_ENABLE
- PLAY_SONG(agNormSong);
- #endif
- return true;
- break;
- case KC_MAC2:
- if (record->event.pressed) {
- SEND_STRING("ll\n");
- return false;
- }
- break;
- case KC_MAC1:
- if (record->event.pressed) {
- SEND_STRING("open https://www.reddit.com/r/mechanicalkeyboards\n");
- return false;
- }
- break;
- case KC_FIRST:
- if (record->event.pressed) {
- // don't turn off the QWERTY layer
- if (_currentLayer != _QWERTY_MAC_ORTHO) {
- layer_off(_currentLayer);
- }
- _currentLayer = _QWERTY_MAC_ORTHO;
- layer_on(_currentLayer);
- playSongForLayer(_currentLayer);
- return false;
- }
- break;
- case KC_LYRC:
- if (record->event.pressed) {
- dprintf("LYR CYCLE pressed %u, CURRENT_LAYER: %u\n", keycode, _currentLayer);
- // don't turn off the QWERTY layer or the ADJUST layer
- if (_currentLayer != _QWERTY_MAC_ORTHO) {
- layer_off(_currentLayer);
- }
- // don't lock the ADJUST layer
- // since this key is accessible via the ADJUST
- // layer, as it will require tricky state management
- if (++_currentLayer == _ADJUST_ORTHO) {
- _currentLayer = _QWERTY_MAC_ORTHO;
- } else {
- layer_on(_currentLayer);
- }
-
- playSongForLayer(_currentLayer);
- return false;
- }
- break;
- }
- return true;
-}
-
-void playSongForLayer(int currentLayer) {
- #ifdef AUDIO_ENABLE
- switch (currentLayer) {
- case _QWERTY_LINUX:
- PLAY_SONG(defaultLayerSong);
- break;
- case _MOVE_LINUX:
- PLAY_SONG(moveLayerSong);
- break;
- case _QWERTY_MAC:
- PLAY_SONG(macLayerSong);
- break;
- case _MOVE_MAC:
- PLAY_SONG(moveLayerSong);
- break;
- case _RAISE:
- PLAY_SONG(raiseLayerSong);
- break;
- case _LOWER:
- PLAY_SONG(lowerLayerSong);
- break;
- default:
- break;
- }
- #endif
-} \ No newline at end of file
diff --git a/users/badger/ortho.h b/users/badger/ortho.h
deleted file mode 100644
index 207f2e2822..0000000000
--- a/users/badger/ortho.h
+++ /dev/null
@@ -1,58 +0,0 @@
-/*
-Copyright 2020 Dan White <opensource@bluetufa.com>
-
-This program is free software: you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 2 of the License, or
-(at your option) any later version.
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-You should have received a copy of the GNU General Public License
-along with this program. If not, see <http://www.gnu.org/licenses/>.
-*/
-#pragma once
-
-#include "badger.h"
-
-enum OrthoLayers {
- _QWERTY_MAC_ORTHO,
- _MOVE_MAC_ORTHO,
- _QWERTY_LINUX_ORTHO,
- _MOVE_LINUX_ORTHO,
- _RAISE,
- _LOWER,
- _ADJUST_ORTHO
-};
-
-enum OrthoKeys {
- KC_MAC1 = CS_DOWN + 1,
- KC_MAC2,
- KC_LYRC,
- KC_FIRST
-};
-
-#define P_ADJ LT(_ADJUST_ORTHO, KC_BSPC)
-#define RAISE MO(_RAISE)
-#define LOWER MO(_LOWER)
-#define MOMAC LT(_MOVE_MAC_ORTHO, KC_ESC)
-#define MOLNX LT(_MOVE_LINUX_ORTHO, KC_ESC)
-
-void playSongForLayer(int currentLayer);
-
-#ifdef AUDIO_ENABLE
-#define QWERTY_LAYER_SONG H__NOTE(_G6), H__NOTE(_D6), Q__NOTE(_A5), Q__NOTE(_E5),
-#define MAC_LAYER_SONG H__NOTE(_E5), H__NOTE(_A5), Q__NOTE(_D6), Q__NOTE(_G6), \
- ED_NOTE(_E7), E__NOTE(_CS7), E__NOTE(_E6), E__NOTE(_A6), M__NOTE(_CS7, 20),
-#define LONG_AG_SWAP Q__NOTE(_G5), Q__NOTE(_D6), Q__NOTE(_A6), Q__NOTE(_E7), \
- SD_NOTE(_B5), SD_NOTE(_A5), SD_NOTE(_B5), SD_NOTE(_A5),
-#define LONG_AG_NORM Q__NOTE(_DS4), Q__NOTE(_DS4), B__NOTE(_C5),
-#define MOVE_LAYER_SONG E__NOTE(_GS6), E__NOTE(_A6), S__NOTE(_REST), ED_NOTE(_E7), \
- S__NOTE(_REST), ED_NOTE(_GS7),
-#define RAISE_LAYER_SONG W__NOTE(_BF5), Q__NOTE(_A5), W__NOTE(_BF5), Q__NOTE(_A5), W__NOTE(_E6), Q__NOTE(_B5),
-#define LOWER_LAYER_SONG Q__NOTE(_DS4), E__NOTE(_DS4), E__NOTE(_DS6), Q__NOTE(_DS5), \
- E__NOTE(_DS5), E__NOTE(_DS6), Q__NOTE(_E5), E__NOTE(_E5), E__NOTE(_DS6), Q__NOTE(_DS5),
-#define CAPS_ON W__NOTE(_E5), Q__NOTE(_BF5), W__NOTE(_E5), Q__NOTE(_BF5), W__NOTE(_E5), Q__NOTE(_BF5),
-#define CAPS_OFF W__NOTE(_E5), Q__NOTE(_BF5),
-#endif
diff --git a/users/badger/rules.mk b/users/badger/rules.mk
deleted file mode 100644
index 4f1507b8f3..0000000000
--- a/users/badger/rules.mk
+++ /dev/null
@@ -1,2 +0,0 @@
-SRC += badger.c
-SRC += ortho.c
diff --git a/users/bcat/bcat.c b/users/bcat/bcat.c
deleted file mode 100644
index 3a407cfac0..0000000000
--- a/users/bcat/bcat.c
+++ /dev/null
@@ -1,61 +0,0 @@
-/* Copyright 2021 Jonathan Rascher
- *
- * 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 "bcat.h"
-
-#include "quantum.h"
-
-static int8_t alt_tab_layer = -1;
-
-__attribute__((weak)) void process_record_oled(uint16_t keycode, const keyrecord_t *record) {}
-__attribute__((weak)) bool process_record_keymap(uint16_t keycode, keyrecord_t *record) { return true; }
-
-bool process_record_user(uint16_t keycode, keyrecord_t *record) {
- process_record_oled(keycode, record);
- if (!process_record_keymap(keycode, record)) {
- return false;
- }
- switch (keycode) {
- /* Alt+Tab that holds Alt until current layer is released: */
- case MC_ALTT:
- if (record->event.pressed) {
- if (alt_tab_layer < 0) {
- alt_tab_layer = layer_switch_get_layer(record->event.key);
- register_code(KC_LALT);
- }
- register_code(KC_TAB);
- } else {
- unregister_code(KC_TAB);
- }
- return false;
- default:
- return true;
- }
-}
-
-__attribute__((weak)) layer_state_t layer_state_set_keymap(layer_state_t state) { return state; }
-
-layer_state_t layer_state_set_user(layer_state_t state) {
- state = layer_state_set_keymap(state);
-#if defined(BCAT_ORTHO_LAYERS)
- state = update_tri_layer_state(state, LAYER_LOWER, LAYER_RAISE, LAYER_ADJUST);
-#endif
- if (alt_tab_layer >= 0 && !layer_state_cmp(state, alt_tab_layer)) {
- unregister_code(KC_LALT);
- alt_tab_layer = -1;
- }
- return state;
-}
diff --git a/users/bcat/bcat.h b/users/bcat/bcat.h
deleted file mode 100644
index fb500b3b3b..0000000000
--- a/users/bcat/bcat.h
+++ /dev/null
@@ -1,58 +0,0 @@
-/* Copyright 2021 Jonathan Rascher
- *
- * 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 <stdbool.h>
-
-#include "quantum_keycodes.h"
-
-/* Layer numbers shared across keymaps. */
-enum user_layer {
- /* Base layers: */
- LAYER_DEFAULT,
-
-#if defined(BCAT_ORTHO_LAYERS)
- /* Function layers for ortho (and ergo) boards: */
- LAYER_LOWER,
- LAYER_RAISE,
- LAYER_ADJUST,
-#else
- /* Function layers for traditional boards: */
- LAYER_FUNCTION_1,
- LAYER_FUNCTION_2,
-#endif
-};
-
-/* Custom keycodes shared across keymaps. */
-enum user_keycode {
- MC_ALTT = SAFE_RANGE,
- KEYMAP_SAFE_RANGE,
-};
-
-/* Keycode aliases shared across keymaps. */
-#define KY_CSPC LCTL(KC_SPC)
-#define KY_ZMIN LCTL(KC_EQL)
-#define KY_ZMOUT LCTL(KC_MINS)
-#define KY_ZMRST LCTL(KC_0)
-
-#if defined(BCAT_ORTHO_LAYERS)
-# define LY_LWR MO(LAYER_LOWER)
-# define LY_RSE MO(LAYER_RAISE)
-#else
-# define LY_FN1 MO(LAYER_FUNCTION_1)
-# define LY_FN2 MO(LAYER_FUNCTION_2)
-#endif
diff --git a/users/bcat/bcat_oled.c b/users/bcat/bcat_oled.c
deleted file mode 100644
index 390c9127b4..0000000000
--- a/users/bcat/bcat_oled.c
+++ /dev/null
@@ -1,216 +0,0 @@
-/* Copyright 2021 Jonathan Rascher
- *
- * 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 "bcat_oled.h"
-
-#include "quantum.h"
-#include "bcat.h"
-
-#if defined(BCAT_OLED_PET)
-# include "bcat_oled_pet.h"
-#endif
-
-#define TRIANGLE_UP 0x1e
-#define TRIANGLE_DOWN 0x1f
-
-#if defined(BCAT_OLED_PET)
-static bool oled_pet_should_jump = false;
-#endif
-
-/* Should be overridden by the keymap to render the OLED contents. For split
- * keyboards, this function is only called on the master side.
- */
-__attribute__((weak)) void oled_task_keymap(const oled_keyboard_state_t *keyboard_state) {}
-
-bool oled_task_user(void) {
-#if defined(SPLIT_KEYBOARD)
- if (is_keyboard_master()) {
-#endif
- /* Custom OLED timeout implementation that only considers user activity.
- * Allows the OLED to turn off in the middle of a continuous animation.
- */
- static const uint16_t TIMEOUT_MILLIS = 60000 /* 1 min */;
-
- if (last_input_activity_elapsed() < TIMEOUT_MILLIS) {
- if (!is_oled_on()) {
- oled_on();
- }
- oled_keyboard_state_t keyboard_state = {
- .mods = get_mods(),
- .leds = host_keyboard_led_state(),
- .wpm = get_current_wpm(),
- };
- oled_task_keymap(&keyboard_state);
- } else if (is_oled_on()) {
- oled_off();
- }
-#if defined(SPLIT_KEYBOARD)
- } else {
- /* Display logo embedded at standard location in the OLED font on the
- * slave side. By default, this is a "QMK firmware" logo, but many
- * keyboards substitute their own logo. Occupies 21x3 character cells.
- *
- * Since the slave display buffer never changes, we don't need to worry
- * about oled_render incorrectly turning the OLED on. Instead, we rely
- * on SPLIT_OLED_ENABLE to propagate OLED on/off status from master.
- */
- static const char PROGMEM logo[] = {
- // clang-format off
- 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, 0x90, 0x91, 0x92, 0x93, 0x94,
- 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, 0xb0, 0xb1, 0xb2, 0xb3, 0xb4,
- 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, 0xd0, 0xd1, 0xd2, 0xd3, 0xd4,
- 0x00,
- // clang-format on
- };
-
- oled_write_P(logo, /*invert=*/false);
- }
-#endif
-
- return false;
-}
-
-void render_oled_layers(void) {
- oled_advance_char();
- oled_advance_char();
-#if defined(BCAT_ORTHO_LAYERS)
- oled_write_char(IS_LAYER_ON(LAYER_LOWER) ? TRIANGLE_DOWN : ' ', /*invert=*/false);
- oled_advance_char();
- oled_write_char(IS_LAYER_ON(LAYER_RAISE) ? TRIANGLE_UP : ' ', /*invert=*/false);
-#else
- switch (get_highest_layer(layer_state)) {
- case LAYER_FUNCTION_1:
- oled_write_P(PSTR("FN1"), /*invert=*/false);
- break;
- case LAYER_FUNCTION_2:
- oled_write_P(PSTR("FN2"), /*invert=*/false);
- break;
- default:
- oled_write_P(PSTR(" "), /*invert=*/false);
- break;
- }
-#endif
-}
-
-void render_oled_indicators(led_t leds) {
- oled_advance_char();
- oled_advance_char();
- oled_write_P(leds.num_lock ? PSTR("NUM") : PSTR(" "), /*invert=*/false);
- oled_advance_char();
- oled_advance_char();
- oled_write_P(leds.caps_lock ? PSTR("CAP") : PSTR(" "), /*invert=*/false);
- oled_advance_char();
- oled_advance_char();
- oled_write_P(leds.scroll_lock ? PSTR("SCR") : PSTR(" "), /*invert=*/false);
-}
-
-void render_oled_wpm(uint8_t wpm) {
- static const uint16_t UPDATE_MILLIS = 100;
- static uint32_t update_timeout = 0;
-
- if (timer_expired32(timer_read32(), update_timeout)) {
- oled_advance_char();
- oled_advance_char();
- oled_write_P(wpm > 0 ? PSTR("WPM") : PSTR(" "), /*invert=*/false);
- if (wpm > 0) {
- oled_advance_char();
- oled_advance_char();
- oled_write(get_u8_str(wpm, ' '), /*invert=*/false);
- } else {
- oled_advance_page(/*clearPageRemainder=*/true);
- }
-
- update_timeout = timer_read32() + UPDATE_MILLIS;
- }
-}
-
-#if defined(BCAT_OLED_PET)
-void process_record_oled(uint16_t keycode, const keyrecord_t *record) {
- switch (keycode) {
- case KC_SPACE:
- if (oled_pet_can_jump()) {
- oled_pet_should_jump = record->event.pressed;
- }
- break;
- default:
- break;
- }
-}
-
-static void redraw_oled_pet(uint8_t col, uint8_t line, bool jumping, oled_pet_state_t state) {
- oled_set_cursor(col, line);
- if (jumping) {
- oled_write_raw_P(oled_pet_frame(state), oled_pet_frame_bytes());
- oled_set_cursor(col, line + oled_pet_frame_lines());
- oled_advance_page(/*clearPageRemainder=*/true);
- } else {
- oled_advance_page(/*clearPageRemainder=*/true);
- oled_write_raw_P(oled_pet_frame(state), oled_pet_frame_bytes());
- }
-}
-
-void render_oled_pet(uint8_t col, uint8_t line, const oled_keyboard_state_t *keyboard_state) {
- /* Current animation to draw. We track changes to avoid redrawing the same
- * frame repeatedly, allowing oled_pet_post_render to draw over the
- * animation frame.
- */
- static oled_pet_state_t state = 0;
- static bool state_changed = true;
-
- /* Minimum time until the pet comes down after jumping. */
- static const uint16_t JUMP_MILLIS = 200;
- static bool jumping = false;
-
- /* Time until the next animation or jump state change. */
- static uint32_t update_timeout = 0;
- static uint32_t jump_timeout = 0;
-
- /* If the user pressed the jump key, immediately redraw instead of waiting
- * for the animation frame to update. That way, the pet appears to respond
- * to jump commands quickly rather than lagging. If the user released the
- * jump key, wait for the jump timeout to avoid overly brief jumps.
- */
- bool redraw = state_changed;
- if (oled_pet_should_jump && !jumping) {
- redraw = true;
- jumping = true;
- jump_timeout = timer_read32() + JUMP_MILLIS;
- } else if (!oled_pet_should_jump && jumping && timer_expired32(timer_read32(), jump_timeout)) {
- redraw = true;
- jumping = false;
- }
-
- /* Draw the actual animation, then move the cursor to the end of the
- * rendered area. (Note that we take up an extra line to account for
- * jumping, which shifts the animation up or down a line.)
- */
- if (redraw) {
- redraw_oled_pet(col, line, jumping, state);
- }
- oled_pet_post_render(col, line + !jumping, keyboard_state, redraw);
- oled_set_cursor(col, line + oled_pet_frame_lines() + 1);
-
- /* If the update timer expired, recompute the pet's animation state. */
- if (timer_expired32(timer_read32(), update_timeout)) {
- oled_pet_state_t new_state = oled_pet_next_state(state, keyboard_state);
- state_changed = new_state != state;
- state = new_state;
- update_timeout = timer_read32() + oled_pet_update_millis(keyboard_state);
- } else {
- state_changed = false;
- }
-}
-#endif
diff --git a/users/bcat/bcat_oled.h b/users/bcat/bcat_oled.h
deleted file mode 100644
index f617e1f064..0000000000
--- a/users/bcat/bcat_oled.h
+++ /dev/null
@@ -1,55 +0,0 @@
-/* Copyright 2021 Jonathan Rascher
- *
- * 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 <stdbool.h>
-#include <stdint.h>
-
-#include "led.h"
-
-/* Keyboard status passed to the oled_task_keymap function and used by the
- * various keyboard pet implementations.
- */
-typedef struct {
- uint8_t mods;
- led_t leds;
- uint8_t wpm;
-} oled_keyboard_state_t;
-
-/* Note: Functions below assume a vertical OLED that is 32px (5 chars) wide. */
-
-/* Renders layer status at the cursor. Occupies 5x1 character cells. */
-void render_oled_layers(void);
-
-/* Renders LED indicators (Num/Caps/Scroll Lock) at the cursor. Occupies 5x3
- * character cells.
- */
-void render_oled_indicators(led_t leds);
-
-/* Renders calculated WPM count at the cursor. Occupies 5x2 character cells. */
-void render_oled_wpm(uint8_t wpm);
-
-#if defined(BCAT_OLED_PET)
-/* Renders an animated critter at the cursor that can respond to keystrokes,
- * typing speed, etc. Should be about 5 character cells wide, but exact height
- * varies depending on the specific OLED pet implementation linked in.
- *
- * The rendered image will be one line taller than the OLED pet's animation
- * frame height to accommodate pets that "jump" when the spacebar is pressed.
- */
-void render_oled_pet(uint8_t col, uint8_t line, const oled_keyboard_state_t *keyboard_state);
-#endif
diff --git a/users/bcat/bcat_oled_pet.h b/users/bcat/bcat_oled_pet.h
deleted file mode 100644
index ba8227ab61..0000000000
--- a/users/bcat/bcat_oled_pet.h
+++ /dev/null
@@ -1,73 +0,0 @@
-/* Copyright 2021 Jonathan Rascher
- *
- * 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/>.
- */
-
-/* Common interface for an OLED pet (animated critter that reacts to typing).
- * Please link exactly one accompanying .c file to implement these functions.
- */
-
-#pragma once
-
-#include <stdbool.h>
-#include <stdint.h>
-
-#include "bcat_oled.h"
-
-/* Opaque token representing a single frame of the OLED pet animation.
- * Different pet implementations have different valid state values, but the
- * zero value must always represent the default state of the pet at startup.
- */
-typedef uint16_t oled_pet_state_t;
-
-/* Returns the number of bytes used to represent the animation frame (in
- * oled_write_raw_P format). Note that every state the pet supports is expected
- * to have the same frame size.
- */
-uint16_t oled_pet_frame_bytes(void);
-
-/* Returns the number of lines of the OLED occupied by the animation. Note that
- * every state the pet supports is expected to have the same frame size. The
- * returned value does not include the one line of padding that render_oled_pet
- * uses to account for "jumping".
- */
-uint8_t oled_pet_frame_lines(void);
-
-/* Returns whether or not the OLED pet should "jump" when the spacebar is
- * pressed. (The render_oled_pet implementation shifts the animation frame up
- * one line when this happens.)
- */
-bool oled_pet_can_jump(void);
-
-/* Returns the delay before the next animation frame should be displayed. */
-uint16_t oled_pet_update_millis(const oled_keyboard_state_t *keyboard_state);
-
-/* Returns the state of the pet to be animated on the next animation tick. */
-oled_pet_state_t oled_pet_next_state(oled_pet_state_t state, const oled_keyboard_state_t *keyboard_state);
-
-/* Called after the OLED pet is rendered during each OLED task invocation.
- * Receives the same keyboard state as render_oled_pet. The redraw param
- * indicates whether or not an OLED frame was just redrawn, allowing a specific
- * pet implementation to draw custom things atop its animation frames.
- *
- * When this function is called, the cursor will be in an unspecified location,
- * not necessarily the top-left corner of the OLED pet.
- */
-void oled_pet_post_render(uint8_t col, uint8_t line, const oled_keyboard_state_t *keyboard_state, bool redraw);
-
-/* Returns a PROGMEM pointer to the specified frame buffer for the specified
- * state. The animation frame has length given by oled_pet_frame_bytes and is
- * formatted as expected by oled_write_raw_P.
- */
-const char *oled_pet_frame(oled_pet_state_t state);
diff --git a/users/bcat/bcat_oled_pet_isda.c b/users/bcat/bcat_oled_pet_isda.c
deleted file mode 100644
index 98abddb13b..0000000000
--- a/users/bcat/bcat_oled_pet_isda.c
+++ /dev/null
@@ -1,134 +0,0 @@
-/* Copyright 2018 sparrow666
- * Copyright 2021 Jonathan Rascher
- *
- * 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/>.
- */
-
-/* OLED pet "Isda" (animated unicorn) featuring artwork by OpenGameArt user
- * sparrow666, licensed under GPL v2.0.
- *
- * The animation is 32x72 pixels (9 lines tall).
- *
- * Runs faster the quicker you type. Shows LED indicator (Num/Caps/Scroll Lock)
- * status in the bottom-right corner.
- *
- * Named after the goddess Ehlonna's personal unicorn in the first D&D campaign
- * I ever played. :)
- *
- * Artwork source: https://opengameart.org/content/unicorn-2
- */
-
-#include "bcat_oled_pet.h"
-
-#include <stdbool.h>
-#include <stdint.h>
-
-#include "bcat_oled.h"
-#include "led.h"
-#include "oled_driver.h"
-#include "progmem.h"
-
-#define NUM_FRAMES 4
-#define FRAME_BYTES 288 /* (32 pixel) * (72 pixel) / (8 pixel/byte) */
-
-uint16_t oled_pet_frame_bytes(void) { return FRAME_BYTES; }
-uint8_t oled_pet_frame_lines(void) { return 9 /* (72 pixel) / (8 pixel/line) */; }
-bool oled_pet_can_jump(void) { return false; }
-
-uint16_t oled_pet_update_millis(const oled_keyboard_state_t *keyboard_state) {
- static const uint16_t MIN_MILLIS = 75;
- static const uint16_t MAX_MILLIS = 300;
- static const uint8_t MAX_WPM = 150;
- uint8_t wpm = keyboard_state->wpm;
- if (wpm > MAX_WPM) {
- wpm = MAX_WPM;
- }
- return MAX_MILLIS - (MAX_MILLIS - MIN_MILLIS) * wpm / MAX_WPM;
-}
-
-oled_pet_state_t oled_pet_next_state(oled_pet_state_t state, const oled_keyboard_state_t *keyboard_state) {
- /* When the user stops typing, cycle the animation to frame 0 and stop. */
- return state != 0 || keyboard_state->wpm > 0 ? (state + 1) % NUM_FRAMES : 0;
-}
-
-void oled_pet_post_render(uint8_t col, uint8_t line, const oled_keyboard_state_t *keyboard_state, bool redraw) {
- /* Draws LED indicator status in the bottom-right corner of the OLED pet,
- * atop the animation frame. Redrawn only when necessary, e.g., when LED
- * status changes or the animation itself updated (which overwrites any
- * previously drawn indicators).
- */
- static led_t prev_leds = {.raw = 0};
- led_t leds = keyboard_state->leds;
- if (redraw || leds.raw != prev_leds.raw) {
- oled_set_cursor(col + 4, line + 4);
- oled_write_char(leds.num_lock ? 'N' : ' ', /*invert=*/false);
- oled_set_cursor(col + 4, line + 6);
- oled_write_char(leds.caps_lock ? 'C' : ' ', /*invert=*/false);
- oled_set_cursor(col + 4, line + 8);
- oled_write_char(leds.scroll_lock ? 'S' : ' ', /*invert=*/false);
- prev_leds = leds;
- }
-}
-
-const char *oled_pet_frame(oled_pet_state_t state) {
- static const char PROGMEM FRAMES[NUM_FRAMES][FRAME_BYTES] = {
- // clang-format off
- {
- 0x00, 0x00, 0x00, 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, 0x40, 0xa0, 0x60, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x88, 0xd0, 0x78, 0x04, 0x28, 0x70, 0x60, 0x90, 0x88, 0xc4, 0x22, 0x19, 0x04, 0x03, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0xe0, 0xf0, 0xfc, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x84, 0x8c, 0x08, 0x01, 0x01, 0x02, 0x02, 0x04, 0x88, 0xf0, 0x00,
- 0xc0, 0xe0, 0xe0, 0x10, 0x10, 0x08, 0x04, 0x02, 0x01, 0xff, 0xff, 0xff, 0x7f, 0x0f, 0x1f, 0x00, 0x00, 0x00, 0xf8, 0x07, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00,
- 0x00, 0x0f, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x01, 0x00, 0x00, 0x00, 0x80, 0xe0, 0x18, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0xfc, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0xe0, 0xf0, 0x3c, 0x0f, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x01, 0x03, 0xc6, 0x3c, 0x00, 0x80, 0x70, 0x1c, 0x0f, 0x03, 0x0f, 0x3f, 0xff, 0xff, 0xfc, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, 0x00, 0x00, 0x80, 0xe0, 0xf8, 0xfe, 0x7f, 0x1f, 0x07, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x01, 0x0e, 0x30, 0x40, 0x47, 0x4f, 0x77, 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, 0x80, 0x40, 0xc0, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x10, 0xa0, 0xf0, 0x08, 0x50, 0xe0, 0xc0, 0x20, 0x10, 0x88, 0x44, 0x32, 0x09, 0x06, 0x01, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0xe0, 0xf8, 0xfe, 0xff, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x08, 0x19, 0x11, 0x03, 0x02, 0x04, 0x04, 0x08, 0x10, 0xe0, 0x00,
- 0xc0, 0xe0, 0xe0, 0x10, 0x10, 0x08, 0x04, 0x02, 0x01, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x3f, 0x00, 0x00, 0x00, 0xf0, 0x0f, 0x01, 0x01, 0x01, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x01, 0x01, 0x00,
- 0x00, 0x1f, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x01, 0x03, 0x00, 0x00, 0x80, 0xc0, 0x20, 0x10, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0xe0, 0xf0, 0x3c, 0x0f, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x03, 0xc6, 0x3c, 0x00, 0x80, 0x70, 0x18, 0x0f, 0x03, 0x0f, 0x3f, 0xff, 0xff, 0xfc, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0xc0, 0x38, 0x07, 0xc0, 0x38, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0f, 0x7f, 0xff, 0xff, 0xe0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x21, 0x20, 0x1e, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x0f, 0x0f, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- },
- {
- 0x00, 0x00, 0x00, 0x00, 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, 0x40, 0xc0, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x10, 0xa0, 0xf0, 0x08, 0x50, 0xe0, 0xc0, 0x20, 0x10, 0x88, 0x44, 0x32, 0x09, 0x06, 0x01, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0xe0, 0xf8, 0xfe, 0xff, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x08, 0x19, 0x11, 0x03, 0x02, 0x04, 0x04, 0x08, 0x10, 0xe0, 0x00,
- 0xc0, 0xc0, 0xc0, 0x20, 0x20, 0x10, 0x08, 0x04, 0x03, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x3f, 0x00, 0x00, 0x00, 0xf0, 0x0f, 0x01, 0x01, 0x01, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x01, 0x01, 0x00,
- 0x00, 0x1f, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x01, 0x03, 0x00, 0x00, 0x80, 0xc0, 0x20, 0x10, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x03, 0xc3, 0xfe, 0xfe, 0xfc, 0x7c, 0x1c, 0x0c, 0x0c, 0x08, 0x10, 0x60, 0x83, 0x07, 0x18, 0x60, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x71, 0x0e, 0x80, 0x70, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x01, 0x0f, 0x3f, 0x7f, 0x7f, 0x78, 0xe0, 0x90, 0x88, 0x66, 0x11, 0x08, 0x06, 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, 0x80, 0x40, 0xa0, 0x60, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x88, 0xd0, 0x78, 0x04, 0x28, 0x70, 0x60, 0x90, 0x88, 0xc4, 0x22, 0x19, 0x04, 0x03, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0xe0, 0xf0, 0xfc, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x84, 0x8c, 0x08, 0x01, 0x01, 0x02, 0x02, 0x04, 0x88, 0xf0, 0x00,
- 0xc0, 0xe0, 0xe0, 0x10, 0x10, 0x08, 0x04, 0x02, 0x01, 0xff, 0xff, 0xff, 0x7f, 0x0f, 0x1f, 0x00, 0x00, 0x00, 0xf8, 0x07, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00,
- 0x00, 0x0f, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x01, 0x00, 0x00, 0x00, 0x80, 0xe0, 0x18, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0xe0, 0xfc, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7c, 0xff, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x01, 0x03, 0xc6, 0xfc, 0xfc, 0xfc, 0x7c, 0x18, 0x08, 0x08, 0x08, 0x30, 0xc0, 0x03, 0x0c, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0xc0, 0xf8, 0xff, 0xff, 0x3f, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0e, 0x70, 0x80, 0x1f, 0x60, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x18, 0x3e, 0x3f, 0x3f, 0x1f, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x0c, 0x09, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- },
- // clang-format on
- };
- return FRAMES[state];
-}
diff --git a/users/bcat/bcat_oled_pet_luna.c b/users/bcat/bcat_oled_pet_luna.c
deleted file mode 100644
index f0397c9c05..0000000000
--- a/users/bcat/bcat_oled_pet_luna.c
+++ /dev/null
@@ -1,168 +0,0 @@
-/* Copyright 2021 HellSingCoder
- * Copyright 2021 Jonathan Rascher
- *
- * 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/>.
- */
-
-/* OLED pet "Luna" (animated doggo) originally by HellSingCoder
- * (https://www.simonepellegrino.com/) and licensed under GPL v2.0, adapted to
- * fit the OLED pet framework in bcat's userspace.
- *
- * The animation is 32x24 pixels (3 lines tall).
- *
- * Walks or runs in response to typing speed. Sneaks when Ctrl is pressed and
- * barks when Caps Lock is on. Jumps when space is pressed.
- *
- * Original source:
- * https://github.com/qmk/qmk_firmware/blob/6dfe915e26d7147e6c2bed495d3b01cf5b21e6ec/keyboards/sofle/keymaps/helltm/keymap.c
- */
-
-#include "bcat_oled_pet.h"
-
-#include <stdbool.h>
-#include <stdint.h>
-
-#include "bcat_oled.h"
-#include "keycode.h"
-#include "progmem.h"
-
-enum image {
- IMAGE_IDLE,
- IMAGE_WALK,
- IMAGE_RUN,
- IMAGE_SNEAK,
- IMAGE_BARK,
-};
-
-typedef union {
- oled_pet_state_t raw;
- struct {
- uint8_t image;
- uint8_t frame;
- };
-} luna_state_t;
-
-#define NUM_FRAMES 2
-#define FRAME_BYTES 96 /* (32 pixel) * (24 pixel) / (8 pixel/byte) */
-
-uint16_t oled_pet_frame_bytes(void) { return FRAME_BYTES; }
-uint8_t oled_pet_frame_lines(void) { return 3 /* (24 pixel) / (8 pixel/line) */; }
-bool oled_pet_can_jump(void) { return true; }
-
-uint16_t oled_pet_update_millis(const oled_keyboard_state_t *keyboard_state) { return 200; }
-
-oled_pet_state_t oled_pet_next_state(oled_pet_state_t state, const oled_keyboard_state_t *keyboard_state) {
- luna_state_t luna_state = {.raw = state};
- if (keyboard_state->leds.caps_lock) {
- luna_state.image = IMAGE_BARK;
- } else if (keyboard_state->mods & MOD_MASK_CTRL) {
- luna_state.image = IMAGE_SNEAK;
- } else if (keyboard_state->wpm >= 100) {
- luna_state.image = IMAGE_RUN;
- } else if (keyboard_state->wpm >= 25) {
- luna_state.image = IMAGE_WALK;
- } else {
- luna_state.image = IMAGE_IDLE;
- }
- luna_state.frame = (luna_state.frame + 1) % NUM_FRAMES;
- return luna_state.raw;
-}
-
-void oled_pet_post_render(uint8_t col, uint8_t line, const oled_keyboard_state_t *keyboard_state, bool redraw) {}
-
-const char *oled_pet_frame(oled_pet_state_t state) {
- static const char PROGMEM IDLE_FRAMES[NUM_FRAMES][FRAME_BYTES] = {
- // clang-format off
- {
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x1c, 0x02, 0x05, 0x02, 0x24, 0x04, 0x04, 0x02, 0xa9, 0x1e, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x10, 0x08, 0x68, 0x10, 0x08, 0x04, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x06, 0x82, 0x7c, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x04, 0x0c, 0x10, 0x10, 0x20, 0x20, 0x20, 0x28, 0x3e, 0x1c, 0x20, 0x20, 0x3e, 0x0f, 0x11, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- },
- {
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x1c, 0x02, 0x05, 0x02, 0x24, 0x04, 0x04, 0x02, 0xa9, 0x1e, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x90, 0x08, 0x18, 0x60, 0x10, 0x08, 0x04, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x0e, 0x82, 0x7c, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x04, 0x0c, 0x10, 0x10, 0x20, 0x20, 0x20, 0x28, 0x3e, 0x1c, 0x20, 0x20, 0x3e, 0x0f, 0x11, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- },
- // clang-format on
- };
- static const char PROGMEM WALK_FRAMES[NUM_FRAMES][FRAME_BYTES] = {
- // clang-format off
- {
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x40, 0x20, 0x10, 0x90, 0x90, 0x90, 0xa0, 0xc0, 0x80, 0x80, 0x80, 0x70, 0x08, 0x14, 0x08, 0x90, 0x10, 0x10, 0x08, 0xa4, 0x78, 0x80, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x08, 0xfc, 0x01, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x18, 0xea, 0x10, 0x0f, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x1c, 0x20, 0x20, 0x3c, 0x0f, 0x11, 0x1f, 0x03, 0x06, 0x18, 0x20, 0x20, 0x3c, 0x0c, 0x12, 0x1e, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- },
- {
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x40, 0x20, 0x20, 0x20, 0x40, 0x80, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x10, 0x28, 0x10, 0x20, 0x20, 0x20, 0x10, 0x48, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x20, 0xf8, 0x02, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x03, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x10, 0x30, 0xd5, 0x20, 0x1f, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x20, 0x30, 0x0c, 0x02, 0x05, 0x09, 0x12, 0x1e, 0x02, 0x1c, 0x14, 0x08, 0x10, 0x20, 0x2c, 0x32, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- },
- // clang-format on
- };
- static const char PROGMEM RUN_FRAMES[NUM_FRAMES][FRAME_BYTES] = {
- // clang-format off
- {
- 0x00, 0x00, 0x00, 0x00, 0xe0, 0x10, 0x08, 0x08, 0xc8, 0xb0, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x3c, 0x14, 0x04, 0x08, 0x90, 0x18, 0x04, 0x08, 0xb0, 0x40, 0x80, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0xc4, 0xa4, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc8, 0x58, 0x28, 0x2a, 0x10, 0x0f, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x09, 0x04, 0x04, 0x04, 0x04, 0x02, 0x03, 0x02, 0x01, 0x01, 0x02, 0x02, 0x04, 0x08, 0x10, 0x26, 0x2b, 0x32, 0x04, 0x05, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00,
- },
- {
- 0x00, 0x00, 0x00, 0xe0, 0x10, 0x10, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x78, 0x28, 0x08, 0x10, 0x20, 0x30, 0x08, 0x10, 0x20, 0x40, 0x80, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x03, 0x04, 0x08, 0x10, 0x11, 0xf9, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x10, 0xb0, 0x50, 0x55, 0x20, 0x1f, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x0c, 0x10, 0x20, 0x28, 0x37, 0x02, 0x1e, 0x20, 0x20, 0x18, 0x0c, 0x14, 0x1e, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- },
- // clang-format on
- };
- static const char PROGMEM SNEAK_FRAMES[NUM_FRAMES][FRAME_BYTES] = {
- // clang-format off
- {
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x40, 0x40, 0x40, 0x40, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x40, 0x40, 0x80, 0x00, 0x80, 0x40, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x1e, 0x21, 0xf0, 0x04, 0x02, 0x02, 0x02, 0x02, 0x03, 0x02, 0x02, 0x04, 0x04, 0x04, 0x03, 0x01, 0x00, 0x00, 0x09, 0x01, 0x80, 0x80, 0xab, 0x04, 0xf8, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x1c, 0x20, 0x20, 0x3c, 0x0f, 0x11, 0x1f, 0x02, 0x06, 0x18, 0x20, 0x20, 0x38, 0x08, 0x10, 0x18, 0x04, 0x04, 0x02, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00,
- },
- {
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x40, 0x40, 0x40, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xa0, 0x20, 0x40, 0x80, 0xc0, 0x20, 0x40, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x3e, 0x41, 0xf0, 0x04, 0x02, 0x02, 0x02, 0x03, 0x02, 0x02, 0x02, 0x04, 0x04, 0x02, 0x01, 0x00, 0x00, 0x00, 0x04, 0x00, 0x40, 0x40, 0x55, 0x82, 0x7c, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x20, 0x30, 0x0c, 0x02, 0x05, 0x09, 0x12, 0x1e, 0x04, 0x18, 0x10, 0x08, 0x10, 0x20, 0x28, 0x34, 0x06, 0x02, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- },
- // clang-format on
- };
- static const char PROGMEM BARK_FRAMES[NUM_FRAMES][FRAME_BYTES] = {
- // clang-format off
- {
- 0x00, 0xc0, 0x20, 0x10, 0xd0, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x40, 0x3c, 0x14, 0x04, 0x08, 0x90, 0x18, 0x04, 0x08, 0xb0, 0x40, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x03, 0x04, 0x08, 0x10, 0x11, 0xf9, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc8, 0x48, 0x28, 0x2a, 0x10, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x0c, 0x10, 0x20, 0x28, 0x37, 0x02, 0x02, 0x04, 0x08, 0x10, 0x26, 0x2b, 0x32, 0x04, 0x05, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- },
- {
- 0x00, 0xe0, 0x10, 0x10, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x40, 0x40, 0x2c, 0x14, 0x04, 0x08, 0x90, 0x18, 0x04, 0x08, 0xb0, 0x40, 0x80, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x03, 0x04, 0x08, 0x10, 0x11, 0xf9, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0x48, 0x28, 0x2a, 0x10, 0x0f, 0x20, 0x4a, 0x09, 0x10,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x0c, 0x10, 0x20, 0x28, 0x37, 0x02, 0x02, 0x04, 0x08, 0x10, 0x26, 0x2b, 0x32, 0x04, 0x05, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- },
- // clang-format on
- };
- luna_state_t luna_state = {.raw = state};
- switch (luna_state.image) {
- case IMAGE_WALK:
- return WALK_FRAMES[luna_state.frame];
- case IMAGE_RUN:
- return RUN_FRAMES[luna_state.frame];
- case IMAGE_SNEAK:
- return SNEAK_FRAMES[luna_state.frame];
- case IMAGE_BARK:
- return BARK_FRAMES[luna_state.frame];
- default:
- return IDLE_FRAMES[luna_state.frame];
- }
-}
diff --git a/users/bcat/bcat_rgblight.c b/users/bcat/bcat_rgblight.c
deleted file mode 100644
index cd6222262b..0000000000
--- a/users/bcat/bcat_rgblight.c
+++ /dev/null
@@ -1,22 +0,0 @@
-/* Copyright 2021 Jonathan Rascher
- *
- * 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 <stdint.h>
-
-#include "progmem.h"
-
-/* Adjust RGB static hue ranges for shorter gradients than default. */
-const uint8_t RGBLED_GRADIENT_RANGES[] PROGMEM = {255, 127, 63, 31, 15};
diff --git a/users/bcat/compile.sh b/users/bcat/compile.sh
deleted file mode 100755
index 9d5e58b1a1..0000000000
--- a/users/bcat/compile.sh
+++ /dev/null
@@ -1,52 +0,0 @@
-#!/bin/bash
-
-set -o errexit -o nounset
-
-usage () {
- printf "\
-usage: ./users/bcat/compile.sh [-c] [-j N]
-
-Compiles all keyboards for which bcat maintains keymaps.
-
-optional arguments:
- -c performs a clean build
- -j N runs N make tasks in parallel
- -v shows verbose output
-"
-}
-
-compile () {
- local keyboard=$1 layout=${2:-}
- FORCE_LAYOUT="$layout" SILENT="$opt_silent" make -j "$opt_parallel" "$keyboard":bcat
-}
-
-opt_parallel=1
-opt_silent=true
-
-while getopts :chj:v opt; do
- case $opt in
- c) opt_clean=1 ;;
- j) opt_parallel=$OPTARG ;;
- v) opt_silent=false ;;
- h) usage; exit 0 ;;
- \?) usage >&2; exit 2 ;;
- esac
-done
-
-if [[ -n ${opt_clean:-} ]]; then
- SILENT="$opt_silent" make clean
-fi
-
-compile 9key
-compile ai03/polaris 60_tsangan_hhkb
-compile cannonkeys/an_c 60_tsangan_hhkb
-compile cannonkeys/instant60 60_tsangan_hhkb
-compile crkbd/rev1 split_3x6_3
-compile dz60 60_ansi_split_bs_rshift
-compile dz60 60_tsangan_hhkb
-compile eco/rev2
-compile kbdfans/kbd67/hotswap 65_ansi_blocker_split_bs
-compile keebio/bdn9/rev1
-compile keebio/quefrency/rev1
-compile lily58/rev1
-compile yanghu/unicorne/f411
diff --git a/users/bcat/config.h b/users/bcat/config.h
deleted file mode 100644
index b9eac74ff6..0000000000
--- a/users/bcat/config.h
+++ /dev/null
@@ -1,150 +0,0 @@
-/* Copyright 2020 Jonathan Rascher
- *
- * 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/>.
- */
-
-/* Enable NKRO by default. All my devices support this, and it enables me to
- * dispense with the NK_TOGG key, thus saving firmware space by not compiling
- * magic keycode support.
- */
-#define FORCE_NKRO
-
-/* Wait between tap_code register and unregister to fix flaky media keys. */
-#undef TAP_CODE_DELAY
-
-#define TAP_CODE_DELAY 20
-
-/* Treat mod-tap keys as holds even if the mod-tap key and the key being
- * modified are both released within TAPPING_TERM. This assumes the mod-tap key
- * isn't usually pressed in quick succession with other tapped keys, which is
- * good when the tap keycode is something like KC_ESC rather than a letter.
- */
-#define PERMISSIVE_HOLD
-
-/* Turn off key repeat support of the tap keycode for tap-hold keys, enabling
- * holds to work correctly in quick succession after taps.
- */
-#define QUICK_TAP_TERM 0
-
-#if defined(OLED_ENABLE)
-/* The built-in OLED timeout wakes the OLED screen every time the buffer is
- * updated, even if no user activity has occurred recently. This prevents the
- * OLED from ever turning off during a continuously running animation. To avoid
- * this, we disable the default timeout and implement our own in
- * oled_task_user.
- */
-# undef OLED_TIMEOUT
-# define OLED_DISABLE_TIMEOUT
-
-# if defined(SPLIT_KEYBOARD)
-/* Sync OLED on/off state between halves of split keyboards. */
-# define SPLIT_OLED_ENABLE
-# endif
-#endif
-
-#if defined(RGB_MATRIX_ENABLE)
-/* Turn off per-key RGB when the host goes to sleep. */
-# define RGB_DISABLE_WHEN_USB_SUSPENDED
-
-/* Keep per-key RGB increments consistent across keyboards. */
-# undef RGB_MATRIX_HUE_STEP
-# undef RGB_MATRIX_SAT_STEP
-# undef RGB_MATRIX_VAL_STEP
-# undef RGB_MATRIX_SPD_STEP
-
-# define RGB_MATRIX_HUE_STEP 8
-# define RGB_MATRIX_SAT_STEP 17
-# define RGB_MATRIX_VAL_STEP 17
-# define RGB_MATRIX_SPD_STEP 17
-
-/* Enable specific per-key animation modes. */
-# define ENABLE_RGB_MATRIX_ALPHAS_MODS
-# define ENABLE_RGB_MATRIX_BAND_PINWHEEL_SAT
-# define ENABLE_RGB_MATRIX_BAND_PINWHEEL_VAL
-# define ENABLE_RGB_MATRIX_BAND_SAT
-# define ENABLE_RGB_MATRIX_BAND_SPIRAL_SAT
-# define ENABLE_RGB_MATRIX_BAND_SPIRAL_VAL
-# define ENABLE_RGB_MATRIX_BAND_VAL
-# define ENABLE_RGB_MATRIX_BREATHING
-# define ENABLE_RGB_MATRIX_CYCLE_ALL
-# define ENABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT
-# define ENABLE_RGB_MATRIX_CYCLE_OUT_IN
-# define ENABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL
-# define ENABLE_RGB_MATRIX_CYCLE_PINWHEEL
-# define ENABLE_RGB_MATRIX_CYCLE_SPIRAL
-# define ENABLE_RGB_MATRIX_CYCLE_UP_DOWN
-# define ENABLE_RGB_MATRIX_DUAL_BEACON
-# define ENABLE_RGB_MATRIX_GRADIENT_LEFT_RIGHT
-# define ENABLE_RGB_MATRIX_GRADIENT_UP_DOWN
-# define ENABLE_RGB_MATRIX_HUE_BREATHING
-# define ENABLE_RGB_MATRIX_HUE_PENDULUM
-# define ENABLE_RGB_MATRIX_HUE_WAVE
-# define ENABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS
-# define ENABLE_RGB_MATRIX_PIXEL_FRACTAL
-# define ENABLE_RGB_MATRIX_PIXEL_RAIN
-# define ENABLE_RGB_MATRIX_RAINBOW_BEACON
-# define ENABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON
-# define ENABLE_RGB_MATRIX_RAINBOW_PINWHEELS
-# define ENABLE_RGB_MATRIX_RAINDROPS
-
-/* Enable additional per-key animation modes that require a copy of the
- * framebuffer (with accompanying storage cost).
- */
-# define RGB_MATRIX_FRAMEBUFFER_EFFECTS
-# define ENABLE_RGB_MATRIX_DIGITAL_RAIN
-# define ENABLE_RGB_MATRIX_TYPING_HEATMAP
-#endif
-
-#if defined(RGBLIGHT_ENABLE)
-/* Turn off RGB underglow when the host goes to sleep. */
-# define RGBLIGHT_SLEEP
-
-/* Keep RGB underglow level increments consistent across keyboards. */
-# undef RGBLIGHT_HUE_STEP
-# undef RGBLIGHT_SAT_STEP
-# undef RGBLIGHT_VAL_STEP
-
-# define RGBLIGHT_HUE_STEP 8
-# define RGBLIGHT_SAT_STEP 17
-# define RGBLIGHT_VAL_STEP 17
-
-/* Enable specific underglow animation modes. (Skip TWINKLE because it seems to
- * be broken on ARM: https://github.com/qmk/qmk_firmware/issues/15345.)
- */
-# define RGBLIGHT_EFFECT_ALTERNATING
-# define RGBLIGHT_EFFECT_BREATHING
-# define RGBLIGHT_EFFECT_CHRISTMAS
-# define RGBLIGHT_EFFECT_KNIGHT
-# define RGBLIGHT_EFFECT_RAINBOW_MOOD
-# define RGBLIGHT_EFFECT_RAINBOW_SWIRL
-# define RGBLIGHT_EFFECT_RGB_TEST
-# define RGBLIGHT_EFFECT_SNAKE
-# define RGBLIGHT_EFFECT_STATIC_GRADIENT
-#endif
-
-#if defined(BACKLIGHT_ENABLE)
-/* Enable backlight breathing across the board. */
-# define BACKLIGHT_BREATHING
-
-/* Keep backlight level increments consistent across keyboards. */
-# undef BACKLIGHT_LEVELS
-
-# define BACKLIGHT_LEVELS 7
-#endif
-
-/* Turn off unused config options to reduce firmware size. */
-#define LAYER_STATE_8BIT
-#define NO_ACTION_ONESHOT
-#undef LOCKING_RESYNC_ENABLE
-#undef LOCKING_SUPPORT_ENABLE
diff --git a/users/bcat/readme.md b/users/bcat/readme.md
deleted file mode 100644
index 3650e8ee42..0000000000
--- a/users/bcat/readme.md
+++ /dev/null
@@ -1,51 +0,0 @@
-# bcat's userspace
-
-This is some code and config shared by all of [my](https://github.com/bcat)
-keyboards. I use community layouts wherever possible, only writing
-keyboard-specific keymaps for boards without standard layout support. I derive
-my keymaps from two canonical ones (preferred for typing and gaming,
-respectively).
-
-You can build all keymaps I maintain at once using `./users/bcat/compile.sh`.
-
-## Canonical keymaps
-
-* [Split 3x6 + 3 thumb
-keys](https://github.com/qmk/qmk_firmware/tree/master/layouts/community/split_3x6_3/bcat):
-Columnar-staggered split ergo layout, preferred for typing. Used on Crkbd.
-
-* [60% Tsangan
-HHKB](https://github.com/qmk/qmk_firmware/tree/master/layouts/community/60_tsangan_hhkb/bcat):
-Row-staggered layout, preferred for gaming. Used on ai03 Polaris, CannonKeys
-AN-C, CannonKeys Instant60, DZ60.
-
-## Other keymaps
-
-### Ergo
-
-* [Lily58](https://github.com/qmk/qmk_firmware/tree/master/keyboards/lily58/keymaps/bcat)
-* [Unicorne](https://github.com/qmk/qmk_firmware/tree/master/keyboards/yanghu/unicorne/keymaps/bcat)
-
-### Ortho
-
-* [Eco](https://github.com/qmk/qmk_firmware/tree/master/keyboards/eco/keymaps/bcat)
-
-### Traditional
-
-* [60% ANSI split
-backspace/right-shift](https://github.com/qmk/qmk_firmware/tree/master/layouts/community/60_ansi_split_bs_rshift/bcat).
-Used on DZ60.
-
-* [65% ANSI blocker split
-backspace](https://github.com/qmk/qmk_firmware/tree/master/layouts/community/65_ansi_blocker_split_bs/bcat).
-Used on KBDfans KBD67 hotswap.
-
-* [Keebio
-Quefrency](https://github.com/qmk/qmk_firmware/tree/master/keyboards/keebio/quefrency/keymaps/bcat)
-
-### Macropads
-
-* [9-Key](https://github.com/qmk/qmk_firmware/tree/master/keyboards/9key/keymaps/bcat)
-
-* [Keebio
-BDN9](https://github.com/qmk/qmk_firmware/tree/master/keyboards/keebio/bdn9/keymaps/bcat)
diff --git a/users/bcat/rules.mk b/users/bcat/rules.mk
deleted file mode 100644
index 090f7474eb..0000000000
--- a/users/bcat/rules.mk
+++ /dev/null
@@ -1,68 +0,0 @@
-# Enable Bootmagic Lite for keyboards that don't have an easily accessible
-# reset button, but keep it disabled for all others to reduce firmware size.
-ifneq ($(filter $(strip $(KEYBOARD)),ai03/polaris dz60 kbdfans/kbd67/hotswap yanghu/unicorne/f411),)
- BOOTMAGIC_ENABLE = yes
-else
- BOOTMAGIC_ENABLE = no
-endif
-
-# Enable media keys on all keyboards.
-EXTRAKEY_ENABLE = yes
-
-# Enable N-key rollover on all keyboards. In addition to its intended
-# functionality, as of July 2020, this is required for Chrome OS to process
-# media keys. (It appears that Chrome OS filters out key events from the second
-# USB endpoint's consumer and system control devices unless that endpoint also
-# reports a keyboard or mouse device.)
-NKRO_ENABLE = yes
-
-# Enable link-time optimization to reduce binary size.
-LTO_ENABLE = yes
-
-# Include common utilities shared across all our keymaps.
-SRC += bcat.c
-
-# Include additional utilities that extend optional QMK features only enabled
-# on some keyboards.
-ifeq ($(strip $(OLED_ENABLE)), yes)
- SRC += bcat_oled.c
- WPM_ENABLE = yes # for WPM and animated "keyboard pet" widgets
-
- # OLED pets (animated critters that react to typing) take up a lot of
- # firmware space, so only compile one, and only if requested.
- BCAT_OLED_PET ?= no
- ifneq ($(strip $(BCAT_OLED_PET)), no)
- SRC += bcat_oled_pet_$(strip $(BCAT_OLED_PET)).c
- OPT_DEFS += -DBCAT_OLED_PET
- endif
-endif
-
-ifeq ($(strip $(RGBLIGHT_ENABLE)), yes)
- SRC += bcat_rgblight.c
-endif
-
-# Disable unwanted build options on all keyboards. (Mouse keys are turned off
-# due to https://github.com/qmk/qmk_firmware/issues/8323, and the rest are
-# turned off to reduce firmware size.)
-COMMAND_ENABLE = no
-CONSOLE_ENABLE = no
-MOUSEKEY_ENABLE = no
-
-# Disable unwanted hardware options on all keyboards. (Some keyboards turn
-# these features on by default even though they aren't actually required.)
-MIDI_ENABLE = no
-SLEEP_LED_ENABLE = no
-
-# Disable other unused options on all keyboards.
-AUTO_SHIFT_ENABLE = no
-COMBO_ENABLE = no
-GRAVE_ESC_ENABLE = no
-KEY_LOCK_ENABLE = no
-LEADER_ENABLE = no
-MAGIC_ENABLE = no
-SPACE_CADET_ENABLE = no
-SWAP_HANDS_ENABLE = no
-TAP_DANCE_ENABLE = no
-UCIS_ENABLE = no
-UNICODEMAP_ENABLE = no
-UNICODE_ENABLE = no
diff --git a/users/billypython/billypython.c b/users/billypython/billypython.c
deleted file mode 100644
index 19744b9956..0000000000
--- a/users/billypython/billypython.c
+++ /dev/null
@@ -1,32 +0,0 @@
-#include "billypython.h"
-
-__attribute__((weak))
-bool process_record_keymap(uint16_t keycode, keyrecord_t *record) {
- return true;
-}
-
-bool process_record_user(uint16_t keycode, keyrecord_t *record) {
- if (!process_record_keymap(keycode, record)) {
- return false;
- }
-
- switch (keycode) {
- case CLEAR:
- if (record->event.pressed) {
- SEND_STRING(SS_LCTL("a") SS_TAP(X_DELETE));
- }
- return false;
-
- default:
- return true;
- }
-}
-
-__attribute__((weak))
-layer_state_t layer_state_set_keymap(layer_state_t state) {
- return state;
-}
-
-layer_state_t layer_state_set_user(layer_state_t state) {
- return layer_state_set_keymap(state);
-}
diff --git a/users/billypython/billypython.h b/users/billypython/billypython.h
deleted file mode 100644
index cdf5121f2f..0000000000
--- a/users/billypython/billypython.h
+++ /dev/null
@@ -1,34 +0,0 @@
-#pragma once
-
-#include "quantum.h"
-
-#ifdef TAP_DANCE_ENABLE
- #include "tap_dance.h"
-#endif
-
-#ifdef LAYER_FN
- #define FN MO(L_FN)
- #define FN_CAPS LT(L_FN, KC_CAPS)
- #define FN_FNLK TT(L_FN)
-#endif
-
-#define TOP LCTL(KC_HOME)
-#define BOTTOM LCTL(KC_END)
-
-enum keycodes_user {
- CLEAR = SAFE_RANGE,
-
- RANGE_KEYMAP,
-};
-
-enum layers_user {
- L_BASE,
-#ifdef LAYER_FN
- L_FN,
-#endif
-
- L_RANGE_KEYMAP,
-};
-
-bool process_record_keymap(uint16_t keycode, keyrecord_t *record);
-layer_state_t layer_state_set_keymap(layer_state_t state);
diff --git a/users/billypython/config.h b/users/billypython/config.h
deleted file mode 100644
index 4609adbbea..0000000000
--- a/users/billypython/config.h
+++ /dev/null
@@ -1,17 +0,0 @@
-#pragma once
-
-#define FORCE_NKRO
-
-#define MOUSEKEY_DELAY 50
-#define MOUSEKEY_INTERVAL 15
-#define MOUSEKEY_MAX_SPEED 4
-#define MOUSEKEY_TIME_TO_MAX 50
-#define MOUSEKEY_WHEEL_MAX_SPEED 1
-#define MOUSEKEY_WHEEL_TIME_TO_MAX 50
-
-#define NO_ACTION_FUNCTION
-#define NO_ACTION_MACRO
-
-#define PERMISSIVE_HOLD
-#define TAPPING_TERM 200
-#define TAPPING_TOGGLE 2
diff --git a/users/billypython/rules.mk b/users/billypython/rules.mk
deleted file mode 100644
index 915323b499..0000000000
--- a/users/billypython/rules.mk
+++ /dev/null
@@ -1,6 +0,0 @@
-SRC += billypython.c
-ifeq ($(strip $(TAP_DANCE_ENABLE)), yes)
- SRC += tap_dance.c
-endif
-
-EXTRAFLAGS += -flto
diff --git a/users/billypython/tap_dance.c b/users/billypython/tap_dance.c
deleted file mode 100644
index c55f9e9133..0000000000
--- a/users/billypython/tap_dance.c
+++ /dev/null
@@ -1,33 +0,0 @@
-#include "tap_dance.h"
-
-#define ACTION_TAP_DANCE_DOUBLE_MODS(mod1, mod2) { \
- .fn = { td_double_mods_each, NULL, td_double_mods_reset }, \
- .user_data = &(tap_dance_pair_t){ mod1, mod2 }, \
- }
-
-void td_double_mods_each(tap_dance_state_t *state, void *user_data) {
- tap_dance_pair_t *mods = (tap_dance_pair_t *)user_data;
- // Single tap → mod1, double tap → mod2, triple tap etc. → mod1+mod2
- if (state->count == 1 || state->count == 3) {
- register_code(mods->kc1);
- } else if (state->count == 2) {
- unregister_code(mods->kc1);
- register_code(mods->kc2);
- }
- // Prevent tap dance from sending kc1 and kc2 as weak mods
- state->weak_mods &= ~(MOD_BIT(mods->kc1) | MOD_BIT(mods->kc2));
-}
-
-void td_double_mods_reset(tap_dance_state_t *state, void *user_data) {
- tap_dance_pair_t *mods = (tap_dance_pair_t *)user_data;
- if (state->count == 1 || state->count >= 3) {
- unregister_code(mods->kc1);
- }
- if (state->count >= 2) {
- unregister_code(mods->kc2);
- }
-}
-
-tap_dance_action_t tap_dance_actions[] = {
- [TD_RSF_RCT] = ACTION_TAP_DANCE_DOUBLE_MODS(KC_RSFT, KC_RCTL),
-};
diff --git a/users/billypython/tap_dance.h b/users/billypython/tap_dance.h
deleted file mode 100644
index 2581981414..0000000000
--- a/users/billypython/tap_dance.h
+++ /dev/null
@@ -1,9 +0,0 @@
-#pragma once
-
-#include "quantum.h"
-
-#define RSF_RCT TD(TD_RSF_RCT)
-
-enum tap_dance {
- TD_RSF_RCT,
-};
diff --git a/users/brandonschlack/brandonschlack.c b/users/brandonschlack/brandonschlack.c
deleted file mode 100644
index 1e52bd6452..0000000000
--- a/users/brandonschlack/brandonschlack.c
+++ /dev/null
@@ -1,214 +0,0 @@
-/* Copyright 2020 Brandon Schlack
- *
- * 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 "brandonschlack.h"
-
-user_config_t user_config;
-#ifdef STOPLIGHT_LED
-static stoplight_led_t stoplight_led;
-#endif
-
-/**
- * Resets user config in EEPROM
- *
- * Default is use rgb for layer indication
- */
-void eeconfig_init_user(void) {
- user_config.raw = 0;
- user_config.rgb_layer_change = true;
- user_config.rgb_theme = 0;
- eeconfig_update_user(user_config.raw);
-}
-
-__attribute__((weak))
-void matrix_init_keymap(void){ }
-
-void matrix_init_user(void) {
- matrix_init_keymap();
-}
-
-__attribute__((weak))
-void keyboard_post_init_keymap(void){ }
-
-/**
- * Reads user config from EEPROM,
- * calls RGB init if RGBs enabled
- */
-void keyboard_post_init_user(void){
- // Read the user config from EEPROM
- user_config.raw = eeconfig_read_user();
- // Do Stoplight Animation if enabled
-#ifdef STOPLIGHT_LED
- led_stoplight_start();
-#endif
- // Do RGB things if RGBs enabled
-#if defined(RGBLIGHT_ENABLE) || defined(RGB_MATRIX_ENABLE)
- keyboard_post_init_rgb();
-#endif
- keyboard_post_init_keymap();
-}
-
-__attribute__ ((weak))
-void shutdown_keymap(void) {}
-
-/**
- * On shutdown,
- * If RGBs enabled,
- * then set RGB color to Red
- */
-void shutdown_user (void) {
-#ifdef RGBLIGHT_ENABLE
- rgblight_enable_noeeprom();
- rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_LIGHT);
- rgblight_sethsv_noeeprom(0, 255, 127);
-#endif // RGBLIGHT_ENABLE
-#ifdef RGB_MATRIX_ENABLE
- rgb_matrix_set_color_all( 0xFF, 0x00, 0x00 );
-#endif //RGB_MATRIX_ENABLE
- shutdown_keymap();
-}
-
-__attribute__ ((weak))
-void suspend_power_down_keymap(void) {}
-
-/**
- * Set rgb_matrix suspend state to true if not already
- */
-void suspend_power_down_user(void) {
-#ifdef RGB_MATRIX_ENABLE
- if (!g_suspend_state) {
- rgb_matrix_set_suspend_state(true);
- }
-#endif //RGB_MATRIX_ENABLE
- suspend_power_down_keymap();
-}
-
-__attribute__ ((weak))
-void suspend_wakeup_init_keymap(void) {}
-
-/**
- * Set rgb_matrix suspend state to false if not already
- */
-void suspend_wakeup_init_user(void) {
-#ifdef RGB_MATRIX_ENABLE
- if (g_suspend_state) {
- rgb_matrix_set_suspend_state(false);
- }
-#endif //RGB_MATRIX_ENABLE
- suspend_wakeup_init_keymap();
-}
-
-__attribute__ ((weak))
-void matrix_scan_keymap(void) {}
-
-/**
- * Checks for Super CMD↯TAB
- */
-void matrix_scan_user(void) {
- matrix_scan_cmd_tab();
-#ifdef STOPLIGHT_LED
- matrix_scan_led_stoplight();
-#endif
- matrix_scan_keymap();
-}
-
-__attribute__ ((weak))
-layer_state_t default_layer_state_set_keymap(layer_state_t state) {
- return state;
-}
-
-/**
- * For macropads, if a new default layer is set from DF()
- * then automatically set that layer with layer_move()
- */
-layer_state_t default_layer_state_set_user(layer_state_t state) {
-#if defined(IS_MACROPAD)
- layer_move(get_highest_layer(state));
-#endif
- return default_layer_state_set_keymap(state);
-}
-
-__attribute__ ((weak))
-layer_state_t layer_state_set_keymap(layer_state_t state) {
- return state;
-}
-
-/**
- * Do RGB things (like layer indication) on layer change
- */
-layer_state_t layer_state_set_user(layer_state_t state) {
-#if defined(RGBLIGHT_ENABLE) || defined(RGB_MATRIX_ENABLE)
- state = layer_state_set_rgb(state);
-#endif // RGBLIGHT_ENABLE
- return layer_state_set_keymap(state);
-}
-
-__attribute__((weak)) bool led_update_keymap(led_t led_state) { return true; }
-
-bool led_update_user(led_t led_state) {
-#ifdef STOPLIGHT_LED
- if (stoplight_led.is_active) {
- return false;
- }
-#endif
- return led_update_keymap(led_state);
-}
-
-#ifdef STOPLIGHT_LED
-void led_stoplight_start(void) {
- writePin(TOP_LED, LED_ON(false));
- writePin(MIDDLE_LED, LED_ON(false));
- writePin(BOTTOM_LED, LED_ON(false));
-
- stoplight_led.is_active = true;
- stoplight_led.timer = timer_read();
-};
-
-void led_stoplight_set(pin_t pin) {
- writePin(pin, LED_ON(true));
-};
-
-void led_stoplight_end(void) {
- // Reset timer and status variables
- stoplight_led.is_active = false;
- stoplight_led.index = 0;
- stoplight_led.timer = 0;
- led_update_kb(host_keyboard_led_state());
-};
-
-void matrix_scan_led_stoplight(void) {
- if (stoplight_led.is_active) {
- if (timer_elapsed(stoplight_led.timer) > (1000 * (stoplight_led.index + 1))) {
- switch (stoplight_led.index){
- case 0:
- led_stoplight_set(TOP_LED);
- stoplight_led.index++;
- break;
- case 1:
- led_stoplight_set(MIDDLE_LED);
- stoplight_led.index++;
- break;
- case 2:
- led_stoplight_set(BOTTOM_LED);
- stoplight_led.index++;
- break;
- default:
- led_stoplight_end();
- break;
- }
- }
- }
-};
-#endif
diff --git a/users/brandonschlack/brandonschlack.h b/users/brandonschlack/brandonschlack.h
deleted file mode 100644
index 4fbf6906d8..0000000000
--- a/users/brandonschlack/brandonschlack.h
+++ /dev/null
@@ -1,84 +0,0 @@
-/* Copyright 2020 Brandon Schlack
- *
- * 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"
-#include "version.h"
-#include "eeprom.h"
-#include "process_records.h"
-#ifdef TAP_DANCE_ENABLE
-# include "tap_dances.h"
-#endif // TAP_DANCE_ENABLE
-#if defined(RGBLIGHT_ENABLE) || defined(RGB_MATRIX_ENABLE)
-# include "rgb_bs.h"
-#endif
-
-/* TODO Layer Names */
-enum bs_layers {
- _BASE = 0,
- _M1 = 1,
- _M2 = 2,
- _M3 = 3,
- _M4 = 4,
- _FN1 = 5,
- _M1_FN1 = 6,
- _M2_FN1 = 7,
- _M3_FN1 = 8,
- _M4_FN1 = 9,
- _FN2 = 10,
- _M1_FN2 = 11,
- _M2_FN2 = 12,
- _M3_FN2 = 13,
- _M4_FN2 = 14,
- _ADJUST = 15 // 15: Change keyboard settings
-};
-
-#define _MACRO _M1
-#define _LOWER _FN1
-#define _RAISE _FN2
-
-/* TODO User EECONFIG */
-typedef union {
- uint32_t raw;
- struct {
- bool rgb_layer_change :1;
- uint8_t rgb_theme :4;
- };
-} user_config_t;
-extern user_config_t user_config;
-
-void matrix_init_keymap(void);
-void keyboard_post_init_keymap(void);
-void shutdown_keymap(void);
-void suspend_power_down_keymap(void);
-void suspend_wakeup_init_keymap(void);
-void matrix_scan_keymap(void);
-layer_state_t default_layer_state_set_keymap(layer_state_t state);
-layer_state_t layer_state_set_keymap(layer_state_t state);
-bool led_update_keymap(led_t led_state);
-
-#ifdef STOPLIGHT_LED
-typedef struct {
- bool is_active :1;
- uint8_t index :7;
- uint16_t timer :16;
-} stoplight_led_t;
-
-void led_stoplight_start(void);
-void led_stoplight_set(pin_t pin);
-void led_stoplight_end(void);
-void matrix_scan_led_stoplight(void);
-#endif
diff --git a/users/brandonschlack/config.h b/users/brandonschlack/config.h
deleted file mode 100644
index 8f09adef3e..0000000000
--- a/users/brandonschlack/config.h
+++ /dev/null
@@ -1,55 +0,0 @@
-/* Copyright 2020 Brandon Schlack
- *
- * 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 TAPPING_TOGGLE 2
-#define TAPPING_TERM 200
-#define PERMISSIVE_HOLD
-#define TAP_HOLD_CAPS_DELAY 200
-
-#ifdef RGBLIGHT_ENABLE
-# define RGBLIGHT_SLEEP
-#endif
-
-#if defined(RGBLIGHT_ENABLE) || defined(RGB_MATRIX_ENABLE) && !defined(RGBLIGHT_LAYERS)
-# define RGB_THEME_ENABLE
-#endif
-
-#ifdef RGB_THEME_ENABLE
-# define DISABLE_RGB_THEME_JAMON
-# define DISABLE_RGB_THEME_OBLIQUE
-#endif
-
-#ifdef ENCODER_ENABLE
-# define TAP_CODE_DELAY 10
-#else
-# define TAP_CODE_DELAY 5
-#endif
-
-/* Disable unused and unneeded features to reduce on firmware size */
-#ifndef NO_ACTION_MACRO
-# define NO_ACTION_MACRO
-#endif
-#ifndef NO_ACTION_FUNCTION
-# define NO_ACTION_FUNCTION
-#endif
-
-#ifdef LOCKING_SUPPORT_ENABLE
-# undef LOCKING_SUPPORT_ENABLE
-#endif
-#ifdef LOCKING_RESYNC_ENABLE
-# undef LOCKING_RESYNC_ENABLE
-#endif
diff --git a/users/brandonschlack/process_records.c b/users/brandonschlack/process_records.c
deleted file mode 100644
index f40eeaf8b6..0000000000
--- a/users/brandonschlack/process_records.c
+++ /dev/null
@@ -1,172 +0,0 @@
-/* Copyright 2020 Brandon Schlack
- *
- * 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 "brandonschlack.h"
-
-// Super CMD↯TAB
-bool is_cmd_tab_active = false;
-uint16_t cmd_tab_timer = 0;
-
-__attribute__ ((weak))
-bool process_record_keymap(uint16_t keycode, keyrecord_t *record) {
- return true;
-}
-
-// Consolidated Macros
-bool process_record_user(uint16_t keycode, keyrecord_t *record) {
- switch (keycode) {
- case QM_MAKE: // Sends 'qmk compile' or 'qmk flash'
- if (record->event.pressed) {
- bool flash = false;
- // If is a keyboard and auto-flash is not set in rules.mk,
- // then Shift will trigger the flash command
- #if !defined(FLASH_BOOTLOADER) && !defined(IS_MACROPAD)
- uint8_t temp_mod = get_mods();
- uint8_t temp_osm = get_oneshot_mods();
- clear_mods();
- clear_oneshot_mods();
- if ( (temp_mod | temp_osm) & MOD_MASK_SHIFT )
- #endif
- {
- flash = true;
- }
- send_make_command(flash);
- }
- break;
- case QM_FLSH: // Sends flash command instead of compile
- if (record->event.pressed) {
- clear_mods();
- clear_oneshot_mods();
- send_make_command(true);
- }
- break;
- case QM_VRSN: // Prints firmware version
- if (record->event.pressed) {
- SEND_STRING(QMK_KEYBOARD "/" QMK_KEYMAP " @ " QMK_VERSION ", Built on: " QMK_BUILDDATE);
- }
- break;
- case QM_KYBD: // Prints keyboard path
- if (record->event.pressed) {
- SEND_STRING("keyboards/" QMK_KEYBOARD "/");
- }
- break;
- case QM_KYMP: // Prints keymap path
- if (record->event.pressed) {
- SEND_STRING("keyboards/" QMK_KEYBOARD "/keymaps/" QMK_KEYMAP "/keymap.c");
- }
- break;
- case CMD_TAB: // Super CMD↯TAB
- if (record->event.pressed) {
- if (!is_cmd_tab_active) {
- is_cmd_tab_active = true;
- register_code(KC_LGUI);
- }
- cmd_tab_timer = timer_read();
- register_code(KC_TAB);
- } else {
- unregister_code(KC_TAB);
- }
- break;
- #if defined(RGB_THEME_ENABLE)
- case RGB_LYR:
- if (record->event.pressed) {
- user_config.rgb_layer_change ^= 1;
- dprintf("rgb layer change [EEPROM]: %u\n", user_config.rgb_layer_change);
- eeconfig_update_user(user_config.raw);
- if (user_config.rgb_layer_change) {
- layer_state_set(layer_state);
- }
- }
- break;
- case RGB_HUI ... RGB_SAD:
- if (record->event.pressed) {
- if (user_config.rgb_layer_change) {
- user_config.rgb_layer_change = false;
- dprintf("rgb layer change [EEPROM]: %u\n", user_config.rgb_layer_change);
- eeconfig_update_user(user_config.raw);
- }
- }
- break;
- case RGB_THEME_FORWARD:
- if (record->event.pressed) {
- uint8_t shifted = get_mods() & (MOD_BIT(KC_LSFT)|MOD_BIT(KC_RSFT));
- if(shifted) {
- rgb_theme_step_reverse();
- } else {
- rgb_theme_step();
- }
- layer_state_set(layer_state);
- }
- break;
- case RGB_THEME_REVERSE:
- if (record->event.pressed) {
- uint8_t shifted = get_mods() & (MOD_BIT(KC_LSFT)|MOD_BIT(KC_RSFT));
- if(shifted) {
- rgb_theme_step();
- } else {
- rgb_theme_step_reverse();
- }
- layer_state_set(layer_state);
- }
- break;
- #endif
- }
- return process_record_keymap(keycode, record);
-}
-
-// Super CMD↯TAB
-void matrix_scan_cmd_tab(void) {
- if (is_cmd_tab_active) {
- if (timer_elapsed(cmd_tab_timer) > 500) {
- unregister_code(KC_LGUI);
- is_cmd_tab_active = false;
- }
- }
-}
-
-/**
- * Send Make Command
- *
- * Sends 'qmk compile -kb keyboard -km keymap' command to compile firmware
- * Uses 'qmk flash' and resets keyboard, if flash_bootloader set to true
- * Sends CONVERT_TO and/or FORCE_LAYOUT parameters if built with those options
- */
-void send_make_command(bool flash_bootloader) {
-#ifdef FORCE_LAYOUT // Add layout string if built with FORCE_LAYOUT
- SEND_STRING("FORCE_LAYOUT=" FORCE_LAYOUT " ");
-#endif
-#ifdef CONVERT_TO_PROTON_C // Add CONVERT_TO if built with converter
- SEND_STRING("CONVERT_TO=proton_c ");
-#endif
- SEND_STRING("qmk ");
- if (flash_bootloader) {
-#ifndef KEYBOARD_massdrop // Don't run flash for Massdrop boards
- SEND_STRING("flash ");
- } else {
-#endif
- SEND_STRING("compile ");
- }
- SEND_STRING("-kb " QMK_KEYBOARD " ");
- SEND_STRING("-km " QMK_KEYMAP);
- if (flash_bootloader) {
-#if defined(KEYBOARD_massdrop) // only run for Massdrop boards
- SEND_STRING(" && mdlflash " QMK_KEYBOARD " " QMK_KEYMAP);
-#endif
- }
- SEND_STRING(SS_TAP(X_ENTER));
- if (flash_bootloader) {
- reset_keyboard();
- }
-}
diff --git a/users/brandonschlack/process_records.h b/users/brandonschlack/process_records.h
deleted file mode 100644
index b377ffaed2..0000000000
--- a/users/brandonschlack/process_records.h
+++ /dev/null
@@ -1,152 +0,0 @@
-/* Copyright 2020 Brandon Schlack
- *
- * 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 "brandonschlack.h"
-
-// Macros
-enum custom_keycodes {
- QM_MAKE = SAFE_RANGE,
- QM_FLSH,
- QM_VRSN,
- QM_KYBD,
- QM_KYMP,
- CMD_TAB,
- RGB_LYR,
- RGB_THEME_FORWARD,
- RGB_THEME_REVERSE,
- KEYMAP_SAFE_RANGE
-};
-
-bool process_record_keymap(uint16_t keycode, keyrecord_t *record);
-void matrix_scan_cmd_tab(void);
-
-/**
- * QMK Defines
- * Some meta aliases for QMK features such as Mod-Taps
- * and for cleaner looking Layer Toggles
- */
-/* Control Mod-Tap */
-#define CTL_ESC CTL_T(KC_ESC) // Hold Escape for Control
-#define CTL_TAB CTL_T(KC_TAB) // Hold Tab for Control
-#define CTL_CAP CTL_T(KC_CAPS) // Hold Caps Lock for Control
-/* Command Mod-Tap */
-#define CMD_ESC CMD_T(KC_ESC) // Hold Escape for Command
-#define CMD_CAP CMD_T(KC_CAPS) // Hold Caps Lock for Command
-#define CMD_SPC CMD_T(KC_SPC) // Hold Space for Command
-/* Hyper Mod-Tap */
-#define HY_ESC ALL_T(KC_ESC) // Hold Escape for Hyper (Shift-Control-Option-Command)
-#define HY_TAB ALL_T(KC_TAB) // Hold Tab for Hyper (Shift-Control-Option-Command)
-#define HY_CAPS ALL_T(KC_CAPS) // Hold Caps Lock for Hyper (Shift-Control-Option-Command)
-/* Shift Mod-Tap */
-#define SF_CAPS LSFT_T(KC_CAPS) // Hold Caps Lock for Left Shift
-#define SFT_ENT RSFT_T(KC_ENT) // Hold Enter for Right Shift
-#define SF_SLSH RSFT_T(KC_SLSH) // Tap Right Shift for Slash (/)
-#define SF_BSLS RSFT_T(KC_BSLS) // Tap Right Shift for Back Slash (\)
-/* Layer Aliases */
-#define FN_LYR MO(_FN1) // Hold for FN Layer
-#define FN2_LYR MO(_FN2) // Hold for FN2 Layer
-#define LOWER MO(_LOWER) // Hold for LOWER Layer
-#define RAISE MO(_RAISE) // Hold for RAISE Layer
-#define TT_FN TT(_FN1) // Hold for FN Layer, or Double-Tap to Toggle
-#define TT_FN2 TT(_FN2) // Hold for FN2 Layer, or Double-Tap to Toggle
-#define TT_LWR TT(_LOWER) // Hold for LOWER Layer, or Double-Tap to Toggle
-#define TT_RAI TT(_RAISE) // Hold for RAISE Layer, or Double-Tap to Toggle
-#define SPC_LWR LT(_LOWER, KC_SPC) // Tap for Space, Hold for LOWER Layer
-#define SPC_RAI LT(_RAISE, KC_SPC) // Tap for Space, Hold for RAISE Layer
-#define SLH_LWR LT(_LOWER, KC_SLSH) // Tap for /, Hold for LOWER Layer
-#define BSL_LWR LT(_LOWER, KC_BSLS) // Tap for \, Hold for LOWER Layer
-#define MCO_LYR MO(_MACRO) // Hold for MACRO Layer
-#define TG_ADJT TG(_ADJUST) // Toggle ADJUST Layer
-#define TG_LGHT TG(_LIGHT) // Toggle LIGHT Layer
-/**
- * Media Mod-Tap
- * Use the Mod-Tap feature for easy media controls
- * Used with >=65% layouts
- */
-#define RWD_CMD RCMD_T(KC_MPRV) // Tap Right Command for Prev Track
-#define PLY_CMD RCMD_T(KC_MPLY) // Tap Right Command for Play/Pause
-#define FFD_OPT ROPT_T(KC_MNXT) // Tap Right Option for Next Track
-#define PLY_FN1 LT(_FN1, KC_MPLY) // Tap Fn for Play/Pause
-#define PLY_FN2 LT(_FN2, KC_MPLY) // Tap Fn2 for Play/Pause
-#define MUT_SFT RSFT_T(KC_MUTE) // Tap Right Shift for Mute
-/**
- * Arrow Mod-Tap
- * Use the Mod-Tap feature for arrow keys
- * Mostly used for 40-60% layouts
- */
-#define UP_RSFT RSFT_T(KC_UP) // Tap Right Shift for Up
-#define LFT_OPT ROPT_T(KC_LEFT) // Tap Right Option for Left
-#define LFT_CMD RCMD_T(KC_LEFT) // Tap Right Command for Left
-#define DWN_FN1 LT(1, KC_DOWN) // Tap Fn for Down
-#define DWN_LWR DWN_FN1 // Tap Lower for Down
-#define DWN_FN2 LT(2, KC_DOWN) // Tap Fn2 for Down
-#define DWN_RAI DWN_FN2 // Tap Raise for Down
-#define DWN_OPT ROPT_T(KC_DOWN) // Tap Right Option for Down
-#define RGT_SFT RSFT_T(KC_RGHT) // Tap Right Shift for Right
-#define RGT_OPT ROPT_T(KC_RGHT) // Tap Right Option for Right
-#define RGT_CTL RCTL_T(KC_RGHT) // Tap Right Ctrl for Right
-/**
- * Nav Mod-Tap
- * Use the Mod-Tap feature for nav keys (Home/End, Page Up/Down)
- * Mostly used for 40-60% layouts, on a function layer
- */
-#define PGU_SFT RSFT_T(KC_PGUP) // Tap Right Shift for Page Up
-#define HOM_OPT ROPT_T(KC_HOME) // Tap Right Option for Home
-#define HOM_CMD RCMD_T(KC_HOME) // Tap Right Command for Home
-#define PGD_OPT ROPT_T(KC_PGDN) // Tap Right Option for Page Down
-#define PGD_FN1 LT(1, KC_PGDN) // Tap Fn for Page Down
-#define PGD_LWR PGD_FN1 // Tap Lower for Page Down
-#define PGD_FN2 LT(2, KC_PGDN) // Tap Fn2 for Page Down
-#define PGD_RAI PGD_FN2 // Tap Raise for Page Down
-#define END_OPT ROPT_T(KC_END) // Tap Right Option for End
-#define END_CTL RCTL_T(KC_END) // Tap Right Control for End
-
-/**
- * MacOS
- * Common shortcuts used in macOS
- * Reference: https://support.apple.com/en-us/HT201236
- */
-#define MC_POWR KC_PWR // Power (KC_PWR)
-#define MC_SLEP LOPT(LCMD(KC_PWR)) // Sleep (Option-Command-Power)
-#define MC_SLPD LCTL(LSFT(KC_PWR)) // Sleep Display (Control-Shift-Power)
-#define MC_LOCK LCTL(LCMD(KC_Q)) // Lock Screen (Control-Command-Q)
-#define MC_MSSN KC_FIND // Mission Control: Configure karabiner for find -> mission_control
-#define MC_LHPD KC_MENU // Launchpad: Configure karabiner for menu -> launchpad
-#define MC_CMTB LCMD(KC_TAB) // Command-Tab
-#define MC_BACK LCMD(KC_LBRC) // Back (Command–Left Bracket)
-#define MC_FWRD LCMD(KC_RBRC) // Forward (Command–Right Bracket)
-#define CLS_TAB LCMD(KC_W) // Close Tab (Command–W)
-#define REO_TAB LSFT(LCMD(KC_T)) // Reopen Last Tab (Shift-Command-T)
-#define NXT_TAB LCTL(KC_TAB) // Next Tab (Control-Tab)
-#define PRV_TAB LSFT(LCTL(KC_TAB)) // Previous Tab (Shift-Control-Tab)
-#define NXT_WIN LCMD(KC_GRV) // Next Window (Control-Grave)
-#define PRV_WIN LCMD(KC_TILD) // Previous Window (Shift-Control-Grave)
-#define MC_PLYR LCMD(KC_F8) // Focuses current Media Player
-#define MC_UNDO LCMD(KC_Z) // Undo (Command-Z)
-#define MC_REDO LSFT(LCMD(KC_Z)) // Redo (Shift-Command-Z)
-#define OP_AFLL HYPR(KC_BSLS) // 1Password Autofill (Shift-Control-Option-Command-\)
-#define PX_AFLL LSFT(LOPT(KC_X)) // 1PasswordX Autofill (Shift-Option-X)
-// Reverse scrolling for using with macOS Natural Scrolling.
-#define MC_WH_U KC_WH_D // Mouse Wheel Up
-#define MC_WH_D KC_WH_U // Mouse Wheel Down
-#define MC_WH_L KC_WH_R // Mouse Wheel Left
-#define MC_WH_R KC_WH_L // Mouse Wheel Right
-
-// RGB Theme
-#define RGB_THM RGB_THEME_FORWARD // Cycle next RGB_THEME
-#define RGB_RTHM RGB_THEME_REVERSE // Cycle previous RGB_THEME
-
-void send_make_command(bool flash_bootloader);
diff --git a/users/brandonschlack/readme.md b/users/brandonschlack/readme.md
deleted file mode 100644
index 84f216f9f8..0000000000
--- a/users/brandonschlack/readme.md
+++ /dev/null
@@ -1,48 +0,0 @@
-# Overview
-
-My QMK home. I feel as though I stand on the shoulders of giants, for a lot of my code here is borrowed and adapted from so many contributors here, and that I hope my code here can help or inspire others.
-
-## Layers, Handlers, and Macros
-### Layers
-
-I have some predefined layer names for keyboards:
-* **_BASE**: Default Layer, QWERTY layout.
-* **_FN1**: Function Layer for 60% and above, and additional macros and shortcuts on 50% and below.
-* **_LOWER** and **_RAISE**: Function layers for 40%
-
-and macropads:
-* **_REEDER**: Shortcuts for [Reeder.app](https://reederapp.com/), my RSS feed reader
-* **_MEDIA**: Media controls
-* **_NAVI**: Navigation macros, for changing tabs and scrolling
-* **_KARABINER**: Generic macro keys, meant to be customized per app with [Karabiner](https://pqrs.org/osx/karabiner/)
-
-#### Protected Layers
-I have some named "protected" layers, meant to be at the end of the layer list for changing keyboard settings and features.
-
-* **KEYMAP_LAYERS**: Add additional layers in keymap.
-* **_AUDIO**: Audio feature controls.
-* **_LIGHT**: RGB Light/Matrix feature controls.
-* **_ADJUST**: General keyboard settings and toggles. Can also contain RGB and Audio controls on larger boards that don't need and extra layer for those controls.
-
-### EEPROM User Config
-
-I have a custom userspace config implemented to save settings on the board to persist across shutdowns. I currently store:
-
-* rgb_layer_change - a toggle for using RGB themes for layer indication
-* rgb_theme - a pointer to the currently set RGB Theme
-
-### Process Handlers
-
-### Keycode Aliases
-
-I am a macOS user and so a lot of my aliases are
-
-### Macros
-
-
-## Tap Dances
-
-### Tap Dance Trigger Layer
-
-## RGB
-### RGB Theme
diff --git a/users/brandonschlack/rgb_bs.c b/users/brandonschlack/rgb_bs.c
deleted file mode 100644
index 6b88503f41..0000000000
--- a/users/brandonschlack/rgb_bs.c
+++ /dev/null
@@ -1,146 +0,0 @@
-/* Copyright 2020 Brandon Schlack
- *
- * 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 "brandonschlack.h"
-#include "rgb_theme.h"
-#include "rgb_bs.h"
-
-#if defined(RGBLIGHT_ENABLE)
-extern rgblight_config_t rgblight_config;
-#elif defined(RGB_MATRIX_ENABLE)
-extern rgb_config_t rgb_matrix_config;
-extern bool g_suspend_state;
-extern led_config_t g_led_config;
-#endif
-
-#if defined(RGB_THEME_ENABLE)
-// Should be rgb_theme.c
-#define RGB_THEME(name) const rgb_theme_t RGB_##name
-#define RGB_THEME_IMPLS
-#include "rgb_theme_user.inc"
-#undef RGB_THEME_IMPLS
-#undef RGB_THEME
-
-#define RGB_THEME(name) [RGB_THEME_##name] = &RGB_##name,
-const rgb_theme_t *themes[] = {
- #include "rgb_theme_user.inc"
-};
-#undef RGB_THEME
-
-// Userspace loose colors
-rgb_theme_color_t default_adjust = { HSV_SPRINGGREEN };
-#endif
-
-void keyboard_post_init_rgb(void) {
- layer_state_set_user(layer_state);
-}
-
-#if defined(RGB_THEME_ENABLE)
-void set_rgb_theme(uint8_t index) {
- if (!user_config.rgb_layer_change) {
- user_config.rgb_layer_change = true;
- }
- user_config.rgb_theme = index;
- dprintf("rgb theme [EEPROM]: %u\n", user_config.rgb_theme);
- eeconfig_update_user(user_config.raw);
-}
-
-rgb_theme_t get_rgb_theme(void) {
- return *themes[user_config.rgb_theme];
-}
-
-void rgb_theme_step(void) {
- uint8_t current = user_config.rgb_theme;
- current = (current + 1) % RGB_THEME_MAX;
- set_rgb_theme(current);
-}
-
-void rgb_theme_step_reverse(void) {
- uint8_t current = user_config.rgb_theme;
- current = (current - 1) % RGB_THEME_MAX;
- set_rgb_theme(current);
-}
-
-rgb_theme_color_t get_rgb_theme_color(uint8_t index) {
- rgb_theme_t theme = get_rgb_theme();
- size_t rgb_theme_color_max = ARRAY_SIZE(theme.colors);
-
- if (index == _ADJUST) {
- return default_adjust;
- } else {
- return **(theme.colors + (index % rgb_theme_color_max));
- }
-};
-
-void rgb_theme_layer(layer_state_t state) {
- uint8_t rgb_color_index = get_highest_layer(state);
- HSV color = get_rgb_theme_color(rgb_color_index);
-#if defined(RGBLIGHT_ENABLE)
- color.v = rgblight_config.val;
-#elif defined(RGB_MATRIX_ENABLE)
- color.v = rgb_matrix_config.hsv.v;
-#endif
- rgb_layer_helper( color.h, color.s, color.v );
-}
-#endif
-
-#ifdef RGB_MATRIX_ENABLE
-void rgb_matrix_layer_helper (uint8_t red, uint8_t green, uint8_t blue, uint8_t led_type) {
- for (int i = 0; i < RGB_MATRIX_LED_COUNT; i++) {
- if (!HAS_ANY_FLAGS(g_led_config.flags[i], led_type)) {
- rgb_matrix_set_color( i, red, green, blue );
- }
- }
-}
-
-void rgb_matrix_cycle_flag (void) {
- switch (rgb_matrix_get_flags()) {
- case LED_FLAG_ALL:
- rgb_matrix_set_flags(LED_FLAG_KEYS);
- rgb_matrix_set_color_all(0, 0, 0);
- break;
- case LED_FLAG_KEYS:
- rgb_matrix_set_flags(LED_FLAG_UNDERGLOW);
- rgb_matrix_set_color_all(0, 0, 0);
- break;
- case LED_FLAG_UNDERGLOW:
- rgb_matrix_set_flags(LED_FLAG_NONE);
- rgb_matrix_set_color_all(0, 0, 0);
- break;
- default:
- rgb_matrix_set_flags(LED_FLAG_ALL);
- rgb_matrix_enable();
- break;
- }
-}
-#endif
-
-void rgb_layer_helper(uint8_t hue, uint8_t sat, uint8_t val) {
-#if defined(RGBLIGHT_ENABLE) || defined(RGB_MATRIX_ENABLE)
- rgblight_sethsv_noeeprom(hue, sat, val);
-#ifdef RGB_MATRIX_ENABLE
- rgb_matrix_layer_helper(0, 0, 0, rgb_matrix_get_flags());
-#endif
-}
-#endif
-
-layer_state_t layer_state_set_rgb(layer_state_t state) {
-#if defined(RGB_THEME_ENABLE)
- if (user_config.rgb_layer_change) {
- rgb_theme_layer(state);
- }
-#endif // RGBLIGHT_ENABLE
- return state;
-}
diff --git a/users/brandonschlack/rgb_bs.h b/users/brandonschlack/rgb_bs.h
deleted file mode 100644
index c5cbd59697..0000000000
--- a/users/brandonschlack/rgb_bs.h
+++ /dev/null
@@ -1,35 +0,0 @@
-/* Copyright 2020 Brandon Schlack
- *
- * 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 RGB_THEME_ENABLE
-# include "rgb_theme.h"
-#endif
-#ifdef RGB_MATRIX_ENABLE
-# include "rgb_matrix.h"
-#endif
-
-#ifdef RGB_MATRIX_ENABLE
-#define LED_FLAG_KEYS (LED_FLAG_KEYLIGHT | LED_FLAG_MODIFIER)
-
-void rgb_matrix_layer_helper(uint8_t red, uint8_t green, uint8_t blue, uint8_t led_type);
-void rgb_matrix_cycle_flag(void);
-#endif
-
-void keyboard_post_init_rgb(void);
-void rgb_layer_helper(uint8_t hue, uint8_t sat, uint8_t val);
-
-layer_state_t layer_state_set_rgb(layer_state_t state);
diff --git a/users/brandonschlack/rgb_theme.h b/users/brandonschlack/rgb_theme.h
deleted file mode 100644
index cf9b681de6..0000000000
--- a/users/brandonschlack/rgb_theme.h
+++ /dev/null
@@ -1,50 +0,0 @@
-/* Copyright 2020 Brandon Schlack
- *
- * 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 "brandonschlack.h"
-#include "color.h"
-
-/*TODO Update as RGBLIGHT Mode */
-#ifndef RGB_THEME_COLORS_MAX
-#define RGB_THEME_COLORS_MAX 5
-#endif
-
-enum rgb_themes {
-#define RGB_THEME(name) RGB_THEME_##name,
- #include "rgb_theme_user.inc"
-#undef RGB_THEME
- RGB_THEME_MAX
-};
-
-// RGB Theme Color
-typedef const HSV rgb_theme_color_t;
-#define RGB_THEME_COLOR(tname, tcolor,...) rgb_theme_color_t tname ## _ ## tcolor = { __VA_ARGS__ }
-
-// RGB Theme
-typedef struct {
- const HSV *colors[RGB_THEME_COLORS_MAX];
-} rgb_theme_t;
-extern const rgb_theme_t *themes[];
-
-void set_rgb_theme(uint8_t index);
-rgb_theme_t get_rgb_theme(void);
-
-void rgb_theme_step(void);
-void rgb_theme_step_reverse(void);
-
-rgb_theme_color_t get_rgb_theme_color(uint8_t index);
-void rgb_theme_layer(layer_state_t state);
diff --git a/users/brandonschlack/rgb_theme_user.inc b/users/brandonschlack/rgb_theme_user.inc
deleted file mode 100644
index a07e62b789..0000000000
--- a/users/brandonschlack/rgb_theme_user.inc
+++ /dev/null
@@ -1,95 +0,0 @@
-// Basic Theme
-#ifndef DISABLE_RGB_THEME_BASIC
-#ifndef RGB_THEME_IMPLS
-RGB_THEME(BASIC)
-#else
-RGB_THEME_COLOR(BASIC, WHITE, HSV_WHITE);
-RGB_THEME_COLOR(BASIC, BLUE, HSV_BLUE);
-RGB_THEME_COLOR(BASIC, RED, HSV_RED);
-RGB_THEME_COLOR(BASIC, GREEN, HSV_GREEN);
-RGB_THEME_COLOR(BASIC, YELLOW, HSV_YELLOW);
-RGB_THEME(BASIC) = { { &BASIC_WHITE, &BASIC_BLUE, &BASIC_RED, &BASIC_GREEN, &BASIC_YELLOW } };
-#endif // RGB_THEME_IMPLS
-#endif // DISABLE_RGB_THEME_BASIC
-
-// Laser Theme
-#ifndef DISABLE_RGB_THEME_LASER
-#ifndef RGB_THEME_IMPLS
-RGB_THEME(LASER)
-#else
-RGB_THEME_COLOR(LASER, PURPLE, 191, 255, 255);
-RGB_THEME_COLOR(LASER, PINK, 237, 255, 255);
-RGB_THEME_COLOR(LASER, BLUE, 165, 255, 255);
-RGB_THEME_COLOR(LASER, CYAN, 133, 255, 255);
-RGB_THEME_COLOR(LASER, MAGENTA, 213, 255, 255);
-RGB_THEME(LASER) = { { &LASER_PURPLE, &LASER_PINK, &LASER_BLUE, &LASER_CYAN, &LASER_MAGENTA } };
-#endif // RGB_THEME_IMPLS
-#endif // DISABLE_RGB_THEME_LASER
-
-// Metropolis Theme
-#ifndef DISABLE_RGB_THEME_METROPOLIS
-#ifndef RGB_THEME_IMPLS
-RGB_THEME(METROPOLIS)
-#else
-RGB_THEME_COLOR(METROPOLIS, TEAL, 96, 207, 255);
-RGB_THEME_COLOR(METROPOLIS, RED, HSV_RED);
-RGB_THEME_COLOR(METROPOLIS, YELLOW, 24, 255, 255);
-RGB_THEME_COLOR(METROPOLIS, BLUE, 168, 255, 255);
-RGB_THEME_COLOR(METROPOLIS, WHITE, HSV_WHITE);
-RGB_THEME(METROPOLIS) = { { &METROPOLIS_TEAL, &METROPOLIS_RED, &METROPOLIS_YELLOW, &METROPOLIS_BLUE, &METROPOLIS_WHITE } };
-#endif // RGB_THEME_IMPLS
-#endif // DISABLE_RGB_THEME_METROPOLIS
-
-// Canvas Theme
-#ifndef DISABLE_RGB_THEME_CANVAS
-#ifndef RGB_THEME_IMPLS
-RGB_THEME(CANVAS)
-#else
-RGB_THEME_COLOR(CANVAS, WHITE, HSV_WHITE);
-RGB_THEME_COLOR(CANVAS, ORANGE, 10, 255, 255);
-RGB_THEME_COLOR(CANVAS, RED, 0, 231, 255);
-RGB_THEME_COLOR(CANVAS, GREEN, 74, 207, 255);
-RGB_THEME_COLOR(CANVAS, BLUE, 170, 135, 255);
-RGB_THEME(CANVAS) = { { &CANVAS_WHITE, &CANVAS_ORANGE, &CANVAS_RED, &CANVAS_GREEN, &CANVAS_BLUE } };
-#endif // RGB_THEME_IMPLS
-#endif // DISABLE_RGB_THEME_CANVAS
-
-// Jamon Theme
-#ifndef DISABLE_RGB_THEME_JAMON
-#ifndef RGB_THEME_IMPLS
-RGB_THEME(JAMON)
-#else
-RGB_THEME_COLOR(JAMON, RED, HSV_RED);
-RGB_THEME_COLOR(JAMON, LIGHTRED, 4, 255, 255);
-RGB_THEME_COLOR(JAMON, WHITE, HSV_WHITE);
-RGB_THEME_COLOR(JAMON, YELLOW, HSV_GOLD);
-RGB_THEME(JAMON) = { { &JAMON_RED, &JAMON_LIGHTRED, &JAMON_WHITE, &JAMON_YELLOW } };
-#endif // RGB_THEME_IMPLS
-#endif // DISABLE_RGB_THEME_JAMON
-
-// Striker Theme
-#ifndef DISABLE_RGB_THEME_STRIKER
-#ifndef RGB_THEME_IMPLS
-RGB_THEME(STRIKER)
-#else
-RGB_THEME_COLOR(STRIKER, BLUE, HSV_BLUE);
-RGB_THEME_COLOR(STRIKER, AZURE, HSV_AZURE);
-RGB_THEME_COLOR(STRIKER, WHITE, HSV_WHITE);
-RGB_THEME_COLOR(STRIKER, RED, HSV_RED);
-RGB_THEME(STRIKER) = { { &STRIKER_BLUE, &STRIKER_AZURE, &STRIKER_WHITE, &STRIKER_RED } };
-#endif // RGB_THEME_IMPLS
-#endif // DISABLE_RGB_THEME_STRIKER
-
-// Oblique Theme
-#ifndef DISABLE_RGB_THEME_OBLIQUE
-#ifndef RGB_THEME_IMPLS
-RGB_THEME(OBLIQUE)
-#else
-RGB_THEME_COLOR(OBLIQUE, WHITE, HSV_WHITE);
-RGB_THEME_COLOR(OBLIQUE, PURPLE, 186, 143, 255);
-RGB_THEME_COLOR(OBLIQUE, RED, 10, 200, 255);
-RGB_THEME_COLOR(OBLIQUE, ORANGE, 26, 215, 255);
-RGB_THEME_COLOR(OBLIQUE, GREEN, 58, 199, 255);
-RGB_THEME(OBLIQUE) = { { &OBLIQUE_WHITE, &OBLIQUE_PURPLE, &OBLIQUE_RED, &OBLIQUE_ORANGE, &OBLIQUE_GREEN } };
-#endif // RGB_THEME_IMPLS
-#endif // DISABLE_RGB_THEME_OBLIQUE
diff --git a/users/brandonschlack/rules.mk b/users/brandonschlack/rules.mk
deleted file mode 100644
index 2dfc332ab9..0000000000
--- a/users/brandonschlack/rules.mk
+++ /dev/null
@@ -1,34 +0,0 @@
-SRC += brandonschlack.c \
- process_records.c
-
-SPACE_CADET_ENABLE = no
-
-# Use LTO except for ChibiOS
-ifneq ($(PLATFORM),CHIBIOS)
- LTO_ENABLE = yes
-endif
-
-ifeq ($(strip $(IS_MACROPAD)), yes)
- OPT_DEFS += -DIS_MACROPAD
-endif
-
-ifeq ($(strip $(RGBLIGHT_ENABLE)), yes)
- SRC += rgb_bs.c
-endif
-
-RGB_MATRIX_ENABLE ?= no
-ifneq ($(strip $(RGB_MATRIX_ENABLE)), no)
- SRC += rgb_bs.c
-endif
-
-ifeq ($(strip $(TAP_DANCE_ENABLE)), yes)
- SRC += tap_dances.c
-endif
-
-ifeq ($(strip $(FLASH_BOOTLOADER)), yes)
- OPT_DEFS += -DFLASH_BOOTLOADER
-endif
-
-ifneq ($(FORCE_LAYOUT),)
- OPT_DEFS += -DFORCE_LAYOUT=\"$(FORCE_LAYOUT)\"
-endif
diff --git a/users/brandonschlack/tap_dances.c b/users/brandonschlack/tap_dances.c
deleted file mode 100644
index 4a4a530ff2..0000000000
--- a/users/brandonschlack/tap_dances.c
+++ /dev/null
@@ -1,91 +0,0 @@
-/* Copyright 2020 Brandon Schlack
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-#include "tap_dances.h"
-#include "process_keycode/process_tap_dance.h"
-
-int cur_dance (tap_dance_state_t *state) {
- if (state->count == 1) {
- if (state->interrupted || !state->pressed) return SINGLE_TAP;
- else return SINGLE_HOLD;
- } else if (state->count == 2) {
- if (state->interrupted) return DOUBLE_SINGLE_TAP;
- else if (state->pressed) return DOUBLE_HOLD;
- else return DOUBLE_TAP;
- }
- if (state->count == 3) {
- if (state->interrupted || !state->pressed) return TRIPLE_TAP;
- else return TRIPLE_HOLD;
- }
- else return 8;
-}
-
-__attribute__ ((weak))
-void process_tap_dance_keycode (bool reset, uint8_t toggle_layer) { };
-
-void td_trigger_layer_finished (tap_dance_state_t *state, void *user_data) {
- tap_dance_trigger_layer_t *data = (tap_dance_trigger_layer_t *)user_data;
- data->state = cur_dance(state);
-
- if (data->state == data->trigger) {
- layer_on(data->layer);
- } else {
- process_tap_dance_keycode(false, data->layer);
- }
-
-}
-void td_trigger_layer_reset (tap_dance_state_t *state, void *user_data) {
- tap_dance_trigger_layer_t *data = (tap_dance_trigger_layer_t *)user_data;
- if (data->state == data->trigger) {
- switch (data->trigger) {
- case SINGLE_HOLD:
- case DOUBLE_HOLD:
- case TRIPLE_HOLD:
- layer_off(data->layer);
- break;
- }
- } else {
- process_tap_dance_keycode(true, data->layer);
- }
- data->state = 0;
-}
-
-/* Tap Dance: Layer Mod. Toggles Layer when tapped, Mod when held. */
-void td_layer_mod_each(tap_dance_state_t *state, void *user_data) {
- tap_dance_dual_role_t *data = (tap_dance_dual_role_t *)user_data;
-
- // Single tap → toggle layer, Single hold → mod
- if (state->pressed) {
- register_code(data->kc);
- } else if (state->count == 1) {
- state->finished = true;
- }
-}
-
-void td_layer_mod_finished(tap_dance_state_t *state, void *user_data) {
- tap_dance_dual_role_t *data = (tap_dance_dual_role_t *)user_data;
-
- if (state->count == 1 && !state->pressed) {
- layer_invert(data->layer);
- }
-}
-
-void td_layer_mod_reset(tap_dance_state_t *state, void *user_data) {
- tap_dance_dual_role_t *data = (tap_dance_dual_role_t *)user_data;
-
- if (state->count == 1) {
- unregister_code(data->kc);
- }
-}
diff --git a/users/brandonschlack/tap_dances.h b/users/brandonschlack/tap_dances.h
deleted file mode 100644
index 62c585631e..0000000000
--- a/users/brandonschlack/tap_dances.h
+++ /dev/null
@@ -1,52 +0,0 @@
-/* Copyright 2020 Brandon Schlack
- *
- * 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 "brandonschlack.h"
-#ifdef TAP_DANCE_ENABLE
-# include "process_keycode/process_tap_dance.h"
-#endif
-
-enum tap_dance_states {
- SINGLE_TAP = 1,
- SINGLE_HOLD = 2,
- DOUBLE_TAP = 3,
- DOUBLE_HOLD = 4,
- DOUBLE_SINGLE_TAP = 5,
- TRIPLE_TAP = 6,
- TRIPLE_HOLD = 7
-};
-
-int cur_dance (tap_dance_state_t *state);
-void process_tap_dance_keycode (bool reset, uint8_t toggle_layer);
-
-/* Tap Dance: Trigger Layer
- *
- * Toggles Layer based on given trigger (Single Hold, Double Tap, Double Hold, etc).
- * Uses process_tap_dance_keycode() to allow keycode defines based on layer
- */
-typedef struct {
- uint8_t trigger;
- uint8_t layer;
- uint8_t state;
-} tap_dance_trigger_layer_t;
-
-#define ACTION_TAP_DANCE_TRIGGER_LAYER(trigger, layer) { \
- .fn = { NULL, td_trigger_layer_finished, td_trigger_layer_reset }, \
- .user_data = (void *)&((tap_dance_trigger_layer_t) { trigger, layer, 0 }), \
-}
-
-void td_trigger_layer_finished (tap_dance_state_t *state, void *user_data);
-void td_trigger_layer_reset (tap_dance_state_t *state, void *user_data);
diff --git a/users/brett/brett.c b/users/brett/brett.c
deleted file mode 100644
index c19c8b4a8a..0000000000
--- a/users/brett/brett.c
+++ /dev/null
@@ -1,61 +0,0 @@
-#include "brett.h"
-
-char * get_key(uint16_t keycode) {
- switch (keycode) {
- case FAT_ARROW:
- return "=>";
- case SKINNY_ARROW:
- return "->";
- case REVERSE_ARROW:
- return "<-";
- case CONCAT:
- return "<>";
- case MAP:
- return "<$>";
- case MAP_FLIPPED:
- return "<#>";
- case FLAP:
- return "<@>";
- case PIPE:
- return "|>";
- case ALT:
- return "<|>";
- case APPLY:
- return "<*>";
- case AND:
- return "&&";
- case OR:
- return "||";
- case BIND:
- return ">>=";
- case BIND_FLIPPED:
- return "=<<";
- case DOUBLE_COLON:
- return "::";
- case VOID_LEFT:
- return "<$";
- case VOID_RIGHT:
- return "$>";
- default:
- return "";
- }
-}
-
-bool process_record_user(uint16_t keycode, keyrecord_t *record) {
- bool pressed = record->event.pressed;
- switch (keycode) {
- case FAT_ARROW ... DOUBLE_COLON:
- if (pressed) {
- send_string(get_key(keycode));
- }
- return false;
- case FLASH:
- if (!pressed) {
- SEND_STRING("make -j8 --output-sync " QMK_KEYBOARD ":" QMK_KEYMAP ":flash" SS_TAP(X_ENTER));
- reset_keyboard();
- }
- return false;
- default:
- return true;
- }
-}
diff --git a/users/brett/brett.h b/users/brett/brett.h
deleted file mode 100644
index a359c5157a..0000000000
--- a/users/brett/brett.h
+++ /dev/null
@@ -1,25 +0,0 @@
-#pragma once
-
-enum userspace_custom_keycodes {
- PLACEHOLDER = SAFE_RANGE, // Can always be here
- FAT_ARROW, // =>
- SKINNY_ARROW, // ->
- REVERSE_ARROW, // <-
- CONCAT, // <>
- MAP, // <$>
- MAP_FLIPPED, // <#>
- FLAP, // <@>
- PIPE, // |>
- ALT, // <|>
- APPLY, // <*>
- AND, // &&
- OR, // ||
- BIND, // >>=
- BIND_FLIPPED, // =<<
- VOID_LEFT, // <$
- VOID_RIGHT, // $>
- DOUBLE_COLON, // ::
- FLASH // Handle keyboard flashing
-};
-
-bool process_record_keymap(uint16_t keycode, keyrecord_t *record);
diff --git a/users/brett/rules.mk b/users/brett/rules.mk
deleted file mode 100644
index b186662ddb..0000000000
--- a/users/brett/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-SRC += brett.c
diff --git a/users/byungyoonc/byungyoonc.c b/users/byungyoonc/byungyoonc.c
deleted file mode 100644
index 5059de0d97..0000000000
--- a/users/byungyoonc/byungyoonc.c
+++ /dev/null
@@ -1,48 +0,0 @@
-/* Copyright 2021 Choi Byungyoon <byungyoonc@gmail.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 QMK_KEYBOARD_H
-#include "byungyoonc.h"
-
-#if (__has_include("secrets.h") && !defined(NO_SECRETS))
-# include "secrets.h"
-#else
-static const char *const secrets[] = {"test1", "test2"};
-#endif
-
-#if !defined(MACRO_TIMER)
-# define MACRO_TIMER 20
-#endif
-
-/* replicaJunction's process_record_user_kb */
-__attribute__ ((weak))
-bool process_record_user_kb(uint16_t keycode, keyrecord_t *record) {
- return true;
-}
-
-bool process_record_user(uint16_t keycode, keyrecord_t *record) {
- switch (keycode) {
- case KC_SEC1 ... KC_SEC2: /* Secrets! Externally defined strings, not stored in repo */
- if (!record->event.pressed) {
- clear_oneshot_layer_state(ONESHOT_OTHER_KEY_PRESSED);
- send_string_with_delay(secrets[keycode - KC_SEC1], MACRO_TIMER);
- }
- return false;
- break;
- }
- return process_record_user_kb(keycode, record);
-};
-
diff --git a/users/byungyoonc/byungyoonc.h b/users/byungyoonc/byungyoonc.h
deleted file mode 100644
index 6d82370a01..0000000000
--- a/users/byungyoonc/byungyoonc.h
+++ /dev/null
@@ -1,27 +0,0 @@
-/* Copyright 2021 Choi Byungyoon <byungyoonc@gmail.com>
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-#pragma once
-
-enum custom_keycodes {
- KC_SEC1 = SAFE_RANGE,
- KC_SEC2
-};
-
-#define KC_TASK LCTL(LSFT(KC_ESC))
-#define KC_MMUT LSG(KC_A)
-
-bool process_record_user_kb(uint16_t keycode, keyrecord_t *record);
diff --git a/users/byungyoonc/readme.md b/users/byungyoonc/readme.md
deleted file mode 100644
index d0bc8d14d4..0000000000
--- a/users/byungyoonc/readme.md
+++ /dev/null
@@ -1,14 +0,0 @@
-byungyoonc QMK Userspace
-========================
-
-# Overview
-Defines some custom keycodes, alongside with the Secrets feature. Also incorporates `process_record_user_kb()` for further controls.
-
-Heavily influenced by the [Userspace code by replicaJunction](../replicaJunction/readme.md).
-
-# Features
-
-## Custom Keycodes
-- `KC_SEC#` for the Secrets input
-- `KC_TASK` for the Windows Task Manager shortcut `LCTL(LSFT(KC_ESC))`
-- `KC_MMUT` for the Windows PowerToys Conference Mute microphone `LSG(KC_A)`
diff --git a/users/byungyoonc/rules.mk b/users/byungyoonc/rules.mk
deleted file mode 100644
index 39c65e2238..0000000000
--- a/users/byungyoonc/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-SRC += byungyoonc.c
diff --git a/users/byungyoonc/saturated_solid_multisplash.h b/users/byungyoonc/saturated_solid_multisplash.h
deleted file mode 100644
index c6850a7873..0000000000
--- a/users/byungyoonc/saturated_solid_multisplash.h
+++ /dev/null
@@ -1,50 +0,0 @@
-/* Copyright 2021 Choi Byungyoon <byungyoonc@gmail.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/>.
- */
-
-#if defined(RGB_MATRIX_KEYPRESSES)
-RGB_MATRIX_EFFECT(saturated_solid_multisplash)
-
-# if defined(RGB_MATRIX_CUSTOM_EFFECT_IMPLS)
-
-static bool saturated_solid_multisplash(effect_params_t* params) {
- RGB_MATRIX_USE_LIMITS(led_min, led_max);
-
- uint8_t count = g_last_hit_tracker.count;
- for (uint8_t i = led_min; i < led_max; i++) {
- RGB_MATRIX_TEST_LED_FLAGS();
- HSV hsv = rgb_matrix_config.hsv;
- hsv.v = 0;
- for (uint8_t j = 0; j < count; j++) {
- int16_t dx = g_led_config.point[i].x - g_last_hit_tracker.x[j];
- int16_t dy = g_led_config.point[i].y - g_last_hit_tracker.y[j];
- uint8_t dist = sqrt16(dx * dx + dy * dy);
- uint16_t tick = scale16by8(g_last_hit_tracker.tick[j], qadd8(rgb_matrix_config.speed, 1));
-
- uint16_t effect = tick - dist;
- if (effect > 255) effect = 255;
- uint16_t vdiff = scale16by8(255 - effect, 255 - dist);
- hsv.v = qadd8(hsv.v, vdiff);
- hsv.s = qsub8(hsv.s, qsub8(127, effect));
- }
- hsv.v = scale8(hsv.v, rgb_matrix_config.hsv.v);
- RGB rgb = rgb_matrix_hsv_to_rgb(hsv);
- rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b);
- }
- return led_max < RGB_MATRIX_LED_COUNT;
-}
-
-# endif // RGB_MATRIX_CUSTOM_EFFECT_IMPLS
-#endif // RGB_MATRIX_KEYPRESSES
diff --git a/users/callum/callum.c b/users/callum/callum.c
deleted file mode 100644
index 73367e8e57..0000000000
--- a/users/callum/callum.c
+++ /dev/null
@@ -1,130 +0,0 @@
-#include QMK_KEYBOARD_H
-
-#include "oneshot.h"
-#include "swapper.h"
-
-#define HOME G(KC_LEFT)
-#define END G(KC_RGHT)
-#define FWD G(KC_RBRC)
-#define BACK G(KC_LBRC)
-#define TABL G(S(KC_LBRC))
-#define TABR G(S(KC_RBRC))
-#define SPCL A(G(KC_LEFT))
-#define SPC_R A(G(KC_RGHT))
-#define LA_SYM MO(SYM)
-#define LA_NAV MO(NAV)
-
-enum layers {
- DEF,
- SYM,
- NAV,
- NUM,
-};
-
-enum keycodes {
- // Custom oneshot mod implementation with no timers.
- OS_SHFT = SAFE_RANGE,
- OS_CTRL,
- OS_ALT,
- OS_CMD,
-
- SW_WIN, // Switch to next window (cmd-tab)
- SW_LANG, // Switch to next input language (ctl-spc)
-};
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [DEF] = LAYOUT_callum(
- KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_QUOT,
- KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O,
- KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH,
- LA_NAV, KC_LSFT, KC_SPC, LA_SYM
- ),
-
- [SYM] = LAYOUT_callum(
- KC_ESC, KC_LBRC, KC_LCBR, KC_LPRN, KC_TILD, KC_CIRC, KC_RPRN, KC_RCBR, KC_RBRC, KC_GRV,
- KC_MINS, KC_ASTR, KC_EQL, KC_UNDS, KC_DLR, KC_HASH, OS_CMD, OS_ALT, OS_CTRL, OS_SHFT,
- KC_PLUS, KC_PIPE, KC_AT, KC_BSLS, KC_PERC, XXXXXXX, KC_AMPR, KC_SCLN, KC_COLN, KC_EXLM,
- _______, _______, _______, _______
- ),
-
- [NAV] = LAYOUT_callum(
- KC_TAB, SW_WIN, TABL, TABR, KC_VOLU, QK_BOOT, HOME, KC_UP, END, KC_DEL,
- OS_SHFT, OS_CTRL, OS_ALT, OS_CMD, KC_VOLD, KC_CAPS, KC_LEFT, KC_DOWN, KC_RGHT, KC_BSPC,
- SPCL, SPC_R, BACK, FWD, KC_MPLY, XXXXXXX, KC_PGDN, KC_PGUP, SW_LANG, KC_ENT,
- _______, _______, _______, _______
- ),
-
- [NUM] = LAYOUT_callum(
- KC_7, KC_5, KC_3, KC_1, KC_9, KC_8, KC_0, KC_2, KC_4, KC_6,
- OS_SHFT, OS_CTRL, OS_ALT, OS_CMD, KC_F11, KC_F10, OS_CMD, OS_ALT, OS_CTRL, OS_SHFT,
- KC_F7, KC_F5, KC_F3, KC_F1, KC_F9, KC_F8, KC_F12, KC_F2, KC_F4, KC_F6,
- _______, _______, _______, _______
- ),
-};
-
-bool is_oneshot_cancel_key(uint16_t keycode) {
- switch (keycode) {
- case LA_SYM:
- case LA_NAV:
- return true;
- default:
- return false;
- }
-}
-
-bool is_oneshot_ignored_key(uint16_t keycode) {
- switch (keycode) {
- case LA_SYM:
- case LA_NAV:
- case KC_LSFT:
- case OS_SHFT:
- case OS_CTRL:
- case OS_ALT:
- case OS_CMD:
- return true;
- default:
- return false;
- }
-}
-
-bool sw_win_active = false;
-bool sw_lang_active = false;
-
-oneshot_state os_shft_state = os_up_unqueued;
-oneshot_state os_ctrl_state = os_up_unqueued;
-oneshot_state os_alt_state = os_up_unqueued;
-oneshot_state os_cmd_state = os_up_unqueued;
-
-bool process_record_user(uint16_t keycode, keyrecord_t *record) {
- update_swapper(
- &sw_win_active, KC_LGUI, KC_TAB, SW_WIN,
- keycode, record
- );
- update_swapper(
- &sw_lang_active, KC_LCTL, KC_SPC, SW_LANG,
- keycode, record
- );
-
- update_oneshot(
- &os_shft_state, KC_LSFT, OS_SHFT,
- keycode, record
- );
- update_oneshot(
- &os_ctrl_state, KC_LCTL, OS_CTRL,
- keycode, record
- );
- update_oneshot(
- &os_alt_state, KC_LALT, OS_ALT,
- keycode, record
- );
- update_oneshot(
- &os_cmd_state, KC_LCMD, OS_CMD,
- keycode, record
- );
-
- return true;
-}
-
-layer_state_t layer_state_set_user(layer_state_t state) {
- return update_tri_layer_state(state, SYM, NAV, NUM);
-}
diff --git a/users/callum/oneshot.c b/users/callum/oneshot.c
deleted file mode 100644
index 33ec3895e2..0000000000
--- a/users/callum/oneshot.c
+++ /dev/null
@@ -1,57 +0,0 @@
-#include "oneshot.h"
-
-void update_oneshot(
- oneshot_state *state,
- uint16_t mod,
- uint16_t trigger,
- uint16_t keycode,
- keyrecord_t *record
-) {
- if (keycode == trigger) {
- if (record->event.pressed) {
- // Trigger keydown
- if (*state == os_up_unqueued) {
- register_code(mod);
- }
- *state = os_down_unused;
- } else {
- // Trigger keyup
- switch (*state) {
- case os_down_unused:
- // If we didn't use the mod while trigger was held, queue it.
- *state = os_up_queued;
- break;
- case os_down_used:
- // If we did use the mod while trigger was held, unregister it.
- *state = os_up_unqueued;
- unregister_code(mod);
- break;
- default:
- break;
- }
- }
- } else {
- if (record->event.pressed) {
- if (is_oneshot_cancel_key(keycode) && *state != os_up_unqueued) {
- // Cancel oneshot on designated cancel keydown.
- *state = os_up_unqueued;
- unregister_code(mod);
- }
- } else {
- if (!is_oneshot_ignored_key(keycode)) {
- // On non-ignored keyup, consider the oneshot used.
- switch (*state) {
- case os_down_unused:
- *state = os_down_used;
- break;
- case os_up_queued:
- *state = os_up_unqueued;
- unregister_code(mod);
- break;
- default:
- break;
- }
- }
- }
- }
-}
diff --git a/users/callum/oneshot.h b/users/callum/oneshot.h
deleted file mode 100644
index a6b8e17742..0000000000
--- a/users/callum/oneshot.h
+++ /dev/null
@@ -1,31 +0,0 @@
-#pragma once
-
-#include QMK_KEYBOARD_H
-
-// Represents the four states a oneshot key can be in
-typedef enum {
- os_up_unqueued,
- os_up_queued,
- os_down_unused,
- os_down_used,
-} oneshot_state;
-
-// Custom oneshot mod implementation that doesn't rely on timers. If a mod is
-// used while it is held it will be unregistered on keyup as normal, otherwise
-// it will be queued and only released after the next non-mod keyup.
-void update_oneshot(
- oneshot_state *state,
- uint16_t mod,
- uint16_t trigger,
- uint16_t keycode,
- keyrecord_t *record
-);
-
-// To be implemented by the consumer. Defines keys to cancel oneshot mods.
-bool is_oneshot_cancel_key(uint16_t keycode);
-
-// To be implemented by the consumer. Defines keys to ignore when determining
-// whether a oneshot mod has been used. Setting this to modifiers and layer
-// change keys allows stacking multiple oneshot modifiers, and carrying them
-// between layers.
-bool is_oneshot_ignored_key(uint16_t keycode);
diff --git a/users/callum/readme.md b/users/callum/readme.md
deleted file mode 100644
index 24b71038b6..0000000000
--- a/users/callum/readme.md
+++ /dev/null
@@ -1,99 +0,0 @@
-A keymap for 34 keys with 4 layers and no mod-tap.
-
-![](https://raw.githubusercontent.com/callum-oakley/keymap/master/keymap.svg)
-
-## Details
-
-- Hold `sym` to activate the symbols layer.
-- Hold `nav` to activate the navigation layer.
-- Hold `sym` and `nav` together to activate the numbers layer.
-- The home row modifiers are oneshot so that it's possible to modify the
- keys on the base layer, where there are no dedicated modifiers.
-- `swap win` sends `cmd-tab` for changing focus in macOS but holds `cmd`
- between consecutive presses.
-- `swap lang` behaves similarly but sends `ctrl-space`, for changing input
- language in macOS.
-
-## Oneshot modifiers
-
-The home row modifiers can either be held and used as normal, or if no other
-keys are pressed while a modifier is down, the modifier will be queued and
-applied to the next non-modifier keypress. For example to type `shift-cmd-t`,
-type `sym-o-n` (or `nav-a-t`), release, then hit `t`.
-
-You can and should hit chords as fast as you like because there are no timers
-involved.
-
-Cancel unused modifiers by tapping `nav` or `sym`.
-
-### Userspace oneshot implementation
-
-For my usage patterns I was hitting stuck modifiers frequently with [`OSM`][]
-(maybe related to [#3963][]?). I'd like to try to help fix this in QMK proper,
-but implementing oneshot mods in userspace first was:
-
-1. Fun.
-2. A good exploration of how I think oneshot mods should work without timers.
-
-So in the meantime, this [userspace oneshot implementation][] is working well
-for me.
-
-## Swapper
-
-`swap win` sends `cmd-tab`, but holds `cmd` between consecutive keypresses.
-`cmd` is released when some other key is hit or released. For example
-
- nav down, swap win, swap win, nav up -> cmd down, tab, tab, cmd up
- nav down, swap win, enter -> cmd down, tab, cmd up, enter
-
-`swap lang` sends `ctrl-space` to swap input languages in macOS and behaves
-similarly.
-
-[Swapper implementation.][]
-
-## Why no mod-tap?
-
-[Mod-tap][] seems to be by far the most popular tool among users of tiny
-keyboards to answer the question of where to put the modifiers, and in the
-right hands it can clearly work brilliantly, but I've always found myself error
-prone and inconsistent with it.
-
-With dedicated modifiers, there are three ways one might type `ctrl-c`:
-
- ctrl down, ctrl up, c down, c up
- ctrl down, c down, ctrl up, c up
- ctrl down, c down, c up, ctrl up
-
-Basically, you never have to worry about the keyups, as long as the keydowns
-occur in the correct order. Similarly, there are three ways one might type
-`ac`:
-
- a down, a up, c down, c up
- a down, c down, a up, c up
- a down, c down, c up, a up
-
-Replace `a` with `ctrl` and this is exactly what we had before! So if we want
-to put `a` and `ctrl` on the same key we have a problem, because without
-considering timing these sequences become ambiguous. So let's consider timing.
-
-The solution to the ambiguity that QMK employs is to configure the
-`TAPPING_TERM` and consider a key held rather than tapped if it is held for
-long enough. My problem with this is that it forces you to slow down to use
-modifiers. By its very nature the tapping term must be longer than the longest
-you would ever hold a key while typing on the slowest laziest Sunday afternoon.
-I'm not typing at 100% speed at all times, but when I am, having to think about
-timing and consciously slow down for certain actions never fails to trip me up.
-
-So alas, mod-tap is not for me -- but if it works for you, more power to you.
-:)
-
-* * *
-
-[My github][]
-
-[`OSM`]: /docs/one_shot_keys.md
-[#3963]: https://github.com/qmk/qmk_firmware/issues/3963
-[userspace oneshot implementation]: oneshot.c
-[swapper implementation.]: swapper.c
-[Mod-tap]: https://github.com/qmk/qmk_firmware/blob/master/docs/mod_tap.md
-[My github]: https://github.com/callum-oakley
diff --git a/users/callum/rules.mk b/users/callum/rules.mk
deleted file mode 100644
index 2d98e02c55..0000000000
--- a/users/callum/rules.mk
+++ /dev/null
@@ -1,3 +0,0 @@
-SRC += callum.c
-SRC += oneshot.c
-SRC += swapper.c
diff --git a/users/callum/swapper.c b/users/callum/swapper.c
deleted file mode 100644
index 736b2fef0c..0000000000
--- a/users/callum/swapper.c
+++ /dev/null
@@ -1,27 +0,0 @@
-#include "swapper.h"
-
-void update_swapper(
- bool *active,
- uint16_t cmdish,
- uint16_t tabish,
- uint16_t trigger,
- uint16_t keycode,
- keyrecord_t *record
-) {
- if (keycode == trigger) {
- if (record->event.pressed) {
- if (!*active) {
- *active = true;
- register_code(cmdish);
- }
- register_code(tabish);
- } else {
- unregister_code(tabish);
- // Don't unregister cmdish until some other key is hit or released.
- }
- } else if (*active) {
- unregister_code(cmdish);
- *active = false;
- }
-}
-
diff --git a/users/callum/swapper.h b/users/callum/swapper.h
deleted file mode 100644
index ad47fd96ce..0000000000
--- a/users/callum/swapper.h
+++ /dev/null
@@ -1,20 +0,0 @@
-#pragma once
-
-#include QMK_KEYBOARD_H
-
-// Implements cmd-tab like behaviour on a single key. On first tap of trigger
-// cmdish is held and tabish is tapped -- cmdish then remains held until some
-// other key is hit or released. For example:
-//
-// trigger, trigger, a -> cmd down, tab, tab, cmd up, a
-// nav down, trigger, nav up -> nav down, cmd down, tab, cmd up, nav up
-//
-// This behaviour is useful for more than just cmd-tab, hence: cmdish, tabish.
-void update_swapper(
- bool *active,
- uint16_t cmdish,
- uint16_t tabish,
- uint16_t trigger,
- uint16_t keycode,
- keyrecord_t *record
-);
diff --git a/users/cameronjlarsen/features/oneshot.c b/users/cameronjlarsen/features/oneshot.c
deleted file mode 100644
index 799b7c1aa2..0000000000
--- a/users/cameronjlarsen/features/oneshot.c
+++ /dev/null
@@ -1,66 +0,0 @@
-/* Copyright 2022 Cameron Larsen <camjlarsen@gmail.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 "oneshot.h"
-
-void update_oneshot(oneshot_state *state, uint16_t mod, uint16_t trigger, uint16_t keycode, keyrecord_t *record) {
- if (keycode == trigger) {
- if (record->event.pressed) {
- // Trigger keydown
- if (*state == os_up_unqueued) {
- register_code(mod);
- }
- *state = os_down_unused;
- } else {
- // Trigger keyup
- switch (*state) {
- case os_down_unused:
- // If we didn't use the mod while trigger was held, queue it.
- *state = os_up_queued;
- break;
- case os_down_used:
- // If we did use the mod while trigger was held, unregister it.
- *state = os_up_unqueued;
- unregister_code(mod);
- break;
- default:
- break;
- }
- }
- } else {
- if (record->event.pressed) {
- if (is_oneshot_cancel_key(keycode) && *state != os_up_unqueued) {
- // Cancel oneshot on designated cancel keydown.
- *state = os_up_unqueued;
- unregister_code(mod);
- }
- } else {
- if (!is_oneshot_ignored_key(keycode)) {
- // On non-ignored keyup, consider the oneshot used.
- switch (*state) {
- case os_down_unused:
- *state = os_down_used;
- break;
- case os_up_queued:
- *state = os_up_unqueued;
- unregister_code(mod);
- break;
- default:
- break;
- }
- }
- }
- }
-}
diff --git a/users/cameronjlarsen/features/oneshot.h b/users/cameronjlarsen/features/oneshot.h
deleted file mode 100644
index 7fac7b5d58..0000000000
--- a/users/cameronjlarsen/features/oneshot.h
+++ /dev/null
@@ -1,41 +0,0 @@
-// The GPLv2 License (GPLv2)
-//
-// Copyright (c) 2022 Cameron Larsen
-//
-// This program is free software: you can redistribute it and/or modify
-// it under the terms of the GNU General Public License as published by
-// the Free Software Foundation; either version 2 of the License, or
-// (at your option) any later version.
-//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License
-// along with this program. If not, see <http://www.gnu.org/licenses/>.
-#pragma once
-
-#include QMK_KEYBOARD_H
-
-// Represents the four states a oneshot key can be in
-typedef enum {
- os_up_unqueued,
- os_up_queued,
- os_down_unused,
- os_down_used,
-} oneshot_state;
-
-// Custom oneshot mod implementation that doesn't rely on timers. If a mod is
-// used while it is held it will be unregistered on keyup as normal, otherwise
-// it will be queued and only released after the next non-mod keyup.
-void update_oneshot(oneshot_state *state, uint16_t mod, uint16_t trigger, uint16_t keycode, keyrecord_t *record);
-
-// To be implemented by the consumer. Defines keys to cancel oneshot mods.
-bool is_oneshot_cancel_key(uint16_t keycode);
-
-// To be implemented by the consumer. Defines keys to ignore when determining
-// whether a oneshot mod has been used. Setting this to modifiers and layer
-// change keys allows stacking multiple oneshot modifiers, and carrying them
-// between layers.
-bool is_oneshot_ignored_key(uint16_t keycode);
diff --git a/users/cameronjlarsen/rules.mk b/users/cameronjlarsen/rules.mk
deleted file mode 100644
index 59d14ca61f..0000000000
--- a/users/cameronjlarsen/rules.mk
+++ /dev/null
@@ -1,5 +0,0 @@
-CUSTOM_ONESHOT_ENABLE ?= no
-ifeq ($(strip $(CUSTOM_ONESHOT_ENABLE)), yes)
- SRC += $(USER_PATH)/features/oneshot.c
- OPT_DEFS += -DCUSTOM_ONESHOT_ENABLE
-endif
diff --git a/users/cbbrowne/cbbrowne.c b/users/cbbrowne/cbbrowne.c
deleted file mode 100644
index e69de29bb2..0000000000
--- a/users/cbbrowne/cbbrowne.c
+++ /dev/null
diff --git a/users/cbbrowne/cbbrowne.h b/users/cbbrowne/cbbrowne.h
deleted file mode 100644
index 301636c053..0000000000
--- a/users/cbbrowne/cbbrowne.h
+++ /dev/null
@@ -1,39 +0,0 @@
-#ifndef USERSPACE
-#define USERSPACE
-
-#ifdef BACKLIGHT_ENABLE
-#include "backlight.h"
-#endif
-#include "quantum.h"
-#include "config.h"
-
-#ifndef CONFIG_USER_H
-#define CONFIG_USER_H
-
-#ifndef NO_DEBUG
-#define NO_DEBUG
-#endif
-#ifndef NO_PRINT
-#define NO_PRINT
-#endif
-
-/* cbbrowne user configuration */
-
-#define randadd 53
-#define randmul 181
-#define randmod 167
-
-/* Filler to make layering a bit clearer *
- * borrowed from basic keymap */
-
-#define _______ KC_TRNS
-#define _____ KC_NO
-
-#define LEADER_TIMEOUT 300
-#ifndef LIGHT_CONFIG_H
-#define BACKLIGHT_BREATHING
-#endif
-
-#endif
-
-#endif
diff --git a/users/cbbrowne/rules.mk b/users/cbbrowne/rules.mk
deleted file mode 100644
index 497638cdb3..0000000000
--- a/users/cbbrowne/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-SRC += cbbrowne.c
diff --git a/users/cedrikl/cedrikl.c b/users/cedrikl/cedrikl.c
deleted file mode 100644
index f9f4f1fbc0..0000000000
--- a/users/cedrikl/cedrikl.c
+++ /dev/null
@@ -1,36 +0,0 @@
-/* Copyright 2021 Cedrik Lussier @cedrikl
-.* Directly inspired from the work of jonavin https://github.com/qmk/qmk_firmware/tree/master/keyboards/gmmk/pro/ansi/keymaps/jonavin
-
-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 "cedrikl.h"
-
-// Turn on/off NUM LOCK if current state is different
-void activate_numlock(bool turn_on) {
- if (host_keyboard_led_state().num_lock != turn_on) {
- tap_code(KC_NUM_LOCK);
- }
-}
-
-
-// INITIAL STARTUP
-
-void keyboard_post_init_user(void) {
- #ifdef STARTUP_NUMLOCK_ON
- activate_numlock(true); // turn on Num lock by default so that the numpad layer always has predictable results
- #endif // STARTUP_NUMLOC_ON
-}
diff --git a/users/cedrikl/cedrikl.h b/users/cedrikl/cedrikl.h
deleted file mode 100644
index e25d274664..0000000000
--- a/users/cedrikl/cedrikl.h
+++ /dev/null
@@ -1,21 +0,0 @@
-/* Copyright 2021 Cedrik Lussier @cedrikl
-.* Directly inspired from the work of jonavin https://github.com/qmk/qmk_firmware/tree/master/keyboards/gmmk/pro/ansi/keymaps/jonavin
-
-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
-
-// OTHER FUNCTION PROTOTYPE
-void activate_numlock(bool turn_on);
diff --git a/users/cedrikl/config.h b/users/cedrikl/config.h
deleted file mode 100644
index 8df38348d2..0000000000
--- a/users/cedrikl/config.h
+++ /dev/null
@@ -1,25 +0,0 @@
-/* Copyright 2021 Cedrik Lussier @cedrikl
-.* Directly inspired from the work of jonavin https://github.com/qmk/qmk_firmware/tree/master/keyboards/gmmk/pro/ansi/keymaps/jonavin
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-#pragma once
-
-#ifdef RGB_MATRIX_ENABLE
- #define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_SOLID_COLOR
- //#define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_CYCLE_ALL
- #define RGB_DISABLE_WHEN_USB_SUSPENDED
- #define RGB_MATRIX_DEFAULT_VAL 120
-#endif
diff --git a/users/cedrikl/rules.mk b/users/cedrikl/rules.mk
deleted file mode 100644
index b5ee62c43a..0000000000
--- a/users/cedrikl/rules.mk
+++ /dev/null
@@ -1,4 +0,0 @@
-SRC += cedrikl.c
-ifeq ($(strip $(STARTUP_NUMLOCK_ON)), yes)
- OPT_DEFS += -DSTARTUP_NUMLOCK_ON
-endif
diff --git a/users/charlesrocket/apl.c b/users/charlesrocket/apl.c
deleted file mode 100644
index 92c1ea9f3d..0000000000
--- a/users/charlesrocket/apl.c
+++ /dev/null
@@ -1,183 +0,0 @@
-/* Copyright 2022 charlesrocket
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-#include QMK_KEYBOARD_H
-
-enum unicode_names {
- DIAMOND,
- QUAD_DIAMOND,
- DIAERESIS,
- IBEAM,
- MACRON,
- DEL_TILDE,
- LESS,
- DEL_STILE,
- LESS_EQUAL,
- DELTA_STILE,
- EQUALS,
- CIRCLE_STILE,
- GREATER_EQUAL,
- CIRCLE_BACKSLASH,
- GREATER,
- CIRCLED_MINUS,
- NOT_EQUAL,
- CIRCLE_STAR,
- OR,
- DOWN_CARET_TILDE,
- AND,
- UP_CARET_TILDE,
- MULT,
- EXCL,
- DIVISION,
- QUAD_DIVIDE,
- QUESTION_MARK,
- OMEGA,
- OMEGA_UNDERBAR,
- EPSILON,
- SMALL_ELEMENT,
- EPSILON_UNDERBAR,
- RHO,
- TILDE,
- TILDE_DIAERESIS,
- UPWARDS_ARROW,
- DOWNWARDS_ARROW,
- IOTA,
- IOTA_UNDERBAR,
- WHITE_CIRCLE,
- CIRCLE_DIAERESIS,
- STAR_OPERATOR,
- STAR_DIAERESIS,
- LEFT_ARROW,
- QUOTE_QUAD,
- RIGHT_ARROW,
- ZILDE,
- ALPHA,
- ALPHA_UNDERBAR,
- LEFT_CEILING,
- LEFT_FLOOR,
- LOW_LINE,
- NABLA,
- INCREMENT,
- DELTA_UNDERBAR,
- RING_OPERATOR,
- JOT_DIAERESIS,
- APOSTROPHE,
- QUAD_EQUAL,
- QUAD,
- SQUISH_QUAD,
- DOWN_TACK_JOT,
- IDENTICAL,
- UP_TACK_JOT,
- NOT_IDENTICAL,
- RIGHT_TACK,
- LEFT_TACK,
- SUBSET,
- SUPERSET,
- CHI,
- INTERSECTION,
- UNION,
- UP_TACK,
- DOWN_TACK,
- VERTICAL_LINE,
- UP_SHOE_JOT,
- COMMA_BAR,
- BACKSLASH_BAR,
- SLASH_BAR,
- QUAD_COLON
-};
-
-const uint32_t unicode_map[] PROGMEM = {
- [DIAMOND] = 0x25CA, // ◊ 0
- [QUAD_DIAMOND] = 0x233A, // ⌺
- [DIAERESIS] = 0x00A8, // ¨
- [IBEAM] = 0x2336, // ⌶
- [MACRON] = 0x00AF, // ¯
- [DEL_TILDE] = 0x236B, // ⍫ 5
- [LESS] = 0x003C, // <
- [DEL_STILE] = 0x2352, // ⍒
- [LESS_EQUAL] = 0x2264, // ≤
- [DELTA_STILE] = 0x234B, // ⍋
- [EQUALS] = 0x003D, // = 10
- [CIRCLE_STILE] = 0x233D, // ⌽
- [GREATER_EQUAL] = 0x2265, // ≥
- [CIRCLE_BACKSLASH] = 0x2349, // ⍉
- [GREATER] = 0x003E, // >
- [CIRCLED_MINUS] = 0x2296, // ⊖ 15
- [NOT_EQUAL] = 0x2260, // ≠
- [CIRCLE_STAR] = 0x235F, // ⍟
- [OR] = 0x2228, // ∨
- [DOWN_CARET_TILDE] = 0x2371, // ⍱
- [AND] = 0x2227, // ∧ 20
- [UP_CARET_TILDE] = 0x2372, // ⍲
- [MULT] = 0x00D7, // ×
- [EXCL] = 0x0021, // !
- [DIVISION] = 0x00F7, // ÷
- [QUAD_DIVIDE] = 0x2339, // ⌹ 25
- [QUESTION_MARK] = 0x003F, // ?
- [OMEGA] = 0x2375, // ⍵
- [OMEGA_UNDERBAR] = 0x2379, // ⍹
- [EPSILON] = 0x03B5, // ε
- [SMALL_ELEMENT] = 0x220A, // ∊ 30
- [EPSILON_UNDERBAR] = 0x2377, // ⍷
- [RHO] = 0x2374, // ⍴
- [TILDE] = 0x007E, // ~
- [TILDE_DIAERESIS] = 0x2368, // ⍨
- [UPWARDS_ARROW] = 0x2191, // ↑ 35
- [DOWNWARDS_ARROW] = 0x2193, // ↓
- [IOTA] = 0x2373, // ⍳
- [IOTA_UNDERBAR] = 0x2378, // ⍸
- [WHITE_CIRCLE] = 0x25CB, // ○
- [CIRCLE_DIAERESIS] = 0x2365, // ⍥ 40
- [STAR_OPERATOR] = 0x22C6, // ⋆
- [STAR_DIAERESIS] = 0x2363, // ⍣
- [LEFT_ARROW] = 0x2190, // ←
- [QUOTE_QUAD] = 0x235E, // ⍞
- [RIGHT_ARROW] = 0x2192, // → 45
- [ZILDE] = 0x236C, // ⍬
- [ALPHA] = 0x237A, // ⍺
- [ALPHA_UNDERBAR] = 0x2376, // ⍶
- [LEFT_CEILING] = 0x2308, // ⌈
- [LEFT_FLOOR] = 0x230A, // ⌊ 50
- [LOW_LINE] = 0x005F, // _
- [NABLA] = 0x2207, // ∇
- [INCREMENT] = 0x2206, // ∆
- [DELTA_UNDERBAR] = 0x2359, // ⍙
- [RING_OPERATOR] = 0x2218, // ∘ 55
- [JOT_DIAERESIS] = 0x2364, // ⍤
- [APOSTROPHE] = 0x0027, // '
- [QUAD_EQUAL] = 0x2338, // ⌸
- [QUAD] = 0x2395, // ⎕
- [SQUISH_QUAD] = 0x2337, // ⌷ 60
- [DOWN_TACK_JOT] = 0x234E, // ⍎
- [IDENTICAL] = 0x2261, // ≡
- [UP_TACK_JOT] = 0x2355, // ⍕
- [NOT_IDENTICAL] = 0x2262, // ≢
- [RIGHT_TACK] = 0x22A2, // ⊢ 65
- [LEFT_TACK] = 0x22A3, // ⊣
- [SUBSET] = 0x2282, // ⊂
- [SUPERSET] = 0x2283, // ⊃
- [CHI] = 0x03C7, // χ
- [INTERSECTION] = 0x2229, // ∩ 70
- [UNION] = 0x222A, // ∪
- [UP_TACK] = 0x22A5, // ⊥
- [DOWN_TACK] = 0x22A4, // ⊤
- [VERTICAL_LINE] = 0x007C, // |
- [UP_SHOE_JOT] = 0x235D, // ⍝ 75
- [COMMA_BAR] = 0x236A, // ⍪
- [BACKSLASH_BAR] = 0x2340, // ⍀
- [SLASH_BAR] = 0x233F, // ⌿
- [QUAD_COLON] = 0x2360, // ⍠ 79
-};
diff --git a/users/charlesrocket/rules.mk b/users/charlesrocket/rules.mk
deleted file mode 100644
index ec5aa5585d..0000000000
--- a/users/charlesrocket/rules.mk
+++ /dev/null
@@ -1,3 +0,0 @@
-ifeq ($(strip $(APL_ENABLE)), yes)
- SRC += apl.c
-endif
diff --git a/users/cjuniet/cjuniet.c b/users/cjuniet/cjuniet.c
deleted file mode 100644
index 3b950b1ad5..0000000000
--- a/users/cjuniet/cjuniet.c
+++ /dev/null
@@ -1,13 +0,0 @@
-#include "cjuniet.h"
-
-void render_status_bar(void) {
- uint8_t modifiers = get_mods();
- led_t led_state = host_keyboard_led_state();
- oled_write_P(PSTR("\325\326"), (modifiers & MOD_MASK_SHIFT));
- oled_write_P(PSTR("\327\330"), (modifiers & MOD_MASK_CTRL));
- oled_write_P(PSTR("\331\332"), (modifiers & MOD_MASK_ALT));
- oled_write_P(PSTR("\333\334"), (modifiers & MOD_MASK_GUI));
- oled_write_P(PSTR(" "), false);
- oled_write_P(PSTR("\235\236"), led_state.caps_lock);
- oled_write_P(PSTR("\275\276"), led_state.num_lock);
-}
diff --git a/users/cjuniet/cjuniet.h b/users/cjuniet/cjuniet.h
deleted file mode 100644
index adc46d7ed6..0000000000
--- a/users/cjuniet/cjuniet.h
+++ /dev/null
@@ -1,5 +0,0 @@
-#pragma once
-
-#include "quantum.h"
-
-void render_status_bar(void);
diff --git a/users/cjuniet/glcdfont.c b/users/cjuniet/glcdfont.c
deleted file mode 100644
index 539b0bd92d..0000000000
--- a/users/cjuniet/glcdfont.c
+++ /dev/null
@@ -1,230 +0,0 @@
-#include "progmem.h"
-
-// Online editor: https://helixfonteditor.netlify.com/
-
-static const unsigned char font[] PROGMEM = {
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x3E, 0x5B, 0x4F, 0x5B, 0x3E, 0x00,
- 0x3E, 0x6B, 0x4F, 0x6B, 0x3E, 0x00,
- 0x1C, 0x3E, 0x7C, 0x3E, 0x1C, 0x00,
- 0x18, 0x3C, 0x7E, 0x3C, 0x18, 0x00,
- 0x1C, 0x57, 0x7D, 0x57, 0x1C, 0x00,
- 0x1C, 0x5E, 0x7F, 0x5E, 0x1C, 0x00,
- 0x00, 0x18, 0x3C, 0x18, 0x00, 0x00,
- 0xFF, 0xE7, 0xC3, 0xE7, 0xFF, 0x00,
- 0x00, 0x18, 0x24, 0x18, 0x00, 0x00,
- 0xFF, 0xE7, 0xDB, 0xE7, 0xFF, 0x00,
- 0x30, 0x48, 0x3A, 0x06, 0x0E, 0x00,
- 0x26, 0x29, 0x79, 0x29, 0x26, 0x00,
- 0x40, 0x7F, 0x05, 0x05, 0x07, 0x00,
- 0x40, 0x7F, 0x05, 0x25, 0x3F, 0x00,
- 0x5A, 0x3C, 0xE7, 0x3C, 0x5A, 0x00,
- 0x7F, 0x3E, 0x1C, 0x1C, 0x08, 0x00,
- 0x08, 0x1C, 0x1C, 0x3E, 0x7F, 0x00,
- 0x14, 0x22, 0x7F, 0x22, 0x14, 0x00,
- 0x5F, 0x5F, 0x00, 0x5F, 0x5F, 0x00,
- 0x06, 0x09, 0x7F, 0x01, 0x7F, 0x00,
- 0x00, 0x66, 0x89, 0x95, 0x6A, 0x00,
- 0x60, 0x60, 0x60, 0x60, 0x60, 0x00,
- 0x94, 0xA2, 0xFF, 0xA2, 0x94, 0x00,
- 0x08, 0x04, 0x7E, 0x04, 0x08, 0x00,
- 0x10, 0x20, 0x7E, 0x20, 0x10, 0x00,
- 0x08, 0x08, 0x2A, 0x1C, 0x08, 0x00,
- 0x08, 0x1C, 0x2A, 0x08, 0x08, 0x00,
- 0x1E, 0x10, 0x10, 0x10, 0x10, 0x00,
- 0x0C, 0x1E, 0x0C, 0x1E, 0x0C, 0x00,
- 0x30, 0x38, 0x3E, 0x38, 0x30, 0x00,
- 0x06, 0x0E, 0x3E, 0x0E, 0x06, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x5F, 0x00, 0x00, 0x00,
- 0x00, 0x07, 0x00, 0x07, 0x00, 0x00,
- 0x14, 0x7F, 0x14, 0x7F, 0x14, 0x00,
- 0x24, 0x2A, 0x7F, 0x2A, 0x12, 0x00,
- 0x23, 0x13, 0x08, 0x64, 0x62, 0x00,
- 0x36, 0x49, 0x56, 0x20, 0x50, 0x00,
- 0x00, 0x08, 0x07, 0x03, 0x00, 0x00,
- 0x00, 0x1C, 0x22, 0x41, 0x00, 0x00,
- 0x00, 0x41, 0x22, 0x1C, 0x00, 0x00,
- 0x2A, 0x1C, 0x7F, 0x1C, 0x2A, 0x00,
- 0x08, 0x08, 0x3E, 0x08, 0x08, 0x00,
- 0x00, 0x80, 0x70, 0x30, 0x00, 0x00,
- 0x08, 0x08, 0x08, 0x08, 0x08, 0x00,
- 0x00, 0x00, 0x60, 0x60, 0x00, 0x00,
- 0x20, 0x10, 0x08, 0x04, 0x02, 0x00,
- 0x3E, 0x51, 0x49, 0x45, 0x3E, 0x00,
- 0x00, 0x42, 0x7F, 0x40, 0x00, 0x00,
- 0x72, 0x49, 0x49, 0x49, 0x46, 0x00,
- 0x21, 0x41, 0x49, 0x4D, 0x33, 0x00,
- 0x18, 0x14, 0x12, 0x7F, 0x10, 0x00,
- 0x27, 0x45, 0x45, 0x45, 0x39, 0x00,
- 0x3C, 0x4A, 0x49, 0x49, 0x31, 0x00,
- 0x41, 0x21, 0x11, 0x09, 0x07, 0x00,
- 0x36, 0x49, 0x49, 0x49, 0x36, 0x00,
- 0x46, 0x49, 0x49, 0x29, 0x1E, 0x00,
- 0x00, 0x00, 0x14, 0x00, 0x00, 0x00,
- 0x00, 0x40, 0x34, 0x00, 0x00, 0x00,
- 0x00, 0x08, 0x14, 0x22, 0x41, 0x00,
- 0x14, 0x14, 0x14, 0x14, 0x14, 0x00,
- 0x00, 0x41, 0x22, 0x14, 0x08, 0x00,
- 0x02, 0x01, 0x59, 0x09, 0x06, 0x00,
- 0x3E, 0x41, 0x5D, 0x59, 0x4E, 0x00,
- 0x7C, 0x12, 0x11, 0x12, 0x7C, 0x00,
- 0x7F, 0x49, 0x49, 0x49, 0x36, 0x00,
- 0x3E, 0x41, 0x41, 0x41, 0x22, 0x00,
- 0x7F, 0x41, 0x41, 0x41, 0x3E, 0x00,
- 0x7F, 0x49, 0x49, 0x49, 0x41, 0x00,
- 0x7F, 0x09, 0x09, 0x09, 0x01, 0x00,
- 0x3E, 0x41, 0x41, 0x51, 0x73, 0x00,
- 0x7F, 0x08, 0x08, 0x08, 0x7F, 0x00,
- 0x00, 0x41, 0x7F, 0x41, 0x00, 0x00,
- 0x20, 0x40, 0x41, 0x3F, 0x01, 0x00,
- 0x7F, 0x08, 0x14, 0x22, 0x41, 0x00,
- 0x7F, 0x40, 0x40, 0x40, 0x40, 0x00,
- 0x7F, 0x02, 0x1C, 0x02, 0x7F, 0x00,
- 0x7F, 0x04, 0x08, 0x10, 0x7F, 0x00,
- 0x3E, 0x41, 0x41, 0x41, 0x3E, 0x00,
- 0x7F, 0x09, 0x09, 0x09, 0x06, 0x00,
- 0x3E, 0x41, 0x51, 0x21, 0x5E, 0x00,
- 0x7F, 0x09, 0x19, 0x29, 0x46, 0x00,
- 0x26, 0x49, 0x49, 0x49, 0x32, 0x00,
- 0x03, 0x01, 0x7F, 0x01, 0x03, 0x00,
- 0x3F, 0x40, 0x40, 0x40, 0x3F, 0x00,
- 0x1F, 0x20, 0x40, 0x20, 0x1F, 0x00,
- 0x3F, 0x40, 0x38, 0x40, 0x3F, 0x00,
- 0x63, 0x14, 0x08, 0x14, 0x63, 0x00,
- 0x03, 0x04, 0x78, 0x04, 0x03, 0x00,
- 0x61, 0x59, 0x49, 0x4D, 0x43, 0x00,
- 0x00, 0x7F, 0x41, 0x41, 0x41, 0x00,
- 0x02, 0x04, 0x08, 0x10, 0x20, 0x00,
- 0x00, 0x41, 0x41, 0x41, 0x7F, 0x00,
- 0x04, 0x02, 0x01, 0x02, 0x04, 0x00,
- 0x40, 0x40, 0x40, 0x40, 0x40, 0x00,
- 0x00, 0x03, 0x07, 0x08, 0x00, 0x00,
- 0x20, 0x54, 0x54, 0x78, 0x40, 0x00,
- 0x7F, 0x28, 0x44, 0x44, 0x38, 0x00,
- 0x38, 0x44, 0x44, 0x44, 0x20, 0x00,
- 0x38, 0x44, 0x44, 0x28, 0x7F, 0x00,
- 0x38, 0x54, 0x54, 0x54, 0x18, 0x00,
- 0x00, 0x08, 0x7E, 0x09, 0x02, 0x00,
- 0x18, 0xA4, 0xA4, 0x9C, 0x78, 0x00,
- 0x7F, 0x08, 0x04, 0x04, 0x78, 0x00,
- 0x00, 0x44, 0x7D, 0x40, 0x00, 0x00,
- 0x20, 0x40, 0x40, 0x3D, 0x00, 0x00,
- 0x7F, 0x10, 0x28, 0x44, 0x00, 0x00,
- 0x00, 0x41, 0x7F, 0x40, 0x00, 0x00,
- 0x7C, 0x04, 0x78, 0x04, 0x78, 0x00,
- 0x7C, 0x08, 0x04, 0x04, 0x78, 0x00,
- 0x38, 0x44, 0x44, 0x44, 0x38, 0x00,
- 0xFC, 0x18, 0x24, 0x24, 0x18, 0x00,
- 0x18, 0x24, 0x24, 0x18, 0xFC, 0x00,
- 0x7C, 0x08, 0x04, 0x04, 0x08, 0x00,
- 0x48, 0x54, 0x54, 0x54, 0x24, 0x00,
- 0x04, 0x04, 0x3F, 0x44, 0x24, 0x00,
- 0x3C, 0x40, 0x40, 0x20, 0x7C, 0x00,
- 0x1C, 0x20, 0x40, 0x20, 0x1C, 0x00,
- 0x3C, 0x40, 0x30, 0x40, 0x3C, 0x00,
- 0x44, 0x28, 0x10, 0x28, 0x44, 0x00,
- 0x4C, 0x90, 0x90, 0x90, 0x7C, 0x00,
- 0x44, 0x64, 0x54, 0x4C, 0x44, 0x00,
- 0x00, 0x08, 0x36, 0x41, 0x00, 0x00,
- 0x00, 0x00, 0x77, 0x00, 0x00, 0x00,
- 0x00, 0x41, 0x36, 0x08, 0x00, 0x00,
- 0x02, 0x01, 0x02, 0x04, 0x02, 0x00,
- 0x3C, 0x26, 0x23, 0x26, 0x3C, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x40, 0x40, 0x40, 0xF0, 0xF8, 0xF8,
- 0xFF, 0x38, 0xFF, 0xF8, 0xF8, 0x3F,
- 0xF8, 0xF8, 0xFF, 0x38, 0xFF, 0xF8,
- 0xF8, 0xF0, 0x40, 0x40, 0x40, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x80,
- 0xC0, 0xC0, 0xC0, 0x80, 0x00, 0x00,
- 0xC0, 0xC0, 0x80, 0x00, 0x00, 0x00,
- 0x80, 0xC0, 0xC0, 0x00, 0xC0, 0xC0,
- 0x00, 0x00, 0x80, 0xC0, 0xC0, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0xC0, 0xC0,
- 0xC0, 0xC0, 0xC0, 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,
- 0xE0, 0xF0, 0xF0, 0xF0, 0xE0, 0xEC,
- 0xEE, 0xF7, 0xF3, 0x70, 0x20, 0x00,
- 0x7C, 0x7C, 0x7C, 0x7E, 0x00, 0x7E,
- 0x7E, 0x7E, 0x7F, 0x7F, 0x7F, 0x00,
- 0x00, 0x80, 0xC0, 0xE0, 0x7E, 0x5B,
- 0x4F, 0x5B, 0xFE, 0xC0, 0x00, 0x00,
- 0xC0, 0x00, 0xDC, 0xD7, 0xDE, 0xDE,
- 0xDE, 0xD7, 0xDC, 0x00, 0xC0, 0x00,
- 0x00, 0x00, 0x00, 0x04, 0xFA, 0xA1,
- 0xFA, 0x04, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x49, 0x49, 0x49, 0xFF, 0xFF, 0xFF,
- 0xFF, 0xE0, 0xDF, 0xBF, 0xBF, 0x00,
- 0xBF, 0xBF, 0xDF, 0xE0, 0xFF, 0xFF,
- 0xFF, 0xFF, 0x49, 0x49, 0x49, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x1F, 0x3F,
- 0x60, 0x60, 0xE0, 0xBF, 0x1F, 0x00,
- 0x7F, 0x7F, 0x07, 0x1E, 0x38, 0x1E,
- 0x07, 0x7F, 0x7F, 0x00, 0x7F, 0x7F,
- 0x0E, 0x1F, 0x3B, 0x71, 0x60, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x7F, 0x7F,
- 0x0C, 0x0C, 0x0C, 0x00, 0x7E, 0x7E,
- 0x00, 0x7F, 0x7E, 0x03, 0x03, 0x00,
- 0x7F, 0x7E, 0x03, 0x03, 0x7E, 0x7E,
- 0x03, 0x03, 0x7F, 0x7E, 0x00, 0x0F,
- 0x3E, 0x70, 0x3C, 0x06, 0x3C, 0x70,
- 0x3E, 0x0F, 0x00, 0x32, 0x7B, 0x49,
- 0x49, 0x3F, 0x7E, 0x00, 0x7F, 0x7E,
- 0x03, 0x03, 0x00, 0x1E, 0x3F, 0x69,
- 0x69, 0x6F, 0x26, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x0F, 0x1F, 0x3F, 0x7F, 0x7F, 0x7F,
- 0x7F, 0x7F, 0x3F, 0x1E, 0x0C, 0x00,
- 0x1F, 0x1F, 0x1F, 0x3F, 0x00, 0x3F,
- 0x3F, 0x3F, 0x7F, 0x7F, 0x7F, 0x00,
- 0x30, 0x7B, 0x7F, 0x78, 0x30, 0x20,
- 0x20, 0x30, 0x78, 0x7F, 0x3B, 0x00,
- 0x03, 0x00, 0x0F, 0x7F, 0x0F, 0x0F,
- 0x0F, 0x7F, 0x0F, 0x00, 0x03, 0x00,
- 0x00, 0x00, 0x00, 0xFC, 0x87, 0x95,
- 0xB5, 0x87, 0xFC, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x07, 0x0F, 0x0F,
- 0x7F, 0x0F, 0x7F, 0x0F, 0x0F, 0x7E,
- 0x0F, 0x0F, 0x7F, 0x0F, 0x7F, 0x0F,
- 0x0F, 0x07, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 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, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x08, 0x74, 0x42,
- 0x74, 0x08, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x10, 0x18, 0x0C, 0x06,
- 0x0C, 0x18, 0x10, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x04, 0x04, 0x08, 0x10,
- 0x24, 0x24, 0x24, 0x24, 0x00, 0x00,
- 0x00, 0x00, 0xE7, 0xA5, 0xFF, 0x24,
- 0x24, 0xFF, 0xA5, 0xE7, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-};
diff --git a/users/cjuniet/readme.md b/users/cjuniet/readme.md
deleted file mode 100644
index 16dff44679..0000000000
--- a/users/cjuniet/readme.md
+++ /dev/null
@@ -1,14 +0,0 @@
-Copyright 2020 Christophe Juniet <cjuniet@users.noreply.github.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/>.
diff --git a/users/cjuniet/rules.mk b/users/cjuniet/rules.mk
deleted file mode 100644
index 0f0859ba1f..0000000000
--- a/users/cjuniet/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-SRC += cjuniet.c
diff --git a/users/csc027/csc027.c b/users/csc027/csc027.c
deleted file mode 100644
index 60f17a7e1d..0000000000
--- a/users/csc027/csc027.c
+++ /dev/null
@@ -1,70 +0,0 @@
-/*
-Copyright 2020 Constantine Chen @csc027
-
-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 "csc027.h"
-
-// Declare the strings in PROGMEM using the convenience macro
-CUSTOM_MACROS(CUSTOM_DEF, CUSTOM_MACRO_STRING, SEMI_DELIM);
-
-static const char* const custom_macros[] PROGMEM = {
- // Declare the pointer to the strings in PROGMEM
- CUSTOM_MACROS(CUSTOM_VAR, DROP, COMMA_DELIM)
-};
-
-bool process_record_user(uint16_t keycode, keyrecord_t *record) {
- switch(keycode) {
- case LOWER:
- if(record->event.pressed) {
- layer_on(_LW);
- } else {
- layer_off(_LW);
- }
- update_tri_layer(_LW, _RS, _MS);
- return false;
- case RAISE:
- if(record->event.pressed) {
- layer_on(_RS);
- } else {
- layer_off(_RS);
- }
- update_tri_layer(_LW, _RS, _MS);
- return false;
- case (MC_first + 1)...(MC_last - 1):
- if(record->event.pressed) {
- send_string_P(
-#if defined(__AVR__)
- // The accessor here first reads from the pointer array that is located
- // in PROGMEM. The pointer is taken and passed to the send_string_P
- // function, which is aware of the difference between RAM and PROGMEM
- // pointers.
- (char*)pgm_read_word(&custom_macros[keycode - MC_first - 1])
-#else
- // For non-AVR MCUs, the PROGMEM macro is defined as nothing. So, the strings are
- // declared in RAM instead of flash. The send_string_P function, when compiled for
- // non-AVR targets, uses a different definition of pgm_read_byte internally. This
- // definition uses RAM pointers instead. This is why the raw pointer is passed for
- // non-AVR MCUs.
- custom_macros[keycode - MC_first - 1]
-#endif
- );
- return true;
- }
- return false;
- default:
- return true;
- }
-}
diff --git a/users/csc027/csc027.h b/users/csc027/csc027.h
deleted file mode 100644
index e13f12861f..0000000000
--- a/users/csc027/csc027.h
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
-Copyright 2020 Constantine Chen @csc027
-
-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"
-#include "defines.h"
-
-enum custom_keycodes {
- // Layer Keycodes
- LOWER = SAFE_RANGE,
- RAISE,
-
-
- MC_first,
-
- // Macro Keycodes
- CUSTOM_MACROS(CUSTOM_ENUM, DROP, COMMA_DELIM),
-
- MC_last
-};
-
-enum custom_layers {
- _QW = 0, // Qwerty
- _RS, // Raise
- _LW, // Lower
- _MS, // Mouse
- _WT, // Windows Terminal
- _CN, // Convenience
- _GG, // General Gaming
- _CS // Counter-Strike: Global Offensive
-};
diff --git a/users/csc027/custom_audio.c b/users/csc027/custom_audio.c
deleted file mode 100644
index 7746a4d1b9..0000000000
--- a/users/csc027/custom_audio.c
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
-Copyright 2020 Constantine Chen @csc027
-
-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 "csc027.h"
-#include "custom_audio.h"
-
-#if defined(AUDIO_ENABLE)
-
-float tone_on[][2] = SONG(E__NOTE(_G6));
-float tone_off[][2] = SONG(E__NOTE(_D5));
-
-void on_usb_led_off(void) {
- PLAY_SONG(tone_off);
-}
-
-void on_usb_led_on(void) {
- PLAY_SONG(tone_on);
-}
-
-#endif
diff --git a/users/csc027/custom_audio.h b/users/csc027/custom_audio.h
deleted file mode 100644
index f51bfcf971..0000000000
--- a/users/csc027/custom_audio.h
+++ /dev/null
@@ -1,25 +0,0 @@
-/*
-Copyright 2020 Constantine Chen @csc027
-
-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
-
-#if defined(AUDIO_ENABLE)
-
-void on_usb_led_off(void);
-void on_usb_led_on(void);
-
-#endif
diff --git a/users/csc027/custom_rgb.c b/users/csc027/custom_rgb.c
deleted file mode 100644
index 657d40d7af..0000000000
--- a/users/csc027/custom_rgb.c
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
-Copyright 2020 Constantine Chen @csc027
-
-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 "csc027.h"
-#include "custom_rgb.h"
-
-#if defined(RGBLIGHT_ENABLE)
-
-void keyboard_post_init_user(void) {
- rgblight_enable_noeeprom();
- rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_LIGHT);
- uint16_t user_hue = rgblight_get_hue();
- for (uint16_t i = 0; i < 256; ++i) {
- rgblight_sethsv_noeeprom((i + user_hue) % 256, 255, 255);
- wait_ms(5);
- }
- rgblight_sethsv_noeeprom(HSV_BLACK);
-}
-
-void on_usb_led_off(void) {
- rgblight_sethsv_noeeprom(HS_GRAY, rgblight_get_val() - 85);
-}
-
-void on_usb_led_on(void) {
- rgblight_sethsv_noeeprom(HS_GRAY, rgblight_get_val() + 85);
-}
-
-#endif
diff --git a/users/csc027/custom_rgb.h b/users/csc027/custom_rgb.h
deleted file mode 100644
index de63fc818c..0000000000
--- a/users/csc027/custom_rgb.h
+++ /dev/null
@@ -1,26 +0,0 @@
-/*
-Copyright 2020 Constantine Chen @csc027
-
-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
-
-#if defined(RGBLIGHT_ENABLE)
-
-void keyboard_post_init_user(void);
-void on_usb_led_off(void);
-void on_usb_led_on(void);
-
-#endif
diff --git a/users/csc027/defines.h b/users/csc027/defines.h
deleted file mode 100644
index ac05941582..0000000000
--- a/users/csc027/defines.h
+++ /dev/null
@@ -1,345 +0,0 @@
-/*
-Copyright 2020 Constantine Chen @csc027
-
-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 "csc027.h"
-
-#define MC_RSFE RSFT_T(KC_ENT) // Right Shift on hold, Enter on tap
-#define MC_LSEC LSFT_T(KC_ESC) // Left Shift on hold, Escape on tap
-
-#define ________________ KC_TRNS
-
-/* QWERTY Layer
- *
- * The basic layer of this keymap is a QWERTY layer.
- *
- * - Modifier keys more closely resemble a standard keyboard's layout.
- * - There is a "Nxt L" function that cycles through the QWERTY and
- * game layers. This has been implemented by hard coding the jump to the
- * next layer in each of the layers using the TO() macro. Currently, the
- * "Nxt L" function skips over the momentary layers (i.e., Mouse, Lower,
- * Raise, Windows Terminal, and Convenience layers).
- * - There is a "Rst L" function that resets the current layer to the
- * QWERTY layer.
- * - The "Wt" momentary function goes to the macro layer which has Windows
- * Terminal shortcuts.
- * - The Right Shift key also doubles as an Enter key if it is tapped rather
- * than held.
- *
- * ,-----------------------------------. ,-----------------------------------.
- * | Tab | Q | W | E | R | T | | Y | U | I | O | P |BkSpc|
- * |-----------------------------------| |-----------------------------------|
- * | Esc | A | S | D | F | G | | H | J | K | L | ; | ' |
- * |-----------------------------------| |-----------------------------------|
- * |Shift| Z | X | C | V | B | | N | M | , | . | / |Sf/En|
- * |-----------------------------------| |-----------------------------------|
- * |Cntrl|Super| Alt |Convc|Lower|Space| |Space|Raise| \ | Wt |Nxt L|Rst L|
- * `-----------------------------------' `-----------------------------------'
- */
-
-#define _____________________QWERTY_L1_____________________ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T
-#define _____________________QWERTY_L2_____________________ KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G
-#define _____________________QWERTY_L3_____________________ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B
-#define _____________________QWERTY_L4_____________________ KC_LCTL, KC_LGUI, KC_LALT, MO(_CN), LOWER, KC_SPC
-
-#define _____________________QWERTY_R1_____________________ KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC
-#define _____________________QWERTY_R2_____________________ KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT
-#define _____________________QWERTY_R3_____________________ KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, MC_RSFE
-#define _____________________QWERTY_R4_____________________ KC_SPC, RAISE, KC_BSLS, MO(_WT), TO(_GG), XXXXXXX
-
-/* Raise Layer
- *
- * The Raise layer accommodates the Home, End, Page Up, and Page Down keys
- * in what would be the Vim arrow keys positions. This is done as opposed
- * to using C-D, C-U, 0, $, and ^, because it would require a separate layer.
- *
- * - The top row has the shifted versions of the number row, rather than the
- * numbers themselves. This is a change to have a mnemonic where shifted
- * elements are on the Raise layer. This also makes it easy to use some of
- * Vim style movement controls (e.g. $, %), but makes it harder for others
- * (e.g. ^, (, )). Consider swapping the number row with the shifted number
- * row if you do not care about the mnemonic.
- * - The Left Brace, Right Brace, Underscore, and Plus keys have been moved
- * from the right side to the left side. This will take some getting used
- * to, as these keys are normally on the right side of the keyboard. An
- * alternative would be to keep the keys on the right hand side just under
- * the Parentheses. This would prevent the use of Vim arrow keys however.
- * - The F keys have been laid across the bottom in the Raise layer, rather
- * than the Lower layer to allow easy access to the Alt-F4 chord for
- * Windows. When the F keys were put in the Lower layer, it made it hard
- * to use this chord, as the Lower key, the Alt key, and the F4 key were
- * all right next to each other.
- * - A Delete key has been added in this layer to allow easy access to the
- * Control-Alt-Delete login chord for Windows.
- *
- * ,-----------------------------------. ,-----------------------------------.
- * | ~ | ! | @ | # | $ | % | | ^ | & | * | ( | ) | Del |
- * |-----------------------------------| |-----------------------------------|
- * | | _ | + | { | } | Caps| | Home| PgDn| PgUp| End | | |
- * |-----------------------------------| |-----------------------------------|
- * | | F1 | F2 | F3 | F4 | F5 | | F6 | F7 | F8 | F9 | F10 | |
- * |-----------------------------------| |-----------------------------------|
- * | | | | | | | | | | | | | |
- * `-----------------------------------' `-----------------------------------'
- */
-
-#define ______________________RAISE_L1_____________________ KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC
-#define ______________________RAISE_L2_____________________ _______, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_CAPS
-#define ______________________RAISE_L3_____________________ _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5
-#define ______________________RAISE_L4_____________________ _______, _______, _______, _______, _______, _______
-
-#define ______________________RAISE_R1_____________________ KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL
-#define ______________________RAISE_R2_____________________ KC_HOME, KC_PGDN, KC_PGUP, KC_END, XXXXXXX, XXXXXXX
-#define ______________________RAISE_R3_____________________ KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, _______
-#define ______________________RAISE_R4_____________________ _______, _______, _______, _______, XXXXXXX, XXXXXXX
-
-/* Lower Layer
- *
- * The lower layout scheme accommodates the Vim style arrow keys.
- *
- * - The arrow keys are in the normal Vim positions.
- * - The Left Square Bracket, Right Square Bracket, Minus, and Equal keys
- * have been moved from the right side to the left side. This will take
- * some getting used to, as it is on the left rather than the right.
- * - A Delete key has been added in this layer to allow easy access to the
- * Control-Alt-Delete login chord for Windows.
- * - The remaining F keys are in this layer.
- *
- * ,-----------------------------------. ,-----------------------------------.
- * | ` | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | Del |
- * |-----------------------------------| |-----------------------------------|
- * | | - | = | [ | ] | | | Left| Down| Up |Right| | |
- * |-----------------------------------| |-----------------------------------|
- * | | F11 | F12 | | | | | | | | | | |
- * |-----------------------------------| |-----------------------------------|
- * | | | | | | | | | | | | | |
- * `-----------------------------------' `-----------------------------------'
- */
-
-#define ______________________LOWER_L1_____________________ KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5
-#define ______________________LOWER_L2_____________________ _______, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, XXXXXXX
-#define ______________________LOWER_L3_____________________ _______, KC_F11, KC_F12, XXXXXXX, XXXXXXX, XXXXXXX
-#define ______________________LOWER_L4_____________________ _______, _______, _______, _______, _______, _______
-
-#define ______________________LOWER_R1_____________________ KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL
-#define ______________________LOWER_R2_____________________ KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, XXXXXXX, XXXXXXX
-#define ______________________LOWER_R3_____________________ XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______
-#define ______________________LOWER_R4_____________________ _______, _______, _______, _______, XXXXXXX, XXXXXXX
-
-/* Mouse Layer
- *
- * The mouse layer adds keys to use the keyboard like a mouse.
- *
- * ,-----------------------------------. ,-----------------------------------.
- * | | | | | | | | | | | | | |
- * |-----------------------------------| |-----------------------------------|
- * | | | |Ms-Lc|Ms-Rc| | | Ms-L| Ms-D| Ms-U| Ms-R| | |
- * |-----------------------------------| |-----------------------------------|
- * | | | | | | | | | | | | | |
- * |-----------------------------------| |-----------------------------------|
- * | | | | | | | | | | | | | |
- * `-----------------------------------' `-----------------------------------'
- */
-
-#define ______________________MOUSE_L1_____________________ XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX
-#define ______________________MOUSE_L2_____________________ _______, XXXXXXX, XXXXXXX, KC_BTN1, KC_BTN2, XXXXXXX
-#define ______________________MOUSE_L3_____________________ _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX
-#define ______________________MOUSE_L4_____________________ _______, _______, _______, _______, _______, _______
-
-#define ______________________MOUSE_R1_____________________ XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX
-#define ______________________MOUSE_R2_____________________ KC_MS_L, KC_MS_D, KC_MS_U, KC_MS_R, XXXXXXX, XXXXXXX
-#define ______________________MOUSE_R3_____________________ XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______
-#define ______________________MOUSE_R4_____________________ _______, _______, _______, _______, XXXXXXX, XXXXXXX
-
-/* Convenience Layer
- *
- * The Convenience layer adds miscellaneous chords to the keyboard.
- *
- * - The Number Lock key is physically in the same spot as the Caps Lock key
- * in the raise layer.
- * - There is also a Backspace Key for convenience.
- * - There is a convenience macro to type the Control-Alt-Delete login chord for Windows.
- * - There is a convenience macro to switch context from the Remote Desktop to the local
- * machine in Windows.
- * - There are convenience macros to switch between virtual desktops in Windows.
- * - There are convenience macros to create and delete virtual desktops in Windows.
- *
- * ,-----------------------------------. ,-----------------------------------.
- * | | |Insrt|ScrLk|PrtSc| | | | | | | |BkSpc|
- * |-----------------------------------| |-----------------------------------|
- * | | | App | LCAD|MRDCC|NmLck| |MVTDL|MVTDC|MVTDN|MVTDR| | |
- * |-----------------------------------| |-----------------------------------|
- * | | |MStop|MPrev|MPlay|MNext| |MMute|MVolD|MVolD| | | |
- * |-----------------------------------| |-----------------------------------|
- * | | | | | | | | | | | | | |
- * `-----------------------------------' `-----------------------------------'
- */
-
-#define ___________________CONVENIENCE_L1__________________ XXXXXXX, XXXXXXX, KC_INS, KC_SCRL, KC_PSCR, XXXXXXX
-#define ___________________CONVENIENCE_L2__________________ _______, XXXXXXX, KC_APP, MC_lcad, MC_rdcc, KC_NUM
-#define ___________________CONVENIENCE_L3__________________ _______, XXXXXXX, KC_MSTP, KC_MPRV, KC_MPLY, KC_MNXT
-#define ___________________CONVENIENCE_L4__________________ _______, _______, _______, _______, _______, _______
-
-#define ___________________CONVENIENCE_R1__________________ XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_BSPC
-#define ___________________CONVENIENCE_R2__________________ MC_vtdl, MC_vtdc, MC_vtdn, MC_vtdr, XXXXXXX, XXXXXXX
-#define ___________________CONVENIENCE_R3__________________ KC_MUTE, KC_VOLD, KC_VOLU, XXXXXXX, XXXXXXX, _______
-#define ___________________CONVENIENCE_R4__________________ _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX
-
-/* Windows Terminal Layer
- *
- * Contains shortcuts for pane and tab usage for Windows Terminal
- *
- * ,-----------------------------------. ,-----------------------------------.
- * | |Tab 1|Tab 2|Tab 3|Tab 4|Tab 5| |Tab 6|Tab 7|Tab 8|Tab 9|TrCnP|BkSpc|
- * |-----------------------------------| |-----------------------------------|
- * | | |Split|Close| | | |FcsLf|FcsDn|FcsUp|FcsRt| | |
- * |-----------------------------------| |-----------------------------------|
- * | | | | |VSplt| | | | | | | | |
- * |-----------------------------------| |-----------------------------------|
- * | | | | | | | | | | | | | |
- * `-----------------------------------' `-----------------------------------'
- */
-
-#define ________________WINDOWS_TERMINAL_L1________________ XXXXXXX, MC_trt1, MC_trt2, MC_trt3, MC_trt4, MC_trt5
-#define ________________WINDOWS_TERMINAL_L2________________ _______, XXXXXXX, MC_trps, MC_trpc, XXXXXXX, MC_trtn
-#define ________________WINDOWS_TERMINAL_L3________________ _______, XXXXXXX, XXXXXXX, XXXXXXX, MC_trpv, XXXXXXX
-#define ________________WINDOWS_TERMINAL_L4________________ _______, _______, _______, _______, _______, _______
-
-#define ________________WINDOWS_TERMINAL_R1________________ MC_trt6, MC_trt7, MC_trt8, MC_trt9, MC_trcp, KC_BSPC
-#define ________________WINDOWS_TERMINAL_R2________________ MC_trpl, MC_trpd, MC_trpu, MC_trpr, XXXXXXX, XXXXXXX
-#define ________________WINDOWS_TERMINAL_R3________________ XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______
-#define ________________WINDOWS_TERMINAL_R4________________ _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX
-
-/* General Game Layer
- *
- * ,-----------------------------------. ,-----------------------------------.
- * | ` | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 |BkSpc|
- * |-----------------------------------| |-----------------------------------|
- * | Tab | Q | W | E | R | T | | Y | U | I | O | P | \ |
- * |-----------------------------------| |-----------------------------------|
- * |Sf/Ec| A | S | D | F | G | | H | J | K | L | ; |Enter|
- * |-----------------------------------| |-----------------------------------|
- * | Ctl | Z | Alt | X | C |Space| |Space| M | B | . |Nxt L|Rst L|
- * `-----------------------------------' `-----------------------------------'
- */
-
-#define ________________General_Game_4x12_L1_______________ KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5
-#define ________________General_Game_4x12_L2_______________ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T
-#define ________________General_Game_4x12_L3_______________ MC_LSEC, KC_A, KC_S, KC_D, KC_F, KC_G
-#define ________________General_Game_4x12_L4_______________ KC_LCTL, KC_Z, KC_LALT, KC_X, KC_C, KC_SPC
-
-#define ________________General_Game_4x12_R1_______________ KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC
-#define ________________General_Game_4x12_R2_______________ KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS
-#define ________________General_Game_4x12_R3_______________ KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_ENT
-#define ________________General_Game_4x12_R4_______________ KC_SPC, KC_M, KC_B, KC_DOT, TO(_CS), TO(_QW)
-
-/* CS:GO Layer
- *
- * ,-----------------------------------. ,-----------------------------------.
- * | | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 |BkSpc|
- * |-----------------------------------| |-----------------------------------|
- * | Tab | Q | W | E | R | T | | Y | 4 | 5 | 6 | |NmLck|
- * |-----------------------------------| |-----------------------------------|
- * |Shift| A | S | D | F | G | | H | 1 | 2 | 3 |Enter| Esc |
- * |-----------------------------------| |-----------------------------------|
- * | Ctl | Z | Alt | X | B |Space| |Space| 0 | 0 | . |Nxt L|Rst L|
- * `-----------------------------------' `-----------------------------------'
- */
-
-#define ___________________CSGO_4x12_L1____________________ XXXXXXX, KC_1, KC_2, KC_3, KC_4, KC_5
-#define ___________________CSGO_4x12_L2____________________ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T
-#define ___________________CSGO_4x12_L3____________________ KC_LSFT, KC_A, KC_S, KC_D, KC_F, KC_G
-#define ___________________CSGO_4x12_L4____________________ KC_LCTL, KC_Z, KC_LALT, KC_X, KC_B, KC_SPC
-
-#define ___________________CSGO_4x12_R1____________________ KC_6, KC_P7, KC_P8, KC_P9, KC_0, KC_BSPC
-#define ___________________CSGO_4x12_R2____________________ KC_Y, KC_P4, KC_P5, KC_P6, XXXXXXX, KC_NUM
-#define ___________________CSGO_4x12_R3____________________ KC_H, KC_P1, KC_P2, KC_P3, KC_PENT, KC_ESC
-#define ___________________CSGO_4x12_R4____________________ KC_SPC, KC_P0, KC_P0, KC_PDOT, TO(_QW), TO(_QW)
-
-/* Convenience macros
- *
- * These are accelerator macros for simplifying declaration of PROGMEM strings
- */
-
-// Declare variable name
-#define CUSTOM_VAR(VAR) mc_##VAR
-
-// Declare PROGMEM string using the variable name
-#define CUSTOM_DEF(VAR) const char CUSTOM_VAR(VAR)[] PROGMEM =
-
-// Declare enum name
-#define CUSTOM_ENUM(VAR) MC_##VAR
-
-#define CUSTOM_MACRO_STRING(X) X
-
-#define COMMA_DELIM(...) ,
-#define SEMI_DELIM(...) ;
-
-#define DROP(...)
-
-/* Keycode synchronization macros
- *
- * These macros help synchronize the keycodes between the string declaration, string pointer declaration, and enum order.
- */
-
-#define CUSTOM_MACROS(CUSTOM_NAME, CUSTOM_STRING, CUSTOM_DELIM) \
- CUSTOM_NAME(rdcc) CUSTOM_STRING(SS_LCTL(SS_LALT(SS_TAP(X_HOME)))) CUSTOM_DELIM() \
- CUSTOM_NAME(lcad) CUSTOM_STRING(SS_LCTL(SS_LALT(SS_TAP(X_DELETE)))) CUSTOM_DELIM() \
- CUSTOM_NAME(trcp) CUSTOM_STRING(SS_LCTL(SS_LSFT("p"))) CUSTOM_DELIM() \
- CUSTOM_NAME(trps) CUSTOM_STRING(SS_LALT(SS_LSFT("-"))) CUSTOM_DELIM() \
- CUSTOM_NAME(trpv) CUSTOM_STRING(SS_LALT(SS_LSFT("+"))) CUSTOM_DELIM() \
- CUSTOM_NAME(trpc) CUSTOM_STRING(SS_LCTL(SS_LSFT("w"))) CUSTOM_DELIM() \
- CUSTOM_NAME(trpl) CUSTOM_STRING(SS_LALT(SS_TAP(X_LEFT))) CUSTOM_DELIM() \
- CUSTOM_NAME(trpd) CUSTOM_STRING(SS_LALT(SS_TAP(X_DOWN))) CUSTOM_DELIM() \
- CUSTOM_NAME(trpu) CUSTOM_STRING(SS_LALT(SS_TAP(X_UP))) CUSTOM_DELIM() \
- CUSTOM_NAME(trpr) CUSTOM_STRING(SS_LALT(SS_TAP(X_RIGHT))) CUSTOM_DELIM() \
- CUSTOM_NAME(trtn) CUSTOM_STRING(SS_LCTL(SS_LSFT("t"))) CUSTOM_DELIM() \
- CUSTOM_NAME(trt1) CUSTOM_STRING(SS_LCTL(SS_LALT("1"))) CUSTOM_DELIM() \
- CUSTOM_NAME(trt2) CUSTOM_STRING(SS_LCTL(SS_LALT("2"))) CUSTOM_DELIM() \
- CUSTOM_NAME(trt3) CUSTOM_STRING(SS_LCTL(SS_LALT("3"))) CUSTOM_DELIM() \
- CUSTOM_NAME(trt4) CUSTOM_STRING(SS_LCTL(SS_LALT("4"))) CUSTOM_DELIM() \
- CUSTOM_NAME(trt5) CUSTOM_STRING(SS_LCTL(SS_LALT("5"))) CUSTOM_DELIM() \
- CUSTOM_NAME(trt6) CUSTOM_STRING(SS_LCTL(SS_LALT("6"))) CUSTOM_DELIM() \
- CUSTOM_NAME(trt7) CUSTOM_STRING(SS_LCTL(SS_LALT("7"))) CUSTOM_DELIM() \
- CUSTOM_NAME(trt8) CUSTOM_STRING(SS_LCTL(SS_LALT("8"))) CUSTOM_DELIM() \
- CUSTOM_NAME(trt9) CUSTOM_STRING(SS_LCTL(SS_LALT("9"))) CUSTOM_DELIM() \
- CUSTOM_NAME(vtdl) CUSTOM_STRING(SS_LCTL(SS_LGUI(SS_TAP(X_LEFT)))) CUSTOM_DELIM() \
- CUSTOM_NAME(vtdc) CUSTOM_STRING(SS_LCTL(SS_LGUI(SS_TAP(X_F4)))) CUSTOM_DELIM() \
- CUSTOM_NAME(vtdn) CUSTOM_STRING(SS_LCTL(SS_LGUI("d"))) CUSTOM_DELIM() \
- CUSTOM_NAME(vtdr) CUSTOM_STRING(SS_LCTL(SS_LGUI(SS_TAP(X_RIGHT))))
-
-// Additional color definitions for simplicity
-#define HS_AZURE 132, 102
-#define HS_BLACK 0, 0
-#define HS_BLUE 170, 255
-#define HS_CHARTREUSE 64, 255
-#define HS_CORAL 11, 176
-#define HS_CYAN 128, 255
-#define HS_GOLD 36, 255
-#define HS_GOLDENROD 30, 218
-#define HS_GRAY 0, 0
-#define HS_GREEN 85, 255
-#define HS_MAGENTA 213, 255
-#define HS_ORANGE 28, 255
-#define HS_PINK 234, 128
-#define HS_PURPLE 191, 255
-#define HS_RED 0, 255
-#define HS_SPRINGGREEN 106, 255
-#define HS_TEAL 128, 255
-#define HS_TURQUOISE 123, 90
-#define HS_WHITE 0, 0
-#define HS_YELLOW 43, 255
diff --git a/users/csc027/rules.mk b/users/csc027/rules.mk
deleted file mode 100644
index 7e5d44e1c8..0000000000
--- a/users/csc027/rules.mk
+++ /dev/null
@@ -1,11 +0,0 @@
-SRC += csc027.c
-
-ifeq ($(strip $(RGBLIGHT_ENABLE)), yes)
- SRC += custom_rgb.c
- SRC += usb_led.c
-endif
-
-ifeq ($(strip $(AUDIO_ENABLE)), yes)
- SRC += custom_audio.c
- SRC += usb_led.c
-endif
diff --git a/users/csc027/usb_led.c b/users/csc027/usb_led.c
deleted file mode 100644
index 78fbdcdf54..0000000000
--- a/users/csc027/usb_led.c
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
-Copyright 2020 Constantine Chen @csc027
-
-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 "csc027.h"
-#include "usb_led.h"
-#include "led.h"
-
-#if defined(RGBLIGHT_ENABLE)
-# include "custom_rgb.h"
-#elif defined(AUDIO_ENABLE)
-# include "custom_audio.h"
-#endif
-
-#if defined(AUDIO_ENABLE) || defined(RGBLIGHT_ENABLE)
-
-bool led_update_user(led_t new_led) {
- static led_t old_led = {
- .num_lock = false,
- .caps_lock = false,
- .scroll_lock = false
- };
-
- if(old_led.caps_lock != new_led.caps_lock) {
- new_led.caps_lock ? on_usb_led_on() : on_usb_led_off();
- } else if(old_led.num_lock != new_led.num_lock) {
- new_led.num_lock ? on_usb_led_on() : on_usb_led_off();
- } else if(old_led.scroll_lock != new_led.scroll_lock) {
- new_led.scroll_lock ? on_usb_led_on() : on_usb_led_off();
- }
- old_led = new_led;
-
- return true;
-}
-
-#endif
diff --git a/users/csc027/usb_led.h b/users/csc027/usb_led.h
deleted file mode 100644
index 6248b31207..0000000000
--- a/users/csc027/usb_led.h
+++ /dev/null
@@ -1,20 +0,0 @@
-/*
-Copyright 2020 Constantine Chen @csc027
-
-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
-
-bool led_update_user(led_t usb_led);
diff --git a/users/curry/.gitignore b/users/curry/.gitignore
deleted file mode 100644
index c6df8c0139..0000000000
--- a/users/curry/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-secrets.c
diff --git a/users/curry/LICENSE b/users/curry/LICENSE
deleted file mode 100644
index 198ae45b2e..0000000000
--- a/users/curry/LICENSE
+++ /dev/null
@@ -1,14 +0,0 @@
-Copyright 2020 Akaash Suresh casa.akaash@gmail.com @CurryFurious
-
-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/>.
diff --git a/users/curry/README.md b/users/curry/README.md
deleted file mode 100644
index 70d6262d73..0000000000
--- a/users/curry/README.md
+++ /dev/null
@@ -1,30 +0,0 @@
-# Information
-
-These is my userspace files, heavily influenced by @drashna's userspace structure.
-
-# Keyboards
-
-Main uses are for corne & lily58, supporting dfu bootloader (elite-c)
-
-## Split Common
-Is compatible with split_common when the previous two keyboards update to them.
-
-If you want to use these keymaps with split common code, they are on my personal github fork: [CurryFurious/qmk_firmware](https://github.com/CurryFurious/qmk_firmware)
-
-Referenced PRs: #6260, #5998, #6001
-
-## Keymaps
-Keymap layout is similar between the two keyboards. Lily58 has a lot of open keys for custom keys as well. Keymap formatting is set up in the physical layout of the keyboard, so mapping keys should be easier.
-
-## Tap Dances
-
-Tap dances are enabled but none are defined, you can add them to [tapdances.c](tapdances.c). If not using tapdances, you can disable them in the keymaps.
-
-## RGB
-RGB is implemented pretty much the same as @drashna. Only change is that I added the RGB code from the drashna's corne [keymap.c](../../keyboards/crkbd/keymaps/drashna/keymap.c), lines 313-383 into rgb_stuff.c.
-
-## OLED
-Similarly to RGB, I moved all OLED code into [oled.c](oled.c) to better clear up the keymap.c file. I haven't experimented with the kyria's 128x64 pixel screen so it probably won't work as well with it yet.
-
-## Wrappers
-Have implemented QWERTY, COLEMAK Mod DH, and DVORAK. Other macros are defined, some modified from drashna's. Drashna's [wrappers.h](../drashna/wrappers.h) has other layouts that you can copy in as you see fit, make sure to add them to the userspace_layers enum in [curry.h](curry.h)
diff --git a/users/curry/config.h b/users/curry/config.h
deleted file mode 100644
index 94e09350cd..0000000000
--- a/users/curry/config.h
+++ /dev/null
@@ -1,112 +0,0 @@
-#pragma once
-
-// Use custom magic number so that when switching branches, EEPROM always gets reset
-#define EECONFIG_MAGIC_NUMBER (uint16_t)0x420
-
-/* Set Polling rate to 1000Hz */
-#define USB_POLLING_INTERVAL_MS 1
-
-#if defined(RGBLIGHT_ENABLE)
-# undef RGBLIGHT_EFFECT_RAINBOW_MOOD
-# undef RGBLIGHT_EFFECT_RAINBOW_SWIRL
-# undef RGBLIGHT_EFFECT_CHRISTMAS
-# undef RGBLIGHT_EFFECT_STATIC_GRADIENT
-# undef RGBLIGHT_EFFECT_RGB_TEST
-# undef RGBLIGHT_EFFECT_ALTERNATING
-# undef RGBLIGHT_EFFECT_TWINKLE
-# define RGBLIGHT_SLEEP
-# define RGBLIGHT_EFFECT_BREATHING
-# define RGBLIGHT_EFFECT_SNAKE
-# define RGBLIGHT_EFFECT_KNIGHT
-#endif // RGBLIGHT_ENABLE
-
-#if defined(RGB_MATRIX_ENABLE)
-# define RGB_MATRIX_KEYPRESSES
-# define RGB_MATRIX_FRAMEBUFFER_EFFECTS
-# define RGB_DISABLE_WHEN_USB_SUSPENDED
-
-# undef ENABLE_RGB_MATRIX_ALPHAS_MODS
-# undef ENABLE_RGB_MATRIX_GRADIENT_UP_DOWN
-# undef ENABLE_RGB_MATRIX_BREATHING
-# undef ENABLE_RGB_MATRIX_BAND_SAT
-# undef ENABLE_RGB_MATRIX_BAND_VAL
-# undef ENABLE_RGB_MATRIX_BAND_PINWHEEL_SAT
-# undef ENABLE_RGB_MATRIX_BAND_PINWHEEL_VAL
-# undef ENABLE_RGB_MATRIX_BAND_SPIRAL_SAT
-# undef ENABLE_RGB_MATRIX_BAND_SPIRAL_VAL
-# undef ENABLE_RGB_MATRIX_CYCLE_ALL
-# undef ENABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT
-# undef ENABLE_RGB_MATRIX_CYCLE_UP_DOWN
-# undef ENABLE_RGB_MATRIX_CYCLE_OUT_IN
-# define ENABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL
-# undef ENABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON
-# undef ENABLE_RGB_MATRIX_DUAL_BEACON
-# undef ENABLE_RGB_MATRIX_CYCLE_PINWHEEL
-# undef ENABLE_RGB_MATRIX_CYCLE_SPIRAL
-# undef ENABLE_RGB_MATRIX_RAINBOW_BEACON
-# undef ENABLE_RGB_MATRIX_RAINBOW_PINWHEELS
-# undef ENABLE_RGB_MATRIX_RAINDROPS
-# undef ENABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS
-# define ENABLE_RGB_MATRIX_TYPING_HEATMAP
-# undef ENABLE_RGB_MATRIX_DIGITAL_RAIN
-# undef ENABLE_RGB_MATRIX_SOLID_REACTIVE
-# undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE
-# undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE
-# undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE
-# undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS
-# undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS
-# undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS
-# undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS
-# undef ENABLE_RGB_MATRIX_SPLASH
-# undef ENABLE_RGB_MATRIX_MULTISPLASH
-# undef ENABLE_RGB_MATRIX_SOLID_SPLASH
-# undef ENABLE_RGB_MATRIX_SOLID_MULTISPLASH
-#endif // RGB_MATRIX_ENABLE
-
-#if !defined(ONESHOT_TAP_TOGGLE)
-# define ONESHOT_TAP_TOGGLE 2
-#endif // !ONESHOT_TAP_TOGGLE
-
-#if !defined(ONESHOT_TIMEOUT)
-# define ONESHOT_TIMEOUT 3000
-#endif // !ONESHOT_TIMEOUT
-
-#undef PERMISSIVE_HOLD
-
-#define FORCE_NKRO
-
-#if !defined(TAPPING_TOGGLE)
-# define TAPPING_TOGGLE 1
-#endif
-
-#if defined(TAPPING_TERM)
-# undef TAPPING_TERM
-#endif // TAPPING_TERM
-
-#if defined(KEYBOARD_ergodox_ez)
-# define TAPPING_TERM 185
-#elif defined(KEYBOARD_crkbd)
-# define TAPPING_TERM 200
-#else
-# define TAPPING_TERM 175
-#endif
-
-#define TAP_CODE_DELAY 5
-
-#define LEADER_TIMEOUT 250
-#define LEADER_PER_KEY_TIMING
-
-/* Disable unused and unneeded features to reduce on firmware size */
-#if defined(LOCKING_SUPPORT_ENABLE)
-# undef LOCKING_SUPPORT_ENABLE
-#endif
-
-#if defined(LOCKING_RESYNC_ENABLE)
-# undef LOCKING_RESYNC_ENABLE
-#endif
-
-#if defined(OLED_FONT_H)
-# undef OLED_FONT_H
-#endif
-
-#define OLED_FONT_H "users/curry/glcdfont.c"
diff --git a/users/curry/curry.c b/users/curry/curry.c
deleted file mode 100644
index f29b9c3ff7..0000000000
--- a/users/curry/curry.c
+++ /dev/null
@@ -1,132 +0,0 @@
-#include "curry.h"
-
-userspace_config_t userspace_config;
-
-#define CURRY_UNICODE_MODE 1
-
-void bootmagic_lite(void) {
- matrix_scan();
-#if defined(DEBOUNCING_DELAY) && DEBOUNCING_DELAY > 0
- wait_ms(DEBOUNCING_DELAY * 2);
-#elif defined(DEBOUNCE) && DEBOUNCE > 0
- wait_ms(DEBOUNCE * 2);
-#else
- wait_ms(30);
-#endif
- matrix_scan();
-#if defined(BOOTMAGIC_ENABLE)
- if (matrix_get_row(BOOTMAGIC_LITE_ROW) & (1 << BOOTMAGIC_LITE_COLUMN)) {
- bootloader_jump();
- }
-#endif
-}
-
-__attribute__((weak)) void keyboard_pre_init_keymap(void) {}
-
-void keyboard_pre_init_user(void) {
- userspace_config.raw = eeconfig_read_user();
- keyboard_pre_init_keymap();
-}
-
-__attribute__((weak)) void matrix_init_keymap(void) {}
-
-// Call user matrix init, set default RGB colors and then
-// call the keymap's init function
-void matrix_init_user(void) {
-#if (defined(UNICODE_ENABLE) || defined(UNICODEMAP_ENABLE) || defined(UCIS_ENABLE))
- set_unicode_input_mode(CURRY_UNICODE_MODE);
- get_unicode_input_mode();
-#endif // UNICODE_ENABLE
- matrix_init_keymap();
-}
-
-__attribute__((weak)) void keyboard_post_init_keymap(void) {}
-
-void keyboard_post_init_user(void) {
-#if defined(RGBLIGHT_ENABLE) || defined(RGB_MATRIX_ENABLE)
- keyboard_post_init_rgb();
-#endif
- keyboard_post_init_keymap();
-}
-
-__attribute__((weak)) void shutdown_keymap(void) {}
-
-void rgb_matrix_update_pwm_buffers(void);
-
-// On RESET, set all RGB to red, shutdown the keymap.
-void shutdown_user(void) {
-#if defined(RGBLIGHT_ENABLE)
- rgblight_enable_noeeprom();
- rgblight_mode_noeeprom(1);
- rgblight_setrgb(RGB_RED);
-#endif
-
-#if defined(RGB_MATRIX_ENABLE)
- rgb_matrix_set_color_all(0xFF, 0x00, 0x00);
- rgb_matrix_update_pwm_buffers();
-#endif
- shutdown_keymap();
-}
-
-__attribute__((weak)) void suspend_power_down_keymap(void) {}
-
-void suspend_power_down_user(void) { suspend_power_down_keymap(); }
-
-__attribute__((weak)) void suspend_wakeup_init_keymap(void) {}
-
-void suspend_wakeup_init_user(void) { suspend_wakeup_init_keymap(); }
-
-__attribute__((weak)) void matrix_scan_keymap(void) {}
-
-// No global matrix scan code, so just run keymap's matrix
-// scan function
-__attribute__((weak)) void matrix_scan_user(void) {
- static bool has_ran_yet;
- if (!has_ran_yet) {
- has_ran_yet = true;
- startup_user();
- }
-
-#if defined(RGBLIGHT_ENABLE) || defined(RGB_MATRIX_ENABLE)
- matrix_scan_rgb();
-#endif // RGBLIGHT_ENABLE
-
- matrix_scan_keymap();
-}
-
-__attribute__((weak)) layer_state_t layer_state_set_keymap(layer_state_t state) { return state; }
-
-// On Layer change, run keymap's layer change check
-layer_state_t layer_state_set_user(layer_state_t state) {
- state = update_tri_layer_state(state, _RAISE, _LOWER, _ADJUST);
-#if defined(RGBLIGHT_ENABLE)
- state = layer_state_set_rgb(state);
-#endif
- return layer_state_set_keymap(state);
-}
-
-__attribute__((weak)) layer_state_t default_layer_state_set_keymap(layer_state_t state) { return state; }
-
-// Runs state check and changes underglow color and animation
-layer_state_t default_layer_state_set_user(layer_state_t state) { return default_layer_state_set_keymap(state); }
-
-__attribute__((weak)) void led_set_keymap(uint8_t usb_led) {}
-
-// Any custom LED code goes here.
-void led_set_user(uint8_t usb_led) { led_set_keymap(usb_led); }
-
-__attribute__((weak)) void eeconfig_init_keymap(void) {}
-
-void eeconfig_init_user(void) {
- userspace_config.raw = 0;
- userspace_config.rgb_layer_change = true;
- eeconfig_update_user(userspace_config.raw);
-#if (defined(UNICODE_ENABLE) || defined(UNICODEMAP_ENABLE) || defined(UCIS_ENABLE))
- set_unicode_input_mode(CURRY_UNICODE_MODE);
- get_unicode_input_mode();
-#else
- eeprom_update_byte(EECONFIG_UNICODEMODE, CURRY_UNICODE_MODE);
-#endif
- eeconfig_init_keymap();
- keyboard_init();
-}
diff --git a/users/curry/curry.h b/users/curry/curry.h
deleted file mode 100644
index 7a9e6c9eb6..0000000000
--- a/users/curry/curry.h
+++ /dev/null
@@ -1,67 +0,0 @@
-#pragma once
-
-#include QMK_KEYBOARD_H
-#include "version.h"
-#include "eeprom.h"
-#include "wrappers.h"
-#include "process_records.h"
-
-#if defined(TAP_DANCE_ENABLE)
-# include "tap_dances.h"
-#endif // TAP_DANCE_ENABLE
-
-#if defined(RGB_MATRIX_ENABLE)
-# include "rgb_matrix_user.h"
-#endif
-
-#if defined(RGBLIGHT_ENABLE)
-# include "rgb_lighting_user.h"
-#endif
-
-#if defined(KEYBOARD_lily58_rev1) & defined(PROTOCOL_LUFA)
-# include "lufa.h"
-# include "split_util.h"
-#endif
-
-/* Define layer names */
-enum userspace_layers {
-#if defined(ENABLE_QWERTY)
- _QWERTY,
-#endif
-#if defined(ENABLE_COLEMAK)
- _COLEMAK,
-#endif
-#if defined(ENABLE_DVORAK)
- _DVORAK,
-#endif
-#if defined(ENABLE_WORKMAN)
- _WORKMAN,
-#endif
- _MODS,
- _LOWER,
- _RAISE,
- _ADJUST,
-};
-
-void matrix_init_keymap(void);
-void shutdown_keymap(void);
-void suspend_power_down_keymap(void);
-void suspend_wakeup_init_keymap(void);
-void matrix_scan_keymap(void);
-layer_state_t layer_state_set_keymap(layer_state_t state);
-layer_state_t default_layer_state_set_keymap(layer_state_t state);
-void led_set_keymap(uint8_t usb_led);
-void eeconfig_init_keymap(void);
-
-// clang-format off
-typedef union {
- uint32_t raw;
- struct {
- bool rgb_layer_change :1;
- bool nuke_switch :1;
- bool rgb_matrix_idle_anim :1;
- };
-} userspace_config_t;
-// clang-format on
-
-extern userspace_config_t userspace_config;
diff --git a/users/curry/glcdfont.c b/users/curry/glcdfont.c
deleted file mode 100644
index 10ce3b3457..0000000000
--- a/users/curry/glcdfont.c
+++ /dev/null
@@ -1,232 +0,0 @@
-#include "progmem.h"
-
-// Corne 8x6 font with QMK Firmware Logo
-// Online editor: https://helixfonteditor.netlify.com/
-
-// clang-format off
-const unsigned char font[] PROGMEM = {
-0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-0x3E, 0x5B, 0x4F, 0x5B, 0x3E, 0x00,
-0x3E, 0x6B, 0x4F, 0x6B, 0x3E, 0x00,
-0x1C, 0x3E, 0x7C, 0x3E, 0x1C, 0x00,
-0x18, 0x3C, 0x7E, 0x3C, 0x18, 0x00,
-0x1C, 0x57, 0x7D, 0x57, 0x1C, 0x00,
-0x1C, 0x5E, 0x7F, 0x5E, 0x1C, 0x00,
-0x00, 0x18, 0x3C, 0x18, 0x00, 0x00,
-0xFF, 0xE7, 0xC3, 0xE7, 0xFF, 0x00,
-0x00, 0x18, 0x24, 0x18, 0x00, 0x00,
-0xFF, 0xE7, 0xDB, 0xE7, 0xFF, 0x00,
-0x30, 0x48, 0x3A, 0x06, 0x0E, 0x00,
-0x26, 0x29, 0x79, 0x29, 0x26, 0x00,
-0x40, 0x7F, 0x05, 0x05, 0x07, 0x00,
-0x40, 0x7F, 0x05, 0x25, 0x3F, 0x00,
-0x5A, 0x3C, 0xE7, 0x3C, 0x5A, 0x00,
-0x7F, 0x3E, 0x1C, 0x1C, 0x08, 0x00,
-0x08, 0x1C, 0x1C, 0x3E, 0x7F, 0x00,
-0x14, 0x22, 0x7F, 0x22, 0x14, 0x00,
-0x5F, 0x5F, 0x00, 0x5F, 0x5F, 0x00,
-0x06, 0x09, 0x7F, 0x01, 0x7F, 0x00,
-0x00, 0x66, 0x89, 0x95, 0x6A, 0x00,
-0x60, 0x60, 0x60, 0x60, 0x60, 0x00,
-0x94, 0xA2, 0xFF, 0xA2, 0x94, 0x00,
-0x08, 0x04, 0x7E, 0x04, 0x08, 0x00,
-0x10, 0x20, 0x7E, 0x20, 0x10, 0x00,
-0x08, 0x08, 0x2A, 0x1C, 0x08, 0x00,
-0x08, 0x1C, 0x2A, 0x08, 0x08, 0x00,
-0x1E, 0x10, 0x10, 0x10, 0x10, 0x00,
-0x0C, 0x1E, 0x0C, 0x1E, 0x0C, 0x00,
-0x30, 0x38, 0x3E, 0x38, 0x30, 0x00,
-0x06, 0x0E, 0x3E, 0x0E, 0x06, 0x00,
-0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x5F, 0x00, 0x00, 0x00,
-0x00, 0x07, 0x00, 0x07, 0x00, 0x00,
-0x14, 0x7F, 0x14, 0x7F, 0x14, 0x00,
-0x24, 0x2A, 0x7F, 0x2A, 0x12, 0x00,
-0x23, 0x13, 0x08, 0x64, 0x62, 0x00,
-0x36, 0x49, 0x56, 0x20, 0x50, 0x00,
-0x00, 0x08, 0x07, 0x03, 0x00, 0x00,
-0x00, 0x1C, 0x22, 0x41, 0x00, 0x00,
-0x00, 0x41, 0x22, 0x1C, 0x00, 0x00,
-0x2A, 0x1C, 0x7F, 0x1C, 0x2A, 0x00,
-0x08, 0x08, 0x3E, 0x08, 0x08, 0x00,
-0x00, 0x80, 0x70, 0x30, 0x00, 0x00,
-0x08, 0x08, 0x08, 0x08, 0x08, 0x00,
-0x00, 0x00, 0x60, 0x60, 0x00, 0x00,
-0x20, 0x10, 0x08, 0x04, 0x02, 0x00,
-0x3E, 0x51, 0x49, 0x45, 0x3E, 0x00,
-0x00, 0x42, 0x7F, 0x40, 0x00, 0x00,
-0x72, 0x49, 0x49, 0x49, 0x46, 0x00,
-0x21, 0x41, 0x49, 0x4D, 0x33, 0x00,
-0x18, 0x14, 0x12, 0x7F, 0x10, 0x00,
-0x27, 0x45, 0x45, 0x45, 0x39, 0x00,
-0x3C, 0x4A, 0x49, 0x49, 0x31, 0x00,
-0x41, 0x21, 0x11, 0x09, 0x07, 0x00,
-0x36, 0x49, 0x49, 0x49, 0x36, 0x00,
-0x46, 0x49, 0x49, 0x29, 0x1E, 0x00,
-0x00, 0x00, 0x14, 0x00, 0x00, 0x00,
-0x00, 0x40, 0x34, 0x00, 0x00, 0x00,
-0x00, 0x08, 0x14, 0x22, 0x41, 0x00,
-0x14, 0x14, 0x14, 0x14, 0x14, 0x00,
-0x00, 0x41, 0x22, 0x14, 0x08, 0x00,
-0x02, 0x01, 0x59, 0x09, 0x06, 0x00,
-0x3E, 0x41, 0x5D, 0x59, 0x4E, 0x00,
-0x7C, 0x12, 0x11, 0x12, 0x7C, 0x00,
-0x7F, 0x49, 0x49, 0x49, 0x36, 0x00,
-0x3E, 0x41, 0x41, 0x41, 0x22, 0x00,
-0x7F, 0x41, 0x41, 0x41, 0x3E, 0x00,
-0x7F, 0x49, 0x49, 0x49, 0x41, 0x00,
-0x7F, 0x09, 0x09, 0x09, 0x01, 0x00,
-0x3E, 0x41, 0x41, 0x51, 0x73, 0x00,
-0x7F, 0x08, 0x08, 0x08, 0x7F, 0x00,
-0x00, 0x41, 0x7F, 0x41, 0x00, 0x00,
-0x20, 0x40, 0x41, 0x3F, 0x01, 0x00,
-0x7F, 0x08, 0x14, 0x22, 0x41, 0x00,
-0x7F, 0x40, 0x40, 0x40, 0x40, 0x00,
-0x7F, 0x02, 0x1C, 0x02, 0x7F, 0x00,
-0x7F, 0x04, 0x08, 0x10, 0x7F, 0x00,
-0x3E, 0x41, 0x41, 0x41, 0x3E, 0x00,
-0x7F, 0x09, 0x09, 0x09, 0x06, 0x00,
-0x3E, 0x41, 0x51, 0x21, 0x5E, 0x00,
-0x7F, 0x09, 0x19, 0x29, 0x46, 0x00,
-0x26, 0x49, 0x49, 0x49, 0x32, 0x00,
-0x03, 0x01, 0x7F, 0x01, 0x03, 0x00,
-0x3F, 0x40, 0x40, 0x40, 0x3F, 0x00,
-0x1F, 0x20, 0x40, 0x20, 0x1F, 0x00,
-0x3F, 0x40, 0x38, 0x40, 0x3F, 0x00,
-0x63, 0x14, 0x08, 0x14, 0x63, 0x00,
-0x03, 0x04, 0x78, 0x04, 0x03, 0x00,
-0x61, 0x59, 0x49, 0x4D, 0x43, 0x00,
-0x00, 0x7F, 0x41, 0x41, 0x41, 0x00,
-0x02, 0x04, 0x08, 0x10, 0x20, 0x00,
-0x00, 0x41, 0x41, 0x41, 0x7F, 0x00,
-0x04, 0x02, 0x01, 0x02, 0x04, 0x00,
-0x40, 0x40, 0x40, 0x40, 0x40, 0x00,
-0x00, 0x03, 0x07, 0x08, 0x00, 0x00,
-0x20, 0x54, 0x54, 0x78, 0x40, 0x00,
-0x7F, 0x28, 0x44, 0x44, 0x38, 0x00,
-0x38, 0x44, 0x44, 0x44, 0x28, 0x00,
-0x38, 0x44, 0x44, 0x28, 0x7F, 0x00,
-0x38, 0x54, 0x54, 0x54, 0x18, 0x00,
-0x00, 0x08, 0x7E, 0x09, 0x02, 0x00,
-0x18, 0x24, 0x24, 0x1C, 0x78, 0x00,
-0x7F, 0x08, 0x04, 0x04, 0x78, 0x00,
-0x00, 0x44, 0x7D, 0x40, 0x00, 0x00,
-0x20, 0x40, 0x40, 0x3D, 0x00, 0x00,
-0x7F, 0x10, 0x28, 0x44, 0x00, 0x00,
-0x00, 0x41, 0x7F, 0x40, 0x00, 0x00,
-0x7C, 0x04, 0x78, 0x04, 0x78, 0x00,
-0x7C, 0x08, 0x04, 0x04, 0x78, 0x00,
-0x38, 0x44, 0x44, 0x44, 0x38, 0x00,
-0x7C, 0x18, 0x24, 0x24, 0x18, 0x00,
-0x18, 0x24, 0x24, 0x18, 0x7C, 0x00,
-0x7C, 0x08, 0x04, 0x04, 0x08, 0x00,
-0x48, 0x54, 0x54, 0x54, 0x24, 0x00,
-0x04, 0x04, 0x3F, 0x44, 0x24, 0x00,
-0x3C, 0x40, 0x40, 0x20, 0x7C, 0x00,
-0x1C, 0x20, 0x40, 0x20, 0x1C, 0x00,
-0x3C, 0x40, 0x30, 0x40, 0x3C, 0x00,
-0x44, 0x28, 0x10, 0x28, 0x44, 0x00,
-0x4C, 0x90, 0x90, 0x90, 0x7C, 0x00,
-0x44, 0x64, 0x54, 0x4C, 0x44, 0x00,
-0x00, 0x08, 0x36, 0x41, 0x00, 0x00,
-0x00, 0x00, 0x77, 0x00, 0x00, 0x00,
-0x00, 0x41, 0x36, 0x08, 0x00, 0x00,
-0x02, 0x01, 0x02, 0x04, 0x02, 0x00,
-0x3C, 0x26, 0x23, 0x26, 0x3C, 0x00,
-0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x00, 0x00, 0xC0, 0xE0,
-0xF0, 0xF8, 0xF8, 0x18, 0x00, 0xC0,
-0xF0, 0xFC, 0xFE, 0xFF, 0xFF, 0xFF,
-0xFF, 0xFF, 0xFF, 0xFF, 0x7E, 0x00,
-0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x80, 0xC0, 0xE0, 0xE0,
-0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0,
-0xC0, 0x80, 0x00, 0x00, 0x00, 0x00,
-0x80, 0xC0, 0xE0, 0xE0, 0xE0, 0xE0,
-0xE0, 0xE0, 0xE0, 0xE0, 0xC0, 0x80,
-0x00, 0x00, 0x00, 0xE0, 0xE0, 0xC0,
-0xC0, 0xE0, 0xE0, 0xE0, 0xE0, 0x00,
-0x00, 0xE0, 0xE0, 0xC0, 0xC0, 0xE0,
-0xE0, 0xE0, 0xE0, 0xE0, 0xC0, 0x80,
-0x00, 0x00, 0x00, 0x00, 0x80, 0xC0,
-0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0,
-0xE0, 0xE0, 0xC0, 0x80, 0x00, 0x00,
-0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-0xE0, 0xF0, 0xF0, 0xF0, 0xE0, 0xEC,
-0xEE, 0xF7, 0xF3, 0x70, 0x20, 0x00,
-0x7C, 0x7C, 0x7C, 0x7E, 0x00, 0x7E,
-0x7E, 0x7E, 0x7F, 0x7F, 0x7F, 0x00,
-0x00, 0x80, 0xC0, 0xE0, 0x7E, 0x5B,
-0x4F, 0x5B, 0xFE, 0xC0, 0x00, 0x00,
-0xC0, 0x00, 0xDC, 0xD7, 0xDE, 0xDE,
-0xDE, 0xD7, 0xDC, 0x00, 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, 0xF8, 0xFC, 0xFE,
-0xFF, 0xE0, 0x00, 0xFF, 0xFF, 0xFF,
-0xFF, 0xFF, 0xFF, 0x80, 0xFF, 0xFF,
-0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
-0xFF, 0x1F, 0x07, 0x01, 0x00, 0x00,
-0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-0x00, 0xFF, 0xFF, 0xFF, 0x81, 0x00,
-0x00, 0x00, 0x00, 0x00, 0x00, 0x81,
-0xC3, 0xC3, 0xC3, 0x00, 0x00, 0xFF,
-0xFF, 0xFF, 0x81, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x00, 0x81, 0xFF, 0xFF,
-0xFF, 0x00, 0x00, 0xFF, 0xFF, 0xFF,
-0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
-0x00, 0xFF, 0xFF, 0xFF, 0x01, 0x00,
-0x00, 0x00, 0x00, 0x01, 0xFF, 0xFF,
-0xFF, 0x00, 0x00, 0xFF, 0xFF, 0xFF,
-0x9D, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C,
-0x1C, 0x9D, 0xDF, 0xDF, 0xDF, 0x00,
-0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-0x0F, 0x1F, 0x3F, 0x7F, 0x7F, 0x7F,
-0x7F, 0x7F, 0x3F, 0x1E, 0x0C, 0x00,
-0x1F, 0x1F, 0x1F, 0x3F, 0x00, 0x3F,
-0x3F, 0x3F, 0x7F, 0x7F, 0x7F, 0x00,
-0x30, 0x7B, 0x7F, 0x78, 0x30, 0x20,
-0x20, 0x30, 0x78, 0x7F, 0x3B, 0x00,
-0x03, 0x00, 0x0F, 0x7F, 0x0F, 0x0F,
-0x0F, 0x7F, 0x0F, 0x00, 0x03, 0x00,
-0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x00, 0x03, 0x0F, 0x1F,
-0x3F, 0x3F, 0x3F, 0x3F, 0x1F, 0x1F,
-0x3F, 0x3F, 0x7F, 0x7F, 0x7F, 0x3F,
-0x3F, 0x1F, 0x3F, 0x7F, 0x7F, 0x7F,
-0x7F, 0x7C, 0x78, 0x78, 0x38, 0x1C,
-0x0F, 0x00, 0x00, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x01, 0x03, 0x07, 0x07,
-0x07, 0x07, 0x07, 0x07, 0x07, 0x07,
-0x03, 0x01, 0x00, 0x00, 0x00, 0x00,
-0x01, 0x03, 0x07, 0x07, 0x07, 0x07,
-0x07, 0x07, 0x07, 0x07, 0x03, 0x01,
-0x00, 0x00, 0x00, 0x07, 0x07, 0x07,
-0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-0x00, 0x07, 0x07, 0x07, 0x00, 0x00,
-0x00, 0x00, 0x00, 0x00, 0x07, 0x07,
-0x07, 0x00, 0x00, 0x00, 0x01, 0x03,
-0x07, 0x07, 0x07, 0x07, 0x07, 0x07,
-0x07, 0x07, 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,
-};
diff --git a/users/curry/leader_user.c b/users/curry/leader_user.c
deleted file mode 100644
index 9cee19af49..0000000000
--- a/users/curry/leader_user.c
+++ /dev/null
@@ -1,31 +0,0 @@
-#include "curry.h"
-#include "leader_user.h"
-
-void leader_end_user(void) {
- if (leader_sequence_one_key(KC_F)) {
- // Select all and format
- SEND_STRING(SS_LCTL("akf"));
- }
- if (leader_sequence_one_key(KC_P)) {
- // Screenshot region
- SEND_STRING(SS_LCTL(SS_LSFT("4")));
- }
- if (leader_sequence_two_keys(KC_D, KC_D)) {
- // Copy all
- SEND_STRING(SS_LCTL("ac"));
- }
-}
-
-void matrix_scan_user(void) {
- static bool has_ran_yet;
- if (!has_ran_yet) {
- has_ran_yet = true;
- startup_user();
- }
-
-#if defined(RGBLIGHT_ENABLE) || defined(RGB_MATRIX_ENABLE)
- matrix_scan_rgb();
-#endif // RGBLIGHT_ENABLE
-
- matrix_scan_keymap();
-}
diff --git a/users/curry/leader_user.h b/users/curry/leader_user.h
deleted file mode 100644
index f215893b9e..0000000000
--- a/users/curry/leader_user.h
+++ /dev/null
@@ -1,3 +0,0 @@
-#pragma once
-
-void matrix_scan_user(void);
diff --git a/users/curry/oled.c b/users/curry/oled.c
deleted file mode 100644
index 2defcbd80e..0000000000
--- a/users/curry/oled.c
+++ /dev/null
@@ -1,172 +0,0 @@
-#include "curry.h"
-
-#define KEYLOGGER_LENGTH 5
-static uint32_t oled_timer = 0;
-static char keylog_str[KEYLOGGER_LENGTH + 1] = {"\n"};
-static uint16_t log_timer = 0;
-// clang-format off
-static const char PROGMEM code_to_name[0xFF] = {
-// 0 1 2 3 4 5 6 7 8 9 A B c D E F
- ' ', ' ', ' ', ' ', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', // 0x
- 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', '1', '2', // 1x
- '3', '4', '5', '6', '7', '8', '9', '0', 20, 19, 27, 26, 22, '-', '=', '[', // 2x
- ']','\\', '#', ';','\'', '`', ',', '.', '/', 128, ' ', ' ', ' ', ' ', ' ', ' ', // 3x
- ' ', ' ', ' ', ' ', ' ', ' ', 'P', 'S', ' ', ' ', ' ', ' ', 16, ' ', ' ', ' ', // 4x
- ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', // 5x
- ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', // 6x
- ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', // 7x
- ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', // 8x
- ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', // 9x
- ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', // Ax
- ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', // Bx
- ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', // Cx
- ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', // Dx
- 'C', 'S', 'A', 'C', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', // Ex
- ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ' // Fx
-};
-
-// clang-format on
-void add_keylog(uint16_t keycode);
-
-oled_rotation_t oled_init_user(oled_rotation_t rotation) { return OLED_ROTATION_270; }
-
-void add_keylog(uint16_t keycode) {
- if ((keycode >= QK_MOD_TAP && keycode <= QK_MOD_TAP_MAX) || (keycode >= QK_LAYER_TAP && keycode <= QK_LAYER_TAP_MAX) || (keycode >= QK_MODS && keycode <= QK_MODS_MAX)) {
- keycode = keycode & 0xFF;
- } else if (keycode > 0xFF) {
- keycode = 0;
- }
-
- for (uint8_t i = (KEYLOGGER_LENGTH - 1); i > 0; --i) {
- keylog_str[i] = keylog_str[i - 1];
- }
-
- if (keycode < ARRAY_SIZE(code_to_name)) {
- keylog_str[0] = pgm_read_byte(&code_to_name[keycode]);
- }
-
- log_timer = timer_read();
-}
-
-void render_keylogger_status(void) {
- oled_write_P(PSTR("Keys:"), false);
- oled_write(keylog_str, false);
-}
-
-void render_default_layer_state(void) {
- oled_write_P(PSTR("Lyout"), false);
- switch (get_highest_layer(default_layer_state)) {
-#if defined(ENABLE_QWERTY)
- case _QWERTY:
- oled_write_P(PSTR(" QRTY"), false);
- break;
-#endif
-#if defined(ENABLE_COLEMAK)
- case _COLEMAK:
- oled_write_P(PSTR(" COLE"), false);
- break;
-#endif
-#if defined(ENABLE_DVORAK)
- case _DVORAK:
- oled_write_P(PSTR(" DVRK"), false);
- break;
-#endif
-#if defined(ENABLE_WORKMAN)
- case _WORKMAN:
- oled_write_P(PSTR(" WRKM"), false);
- break;
-#endif
- }
-}
-
-void render_layer_state(void) {
- oled_write_P(PSTR("LAYER"), false);
- oled_write_P(PSTR("Lower"), layer_state_is(_LOWER));
- oled_write_P(PSTR("Raise"), layer_state_is(_RAISE));
- oled_write_P(PSTR(" Mods"), layer_state_is(_MODS));
-}
-
-void render_keylock_status(led_t led_state) {
- oled_write_P(PSTR("Lock:"), false);
- oled_write_P(PSTR(" "), false);
- oled_write_P(PSTR("N"), led_state.num_lock);
- oled_write_P(PSTR("C"), led_state.caps_lock);
- oled_write_ln_P(PSTR("S"), led_state.scroll_lock);
-}
-
-void render_mod_status(uint8_t modifiers) {
- oled_write_P(PSTR("Mods:"), false);
- oled_write_P(PSTR(" "), false);
- oled_write_P(PSTR("S"), (modifiers & MOD_MASK_SHIFT));
- oled_write_P(PSTR("C"), (modifiers & MOD_MASK_CTRL));
- oled_write_P(PSTR("A"), (modifiers & MOD_MASK_ALT));
- oled_write_P(PSTR("G"), (modifiers & MOD_MASK_GUI));
-}
-
-void render_bootmagic_status(void) {
- /* Show Ctrl-Gui Swap options */
- static const char PROGMEM logo[][2][3] = {
- {{0x97, 0x98, 0}, {0xb7, 0xb8, 0}},
- {{0x95, 0x96, 0}, {0xb5, 0xb6, 0}},
- };
- oled_write_P(PSTR("BTMGK"), false);
- oled_write_P(PSTR(" "), false);
- oled_write_P(logo[0][0], !keymap_config.swap_lctl_lgui);
- oled_write_P(logo[1][0], keymap_config.swap_lctl_lgui);
- oled_write_P(PSTR(" "), false);
- oled_write_P(logo[0][1], !keymap_config.swap_lctl_lgui);
- oled_write_P(logo[1][1], keymap_config.swap_lctl_lgui);
- oled_write_P(PSTR(" NKRO"), keymap_config.nkro);
-}
-
-void render_user_status(void) {
- oled_write_P(PSTR("USER:"), false);
- oled_write_P(PSTR(" Anim"), userspace_config.rgb_matrix_idle_anim);
- oled_write_P(PSTR(" Layr"), userspace_config.rgb_layer_change);
- oled_write_P(PSTR(" Nuke"), userspace_config.nuke_switch);
-}
-
-void render_status_main(void) {
- /* Show Keyboard Layout */
- render_default_layer_state();
- render_keylock_status(host_keyboard_led_state());
- render_bootmagic_status();
- render_user_status();
-
- render_keylogger_status();
-}
-
-void render_status_secondary(void) {
- /* Show Keyboard Layout */
- render_default_layer_state();
- render_layer_state();
- render_mod_status(get_mods() | get_oneshot_mods());
-
- render_keylogger_status();
-}
-
-bool oled_task_user(void) {
- if (timer_elapsed32(oled_timer) > 30000) {
- oled_off();
- return false;
- }
-#if !defined(SPLIT_KEYBOARD)
- else {
- oled_on();
- }
-#endif
- if (is_keyboard_master()) {
- render_status_main(); // Renders the current keyboard state (layer, lock, caps, scroll, etc)
- } else {
- render_status_secondary();
- }
- return false;
-}
-
-bool process_record_keymap(uint16_t keycode, keyrecord_t *record) {
- if (record->event.pressed) {
- oled_timer = timer_read32();
- add_keylog(keycode);
- }
- return true;
-}
diff --git a/users/curry/process_records.c b/users/curry/process_records.c
deleted file mode 100644
index 3b5c001926..0000000000
--- a/users/curry/process_records.c
+++ /dev/null
@@ -1,76 +0,0 @@
-#include "curry.h"
-
-uint16_t copy_paste_timer;
-
-__attribute__((weak)) bool process_record_keymap(uint16_t keycode, keyrecord_t *record) { return true; }
-
-__attribute__((weak)) bool process_record_secrets(uint16_t keycode, keyrecord_t *record) { return true; }
-
-bool process_record_user(uint16_t keycode, keyrecord_t *record) {
- xprintf("KL: kc: %u, col: %u, row: %u, pressed: %u\n", keycode, record->event.key.col, record->event.key.row, record->event.pressed);
- switch (keycode) {
- case KC_QWERTY ... KC_WORKMAN:
- if (record->event.pressed) {
- set_single_persistent_default_layer(keycode - KC_QWERTY);
- }
- break;
- case KC_MAKE:
- if (!record->event.pressed) {
- uint8_t temp_mod = mod_config(get_mods());
- uint8_t temp_osm = mod_config(get_oneshot_mods());
- clear_mods();
- clear_oneshot_mods();
- send_string_with_delay_P(PSTR("make " QMK_KEYBOARD ":" QMK_KEYMAP), TAP_CODE_DELAY);
- if ((temp_mod | temp_osm) & MOD_MASK_SHIFT) {
- send_string_with_delay_P(PSTR(":flash"), TAP_CODE_DELAY);
- }
- send_string_with_delay_P(PSTR(" -j8 --output-sync\n"), TAP_CODE_DELAY);
- }
- break;
-
- case VRSN: // Prints firmware version
- if (record->event.pressed) {
- send_string_with_delay_P(PSTR(QMK_KEYBOARD "/" QMK_KEYMAP " @ " QMK_VERSION ", Built on: " QMK_BUILDDATE), TAP_CODE_DELAY);
- }
- break;
-
- case KC_CCCV: // One key copy/paste
- if (record->event.pressed) {
- copy_paste_timer = timer_read();
- } else {
- if (timer_elapsed(copy_paste_timer) > TAPPING_TERM) { // Hold, copy
- tap_code16(LCTL(KC_C));
- } else { // Tap, paste
- tap_code16(LCTL(KC_V));
- }
- }
- break;
-#if defined(UNICODE_ENABLE)
- case UC_FLIP:
- if (record->event.pressed) {
- send_unicode_string("(ノಠ痊ಠ)ノ彡┻━┻");
- }
- break;
- case UC_TABL:
- if (record->event.pressed) {
- send_unicode_string("┬─┬ノ( º _ ºノ)");
- }
- break;
- case UC_SHRG:
- if (record->event.pressed) {
- send_unicode_string("¯\\_(ツ)_/¯");
- }
- break;
- case UC_DISA:
- if (record->event.pressed) {
- send_unicode_string("ಠ_ಠ");
- }
- break;
-#endif
- }
- return process_record_keymap(keycode, record) &&
-#if defined(RGBLIGHT_ENABLE) || defined(RGB_MATRIX_ENABLE)
- process_record_user_rgb(keycode, record) &&
-#endif // RGBLIGHT_ENABLE
- process_record_secrets(keycode, record);
-}
diff --git a/users/curry/process_records.h b/users/curry/process_records.h
deleted file mode 100644
index 4db25c34e1..0000000000
--- a/users/curry/process_records.h
+++ /dev/null
@@ -1,101 +0,0 @@
-#pragma once
-
-enum userspace_custom_keycodes {
- VRSN = SAFE_RANGE, // Prints QMK Firmware and board info
- KC_QWERTY, // Sets default layer to QWERTY
- KC_COLEMAK, // Sets default layer to COLEMAK
- KC_DVORAK, // Sets default layer to DVORAK
- KC_WORKMAN, // Sets default layer to WORKMAN
- KC_MAKE, // Run keyboard's customized make command
- KC_RGB_T, // Toggles RGB Layer Indication mode
- RGB_IDL, // RGB Idling animations
- KC_SECRET_1, // test1
- KC_SECRET_2, // test2
- KC_SECRET_3, // test3
- KC_SECRET_4, // test4
- KC_SECRET_5, // test5
- KC_CCCV, // Hold to copy, tap to paste
- UC_FLIP, // (ಠ痊ಠ)┻━┻
- UC_TABL, // ┬─┬ノ( º _ ºノ)
- UC_SHRG, // ¯\_(ツ)_/¯
- UC_DISA, // ಠ_ಠ
- KC_DT1,
- KC_DT2,
- KC_DT3,
- KC_DT4,
- NEW_SAFE_RANGE // use "NEWPLACEHOLDER for keymap specific codes
-};
-
-bool process_record_secrets(uint16_t keycode, keyrecord_t *record);
-bool process_record_keymap(uint16_t keycode, keyrecord_t *record);
-
-#define LOWER MO(_LOWER)
-#define RAISE MO(_RAISE)
-#define ADJUST MO(_ADJUST)
-#define TG_MODS TG(_MODS)
-#define OS_LWR OSL(_LOWER)
-#define OS_RSE OSL(_RAISE)
-
-#define KC_SEC1 KC_SECRET_1
-#define KC_SEC2 KC_SECRET_2
-#define KC_SEC3 KC_SECRET_3
-#define KC_SEC4 KC_SECRET_4
-#define KC_SEC5 KC_SECRET_5
-
-#define QWERTY KC_QWERTY
-#define DVORAK KC_NO
-#define COLEMAK KC_NO
-#define WORKMAN KC_NO
-
-#if defined(ENABLE_DVORAK)
-# undef DVORAK
-# define DVORAK KC_DVORAK
-#endif
-
-#if defined(ENABLE_COLEMAK)
-# undef COLEMAK
-# define COLEMAK KC_COLEMAK
-#endif
-
-#if defined(ENABLE_WORKMAN)
-# undef WORKMAN
-# define WORKMAN KC_WORKMAN
-#endif
-
-#define KC_RST QK_BOOT
-
-#if defined(SWAP_HANDS_ENABLE)
-# define KC_C1R3 SH_T(KC_TAB)
-#else // SWAP_HANDS_ENABLE
-# define KC_C1R3 KC_TAB
-#endif // SWAP_HANDS_ENABLE
-
-#define SP_LWER LT(_LOWER, KC_SPC)
-#define ET_RAIS LT(_RAISE, KC_ENTER)
-
-/* OSM keycodes, to keep things clean and easy to change */
-#define OS_LGUI OSM(MOD_LGUI)
-#define OS_RGUI OSM(MOD_RGUI)
-#define OS_LSFT OSM(MOD_LSFT)
-#define OS_RSFT OSM(MOD_RSFT)
-#define OS_LCTL OSM(MOD_LCTL)
-#define OS_RCTL OSM(MOD_RCTL)
-#define OS_LALT OSM(MOD_LALT)
-#define OS_RALT OSM(MOD_RALT)
-#define OS_MEH OSM(MOD_MEH)
-#define OS_HYPR OSM(MOD_HYPR)
-
-#define MT_TAB MT(MOD_LCTL, KC_TAB)
-
-#define ALT_APP ALT_T(KC_APP)
-
-#define MG_NKRO MAGIC_TOGGLE_NKRO
-
-#define UC_IRNY UC(0x2E2E)
-#define UC_CLUE UC(0x203D)
-
-// KWin Window Switching
-#define KC_DT1 LCTL(KC_F1)
-#define KC_DT2 LCTL(KC_F2)
-#define KC_DT3 LCTL(KC_F3)
-#define KC_DT4 LCTL(KC_F4)
diff --git a/users/curry/rgb_lighting_user.c b/users/curry/rgb_lighting_user.c
deleted file mode 100644
index 34156744fe..0000000000
--- a/users/curry/rgb_lighting_user.c
+++ /dev/null
@@ -1,331 +0,0 @@
-#include "curry.h"
-#include "rgb_lighting_user.h"
-
-extern rgblight_config_t rgblight_config;
-bool has_initialized;
-
-void rgblight_sethsv_default_helper(uint8_t index) { rgblight_sethsv_at(rgblight_config.hue, rgblight_config.sat, rgblight_config.val, index); }
-
-/* Custom indicators for modifiers.
- * This allows for certain lights to be lit up, based on what mods are active, giving some visual feedback.
- * This is especially useful for One Shot Mods, since it's not always obvious if they're still lit up.
- */
-#if defined(INDICATOR_LIGHTS)
-void set_rgb_indicators(uint8_t this_mod, led_t this_led, uint8_t this_osm) {
- if (userspace_config.rgb_layer_change && get_highest_layer(layer_state) == 0) {
- if ((this_mod | this_osm) & MOD_MASK_SHIFT || this_led.caps_lock) {
-# ifdef SHFT_LED1
- rgblight_sethsv_at(120, 255, 255, SHFT_LED1);
-# endif // SHFT_LED1
-# ifdef SHFT_LED2
- rgblight_sethsv_at(120, 255, 255, SHFT_LED2);
-# endif // SHFT_LED2
- } else {
-# ifdef SHFT_LED1
- rgblight_sethsv_default_helper(SHFT_LED1);
-# endif // SHFT_LED1
-# ifdef SHFT_LED2
- rgblight_sethsv_default_helper(SHFT_LED2);
-# endif // SHFT_LED2
- }
- if ((this_mod | this_osm) & MOD_MASK_CTRL) {
-# ifdef CTRL_LED1
- rgblight_sethsv_at(0, 255, 255, CTRL_LED1);
-# endif // CTRL_LED1
-# ifdef CTRL_LED2
- rgblight_sethsv_at(0, 255, 255, CTRL_LED2);
-# endif // CTRL_LED2
- } else {
-# ifdef CTRL_LED1
- rgblight_sethsv_default_helper(CTRL_LED1);
-# endif // CTRL_LED1
-# ifdef CTRL_LED2
- rgblight_sethsv_default_helper(CTRL_LED2);
-# endif // CTRL_LED2
- }
- if ((this_mod | this_osm) & MOD_MASK_GUI) {
-# ifdef GUI_LED1
- rgblight_sethsv_at(51, 255, 255, GUI_LED1);
-# endif // GUI_LED1
-# ifdef GUI_LED2
- rgblight_sethsv_at(51, 255, 255, GUI_LED2);
-# endif // GUI_LED2
- } else {
-# ifdef GUI_LED1
- rgblight_sethsv_default_helper(GUI_LED1);
-# endif // GUI_LED1
-# ifdef GUI_LED2
- rgblight_sethsv_default_helper(GUI_LED2);
-# endif // GUI_LED2
- }
- if ((this_mod | this_osm) & MOD_MASK_ALT) {
-# ifdef ALT_LED1
- rgblight_sethsv_at(240, 255, 255, ALT_LED1);
-# endif // ALT_LED1
-# ifdef GUI_LED2
- rgblight_sethsv_at(240, 255, 255, ALT_LED2);
-# endif // GUI_LED2
- } else {
-# ifdef GUI_LED1
- rgblight_sethsv_default_helper(ALT_LED1);
-# endif // GUI_LED1
-# ifdef GUI_LED2
- rgblight_sethsv_default_helper(ALT_LED2);
-# endif // GUI_LED2
- }
- }
-}
-
-/* Function for the indicators */
-void matrix_scan_indicator(void) {
- if (has_initialized) {
- set_rgb_indicators(get_mods(), host_keyboard_led_state(), get_oneshot_mods());
- }
-}
-#endif // INDICATOR_LIGHTS
-
-#if defined(RGBLIGHT_TWINKLE)
-static rgblight_fadeout lights[RGBLED_NUM];
-
-__attribute__((weak)) bool rgblight_twinkle_is_led_used_keymap(uint8_t index) { return false; }
-
-/* This function checks for used LEDs. This way, collisions don't occur and cause weird rendering */
-bool rgblight_twinkle_is_led_used(uint8_t index) {
- switch (index) {
-# ifdef INDICATOR_LIGHTS
-# ifdef SHFT_LED1
- case SHFT_LED1:
- return true;
-# endif // SHFT_LED1
-# ifdef SHFT_LED2
- case SHFT_LED2:
- return true;
-# endif // SHFT_LED2
-# ifdef CTRL_LED1
- case CTRL_LED1:
- return true;
-# endif // CTRL_LED1
-# ifdef CTRL_LED2
- case CTRL_LED2:
- return true;
-# endif // CTRL_LED2
-# ifdef GUI_LED1
- case GUI_LED1:
- return true;
-# endif // GUI_LED1
-# ifdef GUI_LED2
- case GUI_LED2:
- return true;
-# endif // GUI_LED2
-# ifdef ALT_LED1
- case ALT_LED1:
- return true;
-# endif // ALT_LED1
-# ifdef ALT_LED2
- case ALT_LED2:
- return true;
-# endif // ALT_LED2
-# endif // INDICATOR_LIGHTS
- default:
- return rgblight_twinkle_is_led_used_keymap(index);
- }
-}
-
-/* Handler for fading/twinkling effect */
-void scan_rgblight_fadeout(void) { // Don't effing change this function .... rgblight_sethsv is supppppper intensive
- bool litup = false;
- for (uint8_t light_index = 0; light_index < RGBLED_NUM; ++light_index) {
- if (lights[light_index].enabled && timer_elapsed(lights[light_index].timer) > 10) {
- rgblight_fadeout *light = &lights[light_index];
- litup = true;
-
- if (light->life) {
- light->life -= 1;
- if (get_highest_layer(layer_state) == 0) {
- sethsv(light->hue + rand() % 0xF, 255, light->life, (LED_TYPE *)&led[light_index]);
- }
- light->timer = timer_read();
- } else {
- if (light->enabled && get_highest_layer(layer_state) == 0) {
- rgblight_sethsv_default_helper(light_index);
- }
- litup = light->enabled = false;
- }
- }
- }
- if (litup && get_highest_layer(layer_state) == 0) {
- rgblight_set();
- }
-}
-
-/* Triggers a LED to fade/twinkle.
- * This function handles the selection of the LED and prepres for it to be used.
- */
-void start_rgb_light(void) {
- uint8_t indices[RGBLED_NUM];
- uint8_t indices_count = 0;
- uint8_t min_life = 0xFF;
- uint8_t min_life_index = -1;
- for (uint8_t index = 0; index < RGBLED_NUM; ++index) {
- if (rgblight_twinkle_is_led_used(index)) {
- continue;
- }
- if (lights[index].enabled) {
- if (min_life_index == -1 || lights[index].life < min_life) {
- min_life = lights[index].life;
- min_life_index = index;
- }
- continue;
- }
-
- indices[indices_count] = index;
- ++indices_count;
- }
-
- uint8_t light_index;
- if (!indices_count) {
- light_index = min_life_index;
- } else {
- light_index = indices[rand() % indices_count];
- }
-
- rgblight_fadeout *light = &lights[light_index];
- light->enabled = true;
- light->timer = timer_read();
- light->life = 0xC0 + rand() % 0x40;
-
- light->hue = rgblight_config.hue + (rand() % 0xB4) - 0x54;
-
- rgblight_sethsv_at(light->hue, 255, light->life, light_index);
-}
-#endif
-
-bool process_record_user_rgb(uint16_t keycode, keyrecord_t *record) {
- uint16_t temp_keycode = keycode;
- // Filter out the actual keycode from MT and LT keys.
- if ((keycode >= QK_MOD_TAP && keycode <= QK_MOD_TAP_MAX) || (keycode >= QK_LAYER_TAP && keycode <= QK_LAYER_TAP_MAX)) {
- temp_keycode &= 0xFF;
- }
-
- switch (temp_keycode) {
-#if defined(RGBLIGHT_TWINKLE)
- case KC_A ... KC_SLASH:
- case KC_F1 ... KC_F12:
- case KC_INSERT ... KC_UP:
- case KC_KP_SLASH ... KC_KP_DOT:
- case KC_F13 ... KC_F24:
- case KC_AUDIO_MUTE ... KC_MEDIA_REWIND:
- if (record->event.pressed) {
- start_rgb_light();
- }
- break;
-#endif // RGBLIGHT_TWINKLE
- case KC_RGB_T: // This allows me to use underglow as layer indication, or as normal
- if (record->event.pressed) {
- userspace_config.rgb_layer_change ^= 1;
- dprintf("rgblight layer change [EEPROM]: %u\n", userspace_config.rgb_layer_change);
- eeconfig_update_user(userspace_config.raw);
- if (userspace_config.rgb_layer_change) {
- layer_state_set(layer_state); // This is needed to immediately set the layer color (looks better)
- }
- }
- break;
- case RGB_MODE_FORWARD ... RGB_MODE_GRADIENT: // quantum_keycodes.h L400 for definitions
- if (record->event.pressed) {
- bool is_eeprom_updated = false;
- // This disables layer indication, as it's assumed that if you're changing this ... you want that disabled
- if (userspace_config.rgb_layer_change) {
- userspace_config.rgb_layer_change = false;
- dprintf("rgblight layer change [EEPROM]: %u\n", userspace_config.rgb_layer_change);
- is_eeprom_updated = true;
- }
- if (is_eeprom_updated) {
- eeconfig_update_user(userspace_config.raw);
- }
- }
- break;
- }
- return true;
-}
-
-void keyboard_post_init_rgb(void) {
-#if defined(RGBLIGHT_STARTUP_ANIMATION)
- bool is_enabled = rgblight_config.enable;
- if (userspace_config.rgb_layer_change) {
- rgblight_enable_noeeprom();
- }
- if (rgblight_config.enable) {
- layer_state_set_user(layer_state);
- uint16_t old_hue = rgblight_config.hue;
- rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_LIGHT);
- for (uint16_t i = 255; i > 0; i--) {
- rgblight_sethsv_noeeprom((i + old_hue) % 255, 255, 255);
- matrix_scan();
- wait_ms(10);
- }
- }
- if (!is_enabled) {
- rgblight_disable_noeeprom();
- }
-
-#endif
- layer_state_set_user(layer_state);
-}
-
-void matrix_scan_rgb(void) {
-#if defined(RGBLIGHT_TWINKLE)
- scan_rgblight_fadeout();
-#endif // RGBLIGHT_ENABLE
-
-#if defined(INDICATOR_LIGHTS)
- matrix_scan_indicator();
-#endif
-}
-
-void rgblight_set_hsv_and_mode(uint8_t hue, uint8_t sat, uint8_t val, uint8_t mode) {
- rgblight_sethsv_noeeprom(hue, sat, val);
- wait_us(175); // Add a slight delay between color and mode to ensure it's processed correctly
- rgblight_mode_noeeprom(mode);
-}
-
-layer_state_t layer_state_set_rgb(layer_state_t state) {
- if (userspace_config.rgb_layer_change) {
- switch (get_highest_layer(state)) {
- case _RAISE:
- rgblight_set_hsv_and_mode(HSV_YELLOW, RGBLIGHT_MODE_BREATHING + 3);
- break;
- case _LOWER:
- rgblight_set_hsv_and_mode(HSV_GREEN, RGBLIGHT_MODE_BREATHING + 3);
- break;
- case _ADJUST:
- rgblight_set_hsv_and_mode(HSV_RED, RGBLIGHT_MODE_KNIGHT + 2);
- break;
- default: // for any other layers, or the default layer
- {
- uint8_t mode = get_highest_layer(state) == _MODS ? RGBLIGHT_MODE_BREATHING : RGBLIGHT_MODE_STATIC_LIGHT;
- switch (get_highest_layer(default_layer_state)) {
-#if defined(ENABLE_COLEMAK)
- case _COLEMAK:
- rgblight_set_hsv_and_mode(HSV_MAGENTA, mode);
- break;
-#endif
-#if defined(ENABLE_DVORAK)
- case _DVORAK:
- rgblight_set_hsv_and_mode(HSV_SPRINGGREEN, mode);
- break;
-#endif
-#if defined(ENABLE_WORKMAN)
- case _WORKMAN:
- rgblight_set_hsv_and_mode(HSV_GOLDENROD, mode);
- break;
-#endif
- default:
- rgblight_set_hsv_and_mode(HSV_CYAN, mode);
- break;
- }
- break;
- }
- }
- }
- return state;
-}
diff --git a/users/curry/rgb_lighting_user.h b/users/curry/rgb_lighting_user.h
deleted file mode 100644
index 91d7a7061e..0000000000
--- a/users/curry/rgb_lighting_user.h
+++ /dev/null
@@ -1,19 +0,0 @@
-#pragma once
-
-typedef struct {
- bool enabled;
- uint8_t hue;
- uint16_t timer;
- uint8_t life;
-} rgblight_fadeout;
-
-bool process_record_user_rgb(uint16_t keycode, keyrecord_t *record);
-void keyboard_post_init_rgb(void);
-void matrix_scan_rgb(void);
-layer_state_t layer_state_set_rgb(layer_state_t state);
-layer_state_t default_layer_state_set_rgb(layer_state_t state);
-void rgblight_sethsv_default_helper(uint8_t index);
-
-#if defined(RGBLIGHT_TWINKLE)
-void scan_rgblight_fadeout(void);
-#endif
diff --git a/users/curry/rgb_matrix_user.c b/users/curry/rgb_matrix_user.c
deleted file mode 100644
index 3c2008aa01..0000000000
--- a/users/curry/rgb_matrix_user.c
+++ /dev/null
@@ -1,153 +0,0 @@
-#include "curry.h"
-#include "rgb_matrix_user.h"
-#include "lib/lib8tion/lib8tion.h"
-
-static uint32_t hypno_timer;
-extern led_config_t g_led_config;
-
-#define RGB_MATRIX_REST_MODE RGB_MATRIX_CYCLE_OUT_IN_DUAL
-
-void suspend_power_down_keymap(void) { rgb_matrix_set_suspend_state(true); }
-
-void suspend_wakeup_init_keymap(void) { rgb_matrix_set_suspend_state(false); }
-
-void check_default_layer(uint8_t mode, uint8_t type) {
- switch (get_highest_layer(default_layer_state)) {
-#if defined(ENABLE_QWERTY)
- case _QWERTY:
- rgb_matrix_layer_helper(HSV_CYAN, mode, rgb_matrix_config.speed, type);
- break;
-#endif
-#if defined(ENABLE_COLEMAK)
- case _COLEMAK:
- rgb_matrix_layer_helper(HSV_MAGENTA, mode, rgb_matrix_config.speed, type);
- break;
-#endif
-#if defined(ENABLE_DVORAK)
- case _DVORAK:
- rgb_matrix_layer_helper(HSV_SPRINGGREEN, mode, rgb_matrix_config.speed, type);
- break;
-#endif
-#if defined(ENABLE_WORKMAN)
- case _WORKMAN:
- rgb_matrix_layer_helper(HSV_GOLDENROD, mode, rgb_matrix_config.speed, type);
- break;
-#endif
- }
-}
-
-bool rgb_matrix_indicators_user(void) {
- if (userspace_config.rgb_layer_change && rgb_matrix_config.enable) {
- switch (get_highest_layer(layer_state)) {
- case _RAISE:
- rgb_matrix_layer_helper(HSV_YELLOW, 0, rgb_matrix_config.speed, LED_FLAG_UNDERGLOW);
- break;
- case _LOWER:
- rgb_matrix_layer_helper(HSV_GREEN, 0, rgb_matrix_config.speed, LED_FLAG_UNDERGLOW);
- break;
- case _ADJUST:
- rgb_matrix_layer_helper(HSV_RED, 0, rgb_matrix_config.speed, LED_FLAG_UNDERGLOW);
- break;
- default: {
- check_default_layer(IS_LAYER_ON(_MODS), LED_FLAG_UNDERGLOW);
- break;
- }
- }
- check_default_layer(0, LED_FLAG_MODIFIER);
- }
- return false;
-}
-
-bool process_record_user_rgb(uint16_t keycode, keyrecord_t *record) {
- uint16_t temp_keycode = keycode;
- // Filter out the actual keycode from MT and LT keys.
- if ((keycode >= QK_MOD_TAP && keycode <= QK_MOD_TAP_MAX) || (keycode >= QK_LAYER_TAP && keycode <= QK_LAYER_TAP_MAX)) {
- temp_keycode &= 0xFF;
- }
-
- hypno_timer = timer_read32();
- if (userspace_config.rgb_matrix_idle_anim && rgb_matrix_get_mode() == RGB_MATRIX_REST_MODE) {
- rgb_matrix_mode_noeeprom(RGB_MATRIX_TYPING_HEATMAP);
- }
-
- switch (temp_keycode) {
- case KC_RGB_T: // This allows me to use underglow as layer indication, or as normal
- if (record->event.pressed) {
- userspace_config.rgb_layer_change ^= 1;
- dprintf("rgblight layer change [EEPROM]: %u\n", userspace_config.rgb_layer_change);
- eeconfig_update_user(userspace_config.raw);
- if (userspace_config.rgb_layer_change) {
- layer_state_set(layer_state); // This is needed to immediately set the layer color (looks better)
- }
- }
- break;
- case RGB_IDL: // This allows me to use underglow as layer indication, or as normal
- if (record->event.pressed) {
- userspace_config.rgb_matrix_idle_anim ^= 1;
- dprintf("RGB Matrix Idle Animation [EEPROM]: %u\n", userspace_config.rgb_matrix_idle_anim);
- eeconfig_update_user(userspace_config.raw);
- if (userspace_config.rgb_matrix_idle_anim) {
- rgb_matrix_mode_noeeprom(RGB_MATRIX_TYPING_HEATMAP);
- }
- }
- break;
- case RGB_MODE_FORWARD ... RGB_MODE_GRADIENT: // quantum_keycodes.h L400 for definitions
- if (record->event.pressed) {
- bool is_eeprom_updated = false;
- if (userspace_config.rgb_matrix_idle_anim) {
- userspace_config.rgb_matrix_idle_anim = false;
- dprintf("RGB Matrix Idle Animation [EEPROM]: %u\n", userspace_config.rgb_matrix_idle_anim);
- is_eeprom_updated = true;
- }
- if (is_eeprom_updated) {
- eeconfig_update_user(userspace_config.raw);
- }
- }
- break;
- }
- return true;
-}
-
-void keyboard_post_init_rgb(void) {
- if (userspace_config.rgb_matrix_idle_anim) {
- rgb_matrix_mode_noeeprom(RGB_MATRIX_REST_MODE);
- }
-}
-
-void matrix_scan_rgb(void) {
- if (userspace_config.rgb_matrix_idle_anim && rgb_matrix_get_mode() == RGB_MATRIX_TYPING_HEATMAP && timer_elapsed32(hypno_timer) > 15000) {
- rgb_matrix_mode_noeeprom(RGB_MATRIX_REST_MODE);
- }
-}
-
-void rgb_matrix_layer_helper(uint8_t hue, uint8_t sat, uint8_t val, uint8_t mode, uint8_t speed, uint8_t led_type) {
- HSV hsv = {hue, sat, val};
- if (hsv.v > rgb_matrix_config.hsv.v) {
- hsv.v = rgb_matrix_config.hsv.v;
- }
-
- switch (mode) {
- case 1: // breathing
- {
- uint16_t time = scale16by8(RGBLED_NUM, speed / 8);
- hsv.v = scale8(abs8(sin8(time) - 128) * 2, hsv.v);
- RGB rgb = hsv_to_rgb(hsv);
- for (uint8_t i = 0; i < RGB_MATRIX_LED_COUNT; i++) {
- if (HAS_FLAGS(g_led_config.flags[i], led_type)) {
- rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b);
- }
- }
- break;
- }
- default: // Solid Color
- {
- RGB rgb = hsv_to_rgb(hsv);
- for (uint8_t i = 0; i < RGB_MATRIX_LED_COUNT; i++) {
- if (HAS_FLAGS(g_led_config.flags[i], led_type)) {
- rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b);
- }
- }
- break;
- }
- }
-}
diff --git a/users/curry/rgb_matrix_user.h b/users/curry/rgb_matrix_user.h
deleted file mode 100644
index d7db29bff9..0000000000
--- a/users/curry/rgb_matrix_user.h
+++ /dev/null
@@ -1,7 +0,0 @@
-#pragma once
-
-bool process_record_user_rgb(uint16_t keycode, keyrecord_t *record);
-void keyboard_post_init_rgb(void);
-void matrix_scan_rgb(void);
-void rgb_matrix_set_color_all(uint8_t red, uint8_t green, uint8_t blue);
-void rgb_matrix_layer_helper(uint8_t hue, uint8_t sat, uint8_t val, uint8_t mode, uint8_t speed, uint8_t led_type);
diff --git a/users/curry/rgblight_breathe_table.h b/users/curry/rgblight_breathe_table.h
deleted file mode 100644
index 4c6ae38faa..0000000000
--- a/users/curry/rgblight_breathe_table.h
+++ /dev/null
@@ -1,118 +0,0 @@
-#ifndef RGBLIGHT_EFFECT_BREATHE_TABLE
-#define RGBLIGHT_EFFECT_BREATHE_TABLE
-
-// clang-format off
-const uint8_t rgblight_effect_breathe_table[] PROGMEM = {
-/* #define RGBLIGHT_EFFECT_BREATHE_CENTER 0.00 */
-/* #define RGBLIGHT_EFFECT_BREATHE_MAX 255 */
-
- #if RGBLIGHT_BREATHE_TABLE_SIZE == 256
- 0x44, 0x45, 0x47, 0x48, 0x4a, 0x4b, 0x4c, 0x4e,
- 0x4f, 0x51, 0x52, 0x54, 0x55, 0x57, 0x58, 0x5a,
- 0x5c, 0x5d, 0x5f, 0x60, 0x62, 0x64, 0x65, 0x67,
- 0x69, 0x6a, 0x6c, 0x6e, 0x70, 0x72, 0x73, 0x75,
- 0x77, 0x79, 0x7b, 0x7c, 0x7e, 0x80, 0x82, 0x84,
- 0x86, 0x88, 0x8a, 0x8b, 0x8d, 0x8f, 0x91, 0x93,
- 0x95, 0x97, 0x99, 0x9b, 0x9d, 0x9f, 0xa1, 0xa3,
- 0xa5, 0xa7, 0xa9, 0xaa, 0xac, 0xae, 0xb0, 0xb2,
- 0xb4, 0xb6, 0xb8, 0xba, 0xbc, 0xbe, 0xbf, 0xc1,
- 0xc3, 0xc5, 0xc7, 0xc9, 0xca, 0xcc, 0xce, 0xd0,
- 0xd1, 0xd3, 0xd5, 0xd6, 0xd8, 0xda, 0xdb, 0xdd,
- 0xde, 0xe0, 0xe1, 0xe3, 0xe4, 0xe5, 0xe7, 0xe8,
- 0xe9, 0xeb, 0xec, 0xed, 0xee, 0xef, 0xf0, 0xf1,
- 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, 0xf8, 0xf8,
- 0xf9, 0xfa, 0xfa, 0xfb, 0xfc, 0xfc, 0xfc, 0xfd,
- 0xfd, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe,
- 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfd,
- 0xfd, 0xfc, 0xfc, 0xfc, 0xfb, 0xfa, 0xfa, 0xf9,
- 0xf8, 0xf8, 0xf7, 0xf6, 0xf5, 0xf4, 0xf3, 0xf2,
- 0xf1, 0xf0, 0xef, 0xee, 0xed, 0xec, 0xeb, 0xe9,
- 0xe8, 0xe7, 0xe5, 0xe4, 0xe3, 0xe1, 0xe0, 0xde,
- 0xdd, 0xdb, 0xda, 0xd8, 0xd6, 0xd5, 0xd3, 0xd1,
- 0xd0, 0xce, 0xcc, 0xca, 0xc9, 0xc7, 0xc5, 0xc3,
- 0xc1, 0xbf, 0xbe, 0xbc, 0xba, 0xb8, 0xb6, 0xb4,
- 0xb2, 0xb0, 0xae, 0xac, 0xaa, 0xa9, 0xa7, 0xa5,
- 0xa3, 0xa1, 0x9f, 0x9d, 0x9b, 0x99, 0x97, 0x95,
- 0x93, 0x91, 0x8f, 0x8d, 0x8b, 0x8a, 0x88, 0x86,
- 0x84, 0x82, 0x80, 0x7e, 0x7c, 0x7b, 0x79, 0x77,
- 0x75, 0x73, 0x72, 0x70, 0x6e, 0x6c, 0x6a, 0x69,
- 0x67, 0x65, 0x64, 0x62, 0x60, 0x5f, 0x5d, 0x5c,
- 0x5a, 0x58, 0x57, 0x55, 0x54, 0x52, 0x51, 0x4f,
- 0x4e, 0x4c, 0x4b, 0x4a, 0x48, 0x47, 0x45, 0x44
- #endif /* 256 bytes table */
-
- #if RGBLIGHT_BREATHE_TABLE_SIZE == 128
- 0x44, 0x47, 0x4a, 0x4c,
- 0x4f, 0x52, 0x55, 0x58,
- 0x5c, 0x5f, 0x62, 0x65,
- 0x69, 0x6c, 0x70, 0x73,
- 0x77, 0x7b, 0x7e, 0x82,
- 0x86, 0x8a, 0x8d, 0x91,
- 0x95, 0x99, 0x9d, 0xa1,
- 0xa5, 0xa9, 0xac, 0xb0,
- 0xb4, 0xb8, 0xbc, 0xbf,
- 0xc3, 0xc7, 0xca, 0xce,
- 0xd1, 0xd5, 0xd8, 0xdb,
- 0xde, 0xe1, 0xe4, 0xe7,
- 0xe9, 0xec, 0xee, 0xf0,
- 0xf2, 0xf4, 0xf6, 0xf8,
- 0xf9, 0xfa, 0xfc, 0xfc,
- 0xfd, 0xfe, 0xfe, 0xfe,
- 0xfe, 0xfe, 0xfe, 0xfe,
- 0xfd, 0xfc, 0xfb, 0xfa,
- 0xf8, 0xf7, 0xf5, 0xf3,
- 0xf1, 0xef, 0xed, 0xeb,
- 0xe8, 0xe5, 0xe3, 0xe0,
- 0xdd, 0xda, 0xd6, 0xd3,
- 0xd0, 0xcc, 0xc9, 0xc5,
- 0xc1, 0xbe, 0xba, 0xb6,
- 0xb2, 0xae, 0xaa, 0xa7,
- 0xa3, 0x9f, 0x9b, 0x97,
- 0x93, 0x8f, 0x8b, 0x88,
- 0x84, 0x80, 0x7c, 0x79,
- 0x75, 0x72, 0x6e, 0x6a,
- 0x67, 0x64, 0x60, 0x5d,
- 0x5a, 0x57, 0x54, 0x51,
- 0x4e, 0x4b, 0x48, 0x45
- #endif /* 128 bytes table */
-
- #if RGBLIGHT_BREATHE_TABLE_SIZE == 64
- 0x44, 0x4a,
- 0x4f, 0x55,
- 0x5c, 0x62,
- 0x69, 0x70,
- 0x77, 0x7e,
- 0x86, 0x8d,
- 0x95, 0x9d,
- 0xa5, 0xac,
- 0xb4, 0xbc,
- 0xc3, 0xca,
- 0xd1, 0xd8,
- 0xde, 0xe4,
- 0xe9, 0xee,
- 0xf2, 0xf6,
- 0xf9, 0xfc,
- 0xfd, 0xfe,
- 0xfe, 0xfe,
- 0xfd, 0xfb,
- 0xf8, 0xf5,
- 0xf1, 0xed,
- 0xe8, 0xe3,
- 0xdd, 0xd6,
- 0xd0, 0xc9,
- 0xc1, 0xba,
- 0xb2, 0xaa,
- 0xa3, 0x9b,
- 0x93, 0x8b,
- 0x84, 0x7c,
- 0x75, 0x6e,
- 0x67, 0x60,
- 0x5a, 0x54,
- 0x4e, 0x48
- #endif /* 64 bytes table */
-};
-// clang-format on
-
-static const int table_scale = 256 / sizeof(rgblight_effect_breathe_table);
-
-#endif /* RGBLIGHT_EFFECT_BREATHE_TABLE */
diff --git a/users/curry/rules.mk b/users/curry/rules.mk
deleted file mode 100644
index aa89110276..0000000000
--- a/users/curry/rules.mk
+++ /dev/null
@@ -1,71 +0,0 @@
-SRC += curry.c \
- process_records.c
-
-# Common flags
-SPACE_CADET_ENABLE = no
-LTO_ENABLE = yes
-EXTRAKEY_ENABLE = yes
-UNICODE_ENABLE = yes
-NKRO_ENABLE = yes
-EXTRAKEY_ENABLE = yes
-LEADER_ENABLE = yes
-TAP_DANCE_ENABLE = no
-
-ifneq ($(strip $(NO_SECRETS)), yes)
- ifneq ("$(wildcard $(USER_PATH)/secrets.c)","")
- SRC += secrets.c
- endif
- ifeq ($(strip $(NO_SECRETS)), lite)
- OPT_DEFS += -DNO_SECRETS
- endif
-endif
-
-ifeq ($(strip $(TAP_DANCE_ENABLE)), yes)
- SRC += tap_dances.c
-endif
-
-ifeq ($(strip $(OLED_ENABLE)), yes)
- SRC += oled.c
-endif
-
-ifeq ($(strip $(LEADER_ENABLE)), yes)
- SRC += leader_user.c
-endif
-
-ifeq ($(strip $(RGBLIGHT_ENABLE)), yes)
- SRC += rgb_lighting_user.c
- ifeq ($(strip $(INDICATOR_LIGHTS)), yes)
- OPT_DEFS += -DINDICATOR_LIGHTS
- endif
- ifeq ($(strip $(RGBLIGHT_TWINKLE)), yes)
- OPT_DEFS += -DRGBLIGHT_TWINKLE
- endif
- ifeq ($(strip $(RGBLIGHT_NOEEPROM)), yes)
- OPT_DEFS += -DRGBLIGHT_NOEEPROM
- endif
- ifeq ($(strip $(RGBLIGHT_STARTUP_ANIMATION)), yes)
- OPT_DEFS += -DRGBLIGHT_STARTUP_ANIMATION
- endif
-endif
-
-RGB_MATRIX_ENABLE ?= no
-ifneq ($(strip $(RGB_MATRIX_ENABLE)), no)
- SRC += rgb_matrix_user.c
-endif
-
-ifdef CONSOLE_ENABLE
- ifeq ($(strip $(KEYLOGGER_ENABLE)), yes)
- OPT_DEFS += -DKEYLOGGER_ENABLE
- endif
-endif
-
-ifeq ($(strip $(MAKE_BOOTLOADER)), yes)
- OPT_DEFS += -DMAKE_BOOTLOADER
-endif
-
-# At least until build.mk or the like drops, this is here to prevent
-# VUSB boards from enabling NKRO, as they do not support it. Ideally
-# this should be handled per keyboard, but until that happens ...
-ifeq ($(strip $(PROTOCOL)), VUSB)
- NKRO_ENABLE = no
-endif
diff --git a/users/curry/tap_dances.c b/users/curry/tap_dances.c
deleted file mode 100644
index 86a8f679d2..0000000000
--- a/users/curry/tap_dances.c
+++ /dev/null
@@ -1,4 +0,0 @@
-#include "tap_dances.h"
-#include "curry.h"
-
-tap_dance_action_t tap_dance_actions[] = {};
diff --git a/users/curry/tap_dances.h b/users/curry/tap_dances.h
deleted file mode 100644
index 6f70f09bee..0000000000
--- a/users/curry/tap_dances.h
+++ /dev/null
@@ -1 +0,0 @@
-#pragma once
diff --git a/users/curry/wrappers.h b/users/curry/wrappers.h
deleted file mode 100644
index 490a9e0b0b..0000000000
--- a/users/curry/wrappers.h
+++ /dev/null
@@ -1,88 +0,0 @@
-#pragma once
-#include "curry.h"
-/*
-Since our quirky block definitions are basically a list of comma separated
-arguments, we need a wrapper in order for these definitions to be
-expanded before being used as arguments to the LAYOUT_xxx macro.
-*/
-#if (!defined(LAYOUT) && defined(KEYMAP))
-# define LAYOUT KEYMAP
-#endif
-
-// clang-format off
-#define KEYMAP_wrapper(...) LAYOUT(__VA_ARGS__)
-#define LAYOUT_wrapper(...) LAYOUT(__VA_ARGS__)
-#define LAYOUT_ortho_4x12_wrapper(...) LAYOUT_ortho_4x12(__VA_ARGS__)
-#define LAYOUT_ortho_5x12_wrapper(...) LAYOUT_ortho_5x12(__VA_ARGS__)
-
-#define _________________QWERTY_L1_________________ KC_Q, KC_W, KC_E, KC_R, KC_T
-#define _________________QWERTY_L2_________________ KC_A, KC_S, KC_D, KC_F, KC_G
-#define _________________QWERTY_L3_________________ KC_Z, KC_X, KC_C, KC_V, KC_B
-
-#define _________________QWERTY_R1_________________ KC_Y, KC_U, KC_I, KC_O, KC_P
-#define _________________QWERTY_R2_________________ KC_H, KC_J, KC_K, KC_L, KC_SCLN
-#define _________________QWERTY_R3_________________ KC_N, KC_M, KC_COMM, KC_DOT, KC_SLASH
-
-#define _________________COLEMAK_L1________________ KC_Q, KC_W, KC_F, KC_P, KC_B
-#define _________________COLEMAK_L2________________ KC_A, KC_R, KC_S, KC_T, KC_G
-#define _________________COLEMAK_L3________________ KC_Z, KC_X, KC_C, KC_D, KC_V
-
-#define _________________COLEMAK_R1________________ KC_J, KC_L, KC_U, KC_Y, KC_SCLN
-#define _________________COLEMAK_R2________________ KC_M, KC_N, KC_E, KC_I, KC_O
-#define _________________COLEMAK_R3________________ KC_K, KC_H, KC_COMM, KC_DOT, KC_SLASH
-
-#define _________________DVORAK_L1_________________ KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y
-#define _________________DVORAK_L2_________________ KC_A, KC_O, KC_E, KC_U, KC_I
-#define _________________DVORAK_L3_________________ KC_SCLN, KC_Q, KC_J, KC_K, KC_X
-
-#define _________________DVORAK_R1_________________ KC_F, KC_G, KC_C, KC_R, KC_L
-#define _________________DVORAK_R2_________________ KC_D, KC_H, KC_T, KC_N, KC_S
-#define _________________DVORAK_R3_________________ KC_B, KC_M, KC_W, KC_V, KC_Z
-
-#define _________________WORKMAN_L1________________ KC_Q, KC_D, KC_R, KC_W, KC_B
-#define _________________WORKMAN_L2________________ KC_A, KC_S, KC_H, KC_T, KC_G
-#define _________________WORKMAN_L3________________ KC_Z, KC_X, KC_M, KC_C, KC_V
-
-#define _________________WORKMAN_R1________________ KC_J, KC_F, KC_U, KC_P, KC_SCLN
-#define _________________WORKMAN_R2________________ KC_Y, KC_N, KC_E, KC_O, KC_I
-#define _________________WORKMAN_R3________________ KC_K, KC_L, KC_COMM, KC_DOT, KC_SLASH
-
-
-#define ________________NUMBER_LEFT________________ KC_1, KC_2, KC_3, KC_4, KC_5
-#define ________________NUMBER_RIGHT_______________ KC_6, KC_7, KC_8, KC_9, KC_0
-
-#define _________________FUNC_LEFT_________________ KC_F1, KC_F2, KC_F3, KC_F4, KC_F5
-#define _________________FUNC_RIGHT________________ KC_F6, KC_F7, KC_F8, KC_F9, KC_F10
-
-#define _________________SYM_LEFT__________________ KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC
-#define _________________SYM_RIGHT_________________ KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN
-
-
-#define ___________________BLANK___________________ _______, _______, _______, _______, _______
-
-
-#define _________________LOWER_L1__________________ _________________FUNC_LEFT_________________
-#define _________________LOWER_L2__________________ _________________SYM_LEFT__________________
-#define _________________LOWER_L3__________________ KC_DT1, KC_DT2, KC_DT3, KC_DT4, KC_CCCV
-
-#define _________________LOWER_R1__________________ _________________FUNC_RIGHT________________
-#define _________________LOWER_R2__________________ _________________SYM_RIGHT_________________
-#define _________________LOWER_R3__________________ KC_DQUO, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR
-
-#define _________________RAISE_L1__________________ ________________NUMBER_LEFT________________
-#define _________________RAISE_L2__________________ KC_PGUP, KC_PGDN, KC_HOME, KC_END, _______
-#define _________________RAISE_L3__________________ UC_FLIP, UC_TABL, UC_SHRG, UC_DISA, _______
-
-#define _________________RAISE_R1__________________ ________________NUMBER_RIGHT_______________
-#define _________________RAISE_R2__________________ KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, _______
-#define _________________RAISE_R3__________________ KC_QUOT, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC
-
-#define _________________ADJUST_L1_________________ RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, RGB_TOG
-#define _________________ADJUST_L2_________________ MU_TOGG, CK_TOGG, AU_ON, AU_OFF, CG_NORM
-#define _________________ADJUST_L3_________________ RGB_RMOD,RGB_HUD,RGB_SAD, RGB_VAD, KC_RGB_T
-
-#define _________________ADJUST_R1_________________ KC_SEC1, KC_SEC2, KC_SEC3, KC_SEC4, KC_SEC5
-#define _________________ADJUST_R2_________________ CG_SWAP, QWERTY, COLEMAK, DVORAK, WORKMAN
-#define _________________ADJUST_R3_________________ MG_NKRO, KC_MUTE, KC_VOLD, KC_VOLU, KC_MNXT
-
-// clang-format on
diff --git a/users/cwebster2/config.h b/users/cwebster2/config.h
deleted file mode 100644
index caee7d184d..0000000000
--- a/users/cwebster2/config.h
+++ /dev/null
@@ -1,56 +0,0 @@
-/* Copyright 2020 Casey Webster <casey@e1337.dev>
- *
- * 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 TAPPING_TOGGLE 1
-#define TAPPING_TERM 200
-#define TAPPING_TERM_PER_KEY
-//#define QUICK_TAP_TERM 0
-#undef PERMISSIVE_HOLD
-#define NO_ACTION_ONESHOT
-
-#ifdef AUTO_SHIFT_ENABLE
- #define AUTO_SHIFT_TIMEOUT 200
- #define NO_AUTO_SHIFT_SPECIAL
- #define NO_AUTO_SHIFT_ALPHA
-#endif
-
-#undef MOUSEKEY_DELAY
-#define MOUSEKEY_DELAY 0
-#undef MOUSEKEY_INTERVAL
-#define MOUSEKEY_INTERVAL 16
-#undef MOUSEKEY_WHEEL_DELAY
-#define MOUSEKEY_WHEEL_DELAY 0
-#undef MOUSEKEY_MAX_SPEED
-#define MOUSEKEY_MAX_SPEED 6
-#undef MOUSEKEY_TIME_TO_MAX
-#define MOUSEKEY_TIME_TO_MAX 64
-
-#ifdef LOCKING_SUPPORT_ENABLE
-# undef LOCKING_SUPPORT_ENABLE
-#endif
-#ifdef LOCKING_RESYNC_ENABLE
-# undef LOCKING_RESYNC_ENABLE
-#endif
-
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-#ifndef NO_DEBUG
- #define NO_DEBUG
-#endif // !NO_DEBUG
-#if !defined(NO_PRINT) && !defined(CONSOLE_ENABLE)
- #define NO_PRINT
-#endif // !NO_PRINT
diff --git a/users/cwebster2/cwebster2.c b/users/cwebster2/cwebster2.c
deleted file mode 100644
index cfebc12c60..0000000000
--- a/users/cwebster2/cwebster2.c
+++ /dev/null
@@ -1,65 +0,0 @@
-/* Copyright 2020 Casey Webster <casey@e1337.dev>
- *
- * 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 "cwebster2.h"
-
-userspace_config_t userspace_config;
-
-__attribute__((weak)) void matrix_scan_keymap(void) {}
-
-void matrix_scan_user(void) {
- static bool has_ran_yet;
- if (!has_ran_yet) {
- has_ran_yet = true;
- startup_user();
- }
-
- matrix_scan_keymap();
-}
-
-void keyboard_post_init_rgb(void) {
-#if defined(RGBLIGHT_ENABLE) && defined(RGBLIGHT_STARTUP_ANIMATION)
- /*if (userspace_config.rgb_layer_change) { rgblight_enable_noeeprom(); }*/
- /*if (rgblight_config.enable) {*/
- /*layer_state_set_user(layer_state);*/
- /*uint16_t old_hue = rgblight_config.hue;*/
- uint16_t old_hue = 170;
- rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_LIGHT);
- for (uint16_t i = 255; i > 0; i--) {
- rgblight_sethsv_noeeprom( ( i + old_hue) % 255, 255, 255);
- matrix_scan();
- wait_ms(10);
- }
- /*}*/
-#endif
- /*layer_state_set_user(layer_state);*/
-}
-
-__attribute__((weak)) void eeconfig_init_keymap(void) {}
-
-void eeconfig_init_user(void) {
- userspace_config.raw = 0;
- userspace_config.rgb_layer_change = true;
- eeconfig_update_user(userspace_config.raw);
- eeconfig_init_keymap();
- keyboard_init();
-}
-
-bool hasAllBitsInMask(uint8_t value, uint8_t mask) {
- value &= 0xF;
- mask &= 0xF;
-
- return (value & mask) == mask;
-}
diff --git a/users/cwebster2/cwebster2.h b/users/cwebster2/cwebster2.h
deleted file mode 100644
index 3d315d6740..0000000000
--- a/users/cwebster2/cwebster2.h
+++ /dev/null
@@ -1,51 +0,0 @@
-/* Copyright 2020 Casey Webster <casey@e1337.dev>
- *
- * 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 "my_miryoku.h"
-#include "keycodes.h"
-#include "eeprom.h"
-
-#define LAYOUT_kyria_wrapper(...) LAYOUT(__VA_ARGS__)
-#define LAYOUT_zen_wrapper(...) LAYOUT(__VA_ARGS__)
-
-enum userspace_layers {
- _COLEMAK = 0,
- _QWERTY,
- _GAME,
- _FN,
- _SYMBOLS,
- _NUM,
- _NAV,
- _MOUSE,
- _MEDIA,
- __LAST
-};
-
-void keyboard_post_init_rgb(void);
-void matrix_scan_keymap(void);
-void eeconfig_init_keymap(void);
-bool hasAllBitsInMask(uint8_t value, uint8_t mask);
-
-
-typedef union {
- uint32_t raw;
- struct {
- bool rgb_layer_change :1;
- };
-} userspace_config_t;
-
-extern userspace_config_t userspace_config;
diff --git a/users/cwebster2/keycodes.c b/users/cwebster2/keycodes.c
deleted file mode 100644
index f7eb6ad8df..0000000000
--- a/users/cwebster2/keycodes.c
+++ /dev/null
@@ -1,54 +0,0 @@
-/* Copyright 2020 Casey Webster <casey@e1337.dev>
- *
- * 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 "keycodes.h"
-
-__attribute__((weak)) bool process_record_keymap(uint16_t keycode, keyrecord_t *record) { return true; }
-
-bool process_record_user(uint16_t keycode, keyrecord_t *record) {
- static uint16_t my_colon_timer;
-
- switch (keycode) {
- case KC_LCCL:
- if (record->event.pressed) {
- my_colon_timer = timer_read();
- register_code(KC_LCTL);
- } else {
- unregister_code(KC_LCTL);
- if (timer_elapsed(my_colon_timer) < TAPPING_TERM - 50) {
- SEND_STRING(":");
- }
- }
- return false;
- }
- return process_record_keymap(keycode, record);
-}
-
-uint16_t get_tapping_term(uint16_t keycode, keyrecord_t *record) {
- switch (keycode) {
- case LSFT_T(KC_T):
- case LSFT_T(KC_N):
- return TAPPING_TERM - 50;
- case LGUI_T(KC_A):
- case LALT_T(KC_R):
- case LCTL_T(KC_S):
- case LCTL_T(KC_E):
- case LALT_T(KC_I):
- case LGUI_T(KC_O):
- return TAPPING_TERM + 150;
- default:
- return TAPPING_TERM;
- }
-}
diff --git a/users/cwebster2/keycodes.h b/users/cwebster2/keycodes.h
deleted file mode 100644
index b6363d646e..0000000000
--- a/users/cwebster2/keycodes.h
+++ /dev/null
@@ -1,27 +0,0 @@
-/* Copyright 2020 Casey Webster <casey@e1337.dev>
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-#pragma once
-
-#include QMK_KEYBOARD_H
-
-enum userspace_custom_keycodes {
- KC_LCCL = SAFE_RANGE,
- NEW_SAFE_RANGE
-};
-
-#define KC_CTLBS CTL_T(KC_BSPC)
-#define KC_ALTCL LALT_T(KC_CAPS)
-#define KC_LOCK LGUI(LCTL(KC_L))
diff --git a/users/cwebster2/my_miryoku.h b/users/cwebster2/my_miryoku.h
deleted file mode 100644
index c4b4b59a1d..0000000000
--- a/users/cwebster2/my_miryoku.h
+++ /dev/null
@@ -1,77 +0,0 @@
-/* Copyright 2020 Casey Webster <casey@e1337.dev>
- *
- * 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 _______QWERTY_L1______ KC_T, KC_Q, KC_W, KC_E, KC_R
-#define _______QWERTY_L2______ KC_G, KC_A, KC_S, KC_D, KC_F
-#define _______QWERTY_L3______ KC_B, KC_Z, KC_X, KC_C, KC_V
-#define _______QWERTY_R1______ KC_Y, KC_U, KC_I, KC_O, KC_P
-#define _______QWERTY_R2______ KC_H, KC_J, KC_K, KC_L, KC_SCLN
-#define _______QWERTY_R3______ KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH
-
-#define _______COLEMAK_L1_____ KC_Q, KC_W, KC_F, KC_P, KC_B
-#define _______COLEMAK_L2_____ LGUI_T(KC_A), LALT_T(KC_R), LCTL_T(KC_S), LSFT_T(KC_T), KC_G
-#define _______COLEMAK_L3_____ KC_Z, KC_X, KC_C, KC_D, KC_V
-#define _______COLEMAK_R1_____ KC_J, KC_L, KC_U, KC_Y, KC_QUOT
-#define _______COLEMAK_R2_____ KC_M, LSFT_T(KC_N), LCTL_T(KC_E), LALT_T(KC_I), LGUI_T(KC_O)
-#define _______COLEMAK_R3_____ KC_K, KC_H, KC_COMM, KC_DOT, KC_SLSH
-
-#define _______THUMBS_L_______ LT(_MOUSE,KC_ESC), LT(_NAV,KC_SPC), LT(_MEDIA, KC_TAB)
-#define _______THUMBS_R_______ LT(_FN, KC_ENT), LT(_NUM,KC_BSPC), LT(_SYMBOLS,KC_DEL)
-
-#define _______NAKED_R___T____ KC_ENT, KC_BSPC, KC_DEL
-#define _______NAKED_L___T____ KC_ESC, KC_SPC, KC_TAB
-
-#define _______INACTIVE_R1____ KC_LOCK, KC_TRNS, KC_TRNS, KC_TRNS, QK_BOOT
-#define _______INACTIVE_R2____ KC_TRNS, KC_LSFT, KC_LCTL, KC_LALT, KC_LGUI
-#define _______INACTIVE_R3____ KC_TRNS, KC_TRNS, KC_TRNS, KC_RALT, KC_TRNS
-
-#define _______INACTIVE_L1____ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LOCK
-#define _______INACTIVE_L2____ KC_LGUI, KC_LALT, KC_LCTL, KC_LSFT, KC_TRNS
-#define _______INACTIVE_L3____ KC_TRNS, KC_RALT, KC_LEFT, KC_RGHT, KC_TRNS
-
-#define _______INACTIVE__T____ KC_TRNS, KC_TRNS, KC_TRNS
-
-
-#define _______SYM______L1____ KC_RCBR, KC_AMPR, KC_ASTR, KC_LPRN, KC_LCBR
-#define _______SYM______L2____ KC_COLN, KC_DLR, KC_PERC, KC_CIRC, KC_PLUS
-#define _______SYM______L3____ KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_PIPE
-#define _______SYM_______T____ KC_LPRN, KC_RPRN, KC_UNDS
-
-#define _______NUM______L1____ KC_RBRC, KC_7, KC_8, KC_9, KC_LBRC
-#define _______NUM______L2____ KC_SCLN, KC_4, KC_5, KC_6, KC_EQL
-#define _______NUM______L3____ KC_GRV, KC_1, KC_2, KC_3, KC_BSLS
-#define _______NUM_______T____ KC_DOT, KC_0, KC_MINS
-
-#define _______FN_______L1____ KC_F12, KC_F7, KC_F8, KC_F9, KC_SYRQ
-#define _______FN_______L2____ KC_F11, KC_F4, KC_F5, KC_F6, KC_TRNS
-#define _______FN_______L3____ KC_F10, KC_F1, KC_F2, KC_F3, KC_PAUSE
-#define _______FN________T____ KC_MENU, KC_SPC, KC_TAB
-
-#define _______NAV______R1____ KC_UNDO, KC_CUT, KC_COPY, KC_PSTE, KC_AGIN
-#define _______NAV______R2____ KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_CAPS
-#define _______NAV______R3____ KC_HOME, KC_PGDN, KC_PGUP, KC_END, KC_INS
-#define _______NAV_______T____ KC_ENT, KC_BSPC, KC_DEL
-
-#define _______MEDIA____R1____ RGB_TOG, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI
-#define _______MEDIA____R2____ KC_MPRV, KC_VOLD, KC_VOLU, KC_MNXT, KC_TRNS
-#define _______MEDIA____R3____ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
-#define _______MEDIA_____T____ KC_MSTP, KC_MPLY, KC_MUTE
-
-#define _______MOUSE____R1____ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
-#define _______MOUSE____R2____ KC_MS_L, KC_MS_D, KC_MS_U, KC_MS_R, KC_TRNS
-#define _______MOUSE____R3____ KC_WH_L, KC_WH_D, KC_WH_U, KC_WH_R, KC_TRNS
-#define _______MOUSE_____T____ KC_BTN1, KC_BTN3, KC_BTN2
diff --git a/users/cwebster2/rules.mk b/users/cwebster2/rules.mk
deleted file mode 100644
index 3aa4d68f35..0000000000
--- a/users/cwebster2/rules.mk
+++ /dev/null
@@ -1,13 +0,0 @@
-AUTO_SHIFT_ENABLE = no # Enable autoshift
-MOUSEKEY_ENABLE = yes
-EXTRAKEY_ENABLE = yes
-CONSOLE_ENABLE = no
-BOOTMAGIC_ENABLE = no # Enable Bootmagic Lite
-GRAVE_ESC_ENABLE = no
-CONSOLE_ENABLE = no
-SPACE_CADET_ENABLE = no
-GRAVE_ESC_ENABLE = no
-LTO_ENABLE = yes
-
-SRC += cwebster2.c
-SRC += keycodes.c
diff --git a/users/d4mation/config.h b/users/d4mation/config.h
deleted file mode 100644
index 3140a036f7..0000000000
--- a/users/d4mation/config.h
+++ /dev/null
@@ -1 +0,0 @@
-#define FORCE_NKRO \ No newline at end of file
diff --git a/users/d4mation/d4mation.c b/users/d4mation/d4mation.c
deleted file mode 100644
index 5d1092cd72..0000000000
--- a/users/d4mation/d4mation.c
+++ /dev/null
@@ -1,37 +0,0 @@
-#include "d4mation.h"
-
-__attribute__ ((weak))
-bool process_record_keymap( uint16_t keycode, keyrecord_t *record ) {
- /* If you want macros specific to your keymap, you need to define this function in your keymap */
- return true;
-}
-
-__attribute__ ((weak))
-void matrix_init_keymap(void) {
- /* If you want a matrix init specific to your keymap, you need to define this function in your keymap */
-}
-
-__attribute__ ((weak))
-void matrix_scan_keymap(void) {
- /* If you want a matrix scan specific to your keymap, you need to define this function in your keymap */
-}
-
-__attribute__((weak))
-void eeconfig_init_keymap( void ) {}
-
-/* process_record_user() is called in macros.c */
-
-void matrix_init_user( void ) {
- matrix_init_keymap();
-}
-
-void matrix_scan_user( void ) {
- matrix_scan_keymap();
-}
-
-void eeconfig_init_user( void ) {
-
- eeconfig_init_keymap();
- keyboard_init();
-
-} \ No newline at end of file
diff --git a/users/d4mation/d4mation.h b/users/d4mation/d4mation.h
deleted file mode 100644
index 94c63526db..0000000000
--- a/users/d4mation/d4mation.h
+++ /dev/null
@@ -1,17 +0,0 @@
-#pragma once
-
-#include "quantum.h"
-
-#ifdef UNICODE_ENABLE
-#include "macros.h"
-#endif
-
-#ifdef TAP_DANCE_ENABLE
-#include "tap-dance.h"
-#endif
-
-bool process_record_keymap( uint16_t keycode, keyrecord_t *record );
-
-void matrix_init_keymap( void );
-
-void matrix_scan_keymap( void ); \ No newline at end of file
diff --git a/users/d4mation/macros.c b/users/d4mation/macros.c
deleted file mode 100644
index a8ca119b12..0000000000
--- a/users/d4mation/macros.c
+++ /dev/null
@@ -1,160 +0,0 @@
-#include "d4mation.h"
-#include "tap-hold.h"
-#include "zalgo.h"
-#include "macros.h"
-
-bool zalgo_enabled = false;
-
-bool process_record_user( uint16_t keycode, keyrecord_t *record ) {
-
- switch ( keycode ) {
-
- case _GRAVE_ESC:
-
- /* Send ` on Tap, Esc on Hold */
- tap_or_hold( record, KC_GRAVE, KC_ESC );
-
- return false;
- break;
-
- case PHPOPEN:
-
- if ( record->event.pressed ) {
-
- tap_code16( S( KC_COMMA ) );
- tap_code16( S( KC_SLASH ) );
-
- tap_code( KC_P );
- tap_code( KC_H );
- tap_code( KC_P );
-
- }
-
- return false;
- break;
-
- case PHPCLSE:
-
- if ( record->event.pressed ) {
- tap_code16( S( KC_SLASH ) );
- tap_code16( S( KC_DOT ) );
- }
-
- return false;
- break;
-
- #ifdef UNICODE_ENABLE
-
- case AMENO:
-
- if ( record->event.pressed ) {
-
- send_unicode_string( "༼ つ ◕_◕ ༽つ" );
-
- }
-
- return false;
- break;
-
- case MAGIC:
-
- if ( record->event.pressed ) {
-
- send_unicode_string( "(∩ ͡° ͜ʖ ͡°)⊃━☆゚. *" );
-
- }
-
- return false;
- break;
-
- case LENNY:
-
- if ( record->event.pressed ) {
-
- send_unicode_string( "( ͡° ͜ʖ ͡°)" );
-
- }
-
- return false;
- break;
-
- case DISFACE:
-
- if ( record->event.pressed ) {
- send_unicode_string( "ಠ_ಠ" );
- }
-
- return false;
- break;
-
- case TFLIP:
-
- if ( record->event.pressed ) {
-
- send_unicode_string( "(╯°□°)╯︵┻━┻" );
-
- }
-
- return false;
- break;
-
- case TPUT:
-
- if ( record->event.pressed ) {
-
- send_unicode_string( "┬──┬ ノ( ゜-゜ノ)" );
-
- }
-
- return false;
- break;
-
- case SHRUG:
-
- if ( record->event.pressed ) {
-
- send_unicode_string( "¯\\_(ツ)_/¯" );
-
- }
-
- return false;
- break;
-
- case ZALGO: /* Toggles Zalgo Text mode */
-
- if ( record->event.pressed ) {
- zalgo_enabled = ! zalgo_enabled;
- }
-
- return false;
- break;
-
- #endif
-
- default:
-
- #ifdef UNICODE_ENABLE
-
- if ( zalgo_enabled ) {
-
- if ( keycode < KC_A || ( keycode > KC_0 && keycode < KC_MINUS ) || keycode > KC_SLASH ) {
- process_record_keymap( keycode, record );
- return true;
- }
-
- if ( record->event.pressed ) {
- zalgo_text( keycode );
- }
-
- return false;
- }
-
- #endif
-
- break;
- }
-
- process_record_keymap( keycode, record );
- return true;
-
-}; \ No newline at end of file
diff --git a/users/d4mation/macros.h b/users/d4mation/macros.h
deleted file mode 100644
index e69d30dec2..0000000000
--- a/users/d4mation/macros.h
+++ /dev/null
@@ -1,23 +0,0 @@
-#pragma once
-
-#include "quantum.h"
-#include "tap-hold.h"
-#include "zalgo.h"
-
-#define SCRGB LCTL( LSFT( LGUI( KC_4 ) ) ) /* Mac Screen Area Grab shortcut (Puts into Clipboard) */
-#define SLEEP LALT( LGUI( KC_SYSTEM_POWER ) ) /* Instant sleep on Mac, rather than having to hold down the button */
-
-enum custom_keycodes {
- _GRAVE_ESC = SAFE_RANGE, /* Prefixed with underscore to prevent conflicts */
- PHPOPEN, /* <?php */
- PHPCLSE, /* ?> */
- AMENO,
- MAGIC,
- LENNY,
- DISFACE,
- TFLIP,
- TPUT,
- SHRUG,
- ZALGO,
- NEW_SAFE_RANGE
-}; \ No newline at end of file
diff --git a/users/d4mation/rules.mk b/users/d4mation/rules.mk
deleted file mode 100644
index f677721b42..0000000000
--- a/users/d4mation/rules.mk
+++ /dev/null
@@ -1,15 +0,0 @@
-SRC += d4mation.c \
- tap-hold.c \
- macros.c
-
-BOOTMAGIC_ENABLE = no # Enable Bootmagic Lite
-LTO_ENABLE = yes
-MOUSEKEY_ENABLE = no
-
-ifeq ($(strip $(UNICODE_ENABLE)), yes)
- SRC += zalgo.c
-endif
-
-ifeq ($(strip $(TAP_DANCE_ENABLE)), yes)
- SRC += tap-dance.c
-endif \ No newline at end of file
diff --git a/users/d4mation/tap-dance.c b/users/d4mation/tap-dance.c
deleted file mode 100644
index 928a932611..0000000000
--- a/users/d4mation/tap-dance.c
+++ /dev/null
@@ -1,6 +0,0 @@
-#include "tap-dance.h"
-
-tap_dance_action_t tap_dance_actions[] = {
- /* Tap once/hold for Shift, tap twice for Caps Lock */
- [SHIFT_CAPS] = ACTION_TAP_DANCE_DOUBLE( KC_LSFT, KC_CAPS )
-}; \ No newline at end of file
diff --git a/users/d4mation/tap-dance.h b/users/d4mation/tap-dance.h
deleted file mode 100644
index 0087c4a6e7..0000000000
--- a/users/d4mation/tap-dance.h
+++ /dev/null
@@ -1,7 +0,0 @@
-#pragma once
-
-#include "quantum.h"
-
-enum tap_dance {
- SHIFT_CAPS = 0
-}; \ No newline at end of file
diff --git a/users/d4mation/tap-hold.c b/users/d4mation/tap-hold.c
deleted file mode 100644
index 0c5119f995..0000000000
--- a/users/d4mation/tap-hold.c
+++ /dev/null
@@ -1,28 +0,0 @@
-#include "tap-hold.h"
-
-#ifndef TAP_HOLD_TIME
-#define TAP_HOLD_TIME 200
-#endif
-
-uint16_t tap_hold_timer;
-
-void tap_or_hold( keyrecord_t *record, uint16_t tap, uint16_t hold ) {
-
- if ( record->event.pressed ) {
- tap_hold_timer = timer_read();
- } else {
-
- if ( tap_hold_timer &&
- timer_elapsed( tap_hold_timer ) > TAP_HOLD_TIME ) {
- /* Held down then released */
- tap_code( hold );
- } else {
- /* Quickly Tapped */
- tap_code( tap );
- }
-
- tap_hold_timer = 0;
-
- }
-
-} \ No newline at end of file
diff --git a/users/d4mation/tap-hold.h b/users/d4mation/tap-hold.h
deleted file mode 100644
index 52dc0830f8..0000000000
--- a/users/d4mation/tap-hold.h
+++ /dev/null
@@ -1,5 +0,0 @@
-#pragma once
-
-#include "quantum.h"
-
-void tap_or_hold( keyrecord_t *record, uint16_t tap, uint16_t hold ); \ No newline at end of file
diff --git a/users/d4mation/zalgo.c b/users/d4mation/zalgo.c
deleted file mode 100644
index 3a1688e053..0000000000
--- a/users/d4mation/zalgo.c
+++ /dev/null
@@ -1,21 +0,0 @@
-#include "zalgo.h"
-
-void zalgo_text( uint16_t keycode ) {
-
- tap_code( keycode );
-
- int number = ( rand() % ( 8 + 1 - 2 ) ) + 2;
- unsigned int index;
-
- unicode_input_start();
-
- for ( index = 0; index < number; index++ ) {
-
- uint16_t hex = ( rand() % ( 0x036F + 1 - 0x0300 ) ) + 0x0300;
- register_hex( hex );
-
- }
-
- unicode_input_finish();
-
-} \ No newline at end of file
diff --git a/users/d4mation/zalgo.h b/users/d4mation/zalgo.h
deleted file mode 100644
index f59fc035b9..0000000000
--- a/users/d4mation/zalgo.h
+++ /dev/null
@@ -1,5 +0,0 @@
-#pragma once
-
-#include "quantum.h"
-
-void zalgo_text( uint16_t keycode ); \ No newline at end of file
diff --git a/users/danielo515/alt_tab.c b/users/danielo515/alt_tab.c
deleted file mode 100644
index 1602ee6fb2..0000000000
--- a/users/danielo515/alt_tab.c
+++ /dev/null
@@ -1,38 +0,0 @@
-#include "danielo515.h"
-#include "alt_tab.h"
-
-bool altPressed = false;
-__attribute__((weak)) void alt_tab_activated(void){};
-__attribute__((weak)) void alt_tab_deactivated(void){};
-extern bool onMac;
-
-// =============== ALT_TAB single key handling
-bool process_alt_tab(uint16_t keycode, keyrecord_t *record) {
- switch (keycode) {
- case ALT_TAB:
- if (!record->event.pressed) {
- return false;
- }
- if (altPressed) {
- tap_code(KC_TAB);
- } else {
- altPressed = true;
- onMac ? register_code(KC_LGUI) : register_code(KC_LALT);
- tap_code(KC_TAB);
- alt_tab_activated();
- }
- // avoid alt releasing if the key is of movement
- case KC_RIGHT ... KC_UP:
- if (altPressed) {
- return true; // yes QMK, do your stuff
- }
- }
- // Reset sticky alt tab when any other key is pressed
- if (altPressed) {
- onMac ? unregister_code(KC_LGUI) : unregister_code(KC_LALT);
- altPressed = false;
- alt_tab_deactivated();
- return false;
- }
- return true;
-};
diff --git a/users/danielo515/alt_tab.h b/users/danielo515/alt_tab.h
deleted file mode 100644
index f84350c298..0000000000
--- a/users/danielo515/alt_tab.h
+++ /dev/null
@@ -1,4 +0,0 @@
-#pragma once
-#include "quantum.h"
-
-bool process_alt_tab(uint16_t keycode, keyrecord_t *record);
diff --git a/users/danielo515/combo.c b/users/danielo515/combo.c
deleted file mode 100644
index dae53f6e85..0000000000
--- a/users/danielo515/combo.c
+++ /dev/null
@@ -1,44 +0,0 @@
-#include "combo.h"
-
-enum combos {
- JK_ESC,
- YU_COM,
- UI_COM,
- IO_COM,
- QW_COM,
- DOT_SLS,
- COM_DOT,
- M_COMM,
- N_M,
- OP_COM,
- M_CM_DOT,
-};
-
-const uint16_t PROGMEM ui_combo[] = {KC_U, KC_I, COMBO_END};
-const uint16_t PROGMEM jk_combo[] = {KC_J, KC_K, COMBO_END};
-const uint16_t PROGMEM yu_combo[] = {KC_Y, KC_U, COMBO_END};
-const uint16_t PROGMEM io_combo[] = {KC_I, KC_O, COMBO_END};
-const uint16_t PROGMEM qw_combo[] = {KC_Q, KC_W, COMBO_END};
-const uint16_t PROGMEM dot_sls[] = {KC_DOT, KC_SLSH, COMBO_END};
-const uint16_t PROGMEM com_dot[] = {KC_COMMA, KC_DOT, COMBO_END};
-const uint16_t PROGMEM m_comm[] = {KC_M, KC_COMMA, COMBO_END};
-const uint16_t PROGMEM n_m[] = {KC_N, KC_M, COMBO_END};
-const uint16_t PROGMEM o_p_combo[] = {KC_O, KC_P, COMBO_END};
-const uint16_t PROGMEM m_cm_dot_combo[] = {KC_M, KC_COMMA, KC_DOT, COMBO_END};
-
-combo_t key_combos[] = {
- [JK_ESC] = COMBO(jk_combo, KC_ESC),
- [YU_COM] = COMBO(yu_combo, KC_AMPR),
- [UI_COM] = COMBO(ui_combo, KC_CIRC),
- [IO_COM] = COMBO(io_combo, KC_TILD),
- [DOT_SLS] = COMBO(dot_sls, KC_EXLM),
- [COM_DOT] = COMBO(com_dot, KC_QUES),
- [N_M] = COMBO(n_m, KC_DLR),
- [OP_COM] = COMBO(o_p_combo, KC_HASH),
- // m + , = {
- [M_COMM] = COMBO(m_comm, KC_LCBR),
- // m + , + . = }
- // [M_CM_DOT] = COMBO(m_cm_dot_combo, KC_RCBR),
- // Right hand side combos
- [QW_COM] = COMBO(qw_combo, KC_AT),
-};
diff --git a/users/danielo515/combo.h b/users/danielo515/combo.h
deleted file mode 100644
index 010d4b1383..0000000000
--- a/users/danielo515/combo.h
+++ /dev/null
@@ -1,2 +0,0 @@
-#pragma once
-#include "quantum.h"
diff --git a/users/danielo515/config.h b/users/danielo515/config.h
deleted file mode 100644
index c5f9b08389..0000000000
--- a/users/danielo515/config.h
+++ /dev/null
@@ -1,9 +0,0 @@
-#pragma once
-
-#if defined(COMBO_ENABLE)
-# define COMBO_TERM 25
-#endif // !COMBO_ENABLE
-// Timeout settings for leader key
-#undef LEADER_TIMEOUT
-#define LEADER_TIMEOUT 350
-#define LEADER_PER_KEY_TIMING
diff --git a/users/danielo515/danielo515.c b/users/danielo515/danielo515.c
deleted file mode 100644
index aa33f55d66..0000000000
--- a/users/danielo515/danielo515.c
+++ /dev/null
@@ -1,124 +0,0 @@
-#include "danielo515.h"
-
-bool onMac = true;
-
-//**************** LEADER *********************//
-#ifdef LEADER_ENABLE
-void leader_start_user(vodi) {
-# ifdef RGBLIGHT_ENABLE
- rgblight_setrgb_range(5, 100, 199, 10, 15);
-# endif
-}
-
-void leader_end_user() {
- if (leader_sequence_one_key(KC_T)) {
- SEND_STRING("``" SS_TAP(X_LEFT));
- }
- // Triple ticks
- if (leader_sequence_two_keys(KC_T, KC_T)) {
- SEND_STRING("```" SS_TAP(X_ENTER) SS_TAP(X_ENTER) "```" SS_TAP(X_UP));
- }
- // ==== International spanish accent vowels ====
- if (leader_sequence_one_key(KC_A)) {
- SEND_STRING(SS_LALT("e") "a");
- }
- if (leader_sequence_one_key(KC_E)) {
- SEND_STRING(SS_LALT("e") "e");
- }
- if (leader_sequence_one_key(KC_I)) {
- SEND_STRING(SS_LALT("e") "i");
- }
- if (leader_sequence_one_key(KC_O)) {
- SEND_STRING(SS_LALT("e") "o");
- }
- if (leader_sequence_one_key(KC_U)) {
- SEND_STRING(SS_LALT("e") "u");
- }
- if (leader_sequence_one_key(KC_N)) {
- SEND_STRING(SS_LALT("n") "n");
- }
- // ==== MACROS ===
- if (leader_sequence_one_key(KC_G)) {
- SEND_STRING(" | grep ");
- }
- if (leader_sequence_one_key(KC_K)) {
- onMac ? SEND_STRING(SS_LCTL(" ")) : SEND_STRING(SS_LCTL("f"));
- }
- // vim delete all
- if (leader_sequence_two_keys(KC_D, KC_G)) {
- if (onMac) {
- SEND_STRING(SS_LGUI("a") SS_TAP(X_D));
- } else {
- SEND_STRING(SS_LCTL("a") SS_TAP(X_D));
- }
- }
- // tripe delete!
- if (leader_sequence_one_key(KC_BACKSPACE)) {
- SEND_STRING(SS_TAP(X_BACKSPACE) SS_TAP(X_BACKSPACE) SS_TAP(X_BACKSPACE));
- }
- if (leader_sequence_two_keys(KC_P, KC_G)) {
- SEND_STRING("ps -ef | grep ");
- }
- if (leader_sequence_two_keys(KC_J, KC_A)) {
- SEND_STRING("() => {}" SS_TAP(X_LEFT) SS_TAP(X_LEFT) SS_TAP(X_LEFT) SS_TAP(X_LEFT) SS_TAP(X_LEFT) SS_TAP(X_LEFT) SS_TAP(X_LEFT));
- }
- // this is a pain to type
- if (leader_sequence_two_keys(KC_S, KC_S)) {
- SEND_STRING("~/.ssh/ ");
- }
- if (leader_sequence_two_keys(KC_F, KC_T)) {
- SEND_STRING("feat():" SS_TAP(X_LEFT) SS_TAP(X_LEFT));
- }
- // ### LAYER CHANGE
- if (leader_sequence_one_key(KC_1)) {
- layer_on(1);
- }
- // control enter, because yes
- if (leader_sequence_one_key(KC_H)) {
- SEND_STRING(SS_DOWN(X_LCTL) SS_TAP(X_ENTER) SS_UP(X_LCTL));
- }
- // paste all
- if (leader_sequence_one_key(KC_P)) {
- if (onMac) {
- SEND_STRING(SS_LGUI("a") SS_LGUI("v"));
- } else {
- SEND_STRING(SS_LCTL("a") SS_LCTL("v"));
- }
- }
- if (leader_sequence_three_keys(KC_M, KC_A, KC_C)) {
- onMac = true;
-# ifdef RGBLIGHT_ENABLE
- rgblight_setrgb(255, 255, 255);
-# endif
- }
- if (leader_sequence_three_keys(KC_W, KC_I, KC_N)) {
- onMac = false;
-# ifdef RGBLIGHT_ENABLE
- rgblight_setrgb(255, 255, 0);
-# endif
- }
- /* Copy all */
- if (leader_sequence_one_key(KC_Y)) {
- if (onMac) {
- SEND_STRING(SS_LGUI("a") SS_LGUI("c"));
- } else {
- SEND_STRING(SS_LCTL("a") SS_LCTL("c"));
- }
- }
- // emoji bar
- if (leader_sequence_two_keys(KC_E, KC_E)) {
- SEND_STRING(SS_DOWN(X_LGUI) SS_LCTL(" ") SS_UP(X_LGUI));
- }
-
- if (leader_sequence_two_keys(KC_F, KC_F)) {
- SEND_STRING("ps -ef | grep ");
- }
- if (leader_sequence_two_keys(KC_H, KC_T)) {
- SEND_STRING("https://");
- }
-
-# ifdef RGBLIGHT_ENABLE
- rgblight_setrgb_range(200, 200, 255, 10, 15);
-# endif
-}
-#endif // LEADER
diff --git a/users/danielo515/danielo515.h b/users/danielo515/danielo515.h
deleted file mode 100644
index 715e8132fe..0000000000
--- a/users/danielo515/danielo515.h
+++ /dev/null
@@ -1,7 +0,0 @@
-#pragma once
-#include "quantum.h"
-#include "process_records.h"
-
-#ifdef TAP_DANCE_ENABLE
- #include "tap_dance.h"
-#endif
diff --git a/users/danielo515/process_records.c b/users/danielo515/process_records.c
deleted file mode 100644
index e75526af44..0000000000
--- a/users/danielo515/process_records.c
+++ /dev/null
@@ -1,197 +0,0 @@
-#include "process_records.h"
-#include "alt_tab.h"
-extern bool onMac;
-// ======== INCREMENTAL MACROS STUFF =============
-#define MAX_INCREMENTAL_MACRO 20
-#define TAP_ROTATION_TIMEOUT 400
-uint16_t latest_kc = 0;
-uint16_t latest_rotation = 0;
-int key_count = 0;
-
-const char incremental_macros[][MAX_INCREMENTAL_MACRO] = {"String1" SS_TAP(X_HOME) "X-", "String2" SS_TAP(X_HOME)};
-
-bool process_incremental_macro(uint16_t kc) {
- if (kc < INC_MACROS_START || kc > INC_MACROS_END) {
- return false;
- }
- int macro_idx = (int)(kc - INC_MACROS_START) - 1;
- char tempstring[3] = {0};
- tempstring[0] = incremental_macros[macro_idx][key_count];
- // Special cases of SS_TAP SS_UP and SS_DOWN, they require two characters so get both once and skip on next iteration
- if (tempstring[0] == '\1' || tempstring[0] == '\2' || tempstring[0] == '\3') {
- tempstring[1] = incremental_macros[macro_idx][++key_count];
- }
- if (tempstring[0] == '\0') {
- key_count = 0;
- }
- send_string(tempstring);
-
- return true;
-};
-
-void refresh_incremental_macros(uint16_t kc) {
- if (kc == latest_kc) {
- if ((timer_elapsed(latest_rotation) > TAP_ROTATION_TIMEOUT) || (key_count >= MAX_INCREMENTAL_MACRO))
- key_count = 0;
- else
- key_count++;
- } else {
- key_count = 0;
- latest_kc = kc;
- }
-
- latest_rotation = timer_read();
-}
-// Send control or GUI depending if we are on windows or mac
-bool CMD(uint16_t kc) {
- if (onMac) {
- tap_code16(LGUI(kc));
- } else {
- tap_code16(LCTL(kc));
- }
- return false;
-}
-
-bool process_record_user(uint16_t keycode, keyrecord_t *record) {
- bool pressed = record->event.pressed;
- if (pressed) {
- refresh_incremental_macros(keycode);
- if (process_incremental_macro(keycode)) {
- return false;
- }
- switch (keycode) {
- case MAC_TGL:
- onMac = !onMac;
- onMac ? SEND_STRING("On mac") : SEND_STRING("Not on MAC");
- return false;
- }
- }
-
- switch (keycode) {
- case QWERTY:
- if (record->event.pressed) {
- layer_on(_QWERTY);
- }
- return false;
- case LOWER:
- if (record->event.pressed) {
- layer_on(_LOWER);
- } else {
- layer_off(_LOWER);
- }
- return false;
- case RAISE:
- if (record->event.pressed) {
- layer_on(_RAISE);
- } else {
- layer_off(_RAISE);
- }
- return false;
- case ADJUST:
- if (record->event.pressed) {
- layer_on(_ADJUST);
- } else {
- layer_off(_ADJUST);
- }
- return false;
- // == Macros START ===
- case IARROW:
- if (record->event.pressed) SEND_STRING("<-");
- return false;
- case ARROW:
- if (record->event.pressed) SEND_STRING("->");
- return false;
- case F_ARROW:
- if (record->event.pressed) SEND_STRING("=>");
- return false;
- case GREP:
- if (record->event.pressed) SEND_STRING(" | grep ");
- return false;
- case CLN_EQ:
- if (record->event.pressed) SEND_STRING(":=");
- return false;
- // == Macros END ===
- // == Multi Os START ===
- case KC_HOME: // make the home behave the same on OSX
- if (record->event.pressed && onMac) {
- SEND_STRING(SS_LCTL("a"));
- return false;
- }
- case KC_END: // make the end behave the same on OSX
- if (record->event.pressed && onMac) {
- tap_code16(C(KC_E));
- return false;
- }
- case AC_A: // Accent á
- if (record->event.pressed) SEND_STRING(SS_LALT("e") "a");
- return false;
- case AC_E: // Accent é
- if (record->event.pressed) SEND_STRING(SS_LALT("e") "e");
- return false;
- case AC_I: // Accent í
- if (record->event.pressed) SEND_STRING(SS_LALT("e") "i");
- return false;
- case AC_O: // Accent ó
- if (record->event.pressed) SEND_STRING(SS_LALT("e") "o");
- return false;
- case CUT:
- if (record->event.pressed) return CMD(KC_X);
- case COPY:
- if (record->event.pressed) {
- onMac ? SEND_STRING(SS_LGUI("c")) : SEND_STRING(SS_LCTL("c"));
- }
- return false;
- case PASTE:
- if (record->event.pressed) {
- onMac ? SEND_STRING(SS_LGUI("v")) : SEND_STRING(SS_LCTL("v"));
- }
- return false;
- case SAVE:
- if (record->event.pressed) {
- onMac ? SEND_STRING(SS_LGUI("s")) : SEND_STRING(SS_LCTL("s"));
- }
- return false;
- case UNDO:
- if (record->event.pressed) {
- onMac ? SEND_STRING(SS_LGUI("z")) : SEND_STRING(SS_LCTL("z"));
- }
- return false;
- case REDO:
- if (record->event.pressed) {
- onMac ? SEND_STRING(SS_LGUI(SS_LSFT("z"))) : SEND_STRING(SS_LCTL("y"));
- }
- return false;
- case FIND:
- if (record->event.pressed) {
- onMac ? SEND_STRING(SS_LGUI("f")) : SEND_STRING(SS_LCTL("f"));
- }
- return false;
- case WIN_TO_RIGHT:
- if (record->event.pressed) {
- onMac ? tap_code16(SGUI(A(KC_RIGHT))) : tap_code16(G(KC_RIGHT));
- }
- return false;
- case WIN_TO_LEFT:
- if (record->event.pressed) {
- onMac ? tap_code16(SGUI(A(KC_LEFT))) : tap_code16(G(KC_LEFT));
- }
- return false;
- case CHG_LAYOUT:
- if (record->event.pressed) {
- onMac ? SEND_STRING(SS_LCTL(" ")) : SEND_STRING(SS_LCTL("f"));
- }
- return false;
- // == Multi Os END ===
-#ifdef RGBLIGHT_ENABLE
- case RGB_SLD:
- if (record->event.pressed) {
- rgblight_mode(1);
- }
- return false;
- break;
- // First time alt + tab, and alt stays sticky. Next press we just send tab. Any other key releases the alt
-#endif
- }
- // =============== ALT_TAB single key handling
- return process_alt_tab(keycode, record);
-};
diff --git a/users/danielo515/process_records.h b/users/danielo515/process_records.h
deleted file mode 100644
index caa85e6292..0000000000
--- a/users/danielo515/process_records.h
+++ /dev/null
@@ -1,108 +0,0 @@
-#pragma once
-#include "quantum.h"
-
-enum custom_keycodes {
- RGB_SLD = SAFE_RANGE,
- ALT_TAB,
- QWERTY,
- SYM,
- NAV,
- ADJUST,
- // Macros
- ARROW,
- IARROW,
- CLN_EQ,
- F_ARROW,
- GREP,
- // Accented characters
- AC_A,
- AC_E,
- AC_I,
- AC_O,
- // Custom multi-os key-codes
- CUT,
- COPY,
- PASTE,
- SAVE,
- UNDO,
- REDO,
- CHG_LAYOUT,
- FIND,
- WIN_TO_LEFT,
- WIN_TO_RIGHT,
- // OTHER OLD STUFF
- LOWER,
- RAISE,
- MAC_TGL,
- INC_MACROS_START,
- INC_MACROS_END,
-};
-
-//**************** KEYCODES *********************//
-enum layers {
- _QWERTY,
- _SYMB,
- _NAV,
- _ADJUST,
- _F,
- _D,
- _S,
- _A,
- _J,
- _K,
- // iris specific - TBD
- _LOWER,
- _RAISE,
- _MACROS,
- _SAFE_LAYER
-};
-
-//===== Function letters
-#define FN_F LT(_F, KC_F)
-#define FN_D LT(_D, KC_D)
-#define FN_S LT(_S, KC_S)
-#define FN_A LT(_A, KC_A)
-#define FN_K LT(_K, KC_K)
-#define FN_J LT(_J, KC_J)
-#define KC_FN_D FN_D
-#define KC_FN_S FN_S
-#define KC_FN_F FN_F
-
-#define KC_MACROS OSL(_MACROS)
-
-#define KC_E_COLN LSFT(KC_DOT)
-#define KC_E_EQL ES_EQL
-#define KC_GUI OSM(MOD_RGUI)
-#define KC_R_NUB S(KC_NUBS)
-#define KC_E_LT KC_NUBS
-#define KC_E_GT S(KC_NUBS)
-#define KC_E_TILD ES_TILD
-#define KC_E_MINS ES_MINS
-#define KC_E_OVRR ES_MORD
-#define KC_E_APOS ES_QUOT
-#define KC_E_IEXL ES_IEXL
-//========== Short hand for complex key combinations
-#define WIN_LEFT_HALF LALT(LGUI(KC_LEFT))
-#define WIN_RIGHT_HALF LALT(LGUI(KC_RIGHT))
-#define ALL_WIN LCTL(KC_DOWN)
-#define EXPOSE LGUI(KC_DOWN)
-// ========== Modifiers!!
-#define SHIFT OSM(MOD_LSFT)
-//=============== tap for key hold for mod
-#define HYPR_H HYPR_T(KC_H)
-#define CTL_K RCTL_T(KC_K)
-#define ALT_J ALT_T(KC_J)
-#define SFT_MINS LSFT_T(KC_MINS) // tap - hold shift
-#define CMD_MINS GUI_T(KC_MINS) // tap - hold cmd
-#define CMD_QUOT GUI_T(KC_QUOTE) // tap ' hold cmd
-#define SFT_QUOT LSFT_T(KC_QUOTE) // tap ' hold shift
-//=============== Movement modified
-#define CTL_LEFT LCTL(KC_LEFT)
-#define CTL_RIGHT LCTL(KC_RIGHT)
-
-#define SFT_LEFT LSFT(KC_LEFT)
-#define SFT_RIGHT LSFT(KC_RIGHT)
-#define SHIFT_UP LSFT(KC_UP)
-#define SHIFT_DWN LSFT(KC_DOWN)
-#define SFT_LEFT_END LGUI(LSFT(KC_LEFT))
-#define SFT_RIGHT_END LGUI(LSFT(KC_RIGHT))
diff --git a/users/danielo515/readme.md b/users/danielo515/readme.md
deleted file mode 100644
index 1343df9786..0000000000
--- a/users/danielo515/readme.md
+++ /dev/null
@@ -1,14 +0,0 @@
-Copyright 2017 Daniel Rodriguez @ danielo515
-
-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/>.
diff --git a/users/danielo515/rules.mk b/users/danielo515/rules.mk
deleted file mode 100644
index c77e2f0155..0000000000
--- a/users/danielo515/rules.mk
+++ /dev/null
@@ -1,11 +0,0 @@
-SRC += danielo515.c \
- alt_tab.c \
- process_records.c
-
-ifeq ($(strip $(COMBO_ENABLE)), yes)
- SRC += combo.c
-endif
-
-ifeq ($(strip $(TAP_DANCE_ENABLE)), yes)
- SRC += tap_dance.c
-endif
diff --git a/users/danielo515/tap_dance.c b/users/danielo515/tap_dance.c
deleted file mode 100644
index b69ee715d4..0000000000
--- a/users/danielo515/tap_dance.c
+++ /dev/null
@@ -1,139 +0,0 @@
-#include "tap_dance.h"
-//**************** Definitions needed for quad function to work *********************//
-#ifdef QUAD_DANCE
-int cur_dance(tap_dance_state_t *state)
-{
- if (state->count == 1)
- {
- //If count = 1, and it has been interrupted - it doesn't matter if it is pressed or not: Send SINGLE_TAP
- if (state->interrupted || state->pressed == 0)
- return SINGLE_TAP;
- else
- return SINGLE_HOLD;
- }
- //If count = 2, and it has been interrupted - assume that user is trying to type the letter associated
- //with single tap. In example below, that means to send `xx` instead of `Escape`.
- else if (state->count == 2)
- {
- if (state->interrupted)
- return DOUBLE_SINGLE_TAP;
- else if (state->pressed)
- return DOUBLE_HOLD;
- else
- return DOUBLE_TAP;
- }
- else
- return 6; //magic number. At some point this method will expand to work for more presses
-};
-
-//**************** Definitions needed for quad function to work *********************//
-# endif
-
-// Slightly better tap dance double: interruption sends double single and any number over double sends the single that number of times
-void tap_dance_pair_finished_safe(tap_dance_state_t *state, void *user_data) {
- tap_dance_pair_t *pair = (tap_dance_pair_t *)user_data;
- int count = state->count;
- if (state->count == 2) {
- if (state->interrupted){
- tap_code16(pair->kc1);register_code16 (pair->kc1);
- state->count = 1; // Reset the counter as we are using the first key
- } else register_code16 (pair->kc2);
- return;
- }
- register_code16 (pair->kc1);
- while(--count){
- unregister_code16(pair->kc1);
- register_code16 (pair->kc1);
- }
-}
-
-void tap_dance_pair_reset_safe(tap_dance_state_t *state, void *user_data) {
- tap_dance_pair_t *pair = (tap_dance_pair_t *)user_data;
- if (state->count == 2) {
- unregister_code16 (pair->kc2);
- return;
- }
- unregister_code16(pair->kc1);
-}
-
-//**************** Tap dance functions *********************//
-
-tap_dance_action_t tap_dance_actions[] = {
- [COPY_CUT] = ACTION_TAP_DANCE_FN(td_copy_cut),
- [PASTE_DANCE] = ACTION_TAP_DANCE_FN(td_paste),
- [_TD_F1] = ACTION_TAP_DANCE_DOUBLE(KC_1, KC_F1),
- [_TD_F2] = ACTION_TAP_DANCE_DOUBLE(KC_2, KC_F2),
- [_TD_F3] = ACTION_TAP_DANCE_DOUBLE(KC_3, KC_F3),
- [_TD_F4] = ACTION_TAP_DANCE_DOUBLE(KC_4, KC_F4),
- [_TD_F5] = ACTION_TAP_DANCE_DOUBLE(KC_5, KC_F5),
- [_TD_F6] = ACTION_TAP_DANCE_DOUBLE(KC_6, KC_F6),
- [_TD_F7] = ACTION_TAP_DANCE_DOUBLE(KC_7, KC_F7),
- [_TD_F8] = ACTION_TAP_DANCE_DOUBLE(KC_8, KC_F8),
- [_TD_F9] = ACTION_TAP_DANCE_DOUBLE(KC_9, KC_F9),
- [_TD_F10] = ACTION_TAP_DANCE_DOUBLE(KC_0, KC_F10),
- [_TD_F11] = ACTION_TAP_DANCE_DOUBLE(KC_MINS, KC_F11),
- [_TD_F12] = ACTION_TAP_DANCE_DOUBLE(KC_EQL, KC_F12),
- [_TD_H_ENTER] = ACTION_TAP_DANCE_DOUBLE(KC_H, KC_ENT),
- [_TD_CLN] = ACTION_TAP_DANCE_DOUBLE(KC_SCLN, KC_COLON),
- [_TD_SLASH] = ACTION_TAP_DANCE_DOUBLE(KC_SLASH, KC_BACKSLASH),
- // OLD ONES
- [LEFT_HOME] = ACTION_TAP_DANCE_DOUBLE(KC_LEFT, KC_HOME),
- [RGT_HOME] = ACTION_TAP_DANCE_DOUBLE_SAFE(KC_RGHT, KC_END),
- [J_ENT] = ACTION_TAP_DANCE_DOUBLE_SAFE(KC_J,KC_ENT),
- [H_MINS] = ACTION_TAP_DANCE_DOUBLE_SAFE(KC_H,KC_SLASH),
- [_TD_COPY] = ACTION_TAP_DANCE_FN(dance_copy),
- [_TD_CUT] = ACTION_TAP_DANCE_FN(dance_cut),
- [_TD_PASTE] = ACTION_TAP_DANCE_FN(dance_paste)
-};
-
-void td_copy_cut(tap_dance_state_t *state, void *user_data)
-{
- if (state->count == 2)
- {
- onMac ? SEND_STRING(SS_LGUI("x")) : SEND_STRING(SS_LCTL("x"));
- }
- else
- {
- onMac ? SEND_STRING(SS_LGUI("c")) : SEND_STRING(SS_LCTL("c"));
- }
- reset_tap_dance(state);
-};
-
-void td_paste(tap_dance_state_t *state, void *user_data)
-{
- if (state->count == 2)
- {
- onMac ? SEND_STRING(SS_DOWN(X_RSFT) SS_LGUI("v") SS_UP(X_RSFT)) : SEND_STRING(SS_DOWN(X_RSFT) SS_LCTL("v") SS_UP(X_RSFT));
- }
- else
- {
- onMac ? SEND_STRING(SS_LGUI("v")) : SEND_STRING(SS_LCTL("v"));
- }
- reset_tap_dance(state);
-};
-
-//===== The awesome tap dance for CUT, COPY and PASTE letters
-void dance_copy (tap_dance_state_t *state, void *user_data) {
- if (state->count == 1) { tap_code16(KC_C); }
- else
- if (state->interrupted) { tap_code16(KC_C);tap_code16(KC_C);}
- else CMD(KC_C);
-
- reset_tap_dance (state);
-}
-
-void dance_cut (tap_dance_state_t *state, void *user_data) {
- if (state->count == 1) { tap_code16(KC_X); }
- else { CMD(KC_X); }
- reset_tap_dance (state);
-}
-
-void dance_paste (tap_dance_state_t *state, void *user_data) {
- if (state->count == 1) {
- tap_code16(KC_V);
- }
- else {
- CMD(KC_V);
- }
- reset_tap_dance (state);
-}
diff --git a/users/danielo515/tap_dance.h b/users/danielo515/tap_dance.h
deleted file mode 100644
index aaf3864841..0000000000
--- a/users/danielo515/tap_dance.h
+++ /dev/null
@@ -1,81 +0,0 @@
-#include "quantum.h"
-extern bool CMD(uint16_t kc);
-extern bool onMac;
-
-
-#define ACTION_TAP_DANCE_DOUBLE_SAFE(kc1, kc2) { \
- .fn = { NULL, tap_dance_pair_finished_safe, tap_dance_pair_reset_safe }, \
- .user_data = (void *)&((tap_dance_pair_t) { kc1, kc2 }), \
- }
-
-#ifdef QUAD_DANCE
-//Enums used to clearly convey the state of the tap dance
-enum {
- SINGLE_TAP = 1,
- SINGLE_HOLD = 2,
- DOUBLE_TAP = 3,
- DOUBLE_HOLD = 4,
- DOUBLE_SINGLE_TAP = 5 //send SINGLE_TAP twice - NOT DOUBLE_TAP
- // Add more enums here if you want for triple, quadruple, etc.
-};
-int cur_dance (tap_dance_state_t *state);
-# endif
-
-enum tap_dance {
- COPY_CUT,
- PASTE_DANCE,
- _TD_F1,
- _TD_F2,
- _TD_F3,
- _TD_F4,
- _TD_F5,
- _TD_F6,
- _TD_F7,
- _TD_F8,
- _TD_F9,
- _TD_F10,
- _TD_F11,
- _TD_F12,
- _TD_H_ENTER,
- _TD_CLN,
- _TD_SLASH,
- // old ones
- LEFT_HOME,
- J_ENT,
- H_MINS,
- RGT_HOME,
- _TD_COPY,
- _TD_CUT,
- _TD_PASTE,
-};
-void tap_dance_pair_finished_safe(tap_dance_state_t *state, void *user_data);
-void tap_dance_pair_reset_safe(tap_dance_state_t *state, void *user_data);
-void td_copy_cut (tap_dance_state_t *state, void *user_data);
-void td_paste(tap_dance_state_t *state, void *user_data);
-int cur_dance (tap_dance_state_t *state);
-void dance_cut (tap_dance_state_t *state, void *user_data);
-void dance_copy (tap_dance_state_t *state, void *user_data);
-void dance_paste (tap_dance_state_t *state, void *user_data);
-
-// Ready to use Tap dance definitions, just put them on your layout
-#define TD_COPY TD(_TD_COPY)
-#define TD_CUT TD(_TD_CUT)
-#define KC_TD_COPY TD(_TD_COPY) // Declarations for macros that add KC_
-#define KC_TD_CUT TD(_TD_CUT)
-#define KC_TD_PASTE TD(_TD_PASTE)
-#define KC_E_GRV ES_GRV
-#define TD_F1 TD(_TD_F1)
-#define TD_F2 TD(_TD_F2)
-#define TD_F3 TD(_TD_F3)
-#define TD_F4 TD(_TD_F4)
-#define TD_F5 TD(_TD_F5)
-#define TD_F6 TD(_TD_F6)
-#define TD_F7 TD(_TD_F7)
-#define TD_F8 TD(_TD_F8)
-#define TD_F9 TD(_TD_F9)
-#define TD_F10 TD(_TD_F10)
-#define TD_F11 TD(_TD_F11)
-#define TD_F12 TD(_TD_F12)
-#define H_ENTER TD(_TD_H_ENTER)
-#define TD_CLN TD(_TD_CLN)
-#define TD_SLASH TD(_TD_SLASH)
diff --git a/users/datagrok/README.md b/users/datagrok/README.md
deleted file mode 100644
index 0d58c04e74..0000000000
--- a/users/datagrok/README.md
+++ /dev/null
@@ -1,63 +0,0 @@
-# datagrok's QMK user-space code
-
-## cdeq "comma dot exclamation question"
-
-This is a hack to place `question mark` on `shift-comma` and `exclamation mark` on `shift-period`.
-
-When using an operating system configured for a US/qwerty layout this replaces the angle brackets `<` `>` with `?` `!`. This helps on small keyboards to keep symbols for prose co-located in one layer, and symbols for programming in another.
-
-It's a "hack" because the "proper" way to accomplish this would be to edit the operating system's keymap.
-
-### setup
-
-in your `keymap.c`:
-
- #include "feature_cdeq.h"
-
- bool process_record_user(uint16_t keycode, keyrecord_t *record) {
- return process_record_cdeq(keycode, record);
- }
-
-in your `rules.mk`,
-
- SRC += feature_cdeq.c
-
-### examples
-
-- atreus:datagrok
-- bm43a:datagrok
-- mitosis:datagrok
-
-## base layer selector
-
-Defines a keycode `KF_LAYO` to rotate between available default layers.
-
-`Shift`+`KF_LAYO` makes the currently selected one persistent across reboots.
-
-This is useful if you'd like your keyboard to support and toggle between QWERTY, Dvorak, Colemak, Workman, and other layouts while keeping a common arrangement of modifier and function keys.
-
-Since toggling layouts seems like something one does infrequently, I wanted to be able to operate this feature with a single key, instead of one for each layer like planck:default or bootmagic.
-
-### setup
-
-in your `keymap.c`:
-
- #define KF_LAYO SAFE_RANGE
- #include "feature_default_layers_selector.h"
- const uint8_t highest_base_layer = 4;
-
- bool process_record_user(uint16_t keycode, keyrecord_t *record) {
- return \
- process_record_save_default_layer(keycode, record) && \
- process_record_select_default_layer(keycode, record);
- }
-
-in your `rules.mk`,
-
- SRC += feature_default_layers_selector.c
-
-### examples
-
-- atreus:datagrok
-- bm43a:datagrok
-- mitosis:datagrok
diff --git a/users/datagrok/feature_cdeq.c b/users/datagrok/feature_cdeq.c
deleted file mode 100644
index 50f784b2dd..0000000000
--- a/users/datagrok/feature_cdeq.c
+++ /dev/null
@@ -1,47 +0,0 @@
-// This is a hack to place <question mark> on <shift-comma> and <exclamation
-// mark> on <shift-period>, when using an operating system configured for a
-// US/qwerty layout.
-//
-// cdeq = "comma dot exclamation question"
-
-#include QMK_KEYBOARD_H
-
-bool comm_shifted = false;
-bool ques_shifted = false;
-
-bool process_record_cdeq(uint16_t keycode, keyrecord_t *record) {
- uint8_t shifted;
- uint16_t s_keycode;
- bool *k_shifted;
-
- switch (keycode) {
- case KC_COMM:
- s_keycode = KC_SLSH;
- k_shifted = &comm_shifted;
- break;
- case KC_DOT:
- s_keycode = KC_1;
- k_shifted = &ques_shifted;
- break;
- default:
- return true;
- }
-
- shifted = get_mods() & (MOD_BIT(KC_LSFT)|MOD_BIT(KC_RSFT));
-
- // Keydown. If shift is currently pressed, register its alternate keycode.
- if (record->event.pressed && shifted) {
- *k_shifted = true;
- register_code(s_keycode);
- return false;
- // Keyup. If shift was pressed back when the key was pressed, unregister
- // its alternate keycode.
- } else if (!(record->event.pressed) && *k_shifted) {
- *k_shifted = false;
- unregister_code(s_keycode);
- return false;
- // Otherwise, behave as normal.
- } else {
- return true;
- }
-}
diff --git a/users/datagrok/feature_cdeq.h b/users/datagrok/feature_cdeq.h
deleted file mode 100644
index ff3509b4de..0000000000
--- a/users/datagrok/feature_cdeq.h
+++ /dev/null
@@ -1,2 +0,0 @@
-#include QMK_KEYBOARD_H
-bool process_record_cdeq(uint16_t keycode, keyrecord_t *record);
diff --git a/users/datagrok/feature_default_layers_selector.c b/users/datagrok/feature_default_layers_selector.c
deleted file mode 100644
index 0ae1a894a0..0000000000
--- a/users/datagrok/feature_default_layers_selector.c
+++ /dev/null
@@ -1,46 +0,0 @@
-#include "feature_default_layers_selector.h"
-
-#ifdef AUDIO_ENABLE
-#include "audio.h"
-#ifdef DEFAULT_LAYER_SONGS
-extern float default_layer_songs[][16][2];
-#endif
-#endif
-
-bool process_record_save_default_layer(uint16_t keycode, keyrecord_t *record) {
-
-#if defined(AUDIO_ENABLE)
- float saved_song[][2] = SONG(COIN_SOUND);
-#endif
-
- if (!(keycode == KF_LAYO
- && record->event.pressed
- && get_mods() & (MOD_BIT(KC_LSFT)|MOD_BIT(KC_RSFT)))) {
- return true;
- }
-
- eeconfig_update_default_layer(default_layer_state);
-#if defined(AUDIO_ENABLE)
- PLAY_SONG(saved_song);
-#endif
- return false;
-}
-
-bool process_record_select_default_layer(uint16_t keycode, keyrecord_t *record) {
- if (!(keycode == KF_LAYO
- && record->event.pressed)) {
- return true;
- }
- if (!default_layer_state) {
- default_layer_set(2);
- } else {
- default_layer_set(
- (((1U<<(highest_base_layer+1))-1) & (default_layer_state<<1))
- | (default_layer_state>>highest_base_layer));
- }
- led_set(host_keyboard_leds());
-#if defined(AUDIO_ENABLE) && defined(DEFAULT_LAYER_SONGS)
- PLAY_SONG(default_layer_songs[get_highest_layer(default_layer_state)]);
-#endif
- return false;
-}
diff --git a/users/datagrok/feature_default_layers_selector.h b/users/datagrok/feature_default_layers_selector.h
deleted file mode 100644
index 37d82de82b..0000000000
--- a/users/datagrok/feature_default_layers_selector.h
+++ /dev/null
@@ -1,69 +0,0 @@
-#include QMK_KEYBOARD_H
-
-/*
- Define a keycode KF_LAYO to rotate between available default layers.
- Shift+KF_LAYO makes the current one persistent.
-
- To use:
-
- in your keymap.c, define KF_LAYO so it does not conflict with anything else.
- then include this header and set highest_base_layer.
-
- #define KF_LAYO SAFE_RANGE
- #include "feature_default_layers_selector.h"
-
- const uint8_t highest_base_layer = 4; // the index
-
- and in your rules.mk,
-
- SRC += feature_default_layers_selector.c
-*/
-
-/*
- See https://docs.qmk.fm/#/keymap for docs about layers including the concept
- of "base" or "default" layers.
-
- This is broken into two functions so that:
-
- - If you don't want to store the default layer state in eeprom, don't call
- process_record_save_default_layer.
-
- - If you have your own mechanism for setting the default layer state (to one
- or multiple layers), do that instead of process_record_select_default_layer.
-
- If you call both functions, call process_record_save_default_layer first.
-
- The QMK docs seem to assume that you will have only one layer as your
- default layer at any time, but the source code actually supports an arbitrary
- default_layer_state (composition of layers)
-
- quantum has "set_single_persistent_default_layer" but that writes to eeprom
- every time you change your default layer preference. i wanted a behavior
- instead which lets you switch default layers all you want, then store the
- current configuration once you're happy with it. that way if you get into an
- unusable state you can just unplug and replug your keyboard to escape from it.
-
- this code assumes:
-
- 1. each default layer state that you would select among consists of a single
- layer, which we will call a "base" layer.
-
- 2. all your "base" layers are stored contiguously at the bottom of your
- keymaps[] stack, and there are no non-"base" layers mixed in.
-
- 3. you have a maximum of 8 "base" layers. that is, the highest base layer is
- index 7.
-
- while 16 and 32 bit platforms might allow default_layer_state to include more
- and higher-numbered layers, eeconfig_update_default_layer saves only the first
- 8 bits of default_layer_state to eeprom.
-
-*/
-
-#ifndef KF_LAYO
-#define KF_LAYO SAFE_RANGE
-#endif
-
-const uint8_t highest_base_layer;
-bool process_record_save_default_layer(uint16_t keycode, keyrecord_t *record);
-bool process_record_select_default_layer(uint16_t keycode, keyrecord_t *record);
diff --git a/users/davidkristoffersen/davidkristoffersen.h b/users/davidkristoffersen/davidkristoffersen.h
deleted file mode 100644
index 0485e00013..0000000000
--- a/users/davidkristoffersen/davidkristoffersen.h
+++ /dev/null
@@ -1,18 +0,0 @@
-// Copyright 2022 David Kristoffersen (@davidkristoffersen)
-// SPDX-License-Identifier: GPL-3.0-or-later
-
-#pragma once
-
-#include QMK_KEYBOARD_H
-
-#include "src/enums.h"
-
-#ifdef LAYER_NO
-# include "macros/norwegian.h"
-#endif
-
-#include "util/functions.h"
-
-#include "hardware/split_space.h"
-
-#include "macros/macros.h"
diff --git a/users/davidkristoffersen/hardware/readme.md b/users/davidkristoffersen/hardware/readme.md
deleted file mode 100644
index f31601812b..0000000000
--- a/users/davidkristoffersen/hardware/readme.md
+++ /dev/null
@@ -1,3 +0,0 @@
-# Hardware
-
-This directory contains hardware related macros.
diff --git a/users/davidkristoffersen/hardware/split_space.c b/users/davidkristoffersen/hardware/split_space.c
deleted file mode 100644
index da25343f3d..0000000000
--- a/users/davidkristoffersen/hardware/split_space.c
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright 2022 David Kristoffersen (@davidkristoffersen)
-// SPDX-License-Identifier: GPL-3.0-or-later
-
-#include "split_space.h"
-
-#ifdef SPLIT_SPACE
-void handle_split_space(uint16_t keycode) {
- // Disable modifiers when numpad is active
- if (IS_LAYER_ON(NUMPAD)) clear_oneshot_mods();
-
- if (keycode == KC_LSPC) {
- // 2ng tap: Activate ctrl if shift is active
- if (get_oneshot_mods() & MOD_MASK_SHIFT) {
- clear_oneshot_mods();
- set_oneshot_mods(MOD_LCTL);
- }
- // 1st. tap: Activate shift if no modifier is active
- else {
- set_oneshot_mods(MOD_LSFT);
- }
- }
-}
-#endif
diff --git a/users/davidkristoffersen/hardware/split_space.h b/users/davidkristoffersen/hardware/split_space.h
deleted file mode 100644
index a9736b5ca1..0000000000
--- a/users/davidkristoffersen/hardware/split_space.h
+++ /dev/null
@@ -1,16 +0,0 @@
-// Copyright 2022 David Kristoffersen (@davidkristoffersen)
-// SPDX-License-Identifier: GPL-3.0-or-later
-
-#pragma once
-
-#include "davidkristoffersen.h"
-
-#define KC_RSPC KC_SPACE
-
-#ifdef SPLIT_SPACE
-# define KC_LSPC LT(NUMPAD, KC_NO)
-#else
-# define KC_LSPC KC_SPACE
-#endif
-
-void handle_split_space(uint16_t keycode);
diff --git a/users/davidkristoffersen/macros/debug.c b/users/davidkristoffersen/macros/debug.c
deleted file mode 100644
index 64fdc4a702..0000000000
--- a/users/davidkristoffersen/macros/debug.c
+++ /dev/null
@@ -1,36 +0,0 @@
-// Copyright 2022 David Kristoffersen (@davidkristoffersen)
-// SPDX-License-Identifier: GPL-3.0-or-later
-
-#include "macros.h"
-
-// Replace key records with macros
-bool handle_test(uint16_t keycode) {
- switch (keycode) {
- case KC_T0: {
- // Test QK_MAKE command
- SEND_STRING("qmk compile -kb " QMK_KEYBOARD " -km " QMK_KEYMAP);
- break;
- }
- case KC_T1:
- // Test ascii characters
- SEND_STRING(" !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~");
- break;
- case KC_T2:
-#ifdef LAYER_NO
- // Test other characters
- tap_code16(NO_AE);
- tap_code16(NO_OE);
- tap_code16(NO_AA);
- tap_code16(S(NO_AE));
- tap_code16(S(NO_OE));
- tap_code16(S(NO_AA));
-#endif
- return false;
- }
- return true;
-};
-
-bool process_debug(uint16_t keycode, keyrecord_t* record) {
- HANDLE_FALSE(handle_test(keycode));
- return true;
-}
diff --git a/users/davidkristoffersen/macros/language.c b/users/davidkristoffersen/macros/language.c
deleted file mode 100644
index 9b6dca79ca..0000000000
--- a/users/davidkristoffersen/macros/language.c
+++ /dev/null
@@ -1,40 +0,0 @@
-// Copyright 2022 David Kristoffersen (@davidkristoffersen)
-// SPDX-License-Identifier: GPL-3.0-or-later
-
-#include "macros.h"
-
-bool handle_language(uint16_t keycode) {
-#ifdef LAYER_NO
- // Handle conversion of English to Norwegian codes
- uint16_t org_keycode = keycode;
- keycode = get_norwegian_code(keycode);
-#endif
-
-#ifndef NO_SPECIAL_SHIFT
- // Handle conversion of special shift codes
- if (get_mods() & MOD_MASK_SHIFT) {
- uint16_t shifted_key = get_special_shifted_code(keycode);
- if (shifted_key != keycode) {
- // Tap shifted key while shift is disabled
- unregister_code(KC_LSFT);
- tap_code16(shifted_key);
- register_code(KC_LSFT);
- return false;
- }
- }
-#endif
-
-#ifdef LAYER_NO
- // Tap new language key
- if (keycode != org_keycode) {
- tap_code16(keycode);
- return false;
- }
-#endif
- return true;
-}
-
-bool process_language(uint16_t keycode, keyrecord_t* record) {
- HANDLE_FALSE(handle_language(keycode));
- return true;
-}
diff --git a/users/davidkristoffersen/macros/macros.c b/users/davidkristoffersen/macros/macros.c
deleted file mode 100644
index 6d8c0b6f57..0000000000
--- a/users/davidkristoffersen/macros/macros.c
+++ /dev/null
@@ -1,16 +0,0 @@
-// Copyright 2022 David Kristoffersen (@davidkristoffersen)
-// SPDX-License-Identifier: GPL-3.0-or-later
-
-#include "macros.h"
-
-// Prepend key records with macros
-bool process_record_user(uint16_t keycode, keyrecord_t* record) {
- if (record->event.pressed) {
-#ifdef SPLIT_SPACE
- handle_split_space(keycode, record);
-#endif
- HANDLE_FALSE(process_debug(keycode, record));
- HANDLE_FALSE(process_language(keycode, record));
- }
- return true;
-}
diff --git a/users/davidkristoffersen/macros/macros.h b/users/davidkristoffersen/macros/macros.h
deleted file mode 100644
index fb1e5c862c..0000000000
--- a/users/davidkristoffersen/macros/macros.h
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright 2022 David Kristoffersen (@davidkristoffersen)
-// SPDX-License-Identifier: GPL-3.0-or-later
-
-#pragma once
-
-#include "davidkristoffersen.h"
-
-enum keycodes {
- // Test keys
- KC_T0 = SAFE_RANGE,
- KC_T1,
- KC_T2,
- // Norwegian Æ, Ø, Å
- KC_AE,
- KC_OE,
- KC_AA
-};
-
-bool process_debug(uint16_t keycode, keyrecord_t* record);
-bool process_language(uint16_t keycode, keyrecord_t* record);
-
-// Prepend key records with macros
-bool process_record_user(uint16_t keycode, keyrecord_t* record);
diff --git a/users/davidkristoffersen/macros/norwegian.h b/users/davidkristoffersen/macros/norwegian.h
deleted file mode 100644
index 575d1e9f2f..0000000000
--- a/users/davidkristoffersen/macros/norwegian.h
+++ /dev/null
@@ -1,19 +0,0 @@
-// Copyright 2022 David Kristoffersen (@davidkristoffersen)
-// SPDX-License-Identifier: GPL-3.0-or-later
-
-#pragma once
-
-#include "keymap_extras/keymap_norwegian.h"
-#include "davidkristoffersen.h"
-
-// Better norwegian defines
-#undef NO_LESS
-#define NO_LESS KC_NUBS // <
-#undef NO_GRTR
-#define NO_GRTR S(NO_LESS) // >
-#undef NO_AE
-#define NO_AE KC_QUOT // Æ
-#undef NO_OE
-#define NO_OE KC_SCLN // Ø
-#undef NO_AA
-#define NO_AA KC_LBRC // Å
diff --git a/users/davidkristoffersen/macros/readme.md b/users/davidkristoffersen/macros/readme.md
deleted file mode 100644
index 7c074b2bb5..0000000000
--- a/users/davidkristoffersen/macros/readme.md
+++ /dev/null
@@ -1,3 +0,0 @@
-# Macros
-
-This directory contains any type of dynamic and static macros.
diff --git a/users/davidkristoffersen/post_config.h b/users/davidkristoffersen/post_config.h
deleted file mode 100644
index 3d1f5a93f4..0000000000
--- a/users/davidkristoffersen/post_config.h
+++ /dev/null
@@ -1,8 +0,0 @@
-// Copyright 2022 David Kristoffersen (@davidkristoffersen)
-// SPDX-License-Identifier: GPL-3.0-or-later
-
-#pragma once
-
-#ifndef LAYER_EN
-# define LAYER_EN LAYER_DEFAULT
-#endif
diff --git a/users/davidkristoffersen/readme.md b/users/davidkristoffersen/readme.md
deleted file mode 100644
index 20ff58003e..0000000000
--- a/users/davidkristoffersen/readme.md
+++ /dev/null
@@ -1,3 +0,0 @@
-# Overview
-
-This userspace contains all the utility functions and macros related to my keymaps.
diff --git a/users/davidkristoffersen/rules.mk b/users/davidkristoffersen/rules.mk
deleted file mode 100644
index 5901b68540..0000000000
--- a/users/davidkristoffersen/rules.mk
+++ /dev/null
@@ -1,12 +0,0 @@
-SRC += $(USER_PATH)/util/functions.c \
- $(USER_PATH)/hardware/split_space.c \
- $(USER_PATH)/macros/macros.c \
- $(USER_PATH)/macros/debug.c \
- $(USER_PATH)/macros/language.c
-
-# Firmware size optimizations
-ifeq ($(strip $(SIZE_OPTIMIZE)), yes)
- CONSOLE_ENABLE := no # 1646: Console for debug
- AUDIO_ENABLE := no # 8682: Audio output on port C6
- LTO_ENABLE := yes # 2772: Link time optimization
-endif
diff --git a/users/davidkristoffersen/util/functions.c b/users/davidkristoffersen/util/functions.c
deleted file mode 100644
index 3ab4ace2d6..0000000000
--- a/users/davidkristoffersen/util/functions.c
+++ /dev/null
@@ -1,111 +0,0 @@
-// Copyright 2022 David Kristoffersen (@davidkristoffersen)
-// SPDX-License-Identifier: GPL-3.0-or-later
-
-#include "functions.h"
-
-#ifndef NO_SPECIAL_SHIFT
-// Code set to swap struct
-typedef struct code_set {
- uint16_t pre;
- uint16_t post;
-} code_set_t;
-
-// Shift codes conversion struct
-typedef struct shift_code {
- int lang;
- int size;
- code_set_t* codes;
-} shift_code_t;
-
-#ifdef LAYER_NO
-code_set_t NO_SHIFT_CODES [] = {
- {NO_QUOT, NO_DQUO},
- {NO_BSLS, NO_PIPE},
-};
-#endif
-
-code_set_t EN_SHIFT_CODES [] = {
- {KC_COMM, KC_SCLN},
- {KC_DOT, KC_COLN},
-};
-
-// Array of shift code conversions
-const shift_code_t SHIFT_CODES [] = {
-#ifdef LAYER_NO
- {.lang = LAYER_NO,
- .size = ARRAY_SIZE(NO_SHIFT_CODES),
- .codes = NO_SHIFT_CODES},
-#endif
- {.lang = LAYER_EN,
- .size = ARRAY_SIZE(EN_SHIFT_CODES),
- .codes = EN_SHIFT_CODES},
-};
-const int SHIFT_CODES_SIZE = ARRAY_SIZE(SHIFT_CODES);
-#endif
-
-#ifdef LAYER_NO
-// Array of English to Norwegian code translations
-const code_set_t EN2NO_CODES [] = {
- {KC_QUOT, NO_QUOT},
- {KC_MINS, NO_MINS},
- {KC_BSLS, NO_BSLS},
- {KC_LBRC, NO_LBRC},
- {KC_LCBR, NO_LCBR},
- {KC_LPRN, NO_LPRN},
- {KC_LT, NO_LESS},
- {KC_GT, NO_GRTR},
- {KC_RPRN, NO_RPRN},
- {KC_RCBR, NO_RCBR},
- {KC_RBRC, NO_RBRC},
- {KC_AMPR, NO_AMPR},
- {KC_EQL, NO_EQL},
- {KC_PLUS, NO_PLUS},
- {KC_ASTR, NO_ASTR},
- {KC_SLSH, NO_SLSH},
- {KC_TILD, NO_TILD},
- {KC_AE, NO_AE},
- {KC_OE, NO_OE},
- {KC_AA, NO_AA},
- {KC_QUES, NO_QUES},
- {KC_AT, NO_AT},
- {KC_CIRC, NO_CIRC},
- {KC_DLR, NO_DLR},
- {KC_GRV, NO_GRV}
-};
-const int EN2NO_CODES_SIZE = ARRAY_SIZE(EN2NO_CODES);
-#endif
-
-// Check if layer is an active default layer
-bool is_default_on(int layer) {
- return layer == LAYER_DEFAULT
- ? true
- : layer_state_cmp(default_layer_state, layer);
-}
-
-#ifndef NO_SPECIAL_SHIFT
-// Get special shifted code
-uint16_t get_special_shifted_code(uint16_t keycode) {
- for (int i = 0; i < SHIFT_CODES_SIZE; i++) {
- if (IS_DEFAULT_OFF(SHIFT_CODES[i].lang)) continue;
- for (int j = 0; j < SHIFT_CODES[i].size; j++) {
- if (keycode == SHIFT_CODES[i].codes[j].pre)
- return SHIFT_CODES[i].codes[j].post;
- }
- }
- return keycode;
-}
-#endif
-
-#ifdef LAYER_NO
-// Get language specific code
-uint16_t get_norwegian_code(uint16_t keycode) {
- if (IS_DEFAULT_ON(LAYER_NO)) {
- for (int i = 0; i < EN2NO_CODES_SIZE; i++) {
- if (keycode == EN2NO_CODES[i].pre) {
- return EN2NO_CODES[i].post;
- }
- }
- }
- return keycode;
-}
-#endif
diff --git a/users/davidkristoffersen/util/functions.h b/users/davidkristoffersen/util/functions.h
deleted file mode 100644
index 5fef010694..0000000000
--- a/users/davidkristoffersen/util/functions.h
+++ /dev/null
@@ -1,30 +0,0 @@
-// Copyright 2022 David Kristoffersen (@davidkristoffersen)
-// SPDX-License-Identifier: GPL-3.0-or-later
-
-#pragma once
-
-#include "davidkristoffersen.h"
-
-// Default layer if none is specified
-#define LAYER_DEFAULT -1
-
-// Check if layer is an active default layer
-#define IS_DEFAULT_ON(layer) is_default_on(layer)
-// Check if layer is an inactive default layer
-#define IS_DEFAULT_OFF(layer) !is_default_on(layer)
-
-// Return false if test equal false
-#define HANDLE_FALSE(bool) if (!bool) return false;
-// Printf-like functionality for send_string
-#define SEND_VAR(str, ...) \
- do { \
- char var[128]; \
- sprintf(var, str, __VA_ARGS__); \
- send_string(var); \
- } while(0)
-
-// Get special shifted code
-uint16_t get_special_shifted_code(uint16_t keycode);
-
-// Get language specific code
-uint16_t get_norwegian_code(uint16_t keycode);
diff --git a/users/davidkristoffersen/util/readme.md b/users/davidkristoffersen/util/readme.md
deleted file mode 100644
index 90635f30e5..0000000000
--- a/users/davidkristoffersen/util/readme.md
+++ /dev/null
@@ -1,3 +0,0 @@
-# Utility
-
-This directory contains utility functions meant to assist the other files of the userspace.
diff --git a/users/dennytom/chording_engine/README.md b/users/dennytom/chording_engine/README.md
deleted file mode 100644
index 3610b190bf..0000000000
--- a/users/dennytom/chording_engine/README.md
+++ /dev/null
@@ -1,376 +0,0 @@
-# README
-
-## About
-
-This is a custom combo engine. I call it chording engine mostly to differentiate it from QMK's combos. It is useful even if you are not using chording as a main input method to replace combos.
-
-Why does this exist? Typing on tiny keyboards can be challenging and you will end up relying on dances and / or combos. Pure QMK combos can be insufficient as they do not really support overlapping combos. For example, if you define 3 combos `(KC_Q, KC_W)`, `(KC_Z, KC_X)` and `(KC_Q, KC_W, KC_Z, KC_X)` and press Q, W, Z and X at the same time, all three combos will activate. Steno engines (and g Board Industries' custom steno inspired engine) solve this, however, they don't allow for comfortable typing in the traditional way. The steno chord activates only when *all* keys are lifted and makes it difficult to implement some advanced features. This engine treats each chord independently to allow for more comfortable typing experience.
-
-## TOC
-
-- [README](#readme)
- - [About](#about)
- - [TOC](#toc)
- - [Start here](#start-here)
- - [Steps](#steps)
- - [Features](#features)
- - [Chords](#chords)
- - [Tap-Dance](#tap-dance)
- - [Pseudolayers](#pseudolayers)
- - [Control chords](#control-chords)
- - [Settings up JSON definition](#settings-up-json-definition)
- - [Keyboard and engine parameters](#keyboard-and-engine-parameters)
- - [Pseudolayers](#pseudolayers-1)
- - [Supported keycodes](#supported-keycodes)
- - [Leader Key](#leader-key)
- - [Extra code](#extra-code)
- - [Further details](#further-details)
- - [Implementation](#implementation)
- - [Internal keycodes](#internal-keycodes)
- - [Chords](#chords-1)
- - [Caveats](#caveats)
-
-## Start here
-
-This engine therefore uses python parser that translates a JSON definition of keyboard specific information and keymap definition and produces `keymap.c`. Every function on this keymap is a chord (combo). The resulting keymap file is long and I do not encourage you to edit it. All you should have to edit is the JSON file. To produce the keymap file, run
-
-```sh
-./parser.py keymap_def.json keymap.c
-```
-
-To prepare the keymap JSON definition, you can use on of my keymaps as a starting point. I have on for butterstick and for georgi. There is also a JSON schema that has some examples and sane defaults. All details are explained in the next section. The parser tries to validate some of the things that the JSON schema can not. Finally there is a JSON in the tests folder that has at least one example of every feature.
-
-Watch out, you can not name your JSON file `keymap.json` if you place in the keymap folder. QMK creates `keymap.json` as a part of compilation process and if you already have one, it gets confused.
-
-## Steps
-
-When setting up a new keyboard, follow the steps:
-
-1. Make a new directory for your keymap as QMK's documentation describes.
-2. Write your JSON. Name it anything but `keymap.json`.
-3. Depending on the keyboard / keymap, create `rules.mk` (follow QMK's documentation and note that if the keyboard's `rules.mk` include custom source files, this is the place you can remove them).
-4. Use my python parser to generate the `keymap.c`. Run it from the `/users/dennytom/chording_engine` directory as it is using relative paths to some extra files.
-5. Follow QMK's documentation to compile and flash your firmware.
-
-## Features
-
-### Chords
-
-Once again, *everything* on this keymap is a chord. Even sending `KC_Q` is done by pressing a single key chord. Chord gets activated after all it's keys get pressed. Only the longest chord gets activated. The order of the pressed keys *does not matter*, only the fact they have been pressed within the same time frame. An active chord gets deactivated if *any* of it's keys gets depressed. To activate the same single chord again, *all* it's keys have to be depressed and pressed again. With a few exceptions chords are independent of each other. No matter if some chords are currently active and some not, others can be activated or deactivated without affecting each other's state. *If you press keys to belonging to multiple different, non-overlapping chords, all get activated in the order they are defined in the keymap.*
-
-### Tap-Dance
-
-To make it even stranger, all chords are technically tap-dance chords. They are relatively simple state machines that execute a specific function every time they change state. For simplicity and optimization purposes, there are a few prewritten functions that implement common features like "send a single key" or "lock". Any number of chords can be "in dance" at any given moment without affecting each other's state. Custom dances can be easily added. Check out the `state_machine.png` to see all the states any chord can be in.
-
-### Pseudolayers
-
-Only one QMK layer is used. Following the butterstick's default keymap's example, the chording engine is using pseudolayers. The main difference to QMK's layers is that only one pseudolayer can be active at each time (meaning you can not use `KC_TRANS`, I actually don't know what will happen if you do). Chords can be activated only if they are on the currently active pseudolayer. Chords that are currently active do not get deactivated if the pseudolayer changes and will deactivate if any of their keys gets depressed even no matter the current pseudolayer. Locked chords (see below) and chords on the `ALWAYS_ON` pseudolayer can be activated anytime.
-
-### Control chords
-
-The engine implements a number of ways of changing how chords behave:
-
-* **Lock**: Similarly to QMK's lock, the next chord activated after the Lock chord will not deactivate on release of any of its keys, it will deactivate when all its keys get pressed again. Any number of chords can be locked at the same time. To make sure a locked chord can be unlocked, it can activate no matter the current pseudolayer. A chord can be locked mid dance.
-* **One shots**: Chords that send keycodes and chords that turn on pseudolayers can be one shots. If tapped, they will lock (stay active) until the next keycode gets sent, *not necessarily when the next chord gets activated*. If held, they will deactivate on release *even if no keycode got sent*.
-* **Tap-Hold**: Also called key-layer dance and key-key dance. Either sends a defined keycode on tap and temporarily switches pseudolayer on hold *or* sends two different keycodes on tap and hold.
-* **Command mode**: After getting activated for the first time, the keyboard switches to command mode. All *keycodes* that would get registered get buffered instead. After activating the Command mode chord for the second time, all buffered keycodes get released at the same time allowing for key combination that would be hard or impossible to press. The Command mode only affects keycodes. It is therefore possible to change pseudolayers or activate / deactivate other chords while in Command mode. While multiple Command mode chords can be defined, they would not be independent. The keyboard either is or is not in command mode and there is only one buffer.
-* **Leader key**: Just like pure QMK's Leader key, this allows you to add functions that get executed if the Leader key and a specific sequence of keycodes gets registered in a predefined order in a short timeframe. For example `:wq` can send `Ctrl+S` and `Ctrl+W` in a quick succession. While multiple Leader keys can be defined, they all would access the same list of sequences.
-* **Dynamic macro**: A sequence of keycodes can be recorded and stored in the RAM of the keyboard and replayed.
-
-## Settings up JSON definition
-
-The JSON definition has 3 main sections. The elements `keys`, `parameters` and `layers` teach the engine about the details of your keyboard and set its parameters. The elements `pseudolayers`, `leader_sequences` and `chord_sets` define your keymap. Finally, the elements `extra_code` and `extra_dependencies` allow you to include more code to extend the capabilities of the engine.
-
-### Keyboard and engine parameters
-
-I do not have experience with stenography, so the the steno keycodes are hard for me to remember. That is why the keymap is using new keycodes TOP1, TOP2, ... .
-
-```c
- "keys": ["TOP1", "TOP2", "TOP3", ...]
-```
-
-You can name these however you like as long as they do not crash with QMK's keycodes.
-
-*The chording engine in it's current implementation can handle up to 64 keys. If you need to support more, contact me (email or u/DennyTom at Reddit).*
-
-All timings, maximum lengths for macros, command mode and leader function are defined in `keyboard_parameters` field. Almost all should be pretty self-explanatory.
-
-My keyboards are small, so I only use the engine, but you might want to use layers that combine chord-able keys and traditional QMK keys or layers with advanced keycodes, for example for stenography. The array `layers` defines all the parser needs to know:
-
-```json
-"layers": [
- {
- "type": "auto"
- },
- {
- "type": "manual",
- "keycodes": ["KC_1", "KC_2", "KC_3", "KC_4", "KC_5", "KC_6", "KC_7", "KC_8", "KC_9", "KC_0",
- "KC_Q", "KC_W", "KC_E", "KC_R", "KC_T", "KC_Y", "KC_U", "KC_I", "KC_O", "KC_P"
- ]
- },
- {
- "type": "manual",
- "keycodes": ["KC_1", "KC_2", "KC_3", "KC_4", "KC_5", "KC_6", "KC_7", "KC_8", "KC_9", "KC_0",
- "BOT1", "BOT2", "BOT3", "BOT4", "BOT5", "BOT6", "BOT7", "BOT8", "BOT9", "BOT0"]
- }
- ]
-```
-
-This example defines 3 layers, one that is automatically populated with chording engine's internal keycodes, second that is populated with QMK's keycodes and third that uses both internal and QMK's keycodes. The layers do not have names, you have to access them with `TO(1)` and `TO(0)`.
-
-Some keyboards mangle the order of keycodes when registering them in the layers. For that fill up the `layout_function_name` with the name of function / macro. If your keyboard does not do it, leave that string empty.
-
-### Pseudolayers
-
-Array `pseudolayers` defines the keymap per pseudolayer. Each field has to contain the name for the layer and the list of chords.
-
-```JSON
-"pseudolayers": [
- {
- "name": "QWERTY",
- "chords": [
- {
- "type": "simple",
- "keycode": "SPACE",
- "chord": ["BOT1", "BOT0"]
- },
- {
- "type": "visual",
- "keycode": "CLEAR_KB",
- "chord": [
- "X", "", "", "", "", "", "", "", "", "X",
- "X", "", "", "", "", "", "", "", "", "X",
- ]
- },
- {
- "type": "visual_array",
- "keys": ["TOP1", "TOP2", "TOP3"],
- "dictionary": [
- ["X", "X", " ", "ESC"],
- [" ", "X", "X", "TAB"],
- ["X", "X", "X", "ENTER"]
- ]
- },
- {
- "type": "chord_set",
- "set": "rows",
- "keycodes": [
- "Q", "W", "E", "R", "T", "Y", "U", "I", "O", "P",
- "A", "S", "D", "F", "G", "H", "J", "K", "L", ";",
- "Z", "X", "C", "V", "B", "N", "M", ",", ".", "/"
- ]
- }
- ]
- }
-]
-```
-
-The array `chord` defines chords. You can either use simple chord and list all the keys that have to pressed at the same time, or use the visual chord and place `"X"` over keys that will be part of the chord. You can also use `visual_array` to define a number of chords in a visual way on a subset of keys defined in the `keys` array. Finally, you can use `chord_set` to define a number of chords following a pattern that was set in the `chord_sets` array in the root object like this:
-
-```json
-"chord_sets": [
- {
- "name": "rows",
- "chords": [
- ["TOP1"], ["TOP2"], ["TOP3"], ["TOP4"], ["TOP5"], ["TOP6"], ["TOP7"], ["TOP8"], ["TOP9"], ["TOP0"]
- ["TOP1", "BOT1"], ["TOP2", "BOT2"], ["TOP3", "BOT3"], ["TOP4", "BOT4"], ["TOP5", "BOT5"], ["TOP6", "BOT6"], ["TOP7", "BOT7"], ["TOP8", "BOT8"], ["TOP9", "BOT9"], ["TOP0", "BOT0"],
- ["BOT1"], ["BOT2"], ["BOT3"], ["BOT4"], ["BOT5"], ["BOT6"], ["BOT7"], ["BOT8"], ["BOT9"], ["BOT0"]
- ]
- },
- {
- "name": "cols",
- "chords": [
- ["TOP1", "TOP2"], ["TOP2", "TOP3"], ["TOP3", "TOP4"], ["TOP4", "TOP5"], ["TOP5", "TOP6"], ["TOP6", "TOP7"], ["TOP7", "TOP8"], ["TOP8", "TOP9"], ["TOP9", "TOP0"],
- ["TOP1", "TOP2", "BOT1", "BOT2"], ["TOP2", "TOP3", "BOT2", "BOT3"], ["TOP3", "TOP4", "BOT3", "BOT4"], ["TOP4", "TOP5", "BOT4", "BOT5"], ["TOP5", "TOP6", "BOT5", "BOT6"], ["TOP6", "TOP7", "BOT6", "BOT7"], ["TOP7", "TOP8", "BOT7", "BOT8"], ["TOP8", "TOP9", "BOT8", "BOT9"], ["TOP9", "TOP0", "BOT9", "BOT0"],
- ["BOT1", "BOT2"], ["BOT2", "BOT3"], ["BOT3", "BOT4"], ["BOT4", "BOT5"], ["BOT5", "BOT6"], ["BOT6", "BOT7"], ["BOT7", "BOT8"], ["BOT8", "BOT9"], ["BOT9", "BOT00"],
- ]
- }
-]
-```
-
-
-
-You might notice that the code tries to do a few clever things when parsing keycodes:
-
-* If the keycode would be just a character basic keycode, it tries to allow the use of shortcuts. `Q` will get replaced with `KC_Q`, `,` becomes `KC_COMMA`. This *should* work for all KC_ keycodes unless I missed some.
-* `MO()` and `DF()` macros work the same way for pseudolayers as they would for layers in pure QMK.
-* `O()` is a shortcut for `OSK()` or `OSL()`.
-* `STR('...')` sends a string. Careful with quoting.
-* Special chords like Command mode have their own codes like `CMD`.
-* The empty strings get ignored.
-
-### Supported keycodes
-
-* **`X`** or **`KC_X`**: Send code `KC_X` just like a normal keyboard.
-
-* **`STR("X")`**: Send string "x" on each activation of the chord. Once again, watch out for quoting and escaping characters. If you want special characters (especially quotes) in your string, look up Python reference for string literals and experiment. Also, because of how the string gets parsed, it is not possible to use `(` in the string.
-
-* **`MO(X)`**: Temporary switch to pseudolayer `X`. Because only one pseudolayer can be active at any moment, this works by switching back to the pseudolayer the chord lives on on deactivation. If you chain `MO()`s on multiple pseudolayers and deactivate them in a random order, you might end up stranded on a pseudolayer. I recommend adding `CLEAR` somewhere on `ALWAYS_ON` pseudolayer just in case.
-
-* **`MO(X,Y)`**: Temporary switch to pseudolayer `Y`. Switches to pseudolayer `X` on deactivation. Especially useful when you want to put the `MO()` chord on `ALWAYS_ON`.
-
-* **`DF(X)`**: Permanent switch to pseudolayer `X`.
-
-* **`TO(X)`**: Switches the QMK layer to `X`.
-
-* **`O(X)`**: One-shot key `X` (if `X` starts with `"KC_"`) or one-shot layer `X` (otherwise) . Both have retro tapping enabled.
-
-* **Tap-holds**
-
- * **`KK(X, Y)`**: Pulses code `X` on tap and code `Y` on hold.
- * **`KL(X, Y)`**: Pulses code `X` on tap and switches to pseudolayer `Y` on hold. If during the hold no key gets registered, the code `X` will get sent instead (similar to QMK's retro tapping).
- * **`KM(X, Y)`**: Same as `KK()` but meant for modifiers on hold. Instead of a timer to figure out tap-hold, uses retro tapping like behavior just like `KL()`. This has issues with GUI and ALT as they often have a meaning.
- * The chording engine determines if you are holding a chord based on a *global* timer. If you start holding a tap-hold chord and very quickly start tapping other chords, the hold might not activate until a short moment *after the last* chord when the timer expires. If you are running into this, adjust timeouts or wait a brief moment after pressing the chord to make sure it switches into the hold state before pressing other chords.
-
-* **Autoshift**
-
- * **`AS(X)`**: Pulses code `X` on tap and Pulses left shift + `X` on hold.
- * **`AT`** : Toggles autoshift for all autoshift chords. If off, all `AS` chords act like `KC` chords.
-
-* **`LOCK`**: The lock key. Since tap-dances of chords are independent, it is possible to lock a chord *anywhere in it's dance if you time it right!*. If that happens, use the `CLEAR` chord or restart your keeb.
-
-* **`CMD`**: The command mode. The number of keycodes that can be buffered is defined in in `command_max_length`.
-
-* **`LEAD`**: The leader key. The maximum length of the sequences needs to be defined in `keyboard_params`. You can use `leader_sequences` array to add sequences:
-
- ```json
- "leader_sequences": [
- {
- "name": "fn_L1",
- "function": "void fn_L1(void) { SEND(KC_LCTL); SEND(KC_LALT); SEND(KC_DEL); }",
- "sequence": ["KC_Q", "KC_Z"]
- }
- ]
- ```
-
- When the engine notices the sequence, it will call the function defined in the field `name`. You can either define it in the `function` field, in the field `extra_code` or in an external file that you then have to insert manually or using the `extra_dependencies` array. The parser copy-pastes the contents `extra_code` of all files specified in the `extra_dependencies` array in the `keymap.c`.
-
-* **`M(X, VALUE1, VALUE2)`**: A custom macro. Adds a chord that will use function `X` and with `chord.value1 = VALUE1; chord.value2 = VALUE2;`. The function `X` can be arbitrary C function, go crazy. Just like with the leader sequences, you have to insert the code into the generated `keymap.c` manually or through `extra_code` or `extra_dependencies`. The following example defines a macro that acts exactly like `KC_MEH` (the chording engine *should* support `KC_MEH`, this is just an example):
-
- ```c
- void fn_M1(const struct Chord* self) {
- switch (*self->state) {
- case ACTIVATED:
- key_in(KC_LCTL);
- key_in(KC_LSFT);
- key_in(KC_LALT);
- break;
- case DEACTIVATED:
- key_out(KC_LCTL);
- key_out(KC_LSFT);
- key_out(KC_LALT);
- break;
- case FINISHED:
- case FINISHED_FROM_ACTIVE:
- break;
- case RESTART:
- key_out(KC_LCTL);
- key_out(KC_LSFT);
- key_out(KC_LALT);
- break;
- default:
- break;
- }
- }
- ```
-
- Since this feels like it would be the most common way to use this feature, I wrote a macro for this:
-
-* **`MK(X1, X2, ...)`**: Acts like `KC()` except it registers / unregisters all `X1`, `X2`, ... codes at the same time.
-
-* **`D(X1, X2, ...)`**: A basic keycode dance. If tapped (or held), registers `X1`. If tapped and then tapped again (or held), registers `X2`, ... It *cannot* be combined with tap-hold, however holding will result in repeat. You can put in as many basic keycodes as you want, but the macro will break if you go beyond 256. It will try to expand shortened keycodes. Advanced keycodes are not supported.
-
-* **`DM_RECORD`, `DM_NEXT`, `DM_END`, `DM_PLAY`**: Start recording a dynamic macro. Once you start recording, basic keycodes will get stored. When replaying the macro, all keys you press before `DM_NEXT` or `DM_END` will get pressed at the same time. For example the sequence `DM_RECORD`, `KC_CTRL`, `KC_A`, `DM_NEXT`, `KC_BSPC`, `DM_END` will record a macro that when played will execute the sequence Ctrl+a, Backspace. `dynamic_macro_max_length` defines the maximum length of the macro to be recorded. You can increase it for the price of RAM. The example above requires 4 units of length to be saved (Ctrl, A, next, Backspace).
-
-* **`CLEAR_KB`**: clears keyboard, sets all chords to the default state and switches the pseudolayer to the default one. Basically the emergency stop button.
-
-* **`RESET`**: Go to the DFU flashing mode.
-
-**Caveat** of the current implementation is that the tap-hold, `MK` and `D` keycodes can not accept any of the keycodes that have some sort a function like dynamic macro specific chords, `CLEAR_KB`, `RESET`, `LOCK`, `AT`, ...
-
-### Leader Key
-
-The sequences are not defined by the *keys* you press but by the *keycodes* that get intercepted. The length of the sequence must be equal or shorter than the maximum (defined in `keyboard.inc`). Currently, the timeout for the leader sequence refreshes after each key pressed. If the sequence is not in the database, nothing will happen.
-
-### Extra code
-
-Extra C code needed to define custom chords can be added by quoting in in the `extra_code` element or by saving it in another header file and including it using the `extra_dependencies` element:
-
-```json
-{
- "extra_code": "void double_dance(const struct Chord* self) { ... }\n",
- "extra_dependencies": ["my_header.h"]
-}
-```
-
-
-
-## Further details
-
-### Implementation
-
-The source files are split into several files. `engine.part.1`, `engine.part.2` and `engine.part.3` contain C code that defines the Chord structure, implementations for all provided functions and the engine itself. `parser.py` generates keyboard and keymap dependent code. The file `chord.py` contains most of the logic required to properly translate chords from the JSON to the C code. I rarely write in python, if you have improvements, let me know, *please*.
-
-### Internal keycodes
-
-When `process_record_user()` gets one of the internal keycodes, it returns `true`, completely bypassing keyboard's and QMK's `process_record` functions. *All other* keycodes get passed down to QMK's standard processing.
-
-### Chords
-
-Each chord is defined by a constant structure, a function and two non-constant `int` variables keeping the track of the chord's state:
-
-```c
-struct Chord {
- uint32_t keycodes_hash;
- uint8_t pseudolayer;
- uint8_t* state;
- uint8_t* counter;
- uint16_t value1;
- uint8_t value2;
- void (*function) (const struct Chord*);
-};
-
-uint8_t state_0 = IDLE;
-uint8_t counter_0 = 0;
-void function_0(struct Chord* self) {
- switch (*self->state) {
- case ACTIVATED:
- register_code(self->value1);
- break;
- case DEACTIVATED:
- unregister_code(self->value1);
- break;
- case FINISHED:
- case PRESS_FROM_ACTIVE:
- break;
- case RESTART:
- unregister_code(self->value1);
- break;
- default:
- break;
- }
-}
-const struct Chord chord_0 PROGMEM = {H_TOP1, QWERTY, &state_0, &counter_0, KC_Q, 0, function_0};
-```
-
-All chords have to be added to `list_of_chord` array that gets regularly scanned and processed. The function doesn't actually activate on all state changes, there are a few more like `IDLE` (nothing is currently happening to the chord) or `IN_ONE_SHOT` (the chord is one shot and is currently locked). Those are all necessary for internal use only. The ones you have to worry about are
-
-* `ACTIVATED`: Analogous to a key being pressed (this includes repeated presses for tap-dance)
-* `DEACTIVATED`: Analogous to a key being depressed (also can be repeated)
-* `FINISHED`: Happens if the chord got deactivated and then the dance timer expired.
-* `PRESS_FROM_ACTIVE`: Happens if the chord was active when the dance timer expired. Meaning you at least once activated the chord and then kept holding it down. Useful to recognize taps and holds.
-* `FINISHED_FROM_ACTIVE`: Happens *after* `PRESS_FROM_HOLD` if the chord is still active when the dance timer expires for the second time. Can be combined with the `counter` to recognize even longer presses. Useful if you want to recognize long presses, for example for autoshift functionality. In `keyboard.inc` you can set `LONG_PRESS_MULTIPLIER` to set how many times does dance timer have to expire for the autoshift to trigger.
-* `RESTART`: The dance is done. Happens immediately after `FINISHED` or on chord deactivation from `FINISHED_FROM_ACTIVE`. Anything you have to do to get the chord into `IDLE` mode happens here.
-
-The chords change states based on external and internal events. Anytime a chord's function is activated, it may change it's own state. Also, on certain events, the chording engine will trigger the functions of all chords in a specific state and *if the chords' state hasn't changed* it will then change it appropriately. The default behavior when a chord changes state is described by the following diagram:
-
-![state machine diagram](state_machine.png)
-The colors differentiate in which function the change happens, see `state_machine.dot` for a bit more detail. Black arrows happen in more than one function. Arrows without a label happen immediately.
-
-You can see that the diagram is not exhaustive. For example nothing leads into `IN_ONE_SHOT`. That is because the chord's function can change the chord's state. This is useful for some advanced chords that break the default behavir (one-shots) and for optimization (chords that just send `KC_X` do not need to ever go into dance).
-
-## Caveats
-
-Each chord stores as much as possible in `PROGMEM` and unless it needs it, doesn't allocate `counter`. However it still has to store it's `state` and sometimes the `counter` in RAM. If you keep adding more chords, at one point you will run out. If your firmware fits in the memory and your keyboard crashes, try optimizing your RAM usage.
-
-Also, the code is not perfect. I keep testing it, but can not guarantee that it is stable. Some functions take (very short but still) time and if you happen to create keypress event when the keyboard can not see it, a chord can get stuck in a funny state. That is especially fun if the pseudolayer changes and you can not immediately press it again. Just restart the keyboard or push the key a few times.
diff --git a/users/dennytom/chording_engine/chord.py b/users/dennytom/chording_engine/chord.py
deleted file mode 100644
index 5e3b6d2834..0000000000
--- a/users/dennytom/chording_engine/chord.py
+++ /dev/null
@@ -1,465 +0,0 @@
-from functools import reduce
-
-strings = []
-number_of_strings = -1
-
-def top_level_split(s):
- """
- Split `s` by top-level commas only. Commas within parentheses are ignored.
- """
-
- # Parse the string tracking whether the current character is within
- # parentheses.
- balance = 0
- parts = []
- part = ""
-
- for i in range(len(s)):
- c = s[i]
- part += c
- if c == '(':
- balance += 1
- elif c == ')':
- balance -= 1
- elif c == ',' and balance == 0 and not s[i+1] == ',':
- part = part[:-1].strip()
- parts.append(part)
- part = ""
-
- # Capture last part
- if len(part):
- parts.append(part.strip())
-
- return parts
-
-def new_chord(on_pseudolayer, keycodes_hash, has_counter, value1, value2, function, output_buffer, index):
- counter_link = "NULL"
- output_buffer += "uint8_t state_" + str(index) + " = IDLE;\n"
- if has_counter:
- output_buffer += "uint8_t counter_" + str(index) + " = 0;\n"
- counter_link = "&counter_" + str(index)
- output_buffer += "const struct Chord chord_" + str(index) + " PROGMEM = {" + keycodes_hash + ", " + on_pseudolayer + ", &state_" + str(index) + ", " + counter_link + ", " + str(value1) + ", " + str(value2) + ", " + function + "};\n"
- index += 1
- return [output_buffer, index]
-
-def KC(on_pseudolayer, keycodes_hash, keycode, output_buffer, index):
- return new_chord(on_pseudolayer, keycodes_hash, False, keycode, 0, "single_dance", output_buffer, index)
-
-def AS(on_pseudolayer, keycodes_hash, keycode, output_buffer, index):
- return new_chord(on_pseudolayer, keycodes_hash, True, keycode, 0, "autoshift_dance", output_buffer, index)
-
-def AT(on_pseudolayer, keycodes_hash, output_buffer, index):
- return new_chord(on_pseudolayer, keycodes_hash, False, 0, 0, "autoshift_toggle", output_buffer, index)
-
-def KL(on_pseudolayer, keycodes_hash, keycode, to_pseudolayer, output_buffer, index):
- return new_chord(on_pseudolayer, keycodes_hash, True, keycode, to_pseudolayer, "key_layer_dance", output_buffer, index)
-
-def KK(on_pseudolayer, keycodes_hash, keycode1, keycode2, output_buffer, index):
- return new_chord(on_pseudolayer, keycodes_hash, True, keycode1, keycode2, "key_key_dance", output_buffer, index)
-
-def KM(on_pseudolayer, keycodes_hash, keycode, to_pseudolayer, output_buffer, index):
- return new_chord(on_pseudolayer, keycodes_hash, False, keycode, to_pseudolayer, "key_mod_dance", output_buffer, index)
-
-def MO(on_pseudolayer, keycodes_hash, to_pseudolayer, output_buffer, index):
- return new_chord(on_pseudolayer, keycodes_hash, False, to_pseudolayer, 0, "temp_pseudolayer", output_buffer, index)
-
-def MO_alt(on_pseudolayer, keycodes_hash, from_pseudolayer, to_pseudolayer, output_buffer, index):
- return new_chord(on_pseudolayer, keycodes_hash, False, to_pseudolayer, from_pseudolayer, "temp_pseudolayer_alt", output_buffer, index)
-
-def LOCK(on_pseudolayer, keycodes_hash, output_buffer, index):
- return new_chord(on_pseudolayer, keycodes_hash, False, 0, 0, "lock", output_buffer, index)
-
-def DF(on_pseudolayer, keycodes_hash, to_pseudolayer, output_buffer, index):
- return new_chord(on_pseudolayer, keycodes_hash, False, to_pseudolayer, 0, "perm_pseudolayer", output_buffer, index)
-
-def TO(on_pseudolayer, keycodes_hash, to_pseudolayer, output_buffer, index):
- return new_chord(on_pseudolayer, keycodes_hash, False, to_pseudolayer, 0, "switch_layer", output_buffer, index)
-
-def OSK(on_pseudolayer, keycodes_hash, keycode, output_buffer, index):
- return new_chord(on_pseudolayer, keycodes_hash, False, keycode, 0, "one_shot_key", output_buffer, index)
-
-def OSL(on_pseudolayer, keycodes_hash, to_pseudolayer, output_buffer, index):
- return new_chord(on_pseudolayer, keycodes_hash, False, to_pseudolayer, 0, "one_shot_layer", output_buffer, index)
-
-def CMD(on_pseudolayer, keycodes_hash, output_buffer, index):
- return new_chord(on_pseudolayer, keycodes_hash, False, 0, 0, "command", output_buffer, index)
-
-def DM_RECORD(on_pseudolayer, keycodes_hash, output_buffer, index):
- return new_chord(on_pseudolayer, keycodes_hash, False, 0, 0, "dynamic_macro_record", output_buffer, index)
-
-def DM_NEXT(on_pseudolayer, keycodes_hash, output_buffer, index):
- return new_chord(on_pseudolayer, keycodes_hash, False, 0, 0, "dynamic_macro_next", output_buffer, index)
-
-def DM_END(on_pseudolayer, keycodes_hash, output_buffer, index):
- return new_chord(on_pseudolayer, keycodes_hash, False, 0, 0, "dynamic_macro_end", output_buffer, index)
-
-def DM_PLAY(on_pseudolayer, keycodes_hash, output_buffer, index):
- return new_chord(on_pseudolayer, keycodes_hash, False, 0, 0, "dynamic_macro_play", output_buffer, index)
-
-def LEAD(on_pseudolayer, keycodes_hash, output_buffer, index):
- return new_chord(on_pseudolayer, keycodes_hash, False, 0, 0, "leader", output_buffer, index)
-
-def CLEAR(on_pseudolayer, keycodes_hash, output_buffer, index):
- return new_chord(on_pseudolayer, keycodes_hash, False, 0, 0, "clear", output_buffer, index)
-
-def RESET(on_pseudolayer, keycodes_hash, output_buffer, index):
- return new_chord(on_pseudolayer, keycodes_hash, False, 0, 0, "reset", output_buffer, index)
-
-def STR(on_pseudolayer, keycodes_hash, string_input, output_buffer, index, number_of_strings, strings):
- [a, b] = new_chord(on_pseudolayer, keycodes_hash, False, number_of_strings, 0, "string_in", output_buffer, index)
- return [a, b, number_of_strings + 1, strings + [string_input]]
-
-def M(on_pseudolayer, keycodes_hash, value1, value2, fnc, output_buffer, index):
- return new_chord(on_pseudolayer, keycodes_hash, True, value1, value2, fnc, output_buffer, index)
-
-def expand_keycode_fnc(DEFINITION):
- if DEFINITION == "`":
- DEFINITION = "GRAVE"
- elif DEFINITION == "-":
- DEFINITION = "MINUS"
- elif DEFINITION == "=":
- DEFINITION = "EQUAL"
- elif DEFINITION == "[":
- DEFINITION = "LBRACKET"
- elif DEFINITION == "]":
- DEFINITION = "RBRACKET"
- elif DEFINITION == "\\":
- DEFINITION = "BSLASH"
- elif DEFINITION == ";":
- DEFINITION = "SCOLON"
- elif DEFINITION == "'":
- DEFINITION = "QUOTE"
- elif DEFINITION == ",":
- DEFINITION = "COMMA"
- elif DEFINITION == ".":
- DEFINITION = "DOT"
- elif DEFINITION == "/":
- DEFINITION = "SLASH"
- elif DEFINITION == "~":
- DEFINITION = "TILDE"
- elif DEFINITION == "*":
- DEFINITION = "ASTERISK"
- elif DEFINITION == "+":
- DEFINITION = "PLUS"
- elif DEFINITION == "(":
- DEFINITION = "LEFT_PAREN"
- elif DEFINITION == ")":
- DEFINITION = "RIGHT_PAREN"
- elif DEFINITION == "<":
- DEFINITION = "LEFT_ANGLE_BRACKET"
- elif DEFINITION == ">":
- DEFINITION = "RIGHT_ANGLE_BRACKET"
- elif DEFINITION == "{":
- DEFINITION = "LEFT_CURLY_BRACE"
- elif DEFINITION == "}":
- DEFINITION = "RIGHT_CURLY_BRACE"
- elif DEFINITION == "?":
- DEFINITION = "QUESTION"
- elif DEFINITION == "~":
- DEFINITION = "TILDE"
- elif DEFINITION == ":":
- DEFINITION = "COLON"
- elif DEFINITION == "_":
- DEFINITION = "UNDERSCORE"
- elif DEFINITION == '"':
- DEFINITION = "DOUBLE_QUOTE"
- elif DEFINITION == "@":
- DEFINITION = "AT"
- elif DEFINITION == "#":
- DEFINITION = "HASH"
- elif DEFINITION == "$":
- DEFINITION = "DOLLAR"
- elif DEFINITION == "!":
- DEFINITION = "EXCLAIM"
- elif DEFINITION == "%":
- DEFINITION = "PERCENT"
- elif DEFINITION == "^":
- DEFINITION = "CIRCUMFLEX"
- elif DEFINITION == "&":
- DEFINITION = "AMPERSAND"
- elif DEFINITION == "|":
- DEFINITION = "PIPE"
-
- if DEFINITION in [
- "A", "a", "B", "b", "C", "c", "D", "d", "E", "e",
- "F", "f", "G", "g", "H", "h", "I", "i", "J", "j",
- "K", "k", "L", "l", "M", "m", "N", "n", "O", "o",
- "P", "p", "Q", "q", "R", "r", "S", "s", "T", "t",
- "U", "u", "V", "v", "W", "w", "X", "x", "Y", "y",
- "Z", "z", "1", "2", "3", "4", "5", "6", "7", "8",
- "9", "0", "F1", "F2", "F3", "F4", "F5", "F6", "F7",
- "F8", "F9", "F10", "F11", "F12", "F13", "F14", "F15",
- "F16", "F17", "F18", "F19", "F20", "F21", "F22",
- "F23", "F24", "ENTER", "ENT", "ESCAPE", "ESC",
- "BSPACE", "BSPC", "TAB", "SPACE", "SPC", "NONUS_HASH",
- "NUHS", "NONUS_BSLASH", "NUBS", "COMMA", "COMM",
- "DOT", "SLASH", "SLSH", "TILDE", "TILD", "EXCLAIM",
- "EXLM", "AT", "HASH", "DOLLAR", "DLR", "PERCENT",
- "PERC", "CIRCUMFLEX", "CIRC", "AMPERSAND", "AMPR",
- "ASTERISK", "ASTR", "LEFT_PAREN", "LPRN", "RIGHT_PAREN",
- "RPRN", "UNDERSCORE", "UNDS", "PLUS", "LEFT_CURLY_BRACE",
- "LCBR", "RIGHT_CURLY_BRACE", "RCBR", "PIPE", "COLON",
- "COLN", "DOUBLE_QUOTE", "DQUO", "DQT",
- "LEFT_ANGLE_BRACKET", "LABK", "LT", "RIGHT_ANGLE_BRACKET",
- "RABK", "GT", "QUESTION", "QUES", "SCOLON", "SCLN",
- "QUOTE", "QUOT", "LBRACKET", "LBRC", "RBRACKET", "RBRC",
- "BSLASH", "BSLS", "MINUS", "MINS", "EQUAL", "EQL",
- "GRAVE", "GRV", "ZKHK", "CAPSLOCK", "CLCK", "CAPS",
- "SCROLLOCK", "SLCK", "BRMD", "NUMLOCK", "NLCK",
- "LOCKING_CAPS", "LCAP", "LOCKING_NUM", "LNUM",
- "LOCKING_SCROLL", "LSCR", "LCTRL", "LCTL", "LSHIFT",
- "LSFT", "LALT", "LGUI", "LCMD", "LWIN", "RCTRL",
- "RCTL", "RSHIFT", "RSFT", "RALT", "RGUI", "RCMD",
- "RWIN", "INT1", "RO", "INT2", "KANA", "INT3", "JYEN",
- "INT4", "HENK", "INT5", "MHEN", "INT6", "INT7",
- "INT8", "INT9", "LANG1", "HAEN", "LANG2", "HANJ",
- "LANG3", "LANG4", "LANG5", "LANG6", "LANG7", "LANG8",
- "LANG9", "PSCREEN", "PSCR", "PAUSE", "PAUS", "BRK",
- "BRMU", "INSERT", "INS", "HOME", "PGUP", "DELETE",
- "DEL", "END", "PGDOWN", "PGDN", "RIGHT", "RGHT",
- "LEFT", "DOWN", "UP", "APPLICATION", "APP", "POWER",
- "EXECUTE", "EXEC", "HELP", "MENU", "SELECT", "SLCT",
- "STOP", "AGAIN", "AGIN", "UNDO", "CUT", "COPY",
- "PASTE", "PSTE", "FIND", "MUTE", "VOLUP", "VOLDOWN",
- "ALT_ERASE", "ERAS", "SYSREQ", "CANCEL", "CLEAR",
- "CLR", "PRIOR", "RETURN", "SEPARATOR", "OUT", "OPER",
- "CLEAR_AGAIN", "CRSEL", "EXSEL", "SYSTEM_POWER",
- "PWR", "SYSTEM_SLEEP", "SLEP", "SYSTEM_WAKE", "WAKE",
- "AUDIO_MUTE", "MUTE", "AUDIO_VOL_UP", "VOLU",
- "AUDIO_VOL_DOWN", "VOLD", "MEDIA_NEXT_TRACK", "MNXT",
- "MEDIA_PREV_TRACK", "MPRV", "CPRV", "MEDIA_STOP", "MSTP",
- "MEDIA_PLAY_PAUSE", "MPLY", "MEDIA_SELECT", "MSEL",
- "MEDIA_EJECT", "EJCT", "MAIL", "CALCULATOR", "CALC",
- "MY_COMPUTER", "MYCM", "WWW_SEARCH", "WSCH", "WWW_HOME",
- "WHOM", "WWW_BACK", "WBAK", "WWW_FORWARD", "WFWD",
- "WWW_STOP", "WSTP", "WWW_REFRESH", "WREF",
- "WWW_FAVORITES", "WFAV", "MEDIA_FAST_FORWARD", "MFFD",
- "MEDIA_REWIND", "MRWD", "BRIGHTNESS_UP", "BRIU",
- "BRIGHTNESS_DOWN", "BRID", "KP_SLASH", "PSLS",
- "KP_ASTERISK", "PAST", "KP_MINUS", "PMNS", "KP_PLUS",
- "PPLS", "KP_ENTER", "PENT", "KP_1", "P1", "KP_2", "P2",
- "KP_3", "P3", "KP_4", "P4", "KP_5", "P5", "KP_6", "P6",
- "KP_7", "P7", "KP_8", "P8", "KP_9", "P9", "KP_0", "P0",
- "KP_DOT", "PDOT", "KP_EQUAL", "PEQL", "KP_COMMA", "PCMM",
- "MS_BTN1", "BTN1", "MS_BTN2", "BTN2", "MS_BTN3", "BTN3",
- "MS_BTN4", "BTN4", "MS_BTN5", "BTN5", "MS_BTN6", "BTN6",
- "MS_LEFT", "MS_L", "MS_DOWN", "MS_D", "MS_UP", "MS_U",
- "MS_RIGHT", "MS_R", "MS_WH_UP", "WH_U", "MS_WH_DOWN",
- "WH_D", "MS_WH_LEFT", "MS_WH_L", "MS_WH_RIGHT", "MS_WH_R",
- "KC_MS_ACCEL0", "ACL0", "KC_MS_ACCEL1", "ACL1",
- "KC_MS_ACCEL2", "ACL2"
- ]:
- return "KC_" + DEFINITION
- else:
- return DEFINITION
-
-def MK(on_pseudolayer, keycodes_hash, definition, output_buffer, index):
- l = len(definition.split(', '))
- output_buffer += "void function_" + str(index) + "(const struct Chord* self) {\n"
- output_buffer += " switch (*self->state) {\n"
- output_buffer += " case ACTIVATED:\n"
- for i in range(0, l):
- val = definition.split(',')[i].strip()
- code = expand_keycode_fnc(val)
- output_buffer += " key_in(" + code + ");\n"
- output_buffer += " break;\n"
- output_buffer += " case DEACTIVATED:\n"
- for i in range(0, l):
- val = definition.split(',')[i].strip()
- code = expand_keycode_fnc(val)
- output_buffer += " key_out(" + code + ");\n"
- output_buffer += " *self->state = IDLE;\n"
- output_buffer += " break;\n"
- output_buffer += " case RESTART:\n"
- for i in range(0, l):
- val = definition.split(',')[i].strip()
- code = expand_keycode_fnc(val)
- output_buffer += " key_out(" + code + ");\n"
- output_buffer += " break;\n"
- output_buffer += " default:\n"
- output_buffer += " break;\n"
- output_buffer += " };\n"
- output_buffer += "}\n"
- return new_chord(on_pseudolayer, keycodes_hash, True, 0, 0, "function_" + str(index), output_buffer, index)
-
-def D(on_pseudolayer, keycodes_hash, DEFINITION, output_buffer, index):
- l = len(DEFINITION.split(','))
- output_buffer += "void function_" + str(index) + "(const struct Chord* self) {\n"
- output_buffer += " switch (*self->state) {\n"
- output_buffer += " case ACTIVATED:\n"
- output_buffer += " *self->counter = *self->counter + 1;\n"
- output_buffer += " break;\n"
- output_buffer += " case PRESS_FROM_ACTIVE:\n"
- output_buffer += " switch (*self->counter) {\n"
- for i in range(0, l):
- val = DEFINITION.split(',')[i].strip()
- code = expand_keycode_fnc(val)
- output_buffer += " case " + str(i + 1) + ":\n"
- output_buffer += " key_in( " + code + ");\n"
- output_buffer += " break;\n"
- output_buffer += " default:\n"
- output_buffer += " break;\n"
- output_buffer += " }\n"
- output_buffer += " *self->state = FINISHED_FROM_ACTIVE;\n"
- output_buffer += " break;\n"
- output_buffer += " case FINISHED:\n"
- output_buffer += " switch (*self->counter) {\n"
- for i in range(0, l):
- val = DEFINITION.split(',')[i].strip()
- code = expand_keycode_fnc(val)
- output_buffer += " case " + str(i + 1) + ":\n"
- output_buffer += " tap_key( " + code + ");\n"
- output_buffer += " break;\n"
- output_buffer += " default:\n"
- output_buffer += " break;\n"
- output_buffer += " }\n"
- output_buffer += " *self->counter = 0;\n"
- output_buffer += " *self->state = IDLE;\n"
- output_buffer += " break;\n"
- output_buffer += " case RESTART:\n"
- output_buffer += " switch (*self->counter) {\n"
- for i in range(0, l):
- val = DEFINITION.split(',')[i].strip()
- code = expand_keycode_fnc(val)
- output_buffer += " case " + str(i + 1) + ":\n"
- output_buffer += " key_out( " + code + ");\n"
- output_buffer += " break;\n"
- output_buffer += " default:\n"
- output_buffer += " break;\n"
- output_buffer += " }\n"
- output_buffer += " *self->counter = 0;\n"
- output_buffer += " break;\n"
- output_buffer += " default:\n"
- output_buffer += " break;\n"
- output_buffer += " }\n"
- output_buffer += "}\n"
- return new_chord(on_pseudolayer, keycodes_hash, True, 0, 0, "function_" + str(index), output_buffer, index)
-
-def O(on_pseudolayer, keycodes_hash, DEFINITION, output_buffer, index):
- if DEFINITION[0:3] == "KC_":
- return OSK(on_pseudolayer, keycodes_hash, DEFINITION, output_buffer, index)
- else:
- return OSL(on_pseudolayer, keycodes_hash, DEFINITION, output_buffer, index)
-
-def add_key(PSEUDOLAYER, KEYCODES_HASH, DEFINITION, output_buffer, index, number_of_strings, strings):
- # if "= {" + KEYCODES_HASH + ", " + PSEUDOLAYER in output_buffer:
- # KEYCODES_HASH = re.sub('H_', '', KEYCODES_HASH)
- # raise Exception("You are trying to register a chord that you already registered (" + KEYCODES_HASH + ", " + PSEUDOLAYER + ")")
-
- if DEFINITION == "":
- return [output_buffer, index, number_of_strings, strings]
- else:
- split = DEFINITION.split("(")
- type = split[0].strip()
- if len(split) == 1:
- if type == "LOCK":
- [output_buffer, index] = LOCK(PSEUDOLAYER, KEYCODES_HASH, output_buffer, index)
- elif type == "AT":
- [output_buffer, index] = AT(PSEUDOLAYER, KEYCODES_HASH, output_buffer, index)
- elif type == "CMD":
- [output_buffer, index] = CMD(PSEUDOLAYER, KEYCODES_HASH, output_buffer, index)
- elif type == "LEAD":
- [output_buffer, index] = LEAD(PSEUDOLAYER, KEYCODES_HASH, output_buffer, index)
- elif type == "DM_RECORD":
- [output_buffer, index] = DM_RECORD(PSEUDOLAYER, KEYCODES_HASH, output_buffer, index)
- elif type == "DM_NEXT":
- [output_buffer, index] = DM_NEXT(PSEUDOLAYER, KEYCODES_HASH, output_buffer, index)
- elif type == "DM_END":
- [output_buffer, index] = DM_END(PSEUDOLAYER, KEYCODES_HASH, output_buffer, index)
- elif type == "DM_PLAY":
- [output_buffer, index] = DM_PLAY(PSEUDOLAYER, KEYCODES_HASH, output_buffer, index)
- elif type == "CLEAR_KB":
- [output_buffer, index] = CLEAR(PSEUDOLAYER, KEYCODES_HASH, output_buffer, index)
- elif type == "RESET":
- [output_buffer, index] = RESET(PSEUDOLAYER, KEYCODES_HASH, output_buffer, index)
- else:
- code = expand_keycode_fnc(type)
- [output_buffer, index] = KC(PSEUDOLAYER, KEYCODES_HASH, code, output_buffer, index)
- else:
- val = split[1][:-1].strip()
- if type == "O":
- code = expand_keycode_fnc(val)
- [output_buffer, index] = O(PSEUDOLAYER, KEYCODES_HASH, code, output_buffer, index)
- elif type == "D":
- [output_buffer, index] = D(PSEUDOLAYER, KEYCODES_HASH, val, output_buffer, index)
- elif type == "MK":
- [output_buffer, index] = MK(PSEUDOLAYER, KEYCODES_HASH, val, output_buffer, index)
- elif type == "M":
- fnc = val.split(',')[0].strip()
- val1 = val.split(',')[1].strip()
- val2 = val.split(',')[2].strip()
- [output_buffer, index] = M(PSEUDOLAYER, KEYCODES_HASH, val1, val2, fnc, output_buffer, index)
- elif type == "KK":
- val1 = val.split(',')[0].strip()
- code1 = expand_keycode_fnc(val1)
- val2 = val.split(',')[1].strip()
- code2 = expand_keycode_fnc(val2)
- [output_buffer, index] = KK(PSEUDOLAYER, KEYCODES_HASH, code1, code2, output_buffer, index)
- elif type == "KL":
- val1 = val.split(',')[0].strip()
- code1 = expand_keycode_fnc(val1)
- val2 = val.split(',')[1].strip()
- [output_buffer, index] = KL(PSEUDOLAYER, KEYCODES_HASH, code1, val2, output_buffer, index)
- elif type == "KM":
- val1 = val.split(',')[0].strip()
- code1 = expand_keycode_fnc(val1)
- val2 = val.split(',')[1].strip()
- code2 = expand_keycode_fnc(val2)
- [output_buffer, index] = KM(PSEUDOLAYER, KEYCODES_HASH, code1, code2, output_buffer, index)
- elif type == "AS":
- code = expand_keycode_fnc(val)
- [output_buffer, index] = AS(PSEUDOLAYER, KEYCODES_HASH, code, output_buffer, index)
- elif type == "MO":
- if not ',' in val:
- [output_buffer, index] = MO(PSEUDOLAYER, KEYCODES_HASH, val, output_buffer, index)
- else:
- val1 = val.split(',')[0].strip()
- val2 = val.split(',')[1].strip()
- [output_buffer, index] = MO_alt(PSEUDOLAYER, KEYCODES_HASH, val1, val2, output_buffer, index)
- elif type == "DF":
- [output_buffer, index] = DF(PSEUDOLAYER, KEYCODES_HASH, val, output_buffer, index)
- elif type == "TO":
- [output_buffer, index] = TO(PSEUDOLAYER, KEYCODES_HASH, val, output_buffer, index)
- elif type == "STR":
- [output_buffer, index, number_of_strings, strings] = STR(PSEUDOLAYER, KEYCODES_HASH, val, output_buffer, index, number_of_strings, strings)
- return [output_buffer, index, number_of_strings, strings]
-
-def add_leader_combo(DEFINITION, FUNCTION):
- return list_of_leader_combos.append([DEFINITION, FUNCTION])
-
-def add_chord_set(PSEUDOLAYER, INPUT_STRING, TYPE, data, output_buffer, index, number_of_strings, strings):
- chord_set = {}
- for set in data["chord_sets"]:
- if set["name"] == TYPE:
- chord_set = set["chords"]
- break
-
- separated_string = top_level_split(INPUT_STRING)
- for word, chord in zip(separated_string, chord_set):
- chord_hash = reduce((lambda x, y: str(x) + " + " + str(y)), ["H_" + key for key in chord])
- [output_buffer, index, number_of_strings, strings] = add_key(PSEUDOLAYER, chord_hash, word, output_buffer, index, number_of_strings, strings)
-
- return [output_buffer, index, number_of_strings, strings]
-
-def add_dictionary(PSEUDOLAYER, keycodes, array, output_buffer, index, number_of_strings, strings):
- for chord in array:
- hash = ""
- for word, key in zip(chord[:-1], keycodes):
- if word == "X":
- hash = hash + " + H_" + key
- hash = hash[3:]
- if hash != "":
- [output_buffer, index, number_of_strings, strings] = add_key(PSEUDOLAYER, hash, chord[-1], output_buffer, index, number_of_strings, strings)
-
- return [output_buffer, index, number_of_strings, strings]
-
-def secret_chord(PSEUDOLAYER, ACTION, INPUT_STRING, data, output_buffer, index, number_of_strings, strings):
- separated_string = top_level_split(INPUT_STRING)
- hash = ""
- for word, key in zip(separated_string, data["keys"]):
- if word == "X":
- hash = hash + " + H_" + key
-
- hash = hash[3:]
- if hash != "":
- return add_key(PSEUDOLAYER, hash, ACTION, output_buffer, index, number_of_strings, strings)
diff --git a/users/dennytom/chording_engine/engine.part.1 b/users/dennytom/chording_engine/engine.part.1
deleted file mode 100644
index e4f1b260dc..0000000000
--- a/users/dennytom/chording_engine/engine.part.1
+++ /dev/null
@@ -1,163 +0,0 @@
-enum chord_states {
- IDLE,
- READY,
- ACTIVATED,
- DEACTIVATED,
- PRESS_FROM_ACTIVE,
- FINISHED_FROM_ACTIVE,
- IDLE_IN_DANCE,
- READY_IN_DANCE,
- FINISHED,
- LOCKED,
- READY_LOCKED,
- RESTART,
- IN_ONE_SHOT
-};
-
-struct Chord {
- uint32_t keycodes_hash;
- uint8_t pseudolayer;
- uint8_t* state;
- uint8_t* counter;
- uint16_t value1;
- uint8_t value2;
- void (*function) (const struct Chord*);
-};
-
-uint8_t current_pseudolayer = DEFAULT_PSEUDOLAYER;
-bool lock_next = false;
-uint16_t chord_timer = 0;
-uint16_t dance_timer = 0;
-bool autoshift_mode = true;
-uint8_t keycode_index = 0;
-uint8_t command_mode = 0;
-uint8_t command_ind = 0;
-bool in_leader_mode = false;
-uint8_t leader_ind = 0;
-uint16_t leader_timer = 0;
-uint8_t dynamic_macro_mode = false;
-uint8_t dynamic_macro_ind = 0;
-bool a_key_went_through = false;
-struct Chord* last_chord = NULL;
-
-bool handle_US_ANSI_shifted_keys(int16_t keycode, bool in) {
- bool is_US_ANSI_shifted = true;
-
- int16_t regular_keycode = KC_NO;
- switch (keycode) {
- case KC_TILDE:
- regular_keycode = KC_GRAVE;
- break;
- case KC_EXCLAIM:
- regular_keycode = KC_1;
- break;
- case KC_AT:
- regular_keycode = KC_2;
- break;
- case KC_HASH:
- regular_keycode = KC_3;
- break;
- case KC_DOLLAR:
- regular_keycode = KC_4;
- break;
- case KC_PERCENT:
- regular_keycode = KC_5;
- break;
- case KC_CIRCUMFLEX:
- regular_keycode = KC_6;
- break;
- case KC_AMPERSAND:
- regular_keycode = KC_7;
- break;
- case KC_ASTERISK:
- regular_keycode = KC_8;
- break;
- case KC_LEFT_PAREN:
- regular_keycode = KC_9;
- break;
- case KC_RIGHT_PAREN:
- regular_keycode = KC_0;
- break;
- case KC_UNDERSCORE:
- regular_keycode = KC_MINUS;
- break;
- case KC_PLUS:
- regular_keycode = KC_EQUAL;
- break;
- case KC_LEFT_CURLY_BRACE:
- regular_keycode = KC_LEFT_BRACKET;
- break;
- case KC_RIGHT_CURLY_BRACE:
- regular_keycode = KC_RIGHT_BRACKET;
- break;
- case KC_PIPE:
- regular_keycode = KC_BACKSLASH;
- break;
- case KC_COLON:
- regular_keycode = KC_SEMICOLON;
- break;
- case KC_DOUBLE_QUOTE:
- regular_keycode = KC_QUOTE;
- break;
- case KC_LEFT_ANGLE_BRACKET:
- regular_keycode = KC_COMMA;
- break;
- case KC_RIGHT_ANGLE_BRACKET:
- regular_keycode = KC_DOT;
- break;
- case KC_QUESTION:
- regular_keycode = KC_SLASH;
- break;
- default:
- is_US_ANSI_shifted = false;
- }
- if (is_US_ANSI_shifted) {
- if (in) {
- register_code(KC_LSFT);
- register_code(regular_keycode);
- } else {
- unregister_code(regular_keycode);
- unregister_code(KC_LSFT);
- }
- }
- return is_US_ANSI_shifted;
-}
-
-void key_in(int16_t keycode) {
- if (command_mode == 1 && command_ind < COMMAND_MAX_LENGTH) {
- command_buffer[command_ind] = keycode;
- command_ind++;
- a_key_went_through = true;
- } else if (in_leader_mode && leader_ind < LEADER_MAX_LENGTH) {
- leader_buffer[leader_ind] = keycode;
- leader_ind++;
- a_key_went_through = true;
- } else if (dynamic_macro_mode && dynamic_macro_ind < DYNAMIC_MACRO_MAX_LENGTH) {
- dynamic_macro_buffer[dynamic_macro_ind] = keycode;
- dynamic_macro_ind++;
- a_key_went_through = true;
- } else {
- if (!handle_US_ANSI_shifted_keys(keycode, true)) {
- register_code(keycode);
- }
- send_keyboard_report();
- a_key_went_through = true;
- }
-}
-
-void key_out(int16_t keycode) {
- if (command_mode == 0) {
- if (!handle_US_ANSI_shifted_keys(keycode, false)) {
- if (command_mode == 0 && in_leader_mode == false && dynamic_macro_mode == false) {
- unregister_code(keycode);
- }
- }
- send_keyboard_report();
- }
-}
-
-void tap_key(int16_t keycode) {
- key_in(keycode);
- wait_ms(TAP_TIMEOUT);
- key_out(keycode);
-} \ No newline at end of file
diff --git a/users/dennytom/chording_engine/engine.part.2 b/users/dennytom/chording_engine/engine.part.2
deleted file mode 100644
index 91dcbb7503..0000000000
--- a/users/dennytom/chording_engine/engine.part.2
+++ /dev/null
@@ -1,323 +0,0 @@
-void single_dance(const struct Chord* self) {
- switch (*self->state) {
- case ACTIVATED:
- key_in(self->value1);
- break;
- case DEACTIVATED:
- key_out(self->value1);
- *self->state = IDLE;
- break;
- case RESTART:
- key_out(self->value1);
- break;
- default:
- break;
- }
-}
-
-void key_layer_dance(const struct Chord* self) {
- switch (*self->state) {
- case ACTIVATED:
- current_pseudolayer = self->value2;
- a_key_went_through = false;
- break;
- case DEACTIVATED:
- case RESTART:
- if (!a_key_went_through) {
- tap_key(self->value1);
- }
- current_pseudolayer = self->pseudolayer;
- *self->state = IDLE; // does not have effect if the state was RESTART
- break;
- default:
- break;
- }
-}
-
-void key_mod_dance(const struct Chord* self) {
- switch (*self->state) {
- case ACTIVATED:
- key_in(self->value2);
- a_key_went_through = false;
- break;
- case DEACTIVATED:
- case RESTART:
- key_out(self->value2);
- if (!a_key_went_through) {
- tap_key(self->value1);
- }
- *self->state = IDLE; // does not have effect if the state was RESTART
- break;
- default:
- break;
- }
-}
-
-void key_key_dance(const struct Chord* self) {
- switch (*self->state) {
- case ACTIVATED:
- break;
- case DEACTIVATED:
- tap_key(self->value1);
- *self->state = IDLE;
- break;
- case FINISHED:
- case PRESS_FROM_ACTIVE:
- key_in(self->value2);
- break;
- case RESTART:
- key_out(self->value2);
- break;
- default:
- break;
- }
-}
-
-void autoshift_dance_impl(const struct Chord* self) {
- switch (*self->state) {
- case ACTIVATED:
- *self->counter = 0;
- break;
- case DEACTIVATED:
- case RESTART:
- tap_key(self->value1);
- *self->state = IDLE;
- break;
- case FINISHED_FROM_ACTIVE:
- if (*self->counter == (LONG_PRESS_MULTIPLIER - 2)) {
- key_in(KC_LSFT);
- tap_key(self->value1);
- key_out(KC_LSFT);
- *self->state = IDLE;
- // the skip to IDLE is usually just a lag optimization,
- // in this case it has a logic function, on a short
- // press (still longer than a tap) the key does not get shifted
- } else {
- *self->counter += 1;
- *self->state = PRESS_FROM_ACTIVE;
- dance_timer = timer_read();
- }
- break;
- default:
- break;
- }
-}
-
-void autoshift_dance(const struct Chord* self) {
- if (autoshift_mode) {
- autoshift_dance_impl(self);
- } else {
- single_dance(self);
- }
-}
-
-void autoshift_toggle(const struct Chord* self){
- if (*self->state == ACTIVATED) {
- autoshift_mode = !autoshift_mode;
- *self->state = IDLE;
- }
-}
-
-void temp_pseudolayer(const struct Chord* self) {
- switch (*self->state) {
- case ACTIVATED:
- current_pseudolayer = self->value1;
- break;
- case DEACTIVATED:
- current_pseudolayer = self->pseudolayer;
- *self->state = IDLE;
- break;
- case RESTART:
- current_pseudolayer = self->pseudolayer;
- break;
- default:
- break;
- }
-}
-
-void temp_pseudolayer_alt(const struct Chord* self) {
- switch (*self->state) {
- case ACTIVATED:
- current_pseudolayer = self->value1;
- break;
- case DEACTIVATED:
- current_pseudolayer = self->value2;
- *self->state = IDLE;
- break;
- case RESTART:
- current_pseudolayer = self->value2;
- break;
- default:
- break;
- }
-}
-
-void perm_pseudolayer(const struct Chord* self) {
- if (*self->state == ACTIVATED) {
- current_pseudolayer = self->value1;
- *self->state = IDLE;
- }
-}
-
-void switch_layer(const struct Chord* self) {
- if (*self->state == ACTIVATED) {
- layer_move(self->value1);
- *self->state = IDLE;
- }
-}
-
-void lock(const struct Chord* self) {
- if (*self->state == ACTIVATED) {
- lock_next = true;
- *self->state = IDLE;
- }
-}
-
-void one_shot_key(const struct Chord* self) {
- switch (*self->state) {
- case ACTIVATED:
- break;
- case DEACTIVATED:
- key_in(self->value1);
- *self->state = IN_ONE_SHOT;
- break;
- case FINISHED:
- case PRESS_FROM_ACTIVE:
- key_in(self->value1);
- a_key_went_through = false;
- break;
- case RESTART:
- if (a_key_went_through) {
- key_out(self->value1);
- } else {
- *self->state = IN_ONE_SHOT;
- }
- default:
- break;
- }
-}
-
-void one_shot_layer(const struct Chord* self) {
- switch (*self->state) {
- case ACTIVATED:
- break;
- case DEACTIVATED:
- current_pseudolayer = self->value1;
- *self->state = IN_ONE_SHOT;
- break;
- case FINISHED:
- case PRESS_FROM_ACTIVE:
- current_pseudolayer = self->value1;
- a_key_went_through = false;
- break;
- case RESTART:
- if (a_key_went_through) {
- current_pseudolayer = self->pseudolayer;
- } else {
- *self->state = IN_ONE_SHOT;
- }
- default:
- break;
- }
-}
-
-void command(const struct Chord* self) {
- if (*self->state == ACTIVATED) {
- command_mode++;
- *self->state = IDLE;
- }
-}
-
-bool identical(uint16_t* buffer1, uint16_t* buffer2) {
- bool same = true;
- for (int i = 0; i < LEADER_MAX_LENGTH; i++) {
- same = same && (buffer1[i] == buffer2[i]);
- }
- return same;
-}
-
-void leader(const struct Chord* self) {
- if (*self->state == ACTIVATED) {
- in_leader_mode = true;
- *self->state = IDLE;
- }
-}
-
-void dynamic_macro_record(const struct Chord* self) {
- if (*self->state == ACTIVATED) {
- for (int i = 0; i < DYNAMIC_MACRO_MAX_LENGTH; i++) {
- dynamic_macro_buffer[i] = 0;
- }
- dynamic_macro_mode = true;
- *self->state = IDLE;
- }
-}
-
-void dynamic_macro_next(const struct Chord* self) {
- if (*self->state == ACTIVATED) {
- if (dynamic_macro_mode && dynamic_macro_ind < DYNAMIC_MACRO_MAX_LENGTH) {
- dynamic_macro_buffer[dynamic_macro_ind] = 0;
- dynamic_macro_ind++;
- }
- *self->state = IDLE;
- }
-}
-
-void dynamic_macro_end(const struct Chord* self) {
- if (*self->state == ACTIVATED) {
- if (dynamic_macro_mode) {
- dynamic_macro_mode = false;
- }
- *self->state = IDLE;
- }
-}
-
-void dynamic_macro_play(const struct Chord* self) {
- if (*self->state == ACTIVATED) {
- int ind_start = 0;
- while (ind_start < DYNAMIC_MACRO_MAX_LENGTH) {
- for (int i = ind_start; i < DYNAMIC_MACRO_MAX_LENGTH; i++) {
- if (dynamic_macro_buffer[i] == 0) {
- break;
- }
- register_code(dynamic_macro_buffer[i]);
- }
- send_keyboard_report();
- wait_ms(TAP_TIMEOUT);
- for (int i = ind_start; i < DYNAMIC_MACRO_MAX_LENGTH; i++) {
- if (dynamic_macro_buffer[i] == 0) {
- ind_start = i + 1;
- break;
- }
- unregister_code(dynamic_macro_buffer[i]);
- }
- send_keyboard_report();
- }
- *self->state = IDLE;
- }
-}
-
-void string_in(const struct Chord* self) {
- if (*self->state == ACTIVATED) {
- char buffer[STRING_MAX_LENGTH];
- strcpy_P(buffer, (char*)pgm_read_word(&(strings[self->value1])));
- send_string(buffer);
- }
-}
-
-void clear(const struct Chord* self);
-
-void reset_keyboard_kb(void){
-#ifdef WATCHDOG_ENABLE
- MCUSR = 0;
- wdt_disable();
- wdt_reset();
-#endif
- reset_keyboard();
-}
-
-void reset(const struct Chord* self) {
- if (*self->state == ACTIVATED) {
- reset_keyboard_kb();
- }
-}
diff --git a/users/dennytom/chording_engine/engine.part.3 b/users/dennytom/chording_engine/engine.part.3
deleted file mode 100644
index cf19008abc..0000000000
--- a/users/dennytom/chording_engine/engine.part.3
+++ /dev/null
@@ -1,404 +0,0 @@
-bool are_hashed_keycodes_in_sound(HASH_TYPE keycodes_hash, HASH_TYPE sound) {
- return (keycodes_hash & sound) == keycodes_hash;
-}
-
-uint8_t keycode_to_index(uint16_t keycode) {
- return keycode - FIRST_INTERNAL_KEYCODE;
-}
-
-void sound_keycode_array(uint16_t keycode) {
- uint8_t index = keycode_to_index(keycode);
- keycode_index++;
- keycodes_buffer_array[index] = keycode_index;
-}
-
-void silence_keycode_hash_array(HASH_TYPE keycode_hash) {
- for (int i = 0; i < NUMBER_OF_KEYS; i++) {
- bool index_in_hash = ((HASH_TYPE) 1 << i) & keycode_hash;
- if (index_in_hash) {
- uint8_t current_val = keycodes_buffer_array[i];
- keycodes_buffer_array[i] = 0;
- for (int j = 0; j < NUMBER_OF_KEYS; j++) {
- if (keycodes_buffer_array[j] > current_val) {
- keycodes_buffer_array[j]--;
- }
- }
- keycode_index--;
- }
- }
-}
-
-bool are_hashed_keycodes_in_array(HASH_TYPE keycode_hash) {
- for (int i = 0; i < NUMBER_OF_KEYS; i++) {
- bool index_in_hash = ((HASH_TYPE) 1 << i) & keycode_hash;
- bool index_in_array = (bool) keycodes_buffer_array[i];
- if (index_in_hash && !index_in_array) {
- return false;
- }
- }
- return true;
-}
-
-void kill_one_shots(void) {
- struct Chord chord_storage;
- struct Chord* chord_ptr;
- struct Chord* chord;
-
- for (int i = 0; i < NUMBER_OF_CHORDS; i++) {
- chord_ptr = (struct Chord*) pgm_read_word (&list_of_chords[i]);
- memcpy_P(&chord_storage, chord_ptr, sizeof(struct Chord));
- chord = &chord_storage;
-
- if (*chord->state == IN_ONE_SHOT) {
- *chord->state = RESTART;
- chord->function(chord);
- if (*chord->state == RESTART) {
- *chord->state = IDLE;
- }
- }
- }
-}
-
-void process_finished_dances(void) {
- struct Chord chord_storage;
- struct Chord* chord_ptr;
- struct Chord* chord;
-
- for (int i = 0; i < NUMBER_OF_CHORDS; i++) {
- chord_ptr = (struct Chord*) pgm_read_word (&list_of_chords[i]);
- memcpy_P(&chord_storage, chord_ptr, sizeof(struct Chord));
- chord = &chord_storage;
-
- if (*chord->state == ACTIVATED) {
- *chord->state = PRESS_FROM_ACTIVE;
- chord->function(chord);
- if (a_key_went_through) {
- kill_one_shots();
- }
- dance_timer = timer_read();
- } else if (*chord->state == IDLE_IN_DANCE) {
- *chord->state = FINISHED;
- chord->function(chord);
- if (*chord->state == FINISHED) {
- *chord->state = RESTART;
- if (*chord->state == RESTART) {
- *chord->state = IDLE;
- }
- }
- } else if (*chord->state == PRESS_FROM_ACTIVE) {
- *chord->state = FINISHED_FROM_ACTIVE;
- chord->function(chord);
- if (a_key_went_through) {
- kill_one_shots();
- }
- dance_timer = timer_read();
- }
- }
-}
-
-uint8_t keycodes_buffer_array_min(uint8_t* first_keycode_index) {
- for (int i = 0; i < NUMBER_OF_KEYS; i++) {
- if (keycodes_buffer_array[i] == 1) {
- if (first_keycode_index != NULL) {
- *first_keycode_index = (uint8_t) i;
- }
- return 1;
- }
- }
- return 0;
-}
-
-void remove_subchords(void) {
- struct Chord chord_storage;
- struct Chord* chord_ptr;
- struct Chord* chord;
-
- for (int i = 0; i < NUMBER_OF_CHORDS; i++) {
- chord_ptr = (struct Chord*) pgm_read_word (&list_of_chords[i]);
- memcpy_P(&chord_storage, chord_ptr, sizeof(struct Chord));
- chord = &chord_storage;
-
- if (!(*chord->state == READY || *chord->state == READY_IN_DANCE || *chord->state == READY_LOCKED)) {
- continue;
- }
-
- struct Chord chord_storage_2;
- struct Chord* chord_ptr_2;
- struct Chord* chord_2;
- for (int j = 0; j < NUMBER_OF_CHORDS; j++) {
- if (i == j) {continue;}
-
- chord_ptr_2 = (struct Chord*) pgm_read_word (&list_of_chords[j]);
- memcpy_P(&chord_storage_2, chord_ptr_2, sizeof(struct Chord));
- chord_2 = &chord_storage_2;
-
- if (are_hashed_keycodes_in_sound(chord_2->keycodes_hash, chord->keycodes_hash)) {
- if (*chord_2->state == READY) {
- *chord_2->state = IDLE;
- }
- if (*chord_2->state == READY_IN_DANCE) {
- *chord_2->state = IDLE_IN_DANCE;
- }
- if (*chord_2->state == READY_LOCKED) {
- *chord_2->state = LOCKED;
- }
- }
- }
- }
-}
-
-void process_ready_chords(void) {
- uint8_t first_keycode_index = 0;
- while (keycodes_buffer_array_min(&first_keycode_index)) {
- // find ready chords
- struct Chord chord_storage;
- struct Chord* chord_ptr;
- struct Chord* chord;
-
- for (int i = 0; i < NUMBER_OF_CHORDS; i++) {
- chord_ptr = (struct Chord*) pgm_read_word (&list_of_chords[i]);
- memcpy_P(&chord_storage, chord_ptr, sizeof(struct Chord));
- chord = &chord_storage;
-
- // if the chord does not contain the first keycode
- bool contains_first_keycode = ((uint32_t) 1 << first_keycode_index) & chord->keycodes_hash;
- if (!contains_first_keycode) {
- continue;
- }
-
- if (!are_hashed_keycodes_in_array(chord->keycodes_hash)){
- continue;
- }
-
- if (*chord->state == LOCKED) {
- *chord->state = READY_LOCKED;
- continue;
- }
-
- if (!(chord->pseudolayer == current_pseudolayer || chord->pseudolayer == ALWAYS_ON)) {
- continue;
- }
-
- if (*chord->state == IDLE) {
- *chord->state = READY;
- continue;
- }
-
- if (*chord->state == IDLE_IN_DANCE) {
- *chord->state = READY_IN_DANCE;
- }
- }
-
- // remove subchords
- remove_subchords();
-
- // execute logic
- // this should be only one chord
- for (int i = 0; i < NUMBER_OF_CHORDS; i++) {
- chord_ptr = (struct Chord*) pgm_read_word (&list_of_chords[i]);
- memcpy_P(&chord_storage, chord_ptr, sizeof(struct Chord));
- chord = &chord_storage;
-
- if (*chord->state == READY_LOCKED) {
- *chord->state = RESTART;
- chord->function(chord);
- if (*chord->state == RESTART) {
- *chord->state = IDLE;
- }
- break;
- }
-
- if (*chord->state == READY || *chord->state == READY_IN_DANCE) {
- if (last_chord && last_chord != chord) {
- process_finished_dances();
- }
-
- bool lock_next_prev_state = lock_next;
-
- *chord->state = ACTIVATED;
- chord->function(chord);
- dance_timer = timer_read();
-
- if (lock_next && lock_next == lock_next_prev_state) {
- lock_next = false;
- *chord->state = PRESS_FROM_ACTIVE;
- chord->function(chord);
- if (*chord->state == PRESS_FROM_ACTIVE) {
- *chord->state = LOCKED;
- }
- if (a_key_went_through) {
- kill_one_shots();
- }
- }
- break;
- }
- }
-
- // silence notes
- silence_keycode_hash_array(chord->keycodes_hash);
- }
-}
-
-void deactivate_active_chords(uint16_t keycode) {
- HASH_TYPE hash = (HASH_TYPE)1 << (keycode - SAFE_RANGE);
- bool broken;
- struct Chord chord_storage;
- struct Chord* chord_ptr;
- struct Chord* chord;
-
- for (int i = 0; i < NUMBER_OF_CHORDS; i++) {
- chord_ptr = (struct Chord*) pgm_read_word (&list_of_chords[i]);
- memcpy_P(&chord_storage, chord_ptr, sizeof(struct Chord));
- chord = &chord_storage;
-
- broken = are_hashed_keycodes_in_sound(hash, chord->keycodes_hash);
- if (!broken) {
- continue;
- }
-
- switch (*chord->state) {
- case ACTIVATED:
- *chord->state = DEACTIVATED;
- chord->function(chord);
-
- if (*chord->state == DEACTIVATED) {
- dance_timer = timer_read();
- *chord->state = IDLE_IN_DANCE;
- }
- if (*chord->state != IN_ONE_SHOT) {
- kill_one_shots();
- }
- break;
- case PRESS_FROM_ACTIVE:
- case FINISHED_FROM_ACTIVE:
- *chord->state = RESTART;
- chord->function(chord);
- if (*chord->state == RESTART) {
- *chord->state = IDLE;
- }
- kill_one_shots();
- break;
- default:
- break;
- }
- }
-
-}
-
-void process_command(void) {
- command_mode = 0;
- for (int i = 0; i < COMMAND_MAX_LENGTH; i++) {
- if (command_buffer[i]) {
- register_code(command_buffer[i]);
- }
- send_keyboard_report();
- }
- wait_ms(TAP_TIMEOUT);
- for (int i = 0; i < COMMAND_MAX_LENGTH; i++) {
- if (command_buffer[i]) {
- unregister_code(command_buffer[i]);
- }
- send_keyboard_report();
- }
- for (int i = 0; i < COMMAND_MAX_LENGTH; i++) {
- command_buffer[i] = 0;
- }
- command_ind = 0;
-}
-
-void process_leader(void) {
- in_leader_mode = false;
- for (int i = 0; i < NUMBER_OF_LEADER_COMBOS; i++) {
- uint16_t trigger[LEADER_MAX_LENGTH];
- memcpy_P(trigger, leader_triggers[i], LEADER_MAX_LENGTH * sizeof(uint16_t));
-
- if (identical(leader_buffer, trigger)) {
- (*leader_functions[i])();
- break;
- }
- }
- for (int i = 0; i < LEADER_MAX_LENGTH; i++) {
- leader_buffer[i] = 0;
- }
-}
-
-bool process_record_user(uint16_t keycode, keyrecord_t *record) {
- if (keycode < FIRST_INTERNAL_KEYCODE || keycode > LAST_INTERNAL_KEYCODE) {
- return true;
- }
-
- if (record->event.pressed) {
- sound_keycode_array(keycode);
- } else {
- process_ready_chords();
- deactivate_active_chords(keycode);
- }
- chord_timer = timer_read();
- leader_timer = timer_read();
-
- return false;
-}
-
-void matrix_scan_user(void) {
- bool chord_timer_expired = timer_elapsed(chord_timer) > CHORD_TIMEOUT;
- if (chord_timer_expired && keycodes_buffer_array_min(NULL)) {
- process_ready_chords();
- }
-
- bool dance_timer_expired = timer_elapsed(dance_timer) > DANCE_TIMEOUT;
- if (dance_timer_expired) { // would love to have && in_dance but not sure how
- process_finished_dances();
- }
-
- bool in_command_mode = command_mode == 2;
- if (in_command_mode) {
- process_command();
- }
-
- bool leader_timer_expired = timer_elapsed(leader_timer) > LEADER_TIMEOUT;
- if (leader_timer_expired && in_leader_mode) {
- process_leader();
- }
-
-}
-
-void clear(const struct Chord* self) {
- if (*self->state == ACTIVATED) {
- // kill all chords
- struct Chord chord_storage;
- struct Chord* chord_ptr;
- struct Chord* chord;
-
- for (int i = 0; i < NUMBER_OF_CHORDS; i++) {
- chord_ptr = (struct Chord*) pgm_read_word (&list_of_chords[i]);
- memcpy_P(&chord_storage, chord_ptr, sizeof(struct Chord));
- chord = &chord_storage;
-
- *chord->state = IDLE;
-
- if (chord->counter) {
- *chord->counter = 0;
- }
- }
-
- // clear keyboard
- clear_keyboard();
- send_keyboard_report();
-
- // switch to default pseudolayer
- current_pseudolayer = DEFAULT_PSEUDOLAYER;
-
- // clear all keyboard states
- lock_next = false;
- autoshift_mode = true;
- command_mode = 0;
- in_leader_mode = false;
- leader_ind = 0;
- dynamic_macro_mode = false;
- a_key_went_through = false;
-
- for (int i = 0; i < DYNAMIC_MACRO_MAX_LENGTH; i++) {
- dynamic_macro_buffer[i] = 0;
- }
- }
-} \ No newline at end of file
diff --git a/users/dennytom/chording_engine/keymap_def.schema.json b/users/dennytom/chording_engine/keymap_def.schema.json
deleted file mode 100644
index 9f9a8c5cbc..0000000000
--- a/users/dennytom/chording_engine/keymap_def.schema.json
+++ /dev/null
@@ -1,337 +0,0 @@
-{
- "definitions": {},
- "$schema": "http://json-schema.org/draft-07/schema#",
- "type": "object",
- "title": "The Keymap definition",
- "required": [
- "keys",
- "parameters",
- "layers",
- "chord_sets",
- "pseudolayers",
- "leader_sequences",
- "extra_code",
- "extra_dependencies"
- ],
- "properties": {
- "keys": {
- "type": "array",
- "title": "The Internal Keycodes",
- "description": "Name Keycodes for the Chording Engine. These can be any string except already valid QMK keycodes.",
- "items": {
- "type": "string",
- "title": "Individual Keycode",
- "examples": [
- "L1",
- "R1",
- "TOP1",
- "THUMB_3",
- "Bottom_6"
- ]
- }
- },
- "parameters": {
- "type": "object",
- "title": "Keyboard Parameters",
- "description": "Keyboard, user and layout specific parameters like timers, max length for buffers and default pseudolayer.",
- "required": [
- "layout_function_name",
- "chord_timeout",
- "dance_timeout",
- "leader_timeout",
- "tap_timeout",
- "command_max_length",
- "leader_max_length",
- "dynamic_macro_max_length",
- "string_max_length",
- "long_press_multiplier",
- "default_pseudolayer"
- ],
- "properties": {
- "layout_function_name": {
- "type": "string",
- "examples": [
- "LAYOUT_ginny",
- ""
- ]
- },
- "chord_timeout": {
- "type": "integer",
- "title": "The Chord Timeout",
- "description": "The time in ms you have to press additional keys before the engine assumes you finished pressing keys that are part of a chord.",
- "default": 100
- },
- "dance_timeout": {
- "type": "integer",
- "title": "The Dance Timeout",
- "description": "The time in ms you have to repeatedly activate a chord before the engine assumes you finished a dance.",
- "default": 200
- },
- "leader_timeout": {
- "type": "integer",
- "title": "The Leader Timeout",
- "description": "The time in ms you have to activate additional chords before the engine assumes you finished adding chords to a leader sequence.",
- "default": 750
- },
- "tap_timeout": {
- "type": "integer",
- "title": "The Tap Timeout",
- "description": "The time in ms you have to finish pressing a chord before the engine assumes that you didn't just tap it but are holding it down.",
- "default": 50
- },
- "command_max_length": {
- "type": "integer",
- "title": "Command Max Length",
- "description": "The maximum length for chords buffered in command mode.",
- "default": 5
- },
- "leader_max_length": {
- "type": "integer",
- "title": "Leader Max Length",
- "description": "The maximum length of leader sequences you can define in your keymap",
- "default": 5
- },
- "dynamic_macro_max_length": {
- "type": "integer",
- "title": "Dynamic Macro Max Length",
- "description": "The maximum number of chords (including Dynamic Macro Next) you can record to a Dynamic Macro",
- "default": 20
- },
- "string_max_length": {
- "type": "integer",
- "title": "String Max Length",
- "description": "The maximum length of a string that the STR() chord can accept.",
- "default": 16
- },
- "long_press_multiplier": {
- "type": "integer",
- "title": "Long Press Multiplier",
- "description": "How many times does the chord timer have expire before a chord is registered as not only held but in a long press (for example for Autoshift). Has to be integer.",
- "default": 3
- },
- "default_pseudolayer": {
- "type": "string",
- "title": "Default Pseudolayer",
- "description": "Which pseudolayer should be active when the keyboard starts / restarts.",
- "examples": [
- "BASE",
- "QWERTY"
- ]
- }
- }
- },
- "layers": {
- "type": "array",
- "title": "QMK Layers",
- "description": "The layers QMK needs to know about. Can contain chording engine's internal keycodes or QMK's keycodes. Do not define chords here, those belong in pseudolayers.",
- "minItems": 1,
- "uniqueItems": false,
- "items": {
- "type": "object",
- "title": "Individual Layers",
- "required": [
- "type"
- ],
- "properties": {
- "type": {
- "type": "string",
- "title": "Type of Individual Layers",
- "description": "Auto layer fills all keycodes to be chording engine's internal keycodes, manual let's you place internal and QMK's keycodes however you wish.",
- "examples": [
- "auto",
- "manual"
- ]
- },
- "keycodes": {
- "type": "array",
- "title": "Individual Chord",
- "description": "A list of of keys that need to be pressed to activate this chord",
- "items": {
- "type": "string",
- "title": "Individual Keycodes",
- "description": "A keycode that is a part of the individual chord. Has to be an internal keycode."
- }
- }
- }
- }
- },
- "chord_sets": {
- "type": "array",
- "title": "Chord Sets Definitions",
- "description": "Describes predefined sets of chords to ease defining a number of chords in a pseudolayer.",
- "items": {
- "type": "object",
- "required": [
- "name",
- "chords"
- ],
- "properties": {
- "name": {
- "type": "string",
- "title": "Name of the Set",
- "examples": [
- "rows",
- "asetniop"
- ]
- },
- "chords": {
- "type": "array",
- "title": "Chords",
- "description": "List of all chords in this set",
- "minItems": 1,
- "uniqueItems": true,
- "items": {
- "type": "array",
- "title": "Individual Chord",
- "description": "A list of of keys that need to be pressed to activate this chord",
- "items": {
- "type": "string",
- "title": "Individual Keycodes",
- "description": "A keycode that is a part of the individual chord. Has to be an internal keycode."
- }
- }
- }
- }
- }
- },
- "pseudolayers": {
- "type": "array",
- "title": "Pseudolayers",
- "description": "The pseudolayers holding the chords to be processed by the chording engine.",
- "minItems": 1,
- "uniqueItems": true,
- "items": {
- "type": "object",
- "required": [
- "name"
- ],
- "properties": {
- "name": {
- "type": "string",
- "title": "Name of the Pseudolayer",
- "default": null,
- "examples": [
- "ALWAYS_ON",
- "QWERTY"
- ]
- },
- "chords": {
- "type": "array",
- "title": "Chords",
- "description": "List of chords belonging on the pseudolayer.",
- "items": {
- "type": "object",
- "required": [
- "type"
- ],
- "properties": {
- "type": {
- "type": "string",
- "title": "Type of the chord array",
- "description": "Defines how this objects describes one or more chords.",
- "examples": [
- "visual_array",
- "visual",
- "simple",
- "chord_set"
- ]
- },
- "keys": {
- "type": "array",
- "title": "Subset of keys",
- "description": "Subset of internal keycodes that will be used when defining the chords. For visual_array type only.",
- "examples": [
- "[\"L1\", \"L2\", \"L3\", \"L4\", \"R1\", \"R2\", \"R3\", \"R4\"]"
- ],
- "items": {
- "type": "string"
- }
- },
- "dictionary": {
- "type": "array",
- "title": "Dictionary",
- "description": "A table. Each row defines in a visual way which keys have to be pressed and what is the desired outcome. For visual_array type only.",
- "items": {
- "type": "array",
- "items": {
- "type": "string",
- "examples": [
- "[\"X"\, \" "\, \" "\, \"X"\, \"X"\, \" "\, \" "\, \"X"\, \"MO(BASE, NUM)\"]
- ]
- }
- }
- },
- "keycode": {
- "type": "string",
- "title": "Keycode",
- "description": "A keycode to be assigned to the chord when it is registered. For simple and visual types only."
- },
- "set": {
- "type": "string",
- "title": "Chord set",
- "description": "Name of the chord set to be used. Has to be one already defined in the chord_sets array. For chord_set type only."
- },
- "keycodes": {
- "type": "array",
- "title": "Keycodes",
- "description": "List of keycodes to be assigned to each chord when it is registered. For set type only.",
- "items": {
- "type": "string"
- }
- },
- "chord": {
- "type": "array",
- "title": "Chord",
- "description": "Array of \"X\"'s and \" \"'s that shows which keys have to be pressed to activate the chord. For visual type only ",
- "items": {
- "type": "string"
- }
- }
- }
- }
- }
- }
- }
- },
- "leader_sequences": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "name": {
- "type": "string",
- "examples": ["fn_L1"]
- },
- "function": {
- "type": "string",
- "description": "C code the sequence should run. Instead of here, can be defined in extra_dependencies or extra_code",
- "examples": ["void fn_L1(void) { SEND(KC_LCTL); SEND(KC_LALT); SEND(KC_DEL); }"]
- },
- "sequence": {
- "type": "array",
- "items": {
- "type": "string"
- },
- "examples": [["KC_Q", "KC_Z"]]
- }
- }
- }
- },
- "extra_code": {
- "type": "string",
- "label": "Extra Code",
- "description": "C code to be inserted into the generated keymap",
- "examples": ["void fn_L1(void) {\n SEND(KC_LCTL);\n SEND(KC_LALT);\n SEND(KC_DEL);\n}\n"],
- "default": ""
- },
- "extra_dependencies": {
- "type": "array",
- "label": "Extra Dependencies",
- "description": "List of files to be #include'd in the generated keymap",
- "examples": [
- "[\"user_functions.c\"]"
- ],
- "default": ""
- }
- }
-} \ No newline at end of file
diff --git a/users/dennytom/chording_engine/parser.py b/users/dennytom/chording_engine/parser.py
deleted file mode 100644
index b62cf007e6..0000000000
--- a/users/dennytom/chording_engine/parser.py
+++ /dev/null
@@ -1,231 +0,0 @@
-#!/usr/bin/env python3
-
-import json
-from functools import reduce
-from chord import *
-import sys
-
-comma_separator = (lambda x, y: str(x) + ", " + str(y))
-string_sum = (lambda x, y: str(x) + " + " + str(y))
-newline_separator = (lambda x, y: str(x) + "\n" + str(y))
-
-def add_includes(data):
- output_buffer = ""
- if not ("do_not_include_QMK" in data["parameters"] and data["parameters"]["do_not_include_QMK"] == True):
- output_buffer += "#include QMK_KEYBOARD_H\n"
- if len(data["extra_dependencies"]) > 0:
- for dependecy in data["extra_dependencies"]:
- output_buffer += '#include "' + dependecy + '"\n'
-
- return output_buffer + "\n"
-
-def add_parameters(data):
- output_buffer = ""
-
- number_of_keys = len(data["keys"])
- if number_of_keys <= 8:
- hash_type = "uint8_t"
- elif number_of_keys <= 16:
- hash_type = "uint16_t"
- elif number_of_keys <= 32:
- hash_type = "uint32_t"
- elif number_of_keys <= 64:
- hash_type = "uint64_t"
- else:
- raise Exception("The engine currently supports only up to 64 keys.")
-
- output_buffer += "#define CHORD_TIMEOUT " + str(data["parameters"]["chord_timeout"]) + "\n"
- output_buffer += "#define DANCE_TIMEOUT " + str(data["parameters"]["dance_timeout"]) + "\n"
- output_buffer += "#define LEADER_TIMEOUT " + str(data["parameters"]["leader_timeout"]) + "\n"
- output_buffer += "#define TAP_TIMEOUT " + str(data["parameters"]["tap_timeout"]) + "\n"
- output_buffer += "#define LONG_PRESS_MULTIPLIER " + str(data["parameters"]["long_press_multiplier"]) + "\n"
- output_buffer += "#define DYNAMIC_MACRO_MAX_LENGTH " + str(data["parameters"]["dynamic_macro_max_length"]) + "\n"
- output_buffer += "#define COMMAND_MAX_LENGTH " + str(data["parameters"]["command_max_length"]) + "\n"
- output_buffer += "#define STRING_MAX_LENGTH " + str(data["parameters"]["string_max_length"]) + "\n"
- output_buffer += "#define LEADER_MAX_LENGTH " + str(data["parameters"]["leader_max_length"]) + "\n"
- output_buffer += "#define HASH_TYPE " + hash_type + "\n"
- output_buffer += "#define NUMBER_OF_KEYS " + str(len(data["keys"])) + "\n"
- output_buffer += "#define DEFAULT_PSEUDOLAYER " + data["parameters"]["default_pseudolayer"] + "\n"
-
- return output_buffer + "\n"
-
-def add_keycodes(data):
- output_buffer = ""
-
- if not len(data["keys"]) == len(set(data["keys"])):
- raise Exception("The keys must have unique names")
-
- for key, counter in zip(data["keys"], range(0, len(data["keys"]))):
- output_buffer += "#define H_" + key + " ((HASH_TYPE) 1 << " + str(counter) + ")\n"
- output_buffer += "\n"
-
- output_buffer += "enum internal_keycodes {\n"
- output_buffer += " " + data["keys"][0] + " = SAFE_RANGE,\n"
- output_buffer += " " + reduce(comma_separator, [key for key in data["keys"][1:]]) + ",\n"
- output_buffer += " FIRST_INTERNAL_KEYCODE = " + data["keys"][0] + ",\n"
- output_buffer += " LAST_INTERNAL_KEYCODE = " + data["keys"][-1] + "\n"
- output_buffer += "};\n"
-
- return output_buffer + "\n"
-
-def add_pseudolayers(data):
- output_buffer = ""
-
- if len(data["pseudolayers"]) == 0:
- raise Exception("You didn't define any pseudolayers")
-
- if not len([pseudolayer["name"] for pseudolayer in data["pseudolayers"]]) == len(set([pseudolayer["name"] for pseudolayer in data["pseudolayers"]])):
- raise Exception("The pseudolayers must have unique names")
-
- pseudolayers = data["pseudolayers"]
- if not "ALWAYS_ON" in [layer["name"] for layer in pseudolayers]:
- pseudolayers += [{"name": "ALWAYS_ON", "chords": []}] # the engine expects ALWAYS_ON to exist
-
- output_buffer += "enum pseudolayers {\n"
- output_buffer += " " + reduce(comma_separator, [layer["name"] for layer in pseudolayers]) + "\n"
- output_buffer += "};\n"
-
- return output_buffer + "\n"
-
-def add_layers(data):
- output_buffer = ""
-
- output_buffer += "const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {\n"
- for layer, counter in zip(data["layers"], range(0,len(data["layers"]))):
- if layer["type"] == "auto":
- output_buffer += " [" + str(counter) + "] = " + data["parameters"]["layout_function_name"] + "(" + reduce(comma_separator, [key for key in data["keys"]]) + "),\n"
- else:
- output_buffer += " [" + str(counter) + "] = " + data["parameters"]["layout_function_name"] + "(" + reduce(comma_separator, [key for key in layer["keycodes"]]) + "),\n"
- output_buffer += "};\n"
- output_buffer += "size_t keymapsCount = " + str(len(data["layers"])) + ";\n"
-
- return output_buffer + "\n"
-
-def prep_buffers(data):
- output_buffer = ""
-
- output_buffer += "uint8_t keycodes_buffer_array[] = {\n"
- output_buffer += " " + reduce(comma_separator, ["0"] * len(data["keys"])) + "\n"
- output_buffer += "};\n"
- output_buffer += "\n"
-
- output_buffer += "uint8_t command_buffer[] = {\n"
- output_buffer += " " + reduce(comma_separator, ["0"] * data["parameters"]["command_max_length"]) + "\n"
- output_buffer += "};\n"
- output_buffer += "\n"
-
- output_buffer += "uint16_t leader_buffer[] = {\n"
- output_buffer += " " + reduce(comma_separator, ["0"] * data["parameters"]["leader_max_length"]) + "\n"
- output_buffer += "};\n"
- output_buffer += "\n"
-
- output_buffer += "uint8_t dynamic_macro_buffer[] = {\n"
- output_buffer += " " + reduce(comma_separator, ["0"] * data["parameters"]["dynamic_macro_max_length"]) + "\n"
- output_buffer += "};"
-
- return output_buffer + "\n"
-
-def parse_keyboard_specifics(data):
- keyboard_part_0 = add_includes(data)
- keyboard_part_0 += add_keycodes(data)
- keyboard_part_0 += add_pseudolayers(data)
- keyboard_part_0 += add_parameters(data)
- keyboard_part_0 += add_layers(data)
- keyboard_part_0 += prep_buffers(data)
-
- return keyboard_part_0 + '\n'
-
-def parse_chords(data):
- keyboard_part_2 = ""
- strings = []
- number_of_strings = 0
- number_of_chords = 0
-
- for pseudolayer in data["pseudolayers"]:
- name = pseudolayer["name"]
- for chord in pseudolayer["chords"]:
- if chord["type"] == "chord_set":
- keycodes = reduce(comma_separator, [word for word in chord["keycodes"]])
- [keyboard_part_2, number_of_chords, number_of_strings, strings] = add_chord_set(name, keycodes, chord["set"], data, keyboard_part_2, number_of_chords, number_of_strings, strings)
- if chord["type"] == "visual_array":
- [keyboard_part_2, number_of_chords, number_of_strings, strings] = add_dictionary(name, chord["keys"], chord["dictionary"], keyboard_part_2, number_of_chords, number_of_strings, strings)
- if chord["type"] == "visual":
- keycodes = reduce(comma_separator, [word for word in chord["chord"]])
- [keyboard_part_2, number_of_chords, number_of_strings, strings] = secret_chord(name, chord["keycode"], keycodes, data, keyboard_part_2, number_of_chords, number_of_strings, strings)
- elif chord["type"] == "simple":
- keycodes = reduce(string_sum, ["H_" + word for word in chord["chord"]])
- [keyboard_part_2, number_of_chords, number_of_strings, strings] = add_key(name, keycodes, chord["keycode"], keyboard_part_2, number_of_chords, number_of_strings, strings)
- keyboard_part_2 += "\n"
-
- keyboard_part_2 += "const struct Chord* const list_of_chords[] PROGMEM = {\n"
- keyboard_part_2 += " " + reduce(comma_separator, ["&chord_" + str(i) for i in range(0, number_of_chords)]) + "\n"
- keyboard_part_2 += "};\n"
- keyboard_part_2 += "\n"
-
- if len(data["leader_sequences"]) > 0:
- keyboard_part_2 += reduce(newline_separator, [sequence["function"] for sequence in data["leader_sequences"]]) + "\n\n"
- keyboard_part_2 += "const uint16_t leader_triggers[][LEADER_MAX_LENGTH] PROGMEM = {\n"
- for sequence in data["leader_sequences"]:
- keyboard_part_2 += " {" + reduce(comma_separator, sequence["sequence"] + ["0"] * (data["parameters"]["leader_max_length"] - len(sequence["sequence"]))) + "},\n"
- keyboard_part_2 += "};\n\n"
- keyboard_part_2 += "void (*leader_functions[]) (void) = {\n"
- keyboard_part_2 += " " + reduce(comma_separator, ["&" + sequence["name"] for sequence in data["leader_sequences"]]) + "\n"
- keyboard_part_2 += "};\n"
- else:
- keyboard_part_2 += "const uint16_t** const leader_triggers PROGMEM = NULL;\n"
- keyboard_part_2 += "void (*leader_functions[]) (void) = {};\n"
- keyboard_part_2 += "\n"
-
- keyboard_part_2 += "#define NUMBER_OF_CHORDS " + str(number_of_chords) + "\n"
- keyboard_part_2 += "#define NUMBER_OF_LEADER_COMBOS " + str(len(data["leader_sequences"]))
-
- return keyboard_part_2 + "\n\n"
-
-def parse_strings_for_chords(data):
- keyboard_part_1 = ""
-
- for string, i in zip(strings, range(0, len(strings))):
- keyboard_part_1 += "const char string_" + str(i) + " [] PROGMEM = \"" + string + "\";\n"
-
- keyboard_part_1 += "\n"
- keyboard_part_1 += "const char * const strings[] PROGMEM = {\n"
- if len(strings) > 0:
- keyboard_part_1 += " " + reduce(comma_separator, ["string_" + str(i) for i in range(0, len(strings))])
- keyboard_part_1 += "\n};\n"
-
- return keyboard_part_1
-
-def main():
- if len(sys.argv) != 3:
- raise Exception("Wrong number of arguments.\n\nUsage: python parser.py keymap.json keymap.c")
-
- input_filepath = sys.argv[1]
- output_filepath = sys.argv[2]
-
- with open(input_filepath, "r") as read_file:
- data = json.load(read_file)
-
- keyboard_part_0 = parse_keyboard_specifics(data)
- keyboard_part_1 = parse_strings_for_chords(data)
- keyboard_part_2 = parse_chords(data)
-
- engine_part_1 = open("engine.part.1", "r").read()
- engine_part_2 = open("engine.part.2", "r").read() + "\n"
- engine_part_3 = open("engine.part.3", "r").read()
-
- output_buffer = keyboard_part_0
- output_buffer += engine_part_1
-
- if len(data["extra_code"]) > 0:
- output_buffer += data["extra_code"] + "\n"
-
- output_buffer += keyboard_part_1
- output_buffer += engine_part_2
- output_buffer += keyboard_part_2
- output_buffer += engine_part_3
-
- with open(output_filepath, "w") as write_file:
- write_file.write(output_buffer)
-
-if __name__ == "__main__":
- main() \ No newline at end of file
diff --git a/users/dennytom/chording_engine/state_machine.dot b/users/dennytom/chording_engine/state_machine.dot
deleted file mode 100644
index 431e6f69b6..0000000000
--- a/users/dennytom/chording_engine/state_machine.dot
+++ /dev/null
@@ -1,49 +0,0 @@
-digraph {
- IDLE
- READY
- ACTIVATED
- DEACTIVATED
- PRESS_FROM_ACTIVE
- FINISHED_FROM_ACTIVE
- IDLE_IN_DANCE
- READY_IN_DANCE
- FINISHED
- LOCKED
- READY_LOCKED
- RESTART
- IN_ONE_SHOT
-
- // common
- FINISHED -> RESTART;
- RESTART -> IDLE;
- DEACTIVATED -> IDLE_IN_DANCE;
-
- // kill_one_shots()
- IN_ONE_SHOT -> RESTART [label="non-one-shot key went through", color="blue"];
-
- // process_finished_dances()
- ACTIVATED -> PRESS_FROM_ACTIVE [label="dance timer", color="green"];
- IDLE_IN_DANCE -> FINISHED [label="dance timer", color="green"];
- PRESS_FROM_ACTIVE -> FINISHED_FROM_ACTIVE [label="dance timer", color="green"];
-
- // remove_subchords()
- READY -> IDLE [label="superchord active", color="red"];
- READY_IN_DANCE -> IDLE_IN_DANCE [label="superchord active", color="red"];
- READY_LOCKED -> LOCKED [label="superchord active", color="red"];
-
- // process_ready_chords()
- LOCKED -> READY_LOCKED [label="all keys pressed", color="orange"];
- IDLE -> READY [label="all keys pressed", color="orange"];
- IDLE_IN_DANCE -> READY_IN_DANCE [label="all keys pressed", color="orange"];
-
- READY_LOCKED -> RESTART [label="chord timer", color="orange"];
- READY -> ACTIVATED [label="chord timer", color="orange"];
- READY_IN_DANCE -> ACTIVATED [label="chord timer", color="orange"];
- ACTIVATED -> PRESS_FROM_ACTIVE [label="lock next", color="orange"];
- PRESS_FROM_ACTIVE -> LOCKED [label="lock next", color="orange"];
-
- // deactivate_active_chords()
- ACTIVATED -> DEACTIVATED [label="a key lifted", color="purple"];
- PRESS_FROM_ACTIVE -> RESTART [label="a key lifted", color="orange"];
- FINISHED_FROM_ACTIVE -> DEACTIVATED [label="a key lifted", color="orange"];
-} \ No newline at end of file
diff --git a/users/dennytom/chording_engine/state_machine.svg b/users/dennytom/chording_engine/state_machine.svg
deleted file mode 100644
index 7731689883..0000000000
--- a/users/dennytom/chording_engine/state_machine.svg
+++ /dev/null
@@ -1,235 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
- "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
-<!-- Generated by graphviz version 2.40.1 (20161225.0304)
- -->
-<!-- Title: %0 Pages: 1 -->
-<svg width="829pt" height="754pt"
- viewBox="0.00 0.00 829.35 754.40" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
-<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 750.4)">
-<title>%0</title>
-<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-750.4 825.3486,-750.4 825.3486,4 -4,4"/>
-<!-- IDLE -->
-<g id="node1" class="node">
-<title>IDLE</title>
-<ellipse fill="none" stroke="#000000" cx="492" cy="-728.4" rx="33.043" ry="18"/>
-<text text-anchor="middle" x="492" y="-724.2" font-family="Times,serif" font-size="14.00" fill="#000000">IDLE</text>
-</g>
-<!-- READY -->
-<g id="node2" class="node">
-<title>READY</title>
-<ellipse fill="none" stroke="#000000" cx="404" cy="-639.6" rx="44.0814" ry="18"/>
-<text text-anchor="middle" x="404" y="-635.4" font-family="Times,serif" font-size="14.00" fill="#000000">READY</text>
-</g>
-<!-- IDLE&#45;&gt;READY -->
-<g id="edge12" class="edge">
-<title>IDLE&#45;&gt;READY</title>
-<path fill="none" stroke="#ffa500" d="M487.6897,-710.0931C484.347,-699.0742 478.772,-685.3407 470,-675.6 463.1872,-668.0349 454.3989,-661.7377 445.4714,-656.6382"/>
-<polygon fill="#ffa500" stroke="#ffa500" points="447.0426,-653.5099 436.5654,-651.9352 443.7738,-659.6998 447.0426,-653.5099"/>
-<text text-anchor="middle" x="524.317" y="-679.8" font-family="Times,serif" font-size="14.00" fill="#000000">all keys pressed</text>
-</g>
-<!-- READY&#45;&gt;IDLE -->
-<g id="edge8" class="edge">
-<title>READY&#45;&gt;IDLE</title>
-<path fill="none" stroke="#ff0000" d="M383.1899,-655.7528C371.9777,-666.4401 362.0803,-680.6044 370.88,-692.4 380.5143,-705.3144 418.9714,-715.2612 450.0017,-721.3939"/>
-<polygon fill="#ff0000" stroke="#ff0000" points="449.7109,-724.9011 460.188,-723.3263 451.0156,-718.0238 449.7109,-724.9011"/>
-<text text-anchor="middle" x="420.56" y="-679.8" font-family="Times,serif" font-size="14.00" fill="#000000">superchord active</text>
-</g>
-<!-- ACTIVATED -->
-<g id="node3" class="node">
-<title>ACTIVATED</title>
-<ellipse fill="none" stroke="#000000" cx="404" cy="-550.8" rx="66.0512" ry="18"/>
-<text text-anchor="middle" x="404" y="-546.6" font-family="Times,serif" font-size="14.00" fill="#000000">ACTIVATED</text>
-</g>
-<!-- READY&#45;&gt;ACTIVATED -->
-<g id="edge15" class="edge">
-<title>READY&#45;&gt;ACTIVATED</title>
-<path fill="none" stroke="#ffa500" d="M404,-621.2006C404,-609.0949 404,-593.0076 404,-579.2674"/>
-<polygon fill="#ffa500" stroke="#ffa500" points="407.5001,-578.872 404,-568.872 400.5001,-578.8721 407.5001,-578.872"/>
-<text text-anchor="middle" x="436.4611" y="-591" font-family="Times,serif" font-size="14.00" fill="#000000">chord timer</text>
-</g>
-<!-- DEACTIVATED -->
-<g id="node4" class="node">
-<title>DEACTIVATED</title>
-<ellipse fill="none" stroke="#000000" cx="301" cy="-284.4" rx="79.2922" ry="18"/>
-<text text-anchor="middle" x="301" y="-280.2" font-family="Times,serif" font-size="14.00" fill="#000000">DEACTIVATED</text>
-</g>
-<!-- ACTIVATED&#45;&gt;DEACTIVATED -->
-<g id="edge19" class="edge">
-<title>ACTIVATED&#45;&gt;DEACTIVATED</title>
-<path fill="none" stroke="#a020f0" d="M414.457,-532.6765C417.1337,-527.1214 419.6389,-520.8699 421,-514.8 426.1765,-491.7151 456.5634,-425.2497 416,-355.2 402.3607,-331.646 377.4429,-314.8951 354.2805,-303.6207"/>
-<polygon fill="#a020f0" stroke="#a020f0" points="355.7259,-300.433 345.1798,-299.4173 352.7907,-306.7879 355.7259,-300.433"/>
-<text text-anchor="middle" x="468.4881" y="-413.4" font-family="Times,serif" font-size="14.00" fill="#000000">a key lifted</text>
-</g>
-<!-- PRESS_FROM_ACTIVE -->
-<g id="node5" class="node">
-<title>PRESS_FROM_ACTIVE</title>
-<ellipse fill="none" stroke="#000000" cx="279" cy="-462" rx="111.797" ry="18"/>
-<text text-anchor="middle" x="279" y="-457.8" font-family="Times,serif" font-size="14.00" fill="#000000">PRESS_FROM_ACTIVE</text>
-</g>
-<!-- ACTIVATED&#45;&gt;PRESS_FROM_ACTIVE -->
-<g id="edge5" class="edge">
-<title>ACTIVATED&#45;&gt;PRESS_FROM_ACTIVE</title>
-<path fill="none" stroke="#00ff00" d="M381.0189,-533.8085C363.6663,-521.0049 341.3076,-504.5706 332,-498 326.1999,-493.9054 319.9973,-489.6147 313.9535,-485.4802"/>
-<polygon fill="#00ff00" stroke="#00ff00" points="315.5139,-482.3085 305.2776,-479.5755 311.5753,-488.0954 315.5139,-482.3085"/>
-<text text-anchor="middle" x="387.8454" y="-502.2" font-family="Times,serif" font-size="14.00" fill="#000000">dance timer</text>
-</g>
-<!-- ACTIVATED&#45;&gt;PRESS_FROM_ACTIVE -->
-<g id="edge17" class="edge">
-<title>ACTIVATED&#45;&gt;PRESS_FROM_ACTIVE</title>
-<path fill="none" stroke="#ffa500" d="M346.8191,-541.6158C317.1162,-535.5544 285.1886,-526.5544 276.2896,-514.8 271.0903,-507.9325 270.0671,-499.0047 270.857,-490.45"/>
-<polygon fill="#ffa500" stroke="#ffa500" points="274.3462,-490.8071 272.5608,-480.3638 267.444,-489.6411 274.3462,-490.8071"/>
-<text text-anchor="middle" x="302.8552" y="-502.2" font-family="Times,serif" font-size="14.00" fill="#000000">lock next</text>
-</g>
-<!-- IDLE_IN_DANCE -->
-<g id="node7" class="node">
-<title>IDLE_IN_DANCE</title>
-<ellipse fill="none" stroke="#000000" cx="293" cy="-195.6" rx="86.2367" ry="18"/>
-<text text-anchor="middle" x="293" y="-191.4" font-family="Times,serif" font-size="14.00" fill="#000000">IDLE_IN_DANCE</text>
-</g>
-<!-- DEACTIVATED&#45;&gt;IDLE_IN_DANCE -->
-<g id="edge3" class="edge">
-<title>DEACTIVATED&#45;&gt;IDLE_IN_DANCE</title>
-<path fill="none" stroke="#000000" d="M299.3424,-266.0006C298.241,-253.775 296.7738,-237.4887 295.5279,-223.6599"/>
-<polygon fill="#000000" stroke="#000000" points="299.0114,-223.3176 294.6281,-213.672 292.0396,-223.9458 299.0114,-223.3176"/>
-</g>
-<!-- FINISHED_FROM_ACTIVE -->
-<g id="node6" class="node">
-<title>FINISHED_FROM_ACTIVE</title>
-<ellipse fill="none" stroke="#000000" cx="280" cy="-373.2" rx="127.3672" ry="18"/>
-<text text-anchor="middle" x="280" y="-369" font-family="Times,serif" font-size="14.00" fill="#000000">FINISHED_FROM_ACTIVE</text>
-</g>
-<!-- PRESS_FROM_ACTIVE&#45;&gt;FINISHED_FROM_ACTIVE -->
-<g id="edge7" class="edge">
-<title>PRESS_FROM_ACTIVE&#45;&gt;FINISHED_FROM_ACTIVE</title>
-<path fill="none" stroke="#00ff00" d="M279.2072,-443.6006C279.3435,-431.4949 279.5247,-415.4076 279.6794,-401.6674"/>
-<polygon fill="#00ff00" stroke="#00ff00" points="283.1836,-401.3108 279.7965,-391.272 276.184,-401.2319 283.1836,-401.3108"/>
-<text text-anchor="middle" x="312.8454" y="-413.4" font-family="Times,serif" font-size="14.00" fill="#000000">dance timer</text>
-</g>
-<!-- LOCKED -->
-<g id="node10" class="node">
-<title>LOCKED</title>
-<ellipse fill="none" stroke="#000000" cx="84" cy="-373.2" rx="50.38" ry="18"/>
-<text text-anchor="middle" x="84" y="-369" font-family="Times,serif" font-size="14.00" fill="#000000">LOCKED</text>
-</g>
-<!-- PRESS_FROM_ACTIVE&#45;&gt;LOCKED -->
-<g id="edge18" class="edge">
-<title>PRESS_FROM_ACTIVE&#45;&gt;LOCKED</title>
-<path fill="none" stroke="#ffa500" d="M241.402,-444.8785C207.8161,-429.584 158.7472,-407.2387 124.3482,-391.574"/>
-<polygon fill="#ffa500" stroke="#ffa500" points="125.6113,-388.3034 115.06,-387.3442 122.7102,-394.6739 125.6113,-388.3034"/>
-<text text-anchor="middle" x="224.8552" y="-413.4" font-family="Times,serif" font-size="14.00" fill="#000000">lock next</text>
-</g>
-<!-- RESTART -->
-<g id="node12" class="node">
-<title>RESTART</title>
-<ellipse fill="none" stroke="#000000" cx="201" cy="-18" rx="53.9098" ry="18"/>
-<text text-anchor="middle" x="201" y="-13.8" font-family="Times,serif" font-size="14.00" fill="#000000">RESTART</text>
-</g>
-<!-- PRESS_FROM_ACTIVE&#45;&gt;RESTART -->
-<g id="edge20" class="edge">
-<title>PRESS_FROM_ACTIVE&#45;&gt;RESTART</title>
-<path fill="none" stroke="#ffa500" d="M190.3393,-450.9993C108.6441,-438.3099 0,-413.8018 0,-373.2 0,-373.2 0,-373.2 0,-106.8 0,-74.7037 86.8374,-46.4364 146.3579,-30.8311"/>
-<polygon fill="#ffa500" stroke="#ffa500" points="147.578,-34.1313 156.3916,-28.2515 145.835,-27.3517 147.578,-34.1313"/>
-<text text-anchor="middle" x="31.4881" y="-235.8" font-family="Times,serif" font-size="14.00" fill="#000000">a key lifted</text>
-</g>
-<!-- FINISHED_FROM_ACTIVE&#45;&gt;DEACTIVATED -->
-<g id="edge21" class="edge">
-<title>FINISHED_FROM_ACTIVE&#45;&gt;DEACTIVATED</title>
-<path fill="none" stroke="#ffa500" d="M284.3512,-354.8006C287.2424,-342.575 291.0939,-326.2887 294.3642,-312.4599"/>
-<polygon fill="#ffa500" stroke="#ffa500" points="297.8308,-313.0091 296.7262,-302.472 291.0187,-311.3981 297.8308,-313.0091"/>
-<text text-anchor="middle" x="324.4881" y="-324.6" font-family="Times,serif" font-size="14.00" fill="#000000">a key lifted</text>
-</g>
-<!-- READY_IN_DANCE -->
-<g id="node8" class="node">
-<title>READY_IN_DANCE</title>
-<ellipse fill="none" stroke="#000000" cx="402" cy="-106.8" rx="97.2741" ry="18"/>
-<text text-anchor="middle" x="402" y="-102.6" font-family="Times,serif" font-size="14.00" fill="#000000">READY_IN_DANCE</text>
-</g>
-<!-- IDLE_IN_DANCE&#45;&gt;READY_IN_DANCE -->
-<g id="edge13" class="edge">
-<title>IDLE_IN_DANCE&#45;&gt;READY_IN_DANCE</title>
-<path fill="none" stroke="#ffa500" d="M285.2465,-177.3414C281.8879,-166.3406 280.1649,-152.6093 287.366,-142.8 292.9374,-135.2107 308.8319,-128.4976 327.077,-122.9864"/>
-<polygon fill="#ffa500" stroke="#ffa500" points="328.1338,-126.3246 336.79,-120.2157 326.2135,-119.5932 328.1338,-126.3246"/>
-<text text-anchor="middle" x="332.317" y="-147" font-family="Times,serif" font-size="14.00" fill="#000000">all keys pressed</text>
-</g>
-<!-- FINISHED -->
-<g id="node9" class="node">
-<title>FINISHED</title>
-<ellipse fill="none" stroke="#000000" cx="201" cy="-106.8" rx="55.0323" ry="18"/>
-<text text-anchor="middle" x="201" y="-102.6" font-family="Times,serif" font-size="14.00" fill="#000000">FINISHED</text>
-</g>
-<!-- IDLE_IN_DANCE&#45;&gt;FINISHED -->
-<g id="edge6" class="edge">
-<title>IDLE_IN_DANCE&#45;&gt;FINISHED</title>
-<path fill="none" stroke="#00ff00" d="M231.9976,-182.6889C220.3684,-177.4272 209.5756,-170.022 202.3092,-159.6 197.3878,-152.5413 195.8986,-143.5625 195.9866,-135.0199"/>
-<polygon fill="#00ff00" stroke="#00ff00" points="199.4821,-135.2114 196.7515,-124.9745 192.5023,-134.6799 199.4821,-135.2114"/>
-<text text-anchor="middle" x="235.8454" y="-147" font-family="Times,serif" font-size="14.00" fill="#000000">dance timer</text>
-</g>
-<!-- READY_IN_DANCE&#45;&gt;ACTIVATED -->
-<g id="edge16" class="edge">
-<title>READY_IN_DANCE&#45;&gt;ACTIVATED</title>
-<path fill="none" stroke="#ffa500" d="M460.9306,-121.2262C473.3432,-126.4214 485.5301,-133.4169 495,-142.8 512.9398,-160.5753 516,-170.3454 516,-195.6 516,-462 516,-462 516,-462 516,-495.4749 484.8997,-518.3284 455.476,-532.4591"/>
-<polygon fill="#ffa500" stroke="#ffa500" points="453.6869,-529.4272 446.0233,-536.7429 456.5764,-535.803 453.6869,-529.4272"/>
-<text text-anchor="middle" x="548.4611" y="-324.6" font-family="Times,serif" font-size="14.00" fill="#000000">chord timer</text>
-</g>
-<!-- READY_IN_DANCE&#45;&gt;IDLE_IN_DANCE -->
-<g id="edge9" class="edge">
-<title>READY_IN_DANCE&#45;&gt;IDLE_IN_DANCE</title>
-<path fill="none" stroke="#ff0000" d="M398.1917,-124.942C395.0071,-136.1761 389.421,-150.2021 380,-159.6 372.9696,-166.6132 364.3766,-172.3251 355.3586,-176.9585"/>
-<polygon fill="#ff0000" stroke="#ff0000" points="353.8046,-173.8215 346.241,-181.2406 356.7803,-180.1575 353.8046,-173.8215"/>
-<text text-anchor="middle" x="441.56" y="-147" font-family="Times,serif" font-size="14.00" fill="#000000">superchord active</text>
-</g>
-<!-- FINISHED&#45;&gt;RESTART -->
-<g id="edge1" class="edge">
-<title>FINISHED&#45;&gt;RESTART</title>
-<path fill="none" stroke="#000000" d="M201,-88.4006C201,-76.2949 201,-60.2076 201,-46.4674"/>
-<polygon fill="#000000" stroke="#000000" points="204.5001,-46.072 201,-36.072 197.5001,-46.0721 204.5001,-46.072"/>
-</g>
-<!-- READY_LOCKED -->
-<g id="node11" class="node">
-<title>READY_LOCKED</title>
-<ellipse fill="none" stroke="#000000" cx="116" cy="-284.4" rx="88.0442" ry="18"/>
-<text text-anchor="middle" x="116" y="-280.2" font-family="Times,serif" font-size="14.00" fill="#000000">READY_LOCKED</text>
-</g>
-<!-- LOCKED&#45;&gt;READY_LOCKED -->
-<g id="edge11" class="edge">
-<title>LOCKED&#45;&gt;READY_LOCKED</title>
-<path fill="none" stroke="#ffa500" d="M62.8266,-356.7262C52.2277,-346.3972 43.0571,-332.745 50.366,-320.4 53.6683,-314.8223 58.175,-310.0516 63.2916,-305.985"/>
-<polygon fill="#ffa500" stroke="#ffa500" points="65.4987,-308.7148 71.7485,-300.1596 61.5278,-302.9501 65.4987,-308.7148"/>
-<text text-anchor="middle" x="95.317" y="-324.6" font-family="Times,serif" font-size="14.00" fill="#000000">all keys pressed</text>
-</g>
-<!-- READY_LOCKED&#45;&gt;LOCKED -->
-<g id="edge10" class="edge">
-<title>READY_LOCKED&#45;&gt;LOCKED</title>
-<path fill="none" stroke="#ff0000" d="M134.3377,-302.181C142.7003,-312.508 149.4503,-325.708 143,-337.2 139.1182,-344.1159 133.3081,-349.8603 126.8241,-354.5772"/>
-<polygon fill="#ff0000" stroke="#ff0000" points="124.8745,-351.6695 118.3451,-360.0132 128.6526,-357.5624 124.8745,-351.6695"/>
-<text text-anchor="middle" x="195.56" y="-324.6" font-family="Times,serif" font-size="14.00" fill="#000000">superchord active</text>
-</g>
-<!-- READY_LOCKED&#45;&gt;RESTART -->
-<g id="edge14" class="edge">
-<title>READY_LOCKED&#45;&gt;RESTART</title>
-<path fill="none" stroke="#ffa500" d="M114.0574,-266.3175C111.0132,-230.457 108.1435,-148.6335 137,-88.8 145.6041,-70.9596 160.1275,-54.343 173.1661,-41.6972"/>
-<polygon fill="#ffa500" stroke="#ffa500" points="175.702,-44.1178 180.6155,-34.7312 170.9209,-39.0049 175.702,-44.1178"/>
-<text text-anchor="middle" x="152.4611" y="-147" font-family="Times,serif" font-size="14.00" fill="#000000">chord timer</text>
-</g>
-<!-- RESTART&#45;&gt;IDLE -->
-<g id="edge2" class="edge">
-<title>RESTART&#45;&gt;IDLE</title>
-<path fill="none" stroke="#000000" d="M251.8307,-24.1482C358.5139,-37.7418 596,-71.9196 596,-106.8 596,-639.6 596,-639.6 596,-639.6 596,-665.1965 591.0323,-674.2337 573,-692.4 561.7252,-703.7586 546.243,-711.8298 531.8327,-717.4099"/>
-<polygon fill="#000000" stroke="#000000" points="530.3349,-714.2281 522.0925,-720.8849 532.6871,-720.8211 530.3349,-714.2281"/>
-</g>
-<!-- IN_ONE_SHOT -->
-<g id="node13" class="node">
-<title>IN_ONE_SHOT</title>
-<ellipse fill="none" stroke="#000000" cx="700" cy="-106.8" rx="75.8643" ry="18"/>
-<text text-anchor="middle" x="700" y="-102.6" font-family="Times,serif" font-size="14.00" fill="#000000">IN_ONE_SHOT</text>
-</g>
-<!-- IN_ONE_SHOT&#45;&gt;RESTART -->
-<g id="edge4" class="edge">
-<title>IN_ONE_SHOT&#45;&gt;RESTART</title>
-<path fill="none" stroke="#0000ff" d="M676.9312,-89.3704C659.5151,-77.2164 634.5042,-61.8271 610,-54 547.5343,-34.0473 363.5933,-24.1795 265.053,-20.2067"/>
-<polygon fill="#0000ff" stroke="#0000ff" points="265.0515,-16.704 254.9213,-19.8069 264.7755,-23.6986 265.0515,-16.704"/>
-<text text-anchor="middle" x="733.6743" y="-58.2" font-family="Times,serif" font-size="14.00" fill="#000000">non&#45;one&#45;shot key went through</text>
-</g>
-</g>
-</svg>
diff --git a/users/dennytom/chording_engine/tests/minunit.h b/users/dennytom/chording_engine/tests/minunit.h
deleted file mode 100644
index d3f51bfb4f..0000000000
--- a/users/dennytom/chording_engine/tests/minunit.h
+++ /dev/null
@@ -1,288 +0,0 @@
-#define mu_assert(message, test) \
- do { \
- if (!(test)) { \
- return message; \
- } \
- } while (0)
-
-#define RED "\033[0;31m"
-#define GREEN "\033[0;32m"
-#define NC "\033[0m"
-
-enum ASSERT_TYPES {
- UINT,
- INT
-};
-
-#define BUFF_SIZE 1024
-char buffer[BUFF_SIZE];
-
-#define ASSERT_EQ(type, actual, expected) \
- do { \
- if (actual != expected) { \
- switch (type) { \
- case UINT: \
- snprintf(buffer, BUFF_SIZE, "\nline %d\nvar %s\nactual = %u\nexpected = %u\n", __LINE__, #actual, actual, expected); \
- break; \
- case INT: \
- snprintf(buffer, BUFF_SIZE, "\nline %d\nvar %s\nactual = %d\nexpected = %d\n", __LINE__, #actual, actual, expected); \
- break; \
- default: \
- snprintf(buffer, BUFF_SIZE, "\nline %d\nunsupported ASSERT_EQ type\n", __LINE__); \
- break; \
- } \
- printf("%s\n", buffer); \
- passed = false; \
- all_passed = false; \
- } \
- } while (0)
-
-#include <stdio.h>
-#include <stdint.h>
-#include <stddef.h>
-#include <stdbool.h>
-#include <string.h>
-
-#define MATRIX_ROWS 2
-#define MATRIX_COLS 10
-#define LAYOUT_test( \
- k09, k08, k07, k06, k05, k04, k03, k02, k01, k00, \
- k19, k18, k17, k16, k15, k14, k13, k12, k11, k10 \
-) { \
- { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09}, \
- { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19}, \
-}
-
-#define PROGMEM
-#define memcpy_P memcpy
-const struct Chord* pgm_read_word(const struct Chord* const* chord) {return *chord;}
-
-typedef struct {
- uint8_t col;
- uint8_t row;
-} keypos_t;
-
-typedef struct {
- keypos_t key;
- bool pressed;
- uint16_t time;
-} keyevent_t;
-
-typedef struct {
- bool interrupted :1;
- bool reserved2 :1;
- bool reserved1 :1;
- bool reserved0 :1;
- uint8_t count :4;
-} tap_t;
-
-typedef struct {
- keyevent_t event;
- tap_t tap;
-} keyrecord_t;
-
-keyrecord_t pressed = {{{0,0},true,0}, {0,0,0,0,0}};
-keyrecord_t depressed = {{{0,0},false,0}, {0,0,0,0,0}};
-
-enum keycodes {
- KC_NO,
- KC_TILDE,
- KC_GRAVE,
- KC_EXCLAIM,
- KC_1,
- KC_AT,
- KC_2,
- KC_HASH,
- KC_3,
- KC_DOLLAR,
- KC_4,
- KC_PERCENT,
- KC_5,
- KC_CIRCUMFLEX,
- KC_6,
- KC_AMPERSAND,
- KC_7,
- KC_ASTERISK,
- KC_8,
- KC_LEFT_PAREN,
- KC_9,
- KC_RIGHT_PAREN,
- KC_0,
- KC_UNDERSCORE,
- KC_MINUS,
- KC_PLUS,
- KC_EQUAL,
- KC_LEFT_CURLY_BRACE,
- KC_LEFT_BRACKET,
- KC_RIGHT_CURLY_BRACE,
- KC_RIGHT_BRACKET,
- KC_PIPE,
- KC_BACKSLASH,
- KC_COLON,
- KC_SEMICOLON,
- KC_DOUBLE_QUOTE,
- KC_QUOTE,
- KC_LEFT_ANGLE_BRACKET,
- KC_COMMA,
- KC_RIGHT_ANGLE_BRACKET,
- KC_DOT,
- KC_QUESTION,
- KC_SLASH,
- 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_Z,
- KC_X,
- KC_C,
- KC_V,
- KC_B,
- KC_N,
- KC_M,
- KC_ESC,
- KC_LSFT,
- KC_LCTL,
- KC_LGUI,
- KC_LALT,
- KC_RALT,
- KC_RCTL,
- KC_RGUI,
- KC_RSFT,
- KC_TAB,
- KC_DEL,
- KC_INS,
- KC_BSPC,
- KC_ENTER,
- KC_SPACE,
- 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_LEFT,
- KC_DOWN,
- KC_UP,
- KC_RIGHT,
-
- SAFE_RANGE
-};
-
-#define HISTORY 20
-
-int16_t current_time;
-uint8_t keyboard_history[HISTORY][SAFE_RANGE-1];
-int16_t time_history[HISTORY];
-uint8_t history_index;
-
-void register_code(int16_t keycode) {
- history_index++;
- for (int j = 0; j < SAFE_RANGE-1; j++) {
- keyboard_history[history_index][j] = keyboard_history[history_index-1][j];
- }
- keyboard_history[history_index][keycode] = 1;
- time_history[history_index] = current_time;
-};
-void unregister_code(int16_t keycode) {
- history_index++;
- for (int j = 0; j < SAFE_RANGE-1; j++) {
- keyboard_history[history_index][j] = keyboard_history[history_index-1][j];
- }
- keyboard_history[history_index][keycode] = 0;
- time_history[history_index] = current_time;
-};
-void send_keyboard_report(void) { /*still don't know what this does*/ };
-void matrix_scan_user (void);
-void wait_ms(uint16_t ms) {
- current_time += ms;
-};
-uint16_t timer_read(void) {
- uint16_t result = current_time;
- return result;
-};
-uint16_t timer_elapsed(uint16_t timer) {
- uint16_t result = current_time - timer;
- return result;
-};
-void layer_move(int16_t layer) { /*ignoring for now*/ };
-void clear_keyboard(void) {
- history_index++;
- for (int j = 0; j < SAFE_RANGE-1; j++) {
- keyboard_history[history_index][j] = 0;
- }
- time_history[history_index] = current_time;
-};
-void reset_keyboard(void) { /*ignoring for now*/ };
-
-void pause_ms(uint16_t ms) {
- for (int i = 0; i < ms; i++) {
- current_time++;
- matrix_scan_user();
- }
-};
-
-#define TEST(name) \
- do { \
- printf("%s\n", name); \
- passed = true; \
- do { \
- uint8_t clear_state = ACTIVATED; \
- struct Chord clear_chord PROGMEM = {0, QWERTY, &clear_state, NULL, 0, 0, clear}; \
- clear_chord.function(&clear_chord); \
- } while (0); \
- current_time = 0; \
- history_index = 0; \
- for (int j = 0; j < SAFE_RANGE-1; j++) { \
- keyboard_history[0][j] = 0; \
- } \
- time_history[0] = 0; \
- for (int i = 1; i < HISTORY; i++) { \
- for (int j = 0; j < SAFE_RANGE-1; j++) { \
- keyboard_history[i][j] = -1; \
- } \
- time_history[i] = -1; \
- }
-
-#define END_TEST \
- if (passed) { \
- printf(GREEN"PASSED"NC"\n"); \
- } else { \
- printf(RED"FAILED"NC"\n"); \
- } \
- } while(0);
-
-#define MAIN \
-int main(int argc, char **argv) { \
- bool passed = true; \
- bool all_passed = true;
-
-#define END \
- printf("\n"); \
- if (all_passed) { \
- printf(GREEN"ALL TESTS PASSED"NC"\n"); \
- } else { \
- printf(RED"TESTS FAILED"NC"\n"); \
- } \
- return 1 - all_passed; \
-} \ No newline at end of file
diff --git a/users/dennytom/chording_engine/tests/test.c b/users/dennytom/chording_engine/tests/test.c
deleted file mode 100644
index 0cc172f0a8..0000000000
--- a/users/dennytom/chording_engine/tests/test.c
+++ /dev/null
@@ -1,1259 +0,0 @@
-#include "minunit.h"
-#include "test_keymap.c"
-
-MAIN
-
-// CLEAR_KB
-TEST("clear")
- for (int i = 0; i < NUMBER_OF_CHORDS; i++) {
- struct Chord* chord_ptr = (struct Chord*) pgm_read_word (&list_of_chords[i]);
- struct Chord chord_storage;
- memcpy_P(&chord_storage, chord_ptr, sizeof(struct Chord));
- struct Chord* chord = &chord_storage;
-
- *chord->state = READY;
-
- if (chord->counter) {
- *chord->counter = 1;
- }
- }
-
- history_index++;
- for (int j = 0; j < SAFE_RANGE-1; j++) {
- keyboard_history[history_index][j] = 1;
- }
-
- current_pseudolayer = 5;
- lock_next = true;
- autoshift_mode = false;
- command_mode = 1;
- in_leader_mode = true;
- dynamic_macro_mode = true;
- a_key_went_through = true;
-
- for (int i = 0; i < DYNAMIC_MACRO_MAX_LENGTH; i++) {
- dynamic_macro_buffer[i] = 1;
- }
-
- uint8_t clear_state = ACTIVATED;
- struct Chord clear_chord PROGMEM = {0, QWERTY, &clear_state, NULL, 0, 0, clear};
- clear_chord.function(&clear_chord);
-
- for (int i = 0; i < NUMBER_OF_CHORDS; i++) {
- struct Chord* chord_ptr = (struct Chord*) pgm_read_word (&list_of_chords[i]);
- struct Chord chord_storage;
- memcpy_P(&chord_storage, chord_ptr, sizeof(struct Chord));
- struct Chord* chord = &chord_storage;
-
- ASSERT_EQ(UINT, *chord->state, IDLE);
-
- if (chord->counter) {
- ASSERT_EQ(UINT, *chord->counter, 0);
- }
- }
-
- for (int j = 0; j < SAFE_RANGE-1; j++) {
- ASSERT_EQ(UINT, keyboard_history[history_index][j], 0);
- }
-
- ASSERT_EQ(UINT, current_pseudolayer, 1);
- ASSERT_EQ(UINT, lock_next, false);
- ASSERT_EQ(UINT, autoshift_mode, true);
- ASSERT_EQ(UINT, command_mode, 0);
- ASSERT_EQ(UINT, in_leader_mode, false);
- ASSERT_EQ(UINT, leader_ind, 0);
- ASSERT_EQ(UINT, dynamic_macro_mode, false);
- ASSERT_EQ(UINT, a_key_went_through, false);
-
- for (int i = 0; i < DYNAMIC_MACRO_MAX_LENGTH; i++) {
- ASSERT_EQ(UINT, dynamic_macro_buffer[i], 0);
- }
-END_TEST
-
-TEST("pause_ms")
- pause_ms(500);
- ASSERT_EQ(UINT, current_time, 500);
-END_TEST
-
-// KC
-TEST("single_dance_held_states")
- ASSERT_EQ(UINT, state_1, IDLE);
- process_record_user(TOP1, &pressed);
- pause_ms(CHORD_TIMEOUT);
- ASSERT_EQ(UINT, state_1, IDLE);
- pause_ms(1);
- ASSERT_EQ(UINT, state_1, ACTIVATED);
- pause_ms(DANCE_TIMEOUT);
- ASSERT_EQ(UINT, state_1, ACTIVATED);
- pause_ms(1);
- ASSERT_EQ(UINT, state_1, PRESS_FROM_ACTIVE);
- pause_ms(DANCE_TIMEOUT);
- ASSERT_EQ(UINT, state_1, PRESS_FROM_ACTIVE);
- pause_ms(1);
- ASSERT_EQ(UINT, state_1, FINISHED_FROM_ACTIVE);
- process_record_user(TOP1, &depressed);
- ASSERT_EQ(UINT, state_1, IDLE);
-END_TEST
-
-TEST("single_dance_held_codes")
- ASSERT_EQ(UINT, keyboard_history[history_index][KC_Q], 0);
- process_record_user(TOP1, &pressed);
- pause_ms(CHORD_TIMEOUT);
- ASSERT_EQ(UINT, keyboard_history[history_index][KC_Q], 0);
- pause_ms(1);
- ASSERT_EQ(UINT, keyboard_history[history_index][KC_Q], 1);
- pause_ms(DANCE_TIMEOUT);
- ASSERT_EQ(UINT, keyboard_history[history_index][KC_Q], 1);
- pause_ms(1);
- ASSERT_EQ(UINT, keyboard_history[history_index][KC_Q], 1);
- pause_ms(DANCE_TIMEOUT);
- ASSERT_EQ(UINT, keyboard_history[history_index][KC_Q], 1);
- pause_ms(1);
- ASSERT_EQ(UINT, keyboard_history[history_index][KC_Q], 1);
- process_record_user(TOP1, &depressed);
- ASSERT_EQ(UINT, keyboard_history[history_index][KC_Q], 0);
-END_TEST
-
-TEST("single_dance_tapped_states")
- ASSERT_EQ(UINT, state_1, IDLE);
- process_record_user(TOP1, &pressed);
- pause_ms(CHORD_TIMEOUT);
- ASSERT_EQ(UINT, state_1, IDLE);
- pause_ms(1);
- ASSERT_EQ(UINT, state_1, ACTIVATED);
- process_record_user(TOP1, &depressed);
- ASSERT_EQ(UINT, state_1, IDLE);
-END_TEST
-
-TEST("single_dance_tapped_codes")
- ASSERT_EQ(UINT, keyboard_history[history_index][KC_Q], 0);
- process_record_user(TOP1, &pressed);
- pause_ms(CHORD_TIMEOUT);
- ASSERT_EQ(UINT, keyboard_history[history_index][KC_Q], 0);
- pause_ms(1);
- ASSERT_EQ(UINT, keyboard_history[history_index][KC_Q], 1);
- process_record_user(TOP1, &depressed);
- ASSERT_EQ(UINT, keyboard_history[history_index][KC_Q], 0);
-END_TEST
-
-// I can not actually track the states if the tap is faster than chord timeout
-
-TEST("single_dance_tapped_fast_codes")
- ASSERT_EQ(UINT, state_0, IDLE);
- process_record_user(TOP1, &pressed);
- pause_ms(1);
- process_record_user(TOP1, &depressed);
- ASSERT_EQ(UINT, keyboard_history[0][KC_Q], 0);
- ASSERT_EQ(UINT, keyboard_history[1][KC_Q], 1);
- ASSERT_EQ(UINT, keyboard_history[2][KC_Q], 0);
-END_TEST
-
-TEST("subchords_are_ignored")
- ASSERT_EQ(UINT, state_0, IDLE);
- process_record_user(TOP1, &pressed);
- pause_ms(1);
- process_record_user(TOP2, &pressed);
- pause_ms(CHORD_TIMEOUT + 1);
- ASSERT_EQ(UINT, keyboard_history[history_index][KC_Q], 0);
- ASSERT_EQ(UINT, keyboard_history[history_index][KC_W], 0);
- ASSERT_EQ(UINT, keyboard_history[history_index][KC_ESC], 1);
-END_TEST
-
-TEST("multiple_chords_at_once")
- ASSERT_EQ(UINT, state_0, IDLE);
- process_record_user(TOP1, &pressed);
- pause_ms(1);
- process_record_user(TOP3, &pressed);
- pause_ms(CHORD_TIMEOUT + 1);
- ASSERT_EQ(UINT, keyboard_history[history_index][KC_Q], 1);
- ASSERT_EQ(UINT, keyboard_history[history_index][KC_E], 1);
-END_TEST
-
-// MO
-TEST("momentary_layer")
- ASSERT_EQ(UINT, current_pseudolayer, QWERTY);
- process_record_user(BOT7, &pressed);
- pause_ms(1);
- process_record_user(BOT8, &pressed);
- pause_ms(CHORD_TIMEOUT + 1);
- ASSERT_EQ(UINT, current_pseudolayer, NUM);
- process_record_user(BOT7, &depressed);
- pause_ms(1);
- process_record_user(BOT8, &depressed);
- ASSERT_EQ(UINT, current_pseudolayer, QWERTY);
-END_TEST
-
-TEST("momentary_layer_reset")
- ASSERT_EQ(UINT, current_pseudolayer, QWERTY);
- process_record_user(BOT7, &pressed);
- pause_ms(1);
- process_record_user(BOT8, &pressed);
- pause_ms(CHORD_TIMEOUT + 1);
- ASSERT_EQ(UINT, current_pseudolayer, NUM);
- pause_ms(DANCE_TIMEOUT + 1);
- ASSERT_EQ(UINT, current_pseudolayer, NUM);
- process_record_user(BOT7, &depressed);
- pause_ms(1);
- process_record_user(BOT8, &depressed);
- ASSERT_EQ(UINT, current_pseudolayer, QWERTY);
-END_TEST
-
-TEST("momentary_layer_alt")
- ASSERT_EQ(UINT, current_pseudolayer, QWERTY);
-
- process_record_user(TOP8, &pressed);
- pause_ms(1);
- process_record_user(TOP9, &pressed);
- pause_ms(1);
- process_record_user(TOP0, &pressed);
- pause_ms(1);
- process_record_user(BOT8, &pressed);
- pause_ms(1);
- process_record_user(BOT9, &pressed);
- pause_ms(1);
- process_record_user(BOT0, &pressed);
- pause_ms(CHORD_TIMEOUT + 1);
-
- ASSERT_EQ(UINT, current_pseudolayer, NUM);
-
- process_record_user(TOP8, &depressed);
- pause_ms(1);
- process_record_user(TOP9, &depressed);
- pause_ms(1);
- process_record_user(TOP0, &depressed);
- pause_ms(1);
- process_record_user(BOT8, &depressed);
- pause_ms(1);
- process_record_user(BOT9, &depressed);
- pause_ms(1);
- process_record_user(BOT0, &depressed);
-
- ASSERT_EQ(UINT, current_pseudolayer, FNC);
-END_TEST
-
-// DF
-TEST("permanent_layer")
- ASSERT_EQ(UINT, current_pseudolayer, QWERTY);
- process_record_user(BOT9, &pressed);
- pause_ms(1);
- process_record_user(BOT0, &pressed);
- pause_ms(CHORD_TIMEOUT + 1);
- ASSERT_EQ(UINT, current_pseudolayer, NUM);
- process_record_user(BOT9, &depressed);
- pause_ms(1);
- process_record_user(BOT0, &depressed);
- ASSERT_EQ(UINT, current_pseudolayer, NUM);
- pause_ms(1000);
- ASSERT_EQ(UINT, current_pseudolayer, NUM);
-END_TEST
-
-// AT
-TEST("autoshift_toggle")
- ASSERT_EQ(UINT, autoshift_mode, 1);
- uint8_t state = ACTIVATED;
- struct Chord chord PROGMEM = {0, QWERTY, &state, NULL, 0, 0, autoshift_toggle};
- chord.function(&chord);
- ASSERT_EQ(UINT, autoshift_mode, 0);
- state = ACTIVATED;
- chord.function(&chord);
- ASSERT_EQ(UINT, autoshift_mode, 1);
-END_TEST
-
-// AS
-TEST("autoshift_tap")
- process_record_user(BOT1, &pressed);
- pause_ms(CHORD_TIMEOUT + 1);
- process_record_user(BOT1, &depressed);
-
- ASSERT_EQ(UINT, keyboard_history[0][KC_Z], 0);
- ASSERT_EQ(UINT, keyboard_history[0][KC_LSFT], 0);
-
- ASSERT_EQ(UINT, keyboard_history[1][KC_Z], 1);
- ASSERT_EQ(UINT, keyboard_history[1][KC_LSFT], 0);
-
- ASSERT_EQ(UINT, keyboard_history[2][KC_Z], 0);
- ASSERT_EQ(UINT, keyboard_history[2][KC_LSFT], 0);
-END_TEST
-
-TEST("autoshift_hold")
- process_record_user(BOT1, &pressed);
- pause_ms(CHORD_TIMEOUT + 1);
- pause_ms(LONG_PRESS_MULTIPLIER * (DANCE_TIMEOUT + 1));
- process_record_user(BOT1, &depressed);
-
- ASSERT_EQ(UINT, keyboard_history[0][KC_Z], 0);
- ASSERT_EQ(UINT, keyboard_history[0][KC_LSFT], 0);
-
- ASSERT_EQ(UINT, keyboard_history[1][KC_Z], 0);
- ASSERT_EQ(UINT, keyboard_history[1][KC_LSFT], 1);
-
- ASSERT_EQ(UINT, keyboard_history[2][KC_Z], 1);
- ASSERT_EQ(UINT, keyboard_history[2][KC_LSFT], 1);
-
- ASSERT_EQ(UINT, keyboard_history[3][KC_Z], 0);
- ASSERT_EQ(UINT, keyboard_history[3][KC_LSFT], 1);
-
- ASSERT_EQ(UINT, keyboard_history[4][KC_Z], 0);
- ASSERT_EQ(UINT, keyboard_history[4][KC_LSFT], 0);
-END_TEST
-
-TEST("autoshift_hold_off")
- autoshift_mode = 0;
- process_record_user(BOT1, &pressed);
- pause_ms(CHORD_TIMEOUT + 1);
- pause_ms(LONG_PRESS_MULTIPLIER * (DANCE_TIMEOUT + 1));
- process_record_user(BOT1, &depressed);
-
- ASSERT_EQ(UINT, keyboard_history[0][KC_Z], 0);
- ASSERT_EQ(UINT, keyboard_history[0][KC_LSFT], 0);
-
- ASSERT_EQ(UINT, keyboard_history[1][KC_Z], 1);
- ASSERT_EQ(UINT, keyboard_history[1][KC_LSFT], 0);
-
- ASSERT_EQ(UINT, keyboard_history[2][KC_Z], 0);
- ASSERT_EQ(UINT, keyboard_history[2][KC_LSFT], 0);
-END_TEST
-
-// LOCK
-TEST("lock")
- ASSERT_EQ(UINT, keyboard_history[history_index][KC_LSFT], 0);
- process_record_user(BOT1, &pressed);
- process_record_user(BOT2, &pressed);
- pause_ms(CHORD_TIMEOUT + 1);
- ASSERT_EQ(UINT, keyboard_history[history_index][KC_LSFT], 1);
- process_record_user(BOT1, &depressed);
- ASSERT_EQ(UINT, keyboard_history[history_index][KC_LSFT], 0);
- pause_ms(1);
- process_record_user(BOT2, &depressed);
- pause_ms(1);
- process_record_user(TOP1, &pressed);
- process_record_user(TOP2, &pressed);
- process_record_user(BOT1, &pressed);
- process_record_user(BOT2, &pressed);
- pause_ms(CHORD_TIMEOUT + 1);
- process_record_user(TOP1, &depressed);
- pause_ms(1);
- process_record_user(TOP2, &depressed);
- process_record_user(BOT1, &depressed);
- process_record_user(BOT2, &depressed);
- pause_ms(1);
- process_record_user(BOT1, &pressed);
- process_record_user(BOT2, &pressed);
- pause_ms(CHORD_TIMEOUT + 1);
- ASSERT_EQ(UINT, keyboard_history[history_index][KC_LSFT], 1);
- process_record_user(BOT1, &depressed);
- ASSERT_EQ(UINT, keyboard_history[history_index][KC_LSFT], 1);
- pause_ms(1);
- process_record_user(BOT2, &depressed);
- pause_ms(1000);
- process_record_user(BOT1, &pressed);
- process_record_user(BOT2, &pressed);
- pause_ms(CHORD_TIMEOUT + 1);
- ASSERT_EQ(UINT, keyboard_history[history_index][KC_LSFT], 0);
- process_record_user(BOT1, &depressed);
- pause_ms(1);
- process_record_user(BOT2, &depressed);
- pause_ms(1000);
- ASSERT_EQ(UINT, keyboard_history[history_index][KC_LSFT], 0);
-END_TEST
-
-// OSK
-TEST("one_shot_key_tap")
- ASSERT_EQ(UINT, keyboard_history[history_index][KC_LSFT], 0);
- process_record_user(BOT2, &pressed);
- process_record_user(BOT3, &pressed);
- pause_ms(CHORD_TIMEOUT + 1);
- ASSERT_EQ(UINT, keyboard_history[history_index][KC_LSFT], 0);
- process_record_user(BOT2, &depressed);
- pause_ms(1);
- process_record_user(BOT3, &depressed);
- ASSERT_EQ(UINT, keyboard_history[history_index][KC_LSFT], 1);
- pause_ms(1000);
- ASSERT_EQ(UINT, keyboard_history[history_index][KC_LSFT], 1);
-
- process_record_user(TOP1, &pressed);
- pause_ms(CHORD_TIMEOUT + 1);
- process_record_user(TOP1, &depressed);
- ASSERT_EQ(UINT, keyboard_history[history_index][KC_LSFT], 0);
-END_TEST
-
-TEST("one_shot_key_hold")
- ASSERT_EQ(UINT, keyboard_history[history_index][KC_LSFT], 0);
- process_record_user(BOT2, &pressed);
- process_record_user(BOT3, &pressed);
- pause_ms(CHORD_TIMEOUT + 1);
- pause_ms(DANCE_TIMEOUT + 1);
- ASSERT_EQ(UINT, keyboard_history[history_index][KC_LSFT], 1);
-
- process_record_user(TOP1, &pressed);
- pause_ms(CHORD_TIMEOUT + 1);
- process_record_user(TOP1, &depressed);
- ASSERT_EQ(UINT, keyboard_history[history_index][KC_LSFT], 1);
-
- process_record_user(BOT2, &depressed);
- ASSERT_EQ(UINT, keyboard_history[history_index][KC_LSFT], 0);
-END_TEST
-
-TEST("one_shot_key_retrotapping")
- ASSERT_EQ(UINT, keyboard_history[history_index][KC_LSFT], 0);
- process_record_user(BOT2, &pressed);
- process_record_user(BOT3, &pressed);
- pause_ms(CHORD_TIMEOUT + 1);
- pause_ms(DANCE_TIMEOUT + 1);
- ASSERT_EQ(UINT, keyboard_history[history_index][KC_LSFT], 1);
-
- pause_ms(1000);
-
- process_record_user(BOT2, &depressed);
- ASSERT_EQ(UINT, keyboard_history[history_index][KC_LSFT], 1);
-END_TEST
-
-// OSL
-TEST("one_shot_layer_tap")
- ASSERT_EQ(UINT, current_pseudolayer, QWERTY);
- process_record_user(BOT6, &pressed);
- process_record_user(BOT7, &pressed);
- pause_ms(CHORD_TIMEOUT + 1);
- ASSERT_EQ(UINT, current_pseudolayer, QWERTY);
- process_record_user(BOT6, &depressed);
- pause_ms(1);
- process_record_user(BOT7, &depressed);
- ASSERT_EQ(UINT, current_pseudolayer, NUM);
- pause_ms(1000);
- ASSERT_EQ(UINT, current_pseudolayer, NUM);
-
- process_record_user(TOP1, &pressed);
- pause_ms(CHORD_TIMEOUT + 1);
- process_record_user(TOP1, &depressed);
- ASSERT_EQ(UINT, current_pseudolayer, QWERTY);
-END_TEST
-
-TEST("one_shot_layer_hold")
- ASSERT_EQ(UINT, current_pseudolayer, QWERTY);
- process_record_user(BOT6, &pressed);
- process_record_user(BOT7, &pressed);
- pause_ms(CHORD_TIMEOUT + 1);
- pause_ms(DANCE_TIMEOUT + 1);
- ASSERT_EQ(UINT, current_pseudolayer, NUM);
-
- process_record_user(TOP1, &pressed);
- pause_ms(CHORD_TIMEOUT + 1);
- process_record_user(TOP1, &depressed);
- ASSERT_EQ(UINT, current_pseudolayer, NUM);
-
- process_record_user(BOT6, &depressed);
- ASSERT_EQ(UINT, current_pseudolayer, QWERTY);
-END_TEST
-
-TEST("one_shot_layer_retrotapping")
- ASSERT_EQ(UINT, current_pseudolayer, QWERTY);
- process_record_user(BOT6, &pressed);
- process_record_user(BOT7, &pressed);
- pause_ms(CHORD_TIMEOUT + 1);
- pause_ms(DANCE_TIMEOUT + 1);
- ASSERT_EQ(UINT, current_pseudolayer, NUM);
-
- pause_ms(1000);
-
- process_record_user(BOT6, &depressed);
- ASSERT_EQ(UINT, current_pseudolayer, NUM);
-END_TEST
-
-// CMD
-TEST("command_mode")
- // start recording
- process_record_user(TOP5, &pressed);
- process_record_user(TOP6, &pressed);
- process_record_user(BOT5, &pressed);
- process_record_user(BOT6, &pressed);
- pause_ms(1);
- process_record_user(TOP5, &depressed);
- process_record_user(TOP6, &depressed);
- process_record_user(BOT5, &depressed);
- process_record_user(BOT6, &depressed);
-
- ASSERT_EQ(UINT, command_mode, 1);
-
- // record shift+q
- process_record_user(BOT1, &pressed);
- process_record_user(BOT2, &pressed);
- pause_ms(CHORD_TIMEOUT + 1);
- ASSERT_EQ(UINT, keyboard_history[history_index][KC_Q], 0);
- ASSERT_EQ(UINT, keyboard_history[history_index][KC_LSFT], 0);
- process_record_user(BOT1, &depressed);
- process_record_user(BOT2, &depressed);
- pause_ms(1000);
-
- process_record_user(TOP1, &pressed);
- pause_ms(CHORD_TIMEOUT + 1);
- ASSERT_EQ(UINT, keyboard_history[history_index][KC_Q], 0);
- ASSERT_EQ(UINT, keyboard_history[history_index][KC_LSFT], 0);
- process_record_user(TOP1, &depressed);
- pause_ms(1000);
-
-
- ASSERT_EQ(UINT, keyboard_history[history_index][KC_Q], 0);
- ASSERT_EQ(UINT, keyboard_history[history_index][KC_LSFT], 0);
- // execute
- process_record_user(TOP5, &pressed);
- process_record_user(TOP6, &pressed);
- process_record_user(BOT5, &pressed);
- process_record_user(BOT6, &pressed);
- pause_ms(CHORD_TIMEOUT + 1);
-
- ASSERT_EQ(UINT, command_mode, 0);
-
- // test history
- ASSERT_EQ(UINT, keyboard_history[0][KC_Q], 0);
- ASSERT_EQ(UINT, keyboard_history[0][KC_LSFT], 0);
-
- ASSERT_EQ(UINT, keyboard_history[1][KC_Q], 0);
- ASSERT_EQ(UINT, keyboard_history[1][KC_LSFT], 1);
-
- ASSERT_EQ(UINT, keyboard_history[2][KC_Q], 1);
- ASSERT_EQ(UINT, keyboard_history[2][KC_LSFT], 1);
-
- ASSERT_EQ(UINT, keyboard_history[3][KC_Q], 1);
- ASSERT_EQ(UINT, keyboard_history[3][KC_LSFT], 0);
-
- ASSERT_EQ(UINT, keyboard_history[4][KC_Q], 0);
- ASSERT_EQ(UINT, keyboard_history[4][KC_LSFT], 0);
-
- ASSERT_EQ(UINT, keyboard_history[5][KC_Q], 255);
- ASSERT_EQ(UINT, keyboard_history[5][KC_LSFT], 255);
-END_TEST
-
-// KK
-TEST("key_key_dance_tap")
- process_record_user(BOT2, &pressed);
- pause_ms(CHORD_TIMEOUT + 1);
- process_record_user(BOT2, &depressed);
-
- ASSERT_EQ(UINT, keyboard_history[0][KC_X], 0);
- ASSERT_EQ(UINT, keyboard_history[0][KC_LCTL], 0);
-
- ASSERT_EQ(UINT, keyboard_history[1][KC_X], 1);
- ASSERT_EQ(UINT, keyboard_history[1][KC_LCTL], 0);
-
- ASSERT_EQ(UINT, keyboard_history[2][KC_X], 0);
- ASSERT_EQ(UINT, keyboard_history[2][KC_LCTL], 0);
-END_TEST
-
-TEST("key_key_dance_hold")
- process_record_user(BOT2, &pressed);
- pause_ms(CHORD_TIMEOUT + 1);
- pause_ms(DANCE_TIMEOUT + 1);
- process_record_user(BOT2, &depressed);
-
- ASSERT_EQ(UINT, keyboard_history[0][KC_X], 0);
- ASSERT_EQ(UINT, keyboard_history[0][KC_LCTL], 0);
-
- ASSERT_EQ(UINT, keyboard_history[1][KC_X], 0);
- ASSERT_EQ(UINT, keyboard_history[1][KC_LCTL], 1);
-
- ASSERT_EQ(UINT, keyboard_history[2][KC_X], 0);
- ASSERT_EQ(UINT, keyboard_history[2][KC_LCTL], 0);
-END_TEST
-
-// KL
-TEST("key_layer_tap")
- ASSERT_EQ(UINT, current_pseudolayer, QWERTY);
- process_record_user(BOT3, &pressed);
- pause_ms(CHORD_TIMEOUT + 1);
- ASSERT_EQ(UINT, current_pseudolayer, NUM);
- process_record_user(BOT3, &depressed);
- ASSERT_EQ(UINT, current_pseudolayer, QWERTY);
- pause_ms(1000);
-
- ASSERT_EQ(UINT, keyboard_history[0][KC_C], 0);
- ASSERT_EQ(UINT, keyboard_history[1][KC_C], 1);
- ASSERT_EQ(UINT, keyboard_history[2][KC_C], 0);
- ASSERT_EQ(UINT, keyboard_history[3][KC_C], 255);
-END_TEST
-
-TEST("key_layer_retrotapping")
- ASSERT_EQ(UINT, current_pseudolayer, QWERTY);
- process_record_user(BOT3, &pressed);
- pause_ms(1000);
- ASSERT_EQ(UINT, current_pseudolayer, NUM);
- process_record_user(BOT3, &depressed);
- ASSERT_EQ(UINT, current_pseudolayer, QWERTY);
- pause_ms(1000);
-
- ASSERT_EQ(UINT, keyboard_history[0][KC_C], 0);
- ASSERT_EQ(UINT, keyboard_history[1][KC_C], 1);
- ASSERT_EQ(UINT, keyboard_history[2][KC_C], 0);
- ASSERT_EQ(UINT, keyboard_history[3][KC_C], 255);
-END_TEST
-
-TEST("key_layer_hold_quick_typist")
- ASSERT_EQ(UINT, current_pseudolayer, QWERTY);
- process_record_user(BOT3, &pressed);
- pause_ms(CHORD_TIMEOUT + 1);
- ASSERT_EQ(UINT, current_pseudolayer, NUM);
-
- pause_ms(1);
- process_record_user(TOP1, &pressed);
- pause_ms(1);
- process_record_user(TOP1, &depressed);
- pause_ms(1);
- process_record_user(TOP1, &pressed);
- pause_ms(1);
- process_record_user(TOP1, &depressed);
- pause_ms(1);
- process_record_user(TOP1, &pressed);
- pause_ms(1);
- process_record_user(TOP1, &depressed);
- ASSERT_EQ(UINT, current_pseudolayer, NUM);
- pause_ms(1);
-
- process_record_user(BOT3, &depressed);
- ASSERT_EQ(UINT, current_pseudolayer, QWERTY);
-
- ASSERT_EQ(UINT, keyboard_history[0][KC_1], 0);
- ASSERT_EQ(UINT, keyboard_history[1][KC_1], 1);
- ASSERT_EQ(UINT, keyboard_history[2][KC_1], 0);
- ASSERT_EQ(UINT, keyboard_history[3][KC_1], 1);
- ASSERT_EQ(UINT, keyboard_history[4][KC_1], 0);
- ASSERT_EQ(UINT, keyboard_history[5][KC_1], 1);
- ASSERT_EQ(UINT, keyboard_history[6][KC_1], 0);
- ASSERT_EQ(UINT, keyboard_history[7][KC_1], 255);
-END_TEST
-
-TEST("key_layer_hold_slow_typist")
- ASSERT_EQ(UINT, current_pseudolayer, QWERTY);
- process_record_user(BOT3, &pressed);
- pause_ms(CHORD_TIMEOUT + 1);
- ASSERT_EQ(UINT, current_pseudolayer, NUM);
-
- pause_ms(1000);
- process_record_user(TOP1, &pressed);
- pause_ms(1000);
- process_record_user(TOP1, &depressed);
- pause_ms(1000);
- process_record_user(TOP1, &pressed);
- pause_ms(1000);
- process_record_user(TOP1, &depressed);
- pause_ms(1000);
- process_record_user(TOP1, &pressed);
- pause_ms(1000);
- process_record_user(TOP1, &depressed);
- ASSERT_EQ(UINT, current_pseudolayer, NUM);
- pause_ms(1);
-
- process_record_user(BOT3, &depressed);
- ASSERT_EQ(UINT, current_pseudolayer, QWERTY);
-
- ASSERT_EQ(UINT, keyboard_history[0][KC_1], 0);
- ASSERT_EQ(UINT, keyboard_history[1][KC_1], 1);
- ASSERT_EQ(UINT, keyboard_history[2][KC_1], 0);
- ASSERT_EQ(UINT, keyboard_history[3][KC_1], 1);
- ASSERT_EQ(UINT, keyboard_history[4][KC_1], 0);
- ASSERT_EQ(UINT, keyboard_history[5][KC_1], 1);
- ASSERT_EQ(UINT, keyboard_history[6][KC_1], 0);
- ASSERT_EQ(UINT, keyboard_history[7][KC_1], 255);
-END_TEST
-
-// KM
-TEST("key_mod_tap")
- ASSERT_EQ(UINT, keyboard_history[0][KC_LALT], 0);
- ASSERT_EQ(UINT, keyboard_history[0][KC_V], 0);
- process_record_user(BOT4, &pressed);
- pause_ms(CHORD_TIMEOUT + 1);
- ASSERT_EQ(UINT, keyboard_history[1][KC_LALT], 1);
- ASSERT_EQ(UINT, keyboard_history[1][KC_V], 0);
- process_record_user(BOT4, &depressed);
- ASSERT_EQ(UINT, keyboard_history[2][KC_LALT], 0);
- ASSERT_EQ(UINT, keyboard_history[2][KC_V], 0);
- pause_ms(1000);
-
- ASSERT_EQ(UINT, keyboard_history[3][KC_LALT], 0);
- ASSERT_EQ(UINT, keyboard_history[3][KC_V], 1);
- ASSERT_EQ(UINT, keyboard_history[4][KC_LALT], 0);
- ASSERT_EQ(UINT, keyboard_history[4][KC_V], 0);
- ASSERT_EQ(UINT, keyboard_history[5][KC_LALT], 255);
- ASSERT_EQ(UINT, keyboard_history[5][KC_V], 255);
-END_TEST
-
-TEST("key_mod_retrotapping")
- ASSERT_EQ(UINT, keyboard_history[0][KC_LALT], 0);
- ASSERT_EQ(UINT, keyboard_history[0][KC_V], 0);
- process_record_user(BOT4, &pressed);
- pause_ms(1000);
- ASSERT_EQ(UINT, keyboard_history[1][KC_LALT], 1);
- ASSERT_EQ(UINT, keyboard_history[1][KC_V], 0);
- process_record_user(BOT4, &depressed);
- ASSERT_EQ(UINT, keyboard_history[2][KC_LALT], 0);
- ASSERT_EQ(UINT, keyboard_history[2][KC_V], 0);
- pause_ms(1000);
-
- ASSERT_EQ(UINT, keyboard_history[3][KC_LALT], 0);
- ASSERT_EQ(UINT, keyboard_history[3][KC_V], 1);
- ASSERT_EQ(UINT, keyboard_history[4][KC_LALT], 0);
- ASSERT_EQ(UINT, keyboard_history[4][KC_V], 0);
- ASSERT_EQ(UINT, keyboard_history[5][KC_LALT], 255);
- ASSERT_EQ(UINT, keyboard_history[5][KC_V], 255);
-END_TEST
-
-TEST("key_mod_hold_quick_typist")
- process_record_user(BOT4, &pressed);
- pause_ms(CHORD_TIMEOUT + 1);
-
- pause_ms(1);
- process_record_user(TOP1, &pressed);
- pause_ms(1);
- process_record_user(TOP1, &depressed);
- pause_ms(1);
- process_record_user(TOP1, &pressed);
- pause_ms(1);
- process_record_user(TOP1, &depressed);
- pause_ms(1);
- process_record_user(TOP1, &pressed);
- pause_ms(1);
- process_record_user(TOP1, &depressed);
- pause_ms(1);
-
- process_record_user(BOT4, &depressed);
- ASSERT_EQ(UINT, current_pseudolayer, QWERTY);
-
- ASSERT_EQ(UINT, keyboard_history[0][KC_LALT], 0);
- ASSERT_EQ(UINT, keyboard_history[0][KC_V], 0);
- ASSERT_EQ(UINT, keyboard_history[1][KC_LALT], 1);
- ASSERT_EQ(UINT, keyboard_history[1][KC_V], 0);
- ASSERT_EQ(UINT, keyboard_history[2][KC_LALT], 1);
- ASSERT_EQ(UINT, keyboard_history[2][KC_V], 0);
- ASSERT_EQ(UINT, keyboard_history[3][KC_LALT], 1);
- ASSERT_EQ(UINT, keyboard_history[3][KC_V], 0);
- ASSERT_EQ(UINT, keyboard_history[4][KC_LALT], 1);
- ASSERT_EQ(UINT, keyboard_history[4][KC_V], 0);
- ASSERT_EQ(UINT, keyboard_history[5][KC_LALT], 1);
- ASSERT_EQ(UINT, keyboard_history[5][KC_V], 0);
- ASSERT_EQ(UINT, keyboard_history[6][KC_LALT], 1);
- ASSERT_EQ(UINT, keyboard_history[6][KC_V], 0);
- ASSERT_EQ(UINT, keyboard_history[7][KC_LALT], 1);
- ASSERT_EQ(UINT, keyboard_history[7][KC_V], 0);
- ASSERT_EQ(UINT, keyboard_history[8][KC_LALT], 0);
- ASSERT_EQ(UINT, keyboard_history[8][KC_V], 0);
- ASSERT_EQ(UINT, keyboard_history[9][KC_LALT], 255);
- ASSERT_EQ(UINT, keyboard_history[9][KC_V], 255);
-END_TEST
-
-TEST("key_mod_hold_slow_typist")
- process_record_user(BOT4, &pressed);
- pause_ms(CHORD_TIMEOUT + 1);
-
- pause_ms(1000);
- process_record_user(TOP1, &pressed);
- pause_ms(1000);
- process_record_user(TOP1, &depressed);
- pause_ms(1000);
- process_record_user(TOP1, &pressed);
- pause_ms(1000);
- process_record_user(TOP1, &depressed);
- pause_ms(1000);
- process_record_user(TOP1, &pressed);
- pause_ms(1000);
- process_record_user(TOP1, &depressed);
- pause_ms(1000);
-
- process_record_user(BOT4, &depressed);
- ASSERT_EQ(UINT, current_pseudolayer, QWERTY);
-
- ASSERT_EQ(UINT, keyboard_history[0][KC_LALT], 0);
- ASSERT_EQ(UINT, keyboard_history[0][KC_V], 0);
- ASSERT_EQ(UINT, keyboard_history[0][KC_Q], 0);
- ASSERT_EQ(UINT, keyboard_history[1][KC_LALT], 1);
- ASSERT_EQ(UINT, keyboard_history[1][KC_V], 0);
- ASSERT_EQ(UINT, keyboard_history[1][KC_Q], 0);
- ASSERT_EQ(UINT, keyboard_history[2][KC_LALT], 1);
- ASSERT_EQ(UINT, keyboard_history[2][KC_V], 0);
- ASSERT_EQ(UINT, keyboard_history[2][KC_Q], 1);
- ASSERT_EQ(UINT, keyboard_history[3][KC_LALT], 1);
- ASSERT_EQ(UINT, keyboard_history[3][KC_V], 0);
- ASSERT_EQ(UINT, keyboard_history[3][KC_Q], 0);
- ASSERT_EQ(UINT, keyboard_history[4][KC_LALT], 1);
- ASSERT_EQ(UINT, keyboard_history[4][KC_V], 0);
- ASSERT_EQ(UINT, keyboard_history[4][KC_Q], 1);
- ASSERT_EQ(UINT, keyboard_history[5][KC_LALT], 1);
- ASSERT_EQ(UINT, keyboard_history[5][KC_V], 0);
- ASSERT_EQ(UINT, keyboard_history[5][KC_Q], 0);
- ASSERT_EQ(UINT, keyboard_history[6][KC_LALT], 1);
- ASSERT_EQ(UINT, keyboard_history[6][KC_V], 0);
- ASSERT_EQ(UINT, keyboard_history[6][KC_Q], 1);
- ASSERT_EQ(UINT, keyboard_history[7][KC_LALT], 1);
- ASSERT_EQ(UINT, keyboard_history[7][KC_V], 0);
- ASSERT_EQ(UINT, keyboard_history[7][KC_Q], 0);
- ASSERT_EQ(UINT, keyboard_history[8][KC_LALT], 0);
- ASSERT_EQ(UINT, keyboard_history[8][KC_V], 0);
- ASSERT_EQ(UINT, keyboard_history[8][KC_Q], 0);
- ASSERT_EQ(UINT, keyboard_history[9][KC_LALT], 255);
- ASSERT_EQ(UINT, keyboard_history[9][KC_V], 255);
- ASSERT_EQ(UINT, keyboard_history[9][KC_Q], 255);
-END_TEST
-
-// LEADER
-TEST("leader_triggers_global")
- uint8_t state = ACTIVATED;
- struct Chord chord PROGMEM = {0, QWERTY, &state, NULL, 0, 0, leader};
- chord.function(&chord);
-
- ASSERT_EQ(UINT, in_leader_mode, 1);
-END_TEST
-
-TEST("leader_no_follow")
- uint8_t state = ACTIVATED;
- struct Chord chord PROGMEM = {0, QWERTY, &state, NULL, 0, 0, leader};
- chord.function(&chord);
-
- ASSERT_EQ(UINT, in_leader_mode, 1);
-
- pause_ms(1000);
-
- ASSERT_EQ(UINT, in_leader_mode, 0);
- ASSERT_EQ(UINT, keyboard_history[1][KC_O], 255);
-END_TEST
-
-TEST("leader_wrong_follow")
- process_record_user(TOP2, &pressed);
- process_record_user(TOP3, &pressed);
- process_record_user(BOT2, &pressed);
- process_record_user(BOT3, &pressed);
- pause_ms(1);
- process_record_user(TOP2, &depressed);
- process_record_user(TOP3, &depressed);
- process_record_user(BOT2, &depressed);
- process_record_user(BOT3, &depressed);
-
- ASSERT_EQ(UINT, in_leader_mode, 1);
-
- pause_ms(1);
- process_record_user(TOP1, &pressed);
- pause_ms(1);
- process_record_user(TOP1, &depressed);
- pause_ms(1);
- process_record_user(TOP2, &pressed);
- pause_ms(1);
- process_record_user(TOP2, &depressed);
-
- pause_ms(LEADER_TIMEOUT);
- pause_ms(1);
-
- ASSERT_EQ(UINT, in_leader_mode, 0);
- ASSERT_EQ(UINT, keyboard_history[1][KC_Q], 255);
-END_TEST
-
-TEST("leader_correct_follow")
- process_record_user(TOP2, &pressed);
- process_record_user(TOP3, &pressed);
- process_record_user(BOT2, &pressed);
- process_record_user(BOT3, &pressed);
- pause_ms(1);
- process_record_user(TOP2, &depressed);
- process_record_user(TOP3, &depressed);
- process_record_user(BOT2, &depressed);
- process_record_user(BOT3, &depressed);
-
- ASSERT_EQ(UINT, in_leader_mode, 1);
-
- pause_ms(1);
- process_record_user(TOP0, &pressed);
- pause_ms(1);
- process_record_user(TOP0, &depressed);
- pause_ms(1);
- process_record_user(TOP9, &pressed);
- pause_ms(1);
- process_record_user(TOP9, &depressed);
-
- pause_ms(LEADER_TIMEOUT);
- ASSERT_EQ(UINT, in_leader_mode, 1);
-
- pause_ms(1);
- ASSERT_EQ(UINT, in_leader_mode, 0);
-
- ASSERT_EQ(UINT, keyboard_history[1][KC_O], 0);
- ASSERT_EQ(UINT, keyboard_history[1][KC_P], 0);
- ASSERT_EQ(UINT, keyboard_history[1][KC_A], 0);
- ASSERT_EQ(UINT, keyboard_history[1][KC_S], 1);
-
- ASSERT_EQ(UINT, keyboard_history[2][KC_O], 0);
- ASSERT_EQ(UINT, keyboard_history[2][KC_P], 0);
- ASSERT_EQ(UINT, keyboard_history[2][KC_A], 0);
- ASSERT_EQ(UINT, keyboard_history[2][KC_S], 0);
-
- ASSERT_EQ(UINT, keyboard_history[3][KC_O], 255);
- ASSERT_EQ(UINT, keyboard_history[3][KC_P], 255);
- ASSERT_EQ(UINT, keyboard_history[3][KC_A], 255);
- ASSERT_EQ(UINT, keyboard_history[3][KC_S], 255);
-
- ASSERT_EQ(UINT, keyboard_history[4][KC_O], 255);
- ASSERT_EQ(UINT, keyboard_history[4][KC_P], 255);
- ASSERT_EQ(UINT, keyboard_history[4][KC_A], 255);
- ASSERT_EQ(UINT, keyboard_history[4][KC_S], 255);
-
- ASSERT_EQ(UINT, keyboard_history[5][KC_Q], 255);
-END_TEST
-
-// DYNAMIC MACRO
-TEST("dynamic_macro_record_mode")
- current_pseudolayer = NUM;
-
- // record
- ASSERT_EQ(UINT, dynamic_macro_mode, 0);
- process_record_user(BOT7, &pressed);
- process_record_user(BOT7, &depressed);
- ASSERT_EQ(UINT, dynamic_macro_mode, 1);
- pause_ms(1000);
- ASSERT_EQ(UINT, dynamic_macro_mode, 1);
-END_TEST
-
-TEST("dynamic_macro_record_mode_off")
- current_pseudolayer = NUM;
-
- process_record_user(BOT7, &pressed);
- process_record_user(BOT7, &depressed);
- ASSERT_EQ(UINT, dynamic_macro_mode, 1);
-
- process_record_user(BOT9, &pressed);
- process_record_user(BOT9, &depressed);
- ASSERT_EQ(UINT, dynamic_macro_mode, 0);
-END_TEST
-
-TEST("dynamic_macro_record_one")
- current_pseudolayer = NUM;
-
- process_record_user(BOT7, &pressed);
- process_record_user(BOT7, &depressed);
- ASSERT_EQ(UINT, dynamic_macro_mode, 1);
-
- process_record_user(TOP1, &pressed);
- process_record_user(TOP1, &depressed);
-
- ASSERT_EQ(UINT, keyboard_history[1][KC_1], 255);
-
- process_record_user(BOT9, &pressed);
- process_record_user(BOT9, &depressed);
-
- pause_ms(1000);
-
- process_record_user(BOT0, &pressed);
- process_record_user(BOT0, &depressed);
-
- ASSERT_EQ(UINT, keyboard_history[1][KC_1], 1);
- ASSERT_EQ(UINT, keyboard_history[2][KC_1], 0);
- ASSERT_EQ(UINT, keyboard_history[3][KC_1], 255);
-
- pause_ms(1000);
-
- process_record_user(BOT0, &pressed);
- process_record_user(BOT0, &depressed);
-
- ASSERT_EQ(UINT, keyboard_history[3][KC_1], 1);
- ASSERT_EQ(UINT, keyboard_history[4][KC_1], 0);
- ASSERT_EQ(UINT, keyboard_history[5][KC_1], 255);
-END_TEST
-
-TEST("dynamic_macro_record_two")
- current_pseudolayer = NUM;
-
- process_record_user(BOT7, &pressed);
- process_record_user(BOT7, &depressed);
- ASSERT_EQ(UINT, dynamic_macro_mode, 1);
-
- process_record_user(TOP1, &pressed);
- process_record_user(TOP1, &depressed);
-
- process_record_user(TOP2, &pressed);
- process_record_user(TOP2, &depressed);
-
- ASSERT_EQ(UINT, keyboard_history[1][KC_1], 255);
-
- process_record_user(BOT9, &pressed);
- process_record_user(BOT9, &depressed);
-
- pause_ms(1000);
-
- process_record_user(BOT0, &pressed);
- process_record_user(BOT0, &depressed);
-
- ASSERT_EQ(UINT, keyboard_history[1][KC_1], 1);
- ASSERT_EQ(UINT, keyboard_history[2][KC_2], 1);
- ASSERT_EQ(UINT, keyboard_history[3][KC_1], 0);
- ASSERT_EQ(UINT, keyboard_history[4][KC_2], 0);
- ASSERT_EQ(UINT, keyboard_history[5][KC_1], 255);
-END_TEST
-
-TEST("dynamic_macro_record_two_parts")
- current_pseudolayer = NUM;
-
- process_record_user(BOT7, &pressed);
- process_record_user(BOT7, &depressed);
- ASSERT_EQ(UINT, dynamic_macro_mode, 1);
-
- process_record_user(TOP1, &pressed);
- process_record_user(TOP1, &depressed);
-
- process_record_user(TOP2, &pressed);
- process_record_user(TOP2, &depressed);
-
- ASSERT_EQ(UINT, keyboard_history[1][KC_1], 255);
-
- process_record_user(BOT8, &pressed);
- process_record_user(BOT8, &depressed);
-
- process_record_user(TOP3, &pressed);
- process_record_user(TOP3, &depressed);
-
- process_record_user(BOT9, &pressed);
- process_record_user(BOT9, &depressed);
-
- pause_ms(1000);
-
- process_record_user(BOT0, &pressed);
- process_record_user(BOT0, &depressed);
-
- ASSERT_EQ(UINT, keyboard_history[1][KC_1], 1);
- ASSERT_EQ(UINT, keyboard_history[1][KC_2], 0);
- ASSERT_EQ(UINT, keyboard_history[1][KC_3], 0);
-
- ASSERT_EQ(UINT, keyboard_history[2][KC_1], 1);
- ASSERT_EQ(UINT, keyboard_history[2][KC_2], 1);
- ASSERT_EQ(UINT, keyboard_history[2][KC_3], 0);
-
- ASSERT_EQ(UINT, keyboard_history[3][KC_1], 0);
- ASSERT_EQ(UINT, keyboard_history[3][KC_2], 1);
- ASSERT_EQ(UINT, keyboard_history[3][KC_3], 0);
-
- ASSERT_EQ(UINT, keyboard_history[4][KC_1], 0);
- ASSERT_EQ(UINT, keyboard_history[4][KC_2], 0);
- ASSERT_EQ(UINT, keyboard_history[4][KC_3], 0);
-
- ASSERT_EQ(UINT, keyboard_history[5][KC_1], 0);
- ASSERT_EQ(UINT, keyboard_history[5][KC_2], 0);
- ASSERT_EQ(UINT, keyboard_history[5][KC_3], 1);
-
- ASSERT_EQ(UINT, keyboard_history[6][KC_1], 0);
- ASSERT_EQ(UINT, keyboard_history[6][KC_2], 0);
- ASSERT_EQ(UINT, keyboard_history[6][KC_3], 0);
-
- ASSERT_EQ(UINT, keyboard_history[7][KC_1], 255);
-END_TEST
-
-// dance + M()
-
-TEST("dance_tap")
- process_record_user(BOT0, &pressed);
- process_record_user(BOT0, &depressed);
-
- pause_ms(1000);
-
- ASSERT_EQ(UINT, keyboard_history[1][KC_9], 1);
- ASSERT_EQ(UINT, keyboard_history[1][KC_0], 0);
- ASSERT_EQ(UINT, keyboard_history[2][KC_9], 0);
- ASSERT_EQ(UINT, keyboard_history[2][KC_0], 0);
- ASSERT_EQ(UINT, keyboard_history[3][KC_9], 255);
-END_TEST
-
-TEST("dance_hold")
- process_record_user(BOT0, &pressed);
- pause_ms(1000);
-
- ASSERT_EQ(UINT, keyboard_history[1][KC_9], 1);
-
- process_record_user(BOT0, &depressed);
- ASSERT_EQ(UINT, keyboard_history[2][KC_9], 0);
-END_TEST
-
-TEST("dance_tap_tap")
- process_record_user(BOT0, &pressed);
- process_record_user(BOT0, &depressed);
- process_record_user(BOT0, &pressed);
- process_record_user(BOT0, &depressed);
-
- pause_ms(1000);
-
- ASSERT_EQ(UINT, keyboard_history[1][KC_9], 0);
- ASSERT_EQ(UINT, keyboard_history[1][KC_0], 1);
- ASSERT_EQ(UINT, keyboard_history[2][KC_9], 0);
- ASSERT_EQ(UINT, keyboard_history[2][KC_0], 0);
- ASSERT_EQ(UINT, keyboard_history[3][KC_9], 255);
-END_TEST
-
-TEST("dance_tap_hold")
- process_record_user(BOT0, &pressed);
- process_record_user(BOT0, &depressed);
- pause_ms(1);
- process_record_user(BOT0, &pressed);
- pause_ms(1000);
-
- ASSERT_EQ(UINT, keyboard_history[1][KC_0], 1);
-
- process_record_user(BOT0, &depressed);
- ASSERT_EQ(UINT, keyboard_history[2][KC_0], 0);
-END_TEST
-
-// MK
-TEST("multiple_keys")
- current_pseudolayer = NUM;
-
- process_record_user(BOT1, &pressed);
- process_record_user(BOT1, &depressed);
-
- ASSERT_EQ(UINT, keyboard_history[1][KC_LCTL], 1);
- ASSERT_EQ(UINT, keyboard_history[1][KC_LSFT], 0);
-
- ASSERT_EQ(UINT, keyboard_history[2][KC_LCTL], 1);
- ASSERT_EQ(UINT, keyboard_history[2][KC_LSFT], 1);
-
- ASSERT_EQ(UINT, keyboard_history[3][KC_LCTL], 0);
- ASSERT_EQ(UINT, keyboard_history[3][KC_LSFT], 1);
-
- ASSERT_EQ(UINT, keyboard_history[4][KC_LCTL], 0);
- ASSERT_EQ(UINT, keyboard_history[4][KC_LSFT], 0);
-
- ASSERT_EQ(UINT, keyboard_history[5][KC_LCTL], 255);
-END_TEST
-
-TEST("multiple_keys_interleaved")
- current_pseudolayer = NUM;
-
- process_record_user(BOT1, &pressed);
- pause_ms(CHORD_TIMEOUT+1);
-
- process_record_user(TOP1, &pressed);
- process_record_user(TOP1, &depressed);
- process_record_user(TOP1, &pressed);
- process_record_user(TOP1, &depressed);
- process_record_user(TOP1, &pressed);
- process_record_user(TOP1, &depressed);
-
- process_record_user(BOT1, &depressed);
-
- ASSERT_EQ(UINT, keyboard_history[1][KC_LCTL], 1);
- ASSERT_EQ(UINT, keyboard_history[1][KC_LSFT], 0);
-
- ASSERT_EQ(UINT, keyboard_history[2][KC_LCTL], 1);
- ASSERT_EQ(UINT, keyboard_history[2][KC_LSFT], 1);
-
- ASSERT_EQ(UINT, keyboard_history[3][KC_1], 1);
- ASSERT_EQ(UINT, keyboard_history[4][KC_1], 0);
- ASSERT_EQ(UINT, keyboard_history[5][KC_1], 1);
- ASSERT_EQ(UINT, keyboard_history[6][KC_1], 0);
- ASSERT_EQ(UINT, keyboard_history[7][KC_1], 1);
- ASSERT_EQ(UINT, keyboard_history[8][KC_1], 0);
-
- ASSERT_EQ(UINT, keyboard_history[9][KC_LCTL], 0);
- ASSERT_EQ(UINT, keyboard_history[9][KC_LSFT], 1);
-
- ASSERT_EQ(UINT, keyboard_history[10][KC_LCTL], 0);
- ASSERT_EQ(UINT, keyboard_history[10][KC_LSFT], 0);
-
- ASSERT_EQ(UINT, keyboard_history[11][KC_LCTL], 255);
-END_TEST
-
-// D
-TEST("dance_one")
- current_pseudolayer = NUM;
-
- process_record_user(BOT3, &pressed);
- process_record_user(BOT3, &depressed);
-
- pause_ms(CHORD_TIMEOUT+DANCE_TIMEOUT+2);
-
- ASSERT_EQ(UINT, keyboard_history[1][KC_1], 1);
- ASSERT_EQ(UINT, keyboard_history[2][KC_1], 0);
- ASSERT_EQ(UINT, keyboard_history[3][KC_1], 255);
-
- process_record_user(BOT3, &pressed);
- process_record_user(BOT3, &depressed);
-
- pause_ms(CHORD_TIMEOUT+DANCE_TIMEOUT+2);
-
- ASSERT_EQ(UINT, keyboard_history[1][KC_1], 1);
- ASSERT_EQ(UINT, keyboard_history[2][KC_1], 0);
- ASSERT_EQ(UINT, keyboard_history[3][KC_1], 1);
- ASSERT_EQ(UINT, keyboard_history[4][KC_1], 0);
- ASSERT_EQ(UINT, keyboard_history[5][KC_1], 255);
-END_TEST
-
-TEST("dance_two")
- current_pseudolayer = NUM;
-
- process_record_user(BOT3, &pressed);
- process_record_user(BOT3, &depressed);
- process_record_user(BOT3, &pressed);
- process_record_user(BOT3, &depressed);
-
- pause_ms(CHORD_TIMEOUT+DANCE_TIMEOUT+2);
-
- ASSERT_EQ(UINT, keyboard_history[1][KC_2], 1);
- ASSERT_EQ(UINT, keyboard_history[2][KC_2], 0);
- ASSERT_EQ(UINT, keyboard_history[3][KC_2], 255);
-
- process_record_user(BOT3, &pressed);
- process_record_user(BOT3, &depressed);
- process_record_user(BOT3, &pressed);
- process_record_user(BOT3, &depressed);
-
- pause_ms(CHORD_TIMEOUT+DANCE_TIMEOUT+2);
-
- ASSERT_EQ(UINT, keyboard_history[1][KC_2], 1);
- ASSERT_EQ(UINT, keyboard_history[2][KC_2], 0);
- ASSERT_EQ(UINT, keyboard_history[3][KC_2], 1);
- ASSERT_EQ(UINT, keyboard_history[4][KC_2], 0);
- ASSERT_EQ(UINT, keyboard_history[5][KC_2], 255);
-END_TEST
-
-TEST("dance_three")
- current_pseudolayer = NUM;
-
- process_record_user(BOT3, &pressed);
- process_record_user(BOT3, &depressed);
- process_record_user(BOT3, &pressed);
- process_record_user(BOT3, &depressed);
- process_record_user(BOT3, &pressed);
- process_record_user(BOT3, &depressed);
-
- pause_ms(CHORD_TIMEOUT+DANCE_TIMEOUT+2);
-
- ASSERT_EQ(UINT, keyboard_history[1][KC_3], 1);
- ASSERT_EQ(UINT, keyboard_history[2][KC_3], 0);
- ASSERT_EQ(UINT, keyboard_history[3][KC_3], 255);
-
- process_record_user(BOT3, &pressed);
- process_record_user(BOT3, &depressed);
- process_record_user(BOT3, &pressed);
- process_record_user(BOT3, &depressed);
- process_record_user(BOT3, &pressed);
- process_record_user(BOT3, &depressed);
-
- pause_ms(CHORD_TIMEOUT+DANCE_TIMEOUT+2);
-
- ASSERT_EQ(UINT, keyboard_history[1][KC_3], 1);
- ASSERT_EQ(UINT, keyboard_history[2][KC_3], 0);
- ASSERT_EQ(UINT, keyboard_history[3][KC_3], 1);
- ASSERT_EQ(UINT, keyboard_history[4][KC_3], 0);
- ASSERT_EQ(UINT, keyboard_history[5][KC_3], 255);
-END_TEST
-
-TEST("dance_two_held")
- current_pseudolayer = NUM;
-
- process_record_user(BOT3, &pressed);
- process_record_user(BOT3, &depressed);
- process_record_user(BOT3, &pressed);
-
- pause_ms(CHORD_TIMEOUT+DANCE_TIMEOUT+2);
-
- ASSERT_EQ(UINT, keyboard_history[1][KC_2], 1);
- ASSERT_EQ(UINT, keyboard_history[2][KC_2], 255);
-
- process_record_user(BOT3, &depressed);
- ASSERT_EQ(UINT, keyboard_history[2][KC_2], 0);
- ASSERT_EQ(UINT, keyboard_history[3][KC_2], 255);
-END_TEST
-
-// These two are leaving the chording engine, they kinda have to be tested manually
-// TO
-// RESET
-
-END
diff --git a/users/dennytom/chording_engine/tests/test_full.sh b/users/dennytom/chording_engine/tests/test_full.sh
deleted file mode 100644
index ea93aec8f9..0000000000
--- a/users/dennytom/chording_engine/tests/test_full.sh
+++ /dev/null
@@ -1,11 +0,0 @@
-#!/bin/sh
-cd ..
-python3 parser.py tests/test_keymap_def.json tests/test_keymap.c && \
-gcc -g tests/test.c -o tests/test && \
-tests/test && \
-python3 parser.py ../../../keyboards/butterstick/keymaps/tomas/keymap_def.json ../../../keyboards/butterstick/keymaps/tomas/keymap.c && \
-python3 parser.py ../../../keyboards/georgi/keymaps/tomas/keymap_def.json ../../../keyboards/georgi/keymaps/tomas/keymap.c && \
-python3 parser.py ../../../keyboards/georgi/keymaps/buttery/keymap_def.json ../../../keyboards/georgi/keymaps/buttery/keymap.c && \
-cd ../../../ && \
-make butterstick && \
-make georgi \ No newline at end of file
diff --git a/users/dennytom/chording_engine/tests/test_keymap_def.json b/users/dennytom/chording_engine/tests/test_keymap_def.json
deleted file mode 100644
index eae2ed37cf..0000000000
--- a/users/dennytom/chording_engine/tests/test_keymap_def.json
+++ /dev/null
@@ -1,145 +0,0 @@
-{
- "keys": [
- "TOP1", "TOP2", "TOP3", "TOP4", "TOP5", "TOP6", "TOP7", "TOP8", "TOP9", "TOP0",
- "BOT1", "BOT2", "BOT3", "BOT4", "BOT5", "BOT6", "BOT7", "BOT8", "BOT9", "BOT0"
- ],
- "parameters": {
- "do_not_include_QMK": true,
- "layout_function_name": "LAYOUT_test",
- "chord_timeout": 100,
- "dance_timeout": 200,
- "leader_timeout": 750,
- "tap_timeout": 50,
- "command_max_length": 5,
- "leader_max_length": 5,
- "dynamic_macro_max_length": 20,
- "string_max_length": 16,
- "long_press_multiplier": 3,
- "default_pseudolayer": "QWERTY"
- },
- "layers": [
- {
- "type": "auto"
- },
- {
- "type": "manual",
- "keycodes": ["KC_1", "KC_2", "KC_3", "KC_4", "KC_5", "KC_6", "KC_7", "KC_8", "KC_9", "KC_0",
- "KC_Q", "KC_W", "KC_E", "KC_R", "KC_T", "KC_Y", "KC_U", "KC_I", "KC_O", "KC_P"
- ]
- }
- ],
- "chord_sets": [
- {
- "name": "rows",
- "chords": [
- ["TOP1"], ["TOP2"], ["TOP3"], ["TOP4"], ["TOP5"], ["TOP6"], ["TOP7"], ["TOP8"], ["TOP9"], ["TOP0"],
- ["TOP1", "BOT1"], ["TOP2", "BOT2"], ["TOP3", "BOT3"], ["TOP4", "BOT4"], ["TOP5", "BOT5"], ["TOP6", "BOT6"], ["TOP7", "BOT7"], ["TOP8", "BOT8"], ["TOP9", "BOT9"], ["TOP0", "BOT0"],
- ["BOT1"], ["BOT2"], ["BOT3"], ["BOT4"], ["BOT5"], ["BOT6"], ["BOT7"], ["BOT8"], ["BOT9"], ["BOT0"]
- ]
- },
- {
- "name": "cols",
- "chords": [
- ["TOP1", "TOP2"], ["TOP2", "TOP3"], ["TOP3", "TOP4"], ["TOP4", "TOP5"], ["TOP5", "TOP6"], ["TOP6", "TOP7"], ["TOP7", "TOP8"], ["TOP8", "TOP9"], ["TOP9", "TOP0"],
- ["TOP1", "TOP2", "BOT1", "BOT2"], ["TOP2", "TOP3", "BOT2", "BOT3"], ["TOP3", "TOP4", "BOT3", "BOT4"], ["TOP4", "TOP5", "BOT4", "BOT5"], ["TOP5", "TOP6", "BOT5", "BOT6"], ["TOP6", "TOP7", "BOT6", "BOT7"], ["TOP7", "TOP8", "BOT7", "BOT8"], ["TOP8", "TOP9", "BOT8", "BOT9"], ["TOP9", "TOP0", "BOT9", "BOT0"],
- ["BOT1", "BOT2"], ["BOT2", "BOT3"], ["BOT3", "BOT4"], ["BOT4", "BOT5"], ["BOT5", "BOT6"], ["BOT6", "BOT7"], ["BOT7", "BOT8"], ["BOT8", "BOT9"], ["BOT9", "BOT0"]
- ]
- },
- {
- "name": "asetniop",
- "chords": [
- ["TOP1"], ["TOP2"], ["TOP3"], ["TOP4"], ["TOP7"], ["TOP8"], ["TOP9"], ["TOP0"],
- ["TOP1", "TOP2"], ["TOP2", "TOP3"], ["TOP3", "TOP4"], ["TOP4", "TOP7"], ["TOP7", "TOP8"], ["TOP8", "TOP9"], ["TOP9", "TOP0"],
- ["TOP1", "TOP3"], ["TOP2", "TOP4"], ["TOP3", "TOP7"], ["TOP4", "TOP8"], ["TOP7", "TOP9"], ["TOP8", "TOP0"],
- ["TOP1", "TOP4"], ["TOP2", "TOP7"], ["TOP3", "TOP8"], ["TOP4", "TOP9"], ["TOP7", "TOP0"],
- ["TOP1", "TOP7"], ["TOP2", "TOP8"], ["TOP3", "TOP9"], ["TOP4", "TOP0"],
- ["TOP1", "TOP8"], ["TOP2", "TOP9"], ["TOP3", "TOP0"],
- ["TOP1", "TOP9"], ["TOP2", "TOP0"],
- ["TOP1", "TOP0"]
- ]
- }
- ],
- "pseudolayers": [
- {
- "name": "ALWAYS_ON",
- "chords": [
- {
- "type": "visual",
- "chord": [
- " ", " ", " ", " ", " ", " ", " ", "X", "X", "X",
- " ", " ", " ", " ", " ", " ", " ", "X", "X", "X"
- ],
- "keycode": "MO(FNC, NUM)"
- }
- ]
- },
- {
- "name": "QWERTY",
- "chords": [
- {
- "type": "chord_set",
- "set": "rows",
- "keycodes": [
- "Q", "W", "E", "R", "T", "Y", "U", "I", "O", "P",
- "A", "S", "D", "F", "G", "H", "J", "K", "L", ";",
- "AS(Z)", "KK(X, LCTL)", "KL(C, NUM)", "KM(V, LALT)", "B", "N", "M", "COMMA", ".", "M(double_dance, KC_9, KC_0)"
- ]
- },
- {
- "type": "chord_set",
- "set": "cols",
- "keycodes": [
- "ESC", "", "", "", "", "", "", "", "",
- "", "LEAD", "", "", "CMD", "", "", "", "",
- "LSFT", "O(LSFT)", "", "", "", "O(NUM)", "MO(NUM)", "", "DF(NUM)"
- ]
- },
- {
- "type": "visual",
- "chord": [
- "X", "X", " ", " ", " ", " ", " ", " ", " ", " ",
- "X", "X", " ", " ", " ", " ", " ", " ", " ", " "
- ],
- "keycode": "LOCK"
- }
- ]
- },
- {
- "name": "NUM",
- "chords": [
- {
- "type": "chord_set",
- "set": "rows",
- "keycodes": [
- "1", "2", "3", "4", "5", "6", "7", "8", "9", "0",
- "", "", "", "", "", "", "", "", "", "",
- "", "KC_LEFT", "D(KC_1, KC_2, KC_3)", "", "", "", "DM_RECORD", "DM_NEXT", "DM_END", "DM_PLAY"
- ]
- },
- {
- "type": "simple",
- "chord": ["BOT1"],
- "keycode": "MK(KC_LCTL, KC_LSFT)"
- }
- ]
- },
- {
- "name": "FNC",
- "chords": []
- }
- ],
- "leader_sequences": [
- {
- "name": "fnc_L1",
- "function": "void fnc_L1(void) { key_in(KC_A); clear_keyboard(); }",
- "sequence": ["KC_O", "KC_P"]
- },
- {
- "name": "fnc_L2",
- "function": "void fnc_L2(void) { key_in(KC_S); clear_keyboard(); }",
- "sequence": ["KC_P", "KC_O"]
- }
- ],
- "extra_code": "void double_dance(const struct Chord* self) {\n switch (*self->state) {\n case ACTIVATED:\n *self->counter = (*self->counter + 1) % 2;\n break;\n case PRESS_FROM_ACTIVE:\n if (*self->counter == 1) {\n key_in(self->value1);\n } else {\n key_in(self->value2);\n }\n *self->state = FINISHED_FROM_ACTIVE;\n break;\n case FINISHED:\n if (*self->counter == 1) {\n tap_key(self->value1);\n } else {\n tap_key(self->value2);\n }\n *self->counter = 0;\n *self->state = IDLE;\n break;\n case RESTART:\n if (*self->counter == 1) {\n key_out(self->value1);\n } else {\n key_out(self->value2);\n }\n *self->counter = 0;\n break;\n default:\n break;\n }\n}\n",
- "extra_dependencies": []
-} \ No newline at end of file
diff --git a/users/dennytom/chording_engine/tests/test_quick.sh b/users/dennytom/chording_engine/tests/test_quick.sh
deleted file mode 100644
index 3740122e27..0000000000
--- a/users/dennytom/chording_engine/tests/test_quick.sh
+++ /dev/null
@@ -1,6 +0,0 @@
-#!/bin/sh
-
-cd ..
-python3 parser.py tests/test_keymap_def.json tests/test_keymap.c && \
-gcc -g tests/test.c -o tests/test && \
-tests/test \ No newline at end of file
diff --git a/users/devdev/config.h b/users/devdev/config.h
deleted file mode 100644
index c5a30fe8e2..0000000000
--- a/users/devdev/config.h
+++ /dev/null
@@ -1,30 +0,0 @@
- /* Copyright 2021 Dane Evans
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
-*/
-
-
-#pragma once
-
-/* Disable unused and unneeded features to reduce on firmware size */
-#if defined(LOCKING_SUPPORT_ENABLE)
-# undef LOCKING_SUPPORT_ENABLE
-#endif
-
-#if defined(OLED_FONT_H)
-# undef OLED_FONT_H
-#endif
-
-
-#define OLED_FONT_H "users/devdev/glcdfont.c"
diff --git a/users/devdev/glcdfont.c b/users/devdev/glcdfont.c
deleted file mode 100644
index a95afa3e07..0000000000
--- a/users/devdev/glcdfont.c
+++ /dev/null
@@ -1,465 +0,0 @@
-// This is the 'classic' fixed-space bitmap font for Adafruit_GFX since 1.0.
-// See gfxfont.h for newer custom bitmap font info.
-
-#include "progmem.h"
-
-#ifndef CUSTOM_FONT
-// Standard ASCII 5x7 font
-const unsigned char font[] PROGMEM = {
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x3E, 0x5B, 0x4F, 0x5B, 0x3E, 0x00,
- 0x3E, 0x6B, 0x4F, 0x6B, 0x3E, 0x00,
- 0x1C, 0x3E, 0x7C, 0x3E, 0x1C, 0x00,
- 0x18, 0x3C, 0x7E, 0x3C, 0x18, 0x00,
- 0x1C, 0x57, 0x7D, 0x57, 0x1C, 0x00,
- 0x1C, 0x5E, 0x7F, 0x5E, 0x1C, 0x00,
- 0x00, 0x18, 0x3C, 0x18, 0x00, 0x00,
- 0xFF, 0xE7, 0xC3, 0xE7, 0xFF, 0x00,
- 0x00, 0x18, 0x24, 0x18, 0x00, 0x00,
- 0xFF, 0xE7, 0xDB, 0xE7, 0xFF, 0x00,
- 0x30, 0x48, 0x3A, 0x06, 0x0E, 0x00,
- 0x26, 0x29, 0x79, 0x29, 0x26, 0x00,
- 0x40, 0x7F, 0x05, 0x05, 0x07, 0x00,
- 0x40, 0x7F, 0x05, 0x25, 0x3F, 0x00,
- 0x5A, 0x3C, 0xE7, 0x3C, 0x5A, 0x00,
- 0x7F, 0x3E, 0x1C, 0x1C, 0x08, 0x00,
- 0x08, 0x1C, 0x1C, 0x3E, 0x7F, 0x00,
- 0x14, 0x22, 0x7F, 0x22, 0x14, 0x00,
- 0x5F, 0x5F, 0x00, 0x5F, 0x5F, 0x00,
- 0x06, 0x09, 0x7F, 0x01, 0x7F, 0x00,
- 0x00, 0x66, 0x89, 0x95, 0x6A, 0x00,
- 0x60, 0x60, 0x60, 0x60, 0x60, 0x00,
- 0x94, 0xA2, 0xFF, 0xA2, 0x94, 0x00,
- 0x08, 0x04, 0x7E, 0x04, 0x08, 0x00,
- 0x10, 0x20, 0x7E, 0x20, 0x10, 0x00,
- 0x08, 0x08, 0x2A, 0x1C, 0x08, 0x00,
- 0x08, 0x1C, 0x2A, 0x08, 0x08, 0x00,
- 0x1E, 0x10, 0x10, 0x10, 0x10, 0x00,
- 0x0C, 0x1E, 0x0C, 0x1E, 0x0C, 0x00,
- 0x30, 0x38, 0x3E, 0x38, 0x30, 0x00,
- 0x06, 0x0E, 0x3E, 0x0E, 0x06, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x5F, 0x00, 0x00, 0x00,
- 0x00, 0x07, 0x00, 0x07, 0x00, 0x00,
- 0x14, 0x7F, 0x14, 0x7F, 0x14, 0x00,
- 0x24, 0x2A, 0x7F, 0x2A, 0x12, 0x00,
- 0x23, 0x13, 0x08, 0x64, 0x62, 0x00,
- 0x36, 0x49, 0x56, 0x20, 0x50, 0x00,
- 0x00, 0x08, 0x07, 0x03, 0x00, 0x00,
- 0x00, 0x1C, 0x22, 0x41, 0x00, 0x00,
- 0x00, 0x41, 0x22, 0x1C, 0x00, 0x00,
- 0x2A, 0x1C, 0x7F, 0x1C, 0x2A, 0x00,
- 0x08, 0x08, 0x3E, 0x08, 0x08, 0x00,
- 0x00, 0x80, 0x70, 0x30, 0x00, 0x00,
- 0x08, 0x08, 0x08, 0x08, 0x08, 0x00,
- 0x00, 0x00, 0x60, 0x60, 0x00, 0x00,
- 0x20, 0x10, 0x08, 0x04, 0x02, 0x00,
- 0x3E, 0x51, 0x49, 0x45, 0x3E, 0x00,
- 0x00, 0x42, 0x7F, 0x40, 0x00, 0x00,
- 0x72, 0x49, 0x49, 0x49, 0x46, 0x00,
- 0x21, 0x41, 0x49, 0x4D, 0x33, 0x00,
- 0x18, 0x14, 0x12, 0x7F, 0x10, 0x00,
- 0x27, 0x45, 0x45, 0x45, 0x39, 0x00,
- 0x3C, 0x4A, 0x49, 0x49, 0x31, 0x00,
- 0x41, 0x21, 0x11, 0x09, 0x07, 0x00,
- 0x36, 0x49, 0x49, 0x49, 0x36, 0x00,
- 0x46, 0x49, 0x49, 0x29, 0x1E, 0x00,
- 0x00, 0x00, 0x14, 0x00, 0x00, 0x00,
- 0x00, 0x40, 0x34, 0x00, 0x00, 0x00,
- 0x00, 0x08, 0x14, 0x22, 0x41, 0x00,
- 0x14, 0x14, 0x14, 0x14, 0x14, 0x00,
- 0x00, 0x41, 0x22, 0x14, 0x08, 0x00,
- 0x02, 0x01, 0x59, 0x09, 0x06, 0x00,
- 0x3E, 0x41, 0x5D, 0x59, 0x4E, 0x00,
- 0x7C, 0x12, 0x11, 0x12, 0x7C, 0x00,
- 0x7F, 0x49, 0x49, 0x49, 0x36, 0x00,
- 0x3E, 0x41, 0x41, 0x41, 0x22, 0x00,
- 0x7F, 0x41, 0x41, 0x41, 0x3E, 0x00,
- 0x7F, 0x49, 0x49, 0x49, 0x41, 0x00,
- 0x7F, 0x09, 0x09, 0x09, 0x01, 0x00,
- 0x3E, 0x41, 0x41, 0x51, 0x73, 0x00,
- 0x7F, 0x08, 0x08, 0x08, 0x7F, 0x00,
- 0x00, 0x41, 0x7F, 0x41, 0x00, 0x00,
- 0x20, 0x40, 0x41, 0x3F, 0x01, 0x00,
- 0x7F, 0x08, 0x14, 0x22, 0x41, 0x00,
- 0x7F, 0x40, 0x40, 0x40, 0x40, 0x00,
- 0x7F, 0x02, 0x1C, 0x02, 0x7F, 0x00,
- 0x7F, 0x04, 0x08, 0x10, 0x7F, 0x00,
- 0x3E, 0x41, 0x41, 0x41, 0x3E, 0x00,
- 0x7F, 0x09, 0x09, 0x09, 0x06, 0x00,
- 0x3E, 0x41, 0x51, 0x21, 0x5E, 0x00,
- 0x7F, 0x09, 0x19, 0x29, 0x46, 0x00,
- 0x26, 0x49, 0x49, 0x49, 0x32, 0x00,
- 0x03, 0x01, 0x7F, 0x01, 0x03, 0x00,
- 0x3F, 0x40, 0x40, 0x40, 0x3F, 0x00,
- 0x1F, 0x20, 0x40, 0x20, 0x1F, 0x00,
- 0x3F, 0x40, 0x38, 0x40, 0x3F, 0x00,
- 0x63, 0x14, 0x08, 0x14, 0x63, 0x00,
- 0x03, 0x04, 0x78, 0x04, 0x03, 0x00,
- 0x61, 0x59, 0x49, 0x4D, 0x43, 0x00,
- 0x00, 0x7F, 0x41, 0x41, 0x41, 0x00,
- 0x02, 0x04, 0x08, 0x10, 0x20, 0x00,
- 0x00, 0x41, 0x41, 0x41, 0x7F, 0x00,
- 0x04, 0x02, 0x01, 0x02, 0x04, 0x00,
- 0x40, 0x40, 0x40, 0x40, 0x40, 0x00,
- 0x00, 0x03, 0x07, 0x08, 0x00, 0x00,
- 0x20, 0x54, 0x54, 0x78, 0x40, 0x00,
- 0x7F, 0x28, 0x44, 0x44, 0x38, 0x00,
- 0x38, 0x44, 0x44, 0x44, 0x28, 0x00,
- 0x38, 0x44, 0x44, 0x28, 0x7F, 0x00,
- 0x38, 0x54, 0x54, 0x54, 0x18, 0x00,
- 0x00, 0x08, 0x7E, 0x09, 0x02, 0x00,
- 0x18, 0x24, 0x24, 0x1C, 0x78, 0x00,
- 0x7F, 0x08, 0x04, 0x04, 0x78, 0x00,
- 0x00, 0x44, 0x7D, 0x40, 0x00, 0x00,
- 0x20, 0x40, 0x40, 0x3D, 0x00, 0x00,
- 0x7F, 0x10, 0x28, 0x44, 0x00, 0x00,
- 0x00, 0x41, 0x7F, 0x40, 0x00, 0x00,
- 0x7C, 0x04, 0x78, 0x04, 0x78, 0x00,
- 0x7C, 0x08, 0x04, 0x04, 0x78, 0x00,
- 0x38, 0x44, 0x44, 0x44, 0x38, 0x00,
- 0x7C, 0x18, 0x24, 0x24, 0x18, 0x00,
- 0x18, 0x24, 0x24, 0x18, 0x7C, 0x00,
- 0x7C, 0x08, 0x04, 0x04, 0x08, 0x00,
- 0x48, 0x54, 0x54, 0x54, 0x24, 0x00,
- 0x04, 0x04, 0x3F, 0x44, 0x24, 0x00,
- 0x3C, 0x40, 0x40, 0x20, 0x7C, 0x00,
- 0x1C, 0x20, 0x40, 0x20, 0x1C, 0x00,
- 0x3C, 0x40, 0x30, 0x40, 0x3C, 0x00,
- 0x44, 0x28, 0x10, 0x28, 0x44, 0x00,
- 0x4C, 0x90, 0x90, 0x90, 0x7C, 0x00,
- 0x44, 0x64, 0x54, 0x4C, 0x44, 0x00,
- 0x00, 0x08, 0x36, 0x41, 0x00, 0x00,
- 0x00, 0x00, 0x77, 0x00, 0x00, 0x00,
- 0x00, 0x41, 0x36, 0x08, 0x00, 0x00,
- 0x02, 0x01, 0x02, 0x04, 0x02, 0x00,
- 0x3C, 0x26, 0x23, 0x26, 0x3C, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0xC0, 0xE0,
- 0xF0, 0xF8, 0xF8, 0x18, 0x00, 0xC0,
- 0xF0, 0xFC, 0xFE, 0xFF, 0xFF, 0xFF,
- 0xFF, 0xFF, 0xFF, 0xFF, 0x7E, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x80, 0xC0, 0xE0, 0xE0,
- 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0,
- 0xC0, 0x80, 0x00, 0x00, 0x00, 0x00,
- 0x80, 0xC0, 0xE0, 0xE0, 0xE0, 0xE0,
- 0xE0, 0xE0, 0xE0, 0xE0, 0xC0, 0x80,
- 0x00, 0x00, 0x00, 0xE0, 0xE0, 0xC0,
- 0xC0, 0xE0, 0xE0, 0xE0, 0xE0, 0x00,
- 0x00, 0xE0, 0xE0, 0xC0, 0xC0, 0xE0,
- 0xE0, 0xE0, 0xE0, 0xE0, 0xC0, 0x80,
- 0x00, 0x00, 0x00, 0x00, 0x80, 0xC0,
- 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0,
- 0xE0, 0xE0, 0xC0, 0x80, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0xE0, 0xF0, 0xF0, 0xF0, 0xE0, 0xEC,
- 0xEE, 0xF7, 0xF3, 0x70, 0x20, 0x00,
- 0x7C, 0x7C, 0x7C, 0x7E, 0x00, 0x7E,
- 0x7E, 0x7E, 0x7F, 0x7F, 0x7F, 0x00,
- 0x00, 0x80, 0xC0, 0xE0, 0x7E, 0x5B,
- 0x4F, 0x5B, 0xFE, 0xC0, 0x00, 0x00,
- 0xC0, 0x00, 0xDC, 0xD7, 0xDE, 0xDE,
- 0xDE, 0xD7, 0xDC, 0x00, 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, 0xF8, 0xFC, 0xFE,
- 0xFF, 0xE0, 0x00, 0xFF, 0xFF, 0xFF,
- 0xFF, 0xFF, 0xFF, 0x80, 0xFF, 0xFF,
- 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
- 0xFF, 0x1F, 0x07, 0x01, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0xFF, 0xFF, 0xFF, 0x81, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x81,
- 0xC3, 0xC3, 0xC3, 0x00, 0x00, 0xFF,
- 0xFF, 0xFF, 0x81, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x81, 0xFF, 0xFF,
- 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0xFF,
- 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0xFF, 0xFF, 0xFF, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x01, 0xFF, 0xFF,
- 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0xFF,
- 0x9D, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C,
- 0x1C, 0x9D, 0xDF, 0xDF, 0xDF, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x0F, 0x1F, 0x3F, 0x7F, 0x7F, 0x7F,
- 0x7F, 0x7F, 0x3F, 0x1E, 0x0C, 0x00,
- 0x1F, 0x1F, 0x1F, 0x3F, 0x00, 0x3F,
- 0x3F, 0x3F, 0x7F, 0x7F, 0x7F, 0x00,
- 0x30, 0x7B, 0x7F, 0x78, 0x30, 0x20,
- 0x20, 0x30, 0x78, 0x7F, 0x3B, 0x00,
- 0x03, 0x00, 0x0F, 0x7F, 0x0F, 0x0F,
- 0x0F, 0x7F, 0x0F, 0x00, 0x03, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x03, 0x0F, 0x1F,
- 0x3F, 0x3F, 0x3F, 0x3F, 0x1F, 0x1F,
- 0x3F, 0x3F, 0x7F, 0x7F, 0x7F, 0x3F,
- 0x3F, 0x1F, 0x3F, 0x7F, 0x7F, 0x7F,
- 0x7F, 0x7C, 0x78, 0x78, 0x38, 0x1C,
- 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x01, 0x03, 0x07, 0x07,
- 0x07, 0x07, 0x07, 0x07, 0x07, 0x07,
- 0x03, 0x01, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x03, 0x07, 0x07, 0x07, 0x07,
- 0x07, 0x07, 0x07, 0x07, 0x03, 0x01,
- 0x00, 0x00, 0x00, 0x07, 0x07, 0x07,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x07, 0x07, 0x07, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x07, 0x07,
- 0x07, 0x00, 0x00, 0x00, 0x01, 0x03,
- 0x07, 0x07, 0x07, 0x07, 0x07, 0x07,
- 0x07, 0x07, 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,
-};
-
-#else
-
-// use https://joric.github.io/qle/ to generate these.
-// You can copy the image into the logo section, then copy the byte array out of the font one .
-const unsigned char font[] PROGMEM= {
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x3E, 0x5B, 0x4F, 0x5B, 0x3E, 0x00,
- 0x3E, 0x6B, 0x4F, 0x6B, 0x3E, 0x00,
- 0x1C, 0x3E, 0x7C, 0x3E, 0x1C, 0x00,
- 0x18, 0x3C, 0x7E, 0x3C, 0x18, 0x00,
- 0x1C, 0x57, 0x7D, 0x57, 0x1C, 0x00,
- 0x1C, 0x5E, 0x7F, 0x5E, 0x1C, 0x00,
- 0x00, 0x18, 0x3C, 0x18, 0x00, 0x00,
- 0xFF, 0xE7, 0xC3, 0xE7, 0xFF, 0x00,
- 0x00, 0x18, 0x24, 0x18, 0x00, 0x00,
- 0xFF, 0xE7, 0xDB, 0xE7, 0xFF, 0x00,
- 0x30, 0x48, 0x3A, 0x06, 0x0E, 0x00,
- 0x26, 0x29, 0x79, 0x29, 0x26, 0x00,
- 0x40, 0x7F, 0x05, 0x05, 0x07, 0x00,
- 0x40, 0x7F, 0x05, 0x25, 0x3F, 0x00,
- 0x5A, 0x3C, 0xE7, 0x3C, 0x5A, 0x00,
- 0x7F, 0x3E, 0x1C, 0x1C, 0x08, 0x00,
- 0x08, 0x1C, 0x1C, 0x3E, 0x7F, 0x00,
- 0x14, 0x22, 0x7F, 0x22, 0x14, 0x00,
- 0x5F, 0x5F, 0x00, 0x5F, 0x5F, 0x00,
- 0x06, 0x09, 0x7F, 0x01, 0x7F, 0x00,
- 0x00, 0x66, 0x89, 0x95, 0x6A, 0x00,
- 0x60, 0x60, 0x60, 0x60, 0x60, 0x00,
- 0x94, 0xA2, 0xFF, 0xA2, 0x94, 0x00,
- 0x08, 0x04, 0x7E, 0x04, 0x08, 0x00,
- 0x10, 0x20, 0x7E, 0x20, 0x10, 0x00,
- 0x08, 0x08, 0x2A, 0x1C, 0x08, 0x00,
- 0x08, 0x1C, 0x2A, 0x08, 0x08, 0x00,
- 0x1E, 0x10, 0x10, 0x10, 0x10, 0x00,
- 0x0C, 0x1E, 0x0C, 0x1E, 0x0C, 0x00,
- 0x30, 0x38, 0x3E, 0x38, 0x30, 0x00,
- 0x06, 0x0E, 0x3E, 0x0E, 0x06, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x5F, 0x00, 0x00, 0x00,
- 0x00, 0x07, 0x00, 0x07, 0x00, 0x00,
- 0x14, 0x7F, 0x14, 0x7F, 0x14, 0x00,
- 0x24, 0x2A, 0x7F, 0x2A, 0x12, 0x00,
- 0x23, 0x13, 0x08, 0x64, 0x62, 0x00,
- 0x36, 0x49, 0x56, 0x20, 0x50, 0x00,
- 0x00, 0x08, 0x07, 0x03, 0x00, 0x00,
- 0x00, 0x1C, 0x22, 0x41, 0x00, 0x00,
- 0x00, 0x41, 0x22, 0x1C, 0x00, 0x00,
- 0x2A, 0x1C, 0x7F, 0x1C, 0x2A, 0x00,
- 0x08, 0x08, 0x3E, 0x08, 0x08, 0x00,
- 0x00, 0x80, 0x70, 0x30, 0x00, 0x00,
- 0x08, 0x08, 0x08, 0x08, 0x08, 0x00,
- 0x00, 0x00, 0x60, 0x60, 0x00, 0x00,
- 0x20, 0x10, 0x08, 0x04, 0x02, 0x00,
- 0x3E, 0x51, 0x49, 0x45, 0x3E, 0x00,
- 0x00, 0x42, 0x7F, 0x40, 0x00, 0x00,
- 0x72, 0x49, 0x49, 0x49, 0x46, 0x00,
- 0x21, 0x41, 0x49, 0x4D, 0x33, 0x00,
- 0x18, 0x14, 0x12, 0x7F, 0x10, 0x00,
- 0x27, 0x45, 0x45, 0x45, 0x39, 0x00,
- 0x3C, 0x4A, 0x49, 0x49, 0x31, 0x00,
- 0x41, 0x21, 0x11, 0x09, 0x07, 0x00,
- 0x36, 0x49, 0x49, 0x49, 0x36, 0x00,
- 0x46, 0x49, 0x49, 0x29, 0x1E, 0x00,
- 0x00, 0x00, 0x14, 0x00, 0x00, 0x00,
- 0x00, 0x40, 0x34, 0x00, 0x00, 0x00,
- 0x00, 0x08, 0x14, 0x22, 0x41, 0x00,
- 0x14, 0x14, 0x14, 0x14, 0x14, 0x00,
- 0x00, 0x41, 0x22, 0x14, 0x08, 0x00,
- 0x02, 0x01, 0x59, 0x09, 0x06, 0x00,
- 0x3E, 0x41, 0x5D, 0x59, 0x4E, 0x00,
- 0x7C, 0x12, 0x11, 0x12, 0x7C, 0x00,
- 0x7F, 0x49, 0x49, 0x49, 0x36, 0x00,
- 0x3E, 0x41, 0x41, 0x41, 0x22, 0x00,
- 0x7F, 0x41, 0x41, 0x41, 0x3E, 0x00,
- 0x7F, 0x49, 0x49, 0x49, 0x41, 0x00,
- 0x7F, 0x09, 0x09, 0x09, 0x01, 0x00,
- 0x3E, 0x41, 0x41, 0x51, 0x73, 0x00,
- 0x7F, 0x08, 0x08, 0x08, 0x7F, 0x00,
- 0x00, 0x41, 0x7F, 0x41, 0x00, 0x00,
- 0x20, 0x40, 0x41, 0x3F, 0x01, 0x00,
- 0x7F, 0x08, 0x14, 0x22, 0x41, 0x00,
- 0x7F, 0x40, 0x40, 0x40, 0x40, 0x00,
- 0x7F, 0x02, 0x1C, 0x02, 0x7F, 0x00,
- 0x7F, 0x04, 0x08, 0x10, 0x7F, 0x00,
- 0x3E, 0x41, 0x41, 0x41, 0x3E, 0x00,
- 0x7F, 0x09, 0x09, 0x09, 0x06, 0x00,
- 0x3E, 0x41, 0x51, 0x21, 0x5E, 0x00,
- 0x7F, 0x09, 0x19, 0x29, 0x46, 0x00,
- 0x26, 0x49, 0x49, 0x49, 0x32, 0x00,
- 0x03, 0x01, 0x7F, 0x01, 0x03, 0x00,
- 0x3F, 0x40, 0x40, 0x40, 0x3F, 0x00,
- 0x1F, 0x20, 0x40, 0x20, 0x1F, 0x00,
- 0x3F, 0x40, 0x38, 0x40, 0x3F, 0x00,
- 0x63, 0x14, 0x08, 0x14, 0x63, 0x00,
- 0x03, 0x04, 0x78, 0x04, 0x03, 0x00,
- 0x61, 0x59, 0x49, 0x4D, 0x43, 0x00,
- 0x00, 0x7F, 0x41, 0x41, 0x41, 0x00,
- 0x02, 0x04, 0x08, 0x10, 0x20, 0x00,
- 0x00, 0x41, 0x41, 0x41, 0x7F, 0x00,
- 0x04, 0x02, 0x01, 0x02, 0x04, 0x00,
- 0x40, 0x40, 0x40, 0x40, 0x40, 0x00,
- 0x00, 0x03, 0x07, 0x08, 0x00, 0x00,
- 0x20, 0x54, 0x54, 0x78, 0x40, 0x00,
- 0x7F, 0x28, 0x44, 0x44, 0x38, 0x00,
- 0x38, 0x44, 0x44, 0x44, 0x28, 0x00,
- 0x38, 0x44, 0x44, 0x28, 0x7F, 0x00,
- 0x38, 0x54, 0x54, 0x54, 0x18, 0x00,
- 0x00, 0x08, 0x7E, 0x09, 0x02, 0x00,
- 0x18, 0x24, 0x24, 0x1C, 0x78, 0x00,
- 0x7F, 0x08, 0x04, 0x04, 0x78, 0x00,
- 0x00, 0x44, 0x7D, 0x40, 0x00, 0x00,
- 0x20, 0x40, 0x40, 0x3D, 0x00, 0x00,
- 0x7F, 0x10, 0x28, 0x44, 0x00, 0x00,
- 0x00, 0x41, 0x7F, 0x40, 0x00, 0x00,
- 0x7C, 0x04, 0x78, 0x04, 0x78, 0x00,
- 0x7C, 0x08, 0x04, 0x04, 0x78, 0x00,
- 0x38, 0x44, 0x44, 0x44, 0x38, 0x00,
- 0x7C, 0x18, 0x24, 0x24, 0x18, 0x00,
- 0x18, 0x24, 0x24, 0x18, 0x7C, 0x00,
- 0x7C, 0x08, 0x04, 0x04, 0x08, 0x00,
- 0x48, 0x54, 0x54, 0x54, 0x24, 0x00,
- 0x04, 0x04, 0x3F, 0x44, 0x24, 0x00,
- 0x3C, 0x40, 0x40, 0x20, 0x7C, 0x00,
- 0x1C, 0x20, 0x40, 0x20, 0x1C, 0x00,
- 0x3C, 0x40, 0x30, 0x40, 0x3C, 0x00,
- 0x44, 0x28, 0x10, 0x28, 0x44, 0x00,
- 0x4C, 0x90, 0x90, 0x90, 0x7C, 0x00,
- 0x44, 0x64, 0x54, 0x4C, 0x44, 0x00,
- 0x00, 0x08, 0x36, 0x41, 0x00, 0x00,
- 0x00, 0x00, 0x77, 0x00, 0x00, 0x00,
- 0x00, 0x41, 0x36, 0x08, 0x00, 0x00,
- 0x02, 0x01, 0x02, 0x04, 0x02, 0x00,
- 0x3C, 0x26, 0x23, 0x26, 0x3C, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x7C, 0xFC,
- 0xFC, 0xF8, 0xF0, 0x00, 0x20, 0xF0,
- 0x20, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x80, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x08, 0x3C,
- 0xA8, 0xE0, 0xE0, 0xE0, 0xF0, 0x78,
- 0x7C, 0x7C, 0x7C, 0x3C, 0x1C, 0x00,
- 0x00, 0x00, 0xF8, 0xFC, 0x8C, 0x04,
- 0x04, 0x0C, 0x08, 0x10, 0x80, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x40, 0x60, 0xC0, 0x80,
- 0x80, 0xE0, 0xF0, 0xF8, 0x7C, 0x1C,
- 0x0C, 0x0C, 0x0C, 0x9C, 0xF8, 0x00,
- 0x00, 0x00, 0xF8, 0xFC, 0x8C, 0x04,
- 0x04, 0x0C, 0x08, 0x10, 0x80, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0xE0, 0xF0, 0xF0, 0xF0, 0xE0, 0xEC,
- 0xEE, 0xF7, 0xF3, 0x70, 0x20, 0x00,
- 0x7C, 0x7C, 0x7C, 0x7E, 0x00, 0x7E,
- 0x7E, 0x7E, 0x7F, 0x7F, 0x7F, 0x00,
- 0x00, 0x80, 0xC0, 0xE0, 0x7E, 0x5B,
- 0x4F, 0x5B, 0xFE, 0xC0, 0x00, 0x00,
- 0xC0, 0x00, 0xDC, 0xD7, 0xDE, 0xDE,
- 0xDE, 0xD7, 0xDC, 0x00, 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, 0x20, 0x70,
- 0x21, 0x3F, 0x0F, 0x1F, 0x3D, 0x3D,
- 0x3C, 0xBC, 0xBC, 0xFC, 0x7E, 0x7E,
- 0xF3, 0xF1, 0xE0, 0xC0, 0x80, 0x00,
- 0x00, 0x00, 0x00, 0x80, 0xC0, 0x20,
- 0x00, 0x00, 0x10, 0x38, 0xE0, 0xFF,
- 0xFF, 0xFF, 0xFF, 0xC0, 0x03, 0x02,
- 0x02, 0x07, 0x02, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x01, 0x03, 0x07, 0x8F,
- 0xCF, 0x7E, 0x7E, 0x3F, 0x3D, 0x3D,
- 0x3C, 0xBC, 0xBC, 0xF8, 0xF0, 0xFC,
- 0x84, 0x0E, 0x04, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x20,
- 0x70, 0x20, 0x20, 0xE0, 0x81, 0xFF,
- 0xFF, 0xFF, 0x7F, 0x03, 0x0E, 0x04,
- 0x00, 0x00, 0x02, 0x01, 0x00, 0x00,
- 0x00, 0x00, 0x01, 0x03, 0x07, 0x8F,
- 0xCF, 0x7E, 0x7E, 0x3F, 0x3D, 0x3D,
- 0x3C, 0xBC, 0xBC, 0xF8, 0xF0, 0xFC,
- 0x84, 0x0E, 0x04, 0x00, 0x00, 0x00,
- 0x0F, 0x1F, 0x3F, 0x7F, 0x7F, 0x7F,
- 0x7F, 0x7F, 0x3F, 0x1E, 0x0C, 0x00,
- 0x1F, 0x1F, 0x1F, 0x3F, 0x00, 0x3F,
- 0x3F, 0x3F, 0x7F, 0x7F, 0x7F, 0x00,
- 0x30, 0x7B, 0x7F, 0x78, 0x30, 0x20,
- 0x20, 0x30, 0x78, 0x7F, 0x3B, 0x00,
- 0x03, 0x00, 0x0F, 0x7F, 0x0F, 0x0F,
- 0x0F, 0x7F, 0x0F, 0x00, 0x03, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 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, 0x08, 0x10, 0x30,
- 0x20, 0x20, 0x31, 0x3F, 0x1F, 0x00,
- 0x00, 0x00, 0x00, 0x0F, 0x1C, 0x18,
- 0x18, 0x18, 0x1C, 0x1F, 0x0F, 0x07,
- 0x03, 0x00, 0x00, 0x01, 0x03, 0x01,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x04, 0x0F, 0x04, 0x00, 0x0F, 0x1F,
- 0x3F, 0x3F, 0x3E, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x1C, 0x1E, 0x1F,
- 0x1F, 0x1F, 0x0F, 0x07, 0x03, 0x03,
- 0x03, 0x0A, 0x1e, 0x08, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x04, 0x0F, 0x04, 0x00, 0x0f, 0x1F,
- 0x3F, 0x3F, 0x3f, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-};
-#endif \ No newline at end of file
diff --git a/users/dhertz/config.h b/users/dhertz/config.h
deleted file mode 100644
index 3f7762e650..0000000000
--- a/users/dhertz/config.h
+++ /dev/null
@@ -1,9 +0,0 @@
-#ifndef USERSPACE_CONFIG_H
-#define USERSPACE_CONFIG_H
-
-#ifdef TAPPING_TERM
-#undef TAPPING_TERM
-#endif // TAPPING_TERM
-#define TAPPING_TERM 200
-
-#endif // !USERSPACE_CONFIG_H
diff --git a/users/dhertz/dhertz.c b/users/dhertz/dhertz.c
deleted file mode 100644
index a4e3da6362..0000000000
--- a/users/dhertz/dhertz.c
+++ /dev/null
@@ -1,109 +0,0 @@
-// Copyright 2022 Dan Hertz (@dhertz)
-// SPDX-License-Identifier: GPL-3.0
-
-#include "dhertz.h"
-
-// Add reconfigurable functions here, for keymap customization
-// This allows for a global, userspace functions, and continued
-// customization of the keymap. Use _keymap instead of _user
-// functions in the keymaps
-__attribute__ ((weak))
-void matrix_init_keymap(void) {}
-
-__attribute__ ((weak))
-void matrix_scan_keymap(void) {}
-
-__attribute__ ((weak))
-bool process_record_keymap(uint16_t keycode, keyrecord_t *record) {
- return true;
-}
-__attribute__ ((weak))
-layer_state_t layer_state_set_keymap (layer_state_t state) {
- return state;
-}
-__attribute__ ((weak))
-void led_set_keymap(uint8_t usb_led) {}
-
-__attribute__ ((weak))
-void action_function_keymap(keyrecord_t *record, uint8_t id, uint8_t opt) {}
-
-// Call user matrix init, then call the keymap's init function
-void matrix_init_user(void) {
- matrix_init_keymap();
-}
-
-// No global matrix scan code, so just run keymap's matix
-// scan function
-void matrix_scan_user(void) {
- matrix_scan_keymap();
-}
-
-bool process_record_user(uint16_t keycode, keyrecord_t *record) {
- switch(keycode) {
- case CMD_TAB_CMD:
- mod_or_mod_with_macro(record, KC_LGUI, SS_TAP(X_TAB));
- return false;
- case CMD_GRV_CMD:
- mod_or_mod_with_macro(record, KC_RGUI, SS_TAP(X_GRAVE));
- return false;
- }
-
- if (record->event.pressed) {
- switch(keycode) {
- case HSH_TLD:
- if (get_mods()&(MOD_BIT(KC_LSFT)|MOD_BIT(KC_RSFT))) {
- SEND_STRING(SS_TAP(X_NONUS_BACKSLASH));
- } else {
- SEND_STRING(SS_LALT("3"));
- }
- break;
- case CTRL_A:
- SEND_STRING(SS_LCTL("a"));
- break;
- case CMD_ALT_C:
- SEND_STRING(SS_LGUI(SS_LALT("c")));
- break;
- case CMD_SFT_L:
- SEND_STRING(SS_LGUI("L"));
- break;
- case CMD_SFT_A:
- SEND_STRING(SS_LGUI("A"));
- break;
- case CMD_SFT_ALT_A:
- SEND_STRING(SS_LGUI(SS_LALT("A")));
- break;
- case ISO_COUNTRY_CODE:
- SEND_STRING("country_iso_alpha2_code");
- break;
- default:
- return process_record_keymap(keycode, record);
- }
- return false;
- }
- return process_record_keymap(keycode, record);
-}
-
-static uint16_t sunds_timer;
-
-void mod_or_mod_with_macro(keyrecord_t *record, uint16_t kc_mod, char* macro) {
- if (record->event.pressed) {
- sunds_timer = timer_read();
- register_code(kc_mod);
- } else {
- if (timer_elapsed(sunds_timer) < TAPPING_TERM) {
- send_string(macro);
- }
- unregister_code(kc_mod);
- }
-}
-
-// Runs state check and changes underglow color and animation
-// on layer change, no matter where the change was initiated
-// Then runs keymap's layer change check
-layer_state_t layer_state_set_user (layer_state_t state) {
- return layer_state_set_keymap (state);
-}
-
-void led_set_user(uint8_t usb_led) {
- led_set_keymap(usb_led);
-}
diff --git a/users/dhertz/dhertz.h b/users/dhertz/dhertz.h
deleted file mode 100644
index f980329fa5..0000000000
--- a/users/dhertz/dhertz.h
+++ /dev/null
@@ -1,28 +0,0 @@
-// Copyright 2022 Dan Hertz (@dhertz)
-// SPDX-License-Identifier: GPL-3.0
-
-#ifndef USERSPACE
-#define USERSPACE
-
-#include "quantum.h"
-
-#define SRCH_CTL CTL_T(KC_F19)
-#define LYR_SPC LT(1, KC_SPC)
-#define NC_CTL CTL_T(KC_F18)
-
-enum custom_keycodes {
- HSH_TLD = SAFE_RANGE,
- CTRL_A,
- CMD_ALT_C,
- CMD_SFT_L,
- ISO_COUNTRY_CODE,
- CMD_TAB_CMD,
- CMD_GRV_CMD,
- CMD_SFT_A,
- CMD_SFT_ALT_A,
- NEW_SAFE_RANGE,
-};
-
-void mod_or_mod_with_macro(keyrecord_t *record, uint16_t kc_mod, char* cmd_or_macro);
-
-#endif
diff --git a/users/dhertz/rules.mk b/users/dhertz/rules.mk
deleted file mode 100644
index 0643edfad7..0000000000
--- a/users/dhertz/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-SRC += dhertz.c
diff --git a/users/doogle999/doogle999.c b/users/doogle999/doogle999.c
deleted file mode 100644
index a5bd637ece..0000000000
--- a/users/doogle999/doogle999.c
+++ /dev/null
@@ -1,460 +0,0 @@
-#include "doogle999.h"
-
-static unsigned char inputLocation = 0; // Current index in text input
-
-static double calc(const char input[CALC_BUFFER_SIZE +1]) // Finds value of input char array, relatively small and fast I think
-{
- char inputToken[CALC_BUFFER_SIZE + 1]; // Input buffer, used when a single token (generally a number) takes up more
- unsigned char inputTokenLocation = 0, inputLocation = 0; // Keep track of indices
-
- struct Token tokens[CALC_BUFFER_SIZE + 1]; // Input, converted to tokens, one extra large to accomodate for possible negative sign then open parenthesis as first character
- unsigned char tokenCount = 0; // Keep track of index
-
- bool dashAsMinus = false; // Kind of a hacky solution to determining whether to treat a dash as a minus sign or a negative sign
-
- while(inputLocation < CALC_BUFFER_SIZE + 1)
- {
- char digit = input[inputLocation];
-
- if(inputLocation == 0 && input[inputLocation] == CALC_CHAR_SUB && input[inputLocation + 1] == CALC_CHAR_BEG)
- {
- tokens[tokenCount].raw.num = 0;
- tokens[tokenCount].isNum = true;
-
- tokenCount++;
- dashAsMinus = true;
- }
-
- if ((digit >= '0' && digit <= '9') || /* valid digit */
- (inputTokenLocation != 0 && input[inputLocation] == CALC_CHAR_DEC) || /* valid floating point */
- (!dashAsMinus && inputTokenLocation == 0 && input[inputLocation] == CALC_CHAR_SUB)) /* - is negative sign */
- {
- inputToken[inputTokenLocation] = input[inputLocation];
- inputTokenLocation++;
- inputLocation++;
- continue;
- }
-
- if(inputTokenLocation != 0)
- {
- // sscanf(inputToken, "%lf", &tokens[tokenCount].raw.num); // I would like to use sscanf here, but the small version of stdio.h on the chip doesn't allow sscanf or its sister functions to be used to process floats
- tokens[tokenCount].raw.num = atof(inputToken);
- tokens[tokenCount].isNum = true;
- for(unsigned char i = 0; i < inputTokenLocation + 1; i++)
- {
- inputToken[i] = '\0';
- }
- inputTokenLocation = 0;
- tokenCount++;
- dashAsMinus = true;
- continue;
- }
-
- /* inputTokenLocation == 0 */
- tokens[tokenCount].isNum = false;
- tokens[tokenCount].raw.op.c = input[inputLocation];
- tokens[tokenCount].raw.op.priority = 0;
- tokens[tokenCount].raw.op.ltr = true;
- dashAsMinus = false;
-
- switch(input[inputLocation])
- {
- case CALC_CHAR_BEG:
- break;
- case CALC_CHAR_END:
- dashAsMinus = true;
- break;
- case CALC_CHAR_ADD:
- tokens[tokenCount].raw.op.priority = CALC_PRIO_ADD;
- break;
- case CALC_CHAR_SUB:
- tokens[tokenCount].raw.op.priority = CALC_PRIO_SUB;
- break;
- case CALC_CHAR_MUL:
- tokens[tokenCount].raw.op.priority = CALC_PRIO_MUL;
- break;
- case CALC_CHAR_DIV:
- tokens[tokenCount].raw.op.priority = CALC_PRIO_DIV;
- break;
- case CALC_CHAR_EXP:
- tokens[tokenCount].raw.op.priority = CALC_PRIO_EXP;
- tokens[tokenCount].raw.op.ltr = false;
- break;
- case CALC_CHAR_SIN:
- case CALC_CHAR_COS:
- case CALC_CHAR_TAN:
- case CALC_CHAR_ASN:
- case CALC_CHAR_ACS:
- case CALC_CHAR_ATN:
- case CALC_CHAR_LGE:
- case CALC_CHAR_LOG:
- case CALC_CHAR_SQT:
- break;
- case CALC_CHAR_EUL:
- tokens[tokenCount].isNum = true;
- tokens[tokenCount].raw.num = CALC_VALU_EUL;
- dashAsMinus = true;
- break;
- case CALC_CHAR_PI:
- tokens[tokenCount].isNum = true;
- tokens[tokenCount].raw.num = CALC_VALU_PI;
- dashAsMinus = true;
- break;
- case '\0':
- tokenCount--;
- inputLocation = CALC_BUFFER_SIZE;
- break;
- default:
- tokenCount--;
- break;
- }
- tokenCount++;
- inputLocation++;
- }
-
- struct Token output[CALC_BUFFER_SIZE + 1]; // Final output tokens before evaluation
- struct Token opstack[CALC_BUFFER_SIZE + 1]; // Stack of operators
- unsigned char outputLocation = 0, opstackLocation = 0; // Keep track of indices
-
- unsigned char numBrackets = 0; // The number of parenthesis
-
- for(unsigned char i = 0; i < tokenCount; i++)
- {
- if(tokens[i].isNum)
- {
- output[outputLocation] = tokens[i];
- outputLocation++;
- }
- else if(tokens[i].raw.op.c == CALC_CHAR_BEG)
- {
- opstack[opstackLocation] = tokens[i];
- opstackLocation++;
- }
- else if(tokens[i].raw.op.c == CALC_CHAR_END)
- {
- while(opstack[opstackLocation - 1].raw.op.c != CALC_CHAR_BEG)
- {
- output[outputLocation] = opstack[opstackLocation - 1];
- outputLocation++;
- opstackLocation--;
- }
- opstackLocation--;
-
- numBrackets += 2;
- }
- else if(tokens[i].raw.op.priority == 0)
- {
- opstack[opstackLocation] = tokens[i];
- opstackLocation++;
- }
- else
- {
- while(opstackLocation != 0
- && (opstack[opstackLocation - 1].raw.op.priority == 0
- || tokens[i].raw.op.priority < opstack[opstackLocation - 1].raw.op.priority
- || (tokens[i].raw.op.priority == opstack[opstackLocation - 1].raw.op.priority && opstack[opstackLocation - 1].raw.op.ltr))
- && opstack[opstackLocation - 1].raw.op.c != CALC_CHAR_BEG)
- {
- output[outputLocation] = opstack[opstackLocation - 1];
- outputLocation++;
- opstackLocation--;
- }
- opstack[opstackLocation] = tokens[i];
- opstackLocation++;
- }
- }
-
- tokenCount -= numBrackets;
-
- for(signed char i = opstackLocation - 1; i >= 0; i--)
- {
- output[outputLocation] = opstack[i];
- outputLocation++;
- opstackLocation--;
- }
-
- double answer[CALC_BUFFER_SIZE];
- unsigned char answerLocation = 0;
-
- for(unsigned char i = 0; i < tokenCount; i++)
- {
- if(output[i].isNum)
- {
- answer[answerLocation] = output[i].raw.num;
- answerLocation++;
- continue;
- }
-
- if(output[i].raw.op.priority == 0)
- {
- if (answerLocation < 1) { /* not handled here -- ERROR? */ } else
- if(answerLocation >= 1)
- {
- double (*op)(double);
- switch(output[i].raw.op.c)
- {
- case CALC_CHAR_SIN:
- op = sin;
- break;
- case CALC_CHAR_COS:
- op = cos;
- break;
- case CALC_CHAR_TAN:
- op = tan;
- break;
- case CALC_CHAR_ASN:
- op = asin;
- break;
- case CALC_CHAR_ACS:
- op = acos;
- break;
- case CALC_CHAR_ATN:
- op = atan;
- break;
- case CALC_CHAR_LGE:
- op = log;
- break;
- case CALC_CHAR_LOG:
- op = log10;
- break;
- case CALC_CHAR_SQT:
- op = sqrt;
- break;
- default:
- continue; /* invalid input */
- }
- answer[answerLocation - 1] = op(answer[answerLocation - 1]);
- }
- }
- /* priority != 0 */
- else if(answerLocation >= 2)
- {
- switch(output[i].raw.op.c)
- {
- case CALC_CHAR_ADD:
- answer[answerLocation - 2] += answer[answerLocation - 1];
- break;
- case CALC_CHAR_SUB:
- answer[answerLocation - 2] -= answer[answerLocation - 1];
- break;
- case CALC_CHAR_MUL:
- answer[answerLocation - 2] *= answer[answerLocation - 1];
- break;
- case CALC_CHAR_DIV:
- answer[answerLocation - 2] /= answer[answerLocation - 1];
- break;
- case CALC_CHAR_EXP:
- answer[answerLocation - 2] = pow(answer[answerLocation - 2], answer[answerLocation - 1]);
- break;
- }
-
- answerLocation--;
- }
- }
-
- return answer[0];
-}
-
-/*
- * @returns 0 when nothing should happen and QMK should work as usual
- * @returns -1 when invalid input was given, QMK should ignore it
- * @returns -2 when BSP should be done
- * @returns -3 when CALC should be done
- * @returns -4 when ENDCALC should be done
- * @returns positive value of CALC_* when normal input was processed
- */
-static int process_input(const uint16_t keycode, const uint8_t mods, const keyevent_t event)
-{
- /* handle even when no key was pressed */
- if(!event.pressed)
- {
- switch(keycode)
- {
- /* QMK should handle those */
- case KC_RSFT:
- case KC_LSFT:
- return 0;
- break;
- }
- /* ??? ignore */
- return -1;
- }
-
- /* when shift key is pressed handle characters differently */
- char characterPressed;
- if((get_mods() & MODS_SHIFT_MASK))
- {
- switch(keycode)
- {
- case KC_9:
- characterPressed = CALC_CHAR_BEG;
- break;
- case KC_0:
- characterPressed = CALC_CHAR_END;
- break;
- case KC_EQUAL:
- characterPressed = CALC_CHAR_ADD;
- break;
- case KC_KP_PLUS:
- characterPressed = CALC_CHAR_ADD;
- break;
- case KC_6:
- characterPressed = CALC_CHAR_EXP;
- break;
- case KC_8:
- characterPressed = CALC_CHAR_MUL;
- break;
- case KC_KP_ASTERISK:
- characterPressed = CALC_CHAR_MUL;
- break;
- case KC_S:
- characterPressed = CALC_CHAR_ASN;
- break;
- case KC_C:
- characterPressed = CALC_CHAR_ACS;
- break;
- case KC_T:
- characterPressed = CALC_CHAR_ATN;
- break;
- case KC_L:
- characterPressed = CALC_CHAR_LOG;
- break;
- default:
- return -1;
- break;
- }
- return characterPressed;
- }
-
- /* normal key handling: shift not pressed */
-
- /* digits */
- if (keycode == KC_KP_0 || keycode == KC_0) {
- return '0';
- } else if (keycode >= KC_KP_1 && keycode <= KC_KP_9) {
- return keycode - KC_KP_1 +1 + '0';
- } else if (keycode >= KC_1 && keycode <= KC_9) {
- return keycode - KC_1 +1 + '0';
- }
-
- /* other tokens */
- switch (keycode) {
- case KC_MINUS:
- case KC_KP_MINUS:
- return characterPressed = CALC_CHAR_SUB;
- case KC_SLASH:
- case KC_KP_SLASH:
- return characterPressed = CALC_CHAR_DIV;
- case KC_S:
- return characterPressed = CALC_CHAR_SIN;
- case KC_C:
- return characterPressed = CALC_CHAR_COS;
- case KC_T:
- return characterPressed = CALC_CHAR_TAN;
- case KC_Q:
- return characterPressed = CALC_CHAR_SQT;
- case KC_L:
- return characterPressed = CALC_CHAR_LGE;
- case KC_DOT:
- case KC_KP_DOT:
- return characterPressed = CALC_CHAR_DEC;
- case KC_P:
- return characterPressed = CALC_CHAR_PI;
- case KC_E:
- return characterPressed = CALC_CHAR_EUL;
- case KC_BSPC:
- return -2;
- case KC_RSFT:
- return 0;
- case KC_LSFT:
- return 0;
- case CALC:
- return -3;
- case ENDCALC:
- return -4;
- default:
- return -1;
- }
-}
-
-bool process_record_user(uint16_t keycode, keyrecord_t* record)
-{
- static char text[CALC_BUFFER_SIZE + 1]; // Used to store input and then output when ready to print
- static char backspaceText[CALC_BUFFER_SIZE + 1]; // Pretty dumb waste of memory because only backspace characters, used with send_string to backspace and remove input
-
- if((get_highest_layer(layer_state) == CALC_LAYER && CALC_FORCE_NUM_LOCK_INSIDE_CALC) || (get_highest_layer(layer_state) != CALC_LAYER && CALC_FORCE_NUM_LOCK_OUTSIDE_CALC))
- {
- bool numpadKeyPressed = record->event.pressed &&
- !(get_mods() & MODS_SHIFT_MASK) &&
- /* KC_KP_1, KC_KP_2, ..., KC_KP_0, KC_KP_DOT */
- (keycode >= KC_KP_1 && keycode <= KC_KP_DOT);
-
- if(numpadKeyPressed && !host_keyboard_led_state().num_lock)
- {
- add_key(KC_NUM_LOCK);
- send_keyboard_report();
- del_key(KC_NUM_LOCK);
- }
- }
-
- if(get_highest_layer(layer_state) != CALC_LAYER) { return true; }
-
- int action = process_input(keycode, get_mods(), record->event);
- switch(action)
- {
- case 0:
- return true;
- case -1:
- return false;
- case -2:
- if(inputLocation > 0)
- {
- inputLocation--;
- text[inputLocation] = '\0';
- backspaceText[0] = (char)8;
- backspaceText[1] = '\0';
- send_string(backspaceText);
- }
- return false;
- case -3:
- for(int i = 0; i < inputLocation; i++)
- {
- backspaceText[i] = (char)8;
- }
- send_string(backspaceText);
- dtostrf(calc(text), CALC_PRINT_SIZE, CALC_PRINT_SIZE, text);
- send_string(text);
- for(unsigned char i = 0; i < CALC_BUFFER_SIZE; i++)
- {
- text[i] = '\0';
- backspaceText[i] = '\0';
- }
- inputLocation = 0;
- return false;
- case -4:
- for(unsigned char i = 0; i < CALC_BUFFER_SIZE; i++)
- {
- text[i] = '\0';
- backspaceText[i] = '\0';
- }
- inputLocation = 0;
- layer_off(CALC_LAYER);
- return false;
- default:
- break;
- }
- char characterPressed = (char)action;
-
- if(inputLocation < CALC_BUFFER_SIZE)
- {
- text[inputLocation] = characterPressed;
- inputLocation++;
-
- char characterToSend[2];
- characterToSend[0] = characterPressed;
- characterToSend[1] = '\0';
-
- send_string(characterToSend);
- }
- return false;
-}
diff --git a/users/doogle999/doogle999.h b/users/doogle999/doogle999.h
deleted file mode 100644
index 44c7c19fd9..0000000000
--- a/users/doogle999/doogle999.h
+++ /dev/null
@@ -1,99 +0,0 @@
-#ifndef USERSPACE
-#define USERSPACE
-
-#include "quantum.h"
-
-#define NO_ACTION_ONESHOT
-#define NO_ACTION_MACRO
-
-#define MODS_SHIFT_MASK (MOD_BIT(KC_LSFT)|MOD_BIT(KC_RSFT))
-
-// Layer the calculator is on
-#define CALC_LAYER 2
-
-// Inside is whether when you are in calc mode it should automatically force numlock, outside is whether it should do it outside of calculator mode
-#define CALC_FORCE_NUM_LOCK_INSIDE_CALC true
-#define CALC_FORCE_NUM_LOCK_OUTSIDE_CALC true
-
-// Maximum number of characters the calculator can have
-#define CALC_BUFFER_SIZE 32
-
-// Minimum width of the printed text / the number of decimal places
-#define CALC_PRINT_SIZE 6
-
-/*-----
- Special
------*/
-#define CALC_CHAR_BEG '('
-#define CALC_CHAR_END ')'
-#define CALC_CHAR_DEC '.'
-
-/*-----
- Operators - Can add more here such as modulo %, factorial !
------*/
-#define CALC_CHAR_ADD '+'
-#define CALC_PRIO_ADD 1
-
-#define CALC_CHAR_SUB '-'
-#define CALC_PRIO_SUB 1
-
-#define CALC_CHAR_MUL '*'
-#define CALC_PRIO_MUL 2
-
-#define CALC_CHAR_DIV '/'
-#define CALC_PRIO_DIV 2
-
-#define CALC_CHAR_EXP '^'
-#define CALC_PRIO_EXP 3
-
-/*-----
- Functions
------*/
-#define CALC_CHAR_SIN 's'
-#define CALC_CHAR_COS 'c'
-#define CALC_CHAR_TAN 't'
-
-#define CALC_CHAR_ASN 'S'
-#define CALC_CHAR_ACS 'C'
-#define CALC_CHAR_ATN 'T'
-
-#define CALC_CHAR_LGE 'l'
-#define CALC_CHAR_LOG 'L'
-
-#define CALC_CHAR_SQT 'q'
-
-/*-----
- Constants
------*/
-#define CALC_CHAR_EUL 'e'
-#define CALC_VALU_EUL 2.71828182845904523536
-
-#define CALC_CHAR_PI 'p'
-#define CALC_VALU_PI 3.14159265358979323846
-
-struct OP // Operator/function
-{
- char c;
- unsigned char priority;
- bool ltr;
-};
-
-union TokenRaw // A token after the input has been processed, can either be a number or an operator/function
-{
- double num;
- struct OP op;
-};
-
-struct Token // Encapsulator
-{
- bool isNum;
- union TokenRaw raw;
-};
-
-enum CalcFunctions // Hardware calculator key functionality
-{
- CALC = SAFE_RANGE,
- ENDCALC
-};
-
-#endif
diff --git a/users/doogle999/readme.md b/users/doogle999/readme.md
deleted file mode 100644
index e108555b9c..0000000000
--- a/users/doogle999/readme.md
+++ /dev/null
@@ -1,41 +0,0 @@
-Copyright 2018 <name> <email> @doogle999
-
-Overview
-========
-
-This folder is just for some calculator code for my keyboards.
-
-Making Your Keyboard Into A Calculator
---------------------------------------
-
-If you'd like to make your keyboard into a calculator, you can do it with this userspace (hopefully!)
-
-You can make a keymap for your keyboard of choice named doogle999 and then you can make it regularly.
-
-You should make one layer that is just the functionality for your calculator, so it just has the keys you need (numbers, symbols, some letters for functions). It should also have END_CALC and CALC somewhere. END_CALC gets you out of calculator mode, and CALC evaluates the calculation.
-
-On one of your other keymaps you should make a key that is TO(layer of calculator). This is how you will activate the calculator. You should also define the layer your calculator is on with the define CALC_LAYER in doogle999.h (this means that for all your keyboards, your calculator layer has to be the same layer).
-
-You can change what characters coorespond to what operators and functions and you can add more functions in doogle999.h and doogle999.c, you can also change which characters are sued for which keys. However, as of now standard keys should be used for operations. By that I mean if you want your multiplication sign to be an x, you should change the CALC_CHAR_MUL to an x but you should keep your multiplication keycode on the keymap either as KC_8 (shifted) or KC_KP_ASTERISK. This might be changed in the future so there are custom keycodes so this is less of a pain and more intuitive.
-
-You can look at my dz60 keymap doogle999 for an example.
-
-Issues
-------
-Unfortunately the chip onboard my dz60 only does single precision floating point numbers, but I have everything set up as double so if your chip supports doubles it should work for you.
-
-This Was Here When I Made The ReadMe
-------------------------------------
-
-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/>. \ No newline at end of file
diff --git a/users/doogle999/rules.mk b/users/doogle999/rules.mk
deleted file mode 100644
index aab01b2433..0000000000
--- a/users/doogle999/rules.mk
+++ /dev/null
@@ -1,14 +0,0 @@
-SRC += doogle999.c
-
-CFLAGS += -fstrict-aliasing -ftree-vrp
-
-BOOTMAGIC_ENABLE = no # Enable Bootmagic Lite
-MOUSEKEY_ENABLE = no # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-CONSOLE_ENABLE = no # Console for debug(+400)
-COMMAND_ENABLE = no # Commands for debug and configuration
-SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
-NKRO_ENABLE = yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
-BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
-AUDIO_ENABLE = no
-RGBLIGHT_ENABLE = yes
diff --git a/users/draevin/LICENSE b/users/draevin/LICENSE
deleted file mode 100644
index 33c17847d9..0000000000
--- a/users/draevin/LICENSE
+++ /dev/null
@@ -1,14 +0,0 @@
-Copyright 2020 Draevin Luke <contact@drae.vin> @draevin
-
-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/>.
diff --git a/users/draevin/README.md b/users/draevin/README.md
deleted file mode 100644
index e635fdf22f..0000000000
--- a/users/draevin/README.md
+++ /dev/null
@@ -1,38 +0,0 @@
-# Userspace - Draevin
-
-## Notable Files
-
-- [draevin.h](draevin.h) - Standard layers, keys, and tap dance key and config for all my boards
-- [draevin.c](draevin.c) - Colemak/QWERTY switch, KC_MAKE, and Shift/CAPS TD
-- [wrappers](wrappers.h) - QWERTY, Colemak, F Row, Num Row, and `_FN` layer layout wrappers
-
-## Keymap themes
-
-Some general ideas shared between my maps
-
-- Colemak and QWERTY layouts
- - In wrappers
- - All are Colemak default with `CM_QW` switch
-- Nav and punctuation `_FN` layer
- - In wrappers
- - Right hand home arrows
- - Pinky `HOME`/`END` for ***speed***
- - Inner grouping symbols to decrease reach
-- Split space
- - Left thumb `MO(_FN)` is standard, but on the wrong side in the Quefrency map (silly soldering error, but not bad enough to fix)
- - Quefrency is still *technically* split though, right? `*<:^)`
-- Re-organized right mods
- - Personal preference on wanting easier right thumb `CTRL`
-- Real `DEL` key
- - I can't seem to get away from it with layering, so all my maps have a delete key
- - Sinc/Quefrency have it in the +5 column on the right
- - DZ60 has it in the split backspace
-- `KC_MAKE`
-
-## Keymaps
-
-- [DZ60](../../keyboards/dz60/keymaps/draevin/keymap.c)
-- [Sinc 80](../../keyboards/keebio/sinc/keymaps/draevin/keymap.c)
-- [Quefrency 65 w/ Macro](../../keyboards/keebio/quefrency/keymaps/draevin/keymap.c)
- - Horribly under-utilized macro block because I thought I needed more keys than I actually do (so sad)
- - Left side volume and paging rotary
diff --git a/users/draevin/config.h b/users/draevin/config.h
deleted file mode 100644
index 9a3bb74374..0000000000
--- a/users/draevin/config.h
+++ /dev/null
@@ -1,26 +0,0 @@
-/*
-Copyright 2020 Copyright 2020 Draevin Luke <contact@drae.vin> @draevin
-
-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 TAPPING_TOGGLE 2
-#define TAPPING_TERM 150
-
-#define MOUSEKEY_WHEEL_DELAY 20
-#define MOUSEKEY_WHEEL_INTERVAL 80
-#define MOUSEKEY_WHEEL_MAX_SPEED 4
-#define MOUSEKEY_WHEEL_TIME_TO_MAX 30 \ No newline at end of file
diff --git a/users/draevin/draevin.c b/users/draevin/draevin.c
deleted file mode 100644
index 70b465a33d..0000000000
--- a/users/draevin/draevin.c
+++ /dev/null
@@ -1,59 +0,0 @@
-/*
-Copyright 2020 Copyright 2020 Draevin Luke <contact@drae.vin> @draevin
-
-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 "draevin.h"
-
-bool process_record_user(uint16_t keycode, keyrecord_t *record) {
- switch (keycode) {
- case CM_QW: // Switch between Colemak and QWERTY
- if (record->event.pressed) {
- layer_invert(_CM);
- layer_invert(_QW);
- }
- return false;
- case KC_MAKE:
- if (!record->event.pressed) {
- SEND_STRING("make " QMK_KEYBOARD ":" QMK_KEYMAP ":flash\n");
- reset_keyboard();
- }
- break;
- case PRNPAIR:
- if (record->event.pressed) {
- SEND_STRING("()");
- tap_code(KC_LEFT);
- }
- break;
- case BRCPAIR:
- if (record->event.pressed) {
- uint8_t shifted = get_mods() & (MOD_MASK_SHIFT);
- if (shifted) {
- unregister_code(KC_LSFT);
- unregister_code(KC_RSFT);
- SEND_STRING("{}"SS_TAP(X_LEFT));
- }
- else {
- SEND_STRING("[]"SS_TAP(X_LEFT));
- }
- }
- break;
- }
- return true;
-}
-
-tap_dance_action_t tap_dance_actions[] = {
- [TD_CAPS] = ACTION_TAP_DANCE_DOUBLE(KC_LSFT, KC_CAPS) // shift/caps TD
-};
diff --git a/users/draevin/draevin.h b/users/draevin/draevin.h
deleted file mode 100644
index 20dc77d993..0000000000
--- a/users/draevin/draevin.h
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
-Copyright 2020 Copyright 2020 Draevin Luke <contact@drae.vin> @draevin
-
-This program is free software: you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program. If not, see <http://www.gnu.org/licenses/>.
-*/
-
-#pragma once
-
-#include QMK_KEYBOARD_H
-#include "wrappers.h"
-
-enum my_layers {
- _CM,
- _QW,
- _FN,
-};
-
-enum my_keycodes {
- CM_QW = SAFE_RANGE, // Switch between Colemak and QWERTY
- KC_MAKE,
- PRNPAIR,
- BRCPAIR,
- NEW_SAFE_RANGE
-};
-
-enum my_taps {
- TD_CAPS // shift/caps TD
-};
diff --git a/users/draevin/rules.mk b/users/draevin/rules.mk
deleted file mode 100644
index 1fc377e231..0000000000
--- a/users/draevin/rules.mk
+++ /dev/null
@@ -1,12 +0,0 @@
-SRC += draevin.c
-
-LTO_ENABLE = yes
-MOUSEKEY_ENABLE = yes
-RGBLIGHT_ENABLE = yes
-TAP_DANCE_ENABLE = yes
-
-AUDIO_ENABLE = no
-BACKLIGHT_ENABLE = no
-BOOTMAGIC_ENABLE = no # Enable Bootmagic Lite
-CONSOLE_ENABLE = no
-SLEEP_LED_ENABLE = no \ No newline at end of file
diff --git a/users/draevin/wrappers.h b/users/draevin/wrappers.h
deleted file mode 100644
index 006a9aa996..0000000000
--- a/users/draevin/wrappers.h
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
-Copyright 2020 Copyright 2020 Draevin Luke <contact@drae.vin> @draevin
-
-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 ___________________BLANK___________________ _______, _______, _______, _______, _______
-
-#define _________________FROW_LEFT_________________ KC_F1, KC_F2, KC_F3, KC_F4, KC_F5
-#define _________________FROW_RIGHT________________ KC_F6, KC_F7, KC_F8, KC_F9, KC_F10
-
-#define ________________NUMBER_LEFT________________ KC_1, KC_2, KC_3, KC_4, KC_5
-#define ________________NUMBER_RIGHT_______________ KC_6, KC_7, KC_8, KC_9, KC_0
-
-#define _________________COLEMAK_L1________________ KC_Q, KC_W, KC_F, KC_P, KC_G
-#define _________________COLEMAK_L2________________ KC_A, KC_R, KC_S, KC_T, KC_D
-#define _________________COLEMAK_L3________________ KC_Z, KC_X, KC_C, KC_V, KC_B
-
-#define _________________COLEMAK_R1________________ KC_J, KC_L, KC_U, KC_Y, KC_SCLN
-#define _________________COLEMAK_R2________________ KC_H, KC_N, KC_E, KC_I, KC_O
-#define _________________COLEMAK_R3________________ KC_K, KC_M, KC_COMM, KC_DOT, KC_SLASH
-
-#define _________________QWERTY_L1_________________ KC_Q, KC_W, KC_E, KC_R, KC_T
-#define _________________QWERTY_L2_________________ KC_A, KC_S, KC_D, KC_F, KC_G
-#define _________________QWERTY_L3_________________ KC_Z, KC_X, KC_C, KC_V, KC_B
-
-#define _________________QWERTY_R1_________________ KC_Y, KC_U, KC_I, KC_O, KC_P
-#define _________________QWERTY_R2_________________ KC_H, KC_J, KC_K, KC_L, KC_SCLN
-#define _________________QWERTY_R3_________________ KC_N, KC_M, KC_COMM, KC_DOT, KC_SLASH
-
-#define ___________________FN_L1___________________ _______, _______, KC_WH_U, _______, BRCPAIR
-#define ___________________FN_L2___________________ KC_HOME, _______, KC_WH_D, _______, PRNPAIR
-
-#define ___________________FN_R1___________________ KC_RBRC, _______, KC_UP, _______, _______
-#define ___________________FN_R2___________________ KC_RPRN, KC_LEFT, KC_DOWN, KC_RGHT, KC_END
-#define ___________________FN_R3___________________ _______, _______, RGB_TOG, RGB_MOD, KC_BSLS
diff --git a/users/drashna/.gitignore b/users/drashna/.gitignore
deleted file mode 100644
index f84d34d907..0000000000
--- a/users/drashna/.gitignore
+++ /dev/null
@@ -1,3 +0,0 @@
-secrets.c
-secrets.h
-drashna_song_list.h \ No newline at end of file
diff --git a/users/drashna/.gitlab-ci.yml b/users/drashna/.gitlab-ci.yml
deleted file mode 100644
index 71d216267f..0000000000
--- a/users/drashna/.gitlab-ci.yml
+++ /dev/null
@@ -1,24 +0,0 @@
-stages:
- - test
-
-QMK Firmware:
- stage: test
- variables:
- GIT_SUBMODULE_STRATEGY: recursive
- tags:
- - linux
- image: qmkfm/base_container
- before_script:
- - apt-get update -qy
- - apt-get install -y build-essential avr-libc binutils-arm-none-eabi binutils-avr dfu-programmer dfu-util gcc gcc-arm-none-eabi git libnewlib-arm-none-eabi gcc-avr python3 unzip wget zip
- - avr-gcc --version
- - uname -a
- script:
- - make planck/rev6:default planck/rev5:default
- - make all:drashna -j2
- artifacts:
- name: "$CI_JOB_NAME-$CI_COMMIT_REF_SLUG"
- paths:
- - ./*.hex
- - ./*.bin
- expire_in: 1 month
diff --git a/users/drashna/audio_config.h b/users/drashna/audio_config.h
deleted file mode 100644
index 21fe27ee6b..0000000000
--- a/users/drashna/audio_config.h
+++ /dev/null
@@ -1,33 +0,0 @@
-// Copyright 2020 Christopher Courtney, aka Drashna Jael're (@drashna) <drashna@live.com>
-// SPDX-License-Identifier: GPL-2.0-or-later
-
-#pragma once
-
-#define AUDIO_CLICKY
-#define AUDIO_CLICKY_FREQ_RANDOMNESS 1.5f
-
-#if __has_include("user_song_list.h")
-# include "user_song_list.h"
-#endif
-
-#ifdef USER_SONG_LIST
-# define STARTUP_SONG SONG(RICK_ROLL)
-# define GOODBYE_SONG SONG(SONIC_RING)
-# define DEFAULT_LAYER_SONGS \
- { SONG(QWERTY_SOUND), SONG(COLEMAK_SOUND), SONG(DVORAK_SOUND), SONG(OVERWATCH_THEME) }
-# define UNICODE_SONG_MAC SONG(MARIO_THEME)
-# define UNICODE_SONG_LNX SONG(MARIO_POWERUP)
-# define UNICODE_SONG_WIN SONG(MARIO_ONEUP)
-# define UNICODE_SONG_BSD SONG(RICK_ROLL)
-# define UNICODE_SONG_WINC SONG(RICK_ROLL)
-#else
-# define STARTUP_SONG SONG(STARTUP_SOUND)
-# define GOODBYE_SONG SONG(GOODBYE_SOUND)
-# define DEFAULT_LAYER_SONGS \
- { SONG(QWERTY_SOUND), SONG(COLEMAK_SOUND), SONG(DVORAK_SOUND), SONG(WORKMAN_SOUND) }
-# define UNICODE_SONG_MAC SONG(QWERTY_SOUND)
-# define UNICODE_SONG_LNX SONG(COLEMAK_SOUND)
-# define UNICODE_SONG_WIN SONG(DVORAK_SOUND)
-# define UNICODE_SONG_BSD SONG(WORKMAN_SOUND)
-# define UNICODE_SONG_WINC SONG(PLOVER_GOODBYE_SOUND)
-#endif
diff --git a/users/drashna/autocorrect_data.h b/users/drashna/autocorrect_data.h
deleted file mode 100644
index 52ed7fa9a7..0000000000
--- a/users/drashna/autocorrect_data.h
+++ /dev/null
@@ -1,93 +0,0 @@
-#if __has_include("../qmk_secrets/autocorrection_data.h")
-# pragma message "Loading custom library"
-# include "../qmk_secrets/autocorrection_data.h"
-# define AUTOCORRECTION_MIN_LENGTH AUTOCORRECT_MIN_LENGTH
-# define AUTOCORRECTION_MAX_LENGTH AUTOCORRECT_MAX_LENGTH
-
-#else
-// Generated code.
-
-// Autocorrection dictionary (70 entries):
-// :guage -> gauge
-// :the:the: -> the
-// :thier -> their
-// :ture -> true
-// accomodate -> accommodate
-// acommodate -> accommodate
-// aparent -> apparent
-// aparrent -> apparent
-// apparant -> apparent
-// apparrent -> apparent
-// aquire -> acquire
-// becuase -> because
-// cauhgt -> caught
-// cheif -> chief
-// choosen -> chosen
-// cieling -> ceiling
-// collegue -> colleague
-// concensus -> consensus
-// contians -> contains
-// cosnt -> const
-// dervied -> derived
-// fales -> false
-// fasle -> false
-// fitler -> filter
-// flase -> false
-// foward -> forward
-// frequecy -> frequency
-// gaurantee -> guarantee
-// guaratee -> guarantee
-// heigth -> height
-// heirarchy -> hierarchy
-// inclued -> include
-// interator -> iterator
-// intput -> input
-// invliad -> invalid
-// lenght -> length
-// liasion -> liaison
-// libary -> library
-// listner -> listener
-// looses: -> loses
-// looup -> lookup
-// manefist -> manifest
-// namesapce -> namespace
-// namespcae -> namespace
-// occassion -> occasion
-// occured -> occurred
-// ouptut -> output
-// ouput -> output
-// overide -> override
-// postion -> position
-// priviledge -> privilege
-// psuedo -> pseudo
-// recieve -> receive
-// refered -> referred
-// relevent -> relevant
-// repitition -> repetition
-// retrun -> return
-// retun -> return
-// reuslt -> result
-// reutrn -> return
-// saftey -> safety
-// seperate -> separate
-// singed -> signed
-// stirng -> string
-// strign -> string
-// swithc -> switch
-// swtich -> switch
-// thresold -> threshold
-// udpate -> update
-// widht -> width
-
-#define AUTOCORRECT_MIN_LENGTH 5 // ":ture"
-#define AUTOCORRECT_MAX_LENGTH 10 // "accomodate"
-
-#define DICTIONARY_SIZE 1104
-
-static const uint8_t autocorrect_data[DICTIONARY_SIZE] PROGMEM = {108, 43, 0, 6, 71, 0, 7, 81, 0, 8, 199, 0, 9, 240, 1, 10, 250, 1, 11, 26, 2, 17, 53, 2, 18, 190, 2, 19, 202, 2, 21, 212, 2, 22, 20, 3, 23, 67, 3, 28, 16, 4, 0, 72, 50, 0, 22, 60, 0, 0, 11, 23, 44, 8, 11, 23, 44, 0, 132, 0, 8, 22, 18, 18, 15, 0, 132, 115, 101, 115, 0, 11, 23, 12, 26, 22, 0, 129, 99, 104, 0, 68, 94, 0, 8, 106, 0, 15, 174, 0, 21, 187, 0, 0, 12, 15, 25, 17, 12, 0, 131, 97, 108, 105, 100, 0, 74, 119, 0, 12, 129, 0, 21, 140, 0, 24, 165, 0, 0, 17, 12, 22, 0, 131, 103, 110, 101, 100, 0, 25, 21, 8, 7, 0, 131, 105, 118, 101, 100, 0, 72, 147, 0, 24, 156, 0, 0, 9, 8, 21, 0, 129, 114, 101, 100, 0, 6, 6, 18, 0, 129, 114, 101, 100, 0, 15, 6, 17, 12, 0, 129, 100, 101, 0, 18, 22, 8, 21, 11, 23, 0, 130, 104, 111,
- 108, 100, 0, 4, 26, 18, 9, 0, 131, 114, 119, 97, 114, 100, 0, 68, 233, 0, 6, 246, 0, 7, 4, 1, 8, 16, 1, 10, 52, 1, 15, 81, 1, 21, 90, 1, 22, 117, 1, 23, 144, 1, 24, 215, 1, 25, 228, 1, 0, 6, 19, 22, 8, 16, 4, 17, 0, 130, 97, 99, 101, 0, 19, 4, 22, 8, 16, 4, 17, 0, 131, 112, 97, 99, 101, 0, 12, 21, 8, 25, 18, 0, 130, 114, 105, 100, 101, 0, 23, 0, 68, 25, 1, 17, 36, 1, 0, 21, 4, 24, 10, 0, 130, 110, 116, 101, 101, 0, 4, 21, 24, 4, 10, 0, 135, 117, 97, 114, 97, 110, 116, 101, 101, 0, 68, 59, 1, 7, 69, 1, 0, 24, 10, 44, 0, 131, 97, 117, 103, 101, 0, 8, 15, 12, 25, 12, 21, 19, 0, 130, 103, 101, 0, 22, 4, 9, 0, 130, 108, 115, 101, 0, 76, 97, 1, 24, 109, 1, 0, 24, 20, 4, 0, 132, 99, 113, 117, 105, 114, 101, 0, 23, 44, 0,
- 130, 114, 117, 101, 0, 4, 0, 79, 126, 1, 24, 134, 1, 0, 9, 0, 131, 97, 108, 115, 101, 0, 6, 8, 5, 0, 131, 97, 117, 115, 101, 0, 4, 0, 71, 156, 1, 19, 193, 1, 21, 203, 1, 0, 18, 16, 0, 80, 166, 1, 18, 181, 1, 0, 18, 6, 4, 0, 135, 99, 111, 109, 109, 111, 100, 97, 116, 101, 0, 6, 6, 4, 0, 132, 109, 111, 100, 97, 116, 101, 0, 7, 24, 0, 132, 112, 100, 97, 116, 101, 0, 8, 19, 8, 22, 0, 132, 97, 114, 97, 116, 101, 0, 10, 8, 15, 15, 18, 6, 0, 130, 97, 103, 117, 101, 0, 8, 12, 6, 8, 21, 0, 131, 101, 105, 118, 101, 0, 12, 8, 11, 6, 0, 130, 105, 101, 102, 0, 17, 0, 76, 3, 2, 21, 16, 2, 0, 15, 8, 12, 6, 0, 133, 101, 105, 108, 105, 110, 103, 0, 12, 23, 22, 0, 131, 114, 105, 110, 103, 0, 70, 33, 2, 23, 44, 2, 0, 12, 23, 26, 22, 0, 131, 105,
- 116, 99, 104, 0, 10, 12, 8, 11, 0, 129, 104, 116, 0, 72, 69, 2, 10, 80, 2, 18, 89, 2, 21, 156, 2, 24, 167, 2, 0, 22, 18, 18, 11, 6, 0, 131, 115, 101, 110, 0, 12, 21, 23, 22, 0, 129, 110, 103, 0, 12, 0, 86, 98, 2, 23, 124, 2, 0, 68, 105, 2, 22, 114, 2, 0, 12, 15, 0, 131, 105, 115, 111, 110, 0, 4, 6, 6, 18, 0, 131, 105, 111, 110, 0, 76, 131, 2, 22, 146, 2, 0, 23, 12, 19, 8, 21, 0, 134, 101, 116, 105, 116, 105, 111, 110, 0, 18, 19, 0, 131, 105, 116, 105, 111, 110, 0, 23, 24, 8, 21, 0, 131, 116, 117, 114, 110, 0, 85, 174, 2, 23, 183, 2, 0, 23, 8, 21, 0, 130, 117, 114, 110, 0, 8, 21, 0, 128, 114, 110, 0, 7, 8, 24, 22, 19, 0, 131, 101, 117, 100, 111, 0, 24, 18, 18, 15, 0, 129, 107, 117, 112, 0, 72, 219, 2, 18, 3, 3, 0, 76, 229, 2, 15, 238,
- 2, 17, 248, 2, 0, 11, 23, 44, 0, 130, 101, 105, 114, 0, 23, 12, 9, 0, 131, 108, 116, 101, 114, 0, 23, 22, 12, 15, 0, 130, 101, 110, 101, 114, 0, 23, 4, 21, 8, 23, 17, 12, 0, 135, 116, 101, 114, 97, 116, 111, 114, 0, 72, 30, 3, 17, 38, 3, 24, 51, 3, 0, 15, 4, 9, 0, 129, 115, 101, 0, 4, 12, 23, 17, 18, 6, 0, 131, 97, 105, 110, 115, 0, 22, 17, 8, 6, 17, 18, 6, 0, 133, 115, 101, 110, 115, 117, 115, 0, 74, 86, 3, 11, 96, 3, 15, 118, 3, 17, 129, 3, 22, 218, 3, 24, 232, 3, 0, 11, 24, 4, 6, 0, 130, 103, 104, 116, 0, 71, 103, 3, 10, 110, 3, 0, 12, 26, 0, 129, 116, 104, 0, 17, 8, 15, 0, 129, 116, 104, 0, 22, 24, 8, 21, 0, 131, 115, 117, 108, 116, 0, 68, 139, 3, 8, 150, 3, 22, 210, 3, 0, 21, 4, 19, 19, 4, 0, 130, 101, 110, 116, 0, 85, 157,
- 3, 25, 200, 3, 0, 68, 164, 3, 21, 175, 3, 0, 19, 4, 0, 132, 112, 97, 114, 101, 110, 116, 0, 4, 19, 0, 68, 185, 3, 19, 193, 3, 0, 133, 112, 97, 114, 101, 110, 116, 0, 4, 0, 131, 101, 110, 116, 0, 8, 15, 8, 21, 0, 130, 97, 110, 116, 0, 18, 6, 0, 130, 110, 115, 116, 0, 12, 9, 8, 17, 4, 16, 0, 132, 105, 102, 101, 115, 116, 0, 83, 239, 3, 23, 6, 4, 0, 87, 246, 3, 24, 254, 3, 0, 17, 12, 0, 131, 112, 117, 116, 0, 18, 0, 130, 116, 112, 117, 116, 0, 19, 24, 18, 0, 131, 116, 112, 117, 116, 0, 70, 29, 4, 8, 41, 4, 11, 51, 4, 21, 69, 4, 0, 8, 24, 20, 8, 21, 9, 0, 129, 110, 99, 121, 0, 23, 9, 4, 22, 0, 130, 101, 116, 121, 0, 6, 21, 4, 21, 12, 8, 11, 0, 135, 105, 101, 114, 97, 114, 99, 104, 121, 0, 4, 5, 12, 15, 0, 130, 114, 97, 114, 121, 0};
-#endif
diff --git a/users/drashna/bootmagic_better.c b/users/drashna/bootmagic_better.c
deleted file mode 100644
index fa1078e37d..0000000000
--- a/users/drashna/bootmagic_better.c
+++ /dev/null
@@ -1,56 +0,0 @@
-// Copyright 2020 Christopher Courtney, aka Drashna Jael're (@drashna) <drashna@live.com>
-// SPDX-License-Identifier: GPL-2.0-or-later
-
-#include "drashna.h"
-#include "bootmagic_lite.h"
-
-void bootmagic_lite(void) {
- bool perform_reset = false;
- // We need multiple scans because debouncing can't be turned off.
- matrix_scan();
-#if defined(DEBOUNCE) && DEBOUNCE > 0
- wait_ms(DEBOUNCE * 2);
-#else
- wait_ms(30);
-#endif
- matrix_scan();
-
- // If the configured key (commonly Esc) is held down on power up,
- // reset the EEPROM valid state and jump to bootloader.
- // This isn't very generalized, but we need something that doesn't
- // rely on user's keymaps in firmware or EEPROM.
- uint8_t row = BOOTMAGIC_LITE_ROW, col = BOOTMAGIC_LITE_COLUMN;
-#if defined(BOOTMAGIC_LITE_EEPROM_ROW) && defined(BOOTMAGIC_LITE_EEPROM_COLUMN)
- uint8_t row_e = BOOTMAGIC_LITE_EEPROM_ROW, col_e = BOOTMAGIC_LITE_EEPROM_COLUMN;
-#endif
-
-#if defined(SPLIT_KEYBOARD) && defined(BOOTMAGIC_LITE_ROW_RIGHT) && defined(BOOTMAGIC_LITE_COLUMN_RIGHT)
- if (!is_keyboard_left()) {
- row = BOOTMAGIC_LITE_ROW_RIGHT;
- col = BOOTMAGIC_LITE_COLUMN_RIGHT;
-# if defined(BOOTMAGIC_LITE_EEPROM_ROW) && defined(BOOTMAGIC_LITE_EEPROM_COLUMN) && defined(BOOTMAGIC_LITE_EEPROM_ROW_RIGHT) && defined(BOOTMAGIC_LITE_EEPROM_COLUMN_RIGHT)
- row_e = BOOTMAGIC_LITE_EEPROM_ROW_RIGHT;
- col_e = BOOTMAGIC_LITE_EEPROM_COLUMN_RIGHT;
-# endif
- }
-#endif
-
-#if defined(BOOTMAGIC_LITE_EEPROM_ROW) && defined(BOOTMAGIC_LITE_EEPROM_COLUMN)
- if (matrix_get_row(row_e) & (1 << col_e)) {
- eeconfig_disable();
- perform_reset = true;
- }
-#endif
- if (matrix_get_row(row) & (1 << col)) {
- perform_reset = true;
- }
-#if defined(STM32F411xE) && !defined(CONVERTER_ENABLED)
- if (!readPin(A0)) {
- perform_reset = true;
- }
-#endif
-
- if (perform_reset) {
- bootloader_jump();
- }
-}
diff --git a/users/drashna/callbacks.c b/users/drashna/callbacks.c
deleted file mode 100644
index cab7e5278f..0000000000
--- a/users/drashna/callbacks.c
+++ /dev/null
@@ -1,293 +0,0 @@
-// Copyright 2021 Christopher Courtney, aka Drashna Jael're (@drashna) <drashna@live.com>
-// SPDX-License-Identifier: GPL-2.0-or-later
-
-#include "drashna.h"
-
-#ifdef CUSTOM_DYNAMIC_MACROS_ENABLE
-# include "keyrecords/dynamic_macros.h"
-#endif
-#ifdef I2C_SCANNER_ENABLE
-void housekeeping_task_i2c_scanner(void);
-void keyboard_post_init_i2c(void);
-#endif
-
-__attribute__((weak)) void keyboard_pre_init_keymap(void) {}
-void keyboard_pre_init_user(void) {
- eeconfig_read_user_config(&userspace_config.raw);
- if (!userspace_config.check) {
- eeconfig_init_user();
- }
- keyboard_pre_init_keymap();
-}
-// Add reconfigurable functions here, for keymap customization
-// This allows for a global, userspace functions, and continued
-// customization of the keymap. Use _keymap instead of _user
-// functions in the keymaps
-// Call user matrix init, set default RGB colors and then
-// call the keymap's init function
-
-#ifdef CUSTOM_QUANTUM_PAINTER_ENABLE
-void keyboard_post_init_qp(void);
-#endif
-
-#if defined(OS_DETECTION_ENABLE) && defined(DEFERRED_EXEC_ENABLE)
-uint32_t startup_exec(uint32_t trigger_time, void *cb_arg);
-#endif
-
-__attribute__((weak)) void keyboard_post_init_keymap(void) {}
-void keyboard_post_init_user(void) {
-#if defined(CUSTOM_RGBLIGHT)
- keyboard_post_init_rgb_light();
-#endif
-#if defined(CUSTOM_RGB_MATRIX)
- keyboard_post_init_rgb_matrix();
-#endif
-#if defined(SPLIT_KEYBOARD) && defined(SPLIT_TRANSACTION_IDS_USER)
- keyboard_post_init_transport_sync();
-#endif
-#ifdef I2C_SCANNER_ENABLE
- keyboard_post_init_i2c();
-#endif
-#ifdef CUSTOM_UNICODE_ENABLE
- keyboard_post_init_unicode();
-#endif
-
-#if defined(BOOTLOADER_CATERINA) && defined(__AVR__) && defined(__AVR_ATmega32U4__)
- DDRD &= ~(1 << 5);
- PORTD &= ~(1 << 5);
-
- DDRB &= ~(1 << 0);
- PORTB &= ~(1 << 0);
-#endif
-#ifdef CUSTOM_DYNAMIC_MACROS_ENABLE
- dynamic_macro_init();
-#endif
-#if defined(OS_DETECTION_ENABLE) && defined(DEFERRED_EXEC_ENABLE)
- defer_exec(100, startup_exec, NULL);
-#endif
-
- keyboard_post_init_keymap();
-}
-
-#ifdef RGB_MATRIX_ENABLE
-void rgb_matrix_update_pwm_buffers(void);
-#endif
-
-__attribute__((weak)) void shutdown_keymap(void) {}
-void shutdown_user(void) {
-#ifdef RGBLIGHT_ENABLE
- rgblight_enable_noeeprom();
- rgblight_mode_noeeprom(1);
- rgblight_setrgb(rgblight_get_val(), 0x00, 0x00);
-#endif // RGBLIGHT_ENABLE
-#ifdef RGB_MATRIX_ENABLE
- rgb_matrix_set_color_all(rgb_matrix_get_val(), 0x00, 0x00);
- rgb_matrix_update_pwm_buffers();
-#endif // RGB_MATRIX_ENABLE
-#ifdef OLED_ENABLE
- oled_off();
-#endif
-
- shutdown_keymap();
-}
-
-__attribute__((weak)) void suspend_power_down_keymap(void) {}
-
-void suspend_power_down_user(void) {
- if (layer_state_is(_GAMEPAD)) {
- layer_off(_GAMEPAD);
- }
- if (layer_state_is(_DIABLO)) {
- layer_off(_DIABLO);
- }
- if (layer_state_is(_DIABLOII)) {
- layer_off(_DIABLOII);
- }
-#ifdef OLED_ENABLE
- oled_off();
-#endif
- suspend_power_down_keymap();
-}
-
-__attribute__((weak)) void suspend_wakeup_init_keymap(void) {}
-void suspend_wakeup_init_user(void) {
- suspend_wakeup_init_keymap();
-}
-
-// No global matrix scan code, so just run keymap's matrix
-// scan function
-__attribute__((weak)) void matrix_scan_keymap(void) {}
-void matrix_scan_user(void) {
- matrix_scan_keymap();
-}
-
-#ifdef AUDIO_ENABLE
-float doom_song[][2] = SONG(E1M1_DOOM);
-#endif
-
-// on layer change, no matter where the change was initiated
-// Then runs keymap's layer change check
-__attribute__((weak)) layer_state_t layer_state_set_keymap(layer_state_t state) {
- return state;
-}
-layer_state_t layer_state_set_user(layer_state_t state) {
- state = update_tri_layer_state(state, _RAISE, _LOWER, _ADJUST);
-#if defined(CUSTOM_POINTING_DEVICE)
- state = layer_state_set_pointing(state);
-#endif
-#if defined(CUSTOM_RGBLIGHT)
- state = layer_state_set_rgb_light(state);
-#endif // CUSTOM_RGBLIGHT
-#if defined(AUDIO_ENABLE)
- static bool is_gamepad_on = false;
- if (layer_state_cmp(state, _GAMEPAD) != is_gamepad_on) {
- static bool is_click_on = false;
- is_gamepad_on = layer_state_cmp(state, _GAMEPAD);
- if (is_gamepad_on) {
- is_click_on = is_clicky_on();
- if (is_click_on) {
- clicky_off();
- }
- PLAY_LOOP(doom_song);
- } else {
- if (is_click_on) {
- clicky_on();
- }
- stop_all_notes();
- }
- }
-#endif
- state = layer_state_set_keymap(state);
-
-#ifdef CONSOLE_ENABLE
- char layer_buffer[16 + 5];
- format_layer_bitmap_string(layer_buffer, state, default_layer_state);
- dprintf("layer state: %s\n", layer_buffer);
-#endif
-
- return state;
-}
-
-// Runs state check and changes underglow color and animation
-__attribute__((weak)) layer_state_t default_layer_state_set_keymap(layer_state_t state) {
- return state;
-}
-
-#if defined(AUDIO_ENABLE) && defined(DEFAULT_LAYER_SONGS)
-static float default_layer_songs[][MAX_LAYER][2] = DEFAULT_LAYER_SONGS;
-#endif
-
-layer_state_t default_layer_state_set_user(layer_state_t state) {
- if (!is_keyboard_master()) {
- return state;
- }
-
- state = default_layer_state_set_keymap(state);
-#if defined(CUSTOM_RGBLIGHT)
- state = default_layer_state_set_rgb_light(state);
-#endif
-
- static bool has_init_been_ran = false;
- // We don't want to run this the first time it's called, since it's read from eeeprom and called
- // as part of the startup process. But after that, it's okay.
- if (has_init_been_ran) {
-#if defined(AUDIO_ENABLE) && defined(DEFAULT_LAYER_SONGS)
- if (get_highest_layer(state) < MAX_LAYER) {
- PLAY_SONG(default_layer_songs[get_highest_layer(state)]);
- }
-#endif
- eeconfig_update_default_layer(state);
- } else {
- has_init_been_ran = true;
- }
-
- return state;
-}
-
-__attribute__((weak)) void led_set_keymap(uint8_t usb_led) {}
-void led_set_user(uint8_t usb_led) {
- led_set_keymap(usb_led);
-}
-
-__attribute__((weak)) void eeconfig_init_keymap(void) {}
-void eeconfig_init_user(void) {
- userspace_config.raw = 0;
- userspace_config.rgb_layer_change = true;
- userspace_config.check = true;
-#if defined(OLED_ENABLE)
- userspace_config.oled_brightness = OLED_BRIGHTNESS;
-#else
- userspace_config.oled_brightness = 255;
-#endif
- eeconfig_update_user_config(&userspace_config.raw);
- eeconfig_init_keymap();
-}
-
-void eeconfig_init_user_datablock(void) {
-#if (EECONFIG_USER_DATA_SIZE) > 4
- uint8_t eeconfig_empty_temp[(EECONFIG_USER_DATA_SIZE)-4] = {0};
- eeconfig_update_user_data(eeconfig_empty_temp);
-#endif
-}
-
-#ifdef SPLIT_KEYBOARD
-__attribute__((weak)) void matrix_slave_scan_keymap(void) {}
-void matrix_slave_scan_user(void) {
-# if defined(AUDIO_ENABLE)
-# if !defined(NO_MUSIC_MODE)
- music_task();
-# endif
-# ifdef AUDIO_INIT_DELAY
- if (!is_keyboard_master()) {
- static bool delayed_tasks_run = false;
- static uint16_t delayed_task_timer = 0;
- if (!delayed_tasks_run) {
- if (!delayed_task_timer) {
- delayed_task_timer = timer_read();
- } else if (timer_elapsed(delayed_task_timer) > 300) {
- audio_startup();
- delayed_tasks_run = true;
- }
- }
- }
-# endif
-# endif
-# ifdef SEQUENCER_ENABLE
- sequencer_task();
-# endif
-# ifdef LED_MATRIX_ENABLE
- led_matrix_task();
-# endif
-# ifdef HAPTIC_ENABLE
- haptic_task();
-# endif
-
- matrix_slave_scan_keymap();
-}
-#endif
-
-__attribute__((weak)) void housekeeping_task_keymap(void) {}
-void housekeeping_task_user(void) {
- static bool has_ran_yet;
- if (!has_ran_yet) {
- has_ran_yet = true;
- startup_user();
- }
-#ifdef TAP_DANCE_ENABLE // Run Diablo 3 macro checking code.
- run_diablo_macro_check();
-#endif // TAP_DANCE_ENABLE
-#if defined(CUSTOM_RGB_MATRIX)
- housekeeping_task_rgb_matrix();
-#endif
-#ifdef I2C_SCANNER_ENABLE
- housekeeping_task_i2c_scanner();
-#endif
-#ifdef CUSTOM_OLED_DRIVER
- housekeeping_task_oled();
-#endif
-#if defined(SPLIT_KEYBOARD) && defined(SPLIT_TRANSACTION_IDS_USER)
- housekeeping_task_transport_sync();
-#endif
-
- housekeeping_task_keymap();
-}
diff --git a/users/drashna/callbacks.h b/users/drashna/callbacks.h
deleted file mode 100644
index d3d260378d..0000000000
--- a/users/drashna/callbacks.h
+++ /dev/null
@@ -1,26 +0,0 @@
-// Copyright 2021 Christopher Courtney, aka Drashna Jael're (@drashna) <drashna@live.com>
-// SPDX-License-Identifier: GPL-2.0-or-later
-
-#pragma once
-
-#include "quantum.h"
-
-void keyboard_post_init_keymap(void);
-void matrix_init_secret(void);
-void shutdown_keymap(void);
-void suspend_power_down_keymap(void);
-void suspend_wakeup_init_keymap(void);
-void matrix_scan_keymap(void);
-void matrix_scan_secret(void);
-layer_state_t layer_state_set_keymap(layer_state_t state);
-layer_state_t default_layer_state_set_keymap(layer_state_t state);
-void led_set_keymap(uint8_t usb_led);
-void eeconfig_init_keymap(void);
-void housekeeping_task_keymap(void);
-
-#ifdef CUSTOM_UNICODE_ENABLE
-void keyboard_post_init_unicode(void);
-#endif
-#ifdef SPLIT_KEYBOARD
-void matrix_slave_scan_keymap(void);
-#endif
diff --git a/users/drashna/callbacks.md b/users/drashna/callbacks.md
deleted file mode 100644
index e23f7f6d86..0000000000
--- a/users/drashna/callbacks.md
+++ /dev/null
@@ -1,66 +0,0 @@
-# Custom Userspace Callback Functions
-
-Specifically QMK works by using customized callback functions for everything. This allows for multiple levels of customization.
-
-`matrix_scan` calls `matrix_scan_kb`, which calls `matrix_scan_user`.
-`process_record` calls a bunch of stuff, but eventually calls `process_record_kb` which calls `process_record_user`
-The same goes for `matrix_init`, `layer_state_set`, `led_set`, and a few other functions.
-
-All (most) `_user` functions are handled here, in the userspace instead. To allow keyboard specific configuration, I've created `_keymap` functions that can be called by the keymap.c files instead.
-
-This allows for keyboard specific configuration while maintaining the ability to customize the board.
-
-My [Ergodox EZ Keymap](https://github.com/qmk/qmk_firmware/blob/master/layouts/community/ergodox/drashna/keymap.c) is a good example of this, as it uses the LEDs as modifier indicators.
-
-You can see a list of these files in [callbacks.c](callbacks.c), or a shortend list here
-
-```c
-__attribute__((weak)) void keyboard_post_init_keymap(void) {}
-void keyboard_post_init_user(void) {
- keyboard_post_init_keymap();
-}
-
-__attribute__((weak)) void matrix_scan_keymap(void) {}
-void matrix_scan_user(void) {
- matrix_scan_keymap();
-}
-
-__attribute__ ((weak)) bool process_record_keymap(uint16_t keycode, keyrecord_t *record) { return true; }
-bool process_record_user(uint16_t keycode, keyrecord_t *record) {
- if (!process_record_keymap(keycode, record)) { return false; }
- return true;
-}
-
-__attribute__((weak)) layer_state_t layer_state_set_keymap(layer_state_t state) { return state; }
-layer_state_t layer_state_set_user(layer_state_t state) {
- state = layer_state_set_keymap(state);
- return state;
-}
-
-__attribute__ ((weak)) void led_set_keymap(uint8_t usb_led) {}
-void led_set_user(uint8_t usb_led) {
- led_set_keymap(usb_led);
-}
-
-__attribute__ ((weak)) void suspend_power_down_keymap(void) {}
-void suspend_power_down_user(void) {
- suspend_power_down_keymap();
-}
-
-__attribute__ ((weak)) void suspend_wakeup_init_keymap(void) {}
-void suspend_wakeup_init_user(void) {
- suspend_wakeup_init_keymap();
-}
-
-
-__attribute__ ((weak)) void shutdown_keymap(void) {}
-void shutdown_user (void) {
- shutdown_keymap();
-}
-
-__attribute__ ((weak)) void eeconfig_init_keymap(void) {}
-void eeconfig_init_user(void) {
- eeconfig_update_user(0);
- eeconfig_init_keymap();
-}
-```
diff --git a/users/drashna/config.h b/users/drashna/config.h
deleted file mode 100644
index ec9bbf1afb..0000000000
--- a/users/drashna/config.h
+++ /dev/null
@@ -1,115 +0,0 @@
-// Copyright 2020 Christopher Courtney, aka Drashna Jael're (@drashna) <drashna@live.com>
-// SPDX-License-Identifier: GPL-2.0-or-later
-
-#pragma once
-
-#ifdef IS_COMMAND
-# undef IS_COMMAND
-#endif
-#define IS_COMMAND() (((get_mods() | get_oneshot_mods()) & MOD_MASK_SHIFT) == MOD_MASK_SHIFT)
-
-#if defined(SPLIT_KEYBOARD)
-# include "split/split_config.h"
-#endif
-#ifdef RGBLIGHT_ENABLE
-# include "rgb/rgblight_config.h"
-#endif // RGBLIGHT_ENABLE
-
-#ifdef RGB_MATRIX_ENABLE
-# include "rgb/rgb_matrix_config.h"
-#endif // RGB_MATRIX_ENABLE
-
-#ifdef OLED_ENABLE
-# include "oled/oled_config.h"
-#endif
-
-#ifdef POINTING_DEVICE_ENABLE
-# include "pointing/pointing_config.h"
-#endif // POINTING_DEVICE_ENABLE
-
-#ifdef AUDIO_ENABLE
-# include "audio_config.h"
-#endif // AUDIO_ENABLE
-
-#if defined(WPM_ENABLE)
-// # define WPM_LAUNCH_CONTROL
-// # define WPM_UNFILTERED
-# define WPM_ALLOW_COUNT_REGRESSION
-# define WPM_SAMPLE_SECONDS 10
-# define WPM_SAMPLE_PERIODS 50
-# define WPM_ESTIMATED_WORD_SIZE 5
-#endif
-
-#define UNICODE_SELECTED_MODES UNICODE_MODE_WINCOMPOSE, UNICODE_MODE_MACOS
-
-#ifndef ONESHOT_TAP_TOGGLE
-# define ONESHOT_TAP_TOGGLE 2
-#endif // !ONESHOT_TAP_TOGGLE
-
-#ifndef ONESHOT_TIMEOUT
-# define ONESHOT_TIMEOUT 3000
-#endif // !ONESHOT_TIMEOUT
-
-#if defined(PER_KEY_TAPPING)
-# define PERMISSIVE_HOLD_PER_KEY
-# define QUICK_TAP_TERM_PER_KEY
-# define HOLD_ON_OTHER_KEY
-# define RETRO_TAPPING_PER_KEY
-# define HOLD_ON_OTHER_KEY_PRESS_PER_KEY
-# define TAPPING_TERM_PER_KEY
-#else
-# undef PERMISSIVE_HOLD
-#endif
-
-#ifndef TAPPING_TOGGLE
-# define TAPPING_TOGGLE 1
-#endif
-
-#define TAP_CODE_DELAY 5
-
-/* Disable unused and unneeded features to reduce on firmware size */
-#ifdef LOCKING_SUPPORT_ENABLE
-# undef LOCKING_SUPPORT_ENABLE
-#endif
-#ifdef LOCKING_RESYNC_ENABLE
-# undef LOCKING_RESYNC_ENABLE
-#endif
-
-#ifdef CONVERT_TO_PROTON_C
-// pins that are available but not present on Pro Micro
-# define A3 PAL_LINE(GPIOA, 3)
-# define A4 PAL_LINE(GPIOA, 4)
-# define A5 PAL_LINE(GPIOA, 5)
-# define A6 PAL_LINE(GPIOA, 6)
-# define A7 PAL_LINE(GPIOA, 7)
-# define A8 PAL_LINE(GPIOA, 8)
-# define A13 PAL_LINE(GPIOA, 13)
-# define A14 PAL_LINE(GPIOA, 14)
-# define A15 PAL_LINE(GPIOA, 15)
-# define B10 PAL_LINE(GPIOB, 10)
-# define B11 PAL_LINE(GPIOB, 11)
-# define B12 PAL_LINE(GPIOB, 12)
-# define C13 PAL_LINE(GPIOC, 13)
-# define C14 PAL_LINE(GPIOC, 14)
-# define C15 PAL_LINE(GPIOC, 15)
-#endif
-
-#define ENABLE_COMPILE_KEYCODE
-
-#define BOTH_SHIFTS_TURNS_ON_CAPS_WORD
-
-/* --- PRINTF_BYTE_TO_BINARY macro's --- */
-#define PRINTF_BINARY_PATTERN_INT8 "%c%c%c%c%c%c%c%c"
-#define PRINTF_BYTE_TO_BINARY_INT8(i) (((i)&0x80ll) ? '1' : '0'), (((i)&0x40ll) ? '1' : '0'), (((i)&0x20ll) ? '1' : '0'), (((i)&0x10ll) ? '1' : '0'), (((i)&0x08ll) ? '1' : '0'), (((i)&0x04ll) ? '1' : '0'), (((i)&0x02ll) ? '1' : '0'), (((i)&0x01ll) ? '1' : '0')
-
-#define PRINTF_BINARY_PATTERN_INT16 PRINTF_BINARY_PATTERN_INT8 " " PRINTF_BINARY_PATTERN_INT8
-#define PRINTF_BYTE_TO_BINARY_INT16(i) PRINTF_BYTE_TO_BINARY_INT8((i) >> 8), PRINTF_BYTE_TO_BINARY_INT8(i)
-#define PRINTF_BINARY_PATTERN_INT32 PRINTF_BINARY_PATTERN_INT16 " " PRINTF_BINARY_PATTERN_INT16
-#define PRINTF_BYTE_TO_BINARY_INT32(i) PRINTF_BYTE_TO_BINARY_INT16((i) >> 16), PRINTF_BYTE_TO_BINARY_INT16(i)
-#define PRINTF_BINARY_PATTERN_INT64 PRINTF_BINARY_PATTERN_INT32 " " PRINTF_BINARY_PATTERN_INT32
-#define PRINTF_BYTE_TO_BINARY_INT64(i) PRINTF_BYTE_TO_BINARY_INT32((i) >> 32), PRINTF_BYTE_TO_BINARY_INT32(i)
-/* --- end macros --- */
-
-#ifndef EECONFIG_USER_DATA_SIZE
-# define EECONFIG_USER_DATA_SIZE 8
-#endif
diff --git a/users/drashna/drashna.c b/users/drashna/drashna.c
deleted file mode 100644
index b8ccbb028c..0000000000
--- a/users/drashna/drashna.c
+++ /dev/null
@@ -1,319 +0,0 @@
-// Copyright 2020 Christopher Courtney, aka Drashna Jael're (@drashna) <drashna@live.com>
-// SPDX-License-Identifier: GPL-2.0-or-later
-
-#include "drashna.h"
-#include <stdio.h>
-#include <ctype.h>
-
-userspace_config_t userspace_config;
-
-/**
- * @brief Handle registering a keycode, with optional modifer based on timed event
- *
- * @param code keycode to send to host
- * @param mod_code modifier to send with code, if held for tapping term or longer
- * @param pressed the press/release event (can use "record->event.pressed" for this)
- * @return true exits function
- * @return false exits function
- */
-bool mod_key_press_timer(uint16_t code, uint16_t mod_code, bool pressed) {
- static uint16_t this_timer;
- mod_key_press(code, mod_code, pressed, this_timer);
- return false;
-}
-
-/**
- * @brief Handle registation of keycode, with optional modifier based on custom timer
- *
- * @param code keycode to send to host
- * @param mod_code modifier keycode to send with code, if held for tapping term or longer
- * @param pressed the press/release event
- * @param this_timer custom timer to use
- * @return true
- * @return false
- */
-bool mod_key_press(uint16_t code, uint16_t mod_code, bool pressed, uint16_t this_timer) {
- if (pressed) {
- this_timer = timer_read();
- } else {
- if (timer_elapsed(this_timer) < TAPPING_TERM) {
- tap_code(code);
- } else {
- register_code(mod_code);
- tap_code(code);
- unregister_code(mod_code);
- }
- }
- return false;
-}
-
-/**
- * @brief Performs exact match for modifier values
- *
- * @param value the modifer varible (get_mods/get_oneshot_mods/get_weak_mods)
- * @param mask the modifier mask to check for
- * @return true Has the exact modifiers specifed
- * @return false Does not have the exact modifiers specified
- */
-bool hasAllBitsInMask(uint8_t value, uint8_t mask) {
- value &= 0xF;
- mask &= 0xF;
-
- return (value & mask) == mask;
-}
-
-/**
- * @brief Tap keycode, with no mods
- *
- * @param kc keycode to use
- */
-void tap_code16_nomods(uint16_t kc) {
- uint8_t temp_mod = get_mods();
- clear_mods();
- clear_oneshot_mods();
- tap_code16(kc);
- set_mods(temp_mod);
-}
-
-#ifdef I2C_SCANNER_ENABLE
-# include "i2c_master.h"
-# include "debug.h"
-
-# ifndef I2C_SCANNER_TIMEOUT
-# define I2C_SCANNER_TIMEOUT 50
-# endif
-
-i2c_status_t i2c_start_bodge(uint8_t address, uint16_t timeout) {
- i2c_start(address);
-
- // except on ChibiOS where the only way is do do "something"
- uint8_t data = 0;
- return i2c_readReg(address, 0, &data, sizeof(data), I2C_SCANNER_TIMEOUT);
-}
-
-# define i2c_start i2c_start_bodge
-
-void do_scan(void) {
- uint8_t nDevices = 0;
-
- dprintf("Scanning...\n");
-
- for (uint8_t address = 1; address < 127; address++) {
- // The i2c_scanner uses the return value of
- // i2c_start to see if a device did acknowledge to the address.
- i2c_status_t error = i2c_start(address << 1, I2C_SCANNER_TIMEOUT);
- if (error == I2C_STATUS_SUCCESS) {
- i2c_stop();
- xprintf(" I2C device found at address 0x%02X\n", I2C_SCANNER_TIMEOUT);
- nDevices++;
- } else {
- // dprintf(" Unknown error (%u) at address 0x%02X\n", error, address);
- }
- }
-
- if (nDevices == 0)
- xprintf("No I2C devices found\n");
- else
- xprintf("done\n");
-}
-
-uint16_t scan_timer = 0;
-
-void housekeeping_task_i2c_scanner(void) {
- if (timer_elapsed(scan_timer) > 5000) {
- do_scan();
- scan_timer = timer_read();
- }
-}
-
-void keyboard_post_init_i2c(void) {
- i2c_init();
- scan_timer = timer_read();
-}
-#endif
-
-#if defined(AUTOCORRECT_ENABLE)
-# if defined(AUDIO_ENABLE)
-# ifdef USER_SONG_LIST
-float autocorrect_song[][2] = SONG(MARIO_GAMEOVER);
-# else
-float autocorrect_song[][2] = SONG(PLOVER_GOODBYE_SOUND);
-# endif
-# endif
-
-bool apply_autocorrect(uint8_t backspaces, const char* str, char *typo, char *correct) {
- if (layer_state_is(_GAMEPAD)) {
- return false;
- }
- // TO-DO use unicode stuff for this. Will probably have to reverse engineer
- // send string to get working properly, to send char string.
-
-# if defined(AUDIO_ENABLE)
- PLAY_SONG(autocorrect_song);
-# endif
- return true;
-}
-#endif
-
-#if defined(CAPS_WORD_ENABLE)
-bool caps_word_press_user(uint16_t keycode) {
- switch (keycode) {
- // Keycodes that continue Caps Word, with shift applied.
- case KC_MINS:
- if (!keymap_config.swap_lctl_lgui) {
- return true;
- }
- case KC_A ... KC_Z:
- add_weak_mods(MOD_BIT(KC_LSFT)); // Apply shift to next key.
- return true;
-
- // Keycodes that continue Caps Word, without shifting.
- case KC_1 ... KC_0:
- case KC_BSPC:
- case KC_DEL:
- case KC_UNDS:
- return true;
-
- default:
- return false; // Deactivate Caps Word.
- }
-}
-
-# if !defined(NO_ACTION_ONESHOT)
-void oneshot_locked_mods_changed_user(uint8_t mods) {
- if (mods & MOD_MASK_SHIFT) {
- del_mods(MOD_MASK_SHIFT);
- set_oneshot_locked_mods(~MOD_MASK_SHIFT & get_oneshot_locked_mods());
- caps_word_on();
- }
-}
-# endif
-#endif
-
-void format_layer_bitmap_string(char *buffer, layer_state_t state, layer_state_t default_state) {
- for (int i = 0; i < 16; i++) {
- if (i == 0 || i == 4 || i == 8 || i == 12) {
- *buffer = ' ';
- ++buffer;
- }
-
- uint8_t layer = i;
- if ((default_state & ((layer_state_t)1 << layer)) != 0) {
- *buffer = 'D';
- } else if ((state & ((layer_state_t)1 << layer)) != 0) {
- *buffer = '1';
- } else {
- *buffer = '_';
- }
- ++buffer;
- }
- *buffer = 0;
-}
-
-#if defined(OS_DETECTION_ENABLE) && defined(DEFERRED_EXEC_ENABLE)
-os_variant_t os_type;
-
-uint32_t startup_exec(uint32_t trigger_time, void *cb_arg) {
- if (is_keyboard_master()) {
- os_type = detected_host_os();
- if (os_type) {
- bool is_mac = (os_type == OS_MACOS) || (os_type == OS_IOS);
- if (keymap_config.swap_lctl_lgui != is_mac) {
- keymap_config.swap_lctl_lgui = keymap_config.swap_rctl_rgui = is_mac;
- eeconfig_update_keymap(keymap_config.raw);
- }
-# ifdef UNICODE_COMMON_ENABLE
- set_unicode_input_mode_soft(keymap_config.swap_lctl_lgui ? UNICODE_MODE_MACOS : UNICODE_MODE_WINCOMPOSE);
-# endif
- switch (os_type) {
- case OS_UNSURE:
- xprintf("unknown OS Detected\n");
- break;
- case OS_LINUX:
- xprintf("Linux Detected\n");
- break;
- case OS_WINDOWS:
- xprintf("Windows Detected\n");
- break;
-# if 0
- case OS_WINDOWS_UNSURE:
- xprintf("Windows? Detected\n");
- break;
-# endif
- case OS_MACOS:
- xprintf("MacOS Detected\n");
- break;
- case OS_IOS:
- xprintf("iOS Detected\n");
- break;
-# if 0
- case OS_PS5:
- xprintf("PlayStation 5 Detected\n");
- break;
- case OS_HANDHELD:
- xprintf("Nintend Switch/Quest 2 Detected\n");
- break;
-# endif
- }
- }
- }
-
- return os_type ? 0 : 500;
-}
-#endif
-
-static host_driver_t *host_driver = 0;
-static bool host_driver_disabled = false;
-
-void set_keyboard_lock(bool status) {
- if (!status && !host_get_driver()) {
- host_set_driver(host_driver);
- } else if (status && host_get_driver()) {
- host_driver = host_get_driver();
- clear_keyboard();
- host_set_driver(0);
- } else if (status) {
- clear_keyboard();
- }
-
- host_driver_disabled = status;
-}
-
-void toggle_keyboard_lock(void) {
- set_keyboard_lock(!host_driver_disabled);
-}
-
-bool get_keyboard_lock(void) {
- return host_driver_disabled;
-}
-
-const char *get_layer_name_string(layer_state_t state, bool alt_name) {
- switch (get_highest_layer(state)) {
- case _QWERTY:
- return alt_name ? "Num Pad" : "QWERTY";
- case _COLEMAK:
- return "Colemak";
- case _COLEMAK_DH:
- return "Colemak-DH";
- case _DVORAK:
- return "Dvorak";
- case _GAMEPAD:
- return "Gamepad";
- case _DIABLO:
- return "Diablo";
- case _DIABLOII:
- return "Diablo II";
- case _MOUSE:
- return alt_name ? "Macros" : "Mouse";
- case _MEDIA:
- return "Media";
- case _LOWER:
- return "Lower";
- case _RAISE:
- return "Raise";
- case _ADJUST:
- return "Adjust";
- default:
- return "Unknown";
- }
-}
diff --git a/users/drashna/drashna.h b/users/drashna/drashna.h
deleted file mode 100644
index 49cdf6ca21..0000000000
--- a/users/drashna/drashna.h
+++ /dev/null
@@ -1,115 +0,0 @@
-// Copyright 2020 Christopher Courtney, aka Drashna Jael're (@drashna) <drashna@live.com>
-// SPDX-License-Identifier: GPL-2.0-or-later
-
-#pragma once
-#include QMK_KEYBOARD_H
-
-#include "eeconfig_users.h"
-#include "keyrecords/wrappers.h"
-#include "keyrecords/process_records.h"
-#include "callbacks.h"
-
-#ifdef TAP_DANCE_ENABLE
-# include "keyrecords/tap_dances.h"
-#endif // TAP_DANCE_ENABLE
-#if defined(RGBLIGHT_ENABLE)
-# include "rgb/rgb_stuff.h"
-#endif
-#if defined(RGB_MATRIX_ENABLE)
-# include "rgb/rgb_matrix_stuff.h"
-#endif
-#if defined(OLED_ENABLE)
-# include "oled/oled_stuff.h"
-#endif
-#ifdef SPLIT_KEYBOARD
-# include "split/transport_sync.h"
-#endif
-#ifdef POINTING_DEVICE_ENABLE
-# include "pointing/pointing.h"
-#endif
-#ifdef OS_DETECTION_ENABLE
-# include "os_detection.h"
-#endif
-#ifdef UNICODE_COMMON_ENABLE
-# include "keyrecords/unicode.h"
-#endif
-
-/* Define layer names */
-enum userspace_layers {
- _QWERTY = 0,
- _NUMLOCK = 0,
- FIRST_DEFAULT_LAYER = 0,
- _COLEMAK_DH,
- _COLEMAK,
- _DVORAK,
- LAST_DEFAULT_LAYER = _DVORAK,
- _GAMEPAD,
- _DIABLO,
- _DIABLOII,
- _MOUSE,
- _MEDIA,
- _LOWER,
- _RAISE,
- _ADJUST,
-};
-
-#define _MACROS _MOUSE
-#define _DEFAULT_LAYER_1 FIRST_DEFAULT_LAYER
-#define _DEFAULT_LAYER_2 (FIRST_DEFAULT_LAYER + 1)
-#define _DEFAULT_LAYER_3 (FIRST_DEFAULT_LAYER + 2)
-#define _DEFAULT_LAYER_4 (FIRST_DEFAULT_LAYER + 3)
-#if LAST_DEFAULT_LAYER > (FIRST_DEFAULT_LAYER + 3)
-# define _DEFAULT_LAYER_2 (FIRST_DEFAULT_LAYER + 4)
-# define _DEFAULT_LAYER_3 (FIRST_DEFAULT_LAYER + 5)
-# define _DEFAULT_LAYER_4 (FIRST_DEFAULT_LAYER + 6)
-# define _DEFAULT_LAYER_2 (FIRST_DEFAULT_LAYER + 7)
-# if LAST_DEFAULT_LAYER > (FIRST_DEFAULT_LAYER + 7)
-# define _DEFAULT_LAYER_2 (FIRST_DEFAULT_LAYER + 8)
-# define _DEFAULT_LAYER_3 (FIRST_DEFAULT_LAYER + 9)
-# define _DEFAULT_LAYER_4 (FIRST_DEFAULT_LAYER + 10)
-# define _DEFAULT_LAYER_4 (FIRST_DEFAULT_LAYER + 11)
-# endif
-#endif
-
-#define DEFAULT_LAYER_1_HSV HSV_CYAN
-#define DEFAULT_LAYER_2_HSV HSV_CHARTREUSE
-#define DEFAULT_LAYER_3_HSV HSV_MAGENTA
-#define DEFAULT_LAYER_4_HSV HSV_GOLDENROD
-
-#define DEFAULT_LAYER_1_RGB RGB_CYAN
-#define DEFAULT_LAYER_2_RGB RGB_CHARTREUSE
-#define DEFAULT_LAYER_3_RGB RGB_MAGENTA
-#define DEFAULT_LAYER_4_RGB RGB_GOLDENROD
-
-bool mod_key_press_timer(uint16_t code, uint16_t mod_code, bool pressed);
-bool mod_key_press(uint16_t code, uint16_t mod_code, bool pressed, uint16_t this_timer);
-bool hasAllBitsInMask(uint8_t value, uint8_t mask);
-void tap_code16_nomods(uint16_t kc);
-void format_layer_bitmap_string(char* buffer, layer_state_t state, layer_state_t default_state);
-
-// clang-format off
-typedef union {
- uint32_t raw;
- struct {
- bool rgb_layer_change :1;
- bool is_overwatch :1;
- bool nuke_switch :1;
- bool swapped_numbers :1;
- bool rgb_matrix_idle_anim :1;
- bool mouse_jiggler :1;
- uint8_t align_reserved :2;
- uint8_t oled_brightness :8;
- uint32_t reserved :15;
- bool check :1;
- };
-} userspace_config_t;
-// clang-format on
-
-_Static_assert(sizeof(userspace_config_t) == sizeof(uint32_t), "Userspace EECONFIG out of spec.");
-
-extern userspace_config_t userspace_config;
-
-void set_keyboard_lock(bool enable);
-bool get_keyboard_lock(void);
-void toggle_keyboard_lock(void);
-const char* get_layer_name_string(layer_state_t state, bool alt_name);
diff --git a/users/drashna/eeconfig_users.c b/users/drashna/eeconfig_users.c
deleted file mode 100644
index 8e0f1f10b6..0000000000
--- a/users/drashna/eeconfig_users.c
+++ /dev/null
@@ -1,53 +0,0 @@
-// Copyright 2023 Christopher Courtney, aka Drashna Jael're (@drashna) <drashna@live.com>
-// SPDX-License-Identifier: GPL-2.0-or-later
-
-#include "eeconfig_users.h"
-#include "eeprom.h"
-#include "eeconfig.h"
-#include <string.h>
-
-#if (TOTAL_EEPROM_BYTE_COUNT - 1) < EECONFIG_SIZE && !defined(KEYBOARD_input_club_ergodox_infinity)
-# error "More eeprom configured than is available."
-#endif
-#if (EECONFIG_USER_DATA_SIZE) != 0 && (EECONFIG_USER_DATA_SIZE) < 4
-# error "Not enough EEPROM configured for user config."
-#endif
-
-#if (EECONFIG_USER_DATA_SIZE) == 0
-# define EECONFIG_USER_TEMP EECONFIG_USER
-#else
-# define EECONFIG_USER_TEMP (uint32_t *)(EECONFIG_USER_DATABLOCK)
-#endif
-
-void eeconfig_read_user_config(uint32_t *data) {
-#if (EECONFIG_USER_DATA_SIZE) > 0
- if (!eeconfig_is_user_datablock_valid()) {
- memset(data, 0, 4);
- } else
-#endif
- eeprom_read_block(data, EECONFIG_USER_TEMP, 4);
-}
-
-void eeconfig_update_user_config(const uint32_t *data) {
- eeprom_update_block(data, EECONFIG_USER_TEMP, 4);
-#if (EECONFIG_USER_DATA_SIZE) > 0
- eeprom_update_dword(EECONFIG_USER, (EECONFIG_USER_DATA_VERSION));
-#endif
-}
-
-void eeconfig_read_user_data(void *data) {
-#if (EECONFIG_USER_DATA_SIZE) > 4
- if (eeconfig_is_user_datablock_valid()) {
- eeprom_read_block(data, EECONFIG_USER_DATABLOCK + 4, (EECONFIG_USER_DATA_SIZE)-4);
- } else {
- memset(data, 0, (EECONFIG_USER_DATA_SIZE));
- }
-#endif
-}
-
-void eeconfig_update_user_data(const void *data) {
-#if (EECONFIG_USER_DATA_SIZE) > 4
- eeprom_update_dword(EECONFIG_USER, (EECONFIG_USER_DATA_VERSION));
- eeprom_update_block(data, EECONFIG_USER_DATABLOCK + 4, (EECONFIG_USER_DATA_SIZE)-4);
-#endif
-}
diff --git a/users/drashna/eeconfig_users.h b/users/drashna/eeconfig_users.h
deleted file mode 100644
index c9b230df9c..0000000000
--- a/users/drashna/eeconfig_users.h
+++ /dev/null
@@ -1,12 +0,0 @@
-// Copyright 2023 Christopher Courtney, aka Drashna Jael're (@drashna) <drashna@live.com>
-// SPDX-License-Identifier: GPL-2.0-or-later
-
-#pragma once
-
-#include <stdint.h>
-
-void eeconfig_read_user_config(uint32_t *data);
-void eeconfig_update_user_config(const uint32_t *data);
-
-void eeconfig_read_user_data(void *data);
-void eeconfig_update_user_data(const void *data);
diff --git a/users/drashna/keyrecords/dynamic_macros.c b/users/drashna/keyrecords/dynamic_macros.c
deleted file mode 100644
index 43c2336cb6..0000000000
--- a/users/drashna/keyrecords/dynamic_macros.c
+++ /dev/null
@@ -1,283 +0,0 @@
-// Copyright 2016 Jack Humbert
-// Copyright 2019 Wojciech Siewierski < wojciech dot siewierski at onet dot pl >
-// Copyright 2023 Christopher Courtney, aka Drashna Jael're (@drashna) <drashna@live.com>
-// SPDX-License-Identifier: GPL-2.0-or-later
-
-#include "keyrecords/dynamic_macros.h"
-#include "keyrecords/process_records.h"
-#include "wait.h"
-#include "debug.h"
-#include "eeprom.h"
-#include "eeconfig.h"
-#include <string.h>
-
-static uint8_t macro_id = 255;
-static uint8_t recording_state = STATE_NOT_RECORDING;
-
-#if EECONFIG_USER_DATA_SIZE < 4
-# error "EECONFIG_USER_DATA_SIZE not set. Don't step on others eeprom."
-#endif
-#ifndef DYNAMIC_MACRO_EEPROM_BLOCK0_ADDR
-# define DYNAMIC_MACRO_EEPROM_BLOCK0_ADDR (uint8_t*)(EECONFIG_USER_DATABLOCK + 4)
-#endif
-
-dynamic_macro_t dynamic_macros[DYNAMIC_MACRO_COUNT];
-_Static_assert((sizeof(dynamic_macros)) <= (EECONFIG_USER_DATA_SIZE - 4), "User Data Size must be large enough to host all macros");
-
-__attribute__((weak)) void dynamic_macro_record_start_user(void) {}
-
-__attribute__((weak)) void dynamic_macro_play_user(uint8_t macro_id) {}
-
-__attribute__((weak)) void dynamic_macro_record_key_user(uint8_t macro_id, keyrecord_t* record) {}
-
-__attribute__((weak)) void dynamic_macro_record_end_user(uint8_t macro_id) {}
-
-/**
- * @brief Gets the current macro ID
- *
- * @return uint8_t
- */
-uint8_t dynamic_macro_get_current_id(void) {
- return macro_id;
-}
-
-/**
- * @brief Gets the current recording state
- *
- * @return uint8_t
- */
-uint8_t dynamic_macro_get_recording_state(void) {
- return recording_state;
-}
-
-/**
- * Start recording of the dynamic macro.
- *
- * @param macro_id[in] The id of macro to be recorded
- */
-bool dynamic_macro_record_start(uint8_t macro_id) {
- if (macro_id >= (uint8_t)(DYNAMIC_MACRO_COUNT)) {
- return false;
- }
- dprintf("dynamic macro recording: started for slot %d\n", macro_id);
-
- dynamic_macro_record_start_user();
-
- clear_keyboard();
- layer_clear();
-
- dynamic_macros[macro_id].length = 0;
- return true;
-}
-
-/**
- * Play the dynamic macro.
- *
- * @param macro_id[in] The id of macro to be played
- */
-void dynamic_macro_play(uint8_t macro_id) {
- if (macro_id >= (uint8_t)(DYNAMIC_MACRO_COUNT)) {
- return;
- }
-
- dprintf("dynamic macro: slot %d playback, length %d\n", macro_id, dynamic_macros[macro_id].length);
-
- layer_state_t saved_layer_state = layer_state;
-
- clear_keyboard();
- layer_clear();
-
- for (uint8_t i = 0; i < dynamic_macros[macro_id].length; ++i) {
- process_record(&dynamic_macros[macro_id].events[i]);
- }
-
- clear_keyboard();
-
- layer_state_set(saved_layer_state);
-
- dynamic_macro_play_user(macro_id);
-}
-
-/**
- * Record a single key in a dynamic macro.
- *
- * @param macro_id[in] The start of the used macro buffer.
- * @param record[in] The current keypress.
- */
-void dynamic_macro_record_key(uint8_t macro_id, keyrecord_t* record) {
- dynamic_macro_t* macro = &dynamic_macros[macro_id];
- uint8_t length = macro->length;
-
- /* If we've just started recording, ignore all the key releases. */
- if (!record->event.pressed && length == 0) {
- dprintln("dynamic macro: ignoring a leading key-up event");
- return;
- }
-
- if (length < DYNAMIC_MACRO_SIZE) {
- macro->events[length] = *record;
- macro->length = ++length;
- } else {
- dynamic_macro_record_key_user(macro_id, record);
- }
-
- dprintf("dynamic macro: slot %d length: %d/%d\n", macro_id, length, DYNAMIC_MACRO_SIZE);
-}
-
-/**
- * End recording of the dynamic macro. Essentially just update the
- * pointer to the end of the macro.
- */
-void dynamic_macro_record_end(uint8_t macro_id) {
- if (macro_id >= (uint8_t)(DYNAMIC_MACRO_COUNT)) {
- return;
- }
- dynamic_macro_record_end_user(macro_id);
-
- dynamic_macro_t* macro = &dynamic_macros[macro_id];
- uint8_t length = macro->length;
-
- keyrecord_t* events_begin = &(macro->events[0]);
- keyrecord_t* events_pointer = &(macro->events[length - 1]);
-
- dprintf("dynamic_macro: macro length before trimming: %d\n", macro->length);
- while (events_pointer != events_begin && (events_pointer)->event.pressed) {
- dprintln("dynamic macro: trimming a trailing key-down event");
- --(macro->length);
- --events_pointer;
- }
-
- macro->checksum = dynamic_macro_calc_crc(macro);
- dynamic_macro_save_eeprom(macro_id);
-
- dprintf("dynamic macro: slot %d saved, length: %d\n", macro_id, length);
-}
-
-bool process_record_dynamic_macro(uint16_t keycode, keyrecord_t* record) {
- if (STATE_NOT_RECORDING == recording_state) {
- /* Program key pressed to request programming mode */
- if (keycode == DYN_MACRO_PROG && record->event.pressed) {
- // dynamic_macro_led_blink();
-
- recording_state = STATE_RECORD_KEY_PRESSED;
- dprintf("dynamic macro: programming key pressed, waiting for macro slot selection. %d\n", recording_state);
-
- return false;
- }
- /* Macro key pressed to request macro playback */
- if (IS_DYN_KEYCODE(keycode) && record->event.pressed) {
- dynamic_macro_play(keycode - DYN_MACRO_KEY00);
-
- return false;
- }
-
- /* Non-dynamic macro key, process it elsewhere. */
- return true;
- } else if (STATE_RECORD_KEY_PRESSED == recording_state) {
- /* Program key pressed again before a macro selector key, cancel macro recording.
- Blink leds to indicate cancelation. */
- if (keycode == DYN_MACRO_PROG && record->event.pressed) {
- // dynamic_macro_led_blink();
-
- recording_state = STATE_NOT_RECORDING;
- dprintf("dynamic macro: programming key pressed, programming mode canceled. %d\n", recording_state);
-
- return false;
- } else if (IS_DYN_KEYCODE(keycode) && record->event.pressed) {
- macro_id = keycode - DYN_MACRO_KEY00;
-
- if (dynamic_macro_record_start(macro_id)) {
- /* Macro slot selected, enter recording state. */
- recording_state = STATE_CURRENTLY_RECORDING;
- } else {
- recording_state = STATE_NOT_RECORDING;
- }
-
- return false;
- }
- /* Ignore any non-macro key press while in RECORD_KEY_PRESSED state. */
- return false;
- } else if (STATE_CURRENTLY_RECORDING == recording_state) {
- /* Program key pressed to request end of macro recording. */
- if (keycode == DYN_MACRO_PROG && record->event.pressed) {
- dynamic_macro_record_end(macro_id);
- recording_state = STATE_NOT_RECORDING;
-
- return false;
- }
- /* Don't record other macro key presses. */
- else if (IS_DYN_KEYCODE(keycode) && record->event.pressed) {
- dprintln("dynamic macro: playback key ignored in programming mode.");
- return false;
- }
- /* Non-macro keypress that should be recorded */
- else {
- dynamic_macro_record_key(macro_id, record);
-
- /* Don't output recorded keypress. */
- return false;
- }
- }
-
- return true;
-}
-
-static inline uint16_t crc16_update(uint16_t crc, uint8_t a) {
- crc ^= a;
- for (uint8_t i = 0; i < 8; ++i) {
- if (crc & 1)
- crc = (crc >> 1) ^ 0xA001;
- else
- crc = (crc >> 1);
- }
- return crc;
-}
-
-uint16_t dynamic_macro_calc_crc(dynamic_macro_t* macro) {
- uint16_t crc = 0;
- uint8_t* data = (uint8_t*)macro;
-
- for (uint16_t i = 0; i < DYNAMIC_MACRO_CRC_LENGTH; ++i) {
- crc = crc16_update(crc, *(data++));
- }
- return crc;
-}
-
-inline void* dynamic_macro_eeprom_macro_addr(uint8_t macro_id) {
- return DYNAMIC_MACRO_EEPROM_BLOCK0_ADDR + sizeof(dynamic_macro_t) * macro_id;
-}
-
-void dynamic_macro_load_eeprom_all(void) {
- for (uint8_t i = 0; i < DYNAMIC_MACRO_COUNT; ++i) {
- dynamic_macro_load_eeprom(i);
- }
-}
-
-void dynamic_macro_load_eeprom(uint8_t macro_id) {
- dynamic_macro_t* dst = &dynamic_macros[macro_id];
-
- eeprom_read_block(dst, dynamic_macro_eeprom_macro_addr(macro_id), sizeof(dynamic_macro_t));
-
- /* Validate checksum, ifchecksum is NOT valid for macro, set its length to 0 to prevent its use. */
- if (dynamic_macro_calc_crc(dst) != dst->checksum) {
- dprintf("dynamic macro: slot %d not loaded, checksum mismatch\n", macro_id);
- dst->length = 0;
-
- return;
- }
-
- dprintf("dynamic macro: slot %d loaded from eeprom, checksum okay\n", macro_id);
-}
-
-void dynamic_macro_save_eeprom(uint8_t macro_id) {
- dynamic_macro_t* src = &dynamic_macros[macro_id];
-
- eeprom_update_block(src, dynamic_macro_eeprom_macro_addr(macro_id), sizeof(dynamic_macro_t));
- dprintf("dynamic macro: slot %d saved to eeprom\n", macro_id);
-}
-
-void dynamic_macro_init(void) {
- /* zero out macro blocks */
- memset(&dynamic_macros, 0, DYNAMIC_MACRO_COUNT * sizeof(dynamic_macro_t));
- dynamic_macro_load_eeprom_all();
-}
diff --git a/users/drashna/keyrecords/dynamic_macros.h b/users/drashna/keyrecords/dynamic_macros.h
deleted file mode 100644
index 5eefb9b268..0000000000
--- a/users/drashna/keyrecords/dynamic_macros.h
+++ /dev/null
@@ -1,50 +0,0 @@
-// Copyright 2016 Jack Humbert
-// Copyright 2019 Wojciech Siewierski < wojciech dot siewierski at onet dot pl >
-// Copyright 2023 Christopher Courtney, aka Drashna Jael're (@drashna) <drashna@live.com>
-// SPDX-License-Identifier: GPL-2.0-or-later
-
-#pragma once
-
-#include "action.h"
-#include "action_layer.h"
-
-#ifndef DYNAMIC_MACRO_COUNT
-# define DYNAMIC_MACRO_COUNT 8
-#endif
-
-#ifndef DYNAMIC_MACRO_SIZE
-# define DYNAMIC_MACRO_SIZE 64
-#endif
-
-enum dynamic_macro_recording_state {
- STATE_NOT_RECORDING,
- STATE_RECORD_KEY_PRESSED,
- STATE_CURRENTLY_RECORDING,
-};
-
-typedef struct {
- keyrecord_t events[DYNAMIC_MACRO_SIZE];
- uint8_t length;
- uint16_t checksum;
-} dynamic_macro_t;
-
-void dynamic_macro_init(void);
-bool dynamic_macro_record_start(uint8_t macro_id);
-void dynamic_macro_play(uint8_t macro_id);
-void dynamic_macro_record_key(uint8_t macro_id, keyrecord_t* record);
-void dynamic_macro_record_end(uint8_t macro_id);
-bool process_record_dynamic_macro(uint16_t keycode, keyrecord_t* record);
-
-void dynamic_macro_record_start_user(void);
-void dynamic_macro_play_user(uint8_t macro_id);
-void dynamic_macro_record_key_user(uint8_t macro_id, keyrecord_t* record);
-void dynamic_macro_record_end_user(uint8_t macro_id);
-
-#define DYNAMIC_MACRO_CRC_LENGTH (sizeof(dynamic_macro_t) - sizeof(uint16_t))
-#define IS_DYN_KEYCODE(keycode) (keycode >= DYN_MACRO_KEY00 && keycode <= DYN_MACRO_KEY15)
-
-uint16_t dynamic_macro_calc_crc(dynamic_macro_t* macro);
-void dynamic_macro_load_eeprom_all(void);
-void dynamic_macro_load_eeprom(uint8_t macro_id);
-void dynamic_macro_save_eeprom(uint8_t macro_id);
-bool dynamic_macro_header_correct(void);
diff --git a/users/drashna/keyrecords/keycodes.md b/users/drashna/keyrecords/keycodes.md
deleted file mode 100644
index bb5b65a77c..0000000000
--- a/users/drashna/keyrecords/keycodes.md
+++ /dev/null
@@ -1,13 +0,0 @@
-
-# Custom Keycodes
-
-Keycodes are defined in the `process_record.h` file and need to be included in the keymap.c files, so that they can be used there.
-
-A bunch of macros are present and are only included on boards that are not the Ergodox EZ or Orthodox, as they are not needed for those boards.
-
-* `DEFAULT_LAYER_1` ... `DEFAULT_LAYER_4` - This sets layer 0-3 as the default layer, and writes that to eeprom, and plays a chime.
-* `VRSN`, outputs the keyboard, keymap, commit and date info. Eg:
- * `handwired/tractyl_manuform/5x6_right/f411/drashna @ 0.15.9-162-g087d08, Built on: 2021-12-19-21:10:26`
-* `KC_DIABLO_CLEAR` - clears the diablo tapdance status.
-* `KC_CCCV` - Copy on hold, paste on tap.
-* `KEYLOCK` - This unloads the host driver, and prevents any data from being sent to the host. Hitting it again loads the driver, back.
diff --git a/users/drashna/keyrecords/process_records.c b/users/drashna/keyrecords/process_records.c
deleted file mode 100644
index d8d45dcac9..0000000000
--- a/users/drashna/keyrecords/process_records.c
+++ /dev/null
@@ -1,200 +0,0 @@
-// Copyright 2020 Christopher Courtney, aka Drashna Jael're (@drashna) <drashna@live.com>
-// SPDX-License-Identifier: GPL-2.0-or-later
-
-#include "drashna.h"
-#include "version.h"
-#ifdef OS_DETECTION_ENABLE
-# include "os_detection.h"
-#endif
-#ifdef CUSTOM_DYNAMIC_MACROS_ENABLE
-# include "keyrecords/dynamic_macros.h"
-#endif
-
-uint16_t copy_paste_timer;
-// Defines actions tor my global custom keycodes. Defined in drashna.h file
-// Then runs the _keymap's record handier if not processed here
-
-/**
- * @brief Keycode handler for keymaps
- *
- * This handles the keycodes at the keymap level, useful for keyboard specific customization
- */
-__attribute__((weak)) bool process_record_keymap(uint16_t keycode, keyrecord_t *record) {
- return true;
-}
-__attribute__((weak)) bool process_record_secrets(uint16_t keycode, keyrecord_t *record) {
- return true;
-}
-
-/**
- * @brief Main user keycode handler
- *
- * This handles all of the keycodes for the user, including calling feature handlers.
- *
- * @param keycode Keycode from matrix
- * @param record keyrecord_t data structure
- * @return true Continue processing keycode and send to host
- * @return false Stop process keycode and do not send to host
- */
-bool process_record_user(uint16_t keycode, keyrecord_t *record) {
- // If console is enabled, it will print the matrix position and status of each key pressed
-#ifdef KEYLOGGER_ENABLE
- uprintf("KL: kc: 0x%04X, col: %2u, row: %2u, pressed: %1d, time: %5u, int: %1d, count: %u\n", keycode, record->event.key.col, record->event.key.row, record->event.pressed, record->event.time, record->tap.interrupted, record->tap.count);
-#endif // KEYLOGGER_ENABLE
-#if defined(OLED_ENABLE) && defined(CUSTOM_OLED_DRIVER)
- process_record_user_oled(keycode, record);
-#endif // OLED
-
- if (!(process_record_keymap(keycode, record) && process_record_secrets(keycode, record)
-#ifdef CUSTOM_RGB_MATRIX
- && process_record_user_rgb_matrix(keycode, record)
-#endif
-#ifdef CUSTOM_RGBLIGHT
- && process_record_user_rgb_light(keycode, record)
-#endif
-#ifdef CUSTOM_UNICODE_ENABLE
- && process_record_unicode(keycode, record)
-#endif
-#if defined(CUSTOM_POINTING_DEVICE)
- && process_record_pointing(keycode, record)
-#endif
-#ifdef CUSTOM_DYNAMIC_MACROS_ENABLE
- && process_record_dynamic_macro(keycode, record)
-#endif
- && true)) {
- return false;
- }
-
- switch (keycode) {
- case VRSN: // Prints firmware version
- if (record->event.pressed) {
- send_string_with_delay_P(PSTR(QMK_KEYBOARD "/" QMK_KEYMAP " @ " QMK_VERSION ", Built on: " QMK_BUILDDATE), TAP_CODE_DELAY);
- }
- break;
-
- case KC_DIABLO_CLEAR: // reset all Diablo timers, disabling them
-#ifdef TAP_DANCE_ENABLE
- if (record->event.pressed) {
- for (uint8_t index = 0; index < 4; index++) {
- diablo_timer[index].key_interval = 0;
- }
- }
-#endif // TAP_DANCE_ENABLE
- break;
-
- case KC_CCCV: // One key copy/paste
- if (record->event.pressed) {
- copy_paste_timer = timer_read();
- } else {
- if (timer_elapsed(copy_paste_timer) > TAPPING_TERM) { // Hold, copy
- tap_code16(LCTL(KC_C));
- } else { // Tap, paste
- tap_code16(LCTL(KC_V));
- }
- }
- break;
- case KC_RGB_T: // This allows me to use underglow as layer indication, or as normal
-#if defined(CUSTOM_RGBLIGHT) || defined(CUSTOM_RGB_MATRIX)
- if (record->event.pressed) {
- userspace_config.rgb_layer_change ^= 1;
- dprintf("rgblight layer change [EEPROM]: %u\n", userspace_config.rgb_layer_change);
- eeconfig_update_user_config(&userspace_config.raw);
- if (userspace_config.rgb_layer_change) {
-# if defined(CUSTOM_RGB_MATRIX)
- rgb_matrix_set_flags(LED_FLAG_UNDERGLOW | LED_FLAG_KEYLIGHT | LED_FLAG_INDICATOR);
-# if defined(CUSTOM_RGBLIGHT)
- rgblight_enable_noeeprom();
-# endif
-# endif
- layer_state_set(layer_state); // This is needed to immediately set the layer color (looks better)
-# if defined(CUSTOM_RGB_MATRIX)
- } else {
- rgb_matrix_set_flags(LED_FLAG_ALL);
-# if defined(CUSTOM_RGBLIGHT)
- rgblight_disable_noeeprom();
-# endif
-# endif
- }
- }
-#endif // CUSTOM_RGBLIGHT
- break;
-
-#if defined(CUSTOM_RGBLIGHT) || defined(CUSTOM_RGB_MATRIX)
- case RGB_TOG:
- // Split keyboards need to trigger on key-up for edge-case issue
-# ifndef SPLIT_KEYBOARD
- if (record->event.pressed) {
-# else
- if (!record->event.pressed) {
-# endif
-# if defined(CUSTOM_RGBLIGHT) && !defined(RGBLIGHT_DISABLE_KEYCODES)
- rgblight_toggle();
-# endif
-# if defined(CUSTOM_RGB_MATRIX) && !defined(RGB_MATRIX_DISABLE_KEYCODES)
- rgb_matrix_toggle();
-# endif
- }
- return false;
- break;
- case RGB_MODE_FORWARD ... RGB_MODE_GRADIENT: // quantum_keycodes.h L400 for definitions
- if (record->event.pressed) {
- bool is_eeprom_updated;
-# if defined(CUSTOM_RGBLIGHT) && !defined(RGBLIGHT_DISABLE_KEYCODES)
- // This disables layer indication, as it's assumed that if you're changing this ... you want that disabled
- if (userspace_config.rgb_layer_change) {
- userspace_config.rgb_layer_change = false;
- dprintf("rgblight layer change [EEPROM]: %u\n", userspace_config.rgb_layer_change);
- is_eeprom_updated = true;
- }
-# endif
-# if defined(CUSTOM_RGB_MATRIX) && defined(RGB_MATRIX_FRAMEBUFFER_EFFECTS)
- if (userspace_config.rgb_matrix_idle_anim) {
- userspace_config.rgb_matrix_idle_anim = false;
- dprintf("RGB Matrix Idle Animation [EEPROM]: %u\n", userspace_config.rgb_matrix_idle_anim);
- is_eeprom_updated = true;
- }
-# endif
- if (is_eeprom_updated) {
- eeconfig_update_user_config(&userspace_config.raw);
- }
- }
- break;
-#endif
- case KEYLOCK:
- if (record->event.pressed) {
- toggle_keyboard_lock();
- }
- break;
-#if defined(OS_DETECTION_ENABLE) && defined(OS_DETECTION_DEBUG_ENABLE)
- case STORE_SETUPS:
- if (record->event.pressed) {
- store_setups_in_eeprom();
- }
- return false;
- case PRINT_SETUPS:
- if (record->event.pressed) {
- print_stored_setups();
- }
- return false;
-#endif
- }
- return true;
-}
-
-__attribute__((weak)) void post_process_record_keymap(uint16_t keycode, keyrecord_t *record) {}
-void post_process_record_user(uint16_t keycode, keyrecord_t *record) {
-#if defined(OS_DETECTION_ENABLE) && defined(UNICODE_COMMON_ENABLE)
- switch (keycode) {
- case QK_MAGIC_SWAP_LCTL_LGUI:
- case QK_MAGIC_SWAP_RCTL_RGUI:
- case QK_MAGIC_SWAP_CTL_GUI:
- case QK_MAGIC_UNSWAP_LCTL_LGUI:
- case QK_MAGIC_UNSWAP_RCTL_RGUI:
- case QK_MAGIC_UNSWAP_CTL_GUI:
- case QK_MAGIC_TOGGLE_CTL_GUI:
- set_unicode_input_mode_soft(keymap_config.swap_lctl_lgui ? UNICODE_MODE_MACOS : UNICODE_MODE_WINCOMPOSE);
- break;
- }
-#endif
- post_process_record_keymap(keycode, record);
-}
diff --git a/users/drashna/keyrecords/process_records.h b/users/drashna/keyrecords/process_records.h
deleted file mode 100644
index 0137976580..0000000000
--- a/users/drashna/keyrecords/process_records.h
+++ /dev/null
@@ -1,150 +0,0 @@
-// Copyright 2020 Christopher Courtney, aka Drashna Jael're (@drashna) <drashna@live.com>
-// SPDX-License-Identifier: GPL-2.0-or-later
-
-#pragma once
-#include "drashna.h"
-
-enum userspace_custom_keycodes {
- VRSN = QK_USER, // Prints QMK Firmware and board info
- KC_DIABLO_CLEAR, // Clears all Diablo Timers
- KC_RGB_T, // Toggles RGB Layer Indication mode
- RGB_IDL, // RGB Idling animations
- KC_SECRET_1, // test1
- KC_SECRET_2, // test2
- KC_SECRET_3, // test3
- KC_SECRET_4, // test4
- KC_SECRET_5, // test5
- KC_CCCV, // Hold to copy, tap to paste
- KC_NUKE, // NUCLEAR LAUNCH DETECTED!!!
- UC_FLIP, // (ಠ痊ಠ)┻━┻
- UC_TABL, // ┬─┬ノ( º _ ºノ)
- UC_SHRG, // ¯\_(ツ)_/¯
- UC_DISA, // ಠ_ಠ
- UC_IRNY,
- UC_CLUE,
- KEYLOCK, // Locks keyboard by unmounting driver
- KC_NOMODE,
- KC_WIDE,
- KC_SCRIPT,
- KC_BLOCKS,
- KC_REGIONAL,
- KC_AUSSIE,
- KC_ZALGO,
- KC_SUPER,
- KC_COMIC,
- KC_ACCEL,
- OLED_LOCK,
- OLED_BRIGHTNESS_INC,
- OLED_BRIGHTNESS_DEC,
-
- STORE_SETUPS,
- PRINT_SETUPS,
-
- PD_JIGGLER,
-
- DYN_MACRO_PROG,
- DYN_MACRO_KEY00,
- DYN_MACRO_KEY01,
- DYN_MACRO_KEY02,
- DYN_MACRO_KEY03,
- DYN_MACRO_KEY04,
- DYN_MACRO_KEY05,
- DYN_MACRO_KEY06,
- DYN_MACRO_KEY07,
- DYN_MACRO_KEY08,
- DYN_MACRO_KEY09,
- DYN_MACRO_KEY10,
- DYN_MACRO_KEY11,
- DYN_MACRO_KEY12,
- DYN_MACRO_KEY13,
- DYN_MACRO_KEY14,
- DYN_MACRO_KEY15,
-
- USER_SAFE_RANGE,
-};
-
-bool process_record_secrets(uint16_t keycode, keyrecord_t *record);
-bool process_record_keymap(uint16_t keycode, keyrecord_t *record);
-void post_process_record_keymap(uint16_t keycode, keyrecord_t *record);
-#ifdef CUSTOM_UNICODE_ENABLE
-bool process_record_unicode(uint16_t keycode, keyrecord_t *record);
-#endif
-
-#define LOWER MO(_LOWER)
-#define RAISE MO(_RAISE)
-#define ADJUST MO(_ADJUST)
-#define TG_MODS OS_TOGG
-#define TG_GAME TG(_GAMEPAD)
-#define TG_DBLO TG(_DIABLO)
-#define OS_LWR OSL(_LOWER)
-#define OS_RSE OSL(_RAISE)
-
-#define KC_SEC1 KC_SECRET_1
-#define KC_SEC2 KC_SECRET_2
-#define KC_SEC3 KC_SECRET_3
-#define KC_SEC4 KC_SECRET_4
-#define KC_SEC5 KC_SECRET_5
-
-#define KC_QWERTY DF(_QWERTY)
-#define KC_COLEMAK_DH DF(_COLEMAK_DH)
-#define KC_COLEMAK DF(_COLEMAK)
-#define KC_DVORAK DF(_DVORAK)
-
-#define QWERTY KC_QWERTY
-#define DVORAK KC_DVORAK
-#define COLEMAK KC_COLEMAK
-#define CLMKDH KC_COLEMAK_DH
-
-#ifdef SWAP_HANDS_ENABLE
-# define KC_C1R3 SH_T(KC_TAB)
-#elif defined(DRASHNA_LP)
-# define KC_C1R3 TG(_GAMEPAD)
-#else // SWAP_HANDS_ENABLE
-# define KC_C1R3 KC_TAB
-#endif // SWAP_HANDS_ENABLE
-
-#define BK_LWER LT(_LOWER, KC_BSPC)
-#define SP_LWER LT(_LOWER, KC_SPC)
-#define DL_RAIS LT(_RAISE, KC_DEL)
-#define ET_RAIS LT(_RAISE, KC_ENTER)
-
-/* OSM keycodes, to keep things clean and easy to change */
-#define KC_MLSF OSM(MOD_LSFT)
-#define KC_MRSF OSM(MOD_RSFT)
-
-#define OS_LGUI OSM(MOD_LGUI)
-#define OS_RGUI OSM(MOD_RGUI)
-#define OS_LSFT OSM(MOD_LSFT)
-#define OS_RSFT OSM(MOD_RSFT)
-#define OS_LCTL OSM(MOD_LCTL)
-#define OS_RCTL OSM(MOD_RCTL)
-#define OS_LALT OSM(MOD_LALT)
-#define OS_RALT OSM(MOD_RALT)
-#define OS_MEH OSM(MOD_MEH)
-#define OS_HYPR OSM(MOD_HYPR)
-
-#define ALT_APP ALT_T(KC_APP)
-
-#define MG_NKRO MAGIC_TOGGLE_NKRO
-
-#define AUTO_CTN QK_AUTOCORRECT_TOGGLE
-/*
-Custom Keycodes for Diablo 3 layer
-But since TD() doesn't work when tap dance is disabled
-We use custom codes here, so we can substitute the right stuff
-*/
-#ifdef TAP_DANCE_ENABLE
-# define KC_D3_1 TD(TD_D3_1)
-# define KC_D3_2 TD(TD_D3_2)
-# define KC_D3_3 TD(TD_D3_3)
-# define KC_D3_4 TD(TD_D3_4)
-#else // TAP_DANCE_ENABLE
-# define KC_D3_1 KC_1
-# define KC_D3_2 KC_2
-# define KC_D3_3 KC_3
-# define KC_D3_4 KC_4
-#endif // TAP_DANCE_ENABLE
-
-#define OL_LOCK OLED_LOCK
-#define OL_BINC OLED_BRIGHTNESS_INC
-#define OL_BDEC OLED_BRIGHTNESS_DEC
diff --git a/users/drashna/keyrecords/readme.md b/users/drashna/keyrecords/readme.md
deleted file mode 100644
index b89777db3d..0000000000
--- a/users/drashna/keyrecords/readme.md
+++ /dev/null
@@ -1,7 +0,0 @@
-# Keycode handling and interception
-
- * [Diablo Tap Dancing](tap_dance.md)
- * [Keymap Wrappers](wrappers.md)
- * [Secret Macros](secrets.md)
- * [Custom Keycodes](keycodes.md)
- * [Unicode Input](unicode.md)
diff --git a/users/drashna/keyrecords/secrets.md b/users/drashna/keyrecords/secrets.md
deleted file mode 100644
index 3c40fa41b3..0000000000
--- a/users/drashna/keyrecords/secrets.md
+++ /dev/null
@@ -1,122 +0,0 @@
-# Secret Macros
-
-With help from gitter and Colinta, this adds the ability to add hidden macros from other users.
-
-First, I have several files that are hidden/excluded from Git/GitHub. These contain everything needed for the macros. To hide these files, open `.git/info/exclude` and add `secrets.c` and `secrets.h` to that file, below the comments.
-
-And this requires `KC_SECRET_1` through `KC_SECRET_5` to be added in your keycode enum (usually in your `<name>.h` file) the keycodes for the new macros.
-
-## Git Exclusion
-
-To prevent `git` from seeing, or committing the secret files, you can exclude them. What's the point of having secrets if they're posted on GitHub for everyone to see!?!
-
-You can do this with the `.git/info/exclude` file, so that it's only ignored locally. Unfortunately, that means it's not consistently handled on each system.
-
-However, if you create a `.gitignore` file in the same folder, you keep things consistent between every system that the code is checked out on.
-
-```c
-secrets.c
-secrets.h
-```
-
-## secrets.c
-
-Here is the magic. This handles including the "secrets", and adding the custom macros to send them.
-
-```c
-#include QMK_KEYBOARD_H
-
-#if (__has_include("secrets.h") && !defined(NO_SECRETS))
-#include "secrets.h"
-#else
-static const char * const secrets[] = {
- "test1",
- "test2",
- "test3",
- "test4",
- "test5"
-};
-#endif
-
-bool process_record_secrets(uint16_t keycode, keyrecord_t *record) {
- switch (keycode) {
- case KC_SECRET_1 ... KC_SECRET_5: // Secrets! Externally defined strings, not stored in repo
- if (record->event.pressed) {
- clear_mods();
- clear_oneshot_mods();
- send_string_with_delay(secrets[keycode - KC_SECRET_1], MACRO_TIMER);
- }
- return false;
- break;
- }
- return true;
-}
-```
-
-## secrets.h
-
-Now, for the actual secrets! The file needs to look like
-
-```c
-static const char * secrets[] = {
- "secret1",
- "secret2",
- "secret3",
- "secret4",
- "secret5"
-};
-```
-
-Replacing the strings with the codes that you need.
-
-## Process Record
-
-In whichever file you have your `process_record_*` function in, you will want to add this to the top:
-
-```c
-__attribute__ ((weak))
-bool process_record_secrets(uint16_t keycode, keyrecord_t *record) {
- return true;
-}
-```
-
-This is so that the function can be called here, and replaced in the `secrets.c` file, and so it won't error out if it doesn't exist.
-
-And then, in the `process_record_user` function, assuming you have `return process_record_keymap(keycode, record)` here, you'll want to replace the "final" return with the following. Otherwise, you want to replace the `return true;` with `return process_record_secrets(keycode, record);`
-
-```c
-bool process_record_user(uint16_t keycode, keyrecord_t *record) {
- // your existing macro code here.
- return process_record_keymap(keycode, record) && process_record_secrets(keycode, record);
-}
-```
-
-## rules.mk
-
-Here, you want your `/users/<name>/rules.mk` file to "detect" the existence of the `secrets.c` file, and only add it if the file exists.
-
-Additionally, to ensure that it's not added or processed in any way, it checks to see if `NO_SECRETS` is set. This way, if you run `qmk compile -kb keyboard -km name -e NO_SECRETS=yes`, it will remove the feature altogether.
-
-```make
-ifneq ($(strip $(NO_SECRETS)), yes)
- ifneq ("$(wildcard $(USER_PATH)/secrets.c)","")
- SRC += secrets.c
- endif
-endif
-```
-
-Alternately, if you want to make sure that you can disable the function without messing with the file, you need to add this to your `/users/<name>/rules.mk`, so that it catches the flag:
-
-```make
-ifneq ("$(wildcard $(USER_PATH)/secrets.c)","")
- SRC += secrets.c
-endif
-
-ifeq ($(strip $(NO_SECRETS)), yes)
- OPT_DEFS += -DNO_SECRETS
-endif
-```
-
-## Extras
-
-Additionally, because this file isn't present in the repo at all, you could add additional functionality that nobody else will see.
diff --git a/users/drashna/keyrecords/tap_dance.md b/users/drashna/keyrecords/tap_dance.md
deleted file mode 100644
index 9dff96640f..0000000000
--- a/users/drashna/keyrecords/tap_dance.md
+++ /dev/null
@@ -1,121 +0,0 @@
-# Diablo Tap Dances
-
-My [Tap Dance](tap_dances.c) file includes the tap dance declarations, and everything needed for them.
-
-To disable, add `CUSTOM_TAP_DANCE = no` to your `rules.mk`.
-
-This is used for making Diablo 3 much easier to plan, especially at high rift levels.
-
-This works by using Tap Dances. The taps don't actually "do anything". Instead, it sets up the interval for how often to send specific keypresses. As you can tell, this makes automating things very easy.
-
-For critics that think this is cheating, just search "[diablo 3 num lock auto cast](http://lmgtfy.com/?q=diablo+3+numlock+autocast)". This is just a simpler method, that doesn't require a numpad.
-
-
-## Custom Tap Dance Type
-The real fun here is that the tap dances use a custom defined Tap Dance type:
-
-```c
-#define ACTION_TAP_DANCE_DIABLO(index, keycode) { \
- .fn = { NULL, (void *)diablo_tapdance_master, NULL }, \
- .user_data = (void *)&((diable_keys_t) { index, keycode }), \
- }
-```
-This lets me set an index and keycode for the tap dance. This isn't the cool part yet, but this allows for the really cool stuff.
-
-The Index is needed because I don't know how to handle it otherwise.
-
-## The Actual Dances
-
-These are the custom defined dances that I'm using. It sets up everything for later, using the above custom dance type.
-
-```c
-//Tap Dance Definitions, sets the index and the keycode.
-tap_dance_action_t tap_dance_actions[] = {
- // tap once to disable, and more to enable timed micros
- [TD_D3_1] = ACTION_TAP_DANCE_DIABLO(0, KC_1),
- [TD_D3_2] = ACTION_TAP_DANCE_DIABLO(1, KC_2),
- [TD_D3_3] = ACTION_TAP_DANCE_DIABLO(2, KC_3),
- [TD_D3_4] = ACTION_TAP_DANCE_DIABLO(3, KC_4),
-};
-```
-
-## Custom Data Structures
-
-First, to get this all working, there are a couple of things that need to be set up. In a header file (or you could put it into the keymap), you need to create a couple of custom structures:
-
-```c
-typedef struct {
- uint16_t timer;
- uint8_t key_interval;
- uint8_t keycode;
-} diablo_timer_t;
-
-typedef struct {
- uint8_t index;
- uint8_t keycode;
-} diable_keys_t;
-```
-
-The first structure is for tracking each key that is being used. The second is to pass data from the Tap Dance action array to the actual function that we will need.
-
-
-## Custom Arrays
-
-To facilitate things, you will need a couple of arrays in your `c` file.
-
-```c
-//define diablo macro timer variables
-diablo_timer_t diablo_timer[4];
-
-// Set the default intervals. Always start with 0 so that it will disable on first hit.
-// Otherwise, you will need to hit a bunch of times, or hit the "clear" command
-uint8_t diablo_times[] = { 0, 1, 3, 5, 10, 30 };
-```
-
-The first one (`diablo_timer`) is what keeps track of the timer used for the keys, the interval that it uses, and the actual keycode. This makes managing it a lot easier.
-
-The second array is a list of predefined intervals, in seconds. You can add more here, or remove entries. It doesn't matter how long the array is, as this is computed automatically.
-
-## The Magic - Part 1: Master function
-
-The first part of the magic here is the `diablo_tapdance_master` function. The Tap Dance feature calls this function, directly, and passes some data to the function. Namely, it passes the array of the index and the keycode (`diablo_keys_t` from above). This sets the keycode and the interval for the specific index of `diabolo_timer` based on the number of taps. If you hit it more than the number of items in the array, then it zeroes out the interval, disabling it.
-
-```c
-// Cycle through the times for the macro, starting at 0, for disabled.
-void diablo_tapdance_master(tap_dance_state_t *state, void *user_data) {
- diable_keys_t *diablo_keys = (diable_keys_t *)user_data;
- // Sets the keycode based on the index
- diablo_timer[diablo_keys->index].keycode = diablo_keys->keycode;
-
- // if the tapdance is hit more than the number of elemints in the array, reset
- if (state->count >= ARRAY_SIZE(diablo_times) ) {
- diablo_timer[diablo_keys->index].key_interval = 0;
- reset_tap_dance(state);
- } else { // else set the interval (tapdance count starts at 1, array starts at 0, so offset by one)
- diablo_timer[diablo_keys->index].key_interval = diablo_times[state->count - 1];
- }
-}
-```
-
-## The Magic - Part 2: The Coup de Grace
-
-The real core here is the `run_diablo_macro_check()` function. You need to call this from `matrix_scan_user`, as this handles the timer check.
-
-Specifically, it runs a check for each index of the timer. It checks to see if it's enabled, and if enough time has passed. If enough time has passed, it resets the timer, and will tap the keycode that you set for that index, but only if the Diablo layer is enabled.
-
-```c
-// Checks each of the 4 timers/keys to see if enough time has elapsed
-void run_diablo_macro_check(void) {
- for (uint8_t index = 0; index < NUM_OF_DIABLO_KEYS; index++) {
- // if key_interval is 0, it's disabled, so only run if it's set. If it's set, check the timer.
- if ( diablo_timer[index].key_interval && timer_elapsed( diablo_timer[index].timer ) > ( diablo_timer[index].key_interval * 1000 ) ) {
- // reset the timer, since enough time has passed
- diablo_timer[index].timer = timer_read();
- // send keycode ONLY if we're on the diablo layer.
- if (IS_LAYER_ON(_DIABLO)) {
- tap_code(diablo_timer[index].keycode);
- }
- }
- }
-}
-```
diff --git a/users/drashna/keyrecords/tap_dances.c b/users/drashna/keyrecords/tap_dances.c
deleted file mode 100644
index 87739c2a18..0000000000
--- a/users/drashna/keyrecords/tap_dances.c
+++ /dev/null
@@ -1,67 +0,0 @@
-// Copyright 2020 Christopher Courtney, aka Drashna Jael're (@drashna) <drashna@live.com>
-// SPDX-License-Identifier: GPL-2.0-or-later
-
-#include "tap_dances.h"
-
-#define NUM_OF_DIABLO_KEYS 4
-// define diablo macro timer variables
-diablo_timer_t diablo_timer[NUM_OF_DIABLO_KEYS];
-
-// Set the default intervals. Always start with 0 so that it will disable on first hit.
-// Otherwise, you will need to hit a bunch of times, or hit the "clear" command
-uint8_t diablo_times[] = {0, 1, 3, 5, 10, 30};
-
-/**
- * @brief Main function for handling diable related tap dances.
- *
- * @param state Main data struction contining information about events
- * @param user_data Local data for the dance. Allows customization to be passed on to function
- */
-void diablo_tapdance_master(tap_dance_state_t *state, void *user_data) {
- diable_keys_t *diablo_keys = (diable_keys_t *)user_data;
- // Sets the keycode based on the index
- diablo_timer[diablo_keys->index].keycode = diablo_keys->keycode;
-
- // if the tapdance is hit more than the number of elemints in the array, reset
- if (state->count >= ARRAY_SIZE(diablo_times)) {
- diablo_timer[diablo_keys->index].key_interval = 0;
- reset_tap_dance(state);
- } else { // else set the interval (tapdance count starts at 1, array starts at 0, so offset by one)
- diablo_timer[diablo_keys->index].key_interval = diablo_times[state->count - 1];
- }
-}
-
-// clang-format off
-// One function to rule them all!! Where the Magic Sauce lies
-#define ACTION_TAP_DANCE_DIABLO(index, keycode) { \
- .fn = { NULL, (void *)diablo_tapdance_master, NULL }, \
- .user_data = (void *)&((diable_keys_t) { index, keycode }), \
- }
-// clang-format on
-
-// Tap Dance Definitions, sets the index and the keycode.
-tap_dance_action_t tap_dance_actions[] = {
- // tap once to disable, and more to enable timed micros
- [TD_D3_1] = ACTION_TAP_DANCE_DIABLO(0, KC_1),
- [TD_D3_2] = ACTION_TAP_DANCE_DIABLO(1, KC_2),
- [TD_D3_3] = ACTION_TAP_DANCE_DIABLO(2, KC_3),
- [TD_D3_4] = ACTION_TAP_DANCE_DIABLO(3, KC_4),
-};
-
-/**
- * @brief Runs check to see if timer has elapsed for each dance, and sends keycodes, if it has.
- *
- */
-void run_diablo_macro_check(void) {
- for (uint8_t index = 0; index < NUM_OF_DIABLO_KEYS; index++) {
- // if key_interval is 0, it's disabled, so only run if it's set. If it's set, check the timer.
- if (diablo_timer[index].key_interval && timer_elapsed(diablo_timer[index].timer) > (diablo_timer[index].key_interval * 1000)) {
- // reset the timer, since enough time has passed
- diablo_timer[index].timer = timer_read();
- // send keycode ONLY if we're on the diablo layer.
- if (IS_LAYER_ON(_DIABLO)) {
- tap_code(diablo_timer[index].keycode);
- }
- }
- }
-}
diff --git a/users/drashna/keyrecords/tap_dances.h b/users/drashna/keyrecords/tap_dances.h
deleted file mode 100644
index 81d1f07fe0..0000000000
--- a/users/drashna/keyrecords/tap_dances.h
+++ /dev/null
@@ -1,31 +0,0 @@
-// Copyright 2020 Christopher Courtney, aka Drashna Jael're (@drashna) <drashna@live.com>
-// SPDX-License-Identifier: GPL-2.0-or-later
-
-#pragma once
-#include "drashna.h"
-
-// define diablo macro timer variables
-extern uint8_t diablo_times[];
-typedef struct {
- uint16_t timer;
- uint8_t key_interval;
- uint8_t keycode;
-} diablo_timer_t;
-
-typedef struct {
- uint8_t index;
- uint8_t keycode;
-} diable_keys_t;
-
-extern diablo_timer_t diablo_timer[];
-
-void run_diablo_macro_check(void);
-
-#ifdef TAP_DANCE_ENABLE
-enum {
- TD_D3_1 = 0,
- TD_D3_2,
- TD_D3_3,
- TD_D3_4,
-};
-#endif // TAP_DANCE_ENABLE
diff --git a/users/drashna/keyrecords/tapping.c b/users/drashna/keyrecords/tapping.c
deleted file mode 100644
index d4a0e16112..0000000000
--- a/users/drashna/keyrecords/tapping.c
+++ /dev/null
@@ -1,66 +0,0 @@
-// Copyright 2021 Christopher Courtney, aka Drashna Jael're (@drashna) <drashna@live.com>
-// SPDX-License-Identifier: GPL-2.0-or-later
-
-#include "drashna.h"
-
-#ifdef TAPPING_TERM_PER_KEY
-__attribute__((weak)) uint16_t get_tapping_term(uint16_t keycode, keyrecord_t *record) {
-
- switch (keycode) {
- case BK_LWER:
- return TAPPING_TERM + 25;
- case QK_MOD_TAP ... QK_MOD_TAP_MAX:
- if (QK_MOD_TAP_GET_MODS(keycode) & MOD_LGUI) {
- return 300;
- }
- default:
- return TAPPING_TERM;
- }
-}
-#endif // TAPPING_TERM_PER_KEY
-
-#ifdef PERMISSIVE_HOLD_PER_KEY
-__attribute__((weak)) bool get_permissive_hold(uint16_t keycode, keyrecord_t *record) {
- // Immediately select the hold action when another key is tapped:
- // return true;
- // Do not select the hold action when another key is tapped.
- // return false;
- switch (keycode) {
- default:
- return false;
- }
-}
-#endif // PERMISSIVE_HOLD_PER_KEY
-
-#ifdef HOLD_ON_OTHER_KEY_PRESS_PER_KEY
-__attribute__((weak)) bool get_hold_on_other_key_press(uint16_t keycode, keyrecord_t *record) {
- // Immediately select the hold action when another key is pressed.
- // return true;
- // Do not select the hold action when another key is pressed.
- // return false;
- switch (keycode) {
-// case QK_LAYER_TAP ... QK_LAYER_TAP_MAX:
-// return true;
- default:
- return false;
- }
-}
-#endif // HOLD_ON_OTHER_KEY_PRESS_PER_KEY
-
-#ifdef QUICK_TAP_TERM_PER_KEY
-__attribute__((weak)) uint16_t get_quick_tap_term(uint16_t keycode, keyrecord_t *record) {
- switch (keycode) {
- default:
- return QUICK_TAP_TERM;
- }
-}
-#endif // QUICK_TAP_TERM_PER_KEY
-
-#ifdef RETRO_TAPPING_PER_KEY
-__attribute__((weak)) bool get_retro_tapping(uint16_t keycode, keyrecord_t *record) {
- switch (keycode) {
- default:
- return false;
- }
-}
-#endif // RETRO_TAPPING_PER_KEY
diff --git a/users/drashna/keyrecords/unicode.c b/users/drashna/keyrecords/unicode.c
deleted file mode 100644
index a4687d3e59..0000000000
--- a/users/drashna/keyrecords/unicode.c
+++ /dev/null
@@ -1,446 +0,0 @@
-// Copyright 2020 @ridingqwerty
-// Copyright 2020 @tzarc
-// Copyright 2021 Christopher Courtney, aka Drashna Jael're (@drashna) <drashna@live.com>
-// SPDX-License-Identifier: GPL-2.0-or-later
-
-#include "drashna.h"
-#include "unicode.h"
-#include "process_unicode_common.h"
-
-uint8_t unicode_typing_mode = UCTM_NO_MODE;
-const char unicode_mode_str[UNCODES_MODE_END][13] PROGMEM = {
- " Normal\0",
- " Wide\0",
- " Script\0",
- " Blocks\0",
- " Regional\0",
- " Aussie\0",
- " Zalgo\0",
- "Super Script\0",
- " Comic\0",
-};
-
-/**
- * @brief Registers the unicode keystrokes based on desired unicode
- *
- * @param glyph Unicode character, supports up to 0x1FFFF (or higher)
- */
-void tap_unicode_glyph_nomods(uint32_t glyph) {
- uint8_t temp_mod = get_mods();
- clear_mods();
- clear_oneshot_mods();
- register_unicode(glyph);
- set_mods(temp_mod);
-}
-
-typedef uint32_t (*translator_function_t)(bool is_shifted, uint32_t keycode);
-
-#define DEFINE_UNICODE_RANGE_TRANSLATOR(translator_name, lower_alpha, upper_alpha, zero_glyph, number_one, space_glyph) \
- static inline uint32_t translator_name(bool is_shifted, uint32_t keycode) { \
- switch (keycode) { \
- case KC_A ... KC_Z: \
- return (is_shifted ? upper_alpha : lower_alpha) + keycode - KC_A; \
- case KC_0: \
- return zero_glyph; \
- case KC_1 ... KC_9: \
- return (number_one + keycode - KC_1); \
- case KC_SPACE: \
- return space_glyph; \
- } \
- return keycode; \
- }
-
-#define DEFINE_UNICODE_LUT_TRANSLATOR(translator_name, ...) \
- static inline uint32_t translator_name(bool is_shifted, uint32_t keycode) { \
- static const uint32_t translation[] = {__VA_ARGS__}; \
- uint32_t ret = keycode; \
- if ((keycode - KC_A) < ARRAY_SIZE(translation)) { \
- ret = translation[keycode - KC_A]; \
- } \
- return ret; \
- }
-
-/**
- * @brief Handler function for outputting unicode.
- *
- * @param keycode Keycode from matrix.
- * @param record keyrecord_t data structure
- * @param translator translator lut for different unicode modes
- * @return true Continue processing matrix press, and send to host
- * @return false Replace keycode, and do not send to host
- */
-bool process_record_glyph_replacement(uint16_t keycode, keyrecord_t *record, translator_function_t translator) {
- uint8_t temp_mod = get_mods();
- uint8_t temp_osm = get_oneshot_mods();
- bool is_shifted = (temp_mod | temp_osm) & MOD_MASK_SHIFT;
- if (((temp_mod | temp_osm) & (MOD_MASK_CTRL | MOD_MASK_ALT | MOD_MASK_GUI)) == 0) {
- if (KC_A <= keycode && keycode <= KC_Z) {
- if (record->event.pressed) {
- tap_unicode_glyph_nomods(translator(is_shifted, keycode));
- }
- return false;
- } else if (KC_1 <= keycode && keycode <= KC_0) {
- if (is_shifted) { // skip shifted numbers, so that we can still use symbols etc.
- return process_record_keymap(keycode, record);
- }
- if (record->event.pressed) {
- register_unicode(translator(is_shifted, keycode));
- }
- return false;
- } else if (keycode == KC_SPACE) {
- if (record->event.pressed) {
- register_unicode(translator(is_shifted, keycode));
- }
- return false;
- }
- }
- return true;
-}
-
-DEFINE_UNICODE_RANGE_TRANSLATOR(unicode_range_translator_wide, 0xFF41, 0xFF21, 0xFF10, 0xFF11, 0x2003);
-DEFINE_UNICODE_RANGE_TRANSLATOR(unicode_range_translator_script, 0x1D4EA, 0x1D4D0, 0x1D7CE, 0x1D7C1, 0x2002);
-DEFINE_UNICODE_RANGE_TRANSLATOR(unicode_range_translator_boxes, 0x1F170, 0x1F170, '0', '1', 0x2002);
-DEFINE_UNICODE_RANGE_TRANSLATOR(unicode_range_translator_regional, 0x1F1E6, 0x1F1E6, '0', '1', 0x2003);
-
-// DEFINE_UNICODE_LUT_TRANSLATOR(unicode_lut_translator_normal,
-// 'a', // a
-// 'b', // b
-// 'c', // c
-// 'd', // d
-// 'e', // e
-// 'f', // f
-// 'g', // g
-// 'h', // h
-// 'i', // i
-// 'j', // j
-// 'k', // k
-// 'l', // l
-// 'm', // m
-// 'n', // n
-// 'o', // o
-// 'p', // p
-// 'q', // q
-// 'r', // r
-// 's', // s
-// 't', // t
-// 'u', // u
-// 'v', // v
-// 'w', // w
-// 'x', // x
-// 'y', // y
-// 'z', // z
-// '1', // 1
-// '2', // 2
-// '3', // 3
-// '4', // 4
-// '5', // 5
-// '6', // 6
-// '7', // 7
-// '8', // 8
-// '9', // 9
-// '0' // 0
-// );
-
-DEFINE_UNICODE_LUT_TRANSLATOR(unicode_lut_translator_aussie,
- 0x0250, // a
- 'q', // b
- 0x0254, // c
- 'p', // d
- 0x01DD, // e
- 0x025F, // f
- 0x0183, // g
- 0x0265, // h
- 0x1D09, // i
- 0x027E, // j
- 0x029E, // k
- 'l', // l
- 0x026F, // m
- 'u', // n
- 'o', // o
- 'd', // p
- 'b', // q
- 0x0279, // r
- 's', // s
- 0x0287, // t
- 'n', // u
- 0x028C, // v
- 0x028D, // w
- 0x2717, // x
- 0x028E, // y
- 'z', // z
- 0x0269, // 1
- 0x3139, // 2
- 0x0190, // 3
- 0x3123, // 4
- 0x03DB, // 5
- '9', // 6
- 0x3125, // 7
- '8', // 8
- '6', // 9
- '0' // 0
-);
-
-DEFINE_UNICODE_LUT_TRANSLATOR(unicode_lut_translator_super,
- 0x1D43, // a
- 0x1D47, // b
- 0x1D9C, // c
- 0x1D48, // d
- 0x1D49, // e
- 0x1DA0, // f
- 0x1D4D, // g
- 0x02B0, // h
- 0x2071, // i
- 0x02B2, // j
- 0x1D4F, // k
- 0x02E1, // l
- 0x1D50, // m
- 0x207F, // n
- 0x1D52, // o
- 0x1D56, // p
- 0x06F9, // q
- 0x02B3, // r
- 0x02E2, // s
- 0x1D57, // t
- 0x1D58, // u
- 0x1D5B, // v
- 0x02B7, // w
- 0x02E3, // x
- 0x02B8, // y
- 0x1DBB, // z
- 0x00B9, // 1
- 0x00B2, // 2
- 0x00B3, // 3
- 0x2074, // 4
- 0x2075, // 5
- 0x2076, // 6
- 0x2077, // 7
- 0x2078, // 8
- 0x2079, // 9
- 0x2070 // 0
-);
-
-DEFINE_UNICODE_LUT_TRANSLATOR(unicode_lut_translator_comic,
- 0x212B, // a
- 0x212C, // b
- 0x2102, // c
- 0x2145, // d
- 0x2107, // e
- 0x2132, // f
- 0x2141, // g
- 0x210D, // h
- 0x2148, // i
- 0x2111, // j
- 'k', // k
- 0x2143, // l
- 'm', // m
- 0x2115, // n
- 0x2134, // o
- 0x2119, // p
- 0x211A, // q
- 0x211B, // r
- 0x20B7, // s
- 0x20B8, // t
- 0x2127, // u
- 'v', // v
- 0x20A9, // w
- 'x', // x
- 0x213D, // y
- 'z', // z
- '1', // 1
- '2', // 2
- '3', // 3
- '4', // 4
- '5', // 5
- '6', // 6
- '7', // 7
- '8', // 8
- '9', // 9
- '0' // 0
-);
-
-bool process_record_aussie(uint16_t keycode, keyrecord_t *record) {
- bool is_shifted = (get_mods() | get_oneshot_mods()) & MOD_MASK_SHIFT;
- if ((KC_A <= keycode) && (keycode <= KC_0)) {
- if (record->event.pressed) {
- if (!process_record_glyph_replacement(keycode, record, unicode_lut_translator_aussie)) {
- tap_code16_nomods(KC_LEFT);
- return false;
- }
- }
- } else if (record->event.pressed && keycode == KC_SPACE) {
- tap_code16_nomods(KC_SPACE);
- tap_code16_nomods(KC_LEFT);
- return false;
- } else if (record->event.pressed && keycode == KC_ENTER) {
- tap_code16_nomods(KC_END);
- tap_code16_nomods(KC_ENTER);
- return false;
- } else if (record->event.pressed && keycode == KC_HOME) {
- tap_code16_nomods(KC_END);
- return false;
- } else if (record->event.pressed && keycode == KC_END) {
- tap_code16_nomods(KC_HOME);
- return false;
- } else if (record->event.pressed && keycode == KC_BSPC) {
- tap_code16_nomods(KC_DEL);
- return false;
- } else if (record->event.pressed && keycode == KC_DEL) {
- tap_code16_nomods(KC_BSPC);
- return false;
- } else if (record->event.pressed && keycode == KC_QUOT) {
- tap_unicode_glyph_nomods(is_shifted ? 0x201E : 0x201A);
- tap_code16_nomods(KC_LEFT);
- return false;
- } else if (record->event.pressed && keycode == KC_COMMA) {
- tap_unicode_glyph_nomods(is_shifted ? '<' : 0x2018);
- tap_code16_nomods(KC_LEFT);
- return false;
- } else if (record->event.pressed && keycode == KC_DOT) {
- tap_unicode_glyph_nomods(is_shifted ? '>' : 0x02D9);
- tap_code16_nomods(KC_LEFT);
- return false;
- } else if (record->event.pressed && keycode == KC_SLASH) {
- tap_unicode_glyph_nomods(is_shifted ? 0x00BF : '/');
- tap_code16_nomods(KC_LEFT);
- return false;
- }
- return true;
-}
-
-bool process_record_zalgo(uint16_t keycode, keyrecord_t *record) {
- if ((KC_A <= keycode) && (keycode <= KC_0)) {
- if (record->event.pressed) {
- tap_code16_nomods(keycode);
-
- int number = (rand() % (8 + 1 - 2)) + 2;
- for (int index = 0; index < number; index++) {
- uint16_t hex = (rand() % (0x036F + 1 - 0x0300)) + 0x0300;
- register_unicode(hex);
- }
-
- return false;
- }
- }
- return true;
-}
-
-/**
- * @brief Main handler for unicode input
- *
- * @param keycode Keycode from switch matrix
- * @param record keyrecord_t data struture
- * @return true Send keycode from matrix to host
- * @return false Stop processing and do not send to host
- */
-
-bool process_record_unicode(uint16_t keycode, keyrecord_t *record) {
- switch (keycode) {
- case UC_FLIP: // (ノಠ痊ಠ)ノ彡┻━┻
- if (record->event.pressed) {
- send_unicode_string("(ノಠ痊ಠ)ノ彡┻━┻");
- }
- break;
-
- case UC_TABL: // ┬─┬ノ( º _ ºノ)
- if (record->event.pressed) {
- send_unicode_string("┬─┬ノ( º _ ºノ)");
- }
- break;
-
- case UC_SHRG: // ¯\_(ツ)_/¯
- if (record->event.pressed) {
- send_unicode_string("¯\\_(ツ)_/¯");
- }
- break;
-
- case UC_DISA: // ಠ_ಠ
- if (record->event.pressed) {
- send_unicode_string("ಠ_ಠ");
- }
- break;
-
- case UC_IRNY: // ⸮
- if (record->event.pressed) {
- register_unicode(0x2E2E);
- }
- break;
- case UC_CLUE: // ‽
- if (record->event.pressed) {
- register_unicode(0x203D);
- }
- break;
- case KC_NOMODE ... KC_COMIC:
- if (record->event.pressed) {
- if (unicode_typing_mode != keycode - KC_NOMODE) {
- unicode_typing_mode = keycode - KC_NOMODE;
- } else {
- unicode_typing_mode = UCTM_NO_MODE;
- }
- }
- break;
- }
-
- if (((get_mods() | get_oneshot_mods()) & ~MOD_MASK_SHIFT) != 0) {
- return true;
- }
-
- if (IS_QK_MOD_TAP(keycode) && record->tap.count) {
- keycode = QK_MOD_TAP_GET_TAP_KEYCODE(keycode);
- }
- if (IS_QK_LAYER_TAP(keycode) && record->tap.count) {
- keycode = QK_LAYER_TAP_GET_TAP_KEYCODE(keycode);
- }
-
- if (unicode_typing_mode == UCTM_WIDE) {
- if (((KC_A <= keycode) && (keycode <= KC_0)) || keycode == KC_SPACE) {
- return process_record_glyph_replacement(keycode, record, unicode_range_translator_wide);
- }
- } else if (unicode_typing_mode == UCTM_SCRIPT) {
- if (((KC_A <= keycode) && (keycode <= KC_0)) || keycode == KC_SPACE) {
- return process_record_glyph_replacement(keycode, record, unicode_range_translator_script);
- }
- } else if (unicode_typing_mode == UCTM_BLOCKS) {
- if (((KC_A <= keycode) && (keycode <= KC_0)) || keycode == KC_SPACE) {
- return process_record_glyph_replacement(keycode, record, unicode_range_translator_boxes);
- }
- } else if (unicode_typing_mode == UCTM_REGIONAL) {
- if (((KC_A <= keycode) && (keycode <= KC_0)) || keycode == KC_SPACE) {
- if (!process_record_glyph_replacement(keycode, record, unicode_range_translator_regional)) {
- wait_us(500);
- tap_unicode_glyph_nomods(0x200C);
- return false;
- }
- }
- } else if (unicode_typing_mode == UCTM_SUPER) {
- if (((KC_A <= keycode) && (keycode <= KC_0))) {
- return process_record_glyph_replacement(keycode, record, unicode_lut_translator_super);
- }
- } else if (unicode_typing_mode == UCTM_COMIC) {
- if (((KC_A <= keycode) && (keycode <= KC_0))) {
- return process_record_glyph_replacement(keycode, record, unicode_lut_translator_comic);
- }
- } else if (unicode_typing_mode == UCTM_AUSSIE) {
- return process_record_aussie(keycode, record);
- } else if (unicode_typing_mode == UCTM_ZALGO) {
- return process_record_zalgo(keycode, record);
- }
- return true;
-}
-
-/**
- * @brief Initialize the default unicode mode on firmware startup
- *
- */
-void keyboard_post_init_unicode(void) {
- unicode_input_mode_init();
-}
-
-/**
- * @brief Set the unicode input mode without extra functionality
- *
- * @param input_mode
- */
-void set_unicode_input_mode_soft(uint8_t input_mode) {
- unicode_config.input_mode = input_mode;
- unicode_input_mode_set_kb(input_mode);
-}
diff --git a/users/drashna/keyrecords/unicode.h b/users/drashna/keyrecords/unicode.h
deleted file mode 100644
index fe95e78c3a..0000000000
--- a/users/drashna/keyrecords/unicode.h
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright 2020 Christopher Courtney, aka Drashna Jael're (@drashna) <drashna@live.com>
-// SPDX-License-Identifier: GPL-2.0-or-later
-
-#pragma once
-
-enum unicode_typing_modes {
- UCTM_NO_MODE,
- UCTM_WIDE,
- UCTM_SCRIPT,
- UCTM_BLOCKS,
- UCTM_REGIONAL,
- UCTM_AUSSIE,
- UCTM_ZALGO,
- UCTM_SUPER,
- UCTM_COMIC,
- UNCODES_MODE_END,
-};
-
-extern uint8_t unicode_typing_mode;
-extern const PROGMEM char unicode_mode_str[UNCODES_MODE_END][13];
-void set_unicode_input_mode_soft(uint8_t input_mode);
diff --git a/users/drashna/keyrecords/unicode.md b/users/drashna/keyrecords/unicode.md
deleted file mode 100644
index 1b3f696a82..0000000000
--- a/users/drashna/keyrecords/unicode.md
+++ /dev/null
@@ -1,27 +0,0 @@
-# Custom Unicode
-
-To disable, add `CUSTOM_UNICODE_ENABLE = no` to the keymap's `rules.mk`.
-
-This disables all of the various implementations of unicode, enables the common unicode core, and allows usage.
-
-In addition to a number of unicode keycodes:
-
-* `UC_FLIP` - `(ノಠ痊ಠ)ノ彡┻━┻`
-* `UC_TABL` - `┬─┬ノ( º _ ºノ)`
-* `UC_SHRG` - `¯\_(ツ)_/¯`
-* `UC_DISA` - `ಠ_ಠ`
-* `UC_IRNY` - `⸮`
-* `UC_CLUE` - `‽`
-
-There are a number of unicode typing modes. This replaces the normal alpha keys with special unicodes.
-
-* `KC_WIDE` - this is wide mode
-* `KC_SCRIPT` - 𝓽𝓱𝓲𝓼 𝓲𝓼 𝓼𝓬𝓻𝓲𝓹𝓽 𝓶𝓸𝓭𝓮
-* `KC_BLOCKS` - 🆃🅷🅸🆂 🅸🆂 🅱🅻🅾🅲🅺 🅼🅾🅳🅴
-* `KC_REGIONAL` - 🇹‌‌🇭‌‌🇮‌‌🇸‌‌ ‌‌🇮‌‌🇸‌‌ ‌‌🇷‌‌🇪‌‌🇬‌‌🇮‌‌🇴‌‌🇳‌‌🇦‌‌🇱‌‌ ‌‌🇲‌‌🇴‌‌🇩‌‌🇪‌‌
-* `KC_AUSSIE` - ǝpoɯ ǝᴉssnɐ sᴉ sᴉɥʇ
-* `KC_ZALGO` - t̨͕͙̺͍͐̾ĥ̻ï̳̻̗̜͔ͦs͎̠͈͓͗̀ i̶̫ͭ̆s̛̫̻̜̝͑͡ z̩͈̠͗a͚̜̓͜l͈̟g͋͢͝ò͚ͥ͘͡͞ ḿ̴̡̻̼̔ͪò͔̭̿ͪ̍ḏ̻̊̄̈e̳͕̤ͣͯ
-* `KC_NOMODE` - this is the normal typing mode with no unicode glyphs
-
-
-Credit goes to ridingqwerty and tzarc for the unicode typing modes.
diff --git a/users/drashna/keyrecords/wrappers.h b/users/drashna/keyrecords/wrappers.h
deleted file mode 100644
index b298ef0628..0000000000
--- a/users/drashna/keyrecords/wrappers.h
+++ /dev/null
@@ -1,266 +0,0 @@
-// Copyright 2020 Christopher Courtney, aka Drashna Jael're (@drashna) <drashna@live.com>
-// Copyright 2020 @jola5
-// SPDX-License-Identifier: GPL-2.0-or-later
-
-#pragma once
-#include "drashna.h"
-/*
-Since our quirky block definitions are basically a list of comma separated
-arguments, we need a wrapper in order for these definitions to be
-expanded before being used as arguments to the LAYOUT_xxx macro.
-*/
-
-/*
-Blocks for each of the four major keyboard layouts
-Organized so we can quickly adapt and modify all of them
-at once, rather than for each keyboard, one at a time.
-And this allows for much cleaner blocks in the keymaps.
-For instance Tap/Hold for Control on all of the layouts
-
-NOTE: These are all the same length. If you do a search/replace
- then you need to add/remove underscores to keep the
- lengths consistent.
-*/
-// clang-format off
-#define _________________QWERTY_L1_________________ KC_Q, KC_W, KC_E, KC_R, KC_T
-#define _________________QWERTY_L2_________________ KC_A, KC_S, KC_D, KC_F, KC_G
-#define _________________QWERTY_L3_________________ KC_Z, KC_X, KC_C, KC_V, KC_B
-
-#define _________________QWERTY_R1_________________ KC_Y, KC_U, KC_I, KC_O, KC_P
-#define _________________QWERTY_R2_________________ KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT
-#define _________________QWERTY_R3_________________ KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH
-
-
-#define _________________COLEMAK_L1________________ KC_Q, KC_W, KC_F, KC_P, KC_G
-#define _________________COLEMAK_L2________________ KC_A, KC_R, KC_S, KC_T, KC_D
-#define _________________COLEMAK_L3________________ KC_Z, KC_X, KC_C, KC_V, KC_B
-
-#define _________________COLEMAK_R1________________ KC_J, KC_L, KC_U, KC_Y, KC_SCLN
-#define _________________COLEMAK_R2________________ KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT
-#define _________________COLEMAK_R3________________ KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH
-
-#define ______________COLEMAK_MOD_DH_L1____________ KC_Q, KC_W, KC_F, KC_P, KC_B
-#define ______________COLEMAK_MOD_DH_L2____________ KC_A, KC_R, KC_S, KC_T, KC_G
-#define ______________COLEMAK_MOD_DH_L3____________ KC_Z, KC_X, KC_C, KC_D, KC_V
-
-#define ______________COLEMAK_MOD_DH_R1____________ KC_J, KC_L, KC_U, KC_Y, KC_SCLN
-#define ______________COLEMAK_MOD_DH_R2____________ KC_M, KC_N, KC_E, KC_I, KC_O, KC_QUOT
-#define ______________COLEMAK_MOD_DH_R3____________ KC_K, KC_H, KC_COMM, KC_DOT, KC_SLASH
-
-
-#define _________________DVORAK_L1_________________ KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y
-#define _________________DVORAK_L2_________________ KC_A, KC_O, KC_E, KC_U, KC_I
-#define _________________DVORAK_L3_________________ KC_SCLN, KC_Q, KC_J, KC_K, KC_X
-
-#define _________________DVORAK_R1_________________ KC_F, KC_G, KC_C, KC_R, KC_L
-#define _________________DVORAK_R2_________________ KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH
-#define _________________DVORAK_R3_________________ KC_B, KC_M, KC_W, KC_V, KC_Z
-
-
-#define ________________DVORAK_AU_L1_______________ KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y
-#define ________________DVORAK_AU_L2_______________ KC_O, KC_A, KC_E, KC_I, KC_U
-#define ________________DVORAK_AU_L3_______________ KC_SCLN, KC_Q, KC_J, KC_K, KC_X
-
-#define ________________DVORAK_AU_R1_______________ KC_F, KC_G, KC_C, KC_R, KC_L
-#define ________________DVORAK_AU_R2_______________ KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH
-#define ________________DVORAK_AU_R3_______________ KC_B, KC_M, KC_W, KC_V, KC_Z
-
-#define _________________WORKMAN_L1________________ KC_Q, KC_D, KC_R, KC_W, KC_B
-#define _________________WORKMAN_L2________________ KC_A, KC_S, KC_H, KC_T, KC_G
-#define _________________WORKMAN_L3________________ KC_Z, KC_X, KC_M, KC_C, KC_V
-
-#define _________________WORKMAN_R1________________ KC_J, KC_F, KC_U, KC_P, KC_SCLN
-#define _________________WORKMAN_R2________________ KC_Y, KC_N, KC_E, KC_O, KC_I, KC_QUOT
-#define _________________WORKMAN_R3________________ KC_K, KC_L, KC_COMM, KC_DOT, KC_SLSH
-
-
-#define _________________NORMAN_L1_________________ KC_Q, KC_W, KC_D, KC_F, KC_K
-#define _________________NORMAN_L2_________________ KC_A, KC_S, KC_E, KC_T, KC_G
-#define _________________NORMAN_L3_________________ KC_Z, KC_X, KC_C, KC_V, KC_B
-
-#define _________________NORMAN_R1_________________ KC_J, KC_U, KC_R, KC_L, KC_SCLN
-#define _________________NORMAN_R2_________________ KC_Y, KC_N, KC_I, KC_O, KC_U, KC_QUOT
-#define _________________NORMAN_R3_________________ KC_P, KC_M, KC_COMM, KC_DOT, KC_SLSH
-
-
-#define _________________MALTRON_L1________________ KC_Q, KC_P, KC_Y, KC_C, KC_B
-#define _________________MALTRON_L2________________ KC_A, KC_N, KC_I, KC_S, KC_F
-#define _________________MALTRON_L3________________ KC_SCLN, KC_SLSH, KC_J, KC_G, KC_COMM
-
-#define _________________MALTRON_R1________________ KC_V, KC_M, KC_U, KC_Z, KC_L
-#define _________________MALTRON_R2________________ KC_D, KC_T, KC_D, KC_O, KC_R, KC_QUOT
-#define _________________MALTRON_R3________________ KC_DOT, KC_W, KC_K, KC_MINS, KC_X
-
-
-#define _________________EUCALYN_L1________________ KC_Q, KC_W, KC_COMM, KC_DOT, KC_SCLN
-#define _________________EUCALYN_L2________________ KC_A, KC_O, KC_E, KC_I, KC_U
-#define _________________EUCALYN_L3________________ KC_Z, KC_X, KC_C, KC_V, KC_F
-
-#define _________________EUCALYN_R1________________ KC_M, KC_R, KC_D, KC_Y, KC_P
-#define _________________EUCALYN_R2________________ KC_G, KC_T, KC_K, KC_S, KC_N, KC_QUOT
-#define _________________EUCALYN_R3________________ KC_B, KC_H, KC_J, KC_L, KC_SLSH
-
-// Qwerty-like
-#define _____________CARPLAX_QFMLWY_L1_____________ KC_Q, KC_F, KC_M, KC_L, KC_W
-#define _____________CARPLAX_QFMLWY_L2_____________ KC_D, KC_S, KC_T, KC_N, KC_R
-#define _____________CARPLAX_QFMLWY_L3_____________ KC_Z, KC_V, KC_G, KC_C, KC_X
-
-#define _____________CARPLAX_QFMLWY_R1_____________ KC_Y, KC_U, KC_O, KC_B, KC_J
-#define _____________CARPLAX_QFMLWY_R2_____________ KC_I, KC_A, KC_E, KC_H, KC_SCLN, KC_QUOT
-#define _____________CARPLAX_QFMLWY_R3_____________ KC_P, KC_K, KC_COMM, KC_DOT, KC_SLSH
-
-// Colemak like
-#define _____________CARPLAX_QGMLWB_L1_____________ KC_Q, KC_G, KC_M, KC_L, KC_W
-#define _____________CARPLAX_QGMLWB_L2_____________ KC_D, KC_S, KC_T, KC_N, KC_R
-#define _____________CARPLAX_QGMLWB_L3_____________ KC_Z, KC_X, KC_C, KC_F, KC_J
-
-#define _____________CARPLAX_QGMLWB_R1_____________ KC_B, KC_Y, KC_U, KC_V, KC_SCLN
-#define _____________CARPLAX_QGMLWB_R2_____________ KC_I, KC_A, KC_E, KC_O, KC_H, KC_QUOT
-#define _____________CARPLAX_QGMLWB_R3_____________ KC_K, KC_P, KC_COMM, KC_DOT, KC_SLSH
-
-// colemak like, zxcv fixed
-#define _____________CARPLAX_QGMLWY_L1_____________ KC_Q, KC_G, KC_M, KC_L, KC_W
-#define _____________CARPLAX_QGMLWY_L2_____________ KC_D, KC_S, KC_T, KC_N, KC_R
-#define _____________CARPLAX_QGMLWY_L3_____________ KC_Z, KC_X, KC_C, KC_V, KC_J
-
-#define _____________CARPLAX_QGMLWY_R1_____________ KC_Y, KC_F, KC_U, KC_B, KC_SCLN
-#define _____________CARPLAX_QGMLWY_R2_____________ KC_I, KC_A, KC_E, KC_O, KC_H, KC_QUOT
-#define _____________CARPLAX_QGMLWY_R3_____________ KC_K, KC_P, KC_COMM, KC_DOT, KC_SLSH
-
-// teeheehee
-#define _____________CARPLAX_TNWCLR_L1_____________ KC_T, KC_N, KC_W, KC_C, KC_L
-#define _____________CARPLAX_TNWCLR_L2_____________ KC_S, KC_K, KC_J, KC_X, KC_G
-#define _____________CARPLAX_TNWCLR_L3_____________ KC_E, KC_O, KC_D, KC_I, KC_A
-
-#define _____________CARPLAX_TNWCLR_R1_____________ KC_R, KC_B, KC_F, KC_M, KC_H
-#define _____________CARPLAX_TNWCLR_R2_____________ KC_P, KC_Q, KC_Z, KC_V, KC_SCLN, KC_QUOT
-#define _____________CARPLAX_TNWCLR_R3_____________ KC_U, KC_Y, KC_COMM, KC_DOT, KC_SLSH
-
-
-#define _________________WHITE_R1__________________ KC_V, KC_Y, KC_D, KC_COMM, KC_QUOT
-#define _________________WHITE_R2__________________ KC_A, KC_T, KC_H, KC_E, KC_B
-#define _________________WHITE_R3__________________ KC_P, KC_K, KC_G, KC_W, KC_Q
-
-#define _________________WHITE_L1__________________ KC_INT1, KC_J, KC_M, KC_L, KC_U
-#define _________________WHITE_L2__________________ KC_MINS, KC_C, KC_S, KC_N, KC_O, KC_I
-#define _________________WHITE_L3__________________ KC_X, KC_R, KC_F, KC_DOT, KC_Z
-
-
-#define _________________HALMAK_L1_________________ KC_W, KC_L, KC_R, KC_B, KC_Z
-#define _________________HALMAK_L2_________________ KC_S, KC_H, KC_N, KC_T, KC_COMM
-#define _________________HALMAK_L3_________________ KC_F, KC_M, KC_V, KC_V, KC_SLASH
-
-#define _________________HALMAK_R1_________________ KC_SCLN, KC_Q, KC_U, KC_D, KC_J
-#define _________________HALMAK_R2_________________ KC_DOT, KC_A, KC_E, KC_O, KC_I, KC_QUOTE
-#define _________________HALMAK_R3_________________ KC_G, KC_P, KC_X, KC_K, KC_Y
-
-
-#define __________________ISRT_L1__________________ KC_W, KC_C, KC_L, KC_M, KC_K
-#define __________________ISRT_L2__________________ KC_I, KC_S, KC_R, KC_T, KC_G
-#define __________________ISRT_L3__________________ KC_Q, KC_V, KC_W, KC_D, KC_J
-
-#define __________________ISRT_R1__________________ KC_Z, KC_F, KC_U, KC_COMM, KC_QUOTE
-#define __________________ISRT_R2__________________ KC_P, KC_N, KC_E, KC_A, KC_O, KC_SCLN
-#define __________________ISRT_R3__________________ KC_B, KC_H, KC_SLSH, KC_DOT, KC_X
-
-
-#define __________________SOUL_L1__________________ KC_Q, KC_W, KC_L, KC_D, KC_P
-#define __________________SOUL_L2__________________ KC_A, KC_S, KC_R, KC_T, KC_G
-#define __________________SOUL_L3__________________ KC_Z, KC_X, KC_C, KC_V, KC_J
-
-#define __________________SOUL_R1__________________ KC_K, KC_M, KC_U, KC_Y, KC_SCLN
-#define __________________SOUL_R2__________________ KC_F, KC_N, KC_E, KC_I, KC_O, KC_QUOTE
-#define __________________SOUL_R3__________________ KC_B, KC_H, KC_COMM, KC_DOT, KC_SLSH
-
-
-#define __________________NIRO_L1__________________ KC_Q, KC_W, KC_U, KC_D, KC_P
-#define __________________NIRO_L2__________________ KC_A, KC_S, KC_E, KC_T, KC_G
-#define __________________NIRO_L3__________________ KC_Z, KC_X, KC_C, KC_V, KC_B
-
-#define __________________NIRO_R1__________________ KC_J, KC_F, KC_Y, KC_L, KC_SCLN
-#define __________________NIRO_R2__________________ KC_H, KC_N, KC_I, KC_R, KC_O, KC_QUOTE
-#define __________________NIRO_R3__________________ KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH
-
-
-#define _________________ASSET_L1__________________ KC_Q, KC_W, KC_J, KC_F, KC_G
-#define _________________ASSET_L2__________________ KC_A, KC_S, KC_E, KC_T, KC_D
-#define _________________ASSET_L3__________________ KC_Z, KC_X, KC_C, KC_V, KC_B
-
-#define _________________ASSET_R1__________________ KC_Y, KC_P, KC_U, KC_L, KC_SCLN
-#define _________________ASSET_R2__________________ KC_H, KC_N, KC_I, KC_O, KC_R, KC_QUOTE
-#define _________________ASSET_R3__________________ KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH
-
-
-#define _________________MTGAP_L1__________________ KC_Y, KC_P, KC_O, KC_U, KC_J
-#define _________________MTGAP_L2__________________ KC_I, KC_N, KC_E, KC_A, KC_COMM
-#define _________________MTGAP_L3__________________ KC_Q, KC_Z, KC_SLSH, KC_DOT, KC_SCLN
-
-#define _________________MTGAP_R1__________________ KC_K, KC_D, KC_L, KC_C, KC_W
-#define _________________MTGAP_R2__________________ KC_M, KC_H, KC_T, KC_S, KC_R, KC_QUOTE
-#define _________________MTGAP_R3__________________ KC_B, KC_F, KC_G, KC_V, KC_X
-
-
-#define _________________MINIMAK_L1________________ KC_Q, KC_W, KC_D, KC_R, KC_K
-#define _________________MINIMAK_L2________________ KC_A, KC_S, KC_T, KC_F, KC_G
-#define _________________MINIMAK_L3________________ KC_Z, KC_X, KC_C, KC_V, KC_B
-
-#define _________________MINIMAK_R1________________ KC_Y, KC_U, KC_I, KC_O, KC_P
-#define _________________MINIMAK_R2________________ KC_H, KC_J, KC_E, KC_L, KC_SCLN, KC_QUOT
-#define _________________MINIMAK_R3________________ KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH
-
-
-#define ________________MINIMAK_8_L1_______________ KC_Q, KC_W, KC_D, KC_R, KC_K
-#define ________________MINIMAK_8_L2_______________ KC_A, KC_S, KC_T, KC_F, KC_G
-#define ________________MINIMAK_8_L3_______________ KC_Z, KC_X, KC_C, KC_V, KC_B
-
-#define ________________MINIMAK_8_R1_______________ KC_Y, KC_U, KC_I, KC_L, KC_P
-#define ________________MINIMAK_8_R2_______________ KC_H, KC_N, KC_E, KC_O, KC_SCLN, KC_QUOT
-#define ________________MINIMAK_8_R3_______________ KC_J, KC_M, KC_COMM, KC_DOT, KC_SLSH
-
-
-#define _______________MINIMAK_12_L1_______________ KC_Q, KC_W, KC_D, KC_F, KC_K
-#define _______________MINIMAK_12_L2_______________ KC_A, KC_S, KC_T, KC_R, KC_G
-#define _______________MINIMAK_12_L3_______________ KC_Z, KC_X, KC_C, KC_V, KC_B
-
-#define _______________MINIMAK_12_R1_______________ KC_Y, KC_U, KC_I, KC_L, KC_SCLN
-#define _______________MINIMAK_12_R2_______________ KC_H, KC_N, KC_E, KC_O, KC_P, KC_QUOT
-#define _______________MINIMAK_12_R3_______________ KC_J, KC_M, KC_COMM, KC_DOT, KC_SLSH
-
-
-#define ________________NUMBER_LEFT________________ KC_1, KC_2, KC_3, KC_4, KC_5
-#define ________________NUMBER_RIGHT_______________ KC_6, KC_7, KC_8, KC_9, KC_0
-#define _________________FUNC_LEFT_________________ KC_F1, KC_F2, KC_F3, KC_F4, KC_F5
-#define _________________FUNC_RIGHT________________ KC_F6, KC_F7, KC_F8, KC_F9, KC_F10
-
-#define ___________________BLANK___________________ _______, _______, _______, _______, _______
-
-
-#define _________________LOWER_L1__________________ KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC
-#define _________________LOWER_L2__________________ _________________FUNC_LEFT_________________
-#define _________________LOWER_L3__________________ _________________FUNC_RIGHT________________
-
-#define _________________LOWER_R1__________________ KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN
-#define _________________LOWER_R2__________________ _______, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR
-#define _________________LOWER_R3__________________ _______, KC_HOME, KC_PGDN, KC_PGUP, KC_END
-
-
-
-#define _________________RAISE_L1__________________ ________________NUMBER_LEFT________________
-#define _________________RAISE_L2__________________ ___________________BLANK___________________
-#define _________________RAISE_L3__________________ ___________________BLANK___________________
-
-#define _________________RAISE_R1__________________ ________________NUMBER_RIGHT_______________
-#define _________________RAISE_R2__________________ _______, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC
-#define _________________RAISE_R3__________________ _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT
-
-
-
-#define _________________ADJUST_L1_________________ RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, RGB_TOG
-#define _________________ADJUST_L2_________________ MU_TOGG, CK_TOGG, AU_ON, AU_OFF, CG_NORM
-#define _________________ADJUST_L3_________________ RGB_RMOD,RGB_HUD,RGB_SAD, RGB_VAD, KC_RGB_T
-
-#define _________________ADJUST_R1_________________ KC_SEC1, KC_SEC2, KC_SEC3, KC_SEC4, KC_SEC5
-#define _________________ADJUST_R2_________________ CG_SWAP, QWERTY, CLMKDH, COLEMAK, DVORAK
-#define _________________ADJUST_R3_________________ MG_NKRO, KC_MUTE, KC_VOLD, KC_VOLU, KC_MNXT
-
-// clang-format on
diff --git a/users/drashna/keyrecords/wrappers.md b/users/drashna/keyrecords/wrappers.md
deleted file mode 100644
index fd62ff1609..0000000000
--- a/users/drashna/keyrecords/wrappers.md
+++ /dev/null
@@ -1,11 +0,0 @@
-## Keyboard Layout Templates
-
-This borrows from @jola5's "Not quite neo" code. This allows me to maintain blocks of keymaps in the userspace, so that I can modify the userspace, and this is reflected in all of the keyboards that use it, at once.
-
-This makes adding tap/hold mods, or other special keycodes or functions to all keyboards super easy, as it's done to all of them at once.
-
-The caveat here is that the keymap needs a processor/wrapper, as it doesn't like the substitutions. However, this is as simple as just pushing it through a define. For instance:
-
-`#define LAYOUT_ergodox_wrapper(...) LAYOUT_ergodox(__VA_ARGS__)`
-
-Once that's been done and you've switched the keymaps to use the "wrapper", it will read the substitution blocks just fine.
diff --git a/users/drashna/oled/drashna_font.h b/users/drashna/oled/drashna_font.h
deleted file mode 100644
index cef1fc4969..0000000000
--- a/users/drashna/oled/drashna_font.h
+++ /dev/null
@@ -1,1060 +0,0 @@
-#pragma once
-
-// additional fonts from
-// https://github.com/datacute/TinyOLED-Fonts
-
-#include "progmem.h"
-
-// clang-format off
-static const unsigned char font[] PROGMEM = {
- 0x07, 0x08, 0x7F, 0x08, 0x07, 0x00,
- 0x3E, 0x5B, 0x4F, 0x5B, 0x3E, 0x00,
- 0x3E, 0x6B, 0x4F, 0x6B, 0x3E, 0x00,
- 0x1C, 0x3E, 0x7C, 0x3E, 0x1C, 0x00,
- 0x18, 0x3C, 0x7E, 0x3C, 0x18, 0x00,
- 0x1C, 0x57, 0x7D, 0x57, 0x1C, 0x00,
- 0x1C, 0x5E, 0x7F, 0x5E, 0x1C, 0x00,
- 0x00, 0x18, 0x3C, 0x18, 0x00, 0x00,
- 0xFF, 0xE7, 0xC3, 0xE7, 0xFF, 0x00,
- 0x00, 0x18, 0x24, 0x18, 0x00, 0x00,
- 0xFF, 0xE7, 0xDB, 0xE7, 0xFF, 0x00,
- 0x30, 0x48, 0x3A, 0x06, 0x0E, 0x00,
- 0x26, 0x29, 0x79, 0x29, 0x26, 0x00,
- 0x40, 0x7F, 0x05, 0x05, 0x07, 0x00,
- 0x40, 0x7F, 0x05, 0x25, 0x3F, 0x00,
- 0x5A, 0x3C, 0xE7, 0x3C, 0x5A, 0x00,
- 0x7F, 0x3E, 0x1C, 0x1C, 0x08, 0x00,
- 0x08, 0x1C, 0x1C, 0x3E, 0x7F, 0x00,
- 0x14, 0x22, 0x7F, 0x22, 0x14, 0x00,
- 0x5F, 0x5F, 0x00, 0x5F, 0x5F, 0x00,
- 0x06, 0x09, 0x7F, 0x01, 0x7F, 0x00,
- 0x00, 0x66, 0x89, 0x95, 0x6A, 0x00,
- 0x60, 0x60, 0x60, 0x60, 0x60, 0x00,
- 0x94, 0xA2, 0xFF, 0xA2, 0x94, 0x00,
- 0x08, 0x04, 0x7E, 0x04, 0x08, 0x00,
- 0x10, 0x20, 0x7E, 0x20, 0x10, 0x00,
- 0x08, 0x08, 0x2A, 0x1C, 0x08, 0x00,
- 0x08, 0x1C, 0x2A, 0x08, 0x08, 0x00,
- 0x1E, 0x10, 0x10, 0x10, 0x10, 0x00,
- 0x0C, 0x1E, 0x0C, 0x1E, 0x0C, 0x00,
- 0x30, 0x38, 0x3E, 0x38, 0x30, 0x00,
- 0x06, 0x0E, 0x3E, 0x0E, 0x06, 0x00,
-
-# if defined(OLED_FONT_5X5)
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x5c, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x06, 0x00, 0x06, 0x00, 0x00, 0x00,
- 0x28, 0x7c, 0x28, 0x7c, 0x28, 0x00,
- 0x5c, 0x54, 0xfe, 0x54, 0x74, 0x00,
- 0x44, 0x20, 0x10, 0x08, 0x44, 0x00,
- 0x28, 0x54, 0x54, 0x20, 0x50, 0x00,
- 0x06, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x38, 0x44, 0x00, 0x00, 0x00, 0x00,
- 0x44, 0x38, 0x00, 0x00, 0x00, 0x00,
- 0x02, 0x07, 0x02, 0x00, 0x00, 0x00,
- 0x10, 0x10, 0x7c, 0x10, 0x10, 0x00,
- 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x10, 0x10, 0x10, 0x10, 0x10, 0x00,
- 0x40, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x60, 0x10, 0x0c, 0x00, 0x00, 0x00,
- 0x7c, 0x64, 0x54, 0x4c, 0x7c, 0x00,
- 0x48, 0x7c, 0x40, 0x00, 0x00, 0x00,
- 0x64, 0x54, 0x54, 0x54, 0x48, 0x00,
- 0x44, 0x54, 0x54, 0x54, 0x6c, 0x00,
- 0x3c, 0x20, 0x70, 0x20, 0x20, 0x00,
- 0x5c, 0x54, 0x54, 0x54, 0x24, 0x00,
- 0x7c, 0x54, 0x54, 0x54, 0x74, 0x00,
- 0x04, 0x04, 0x64, 0x14, 0x0c, 0x00,
- 0x7c, 0x54, 0x54, 0x54, 0x7c, 0x00,
- 0x5c, 0x54, 0x54, 0x54, 0x7c, 0x00,
- 0x44, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0xc4, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x10, 0x28, 0x44, 0x00, 0x00, 0x00,
- 0x28, 0x28, 0x28, 0x28, 0x28, 0x00,
- 0x44, 0x28, 0x10, 0x00, 0x00, 0x00,
- 0x08, 0x04, 0x54, 0x08, 0x00, 0x00,
- 0x7c, 0x44, 0x54, 0x54, 0x5c, 0x00,
- 0x7c, 0x24, 0x24, 0x24, 0x7c, 0x00,
- 0x7c, 0x54, 0x54, 0x54, 0x6c, 0x00,
- 0x7c, 0x44, 0x44, 0x44, 0x44, 0x00,
- 0x7c, 0x44, 0x44, 0x44, 0x38, 0x00,
- 0x7c, 0x54, 0x54, 0x54, 0x44, 0x00,
- 0x7c, 0x14, 0x14, 0x14, 0x04, 0x00,
- 0x7c, 0x44, 0x44, 0x54, 0x74, 0x00,
- 0x7c, 0x10, 0x10, 0x10, 0x7c, 0x00,
- 0x44, 0x44, 0x7c, 0x44, 0x44, 0x00,
- 0x60, 0x40, 0x40, 0x44, 0x7c, 0x00,
- 0x7c, 0x10, 0x10, 0x28, 0x44, 0x00,
- 0x7c, 0x40, 0x40, 0x40, 0x40, 0x00,
- 0x7c, 0x08, 0x10, 0x08, 0x7c, 0x00,
- 0x7c, 0x08, 0x10, 0x20, 0x7c, 0x00,
- 0x38, 0x44, 0x44, 0x44, 0x38, 0x00,
- 0x7c, 0x14, 0x14, 0x14, 0x08, 0x00,
- 0x3c, 0x24, 0x64, 0x24, 0x3c, 0x00,
- 0x7c, 0x14, 0x14, 0x14, 0x68, 0x00,
- 0x5c, 0x54, 0x54, 0x54, 0x74, 0x00,
- 0x04, 0x04, 0x7c, 0x04, 0x04, 0x00,
- 0x7c, 0x40, 0x40, 0x40, 0x7c, 0x00,
- 0x0c, 0x30, 0x40, 0x30, 0x0c, 0x00,
- 0x3c, 0x40, 0x30, 0x40, 0x3c, 0x00,
- 0x44, 0x28, 0x10, 0x28, 0x44, 0x00,
- 0x0c, 0x10, 0x60, 0x10, 0x0c, 0x00,
- 0x44, 0x64, 0x54, 0x4c, 0x44, 0x00,
- 0x7c, 0x44, 0x00, 0x00, 0x00, 0x00,
- 0x0c, 0x10, 0x60, 0x00, 0x00, 0x00,
- 0x44, 0x7c, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x01, 0x00, 0x01, 0x00, 0x00,
- 0x40, 0x40, 0x40, 0x40, 0x40, 0x40,
- 0x00, 0x01, 0x00, 0x00, 0x00, 0x00,
- 0x7c, 0x24, 0x24, 0x24, 0x7c, 0x00,
- 0x7c, 0x54, 0x54, 0x54, 0x6c, 0x00,
- 0x7c, 0x44, 0x44, 0x44, 0x44, 0x00,
- 0x7c, 0x44, 0x44, 0x44, 0x38, 0x00,
- 0x7c, 0x54, 0x54, 0x54, 0x44, 0x00,
- 0x7c, 0x14, 0x14, 0x14, 0x04, 0x00,
- 0x7c, 0x44, 0x44, 0x54, 0x74, 0x00,
- 0x7c, 0x10, 0x10, 0x10, 0x7c, 0x00,
- 0x44, 0x44, 0x7c, 0x44, 0x44, 0x00,
- 0x60, 0x40, 0x40, 0x44, 0x7c, 0x00,
- 0x7c, 0x10, 0x10, 0x28, 0x44, 0x00,
- 0x7c, 0x40, 0x40, 0x40, 0x40, 0x00,
- 0x7c, 0x08, 0x10, 0x08, 0x7c, 0x00,
- 0x7c, 0x08, 0x10, 0x20, 0x7c, 0x00,
- 0x38, 0x44, 0x44, 0x44, 0x38, 0x00,
- 0x7c, 0x14, 0x14, 0x14, 0x08, 0x00,
- 0x3c, 0x24, 0x64, 0x24, 0x3c, 0x00,
- 0x7c, 0x14, 0x14, 0x14, 0x68, 0x00,
- 0x5c, 0x54, 0x54, 0x54, 0x74, 0x00,
- 0x04, 0x04, 0x7c, 0x04, 0x04, 0x00,
- 0x7c, 0x40, 0x40, 0x40, 0x7c, 0x00,
- 0x0c, 0x30, 0x40, 0x30, 0x0c, 0x00,
- 0x3c, 0x40, 0x30, 0x40, 0x3c, 0x00,
- 0x44, 0x28, 0x10, 0x28, 0x44, 0x00,
- 0x0c, 0x10, 0x60, 0x10, 0x0c, 0x00,
- 0x44, 0x64, 0x54, 0x4c, 0x44, 0x00,
- 0x10, 0x7c, 0x44, 0x00, 0x00, 0x00,
- 0x6c, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x44, 0x7c, 0x10, 0x00, 0x00, 0x00,
- 0x02, 0x01, 0x02, 0x01, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-# lif defined(OLED_FONT_AZTECH)
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x2e, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x02, 0x00, 0x02, 0x00, 0x00,
- 0x00, 0x0a, 0x1e, 0x0a, 0x1e, 0x00,
- 0x00, 0x0e, 0x2a, 0x6b, 0x2a, 0x3a,
- 0x00, 0x06, 0x06, 0x26, 0x18, 0x06,
- 0x38, 0x3e, 0x2a, 0x2a, 0x28, 0x38,
- 0x18, 0x02, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x3e, 0x22, 0x00, 0x00, 0x00,
- 0x00, 0x22, 0x3e, 0x00, 0x00, 0x00,
- 0x00, 0x0e, 0x0e, 0x0e, 0x04, 0x00,
- 0x00, 0x08, 0x1c, 0x08, 0x00, 0x00,
- 0x00, 0x20, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x08, 0x08, 0x08, 0x00, 0x00,
- 0x00, 0x20, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x20, 0x18, 0x06, 0x00, 0x00,
- 0x00, 0x3e, 0x22, 0x2a, 0x22, 0x3e,
- 0x02, 0x3e, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x38, 0x28, 0x2a, 0x2a, 0x2e,
- 0x00, 0x22, 0x2a, 0x2e, 0x38, 0x00,
- 0x00, 0x0e, 0x08, 0x08, 0x3e, 0x08,
- 0x00, 0x2e, 0x2a, 0x2a, 0x28, 0x38,
- 0x00, 0x3e, 0x2a, 0x2a, 0x28, 0x38,
- 0x00, 0x06, 0x02, 0x02, 0x0a, 0x3e,
- 0x00, 0x38, 0x2e, 0x2a, 0x2e, 0x38,
- 0x00, 0x0e, 0x0a, 0x2a, 0x2a, 0x3e,
- 0x00, 0x28, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x28, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x08, 0x14, 0x22, 0x00, 0x00,
- 0x00, 0x14, 0x14, 0x14, 0x14, 0x00,
- 0x00, 0x22, 0x14, 0x08, 0x00, 0x00,
- 0x00, 0x06, 0x02, 0x2a, 0x0a, 0x06,
- 0x00, 0x3e, 0x02, 0x3a, 0x2a, 0x0a,
- 0x22, 0x3e, 0x02, 0x0a, 0x0a, 0x3e,
- 0x00, 0x3e, 0x22, 0x2a, 0x2e, 0x38,
- 0x00, 0x3e, 0x22, 0x22, 0x20, 0x30,
- 0x00, 0x3e, 0x22, 0x22, 0x22, 0x3c,
- 0x00, 0x3e, 0x2a, 0x22, 0x20, 0x30,
- 0x00, 0x3e, 0x0a, 0x0a, 0x06, 0x02,
- 0x00, 0x3e, 0x22, 0x2a, 0x28, 0x38,
- 0x00, 0x3e, 0x08, 0x08, 0x08, 0x3e,
- 0x00, 0x22, 0x3e, 0x22, 0x00, 0x00,
- 0x00, 0x30, 0x20, 0x20, 0x22, 0x3e,
- 0x00, 0x3e, 0x08, 0x08, 0x0e, 0x38,
- 0x00, 0x3e, 0x20, 0x20, 0x20, 0x30,
- 0x00, 0x3e, 0x02, 0x3e, 0x20, 0x3e,
- 0x3e, 0x3e, 0x02, 0x3e, 0x20, 0x3e,
- 0x00, 0x3e, 0x22, 0x22, 0x22, 0x3e,
- 0x00, 0x3e, 0x02, 0x0a, 0x0a, 0x0e,
- 0x00, 0x3e, 0x22, 0x22, 0x22, 0x3e,
- 0x00, 0x3e, 0x02, 0x0a, 0x0e, 0x38,
- 0x00, 0x0e, 0x0a, 0x2a, 0x2a, 0x3a,
- 0x00, 0x06, 0x02, 0x3e, 0x02, 0x06,
- 0x00, 0x3e, 0x20, 0x20, 0x20, 0x3e,
- 0x00, 0x3e, 0x20, 0x20, 0x3e, 0x00,
- 0x00, 0x3e, 0x20, 0x3e, 0x02, 0x3e,
- 0x3e, 0x3a, 0x0e, 0x08, 0x0e, 0x3a,
- 0x00, 0x0e, 0x08, 0x08, 0x28, 0x3e,
- 0x00, 0x3a, 0x2a, 0x2a, 0x0a, 0x0e,
- 0x00, 0x3e, 0x22, 0x00, 0x00, 0x00,
- 0x00, 0x02, 0x0c, 0x30, 0x00, 0x00,
- 0x22, 0x3e, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x01, 0x00, 0x01, 0x00, 0x00,
- 0x00, 0x20, 0x20, 0x20, 0x00, 0x00,
- 0x00, 0x01, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x38, 0x28, 0x28, 0x08, 0x38,
- 0x00, 0x3e, 0x20, 0x28, 0x28, 0x38,
- 0x00, 0x38, 0x28, 0x28, 0x20, 0x30,
- 0x00, 0x38, 0x28, 0x28, 0x20, 0x3e,
- 0x00, 0xf8, 0x88, 0x28, 0x28, 0x38,
- 0x00, 0xf8, 0x28, 0x28, 0x18, 0x08,
- 0x00, 0x38, 0x28, 0xa8, 0x88, 0xf8,
- 0x00, 0x3c, 0x08, 0x08, 0x08, 0x38,
- 0x00, 0x3a, 0x00, 0x00, 0x00, 0x00,
- 0x80, 0xfa, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x3e, 0x08, 0x08, 0x38, 0x2c,
- 0x00, 0x3e, 0x20, 0x00, 0x00, 0x00,
- 0x00, 0x38, 0x08, 0x38, 0x20, 0x38,
- 0x38, 0x38, 0x08, 0x38, 0x20, 0x38,
- 0x00, 0x38, 0x28, 0x28, 0x28, 0x38,
- 0x00, 0xf8, 0x08, 0x28, 0x28, 0x38,
- 0x00, 0x38, 0x28, 0x28, 0x08, 0xf8,
- 0x00, 0x38, 0x08, 0x08, 0x18, 0x08,
- 0x00, 0x38, 0x28, 0xa8, 0xa8, 0xe8,
- 0x00, 0x3e, 0x28, 0x28, 0x20, 0x30,
- 0x00, 0x38, 0x20, 0x20, 0x20, 0x38,
- 0x00, 0x38, 0x20, 0x38, 0x00, 0x00,
- 0x00, 0x38, 0x20, 0x38, 0x08, 0x38,
- 0x38, 0x28, 0x38, 0x10, 0x38, 0x28,
- 0x00, 0x38, 0x20, 0xa0, 0xa0, 0xf8,
- 0x00, 0xe8, 0xa8, 0xa8, 0x28, 0x38,
- 0x08, 0x3e, 0x22, 0x00, 0x00, 0x00,
- 0x00, 0x3f, 0x00, 0x00, 0x00, 0x00,
- 0x22, 0x3e, 0x08, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-# elif defined(OLED_FONT_BMPLAIN)
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x2e, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x03, 0x00, 0x03, 0x00, 0x00, 0x00,
- 0x0a, 0x1f, 0x0a, 0x1f, 0x0a, 0x00,
- 0x2e, 0x2a, 0x6b, 0x2a, 0x3a, 0x00,
- 0x0e, 0x2a, 0x1e, 0x08, 0x3c, 0x2a,
- 0x3e, 0x2a, 0x2a, 0x22, 0x38, 0x08,
- 0x03, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x1c, 0x22, 0x00, 0x00, 0x00, 0x00,
- 0x22, 0x1c, 0x00, 0x00, 0x00, 0x00,
- 0x15, 0x0e, 0x04, 0x0e, 0x15, 0x00,
- 0x08, 0x08, 0x3e, 0x08, 0x08, 0x00,
- 0x60, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x08, 0x08, 0x08, 0x08, 0x08, 0x00,
- 0x20, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x20, 0x10, 0x08, 0x04, 0x02, 0x00,
- 0x3e, 0x22, 0x2a, 0x22, 0x3e, 0x00,
- 0x04, 0x3e, 0x00, 0x00, 0x00, 0x00,
- 0x3a, 0x2a, 0x2a, 0x2a, 0x2e, 0x00,
- 0x2a, 0x2a, 0x2a, 0x2a, 0x3e, 0x00,
- 0x0e, 0x08, 0x08, 0x08, 0x3e, 0x00,
- 0x2e, 0x2a, 0x2a, 0x2a, 0x3a, 0x00,
- 0x3e, 0x2a, 0x2a, 0x2a, 0x3a, 0x00,
- 0x02, 0x02, 0x02, 0x02, 0x3e, 0x00,
- 0x3e, 0x2a, 0x2a, 0x2a, 0x3e, 0x00,
- 0x2e, 0x2a, 0x2a, 0x2a, 0x3e, 0x00,
- 0x14, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x34, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x08, 0x14, 0x22, 0x00, 0x00, 0x00,
- 0x14, 0x14, 0x14, 0x14, 0x14, 0x00,
- 0x22, 0x14, 0x08, 0x00, 0x00, 0x00,
- 0x06, 0x02, 0x2a, 0x0a, 0x0e, 0x00,
- 0x3e, 0x02, 0x3a, 0x2a, 0x3e, 0x00,
- 0x3e, 0x12, 0x12, 0x12, 0x3e, 0x00,
- 0x3e, 0x2a, 0x2a, 0x2a, 0x36, 0x00,
- 0x3e, 0x22, 0x22, 0x22, 0x22, 0x00,
- 0x3e, 0x22, 0x22, 0x22, 0x1c, 0x00,
- 0x3e, 0x2a, 0x2a, 0x2a, 0x22, 0x00,
- 0x3e, 0x0a, 0x0a, 0x0a, 0x02, 0x00,
- 0x3e, 0x22, 0x2a, 0x2a, 0x3a, 0x00,
- 0x3e, 0x08, 0x08, 0x08, 0x3e, 0x00,
- 0x22, 0x3e, 0x22, 0x00, 0x00, 0x00,
- 0x38, 0x20, 0x20, 0x20, 0x3e, 0x00,
- 0x3e, 0x08, 0x08, 0x14, 0x22, 0x00,
- 0x3e, 0x20, 0x20, 0x20, 0x20, 0x00,
- 0x3e, 0x04, 0x38, 0x04, 0x3e, 0x00,
- 0x3e, 0x04, 0x08, 0x10, 0x3e, 0x00,
- 0x3e, 0x22, 0x22, 0x22, 0x3e, 0x00,
- 0x3e, 0x0a, 0x0a, 0x0a, 0x0e, 0x00,
- 0x3e, 0x22, 0x72, 0x22, 0x3e, 0x00,
- 0x3e, 0x0a, 0x0a, 0x1a, 0x2e, 0x00,
- 0x2e, 0x2a, 0x2a, 0x2a, 0x3a, 0x00,
- 0x02, 0x02, 0x3e, 0x02, 0x02, 0x00,
- 0x1e, 0x20, 0x20, 0x20, 0x1e, 0x00,
- 0x0e, 0x10, 0x20, 0x10, 0x0e, 0x00,
- 0x3e, 0x10, 0x0e, 0x10, 0x3e, 0x00,
- 0x22, 0x14, 0x08, 0x14, 0x22, 0x00,
- 0x02, 0x04, 0x38, 0x04, 0x02, 0x00,
- 0x3a, 0x2a, 0x2a, 0x2a, 0x2e, 0x00,
- 0x3e, 0x22, 0x00, 0x00, 0x00, 0x00,
- 0x3f, 0x21, 0x3f, 0x00, 0x00, 0x00,
- 0x22, 0x3e, 0x00, 0x00, 0x00, 0x00,
- 0x0c, 0x1e, 0x3c, 0x1e, 0x0c, 0x00,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x00,
- 0x1c, 0x3e, 0x3e, 0x3e, 0x1c, 0x00,
- 0x3c, 0x24, 0x24, 0x24, 0x3c, 0x20,
- 0x3e, 0x24, 0x24, 0x24, 0x3c, 0x00,
- 0x3c, 0x24, 0x24, 0x24, 0x24, 0x00,
- 0x3c, 0x24, 0x24, 0x24, 0x3e, 0x00,
- 0x3c, 0x24, 0x34, 0x2c, 0x24, 0x00,
- 0x08, 0x3e, 0x0a, 0x0a, 0x00, 0x00,
- 0x1c, 0x54, 0x54, 0x54, 0x7c, 0x00,
- 0x3e, 0x04, 0x04, 0x04, 0x3c, 0x00,
- 0x3a, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x7a, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x3e, 0x08, 0x14, 0x22, 0x00, 0x00,
- 0x02, 0x3e, 0x00, 0x00, 0x00, 0x00,
- 0x3c, 0x04, 0x3c, 0x04, 0x3c, 0x00,
- 0x3c, 0x04, 0x04, 0x04, 0x3c, 0x00,
- 0x3c, 0x24, 0x24, 0x24, 0x3c, 0x00,
- 0x7c, 0x24, 0x24, 0x24, 0x3c, 0x00,
- 0x3c, 0x24, 0x24, 0x24, 0x7c, 0x00,
- 0x3c, 0x04, 0x04, 0x04, 0x00, 0x00,
- 0x24, 0x2c, 0x34, 0x24, 0x00, 0x00,
- 0x04, 0x3e, 0x24, 0x24, 0x00, 0x00,
- 0x3c, 0x20, 0x20, 0x20, 0x3c, 0x00,
- 0x0c, 0x10, 0x20, 0x10, 0x0c, 0x00,
- 0x3c, 0x20, 0x3c, 0x20, 0x3c, 0x00,
- 0x24, 0x24, 0x18, 0x24, 0x24, 0x00,
- 0x1c, 0x50, 0x50, 0x50, 0x7c, 0x00,
- 0x24, 0x34, 0x2c, 0x24, 0x00, 0x00,
- 0x08, 0x3e, 0x22, 0x00, 0x00, 0x00,
- 0x1c, 0x22, 0x22, 0x22, 0x1c, 0x00,
- 0x22, 0x3e, 0x08, 0x00, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-# elif defined(OLED_FONT_CRACKERS)
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x5E, 0x06, 0x06, 0x00, 0x00, 0x00,
- 0x1E, 0x00, 0x00, 0x1E, 0x00, 0x00,
- 0x20, 0x7C, 0x38, 0x38, 0x7C, 0x08,
- 0x48, 0xFE, 0x64, 0x64, 0x00, 0x00,
- 0x64, 0x60, 0x60, 0x18, 0x0C, 0x0C,
- 0x74, 0x4A, 0x4A, 0x7E, 0x48, 0x00,
- 0x1E, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x3C, 0x7E, 0x7E, 0x42, 0x00, 0x00,
- 0x42, 0x7E, 0x7E, 0x3C, 0x00, 0x00,
- 0x04, 0x0C, 0x04, 0x06, 0x0C, 0x04,
- 0x10, 0x3C, 0x3C, 0x3C, 0x10, 0x00,
- 0x00, 0x60, 0xE0, 0x00, 0x00, 0x00,
- 0x08, 0x08, 0x08, 0x00, 0x00, 0x00,
- 0x60, 0x60, 0x60, 0x00, 0x00, 0x00,
- 0x60, 0x78, 0x78, 0x1E, 0x06, 0x00,
- 0x3C, 0x3C, 0x7E, 0x42, 0x7E, 0x7E,
- 0x04, 0x7E, 0x7E, 0x7E, 0x00, 0x00,
- 0x76, 0x7A, 0x7E, 0x7E, 0x4C, 0x00,
- 0x4A, 0x7E, 0x7E, 0x7C, 0x00, 0x00,
- 0x0E, 0x08, 0x7E, 0x7E, 0x7E, 0x00,
- 0x4E, 0x4E, 0x4E, 0x7A, 0x1A, 0x00,
- 0x3C, 0x7E, 0x7E, 0x4A, 0x7A, 0x00,
- 0x02, 0x02, 0x0A, 0x7E, 0x7E, 0x7E,
- 0x7E, 0x7E, 0x7E, 0x4A, 0x7E, 0x00,
- 0x0C, 0x4A, 0x7E, 0x7E, 0x3C, 0x00,
- 0x66, 0x66, 0x66, 0x00, 0x00, 0x00,
- 0x66, 0xE6, 0x00, 0x00, 0x00, 0x00,
- 0x08, 0x3C, 0x7E, 0x7E, 0x62, 0x00,
- 0x14, 0x14, 0x14, 0x00, 0x00, 0x00,
- 0x62, 0x7E, 0x7E, 0x3C, 0x08, 0x00,
- 0x02, 0x4A, 0x0E, 0x0E, 0x0C, 0x00,
- 0x3C, 0x7E, 0x7E, 0x4A, 0x72, 0x30,
- 0x7A, 0x4A, 0x7E, 0x7E, 0x7C, 0x00,
- 0x7E, 0x7E, 0x7E, 0x4A, 0x24, 0x00,
- 0x3C, 0x7E, 0x7E, 0x7E, 0x46, 0x00,
- 0x7E, 0x7E, 0x7E, 0x62, 0x3C, 0x00,
- 0x7E, 0x7E, 0x7E, 0x4A, 0x00, 0x00,
- 0x7E, 0x7E, 0x7E, 0x0A, 0x00, 0x00,
- 0x3C, 0x7E, 0x7E, 0x42, 0x62, 0x00,
- 0x7E, 0x7E, 0x7E, 0x18, 0x7E, 0x00,
- 0x7E, 0x7E, 0x7E, 0x00, 0x00, 0x00,
- 0x40, 0x7E, 0x7E, 0x7E, 0x00, 0x00,
- 0x7E, 0x7E, 0x7E, 0x3C, 0x66, 0x00,
- 0x7E, 0x7E, 0x7E, 0x40, 0x00, 0x00,
- 0x7E, 0x3E, 0x3E, 0x7C, 0x3E, 0x3E,
- 0x7E, 0x3E, 0x7E, 0x7C, 0x7E, 0x00,
- 0x3C, 0x3C, 0x7E, 0x62, 0x7E, 0x7E,
- 0x7E, 0x7E, 0x7E, 0x22, 0x0C, 0x00,
- 0x3C, 0x7E, 0x7E, 0x62, 0x7E, 0x7C,
- 0x7E, 0x7E, 0x7E, 0x0A, 0x64, 0x00,
- 0x4C, 0x4E, 0x4E, 0x7A, 0x1A, 0x00,
- 0x02, 0x7E, 0x7E, 0x7E, 0x02, 0x00,
- 0x7E, 0x60, 0x7E, 0x7E, 0x7E, 0x00,
- 0x3E, 0x60, 0x7E, 0x7E, 0x3E, 0x00,
- 0x7E, 0x7C, 0x7C, 0x3E, 0x7C, 0x7C,
- 0x46, 0x7E, 0x08, 0x7E, 0x62, 0x62,
- 0x5E, 0x5E, 0x5E, 0x70, 0x3E, 0x00,
- 0x66, 0x7A, 0x7A, 0x5E, 0x66, 0x00,
- 0x7E, 0x7E, 0x7E, 0x42, 0x00, 0x00,
- 0x06, 0x1E, 0x1E, 0x78, 0x60, 0x00,
- 0x42, 0x7E, 0x7E, 0x7E, 0x00, 0x00,
- 0x0C, 0x06, 0x0C, 0x00, 0x00, 0x00,
- 0x40, 0x40, 0x40, 0x40, 0x40, 0x00,
- 0x02, 0x06, 0x06, 0x04, 0x00, 0x00,
- 0x78, 0x24, 0x7C, 0x7C, 0x78, 0x00,
- 0x7C, 0x7C, 0x7C, 0x48, 0x20, 0x00,
- 0x18, 0x7C, 0x7C, 0x7C, 0x4C, 0x00,
- 0x20, 0x48, 0x7C, 0x7C, 0x7C, 0x00,
- 0x18, 0x7C, 0x7C, 0x74, 0x4C, 0x00,
- 0x78, 0x7C, 0x7C, 0x24, 0x00, 0x00,
- 0x18, 0x7C, 0x7C, 0x44, 0x74, 0x00,
- 0x7C, 0x7C, 0x7C, 0x08, 0x60, 0x00,
- 0x7C, 0x7C, 0x7C, 0x00, 0x00, 0x00,
- 0x40, 0x7C, 0x7C, 0x7C, 0x00, 0x00,
- 0x7C, 0x7C, 0x7C, 0x20, 0x48, 0x00,
- 0x7C, 0x7C, 0x7C, 0x40, 0x00, 0x00,
- 0x7C, 0x3C, 0x3C, 0x78, 0x3C, 0x3C,
- 0x7C, 0x7C, 0x7C, 0x04, 0x78, 0x00,
- 0x18, 0x18, 0x7C, 0x44, 0x7C, 0x7C,
- 0x7C, 0x7C, 0x7C, 0x24, 0x08, 0x00,
- 0x18, 0x18, 0x7C, 0x44, 0x7C, 0x7C,
- 0x7C, 0x7C, 0x7C, 0x04, 0x00, 0x00,
- 0x5C, 0x7C, 0x7C, 0x74, 0x00, 0x00,
- 0x08, 0x7C, 0x7C, 0x7C, 0x48, 0x00,
- 0x7C, 0x60, 0x7C, 0x7C, 0x7C, 0x00,
- 0x3C, 0x60, 0x7C, 0x7C, 0x3C, 0x00,
- 0x7C, 0x78, 0x78, 0x3C, 0x78, 0x78,
- 0x4C, 0x3C, 0x3C, 0x78, 0x64, 0x00,
- 0x4C, 0x4C, 0x4C, 0x78, 0x3C, 0x00,
- 0x5C, 0x74, 0x44, 0x5C, 0x74, 0x00,
- 0x24, 0x7E, 0x42, 0x42, 0x00, 0x00,
- 0x7E, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x42, 0x7E, 0x24, 0x00, 0x00, 0x00,
- 0x04, 0x06, 0x06, 0x02, 0x04, 0x06,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-# elif defined(OLED_FONT_EIN)
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x5F, 0x00, 0x00, 0x00,
- 0x00, 0x07, 0x00, 0x07, 0x00, 0x00,
- 0x14, 0x7F, 0x14, 0x7F, 0x14, 0x00,
- 0x24, 0x2A, 0x7F, 0x2A, 0x12, 0x00,
- 0x23, 0x13, 0x08, 0x64, 0x62, 0x00,
- 0x36, 0x49, 0x56, 0x20, 0x50, 0x00,
- 0x00, 0x08, 0x07, 0x03, 0x00, 0x00,
- 0x00, 0x1C, 0x22, 0x41, 0x00, 0x00,
- 0x00, 0x41, 0x22, 0x1C, 0x00, 0x00,
- 0x2A, 0x1C, 0x7F, 0x1C, 0x2A, 0x00,
- 0x08, 0x08, 0x3E, 0x08, 0x08, 0x00,
- 0x00, 0x80, 0x70, 0x30, 0x00, 0x00,
- 0x08, 0x08, 0x08, 0x08, 0x08, 0x00,
- 0x00, 0x00, 0x60, 0x60, 0x00, 0x00,
- 0x20, 0x10, 0x08, 0x04, 0x02, 0x00,
- 0x3E, 0x51, 0x49, 0x45, 0x3E, 0x00,
- 0x00, 0x42, 0x7F, 0x40, 0x00, 0x00,
- 0x72, 0x49, 0x49, 0x49, 0x46, 0x00,
- 0x21, 0x41, 0x49, 0x4D, 0x33, 0x00,
- 0x18, 0x14, 0x12, 0x7F, 0x10, 0x00,
- 0x27, 0x45, 0x45, 0x45, 0x39, 0x00,
- 0x3C, 0x4A, 0x49, 0x49, 0x31, 0x00,
- 0x41, 0x21, 0x11, 0x09, 0x07, 0x00,
- 0x36, 0x49, 0x49, 0x49, 0x36, 0x00,
- 0x46, 0x49, 0x49, 0x29, 0x1E, 0x00,
- 0x00, 0x00, 0x14, 0x00, 0x00, 0x00,
- 0x00, 0x40, 0x34, 0x00, 0x00, 0x00,
- 0x00, 0x08, 0x14, 0x22, 0x41, 0x00,
- 0x14, 0x14, 0x14, 0x14, 0x14, 0x00,
- 0x00, 0x41, 0x22, 0x14, 0x08, 0x00,
- 0x02, 0x01, 0x59, 0x09, 0x06, 0x00,
- 0x00, 0x41, 0x5D, 0x59, 0x4E, 0x00,
- 0x7C, 0x12, 0x11, 0x12, 0x7C, 0x00,
- 0x7F, 0x49, 0x49, 0x49, 0x36, 0x00,
- 0x3E, 0x41, 0x41, 0x41, 0x22, 0x00,
- 0x7F, 0x41, 0x41, 0x41, 0x3E, 0x00,
- 0x7F, 0x49, 0x49, 0x49, 0x41, 0x00,
- 0x7F, 0x09, 0x09, 0x09, 0x01, 0x00,
- 0x3E, 0x41, 0x41, 0x51, 0x73, 0x00,
- 0x7F, 0x08, 0x08, 0x08, 0x7F, 0x00,
- 0x00, 0x00, 0x7F, 0x00, 0x00, 0x00,
- 0x20, 0x40, 0x40, 0x3F, 0x00, 0x00,
- 0x7F, 0x08, 0x14, 0x22, 0x41, 0x00,
- 0x7F, 0x40, 0x40, 0x40, 0x40, 0x00,
- 0x7F, 0x02, 0x1C, 0x02, 0x7F, 0x00,
- 0x7F, 0x04, 0x08, 0x10, 0x7F, 0x00,
- 0x3E, 0x41, 0x41, 0x41, 0x3E, 0x00,
- 0x7F, 0x09, 0x09, 0x09, 0x06, 0x00,
- 0x3E, 0x41, 0x51, 0x21, 0x5E, 0x00,
- 0x7F, 0x09, 0x19, 0x29, 0x46, 0x00,
- 0x26, 0x49, 0x49, 0x49, 0x32, 0x00,
- 0x01, 0x01, 0x7F, 0x01, 0x01, 0x00,
- 0x3F, 0x40, 0x40, 0x40, 0x3F, 0x00,
- 0x1F, 0x20, 0x40, 0x20, 0x1F, 0x00,
- 0x3F, 0x40, 0x38, 0x40, 0x3F, 0x00,
- 0x63, 0x14, 0x08, 0x14, 0x63, 0x00,
- 0x03, 0x04, 0x78, 0x04, 0x03, 0x00,
- 0x61, 0x59, 0x49, 0x4D, 0x43, 0x00,
- 0x00, 0x7F, 0x41, 0x41, 0x41, 0x00,
- 0x02, 0x04, 0x08, 0x10, 0x20, 0x00,
- 0x00, 0x41, 0x41, 0x41, 0x7F, 0x00,
- 0x04, 0x02, 0x01, 0x02, 0x04, 0x00,
- 0x40, 0x40, 0x40, 0x40, 0x40, 0x00,
- 0x00, 0x03, 0x07, 0x08, 0x00, 0x00,
- 0x78, 0x14, 0x14, 0x78, 0x00, 0x00,
- 0x7C, 0x54, 0x54, 0x28, 0x00, 0x00,
- 0x38, 0x44, 0x44, 0x28, 0x00, 0x00,
- 0x7C, 0x44, 0x44, 0x38, 0x00, 0x00,
- 0x7C, 0x54, 0x54, 0x44, 0x00, 0x00,
- 0x7C, 0x14, 0x14, 0x04, 0x00, 0x00,
- 0x38, 0x44, 0x54, 0x34, 0x00, 0x00,
- 0x7C, 0x10, 0x10, 0x7C, 0x00, 0x00,
- 0x00, 0x7C, 0x00, 0x00, 0x00, 0x00,
- 0x20, 0x40, 0x40, 0x3C, 0x00, 0x00,
- 0x7C, 0x10, 0x28, 0x44, 0x00, 0x00,
- 0x7C, 0x40, 0x40, 0x40, 0x00, 0x00,
- 0x7C, 0x08, 0x70, 0x08, 0x7C, 0x00,
- 0x7C, 0x08, 0x10, 0x7C, 0x00, 0x00,
- 0x38, 0x44, 0x44, 0x38, 0x00, 0x00,
- 0x7C, 0x14, 0x14, 0x08, 0x00, 0x00,
- 0x38, 0x44, 0x24, 0x58, 0x00, 0x00,
- 0x7C, 0x14, 0x34, 0x48, 0x00, 0x00,
- 0x48, 0x54, 0x54, 0x24, 0x00, 0x00,
- 0x04, 0x7C, 0x04, 0x00, 0x00, 0x00,
- 0x3C, 0x40, 0x40, 0x3C, 0x00, 0x00,
- 0x3C, 0x40, 0x20, 0x1C, 0x00, 0x00,
- 0x3C, 0x40, 0x30, 0x40, 0x3C, 0x00,
- 0x44, 0x28, 0x10, 0x28, 0x44, 0x00,
- 0x0C, 0x10, 0x70, 0x10, 0x0C, 0x00,
- 0x44, 0x64, 0x54, 0x4C, 0x44, 0x00,
- 0x00, 0x08, 0x36, 0x41, 0x00, 0x00,
- 0x00, 0x00, 0x77, 0x00, 0x00, 0x00,
- 0x00, 0x41, 0x36, 0x08, 0x00, 0x00,
- 0x02, 0x01, 0x02, 0x04, 0x02, 0x00,
- 0x3C, 0x26, 0x23, 0x26, 0x3C, 0x00,
-# elif defined(OLED_FONT_HISKYF21)
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x5C, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x0C, 0x00, 0x0C, 0x00, 0x00, 0x00,
- 0x28, 0x7C, 0x28, 0x7C, 0x28, 0x00,
- 0x48, 0x54, 0x54, 0xFE, 0x54, 0x54,
- 0x44, 0x20, 0x10, 0x08, 0x44, 0x00,
- 0x28, 0x54, 0x54, 0x54, 0x74, 0x10,
- 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x78, 0x84, 0x00, 0x00, 0x00, 0x00,
- 0x84, 0x78, 0x00, 0x00, 0x00, 0x00,
- 0x48, 0x30, 0x30, 0x48, 0x00, 0x00,
- 0x10, 0x38, 0x10, 0x00, 0x00, 0x00,
- 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x10, 0x10, 0x10, 0x10, 0x00, 0x00,
- 0x40, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x60, 0x10, 0x0C, 0x00, 0x00, 0x00,
- 0x38, 0x44, 0x44, 0x44, 0x44, 0x38,
- 0x08, 0x7C, 0x00, 0x00, 0x00, 0x00,
- 0x64, 0x54, 0x54, 0x54, 0x48, 0x00,
- 0x44, 0x54, 0x54, 0x54, 0x28, 0x00,
- 0x1C, 0x10, 0x10, 0x10, 0x7C, 0x00,
- 0x4C, 0x54, 0x54, 0x54, 0x24, 0x00,
- 0x38, 0x54, 0x54, 0x54, 0x54, 0x20,
- 0x44, 0x24, 0x14, 0x0C, 0x00, 0x00,
- 0x28, 0x54, 0x54, 0x54, 0x54, 0x28,
- 0x08, 0x54, 0x54, 0x54, 0x54, 0x38,
- 0x48, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0xC8, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x10, 0x28, 0x44, 0x00, 0x00, 0x00,
- 0x28, 0x28, 0x28, 0x28, 0x00, 0x00,
- 0x44, 0x28, 0x10, 0x00, 0x00, 0x00,
- 0x04, 0x54, 0x14, 0x14, 0x08, 0x00,
- 0x38, 0x44, 0x5C, 0x54, 0x48, 0x00,
- 0x60, 0x18, 0x14, 0x14, 0x18, 0x60,
- 0x7C, 0x54, 0x54, 0x54, 0x58, 0x30,
- 0x38, 0x44, 0x44, 0x44, 0x40, 0x00,
- 0x7C, 0x44, 0x44, 0x44, 0x38, 0x00,
- 0x7C, 0x54, 0x54, 0x54, 0x54, 0x40,
- 0x7C, 0x14, 0x14, 0x14, 0x10, 0x00,
- 0x38, 0x44, 0x44, 0x44, 0x70, 0x10,
- 0x7C, 0x10, 0x10, 0x10, 0x10, 0x7C,
- 0x7C, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x20, 0x40, 0x40, 0x40, 0x40, 0x3C,
- 0x7C, 0x10, 0x10, 0x28, 0x44, 0x00,
- 0x7C, 0x40, 0x40, 0x40, 0x00, 0x00,
- 0x7C, 0x08, 0x10, 0x60, 0x10, 0x08,
- 0x7C, 0x08, 0x10, 0x20, 0x7C, 0x00,
- 0x38, 0x44, 0x44, 0x44, 0x44, 0x38,
- 0x7C, 0x24, 0x24, 0x24, 0x18, 0x00,
- 0x38, 0x44, 0x64, 0x44, 0x38, 0x00,
- 0x7C, 0x14, 0x14, 0x14, 0x68, 0x00,
- 0x48, 0x54, 0x54, 0x54, 0x54, 0x20,
- 0x04, 0x04, 0x7C, 0x04, 0x04, 0x00,
- 0x3C, 0x40, 0x40, 0x40, 0x3C, 0x00,
- 0x0C, 0x30, 0x40, 0x30, 0x0C, 0x00,
- 0x0C, 0x30, 0x40, 0x20, 0x1C, 0x20,
- 0x74, 0x2C, 0x10, 0x28, 0x44, 0x00,
- 0x04, 0x08, 0x70, 0x08, 0x04, 0x00,
- 0x44, 0x64, 0x54, 0x4C, 0x44, 0x00,
- 0xFC, 0x84, 0x00, 0x00, 0x00, 0x00,
- 0x0C, 0x10, 0x60, 0x00, 0x00, 0x00,
- 0x84, 0xFC, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x7F, 0x41, 0x7F, 0x00, 0x00,
- 0x40, 0x40, 0x40, 0x40, 0x00, 0x00,
- 0x00, 0x7F, 0x41, 0x7F, 0x00, 0x00,
- 0x60, 0x18, 0x14, 0x14, 0x18, 0x60,
- 0x7C, 0x54, 0x54, 0x54, 0x58, 0x30,
- 0x38, 0x44, 0x44, 0x44, 0x40, 0x00,
- 0x7C, 0x44, 0x44, 0x44, 0x38, 0x00,
- 0x7C, 0x54, 0x54, 0x54, 0x54, 0x40,
- 0x7C, 0x14, 0x14, 0x14, 0x10, 0x00,
- 0x38, 0x44, 0x44, 0x44, 0x70, 0x10,
- 0x7C, 0x10, 0x10, 0x10, 0x10, 0x7C,
- 0x7C, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x20, 0x40, 0x40, 0x40, 0x40, 0x3C,
- 0x7C, 0x10, 0x10, 0x28, 0x44, 0x00,
- 0x7C, 0x40, 0x40, 0x40, 0x00, 0x00,
- 0x7C, 0x08, 0x10, 0x60, 0x10, 0x08,
- 0x7C, 0x08, 0x10, 0x20, 0x7C, 0x00,
- 0x38, 0x44, 0x44, 0x44, 0x44, 0x38,
- 0x7C, 0x24, 0x24, 0x24, 0x18, 0x00,
- 0x38, 0x44, 0x64, 0x44, 0x38, 0x00,
- 0x7C, 0x14, 0x14, 0x14, 0x68, 0x00,
- 0x48, 0x54, 0x54, 0x54, 0x54, 0x20,
- 0x04, 0x04, 0x7C, 0x04, 0x04, 0x00,
- 0x3C, 0x40, 0x40, 0x40, 0x3C, 0x00,
- 0x0C, 0x30, 0x40, 0x30, 0x0C, 0x00,
- 0x0C, 0x30, 0x40, 0x20, 0x1C, 0x20,
- 0x74, 0x2C, 0x10, 0x28, 0x44, 0x00,
- 0x04, 0x08, 0x70, 0x08, 0x04, 0x00,
- 0x44, 0x64, 0x54, 0x4C, 0x44, 0x00,
- 0x00, 0x7F, 0x41, 0x7F, 0x00, 0x00,
- 0xFC, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x7F, 0x41, 0x7F, 0x00, 0x00,
- 0x00, 0x7F, 0x41, 0x7F, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-# elif defined(OLED_FONT_SUPER_DIGG)
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x58, 0x5C, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x01, 0x00, 0x00, 0x01, 0x00,
- 0x14, 0x7F, 0x14, 0x7F, 0x14, 0x00,
- 0x5C, 0xFE, 0x54, 0xFE, 0x74, 0x00,
- 0x03, 0x63, 0x38, 0x0C, 0x63, 0x60,
- 0x70, 0x5C, 0x54, 0x74, 0x7C, 0x50,
- 0x00, 0x01, 0x00, 0x00, 0x00, 0x00,
- 0x70, 0x7C, 0x44, 0x00, 0x00, 0x00,
- 0x44, 0x7C, 0x70, 0x00, 0x00, 0x00,
- 0x2A, 0x1C, 0x7F, 0x1C, 0x2A, 0x00,
- 0x10, 0x10, 0x70, 0x7C, 0x10, 0x00,
- 0x40, 0xC0, 0x00, 0x00, 0x00, 0x00,
- 0x10, 0x10, 0x10, 0x10, 0x00, 0x00,
- 0x40, 0x40, 0x00, 0x00, 0x00, 0x00,
- 0x70, 0x7C, 0x03, 0x00, 0x00, 0x00,
- 0x7C, 0x44, 0x44, 0x44, 0x7C, 0x1C,
- 0x04, 0x04, 0x7C, 0x1C, 0x00, 0x00,
- 0x74, 0x74, 0x54, 0x54, 0x5C, 0x00,
- 0x44, 0x54, 0x54, 0x54, 0x7C, 0x70,
- 0x1C, 0x10, 0x10, 0x7C, 0x7C, 0x00,
- 0x5C, 0x5C, 0x54, 0x54, 0x74, 0x00,
- 0x70, 0x7C, 0x54, 0x54, 0x74, 0x00,
- 0x04, 0x14, 0x14, 0x14, 0x7C, 0x70,
- 0x70, 0x5C, 0x54, 0x74, 0x7C, 0x00,
- 0x5C, 0x54, 0x54, 0x54, 0x7C, 0x1C,
- 0x50, 0x50, 0x00, 0x00, 0x00, 0x00,
- 0x50, 0xD0, 0x00, 0x00, 0x00, 0x00,
- 0x18, 0x18, 0x24, 0x42, 0x00, 0x00,
- 0x28, 0x28, 0x28, 0x28, 0x00, 0x00,
- 0x42, 0x24, 0x18, 0x18, 0x00, 0x00,
- 0x04, 0x14, 0x54, 0x54, 0x1C, 0x1C,
- 0xF8, 0x04, 0x74, 0x74, 0x54, 0x54,
- 0x70, 0x7C, 0x14, 0x14, 0x3C, 0x00,
- 0x7C, 0x74, 0x54, 0x54, 0x7C, 0x00,
- 0x70, 0x7C, 0x44, 0x44, 0x44, 0x44,
- 0x70, 0x7C, 0x44, 0x44, 0x48, 0x70,
- 0x70, 0x7C, 0x54, 0x54, 0x54, 0x44,
- 0x70, 0x7C, 0x14, 0x14, 0x14, 0x04,
- 0x70, 0x7C, 0x44, 0x44, 0x54, 0x74,
- 0x70, 0x7C, 0x10, 0x10, 0x7C, 0x00,
- 0x70, 0x7C, 0x00, 0x00, 0x00, 0x00,
- 0x60, 0x40, 0x40, 0x40, 0x7C, 0x70,
- 0x7C, 0x70, 0x10, 0x1C, 0x70, 0x00,
- 0x70, 0x7C, 0x40, 0x40, 0x40, 0x60,
- 0x70, 0x7C, 0x04, 0x04, 0x7C, 0x04,
- 0x70, 0x7C, 0x04, 0x04, 0x04, 0x7C,
- 0x70, 0x7C, 0x44, 0x44, 0x44, 0x7C,
- 0x70, 0x7C, 0x24, 0x24, 0x3C, 0x00,
- 0x7C, 0x44, 0x44, 0x44, 0x7C, 0x00,
- 0x7C, 0x74, 0x14, 0x14, 0x3C, 0x00,
- 0x5C, 0x5C, 0x54, 0x54, 0x74, 0x00,
- 0x04, 0x04, 0x7C, 0x74, 0x04, 0x00,
- 0x70, 0x7C, 0x40, 0x40, 0x40, 0x7C,
- 0x70, 0x7C, 0x40, 0x40, 0x20, 0x1C,
- 0x70, 0x7C, 0x40, 0x40, 0x7C, 0x40,
- 0x70, 0x7C, 0x10, 0x10, 0x3C, 0x00,
- 0x1C, 0x10, 0x70, 0x70, 0x1C, 0x00,
- 0x74, 0x74, 0x54, 0x54, 0x5C, 0x00,
- 0xF0, 0xFE, 0x82, 0x00, 0x00, 0x00,
- 0x03, 0x7C, 0x70, 0x00, 0x00, 0x00,
- 0x82, 0xFE, 0xF0, 0x00, 0x00, 0x00,
- 0x04, 0x02, 0x01, 0x06, 0x04, 0x00,
- 0x40, 0x40, 0x40, 0x40, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x70, 0x7C, 0x14, 0x14, 0x3C, 0x00,
- 0x7C, 0x74, 0x54, 0x54, 0x7C, 0x00,
- 0x70, 0x7C, 0x44, 0x44, 0x44, 0x44,
- 0x70, 0x7C, 0x44, 0x44, 0x48, 0x70,
- 0x70, 0x7C, 0x54, 0x54, 0x54, 0x44,
- 0x70, 0x7C, 0x14, 0x14, 0x14, 0x04,
- 0x70, 0x7C, 0x44, 0x44, 0x54, 0x74,
- 0x70, 0x7C, 0x10, 0x10, 0x7C, 0x00,
- 0x70, 0x7C, 0x00, 0x00, 0x00, 0x00,
- 0x60, 0x40, 0x40, 0x40, 0x7C, 0x70,
- 0x7C, 0x70, 0x10, 0x1C, 0x70, 0x00,
- 0x70, 0x7C, 0x40, 0x40, 0x40, 0x60,
- 0x70, 0x7C, 0x04, 0x04, 0x7C, 0x04,
- 0x70, 0x7C, 0x04, 0x04, 0x04, 0x7C,
- 0x70, 0x7C, 0x44, 0x44, 0x44, 0x7C,
- 0x70, 0x7C, 0x24, 0x24, 0x3C, 0x00,
- 0x7C, 0x44, 0x44, 0x44, 0x7C, 0x00,
- 0x7C, 0x74, 0x14, 0x14, 0x3C, 0x00,
- 0x5C, 0x5C, 0x54, 0x54, 0x74, 0x00,
- 0x04, 0x04, 0x7C, 0x74, 0x04, 0x00,
- 0x70, 0x7C, 0x40, 0x40, 0x40, 0x7C,
- 0x70, 0x7C, 0x40, 0x40, 0x20, 0x1C,
- 0x70, 0x7C, 0x40, 0x40, 0x7C, 0x40,
- 0x70, 0x7C, 0x10, 0x10, 0x3C, 0x00,
- 0x1C, 0x10, 0x70, 0x70, 0x1C, 0x00,
- 0x74, 0x74, 0x54, 0x54, 0x5C, 0x00,
- 0x10, 0xFE, 0xC2, 0x00, 0x00, 0x00,
- 0x00, 0x44, 0x77, 0x00, 0x00, 0x00,
- 0xC2, 0xFE, 0x10, 0x00, 0x00, 0x00,
- 0x02, 0x01, 0x03, 0x04, 0x06, 0x02,
- 0x3C, 0x22, 0x21, 0x22, 0x3C, 0x00,
-#elif defined (OLED_FONT_ZXPIX)
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x2F, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x03, 0x00, 0x03, 0x00, 0x00, 0x00,
- 0x12, 0x3F, 0x12, 0x12, 0x3F, 0x12,
- 0x2E, 0x2A, 0x7F, 0x2A, 0x3A, 0x00,
- 0x23, 0x13, 0x08, 0x04, 0x32, 0x31,
- 0x10, 0x2A, 0x25, 0x2A, 0x10, 0x20,
- 0x02, 0x01, 0x00, 0x00, 0x00, 0x00,
- 0x1E, 0x21, 0x00, 0x00, 0x00, 0x00,
- 0x21, 0x1E, 0x00, 0x00, 0x00, 0x00,
- 0x08, 0x2A, 0x1C, 0x2A, 0x08, 0x08,
- 0x08, 0x08, 0x3E, 0x08, 0x08, 0x08,
- 0x80, 0x60, 0x00, 0x00, 0x00, 0x00,
- 0x08, 0x08, 0x08, 0x08, 0x08, 0x00,
- 0x30, 0x30, 0x00, 0x00, 0x00, 0x00,
- 0x20, 0x10, 0x08, 0x04, 0x02, 0x00,
- 0x1E, 0x31, 0x29, 0x25, 0x23, 0x1E,
- 0x22, 0x21, 0x3F, 0x20, 0x20, 0x20,
- 0x32, 0x29, 0x29, 0x29, 0x29, 0x26,
- 0x12, 0x21, 0x21, 0x25, 0x25, 0x1A,
- 0x18, 0x14, 0x12, 0x3F, 0x10, 0x10,
- 0x17, 0x25, 0x25, 0x25, 0x25, 0x19,
- 0x1E, 0x25, 0x25, 0x25, 0x25, 0x18,
- 0x01, 0x01, 0x31, 0x09, 0x05, 0x03,
- 0x1A, 0x25, 0x25, 0x25, 0x25, 0x1A,
- 0x06, 0x29, 0x29, 0x29, 0x29, 0x1E,
- 0x24, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x80, 0x64, 0x00, 0x00, 0x00, 0x00,
- 0x08, 0x14, 0x22, 0x00, 0x00, 0x00,
- 0x14, 0x14, 0x14, 0x14, 0x14, 0x00,
- 0x22, 0x14, 0x08, 0x00, 0x00, 0x00,
- 0x02, 0x01, 0x01, 0x29, 0x05, 0x02,
- 0x1E, 0x21, 0x2D, 0x2B, 0x2D, 0x0E,
- 0x3E, 0x09, 0x09, 0x09, 0x09, 0x3E,
- 0x3F, 0x25, 0x25, 0x25, 0x25, 0x1A,
- 0x1E, 0x21, 0x21, 0x21, 0x21, 0x12,
- 0x3F, 0x21, 0x21, 0x21, 0x12, 0x0C,
- 0x3F, 0x25, 0x25, 0x25, 0x25, 0x21,
- 0x3F, 0x05, 0x05, 0x05, 0x05, 0x01,
- 0x1E, 0x21, 0x21, 0x21, 0x29, 0x1A,
- 0x3F, 0x04, 0x04, 0x04, 0x04, 0x3F,
- 0x21, 0x21, 0x3F, 0x21, 0x21, 0x21,
- 0x10, 0x20, 0x20, 0x20, 0x20, 0x1F,
- 0x3F, 0x04, 0x0C, 0x0A, 0x11, 0x20,
- 0x3F, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x3F, 0x02, 0x04, 0x04, 0x02, 0x3F,
- 0x3F, 0x02, 0x04, 0x08, 0x10, 0x3F,
- 0x1E, 0x21, 0x21, 0x21, 0x21, 0x1E,
- 0x3F, 0x09, 0x09, 0x09, 0x09, 0x06,
- 0x1E, 0x21, 0x29, 0x31, 0x21, 0x1E,
- 0x3F, 0x09, 0x09, 0x09, 0x19, 0x26,
- 0x12, 0x25, 0x25, 0x25, 0x25, 0x18,
- 0x01, 0x01, 0x01, 0x3F, 0x01, 0x01,
- 0x1F, 0x20, 0x20, 0x20, 0x20, 0x1F,
- 0x0F, 0x10, 0x20, 0x20, 0x10, 0x0F,
- 0x1F, 0x20, 0x10, 0x10, 0x20, 0x1F,
- 0x21, 0x12, 0x0C, 0x0C, 0x12, 0x21,
- 0x01, 0x02, 0x0C, 0x38, 0x04, 0x02,
- 0x21, 0x31, 0x29, 0x25, 0x23, 0x21,
- 0x3F, 0x21, 0x00, 0x00, 0x00, 0x00,
- 0x02, 0x04, 0x08, 0x10, 0x20, 0x00,
- 0x21, 0x3F, 0x00, 0x00, 0x00, 0x00,
- 0x04, 0x02, 0x3F, 0x02, 0x04, 0x00,
- 0x40, 0x40, 0x40, 0x40, 0x40, 0x40,
- 0x01, 0x02, 0x00, 0x00, 0x00, 0x00,
- 0x10, 0x30, 0x2A, 0x2A, 0x3C, 0x00,
- 0x3F, 0x24, 0x24, 0x24, 0x18, 0x00,
- 0x0C, 0x14, 0x22, 0x22, 0x00, 0x00,
- 0x18, 0x24, 0x24, 0x24, 0x3F, 0x00,
- 0x1C, 0x2C, 0x2A, 0x2A, 0x24, 0x00,
- 0x3E, 0x05, 0x01, 0x00, 0x00, 0x00,
- 0x18, 0x28, 0xA4, 0xA4, 0x7C, 0x00,
- 0x3F, 0x04, 0x04, 0x0C, 0x30, 0x00,
- 0x24, 0x3D, 0x20, 0x00, 0x00, 0x00,
- 0x20, 0x40, 0x40, 0x3D, 0x00, 0x00,
- 0x3F, 0x0C, 0x12, 0x20, 0x00, 0x00,
- 0x1F, 0x20, 0x20, 0x00, 0x00, 0x00,
- 0x3E, 0x02, 0x3C, 0x02, 0x3C, 0x00,
- 0x3E, 0x02, 0x02, 0x02, 0x3C, 0x00,
- 0x0C, 0x14, 0x22, 0x32, 0x0C, 0x00,
- 0xFC, 0x24, 0x24, 0x24, 0x18, 0x00,
- 0x18, 0x24, 0x24, 0x24, 0xFC, 0x80,
- 0x3C, 0x04, 0x02, 0x02, 0x00, 0x00,
- 0x24, 0x2C, 0x2A, 0x2A, 0x10, 0x00,
- 0x02, 0x1F, 0x22, 0x20, 0x00, 0x00,
- 0x1E, 0x20, 0x20, 0x20, 0x1E, 0x00,
- 0x06, 0x18, 0x20, 0x18, 0x06, 0x00,
- 0x1E, 0x30, 0x1C, 0x30, 0x0E, 0x00,
- 0x22, 0x14, 0x08, 0x14, 0x22, 0x00,
- 0x0C, 0x10, 0xA0, 0xA0, 0x7C, 0x00,
- 0x22, 0x32, 0x2A, 0x26, 0x22, 0x22,
- 0x0C, 0x3F, 0x21, 0x00, 0x00, 0x00,
- 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x21, 0x3F, 0x0C, 0x00, 0x00, 0x00,
- 0x02, 0x01, 0x02, 0x01, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-# else // default font
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x5F, 0x00, 0x00, 0x00,
- 0x00, 0x07, 0x00, 0x07, 0x00, 0x00,
- 0x14, 0x7F, 0x14, 0x7F, 0x14, 0x00,
- 0x24, 0x2A, 0x7F, 0x2A, 0x12, 0x00,
- 0x23, 0x13, 0x08, 0x64, 0x62, 0x00,
- 0x36, 0x49, 0x56, 0x20, 0x50, 0x00,
- 0x00, 0x08, 0x07, 0x03, 0x00, 0x00,
- 0x00, 0x1C, 0x22, 0x41, 0x00, 0x00,
- 0x00, 0x41, 0x22, 0x1C, 0x00, 0x00,
- 0x2A, 0x1C, 0x7F, 0x1C, 0x2A, 0x00,
- 0x08, 0x08, 0x3E, 0x08, 0x08, 0x00,
- 0x00, 0x80, 0x70, 0x30, 0x00, 0x00,
- 0x08, 0x08, 0x08, 0x08, 0x08, 0x00,
- 0x00, 0x00, 0x60, 0x60, 0x00, 0x00,
- 0x20, 0x10, 0x08, 0x04, 0x02, 0x00,
- 0x3E, 0x51, 0x49, 0x45, 0x3E, 0x00,
- 0x00, 0x42, 0x7F, 0x40, 0x00, 0x00,
- 0x72, 0x49, 0x49, 0x49, 0x46, 0x00,
- 0x21, 0x41, 0x49, 0x4D, 0x33, 0x00,
- 0x18, 0x14, 0x12, 0x7F, 0x10, 0x00,
- 0x27, 0x45, 0x45, 0x45, 0x39, 0x00,
- 0x3C, 0x4A, 0x49, 0x49, 0x31, 0x00,
- 0x41, 0x21, 0x11, 0x09, 0x07, 0x00,
- 0x36, 0x49, 0x49, 0x49, 0x36, 0x00,
- 0x46, 0x49, 0x49, 0x29, 0x1E, 0x00,
- 0x00, 0x00, 0x14, 0x00, 0x00, 0x00,
- 0x00, 0x40, 0x34, 0x00, 0x00, 0x00,
- 0x00, 0x08, 0x14, 0x22, 0x41, 0x00,
- 0x14, 0x14, 0x14, 0x14, 0x14, 0x00,
- 0x00, 0x41, 0x22, 0x14, 0x08, 0x00,
- 0x02, 0x01, 0x59, 0x09, 0x06, 0x00,
- 0x3E, 0x41, 0x5D, 0x59, 0x4E, 0x00,
- 0x7C, 0x12, 0x11, 0x12, 0x7C, 0x00,
- 0x7F, 0x49, 0x49, 0x49, 0x36, 0x00,
- 0x3E, 0x41, 0x41, 0x41, 0x22, 0x00,
- 0x7F, 0x41, 0x41, 0x41, 0x3E, 0x00,
- 0x7F, 0x49, 0x49, 0x49, 0x41, 0x00,
- 0x7F, 0x09, 0x09, 0x09, 0x01, 0x00,
- 0x3E, 0x41, 0x41, 0x51, 0x73, 0x00,
- 0x7F, 0x08, 0x08, 0x08, 0x7F, 0x00,
- 0x00, 0x41, 0x7F, 0x41, 0x00, 0x00,
- 0x20, 0x40, 0x41, 0x3F, 0x01, 0x00,
- 0x7F, 0x08, 0x14, 0x22, 0x41, 0x00,
- 0x7F, 0x40, 0x40, 0x40, 0x40, 0x00,
- 0x7F, 0x02, 0x1C, 0x02, 0x7F, 0x00,
- 0x7F, 0x04, 0x08, 0x10, 0x7F, 0x00,
- 0x3E, 0x41, 0x41, 0x41, 0x3E, 0x00,
- 0x7F, 0x09, 0x09, 0x09, 0x06, 0x00,
- 0x3E, 0x41, 0x51, 0x21, 0x5E, 0x00,
- 0x7F, 0x09, 0x19, 0x29, 0x46, 0x00,
- 0x26, 0x49, 0x49, 0x49, 0x32, 0x00,
- 0x03, 0x01, 0x7F, 0x01, 0x03, 0x00,
- 0x3F, 0x40, 0x40, 0x40, 0x3F, 0x00,
- 0x1F, 0x20, 0x40, 0x20, 0x1F, 0x00,
- 0x3F, 0x40, 0x38, 0x40, 0x3F, 0x00,
- 0x63, 0x14, 0x08, 0x14, 0x63, 0x00,
- 0x03, 0x04, 0x78, 0x04, 0x03, 0x00,
- 0x61, 0x59, 0x49, 0x4D, 0x43, 0x00,
- 0x00, 0x7F, 0x41, 0x41, 0x41, 0x00,
- 0x02, 0x04, 0x08, 0x10, 0x20, 0x00,
- 0x00, 0x41, 0x41, 0x41, 0x7F, 0x00,
- 0x04, 0x02, 0x01, 0x02, 0x04, 0x00,
- 0x40, 0x40, 0x40, 0x40, 0x40, 0x00,
- 0x00, 0x03, 0x07, 0x08, 0x00, 0x00,
- 0x20, 0x54, 0x54, 0x78, 0x40, 0x00,
- 0x7F, 0x28, 0x44, 0x44, 0x38, 0x00,
- 0x38, 0x44, 0x44, 0x44, 0x28, 0x00,
- 0x38, 0x44, 0x44, 0x28, 0x7F, 0x00,
- 0x38, 0x54, 0x54, 0x54, 0x18, 0x00,
- 0x00, 0x08, 0x7E, 0x09, 0x02, 0x00,
- 0x18, 0xA4, 0xA4, 0x9C, 0x78, 0x00,
- 0x7F, 0x08, 0x04, 0x04, 0x78, 0x00,
- 0x00, 0x44, 0x7D, 0x40, 0x00, 0x00,
- 0x20, 0x40, 0x40, 0x3D, 0x00, 0x00,
- 0x7F, 0x10, 0x28, 0x44, 0x00, 0x00,
- 0x00, 0x41, 0x7F, 0x40, 0x00, 0x00,
- 0x7C, 0x04, 0x78, 0x04, 0x78, 0x00,
- 0x7C, 0x08, 0x04, 0x04, 0x78, 0x00,
- 0x38, 0x44, 0x44, 0x44, 0x38, 0x00,
- 0xFC, 0x18, 0x24, 0x24, 0x18, 0x00,
- 0x18, 0x24, 0x24, 0x18, 0xFC, 0x00,
- 0x7C, 0x08, 0x04, 0x04, 0x08, 0x00,
- 0x48, 0x54, 0x54, 0x54, 0x24, 0x00,
- 0x04, 0x04, 0x3F, 0x44, 0x24, 0x00,
- 0x3C, 0x40, 0x40, 0x20, 0x7C, 0x00,
- 0x1C, 0x20, 0x40, 0x20, 0x1C, 0x00,
- 0x3C, 0x40, 0x30, 0x40, 0x3C, 0x00,
- 0x44, 0x28, 0x10, 0x28, 0x44, 0x00,
- 0x4C, 0x90, 0x90, 0x90, 0x7C, 0x00,
- 0x44, 0x64, 0x54, 0x4C, 0x44, 0x00,
- 0x00, 0x08, 0x36, 0x41, 0x00, 0x00,
- 0x00, 0x00, 0x77, 0x00, 0x00, 0x00,
- 0x00, 0x41, 0x36, 0x08, 0x00, 0x00,
- 0x02, 0x01, 0x02, 0x04, 0x02, 0x00,
- 0x3C, 0x26, 0x23, 0x26, 0x3C, 0x00,
-# endif
-
-// top Logo section
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-
-// First icon section
- 0xE0, 0xF0, 0xF0, 0xF0, 0xE0, 0xEC,
- 0xEE, 0xF7, 0xF3, 0x70, 0x20, 0x00,
- 0x7C, 0x7C, 0x7C, 0x7E, 0x00, 0x7E,
- 0x7E, 0x7E, 0x7F, 0x7F, 0x7F, 0x00,
- 0x00, 0x80, 0xC0, 0xE0, 0x7E, 0x5B,
- 0x4F, 0x5B, 0xFE, 0xC0, 0x00, 0x00,
- 0xC0, 0x00, 0xDC, 0xD7, 0xDE, 0xDE,
- 0xDE, 0xD7, 0xDC, 0x00, 0xC0, 0x00,
- 0x3E, 0x4A, 0x4F, 0x4A, 0x3E, 0x00,
- 0x18, 0x3C, 0x7C, 0x3A, 0x7D, 0x24,
- 0x14, 0x36, 0x00, 0x36, 0x77, 0x77,
-
-// middle logo section
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-
-// second icon section
- 0x0F, 0x1F, 0x3F, 0x7F, 0x7F, 0x7F,
- 0x7F, 0x7F, 0x3F, 0x1E, 0x0C, 0x00,
- 0x1F, 0x1F, 0x1F, 0x3F, 0x00, 0x3F,
- 0x3F, 0x3F, 0x7F, 0x7F, 0x7F, 0x00,
- 0x30, 0x7B, 0x7F, 0x78, 0x30, 0x20,
- 0x20, 0x30, 0x78, 0x7F, 0x3B, 0x00,
- 0x03, 0x00, 0x0F, 0x7F, 0x0F, 0x0F,
- 0x0F, 0x7F, 0x0F, 0x00, 0x03, 0x00,
- 0x00, 0x44, 0x28, 0xFF, 0x5A, 0x24,
- 0xF0, 0xFE, 0xF1, 0x91, 0xF6, 0xF0,
- 0xF0, 0xFC, 0xF2, 0x92, 0xFC, 0xF0,
-
-// bottom logo section
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-
-// third icon section
- 0x1F, 0x05, 0x00, 0x02, 0x1F, 0x00,
- 0x1F, 0x05, 0x00, 0x1D, 0x17, 0x00,
- 0x1F, 0x05, 0x00, 0x15, 0x1F, 0x00,
- 0x1F, 0x05, 0x00, 0x07, 0x1C, 0x00,
- 0x1F, 0x05, 0x00, 0x17, 0x1D, 0x00,
- 0x1F, 0x05, 0x00, 0x1F, 0x1D, 0x00,
- 0x1F, 0x05, 0x00, 0x01, 0x1F, 0x00,
- 0x1F, 0x05, 0x00, 0x1F, 0x1F, 0x00,
- 0x1F, 0x05, 0x00, 0x07, 0x1F, 0x00,
- 0x1F, 0x05, 0x00, 0x70, 0x77, 0x00,
- 0x1F, 0x05, 0x00, 0x00, 0x77, 0x00,
-
-// fourth icon section
- 0x00, 0x1C, 0x1C, 0x3E, 0x7F, 0x7F,
- 0x00, 0x14, 0x08, 0x14, 0x00, 0x00,
- 0x00, 0x1C, 0x1C, 0x3E, 0x7F, 0x7F,
- 0x00, 0x22, 0x1C, 0x41, 0x3E, 0x00,
- 0x00, 0x00, 0x00, 0x30, 0x18, 0x0C,
- 0x06, 0x0C, 0x18, 0x30, 0x00, 0x00,
- 0x00, 0x00, 0x06, 0x06, 0x06, 0x0C,
- 0x18, 0x30, 0x66, 0x66, 0x66, 0x00,
- 0x00, 0x00, 0x00, 0x08, 0x0C, 0x7E,
- 0x7F, 0x7E, 0x0C, 0x08, 0x00, 0x00,
- 0x00, 0x00, 0x77, 0x77, 0x77, 0x00,
- 0x77, 0x77, 0x77, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0xE7, 0xA5, 0xFF, 0x24,
- 0x24, 0xFF, 0xA5, 0xE7, 0x00, 0x00,
- 0x00, 0x00, 0x1C, 0x22, 0xC9, 0xD1,
- 0xC9, 0x22, 0x1C, 0x00, 0x00, 0x00,
- 0x00, 0x10, 0x02, 0x38, 0xFC, 0xED,
- 0xFC, 0x38, 0x02, 0x10, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x3E, 0x4A, 0x4F,
- 0x4A, 0x3E, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x40, 0x60, 0x6A, 0x64,
- 0x6A, 0x60, 0x40, 0x00, 0x00, 0x00,
- 0x00, 0x04, 0x42, 0x69, 0x65, 0x65,
- 0x65, 0x69, 0x42, 0x04, 0x00, 0x00,
- 0x06, 0x0F, 0x09, 0x0F, 0x06, 0x00,
- 0x00, 0x00, 0x1C, 0x14, 0x1C, 0x08,
- 0x18, 0x08, 0x18, 0x00, 0x00, 0x00,
- 0x00, 0x70, 0xC8, 0xEE, 0xF9, 0x70,
- 0x1F, 0x05, 0x00, 0x10, 0x77, 0x40,
- 0x00, 0x06, 0x09, 0x59, 0x01, 0x02,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- };
-// clang-format on
diff --git a/users/drashna/oled/oled_assets.h b/users/drashna/oled/oled_assets.h
deleted file mode 100644
index 36dfc7762c..0000000000
--- a/users/drashna/oled/oled_assets.h
+++ /dev/null
@@ -1,207 +0,0 @@
-// Copyright 2023 Christopher Courtney, aka Drashna Jael're (@drashna) <drashna@live.com>
-// SPDX-License-Identifier: GPL-2.0-or-later
-
-#pragma once
-
-// clang-format off
-
-static const char PROGMEM code_to_name[256] = {
-// 0 1 2 3 4 5 6 7 8 9 A B c D E F
- ' ', ' ', ' ', ' ', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', // 0x
- 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', '1', '2', // 1x
- '3', '4', '5', '6', '7', '8', '9', '0', 20, 19, 27, 26, 22, '-', '=', '[', // 2x
- ']','\\', '#', ';','\'', '`', ',', '.', '/', 128,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA, // 3x
- 0xDB,0xDC,0xDD,0xDE,0XDF,0xFB, 'P', 'S', 19, ' ', 17, 30, 16, 16, 31, 26, // 4x
- 27, 25, 24, 'N', '/', '*', '-', '+', 23, '1', '2', '3', '4', '5', '6', '7', // 5x
- '8', '9', '0', '.','\\', 'A', 0, '=', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', // 6x
- ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', // 7x
- ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', // 8x
- ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', // 9x
- ' ', ' ', ' ', ' ', ' ', 0, ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', // Ax
- ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', // Bx
- ' ',0x9E,0x9E, ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ',0x9D,0x9D,0x9D,0x9D, // Cx
- 0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D,0x9D, // Dx
- 'C', 'S', 'A', 'G', 'C', 'S', 'A', 'G', ' ', ' ', ' ', ' ', ' ', 24, 26, 24, // Ex
- 25, ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', 24, 25, 27, 26, ' ', ' ', ' ' // Fx
-};
-
-static const char PROGMEM gmk_bad_logo[384] = {
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xC0, 0xE0, 0xF0, 0xF0, 0x70, 0x38, 0x38, 0x38, 0x78, 0x70, 0xF0, 0xE0, 0xE0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xF0, 0xF8, 0xF8, 0xF8, 0xF8, 0x00, 0x00, 0x00, 0x80, 0xE0, 0xF8, 0xF8, 0xF8, 0xF8, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xF8, 0xF8, 0xF8, 0x38, 0x00, 0x80, 0xE0, 0xF0, 0xF8, 0x78, 0x38, 0x08, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xF8, 0xF8, 0xF8, 0x38, 0x38, 0x38, 0xF8, 0xF0, 0xF0, 0xE0, 0x00, 0x00, 0x00, 0x00, 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, 0xFC, 0xFC, 0xFC, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x3C, 0xFF, 0xFF, 0xFF, 0xC1, 0x80, 0x00, 0x00, 0x38, 0x38, 0xB8, 0xB8, 0xF9, 0xF9, 0xF8, 0x38, 0x00, 0x00, 0x00, 0x00, 0xC0, 0xF8, 0xFF, 0xFF, 0x1F, 0x01, 0x3F, 0xFF, 0xFF, 0xF0, 0xFE, 0x7F, 0x0F, 0x03, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x80, 0xFF, 0xFF, 0xFF, 0x3F, 0x1E, 0x7F, 0xFF, 0xFF, 0xF3, 0xC1, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xFF, 0xFF, 0xFF, 0x3F, 0x1C, 0x1C, 0x9C, 0xFF, 0xFF, 0xF3, 0xE1, 0x00, 0x00, 0x00, 0x00, 0xF0, 0xFC, 0xFE, 0xFF, 0x0F, 0x07, 0x07, 0x8E, 0xFF, 0xFF, 0xFF, 0x3F, 0x00, 0x00, 0x00, 0x00, 0xF0, 0xFC, 0xFE, 0xFF, 0x8F, 0x07, 0x07, 0x8E, 0xFF, 0xFF, 0xFF, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x80, 0xC0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x03, 0x03, 0x07, 0x07, 0x07, 0x07, 0x03, 0x03, 0x03, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x07, 0x07, 0x07, 0x01, 0x00, 0x00, 0x00, 0x07, 0x07, 0x07, 0x01, 0x00, 0x00, 0x00, 0x07, 0x07, 0x07, 0x07, 0x00, 0x00, 0x00, 0x00, 0x07, 0x07, 0x07, 0x07, 0x00, 0x00, 0x00, 0x00, 0x03, 0x07, 0x07, 0x07, 0x06, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x03, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x07, 0x07, 0x07, 0x07, 0x03, 0x07, 0x07, 0x07, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x07, 0x07, 0x07, 0x07, 0x03, 0x07, 0x07, 0x07, 0x07, 0x00, 0x00, 0x00, 0x00, 0x01, 0x07, 0x07, 0x07, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00
-};
-
-static const char PROGMEM hue_manitee_logo[384] = {
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xC0, 0xC0, 0x90, 0x70, 0xE8, 0xA8, 0xE4, 0xC4, 0xC4, 0xA0, 0xE4, 0xB0, 0xDC, 0xE4, 0xFC, 0xFC, 0xFC, 0xFC, 0x3C, 0x3C, 0xFC, 0xF8, 0xF0, 0xF0, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF8, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0xF6, 0xF7, 0xEF, 0xFF, 0x87, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0xFF, 0xFF, 0xFF, 0xFF, 0x07, 0x1F, 0x1F, 0x19, 0x15, 0xF7, 0x16, 0x1A, 0x1B, 0x16, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x0C, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0xC0, 0xC0, 0x00, 0x00, 0x03, 0x03, 0xFF, 0xFF, 0x03, 0x03, 0x00, 0x00, 0xC0, 0xC0, 0x00, 0x00, 0x00, 0xFC, 0xFC, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0xFC, 0xFC, 0x00, 0x00, 0x00, 0xFC, 0xFC, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0xC0, 0xC0, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x30, 0x30, 0xCC, 0xCC, 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0x03, 0x07, 0x07, 0x07, 0x07, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x07, 0x07, 0x03, 0x00, 0x00, 0x02, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x03, 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
-};
-
-static const char PROGMEM corne_logo[384] = {
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0xE0, 0xF0, 0xF8, 0xF8, 0x18, 0x00, 0xC0, 0xF0, 0xFC, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x7E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xC0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xC0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x80, 0xC0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xC0, 0x80, 0x00, 0x00, 0x00, 0xE0, 0xE0, 0xC0, 0xC0, 0xE0, 0xE0, 0xE0, 0xE0, 0x00, 0x00, 0xE0, 0xE0, 0xC0, 0xC0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xC0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x80, 0xC0, 0xE0, 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,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF8, 0xFC, 0xFE, 0xFF, 0xE0, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x1F, 0x07, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x81, 0xC3, 0xC3, 0xC3, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x81, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x9D, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x9D, 0xDF, 0xDF, 0xDF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x0F, 0x1F, 0x3F, 0x3F, 0x3F, 0x3F, 0x1F, 0x1F, 0x3F, 0x3F, 0x7F, 0x7F, 0x7F, 0x3F, 0x3F, 0x1F, 0x3F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7C, 0x78, 0x78, 0x38, 0x1C, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x03, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x03, 0x01, 0x00, 0x00, 0x00, 0x07, 0x07, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x07, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x07, 0x07, 0x00, 0x00, 0x00, 0x01, 0x03, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x03, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
-};
-
-static const char PROGMEM loose_logo[384] = {
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0xE0, 0xF0, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0x00, 0xFC, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0x02, 0xF9, 0x01, 0x01, 0x05, 0x09, 0x11, 0x22, 0x06, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0x46, 0x46, 0x44, 0x44, 0x45, 0x44, 0x29, 0x28, 0x2A, 0x28, 0x11, 0x13, 0x05, 0x07, 0x05, 0x07, 0x05, 0x07, 0x05, 0x07, 0xE5, 0xE7, 0xE5, 0x07, 0x05, 0x07, 0x05, 0x07, 0x05, 0x07, 0x05, 0x07, 0x85, 0xC7, 0xE5, 0xE7, 0xE5, 0xE7, 0xE5, 0xE7, 0xE5, 0xC7, 0x85, 0x07, 0x85, 0xC7, 0xE5, 0xE7, 0xE5, 0xE7, 0xE5, 0xE7, 0xE5, 0xC7, 0x85, 0x07, 0x85, 0xC7, 0xE5, 0xE7, 0xE5, 0xE7, 0xE5, 0xE7, 0xE5, 0xE7, 0xE5, 0x07, 0xE5, 0xE7, 0xE5, 0xE7, 0xE5, 0xE7, 0xE5, 0xE7, 0xE5, 0xE7, 0xE5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xE3, 0xC1, 0xC1, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0x00, 0x00, 0x80, 0x00, 0x1C, 0x3E, 0x7F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x14, 0x14, 0x14, 0x14, 0x14, 0x08, 0x08, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x80, 0xBE, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x81, 0xBD, 0x81, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x8F, 0x9F, 0x9C, 0x9C, 0x9C, 0x9C, 0x9C, 0x9C, 0x9C, 0xFC, 0xF8, 0x00, 0xFF, 0xFF, 0xFF, 0x9C, 0x9C, 0x9C, 0x9C, 0x9C, 0x9C, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x07, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x00, 0x1F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x20, 0x47, 0x48, 0x50, 0x40, 0x41, 0x42, 0x24, 0x30, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x31, 0x31, 0x11, 0x51, 0x11, 0x11, 0x4A, 0x0A, 0x2A, 0x0A, 0x44, 0x64, 0x50, 0x70, 0x50, 0x70, 0x50, 0x70, 0x50, 0x70, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, 0x53, 0x70, 0x50, 0x71, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, 0x53, 0x71, 0x50, 0x70, 0x50, 0x71, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, 0x53, 0x71, 0x50, 0x70, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, 0x51, 0x70, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, 0x53, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
-};
-
-static const char PROGMEM skeeb_logo[384] = {
- 0xC0, 0x20, 0x10, 0x08, 0x04, 0x02, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x03, 0x07, 0x0F, 0x1F, 0x3F, 0x7F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x01, 0x01, 0xFF, 0xFF, 0x01, 0x01, 0xFF, 0xFF, 0x01, 0x01, 0xFF, 0xFF, 0x19, 0x19, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x01, 0x01, 0xFF, 0xFF, 0x81, 0x81, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x19, 0x19, 0xFF, 0xFF, 0xF9, 0xF9, 0xF9, 0xF9, 0x01, 0x01, 0xF9, 0xF9, 0xF9, 0xF9, 0xFF, 0xFF, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0xF9, 0xF9, 0xFF, 0xFF, 0x19, 0x19, 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x67, 0x67, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x7F, 0x3F, 0x1F, 0x0F, 0x07, 0x03, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0xC0, 0x00,
- 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x07, 0x0F, 0x0F, 0x0F, 0x0F, 0x08, 0x08, 0x0F, 0x0F, 0x0E, 0x0E, 0x0F, 0x0F, 0x08, 0x08, 0x0F, 0x0F, 0x08, 0x08, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x08, 0x08, 0x0F, 0x0F, 0x09, 0x09, 0x09, 0x09, 0xF9, 0xF9, 0x09, 0x09, 0x08, 0x08, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x08, 0x08, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x0F, 0x0F, 0x08, 0x08, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x08, 0x08, 0x0F, 0x0F, 0x0F, 0x0F, 0x07, 0x03, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00,
- 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0xFF, 0x08, 0x08, 0x0F, 0x0F, 0x08, 0x08, 0x03, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x40, 0x20, 0x10, 0x08, 0x04, 0x03, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x80, 0xC0, 0xE0, 0xF0, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF0, 0xE0, 0xC0, 0x80, 0x01, 0x02, 0xFC, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0x00, 0x00
-};
-
-static const char PROGMEM qmk_logo[384] = {
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x40, 0x40, 0xF0, 0xF8, 0xF8, 0xFF, 0x38, 0xFF, 0xF8, 0xF8, 0x3F, 0xF8, 0xF8, 0xFF, 0x38, 0xFF, 0xF8, 0xF8, 0xF0, 0x40, 0x40, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xC0, 0xC0, 0xC0, 0x80, 0x00, 0x00, 0xC0, 0xC0, 0x80, 0x00, 0x00, 0x00, 0x80, 0xC0, 0xC0, 0x00, 0xC0, 0xC0, 0x00, 0x00, 0x80, 0xC0, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 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, 0x49, 0x49, 0x49, 0xFF, 0xFF, 0xFF, 0xFF, 0xE0, 0xDF, 0xBF, 0xBF, 0x00, 0xBF, 0xBF, 0xDF, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0x49, 0x49, 0x49, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1F, 0x3F, 0x60, 0x60, 0xE0, 0xBF, 0x1F, 0x00, 0x7F, 0x7F, 0x07, 0x1E, 0x38, 0x1E, 0x07, 0x7F, 0x7F, 0x00, 0x7F, 0x7F, 0x0E, 0x1F, 0x3B, 0x71, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7F, 0x7F, 0x0C, 0x0C, 0x0C, 0x00, 0x7E, 0x7E, 0x00, 0x7F, 0x7E, 0x03, 0x03, 0x00, 0x7F, 0x7E, 0x03, 0x03, 0x7E, 0x7E, 0x03, 0x03, 0x7F, 0x7E, 0x00, 0x0F, 0x3E, 0x70, 0x3C, 0x06, 0x3C, 0x70, 0x3E, 0x0F, 0x00, 0x32, 0x7B, 0x49, 0x49, 0x3F, 0x7E, 0x00, 0x7F, 0x7E, 0x03, 0x03, 0x00, 0x1E, 0x3F, 0x69, 0x69, 0x6F, 0x26, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x07, 0x0F, 0x0F, 0x7F, 0x0F, 0x7F, 0x0F, 0x0F, 0x7E, 0x0F, 0x0F, 0x7F, 0x0F, 0x7F, 0x0F, 0x0F, 0x07, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
-};
-
-static const char PROGMEM qmk_large_logo[1024] = {
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3e, 0x3f, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x83, 0x83, 0x83, 0x83, 0x83, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xfe, 0xfe, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xfe, 0xfe, 0xfe, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x83, 0x83, 0x83, 0x83, 0x83, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x81, 0x83, 0x83, 0x83, 0x83, 0x83, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x83, 0x83, 0x83, 0x83, 0x83, 0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x07, 0x1f, 0x3f, 0x7f, 0x7e, 0xf8, 0xf0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xff, 0xff, 0xff, 0xff, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xf0, 0xf8, 0x7e, 0x7f, 0x3f, 0x1f, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0xff, 0xff, 0xff, 0xff, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7c, 0xfc, 0x7c, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x7c, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
- };
-
-static const char PROGMEM header_image[128] = { 0x00, 0xC0, 0x20, 0x10, 0x08, 0x04, 0x02, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x03, 0x07, 0x0F, 0x1F, 0x3F, 0x7F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x7F, 0x3F, 0x1F, 0x0F, 0x07, 0x03, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0xC0 };
-static const char PROGMEM row_2_image[128] = { 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x07, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x07, 0x03, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF };
-
-static const char PROGMEM display_border[3] = {0x0, 0xFF, 0x0};
-
-static const char PROGMEM footer_image[128] = { 0x00, 0x03, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0xC0, 0xE0, 0xF0, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF0, 0xE0, 0xC0, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x40, 0x20, 0x10, 0x08, 0x04, 0x03 };
-
-static const char PROGMEM mouse_logo[3][2][16] = {
- { // mouse icon
- { 0x00, 0x00, 0x00, 0xFC, 0x02, 0x02, 0x02, 0x3A, 0x02, 0x02, 0x02, 0xFC, 0x00, 0x00, 0x00, 0x00 },
- { 0x00, 0x00, 0x3F, 0x60, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x60, 0x3F, 0x00, 0x00, 0x00 }
- },
- { // crosshair icon
- {0x80, 0xF0, 0x88, 0xE4, 0x92, 0x8A, 0xCA, 0x7F, 0xCA, 0x8A, 0x92, 0xE4, 0x88, 0xF0, 0x80, 0x00 },
- {0x00, 0x07, 0x08, 0x13, 0x24, 0x28, 0x29, 0x7F, 0x29, 0x28, 0x24, 0x13, 0x08, 0x07, 0x00, 0x00 }
- },
- { // dragscroll icon
- {0x00, 0x00, 0x70, 0x88, 0x9C, 0x02, 0x0F, 0x01, 0x0F, 0x02, 0x8C, 0x44, 0x38, 0x00, 0x00, 0x00},
- {0x00, 0x00, 0x02, 0x06, 0x0F, 0x1C, 0x3C, 0x7C, 0x3C, 0x1C, 0x0F, 0x06, 0x02, 0x00, 0x00, 0x00}
- }
-};
-
-
-// Images credit j-inc(/James Incandenza) and pixelbenny.
-// Credit to obosob for initial animation approach.
-// heavily modified by drashna because he's a glutton for punishment
-
-#define OLED_ANIM_SIZE 36
-#define OLED_ANIM_ROWS 4
-#define OLED_ANIM_MAX_FRAMES 3
-
-static const char PROGMEM animation[4][OLED_ANIM_MAX_FRAMES][OLED_ANIM_ROWS][OLED_ANIM_SIZE] = {
- { // sleep frames
- {
- { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x08, 0xa8, 0x48, 0xa8, 0x18, 0x08, 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, 0x00, 0x00, 0x02, 0x03, 0x02, 0x02, 0x02, 0x02, 0x02, 0x00, 0x00, 0x80, 0x44, 0x84, 0x06, 0x05, 0x04, 0x80, 0x40, 0x20, 0x10, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
- { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x20, 0x18, 0x04, 0x04, 0x02, 0x7a, 0x86, 0x01, 0x80, 0x80, 0x01, 0x03, 0x05, 0x07, 0x01, 0x00, 0x00, 0x80, 0x83, 0x45, 0xfa, 0x3c, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
- { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x08, 0x10, 0x10, 0x10, 0x10, 0x10, 0x33, 0x24, 0x28, 0x28, 0x29, 0x29, 0x29, 0x3a, 0x18, 0x1c, 0x39, 0x24, 0x24, 0x3a, 0x2d, 0x26, 0x31, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00 }
- },
- {
- { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
- { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x22, 0x22, 0x3a, 0x2a, 0x26, 0x22, 0x80, 0xc0, 0x80, 0x00, 0x24, 0x34, 0x2c, 0xe4, 0x60, 0x10, 0x70, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
- { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x38, 0x04, 0x02, 0x02, 0x01, 0x79, 0x87, 0x01, 0x80, 0x81, 0x83, 0x05, 0x05, 0x03, 0x01, 0x00, 0x00, 0x80, 0x43, 0x05, 0xfa, 0x3c, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
- { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x08, 0x10, 0x10, 0x10, 0x10, 0x10, 0x33, 0x24, 0x28, 0x28, 0x28, 0x29, 0x29, 0x3a, 0x18, 0x1c, 0x39, 0x24, 0x24, 0x3a, 0x2d, 0x26, 0x31, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00 }
- }
- },
- { // wake frames
- {
- { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x30, 0x08, 0x10, 0x60, 0x80, 0x00, 0x80, 0x60, 0x10, 0x08, 0x30, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
- { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0x80, 0x40, 0x40, 0x5c, 0x00, 0x01, 0x41, 0x01, 0x00, 0x5c, 0x40, 0x40, 0x80, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
- { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x40, 0x40, 0x80, 0xe1, 0x12, 0x0a, 0x06, 0x00, 0x80, 0x00, 0x06, 0x0a, 0x12, 0xe1, 0x80, 0x40, 0x40, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
- { 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x1f, 0x14, 0x14, 0x10, 0x10, 0x11, 0x1f, 0x10, 0x10, 0x18, 0x0f, 0x18, 0x10, 0x10, 0x1f, 0x11, 0x10, 0x10, 0x14, 0x14, 0x1f, 0x1c, 0x14, 0x14, 0x14, 0x08, 0x00, 0x00, 0x00, 0x00 }
- },
- {
- { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x30, 0x08, 0x10, 0x60, 0x80, 0x00, 0x80, 0x60, 0x10, 0x08, 0x30, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
- { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0x90, 0x12, 0x0a, 0x02, 0xf4, 0x09, 0x0d, 0xf1, 0x04, 0x02, 0x0a, 0x12, 0x90, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
- { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x40, 0x40, 0x80, 0xe1, 0x12, 0x0a, 0x06, 0x01, 0x81, 0x00, 0x06, 0x0a, 0x12, 0xe1, 0x80, 0x40, 0x40, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
- { 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x1f, 0x14, 0x14, 0x10, 0x10, 0x11, 0x1f, 0x10, 0x10, 0x18, 0x0f, 0x18, 0x10, 0x10, 0x1f, 0x11, 0x10, 0x10, 0x14, 0x14, 0x1f, 0x1c, 0x14, 0x14, 0x14, 0x08, 0x00, 0x00, 0x00, 0x00 }
- }
- },
- { // kaki frames
- {
- { 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x40, 0x40, 0x80, 0x80, 0x80, 0x00, 0xfc, 0x84, 0x08, 0x08, 0x10, 0x20, 0x40, 0x40, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
- { 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x1e, 0x60, 0x80, 0x00, 0x00, 0x91, 0xa1, 0x80, 0x00, 0x00, 0x22, 0x84, 0x40, 0x50, 0x48, 0xc1, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
- { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x40, 0x41, 0x82, 0xe2, 0x12, 0x0a, 0x06, 0x00, 0x80, 0x88, 0x4f, 0x02, 0x22, 0xe2, 0x9f, 0x40, 0x40, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
- { 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x1f, 0x14, 0x14, 0x10, 0x10, 0x11, 0x1f, 0x10, 0x10, 0x18, 0x0f, 0x18, 0x14, 0x10, 0x10, 0x10, 0x10, 0x10, 0x14, 0x14, 0x1f, 0x1a, 0x0a, 0x0a, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00 }
- },
- {
- { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x10, 0x20, 0x20, 0x40, 0x40, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
- { 0x00, 0x00, 0x06, 0x1a, 0x22, 0xc2, 0x04, 0x04, 0x04, 0x07, 0x00, 0xc0, 0x20, 0x10, 0x80, 0x80, 0x01, 0x01, 0x02, 0xfc, 0xfe, 0x02, 0x3c, 0x20, 0x40, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
- { 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x0d, 0x8d, 0x55, 0x50, 0x94, 0xf0, 0x10, 0x09, 0x08, 0x00, 0x80, 0x00, 0x06, 0x09, 0x1b, 0xee, 0x00, 0x00, 0x00, 0x00, 0x81, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
- { 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x1f, 0x14, 0x14, 0x10, 0x10, 0x11, 0x1f, 0x10, 0x10, 0x18, 0x0f, 0x18, 0x10, 0x10, 0x1f, 0x19, 0x18, 0x1c, 0x14, 0x16, 0x15, 0x14, 0x14, 0x14, 0x14, 0x08, 0x00, 0x00, 0x00, 0x00 }
- },
- {
- { 0x00, 0x00, 0x00, 0x00, 0x80, 0x40, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x10, 0x20, 0x40, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
- { 0x00, 0x00, 0x00, 0x00, 0x0f, 0xf0, 0x00, 0x01, 0x02, 0x04, 0x04, 0x03, 0x80, 0x40, 0x40, 0x20, 0x00, 0x01, 0x02, 0x8c, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
- { 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x0d, 0x8d, 0x55, 0x50, 0x94, 0xf0, 0x10, 0x0a, 0x0e, 0x1d, 0x95, 0x24, 0x24, 0x27, 0x13, 0xe1, 0x01, 0x01, 0x01, 0x01, 0x02, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
- { 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x1f, 0x14, 0x14, 0x10, 0x10, 0x11, 0x1f, 0x10, 0x10, 0x18, 0x0f, 0x18, 0x10, 0x10, 0x1f, 0x19, 0x18, 0x1c, 0x14, 0x14, 0x17, 0x14, 0x14, 0x14, 0x14, 0x08, 0x00, 0x00, 0x00, 0x00 }
- }
- },
- { // rtogi frames
- {
- { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x20, 0x10, 0x10, 0x08, 0x04, 0x02, 0x01, 0x0f, 0x90, 0x10, 0x20, 0xf0, 0xf8, 0xf8, 0x00, 0x00, 0x00, 0x00 },
- { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x40, 0x20, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x48, 0x47, 0x88, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x88, 0xc7, 0xc4, 0x62, 0x23, 0x11, 0x3f, 0x00, 0x00, 0x00, 0x00 },
- { 0x80, 0x40, 0x20, 0x10, 0x88, 0xcc, 0x43, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0xc0, 0x80, 0x80, 0xc0, 0xe1, 0xfe, 0xb8, 0x88, 0x0c, 0x04, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
- { 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x06, 0x04, 0x04, 0x04, 0x04, 0x05, 0x04, 0x04, 0x04, 0x07, 0x07, 0x07, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0x20, 0x10, 0x10, 0x08, 0x04, 0x02, 0x01, 0x1f, 0xa0, 0x20, 0x40, 0x80, 0x00, 0xf0, 0x00, 0x00, 0x00, 0x00 },
- { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x40, 0x20, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x48, 0x47, 0x88, 0x00, 0x00, 0x00, 0x00, 0x24, 0x24, 0x28, 0x6b, 0x40, 0xa0, 0x99, 0x86, 0xff, 0x00, 0x00, 0x00, 0x00 },
- { 0x0f, 0x11, 0x22, 0x44, 0x48, 0x4c, 0x43, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0xc0, 0x80, 0x80, 0xc0, 0xe1, 0xfe, 0xb8, 0x88, 0x0c, 0x04, 0x06, 0x06, 0x06, 0x0e, 0x0e, 0x06, 0x01, 0x00, 0x00, 0x00, 0x00 },
- { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x06, 0x04, 0x04, 0x04, 0x04, 0x05, 0x04, 0x04, 0x04, 0x07, 0x07, 0x07, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }
- }
- }
-};
-
-static const char PROGMEM tri_layer_image[][3][24] = {
- { // base
- { 0x00, 0x00, 0x00, 0x80, 0x80, 0x40, 0x40, 0x20, 0x20, 0x10, 0x10, 0x08, 0x08, 0x10, 0x10, 0x20, 0x20, 0x40, 0x40, 0x80, 0x80, 0x00, 0x00, 0x00 },
- { 0x00, 0x00, 0x00, 0x88, 0x88, 0x5D, 0x5D, 0x3E, 0x3E, 0x7C, 0x7C, 0xF8, 0xF8, 0x7C, 0x7C, 0x3E, 0x3E, 0x5D, 0x5D, 0x88, 0x88, 0x00, 0x00, 0x00 },
- { 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x02, 0x02, 0x04, 0x04, 0x08, 0x08, 0x04, 0x04, 0x02, 0x02, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00 }
- },
- { // raise
- { 0x00, 0x00, 0x00, 0x80, 0x80, 0xC0, 0xC0, 0xE0, 0xE0, 0xF0, 0xF0, 0xF8, 0xF8, 0xF0, 0xF0, 0xE0, 0xE0, 0xC0, 0xC0, 0x80, 0x80, 0x00, 0x00, 0x00 },
- { 0x00, 0x00, 0x00, 0x88, 0x88, 0x55, 0x55, 0x23, 0x23, 0x47, 0x47, 0x8F, 0x8F, 0x47, 0x47, 0x23, 0x23, 0x55, 0x55, 0x88, 0x88, 0x00, 0x00, 0x00 },
- { 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x02, 0x02, 0x04, 0x04, 0x08, 0x08, 0x04, 0x04, 0x02, 0x02, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00 }
- },
- { // lower
- { 0x00, 0x00, 0x00, 0x80, 0x80, 0x40, 0x40, 0x20, 0x20, 0x10, 0x10, 0x08, 0x08, 0x10, 0x10, 0x20, 0x20, 0x40, 0x40, 0x80, 0x80, 0x00, 0x00, 0x00 },
- { 0x00, 0x00, 0x00, 0x88, 0x88, 0xD5, 0xD5, 0xE2, 0xE2, 0xC4, 0xC4, 0x88, 0x88, 0xC4, 0xC4, 0xE2, 0xE2, 0xD5, 0xD5, 0x88, 0x88, 0x00, 0x00, 0x00 },
- { 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x03, 0x03, 0x07, 0x07, 0x0F, 0x0F, 0x07, 0x07, 0x03, 0x03, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00 }
- },
- { // adjust
- { 0x00, 0x00, 0x00, 0x80, 0x80, 0x40, 0xC0, 0x60, 0xA0, 0x50, 0xB0, 0x58, 0xA8, 0x50, 0xB0, 0x60, 0xA0, 0x40, 0xC0, 0x80, 0x80, 0x00, 0x00, 0x00 },
- { 0x00, 0x00, 0x00, 0x88, 0x88, 0x5D, 0xD5, 0x6B, 0xB6, 0x6D, 0xD6, 0xAD, 0xDA, 0x6D, 0xD6, 0x6B, 0xB6, 0x5D, 0xD5, 0x88, 0x88, 0x00, 0x00, 0x00 },
- { 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x03, 0x02, 0x05, 0x06, 0x0D, 0x0A, 0x05, 0x06, 0x03, 0x02, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00 }
- },
- { // blank
- { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
- { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
- { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
- },
- { // better gamepad
- { 0x00, 0x00, 0x00, 0xC0, 0xE0, 0xE0, 0x70, 0xF0, 0xF0, 0xF0, 0xF0, 0x90, 0x90, 0xF0, 0xF0, 0xF0, 0xF0, 0x70, 0xE0, 0xE0, 0xC0, 0x00, 0x00, 0x00 },
- { 0x80, 0xF8, 0xFF, 0xFF, 0xFF, 0xFE, 0xFC, 0xE6, 0xC3, 0xC3, 0xE6, 0xFF, 0xFF, 0xFE, 0xF7, 0xE3, 0xF6, 0xFD, 0xFE, 0xFF, 0xFF, 0xFF, 0xF8, 0x80 },
- { 0x07, 0x0F, 0x0F, 0x0F, 0x07, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x07, 0x0F, 0x0F, 0x0F, 0x07 }
- },
- { // mouse
- { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x20, 0x20, 0x20, 0xA0, 0x20, 0x20, 0x20, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
- { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x0F, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x0F, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
- { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x06, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x06, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }
- }
-};
diff --git a/users/drashna/oled/oled_config.h b/users/drashna/oled/oled_config.h
deleted file mode 100644
index 427764c4a7..0000000000
--- a/users/drashna/oled/oled_config.h
+++ /dev/null
@@ -1,40 +0,0 @@
-// Copyright 2020 Christopher Courtney, aka Drashna Jael're (@drashna) <drashna@live.com>
-// SPDX-License-Identifier: GPL-2.0-or-later
-
-#pragma once
-
-#ifndef OLED_UPDATE_INTERVAL
-# ifdef SPLIT_KEYBOARD
-# define OLED_UPDATE_INTERVAL 60
-# elif defined(OLED_DISPLAY_128X128)
-# define OLED_UPDATE_INTERVAL 30
-# else
-# define OLED_UPDATE_INTERVAL 15
-# endif
-#endif
-#define OLED_DISABLE_TIMEOUT
-#ifdef OLED_FONT_H
-# undef OLED_FONT_H
-#endif
-#define OLED_FONT_H "oled/drashna_font.h"
-#define OLED_FONT_END 255
-// # define OLED_FONT_5X5
-// # define OLED_FONT_AZTECH
-// # define OLED_FONT_BMPLAIN
-// # define OLED_FONT_CRACKERS
-#define OLED_FONT_DEAD_MEAL
-// # define OLED_FONT_EIN
-// # define OLED_FONT_HISKYF21
-// # define OLED_FONT_SQUASH
-// # define OLED_FONT_ZXPIX
-// # define OLED_FONT_SUPER_DIGG
-
-// # define OLED_LOGO_BEBOP
-// # define OLED_LOGO_CORNE
-// # define OLED_LOGO_GMK_BAD
-// # define OLED_LOGO_GOTHAM
-// # define OLED_LOGO_HUE_MANITEE
-// # define OLED_LOGO_LOOSE
-#define OLED_LOGO_SCIFI
-// # define OLED_LOGO_SETS3N
-// # define OLED_LOGO_SKEEB
diff --git a/users/drashna/oled/oled_stuff.c b/users/drashna/oled/oled_stuff.c
deleted file mode 100644
index d232e90fb2..0000000000
--- a/users/drashna/oled/oled_stuff.c
+++ /dev/null
@@ -1,830 +0,0 @@
-/* Copyright 2020 Christopher Courtney, aka Drashna Jael're (@drashna) <drashna@live.com>
- * Copyright 2021 John Ezra - wpm graph
- *
- * 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 "drashna.h"
-#include <ctype.h>
-#include <string.h>
-#include <stdio.h>
-#include "lib/lib8tion/lib8tion.h"
-#ifdef UNICODE_COMMON_ENABLE
-# include "process_unicode_common.h"
-# include "keyrecords/unicode.h"
-#endif
-#ifdef AUDIO_CLICKY
-# include "process_clicky.h"
-#endif
-
-#ifndef OLED_BRIGHTNESS_STEP
-# define OLED_BRIGHTNESS_STEP 32
-#endif
-
-bool is_oled_enabled = true, is_oled_locked = false, is_oled_force_off = false;
-
-uint32_t oled_timer = 0;
-char oled_keylog_str[OLED_KEYLOGGER_LENGTH + 1] = {0};
-
-deferred_token kittoken;
-
-extern uint8_t oled_buffer[OLED_MATRIX_SIZE];
-extern OLED_BLOCK_TYPE oled_dirty;
-
-void oled_pan_section(bool left, uint16_t y_start, uint16_t y_end, uint16_t x_start, uint16_t x_end) {
- uint16_t i = 0;
- for (uint16_t y = y_start; y < y_end; y++) {
- if (left) {
- for (uint16_t x = x_start; x < x_end - 1; x++) {
- i = y * OLED_DISPLAY_WIDTH + x;
- oled_buffer[i] = oled_buffer[i + 1];
- oled_dirty |= ((OLED_BLOCK_TYPE)1 << (i / OLED_BLOCK_SIZE));
- }
- } else {
- for (uint16_t x = x_end - 1; x > 0; x--) {
- i = y * OLED_DISPLAY_WIDTH + x;
- oled_buffer[i] = oled_buffer[i - 1];
- oled_dirty |= ((OLED_BLOCK_TYPE)1 << (i / OLED_BLOCK_SIZE));
- }
- }
- }
-}
-
-/**
- * @brief parses pressed keycodes and saves to buffer
- *
- * @param keycode Keycode pressed from switch matrix
- * @param record keyrecord_t data structure
- */
-void add_keylog(uint16_t keycode, keyrecord_t *record) {
- if (IS_QK_MOD_TAP(keycode)) {
- if (record->tap.count) {
- keycode = keycode_config(QK_MOD_TAP_GET_TAP_KEYCODE(keycode));
- } else {
- keycode = keycode_config(0xE0 + biton(QK_MOD_TAP_GET_MODS(keycode) & 0xF) + biton(QK_MOD_TAP_GET_MODS(keycode) & 0x10));
- }
- } else if (IS_QK_LAYER_TAP(keycode) && record->tap.count) {
- keycode = keycode_config(QK_LAYER_TAP_GET_TAP_KEYCODE(keycode));
- } else if (IS_QK_MODS(keycode)) {
- keycode = keycode_config(QK_MODS_GET_BASIC_KEYCODE(keycode));
- } else if (IS_QK_ONE_SHOT_MOD(keycode)) {
- keycode = keycode_config(0xE0 + biton(QK_ONE_SHOT_MOD_GET_MODS(keycode) & 0xF) + biton(QK_ONE_SHOT_MOD_GET_MODS(keycode) & 0x10));
- } else if (IS_QK_BASIC(keycode)) {
- keycode = keycode_config(keycode);
- }
-
- if ((keycode == KC_BSPC) && mod_config(get_mods() | get_oneshot_mods()) & MOD_MASK_CTRL) {
- memset(oled_keylog_str, ' ', OLED_KEYLOGGER_LENGTH);
- oled_keylog_str[OLED_KEYLOGGER_LENGTH] = 0x00;
- return;
- }
-
- if (keycode > ARRAY_SIZE(code_to_name)) {
- return;
- }
-
- memmove(oled_keylog_str, oled_keylog_str + 1, OLED_KEYLOGGER_LENGTH - 1);
- oled_keylog_str[(OLED_KEYLOGGER_LENGTH - 1)] = pgm_read_byte(&code_to_name[keycode]);
-}
-
-/**
- * @brief Keycode handler for oled display.
- *
- * This adds pressed keys to buffer, but also resets the oled timer
- *
- * @param keycode Keycode from matrix
- * @param record keyrecord data struture
- * @return true
- * @return false
- */
-bool process_record_user_oled(uint16_t keycode, keyrecord_t *record) {
- if (record->event.pressed) {
- add_keylog(keycode, record);
- if (keycode == OLED_BRIGHTNESS_INC) {
- userspace_config.oled_brightness = qadd8(userspace_config.oled_brightness, OLED_BRIGHTNESS_STEP);
- oled_set_brightness(userspace_config.oled_brightness);
- eeconfig_update_user_config(&userspace_config.raw);
- } else if (keycode == OLED_BRIGHTNESS_DEC) {
- userspace_config.oled_brightness = qsub8(userspace_config.oled_brightness, OLED_BRIGHTNESS_STEP);
- oled_set_brightness(userspace_config.oled_brightness);
- eeconfig_update_user_config(&userspace_config.raw);
- } else if (keycode == OLED_LOCK) {
- is_oled_locked = !is_oled_locked;
- if (is_oled_locked) {
- oled_on();
- }
- }
- }
- return true;
-}
-
-/**
- * @brief Renders keylogger buffer to oled
- *
- */
-void render_keylogger_status(uint8_t col, uint8_t line) {
-#ifdef OLED_DISPLAY_VERBOSE
- oled_set_cursor(col, line);
-#endif
- oled_write_P(PSTR(OLED_RENDER_KEYLOGGER), false);
- oled_write(oled_keylog_str, false);
-#ifdef OLED_DISPLAY_VERBOSE
- oled_advance_page(true);
-#endif
-}
-
-/**
- * @brief Renders default layer state (aka layout) to oled
- *
- */
-void render_default_layer_state(uint8_t col, uint8_t line) {
-#ifdef OLED_DISPLAY_VERBOSE
- oled_set_cursor(col, line);
- oled_write_P(PSTR(OLED_RENDER_LAYOUT_NAME), false);
-
- static char layer_state_buffer[11] = {0};
- static layer_state_t old_state = 0;
-
- if (old_state != default_layer_state) {
- snprintf(layer_state_buffer, sizeof(layer_state_buffer), "%-10s", get_layer_name_string(default_layer_state, false));
- old_state = default_layer_state;
- }
- oled_write(layer_state_buffer, false);
- oled_advance_page(true);
-#else
- oled_write_P(PSTR(OLED_RENDER_LAYOUT_NAME), false);
- switch (get_highest_layer(default_layer_state)) {
- case _QWERTY:
- oled_write_P(PSTR(OLED_RENDER_LAYOUT_QWERTY), false);
- break;
- case _COLEMAK_DH:
- oled_write_P(PSTR(OLED_RENDER_LAYOUT_COLEMAK_DH), false);
- break;
- case _COLEMAK:
- oled_write_P(PSTR(OLED_RENDER_LAYOUT_COLEMAK), false);
- break;
- case _DVORAK:
- oled_write_P(PSTR(OLED_RENDER_LAYOUT_DVORAK), false);
- break;
- }
-#endif
-}
-
-/**
- * @brief Renders the active layers to the OLED
- *
- */
-void render_layer_state(uint8_t col, uint8_t line) {
-#ifdef OLED_DISPLAY_VERBOSE
- uint8_t layer_is[4] = {0, 4, 4, 4};
- if (layer_state_is(_ADJUST)) {
- layer_is[0] = 3;
- } else if (layer_state_is(_RAISE)) {
- layer_is[0] = 1;
- } else if (layer_state_is(_LOWER)) {
- layer_is[0] = 2;
- }
-
- if (layer_state_is(_MOUSE)) {
- layer_is[1] = 6;
- }
- if (layer_state_is(_GAMEPAD)) {
- layer_is[2] = 5;
- }
-
- oled_set_cursor(col, line);
- oled_write_raw_P(tri_layer_image[layer_is[0]][0], sizeof(tri_layer_image[0][0]));
- oled_set_cursor(col + 4, line);
- oled_write_raw_P(tri_layer_image[layer_is[1]][0], sizeof(tri_layer_image[0][0]));
- oled_set_cursor(col + 8, line);
- oled_write_raw_P(tri_layer_image[layer_is[2]][0], sizeof(tri_layer_image[0][0]));
- oled_set_cursor(col + 13, line);
- oled_write_P(PSTR("Diablo2"), layer_state_is(_DIABLOII));
- oled_advance_page(true);
-
- oled_set_cursor(col, line + 1);
- oled_write_raw_P(tri_layer_image[layer_is[0]][1], sizeof(tri_layer_image[0][0]));
- oled_set_cursor(col + 4, line + 1);
- oled_write_raw_P(tri_layer_image[layer_is[1]][1], sizeof(tri_layer_image[0][0]));
- oled_set_cursor(col + 8, line + 1);
- oled_write_raw_P(tri_layer_image[layer_is[2]][1], sizeof(tri_layer_image[0][0]));
- oled_set_cursor(col + 13, line + 1);
- oled_write_P(PSTR("Diablo3"), layer_state_is(_DIABLO));
- oled_advance_page(true);
-
- oled_set_cursor(col, line + 2);
- oled_write_raw_P(tri_layer_image[layer_is[0]][2], sizeof(tri_layer_image[0][0]));
- oled_set_cursor(col + 4, line + 2);
- oled_write_raw_P(tri_layer_image[layer_is[1]][2], sizeof(tri_layer_image[0][0]));
- oled_set_cursor(col + 8, line + 2);
- oled_write_raw_P(tri_layer_image[layer_is[2]][2], sizeof(tri_layer_image[0][0]));
- oled_set_cursor(col + 13, line + 2);
- oled_write_P(PSTR("Media"), layer_state_is(_MEDIA));
-#else
- oled_write_P(PSTR(OLED_RENDER_LAYER_NAME), false);
- oled_write_P(PSTR(OLED_RENDER_LAYER_LOWER), layer_state_is(_LOWER));
- oled_write_P(PSTR(OLED_RENDER_LAYER_RAISE), layer_state_is(_RAISE));
-#endif
- oled_advance_page(true);
-}
-
-/**
- * @brief Renders the current lock status to oled
- *
- * @param led_usb_state Current keyboard led state
- */
-void render_keylock_status(led_t led_usb_state, uint8_t col, uint8_t line) {
-#if defined(OLED_DISPLAY_VERBOSE)
- oled_set_cursor(col, line);
-#endif
-#ifdef CAPS_WORD_ENABLE
- led_usb_state.caps_lock |= is_caps_word_on();
-#endif
- oled_write_P(PSTR(OLED_RENDER_LOCK_NAME), false);
-#if !defined(OLED_DISPLAY_VERBOSE)
- oled_write_P(PSTR(" "), false);
-#endif
- oled_write_P(PSTR(OLED_RENDER_LOCK_NUML), led_usb_state.num_lock);
- oled_write_P(PSTR(" "), false);
- oled_write_P(PSTR(OLED_RENDER_LOCK_CAPS), led_usb_state.caps_lock);
-#if defined(OLED_DISPLAY_VERBOSE)
- oled_write_P(PSTR(" "), false);
- oled_write_P(PSTR(OLED_RENDER_LOCK_SCLK), led_usb_state.scroll_lock);
-#endif
-}
-
-/**
- * @brief Renders the matrix scan rate to the host system
- *
- */
-void render_matrix_scan_rate(uint8_t padding, uint8_t col, uint8_t line) {
-#ifdef DEBUG_MATRIX_SCAN_RATE
- oled_set_cursor(col, line);
- oled_write_P(PSTR("MS:"), false);
- if (padding) {
- for (uint8_t n = padding; n > 0; n--) {
- oled_write_P(PSTR(" "), false);
- }
- }
- oled_write(get_u16_str(get_matrix_scan_rate(), ' '), false);
-#endif
-}
-
-/**
- * @brief Renders the modifier state
- *
- * @param modifiers Modifiers to check against (real, weak, onesheot, etc;)
- */
-void render_mod_status(uint8_t modifiers, uint8_t col, uint8_t line) {
- static const char PROGMEM mod_status[5][3] = {{0xE8, 0xE9, 0}, {0xE4, 0xE5, 0}, {0xE6, 0xE7, 0}, {0xEA, 0xEB, 0}, {0xEC, 0xED, 0}};
-#if defined(OLED_DISPLAY_VERBOSE)
- oled_set_cursor(col, line);
-#endif
- bool is_caps = host_keyboard_led_state().caps_lock;
-#ifdef CAPS_WORD_ENABLE
- is_caps |= is_caps_word_on();
-#endif
- oled_write_P(PSTR(OLED_RENDER_MODS_NAME), false);
-#if defined(OLED_DISPLAY_VERBOSE)
- oled_write_P(mod_status[0], (modifiers & MOD_BIT(KC_LSFT)) || is_caps);
- oled_write_P(mod_status[!keymap_config.swap_lctl_lgui ? 3 : 4], (modifiers & MOD_BIT(KC_LGUI)));
- oled_write_P(mod_status[2], (modifiers & MOD_BIT(KC_LALT)));
- oled_write_P(mod_status[1], (modifiers & MOD_BIT(KC_LCTL)));
- oled_write_P(mod_status[1], (modifiers & MOD_BIT(KC_RCTL)));
- oled_write_P(mod_status[2], (modifiers & MOD_BIT(KC_RALT)));
- oled_write_P(mod_status[!keymap_config.swap_lctl_lgui ? 3 : 4], (modifiers & MOD_BIT(KC_RGUI)));
- oled_write_P(mod_status[0], (modifiers & MOD_BIT(KC_RSFT)) || is_caps);
-#else
- oled_write_P(mod_status[0], (modifiers & MOD_MASK_SHIFT) || is_caps);
- oled_write_P(mod_status[!keymap_config.swap_lctl_lgui ? 3 : 4], (modifiers & MOD_MASK_GUI));
- oled_write_P(PSTR(" "), false);
- oled_write_P(mod_status[2], (modifiers & MOD_MASK_ALT));
- oled_write_P(mod_status[1], (modifiers & MOD_MASK_CTRL));
-#endif
-}
-
-#ifdef SWAP_HANDS_ENABLE
-extern bool swap_hands;
-#endif
-
-void render_bootmagic_status(uint8_t col, uint8_t line) {
- /* Show Ctrl-Gui Swap options */
- static const char PROGMEM logo[][2][3] = {
- {{0x97, 0x98, 0}, {0xb7, 0xb8, 0}},
- {{0x95, 0x96, 0}, {0xb5, 0xb6, 0}},
- };
-
- bool is_bootmagic_on;
-#ifdef OLED_DISPLAY_VERBOSE
- oled_set_cursor(col, line);
- // oled_set_cursor(7, 3);
- is_bootmagic_on = !keymap_config.swap_lctl_lgui;
-#else
- is_bootmagic_on = keymap_config.swap_lctl_lgui;
-#endif
-
-#ifdef OLED_DISPLAY_VERBOSE
- if (keymap_config.swap_lctl_lgui)
-#else
- oled_write_P(PSTR(OLED_RENDER_BOOTMAGIC_NAME), false);
- oled_write_P(PSTR(" "), false);
-#endif
- {
- oled_write_P(logo[1][0], is_bootmagic_on);
-#ifdef OLED_DISPLAY_VERBOSE
- } else {
-#endif
- oled_write_P(logo[0][0], !is_bootmagic_on);
- }
-#ifndef OLED_DISPLAY_VERBOSE
- oled_write_P(PSTR(" "), false);
- oled_write_P(logo[1][1], is_bootmagic_on);
- oled_write_P(logo[0][1], !is_bootmagic_on);
-#endif
- oled_write_P(PSTR(" "), false);
- oled_write_P(PSTR(OLED_RENDER_BOOTMAGIC_NKRO), keymap_config.nkro);
- oled_write_P(PSTR(" "), false);
-#if defined(AUTOCORRECT_ENABLE)
- oled_write_P(PSTR("CRCT"), autocorrect_is_enabled());
- oled_write_P(PSTR(" "), false);
-#else
- oled_write_P(PSTR(OLED_RENDER_BOOTMAGIC_NOGUI), keymap_config.no_gui);
-#endif
-#ifdef OLED_DISPLAY_VERBOSE
- oled_set_cursor(col, line + 1);
- if (keymap_config.swap_lctl_lgui) {
- oled_write_P(logo[1][1], is_bootmagic_on);
- } else {
- oled_write_P(logo[0][1], !is_bootmagic_on);
- }
-#endif
- oled_write_P(PSTR(" "), false);
- oled_write_P(PSTR(OLED_RENDER_BOOTMAGIC_ONESHOT), is_oneshot_enabled());
-#ifdef SWAP_HANDS_ENABLE
- oled_write_P(PSTR(" "), false);
- oled_write_P(PSTR(OLED_RENDER_BOOTMAGIC_SWAP), swap_hands);
- oled_write_P(PSTR(" "), false);
-#endif
-}
-
-void render_user_status(uint8_t col, uint8_t line) {
-#ifdef AUDIO_ENABLE
- bool is_audio_on = false, l_is_clicky_on = false;
-# ifdef SPLIT_KEYBOARD
-
- is_audio_on = user_state.audio_enable;
-# ifdef AUDIO_CLICKY
- l_is_clicky_on = user_state.audio_clicky_enable;
-# endif
-# else
- is_audio_on = is_audio_on();
-# ifdef AUDIO_CLICKY
- l_is_clicky_on = is_clicky_on();
-# endif
-# endif
-#endif
-#if defined(OLED_DISPLAY_VERBOSE)
- oled_set_cursor(col, line);
-#endif
- oled_write_P(PSTR(OLED_RENDER_USER_NAME), false);
-#if !defined(OLED_DISPLAY_VERBOSE)
- oled_write_P(PSTR(" "), false);
-#endif
-#if defined(RGB_MATRIX_ENABLE)
- oled_write_P(PSTR(OLED_RENDER_USER_ANIM), userspace_config.rgb_matrix_idle_anim);
-# if !defined(OLED_DISPLAY_VERBOSE)
- oled_write_P(PSTR(" "), false);
-# endif
-#elif defined(POINTING_DEVICE_ENABLE) && defined(POINTING_DEVICE_AUTO_MOUSE_ENABLE)
- static const char PROGMEM mouse_lock[3] = {0xF2, 0xF3, 0};
- oled_write_P(mouse_lock, get_auto_mouse_toggle());
-#endif
-#ifdef AUDIO_ENABLE
- static const char PROGMEM audio_status[2][3] = {{0xE0, 0xE1, 0}, {0xE2, 0xE3, 0}};
- oled_write_P(audio_status[is_audio_on], false);
-
-# ifdef AUDIO_CLICKY
- static const char PROGMEM audio_clicky_status[2][3] = {{0xF4, 0xF5, 0}, {0xF6, 0xF7, 0}};
- oled_write_P(audio_clicky_status[l_is_clicky_on && is_audio_on], false);
-# if !defined(OLED_DISPLAY_VERBOSE)
- oled_write_P(PSTR(" "), false);
-# endif
-# endif
-#endif
-
- static const char PROGMEM rgb_layer_status[2][3] = {{0xEE, 0xEF, 0}, {0xF0, 0xF1, 0}};
- oled_write_P(rgb_layer_status[userspace_config.rgb_layer_change], false);
- static const char PROGMEM cat_mode[2][3] = {{0xF8, 0xF9, 0}, {0xF6, 0xF7, 0}};
- oled_write_P(cat_mode[0], get_keyboard_lock());
-#if defined(UNICODE_COMMON_ENABLE)
- static const char PROGMEM uc_mod_status[5][3] = {{0xEC, 0xED, 0}, {0x20, 0x20, 0}, {0x20, 0x20, 0}, {0x20, 0x20, 0}, {0xEA, 0xEB, 0}};
- oled_write_P(uc_mod_status[get_unicode_input_mode()], false);
-#endif
- if (userspace_config.nuke_switch) {
-#if !defined(OLED_DISPLAY_VERBOSE)
- oled_write_P(PSTR(" "), false);
-#endif
- static const char PROGMEM nukem_good[2] = {0xFA, 0};
- oled_write_P(nukem_good, false);
-#if !defined(OLED_DISPLAY_VERBOSE)
- oled_advance_page(true);
-#endif
- }
-#if defined(OLED_DISPLAY_VERBOSE)
- oled_advance_page(true);
-#endif
-}
-
-void render_rgb_hsv(uint8_t col, uint8_t line) {
- oled_set_cursor(col, line);
- oled_write_P(PSTR("HSV: "), false);
-#ifdef RGB_MATRIX_ENABLE
- oled_write(get_u8_str(rgb_matrix_get_hue(), ' '), false);
- oled_write_P(PSTR(", "), false);
- oled_write(get_u8_str(rgb_matrix_get_sat(), ' '), false);
- oled_write_P(PSTR(", "), false);
- oled_write(get_u8_str(rgb_matrix_get_val(), ' '), false);
-#elif RGBLIGHT_ENABLE
- if (is_rgblight_startup_running()) {
- oled_write_P(PSTR("Start Animation"), false);
- } else {
- oled_write(get_u8_str(rgblight_get_hue(), ' '), false);
- oled_write_P(PSTR(", "), false);
- oled_write(get_u8_str(rgblight_get_sat(), ' '), false);
- oled_write_P(PSTR(", "), false);
- oled_write(get_u8_str(rgblight_get_val(), ' '), false);
- }
-#endif
-}
-
-void render_rgb_mode(uint8_t col, uint8_t line) {
- oled_set_cursor(col, line);
- __attribute__((unused)) static uint8_t mode;
- bool need_update = false;
- static char buf[21] = {0};
-
-#ifdef RGB_MATRIX_ENABLE
- if (mode != rgb_matrix_get_mode()) {
- snprintf(buf, sizeof(buf), "%-20s", rgb_matrix_name(rgb_matrix_get_mode()));
- mode = rgb_matrix_get_mode();
- need_update = true;
- }
-#elif RGBLIGHT_ENABLE
- if (mode != rgblight_get_mode()) {
- snprintf(buf, sizeof(buf), "%-20s", rgblight_name(rgblight_get_mode()));
- mode = rgblight_get_mode();
- need_update = true;
- }
-#endif
- if (need_update) {
- for (uint8_t i = 1; i < sizeof(buf); ++i) {
- if (buf[i] == 0)
- break;
- else if (buf[i] == '_')
- buf[i] = ' ';
- else if (buf[i - 1] == ' ')
- buf[i] = toupper(buf[i]);
- else if (buf[i - 1] != ' ')
- buf[i] = tolower(buf[i]);
- }
- }
-
- oled_write(buf, false);
-}
-
-void render_wpm(uint8_t padding, uint8_t col, uint8_t line) {
-#ifdef WPM_ENABLE
- oled_set_cursor(col, line);
- oled_write_P(PSTR(OLED_RENDER_WPM_COUNTER), false);
- if (padding) {
- for (uint8_t n = padding; n > 0; n--) {
- oled_write_P(PSTR(" "), false);
- }
- }
- oled_write(get_u8_str(get_current_wpm(), ' '), false);
-#endif
-}
-
-//============= USER CONFIG PARAMS ===============
-// wpm graph originally designed by john-ezra
-
-// for 128x128:
-// max_lines_graph = 54;
-// vertical_offset = 64;
-// for 128x64:
-// max_lines_graph = 64;
-// vertical_offset = 0;
-
-void render_wpm_graph(uint8_t max_lines_graph, uint8_t vertical_offset) {
-#ifdef WPM_ENABLE
- static uint16_t timer = 0;
- static uint8_t x = OLED_DISPLAY_HEIGHT - 1;
- uint8_t currwpm = get_current_wpm();
- float max_wpm = OLED_WPM_GRAPH_MAX_WPM;
-
- if (timer_elapsed(timer) > OLED_WPM_GRAPH_REFRESH_INTERVAL) { // check if it's been long enough before refreshing graph
- x = (max_lines_graph - 1) - ((currwpm / max_wpm) * (max_lines_graph - 1)); // main calculation to plot graph line
- for (uint8_t i = 0; i <= OLED_WPM_GRAPH_GRAPH_LINE_THICKNESS - 1; i++) { // first draw actual value line
- oled_write_pixel(3, x + i + vertical_offset, true);
- }
-# ifdef OLED_WPM_GRAPH_VERTICAL_LINE
- static uint8_t vert_count = 0;
- if (vert_count == OLED_WPM_GRAPH_VERTCAL_LINE_INTERVAL) {
- vert_count = 0;
- while (x <= (max_lines_graph - 1)) {
- oled_write_pixel(3, x + vertical_offset, true);
- x++;
- }
- } else {
- for (uint8_t i = (max_lines_graph - 1); i > x; i--) {
- if (i % OLED_WPM_GRAPH_AREA_FILL_INTERVAL == 0) {
- oled_write_pixel(3, i + vertical_offset, true);
- }
- }
- vert_count++;
- }
-# else
- for (int i = (max_lines_graph - 1); i > x; i--) {
- if (i % OLED_WPM_GRAPH_AREA_FILL_INTERVAL == 0) {
- oled_write_pixel(3, i + vertical_offset, true);
- }
- }
-# endif
-# include <math.h>
- uint8_t y_start = ceil(vertical_offset / 8);
- uint8_t y_length = y_start + ceil(max_lines_graph / 8);
- oled_pan_section(false, y_start, y_length, 3, 125); // then move the entire graph one pixel to the right
- timer = timer_read(); // refresh the timer for the next iteration
- }
-#endif
-}
-
-#if defined(POINTING_DEVICE_ENABLE)
-void render_pointing_dpi_status(uint16_t cpi, uint8_t padding, uint8_t col, uint8_t line) {
- oled_set_cursor(col, line);
- oled_write_P(PSTR("CPI:"), false);
- if (padding) {
- for (uint8_t n = padding - 1; n > 0; n--) {
- oled_write_P(PSTR(" "), false);
- }
- }
-
- oled_write(get_u16_str(cpi, ' '), false);
-}
-#endif
-
-// WPM-responsive animation stuff here
-#define OLED_SLEEP_FRAMES 2
-#define OLED_SLEEP_SPEED 10 // below this wpm value your animation will idle
-
-#define OLED_WAKE_FRAMES 2 // uncomment if >1
-#define OLED_WAKE_SPEED OLED_SLEEP_SPEED // below this wpm value your animation will idle
-
-#define OLED_KAKI_FRAMES 3
-#define OLED_KAKI_SPEED 40 // above this wpm value typing animation to triggere
-
-#define OLED_RTOGI_FRAMES 2
-// #define OLED_LTOGI_FRAMES 2
-
-// #define ANIM_FRAME_DURATION 500 // how long each frame lasts in ms
-// #define SLEEP_TIMER 60000 // should sleep after this period of 0 wpm, needs fixing
-#if (OLED_SLEEP_FRAMES > OLED_ANIM_MAX_FRAMES) || (OLED_WAKE_FRAMES > OLED_ANIM_MAX_FRAMES) || (OLED_KAKI_FRAMES > OLED_ANIM_MAX_FRAMES) || (OLED_RTOGI_FRAMES > OLED_ANIM_MAX_FRAMES)
-# error frame size too large
-#endif
-
-static uint8_t animation_frame = 0;
-static uint8_t animation_type = 0;
-
-void render_kitty(uint8_t col, uint8_t line) {
- for (uint8_t i = 0; i < 4; i++) {
- oled_set_cursor(col, line + i);
- oled_write_raw_P(animation[animation_type][animation_frame][i], OLED_ANIM_SIZE);
- }
-}
-
-void render_unicode_mode(uint8_t col, uint8_t line) {
-#if defined(CUSTOM_UNICODE_ENABLE) && defined(UNICODE_COMMON_ENABLE)
- oled_set_cursor(col, line);
- oled_write_P(PSTR("Unicode:"), false);
- oled_write_P(unicode_mode_str[unicode_typing_mode], false);
-#endif
-}
-
-uint32_t kitty_animation_phases(uint32_t triger_time, void *cb_arg) {
- static uint32_t anim_frame_duration = 500;
-#if defined(POINTING_DEVICE_ENABLE) && defined(POINTING_DEVICE_AUTO_MOUSE_ENABLE)
- if (get_auto_mouse_toggle()) {
- animation_frame = (animation_frame + 1) % OLED_RTOGI_FRAMES;
- animation_type = 3;
- anim_frame_duration = 300;
- } else
-#endif
- {
-#ifdef WPM_ENABLE
- if (get_current_wpm() <= OLED_SLEEP_SPEED) {
-#endif
- animation_frame = (animation_frame + 1) % OLED_SLEEP_FRAMES;
- animation_type = 0;
- anim_frame_duration = 500;
-#ifdef WPM_ENABLE
- } else if (get_current_wpm() > OLED_WAKE_SPEED) {
- animation_frame = (animation_frame + 1) % OLED_WAKE_FRAMES;
- animation_type = 1;
- anim_frame_duration = 800;
- } else if (get_current_wpm() >= OLED_KAKI_SPEED) {
- animation_frame = (animation_frame + 1) % OLED_KAKI_FRAMES;
- animation_type = 2;
- anim_frame_duration = 500;
- }
-#endif
- }
- return anim_frame_duration;
-}
-
-void render_mouse_mode(uint8_t col, uint8_t line) {
-#if (defined(KEYBOARD_bastardkb_charybdis) || defined(KEYBOARD_handwired_tractyl_manuform)) && defined(POINTING_DEVICE_ENABLE)
- // credit and thanks to jaspertandy on discord for these images
- uint8_t image_index = 0;
-# ifdef OLED_DISPLAY_TEST
- image_index = animation_frame;
-# else
- if (charybdis_get_pointer_sniping_enabled()) {
- image_index = 1;
- } else if (charybdis_get_pointer_dragscroll_enabled()) {
- image_index = 2;
- }
-# endif
-
- oled_set_cursor(col, line);
- oled_write_raw_P(mouse_logo[image_index][0], 16);
- oled_set_cursor(col, line + 1);
- oled_write_raw_P(mouse_logo[image_index][1], 16);
-#endif
-}
-
-void render_status_right(void) {
-#if defined(OLED_DISPLAY_VERBOSE)
- render_default_layer_state(1, 1);
-#else
- render_default_layer_state(0, 0);
-#endif
-
- /* Show Keyboard Layout */
- render_layer_state(1, 2);
- render_mod_status(get_mods() | get_oneshot_mods(), 1, 5);
-#if !defined(OLED_DISPLAY_VERBOSE) && defined(WPM_ENABLE) && !defined(STM32F303xC)
- render_wpm(2, 7, 1);
-#endif
- render_keylock_status(host_keyboard_led_state(), 1, 6);
-}
-
-void render_status_left(void) {
-#if defined(OLED_DISPLAY_VERBOSE)
- render_kitty(0, 1);
-
-# if defined(WPM_ENABLE)
- render_wpm(1, 7, 1);
-# elif defined(DEBUG_MATRIX_SCAN_RATE)
- render_matrix_scan_rate(1, 7, 1);
-# endif
-# if (defined(KEYBOARD_bastardkb_charybdis) || defined(KEYBOARD_handwired_tractyl_manuform)) && defined(POINTING_DEVICE_ENABLE)
- render_pointing_dpi_status(charybdis_get_pointer_sniping_enabled() ? charybdis_get_pointer_sniping_dpi() : charybdis_get_pointer_default_dpi(), 1, 7, 2);
- render_mouse_mode(17, 1);
-# elif defined(WPM_ENABLE) && defined(DEBUG_MATRIX_SCAN_RATE)
- render_matrix_scan_rate(1, 7, 2);
-# endif
- /* Show Keyboard Layout */
- render_bootmagic_status(7, 3);
- render_user_status(1, 5);
-
- render_keylogger_status(1, 6);
-#else
- render_default_layer_state(0, 0);
- /* Show Keyboard Layout */
- render_bootmagic_status(7, 3);
- render_user_status(1, 5);
-
- render_keylogger_status(1, 6);
-#endif
-}
-
-__attribute__((weak)) void oled_render_large_display(bool side) {
- if (side) {
- render_rgb_hsv(1, 7);
- render_rgb_mode(1, 8);
-
- render_wpm_graph(48, 72);
- } else {
- oled_advance_page(true);
- oled_advance_page(true);
-
- oled_set_cursor(0, 9);
- oled_write_raw_P(qmk_logo, 384); // is 3 rows of 128 pixels, so 384 bytes.
-
- render_unicode_mode(1, 14);
- }
-}
-
-__attribute__((weak)) void render_oled_title(bool side) {
- oled_write_P(side ? PSTR(" Left ") : PSTR(" Right "), true);
- // oled_write_P(PSTR( "1234567890123" "1234567890123"), true);
-}
-
-__attribute__((weak)) oled_rotation_t oled_init_keymap(oled_rotation_t rotation) {
- return rotation;
-}
-
-oled_rotation_t oled_init_user(oled_rotation_t rotation) {
- if (is_keyboard_master()) {
- memset(oled_keylog_str, ' ', OLED_KEYLOGGER_LENGTH);
- }
-
- kittoken = defer_exec(3000, kitty_animation_phases, NULL);
-
- oled_clear();
- oled_render();
- return oled_init_keymap(rotation);
-}
-
-__attribute__((weak)) bool oled_task_keymap(void) {
- return true;
-}
-
-bool oled_task_user(void) {
-#ifndef OLED_DISPLAY_TEST
- if (!is_oled_enabled) {
- oled_off();
- return false;
- } else
-#endif
- {
- oled_on();
- }
-
- if (!oled_task_keymap()) {
- return false;
- }
-
-#if defined(OLED_DISPLAY_VERBOSE)
- oled_write_raw_P(header_image, sizeof(header_image));
- oled_set_cursor(4, 0);
- render_oled_title(is_keyboard_left());
-#endif
-
-#ifndef OLED_DISPLAY_TEST
- if (is_keyboard_left()) {
-#endif
- render_status_left();
-#if defined(OLED_DISPLAY_128X128)
- oled_render_large_display(true);
-#endif
-#ifndef OLED_DISPLAY_TEST
- } else {
- render_status_right();
-# if defined(OLED_DISPLAY_128X128)
- oled_render_large_display(false);
-# endif
- }
-#endif
-
-#if defined(OLED_DISPLAY_VERBOSE)
- uint8_t num_of_rows;
-# if defined(OLED_DISPLAY_128X128)
- num_of_rows = 15;
-# else
- num_of_rows = 7;
-# endif
- for (uint8_t i = 1; i < num_of_rows; i++) {
- oled_set_cursor(0, i);
- oled_write_raw_P(display_border, sizeof(display_border));
- oled_set_cursor(21, i);
- oled_write_raw_P(display_border, sizeof(display_border));
- }
-
- oled_set_cursor(0, num_of_rows);
- oled_write_raw_P(footer_image, sizeof(footer_image));
-#endif
-
- return false;
-}
-
-void housekeeping_task_oled(void) {
- is_oled_enabled = false;
- if ((is_oled_locked || (last_input_activity_elapsed() < 60000)) && !is_oled_force_off) {
- is_oled_enabled = true;
- }
- if (oled_get_brightness() != userspace_config.oled_brightness) {
- oled_set_brightness(userspace_config.oled_brightness);
- }
-}
diff --git a/users/drashna/oled/oled_stuff.h b/users/drashna/oled/oled_stuff.h
deleted file mode 100644
index 414720ff2a..0000000000
--- a/users/drashna/oled/oled_stuff.h
+++ /dev/null
@@ -1,169 +0,0 @@
-/* Copyright 2020 Christopher Courtney, aka Drashna Jael're (@drashna) <drashna@live.com>
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-#pragma once
-
-#include "quantum.h"
-#include "oled_driver.h"
-#include "oled_assets.h"
-#ifdef DEFFERED_EXEC_ENABLE
-extern deferred_token kittoken;
-#endif
-
-void oled_driver_render_logo(void);
-bool process_record_user_oled(uint16_t keycode, keyrecord_t *record);
-oled_rotation_t oled_init_keymap(oled_rotation_t rotation);
-void oled_timer_reset(void);
-void render_keylogger_status(uint8_t col, uint8_t line);
-void render_default_layer_state(uint8_t col, uint8_t line);
-void render_layer_state(uint8_t col, uint8_t line);
-void render_keylock_status(led_t led_usb_state, uint8_t col, uint8_t line);
-void render_matrix_scan_rate(uint8_t padding, uint8_t col, uint8_t line);
-void render_mod_status(uint8_t modifiers, uint8_t col, uint8_t line);
-void render_bootmagic_status(uint8_t col, uint8_t line);
-void render_user_status(uint8_t col, uint8_t line);
-void oled_driver_render_logo(void);
-void render_wpm(uint8_t padding, uint8_t col, uint8_t line);
-void render_pointing_dpi_status(uint16_t cpi, uint8_t padding, uint8_t col, uint8_t line);
-void oled_driver_render_logo_left(void);
-void oled_driver_render_logo_right(void);
-void oled_render_large_display(bool side);
-void render_wpm_graph(uint8_t max_lines_graph, uint8_t vertical_offset);
-void render_kitty(uint8_t col, uint8_t line);
-void render_unicode_mode(uint8_t col, uint8_t line);
-void render_rgb_hsv(uint8_t col, uint8_t line);
-void render_mouse_mode(uint8_t col, uint8_t line);
-void housekeeping_task_oled(void);
-void render_oled_title(bool side);
-
-void oled_pan_section(bool left, uint16_t y_start, uint16_t y_end, uint16_t x_start, uint16_t x_end);
-
-#if defined(OLED_DISPLAY_128X128) || defined(OLED_DISPLAY_128X64)
-# define OLED_DISPLAY_VERBOSE
-
-# define OLED_RENDER_KEYLOGGER "Keylogger: "
-# ifndef OLED_KEYLOGGER_LENGTH
-# define OLED_KEYLOGGER_LENGTH 9
-# endif
-# define OLED_RENDER_LAYOUT_NAME "Layout: "
-# define OLED_RENDER_LAYOUT_QWERTY "Qwerty"
-# define OLED_RENDER_LAYOUT_COLEMAK_DH "Colemak DH"
-# define OLED_RENDER_LAYOUT_COLEMAK "Colemak"
-# define OLED_RENDER_LAYOUT_DVORAK "Dvorak"
-# define OLED_RENDER_LAYOUT_WORKMAN "Workman"
-# define OLED_RENDER_LAYOUT_NORMAN "Norman"
-# define OLED_RENDER_LAYOUT_MALTRON "Matron"
-# define OLED_RENDER_LAYOUT_EUCALYN "Eucalyn"
-# define OLED_RENDER_LAYOUT_CARPLAX "Carplax"
-
-# define OLED_RENDER_LAYER_NAME "Layer:"
-# define OLED_RENDER_LAYER_LOWER "Lower"
-# define OLED_RENDER_LAYER_RAISE "Raise"
-# define OLED_RENDER_LAYER_ADJUST "Adjust"
-# define OLED_RENDER_LAYER_MODS "Mods"
-
-# define OLED_RENDER_LOCK_NAME "Lock: "
-# define OLED_RENDER_LOCK_NUML "NUM"
-# define OLED_RENDER_LOCK_CAPS "CAPS"
-# define OLED_RENDER_LOCK_SCLK "SCLK"
-
-# define OLED_RENDER_MODS_NAME "Mods"
-# define OLED_RENDER_MODS_SFT "Sft"
-# define OLED_RENDER_MODS_CTL "Ctl"
-# define OLED_RENDER_MODS_ALT "Alt"
-# define OLED_RENDER_MODS_GUI "GUI"
-
-# define OLED_RENDER_BOOTMAGIC_NAME "Boot "
-# define OLED_RENDER_BOOTMAGIC_NKRO "NKRO"
-# define OLED_RENDER_BOOTMAGIC_NOGUI "nGUI"
-# define OLED_RENDER_BOOTMAGIC_GRV "GRV"
-# define OLED_RENDER_BOOTMAGIC_ONESHOT "1SHT"
-# define OLED_RENDER_BOOTMAGIC_SWAP "SWAP"
-# define OLED_RENDER_BOOTMAGIC_CAPS "CAPS"
-
-# define OLED_RENDER_USER_NAME "USER:"
-# define OLED_RENDER_USER_ANIM "Anim"
-# define OLED_RENDER_USER_LAYR "Layr"
-# define OLED_RENDER_USER_NUKE "Nuke"
-
-# define OLED_RENDER_WPM_COUNTER "WPM: "
-#else
-# define OLED_RENDER_KEYLOGGER "KLogr"
-# ifndef OLED_KEYLOGGER_LENGTH
-# define OLED_KEYLOGGER_LENGTH 5
-# endif
-
-# define OLED_RENDER_LAYOUT_NAME "Lyout"
-# define OLED_RENDER_LAYOUT_QWERTY " QRTY"
-# define OLED_RENDER_LAYOUT_COLEMAK_DH " cmDH"
-# define OLED_RENDER_LAYOUT_COLEMAK " COLE"
-# define OLED_RENDER_LAYOUT_DVORAK " DVRK"
-# define OLED_RENDER_LAYOUT_WORKMAN " WKMN"
-# define OLED_RENDER_LAYOUT_NORMAN " NORM"
-# define OLED_RENDER_LAYOUT_MALTRON " MLTN"
-# define OLED_RENDER_LAYOUT_EUCALYN " ECLN"
-# define OLED_RENDER_LAYOUT_CARPLAX " CRPX"
-
-# define OLED_RENDER_LAYER_NAME "LAYER"
-# define OLED_RENDER_LAYER_LOWER "Lower"
-# define OLED_RENDER_LAYER_RAISE "Raise"
-# define OLED_RENDER_LAYER_ADJUST "Adjst"
-# define OLED_RENDER_LAYER_MODS " Mods"
-
-# define OLED_RENDER_LOCK_NAME "Lock:"
-# define OLED_RENDER_LOCK_NUML "NumL"
-# define OLED_RENDER_LOCK_CAPS "CapL"
-# define OLED_RENDER_LOCK_SCLK "ScrL"
-
-# define OLED_RENDER_MODS_NAME "Mods: "
-# define OLED_RENDER_MODS_SFT "Shft"
-# define OLED_RENDER_MODS_CTL "Ctrl"
-# define OLED_RENDER_MODS_ALT "Alt\n"
-# define OLED_RENDER_MODS_GUI "GUI\n"
-
-# define OLED_RENDER_BOOTMAGIC_NAME "BTMGK"
-# define OLED_RENDER_BOOTMAGIC_NKRO "NKRO"
-# define OLED_RENDER_BOOTMAGIC_NOGUI "nGUI"
-# define OLED_RENDER_BOOTMAGIC_GRV "GRV"
-# define OLED_RENDER_BOOTMAGIC_ONESHOT "1SHT"
-# define OLED_RENDER_BOOTMAGIC_SWAP "SWAP"
-# define OLED_RENDER_BOOTMAGIC_CAPS "CAPS"
-
-# define OLED_RENDER_USER_NAME "USER:"
-# define OLED_RENDER_USER_ANIM "Anim"
-# define OLED_RENDER_USER_LAYR "Layr"
-# define OLED_RENDER_USER_NUKE "Nuke"
-
-# define OLED_RENDER_WPM_COUNTER "WPM: "
-#endif
-
-extern char oled_keylog_str[OLED_KEYLOGGER_LENGTH + 1];
-
-#ifndef OLED_WPM_GRAPH_MAX_WPM
-# define OLED_WPM_GRAPH_MAX_WPM 120
-#endif
-#ifndef OLED_WPM_GRAPH_REFRESH_INTERVAL
-# define OLED_WPM_GRAPH_REFRESH_INTERVAL 300
-#endif
-#ifndef OLED_WPM_GRAPH_AREA_FILL_INTERVAL
-# define OLED_WPM_GRAPH_AREA_FILL_INTERVAL 3
-#endif
-#ifndef OLED_WPM_GRAPH_VERTCAL_LINE_INTERVAL
-# define OLED_WPM_GRAPH_VERTCAL_LINE_INTERVAL 3
-#endif
-#ifndef OLED_WPM_GRAPH_GRAPH_LINE_THICKNESS
-# define OLED_WPM_GRAPH_GRAPH_LINE_THICKNESS 2
-#endif
diff --git a/users/drashna/oled/readme.md b/users/drashna/oled/readme.md
deleted file mode 100644
index dbb8187d49..0000000000
--- a/users/drashna/oled/readme.md
+++ /dev/null
@@ -1,42 +0,0 @@
-# OLED Display
-
-To disable the pre genrated oled display, add `CUSTOM_OLED_DRIVER = no` to your `rules.mk`.
-
-<!-- to do: add all the stuff -->
-## OLED Font
-
-My font file has multiple fonts and multiple logs integrated into the one file. And it uses the full 255 possible characters.
-
-In addition to the default font and logos:
-
-```c
-# define OLED_FONT_5X5
-# define OLED_FONT_AZTECH
-# define OLED_FONT_BMPLAIN
-# define OLED_FONT_CRACKERS
-# define OLED_FONT_EIN
-# define OLED_FONT_HISKYF21
-# define OLED_FONT_SQUASH
-# define OLED_FONT_SUPER_DIGG
-# define OLED_FONT_ZXPIX
-```
-
-```c
-# define OLED_LOGO_CORNE
-# define OLED_LOGO_GMK_BAD
-# define OLED_LOGO_GOTHAM
-# define OLED_LOGO_HUE_MANITEE
-# define OLED_LOGO_LOOSE
-# define OLED_LOGO_SETS3N
-# define OLED_LOGO_SKEEB
-```
-
-Additionally, the font file allows for external oled font files, instead. This allows for additional files that cannot be hosted in the QMK Repo.
-
-## Display
-
-A picture is worth a thousand words. So here are two:
-
-![Right](https://i.imgur.com/4XFOVKBl.jpg)
-
-![Left](https://i.imgur.com/W5RX4pAl.jpg)
diff --git a/users/drashna/oled/rules.mk b/users/drashna/oled/rules.mk
deleted file mode 100644
index 95be67a9ef..0000000000
--- a/users/drashna/oled/rules.mk
+++ /dev/null
@@ -1,12 +0,0 @@
-
-CUSTOM_OLED_DRIVER ?= yes
-ifeq ($(strip $(OLED_ENABLE)), yes)
- ifeq ($(strip $(CUSTOM_OLED_DRIVER)), yes)
- OPT_DEFS += -DCUSTOM_OLED_DRIVER
- SRC += $(USER_PATH)/oled/oled_stuff.c
- endif
- ifeq ($(strip $(OLED_DISPLAY_TEST)), yes)
- OPT_DEFS += -DOLED_DISPLAY_TEST
- endif
-endif
-DEFERRED_EXEC_ENABLE = yes
diff --git a/users/drashna/pointing/pointing.c b/users/drashna/pointing/pointing.c
deleted file mode 100644
index 82cc5a3aa6..0000000000
--- a/users/drashna/pointing/pointing.c
+++ /dev/null
@@ -1,118 +0,0 @@
-// Copyright 2021 Christopher Courtney, aka Drashna Jael're (@drashna) <drashna@live.com>
-// SPDX-License-Identifier: GPL-2.0-or-later
-
-#include "pointing.h"
-#include "math.h"
-
-static uint16_t mouse_debounce_timer = 0;
-bool enable_acceleration = false;
-
-#ifdef TAPPING_TERM_PER_KEY
-# define TAP_CHECK get_tapping_term(KC_BTN1, NULL)
-#else
-# ifndef TAPPING_TERM
-# define TAPPING_TERM 200
-# endif
-# define TAP_CHECK TAPPING_TERM
-#endif
-
-__attribute__((weak)) void pointing_device_init_keymap(void) {}
-
-void pointing_device_init_user(void) {
- set_auto_mouse_layer(_MOUSE);
- set_auto_mouse_enable(true);
-
- pointing_device_init_keymap();
-}
-
-__attribute__((weak)) report_mouse_t pointing_device_task_keymap(report_mouse_t mouse_report) {
- return mouse_report;
-}
-
-report_mouse_t pointing_device_task_user(report_mouse_t mouse_report) {
- mouse_xy_report_t x = mouse_report.x, y = mouse_report.y;
- mouse_report.x = 0;
- mouse_report.y = 0;
-
- if (x != 0 && y != 0 && (timer_elapsed(mouse_debounce_timer) > TAP_CHECK)) {
- if (enable_acceleration) {
- float magnitude = sqrtf( mouse_report.x * mouse_report.x + mouse_report.y * mouse_report.y );
- float adjusted_magnitude = powf(magnitude, 1.2f);
- x = (mouse_xy_report_t)(x * adjusted_magnitude);
- y = (mouse_xy_report_t)(y * adjusted_magnitude);
-// x = (mouse_xy_report_t)(x > 0 ? x * x / 16 + x : -x * x / 16 + x);
-// y = (mouse_xy_report_t)(y > 0 ? y * y / 16 + y : -y * y / 16 + y);
- }
- mouse_report.x = x;
- mouse_report.y = y;
- }
-
- return pointing_device_task_keymap(mouse_report);
-}
-
-bool process_record_pointing(uint16_t keycode, keyrecord_t* record) {
- switch (keycode) {
- case KC_ACCEL:
- enable_acceleration = record->event.pressed;
- break;
-#if defined(POINTING_DEVICE_MOUSE_JIGGLER_ENABLE)
- case PD_JIGGLER:
- if (record->event.pressed) {
- pointing_device_mouse_jiggler_toggle();
- }
-#endif
- default:
- mouse_debounce_timer = timer_read();
- break;
- }
- return true;
-}
-
-layer_state_t layer_state_set_pointing(layer_state_t state) {
- if (layer_state_cmp(state, _GAMEPAD) || layer_state_cmp(state, _DIABLO) || layer_state_cmp(state, _DIABLOII)) {
- state |= ((layer_state_t)1 << _MOUSE);
- set_auto_mouse_enable(false); // auto mouse can be disabled any time during run time
- } else {
- set_auto_mouse_enable(true);
- }
- return state;
-}
-
-#if defined(POINTING_DEVICE_MOUSE_JIGGLER_ENABLE)
-static uint16_t mouse_jiggler_timer;
-
-bool has_mouse_report_changed(report_mouse_t* new_report, report_mouse_t* old_report) {
- // Only report every 5 seconds.
- if (userspace_config.mouse_jiggler && timer_elapsed(mouse_jiggler_timer) > 5000) {
- mouse_jiggler_timer = timer_read();
- return true;
- }
- return memcmp(new_report, old_report, sizeof(report_mouse_t));
-}
-
-void pointing_device_mouse_jiggler_toggle(void) {
- mouse_jiggler_timer = timer_read();
- userspace_config.mouse_jiggler = !userspace_config.mouse_jiggler;
-}
-
-#endif
-
-#if defined(POINTING_DEVICE_AUTO_MOUSE_ENABLE)
-__attribute__((weak)) bool is_mouse_record_keymap(uint16_t keycode, keyrecord_t *record) { return false; }
-
-bool is_mouse_record_user(uint16_t keycode, keyrecord_t* record) {
- if (is_mouse_record_keymap(keycode, record)) {
- return true;
- }
- switch (keycode) {
-# if defined(KEYBOARD_ploopy)
- case DPI_CONFIG:
-# elif (defined(KEYBOARD_bastardkb_charybdis) || defined(KEYBOARD_handwired_tractyl_manuform)) && !defined(NO_CHARYBDIS_KEYCODES) || (defined(KEYBOARD_bastardkb_dilemma) && !defined(NO_DILEMMA_KEYCODES))
- case QK_KB ... QK_KB_MAX:
-# endif
- case KC_ACCEL:
- return true;
- }
- return false;
-}
-#endif
diff --git a/users/drashna/pointing/pointing.h b/users/drashna/pointing/pointing.h
deleted file mode 100644
index c97ce5b2db..0000000000
--- a/users/drashna/pointing/pointing.h
+++ /dev/null
@@ -1,11 +0,0 @@
-// Copyright 2021 Christopher Courtney, aka Drashna Jael're (@drashna) <drashna@live.com>
-// SPDX-License-Identifier: GPL-2.0-or-later
-
-#include "drashna.h"
-
-void pointing_device_init_keymap(void);
-report_mouse_t pointing_device_task_keymap(report_mouse_t mouse_report);
-void matrix_scan_pointing(void);
-bool process_record_pointing(uint16_t keycode, keyrecord_t* record);
-layer_state_t layer_state_set_pointing(layer_state_t state);
-void pointing_device_mouse_jiggler_toggle(void);
diff --git a/users/drashna/pointing/pointing_config.h b/users/drashna/pointing/pointing_config.h
deleted file mode 100644
index 50c29ede85..0000000000
--- a/users/drashna/pointing/pointing_config.h
+++ /dev/null
@@ -1,6 +0,0 @@
-// Copyright 2020 Christopher Courtney, aka Drashna Jael're (@drashna) <drashna@live.com>
-// SPDX-License-Identifier: GPL-2.0-or-later
-
-#pragma once
-
-#define POINTING_DEVICE_MODES_ENABLE
diff --git a/users/drashna/pointing/readme.md b/users/drashna/pointing/readme.md
deleted file mode 100644
index 7770755050..0000000000
--- a/users/drashna/pointing/readme.md
+++ /dev/null
@@ -1,19 +0,0 @@
-# User Pointing Device customization
-
-To disable the customized pointing device code and implement it at the keymap, add `CUSTOM_POINTING_DEVICE = no` to your `rules.mk`.
-
-## Automatic Mouse Layer
-
-Movement on the optical sensor triggers a layer that has all of the mouse keys on that layer. After a set time, the layer will automatically turn itself off after 650ms.
-
-Also, using mousekeys will extend the amount of time that the layer will stay active.
-
-Additionally, layer keys for the mouse layer will lock the layer on.
-
-## Gaming
-
-When the gamepad or diablo layers are enabled, the mouse layer is locked on, as well.
-
-## Keycodes
-
-The only custom keycode for Pointing devices here is `KC_ACCEL`. This allow the mouse report to have an acceleration curve (exponential).
diff --git a/users/drashna/post_config.h b/users/drashna/post_config.h
deleted file mode 100644
index 5a2dfb6637..0000000000
--- a/users/drashna/post_config.h
+++ /dev/null
@@ -1,143 +0,0 @@
-// Copyright 2020 Christopher Courtney, aka Drashna Jael're (@drashna) <drashna@live.com>
-// SPDX-License-Identifier: GPL-2.0-or-later
-
-#pragma once
-
-// because layouts seem to not be respecting config.h order atm
-#ifdef RGBLIGHT_ENABLE
-# undef RGBLIGHT_EFFECT_BREATHING
-# undef RGBLIGHT_EFFECT_RAINBOW_MOOD
-# undef RGBLIGHT_EFFECT_RAINBOW_SWIRL
-# undef RGBLIGHT_EFFECT_SNAKE
-# undef RGBLIGHT_EFFECT_KNIGHT
-# undef RGBLIGHT_EFFECT_CHRISTMAS
-# undef RGBLIGHT_EFFECT_STATIC_GRADIENT
-# undef RGBLIGHT_EFFECT_RGB_TEST
-# undef RGBLIGHT_EFFECT_ALTERNATING
-# undef RGBLIGHT_EFFECT_TWINKLE
-# if defined(__AVR__) && (!defined(__AVR_AT90USB1286__) && !defined(RGBLIGHT_ALL_ANIMATIONS))
-# define RGBLIGHT_EFFECT_BREATHING
-# define RGBLIGHT_EFFECT_SNAKE
-# define RGBLIGHT_EFFECT_KNIGHT
-# else
-# define RGBLIGHT_EFFECT_BREATHING
-# define RGBLIGHT_EFFECT_RAINBOW_MOOD
-# define RGBLIGHT_EFFECT_RAINBOW_SWIRL
-# define RGBLIGHT_EFFECT_SNAKE
-# define RGBLIGHT_EFFECT_KNIGHT
-# if defined(RGBLIGHT_ALL_ANIMATIONS)
-# define RGBLIGHT_EFFECT_CHRISTMAS
-# define RGBLIGHT_EFFECT_STATIC_GRADIENT
-# define RGBLIGHT_EFFECT_RGB_TEST
-# define RGBLIGHT_EFFECT_ALTERNATING
-# endif
-# define RGBLIGHT_EFFECT_TWINKLE
-# endif
-#endif
-
-#ifdef RGB_MATRIX_ENABLE
-# ifndef RGB_MATRIX_REST_MODE
-# if defined(SPLIT_KEYBOARD) || defined(KEYBOARD_ergodox_ez) || defined(KEYBOARD_moonlander)
-# define RGB_MATRIX_REST_MODE RGB_MATRIX_CYCLE_OUT_IN_DUAL
-# else
-# define RGB_MATRIX_REST_MODE RGB_MATRIX_CYCLE_OUT_IN
-# endif
-# endif
-# undef RGB_MATRIX_DEFAULT_MODE
-# define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_REST_MODE
-#endif
-
-#ifdef MOUSEKEY_ENABLE
-// mouse movement config
-# ifdef MK_3_SPEED
-# undef MK_3_SPEED
-# endif
-# define MK_KINETIC_SPEED
-# ifdef MK_KINETIC_SPEED
-# ifndef MOUSEKEY_DELAY
-# define MOUSEKEY_DELAY 8
-# endif
-# ifndef MOUSEKEY_INTERVAL
-# define MOUSEKEY_INTERVAL 20
-# endif
-# ifndef MOUSEKEY_MOVE_DELTA
-# define MOUSEKEY_MOVE_DELTA 25
-# endif
-# else
-# ifndef MOUSEKEY_DELAY
-# define MOUSEKEY_DELAY 300
-# endif
-# ifndef MOUSEKEY_INTERVAL
-# define MOUSEKEY_INTERVAL 50
-# endif
-# ifndef MOUSEKEY_MOVE_DELTA
-# define MOUSEKEY_MOVE_DELTA 5
-# endif
-# endif
-# ifndef MOUSEKEY_MAX_SPEED
-# define MOUSEKEY_MAX_SPEED 7
-# endif
-# ifndef MOUSEKEY_TIME_TO_MAX
-# define MOUSEKEY_TIME_TO_MAX 60
-# endif
-# ifndef MOUSEKEY_INITIAL_SPEED
-# define MOUSEKEY_INITIAL_SPEED 100
-# endif
-# ifndef MOUSEKEY_BASE_SPEED
-# define MOUSEKEY_BASE_SPEED 1000
-# endif
-# ifndef MOUSEKEY_DECELERATED_SPEED
-# define MOUSEKEY_DECELERATED_SPEED 400
-# endif
-# ifndef MOUSEKEY_ACCELERATED_SPEED
-# define MOUSEKEY_ACCELERATED_SPEED 3000
-# endif
-// mouse scroll config
-# ifndef MOUSEKEY_WHEEL_DELAY
-# define MOUSEKEY_WHEEL_DELAY 15
-# endif
-# ifndef MOUSEKEY_WHEEL_DELTA
-# define MOUSEKEY_WHEEL_DELTA 1
-# endif
-# ifndef MOUSEKEY_WHEEL_INTERVAL
-# define MOUSEKEY_WHEEL_INTERVAL 50
-# endif
-# ifndef MOUSEKEY_WHEEL_MAX_SPEED
-# define MOUSEKEY_WHEEL_MAX_SPEED 8
-# endif
-# ifndef MOUSEKEY_WHEEL_TIME_TO_MAX
-# define MOUSEKEY_WHEEL_TIME_TO_MAX 80
-# endif
-// mouse scroll kinetic config
-# ifndef MOUSEKEY_WHEEL_INITIAL_MOVEMENTS
-# define MOUSEKEY_WHEEL_INITIAL_MOVEMENTS 8
-# endif
-# ifndef MOUSEKEY_WHEEL_BASE_MOVEMENTS
-# define MOUSEKEY_WHEEL_BASE_MOVEMENTS 48
-# endif
-# ifndef MOUSEKEY_WHEEL_ACCELERATED_MOVEMENTS
-# define MOUSEKEY_WHEEL_ACCELERATED_MOVEMENTS 48
-# endif
-# ifndef MOUSEKEY_WHEEL_DECELERATED_MOVEMENTS
-# define MOUSEKEY_WHEEL_DECELERATED_MOVEMENTS 8
-# endif
-#endif // MOUSEKEY_ENABLE
-
-#define MOUSE_EXTENDED_REPORT
-
-#ifndef TAPPING_TERM
-# define TAPPING_TERM 175
-#endif
-
-#if (__has_include("../../../qmk_secrets/config.h") && !defined(NO_SECRETS))
-# include "../../../qmk_secrets/config.h"
-#endif
-
-#if defined(SPLIT_KEYBOARD) && defined(PROTOCOL_CHIBIOS) && !defined(USB_SUSPEND_WAKEUP_DELAY)
-# define USB_SUSPEND_WAKEUP_DELAY 500
-#endif
-
-#if defined(XAP_ENABLE) && !defined(__AVR__)
-# undef DYNAMIC_KEYMAP_LAYER_COUNT
-# define DYNAMIC_KEYMAP_LAYER_COUNT 12
-#endif
diff --git a/users/drashna/readme.md b/users/drashna/readme.md
deleted file mode 100644
index e52b67e835..0000000000
--- a/users/drashna/readme.md
+++ /dev/null
@@ -1,17 +0,0 @@
-# Overview
-
-This is my personal userspace file. Most of my code exists here, as it's heavily shared.
-
-* [Callback (keymap+misc)](callbacks.md)
-* [Keycode Handling](keyrecords/readme.md)
- * [Autocorrection](keyrecords/autocorrection/readme.md)
- * [Cap Words](keyrecords/capwords.md)
- * [Diablo Tap Dancing](keyrecords/tap_dance.md)
- * [Keymap Wrappers](keyrecords/wrappers.md)
- * [Secret Macros](keyrecords/secrets.md)
- * [Custom Keycodes](keyrecords/keycodes.md)
- * [Unicode Input](keyrecords/unicode.md)
-* [OLED Display](oled/readme.md)
-* [Pointing Devices](pointing/readme.md)
-* [RGB Customization](rgb/readme.md)
-* [Split Transport](split/readme.md)
diff --git a/users/drashna/rgb/readme.md b/users/drashna/rgb/readme.md
deleted file mode 100644
index 4deaa0a463..0000000000
--- a/users/drashna/rgb/readme.md
+++ /dev/null
@@ -1,52 +0,0 @@
-# RGB
-
-Custom RGB code can be disabled by setting `CUSTOM_RGBLIGHT = no` or `CUSTOM_RGB_MATRIX = no` in your `rules.mk`
-
-## RGB Light
-
-### Layer Indication Code
-
-At least for RGB Light, the `layer_state_set` function is used to detect the current highest layer, and change the underglow based on that layer.
-
-This works for both the regular layers, and for the default layers, too.
-
-I use the sethsv variants of the commands, so that different modes can be used, as well.
-
-RGB Matrix uses a custom, per board implementation, at the moment.
-
-### RGB Light Startup Animation
-
-On startup, if enabled, the board will cycle through the entire hue wheel, starting and ending on the default layer color.
-
-```c
-void keyboard_post_init_rgb(void) {
-#if defined(RGBLIGHT_ENABLE) && defined(RGBLIGHT_STARTUP_ANIMATION)
- if (userspace_config.rgb_layer_change) { rgblight_enable_noeeprom(); }
- if (rgblight_config.enable) {
- layer_state_set_user(layer_state);
- uint16_t old_hue = rgblight_config.hue;
- rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_LIGHT);
- for (uint16_t i = 255; i > 0; i--) {
- rgblight_sethsv_noeeprom( ( i + old_hue) % 255, 255, 255);
- matrix_scan();
- wait_ms(10);
- }
- }
-#endif
- layer_state_set_user(layer_state);
-}
-```
-
-This could probably benefit from some cleanup and better handling.
-
-## RGB Matrix
-
-### Idle Animation
-
-This feature can be toggled with the `RGB_IDL` keycode.
-
-This sets the mode to the Heatmap Animation when typing, but will switch to the cycle in animations when idle.
-
-### Layer Indication
-
-This sets the modifier keys to indicate the current layer state, with the option to override the behavior.
diff --git a/users/drashna/rgb/rgb_matrix_config.h b/users/drashna/rgb/rgb_matrix_config.h
deleted file mode 100644
index bc2c04d981..0000000000
--- a/users/drashna/rgb/rgb_matrix_config.h
+++ /dev/null
@@ -1,106 +0,0 @@
-// Copyright 2020 Christopher Courtney, aka Drashna Jael're (@drashna) <drashna@live.com>
-// SPDX-License-Identifier: GPL-2.0-or-later
-
-#pragma once
-
-#define RGB_MATRIX_KEYPRESSES // reacts to keypresses (will slow down matrix scan by a lot)
-// # define RGB_MATRIX_KEYRELEASES // reacts to keyreleases (not recommened)
-#define RGB_MATRIX_FRAMEBUFFER_EFFECTS
-#define RGB_DISABLE_WHEN_USB_SUSPENDED // turn off effects when suspended
-
-#undef ENABLE_RGB_MATRIX_ALPHAS_MODS
-#undef ENABLE_RGB_MATRIX_GRADIENT_UP_DOWN
-#undef ENABLE_RGB_MATRIX_GRADIENT_LEFT_RIGHT
-#undef ENABLE_RGB_MATRIX_BREATHING
-#undef ENABLE_RGB_MATRIX_BAND_SAT
-#undef ENABLE_RGB_MATRIX_BAND_VAL
-#undef ENABLE_RGB_MATRIX_BAND_PINWHEEL_SAT
-#undef ENABLE_RGB_MATRIX_BAND_PINWHEEL_VAL
-#undef ENABLE_RGB_MATRIX_BAND_SPIRAL_SAT
-#undef ENABLE_RGB_MATRIX_BAND_SPIRAL_VAL
-#undef ENABLE_RGB_MATRIX_CYCLE_ALL
-#undef ENABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT
-#undef ENABLE_RGB_MATRIX_CYCLE_UP_DOWN
-#undef ENABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON
-#undef ENABLE_RGB_MATRIX_CYCLE_OUT_IN
-#undef ENABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL
-#undef ENABLE_RGB_MATRIX_CYCLE_PINWHEEL
-#undef ENABLE_RGB_MATRIX_CYCLE_SPIRAL
-#undef ENABLE_RGB_MATRIX_DUAL_BEACON
-#undef ENABLE_RGB_MATRIX_RAINBOW_BEACON
-#undef ENABLE_RGB_MATRIX_RAINBOW_PINWHEELS
-#undef ENABLE_RGB_MATRIX_RAINDROPS
-#undef ENABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS
-#undef ENABLE_RGB_MATRIX_HUE_BREATHING
-#undef ENABLE_RGB_MATRIX_HUE_PENDULUM
-#undef ENABLE_RGB_MATRIX_HUE_WAVE
-#undef ENABLE_RGB_MATRIX_PIXEL_RAIN
-#undef ENABLE_RGB_MATRIX_PIXEL_FLOW
-#undef ENABLE_RGB_MATRIX_PIXEL_FRACTAL
-// enabled only if RGB_MATRIX_FRAMEBUFFER_EFFECTS is defined
-#undef ENABLE_RGB_MATRIX_TYPING_HEATMAP
-#undef ENABLE_RGB_MATRIX_DIGITAL_RAIN
-// enabled only of RGB_MATRIX_KEYPRESSES or RGB_MATRIX_KEYRELEASES is defined
-#undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE
-#undef ENABLE_RGB_MATRIX_SOLID_REACTIVE
-#undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE
-#undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE
-#undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS
-#undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS
-#undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS
-#undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS
-#undef ENABLE_RGB_MATRIX_SPLASH
-#undef ENABLE_RGB_MATRIX_MULTISPLASH
-#undef ENABLE_RGB_MATRIX_SOLID_SPLASH
-#undef ENABLE_RGB_MATRIX_SOLID_MULTISPLASH
-
-#define ENABLE_RGB_MATRIX_TYPING_HEATMAP
-#define ENABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL
-#if !defined(SPLIT_KEYBOARD) && !defined(KEYBOARD_ergodox_ez) && !defined(KEYBOARD_moonlander)
-# define ENABLE_RGB_MATRIX_CYCLE_OUT_IN
-#endif
-#if defined(__arm__) || defined(__AVR_AT90USB1286__) || defined(KEYBOARD_launchpad)
-// RGB Matrix Animation modes. Explicitly enabled
-// For full list of effects, see:
-// https://docs.qmk.fm/#/feature_rgb_matrix?id=rgb-matrix-effects
-# define ENABLE_RGB_MATRIX_GRADIENT_UP_DOWN
-# define ENABLE_RGB_MATRIX_GRADIENT_LEFT_RIGHT
-# define ENABLE_RGB_MATRIX_BREATHING
-# define ENABLE_RGB_MATRIX_BAND_SAT
-# define ENABLE_RGB_MATRIX_BAND_VAL
-# define ENABLE_RGB_MATRIX_BAND_PINWHEEL_SAT
-# define ENABLE_RGB_MATRIX_BAND_PINWHEEL_VAL
-# define ENABLE_RGB_MATRIX_BAND_SPIRAL_SAT
-# define ENABLE_RGB_MATRIX_BAND_SPIRAL_VAL
-# define ENABLE_RGB_MATRIX_CYCLE_ALL
-# define ENABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT
-# define ENABLE_RGB_MATRIX_CYCLE_UP_DOWN
-# define ENABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON
-# define ENABLE_RGB_MATRIX_CYCLE_OUT_IN
-# define ENABLE_RGB_MATRIX_CYCLE_PINWHEEL
-# define ENABLE_RGB_MATRIX_CYCLE_SPIRAL
-# define ENABLE_RGB_MATRIX_DUAL_BEACON
-# define ENABLE_RGB_MATRIX_RAINBOW_BEACON
-# define ENABLE_RGB_MATRIX_RAINBOW_PINWHEELS
-# define ENABLE_RGB_MATRIX_RAINDROPS
-# define ENABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS
-# define ENABLE_RGB_MATRIX_HUE_BREATHING
-# define ENABLE_RGB_MATRIX_HUE_PENDULUM
-# define ENABLE_RGB_MATRIX_HUE_WAVE
-# define ENABLE_RGB_MATRIX_PIXEL_RAIN
-# define ENABLE_RGB_MATRIX_PIXEL_FLOW
-# define ENABLE_RGB_MATRIX_PIXEL_FRACTAL
-# define ENABLE_RGB_MATRIX_DIGITAL_RAIN
-# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE
-# define ENABLE_RGB_MATRIX_SOLID_REACTIVE
-# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE
-# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE
-# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS
-# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS
-# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS
-# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS
-# define ENABLE_RGB_MATRIX_SPLASH
-# define ENABLE_RGB_MATRIX_MULTISPLASH
-# define ENABLE_RGB_MATRIX_SOLID_SPLASH
-# define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH
-#endif // AVR
diff --git a/users/drashna/rgb/rgb_matrix_stuff.c b/users/drashna/rgb/rgb_matrix_stuff.c
deleted file mode 100644
index 588e51daf9..0000000000
--- a/users/drashna/rgb/rgb_matrix_stuff.c
+++ /dev/null
@@ -1,190 +0,0 @@
-// Copyright 2020 Christopher Courtney, aka Drashna Jael're (@drashna) <drashna@live.com>
-// SPDX-License-Identifier: GPL-2.0-or-later
-
-#include "drashna.h"
-#include "rgb_matrix.h"
-#include "lib/lib8tion/lib8tion.h"
-extern led_config_t g_led_config;
-
-static uint32_t hypno_timer;
-
-void rgb_matrix_layer_helper(uint8_t hue, uint8_t sat, uint8_t val, uint8_t mode, uint8_t speed, uint8_t led_type, uint8_t led_min, uint8_t led_max) {
- HSV hsv = {hue, sat, val};
- if (hsv.v > rgb_matrix_get_val()) {
- hsv.v = rgb_matrix_get_val();
- }
-
- switch (mode) {
- case 1: // breathing
- {
- uint16_t time = scale16by8(g_rgb_timer, speed / 8);
- hsv.v = scale8(abs8(sin8(time) - 128) * 2, hsv.v);
- RGB rgb = hsv_to_rgb(hsv);
- for (uint8_t i = 0; i < RGB_MATRIX_LED_COUNT; i++) {
- if (HAS_FLAGS(g_led_config.flags[i], led_type)) {
- RGB_MATRIX_INDICATOR_SET_COLOR(i, rgb.r, rgb.g, rgb.b);
- }
- }
- break;
- }
- default: // Solid Color
- {
- RGB rgb = hsv_to_rgb(hsv);
- for (uint8_t i = 0; i < RGB_MATRIX_LED_COUNT; i++) {
- if (HAS_FLAGS(g_led_config.flags[i], led_type)) {
- RGB_MATRIX_INDICATOR_SET_COLOR(i, rgb.r, rgb.g, rgb.b);
- }
- }
- break;
- }
- }
-}
-
-void housekeeping_task_rgb_matrix(void) {
-#if defined(RGB_MATRIX_FRAMEBUFFER_EFFECTS)
- if (userspace_config.rgb_matrix_idle_anim && rgb_matrix_get_mode() == RGB_MATRIX_TYPING_HEATMAP && sync_timer_elapsed32(hypno_timer) > 15000) {
- rgb_matrix_mode_noeeprom(RGB_MATRIX_REST_MODE);
- }
-#endif
-}
-
-void keyboard_post_init_rgb_matrix(void) {
-#if defined(RGB_MATRIX_FRAMEBUFFER_EFFECTS)
- if (userspace_config.rgb_matrix_idle_anim) {
- rgb_matrix_mode_noeeprom(RGB_MATRIX_REST_MODE);
- }
-#endif
- if (userspace_config.rgb_layer_change) {
- rgb_matrix_set_flags(LED_FLAG_UNDERGLOW | LED_FLAG_KEYLIGHT | LED_FLAG_INDICATOR);
- } else {
- rgb_matrix_set_flags(LED_FLAG_ALL);
- }
-}
-
-bool process_record_user_rgb_matrix(uint16_t keycode, keyrecord_t *record) {
-#if defined(RGB_MATRIX_FRAMEBUFFER_EFFECTS)
- hypno_timer = sync_timer_read32();
- if (userspace_config.rgb_matrix_idle_anim && rgb_matrix_get_mode() == RGB_MATRIX_REST_MODE) {
- rgb_matrix_mode_noeeprom(RGB_MATRIX_TYPING_HEATMAP);
- }
-#endif
- switch (keycode) {
- case RGB_IDL: // This allows me to use underglow as layer indication, or as normal
-#if defined(RGB_MATRIX_ENABLE) && defined(RGB_MATRIX_FRAMEBUFFER_EFFECTS)
- if (record->event.pressed) {
- userspace_config.rgb_matrix_idle_anim ^= 1;
- dprintf("RGB Matrix Idle Animation [EEPROM]: %u\n", userspace_config.rgb_matrix_idle_anim);
- eeconfig_update_user_config(&userspace_config.raw);
- if (userspace_config.rgb_matrix_idle_anim) {
- rgb_matrix_mode_noeeprom(RGB_MATRIX_TYPING_HEATMAP);
- }
- }
-#endif
- break;
- }
- return true;
-}
-
-__attribute__((weak)) bool rgb_matrix_indicators_advanced_keymap(uint8_t led_min, uint8_t led_max) {
- return true;
-}
-bool rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) {
- if (!rgb_matrix_indicators_advanced_keymap(led_min, led_max)) {
- return false;
- }
-
-#if defined(RGBLIGHT_ENABLE)
- if (!userspace_config.rgb_layer_change)
-#else
- if (userspace_config.rgb_layer_change)
-#endif
- {
- switch (get_highest_layer(layer_state & ~((layer_state_t)1 << _MOUSE))) {
- case _GAMEPAD:
- rgb_matrix_layer_helper(HSV_ORANGE, 1, rgb_matrix_config.speed, LED_FLAG_MODIFIER, led_min, led_max);
- break;
- case _DIABLO:
- rgb_matrix_layer_helper(HSV_RED, 1, rgb_matrix_config.speed * 8, LED_FLAG_MODIFIER, led_min, led_max);
- break;
- case _RAISE:
- rgb_matrix_layer_helper(HSV_YELLOW, 1, rgb_matrix_config.speed, LED_FLAG_MODIFIER, led_min, led_max);
- break;
- case _LOWER:
- rgb_matrix_layer_helper(HSV_GREEN, 1, rgb_matrix_config.speed, LED_FLAG_MODIFIER, led_min, led_max);
- break;
- case _ADJUST:
- rgb_matrix_layer_helper(HSV_RED, 1, rgb_matrix_config.speed, LED_FLAG_MODIFIER, led_min, led_max);
- break;
- default:
- if (layer_state_is(_MOUSE)) {
- rgb_matrix_layer_helper(HSV_PURPLE, 1, rgb_matrix_config.speed, LED_FLAG_MODIFIER, led_min, led_max);
- } else {
- switch (get_highest_layer(default_layer_state)) {
- case _DEFAULT_LAYER_1:
- rgb_matrix_layer_helper(DEFAULT_LAYER_1_HSV, 0, rgb_matrix_config.speed, LED_FLAG_MODIFIER, led_min, led_max);
- break;
- case _DEFAULT_LAYER_2:
- rgb_matrix_layer_helper(DEFAULT_LAYER_2_HSV, 0, rgb_matrix_config.speed, LED_FLAG_MODIFIER, led_min, led_max);
- break;
- case _DEFAULT_LAYER_3:
- rgb_matrix_layer_helper(DEFAULT_LAYER_3_HSV, 0, rgb_matrix_config.speed, LED_FLAG_MODIFIER, led_min, led_max);
- break;
- case _DEFAULT_LAYER_4:
- rgb_matrix_layer_helper(DEFAULT_LAYER_4_HSV, 0, rgb_matrix_config.speed, LED_FLAG_MODIFIER, led_min, led_max);
- break;
- }
- }
- break;
- }
- }
- return false;
-}
-
-__attribute__((weak)) bool rgb_matrix_indicators_keymap(void) {
- return true;
-}
-bool rgb_matrix_indicators_user(void) {
- return rgb_matrix_indicators_keymap();
-}
-
-
-//----------------------------------------------------------
-// RGB Matrix naming
-#include <rgb_matrix.h>
-
-#if defined(RGB_MATRIX_EFFECT)
-# undef RGB_MATRIX_EFFECT
-#endif // defined(RGB_MATRIX_EFFECT)
-
-#define RGB_MATRIX_EFFECT(x) RGB_MATRIX_EFFECT_##x,
-enum {
- RGB_MATRIX_EFFECT_NONE,
-#include "rgb_matrix_effects.inc"
-#undef RGB_MATRIX_EFFECT
-#ifdef RGB_MATRIX_CUSTOM_KB
-# include "rgb_matrix_kb.inc"
-#endif
-#ifdef RGB_MATRIX_CUSTOM_USER
-# include "rgb_matrix_user.inc"
-#endif
-};
-
-#define RGB_MATRIX_EFFECT(x) \
- case RGB_MATRIX_EFFECT_##x: \
- return #x;
-const char* rgb_matrix_name(uint8_t effect) {
- switch (effect) {
- case RGB_MATRIX_EFFECT_NONE:
- return "NONE";
-#include "rgb_matrix_effects.inc"
-#undef RGB_MATRIX_EFFECT
-#ifdef RGB_MATRIX_CUSTOM_KB
-# include "rgb_matrix_kb.inc"
-#endif
-#ifdef RGB_MATRIX_CUSTOM_USER
-# include "rgb_matrix_user.inc"
-#endif
- default:
- return "UNKNOWN";
- }
-}
diff --git a/users/drashna/rgb/rgb_matrix_stuff.h b/users/drashna/rgb/rgb_matrix_stuff.h
deleted file mode 100644
index 80770bf40f..0000000000
--- a/users/drashna/rgb/rgb_matrix_stuff.h
+++ /dev/null
@@ -1,17 +0,0 @@
-// Copyright 2020 Christopher Courtney, aka Drashna Jael're (@drashna) <drashna@live.com>
-// SPDX-License-Identifier: GPL-2.0-or-later
-
-#pragma once
-#include "quantum.h"
-
-bool process_record_user_rgb_matrix(uint16_t keycode, keyrecord_t *record);
-void keyboard_post_init_rgb_matrix(void);
-void housekeeping_task_rgb_matrix(void);
-
-void rgb_matrix_set_color_all(uint8_t red, uint8_t green, uint8_t blue);
-void rgb_matrix_layer_helper(uint8_t hue, uint8_t sat, uint8_t val, uint8_t mode, uint8_t speed, uint8_t led_type, uint8_t led_min, uint8_t led_max);
-
-bool rgb_matrix_indicators_advanced_keymap(uint8_t led_min, uint8_t led_max);
-bool rgb_matrix_indicators_keymap(void);
-
-const char* rgb_matrix_name(uint8_t effect);
diff --git a/users/drashna/rgb/rgb_stuff.c b/users/drashna/rgb/rgb_stuff.c
deleted file mode 100644
index cc85425aff..0000000000
--- a/users/drashna/rgb/rgb_stuff.c
+++ /dev/null
@@ -1,165 +0,0 @@
-// Copyright 2020 Christopher Courtney, aka Drashna Jael're (@drashna) <drashna@live.com>
-// SPDX-License-Identifier: GPL-2.0-or-later
-
-#include "drashna.h"
-#include "rgb_stuff.h"
-#include "eeprom.h"
-
-bool has_initialized;
-
-void rgblight_sethsv_default_helper(uint8_t index) {
- rgblight_sethsv_at(rgblight_get_hue(), rgblight_get_sat(), rgblight_get_val(), index);
-}
-void rgblight_set_hsv_and_mode(uint8_t hue, uint8_t sat, uint8_t val, uint8_t mode) {
- if (val > RGBLIGHT_LIMIT_VAL) {
- val = RGBLIGHT_LIMIT_VAL;
- }
- rgblight_sethsv_noeeprom(hue, sat, val);
- // wait_us(175); // Add a slight delay between color and mode to ensure it's processed correctly
- rgblight_mode_noeeprom(mode);
-}
-
-bool process_record_user_rgb_light(uint16_t keycode, keyrecord_t *record) {
- return true;
-}
-
-#if defined(RGBLIGHT_STARTUP_ANIMATION)
-static bool is_enabled;
-static bool is_rgblight_startup;
-static HSV old_hsv;
-static uint8_t old_mode;
-deferred_token rgb_startup_token;
-
-uint32_t rgb_startup_animation(uint32_t triger_time, void *cb_arg) {
- if (is_rgblight_startup && is_keyboard_master()) {
- static uint8_t counter = 0;
- counter++;
- rgblight_sethsv_noeeprom((counter + old_hsv.h) % 255, 255, 255);
- if (counter >= 255) {
- is_rgblight_startup = false;
- if (userspace_config.rgb_layer_change) {
- layer_state_set_rgb_light(layer_state);
- } else {
- rgblight_set_hsv_and_mode(old_hsv.h, old_hsv.s, old_hsv.v, old_mode);
- }
- if (!is_enabled) {
- rgblight_disable_noeeprom();
- }
- }
- }
- return is_rgblight_startup ? 10 : 0;
-}
-#endif
-
-bool is_rgblight_startup_running(void) {
-#if defined(RGBLIGHT_STARTUP_ANIMATION)
- return is_rgblight_startup && is_keyboard_master();
-#else
- return false;
-#endif
-}
-
-
-void keyboard_post_init_rgb_light(void) {
-#if defined(RGBLIGHT_STARTUP_ANIMATION)
- is_enabled = rgblight_is_enabled();
- if (userspace_config.rgb_layer_change) {
- layer_state_set_rgb_light(layer_state);
- }
- old_hsv = rgblight_get_hsv();
- old_mode = rgblight_get_mode();
- rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_LIGHT);
- is_rgblight_startup = true;
- rgb_startup_token = defer_exec(300, rgb_startup_animation, NULL);
-#endif
- if (userspace_config.rgb_layer_change) {
- layer_state_set_rgb_light(layer_state);
- }
-}
-
-layer_state_t layer_state_set_rgb_light(layer_state_t state) {
-#ifdef RGBLIGHT_ENABLE
- if (userspace_config.rgb_layer_change) {
- switch (get_highest_layer(state & ~((layer_state_t)1 << _MOUSE))) {
- case _MEDIA:
- rgblight_set_hsv_and_mode(HSV_CHARTREUSE, RGBLIGHT_MODE_KNIGHT + 1);
- break;
- case _GAMEPAD:
- rgblight_set_hsv_and_mode(HSV_ORANGE, RGBLIGHT_MODE_SNAKE + 2);
- break;
- case _DIABLO:
- case _DIABLOII:
- rgblight_set_hsv_and_mode(HSV_RED, RGBLIGHT_MODE_BREATHING + 3);
- break;
- case _RAISE:
- rgblight_set_hsv_and_mode(HSV_YELLOW, RGBLIGHT_MODE_BREATHING + 3);
- break;
- case _LOWER:
- rgblight_set_hsv_and_mode(HSV_GREEN, RGBLIGHT_MODE_BREATHING + 3);
- break;
- case _ADJUST:
- rgblight_set_hsv_and_mode(HSV_RED, RGBLIGHT_MODE_KNIGHT + 2);
- break;
- default:
- if (layer_state_cmp(state, _MOUSE)) {
-# if defined(RGBLIGHT_EFFECT_TWINKLE)
- rgblight_set_hsv_and_mode(HSV_CHARTREUSE, RGBLIGHT_MODE_TWINKLE + 5);
-# else
- rgblight_set_hsv_and_mode(HSV_CHARTREUSE, RGBLIGHT_MODE_BREATHING + 3);
-# endif
- } else {
- default_layer_state_set_rgb_light(default_layer_state);
- }
- }
-#endif // RGBLIGHT_ENABLE
- }
- return state;
-}
-
-layer_state_t default_layer_state_set_rgb_light(layer_state_t state) {
- switch (get_highest_layer(state)) {
- case _DEFAULT_LAYER_1:
- rgblight_set_hsv_and_mode(DEFAULT_LAYER_1_HSV, RGBLIGHT_MODE_STATIC_LIGHT);
- break;
- case _DEFAULT_LAYER_2:
- rgblight_set_hsv_and_mode(DEFAULT_LAYER_2_HSV, RGBLIGHT_MODE_STATIC_LIGHT);
- break;
- case _DEFAULT_LAYER_3:
- rgblight_set_hsv_and_mode(DEFAULT_LAYER_3_HSV, RGBLIGHT_MODE_STATIC_LIGHT);
- break;
- case _DEFAULT_LAYER_4:
- rgblight_set_hsv_and_mode(DEFAULT_LAYER_4_HSV, RGBLIGHT_MODE_STATIC_LIGHT);
- break;
- }
- return state;
-}
-
-#define _RGBM_SINGLE_STATIC(sym) \
- case RGBLIGHT_MODE_##sym: \
- return #sym;
-#define _RGBM_SINGLE_DYNAMIC(sym) \
- case RGBLIGHT_MODE_##sym: \
- return #sym;
-#define _RGBM_MULTI_STATIC(sym) \
- case RGBLIGHT_MODE_##sym: \
- return #sym;
-#define _RGBM_MULTI_DYNAMIC(sym) \
- case RGBLIGHT_MODE_##sym: \
- return #sym;
-#define _RGBM_TMP_STATIC(sym, msym) \
- case RGBLIGHT_MODE_##sym: \
- return #msym;
-#define _RGBM_TMP_DYNAMIC(sym, msym) \
- case RGBLIGHT_MODE_##sym: \
- return #msym;
-
-
-const char* rgblight_name(uint8_t effect) {
- switch (effect) {
-#include "rgblight_modes.h"
- case 0:
- return "Off";
- default:
- return "UNKNOWN";
- }
-}
diff --git a/users/drashna/rgb/rgb_stuff.h b/users/drashna/rgb/rgb_stuff.h
deleted file mode 100644
index f76c591e03..0000000000
--- a/users/drashna/rgb/rgb_stuff.h
+++ /dev/null
@@ -1,15 +0,0 @@
-// Copyright 2020 Christopher Courtney, aka Drashna Jael're (@drashna) <drashna@live.com>
-// SPDX-License-Identifier: GPL-2.0-or-later
-
-#pragma once
-#include "quantum.h"
-
-bool process_record_user_rgb_light(uint16_t keycode, keyrecord_t *record);
-void keyboard_post_init_rgb_light(void);
-void matrix_scan_rgb_light(void);
-layer_state_t layer_state_set_rgb_light(layer_state_t state);
-layer_state_t default_layer_state_set_rgb_light(layer_state_t state);
-void rgblight_sethsv_default_helper(uint8_t index);
-
-const char* rgblight_name(uint8_t effect);
-bool is_rgblight_startup_running(void);
diff --git a/users/drashna/rgb/rgblight_config.h b/users/drashna/rgb/rgblight_config.h
deleted file mode 100644
index d5a6917f1c..0000000000
--- a/users/drashna/rgb/rgblight_config.h
+++ /dev/null
@@ -1,12 +0,0 @@
-// Copyright 2020 Christopher Courtney, aka Drashna Jael're (@drashna) <drashna@live.com>
-// SPDX-License-Identifier: GPL-2.0-or-later
-
-#pragma once
-
-#define RGBLIGHT_SLEEP
-#define RGBLIGHT_EFFECT_TWINKLE_LIFE 250
-#define RGBLIGHT_EFFECT_TWINKLE_PROBABILITY 1 / 24
-
-#ifdef RGBLIGHT_DEFAULT_MODE
-# undef RGBLIGHT_DEFAULT_MODE
-#endif
diff --git a/users/drashna/rgblight_breathe_table.h b/users/drashna/rgblight_breathe_table.h
deleted file mode 100644
index d406395978..0000000000
--- a/users/drashna/rgblight_breathe_table.h
+++ /dev/null
@@ -1,121 +0,0 @@
-// Copyright 2020 Christopher Courtney, aka Drashna Jael're (@drashna) <drashna@live.com>
-// SPDX-License-Identifier: GPL-2.0-or-later
-
-#ifndef RGBLIGHT_EFFECT_BREATHE_TABLE
-#define RGBLIGHT_EFFECT_BREATHE_TABLE
-
-// clang-format off
-const uint8_t rgblight_effect_breathe_table[] PROGMEM = {
-/* #define RGBLIGHT_EFFECT_BREATHE_CENTER 0.00 */
-/* #define RGBLIGHT_EFFECT_BREATHE_MAX 255 */
-
- #if RGBLIGHT_BREATHE_TABLE_SIZE == 256
- 0x44, 0x45, 0x47, 0x48, 0x4a, 0x4b, 0x4c, 0x4e,
- 0x4f, 0x51, 0x52, 0x54, 0x55, 0x57, 0x58, 0x5a,
- 0x5c, 0x5d, 0x5f, 0x60, 0x62, 0x64, 0x65, 0x67,
- 0x69, 0x6a, 0x6c, 0x6e, 0x70, 0x72, 0x73, 0x75,
- 0x77, 0x79, 0x7b, 0x7c, 0x7e, 0x80, 0x82, 0x84,
- 0x86, 0x88, 0x8a, 0x8b, 0x8d, 0x8f, 0x91, 0x93,
- 0x95, 0x97, 0x99, 0x9b, 0x9d, 0x9f, 0xa1, 0xa3,
- 0xa5, 0xa7, 0xa9, 0xaa, 0xac, 0xae, 0xb0, 0xb2,
- 0xb4, 0xb6, 0xb8, 0xba, 0xbc, 0xbe, 0xbf, 0xc1,
- 0xc3, 0xc5, 0xc7, 0xc9, 0xca, 0xcc, 0xce, 0xd0,
- 0xd1, 0xd3, 0xd5, 0xd6, 0xd8, 0xda, 0xdb, 0xdd,
- 0xde, 0xe0, 0xe1, 0xe3, 0xe4, 0xe5, 0xe7, 0xe8,
- 0xe9, 0xeb, 0xec, 0xed, 0xee, 0xef, 0xf0, 0xf1,
- 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, 0xf8, 0xf8,
- 0xf9, 0xfa, 0xfa, 0xfb, 0xfc, 0xfc, 0xfc, 0xfd,
- 0xfd, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe,
- 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfd,
- 0xfd, 0xfc, 0xfc, 0xfc, 0xfb, 0xfa, 0xfa, 0xf9,
- 0xf8, 0xf8, 0xf7, 0xf6, 0xf5, 0xf4, 0xf3, 0xf2,
- 0xf1, 0xf0, 0xef, 0xee, 0xed, 0xec, 0xeb, 0xe9,
- 0xe8, 0xe7, 0xe5, 0xe4, 0xe3, 0xe1, 0xe0, 0xde,
- 0xdd, 0xdb, 0xda, 0xd8, 0xd6, 0xd5, 0xd3, 0xd1,
- 0xd0, 0xce, 0xcc, 0xca, 0xc9, 0xc7, 0xc5, 0xc3,
- 0xc1, 0xbf, 0xbe, 0xbc, 0xba, 0xb8, 0xb6, 0xb4,
- 0xb2, 0xb0, 0xae, 0xac, 0xaa, 0xa9, 0xa7, 0xa5,
- 0xa3, 0xa1, 0x9f, 0x9d, 0x9b, 0x99, 0x97, 0x95,
- 0x93, 0x91, 0x8f, 0x8d, 0x8b, 0x8a, 0x88, 0x86,
- 0x84, 0x82, 0x80, 0x7e, 0x7c, 0x7b, 0x79, 0x77,
- 0x75, 0x73, 0x72, 0x70, 0x6e, 0x6c, 0x6a, 0x69,
- 0x67, 0x65, 0x64, 0x62, 0x60, 0x5f, 0x5d, 0x5c,
- 0x5a, 0x58, 0x57, 0x55, 0x54, 0x52, 0x51, 0x4f,
- 0x4e, 0x4c, 0x4b, 0x4a, 0x48, 0x47, 0x45, 0x44
- #endif /* 256 bytes table */
-
- #if RGBLIGHT_BREATHE_TABLE_SIZE == 128
- 0x44, 0x47, 0x4a, 0x4c,
- 0x4f, 0x52, 0x55, 0x58,
- 0x5c, 0x5f, 0x62, 0x65,
- 0x69, 0x6c, 0x70, 0x73,
- 0x77, 0x7b, 0x7e, 0x82,
- 0x86, 0x8a, 0x8d, 0x91,
- 0x95, 0x99, 0x9d, 0xa1,
- 0xa5, 0xa9, 0xac, 0xb0,
- 0xb4, 0xb8, 0xbc, 0xbf,
- 0xc3, 0xc7, 0xca, 0xce,
- 0xd1, 0xd5, 0xd8, 0xdb,
- 0xde, 0xe1, 0xe4, 0xe7,
- 0xe9, 0xec, 0xee, 0xf0,
- 0xf2, 0xf4, 0xf6, 0xf8,
- 0xf9, 0xfa, 0xfc, 0xfc,
- 0xfd, 0xfe, 0xfe, 0xfe,
- 0xfe, 0xfe, 0xfe, 0xfe,
- 0xfd, 0xfc, 0xfb, 0xfa,
- 0xf8, 0xf7, 0xf5, 0xf3,
- 0xf1, 0xef, 0xed, 0xeb,
- 0xe8, 0xe5, 0xe3, 0xe0,
- 0xdd, 0xda, 0xd6, 0xd3,
- 0xd0, 0xcc, 0xc9, 0xc5,
- 0xc1, 0xbe, 0xba, 0xb6,
- 0xb2, 0xae, 0xaa, 0xa7,
- 0xa3, 0x9f, 0x9b, 0x97,
- 0x93, 0x8f, 0x8b, 0x88,
- 0x84, 0x80, 0x7c, 0x79,
- 0x75, 0x72, 0x6e, 0x6a,
- 0x67, 0x64, 0x60, 0x5d,
- 0x5a, 0x57, 0x54, 0x51,
- 0x4e, 0x4b, 0x48, 0x45
- #endif /* 128 bytes table */
-
- #if RGBLIGHT_BREATHE_TABLE_SIZE == 64
- 0x44, 0x4a,
- 0x4f, 0x55,
- 0x5c, 0x62,
- 0x69, 0x70,
- 0x77, 0x7e,
- 0x86, 0x8d,
- 0x95, 0x9d,
- 0xa5, 0xac,
- 0xb4, 0xbc,
- 0xc3, 0xca,
- 0xd1, 0xd8,
- 0xde, 0xe4,
- 0xe9, 0xee,
- 0xf2, 0xf6,
- 0xf9, 0xfc,
- 0xfd, 0xfe,
- 0xfe, 0xfe,
- 0xfd, 0xfb,
- 0xf8, 0xf5,
- 0xf1, 0xed,
- 0xe8, 0xe3,
- 0xdd, 0xd6,
- 0xd0, 0xc9,
- 0xc1, 0xba,
- 0xb2, 0xaa,
- 0xa3, 0x9b,
- 0x93, 0x8b,
- 0x84, 0x7c,
- 0x75, 0x6e,
- 0x67, 0x60,
- 0x5a, 0x54,
- 0x4e, 0x48
- #endif /* 64 bytes table */
-};
-// clang-format on
-
-static const int table_scale = 256 / sizeof(rgblight_effect_breathe_table);
-
-#endif /* RGBLIGHT_EFFECT_BREATHE_TABLE */
diff --git a/users/drashna/rules.mk b/users/drashna/rules.mk
deleted file mode 100644
index 6287d6e78c..0000000000
--- a/users/drashna/rules.mk
+++ /dev/null
@@ -1,136 +0,0 @@
-SRC += $(USER_PATH)/drashna.c \
- $(USER_PATH)/callbacks.c \
- $(USER_PATH)/keyrecords/process_records.c \
- $(USER_PATH)/keyrecords/tapping.c \
- $(USER_PATH)/eeconfig_users.c
-
-# TOP_SYMBOLS = yes
-
-DEBOUNCE_TYPE = asym_eager_defer_pk
-DEFERRED_EXEC_ENABLE = yes
-OS_DETECTION_ENABLE = yes
-
-ifeq ($(PLATFORM),CHIBIOS)
- # cortex-m4 has DSP+FPU support, so use hack to enable it for lib8tion
- ifeq ($(strip $(MCU)), cortex-m4)
- OPT_DEFS += -DFASTLED_TEENSY3
- endif
-else
- ifneq ($(strip $(LTO_SUPPORTED)), no)
- LTO_ENABLE = yes
- endif
- SPACE_CADET_ENABLE = no
- GRAVE_ESC_ENABLE = no
-endif
-# DEBUG_MATRIX_SCAN_RATE_ENABLE = api
-
--include $(USER_PATH)/../../../qmk_secrets/rules.mk
-
-ifeq ($(strip $(MAKE_BOOTLOADER)), yes)
- OPT_DEFS += -DMAKE_BOOTLOADER
-endif
-
-# At least until build.mk or the like drops, this is here to prevent
-# VUSB boards from enabling NKRO, as they do not support it. Ideally
-# this should be handled per keyboard, but until that happens ...
-ifeq ($(strip $(PROTOCOL)), VUSB)
- NKRO_ENABLE := no
-endif
-
-ifeq ($(strip $(PER_KEY_TAPPING)), yes)
- OPT_DEFS += -DPER_KEY_TAPPING
-endif
-
-CUSTOM_UNICODE_ENABLE ?= yes
-ifeq ($(strip $(CUSTOM_UNICODE_ENABLE)), yes)
- UNICODE_ENABLE := no
- UNICODEMAP_ENABLE := no
- UCIS_ENABLE := no
- UNICODE_COMMON := yes
- OPT_DEFS += -DCUSTOM_UNICODE_ENABLE
- SRC += $(USER_PATH)/keyrecords/unicode.c
-endif
-
-CUSTOM_TAP_DANCE ?= yes
-ifeq ($(strip $(CUSTOM_TAP_DANCE)), yes)
- ifeq ($(strip $(TAP_DANCE_ENABLE)), yes)
- SRC += $(USER_PATH)/keyrecords/tap_dances.c
- endif
-endif
-
-CUSTOM_RGBLIGHT ?= yes
-ifeq ($(strip $(RGBLIGHT_ENABLE)), yes)
- ifeq ($(strip $(CUSTOM_RGBLIGHT)), yes)
- SRC += $(USER_PATH)/rgb/rgb_stuff.c
- OPT_DEFS += -DCUSTOM_RGBLIGHT
- ifeq ($(strip $(RGBLIGHT_NOEEPROM)), yes)
- OPT_DEFS += -DRGBLIGHT_NOEEPROM
- endif
- ifeq ($(strip $(RGBLIGHT_STARTUP_ANIMATION)), yes)
- OPT_DEFS += -DRGBLIGHT_STARTUP_ANIMATION
- endif
- endif
-endif
-
-CUSTOM_RGB_MATRIX ?= yes
-ifeq ($(strip $(RGB_MATRIX_ENABLE)), yes)
- ifeq ($(strip $(CUSTOM_RGB_MATRIX)), yes)
- SRC += $(USER_PATH)/rgb/rgb_matrix_stuff.c
- OPT_DEFS += -DCUSTOM_RGB_MATRIX
- endif
-endif
-
-KEYLOGGER_ENABLE ?= no
-ifdef CONSOLE_ENABLE
- ifeq ($(strip $(KEYLOGGER_ENABLE)), yes)
- OPT_DEFS += -DKEYLOGGER_ENABLE
- endif
-endif
-
-ifeq ($(strip $(I2C_SCANNER_ENABLE)), yes)
- OPT_DEFS += -DI2C_SCANNER_ENABLE
- CONSOLE_ENABLE := yes
-endif
-
--include $(USER_PATH)/oled/rules.mk
-
-CUSTOM_POINTING_DEVICE ?= yes
-ifeq ($(strip $(POINTING_DEVICE_ENABLE)), yes)
- ifeq ($(strip $(CUSTOM_POINTING_DEVICE)), yes)
- SRC += $(USER_PATH)/pointing/pointing.c
- OPT_DEFS += -DCUSTOM_POINTING_DEVICE
- OPT_DEFS += -DPOINTING_DEVICE_AUTO_MOUSE_ENABLE
- endif
- POINTING_DEVICE_MOUSE_JIGGLER_ENABLE ?= yes
- ifeq ($(strip $(POINTING_DEVICE_MOUSE_JIGGLER_ENABLE)), yes)
- OPT_DEFS += -DPOINTING_DEVICE_MOUSE_JIGGLER_ENABLE
- endif
-endif
-
-CUSTOM_SPLIT_TRANSPORT_SYNC ?= yes
-ifeq ($(strip $(CUSTOM_SPLIT_TRANSPORT_SYNC)), yes)
- ifeq ($(strip $(SPLIT_KEYBOARD)), yes)
- QUANTUM_LIB_SRC += $(USER_PATH)/split/transport_sync.c
- OPT_DEFS += -DCUSTOM_SPLIT_TRANSPORT_SYNC
- endif
-
-endif
-
-CUSTOM_BOOTMAGIC_ENABLE ?= yes
-ifeq ($(strip $(CUSTOM_BOOTMAGIC_ENABLE)), yes)
- ifeq ($(strip $(BOOTMAGIC_ENABLE)), yes)
- SRC += bootmagic_better.c
- endif
-endif
-
-CUSTOM_DYNAMIC_MACROS_ENABLE ?= no
-ifeq ($(strip $(CUSTOM_DYNAMIC_MACROS_ENABLE)), yes)
- SRC += $(USER_PATH)/keyrecords/dynamic_macros.c
- OPT_DEFS += -DCUSTOM_DYNAMIC_MACROS_ENABLE
-endif
-
-ifeq ($(strip $(HARDWARE_DEBUG_ENABLE)), yes)
- LTO_ENABLE := no
- OPT := 0
- OPT_DEFS += -g
-endif
diff --git a/users/drashna/split/readme.md b/users/drashna/split/readme.md
deleted file mode 100644
index 5dad340122..0000000000
--- a/users/drashna/split/readme.md
+++ /dev/null
@@ -1,29 +0,0 @@
-# Custom Split Transport
-
-To disable the customized split transport, add `CUSTOM_SPLIT_TRANSPORT_SYNC = no` to your `rules.mk`.
-
-This syncs a number of additional settings, such as the keymap_config (magic settings), user eeprom configs, and misc firmware settings.
-
-Additionally, this supports a watchdog timer reset for the secondary split side.
-
-## User State Config
-
-The User states that it sync are:
-
-* Audio Enable status
-* Audio Clicky states
-* Unicode mode
-* Pointing Device tap toggle status
-* Swap Hands status
-* Host Driver status
-
-## Userspace Config
-
-The userspace config states that are synced are:
-
-* RGB layer indication
-* "is overwatch" status
-* nuke switch
-* Swapped numbers
-* RGB Matrix idle animation
-* Autocorrect enable status
diff --git a/users/drashna/split/split_config.h b/users/drashna/split/split_config.h
deleted file mode 100644
index fd8bf95515..0000000000
--- a/users/drashna/split/split_config.h
+++ /dev/null
@@ -1,26 +0,0 @@
-// Copyright 2020 Christopher Courtney, aka Drashna Jael're (@drashna) <drashna@live.com>
-// SPDX-License-Identifier: GPL-2.0-or-later
-
-#pragma once
-
-#define SPLIT_TRANSPORT_MIRROR
-#define SPLIT_LAYER_STATE_ENABLE
-#define SPLIT_LED_STATE_ENABLE
-#define SPLIT_MODS_ENABLE
-#define SPLIT_WATCHDOG_ENABLE
-#define SPLIT_WPM_ENABLE
-#define SPLIT_ACTIVITY_ENABLE
-#define SPLIT_DETECTED_OS_ENABLE
-#define SPLIT_HAPTIC_ENABLE
-#ifdef SPLIT_OLED_ENABLE
-# undef SPLIT_OLED_ENABLE
-#endif
-#if defined(__AVR__) && !defined(SELECT_SOFT_SERIAL_SPEED)
-# define SELECT_SOFT_SERIAL_SPEED 1
-#endif
-#ifdef CUSTOM_SPLIT_TRANSPORT_SYNC
-# define SPLIT_TRANSACTION_IDS_USER RPC_ID_USER_STATE_SYNC, RPC_ID_USER_KEYMAP_SYNC, RPC_ID_USER_CONFIG_SYNC, RPC_ID_USER_PLACEHOLDER, RPC_ID_USER_OLED_KEYLOG_STR
-#endif
-
-#define CRC8_USE_TABLE
-#define CRC8_OPTIMIZE_SPEED
diff --git a/users/drashna/split/transport_sync.c b/users/drashna/split/transport_sync.c
deleted file mode 100644
index d5a1241586..0000000000
--- a/users/drashna/split/transport_sync.c
+++ /dev/null
@@ -1,201 +0,0 @@
-// Copyright 2020 Christopher Courtney, aka Drashna Jael're (@drashna) <drashna@live.com>
-// SPDX-License-Identifier: GPL-2.0-or-later
-
-#include "transport_sync.h"
-#include "transactions.h"
-#include <string.h>
-
-#ifdef UNICODE_COMMON_ENABLE
-# include "process_unicode_common.h"
-extern unicode_config_t unicode_config;
-# include "keyrecords/unicode.h"
-#endif
-#ifdef AUDIO_ENABLE
-# include "audio.h"
-extern audio_config_t audio_config;
-extern bool delayed_tasks_run;
-#endif
-#if defined(POINTING_DEVICE_ENABLE) && defined(KEYBOARD_handwired_tractyl_manuform)
-extern bool tap_toggling;
-#endif
-#ifdef SWAP_HANDS_ENABLE
-extern bool swap_hands;
-#endif
-
-extern userspace_config_t userspace_config;
-
-uint16_t transport_keymap_config = 0;
-uint32_t transport_userspace_config = 0, transport_user_state = 0;
-
-user_runtime_config_t user_state;
-
-void user_state_sync(uint8_t initiator2target_buffer_size, const void* initiator2target_buffer, uint8_t target2initiator_buffer_size, void* target2initiator_buffer) {
- if (initiator2target_buffer_size == sizeof(transport_user_state)) {
- memcpy(&transport_user_state, initiator2target_buffer, initiator2target_buffer_size);
- }
-}
-void user_keymap_sync(uint8_t initiator2target_buffer_size, const void* initiator2target_buffer, uint8_t target2initiator_buffer_size, void* target2initiator_buffer) {
- if (initiator2target_buffer_size == sizeof(transport_keymap_config)) {
- memcpy(&transport_keymap_config, initiator2target_buffer, initiator2target_buffer_size);
- }
-}
-void user_config_sync(uint8_t initiator2target_buffer_size, const void* initiator2target_buffer, uint8_t target2initiator_buffer_size, void* target2initiator_buffer) {
- if (initiator2target_buffer_size == sizeof(transport_userspace_config)) {
- memcpy(&transport_userspace_config, initiator2target_buffer, initiator2target_buffer_size);
- }
-}
-
-#ifdef CUSTOM_OLED_DRIVER
-# include "oled/oled_stuff.h"
-void keylogger_string_sync(uint8_t initiator2target_buffer_size, const void* initiator2target_buffer, uint8_t target2initiator_buffer_size, void* target2initiator_buffer) {
- if (initiator2target_buffer_size == (OLED_KEYLOGGER_LENGTH+1)) {
- memcpy(&oled_keylog_str, initiator2target_buffer, initiator2target_buffer_size);
- }
-}
-#endif
-
-void keyboard_post_init_transport_sync(void) {
- // Register keyboard state sync split transaction
- transaction_register_rpc(RPC_ID_USER_STATE_SYNC, user_state_sync);
- transaction_register_rpc(RPC_ID_USER_KEYMAP_SYNC, user_keymap_sync);
- transaction_register_rpc(RPC_ID_USER_CONFIG_SYNC, user_config_sync);
-#ifdef CUSTOM_OLED_DRIVER
- transaction_register_rpc(RPC_ID_USER_OLED_KEYLOG_STR, keylogger_string_sync);
-#endif
-}
-
-void user_transport_update(void) {
- if (is_keyboard_master()) {
- transport_keymap_config = keymap_config.raw;
- transport_userspace_config = userspace_config.raw;
-#ifdef AUDIO_ENABLE
- user_state.audio_enable = is_audio_on();
- user_state.audio_clicky_enable = is_clicky_on();
-#endif
-#if defined(POINTING_DEVICE_ENABLE) && defined(POINTING_DEVICE_AUTO_MOUSE_ENABLE)
- user_state.tap_toggling = get_auto_mouse_toggle();
-#endif
-#ifdef UNICODE_COMMON_ENABLE
- user_state.unicode_mode = unicode_config.input_mode;
- user_state.unicode_typing_mode = unicode_typing_mode;
-#endif
-#ifdef SWAP_HANDS_ENABLE
- user_state.swap_hands = swap_hands;
-#endif
- user_state.host_driver_disabled = get_keyboard_lock();
-
- transport_user_state = user_state.raw;
- } else {
- keymap_config.raw = transport_keymap_config;
- userspace_config.raw = transport_userspace_config;
- user_state.raw = transport_user_state;
-#ifdef UNICODE_COMMON_ENABLE
- unicode_config.input_mode = user_state.unicode_mode;
- unicode_typing_mode = user_state.unicode_typing_mode;
-#endif
-#if defined(POINTING_DEVICE_ENABLE) && defined(POINTING_DEVICE_AUTO_MOUSE_ENABLE)
- if (get_auto_mouse_toggle() != user_state.tap_toggling) {
- auto_mouse_toggle();
- }
-#endif
-#ifdef SWAP_HANDS_ENABLE
- swap_hands = user_state.swap_hands;
-#endif
- set_keyboard_lock(user_state.host_driver_disabled);
- }
-}
-
-void user_transport_sync(void) {
- if (is_keyboard_master()) {
- // Keep track of the last state, so that we can tell if we need to propagate to slave
- static uint16_t last_keymap = 0;
- static uint32_t last_config = 0, last_sync[4], last_user_state = 0;
- bool needs_sync = false;
-#ifdef CUSTOM_OLED_DRIVER
- static char keylog_temp[OLED_KEYLOGGER_LENGTH + 1] = {0};
-#endif
-
- // Check if the state values are different
- if (memcmp(&transport_user_state, &last_user_state, sizeof(transport_user_state))) {
- needs_sync = true;
- memcpy(&last_user_state, &transport_user_state, sizeof(transport_user_state));
- }
- // Send to slave every 500ms regardless of state change
- if (timer_elapsed32(last_sync[0]) > 250) {
- needs_sync = true;
- }
-
- // Perform the sync if requested
- if (needs_sync) {
- if (transaction_rpc_send(RPC_ID_USER_STATE_SYNC, sizeof(user_state), &user_state)) {
- last_sync[0] = timer_read32();
- }
- needs_sync = false;
- }
-
- // Check if the state values are different
- if (memcmp(&transport_keymap_config, &last_keymap, sizeof(transport_keymap_config))) {
- needs_sync = true;
- memcpy(&last_keymap, &transport_keymap_config, sizeof(transport_keymap_config));
- }
-
- // Send to slave every 500ms regardless of state change
- if (timer_elapsed32(last_sync[1]) > 250) {
- needs_sync = true;
- }
-
- // Perform the sync if requested
- if (needs_sync) {
- if (transaction_rpc_send(RPC_ID_USER_KEYMAP_SYNC, sizeof(transport_keymap_config), &transport_keymap_config)) {
- last_sync[1] = timer_read32();
- }
- needs_sync = false;
- }
-
- // Check if the state values are different
- if (memcmp(&user_state, &last_config, sizeof(transport_userspace_config))) {
- needs_sync = true;
- memcpy(&last_config, &user_state, sizeof(transport_userspace_config));
- }
-
- // Send to slave every 500ms regardless of state change
- if (timer_elapsed32(last_sync[2]) > 250) {
- needs_sync = true;
- }
-
- // Perform the sync if requested
- if (needs_sync) {
- if (transaction_rpc_send(RPC_ID_USER_CONFIG_SYNC, sizeof(transport_userspace_config), &transport_userspace_config)) {
- last_sync[2] = timer_read32();
- }
- needs_sync = false;
- }
-
-#ifdef CUSTOM_OLED_DRIVER
- // Check if the state values are different
- if (memcmp(&oled_keylog_str, &keylog_temp, OLED_KEYLOGGER_LENGTH + 1)) {
- needs_sync = true;
- memcpy(&keylog_temp, &oled_keylog_str, OLED_KEYLOGGER_LENGTH + 1);
- }
- if (timer_elapsed32(last_sync[3]) > 250) {
- needs_sync = true;
- }
-
- // Perform the sync if requested
- if (needs_sync) {
- if (transaction_rpc_send(RPC_ID_USER_OLED_KEYLOG_STR, OLED_KEYLOGGER_LENGTH + 1, &oled_keylog_str)) {
- last_sync[3] = timer_read32();
- }
- needs_sync = false;
- }
-#endif
- }
-}
-
-void housekeeping_task_transport_sync(void) {
- // Update kb_state so we can send to slave
- user_transport_update();
-
- // Data sync from master to slave
- user_transport_sync();
-}
diff --git a/users/drashna/split/transport_sync.h b/users/drashna/split/transport_sync.h
deleted file mode 100644
index d241e5446f..0000000000
--- a/users/drashna/split/transport_sync.h
+++ /dev/null
@@ -1,28 +0,0 @@
-// Copyright 2020 Christopher Courtney, aka Drashna Jael're (@drashna) <drashna@live.com>
-// SPDX-License-Identifier: GPL-2.0-or-later
-
-#pragma once
-
-#include "drashna.h"
-#ifdef OLED_ENABLE
-# include "oled/oled_stuff.h"
-#endif
-
-typedef union {
- uint32_t raw;
- struct {
- bool audio_enable :1;
- bool audio_clicky_enable :1;
- bool tap_toggling :1;
- uint8_t unicode_mode :3;
- bool swap_hands :1;
- bool host_driver_disabled :1;
- uint8_t unicode_typing_mode :3;
- bool is_oled_enabled :1;
- };
-} user_runtime_config_t;
-
-extern user_runtime_config_t user_state;
-
-void keyboard_post_init_transport_sync(void);
-void housekeeping_task_transport_sync(void);
diff --git a/users/drashna/template.c b/users/drashna/template.c
deleted file mode 100644
index c032bd1ce3..0000000000
--- a/users/drashna/template.c
+++ /dev/null
@@ -1,70 +0,0 @@
-// Copyright 2020 Christopher Courtney, aka Drashna Jael're (@drashna) <drashna@live.com>
-// SPDX-License-Identifier: GPL-2.0-or-later
-
-#include "template.h"
-
-// Add reconfigurable functions here, for keymap customization
-// This allows for a global, userspace functions, and continued
-// customization of the keymap. Use _keymap instead of _user
-// functions in the keymaps
-__attribute__((weak)) void matrix_init_keymap(void) {}
-
-// Call user matrix init, then call the keymap's init function
-void matrix_init_user(void) { matrix_init_keymap(); }
-
-__attribute__((weak)) void matrix_scan_keymap(void) {}
-
-// No global matrix scan code, so just run keymap's matix
-// scan function
-void matrix_scan_user(void) { matrix_scan_keymap(); }
-
-__attribute__((weak)) bool process_record_keymap(uint16_t keycode, keyrecord_t *record) { return true; }
-
-// Defines actions tor my global custom keycodes. Defined in drashna.h file
-// Then runs the _keymap's recod handier if not processed here,
-// And use "NEWPLACEHOLDER" for new safe range
-bool process_record_user(uint16_t keycode, keyrecord_t *record) {
- switch (keycode) {
- case VRSN:
- if (record->event.pressed) {
- SEND_STRING(QMK_KEYBOARD "/" QMK_KEYMAP " @ " QMK_VERSION);
- }
- return false;
- break;
- }
- return process_record_keymap(keycode, record);
-}
-
-__attribute__((weak)) layer_state_t layer_state_set_keymap(layer_state_t state) { return state; }
-
-layer_state_t layer_state_set_user(layer_state_t state) { return layer_state_set_keymap(state); }
-
-__attribute__((weak)) void led_set_keymap(uint8_t usb_led) {}
-
-void led_set_user(uint8_t usb_led) { led_set_keymap(usb_led); }
-
-__attribute__((weak)) void suspend_power_down_keymap(void) {}
-
-void suspend_power_down_user(void) { suspend_power_down_keymap(); }
-
-__attribute__((weak)) void suspend_wakeup_init_keymap(void) {}
-
-void suspend_wakeup_init_user(void) {
- suspend_wakeup_init_keymap();
-#ifdef KEYBOARD_ergodox_ez
- wait_ms(10);
-#endif
-}
-
-__attribute__((weak)) void startup_keymap(void) {}
-
-void startup_user(void) {
-#ifdef RGBLIGHT_ENABLE
- matrix_init_rgb();
-#endif // RGBLIGHT_ENABLE
- startup_keymap();
-}
-
-__attribute__((weak)) void shutdown_keymap(void) {}
-
-void shutdown_user(void) { shutdown_keymap(); }
diff --git a/users/drashna/template.h b/users/drashna/template.h
deleted file mode 100644
index bb08bb3e41..0000000000
--- a/users/drashna/template.h
+++ /dev/null
@@ -1,18 +0,0 @@
-// Copyright 2020 Christopher Courtney, aka Drashna Jael're (@drashna) <drashna@live.com>
-// SPDX-License-Identifier: GPL-2.0-or-later
-
-#pragma once
-
-#include QMK_KEYBOARD_H
-#include "version.h"
-#include "eeprom.h"
-
-// Define layer names
-#define BASE 0
-
-enum custom_keycodes {
- VRSN = SAFE_RANGE, // can always be here
- QK_MAKE,
- QK_BOOT,
- NEWPLACEHOLDER // use "NEWPLACEHOLDER for keymap specific codes
-};
diff --git a/users/dshields/config.h b/users/dshields/config.h
deleted file mode 100644
index 83ad32a591..0000000000
--- a/users/dshields/config.h
+++ /dev/null
@@ -1,64 +0,0 @@
-#pragma once
-
-#define RGB_MATRIX_FRAMEBUFFER_EFFECTS
-#define USB_MAX_POWER_CONSUMPTION 100
-#define ONESHOT_TAP_TOGGLE 2
-#define ONESHOT_TIMEOUT 3000
-#define PERMISSIVE_HOLD_PER_KEY
-#define QUICK_TAP_TERM_PER_KEY
-#define TAPPING_TERM 200
-#define BACKLIGHT_BREATHING
-#define DYNAMIC_MACRO_NO_NESTING
-#define BOTH_SHIFTS_TURNS_ON_CAPS_WORD
-
-#define MOUSEKEY_INTERVAL 20
-#define MOUSEKEY_DELAY 0
-#ifndef MOUSEKEY_TIME_TO_MAX
-#define MOUSEKEY_TIME_TO_MAX 40
-#endif
-#define MOUSEKEY_MAX_SPEED 7
-#ifndef MOUSEKEY_WHEEL_DELAY
-#define MOUSEKEY_WHEEL_DELAY 0
-#endif
-
-#undef ENABLE_RGB_MATRIX_ALPHAS_MODS
-#undef ENABLE_RGB_MATRIX_BREATHING
-#undef ENABLE_RGB_MATRIX_BAND_PINWHEEL_SAT
-#undef ENABLE_RGB_MATRIX_BAND_PINWHEEL_VAL
-#undef ENABLE_RGB_MATRIX_BAND_SAT
-#undef ENABLE_RGB_MATRIX_BAND_SPIRAL_SAT
-#undef ENABLE_RGB_MATRIX_BAND_SPIRAL_VAL
-#undef ENABLE_RGB_MATRIX_BAND_VAL
-#undef ENABLE_RGB_MATRIX_CYCLE_ALL
-#undef ENABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT
-#undef ENABLE_RGB_MATRIX_CYCLE_OUT_IN
-#undef ENABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL
-#undef ENABLE_RGB_MATRIX_CYCLE_PINWHEEL
-#undef ENABLE_RGB_MATRIX_CYCLE_SPIRAL
-#undef ENABLE_RGB_MATRIX_CYCLE_UP_DOWN
-#undef ENABLE_RGB_MATRIX_DUAL_BEACON
-#undef ENABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS
-#undef ENABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON
-#undef ENABLE_RGB_MATRIX_RAINBOW_PINWHEELS
-#undef ENABLE_RGB_MATRIX_SOLID_REACTIVE
-#undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS
-#undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS
-#undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS
-#undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS
-#undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS
-#undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS
-#undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS
-#undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS
-#undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE
-#undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE
-#undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE
-#undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE
-#undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE
-#undef ENABLE_RGB_MATRIX_SOLID_SPLASH
-#undef ENABLE_RGB_MATRIX_SOLID_MULTISPLASH
-#undef ENABLE_RGB_MATRIX_SOLID_SPLASH
-#undef ENABLE_RGB_MATRIX_SOLID_MULTISPLASH
-#undef ENABLE_RGB_MATRIX_SPLASH
-#undef ENABLE_RGB_MATRIX_MULTISPLASH
-#undef ENABLE_RGB_MATRIX_SPLASH
-#undef ENABLE_RGB_MATRIX_MULTISPLASH
diff --git a/users/dshields/dshields.c b/users/dshields/dshields.c
deleted file mode 100644
index a8e1333104..0000000000
--- a/users/dshields/dshields.c
+++ /dev/null
@@ -1,57 +0,0 @@
-#include "quantum.h"
-#include "dshields.h"
-
-bool process_record_user(uint16_t keycode, keyrecord_t *record) {
- if ((keycode >= QK_MOD_TAP && keycode <= QK_MOD_TAP_MAX)
- || (keycode >= QK_LAYER_TAP && keycode <= QK_LAYER_TAP_MAX)
- || (keycode >= QK_MODS && keycode <= QK_MODS_MAX)) {
- keycode = keycode & 0xFF;
- }
- if (keycode == KC_ESC && record->event.pressed) {
- bool rc = true;
- uint8_t mods = 0;
- if ((mods = get_oneshot_mods()) && !has_oneshot_mods_timed_out()) {
- clear_oneshot_mods();
- unregister_mods(mods);
- rc = false;
- }
- if ((mods = get_oneshot_locked_mods())) {
- clear_oneshot_locked_mods();
- unregister_mods(mods);
- rc = false;
- }
- if (is_oneshot_layer_active()) {
- layer_clear();
- rc = false;
- }
- return rc;
- }
- return true;
-}
-
-uint16_t get_quick_tap_term(uint16_t keycode, keyrecord_t *record) {
- switch (keycode) {
- case MT_A:
- case MT_S:
- case MT_D:
- case MT_F:
- case MT_J:
- case MT_K:
- case MT_L:
- case MT_SCLN:
- return 0;
- default:
- return QUICK_TAP_TERM;
- }
-}
-
-bool get_permissive_hold(uint16_t keycode, keyrecord_t *record) {
- switch (keycode) {
- case MT_SPC:
- case MT_BSPC:
- case MT_ESC:
- return true;
- default:
- return false;
- }
-}
diff --git a/users/dshields/dshields.h b/users/dshields/dshields.h
deleted file mode 100644
index 4dd5db66bf..0000000000
--- a/users/dshields/dshields.h
+++ /dev/null
@@ -1,65 +0,0 @@
-#pragma once
-
-// one-shot layer keys
-#define OSL_RSE OSL(RSE)
-#define OSL_LWR OSL(LWR)
-#define OSL_FUN OSL(FUN)
-
-// one-shot modifier keys
-#define OSMLCTL OSM(MOD_LCTL)
-#define OSMRCTL OSM(MOD_RCTL)
-#define OSMLALT OSM(MOD_LALT)
-#define OSMRALT OSM(MOD_RALT)
-#define OSMLSFT OSM(MOD_LSFT)
-#define OSMRSFT OSM(MOD_RSFT)
-
-// mod-tap keys
-#define MT_SPC SFT_T(KC_SPC)
-#define MT_BSPC SFT_T(KC_BSPC)
-#define MT_ESC LGUI_T(KC_ESC)
-#define MT_A LGUI_T(KC_A)
-#define MT_S LALT_T(KC_S)
-#define MT_D LSFT_T(KC_D)
-#define MT_F LCTL_T(KC_F)
-#define MT_J RCTL_T(KC_J)
-#define MT_K RSFT_T(KC_K)
-#define MT_L RALT_T(KC_L)
-#define MT_SCLN RGUI_T(KC_SCLN)
-
-// layer-tap keys
-#if defined KEYBOARD_planck_light \
- || defined KEYBOARD_planck_rev3 \
- || defined KEYBOARD_planck_rev6 \
- || defined KEYBOARD_keyboardio_atreus
- #define LT_G LT(LWR, KC_G)
- #define LT_H LT(RSE, KC_H)
-#elif defined KEYBOARD_keyboardio_model01
- #define LT_G LT(FUN, KC_G)
- #define LT_H LT(FUN, KC_H)
-#else
- #define LT_G KC_G
- #define LT_H KC_H
-#endif
-
-// LED/RGB controls
-#if defined KEYBOARD_planck_light
- #define LGT_TOG RGB_TOG
- #define LGT_MOD RGB_MOD
- #define LGT_BRT _______
- #define LGT_INC RGB_HUI
- #define LGT_DEC RGB_HUD
-#elif defined KEYBOARD_planck_rev3
- #define LGT_TOG BL_TOGG
- #define LGT_MOD BL_STEP
- #define LGT_BRT BL_BRTG
- #define LGT_INC BL_UP
- #define LGT_DEC BL_DOWN
-#else
- #define LGT_TOG _______
- #define LGT_MOD _______
- #define LGT_BRT _______
- #define LGT_INC _______
- #define LGT_DEC _______
-#endif
-
-enum layers { DEF, LWR, RSE, FUN };
diff --git a/users/dshields/rules.mk b/users/dshields/rules.mk
deleted file mode 100644
index 6cf8de48f7..0000000000
--- a/users/dshields/rules.mk
+++ /dev/null
@@ -1,31 +0,0 @@
-SRC += dshields.c
-
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-COMMAND_ENABLE = no # Commands for debug and configuration
-CONSOLE_ENABLE = no # Console for debug(+400)
-EXTRAKEY_ENABLE = no
-SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
-SPACE_CADET_ENABLE = no
-LEADER_ENABLE = no
-DYNAMIC_MACRO_ENABLE = yes
-
-LTO_ENABLE = yes
-CAPS_WORD_ENABLE = yes
-
-ifeq ($(strip $(KEYBOARD)), planck/rev3)
- AUDIO_ENABLE = no
- BACKLIGHT_ENABLE = yes
- RGB_MATRIX_ENABLE = no
-endif
-ifeq ($(strip $(KEYBOARD)), planck/rev6)
- CFLAGS += -Wno-error=deprecated
- EXTRALDFLAGS = -Wl,--build-id=none
- AUDIO_ENABLE = no
- BACKLIGHT_ENABLE = no
- RGB_MATRIX_ENABLE = no
-endif
-ifeq ($(strip $(KEYBOARD)), planck/light)
- AUDIO_ENABLE = yes
- BACKLIGHT_ENABLE = no
- RGB_MATRIX_ENABLE = yes
-endif
diff --git a/users/dudeofawesome/dudeofawesome.c b/users/dudeofawesome/dudeofawesome.c
deleted file mode 100644
index 5a9117b029..0000000000
--- a/users/dudeofawesome/dudeofawesome.c
+++ /dev/null
@@ -1 +0,0 @@
-#include "dudeofawesome.h"
diff --git a/users/dudeofawesome/dudeofawesome.h b/users/dudeofawesome/dudeofawesome.h
deleted file mode 100644
index dbbbd21ede..0000000000
--- a/users/dudeofawesome/dudeofawesome.h
+++ /dev/null
@@ -1,29 +0,0 @@
-#ifndef USERSPACE
-#define USERSPACE
-
-#ifdef TAPPING_TOGGLE
-#undef TAPPING_TOGGLE
-#endif
-#define TAPPING_TOGGLE 2
-
-#ifdef AUDIO_ENABLE
- #ifdef WORKMAN_SOUND
- #undef WORKMAN_SOUND
- #endif
-
- #define WORKMAN_SOUND \
- E__NOTE(_GS7), \
- ED_NOTE(_E7), \
- S__NOTE(_REST), \
- E__NOTE(_A6), \
- S__NOTE(_REST), \
- ED_NOTE(_GS6),
-
- #define NUMPAD_ON_SOUND \
- E__NOTE(_C6), \
- ED_NOTE(_BF5), \
- S__NOTE(_C6), \
- ED_NOTE(_BF5),
-#endif
-
-#endif
diff --git a/users/dudeofawesome/rules.mk b/users/dudeofawesome/rules.mk
deleted file mode 100644
index b99697b586..0000000000
--- a/users/dudeofawesome/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-SRC += dudeofawesome.c
diff --git a/users/dvorak_42_key/config.h b/users/dvorak_42_key/config.h
deleted file mode 100644
index b6f9918770..0000000000
--- a/users/dvorak_42_key/config.h
+++ /dev/null
@@ -1,8 +0,0 @@
-// Copyright 2022 LucW (@luc-languagetools)
-// SPDX-License-Identifier: GPL-2.0-or-later
-
-#pragma once
-
-#define DOUBLE_TAP_SHIFT_TURNS_ON_CAPS_WORD
-#undef TAPPING_TERM
-#define TAPPING_TERM 175 \ No newline at end of file
diff --git a/users/dvorak_42_key/dvorak_42_key.c b/users/dvorak_42_key/dvorak_42_key.c
deleted file mode 100644
index 99cfd8cb7d..0000000000
--- a/users/dvorak_42_key/dvorak_42_key.c
+++ /dev/null
@@ -1,205 +0,0 @@
-// Copyright 2022 LucW (@luc-languagetools)
-// SPDX-License-Identifier: GPL-2.0-or-later
-
-#include "dvorak_42_key.h"
-
-bool process_record_user(uint16_t keycode, keyrecord_t *record) {
- // tap dance processing
- tap_dance_action_t *action;
- switch (keycode) {
- case TD(TD_DEL_WORD_DEL): // list all tap dance keycodes with tap-hold configurations
- action = &tap_dance_actions[TD_INDEX(keycode)];
- if (!record->event.pressed && action->state.count && !action->state.finished) {
- tap_dance_tap_hold_t *tap_hold = (tap_dance_tap_hold_t *)action->user_data;
- tap_code16(tap_hold->tap);
- }
- }
-
- // shell macros
- if(record->event.pressed) {
- switch (keycode) {
- case SHELL_LS:
- SEND_STRING("ls\n");
- break;
- case SHELL_LSLTR:
- SEND_STRING("ls -ltr\n");
- break;
- case SHELL_LSLA:
- SEND_STRING("ls -la\n");
- break;
- case SHELL_CDPRE:
- SEND_STRING("cd ..\n");
- break;
- case SHELL_LESS:
- SEND_STRING("less ");
- break;
- case SHELL_PLESS:
- SEND_STRING(" | less");
- break;
- case SHELL_PGREP:
- SEND_STRING(" | grep ");
- return true;
- break;
- case SHELL_TAILF:
- SEND_STRING("tail -f ");
- break;
- case SHELL_SCREENRD:
- SEND_STRING("screen -r -d ");
- break;
- case SHELL_SCREEN_NEW:
- SEND_STRING("screen -S ");
- break;
- case SHELL_SCREEN_LIST:
- SEND_STRING("screen -list\n");
- break;
-
- case SHELL_GIT_DIFF:
- SEND_STRING("git diff\n");
- break;
-
- case SHELL_GIT_STATUS:
- SEND_STRING("git status\n");
- break;
-
- case WINDOWS10_WORKSPACE_LEFT:
- tap_code16(C(G(KC_LEFT)));
- break;
- case WINDOWS10_WORKSPACE_RIGHT:
- tap_code16(C(G(KC_RIGHT)));
- break;
- case WINDOWS10_TASK_VIEW:
- tap_code16(G(KC_TAB));
- break;
- // linux screen shortcuts
- case SCREEN_TAB_LEFT:
- SEND_STRING(SS_LCTL("a") "p");
- break;
- case SCREEN_TAB_RIGHT:
- SEND_STRING(SS_LCTL("a") "n");
- break;
- case SCREEN_NEW_TAB:
- SEND_STRING(SS_LCTL("a") "c");
- break;
- case SCREEN_DETACH:
- SEND_STRING(SS_LCTL("a") "d");
- break;
- case SCREEN_RENAME:
- SEND_STRING(SS_LCTL("a") "A");
- break;
- case SCREEN_NUMBER:
- SEND_STRING(SS_LCTL("a") ":number ");
- break;
- case SCREEN_0:
- SEND_STRING(SS_LCTL("a") "0");
- break;
- case SCREEN_1:
- SEND_STRING(SS_LCTL("a") "1");
- break;
- case SCREEN_2:
- SEND_STRING(SS_LCTL("a") "2");
- break;
- case SCREEN_3:
- SEND_STRING(SS_LCTL("a") "3");
- break;
- case SCREEN_4:
- SEND_STRING(SS_LCTL("a") "4");
- break;
- case SCREEN_5:
- SEND_STRING(SS_LCTL("a") "5");
- break;
- case SCREEN_6:
- SEND_STRING(SS_LCTL("a") "6");
- break;
- case SCREEN_7:
- SEND_STRING(SS_LCTL("a") "7");
- break;
- case SCREEN_8:
- SEND_STRING(SS_LCTL("a") "8");
- break;
- case SCREEN_9:
- SEND_STRING(SS_LCTL("a") "9");
- break;
- case SCREEN_COPY_MODE:
- SEND_STRING(SS_LCTL("a") "[");
- break;
- case SCREEN_PASTE:
- SEND_STRING(SS_LCTL("a") "]");
- break;
- case SCREEN_KILL:
- SEND_STRING(SS_LCTL("a") "ky");
- break;
- case SCREEN_READREG_1:
- SEND_STRING(SS_LCTL("a") ":readreg 1\n");
- break;
- case SCREEN_READREG_2:
- SEND_STRING(SS_LCTL("a") ":readreg 2\n");
- break;
- case SCREEN_READREG_3:
- SEND_STRING(SS_LCTL("a") ":readreg 3\n");
- break;
-
- case SCREEN_PASTEREG_1:
- SEND_STRING(SS_LCTL("a") ":paste 1\n");
- break;
- case SCREEN_PASTEREG_2:
- SEND_STRING(SS_LCTL("a") ":paste 2\n");
- break;
- case SCREEN_PASTEREG_3:
- SEND_STRING(SS_LCTL("a") ":paste 3\n");
- break;
- }
- }
-
- return true;
-}
-
-
-bool caps_word_press_user(uint16_t keycode) {
- switch (keycode) {
- // Keycodes that continue Caps Word, with shift applied.
- case KC_A ... KC_Z:
- add_weak_mods(MOD_BIT(KC_LSFT)); // Apply shift to next key.
- return true;
-
- default:
- return false; // Deactivate Caps Word.
- }
-}
-
-
-void tap_dance_tap_hold_finished(tap_dance_state_t *state, void *user_data) {
- tap_dance_tap_hold_t *tap_hold = (tap_dance_tap_hold_t *)user_data;
-
- if (state->pressed) {
- if (state->count == 1
-#ifndef PERMISSIVE_HOLD
- && !state->interrupted
-#endif
- ) {
- register_code16(tap_hold->hold);
- tap_hold->held = tap_hold->hold;
- } else {
- register_code16(tap_hold->tap);
- tap_hold->held = tap_hold->tap;
- }
- }
-}
-
-void tap_dance_tap_hold_reset(tap_dance_state_t *state, void *user_data) {
- tap_dance_tap_hold_t *tap_hold = (tap_dance_tap_hold_t *)user_data;
-
- if (tap_hold->held) {
- unregister_code16(tap_hold->held);
- tap_hold->held = 0;
- }
-}
-
-
-// Tap Dance definitions
-tap_dance_action_t tap_dance_actions[] = {
- // Tap once for Escape, twice for Caps Lock
- // [TD_BSPC_CTL_BSPC] = ACTION_TAP_DANCE_DOUBLE(KC_BSPC, RCTL(KC_BSPC)),
- // [TD_BSPC_CTL_BSPC_IOS] = ACTION_TAP_DANCE_DOUBLE(KC_BSPC, LALT(KC_BSPC)),
- [TD_DEL_WORD_DEL] = ACTION_TAP_DANCE_TAP_HOLD(RCTL(KC_BSPC), KC_BSPC),
- [TD_DEL_WORD_DEL_IOS] = ACTION_TAP_DANCE_TAP_HOLD(LALT(KC_BSPC), KC_BSPC)
-}; \ No newline at end of file
diff --git a/users/dvorak_42_key/dvorak_42_key.h b/users/dvorak_42_key/dvorak_42_key.h
deleted file mode 100644
index 4a3c34ba52..0000000000
--- a/users/dvorak_42_key/dvorak_42_key.h
+++ /dev/null
@@ -1,161 +0,0 @@
-// Copyright 2022 LucW (@luc-languagetools)
-// SPDX-License-Identifier: GPL-2.0-or-later
-
-#pragma once
-
-#include "quantum.h"
-
-// LAYERS
-// ======
-
-enum layer_names {
- BASE, // base dvorak layer
- KEYNAV, // arrow navigation (right hand)
- KEYSEL, // arrow navigation + shift (allow text selection)
- SHELL_NAV, // bash shortcuts
- SHELL_SCREEN, // linux screen shortcuts
- BROWSER_CONTROL, // control browser and mouse
- COMBINED, // combined numbers and symbols layer
- ANDROID_STUDIO, // android studio specific layer
- VSCODE, // visual studio code specific layer
- SHORTCUTS, // shortcuts to be intercepted by autohotkey
-};
-
-enum custom_keycodes {
- PLACEHOLDER = SAFE_RANGE, // can always be here
-
- // shell nav macros
- SHELL_LS,
- SHELL_LSLTR,
- SHELL_LSLA,
- SHELL_CDPRE,
- SHELL_LESS,
- SHELL_PLESS,
- SHELL_PGREP,
- SHELL_TAILF,
-
- SHELL_SCREENRD,
- SHELL_SCREEN_NEW,
- SHELL_SCREEN_LIST,
-
- SHELL_GIT_DIFF,
- SHELL_GIT_STATUS,
-
- // linux screen macros
- SCREEN_TAB_LEFT,
- SCREEN_TAB_RIGHT,
-
- SCREEN_NEW_TAB,
- SCREEN_DETACH,
- SCREEN_RENAME,
- SCREEN_NUMBER,
- SCREEN_KILL,
-
- SCREEN_0,
- SCREEN_1,
- SCREEN_2,
- SCREEN_3,
- SCREEN_4,
- SCREEN_5,
- SCREEN_6,
- SCREEN_7,
- SCREEN_8,
- SCREEN_9,
-
- SCREEN_COPY_MODE,
- SCREEN_PASTE,
-
- SCREEN_READREG_1,
- SCREEN_READREG_2,
- SCREEN_READREG_3,
- SCREEN_PASTEREG_1,
- SCREEN_PASTEREG_2,
- SCREEN_PASTEREG_3,
-
- // Windows 10 macros
- WINDOWS10_WORKSPACE_LEFT,
- WINDOWS10_WORKSPACE_RIGHT,
- WINDOWS10_TASK_VIEW,
-
-};
-
-
-
-
-
-
-// Notepad++ shortcuts
-// ===================
-#define NP_DUPE_LINE LCTL(KC_D)
-
-// ChromeOS shortcuts
-// ==================
-#define CO_WS_LEFT RGUI(KC_LBRC)
-#define CO_WS_RIGHT RGUI(KC_RBRC)
-
-
-// Android Studio shortcuts
-#define AS_TABLEFT LALT(KC_LEFT)
-#define AS_TABRIGHT LALT(KC_RIGHT)
-#define AS_SYMBOL LCTL(LALT(KC_N))
-#define AS_CLASS LCTL(KC_N)
-#define AS_FINDUSAGE LALT(KC_F7)
-#define AS_BACK LCTL(LALT(KC_LEFT))
-#define AS_BRACKET LCTL(LSFT(KC_M))
-#define AS_GO_DECLARATION LCTL(KC_B)
-#define AS_GO_IMPLEMENTATION LCTL(LALT(KC_B))
-#define AS_CLOSETAB LCTL(KC_F4)
-#define AS_CLOSETOOLWINDOW LCTL(LSFT(KC_F4))
-#define AS_COPYLINEDOWN LCTL(KC_D)
-#define AS_DEL_LINE LCTL(KC_Y)
-#define AS_LINE LCTL(KC_G)
-#define AS_CMT_BLOCK LCTL(LSFT(KC_SLSH))
-#define AS_CMT_LINE LCTL(KC_SLSH)
-#define AS_BM_PREV LALT(KC_P)
-#define AS_BM_NEXT LALT(KC_N)
-#define AS_BM_TOGGLE KC_F11
-#define AS_BM_LIST LSFT(KC_F11)
-
-// visual studio code shortcuts
-// ============================
-
-#include "vscode_macros.h"
-
-// unused vscode shortcuts
-// #define VS_BM_LIST LCTL(LALT(KC_L))
-// #define VS_BM_LISTALL LCTL(LALT(KC_A))
-// #define VS_BM_CLEARALL LCTL(LALT(KC_C))
-
-// #define VS_TERMINAL_PREV MEH(KC_F12)
-// #define VS_TERMINAL_NEXT MEH(KC_F13)
-// #define VS_TERMINAL_NEW MEH(KC_F14)
-// #define VS_TERMINAL_DETACH MEH(KC_F15)
-// #define VS_TERMINAL_RENAME MEH(KC_F16)
-// #define VS_JUMPY MEH(KC_F17)
-// #define VS_FIND MEH(KC_F19)
-// #define VS_CLOSEPANEL LCTL(LSFT(KC_W))
-// #define VS_BUILD LCTL(LSFT(KC_B))
-// #define VS_OPEN_FILE MEH(KC_F2)
-// #define VS_TERMINAL MEH(KC_F15)
-
-
-
-
-// tap-dance configuration
-// =======================
-
-enum {
- // TD_BSPC_CTL_BSPC,
- // TD_BSPC_CTL_BSPC_IOS,
- TD_DEL_WORD_DEL,
- TD_DEL_WORD_DEL_IOS
-};
-
-typedef struct {
- uint16_t tap;
- uint16_t hold;
- uint16_t held;
-} tap_dance_tap_hold_t;
-
-#define ACTION_TAP_DANCE_TAP_HOLD(tap, hold) \
- { .fn = {NULL, tap_dance_tap_hold_finished, tap_dance_tap_hold_reset}, .user_data = (void *)&((tap_dance_tap_hold_t){tap, hold, 0}), }
diff --git a/users/dvorak_42_key/rules.mk b/users/dvorak_42_key/rules.mk
deleted file mode 100644
index f1ba426225..0000000000
--- a/users/dvorak_42_key/rules.mk
+++ /dev/null
@@ -1,7 +0,0 @@
-# Copyright 2022 LucW (@luc-languagetools)
-# SPDX-License-Identifier: GPL-2.0-or-later
-
-CAPS_WORD_ENABLE = yes
-TAP_DANCE_ENABLE = yes
-
-SRC += dvorak_42_key.c \ No newline at end of file
diff --git a/users/dvorak_42_key/vscode_macros.h b/users/dvorak_42_key/vscode_macros.h
deleted file mode 100644
index 529f148d06..0000000000
--- a/users/dvorak_42_key/vscode_macros.h
+++ /dev/null
@@ -1,35 +0,0 @@
-// Copyright 2022 LucW (@luc-languagetools)
-// SPDX-License-Identifier: GPL-2.0-or-later
-
-#pragma once
-#define VS_COMMANDS MEH(KC_B) // workbench.action.showCommands
-#define VS_LINE MEH(KC_C) // workbench.action.gotoLine
-#define VS_DEFINITION MEH(KC_E) // editor.action.revealDefinition
-#define VS_IMPLEMENTATION MEH(KC_F) // editor.action.goToImplementation
-#define VS_REFERENCES MEH(KC_G) // editor.action.goToReferences
-#define VS_BACK MEH(KC_H) // workbench.action.navigateBack
-#define VS_BRACKET MEH(KC_I) // editor.action.jumpToBracket
-#define VS_TABLEFT MEH(KC_J) // workbench.action.previousEditor
-#define VS_TABRIGHT MEH(KC_K) // workbench.action.nextEditor
-#define VS_CLOSETAB MEH(KC_L) // workbench.action.closeActiveEditor
-#define VS_GROUP_1 MEH(KC_M) // workbench.action.focusFirstEditorGroup
-#define VS_GROUP_2 MEH(KC_N) // workbench.action.focusSecondEditorGroup
-#define VS_CMT_BLOCK MEH(KC_O) // editor.action.blockComment
-#define VS_CMT_LINE MEH(KC_P) // editor.action.commentLine
-#define VS_DEL_LINE MEH(KC_Q) // editor.action.deleteLines
-#define VS_COPYLINEDOWN MEH(KC_R) // editor.action.copyLinesDownAction
-#define VS_BM_PREV MEH(KC_S) // bookmarks.jumpToPrevious
-#define VS_BM_NEXT MEH(KC_T) // bookmarks.jumpToNext
-#define VS_BM_TOGGLE MEH(KC_U) // bookmarks.toggle
-#define VS_BM_CLEARALL MEH(KC_V) // bookmarks.clearFromAllFiles
-#define VS_BM_LIST MEH(KC_W) // bookmarks.list
-#define VS_BM_LISTALL MEH(KC_X) // bookmarks.listFromAllFiles
-#define VS_JUMPY MEH(KC_Y) // extension.jumpy-word
-#define VS_FOCUS_EDITOR MEH(KC_Z) // workbench.action.focusActiveEditorGroup
-#define VS_FOCUS_TERMINAL MEH(KC_0) // workbench.action.terminal.focus
-#define VS_TOGGLE_TERMINAL MEH(KC_1) // workbench.action.terminal.toggleTerminal
-#define VS_DEL_LEFT MEH(KC_2) // deleteAllLeft
-#define VS_DEL_RIGHT MEH(KC_3) // deleteAllRight
-#define VS_FIND_FILES MEH(KC_4) // workbench.action.findInFiles
-#define VS_FILE MEH(KC_5) // workbench.action.quickOpen
-#define VS_SYMBOLEDITOR MEH(KC_6) // workbench.action.gotoSymbol
diff --git a/users/edvorakjp/edvorakjp.c b/users/edvorakjp/edvorakjp.c
deleted file mode 100644
index 3d3b5b0ae5..0000000000
--- a/users/edvorakjp/edvorakjp.c
+++ /dev/null
@@ -1,22 +0,0 @@
-#include "edvorakjp.h"
-
-void matrix_init_user(void) {
- edvorakjp_status_init();
- matrix_init_keymap();
-}
-
-__attribute__((weak)) void matrix_init_keymap(void) {}
-
-layer_state_t layer_state_set_user(layer_state_t state) {
- state = update_tri_layer_state(state, L_EDVORAKJP_LOWER, L_EDVORAKJP_RAISE, L_EDVORAKJP_ADJUST);
- return layer_state_set_keymap(state);
-}
-
-__attribute__((weak)) layer_state_t layer_state_set_keymap(layer_state_t state) { return state; }
-
-bool process_record_user(uint16_t keycode, keyrecord_t *record) {
- bool process_record_user_result = process_record_keymap(keycode, record) && process_record_edvorakjp_swap_scln(keycode, record) && process_record_edvorakjp_config(keycode, record) && process_record_layer(keycode, record) && process_record_ime(keycode, record);
- return process_record_user_result;
-}
-
-__attribute__((weak)) bool process_record_keymap(uint16_t keycode, keyrecord_t *record) { return true; }
diff --git a/users/edvorakjp/edvorakjp.h b/users/edvorakjp/edvorakjp.h
deleted file mode 100644
index e3a94ca6a7..0000000000
--- a/users/edvorakjp/edvorakjp.h
+++ /dev/null
@@ -1,90 +0,0 @@
-#pragma once
-
-#include "quantum.h"
-#include "action_layer.h"
-
-#define EECONFIG_EDVORAK (uint8_t *)20
-
-// clang-format off
-#define __EDVORAKJP_BASE_L1__ KC_QUOTE, KC_COMMA, KC_DOT, KC_Y, KC_Q
-#define __EDVORAKJP_BASE_L2__ KC_A, LALT_T(KC_O), LGUI_T(KC_E), LCTL_T(KC_I), KC_U
-#define __EDVORAKJP_BASE_L3__ KC_SCLN, KC_X, KC_C, KC_V, KC_Z
-
-#define __EDVORAKJP_BASE_R1__ KC_F, KC_G, KC_R, KC_W, KC_P
-#define __EDVORAKJP_BASE_R2__ KC_D, RSFT_T(KC_T), RGUI_T(KC_N), RALT_T(KC_S), KC_M
-#define __EDVORAKJP_BASE_R3__ KC_H, KC_J, KC_K, KC_L, KC_B
-
-#define __EDVORAKJP_NUMBER_L__ KC_1, LALT_T(KC_2), LGUI_T(KC_3), LCTL_T(KC_4), KC_5
-#define __EDVORAKJP_NUMBER_R__ KC_6, RSFT_T(KC_7), RGUI_T(KC_8), RALT_T(KC_9), KC_0
-
-#define __EDVORAKJP_FUNCTION_L__ KC_F1, KC_F2, LALT_T(KC_F3), LGUI_T(KC_F4), LCTL_T(KC_F5), KC_F6
-#define __EDVORAKJP_FUNCTION_R__ KC_F7, RSFT_T(KC_F8), RGUI_T(KC_F9), RALT_T(KC_F10), KC_F11, KC_F12
-
-#define __EDVORAKJP_SYMBOL_L__ KC_EXCLAIM, KC_AT, KC_HASH, KC_DOLLAR
-#define __EDVORAKJP_SYMBOL_R__ KC_PERCENT, KC_CIRCUMFLEX, KC_AMPERSAND, KC_ASTERISK
-
-#define __EDVORAKJP_BRACKET_L__ KC_LEFT_CURLY_BRACE, KC_LBRC, KC_LEFT_PAREN
-#define __EDVORAKJP_BRACKET_R__ KC_RIGHT_PAREN, KC_RBRC, KC_RIGHT_CURLY_BRACE
-
-#define __EDVORAKJP_PAGE__ KC_HOME, KC_PGDN, KC_PGUP, KC_END
-#define __EDVORAKJP_CURSOR__ KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT
-
-#define LA_TAB LALT_T(KC_TAB)
-#define LS_SPC LSFT_T(KC_SPACE)
-#define RC_BSPC RCTL_T(KC_BACKSPACE)
-#define RC_DEL RCTL_T(KC_DELETE)
-#define RG_ENT RGUI_T(KC_ENTER)
-
-#define LOWER_TD TD(TD_EDVORAKJP_LOWER)
-#define RAISE_TD TD(TD_EDVORAKJP_RAISE)
-// clang-format on
-
-extern keymap_config_t keymap_config;
-
-enum edvorakjp_layers {
- L_EDVORAKJP_BASE = 0,
- L_EDVORAKJP_LOWER,
- L_EDVORAKJP_RAISE,
- L_EDVORAKJP_ADJUST,
- L_EDVORAKJP_EXTRA,
-};
-
-enum edvorakjp_keycodes {
- KC_EDVORAKJP_LOWER = SAFE_RANGE,
- KC_EDVORAKJP_RAISE,
- KC_MAC,
- KC_WIN,
- KC_JPN,
- KC_ENG,
- NEW_SAFE_RANGE,
-};
-
-enum tap_dance_code {
- TD_EDVORAKJP_LOWER = 0,
- TD_EDVORAKJP_RAISE,
-};
-
-// base
-void matrix_init_user(void);
-void matrix_init_keymap(void);
-layer_state_t layer_state_set_user(layer_state_t state);
-layer_state_t layer_state_set_keymap(layer_state_t state);
-bool process_record_user(uint16_t keycode, keyrecord_t *record);
-bool process_record_keymap(uint16_t keycode, keyrecord_t *record);
-
-// status
-void edvorakjp_status_init(void);
-bool get_enable_kc_lang(void);
-void set_enable_kc_lang(bool new_state);
-bool get_japanese_mode(void);
-void set_japanese_mode(bool new_state);
-
-/*
- * Each process_record_* methods defined here are
- * return false if processed, or return true if not processed.
- * You can add your original macros in process_record_keymap() in keymap.c.
- */
-bool process_record_edvorakjp_swap_scln(uint16_t keycode, keyrecord_t *record);
-bool process_record_edvorakjp_config(uint16_t keycode, keyrecord_t *record);
-bool process_record_layer(uint16_t keycode, keyrecord_t *record);
-bool process_record_ime(uint16_t keycode, keyrecord_t *record);
diff --git a/users/edvorakjp/edvorakjp_process_record.c b/users/edvorakjp/edvorakjp_process_record.c
deleted file mode 100644
index ac821c3935..0000000000
--- a/users/edvorakjp/edvorakjp_process_record.c
+++ /dev/null
@@ -1,89 +0,0 @@
-#include "edvorakjp.h"
-
-#if TAP_DANCE_ENABLE != yes
-static uint16_t time_on_pressed;
-#endif
-/*
- * Each process_record_* methods defined here are
- * return false if handle edvorak_keycodes, or return true others.
- */
-bool process_record_edvorakjp_swap_scln(uint16_t keycode, keyrecord_t *record) {
-#ifdef SWAP_SCLN
- static const uint8_t shift_bits = MOD_BIT(KC_LSFT) | MOD_BIT(KC_RSFT);
- static uint8_t last_mods_status;
- if (keycode == KC_SCLN) {
- if (record->event.pressed) {
- last_mods_status = get_mods();
-
- // invert shift_bits
- if (last_mods_status & shift_bits) {
- set_mods(last_mods_status & ~shift_bits);
- } else {
- set_mods(last_mods_status | MOD_BIT(KC_LSFT));
- }
- } else {
- set_mods(last_mods_status);
- last_mods_status = 0;
- }
- }
-#endif
- return true;
-}
-
-bool process_record_edvorakjp_config(uint16_t keycode, keyrecord_t *record) {
- switch (keycode) {
- case KC_MAC:
- case KC_WIN:
- if (record->event.pressed) {
- set_enable_kc_lang(keycode == KC_MAC);
- }
- return false;
- }
- return true;
-}
-
-bool process_record_layer(uint16_t keycode, keyrecord_t *record) {
-#if TAP_DANCE_ENABLE != yes
- switch (keycode) {
- case KC_EDVORAKJP_LOWER:
- if (record->event.pressed) {
- layer_on(L_EDVORAKJP_LOWER);
- time_on_pressed = record->event.time;
- } else {
- layer_off(L_EDVORAKJP_LOWER);
-
- if (TIMER_DIFF_16(record->event.time, time_on_pressed) < TAPPING_TERM) {
- set_japanese_mode(false);
- }
- time_on_pressed = 0;
- }
- return false;
- case KC_EDVORAKJP_RAISE:
- if (record->event.pressed) {
- layer_on(L_EDVORAKJP_RAISE);
- time_on_pressed = record->event.time;
- } else {
- layer_off(L_EDVORAKJP_RAISE);
-
- if (TIMER_DIFF_16(record->event.time, time_on_pressed) < TAPPING_TERM) {
- set_japanese_mode(true);
- }
- time_on_pressed = 0;
- }
- return false;
- }
-#endif
- return true;
-}
-
-bool process_record_ime(uint16_t keycode, keyrecord_t *record) {
- switch (keycode) {
- case KC_JPN:
- case KC_ENG:
- if (record->event.pressed) {
- set_japanese_mode(keycode == KC_JPN);
- }
- return false;
- }
- return true;
-}
diff --git a/users/edvorakjp/edvorakjp_status.c b/users/edvorakjp/edvorakjp_status.c
deleted file mode 100644
index 851422ede5..0000000000
--- a/users/edvorakjp/edvorakjp_status.c
+++ /dev/null
@@ -1,56 +0,0 @@
-#include "eeprom.h"
-#include "edvorakjp.h"
-
-typedef union {
- uint8_t raw;
- struct {
- bool enable_kc_lang; // for macOS
- };
-} edvorakjp_config_t;
-static edvorakjp_config_t edvorakjp_config;
-
-typedef struct {
- bool japanese_mode;
-} edvorakjp_state_t;
-static edvorakjp_state_t edvorakjp_state;
-
-/*
- * private methods
- */
-uint8_t eeconfig_read_edvorakjp(void) { return eeprom_read_byte(EECONFIG_EDVORAK); }
-
-void eeconfig_update_edvorakjp(uint8_t val) { eeprom_update_byte(EECONFIG_EDVORAK, val); }
-
-/*
- * public methods
- */
-void edvorakjp_status_init(void) {
- edvorakjp_state.japanese_mode = false;
- edvorakjp_config.raw = eeconfig_read_edvorakjp();
-}
-
-bool get_enable_kc_lang(void) { return edvorakjp_config.enable_kc_lang; }
-
-void set_enable_kc_lang(bool new_state) {
- edvorakjp_config.enable_kc_lang = new_state;
- eeconfig_update_edvorakjp(edvorakjp_config.raw);
-}
-
-bool get_japanese_mode(void) { return edvorakjp_state.japanese_mode; }
-
-void set_japanese_mode(bool new_state) {
- edvorakjp_state.japanese_mode = new_state;
- if (edvorakjp_state.japanese_mode) {
- if (edvorakjp_config.enable_kc_lang) {
- SEND_STRING(SS_TAP(X_LNG1));
- } else {
- SEND_STRING(SS_LALT("`"));
- }
- } else {
- if (edvorakjp_config.enable_kc_lang) {
- SEND_STRING(SS_TAP(X_LNG2));
- } else {
- SEND_STRING(SS_LALT("`"));
- }
- }
-}
diff --git a/users/edvorakjp/edvorakjp_tap_dance.c b/users/edvorakjp/edvorakjp_tap_dance.c
deleted file mode 100644
index d2c9f2b0e9..0000000000
--- a/users/edvorakjp/edvorakjp_tap_dance.c
+++ /dev/null
@@ -1,78 +0,0 @@
-#include "edvorakjp.h"
-#include "process_keycode/process_tap_dance.h"
-
-enum tap_state {
- NONE = 0,
- SINGLE_TAP = 1,
- DOUBLE_TAP = 2,
- HOLD,
-};
-
-typedef struct {
- uint8_t lower;
- uint8_t raise;
-} td_status_t;
-static td_status_t td_status = {NONE, NONE};
-
-uint8_t cur_dance(tap_dance_state_t *state) {
- if (state->interrupted || !state->pressed) {
- return state->count == 1 ? SINGLE_TAP : DOUBLE_TAP;
- } else {
- return HOLD;
- }
-}
-
-void td_lower_finished(tap_dance_state_t *state, void *user_data) {
- td_status.lower = cur_dance(state);
- switch (td_status.lower) {
- case SINGLE_TAP:
- set_japanese_mode(false);
- break;
- case DOUBLE_TAP:
- set_japanese_mode(false);
- register_code(KC_ESC);
- break;
- }
- layer_on(L_EDVORAKJP_LOWER);
-}
-
-void td_lower_reset(tap_dance_state_t *state, void *user_data) {
- switch (td_status.lower) {
- case DOUBLE_TAP:
- unregister_code(KC_ESC);
- break;
- }
- layer_off(L_EDVORAKJP_LOWER);
- td_status.lower = NONE;
-}
-
-void td_raise_finished(tap_dance_state_t *state, void *user_data) {
- td_status.raise = cur_dance(state);
- switch (td_status.raise) {
- case DOUBLE_TAP:
- // same as single
- case SINGLE_TAP:
- set_japanese_mode(true);
- break;
- }
- layer_on(L_EDVORAKJP_RAISE);
-}
-
-void td_raise_reset(tap_dance_state_t *state, void *user_data) {
- layer_off(L_EDVORAKJP_RAISE);
- td_status.raise = NONE;
-}
-
-tap_dance_action_t tap_dance_actions[] = {
- [TD_EDVORAKJP_LOWER] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, td_lower_finished, td_lower_reset),
- [TD_EDVORAKJP_RAISE] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, td_raise_finished, td_raise_reset),
-};
-
-uint16_t get_tapping_term(uint16_t keycode, keyrecord_t *record) {
- switch (keycode) {
- case QK_TAP_DANCE ... QK_TAP_DANCE_MAX:
- return 150;
- default:
- return TAPPING_TERM;
- }
-}
diff --git a/users/edvorakjp/readme.md b/users/edvorakjp/readme.md
deleted file mode 100644
index 679d84b3de..0000000000
--- a/users/edvorakjp/readme.md
+++ /dev/null
@@ -1,67 +0,0 @@
-# edvorakjp
-
-epaew's Enhanced Dvorak layout for Japanese Programmer
-
-## Layout overview
-This is a sample. You can swap any symbol keys and modifier keys.
-
-- Basic layout (for ansi)
-```
- //+----+----+----+----+----+----+----+----+----+----+----+----+----+---------+
- ` , ! , @ , # , $ , % , ^ , & , * , ( , ) , [ , ] , BSPC ,
- //+----+-+--+-+--+-+--+-+--+-+--+-+--+-+--+-+--+-+--+-+--+-+--+-+--+-+-------+
- TAB , ' , , , . , Y , Q , F , G , R , W , P , / , = , \ ,
- //+------++---++---++---++---++---++---++---++---++---++---++---++---+-------+
- CAPS , A , O , E , I , U , D , T , N , S , M , - , ENT ,
- //+-------+-+--+-+--+-+--+-+--+-+--+-+--+-+--+-+--+-+--+-+--+-+--+-----------+
- LSFT , : , X , C , V , Z , H , J , K , L , B , RSFT ,
- //+------+--+---++----++---+----+----+----+----+-+--+---++----++------+------+
- LCTL , LGUI , LALT , SPACE , RALT , RGUI , MENU , RCTL
- //+------+------+------+-------------------------+------+------+------+------+
-```
-
- And you can see [my iris keyboard layout](../../keyboards/iris/keymaps/edvorakjp/keymap.c) for sample implementation, too.
-
-## for Japanese
-
-- 日本語入力用のキーを追加
- - IME 切り替えキー
- - 長押しでレイヤー切り替え、短押しでIME切り替え
- - macOS(かな/英数)、Windows(Alt+\`)の両方に対応
-- Define some custom keys for typing Japanese
- - IME switching
- - act as LOWER/RAISE when hold, act as IME switching when tapped
- - for macOS(かな/英数), for Windows(Alt+\`)
-
-## for Programmer
-
-- Dvorak 配列をベースに、ショートカットでよく利用される XCV は QWERTY 配列の位置を維持
-- 一部にVimユーザ用のキー配置を実施
- - HJKL キーを横並びで配置
- - Shift押下時と非押下時で、";"キーの挙動を入れ替え
- (`config.h` 内で `#define SWAP_SCLN` の宣言が必要です)
-- デフォルトレイヤーには、数字キーの代わりに記号 `!@#$%^&*()` を配置
-
-- mainly based on Dvorak layout, but XCV is available in the same position of QWERTY layout
-- for Vim users
- - HJKL is lining side by side
- - swap the ";" key behavior. i.e. send ":" normally and send ";" when you hold shift.
- (need `#define SWAP_SCLN` in your `config.h`)
-- we can type `!@#$%^&*()` keys without shift keys in base layer
-
-## License
-
-Copyright 2018 Ryo Maeda epaew.333@gmail.com @epaew
-
-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/>.
diff --git a/users/edvorakjp/rules.mk b/users/edvorakjp/rules.mk
deleted file mode 100644
index 587c3b8d2e..0000000000
--- a/users/edvorakjp/rules.mk
+++ /dev/null
@@ -1,7 +0,0 @@
-SRC += edvorakjp.c \
- edvorakjp_process_record.c \
- edvorakjp_status.c
-
-ifeq ($(TAP_DANCE_ENABLE), yes)
-SRC += edvorakjp_tap_dance.c
-endif
diff --git a/users/ericgebhart/base_layers/accents.h b/users/ericgebhart/base_layers/accents.h
deleted file mode 100644
index ad575da65c..0000000000
--- a/users/ericgebhart/base_layers/accents.h
+++ /dev/null
@@ -1,90 +0,0 @@
-#pragma once
-/*
- Copyright 2018-2022 Eric Gebhart <e.a.gebhart@gmail.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/>.
-*/
-
-// probably best to have e and é on different fingers.
-
-// doesnt work, oled displays garbage
-/* #define CARTE_ACCENTED \ */
-/* carte_de_map(" æœêùì ¿ïüöë ", \ */
-/* " àôèéî ûçñß^", \ */
-/* " âöíúí ") */
-
-// need to figure out a better way to display these on the oled.
-#define CARTE_ACCENTED \
- carte_de_map(" aoeui ?iuoe ", \
- " aoeei ucnS^", \
- " aoiúi ")
-
-#define ___ACCENTED___ \
- LANG_MAP(_AE, _OE, _ECIR, _UGRV, _IGRV, _IQUE, _IIAE, _UIAE, _OIAE, _EIAE, \
- _AGRV, _OCIR, _EGRV, _EACU, _ICIR, _UCIR, _CCED, _NTIL, _SS, _DCIR, \
- _AACU, _ODIA, _IACU, _UACU, _IACU, _SPC, _SPC, _SPC , _SPC, _SPC)
-
-
-// A dead key layer, optimized for Most common,
-// western european.
-#define CARTE_MORTE \
- carte_de_map(" ˝˘̉ ̛ ˙° ", \
- "/`^´ ¸¨~¤", \
- " ,ˇ. ˛µ¯")
-
-#define ___MORTE___ \
- LANG_MAP(_, _DACU, _BREV, _HOKA, _, _, _HORN, _DOTA, _RNGA, _, \
- _DSLS, _DGRV, _DCIR, _ACUT, _, _, _CEDL, _DIAE, _DTIL, _CURR, \
- _, _DCMM, _CARN, _DOTB, _, _, _OGON, _DGRK, _MACR, _)
-
-// Just taking a guess and putting the things I know are most
-// used in easy to use places., not sure about ntil and ss, put
-// them in their dvorak spots on the home row.
-
-/* #define CARTE_ACCENTS_MORTE \ */
-/* carte_de_map(" æœêùì ¿`^´ë ", \ */
-/* " àôèéî ¸çñß~", \ */
-/* " âö,úí ¨ˇ° ") */
-
-#define CARTE_ACCENTS_MORTE \
- carte_de_map(" aoeui ?`^'e ", \
- " aoeei ,cnS~", \
- " ao,ui \"^o")
-
-#define ___ACCENTS_MORTE___ \
- LANG_MAP(_AE, _OE, _ECIR, _UGRV, _IGRV, _IQUE, _DGRV, _DCIR, _ACUT, _EIAE, \
- _AGRV, _OCIR, _EGRV, _EACU, _ICIR, _CEDL, _CCED, _NTIL, _SS, _DTIL, \
- _AACU, _OIAE, _DCMM, _UACU, _IACU, _OGON, _DIAE, _CARN, _RNGA, _HORN)
-
-/* // DEAD layer. */
-/* BP_DCIR // ^ (dead) */
-/* BP_ACUT // ´ (dead) */
-/* BP_DGRV // ` (dead) */
-/* BP_CARN // ˇ (dead) */
-/* BP_DSLS // / (dead) */
-/* BP_BREV // ˘ (dead) */
-/* BP_DIAE // ¨ (dead) */
-/* BP_DTIL // ~ (dead) */
-/* BP_MACR // ¯ (dead) */
-/* BP_CEDL // ¸ (dead) */
-/* BP_RNGA // ° (dead) */
-/* BP_DGRK // µ (dead Greek key) */
-/* BP_OGON // ˛ (dead) */
-/* BP_DACU // ˝ (dead) */
-/* BP_DOTA // ˙ (dead) */
-/* BP_CURR // ¤ (dead) */
-/* BP_HORN // ̛ (dead) */
-/* BP_DCMM // , (dead) */
-/* BP_HOKA // ̉ (dead) */
-/* BP_DOTB // ̣ (dead) */
diff --git a/users/ericgebhart/base_layers/alt.h b/users/ericgebhart/base_layers/alt.h
deleted file mode 100644
index 28cf5ab738..0000000000
--- a/users/ericgebhart/base_layers/alt.h
+++ /dev/null
@@ -1,150 +0,0 @@
-#pragma once
-/*
- Copyright 2018-2022 Eric Gebhart <e.a.gebhart@gmail.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/>.
-*/
-// e goes on the left thumb
-#define CARTE_MALTRON \
- carte_de_map(" qpycb vmuzl", \
- " anisf ctdor", \
- " ;/jg, .wk-x e")
-
-#define ___MALTRON___ \
- LANG_MAP(_Q, _P, _Y, _C, _B, _V, _M, _U, _Z, _L, \
- _A, _N, _I, _S, _F, _D, _T, _D, _O, _R, \
- TL_SCLN, TL_SLSH, _J, _G, TL_COMM, TL_DOT, _W, _K, TL_MINS, _X)
-
-#define CARTE_EUCALYN \
- carte_de_map(" /,.fq aoeiu", \
- " zxcvw mrdyp", \
- " gtksn bhjl;")
-
-#define ___EUCALYN___ \
- LANG_MAP(TL_SLSH, TL_COMM, TL_DOT, _F, _Q, _A, _O, _E, _I, _U, \
- _Z, _X, _C, _V, _W, _M, _R, _D, _Y, _P, \
- _G, _T, _K, _S, _N, _B, _H, _J, _L, TL_SCLN)
-
-
-
-// RSTHD
-/* j c y f k | z l , u q = */
-/* r s t h d | m n a i o - */
-/* / v g p b | x w . ; ' */
-/* e */
-
-// need a thumb cluster for this.
-// removed = and -, edge keys if you've got them.
-// e goes on left thumb
-
-#define CARTE_RSTHD \
- carte_de_map(" jcyfk zl,uq", \
- " rsthd mnaio", \
- " /vgpb xw.;' e")
-
-#define ___RSTHD___ \
- LANG_MAP(_J, _C, _Y, _F, _K, _Z, _L, TL_COMM, _U, _Q, \
- _R, _S, _T, _H, _D, _M, _N, _A, _I, _O, \
- _/, _V, _G, _P, _B, _X, _W, TL_DOT, TL_SCLN, TL_QUOT)
-
-#define CARTE_HANDS_UP \
- carte_de_map(" fyou, kwclp", \
- " hiea. dtsrn", \
- " bj'z; vmgxq")
-
-#define ___HANDS_UP___ \
- LANG_MAP(_F, _Y, _O, _U, TL_COMM, _K, _W, _C, _L, _P, \
- _H, _I, _E, _A, TL_DOT , _D, _T, _S, _R, _N, \
- _B, _J, TL_QUOT, _Z, TL_SCLN, _V, _M, _G, _X, _Q)
-
-#define CARTE_WHITE \
- carte_de_map(" vyd,' jmlu-", \
- " atheb csnoi", \
- " pkgwq xrf.z")
-
-#define ___WHITE___ \
- LANG_MAP(_V, _Y, _D, TL_COMM, TL_QUOT, _J, _M, _L, _U, _MINS, \
- _A, _T, _H, _E, _B, _C, _S, _N, _O, _I, \
- _P, _K, _G, _W, _Q, _X, _R, _F, TL_DOT, _Z)
-
-
-#define CARTE_ISRT \
- carte_de_map(" yclmk zfu,'", \
- " isrtg pneao", \
- " qvwdj bh/.x")
-
-#define ___ISRT___ \
- LANG_MAP(_Y, _C, _L, _M, _K, _Z, _F, _U, TL_COMM, TL_QUOT, \
- _I, _S, _R, _T, _G, _P, _N, _E, _A, _O, \
- _Q, _V, _W, _D, _J, _B, _H, TL_SLSH, TL_DOT, _X)
-
-#define CARTE_SOUL \
- carte_de_map(" qwldp kmuy;", \
- " srtg fneio", \
- " zxcvj bh,./")
-
-#define ___SOUL___ \
- LANG_MAP(_Q, _W, _L, _D, _P, _K, _M, _U, _Y, TL_SCLN, \
- _A, _S, _R, _T, _G, _F, _N, _E, _I, _O, \
- _Z, _X, _C, _V, _J, _B, _H, TL_COMM, TL_DOT, TL_SLSH)
-
-#define CARTE_NIRO \
- carte_de_map(" qwudp jfyl;", \
- " asetg hniro", \
- " zxcvb km,./")
-
-#define ___NIRO___ \
- LANG_MAP(_Q, _W, _U, _D, _P, _J, _F, _Y, _L, TL_SCLN, \
- _A, _S, _E, _T, _G, _H, _N, _I, _R, _O, \
- _Z, _X, _C, _V, _B, _K, _M, TL_COMM, TL_DOT, TL_SLSH)
-
-#define CARTE_ASSET \
- carte_de_map(" qwjfg ypul;", \
- " asetd hnior", \
- " zxcvb km,./")
-
-#define ___Asset___ \
- LANG_MAP(_Q, _W, _J, _F, _G, _Y, _P, _U, _L, TL_SCLN, \
- _A, _S, _E, _T, _D, _H, _N, _I, _O, _R, \
- _Z, _X, _C, _V, _B, _K, _M, TL_COMM, TL_DOT, TL_SLSH)
-
-#define CARTE_WHORF \
- carte_de_map("flhdm vwou,", \
- "srntk gyaei", \
- "xjbzq pc';. ")
-
-#define ___WHORF___ \
- LANG_MAP(_F, _L, _H, _D, _M, _V, _W, _O, _U, TL_COMM, \
- _S, _R, _N, _T, _K, _G, _Y, _A, _E, _I, \
- _X, _J, _B, _Z, _Q, _P, _C, TL_QUOT, TL_SCLN, TL_DOT )
-
-#define CARTE_WHORF6 \
- carte_de_map("vlhkj gwou.", \
- "srntk ydeai", \
- "xqbfz pc',; ")
-
-#define ___WHORF6___ \
- LANG_MAP(_V, _L, _H, _D, _M, _G, _W, _O, _U, TL_DOT, \
- _S, _R, _N, _T, _K, _Y, _D, _E, _A, _I, \
- _X, _Q, _B, _F, _Z, _P, _C, TL_QUOT, TL_COMM, TL_SCLN )
-
-/* rsht/iena */
-/* jfldv @uopq */
-/* zrshtg .iena: */
-/* xcmwk /y,b? */
-
-// pine
-/* y l r d w j m o u , */
-/* c s n t g p h a e i */
-/* x z q v k b f ' / . */
diff --git a/users/ericgebhart/base_layers/base_layers.h b/users/ericgebhart/base_layers/base_layers.h
deleted file mode 100644
index ee784473fb..0000000000
--- a/users/ericgebhart/base_layers/base_layers.h
+++ /dev/null
@@ -1,58 +0,0 @@
-#pragma once
-/*
- Copyright 2018-2022 Eric Gebhart <e.a.gebhart@gmail.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 "keycodes.h"
-#include "lang_map.h"
-#include "oled_stuff.h"
-
-
-// an empty template.
-
-/* #define CARTE_EMPTY \ */
-/* carte_de_map(" ", \ */
-/* " ", \ */
-/* " ") */
-/* */
-/* #define ___EMPTY___ \ */
-/* LANG_MAP(_, _, _, _, _, _, _, _, _, _, \ */
-/* _, _, _, _, _, _, _, _, _, _, \ */
-/* _, _, _, _, _, _, _, _, _, _) */
-
-
-// dvorak, capewell-dvorak, ahei, and boo.
-#include "dvorak.h"
-//qwerty, workman, norman,
-#include "qwerty.h"
-// Colemak, halmak, minimak, etc.
-#include "maks.h"
-// eucalyn, maltron
-#include "alt.h"
-// mtgap, ctgap, apt
-#include "gap.h"
-// some hands down.
-#include "hands_down.h"
-// some beakls.
-#include "beakl.h"
-// bepo, optimot, beakl19bis, godox-fr?.
-#include "bepo.h"
-// some carpalxs.
-#include "carpalx.h"
-// The symbol, number function rows for all the above.
-#include "toprows.h"
-// some layers with accents and dead keys.
-#include "accents.h"
diff --git a/users/ericgebhart/base_layers/beakl.h b/users/ericgebhart/base_layers/beakl.h
deleted file mode 100644
index 58b5fa4371..0000000000
--- a/users/ericgebhart/base_layers/beakl.h
+++ /dev/null
@@ -1,158 +0,0 @@
-#pragma once
-/*
- Copyright 2018-2022 Eric Gebhart <e.a.gebhart@gmail.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/>.
-*/
-// beakl, balanced effort key layout.
-// Beakl 15 and 19 are somewhat more related.
-// Beakl-wi is the latest. It feels a little bit more like a system.
-
-
-// Remember the - and ; outside pinky keys.
-// Or use the 6 size.
-// Both are on the symbol layer too. So you
-// wont lose them at least.
-// KC_BK_COMM, KC_BK_QUOT, KC_BK_DOT - Beakl->Qwerty
-// BP_BK_COMM, BP_BK_QUOT, BP_BK_DOT - Beakl->Bepo
-// take care of the different shifted chars.
-
-
-/* BEAKL 27 (main layer): */
-/* // altered shifted pairs: dot = .` comma = ,? dquot = !" */
-/* Alt target is BK2 */
-
-/* 32104 76598 */
-/* qhoux gcmrv */
-/* yiea. dstnb */
-/* j",k' wflpz */
-
-/* BEAKL 27 (shift layer): */
-/* !@$#% ^(*)& */
-/* QHOUX GCMRV */
-/* YIEA` DSTNB */
-/* J!?K' WFLPZ */
-
-
-#define CARTE_BEAKL27 \
- carte_de_map(" qhoux gcmrz ", \
- " yiea. dstnb ", \
- " j\",k' wflpv ")
-
-// Alt target is BK
-#define ___BEAKL27___ \
- LANG_MAP(_Q, _H, _O, _U, _X, _G, _C, _M, _R, _Z, \
- _Y, _I, _E, _A, TL_DOT, _D, _S, _T, _N, _B, \
- _J, TL_EXLM, TL_COMM, _K, TL_QUOT, _W, _F, _L, _P, _V)
-
-/* BEAKL 15 (main layer): */
-// altered shifted pairs: quot = '` comma = ,! dot = .@
-/* 40123 76598 */
-#define CARTE_BEAKL15 \
- carte_de_map(" qhoux gcrfz ", \
- " yiea. dstnb ", \
- " j/,k' wmlpv ")
-
-// Alt target is BK
-#define ___BEAKL15___ \
- LANG_MAP(_Q, _H, _O, _U, _X, _G, _C, _R, _F, _Z, \
- _Y, _I, _E, _A, TL_DOT, _D, _S, _T, _N, _B, \
- _J, _SLSH, TL_COMM, _K, TL_QUOT, _W, _M, _L, _P, _V)
-
-/* BEAKL 19 */
-// Beakl 19. scores better than 15, better in french also.
-// Both are lots better than dvorak or bepo.
-
-/* same symbols and keypad as 15 */
-/* number row is different */
-/* 32104 76598 */
-
-// Alt target is BK
-#define CARTE_BEAKL19 \
- carte_de_map(" q.ouj wdnm, ", \
- " haeik gsrtp ", \
- " z'/yx bclfv ")
-
-#define ___BEAKL19___ \
- LANG_MAP(_Q, _DOT, _O, _U, _J, _W, _D, _N, _M, TL_COMM, \
- _H, _A, _E, _I, _K, _G, _S, _R, _T, _P, \
- _Z, _QUOT, _SLSH, _Y, _X, _B, _C, _L, _F, _V)
-
-//BEAKL 19bis - original.
-// the é and è were simply added for analysis not real use.
-// even so, this layout scores well for french, better than
-// bepo and mtgap
-/* qyouz wdnck */
-/* -hiea, gtrsp; */
-/* èj'é.x vmlfb */
-
-// A 3x12
-//BEAKL 19bis mod z.
-// French optimised with some english.
-// This version rearranges things a little based on fequency.
-// Since it needs 3x12, I filled in the corners and removed ;.
-// Leaving y where it is. the o and the e might cause sfbs.
-// Put é on a different finger from e.
-// swap z, e's, add à, ^, and ê, swap ; for -.
-// it might be beneficial to swap w and à, as à is much more frequent than w
-#define CARTE_BEAKL19bis \
- carte_de_map(" àqyoué wdnck^ ", \
- " ;hiea, gtrsp- ", \
- " zj'è.x vmlfbê ")
-
-#define ___BEAKL19bis_3x12___ \
- LANG_MAP6( \
- _AGRV, _Q, _Y, _O, _U, _EACU, _W, _D, _N, _C, _K, _DCIR, \
- _SCLN, _H, _I, _E, _A, _COMM, _G, _T, _R, _S, _P, _MINS, \
- _Z, _J, _QUOT, _EGRV, _DOT, _X, _V, _M, _L, _F, _B, _ECIR)
-
-
-// Beakl Wi. This is the most current beakl this size. 18/01/2022.
-// Nothing on the 6th outer columns but layer toggle buttons. All 6.
-// altered shifted pairs: dot = .` comma = ,~ colon = :;
-// i is on the left thumb.
-/* ;you- ctrsv */
-/* qheaw gdnmz */
-/* j,.k' bplfx */
-/* i */
-
-#define CARTE_BEAKLWI \
- carte_de_map(" ;you- ctrsv ", \
- " qheaw gdnmz ", \
- " j,.k' bplfx i")
-
-#define ___BEAKLWI___ \
- LANG_MAP(TL_COLN, _Y, _O, _U, _MINS, _C, _T, _R, _S, _V, \
- _Q, _H, _E, _A, _W, _G, _D, _N, _M, _Z, \
- _J, TL_COMM, TL_DOT, _K, _QUOT, _B, _P, _L, _F, _X)
-
-// Thumbs.
-#define ___BEAKLWI_CRKBD_THUMBS___ LT_ESC, LT_I, LT_TAB, LT_ENT, LT_SPC, LT_BSPC
-
-// My version, loses KC_mins, because it's easier on my symbol layer.
-// put I in it's dvorak spot instead of thumbs, move W up to make room for I.
-// I'd rather have w and i on different fingers. One domino...
-
-// beakl-wi - mod iw-
-
-#define CARTE_BEAKLWIa \
- carte_de_map(" ;youw ctrsv ", \
- " qheai gdnmz ", \
- " j,.k' bplfx ")
-
-// Alt target is BKW
-#define ___BEAKLWIa___ \
- LANG_MAP(TL_COLN, _Y, _O, _U, _W, _C, _T, _R, _S, _V, \
- _Q, _H, _E, _A, _I, _G, _D, _N, _M, _Z, \
- _J, TL_COMM, TL_DOT, _K, _QUOT, _B, _P, _L, _F, _X)
diff --git a/users/ericgebhart/base_layers/bepo.h b/users/ericgebhart/base_layers/bepo.h
deleted file mode 100644
index 64f56ec9ab..0000000000
--- a/users/ericgebhart/base_layers/bepo.h
+++ /dev/null
@@ -1,114 +0,0 @@
-#pragma once
-/*
- Copyright 2018-2022 Eric Gebhart <e.a.gebhart@gmail.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/>.
-*/
-// Maps based on BEPO Mostly 3x12
-
-// BEAKL 19bis - English with French optimisations.
-// Least used letters in french xzykw QJÀ are fairly high.
-// XZ are good choices for pushing out, from english and french,
-// or using chords in both languages.
-
-// Note: The percentages came from different sources so do not
-// match between languages.
-// French
-/* Q 0.89 % */
-/* J 0.71 % */
-/* À 0.54 % */
-/*-------------*/
-/* X 0.42 % */
-/* È 0.35 % */
-/* Ê 0.24 % */
-/* Z 0.21 % */
-/* Y 0.19 % */
-/* K 0.16 % */
-/* Ô 0.07 % */
-/* Û 0.05 % */
-/* W 0.04 % */
-
-/* Least used letters in english. */
-/* X 0.2902% 1.48 */
-/* Z 0.2722% 1.39 */
-/* J 0.1965% 1.00 */
-/* Q 0.1962% (1) */
-
-
-// OPtimot by @Pyjam.
-/* àjoéb fdl’qxz */
-/* aieu, ptsrn^ç */
-/* êkyè.w gcmhvz */
-
-// -- rearranged z, and ç to get 3x12
-#define CARTE_OPTIMOT \
- carte_de_map(" çàjoéb fdl’qx ", \
- " aieu, ptsrn^ ", \
- " êkyè.w gcmhvz ")
-
-#define ___OPTIMOT_3x12___ \
- LANG_MAP6( \
- _CCED, _AGRV, _J, _O, _EACU, _B, _F, _D, _L, _QUOT, _Q, _X, \
- _TAB, _A, _I, _E, _U, _COMM, _P, _T, _S, _R, _N, _DCIR, \
- _ECIR, _K, _Y, _EGRV, _DOT, _W, _G, _C, _M, _H, _V, _Z)
-
-// no z or x. combos exist for them.
-#define CARTE_OPTIMOT_COMPACT \
- carte_de_map(" àjoéb fdl’q ", \
- " aieu, ptsrn ", \
- " kyè.w gcmhv ")
-
-#define ___OPTIMOT_3x10___ \
- LANG_MAP6( \
- _AGRV, _J, _O, _EACU, _B, _F, _D, _L, _QUOT, _Q, \
- _A, _I, _E, _U, _COMM, _P, _T, _S, _R, _N, \
- _K, _Y, _EGRV, _DOT, _W, _G, _C, _M, _H, _V,)
-
-// Maybe Use this for C
-//BP_C_CCED = MT(BP_CCED, BP_C)
-
-// BEPO
-
-// No quot, à or ç
-/* bépoè vdljz */
-/* auie, ctsrn */
-/* myx.k qghfw */
-#define CARTE_BEPOc \
- carte_de_map(" bépoè vdljz", \
- " auie, ctsrn", \
- " myx.k qghfw")
-
-#define ___BEPOc_3x10___ \
- LANG_MAP( \
- _B, _EACU, _P, _O, _EGRV, _V, _D, _L, _J, _Z, \
- _A, _U, _I, _E, _COMM, _C, _T, _S, _R, _N, \
- _M, _Y, _X, _DOT, _K, _Q, _G, _H, _F, _W)
-
-
-#define CARTE_BEPO \
- carte_de_map(" çbépoè ^vdljz ", \
- " auie, ctsrnm ", \
- " êàyx.k ’qghfw ")
-
-#define ___BEPO_3x12___ \
- LANG_MAP6(_CCED, _B, _EACU, _P, _O, _EGRV, _DCIR, _V, _D, _L, _J, _Z, \
- _TAB, _A, _U, _I, _E, _COMM, _C, _T, _S, _R, _N, _M, \
- _ECIR, _AGRV, _Y, _X, _DOT, _K, _QUOT, _Q, _G, _H, _F, _W)
-
-// dont like this one much.
-/* #define ___GODOX_3x12___ \ */
-/* LANG_MAP6(___, _AGRV, _B, _EACU, _dot, _mins, _DCIR, _V, _L, _M, _X, _CCED, \ */
-/* ___, _O, _U, _I, _A, _J, _G, _T, _S, _N, _R, _F, \ */
-/* ___, _Q, _Y, _EGRV, _P, _K, _W, _D, _UP, _H, _C, _Z) */
-/* // E goes on left thumb. */
diff --git a/users/ericgebhart/base_layers/carpalx.h b/users/ericgebhart/base_layers/carpalx.h
deleted file mode 100644
index ae2ed708a5..0000000000
--- a/users/ericgebhart/base_layers/carpalx.h
+++ /dev/null
@@ -1,46 +0,0 @@
-#pragma once
-/*
- Copyright 2018-2022 Eric Gebhart <e.a.gebhart@gmail.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/>.
-*/
-#define CARTE_CARPALX_QFMLWY \
- carte_de_map(" qfmlw yuobj", \
- " dstnr iaeh;", \
- " zvgcx pk,./")
-
-#define ___CARPALX_QFMLWY___ \
- LANG_MAP(_Q, _F, _M, _L, _W, _Y, _U, _O, _B, _J, \
- _D, _S, _T, _N, _R, _I, _A, _E, _H, TL_SCLN, \
- _Z, _V, _G, _C, _X, _P, _K, TL_COMM, TL_DOT, TL_SLSH)
-
-#define CARTE_CARPALX_QFMLWB \
- carte_de_map(" qgmlw byuv;", \
- " dstnr iaeoh", \
- " zxcfj kp,./")
-
-#define ___CARPALX_QGMLWB___ \
- LANG_MAP(_Q, _G, _M, _L, _W, _B, _Y, _U, _V, TL_SCLN, \
- _D, _S, _T, _N, _R, _I, _A, _E, _O, _H, \
- _Z, _X, _C, _F, _J, _K, _P, TL_COMM, TL_DOT, TL_SLSH)
-
-#define CARTE_CARPALX_QGMLWY \
- carte_de_map(" qgmlw yfub;", \
- " dstnr iaeoh", \
- " zxcvj kp,./")
-
-#define ___CARPALX_QGMLWY___ \
- LANG_MAP(_Q, _G, _M, _L, _W, _Y, _F, _U, _B, TL_SCLN, \
- _D, _S, _T, _N, _R, _I, _A, _E, _O, _H, \
- _Z, _X, _C, _V, _J, _K, _P, TL_COMM, TL_DOT, TL_SLSH)
diff --git a/users/ericgebhart/base_layers/dvorak.h b/users/ericgebhart/base_layers/dvorak.h
deleted file mode 100644
index 8deee2005c..0000000000
--- a/users/ericgebhart/base_layers/dvorak.h
+++ /dev/null
@@ -1,73 +0,0 @@
-#pragma once
-/*
- Copyright 2018-2022 Eric Gebhart <e.a.gebhart@gmail.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/>.
-*/
-
-#define CARTE_DVORAK \
- carte_de_map(" ',.py fgcrl ", \
- " aoeui dhtns ", \
- " ;qjkx bmwvz ")
-
-#define ___DVORAK___ \
- LANG_MAP(TL_QUOT, TL_COMM, TL_DOT, _P, _Y, _F, _G, _C, _R, _L, \
- _A, _O, _E, _U, _I, _D, _H, _T, _N, _S, \
- TL_SCLN, _Q, _J, _K, _X, _B, _M, _W, _V, _Z)
-
-#define CARTE_DVORAK_RLC_IU \
- carte_de_map(" ',.py fgrlc ", \
- " aoeiu dhtns ", \
- " ;qjkx bmwvz ")
-
-#define ___DVORAK_RLC_IU___ \
- LANG_MAP(TL_QUOT, TL_COMM, TL_DOT, _P, _Y, _F, _G, _R, _L, _C, \
- _A, _O, _E, _I, _U, _D, _H, _T, _N, _S, \
- TL_SCLN, _Q, _J, _K, _X, _B, _M, _W, _V, _Z)
-
-#define CARTE_BOO \
- carte_de_map(" ,.ucv qfdly", \
- " aoesg bntri", \
- " ;x'wz phmkj")
-
-#define ___BOO___ \
- LANG_MAP( TL_COMM, TL_DOT, _U, _C, _V, _Q, _F, _D, _L, _Y, \
- _A, _O, _E, _S, _G, _B, _N, _T, _R, _I, \
- TL_SCLN, _X, TL_QUOT, _W, _Z, _P, _H, _M, _K, _J)
-
-#define CARTE_CAPEWELL_DVORAK \
- carte_de_map( " ',.py qfgrk", \
- " oaeiu dhtns", \
- " zxcvj lmwb;")
-
-#define ___CAPEWELL_DVORAK___ \
- LANG_MAP(TL_QUOT, TL_COMM, TL_DOT, _P, _Y, _Q, _F, _G, _R, _K, \
- _O, _A, _E, _I, _U, _D, _H, _T, _N, _S, \
- _Z, _X, _C, _V, _J, _L, _M, _W, _B, TL_SCLN)
-
-//ahei - derived from dvorak.
-// x moved to left side. j on pinky.
-/*;pouyq gdlm/= */
-/* ahei, fstnr- */
-/* j'k.x bcwvz */
-
-#define CARTE_AHEI \
- carte_de_map("pouyq gdlm/", \
- "ahei, fstnr", \
- "j'k.x bcwvz")
-
-#define ___AHEI___ \
-LANG_MAP(_P, _O, _U, _Y, _Q, _G, _D, _L, _M, TL_SLSH, \
- _A, _H, _E, _I, TL_COMM, _F, _S, _T, _N, _R, \
- _J, TL_QUOT, _K, TL_DOT, _X, _B, _C, _W, _V, _Z)
diff --git a/users/ericgebhart/base_layers/gap.h b/users/ericgebhart/base_layers/gap.h
deleted file mode 100644
index 76310bc6f9..0000000000
--- a/users/ericgebhart/base_layers/gap.h
+++ /dev/null
@@ -1,67 +0,0 @@
-#pragma once
-/*
- Copyright 2018-2022 Eric Gebhart <e.a.gebhart@gmail.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/>.
-*/
-
-// an alternate I found.
-/* Reference: MTGAP */
-/* y p o u - | b d l c k j */
-/* i n e a , | m h t s r v */
-/* ( " ' . _ | ) f w g x */
-/* z */
-
-#define CARTE_MTGAP \
- carte_de_map(" ypouj kdlcw", \
- " inea, mhtsr", \
- " qz/.; bfgvx")
-
-#define ___MTGAP___ \
- LANG_MAP(_Y, _P, _O, _U, _J, _K, _D, _L, _C, _W, \
- _I, _N, _E, _A, TL_COMM, _M, _H, _T, _S, _R, \
- _Q, _Z, TL_SLSH, TL_DOT, TL_SCLN, _B, _F, _G, _V, _X)
-
-/* //APT v3*/
-/* https://github.com/Apsu/APT */
-#define CARTE_APT \
- carte_de_map(" wgdfb qluoy", \
- " rsthk jneai; ", \
- " xcmpv z,.'/")
-
-#define ___APT___ \
- LANG_MAP(_W, _G, _D, _F, _B, _Q, _L, _U, _O, _Y, \
- _R, _S, _T, _H, _K, _J, _N, _E, _A, _I, TL_SCLN, \
- _X, _C, _M, _P, _V, _Z, TL_COMM, TL_DOT, TL_QUOT, TL_SLSH)
-
-
-#define CARTE_CTGAP \
- carte_de_map(" vplcf kuoyj", \
- " rntsd 'aeih", \
- " zbmgw x,.;q")
-
-#define ___CTGAP___ \
- LANG_MAP(_V, _P, _L, _C, _F, _K, _U, _O, _Y, _J, \
- _R, _N, _T, _S, _D, TL_QUOT, _A, _E, _I, _H, \
- _Z, _B, _M, _G, _W, _X, TL_COMM, TL_DOT, TL_SCLN, _Q)
-
-#define CARTE_CANARY \
- carte_de_map( " wlypb zfou'", \
- " crstg mneia", \
- " qjvd kxh/,.")
-
-#define ___CANARY___ \
- LANG_MAP(_W, _L, _Y, _P, _B, _Z, _F, _O, _U, TL_QUOT, \
- _C, _R, _S, _T, _G, _M, _N, _E, _I, _A, \
- _Q, _J, _V, _D, _K, _X, _H, TL_SLSH, TL_COMM, TL_DOT)
diff --git a/users/ericgebhart/base_layers/hands_down.h b/users/ericgebhart/base_layers/hands_down.h
deleted file mode 100644
index 0841a358d2..0000000000
--- a/users/ericgebhart/base_layers/hands_down.h
+++ /dev/null
@@ -1,147 +0,0 @@
-#pragma once
-/*
- Copyright 2018-2022 Eric Gebhart <e.a.gebhart@gmail.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/>.
-*/
-
-// https://sites.google.com/alanreiser.com/handsdown/home
-
-// The only 3x12 layout. The rest are 3x10.
-#define CARTE_HD_NEU \
- carte_de_map( " wfmpv /.q\"'z", \
- " rsntb ,aeihj", \
- " xcldg -uoykK")
-
-#define ___HD_NEU___ \
- LANG_MAP(_SML_NAV, _W, _F, _M, _P, _V , TL_SLSH, TL_DOT, _Q, TL_DQUO, TL_QUOT, _Z, \
- _TAB, _R, _S, _N, _T, _B , TL_COMM, _A, _E, _I, _H, _J, \
- _OS_ACCENT, _X, _C, _L, _D, _G , TL_MINS, _U, _O, _Y, _K, _SML_KEYPAD)
-
-
-// modified to fit 3x10.
-#define CARTE_HD_NEU_NARROW \
- carte_de_map(" xcldb zuoyq", \
- " rsntg ,aeih", \
- " wfmpv ;./jk")
-
-#define ___HD_NEU_NARROW___ \
- LANG_MAP(_X, _C, _L, _D, _B, _Z, _U, _O, _Y, _Q, \
- _R, _S, _N, _T, _G, TL_COMM, _A, _E, _I, _H, \
- _W, _F, _M, _P, _V, _SCLN, TL_DOT, TL_SLSH, _J, _K)
-
-
-#define CARTE_HD_REF \
- carte_de_map(" qchpv kyoj/", \
- " rsntg wueia", \
- " xmldb zf',.")
-
-#define ___HD_REF___ \
- LANG_MAP(_Q, _C, _H, _P, _V, _K, _Y, _O, _J, TL_SLSH, \
- _R, _S, _N, _T, _G, _W, _U, _E, _I, _A, \
- _X, _M, _L, _D, _B, _Z, _F, TL_QUOT, TL_COMM, TL_DOT )
-
-
-// All of these have a consonant or vowel on the thumb keys.
-
-/* alt shift keys "? '! dash and elan */
-/* (< {[ - elan */
-/* dash has thumbs of ,; and .: */
-/* dash and the rest get these too. */
-/* alt shifts ;: .& /\* '? "! ,| -+ */
-/* COMBOS - z = jg, z=vg, q=uk, q=mp. */
-
-
-// no z or q, use combos.
-#define CARTE_HD_TITANIUM \
- carte_de_map(" jgmpv ;./\"' ", \
- " csntw ,aeih ", \
- " xfldb -uoyk r")
-
-#define ___HD_TITANIUM___ \
- LANG_MAP(_J, _G, _M, _P, _V, TL_SCLN, TL_DOT, TL_SLSH, TL_DQUO, TL_QUOT, \
- _C, _S, _N, _T, _W , TL_COMM, _A, _E, _I, _H, \
- _X, _F, _L, _D, _B , TL_MINS, _U, _O, _Y, _K)
-
-
-#define CARTE_HD_GOLD \
- carte_de_map(" jgmpv ;./\"' ", \
- " rsndb ,aeih ", \
- " xflcw -uoyk t")
-
-#define ___HD_GOLD___ \
- LANG_MAP(_J, _G, _M, _P, _V, TL_SCLN, TL_DOT, TL_SLSH, TL_DQUO, TL_QUOT, \
- _R, _S, _N, _D, _B , TL_COMM, _A, _E, _I, _H, \
- _X, _F, _L, _C, _W , TL_MINS, _U, _O, _Y, _K)
-/* t, ␣ */
-
-/* jz pq alt shifts ;: .& /\* '? "! ,| -+ */
-
-#define CARTE_HD_PLATINUM \
- carte_de_map( "jghpv ;./'\"", \
- "rsntb ,aeic", \
- "xfmdk -uowy l")
-/* l ␣ */
-
-#define ___HD_PLATINUM___ \
- LANG_MAP(_J, _G, _H, _P, _V, TL_SCLN, TL_DOT, TL_SLSH, TL_QUOT, TL_DQUO, \
- _R, _S, _N, _T, _B, TL_COMM, _A, _E, _I, _C, \
- _X, _F, _M, _D, _K, TL_MINS, _U, _O, _W, _Y)
-
-#define CARTE_HD_SILVER \
- carte_de_map("jgmpv ;./'\"", \
- "rshtb ,aeic", \
- "xfldk -uowy n")
-/* n ␣ */
-
-#define ___HD_SILVER___ \
- LANG_MAP(_J, _G, _M, _P, _V, TL_SCLN, TL_DOT, TL_SLSH, TL_QUOT, TL_DQUO, \
- _R, _S, _H, _T, _B, TL_COMM, _A, _E, _I, _C, \
- _X, _F, _L, _D, _K, TL_MINS, _U, _O, _W, _Y)
-
-#define CARTE_HD_BRONZE \
- carte_de_map("jgmpv ;./'\"", \
- "rsntb ,aeic", \
- "xfldk -uowy h")
-/* h ␣ */
-
-#define ___HD_BRONZE___ \
- LANG_MAP(_J, _G , _M, _P, _V , TL_SCLN, TL_DOT, TL_SLSH , TL_QUOT, TL_DQUO, \
- _R, _S, _N, _T, _B , TL_COMM, _A, _E, _I, _C, \
- _X, _F, _L, _D, _K , TL_MINS, _U, _O, _W, _Y)
-
-#define CARTE_HD_ELAN \
- carte_de_map("vghpk /({'\"", \
- "rsntf jaeci", \
- "xmldb -uowy")
-/* ,; .: ␣ ⏎ */
-
-/* vz g h p kq /\* (< {[ '! "? */
-/* TL_COMM; TL_DOT: _␣ ⏎ */
-#define ___HD_ELAN___ \
- LANG_MAP(_V, _G, _H, _P, _K, TL_SLSH, TL_LPRN, TL_LCBR, TL_QUOT, TL_DQUO, \
- _R, _S, _N, _T, _F, _J, _A, _E, _C, _I, \
- _X, _M, _L, _D, _B, TL_MINS, _U, _O, _W, _Y)
-
-
-#define CARTE_HD_DASH \
- carte_de_map("jgmpv ;.'\"/", \
- "rsntb ,haoi", \
- "xcldw -fuky e")
- /* e ␣ */
-
-#define ___HD_DASH___ \
- LANG_MAP(_J, _G, _M, _P, _V , TL_SCLN, TL_DOT, TL_QUOT, TL_DQUO, TL_SLSH, \
- _R, _S, _N, _T, _B , TL_COMM, _H, _A, _O, _I, \
- _X, _C, _L, _D, _W , TL_MINS, _F, _U, _K, _Y)
diff --git a/users/ericgebhart/base_layers/keymaps.txt b/users/ericgebhart/base_layers/keymaps.txt
deleted file mode 100644
index 56dc7d79e3..0000000000
--- a/users/ericgebhart/base_layers/keymaps.txt
+++ /dev/null
@@ -1,300 +0,0 @@
-/*
-This file can be commented by blocks or single lines using //
-Blank lines are ignored
-*/
-/*
-Bigram frequencies in stats.csv
-*/
-
-[keys]
-L21 L22 L23 L24 L25 L26 R26 R25 R24 R23 R22 R21
-L31 L32 L33 L34 L35 L36 R36 R35 R34 R33 R32 R31
-L41 L42 L43 L44 L45 L46 R46 R45 R44 R43 R42 R41
-
-[weights]
-5.0 3.6 2.4 1.8 2.2 3.5 3.5 2.2 1.8 2.4 3.6 5.0
-4.0 1.6 1.2 1.0 1.0 3.0 3.0 1.0 1.0 1.2 1.6 4.0
-5.0 3.4 2.6 2.2 1.8 4.0 4.0 1.8 2.2 2.6 3.4 5.0
-
-/*
-Weights should:
-- limit weak fingers
-- limit bottom row
-- increase home row
-- limit finger travel distance
-
-https://colemakmods.github.io/mod-dh/compare.html
-*/
-
-[penalties]
- ,same_row,row_jump1,row_jump2
-ii, 2.5, 3.5, 4.5 // same finger
-im, 0.5, 1.0, 2.0
-ir, 0.5, 0.8, 1.5
-ip, 0.5, 0.8, 1.1
-mi, -1.5, -0.5, 1.5 // inward roll
-mm, 2.5, 3.5, 4.5 // same finger
-mr, 0.5, 1.0, 2.0
-mp, 0.5, 0.8, 1.5
-ri, -1.5, -0.5, 1.5 // inward roll
-rm, -2.0, -0.5, 1.2 // inward roll
-rr, 2.5, 3.5, 4.5 // same finger
-rp, 1.0, 1.5, 2.5
-pi, -1.0, 0.0, 1.0 // inward roll
-pm, -1.0, 0.0, 1.5 // inward roll
-pr, -1.0, 0.0, 1.5 // inward roll
-pp, 3.0, 4.0, 5.5 // same finger
-
-/*
-Only apply if not the same letter, and both letters on the same hand.
-
-i, m, r, and p refer to the fingers (index, middle, ring, pinky)
-The columns refer to how many rows separate the two keys
-
-Penalties should:
-- limit same finger typing (except same key twice)
-- balance hands
-- favor inward rolling
-(last 2 in opposition with each other)
-*/
-
-[layouts]
-
->>Qwerty
-# q w e r t y i o u p #
-é a s d f g h j k l ; '
-è z x c v b n m , . / -
-
->>Azerty
-è a z e r t y u i o p ^
-' q s d f g h j k l m ù
-é w x c v b n , . : ! -
-
->>Qwertz
-# q w e r t z u i o p ü
-é a s d f g h j k l ö ä
-è y x c v b n m , . - '
-
->>Bépo 40%
-# b é p o è ^ v d l j z
-- a u i e , c t s r n m
-ç à y x . k ' q g h f w
-
-// https://github.com/TeXitoi/keyberon#whats-the-layout
->>Bépo keyberon
-# b é p o è ^ v d l j z
-w a u i e , c t s r n m
-- à y x . k ' q g h f ç
-
->>Dvorak
-- ' , . p y f g c r l #
-é a o e u i d h t n s #
-è ; q j k x b m w v z #
-
->>Colemak
-# q w f p g j l u y ; #
-é a r s t d h n e i o '
-è z x c v b k m , . / -
-
->>Colemak DH
-# q w f p b j l u y ; #
-é a r s t g m n e i o '
-è z x c d v k h , . / -
-
->>Colemak DH mod
-# q w f p b j l u y é è
-# a r s t g m n e i o -
-# z x c d v k h , . ' /
-
->>Workman
-# q d r w b j f u p ; #
-é a s h t g y n e o i '
-è z x m c v k l , . / -
-
->>Norman
-# q w d f k j u r l ; #
-é a s e t g y n i o h '
-è z x c v b p m , . / -
-
->>Carpalx
-# q g m l w b y u v ; é
-è d s t n r i a e o h '
-# z x c f j k p , . / -
-
->>Neo
-- x v l c w k h g f q ß
-é u i a e o s n r t d y
-è ü ö ä p z b m , . j '
-
-// http://mkweb.bcgsc.ca/carpalx/?full_optimization
->>qgmlwyfub
-# q g m l w y f u b ; é
-è d s t n r i a e o h '
-# z x c v j k p , . / -
-
-// https://mathematicalmulticore.wordpress.com/the-keyboard-layout-project/
->>MTGAP
-# y p o u j k d l c w #
-é i n e a , m h t s r '
-è q z / . : b f g v x -
-
-// http://mtgap.bilfo.com/official_keyboard.html
-// http://mtgap.bilfo.com/completed_keyboard.html
->>MTGAP 2.0
-# , f h d k j c u l . #
-é o a n t g m s e r i -
-è q x b p z y w ' v ; #
-
->>MTGAP "Easy"
-# q w l d b j f u k p #
-é a s r t g h n e o i -
-è z x c v ; y m , . / '
-
->>MTGAP "shortcuts"
-# k g l d b j h u f . #
-é r o t s w m n e a i -
-è z x v c q y p , ' ; #
-
->>MTGAP "standard"
-# k l h c b j d u f . #
-é o r n s g w t e a i -
-è x q v m z y p , ' ; #
-
->>MTGAP "ergonomic"
-# . f u d j q h c w k #
-é i a e t p l n s r o -
-è ' , y g z - m b v x #
-
-// https://geekhack.org/index.php?topic=67604.0
->>Oneproduct
-# p l d w g j x o y q è
-- n r s t m u a e i h '
-# z c f v b , . ? ; k é
-
-// https://bepo.fr/wiki/Utilisateur:Bibidibop
->>Coeur
-# é w o p y b ' d l j z
-x a u e i , c t s r n h
-# - à è . k g m f q v #
-
-// https://geekhack.org/index.php?topic=98275.0
->>Kaehi
-# q w l d g j u o p / é
-è n r s t m k a e h i '
-# z x c v b y f , . ; -
-
-// https://deskthority.net/wiki/BEAKL
->>BEAKL 15
-é q h o u x g c r f z #
-- y i e a . d s t n b ;
-è j / , k ' w m l p v #
-
-// https://web.archive.org/web/20190906220509/http://shenafu.com/smf/index.php?topic=89.msg2566#msg2566
->>BEAKL 19
-é q . o u j w d n m , #
-- h a e i k g s r t p ;
-è z ' / y x b c l f v #
-
-// https://www.reddit.com/r/ErgoDoxEZ/comments/gsvpug/layout_of_the_month_beakl_15/ftcan68/?context=3
->>BEAKL 19bis
-# q y o u z w d n c k #
-- h i e a , g t r s p ;
-è j ' é . x v m l f b #
-
-// https://www.reddit.com/r/ErgoMechKeyboards/comments/j1eopm/hands_down_layout_is_ready_for_daily_use/g7bjmr7/?context=3
->>BEAKL 19 Opt French
-# w m r d v y u o q x #
-# g s n t p , i e a h -
-# k f l c b j é ' . z è
-
-// http://millikeys.sourceforge.net/asset/
->>ASSET
-# q w j f g y p u l ; #
-é a s e t d h n i o r '
-è z x c v b k m , . / -
-
-// https://sourceforge.net/projects/qwpr/
->>Qwpr
-# q w p r f y u k l ; #
-é a s d t g h n i o e '
-è z x c v b j m , . / -
-
-// http://www.minimak.org/
->>Minimak-8key
-# q w d r k y u i l p #
-é a s t f g h n e o ; '
-è z x c v b j m , . / -
-
-// https://github.com/mw8/white_keyboard_layout
-// adapted to ergo keyboard
->>White
-# v y d , ' j m l u ( )
-é a t h e b c s n o i -
-è p k g w q x r f . z #
-
-// https://github.com/jackrosenthal/threelayout
->>Three
-# q f u y z x k c w b #
-é o h e a i d r t n s -
-è , m . j ; g l p v ' #
-
-//https://sites.google.com/alanreiser.com/handsdown
->>Hands down
-# q c h g j y f o b ' #
-é s n r t p w u e i a #
-è x m l d z v k . , ; -
-
-//https://sites.google.com/alanreiser.com/handsdown
->>Notarize
-# q w d f p y u k l ' #
-é a s t e g h n i o r #
-è z x c v b j m . , ; -
-
-// http://kennetchaz.github.io/symmetric-typing/soul.html
->>Soul mod
-# q w l d p k m u y ; '
-è a s r t g f n e i o é
-# j z x c v b h , . / -
-
-// http://kennetchaz.github.io/symmetric-typing/niro.html
->>Niro mod
-# q w u d p j f y l ; #
-é a s e t g h n i r o '
-è b z x c v k m , . / -
-
-// https://docs.google.com/document/d/1yiCnIi1oagV1D8ZouMt-TRFRG8d6AfSBIwQkBvSflvY/edit
->>The-1
-# k m l u ? v d r ' q #
-é a t h e . c s n o i -
-è z p f j , b g w x y /
-
-// https://engram.dev
->>Engram 2.0
-# b y o u ' " l d w v z
-é c i e a , . h t s n q
-è g x j k - ? r m f p #
-
-// https://github.com/MadRabbit/halmak
->>Halmak
-# w l r b z ; q u d j #
-é s h n t , . a e o i '
-è f m v c / g p x k y -
-
-// https://keyboard-design.com/letterlayout.html?layout=optimal-digram.en.ansi
->>Optimal digram
-# q y u . , f m l d p z
-é s i e a o h n r t c g
-è j ) ' ? ( x v w k b -
-
-// https://keyboard-design.com/letterlayout.html?layout=uciea-keyboard.en.ansi
->>Uciea
-# p y u o - k d h f x q
-é c i e a ' g t n s r v
-è z " , . ; w m l b j -
-
-// https://keyboard-design.com/letterlayout.html?layout=x1.en.ergodox
-// . and , moved
->>x1
-# k y o ' ! f c l p q z
-é h i e a u d s t n r v
-è j ? . , # w g m b x -
diff --git a/users/ericgebhart/base_layers/maks.h b/users/ericgebhart/base_layers/maks.h
deleted file mode 100644
index 6f78819421..0000000000
--- a/users/ericgebhart/base_layers/maks.h
+++ /dev/null
@@ -1,61 +0,0 @@
-#define CARTE_COLEMAK \
- carte_de_map(" qwfpg jluy;", \
- " arstd hneio", \
- " zxcvb km,./")
-
-#define ___COLEMAK___ \
- LANG_MAP(_Q, _W, _F, _P, _G, _J, _L, _U, _Y, TL_SCLN, \
- _A, _R, _S, _T, _D, _H, _N, _E, _I, _O, \
- _Z, _X, _C, _V, _B, _K, _M, TL_COMM, TL_DOT, TL_SLSH)
-
-
-#define CARTE_COLEMAK_DH \
- carte_de_map(" qwfpb jluy;", \
- " arstg mneio", \
- " zxcdv kh,./")
-
-#define ___COLEMAK_DH___ \
- LANG_MAP(_Q, _W, _F, _P, _B, _J, _L, _U, _Y, TL_SCLN, \
- _A, _R, _S, _T, _G, _M, _N, _E, _I, _O, \
- _Z, _X, _C, _D, _V, _K, _H, TL_COMM, TL_DOT, TL_SLSH)
-
-#define CARTE_HALMAK \
- carte_de_map(" wlrbz ;qudj", \
- " shnt, .aeoi", \
- " fmvc/ gpxky")
-
-#define ___HALMAK___ \
- LANG_MAP(_W, _L, _R, _B, _Z, TL_SCLN, _Q, _U, _D, _J, \
- _S, _H, _N, _T, TL_COMM, _DOT, _A, _E, _O, _I, \
- _F, _M, _V, _C, TL_SLSH, _G, _P, _X, _K, _Y)
-
-#define CARTE_MINIMAK \
- carte_de_map(" qwdrk yuiop", \
- " astfg hjel;", \
- " zxcvb nm,./")
-
-#define ___MINIMAK___ \
- LANG_MAP(_Q, _W, _D, _R, _K, _Y, _U, _I, _O, _P, \
- _A, _S, _T, _F, _G, _H, _J, _E, _L, TL_SCLN, \
- _Z, _X, _C, _V, _B, _N, _M, TL_COMM, TL_DOT, TL_SLSH)
-
-#define CARTE_MINIMAK_8 \
- carte_de_map(" qwdrk yuilp", \
- " astfg hneo;", \
- " zxcvb jm,./")
-
-#define ___MINIMAK_8___ \
- LANG_MAP(_Q, _W, _D, _R, _K, _Y, _U, _I, _L, _P, \
- _A, _S, _T, _F, _G, _H, _N, _E, _O, TL_SCLN, \
- _Z, _X, _C, _V, _B, _J, _M, TL_COMM, TL_DOT, TL_SLSH)
-
-
-#define CARTE_MINIMAK_12 \
- carte_de_map(" qwdfk yuil;", \
- " astrg hneop", \
- " zxcvb jm,./")
-
-#define ___MINIMAK_12___ \
- LANG_MAP(_Q, _W, _D, _F, _K, _Y, _U, _I, _L, _SCLN, \
- _A, _S, _T, _R, _G, _H, _N, _E, _O, _P, \
- _Z, _X, _C, _V, _B, _J, _M, TL_COMM, TL_DOT, TL_SLSH)
diff --git a/users/ericgebhart/base_layers/qwerty.h b/users/ericgebhart/base_layers/qwerty.h
deleted file mode 100644
index 47aead197c..0000000000
--- a/users/ericgebhart/base_layers/qwerty.h
+++ /dev/null
@@ -1,69 +0,0 @@
-#pragma once
-/*
- Copyright 2018-2022 Eric Gebhart <e.a.gebhart@gmail.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/>.
-*/
-
-// Layer for combo reference. Make more than one by changing lang is.
-#define ___COMBO_REF___ \
- LANG_MAP(_1L1, _1L2, _1L3, _1L4, _1L5, _1R1, _1R2, _1R3, _1R4, _1R5, \
- _2L1, _2L2, _2L3, _2L4, _2L5, _2R1, _2R2, _2R3, _2R4, _2R5, \
- _3L1, _3L2, _3L3, _3L4, _3L5, _3R1, _3R2, _3R3, _3R4, _3R5)
-
-
-#define CARTE_QWERTY \
- carte_de_map(" qwert yuiop", \
- " asdfg hjkl;", \
- " zxcvb nm,./")
-
-// Need TLKC around comm, dot, and quot, and scln
-// Qwerty based layers that I don't really use.
-#define ___QWERTY___ \
- LANG_MAP(_Q, _W, _E, _R, _T, _Y, _U, _I, _O, _P, \
- _A, _S, _D, _F, _G, _H, _J, _K, _L, TL_SCLN, \
- _Z, _X, _C, _V, _B, _N, _M, TL_COMM, TL_DOT, TL_SLSH)
-
-#define CARTE_AZERTY \
- carte_de_map(" azert yuiop", \
- " qsdfg hjkl;", \
- " wxcvb nm,./")
-
-// Need TLKC around comm, dot, and quot, and scln
-// Qwerty based layers that I don't really use.
-#define ___AZERTY___ \
- LANG_MAP(_A, _Z, _E, _R, _T, _Y, _U, _I, _O, _P, \
- _Q, _S, _D, _F, _G, _H, _J, _K, _L, TL_SCLN, \
- _W, _X, _C, _V, _B, _N, _M, TL_COMM, TL_DOT, TL_SLSH)
-
-
-
-#define CARTE_WORKMAN \
- carte_de_map(" qdrwb jfup;", \
- " ashtg yneio", \
- " zxmcv kl,./")
-
-#define ___WORKMAN___ \
- LANG_MAP(_Q, _D, _R, _W, _B, _J, _F, _U, _P, _SCLN, \
- _A, _S, _H, _T, _G, _Y, _N, _E, _O, _I, \
- _Z, _X, _M, _C, _V, _K, _L, TL_COMM, TL_DOT, TL_SLSH)
-
-#define CARTE_NORMAN \
- carte_de_map(" qwdfk jurl;", \
- " asetg yniou", \
- " zxcvb pm,./")
-#define ___NORMAN___ \
- LANG_MAP(_Q, _W, _D, _F, _K, _J, _U, _R, _L, TL_SCLN, \
- _A, _S, _E, _T, _G, _Y, _N, _I, _O, _U, \
- _Z, _X, _C, _V, _B, _P, _M, TL_COMM, TL_DOT, TL_SLSH)
diff --git a/users/ericgebhart/base_layers/toprows.h b/users/ericgebhart/base_layers/toprows.h
deleted file mode 100644
index ba32118537..0000000000
--- a/users/ericgebhart/base_layers/toprows.h
+++ /dev/null
@@ -1,56 +0,0 @@
-#pragma once
-/*
- Copyright 2018-2022 Eric Gebhart <e.a.gebhart@gmail.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/>.
-*/
-/*******************************************************************/
-/** TOP ROWS Func,Symbols, Numbers you find there. **/
-/*******************************************************************/
-// ltkc language target keycode DV, BK, BKW, NONE
-// _1 = DV_1 or _1 = BP_DV_1 or KC_1
-#define ___10_NUMBERS___ \
- LANG_ROW(_1, _2, _3, _4, _5, _6, _7, _8, _9, _0)
-
-/* 40123 76598 */
-#define ___10_NUMBERS_BEAKL15___ \
- LANG_ROW(_4, _0, _1, _2, _3, _7, _6, _5, _9, _8)
-
-/* 32104 76598 */
-#define ___10_NUMBERS_BEAKL19___ \
- LANG_ROW(_3, _2, _1, _0, _4, _7, _6, _5, _9, _8)
-
-// a top symbol row if someone wants it.
-#define ___10_SYMBOLS___ \
- LANG_ROW(_EXLM, _AT, _HASH, _DLR, _PERC, _CIRC, _AMPR, _ASTR, _LPRN, _RPRN)
-
-// standard bepo top row
-#define ___10_SYMBOLS_BEPO___ \
- LANG_ROW(_DQUO, _LDAQ, _RDAQ, _LPRN, _RPRN, _AT, _PLUS, _MINS, _SLSH, _ASTR)
-
-#define ___12_SYMBOLS_BEPO___ \
- LANG_ROW12(_DLR, _DQUO, _LDAQ, _RDAQ, _LPRN, _RPRN, \
- _AT, _PLUS, _MINS, _SLSH, _ASTR, _EQL)
-
-// function key rows work for everyone.
-#define ___10_FUNCS___ \
- KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10
-
-#define ___12_FUNCS___ ___10_FUNCS___, KC_F11, KC_F12
-
-#define ___10_FUNCS_BEAKL15___ \
- KC_F4, KC_F10, KC_F1, KC_F2, KC_F3, \
- KC_F7, KC_F6, KC_F5, KC_F9, KC_F8
-
-#define ___12_FUNCS_BEAKL15___ KC_F11, ___10_FUNCS_BEAKL15___, KC_F12
diff --git a/users/ericgebhart/config.h b/users/ericgebhart/config.h
deleted file mode 100644
index fe0f41327d..0000000000
--- a/users/ericgebhart/config.h
+++ /dev/null
@@ -1,321 +0,0 @@
-/*
- Copyright 2018 Eric Gebhart <e.a.gebhart@gmail.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/>.
-*/
-
-#ifndef USERSPACE_CONFIG_H
-#define USERSPACE_CONFIG_H
-
-// pro-micro v3's don't always detect otherwise.
-/* #define SPLIT_USB_DETECT */
-
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-// Sets good default for the speed of the mouse.
-#undef MOUSEKEY_INTERVAL
-#undef MOUSEKEY_DELAY
-#undef MOUSEKEY_TIME_TO_MAX
-#undef MOUSEKEY_MAX_SPEED
-
-#define MOUSEKEY_INTERVAL 20
-#define MOUSEKEY_DELAY 100
-#define MOUSEKEY_TIME_TO_MAX 60
-#define MOUSEKEY_MAX_SPEED 7
-
-#undef MOUSEKEY_WHEEL_MAX_SPEED
-#undef MOUSEKEY_WHEEL_TIME_TO_MAX
-#undef MOUSEKEY_WHEEL_DELAY
-
-#define MOUSEKEY_WHEEL_MAX_SPEED 5
-#define MOUSEKEY_WHEEL_TIME_TO_MAX 60
-#define MOUSEKEY_WHEEL_DELAY 100
-
-#undef TAPPING_TOGGLE
-#undef TAPPING_TERM
-
-#define TAPPING_TOGGLE 2
-#define TAPPING_TERM 200
-
-
-#define TAP_HOLD_TERM 200
-#define COMBO_MUST_HOLD_MODS
-#define COMBO_HOLD_TERM 150
-#define TAP_CODE_DELAY 5 // for send string with delay
-
-// change the behavior of Mod taps for HRMs.
-// #define GLOBAL_QUICK_TAP
-
- /* Control switches for my keymaps. */
- /* if needed, this goes in the keyboard's config.h */
- /* Alternately, fix the number row in the layout template. */
-/* #define BASE_NUMBER_ROW // turn on 4 row base templates. */
-
-// Extensions, turn them on and off.
-#define USERSPACE_H "ericgebhart.h"
-
-// Layout definitions, which language, thumb cluster, mod layer.
-// Columns in and out.
-
-// the default. set it, use it, set it back.
-// US_INT // EN, BEPO, US_INT
-#define LANG_IS US_INT
-#define DEFAULT_LANG US_INT
-#define DEFAULT_LANG_NAME " us"
-
-// Enable a second locale, for another set of layers.
-// This will add bepo versions of all layers chosen.
-/* #define SECOND_LOCALE BEPO */
-/* #define SECOND_LOCALE_NAME " bepo" */
-
-// Choose a mod layer. Can be changed per layer.
-// TRNS, ALT, HRS_NAV HRM_GACS, HRM_SCAG, HRM_GASC, MIRYOKU_HRM_GASC
-#define MODS_ARE HRS_NAV
-#define DEFAULT_MODS MODS_ARE
-
-// Choose a thumb cluster.
-// WI, WIa, DEFAULT, TEST, TRNS, MODS, LAYERS, MODS_LAYERS,
-// MIRYOKU, MIRYOKU_TR, MODS_LAYERS_NAV,
-// The following use THUMB_LETTER to place a letter on the Thumbs.
-// for use with the hands down metals, maltron, and rsthd.
-// HD, HDA, HD_SIMPLE, TH_LTR, HD_DASH,
-// MIRYOKU_TR_LTR, MIRYOKU_LTR
-#define THUMBS_ARE DEFAULT
-#define DEFAULT_THUMBS DEFAULT
-
-// pick the edge key set. normie, no kc, smart locks or test.
-// NORM, NOKC, SML, TEST
-#define EDGE_KEY_SET_IS SML
-#define DEFAULT_EDGE_SET SML
-
-// for the base layers which need a thumb cluster which takes a letter.
-#define HANDS_DOWN_LTR_THUMBS_ARE TH_LTR
-#define MALTRON_LTR_THUMBS_ARE TH_LTR
-#define RSTHD_LTR_THUMBS_ARE TH_LTR
-
-// layout io, matrix size.
-// a reasonable default for most keyboards.
-// give a 3x10 and get a 3x12, managed in keyboards/keyboards.h
-#define BASE_COLS_IN_OUT 5_6 // 5, 5_6, 6
-
-// OLED STUFF.
-#define OLED_CUSTOM_ENABLE // custom oled here.
-//#define OLED_LOGO_ENABLE // turn on/off the logo.
-#define KEYLOGGER_ENABLE // 1500 bytes, track and print keypress info to oled.
-//#define SPLIT_LAYER_STATE_ENABLE // to sync state between sides.
-
-// EXTENSIONS
-
-// Combos
-#define COMBO_REF_LAYER_ENABLE
-// #define COMBO_REF_LAYER_TWO_ENABLE
-// works if you know the number of your layer.
-// otherwise set and use them later.
-// #define COMBO_ONLY_FROM_LAYER 2
-// #define COMBO_REF_DEFAULT 2
-
-
-// Console key logging for creation of heatmaps, etc.
-// CONSOLE must be enabled for this to work.
-// To create Precondition's heat maps, from console key logging
-// with hid_listen or qmk console
-//#define CONSOLE_KEY_LOGGER_ENABLE // turn on keylogging for heat maps.
-
-#define ALT_LOCAL_ENABLE // alternate key combinations, with mods as needed.
-#define ACCENTED_KEYS_ENABLE // direct access to altgr keys.
-
-#define SMART_LOCK_ENABLE // smart lock layers and mods.
-//#define MOD_LOCK_ENABLE // smart lock mods, similar/overlapping with Smart lock.
-#define NSHOT_ENABLE // smart n-shot for count.
-//#define ONESHOT_MOD_ENABLE // oneshot mods, similar/overlapping with nshots
-
-#define TAP_HOLD_ENABLE // tap for one thing, hold for tapping term to get another.
-//#define SWAPPER_ENABLE // enable swapper keys.
-#define NOT_DEAD_ENABLE // make undead versions (US_DQUO_ND) of dead keys.
-//#define ALT_SHIFT_ENABLE // alternate shift behaviors for existing keys.
-//#define SEND_STRING_ENABLE // Turn on send string keys
-//#define SEND_UNICODE_ENABLE // Unicode must be enabled for this to work.
-
-
-// Turn on the base layers do not exceed 4 if doing two locales.
-// That will likely push a layer past 15 and then it will
-// no longer work with the LT macro.
-
-// dvorak and relatives
-#define DVORAK_LAYER_ENABLE
-//#define DVORAK_RLC_IU_LAYER_ENABLE
-//#define CAPEWELL_DVORAK_LAYER_ENABLE
-//#define AHEI_LAYER_ENABLE
-//#define BOO_LAYER_ENABLE
-
-// qwerty and derivitives
-//#define QWERTY_LAYER_ENABLE
-//#define AZERTY_LAYER_ENABLE
-//#define WORKMAN_LAYER_ENABLE
-//#define NORMAN_LAYER_ENABLE
-
-// COLEMAK and relatives
-//#define COLEMAK_LAYER_ENABLE
-//#define COLEMAK_DH_LAYER_ENABLE
-//#define HALMAK_LAYER_ENABLE
-//#define MINIMAK_LAYER_ENABLE
-//#define MINIMAK_8_LAYER_ENABLE
-//#define MINIMAK_12_LAYER_ENABLE
-
-// BEAKL
-// #define BEAKL15_LAYER_ENABLE
-//#define BEAKL19_LAYER_ENABLE
-//#define BEAKL27_LAYER_ENABLE
-//#define BEAKLWI_LAYER_ENABLE
-
-// carpalx layouts
-//#define CARPALX_QFMLWY_LAYER_ENABLE
-//#define CARPALX_QGMLWB_LAYER_ENABLE
-//#define CARPALX_QGMLWY_LAYER_ENABLE
-
-// alternate layouts
-//#define MALTRON_LAYER_ENABLE
-//#define EUCALYN_LAYER_ENABLE
-//#define HANDS_UP_LAYER_ENABLE
-//#define RSTHD_LAYER_ENABLE
-//#define HANDS_UP_LAYER_ENABLE
-//#define WHITE_LAYER_ENABLE
-//#define ISRT_LAYER_ENABLE
-//#define SOUL_LAYER_ENABLE
-//#define NIRO_LAYER_ENABLE
-//#define ASSET_LAYER_ENABLE
-//#define WHORF_LAYER_ENABLE
-//#define WHORF6_LAYER_ENABLE
-
-// mtgap and relatives
-//#define MTGAP_LAYER_ENABLE
-//#define CTGAP_LAYER_ENABLE
-//#define APT_LAYER_ENABLE
-//#define CANARY_LAYER_ENABLE
-
-// Hands down
-#define HD_NEU_NARROW_LAYER_ENABLE
-//#define HD_REF_LAYER_ENABLE
-//#define HD_DASH_LAYER_ENABLE
-//#define HD_ELAN_LAYER_ENABLE
-//#define HD_BRONZE_LAYER_ENABLE
-//#define HD_SILVER_LAYER_ENABLE
-//#define HD_PLATINUM_LAYER_ENABLE
-//#define HD_GOLD_LAYER_ENABLE
-//#define HD_TITANIUM_LAYER_ENABLE
-
-// A compact optimot for 3x10.
-// requires accent characters.
-//#define OPTIMOT_COMPACT_LAYER_ENABLE
-
-// 3x12 sized base layers
-//--------------------------
-//#define HD_NEU_LAYER_ENABLE
-
-// Optimized for french
-// All these have accent characters on base layer.
-// so these dont work for En, but do for US-international and Bepo.
-
-//#define BEPO_LAYER_ENABLE
-//#define OPTIMOT_LAYER_ENABLE
-//#define BEAKL19bis_LAYER_ENABLE
-
-
-// enable transient function layers.
-#define SYMBOL_LAYER_ENABLE
-#define NAV_LAYER_ENABLE
-// #define MOUSE_LAYER_ENABLE
-#define TOPROWS_LAYER_ENABLE
-// #define LAYERS_LAYER_ENABLE - defunct. always on.
-#define KEYPAD_LAYER_ENABLE
-//#define ADJUST_LAYER_ENABLE
-//#define RGB_LAYER_ENABLE
-//#define MEDIA_LAYER_ENABLE
-//#define FUNC_LAYER_ENABLE
-
-
-// define alternate thumb definitions for the transient layers.
-#define MEDIA_LAYER_THUMBS MEDIA_THUMBS
-#define MOUSE_LAYER_THUMBS MOUSE_THUMBS
-#define NAV_LAYER_THUMBS TRNS_THUMBS
-#define KEYPAD_LAYER_THUMBS KEYPAD_THUMBS
-#define SYMB_LAYER_THUMBS SYMB_THUMBS
-#define TOPROWS_LAYER_THUMBS DEFAULT
-
-// Extra character layers.
-// Bepo has dead keys (altgr) and accented keycodes
-// A layer of accented keys
-// #define ACCENTS_LAYER_ENABLE
-// A layer of dead keys
-// #define MORTE_LAYER_ENABLE
-// A layer of the most popular accented keys and dead keys
-#define ACCENTS_MORTE_LAYER_ENABLE
-
-// Functional layer choices.
-/* configure the function layers. */
-/* They have to be turned on above. */
-/* Choose one of each as desired. */
-/* There are reasonable defaults */
-/* for each if nothing is defined. */
-
-/* nav */
-//#define NAV_FULL // monolithic, two sided nav with mouse and arrows.
-#define NAV_FULL_LOCK_MODS // Replace left mouse buttons with lockmods.
-
-// Just the non mouse bits, with lock mods, n-shot mods on the left.
-// if mousekeys enabled, adds a mouse layer accessible via smart lock.
-// #define NAV_NO_MOUSE
-// #define NAV_MIRYOKU
-// #define NAV_MOUSE_MIRYOKU
-
-
-/* keypads */
-// beakl keypads are usual, if not chosen, regular keypads will be used.
-// left side is the default.
-// Beakl, except for WI, is only on the left side.
-// Miryoku is on the left also.
-
-//#define KEYPAD_RIGHT
-#define KEYPAD_BEAKL // beakl doesn't have a rightside, swap hands?
-//#define KEYPAD_MODS // give mods on the other side instead of funcs.
-//#define KEYPAD_BEAKL_WI // right side with hexpad on left.
-//#define KEYPAD_MIRYOKU // use the miryoku keypad
-// the default if nothing chosen,
-// is a functionpad on the left and normal keypad on the right.
-
-// funcpad from miryoku
-// #define FUNCPAD_MIRYOKU
-
-
-/* symbols */
-// pick one of these or get the default.
-//#define SYMBOL_BEAKL // original - the default if nothing else.
-//#define SYMBOL_BEAKL_EXT // extended for non beakl base layers.
-//#define SYMBOL_BEAKL_EXT_VI // extended with vi keybinding in mind.
-#define SYMBOL_BEAKL_C // more alterations by frequency
-// #define SYMBOL_NEO // The symbol layer from the Neo layout.
-// #define SYMBOL_MIRYOKU // minimalist symbols after miryoku
-//#define SYMBOL_BEAKL_WI // original wi
-
-
-/* toprows. */
-// The default, if not defined, is a standard qwerty set of rows.
-// symbols, numbers, function keys. Numbers on the home row.
-
-// #define TOPROWS_BKL_15_NUMS // center row with Beakl15 order. 40123 76598.
-// #define TOPROWS_BKL_19_NUMS // Beakl 19 order: 32104 76598
-#define TOPROWS_MOD // beakl 15 nums, oneshot and smart lock mods. no Fkeys.
-
-
-#endif
diff --git a/users/ericgebhart/defs/accented_keys.def b/users/ericgebhart/defs/accented_keys.def
deleted file mode 100644
index a0b203be93..0000000000
--- a/users/ericgebhart/defs/accented_keys.def
+++ /dev/null
@@ -1,101 +0,0 @@
-// Accented keys.
-// add them to the custom keys enum.
-// List them here, with their keycode and the accent keycode
-// that are needed to create them.
-
-
-// Last, most frequent letters in french.
-// é is further up.
-// 24 x 3 588 990 0.38%
-// 25 j 3 276 064 0.34%
-// 26 è 2 969 466 0.31%
-// 27 à 2 966 029 0.31%
-// 28 k 2 747 547 0.29%
-// 29 w 1 653 435 0.17%
-// 30 z 1 433 913 0.15%
-// 31 ê 802 211 0.08%
-// 32 ç 544 509 0.06%
-// 33 ô 357 197 0.04%
-// 34 â 320 837 0.03%
-// 35 î 280 201 0.03%
-// 36 û 164 516 0.02%
-// 37 ù 151 236 0.02%
-// 38 ï 138 221 0.01%
-// 39 á 73 751 0.01% - absent.
-// 79 ü 55 172 0.01%
-// 82 ë 53 862 0.01%
-//absent.
-// 83 ö 51 020 0.01%
-// 84 í 48 391 0.01%
-
- // ACCENT
-// Custom key code, Keycode, altgr accent keycode.
-#if defined(SECOND_LOCALE) && (SECOND_LOCALE == BEPO)
-ACCENTED(BP_OCIR, BP_O, BP_DCIR)
-ACCENTED(BP_ACIR, BP_A, BP_DCIR)
-ACCENTED(BP_ICIR, BP_I, BP_DCIR)
-ACCENTED(BP_UCIR, BP_U, BP_DCIR)
-//ACCENTED(BP_CCIR, BP_C, BP_DCIR)
-//ACCENTED(BP_GCIR, BP_G, BP_DCIR)
-//ACCENTED(BP_HCIR, BP_H, BP_DCIR)
-#endif
-
-ACCENTED(US_OCIR, US_O, US_DCIR)
-ACCENTED(US_ACIR, US_A, US_DCIR)
-ACCENTED(US_ICIR, US_I, US_DCIR)
-ACCENTED(US_UCIR, US_U, US_DCIR)
-ACCENTED(US_ECIR, US_E, US_DCIR)
-
-#if defined(SECOND_LOCALE) && (SECOND_LOCALE == BEPO)
-ACCENTED(BP_AACU, BP_A, BP_ACUT)
-ACCENTED(BP_OACU, BP_O, BP_ACUT)
-ACCENTED(BP_IACU, BP_I, BP_ACUT)
-ACCENTED(BP_UACU, BP_U, BP_ACUT)
-
-//ACCENTED(BP_OGRV, BP_O, BP_DGRV)
-ACCENTED(BP_IGRV, BP_I, BP_DGRV)
-#endif
-
-ACCENTED(US_IGRV, US_I, US_DGRV)
-ACCENTED(US_UGRV, US_U, US_DGRV)
-ACCENTED(US_EGRV, US_E, US_DGRV)
-ACCENTED(US_AGRV, US_A, US_DGRV)
-
-// ACCENTED(BP_NTIL, BP_N, BP_DTIL)
-// ACCENTED(BP_ATIL, BP_A, BP_DTIL)
-// ACCENTED(BP_OTIL, BP_O, BP_DTIL)
-// ACCENTED(BP_UTIL, BP_U, BP_DTIL)
-
-ACCENTED(US_IIAE, US_I, US_DIAE)
-ACCENTED(US_UIAE, US_U, US_DIAE)
-ACCENTED(US_EIAE, US_E, US_DIAE)
-ACCENTED(US_OIAE, US_O, US_DIAE)
-
-#if defined(SECOND_LOCALE) && (SECOND_LOCALE == BEPO)
-ACCENTED(BP_IIAE, BP_I, BP_DIAE)
-ACCENTED(BP_UIAE, BP_U, BP_DIAE)
-ACCENTED(BP_EIAE, BP_E, BP_DIAE)
-ACCENTED(BP_OIAE, BP_O, BP_DIAE)
-// ACCENTED(BP_AIAE, BP_A, BP_DIAE)
-#endif
-
- // ACCENTED(E_ACUTE, SK_E, SK_ACUT)
- // ACCENTED(R_ACUTE, SK_R, SK_ACUT)
- // ACCENTED(U_ACUTE, SK_U, SK_ACUT)
- // ACCENTED(I_ACUTE, SK_I, SK_ACUT)
- // ACCENTED(O_ACUTE, SK_O, SK_ACUT)
- // ACCENTED(A_ACUTE, SK_A, SK_ACUT)
- // ACCENTED(L_ACUTE, SK_L, SK_ACUT)
- // ACCENTED(Y_ACUTE, SK_Z, SK_ACUT)
- // ACCENTED(T_CARON, SK_T, SK_CARN)
- // ACCENTED(Z_CARON, SK_Y, SK_CARN)
- // ACCENTED(O_CARON, SK_O, SK_CARN)
- // ACCENTED(S_CARON, SK_S, SK_CARN)
- // ACCENTED(D_CARON, SK_D, SK_CARN)
- // ACCENTED(L_CARON, SK_L, SK_CARN)
- // ACCENTED(C_CARON, SK_C, SK_CARN)
- // ACCENTED(N_CARON, SK_N, SK_CARN)
- // ACCENTED(U_UMLAU, SK_U, SK_DIAE
- // ACCENTED(O_UMLAU,SK_O, SK_DIAE)
- // // napis o s vokanom cez vokan rather than normalne aby sa dalo velke uo
- // ACCENTED(O_CCIRC, SK_O, SK_CIRC)
diff --git a/users/ericgebhart/defs/alt_shift.def b/users/ericgebhart/defs/alt_shift.def
deleted file mode 100644
index 52d9cf11f4..0000000000
--- a/users/ericgebhart/defs/alt_shift.def
+++ /dev/null
@@ -1,6 +0,0 @@
-// alt shift. Give an existing key code,
-// and maybe an alternate shift keycode.
-
-ALT_SHIFT(US_EXLM, US_PERC)
-SHIFT_FOR_2(US_AT)
-SHIFT_FOR_3(US_DLR)
diff --git a/users/ericgebhart/defs/altlocal_keys.def b/users/ericgebhart/defs/altlocal_keys.def
deleted file mode 100644
index 20d1e99b40..0000000000
--- a/users/ericgebhart/defs/altlocal_keys.def
+++ /dev/null
@@ -1,208 +0,0 @@
-// These are to create keys which don't exist in a locale.
-// so that we can create alternate maps to qwerty, azerty, or whatever.
-// Key name,
-// unshifted key and it's required mods.
-// the desired shifted keys and it's required mods.
-
-// for dvorak on bepo
-#if defined(SECOND_LOCALE) && (SECOND_LOCALE == BEPO)
- MK_KEY(BP_DV_1, BP_DQUO, MOD_LSFT, BP_DCIR, MOD_LSFT)
- MK_KEY(BP_DV_2, BP_LDAQ, MOD_LSFT, BP_AT, MOD_NONE)
- MK_KEY(BP_DV_3, BP_RDAQ, MOD_LSFT, BP_DLR, MOD_LSFT)
- MK_KEY(BP_DV_4, BP_LPRN, MOD_LSFT, BP_DLR, MOD_NONE)
- MK_KEY(BP_DV_5, BP_RPRN, MOD_LSFT, BP_PERC, MOD_NONE)
- MK_KEY(BP_DV_6, BP_AT, MOD_LSFT, BP_AT, MOD_BIT(KC_RALT))
- MK_KEY(BP_DV_7, BP_PLUS, MOD_LSFT, BP_P, MOD_BIT(KC_RALT))
- MK_KEY(BP_DV_8, BP_MINS, MOD_LSFT, BP_ASTR, MOD_NONE)
- MK_KEY(BP_DV_9, BP_SLSH, MOD_LSFT, BP_LPRN, MOD_NONE)
- MK_KEY(BP_DV_0, BP_ASTR, MOD_LSFT, BP_RPRN, MOD_NONE)
-
- MK_KEY(BP_DV_GRV, BP_PERC, MOD_LSFT, BP_K, MOD_BIT(KC_RALT))
- MK_KEY(BP_DV_SCLN, BP_COMM, MOD_LSFT, BP_DOT, MOD_LSFT)
- MK_KEY(BP_DV_SLSH, BP_SLSH, MOD_NONE, BP_QUOT, MOD_LSFT)
- //MK_KEY(BP_DV_BSLS, BP_AGRV, MOD_BIT(KC_RALT), BP_B, MOD_BIT(KC_RALT))
- MK_KEY(BP_DV_EQL, BP_EQL, MOD_NONE, BP_PLUS, MOD_NONE)
- MK_KEY(BP_DV_COMM, BP_COMM, MOD_NONE, BP_LDAQ, MOD_BIT(KC_RALT))
- MK_KEY(BP_DV_DOT, BP_DOT, MOD_NONE, BP_RDAQ, MOD_BIT(KC_RALT))
- MK_KEY(BP_DV_QUOT, BP_QUOT, MOD_NONE, BP_DQUO, MOD_NONE)
- MK_KEY(BP_DV_MINS, BP_MINS, MOD_NONE, KC_SPC, MOD_BIT(KC_RALT))
-#endif
-
-#if defined(BEAKL15_LAYER_ENABLE) || defined(BEAKL19_LAYER_ENABLE)
- // Keys for BEAKL 15, 19 on Qwerty
- MK_KEY(KC_BK_DOT, KC_DOT, MOD_NONE, KC_2, MOD_LSFT)
- MK_KEY(KC_BK_COMM, KC_COMM, MOD_NONE, KC_1, MOD_LSFT)
- MK_KEY(KC_BK_QUOT, KC_QUOT, MOD_NONE, KC_GRV, MOD_NONE)
-
- MK_KEY(US_BK_DOT, KC_DOT, MOD_NONE, KC_2, MOD_LSFT)
- MK_KEY(US_BK_COMM, KC_COMM, MOD_NONE, KC_1, MOD_LSFT)
- MK_KEY(US_BK_QUOT, KC_QUOT, MOD_NONE, KC_GRV, MOD_NONE)
-
- // Keys for BEAKL WI on Qwerty
- MK_KEY(KC_BKW_DOT, KC_DOT, MOD_NONE, KC_GRV, MOD_NONE)
- MK_KEY(KC_BKW_COMM, KC_COMM, MOD_NONE, KC_TILD, MOD_NONE)
- MK_KEY(KC_BKW_COLN, KC_SCLN, MOD_LSFT, KC_SCLN, MOD_NONE)
-
-# if defined(SECOND_LOCALE) && (SECOND_LOCALE == BEPO) || (DEFAULT_LANG == BEPO)
- // Keys for BEAKL on BEPO
- MK_KEY(BP_BK_DOT, BP_DOT, MOD_NONE, BP_AT, MOD_NONE)
- MK_KEY(BP_BK_COMM, BP_COMM, MOD_NONE, BP_EXLM, MOD_NONE)
- MK_KEY(BP_BK_QUOT, BP_QUOT, MOD_NONE, BP_PERC, MOD_LSFT)
-
-
-# ifdef BEAKLWI_LAYER_ENABLE
- // Keys for BEAKL WI on BEPO
- MK_KEY(BP_BKW_DOT, BP_DOT, MOD_NONE, BP_GRV, MOD_NONE)
- MK_KEY(BP_BKW_COMM, BP_COMM, MOD_NONE, BP_TILD, MOD_NONE)
- MK_KEY(BP_BKW_COLN, BP_COLN, MOD_LSFT, BP_SCLN, MOD_NONE)
-# endif
-
- // Keys for BEAKL 27 on BEPO
-# ifdef BEAKL27_LAYER_ENABLE
- MK_KEY(BP_BK2_DOT, BP_DOT, MOD_NONE, BP_GRV, MOD_NONE)
- MK_KEY(BP_BK2_COMM, BP_COMM, MOD_NONE, BP_QUES, MOD_NONE)
- MK_KEY(BP_BK2_EXLM, BP_EXLM, MOD_NONE, BP_PERC, MOD_LSFT)
- MK_KEY(BP_BK2_QUOT, BP_QUOT, MOD_NONE, BP_QUOT, MOD_NONE)
-# endif
-# endif
-#endif
-
-#ifdef BEAKL27_LAYER_ENABLE
- // Keys for BEAKL 27 on Qwerty
- /* // altered shifted pairs: dot = .` comma = ,? dquot = "! */
- MK_KEY(KC_BK2_DOT, KC_DOT, MOD_NONE, KC_GRV, MOD_NONE)
- MK_KEY(KC_BK2_COMM, KC_COMM, MOD_NONE, KC_QUES, MOD_NONE)
- MK_KEY(KC_BK2_EXLM, KC_EXLM, MOD_NONE, KC_DQUO, MOD_NONE)
- MK_KEY(KC_BK2_QUOT, KC_QUOT, MOD_NONE, KC_QUOT, MOD_NONE)
-
- MK_KEY(US_BK2_DOT, US_DOT, MOD_NONE, US_GRV, MOD_NONE)
- MK_KEY(US_BK2_COMM, US_COMM, MOD_NONE, US_QUES, MOD_NONE)
- MK_KEY(US_BK2_EXLM, US_EXLM, MOD_NONE, US_DQUO, MOD_NONE)
- MK_KEY(US_BK2_QUOT, US_QUOT, MOD_NONE, US_QUOT, MOD_NONE)
-#endif
-
-
-// shifted pairs: dot = .` comma = ,~ colon = :;
-
-#if defined(HD_NEU_LAYER_ENABLE) || \
- defined(HD_NEU_NARROW_LAYER_ENABLE) || \
- defined(HD_GOLD_LAYER_ENABLE) || \
- defined(HD_SILVER_LAYER_ENABLE) || \
- defined(HD_BRONZE_LAYER_ENABLE) || \
- defined(HD_PLATINUM_LAYER_ENABLE) || \
- defined(HD_REF_LAYER_ENABLE)
-
-// hands down alterations.
-/* alt shifts ;: .& /\* '? "! ,| -+ */
-// for en qwerty
- MK_KEY(KC_HD_DQUO, KC_QUOT, MOD_LSFT, KC_1, MOD_LSFT) // "!
- MK_KEY(KC_HD_QUOT, KC_QUOT, MOD_NONE, KC_SLSH, MOD_LSFT) // '?
-
- MK_KEY(KC_HD_DOT, KC_DOT, MOD_NONE, KC_7, MOD_LSFT) // .&
- MK_KEY(KC_HD_SCLN, KC_SCLN, MOD_NONE, KC_SCLN, MOD_LSFT) // ;:
- MK_KEY(KC_HD_COMM, KC_COMM, MOD_NONE, KC_BSLS, MOD_LSFT) // ,|
- MK_KEY(KC_HD_MINS, KC_MINS, MOD_NONE, KC_EQL, MOD_LSFT) // -+
- MK_KEY(KC_HD_SLSH, KC_SLSH, MOD_NONE, KC_8, MOD_LSFT) // /*
-
- // for us international
- MK_KEY(US_HD_DQUO, US_QUOT, MOD_LSFT, US_1, MOD_LSFT)
- MK_KEY(US_HD_QUOT, US_QUOT, MOD_NONE, KC_SLSH, MOD_LSFT)
-
- MK_KEY(US_HD_DOT, US_DOT, MOD_NONE, US_7, MOD_LSFT)
- MK_KEY(US_HD_SCLN, KC_SCLN, MOD_NONE, KC_SCLN, MOD_LSFT) // ;:
- MK_KEY(US_HD_COMM, US_COMM, MOD_NONE, US_BSLS, MOD_LSFT)
- MK_KEY(US_HD_MINS, US_MINS, MOD_NONE, US_EQL, MOD_LSFT)
- MK_KEY(US_HD_SLSH, US_SLSH, MOD_NONE, US_8, MOD_LSFT)
-
-// for bepo
-#if defined(SECOND_LOCALE) && (SECOND_LOCALE == BEPO) || (DEFAULT_LANG == BEPO)
- MK_KEY(BP_HD_DQUO, BP_DQUO, MOD_NONE, BP_QUES, MOD_NONE)
- MK_KEY(BP_HD_QUOT, BP_QUOT, MOD_NONE, BP_EXLM, MOD_NONE)
- MK_KEY(BP_HD_SCLN, BP_SCLN, MOD_NONE, BP_COLN, MOD_NONE) // ;:
-
- MK_KEY(BP_HD_DOT, BP_DOT, MOD_NONE, BP_AMPR, MOD_NONE)
- MK_KEY(BP_HD_COMM, BP_COMM, MOD_NONE, BP_PIPE, MOD_NONE)
- MK_KEY(BP_HD_MINS, BP_MINS, MOD_NONE, BP_PLUS, MOD_NONE)
- MK_KEY(BP_HD_SLSH, BP_SLSH, MOD_NONE, BP_ASTR, MOD_NONE)
-#endif
-
-#endif
-
-
-/* alt shifts ;: .& /\* '? "! ,| -+ */
-#ifdef HD_DASH_LAYER_ENABLE
-// DASH and Elan have these reversed from the metals.
-/* //alt shift keys. "? '! */
- MK_KEY(KC_HD_D_DQUO, KC_DQUO, MOD_NONE, KC_SLSH, MOD_LSFT) // "?
- MK_KEY(KC_HD_D_QUOT, KC_QUOT, MOD_NONE, KC_1, MOD_LSFT) // '!
-
- MK_KEY(KC_HD_D_DOT, KC_DOT, MOD_NONE, KC_7, MOD_LSFT) // .&
- MK_KEY(KC_HD_D_COMM, KC_COMM, MOD_NONE, KC_BSLS, MOD_LSFT) // ,|
- MK_KEY(KC_HD_D_MINS, KC_MINS, MOD_NONE, KC_EQL, MOD_LSFT) // -+
- MK_KEY(KC_HD_D_SLSH, KC_SLSH, MOD_NONE, KC_8, MOD_LSFT) // /*
-
- // for us international
- MK_KEY(US_HD_D_DQUO, US_QUOT, MOD_LSFT, KC_SLSH, MOD_LSFT)
- MK_KEY(US_HD_D_QUOT, US_QUOT, MOD_NONE, US_1, MOD_LSFT)
-
- MK_KEY(US_HD_D_DOT, US_DOT, MOD_NONE, US_7, MOD_LSFT)
- MK_KEY(US_HD_D_COMM, US_COMM, MOD_NONE, US_BSLS, MOD_LSFT)
- MK_KEY(US_HD_D_MINS, US_MINS, MOD_NONE, US_EQL, MOD_LSFT)
- MK_KEY(US_HD_D_SLSH, US_SLSH, MOD_NONE, US_8, MOD_LSFT)
-
-// for bepo
-#if defined(SECOND_LOCALE) && (SECOND_LOCALE == BEPO) || (DEFAULT_LANG == BEPO)
- MK_KEY(BP_HD_D_DQUO, BP_DQUO, MOD_NONE, BP_QUES, MOD_NONE)
- MK_KEY(BP_HD_D_QUOT, BP_QUOT, MOD_NONE, BP_EXLM, MOD_NONE)
-
- MK_KEY(BP_HD_D_DOT, BP_DOT, MOD_NONE, BP_AMPR, MOD_NONE)
- MK_KEY(BP_HD_D_COMM, BP_COMM, MOD_NONE, BP_PIPE, MOD_NONE)
- MK_KEY(BP_HD_D_MINS, BP_MINS, MOD_NONE, BP_PLUS, MOD_NONE)
- MK_KEY(BP_HD_D_SLSH, BP_SLSH, MOD_NONE, BP_ASTR, MOD_NONE)
-#endif
-
-#endif
-
-#ifdef HD_ELAN_LAYER_ENABLE
-// Elan has alt shift of comma and dot on the thumb.
-// en
- MK_KEY(KC_HD_E_DQUO, KC_QUOT, MOD_LSFT, KC_SLSH, MOD_LSFT)
- MK_KEY(KC_HD_E_QUOT, KC_QUOT, MOD_NONE, KC_1, MOD_LSFT)
-// the rest is the same
- MK_KEY(KC_HD_E_MINS, KC_MINS, MOD_NONE, KC_EQL, MOD_LSFT) // -+
- MK_KEY(KC_HD_E_SLSH, KC_SLSH, MOD_NONE, KC_8, MOD_LSFT) // /*
-// until .: and ,;
- MK_KEY(KC_HD_E_DOT, KC_DOT, MOD_NONE, KC_SCLN, MOD_LSFT) // .:
- MK_SKEY(KC_HD_E_COMM, KC_COMM, KC_SCLN) // ,;
-/* (< {[ */
- MK_KEY(KC_HD_E_LPRN, KC_LPRN, MOD_NONE, KC_COMM, MOD_LSFT)
- MK_KEY(KC_HD_E_LCBR, KC_LCBR, MOD_NONE, KC_LBRC, MOD_NONE )
-
-// US-intl
- MK_KEY(US_HD_E_DQUO, US_QUOT, MOD_LSFT, KC_SLSH, MOD_LSFT)
- MK_KEY(US_HD_E_QUOT, US_QUOT, MOD_NONE, US_1, MOD_LSFT)
-// the rest is the same
- MK_KEY(US_HD_E_MINS, US_MINS, MOD_NONE, US_EQL, MOD_LSFT) // -+
- MK_KEY(US_HD_E_SLSH, US_SLSH, MOD_NONE, US_8, MOD_LSFT) // /*
-// until .: and ,;
- MK_KEY(US_HD_E_DOT, KC_DOT, MOD_NONE, US_SCLN, MOD_LSFT) // .:
- MK_SKEY(US_HD_E_COMM, US_COMM, US_SCLN) // ,;
-/* (< {[ */
- MK_KEY(US_HD_E_LPRN, US_LPRN, MOD_NONE, US_COMM, MOD_LSFT)
- MK_KEY(US_HD_E_LCBR, US_LCBR, MOD_NONE, US_LBRC, MOD_NONE )
-
-// bepo
-#if defined(SECOND_LOCALE) && (SECOND_LOCALE == BEPO) || (DEFAULT_LANG == BEPO)
- MK_KEY(BP_HD_E_DQUO, BP_DQUO, MOD_NONE, BP_SLSH, MOD_NONE)
- MK_KEY(BP_HD_E_QUOT, BP_QUOT, MOD_NONE, BP_EXLM, MOD_NONE)
-// the rest is the same
- MK_KEY(BP_HD_E_MINS, BP_MINS, MOD_NONE, BP_EQL, MOD_NONE) // -+
- MK_KEY(BP_HD_E_SLSH, BP_SLSH, MOD_NONE, BP_ASTR, MOD_NONE) // /*
-// until .: and ,;
- MK_KEY(BP_HD_E_DOT, KC_DOT, MOD_NONE, BP_SCLN, MOD_LSFT) // .:
- MK_SKEY(BP_HD_E_COMM, BP_COMM, BP_SCLN) // ,;
-/* (< {[ */
- MK_KEY(BP_HD_E_LPRN, BP_LPRN, MOD_NONE, BP_COMM, MOD_LSFT)
- MK_KEY(BP_HD_E_LCBR, BP_LCBR, MOD_NONE, BP_LBRC, MOD_NONE )
-#endif
-#endif
diff --git a/users/ericgebhart/defs/combos.def b/users/ericgebhart/defs/combos.def
deleted file mode 100644
index 85b5d2d588..0000000000
--- a/users/ericgebhart/defs/combos.def
+++ /dev/null
@@ -1,139 +0,0 @@
-// Per layer combo reference layers.
-// Default is current layer, or COMBO_REF_DEFAULT if set.
-// _COMBO_REF is the default if enabled.
-
-//COMBO_REF_LAYER(_DVORAK_BP, _COMBO_REF2)
-COMBO_REF_LAYER(_NAV, _NAV)
-
-
-// COMBOS
-// name result chord keys
-
-// sml nav, sml keypad, zqxj, onshot accents, oneshot symbols
-// home, end, caps word, accents? -> aeeecio oe, ao,
-
-
-// reference COMBO_REF
-COMB(TSCTL, TS_LCTL, CB_1L3, CB_1L4)
-COMB(SMLNAV1, SML_NAV, CB_1L2, CB_1L3)
-COMB(OSACCENTMT, SML_KEYPAD, CB_1L2, CB_1R4)
-
-#ifdef TOPROWS_LAYER_ENABLE
-COMB(OSTOPROWS, SML_TOPROWS, CB_1L3, CB_1R3)
-#endif
-
-//COMB(OSlsftT, OS_LSFT, CB_1L4, CB_1R2)
-COMB(OSSFT, OS_LSFT, CB_2L4, CB_2R2)
-COMB(TSCTL2, TS_LCTL, CB_1L4, CB_1R2)
-
-// COMB(SMLNAV, SML_NAV, CB_2L4, CB_2R2)
-COMB(OSCTL, OS_LCTL, CB_2L2, CB_2R4)
-
-COMB(OSACCENTM, OSL_ACCENTS_MORTE, CB_2L3, CB_2R3)
-
-COMB(capsword, CAPS_WORD, CB_3L4, CB_3R2)
-COMB(OSRALT, OS_RALT, CB_3L3, CB_3R3)
-COMB(OSLALT2, OS_LALT, CB_3L2, CB_3R4)
-
-COMB(OSLAYER, LAYER_OSL, CB_3L1, CB_3R5)
-COMB(OSLSYMB, OSL_SYMB, CB_TH2, CB_TH5)
-COMB(LNAV, SML_NAV, CB_TH3, CB_TH4)
-
-COMB(_Q, KC_Q, CB_3L2, CB_3L3)
-COMB(_X, KC_X, CB_3L3, CB_3L4)
-COMB(_Z, KC_Z, CB_3R3, CB_3R4)
-
-// vertical thumb combos for the kyria
-//COMB(xxx, xxx, CB_TH2, CB_0TH1)
-
-#ifdef MEDIA_LAYER_ENABLE
-COMB(SMLMEDIA, SML_MEDIA, CB_TH3, CB_0TH2)
-#endif
-
-COMB(OSLACCENT2, OSL_ACCENTS_MORTE, CB_TH4, CB_0TH3)
-COMB(KEYPAD, SML_KEYPAD, CB_TH5, CB_0TH4)
-
-
-
-// reference COMBO_REF2
-
-#if defined(SECOND_LOCALE) && (SECOND_LOCALE == BEPO)
-COMB(TSCTL_BP, TS_LCTL, CB_1L3, CB_1L4)
-COMB(SMLNAV1_bp, SML_NAV, CB_1L2, CB_1L3)
-
-#ifdef ACCENTS_MORTE_LAYER_ENABLE
-COMB(OSLACCENT_bp, OSL(_ACCENTS_MORTE_BP), CB2_2L1, CB2_2L2)
-#endif
-
-COMB(SMLNAV_BP, SML_NAV, CB2_2L2, CB2_2L3)
-COMB(OSCTL_BP, OS_LCTL, CB2_2L3, CB2_2L4)
-
-COMB(OSSFT_BP, OS_LSFT, CB2_2R2, CB2_2R3)
-// COMB(SMLKEYPAD_BP, SML_KEYPAD_BP, CB2_2R3, CB2_2R4)
-
-COMB(capsword_BP, CAPS_WORD_ON, CB2_3L4, CB2_3R2)
-
-// COMB(OSLSYMBP_BP, OSL(_SYMB_BP), CB2_TH2, CB2_TH5)
-COMB(LNAV_BP, SML_NAV, CB2_TH3, CB2_TH4)
-
-COMB(_Qbp, BP_Q, CB2_3L2, CB2_3L3)
-COMB(_Xbp, BP_X, CB2_3L3, CB2_3L4)
-COMB(_Zbp, BP_Z, CB2_3R3, CB2_3R4)
-#endif
-
-
-// Reference nav layer
-COMB(END_nav, KC_END, KC_PGUP, KC_PGDN)
-COMB(HOME_nav, KC_HOME, KC_UP, KC_DOWN)
-
-
-//COMB(JKL_SPC, KC_SPC, KC_J, KC_X)
-//SUBS(TH_THE, "the", KC_T, KC_H) // SUBS uses SEND_STRING to output the given string.
-
-// from possum vibes to review.
-/* COMBO NAME | OUTPUT | PARAMS */
-
-// /*---- TOP ROW ----*/
-// COMB(turbonav, NAV_TG, KC_W, KC_R) // Nav access
-// COMB(save, S_SAVE, KC_E, KC_R) // Save
-// COMB(back_fwd, BCK_FWD, KC_R, KC_T) // Back/Fwd (shifted)
-
-// COMB(undo_redo, UND_RED, KC_Y, KC_U) // Undo/Redo (shifted)
-// COMB(esc, KC_ESC, KC_U, KC_O) // Esc
-
-// #ifdef IS_PINKY_CLUSTER
-// COMB(delete, KC_DEL, KC_A, KC_SCLN)
-// COMB(caps, KC_CAPS, KC_Q, KC_P)
-// #endif
-
-// /*---- HOME ROW ----*/
-// COMB(cut, S_CUT, KC_S, KC_F) // Shift+Del (cut)
-// COMB(copy, S_COPY, KC_S, KC_D) // Ctrl+Ins (copy)
-// COMB(paste, S_PASTE, KC_D, KC_F) // Shift+Del (paste)
-// COMB(panic, PANIC, KC_D, KC_K) // panic!
-
-// COMB(nummode, NUMMODE, KC_J, KC_K) // Nummode toggle
-// COMB(symmode, SYM_TG, KC_K, KC_L) // Sym layer
-// COMB(tab, KC_TAB, KC_K, KC_M) // Tab
-
-
-// /*---- BOTTOM ROW ----*/
-// COMB(hash, KC_HASH, KC_X, KC_C) // #
-// COMB(fslash, KC_SLSH, KC_C, KC_V) // /
-
-// COMB(dash, KC_MINS, KC_M, KC_COMM) // -
-// COMB(asterisk, KC_ASTR, KC_COMM, KC_DOT) // *
-// COMB(at, KC_AT, KC_M, KC_DOT) // @
-
-
-// /*---- THUMBS ----*/
-// COMB(sys_lthm, SYS_OSL, KC_B, KC_ENT) // Sys OSL
-
-// COMB(space_shift, SPC_SFT, KC_TAB, KC_SPC) // space and activate oss
-
-// COMB(underscore_rthm, KC_UNDS, KC_SPC, KC_N) // _
-
-// /*---- THUMB+ALPHAS ----*/
-// // COMB(os_fun, FUN_OSL, KC_ENT, KC_C) // OS Func
-// // COMB(os_num, NUM_OSL, KC_A, KC_F) // OSL num
-// // COMB(os_sym, SYM_OSL, KC_SPC, KC_M) // OSL sym
diff --git a/users/ericgebhart/defs/custom_keys.def b/users/ericgebhart/defs/custom_keys.def
deleted file mode 100644
index 075b7de0c1..0000000000
--- a/users/ericgebhart/defs/custom_keys.def
+++ /dev/null
@@ -1,86 +0,0 @@
-// custom key codes.
- EPRM,
- //VRSN,
- CAPS_WORD_ON,
-
- // LAYERStuff.
- KC_NEXT_LOCALE,
- KC_NEXT_BASE_LAYER,
- KC_SET_BASE,
- // Misc.
- KC_MAKE,
- KC_RESET,
- KC_RGB_T,
- RGB_IDL,
- KC_SECRET_1,
- KC_SECRET_2,
- KC_SECRET_3,
- KC_SECRET_4,
- KC_SECRET_5,
-
- KC_SPACETEST,
-
- /// Need to evaluate which to keep.
- BCK_FWD, // Alt left and right
- CLEAR, // Clears all mods, does not change layers.
- LOCKSCR, // locks screen per is_windows value
- PANIC, // Clears all One-Shot keys and returns to base layer.
- UND_RED, // Ctrl Z and Y
-
- // macros
- QMKCOMP, // qmk compile
- QMKFLSH, // qmk flash
-
- // Swapper keys - just the swapper key, maybe gets reused.
- SW_REV, // Dead key, reverse direction for swapper
-
-// for the combo ref layers.
- CB_0M1, CB_0M2, CB_0M3,
- CB_1M1, CB_1M2, CB_1M3,
- CB_2M1, CB_2M2, CB_2M3,
- CB_3M1, CB_3M2, CB_3M3,
- CB_4M1, CB_4M2, CB_4M3, CB_4M4, CB_4M5,
-
- CB_1, CB_2, CB_3, CB_4, CB_5, CB_6, CB_7, CB_8, CB_9, CB_0,
-
- CB_1R1, CB_1R2, CB_1R3, CB_1R4, CB_1R5,
- CB_1L1, CB_1L2, CB_1L3, CB_1L4, CB_1L5,
- CB_2R1, CB_2R2, CB_2R3, CB_2R4, CB_2R5,
- CB_2L1, CB_2L2, CB_2L3, CB_2L4, CB_2L5,
- CB_3R1, CB_3R2, CB_3R3, CB_3R4, CB_3R5,
- CB_3L1, CB_3L2, CB_3L3, CB_3L4, CB_3L5,
- CB_4L1, CB_4L2, CB_4L3, CB_4L4, CB_4L5,
- CB_4R1, CB_4R2, CB_4R3, CB_4R4, CB_4R5,
-
- CB2_0M1, CB2_0M2, CB2_0M3,
- CB2_1M1, CB2_1M2, CB2_1M3,
- CB2_2M1, CB2_2M2, CB2_2M3,
- CB2_3M1, CB2_3M2, CB2_3M3,
- CB2_4M1, CB2_4M2, CB2_4M3, CB2_4M4, CB2_4M5,
-
- CB2_1, CB2_2, CB2_3, CB2_4, CB2_5, CB2_6, CB2_7, CB2_8, CB2_9, CB2_0,
-
- CB2_1R1, CB2_1R2, CB2_1R3, CB2_1R4, CB2_1R5,
- CB2_1L1, CB2_1L2, CB2_1L3, CB2_1L4, CB2_1L5,
- CB2_2R1, CB2_2R2, CB2_2R3, CB2_2R4, CB2_2R5,
- CB2_2L1, CB2_2L2, CB2_2L3, CB2_2L4, CB2_2L5,
- CB2_3R1, CB2_3R2, CB2_3R3, CB2_3R4, CB2_3R5,
- CB2_3L1, CB2_3L2, CB2_3L3, CB2_3L4, CB2_3L5,
- CB2_4L1, CB2_4L2, CB2_4L3, CB2_4L4, CB2_4L5,
- CB2_4R1, CB2_4R2, CB2_4R3, CB2_4R4, CB2_4R5,
-
-// core 6 thumb keys for combo reference layer
- CB_TH1, CB_TH2, CB_TH3, CB_TH4, CB_TH5, CB_TH6,
- CB2_TH1, CB2_TH2, CB2_TH3, CB2_TH4, CB2_TH5, CB2_TH6,
- CB_1TH1, CB_1TH2, CB_1TH3, CB_1TH4, CB_1TH5, CB_1TH6,
- CB2_1TH1, CB2_1TH2, CB2_1TH3, CB2_1TH4, CB2_1TH5, CB2_1TH6,
-
- // for the extra thumb keys on the kyria
- CB_0TH1 , CB_0TH2, CB_0TH3, CB_0TH4,
- CB_THA, CB_THB, CB_THC, CB_THD,
-
-// edge keys for the combo reference layer
- L0_CB, L1_CB, L2_CB, L3_CB,
- R0_CB, R1_CB, R2_CB, R3_CB,
- L0_CB2, L1_CB2, L2_CB2, L3_CB2,
- R0_CB2, R1_CB2, R2_CB2, R3_CB2,
diff --git a/users/ericgebhart/defs/encoders.def b/users/ericgebhart/defs/encoders.def
deleted file mode 100644
index 638d3fbf4b..0000000000
--- a/users/ericgebhart/defs/encoders.def
+++ /dev/null
@@ -1,65 +0,0 @@
-// Layer/none, encoder index 0/1, CW_KC, CCW_KC, Qualifying mod or none
-// LAYER_NONE and MOD_NONE for a single use.
-// LEFT and RIGHT for index. 0 and 1...
-
-// default encoders, all layers no mods.
-ENCODER_ACTION(LAYER_NONE, RIGHT, KC_PGDN, KC_PGUP, MOD_NONE)
-ENCODER_ACTION(LAYER_NONE, LEFT, KC_DOWN, KC_UP, MOD_NONE)
-ENCODER_ACTION(LAYER_NONE, LEFT, KC_PGDN, KC_PGUP, MOD_LSFT)
-
-// Symbol layer encoders.
-// left and right.
-ENCODER_ACTION(_SYMB_EN, LEFT, KC_LEFT, KC_RIGHT, MOD_NONE)
-// word left or right.
-ENCODER_ACTION(_SYMB_EN, LEFT, LCTL(KC_LEFT), LCTL(KC_RIGHT), MOD_NONE)
-
-// Nav layer encoders.
-ENCODER_ACTION(_NAV, LEFT, KC_TAB, S(KC_TAB), MOD_NONE)
-ENCODER_ACTION(_NAV, RIGHT, A(KC_TAB), A(S(KC_TAB)), MOD_NONE)
-ENCODER_ACTION(_NAV, RIGHT, KC_VOLU, KC_VOLD, MOD_NONE)
-
-// RGB functions for the RGB layer.
-#ifdef RGB_MATRIX_ENABLE
- ENCODER_FUNCTION(_RGB, LEFT,
- rgb_matrix_increase_speed_noeeprom,
- rgb_matrix_decrease_speed_noeeprom, MOD_NONE)
-
- ENCODER_FUNCTION(_RGB, RIGHT,
- rgb_matrix_increase_hue_noeeprom,
- rgb_matrix_decrease_hue_noeeprom, MOD_NONE)
-
- ENCODER_FUNCTION(_RGB, LEFT,
- rgb_matrix_increase_sat_noeeprom,
- rgb_matrix_decrease_sat_noeeprom, MOD_LSFT)
-
- ENCODER_FUNCTION(_RGB, RIGHT,
- rgb_matrix_increase_val_noeeprom,
- rgb_matrix_decrease_val_noeeprom, MOD_LSFT)
-
- ENCODER_FUNCTION(_RGB, LEFT,
- rgb_matrix_step_noeeprom;
- rgb_matrix_step_reverse_noeeprom, MOD_LCTL)
-
-#elif defined(RGBLIGHT_ENABLE)
-
- ENCODER_FUNCTION(_RGB, LEFT,
- rgblight_increase_speed_noeeprom,
- rgblight_decrease_speed_noeeprom, MOD_NONE)
-
- ENCODER_FUNCTION(_RGB, RIGHT,
- rgblight_increase_hue_noeeprom,
- rgblight_decrease_hue_noeeprom, MOD_NONE)
-
- ENCODER_FUNCTION(_RGB, LEFT,
- rgblight_increase_sat_noeeprom,
- rgblight_decrease_sat_noeeprom, MOD_LSFT)
-
- ENCODER_FUNCTION(_RGB, RIGHT,
- rgblight_increase_val_noeeprom,
- rgblight_decrease_val_noeeprom, MOD_LSFT)
-
-
- ENCODER_FUNCTION(_RGB, LEFT,
- rgblight_step_noeeprom,
- rgblight_step_reverse_noeeprom, MOD_LCTL)
- #endif // RGB_MATRIX_ENABLE || RGBLIGHT_ENABLE
diff --git a/users/ericgebhart/defs/key_overrides.def b/users/ericgebhart/defs/key_overrides.def
deleted file mode 100644
index 159e02e87e..0000000000
--- a/users/ericgebhart/defs/key_overrides.def
+++ /dev/null
@@ -1,23 +0,0 @@
-//KOL -> name, mod_mask, keycode, sendkeycode, layer to apply.
-
-// // these are actually handled by alt_local_keys, in a more universal
-// // and adaptable way.
-// KOL(slash_pipe, MOD_MASK_SHIFT, KC_SLSH, KC_PIPE, _DVORAK_EN)
-
-// this one is interesting.
-KOL(slash_backslash, MOD_MASK_ALT, KC_SLSH, KC_BSLS, _DVORAK_EN)
-
-// KOL(N2_dot, MOD_MASK_SHIFT, KC_2, KC_DOT, _KEYPAD_EN)
-// KOL(N3_comma, MOD_MASK_SHIFT, KC_3, KC_COMMA, _KEYPAD_EN)
-
-// KOL(hash_at, MOD_MASK_SHIFT, KC_HASH, KC_AT, _CDH)
-// KOL(dot_colon, MOD_MASK_SHIFT, KC_DOT, KC_COLN, _CDH)
-// KOL(comma_semicolon, MOD_MASK_SHIFT, KC_COMMA, KC_SCLN, _CDH)
-// KOL(space_unds, MOD_MASK_SHIFT, KC_SPACE, KC_UNDS, _CDH)
-// KOL(mins_exlm, MOD_MASK_SHIFT, KC_MINS, KC_EXLM, _CDH)
-
-// KOL(bspc_del, MOD_MASK_SHIFT, KC_BSPC, KC_DEL, _NAV)
-
-// KOL(zero_degree, MOD_MASK_SHIFT, KC_0, DEGREE, _KEYPAD_EN)
-
-// KOL(eur_pnd, MOD_MASK_SHIFT, KC_EUR, KC_PND, _SYMB_EN)
diff --git a/users/ericgebhart/defs/mod_lock.def b/users/ericgebhart/defs/mod_lock.def
deleted file mode 100644
index da53ea0503..0000000000
--- a/users/ericgebhart/defs/mod_lock.def
+++ /dev/null
@@ -1,19 +0,0 @@
-// mod lock keys. takes keymods not mods.
-// keycode should be defined in custom_keys.def.
-// custom key, modkey to activate
-MODL(ML_LSFT, KC_LSFT)
-MODL(ML_LCTL, KC_LCTL)
-MODL(ML_LALT, KC_LALT)
-MODL(ML_LGUI, KC_LGUI)
-
-// Keycodes which will NOT cancel mod lock mode.
-IGNORE_KC( KC_LEFT)
-IGNORE_KC( KC_RGHT)
-IGNORE_KC( KC_UP)
-IGNORE_KC( KC_DOWN)
-IGNORE_KC( KC_HOME)
-IGNORE_KC( KC_END)
-IGNORE_KC( ML_LALT)
-IGNORE_KC( ML_LCTL)
-IGNORE_KC( ML_LGUI)
-IGNORE_KC( ML_LSFT)
diff --git a/users/ericgebhart/defs/not_dead.def b/users/ericgebhart/defs/not_dead.def
deleted file mode 100644
index 66023ec523..0000000000
--- a/users/ericgebhart/defs/not_dead.def
+++ /dev/null
@@ -1,19 +0,0 @@
-// Make not dead keys from dead keys.
-// Not dead keycode, dead key
-NOT_DEAD(KC_DQUO_ND, KC_DQUO)
-NOT_DEAD(KC_GRV_ND, KC_GRV)
-NOT_DEAD(KC_QUOT_ND, KC_QUOT)
-NOT_DEAD(KC_CIRC_ND, KC_CIRC)
-NOT_DEAD(KC_TILD_ND, KC_TILD)
-
-NOT_DEAD(US_DQUO_ND, US_DQUO)
-NOT_DEAD(US_GRV_ND, US_GRV)
-NOT_DEAD(US_QUOT_ND, US_QUOT)
-NOT_DEAD(US_CIRC_ND, US_CIRC)
-NOT_DEAD(US_TILD_ND, US_TILD)
-
-NOT_DEAD(BP_DQUO_ND, BP_DQUO)
-NOT_DEAD(BP_GRV_ND, BP_GRV)
-NOT_DEAD(BP_QUOT_ND, BP_QUOT)
-NOT_DEAD(BP_CIRC_ND, BP_CIRC)
-NOT_DEAD(BP_TILD_ND, BP_TILD)
diff --git a/users/ericgebhart/defs/nshot.def b/users/ericgebhart/defs/nshot.def
deleted file mode 100644
index 79559534c7..0000000000
--- a/users/ericgebhart/defs/nshot.def
+++ /dev/null
@@ -1,45 +0,0 @@
-// Define keycodes in custom keys.
-// KEYCode, mod keycode, to set for n-shot.
-// ONESHOT is for one.
-// NSHOT takes a count.
-
-// oneshots
-ONESHOT(OS_LSFT, KC_LSFT)
-ONESHOT(OS_LCTL, KC_LCTL)
-ONESHOT(OS_LALT, KC_LALT)
-ONESHOT(OS_LGUI, KC_LGUI)
-
-ONESHOT(OS_RSFT, KC_RSFT)
-ONESHOT(OS_RCTL, KC_RCTL)
-ONESHOT(OS_RALT, KC_RALT)
-ONESHOT(OS_RGUI, KC_RGUI)
-
-// N-Shots
-NSHOT(TS_LCTL, KC_LCTL, 2)
-NSHOT(TS_RCTL, KC_RCTL, 2)
-
-// Keys which will cancel the n-shots.
-CANCEL_KEY( PANIC)
-CANCEL_KEY( CLEAR)
-//CANCEL_KEY( THM_LH0)
-//CANCEL_KEY( THM_LH1)
-//CANCEL_KEY( THM_RH0)
-//CANCEL_KEY( THM_RH1)
-
-// inherited from @possumvibes, keeping for now.
-// Keys which will be ignored by n-shots.
-//IGNORE_KEY( THM_LH0)
-//IGNORE_KEY( THM_LH1)
-//IGNORE_KEY( THM_RH0)
-//IGNORE_KEY( THM_RH1)
-//IGNORE_KEY( SYM_OSL)
-//IGNORE_KEY( SYM_TG)
-//IGNORE_KEY( NAV_TG)
-//IGNORE_KEY( NUM_OSL)
-//IGNORE_KEY( NUM_TO)
-//IGNORE_KEY( FUN_OSL)
-//IGNORE_KEY( ALPHA)
-IGNORE_KEY( SML_NAV)
-IGNORE_KEY( SPC_TOPR)
-// IGNORE_KEY( SML_KEYPAD)
-//IGNORE_KEY( SML_TOPROWS)
diff --git a/users/ericgebhart/defs/oneshot.def b/users/ericgebhart/defs/oneshot.def
deleted file mode 100644
index c54215234f..0000000000
--- a/users/ericgebhart/defs/oneshot.def
+++ /dev/null
@@ -1,17 +0,0 @@
-// custom-key, Oneshot name.
- ONESHOT( OS_LSFT, ONESHOT_LSFT)
- ONESHOT( OS_LCTL, ONESHOT_LCTL)
- ONESHOT( OS_LALT, ONESHOT_LALT)
- ONESHOT( OS_LGUI, ONESHOT_LGUI)
-
-// keys to cancel
- CANCEL_KEY( KC_ESC)
-
-// CANCEL_KEY( KC_FNAV)
-// CANCEL_KEY( KC_FNUM)
-// CANCEL_KEY( KC_FCAPS)
-
-// keys to ignore.
-IGNORE_KEY( SPC_NAV)
-// IGNORE_KEY( KC_FNAV)
-// IGNORE_KEY( KC_FSYM)
diff --git a/users/ericgebhart/defs/send_string.def b/users/ericgebhart/defs/send_string.def
deleted file mode 100644
index 455d25bfb1..0000000000
--- a/users/ericgebhart/defs/send_string.def
+++ /dev/null
@@ -1,7 +0,0 @@
-// key to be defined and string to send.
-
-//SEND_STR(MYKEY, "this is a test")
-//SEND_STR_DELAY(MYKEY4, "this is another test")
-
-SEND_STR_DELAY(VRSN, QMK_KEYBOARD ":" QMK_KEYMAP " @ " QMK_VERSION ", Built on: " QMK_BUILDDATE)
-// SEND_STR_DELAY(VRSN, QMK_KEYBOARD ":" QMK_KEYMAP " # @ " QMK_VERSION)
diff --git a/users/ericgebhart/defs/smart_lock.def b/users/ericgebhart/defs/smart_lock.def
deleted file mode 100644
index 8202feb0d9..0000000000
--- a/users/ericgebhart/defs/smart_lock.def
+++ /dev/null
@@ -1,123 +0,0 @@
-// Define smart layers here.
-// SMLL = smart lock layer.
-// SMLM = smart lock mod.
-
-// Keycode, layer/mod.
-// list of keycodes to ignore.
-
-SMLM(SMLM_LSFT, MOD_LSFT,
- ___VI_ARROWS___,
- ___HOME_PGDN_PGUP_END___,
- ___TAB_PGDN_PGUP_BKTAB___,
- ___SML_MODS_L___)
-
-SMLM(SMLM_LCTL, MOD_LCTL,
- ___VI_ARROWS___,
- ___HOME_PGDN_PGUP_END___,
- ___TAB_PGDN_PGUP_BKTAB___,
- ___SML_MODS_L___)
-
-SMLM(SMLM_LALT, MOD_LALT,
- ___VI_ARROWS___,
- ___HOME_PGDN_PGUP_END___,
- ___TAB_PGDN_PGUP_BKTAB___,
- ___SML_MODS_L___)
-
-SMLM(SMLM_LGUI, MOD_LGUI,
- ___VI_ARROWS___,
- ___HOME_PGDN_PGUP_END___,
- ___TAB_PGDN_PGUP_BKTAB___,
- ___SML_MODS_L___)
-
-SMLM(SMLM_RSFT, MOD_RSFT,
- ___VI_ARROWS___,
- ___HOME_PGDN_PGUP_END___,
- ___TAB_PGDN_PGUP_BKTAB___,
- ___SML_MODS_L___)
-
-SMLM(SMLM_RCTL, MOD_RCTL,
- ___VI_ARROWS___,
- ___HOME_PGDN_PGUP_END___,
- ___TAB_PGDN_PGUP_BKTAB___,
- ___SML_MODS_L___)
-
-SMLM(SMLM_RALT, MOD_RALT,
- ___VI_ARROWS___,
- ___HOME_PGDN_PGUP_END___,
- ___TAB_PGDN_PGUP_BKTAB___,
- ___SML_MODS_L___)
-
-SMLM(SMLM_RGUI, MOD_RGUI,
- ___VI_ARROWS___,
- ___HOME_PGDN_PGUP_END___,
- ___TAB_PGDN_PGUP_BKTAB___,
- ___SML_MODS_L___)
-
-SMLL(SML_NAV, _NAV, ___NAV_3x10___)
-
-#ifdef MEDIA_LAYER_ENABLE
-SMLL(SML_MEDIA, _MEDIA, ___MEDIA_3x10___)
-#endif
-
-#ifdef MOUSEKEY_ENABLE
-SMLL(SML_NAVm, _NAVm, ___NAVm_3x10___)
-#endif
-
-SMLL(SML_KEYPAD, _KEYPAD_EN,
- KC_1,
- KC_2,
- KC_3,
- KC_4,
- KC_5,
- KC_6,
- KC_7,
- KC_8,
- KC_9,
- KC_0,
- KC_PERC,
- KC_DLR,
- KC_COMM,
- KC_DOT,
- KC_SLSH,
- KC_MINS,
- KC_ASTR,
- KC_PLUS,
- KC_COLN,
- KC_SCLN,
- KC_EQL,
- // KC_UNDS,
- KC_BSPC,
- KC_X,
- SYM_MO)
-
-// SMLL(SML_KEYPAD_BP, _KEYPAD_BP,
-// BP_1,
-// BP_2,
-// BP_3,
-// BP_4,
-// BP_5,
-// BP_6,
-// BP_7,
-// BP_8,
-// BP_9,
-// BP_0,
-// BP_PERC,
-// BP_DLR,
-// BP_COMM,
-// BP_DOT,
-// BP_SLSH,
-// BP_MINS,
-// BP_ASTR,
-// BP_PLUS,
-// BP_COLN,
-// BP_SCLN,
-// BP_EQL,
-// // KC_UNDS,
-// KC_BSPC,
-// BP_X,
-// SYM_MO)
-
-#ifdef TOPROWS_LAYER_ENABLE
-SMLL(SML_TOPROWS, _TOPROWS_EN, ___10_SYMBOLS___, ___10_NUMBERS___)
-#endif
-//SMLL(SML_SYMB, _SYMB_EN, ___SYMB_BEAKLB_3x10___)
diff --git a/users/ericgebhart/defs/swapper.def b/users/ericgebhart/defs/swapper.def
deleted file mode 100644
index 64a51910cb..0000000000
--- a/users/ericgebhart/defs/swapper.def
+++ /dev/null
@@ -1,3 +0,0 @@
-// KEYCODE, Reverseit kc, KC to send, KC to send in reverse, MODs to apply.
-SWAPPER_KEY(SW_WIN, SW_REV, KC_TAB, S(KC_TAB), KC_LALT)
-SWAPPER_KEY(SW_TAB, SW_REV, KC_TAB, S(KC_TAB), KC_LCTL)
diff --git a/users/ericgebhart/defs/tap_hold.def b/users/ericgebhart/defs/tap_hold.def
deleted file mode 100644
index 54140b99f8..0000000000
--- a/users/ericgebhart/defs/tap_hold.def
+++ /dev/null
@@ -1,68 +0,0 @@
-// tap or long tap for different key.
-
-// One key copy/paste
-TP_TPL(KC_CCCV, LCTL(KC_C), LCTL(KC_V))
-// New TaB/Window
-TP_TPL(KC_CTCN, LCTL(KC_T), LCTL(KC_N))
-// Close Tab-window/Quit
-TP_TPL(KC_CWCQ, LCTL(KC_W), LCTL(KC_Q))
-// Xmonad scratch pads or desktop
-//TP_TPL(KC_XM_PORD, LGUI(KC_E), LGUI(KC_T))
-
-//TP_SML(ENTNAV, KC_ENTER, SML_NAV)
-
-
-#if defined(SECOND_LOCALE) && (SECOND_LOCALE == BEPO) || (DEFAULT_LANG == BEPO)
-TP_TPL(BP_CCCV, LCTL(BP_C), LCTL(BP_V))
-TP_TPL(BP_CTCN, LCTL(BP_T), LCTL(BP_N))
-TP_TPL(BP_CWCQ, LCTL(BP_W), LCTL(BP_Q))
-TP_TPL(BP_XM_PORD, LGUI(BP_E), LGUI(BP_T))
-
-TP_TPL(BP_C_CCED, BP_C, BP_CCED)
-#endif
-
-
-#if defined(SECOND_LOCALE) && (SECOND_LOCALE == US_INT) || (DEFAULT_LANG == US_INT)
-TP_TPL(US_CCCV, LCTL(US_C), LCTL(US_V))
-TP_TPL(US_CTCN, LCTL(US_T), LCTL(US_N))
-TP_TPL(US_CWCQ, LCTL(US_W), LCTL(US_Q))
-TP_TPL(US_XM_PORD, LGUI(US_E), LGUI(US_T))
-
-TP_TPL(US_C_CCED, US_C, US_CCED)
-#endif
-
-// Open on tap and Open with close and back arrow on hold.
-// (){}[]""''``<>
-# if defined(SECOND_LOCALE) && (SECOND_LOCALE == EN) || (DEFAULT_LANG == EN)
-OPEN_OCL(KC_OCPRN, KC_LPRN, KC_RPRN)
-OPEN_OCL(KC_OCBRC, KC_LBRC, KC_RBRC)
-OPEN_OCL(KC_OCCBR, KC_LCBR, KC_RCBR)
-OPEN_OCL(KC_OCDQUO, KC_DQUO, KC_DQUO)
-OPEN_OCL(KC_OCQUOT, KC_QUOT, KC_QUOT)
-OPEN_OCL(KC_OCGRV, KC_GRAVE, KC_GRAVE)
-OPEN_OCL(KC_OCLTGT, KC_LT, KC_GT)
-#endif
-
-
-#if defined(SECOND_LOCALE) && (SECOND_LOCALE == BEPO) || (DEFAULT_LANG == BEPO)
-OPEN_OCL(BP_OCPRN, BP_LPRN, BP_RPRN)
-OPEN_OCL(BP_OCBRC, BP_LBRC, BP_RBRC)
-OPEN_OCL(BP_OCCBR, BP_LCBR, BP_RCBR)
-OPEN_OCL(BP_OCDQUO, BP_DQUO, BP_DQUO)
-OPEN_OCL_ND(BP_OCQUOT, BP_QUOT, BP_QUOT)
-OPEN_OCL(BP_OCGRV, BP_GRV, BP_GRV)
-OPEN_OCL(BP_OCLTGT, BP_LT, BP_GT)
-#endif
-
-
-
-#if defined(SECOND_LOCALE) && (SECOND_LOCALE == US_INT) || (DEFAULT_LANG == US_INT)
-OPEN_OCL(US_OCPRN, US_LPRN, US_RPRN)
-OPEN_OCL(US_OCBRC, US_LBRC, US_RBRC)
-OPEN_OCL(US_OCCBR, US_LCBR, US_RCBR)
-OPEN_OCL(US_OCDQUO, US_DQUO, US_DQUO)
-
-OPEN_OCL_ND(US_OCQUOT, US_QUOT, US_QUOT)
-OPEN_OCL(US_OCGRV, US_GRV, US_GRV)
-OPEN_OCL(US_OCLTGT, US_LT, US_GT)
-#endif
diff --git a/users/ericgebhart/defs/unicode.def b/users/ericgebhart/defs/unicode.def
deleted file mode 100644
index ee8dbecead..0000000000
--- a/users/ericgebhart/defs/unicode.def
+++ /dev/null
@@ -1,5 +0,0 @@
-// define keys to send unicode strings.
- UC_STR(UC_FLIP, "(ノಠ痊ಠ)ノ彡┻━┻")
- UC_STR(UC_TABL, "┬─┬ノ( º _ ºノ)")
- UC_STR(UC_SHRG, "¯\\_(ツ)_/¯")
- UC_STR(UC_DISA, "ಠ_ಠ")
diff --git a/users/ericgebhart/ericgebhart.c b/users/ericgebhart/ericgebhart.c
deleted file mode 100755
index 965456e56c..0000000000
--- a/users/ericgebhart/ericgebhart.c
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- Copyright 2018 Eric Gebhart <e.a.gebhart@gmail.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 "ericgebhart.h"
-
-#include "quantum.h"
-#include "version.h"
-#include "action.h"
-#include "action_layer.h"
-#include "process_keycode/process_tap_dance.h"
-
-// Add reconfigurable functions here, for keymap customization
-// This allows for a global, userspace functions, and continued
-// customization of the keymap. Use _keymap instead of _user
-// functions in the keymaps
-__attribute__ ((weak))
-void matrix_init_keymap(void) {}
-
-__attribute__ ((weak))
-void matrix_scan_keymap(void) {}
-
-__attribute__ ((weak))
-uint32_t layer_state_set_keymap (uint32_t state) {
- return state;
-}
-
-__attribute__ ((weak))
-void led_set_keymap(uint8_t usb_led) {}
diff --git a/users/ericgebhart/ericgebhart.h b/users/ericgebhart/ericgebhart.h
deleted file mode 100755
index 4721b85ebd..0000000000
--- a/users/ericgebhart/ericgebhart.h
+++ /dev/null
@@ -1,28 +0,0 @@
-#pragma once
-/*
- Copyright 2018 Eric Gebhart <e.a.gebhart@gmail.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/>.
-*/
-
-#ifndef ericgebhart
-#define ericgebhart
-
-#include "layer_names.h"
-
-#ifdef CONSOLE_ENABLE
-#include "print.h"
-#endif
-
-#endif
diff --git a/users/ericgebhart/extensions/accented_keys.c b/users/ericgebhart/extensions/accented_keys.c
deleted file mode 100644
index 2569bffea8..0000000000
--- a/users/ericgebhart/extensions/accented_keys.c
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
- Copyright 2022 Eric Gebhart <e.a.gebhart@gmail.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 USERSPACE_H
-#include "accented_keys.h"
-#include <stdint.h>
-#include <stdbool.h>
-
-static inline void tap_accented_letter(uint16_t letter, uint16_t dead_key) {
- uint8_t mod_state = get_mods();
- uint8_t oneshot_mod_state = get_oneshot_mods();
- del_mods(MOD_MASK_SHIFT);
- del_oneshot_mods(MOD_MASK_SHIFT);
- tap_code16(dead_key);
- set_mods(mod_state);
- set_oneshot_mods(oneshot_mod_state);
- tap_code(letter);
-}
-
-#undef ACCENTED
-#define ACCENTED(KC, K1, DEAD_KEY) \
- case KC: \
- if (record->event.pressed) { \
- tap_accented_letter(K1, DEAD_KEY); \
- } \
- return false;
-
-
-bool process_accent_keys(uint16_t keycode, keyrecord_t* record) {
- switch(keycode){
-#ifdef ACCENTED_KEYS_ENABLE
-#include "accented_keys.def"
-#endif
- }
- return true;
-}
diff --git a/users/ericgebhart/extensions/accented_keys.h b/users/ericgebhart/extensions/accented_keys.h
deleted file mode 100644
index 017c6fa312..0000000000
--- a/users/ericgebhart/extensions/accented_keys.h
+++ /dev/null
@@ -1,19 +0,0 @@
-#pragma once
-/*
- Copyright 2018 Eric Gebhart <e.a.gebhart@gmail.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/>.
-*/
-
-bool process_accent_keys(uint16_t keycode, keyrecord_t* record);
diff --git a/users/ericgebhart/extensions/alt_shift.c b/users/ericgebhart/extensions/alt_shift.c
deleted file mode 100644
index 002adec230..0000000000
--- a/users/ericgebhart/extensions/alt_shift.c
+++ /dev/null
@@ -1,99 +0,0 @@
-#include USERSPACE_H
-#include <stdbool.h>
-#include <stdint.h>
-
-bool shift_for_two(uint16_t keycode, keyrecord_t *record){
- uint16_t mod_state = get_mods();
-
- bool is_shifted = (get_mods() & MOD_MASK_SHIFT) ||
- (get_oneshot_mods() & MOD_MASK_SHIFT);
-
- if(record ->event.pressed) {
- // If shifted, double these common punctuation marks.
- if(is_shifted){
- // clear shift temporarily
- del_mods(MOD_MASK_SHIFT);
- del_oneshot_mods(MOD_MASK_SHIFT);
-
- tap_code16(keycode);
- tap_code16(keycode);
-
- // restore previous shift state
- set_mods(mod_state);
- return false;
- }
- }
- return true;
-}
-
-bool shift_for_three(uint16_t keycode, keyrecord_t *record){
- uint16_t mod_state = get_mods();
-
- bool is_shifted = (get_mods() & MOD_MASK_SHIFT) ||
- (get_oneshot_mods() & MOD_MASK_SHIFT);
-
- if(record ->event.pressed) {
- // If shifted, double these common punctuation marks.
- if(is_shifted){
- // clear shift temporarily
- del_mods(MOD_MASK_SHIFT);
- del_oneshot_mods(MOD_MASK_SHIFT);
-
- tap_code16(keycode);
- tap_code16(keycode);
- tap_code16(keycode);
-
- // restore previous shift state
- set_mods(mod_state);
- return false;
- }
- }
- return true;
- }
-
-bool override_shift(uint16_t keycode,
- uint16_t shift_keycode,
- keyrecord_t *record
- ) {
-
- bool is_shifted = (get_mods() & MOD_MASK_SHIFT) ||
- (get_oneshot_mods() & MOD_MASK_SHIFT);
-
- if (record->event.pressed) {
- if (is_shifted) {
- uint8_t mod_state = get_mods();
- del_mods(MOD_MASK_SHIFT);
- del_oneshot_mods(MOD_MASK_SHIFT);
-
- tap_code16(shift_keycode);
-
- set_mods(mod_state);
- } else {
- //tap_code16(keycode);
- }
- }
- return false;
-}
-
-// macros for use in alt_shift.defs.
-#define ALT_SHIFT(KCKEY, KC01) \
- case KCKEY: \
- return override_shift(KCKEY, KC01, record); \
- break;
-
-#define SHIFT_FOR_2(KCKEY) \
- case KCKEY: \
- return shift_for_two(KCKEY, record); \
- break;
-
-#define SHIFT_FOR_3(KCKEY) \
- case KCKEY: \
- return shift_for_three(KCKEY, record); \
- break;
-
-bool process_alt_shift_user(uint16_t keycode, keyrecord_t *record) {
- switch(keycode){
-#include "alt_shift.def"
- }
- return true;
-}
diff --git a/users/ericgebhart/extensions/altlocal_keys.c b/users/ericgebhart/extensions/altlocal_keys.c
deleted file mode 100644
index 569a2076b5..0000000000
--- a/users/ericgebhart/extensions/altlocal_keys.c
+++ /dev/null
@@ -1,82 +0,0 @@
-/*
- Copyright 2018-2022 Eric Gebhart <e.a.gebhart@gmail.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/>.
-*/
-
-// Create custom keycodes with arbitrary shifted and unshifted keys.
-// originally for dvorak on bepo. But used by beakl on qwerty now too.
-
-// Why?: Because the keycodes are actually defined on the computer. So
-// if you are trying to have dvorak, or beakl on bepo-fr, the shifted keys
-// are wrong. But, I want my dvorak, so this allows the pairing of keys into
-// a keycode that has shifted and non shifted behavior, outside of what the
-// locale map says on the computer.
-//
-// These are the keys for dvorak on bepo. column one is the keycode and mods for
-// the unshifted key, the second column is the keycode and mods for the shifted key.
-// GR is Good Range. It subtracts SAFE_RANGE from the keycode so we can make a
-// reasonably sized array without difficulties. The macro is for the constant declarations
-// the function is for when we use it.
-
-//make an alt_local_keys.def - see the example.
-// Include this file where you have your process_record_user function,
-// call process_alt_local_key inside your process_record_user.
-
-#include USERSPACE_H
-#include "altlocal_keys.h"
-
-const uint16_t key_translations[][2][2] = {
-#include "altlocal_keys.def"
-};
-
-uint8_t gr(uint16_t kc){
- return (kc - SAFE_RANGE);
-}
-
-// send the right keycode for the right mod.
-// remove the mods we are taking care of,
-// send our keycodes then restore them.
-// all so we can make dvorak keys from bepo keycodes.
-void send_keycode(uint16_t kc){
- uint8_t tmp_mods = get_mods();
- bool is_shifted = ( tmp_mods & (MOD_BIT(KC_LSFT)|MOD_BIT(KC_RSFT)) );
-
- // need to turn of the shift if it is on.
- unregister_mods((MOD_BIT(KC_LSFT)|MOD_BIT(KC_RSFT)));
- if(is_shifted){
- register_mods(SHIFTED_MODS(kc));
- register_code16(SHIFTED_KEY(kc));
- unregister_code16(SHIFTED_KEY(kc));
- unregister_mods(SHIFTED_MODS(kc));
- } else{
- register_mods(UNSHIFTED_MODS(kc));
- register_code16(UNSHIFTED_KEY(kc));
- unregister_code16(UNSHIFTED_KEY(kc));
- unregister_mods(UNSHIFTED_MODS(kc));
- }
- clear_mods();
- register_mods(tmp_mods);
-}
-
-bool process_alt_local_key(uint16_t keycode, keyrecord_t* record) {
- switch(keycode){
- case ALT_LOCAL_KEYS_START ... ALT_LOCAL_KEYS_END:
- if(record->event.pressed)
- send_keycode(keycode);
- unregister_code(keycode);
- break;
- }
- return (true);
-}
diff --git a/users/ericgebhart/extensions/altlocal_keys.h b/users/ericgebhart/extensions/altlocal_keys.h
deleted file mode 100644
index 8e30472081..0000000000
--- a/users/ericgebhart/extensions/altlocal_keys.h
+++ /dev/null
@@ -1,56 +0,0 @@
-#pragma once
-/*
- Copyright 2018 Eric Gebhart <e.a.gebhart@gmail.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/>.
-*/
-
-// Create custom keycodes with arbitrary shifted and unshifted keys.
-// originally for dvorak on bepo. But used by beakl on qwerty now too.
-
-// Why?: Because the keycodes are actually defined on the computer. So
-// if you are trying to have dvorak, or beakl on bepo-fr, the shifted keys
-// are wrong. But, I want my dvorak, so this allows the pairing of keys into
-// a keycode that has shifted and non shifted behavior, outside of what the
-// locale map says on the computer.
-//
-// These are the keys for dvorak on bepo. column one is the keycode and mods for
-// the unshifted key, the second column is the keycode and mods for the shifted key.
-// GR is Good Range. It subtracts SAFE_RANGE from the keycode so we can make a
-// reasonably sized array without difficulties. The macro is for the constant declarations
-// the function is for when we use it.
-
-//make an alt_local_keys.def - see the example.
-// Include this file where you have your process_record_user function,
-// call process_alt_local_key inside your process_record_user.
-
-uint8_t gr(uint16_t);
-void send_keycode(uint16_t);
-bool process_alt_local_key(uint16_t keycode, keyrecord_t* record);
-
-#define MOD_NONE 0x00
-
-#define GR(x) (x-SAFE_RANGE)
-// indexs for the keycode translation table.
-
-#define MK_KEY(KCNAME, KC1, MOD1, KC2, MOD2) \
- [GR(KCNAME)] = {{KC1, MOD1}, {KC2, MOD2}},
-
-#define MK_SKEY(KCNAME, KC1, KC2) \
- [GR(KCNAME)] = {{KC1, MOD_NONE}, {KC2, MOD_NONE}},
-
-#define UNSHIFTED_KEY(key) key_translations[gr(key)][0][0]
-#define UNSHIFTED_MODS(key) key_translations[gr(key)][0][1]
-#define SHIFTED_KEY(key) key_translations[gr(key)][1][0]
-#define SHIFTED_MODS(key) key_translations[gr(key)][1][1]
diff --git a/users/ericgebhart/extensions/console_key_logger.c b/users/ericgebhart/extensions/console_key_logger.c
deleted file mode 100644
index 074673bd06..0000000000
--- a/users/ericgebhart/extensions/console_key_logger.c
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- Copyright 2018-2022 Eric Gebhart <e.a.gebhart@gmail.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/>.
-*/
-
-#if defined( CONSOLE_ENABLE) && defined(CONSOLE_KEY_LOGGER_ENABLE)
-
-#include USERSPACE_H
-#include "print.h"
-#include "console_key_logger.h"
-
-void process_console_key_logger(uint16_t keycode, keyrecord_t *record) {
- if (record->event.pressed) {
- uprintf("0x%04X,%u,%u,%u,%b,0x%02X,0x%02X,%u\n",
- keycode,
- record->event.key.row,
- record->event.key.col,
- get_highest_layer(layer_state),
- record->event.pressed,
- get_mods(),
- get_oneshot_mods(),
- record->tap.count
- );
- }
-}
-#endif
diff --git a/users/ericgebhart/extensions/console_key_logger.h b/users/ericgebhart/extensions/console_key_logger.h
deleted file mode 100644
index 5e7e2d5bc0..0000000000
--- a/users/ericgebhart/extensions/console_key_logger.h
+++ /dev/null
@@ -1,19 +0,0 @@
-#pragma once
-/*
- Copyright 2018-2022 Eric Gebhart <e.a.gebhart@gmail.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/>.
-*/
-
-void process_console_key_logger(uint16_t keycode, keyrecord_t *record);
diff --git a/users/ericgebhart/extensions/encoders.c b/users/ericgebhart/extensions/encoders.c
deleted file mode 100644
index 9a3d90b82f..0000000000
--- a/users/ericgebhart/extensions/encoders.c
+++ /dev/null
@@ -1,83 +0,0 @@
-/*
- Copyright 2022 Eric Gebhart <e.a.gebhart@gmail.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/>.
-*/
-#ifdef ENCODER_ENABLE
-#include "encoders.h"
-#include USERSPACE_H
-
-encoder_action_t encoder_actions[] = {
-#include "encoders.def"
-};
-uint8_t NUM_ENCODER_ACTIONS = sizeof(encoder_actions) / sizeof(encoder_action_t);
-
-
-bool encoder_update_user(uint8_t index, bool clockwise) {
- // do it twice, once for layer actions, once for non layer specific actions.
- if (!do_encoder_action(index, clockwise, true)){
- do_encoder_action(index, clockwise, false);
- }
- return false;
-}
-
-bool do_encoder_action(uint8_t index, bool clockwise, bool layer_actions) {
- uint8_t mods = get_mods();
- encoder_action_t *action;
-
- // look for a match.
- // on the layer, not on any layer.
- // with the mods, or no mods.
- for (int i = 0; i < NUM_ENCODER_ACTIONS; ++i) {
- action = &encoder_actions[i];
-
- // this encoder, or another.
- if (action->index != index)
- continue;
-
- // skip non layer specific actions and visa versa
- // two pass system, once for layers, again for
- // actions without layers.
- if (layer_actions){
- if (action->layer == LAYER_NONE ||
- action->layer != biton32(layer_state)){
- continue;
- }
- }else if (action->layer != LAYER_NONE)
- continue;
-
- // no mods, or these mods.
- if ((mods && (action->mods == MOD_NONE)) ||
- (mods && (mods != action->mods)))
- continue;
-
- // found one.
- if (clockwise) {
- if (action->clockwise != 0) {
- tap_code16(action->clockwise);
- } else if (action->cw_func != NULL) {
- action->cw_func();
- }
- } else {
- if (action->counter_clockwise != 0) {
- tap_code16(action->counter_clockwise);
- } else if (action->ccw_func != NULL) {
- action->ccw_func();
- }
- }
- }
- return false;
-}
-
-#endif
diff --git a/users/ericgebhart/extensions/encoders.h b/users/ericgebhart/extensions/encoders.h
deleted file mode 100644
index 458c5c541d..0000000000
--- a/users/ericgebhart/extensions/encoders.h
+++ /dev/null
@@ -1,46 +0,0 @@
-#pragma once
-/*
- Copyright 2018-2022 Eric Gebhart <e.a.gebhart@gmail.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 QMK_KEYBOARD_H
-
-typedef struct {
- uint16_t layer;
- uint16_t index; // 0 or 1, left/right.
- uint16_t clockwise;
- uint16_t counter_clockwise;
- uint16_t mods;
- void (*cw_func)(void);
- void (*ccw_func)(void);
-} encoder_action_t;
-extern encoder_action_t encoder_actions[];
-extern uint8_t NUM_ENCODER_ACTIONS;
-
-// haven't looked at the real values for index, but I know
-// 0 and 1 are left and right on my kyria.
-#define LEFT 0
-#define RIGHT 1
-#define LAYER_NONE -1
-#define MOD_NONE 0x00
-
-#define ENCODER_ACTION(LAYER, INDEX, CW_KC, CCW_KC, MOD) \
- {LAYER, INDEX, CW_KC, CCW_KC, MOD, NULL, NULL},
-
-#define ENCODER_FUNCTION(LAYER, INDEX, CW_FUNC, CCW_FUNC, MOD) \
- {LAYER, INDEX, 0, 0, MOD, CW_FUNC, CCW_FUNC},
-
-bool do_encoder_action(uint8_t index, bool clockwise, bool layer_actions);
diff --git a/users/ericgebhart/extensions/extensions.c b/users/ericgebhart/extensions/extensions.c
deleted file mode 100644
index f71e615a00..0000000000
--- a/users/ericgebhart/extensions/extensions.c
+++ /dev/null
@@ -1,91 +0,0 @@
-/*
- Copyright 2018-2022 Eric Gebhart <e.a.gebhart@gmail.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 USERSPACE_H
-
-#include "extensions.h"
-#include "keymap_combo.h"
-#include "altlocal_keys.h"
-#include "tap_hold.h"
-#include "accented_keys.h"
-#include "process_smart_lock.h"
-#include "mod_lock.h"
-#include "oneshot.h"
-#include "process_nshot.h"
-#include "process_locales.h"
-#include "unicode.h"
-#include "key_overrides.h"
-#include "console_key_logger.h"
-
-// should make header files maybe. being lazy.
-void process_not_dead(uint16_t keycode, keyrecord_t *record);
-bool process_alt_shift_user(uint16_t keycode, keyrecord_t *record);
-void process_send_strs(uint16_t keycode, keyrecord_t *record);
-//bool process_alt_local_key(uint16_t keycode, keyrecord_t* record);
-bool process_global_quick_tap(uint16_t keycode, keyrecord_t *record);
-
-// call this from the top of process records before the switch.
-
-bool process_extensions(uint16_t keycode, keyrecord_t *record){
- if (!process_locales(keycode, record)) { return false; }
-
-#ifdef GLOBAL_QUICK_TAP_ENABLE
- if (!process_global_quick_tap(keycode, record)) {return false; }
-#endif
-#ifdef CAPS_WORD_ENABLE
- if (!process_caps_word(keycode, record)) { return false; }
-#endif
-#ifdef ALT_LOCAL_ENABLE
- if (!process_alt_local_key(keycode, record)) { return false; }
-#endif
-#ifdef ACCENTED_KEYS_ENABLE
- if (!process_accent_keys(keycode, record)) { return false; }
-#endif
-#ifdef TAP_HOLD_ENABLE
- process_tap_hold_user(keycode, record);
-#endif
-#ifdef SMART_LOCK_ENABLE
- process_smart_lock(keycode, record);
-#endif
-#ifdef MOD_LOCK_ENABLE
- process_mod_lock(keycode, record);
-#endif
-#ifdef NSHOT_ENABLE
- if(!process_nshot_state(keycode, record)) {return false;}
-#endif
-#ifdef SEND_UNICODE_ENABLE
- process_unicode_strs(keycode, record);
-#endif
-#ifdef SEND_STRING_ENABLE
- process_send_strs(keycode, record);
-#endif
-#ifdef NOT_DEAD_ENABLE
- process_not_dead(keycode, record);
-#endif
-#ifdef ALT_SHIFT_ENABLE
- if(!process_alt_shift_user(keycode, record)) {return false;}
-#endif
-#if defined( CONSOLE_ENABLE) && defined(CONSOLE_KEY_LOGGER_ENABLE)
- process_console_key_logger(keycode, record);
-#endif
-#ifdef ONESHOT_MOD_ENABLE
- int8_t keycode_consumed = 0;
- keycode_consumed += update_oneshot_modifiers(keycode, record, keycode_consumed);
-#endif
- return true;
-
-}
diff --git a/users/ericgebhart/extensions/extensions.h b/users/ericgebhart/extensions/extensions.h
deleted file mode 100644
index 899dbdd3d6..0000000000
--- a/users/ericgebhart/extensions/extensions.h
+++ /dev/null
@@ -1,22 +0,0 @@
-#pragma once
-/*
- Copyright 2018-2022 Eric Gebhart <e.a.gebhart@gmail.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/>.
-*/
-
-bool process_extensions(uint16_t keycode, keyrecord_t *record);
-
-#define PROCESS_EXTENSIONS \
- if (!process_extensions(keycode, record)) {return false;}
diff --git a/users/ericgebhart/extensions/key_overrides.h b/users/ericgebhart/extensions/key_overrides.h
deleted file mode 100644
index 3fb0c9a5bb..0000000000
--- a/users/ericgebhart/extensions/key_overrides.h
+++ /dev/null
@@ -1,53 +0,0 @@
-#pragma once
-/*
- Copyright 2018-2022 Eric Gebhart <e.a.gebhart@gmail.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/>.
-*/
-#ifdef KEY_OVERRIDE_ENABLE
-
-#define KO_NAME(name, ...) &name,
-#define KO_T(name) const key_override_t name
-
-#undef KOL
-#define KOL(name, mods, modded_key, replacement, layer) \
- KO_T(name) = ko_make_with_layers(mods, modded_key, replacement, (1 << layer));
-
-#define KO(name, mods, key, replacement) \
- KO_T(name) = ko_make_basic(mods, key, replacement)
-
-#define KOLN(name, mods, key, replacement, layers, neg_mods) \
- KO_T(name) = ko_make_with_layers_and_negmods(mods, key, replacement, layers, neg_mods)
-
-#define KOLNO(name, mods, key, replacement, layers, neg_mods, options) \
- KO_T(name) = ko_make_with_layers_negmods_and_options \
- (mods, key, replacement, layers, neg_mods, options)
-
-#include "key_overrides.def"
-
-#undef KO
-#undef KOL
-#undef KOLN
-#undef KOLNO
-#define KO KO_NAME
-#define KOL KO_NAME
-#define KOLN KO_NAME
-#define KOLNO KO_NAME
-
-// This globally defines all key overrides to be used
-const key_override_t **key_overrides = (const key_override_t *[]){
-#include "key_overrides.def"
- NULL // Null terminate the array of overrides!
-};
-#endif
diff --git a/users/ericgebhart/extensions/keycodes.h b/users/ericgebhart/extensions/keycodes.h
deleted file mode 100755
index eafdfbad43..0000000000
--- a/users/ericgebhart/extensions/keycodes.h
+++ /dev/null
@@ -1,523 +0,0 @@
-#pragma once
-/*
- Copyright 2018-2022 Eric Gebhart <e.a.gebhart@gmail.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"
-#include "process_keycode/process_tap_dance.h"
-#include "eeconfig.h"
-#include "keymap_bepo.h"
-//#include "keymap_us_international.h"
-#include "keymap_us_international_linux.h"
-#include "lang.h"
-#include "ericgebhart.h"
-
-//#define ONESHOT_TAP_TOGGLE 2 /* Tapping this number of times holds the key until tapped once again. */
-
-// #define DEFAULT_LANG EN // US_INT // EN, BEPO, US_INT, EURkey
-
-#define KEY_NAME(NAME, ...) NAME,
-#define BLANK(...)
-
-bool process_record_secrets(uint16_t keycode, keyrecord_t *record);
-
-enum userspace_custom_keycodes {
- // Get all the custom keys from the defs if we can.
- ALT_LOCAL_KEYS_START = SAFE_RANGE,
-#ifdef ALT_LOCAL_ENABLE
-#undef MK_KEY
-#define MK_KEY KEY_NAME
-#undef MK_SKEY
-#define MK_SKEY KEY_NAME
-#include "altlocal_keys.def"
-#undef MK_KEY
-#undef MK_SKEY
-#endif
- ALT_LOCAL_KEYS_END,
-
-#ifdef ACCENTED_KEYS_ENABLE
-#undef ACCENTED
-#define ACCENTED KEY_NAME
-#include "accented_keys.def"
-#undef ACCENTED
-#endif
-
-#ifdef TAP_HOLD_ENABLE
-#undef TP_TPL
-#define TP_TPL KEY_NAME
-#undef TP_SML
-#define TP_SML KEY_NAME
-#undef OPEN_OCL
-#define OPEN_OCL KEY_NAME
-#undef OPEN_OCL_ND
-#define OPEN_OCL_ND KEY_NAME
-#include "tap_hold.def"
-#undef OPEN_OCL
-#undef OPEN_OCL_ND
-#undef TP_TPL
-#undef TP_SML
-#endif
-
-#ifdef UNICODE_ENABLE
-#undef UC_STR
-#define UC_STR KEY_NAME
-#include "unicode.def"
-#undef UC_STR
-#endif
-
-#ifdef SEND_STRING_ENABLE
-#undef SEND_STR
-#define SEND_STR KEY_NAME
-#undef SEND_STR_DELAY
-#define SEND_STR_DELAY KEY_NAME
-#include "send_string.def"
-#undef SEND_STR
-#undef SEND_STR_DELAY
-#endif
-
-#ifdef SMART_LOCK_ENABLE
-#undef SMLM
-#define SMLM KEY_NAME
-#undef SMLL
-#define SMLL KEY_NAME
-#include "smart_lock.def"
-#undef SMLM
-#undef SMLL
-#endif
-
-#ifdef MOD_LOCK_ENABLE
-#undef IGNORE_KC
-#define IGNORE_KC BLANK
-#undef MODL
-#define MODL KEY_NAME
-#include "mod_lock.def"
-#undef IGNORE_KC
-#undef MODL
-#endif
-
-
-#undef IGNORE_KEY
-#define IGNORE_KEY BLANK
-#undef CANCEL_KEY
-#define CANCEL_KEY BLANK
-#undef ONESHOT
-#undef NSHOT
-#define ONESHOT KEY_NAME
-#define NSHOT KEY_NAME
-
-#ifdef NSHOT_ENABLE
-#include "nshot.def"
-#else
- TS_RCTL,
- TS_LCTL,
-#endif
-
-#ifdef ONESHOT_MOD_ENABLE
-#include "oneshot.def"
-#endif
-
-#undef IGNORE_KEY
-#undef CANCEL_KEY
-#undef ONESHOT
-#undef NSHOT
-
-#ifdef SWAPPER_ENABLE
-#undef SWAPPER_KEY
-#define SWAPPER_KEY KEY_NAME
-#include "swapper.def"
-#undef SWAPPER_KEY
-#endif
-
-#ifdef NOT_DEAD_ENABLE
-#undef NOT_DEAD
-#define NOT_DEAD KEY_NAME
-#include "not_dead.def"
-#undef NOT_DEAD
-#endif
-
-#include "custom_keys.def"
- NEW_SAFE_RANGE
-};
-
-#define FIRST_LAYER (BEGINNING_OF_BASE_LAYERS + 1)
-
-#define TL_DQUO TLKC(_DQUO)
-#define TL_QUOT TLKC(_QUOT)
-#define TL_COMM TLKC(_COMM)
-#define TL_DOT TLKC(_DOT)
-#define TL_SCLN TLKC(_SCLN)
-#define TL_SLSH TLKC(_SLSH)
-#define TL_EXLM TLKC(_EXLM)
-#define TL_MINS TLKC(_MINS)
-#define TL_LPRN TLKC(_LPRN)
-#define TL_LCBR TLKC(_LCBR)
-#ifdef SYMBOL_LAYER_ENABLE
-#define TL_DOT_SYMB LT(LN_SYMB, LANG_KC(TL_DOT))
-#endif
-
-
-#define BP_LT BP_LABK
-#define BP_GT BP_RABK
-#define BP_TAB KC_TAB
-#define US_GT US_RABK
-#define US_LT US_LABK
-#define US_TAB KC_TAB
-#define US_DCMM KC_COMM // us doesn't have this dead key.
-
-// this is odd, there is interplay between this and
-// the not-dead extension. - and tap-hold not-dead.
-#undef US_TILD
-#define US_TILD KC_TILD
-// redefine us_circ so we actually get a circ.
-#undef US_CIRC
-#define US_CIRC KC_CIRC
-#define US_EQUAL KC_EQUAL
-// redefine us_quote so we actually get a quote.
-#undef US_QUOT
-#define US_QUOT KC_QUOT
-
-#define US_PRINT_SCREEN KC_PRINT_SCREEN
-#define US_SCROLL_LOCK KC_SCROLL_LOCK
-#define US_PAUSE KC_PAUSE
-#define BP_PRINT_SCREEN KC_PRINT_SCREEN
-#define BP_SCROLL_LOCK KC_SCROLL_LOCK
-#define BP_PAUSE KC_PAUSE
-
-#define BP_F1 KC_F1
-#define BP_F2 KC_F2
-#define BP_F3 KC_F3
-#define BP_F4 KC_F4
-#define BP_F5 KC_F5
-#define BP_F6 KC_F6
-#define BP_F7 KC_F7
-#define BP_F8 KC_F8
-#define BP_F9 KC_F9
-#define BP_F10 KC_F10
-#define BP_F11 KC_F11
-#define BP_F12 KC_F12
-#define BP_TRNS KC_TRNS
-
-#define US_F1 KC_F1
-#define US_F2 KC_F2
-#define US_F3 KC_F3
-#define US_F4 KC_F4
-#define US_F5 KC_F5
-#define US_F6 KC_F6
-#define US_F7 KC_F7
-#define US_F8 KC_F8
-#define US_F9 KC_F9
-#define US_F10 KC_F10
-#define US_F11 KC_F11
-#define US_F12 KC_F12
-#define US_TRNS KC_TRNS
-
-#ifdef KEYPAD_LAYER_ENABLE
-#define TT_KEYPAD TT(LANG_N(_KEYPAD))
-#define MO_KEYPAD MO(LANG_N(_KEYPAD))
-#else
-#define TT_KEYPAD ___
-#define MO_KEYPAD ___
-#endif
-
-#ifdef SYMBOL_LAYER_ENABLE
-#define TT_SYMB TT(LANG_N(_SYMB))
-#define MO_SYMB MO(LANG_N(_SYMB))
-#define OSL_SYMB OSL(LANG_N(_SYMB))
-#else
-#define TT_SYMB ___
-#define MO_SYMB ___
-#define OSL_SYMB ___
-#endif
-
-#ifdef TOPROWS_LAYER_ENABLE
-#define TT_TOPROWS TT(LANG_N(_TOPROWS))
-#define MO_TOPROWS MO(LANG_N(_TOPROWS))
-#else
-#define TT_TOPROWS ___
-#define MO_TOPROWS ___
-#endif
-
-#ifdef RGB_LAYER_ENABLE
-#define MO_RGB MO(_RGB)
-#else
-#define MO_RGB ___
-#endif
-
-#ifdef ADJUST_LAYER_ENABLE
-#define MO_ADJUST MO(_ADJUST)
-#else
-#define MO_ADJUST ___
-#endif
-
-#ifdef ACCENTS_MORTE_LAYER_ENABLE
-//#define LN_ACCENTS_MORTE LANG_N(_ACCENTS_MORTE)
-#define OSL_ACCENTS_MORTE OSL(LANG_N(_ACCENTS_MORTE))
-#else
-#define OSL_ACCENTS_MORTE ___
-#endif
-
-#ifdef ACCENTS_LAYER_ENABLE
-#define LN_ACCENTS LANG_N(_ACCENTS)
-#define OSL_ACCENTS OSL(LN_ACCENTS)
-#else
-#define OSL_ACCENTS ___
-#endif
-
-#ifdef MORTE_LAYER_ENABLE
-#define LN_MORTE LANG_N(_MORTE)
-#define OSL_MORTE OSL(LN_MORTE)
-#else
-#define OSL_MORTE ___
-#endif
-
-#define CTLGUI_T(kc) MT(MOD_LGUI | MOD_LCTL, kc)
-#define SFTGUI_T(kc) MT(MOD_LGUI | MOD_LSFT, kc)
-#define ALTGUI_T(kc) MT(MOD_LGUI | MOD_LALT, kc)
-
-#define ALT_ENT ALGR_T(KC_ENT) // Alt oor nter
-#define CTL_ENT CTL_T(KC_ENT) // ctrl or space
-#define CTL_SPC CTL_T(KC_SPC) // ctrl or space
-#define CTL_BSPC CTL_T(KC_BSPC) // ctrl or backspace
-#define ALT_DEL ALT_T(KC_DEL) // Alt or delete
-#define GUI_ESC GUI_T(KC_ESC) // Gui or escape
-#define ALGR_SYMB ALGR_T(TG(LANG_N(_SYMB))) // Alt gre or toggle symbol layer
-
-// one shot on tap, or hold like usual
-#define OSLCTL_CTL CTL_T(OS_LCTL)
-#define OSLSFT_SFT SFT_T(OS_LSFT)
-#define OSLALT_ALT ALT_T(OS_LALT)
-#define OSLGUI_GUI GUI_T(OS_LGUI)
-
-/* miryoku */
-/* esc_media, space_navnm, tab_navm, ENT_SYM, BSPC_TOPR, del_fun */
-/* hands down */
-/* TL_COMM, TL_DOT_SYMB, GUI_ESC, ALT_ENT, SPC_TOPR, BSPC */
-
-// Lots of LT options. My thumb keys.
-#ifdef TOPROWS_LAYER_ENABLE
-#define LN_TOPROWS LANG_N(_TOPROWS)
-#else
-#define LN_TOPROWS KC_NO
-#endif
-
-#ifdef SYMBOL_LAYER_ENABLE
-# define LN_SYMB LANG_N(_SYMB)
-# define TH_LTR_SYM LT(LN_SYMB, THUMB_LETTER)
-#else
-# define TH_LTR_SYM THUMB_LETTER
-#endif
-
-#define TH_LTR_NAV LT(_NAV, THUMB_LETTER)
-
-#define LN_KEYPAD LANG_N(_KEYPAD)
-
-#define ACCENTS_RALT MT(MOD_RALT, OSL_ACCENTS)
-#define ACCENTS_CTL MT(MOD_LCTL, OSL_ACCENTS)
-#define ENT_SYM LT(LN_SYMB, KC_ENT)
-#define ENT_NAV LT(_NAV, KC_ENT)
-#define ENT_TOPR LT(LN_TOPROWS, KC_ENT)
-
-#define ESC_TOPR LT(LN_TOPROWS, KC_ESC)
-#define ESC_SYMB LT(LN_SYMB, KC_ESC)
-#define ESC_NUM LT(LN_KEYPAD, KC_ESC)
-#define ESC_MEDIA LT(_MEDIA, KC_ESC)
-
-#define DEL_FUN LT(_FUN, KC_DEL)
-#define TAB_NAVM LT(_NAVm, KC_TAB)
-#define TAB_NUM LT(LN_KEYPAD, KC_TAB)
-#define I_SYMB LT(LN_SYMB, KC_I)
-
-#define SPC_NAVm LT(_NAVm, KC_SPC)
-#define SPC_NAVnm LT(_NAVnm, KC_SPC)
-#define SPC_NAV LT(_NAV, KC_SPC)
-#define SPC_SYMB LT(LN_SYMB, KC_SPC)
-#define SPC_TOPR LT(LN_TOPROWS, KC_SPC)
-#define SPC_LAYR LT(_LAYERS, KC_SPC)
-#define SPC_ADJ LT(_ADJUST, KC_SPC)
-#define SPC_NUM LT(LN_KEYPAD, KC_SPC)
-
-#define BSPC_NAVm LT(_NAVm, KC_BSPC)
-#define BSPC_NAV LT(_NAV, KC_BSPC)
-#ifdef SYMBOL_LAYER_ENABLE
-#define BSPC_SYMB LT(LN_SYMB, KC_BSPC)
-#else
-#define BSPC_SYMB KC_BSPC
-#endif
-#define BSPC_TOPR LT(LN_TOPROWS, KC_BSPC)
-#define BSPC_NUM LT(LN_KEYPAD, KC_BSPC)
-#define BSPC_ALT MT(MOD_LALT, KC_BSPC)
-#define BSPC_MEDIA LT(_MEDIA, KC_BSPC)
-
-#define KC_BKTAB LSFT(KC_TAB)
-
-// layer toggles
-#define LAYER_OSL OSL(_LAYERS)
-#define SYM_OSL OSL(LN_SYMB)
-#define SYM_TG TG(LN_SYMB)
-#define SYM_MO MO(LN_SYMB)
-#define NAV_TG TG(_NAV)
-#define COMBO_REF_TG_EN TG(_COMBO_REF)
-#define NUM_OSL OSL(LN_KEYPAD)
-#define NUM_TO TO(LN_KEYPAD)
-#define FUN_OSL OSL(LN_FUNC)
-#define SYS_OSL OSL(LN_SYSTEM)
-#define SYS_TG TG(LN_SYSTEM)
-
-// Shortcuts
-#define S_CUT S(KC_DEL)
-#define S_COPY C(KC_INS)
-#define S_PASTE S(KC_INS)
-#define S_UNDO C(KC_Z)
-#define S_REDO C(KC_Y)
-#define S_SAVE C(KC_S)
-#define S_ALL C(KC_A)
-#define S_BACK A(KC_LEFT)
-#define S_FWD A(KC_RIGHT)
-#define C_BSPC C(KC_BSPC)
-#define SCREEN S(C(KC_PSCR))
-
-// One Shot Mods keycodes,
-#define KC_MLSF OSM(MOD_LSFT)
-#define KC_MRSF OSM(MOD_RSFT)
-#define OS_LGUI OSM(MOD_LGUI)
-#define OS_RGUI OSM(MOD_RGUI)
-#define OS_LSFT OSM(MOD_LSFT)
-#define OS_RSFT OSM(MOD_RSFT)
-#define OS_LCTL OSM(MOD_LCTL)
-#define OS_RCTL OSM(MOD_RCTL)
-#define OS_LALT OSM(MOD_LALT)
-#define OS_RALT OSM(MOD_RALT)
-#define ALT_APP ALT_T(KC_APP)
-
-#define MG_NKRO MAGIC_TOGGLE_NKRO
-
-#define UC_IRNY UC(0x2E2E)
-#define UC_CLUE UC(0x203D)
-
-
-//// TAP DANCE
-
-typedef struct {
- bool is_press_action;
- int state;
-} tdtap;
-
-enum {
- SINGLE_TAP = 1,
- SINGLE_HOLD = 2,
- DOUBLE_TAP = 3,
- DOUBLE_HOLD = 4,
- DOUBLE_SINGLE_TAP = 5, //send two single taps
- TRIPLE_TAP = 6,
- TRIPLE_HOLD = 7
-};
-
-//Tap Dance Declarations
-enum {
- TD_ESC_CAPS = 0,
- TD_TAB_BKTAB = 1,
- TD_MDIA_SYMB = 2,
- TD_HOME_END = 3,
- TD_XMONAD_ESC = 4,
- TD_DEF_LAYER_SW = 5,
- TD_DEF_OS_LAYER_SW = 6,
- TD_MOUSE_BTNS = 7,
- TD_DVORAK_BEPO = 8,
- TD_UP_HOME = 9,
- TD_DOWN_END = 10,
- TD_RIGHT_TAB = 11,
- TD_LEFT_BACKTAB = 12
-};
-
-
-// Tap dance
-#define TAB_BKTAB TD(TD_TAB_BKTAB) // Tab or backtab tapdance.
-#define MDIA_SYMB_KP_LAYERS TD(TD_MDIA_SYMB) // MDIA, symb, keypad, layouts layer tapdance toggle.
-#define DEF_LAYER_SW TD(TD_DEF_LAYER_SW) // dvorak, dvorak_on_bepo, bepo default layer
-#define DEF_OS_LAYER_SW TD(TD_DEF_OS_LAYER_SW) // dvorak, dvorak_on_bepo, bepo default layer
-#define HOME_END TD(TD_HOME_END) // home or end tapdance.
-#define XMONAD_ESC TD(TD_XMONAD_ESC) // Escape, dvorak, media or symb. - tap and hold tap dance. 1-4
-#define DVORAK_ET_BEPO TD(TD_DVORAK_BEPO) // Escape, dvorak, media or symb. - tap and hold tap dance. 1-4
-#define TDMOUSE_BTNS TD(TD_MOUSE_BTNS) // hmmm. 1-5
-#define RIGHT_TAB TD(TD_RIGHT_TAB) // Bad idea these 4. Maybe with good timing...
-#define LEFT_BACKTAB TD(TD_LEFT_BACKTAB)
-#define UP_HOME TD(TD_UP_HOME)
-#define DOWN_END TD(TD_DOWN_END) // No! Down Down Not End....
-
-// HOME ROW LAYER TOGGLE (LT) and Shift.
-// both sides of the home row have "shift, ___, media , symb, ___" and "___, symb, media, ___, shift".
-// so pinky fingers are shift when held and the index and second fingers are symbol and
-// media layers when held.
-
-// The most portable copy/paste keys (windows (mostly), linux, and some terminal emulators).
-// The KC_CCCV key takes care of the last two...
-#define MK_CUT LSFT(KC_DEL) // shift + delete
-#define MK_COPY LCTL(KC_INS) // ctrl + insert
-#define MK_PASTE LSFT(KC_INS) // shift + insert
-#define EOT LCTL(KC_D)
-#define NAK LCTL(KC_U)
-#define XPASTE LCTL(LSFT(KC_V))
-#define UNDO LCTL(KC_Z)
-#define XCOPY LCTL(LSFT(KC_C))
-
-#undef ___ //kint defines it as KC_NO
-#define ___ KC_TRNS
-#define XXX KC_NO
-#define ____ _TRNS
-
-// Blocking keys
-#define _X_ XXX
-#define ___X___ XXX
-#define ___X2___ XXX, XXX
-#define ___X3___ ___X2___, XXX
-#define ___X4___ ___X3___, XXX
-#define ___X5___ ___X4___, XXX
-#define ___X6___ ___X5___, XXX
-#define ___X12___ ___X6___, ___X6___
-#define ___X15___ ___X5___, ___X5___, ___X5___
-
-// Transparent keys
-#define ___2___ ___, ___
-#define ___3___ ___2___, ___
-#define ___4___ ___3___, ___
-#define ___5___ ___4___, ___
-#define ___6___ ___5___, ___
-#define ___10___ ___6___, ___4___
-#define ___12___ ___6___, ___6___
-#define ___14___ ___5___, ___4___, ___5___
-#define ___15___ ___5___, ___5___, ___5___
-#define ___16___ ___15___, ___
-
-#define ____2_ ____, ____
-#define ____3_ ____2_, ____
-#define ____4_ ____3_, ____
-#define ____5_ ____4_, ____
-#define ____6_ ____5_, ____
-#define ____10_ ____6_, ____4_
-#define ____12_ ____6_, ____6_
-#define ____14_ ____5_, ____4_, ____5_
-#define ____15_ ____5_, ____5_, ____5_
-#define ____16_ ____15_, ____
-
-int on_qwerty(void);
-
-#ifdef TAP_DANCES_ENABLE
-int cur_dance (tap_dance_state_t *state);
-
-//for the x tap dance. Put it here so it can be used in any keymap
-void x_finished (tap_dance_state_t *state, void *user_data);
-void x_reset (tap_dance_state_t *state, void *user_data);
-#endif
diff --git a/users/ericgebhart/extensions/keymap_combo.h b/users/ericgebhart/extensions/keymap_combo.h
deleted file mode 100644
index e918fa08ea..0000000000
--- a/users/ericgebhart/extensions/keymap_combo.h
+++ /dev/null
@@ -1,136 +0,0 @@
-#pragma once
-/*
- Copyright 2018-2022 Eric Gebhart <e.a.gebhart@gmail.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/>.
-*/
-// Keymap helpers
-void process_combo_event(uint16_t combo_index, bool pressed);
-
-
-// define reference layers per layer.
-#define REF_LAYER(LAYER, REF_LAYER) \
- case LAYER: return REF_LAYER;
-
-#define K_ENUM(name, key, ...) name,
-#define K_DATA(name, key, ...) const uint16_t PROGMEM cmb_##name[] = {__VA_ARGS__, COMBO_END};
-#define K_COMB(name, key, ...) [name] = COMBO(cmb_##name, key),
-
-#define A_ENUM(name, string, ...) name,
-#define A_DATA(name, string, ...) const uint16_t PROGMEM cmb_##name[] = {__VA_ARGS__, COMBO_END};
-#define A_COMB(name, string, ...) [name] = COMBO_ACTION(cmb_##name),
-#define A_ACTI(name, string, ...) \
- case name: \
- if (pressed) SEND_STRING(string); \
- break;
-
-#define A_TOGG(name, layer, ...) \
- case name: \
- if (pressed) layer_invert(layer); \
- break;
-
-#define BLANK(...)
-// Generate data needed for combos/actions
-// Create Enum
-#define COMBO_REF_LAYER BLANK
-#undef COMB
-#undef SUBS
-#undef TOGG
-#define COMB K_ENUM
-#define SUBS A_ENUM
-#define TOGG A_ENUM
-enum combos {
-#include "combos.def"
-};
-
-// Bake combos into mem
-#undef COMB
-#undef SUBS
-#undef TOGG
-#define COMB K_DATA
-#define SUBS A_DATA
-#define TOGG A_DATA
-#include "combos.def"
-#undef COMB
-#undef SUBS
-#undef TOGG
-
-// Fill combo array
-#define COMB K_COMB
-#define SUBS A_COMB
-#define TOGG A_COMB
-combo_t key_combos[] = {
-#include "combos.def"
-};
-#undef COMB
-#undef SUBS
-#undef TOGG
-
-// Fill QMK hook
-#define COMB BLANK
-#define SUBS A_ACTI
-#define TOGG A_TOGG
-
-void process_combo_event(uint16_t combo_index, bool pressed) {
-#if defined( CONSOLE_ENABLE) && defined(CONSOLE_KEY_LOGGER_ENABLE)
- if (pressed) {
- combo_t *combo = &key_combos[combo_index];
- uint8_t idx = 0;
- uint16_t combo_keycode;
- while ((combo_keycode = pgm_read_word(&combo->keys[idx])) != COMBO_END) {
- uprintf("0x%04X,NA,NA,%u,%u,0x%02X,0x%02X,0\n",
- combo_keycode,
- /* <missing row information> */
- /* <missing column information> */
- get_highest_layer(layer_state),
- pressed,
- get_mods(),
- get_oneshot_mods()
- );
- idx++;
- }
- }
-#endif
- switch (combo_index) {
-#include "combos.def"
- }
-
- // Allow user overrides per keymap
-#if __has_include("inject.h")
-# include "inject.h"
-#endif
-}
-
-#undef COMB
-#undef SUBS
-#undef TOGG
-
-#define COMB BLANK
-#define SUBS BLANK
-#define TOGG BLANK
-
-#undef COMBO_REF_LAYER
-#define COMBO_REF_LAYER REF_LAYER
-
-uint16_t combo_ref_from_layer(uint16_t layer){
- switch (biton32(layer_state)){
-#include "combos.def"
-
-#ifdef COMBO_REF_DEFAULT
- default: return COMBO_REF_DEFAULT;
-#else
- default: return layer;
-#endif
- }
-}
diff --git a/users/ericgebhart/extensions/mod_lock.c b/users/ericgebhart/extensions/mod_lock.c
deleted file mode 100644
index c78f7cdfe8..0000000000
--- a/users/ericgebhart/extensions/mod_lock.c
+++ /dev/null
@@ -1,81 +0,0 @@
-/*
- Copyright 2022 Eric Gebhart <e.a.gebhart@gmail.com>, @possumvibes
-
- 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/>.
-*/
-// Derived from mod_lock by @possumvibes.
-
-#include "mod_lock.h"
-
-#undef MODL
-#define MODL(KEYCODE, MODKC) \
- {false, MODKC, KEYCODE},
-
-#define A_KEY(KEYCODE) case KEYCODE:
-#define BLANK(...)
-
-#undef IGNORE_KC
-#define IGNORE_KC BLANK
-
-mod_lock_state_t modlock_states[] = {
-#ifdef MOD_LOCK_ENABLE
-#include "mod_lock.def"
-#endif
-};
-uint8_t NUM_MODLOCK_STATES = sizeof(modlock_states) / sizeof(mod_lock_state_t);
-
-void process_mod_lock(uint16_t keycode, keyrecord_t *record) {
-#ifdef MOD_LOCK_ENABLE
- mod_lock_state_t *curr_state = NULL;
-
- for (int i = 0; i < NUM_MODLOCK_STATES; ++i) {
- curr_state = &modlock_states[i];
-
- if (keycode == curr_state->trigger) {
- if (record->event.pressed) {
- if (curr_state->locking) {
- unregister_code(curr_state->mod);
- } else {
- register_code(curr_state->mod);
- }
-
- curr_state->locking = !curr_state->locking;
- }
- } else {
- // check for cancel condition on keydown and keyup
- if (curr_state->locking && is_mod_lock_cancel_key(keycode)) {
- unregister_code(curr_state->mod);
- curr_state->locking = false;
- }
- }
- }
-#endif
-}
-
-#undef MODL
-#undef IGNORE_KC
-#define MODL BLANK
-#define IGNORE_KC A_KEY
-bool is_mod_lock_cancel_key(uint16_t keycode) {
- // Mod locks are exclusively used on the nav layer.
- // any key besides nav keys should cancel the lock.
- switch (keycode) {
-#ifdef MOD_LOCK_ENABLE
-#include "mod_lock.def"
-#endif
- return false;
- default:
- return true;
- }
-}
diff --git a/users/ericgebhart/extensions/mod_lock.h b/users/ericgebhart/extensions/mod_lock.h
deleted file mode 100644
index d9e6106c4e..0000000000
--- a/users/ericgebhart/extensions/mod_lock.h
+++ /dev/null
@@ -1,39 +0,0 @@
-#pragma once
-/*
- Copyright 2018-2022 Eric Gebhart <e.a.gebhart@gmail.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 USERSPACE_H
-
-typedef struct {
- bool locking;
- uint16_t mod;
- uint16_t trigger;
-} mod_lock_state_t;
-
-extern mod_lock_state_t mod_lock_states[];
-extern uint8_t NUM_MODLOCK_STATES;
-
-// Custom mod-locking functionality that registers the mod and
-// keeps it registered until the trigger key is tapped again
-// or until a specified cancel key is tapped.
-void process_mod_lock(uint16_t keycode, keyrecord_t *record);
-
-bool is_mod_lock_cancel_key(uint16_t keycode);
-
-#undef IGNORE_KC
-#define IGNORE_KC(KC) \
- case KC:
diff --git a/users/ericgebhart/extensions/not_dead.c b/users/ericgebhart/extensions/not_dead.c
deleted file mode 100644
index 8369edd52d..0000000000
--- a/users/ericgebhart/extensions/not_dead.c
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
- Copyright 2022 Eric Gebhart <e.a.gebhart@gmail.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 USERSPACE_H
-
-inline void not_dead(uint16_t kc1, keyrecord_t *record) {
- if (record->event.pressed) {
- tap_code16(kc1);
- tap_code16(KC_SPACE);
- }
-}
-
-#define NOT_DEAD(KCKEY, KC01) \
- case KCKEY: \
- not_dead(KC01, record); \
- break; \
-
-void process_not_dead(uint16_t keycode, keyrecord_t *record) {
- switch(keycode){
-#include "not_dead.def"
- }
-}
diff --git a/users/ericgebhart/extensions/nshot_mod.c b/users/ericgebhart/extensions/nshot_mod.c
deleted file mode 100644
index 1346f7eba6..0000000000
--- a/users/ericgebhart/extensions/nshot_mod.c
+++ /dev/null
@@ -1,154 +0,0 @@
-/*
- Copyright 2022 Eric Gebhart <e.a.gebhart@gmail.com>, @possumvibes
-
- 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/>.
-*/
-// Derived from nshot_mod by @possumvibes.
-// Derived from one shot_mod by @Callum.
-
-#include "nshot_mod.h"
-#include USERSPACE_H
-
-#undef NSHOT
-#define NSHOT(KEYCODE, MOD, COUNT) \
- {KEYCODE, MOD, COUNT, os_up_unqueued, 0},
-
-#undef ONESHOT
-#define ONESHOT(KEYCODE, MOD) NSHOT(KEYCODE, MOD, 1)
-#define A_KEY(KEYCODE) case KEYCODE:
-#define BLANK(...)
-
-#define CANCEL_KEY BLANK
-#define IGNORE_KEY BLANK
-nshot_state_t nshot_states[] = {
-#include "nshot.def"
-};
-uint8_t NUM_NSHOT_STATES = sizeof(nshot_states) / sizeof(nshot_state_t);
-
-bool process_nshot_state(uint16_t keycode, keyrecord_t *record) {
- nshot_state_t *curr_state = NULL;
-
- switch(keycode){
- case CLEAR: {
- clear_oneshot_mods();
- clear_mods();
- return false;
- }
- case PANIC: {
- clear_oneshot_mods();
- clear_mods();
- if (get_oneshot_layer() != 0) {
- clear_oneshot_layer_state(ONESHOT_OTHER_KEY_PRESSED);
- }
- layer_move(0);
- return false;
- }
- }
-
- for (int i = 0; i < NUM_NSHOT_STATES; ++i) {
- curr_state = &nshot_states[i];
-
- if (keycode == curr_state->trigger) {
- if (record->event.pressed) {
- // Trigger keydown
- if (curr_state->state == os_up_unqueued) {
- register_code(curr_state->mod);
- }
- curr_state->state = os_down_unused;
- curr_state->count = 0;
- } else {
- // Trigger keyup
- switch (curr_state->state) {
- case os_down_unused:
- // If we didn't use the mod while trigger was held, queue it.
- curr_state->state = os_up_queued;
- break;
- case os_down_used:
- // If we did use the mod while trigger was held, unregister it.
- curr_state->state = os_up_unqueued;
- unregister_code(curr_state->mod);
- break;
- default:
- break;
- }
- }
-} else {
- if (record->event.pressed) {
- if (is_nshot_cancel_key(keycode) && curr_state->state != os_up_unqueued) {
- // Cancel oneshot on designated cancel keydown.
- curr_state->state = os_up_unqueued;
- curr_state->count = 0;
- unregister_code(curr_state->mod);
- }
- } else {
- if (!is_nshot_ignored_key(keycode)) {
- // On non-ignored keyup, consider the oneshot used.
- switch (curr_state->state) {
- case os_down_unused:
- // The mod key is being held as a normal mod.
- curr_state->state = os_down_used;
- break;
- case os_up_queued:
- // The mod key is being used as an n-shot.
- // Increment the keys-used count.
- curr_state->count = curr_state->count + 1;
-
- // If the n-shot max has been reached, complete the n-shot.
- if (curr_state->count == curr_state->max_count) {
- curr_state->state = os_up_unqueued;
- curr_state->count = 0;
- unregister_code(curr_state->mod);
- }
- break;
- default:
- break;
- }
- }
- }
- }
- }
- return true;
-}
-
-// turn off the nshot/oneshot macros
-#undef ONESHOT
-#undef NSHOT
-#define ONESHOT BLANK
-#define NSHOT BLANK
-
-#undef CANCEL_KEY
-#undef IGNORE_KEY
-#define IGNORE_KEY BLANK
-#define CANCEL_KEY A_KEY
-bool is_nshot_cancel_key(uint16_t keycode) {
- switch (keycode) {
-#include "nshot.def"
- return true;
- default:
- return false;
- }
-}
-
-#undef CANCEL_KEY
-#undef IGNORE_KEY
-#define CANCEL_KEY BLANK
-#define IGNORE_KEY A_KEY
-bool is_nshot_ignored_key(uint16_t keycode) {
- switch (keycode) {
-#include "nshot.def"
- return true;
- default:
- return false;
- }
-}
diff --git a/users/ericgebhart/extensions/nshot_mod.h b/users/ericgebhart/extensions/nshot_mod.h
deleted file mode 100644
index c5840e6bef..0000000000
--- a/users/ericgebhart/extensions/nshot_mod.h
+++ /dev/null
@@ -1,45 +0,0 @@
-#pragma once
-/*
- Copyright 2018-2022 Eric Gebhart <e.a.gebhart@gmail.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 QMK_KEYBOARD_H
-
-// Represents the four states an n-shot key can be in (from users/callum)
-typedef enum {
- os_up_unqueued,
- os_up_queued,
- os_down_unused,
- os_down_used,
-} oneshot_state;
-
-typedef struct {
- uint16_t trigger;
- uint16_t mod;
- uint8_t max_count;
- oneshot_state state;
- uint8_t count;
-} nshot_state_t;
-
-extern nshot_state_t nshot_states[];
-extern uint8_t NUM_NSHOT_STATES;
-
-
-// Keys that should cancel the n-shot mod if tapped
-bool is_nshot_cancel_key(uint16_t keycode);
-
-// Keys that should not count towards n-shot usage (e.g., layer toggles)
-bool is_nshot_ignored_key(uint16_t keycode);
diff --git a/users/ericgebhart/extensions/oneshot.c b/users/ericgebhart/extensions/oneshot.c
deleted file mode 100644
index 8d4dc2f29c..0000000000
--- a/users/ericgebhart/extensions/oneshot.c
+++ /dev/null
@@ -1,217 +0,0 @@
-#include QMK_KEYBOARD_H
-#include USERSPACE_H
-#include "oneshot.h"
-
-#ifdef ONESHOT_MOD_ENABLE
-
-/* -------------------------------------------- */
-// Add to process_record_user.
-/* int8_t keycode_consumed = 0; */
-
-/* #ifdef ONESHOT_ENABLE */
-/* keycode_consumed += update_oneshot_modifiers(keycode, record, keycode_consumed); */
-/* #endif */
-/* -------------------------------------------- */
-
-#define ONESHOT(KEYCODE, MOD) case KEYCODE: return MOD;
-
-#define A_KEY(KEYCODE) case KEYCODE:
-#define BLANK(...)
-
-#define CANCEL_KEY BLANK
-#define IGNORE_KEY BLANK
-
-// the basic states a oneshot modifier can be in
-typedef enum {
- ONESHOT_STATE_OFF = 0,
- ONESHOT_STATE_PRESSED = 1,
- ONESHOT_STATE_QUEUED = 2,
- ONESHOT_STATE_CAPSWORD = 3,
- ONESHOT_STATE_LOCK = 4,
- ONESHOT_STATE_END_PRESSED = 5,
-} oneshot_state;
-
-oneshot_state modifiers_state_transitions_normal[5] = {ONESHOT_STATE_PRESSED, ONESHOT_STATE_QUEUED, ONESHOT_STATE_LOCK, ONESHOT_STATE_END_PRESSED, ONESHOT_STATE_END_PRESSED};
-
-static oneshot_state modifiers_with_state[ONESHOT_MOD_COUNT] = {
- ONESHOT_STATE_OFF, ONESHOT_STATE_OFF, ONESHOT_STATE_OFF, ONESHOT_STATE_OFF, ONESHOT_STATE_OFF, ONESHOT_STATE_OFF, ONESHOT_STATE_OFF, ONESHOT_STATE_OFF,
-};
-
-// oneshot mods always get registered immediately to the operating system, but we also
-// need to keep track if the mod(s) got combined with a normal key (applied)
-static bool unapplied_mods_present = false;
-
-// keycode of the last pressed 'normal' key which haven't been released yet
-static uint16_t repeating_normal_key = 0;
-
-// utility functions (implemented at the bottom of this file)
-static void set_modifier_state(oneshot_mod osmod, oneshot_state new_state);
-static int8_t set_modifier_state_all(oneshot_state new_state);
-static void set_modifier_state_all_from_to(oneshot_state oneshot_state_from, oneshot_state oneshot_state_to);
-static bool all_modifiers_are_off(void);
-
-int8_t turnoff_oneshot_modifiers(void) {
- return set_modifier_state_all(ONESHOT_STATE_OFF);
-}
-
-// see comment in corresponding headerfile
-int8_t update_oneshot_modifiers(uint16_t keycode, keyrecord_t *record, int8_t keycode_consumed) {
-
- // cancel keys
- if (is_oneshot_modifier_cancel_key(keycode) && record->event.pressed) {
- if (keycode_consumed == 0) {
- unapplied_mods_present = false;
- keycode_consumed += set_modifier_state_all(ONESHOT_STATE_OFF);
- } else {
- keycode_consumed = 0;
- }
- return keycode_consumed;
- }
-
- // ignored keys
- if (is_oneshot_modifier_ignored_key(keycode)) {
- return keycode_consumed;
- }
-
- oneshot_mod osmod = get_modifier_for_trigger_key(keycode);
-
- // trigger keys
- if (osmod != ONESHOT_NONE) {
- oneshot_state state = modifiers_with_state[osmod];
- if (record->event.pressed) {
- if (state == ONESHOT_STATE_OFF) {
- unapplied_mods_present = (repeating_normal_key == 0);
- }
- oneshot_state tostate = modifiers_state_transitions_normal[state];
- set_modifier_state(osmod, tostate);
- } else {
- if (state == ONESHOT_STATE_PRESSED) {
- if (!unapplied_mods_present) {
- set_modifier_state(osmod, ONESHOT_STATE_OFF);
- } else {
- set_modifier_state(osmod, ONESHOT_STATE_QUEUED);
- }
- } else if (state == ONESHOT_STATE_END_PRESSED) {
- set_modifier_state(osmod, ONESHOT_STATE_OFF);
- }
- }
- }
- // normal keys
- else {
- if (record->event.pressed) {
- if (!all_modifiers_are_off()) {
- if (unapplied_mods_present) {
- unapplied_mods_present = false;
- } else {
- unregister_code(repeating_normal_key);
- set_modifier_state_all_from_to(ONESHOT_STATE_QUEUED, ONESHOT_STATE_OFF);
- }
- }
- repeating_normal_key = keycode;
- } else {
- if (!all_modifiers_are_off()) {
- unregister_code(keycode);
- set_modifier_state_all_from_to(ONESHOT_STATE_QUEUED, ONESHOT_STATE_OFF);
- }
- repeating_normal_key = 0;
- }
- }
-
- return 0;
-}
-
-// implementation of utility functions
-
-// registers/unregisters a mod to the operating system on state change if necessary
-void update_modifier(oneshot_mod osmod, oneshot_state previous_state, oneshot_state current_state) {
- if (previous_state == ONESHOT_STATE_OFF) {
- register_code(KC_LCTL + osmod);
- } else {
- if (current_state == ONESHOT_STATE_OFF) {
- unregister_code(KC_LCTL + osmod);
- }
- }
-}
-
-void set_modifier_state(oneshot_mod osmod, oneshot_state new_state) {
- oneshot_state previous_state = modifiers_with_state[osmod];
- if (previous_state != new_state) {
- modifiers_with_state[osmod] = new_state;
- update_modifier(osmod, previous_state, new_state);
- }
-}
-
-int8_t set_modifier_state_all(oneshot_state new_state) {
- int8_t c = 0;
- for (int8_t i = 0; i < ONESHOT_MOD_COUNT; i++) {
- oneshot_state previous_state = modifiers_with_state[i];
- if (previous_state != new_state) {
- modifiers_with_state[i] = new_state;
- update_modifier(i, previous_state, new_state);
- c += 1;
- }
- }
- return c;
-}
-
-void set_modifier_state_all_from_to(oneshot_state oneshot_state_from, oneshot_state oneshot_state_to) {
- for (int8_t i = 0; i < ONESHOT_MOD_COUNT; i++) {
- if (modifiers_with_state[i] == oneshot_state_from) {
- modifiers_with_state[i] = oneshot_state_to;
- update_modifier(i, oneshot_state_from, oneshot_state_to);
- }
- }
-}
-
-bool all_modifiers_are_off(void) {
- for (int8_t i = 0; i < ONESHOT_MOD_COUNT; i++) {
- if (modifiers_with_state[i] != ONESHOT_STATE_OFF) {
- return false;
- }
- }
- return true;
-}
-
-oneshot_mod get_modifier_for_trigger_key(uint16_t keycode)
-{
- switch (keycode)
- {
-#include "oneshot.def"
- return true;
- default:
- return ONESHOT_NONE;
- }
-}
-
-// turn off the oneshot macros
-#undef ONESHOT
-#define ONESHOT BLANK
-#define NSHOT BLANK
-
-#undef CANCEL_KEY
-#undef IGNORE_KEY
-#define CANCEL_KEY A_KEY
-#define IGNORE_KEY BLANK
-bool is_oneshot_modifier_cancel_key(uint16_t keycode) {
- switch (keycode) {
-#include "oneshot.def"
- return true;
- default:
- return false;
- }
-}
-
-#undef CANCEL_KEY
-#undef IGNORE_KEY
-#define CANCEL_KEY BLANK
-#define IGNORE_KEY A_KEY
-bool is_oneshot_modifier_ignored_key(uint16_t keycode) {
- switch (keycode) {
-#include "oneshot.def"
- return true;
- default:
- return false;
- }
-}
-
-#endif
diff --git a/users/ericgebhart/extensions/oneshot.h b/users/ericgebhart/extensions/oneshot.h
deleted file mode 100644
index 774dc4ab39..0000000000
--- a/users/ericgebhart/extensions/oneshot.h
+++ /dev/null
@@ -1,37 +0,0 @@
-#define ENABLE_ONESHOT
-#ifdef ENABLE_ONESHOT
-#pragma once
-
-typedef enum {
- ONESHOT_LCTL = 0,
- ONESHOT_LSFT = 1,
- ONESHOT_LALT = 2,
- ONESHOT_LGUI = 3,
- ONESHOT_RCTL = 4,
- ONESHOT_RSFT = 5,
- ONESHOT_RALT = 6,
- ONESHOT_RGUI = 7,
- ONESHOT_NONE = 8,
- ONESHOT_MOD_COUNT = 8,
-} oneshot_mod;
-
-
-// This function should be called inside proces_record_user and does everything needed to get one shot modifiers working.
-// Returns true if the keycode needs further handling, false otherwise.
-int8_t update_oneshot_modifiers(uint16_t keycode, keyrecord_t *record, int8_t keycode_consumed);
-int8_t turnoff_oneshot_modifiers(void);
-
-// TO BE IMPLEMENTED BY THE USER
-// This function should return one of the oneshot_mod enumerations (see keymap.c implementation)
-oneshot_mod get_modifier_for_trigger_key(uint16_t keycode);
-
-// TO BE IMPLEMENTED BY THE USER
-// This function should return true for keycodes that must be ignored in the oneshot modifier behaviour.
-// You probably want to ignore layer keys. Trigger keys don't need to be specified here.
-bool is_oneshot_modifier_ignored_key(uint16_t keycode);
-
-// TO BE IMPLEMENTED BY THE USER
-// This function should return true for keycodes that should reset all oneshot modifiers.
-bool is_oneshot_modifier_cancel_key(uint16_t keycode);
-
-#endif
diff --git a/users/ericgebhart/extensions/process_locales.h b/users/ericgebhart/extensions/process_locales.h
deleted file mode 100644
index d0f7af53bf..0000000000
--- a/users/ericgebhart/extensions/process_locales.h
+++ /dev/null
@@ -1,29 +0,0 @@
-#pragma once
-/*
- Copyright 2022 Eric Gebhart <e.a.gebhart@gmail.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 USERSPACE_H
-
-// Stuff we need for locale and layer switching
-// there can be more but we need to know where they start and end.
-// remember there's limitations on layers.
-// Our locales. so it's easy to switch between them.
-
-bool process_locales(uint16_t keycode, keyrecord_t *record);
-
-#define PROCESS_LOCALES \
- if (!process_locales(keycode, record)) { return false; }
diff --git a/users/ericgebhart/extensions/process_nshot.h b/users/ericgebhart/extensions/process_nshot.h
deleted file mode 100644
index 1ec42db478..0000000000
--- a/users/ericgebhart/extensions/process_nshot.h
+++ /dev/null
@@ -1,21 +0,0 @@
-#pragma once
-/*
- Copyright 2018-2022 Eric Gebhart <e.a.gebhart@gmail.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/>.
-*/
-// Custom one-or-more-shot implementation that does not rely on timers
-// and persists across layer changes. Based on the users/callum implementation
-// at https://github.com/callum-oakley/qmk_firmware/tree/master/users/callum
-bool process_nshot_state(uint16_t keycode, keyrecord_t *record);
diff --git a/users/ericgebhart/extensions/process_smart_lock.h b/users/ericgebhart/extensions/process_smart_lock.h
deleted file mode 100644
index b8e2fb2735..0000000000
--- a/users/ericgebhart/extensions/process_smart_lock.h
+++ /dev/null
@@ -1,19 +0,0 @@
-#pragma once
-/*
- Copyright 2018-2022 Eric Gebhart <e.a.gebhart@gmail.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/>.
-*/
-///* -------- Process Record -------- */
-void process_smart_lock(uint16_t keycode, keyrecord_t *record);
diff --git a/users/ericgebhart/extensions/quick_tap.c b/users/ericgebhart/extensions/quick_tap.c
deleted file mode 100644
index 8c25f153bd..0000000000
--- a/users/ericgebhart/extensions/quick_tap.c
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- Copyright 2022 Eric Gebhart <e.a.gebhart@gmail.com>, @possumvibes
-
- 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/>.
-*/
-
-// written by @dnaq.
-#if defined( global_quick_tap) && defined(CONSOLE_KEY_LOGGER_ENABLE)
- bool process_global_quick_tap(uint16_t keycode, keyrecord_t *record) {
- static uint16_t global_quick_tap_timer = 0;
- if (keycode < QK_MOD_TAP || keycode > QK_MOD_TAP_MAX) {
- global_quick_tap_timer = timer_read();
- return true;
- }
- if (timer_elapsed(global_quick_tap_timer) > TAPPING_TERM) {
- return true;
- }
- if (record->event.pressed) {
- keycode = keycode & 0xFF;
- global_quick_tap_timer = timer_read();
- tap_code(keycode);
- return false;
- }
- return true;
- }
-#endif
diff --git a/users/ericgebhart/extensions/send_string.c b/users/ericgebhart/extensions/send_string.c
deleted file mode 100644
index 50237f5143..0000000000
--- a/users/ericgebhart/extensions/send_string.c
+++ /dev/null
@@ -1,40 +0,0 @@
-/*
- Copyright 2018 Eric Gebhart <e.a.gebhart@gmail.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 USERSPACE_H
-#include "version.h"
-
-#define SEND_STR(KEYC, STRING) \
- case KEYC: \
- if (record->event.pressed) { \
- SEND_STRING(STRING); \
- } \
- break;
-
-#define SEND_STR_DELAY(KEYC, STRING) \
- case KEYC: \
- if (record->event.pressed) { \
- SEND_STRING_DELAY(STRING, TAP_CODE_DELAY); \
- } \
- break;
-
-void process_send_strs(uint16_t keycode, keyrecord_t *record){
-#ifdef SEND_STRING_ENABLE
- switch (keycode) {
-#include "send_string.def"
- }
-#endif
-}
diff --git a/users/ericgebhart/extensions/smart_lock.c b/users/ericgebhart/extensions/smart_lock.c
deleted file mode 100644
index 5b3dc0ecb2..0000000000
--- a/users/ericgebhart/extensions/smart_lock.c
+++ /dev/null
@@ -1,117 +0,0 @@
-/*
- Copyright 2022 Eric Gebhart <e.a.gebhart@gmail.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/>.
-*/
-// Derived from smart_layers by @Possumvibes
-// Derived from one shot_mod by @Callum.
-
-#include "smart_lock.h"
-#include USERSPACE_H
-
-/* print("string"): Print a simple string. */
-/* uprintf("%s string", var) */
-
-bool ignore_key(uint16_t keycode,
- const uint16_t *cond_keys){
-
- // look for non-cancel condition.
- // look for keys to ignore, if we match, we do nothing.
- for (; pgm_read_word(cond_keys) != COND_KEYS_END ; ++cond_keys){
- if (pgm_read_word(cond_keys) == keycode){
- return true;
- }
- }
- return false;
-}
-
-void deactivate_sml_layer(smart_lock_t *sml){
- layer_off(sml->thing);
- sml->active = false;
-}
-void deactivate_sml_mod(smart_lock_t *sml){
- unregister_mods(sml->thing);
- sml->active = false;
-}
-
-void deactivate_sml(smart_lock_t *sml){
- switch(sml->type){
- case sml_layer:
- deactivate_sml_layer(sml);
- case sml_mod:
- deactivate_sml_mod(sml);
- }
-}
-
-
-void sml_activate_layer(smart_lock_t *sml){
- sml->active = true;
- layer_on(sml->thing);
-}
-
-void sml_maybe_activate_mod(smart_lock_t *sml ){
- if (sml->active) {
- unregister_mods(sml->thing);
- } else {
- register_mods(sml->thing);
- }
- sml->active = !sml->active;
-}
-
-void sml_activate(smart_lock_t *sml){
- switch(sml->type){
- case sml_layer:
- sml_activate_layer(sml);
- break;
- case sml_mod:
-sml_maybe_activate_mod(sml);
- break;
- }
-}
-
-
-
-void update_smart_lock(uint16_t keycode) {
-
-#ifdef SMART_LOCK_ENABLE
- bool deactivate = false;
- smart_lock_t *sml;
-
- for (int i = 0; i < SML_LEN; ++i){
- sml = &smart_locks[i];
-
- // if it's a match,
- // maybe activate/deactivate it if we got it's keycode.
- if (sml->keycode == keycode){
- sml_activate(sml);
- return;
- }
-
- // deactivate what we need to.
- if(sml->active){
- deactivate = !ignore_key(keycode, &sml->keys[0]);
- if (deactivate){
- deactivate_sml(sml);
- }
- }
- }
-#endif
- return;
-}
-
-void process_smart_lock(uint16_t keycode, keyrecord_t *record) {
- if (record->event.pressed) {
- update_smart_lock(keycode);
- }
-}
diff --git a/users/ericgebhart/extensions/smart_lock.h b/users/ericgebhart/extensions/smart_lock.h
deleted file mode 100644
index 0102d611cd..0000000000
--- a/users/ericgebhart/extensions/smart_lock.h
+++ /dev/null
@@ -1,103 +0,0 @@
-#pragma once
-/*
- Copyright 2018-2022 Eric Gebhart <e.a.gebhart@gmail.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 QMK_KEYBOARD_H
-#include USERSPACE_H
-
-#ifdef SMART_LOCK_ENABLE
-typedef enum {
- sml_layer,
- sml_mod
-} smart_lock_type;
-
-typedef struct {
- bool active;
- const uint16_t *keys;
- uint16_t keycode;
- uint16_t thing;
- smart_lock_type type;
-} smart_lock_t;
-
-
-// smart layer, smart mods
-#undef SMLL
-#undef SMLM
-#define SMLL(key, layer, ...)
-#define SMLM(key, mod, ...) // to replace mod_lock..
-#define COND_KEYS_END 0
-
-#define CONCATENATE_SA(a, ...) a ## __VA_ARGS__
-#define CONCATENATE_S(a, ...) a ## __VA_ARGS__
-#define CAT_S(a, ...) CONCATENATE_S(a, __VA_ARGS__)
-#define MK_SKEY(KC) CONCATENATE_S(sml_, KC)
-#define MK_ARRAY(KC) \
- const uint16_t PROGMEM CONCATENATE_SA(sml_, KC)[]
-
-// to create an enum and find how many...
-#define S_ENUM(kc, layer, ...) CAT_S(sml__, kc),
-// create a const array of the condkeys for each SML
-#define S_DATA(kc, thing, ...) MK_ARRAY(kc) = {__VA_ARGS__, COND_KEYS_END};
-
-// create a list of smart_lock structs. Two names, one for mod one for layer to be concise.
-#define S_SMART_LOCK(kc, layer, ...) {false, MK_SKEY(kc), kc, layer, sml_layer},
-#define M_SMART_LOCK(kc, mod, ...) {false, MK_SKEY(kc), kc, mod, sml_mod},
-
-#define SML(sk, sa, st, stype) \
- { .keys = &(sk)[0], .keycode = (sa), .thing = (st), .smart_lock_type = stype}
-#define K_SMLM(key, mod...) [MK_SKEY(key)] = SML(MK_SKEY(key), key, mod, sml_mod),
-#define K_SMLL(key, layer...) [MK_SKEY(key)] = SML(MK_SKEY(key), key, layer, sml_layer),
-
-// Set everything up
-// - Create enum of names, (sml_keycode). Used as indexes in the arrays.
-// avoids using the keycodes which would create a sparse/large array.
-// - Create array of conditional locks..
-// - Create array of the conditional keys for the locks, by name.
-
-// Create Enum
-#undef SMLL
-#undef SMLM
-#define SMLL S_ENUM
-#define SMLM S_ENUM
-
-// find how many
-enum smart_locks {
-#include "smart_lock.def"
- SML_LENGTH
-};
-uint16_t SML_LEN = SML_LENGTH;
-
-// Bake locks into mem, name, ignore/cancel keys
-#undef SMLL
-#undef SMLM
-#undef TOGG
-#define SMLL S_DATA
-#define SMLM S_DATA
-#include "smart_lock.def"
-#undef SMLL
-#undef SMLM
-
-// Fill array of locks by name, kc, layer/mod.
-#define SMLL S_SMART_LOCK
-#define SMLM M_SMART_LOCK
-
-smart_lock_t smart_locks[] = {
-#include "smart_lock.def"
-};
-#undef SMLL
-#undef SMLM
-
-#endif
diff --git a/users/ericgebhart/extensions/swapper.c b/users/ericgebhart/extensions/swapper.c
deleted file mode 100644
index 988a99e602..0000000000
--- a/users/ericgebhart/extensions/swapper.c
+++ /dev/null
@@ -1,58 +0,0 @@
-/*
- Copyright 2022 Eric Gebhart <e.a.gebhart@gmail.com, @possumvibes,@Callum.
-
- 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/>.
-*/
-// Derived from swapper by @Possumvibes and @Callum
-
-#include "swapper.h"
-
-swapper_state_t swapper_states[] = {
-#ifdef SWAPPER_ENABLE
-#include "swapper.def"
-#endif
-};
-uint8_t NUM_SWAPPER_STATES = sizeof(swapper_states) / sizeof(swapper_state_t);
-
-// Based on https://github.com/callum-oakley/qmk_firmware/tree/master/users/callum
-void process_swappers(uint16_t keycode, keyrecord_t *record) {
-#ifdef SWAPPER_ENABLE
- swapper_state_t *curr_state = NULL;
- for (int i = 0; i < NUM_SWAPPER_STATES; ++i) {
- curr_state = &swapper_states[i];
-
- if (keycode == curr_state->forward_trigger) {
- if (record->event.pressed) {
- if (!curr_state->active) {
- curr_state->active = true;
- register_code16(curr_state->mod);
- }
- register_code16(curr_state->forward);
- } else {
- unregister_code16(curr_state->forward);
- // Don't unregister curr_state->mod until some other key is hit or released.
- }
- } else if (curr_state->active && keycode == curr_state->reverse_trigger) {
- if (record->event.pressed) {
- register_code16(curr_state->reverse);
- } else {
- unregister_code16(curr_state->reverse);
- }
- } else if (curr_state->active) {
- unregister_code16(curr_state->mod);
- curr_state->active = false;
- }
- }
-#endif
-}
diff --git a/users/ericgebhart/extensions/swapper.h b/users/ericgebhart/extensions/swapper.h
deleted file mode 100644
index fb7774f37a..0000000000
--- a/users/ericgebhart/extensions/swapper.h
+++ /dev/null
@@ -1,37 +0,0 @@
-#pragma once
-/*
- Copyright 2018-2022 Eric Gebhart <e.a.gebhart@gmail.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 QMK_KEYBOARD_H
-#include USERSPACE_H
-
-typedef struct {
- bool active;
- uint16_t mod;
- uint16_t forward;
- uint16_t reverse;
- uint16_t forward_trigger;
- uint16_t reverse_trigger;
-} swapper_state_t;
-extern swapper_state_t swapper_states[];
-extern uint8_t NUM_SWAPPER_STATES;
-
-#undef SWAPPER_KEY
-#define SWAPPER_KEY(KC, REVERSE_IT_KC, FWD_KC, REV_KC, MOD) \
- {false, MOD, FWD_KC, REV_KC, KC, REVERSE_IT_KC},
-
-void process_swappers(uint16_t keycode, keyrecord_t *record);
diff --git a/users/ericgebhart/extensions/tap_dances.c b/users/ericgebhart/extensions/tap_dances.c
deleted file mode 100755
index 8b1fea15e8..0000000000
--- a/users/ericgebhart/extensions/tap_dances.c
+++ /dev/null
@@ -1,277 +0,0 @@
-/*
- Copyright 2018 Eric Gebhart <e.a.gebhart@gmail.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/>.
-*/
-#ifdef TAP_DANCES_ENABLE
-
-#include "tap_dances.h"
-
-#include "action.h"
-#include "action_layer.h"
-#include "process_keycode/process_tap_dance.h"
-
-void tap_dance_mouse_btns (tap_dance_state_t *state, void *user_data) {
- switch(state->count){
- case 1:
- register_code(KC_BTN1);
- break;
- case 2:
- register_code(KC_BTN2);
- break;
- case 3:
- register_code(KC_BTN3);
- break;
- case 4:
- register_code(KC_BTN4);
- break;
- case 5:
- register_code(KC_BTN5);
- break;
- default:
- break;
- }
- reset_tap_dance(state);
-}
-
-// counting on all the qwerty layers to be less than dvorak_on_bepo
-int on_qwerty(){
- uint8_t deflayer = (biton32(default_layer_state));
- switch(deflayer){
- case _DVORAK_BP:
- case _BEAKL_BP:
- case _BEPO:
- return (false);
- default:
- break;
- }
- return (true);
-}
-
-static void switch_default_layer(uint8_t layer) {
- default_layer_set(1UL<<layer);
- clear_keyboard();
-}
-
-// so the keyboard remembers which layer it's in after power disconnect.
-/*
- uint32_t default_layer_state_set_kb(uint32_t state) {
- eeconfig_update_default_layer(state);
- return state;
- }
-*/
-
-void tap_dance_df_bepo_layers_switch (tap_dance_state_t *state, void *user_data) {
- switch(state->count){
- case 1:
- switch_default_layer(_DVORAK_BP);
- break;
- case 2:
- switch_default_layer(_BEPO);
- break;
- case 3:
- layer_invert(_LAYERS);
- break;
- default:
- break;
- }
- reset_tap_dance(state);
-}
-
-void tap_dance_layer_switch (tap_dance_state_t *state, void *user_data) {
- switch(state->count){
- case 1:
- if(on_qwerty())
- layer_invert(_SYMB);
- else
- layer_invert(_SYMB_BP);
- break;
- case 2:
- layer_invert(_NAV);
- break;
- case 3:
- layer_invert(_LAYERS);
- break;
- case 4:
- if(on_qwerty())
- layer_invert(_KEYPAD);
- else
- layer_invert(_KEYPAD_BP);
- break;
- default:
- break;
- }
- reset_tap_dance(state);
-}
-
-void tap_dance_default_layer_switch (tap_dance_state_t *state, void *user_data) {
- switch(state->count){
- case 1:
- switch_default_layer(_DVORAK);
- break;
- case 2:
- switch_default_layer(_DVORAK_BP);
- break;
- case 3:
- switch_default_layer(_BEPO);
- break;
- default:
- break;
- }
- reset_tap_dance(state);
-}
-
-// switch the default layer to another qwerty based layer.
-void switch_default_layer_on_qwerty(int count) {
- switch(count){
- case 1:
- switch_default_layer(_DVORAK);
- break;
- case 2:
- switch_default_layer(_QWERTY);
- break;
- case 3:
- switch_default_layer(_COLEMAK);
- break;
-
- /* case 4: */
- /* switch_default_layer(_WORKMAN); */
- /* break; */
- /* case 5: */
- /* switch_default_layer(_NORMAN); */
- /* break; */
-
- default:
- switch_default_layer(_DVORAK);
- break;
- }
-}
-
-// switch the default layer to another bepo based layer.
-void switch_default_layer_on_bepo(int count) {
- switch(count){
- case 1:
- switch_default_layer(_DVORAK_BP);
- break;
- case 2:
- switch_default_layer(_BEPO);
- break;
- default:
- switch_default_layer(_DVORAK_BP);
- break;
- }
-}
-
-
-// tap to change the default layer. Distinguishes between layers that are based on
-// a qwerty software keyboard and a bepo software keyboard.
-// if shifted, choose layers based on the other software keyboard, otherwise choose only
-// layers that work on the current software keyboard.
-void tap_dance_default_os_layer_switch (tap_dance_state_t *state, void *user_data) {
- //uint8_t shifted = (get_mods() & MOD_BIT(KC_LSFT|KC_RSFT));
- bool shifted = ( keyboard_report->mods & (MOD_BIT(KC_LSFT)|MOD_BIT(KC_RSFT)) );
- int qwerty = on_qwerty();
-
-
- // shifted, choose between layers on the other software keyboard
- if(shifted){
- if (qwerty)
- switch_default_layer_on_bepo(state->count);
- else
- switch_default_layer_on_qwerty(state->count);
-
- // not shifted, choose between layers on the same software keyboard
- } else {
- if (qwerty)
- switch_default_layer_on_qwerty(state->count);
- else
- switch_default_layer_on_bepo(state->count);
- }
-
- reset_tap_dance(state);
-}
-
-
-/* Return an integer that corresponds to what kind of tap dance should be executed.
- *
- * How to figure out tap dance state: interrupted and pressed.
- *
- * Interrupted: If the state of a dance dance is "interrupted", that means that another key has been hit
- * under the tapping term. This is typically indicitive that you are trying to "tap" the key.
- *
- * Pressed: Whether or not the key is still being pressed. If this value is true, that means the tapping term
- * has ended, but the key is still being pressed down. This generally means the key is being "held".
- *
- * One thing that is currenlty not possible with qmk software in regards to tap dance is to mimic the "permissive hold"
- * feature. In general, advanced tap dances do not work well if they are used with commonly typed letters.
- * For example "A". Tap dances are best used on non-letter keys that are not hit while typing letters.
- *
- * Good places to put an advanced tap dance:
- * z,q,x,j,k,v,b, any function key, home/end, comma, semi-colon
- *
- * Criteria for "good placement" of a tap dance key:
- * Not a key that is hit frequently in a sentence
- * Not a key that is used frequently to double tap, for example 'tab' is often double tapped in a terminal, or
- * in a web form. So 'tab' would be a poor choice for a tap dance.
- * Letters used in common words as a double. For example 'p' in 'pepper'. If a tap dance function existed on the
- * letter 'p', the word 'pepper' would be quite frustating to type.
- *
- * For the third point, there does exist the 'DOUBLE_SINGLE_TAP', however this is not fully tested
- *
- */
-int cur_dance (tap_dance_state_t *state) {
- if (state->count == 1) {
- if (state->interrupted || !state->pressed) return SINGLE_TAP;
- //key has not been interrupted, but they key is still held. Means you want to send a 'HOLD'.
- else return SINGLE_HOLD;
- }
- else if (state->count == 2) {
- /*
- * DOUBLE_SINGLE_TAP is to distinguish between typing "pepper", and actually wanting a double tap
- * action when hitting 'pp'. Suggested use case for this return value is when you want to send two
- * keystrokes of the key, and not the 'double tap' action/macro.
- */
- if (state->interrupted) return DOUBLE_SINGLE_TAP;
- else if (state->pressed) return DOUBLE_HOLD;
- else return DOUBLE_TAP;
- }
- //Assumes no one is trying to type the same letter three times (at least not quickly).
- //If your tap dance key is 'KC_W', and you want to type "www." quickly - then you will need to add
- //an exception here to return a 'TRIPLE_SINGLE_TAP', and define that enum just like 'DOUBLE_SINGLE_TAP'
- if (state->count == 3) {
- if (state->interrupted || !state->pressed) return TRIPLE_TAP;
- else return TRIPLE_HOLD;
- }
- else return 8; //magic number. At some point this method will expand to work for more presses
-}
-
-//Tap Dance Definitions
-tap_dance_action_t tap_dance_actions[] = {
- //Tap once for Esc, twice for Caps Lock
- [TD_ESC_CAPS] = ACTION_TAP_DANCE_DOUBLE(KC_ESC, KC_CAPS),
- [TD_TAB_BKTAB] = ACTION_TAP_DANCE_DOUBLE(KC_TAB, LSFT(KC_TAB)),
- [TD_RIGHT_TAB] = ACTION_TAP_DANCE_DOUBLE(KC_RIGHT, KC_TAB),
- [TD_LEFT_BACKTAB] = ACTION_TAP_DANCE_DOUBLE(KC_LEFT, LSFT(KC_TAB)),
- [TD_UP_HOME] = ACTION_TAP_DANCE_DOUBLE(KC_UP, KC_HOME),
- [TD_DOWN_END] = ACTION_TAP_DANCE_DOUBLE(KC_DOWN, KC_END),
- [TD_MDIA_SYMB] = ACTION_TAP_DANCE_FN(tap_dance_layer_switch),
- [TD_DVORAK_BEPO] = ACTION_TAP_DANCE_FN(tap_dance_df_bepo_layers_switch),
- [TD_DEF_LAYER_SW] = ACTION_TAP_DANCE_FN(tap_dance_default_layer_switch),
- [TD_DEF_OS_LAYER_SW] = ACTION_TAP_DANCE_FN(tap_dance_default_os_layer_switch),
- [TD_HOME_END] = ACTION_TAP_DANCE_DOUBLE(KC_HOME, KC_END),
- [TD_MOUSE_BTNS] = ACTION_TAP_DANCE_FN(tap_dance_mouse_btns)
-
-};
-
-#endif
diff --git a/users/ericgebhart/extensions/tap_dances.h b/users/ericgebhart/extensions/tap_dances.h
deleted file mode 100755
index 745446756e..0000000000
--- a/users/ericgebhart/extensions/tap_dances.h
+++ /dev/null
@@ -1,19 +0,0 @@
-#pragma once
-/*
- Copyright 2018 Eric Gebhart <e.a.gebhart@gmail.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 USERSPACE_H
diff --git a/users/ericgebhart/extensions/tap_hold.c b/users/ericgebhart/extensions/tap_hold.c
deleted file mode 100644
index 041b961e11..0000000000
--- a/users/ericgebhart/extensions/tap_hold.c
+++ /dev/null
@@ -1,165 +0,0 @@
-/*
- Copyright 2022 Eric Gebhart <e.a.gebhart@gmail.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/>.
-*/
-
-/* This is variations on custom tap hold functionality. It makes it easy */
-/* to maintain tap_hold keys and combinations. These combinations go into */
-/* the file "tap_hold.def". Here are two examples. */
-/* */
-/* This example is tap or tap for TAP_HOLD_TERM, It defines a key */
-/* KC_CCCV, which sends Control-c on tap, and Control-v on hold. */
-/* */
-/* TP_TPL(KC_CCCV, LCTL(KC_C), LCTL(KC_V)) */
-/* */
-/* This is an example of Open - Open and Close. */
-/* It defines a key, KC_OCPRN which when tapped gives an '(' and */
-/* when held gives '()' followed by a backarrow. */
-/* Which places the cursor between them.*/
-/* */
-/* OPEN_OCL(KC_OCPRN, KC_LPRN, KC_RPRN) */
-/* */
-/* To use this, add it to your src in rules.mk, and include */
-/* tap_hold.h in your code above process_record_user. */
-/* */
-/* Add a call like this to use it. */
-/* process_tap_hold_user(keycode, record); */
-/* */
-/* Note: You must add any custom keycodes to your keycodes enum */
-/* otherwise they will not exist. */
-
-
-#include USERSPACE_H
-#include "stdint.h"
-#include "tap_hold.h"
-void update_smart_lock(uint16_t keycode);
-
-
-void tap_taplong(uint16_t kc1, uint16_t kc2, keyrecord_t *record) {
- if (record->event.pressed) {
- tap_taplong_timer = timer_read();
- } else {
- if (timer_elapsed(tap_taplong_timer) > TAP_HOLD_TERM) {
- tap_code16(kc2);
- } else {
- tap_code16(kc1);
- }
- }
-}
-
-void tap_sml(uint16_t kc1, uint16_t kc2, keyrecord_t *record) {
- if (record->event.pressed) {
- tap_taplong_timer = timer_read();
- } else {
- if (timer_elapsed(tap_taplong_timer) > TAP_HOLD_TERM) {
- update_smart_lock(kc2);
- } else {
- tap_code16(kc1);
- }
- }
-}
-
-/* for (){}[]""''<>``. tap for open. Hold for open and close, ending inbetween. */
-/* Assumes a one character length. */
-void open_openclose(uint16_t kc1, uint16_t kc2, keyrecord_t *record) {
- if (record->event.pressed) {
- tap_taplong_timer = timer_read();
- }else{
- if (timer_elapsed(tap_taplong_timer) > TAP_HOLD_TERM) {
- tap_code16(kc1);
- tap_code16(kc2);
- tap_code16(KC_LEFT);
-
- } else {
- // is shifted
- uint16_t mod_state = get_mods();
- if ((mod_state & MOD_MASK_SHIFT) ||
- (get_oneshot_mods() & MOD_MASK_SHIFT)){
- del_mods(MOD_MASK_SHIFT);
- del_oneshot_mods(MOD_MASK_SHIFT);
-
- tap_code16(kc1);
- tap_code16(kc1);
- tap_code16(kc1);
-
- set_mods(mod_state);
- }else{
- tap_code16(kc1);
- }
- }
- }
-}
-
-// open and open close for dead keys.
-void open_openclose_not_dead(uint16_t kc1, uint16_t kc2, keyrecord_t *record) {
- if (record->event.pressed) {
- tap_taplong_timer = timer_read();
- }else{
- if (timer_elapsed(tap_taplong_timer) > TAP_HOLD_TERM) {
- tap_code16(kc1);
- tap_code16(KC_SPACE);
- tap_code16(kc2);
- tap_code16(KC_SPACE);
- tap_code16(KC_LEFT);
- } else {
- // is shifted - give a triple
- uint16_t mod_state = get_mods();
- if ((mod_state & MOD_MASK_SHIFT) ||
- (get_oneshot_mods() & MOD_MASK_SHIFT)){
- del_mods(MOD_MASK_SHIFT);
- del_oneshot_mods(MOD_MASK_SHIFT);
-
- tap_code16(kc1);
- tap_code16(KC_SPACE);
- tap_code16(kc1);
- tap_code16(KC_SPACE);
- tap_code16(kc1);
- tap_code16(KC_SPACE);
-
- set_mods(mod_state);
- }else{
- tap_code16(kc1);
- tap_code16(KC_SPACE);
- }
- }
- }
-}
-
-// macros for use in tap_hold.defs.
-#define TP_TPL(KCKEY, KC01, KC02) \
- case KCKEY: \
- tap_taplong(KC01, KC02, record); \
- break;
-
-#define TP_SML(KCKEY, KC01, KC02) \
- case KCKEY: \
- tap_sml(KC01, KC02, record); \
- break;
-
-#define OPEN_OCL(KCKEY, KC01, KC02) \
- case KCKEY: \
- open_openclose(KC01, KC02, record); \
- break;
-
-#define OPEN_OCL_ND(KCKEY, KC01, KC02) \
- case KCKEY: \
- open_openclose_not_dead(KC01, KC02, record); \
- break;
-
-void process_tap_hold_user(uint16_t keycode, keyrecord_t *record) {
- switch(keycode){
-#include "tap_hold.def"
- }
-}
diff --git a/users/ericgebhart/extensions/tap_hold.h b/users/ericgebhart/extensions/tap_hold.h
deleted file mode 100644
index e5b3c42d8a..0000000000
--- a/users/ericgebhart/extensions/tap_hold.h
+++ /dev/null
@@ -1,20 +0,0 @@
-#pragma once
-/*
- Copyright 2022 Eric Gebhart <e.a.gebhart@gmail.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/>.
-*/
-
-void process_tap_hold_user(uint16_t keycode, keyrecord_t* record);
-uint16_t tap_taplong_timer;
diff --git a/users/ericgebhart/extensions/unicode.c b/users/ericgebhart/extensions/unicode.c
deleted file mode 100644
index fe44c69b1c..0000000000
--- a/users/ericgebhart/extensions/unicode.c
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
- Copyright 2018 Eric Gebhart <e.a.gebhart@gmail.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 USERSPACE_H
-#include "process_unicode_common.h"
-
-#undef UC_STR
-#define UC_STR(KEYC, STRING) \
- case KEYC: \
- if (record->event.pressed) { \
- send_unicode_string(STRING); \
- } \
- break;
-
-void process_unicode_strs(uint16_t keycode, keyrecord_t *record){
-#if defined(UNICODE_ENABLE) && defined(SEND_UNICODE_ENABLE)
- switch (keycode) {
-#include "unicode.def"
- }
-#endif
-}
diff --git a/users/ericgebhart/extensions/unicode.h b/users/ericgebhart/extensions/unicode.h
deleted file mode 100644
index eecf05d1bc..0000000000
--- a/users/ericgebhart/extensions/unicode.h
+++ /dev/null
@@ -1,24 +0,0 @@
-#pragma once
-/*
- Copyright 2018-2022 Eric Gebhart <e.a.gebhart@gmail.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/>.
-*/
-// Custom one-or-more-shot implementation that does not rely on timers
-// and persists across layer changes. Based on the users/callum implementation
-// at https://github.com/callum-oakley/qmk_firmware/tree/master/users/callum
-// make it easy to put unicode keys into process_record
-
-
-void process_unicode_strs(uint16_t keycode, keyrecord_t *record);
diff --git a/users/ericgebhart/keyboards/keyboards.h b/users/ericgebhart/keyboards/keyboards.h
deleted file mode 100644
index 8a6371af5e..0000000000
--- a/users/ericgebhart/keyboards/keyboards.h
+++ /dev/null
@@ -1,115 +0,0 @@
-#pragma once
-/*
- Copyright 2018 Eric Gebhart <e.a.gebhart@gmail.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/>.
-*/
-
-
-// Kyria
-#ifdef KEYBOARD_splitkb_kyria
-#define BASE Base_2x6_8_5
-#define BASEt6 Base_2x6_8_5t6
-#define TRANS Transient_2x6_8_5
-#define BASE_COLS_IN_OUT 5_6 // 5, 5_6, 6
-#endif
-
-// Corne
-#ifdef KEYBOARD_crkbd
-#define BASE Base_3x6_3
-#define BASEt6 Base_3x6_3t6
-#define TRANS Transient_3x6_3
-#define BASE_COLS_IN_OUT 5_6 // 5, 5_6, 6
-#endif
-
-// Ergodox ez.
-#ifdef KEYBOARD_ergodox_ez
-#define BASE Base_dox
-#define BASEt6 Base_doxt6
-#define TRANS Transient_dox
-#define BASE_COLS_IN_OUT 5_6 // 5, 5_6, 6
-// tell the keymap we want to specify number rows.
-// 4x10 input instead 3x10.
-#define BASE_NUMBER_ROW // turn on 4 row base templates.
-#endif
-
-// XD75
-#ifdef KEYBOARD_xiudi_xd75
-#define BASE Base_5x15
-#define BASEt6 Base_5x15t6
-#define TRANS Transient_5x15
-#define BASE_COLS_IN_OUT 5_6 // 5, 5_6, 6
-
-// tell the keymap we want to specify number rows.
-// 4x10 input instead 3x10.
-#define BASE_NUMBER_ROW // turn on 4 row base templates.
-#endif
-
-// Viterbi
-#ifdef KEYBOARD_keebio_viterbi
-#define BASE Base_5x14
-#define BASEt6 Base_5x14t6
-#define TRANS Transient_5x14
-#define BASE_COLS_IN_OUT 5_6 // 5, 5_6, 6
-
-// tell the keymap we want to specify number rows.
-// 4x10 input instead 3x10.
-#define BASE_NUMBER_ROW // turn on 4 row base templates.
-#endif
-
-// Rebound
-#ifdef KEYBOARD_montsinger_rebound
-#define BASE Base_rebound
-#define BASEt6 Base_reboundt6
-#define TRANS Rebound_transient
-#define BASE_COLS_IN_OUT 5_6 // 5, 5_6, 6
-#endif
-
-// Kinesis
-#if defined(KEYBOARD_kinesis_alvicstep) \
- || defined(KEYBOARD_kinesis_stapelberg) \
- || defined(KEYBOARD_kinesis_kint2pp) \
- || defined(KEYBOARD_kinesis_nguyenvietyen) \
- || defined(KEYBOARD_kinesis_kint36) \
- || defined(KEYBOARD_kinesis_kint41) \
- || defined(KEYBOARD_kinesis_kintlc)
-
-#undef LAYOUT_PVARG
-#define LAYOUT_PVARG(...) LAYOUT_pretty(__VA_ARGS__)
-// Base layers 4x10, so numbers are enabled, and a 3x10 for the keymap.
-// Transient function layers are all 3x10.
-#define BASE Base_4x6_4_6
-#define BASEt6 Base_4x6_4_6t6
-#define TRANS Transient_4x6_4_6
-#define BASE_COLS_IN_OUT 5_6 // 5, 5_6, 6
-
-// tell the keymap we want to specify number rows.
-// 4x10 input instead 3x10.
-#define BASE_NUMBER_ROW // turn on 4 row base templates.
-#endif
-
-// My Morpho Dactyl
-#ifdef KEYBOARD_gebhart_morpho
-#undef LAYOUT_PVARG
-#define LAYOUT_PVARG(...) LAYOUT_split_4x6_5_8(__VA_ARGS__)
-
-#define BASE Base_4x6_5_8
-#define BASEt6 Base_4x6_5_8t6
-#define TRANS Transient_4x6_5_8
-#define BASE_COLS_IN_OUT 5_6 // 5, 5_6, 6
-
-// tell the keymap we want to specify number rows.
-// 4x10 input instead 3x10.
-#define BASE_NUMBER_ROW // turn on 4 row base templates.
-#endif
diff --git a/users/ericgebhart/keyboards/layouts.h b/users/ericgebhart/keyboards/layouts.h
deleted file mode 100644
index b77d5a3de6..0000000000
--- a/users/ericgebhart/keyboards/layouts.h
+++ /dev/null
@@ -1,771 +0,0 @@
-#pragma once
-/*
- Copyright 2018 Eric Gebhart <e.a.gebhart@gmail.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 "base_layers.h"
-#include "mod_layer.h"
-#include "edge_keys.h"
-#include "thumbs.h"
-#include QMK_KEYBOARD_H
-
-/******************************************************************/
-/* This is where I put my Keyboard layouts. */
-/* The mod layer can be modified in mod_layer.h */
-/* can be applied here. The physical shape of the keyboard is */
-/* also accounted for here. This makes it very simple to add a */
-/* new keyboard and reuse all of my layouts and layers */
-/* */
-/* With all of that in hand, we then create a LAYOUT wrapper */
-/* macro that takes a list of keys, to create a keyboard matrix */
-/* that fits the keyboard. Simple. */
-/* */
-/* The thumb keys, the bottom rows, etc. */
-/* */
-/* An attempt has been made to adapt the kinesis and ergodox */
-/* Thumb keys to the rectangular shapes of the xd75, viterbi, */
-/* and rebound. */
-/******************************************************************/
-
-/******************************************************************/
-/* * The XD75 is a 5x15 Ortholinear matrix which means it has 3 */
-/* keys inbetween the usual left and right hand keys */
-/* * The Viterbi is a split 5x14 Ortholinear with 2 middle keys. */
-/* * The Ergodox is a split 5x14 Ortholinear with 2 middle keys, */
-/* thumbkeys. It is missing middle keys on (home) row 3. */
-/* * The Corne is a split 3x12 with 6 thumb keys. It has no */
-/* extra middle keys */
-/* * The Kinesis is 4x6 + 4 and 6 thumb keys. */
-/* * My Dactyl is 4x6 + 5 and 8 thumb keys. */
-/******************************************************************/
-
-
-/******************************************************************/
-/* In all cases these keyboards are defined in a matrix which is */
-/* a set of rows. Maybe like so, or not. */
-/* */
-/* -------------------------|------------------------ */
-/* | Left0 | Numbers L | mid|dle0 | numbers R | Right0 | */
-/* | Left1 | keys0-5 | mid|dle1 | Keys6-10 | Right1 | */
-/* | Left2 | keys11-15 | mid|dle2 | Keys16-20 | Right2 | */
-/* | Left3 | keys20-25 | mid|dle3 | Keys25-30 | Right3 | */
-/* | Row5L | Row5R | */
-/* | ThumbsL | ThumbsR | */
-/* -------------------------|------------------------ */
-
-/* Generally speaking, the keys on the right and left don't change. */
-/* Neither does the bottom row or the thumbs. Frequently the numbers */
-/* row is identical across layers. Mostly, we want our Base layers to */
-/* be predctable. */
-
-
-// Since our quirky block definitions are basically a list of comma separated
-// arguments, we need a wrapper in order for these definitions to be
-// expanded before being used as arguments to the LAYOUT_xxx macro.
-#if (!defined(LAYOUT) && defined(KEYMAP))
-#define LAYOUT KEYMAP
-#endif
-
-// every keyboard has it's Layout. We start there and make a var args
-// out of it.
-
-#define LVARG_ergodox(...) LAYOUT_ergodox(__VA_ARGS__)
-#define LVARG_edox(...) LAYOUT_ergodox_pretty(__VA_ARGS__)
-#define LAYOUT_VARG(...) LAYOUT(__VA_ARGS__)
-#define LAYOUT_PVARG(...) LAYOUT_pretty(__VA_ARGS__)
-
-#define LVARG_4x12(...) LAYOUT_ortho_4x12(__VA_ARGS__)
-#define LVARG_5x12(...) LAYOUT_ortho_5x12(__VA_ARGS__)
-#define LVARG_5x14(...) LAYOUT_ortho_5x14(__VA_ARGS__)
-#define LVARG_5x15(...) LAYOUT_ortho_5x15(__VA_ARGS__)
-
-/*
- | Left | Numbers L | middle | numbers R | Right |
- | Left | keys0-5 | middle | Keys6-10 | Right |
- | Left | keys11-15 | middle | Keys16-20 | Right |
- | Left | keys20-25 | middle | Keys25-30 | Right |
- |Row5L Row5R |
- |ThumbsL ThumbsR |
-*/
-
-/* Assuming that left, midddle, right, row5, and thumbs stay the same, */
-/* numbers, no numbers, numbers never change, whatever. */
-/* we can have a layout macro that takes a nice rectangle of keys. */
-
-
-/*Some keyboards need number rows, some don't. there is a setting for that */
-/* the keymap will give number rows if BASE_NUMBER_ROW is defined.*/
-/* in that case, the layout should take 4 rows of 10. */
-/* If all the layouts you might ever want would have the same top row,*/
-/* Then it could be defined like that here, and it could take 3x10.*/
-/* All layouts are relatively simple to make. */
-/* The ROW macros add a universal mod layer so that mods can be defined once */
-/* and used everywhere. No matter the keymap or layer. this allows actual maps */
-/* like dvorak, qwerty, colemak, beakl, etc., to be defined simply. */
-
-
-/* Additional, usage examples can be found in keyboards.*/
-/* crkbd/keymaps/ericgebhart */
-/* kinesis/keymaps/ericgebhart */
-/* ergodox_ez/keymaps/ericgebhart */
-/* keebio/viterbi/keymaps/ericgebhart */
-/* xiudi/xd75/keymaps/ericgebhart */
-/* montsinger/rebound/rev4/keymaps/ericgebhart */
-
-
-
-/********************************************************************/
-/* xiudi/xd75 - Ortholinear 5x15 */
-/********************************************************************/
-/// These first two base layout templates take sets of 5 keys, left and right.
-// Using 4 sets allows for changing the number row if you have one.
-// if you never change the number row, then use 3 sets of left and right.
-// and define the number row here.
-#define Base_5x15( \
- K01, K02, K03, K04, K05, \
- K06, K07, K08, K09, K0A, \
- K11, K12, K13, K14, K15, \
- K16, K17, K18, K19, K1A, \
- K21, K22, K23, K24, K25, \
- K26, K27, K28, K29, K2A, \
- K31, K32, K33, K34, K35, \
- K36, K37, K38, K39, K3A) \
- LVARG_5x15( \
- MOD_ROW(ROW0L)(K01, K02, K03, K04, K05), \
- MAP_CHUNK(___3_MIDDLE_T), \
- MOD_ROW(ROW0R)(K06, K07, K08, K09, K0A), \
- \
- MOD_ROW(ROW1L)(K11, K12, K13, K14, K15), \
- MAP_CHUNK(___3_MIDDLE_1), \
- MOD_ROW(ROW1R)(K16, K17, K18, K19, K1A), \
- \
- MOD_ROW(ROW2L)(K21, K22, K23, K24, K25), \
- MAP_CHUNK(___3_MIDDLE_2), \
- MOD_ROW(ROW2R)(K26, K27, K28, K29, K2A), \
- \
- MOD_ROW(ROW3L)(K31, K32, K33, K34, K35), \
- MAP_CHUNK(___3_MIDDLE_3), \
- MOD_ROW(ROW3R)(K36, K37, K38, K39, K3A), \
- MAP_CHUNK(___15_BOTTOM) \
- )
-
-#define Base_5x15t6( \
- K01, K02, K03, K04, K05, K06, \
- K07, K08, K09, K0A, K0B, K0C, \
- K11, K12, K13, K14, K15, K16, \
- K17, K18, K19, K1A, K1B, K1C, \
- K21, K22, K23, K24, K25, K26, \
- K27, K28, K29, K2A, K2B, K2C, \
- K31, K32, K33, K34, K35, K36, \
- K37, K38, K39, K3A, K3B, K3C) \
- LVARG_5x15( \
- MOD_ROW(ROW0L)(K01, K02, K03, K04, K05, K06), \
- MAP_CHUNK(___3_MIDDLE_T), \
- MOD_ROW(ROW0R)(K07, K08, K09, K0A, K0B, K0C), \
- MOD_ROW(ROW1L)(K11, K12, K13, K14, K15, K16), \
- MAP_CHUNK(___3_MIDDLE_1), \
- MOD_ROW(ROW1R)(K17, K18, K19, K1A, K1B, K1C), \
- MOD_ROW(ROW2L)(K21, K22, K23, K24, K25, K26), \
- MAP_CHUNK(___3_MIDDLE_2), \
- MOD_ROW(ROW2R)(K27, K28, K29, K2A, K2B, K2C), \
- MOD_ROW(ROW3L)(K31, K32, K33, K34, K35, K36), \
- MAP_CHUNK(___3_MIDDLE_3), \
- MOD_ROW(ROW3R)(K37, K38, K39, K3A, K3B, K3C), \
- MAP_CHUNK(___15_BOTTOM) \
- )
-
-// 4 rows of 12. 3 columns transparent in the middle.
-#define Transient_5x15( \
- K01, K02, K03, K04, K05, \
- K07, K08, K09, K0A, K0B, \
- K11, K12, K13, K14, K15, \
- K17, K18, K19, K1A, K1B, \
- K21, K22, K23, K24, K25, \
- K27, K28, K29, K2A, K2B \
- ) \
- LVARG_5x15( \
- ___15___, \
- ___, K01, K02, K03, K04, K05, \
- ___3___, \
- K07, K08, K09, K0A, K0B, ___, \
- ___, K11, K12, K13, K14, K15, \
- ___3___, \
- K17, K18, K19, K1A, K1B, ___, \
- ___, K21, K22, K23, K24, K25, \
- ___3___, \
- K27, K28, K29, K2A, K2B, ___, \
- MAP_CHUNK(___15_BOTTOM) \
- ) \
-
-/********************************************************************/
-
-
-/********************************************************************/
-/* viterbi - Ortholinear 5x14 */
-/********************************************************************/
-#define Base_5x14( \
- K01, K02, K03, K04, K05, \
- K06, K07, K08, K09, K0A, \
- K11, K12, K13, K14, K15, \
- K16, K17, K18, K19, K1A, \
- K21, K22, K23, K24, K25, \
- K26, K27, K28, K29, K2A, \
- K31, K32, K33, K34, K35, \
- K36, K37, K38, K39, K3A) \
- LVARG_5x14( \
- MOD_ROW(ROW0L)(K01, K02, K03, K04, K05), \
- MAP_CHUNK(___2_MIDDLE_T), \
- MOD_ROW(ROW0R)(K06, K07, K08, K09, K0A), \
- \
- MOD_ROW(ROW1L)(K11, K12, K13, K14, K15), \
- MAP_CHUNK(___2_MIDDLE_1), \
- MOD_ROW(ROW1R)(K16, K17, K18, K19, K1A), \
- \
- MOD_ROW(ROW2L)(K21, K22, K23, K24, K25), \
- MAP_CHUNK(___2_MIDDLE_2), \
- MOD_ROW(ROW2R)(K26, K27, K28, K29, K2A), \
- \
- MOD_ROW(ROW3L)(K31, K32, K33, K34, K35), \
- MAP_CHUNK(___2_MIDDLE_3), \
- MOD_ROW(ROW3R)(K36, K37, K38, K39, K3A), \
- MAP_CHUNK(___14_BOTTOM) \
- )
-#define Base_5x14t6( \
- K01, K02, K03, K04, K05, K06, \
- K07, K08, K09, K0A, K0B, K0C, \
- K11, K12, K13, K14, K15, K16, \
- K17, K18, K19, K1A, K1B, K1C, \
- K21, K22, K23, K24, K25, K26, \
- K27, K28, K29, K2A, K2B, K2C, \
- K31, K32, K33, K34, K35, K36, \
- K37, K38, K39, K3A, K3B, K3C) \
- LVARG_5x15( \
- MOD_ROW(ROW0L)(K01, K02, K03, K04, K05, K06), \
- MAP_CHUNK(___2_MIDDLE_T), \
- MOD_ROW(ROW0R)(K07, K08, K09, K0A, K0B, K0C), \
- MOD_ROW(ROW1L)(K11, K12, K13, K14, K15, K16), \
- MAP_CHUNK(___2_MIDDLE_1), \
- MOD_ROW(ROW1R)(K17, K18, K19, K1A, K1B, K1C), \
- MOD_ROW(ROW2L)(K21, K22, K23, K24, K25, K26), \
- MAP_CHUNK(___2_MIDDLE_2), \
- MOD_ROW(ROW2R)(K27, K28, K29, K2A, K2B, K2C), \
- MOD_ROW(ROW3L)(K31, K32, K33, K34, K35, K36), \
- MAP_CHUNK(___2_MIDDLE_3), \
- MOD_ROW(ROW3R)(K37, K38, K39, K3A, K3B, K3C), \
- MAP_CHUNK(___14_BOTTOM) \
- )
-
-// 4 rows of 12. 2 columns transparent in the middle.
-#define Transient_5x14( \
- K01, K02, K03, K04, K05, \
- K07, K08, K09, K0A, K0B, \
- K11, K12, K13, K14, K15, \
- K17, K18, K19, K1A, K1B, \
- K21, K22, K23, K24, K25, \
- K27, K28, K29, K2A, K2B \
- ) \
- LVARG_5x14( \
- ___14___, \
- ___, K01, K02, K03, K04, K05, \
- ___2___, \
- K07, K08, K09, K0A, K0B, ___, \
- \
- ___, K11, K12, K13, K14, K15, \
- ___2___, \
- K17, K18, K19, K1A, K1B, ___, \
- \
- ___, K21, K22, K23, K24, K25, \
- ___2___, \
- K27, K28, K29, K2A, K2B, ___, \
- MAP_CHUNK(___14_BOTTOM) \
- ) \
-
-/********************************************************************/
-/* Ortholinear 4x12 */
-/********************************************************************/
-#define LAYOUT_4x12_base( \
- K01, K02, K03, K04, K05, \
- K06, K07, K08, K09, K0A, \
- K11, K12, K13, K14, K15, \
- K16, K17, K18, K19, K1A, \
- K21, K22, K23, K24, K25, \
- K26, K27, K28, K29, K2A \
- ) \
- LVARG_4x12( \
- MOD_CORE_3x5(K01, K02, K03, K04, K05, \
- K06, K07, K08, K09, K0A, \
- K11, K12, K13, K14, K15, \
- K16, K17, K18, K19, K1A, \
- K21, K22, K23, K24, K25, \
- K26, K27, K28, K29, K2A), \
- ___12_BOTTOM___ \
- )
-
-// Just for bepo because it's a 3x6 matrix on each side.
-// So 3 pairs of 6 keys, left and right.
-
-// takes 3 makes 4 rows of 12.
-#define LAYOUT_4x12_transient( \
- K01, K02, K03, K04, K05, K06, \
- K07, K08, K09, K0A, K0B, K0C, \
- K11, K12, K13, K14, K15, K16, \
- K17, K18, K19, K1A, K1B, K1C, \
- K21, K22, K23, K24, K25, K26, \
- K27, K28, K29, K2A, K2B, K2C \
- ) \
- LVARG_4x12( \
- K01, K02, K03, K04, K05, K06, \
- K07, K08, K09, K0A, K0B, K0C, \
- K11, K12, K13, K14, K15, K16, \
- K17, K18, K19, K1A, K1B, K1C, \
- K21, K22, K23, K24, K25, K26, \
- K27, K28, K29, K2A, K2B, K2C, \
- ___12_BOTTOM___ \
- ) \
-
-/********************************************************************/
-/* CRKBD Corne or any other 3x5/6 with 3 thumbs on each side. */
-/* The Corne has 3x6 matrix on both sides with 6 thumbs total */
-/* This Macro takes 2x3x5 and gives it pinkies, and thumbs. */
-/* Arg chunks are in the middle with the passthrough modifiers as */
-/* needed. Sama Sama apres cette fois. */
-/********************************************************************/
-
-#define Base_3x6_3( \
- K01, K02, K03, K04, K05, \
- K06, K07, K08, K09, K0A, \
- K11, K12, K13, K14, K15, \
- K16, K17, K18, K19, K1A, \
- K21, K22, K23, K24, K25, \
- K26, K27, K28, K29, K2A) \
- LAYOUT_VARG( \
- MOD_CORE_3x5(K01, K02, K03, K04, K05, \
- K06, K07, K08, K09, K0A, \
- K11, K12, K13, K14, K15, \
- K16, K17, K18, K19, K1A, \
- K21, K22, K23, K24, K25, \
- K26, K27, K28, K29, K2A), \
- ___6_ERGO_THUMBS___ \
- )
-
-#define Base_3x6_3t6( \
- K01, K02, K03, K04, K05, K06, \
- K07, K08, K09, K0A, K0B, K0C, \
- K11, K12, K13, K14, K15, K16, \
- K17, K18, K19, K1A, K1B, K1C, \
- K21, K22, K23, K24, K25, K26, \
- K27, K28, K29, K2A, K2B, K2C) \
- LAYOUT_VARG( \
- MOD_CORE_3x6( \
- K01, K02, K03, K04, K05, K06, \
- K07, K08, K09, K0A, K0B, K0C, \
- K11, K12, K13, K14, K15, K16, \
- K17, K18, K19, K1A, K1B, K1C, \
- K21, K22, K23, K24, K25, K26, \
- K27, K28, K29, K2A, K2B, K2C), \
- ___6_ERGO_THUMBS___ \
- )
-
- // All we really need is to add the see through thumbs to the end.
-#define Transient_3x6_3( \
- K01, K02, K03, K04, K05, \
- K07, K08, K09, K0A, K0B, \
- K11, K12, K13, K14, K15, \
- K17, K18, K19, K1A, K1B, \
- K21, K22, K23, K24, K25, \
- K27, K28, K29, K2A, K2B \
- ) \
- LAYOUT_VARG( \
- ___, K01, K02, K03, K04, K05, \
- K07, K08, K09, K0A, K0B, ___, \
- ___, K11, K12, K13, K14, K15, \
- K17, K18, K19, K1A, K1B, ___, \
- ___, K21, K22, K23, K24, K25, \
- K27, K28, K29, K2A, K2B, ___, \
- ___6_ERGO_THUMBS___ \
- )
-
-//___6_ERGO_THUMBS___
-
-/********************************************************************/
-/* Kinesis*/
-/********************************************************************/
-// A 4x6 on each side, with a 4 column fifth row, and 6 thumbs on
-// each side. - 4x6_4_6.
-// Then a giant row up top, 9 keys on each side, for function keys.
-#define Base_4x6_4_6( \
- K01, K02, K03, K04, K05, \
- K06, K07, K08, K09, K0A, \
- K11, K12, K13, K14, K15, \
- K16, K17, K18, K19, K1A, \
- K21, K22, K23, K24, K25, \
- K26, K27, K28, K29, K2A, \
- K31, K32, K33, K34, K35, \
- K36, K37, K38, K39, K3A \
- ) \
- LAYOUT_PVARG( \
- ___KINTFUNC_L___, ___KINTFUNC_R___, \
- MOD_CORE_4x5(K01, K02, K03, K04, K05, \
- K06, K07, K08, K09, K0A, \
- K11, K12, K13, K14, K15, \
- K16, K17, K18, K19, K1A, \
- K21, K22, K23, K24, K25, \
- K26, K27, K28, K29, K2A, \
- K31, K32, K33, K34, K35, \
- K36, K37, K38, K39, K3A), \
- MAP_CHUNK(___4_BOTTOM_LEFT), \
- MAP_CHUNK(___4_BOTTOM_RIGHT), \
- MAP_CHUNK(___12_DOX_ALL_THUMBS) \
- )
-
-
-#define Base_4x6_4_6t6( \
- K01, K02, K03, K04, K05, K06, \
- K07, K08, K09, K0A, K0B, K0C, \
- K11, K12, K13, K14, K15, K16, \
- K17, K18, K19, K1A, K1B, K1C, \
- K21, K22, K23, K24, K25, K26, \
- K27, K28, K29, K2A, K2B, K2C, \
- K31, K32, K33, K34, K35, K36, \
- K37, K38, K39, K3A, K3B, K3C) \
- LAYOUT_PVARG( \
- MOD_CORE_4x6( \
- K01, K02, K03, K04, K05, K06, \
- K07, K08, K09, K0A, K0B, K0C, \
- K11, K12, K13, K14, K15, K16, \
- K17, K18, K19, K1A, K1B, K1C, \
- K21, K22, K23, K24, K25, K26, \
- K27, K28, K29, K2A, K2B, K2C, \
- K31, K32, K33, K34, K35, K36, \
- K37, K38, K39, K3A, K3B, K3C), \
- MAP_CHUNK(___4_BOTTOM_LEFT), \
- MAP_CHUNK(___4_BOTTOM_RIGHT), \
- MAP_CHUNK(___12_DOX_ALL_THUMBS) \
- )
-
-#define Transient_4x6_4_6( \
- K01, K02, K03, K04, K05, \
- K07, K08, K09, K0A, K0B, \
- K11, K12, K13, K14, K15, \
- K17, K18, K19, K1A, K1B, \
- K21, K22, K23, K24, K25, \
- K27, K28, K29, K2A, K2B \
- ) \
- LAYOUT_PVARG( \
- ___12___, ___6___, \
- ___12___, \
- ___, K01, K02, K03, K04, K05, \
- K07, K08, K09, K0A, K0B, ___, \
- ___, K11, K12, K13, K14, K15, \
- K17, K18, K19, K1A, K1B, ___, \
- ___, K21, K22, K23, K24, K25, \
- K27, K28, K29, K2A, K2B, ___, \
- ___4___, ___4___, \
- MAP_CHUNK(___12_DOX_ALL_THUMBS) \
- )
-
-/* ___KINTFUNC_L___, ___KINTFUNC_R___, \ */
-
-/* This keyboard is a split, 4x6 + a row of 5 and a thumb cluster of 8. */
-/* So We need Base_4x6_5_8 As a layout template to add mods, and fill */
-/* out the perimeter keys of the keyboard. Perimeter keys being the */
-/* number row, outside pinky keys, the 5th row, and thumbs. */
-
-/********************************************************************/
-/* Dactyl with 8 thumb keys*/
-/********************************************************************/
-// Basically an ergodox ez without the 3 pairs of middle keys.
-// electrically 7 columns in the 5th row. 6 in the rest.
-// Left, right, bottom, and thumbs all stay the same.
-
-#define Base_4x6_5_8( \
- K01, K02, K03, K04, K05, \
- K06, K07, K08, K09, K0A, \
- K11, K12, K13, K14, K15, \
- K16, K17, K18, K19, K1A, \
- K21, K22, K23, K24, K25, \
- K26, K27, K28, K29, K2A, \
- K31, K32, K33, K34, K35, \
- K36, K37, K38, K39, K3A \
- ) \
- LAYOUT_PVARG( \
- MOD_CORE_4x5(K01, K02, K03, K04, K05, \
- K06, K07, K08, K09, K0A, \
- K11, K12, K13, K14, K15, \
- K16, K17, K18, K19, K1A, \
- K21, K22, K23, K24, K25, \
- K26, K27, K28, K29, K2A, \
- K31, K32, K33, K34, K35, \
- K36, K37, K38, K39, K3A \
- ), \
- MAP_CHUNK(___5_BOTTOM_LEFT), MAP_CHUNK(___5_BOTTOM_RIGHT), \
- MAP_CHUNK(___16_ALL_THUMBSa) \
- )
-
-#define Base_4x6_5_8t6( \
- K01, K02, K03, K04, K05, K06, \
- K07, K08, K09, K0A, K0B, K0C, \
- K11, K12, K13, K14, K15, K16, \
- K17, K18, K19, K1A, K1B, K1C, \
- K21, K22, K23, K24, K25, K26, \
- K27, K28, K29, K2A, K2B, K2C, \
- K31, K32, K33, K34, K35, K36, \
- K37, K38, K39, K3A, K3B, K3C) \
- LAYOUT_PVARG( \
- MOD_CORE_4x6( \
- K01, K02, K03, K04, K05, K06, \
- K07, K08, K09, K0A, K0B, K0C, \
- K11, K12, K13, K14, K15, K16, \
- K17, K18, K19, K1A, K1B, K1C, \
- K21, K22, K23, K24, K25, K26, \
- K27, K28, K29, K2A, K2B, K2C, \
- K31, K32, K33, K34, K35, K36, \
- K37, K38, K39, K3A, K3B, K3C), \
- MAP_CHUNK(___5_BOTTOM_LEFT), MAP_CHUNK(___5_BOTTOM_RIGHT), \
- MAP_CHUNK(___16_ALL_THUMBSa) \
- )
-
-
-// so far no need for mods on the transient layers.
-// switching to 3x5 transients. 10 column defines.
-// I like 3x10 maps even on big keyboards.
-# define Transient_4x6_5_8( \
- K01, K02, K03, K04, K05, \
- K06, K07, K08, K09, K0A, \
- K11, K12, K13, K14, K15, \
- K16, K17, K18, K19, K1A, \
- K21, K22, K23, K24, K25, \
- K26, K27, K28, K29, K2A \
- ) \
- LAYOUT_PVARG( \
- ___6___, ___6___, \
- ___, K01, K02, K03, K04, K05, \
- K06, K07, K08, K09, K0A, ___, \
- ___, K11, K12, K13, K14, K15, \
- K16, K17, K18, K19, K1A, ___, \
- ___, K21, K22, K23, K24, K25, \
- K26, K27, K28, K29, K2A, ___, \
- ___5___, ___5___, \
- MAP_CHUNK(___16_ALL_THUMBSa) \
- )
-
-/********************************************************************/
-/* Ergodox EZ */
-/********************************************************************/
-// This one is is set up to pass in the number row.
-// Beakl and bepo both change the number row.
-// Left, middle, right, bottom, and thumbs all stay the same.
-#define Base_dox( \
- K01, K02, K03, K04, K05, \
- K06, K07, K08, K09, K0A, \
- K11, K12, K13, K14, K15, \
- K16, K17, K18, K19, K1A, \
- K21, K22, K23, K24, K25, \
- K26, K27, K28, K29, K2A, \
- K31, K32, K33, K34, K35, \
- K36, K37, K38, K39, K3A \
- ) \
- LVARG_edox( \
- MOD_ROW(ROW0L)(K01, K02, K03, K04, K05), \
- MAP_CHUNK(___2_MIDDLE_1), \
- MOD_ROW(ROW0R)(K06, K07, K08, K09, K0A), \
- \
- MOD_ROW(ROW1L)(K11, K12, K13, K14, K15), \
- MAP_CHUNK(___2_MIDDLE_2), \
- MOD_ROW(ROW1R)(K16, K17, K18, K19, K1A), \
- \
- MOD_ROW(ROW2L)(K21, K22, K23, K24, K25), \
- MOD_ROW(ROW2R)(K26, K27, K28, K29, K2A), \
- \
- MOD_ROW(ROW3L)(K31, K32, K33, K34, K35), \
- MAP_CHUNK(___2_MIDDLE_3), \
- MOD_ROW(ROW3R)(K36, K37, K38, K39, K3A), \
- MAP_CHUNK(___5_BOTTOM_LEFT), MAP_CHUNK(___5_BOTTOM_RIGHT), \
- MAP_CHUNK(___12_DOX_ALL_THUMBS) \
- )
-
-#define Base_doxt6( \
- K01, K02, K03, K04, K05, K06, \
- K07, K08, K09, K0A, K0B, K0C, \
- K11, K12, K13, K14, K15, K16, \
- K17, K18, K19, K1A, K1B, K1C, \
- K21, K22, K23, K24, K25, K26, \
- K27, K28, K29, K2A, K2B, K2C, \
- K31, K32, K33, K34, K35, K36, \
- K37, K38, K39, K3A, K3B, K3C) \
- LVARG_edox(MOD_ROW(ROW0L)(K01, K02, K03, K04, K05, K06), \
- MAP_CHUNK(___2_MIDDLE_1), \
- MOD_ROW(ROW0R)(K07, K08, K09, K0A, K0B, K0C), \
- MOD_ROW(ROW1L)(K11, K12, K13, K14, K15, K16), \
- MAP_CHUNK(___2_MIDDLE_2), \
- MOD_ROW(ROW1R)(K17, K18, K19, K1A, K1B, K1C), \
- MOD_ROW(ROW2L)(K21, K22, K23, K24, K25, K26), \
- MOD_ROW(ROW2R)(K27, K28, K29, K2A, K2B, K2C), \
- MOD_ROW(ROW3L)(K31, K32, K33, K34, K35, K36), \
- MAP_CHUNK(___2_MIDDLE_3), \
- MOD_ROW(ROW3R)(K37, K38, K39, K3A, K3B, K3C), \
- MAP_CHUNK(___5_BOTTOM_LEFT), \
- MAP_CHUNK(___5_BOTTOM_RIGHT), \
- MAP_CHUNK(___12_DOX_ALL_THUMBS))
-
-#define Transient_dox( \
- K01, K02, K03, K04, K05, \
- K07, K08, K09, K0A, K0B, \
- K11, K12, K13, K14, K15, \
- K17, K18, K19, K1A, K1B, \
- K21, K22, K23, K24, K25, \
- K27, K28, K29, K2A, K2B) \
- LVARG_edox( \
- ___14___, \
- ___, K01, K02, K03, K04, K05, \
- ___2___, \
- K07, K08, K09, K0A, K0B, ___, \
- ___, K11, K12, K13, K14, K15, \
- K17, K18, K19, K1A, K1B, ___, \
- ___, K21, K22, K23, K24, K25, \
- ___2___, \
- K27, K28, K29, K2A, K2B, ___, \
- ___5___, ___5___, \
- MAP_CHUNK(___12_DOX_ALL_THUMBS) \
- )
-
-
-/********************************************************************/
-/* Rebound 4 rows, 1x12, 3x13 */
-/********************************************************************/
-#define LVARG_rebound(...) LAYOUT_all(__VA_ARGS__)
-#define Base_rebound( \
- K01, K02, K03, K04, K05, \
- K06, K07, K08, K09, K0A, \
- K11, K12, K13, K14, K15, \
- K16, K17, K18, K19, K1A, \
- K21, K22, K23, K24, K25, \
- K26, K27, K28, K29, K2A \
- ) \
- LVARG_rebound( \
- MOD_ROW(ROW1L)(K01, K02, K03, K04, K05), \
- MOD_ROW(ROW1R)(K06, K07, K08, K09, K0A), \
- \
- MOD_ROW(ROW2L)(K11, K12, K13, K14, K15), \
- KC_CCCV, \
- MOD_ROW(ROW2R)(K16, K17, K18, K19, K1A), \
- \
- MOD_ROW(ROW3L)(K21, K22, K23, K24, K25), \
- MO_ADJUST, \
- MOD_ROW(ROW3R)(K26, K27, K28, K29, K2A), \
- MAP_CHUNK(___13_BOTTOM) \
- )
-#define Base_reboundt6( \
- K01, K02, K03, K04, K05, K06, \
- K07, K08, K09, K0A, K0B, K0C, \
- K11, K12, K13, K14, K15, K16, \
- K17, K18, K19, K1A, K1B, K1C, \
- K21, K22, K23, K24, K25, K26, \
- K27, K28, K29, K2A, K2B, K2C \
- ) \
- LVARG_rebound( \
- MOD_ROW(ROW1L)(K01, K02, K03, K04, K05, K06), \
- MOD_ROW(ROW1R)(K07, K08, K09, K0A, K0B, K0C), \
- MOD_ROW(ROW2L)(K11, K12, K13, K14, K15, K16), \
- KC_CCCV, \
- MOD_ROW(ROW2R)(K17, K18, K19, K1A, K1B, K1C), \
- MOD_ROW(ROW3L)(K21, K22, K23, K24, K25, K26), \
- MO_ADJUST, \
- MOD_ROW(ROW3R)(K27, K28, K29, K2A, K2B, K2C), \
- MAP_CHUNK(___13_BOTTOM) \
- )
-
-#define Rebound_transient( \
- K01, K02, K03, K04, K05, \
- K07, K08, K09, K0A, K0B, \
- K11, K12, K13, K14, K15, \
- K17, K18, K19, K1A, K1B, \
- K21, K22, K23, K24, K25, \
- K27, K28, K29, K2A, K2B \
- ) \
- LVARG_rebound( \
- ___, K01, K02, K03, K04, K05, \
- K07, K08, K09, K0A, K0B, ___, \
- ___, K11, K12, K13, K14, K15, \
- ___, \
- K17, K18, K19, K1A, K1B, ___, \
- ___, K21, K22, K23, K24, K25, \
- ___, \
- K27, K28, K29, K2A, K2B, ___, \
- MAP_CHUNK(___13_BOTTOM) \
- )
-
-/********************************************************************/
-/* Kyria or any other 3x5/6 with 4 keys in the middle of the last */
-/* Row. Followed by 5 thumb keys on each side. 7 thumb keys total. */
-/********************************************************************/
-#define Base_2x6_8_5( \
- K01, K02, K03, K04, K05, \
- K06, K07, K08, K09, K0A, \
- K11, K12, K13, K14, K15, \
- K16, K17, K18, K19, K1A, \
- K21, K22, K23, K24, K25, \
- K26, K27, K28, K29, K2A) \
- LAYOUT_VARG( \
- MOD_ROW(ROW1L)(K01, K02, K03, K04, K05), \
- MOD_ROW(ROW1R)(K06, K07, K08, K09, K0A), \
- \
- MOD_ROW(ROW2L)(K11, K12, K13, K14, K15), \
- MOD_ROW(ROW2R)(K16, K17, K18, K19, K1A), \
- \
- MOD_ROW(ROW3L)(K21, K22, K23, K24, K25), \
- MAP_CHUNK(___4_THUMBS), \
- MOD_ROW(ROW3R)(K26, K27, K28, K29, K2A), \
- MAP_CHUNK(___10_ERGO_THUMBS) \
- )
-
-#define Base_2x6_8_5t6( \
- K01, K02, K03, K04, K05, K06, \
- K07, K08, K09, K0A, K0B, K0C, \
- K11, K12, K13, K14, K15, K16, \
- K17, K18, K19, K1A, K1B, K1C, \
- K21, K22, K23, K24, K25, K26, \
- K27, K28, K29, K2A, K2B, K2C) \
- LAYOUT_VARG( \
- MOD_ROW(ROW1L)(K01, K02, K03, K04, K05, K06), \
- MOD_ROW(ROW1R)(K07, K08, K09, K0A, K0B, K0C), \
- MOD_ROW(ROW2L)(K11, K12, K13, K14, K15, K16), \
- MOD_ROW(ROW2R)(K17, K18, K19, K1A, K1B, K1C), \
- MOD_ROW(ROW3L)(K21, K22, K23, K24, K25, K26), \
- MAP_CHUNK(___4_THUMBS), \
- MOD_ROW(ROW3R)(K27, K28, K29, K2A, K2B, K2C), \
- MAP_CHUNK(___10_ERGO_THUMBS) \
- )
-
-// All we really need is to add the see through thumbs to the end.
-#define Transient_2x6_8_5( \
- K01, K02, K03, K04, K05, \
- K07, K08, K09, K0A, K0B, \
- K11, K12, K13, K14, K15, \
- K17, K18, K19, K1A, K1B, \
- K21, K22, K23, K24, K25, \
- K27, K28, K29, K2A, K2B \
- ) \
- LAYOUT_VARG( \
- ___, K01, K02, K03, K04, K05, \
- K07, K08, K09, K0A, K0B, ___, \
- ___, K11, K12, K13, K14, K15, \
- K17, K18, K19, K1A, K1B, ___, \
- ___, K21, K22, K23, K24, K25, \
- ___4___, \
- K27, K28, K29, K2A, K2B, ___, \
- MAP_CHUNK(___10_ERGO_THUMBS) \
- )
diff --git a/users/ericgebhart/keymap/keymap.c b/users/ericgebhart/keymap/keymap.c
deleted file mode 100644
index bee8538e26..0000000000
--- a/users/ericgebhart/keymap/keymap.c
+++ /dev/null
@@ -1,142 +0,0 @@
-/*
- Copyright 2022 Eric Gebhart <e.a.gebhart@gmail.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/>.
-*/
-
-/* This is my keymap. Enable the layers you want in config.h. */
-
-#include QMK_KEYBOARD_H
-#include "ericgebhart.h"
-#include "layouts.h"
-
-#include "keyboards.h"
-
-// set up the wrapper macros.
-#define BASE_LAYER(NAME, ...) [NAME] = BASE(__VA_ARGS__)
-#define BASE_LAYERt6(NAME, ...) [NAME] = BASEt6(__VA_ARGS__)
-#define T_LAYER(LNAME, ...) [LNAME] = TRANS(__VA_ARGS__)
-
-
-// One that takes 5 and one that takes 6 for bepo and other big maps
-// that need 3x12 instead of 3x10.
-#ifdef BASE_NUMBER_ROW
-#define B_LAYER(LNAME, NUMS, LAYOUT) BASE_LAYER(LNAME, NUMS, LAYOUT)
-#define B_LAYERt6(LNAME, NUMS, LAYOUT) BASE_LAYERt6(LNAME, NUMS, LAYOUT)
-#else
-// if there is no number row, don't give it one.
-#define B_LAYER(LNAME, NUMS, LAYOUT) BASE_LAYER(LNAME, LAYOUT)
-#define B_LAYERt6(LNAME, NUMS, LAYOUT) BASE_LAYERt6(LNAME, LAYOUT)
-#endif
-
-// Find alt local key definitions.
-// DV for dvorak/qwerty maps on bepo.
-// BK, BKW for beakl maps on en-qwerty and bepo.
-// BKW is automatic in map_beakl.h
-#define ALT_TARGET_IS NONE // NONE, DV=dvorak, BK=Beakl, BK2, BKW=Beaklwi.
-
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
- // Default lang, Base layers
-#include "map_dvorak.h"
-#include "map_maks.h"
-#include "map_qwerty.h"
-#include "map_beakl.h"
-#include "map_alt.h"
-#include "map_gap.h"
-#include "map_carpalx.h"
-#include "map_hd.h"
-#include "map_bepo.h"
-
- // create a set of layers for a second locale.
-#ifdef SECOND_LOCALE
-#undef LANG_IS
-#define LANG_IS SECOND_LOCALE
-
- // changes alt target for us, because both en-qwerty and fr-bepo
- // need a beakl alt target.
-#include "map_beakl.h"
-
- // Qwerty based layers. Need a DV alt target to get the right shifted keys.
-#undef ALT_TARGET_IS
-#define ALT_TARGET_IS DV // NONE, DV = dvorak, BK=Beakl, BKW=Beaklwi.
-
-#include "map_dvorak.h"
-#include "map_maks.h"
-#include "map_qwerty.h"
-#include "map_alt.h"
-#include "map_gap.h"
-#include "map_carpalx.h"
-#include "map_hd.h"
-
-#undef ALT_TARGET_IS
-#define ALT_TARGET_IS NONE // NONE, DV = dvorak, BK=Beakl, BKW=Beaklwi.
-
-#include "map_bepo.h"
-
-#undef LANG_IS
-#define LANG_IS DEFAULT_LANG
-#endif // bepo
-
-
-// SYMBOL LAYER
-#include "map_symbols.h"
-
-#ifdef SECOND_LOCALE
-#undef LANG_IS
-#define LANG_IS SECOND_LOCALE
-
-#include "map_symbols.h"
-
-#undef LANG_IS
-#define LANG_IS DEFAULT_LANG
-#endif
-
-
- // KEYPAD LAYER
-#include "map_keypads.h"
-
-#ifdef SECOND_LOCALE
-#undef LANG_IS
-#define LANG_IS SECOND_LOCALE
-
-#include "map_keypads.h"
-
-#undef LANG_IS
-#define LANG_IS DEFAULT_LANG
-#endif
-
-
-// TOPROWS LAYER
-#include "map_toprows.h"
-
-#include "map_accented.h"
-
-#ifdef SECOND_LOCALE
-#undef LANG_IS
-#define LANG_IS SECOND_LOCALE
-
-#include "map_toprows.h"
-
-#include "map_accented.h"
-
-#undef LANG_IS
-#define LANG_IS EN
-#endif
-
-// functional non language based layers.
-#include "map_funcs.h"
-
-};
diff --git a/users/ericgebhart/keymap/map_accented.h b/users/ericgebhart/keymap/map_accented.h
deleted file mode 100644
index 98ff8a34f1..0000000000
--- a/users/ericgebhart/keymap/map_accented.h
+++ /dev/null
@@ -1,26 +0,0 @@
-/*
- Copyright 2022 Eric Gebhart <e.a.gebhart@gmail.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/>.
-*/
-// Accented character and dead key layers.
-#ifdef ACCENTS_LAYER_ENABLE
- T_LAYER(LANG_N(_ACCENTS), ___ACCENTS___),
-#endif
-#ifdef MORTE_LAYER_ENABLE
- T_LAYER(LANG_N(_MORTE), ___MORTE___),
-#endif
-#ifdef ACCENTS_MORTE_LAYER_ENABLE
- T_LAYER(LANG_N(_ACCENTS_MORTE), ___ACCENTS_MORTE___),
-#endif
diff --git a/users/ericgebhart/keymap/map_alt.h b/users/ericgebhart/keymap/map_alt.h
deleted file mode 100644
index 5fb0a12135..0000000000
--- a/users/ericgebhart/keymap/map_alt.h
+++ /dev/null
@@ -1,69 +0,0 @@
-/*
- Copyright 2022 Eric Gebhart <e.a.gebhart@gmail.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/>.
-*/
-
-#ifdef MALTRON_LAYER_ENABLE
-#undef THUMBS_ARE
-#define THUMBS_ARE MALTRON_LTR_THUMBS_ARE
-#undef THUMB_LETTER
-#define THUMB_LETTER LANG_KC(_E)
- B_LAYER(LANG_N(_MALTRON), ___10_NUMBERS___, ___MALTRON___),
-#undef THUMBS_ARE
-#define THUMBS_ARE DEFAULT_THUMBS
-#undef THUMB_LETTER
-#endif
-
-
-
-#ifdef RSTHD_LAYER_ENABLE
-#undef THUMBS_ARE
-#define THUMBS_ARE RSTHD_LTR_THUMBS_ARE
-#undef THUMB_LETTER
-#define THUMB_LETTER LANG_KC(_E)
- B_LAYER(LANG_N(_RSTHD), ___10_NUMBERS___, ___RSTHD___),
-#undef THUMBS_ARE
-#define THUMBS_ARE DEFAULT_THUMBS
-#undef THUMB_LETTER
-#endif
-
-#ifdef EUCALYN_LAYER_ENABLE
- B_LAYER(LANG_N(_EUCALYN), ___10_NUMBERS___, ___EUCALYN___),
-#endif
-
-#ifdef HANDS_UP_LAYER_ENABLE
- B_LAYER(LANG_N(_HANDS_UP), ___10_NUMBERS___, ___HANDS_UP___),
-#endif
-#ifdef WHITE_LAYER_ENABLE
- B_LAYER(LANG_N(_WHITE), ___10_NUMBERS___, ___WHITE___),
-#endif
-#ifdef ISRT_LAYER_ENABLE
- B_LAYER(LANG_N(_ISRT), ___10_NUMBERS___, ___ISRT___),
-#endif
-#ifdef SOUL_LAYER_ENABLE
- B_LAYER(LANG_N(_SOUL), ___10_NUMBERS___, ___SOUL___),
-#endif
-#ifdef NIRO_LAYER_ENABLE
- B_LAYER(LANG_N(_NIRO), ___10_NUMBERS___, ___NIRO___),
-#endif
-#ifdef ASSET_LAYER_ENABLE
- B_LAYER(LANG_N(_ASSET), ___10_NUMBERS___, ___ASSET___),
-#endif
-#ifdef WHORF_LAYER_ENABLE
- B_LAYER(LANG_N(_WHORF), ___10_NUMBERS___, ___WHORF___),
-#endif
-#ifdef WHORF6_LAYER_ENABLE
- B_LAYER(LANG_N(_WHORF6), ___10_NUMBERS___, ___WHORF6___),
-#endif
diff --git a/users/ericgebhart/keymap/map_beakl.h b/users/ericgebhart/keymap/map_beakl.h
deleted file mode 100644
index e477790fbc..0000000000
--- a/users/ericgebhart/keymap/map_beakl.h
+++ /dev/null
@@ -1,48 +0,0 @@
-/*
- Copyright 2022 Eric Gebhart <e.a.gebhart@gmail.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/>.
-*/
-// choose your beakl,
-#undef ALT_TARGET_IS
-#define ALT_TARGET_IS BK // NONE, DV = dvorak, BK=Beakl, BKW=Beaklwi.
-
-#ifdef BEAKL15_LAYER_ENABLE
-B_LAYER(LANG_N(_BEAKL15), ___10_NUMBERS_BEAKL15___, ___BEAKL15___),
-#endif
-
-#ifdef BEAKL19_LAYER_ENABLE
- B_LAYER(LANG_N(_BEAKL19), ___10_NUMBERS_BEAKL19___, ___BEAKL19___),
-#endif
-
-#ifdef BEAKL27_LAYER_ENABLE
-#undef ALT_TARGET_IS
-#define ALT_TARGET_IS BK2 // NONE, DV = dvorak, BK=Beakl, BKW=Beaklwi.
-
- B_LAYER(LANG_N(_BEAKL27), ___10_NUMBERS_BEAKL19___, ___BEAKL27___),
-#endif
-
-#ifdef BEAKLWI_LAYER_ENABLE
-#undef ALT_TARGET_IS
-#define ALT_TARGET_IS BKW // NONE, DV = dvorak, BK=Beakl, BKW=Beaklwi.
-
-#undef THUMBS_ARE // change the default thumbs to WI.
-#define THUMBS_ARE WIa
- B_LAYER(LANG_N(_BEAKLWI), ___10_NUMBERS_BEAKL19___, ___BEAKLWI___),
-#undef THUMBS_ARE
-#define THUMBS_ARE DEFAULT_THUMBS
-#endif
-
-#undef ALT_TARGET_IS
-#define ALT_TARGET_IS NONE // NONE, DV = dvorak, BK=Beakl, BKW=Beaklwi.
diff --git a/users/ericgebhart/keymap/map_bepo.h b/users/ericgebhart/keymap/map_bepo.h
deleted file mode 100644
index 8371096053..0000000000
--- a/users/ericgebhart/keymap/map_bepo.h
+++ /dev/null
@@ -1,40 +0,0 @@
-/*
- Copyright 2022 Eric Gebhart <e.a.gebhart@gmail.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/>.
-*/
-// beginning of 3x12 base layers.
-
-#undef BASE_COLS_IN_OUT
-#define BASE_COLS_IN_OUT 6 // 5, 5_6, 6
-
-#ifdef BEPO_LAYER_ENABLE
- B_LAYERt6(LANG_N(_BEPO), ___12_SYMBOLS_BEPO___, ___BEPO_3x12___),
-#endif
-
-#ifdef OPTIMOT_LAYER_ENABLE
- B_LAYERt6(LANG_N(_OPTIMOT), ___12_SYMBOLS_BEPO___, ___OPTIMOT_3x12___),
-#endif
-
-#ifdef OPTIMOT_COMPACT_LAYER_ENABLE
- B_LAYER(LANG_N(_OPTIMOT), ___10_SYMBOLS_BEPO___, ___OPTIMOT_3x10___),
-#endif
-
-#ifdef BEAKL19bis_LAYER_ENABLE
- B_LAYERt6(LANG_N(_BEAKL19bis), ___12_SYMBOLS_BEPO___, ___BEAKL19bis_3x12___),
-#endif
-
-// end of 3x12 base layers.
-#undef BASE_COLS_IN_OUT
-#define BASE_COLS_IN_OUT 5_6 // 5, 5_6, 6
diff --git a/users/ericgebhart/keymap/map_carpalx.h b/users/ericgebhart/keymap/map_carpalx.h
deleted file mode 100644
index e36ca1caef..0000000000
--- a/users/ericgebhart/keymap/map_carpalx.h
+++ /dev/null
@@ -1,25 +0,0 @@
-/*
- Copyright 2022 Eric Gebhart <e.a.gebhart@gmail.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/>.
-*/
-#ifdef CARPALX_QFMLWY_LAYER_ENABLE
-B_LAYER(LANG_N(_CARPALX_QFMLWY), ___10_NUMBERS___, ___CARPALX_QFMLWY___),
-#endif
-#ifdef CARPALX_QGMLWB_LAYER_ENABLE
- B_LAYER(LANG_N(_CARPALX_QGMLWB), ___10_NUMBERS___, ___CARPALX_QGMLWB___),
-#endif
-#ifdef CARPALX_QGMLWY_LAYER_ENABLE
- B_LAYER(LANG_N(_CARPALX_QGMLWY), ___10_NUMBERS___, ___CARPALX_QGMLWY___),
-#endif
diff --git a/users/ericgebhart/keymap/map_dvorak.h b/users/ericgebhart/keymap/map_dvorak.h
deleted file mode 100644
index 40afe827cc..0000000000
--- a/users/ericgebhart/keymap/map_dvorak.h
+++ /dev/null
@@ -1,31 +0,0 @@
-/*
- Copyright 2022 Eric Gebhart <e.a.gebhart@gmail.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/>.
-*/
-#ifdef DVORAK_LAYER_ENABLE
-B_LAYER(LANG_N(_DVORAK), ___10_NUMBERS___, ___DVORAK___),
-#endif
-#ifdef DVORAK_RLC_IU_LAYER_ENABLE
- B_LAYER(LANG_N(_DVORAK_RLC_IU), ___10_NUMBERS___, ___DVORAK_RLC_IU___),
-#endif
-#ifdef BOO_LAYER_ENABLE
- B_LAYER(LANG_N(_BOO), ___10_NUMBERS___, ___BOO___),
-#endif
-#ifdef CAPEWELL_DVORAK_LAYER_ENABLE
- B_LAYER(LANG_N(_CAPEWELL_DVORAK), ___10_NUMBERS___, ___CAPEWELL_DVORAK___),
-#endif
-#ifdef AHEI_LAYER_ENABLE
- B_LAYER(LANG_N(_AHEI), ___10_NUMBERS___, ___AHEI___),
-#endif
diff --git a/users/ericgebhart/keymap/map_funcs.h b/users/ericgebhart/keymap/map_funcs.h
deleted file mode 100644
index 0bf20610f3..0000000000
--- a/users/ericgebhart/keymap/map_funcs.h
+++ /dev/null
@@ -1,127 +0,0 @@
-/*
- Copyright 2022 Eric Gebhart <e.a.gebhart@gmail.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/>.
-*/
-// navigation. Mouse keys, arrows, home,end, etc.
-#ifdef NAV_LAYER_ENABLE
-# ifdef MOUSEKEY_ENABLE
-# undef THUMBS_ARE
-# define THUMBS_ARE MOUSE_LAYER_THUMBS
-
-# ifdef NAV_FULL_LOCK_MODS
-T_LAYER(_NAV, ___NAVA_3x10___),
-# endif
-
-# ifdef NAV_FULL
- T_LAYER(_NAV, ___NAV_3x10___),
-# endif
-
-# ifdef NAV_NO_MOUSE
- T_LAYER(_NAV, ___NAVnm_3x10___),
- T_LAYER(_NAVm, ___NAVm_3x10___),
-# endif
-
-// give a default
-# if !defined(NAV_FULL) && \
- !defined(NAV_NO_MOUSE) && \
- !defined(NAV_FULL_LOCK_MODS) \
-
- T_LAYER(_NAV, ___NAVA_3x10___),
-# endif
-
-# ifdef MOUSE_LAYER_ENABLE
- T_LAYER(_NAVm, ___NAVm_3x10___),
-# endif
-
-# undef THUMBS_ARE
-# define THUMBS_ARE DEFAULT_THUMBS
-
-# else // no mouse enable.
- T_LAYER(_NAV, ___NAVnm_3x10___),
-# endif // mousekey end.
-#endif //nav end.
-
-#ifdef MEDIA_LAYER_ENABLE
-#undef THUMBS_ARE
-#define THUMBS_ARE MEDIA_LAYER_THUMBS
- T_LAYER(_MEDIA, ___MEDIA_3x10___),
-#undef THUMBS_ARE
-#define THUMBS_ARE DEFAULT_THUMBS
-#endif
-
-#ifdef FUN_LAYER_ENABLE
-
-#ifdef FUNCPAD_MIRYOKU_ENABLE
- T_LAYER(_FUN, ___FUN_3x10___),
-#else
- T_LAYER(_FUN, ___FUN_MIRYOKU_3x10___),
-#endif
-
-#endif
-
-// A layer for layers. to set the default, etc.
- T_LAYER(_LAYERS, ___LAYERS_3x10___),
-
-// control the RGB if there are any.
-#ifdef RGB_LAYER_ENABLE
- T_LAYER(_RGB, ___RGB_3x10___),
-#endif
-
-// control and adjust stuff.
-#ifdef ADJUST_LAYER_ENABLE
- T_LAYER(_ADJUST, ___ADJUST_3x10___),
-#endif
-
-
-// put the combo reference layers at the end.
-#ifdef COMBO_REF_LAYER_ENABLE
-#undef LANG_IS
-#define LANG_IS COMBO
-#undef EDGE_KEY_SET_IS
-#define EDGE_KEY_SET_IS REF1
-#undef THUMBS_ARE
-#define THUMBS_ARE COMBO
-#undef MODS_ARE
-#define MODS_ARE TRNS
- B_LAYER(_COMBO_REF, ___10_NUMBERS___, ___COMBO_REF___),
-#undef LANG_IS
-#define LANG_IS DEFAULT_LANG
-#undef EDGE_KEY_SET_IS
-#define EDGE_KEY_SET_IS DEFAULT_EDGE_SET
-#undef THUMBS_ARE
-#define THUMBS_ARE DEFAULT_THUMBS
-#undef MODS_ARE
-#define MODS_ARE DEFAULT_MODS
-#endif
-
-#ifdef COMBO_REF_LAYER_TWO_ENABLE
-#undef LANG_IS
-#define LANG_IS COMBO2
-#undef EDGE_KEY_SET_IS
-#define EDGE_KEY_SET_IS REF2
-#undef THUMBS_ARE
-#define THUMBS_ARE COMBO2
-#undef MODS_ARE
-#define MODS_ARE TRNS
- B_LAYER(_COMBO_REF2, ___10_NUMBERS___, ___COMBO_REF___),
-#undef LANG_IS
-#define LANG_IS DEFAULT_LANG
-#undef EDGE_KEY_SET_IS
-#define EDGE_KEY_SET_IS DEFAULT_EDGE_SET
-#undef THUMBS_ARE
-#define THUMBS_ARE DEFAULT_THUMBS
-#undef MODS_ARE
-#define MODS_ARE DEFAULT_MODS
-#endif
diff --git a/users/ericgebhart/keymap/map_gap.h b/users/ericgebhart/keymap/map_gap.h
deleted file mode 100644
index af0855c983..0000000000
--- a/users/ericgebhart/keymap/map_gap.h
+++ /dev/null
@@ -1,31 +0,0 @@
-/*
- Copyright 2022 Eric Gebhart <e.a.gebhart@gmail.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/>.
-*/
-#ifdef MTGAP_LAYER_ENABLE
-B_LAYER(LANG_N(_MTGAP), ___10_NUMBERS___, ___MTGAP___),
-#endif
-
-#ifdef CTGAP_LAYER_ENABLE
- B_LAYER(LANG_N(_CTGAP), ___10_NUMBERS___, ___CTGAP___),
-#endif
-
-#ifdef APT_LAYER_ENABLE
- B_LAYER(LANG_N(_APT), ___10_NUMBERS___, ___APT___),
-#endif
-
-#ifdef CANARY_LAYER_ENABLE
- B_LAYER(LANG_N(_CANARY), ___10_NUMBERS___, ___CANARY___),
-#endif
diff --git a/users/ericgebhart/keymap/map_hd.h b/users/ericgebhart/keymap/map_hd.h
deleted file mode 100644
index 1123e88074..0000000000
--- a/users/ericgebhart/keymap/map_hd.h
+++ /dev/null
@@ -1,117 +0,0 @@
-/*
- Copyright 2022 Eric Gebhart <e.a.gebhart@gmail.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/>.
-*/
-#undef ALT_TARGET_IS
-#define ALT_TARGET_IS HD
-// NONE, DV = dvorak, BK=Beakl, BKW=Beaklwi, HD=Hands down.
-// HD_ELAN,
-
-#ifdef HD_NEU_LAYER_ENABLE
-B_LAYERt6(LANG_N(_HD_NEU), ___12_NUMBERS___, ___HD_NEU___),
-#endif
-
-#ifdef HD_NEU_NARROW_LAYER_ENABLE
- B_LAYER(LANG_N(_HD_NEU_NARROW), ___10_NUMBERS___, ___HD_NEU_NARROW___),
-#endif
-
-#ifdef HD_REF_LAYER_ENABLE
- B_LAYER(LANG_N(_HD_REF), ___10_NUMBERS___, ___HD_REF___),
-#endif
-
-#ifdef HD_TITANIUM_LAYER_ENABLE
-#undef THUMBS_ARE
-#define THUMBS_ARE HANDS_DOWN_LTR_THUMBS_ARE
-#undef THUMB_LETTER
-#define THUMB_LETTER LANG_KC(_R)
- B_LAYER(LANG_N(_HD_TITANIUM), ___10_NUMBERS___, ___HD_TITANIUM___),
-#undef THUMBS_ARE
-#define THUMBS_ARE DEFAULT_THUMBS
-#undef THUMB_LETTER
-#endif
-
-#ifdef HD_GOLD_LAYER_ENABLE
-#undef THUMBS_ARE
-#define THUMBS_ARE HANDS_DOWN_LTR_THUMBS_ARE
-#undef THUMB_LETTER
-#define THUMB_LETTER LANG_KC(_T)
- B_LAYER(LANG_N(_HD_GOLD), ___10_NUMBERS___, ___HD_GOLD___),
-#undef THUMBS_ARE
-#define THUMBS_ARE DEFAULT_THUMBS
-#undef THUMB_LETTER
-#endif
-
-#ifdef HD_PLATINUM_LAYER_ENABLE
-#undef THUMBS_ARE
-#define THUMBS_ARE HANDS_DOWN_LTR_THUMBS_ARE
-#undef THUMB_LETTER
-#define THUMB_LETTER LANG_KC(_L)
- B_LAYER(LANG_N(_HD_PLATINUM), ___10_NUMBERS___, ___HD_PLATINUM___),
-#undef THUMBS_ARE
-#define THUMBS_ARE DEFAULT_THUMBS
-#undef THUMB_LETTER
-#endif
-
-#ifdef HD_SILVER_LAYER_ENABLE
-#undef THUMBS_ARE
-#define THUMBS_ARE HANDS_DOWN_LTR_THUMBS_ARE
-#undef THUMB_LETTER
-#define THUMB_LETTER LANG_KC(_N)
- B_LAYER(LANG_N(_HD_SILVER), ___10_NUMBERS___, ___HD_SILVER___),
-#undef THUMBS_ARE
-#define THUMBS_ARE DEFAULT_THUMBS
-#undef THUMB_LETTER
-#endif
-
-#ifdef HD_BRONZE_LAYER_ENABLE
-#undef THUMBS_ARE
-#define THUMBS_ARE HANDS_DOWN_LTR_THUMBS_ARE
-#undef THUMB_LETTER
-#define THUMB_LETTER LANG_KC(_H)
- B_LAYER(LANG_N(_HD_BRONZE), ___10_NUMBERS___, ___HD_BRONZE___),
-#undef THUMBS_ARE
-#define THUMBS_ARE DEFAULT_THUMBS
-#undef THUMB_LETTER
-#endif
-
-#ifdef HD_ELAN_LAYER_ENABLE
-#undef THUMBS_ARE
-#define THUMBS_ARE HANDS_DOWN_LTR_THUMBS_ARE
-#undef THUMB_LETTER
-#define THUMB_LETTER LANG_KC(TL_DOT)
-#undef ALT_TARGET_IS
-#define ALT_TARGET_IS HD_ELAN
- B_LAYER(LANG_N(_HD_ELAN), ___10_NUMBERS___, ___HD_ELAN___),
-#undef THUMBS_ARE
-#define THUMBS_ARE DEFAULT_THUMBS
-#undef ALT_TARGET_IS
-#define ALT_TARGET_IS NONE
-#undef THUMB_LETTER
-#endif
-
-#ifdef HD_DASH_LAYER_ENABLE
-#undef ALT_TARGET_IS
-#define ALT_TARGET_IS HD_DASH
-#undef THUMBS_ARE
-#define THUMBS_ARE HD_DASH
-#undef THUMB_LETTER
-#define THUMB_LETTER LANG_KC(_E)
- B_LAYER(LANG_N(_HD_DASH), ___10_NUMBERS___, ___HD_DASH___),
-#undef THUMBS_ARE
-#define THUMBS_ARE DEFAULT_THUMBS
-#undef ALT_TARGET_IS
-#define ALT_TARGET_IS NONE
-#undef THUMB_LETTER
-#endif
diff --git a/users/ericgebhart/keymap/map_keypads.h b/users/ericgebhart/keymap/map_keypads.h
deleted file mode 100644
index 7b76731b83..0000000000
--- a/users/ericgebhart/keymap/map_keypads.h
+++ /dev/null
@@ -1,66 +0,0 @@
-/*
- Copyright 2022 Eric Gebhart <e.a.gebhart@gmail.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/>.
-*/
-#ifdef KEYPAD_LAYER_ENABLE
-# undef THUMBS_ARE
-# define THUMBS_ARE KEYPAD_LAYER_THUMBS
-
-# ifdef KEYPAD_BEAKL
-# ifdef KEYPAD_BEAKL_WI
-T_LAYER(LANG_N(_KEYPAD), ___KP_BKL_WI_3x10___),
-# else
-# ifdef KEYPAD_MODS
- T_LAYER(LANG_N(_KEYPAD), ___KP_BKL_MODS_3x10___),
-# else
- T_LAYER(LANG_N(_KEYPAD), ___KP_BKL_FUNC_3x10___),
-# endif
-# endif
-
-# else //not beakl
-
-# ifdef KEYPAD_MIRYOKU
- T_LAYER(LANG_N(_KEYPAD), ___KP_MIRYOKU_3x10___),
-# else
-
-# ifdef KEYPAD_RIGHT
-# ifdef KEYPAD_MODS
- T_LAYER(LANG_N(_KEYPAD), ___MODS_KP_3x10___),
-# else
- T_LAYER(LANG_N(_KEYPAD), ___FP_KP_3x10___),
-# endif
-
-# else // kp Left
-# ifdef KEYPAD_MODS
- T_LAYER(LANG_N(_KEYPAD), ___KP_MODS_3x10___),
-# else
- T_LAYER(LANG_N(_KEYPAD), ___KP_FP_3x10___),
-# endif
-# endif
-# endif
-
-# endif // not beakl
-
-#undef THUMBS_ARE
-#define THUMBS_ARE DEFAULT_THUMBS
-#endif
-
-#ifdef FUNC_LAYER_ENABLE
-# ifdef FUNCPAD_MIRYOKU
- T_LAYER(_FUN, ___FP_MIRYOKU_3x10___),
-# else
- T_LAYER(_FUN, ___FUN_3x10___),
-# endif
-#endif
diff --git a/users/ericgebhart/keymap/map_maks.h b/users/ericgebhart/keymap/map_maks.h
deleted file mode 100644
index 3290b2b772..0000000000
--- a/users/ericgebhart/keymap/map_maks.h
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
- Copyright 2022 Eric Gebhart <e.a.gebhart@gmail.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/>.
-*/
-#ifdef COLEMAK_LAYER_ENABLE
-B_LAYER(LANG_N(_COLEMAK), ___10_NUMBERS___, ___COLEMAK___),
-#endif
-#ifdef COLEMAK_DH_LAYER_ENABLE
- B_LAYER(LANG_N(_COLEMAK_DH), ___10_NUMBERS___, ___COLEMAK_DH___),
-#endif
-#ifdef HALMAK_LAYER_ENABLE
- B_LAYER(LANG_N(_HALMAK), ___10_NUMBERS___, ___HALMAK___),
-#endif
-#ifdef MINIMAK_LAYER_ENABLE
- B_LAYER(LANG_N(_MINIMAK), ___10_NUMBERS___, ___MINIMAK___),
-#endif
-#ifdef MINIMAK_8_LAYER_ENABLE
- B_LAYER(LANG_N(_MINIMAK_8), ___10_NUMBERS___, ___MINIMAK___),
-#endif
-#ifdef MINIMAK_12_LAYER_ENABLE
- B_LAYER(LANG_N(_MINIMAK_12), ___10_NUMBERS___, ___MINIMAK___),
-#endif
diff --git a/users/ericgebhart/keymap/map_qwerty.h b/users/ericgebhart/keymap/map_qwerty.h
deleted file mode 100644
index db74bdeb39..0000000000
--- a/users/ericgebhart/keymap/map_qwerty.h
+++ /dev/null
@@ -1,25 +0,0 @@
-/*
- Copyright 2022 Eric Gebhart <e.a.gebhart@gmail.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/>.
-*/
-#ifdef QWERTY_LAYER_ENABLE
-B_LAYER(LANG_N(_QWERTY), ___10_NUMBERS___, ___QWERTY___),
-#endif
-#ifdef NORMAN_LAYER_ENABLE
- B_LAYER(LANG_N(_NORMAN), ___10_NUMBERS___, ___NORMAN___),
-#endif
-#ifdef WORKMAN_LAYER_ENABLE
- B_LAYER(LANG_N(_WORKMAN), ___10_NUMBERS___, ___WORKMAN___),
-#endif
diff --git a/users/ericgebhart/keymap/map_symbols.h b/users/ericgebhart/keymap/map_symbols.h
deleted file mode 100644
index 7908e95262..0000000000
--- a/users/ericgebhart/keymap/map_symbols.h
+++ /dev/null
@@ -1,56 +0,0 @@
-/*
- Copyright 2022 Eric Gebhart <e.a.gebhart@gmail.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/>.
-*/
-#ifdef SYMBOL_LAYER_ENABLE
-# undef THUMBS_ARE
-# define THUMBS_ARE SYMB_LAYER_THUMBS
-
-# ifdef SYMBOL_BEAKL_C
-T_LAYER(LANG_N(_SYMB), ___SYMB_BEAKLC_3x10___),
-# else
-
-# ifdef SYMBOL_BEAKL_EXT_VI
- T_LAYER(LANG_N(_SYMB), ___SYMB_BEAKLB_3x10___),
-# else
-
-# ifdef SYMBOL_BEAKL_EXT
- T_LAYER(LANG_N(_SYMB ), ___SYMB_BEAKLA_3x10___),
-# else
-
-# ifdef SYMBOL_BEAKL_WI
- T_LAYER(LANG_N(_SYMB), ___SYMB_BEAKLWI_3x10___),
-# else
-
-# ifdef SYMBOL_MIRYOKU
- T_LAYER(LANG_N(_SYMB), ___SYMB_MIRYOKU_3x10___),
-# else
-
-# ifdef SYMBOL_NEO
- T_LAYER(LANG_N(_SYMB), ___SYMB_NEO_3x10___),
-# else
-
-// basic beakl, the default if nothing chosen.
- T_LAYER(LANG_N(_SYMB), ___SYMB_BEAKL_3x10___),
-
-# endif //neo
-# endif //miryoku
-# endif //beakl wi
-# endif //beakl ext
-# endif //beakl ext vi
-# endif //beaklc
-# undef THUMBS_ARE
-# define THUMBS_ARE DEFAULT_THUMBS
-#endif
diff --git a/users/ericgebhart/keymap/map_toprows.h b/users/ericgebhart/keymap/map_toprows.h
deleted file mode 100644
index 893541e8a0..0000000000
--- a/users/ericgebhart/keymap/map_toprows.h
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- Copyright 2022 Eric Gebhart <e.a.gebhart@gmail.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/>.
-*/
-// Top Rows commonly called Raise
-#ifdef TOPROWS_LAYER_ENABLE
-
-# undef THUMBS_ARE
-# define THUMBS_ARE TOPROWS_LAYER_THUMBS
-
-# ifdef TOPROWS_BKL_15_NUMS
-T_LAYER(LANG_N(_TOPROWS), ___TOPROWS_3x10___),
-# endif
-
-# ifdef TOPROWS_BKL_19_NUMS
- T_LAYER(LANG_N(_TOPROWS), ___TOPROWS_BKL19_3x10___),
-# endif
-
-# ifdef TOPROWS_MOD
- T_LAYER(LANG_N(_TOPROWS), ___TOPROWS_MOD_3x10___),
-# endif
-
-// Not beakl numbers. Give a basic en-qwerty toprows layer.
-#if !defined(TOPROWS_BKL_15_NUMS) && \
- !defined(TOPROWS_BKL_19_NUMS) && \
- !defined(TOPROWS_MOD)
-
- T_LAYER(LANG_N(_TOPROWS), ___RAISE_3x10___),
-#endif
-
-# undef THUMBS_ARE
-# define THUMBS_ARE DEFAULT_THUMBS
-#endif // toprows.
diff --git a/users/ericgebhart/lang/lang.h b/users/ericgebhart/lang/lang.h
deleted file mode 100644
index 32172a935e..0000000000
--- a/users/ericgebhart/lang/lang.h
+++ /dev/null
@@ -1,106 +0,0 @@
-#pragma once
-/*
- Copyright 2018-2022 Eric Gebhart <e.a.gebhart@gmail.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/>.
-*/
-// Language macros to change the names of things to
-// match the value of LANG_IS, and EDGE_COLS.
-// it would be nice to have consistency, but there isn't.
-// Keys need a prefix, layer chunks need a different suffix,
-// defines that are are opposite, of keys.
-//
-// In order to change layer and other names to match lang.
-// foo --> foo_bp or foo.
-
-// A new language just needs entries to match so
-// that it will create the proper names when LANG_IS
-// set to the appropriate values.
-// sonly the pfx and sfx functions need additions for
-// another language.
-// The rest is making sure there are keymap chunks
-// defined as needed.
-#define COMMA ,
-
-#define CONCATENATE(a, ...) a ## __VA_ARGS__
-#define CAT(a, ...) CONCATENATE(a, __VA_ARGS__)
-
-// We need another one with a different name.
-// The macros are painted blue otherwise.
-// Cat gets used at a low level, around keys, or layers basically.
-// Cat 2 is used for thumb cluster choices, any of which can contain
-// a number of CATS down at the bottom. -- nested macros of the same
-// name get painted blue. So here we are. :-). look in edge_keys.h
-// for THUMBS
-#define CONCATENATE2(a, ...) a ## __VA_ARGS__
-#define CAT2(a, ...) CONCATENATE2(a, __VA_ARGS__)
-
-#define CONCATENATE3(a, ...) a ## __VA_ARGS__
-#define CAT3(a, ...) CONCATENATE3(a, __VA_ARGS__)
-
-
-#define EMPTY()
-#define DEFER(id) id EMPTY()
-#define OBSTRUCT(...) __VA_ARGS__ DEFER(EMPTY)()
-#define EXPAND(...) __VA_ARGS__
-
-// Give the right keycode prefix by LANG_IS
-#define LANG_PFX CAT(LANG_IS, KC)
-#define COMBOKC CB
-#define COMBO2KC CB2
-#define BEPOKC BP
-#define ENKC KC
-#define US_INTKC US
-
-// Give the right symbol suffix by LANG_IS
-#define LANG_SFX CAT(CAT(LANG_IS, _), SFX)
-#define LOCALE_LAYERS_SFX _LL // for counting the base layers.
-#define COMBO_SFX _CB
-#define COMBO2_SFX _CB2
-#define BEPO_SFX _BP
-#define EN_SFX _EN
-#define US_INT_SFX _EN
-
-// Give the right map chunk suffix by LANG_IS
-#define LANG_MAPSFX CAT(CAT(LANG_IS, _), MAPSFX)
-#define COMBO_MAPSFX _CB___
-#define COMBO2_MAPSFX _CB2___
-#define BEPO_MAPSFX _BP___
-#define EN_MAPSFX _EN___
-#define US_INT_MAPSFX _EN___
-
-// These use the mapping above to get their job done.
-
-// In order to create keycode names to match lang.
-// A --> BP_A or KC_A,US_A
-#define LANG_KC(NAME) CAT(LANG_PFX, NAME)
-
-// _SYMB -> _SYMB_EN
-// _SYMB -> _SYMB_BP
-#define LANG_N(NAME) CAT(NAME, LANG_SFX)
-
-// In order to map chunk names to match lang.
-// MAP_CHUNK(___15_BOTTOM) --> ___15_BOTTOM_EN___ or ___15_BOTTOM_BP___
-#define MAP_CHUNK(NAME) CAT3(NAME, LANG_MAPSFX)
-
-
-// for the oled layer map switch
-#ifdef SECOND_LOCALE
-#define LCASE(NAME) \
- case CAT2(NAME, _EN): \
- case CAT2(NAME, _BP):
-#else
-#define LCASE(NAME) \
- case CAT2(NAME, _EN):
-#endif
diff --git a/users/ericgebhart/lang/lang_map.h b/users/ericgebhart/lang/lang_map.h
deleted file mode 100644
index 16226f64fd..0000000000
--- a/users/ericgebhart/lang/lang_map.h
+++ /dev/null
@@ -1,78 +0,0 @@
-#pragma once
-/*
- Copyright 2018-2022 Eric Gebhart <e.a.gebhart@gmail.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/>.
-*/
-#define CONCATENATEKC(a, ...) a ## __VA_ARGS__
-#define CATKC(a, ...) CONCATENATEKC(a, __VA_ARGS__)
-#define LKC(NAME) CATKC(LANG_PFX, NAME)
-
-// NONE, DV = dvorak, BK=Beakl, BK2=Beakl27, BKW=Beaklwi.
-// Give the right keycode prefix by Alt target _IS
-#define ALT_TARGET_IS NONE
-#define TARGET_PFX CATKC(ALT_TARGET_IS, KC)
-#define NONEKC
-#define DVKC _DV
-#define BKKC _BK
-#define BKWKC _BKW
-#define BK2KC _BK2
-#define HDKC _HD
-#define HD_ELANKC _HD_E
-#define HD_DASHKC _HD_D
-
-#define CONCATENATETKC(a, ...) a ## __VA_ARGS__
-#define CATTKC(a, ...) CONCATENATETKC(a, __VA_ARGS__)
-
-// depending on the value of ALT_TARGET_IS and LANG_IS.
-// TL_COMM -> TLKC(_COMM)
-// TLKC(_COMM) -> _BK_COMM, _DV_COMM, _BK2_COMM, _BK_COMM, _HD_COMM...
-#define TLKC(NAME) CATTKC(TARGET_PFX, NAME)
-
-#define LANG_ROW(K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A) \
- LKC(K01), LKC(K02), LKC(K03), LKC(K04), LKC(K05), \
- LKC(K06), LKC(K07), LKC(K08), LKC(K09), LKC(K0A) \
-
-#define LANG_ROW12(K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C) \
- LKC(K01), LKC(K02), LKC(K03), LKC(K04), LKC(K05), LKC(K06), \
- LKC(K07), LKC(K08), LKC(K09), LKC(K0A), LKC(K0B), LKC(K0C) \
-
-// takes a 3x10
-#define LANG_MAP(K01, K02, K03, K04, K05, \
- K06, K07, K08, K09, K0A, \
- K11, K12, K13, K14, K15, \
- K16, K17, K18, K19, K1A, \
- K21, K22, K23, K24, K25, \
- K26, K27, K28, K29, K2A) \
- LKC(K01), LKC(K02), LKC(K03), LKC(K04), LKC(K05), \
- LKC(K06), LKC(K07), LKC(K08), LKC(K09), LKC(K0A), \
- LKC(K11), LKC(K12), LKC(K13), LKC(K14), LKC(K15), \
- LKC(K16), LKC(K17), LKC(K18), LKC(K19), LKC(K1A), \
- LKC(K21), LKC(K22), LKC(K23), LKC(K24), LKC(K25), \
- LKC(K26), LKC(K27), LKC(K28), LKC(K29), LKC(K2A)
-
-
-// takes a 3x12
-#define LANG_MAP6(K01, K02, K03, K04, K05, K06, \
- K07, K08, K09, K0A, K0B, K0C, \
- K11, K12, K13, K14, K15, K16, \
- K17, K18, K19, K1A, K1B, K1C, \
- K21, K22, K23, K24, K25, K26, \
- K27, K28, K29, K2A, K2B, K2C) \
- LKC(K01), LKC(K02), LKC(K03), LKC(K04), LKC(K05), LKC(K06), \
- LKC(K07), LKC(K08), LKC(K09), LKC(K0A), LKC(K0B), LKC(K0C), \
- LKC(K11), LKC(K12), LKC(K13), LKC(K14), LKC(K15), LKC(K16), \
- LKC(K18), LKC(K18), LKC(K19), LKC(K1A), LKC(K1B), LKC(K1C), \
- LKC(K21), LKC(K22), LKC(K23), LKC(K24), LKC(K25), LKC(K26), \
- LKC(K27), LKC(K28), LKC(K29), LKC(K2A), LKC(K2B), LKC(K2C)
diff --git a/users/ericgebhart/lang/locale_layers.h b/users/ericgebhart/lang/locale_layers.h
deleted file mode 100644
index 103c1c4ed9..0000000000
--- a/users/ericgebhart/lang/locale_layers.h
+++ /dev/null
@@ -1,27 +0,0 @@
-#pragma once
-/*
- Copyright 2018-2022 Eric Gebhart <e.a.gebhart@gmail.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/>.
-*/
-#define LOCALE_DEFAULT CAT(LOCALE_, DEFAULT_LANG)
-#define LOCALE_TWO CAT(LOCALE_, SECOND_LOCALE)
-
-enum locales {
- LOCALE_DEFAULT = 0,
-#ifdef SECOND_LOCALE
- LOCALE_TWO,
-#endif
- LOCALES_END,
-};
diff --git a/users/ericgebhart/lang/locales.c b/users/ericgebhart/lang/locales.c
deleted file mode 100644
index 560dec13b7..0000000000
--- a/users/ericgebhart/lang/locales.c
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
- Copyright 2018-2022 Eric Gebhart <e.a.gebhart@gmail.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 "ericgebhart.h"
-#include "locales.h"
-
-bool process_locales(uint16_t keycode, keyrecord_t *record) {
-
- switch (keycode) {
- case KC_SET_BASE:
- // set the current default base to eeprom.
- if (record->event.pressed) {
- set_single_persistent_default_layer(get_highest_layer(default_layer_state));
- }
- break;
-
- // choose a different set of default layers based on locales.
- case KC_NEXT_LOCALE:
- // choose another locale and set the default base to the first layer.
- if (!record->event.pressed) {
- if (current_locale + 1 < LOCALES_END){
- current_locale++;
- }else{
- current_locale = 0;
- }
- default_layer_set(1UL << LOCALE_LAYER_RANGE[0]);
- }
- return false;
- break;
-
- // choose a different base layer based on locales.
- // simply iterates over the list and sets the default layer.
- case KC_NEXT_BASE_LAYER:
- if (!record->event.pressed) {
- uint8_t current = get_highest_layer(default_layer_state);
- if (current < LOCALE_LAYER_RANGE[1]){
- current++;
- }else{
- current = LOCALE_LAYER_RANGE[0];
- }
- default_layer_set(1UL << current);
- }
- return false;
- break;
- }
- return true;
-}
diff --git a/users/ericgebhart/lang/locales.h b/users/ericgebhart/lang/locales.h
deleted file mode 100644
index e38f5aeb72..0000000000
--- a/users/ericgebhart/lang/locales.h
+++ /dev/null
@@ -1,42 +0,0 @@
-#pragma once
-/*
- Copyright 2022 Eric Gebhart <e.a.gebhart@gmail.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 "ericgebhart.h"
-
-// Stuff we need for locale and layer switching
-// there can be more but we need to know where they start and end.
-// remember there's limitations on layers.
-// Our locales. so it's easy to switch between them.
-
-
-const uint16_t base_layer_count = BASE_NAME_COUNT - 1;
-
-const uint16_t locale_layers[][2] = {
- [LOCALE_DEFAULT] = {0, base_layer_count},
-#ifdef SECOND_LOCALE
- [LOCALE_TWO] = {BASE_NAME_COUNT, BASE_NAME_COUNT + base_layer_count},
-#endif
-};
-
-uint32_t current_locale = LOCALE_DEFAULT;
-#define LOCALE_LAYER_RANGE locale_layers[current_locale]
-
-bool process_locales(uint16_t keycode, keyrecord_t *record);
-
-#define PROCESS_LOCALES \
- if (!process_locales(keycode, record)) { return false; }
diff --git a/users/ericgebhart/layer_names/base_names.h b/users/ericgebhart/layer_names/base_names.h
deleted file mode 100644
index 1fef1efed0..0000000000
--- a/users/ericgebhart/layer_names/base_names.h
+++ /dev/null
@@ -1,173 +0,0 @@
-/*
- Copyright 2018-2022 Eric Gebhart <e.a.gebhart@gmail.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/>.
-*/
-#ifdef DVORAK_LAYER_ENABLE
- LANG_N(_DVORAK),
-#endif
-#ifdef DVORAK_RLC_IU_LAYER_ENABLE
- LANG_N(_DVORAK_RLC_IU_),
-#endif
-#ifdef BOO_LAYER_ENABLE
- LANG_N(_BOO),
-#endif
-#ifdef CAPEWELL_DVORAK_LAYER_ENABLE
- LANG_N(_CAPEWELL_DVORAK),
-#endif
-#ifdef AHEI_LAYER_ENABLE
- LANG_N(_AHEI),
-#endif
-
-
-#ifdef QWERTY_LAYER_ENABLE
- LANG_N(_QWERTY),
-#endif
-#ifdef WORKMAN_LAYER_ENABLE
- LANG_N(_WORKMAN),
-#endif
-#ifdef NORMAN_LAYER_ENABLE
- LANG_N(_NORMAN),
-#endif
-
-
-#ifdef COLEMAK_LAYER_ENABLE
- LANG_N(_COLEMAK),
-#endif
-#ifdef COLEMAK_DH_LAYER_ENABLE
- LANG_N(_COLEMAK_DH),
-#endif
-#ifdef HALMAK_LAYER_ENABLE
- LANG_N(_COLEMAK),
-#endif
-#ifdef MINIMAK_LAYER_ENABLE
- LANG_N(_MINIMAK),
-#endif
-#ifdef MINIMAK_8_LAYER_ENABLE
- LANG_N(_MINIMAK_8),
-#endif
-#ifdef MINIMAK_12_LAYER_ENABLE
- LANG_N(_MINIMAK_12),
-#endif
-
-
-#ifdef BEAKL15_LAYER_ENABLE
- LANG_N(_BEAKL15),
-#endif
-#ifdef BEAKL19_LAYER_ENABLE
- LANG_N(_BEAKL19),
-#endif
-#ifdef BEAKL27_LAYER_ENABLE
- LANG_N(_BEAKL27),
-#endif
-#ifdef BEAKLWI_LAYER_ENABLE
- LANG_N(_BEAKLWI),
-#endif
-
-#ifdef MALTRON_LAYER_ENABLE
- LANG_N(_MALTRON),
-#endif
-#ifdef EUCALYN_LAYER_ENABLE
- LANG_N(_EUCALYN),
-#endif
-#ifdef RSTHD_LAYER_ENABLE
- LANG_N(_RSTHD),
-#endif
-#ifdef HANDS_UP_LAYER_ENABLE
- LANG_N(_HANDS_UP),
-#endif
-#ifdef WHITE_LAYER_ENABLE
- LANG_N(_WHITE),
-#endif
-#ifdef ISRT_LAYER_ENABLE
- LANG_N(_ISRT),
-#endif
-#ifdef SOUL_LAYER_ENABLE
- LANG_N(_SOUL),
-#endif
-#ifdef NIRO_LAYER_ENABLE
- LANG_N(_NIRO),
-#endif
-#ifdef ASSET_LAYER_ENABLE
- LANG_N(_ASSET),
-#endif
-#ifdef WHORF_LAYER_ENABLE
- LANG_N(_WHORF),
-#endif
-#ifdef WHORF6_LAYER_ENABLE
- LANG_N(_WHORF6),
-#endif
-
-#ifdef CARPALX_QFMLWY_LAYER_ENABLE
- LANG_N(_CARPALX_QFMLWY),
-#endif
-#ifdef CARPALX_QGMLWB_LAYER_ENABLE
- LANG_N(_CARPALX_QGMLWB),
-#endif
-#ifdef CARPALX_QGMLWY_LAYER_ENABLE
- LANG_N(_CARPALX_QGMLWY),
-#endif
-
-
-#ifdef MTGAP_LAYER_ENABLE
- LANG_N(_MTGAP),
-#endif
-#ifdef CTGAP_LAYER_ENABLE
- LANG_N(_CTGAP),
-#endif
-#ifdef APT_LAYER_ENABLE
- LANG_N(_APT),
-#endif
-#ifdef CANARY_LAYER_ENABLE
- LANG_N(_CANARY),
-#endif
-
-
-#ifdef HD_NEU_LAYER_ENABLE
- LANG_N(_HD_NEU),
-#endif
-#ifdef HD_NEU_NARROW_LAYER_ENABLE
- LANG_N(_HD_NEU_NARROW),
-#endif
-#ifdef HD_GOLD_LAYER_ENABLE
- LANG_N(_HD_GOLD),
-#endif
-#ifdef HD_PLATINUM_LAYER_ENABLE
- LANG_N(_HD_PLATINUM),
-#endif
-#ifdef HD_SILVER_LAYER_ENABLE
- LANG_N(_HD_SILVER),
-#endif
-#ifdef HD_BRONZE_LAYER_ENABLE
- LANG_N(_HD_BRONZE),
-#endif
-#ifdef HD_ELAN_LAYER_ENABLE
- LANG_N(_HD_ELAN),
-#endif
-#ifdef HD_DASH_LAYER_ENABLE
- LANG_N(_HD_DASH),
-#endif
-#ifdef HD_REF_LAYER_ENABLE
- LANG_N(_HD_REF),
-#endif
-
-#ifdef BEPO_LAYER_ENABLE
- LANG_N(_BEPO),
-#endif
-#ifdef OPTIMOT_LAYER_ENABLE
- LANG_N(_OPTIMOT),
-#endif
-#ifdef BEAKL19bis_LAYER_ENABLE
- LANG_N(_BEAKL19bis),
-#endif
diff --git a/users/ericgebhart/layer_names/func_names.h b/users/ericgebhart/layer_names/func_names.h
deleted file mode 100644
index e1b061a145..0000000000
--- a/users/ericgebhart/layer_names/func_names.h
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- Copyright 2018-2022 Eric Gebhart <e.a.gebhart@gmail.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/>.
-*/
-
-// functional layers that would be different by language
-
-#ifdef ACCENTS_LAYER_ENABLE
-LANG_N(_ACCENTS),
-#endif
-#ifdef MORTE_LAYER_ENABLE
- LANG_N(_MORTE),
-#endif
-#ifdef ACCENTS_MORTE_LAYER_ENABLE
- LANG_N(_ACCENTS_MORTE),
-#endif
-
-#ifdef SYMBOL_LAYER_ENABLE
- LANG_N(_SYMB),
-#endif
-#ifdef KEYPAD_LAYER_ENABLE
- LANG_N(_KEYPAD),
-#endif
-#ifdef TOPROWS_LAYER_ENABLE
- LANG_N(_TOPROWS),
-#endif
diff --git a/users/ericgebhart/layer_names/layer_names.h b/users/ericgebhart/layer_names/layer_names.h
deleted file mode 100644
index 69d9d50d32..0000000000
--- a/users/ericgebhart/layer_names/layer_names.h
+++ /dev/null
@@ -1,75 +0,0 @@
-/*
- Copyright 2018-2022 Eric Gebhart <e.a.gebhart@gmail.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 QMK_KEYBOARD_H
-#include "base_layers.h"
-#include "layouts.h"
-#include "layers.h"
-#if defined(OLED_CUSTOM_ENABLE)
-# include "oled_stuff.h"
-#endif
-
-#define MO_LAYERS MO(_LAYERS)
-
-#undef LANG_IS
-#define LANG_IS LOCALE_LAYERS
-
-enum base_layer_names{
-#include "base_names.h"
- BASE_NAME_COUNT
-};
-#undef LANG_IS
-#define LANG_IS DEFAULT_LANG
-
-
-// Get the enums for the layers.
-enum userspace_layers {
-
-#include "base_names.h"
-
- // get them again if we have another locale.
-#ifdef SECOND_LOCALE
-#undef LANG_IS
-#define LANG_IS SECOND_LOCALE
-
-#include "base_names.h"
-
-#undef LANG_IS
-#define LANG_IS DEFAULT_LANG
-#endif
-
- _LAYERS,
-
-#include "func_names.h"
-
- // get them again if we have another locale.
-#ifdef SECOND_LOCALE
-#undef LANG_IS
-#define LANG_IS SECOND_LOCALE
-
-#include "func_names.h"
-
-#undef LANG_IS
-#define LANG_IS DEFAULT_LANG
-#endif
-
-#include "util_names.h"
-
-};
-
-
-// find the beginning and end of each locale.
-#include "locale_layers.h"
diff --git a/users/ericgebhart/layer_names/util_names.h b/users/ericgebhart/layer_names/util_names.h
deleted file mode 100644
index 55597385fe..0000000000
--- a/users/ericgebhart/layer_names/util_names.h
+++ /dev/null
@@ -1,59 +0,0 @@
-/*
- Copyright 2018-2022 Eric Gebhart <e.a.gebhart@gmail.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/>.
-*/
-
-// transient layers which are language agnostic.
-
-
-#ifdef NAV_LAYER_ENABLE
- _NAV,
-#ifdef MOUSEKEY_ENABLE
- _NAVm,
-#endif
-#endif
-
-#ifdef MEDIA_LAYER_ENABLE
- _MEDIA,
-#endif
-
-#ifdef FUNC_LAYER_ENABLE
- _FUN,
-#endif
-
-#ifdef RGB_LAYER_ENABLE
- _RGB,
-#define TO_RGB MO(_RGB)
-#else
-#define TO_RGB ___
-#endif
-
-#ifdef ADJUST_LAYER_ENABLE
- _ADJUST,
-#define MO_ADJUST MO(_ADJUST)
-#else
-#define MO_ADJUST ___
-#endif
-
-
-#ifdef COMBO_REF_LAYER_ENABLE
- _COMBO_REF,
-// set the combo reference layer if we have one.
-#undef COMBO_REF_DEFAULT
-#define COMBO_REF_DEFAULT _COMBO_REF
-#endif
-#ifdef COMBO_REF_LAYER_TWO_ENABLE
- _COMBO_REF2,
-#endif
diff --git a/users/ericgebhart/layers/edge_keys.h b/users/ericgebhart/layers/edge_keys.h
deleted file mode 100644
index 107434750b..0000000000
--- a/users/ericgebhart/layers/edge_keys.h
+++ /dev/null
@@ -1,420 +0,0 @@
-#pragma once
-/*
- Copyright 2018 Eric Gebhart <e.a.gebhart@gmail.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/>.
-*/
-
-/******************************************************************/
-/* This is where I put my Keyboard layouts, Everything on the */
-/* edges, the functions on keys like LT() and SFT_T() */
-/* can be applied here. The physical shape of the keyboard is */
-/* also accounted for here. This makes it very simple to add a */
-/* new keyboard and reuse all of my layouts and layers */
-/* */
-/* The particular pieces we define here (as needed) are: */
-/* * Edge pinky keys, */
-/* * Middle section keys */
-/* * Bottom/5th row */
-/* * Thumbkeys */
-/* * Any functional additions to wrap the keys. ie. LT() */
-/* */
-/* With all of that in hand, we then create a LAYOUT wrapper */
-/* macro that takes a list of keys, to create a keyboard matrix */
-/* that fits the keyboard. Simple. */
-/* */
-/* The thumb keys, the bottom rows, etc. */
-/* */
-/* An attempt has been made to adapt the kinesis and ergodox */
-/* Thumb keys to the rectangular shapes of the xd75 and viterbi. */
-/* which are 15x and 14x matrices respectively. */
-/* The Corne was a perfect fit */
-/******************************************************************/
-
-/******************************************************************/
-/* * The XD75 is a 5x15 Ortholinear matrix which means it has 3 */
-/* keys inbetween the usual left and right hand keys */
-/* * The Viterbi is a split 5x14 Ortholinear with 2 middle keys. */
-/* * The Ergodox is a split 5x14 Ortholinear with 2 middle keys, */
-/* thumbkeys. It is missing middle keys on (home) row 3. */
-/* * The Corne is a split 3x12 with 6 thumb keys. It has no */
-/* extra middle keys */
-/* */
-/******************************************************************/
-
-
-/******************************************************************/
-/* In all cases these keyboards are defined in a matrix which is */
-/* a set of rows. Maybe like so, or not. */
-/* */
-/* -------------------------|------------------------ */
-/* | Left0 | Numbers L | mid|dle0 | numbers R | Right0 | */
-/* | Left1 | keys0-5 | mid|dle1 | Keys6-10 | Right1 | */
-/* | Left2 | keys11-15 | mid|dle2 | Keys16-20 | Right2 | */
-/* | Left3 | keys20-25 | mid|dle3 | Keys25-30 | Right3 | */
-/* | Row5L | Row5R | */
-/* | ThumbsL | ThumbsR | */
-/* -------------------------|------------------------ */
-
-/* Generally speaking, the keys on the right and left don't change. */
-/* Neither does the bottom row or the thumbs. Frequently the numbers */
-/* row is identical across layers. Mostly, we want our Base layers to */
-/* be predctable. */
-
-// Edge columns. N rows by 6 columns per side.
-// Outside pinky keys are 'yes'
-// Should be undef/def'd by the keyboard's keymap if no.
-//#define EDGE_COLS yes
-
-// BEPO or EN. Used in map.h
-//#define LANG_IS EN
-
-
-#define CONCATENATEE(a, ...) a ## __VA_ARGS__
-#define CATE(a, ...) CONCATENATEE(a, __VA_ARGS__)
-// EDGES
-// outside pinky keys row 0-3.
-// Qwerty and Bepo, - Applies
-// to foreign layouts on bepo. dvorak_bp, beakl_bp.
-// Use by Wrapping the root like so. LANG_N(LEFT0)
-// Add more languages by adding more definitions.
-#define EDGE_KEY(KNAME) CATE(LANG_N(KNAME), EDGE_KEY_SFX)
-#define LEFT_0 EDGE_KEY(LEFT0)
-#define LEFT_1 EDGE_KEY(LEFT1)
-#define LEFT_2 EDGE_KEY(LEFT2)
-#define LEFT_3 EDGE_KEY(LEFT3)
-#define RIGHT_0 EDGE_KEY(RIGHT0)
-#define RIGHT_1 EDGE_KEY(RIGHT1)
-#define RIGHT_2 EDGE_KEY(RIGHT2)
-#define RIGHT_3 EDGE_KEY(RIGHT3)
-
-
-#define EDGE_KEY_SFX CATE(CATE(EDGE_KEY_SET_IS, _), SFX)
-#define SML_SFX _sml
-#define NOKC_SFX _nokc
-#define NORM_SFX _norm
-#define TEST_SFX _test
-#define REF1_SFX _ref1
-#define REF2_SFX _ref2
-
-// Edge key sets
-// a mostly normalish set of edge keys.
-#define LEFT0_EN_norm KC_GRV
-#define LEFT1_EN_norm KC_GRV
-#define LEFT2_EN_norm KC_TAB
-#define LEFT3_EN_norm KC_BSLS
-
-#define RIGHT0_EN_norm KC_EQL
-#define RIGHT1_EN_norm KC_EQL
-#define RIGHT2_EN_norm KC_MINS
-#define RIGHT3_EN_norm KC_SLSH
-
-// smart lock edges mostly
-#define LEFT0_EN_sml SML_NAV
-#define LEFT1_EN_sml SML_NAV
-#define LEFT2_EN_sml KC_TAB
-#ifdef ACCENTS_MORTE_LAYER_ENABLE
-#define LEFT3_EN_sml TT(_ACCENTS_MORTE_EN)
-#else
-#define LEFT3_EN_sml ___
-#endif
-
-#define RIGHT0_EN_sml SML_KEYPAD
-#define RIGHT1_EN_sml SML_KEYPAD
-#define RIGHT2_EN_sml KC_MINS
-#define RIGHT3_EN_sml TT(_LAYERS)
-
-// empty no kc edges
-#define LEFT0_EN_nokc KC_NO
-#define LEFT1_EN_nokc KC_NO
-#define LEFT2_EN_nokc KC_NO
-#define LEFT3_EN_nokc KC_NO
-
-#define RIGHT0_EN_nokc KC_NO
-#define RIGHT1_EN_nokc KC_NO
-#define RIGHT2_EN_nokc KC_NO
-#define RIGHT3_EN_nokc KC_NO
-
-//test edge keys
-#define LEFT0_EN_test KC_NO
-#define LEFT1_EN_test KC_NO
-#define LEFT2_EN_test KC_NO
-#define LEFT3_EN_test KC_NO
-
-#define RIGHT0_EN_test KC_NO
-#define RIGHT1_EN_test KC_NO
-#define RIGHT2_EN_test KC_NO
-#define RIGHT3_EN_test KC_NO
-
-// bepo
-// mostly normal expected things
-#define LEFT0_BP_norm BP_GRV
-#define LEFT1_BP_norm BP_GRV
-#define LEFT2_BP_norm BP_TAB
-#define LEFT3_BP_norm BP_BSLS
-
-#define RIGHT0_BP_norm BP_EQL
-#define RIGHT1_BP_norm BP_EQL
-#define RIGHT2_BP_norm BP_DV_MINS
-#define RIGHT3_BP_norm BP_SLSH
-
-// smart locks mostly, tab, mins
-#define LEFT0_BP_sml SML_NAV
-#define LEFT1_BP_sml SML_NAV
-#define LEFT2_BP_sml KC_TAB
-#define LEFT3_BP_sml TT(_ACCENTS_MORTE_BP)
-
-#define RIGHT0_BP_sml SML_KEYPAD_BP
-#define RIGHT1_BP_sml SML_KEYPAD_BP
-#define RIGHT2_BP_sml BP_MINS
-#define RIGHT3_BP_sml TT(_LAYERS)
-
-// empty nokc edges
-#define LEFT0_BP_nokc KC_NO
-#define LEFT1_BP_nokc KC_NO
-#define LEFT2_BP_nokc KC_NO
-#define LEFT3_BP_nokc KC_NO
-
-#define RIGHT0_BP_nokc KC_NO
-#define RIGHT1_BP_nokc KC_NO
-#define RIGHT2_BP_nokc KC_NO
-#define RIGHT3_BP_nokc KC_NO
-
-// test edges
-#define LEFT0_BP_test KC_NO
-#define LEFT1_BP_test KC_NO
-#define LEFT2_BP_test KC_NO
-#define LEFT3_BP_test KC_NO
-
-#define RIGHT0_BP_test KC_NO
-#define RIGHT1_BP_test KC_NO
-#define RIGHT2_BP_test KC_NO
-#define RIGHT3_BP_test KC_NO
-
-
-// Edges for the combo reference layers.
-#define LEFT0_CB_ref1 L0_CB
-#define LEFT1_CB_ref1 L1_CB
-#define LEFT2_CB_ref1 L2_CB
-#define LEFT3_CB_ref1 L3_CB
-
-#define RIGHT0_CB_ref1 R0_CB
-#define RIGHT1_CB_ref1 R1_CB
-#define RIGHT2_CB_ref1 R2_CB
-#define RIGHT3_CB_ref1 R3_CB
-
-#define LEFT0_CB_ref2 L0_CB2
-#define LEFT1_CB_ref2 L1_CB2
-#define LEFT2_CB_ref2 L2_CB2
-#define LEFT3_CB_ref2 L3_CB2
-
-#define RIGHT0_CB_ref2 R0_CB2
-#define RIGHT1_CB_ref2 R1_CB2
-#define RIGHT2_CB_ref2 R2_CB2
-#define RIGHT3_CB_ref2 R3_CB2
-
-/******************************************************************/
-/* Middle Keysets for various keyboards */
-// MIDDLES
-/// Middle left and right keys.
-/******************************************************************/
-#define ___MIDDLE_LT___ OSL(_LAYERS)
-#define ___MIDDLE_L1___ LANG_KC(_CCCV)
-#define ___MIDDLE_L2___ TO(LN_SYMB)
-#define ___MIDDLE_L3___ TO(_NAV)
-
-#define ___MIDDLE_RT___ _X_
-#define ___MIDDLE_R1___ LANG_KC(_CCCV)
-#define ___MIDDLE_R2___ TO(LN_TOPROWS)
-#define ___MIDDLE_R3___ ___
-
-// 3 keys in the middle of a 15x matrix
-#define ___3_MIDDLE_T___ ___MIDDLE_LT___, LCTL(LANG_KC(_A)), ___MIDDLE_RT___
-#define ___3_MIDDLE_1___ ___MIDDLE_L1___, LCTL(LANG_KC(_X)), ___MIDDLE_R1___
-#define ___3_MIDDLE_2___ ___MIDDLE_L2___, TO_RGB, ___MIDDLE_R2___
-#define ___3_MIDDLE_3___ ___MIDDLE_L3___, TO(LN_SYMB), ___MIDDLE_R3___
-
-// 2 keys in the middle of a 14x matrix - For viterbi and ergodox.
-#define ___2_MIDDLE_T___ ___MIDDLE_LT___, ___MIDDLE_RT___
-#define ___2_MIDDLE_1___ ___MIDDLE_L1___, ___MIDDLE_R1___
-#define ___2_MIDDLE_2___ ___MIDDLE_L2___, ___MIDDLE_R2___
-#define ___2_MIDDLE_3___ ___MIDDLE_L3___, ___MIDDLE_R3___
-
-// 2 keys in the middle of a 14x matrix - For viterbi and ergodox.
-#define ___3_MIDDLE_T_EN___ ___3_MIDDLE_T___
-#define ___3_MIDDLE_1_EN___ ___3_MIDDLE_1___
-#define ___3_MIDDLE_2_EN___ ___3_MIDDLE_2___
-#define ___3_MIDDLE_3_EN___ ___3_MIDDLE_3___
-
-#define ___2_MIDDLE_T_EN___ ___2_MIDDLE_T___
-#define ___2_MIDDLE_1_EN___ ___2_MIDDLE_1___
-#define ___2_MIDDLE_2_EN___ ___2_MIDDLE_2___
-#define ___2_MIDDLE_3_EN___ ___2_MIDDLE_3___
-
-#define ___3_MIDDLE_T_BP___ ___3_MIDDLE_T___
-#define ___3_MIDDLE_1_BP___ ___3_MIDDLE_1___
-#define ___3_MIDDLE_2_BP___ ___3_MIDDLE_2___
-#define ___3_MIDDLE_3_BP___ ___3_MIDDLE_3___
-
-#define ___2_MIDDLE_T_BP___ ___2_MIDDLE_T___
-#define ___2_MIDDLE_1_BP___ ___2_MIDDLE_1___
-#define ___2_MIDDLE_2_BP___ ___2_MIDDLE_2___
-#define ___2_MIDDLE_3_BP___ ___2_MIDDLE_3___
-
-#define ___2_MIDDLE_T_CB___ CB_0M1, CB_0M2
-#define ___2_MIDDLE_1_CB___ CB_1M1, CB_1M2
-#define ___2_MIDDLE_2_CB___ CB_2M1, CB_2M2
-#define ___2_MIDDLE_3_CB___ CB_3M1, CB_3M2
-#define ___2_MIDDLE_4_CB___ CB_4M1, CB_4M2
-
-#define ___3_MIDDLE_T_CB___ CB_0M1, CB_0M2, CB_0M3
-#define ___3_MIDDLE_1_CB___ CB_1M1, CB_1M2, CB_1M3
-#define ___3_MIDDLE_2_CB___ CB_2M1, CB_2M2, CB_2M3
-#define ___3_MIDDLE_3_CB___ CB_3M1, CB_3M2, CB_3M3
-#define ___3_MIDDLE_4_CB___ CB_4M1, CB_4M2, CB_4M3
-
-#define ___4_MIDDLE_4_CB___ CB_4M1, CB_4M2, CB_4M3, CB_4M4
-#define ___5_MIDDLE_4_CB___ CB_4M1, CB_4M2, CB_4M3, CB_4M4, CB_4M5
-
-#define ___2_MIDDLE_T_CB2___ CB2_0M1, CB2_0M2
-#define ___2_MIDDLE_1_CB2___ CB2_1M1, CB2_1M2
-#define ___2_MIDDLE_2_CB2___ CB2_2M1, CB2_2M2
-#define ___2_MIDDLE_3_CB2___ CB2_3M1, CB2_3M2
-#define ___2_MIDDLE_4_CB2___ CB2_4M1, CB2_4M2
-
-#define ___3_MIDDLE_T_CB2___ CB2_0M1, CB2_0M2, CB2_0M3
-#define ___3_MIDDLE_1_CB2___ CB2_1M1, CB2_1M2, CB2_1M3
-#define ___3_MIDDLE_2_CB2___ CB2_2M1, CB2_2M2, CB2_2M3
-#define ___3_MIDDLE_3_CB2___ CB2_3M1, CB2_3M2, CB2_3M3
-#define ___3_MIDDLE_4_CB2___ CB2_4M1, CB2_4M2, CB2_4M3
-
-#define ___4_MIDDLE_4_CB2___ CB2_4M1, CB2_4M2, CB2_4M3, CB2_4M4
-#define ___5_MIDDLE_4_CB2___ CB2_4M1, CB2_4M2, CB2_4M3, CB2_4M4, CB2_4M5
-
-#define ___4_LEFT_4_CB___ CB_4L1, CB_4L2, CB_4L3, CB_4L4
-#define ___4_RIGHT_4_CB___ CB_4R1, CB_4R2, CB_4R3, CB_4R4
-
-#define ___4_LEFT_4_CB2___ CB2_4L1, CB2_4L2, CB2_4L3, CB2_4L4
-#define ___4_RIGHT_4_CB2___ CB2_4R1, CB2_4R2, CB2_4R3, CB2_4R4
-
-#define ___5_LEFT_4_CB___ CB_4L1, CB_4L2, CB_4L3, CB_4L4, CB_4L5
-#define ___5_RIGHT_4_CB___ CB_4R1, CB_4R2, CB_4R3, CB_4R4, CB_4R5
-
-#define ___5_LEFT_4_CB2___ CB2_4L1, CB2_4L2, CB2_4L3, CB2_4L4, CB2_4L5
-#define ___5_RIGHT_4_CB2___ CB2_4R1, CB2_4R2, CB2_4R3, CB2_4R4, CB2_4R5
-
-#define ___13_BOTTOM_CB___ ___5_LEFT_4_CB___, \
- ___3_MIDDLE_4_CB___, \
- ___5_RIGHT_4_CB___
-
-#define ___12_BOTTOM_CB___ ___5_LEFT_4_CB___, \
- ___2_MIDDLE_4_CB___, \
- ___5_RIGHT_4_CB___
-
-#define ___13_BOTTOM_CB2___ ___5_LEFT_4_CB2___, \
- ___3_MIDDLE_4_CB2___, \
- ___5_RIGHT_4_CB2___
-
-#define ___12_BOTTOM_CB2___ ___5_LEFT_4_CB2___, \
- ___2_MIDDLE_4_CB2___, \
- ___5_RIGHT_4_CB2___
-
-/* BOTTOMS, sorta like THUMBS */
-/********************************************************************/
-// for xd75 or other layouts with a center column.
-// #define ___5_MIDDLE_THUMBS___ CTL_BSPC, ALT_DEL, XMONAD_ESC, ALT_ENT, CTL_SPC
-#define ___5_MIDDLE_THUMBS___ ALT_DEL, BSPC_TOPR, ESC_SYMB, ENT_NAV, SPC_TOPR
-
- // for a last, 4th thumb row. for rebound.
- // backtab, home end, ----, pgup, pgdn, tab ?
-#define ___13_BOTTOM___ \
- KC_BKTAB, HOME_END, KC_TAB, TT(_NAV), BSPC_SYMB, ESC_TOPR, \
- OSL(_LAYERS), \
- ENT_NAV, SPC_TOPR, KC_LEFT, KC_PGUP, KC_PGDN, KC_RIGHT
-
-#define ___13_BOTTOM_EN___ ___13_BOTTOM___
-#define ___13_BOTTOM_BP___ ___13_BOTTOM___
-
-#define ___12_BOTTOM___ \
- KC_BKTAB, HOME_END, KC_TAB, TT(_NAV), BSPC_SYMB, ESC_TOPR, \
- ENT_NAV, SPC_TOPR, KC_LEFT, KC_PGUP, KC_PGDN, KC_RIGHT
-
-#define ___12_BOTTOM_EN___ ___12_BOTTOM___
-#define ___12_BOTTOM_BP___ ___12_BOTTOM___
-
-// becomes the upper thumbs, the real 4th row if we throw away
-// the number row at the top.
-// this is the 4th row on the viterbi above the thumbrow if the number
-// row is not used for numbers.
-#define ___4_MIDDLE_4___ LSFT(KC_TAB), HOME_END, KC_PGDN, KC_TAB
-#define ___4_MIDDLE_4b___ TAB_BKTAB, HOME_END, KC_PGDN, KC_PGUP
-
-/********************************************************************/
-/* The bottom row and thumbs as needed. */
-/********************************************************************/
-// Only the 14 and 15 wide bottom rows have bepo versions.
-// all others are handled through macros.
-
-#define ___5_BOTTOM_LEFT___ ___X2___, KC_INS, KC_LEFT, KC_RIGHT
-#define ___5_BOTTOM_RIGHT___ KC_UP, KC_DOWN, KC_BSLS, ___X2___
-
-#define ___5_BOTTOM_LEFT_EN___ ___5_BOTTOM_LEFT___
-#define ___5_BOTTOM_RIGHT_EN___ ___5_BOTTOM_RIGHT___
-
-#define ___4_BOTTOM_LEFT___ LCTL(KC_V), KC_INS, KC_LEFT, KC_RIGHT
-#define ___4_BOTTOM_RIGHT___ KC_UP, KC_DOWN, KC_BSLS, LCTL(KC_C)
-
-#define ___4_BOTTOM_LEFT_EN___ ___4___ //___4_BOTTOM_LEFT___
-#define ___4_BOTTOM_RIGHT_EN___ ___4___ //___4_BOTTOM_RIGHT___
-
-// the bottom rows for keyboards on bepo.
-// bepo on bepo - not enough space to go around....
-#define ___5_BOTTOM_LEFT_BP___ _X_, BP_EACU, _X_, KC_LEFT, KC_RIGHT
-#define ___5_BOTTOM_RIGHT_BP___ KC_UP, KC_DOWN, BP_BSLS, BP_CCED, BP_PERC
-
-#define ___4_BOTTOM_LEFT_BP___ LCTL(BP_C), BP_EACU, KC_LEFT, KC_RIGHT
-#define ___4_BOTTOM_RIGHT_BP___ KC_UP, KC_DOWN, BP_BSLS, BP_CCED
-
-// for combo ref layers for kinesis, dactyl and kinesis.
-#define ___5_BOTTOM_LEFT_FR___ ___X3___, KC_LEFT, KC_RIGHT
-#define ___5_BOTTOM_RIGHT_FR___ KC_UP, KC_DOWN, BP_BSLS, ___X2___
-
-#define ___4_BOTTOM_LEFT_CB___ ___4_LEFT_4_CB___
-#define ___4_BOTTOM_RIGHT_CB___ ___4_RIGHT_4_CB___
-
-#define ___4_BOTTOM_LEFT_CB2___ ___4_LEFT_4_CB2___
-#define ___4_BOTTOM_RIGHT_CB2___ ___4_RIGHT_4_CB2___
-
-#define ___5_BOTTOM_LEFT_CB___ ___5_LEFT_4_CB___
-#define ___5_BOTTOM_RIGHT_CB___ ___5_RIGHT_4_CB___
-
-#define ___5_BOTTOM_LEFT_CB2___ ___5_LEFT_4_CB2___
-#define ___5_BOTTOM_RIGHT_CB2___ ___5_RIGHT_4_CB2___
-
-// basically a 5th row in a 5x matrix. but maybe a 4th if there isnt a number row.
-// need an en, because we a have a BP and we used it directly in the layout.
-#define ___15_BOTTOM_EN___ ___5_BOTTOM_LEFT___, ___5_MIDDLE_THUMBS___, ___5_BOTTOM_RIGHT___
-#define ___15_BOTTOM_FR___ ___5_BOTTOM_LEFT_FR___, ___5_MIDDLE_THUMBS___, ___5_BOTTOM_RIGHT_FR___
-#define ___15_BOTTOM_BP___ ___5_BOTTOM_LEFT_BP___, ___5_MIDDLE_THUMBS___, ___5_BOTTOM_RIGHT_BP___
-#define ___15_BOTTOM_CB___ ___5_LEFT_4_CB___, ___5_MIDDLE_4_CB___, ___5_RIGHT_4_CB___
-#define ___15_BOTTOM_CB2___ ___5_LEFT_4_CB2___, ___5_MIDDLE_4_CB2___, ___5_RIGHT_4_CB2___
-
-// need an en, because we a have a BP and we used it directly in the layout.
-#define ___14_BOTTOM_EN___ ___5_BOTTOM_LEFT___, ___4_MIDDLE_4b___, ___5_BOTTOM_RIGHT___
-#define ___14_BOTTOM_FR___ ___5_BOTTOM_LEFT_FR___, ___4_MIDDLE_4b___, ___5_BOTTOM_RIGHT_FR___
-#define ___14_BOTTOM_BP___ ___5_BOTTOM_LEFT_BP___, ___4_MIDDLE_4b___, ___5_BOTTOM_RIGHT_BP___
-#define ___14_BOTTOM_CB___ ___5_LEFT_4_CB___, ___4_MIDDLE_4_CB___, ___5_RIGHT_4_CB___
-#define ___14_BOTTOM_CB2___ ___5_LEFT_4_CB2___, ___4_MIDDLE_4_CB2___, ___5_RIGHT_4_CB2___
-
-#define ___14_THUMBS_BOTTOM___ ___X4___, ___6_ERGO_THUMBS___, ___X4___
diff --git a/users/ericgebhart/layers/keypads.h b/users/ericgebhart/layers/keypads.h
deleted file mode 100644
index ab4100594d..0000000000
--- a/users/ericgebhart/layers/keypads.h
+++ /dev/null
@@ -1,236 +0,0 @@
-/*
- Copyright 2018-2022 Eric Gebhart <e.a.gebhart@gmail.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/>.
-*/
-/**********************************************_**********************************/
-/* KEYPADS. Mostly all in Bepo and Qwerty versions */
-/* 4 row Pads: */
-/* * The BEAKL 15,19 Number pad, for the left hand. */
-/* * The BEAKL Wi hex pad, Number pad. */
-/* * Regular Number pad, for the right hand. */
-/* * 12 Function pad. */
-/* 3 row pads: */
-/* keypad */
-/* function pad - 3x4, 12 function keys. */
-/* */
-/* LAYERS: */
-/* 4 Row: */
-/* * BEAKL with a compact FuncPad on the right. */
-/* * Funcpad on the left, keypad on the right. */
-/* 3 Row: */
-/* * Funcpad on the left, keypad on the right. */
-/* * BEAKL with a compact FuncPad on the right. */
-/* */
-/********************************************************************************/
-
-// BEAKL 15 (numpad layer):
-/* +=* ^%~ */
-/* ↹523: */
-/* - 7.104 */
-/* /698, */
-
-/* BEAKL27 (numpad layer): */
-/* ↹+/\*= yxz */
-/* -523: ~FED */
-/* 7.104 {CBA} */
-/* ,698⏎ []% */
-
-// Keypads
-#define ___KEYPAD_BEAKL_L1___ ___, _PLUS, _SLSH, _ASTR, _EQL
-#define ___KEYPAD_BEAKL_L2___ _MINS, _5, _2, _3, _COLN
-#define ___KEYPAD_BEAKL_L3___ _7, _DOT, _1, _0, _4
-#define ___KEYPAD_BEAKL_L4___ _COMM, _6, _9, _8, _COMM
-
-#define ___6KEYPAD_BEAKL_L1___ ___, KEYPAD_BEAKL_L1
-#define ___6KEYPAD_BEAKL_L2___ ___, KEYPAD_BEAKL_L2
-#define ___6KEYPAD_BEAKL_L3___ KC_MINS, KEYPAD_BEAKL_L3
-#define ___6KEYPAD_BEAKL_L4___ ___, KEYPAD_BEAKL_L4
-
-// if there's room. the top row on the right.
-#define ___KEYPAD_BEAKL_R1___ ___, KC_CIRC, KC_PERC, KC_TILD, ___
-
-
-
-/// parts is parts.
-
-#define ___KP_BKL_WI_L1___ _X_, HEX_A, HEX_B, HEX_C, _X_
-#define ___KP_BKL_WI_L2___ _X_, HEX_D, HEX_E, HEX_F, _X_
-#define ___KP_BKL_WI_L3___ _X_, L_BRKT, R_BRKT, DELIM, _X_
-
-#define ___KP_BKL_WI_R1___ _SLSH, _4, _5, _9, _ASTR
-#define ___KP_BKL_WI_R2___ _DOT , _1, _2, _3, _MINS
-#define ___KP_BKL_WI_R3___ _COMM, _8, _6, _7, _PLUS
-
-#define ___KEYPAD_1___ ___, _7, _8, _9, _PSLS
-#define ___KEYPAD_2___ _DOT, _4, _5, _6, _PAST
-#define ___KEYPAD_3___ _0, _1, _2, _3, _PMNS
-
-#define ___KEYPAD_miryoku_1___ _LBRC, _7, _8, _9, _RBRC, ____5_
-#define ___KEYPAD_miryoku_2___ _SCLN, _4, _5, _6, _EQUAL, ____5_
-#define ___KEYPAD_miryoku_3___ _GRV, _1, _2, _3, _BSLS, ____5_
-
-// 4 Row keypads
-#define ___5KEYPAD_1___ _X_, ___KEYPAD_1___
-#define ___5KEYPAD_2___ _X_, ___KEYPAD_2___
-#define ___5KEYPAD_3___ _X_, ___KEYPAD_3___
-#define ___5KEYPAD_4___ _X_, _0, _DOT, _PEQL, _PPLS
-
-// Function pad. Same idea as above, but for function keys.
-
-// Funcpads are a bit weird. THey are KC values, so for
-// this to work, there are BP_ versions of the F keys.
-// I don't really use this, so maybe it'll go away in favor
-// of something more useful.
-// 4x3 and 3x4 funcpads.
-// Only 4 columns, so the fifth can be added to either end.
-#define ___4_FUNCPAD_1___ _F9, _F10, _F11, _F12
-#define ___4_FUNCPAD_2___ _F5, _F6, _F7, _F8
-#define ___4_FUNCPAD_3___ _F1, _F2, _F3, _F4
-
-#define ___FUNCPAD_miryoku_1___ KC_F12, KC_F7, KC_F8, KC_F9, KC_PRINT_SCREEN
-#define ___FUNCPAD_miryoku_2___ KC_F11, KC_F4, KC_F5, KC_F6, KC_SCROLL_LOCK
-#define ___FUNCPAD_miryoku_3___ KC_F10, KC_F1, KC_F2, KC_F3, KC_PAUSE
-
-// For the left or right side.
-#define ___5x4_FUNCPAD_T___ _TRNS, _F10, _F11, _F12, _TRNS
-#define ___5x4_FUNCPAD_1___ _TRNS, _F7, _F8, _F9, _TRNS
-#define ___5x4_FUNCPAD_2___ _TRNS, _F4, _F5, _F6, _TRNS
-#define ___5x4_FUNCPAD_3___ _TRNS, _F1, _F2, _F3, _TRNS
-
-
-/********************************************************************************/
-/* FUNCPAD and Keypad Layer chunks */
-/********************************************************************************/
-// beakl wi is a hexpad numpad.
-/* Beakle Wi, Hexpad and keypad - needs a zero somewhere.*/
-#define CARTE_KP_BKL_WI \
- carte_de_map( " ABC /459* ", \
- " DEF .123- ", \
- " {}| ,867+ ")
-
-#define ___KP_BKL_WI_3x10___ \
- CHUNK_LANG_MAP(___KP_BKL_WI_L1___, ___KP_BKL_WI_R1___, \
- ___KP_BKL_WI_L2___, ___KP_BKL_WI_R2___, \
- ___KP_BKL_WI_L3___, ___KP_BKL_WI_R3___)
-
-
-// BEAKL 15 and a f1-f12 funcpad
-#define CARTE_KP_BKL_FUNC \
- carte_de_map(" 523: F9-12", \
- " -7.104 F5-8", \
- " /798, F1-4")
-
-#define ___KP_BKL_FUNC_3x10___ \
- CHUNK_LANG_MAP(___KEYPAD_BEAKL_L2___, _TRNS, ___4_FUNCPAD_1___, \
- ___KEYPAD_BEAKL_L3___, _TRNS, ___4_FUNCPAD_2___, \
- ___KEYPAD_BEAKL_L4___, _TRNS, ___4_FUNCPAD_3___)
-
-// BEAKL 15 and mods.
-#define CARTE_KP_BKL_MODS \
- carte_de_map(" 523: SL Mods", \
- " -7.104 OS Mods", \
- " /798, Enter")
-
-
-#define ___KP_BKL_MODS_3x10___ \
- CHUNK_LANG_MAP(___KEYPAD_BEAKL_L2___, _TRNS, ___SML_MODS_R___, \
- ___KEYPAD_BEAKL_L3___, ___OS_MODS_R___, \
- ___KEYPAD_BEAKL_L4___, _TRNS, _ENT, _ENT, _ENT, _TRNS)
-
-// 4 rows, BEAKL 15 and a f1-f12 funcpad
-#define ___KP_BKL_FUNC_4x10___ \
- CHUNK_LANG_ROW(___KEYPAD_BEAKL_L1___, ___KEYPAD_BEAKL_R1___), \
- CHUNK_LANG_MAP(___KP_BKL_FUNC_3x10___)
-
-// 4 rows, funcpad, regular keypad on right.
-#define ___FP_KP_4x10___ \
- CHUNK_LANG_ROW(___5x4_FUNCPAD_T___, ___5KEYPAD_1___), \
- CHUNK_LANG_MAP(___5x4_FUNCPAD_1___, ___5KEYPAD_2___, \
- ___5x4_FUNCPAD_2___, ___5KEYPAD_3___, \
- ___5x4_FUNCPAD_3___, ___5KEYPAD_4___)
-
-#define CARTE_FP_KP \
- carte_de_map(" F9-12 789+", \
- " F5-8 .456*", \
- " F1-4 0123-")
-
-// funcpad, regular keypad on right.
-#define ___FP_KP_3x10___ \
- CHUNK_LANG_MAP(___4_FUNCPAD_1___, ___, ___5KEYPAD_1___, \
- ___4_FUNCPAD_2___, ___, ___5KEYPAD_2___, \
- ___4_FUNCPAD_3___, ___, ___5KEYPAD_3___)
-
-#define CARTE_KP_FP \
- carte_de_map(" 789+ F9-12", \
- " .456* F5-8", \
- " 0123- F1-4")
-// regular keypad on left.
-#define ___KP_FP_3x10___ \
- CHUNK_LANG_MAP(___5KEYPAD_1___, ___, ___4_FUNCPAD_1___, \
- ___5KEYPAD_2___, ___, ___4_FUNCPAD_2___, \
- ___5KEYPAD_3___, ___, ___4_FUNCPAD_3___)
-
-#define CARTE_MODS_KP \
- carte_de_map(" SMods 789+", \
- " OSMods .456*", \
- " F1-4 0123-")
-
-// funcpad, regular keypad on right.
-#define ___MODS_KP_3x10___ \
- CHUNK_LANG_MAP(___SML_MODS_L___, ___, ___5KEYPAD_1___, \
- ___OS_MODS_L___, ___5KEYPAD_2___, \
- ___5___, ___5KEYPAD_3___)
-
-#define CARTE_KP_MODS \
- carte_de_map(" 789+ SMods", \
- " .456* OSMods", \
- " 0123- ")
-
-// regular keypad on left.
-#define ___KP_MODS_3x10___ \
- CHUNK_LANG_MAP(___5KEYPAD_1___, ___, ___SML_MODS_R___, \
- ___5KEYPAD_2___, ___OS_MODS_L___, \
- ___5KEYPAD_3___, ___, ___4___)
-
-#define CARTE_FUN \
- carte_de_map(" F9-F12 SMods", \
- " F5-F8 OSMods", \
- " F1-F4 ")
-
-#define ___FUN_3x10___ \
- CHUNK_LANG_MAP(___4_FUNCPAD_1___, ___, ___, ___SML_MODS_R___, \
- ___4_FUNCPAD_2___, ___, ___OS_MODS_R___, \
- ___4_FUNCPAD_3___, ___, ___5___)
-
-#define CARTE_FUN_MIRYOKU \
- carte_de_map("F12 F7-F9 prt SMods", \
- "F11 F4-F6 scr OSMods", \
- "F10 F1-F3 pse ")
-
-#define ___FP_MIRYOKU_3x10___ \
- ___FUNCPAD_miryoku_1___, ___, ___SML_MODS_R___, \
- ___FUNCPAD_miryoku_2___, ___OS_MODS_R___, \
- ___FUNCPAD_miryoku_3___, ___5___
-
-// wants . and 0 on left thumb.
-#define CARTE_KP_MIRYOKU \
- carte_de_map(" [789]", \
- " ;456=", \
- " `123\\")
-
-#define ___KP_MIRYOKU_3x10___ \
- CHUNK_LANG_MAP(___KEYPAD_miryoku_1___, \
- ___KEYPAD_miryoku_2___, \
- ___KEYPAD_miryoku_3___)
diff --git a/users/ericgebhart/layers/layers.h b/users/ericgebhart/layers/layers.h
deleted file mode 100755
index 0f09d0cfc3..0000000000
--- a/users/ericgebhart/layers/layers.h
+++ /dev/null
@@ -1,112 +0,0 @@
-#pragma once
-/*
- Copyright 2018 Eric Gebhart <e.a.gebhart@gmail.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
-
- 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 "keycodes.h"
-/*********************************************************************/
-/* Non-Base Layer Definitions. */
-/* */
-/* Keypads, sympads, funcpads, symbols, RGB, Layers, Controls, etc. */
-/* Qwerty and Bepo versions exist as needed. */
-/* */
-/* This file defines every auxillary layer I use on every keyboard */
-/* Ergodox, keebio/viterbi, xd75, rebound, crkbd, morpho, dactyl,.. */
-/*********************************************************************/
-/********************************************************************************/
-/* The following Transient/Non-Base Layers are provided within. */
-/* Each layer is named with the size of Keymatrix it has entries for. */
-/* 3x10 are usual for these. I had 3x12's but I didn't need the edges really. */
-/* It was an attempt to accommodate Bepo which is 13 columns wide. */
-/* Even in a 3x12 Bepo is wonky. So I gave up on it. I also gave up on 4 row */
-/* layers, I really want my keys in that 3x5 space. Everything on the edges can */
-/* stay as it is. Splitting is managed in the macros as */
-/* needed. BP indicates the Bepo equivalent to the Qwerty layer when needed. */
-/********************************************************************************/
-/* */
-/* Explore below to see what they all are. */
-/* Naming gives the sizes of things, a prefix number is the length. */
-/* BP is the bepo version of things. */
-/* BKL is the beakl 15 version of a layout or chunk. */
-/* C on the end of a name means its a compact version of something. */
-/* Compact meaning for use on a 3 row layout. */
-/* */
-/* TOPROWS - numbers, symbols, functions, all on one layer. */
-/* ___TOPROWS_3x10___ */
-/* ___TOPROWS_BP_3x10___ */
-/* */
-/* KEYPADS/FUNCPADS. */
-/* ___KP_C_3x10___ */
-/* ___KP_C_BP_3x10___ */
-/* ___KP_C_BKL_FUNC_3x10___ -- BEAKL key/func pads. */
-/* ___KP_C_BKL_FUNC_BP_3x10___ */
-/* */
-/* SYMBOLS -Beakl or Beakl extended */
-/* ___SYMB_BEAKL_3x10___ */
-/* ___SYMB_BEAKL_BP_3x10___ */
-/* */
-/* Beakl extended symbol layer with additional corner symbols. */
-/* For use with non-beakl base layers. */
-/* ___SYMB_BEAKLA_3x10___ */
-/* ___SYMB_BEAKLA_BP_3x10___ */
-/* For use with vi bindings optimized */
-/* ___SYMB_BEAKLB_3x10___ */
-/* ___SYMB_BEAKLB_BP_3x10___ */
-/* */
-/* NAVIGATION */
-/* ___NAV_3x10___ */
-/* */
-/* CONTROLS */
-/* ___RGB_3x10___ */
-/* ___ADJUST_3x10___ */
- /* ___LAYERS_3x10___ */
- /********************************************************************************/
- /*********************************************************************/
- /* XXXXXX Layer chunk -- These are the final layers. */
- /* */
-/* Each section defines the necessary pieces to create a layer. */
-/* It builds them up into consistently shaped lists for the layout */
-/* wrapper. */
-/* */
-/* Each Section ends with a _Layer Chunk_. This is so the */
-/* layer can be easily given to the Layout Wrapper macros which */
-/* takes a list of keys in lengths of 2x3x5, 2x3x6, 2x4x5, or 2x4x6. */
-/* */
-/* All of my keyboard definitions use these same chunks with similar */
-/* macros. The differences between keyboards are all managed in the */
-/* macro. Here we just have nice rectangular sets of keys to */
-/* complete a layout. */
-/*********************************************************************/
-
-// these are needed so that groups of defined keys will unravel
-// into their values. The Base layers don't need them becuse the
-// keys are explicit in their passing. Here, chunks are made for
-// convenience and reuse. They don't unravel unless we wrap these
-// in var args.
-#define CHUNK_LANG_MAP(...) LANG_MAP(__VA_ARGS__)
-#define CHUNK_LANG_ROW(...) LANG_ROW(__VA_ARGS__)
-
-// 5 wide, with the two shot control.
-#define ___OS_MODS_L___ OS_LGUI, OS_LALT, OS_LCTL, OS_LSFT, TS_LCTL
-#define ___OS_MODS_R___ TS_RCTL, OS_RSFT, OS_RCTL, OS_RALT, OS_RGUI
-// 4 wide.
-#define ___SML_MODS_L___ SMLM_LGUI, SMLM_LALT, SMLM_LCTL, SMLM_LSFT
-#define ___SML_MODS_R___ SMLM_RSFT, SMLM_RCTL, SMLM_RALT, SMLM_RGUI
-
-#include "keypads.h"
-#include "nav.h"
-#include "symbols.h"
-#include "toprows.h"
-#include "utility.h"
diff --git a/users/ericgebhart/layers/nav.h b/users/ericgebhart/layers/nav.h
deleted file mode 100644
index 97243872e2..0000000000
--- a/users/ericgebhart/layers/nav.h
+++ /dev/null
@@ -1,199 +0,0 @@
-/*
- Copyright 2018-2022 Eric Gebhart <e.a.gebhart@gmail.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/>.
-*/
-/********************************************************************************/
-/* NAVIGATION - MOUSE, Scroll, Buttons, Arrows, Tab, Home, page up/down, End */
-/* Navigation layers: */
-/* 3 row Layer */
-/* 4 Row Layer with repeated and swapped VI arrows, and Scroll wheel. */
-/********************************************************************************/
-/* */
-/* Navigation layer with optional 4th Row.... */
-/* */
-/* M = Mouse */
-/* B = Button */
-/* W = Wheel */
-/* AC = Acceleration */
-/* CCCV = Tap -> Ctrl-C, hold for double tap duration -> Ctrl-V */
-/* CTCN = Tap -> Ctrl-T, hold for double tap duration -> Ctrl-N */
-/* CWCQ = Tap -> Ctrl-W, hold for double tap duration -> Ctrl-Q */
-/* HOME = TAB & PGDN */
-/* END = BKTAB & PGUP -- See combos. */
-/* */
-/* MB5 MB4 MB3 MB2 MB1 MAC0 | CTCN MB1 MB2 MB3 MB4 MB5 */
-/* TAB MLeft MDown MUp MRight MAC1 | CCCV Left Down UP Right TAB */
-/* WLeft WDown WUp WRight MAC2 | CWCQ TAB PGDN PGUP BKTAB */
-/* */
-/* Left Down Up Right CCCV | CCCV MLeft MDown MUp MRight */
-/* */
-/********************************************************************************/
-
-#ifdef MOUSEKEY_ENABLE
-#define ___MOUSE_LDUR___ KC_MS_L, KC_MS_D, KC_MS_U, KC_MS_R
-#define ___MWHEEL_LDUR___ KC_WH_L, KC_WH_D, KC_WH_U, KC_WH_R
-// really BTN 1, 2, 3, 8, 9 - according to xev.
-#define ___MOUSE_BTNS_R___ KC_BTN1, KC_BTN3, KC_BTN2, KC_BTN4, KC_BTN5
-#define ___4MOUSE_BTNS_R___ KC_BTN1, KC_BTN3, KC_BTN2, KC_BTN4
-#define ___3MOUSE_BTNS_R___ KC_BTN1, KC_BTN3, KC_BTN2
-// really BTN 9, 8, 3, 2, 1 - according to xev
-#define ___4MOUSE_BTNS_L___ KC_BTN4, KC_BTN2, KC_BTN3, KC_BTN1
-#define ___MOUSE_BTNS_L___ KC_BTN5, KC_BTN4, KC_BTN2, KC_BTN3, KC_BTN1
-#define ___MOUSE_ACCL_012___ KC_ACL0, KC_ACL1, KC_ACL2
-#define ___MACCL___ ___MOUSE_ACCL_012___
-#endif
-
-#define ___VI_ARROWS___ KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT
-#define ___HOME_PGDN_PGUP_END___ KC_HOME, KC_PGDN, KC_PGUP, KC_END
-#define ___TAB_PGDN_PGUP_BKTAB___ KC_TAB, KC_PGDN, KC_PGUP, KC_BKTAB
-// home and end are combos. tab/pgdn = home, bktab/pgup = end.
-
-#define ___REDO_CUT_COPY_PASTE_UNDO___ S_REDO, S_CUT, S_COPY, S_PASTE, S_UNDO
-
-#ifdef MOUSEKEY_ENABLE
-#define ___NAV_La_1___ ___SML_MODS_L___, KC_ACL0
-#define ___NAV_L_1___ ___4MOUSE_BTNS_L___, KC_ACL0
-#define ___NAV_L_2___ ___MOUSE_LDUR___, KC_ACL1
-#define ___NAV_L_3___ ___MWHEEL_LDUR___, KC_ACL2
-#define ___NAV_L_4___ ___VI_ARROWS___, KC_CCCV
-
-#define ___NAV_R_1___ KC_CTCN, ___4MOUSE_BTNS_R___
-#define ___NAV_R_4___ KC_CCCV, ___MOUSE_LDUR___
-
-#else
-
-#define ___NAV_La_1___ ___NAV_L_1___
-#define ___NAV_L_1___ ___OS_MODS_L___
-#define ___NAV_L_2___ ___SML_MODS_L___, ___
-#define ___NAV_L_3___ ___5___
-#define ___NAV_L_4___ ___VI_ARROWS___, KC_CCCV
-
-#define ___NAV_R_1___ KC_CTCN, ___SML_MODS_R___
-#define ___NAV_R_4___ KC_CCCV, ___4___
-
-#endif // end mousekey
-
-#define ___NAV_R_2___ KC_CCCV, ___VI_ARROWS___
-#define ___NAV_R_3___ KC_CWCQ, ___HOME_PGDN_PGUP_END___
-#define ___NAV_Ra_3___ KC_CWCQ, ___TAB_PGDN_PGUP_BKTAB___
-
-#ifdef MOUSEKEY_ENABLE
-
-#define ___6NAV_L_1___ ___MOUSE_BTNS_L___, KC_ACL0
-#define ___6NAV_L_2___ TAB_BKTAB, ___MOUSE_LDUR___, KC_ACL1
-#define ___6NAV_L_3___ ___, ___MWHEEL_LDUR___, KC_ACL2
-#define ___6NAV_L_4___ ___, ___VI_ARROWS___, KC_CCCV
-
-#define ___6NAV_R_1___ KC_CTCN, ___MOUSE_BTNS_R___
-#define ___6NAV_R_4___ KC_CCCV, ___MOUSE_LDUR___, ___
-
-#else
-
-#define ___6NAV_L_1___ ___6___
-#define ___6NAV_L_2___ TAB_BKTAB, ___SML_MODS_L___, ___
-
-#define ___6NAV_L_3___ ___, ___5___
-#define ___6NAV_L_4___ ___, ___VI_ARROWS___, KC_CCCV
-
-#define ___6NAV_R_1___ KC_CTCN, ___SML_MODS_R___
-#define ___6NAV_R_4___ KC_CCCV, ___4___, ___
-
-#endif // end mousekey
-
-#define ___6NAV_R_2___ KC_CCCV, ___VI_ARROWS___, TAB_BKTAB
-#define ___6NAV_R_3___ KC_CWCQ, ___HOME_PGDN_PGUP_END___, ___
-
-// compact. 3x10 per layer.
-#define ___10_NAV_1a___ ___NAV_La_1___, ___NAV_R_1___
-#define ___10_NAV_1___ ___NAV_L_1___, ___NAV_R_1___
-#define ___10_NAV_2___ ___NAV_L_2___, ___NAV_R_2___
-#define ___10_NAV_3___ ___NAV_L_3___, ___NAV_Ra_3___
-
-// designed without mouse, mods on left.
-#define ___NAVnm_La_1___ ___NAV_L_1___
-#define ___NAVnm_L_1___ ___SML_MODS_L___
-#define ___NAVnm_L_2___ ___OS_MODS_L___, ___
-#ifdef MOUSEKEY_ENABLE
-#define ___NAVnm_L_3___ ___2___, SML_NAVm, ___2___ // get to mouse layer if enabled.
-#else
-#define ___NAVnm_L_3___ ___5___
-#endif
-
-#define ___10_NAVnm_1___ ___SML_MODS_L___, ___, ___NAV_R_1___
-#define ___10_NAVnm_2___ ___OS_MODS_L___, ___NAV_R_2___
-#define ___10_NAVnm_3___ ___NAVnm_L_3___, ___NAV_R_3___
-
-#ifdef MOUSEKEY_ENABLE
-// Mouse layer only. mods on right.
-#define ___10_NAVm_1___ ___NAV_L_1___, ___NAV_R_1___
-#define ___10_NAVm_2___ ___NAV_L_2___, ___NAV_R_2___
-#define ___10_NAVm_3___ ___NAV_L_3___, ___NAV_R_3___
-#endif
-
-/********************************************************************************/
-/* The Navigation LAYER Chunks */
-/********************************************************************************/
-// A Navigation Layer
-#define CARTE_NAV \
- carte_de_map("54321 0 ctn 12345", \
- " ldur 1 ccv ldur", \
- " ldur 2 cwq tdubt")
-
-#define CARTE_NAVA \
- carte_de_map(" gacs 0 ctn 12345", \
- " ldur 1 ccv ldur", \
- " ldur 2 cwq tdubt")
-
-#define CARTE_NAVnm \
- carte_de_map(" gacsc2 ctn cscag ", \
- " gacs ccv ldur", \
- " __M_ cwq tdubt")
-
-// currently the same as NAVA
-#define CARTE_NAVm \
- carte_de_map(" gacs 0 ctn 12345", \
- " ldur 1 ccv ldur", \
- " ldur 2 cwq tdubt")
-
-#define CARTE_NAV_miryoku \
- carte_de_map(" rdo ccp undo", \
- " Caps ldur", \
- " Ins HDUE")
-
-#define CARTE_NAVm_miryoku \
- carte_de_map(" rdo ccp undo", \
- " ldur", \
- " ldur")
-
-
-#ifdef MOUSEKEY_ENABLE
-#define ___NAVm_3x10___ ___10_NAVm_1___, ___10_NAVm_2___, ___10_NAVm_3___
-#endif
-
-#define ___NAVnm_3x10___ ___10_NAVnm_1___, ___10_NAVnm_2___, ___10_NAVnm_3___
-#define ___NAVA_3x10___ ___10_NAV_1a___, ___10_NAV_2___, ___10_NAV_3___
-#define ___NAV_3x10___ ___10_NAV_1___, ___10_NAV_2___, ___10_NAV_3___
-#define ___NAV_3x12___ ___12_NAV_1___, ___12_NAV_2___, ___12_NAV_3___
-#define ___NAV_miryoku___ \
- ___5___, ___redo_cut_copy_paste_undo___, \
- ___5___, KC_CAPS, ___VI_ARROWS___, \
- ___5___, KC_INSERT, ___HOME_PGDN_PGUP_END___
-
-#ifdef MOUSEKEY_ENABLE
-#define ___NAVm_miryoku___ \
- ___5___, ___redo_cut_copy_paste_undo___, \
- ___5___, ___, ___MOUSE_LDUR___, \
- ___5___, ___, ___MWHEEL_LDUR___,
-#endif
diff --git a/users/ericgebhart/layers/symbols.h b/users/ericgebhart/layers/symbols.h
deleted file mode 100644
index 272bd9b850..0000000000
--- a/users/ericgebhart/layers/symbols.h
+++ /dev/null
@@ -1,225 +0,0 @@
-/*
- Copyright 2018-2022 Eric Gebhart <e.a.gebhart@gmail.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/>.
-*/
-/******************************************************************/
-/* */
-/* Symbol layers: */
-/* */
-/* The BEAKL15 Symbol layer with or without additions. */
-/* */
-/* There is the offical beakl symbol layer, an extended symbol */
-/* layer which is expanded with: !?@`'/-;. */
-/* */
-/* Placing these 8 keys in the pinky and index corners */
-/* at the edges of the, 3x3, BEAKL home Region. */
-/* */
-/* Beakl has these keys in it's base layer which isn't the case */
-/* for other layouts like dvorak, colemak, etc. */
-/* */
-/* The third layer moves /:? to more accessible places. */
-/* to make vi keybindings more accessible. */
-/* */
-/* Note that there are 2 widths. 12 and 10. The wider layer adds */
-/* - and ; to the middle row edges. */
-/* */
-/* Official: */
-/* <$> [_] */
-/* - \(")# %{=}| ; */
-/* :*+ &^~ */
-/* */
-/* not yet implemented */
-/* BEAKL27 (punctuation layer): */
-/* ↹@$#↹ ~^` */
-/* ↹<=> [_] */
-/* \(-)+ %{;}! */
-/* *:/⏎ |~& */
-/* */
-/* */
-/* BEAKL Extended symbol layer */
-/* Expanded with: !?@`'/-; */
-/* */
-/* A: */
-/* `<$>' ?[_]- */
-/* - \(")# %{=}| ; */
-/* @:*+; !&^~/ */
-/* */
-/* Optimized for Vi. */
-/* B: */
-/* */
-/* `<$>' ?[_]- */
-/* - \(")# !{:}/ ; */
-/* @=*+; %&^~| */
-/* */
-/* C: */
-/* */
-/* `<$>' ?[_-] */
-/* - \("#) !{:/} ; */
-/* @=*+; %&^~| */
-/* */
-/* */
-/* Both ; and ' could have found their dvorak positions. Analysis showed */
-/* that only caused pinky overuse. Rotating the symbols around Put better */
-/* keys on the index finger which showed a huge improvement in efficiency. */
-/* The same is true of the exclamation point. */
-/* */
-
-/* Beakl Wi */
-
-/* This Symbol layer does not improve on the above extended symbol */
-/* layers in my opinon, for my usage. */
-
-/* The original symbol was the Left side with defined/but/transparent */
-/* right. The regex layer was the opposite. I combined them into one, I am */
-/* not sure of the functionality that might be lost due to that, but they */
-/* are defined as original sans extra tap dance functions. It would be easy to */
-/* make two layers with transparent right and left. There is duplication */
-/* of | and *. */
-
-/* Symbols on the left */
-/* .*&+ */
-/* ?!/| */
-/* <>%@ */
-
-// regex on the right
-/* *[^] */
-/* ?($) */
-/* |{#} */
-
-// Altogether
-/* .*&+ *[^] */
-/* ?!/| ?($) */
-/* <>%@ |{#} */
-/******************************************************************/
-
-// Left
-#define ___SB_L1___ _OCLTGT, _DLR, _GT
-#define ___SB_L2___ _BSLS, _OCPRN, _OCDQUO, _RPRN, _HASH
-#define ___SB_L2c___ _BSLS, _OCPRN, _OCDQUO, _HASH, _RPRN
-#define ___SB_L3___ _COLN, _ASTR, _PLUS
-
-// Right
-#define ___SB_R1___ _OCBRC, _UNDS, _RBRC
-#define ___SB_R1c___ _OCBRC, _UNDS, _MINS
-#define ___SB_R2___ _PERC, _OCCBR, _EQL, _RCBR, _PIPE
-#define ___SB_R3___ _AMPR, _CIRC_ND, _TILD_ND
-
-// a and b... left and right.
-#define ___SB_L3b___ _EQL, _ASTR, _PLUS
-
-#define ___SB_R2a___ _PERC, _OCCBR, _EXLM, _RCBR, _PIPE
-#define ___SB_R2b___ _EXLM, _OCCBR, _COLN, _RCBR, _SLSH
-#define ___SB_R2c___ _EXLM, _OCCBR, _COLN, _SLSH, _RCBR
-
-// ---------------------------
-// ---------------------------
-#define CARTE_SYMB_BEAKL \
- carte_de_map(" <$> [_] ", \
- "-\\(\")# %{=}|;", \
- " :*+ &^~ ")
-
-#define ___SYMB_BEAKL_3x10___ \
- CHUNK_LANG_MAP(_TRNS, ___SB_L1___, _TRNS, _TRNS, ___SB_R1___, _TRNS, \
- ___SB_L2___, ___SB_R2___, \
- _TRNS, ___SB_L3___, _TRNS, _TRNS, ___SB_R3___, _TRNS)
-
-// ---------------------------
-// A: Extended.
-#define CARTE_SYMB_BEAKLA \
- carte_de_map(" `<$>' ?[_]-", \
- " -\\(\")# %{:}|;", \
- " @=*+; !&^~/")
-
-#define ___SYMB_BEAKLA_3x10___ \
- CHUNK_LANG_MAP(_OCGRV, ___SB_L1___, _OCQUOT, _QUES, ___SB_R1___, _MINS, \
- ___SB_L2___, ___SB_R2a___, \
- _AT, ___SB_L3___, _SCLN, _EXLM, ___SB_R3___, _SLSH)
-
-// ---------------------------
-// B: Extended & Vi
-#define CARTE_SYMB_BEAKLB \
- carte_de_map(" `<$>' ?[_]-", \
- " -\\(\")# !{:}/;", \
- " @=*+; %&^~|")
-
-#define ___SYMB_BEAKLB_3x10___ \
- CHUNK_LANG_MAP(_OCGRV, ___SB_L1___, _OCQUOT, _QUES, ___SB_R1___, _MINS, \
- ___SB_L2___, ___SB_R2b___, \
- _AT, ___SB_L3b___, _SCLN, _PERC, ___SB_R3___, _PIPE)
-
-// ---------------------------
-// C: Extended & Vi, move closing braces to pinky, seldom used.
-// because of tap hold - open_openclose feature.
-// Also emacs which mostly closes them.
-#define CARTE_SYMB_BEAKLC \
- carte_de_map(" `<$>' ?[_-]", \
- " -\\(\"#) !{:/};", \
- " @=*+; %&^~|")
-
-#define ___SYMB_BEAKLC_3x10___ \
- CHUNK_LANG_MAP(_OCGRV, ___SB_L1___, _OCQUOT, _QUES, ___SB_R1c___, _RBRC, \
- ___SB_L2c___, ___SB_R2c___, \
- _AT, ___SB_L3b___, _SCLN, _PERC, ___SB_R3___, _PIPE)
-
-// wants ( and ) on the left thumb.
-#define CARTE_SYMB_MIRYOKU \
- carte_de_map(" {&.(} ", \
- " :$%^+ ", \
- " ~!@#| ")
-
-#define ___SYMB_MIRYOKU_3x10___ \
- CHUNK_LANG_MAP(_OCCBR, _AMPR, _DOT, _OCPRN, _RCBR, ____5_, \
- _COLN, _DLR, _PERC, _CIRC_ND, _PLUS, ____5_, \
- _TILD_ND, _EXLM, _AT, _HASH, _PIPE, ____5_)
-
-// ---------------------------
-// WI: the Beakl Wi definition.
-#define ___SYMB_BKL_WI_L1___ ___, _DOT, _ASTR, _AMPR, _PLUS
-#define ___SYMB_BKL_WI_L2___ ___, _QUES, _EXLM, _SLSH, _PIPE
-#define ___SYMB_BKL_WI_L3___ ___, _LT, _GT, _PERC, _AT
-
-#define ___SYMB_BKL_WI_R1___ _ASTR, _OCBRC, _CIRC_ND, _RBRC, ___
-#define ___SYMB_BKL_WI_R2___ _QUES, _OCPRN, _DLR , _RPRN, ___
-#define ___SYMB_BKL_WI_R3___ _PIPE, _OCCBR, _HASH, _RCBR, ___
-
-#define CARTE_SYMB_BEAKLWI \
- carte_de_map(" .*&+ *[^] ", \
- " ?!/| ?($) ", \
- " <>%@ |{#} ")
-
-#define ___SYMB_BEAKL_WI_3x10___ \
- CHUNK_LANG_MAP(___SYMB_BKL_WI_L1___, ___SYMB_BKL_WI_R1___, \
- ___SYMB_BKL_WI_L2___, ___SYMB_BKL_WI_R2___, \
- ___SYMB_BKL_WI_L3___, ___SYMB_BKL_WI_R3___)
-
-// ---------------------------
-// Neo symbol layer
-#define ___SYMB_NEO_L1___ ___, _OCDQUOT, _UNDS, _OCLBRC, _RBRC, _CIRC_ND
-#define ___SYMB_NEO_L2___ ___, _SLSH, _MINS, _OCLCBR, _RCBR, _ASTR
-#define ___SYMB_NEO_L3___ ___, _HASH, _DLR, _PIPE, _TILD_ND, _OCGRV
-
-#define ___SYMB_NEO_R1___ _EXLM, _LT, _GT, _EQL, _AMPR
-#define ___SYMB_NEO_R2___ _QUES, _OCPRN, _RPRN , _QUOT, _COLN
-#define ___SYMB_NEO_R3___ _PLUS, _PERC, _BSLS, _AT, ___
-
-#define CARTE_SYMB_NEO \
- carte_de_map("\"_[]^ !<>=&", \
- "/-{}* ?()':", \
- "#$|~` +%\@")
-
-#define ___SYMB_NEO_3x10___ \
- CHUNK_LANG_MAP(___SYMB_NEO_L1___, ___SYMB_NEO_R1___, \
- ___SYMB_NEO_L2___, ___SYMB_NEO_R2___, \
- ___SYMB_NEO_L3___, ___SYMB_NEO_R3___)
diff --git a/users/ericgebhart/layers/thumbs.h b/users/ericgebhart/layers/thumbs.h
deleted file mode 100644
index a78b3a9532..0000000000
--- a/users/ericgebhart/layers/thumbs.h
+++ /dev/null
@@ -1,276 +0,0 @@
-/*
- Copyright 2018-2022 Eric Gebhart <e.a.gebhart@gmail.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/>.
-*/
-
-// Split thumbs.
-
-// Split these down the middle to think in left and right hand.
-// Top row on kinesis, ergodox, etc.
-#define ___THUMBS_1___ \
- ___X___ , MO_ADJUST, MO_LAYERS, OSL(LN_TOPROWS)
-
-// Middle row on kinesis, ergodox, etc.
-#define ___THUMBS_2___ HOME_END, KC_PGUP
-
-#define ___4_THUMBS_1___ ___X___, KC_HOME, KC_PGUP, OSL(LN_TOPROWS)
-#define ___6_THUMBS_2___ KC_LSFT, KC_BKTAB, KC_END, KC_PGDN, KC_TAB, KC_RSFT
-#define ___6_THUMBS_2_CB___ KC_LSFT, KC_BKTAB, KC_END, KC_PGDN, KC_TAB, KC_RSFT
-
-#define ___6_THUMBS_2a___ BSPC_SYMB, ESC_TOPR, ESC_TOPR, ENT_NAV, ENT_NAV, SPC_TOPR
-#define ___6_THUMBS_2a_CB___ BSPC_SYMB, ESC_TOPR, ESC_TOPR, ENT_NAV, ENT_NAV, SPC_TOPR
-
-
-// This has become the default center group of thumbs for all
-// So here's the beakl wi thumbs adapted to this combined layer system.
-//
-#define ___6_ERGO_THUMBS_WI___ \
- ESC_TOPR, I_SYMB, TAB_NUM, ENT_NAV, SPC_SYMB, BSPC_NAV
-
-// Like my other thumb rows. With an I.
-#define ___6_ERGO_THUMBS_WIa___ \
- BSPC_NAV, I_SYMB, ESC_TOPR, ENT_NAV, SPC_TOPR, TAB_NUM
-
-#define ___6_ERGO_THUMBS_layers___ \
- SML_NAV, BSPC_SYMB, ESC_TOPR, ENT_NAV, SPC_TOPR, ACCCENTS_RALT
-
-#define ___6_ERGO_THUMBS_COMBO___ CB_TH1, CB_TH2, CB_TH3, CB_TH4, CB_TH5, CB_TH6
-#define ___6_ERGO_THUMBS_COMBO2___ CB2_TH1, CB2_TH2, CB2_TH3, CB2_TH4, CB2_TH5, CB2_TH6
-
-// Transparent.
-#define ___6_ERGO_THUMBS_trns___ ___6___
-
-// A place to test stuff.
-#define ___6_ERGO_THUMBS_tst___ \
- TT_KEYPAD, BSPC_SYMB, ESC_TOPR, ENT_NAV, SPC_TOPR, KC_XM_PORD
-
-#define ___6_ERGO_THUMBS_mods___ \
- ALT_DEL, CTL_BSPC, GUI_ESC, ALT_ENT, CTL_SPC, XC_XM_PORD
-
-#define ___6_ERGO_THUMBS_mod_layers___ \
- ALT_DEL, BSPC_SYMB, GUI_ESC, CTL_ENT, SPC_TOPR, ACCENTS_RALT
-
-#define ___6_ERGO_THUMBS_mod_layers_nav___ \
- ALT_DEL, BSPC_SYMB, GUI_ESC, ENT_NAV, SPC_TOPR, ACCENTS_RALT
-
-// for keymaps that need a letter on the thumb.
-#define ___6_ERGO_THUMBS_left_letter___ \
- BSPC_ALT, TH_LTR_SYM, GUI_ESC, ENT_NAV, SPC_TOPR, KC_TAB
-
-// an attempt at an approximation of the HD thumbs as they are on the site.
-// really should be expected to be a starting point that doesnt strand you.
-#define ___6_ERGO_THUMBS_hd___ \
- BSPC_ALT, TH_LTR_SYM, GUI_ESC, ENT_NAV, SPC_TOPR, ACCENTS_CTL
-#define ___6_ERGO_THUMBS_hd_a___ \
- OS_LSHIFT, TH_LTR_SYM, GUI_ESC, BSPC_ALT, SPC_TOPR, ACCENTS_CTL
-#define ___6_ERGO_THUMBS_hd_simple___ \
- MO_SYMB, THUMB_LETTER, KC_ENT, KC_BSPC, KC_SPC, MO_TOPROWS
-/* HD dash has thumbs of ,; and .: */
-#define ___6_ERGO_THUMBS_hd_dash___ \
- LANG_KC(TL_COMM), TL_DOT_SYMB, GUI_ESC, ENT_NAV, SPC_TOPR, BSPC_NUM
-
-#define ___6_ERGO_THUMBS_media___ ___3___, ___STOP_PLAY_MUTE___
-#define ___6_ERGO_THUMBS_mouse___ ___3___, ___3MOUSE_BTNS_R___
-#define ___6_ERGO_THUMBS_keypad___ \
- LANG_KC(_DOT), LANG_KC(_0), LANG_KC(_MINS), ___3___
-#define ___6_ERGO_THUMBS_symb___ \
- LANG_KC(_OCPRN), LANG_KC(_RPRN), LANG_KC(_UNDS), ___3___
-
-// miryoku thumbs, either its toprows or keypad for numbers.
-#define ___6_ERGO_THUMBS_miryoku_tr___ \
- ESC_MEDIA, SPACE_NAV, TAB_NAVM, ENT_SYM, BSPC_TOPR, DEL_FUN
-#define ___6_ERGO_THUMBS_miryoku___ \
- ESC_MEDIA, SPACE_NAV, TAB_NAVM, ENT_SYM, BSPC_NUM, DEL_FUN
-// lose the tab key, put a letter where space was.
-// move space to the right side, put backspace where tab was.
-#define ___6_ERGO_THUMBS_miryoku_ltr___ \
- ESC_MEDIA, TH_LTR_NAV, BSPC_NAVm, ENT_SYM, SPC_NUM, DEL_FUN
-#define ___6_ERGO_THUMBS_miryoku_tr_ltr___ \
- ESC_MEDIA, TH_LTR_NAV, BSPC_NAVm, ENT_SYM, SPC_TOPR, DEL_FUN
-
-#define ___6_ERGO_THUMBS_miryoku_ltr_tab___ \
- BSPC_MEDIA, TH_LTR_NAV, TAB_NAVM, ENT_SYM, SPC_NUM, DEL_FUN
-
-#define ___6_ERGO_THUMBS_miryoku_tr_ltr_tab___ \
- BSPC_MEDIA, TH_LTR_NAV, TAB_NAVM, ENT_SYM, SPC_TOPR, DEL_FUN
-
-// Give the right symbol suffix by the value of THUMBS_ARE
-// Basically we choose the right cluster here, so the layout
-// level doesn't know or care.
-//
-// ___foo --> ___foo_WI___, or ___foo_WIa___, or ___foo_def___.
-// THUMBS_ARE = WI, or WIa, or DEFAULT, TEST, TRNS, MOD_LAYERS, etc.
-// the value of THUMB_LETTER is the key used when needed.
-#define THUMB_EXT CAT(THUMBS_ARE, _EXT)
-#define WI_EXT _WI___
-#define WIa_EXT _WIa___
-#define DEFAULT_EXT _mod_layers_nav___ //change this to change the default.
-#define TEST_EXT _tst___
-#define TRNS_EXT _trns___
-#define MODS_EXT _mods___
-#define LAYERS_EXT _layers___
-#define MODS_LAYERS_EXT _mod_layers___
-#define MODS_LAYERS_NAV_EXT _mod_layers_nav___
-#define MIRYOKU_EXT _miryoku___
-#define MIRYOKU_TR_EXT _miryoku_tr___
-#define MIRYOKU_LTR_EXT _miryoku_ltr___ // miryoku versions with a letter
-#define MIRYOKU_LTR_TAB_EXT _miryoku_ltr_tab___
-#define MIRYOKU_TR_LTR_EXT _miryoku_tr_ltr___
-#define MIRYOKU_TR_LTR_TAB_EXT _miryoku_tr_ltr_tab___
-#define TH_LTR_EXT _left_letter___ // takes a letter for the left thumb.
-#define HD_DASH_EXT _hd_dash___
-#define HD_EXT _hd___ // takes a letter for the left thumb.
-#define HDA_EXT _hd_a___ // relocate backspace
-#define HD_SIMPLE_EXT _hd_simple___ // no LTs or MT´s.
-// for the function layers
-#define COMBO_EXT _COMBO___
-#define COMBO2_EXT _COMBO2___
-#define MEDIA_THUMBS_EXT _media___
-#define MOUSE_THUMBS_EXT _mouse___
-#define KEYPAD_THUMBS_EXT _keypad___
-#define SYMB_THUMBS_EXT _symb___
-
-#define ___6_ERGO_THUMBS___ CAT2(___6_ERGO_THUMBS, THUMB_EXT)
-// for the kyria, mostly for the combo reference layers.
-#define ___10_ERGO_THUMBS___ CATR(___10_ERGO_THUMBS, EXP_THUMB_EXT)
-#define ___4_THUMBS___ CAT2(___4_THUMBS, EXP_THUMB_EXT)
-
-/* #define ___6_ERGO_THUMBS___ ___6_ERGO_THUMBS_def___ */
-
-/* #define ___ERGODOX_THUMB_LEFT___ \ */
-/* OSL(SYMB), OSM(KC_LGUI), \ */
-/* HOME_END, \ */
-/* CTL_BSPC, ALT_DEL, XMONAD_ESC */
-
-/* #define ___ERGODOX_THUMB_RIGHT___ \ */
-/* XXX, OSL(KEYPAD), \ */
-/* KC_PGUP, \ */
-/* KC_PGDN, ALT_ENT, CTL_SPC */
-
-// Translation of LT thumb keys from beakl wi where function layers
-// have separate left and right to here, where I'm defining left and right in
-// one layer and using it that way. I don't feel that having both halves
-// on one layer hurts, if I invoke a layer, I'm not trying to use a non
-// layer part of the keyboard. I don't have an edit layer, might be a good idea.
-// have most of it on the Navigation layer.
-// use the keycodes on that original layer, so It's not defined here.
-// The wi keypad has a hexpad instead of a funcpad. All the other keypads
-// have a funcpad on the opposite side.
-
-// translation of the original wi layers to those here.
-// BSPC_NAV
-// SPC_SYMB
-// TAB_NUM
-// ESC_func -> ESC_TOPR
-// I_regex -> I_SYMB
-// ENT_edit -> ENT_NAV
-
-/* // consolidated for kinesis, ergodox, and dactyl */
-/* //for the ergodox and kinesis. */
-/* #define ___12_DOX_ALL_THUMBS___ \ */
-/* ___4___, \ */
-/* ___2___, \ */
-/* ___6___ */
-
-#define ___12_DOX_ALL_THUMBS___ ___12___
-
-/* ___THUMBS_1___, \ */
-/* ___xTHUMBS_2___, \ */
-/* ___6_ERGO_THUMBS___ */
-
-#define ___12_DOX_ALL_THUMBS_EN___ ___12_DOX_ALL_THUMBS___
-#define ___12_DOX_ALL_THUMBS_BP___ ___12_DOX_ALL_THUMBS___
-
-#define ___16_ALL_THUMBS___ \
- ___4_THUMBS_1___, \
- ___6_THUMBS_2___, \
- ___6_ERGO_THUMBS___
-
-#define ___16_ALL_THUMBS_EN___ ___16_ALL_THUMBS___
-#define ___16_ALL_THUMBS_BP___ ___16_ALL_THUMBS___
-#define ___16_ALL_THUMBSa___ \
- ___4_THUMBS_1___, \
- ___6_THUMBS_2a___, \
- ___6_ERGO_THUMBS___
-
-#define ___16_ALL_THUMBSa_EN___ ___16_ALL_THUMBSa___
-#define ___16_ALL_THUMBSa_BP___ ___16_ALL_THUMBSa___
-
-
-// For the Kyria
-#define ___4_THUMBS_def___ OS_LALT, OS_LCTL, SML_NAV, OS_LSFT
-#define ___10_ERGO_THUMBS_def___ _X_, _X_, ___6_ERGO_THUMBS___, _X_, _X_
-
-#define ___4_THUMBS_EN___ ___4_THUMBS_def___
-#define ___4_THUMBS_BP___ ___4_THUMBS_def___
-#define ___10_ERGO_THUMBS_EN___ ___10_ERGO_THUMBS_def___
-#define ___10_ERGO_THUMBS_BP___ ___10_ERGO_THUMBS_def___
-
-// combo reference layer thumbs for the kyria.
-// for the kyria, note the odd numbering...a 0 row, and a,b,c,d for the extras
-// on either side of the central 6 thumbs.
-#define ___2_THUMBS_CB___ CB_1TH1, CB_1TH2
-#define ___4_THUMBS_CB___ CB_0TH1, CB_0TH2, CB_0TH3, CB_0TH4
-#define ___6_THUMBS_CB___ CB_1TH1, CB_1TH2, CB_1TH3, CB_1TH4, CB_1TH5, CB_1TH6
-#define ___10_ERGO_THUMBS_CB___ CB_THA, CB_THB, \
- ___6_ERGO_THUMBS___, CB_THC, CB_THD
-#define ___12_ERGO_THUMBS_CB___ ___2_THUMBS_CB___, \
- CB_THA, CB_THB, ___6_ERGO_THUMBS___, CB_THC, CB_THD
-#define ___12_DOX_ALL_THUMBS_CB___ ___4_THUMBS_CB___, ___2_THUMBS_CB___, ___6_ERGO_THUMBS___
-#define ___16_DOX_ALL_THUMBS_CB___ ___4_THUMBS_CB___, ___6_THUMBS_2_CB___, ___6_ERGO_THUMBS___
-#define ___16_DOX_ALL_THUMBSa_CB___ ___4_THUMBS_CB___, ___6_THUMBS_2a_CB___, ___6_ERGO_THUMBS___
-
-
-#define ___2_THUMBS_CB2___ CB2_1TH1, CB2_1TH2
-#define ___4_THUMBS_CB2___ CB2_0TH1, CB2_0TH2, CB2_0TH3, CB2_0TH4
-#define ___6_THUMBS_CB2___ CB2_1TH1, CB2_1TH2, CB2_1TH3, CB2_1TH4, CB2_1TH5, CB2_1TH6
-#define ___10_ERGO_THUMBS_CB2___ CB2_THA, CB2_THB, \
- ___6_ERGO_THUMBS___, CB2_THC, CB2_THD
-#define ___12_ERGO_THUMBS_CB2___ ___2_THUMBS_CB2___, \
- CB2_THA, CB2_THB, ___6_ERGO_THUMBS___, CB2_THC, CB2_THD
-#define ___12_DOX_ALL_THUMBS_CB2___ ___4_THUMBS_CB2___, ___2_THUMBS_CB2___, ___6_ERGO_THUMBS___
-#define ___16_DOX_ALL_THUMBS_CB2___ ___4_THUMBS_CB2___, ___6_THUMBS_2_CB2___, ___6_ERGO_THUMBS___
-#define ___16_DOX_ALL_THUMBSa_CB2___ ___4_THUMBS_CB2___, ___6_THUMBS_2a_CB2___, ___6_ERGO_THUMBS___
-
-// Basically give the same 4 top thumbs and bottom outer 4 thumbs for everyone.
-// Could be different for every one, but the core 6 is enough for now I think.
-// Everyone is the same except the combo reference layers.
-// Let 6 ERGO_THUMBS do it´s thing inside.
-#define EXP_THUMB_EXT CAT(THUMBS_ARE, _EXP_EXT)
-#define WI_EXP_EXT _def___
-#define WIa_EXP_EXT _def___
-#define DEFAULT_EXP_EXT _def___
-#define TEST_EXP_EXT _def___
-#define TRNS_EXP_EXT _def___
-#define MODS_EXP_EXT _def___
-#define LAYERS_EXP_EXT _def___
-#define MODS_LAYERS_EXP_EXT _def___
-#define MODS_LAYERS_NAV_EXP_EXT _def___
-#define MIRYOKU_EXP_EXT _def___
-#define MIRYOKU_TR_EXP_EXT _def___
-#define MIRYOKU_LTR_EXP_EXT _def___
-#define MIRYOKU_TR_LTR_EXP_EXT _def___
-#define TH_LTR_EXP_EXT _def___
-#define HD_DASH_EXP_EXT _def___
-#define HD_EXP_EXT _def___
-#define HDA_EXP_EXT _def___
-#define HD_SIMPLE_EXP_EXT _def___
-// for the function layers
-#define COMBO_EXP_EXT _COMBO___
-#define COMBO2_EXT _COMBO2___
-#define MEDIA_THUMBS_EXP_EXT _def___
-#define MOUSE_THUMBS_EXP_EXT _def___
-#define KEYPAD_THUMBS_EXP_EXT _def___
-#define SYMB_THUMBS_EXP_EXT _def___
diff --git a/users/ericgebhart/layers/toprows.h b/users/ericgebhart/layers/toprows.h
deleted file mode 100644
index 3ae1c4665b..0000000000
--- a/users/ericgebhart/layers/toprows.h
+++ /dev/null
@@ -1,80 +0,0 @@
-/*
- Copyright 2018-2022 Eric Gebhart <e.a.gebhart@gmail.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 "keycodes.h"
-/*******************************************************************/
-/* A Top Rows layer. Pick your parts. Bepo and Qwerty */
-/* */
-/* This is, to me, a stop gap layer. If I need symbols, numbers or */
-/* function keys these rows are nicely predictable to most people. */
-/* I currently use the beakl number row with regular symbols. */
-/* I never use function keys for anything. */
-/*******************************************************************/
-// Kinesis function key row. I don't use them. but might as well define them.
-#define ___KINTFUNC_L___ KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8
-// #define ___KINTFUNC_RIGHT___ KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SCRL, KC_PAUS, KC_FN0, QK_BOOT
-#define ___KINTFUNC_R___ KC_F9, KC_F10, KC_F11, KC_F12, XXX, XXX, XXX, XXX, QK_BOOT
-
-// A TOPROWS Layer.
-// set it how you like it, if you like it.
-
-
-//#define ___MODS_ROW___ ___OS_MODS_L___, ___, ___SML_MODS_R___
-#define ___MODS_ROW___ ___SML_MODS_L___, ___, ___OS_MODS_R___
-/********************************************************************************/
-/* TOPROWS Layer chunk */
-/********************************************************************************/
-// These rows have already been langed, at their creation.
-// altogether in a chunk.
-#define CARTE_TOPROWS \
- carte_de_map(" !@#$% ^&*()", \
- " 40123 76598", \
- " F1- -- -F12")
-
-#define ___TOPROWS_3x10___ \
- ___10_SYMBOLS___, \
- ___10_NUMBERS_BEAKL15___, \
- ___10_FUNCS___
-
-#define CARTE_TOPROWS_MOD \
- carte_de_map(" !@#$% ^&*()", \
- " 40123 76598", \
- " SLMods OSMods")
-
-#define ___TOPROWS_MOD_3x10___ \
- ___10_SYMBOLS___, \
- ___10_NUMBERS_BEAKL15___, \
- ___MODS_ROW___
-
-#define CARTE_TOPROWS_BKL19 \
- carte_de_map(" !@#$% ^&*()", \
- " 32104 76598", \
- " F1- -- -F12")
-
-#define ___TOPROWS_BKL19_3x10___ \
- ___10_SYMBOLS___, \
- ___10_NUMBERS_BEAKL19___, \
- ___10_FUNCS___
-
-#define CARTE_RAISE \
- carte_de_map(" !@#$% ^&*()", \
- " 12345 67890", \
- " F1- -- -F12")
-
-#define ___RAISE_3x10___ \
- ___10_SYMBOLS___, \
- ___10_NUMBERS___, \
- ___10_FUNCS___
diff --git a/users/ericgebhart/layers/utility.h b/users/ericgebhart/layers/utility.h
deleted file mode 100644
index a3008cc442..0000000000
--- a/users/ericgebhart/layers/utility.h
+++ /dev/null
@@ -1,125 +0,0 @@
-/*
- Copyright 2018-2022 Eric Gebhart <e.a.gebhart@gmail.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/>.
-*/
-/********************************************************************************/
-/* MEDIA - Mute, Vol, play, pause, stop, next, prev, etc. */
-/********************************************************************************/
-#define ___PRV_PLAY_NXT_STOP___ KC_MPRV, KC_MPLY, KC_MNXT, KC_MSTP
-#define ___VDN_MUTE_VUP___ KC_VOLD, KC_MUTE, KC_VOLU
-
-#define ___PRV_VDN_VUP_NXT___ KC_MPRV, KC_VOLD, KC_VOLU, KC_MNXT
-#define ___STOP_PLAY_MUTE___ KC_MSTP, KC_MPLY, KC_MUTE
-
-#define ___MUTE_PRV_PLAY_NXT_STOP___ KC_MUTE, KC_MPRV, KC_MPLY, KC_MNXT, KC_MSTP
-#define ___MUTE_PLAY_STOP___ KC_MUTE, KC_MPLY, KC_MSTP
-
-#define CARTE_MEDIA \
- carte_de_map(" ", \
- " < vdn vup >", \
- " stp play mute")
-
-// miryoku, to be used with stop play mute on thumbs. - MEDIA thumbs.
-#define ___MEDIA_3x10___ \
- ___5___, ___5___, \
- ___5___, ___, ___PRV_VDN_VUP_NXT___, \
- ___5___, ___5___
-
-
-/********************************************************************************/
-/* RGB - Control those lights. */
-
-/* ___, HUE SAT_INT MOD (UP), | */
-/* ___, HUE SAT INT MOD (DOWN), RGB_TOG | P_B_R_SW_SN___, ___ */
-/* ___6___, | ___, ___RGB_KXGT___, ___ */
-/********************************************************************************/
-// RGB FUNCTION Keysets
-// RGB row for the _FN layer from the redo of the default keymap.c
-#define ___RGB_HUE_SAT_INT_UP___ RGB_HUI, RGB_SAI, RGB_VAI, RGB_RMOD
-#define ___RGB_HUE_SAT_INT_DN___ RGB_HUD, RGB_SAD, RGB_VAD, RGB_MOD
-#define ___RGB_MODE_PRV_NXT___ RGB_RMOD, RGB_MOD
-#define ___RGB_TOGGLE___ RGB_TOG
-#define ___RGB_P_B_R_SW_SN___ RGB_M_P, RGB_M_B, RGB_M_R, RGB_M_SW, RGB_M_SN
-#define ___RGB_KXGT___ RGB_M_K, RGB_M_X, RGB_M_G, RGB_M_T
-
-/// An RGB Layer
-#define ___10_RGB_1___ ___RGB_HUE_SAT_INT_UP___, ___, ___5___
-#define ___10_RGB_2___ ___RGB_HUE_SAT_INT_DN___, RGB_TOG, ___RGB_P_B_R_SW_SN___
-#define ___10_RGB_3___ ___5___, ___, ___RGB_KXGT___
-
-/********************************************************************************/
-/* The RGB LAYER Chunk */
-/********************************************************************************/
-#define ___RGB_3x10___ ___10_RGB_1___, ___10_RGB_2___, ___10_RGB_3___
-
-
-/********************************************************************************/
-/* ADJUST - Miscellaneous Melange. */
-/********************************************************************************/
-// For an Adjust layer. Like RBB with audio, flash, etc.
-#define ___ADJUST_L1___ ___RGB_HUE_SAT_INT_UP___, RGB_TOG
-#define ___ADJUST_L2___ MU_TOGG, CK_TOGG, AU_ON, AU_OFF, CG_NORM
-#define ___ADJUST_L3___ ___RGB_HUE_SAT_INT_DN___, KC_RGB_T
-
-#define ___ADJUST_R1___ ___, KC_MAKE, VRSN, MG_NKRO, KC_RESET
-#define ___ADJUST_R2___ EE_CLR, ___PRV_PLAY_NXT_STOP___,
-#define ___ADJUST_R3___ MG_NKRO, ___VDN_MUTE_VUP___, RGB_IDL
-/********************************************************************************/
-/* The Adjust LAYER Chunks */
-/********************************************************************************/
-#define ___ADJUST_3x10___ ___ADJUST_L1___, ___ADJUST_R1___, \
- ___ADJUST_L2___, ___ADJUST_R2___, \
- ___ADJUST_L3___, ___ADJUST_R3___
-
-
-/********************************************************************************/
-/* LAYERS - Define a base layer, switch to any layer. Get around. Experiment. */
-/* */
-/* Base Layers on the left hand, */
-/* transient layers on the right. Centered on the home region. */
-/* A good place to attach an experimental layer. */
-/* */
-/********************************************************************************/
-// Base Layers
-// this was kc_dvorak et al. But since its configurable as to who would be here
-// that no longer makes sense. So next keys for locale and base layer. and a set to
-// make it permanent. Cycling of layers is based on current locale.
-#define ___BASE_LAYERS___ ___, KC_SET_BASE, KC_NEXT_BASE_LAYER, KC_NEXT_LOCALE, ___
-
-// transient layers.
-#define ___5_LAYERS_T___ ___, MO(_NAV), MO_SYMB, MO_KEYPAD, MO_TOPROWS
-#ifdef SECOND_LOCALE
-#undef LANG_IS
-#define LANG_IS SECOND_LOCALE
-#define ___5_LAYERS_T_BP___ ___, MO(_NAV), MO_SYMB, MO_KEYPAD, MO_TOPROWS
-#undef LANG_IS
-#define LANG_IS DEFAULT_LANG
-#else
-#define ___5_LAYERS_T_BP___ ___, MO(_NAV), ___3___
-#endif
-
-#define ___5_LAYERS_T_CTL___ ___, MO_RGB, ___, ___, MO_ADJUST
-
-
-#define CARTE_LAYERS \
- carte_de_map(" |Nv S K TR", \
- " EE Bs Ln|Nv S K TR", \
- " ")
-
-/// A Layers Layer
-#define ___LAYERS_3x10___ \
- ___5___, ___5_LAYERS_T_BP___, \
- ___BASE_LAYERS___, ___5_LAYERS_T___, \
- ___5___, ___5_LAYERS_T_CTL___
diff --git a/users/ericgebhart/listen_keylogger.sh b/users/ericgebhart/listen_keylogger.sh
deleted file mode 100755
index 71773d19af..0000000000
--- a/users/ericgebhart/listen_keylogger.sh
+++ /dev/null
@@ -1 +0,0 @@
-sudo ./hid_listen | egrep --line-buffered "(0x[A-F0-9]+,)?(NA|[0-9]+),(NA|[0-9]+),[0-9]{1,2}" | tee -a keylog.csv
diff --git a/users/ericgebhart/miryoku_hd_gold_config.h b/users/ericgebhart/miryoku_hd_gold_config.h
deleted file mode 100644
index 9eafdd2a5a..0000000000
--- a/users/ericgebhart/miryoku_hd_gold_config.h
+++ /dev/null
@@ -1,323 +0,0 @@
-/*
- Copyright 2018 Eric Gebhart <e.a.gebhart@gmail.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/>.
-*/
-
-
-/* This configuration creates a miryoku system with */
-/* Qwerty and Hands Down Gold. as base layers. */
-
-/* It also usess layers which are the same or very closely resemble */
-/* the layers of miryoku. These can be swapped out for other choices */
-/* as desired. */
-
-/* The language is set to EN, so KC_ keycodes are used. */
-/* The oled is on, rgb is off, see below. */
-
-
-#ifndef USERSPACE_CONFIG_H
-#define USERSPACE_CONFIG_H
-
-// pro-micro v3's don't always detect otherwise.
-/* #define SPLIT_USB_DETECT */
-
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-// Sets good default for the speed of the mouse.
-#undef MOUSEKEY_INTERVAL
-#undef MOUSEKEY_DELAY
-#undef MOUSEKEY_TIME_TO_MAX
-#undef MOUSEKEY_MAX_SPEED
-
-#define MOUSEKEY_INTERVAL 20
-#define MOUSEKEY_DELAY 100
-#define MOUSEKEY_TIME_TO_MAX 60
-#define MOUSEKEY_MAX_SPEED 7
-
-#undef MOUSEKEY_WHEEL_MAX_SPEED
-#undef MOUSEKEY_WHEEL_TIME_TO_MAX
-#undef MOUSEKEY_WHEEL_DELAY
-
-#define MOUSEKEY_WHEEL_MAX_SPEED 5
-#define MOUSEKEY_WHEEL_TIME_TO_MAX 60
-#define MOUSEKEY_WHEEL_DELAY 100
-
-#undef TAPPING_TOGGLE
-#undef TAPPING_TERM
-
-#define TAPPING_TOGGLE 2
-#define TAPPING_TERM 200
-
-
-#define TAP_HOLD_TERM 200
-#define COMBO_MUST_HOLD_MODS
-#define COMBO_HOLD_TERM 150
-#define TAP_CODE_DELAY 5 // for send string with delay
-
-
-/* Control switches for my keymaps. */
-/* if needed, this goes in the keyboard's config.h */
-/* Alternately, fix the number row in the layout template. */
-/* #define BASE_NUMBER_ROW // turn on 4 row base templates. */
-
-// Extensions, turn them on and off.
-#define USERSPACE_H "ericgebhart.h"
-
-// Layout definitions, which language, thumb cluster, mod layer.
-// Columns in and out.
-
-// the default. set it, use it, set it back.
-// US_INT // EN, BEPO, US_INT
-#define LANG_IS EN
-#define DEFAULT_LANG EN
-#define DEFAULT_LANG_NAME " en"
-
-// Enable a second locale, for another set of layers.
-// This will add bepo versions of all layers chosen.
-/* #define SECOND_LOCALE BEPO */
-/* #define SECOND_LOCALE_NAME " bepo" */
-
-// Choose a mod layer. Can be changed per layer.
-// TRNS, ALT, HRS_NAV HRM_GACS, HRM_SCAG, HRM_GASC, MIRYOKU_HRM_GASC
-#define MODS_ARE MIRYOKU_HRM_GACS
-#define DEFAULT_MODS MODS_ARE
-
-// Choose a thumb cluster.
-// WI, WIa, DEFAULT, TEST, TRNS, MODS, LAYERS, MODS_LAYERS,
-// MIRYOKU, MIRYOKU_TR, MODS_LAYERS_NAV,
-// The following use THUMB_LETTER to place a letter on the Thumbs.
-// for use with the hands down metals, maltron, and rsthd.
-// HD, HDA, HD_SIMPLE, TH_LTR, HD_DASH,
-// MIRYOKU_TR_LTR, MIRYOKU_LTR
-// MIRYOKU_TR_LTR_TAB, MIRYOKU_LTR_TAB
-#define THUMBS_ARE DEFAULT
-#define DEFAULT_THUMBS DEFAULT
-
-// pick the edge key set. normie, no kc, smart locks or test.
-// NORM, NOKC, SML, TEST
-#define EDGE_KEY_SET_IS SML
-#define DEFAULT_EDGE_SET SML
-
-// for the base layers which need a thumb cluster which takes a letter.
-#define HANDS_DOWN_LTR_THUMBS_ARE MIRYOKU_LTR_TAB
-#define MALTRON_LTR_THUMBS_ARE TH_LTR
-#define RSTHD_LTR_THUMBS_ARE TH_LTR
-
-// layout io, matrix size.
-// a reasonable default for most keyboards.
-// give a 3x10 and get a 3x12, managed in keyboards/keyboards.h
-#define BASE_COLS_IN_OUT 5_6 // 5, 5_6, 6
-
-// OLED STUFF.
-#define OLED_CUSTOM_ENABLE // custom oled here.
-//#define OLED_LOGO_ENABLE // turn on/off the logo.
-//#define KEYLOGGER_ENABLE // 1500 bytes, track and print keypress info to oled.
-//#define SPLIT_LAYER_STATE_ENABLE // to sync state between sides.
-
-// EXTENSIONS
-
-// Combos
-#define COMBO_REF_LAYER_ENABLE
-// #define COMBO_REF_LAYER_TWO_ENABLE
-// works if you know the number of your layer.
-// otherwise set and use them later.
-// #define COMBO_ONLY_FROM_LAYER 2
-// #define COMBO_REF_DEFAULT 2
-
-
-// Console key logging for creation of heatmaps, etc.
-// CONSOLE must be enabled for this to work.
-// To create Precondition's heat maps, from console key logging
-// with hid_listen or qmk console
-//#define CONSOLE_KEY_LOGGER_ENABLE // turn on keylogging for heat maps.
-
-#define ALT_LOCAL_ENABLE // alternate key combinations, with mods as needed.
-//#define ACCENTED_KEYS_ENABLE // direct access to altgr keys.
-
-#define SMART_LOCK_ENABLE // smart lock layers and mods.
-//#define MOD_LOCK_ENABLE // smart lock mods, similar/overlapping with Smart lock.
-#define NSHOT_ENABLE // smart n-shot for count.
-//#define ONESHOT_MOD_ENABLE // oneshot mods, similar/overlapping with nshots
-
-#define CAPS_WORD_ENABLE // caps word. both shifts to caps a word.
-#define TAP_HOLD_ENABLE // tap for one thing, hold for tapping term to get another.
-//#define SWAPPER_ENABLE // enable swapper keys.
-#define NOT_DEAD_ENABLE // make undead versions (US_DQUO_ND) of dead keys.
-//#define ALT_SHIFT_ENABLE // alternate shift behaviors for existing keys.
-//#define SEND_STRING_ENABLE // Turn on send string keys
-//#define SEND_UNICODE_ENABLE // Unicode must be enabled for this to work.
-
-
-// Turn on the base layers do not exceed 4 if doing two locales.
-// That will likely push a layer past 15 and then it will
-// no longer work with the LT macro.
-
-// dvorak and relatives
-//#define DVORAK_LAYER_ENABLE
-//#define CAPEWELL_DVORAK_LAYER_ENABLE
-//#define AHEI_LAYER_ENABLE
-//#define BOO_LAYER_ENABLE
-
-// qwerty and derivitives
-#define QWERTY_LAYER_ENABLE
-//#define AZERTY_LAYER_ENABLE
-//#define WORKMAN_LAYER_ENABLE
-//#define NORMAN_LAYER_ENABLE
-
-// COLEMAK and relatives
-//#define COLEMAK_LAYER_ENABLE
-//#define COLEMAK_DH_LAYER_ENABLE
-//#define HALMAK_LAYER_ENABLE
-//#define MINIMAK_LAYER_ENABLE
-//#define MINIMAK_8_LAYER_ENABLE
-//#define MINIMAK_12_LAYER_ENABLE
-
-// BEAKL
-// #define BEAKL15_LAYER_ENABLE
-//#define BEAKL19_LAYER_ENABLE
-//#define BEAKL27_LAYER_ENABLE
-//#define BEAKLWI_LAYER_ENABLE
-
-// carpalx layouts
-//#define CARPALX_QFMLWY_LAYER_ENABLE
-//#define CARPALX_QGMLWB_LAYER_ENABLE
-//#define CARPALX_QGMLWY_LAYER_ENABLE
-
-// alternate layouts
-//#define MALTRON_LAYER_ENABLE
-//#define EUCALYN_LAYER_ENABLE
-//#define HANDS_UP_LAYER_ENABLE
-//#define RSTHD_LAYER_ENABLE
-//#define HANDS_UP_LAYER_ENABLE
-//#define WHITE_LAYER_ENABLE
-//#define ISRT_LAYER_ENABLE
-//#define SOUL_LAYER_ENABLE
-//#define NIRO_LAYER_ENABLE
-//#define ASSET_LAYER_ENABLE
-//#define WHORF_LAYER_ENABLE
-//#define WHORF6_LAYER_ENABLE
-
-// mtgap and relatives
-//#define MTGAP_LAYER_ENABLE
-//#define CTGAP_LAYER_ENABLE
-//#define APT_LAYER_ENABLE
-
-// Hands down
-//#define HD_NEU_NARROW_LAYER_ENABLE
-//#define HD_REF_LAYER_ENABLE
-//#define HD_DASH_LAYER_ENABLE
-//#define HD_ELAN_LAYER_ENABLE
-//#define HD_BRONZE_LAYER_ENABLE
-//#define HD_SILVER_LAYER_ENABLE
-//#define HD_PLATINUM_LAYER_ENABLE
-#define HD_GOLD_LAYER_ENABLE
-
-// 3x12 sized base layers
-//--------------------------
-//#define HD_NEU_LAYER_ENABLE
-
-// additionally all these have accent characters on base layer.
-//#define BEPO_LAYER_ENABLE
-//#define OPTIMOT_LAYER_ENABLE
-//#define BEAKL19bis_LAYER_ENABLE
-
-
-// enable transient function layers.
-#define SYMBOL_LAYER_ENABLE
-#define NAV_LAYER_ENABLE
-// #define MOUSE_LAYER_ENABLE
-//#define TOPROWS_LAYER_ENABLE
-// #define LAYERS_LAYER_ENABLE - defunct. always on.
-#define KEYPAD_LAYER_ENABLE
-//#define ADJUST_LAYER_ENABLE
-//#define RGB_LAYER_ENABLE
-#define MEDIA_LAYER_ENABLE
-#define FUNC_LAYER_ENABLE
-
-
-// define alternate thumb definitions for the transient layers.
-#define MEDIA_LAYER_THUMBS MEDIA_THUMBS
-#define MOUSE_LAYER_THUMBS MOUSE_THUMBS
-#define NAV_LAYER_THUMBS TRNS_THUMBS
-#define KEYPAD_LAYER_THUMBS KEYPAD_THUMBS
-#define SYMB_LAYER_THUMBS SYMB_THUMBS
-#define TOPROWS_LAYER_THUMBS DEFAULT
-
-// Extra character layers.
-// Bepo has dead keys (altgr) and accented keycodes
-// A layer of accented keys
-// #define ACCENTS_LAYER_ENABLE
-// A layer of dead keys
-// #define MORTE_LAYER_ENABLE
-// A layer of the most popular accented keys and dead keys
-// #define ACCENTS_MORTE_LAYER_ENABLE
-
-// Functional layer choices.
-/* configure the function layers. */
-/* They have to be turned on above. */
-/* Choose one of each as desired. */
-/* There are reasonable defaults */
-/* for each if nothing is defined. */
-
-/* nav */
-//#define NAV_FULL // monolithic, two sided nav with mouse and arrows.
-//#define NAV_FULL_LOCK_MODS // Replace left mouse buttons with lockmods.
-
-// Just the non mouse bits, with lock mods, n-shot mods on the left.
-// if mousekeys enabled, adds a mouse layer accessible via smart lock.
-// #define NAV_NO_MOUSE
-#define NAV_MIRYOKU
-#define NAV_MOUSE_MIRYOKU
-
-
-/* keypads */
-// beakl keypads are usual, if not chosen, regular keypads will be used.
-// left side is the default.
-// Beakl, except for WI, is only on the left side.
-// Miryoku is on the left also.
-
-//#define KEYPAD_RIGHT
-//#define KEYPAD_BEAKL // beakl doesn't have a rightside, swap hands?
-//#define KEYPAD_MODS // give mods on the other side instead of funcs.
-//#define KEYPAD_BEAKL_WI // right side with hexpad on left.
-#define KEYPAD_MIRYOKU // use the miryoku keypad
-// the default if nothing chosen,
-// is a functionpad on the left and normal keypad on the right.
-
-// funcpad from miryoku
-#define FUNCPAD_MIRYOKU
-
-
-/* symbols */
-// pick one of these or get the default.
-//#define SYMBOL_BEAKL // original - the default if nothing else.
-//#define SYMBOL_BEAKL_EXT // extended for non beakl base layers.
-//#define SYMBOL_BEAKL_EXT_VI // extended with vi keybinding in mind.
-//#define SYMBOL_BEAKL_C // more alterations by frequency
-// #define SYMBOL_NEO // The symbol layer from the Neo layout.
-#define SYMBOL_MIRYOKU // minimalist symbols after miryoku
-//#define SYMBOL_BEAKL_WI // original wi
-
-
-/* toprows. */
-// The default, if not defined, is a standard qwerty set of rows.
-// symbols, numbers, function keys. Numbers on the home row.
-
-// #define TOPROWS_BKL_15_NUMS // center row with Beakl15 order. 40123 76598.
-// #define TOPROWS_BKL_19_NUMS // Beakl 19 order: 32104 76598
-//#define TOPROWS_MOD // beakl 15 nums, oneshot and smart lock mods. no Fkeys.
-
-
-#endif
diff --git a/users/ericgebhart/mod_layers/alt_mods.h b/users/ericgebhart/mod_layers/alt_mods.h
deleted file mode 100644
index db13ee041d..0000000000
--- a/users/ericgebhart/mod_layers/alt_mods.h
+++ /dev/null
@@ -1,129 +0,0 @@
-#pragma once
-/*
- Copyright 2018-2022 Eric Gebhart <e.a.gebhart@gmail.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/>.
-*/
-//
-// non Home row mods, mod layer.
-
-// MOD_ROW variants.
-// input 5 get six, left and right language specific outer edge keys.
-
-// no edge keys.
-// input 5 get 5 with mods applied.
-
-// input 6 get 6 with mods applied.
-
-// base cols in out. 5, 5_6, 6.
-// input column count, output column count, if different.
-
-// L_5 Left R_5 Right.
-// K01, K02, K03, K04, K05 - K01, K02, K03, K04, K05
-// pky, rng, mdl, idx, idx - idx, idx, mdl, rng, pnky
-
-// ROW0 - Number row.
-// LEFT.
-#define ROW0L_5_alt(K01, K02, K03, K04, K05) \
- K01, K02, K03, K04, K05
-// take and put an extra column in front. Mod K01 how you want it.
-#define ROW0L_6_alt(K01, K02, K03, K04, K05, K06) K01, \
- ROW0L_5_alt(K02, K03, K04, K05, K06)
-
-// 5 into 6, derivitive of the first two.
-#define ROW0L_5_6_alt(K01, K02, K03, K04, K05) \
- ROW0L_6_alt(LEFT_0, K01, K02, K03, K04, K05)
-
-// RIGHT.
-#define ROW0R_5_alt(K01, K02, K03, K04, K05) \
- K01, K02, K03, K04, K05
-// take and put an extra column in front. Mod K01 how you want it.
-#define ROW0R_6_alt(K01, K02, K03, K04, K05, K06) \
- ROW0R_5_alt(K01, K02, K03, K04, K05), K06
-
-// 5 into 6, derivitive of the first two.
-#define ROW0R_5_6_alt(K01, K02, K03, K04, K05) \
- ROW0R_6_alt(K01, K02, K03, K04, K05, RIGHT_0)
-
-
-// ROW1
-// LEFT.
-#define ROW1L_5_alt(K01, K02, K03, K04, K05) \
- K01, K02, K03, K04, K05
-// take and put an extra column in front. Mod K01 how you want it.
-#define ROW1L_6_alt(K01, K02, K03, K04, K05, K06) K01, \
- ROW1L_5_alt(K02, K03, K04, K05, K06)
-
-// 5 into 6, derivitive of the first two.
-#define ROW1L_5_6_alt(K01, K02, K03, K04, K05) \
- ROW1L_6_alt(LEFT_1, K01, K02, K03, K04, K05)
-
-// RIGHT.
-#define ROW1R_5_alt(K01, K02, K03, K04, K05) \
- K01, K02, K03, K04, K05 \
- // take and put an extra column in front. Mod K01 how you want it.
-#define ROW1R_6_alt(K01, K02, K03, K04, K05, K06) \
- ROW1R_5_alt(K01, K02, K03, K04, K05), K06
-
-// 5 into 6, derivitive of the first two.
-#define ROW1R_5_6_alt(K01, K02, K03, K04, K05) \
- ROW1R_6_alt(K01, K02, K03, K04, K05, RIGHT_1)
-
-
-// HOME ROW - ROW2
-// LEFT.
-#define ROW2L_5_alt(K01, K02, K03, K04, K05) \
- K01, K02, LT(_NAV, K03), MT(MOD_LSFT, K04), K05
-// take and put an extra column in front. Mod K01 how you want it.
-#define ROW2L_6_alt(K01, K02, K03, K04, K05, K06) K01, \
- ROW2L_5_alt(K02, K03, K04, K05, K06)
-
-// 5 into 6, derivitive of the first two.
-#define ROW2L_5_6_alt(K01, K02, K03, K04, K05) \
- ROW2L_6_alt(LEFT_2, K01, K02, K03, K04, K05)
-
-// RIGHT.
-#define ROW2R_5_alt(K01, K02, K03, K04, K05) \
- K01, MT(MOD_LSFT, K02), LT(_NAV, K03), K04, K05 \
- // take and put an extra column in front. Mod K01 how you want it.
-#define ROW2R_6_alt(K01, K02, K03, K04, K05, K06) \
- ROW2R_5_alt(K01, K02, K03, K04, K05), K06
-
-// 5 into 6, derivitive of the first two.
-#define ROW2R_5_6_alt(K01, K02, K03, K04, K05) \
- ROW2R_6_alt(K01, K02, K03, K04, K05, RIGHT_2)
-
-
-// ROW 3
-// LEFT.
-#define ROW3L_5_alt(K01, K02, K03, K04, K05) \
- K01, K02, LT(_NAV, K03), K04, MT(MOD_LSFT, K05)
-// take and put an extra column in front. Mod K01 how you want it.
-#define ROW3L_6_alt(K01, K02, K03, K04, K05, K06) K01, \
- ROW3L_5_alt(K02, K03, K04, K05, K06)
-
-// 5 into 6, derivitive of the first two.
-#define ROW3L_5_6_alt(K01, K02, K03, K04, K05) \
- ROW3L_6_alt(LEFT_3, K01, K02, K03, K04, K05)
-
-// RIGHT.
-#define ROW3R_5_alt(K01, K02, K03, K04, K05) \
- K01, K02, K03, K04, K05
-// take and put an extra column in front. Mod K01 how you want it.
-#define ROW3R_6_alt(K01, K02, K03, K04, K05, K06) K01, \
- ROW3R_5_alt(K02, K03, K04, K05, K06)
-
-// 5 into 6, derivitive of the first two.
-#define ROW3R_5_6_alt(K01, K02, K03, K04, K05) \
- ROW3R_6_alt(K01, K02, K03, K04, K05, RIGHT_3)
diff --git a/users/ericgebhart/mod_layers/hrm_gacs.h b/users/ericgebhart/mod_layers/hrm_gacs.h
deleted file mode 100644
index 4bcf092732..0000000000
--- a/users/ericgebhart/mod_layers/hrm_gacs.h
+++ /dev/null
@@ -1,130 +0,0 @@
-#pragma once
-/*
- Copyright 2018-2022 Eric Gebhart <e.a.gebhart@gmail.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/>.
-*/
-// Home row mods variant of mod layers.
-
-// MOD_ROW
-// variants.
-// input 5 get six, left and right language specific outer edge keys.
-
-// no edge keys.
-// input 5 get 5 with mods applied.
-
-// input 6 get 6 with mods applied.
-
-// base cols in out. 5, 5_6, 6.
-// input column count, output column count, if different.
-
-// ROW0 - Number row.
-// LEFT.
-#define ROW0L_5_hrm_gacs(K01, K02, K03, K04, K05) \
- K01, K02, K03, K04, K05
-// take and put an extra column in front. Mod K01 how you want it.
-#define ROW0L_6_hrm_gacs(K01, K02, K03, K04, K05, K06) K01, \
- ROW0L_5_hrm_gacs(K02, K03, K04, K05, K06)
-
-// 5 into 6, derivitive of the first two.
-#define ROW0L_5_6_hrm_gacs(K01, K02, K03, K04, K05) \
- ROW0L_6_hrm_gacs(LEFT_0, K01, K02, K03, K04, K05)
-
-// RIGHT.
-#define ROW0R_5_hrm_gacs(K01, K02, K03, K04, K05) \
- K01, K02, K03, K04, K05
-// take and put an extra column in front. Mod K01 how you want it.
-#define ROW0R_6_hrm_gacs(K01, K02, K03, K04, K05, K06) \
- ROW0R_5_hrm_gacs(K01, K02, K03, K04, K05), K06
-
-// 5 into 6, derivitive of the first two.
-#define ROW0R_5_6_hrm_gacs(K01, K02, K03, K04, K05) \
- ROW0R_6_hrm_gacs(K01, K02, K03, K04, K05, RIGHT_0)
-
-
-// ROW1
-// LEFT.
-#define ROW1L_5_hrm_gacs(K01, K02, K03, K04, K05) \
- K01, K02, K03, LT(_NAV, K04), K05
-// take and put an extra column in front. Mod K01 how you want it.
-#define ROW1L_6_hrm_gacs(K01, K02, K03, K04, K05, K06) K01, \
- ROW1L_5_hrm_gacs(K02, K03, K04, K05, K06)
-
-// 5 into 6, derivitive of the first two.
-#define ROW1L_5_6_hrm_gacs(K01, K02, K03, K04, K05) \
- ROW1L_6_hrm_gacs(LEFT_1, K01, K02, K03, K04, K05)
-
-// RIGHT.
-#define ROW1R_5_hrm_gacs(K01, K02, K03, K04, K05) \
- K01, K02, K03, K04, LT(_LAYERS, K05) \
- // take and put an extra column in front. Mod K01 how you want it.
-#define ROW1R_6_hrm_gacs(K01, K02, K03, K04, K05, K06) \
- ROW1R_5_hrm_gacs(K01, K02, K03, K04, K05), K06
-
-// 5 into 6, derivitive of the first two.
-#define ROW1R_5_6_hrm_gacs(K01, K02, K03, K04, K05) \
- ROW1R_6_hrm_gacs(K01, K02, K03, K04, K05, RIGHT_1)
-
-
-
-// HOME ROW - ROW2
-// home row, shift, alt, ctl, gui - gui, ctl, alt, shift.
-// using MT so we can specify left and right.
-// caps_word needs left and right shift.
-
-// LEFT.
-#define ROW2L_5_hrm_gacs(K01, K02, K03, K04, K05) \
- MT(MOD_LGUI, K01), MT(MOD_LALT, K02), MT(MOD_LCTL, K03), MT(MOD_LSFT, K04), K05
-// take and put an extra column in front. Mod K01 how you want it.
-#define ROW2L_6_hrm_gacs(K01, K02, K03, K04, K05, K06) K01, \
- ROW2L_5_hrm_gacs(K02, K03, K04, K05, K06)
-
-// 5 into 6, derivitive of the first two.
-#define ROW2L_5_6_hrm_gacs(K01, K02, K03, K04, K05) \
- ROW2L_6_hrm_gacs(LEFT_2, K01, K02, K03, K04, K05)
-
-// RIGHT.
-#define ROW2R_5_hrm_gacs(K01, K02, K03, K04, K05) \
- K01, MT(MOD_RSFT, K02), MT(MOD_RCTL, K03), MT(MOD_RALT, K04), MT(MOD_RGUI, K05) \
- // take and put an extra column in front. Mod K01 how you want it.
-#define ROW2R_6_hrm_gacs(K01, K02, K03, K04, K05, K06) \
- ROW2R_5_hrm_gacs(K01, K02, K03, K04, K05), K06
-
-// 5 into 6, derivitive of the first two.
-#define ROW2R_5_6_hrm_gacs(K01, K02, K03, K04, K05) \
- ROW2R_6_hrm_gacs(K01, K02, K03, K04, K05, RIGHT_2)
-
-
-// ROW 3
-// LEFT.
-#define ROW3L_5_hrm_gacs(K01, K02, K03, K04, K05) \
- K01, K02, K03, K04, K05
-// take and put an extra column in front. Mod K01 how you want it.
-#define ROW3L_6_hrm_gacs(K01, K02, K03, K04, K05, K06) K01, \
- ROW3L_5_hrm_gacs(K02, K03, K04, K05, K06)
-
-// 5 into 6, derivitive of the first two.
-#define ROW3L_5_6_hrm_gacs(K01, K02, K03, K04, K05) \
- ROW3L_6_hrm_gacs(LEFT_3, K01, K02, K03, K04, K05)
-
-// RIGHT.
-#define ROW3R_5_hrm_gacs(K01, K02, K03, K04, K05) \
- K01, LT(_NAV, K02), K03, LT(LANG_N(_SYMB), K04), K05
-// take and put an extra column in front. Mod K01 how you want it.
-#define ROW3R_6_hrm_gacs(K01, K02, K03, K04, K05, K06) K01, \
- ROW3R_5_hrm_gacs(K02, K03, K04, K05, K06)
-
-// 5 into 6, derivitive of the first two.
-#define ROW3R_5_6_hrm_gacs(K01, K02, K03, K04, K05) \
- ROW3R_6_hrm_gacs(K01, K02, K03, K04, K05, RIGHT_3)
diff --git a/users/ericgebhart/mod_layers/hrm_gacs_miryoku.h b/users/ericgebhart/mod_layers/hrm_gacs_miryoku.h
deleted file mode 100644
index 0238e9a567..0000000000
--- a/users/ericgebhart/mod_layers/hrm_gacs_miryoku.h
+++ /dev/null
@@ -1,130 +0,0 @@
-#pragma once
-/*
- Copyright 2018-2022 Eric Gebhart <e.a.gebhart@gmail.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/>.
-*/
-// Home row mods variant of mod layers.
-
-// MOD_ROW
-// variants.
-// input 5 get six, left and right language specific outer edge keys.
-
-// no edge keys.
-// input 5 get 5 with mods applied.
-
-// input 6 get 6 with mods applied.
-
-// base cols in out. 5, 5_6, 6.
-// input column count, output column count, if different.
-
-// ROW0 - Number row.
-// LEFT.
-#define ROW0L_5_miryoku_hrm_gacs(K01, K02, K03, K04, K05) \
- K01, K02, K03, K04, K05
-// take and put an extra column in front. Mod K01 how you want it.
-#define ROW0L_6_miryoku_hrm_gacs(K01, K02, K03, K04, K05, K06) K01, \
- ROW0L_5_miryoku_hrm_gacs(K02, K03, K04, K05, K06)
-
-// 5 into 6, derivitive of the first two.
-#define ROW0L_5_6_miryoku_hrm_gacs(K01, K02, K03, K04, K05) \
- ROW0L_6_miryoku_hrm_gacs(LEFT_0, K01, K02, K03, K04, K05)
-
-// RIGHT.
-#define ROW0R_5_miryoku_hrm_gacs(K01, K02, K03, K04, K05) \
- K01, K02, K03, K04, K05
-// take and put an extra column in front. Mod K01 how you want it.
-#define ROW0R_6_miryoku_hrm_gacs(K01, K02, K03, K04, K05, K06) \
- ROW0R_5_miryoku_hrm_gacs(K01, K02, K03, K04, K05), K06
-
-// 5 into 6, derivitive of the first two.
-#define ROW0R_5_6_miryoku_hrm_gacs(K01, K02, K03, K04, K05) \
- ROW0R_6_miryoku_hrm_gacs(K01, K02, K03, K04, K05, RIGHT_0)
-
-
-// ROW1
-// LEFT.
-#define ROW1L_5_miryoku_hrm_gacs(K01, K02, K03, K04, K05) \
- K01, K02, K03, LT(_NAV, K04), K05
-// take and put an extra column in front. Mod K01 how you want it.
-#define ROW1L_6_miryoku_hrm_gacs(K01, K02, K03, K04, K05, K06) K01, \
- ROW1L_5_miryoku_hrm_gacs(K02, K03, K04, K05, K06)
-
-// 5 into 6, derivitive of the first two.
-#define ROW1L_5_6_miryoku_hrm_gacs(K01, K02, K03, K04, K05) \
- ROW1L_6_miryoku_hrm_gacs(LEFT_1, K01, K02, K03, K04, K05)
-
-// RIGHT.
-#define ROW1R_5_miryoku_hrm_gacs(K01, K02, K03, K04, K05) \
- K01, K02, K03, K04, LT(_LAYERS, K05) \
- // take and put an extra column in front. Mod K01 how you want it.
-#define ROW1R_6_miryoku_hrm_gacs(K01, K02, K03, K04, K05, K06) \
- ROW1R_5_miryoku_hrm_gacs(K01, K02, K03, K04, K05), K06
-
-// 5 into 6, derivitive of the first two.
-#define ROW1R_5_6_miryoku_hrm_gacs(K01, K02, K03, K04, K05) \
- ROW1R_6_miryoku_hrm_gacs(K01, K02, K03, K04, K05, RIGHT_1)
-
-
-
-// HOME ROW - ROW2
-// home row, shift, alt, ctl, gui - gui, ctl, alt, shift.
-// using MT so we can specify left and right.
-// caps_word needs left and right shift.
-
-// LEFT.
-#define ROW2L_5_miryoku_hrm_gacs(K01, K02, K03, K04, K05) \
- MT(MOD_LGUI, K01), MT(MOD_LALT, K02), MT(MOD_LCTL, K03), MT(MOD_LSFT, K04), K05
-// take and put an extra column in front. Mod K01 how you want it.
-#define ROW2L_6_miryoku_hrm_gacs(K01, K02, K03, K04, K05, K06) K01, \
- ROW2L_5_miryoku_hrm_gacs(K02, K03, K04, K05, K06)
-
-// 5 into 6, derivitive of the first two.
-#define ROW2L_5_6_miryoku_hrm_gacs(K01, K02, K03, K04, K05) \
- ROW2L_6_miryoku_hrm_gacs(LEFT_2, K01, K02, K03, K04, K05)
-
-// RIGHT.
-#define ROW2R_5_miryoku_hrm_gacs(K01, K02, K03, K04, K05) \
- K01, MT(MOD_RSFT, K02), MT(MOD_RCTL, K03), MT(MOD_LALT, K04), MT(MOD_RGUI, K05) \
- // take and put an extra column in front. Mod K01 how you want it.
-#define ROW2R_6_miryoku_hrm_gacs(K01, K02, K03, K04, K05, K06) \
- ROW2R_5_miryoku_hrm_gacs(K01, K02, K03, K04, K05), K06
-
-// 5 into 6, derivitive of the first two.
-#define ROW2R_5_6_miryoku_hrm_gacs(K01, K02, K03, K04, K05) \
- ROW2R_6_miryoku_hrm_gacs(K01, K02, K03, K04, K05, RIGHT_2)
-
-
-// ROW 3
-// LEFT.
-#define ROW3L_5_miryoku_hrm_gacs(K01, K02, K03, K04, K05) \
- K01, MT(MOD_RALT, K02), K03, K04, K05
-// take and put an extra column in front. Mod K01 how you want it.
-#define ROW3L_6_miryoku_hrm_gacs(K01, K02, K03, K04, K05, K06) K01, \
- ROW3L_5_miryoku_hrm_gacs(K02, K03, K04, K05, K06)
-
-// 5 into 6, derivitive of the first two.
-#define ROW3L_5_6_miryoku_hrm_gacs(K01, K02, K03, K04, K05) \
- ROW3L_6_miryoku_hrm_gacs(LEFT_3, K01, K02, K03, K04, K05)
-
-// RIGHT.
-#define ROW3R_5_miryoku_hrm_gacs(K01, K02, K03, K04, K05) \
- K01, K02, K03, MT(MOD_RALT, K04), K05
-// take and put an extra column in front. Mod K01 how you want it.
-#define ROW3R_6_miryoku_hrm_gacs(K01, K02, K03, K04, K05, K06) K01, \
- ROW3R_5_miryoku_hrm_gacs(K02, K03, K04, K05, K06)
-
-// 5 into 6, derivitive of the first two.
-#define ROW3R_5_6_miryoku_hrm_gacs(K01, K02, K03, K04, K05) \
- ROW3R_6_miryoku_hrm_gacs(K01, K02, K03, K04, K05, RIGHT_3)
diff --git a/users/ericgebhart/mod_layers/hrm_gasc.h b/users/ericgebhart/mod_layers/hrm_gasc.h
deleted file mode 100644
index 6eacb13ad6..0000000000
--- a/users/ericgebhart/mod_layers/hrm_gasc.h
+++ /dev/null
@@ -1,130 +0,0 @@
-#pragma once
-/*
- Copyright 2018-2022 Eric Gebhart <e.a.gebhart@gmail.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/>.
-*/
-// Home row mods variant of mod layers.
-
-// MOD_ROW
-// variants.
-// input 5 get six, left and right language specific outer edge keys.
-
-// no edge keys.
-// input 5 get 5 with mods applied.
-
-// input 6 get 6 with mods applied.
-
-// base cols in out. 5, 5_6, 6.
-// input column count, output column count, if different.
-
-// ROW0 - Number row.
-// LEFT.
-#define ROW0L_5_hrm_gasc(K01, K02, K03, K04, K05) \
- K01, K02, K03, K04, K05
-// take and put an extra column in front. Mod K01 how you want it.
-#define ROW0L_6_hrm_gasc(K01, K02, K03, K04, K05, K06) K01, \
- ROW0L_5_hrm_gasc(K02, K03, K04, K05, K06)
-
-// 5 into 6, derivitive of the first two.
-#define ROW0L_5_6_hrm_gasc(K01, K02, K03, K04, K05) \
- ROW0L_6_hrm_gasc(LEFT_0, K01, K02, K03, K04, K05)
-
-// RIGHT.
-#define ROW0R_5_hrm_gasc(K01, K02, K03, K04, K05) \
- K01, K02, K03, K04, K05
-// take and put an extra column in front. Mod K01 how you want it.
-#define ROW0R_6_hrm_gasc(K01, K02, K03, K04, K05, K06) \
- ROW0R_5_hrm_gasc(K01, K02, K03, K04, K05), K06
-
-// 5 into 6, derivitive of the first two.
-#define ROW0R_5_6_hrm_gasc(K01, K02, K03, K04, K05) \
- ROW0R_6_hrm_gasc(K01, K02, K03, K04, K05, RIGHT_0)
-
-
-// ROW1
-// LEFT.
-#define ROW1L_5_hrm_gasc(K01, K02, K03, K04, K05) \
- K01, K02, K03, LT(_NAV, K04), K05
-// take and put an extra column in front. Mod K01 how you want it.
-#define ROW1L_6_hrm_gasc(K01, K02, K03, K04, K05, K06) K01, \
- ROW1L_5_hrm_gasc(K02, K03, K04, K05, K06)
-
-// 5 into 6, derivitive of the first two.
-#define ROW1L_5_6_hrm_gasc(K01, K02, K03, K04, K05) \
- ROW1L_6_hrm_gasc(LEFT_1, K01, K02, K03, K04, K05)
-
-// RIGHT.
-#define ROW1R_5_hrm_gasc(K01, K02, K03, K04, K05) \
- K01, K02, K03, K04, LT(_LAYERS, K05) \
- // take and put an extra column in front. Mod K01 how you want it.
-#define ROW1R_6_hrm_gasc(K01, K02, K03, K04, K05, K06) \
- ROW1R_5_hrm_gasc(K01, K02, K03, K04, K05), K06
-
-// 5 into 6, derivitive of the first two.
-#define ROW1R_5_6_hrm_gasc(K01, K02, K03, K04, K05) \
- ROW1R_6_hrm_gasc(K01, K02, K03, K04, K05, RIGHT_1)
-
-
-
-// HOME ROW - ROW2
-// home row, shift, alt, ctl, gui - gui, ctl, alt, shift.
-// using MT so we can specify left and right.
-// caps_word needs left and right shift.
-
-// LEFT.
-#define ROW2L_5_hrm_gasc(K01, K02, K03, K04, K05) \
- MT(MOD_LGUI, K01), MT(MOD_LALT, K02), MT(MOD_LSFT, K03), MT(MOD_LCTL, K04), K05
-// take and put an extra column in front. Mod K01 how you want it.
-#define ROW2L_6_hrm_gasc(K01, K02, K03, K04, K05, K06) K01, \
- ROW2L_5_hrm_gasc(K02, K03, K04, K05, K06)
-
-// 5 into 6, derivitive of the first two.
-#define ROW2L_5_6_hrm_gasc(K01, K02, K03, K04, K05) \
- ROW2L_6_hrm_gasc(LEFT_2, K01, K02, K03, K04, K05)
-
-// RIGHT.
-#define ROW2R_5_hrm_gasc(K01, K02, K03, K04, K05) \
- K01, MT(MOD_RCTL, K02), MT(MOD_RSFT, K03), MT(MOD_RALT, K04), MT(MOD_RGUI, K05) \
- // take and put an extra column in front. Mod K01 how you want it.
-#define ROW2R_6_hrm_gasc(K01, K02, K03, K04, K05, K06) \
- ROW2R_5_hrm_gasc(K01, K02, K03, K04, K05), K06
-
-// 5 into 6, derivitive of the first two.
-#define ROW2R_5_6_hrm_gasc(K01, K02, K03, K04, K05) \
- ROW2R_6_hrm_gasc(K01, K02, K03, K04, K05, RIGHT_2)
-
-
-// ROW 3
-// LEFT.
-#define ROW3L_5_hrm_gasc(K01, K02, K03, K04, K05) \
- K01, K02, K03, K04, K05
-// take and put an extra column in front. Mod K01 how you want it.
-#define ROW3L_6_hrm_gasc(K01, K02, K03, K04, K05, K06) K01, \
- ROW3L_5_hrm_gasc(K02, K03, K04, K05, K06)
-
-// 5 into 6, derivitive of the first two.
-#define ROW3L_5_6_hrm_gasc(K01, K02, K03, K04, K05) \
- ROW3L_6_hrm_gasc(LEFT_3, K01, K02, K03, K04, K05)
-
-// RIGHT.
-#define ROW3R_5_hrm_gasc(K01, K02, K03, K04, K05) \
- K01, LT(_NAV, K02), K03, LT(LANG_N(_SYMB), K04), K05
-// take and put an extra column in front. Mod K01 how you want it.
-#define ROW3R_6_hrm_gasc(K01, K02, K03, K04, K05, K06) K01, \
- ROW3R_5_hrm_gasc(K02, K03, K04, K05, K06)
-
-// 5 into 6, derivitive of the first two.
-#define ROW3R_5_6_hrm_gasc(K01, K02, K03, K04, K05) \
- ROW3R_6_hrm_gasc(K01, K02, K03, K04, K05, RIGHT_3)
diff --git a/users/ericgebhart/mod_layers/hrm_sacg.h b/users/ericgebhart/mod_layers/hrm_sacg.h
deleted file mode 100644
index f4408f78fb..0000000000
--- a/users/ericgebhart/mod_layers/hrm_sacg.h
+++ /dev/null
@@ -1,130 +0,0 @@
-#pragma once
-/*
- Copyright 2018-2022 Eric Gebhart <e.a.gebhart@gmail.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/>.
-*/
-// Home row mods variant of mod layers.
-
-// MOD_ROW
-// variants.
-// input 5 get six, left and right language specific outer edge keys.
-
-// no edge keys.
-// input 5 get 5 with mods applied.
-
-// input 6 get 6 with mods applied.
-
-// base cols in out. 5, 5_6, 6.
-// input column count, output column count, if different.
-
-// ROW0 - Number row.
-// LEFT.
-#define ROW0L_5_hrm_sacg(K01, K02, K03, K04, K05) \
- K01, K02, K03, K04, K05
-// take and put an extra column in front. Mod K01 how you want it.
-#define ROW0L_6_hrm_sacg(K01, K02, K03, K04, K05, K06) K01, \
- ROW0L_5_hrm_sacg(K02, K03, K04, K05, K06)
-
-// 5 into 6, derivitive of the first two.
-#define ROW0L_5_6_hrm_sacg(K01, K02, K03, K04, K05) \
- ROW0L_6_hrm_sacg(LEFT_0, K01, K02, K03, K04, K05)
-
-// RIGHT.
-#define ROW0R_5_hrm_sacg(K01, K02, K03, K04, K05) \
- K01, K02, K03, K04, K05
-// take and put an extra column in front. Mod K01 how you want it.
-#define ROW0R_6_hrm_sacg(K01, K02, K03, K04, K05, K06) \
- ROW0R_5_hrm_sacg(K01, K02, K03, K04, K05), K06
-
-// 5 into 6, derivitive of the first two.
-#define ROW0R_5_6_hrm_sacg(K01, K02, K03, K04, K05) \
- ROW0R_6_hrm_sacg(K01, K02, K03, K04, K05, RIGHT_0)
-
-
-// ROW1
-// LEFT.
-#define ROW1L_5_hrm_sacg(K01, K02, K03, K04, K05) \
- K01, K02, K03, LT(_NAV, K04), K05
-// take and put an extra column in front. Mod K01 how you want it.
-#define ROW1L_6_hrm_sacg(K01, K02, K03, K04, K05, K06) K01, \
- ROW1L_5_hrm_sacg(K02, K03, K04, K05, K06)
-
-// 5 into 6, derivitive of the first two.
-#define ROW1L_5_6_hrm_sacg(K01, K02, K03, K04, K05) \
- ROW1L_6_hrm_sacg(LEFT_1, K01, K02, K03, K04, K05)
-
-// RIGHT.
-#define ROW1R_5_hrm_sacg(K01, K02, K03, K04, K05) \
- K01, K02, K03, K04, LT(_LAYERS, K05) \
- // take and put an extra column in front. Mod K01 how you want it.
-#define ROW1R_6_hrm_sacg(K01, K02, K03, K04, K05, K06) \
- ROW1R_5_hrm_sacg(K01, K02, K03, K04, K05), K06
-
-// 5 into 6, derivitive of the first two.
-#define ROW1R_5_6_hrm_sacg(K01, K02, K03, K04, K05) \
- ROW1R_6_hrm_sacg(K01, K02, K03, K04, K05, RIGHT_1)
-
-
-
-// HOME ROW - ROW2
-// home row, shift, alt, ctl, gui - gui, ctl, alt, shift.
-// using MT so we can specify left and right.
-// caps_word needs left and right shift.
-
-// LEFT.
-#define ROW2L_5_hrm_sacg(K01, K02, K03, K04, K05) \
- MT(MOD_LSFT, K01), MT(MOD_LALT, K02), MT(MOD_LCTL, K03), MT(MOD_LGUI, K04), K05
-// take and put an extra column in front. Mod K01 how you want it.
-#define ROW2L_6_hrm_sacg(K01, K02, K03, K04, K05, K06) K01, \
- ROW2L_5_hrm_sacg(K02, K03, K04, K05, K06)
-
-// 5 into 6, derivitive of the first two.
-#define ROW2L_5_6_hrm_sacg(K01, K02, K03, K04, K05) \
- ROW2L_6_hrm_sacg(LEFT_2, K01, K02, K03, K04, K05)
-
-// RIGHT.
-#define ROW2R_5_hrm_sacg(K01, K02, K03, K04, K05) \
- K01, MT(MOD_RGUI, K02), MT(MOD_RCTL, K03), MT(MOD_RALT, K04), MT(MOD_RSFT, K05) \
- // take and put an extra column in front. Mod K01 how you want it.
-#define ROW2R_6_hrm_sacg(K01, K02, K03, K04, K05, K06) \
- ROW2R_5_hrm_sacg(K01, K02, K03, K04, K05), K06
-
-// 5 into 6, derivitive of the first two.
-#define ROW2R_5_6_hrm_sacg(K01, K02, K03, K04, K05) \
- ROW2R_6_hrm_sacg(K01, K02, K03, K04, K05, RIGHT_2)
-
-
-// ROW 3
-// LEFT.
-#define ROW3L_5_hrm_sacg(K01, K02, K03, K04, K05) \
- K01, K02, K03, K04, K05
-// take and put an extra column in front. Mod K01 how you want it.
-#define ROW3L_6_hrm_sacg(K01, K02, K03, K04, K05, K06) K01, \
- ROW3L_5_hrm_sacg(K02, K03, K04, K05, K06)
-
-// 5 into 6, derivitive of the first two.
-#define ROW3L_5_6_hrm_sacg(K01, K02, K03, K04, K05) \
- ROW3L_6_hrm_sacg(LEFT_3, K01, K02, K03, K04, K05)
-
-// RIGHT.
-#define ROW3R_5_hrm_sacg(K01, K02, K03, K04, K05) \
- K01, LT(_NAV, K02), K03, LT(LANG_N(_SYMB), K04), K05
-// take and put an extra column in front. Mod K01 how you want it.
-#define ROW3R_6_hrm_sacg(K01, K02, K03, K04, K05, K06) K01, \
- ROW3R_5_hrm_sacg(K02, K03, K04, K05, K06)
-
-// 5 into 6, derivitive of the first two.
-#define ROW3R_5_6_hrm_sacg(K01, K02, K03, K04, K05) \
- ROW3R_6_hrm_sacg(K01, K02, K03, K04, K05, RIGHT_3)
diff --git a/users/ericgebhart/mod_layers/hrs_nav.h b/users/ericgebhart/mod_layers/hrs_nav.h
deleted file mode 100644
index 3075a37768..0000000000
--- a/users/ericgebhart/mod_layers/hrs_nav.h
+++ /dev/null
@@ -1,126 +0,0 @@
-#pragma once
-/*
- Copyright 2018-2022 Eric Gebhart <e.a.gebhart@gmail.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/>.
-*/
-//
-// shift on home row pinkies, nav on home row middle finger.
-
-// no edge keys.
-// input 5 get 5 with mods applied.
-
-// input 6 get 6 with mods applied.
-
-// base cols in out. 5, 5_6, 6.
-// input column count, output column count, if different.
-
-// L_5 Left R_5 Right.
-// K01, K02, K03, K04, K05 - K01, K02, K03, K04, K05
-// pky, rng, mdl, idx, idx - idx, idx, mdl, rng, pnky
-
-// ROW0 - Number row.
-// LEFT.
-#define ROW0L_5_hrs_nav(K01, K02, K03, K04, K05) \
- K01, K02, K03, K04, K05
-// take and put an extra column in front. Mod K01 how you want it.
-#define ROW0L_6_hrs_nav(K01, K02, K03, K04, K05, K06) K01, \
- ROW0L_5_hrs_nav(K02, K03, K04, K05, K06)
-
-// 5 into 6, derivitive of the first two.
-#define ROW0L_5_6_hrs_nav(K01, K02, K03, K04, K05) \
- ROW0L_6_hrs_nav(LEFT_0, K01, K02, K03, K04, K05)
-
-// RIGHT.
-#define ROW0R_5_hrs_nav(K01, K02, K03, K04, K05) \
- K01, K02, K03, K04, K05
-// take and put an extra column in front. Mod K01 how you want it.
-#define ROW0R_6_hrs_nav(K01, K02, K03, K04, K05, K06) \
- ROW0R_5_hrs_nav(K01, K02, K03, K04, K05), K06
-
-// 5 into 6, derivitive of the first two.
-#define ROW0R_5_6_hrs_nav(K01, K02, K03, K04, K05) \
- ROW0R_6_hrs_nav(K01, K02, K03, K04, K05, RIGHT_0)
-
-
-// ROW1
-// LEFT.
-#define ROW1L_5_hrs_nav(K01, K02, K03, K04, K05) \
- K01, K02, K03, K04, K05
-// take and put an extra column in front. Mod K01 how you want it.
-#define ROW1L_6_hrs_nav(K01, K02, K03, K04, K05, K06) K01, \
- ROW1L_5_hrs_nav(K02, K03, K04, K05, K06)
-
-// 5 into 6, derivitive of the first two.
-#define ROW1L_5_6_hrs_nav(K01, K02, K03, K04, K05) \
- ROW1L_6_hrs_nav(LEFT_1, K01, K02, K03, K04, K05)
-
-// RIGHT.
-#define ROW1R_5_hrs_nav(K01, K02, K03, K04, K05) \
- K01, K02, K03, K04, K05 \
- // take and put an extra column in front. Mod K01 how you want it.
-#define ROW1R_6_hrs_nav(K01, K02, K03, K04, K05, K06) \
- ROW1R_5_hrs_nav(K01, K02, K03, K04, K05), K06
-
-// 5 into 6, derivitive of the first two.
-#define ROW1R_5_6_hrs_nav(K01, K02, K03, K04, K05) \
- ROW1R_6_hrs_nav(K01, K02, K03, K04, K05, RIGHT_1)
-
-
-// HOME ROW - ROW2
-// LEFT.
-#define ROW2L_5_hrs_nav(K01, K02, K03, K04, K05) \
- MT(MOD_LSFT, K01), K02, LT(_NAV, K03), K04, K05
-// take and put an extra column in front. Mod K01 how you want it.
-#define ROW2L_6_hrs_nav(K01, K02, K03, K04, K05, K06) K01, \
- ROW2L_5_hrs_nav(K02, K03, K04, K05, K06)
-
-// 5 into 6, derivitive of the first two.
-#define ROW2L_5_6_hrs_nav(K01, K02, K03, K04, K05) \
- ROW2L_6_hrs_nav(LEFT_2, K01, K02, K03, K04, K05)
-
-// RIGHT.
-#define ROW2R_5_hrs_nav(K01, K02, K03, K04, K05) \
- K01, K02, LT(_NAV, K03), K04, MT(MOD_LSFT, K05) \
- // take and put an extra column in front. Mod K01 how you want it.
-#define ROW2R_6_hrs_nav(K01, K02, K03, K04, K05, K06) \
- ROW2R_5_hrs_nav(K01, K02, K03, K04, K05), K06
-
-// 5 into 6, derivitive of the first two.
-#define ROW2R_5_6_hrs_nav(K01, K02, K03, K04, K05) \
- ROW2R_6_hrs_nav(K01, K02, K03, K04, K05, RIGHT_2)
-
-
-// ROW 3
-// LEFT.
-#define ROW3L_5_hrs_nav(K01, K02, K03, K04, K05) \
- K01, K02, LT(_NAV, K03), K04, MT(MOD_LSFT, K05)
-// take and put an extra column in front. Mod K01 how you want it.
-#define ROW3L_6_hrs_nav(K01, K02, K03, K04, K05, K06) K01, \
- ROW3L_5_hrs_nav(K02, K03, K04, K05, K06)
-
-// 5 into 6, derivitive of the first two.
-#define ROW3L_5_6_hrs_nav(K01, K02, K03, K04, K05) \
- ROW3L_6_hrs_nav(LEFT_3, K01, K02, K03, K04, K05)
-
-// RIGHT.
-#define ROW3R_5_hrs_nav(K01, K02, K03, K04, K05) \
- K01, K02, K03, K04, K05
-// take and put an extra column in front. Mod K01 how you want it.
-#define ROW3R_6_hrs_nav(K01, K02, K03, K04, K05, K06) K01, \
- ROW3R_5_hrs_nav(K02, K03, K04, K05, K06)
-
-// 5 into 6, derivitive of the first two.
-#define ROW3R_5_6_hrs_nav(K01, K02, K03, K04, K05) \
- ROW3R_6_hrs_nav(K01, K02, K03, K04, K05, RIGHT_3)
diff --git a/users/ericgebhart/mod_layers/mod_layer.h b/users/ericgebhart/mod_layers/mod_layer.h
deleted file mode 100644
index 2345d30c5b..0000000000
--- a/users/ericgebhart/mod_layers/mod_layer.h
+++ /dev/null
@@ -1,155 +0,0 @@
-#pragma once
-
-/*
- Copyright 2018 Eric Gebhart <e.a.gebhart@gmail.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/>.
-*/
-
-// define our rows for the mod layer
-// takes 5 keycodes, adds mods, and left and right edge keys.
-// So we get keycodes in groups of 6.
-//
-// #define LANG_IS BEPO // to get Bepo substititions for keys and LTs.
-// #define NO_EDGE_COL // for 5 column keyboards with no sixth column.
-//
-// wrap layers that have alternates for other locales with LANG_N
-// this will change the name, from _SYMB to _SYMB_BP as needed.
-//
-// Home Row mods and other things like that go here.
-
-#include "keycodes.h"
-#include "alt_mods.h"
-#include "hrm_sacg.h"
-#include "hrm_gacs.h"
-#include "hrm_gacs_miryoku.h"
-#include "hrm_gasc.h"
-#include "hrs_nav.h"
-#include "trns_mods.h"
-
-// redefined by the map as needed.
-//#base_cols_in_out 5_6 // 5, 5_6, 6
-// MOD_ROW
-// variants.
-// input 5 get six, left and right language specific outer edge keys.
-
-// no edge keys.
-// input 5 get 5 with mods applied.
-
-// input 6 get 6 with mods applied.
-
-// base cols in out. 5, 5_6, 6.
-// input column count, output column count, if different.
-
-#define CONCATENATER(a, ...) a ## __VA_ARGS__
-#define CATR(a, ...) CONCATENATER(a, __VA_ARGS__)
-#define CONCATENATER2(a, ...) a ## __VA_ARGS__
-#define CATR2(a, ...) CONCATENATER2(a, __VA_ARGS__)
-#define CONCATENATER3(a, ...) a ## __VA_ARGS__
-#define CATR3(a, ...) CONCATENATER3(a, __VA_ARGS__)
-
-// mod layer name construction. add new layer extensions here.
-// TRNS, ALT, HRM_GACS, HRM_SCAG, HRM_GASC, MIRYOKU_HRM_GASC
-#define MOD_EXT CATR3(MODS_ARE, _MOD)
-#define TRNS_MOD _trns
-#define HRM_SCAG_MOD _hrm_scag
-#define HRM_GACS_MOD _hrm_gacs
-#define HRM_GASC_MOD _hrm_gasc
-#define MIRYOKU_HRM_GACS_MOD _miryoku_hrm_gacs
-#define ALT_MOD _alt
-#define HRS_NAV_MOD _hrs_nav
-
-// MOD_COL_NAME(ROW0L) -- > ROW0L_5, ROW0L_6, ROW0L_5_6
-#define MOD_COL_NAME(NAME) CATR2(CATR(NAME, _), BASE_COLS_IN_OUT)
-// MOD_ROW(ROW0L) -- > ROW0L_5_alt, ROW0L_6_alt, ROW0L_5_6_alt
-#define MOD_ROW(NAME) CATR3(MOD_COL_NAME(NAME), MOD_EXT)
-
-// change the columns in/out according to the map and the keyboard.
-//#define BASE_COLS_IN_OUT 5_6 // 5, 5_6, 6
-
-
-// These make it easier to create base layer layouts.
-// They take 3x10, or 3x12 and make a 3x12 with mods.
-// this isnt always useful, sometimes rows need to be
-// specified explicitly in the layout. ie. layouts with
-// extra keys in the middle.
-
-
-#define MOD_CORE_3x5( \
- K01, K02, K03, K04, K05, \
- K06, K07, K08, K09, K0A, \
- K11, K12, K13, K14, K15, \
- K16, K17, K18, K19, K1A, \
- K21, K22, K23, K24, K25, \
- K26, K27, K28, K29, K2A) \
- MOD_ROW(ROW1L)(K01, K02, K03, K04, K05), \
- MOD_ROW(ROW1R)(K06, K07, K08, K09, K0A), \
- MOD_ROW(ROW2L)(K11, K12, K13, K14, K15), \
- MOD_ROW(ROW2R)(K16, K17, K18, K19, K1A), \
- MOD_ROW(ROW3L)(K21, K22, K23, K24, K25), \
- MOD_ROW(ROW3R)(K26, K27, K28, K29, K2A)
-
-
-#define MOD_CORE_3x6(K01, K02, K03, K04, K05, K06, \
- K07, K08, K09, K0A, K0B, K0C, \
- K11, K12, K13, K14, K15, K16, \
- K17, K18, K19, K1A, K1B, K1C, \
- K21, K22, K23, K24, K25, K26, \
- K27, K28, K29, K2A, K2B, K2C) \
- MOD_ROW(ROW1L)(K01, K02, K03, K04, K05, K06), \
- MOD_ROW(ROW1R)(K07, K08, K09, K0A, K0B, K0C), \
- MOD_ROW(ROW2L)(K11, K12, K13, K14, K15, K16), \
- MOD_ROW(ROW2R)(K17, K18, K19, K1A, K1B, K1C), \
- MOD_ROW(ROW3L)(K21, K22, K23, K24, K25, K26), \
- MOD_ROW(ROW3R)(K27, K28, K29, K2A, K2B, K2C)
-
-
-/// 4 rows for keyboards with number rows.
-#define MOD_CORE_4x5( \
- K01, K02, K03, K04, K05, \
- K06, K07, K08, K09, K0A, \
- K11, K12, K13, K14, K15, \
- K16, K17, K18, K19, K1A, \
- K21, K22, K23, K24, K25, \
- K26, K27, K28, K29, K2A, \
- K31, K32, K33, K34, K35, \
- K36, K37, K38, K39, K3A) \
- MOD_ROW(ROW0L)(K01, K02, K03, K04, K05), \
- MOD_ROW(ROW0R)(K06, K07, K08, K09, K0A), \
- MOD_CORE_3x5(K11, K12, K13, K14, K15, \
- K16, K17, K18, K19, K1A, \
- K21, K22, K23, K24, K25, \
- K26, K27, K28, K29, K2A, \
- K31, K32, K33, K34, K35, \
- K36, K37, K38, K39, K3A)
-
-
-
-#define MOD_CORE_4x6(K01, K02, K03, K04, K05, K06, \
- K07, K08, K09, K0A, K0B, K0C, \
- K11, K12, K13, K14, K15, K16, \
- K17, K18, K19, K1A, K1B, K1C, \
- K21, K22, K23, K24, K25, K26, \
- K27, K28, K29, K2A, K2B, K2C, \
- K31, K32, K33, K34, K35, K36, \
- K37, K38, K39, K3A, K3B, K3C \
- ) \
- MOD_ROW(ROW0L)(K01, K02, K03, K04, K05, K06), \
- MOD_ROW(ROW0R)(K07, K08, K09, K0A, K0B, K0C), \
- MOD_CORE_3x6(K11, K12, K13, K14, K15, K16, \
- K17, K18, K19, K1A, K1B, K1C, \
- K21, K22, K23, K24, K25, K26, \
- K27, K28, K29, K2A, K2B, K2C, \
- K31, K32, K33, K34, K35, K36, \
- K37, K38, K39, K3A, K3B, K3C)
diff --git a/users/ericgebhart/mod_layers/trns_mods.h b/users/ericgebhart/mod_layers/trns_mods.h
deleted file mode 100644
index 06dfb06edd..0000000000
--- a/users/ericgebhart/mod_layers/trns_mods.h
+++ /dev/null
@@ -1,129 +0,0 @@
-#pragma once
-/*
- Copyright 2018-2022 Eric Gebhart <e.a.gebhart@gmail.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/>.
-*/
-//
-// non Home row mods, mod layer.
-
-// MOD_ROW variants.
-// input 5 get six, left and right language specific outer edge keys.
-
-// no edge keys.
-// input 5 get 5 with mods applied.
-
-// input 6 get 6 with mods applied.
-
-// base cols in out. 5, 5_6, 6.
-// input column count, output column count, if different.
-
-// L_5 Left R_5 Right.
-// K01, K02, K03, K04, K05 - K01, K02, K03, K04, K05
-// pky, rng, mdl, idx, idx - idx, idx, mdl, rng, pnky
-
-// ROW0 - Number row.
-// LEFT.
-#define ROW0L_5_trns(K01, K02, K03, K04, K05) \
- K01, K02, K03, K04, K05
-// take and put an extra column in front. Mod K01 how you want it.
-#define ROW0L_6_trns(K01, K02, K03, K04, K05, K06) K01, \
- ROW0L_5_trns(K02, K03, K04, K05, K06)
-
-// 5 into 6, derivitive of the first two.
-#define ROW0L_5_6_trns(K01, K02, K03, K04, K05) \
- ROW0L_6_trns(LEFT_0, K01, K02, K03, K04, K05)
-
-// RIGHT.
-#define ROW0R_5_trns(K01, K02, K03, K04, K05) \
- K01, K02, K03, K04, K05
-// take and put an extra column in front. Mod K01 how you want it.
-#define ROW0R_6_trns(K01, K02, K03, K04, K05, K06) \
- ROW0R_5_trns(K01, K02, K03, K04, K05), K06
-
-// 5 into 6, derivitive of the first two.
-#define ROW0R_5_6_trns(K01, K02, K03, K04, K05) \
- ROW0R_6_trns(K01, K02, K03, K04, K05, RIGHT_0)
-
-
-// ROW1
-// LEFT.
-#define ROW1L_5_trns(K01, K02, K03, K04, K05) \
- K01, K02, K03, K04, K05
-// take and put an extra column in front. Mod K01 how you want it.
-#define ROW1L_6_trns(K01, K02, K03, K04, K05, K06) K01, \
- ROW1L_5_trns(K02, K03, K04, K05, K06)
-
-// 5 into 6, derivitive of the first two.
-#define ROW1L_5_6_trns(K01, K02, K03, K04, K05) \
- ROW1L_6_trns(LEFT_1, K01, K02, K03, K04, K05)
-
-// RIGHT.
-#define ROW1R_5_trns(K01, K02, K03, K04, K05) \
- K01, K02, K03, K04, K05 \
- // take and put an extra column in front. Mod K01 how you want it.
-#define ROW1R_6_trns(K01, K02, K03, K04, K05, K06) \
- ROW1R_5_trns(K01, K02, K03, K04, K05), K06
-
-// 5 into 6, derivitive of the first two.
-#define ROW1R_5_6_trns(K01, K02, K03, K04, K05) \
- ROW1R_6_trns(K01, K02, K03, K04, K05, RIGHT_1)
-
-
-// HOME ROW - ROW2
-// LEFT.
-#define ROW2L_5_trns(K01, K02, K03, K04, K05) \
- K01, K02, K03, K04, K05
-// take and put an extra column in front. Mod K01 how you want it.
-#define ROW2L_6_trns(K01, K02, K03, K04, K05, K06) K01, \
- ROW2L_5_trns(K02, K03, K04, K05, K06)
-
-// 5 into 6, derivitive of the first two.
-#define ROW2L_5_6_trns(K01, K02, K03, K04, K05) \
- ROW2L_6_trns(LEFT_2, K01, K02, K03, K04, K05)
-
-// RIGHT.
-#define ROW2R_5_trns(K01, K02, K03, K04, K05) \
- K01, K02, K03, K04, K05 \
- // take and put an extra column in front. Mod K01 how you want it.
-#define ROW2R_6_trns(K01, K02, K03, K04, K05, K06) \
- ROW2R_5_trns(K01, K02, K03, K04, K05), K06
-
-// 5 into 6, derivitive of the first two.
-#define ROW2R_5_6_trns(K01, K02, K03, K04, K05) \
- ROW2R_6_trns(K01, K02, K03, K04, K05, RIGHT_2)
-
-
-// ROW 3
-// LEFT.
-#define ROW3L_5_trns(K01, K02, K03, K04, K05) \
- K01, K02, K03, K04, K05
-// take and put an extra column in front. Mod K01 how you want it.
-#define ROW3L_6_trns(K01, K02, K03, K04, K05, K06) K01, \
- ROW3L_5_trns(K02, K03, K04, K05, K06)
-
-// 5 into 6, derivitive of the first two.
-#define ROW3L_5_6_trns(K01, K02, K03, K04, K05) \
- ROW3L_6_trns(LEFT_3, K01, K02, K03, K04, K05)
-
-// RIGHT.
-#define ROW3R_5_trns(K01, K02, K03, K04, K05) \
- K01, K02, K03, K04, K05
-// take and put an extra column in front. Mod K01 how you want it.
-#define ROW3R_6_trns(K01, K02, K03, K04, K05, K06) K01, \
- ROW3R_5_trns(K02, K03, K04, K05, K06)
-
-// 5 into 6, derivitive of the first two.
-#define ROW3R_5_6_trns(K01, K02, K03, K04, K05) \
- ROW3R_6_trns(K01, K02, K03, K04, K05, RIGHT_3)
diff --git a/users/ericgebhart/oled/oled_cartes.c b/users/ericgebhart/oled/oled_cartes.c
deleted file mode 100644
index 8ab88e969e..0000000000
--- a/users/ericgebhart/oled/oled_cartes.c
+++ /dev/null
@@ -1,325 +0,0 @@
-/*
- Copyright 2018-2022 Eric Gebhart <e.a.gebhart@gmail.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/>.
-*/
-#ifdef OLED_CUSTOM_ENABLE
-
-#include "ericgebhart.h"
-
-void oled_render_layer_map(void) {
- uint8_t lyr = get_highest_layer(layer_state);
- if (lyr < _LAYERS) {
- switch (get_highest_layer(default_layer_state)) {
-
-#ifdef QWERTY_LAYER_ENABLE
- SHOW_MAP(_QWERTY)
-#endif
-
-#ifdef COLEMAK_DH_LAYER_ENABLE
- SHOW_MAP(_COLEMAK_DH)
-#endif
-
-#ifdef COLEMAK_LAYER_ENABLE
- SHOW_MAP(_COLEMAK)
-#endif
-#ifdef HALMAK_LAYER_ENABLE
- SHOW_MAP(_HALMAK)
-#endif
-#ifdef MINIMAK_LAYER_ENABLE
- SHOW_MAP(_MINIMAK)
-#endif
-#ifdef MINIMAK_8_LAYER_ENABLE
- SHOW_MAP(_MINIMAK_8)
-#endif
-#ifdef MINIMAK_12_LAYER_ENABLE
- SHOW_MAP(_MINIMAK_12)
-#endif
-
-#ifdef DVORAK_LAYER_ENABLE
- SHOW_MAP(_DVORAK)
-#endif
-#ifdef DVORAK_RLC_IU_LAYER_ENABLE
- SHOW_MAP(_DVORAK_RLC_IU)
-#endif
-#ifdef BOO_LAYER_ENABLE
- SHOW_MAP(_BOO)
-#endif
-#ifdef CAPEWELL_DVORAK_LAYER_ENABLE
- SHOW_MAP(_CAPEWELL_DVORAK)
-#endif
-#ifdef AHEI_LAYER_ENABLE
- SHOW_MAP(_AHEI)
-#endif
-
-#ifdef BEAKL27_LAYER_ENABLE
- SHOW_MAP(_BEAKL27)
-#endif
-
-#ifdef BEAKL15_LAYER_ENABLE
- SHOW_MAP(_BEAKL15)
-#endif
-
-#ifdef BEAKL19_LAYER_ENABLE
- SHOW_MAP(_BEAKL19)
-#endif
-
-#ifdef BEAKLWI_LAYER_ENABLE
- SHOW_MAP(_BEAKLWI)
-#endif
-
-#ifdef CARPALX_QFMLWY_LAYER_ENABLE
- SHOW_MAP(_CARPALX_QFMLWY)
-#endif
-
-#ifdef CARPALX_QGMLWB_LAYER_ENABLE
- SHOW_MAP(_CARPALX_QGMLWB)
-#endif
-
-#ifdef CARPALX_QGMLWY_LAYER_ENABLE
- SHOW_MAP(_CARPALX_QGMLWY)
-#endif
-
-#ifdef MTGAP_LAYER_ENABLE
- SHOW_MAP(_MTGAP)
-#endif
-
-#ifdef CTGAP_LAYER_ENABLE
- SHOW_MAP(_CTGAP)
-#endif
-
-#ifdef APT_LAYER_ENABLE
- SHOW_MAP(_APT)
-#endif
-
-#ifdef CANARY_LAYER_ENABLE
- SHOW_MAP(_CANARY)
-#endif
-
-
-#ifdef HD_NEU_LAYER_ENABLE
- SHOW_MAP(_HD_NEU)
-#endif
-
-#ifdef HD_NEU_NARROW_LAYER_ENABLE
- SHOW_MAP(_HD_NEU_NARROW)
-#endif
-
-#ifdef HD_TITANIUM_LAYER_ENABLE
- SHOW_MAP(_HD_TITANIUM)
-#endif
-
-#ifdef HD_GOLD_LAYER_ENABLE
- SHOW_MAP(_HD_GOLD)
-#endif
-
-#ifdef HD_PLATINUM_LAYER_ENABLE
- SHOW_MAP(_HD_PLATINUM)
-#endif
-
-#ifdef HD_SILVER_LAYER_ENABLE
- SHOW_MAP(_HD_SILVER)
-#endif
-
-#ifdef HD_BRONZE_LAYER_ENABLE
- SHOW_MAP(_HD_BRONZE)
-#endif
-
-#ifdef HD_ELAN_LAYER_ENABLE
- SHOW_MAP(_HD_ELAN)
-#endif
-
-#ifdef HD_DASH_LAYER_ENABLE
- SHOW_MAP(_HD_DASH)
-#endif
-
-#ifdef HD_REF_LAYER_ENABLE
- SHOW_MAP(_HD_REF)
-#endif
-
-#ifdef RSTHD_LAYER_ENABLE
- SHOW_MAP(_RSTHD)
-#endif
-
-#ifdef HANDS_UP_LAYER_ENABLE
- SHOW_MAP(_HANDS_UP)
-#endif
-#ifdef WHITE_LAYER_ENABLE
- SHOW_MAP(_WHITE)
-#endif
-#ifdef ISRT_LAYER_ENABLE
- SHOW_MAP(_ISRT)
-#endif
-#ifdef SOUL_LAYER_ENABLE
- SHOW_MAP(_SOUL)
-#endif
-#ifdef NIRO_LAYER_ENABLE
- SHOW_MAP(_NIRO)
-#endif
-#ifdef ASSET_LAYER_ENABLE
- SHOW_MAP(_ASSET)
-#endif
-#ifdef WHORF_LAYER_ENABLE
- SHOW_MAP(_WHORF)
-#endif
-#ifdef WHORF6_LAYER_ENABLE
- SHOW_MAP(_WHORF6)
-#endif
-
-#ifdef BEPO_LAYER_ENABLE
- SHOW_MAP(_BEPO)
-#endif
-
-#ifdef OPTIMOT_LAYER_ENABLE
- SHOW_MAP(_OPTIMOT)
-#endif
-
-#ifdef OPTIMOT_COMPACT_LAYER_ENABLE
- SHOW_MAP(_OPTIMOT_COMPACT)
-#endif
-
-#ifdef BEAKL19bis_LAYER_ENABLE
- SHOW_MAP(_BEAKL19bis)
-#endif
-
- }
-
- } else {
-
- switch (lyr) {
-#ifdef TOPROWS_LAYER_ENABLE
- LCASE(_TOPROWS)
-# ifdef TOPROWS_BKL_NUMS
-# ifdef TOPROWS_MOD
- CARTE_TOPROWS_MOD
-# else
-# ifdef TOPROWS_BKL_19_NUMS
- CARTE_TOPROWS_BKL19
-# else
- CARTE_TOPROWS
-# endif
-# endif
-# else // not beakl nums.
- CARTE_RAISE
-# endif
- break;
-#endif
-
-
- case _NAV:
-#ifdef NAV_FULL_LOCK_MODS
- CARTE_NAVA
-#endif
-#ifdef NAV_FULL
- CARTE_NAV
-#endif
-#ifdef NAV_NO_MOUSE
- CARTE_NAVnm
-#endif
-#ifdef NAV_MIRYOKU
- CARTE_NAV_miryoku
-#endif
- break;
-
-#ifdef MOUSE_LAYER_ENABLE
- case _NAVm:
-# ifdef NAV_MOUSE_MIRYOKU
- CARTE_NAVm_miryoku
-# else
- CARTE_NAVm
-# endif
- break;
-#endif
-
-#ifdef MEDIA_LAYER_ENABLE
- SHOW_MAP_S(_MEDIA)
-#endif
- SHOW_MAP_S(_LAYERS)
-
-#ifdef SYMBOL_LAYER_ENABLE
- LCASE(_SYMB)
-# ifdef SYMBOL_BEAKL
- CARTE_SYMB_BEAKL
-# endif
-# ifdef SYMBOL_BEAKL_EXT
- CARTE_SYMB_BEAKLA
-# endif
-# ifdef SYMBOL_BEAKL_EXT_VI
- CARTE_SYMB_BEAKLB
-# endif
-# ifdef SYMBOL_BEAKL_C
- CARTE_SYMB_BEAKLC
-# endif
-# ifdef SYMBOL_MIRYOKU
- CARTE_SYMB_MIRYOKU
-# endif
-# ifdef SYMBOL_BEAKL_WI
- CARTE_SYMB_BEAKL_WI
-# endif
-# ifdef SYMBOL_BEAKL_WI
- CARTE_SYMB_NEO
-# endif
- break;
-#endif
-
-#ifdef KEYAD_LAYER_ENABLE
- LCASE(_KEYPAD)
-#ifdef KEYPAD_BEAKL
-#ifdef KEYPAD_BEAKL_WI
- CARTE_KP_BKL_WI
-#endif
-#ifdef KEYPAD_MODS
- CARTE_KP_BKL_MODS
-#endif
-#if !defined(KEYPAD_MODS) && !defined(KEYPAD_BEAKL_WI)
- CARTE_KP_BKL_FUNC
-#endif
-#ifdef KEYPAD_MIRYOKU
- CARTE_KP_MIRYOKU
-#endif
-
-#else // not beakl.
-#ifdef KEYPAD_RIGHT
-#ifdef KEYPAD_MODS
- CARTE_MODS_KP
-#else
- CARTE_FP_KP
-#endif
-
-#else // not keypad right.
-#ifdef KEYPAD_MODS
- CARTE_KP_MODS
-#else
- CARTE_KP_FP // the final default.
-#endif
-#endif // end not keypad right.
-#endif // end not beakl
- break;
-#endif // end keypad.
-
-#ifdef MORTE_LAYER_ENABLE
- SHOW_MAP(_MORTE)
-#endif
-
-#ifdef ACCENTS_MORTE_LAYER_ENABLE
- SHOW_MAP(_ACCENTS_MORTE)
-#endif
-
-#ifdef ACCENTS_LAYER_ENABLE
- SHOW_MAP(_CARTE_ACCENTS)
-#endif
- }
- }
-}
-#endif
diff --git a/users/ericgebhart/oled/oled_layers.c b/users/ericgebhart/oled/oled_layers.c
deleted file mode 100644
index 57424d1d6c..0000000000
--- a/users/ericgebhart/oled/oled_layers.c
+++ /dev/null
@@ -1,252 +0,0 @@
-/*
- Copyright 2018-2022 Eric Gebhart <e.a.gebhart@gmail.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 "ericgebhart.h"
-#include <stdio.h>
-
-#ifdef OLED_CUSTOM_ENABLE
-
-void oled_render_default_layer_state(void) {
- //oled_write_P(PSTR("Layout: "), false);
- uint16_t layer = get_highest_layer(default_layer_state);
- char layer_str[8];
- snprintf(layer_str, sizeof(layer_str), "%u ",layer);
- oled_write(layer_str , false);
- switch (layer) {
-#ifdef DVORAK_LAYER_ENABLE
- WRITE_STR_LAYER(_DVORAK, "Dvorak")
-#endif
-#ifdef DVORAK_RLC_IU_LAYER_ENABLE
- WRITE_STR_LAYER(_DVORAK_RLC_IU_, "Dvorak-rlc")
-#endif
-#ifdef BOO_LAYER_ENABLE
- WRITE_STR_LAYER(_BOO, "Boo")
-#endif
-#ifdef CAPEWELL_DVORAK_LAYER_ENABLE
- WRITE_STR_LAYER(_CAPEWELL_DVORAK, "Capewell Dvorak")
-#endif
-#ifdef AHEI_LAYER_ENABLE
- WRITE_STR_LAYER(_AHEI, "Ahei")
-#endif
-
-#ifdef QWERTY_LAYER_ENABLE
- WRITE_STR_LAYER(_QWERTY, "Qwerty")
-#endif
-#ifdef WORKMAN_LAYER_ENABLE
- WRITE_STR_LAYER(_WORKMAN, "Workman")
-#endif
-#ifdef NORMAN_LAYER_ENABLE
- WRITE_STR_LAYER(_NORMAN, "Norman")
-#endif
-
-#ifdef COLEMAK_LAYER_ENABLE
- WRITE_STR_LAYER(_COLEMAK, "Colemak")
-#endif
-#ifdef COLEMAK_DH_LAYER_ENABLE
- WRITE_STR_LAYER(_COLEMAK_DH, "Colemak")
-#endif
-#ifdef HALMAK_LAYER_ENABLE
- WRITE_STR_LAYER(_HALMAK, "Halmak")
-#endif
-#ifdef MINIMAK_LAYER_ENABLE
- WRITE_STR_LAYER(_MINIMAK, "Minimak")
-#endif
-#ifdef MINIMAK_8_LAYER_ENABLE
- WRITE_STR_LAYER(_MINIMAK_8, "Minimak 8")
-#endif
-#ifdef MINIMAK_12_LAYER_ENABLE
- WRITE_STR_LAYER(_MINIMAK_12, "Minimak 12")
-#endif
-
-#ifdef BEAKL15_LAYER_ENABLE
- WRITE_STR_LAYER(_BEAKL15, "Beakl")
-#endif
-#ifdef BEAKL19_LAYER_ENABLE
- WRITE_STR_LAYER(_BEAKL19, "Beakl19")
-#endif
-#ifdef BEAKL27_LAYER_ENABLE
- WRITE_STR_LAYER(_BEAKL27, "Beakl27")
-#endif
-#ifdef BEAKLWI_LAYER_ENABLE
- WRITE_STR_LAYER(_BEAKLWI, "BeaklWi")
-#endif
-
-#ifdef CARPALX_QFMLWY_LAYER_ENABLE
- WRITE_STR_LAYER(_CARPALX_QFMLWY, "Carpalx qfmlwy")
-#endif
-
-#ifdef CARPALX_QGMLWB_LAYER_ENABLE
- WRITE_STR_LAYER(_CARPALX_QGMLWB, "Carpalx qgmlwb")
-#endif
-
-#ifdef CARPALX_QGMLWY_LAYER_ENABLE
- WRITE_STR_LAYER(_CARPALX_QGMLWY, "Carpalx qgmlwy")
-#endif
-
-#ifdef HD_NEU_LAYER_ENABLE
- WRITE_STR_LAYER(_HD_NEU, "HD Neu")
-#endif
-#ifdef HD_NEU_NARROW_LAYER_ENABLE
- WRITE_STR_LAYER(_HD_NEU_NARROW, "HD Neu N")
-#endif
-#ifdef HD_TITANIUM_LAYER_ENABLE
- WRITE_STR_LAYER(_HD_TITANIUM, "HD Titanium")
-#endif
-#ifdef HD_GOLD_LAYER_ENABLE
- WRITE_STR_LAYER(_HD_GOLD, "HD Gold")
-#endif
-#ifdef HD_SILVER_LAYER_ENABLE
- WRITE_STR_LAYER(_HD_SILVER, "HD Silver")
-#endif
-#ifdef HD_PLATINUM_LAYER_ENABLE
- WRITE_STR_LAYER(_HD_PLATINUM, "HD Platinum")
-#endif
-#ifdef HD_BRONZE_LAYER_ENABLE
- WRITE_STR_LAYER(_HD_BRONZE, "HD Bronze")
-#endif
-#ifdef HD_ELAN_LAYER_ENABLE
- WRITE_STR_LAYER(_HD_ELAN, "HD Elan")
-#endif
-#ifdef HD_DASH_LAYER_ENABLE
- WRITE_STR_LAYER(_HD_DASH, "HD Dash")
-#endif
-#ifdef HD_REF_LAYER_ENABLE
- WRITE_STR_LAYER(_HD_REF, "HD Ref")
-#endif
-
-#ifdef MTGAP_LAYER_ENABLE
- WRITE_STR_LAYER(_MTGAP, "Mtgap")
-#endif
-#ifdef CTGAP_LAYER_ENABLE
- WRITE_STR_LAYER(_CTGAP, "Ctgap")
-#endif
-#ifdef APT_LAYER_ENABLE
- WRITE_STR_LAYER(_APT, "Apt")
-#endif
-#ifdef CANARY_LAYER_ENABLE
- WRITE_STR_LAYER(_CANARY, "Canary")
-#endif
-
-#ifdef MALTRON_LAYER_ENABLE
- WRITE_STR_LAYER(_MALTRON, "Maltron")
-#endif
-#ifdef EUCALYN_LAYER_ENABLE
- WRITE_STR_LAYER(_EUCALYN, "Eucalyn")
-#endif
-#ifdef RSTHD_LAYER_ENABLE
- WRITE_STR_LAYER(_RSTHD, "Rsthd")
-#endif
-#ifdef HAND_UP_LAYER_ENABLE
- WRITE_STR_LAYER(_HANDS_UP, "Hands up")
-#endif
-#ifdef WHITE_LAYER_ENABLE
- WRITE_STR_LAYER(_WHITE, "White")
-#endif
-#ifdef ISRT_LAYER_ENABLE
- WRITE_STR_LAYER(_ISRT, "Isrt")
-#endif
-#ifdef SOUL_LAYER_ENABLE
- WRITE_STR_LAYER(_SOUL, "Soul")
-#endif
-#ifdef NIRO_LAYER_ENABLE
- WRITE_STR_LAYER(_NIRO, "Niro")
-#endif
-#ifdef ASSET_LAYER_ENABLE
- WRITE_STR_LAYER(_ASSET, "Asset")
-#endif
-#ifdef WHORF_LAYER_ENABLE
- WRITE_STR_LAYER(_WHORF, "Whorf")
-#endif
-#ifdef WHORF6_LAYER_ENABLE
- WRITE_STR_LAYER(_WHORF6, "Whorf 6")
-#endif
-
-#ifdef OPTIMOT_LAYER_ENABLE
- WRITE_STR_LAYER(_OPTIMOT, "Optimot")
-#endif
-#ifdef OPTIMOT_COMPACT_LAYER_ENABLE
- WRITE_STR_LAYER(_OPTIMOT_COMPACT, "Optimot")
-#endif
-#ifdef BEAKL19bis_LAYER_ENABLE
- WRITE_STR_LAYER(_BEAKL19bis, "Beakl19bis")
-#endif
-#ifdef BEPO_LAYER_ENABLE // Bepo only works on bepo.
- WRITE_STR_LAYER(_BEPO, "Bepo")
-#endif
- }
-}
-
-void oled_render_layer_state(void) {
- uint16_t layer = get_highest_layer(layer_state);
- char layer_str[8];
- snprintf(layer_str, sizeof(layer_str), "%u ",layer);
- oled_write_P(PSTR(""), false);
- if (layer > 0)
- oled_write(layer_str , false);
-
- switch (layer) {
- // language variant layers.
-#ifdef TOPROWS_LAYER_ENABLE
- WRITE_STR_LAYER(_TOPROWS, "TopRows");
-#endif
-
-#ifdef SYMBOL_LAYER_ENABLE
- WRITE_STR_LAYER(_SYMB, "Symbols");
-#endif
-
-#ifdef KEYPAD_LAYER_ENABLE
- WRITE_STR_LAYER(_KEYPAD, "Keypad");
-#endif
-
- // single case, BP or no suffix.
-#ifdef ACCENTS_MORTE_LAYER_ENABLE
- WRITE_STR_LAYER(_ACCENTS_MORTE, "Accents Morte");
-#endif
-#ifdef ACCENTS_LAYER_ENABLE
- WRITE_STR_LAYER(_ACCENTS, "Accents");
-#endif
-#ifdef MORTE_LAYER_ENABLE
- WRITE_STR_LAYER(_MORTE, "Morte");
-#endif
-
-
- // language agnostic layers.
-#ifdef NAV_LAYER_ENABLE
- WRITE_STR_CASE(_NAV, "Navigation");
- WRITE_STR_CASE(_NAVm, "Mouse");
-#endif
-#ifdef MEDIA_LAYER_ENABLE
- WRITE_STR_CASE(_MEDIA, "Media");
-#endif
-#ifdef FUNC_LAYER_ENABLE
- WRITE_STR_CASE(_FUN, "Func");
-#endif
-
- WRITE_STR_CASE(_LAYERS, "Layers");
-
-#ifdef RGB_LAYER_ENABLE
- WRITE_STR_CASE(_RGB, "RGB");
-#endif
-#ifdef ADJUST_LAYER_ENABLE
- WRITE_STR_CASE(_ADJUST, "Adjust");
-#endif
-#ifdef COMBO_REF_LAYER_ENABLE
- WRITE_STR_CASE(_COMBO_REF, "COMBO Ref");
-#endif
-
- }
-}
-#endif
diff --git a/users/ericgebhart/oled/oled_stuff.c b/users/ericgebhart/oled/oled_stuff.c
deleted file mode 100755
index 211fe4ab3e..0000000000
--- a/users/ericgebhart/oled/oled_stuff.c
+++ /dev/null
@@ -1,189 +0,0 @@
-/*
- Copyright 2018-2022 Eric Gebhart <e.a.gebhart@gmail.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 "ericgebhart.h"
-#include <string.h>
-#include <stdio.h>
-
-#ifdef OLED_CUSTOM_ENABLE
-
-extern uint32_t current_locale;
-
-void oled_render_locale(void) {
- // oled_write_P(PSTR("Layout: "), false);
- switch (current_locale) {
- WRITE_STR_CASE(LOCALE_DEFAULT, DEFAULT_LANG_NAME)
-#ifdef SECOND_LOCALE
- WRITE_STR_CASE(LOCALE_TWO, SECOND_LOCALE_NAME)
-#endif
- }
-}
-
-void oled_render_keylock_status(led_t led_state) {
- oled_write_P(PSTR(" Lock:"), false);
- oled_write_P(PSTR("N"), led_state.num_lock);
- oled_write_P(PSTR("C"), led_state.caps_lock);
- oled_write_P(PSTR("S"), led_state.scroll_lock);
-}
-
-void oled_render_mod_status(uint8_t modifiers) {
- oled_write_P(PSTR("Mods:"), false);
- oled_write_P(PSTR("S"), (modifiers & MOD_MASK_SHIFT));
- oled_write_P(PSTR("C"), (modifiers & MOD_MASK_CTRL));
- oled_write_P(PSTR("A"), (modifiers & MOD_MASK_ALT));
- oled_write_P(PSTR("G"), (modifiers & MOD_MASK_GUI));
-}
-
-void oled_render_mod_lock_status(void){
- oled_render_mod_status(get_mods() | get_oneshot_mods());
- oled_render_keylock_status(host_keyboard_led_state());
-}
-
-
-#ifdef KEYLOGGER_ENABLE
-char mkeylog_str[22] = {};
-
-const char mcode_to_name[60] = {
- ' ', ' ', ' ', ' ', 'a', 'b', 'c', 'd', 'e', 'f',
- 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p',
- 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z',
- '1', '2', '3', '4', '5', '6', '7', '8', '9', '0',
- 'R', 'E', 'B', 'T', '_', '-', '=', '[', ']', '\\',
- '#', ';', '\'', '`', ',', '.', '/', ' ', ' ', ' '};
-
-
-void oled_render_keylog(void) {
- oled_write_ln(mkeylog_str, false);
-}
-
-
-void add_keylog(uint16_t keycode, keyrecord_t *record) {
- char name = ' ';
- if ((keycode >= QK_MOD_TAP && keycode <= QK_MOD_TAP_MAX) ||
- (keycode >= QK_LAYER_TAP && keycode <= QK_LAYER_TAP_MAX)) {
- keycode = keycode & 0xFF;
- }
- if (keycode < 60) {
- name = mcode_to_name[keycode];
- }
-
- // update keylog
- memset(mkeylog_str, ' ', sizeof(mkeylog_str) - 1);
- snprintf(mkeylog_str, sizeof(mkeylog_str), "%dx%d, k%2d : %c",
- record->event.key.row, record->event.key.col,
- keycode, name);
-}
-#endif
-
-__attribute__((weak)) oled_rotation_t oled_init_keymap(oled_rotation_t rotation) { return rotation; }
-
-oled_rotation_t oled_init_user(oled_rotation_t rotation) {
-
- // for the big screen.
-#ifdef OLED_DISPLAY_128X64
- return OLED_ROTATION_180;
-#endif
- // rotate the slave side of the corne to be bottom side in.
- if (!is_keyboard_master()) {
- return OLED_ROTATION_180;
- }
-
- return oled_init_keymap(rotation);
-}
-
-/* oled_rotation_t oled_init_user(oled_rotation_t rotation) { */
-/* memset(mkeylog_str, ' ', sizeof(mkeylog_str) - 1); */
-/* if (is_keyboard_master()) { */
-/* return OLED_ROTATION_270; */
-/* } else { */
-/* return OLED_ROTATION_180; */
-/* } */
-/* } */
-
-
-void render_bootmagic_status(bool status) {
- /* Show Ctrl-Gui Swap options */
- static const char PROGMEM logo[][2][3] = {
- {{0x97, 0x98, 0}, {0xb7, 0xb8, 0}},
- {{0x95, 0x96, 0}, {0xb5, 0xb6, 0}},
- };
- if (status) {
- oled_write_ln_P(logo[0][0], false);
- oled_write_ln_P(logo[0][1], false);
- } else {
- oled_write_ln_P(logo[1][0], false);
- oled_write_ln_P(logo[1][1], false);
- }
-}
-
-
-__attribute__((weak)) void oled_render_logo(void) {
- // clang-format off
- static const char PROGMEM qmk_logo[] = {
- 0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8a,0x8b,0x8c,0x8d,0x8e,0x8f,0x90,0x91,0x92,0x93,0x94,
- 0xa0,0xa1,0xa2,0xa3,0xa4,0xa5,0xa6,0xa7,0xa8,0xa9,0xaa,0xab,0xac,0xad,0xae,0xaf,0xb0,0xb1,0xb2,0xb3,0xb4,
- 0xc0,0xc1,0xc2,0xc3,0xc4,0xc5,0xc6,0xc7,0xc8,0xc9,0xca,0xcb,0xcc,0xcd,0xce,0xcf,0xd0,0xd1,0xd2,0xd3,0xd4,0};
- // clang-format on
- oled_write_P(qmk_logo, false);
-}
-
-
-bool process_record_user_oled(uint16_t keycode, keyrecord_t *record) {
-#ifdef KEYLOGGER_ENABLE
- if (record->event.pressed) {
- //oled_timer = timer_read32();
- add_keylog(keycode, record);
- //add_keylog(keycode);
- }
-#endif
- return true;
-}
-
-bool oled_task_user(void) {
- //oled_clear();
- if (is_keyboard_master()) {
- oled_render_mod_lock_status();
- oled_advance_page(false);
- oled_render_default_layer_state();
- oled_render_locale();
- oled_write_ln_P(PSTR(" "), false);
- oled_render_layer_state();
- oled_write_ln_P(PSTR(" "), false);
-#ifdef OLED_DISPLAY_128X64
- oled_render_layer_map();
-#endif
-#ifdef KEYLOGGER_ENABLE
- oled_render_keylog();
-#endif
-
- // slave side display.
- } else {
- oled_clear();
-#ifdef OLED_LOGO_ENABLE
- oled_render_logo();
-#endif
- oled_render_default_layer_state();
- oled_render_locale();
- oled_write_ln_P(PSTR(" "), false);
-#ifdef SPLIT_LAYER_STATE_ENABLE
- oled_render_layer_state();
- oled_render_layer_map();
-#endif
- }
- return(false);
-
-}
-#endif
diff --git a/users/ericgebhart/oled/oled_stuff.h b/users/ericgebhart/oled/oled_stuff.h
deleted file mode 100755
index 7824ec7d84..0000000000
--- a/users/ericgebhart/oled/oled_stuff.h
+++ /dev/null
@@ -1,61 +0,0 @@
-#pragma once
-/*
- Copyright 2018-2022 Eric Gebhart <e.a.gebhart@gmail.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/>.
-*/
-
-#ifdef OLED_CUSTOM_ENABLE
-
-#include "quantum.h"
-//#include "oled_driver.h"
-
-void oled_render_mod_lock_status(void);
-void oled_driver_render_logo(void);
-bool process_record_user_oled(uint16_t keycode, keyrecord_t *record);
-void oled_render_layer_map(void);
-void oled_render_default_layer_state(void);
-void oled_render_layer_state(void);
-
-#define WRITE_STR_CASE(CASE, STRING) \
- case CASE: \
- oled_write_P(PSTR(STRING), false); \
- break; \
-
-// kinda hacky for the moment.
-// assume bepo is enabled.
-#define WRITE_STR_LAYER(CASE, STRING) \
- LCASE(CASE) \
- oled_write_P(PSTR(STRING), false); \
- break;
-
-// make maps for the oled. code doc.
-#define carte_de_map(ROW1, ROW2, ROW3) \
- oled_write_ln_P(PSTR(ROW1), false); \
- oled_write_ln_P(PSTR(ROW2), false); \
- oled_write_ln_P(PSTR(ROW3), false);
-
-// generate Case for all locales for this map.
-#define SHOW_MAP(LAYER) \
- LCASE(LAYER) \
- CAT(CARTE, LAYER) \
- break;
-
-// a single case, for single locale layers.
-#define SHOW_MAP_S(LAYER) \
- case LAYER: \
- CAT(CARTE, LAYER) \
- break;
-
-#endif
diff --git a/users/ericgebhart/process_records.c b/users/ericgebhart/process_records.c
deleted file mode 100755
index bb4bc2563b..0000000000
--- a/users/ericgebhart/process_records.c
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
- Copyright 2018-2022 Eric Gebhart <e.a.gebhart@gmail.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 "ericgebhart.h"
-#include "extensions.h"
-
-__attribute__((weak)) bool process_record_keymap(uint16_t keycode, keyrecord_t *record) { return true; }
-
-__attribute__((weak)) bool process_record_secrets(uint16_t keycode, keyrecord_t *record) { return true; }
-
-// Defines actions for my global custom keycodes. Defined in ericgebhart.h file
-// Then runs the _keymap's record handier if not processed here
-bool process_record_user(uint16_t keycode, keyrecord_t *record) {
-
-#ifdef OLED_CUSTOM_ENABLE
- process_record_user_oled(keycode, record);
-#endif
-
- PROCESS_EXTENSIONS
-
- if (process_record_keymap(keycode, record) && process_record_secrets(keycode, record)) {
- switch (keycode) {
-
- case KC_RESET:
- if (!record->event.pressed) {
- reset_keyboard();
- }
- return false;
- break;
-
- case KC_SPACETEST: // test something.
- // default_layer_set(1UL << _BEAKL);
- // tap_code16(LSFT(KC_SPACE));
- break;
- }
- }
- return true;
-}
diff --git a/users/ericgebhart/readme.md b/users/ericgebhart/readme.md
deleted file mode 100755
index 446a1411b4..0000000000
--- a/users/ericgebhart/readme.md
+++ /dev/null
@@ -1,1584 +0,0 @@
-Overview
-========
-
-This is as much a keymap framework as it is a keymap. It can take many
-shapes with just a few configuration choices. Base layers, Mods, thumb clusters,
-edge_keys, all can be changed with just a configuration option.
-There are over 50 base layouts to choose from, as well as multiple
-choices of navigation, mouse, media,
-symbols, and keypads. Home row mods come in a few flavors or none,
-in a mod layer which is easily understandable and can be turned on
-or off, or switched. There are Miryoku options for everything if
-that is your thing.
-
-If there is a oled of 64x128 the maps of each layer will be displayed, which
-helps a lot in remembering and learning.
-
-This is an easily configurable keymap for keymap exploration. It is for
-primarily for minimalist, ortho split keyboards but does support some rectangles.
-It´s first keyboard was an Ergodox-ez many years ago. My daily driver
-is now a Kyria or a Corne, but I still use an original dactyl, rebound
-and ergodox-ez regularly although most of the love goes to the Kyria and Corne.
-
-The framework is Language
-agnostic, it supports having layers for different locales which can be
-cycled through.
-There are multiple mods layers to choose or
-not, home row mods or not, a variety of thumb layouts, mouse/no mouse,
-smart lock layers and mods, N-Shot mods like callum's, swapper. Combos,
-tap_hold, accented keys, alternate shifted keys, automatic custom
-keys, key overrides. Minimal or no C-code required for most things.
-Language, mods, layouts and extensions are encapsulated, so that they
-do not interact in the configuration which makes it much easier to modify
-and grow. Mods and combos are by key location rather than specific key codes.
-
-Quick start
--------------
-
-Everything is encapsulated here. Base layers, functional layers, mods,
-or no mods, even the language. This means that anything can change
-independently and easily.
-
-If you don't mind dvorak, beakl or hands down, you can probably
-just use what is configured. Or just change it to a base layer
-of your choice. The fastest way to get started is to just change
-the base layers to the ones you want, compile and flash.
-
-Edit _config.h_,
- * Set the lang_is, probably to EN.
- * US international and BEPO are also supported out of the box.
- * Uncomment the base layers you wish to have.
- * comment the ones you don't.
- * keep the number below 5 if you enable a second locale.
- * Set the thumb clusters
- * Choose a mod layer
- * Choose an edge key set if you need one.
- * Choose the layer flavors that you want.
- * For Miryoku, copy the `miryoku_hd_gold_config.h` over `config.h`
- It is a complete config with miryoku choices. Choose the base
- layers you wish if Hands Down Gold and Qwerty is not your thing.
-
- ** do not turn off extensions until you know them **
- It will likely cause a stream of errors for the keycodes that
- go missing when something is turned off. There are known
- interactions between combos, smart locks, not_dead, and alt local keys.
- Turning encoders or oled on and off certainly won´t break
- anything.
-
- There are other interactions between your choices.
- Edge keys, thumbs, combos, other extensions,
- may use the extensions that are enabled.
-
-### Look here to see the parts
- * Everything can be turned on and off in *config.h*
- * Base layers are in *base_layers/*
- * Edge keys are in *layers/edge_keys.h*
- * Thumbs can be reviewed in *layers/thumbs.h*
- * Mods are in *mod_layers/*
- * All other layers are also in *layers/*
-
-
-The long version
------------------
-
-All can be turned on or off in the config.
-supports en-us and fr-bepo Support for other languages is easily added.
-
-Layouts are human readable, all extensions are defined with def files.
-If an 128x64 oled is available, a map of the current layer is shown if enabled.
-
-I'm an Xmonad, emacs in vi emulation programmer, that
-just means that _Gui, Esc, :/?!% and ._ are all easy access and I like my
-arrow and mouse keys in a 4 column row.
-
-I have also become minimalist in my keyboard choices. I don't use
-number rows, not even on my kinesis, dactyl, or ergodox_ez, which have them.
-Although my maps do reasonably support these bigger keyboards as that is where
-it all started for me and I do still use them. My preference for keyboards
-is more in line with the Kyria and Corne. I still use 6 columns, but have been
-looking to use only 5.
-
-Note: Combos at QMK master do not currently support multiple reference layers which this
-configuration uses. Combos still work as always, but do not support all the features
-found here. To get fully functioning multi-reference combos, see my *ericgebhart_dev*
-branch and pull request below.
-
-Actually, at the moment, the fix is in my ericgebhart branch, since I accidently
-pushed it. I'll remedy that soon.
-
-A more current version of my QMK user can be found here in
-A sparse tree [of my QMK User Space ](https://github.com/EricGebhart/MyQMK/users/ericgebhart)
-
-For full multi-lingual combo functionality you will need my [pull request for fully functioning multi-reference combos which can found here.](https://github.com/qmk/qmk_firmware/pull/16699)
-
-Things which effect the thinking.
- * No mouse.
- * Preference for 3x10 layouts. Corne, Kyria, etc.
- * Still works with bigger keyboards like xd75, kinesis, dactyl, ergodox, viterbi.
- * Change mods without changing any maps.
- * No number row preference. - all layouts have them if needed.
- * Xmonad window manager, GUI key is the entrance to the Xmonad world.
- * Typing in other languages.
- * Curious about keyboard layouts and experimenting.
- * Must be easy to maintain, extend and modify.
- * Minimize digging in code to add new things, or change old ones.
- * Minimize process record user.
- * Easy to add enums for keys and layers, as well as oled display.
- * Easy to support multiple languages regardless of maps.
- * Minimize the need to write C code.
- * Encapsulate C code, so that it is extensible through data.
-
-
-Features:
- * Everything is configurable from config.h and .def files.
- * Def files for most things.
- * Custom key codes are mostly defined automatically.
- * Everything is chosen or turned on and off in config.h
- * Lots of macros to make it easy to redefine things without a refactor.
- * Multiple edge/outer pinky column sets.
- * Multiple thumb clusters to choose from.
- * Thumb clusters and mods can be changed on a map by map basis.
- * Easily define thumb clusters with an alpha letter.
- * Easily define thumb clusters for non-base layer.
- * Multiple base layers to choose from.
- * Several variations of function layers to choose from
- * Miryoku layers, thumbs and mods if desired
- * Miryoku hands down gold config can be swapped with config.h
- * Navigation and mouse layers
- * A selection of symbol, keypads, and other layers.
- * Regular and Beakl keypad and number rows
- * Multi language support, (locales in the code).
- * Multiple mod layers to choose from. Easy to add more.
- * home row mods - a selection
- * no mods
- * alt mods
- * miryoku mods
- * Extensions are easily defined in def files.
- * N-shot mods
- * One-shot mods
- * swapper
- * Smart lock mods
- * Smart lock layers.
- * Accent keys
- * Alternate shift keys
- * Alternate local keys
- * key overrides
- * Tap hold
- * Not dead keys
- * Send unicode
- * Send string
- * Encoders
- * Display a map of the current layer on the oled.
- * Adding a new layer is painless.
- * Adding or changing most things, is not difficult.
- * Console key logging for [heatmap analysis.](https://precondition.github.io/qmk-heatmap)
-
-
-Layout shape and keyboard choices.
--------------------------------------
-
- In all cases these keyboards are defined in a matrix which is
- a set of rows. Maybe like so, or less. Kinesis has one more row.
-
-```
- -------------------------|------------------------ */
- | Left0 | Numbers L | mid|dle0 | numbers R | Right0 |
- | Left1 | keys0-5 | mid|dle1 | Keys6-10 | Right1 |
- | Left2 | keys11-15 | mid|dle2 | Keys16-20 | Right2 |
- | Left3 | keys20-25 | mid|dle3 | Keys25-30 | Right3 |
- | Row5L | Row5R |
- | ThumbsL | ThumbsR |
- -------------------------|------------------------
-```
-
-Generally speaking, the keys on the right and left and middle don't change.
-Neither do the bottom row or the thumbs, unless asked. Frequently the numbers
-row is identical across layers.
-
-For automatic edge columns set EDGE_COLS.
-Outside pinky keys are 'yes'. This is on by default.
-N rows by 6 columns per side.
-Should be undef/def'd by the keyboard's keymap if no.
-#define EDGE_COLS yes. this is all taken care of for supported keyboards.
-
-Thumbs and Edge keys are grouped into sets so that different sets can be chosen in
-the config.
-
-All layer macros take 3x10 or 3x12 as needed. Edge columns are
-added as needed, and middle keys fill up the gap.
-Thumb keys are added as asked.
-
-keyboard shapes:
-Matrix size + 5th row + thumbs.
-Matrix size + thumbs.
-
- * kinesis
- 4x6 + 4 + 6 - 18 func keys.
- * dactyl - Morpho handwire
- 4x6 + 5 + 6
- * ergodox_ez
- 4x6 + 5 + 6 & 3 pairs of center keys.
- * crkbd - corne
- 3x6 + 3 or 3x5 + 3
- * xiudi/xd75
- 5x15
- * keebio/viterbi
- 5x14
- * montsinger/rebound/rev4
- 4x12 + 3 center keys.
- * -- 4x12
- * splitkb/kyria
- 3x6 + 7 or 3x5 + 7
-
-The parts of a keymap
----------------------
-
- * keymap
- * defined in _keymap/keymap.c_.
- * Completely configurable from config.h
- * Separated into logical chunks.
- * Uses a language setting to create all maps.
- * Creates the same maps in multiple languages.
- * More than one language simultaneously on one keyboard.
- * Currently provides these languag settings and keycodes.
- * US - US-intl (US_)
- * EN - US-en (KC_),
- * BEPO - fr-bepo (BP_).
- * Choosing dvorak, and enabling bepo as the second locale,
- will produce two base layers to choose from on the keyboard.
- Dvorak on US and BEPO.
-
- * Base layers
- * Simple and compact definitions.
- * Base layers are pure.
- * Mods are defined separately.
- * OLED Maps for 128x64 sized oleds.
- * Language agnostic.
- * Core layer chunks are 3x10.
- * Except for few exceptions which are 3x12
- * More than 50 base layers to choose from.
-
- **Caution: Choosing too many base layers will result in toprows or keypad layer LT's
- to stop working. If bepo is enabled, all base layers are doubled so it's
- easy to hit the 16 layer limit for LT.**
-
- * Locales
- * Locales, defines a set of layers for a locale.
- * Layer definitions are language agnostic. - see lang.h.
-
- * Extensions - Defs.
- * Can be selected in config.h
- * Defined in easy to read .def files.
- * Correspondance between *extensions/* and *defs/*
-
- * accented_keys.def - direct access to altgr keys
- * altlocal_keys.def - alternate un/shifted pairs.
- * alt_shift.def - alternate shifting behaviors for existing keycodes.
- * not_dead.def - definitions for non-dead dead keys.
- * caps_word - no def file.
- * combos.def -
- * custom_keys.def - list of custom keys.
- * encoders.def - encoder behaviors by mod/layer.
- * key_overrides.def - Bigger more complex alt keys.
- * mod_lock.def - smart locking mods with a set of ignore keys.
- * nshot.def - N-shot locking mods
- * oneshot.def - One-shot locking mods
- * smart_lock.def - Smart lock layers and mods.
- * swapper.def - key substitution, reverser.
- * eg. toggle between tab, backtab on a key, with a reverse key.
- * tap_hold.def - Define key for tap and hold for tapping term for qqc autre.
- * unicode.def - keycodes to send unicode strings.
- * send_string.def - keycodes to send strings.
-
-
- * Layers
- * Multiple selections of the Transient layers.
- * Layer chunks are 3x10, with some options.
- * Full Navigation layer - stable and well used.
- * Mouse keys or without.
- * 1 or 2 layer nav, 2nd for mouse. or all on one. - choices.
- * Multiple choices of an easy to use _top rows_ layer similar
- to `raise` and `lower`.
- * A fully complete symbol layer, Used for coding and writing.
- * Accented letters and dead key layers.
- * Keypads and function pads.
- * Beakl keypads and symbol layers.
- * Control layers.
- * Layers
- * Adjust
- * RGB
-
- * OLED A simple, configurable implementation.
- * Current base layer
- * Current locale
- * Current transient layer
- * Last key, matrix location and value.
- * Mods and locks
- * Map of the current layer. (Oled 128x64)
- * key logger
-
- * Keyboards
- * nothing is needed in keymaps/*/keymap.c
- * Layouts - keyboard matrix adaptation.
- * Adaptive. Usually taking 3x10 maps and filling the edges and thumbs.
- * 4x10 or whatever is possible.
- * 3 versions, thinking in a split kb, way.
- * 5 columns in, 5 out.
- * 5 columns in, 6 out.
- * 6 columns in, 6 out.
- * per keyboard shape.
- * There are layouts per keyboard.
- * Base layout with mods and thumbs and edges added.
- * Transient layout which can be KC_TRANS, in those same places.
- * The number row addition can be turned on and off as needed by the layout.
- * Layouts can hard code the number row, negating the need for giving one.
-
- * Multiple edge key sets
-
- * Multiple Thumb clusters - see config or thumbs.h for up to date choices.
- * Support for multiple definitions.
- * mods
- * layers
- * mods_layers
- * mods_layers_nav
- * beakl wi
- * beakl wi - official.
- * test - to play with.
- * trans - transparent, could be used in the transient layout to allow alternates.
- * miryoku with keypad
- * miryoku with toprows
- * mods_layers with left thumb letter
- * hands down approximation with left thumb letter
- * miryoku with keypad, letter on left, space on right. - no tab.
- * miryoku with toprows, letter on left, space on right. - no tab.
-
- * Mod Layers
- * Completely independent of any layer or base layer definition.
- * Easy to create a new one by copying the transparent version.
- * Can be changed on a layer per layer basis.
- * Based on position in the matrix.
- * Chosen in config.
- * Multiple choices.
- * Home Row Mods. sacg, gacs, gasc
- Left and right mods on left and right.
- * Transparent - the default if not chosen.
- * Alt - Non home row mod variant.
- * miryoku HRMS is sacg plus right alt/altgr on third row.
-
- * Alternate language/locale support
- * Happens at the lowest level
- * All maps work with any of the [keymap extras.](https://docs.qmk.fm/#/reference_keymap_extras)
- * Language support is simple to add with just a new, very simple macro.
-
-The language keycodes can be found
-[here.](https://github.com/qmk/qmk_firmware/tree/master/quantum/keymap_extras)
-
-
-Architecture
------------------
-The idea here is that most things don't change, and the things that do are
-easy to understand and change. The defs directory is where all the extras are,
-tap_hold, alternate shift keys, combos, keycodes, smart lock, one shot mods,etc.
-
-If layers exist that you want and like, then all other behaviors are defined in
-def files which are much nicer than working directly with C code. If there is
-need there is always the copy pasta way too.
-
-Things that are likely to be changed when adapting a layout to personal preferences
-are *layers/thumbs.h* and *mod_layers/*. The function layers are all in the
-layers folder and should be easy to understand. Once added, it is only necessary to
-add the appropriate defines in _config.h_
-
-Adding new layers requires changes in layer_names, *oled/oled_layers.h* and *oled/oled_cartes.h* and the appropriate *keymap/ .h* file.
-
-Adding a new keyboard is done in keyboards and should be fairly obvious.
-```
-.
-├── base_layers
-│   ├── accents.h
-│   ├── alt.h
-│   ├── base_layers.h
-│   ├── beakl.h
-│   ├── bepo.h
-│   ├── carpalx.h
-│   ├── dvorak.h
-│   ├── gap.h
-│   ├── hands_down.h
-│   ├── keymaps.txt
-│   ├── maks.h
-│   ├── qwerty.h
-│   └── toprows.h
-├── config.h
-├── defs
-│   ├── accented_keys.def
-│   ├── altlocal_keys.def
-│   ├── alt_shift.def
-│   ├── combos.def
-│   ├── custom_keys.def
-│   ├── encoders.def
-│   ├── key_overrides.def
-│   ├── mod_lock.def
-│   ├── not_dead.def
-│   ├── nshot.def
-│   ├── oneshot.def
-│   ├── send_string.def
-│   ├── smart_lock.def
-│   ├── swapper.def
-│   ├── tap_hold.def
-│   └── unicode.def
-├── ericgebhart.c
-├── ericgebhart.h
-├── extensions
-│   ├── accented_keys.c
-│   ├── accented_keys.h
-│   ├── altlocal_keys.c
-│   ├── altlocal_keys.h
-│   ├── alt_shift.c
-│   ├── caps_word.c
-│   ├── caps_word.h
-│   ├── console_key_logger.c
-│   ├── console_key_logger.h
-│   ├── encoders.c
-│   ├── encoders.h
-│   ├── extensions.h
-│   ├── keycodes.h
-│   ├── keymap_combo.h
-│   ├── key_overrides.h
-│   ├── mod_lock.c
-│   ├── mod_lock.h
-│   ├── not_dead.c
-│   ├── nshot_mod.c
-│   ├── nshot_mod.h
-│   ├── oneshot.c
-│   ├── oneshot.h
-│   ├── process_locales.h
-│   ├── process_nshot.h
-│   ├── process_smart_lock.h
-│   ├── send_string.c
-│   ├── smart_lock.c
-│   ├── smart_lock.h
-│   ├── swapper.c
-│   ├── swapper.h
-│   ├── tap_dances.c
-│   ├── tap_dances.h
-│   ├── tap_hold.c
-│   ├── tap_hold.h
-│   ├── unicode.c
-│   └── unicode.h
-├── keyboards
-│   ├── keyboards.h
-│   └── layouts.h
-├── keymap
-│   ├── keymap.c
-│   ├── map_accented.h
-│   ├── map_alt.h
-│   ├── map_beakl.h
-│   ├── map_bepo.h
-│   ├── map_carpalx.h
-│   ├── map_dvorak.h
-│   ├── map_funcs.h
-│   ├── map_gap.h
-│   ├── map_hd.h
-│   ├── map_keypads.h
-│   ├── map_maks.h
-│   ├── map_qwerty.h
-│   ├── map_symbols.h
-│   └── map_toprows.h
-├── lang
-│   ├── lang.h
-│   ├── lang_map.h
-│   ├── locale_layers.h
-│   ├── locales.c
-│   └── locales.h
-├── layer_names
-│   ├── base_names.h
-│   ├── func_names.h
-│   ├── layer_names.h
-│   └── util_names.h
-├── layers
-│   ├── edge_keys.h
-│   ├── keypads.h
-│   ├── layers.h
-│   ├── nav.h
-│   ├── symbols.h
-│   ├── thumbs.h
-│   ├── toprows.h
-│   └── utility.h
-├── listen_keylogger.sh
-├── mod_layers
-│   ├── alt_mods.h
-│   ├── hrm_gacs.h
-│   ├── hrm_gacs_miryoku.h
-│   ├── hrm_gasc.h
-│   ├── hrm_sacg.h
-│   ├── hrs_nav.h
-│   ├── mod_layer.h
-│   └── trns_mods.h
-├── oled
-│   ├── oled_cartes.c
-│   ├── oled_layers.c
-│   ├── oled_stuff.c
-│   └── oled_stuff.h
-├── process_records.c
-├── readme.md
-└── rules.mk
-
-10 directories, 118 files
-```
-
-Locales
--------------------
-There are currently three locales. LANG_IS defines the one in use.
-The map changes this value as it goes, to get the maps that are asked for.
-I have recently renamed some variables, such that it seems that only 2 locales
-are possible. It seems more than two might be too many. And keeping at 2 is
-a little easier.
-
- * EN - en-us, **KC_** keycodes.
- * US-INT - us-international variant, **US_** keycodes.
- * BEPO - bepo-fr, **BP_** keycodes.
-
-Switching LANG_IS before adding a new map will cause that map to
-use LANG keycodes and keymap chunks when building the map.
-
-Enabling a second locale to bepo, will cause bepo versions of the chosen layers to
-be added to the keymap.
-
-### defining a locale.
-
-This is to manage BEPO and Qwerty Locale/language/Layers
-Each locale is defined with a start and end layer from the layers enum.
-
-This is only necessary to give contextual base layer choices based on
-the current locale setting, which the keyboard tracks.
-
-The first and last defines are all done with the magic of defines in
-ericgebhart.h where the layers enum is defined.
-
-This could potentially hold multiple locales, The map turns on off the layers
-and their enums if they are not enabled so that the layer array does not
-fill up with too many base layers, or other layers because LT only works
-up to layer 15.
-
-What this does is allow the keyboard to know which locales it has, and which
-layers go with them.
-
-If you have an oled, the locale will be displayed after the layout name. Currently
-en-us and bepo-fr are there.
-
-Locales are tracked, as to the layer ranges which belong to them in the layers enum.
-This allows for a `KC_NEXT_LOCALE` key and a `KC_NEXT_BASE_LAYER` key, on the _layers_
-layer.
-`KC_SET_BASE` sets the default layer in the eeprom.
-
-When cycling through layers only the layers for the chosen local will appear.
-
-The layers are different keycode sets.
-So there are two symbol layers, two toprows layers, two keypad layers.
-One for Qwerty and one for bepo. The Navigation layer is not affected because
-it has only control keycodes which are independent of locale.
-
-
-### Locales, how they work in layouts.
-
-This is done through consistent naming patterns and macros.
-Here are the macros that support creation of layout parts by locale.
-All are defined in **lang.h**
-
- * Keycode Prefix - KC or BP, etc.
- `LANG_KC(_A) -> KC_A or BP_A`
-
- * Defined key/layer Suffix - SYMB_EN, SYMB_BP, ...
- `LANG_N(NAME) -> NAME_EN, NAME_BP`
-
- * Map chunk Suffix - _EN, SYMB_BP, etc.
- `MAP_CHUNK(15_BOTTOM) --> ___15_BOTTOM_EN___ or ___15_BOTTOM_BP___`
-
-_lang.h_ has the macro definitions used in the keymap resolution,
-A new locale, will need a new set of macros that match the others.
-They use LANG_IS, Follow the patterns. It should be reasonably obvious.
-
-It is only necessary to create new base level macros that are used by these
-macros. All of them are similar.
-
-**LANG_KC** uses these macros to resolve it's values.
-```
- // Give the right keycode prefix by LANG_IS
- #define LANG_PFX CAT(LANG_IS_, KC)
- #define BEPO_KC BP_
- #define EN_KC KC_
-```
-
-Adding a new one is just a matter of adding the a macro named with
-this format. `LANG_IS _Keycode prefix`.
-for Slovak, if the **LANG_IS** value is `SK` that would be,
-
- `#define SK_KC SK_`
-
-LANG_N macro uses these similar macros for it's resolution.
-
-```
- // Give the right symbol suffix by LANG_IS
- #define LANG_SFX CAT(CAT(LANG_IS, _), SFX)
- #define BEPO_SFX _BP
- #define EN_SFX _EN
-```
-Adding Slovak support to the LANG_N macro looks like this.
-
- `#define SK_SFX _SK`
-
-
-### Thumb clusters.
-
-Thumb clusters can be chosen by layer with the value of **THUMBS_ARE**.
-
-The easiest way to see them is to look in *layers/thumbs.h*.
-
-At the core of the thumb clusters are a set of six keys which
-can be changed to a one of a set of keys, with settings in the config.
-Supporting a 4 key thumb cluster would just need a similar set.
-
-The newer Hands down variants also have need of thumb clusters which
-can take a letter. A default can be given in config.h.
-Each keymap layer entry can give it's letter to change the thumb cluster.
-This is needed for hands down, maltron, rsthd, and beakl wi.
-
-These layouts use a special thumb cluster variant which will use the value
-of *THUMB_LETTER* to place a letter on one of the thumb keys.
-
-It is reasonably easy to add a new thumb cluster and use it. Add it to
-thumbs.h, add to the list of macros for it's suffix, and turn it on
-by setting it to *THUMBS_ARE* in config.h
-
-Additionally a thumb cluster can be set for the various function layers as
-well. The transparent thumbs can be used, or something else. The nav and
-mouse layers have the mouse buttons if mouse keys are enabled.
-
-It is also possible to use a Miryoku thumb cluster and layers
-or mix the other layers in as desired.
-
-The language of thumb clusters is managed at the lowest level.
-These keys are mostly not language specific.
-
-Here is the definition for my space and symbol layer key.
-This changes the name of the layer given like this.
-
-_SYMB becomes *_SYMB_EN* or *_SYMB_BP*. Depending on the value of *LANG_IS*
-
- `#define SPC_SYMB LT(LANG_N(_SYMB), KC_SPC)`
-
-
-Edge key sets
-----------------
-Edge keys, or the 6th, and outer pinky column are often not specified
-in base keymaps and are not strictly necessary. There are a few sets
-to choose from here. A NOKC set with no keys, NORM which is sorta normal
-with grave, equal, tab, -, and \/. There is also a smart lock set
-which gives access to smart lock layers tab and -. Last there is
-test, so its easy to try new things. Edge keys are defined in
-*layers/edge_keys.h*.
-
-
-Base Layers
------------------
-I like to experiment with layouts. So I have a few.
-They can be turned on in config.h.
-
-To switch base layers there is a combo to raise the layers layer.
-Hold both pinkies on their lower row keys to get the layer.
-Tap the home row left middle finger to change layers.
-Tap the ring finger to set it to eeprom if you want it to stick.
-
-The left index finger will cycle through locales if you have them.
-
-Here is a list of some of the base layers..
-
- * Dvorakish
- * Dvorak
- * Capewell-Dvorak
- * Ahei
- * Boo
- * Dvorak RLC-UI
- * Beakl
- * 15
- * 19
- * 27
- * WI
- * Qwertyish
- * Qwerty
- * Azerty
- * Workman
- * Norman
- * Maks
- * Colemak
- * Colemak_DH
- * Halmak
- * Minimak
- * Minimak 8
- * Minimak 12
- * Carpalx
- * QFMLWY
- * QGMLWB
- * QGMLWY
- * Hands Down
- * Neu
- * Neu narrow
- * Titanium
- * Gold
- * Platinum
- * Silver
- * Bronze
- * Elan
- * Dash
- * Ref
- * MTGAP
- * Mtgap
- * Ctgap
- * Apt
- * Canary
- * Others
- * Maltron
- * Eucalyn
- * Rsthd
- * Isrt
- * Hands Up
- * White
- * Soul
- * Niro
- * Asset
- * Whorf
- * Whorf6
- * Bepo, layers with accented letters.
- * Bepo
- * Optimot
- * Optimot compact
- * Beakl19bis
-
-### Adding a new base layer, or any layer
-
-Adding a new base layer is easy. They all live in *base_layers/*. A base layer
-entry looks like this. There is an empty template in *base_layers.h* which collects
-all the other maps. The name of the carte de map, should be **CARTE** followed by
-the layer name that will be used. Layer names are usually an underscore followed by
-the name. For dvorak, that is *_DVORAK*, which because of the language layer ultimately
-and magically becomes *_DVORAK_EN*, *_DVORAK_US*, *_DVORAK_BP* as needed.
-
-```
-#define CARTE_DVORAK \
- carte_de_map(" ',.py fgcrl ", \
- " aoeui dhtns ", \
- " ;qjkx bmwvz ")
-
-#define ___DVORAK___ \
- LANG_MAP(TL_QUOT, TL_COMM, TL_DOT, _P, _Y, _F, _G, _C, _R, _L, \
- _A, _O, _E, _U, _I, _D, _H, _T, _N, _S, \
- TL_SCLN, _Q, _J, _K, _X, _B, _M, _W, _V, _Z)
-```
-
-#### TL_ keycodes
-
-Use TL_ keycodes for any punctuation, this allows for targeting
-of these keys by language and by target layout as needed.
-for instance *TL_COMM* -> TLKC(_COMM). The *Target-Language-comma*,
-becomes BP_BK_COMM, or KC_DV_COMM, US_HD_COMM, or whatever it
-needs to be based on current language and target layout. If your layer has special
-puncuation needs,
-
- * Add key entries to *altlocal_keys.def*
- * Edit to *lang/lang_map.h* to add the new *TARGET_PFX* entry.
- * Set the appropriate value to *ALT_TARGET_IS* in the layer's keymap entry.
-
-#### Integration
-
-Integrating the new map into the rest of the framework is just a simple entry
-in a few places.
- * *layer_names* needs to know about the new name so we can use it,
- * The oled needs to know about it so it can display it.
- * The config needs to know about it so we can turn it on.
-
-Follow these steps. Everything is very simple, and just one to 3 lines.
-Just follow the same patterns as all the rest.
-
- * Add the layer definition and map of the definition in *base_layers/<appropiate>.h*.
- * Add the layer name to *layer_names/base_names.h*
- * Add the layer name to *keymap/<appropiate>.h*
- * Add the layer entry to *oled/oled_layers.c*
- * Add the layer map entry to *oled/oled_cartes.c*
- * Add the define for the layer enable to *config.h*
-
-Adding a new functional layer follows the same patterns, although their
-keymap and oled entries may be more complex, since it is usually trying
-to pick one from a set of choices.
-
-### Adding a new thumb cluster configuration
-
-Adding a new thumb keys definition is done in *layers/thumbs.h*.
-The keys that change are just 6 and they all have the name of *___6_ERGO_THUMBS_...*.
-
- * Define a new thumb definition with a nice suffix like all the rest.
- * Add an entry to the *THUMB_EXT* list with the nice new suffix.
- * Set the appropriate *THUMBS_ARE* defines in config.h to it's
- new thumb extension name.
-
-### Adding a new mod layer
-
-This is also easy. Mod layers live in the mod_layers folder. Each file
-there is a separate mod layer, which is tracked in *mod_layers.h*
-The file, *trns_mods.h* is the transparent mods layer and by definition has
-no modifiers applied, providing a clean slate.
-
-The steps are these:
- * Make a new copy of an existing mod layer.
- * Edit the new file and change the names to your new name.
- * ie. *_trns* changes to *_my_new_mods*
- * Add the mods you want. MT's and LT's, tap holds, etc.
- * Edit *mod_layers/mod_layer.h*
- * Add the include for the new mods file*
- * Add the *MOD_EXT* entry for the new name
- * Define *MODS_ARE* in _config.h_ to use the new name.
-
-
-Keymaps
------------
-I only have one. It's in keymap/keymap.c.
-My config.h has all the current usable settings.
-Turn on the layers by enabling and choosing them in config.h.
-Most keyboards don't need a keymap.c.
-
-There are corresponding Bepo layers, as needed, which will arrive if *SECOND_LOCALE* is
-set to _BEPO_.
-This essentially doubles the number of keymaps.
-Nav, mouse, media, layers, RGB, and Adjust are not duplicated as there is no
-current need.
-
-## Mods, home row and otherwise.
-With all these layers it was a real pain to apply mods consistently and
-easily with the old wrapper code. So I changed the way I use keymap macro
-wrappers and added in my own mod layer. The only thing it has is the mods
-to apply. No more editing keymaps to apply mods. I do it once, and it
-works everywhere I want by location.
-
-Multiple versions are possible. Just copy the trns_mod_layer.h to a new
-name and modify it with a new extension name, (replace '_trns'). Then add it's include to mod_layer.h, to be used when the config says.
-
-The defines for *MODS_ARE* and *DEFAULT_MODS* determine which mods are applied
-to a given keymap layer.
-
-Keyboard matrix Layouts
------------
-This is where the keymap of the
-keyboard meets the mods and all the edge, middle and thumb keys, and makes
-it easy to give just a 3x10 definition for most layers regardless of which
-keyboard it is going to.
-
-To use an existing layout for a different keyboard, simply make an entry
-in *keyboards.h* to assign the proper layouts that fit that keyboard.
-So a planck could use the 4x12 layout out of the box. In the keyboards
-keymap there is only a need for config.h or rules.mk if something needs
-changing. For the keyboard an empty keymap.c will do.
-
-The base layout can be anything really.
-The base layer sets the thumbs and anything outside of the 3x10.
-The mod layer is wrapped in the base layout and adds the mods, and a 6th
-outer pinky column as needed.
-
-Some layouts take an extra number row.
-Layouts can be any shape, all of these take a 3x10, 3x12, 4x10 or 4x12,
-and make it fit the keyboard.
-
-The layouts defined in _layouts.h_ take a list of keys. and give them
-to the keyboard's layout. The Corne (crkbd), uses a layout called
- `LAYOUT_split_3x6_3`. So for the corne, I have a `Base_3x6_6` that
- is the same shape, in its resolution.
-
-There are layouts for Corne, ergodox, kinesis, dactyl, viterbi, xd75, rebound.
-
-Currently, 3 layouts are needed per keyboard.
- * A Base layout, for default/base layers,
- * A transient layout for the function layers.
- * A version which takes 3x12 for the larger bepo base layers.
-
-The base layouts can take 3 or 4 rows by 10 columns as desired.
-They add in the mods, and any pieces of matrix outside of
-the 3x10 center, function, numbers, lower rows, outside pinky keys,
-and thumb clusters.
-
-
-Functional layers
---------------------
-There are quite a few of these to choose from. The easiest way to see
-them all is to go look at them in _layers/_. They are logically divided
-into files, and their cartes/maps are easy to look at. There are
-minimalist Miryoku versions as needed.
-
-## Navigation Layer
-I do not use a mouse. I use Xmonad as my window manager, and I have
-practically no use for one. They are necessary however. So I have
-a Navigation layer which is all mouse, arrows, home, end, tab, page
-up, down, 5 mouse buttons and so on.
-
-There are a growing number of choices, left and right sided mouse layers
-right side arrows etc, and some monolithic nav layers like the one shown
-below.
-
-There is also a split layer, with arrows etc on the right, and smart mods
-and N-shots on the other. A left side mouse layer is accessible from
-the first nav layer. There are various choices at this point. It is
-best to look at the config.h for clues.
-
-The miryoku nav and mouse layers are somewhat but not terribly different.
-
-
-#### One of the Navigation layers.
-
-```
-M = Mouse
-B = Button
-W = Wheel
-AC = Acceleration
-CCCV = Tap -> Ctrl-C, hold for double tap duration -> Ctrl-V
-CTCN = Tap -> Ctrl-T, hold for double tap duration -> Ctrl-N
-CWCQ = Tap -> Ctrl-W, hold for double tap duration -> Ctrl-Q
-HOME = TAB & PGDN
-END = BKTAB & PGUP
-Lock/Unlock LAYER = PGDN & PGUP
-
-MB5 MB4 MB3 MB2 MB1 MAC0 | CTCN MB1 MB2 MB3 MB4 MB5
-TAB MLeft MDown MUp MRight MAC1 | CCCV Left Down UP Right TAB
- WLeft WDown WUp WRight MAC2 | CWCQ TAB PGDN PGUP BKTAB
-
- Left Down Up Right CCCV | CCCV MLeft MDown MUp MRight
-
-
-```
-
-
-## Symbol Layer
-
-The symbol layer is based on the Beakl15 symbol layer. It was very similar to a symbol
-layer that I had before beakl, but this felt better, and has been through a few
-iterations at this point. Vi likes using :/?! a lot. The = is not that important to
-me, as the : for the vi ex: command. The ! is very satisfying in this location.
-
-For US-intl and Bepo which have dead keys, the symbol layer uses the *not_dead* extension
-to give _'`"^~_ which are not dead.
-
-The beakl symbol layer is intuitive and fairly easy to remember. There are 3 versions.
-The original, an extended, and an extended and enhanced for vi.
-The primary purpose of the extension was to provide keys which might not be available
-elsewhere on the default layer. The vi version takes this further and moves :/?
-to better places.
-
-I prefer a modified beakl15 symbol layer. here it is, left and right.
-This layer has some extra characters so it works with non-beakl base layouts.
-The beakl wi symbol layer is not an improvement on this IMO.
-Miryoku symbols layer is only left sided, and minimalist as well.
-This might be a little vi centric, with the : in the middle. ymmv.
-
-There are a few choices, this is one.
-
-```
- `<$>' ?[_-]
- - \("#) !{:/} ;
- @=*+; %&^~|
-```
-
-
-## TopRows Layer
-
-The toprows layer is a nice way to transition to small keyboards.
-I think, truly this is the layer that makes tiny keyboards accessible in the beginning.
-Everything can remain familiar. I use this one with a beakl number row.
-The default, if no choices are made, aside from enabling toprows, will
-have a normal qwerty number row, as in the second map.
-
-I do not use F keys, The latest addition has _smart_ and _nshot mods_ in the third row.
-There is a miryoku thumb cluster which uses this layer instead of a keypad.
-
- ```
- !@#$% ^&*()
- 40123 76598
- F1 --- F10
- ```
- or
-
- ```
- !@#$% ^&*()
- 12345 67890
- F1 --- F10
- ```
-
-## Keypad and Funcpad Layers
-
-There are several variations of keypads and function key pads in various sizes,
-and left and right.
-There are also versions with smart and nshot mods instead of F-keys.
-There are monolithic, left and right, and also half keyboard left mostly...
-A miryoku version also exists.
-The keypad can be chosen in config.h.
-
-```
- 523: F9-12
- 7.104 F5-8
- /698, F1-4
-```
-## Media Layer
-
-A simple Miryoku, media layer, controls on the right.
-
-OLED
---------------------
-The oled shows the basic stuff I could find in most places.
-* Default layer
-* Current layer
-* Locale
-* Mods
-* Locks
-* Last key pressed
-* Map of the current layer as simply as possible. (128x64)
-
-Process_records.c
---------------------
-This is where the keycodes are processed...
-It tends to be where cruft gathers. Mostly I try to keep it empty
-and do all my processing with the extensions. The file, _extensions.h_
-takes care of inserting them in process_records with it's macro.
-
-
-Extensions
----------------------
-Extensions are all in the extensions directory and have a single
-entry point via extensions.h which provides a macro to place in **process_record_user**.
-The intention is that they are easy to copy and use as is without digging around
-in the C code. Custom keys are also defined there. Any keycodes defined by
-an extension are automatically added to the custom keys enumeration so there is no need to define them manually.
-
-A new extension can be added with a process record entry in
-extensions.h. Just follow the same code pattern. If an extension defines keycodes,
-add it's include entry in *keycodes.h* so that they are automatically added to the enum.
-Keycodes.h is also where all the miscellaneous short cut key defines are done.
-
-To copy all the extensions,
- * Copy the extensions and defs folders,
- * Copy process_records.c file or adapt yours.
- * Adapt your custom keycodes to custom_keys.def.
- * Copy the pertinant parts of config.h so that everything can be enabled.
- * Define _USERSPACE_H such that all the extensions can find your stuff.
-
-To adapt to your own process_record_user do this;
-Include extensions.h in your process_record_user,then add this
-above the switch.
-```
-PROCESS_EXTENSIONS
-```
-This will cause process records to use whatever extensions are turned on.
-
-Many extensions have a _.def_ file in _/defs_ for any data that is needed.
-
-Because many of them use custom keycodes or layers in their definitions,
-it is necessary to include your userspace .h such that keycodes and layer
-codes can be found. To simplify this, simply add a define to config.h
-to point at your .h or wherever your custom codes can be found.
-
-In my case;
-```c
-#define USERSPACE_H "ericgebhart.h"
-```
-
-
-Custom keys
--------------------
-The Custom keys are in __custom_keys.def__.
-
-__keycodes.h__ is an extension of sorts. It is the custom keys enumeration.
-The __custom_keys.def__ has a few random keycodes in it.
-
-All other keys are automatically generated from the other def files.
-
-For the extensions that have key definitions those keys are enumerated
-automatically. The keys are defined in the def files so there is no need
-to add them to the enumeration manually.
-
-It will complain as usual if there are duplicates.
-
-Mostly, __keycodes.h__ is key defines to make shortcuts, since the enumeration
-is done almost completely automatically. When adding a new extension
-which defines keycodes, that extension will also need an entry in
-keycodes.h in order to automatically define the new key enumerations
-it´s def file creates.
-
-
-Accent keys
------------------
-This is a way to create keycodes which access keys
-which are normally only accessible with an Altgr/Ralt and a dead key.
-
-Each definition takes a keycode, the key to modify, and the dead key
-to apply to it.
-
-```
-ACCENTED(BP_OCIR, BP_O, BP_DCIR)
-ACCENTED(BP_ACIR, BP_A, BP_DCIR)
-```
-
-
-Alternate keycodes
------------------------------
-Normally, a keycode has unshifted and shifted key values. These are defined
-by the OS and it's locale, not the keyboard. This feature allows a keycode
-to be defined that uses arbitrary unshifted and shifted keycodes and their modifiers.
-This is necessary, because, for instance, qwerty has , and ; paired. Other
-locales may not. Bepo, and Beakl both have different pairings as do many other
-layouts.
-
-Because of wanting dvorak and beakl on bepo there was the necessity to create keys
-from keycodes which were not combined. key overrides were not
-sufficient because some keys are not actually keys that can be accessed
-without modifiers. Each keycode for the new key specifies it's own
-modifiers making any character available as an unshifted or shifted key.
-
-Alternate keys for a locale, are defined in **altlocal_keys.def**.
-These are to emulate a key, from 2 keycodes.
-
-This is for emulating keys on another locale/language.
-Dvorak on Bepo-fr, or Qwerty on sk-SK, or de_DE.
-
-It is also good for alternate shifted and unshifted pairs like
-what is needed for beakl or hands down on en-us/qwerty.
-
-This feature is usually only needed for punctuation keys
-and the top row number keys. Where the unshifted and shifted keys
-are not the same character as the keyboard local on the OS.
-
-It has turned out that most of these keys have a destination language,
-and a target language/layout.
-The target is to emulate something on some language. QMK uses keycode prefixes,
-so this works pretty well and the names stay consistent with all the others,
-but with a middle name.
-
-The pattern is Language prefix, target language prefix, name.
-The target prefix is made up. BK -> beakl, DV -> dvorak, HD -> hands down, etc.
-
-The naming pattern is only important in that it works with all of the Lang
-macros elsewhere in this userspace. A macro is provided on a per key
-basis, which can be used at the base layer definition, such that *TL_COMM*;
-target-language-comma, becomes BP_BK_COMM, or KC_BK_COMM, or whatever it
-needs to be based on
-current language and target layout.
-
-Here is a def entry to create the 1/! keycode for dvorak in the Bepo-fr locale
-in *altlocal_keys.def*.
-```
- MK_KEY(BP_DV_1, BP_DQUO, MOD_LSFT, BP_DCIR, MOD_LSFT)
-```
-
-Here is what some Beakl keys look like for en-us/qwerty.
-Beakl has dot with @, comma with ! and " with `.
-
-In *altlocal_keys.def*.
-```
- // Keys for BEAKL on Qwerty
- MK_KEY(KC_BK_DOT, KC_DOT, MOD_NONE, KC_2, MOD_LSFT)
- MK_KEY(KC_BK_COMM, KC_COMMA, MOD_NONE, KC_1, MOD_LSFT)
- MK_KEY(KC_BK_QUOT, KC_QUOT, MOD_NONE, KC_GRV, MOD_NONE)
-```
-
-Not Dead keys
---------------------
-As a writer dead keys give me access to accented letters in other languages,
-As a programmer they are a pain, especially for a vi user. This problem is
-limited to a few characters; "'`^ and ~. This extension helps to fix these
-characters and make them accessible as non-dead keys. It does this by adding
-a space afterward. The space is eaten by the OS keyboard driver and the letter
-emerges as needed. Here are some non dead keys for US-Intl.
-In use, I put these on the symbol layer, and let all the others remain dead.
-
-```
-NOT_DEAD(US_DQUO_ND, US_DQUO)
-NOT_DEAD(US_GRV_ND, US_GRV)
-NOT_DEAD(US_QUOT_ND, US_QUOT)
-NOT_DEAD(US_CIRC_ND, US_CIRC)
-NOT_DEAD(US_TILD_ND, US_TILD)
-```
-
-Alternate shifts
----------------------
-The alt shift extension is very simple, it uses a usual keycode, it does
-not define custom keys. It allows for an existing key like dot or semi-colon
-to have a different letter on its shifted value.
-
-There are currently three types of shift mods.
- * Give a different character than usual on shift.
- * Give two of the usual character instead of one.
- * Give three of the usual character instead of one.
-
-They are all defined in *defs/alt_shift.def*.
-Here are some silly examples.
-
-```
-ALT_SHIFT(US_EXLM, US_PERC)
-SHIFT_FOR_2(US_AT)
-SHIFT_FOR_3(US_DLR)
-```
-
-
-Key Overrides
--------------------
-These are the standard QMK key overrides. For un/shifted pair keys *altlocal_keys* is
-much, +3x, smaller and direct in that it makes keycodes that can be placed anywhere.
-However, if ko's are desired, this extension is an easy place to start.
-
-There are nice macros which take care of defining everything that is possible
-with the ?_ko() functions
-
-This first example is better done with **altlocal_keys**.
-
-```
-// KOL(slash_pipe, MOD_MASK_SHIFT, KC_SLSH, KC_PIPE, _DVORAK_EN)
-```
-
-Other key overrides can be defined with these.
-
-```
-KO(name, mods, key, replacement)
-
-KOL(name, mods, modded_key, replacement, layer)
-
-KOLN(name, mods, key, replacement, layer, neg_mods)
-
-KOLNO(name, mods, key, replacement, layer, neg_mods, options)
-```
-
-Combos/Chords
-----------------------------
-
-The combos here use multiple reference layers which is a pending
-pull request in the dev branch of QMK. The combos here will still work
-to an extent if *COMBO_ONLY_FROM_LAYER* is set to the correct layer number.
-
-[See my pull request to enhance combos here](https://github.com/qmk/qmk_firmware/pull/16699)
-
-This pull request defines a hook function for combos to determine the
-reference layer for the current layer. This allows for multiple reference
-layers to be used depending on the situation.
-
-Reference layers will be created and used according to the following
-defines.
-If the reference layer is enabled, it will automatically be assigned to
-COMBO_REF_DEFAULT and that will be the default reference if none
-is specified. If not specified, the reference will be the current layer.
-
- * #define COMBO_REF_LAYER_ENABLE // enable a reference layer.
- * #define COMBO_REF_LAYER_TWO_ENABLE // enable a second reference layer
- * #define COMBO_ONLY_FROM_LAYER 2
- * #define COMBO_REF_DEFAULT 2
- Works in config.h if you know the number of your layer.
- Automatically set if ref layer is enabled.
-
-Defining layer specific combo reference layers by layer in combos.def
-In this case, the default will be _COMBO_REF, the NAV layer will
-reference it's self, while bepo dvorak will reference the second
-combo reference layer. Keys start or end with CB or CB2.
-
-```
-COMBO_REF_LAYER(_DVORAK_BP, _COMBO_REF2)
-COMBO_REF_LAYER(_NAV, _NAV)
-```
-
-The combo reference layers follow an easy to remember keycode naming
-convention so that it is easy to define combos based on position.
-Keycodes are prefixed by CB or CB2, the first number is the row,
-followed by L or R for left and right, then the column number,
-for each hand left to right.
-
-Row 0 is the number row, there are 4 rows possible.
-
-`CB_1L1` is the left pinky, `CB_1R1` is the inside right hand index column.
-
-```
- _1L1, _1L2, _1L3, _1L4, _1L5, _1R1, _1R2, _1R3, _1R4, _1R5,
-```
-
-If there are edge keys, they are named accordingly, left and right.
-
-```
-L0_CB, L1_CB, L2_CB, L3_CB
-R0_CB, R1_CB, R2_CB, R3_CB
-```
-
-Thumb keys use the COMBO and COMBO2 thumb settings which give keycodes
-like this.
-
-```
-#define ___6_ERGO_THUMBS_COMBO___ CB_TH1, CB_TH2, CB_TH3, CB_TH4, CB_TH5, CB_TH6
-#define ___6_ERGO_THUMBS_COMBO2___ CB2_TH1, CB2_TH2, CB2_TH3, CB2_TH4, CB2_TH5, CB2_TH6
-```
-
-Tap-Hold
------------------------
-
-Tap hold currently has *tap_taplong* and *open_openclose* functions.
-These are in *tap_hold.c*, *tap_hold.h* and *tap_hold.defs*.
-Both use **TAP_HOLD_TERM** as the hold duration.
-
-Tap_taplong sends one keycode on tap, and another after a hold of tapping term.
-Open_openclose, sends one keycode on tap, hold sends that, plus the second,
-followed by a back arrow.
-
-Additionally, open_openclose will send a triple of the open keycode when tapped with
-the shift modifier on.
-
-There as also a __not dead__ version of open_openclose that accomodates using
-dead keys like quote so that the functionalty behaves as if the key were not
-a dead key, giving a quote, a pair of quotes or a triple of quotes.
-
-The file _tap_hold.defs_ contains all the definitions. Like combos,
-these entries are processed with a function call from **process_user_record**
-`process_tap_hold_user(keycode, record);`
-
-Define your keys in *tap_hold.defs*.
-
-Here is Ctrl-C, Ctrl-V, as tap and long tap.
-```
-TP_TPL(KC_CCCV, LCTL(KC_C), LCTL(KC_V))
-```
-
-For tap open, hold for open and close then a back arrow.
-Here is __(__ or __()__ with tap and long tap.
-
-```
-OPEN_OCL(KC_OCPRN, KC_LPRN, KC_RPRN)
-
-OPEN_OCL(KC_OCQUOT, KC_QUOT, KC_QUOT)
-// non dead version of quote.
-OPEN_OCL_ND(BP_OCQUOT, BP_QUOT, BP_QUOT)
-OPEN_OCL_ND(US_OCQUOT, US_QUOT, US_QUOT)
-```
-
-It is also possible to trigger a smart lock with a hold.
-This example creates a keycode, `ENTNAV` which can be used
-to type enter, or smart lock the nav layer.
-Note that `SML_NAV` should be defined in `smart_lock.defs`.
-
-__Caveat:__
-This does have the unfortunate behavior of delaying the action
-until key up. So it may not be that useful. I did not like it
-for this particular example.
-
-```
-TP_SML(ENTNAV, KC_ENTER, SML_NAV)
-```
-
-Caps Word
--------------
-This is a slightly modified version of caps word which adds a *CAPS_WORD_ON* keycode
-which can be used to turn caps word on explicitly. This is useful for mapping a
-single key or creating a combo.
-
-[As documented in here.](https://getreuer.info/posts/keyboards/caps-word/index.html)
-Holding both pinkies on home row for double tapping term, is effectively
-right-shift and left-shift, invokes caps-word. The next word will be capitalized.
-It continues until it shouldn't.
-
-Smart lock
-----------------
-They are defined in *smart_lock.def*. They need
-a custom keycode, and a layer or mods, not mod keycode, to apply,
-followed by a list of keycodes to ignore and stay active.
-This allows popping to layer which will stick until it doesn't.
-Or to apply mods until it shouldn't. Each definition has it's
-own list of key codes to ignore. Derived from _smart_layers_
-by @possumvibes.
-
-Add a keycode to custom_keys.def then assign it to it's action in smart_lock.def.
-```
-// SMLL = smart lock layer.
-// SMLM = smart lock mod.
-
-// Keycode, layer/mod.
-// list of keycodes to ignore.
-
-SMLM(SMLM_LSFT, MOD_LSFT,
- ___VI_ARROWS___,
- ___HOME_PGDN_PGUP_END___,
- ___TAB_PGDN_PGUP_BKTAB___,
- ___SML_MODS_L___)
-
-SMLL(SML_NAV, _NAV, ___NAVA_3x10___)
-
-```
-
-Mod lock
-----------------
-Mod lock is originally from @possumvibes, it has ignore keys as well,
-but these keys apply to all locks defined. which gives a slightly smaller
-memory footprint than smart locks. The mods, are keycodes, rather than mod codes.
-
-The behavior is the same as smart lock mods, but less flexible, and smaller.
-First create a keycode in custom_keys.def, then assign it to the mod you want.
-
-Ignore keys are universal for all mod locks.
-
-```
-// mod lock keys. takes keymods not mods.
-// keycode should be defined in custom_keys.def.
-// custom key, modkey to activate
-MODL(ML_LSFT, KC_LSFT)
-MODL(ML_LCTL, KC_LCTL)
-MODL(ML_LALT, KC_LALT)
-MODL(ML_LGUI, KC_LGUI)
-
-// Keycodes which will NOT cancel mod lock mode.
-IGNORE_KC( KC_LEFT)
-IGNORE_KC( KC_RGHT)
-```
-
-N-shot mods
-----------------
-I simply modified N-shots to use a def file. This is essentially @possumvibes
-fancier version of @callum's one shot mods. It has ignore and cancel keys,
-and there are one shot mods or N shot mods. Ignore and cancel keys apply
-to all oneshot and n-shots.
-
-```
-// Define keycodes in custom keys.
-// KEYCode, mod keycode, to set for n-shot.
-// ONESHOT is for one.
-// NSHOT takes a count.
-
-// oneshots
-ONESHOT(OS_LSFT, KC_LSFT)
-
-// N-Shots
-NSHOT(TS_LCTL, KC_LCTL, 2)
-
-// Keys which will cancel the n-shots.
-CANCEL_KEY( PANIC)
-
-// Keys which will be ignored by n-shots.
-IGNORE_KEY( SML_NAV)
-```
-
-One-shot mods
-----------------
-This code came by way of @jurgen-kluft, I encapsulated the code and made
-the user functions definable with a .def file. This is similar to N-shots.
-This one keeps track of the last key consumed which helps it's decision making.
-It also has cancel and ignore keys like N-shots.
-
-Essentially the same as n-shots, but with less elegant C code. Choose one or
-the other.
-
-In evaluation. The code for nshots is better.
-
-```
-// custom-key, Oneshot name.
-ONESHOT( OS_LSFT, ONESHOT_LSFT)
-
-// keys to cancel
-CANCEL_KEY( KC_ESC)
-
-// keys to ignore.
-IGNORE_KEY( SPC_NAV)
-```
-
-Swapper
-----------------
-I added the defs code so they are easy to define. This is a way to
-alternate between 2 keycodes for a key by sending another keycode. An
-example is tab or backtab on one key, which reverses when you press a
-second key. It also allows for mods to be applied. The following defines
-SW_WIN, which sends left alt-tab and shift- left alt- tab, when reversed
-by SW_REV.
-
-```
-SWAPPER_KEY(SW_WIN, SW_REV, KC_TAB, S(KC_TAB), KC_LALT)
-```
-Note: The switch key is not automatically defined in the custom keys enum in
-_keycodes.h_. It is convenient to use the same one which causes problems
-for automatically adding it. Add it to *custom_keys.def*
-
-Encoders
-----------------
-This is basic encoder stuff, modified to use a def file which makes it a lot easier
-to define and use. It can switch the encoder functions based on layers and mods.
-Give it a layer name and/or mods to match on, and the clockwise and counter
-clockwise keycodes to send.
-
-I used LEFT and RIGHT, but really it's just 0-N, but I happen to have one
-on the left and one on the right. If you have one, use 0 or LEFT.
-
-The code scans the entries for matches on layer first, checking for a match for
-mods. If an encoder entry is not found it then scans for entries with
-layer set to LAYER_NONE.
-
-RGB light controls require calling the functions directly, for this
-there is a special macro and function that does this. The functions
-should take no arguments.
-
-```
-// Layer/none, encoder index 0/1, CW_KC, CCW_KC, Qualifying mod or none
-// LAYER_NONE and MOD_NONE for a single use.
-// LEFT and RIGHT for index. they go on from there, 2, 3, etc
-// if one encoder, LEFT/0, is the first one, on the master side.
-
-// default encoders, all layers no mods.
-ENCODER_ACTION(LAYER_NONE, RIGHT, KC_PGDN, KC_PGUP, MOD_NONE)
-ENCODER_ACTION(LAYER_NONE, LEFT, KC_DOWN, KC_UP, MOD_NONE)
-ENCODER_ACTION(LAYER_NONE, LEFT, KC_PGDN, KC_PGUP, MOD_LSFT)
-
-// Symbol layer encoders.
-ENCODER_ACTION(_SYMB, LEFT, KC_LEFT, KC_RIGHT, MOD_NONE)
-
-// RGB function encoders
-ENCODER_FUNCTION(_RGB, LEFT,
- rgb_matrix_increase_speed_noeeprom,
- rgb_matrix_decrease_speed_noeeprom, MOD_NONE)
-```
-
-
-Unicode
-----------------
-This is just the basic unicode example everyone seems to have.
-Add your keys to send unicode strings like so.
-
-```
- UC_STR(UC_DISA, "ಠ_ಠ")
-```
-
-Send_string
---------------
-This is just basic send string functionality using *SEND_STRING* and
-*SEND_STRING_DELAY*. Each entry defines a key to send a string.
-
-```
-SEND_STR(MYKEY, "this is a test")
-SEND_STR_DELAY(VRSN, QMK_KEYBOARD ":" QMK_KEYMAP " @ " QMK_VERSION ", Built on: " QMK_BUILDDATE)
-```
-
-Console key logging - for heat maps.
-----------------------
-Both CONSOLE_ENABLE and CONSOLE_KEY_LOGGER_ENABLE must be enabled for this to work.
-
-This is a console key logger which can save keys typed for analysis of keymaps
-using Vlad/Precondition's heat map tool. The code for the logger came from
-[here](https://precondition.github.io/qmk-heatmap#how-to-collect-the-required-data)
-The explanation and use of the heatmap is [here](https://precondition.github.io/qmk-heatmap)
-
-There is a script ```listen_keylogger.sh``` which should be run to collect
-the keylogger data.
-
-This does require **hid_listen** to be installed on the computer.
-On Arch linux this can by installed from the AUR with ```yay -S hid_listen```
-
-The output can also be seen just by using ```qmk console```.
-
-Note: _print.h_ is automatically included when CONSOLE_ENABLE is set. This allows
-for debug messages anwhere in the code base as needed to see what might be going
-on.
-
-Tap Dance
---------------------
-I had a lot of tap dance, It's turned off. It's big. tap-hold works pretty well most of the time, instead.
-My favorites were tab-backtab, home-end.
-
diff --git a/users/ericgebhart/rules.mk b/users/ericgebhart/rules.mk
deleted file mode 100755
index 8ec481c17a..0000000000
--- a/users/ericgebhart/rules.mk
+++ /dev/null
@@ -1,87 +0,0 @@
-INTROSPECTION_KEYMAP_C = keymap/keymap.c # keymaps
-SRC += ericgebhart.c
-SRC += process_records.c
-SRC += $(USER_PATH)/lang/locales.c
-SRC += $(USER_PATH)/extensions/extensions.c
-SRC += $(USER_PATH)/extensions/tap_hold.c
-SRC += $(USER_PATH)/extensions/accented_keys.c
-SRC += $(USER_PATH)/extensions/altlocal_keys.c
-SRC += $(USER_PATH)/extensions/tap_dances.c
-SRC += $(USER_PATH)/extensions/encoders.c
-SRC += $(USER_PATH)/extensions/swapper.c
-SRC += $(USER_PATH)/extensions/mod_lock.c
-SRC += $(USER_PATH)/extensions/smart_lock.c
-SRC += $(USER_PATH)/extensions/nshot_mod.c
-SRC += $(USER_PATH)/extensions/oneshot.c
-SRC += $(USER_PATH)/extensions/unicode.c
-SRC += $(USER_PATH)/extensions/send_string.c
-SRC += $(USER_PATH)/extensions/console_key_logger.c
-SRC += $(USER_PATH)/extensions/not_dead.c
-SRC += $(USER_PATH)/extensions/alt_shift.c
-SRC += $(USER_PATH)/extensions/quick_tap.c
-SRC += $(USER_PATH)/oled/oled_stuff.c
-SRC += $(USER_PATH)/oled/oled_cartes.c
-SRC += $(USER_PATH)/oled/oled_layers.c
-
-VPATH += $(USER_PATH)/layer_names
-VPATH += $(USER_PATH)/oled
-VPATH += $(USER_PATH)/extensions
-VPATH += $(USER_PATH)/base_layers
-VPATH += $(USER_PATH)/defs
-VPATH += $(USER_PATH)/keyboards
-VPATH += $(USER_PATH)/keymap
-VPATH += $(USER_PATH)/lang
-VPATH += $(USER_PATH)/layers
-VPATH += $(USER_PATH)/mod_layers
-VPATH += $(USER_PATH)/oled
-
-# MCU=STM32F411
-# BOARD=QMK_PROTON_C
-# SOFT_SERIAL_PIN=D2
-# # Bootloader selection
-# BOOTLOADER = stm32-dfu
-
-# WS2812_DRIVER = pwm
-# SERIAL_DRIVER = usart
-# AUDIO_ENABLE = no
-# LTO_ENABLE = no
-# CONVERT_TO=proton_c
-
-# so the keyboard's code doesn't add stuff we don't need.
-# when we use our own oled renders.
-# oled_custom_enable should also be set in config.h.
-OLED_ENABLE = yes
-OLED_CUSTOM_ENABLE = yes
-
-ifeq ($(strip $(OLED_CUSTOM_ENABLE)), yes)
- SRC += $(USER_PATH)/oled/oled_stuff.c
-endif
-
-
-MOUSEKEY_ENABLE = yes # Mouse keys
-EXTRAKEY_ENABLE = no # Audio control and System control
-COMMAND_ENABLE = no # Commands for debug and configuration
-NKRO_ENABLE = no # Enable N-Key Rollover
-SWAP_HANDS_ENABLE= no # Allow swapping hands of keyboard
-KEY_LOCK_ENABLE = no
-TAP_DANCE_ENABLE = no # Enable the tap dance feature.
-KEY_OVERRIDE_ENABLE = no
-CONSOLE_ENABLE = no # Console for debug or keylogging.
-
-
-BOOTMAGIC_ENABLE = no # Enable Bootmagic Lite
-UNICODE_ENABLE = no
-SLEEP_LED_ENABLE = no
-
-LTO_ENABLE = yes
-
-SPACE_CADET_ENABLE = no
-GRAVE_ESC_ENABLE = no
-MAGIC_ENABLE = no
-COMBO_ENABLE = yes
-CAPS_WORD_ENABLE = yes
-
-ENCODER_ENABLE = no
-RGBLIGHT_ENABLE = no
-BACKLIGHT_ENABLE = no
-RGB_MATRIX_ENABLE = no
diff --git a/users/gary/gary.c b/users/gary/gary.c
deleted file mode 100644
index aa49e7d659..0000000000
--- a/users/gary/gary.c
+++ /dev/null
@@ -1 +0,0 @@
-#include "gary.h"
diff --git a/users/gary/gary.h b/users/gary/gary.h
deleted file mode 100644
index adf25b9a75..0000000000
--- a/users/gary/gary.h
+++ /dev/null
@@ -1,42 +0,0 @@
-#include QMK_KEYBOARD_H
-
-#pragma once
-#define MASTER_LEFT
-
-// Layers
-// #define BASE 0 // Base layer
-// #define FCTN 4 // Function
-#define _QWERTY 0
-#define _LOWER 1
-#define _RAISE 2
-
-enum custom_keycodes {
- QWERTY = SAFE_RANGE,
- LOWER,
- RAISE,
-};
-
-#define KC_RST QK_BOOT
-#define KC_ KC_TRNS
-
-#define KC_LOWR MO(_LOWER) // Lower layer
-#define KC_RASE MO(_RAISE) // Raise layer
-#define KC_CTLC C(KC_C)
-#define KC_CLTB C(KC_TAB)
-#define KC_OPASS G(KC_BSLS) // GUI + Back Slash
-#define KC_GARY LT(_RAISE, KC_SPC) // Hold for Raise, Tap for Space
-
-#define KC_SHOT SCMD(C(KC_4)) // Screenshot to Paste
-
-// Window Management
-#define KC_FULL A(G(KC_F)) // Full Screen
-#define KC_CNTR A(G(KC_C)) // Center
-#define KC_LHLF A(G(KC_LEFT)) // Left Half
-#define KC_RHLF A(G(KC_RGHT)) // Right Half
-
-#define KC_UPLF C(G(KC_LEFT)) // Upper Left
-#define KC_UPRG C(G(KC_RGHT)) // Upper Right
-#define KC_DNLF S(C(G(KC_LEFT))) // Lower Left
-#define KC_DNRG S(C(G(KC_RGHT))) // Lower Right
-
-#define KC_NEXT LCAG(KC_LEFT) // Move the Window to next display
diff --git a/users/gary/readme.md b/users/gary/readme.md
deleted file mode 100644
index a8c22e5ae7..0000000000
--- a/users/gary/readme.md
+++ /dev/null
@@ -1,14 +0,0 @@
-Copyright 2019 Gary @garyjzhao
-
-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/>.
diff --git a/users/gary/rules.mk b/users/gary/rules.mk
deleted file mode 100644
index b6aa3490ba..0000000000
--- a/users/gary/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-SRC += gary.c
diff --git a/users/gourdo1/autocorrect/autocorrection.c b/users/gourdo1/autocorrect/autocorrection.c
deleted file mode 100644
index dae62d37a2..0000000000
--- a/users/gourdo1/autocorrect/autocorrection.c
+++ /dev/null
@@ -1,182 +0,0 @@
-// Copyright 2021-2022 Google LLC
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// https://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-//
-// For full documentation, see
-// https://getreuer.info/posts/keyboards/autocorrection
-
-#include "autocorrection.h"
-
-#include <string.h>
-#include "autocorrection_data.h"
-
-#if AUTOCORRECTION_MIN_LENGTH < 4
-// Odd output or hard locks on the board have been observed when the min typo
-// length is 3 or lower (https://github.com/getreuer/qmk-keymap/issues/2).
-// Additionally, autocorrection entries for short typos are more likely to false
-// trigger, so it is suggested that typos be at least 5 characters.
-#error "Min typo length is less than 4. Autocorrection may behave poorly."
-#endif
-
-bool process_autocorrection(uint16_t keycode, keyrecord_t* record) {
- if (user_config.autocorrect) {
- static uint8_t typo_buffer[AUTOCORRECTION_MAX_LENGTH] = {0};
- static uint8_t typo_buffer_size = 0;
-
- // Ignore key release; we only process key presses.
- if (!record->event.pressed) { return true; }
-
- #ifndef NO_ACTION_ONESHOT
- const uint8_t mods = get_mods() | get_oneshot_mods();
- #else
- const uint8_t mods = get_mods();
- #endif // NO_ACTION_ONESHOT
- // Disable autocorrection while a mod other than shift is active.
- if ((mods & ~MOD_MASK_SHIFT) != 0) {
- typo_buffer_size = 0;
- return true;
- }
-
- // The following switch cases address various kinds of keycodes. This logic is
- // split over two switches rather than merged into one. The first switch may
- // extract a basic keycode which is then further handled by the second switch,
- // e.g. a layer-tap key with Caps Lock `LT(layer, KC_CAPS)`.
- switch (keycode) {
- #ifndef NO_ACTION_TAPPING
- case QK_MOD_TAP ... QK_MOD_TAP_MAX: // Tap-hold keys.
- #ifndef NO_ACTION_LAYER
- case QK_LAYER_TAP ... QK_LAYER_TAP_MAX:
- #endif // NO_ACTION_LAYER
- // Ignore when tap-hold keys are held.
- if (record->tap.count == 0) { return true; }
- // Otherwise when tapped, get the basic keycode.
- // Fallthrough intended.
- #endif // NO_ACTION_TAPPING
-
- // Handle shifted keys, e.g. symbols like KC_EXLM = S(KC_1).
- case QK_LSFT ... QK_LSFT + 255:
- case QK_RSFT ... QK_RSFT + 255:
- keycode &= 0xff; // Get the basic keycode.
- break;
-
- // NOTE: Space Cadet keys expose no info to check whether they are being
- // tapped vs. held. This makes autocorrection ambiguous, e.g. SC_LCPO might
- // be '(', which we would treat as a word break, or it might be shift, which
- // we would treat as having no effect. To behave cautiously, we allow Space
- // Cadet keycodes to fall to the logic below and clear autocorrection state.
- }
-
- switch (keycode) {
- // Ignore shifts, Caps Lock, one-shot mods, and layer switch keys.
- case KC_NO:
- case KC_LSFT:
- case KC_RSFT:
- case KC_CAPS:
- case QK_ONE_SHOT_MOD ... QK_ONE_SHOT_MOD_MAX:
- case QK_TO ... QK_TO_MAX:
- case QK_MOMENTARY ... QK_MOMENTARY_MAX:
- case QK_DEF_LAYER ... QK_DEF_LAYER_MAX:
- case QK_TOGGLE_LAYER ... QK_TOGGLE_LAYER_MAX:
- case QK_ONE_SHOT_LAYER ... QK_ONE_SHOT_LAYER_MAX:
- case QK_LAYER_TAP_TOGGLE ... QK_LAYER_TAP_TOGGLE_MAX:
- case QK_LAYER_MOD ... QK_LAYER_MOD_MAX:
- return true; // Ignore these keys.
- }
-
- if (keycode == KC_QUOT) {
- // Treat " (shifted ') as a word boundary.
- if ((mods & MOD_MASK_SHIFT) != 0) { keycode = KC_SPC; }
- } else if (!(KC_A <= keycode && keycode <= KC_Z)) {
- if (keycode == KC_BSPC) {
- // Remove last character from the buffer.
- if (typo_buffer_size > 0) { --typo_buffer_size; }
- return true;
- } else if (KC_1 <= keycode && keycode <= KC_SLSH && keycode != KC_ESC) {
- // Set a word boundary if space, period, digit, etc. is pressed.
- // Behave more conservatively for the enter key. Reset, so that enter
- // can't be used on a word ending.
- if (keycode == KC_ENT) { typo_buffer_size = 0; }
- keycode = KC_SPC;
- } else {
- // Clear state if some other non-alpha key is pressed.
- typo_buffer_size = 0;
- return true;
- }
- }
-
- // If the buffer is full, rotate it to discard the oldest character.
- if (typo_buffer_size >= AUTOCORRECTION_MAX_LENGTH) {
- memmove(typo_buffer, typo_buffer + 1, AUTOCORRECTION_MAX_LENGTH - 1);
- typo_buffer_size = AUTOCORRECTION_MAX_LENGTH - 1;
- }
-
- // Append `keycode` to the buffer.
- // NOTE: `keycode` must be a basic keycode (0-255) by this point.
- typo_buffer[typo_buffer_size++] = (uint8_t) keycode;
- // Early return if not many characters have been buffered so far.
- if (typo_buffer_size < AUTOCORRECTION_MIN_LENGTH) { return true; }
-
- // Check whether the buffer ends in a typo. This is done using a trie
- // stored in `autocorrection_data`.
- uint16_t state = 0;
- uint8_t code = pgm_read_byte(autocorrection_data + state);
- for (int i = typo_buffer_size - 1; i >= 0; --i) {
- const uint8_t key_i = typo_buffer[i];
-
- if (code & 64) { // Check for match in node with multiple children.
- code &= 63;
- for (; code != key_i;
- code = pgm_read_byte(autocorrection_data + (state += 3))) {
- if (!code) { return true; }
- }
-
- // Follow link to child node.
- state = (uint16_t)(
- (uint_fast16_t)pgm_read_byte(autocorrection_data + state + 1)
- | (uint_fast16_t)pgm_read_byte(autocorrection_data + state + 2) << 8);
- // Otherwise check for match in node with a single child.
- } else if (code != key_i) {
- return true;
- } else if (!(code = pgm_read_byte(autocorrection_data + (++state)))) {
- ++state;
- }
-
- // Stop if `state` becomes an invalid index. This should not normally
- // happen, it is a safeguard in case of a bug, data corruption, etc.
- if (state >= sizeof(autocorrection_data)) {
- return true;
- }
-
- // Read first byte of the next node.
- code = pgm_read_byte(autocorrection_data + state);
-
- if (code & 128) { // A typo was found! Apply autocorrection.
- const int backspaces = code & 63;
- for (int i = 0; i < backspaces; ++i) { tap_code(KC_BSPC); }
- send_string_P((char const*)(autocorrection_data + state + 1));
-
- if (keycode == KC_SPC) {
- typo_buffer[0] = KC_SPC;
- typo_buffer_size = 1;
- return true;
- } else {
- typo_buffer_size = 0;
- return false;
- }
- }
- }
- return true;
- }
- return true;
-}
diff --git a/users/gourdo1/autocorrect/autocorrection.h b/users/gourdo1/autocorrect/autocorrection.h
deleted file mode 100644
index d344a815f7..0000000000
--- a/users/gourdo1/autocorrect/autocorrection.h
+++ /dev/null
@@ -1,40 +0,0 @@
-// Copyright 2021-2022 Google LLC
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// https://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-//
-// Autocorrection on your keyboard.
-//
-// This library implements rudimentary autocorrection, automatically detecting
-// and fixing some misspellings. Beware that the autocorrection logic is
-// unaware of hotkey or mouse-based cursor movement.
-//
-// For full documentation, see
-// https://getreuer.info/posts/keyboards/autocorrection
-
-#pragma once
-
-#include "quantum.h"
-
-#include "gourdo1.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-bool process_autocorrection(uint16_t keycode, keyrecord_t* record);
-
-#ifdef __cplusplus
-}
-#endif
-
diff --git a/users/gourdo1/autocorrect/autocorrection_data.h b/users/gourdo1/autocorrect/autocorrection_data.h
deleted file mode 100644
index 66518201e2..0000000000
--- a/users/gourdo1/autocorrect/autocorrection_data.h
+++ /dev/null
@@ -1,722 +0,0 @@
-// Generated code.
-
-// Autocorrection dictionary (400 entries):
-// :acheiv -> achiev
-// :agian -> again
-// :agred -> agreed
-// :ajust -> adjust
-// :alot: -> a lot
-// :andteh -> and the
-// :andthe -> and the
-// :anual -> annual
-// :asign -> assign
-// :aslo: -> also
-// :asthe -> as the
-// :atthe -> at the
-// :casue -> cause
-// :choses -> chooses
-// :eveyr -> every
-// :foudn -> found
-// :gaurd -> guard
-// :goign -> going
-// :gonig -> going
-// :graet -> great
-// :grammer -> grammar
-// :guage -> gauge
-// :haev -> have
-// :hapen -> happen
-// :htere -> there
-// :htikn -> think
-// :htink -> think
-// :hwihc -> which
-// :hwile -> while
-// :idaes -> ideas
-// :jstu: -> just
-// :jsut: -> just
-// :knwo -> know
-// :konw -> know
-// :kwno -> know
-// :moeny -> money
-// :ocuntry -> country
-// :ocur -> occur
-// :olther -> other
-// :otehr -> other
-// :owudl -> would
-// :rference -> reference
-// :sicne -> since
-// :socre -> score
-// :szie -> size
-// :the:the: -> the
-// :theri -> their
-// :thier -> their
-// :thsoe -> those
-// :tothe -> to the
-// :ture -> true
-// :turth -> truth
-// :uesd: -> used
-// :usally -> usually
-// :yaers -> years
-// :yeasr -> years
-// abbout -> about
-// aberation -> aberration
-// abilties -> abilities
-// abilty -> ability
-// abotu -> about
-// abouta -> about a
-// aboutit -> about it
-// aboutthe -> about the
-// abvove -> above
-// accesories -> accessories
-// accomodate -> accommodate
-// accross -> across
-// acommodate -> accommodate
-// acomplish -> accomplish
-// actualy -> actually
-// acurate -> accurate
-// acutally -> actually
-// addtion -> addition
-// adviced -> advised
-// againnst -> against
-// aganist -> against
-// aggreed -> agreed
-// agianst -> against
-// ahppn -> happen
-// aledge -> allege
-// alledge -> allege
-// allign -> align
-// almsot -> almost
-// alomst -> almost
-// alwasy -> always
-// alwyas -> always
-// amature -> amateur
-// anohter -> another
-// anomolous -> anomalous
-// anomoly -> anomaly
-// anytying -> anything
-// aparent -> apparent
-// aparrent -> apparent
-// apparant -> apparent
-// apparrent -> apparent
-// aquire -> acquire
-// aroud -> around
-// arround -> around
-// arund -> around
-// asthetic -> aesthetic
-// auxilary -> auxiliary
-// auxillary -> auxiliary
-// auxilliary -> auxiliary
-// availabe -> available
-// availaible -> available
-// availalbe -> available
-// availble -> available
-// availiable -> available
-// avalable -> available
-// avaliable -> available
-// avilable -> available
-// baceause -> because
-// bandwith -> bandwidth
-// bankrupcy -> bankruptcy
-// baout -> about
-// beacuse -> because
-// becasue -> because
-// beccause -> because
-// becouse -> because
-// becuase -> because
-// bedore -> before
-// beeing -> being
-// befoer -> before
-// begginer -> beginner
-// beleif -> belief
-// beleive -> believe
-// belive -> believe
-// beteen -> between
-// beween -> between
-// bewteen -> between
-// breif -> brief
-// burried -> buried
-// busness -> business
-// bussiness -> business
-// cacheing -> caching
-// calander -> calendar
-// caluclate -> calculate
-// caluculate -> calculate
-// calulate -> calculate
-// catagory -> category
-// cauhgt -> caught
-// ceratin -> certain
-// certian -> certain
-// cheif -> chief
-// chekc -> check
-// childen -> children
-// chnage -> change
-// choosen -> chosen
-// cieling -> ceiling
-// circut -> circuit
-// claer -> clear
-// clasic -> classic
-// cmoputer -> computer
-// coform -> conform
-// cognizent -> cognizant
-// collegue -> colleague
-// comapny -> company
-// comittee -> committee
-// comming: -> coming
-// commitee -> committee
-// competance -> competence
-// competant -> competent
-// complier -> compiler
-// concensus -> consensus
-// considerd -> considered
-// contian -> contain
-// copywrite: -> copyright
-// cosnt -> const
-// coudl -> could
-// dervied -> derived
-// desicion -> decision
-// didnot -> did not
-// diferent -> different
-// diferrent -> different
-// differnt -> different
-// diffrent -> different
-// divison -> division
-// doulbe -> double
-// dyanmic -> dynamic
-// effecient -> efficient
-// elasped -> elapsed
-// eligable -> eligible
-// elpased -> elapsed
-// embarass -> embarrass
-// embeded -> embedded
-// encypt -> encrypt
-// excecut -> execut
-// excercise -> exercise
-// failse -> false
-// fales -> false
-// fasle -> false
-// feild -> field
-// finaly -> finally
-// firend -> friend
-// firts -> first
-// fitler -> filter
-// flase -> false
-// follwo -> follow
-// foriegn -> foreign
-// foward -> forward
-// fraciton -> fraction
-// freind -> friend
-// frequecy -> frequency
-// fromthe -> from the
-// fucntion -> function
-// fufill -> fulfill
-// fullfill -> fulfill
-// futher -> further
-// ganerate -> generate
-// garantee -> guarantee
-// gaurantee -> guarantee
-// generaly -> generally
-// govement -> government
-// govenment -> government
-// goverment -> government
-// governmnet -> government
-// govorment -> government
-// govornment -> government
-// greatful -> grateful
-// guaratee -> guarantee
-// heigher -> higher
-// heigth -> height
-// heirarchy -> hierarchy
-// higest -> highest
-// howver -> however
-// hydogen -> hydrogen
-// hygeine -> hygiene
-// hypocracy -> hypocrisy
-// hypocrasy -> hypocrisy
-// hypocricy -> hypocrisy
-// hypocrit: -> hypocrite
-// iamge -> image
-// importamt -> important
-// inclued -> include
-// indeces -> indices
-// indecies -> indices
-// indicies -> indices
-// inital -> initial
-// insted -> instead
-// interator -> iterator
-// intput -> input
-// intrest -> interest
-// invliad -> invalid
-// laguage -> language
-// largst -> largest
-// learnign -> learning
-// lenght -> length
-// levle -> level
-// liasion -> liaison
-// libary -> library
-// likly -> likely
-// lisense -> license
-// listner -> listener
-// littel -> little
-// looses: -> loses
-// looup -> lookup
-// macthing -> matching
-// maintence -> maintenance
-// manefist -> manifest
-// mesage -> message
-// morgage -> mortgage
-// mysefl -> myself
-// namesapce -> namespace
-// namespcae -> namespace
-// naturual -> natural
-// neccesary -> necessary
-// necesary -> necessary
-// nulltpr -> nullptr
-// occassion -> occasion
-// occured -> occurred
-// operaotr -> operator
-// ouptut -> output
-// ouput -> output
-// overide -> override
-// ovveride -> override
-// pallete -> palette
-// paralel -> parallel
-// parralel -> parallel
-// parrallel -> parallel
-// particualr -> particular
-// paticular -> particular
-// peaple -> people
-// peice -> piece
-// peolpe -> people
-// peopel -> people
-// perhasp -> perhaps
-// perheaps -> perhaps
-// perhpas -> perhaps
-// perphas -> perhaps
-// persue -> pursue
-// poeople -> people
-// poeple -> people
-// poitner -> pointer
-// posess -> possess
-// postion -> position
-// preiod -> period
-// primarly -> primarily
-// priviledge -> privilege
-// privte -> private
-// probablly -> probably
-// probaly -> probably
-// probelm -> problem
-// proccess -> process
-// proeprty -> property
-// prominant -> prominent
-// proove -> prove
-// propery -> property
-// propogate -> propagate
-// psuedo -> pseudo
-// raelly -> really
-// realtion -> relation
-// realy -> really
-// reasearch -> research
-// receiev -> receiv
-// recepient -> recipient
-// reciept -> receipt
-// reciev -> receiv
-// recipiant -> recipient
-// recrod -> record
-// recuring -> recurring
-// referece -> reference
-// refered -> referred
-// regluar -> regular
-// relaly -> really
-// releated -> related
-// relevent -> relevant
-// repitition -> repetition
-// reponse -> response
-// reprot -> report
-// resutl -> result
-// retrun -> return
-// retun -> return
-// reuslt -> result
-// reutrn -> return
-// reveiw -> review
-// saftey -> safety
-// safty -> safety
-// satisifed -> satisfied
-// scheduel -> schedule
-// seperat -> separat
-// sequnce -> sequence
-// shoudl -> should
-// similiar -> similar
-// simmilar -> similar
-// singed -> signed
-// singel -> single
-// slighly -> slightly
-// somehwat -> somewhat
-// spectogram -> spectrogram
-// statment -> statement
-// stirng -> string
-// stregth -> strength
-// strengh -> strength
-// strign -> string
-// succsess -> success
-// sucess -> success
-// sugest -> suggest
-// sumary -> summary
-// supress -> suppress
-// surpress -> suppress
-// swithc -> switch
-// swtich -> switch
-// symetric -> symmetric
-// teamplate -> template
-// tempalte -> template
-// theese -> these
-// therfore -> therefore
-// thign -> thing
-// thigsn -> things
-// thikn -> think
-// thiunk -> think
-// thnigs -> things
-// thresold -> threshold
-// throught -> thought
-// tihkn -> think
-// tkaes -> takes
-// todya -> today
-// toghether -> together
-// tolerence -> tolerance
-// tongiht -> tonight
-// tranpose -> transpose
-// typcial -> typical
-// udpate -> update
-// unkown -> unknown
-// unqiue -> unique
-// ususally -> usually
-// verticies -> vertices
-// virutal -> virtual
-// vitual -> virtual
-// whcih -> which
-// whereever -> wherever
-// wherre -> where
-// whihc -> which
-// whlch -> which
-// widht -> width
-// wierd -> weird
-// wihch -> which
-// woudl -> would
-// yeild -> yield
-
-#define AUTOCORRECTION_MIN_LENGTH 5 // "abotu"
-#define AUTOCORRECTION_MAX_LENGTH 10 // "auxilliary"
-
-static const uint8_t autocorrection_data[5967] PROGMEM = {108, 67, 0, 4, 212, 0,
- 6, 236, 0, 7, 100, 1, 8, 15, 3, 9, 169, 8, 10, 204, 8, 11, 68, 9, 12, 246, 9,
- 14, 0, 10, 15, 28, 10, 16, 79, 11, 17, 129, 11, 18, 175, 13, 19, 227, 13, 21,
- 253, 13, 22, 194, 15, 23, 121, 17, 24, 201, 20, 25, 210, 20, 26, 8, 21, 28,
- 34, 21, 0, 71, 89, 0, 8, 99, 0, 10, 130, 0, 18, 142, 0, 22, 152, 0, 23, 163,
- 0, 24, 202, 0, 0, 22, 8, 24, 44, 0, 131, 115, 101, 100, 0, 75, 106, 0, 23,
- 115, 0, 0, 23, 44, 8, 11, 23, 44, 0, 132, 0, 12, 21, 26, 28, 19, 18, 6, 0,
- 133, 114, 105, 103, 104, 116, 0, 17, 12, 16, 16, 18, 6, 0, 132, 105, 110, 103,
- 0, 15, 22, 4, 44, 0, 131, 108, 115, 111, 0, 8, 22, 18, 18, 15, 0, 132, 115,
- 101, 115, 0, 76, 173, 0, 18, 183, 0, 24, 193, 0, 0, 21, 6, 18, 19, 28, 11, 0,
- 128, 101, 0, 15, 4, 44, 0, 131, 32, 108, 111, 116, 0, 22, 13, 44, 0, 131, 117,
- 115, 116, 0, 23, 22, 13, 44, 0, 131, 117, 115, 116, 0, 87, 219, 0, 28, 228, 0,
- 0, 24, 18, 5, 4, 0, 128, 32, 97, 0, 7, 18, 23, 0, 129, 97, 121, 0, 75, 246, 0,
- 12, 28, 1, 14, 92, 1, 0, 76, 253, 0, 23, 20, 1, 0, 75, 4, 1, 26, 10, 1, 0, 26,
- 0, 129, 99, 104, 0, 11, 44, 0, 132, 119, 104, 105, 99, 104, 0, 12, 26, 22, 0,
- 129, 99, 104, 0, 80, 41, 1, 21, 53, 1, 22, 67, 1, 23, 76, 1, 0, 17, 4, 28, 7,
- 0, 132, 110, 97, 109, 105, 99, 0, 23, 8, 16, 28, 22, 0, 132, 109, 101, 116,
- 114, 105, 99, 0, 4, 15, 6, 0, 129, 115, 105, 99, 0, 8, 11, 23, 22, 4, 0, 134,
- 101, 115, 116, 104, 101, 116, 105, 99, 0, 8, 11, 6, 0, 129, 99, 107, 0, 68,
- 122, 1, 8, 134, 1, 15, 84, 2, 17, 124, 2, 18, 180, 2, 21, 207, 2, 24, 7, 3, 0,
- 12, 15, 25, 17, 12, 0, 131, 97, 108, 105, 100, 0, 70, 168, 1, 7, 178, 1, 8,
- 188, 1, 9, 199, 1, 10, 212, 1, 12, 222, 1, 19, 248, 1, 21, 3, 2, 22, 38, 2,
- 23, 50, 2, 24, 75, 2, 0, 12, 25, 7, 4, 0, 130, 115, 101, 100, 0, 8, 5, 16, 8,
- 0, 129, 100, 101, 100, 0, 21, 10, 10, 4, 0, 132, 114, 101, 101, 100, 0, 12,
- 22, 12, 23, 4, 22, 0, 131, 102, 105, 101, 100, 0, 17, 12, 22, 0, 131, 103,
- 110, 101, 100, 0, 85, 229, 1, 25, 238, 1, 0, 21, 24, 5, 0, 131, 105, 101, 100,
- 0, 21, 8, 7, 0, 131, 105, 118, 101, 100, 0, 22, 4, 15, 8, 0, 131, 112, 115,
- 101, 100, 0, 72, 13, 2, 10, 22, 2, 24, 29, 2, 0, 9, 8, 21, 0, 129, 114, 101,
- 100, 0, 4, 44, 0, 128, 101, 100, 0, 6, 6, 18, 0, 129, 114, 101, 100, 0, 4, 19,
- 15, 8, 0, 132, 97, 112, 115, 101, 100, 0, 68, 57, 2, 22, 68, 2, 0, 8, 15, 8,
- 21, 0, 132, 97, 116, 101, 100, 0, 17, 12, 0, 128, 97, 100, 0, 15, 6, 17, 12,
- 0, 129, 100, 101, 0, 76, 91, 2, 18, 112, 2, 0, 8, 0, 73, 100, 2, 28, 106, 2,
- 0, 131, 105, 101, 108, 100, 0, 131, 105, 101, 108, 100, 0, 22, 8, 21, 11, 23,
- 0, 130, 104, 111, 108, 100, 0, 72, 134, 2, 12, 145, 2, 24, 155, 2, 0, 21, 12,
- 9, 0, 132, 114, 105, 101, 110, 100, 0, 8, 21, 9, 0, 131, 105, 101, 110, 100,
- 0, 82, 162, 2, 21, 172, 2, 0, 21, 21, 4, 0, 132, 111, 117, 110, 100, 0, 4, 0,
- 130, 111, 117, 110, 100, 0, 76, 187, 2, 21, 198, 2, 0, 8, 21, 19, 0, 132, 101,
- 114, 105, 111, 100, 0, 6, 8, 21, 0, 130, 111, 114, 100, 0, 68, 217, 2, 8, 228,
- 2, 24, 253, 2, 0, 26, 18, 9, 0, 131, 114, 119, 97, 114, 100, 0, 71, 235, 2,
- 12, 245, 2, 0, 12, 22, 17, 18, 6, 0, 128, 101, 100, 0, 26, 0, 131, 101, 105,
- 114, 100, 0, 4, 10, 44, 0, 131, 117, 97, 114, 100, 0, 18, 21, 4, 0, 128, 110,
- 100, 0, 68, 67, 3, 5, 80, 3, 6, 123, 3, 7, 251, 3, 8, 23, 4, 10, 107, 4, 11,
- 227, 4, 12, 52, 5, 15, 61, 5, 17, 0, 6, 18, 27, 6, 19, 37, 6, 21, 47, 6, 22,
- 156, 6, 23, 82, 7, 24, 45, 8, 25, 115, 8, 0, 6, 19, 22, 8, 16, 4, 17, 0, 130,
- 97, 99, 101, 0, 68, 87, 3, 15, 97, 3, 0, 15, 12, 4, 25, 4, 0, 128, 108, 101,
- 0, 68, 104, 3, 24, 115, 3, 0, 15, 12, 4, 25, 4, 0, 130, 98, 108, 101, 0, 18,
- 7, 0, 130, 98, 108, 101, 0, 72, 136, 3, 12, 147, 3, 17, 156, 3, 19, 238, 3, 0,
- 21, 8, 9, 8, 21, 0, 129, 110, 99, 101, 0, 8, 19, 0, 131, 105, 101, 99, 101, 0,
- 68, 166, 3, 8, 179, 3, 24, 228, 3, 0, 23, 8, 19, 16, 18, 6, 0, 131, 101, 110,
- 99, 101, 0, 85, 186, 3, 23, 217, 3, 0, 8, 0, 73, 195, 3, 15, 208, 3, 0, 21,
- 44, 0, 134, 101, 102, 101, 114, 101, 110, 99, 101, 0, 18, 23, 0, 131, 97, 110,
- 99, 101, 0, 17, 12, 4, 16, 0, 129, 97, 110, 99, 101, 0, 20, 8, 22, 0, 130,
- 101, 110, 99, 101, 0, 4, 22, 8, 16, 4, 17, 0, 131, 112, 97, 99, 101, 0, 12,
- 21, 8, 25, 0, 82, 7, 4, 25, 13, 4, 0, 130, 114, 105, 100, 101, 0, 18, 0, 133,
- 101, 114, 114, 105, 100, 101, 0, 23, 0, 68, 38, 4, 12, 49, 4, 17, 59, 4, 23,
- 94, 4, 0, 21, 4, 24, 10, 0, 130, 110, 116, 101, 101, 0, 16, 16, 18, 6, 0, 129,
- 116, 101, 101, 0, 4, 21, 0, 68, 69, 4, 24, 81, 4, 0, 10, 0, 134, 117, 97, 114,
- 97, 110, 116, 101, 101, 0, 4, 10, 0, 135, 117, 97, 114, 97, 110, 116, 101,
- 101, 0, 12, 16, 18, 6, 0, 132, 109, 105, 116, 116, 101, 101, 0, 68, 117, 4, 7,
- 184, 4, 16, 218, 4, 0, 74, 130, 4, 17, 141, 4, 22, 150, 4, 24, 159, 4, 0, 21,
- 18, 16, 0, 131, 116, 103, 97, 103, 101, 0, 11, 6, 0, 131, 97, 110, 103, 101,
- 0, 8, 16, 0, 130, 115, 97, 103, 101, 0, 10, 0, 108, 168, 4, 4, 174, 4, 0, 131,
- 97, 117, 103, 101, 0, 15, 0, 132, 110, 103, 117, 97, 103, 101, 0, 8, 15, 0,
- 68, 197, 4, 12, 203, 4, 15, 212, 4, 0, 131, 108, 101, 103, 101, 0, 25, 12, 21,
- 19, 0, 130, 103, 101, 0, 4, 0, 130, 103, 101, 0, 4, 12, 0, 131, 109, 97, 103,
- 101, 0, 23, 0, 71, 245, 4, 16, 255, 4, 18, 9, 5, 22, 18, 5, 23, 27, 5, 0, 17,
- 4, 44, 0, 130, 32, 116, 104, 101, 0, 18, 21, 9, 0, 130, 32, 116, 104, 101, 0,
- 23, 44, 0, 130, 32, 116, 104, 101, 0, 4, 44, 0, 130, 32, 116, 104, 101, 0, 68,
- 34, 5, 24, 42, 5, 0, 44, 0, 130, 32, 116, 104, 101, 0, 18, 5, 4, 0, 130, 32,
- 116, 104, 101, 0, 29, 22, 44, 0, 130, 105, 122, 101, 0, 69, 77, 5, 12, 190, 5,
- 19, 201, 5, 22, 241, 5, 25, 249, 5, 0, 68, 87, 5, 12, 167, 5, 15, 179, 5, 0,
- 74, 97, 5, 12, 107, 5, 15, 137, 5, 0, 12, 15, 8, 0, 131, 105, 98, 108, 101, 0,
- 15, 0, 68, 116, 5, 12, 127, 5, 0, 25, 4, 0, 133, 105, 108, 97, 98, 108, 101,
- 0, 4, 25, 4, 0, 132, 97, 98, 108, 101, 0, 68, 144, 5, 12, 155, 5, 0, 25, 4, 0,
- 132, 105, 108, 97, 98, 108, 101, 0, 25, 4, 0, 133, 97, 105, 108, 97, 98, 108,
- 101, 0, 4, 15, 12, 4, 25, 4, 0, 131, 98, 108, 101, 0, 12, 4, 25, 4, 0, 130,
- 97, 98, 108, 101, 0, 26, 11, 44, 0, 132, 119, 104, 105, 108, 101, 0, 68, 211,
- 5, 8, 220, 5, 18, 230, 5, 0, 8, 19, 0, 131, 111, 112, 108, 101, 0, 18, 19, 0,
- 132, 101, 111, 112, 108, 101, 0, 8, 18, 19, 0, 133, 101, 111, 112, 108, 101,
- 0, 4, 9, 0, 130, 108, 115, 101, 0, 8, 15, 0, 129, 101, 108, 0, 70, 7, 6, 12,
- 16, 6, 0, 12, 22, 44, 0, 130, 110, 99, 101, 0, 8, 10, 28, 11, 0, 131, 105,
- 101, 110, 101, 0, 22, 11, 23, 44, 0, 130, 111, 115, 101, 0, 15, 18, 8, 19, 0,
- 130, 112, 108, 101, 0, 70, 66, 6, 8, 76, 6, 12, 87, 6, 18, 99, 6, 21, 127, 6,
- 24, 134, 6, 0, 18, 22, 44, 0, 131, 99, 111, 114, 101, 0, 23, 11, 44, 0, 132,
- 116, 104, 101, 114, 101, 0, 24, 20, 4, 0, 132, 99, 113, 117, 105, 114, 101, 0,
- 71, 106, 6, 9, 115, 6, 0, 8, 5, 0, 131, 102, 111, 114, 101, 0, 21, 8, 11, 23,
- 0, 131, 101, 102, 111, 114, 101, 0, 8, 11, 26, 0, 129, 101, 0, 23, 0, 108,
- 143, 6, 4, 148, 6, 0, 130, 114, 117, 101, 0, 16, 4, 0, 130, 101, 117, 114, 0,
- 68, 178, 6, 8, 203, 6, 12, 211, 6, 15, 226, 6, 17, 235, 6, 18, 9, 7, 24, 22,
- 7, 0, 79, 185, 6, 24, 193, 6, 0, 9, 0, 131, 97, 108, 115, 101, 0, 6, 8, 5, 0,
- 131, 97, 117, 115, 101, 0, 8, 11, 23, 0, 130, 115, 101, 0, 6, 21, 8, 6, 27, 8,
- 0, 134, 101, 114, 99, 105, 115, 101, 0, 12, 4, 9, 0, 131, 108, 115, 101, 0,
- 72, 242, 6, 18, 253, 6, 0, 22, 12, 15, 0, 132, 99, 101, 110, 115, 101, 0, 19,
- 8, 21, 0, 132, 115, 112, 111, 110, 115, 101, 0, 19, 17, 4, 21, 23, 0, 131,
- 115, 112, 111, 115, 101, 0, 68, 32, 7, 6, 61, 7, 18, 72, 7, 0, 70, 39, 7, 8,
- 49, 7, 0, 6, 8, 5, 0, 132, 97, 117, 115, 101, 0, 6, 4, 5, 0, 134, 101, 99, 97,
- 117, 115, 101, 0, 4, 8, 5, 0, 132, 99, 97, 117, 115, 101, 0, 6, 8, 5, 0, 131,
- 97, 117, 115, 101, 0, 68, 95, 7, 8, 13, 8, 15, 24, 8, 25, 36, 8, 0, 71, 111,
- 7, 10, 148, 7, 15, 161, 7, 19, 228, 7, 21, 238, 7, 0, 18, 16, 0, 80, 121, 7,
- 18, 136, 7, 0, 18, 6, 4, 0, 135, 99, 111, 109, 109, 111, 100, 97, 116, 101, 0,
- 6, 6, 4, 0, 132, 109, 111, 100, 97, 116, 101, 0, 18, 19, 18, 21, 19, 0, 132,
- 97, 103, 97, 116, 101, 0, 70, 171, 7, 19, 184, 7, 24, 197, 7, 0, 24, 15, 4, 6,
- 0, 133, 99, 117, 108, 97, 116, 101, 0, 16, 4, 8, 23, 0, 134, 109, 112, 108,
- 97, 116, 101, 0, 70, 204, 7, 15, 217, 7, 0, 24, 15, 4, 6, 0, 134, 99, 117,
- 108, 97, 116, 101, 0, 4, 6, 0, 132, 99, 117, 108, 97, 116, 101, 0, 7, 24, 0,
- 132, 112, 100, 97, 116, 101, 0, 72, 245, 7, 24, 2, 8, 0, 17, 4, 10, 0, 134,
- 101, 110, 101, 114, 97, 116, 101, 0, 6, 4, 0, 132, 99, 117, 114, 97, 116, 101,
- 0, 15, 15, 4, 19, 0, 131, 101, 116, 116, 101, 0, 4, 19, 16, 8, 23, 0, 131,
- 108, 97, 116, 101, 0, 12, 21, 19, 0, 129, 97, 116, 101, 0, 74, 55, 8, 12, 67,
- 8, 22, 77, 8, 0, 8, 15, 15, 18, 6, 0, 130, 97, 103, 117, 101, 0, 20, 17, 24,
- 0, 131, 105, 113, 117, 101, 0, 68, 84, 8, 21, 105, 8, 0, 6, 0, 108, 93, 8, 8,
- 98, 8, 0, 130, 117, 115, 101, 0, 5, 0, 130, 117, 115, 101, 0, 8, 19, 0, 132,
- 117, 114, 115, 117, 101, 0, 76, 122, 8, 18, 147, 8, 0, 72, 129, 8, 15, 139, 8,
- 0, 15, 8, 5, 0, 131, 105, 101, 118, 101, 0, 8, 5, 0, 129, 101, 118, 101, 0,
- 82, 154, 8, 25, 161, 8, 0, 21, 19, 0, 130, 118, 101, 0, 5, 4, 0, 131, 111,
- 118, 101, 0, 12, 8, 0, 75, 182, 8, 15, 189, 8, 21, 197, 8, 0, 6, 0, 130, 105,
- 101, 102, 0, 8, 5, 0, 130, 105, 101, 102, 0, 5, 0, 130, 105, 101, 102, 0, 76,
- 211, 8, 17, 221, 8, 0, 17, 18, 10, 44, 0, 130, 105, 110, 103, 0, 76, 228, 8,
- 21, 58, 9, 0, 72, 244, 8, 11, 11, 9, 15, 24, 9, 21, 36, 9, 28, 47, 9, 0, 72,
- 251, 8, 11, 2, 9, 0, 5, 0, 131, 105, 110, 103, 0, 6, 4, 6, 0, 131, 105, 110,
- 103, 0, 23, 6, 4, 16, 0, 133, 116, 99, 104, 105, 110, 103, 0, 8, 12, 6, 0,
- 133, 101, 105, 108, 105, 110, 103, 0, 24, 6, 8, 21, 0, 130, 114, 105, 110,
- 103, 0, 23, 28, 17, 4, 0, 131, 104, 105, 110, 103, 0, 12, 23, 22, 0, 131, 114,
- 105, 110, 103, 0, 70, 87, 9, 8, 142, 9, 10, 154, 9, 12, 164, 9, 22, 173, 9,
- 23, 191, 9, 0, 75, 100, 9, 12, 109, 9, 15, 119, 9, 21, 127, 9, 0, 12, 26, 0,
- 131, 104, 105, 99, 104, 0, 23, 26, 22, 0, 131, 105, 116, 99, 104, 0, 11, 26,
- 0, 130, 105, 99, 104, 0, 4, 8, 22, 4, 8, 21, 0, 134, 115, 101, 97, 114, 99,
- 104, 0, 23, 7, 17, 4, 44, 0, 130, 32, 116, 104, 101, 0, 17, 8, 21, 23, 22, 0,
- 128, 116, 104, 0, 6, 11, 26, 0, 130, 105, 99, 104, 0, 12, 15, 19, 16, 18, 6,
- 4, 0, 134, 99, 111, 109, 112, 108, 105, 115, 104, 0, 74, 201, 9, 12, 225, 9,
- 21, 236, 9, 0, 72, 208, 9, 12, 218, 9, 0, 21, 23, 22, 0, 130, 110, 103, 116,
- 104, 0, 8, 11, 0, 129, 104, 116, 0, 26, 7, 17, 4, 5, 0, 129, 100, 116, 104, 0,
- 24, 23, 44, 0, 131, 114, 117, 116, 104, 0, 21, 8, 11, 23, 44, 0, 129, 105,
- 114, 0, 17, 0, 76, 9, 10, 24, 20, 10, 0, 23, 11, 44, 0, 132, 116, 104, 105,
- 110, 107, 0, 12, 11, 23, 0, 130, 110, 107, 0, 68, 50, 10, 7, 134, 10, 8, 177,
- 10, 9, 17, 11, 15, 26, 11, 23, 55, 11, 24, 64, 11, 0, 76, 60, 10, 23, 71, 10,
- 24, 96, 10, 0, 6, 19, 28, 23, 0, 131, 105, 99, 97, 108, 0, 76, 78, 10, 24, 86,
- 10, 0, 17, 12, 0, 129, 105, 97, 108, 0, 21, 12, 25, 0, 131, 116, 117, 97, 108,
- 0, 81, 106, 10, 21, 115, 10, 23, 124, 10, 0, 4, 44, 0, 130, 110, 117, 97, 108,
- 0, 24, 23, 4, 17, 0, 130, 97, 108, 0, 12, 25, 0, 131, 114, 116, 117, 97, 108,
- 0, 24, 0, 82, 143, 10, 26, 167, 10, 0, 70, 153, 10, 11, 157, 10, 26, 163, 10,
- 0, 129, 108, 100, 0, 22, 0, 129, 108, 100, 0, 129, 108, 100, 0, 18, 44, 0,
- 132, 119, 111, 117, 108, 100, 0, 74, 193, 10, 15, 201, 10, 19, 247, 10, 23,
- 255, 10, 24, 7, 11, 0, 17, 12, 22, 0, 129, 108, 101, 0, 68, 208, 10, 15, 234,
- 10, 0, 21, 0, 68, 217, 10, 21, 224, 10, 0, 19, 0, 129, 108, 101, 108, 0, 4,
- 19, 0, 132, 97, 108, 108, 101, 108, 0, 4, 21, 21, 4, 19, 0, 133, 97, 108, 108,
- 101, 108, 0, 18, 8, 19, 0, 129, 108, 101, 0, 23, 12, 15, 0, 129, 108, 101, 0,
- 7, 8, 11, 6, 22, 0, 129, 108, 101, 0, 8, 22, 28, 16, 0, 129, 108, 102, 0, 12,
- 9, 0, 79, 36, 11, 24, 46, 11, 0, 15, 24, 9, 0, 132, 102, 105, 108, 108, 0, 9,
- 0, 131, 108, 102, 105, 108, 108, 0, 24, 22, 8, 21, 0, 129, 108, 116, 0, 9, 23,
- 4, 8, 21, 10, 0, 133, 97, 116, 101, 102, 117, 108, 0, 68, 89, 11, 15, 106, 11,
- 21, 117, 11, 0, 21, 10, 18, 23, 6, 8, 19, 22, 0, 132, 114, 111, 103, 114, 97,
- 109, 0, 8, 5, 18, 21, 19, 0, 130, 108, 101, 109, 0, 18, 9, 18, 6, 0, 131, 110,
- 102, 111, 114, 109, 0, 68, 166, 11, 7, 206, 11, 8, 215, 11, 10, 58, 12, 12,
- 141, 12, 14, 153, 12, 18, 192, 12, 19, 108, 13, 21, 120, 13, 22, 131, 13, 24,
- 141, 13, 26, 164, 13, 0, 12, 0, 74, 175, 11, 23, 183, 11, 0, 4, 44, 0, 130,
- 97, 105, 110, 0, 81, 190, 11, 21, 198, 11, 0, 18, 6, 0, 130, 97, 105, 110, 0,
- 8, 6, 0, 130, 97, 105, 110, 0, 24, 18, 9, 44, 0, 129, 110, 100, 0, 71, 231,
- 11, 8, 241, 11, 10, 27, 12, 19, 39, 12, 22, 48, 12, 0, 15, 12, 11, 6, 0, 129,
- 114, 101, 110, 0, 87, 248, 11, 26, 17, 12, 0, 72, 255, 11, 26, 7, 12, 0, 5, 0,
- 130, 119, 101, 101, 110, 0, 8, 5, 0, 132, 116, 119, 101, 101, 110, 0, 8, 5, 0,
- 131, 116, 119, 101, 101, 110, 0, 18, 7, 28, 11, 0, 131, 114, 111, 103, 101,
- 110, 0, 4, 11, 44, 0, 129, 112, 101, 110, 0, 18, 18, 11, 6, 0, 131, 115, 101,
- 110, 0, 72, 65, 12, 12, 76, 12, 0, 12, 21, 18, 9, 0, 131, 101, 105, 103, 110,
- 0, 75, 95, 12, 15, 101, 12, 17, 109, 12, 18, 118, 12, 21, 125, 12, 22, 132,
- 12, 0, 23, 0, 129, 110, 103, 0, 15, 4, 0, 131, 105, 103, 110, 0, 21, 4, 8, 15,
- 0, 129, 110, 103, 0, 10, 44, 0, 129, 110, 103, 0, 23, 22, 0, 129, 110, 103, 0,
- 4, 44, 0, 130, 115, 105, 103, 110, 0, 23, 4, 21, 8, 6, 0, 131, 116, 97, 105,
- 110, 0, 75, 160, 12, 12, 169, 12, 0, 12, 23, 0, 131, 104, 105, 110, 107, 0,
- 75, 176, 12, 23, 182, 12, 0, 23, 0, 129, 110, 107, 0, 11, 44, 0, 132, 116,
- 104, 105, 110, 107, 0, 76, 202, 12, 22, 86, 13, 23, 96, 13, 0, 70, 212, 12,
- 22, 225, 12, 23, 251, 12, 0, 12, 22, 8, 7, 0, 133, 99, 105, 115, 105, 111,
- 110, 0, 68, 232, 12, 22, 241, 12, 0, 12, 15, 0, 131, 105, 115, 111, 110, 0, 4,
- 6, 6, 18, 0, 131, 105, 111, 110, 0, 68, 14, 13, 7, 27, 13, 12, 37, 13, 15, 52,
- 13, 17, 64, 13, 22, 76, 13, 0, 21, 8, 5, 4, 0, 132, 114, 97, 116, 105, 111,
- 110, 0, 7, 4, 0, 131, 105, 116, 105, 111, 110, 0, 23, 12, 19, 8, 21, 0, 134,
- 101, 116, 105, 116, 105, 111, 110, 0, 4, 8, 21, 0, 133, 108, 97, 116, 105,
- 111, 110, 0, 6, 24, 9, 0, 133, 110, 99, 116, 105, 111, 110, 0, 18, 19, 0, 131,
- 105, 116, 105, 111, 110, 0, 12, 25, 12, 7, 0, 129, 105, 111, 110, 0, 12, 6, 4,
- 21, 9, 0, 131, 116, 105, 111, 110, 0, 19, 11, 4, 0, 132, 104, 97, 112, 112,
- 101, 110, 0, 23, 24, 8, 21, 0, 131, 116, 117, 114, 110, 0, 10, 12, 11, 23, 0,
- 130, 110, 103, 115, 0, 85, 148, 13, 23, 157, 13, 0, 23, 8, 21, 0, 130, 117,
- 114, 110, 0, 8, 21, 0, 128, 114, 110, 0, 18, 14, 17, 24, 0, 130, 110, 111,
- 119, 110, 0, 71, 185, 13, 17, 196, 13, 26, 205, 13, 0, 8, 24, 22, 19, 0, 131,
- 101, 117, 100, 111, 0, 26, 14, 44, 0, 130, 110, 111, 119, 0, 79, 212, 13, 17,
- 220, 13, 0, 15, 18, 9, 0, 129, 111, 119, 0, 14, 44, 0, 129, 111, 119, 0, 86,
- 234, 13, 24, 244, 13, 0, 4, 11, 21, 8, 19, 0, 129, 112, 115, 0, 18, 18, 15, 0,
- 129, 107, 117, 112, 0, 68, 28, 14, 8, 93, 14, 11, 103, 15, 15, 113, 15, 18,
- 127, 15, 19, 144, 15, 22, 155, 15, 23, 164, 15, 24, 176, 15, 28, 185, 15, 0,
- 76, 38, 14, 15, 48, 14, 24, 82, 14, 0, 15, 12, 16, 12, 22, 0, 130, 97, 114, 0,
- 76, 55, 14, 24, 66, 14, 0, 16, 16, 12, 22, 0, 132, 105, 108, 97, 114, 0, 6,
- 12, 23, 4, 19, 0, 134, 114, 116, 105, 99, 117, 108, 97, 114, 0, 15, 10, 8, 21,
- 0, 131, 117, 108, 97, 114, 0, 68, 124, 14, 7, 132, 14, 11, 145, 14, 12, 203,
- 14, 15, 229, 14, 16, 239, 14, 17, 249, 14, 18, 37, 15, 23, 45, 15, 25, 76, 15,
- 0, 15, 6, 0, 130, 101, 97, 114, 0, 17, 4, 15, 4, 6, 0, 132, 101, 110, 100, 97,
- 114, 0, 74, 152, 14, 23, 163, 14, 0, 12, 8, 11, 0, 133, 105, 103, 104, 101,
- 114, 0, 72, 173, 14, 15, 185, 14, 24, 194, 14, 0, 11, 10, 18, 23, 0, 133, 101,
- 116, 104, 101, 114, 0, 18, 44, 0, 132, 116, 104, 101, 114, 0, 9, 0, 131, 114,
- 116, 104, 101, 114, 0, 75, 210, 14, 15, 218, 14, 0, 23, 44, 0, 130, 101, 105,
- 114, 0, 19, 16, 18, 6, 0, 131, 105, 108, 101, 114, 0, 23, 12, 9, 0, 131, 108,
- 116, 101, 114, 0, 16, 4, 21, 10, 44, 0, 129, 97, 114, 0, 76, 0, 15, 23, 12,
- 15, 0, 10, 10, 8, 5, 0, 132, 105, 110, 110, 101, 114, 0, 76, 19, 15, 22, 28,
- 15, 0, 18, 19, 0, 131, 110, 116, 101, 114, 0, 12, 15, 0, 130, 101, 110, 101,
- 114, 0, 9, 8, 5, 0, 129, 114, 101, 0, 75, 52, 15, 24, 62, 15, 0, 18, 17, 4, 0,
- 131, 116, 104, 101, 114, 0, 19, 18, 16, 6, 0, 134, 111, 109, 112, 117, 116,
- 101, 114, 0, 72, 83, 15, 26, 94, 15, 0, 8, 21, 8, 11, 26, 0, 131, 118, 101,
- 114, 0, 18, 11, 0, 130, 101, 118, 101, 114, 0, 8, 23, 18, 44, 0, 130, 104,
- 101, 114, 0, 4, 24, 6, 12, 23, 21, 4, 19, 0, 130, 108, 97, 114, 0, 23, 4, 21,
- 8, 23, 17, 12, 0, 135, 116, 101, 114, 97, 116, 111, 114, 0, 23, 15, 15, 24,
- 17, 0, 130, 112, 116, 114, 0, 4, 8, 28, 44, 0, 129, 114, 115, 0, 18, 4, 21, 8,
- 19, 18, 0, 130, 116, 111, 114, 0, 6, 18, 44, 0, 129, 99, 117, 114, 0, 8, 25,
- 8, 44, 0, 129, 114, 121, 0, 68, 219, 15, 8, 3, 16, 10, 147, 16, 19, 158, 16,
- 21, 170, 16, 22, 181, 16, 23, 77, 17, 24, 85, 17, 0, 75, 229, 15, 19, 240, 15,
- 28, 250, 15, 0, 19, 21, 8, 19, 0, 131, 104, 97, 112, 115, 0, 11, 21, 8, 19, 0,
- 130, 97, 112, 115, 0, 26, 15, 4, 0, 130, 97, 121, 115, 0, 68, 19, 16, 6, 42,
- 16, 12, 53, 16, 15, 129, 16, 22, 136, 16, 0, 71, 26, 16, 14, 34, 16, 0, 12,
- 44, 0, 130, 101, 97, 115, 0, 23, 0, 131, 97, 107, 101, 115, 0, 8, 7, 17, 12,
- 0, 131, 105, 99, 101, 115, 0, 70, 63, 16, 21, 102, 16, 23, 117, 16, 0, 72, 70,
- 16, 12, 80, 16, 0, 7, 17, 12, 0, 132, 105, 99, 101, 115, 0, 71, 87, 16, 23,
- 94, 16, 0, 17, 12, 0, 130, 101, 115, 0, 21, 8, 25, 0, 130, 101, 115, 0, 18,
- 22, 8, 6, 6, 4, 0, 132, 115, 111, 114, 105, 101, 115, 0, 15, 12, 5, 4, 0, 131,
- 105, 116, 105, 101, 115, 0, 4, 9, 0, 129, 115, 101, 0, 18, 11, 6, 44, 0, 130,
- 111, 115, 101, 115, 0, 12, 17, 11, 23, 0, 131, 105, 110, 103, 115, 0, 4, 8,
- 11, 21, 8, 19, 0, 131, 97, 112, 115, 0, 8, 4, 28, 44, 0, 131, 101, 97, 114,
- 115, 0, 68, 191, 16, 8, 203, 16, 18, 66, 17, 0, 21, 4, 5, 16, 8, 0, 130, 114,
- 97, 115, 115, 0, 70, 216, 16, 17, 240, 16, 21, 13, 17, 22, 42, 17, 0, 70, 223,
- 16, 24, 232, 16, 0, 18, 21, 19, 0, 131, 101, 115, 115, 0, 22, 0, 130, 99, 101,
- 115, 115, 0, 76, 247, 16, 22, 3, 17, 0, 22, 22, 24, 5, 0, 133, 105, 110, 101,
- 115, 115, 0, 24, 5, 0, 131, 105, 110, 101, 115, 115, 0, 19, 0, 85, 22, 17, 24,
- 33, 17, 0, 24, 22, 0, 133, 112, 112, 114, 101, 115, 115, 0, 22, 0, 131, 112,
- 114, 101, 115, 115, 0, 70, 49, 17, 18, 58, 17, 0, 6, 24, 22, 0, 131, 101, 115,
- 115, 0, 19, 0, 130, 115, 101, 115, 115, 0, 21, 6, 6, 4, 0, 132, 114, 111, 115,
- 115, 0, 21, 12, 9, 0, 129, 115, 116, 0, 82, 92, 17, 22, 106, 17, 0, 15, 18,
- 16, 18, 17, 4, 0, 132, 97, 108, 111, 117, 115, 0, 17, 8, 6, 17, 18, 6, 0, 133,
- 115, 101, 110, 115, 117, 115, 0, 68, 158, 17, 8, 188, 17, 10, 217, 17, 11,
- 227, 17, 12, 25, 18, 15, 36, 18, 16, 47, 18, 17, 59, 18, 18, 151, 19, 19, 189,
- 19, 22, 217, 19, 24, 107, 20, 0, 85, 165, 17, 26, 176, 17, 0, 8, 19, 8, 22, 0,
- 131, 97, 114, 97, 116, 0, 11, 8, 16, 18, 22, 0, 131, 119, 104, 97, 116, 0, 68,
- 195, 17, 17, 204, 17, 0, 21, 10, 44, 0, 130, 101, 97, 116, 0, 16, 17, 21, 8,
- 25, 18, 10, 0, 130, 101, 110, 116, 0, 11, 24, 4, 6, 0, 130, 103, 104, 116, 0,
- 71, 237, 17, 10, 244, 17, 12, 14, 18, 0, 12, 26, 0, 129, 116, 104, 0, 81, 251,
- 17, 24, 2, 18, 0, 8, 15, 0, 129, 116, 104, 0, 18, 21, 11, 23, 0, 133, 111,
- 117, 103, 104, 116, 0, 10, 17, 18, 23, 0, 131, 105, 103, 104, 116, 0, 23, 24,
- 18, 5, 4, 0, 129, 32, 105, 116, 0, 22, 24, 8, 21, 0, 131, 115, 117, 108, 116,
- 0, 4, 23, 21, 18, 19, 16, 12, 0, 129, 110, 116, 0, 68, 72, 18, 8, 128, 18, 21,
- 132, 19, 22, 143, 19, 0, 76, 85, 18, 17, 96, 18, 21, 107, 18, 23, 117, 18, 0,
- 19, 12, 6, 8, 21, 0, 130, 101, 110, 116, 0, 12, 16, 18, 21, 19, 0, 130, 101,
- 110, 116, 0, 4, 19, 19, 4, 0, 130, 101, 110, 116, 0, 8, 19, 16, 18, 6, 0, 130,
- 101, 110, 116, 0, 76, 144, 18, 16, 177, 18, 21, 21, 19, 25, 111, 19, 29, 121,
- 19, 0, 70, 151, 18, 19, 164, 18, 0, 8, 9, 9, 8, 0, 133, 105, 99, 105, 101,
- 110, 116, 0, 8, 6, 8, 21, 0, 133, 105, 112, 105, 101, 110, 116, 0, 72, 190,
- 18, 17, 202, 18, 21, 235, 18, 23, 10, 19, 0, 25, 18, 10, 0, 131, 114, 110,
- 109, 101, 110, 116, 0, 72, 209, 18, 21, 221, 18, 0, 25, 18, 10, 0, 132, 114,
- 110, 109, 101, 110, 116, 0, 18, 25, 18, 10, 0, 134, 101, 114, 110, 109, 101,
- 110, 116, 0, 72, 242, 18, 18, 253, 18, 0, 25, 18, 10, 0, 131, 110, 109, 101,
- 110, 116, 0, 25, 18, 10, 0, 133, 101, 114, 110, 109, 101, 110, 116, 0, 4, 23,
- 22, 0, 131, 101, 109, 101, 110, 116, 0, 68, 34, 19, 8, 45, 19, 9, 57, 19, 21,
- 68, 19, 0, 19, 4, 0, 132, 112, 97, 114, 101, 110, 116, 0, 9, 12, 7, 0, 132,
- 102, 101, 114, 101, 110, 116, 0, 9, 12, 7, 0, 131, 101, 114, 101, 110, 116, 0,
- 68, 75, 19, 8, 99, 19, 0, 19, 0, 68, 84, 19, 19, 92, 19, 0, 133, 112, 97, 114,
- 101, 110, 116, 0, 4, 0, 131, 101, 110, 116, 0, 9, 12, 7, 0, 133, 102, 101,
- 114, 101, 110, 116, 0, 8, 15, 8, 21, 0, 130, 97, 110, 116, 0, 12, 17, 10, 18,
- 6, 0, 130, 97, 110, 116, 0, 8, 9, 9, 12, 7, 0, 129, 101, 110, 116, 0, 18, 6,
- 0, 130, 110, 115, 116, 0, 81, 161, 19, 21, 171, 19, 22, 180, 19, 0, 7, 12, 7,
- 0, 130, 32, 110, 111, 116, 0, 19, 8, 21, 0, 130, 111, 114, 116, 0, 16, 15, 4,
- 0, 130, 111, 115, 116, 0, 72, 196, 19, 28, 207, 19, 0, 12, 6, 8, 21, 0, 131,
- 101, 105, 112, 116, 0, 6, 17, 8, 0, 130, 114, 121, 112, 116, 0, 72, 236, 19,
- 10, 21, 20, 12, 30, 20, 16, 59, 20, 17, 69, 20, 24, 96, 20, 0, 74, 243, 19,
- 21, 10, 20, 0, 76, 250, 19, 24, 2, 20, 0, 11, 0, 130, 104, 101, 115, 116, 0,
- 22, 0, 130, 103, 101, 115, 116, 0, 23, 17, 12, 0, 131, 101, 114, 101, 115,
- 116, 0, 21, 4, 15, 0, 129, 101, 115, 116, 0, 73, 37, 20, 17, 49, 20, 0, 8, 17,
- 4, 16, 0, 132, 105, 102, 101, 115, 116, 0, 4, 10, 4, 0, 131, 105, 110, 115,
- 116, 0, 18, 15, 4, 0, 131, 109, 111, 115, 116, 0, 68, 76, 20, 17, 87, 20, 0,
- 12, 10, 4, 0, 132, 97, 105, 110, 115, 116, 0, 12, 4, 10, 4, 0, 130, 115, 116,
- 0, 13, 4, 44, 0, 131, 100, 106, 117, 115, 116, 0, 70, 120, 20, 18, 144, 20,
- 19, 168, 20, 23, 191, 20, 0, 72, 127, 20, 21, 137, 20, 0, 6, 27, 8, 0, 132,
- 101, 99, 117, 116, 0, 12, 6, 0, 128, 105, 116, 0, 68, 151, 20, 5, 160, 20, 0,
- 5, 0, 132, 97, 98, 111, 117, 116, 0, 5, 4, 0, 131, 111, 117, 116, 0, 87, 175,
- 20, 24, 183, 20, 0, 17, 12, 0, 131, 112, 117, 116, 0, 18, 0, 130, 116, 112,
- 117, 116, 0, 19, 24, 18, 0, 131, 116, 112, 117, 116, 0, 23, 18, 5, 4, 0, 129,
- 117, 116, 0, 72, 217, 20, 12, 253, 20, 0, 68, 224, 20, 12, 231, 20, 0, 11, 44,
- 0, 129, 118, 101, 0, 70, 238, 20, 8, 246, 20, 0, 8, 21, 0, 130, 101, 105, 118,
- 0, 6, 8, 21, 0, 129, 118, 0, 8, 11, 6, 4, 44, 0, 130, 105, 101, 118, 0, 76,
- 15, 21, 17, 25, 21, 0, 8, 25, 8, 21, 0, 130, 105, 101, 119, 0, 18, 14, 44, 0,
- 130, 110, 111, 119, 0, 70, 59, 21, 8, 118, 21, 11, 128, 21, 15, 146, 21, 17,
- 87, 22, 21, 114, 22, 22, 12, 23, 23, 39, 23, 0, 68, 72, 21, 8, 84, 21, 12, 95,
- 21, 19, 106, 21, 0, 21, 6, 18, 19, 28, 11, 0, 130, 105, 115, 121, 0, 24, 20,
- 8, 21, 9, 0, 129, 110, 99, 121, 0, 21, 6, 18, 19, 28, 11, 0, 129, 115, 121, 0,
- 24, 21, 14, 17, 4, 5, 0, 129, 116, 99, 121, 0, 23, 9, 4, 22, 0, 130, 101, 116,
- 121, 0, 6, 21, 4, 21, 12, 8, 11, 0, 135, 105, 101, 114, 97, 114, 99, 104, 121,
- 0, 68, 165, 21, 11, 232, 21, 14, 242, 21, 15, 250, 21, 18, 66, 22, 21, 76, 22,
- 0, 69, 184, 21, 8, 193, 21, 15, 199, 21, 17, 208, 21, 21, 215, 21, 24, 224,
- 21, 0, 18, 21, 19, 0, 129, 98, 108, 121, 0, 21, 0, 128, 108, 121, 0, 8, 21, 0,
- 131, 97, 108, 108, 121, 0, 12, 9, 0, 128, 108, 121, 0, 8, 17, 8, 10, 0, 128,
- 108, 121, 0, 23, 6, 4, 0, 128, 108, 121, 0, 10, 12, 15, 22, 0, 129, 116, 108,
- 121, 0, 12, 15, 0, 129, 101, 108, 121, 0, 68, 4, 22, 5, 47, 22, 8, 56, 22, 0,
- 86, 11, 22, 23, 35, 22, 0, 24, 0, 108, 20, 22, 22, 27, 22, 0, 131, 117, 97,
- 108, 108, 121, 0, 24, 0, 132, 97, 108, 108, 121, 0, 24, 6, 4, 0, 133, 116,
- 117, 97, 108, 108, 121, 0, 4, 5, 18, 21, 19, 0, 129, 121, 0, 4, 21, 0, 132,
- 101, 97, 108, 108, 121, 0, 16, 18, 17, 4, 0, 130, 97, 108, 121, 0, 4, 16, 12,
- 21, 19, 0, 129, 105, 108, 121, 0, 72, 94, 22, 19, 103, 22, 0, 18, 16, 44, 0,
- 130, 110, 101, 121, 0, 4, 16, 18, 6, 0, 131, 112, 97, 110, 121, 0, 68, 127,
- 22, 8, 231, 22, 18, 240, 22, 23, 253, 22, 0, 69, 143, 22, 12, 152, 22, 15,
- 165, 22, 16, 193, 22, 22, 202, 22, 0, 12, 15, 0, 130, 114, 97, 114, 121, 0,
- 15, 15, 12, 27, 24, 4, 0, 132, 105, 97, 114, 121, 0, 76, 172, 22, 15, 182, 22,
- 0, 27, 24, 4, 0, 130, 105, 97, 114, 121, 0, 12, 27, 24, 4, 0, 131, 105, 97,
- 114, 121, 0, 24, 22, 0, 130, 109, 97, 114, 121, 0, 8, 6, 0, 70, 212, 22, 8,
- 223, 22, 0, 8, 17, 0, 133, 101, 115, 115, 97, 114, 121, 0, 17, 0, 130, 115,
- 97, 114, 121, 0, 19, 18, 21, 19, 0, 128, 116, 121, 0, 10, 4, 23, 4, 6, 0, 132,
- 101, 103, 111, 114, 121, 0, 17, 24, 6, 18, 44, 0, 134, 99, 111, 117, 110, 116,
- 114, 121, 0, 4, 0, 85, 21, 23, 26, 32, 23, 0, 6, 18, 19, 28, 11, 0, 130, 105,
- 115, 121, 0, 15, 4, 0, 129, 121, 115, 0, 73, 49, 23, 15, 57, 23, 21, 66, 23,
- 0, 4, 22, 0, 129, 101, 116, 121, 0, 12, 5, 4, 0, 129, 105, 116, 121, 0, 19, 8,
- 18, 21, 19, 0, 132, 112, 101, 114, 116, 121, 0};
-
diff --git a/users/gourdo1/autocorrect/autocorrection_data.h (large) b/users/gourdo1/autocorrect/autocorrection_data.h (large)
deleted file mode 100644
index 66518201e2..0000000000
--- a/users/gourdo1/autocorrect/autocorrection_data.h (large)
+++ /dev/null
@@ -1,722 +0,0 @@
-// Generated code.
-
-// Autocorrection dictionary (400 entries):
-// :acheiv -> achiev
-// :agian -> again
-// :agred -> agreed
-// :ajust -> adjust
-// :alot: -> a lot
-// :andteh -> and the
-// :andthe -> and the
-// :anual -> annual
-// :asign -> assign
-// :aslo: -> also
-// :asthe -> as the
-// :atthe -> at the
-// :casue -> cause
-// :choses -> chooses
-// :eveyr -> every
-// :foudn -> found
-// :gaurd -> guard
-// :goign -> going
-// :gonig -> going
-// :graet -> great
-// :grammer -> grammar
-// :guage -> gauge
-// :haev -> have
-// :hapen -> happen
-// :htere -> there
-// :htikn -> think
-// :htink -> think
-// :hwihc -> which
-// :hwile -> while
-// :idaes -> ideas
-// :jstu: -> just
-// :jsut: -> just
-// :knwo -> know
-// :konw -> know
-// :kwno -> know
-// :moeny -> money
-// :ocuntry -> country
-// :ocur -> occur
-// :olther -> other
-// :otehr -> other
-// :owudl -> would
-// :rference -> reference
-// :sicne -> since
-// :socre -> score
-// :szie -> size
-// :the:the: -> the
-// :theri -> their
-// :thier -> their
-// :thsoe -> those
-// :tothe -> to the
-// :ture -> true
-// :turth -> truth
-// :uesd: -> used
-// :usally -> usually
-// :yaers -> years
-// :yeasr -> years
-// abbout -> about
-// aberation -> aberration
-// abilties -> abilities
-// abilty -> ability
-// abotu -> about
-// abouta -> about a
-// aboutit -> about it
-// aboutthe -> about the
-// abvove -> above
-// accesories -> accessories
-// accomodate -> accommodate
-// accross -> across
-// acommodate -> accommodate
-// acomplish -> accomplish
-// actualy -> actually
-// acurate -> accurate
-// acutally -> actually
-// addtion -> addition
-// adviced -> advised
-// againnst -> against
-// aganist -> against
-// aggreed -> agreed
-// agianst -> against
-// ahppn -> happen
-// aledge -> allege
-// alledge -> allege
-// allign -> align
-// almsot -> almost
-// alomst -> almost
-// alwasy -> always
-// alwyas -> always
-// amature -> amateur
-// anohter -> another
-// anomolous -> anomalous
-// anomoly -> anomaly
-// anytying -> anything
-// aparent -> apparent
-// aparrent -> apparent
-// apparant -> apparent
-// apparrent -> apparent
-// aquire -> acquire
-// aroud -> around
-// arround -> around
-// arund -> around
-// asthetic -> aesthetic
-// auxilary -> auxiliary
-// auxillary -> auxiliary
-// auxilliary -> auxiliary
-// availabe -> available
-// availaible -> available
-// availalbe -> available
-// availble -> available
-// availiable -> available
-// avalable -> available
-// avaliable -> available
-// avilable -> available
-// baceause -> because
-// bandwith -> bandwidth
-// bankrupcy -> bankruptcy
-// baout -> about
-// beacuse -> because
-// becasue -> because
-// beccause -> because
-// becouse -> because
-// becuase -> because
-// bedore -> before
-// beeing -> being
-// befoer -> before
-// begginer -> beginner
-// beleif -> belief
-// beleive -> believe
-// belive -> believe
-// beteen -> between
-// beween -> between
-// bewteen -> between
-// breif -> brief
-// burried -> buried
-// busness -> business
-// bussiness -> business
-// cacheing -> caching
-// calander -> calendar
-// caluclate -> calculate
-// caluculate -> calculate
-// calulate -> calculate
-// catagory -> category
-// cauhgt -> caught
-// ceratin -> certain
-// certian -> certain
-// cheif -> chief
-// chekc -> check
-// childen -> children
-// chnage -> change
-// choosen -> chosen
-// cieling -> ceiling
-// circut -> circuit
-// claer -> clear
-// clasic -> classic
-// cmoputer -> computer
-// coform -> conform
-// cognizent -> cognizant
-// collegue -> colleague
-// comapny -> company
-// comittee -> committee
-// comming: -> coming
-// commitee -> committee
-// competance -> competence
-// competant -> competent
-// complier -> compiler
-// concensus -> consensus
-// considerd -> considered
-// contian -> contain
-// copywrite: -> copyright
-// cosnt -> const
-// coudl -> could
-// dervied -> derived
-// desicion -> decision
-// didnot -> did not
-// diferent -> different
-// diferrent -> different
-// differnt -> different
-// diffrent -> different
-// divison -> division
-// doulbe -> double
-// dyanmic -> dynamic
-// effecient -> efficient
-// elasped -> elapsed
-// eligable -> eligible
-// elpased -> elapsed
-// embarass -> embarrass
-// embeded -> embedded
-// encypt -> encrypt
-// excecut -> execut
-// excercise -> exercise
-// failse -> false
-// fales -> false
-// fasle -> false
-// feild -> field
-// finaly -> finally
-// firend -> friend
-// firts -> first
-// fitler -> filter
-// flase -> false
-// follwo -> follow
-// foriegn -> foreign
-// foward -> forward
-// fraciton -> fraction
-// freind -> friend
-// frequecy -> frequency
-// fromthe -> from the
-// fucntion -> function
-// fufill -> fulfill
-// fullfill -> fulfill
-// futher -> further
-// ganerate -> generate
-// garantee -> guarantee
-// gaurantee -> guarantee
-// generaly -> generally
-// govement -> government
-// govenment -> government
-// goverment -> government
-// governmnet -> government
-// govorment -> government
-// govornment -> government
-// greatful -> grateful
-// guaratee -> guarantee
-// heigher -> higher
-// heigth -> height
-// heirarchy -> hierarchy
-// higest -> highest
-// howver -> however
-// hydogen -> hydrogen
-// hygeine -> hygiene
-// hypocracy -> hypocrisy
-// hypocrasy -> hypocrisy
-// hypocricy -> hypocrisy
-// hypocrit: -> hypocrite
-// iamge -> image
-// importamt -> important
-// inclued -> include
-// indeces -> indices
-// indecies -> indices
-// indicies -> indices
-// inital -> initial
-// insted -> instead
-// interator -> iterator
-// intput -> input
-// intrest -> interest
-// invliad -> invalid
-// laguage -> language
-// largst -> largest
-// learnign -> learning
-// lenght -> length
-// levle -> level
-// liasion -> liaison
-// libary -> library
-// likly -> likely
-// lisense -> license
-// listner -> listener
-// littel -> little
-// looses: -> loses
-// looup -> lookup
-// macthing -> matching
-// maintence -> maintenance
-// manefist -> manifest
-// mesage -> message
-// morgage -> mortgage
-// mysefl -> myself
-// namesapce -> namespace
-// namespcae -> namespace
-// naturual -> natural
-// neccesary -> necessary
-// necesary -> necessary
-// nulltpr -> nullptr
-// occassion -> occasion
-// occured -> occurred
-// operaotr -> operator
-// ouptut -> output
-// ouput -> output
-// overide -> override
-// ovveride -> override
-// pallete -> palette
-// paralel -> parallel
-// parralel -> parallel
-// parrallel -> parallel
-// particualr -> particular
-// paticular -> particular
-// peaple -> people
-// peice -> piece
-// peolpe -> people
-// peopel -> people
-// perhasp -> perhaps
-// perheaps -> perhaps
-// perhpas -> perhaps
-// perphas -> perhaps
-// persue -> pursue
-// poeople -> people
-// poeple -> people
-// poitner -> pointer
-// posess -> possess
-// postion -> position
-// preiod -> period
-// primarly -> primarily
-// priviledge -> privilege
-// privte -> private
-// probablly -> probably
-// probaly -> probably
-// probelm -> problem
-// proccess -> process
-// proeprty -> property
-// prominant -> prominent
-// proove -> prove
-// propery -> property
-// propogate -> propagate
-// psuedo -> pseudo
-// raelly -> really
-// realtion -> relation
-// realy -> really
-// reasearch -> research
-// receiev -> receiv
-// recepient -> recipient
-// reciept -> receipt
-// reciev -> receiv
-// recipiant -> recipient
-// recrod -> record
-// recuring -> recurring
-// referece -> reference
-// refered -> referred
-// regluar -> regular
-// relaly -> really
-// releated -> related
-// relevent -> relevant
-// repitition -> repetition
-// reponse -> response
-// reprot -> report
-// resutl -> result
-// retrun -> return
-// retun -> return
-// reuslt -> result
-// reutrn -> return
-// reveiw -> review
-// saftey -> safety
-// safty -> safety
-// satisifed -> satisfied
-// scheduel -> schedule
-// seperat -> separat
-// sequnce -> sequence
-// shoudl -> should
-// similiar -> similar
-// simmilar -> similar
-// singed -> signed
-// singel -> single
-// slighly -> slightly
-// somehwat -> somewhat
-// spectogram -> spectrogram
-// statment -> statement
-// stirng -> string
-// stregth -> strength
-// strengh -> strength
-// strign -> string
-// succsess -> success
-// sucess -> success
-// sugest -> suggest
-// sumary -> summary
-// supress -> suppress
-// surpress -> suppress
-// swithc -> switch
-// swtich -> switch
-// symetric -> symmetric
-// teamplate -> template
-// tempalte -> template
-// theese -> these
-// therfore -> therefore
-// thign -> thing
-// thigsn -> things
-// thikn -> think
-// thiunk -> think
-// thnigs -> things
-// thresold -> threshold
-// throught -> thought
-// tihkn -> think
-// tkaes -> takes
-// todya -> today
-// toghether -> together
-// tolerence -> tolerance
-// tongiht -> tonight
-// tranpose -> transpose
-// typcial -> typical
-// udpate -> update
-// unkown -> unknown
-// unqiue -> unique
-// ususally -> usually
-// verticies -> vertices
-// virutal -> virtual
-// vitual -> virtual
-// whcih -> which
-// whereever -> wherever
-// wherre -> where
-// whihc -> which
-// whlch -> which
-// widht -> width
-// wierd -> weird
-// wihch -> which
-// woudl -> would
-// yeild -> yield
-
-#define AUTOCORRECTION_MIN_LENGTH 5 // "abotu"
-#define AUTOCORRECTION_MAX_LENGTH 10 // "auxilliary"
-
-static const uint8_t autocorrection_data[5967] PROGMEM = {108, 67, 0, 4, 212, 0,
- 6, 236, 0, 7, 100, 1, 8, 15, 3, 9, 169, 8, 10, 204, 8, 11, 68, 9, 12, 246, 9,
- 14, 0, 10, 15, 28, 10, 16, 79, 11, 17, 129, 11, 18, 175, 13, 19, 227, 13, 21,
- 253, 13, 22, 194, 15, 23, 121, 17, 24, 201, 20, 25, 210, 20, 26, 8, 21, 28,
- 34, 21, 0, 71, 89, 0, 8, 99, 0, 10, 130, 0, 18, 142, 0, 22, 152, 0, 23, 163,
- 0, 24, 202, 0, 0, 22, 8, 24, 44, 0, 131, 115, 101, 100, 0, 75, 106, 0, 23,
- 115, 0, 0, 23, 44, 8, 11, 23, 44, 0, 132, 0, 12, 21, 26, 28, 19, 18, 6, 0,
- 133, 114, 105, 103, 104, 116, 0, 17, 12, 16, 16, 18, 6, 0, 132, 105, 110, 103,
- 0, 15, 22, 4, 44, 0, 131, 108, 115, 111, 0, 8, 22, 18, 18, 15, 0, 132, 115,
- 101, 115, 0, 76, 173, 0, 18, 183, 0, 24, 193, 0, 0, 21, 6, 18, 19, 28, 11, 0,
- 128, 101, 0, 15, 4, 44, 0, 131, 32, 108, 111, 116, 0, 22, 13, 44, 0, 131, 117,
- 115, 116, 0, 23, 22, 13, 44, 0, 131, 117, 115, 116, 0, 87, 219, 0, 28, 228, 0,
- 0, 24, 18, 5, 4, 0, 128, 32, 97, 0, 7, 18, 23, 0, 129, 97, 121, 0, 75, 246, 0,
- 12, 28, 1, 14, 92, 1, 0, 76, 253, 0, 23, 20, 1, 0, 75, 4, 1, 26, 10, 1, 0, 26,
- 0, 129, 99, 104, 0, 11, 44, 0, 132, 119, 104, 105, 99, 104, 0, 12, 26, 22, 0,
- 129, 99, 104, 0, 80, 41, 1, 21, 53, 1, 22, 67, 1, 23, 76, 1, 0, 17, 4, 28, 7,
- 0, 132, 110, 97, 109, 105, 99, 0, 23, 8, 16, 28, 22, 0, 132, 109, 101, 116,
- 114, 105, 99, 0, 4, 15, 6, 0, 129, 115, 105, 99, 0, 8, 11, 23, 22, 4, 0, 134,
- 101, 115, 116, 104, 101, 116, 105, 99, 0, 8, 11, 6, 0, 129, 99, 107, 0, 68,
- 122, 1, 8, 134, 1, 15, 84, 2, 17, 124, 2, 18, 180, 2, 21, 207, 2, 24, 7, 3, 0,
- 12, 15, 25, 17, 12, 0, 131, 97, 108, 105, 100, 0, 70, 168, 1, 7, 178, 1, 8,
- 188, 1, 9, 199, 1, 10, 212, 1, 12, 222, 1, 19, 248, 1, 21, 3, 2, 22, 38, 2,
- 23, 50, 2, 24, 75, 2, 0, 12, 25, 7, 4, 0, 130, 115, 101, 100, 0, 8, 5, 16, 8,
- 0, 129, 100, 101, 100, 0, 21, 10, 10, 4, 0, 132, 114, 101, 101, 100, 0, 12,
- 22, 12, 23, 4, 22, 0, 131, 102, 105, 101, 100, 0, 17, 12, 22, 0, 131, 103,
- 110, 101, 100, 0, 85, 229, 1, 25, 238, 1, 0, 21, 24, 5, 0, 131, 105, 101, 100,
- 0, 21, 8, 7, 0, 131, 105, 118, 101, 100, 0, 22, 4, 15, 8, 0, 131, 112, 115,
- 101, 100, 0, 72, 13, 2, 10, 22, 2, 24, 29, 2, 0, 9, 8, 21, 0, 129, 114, 101,
- 100, 0, 4, 44, 0, 128, 101, 100, 0, 6, 6, 18, 0, 129, 114, 101, 100, 0, 4, 19,
- 15, 8, 0, 132, 97, 112, 115, 101, 100, 0, 68, 57, 2, 22, 68, 2, 0, 8, 15, 8,
- 21, 0, 132, 97, 116, 101, 100, 0, 17, 12, 0, 128, 97, 100, 0, 15, 6, 17, 12,
- 0, 129, 100, 101, 0, 76, 91, 2, 18, 112, 2, 0, 8, 0, 73, 100, 2, 28, 106, 2,
- 0, 131, 105, 101, 108, 100, 0, 131, 105, 101, 108, 100, 0, 22, 8, 21, 11, 23,
- 0, 130, 104, 111, 108, 100, 0, 72, 134, 2, 12, 145, 2, 24, 155, 2, 0, 21, 12,
- 9, 0, 132, 114, 105, 101, 110, 100, 0, 8, 21, 9, 0, 131, 105, 101, 110, 100,
- 0, 82, 162, 2, 21, 172, 2, 0, 21, 21, 4, 0, 132, 111, 117, 110, 100, 0, 4, 0,
- 130, 111, 117, 110, 100, 0, 76, 187, 2, 21, 198, 2, 0, 8, 21, 19, 0, 132, 101,
- 114, 105, 111, 100, 0, 6, 8, 21, 0, 130, 111, 114, 100, 0, 68, 217, 2, 8, 228,
- 2, 24, 253, 2, 0, 26, 18, 9, 0, 131, 114, 119, 97, 114, 100, 0, 71, 235, 2,
- 12, 245, 2, 0, 12, 22, 17, 18, 6, 0, 128, 101, 100, 0, 26, 0, 131, 101, 105,
- 114, 100, 0, 4, 10, 44, 0, 131, 117, 97, 114, 100, 0, 18, 21, 4, 0, 128, 110,
- 100, 0, 68, 67, 3, 5, 80, 3, 6, 123, 3, 7, 251, 3, 8, 23, 4, 10, 107, 4, 11,
- 227, 4, 12, 52, 5, 15, 61, 5, 17, 0, 6, 18, 27, 6, 19, 37, 6, 21, 47, 6, 22,
- 156, 6, 23, 82, 7, 24, 45, 8, 25, 115, 8, 0, 6, 19, 22, 8, 16, 4, 17, 0, 130,
- 97, 99, 101, 0, 68, 87, 3, 15, 97, 3, 0, 15, 12, 4, 25, 4, 0, 128, 108, 101,
- 0, 68, 104, 3, 24, 115, 3, 0, 15, 12, 4, 25, 4, 0, 130, 98, 108, 101, 0, 18,
- 7, 0, 130, 98, 108, 101, 0, 72, 136, 3, 12, 147, 3, 17, 156, 3, 19, 238, 3, 0,
- 21, 8, 9, 8, 21, 0, 129, 110, 99, 101, 0, 8, 19, 0, 131, 105, 101, 99, 101, 0,
- 68, 166, 3, 8, 179, 3, 24, 228, 3, 0, 23, 8, 19, 16, 18, 6, 0, 131, 101, 110,
- 99, 101, 0, 85, 186, 3, 23, 217, 3, 0, 8, 0, 73, 195, 3, 15, 208, 3, 0, 21,
- 44, 0, 134, 101, 102, 101, 114, 101, 110, 99, 101, 0, 18, 23, 0, 131, 97, 110,
- 99, 101, 0, 17, 12, 4, 16, 0, 129, 97, 110, 99, 101, 0, 20, 8, 22, 0, 130,
- 101, 110, 99, 101, 0, 4, 22, 8, 16, 4, 17, 0, 131, 112, 97, 99, 101, 0, 12,
- 21, 8, 25, 0, 82, 7, 4, 25, 13, 4, 0, 130, 114, 105, 100, 101, 0, 18, 0, 133,
- 101, 114, 114, 105, 100, 101, 0, 23, 0, 68, 38, 4, 12, 49, 4, 17, 59, 4, 23,
- 94, 4, 0, 21, 4, 24, 10, 0, 130, 110, 116, 101, 101, 0, 16, 16, 18, 6, 0, 129,
- 116, 101, 101, 0, 4, 21, 0, 68, 69, 4, 24, 81, 4, 0, 10, 0, 134, 117, 97, 114,
- 97, 110, 116, 101, 101, 0, 4, 10, 0, 135, 117, 97, 114, 97, 110, 116, 101,
- 101, 0, 12, 16, 18, 6, 0, 132, 109, 105, 116, 116, 101, 101, 0, 68, 117, 4, 7,
- 184, 4, 16, 218, 4, 0, 74, 130, 4, 17, 141, 4, 22, 150, 4, 24, 159, 4, 0, 21,
- 18, 16, 0, 131, 116, 103, 97, 103, 101, 0, 11, 6, 0, 131, 97, 110, 103, 101,
- 0, 8, 16, 0, 130, 115, 97, 103, 101, 0, 10, 0, 108, 168, 4, 4, 174, 4, 0, 131,
- 97, 117, 103, 101, 0, 15, 0, 132, 110, 103, 117, 97, 103, 101, 0, 8, 15, 0,
- 68, 197, 4, 12, 203, 4, 15, 212, 4, 0, 131, 108, 101, 103, 101, 0, 25, 12, 21,
- 19, 0, 130, 103, 101, 0, 4, 0, 130, 103, 101, 0, 4, 12, 0, 131, 109, 97, 103,
- 101, 0, 23, 0, 71, 245, 4, 16, 255, 4, 18, 9, 5, 22, 18, 5, 23, 27, 5, 0, 17,
- 4, 44, 0, 130, 32, 116, 104, 101, 0, 18, 21, 9, 0, 130, 32, 116, 104, 101, 0,
- 23, 44, 0, 130, 32, 116, 104, 101, 0, 4, 44, 0, 130, 32, 116, 104, 101, 0, 68,
- 34, 5, 24, 42, 5, 0, 44, 0, 130, 32, 116, 104, 101, 0, 18, 5, 4, 0, 130, 32,
- 116, 104, 101, 0, 29, 22, 44, 0, 130, 105, 122, 101, 0, 69, 77, 5, 12, 190, 5,
- 19, 201, 5, 22, 241, 5, 25, 249, 5, 0, 68, 87, 5, 12, 167, 5, 15, 179, 5, 0,
- 74, 97, 5, 12, 107, 5, 15, 137, 5, 0, 12, 15, 8, 0, 131, 105, 98, 108, 101, 0,
- 15, 0, 68, 116, 5, 12, 127, 5, 0, 25, 4, 0, 133, 105, 108, 97, 98, 108, 101,
- 0, 4, 25, 4, 0, 132, 97, 98, 108, 101, 0, 68, 144, 5, 12, 155, 5, 0, 25, 4, 0,
- 132, 105, 108, 97, 98, 108, 101, 0, 25, 4, 0, 133, 97, 105, 108, 97, 98, 108,
- 101, 0, 4, 15, 12, 4, 25, 4, 0, 131, 98, 108, 101, 0, 12, 4, 25, 4, 0, 130,
- 97, 98, 108, 101, 0, 26, 11, 44, 0, 132, 119, 104, 105, 108, 101, 0, 68, 211,
- 5, 8, 220, 5, 18, 230, 5, 0, 8, 19, 0, 131, 111, 112, 108, 101, 0, 18, 19, 0,
- 132, 101, 111, 112, 108, 101, 0, 8, 18, 19, 0, 133, 101, 111, 112, 108, 101,
- 0, 4, 9, 0, 130, 108, 115, 101, 0, 8, 15, 0, 129, 101, 108, 0, 70, 7, 6, 12,
- 16, 6, 0, 12, 22, 44, 0, 130, 110, 99, 101, 0, 8, 10, 28, 11, 0, 131, 105,
- 101, 110, 101, 0, 22, 11, 23, 44, 0, 130, 111, 115, 101, 0, 15, 18, 8, 19, 0,
- 130, 112, 108, 101, 0, 70, 66, 6, 8, 76, 6, 12, 87, 6, 18, 99, 6, 21, 127, 6,
- 24, 134, 6, 0, 18, 22, 44, 0, 131, 99, 111, 114, 101, 0, 23, 11, 44, 0, 132,
- 116, 104, 101, 114, 101, 0, 24, 20, 4, 0, 132, 99, 113, 117, 105, 114, 101, 0,
- 71, 106, 6, 9, 115, 6, 0, 8, 5, 0, 131, 102, 111, 114, 101, 0, 21, 8, 11, 23,
- 0, 131, 101, 102, 111, 114, 101, 0, 8, 11, 26, 0, 129, 101, 0, 23, 0, 108,
- 143, 6, 4, 148, 6, 0, 130, 114, 117, 101, 0, 16, 4, 0, 130, 101, 117, 114, 0,
- 68, 178, 6, 8, 203, 6, 12, 211, 6, 15, 226, 6, 17, 235, 6, 18, 9, 7, 24, 22,
- 7, 0, 79, 185, 6, 24, 193, 6, 0, 9, 0, 131, 97, 108, 115, 101, 0, 6, 8, 5, 0,
- 131, 97, 117, 115, 101, 0, 8, 11, 23, 0, 130, 115, 101, 0, 6, 21, 8, 6, 27, 8,
- 0, 134, 101, 114, 99, 105, 115, 101, 0, 12, 4, 9, 0, 131, 108, 115, 101, 0,
- 72, 242, 6, 18, 253, 6, 0, 22, 12, 15, 0, 132, 99, 101, 110, 115, 101, 0, 19,
- 8, 21, 0, 132, 115, 112, 111, 110, 115, 101, 0, 19, 17, 4, 21, 23, 0, 131,
- 115, 112, 111, 115, 101, 0, 68, 32, 7, 6, 61, 7, 18, 72, 7, 0, 70, 39, 7, 8,
- 49, 7, 0, 6, 8, 5, 0, 132, 97, 117, 115, 101, 0, 6, 4, 5, 0, 134, 101, 99, 97,
- 117, 115, 101, 0, 4, 8, 5, 0, 132, 99, 97, 117, 115, 101, 0, 6, 8, 5, 0, 131,
- 97, 117, 115, 101, 0, 68, 95, 7, 8, 13, 8, 15, 24, 8, 25, 36, 8, 0, 71, 111,
- 7, 10, 148, 7, 15, 161, 7, 19, 228, 7, 21, 238, 7, 0, 18, 16, 0, 80, 121, 7,
- 18, 136, 7, 0, 18, 6, 4, 0, 135, 99, 111, 109, 109, 111, 100, 97, 116, 101, 0,
- 6, 6, 4, 0, 132, 109, 111, 100, 97, 116, 101, 0, 18, 19, 18, 21, 19, 0, 132,
- 97, 103, 97, 116, 101, 0, 70, 171, 7, 19, 184, 7, 24, 197, 7, 0, 24, 15, 4, 6,
- 0, 133, 99, 117, 108, 97, 116, 101, 0, 16, 4, 8, 23, 0, 134, 109, 112, 108,
- 97, 116, 101, 0, 70, 204, 7, 15, 217, 7, 0, 24, 15, 4, 6, 0, 134, 99, 117,
- 108, 97, 116, 101, 0, 4, 6, 0, 132, 99, 117, 108, 97, 116, 101, 0, 7, 24, 0,
- 132, 112, 100, 97, 116, 101, 0, 72, 245, 7, 24, 2, 8, 0, 17, 4, 10, 0, 134,
- 101, 110, 101, 114, 97, 116, 101, 0, 6, 4, 0, 132, 99, 117, 114, 97, 116, 101,
- 0, 15, 15, 4, 19, 0, 131, 101, 116, 116, 101, 0, 4, 19, 16, 8, 23, 0, 131,
- 108, 97, 116, 101, 0, 12, 21, 19, 0, 129, 97, 116, 101, 0, 74, 55, 8, 12, 67,
- 8, 22, 77, 8, 0, 8, 15, 15, 18, 6, 0, 130, 97, 103, 117, 101, 0, 20, 17, 24,
- 0, 131, 105, 113, 117, 101, 0, 68, 84, 8, 21, 105, 8, 0, 6, 0, 108, 93, 8, 8,
- 98, 8, 0, 130, 117, 115, 101, 0, 5, 0, 130, 117, 115, 101, 0, 8, 19, 0, 132,
- 117, 114, 115, 117, 101, 0, 76, 122, 8, 18, 147, 8, 0, 72, 129, 8, 15, 139, 8,
- 0, 15, 8, 5, 0, 131, 105, 101, 118, 101, 0, 8, 5, 0, 129, 101, 118, 101, 0,
- 82, 154, 8, 25, 161, 8, 0, 21, 19, 0, 130, 118, 101, 0, 5, 4, 0, 131, 111,
- 118, 101, 0, 12, 8, 0, 75, 182, 8, 15, 189, 8, 21, 197, 8, 0, 6, 0, 130, 105,
- 101, 102, 0, 8, 5, 0, 130, 105, 101, 102, 0, 5, 0, 130, 105, 101, 102, 0, 76,
- 211, 8, 17, 221, 8, 0, 17, 18, 10, 44, 0, 130, 105, 110, 103, 0, 76, 228, 8,
- 21, 58, 9, 0, 72, 244, 8, 11, 11, 9, 15, 24, 9, 21, 36, 9, 28, 47, 9, 0, 72,
- 251, 8, 11, 2, 9, 0, 5, 0, 131, 105, 110, 103, 0, 6, 4, 6, 0, 131, 105, 110,
- 103, 0, 23, 6, 4, 16, 0, 133, 116, 99, 104, 105, 110, 103, 0, 8, 12, 6, 0,
- 133, 101, 105, 108, 105, 110, 103, 0, 24, 6, 8, 21, 0, 130, 114, 105, 110,
- 103, 0, 23, 28, 17, 4, 0, 131, 104, 105, 110, 103, 0, 12, 23, 22, 0, 131, 114,
- 105, 110, 103, 0, 70, 87, 9, 8, 142, 9, 10, 154, 9, 12, 164, 9, 22, 173, 9,
- 23, 191, 9, 0, 75, 100, 9, 12, 109, 9, 15, 119, 9, 21, 127, 9, 0, 12, 26, 0,
- 131, 104, 105, 99, 104, 0, 23, 26, 22, 0, 131, 105, 116, 99, 104, 0, 11, 26,
- 0, 130, 105, 99, 104, 0, 4, 8, 22, 4, 8, 21, 0, 134, 115, 101, 97, 114, 99,
- 104, 0, 23, 7, 17, 4, 44, 0, 130, 32, 116, 104, 101, 0, 17, 8, 21, 23, 22, 0,
- 128, 116, 104, 0, 6, 11, 26, 0, 130, 105, 99, 104, 0, 12, 15, 19, 16, 18, 6,
- 4, 0, 134, 99, 111, 109, 112, 108, 105, 115, 104, 0, 74, 201, 9, 12, 225, 9,
- 21, 236, 9, 0, 72, 208, 9, 12, 218, 9, 0, 21, 23, 22, 0, 130, 110, 103, 116,
- 104, 0, 8, 11, 0, 129, 104, 116, 0, 26, 7, 17, 4, 5, 0, 129, 100, 116, 104, 0,
- 24, 23, 44, 0, 131, 114, 117, 116, 104, 0, 21, 8, 11, 23, 44, 0, 129, 105,
- 114, 0, 17, 0, 76, 9, 10, 24, 20, 10, 0, 23, 11, 44, 0, 132, 116, 104, 105,
- 110, 107, 0, 12, 11, 23, 0, 130, 110, 107, 0, 68, 50, 10, 7, 134, 10, 8, 177,
- 10, 9, 17, 11, 15, 26, 11, 23, 55, 11, 24, 64, 11, 0, 76, 60, 10, 23, 71, 10,
- 24, 96, 10, 0, 6, 19, 28, 23, 0, 131, 105, 99, 97, 108, 0, 76, 78, 10, 24, 86,
- 10, 0, 17, 12, 0, 129, 105, 97, 108, 0, 21, 12, 25, 0, 131, 116, 117, 97, 108,
- 0, 81, 106, 10, 21, 115, 10, 23, 124, 10, 0, 4, 44, 0, 130, 110, 117, 97, 108,
- 0, 24, 23, 4, 17, 0, 130, 97, 108, 0, 12, 25, 0, 131, 114, 116, 117, 97, 108,
- 0, 24, 0, 82, 143, 10, 26, 167, 10, 0, 70, 153, 10, 11, 157, 10, 26, 163, 10,
- 0, 129, 108, 100, 0, 22, 0, 129, 108, 100, 0, 129, 108, 100, 0, 18, 44, 0,
- 132, 119, 111, 117, 108, 100, 0, 74, 193, 10, 15, 201, 10, 19, 247, 10, 23,
- 255, 10, 24, 7, 11, 0, 17, 12, 22, 0, 129, 108, 101, 0, 68, 208, 10, 15, 234,
- 10, 0, 21, 0, 68, 217, 10, 21, 224, 10, 0, 19, 0, 129, 108, 101, 108, 0, 4,
- 19, 0, 132, 97, 108, 108, 101, 108, 0, 4, 21, 21, 4, 19, 0, 133, 97, 108, 108,
- 101, 108, 0, 18, 8, 19, 0, 129, 108, 101, 0, 23, 12, 15, 0, 129, 108, 101, 0,
- 7, 8, 11, 6, 22, 0, 129, 108, 101, 0, 8, 22, 28, 16, 0, 129, 108, 102, 0, 12,
- 9, 0, 79, 36, 11, 24, 46, 11, 0, 15, 24, 9, 0, 132, 102, 105, 108, 108, 0, 9,
- 0, 131, 108, 102, 105, 108, 108, 0, 24, 22, 8, 21, 0, 129, 108, 116, 0, 9, 23,
- 4, 8, 21, 10, 0, 133, 97, 116, 101, 102, 117, 108, 0, 68, 89, 11, 15, 106, 11,
- 21, 117, 11, 0, 21, 10, 18, 23, 6, 8, 19, 22, 0, 132, 114, 111, 103, 114, 97,
- 109, 0, 8, 5, 18, 21, 19, 0, 130, 108, 101, 109, 0, 18, 9, 18, 6, 0, 131, 110,
- 102, 111, 114, 109, 0, 68, 166, 11, 7, 206, 11, 8, 215, 11, 10, 58, 12, 12,
- 141, 12, 14, 153, 12, 18, 192, 12, 19, 108, 13, 21, 120, 13, 22, 131, 13, 24,
- 141, 13, 26, 164, 13, 0, 12, 0, 74, 175, 11, 23, 183, 11, 0, 4, 44, 0, 130,
- 97, 105, 110, 0, 81, 190, 11, 21, 198, 11, 0, 18, 6, 0, 130, 97, 105, 110, 0,
- 8, 6, 0, 130, 97, 105, 110, 0, 24, 18, 9, 44, 0, 129, 110, 100, 0, 71, 231,
- 11, 8, 241, 11, 10, 27, 12, 19, 39, 12, 22, 48, 12, 0, 15, 12, 11, 6, 0, 129,
- 114, 101, 110, 0, 87, 248, 11, 26, 17, 12, 0, 72, 255, 11, 26, 7, 12, 0, 5, 0,
- 130, 119, 101, 101, 110, 0, 8, 5, 0, 132, 116, 119, 101, 101, 110, 0, 8, 5, 0,
- 131, 116, 119, 101, 101, 110, 0, 18, 7, 28, 11, 0, 131, 114, 111, 103, 101,
- 110, 0, 4, 11, 44, 0, 129, 112, 101, 110, 0, 18, 18, 11, 6, 0, 131, 115, 101,
- 110, 0, 72, 65, 12, 12, 76, 12, 0, 12, 21, 18, 9, 0, 131, 101, 105, 103, 110,
- 0, 75, 95, 12, 15, 101, 12, 17, 109, 12, 18, 118, 12, 21, 125, 12, 22, 132,
- 12, 0, 23, 0, 129, 110, 103, 0, 15, 4, 0, 131, 105, 103, 110, 0, 21, 4, 8, 15,
- 0, 129, 110, 103, 0, 10, 44, 0, 129, 110, 103, 0, 23, 22, 0, 129, 110, 103, 0,
- 4, 44, 0, 130, 115, 105, 103, 110, 0, 23, 4, 21, 8, 6, 0, 131, 116, 97, 105,
- 110, 0, 75, 160, 12, 12, 169, 12, 0, 12, 23, 0, 131, 104, 105, 110, 107, 0,
- 75, 176, 12, 23, 182, 12, 0, 23, 0, 129, 110, 107, 0, 11, 44, 0, 132, 116,
- 104, 105, 110, 107, 0, 76, 202, 12, 22, 86, 13, 23, 96, 13, 0, 70, 212, 12,
- 22, 225, 12, 23, 251, 12, 0, 12, 22, 8, 7, 0, 133, 99, 105, 115, 105, 111,
- 110, 0, 68, 232, 12, 22, 241, 12, 0, 12, 15, 0, 131, 105, 115, 111, 110, 0, 4,
- 6, 6, 18, 0, 131, 105, 111, 110, 0, 68, 14, 13, 7, 27, 13, 12, 37, 13, 15, 52,
- 13, 17, 64, 13, 22, 76, 13, 0, 21, 8, 5, 4, 0, 132, 114, 97, 116, 105, 111,
- 110, 0, 7, 4, 0, 131, 105, 116, 105, 111, 110, 0, 23, 12, 19, 8, 21, 0, 134,
- 101, 116, 105, 116, 105, 111, 110, 0, 4, 8, 21, 0, 133, 108, 97, 116, 105,
- 111, 110, 0, 6, 24, 9, 0, 133, 110, 99, 116, 105, 111, 110, 0, 18, 19, 0, 131,
- 105, 116, 105, 111, 110, 0, 12, 25, 12, 7, 0, 129, 105, 111, 110, 0, 12, 6, 4,
- 21, 9, 0, 131, 116, 105, 111, 110, 0, 19, 11, 4, 0, 132, 104, 97, 112, 112,
- 101, 110, 0, 23, 24, 8, 21, 0, 131, 116, 117, 114, 110, 0, 10, 12, 11, 23, 0,
- 130, 110, 103, 115, 0, 85, 148, 13, 23, 157, 13, 0, 23, 8, 21, 0, 130, 117,
- 114, 110, 0, 8, 21, 0, 128, 114, 110, 0, 18, 14, 17, 24, 0, 130, 110, 111,
- 119, 110, 0, 71, 185, 13, 17, 196, 13, 26, 205, 13, 0, 8, 24, 22, 19, 0, 131,
- 101, 117, 100, 111, 0, 26, 14, 44, 0, 130, 110, 111, 119, 0, 79, 212, 13, 17,
- 220, 13, 0, 15, 18, 9, 0, 129, 111, 119, 0, 14, 44, 0, 129, 111, 119, 0, 86,
- 234, 13, 24, 244, 13, 0, 4, 11, 21, 8, 19, 0, 129, 112, 115, 0, 18, 18, 15, 0,
- 129, 107, 117, 112, 0, 68, 28, 14, 8, 93, 14, 11, 103, 15, 15, 113, 15, 18,
- 127, 15, 19, 144, 15, 22, 155, 15, 23, 164, 15, 24, 176, 15, 28, 185, 15, 0,
- 76, 38, 14, 15, 48, 14, 24, 82, 14, 0, 15, 12, 16, 12, 22, 0, 130, 97, 114, 0,
- 76, 55, 14, 24, 66, 14, 0, 16, 16, 12, 22, 0, 132, 105, 108, 97, 114, 0, 6,
- 12, 23, 4, 19, 0, 134, 114, 116, 105, 99, 117, 108, 97, 114, 0, 15, 10, 8, 21,
- 0, 131, 117, 108, 97, 114, 0, 68, 124, 14, 7, 132, 14, 11, 145, 14, 12, 203,
- 14, 15, 229, 14, 16, 239, 14, 17, 249, 14, 18, 37, 15, 23, 45, 15, 25, 76, 15,
- 0, 15, 6, 0, 130, 101, 97, 114, 0, 17, 4, 15, 4, 6, 0, 132, 101, 110, 100, 97,
- 114, 0, 74, 152, 14, 23, 163, 14, 0, 12, 8, 11, 0, 133, 105, 103, 104, 101,
- 114, 0, 72, 173, 14, 15, 185, 14, 24, 194, 14, 0, 11, 10, 18, 23, 0, 133, 101,
- 116, 104, 101, 114, 0, 18, 44, 0, 132, 116, 104, 101, 114, 0, 9, 0, 131, 114,
- 116, 104, 101, 114, 0, 75, 210, 14, 15, 218, 14, 0, 23, 44, 0, 130, 101, 105,
- 114, 0, 19, 16, 18, 6, 0, 131, 105, 108, 101, 114, 0, 23, 12, 9, 0, 131, 108,
- 116, 101, 114, 0, 16, 4, 21, 10, 44, 0, 129, 97, 114, 0, 76, 0, 15, 23, 12,
- 15, 0, 10, 10, 8, 5, 0, 132, 105, 110, 110, 101, 114, 0, 76, 19, 15, 22, 28,
- 15, 0, 18, 19, 0, 131, 110, 116, 101, 114, 0, 12, 15, 0, 130, 101, 110, 101,
- 114, 0, 9, 8, 5, 0, 129, 114, 101, 0, 75, 52, 15, 24, 62, 15, 0, 18, 17, 4, 0,
- 131, 116, 104, 101, 114, 0, 19, 18, 16, 6, 0, 134, 111, 109, 112, 117, 116,
- 101, 114, 0, 72, 83, 15, 26, 94, 15, 0, 8, 21, 8, 11, 26, 0, 131, 118, 101,
- 114, 0, 18, 11, 0, 130, 101, 118, 101, 114, 0, 8, 23, 18, 44, 0, 130, 104,
- 101, 114, 0, 4, 24, 6, 12, 23, 21, 4, 19, 0, 130, 108, 97, 114, 0, 23, 4, 21,
- 8, 23, 17, 12, 0, 135, 116, 101, 114, 97, 116, 111, 114, 0, 23, 15, 15, 24,
- 17, 0, 130, 112, 116, 114, 0, 4, 8, 28, 44, 0, 129, 114, 115, 0, 18, 4, 21, 8,
- 19, 18, 0, 130, 116, 111, 114, 0, 6, 18, 44, 0, 129, 99, 117, 114, 0, 8, 25,
- 8, 44, 0, 129, 114, 121, 0, 68, 219, 15, 8, 3, 16, 10, 147, 16, 19, 158, 16,
- 21, 170, 16, 22, 181, 16, 23, 77, 17, 24, 85, 17, 0, 75, 229, 15, 19, 240, 15,
- 28, 250, 15, 0, 19, 21, 8, 19, 0, 131, 104, 97, 112, 115, 0, 11, 21, 8, 19, 0,
- 130, 97, 112, 115, 0, 26, 15, 4, 0, 130, 97, 121, 115, 0, 68, 19, 16, 6, 42,
- 16, 12, 53, 16, 15, 129, 16, 22, 136, 16, 0, 71, 26, 16, 14, 34, 16, 0, 12,
- 44, 0, 130, 101, 97, 115, 0, 23, 0, 131, 97, 107, 101, 115, 0, 8, 7, 17, 12,
- 0, 131, 105, 99, 101, 115, 0, 70, 63, 16, 21, 102, 16, 23, 117, 16, 0, 72, 70,
- 16, 12, 80, 16, 0, 7, 17, 12, 0, 132, 105, 99, 101, 115, 0, 71, 87, 16, 23,
- 94, 16, 0, 17, 12, 0, 130, 101, 115, 0, 21, 8, 25, 0, 130, 101, 115, 0, 18,
- 22, 8, 6, 6, 4, 0, 132, 115, 111, 114, 105, 101, 115, 0, 15, 12, 5, 4, 0, 131,
- 105, 116, 105, 101, 115, 0, 4, 9, 0, 129, 115, 101, 0, 18, 11, 6, 44, 0, 130,
- 111, 115, 101, 115, 0, 12, 17, 11, 23, 0, 131, 105, 110, 103, 115, 0, 4, 8,
- 11, 21, 8, 19, 0, 131, 97, 112, 115, 0, 8, 4, 28, 44, 0, 131, 101, 97, 114,
- 115, 0, 68, 191, 16, 8, 203, 16, 18, 66, 17, 0, 21, 4, 5, 16, 8, 0, 130, 114,
- 97, 115, 115, 0, 70, 216, 16, 17, 240, 16, 21, 13, 17, 22, 42, 17, 0, 70, 223,
- 16, 24, 232, 16, 0, 18, 21, 19, 0, 131, 101, 115, 115, 0, 22, 0, 130, 99, 101,
- 115, 115, 0, 76, 247, 16, 22, 3, 17, 0, 22, 22, 24, 5, 0, 133, 105, 110, 101,
- 115, 115, 0, 24, 5, 0, 131, 105, 110, 101, 115, 115, 0, 19, 0, 85, 22, 17, 24,
- 33, 17, 0, 24, 22, 0, 133, 112, 112, 114, 101, 115, 115, 0, 22, 0, 131, 112,
- 114, 101, 115, 115, 0, 70, 49, 17, 18, 58, 17, 0, 6, 24, 22, 0, 131, 101, 115,
- 115, 0, 19, 0, 130, 115, 101, 115, 115, 0, 21, 6, 6, 4, 0, 132, 114, 111, 115,
- 115, 0, 21, 12, 9, 0, 129, 115, 116, 0, 82, 92, 17, 22, 106, 17, 0, 15, 18,
- 16, 18, 17, 4, 0, 132, 97, 108, 111, 117, 115, 0, 17, 8, 6, 17, 18, 6, 0, 133,
- 115, 101, 110, 115, 117, 115, 0, 68, 158, 17, 8, 188, 17, 10, 217, 17, 11,
- 227, 17, 12, 25, 18, 15, 36, 18, 16, 47, 18, 17, 59, 18, 18, 151, 19, 19, 189,
- 19, 22, 217, 19, 24, 107, 20, 0, 85, 165, 17, 26, 176, 17, 0, 8, 19, 8, 22, 0,
- 131, 97, 114, 97, 116, 0, 11, 8, 16, 18, 22, 0, 131, 119, 104, 97, 116, 0, 68,
- 195, 17, 17, 204, 17, 0, 21, 10, 44, 0, 130, 101, 97, 116, 0, 16, 17, 21, 8,
- 25, 18, 10, 0, 130, 101, 110, 116, 0, 11, 24, 4, 6, 0, 130, 103, 104, 116, 0,
- 71, 237, 17, 10, 244, 17, 12, 14, 18, 0, 12, 26, 0, 129, 116, 104, 0, 81, 251,
- 17, 24, 2, 18, 0, 8, 15, 0, 129, 116, 104, 0, 18, 21, 11, 23, 0, 133, 111,
- 117, 103, 104, 116, 0, 10, 17, 18, 23, 0, 131, 105, 103, 104, 116, 0, 23, 24,
- 18, 5, 4, 0, 129, 32, 105, 116, 0, 22, 24, 8, 21, 0, 131, 115, 117, 108, 116,
- 0, 4, 23, 21, 18, 19, 16, 12, 0, 129, 110, 116, 0, 68, 72, 18, 8, 128, 18, 21,
- 132, 19, 22, 143, 19, 0, 76, 85, 18, 17, 96, 18, 21, 107, 18, 23, 117, 18, 0,
- 19, 12, 6, 8, 21, 0, 130, 101, 110, 116, 0, 12, 16, 18, 21, 19, 0, 130, 101,
- 110, 116, 0, 4, 19, 19, 4, 0, 130, 101, 110, 116, 0, 8, 19, 16, 18, 6, 0, 130,
- 101, 110, 116, 0, 76, 144, 18, 16, 177, 18, 21, 21, 19, 25, 111, 19, 29, 121,
- 19, 0, 70, 151, 18, 19, 164, 18, 0, 8, 9, 9, 8, 0, 133, 105, 99, 105, 101,
- 110, 116, 0, 8, 6, 8, 21, 0, 133, 105, 112, 105, 101, 110, 116, 0, 72, 190,
- 18, 17, 202, 18, 21, 235, 18, 23, 10, 19, 0, 25, 18, 10, 0, 131, 114, 110,
- 109, 101, 110, 116, 0, 72, 209, 18, 21, 221, 18, 0, 25, 18, 10, 0, 132, 114,
- 110, 109, 101, 110, 116, 0, 18, 25, 18, 10, 0, 134, 101, 114, 110, 109, 101,
- 110, 116, 0, 72, 242, 18, 18, 253, 18, 0, 25, 18, 10, 0, 131, 110, 109, 101,
- 110, 116, 0, 25, 18, 10, 0, 133, 101, 114, 110, 109, 101, 110, 116, 0, 4, 23,
- 22, 0, 131, 101, 109, 101, 110, 116, 0, 68, 34, 19, 8, 45, 19, 9, 57, 19, 21,
- 68, 19, 0, 19, 4, 0, 132, 112, 97, 114, 101, 110, 116, 0, 9, 12, 7, 0, 132,
- 102, 101, 114, 101, 110, 116, 0, 9, 12, 7, 0, 131, 101, 114, 101, 110, 116, 0,
- 68, 75, 19, 8, 99, 19, 0, 19, 0, 68, 84, 19, 19, 92, 19, 0, 133, 112, 97, 114,
- 101, 110, 116, 0, 4, 0, 131, 101, 110, 116, 0, 9, 12, 7, 0, 133, 102, 101,
- 114, 101, 110, 116, 0, 8, 15, 8, 21, 0, 130, 97, 110, 116, 0, 12, 17, 10, 18,
- 6, 0, 130, 97, 110, 116, 0, 8, 9, 9, 12, 7, 0, 129, 101, 110, 116, 0, 18, 6,
- 0, 130, 110, 115, 116, 0, 81, 161, 19, 21, 171, 19, 22, 180, 19, 0, 7, 12, 7,
- 0, 130, 32, 110, 111, 116, 0, 19, 8, 21, 0, 130, 111, 114, 116, 0, 16, 15, 4,
- 0, 130, 111, 115, 116, 0, 72, 196, 19, 28, 207, 19, 0, 12, 6, 8, 21, 0, 131,
- 101, 105, 112, 116, 0, 6, 17, 8, 0, 130, 114, 121, 112, 116, 0, 72, 236, 19,
- 10, 21, 20, 12, 30, 20, 16, 59, 20, 17, 69, 20, 24, 96, 20, 0, 74, 243, 19,
- 21, 10, 20, 0, 76, 250, 19, 24, 2, 20, 0, 11, 0, 130, 104, 101, 115, 116, 0,
- 22, 0, 130, 103, 101, 115, 116, 0, 23, 17, 12, 0, 131, 101, 114, 101, 115,
- 116, 0, 21, 4, 15, 0, 129, 101, 115, 116, 0, 73, 37, 20, 17, 49, 20, 0, 8, 17,
- 4, 16, 0, 132, 105, 102, 101, 115, 116, 0, 4, 10, 4, 0, 131, 105, 110, 115,
- 116, 0, 18, 15, 4, 0, 131, 109, 111, 115, 116, 0, 68, 76, 20, 17, 87, 20, 0,
- 12, 10, 4, 0, 132, 97, 105, 110, 115, 116, 0, 12, 4, 10, 4, 0, 130, 115, 116,
- 0, 13, 4, 44, 0, 131, 100, 106, 117, 115, 116, 0, 70, 120, 20, 18, 144, 20,
- 19, 168, 20, 23, 191, 20, 0, 72, 127, 20, 21, 137, 20, 0, 6, 27, 8, 0, 132,
- 101, 99, 117, 116, 0, 12, 6, 0, 128, 105, 116, 0, 68, 151, 20, 5, 160, 20, 0,
- 5, 0, 132, 97, 98, 111, 117, 116, 0, 5, 4, 0, 131, 111, 117, 116, 0, 87, 175,
- 20, 24, 183, 20, 0, 17, 12, 0, 131, 112, 117, 116, 0, 18, 0, 130, 116, 112,
- 117, 116, 0, 19, 24, 18, 0, 131, 116, 112, 117, 116, 0, 23, 18, 5, 4, 0, 129,
- 117, 116, 0, 72, 217, 20, 12, 253, 20, 0, 68, 224, 20, 12, 231, 20, 0, 11, 44,
- 0, 129, 118, 101, 0, 70, 238, 20, 8, 246, 20, 0, 8, 21, 0, 130, 101, 105, 118,
- 0, 6, 8, 21, 0, 129, 118, 0, 8, 11, 6, 4, 44, 0, 130, 105, 101, 118, 0, 76,
- 15, 21, 17, 25, 21, 0, 8, 25, 8, 21, 0, 130, 105, 101, 119, 0, 18, 14, 44, 0,
- 130, 110, 111, 119, 0, 70, 59, 21, 8, 118, 21, 11, 128, 21, 15, 146, 21, 17,
- 87, 22, 21, 114, 22, 22, 12, 23, 23, 39, 23, 0, 68, 72, 21, 8, 84, 21, 12, 95,
- 21, 19, 106, 21, 0, 21, 6, 18, 19, 28, 11, 0, 130, 105, 115, 121, 0, 24, 20,
- 8, 21, 9, 0, 129, 110, 99, 121, 0, 21, 6, 18, 19, 28, 11, 0, 129, 115, 121, 0,
- 24, 21, 14, 17, 4, 5, 0, 129, 116, 99, 121, 0, 23, 9, 4, 22, 0, 130, 101, 116,
- 121, 0, 6, 21, 4, 21, 12, 8, 11, 0, 135, 105, 101, 114, 97, 114, 99, 104, 121,
- 0, 68, 165, 21, 11, 232, 21, 14, 242, 21, 15, 250, 21, 18, 66, 22, 21, 76, 22,
- 0, 69, 184, 21, 8, 193, 21, 15, 199, 21, 17, 208, 21, 21, 215, 21, 24, 224,
- 21, 0, 18, 21, 19, 0, 129, 98, 108, 121, 0, 21, 0, 128, 108, 121, 0, 8, 21, 0,
- 131, 97, 108, 108, 121, 0, 12, 9, 0, 128, 108, 121, 0, 8, 17, 8, 10, 0, 128,
- 108, 121, 0, 23, 6, 4, 0, 128, 108, 121, 0, 10, 12, 15, 22, 0, 129, 116, 108,
- 121, 0, 12, 15, 0, 129, 101, 108, 121, 0, 68, 4, 22, 5, 47, 22, 8, 56, 22, 0,
- 86, 11, 22, 23, 35, 22, 0, 24, 0, 108, 20, 22, 22, 27, 22, 0, 131, 117, 97,
- 108, 108, 121, 0, 24, 0, 132, 97, 108, 108, 121, 0, 24, 6, 4, 0, 133, 116,
- 117, 97, 108, 108, 121, 0, 4, 5, 18, 21, 19, 0, 129, 121, 0, 4, 21, 0, 132,
- 101, 97, 108, 108, 121, 0, 16, 18, 17, 4, 0, 130, 97, 108, 121, 0, 4, 16, 12,
- 21, 19, 0, 129, 105, 108, 121, 0, 72, 94, 22, 19, 103, 22, 0, 18, 16, 44, 0,
- 130, 110, 101, 121, 0, 4, 16, 18, 6, 0, 131, 112, 97, 110, 121, 0, 68, 127,
- 22, 8, 231, 22, 18, 240, 22, 23, 253, 22, 0, 69, 143, 22, 12, 152, 22, 15,
- 165, 22, 16, 193, 22, 22, 202, 22, 0, 12, 15, 0, 130, 114, 97, 114, 121, 0,
- 15, 15, 12, 27, 24, 4, 0, 132, 105, 97, 114, 121, 0, 76, 172, 22, 15, 182, 22,
- 0, 27, 24, 4, 0, 130, 105, 97, 114, 121, 0, 12, 27, 24, 4, 0, 131, 105, 97,
- 114, 121, 0, 24, 22, 0, 130, 109, 97, 114, 121, 0, 8, 6, 0, 70, 212, 22, 8,
- 223, 22, 0, 8, 17, 0, 133, 101, 115, 115, 97, 114, 121, 0, 17, 0, 130, 115,
- 97, 114, 121, 0, 19, 18, 21, 19, 0, 128, 116, 121, 0, 10, 4, 23, 4, 6, 0, 132,
- 101, 103, 111, 114, 121, 0, 17, 24, 6, 18, 44, 0, 134, 99, 111, 117, 110, 116,
- 114, 121, 0, 4, 0, 85, 21, 23, 26, 32, 23, 0, 6, 18, 19, 28, 11, 0, 130, 105,
- 115, 121, 0, 15, 4, 0, 129, 121, 115, 0, 73, 49, 23, 15, 57, 23, 21, 66, 23,
- 0, 4, 22, 0, 129, 101, 116, 121, 0, 12, 5, 4, 0, 129, 105, 116, 121, 0, 19, 8,
- 18, 21, 19, 0, 132, 112, 101, 114, 116, 121, 0};
-
diff --git a/users/gourdo1/autocorrect/autocorrection_data.h (small) b/users/gourdo1/autocorrect/autocorrection_data.h (small)
deleted file mode 100644
index f98471bb08..0000000000
--- a/users/gourdo1/autocorrect/autocorrection_data.h (small)
+++ /dev/null
@@ -1,152 +0,0 @@
-// Copyright 2021-2022 Google LLC
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// https://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-// Generated code.
-
-// Autocorrection dictionary (71 entries):
-// :guage -> gauge
-// :the:the: -> the
-// :thier -> their
-// :ture -> true
-// accomodate -> accommodate
-// acommodate -> accommodate
-// aparent -> apparent
-// aparrent -> apparent
-// apparant -> apparent
-// apparrent -> apparent
-// aquire -> acquire
-// becuase -> because
-// cauhgt -> caught
-// cheif -> chief
-// choosen -> chosen
-// cieling -> ceiling
-// collegue -> colleague
-// concensus -> consensus
-// contians -> contains
-// cosnt -> const
-// dervied -> derived
-// dosen't -> doesn't
-// fales -> false
-// fasle -> false
-// fitler -> filter
-// flase -> false
-// foward -> forward
-// frequecy -> frequency
-// gaurantee -> guarantee
-// guaratee -> guarantee
-// heigth -> height
-// heirarchy -> hierarchy
-// inclued -> include
-// interator -> iterator
-// intput -> input
-// invliad -> invalid
-// lenght -> length
-// liasion -> liaison
-// libary -> library
-// listner -> listener
-// looses: -> loses
-// looup -> lookup
-// manefist -> manifest
-// namesapce -> namespace
-// namespcae -> namespace
-// occassion -> occasion
-// occured -> occurred
-// ouptut -> output
-// ouput -> output
-// overide -> override
-// postion -> position
-// priviledge -> privilege
-// psuedo -> pseudo
-// recieve -> receive
-// refered -> referred
-// relevent -> relevant
-// repitition -> repetition
-// retrun -> return
-// retun -> return
-// reuslt -> result
-// reutrn -> return
-// saftey -> safety
-// seperate -> separate
-// singed -> signed
-// stirng -> string
-// strign -> string
-// swithc -> switch
-// swtich -> switch
-// thresold -> threshold
-// udpate -> update
-// widht -> width
-
-#define AUTOCORRECTION_MIN_LENGTH 5 // ":ture"
-#define AUTOCORRECTION_MAX_LENGTH 10 // "accomodate"
-
-static const uint8_t autocorrection_data[1120] PROGMEM = {108, 43, 0, 6, 71, 0,
- 7, 81, 0, 8, 199, 0, 9, 240, 1, 10, 250, 1, 11, 26, 2, 17, 53, 2, 18, 190, 2,
- 19, 202, 2, 21, 212, 2, 22, 20, 3, 23, 67, 3, 28, 32, 4, 0, 72, 50, 0, 22, 60,
- 0, 0, 11, 23, 44, 8, 11, 23, 44, 0, 132, 0, 8, 22, 18, 18, 15, 0, 132, 115,
- 101, 115, 0, 11, 23, 12, 26, 22, 0, 129, 99, 104, 0, 68, 94, 0, 8, 106, 0, 15,
- 174, 0, 21, 187, 0, 0, 12, 15, 25, 17, 12, 0, 131, 97, 108, 105, 100, 0, 74,
- 119, 0, 12, 129, 0, 21, 140, 0, 24, 165, 0, 0, 17, 12, 22, 0, 131, 103, 110,
- 101, 100, 0, 25, 21, 8, 7, 0, 131, 105, 118, 101, 100, 0, 72, 147, 0, 24, 156,
- 0, 0, 9, 8, 21, 0, 129, 114, 101, 100, 0, 6, 6, 18, 0, 129, 114, 101, 100, 0,
- 15, 6, 17, 12, 0, 129, 100, 101, 0, 18, 22, 8, 21, 11, 23, 0, 130, 104, 111,
- 108, 100, 0, 4, 26, 18, 9, 0, 131, 114, 119, 97, 114, 100, 0, 68, 233, 0, 6,
- 246, 0, 7, 4, 1, 8, 16, 1, 10, 52, 1, 15, 81, 1, 21, 90, 1, 22, 117, 1, 23,
- 144, 1, 24, 215, 1, 25, 228, 1, 0, 6, 19, 22, 8, 16, 4, 17, 0, 130, 97, 99,
- 101, 0, 19, 4, 22, 8, 16, 4, 17, 0, 131, 112, 97, 99, 101, 0, 12, 21, 8, 25,
- 18, 0, 130, 114, 105, 100, 101, 0, 23, 0, 68, 25, 1, 17, 36, 1, 0, 21, 4, 24,
- 10, 0, 130, 110, 116, 101, 101, 0, 4, 21, 24, 4, 10, 0, 135, 117, 97, 114, 97,
- 110, 116, 101, 101, 0, 68, 59, 1, 7, 69, 1, 0, 24, 10, 44, 0, 131, 97, 117,
- 103, 101, 0, 8, 15, 12, 25, 12, 21, 19, 0, 130, 103, 101, 0, 22, 4, 9, 0, 130,
- 108, 115, 101, 0, 76, 97, 1, 24, 109, 1, 0, 24, 20, 4, 0, 132, 99, 113, 117,
- 105, 114, 101, 0, 23, 44, 0, 130, 114, 117, 101, 0, 4, 0, 79, 126, 1, 24, 134,
- 1, 0, 9, 0, 131, 97, 108, 115, 101, 0, 6, 8, 5, 0, 131, 97, 117, 115, 101, 0,
- 4, 0, 71, 156, 1, 19, 193, 1, 21, 203, 1, 0, 18, 16, 0, 80, 166, 1, 18, 181,
- 1, 0, 18, 6, 4, 0, 135, 99, 111, 109, 109, 111, 100, 97, 116, 101, 0, 6, 6, 4,
- 0, 132, 109, 111, 100, 97, 116, 101, 0, 7, 24, 0, 132, 112, 100, 97, 116, 101,
- 0, 8, 19, 8, 22, 0, 132, 97, 114, 97, 116, 101, 0, 10, 8, 15, 15, 18, 6, 0,
- 130, 97, 103, 117, 101, 0, 8, 12, 6, 8, 21, 0, 131, 101, 105, 118, 101, 0, 12,
- 8, 11, 6, 0, 130, 105, 101, 102, 0, 17, 0, 76, 3, 2, 21, 16, 2, 0, 15, 8, 12,
- 6, 0, 133, 101, 105, 108, 105, 110, 103, 0, 12, 23, 22, 0, 131, 114, 105, 110,
- 103, 0, 70, 33, 2, 23, 44, 2, 0, 12, 23, 26, 22, 0, 131, 105, 116, 99, 104, 0,
- 10, 12, 8, 11, 0, 129, 104, 116, 0, 72, 69, 2, 10, 80, 2, 18, 89, 2, 21, 156,
- 2, 24, 167, 2, 0, 22, 18, 18, 11, 6, 0, 131, 115, 101, 110, 0, 12, 21, 23, 22,
- 0, 129, 110, 103, 0, 12, 0, 86, 98, 2, 23, 124, 2, 0, 68, 105, 2, 22, 114, 2,
- 0, 12, 15, 0, 131, 105, 115, 111, 110, 0, 4, 6, 6, 18, 0, 131, 105, 111, 110,
- 0, 76, 131, 2, 22, 146, 2, 0, 23, 12, 19, 8, 21, 0, 134, 101, 116, 105, 116,
- 105, 111, 110, 0, 18, 19, 0, 131, 105, 116, 105, 111, 110, 0, 23, 24, 8, 21,
- 0, 131, 116, 117, 114, 110, 0, 85, 174, 2, 23, 183, 2, 0, 23, 8, 21, 0, 130,
- 117, 114, 110, 0, 8, 21, 0, 128, 114, 110, 0, 7, 8, 24, 22, 19, 0, 131, 101,
- 117, 100, 111, 0, 24, 18, 18, 15, 0, 129, 107, 117, 112, 0, 72, 219, 2, 18, 3,
- 3, 0, 76, 229, 2, 15, 238, 2, 17, 248, 2, 0, 11, 23, 44, 0, 130, 101, 105,
- 114, 0, 23, 12, 9, 0, 131, 108, 116, 101, 114, 0, 23, 22, 12, 15, 0, 130, 101,
- 110, 101, 114, 0, 23, 4, 21, 8, 23, 17, 12, 0, 135, 116, 101, 114, 97, 116,
- 111, 114, 0, 72, 30, 3, 17, 38, 3, 24, 51, 3, 0, 15, 4, 9, 0, 129, 115, 101,
- 0, 4, 12, 23, 17, 18, 6, 0, 131, 97, 105, 110, 115, 0, 22, 17, 8, 6, 17, 18,
- 6, 0, 133, 115, 101, 110, 115, 117, 115, 0, 116, 89, 3, 10, 102, 3, 11, 112,
- 3, 15, 134, 3, 17, 145, 3, 22, 234, 3, 24, 248, 3, 0, 17, 8, 22, 18, 7, 0,
- 132, 101, 115, 110, 39, 116, 0, 11, 24, 4, 6, 0, 130, 103, 104, 116, 0, 71,
- 119, 3, 10, 126, 3, 0, 12, 26, 0, 129, 116, 104, 0, 17, 8, 15, 0, 129, 116,
- 104, 0, 22, 24, 8, 21, 0, 131, 115, 117, 108, 116, 0, 68, 155, 3, 8, 166, 3,
- 22, 226, 3, 0, 21, 4, 19, 19, 4, 0, 130, 101, 110, 116, 0, 85, 173, 3, 25,
- 216, 3, 0, 68, 180, 3, 21, 191, 3, 0, 19, 4, 0, 132, 112, 97, 114, 101, 110,
- 116, 0, 4, 19, 0, 68, 201, 3, 19, 209, 3, 0, 133, 112, 97, 114, 101, 110, 116,
- 0, 4, 0, 131, 101, 110, 116, 0, 8, 15, 8, 21, 0, 130, 97, 110, 116, 0, 18, 6,
- 0, 130, 110, 115, 116, 0, 12, 9, 8, 17, 4, 16, 0, 132, 105, 102, 101, 115,
- 116, 0, 83, 255, 3, 23, 22, 4, 0, 87, 6, 4, 24, 14, 4, 0, 17, 12, 0, 131, 112,
- 117, 116, 0, 18, 0, 130, 116, 112, 117, 116, 0, 19, 24, 18, 0, 131, 116, 112,
- 117, 116, 0, 70, 45, 4, 8, 57, 4, 11, 67, 4, 21, 85, 4, 0, 8, 24, 20, 8, 21,
- 9, 0, 129, 110, 99, 121, 0, 23, 9, 4, 22, 0, 130, 101, 116, 121, 0, 6, 21, 4,
- 21, 12, 8, 11, 0, 135, 105, 101, 114, 97, 114, 99, 104, 121, 0, 4, 5, 12, 15,
- 0, 130, 114, 97, 114, 121, 0};
-
diff --git a/users/gourdo1/autocorrect/autocorrection_dict.txt b/users/gourdo1/autocorrect/autocorrection_dict.txt
deleted file mode 100644
index b5f293d96c..0000000000
--- a/users/gourdo1/autocorrect/autocorrection_dict.txt
+++ /dev/null
@@ -1,473 +0,0 @@
-# Copyright 2021 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# https://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-#
-# This is a larger example typo dictionary containing 400 entries. It builds to
-# a table of about 6000 bytes, so you'll need a keyboard with a generous
-# amount of free firmware space to use the full dictionary. Alternatively, pick
-# out a subset of entries to a separate file, then build a table from that.
-#
-# Dictionary syntax:
-# Each line of this file defines one typo correction entry with the syntax
-# "typo -> correction". Typos and corrections are case insensitive, and any
-# whitespace before or after the typo and correction is ignored. The typo must be
-# only the letters a-z, or the special character : representing a word break.
-#
-# For documentation about how to use this dictionary, see
-# https://getreuer.info/posts/keyboards/autocorrection
-#
-# Further resources:
-# * Wikipedia has a large list of common typos at
-# https://en.wikipedia.org/wiki/Wikipedia:Lists_of_common_misspellings/For_machines
-#
-# * EmacsWiki has another list of typos at
-# https://www.emacswiki.org/emacs/autocorrection_abbrev_defs
-#
-# * You can find data on English word frequencies at
-# https://www.wordfrequency.info/samples.asp
-
-
-## 10 most common words.
-# The words "there", "about", "their", "would", "people", "which", "could",
-# "think", "other", and "because" are among the most common words in English
-# that are 5 letters or longer. (We don't include entries for words shorter than
-# that to avoid false triggering.)
-:htere -> there
-abbout -> about
-abotu -> about
-baout -> about
-:theri -> their
-:thier -> their
-:owudl -> would
-woudl -> would
-peaple -> people
-peolpe -> people
-peopel -> people
-poeple -> people
-poeople -> people
-:hwihc -> which
-whcih -> which
-whihc -> which
-whlch -> which
-wihch -> which
-coudl -> could
-:htikn -> think
-:htink -> think
-thikn -> think
-thiunk -> think
-tihkn -> think
-:olther -> other
-:otehr -> other
-baceause -> because
-beacuse -> because
-becasue -> because
-beccause -> because
-becouse -> because
-becuase -> because
-
-## Common words, 11-20.
-theese -> these
-:goign -> going
-:gonig -> going
-:yaers -> years
-:yeasr -> years
-:thsoe -> those
-shoudl -> should
-raelly -> really
-realy -> really
-relaly -> really
-bedore -> before
-befoer -> before
-littel -> little
-beeing -> being
-:hwile -> while
-
-## Common words, 21-30.
-aroud -> around
-arround -> around
-arund -> around
-thign -> thing
-thigsn -> things
-thnigs -> things
-anohter -> another
-beteen -> between
-beween -> between
-bewteen -> between
-:eveyr -> every
-:graet -> great
-:agian -> again
-:sicne -> since
-alwasy -> always
-alwyas -> always
-throught -> thought
-
-
-## Words especially susceptible to skipping or transposing a letter.
-# These entries are for words that are easy enough to spell, but not necessarily
-# easy to press the keys in the right order.
-# Catch misspellings of "achieves", "achieving", etc.
-:acheiv -> achiev
-almsot -> almost
-alomst -> almost
-chnage -> change
-chekc -> check
-childen -> children
-claer -> clear
-comapny -> company
-contian -> contain
-elasped -> elapsed
-feild -> field
-fitler -> filter
-firts -> first
-follwo -> follow
-:foudn -> found
-frequecy -> frequency
-firend -> friend
-freind -> friend
-heigth -> height
-iamge -> image
-inital -> initial
-intput -> input
-laguage -> language
-lenght -> length
-levle -> level
-libary -> library
-:moeny -> money
-mysefl -> myself
-ouptut -> output
-ouput -> output
-probaly -> probably
-probelm -> problem
-recrod -> record
-reponse -> response
-reprot -> report
-singel -> single
-stregth -> strength
-strengh -> strength
-tkaes -> takes
-therfore -> therefore
-todya -> today
-toghether -> together
-unkown -> unknown
-unqiue -> unique
-widht -> width
-
-
-## Words with tricky spelling.
-# If you are a good speller, you could drop this section.
-aberation -> aberration
-accross -> across
-adviced -> advised
-aledge -> allege
-alledge -> allege
-amature -> amateur
-anomolous -> anomalous
-anomoly -> anomaly
-aparent -> apparent
-aparrent -> apparent
-apparant -> apparent
-apparrent -> apparent
-asthetic -> aesthetic
-auxilary -> auxiliary
-auxillary -> auxiliary
-auxilliary -> auxiliary
-bankrupcy -> bankruptcy
-busness -> business
-bussiness -> business
-calander -> calendar
-commitee -> committee
-comittee -> committee
-competance -> competence
-competant -> competent
-concensus -> consensus
-cognizent -> cognizant
-copywrite: -> copyright
-choosen -> chosen
-collegue -> colleague
-excercise -> exercise
-:grammer -> grammar
-:guage -> gauge
-govement -> government
-govenment -> government
-goverment -> government
-governmnet -> government
-govorment -> government
-govornment -> government
-guaratee -> guarantee
-garantee -> guarantee
-gaurantee -> guarantee
-heirarchy -> hierarchy
-hygeine -> hygiene
-hypocracy -> hypocrisy
-hypocrasy -> hypocrisy
-hypocricy -> hypocrisy
-hypocrit: -> hypocrite
-looses: -> loses
-maintence -> maintenance
-morgage -> mortgage
-neccesary -> necessary
-necesary -> necessary
-pallete -> palette
-paralel -> parallel
-parralel -> parallel
-parrallel -> parallel
-priviledge -> privilege
-probablly -> probably
-prominant -> prominent
-propogate -> propagate
-proove -> prove
-psuedo -> pseudo
-reciept -> receipt
-# Catch misspellings of "receives", "receiving", etc.
-receiev -> receiv
-reciev -> receiv
-recepient -> recipient
-recipiant -> recipient
-relevent -> relevant
-repitition -> repetition
-safty -> safety
-saftey -> safety
-# Catch misspellings of "separate", "separating", etc.
-seperat -> separat
-spectogram -> spectrogram
-symetric -> symmetric
-tolerence -> tolerance
-
-
-## Words particularly for coding.
-# Entries for common code keywords ("const") and terminology ("lookup").
-cacheing -> caching
-complier -> compiler
-doulbe -> double
-dyanmic -> dynamic
-# As in "execute", "executable", "executing", ...
-excecut -> execut
-failse -> false
-fales -> false
-fasle -> false
-flase -> false
-indeces -> indices
-indecies -> indices
-indicies -> indices
-interator -> iterator
-looup -> lookup
-namesapce -> namespace
-namespcae -> namespace
-nulltpr -> nullptr
-operaotr -> operator
-overide -> override
-ovveride -> override
-poitner -> pointer
-:rference -> reference
-referece -> reference
-singed -> signed
-stirng -> string
-strign -> string
-swithc -> switch
-swtich -> switch
-teamplate -> template
-tempalte -> template
-:ture -> true
-retrun -> return
-retun -> return
-reutrn -> return
-cosnt -> const
-virutal -> virtual
-vitual -> virtual
-yeild -> yield
-
-
-## Catch skipped spaces between common words.
-:alot: -> a lot
-:andteh -> and the
-:andthe -> and the
-:asthe -> as the
-:atthe -> at the
-abouta -> about a
-aboutit -> about it
-aboutthe -> about the
-:tothe -> to the
-didnot -> did not
-fromthe -> from the
-
-
-## Various additional entries.
-:agred -> agreed
-:ajust -> adjust
-:anual -> annual
-:asign -> assign
-:aslo: -> also
-:casue -> cause
-:choses -> chooses
-:gaurd -> guard
-:haev -> have
-:hapen -> happen
-:idaes -> ideas
-:jsut: -> just
-:jstu: -> just
-:knwo -> know
-:konw -> know
-:kwno -> know
-:ocuntry -> country
-:ocur -> occur
-:socre -> score
-:szie -> size
-:the:the: -> the
-:turth -> truth
-:uesd: -> used
-:usally -> usually
-abilties -> abilities
-abilty -> ability
-abvove -> above
-accesories -> accessories
-accomodate -> accommodate
-acommodate -> accommodate
-acomplish -> accomplish
-actualy -> actually
-acurate -> accurate
-acutally -> actually
-addtion -> addition
-againnst -> against
-aganist -> against
-aggreed -> agreed
-agianst -> against
-ahppn -> happen
-allign -> align
-anytying -> anything
-aquire -> acquire
-availabe -> available
-availaible -> available
-availalbe -> available
-availble -> available
-availiable -> available
-avalable -> available
-avaliable -> available
-avilable -> available
-bandwith -> bandwidth
-begginer -> beginner
-beleif -> belief
-beleive -> believe
-belive -> believe
-breif -> brief
-burried -> buried
-caluclate -> calculate
-caluculate -> calculate
-calulate -> calculate
-catagory -> category
-cauhgt -> caught
-ceratin -> certain
-certian -> certain
-cheif -> chief
-cieling -> ceiling
-circut -> circuit
-clasic -> classic
-cmoputer -> computer
-coform -> conform
-comming: -> coming
-considerd -> considered
-dervied -> derived
-desicion -> decision
-diferent -> different
-diferrent -> different
-differnt -> different
-diffrent -> different
-divison -> division
-effecient -> efficient
-eligable -> eligible
-elpased -> elapsed
-embarass -> embarrass
-embeded -> embedded
-encypt -> encrypt
-finaly -> finally
-foriegn -> foreign
-foward -> forward
-fraciton -> fraction
-fucntion -> function
-fufill -> fulfill
-fullfill -> fulfill
-futher -> further
-ganerate -> generate
-generaly -> generally
-greatful -> grateful
-heigher -> higher
-higest -> highest
-howver -> however
-hydogen -> hydrogen
-importamt -> important
-inclued -> include
-insted -> instead
-intrest -> interest
-invliad -> invalid
-largst -> largest
-learnign -> learning
-liasion -> liaison
-likly -> likely
-lisense -> license
-listner -> listener
-macthing -> matching
-manefist -> manifest
-mesage -> message
-naturual -> natural
-occassion -> occasion
-occured -> occurred
-particualr -> particular
-paticular -> particular
-peice -> piece
-perhasp -> perhaps
-perheaps -> perhaps
-perhpas -> perhaps
-perphas -> perhaps
-persue -> pursue
-posess -> possess
-postion -> position
-preiod -> period
-primarly -> primarily
-privte -> private
-proccess -> process
-proeprty -> property
-propery -> property
-realtion -> relation
-reasearch -> research
-recuring -> recurring
-refered -> referred
-regluar -> regular
-releated -> related
-resutl -> result
-reuslt -> result
-reveiw -> review
-satisifed -> satisfied
-scheduel -> schedule
-sequnce -> sequence
-similiar -> similar
-simmilar -> similar
-slighly -> slightly
-somehwat -> somewhat
-statment -> statement
-sucess -> success
-succsess -> success
-sugest -> suggest
-sumary -> summary
-supress -> suppress
-surpress -> suppress
-thresold -> threshold
-tongiht -> tonight
-tranpose -> transpose
-typcial -> typical
-udpate -> update
-ususally -> usually
-verticies -> vertices
-whereever -> wherever
-wherre -> where
-wierd -> weird
-
diff --git a/users/gourdo1/autocorrect/make_autocorrection_data.py b/users/gourdo1/autocorrect/make_autocorrection_data.py
deleted file mode 100644
index 8e0bcf9e8e..0000000000
--- a/users/gourdo1/autocorrect/make_autocorrection_data.py
+++ /dev/null
@@ -1,303 +0,0 @@
-# Copyright 2021-2022 Google LLC
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# https://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-"""Python program to make autocorrection_data.h.
-
-This program reads "autocorrection_dict.txt" and generates a C source file
-"autocorrection_data.h" with a serialized trie embedded as an array. Run this
-program without arguments like
-
-$ python3 make_autocorrection_data.py
-
-Or to read from a different typo dict file, pass it as the first argument like
-
-$ python3 make_autocorrection_data.py dict.txt
-
-Each line of the dict file defines one typo and its correction with the syntax
-"typo -> correction". Blank lines or lines starting with '#' are ignored.
-Example:
-
- :thier -> their
- dosen't -> doesn't
- fitler -> filter
- lenght -> length
- ouput -> output
- widht -> width
-
-See autocorrection_dict_extra.txt for a larger example.
-
-For full documentation, see
-https://getreuer.info/posts/keyboards/autocorrection
-"""
-
-import sys
-import textwrap
-from typing import Any, Dict, Iterator, List, Tuple
-
-try:
- from english_words import english_words_lower_alpha_set as CORRECT_WORDS
-except ImportError:
- print('Autocorrection will falsely trigger when a typo is a substring of a '
- 'correctly spelled word. To check for this, install the english_words '
- 'package and rerun this script:\n\n pip install english_words\n')
- # Use a minimal word list as a fallback.
- CORRECT_WORDS = ('apparent', 'association', 'available', 'classification',
- 'effect', 'entertainment', 'fantastic', 'information',
- 'integrate', 'international', 'language', 'loosest',
- 'manual', 'nothing', 'provides', 'reference', 'statehood',
- 'technology', 'virtually', 'wealthier', 'wonderful')
-
-KC_A = 4
-KC_SPC = 0x2c
-KC_QUOT = 0x34
-
-TYPO_CHARS = dict(
- [
- ("'", KC_QUOT),
- (':', KC_SPC), # "Word break" character.
- ] +
- # Characters a-z.
- [(chr(c), c + KC_A - ord('a')) for c in range(ord('a'), ord('z') + 1)]
-)
-
-
-def parse_file(file_name: str) -> List[Tuple[str, str]]:
- """Parses autocorrections dictionary file.
-
- Each line of the file defines one typo and its correction with the syntax
- "typo -> correction". Blank lines or lines starting with '#' are ignored. The
- function validates that typos only have characters in TYPO_CHARS, that
- typos are not substrings of other typos, and checking that typos don't trigger
- on CORRECT_WORDS.
-
- Args:
- file_name: String, path of the autocorrections dictionary.
- Returns:
- List of (typo, correction) tuples.
- """
-
- autocorrections = []
- typos = set()
- for line_number, typo, correction in parse_file_lines(file_name):
- if typo in typos:
- print(f'Warning:{line_number}: Ignoring duplicate typo: "{typo}"')
- continue
-
- # Check that `typo` is valid.
- if not(all([c in TYPO_CHARS for c in typo])):
- print(f'Error:{line_number}: Typo "{typo}" has '
- 'characters other than ' + ''.join(TYPO_CHARS.keys()))
- sys.exit(1)
- for other_typo in typos:
- if typo in other_typo or other_typo in typo:
- print(f'Error:{line_number}: Typos may not be substrings of one '
- f'another, otherwise the longer typo would never trigger: '
- f'"{typo}" vs. "{other_typo}".')
- sys.exit(1)
- if len(typo) < 5:
- print(f'Warning:{line_number}: It is suggested that typos are at '
- f'least 5 characters long to avoid false triggers: "{typo}"')
-
- check_typo_against_dictionary(line_number, typo)
-
- autocorrections.append((typo, correction))
- typos.add(typo)
-
- return autocorrections
-
-
-def make_trie(autocorrections: List[Tuple[str, str]]) -> Dict[str, Any]:
- """Makes a trie from the the typos, writing in reverse.
-
- Args:
- autocorrections: List of (typo, correction) tuples.
- Returns:
- Dict of dict, representing the trie.
- """
- trie = {}
- for typo, correction in autocorrections:
- node = trie
- for letter in typo[::-1]:
- node = node.setdefault(letter, {})
- node['LEAF'] = (typo, correction)
-
- return trie
-
-
-def parse_file_lines(file_name: str) -> Iterator[Tuple[int, str, str]]:
- """Parses lines read from `file_name` into typo-correction pairs."""
-
- line_number = 0
- for line in open(file_name, 'rt'):
- line_number += 1
- line = line.strip()
- if line and line[0] != '#':
- # Parse syntax "typo -> correction", using strip to ignore indenting.
- tokens = [token.strip() for token in line.split('->', 1)]
- if len(tokens) != 2 or not tokens[0]:
- print(f'Error:{line_number}: Invalid syntax: "{line}"')
- sys.exit(1)
-
- typo, correction = tokens
- typo = typo.lower() # Force typos to lowercase.
- typo = typo.replace(' ', ':')
-
- yield line_number, typo, correction
-
-
-def check_typo_against_dictionary(line_number: int, typo: str) -> None:
- """Checks `typo` against English dictionary words."""
-
- if typo.startswith(':') and typo.endswith(':'):
- if typo[1:-1] in CORRECT_WORDS:
- print(f'Warning:{line_number}: Typo "{typo}" is a correctly spelled '
- 'dictionary word.')
- elif typo.startswith(':') and not typo.endswith(':'):
- for word in CORRECT_WORDS:
- if word.startswith(typo[1:]):
- print(f'Warning:{line_number}: Typo "{typo}" would falsely trigger '
- f'on correctly spelled word "{word}".')
- elif not typo.startswith(':') and typo.endswith(':'):
- for word in CORRECT_WORDS:
- if word.endswith(typo[:-1]):
- print(f'Warning:{line_number}: Typo "{typo}" would falsely trigger '
- f'on correctly spelled word "{word}".')
- elif not typo.startswith(':') and not typo.endswith(':'):
- for word in CORRECT_WORDS:
- if typo in word:
- print(f'Warning:{line_number}: Typo "{typo}" would falsely trigger '
- f'on correctly spelled word "{word}".')
-
-
-def serialize_trie(autocorrections: List[Tuple[str, str]],
- trie: Dict[str, Any]) -> List[int]:
- """Serializes trie and correction data in a form readable by the C code.
-
- Args:
- autocorrections: List of (typo, correction) tuples.
- trie: Dict of dicts.
- Returns:
- List of ints in the range 0-255.
- """
- table = []
-
- # Traverse trie in depth first order.
- def traverse(trie_node: Dict[str, Any]) -> Dict[str, Any]:
- if 'LEAF' in trie_node: # Handle a leaf trie node.
- typo, correction = trie_node['LEAF']
- word_boundary_ending = typo[-1] == ':'
- typo = typo.strip(':')
- i = 0 # Make the autocorrection data for this entry and serialize it.
- while i < min(len(typo), len(correction)) and typo[i] == correction[i]:
- i += 1
- backspaces = len(typo) - i - 1 + word_boundary_ending
- assert 0 <= backspaces <= 63
- correction = correction[i:]
- data = [backspaces + 128] + list(bytes(correction, 'ascii')) + [0]
-
- entry = {'data': data, 'links': [], 'byte_offset': 0}
- table.append(entry)
- elif len(trie_node) == 1: # Handle trie node with a single child.
- c, trie_node = next(iter(trie_node.items()))
- entry = {'chars': c, 'byte_offset': 0}
-
- # It's common for a trie to have long chains of single-child nodes. We
- # find the whole chain so that we can serialize it more efficiently.
- while len(trie_node) == 1 and 'LEAF' not in trie_node:
- c, trie_node = next(iter(trie_node.items()))
- entry['chars'] += c
-
- table.append(entry)
- entry['links'] = [traverse(trie_node)]
- else: # Handle trie node with multiple children.
- entry = {'chars': ''.join(sorted(trie_node.keys())), 'byte_offset': 0}
- table.append(entry)
- entry['links'] = [traverse(trie_node[c]) for c in entry['chars']]
- return entry
-
- traverse(trie)
-
- def serialize(e: Dict[str, Any]) -> List[int]:
- if not e['links']: # Handle a leaf table entry.
- return e['data']
- elif len(e['links']) == 1: # Handle a chain table entry.
- return [TYPO_CHARS[c] for c in e['chars']] + [0]
- else: # Handle a branch table entry.
- data = []
- for c, link in zip(e['chars'], e['links']):
- data += [TYPO_CHARS[c] | (0 if data else 64)] + encode_link(link)
- return data + [0]
-
- byte_offset = 0
- for e in table: # To encode links, first compute byte offset of each entry.
- e['byte_offset'] = byte_offset
- byte_offset += len(serialize(e))
-
- return [b for e in table for b in serialize(e)] # Serialize final table.
-
-
-def encode_link(link: Dict[str, Any]) -> List[int]:
- """Encodes a node link as two bytes."""
- byte_offset = link['byte_offset']
- if not (0 <= byte_offset <= 0xffff):
- print('Error: The autocorrection table is too large, a node link exceeds '
- '64KB limit. Try reducing the autocorrection dict to fewer entries.')
- sys.exit(1)
- return [byte_offset & 255, byte_offset >> 8]
-
-
-def write_generated_code(autocorrections: List[Tuple[str, str]],
- data: List[int],
- file_name: str) -> None:
- """Writes autocorrection data as generated C code to `file_name`.
-
- Args:
- autocorrections: List of (typo, correction) tuples.
- data: List of ints in 0-255, the serialized trie.
- file_name: String, path of the output C file.
- """
- assert all(0 <= b <= 255 for b in data)
-
- def typo_len(e: Tuple[str, str]) -> int:
- return len(e[0])
-
- min_typo = min(autocorrections, key=typo_len)[0]
- max_typo = max(autocorrections, key=typo_len)[0]
- generated_code = ''.join([
- '// Generated code.\n\n',
- f'// Autocorrection dictionary ({len(autocorrections)} entries):\n',
- ''.join(sorted(f'// {typo:<{len(max_typo)}} -> {correction}\n'
- for typo, correction in autocorrections)),
- f'\n#define AUTOCORRECTION_MIN_LENGTH {len(min_typo)} // "{min_typo}"\n',
- f'#define AUTOCORRECTION_MAX_LENGTH {len(max_typo)} // "{max_typo}"\n\n',
- textwrap.fill('static const uint8_t autocorrection_data[%d] PROGMEM = {%s};' % (
- len(data), ', '.join(map(str, data))), width=80, subsequent_indent=' '),
- '\n\n'])
-
- with open(file_name, 'wt') as f:
- f.write(generated_code)
-
-
-def main(argv):
- dict_file = argv[1] if len(argv) > 1 else 'autocorrection_dict.txt'
- autocorrections = parse_file(dict_file)
- trie = make_trie(autocorrections)
- data = serialize_trie(autocorrections, trie)
- print(f'Processed %d autocorrection entries to table with %d bytes.'
- % (len(autocorrections), len(data)))
- write_generated_code(autocorrections, data, 'autocorrection_data.h')
-
-
-if __name__ == '__main__':
- main(sys.argv)
diff --git a/users/gourdo1/custom_double_taps.h b/users/gourdo1/custom_double_taps.h
deleted file mode 100644
index fe97b8cd1f..0000000000
--- a/users/gourdo1/custom_double_taps.h
+++ /dev/null
@@ -1,101 +0,0 @@
-// Copyright 2022 Google LLC
-// SPDX-License-Identifier: Apache-2.0
-
-#pragma once
-
-#include "gourdo1.h"
-
-static bool process_capsnum(uint16_t keycode, keyrecord_t * record) {
- static bool toggled = false;
- static bool tapped = false;
- static uint16_t tap_timer = 0;
-
- if (keycode == CAPSNUM) {
- if (user_config.double_tap_shift_for_capslock) {
- // Act as TT(_NUMPADMOUSE)
- if (record -> event.pressed) { // CAPSNUM key was pressed
- // Check whether the key was recently tapped
- if (tapped && !timer_expired(record -> event.time, tap_timer)) {
- // This is a double tap (or possibly a triple tap or more)
- // Toggle the layer on.
- toggled = true;
- } else if (toggled) {
- // Otherwise if currently toggled, turn it off
- toggled = false;
- tapped = false;
- layer_off(_NUMPADMOUSE);
- }
- // Set that the first tap occurred in a potential double tap
- tapped = true;
- tap_timer = record -> event.time + TAPPING_TERM;
- layer_on(_NUMPADMOUSE);
- } else if (!toggled) {
- // If not currently toggled, turn off on key release
- layer_off(_NUMPADMOUSE);
- return false;
- }
- } else { // When double_tap_shift_for_capslock == false
- // Act as KC_CAPS
- if (record -> event.pressed) {
- register_code(KC_CAPS);
- } else {
- unregister_code(KC_CAPS);
- }
- }
- return false;
- } else {
- // On an event with any other key, reset the double tap state
- tapped = false;
- }
- return true;
-}
-
-static bool process_esc_to_base(uint16_t keycode, keyrecord_t * record) {
- static bool tapped = false;
- static uint16_t tap_timer = 0;
-
- if (keycode == KC_ESC) {
- if (user_config.esc_double_tap_to_baselyr) {
- if (record -> event.pressed) {
- if (tapped && !timer_expired(record -> event.time, tap_timer)) {
- // The key was double tapped.
- layer_clear();
- }
- tapped = true;
- tap_timer = record -> event.time + TAPPING_TERM;
- }
- }
- } else {
- // On an event with any other key, reset the double tap state.
- tapped = false;
- }
- return true;
-}
-
-static bool process_lsft_for_caps(uint16_t keycode, keyrecord_t * record) {
- static bool tapped = false;
- static uint16_t tap_timer = 0;
-
- if (keycode == KC_LSFT) {
- if (user_config.double_tap_shift_for_capslock) {
- if (!keymap_config.no_gui) {
- if (record->event.pressed) {
- if (tapped && !timer_expired(record->event.time, tap_timer)) {
- // The key was double tapped.
- //clear_mods(); // If needed, clear the mods.
- // Do something interesting...
- register_code(KC_CAPS);
- }
- tapped = true;
- tap_timer = record->event.time + TAPPING_TERM;
- } else {
- unregister_code(KC_CAPS);
- }
- }
- }
- } else {
- // On an event with any other key, reset the double tap state.
- tapped = false;
- }
- return true;
-}
diff --git a/users/gourdo1/gourdo1.c b/users/gourdo1/gourdo1.c
deleted file mode 100644
index 377ccc0a19..0000000000
--- a/users/gourdo1/gourdo1.c
+++ /dev/null
@@ -1,631 +0,0 @@
-/* Copyright 2021 Jonavin Eng @Jonavin
- Copyright 2022 gourdo1 <gourdo1@outlook.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 QMK_KEYBOARD_H
-
-#include "gourdo1.h"
-
-#include "custom_double_taps.h"
-
-#include "autocorrect/autocorrection.h"
-
-// RGB NIGHT MODE
-#ifdef RGB_MATRIX_ENABLE
-static bool rgb_nightmode = false;
-
-// Turn on/off NUM LOCK if current state is different
-void activate_rgb_nightmode(bool turn_on) {
- if (rgb_nightmode != turn_on) {
- rgb_nightmode = !rgb_nightmode;
- }
-}
-
-bool get_rgb_nightmode(void) {
- return rgb_nightmode;
-}
-#endif // RGB_MATRIX_ENABLE
-
-// TIMEOUTS
-#ifdef IDLE_TIMEOUT_ENABLE
-static uint16_t timeout_timer = 0;
-static uint16_t timeout_counter = 0; //in minute intervals
-static uint16_t timeout_threshold = TIMEOUT_THRESHOLD_DEFAULT;
-
-uint16_t get_timeout_threshold(void) {
- return timeout_threshold;
-}
-
-void timeout_reset_timer(void) {
- timeout_timer = timer_read();
- timeout_counter = 0;
-};
-
-void timeout_update_threshold(bool increase) {
- if (increase && timeout_threshold < TIMEOUT_THRESHOLD_MAX) timeout_threshold++;
- if (!increase && timeout_threshold > 0) timeout_threshold--;
-};
-
-void timeout_tick_timer(void) {
- if (timeout_threshold > 0) {
- if (timer_elapsed(timeout_timer) >= 60000) { // 1 minute tick
- timeout_counter++;
- timeout_timer = timer_read();
- }
- #ifdef RGB_MATRIX_ENABLE
- if (timeout_threshold > 0 && timeout_counter >= timeout_threshold) {
- rgb_matrix_disable_noeeprom();
- }
- #endif
- } // timeout_threshold = 0 will disable timeout
-}
-
-#endif // IDLE_TIMEOUT_ENABLE
-
-#if defined(ALTTAB_SCROLL_ENABLE) || defined(IDLE_TIMEOUT_ENABLE) // timer features
-__attribute__((weak)) void matrix_scan_keymap(void) {}
-
-void matrix_scan_user(void) {
- #ifdef ALTTAB_SCROLL_ENABLE
- encoder_tick_alttabscroll();
- #endif
- #ifdef IDLE_TIMEOUT_ENABLE
- timeout_tick_timer();
- #endif
- matrix_scan_keymap();
-}
-#endif // ALTTAB_SCROLL_ENABLE or IDLE_TIMEOUT_ENABLE
-
-// Initialize variable holding the binary representation of active modifiers.
-uint8_t mod_state;
-
-// ============================================= PROCESS KEY CODES =============================================
-
-__attribute__((weak)) bool process_record_keymap(uint16_t keycode, keyrecord_t * record) {
- return true;
-}
-
-bool process_record_user(uint16_t keycode, keyrecord_t * record) {
- mod_state = get_mods();
- if (!process_record_keymap(keycode, record)) { return false; }
- if (!process_capsnum(keycode, record)) { return false; }
- if (!process_esc_to_base(keycode, record)) { return false; }
- if (!process_lsft_for_caps(keycode, record)) { return false; }
- if (!process_autocorrection(keycode, record)) { return false; }
-
- // Key macros ...
- switch (keycode) {
-
- // User configuration toggles
- case PRNCONF: // Print verbose status of all user_config toggles (open a text editor before engaging!!)
- if (record->event.pressed) {
- send_string("\n"SS_TAP(X_KP_MINUS)SS_TAP(X_KP_MINUS)SS_TAP(X_KP_MINUS)SS_TAP(X_KP_MINUS)SS_TAP(X_KP_MINUS)SS_TAP(X_KP_MINUS)SS_TAP(X_KP_MINUS)SS_TAP(X_KP_MINUS)SS_TAP(X_KP_MINUS)"#########");
- send_string(" gourdo1" SS_LALT(SS_TAP(X_KP_0)SS_TAP(X_KP_0)SS_TAP(X_KP_3)SS_TAP(X_KP_9))"s GMMK Pro User Settings ");
- send_string("#########"SS_TAP(X_KP_MINUS)SS_TAP(X_KP_MINUS)SS_TAP(X_KP_MINUS)SS_TAP(X_KP_MINUS)SS_TAP(X_KP_MINUS)SS_TAP(X_KP_MINUS)SS_TAP(X_KP_MINUS)SS_TAP(X_KP_MINUS)SS_TAP(X_KP_MINUS)"\n");
- send_string("Hold "SS_LALT(SS_TAP(X_KP_0)SS_TAP(X_KP_0)SS_TAP(X_KP_9)SS_TAP(X_KP_1))"Fn"SS_LALT(SS_TAP(X_KP_0)SS_TAP(X_KP_0)SS_TAP(X_KP_9)SS_TAP(X_KP_3))" and the number corresponding to a setting below to toggle.\n");
- send_string("Re"SS_TAP(X_KP_MINUS)"print this screen with "SS_LALT(SS_TAP(X_KP_0)SS_TAP(X_KP_0)SS_TAP(X_KP_9)SS_TAP(X_KP_1))"Fn" SS_LALT(SS_TAP(X_KP_0)SS_TAP(X_KP_0)SS_TAP(X_KP_9)SS_TAP(X_KP_3)) SS_LALT(SS_TAP(X_KP_0)SS_TAP(X_KP_0)SS_TAP(X_KP_9)SS_TAP(X_KP_1))"`" SS_LALT(SS_TAP(X_KP_0)SS_TAP(X_KP_0)SS_TAP(X_KP_9)SS_TAP(X_KP_3))" to see your changes reflected.\n");
- send_string("Config also visible as RGB under number keys by holding "SS_LALT(SS_TAP(X_KP_0)SS_TAP(X_KP_0)SS_TAP(X_KP_9)SS_TAP(X_KP_1))"Fn" SS_LALT(SS_TAP(X_KP_0)SS_TAP(X_KP_0)SS_TAP(X_KP_9)SS_TAP(X_KP_3))".\n");
- send_string(SS_TAP(X_KP_MINUS)SS_TAP(X_KP_MINUS)SS_TAP(X_KP_MINUS)SS_TAP(X_KP_MINUS)SS_TAP(X_KP_MINUS)SS_TAP(X_KP_MINUS)SS_TAP(X_KP_MINUS)SS_TAP(X_KP_MINUS)SS_TAP(X_KP_MINUS)SS_TAP(X_KP_MINUS)SS_TAP(X_KP_MINUS)SS_TAP(X_KP_MINUS)SS_TAP(X_KP_MINUS)SS_TAP(X_KP_MINUS)SS_TAP(X_KP_MINUS)SS_TAP(X_KP_MINUS)SS_TAP(X_KP_MINUS)SS_TAP(X_KP_MINUS)SS_TAP(X_KP_MINUS)SS_TAP(X_KP_MINUS));
- send_string(SS_TAP(X_KP_MINUS)SS_TAP(X_KP_MINUS)SS_TAP(X_KP_MINUS)SS_TAP(X_KP_MINUS)SS_TAP(X_KP_MINUS)SS_TAP(X_KP_MINUS)SS_TAP(X_KP_MINUS)SS_TAP(X_KP_MINUS)SS_TAP(X_KP_MINUS)SS_TAP(X_KP_MINUS)SS_TAP(X_KP_MINUS)SS_TAP(X_KP_MINUS)SS_TAP(X_KP_MINUS)SS_TAP(X_KP_MINUS)SS_TAP(X_KP_MINUS)SS_TAP(X_KP_MINUS)SS_TAP(X_KP_MINUS)SS_TAP(X_KP_MINUS)SS_TAP(X_KP_MINUS)SS_TAP(X_KP_MINUS));
- send_string(SS_TAP(X_KP_MINUS)SS_TAP(X_KP_MINUS)SS_TAP(X_KP_MINUS)SS_TAP(X_KP_MINUS)SS_TAP(X_KP_MINUS)SS_TAP(X_KP_MINUS)SS_TAP(X_KP_MINUS)SS_TAP(X_KP_MINUS)SS_TAP(X_KP_MINUS)SS_TAP(X_KP_MINUS)SS_TAP(X_KP_MINUS)SS_TAP(X_KP_MINUS)SS_TAP(X_KP_MINUS)SS_TAP(X_KP_MINUS)SS_TAP(X_KP_MINUS)SS_TAP(X_KP_MINUS)SS_TAP(X_KP_MINUS)SS_TAP(X_KP_MINUS)SS_TAP(X_KP_MINUS)SS_TAP(X_KP_MINUS));
- send_string(SS_TAP(X_KP_MINUS)SS_TAP(X_KP_MINUS)SS_TAP(X_KP_MINUS)SS_TAP(X_KP_MINUS)SS_TAP(X_KP_MINUS)SS_TAP(X_KP_MINUS)SS_TAP(X_KP_MINUS)SS_TAP(X_KP_MINUS)SS_TAP(X_KP_MINUS)SS_TAP(X_KP_MINUS)"\n");
- send_string("1. CapsLock RGB highlight alpha keys................ ");
- if (user_config.rgb_hilite_caps) {
- send_string(SS_LALT(SS_TAP(X_KP_0)SS_TAP(X_KP_0)SS_TAP(X_KP_9)SS_TAP(X_KP_1))"ON" SS_LALT(SS_TAP(X_KP_0)SS_TAP(X_KP_0)SS_TAP(X_KP_9)SS_TAP(X_KP_3))"\n");
- } else {
- send_string(SS_LALT(SS_TAP(X_KP_0)SS_TAP(X_KP_0)SS_TAP(X_KP_9)SS_TAP(X_KP_1))"OFF" SS_LALT(SS_TAP(X_KP_0)SS_TAP(X_KP_0)SS_TAP(X_KP_9)SS_TAP(X_KP_3))"\n");
- }
- send_string("2. Numpad RGB highlight layer keys.................. ");
- if (user_config.rgb_hilite_numpad) {
- send_string(SS_LALT(SS_TAP(X_KP_0)SS_TAP(X_KP_0)SS_TAP(X_KP_9)SS_TAP(X_KP_1))"ON" SS_LALT(SS_TAP(X_KP_0)SS_TAP(X_KP_0)SS_TAP(X_KP_9)SS_TAP(X_KP_3))"\n");
- } else {
- send_string(SS_LALT(SS_TAP(X_KP_0)SS_TAP(X_KP_0)SS_TAP(X_KP_9)SS_TAP(X_KP_1))"OFF" SS_LALT(SS_TAP(X_KP_0)SS_TAP(X_KP_0)SS_TAP(X_KP_9)SS_TAP(X_KP_3))"\n");
- }
- send_string("3. Double tap ESC to revert to BASE layer........... ");
- if (user_config.esc_double_tap_to_baselyr) {
- send_string(SS_LALT(SS_TAP(X_KP_0)SS_TAP(X_KP_0)SS_TAP(X_KP_9)SS_TAP(X_KP_1))"ON" SS_LALT(SS_TAP(X_KP_0)SS_TAP(X_KP_0)SS_TAP(X_KP_9)SS_TAP(X_KP_3))"\n");
- } else {
- send_string(SS_LALT(SS_TAP(X_KP_0)SS_TAP(X_KP_0)SS_TAP(X_KP_9)SS_TAP(X_KP_1))"OFF" SS_LALT(SS_TAP(X_KP_0)SS_TAP(X_KP_0)SS_TAP(X_KP_9)SS_TAP(X_KP_3))"\n");
- }
- send_string("4. DEL "SS_LALT(SS_TAP(X_KP_0)SS_TAP(X_KP_0)SS_TAP(X_KP_3)SS_TAP(X_KP_8))" HOME key locations......................... ");
- if (user_config.del_right_home_top) {
- send_string(SS_LALT(SS_TAP(X_KP_0)SS_TAP(X_KP_0)SS_TAP(X_KP_9)SS_TAP(X_KP_1))"HOME on F13"SS_LALT(SS_TAP(X_KP_0)SS_TAP(X_KP_0)SS_TAP(X_KP_5)SS_TAP(X_KP_9))" DEL right of BKSPC" SS_LALT(SS_TAP(X_KP_0)SS_TAP(X_KP_0)SS_TAP(X_KP_9)SS_TAP(X_KP_3))"\n");
- } else {
- send_string(SS_LALT(SS_TAP(X_KP_0)SS_TAP(X_KP_0)SS_TAP(X_KP_9)SS_TAP(X_KP_1))"DEL on F13"SS_LALT(SS_TAP(X_KP_0)SS_TAP(X_KP_0)SS_TAP(X_KP_5)SS_TAP(X_KP_9))" HOME right of BKSPC" SS_LALT(SS_TAP(X_KP_0)SS_TAP(X_KP_0)SS_TAP(X_KP_9)SS_TAP(X_KP_3))"\n");
- }
- send_string("5. Numpad on CapsLock"SS_LALT(SS_TAP(X_KP_0)SS_TAP(X_KP_0)SS_TAP(X_KP_5)SS_TAP(X_KP_9))" double tap LSHIFT for Caps... ");
- if (user_config.double_tap_shift_for_capslock) {
- send_string(SS_LALT(SS_TAP(X_KP_0)SS_TAP(X_KP_0)SS_TAP(X_KP_9)SS_TAP(X_KP_1))"ON" SS_LALT(SS_TAP(X_KP_0)SS_TAP(X_KP_0)SS_TAP(X_KP_9)SS_TAP(X_KP_3))"\n");
- } else {
- send_string(SS_LALT(SS_TAP(X_KP_0)SS_TAP(X_KP_0)SS_TAP(X_KP_9)SS_TAP(X_KP_1))"OFF" SS_LALT(SS_TAP(X_KP_0)SS_TAP(X_KP_0)SS_TAP(X_KP_9)SS_TAP(X_KP_3))"\n");
- }
- send_string("6. Encoder button function.......................... ");
- if (user_config.encoder_press_mute_or_media) {
- send_string(SS_LALT(SS_TAP(X_KP_0)SS_TAP(X_KP_0)SS_TAP(X_KP_9)SS_TAP(X_KP_1))"MUTE" SS_LALT(SS_TAP(X_KP_0)SS_TAP(X_KP_0)SS_TAP(X_KP_9)SS_TAP(X_KP_3))"\n");
- } else {
- send_string(SS_LALT(SS_TAP(X_KP_0)SS_TAP(X_KP_0)SS_TAP(X_KP_9)SS_TAP(X_KP_1))"MEDIA PLAY"SS_TAP(X_KP_SLASH) "PAUSE" SS_LALT(SS_TAP(X_KP_0)SS_TAP(X_KP_0)SS_TAP(X_KP_9)SS_TAP(X_KP_3))"\n");
- }
- send_string("7. Insert function accessed with.................... ");
- if (user_config.ins_on_shft_bkspc_or_del) {
- send_string(SS_LALT(SS_TAP(X_KP_0)SS_TAP(X_KP_0)SS_TAP(X_KP_9)SS_TAP(X_KP_1))"SHIFT"SS_TAP(X_KP_MINUS)"BKSPC"SS_LALT(SS_TAP(X_KP_0)SS_TAP(X_KP_0)SS_TAP(X_KP_9)SS_TAP(X_KP_3))"\n");
- } else {
- send_string(SS_LALT(SS_TAP(X_KP_0)SS_TAP(X_KP_0)SS_TAP(X_KP_9)SS_TAP(X_KP_1))"SHIFT"SS_TAP(X_KP_MINUS)"DEL"SS_LALT(SS_TAP(X_KP_0)SS_TAP(X_KP_0)SS_TAP(X_KP_9)SS_TAP(X_KP_3))"\n");
- }
- send_string("8. Force SHIFT "SS_LALT(SS_TAP(X_KP_0)SS_TAP(X_KP_0)SS_TAP(X_KP_3)SS_TAP(X_KP_8))" CTRL"SS_TAP(X_KP_MINUS)"SPACE to function like SPACE.. ");
- if (user_config.disable_space_mods) {
- send_string(SS_LALT(SS_TAP(X_KP_0)SS_TAP(X_KP_0)SS_TAP(X_KP_9)SS_TAP(X_KP_1))"ON"SS_LALT(SS_TAP(X_KP_0)SS_TAP(X_KP_0)SS_TAP(X_KP_9)SS_TAP(X_KP_3))"\n");
- } else {
- send_string(SS_LALT(SS_TAP(X_KP_0)SS_TAP(X_KP_0)SS_TAP(X_KP_9)SS_TAP(X_KP_1))"OFF"SS_LALT(SS_TAP(X_KP_0)SS_TAP(X_KP_0)SS_TAP(X_KP_9)SS_TAP(X_KP_3))"\n");
- }
- send_string("9. AutoCorrect...................................... ");
- if (user_config.autocorrect) {
- send_string(SS_LALT(SS_TAP(X_KP_0)SS_TAP(X_KP_0)SS_TAP(X_KP_9)SS_TAP(X_KP_1))"ON"SS_LALT(SS_TAP(X_KP_0)SS_TAP(X_KP_0)SS_TAP(X_KP_9)SS_TAP(X_KP_3))"\n");
- } else {
- send_string(SS_LALT(SS_TAP(X_KP_0)SS_TAP(X_KP_0)SS_TAP(X_KP_9)SS_TAP(X_KP_1))"OFF"SS_LALT(SS_TAP(X_KP_0)SS_TAP(X_KP_0)SS_TAP(X_KP_9)SS_TAP(X_KP_3))"\n");
- }
- send_string("0. CapsLock highlights extended alphas "SS_LALT(SS_TAP(X_KP_0)SS_TAP(X_KP_0)SS_TAP(X_KP_4)SS_TAP(X_KP_0))"ISO"SS_TAP(X_KP_MINUS)"only"SS_LALT(SS_TAP(X_KP_0)SS_TAP(X_KP_0)SS_TAP(X_KP_4)SS_TAP(X_KP_1))"... ");
- if (user_config.rgb_english_caps) {
- send_string(SS_LALT(SS_TAP(X_KP_0)SS_TAP(X_KP_0)SS_TAP(X_KP_9)SS_TAP(X_KP_1))"OFF"SS_LALT(SS_TAP(X_KP_0)SS_TAP(X_KP_0)SS_TAP(X_KP_9)SS_TAP(X_KP_3))"\n");
- } else {
- send_string(SS_LALT(SS_TAP(X_KP_0)SS_TAP(X_KP_0)SS_TAP(X_KP_9)SS_TAP(X_KP_1))"ON"SS_LALT(SS_TAP(X_KP_0)SS_TAP(X_KP_0)SS_TAP(X_KP_9)SS_TAP(X_KP_3))"\n");
- }
- send_string("\nThe latest firmware updates are always here"SS_LALT(SS_TAP(X_KP_0)SS_TAP(X_KP_0)SS_TAP(X_KP_5)SS_TAP(X_KP_8))" https" SS_LALT(SS_TAP(X_KP_0)SS_TAP(X_KP_0)SS_TAP(X_KP_5)SS_TAP(X_KP_8))SS_TAP(X_KP_SLASH)SS_TAP(X_KP_SLASH) "github.com"SS_TAP(X_KP_SLASH) "gourdo1"SS_TAP(X_KP_SLASH)"gmmkpro"SS_TAP(X_KP_MINUS)"media\n");
- }
- break;
-
- case TG_CAPS: // Toggle RGB highlighting of Capslock state
- if (record->event.pressed) {
- user_config.rgb_hilite_caps ^= 1; // Toggles the status
- eeconfig_update_user(user_config.raw); // Writes the new status to EEPROM
- }
- break;
- case TG_PAD: // Toggle RGB highlighting of Numpad state
- if (record->event.pressed) {
- user_config.rgb_hilite_numpad ^= 1; // Toggles the status
- eeconfig_update_user(user_config.raw); // Writes the new status to EEPROM
- }
- break;
- case TG_ESC: // Toggle alternate ESC functionality
- if (record->event.pressed) {
- user_config.esc_double_tap_to_baselyr ^= 1; // Toggles the status
- eeconfig_update_user(user_config.raw); // Writes the new status to EEPROM
- }
- break;
- case TG_DEL: // Toggle alternate placement of DEL and HOME keys
- if (record->event.pressed) {
- user_config.del_right_home_top ^= 1; // Toggles the status
- eeconfig_update_user(user_config.raw); // Writes the new status to EEPROM
- }
- break;
- case TG_TDCAP: // Toggle alternate Capslock/Numpad functionality
- if (record->event.pressed) {
- user_config.double_tap_shift_for_capslock ^= 1; // Toggles the status
- eeconfig_update_user(user_config.raw); // Writes the new status to EEPROM
- }
- break;
- case TG_ENC: // Toggle Encoder function
- if (record->event.pressed) {
- user_config.encoder_press_mute_or_media ^= 1; // Toggles the status
- eeconfig_update_user(user_config.raw); // Writes the new status to EEPROM
- }
- break;
- case TG_INS: // Toggle Encoder function
- if (record->event.pressed) {
- user_config.ins_on_shft_bkspc_or_del ^= 1; // Toggles the status
- eeconfig_update_user(user_config.raw); // Writes the new status to EEPROM
- }
- break;
- case TG_SPCMOD: // Toggle forcing SHIFT&CTRL-SPACE to function like SPACE
- if (record->event.pressed) {
- user_config.disable_space_mods ^= 1; // Toggles the status
- eeconfig_update_user(user_config.raw); // Writes the new status to EEPROM
- }
- break;
- case TG_AUTOCR: // Toggle AutoCorrect
- if (record->event.pressed) {
- user_config.autocorrect ^= 1; // Toggles the status
- eeconfig_update_user(user_config.raw); // Writes the new status to EEPROM
- }
- break;
- case TG_ENGCAP: // Toggle highlighting Non-English letters during CAPSLOCK
- if (record->event.pressed) {
- user_config.rgb_english_caps ^= 1; // Toggles the status
- eeconfig_update_user(user_config.raw); // Writes the new status to EEPROM
- }
- break;
- //return false;
-
- // Key to the left of encoder function (default HOME)
- case LEFTOFENC:
- if (!(user_config.del_right_home_top)) {
- if (!(user_config.ins_on_shft_bkspc_or_del)) {
- static bool inskey_registered;
- if (record -> event.pressed) {
- // Detect the activation of either shift keys
- if (mod_state & MOD_MASK_SHIFT) {
- // First temporarily canceling both shifts so that
- // shift isn't applied to the KC_INS keycode
- del_mods(MOD_MASK_SHIFT);
- register_code(KC_INS);
- // Update the boolean variable to reflect the status of KC_INS
- inskey_registered = true;
- // Reapplying modifier state so that the held shift key(s)
- // still work even after having tapped the key.
- set_mods(mod_state);
- return false;
- } else {
- register_code(KC_DEL);
- return false;
- }
- } else { // on release of KC_DEL
- // In case KC_INS is still being sent even after the release of KC_DEL
- if (inskey_registered) {
- unregister_code(KC_INS);
- inskey_registered = false;
- return false;
- } else {
- unregister_code(KC_DEL);
- return false;
- }
- }
- } else {
- if (record -> event.pressed) {
- register_code(KC_DEL);
- return false;
- } else {
- unregister_code(KC_DEL);
- return false;
- }
- }
- } else {
- if (record -> event.pressed) {
- register_code(KC_HOME);
- return false;
- } else {
- unregister_code(KC_HOME);
- return false;
- }
- }
- break;
-
- // Key below encoder function (default DEL)
- case BELOWENC:
- if (user_config.del_right_home_top) {
- if (!(user_config.ins_on_shft_bkspc_or_del)) {
- static bool inskey_registered;
- if (record -> event.pressed) {
- // Detect the activation of either shift keys
- if (mod_state & MOD_MASK_SHIFT) {
- // First temporarily canceling both shifts so that
- // shift isn't applied to the KC_INS keycode
- del_mods(MOD_MASK_SHIFT);
- register_code(KC_INS);
- // Update the boolean variable to reflect the status of KC_INS
- inskey_registered = true;
- // Reapplying modifier state so that the held shift key(s)
- // still work even after having tapped the key.
- set_mods(mod_state);
- return false;
- } else {
- register_code(KC_DEL);
- return false;
- }
- } else { // on release of KC_DEL
- // In case KC_INS is still being sent even after the release of KC_DEL
- if (inskey_registered) {
- unregister_code(KC_INS);
- inskey_registered = false;
- return false;
- } else {
- unregister_code(KC_DEL);
- return false;
- }
- }
- } else {
- if (record -> event.pressed) {
- register_code(KC_DEL);
- return false;
- } else {
- unregister_code(KC_DEL);
- return false;
- }
- }
- } else {
- if (record -> event.pressed) {
- register_code(KC_HOME);
- return false;
- } else {
- unregister_code(KC_HOME);
- return false;
- }
- }
- break;
-
- // Encoder button function
- case ENCFUNC:
- if (user_config.encoder_press_mute_or_media) {
- if (record -> event.pressed) {
- register_code(KC_MUTE);
- } else unregister_code16(keycode);
- }
- else {
- if (record -> event.pressed) {
- register_code(KC_MPLY);
- } else unregister_code16(keycode);
- }
- break;
-
- // DotCom domain macros
- case DOTCOM:
- if (record -> event.pressed) {
- send_string(".com");
- } else {
- // when keycode is released
- }
- break;
- case YAHOO:
- if (record -> event.pressed) {
- send_string("yahoo.com");
- } else {
- // when keycode is released
- }
- break;
- case OUTLOOK:
- if (record -> event.pressed) {
- send_string("outlook.com");
- } else {
- // when keycode is released
- }
- break;
- case GMAIL:
- if (record -> event.pressed) {
- send_string("gmail.com");
- } else {
- // when keycode is released
- }
- break;
- case HOTMAIL:
- if (record -> event.pressed) {
- send_string("hotmail.com");
- } else {
- // when keycode is released
- }
- break;
-
- // Windows Key lockout
- case WINLOCK:
- if (record -> event.pressed) {
- keymap_config.no_gui = !keymap_config.no_gui; //toggle status
- } else unregister_code16(keycode);
- break;
-
- // Double Zero
- case KC_00:
- if (record -> event.pressed) {
- // when keycode KC_00 is pressed
- send_string(SS_TAP(X_KP_0)SS_TAP(X_KP_0));
- } else unregister_code16(keycode);
- break;
-
- // Treat Control & Shift-Space as if regular Space
- case KC_SPC:
- if (user_config.disable_space_mods) {
- // Initialize a boolean variable that keeps track of the space key status: registered or not?
- static bool spckey_registered;
- if (record -> event.pressed) {
- // Detect the activation of either ctrl keys
- if (mod_state & MOD_MASK_CTRL) {
- // First temporarily canceling both ctrls so that
- // ctrl isn't applied to the KC_SPC keycode
- del_mods(MOD_MASK_CTRL);
- register_code(KC_SPC);
- // Update the boolean variable to reflect the status of KC_SPC
- spckey_registered = true;
- // Reapplying modifier state so that the held ctrl key(s)
- // still work even after having tapped the Space key.
- set_mods(mod_state);
- return false;
- }
- else if (mod_state & MOD_MASK_SHIFT) {
- // First temporarily canceling both shifts so that
- // shift isn't applied to the KC_SPC keycode
- del_mods(MOD_MASK_SHIFT);
- register_code(KC_SPC);
- // Update the boolean variable to reflect the status of KC_SPC
- spckey_registered = true;
- // Reapplying modifier state so that the held shift key(s)
- // still work even after having tapped the Space key.
- set_mods(mod_state);
- return false;
- }
- } else { // on release of KC_SPC
- // In case KC_SPC is still being sent even after the release of KC_SPC
- if (spckey_registered) {
- unregister_code(KC_SPC);
- spckey_registered = false;
- return false;
- }
- }
- }
- break;
-
- // INS as SHIFT-modified BackSpace key
- case KC_BSPC: {
- if (user_config.ins_on_shft_bkspc_or_del) {
- // Initialize a boolean variable that keeps track of the ins key status: registered or not?
- static bool inskey_registered;
- if (record -> event.pressed) {
- // Detect the activation of either shift keys
- if (mod_state & MOD_MASK_SHIFT) {
- // First temporarily canceling both shifts so that
- // shift isn't applied to the KC_INS keycode
- del_mods(MOD_MASK_SHIFT);
- register_code(KC_INS);
- // Update the boolean variable to reflect the status of KC_INS
- inskey_registered = true;
- // Reapplying modifier state so that the held shift key(s)
- // still work even after having tapped the key.
- set_mods(mod_state);
- return false;
- }
- } else { // on release of KC_BSPC
- // In case KC_INS is still being sent even after the release of KC_BSPC
- if (inskey_registered) {
- unregister_code(KC_INS);
- inskey_registered = false;
- return false;
- }
- }
- }
- }
- break;
-
- #ifdef IDLE_TIMEOUT_ENABLE
- case RGB_TOI:
- if (record -> event.pressed) {
- timeout_update_threshold(true);
- } else unregister_code16(keycode);
- break;
- case RGB_TOD:
- if (record -> event.pressed) {
- timeout_update_threshold(false); //decrease timeout
- } else unregister_code16(keycode);
- break;
- #endif // IDLE_TIMEOUT_ENABLE
- #ifdef RGB_MATRIX_ENABLE
- case RGB_NITE:
- if (record -> event.pressed) {
- rgb_nightmode = !rgb_nightmode;
- } else unregister_code16(keycode);
- break;
- #endif // RGB_MATRIX_ENABLE
-
- #ifdef EMOTICON_ENABLE
- case EMO_SHRUG:
- if (record -> event.pressed) send_string("`\\_(\"/)_/`");
- else unregister_code16(keycode);
- break;
- case EMO_CONFUSE:
- if (record -> event.pressed) send_string("(*_*)");
- else unregister_code16(keycode);
- break;
- case EMO_TEARS:
- if (record -> event.pressed) send_string("(T_T)");
- else unregister_code16(keycode);
- break;
- case EMO_NERVOUS:
- if (record -> event.pressed) send_string("(~_~;)");
- else unregister_code16(keycode);
- break;
- case EMO_JOY:
- if (record -> event.pressed) send_string("(^o^)");
- else unregister_code16(keycode);
- break;
- case EMO_SAD:
- if (record -> event.pressed) send_string(":'-(");
- else unregister_code16(keycode);
- break;
- #endif // EMOTICON_ENABLE
-
- #ifdef ALTTAB_SCROLL_ENABLE
- case KC_TSTOG:
- if (record -> event.pressed) encoder_toggle_alttabscroll();
- else unregister_code16(keycode);
- break;
- #endif // ALTTAB_SCROLL_ENABLE
-
- default:
- if (record -> event.pressed) {
- #ifdef RGB_MATRIX_ENABLE
- rgb_matrix_enable();
- #endif
- #ifdef IDLE_TIMEOUT_ENABLE
- timeout_reset_timer(); //reset activity timer
- #endif
- }
- break;
- }
- return true;
-};
-
-// Define custom Caps Word continuity characters
-bool caps_word_press_user(uint16_t keycode) {
- switch (keycode) {
- // Keycodes that continue Caps Word, with shift applied.
- case KC_A ... KC_Z:
- case KC_TILD:
- case KC_UNDS:
- case KC_DQT:
- case KC_COLN:
- case KC_RSFT:
- case KC_LSFT:
- add_weak_mods(MOD_BIT(KC_LSFT)); // Apply shift to next key.
- return true;
-
- // Keycodes that continue Caps Word, without shifting.
- case KC_1 ... KC_0:
- case KC_GRV:
- case KC_MINS:
- case KC_QUOT:
- case KC_SCLN:
- case KC_BSPC:
- case KC_DEL:
- return true;
-
- default:
- return false; // Deactivate Caps Word.
- }
-}
-
-// Turn on/off NUM LOCK if current state is different
-void activate_numlock(bool turn_on) {
- if (host_keyboard_led_state().num_lock != turn_on) {
- tap_code(KC_NUM_LOCK);
- }
-}
-
-// INITIAL STARTUP
-__attribute__((weak)) void keyboard_post_init_keymap(void) {
-}
-
-void keyboard_post_init_user(void) {
- // Read the user config from EEPROM
- user_config.raw = eeconfig_read_user();
- keyboard_post_init_keymap();
- #ifdef STARTUP_NUMLOCK_ON
- activate_numlock(true); // turn on Num lock by default so that the numpad layer always has predictable results
- #endif // STARTUP_NUMLOCK_ON
- #ifdef IDLE_TIMEOUT_ENABLE
- timeout_timer = timer_read(); // set initial time for idle timeout
- #endif
-}
-
-/* Set defaults for EEPROM user configuration variables */
-void eeconfig_init_user(void) {
- user_config.raw = 0;
- user_config.rgb_hilite_caps = true;
- user_config.rgb_hilite_numpad = true;
- user_config.double_tap_shift_for_capslock = true;
- user_config.del_right_home_top = true;
- user_config.encoder_press_mute_or_media = true;
- user_config.esc_double_tap_to_baselyr = true;
- user_config.ins_on_shft_bkspc_or_del = true;
- user_config.disable_space_mods = true;
- user_config.autocorrect = true;
- user_config.rgb_english_caps = true;
-
- eeconfig_update_user(user_config.raw);
-}
diff --git a/users/gourdo1/gourdo1.h b/users/gourdo1/gourdo1.h
deleted file mode 100644
index a198fd0805..0000000000
--- a/users/gourdo1/gourdo1.h
+++ /dev/null
@@ -1,148 +0,0 @@
-/* Copyright 2021 Jonavin Eng @Jonavin
- Copyright 2022 gourdo1 <gourdo1@outlook.com>
-
-This program is free software: you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program. If not, see <http://www.gnu.org/licenses/>.
-*/
-
-#pragma once
-
-// LAYERS -- Note: to avoid compile problems, make sure total layers matches DYNAMIC_KEYMAP_LAYER_COUNT defined in config.h (where _COLEMAK layer is defined)
-enum custom_user_layers {
- _BASE,
- _FN1,
- _NUMPADMOUSE,
- _MOUSEKEY,
- #ifdef GAME_ENABLE
- _GAME
- #endif //GAME_ENABLE
-};
-
-#define KC_CAD LALT(LCTL(KC_DEL))
-#define LOCKPC LGUI(KC_L)
-#define KC_AF4 LALT(KC_F4)
-#define KC_TASK LCTL(LSFT(KC_ESC))
-#define CT_PGUP RCTL(KC_PGUP)
-#define CT_PGDN RCTL(KC_PGDN)
-#define CT_HOME RCTL(KC_HOME)
-#define CT_END RCTL(KC_END)
-#define SWAP_L SGUI(KC_LEFT) // Swap application to left display
-#define SWAP_R SGUI(KC_RGHT) // Swap application to right display
-
-// KEYCODES
-enum custom_user_keycodes {
- KC_00 = SAFE_RANGE,
- ENCFUNC, // Encoder function
- CAPSNUM, // Capslock key function
- LEFTOFENC, // Key to the left of the encoder (i.e. F13)
- BELOWENC, // Key below encoder
- PRNCONF, // Print verbose statuses of all user_config toggles
- WINLOCK, // Toggles Windows key on and off
- RGB_TOI, // Timeout idle time up
- RGB_TOD, // Timeout idle time down
- RGB_NITE, // Disables RGB backlighting effects but allows RGB indicators to still work
-
- TG_CAPS, // Toggles RGB highlighting of alphas during capslock
- TG_PAD, // Toggles RGB highlighting of keys on numpad+mousekeys layer
- TG_TDCAP, // Toggles double tap shift for CapsLock
- TG_DEL, // Swaps DEL and HOME key locations
- TG_ENC, // Toggle Encoder button functionality
- TG_ESC, // Toggle ESC double tap for _BASE layer
- TG_INS, // Toggle location of INS
- TG_SPCMOD, // Toggle disabling of modded-SPACE functions
- TG_AUTOCR, // Toggle AutoCorrect
- TG_ENGCAP, // Toggle highlighting Non-English letters during CAPSLOCK on ISO boards
-
- YAHOO, // yahoo.com
- OUTLOOK, // outlook.com
- GMAIL, // gmail.com
- HOTMAIL, // hotmail.com
- DOTCOM, // .com
-
- EMO_SHRUG, // `\_("/)_/`
- EMO_CONFUSE, // (*_*)
- EMO_SAD, // :'-(
- EMO_NERVOUS, // (~_~;)
- EMO_JOY, // (^o^)
- EMO_TEARS, // (T_T)
-
- KC_TSTOG, // Tab Scroll Toggle
-
- NEW_SAFE_RANGE // New safe range for keymap level custom keycodes
-};
-
-// Set up boolean variables to track user customizable configuration options
-typedef union {
- uint32_t raw;
- struct {
- bool rgb_hilite_caps :1;
- bool rgb_hilite_numpad :1;
- bool esc_double_tap_to_baselyr :1;
- bool del_right_home_top :1;
- bool double_tap_shift_for_capslock :1;
- bool encoder_press_mute_or_media :1;
- bool ins_on_shft_bkspc_or_del :1;
- bool disable_space_mods :1;
- bool autocorrect :1;
- bool rgb_english_caps :1;
- };
-} user_config_t;
-
-user_config_t user_config;
-
-//#define LSFTCAPSWIN TD(TD_LSFT_CAPS_WIN)
-
-// ENCODER ACTIONS
-#ifdef ENCODER_ENABLE
-void encoder_action_volume(bool clockwise);
-void encoder_action_mediatrack(bool clockwise);
-void encoder_action_navword(bool clockwise);
-void encoder_action_navpage(bool clockwise);
-
-uint8_t get_selected_layer(void);
-void encoder_action_layerchange(bool clockwise);
-
-#if defined(RGB_MATRIX_ENABLE) || defined(RGBLIGHT_ENABLE)
-void encoder_action_rgb_speed(bool clockwise);
-void encoder_action_rgb_hue(bool clockwise);
-void encoder_action_rgb_saturation(bool clockwise);
-void encoder_action_rgb_brightness(bool clockwise);
-void encoder_action_rgb_mode(bool clockwise);
-#endif // RGB_MATRIX_ENABLE / RGBLIGHT_ENABLE
-
-#ifdef ALTTAB_SCROLL_ENABLE
-void encoder_action_alttabscroll(bool clockwise);
-void encoder_toggle_alttabscroll(void);
-void encoder_tick_alttabscroll(void);
-#endif // ALTTAB_SCROLL_ENABLE
-#endif // ENCODER_ENABLE
-
-#ifdef RGB_MATRIX_ENABLE
-void activate_rgb_nightmode(bool turn_on);
-bool get_rgb_nightmode(void);
-#endif
-
-// IDLE TIMEOUTS
-#ifdef IDLE_TIMEOUT_ENABLE
-#define TIMEOUT_THRESHOLD_DEFAULT 15 // default timeout minutes
-#define TIMEOUT_THRESHOLD_MAX 140 // upper limits (2 hours and 10 minutes -- no rgb indicators above this value)
-
-//prototype functions
-uint16_t get_timeout_threshold(void);
-void timeout_reset_timer(void);
-void timeout_update_threshold(bool increase);
-void timeout_tick_timer(void);
-#endif //IDLE_TIMEOUT_ENABLE
-
-// OTHER FUNCTION PROTOTYPE
-void activate_numlock(bool turn_on); \ No newline at end of file
diff --git a/users/gourdo1/gourdo1_encoder.c b/users/gourdo1/gourdo1_encoder.c
deleted file mode 100644
index 5a19b63c6e..0000000000
--- a/users/gourdo1/gourdo1_encoder.c
+++ /dev/null
@@ -1,238 +0,0 @@
-/* Copyright 2021 Jonavin Eng @Jonavin
- Copyright 2022 gourdo1 <gourdo1@outlook.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 QMK_KEYBOARD_H
-
-#include "gourdo1.h"
-
-#ifdef ENCODER_ENABLE
- #ifndef DYNAMIC_KEYMAP_LAYER_COUNT
- #define DYNAMIC_KEYMAP_LAYER_COUNT 4 //default in case this is not already defined elsewhere
- #endif
- #ifndef ENCODER_DEFAULTACTIONS_INDEX
- #define ENCODER_DEFAULTACTIONS_INDEX 0 // can select encoder index if there are multiple encoders
- #endif
-
- static uint16_t key_timer;
-
- void encoder_action_volume(bool clockwise) {
- if (clockwise) {
- tap_code(KC_VOLU);
- if (timer_elapsed(key_timer) < 50) {
- tap_code(KC_VOLU); // if less than 50ms have passed, hit vol up again.
- key_timer = timer_read();
- } else {
- key_timer = timer_read();
- // do nothing if 50ms or more have passed
- }
- }
- else {
- tap_code(KC_VOLD);
- if (timer_elapsed(key_timer) < 100) {
- tap_code(KC_VOLD); // if less than 100ms have passed, hit vol down twice.
- tap_code(KC_VOLD);
- key_timer = timer_read();
- } else {
- key_timer = timer_read();
- // do nothing if 100ms or more have passed
- }
- }
- }
-
- void encoder_action_mediatrack(bool clockwise) {
- if (clockwise)
- tap_code(KC_MEDIA_NEXT_TRACK);
- else
- tap_code(KC_MEDIA_PREV_TRACK);
- }
-
- void encoder_action_navword(bool clockwise) {
- if (clockwise)
- tap_code16(LCTL(KC_RGHT));
- else
- tap_code16(LCTL(KC_LEFT));
- }
-
- void encoder_action_navpage(bool clockwise) {
- if (clockwise)
- tap_code16(KC_PGUP);
- else
- tap_code16(KC_PGDN);
- }
-
- // LAYER HANDLING
- uint8_t selected_layer = 0;
-
- uint8_t get_selected_layer(void) {
- return selected_layer;
- }
-
- void encoder_action_layerchange(bool clockwise) {
- if (clockwise) {
- if(selected_layer < (DYNAMIC_KEYMAP_LAYER_COUNT - 1)) {
- selected_layer ++;
- layer_move(selected_layer);
- }
- } else {
- if (selected_layer > 0) {
- selected_layer --;
- layer_move(selected_layer);
- }
- }
- }
-
- #ifdef RGB_MATRIX_ENABLE
- void encoder_action_rgb_speed(bool clockwise) {
- if (clockwise)
- rgb_matrix_increase_speed_noeeprom();
- else
- rgb_matrix_decrease_speed_noeeprom();
- }
- void encoder_action_rgb_hue(bool clockwise) {
- if (clockwise)
- rgb_matrix_increase_hue_noeeprom();
- else
- rgb_matrix_decrease_hue_noeeprom();
- }
- void encoder_action_rgb_saturation(bool clockwise) {
- if (clockwise)
- rgb_matrix_increase_sat_noeeprom();
- else
- rgb_matrix_decrease_sat_noeeprom();
- }
- void encoder_action_rgb_brightness(bool clockwise) {
- if (clockwise)
- rgb_matrix_increase_val_noeeprom();
- else
- rgb_matrix_decrease_val_noeeprom();
- }
- void encoder_action_rgb_mode(bool clockwise) {
- if (clockwise)
- rgb_matrix_step_noeeprom();
- else
- rgb_matrix_step_reverse_noeeprom();
- }
- #elif defined(RGBLIGHT_ENABLE)
- void encoder_action_rgb_speed(bool clockwise) {
- if (clockwise)
- rgblight_increase_speed_noeeprom();
- else
- rgblight_decrease_speed_noeeprom();
- }
- void encoder_action_rgb_hue(bool clockwise) {
- if (clockwise)
- rgblight_increase_hue_noeeprom();
- else
- rgblight_decrease_hue_noeeprom();
- }
- void encoder_action_rgb_saturation(bool clockwise) {
- if (clockwise)
- rgblight_increase_sat_noeeprom();
- else
- rgblight_decrease_sat_noeeprom();
- }
- void encoder_action_rgb_brightness(bool clockwise) {
- if (clockwise)
- rgblight_increase_val_noeeprom();
- else
- rgblight_decrease_val_noeeprom();
- }
- void encoder_action_rgb_mode(bool clockwise) {
- if (clockwise)
- rgblight_step_noeeprom();
- else
- rgblight_step_reverse_noeeprom();
- }
- #endif // RGB_MATRIX_ENABLE || RGBLIGHT_ENABLE
-
- #ifdef ALTTAB_SCROLL_ENABLE
- bool is_tab_scrolling = false;
- bool is_alt_tab_active = false;
- uint16_t alt_tab_timer = 0;
-
-
- void encoder_toggle_alttabscroll(void) {
- is_tab_scrolling = !is_tab_scrolling;
- }
-
- void encoder_action_alttabscroll(bool clockwise) {
- if (clockwise) {
- if (!is_alt_tab_active) {
- is_alt_tab_active = true;
- register_mods(MOD_RALT);
- }
- tap_code16(KC_TAB);
- }
- else {
- tap_code16(S(KC_TAB));
- }
- alt_tab_timer = timer_read();
- }
-
- void encoder_tick_alttabscroll(void) {
- if (is_alt_tab_active) {
- if (timer_elapsed(alt_tab_timer) > 600) {
- unregister_mods(MOD_RALT);
- is_alt_tab_active = false;
- }
- }
- }
- #endif // ALTTAB_SCROLL_ENABLE
-#endif // ENCODER_ENABLE
-
-#if defined(ENCODER_ENABLE) && defined(ENCODER_DEFAULTACTIONS_ENABLE) // Encoder Functionality
-
- __attribute__((weak)) bool encoder_update_keymap(uint8_t index, bool clockwise) { return true; }
-
- bool encoder_update_user(uint8_t index, bool clockwise) {
- if (!encoder_update_keymap(index, clockwise)) { return false; }
- if (index != ENCODER_DEFAULTACTIONS_INDEX) {return true;} // exit if the index doesn't match
- uint8_t mods_state = get_mods();
- if (mods_state & MOD_BIT(KC_LSFT) ) { // If you are holding L shift, encoder changes layers
- encoder_action_layerchange(clockwise);
- } else if (mods_state & MOD_BIT(KC_RSFT) ) { // If you are holding R shift, Page up/dn
- unregister_mods(MOD_BIT(KC_RSFT));
- encoder_action_navpage(clockwise);
- register_mods(MOD_BIT(KC_RSFT));
- } else if (mods_state & MOD_BIT(KC_LCTL)) { // if holding Left Ctrl, navigate next/prev word
- encoder_action_navword(clockwise);
- } else if (mods_state & MOD_BIT(KC_LALT)) { // if holding Left Alt, change media next/prev track
- encoder_action_mediatrack(clockwise);
- } else {
- switch(get_highest_layer(layer_state)) {
- case _FN1:
- #ifdef IDLE_TIMEOUT_ENABLE
- timeout_update_threshold(clockwise);
- #endif
- break;
- default:
- #ifdef ALTTAB_SCROLL_ENABLE
- if (is_tab_scrolling)
- encoder_action_alttabscroll(clockwise);
- else
- encoder_action_volume(clockwise); // Otherwise it just changes volume
- #else
- encoder_action_volume(clockwise); // Otherwise it just changes volume
- #endif // ALTTAB_SCROLL_ENABLE
- break;
- }
- }
- return false;
- }
-#endif // ENCODER_ENABLE
-
-
diff --git a/users/gourdo1/rules.mk b/users/gourdo1/rules.mk
deleted file mode 100644
index 0a3a9ba426..0000000000
--- a/users/gourdo1/rules.mk
+++ /dev/null
@@ -1,31 +0,0 @@
-SRC += gourdo1.c
-SRC += autocorrect/autocorrection.c
-
-ifdef ENCODER_ENABLE
- # include encoder related code when enabled
- ifeq ($(strip $(ENCODER_DEFAULTACTIONS_ENABLE)), yes)
- OPT_DEFS += -DENCODER_DEFAULTACTIONS_ENABLE
- endif
- ifeq ($(strip $(ALTTAB_SCROLL_ENABLE)), yes)
- OPT_DEFS += -DALTTAB_SCROLL_ENABLE
- endif
- SRC += gourdo1_encoder.c
-endif
-ifeq ($(strip $(TD_LSFT_CAPSLOCK_ENABLE)), yes)
- OPT_DEFS += -DTD_LSFT_CAPSLOCK_ENABLE
-endif
-ifeq ($(strip $(IDLE_TIMEOUT_ENABLE)), yes)
- OPT_DEFS += -DIDLE_TIMEOUT_ENABLE
-endif
-ifeq ($(strip $(STARTUP_NUMLOCK_ON)), yes)
- OPT_DEFS += -DSTARTUP_NUMLOCK_ON
-endif
-ifeq ($(strip $(COLEMAK_LAYER_ENABLE)), yes)
- OPT_DEFS += -DCOLEMAK_LAYER_ENABLE
-endif
-ifeq ($(strip $(EMOTICON_ENABLE)), yes)
- OPT_DEFS += -DEMOTICON_ENABLE
-endif
-ifeq ($(strip $(INVERT_NUMLOCK_INDICATOR)), yes)
- OPT_DEFS += -DINVERT_NUMLOCK_INDICATOR
-endif
diff --git a/users/greatwizard/config.h b/users/greatwizard/config.h
deleted file mode 100644
index 8814fa6bdd..0000000000
--- a/users/greatwizard/config.h
+++ /dev/null
@@ -1,40 +0,0 @@
-/* Copyright 2020 Guillaume Gérard
- *
- * 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 TAP_CODE_DELAY 5
-
-#define RGBLIGHT_EFFECT_BREATHING
-#define RGBLIGHT_EFFECT_RAINBOW_MOOD
-#define RGBLIGHT_EFFECT_RAINBOW_SWIRL
-#define RGBLIGHT_EFFECT_SNAKE
-#define RGBLIGHT_EFFECT_KNIGHT
-#define RGBLIGHT_EFFECT_CHRISTMAS
-#define RGBLIGHT_EFFECT_STATIC_GRADIENT
-#define RGBLIGHT_EFFECT_RGB_TEST
-#define RGBLIGHT_EFFECT_ALTERNATING
-#define RGBLIGHT_EFFECT_TWINKLE
-
-#ifdef TAP_DANCE_ENABLE
-# define TAPPING_TERM 175
-# define PERMISSIVE_HOLD
-#endif
-
-#ifdef AUTO_SHIFT_ENABLE
-# define AUTO_SHIFT_TIMEOUT 135
-# define NO_AUTO_SHIFT_SPECIAL
-# define NO_AUTO_SHIFT_NUMERIC
-#endif
diff --git a/users/greatwizard/fn.h b/users/greatwizard/fn.h
deleted file mode 100644
index f842bf04b7..0000000000
--- a/users/greatwizard/fn.h
+++ /dev/null
@@ -1,21 +0,0 @@
-/* Copyright 2020 Guillaume Gérard
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-#pragma once
-
-#include QMK_KEYBOARD_H
-#include "greatwizard.h"
-
-#define FN MO(_FN)
diff --git a/users/greatwizard/game.c b/users/greatwizard/game.c
deleted file mode 100644
index eecabfa403..0000000000
--- a/users/greatwizard/game.c
+++ /dev/null
@@ -1,27 +0,0 @@
-/* Copyright 2020 Guillaume Gérard
- *
- * 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 "game.h"
-
-bool process_record_game(uint16_t keycode, keyrecord_t *record) {
- switch (keycode) {
- case GAME:
- if (record->event.pressed) {
- set_single_persistent_default_layer(_GAME);
- }
- return false;
- }
- return true;
-}
diff --git a/users/greatwizard/game.h b/users/greatwizard/game.h
deleted file mode 100644
index 504129b400..0000000000
--- a/users/greatwizard/game.h
+++ /dev/null
@@ -1,21 +0,0 @@
-/* Copyright 2020 Guillaume Gérard
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-#pragma once
-
-#include QMK_KEYBOARD_H
-#include "greatwizard.h"
-
-bool process_record_game(uint16_t keycode, keyrecord_t *record);
diff --git a/users/greatwizard/git.c b/users/greatwizard/git.c
deleted file mode 100644
index 4bf68fe690..0000000000
--- a/users/greatwizard/git.c
+++ /dev/null
@@ -1,127 +0,0 @@
-/* Copyright 2020 Guillaume Gérard
- *
- * 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 "git.h"
-
-bool process_record_git(uint16_t keycode, keyrecord_t *record) {
- switch (keycode) {
- case GIT_ADD:
- if (record->event.pressed) {
- SEND_STRING("git add ");
- }
- return false;
- case GIT_BRANCH:
- if (record->event.pressed) {
- SEND_STRING("git branch ");
- }
- return false;
- case GIT_CHECKOUT:
- if (record->event.pressed) {
- SEND_STRING("git checkout ");
- }
- return false;
- case GIT_CHERRYPICK:
- if (record->event.pressed) {
- SEND_STRING("git cherry-pick ");
- }
- return false;
- case GIT_COMMIT:
- if (record->event.pressed) {
- SEND_STRING("git commit -m \"\""SS_TAP(X_LEFT));
- }
- return false;
- case GIT_DIFF:
- if (record->event.pressed) {
- SEND_STRING("git diff ");
- }
- return false;
- case GIT_FETCH:
- if (record->event.pressed) {
- SEND_STRING("git fetch ");
- }
- return false;
- case GIT_GREP:
- if (record->event.pressed) {
- SEND_STRING("git grep ");
- }
- return false;
- case GIT_LOG:
- if (record->event.pressed) {
- SEND_STRING("git log --decorate --oneline --graph ");
- }
- return false;
- case GIT_INIT:
- if (record->event.pressed) {
- SEND_STRING("git init ");
- }
- return false;
- case GIT_MV:
- if (record->event.pressed) {
- SEND_STRING("git mv ");
- }
- return false;
- case GIT_MERGE:
- if (record->event.pressed) {
- SEND_STRING("git merge ");
- }
- return false;
- case GIT_PUSH:
- if (record->event.pressed) {
- SEND_STRING("git push ");
- }
- return false;
- case GIT_PULL:
- if (record->event.pressed) {
- SEND_STRING("git pull ");
- }
- return false;
- case GIT_REBASE:
- if (record->event.pressed) {
- SEND_STRING("git rebase ");
- }
- return false;
- case GIT_REMOTE:
- if (record->event.pressed) {
- SEND_STRING("git remote ");
- }
- return false;
- case GIT_RESET:
- if (record->event.pressed) {
- SEND_STRING("git reset ");
- }
- return false;
- case GIT_SHOW:
- if (record->event.pressed) {
- SEND_STRING("git show ");
- }
- return false;
- case GIT_STASH:
- if (record->event.pressed) {
- SEND_STRING("git stash ");
- }
- return false;
- case GIT_STATUS:
- if (record->event.pressed) {
- SEND_STRING("git status ");
- }
- return false;
- case GIT_TAG:
- if (record->event.pressed) {
- SEND_STRING("git tag ");
- }
- return false;
- }
- return true;
-}
diff --git a/users/greatwizard/git.h b/users/greatwizard/git.h
deleted file mode 100644
index c3b4a617d0..0000000000
--- a/users/greatwizard/git.h
+++ /dev/null
@@ -1,39 +0,0 @@
-/* Copyright 2020 Guillaume Gérard
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-#pragma once
-
-#include QMK_KEYBOARD_H
-#include "greatwizard.h"
-
-bool process_record_git(uint16_t keycode, keyrecord_t *record);
-
-#define GIT_BRC GIT_BRANCH
-#define GIT_CKT GIT_CHECKOUT
-#define GIT_CPK GIT_CHERRYPICK
-#define GIT_CMT GIT_COMMIT
-#define GIT_DIF GIT_DIFF
-#define GIT_FTC GIT_FETCH
-#define GIT_GRP GIT_GREP
-#define GIT_INI GIT_INIT
-#define GIT_MRG GIT_MERGE
-#define GIT_PUS GIT_PUSH
-#define GIT_PUL GIT_PULL
-#define GIT_RBS GIT_REBASE
-#define GIT_RMT GIT_REMOTE
-#define GIT_RST GIT_RESET
-#define GIT_SHW GIT_SHOW
-#define GIT_STS GIT_STASH
-#define GIT_STT GIT_STATUS
diff --git a/users/greatwizard/greatwizard.c b/users/greatwizard/greatwizard.c
deleted file mode 100644
index 3ec856d720..0000000000
--- a/users/greatwizard/greatwizard.c
+++ /dev/null
@@ -1,113 +0,0 @@
-/* Copyright 2020 Guillaume Gérard
- *
- * 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 "greatwizard.h"
-
-void eeconfig_init_user(void) {
- user_config_t user_config;
- user_config.raw = 0;
-#ifdef RGBLIGHT_ENABLE
- user_config.rgb_layer_change = true;
-#endif
- eeconfig_update_user(user_config.raw);
- keyboard_init();
-}
-
-void keyboard_post_init_user(void) {
-#ifdef RGBLIGHT_ENABLE
- keyboard_post_init_rgb();
-#endif
-}
-
-bool process_record_user(uint16_t keycode, keyrecord_t *record) {
-#ifdef RGBLIGHT_ENABLE
- process_record_rgb(keycode, record);
-#endif
-#ifdef LAYER_GAME
- process_record_game(keycode, record);
-#endif
-#ifdef LAYER_GIT
- process_record_git(keycode, record);
-#endif
-#ifdef LAYERS_PROGRAMMER
- process_record_pg(keycode, record);
-#endif
- switch (keycode) {
- case QWERTY:
- if (record->event.pressed) {
- set_single_persistent_default_layer(_QWERTY);
- }
- return false;
- case WORKMAN:
- if (record->event.pressed) {
- set_single_persistent_default_layer(_WORKMAN);
- }
- return false;
- case COLEMAK:
- if (record->event.pressed) {
- set_single_persistent_default_layer(_COLEMAK);
- }
- return false;
- case DVORAK:
- if (record->event.pressed) {
- set_single_persistent_default_layer(_DVORAK);
- }
- return false;
- }
- return true;
-}
-
-#ifdef ENCODER_ENABLE
-bool encoder_update_user(uint8_t index, bool clockwise) {
- switch (get_highest_layer(layer_state)) {
- case _QWERTY:
-#ifdef LAYERS_PROGRAMMER
- case _PROGRAMMER_SHIFTED:
-#endif
- if (clockwise) {
- tap_code(KC_AUDIO_VOL_UP);
- } else {
- tap_code(KC_AUDIO_VOL_DOWN);
- }
- break;
- default:
- if (clockwise) {
- tap_code(KC_MEDIA_NEXT_TRACK);
- } else {
- tap_code(KC_MEDIA_PREV_TRACK);
- }
- break;
- }
- return true;
-}
-#endif
-
-layer_state_t layer_state_set_user(layer_state_t state) {
- state = update_tri_layer_state(state, _RAISE, _LOWER, _ADJUST);
-#ifdef RGBLIGHT_ENABLE
- state = layer_state_set_rgb(state);
-#endif
-#ifdef LAYERS_ORTHO
- state = layer_state_set_ortho(state);
-#endif
- return state;
-}
-
-bool led_update_user(led_t led_state) {
-#ifdef RGBLIGHT_ENABLE
- led_update_rgb(led_state);
-#endif
- return true;
-}
diff --git a/users/greatwizard/greatwizard.h b/users/greatwizard/greatwizard.h
deleted file mode 100644
index d2e15854a3..0000000000
--- a/users/greatwizard/greatwizard.h
+++ /dev/null
@@ -1,135 +0,0 @@
-/* Copyright 2020 Guillaume Gérard
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-#pragma once
-
-#include QMK_KEYBOARD_H
-#include "keymap_helpers.h"
-#ifdef TAP_DANCE_ENABLE
-# include "tap_dances.h"
-#endif
-#ifdef RGBLIGHT_ENABLE
-# include "underglow.h"
-#endif
-#ifdef LAYER_FN
-# include "fn.h"
-#endif
-#ifdef LAYER_GAME
-# include "game.h"
-#endif
-#ifdef LAYER_GIT
-# include "git.h"
-#endif
-#ifdef LAYERS_ORTHO
-# include "ortho.h"
-#endif
-#ifdef LAYERS_PROGRAMMER
-# include "programmer.h"
-#endif
-
-typedef union {
- uint32_t raw;
- struct {
-#ifdef RGBLIGHT_ENABLE
- bool rgb_layer_change : 1;
-#endif
- };
-} user_config_t;
-
-enum layers {
- _QWERTY,
- _WORKMAN,
- _COLEMAK,
- _DVORAK,
-#ifdef LAYER_GAME
- _GAME,
-#endif
-#ifdef LAYERS_PROGRAMMER
- _QWERTY_PROGRAMMER,
- _WORKMAN_PROGRAMMER,
- _COLEMAK_PROGRAMMER,
- _DVORAK_PROGRAMMER,
- _PROGRAMMER_SHIFTED,
-#endif
-#ifdef LAYERS_ORTHO
- _LOWER,
- _RAISE,
- _ADJUST,
-#endif
-#ifdef LAYER_FN
- _FN,
-#endif
-#ifdef LAYER_GIT
- _GIT,
-#endif
-};
-
-enum keycodes {
- // Persistent layers switcher keys
- QWERTY = SAFE_RANGE,
- WORKMAN,
- COLEMAK,
- DVORAK,
-#ifdef LAYER_GAME
- GAME,
-#endif
-#ifdef LAYERS_PROGRAMMER
- // Workman Programmer
- QWERTY_PROGRAMMER,
- WORKMAN_PROGRAMMER,
- COLEMAK_PROGRAMMER,
- DVORAK_PROGRAMMER,
- PROGRAMMER_SHIFTED,
- PG_GRV,
- PG_1,
- PG_2,
- PG_3,
- PG_4,
- PG_5,
- PG_6,
- PG_7,
- PG_8,
- PG_9,
- PG_0,
-#endif
- // RGB Underglow lights based on the layer key
- RGB_LAYER,
-#ifdef LAYER_GIT
- // GIT commands
- GIT_ADD,
- GIT_BRANCH,
- GIT_CHECKOUT,
- GIT_CHERRYPICK,
- GIT_COMMIT,
- GIT_DIFF,
- GIT_FETCH,
- GIT_GREP,
- GIT_LOG,
- GIT_INIT,
- GIT_MV,
- GIT_MERGE,
- GIT_PUSH,
- GIT_PULL,
- GIT_REBASE,
- GIT_REMOTE,
- GIT_RESET,
- GIT_SHOW,
- GIT_STASH,
- GIT_STATUS,
- GIT_TAG
-#endif
-};
-
-#define RGB_LYR RGB_LAYER
diff --git a/users/greatwizard/keymap_helpers.h b/users/greatwizard/keymap_helpers.h
deleted file mode 100644
index af9f4dfaad..0000000000
--- a/users/greatwizard/keymap_helpers.h
+++ /dev/null
@@ -1,61 +0,0 @@
-/* Copyright 2020 Guillaume Gérard
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-#pragma once
-
-#include QMK_KEYBOARD_H
-
-#define _______________QWERTY_LEFT1________________ KC_Q, KC_W, KC_E, KC_R, KC_T
-#define _______________QWERTY_LEFT2________________ KC_A, KC_S, KC_D, KC_F, KC_G
-#define _______________QWERTY_LEFT3________________ KC_Z, KC_X, KC_C, KC_V, KC_B
-
-#define _______________QWERTY_RIGHT1_______________ KC_Y, KC_U, KC_I, KC_O, KC_P
-#define _______________QWERTY_RIGHT2_______________ KC_H, KC_J, KC_K, KC_L, KC_SCLN
-#define _______________QWERTY_RIGHT3_______________ KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH
-
-#define _______________WORKMAN_LEFT1_______________ KC_Q, KC_D, KC_R, KC_W, KC_B
-#define _______________WORKMAN_LEFT2_______________ KC_A, KC_S, KC_H, KC_T, KC_G
-#define _______________WORKMAN_LEFT3_______________ KC_Z, KC_X, KC_M, KC_C, KC_V
-
-#define _______________WORKMAN_RIGHT1______________ KC_J, KC_F, KC_U, KC_P, KC_SCLN
-#define _______________WORKMAN_RIGHT2______________ KC_Y, KC_N, KC_E, KC_O, KC_I
-#define _______________WORKMAN_RIGHT3______________ KC_K, KC_L, KC_COMM, KC_DOT, KC_SLSH
-
-#define _______________COLEMAK_LEFT1_______________ KC_Q, KC_W, KC_F, KC_P, KC_G
-#define _______________COLEMAK_LEFT2_______________ KC_A, KC_R, KC_S, KC_T, KC_D
-#define _______________COLEMAK_LEFT3_______________ KC_Z, KC_X, KC_C, KC_V, KC_B
-
-#define _______________COLEMAK_RIGHT1______________ KC_J, KC_L, KC_U, KC_Y, KC_SCLN
-#define _______________COLEMAK_RIGHT2______________ KC_H, KC_N, KC_E, KC_I, KC_O
-#define _______________COLEMAK_RIGHT3______________ KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH
-
-#define _______________DVORAK_LEFT1________________ KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y
-#define _______________DVORAK_LEFT2________________ KC_A, KC_O, KC_E, KC_U, KC_I
-#define _______________DVORAK_LEFT3________________ KC_SCLN, KC_Q, KC_J, KC_K, KC_X
-
-#define _______________DVORAK_RIGHT1_______________ KC_F, KC_G, KC_C, KC_R, KC_L
-#define _______________DVORAK_RIGHT2_______________ KC_D, KC_H, KC_T, KC_N, KC_S
-#define _______________DVORAK_RIGHT3_______________ KC_B, KC_M, KC_W, KC_V, KC_Z
-
-#define _______________NUMBER_LEFT_________________ KC_1, KC_2, KC_3, KC_4, KC_5
-#define _______________NUMBER_RIGHT________________ KC_6, KC_7, KC_8, KC_9, KC_0
-
-#define _________________GIT_LEFT1_________________ GIT_CPK, GIT_SHW, GIT_RBS, GIT_RST, GIT_TAG
-#define _________________GIT_LEFT2_________________ GIT_ADD, GIT_STT, GIT_DIF, GIT_FTC, GIT_GRP
-#define _________________GIT_LEFT3_________________ _______, _______, GIT_CMT, GIT_MV, GIT_BRC
-
-#define _________________GIT_RIGHT1________________ _______, GIT_PUL, GIT_INI, GIT_RMT, GIT_PUS
-#define _________________GIT_RIGHT2________________ GIT_STS, _______, GIT_CKT, GIT_LOG, _______
-#define _________________GIT_RIGHT3________________ _______, GIT_MRG, _______, _______, _______
diff --git a/users/greatwizard/ortho.c b/users/greatwizard/ortho.c
deleted file mode 100644
index 90b25b930f..0000000000
--- a/users/greatwizard/ortho.c
+++ /dev/null
@@ -1,21 +0,0 @@
-/* Copyright 2020 Guillaume Gérard
- *
- * 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 "ortho.h"
-
-layer_state_t layer_state_set_ortho(layer_state_t state) {
- state = update_tri_layer_state(state, _RAISE, _LOWER, _ADJUST);
- return state;
-}
diff --git a/users/greatwizard/ortho.h b/users/greatwizard/ortho.h
deleted file mode 100644
index 7fb5d5e6c8..0000000000
--- a/users/greatwizard/ortho.h
+++ /dev/null
@@ -1,24 +0,0 @@
-/* Copyright 2020 Guillaume Gérard
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-#pragma once
-
-#include QMK_KEYBOARD_H
-#include "greatwizard.h"
-
-layer_state_t layer_state_set_ortho(layer_state_t state);
-
-#define LOWER MO(_LOWER)
-#define RAISE MO(_RAISE)
diff --git a/users/greatwizard/programmer.c b/users/greatwizard/programmer.c
deleted file mode 100644
index e0f71ea066..0000000000
--- a/users/greatwizard/programmer.c
+++ /dev/null
@@ -1,174 +0,0 @@
-/* Copyright 2020 Guillaume Gérard
- *
- * 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 "programmer.h"
-
-bool process_record_pg(uint16_t keycode, keyrecord_t *record) {
- switch (keycode) {
- case QWERTY_PROGRAMMER:
- if (record->event.pressed) {
- set_single_persistent_default_layer(_QWERTY_PROGRAMMER);
- }
- return false;
- case WORKMAN_PROGRAMMER:
- if (record->event.pressed) {
- set_single_persistent_default_layer(_WORKMAN_PROGRAMMER);
- }
- return false;
- case COLEMAK_PROGRAMMER:
- if (record->event.pressed) {
- set_single_persistent_default_layer(_COLEMAK_PROGRAMMER);
- }
- return false;
- case DVORAK_PROGRAMMER:
- if (record->event.pressed) {
- set_single_persistent_default_layer(_DVORAK_PROGRAMMER);
- }
- return false;
- case PG_GRV:
- if (record->event.pressed) {
- uint8_t current_mods = get_mods();
- if (current_mods & MOD_MASK_SHIFT) {
- clear_mods();
- SEND_STRING("`");
- set_mods(current_mods);
- } else {
- SEND_STRING("~");
- }
- }
- return false;
- case PG_1:
- if (record->event.pressed) {
- uint8_t current_mods = get_mods();
- if (current_mods & MOD_MASK_SHIFT) {
- clear_mods();
- SEND_STRING("1");
- set_mods(current_mods);
- } else {
- SEND_STRING("!");
- }
- }
- return false;
- case PG_2:
- if (record->event.pressed) {
- uint8_t current_mods = get_mods();
- if (current_mods & MOD_MASK_SHIFT) {
- clear_mods();
- SEND_STRING("2");
- set_mods(current_mods);
- } else {
- SEND_STRING("@");
- }
- }
- return false;
- case PG_3:
- if (record->event.pressed) {
- uint8_t current_mods = get_mods();
- if (current_mods & MOD_MASK_SHIFT) {
- clear_mods();
- SEND_STRING("3");
- set_mods(current_mods);
- } else {
- SEND_STRING("#");
- }
- }
- return false;
- case PG_4:
- if (record->event.pressed) {
- uint8_t current_mods = get_mods();
- if (current_mods & MOD_MASK_SHIFT) {
- clear_mods();
- SEND_STRING("4");
- set_mods(current_mods);
- } else {
- SEND_STRING("$");
- }
- }
- return false;
- case PG_5:
- if (record->event.pressed) {
- uint8_t current_mods = get_mods();
- if (current_mods & MOD_MASK_SHIFT) {
- clear_mods();
- SEND_STRING("5");
- set_mods(current_mods);
- } else {
- SEND_STRING("%");
- }
- }
- return false;
- case PG_6:
- if (record->event.pressed) {
- uint8_t current_mods = get_mods();
- if (current_mods & MOD_MASK_SHIFT) {
- clear_mods();
- SEND_STRING("6");
- set_mods(current_mods);
- } else {
- SEND_STRING("^");
- }
- }
- return false;
- case PG_7:
- if (record->event.pressed) {
- uint8_t current_mods = get_mods();
- if (current_mods & MOD_MASK_SHIFT) {
- clear_mods();
- SEND_STRING("7");
- set_mods(current_mods);
- } else {
- SEND_STRING("&");
- }
- }
- return false;
- case PG_8:
- if (record->event.pressed) {
- uint8_t current_mods = get_mods();
- if (current_mods & MOD_MASK_SHIFT) {
- clear_mods();
- SEND_STRING("8");
- set_mods(current_mods);
- } else {
- SEND_STRING("*");
- }
- }
- return false;
- case PG_9:
- if (record->event.pressed) {
- uint8_t current_mods = get_mods();
- if (current_mods & MOD_MASK_SHIFT) {
- clear_mods();
- SEND_STRING("9");
- set_mods(current_mods);
- } else {
- SEND_STRING("(");
- }
- }
- return false;
- case PG_0:
- if (record->event.pressed) {
- uint8_t current_mods = get_mods();
- if (current_mods & MOD_MASK_SHIFT) {
- clear_mods();
- SEND_STRING("0");
- set_mods(current_mods);
- } else {
- SEND_STRING(")");
- }
- }
- return false;
- }
- return true;
-}
diff --git a/users/greatwizard/programmer.h b/users/greatwizard/programmer.h
deleted file mode 100644
index a79aada247..0000000000
--- a/users/greatwizard/programmer.h
+++ /dev/null
@@ -1,31 +0,0 @@
-/* Copyright 2020 Guillaume Gérard
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-#pragma once
-
-#include QMK_KEYBOARD_H
-#include "greatwizard.h"
-
-bool process_record_pg(uint16_t keycode, keyrecord_t *record);
-
-#define QWERTYP QWERTY_PROGRAMMER
-#define WORKMNP WORKMAN_PROGRAMMER
-#define COLEMKP COLEMAK_PROGRAMMER
-#define DVORAKP DVORAK_PROGRAMMER
-#ifdef TAP_DANCE_LSFT_CAPS
-# define PG_LSCP TD(TD_PG_LSFT_CAPS)
-#else
-# define PG_LSCP LM(_PROGRAMMER_SHIFTED, MOD_LSFT)
-#endif
diff --git a/users/greatwizard/readme.md b/users/greatwizard/readme.md
deleted file mode 100644
index bc2df7f9bf..0000000000
--- a/users/greatwizard/readme.md
+++ /dev/null
@@ -1,32 +0,0 @@
-# GreatWizard Userspace
-
-## Features
-
-- ⌨️ Switchable and persistent base layers: Qwerty, Workman, Workman, Colemak, Dvorak, 🎮 Game
-- ⌨️ Programmer flavored base layers available
-- 💃🕺 Tap Dances
-- 🆙 Auto Shift
-- 👨‍💻 One shot keys git commands layer
-- 🌈 RGB Underglow lights based on the layer
-- ⚙️ Rotary encoder for volume level and next/previous media
-- 🗜️ Enable link time optimization
-
-## Community Layouts
-
-- [ortholinear 4x12](https://github.com/qmk/qmk_firmware/tree/master/layouts/community/ortho_4x12/greatwizard)
-- [ortholinear 5x12](https://github.com/qmk/qmk_firmware/tree/master/layouts/community/ortho_5x12/greatwizard)
-
-## Build Options
-
-### Layers
-
-- `LAYERS_ORTHO`: add Lower, Raise and Adjust layers/keycodes
-- `LAYERS_PROGRAMMER`: add Programmer layers/keycodes
-- `LAYER_GAME`: add Game layer/keycode
-- `LAYER_GIT`: add GIT layer/keycode
-- `LAYER_FN`: add Fn layer/keycode
-
-### Tap Dances
-
-- `TAP_DANCE_LALT_GIT`: Double tap on LGUI to use the one shot keys git commands layer
-- `TAP_DANCE_LSFT_CAPS`: Double tap on LSHIFT to set Caps Lock
diff --git a/users/greatwizard/rules.mk b/users/greatwizard/rules.mk
deleted file mode 100644
index 92bb4ccd1b..0000000000
--- a/users/greatwizard/rules.mk
+++ /dev/null
@@ -1,31 +0,0 @@
-SRC += greatwizard.c
-
-ifeq ($(strip $(TAP_DANCE_ENABLE)), yes)
- SRC += tap_dances.c
-endif
-
-ifeq ($(strip $(RGBLIGHT_ENABLE)), yes)
- SRC += underglow.c
-endif
-
-ifeq ($(strip $(LAYER_GAME)), yes)
- SRC += game.c
-endif
-
-ifeq ($(strip $(LAYER_GIT)), yes)
- SRC += git.c
-endif
-
-ifeq ($(strip $(LAYERS_ORTHO)), yes)
- SRC += ortho.c
-endif
-
-ifeq ($(strip $(LAYERS_PROGRAMMER)), yes)
- SRC += programmer.c
-endif
-
-ifneq ($(PLATFORM),CHIBIOS)
- LTO_ENABLE = yes # Enable link time optimization
-endif
-
-AUTO_SHIFT_ENABLE = yes # Autoshift by holding down a key
diff --git a/users/greatwizard/tap_dances.c b/users/greatwizard/tap_dances.c
deleted file mode 100644
index ca2c33824f..0000000000
--- a/users/greatwizard/tap_dances.c
+++ /dev/null
@@ -1,105 +0,0 @@
-/* Copyright 2020 Guillaume Gérard
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-#include "tap_dances.h"
-
-uint8_t cur_dance(tap_dance_state_t *state) {
- if (state->count == 1) {
- if (state->interrupted || !state->pressed) return SINGLE_TAP;
- else return SINGLE_HOLD;
- } else if (state->count == 2) {
- if (state->interrupted) return DOUBLE_SINGLE_TAP;
- else if (state->pressed) return DOUBLE_HOLD;
- else return DOUBLE_TAP;
- }
- if (state->count == 3) {
- if (state->interrupted || !state->pressed) return TRIPLE_TAP;
- else return TRIPLE_HOLD;
- } else return 8;
-}
-
-static tap tap_state = {
- .is_press_action = true,
- .state = 0
-};
-
-#ifdef TAP_DANCE_LALT_GIT
-void lalt_finished(tap_dance_state_t *state, void *user_data) {
- tap_state.state = cur_dance(state);
- switch (tap_state.state) {
- case SINGLE_HOLD:
- register_mods(MOD_BIT(KC_LALT));
- break;
- case DOUBLE_SINGLE_TAP:
- case DOUBLE_TAP:
- set_oneshot_layer(_GIT, ONESHOT_START);
- break;
- }
-}
-
-void lalt_reset(tap_dance_state_t *state, void *user_data) {
- switch (tap_state.state) {
- case SINGLE_HOLD:
- unregister_mods(MOD_BIT(KC_LALT));
- break;
- case DOUBLE_SINGLE_TAP:
- case DOUBLE_TAP:
- clear_oneshot_layer_state(ONESHOT_PRESSED);
- break;
- }
- tap_state.state = 0;
-}
-#endif
-
-#ifdef TAP_DANCE_LSFT_CAPS
-# ifdef LAYERS_PROGRAMMER
-void pg_lsft_finished(tap_dance_state_t *state, void *user_data) {
- tap_state.state = cur_dance(state);
- switch (tap_state.state) {
- case SINGLE_HOLD:
- register_mods(MOD_BIT(KC_LSFT));
- layer_on(_PROGRAMMER_SHIFTED);
- break;
- case DOUBLE_SINGLE_TAP:
- case DOUBLE_TAP:
- tap_code(KC_CAPS);
- layer_on(_PROGRAMMER_SHIFTED);
- break;
- }
-}
-
-void pg_lsft_reset(tap_dance_state_t *state, void *user_data) {
- switch (tap_state.state) {
- case SINGLE_HOLD:
- unregister_mods(MOD_BIT(KC_LSFT));
- layer_off(_PROGRAMMER_SHIFTED);
- break;
- }
- tap_state.state = 0;
-}
-# endif
-#endif
-
-dance_action_t tap_dance_actions[] = {
-#ifdef TAP_DANCE_LALT_GIT
- [TD_LALT_GIT] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, lalt_finished, lalt_reset),
-#endif
-#ifdef TAP_DANCE_LSFT_CAPS
- [TD_LSFT_CAPS] = ACTION_TAP_DANCE_DOUBLE(KC_LSFT, KC_CAPS),
-# ifdef LAYERS_PROGRAMMER
- [TD_PG_LSFT_CAPS] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, pg_lsft_finished, pg_lsft_reset),
-# endif
-#endif
-};
diff --git a/users/greatwizard/tap_dances.h b/users/greatwizard/tap_dances.h
deleted file mode 100644
index 19819125b5..0000000000
--- a/users/greatwizard/tap_dances.h
+++ /dev/null
@@ -1,65 +0,0 @@
-/* Copyright 2020 Guillaume Gérard
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-#pragma once
-
-#include QMK_KEYBOARD_H
-#include "greatwizard.h"
-
-typedef struct {
- bool is_press_action;
- uint8_t state;
-} tap;
-
-enum {
- SINGLE_TAP = 1,
- SINGLE_HOLD,
- DOUBLE_TAP,
- DOUBLE_HOLD,
- DOUBLE_SINGLE_TAP,
- TRIPLE_TAP,
- TRIPLE_HOLD
-};
-
-enum {
-#ifdef TAP_DANCE_LALT_GIT
- TD_LALT_GIT,
-#endif
-#ifdef TAP_DANCE_LSFT_CAPS
- TD_LSFT_CAPS,
-# ifdef LAYERS_PROGRAMMER
- TD_PG_LSFT_CAPS,
-# endif
-#endif
-};
-
-uint8_t cur_dance(tap_dance_state_t *state);
-
-#ifdef TAP_DANCE_LALT_GIT
-void lalt_finished(tap_dance_state_t *state, void *user_data);
-void lalt_reset(tap_dance_state_t *state, void *user_data);
-# define TD_LALT TD(TD_LALT_GIT)
-#endif
-
-#ifdef TAP_DANCE_LSFT_CAPS
-# ifdef LAYERS_PROGRAMMER
-void pg_lsft_finished(tap_dance_state_t *state, void *user_data);
-void pg_lsft_reset(tap_dance_state_t *state, void *user_data);
-# endif
-#endif
-
-#ifdef TAP_DANCE_LSFT_CAPS
-# define TD_LSCP TD(TD_LSFT_CAPS)
-#endif
diff --git a/users/greatwizard/underglow.c b/users/greatwizard/underglow.c
deleted file mode 100644
index c23fb5bc51..0000000000
--- a/users/greatwizard/underglow.c
+++ /dev/null
@@ -1,109 +0,0 @@
-/* Copyright 2020 Guillaume Gérard
- *
- * 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 "underglow.h"
-
-void keyboard_post_init_rgb(void) {
- user_config_t user_config;
- user_config.raw = eeconfig_read_user();
- if (!user_config.rgb_layer_change) {
- return;
- }
- rgblight_enable_noeeprom();
- rgblight_sethsv_noeeprom(HSV_ORANGE);
- rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_LIGHT);
-}
-
-bool process_record_rgb(uint16_t keycode, keyrecord_t *record) {
- switch (keycode) {
- case RGB_LAYER:
- if (record->event.pressed) {
- user_config_t user_config;
- user_config.raw = eeconfig_read_user();
- user_config.rgb_layer_change ^= 1;
- eeconfig_update_user(user_config.raw);
- if (user_config.rgb_layer_change) {
- layer_state_set(layer_state);
- }
- }
- return false;
- case RGB_MODE_FORWARD ... RGB_MODE_RGBTEST:
- if (record->event.pressed) {
- user_config_t user_config;
- user_config.raw = eeconfig_read_user();
- if (user_config.rgb_layer_change) {
- user_config.rgb_layer_change = false;
- eeconfig_update_user(user_config.raw);
- }
- }
- return true;
- }
- return true;
-}
-
-layer_state_t layer_state_set_rgb(layer_state_t state) {
- user_config_t user_config;
- user_config.raw = eeconfig_read_user();
- if (!user_config.rgb_layer_change) {
- return state;
- }
- switch (get_highest_layer(state)) {
- case _QWERTY:
-#ifdef LAYERS_PROGRAMMER
- case _PROGRAMMER_SHIFTED:
-#endif
- rgblight_sethsv_noeeprom(HSV_ORANGE);
- break;
-#ifdef LAYERS_ORTHO
- case _LOWER:
- rgblight_sethsv_noeeprom(HSV_RED);
- break;
- case _RAISE:
- rgblight_sethsv_noeeprom(HSV_BLUE);
- break;
- case _ADJUST:
- rgblight_sethsv_noeeprom(HSV_PURPLE);
- break;
-#endif
-#ifdef LAYER_FN
- case _FN:
- rgblight_sethsv_noeeprom(HSV_CHARTREUSE);
- break;
-#endif
-#ifdef LAYER_GIT
- case _GIT:
- rgblight_sethsv_noeeprom(HSV_TEAL);
- break;
-#endif
- default:
- rgblight_sethsv_noeeprom(HSV_WHITE);
- break;
- }
- return state;
-}
-
-bool led_update_rgb(led_t led_state) {
- user_config_t user_config;
- user_config.raw = eeconfig_read_user();
- if (!user_config.rgb_layer_change) {
- return true;
- }
- if (led_state.caps_lock) {
- rgblight_mode_noeeprom(RGBLIGHT_MODE_BREATHING + 3);
- } else {
- rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_LIGHT);
- }
- return true;
-}
diff --git a/users/greatwizard/underglow.h b/users/greatwizard/underglow.h
deleted file mode 100644
index 7e073b8579..0000000000
--- a/users/greatwizard/underglow.h
+++ /dev/null
@@ -1,24 +0,0 @@
-/* Copyright 2020 Guillaume Gérard
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-#pragma once
-
-#include QMK_KEYBOARD_H
-#include "greatwizard.h"
-
-void keyboard_post_init_rgb(void);
-bool process_record_rgb(uint16_t keycode, keyrecord_t *record);
-layer_state_t layer_state_set_rgb(layer_state_t state);
-bool led_update_rgb(led_t led_state);
diff --git a/users/haervig/config.h b/users/haervig/config.h
deleted file mode 100644
index 6a7d67737e..0000000000
--- a/users/haervig/config.h
+++ /dev/null
@@ -1,19 +0,0 @@
-/*
-Copyright 2021 Jakob Hærvig <jakob.haervig@gmail.com>
-
-This program is free software: you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program. If not, see <http://www.gnu.org/licenses/>.
-*/
-
-#pragma once
-#define TAPPING_TERM 200
diff --git a/users/haervig/haervig.c b/users/haervig/haervig.c
deleted file mode 100644
index 7a0d1aaadf..0000000000
--- a/users/haervig/haervig.c
+++ /dev/null
@@ -1,234 +0,0 @@
-/*
-Copyright 2021 Jakob Hærvig <jakob.haervig@gmail.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 "haervig.h"
-
-#ifdef DANISH_ENABLE
-// These indicate if left and right shift are physically pressed
-bool lshift = false;
-bool rshift = false;
-
-// Interrupt and times for space cadet shift
-bool lshiftp = false;
-bool rshiftp = false;
-uint16_t lshift_timer = 0;
-uint16_t rshift_timer = 0;
-
-// Number of items that are saved in prev_kcs
-uint8_t prev_indx = 0;
-// Used to save the last 6 actual keycodes activated by frankenkeycodes
-uint16_t prev_kcs[6] = {0, 0, 0, 0, 0, 0};
-
-// If true the deadkey characters grave and circonflexe are not automatically escaped
-bool esct = false;
-
-/*
-Used to add a keycode to a prev_kcs to remember it.
-When full the last code gets discarded and replaced by
-the new one.
-*/
-void add_to_prev(uint16_t kc){
- for (int i=0; i<prev_indx; i++){
- if (kc == prev_kcs[i])
- return;
- }
- if (prev_indx == 6){
- for (int i=5; i>0; i--){
- prev_kcs[i] = prev_kcs[i-1];
- }
- prev_kcs[0] = kc;
- } else {
- prev_kcs[prev_indx] = kc;
- prev_indx++;
- }
-}
-
-/*
-Unregisters all codes saved in prev_kcs and resets prev_indx.
-gets called on multiple occasions mainly when shift is released
-and when frankenkeycodes are pressed. Prevents output of
-wrong characters when really specific key combinations
-that would never occur during normal usage are pressed.
-*/
-void unreg_prev(void){
- if (prev_indx == 0)
- return;
- for (int i=0; i<prev_indx; i++){
- unregister_code(prev_kcs[i]);
- }
- prev_indx = 0;
-}
-#endif
-
-// Interrupt and times for Nav/Esc
-bool navesc = false;
-uint16_t navesc_timer = 0;
-
-// Interrupts all timers
-void timer_timeout(void){
- #ifdef DANISH_ENABLE
- lshiftp = false;
- rshiftp = false;
- #endif
- navesc = false;
- timer_timeout_keymap();
-}
-
-__attribute__((weak))
-void timer_timeout_keymap(void){
-}
-
-bool process_record_user(uint16_t keycode, keyrecord_t *record) {
- switch (keycode) {
- case KC_LGUI:
- case KC_RGUI:
- if (record->event.pressed)
- timer_timeout();
- return true;
- case CU_NAV:
- if(record->event.pressed) {
- navesc = true;
- navesc_timer = timer_read();
- layer_on(_NAV);
- } else {
- if (timer_elapsed(navesc_timer) < TAPPING_TERM && navesc) {
- tap_code(KC_ESC);
- }
- layer_off(_NAV);
- }
- return false;
-
- #ifdef DANISH_ENABLE
- case CU_LSFT:
- if(record->event.pressed) {
- lshiftp = true;
- lshift_timer = timer_read();
- unregister_code(KC_LSFT);
- register_code(KC_LSFT);
- lshift = true;
- } else {
- if (timer_elapsed(lshift_timer) < TAPPING_TERM && lshiftp) {
- register_code(KC_LSFT);
- tap_code(KC_8);
- unregister_code(KC_LSFT);
- }
- unreg_prev();
- if (!rshift)
- unregister_code(KC_LSFT);
- lshift = false;
- }
- return false;
- case CU_RSFT:
- if(record->event.pressed) {
- rshiftp = true;
- rshift_timer = timer_read();
- unregister_code(KC_LSFT);
- register_code(KC_LSFT);
- rshift = true;
- } else {
- if (timer_elapsed(rshift_timer) < TAPPING_TERM && rshiftp) {
- register_code(KC_LSFT);
- tap_code(KC_9);
- unregister_code(KC_LSFT);
- }
- unreg_prev();
- if (!lshift)
- unregister_code(KC_LSFT);
- rshift = false;
- }
- return false;
- case CU_COMM:
- SHIFT_NO(DK_COMM, KC_GRV)
- case CU_DOT:
- SHIFT_NORM(DK_DOT, KC_GRV)
- case CU_SLSH:
- SHIFT_ALL(DK_7, KC_MINS)
- case CU_SCLN:
- SHIFT_ALL(DK_COMM, DK_DOT)
- case CU_QUOT:
- SHIFT_NORM(DK_QUOT, DK_2)
- case CU_2:
- NORM_ALGR(DK_2, KC_NUHS)
- case CU_4:
- if (record->event.pressed) {
- timer_timeout();
- if (lshift || rshift) {
- register_code(KC_LSFT);
- register_code(KC_ALGR);
- unregister_code(KC_3);
- tap_code(KC_3);
- unregister_code(KC_3);
- } else {
- unregister_code(KC_4);
- tap_code(KC_4);
- }
- unregister_code(KC_ALGR);
- unregister_code(KC_LSFT);
- }
- return false;
- case CU_6:
- SHIFT_NORM(DK_6, KC_RBRC)
- case CU_7:
- SHIFT_NORM(DK_7, DK_6)
- case CU_8:
- SHIFT_NORM(DK_8, KC_NUHS)
- case CU_9:
- SHIFT_NORM(DK_9, DK_8)
- case CU_0:
- SHIFT_NORM(DK_0, DK_9)
- case CU_MINS:
- SHIFT_NORM(KC_SLSH, KC_SLSH)
- case CU_EQL:
- SHIFT_SWITCH(DK_0, DK_PLUS)
- case CU_BSPC:
- SHIFT_NO(KC_BSPC, KC_DEL)
- case CU_LBRC:
- NORM_ALGRSHIFT(DK_8, DK_8)
- case CU_RBRC:
- NORM_ALGRSHIFT(DK_9, DK_9)
- case CU_BSLS:
- ALGR_SWITCH(DK_7, DK_I)
- case KC_LCTL:
- case KC_RCTL:
- if(!record->event.pressed) {
- timer_timeout();
- unregister_code(KC_Z);
- unregister_code(KC_Y);
- }
- return true;
- #endif
-
- default:
- if(record->event.pressed) {
- timer_timeout();
-
- #ifdef DANISH_ENABLE
- if (lshift || rshift)
- register_code(KC_LSFT);
- else
- unregister_code(KC_LSFT);
- #endif
-
- }
- return process_record_keymap(keycode, record);
- }
-}
-
-__attribute__((weak))
-bool process_record_keymap(uint16_t keycode, keyrecord_t *record) {
- return true;
-}
diff --git a/users/haervig/haervig.h b/users/haervig/haervig.h
deleted file mode 100644
index e0d47e4cc9..0000000000
--- a/users/haervig/haervig.h
+++ /dev/null
@@ -1,297 +0,0 @@
-/*
-Copyright 2021 Jakob Hærvig <jakob.haervig@gmail.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"
-#include "keymap_danish.h"
-
-enum userspace_layers {
- _DEADKEY = 14, // Change if more than 16 layers are required
- _NAV
-};
-
-enum userspace_custom_keycodes {
- //CU_GAME = SAFE_RANGE, // Toggle game mode on/off
- CU_NAV = SAFE_RANGE, // NAV | ESC
-
- #ifdef DANISH_ENABLE
- CU_LSFT, // LSFT | (
- CU_RSFT, // LSFT | )
- CU_COMM, // , | <
- CU_DOT, // . | >
- CU_SLSH, // / | ?
- CU_SCLN, // ; | :
- CU_QUOT, // ' | "
- CU_2, // 2 | @
- CU_4, // 4 | $
- CU_6, // 6 | ^
- CU_7, // 7 | &
- CU_8, // 8 | *
- CU_9, // 9 | (
- CU_0, // 0 | )
- CU_MINS, // - | _
- CU_EQL, // = | +
- CU_BSPC, // backspace | delete
- CU_LBRC, // [ | {
- CU_RBRC, // ] | }
- CU_BSLS, // \ | |
- #endif
-
- NEW_SAFE_RANGE // Use for keymap specific keycodes
-};
-
-#ifdef DANISH_ENABLE
-extern bool lshift;
-extern bool rshift;
-extern bool lshiftp;
-extern bool rshiftp;
-extern uint16_t lshift_timer;
-extern uint16_t rshift_timer;
-
-extern uint8_t prev_indx;
-extern uint16_t prev_kcs[6];
-void add_to_prev(uint16_t kc);
-void unreg_prev(void);
-
-extern bool esct;
-#endif
-
-extern bool navesc;
-extern uint16_t navesc_timer;
-
-void timer_timeout(void);
-
-void timer_timeout_keymap(void);
-
-bool process_record_keymap(uint16_t keycode, keyrecord_t *record);
-
-#define CTRLX LCTL(KC_X)
-#define CTRLC LCTL(KC_C)
-#define CTRLV LCTL(KC_V)
-
-#define ALTF4 LALT(KC_F4)
-
-#define GUIU LGUI(KC_UP)
-#define GUID LGUI(KC_DOWN)
-#define GUIL LGUI(KC_LEFT)
-#define GUIR RGUI(KC_RIGHT)
-
-#define CTLENT CTL_T(KC_ENT)
-
-#define EMOJI LWIN(KC_DOT)
-
-/*
-Templates for Keys, with custom shifted and non shifted Characters
-*/
-
-// Normal shift status
-#define SHIFT_NORM(kc1, kc2) \
-if (record->event.pressed) { \
- timer_timeout(); \
- if (lshift || rshift) { \
- register_code(KC_LSFT); \
- unregister_code(kc2); \
- register_code(kc2); \
- add_to_prev(kc2); \
- } else { \
- unregister_code(KC_LSFT); \
- unregister_code(kc1); \
- register_code(kc1); \
- } \
-} else { \
- unregister_code(kc1); \
- unregister_code(kc2); \
-} \
-return false;
-
-// Inverted shift status
-#define SHIFT_SWITCH(kc1, kc2) \
-if (record->event.pressed) { \
- timer_timeout(); \
- if (lshift || rshift) { \
- unregister_code(KC_LSFT); \
- unregister_code(kc2); \
- register_code(kc2); \
- add_to_prev(kc2); \
- } else { \
- register_code(KC_LSFT); \
- unregister_code(kc1); \
- register_code(kc1); \
- add_to_prev(kc1); \
- } \
-} else { \
- unregister_code(kc1); \
- unregister_code(kc2); \
- unreg_prev(); \
- if (lshift || rshift) \
- register_code(KC_LSFT); \
- else \
- unregister_code(KC_LSFT); \
-} \
-return false;
-
-// Always shifted
-#define SHIFT_ALL(kc1, kc2) \
-if (record->event.pressed) { \
- timer_timeout(); \
- register_code(KC_LSFT); \
- if (lshift || rshift) { \
- tap_code(kc2); \
- add_to_prev(kc2); \
- } else { \
- tap_code(kc1); \
- add_to_prev(kc1); \
- } \
-} else { \
- unregister_code(kc1); \
- unregister_code(kc2); \
- unreg_prev(); \
- if (lshift || rshift) \
- register_code(KC_LSFT); \
- else \
- unregister_code(KC_LSFT); \
-} \
-return false;
-
-// Never shifted
-#define SHIFT_NO(kc1, kc2) \
-if (record->event.pressed) { \
- timer_timeout(); \
- unregister_code(KC_LSFT); \
- if (lshift || rshift) { \
- tap_code(kc2); \
- add_to_prev(kc2); \
- } else { \
- tap_code(kc1); \
- } \
-} else { \
- unregister_code(kc1); \
- unregister_code(kc2); \
- unreg_prev(); \
- if (lshift || rshift) \
- register_code(KC_LSFT); \
- else \
- unregister_code(KC_LSFT); \
-} \
-return false;
-
-// Norm AltGr
-#define NORM_ALGR(kc1, kc2) \
-if (record->event.pressed) { \
- timer_timeout(); \
- if (lshift || rshift) { \
- register_code(KC_ALGR); \
- unregister_code(KC_LSFT); \
- tap_code(kc2); \
- unregister_code(KC_ALGR); \
- } else { \
- unregister_code(KC_ALGR); \
- unregister_code(KC_LSFT); \
- tap_code(kc1); \
- } \
-} else { \
- unregister_code(kc1); \
- unregister_code(kc2); \
-} \
-return false;
-
-// Norm AltGr shift
-#define NORM_ALGRSHIFT(kc1, kc2) \
-if (record->event.pressed) { \
- timer_timeout(); \
- register_code(KC_LSFT); \
- register_code(KC_ALGR); \
- if (lshift || rshift) { \
- unregister_code(kc2); \
- tap_code(kc2); \
- unregister_code(KC_LSFT); \
- } else { \
- unregister_code(KC_LSFT); \
- unregister_code(kc1); \
- register_code(kc1); \
- } \
- unregister_code(KC_ALGR); \
-} else { \
- unregister_code(kc1); \
- unregister_code(kc2); \
-} \
-return false;
-
-// Inverted altgr status
-#define ALGR_SWITCH(kc1, kc2) \
-if (record->event.pressed) { \
- timer_timeout(); \
- register_code(KC_ALGR); \
- if (lshift || rshift) { \
- unregister_code(KC_LSFT); \
- unregister_code(kc2); \
- register_code(kc2); \
- unregister_code(KC_ALGR); \
- add_to_prev(kc2); \
- } else { \
- register_code(KC_LSFT); \
- unregister_code(kc1); \
- register_code(kc1); \
- unregister_code(KC_ALGR); \
- add_to_prev(kc1); \
- } \
-} else { \
- unregister_code(kc1); \
- unregister_code(kc2); \
- unreg_prev(); \
- if (lshift || rshift) \
- register_code(KC_LSFT); \
- else \
- unregister_code(KC_LSFT); \
-} \
-return false;
-
-// Always AltGr
-#define SHIFT_ALGR(kc1, kc2) \
-if (record->event.pressed) { \
- timer_timeout(); \
- unregister_code(KC_LSFT); \
- register_code(KC_ALGR); \
- if (lshift || rshift) { \
- unregister_code(kc2); \
- tap_code(kc2); \
- register_code(KC_LSFT); \
- } else { \
- unregister_code(kc1); \
- tap_code(kc1); \
- } \
- unregister_code(KC_ALGR); \
-} \
-return false;
-
-// Different keycode when Ctrl is pressed
-#define CTRL(kc1, kc2) \
-if(record->event.pressed) { \
- timer_timeout(); \
- if (lshift || rshift) \
- register_code(KC_LSFT); \
- else \
- unregister_code(KC_LSFT); \
- if (keyboard_report->mods & (MOD_BIT(KC_LCTL) | MOD_BIT(KC_RCTL))){ \
- register_code(kc2); \
- } else { \
- register_code(kc1); \
- } \
-} else { \
- unregister_code(kc1); \
- unregister_code(kc2); \
-} \
-return false;
diff --git a/users/haervig/readme.md b/users/haervig/readme.md
deleted file mode 100644
index dc2ebbd13c..0000000000
--- a/users/haervig/readme.md
+++ /dev/null
@@ -1,11 +0,0 @@
-# haervig Userspace
-
-This userspace keeps my userdefined codes. I work on a ANSI keyboard on a Danish macOS system. I believe this code might be relevant for similar users. A big shout out to user spacebarracecar for the ideas on how to map keys, which served as the basis of this code.
-
-## US Layout Keys for Danish PCs
-
-By daily work involves a lot of coding. I find an ANSI layout superior and decided to buy a QMK keyboard. However, all PC's here in Denmark are set to input language Danish. Even though I could simply set input language language to US international, I find this inconvenient. I instead decided to map my keys so the ANSI keyboard would will function as expected when the OS inputn language is Danish.
-
-## More details
-
-Tracking the current state of the shift code is nessesary for it to work. User spacebarracecar has documented the idea thoroughly and should serve you as a starting point if you wish to implement this code. I modified the code to suit Danish input language. Additionally, a couple of functions were added to accomodate the altgr key. \ No newline at end of file
diff --git a/users/haervig/rules.mk b/users/haervig/rules.mk
deleted file mode 100644
index e06647ff27..0000000000
--- a/users/haervig/rules.mk
+++ /dev/null
@@ -1,5 +0,0 @@
-SRC += haervig.c
-
-ifeq ($(strip $(DANISH_ENABLE)), yes)
- OPT_DEFS += -DDANISH_ENABLE
-endif
diff --git a/users/horrortroll/config.h b/users/horrortroll/config.h
deleted file mode 100644
index 50bc7da537..0000000000
--- a/users/horrortroll/config.h
+++ /dev/null
@@ -1,64 +0,0 @@
-/* Copyright 2023 HorrorTroll <https://github.com/HorrorTroll>
- *
- * 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
-
-/* Forcing to use NKRO instead 6KRO */
-#define FORCE_NKRO
-
-#define DYNAMIC_KEYMAP_LAYER_COUNT 2
-
-#if defined(__arm__)
- #ifdef RGB_MATRIX_ENABLE
- #define RGB_MATRIX_SOLID_REACTIVE_GRADIENT_MODE
- #endif
-#endif
-
-#if defined(__AVR_ATmega32U4__)
- #define NO_ACTION_ONESHOT
-
- #ifdef RGB_MATRIX_ENABLE
- /* RGB Matrix effect */
- #undef ENABLE_RGB_MATRIX_GRADIENT_UP_DOWN
- #undef ENABLE_RGB_MATRIX_GRADIENT_LEFT_RIGHT
- #undef ENABLE_RGB_MATRIX_BAND_SAT
- #undef ENABLE_RGB_MATRIX_BAND_VAL
- #undef ENABLE_RGB_MATRIX_BAND_PINWHEEL_SAT
- #undef ENABLE_RGB_MATRIX_BAND_PINWHEEL_VAL
- #undef ENABLE_RGB_MATRIX_BAND_SPIRAL_SAT
- #undef ENABLE_RGB_MATRIX_BAND_SPIRAL_VAL
- #undef ENABLE_RGB_MATRIX_CYCLE_UP_DOWN
- #undef ENABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON
- #undef ENABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL
- #undef ENABLE_RGB_MATRIX_DUAL_BEACON
- #undef ENABLE_RGB_MATRIX_RAINBOW_BEACON
- #undef ENABLE_RGB_MATRIX_RAINBOW_PINWHEELS
- #undef ENABLE_RGB_MATRIX_RAINDROPS
- #undef ENABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS
- #undef ENABLE_RGB_MATRIX_HUE_WAVE
- #undef ENABLE_RGB_MATRIX_PIXEL_RAIN
-
- #undef ENABLE_RGB_MATRIX_SOLID_REACTIVE
- #undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE
- #undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE
- #undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS
- #undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS
- #undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS
- #undef ENABLE_RGB_MATRIX_SPLASH
- #undef ENABLE_RGB_MATRIX_SOLID_SPLASH
- #undef ENABLE_RGB_MATRIX_SOLID_MULTISPLASH
- #endif
-#endif
diff --git a/users/horrortroll/horrortroll.c b/users/horrortroll/horrortroll.c
deleted file mode 100644
index 1152b2cc9d..0000000000
--- a/users/horrortroll/horrortroll.c
+++ /dev/null
@@ -1,165 +0,0 @@
-/* Copyright 2023 HorrorTroll <https://github.com/HorrorTroll>
- *
- * 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 "horrortroll.h"
-
-#include "rgb_matrix.h"
-
-// For CUSTOM_GRADIENT
-HSV gradient_0 = {205, 250, 255};
-HSV gradient_100 = {140, 215, 125};
-bool reflected_gradient = false;
-uint8_t gp_i = 0;
-
-typedef struct {
- HSV gradient_0;
- HSV gradient_1;
- bool reflected;
-} CUSTOM_PRESETS;
-
-bool process_record_user(uint16_t keycode, keyrecord_t *record) {
- uint8_t color_adj_step = 5;
-
- CUSTOM_PRESETS gradient_presets[] = {
- {{41 , 255, 255}, {233, 245, 255}, false },
- {{45 , 245, 155}, {160, 255, 80}, false },
- {{173, 245, 40}, {41 , 255, 205}, true },
- {{32 , 255, 165}, {217, 185, 70}, false },
- {{240, 255, 145}, {115, 255, 245}, true },
- {{118, 255, 255}, {242, 255, 255}, false },
- {{212, 0 , 0}, {223, 235, 165}, true },
- {{205, 250, 255}, {140, 215, 125}, false },
- };
-
- uint8_t gp_length = sizeof(gradient_presets)/sizeof(gradient_presets[0]);
-
- switch (keycode) {
- case G1_HUI:
- if (record->event.pressed) {
- gradient_0.h += color_adj_step;
- dprintf("Gradient 0 HSV: %d, %d, %d\n", gradient_0.h, gradient_0.s, gradient_0.v);
- }
- return false;
- case G1_HUD:
- if (record->event.pressed) {
- gradient_0.h -= color_adj_step;
- dprintf("Gradient 0 HSV: %d, %d, %d\n", gradient_0.h, gradient_0.s, gradient_0.v);
- }
- return false;
- case G1_SAI:
- if (record->event.pressed) {
- gradient_0.s = (gradient_0.s + color_adj_step * 2 <= 255) ? gradient_0.s + color_adj_step * 2 : 255;
- dprintf("Gradient 0 HSV: %d, %d, %d\n", gradient_0.h, gradient_0.s, gradient_0.v);
- }
- return false;
- case G1_SAD:
- if (record->event.pressed) {
- gradient_0.s = (gradient_0.s - color_adj_step * 2 >= 0) ? gradient_0.s - color_adj_step * 2 : 0;
- dprintf("Gradient 0 HSV: %d, %d, %d\n", gradient_0.h, gradient_0.s, gradient_0.v);
- }
- return false;
- case G1_VAI:
- if (record->event.pressed) {
- gradient_0.v = (gradient_0.v + color_adj_step * 2 <= 255) ? gradient_0.v + color_adj_step * 2 : 255;
- dprintf("Gradient 0 HSV: %d, %d, %d\n", gradient_0.h, gradient_0.s, gradient_0.v);
- }
- return false;
- case G1_VAD:
- if (record->event.pressed) {
- gradient_0.v = (gradient_0.v - color_adj_step * 2 >= 0) ? gradient_0.v - color_adj_step * 2 : 0;
- dprintf("Gradient 0 HSV: %d, %d, %d\n", gradient_0.h, gradient_0.s, gradient_0.v);
- }
- return false;
- case G2_HUI:
- if (record->event.pressed) {
- gradient_100.h += color_adj_step;
- dprintf("Gradient 100 HSV: %d, %d, %d\n", gradient_100.h, gradient_100.s, gradient_100.v);
- }
- return false;
- case G2_HUD:
- if (record->event.pressed) {
- gradient_100.h -= color_adj_step;
- dprintf("Gradient 100 HSV: %d, %d, %d\n", gradient_100.h, gradient_100.s, gradient_100.v);
- }
- return false;
- case G2_SAI:
- if (record->event.pressed) {
- gradient_100.s = (gradient_100.s + color_adj_step * 2 <= 255) ? gradient_100.s + color_adj_step * 2 : 255;
- dprintf("Gradient 100 HSV: %d, %d, %d\n", gradient_100.h, gradient_100.s, gradient_100.v);
- }
- return false;
- case G2_SAD:
- if (record->event.pressed) {
- gradient_100.s = (gradient_100.s - color_adj_step * 2 >= 0) ? gradient_100.s - color_adj_step * 2 : 0;
- dprintf("Gradient 100 HSV: %d, %d, %d\n", gradient_100.h, gradient_100.s, gradient_100.v);
- }
- return false;
- case G2_VAI:
- if (record->event.pressed) {
- gradient_100.v = (gradient_100.v + color_adj_step * 2 <= 255) ? gradient_100.v + color_adj_step * 2 : 255;
- dprintf("Gradient 100 HSV: %d, %d, %d\n", gradient_100.h, gradient_100.s, gradient_100.v);
- }
- return false;
- case G2_VAD:
- if (record->event.pressed) {
- gradient_100.v = (gradient_100.v - color_adj_step * 2 >= 0) ? gradient_100.v - color_adj_step * 2 : 0;
- dprintf("Gradient 100 HSV: %d, %d, %d\n", gradient_100.h, gradient_100.s, gradient_100.v);
- }
- return false;
- case G_PRE:
- if (record->event.pressed) {
- gp_i = (gp_i + gp_length ) % gp_length;
-
- gradient_0 = gradient_presets[gp_i].gradient_0;
- gradient_100 = gradient_presets[gp_i].gradient_1;
- reflected_gradient = gradient_presets[gp_i].reflected;
-
- gp_i += 1;
- }
- return false;
- case REF_G:
- if (record->event.pressed) {
- reflected_gradient = !reflected_gradient;
- }
- return false;
- case G_FLIP:
- if (record->event.pressed) {
- HSV temp_color = gradient_0;
- gradient_0 = gradient_100;
- gradient_100 = temp_color;
- }
- return false;
- case RGB_C_E:
- if (record->event.pressed) {
- switch (rgb_matrix_get_mode()) {
- case RGB_MATRIX_CUSTOM_CUSTOM_GRADIENT:
- rgb_matrix_mode(RGB_MATRIX_CUSTOM_COOL_DIAGONAL);
- return false;
- case RGB_MATRIX_CUSTOM_COOL_DIAGONAL:
- rgb_matrix_mode(RGB_MATRIX_CUSTOM_FLOWER_BLOOMING);
- return false;
- case RGB_MATRIX_CUSTOM_FLOWER_BLOOMING:
- rgb_matrix_mode(RGB_MATRIX_CUSTOM_RANDOM_BREATH_RAINBOW);
- return false;
- default:
- rgb_matrix_mode(RGB_MATRIX_CUSTOM_CUSTOM_GRADIENT);
- return false;
- }
- }
- return false;
- }
- return true;
-}
diff --git a/users/horrortroll/horrortroll.h b/users/horrortroll/horrortroll.h
deleted file mode 100644
index a251f74d6c..0000000000
--- a/users/horrortroll/horrortroll.h
+++ /dev/null
@@ -1,49 +0,0 @@
-/* Copyright 2023 HorrorTroll <https://github.com/HorrorTroll>
- *
- * 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"
-
-// Each layer gets a name for readability, which is then used in the keymap matrix below.
-// The underscores don't mean anything - you can have a layer called STUFF or any other name.
-// Layer names don't all need to be of the same length, obviously, and you can also skip them
-// entirely and just use numbers.
-
-enum layer_names {
- _BASE,
- _FN,
-};
-
-enum custom_keycodes {
- //Custom Gradient control keycode
- G1_HUI = SAFE_RANGE, //Custom gradient color 1 hue increase
- G1_HUD, //Custom gradient color 1 hue decrease
- G1_SAI, //Custom gradient color 1 saturation increase
- G1_SAD, //Custom gradient color 1 saturation decrease
- G1_VAI, //Custom gradient color 1 value increase
- G1_VAD, //Custom gradient color 1 value decrease
- G2_HUI, //Custom gradient color 2 hue increase
- G2_HUD, //Custom gradient color 2 hue decrease
- G2_SAI, //Custom gradient color 2 saturation increase
- G2_SAD, //Custom gradient color 2 saturation decrease
- G2_VAI, //Custom gradient color 2 value increase
- G2_VAD, //Custom gradient color 2 value decrease
- G_PRE, //Gradient presets
- REF_G, //Toggle between linear and reflected gradient
- G_FLIP, //Flip the gradient colors
-
- //Custom led effect keycode
- RGB_C_E, //Cycle user effect
-};
diff --git a/users/horrortroll/led/cool_diagonal.c b/users/horrortroll/led/cool_diagonal.c
deleted file mode 100644
index 900130aba5..0000000000
--- a/users/horrortroll/led/cool_diagonal.c
+++ /dev/null
@@ -1,22 +0,0 @@
-/* Copyright 2022 HorrorTroll <https://github.com/HorrorTroll>
- *
- * 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/>.
- */
-
-static HSV COOL_DIAGONAL_math(HSV hsv, uint8_t i, uint8_t time) {
- hsv.h = (g_led_config.point[i].x / 4) - g_led_config.point[i].y - time;
- return hsv;
-}
-
-bool COOL_DIAGONAL(effect_params_t* params) { return effect_runner_i(params, &COOL_DIAGONAL_math); }
diff --git a/users/horrortroll/led/custom_gradient.c b/users/horrortroll/led/custom_gradient.c
deleted file mode 100644
index af6173d250..0000000000
--- a/users/horrortroll/led/custom_gradient.c
+++ /dev/null
@@ -1,74 +0,0 @@
-/* Copyright 2022 HorrorTroll <https://github.com/HorrorTroll>
- *
- * 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/>.
- */
-
-extern HSV gradient_0;
-extern HSV gradient_100;
-extern bool reflected_gradient;
-
-static HSV INTERPOLATE_HSV(float step, HSV gradient_0, HSV gradient_100) {
- uint8_t cw, ccw;
- HSV color;
-
- cw = (gradient_0.h >= gradient_100.h) ? 255 + gradient_100.h - gradient_0.h : gradient_100.h - gradient_0.h; // Hue range is 0 to 255.
- ccw = (gradient_0.h >= gradient_100.h) ? gradient_0.h - gradient_100.h : 255 + gradient_0.h - gradient_100.h;
-
- if( cw < ccw ) { // going clockwise
- color.h = gradient_0.h + (uint8_t)(step * cw);
- } else { // Going counter clockwise
- color.h = gradient_0.h - (uint8_t)(step * ccw);
- }
-
- color.s = gradient_0.s + step * (gradient_100.s - gradient_0.s);
-
- // Scale V with global RGB Matrix's V, so users can still control overall brightness with RGB_VAI & RGB_VAD0
- color.v = round((gradient_0.v + step * (gradient_100.v - gradient_0.v)) * ((float)rgb_matrix_config.hsv.v / 255));
-
- return color;
-}
-
-static HSV CUSTOM_GRADIENT_math(uint8_t led_x, uint8_t min_x, uint8_t max_x) {
- float step = (float)led_x / (max_x - min_x);
- float mid_gradient_pos = 0.5;
-
- if( reflected_gradient ) {
- if( step <= mid_gradient_pos ) {
- return INTERPOLATE_HSV(step * (1/mid_gradient_pos), gradient_0, gradient_100);
- } else {
- return INTERPOLATE_HSV((step - mid_gradient_pos) * (1/(1-mid_gradient_pos)), gradient_100, gradient_0);
- }
-
- } else {
- return INTERPOLATE_HSV(step, gradient_0, gradient_100);
- }
-}
-
-static bool CUSTOM_GRADIENT(effect_params_t* params) {
- RGB_MATRIX_USE_LIMITS(led_min, led_max);
-
- uint8_t min_x = 0; // X coordinate of the left-most LED
- uint8_t max_x = 224; // X coordinate of the right-most LED
-
- for (uint8_t i = led_min; i < led_max; i++) {
- RGB_MATRIX_TEST_LED_FLAGS();
-
- HSV hsv_orig = CUSTOM_GRADIENT_math(g_led_config.point[i].x, min_x, max_x);
- RGB rgb = hsv_to_rgb(hsv_orig);
-
- rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b);
- }
-
- return led_max < RGB_MATRIX_LED_COUNT;
-}
diff --git a/users/horrortroll/led/flower_blooming/flower_blooming.c b/users/horrortroll/led/flower_blooming/flower_blooming.c
deleted file mode 100644
index add83149cc..0000000000
--- a/users/horrortroll/led/flower_blooming/flower_blooming.c
+++ /dev/null
@@ -1,27 +0,0 @@
-/* Copyright 2022 HorrorTroll <https://github.com/HorrorTroll>
- *
- * 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 "led/flower_blooming/flower_blooming.h"
-
-static HSV FLOWER_BLOOMING_math(HSV hsv, uint8_t i, uint8_t time) {
- if (g_led_config.point[i].y > k_rgb_matrix_center.y)
- hsv.h = g_led_config.point[i].x * 3 - g_led_config.point[i].y * 3 + time;
- else
- hsv.h = g_led_config.point[i].x * 3 - g_led_config.point[i].y * 3 - time;
- return hsv;
-}
-
-bool FLOWER_BLOOMING(effect_params_t* params) { return effect_runner_bloom(params, &FLOWER_BLOOMING_math); }
diff --git a/users/horrortroll/led/flower_blooming/flower_blooming.h b/users/horrortroll/led/flower_blooming/flower_blooming.h
deleted file mode 100644
index ccdaa70d97..0000000000
--- a/users/horrortroll/led/flower_blooming/flower_blooming.h
+++ /dev/null
@@ -1,36 +0,0 @@
-/* Copyright 2022 HorrorTroll <https://github.com/HorrorTroll>
- *
- * 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
-
-typedef HSV (*flower_blooming_f)(HSV hsv, uint8_t i, uint8_t time);
-
-bool effect_runner_bloom(effect_params_t* params, flower_blooming_f effect_func) {
- RGB_MATRIX_USE_LIMITS(led_min, led_max);
-
- uint8_t time = scale16by8(g_rgb_timer, qadd8(rgb_matrix_config.speed / 10, 1));
- for (uint8_t i = led_min; i < led_max; i++) {
- RGB_MATRIX_TEST_LED_FLAGS();
- if (g_led_config.point[i].y > k_rgb_matrix_center.y) {
- RGB bgr = rgb_matrix_hsv_to_rgb(effect_func(rgb_matrix_config.hsv, i, time));
- rgb_matrix_set_color(i, bgr.b, bgr.g, bgr.r);
- } else {
- RGB rgb = rgb_matrix_hsv_to_rgb(effect_func(rgb_matrix_config.hsv, i, time));
- rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b);
- }
- }
- return rgb_matrix_check_finished_leds(led_max);
-}
diff --git a/users/horrortroll/led/random_breath_rainbow.c b/users/horrortroll/led/random_breath_rainbow.c
deleted file mode 100644
index ba1ca55faf..0000000000
--- a/users/horrortroll/led/random_breath_rainbow.c
+++ /dev/null
@@ -1,55 +0,0 @@
-/* Copyright 2022 HorrorTroll <https://github.com/HorrorTroll>
- *
- * 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/>.
- */
-
-static uint8_t offset[RGB_MATRIX_LED_COUNT];
-
-static void doRandom_breath_rainbow(int i, effect_params_t* params) {
- if (!HAS_ANY_FLAGS(g_led_config.flags[i], params->flags)) return;
- uint16_t time = scale16by8(g_rgb_timer, rgb_matrix_config.speed / 6);
-
- if (rand() * 50 == 1) {
- if (rand() * 2 == 1) {
- offset[i]++;
- }
- else {
- offset[i]--;
- }
- }
-
- //float val = (((float)sin8(time + offset[i]) / 256)/2.1) + .05;
- HSV hsv = {0, 255, 255};
- hsv.h = scale16by8(g_rgb_timer + offset[i], rgb_matrix_config.speed / 4) + (offset[i]*2);
- hsv.v = scale8(abs8(sin8(time) - 128) * 2, hsv.v);
- RGB rgb = rgb_matrix_hsv_to_rgb(hsv);
- rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b);
-}
-
-bool RANDOM_BREATH_RAINBOW(effect_params_t* params) {
-
- if (!params->init) {
- // Change one LED every tick, make sure speed is not 0
- doRandom_breath_rainbow(rand() % RGB_MATRIX_LED_COUNT, params);
- return false;
- }
-
- RGB_MATRIX_USE_LIMITS(led_min, led_max);
-
- for (uint8_t i = led_min; i < led_max; i++) {
- doRandom_breath_rainbow(i, params);
- }
-
- return led_max < RGB_MATRIX_LED_COUNT;
-}
diff --git a/users/horrortroll/readme.md b/users/horrortroll/readme.md
deleted file mode 100644
index 420c9b0986..0000000000
--- a/users/horrortroll/readme.md
+++ /dev/null
@@ -1,24 +0,0 @@
-/* Copyright 2023 HorrorTroll <https://github.com/HorrorTroll>
- *
- * 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/>.
- */
-
-# My personal keymap with custom LED
-
-### Custom LED effect list:
-
-- Custom gradient ([ported from SirTimmyTimbit code](https://github.com/SirTimmyTimbit/customizable-gradient-effect-for-drop-alt))
-- Cool diagonal ([ported from pleasuretek code](https://github.com/pleasuretek/qmk_firmware))
-- Flower Blooming
-- Random breath rainbow ([based from daed code](https://github.com/daed/qmk_firmware/blob/master/keyboards/massdrop/alt/keymaps/daed) and modify by me)
diff --git a/users/horrortroll/rgb_matrix_user.inc b/users/horrortroll/rgb_matrix_user.inc
deleted file mode 100644
index 08c608dc44..0000000000
--- a/users/horrortroll/rgb_matrix_user.inc
+++ /dev/null
@@ -1,13 +0,0 @@
-RGB_MATRIX_EFFECT(CUSTOM_GRADIENT)
-RGB_MATRIX_EFFECT(COOL_DIAGONAL)
-RGB_MATRIX_EFFECT(FLOWER_BLOOMING)
-RGB_MATRIX_EFFECT(RANDOM_BREATH_RAINBOW)
-
-#ifdef RGB_MATRIX_CUSTOM_EFFECT_IMPLS
-
-#include "led/custom_gradient.c"
-#include "led/cool_diagonal.c"
-#include "led/flower_blooming/flower_blooming.c"
-#include "led/random_breath_rainbow.c"
-
-#endif // RGB_MATRIX_CUSTOM_EFFECT_IMPLS
diff --git a/users/horrortroll/rules.mk b/users/horrortroll/rules.mk
deleted file mode 100644
index 579f5fd38b..0000000000
--- a/users/horrortroll/rules.mk
+++ /dev/null
@@ -1,6 +0,0 @@
-VIA_ENABLE = yes
-RGB_MATRIX_CUSTOM_USER = yes
-
-ifeq ($(strip $(RGB_MATRIX_ENABLE)), yes)
- SRC += $(USER_PATH)/horrortroll.c
-endif
diff --git a/users/hvp/config.h b/users/hvp/config.h
deleted file mode 100644
index b7d0443bbc..0000000000
--- a/users/hvp/config.h
+++ /dev/null
@@ -1,19 +0,0 @@
- /* Copyright 2021 hvp
- *
- * 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 LONG_TAPPING_TERM 1000
-#define PERMISSIVE_HOLD
diff --git a/users/hvp/hvp.c b/users/hvp/hvp.c
deleted file mode 100644
index 7e484535c8..0000000000
--- a/users/hvp/hvp.c
+++ /dev/null
@@ -1,2 +0,0 @@
-
-#include "hvp.h"
diff --git a/users/hvp/hvp.h b/users/hvp/hvp.h
deleted file mode 100644
index 275838a49a..0000000000
--- a/users/hvp/hvp.h
+++ /dev/null
@@ -1,43 +0,0 @@
- /* Copyright 2021 hvp
- *
- * 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"
-#undef TAPPING_TERM
-#define TAPPING_TERM 150
-
-#ifdef TAP_DANCE_ENABLE
-# include "tap_dances.h"
-#endif
-
-#ifdef TAPPING_TERM_PER_KEY
-# include "per_key.h"
-#endif
-
-
-#define D_NAVI MT(MOD_LCTL | MOD_LSFT, KC_D)
-
-/* Home-row mods */
-#define LG_A MT(MOD_LGUI, KC_A)
-#define LA_S MT(MOD_LALT, KC_S)
-#define LS_D MT(MOD_LSFT, KC_D)
-#define LC_F MT(MOD_LCTL, KC_F)
-
-#define RC_H MT(MOD_RCTL, KC_H)
-#define RS_J MT(MOD_RSFT, KC_J)
-#define RA_K MT(MOD_RALT, KC_K)
-#define RG_L MT(MOD_RGUI, KC_L) \ No newline at end of file
diff --git a/users/hvp/per_key.c b/users/hvp/per_key.c
deleted file mode 100644
index fc4d455f5a..0000000000
--- a/users/hvp/per_key.c
+++ /dev/null
@@ -1,43 +0,0 @@
- /* Copyright 2021 hvp
- *
- * 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 per_key.h
-
-uint16_t get_tapping_term(uint16_t keycode, keyrecord_t *record) {
- switch (keycode) {
- case MT(MOD_LGUI, KC_A):
- return TAPPING_TERM + LONG_TAPPING_TERM;
- case MT(MOD_LALT, KC_S):
- return TAPPING_TERM + LONG_TAPPING_TERM;
- case MT(MOD_LSFT, KC_D):
- return TAPPING_TERM + LONG_TAPPING_TERM;
- case MT(MOD_LCTL, KC_F):
- return TAPPING_TERM + LONG_TAPPING_TERM;
- case MT(MOD_RCTL, KC_H):
- return TAPPING_TERM + LONG_TAPPING_TERM;
- case MT(MOD_RSFT, KC_J):
- return TAPPING_TERM + LONG_TAPPING_TERM;
- case MT(MOD_RALT, KC_K):
- return TAPPING_TERM + LONG_TAPPING_TERM;
- case MT(MOD_RGUI, KC_L):
- return TAPPING_TERM + LONG_TAPPING_TERM;
- case SC_LCPO:
- return TAPPING_TERM 75;
- default:
- return TAPPING_TERM;
- }
-} \ No newline at end of file
diff --git a/users/hvp/readme.md b/users/hvp/readme.md
deleted file mode 100644
index 2d8f9d8597..0000000000
--- a/users/hvp/readme.md
+++ /dev/null
@@ -1 +0,0 @@
-Personal user space for hvpcode / cablegore at discord
diff --git a/users/hvp/rules.mk b/users/hvp/rules.mk
deleted file mode 100644
index 549483b67b..0000000000
--- a/users/hvp/rules.mk
+++ /dev/null
@@ -1,9 +0,0 @@
-
-SRC += hvp.c
-ifeq ($(strip $(TAP_DANCE_ENABLE)), yes)
- SRC += tap_dances.c
-endif
-
-ifeq ($(strip $(TAPPING_TERM_PER_KEY)), yes)
- SRC += per_key.c
-endif \ No newline at end of file
diff --git a/users/hvp/tap_dances.c b/users/hvp/tap_dances.c
deleted file mode 100644
index 51e227737a..0000000000
--- a/users/hvp/tap_dances.c
+++ /dev/null
@@ -1,103 +0,0 @@
-#include "tap_dances.h"
-
-// Tap dance function for enable swedish characters on first layer. Unregister to not let tap bleed over to next keypress.
-// Tap dance 1
-void dance_1_finished(tap_dance_state_t *state, void *user_data) {
- if (state->count == 2) {
- tap_code(KC_SCLN);
- } else {
- tap_code16(ALGR(KC_A));
- }
-}
-
-void dance_1_reset(tap_dance_state_t *state, void *user_data) {
- if (state->count == 2) {
- unregister_code(KC_SCLN);
- } else {
- unregister_code16(ALGR(KC_A));
- }
-}
-
-// Tap dance 2
-void dance_2_finished(tap_dance_state_t *state, void *user_data) {
- if (state->count == 2) {
- tap_code(KC_QUOT);
- } else {
- tap_code16(ALGR(KC_W));
- }
-}
-
-void dance_2_reset(tap_dance_state_t *state, void *user_data) {
- if (state->count == 2) {
- unregister_code(KC_QUOT);
- } else {
- unregister_code16(ALGR(KC_W));
- }
-}
-
-// Tap dance 3
-void dance_3_finished(tap_dance_state_t *state, void *user_data) {
- // if (state->count == 2)
- if (state->count == 2) {
- tap_code(KC_SLSH);
- } else {
- tap_code16(ALGR(KC_O));
- }
-}
-
-void dance_3_reset(tap_dance_state_t *state, void *user_data) {
- if (state->count == 2) {
- unregister_code(KC_SLSH);
- } else {
- unregister_code16(ALGR(KC_O));
- }
-}
-
-// Tap dance 4
-void dance_4_finished(tap_dance_state_t *state, void *user_data) {
- // if (state->count == 2)
- if (state->count == 2) {
- tap_code(KC_DOT);
- } else {
- tap_code16(ALGR(KC_W));
- }
-}
-
-void dance_4_reset(tap_dance_state_t *state, void *user_data) {
- if (state->count == 2) {
- unregister_code(KC_DOT);
- } else {
- unregister_code16(ALGR(KC_W));
- }
-}
-
-// Tap dance 5
-void dance_5_finished(tap_dance_state_t *state, void *user_data) {
- // if (state->count == 2)
- if (state->count == 2) {
- tap_code(KC_DOT);
- } else {
- tap_code16(ALGR(KC_O));
- }
-}
-
-void dance_5_reset(tap_dance_state_t *state, void *user_data) {
- if (state->count == 2) {
- unregister_code(KC_DOT);
- } else {
- unregister_code16(ALGR(KC_O));
- }
-}
-
-// Tap Dance Definitions
-tap_dance_action_t tap_dance_actions[] = {
- // simple tap dance
- [TD1] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, dance_1_finished, dance_1_reset),
-
- [TD2] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, dance_2_finished, dance_2_reset),
-
- [TD3] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, dance_3_finished, dance_3_reset),
-
- [TD4] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, dance_4_finished, dance_4_reset),
-
- [TD5] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, dance_5_finished, dance_5_reset)}; \ No newline at end of file
diff --git a/users/hvp/tap_dances.h b/users/hvp/tap_dances.h
deleted file mode 100644
index a00caf0929..0000000000
--- a/users/hvp/tap_dances.h
+++ /dev/null
@@ -1,29 +0,0 @@
- /* Copyright 2021 hvp
- *
- * 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"
-
-// Tap Dance Declarations
-enum tapdance_id
-{
- TD1 = 0,
- TD2,
- TD3,
- TD4,
- TD5
-}; \ No newline at end of file
diff --git a/users/ibnuda/abstraction.c b/users/ibnuda/abstraction.c
deleted file mode 100644
index 757248a260..0000000000
--- a/users/ibnuda/abstraction.c
+++ /dev/null
@@ -1,17 +0,0 @@
-/* Copyright 2021 Ibnu D. Aji
- *
- * 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 "abstraction.h" \ No newline at end of file
diff --git a/users/ibnuda/abstraction.h b/users/ibnuda/abstraction.h
deleted file mode 100644
index 499d512dfc..0000000000
--- a/users/ibnuda/abstraction.h
+++ /dev/null
@@ -1,117 +0,0 @@
-/* Copyright 2021 Ibnu D. Aji
- *
- * 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"
-
-enum {
- _BASE,
- _LOWER,
- _RAISE,
- _ADJUST,
-};
-
-// keycode abstraction
-// ABC:
-// A: L = left
-// R = right
-// B: U = upper row
-// M = middle row
-// L = lower row
-// C: P = pinky finger
-// R = ring finger
-// M = middle finger
-// I = index finger
-// II = inner index finger
-#define LUP KC_Q
-#define LUR KC_V
-#define LUM KC_C
-#define LUI KC_P
-#define LUII KC_B
-#define LMP KC_R
-#define LMR KC_S
-#define LMM KC_T
-#define LMI KC_H
-#define LMII KC_D
-#define LLP KC_QUOT
-#define LLR KC_J
-#define LLM KC_G
-#define LLI KC_K
-#define LLII KC_X
-
-#define RUP KC_Z
-#define RUR KC_Y
-#define RUM KC_U
-#define RUI KC_L
-#define RUII KC_DOT
-#define RMP KC_O
-#define RMR KC_I
-#define RMM KC_A
-#define RMI KC_N
-#define RMII KC_F
-#define RLP KC_SLSH
-#define RLR KC_SCLN
-#define RLM KC_W
-#define RLI KC_M
-#define RLII KC_COMM
-
-
-// thumb keys.
-#define TRAISE TG(_RAISE)
-#define AL_ENT ALT_T(KC_ENT)
-#define SF_BSPC SFT_T(KC_BSPC)
-#define CT_ESC CTL_T(KC_ESC)
-
-// home row mods.
-#define CTLR LCTL_T(LMR)
-#define CTRR RCTL_T(RMR)
-#define CT_LEFT LCTL_T(KC_LEFT)
-#define CT_SIX RCTL_T(KC_6)
-
-#define SHLP LSFT_T(LMP)
-#define SHRP RSFT_T(RMP)
-#define SH_HASH LSFT_T(KC_HASH)
-#define SH_ZERO RSFT_T(KC_0)
-
-#define ALLM LALT_T(LMM)
-#define ALRM RALT_T(RMM)
-#define AL_DOWN LALT_T(KC_DOWN)
-#define AL_FIVE RALT_T(KC_5)
-
-#define GULII RGUI_T(LMII)
-#define GURII LGUI_T(RMII)
-#define GU_DLR RGUI_T(KC_DLR)
-#define GU_EQL LGUI_T(KC_EQL)
-
-// layer toggle.
-#define LW_E LT(_LOWER, KC_E)
-#define RS_SPC LT(_RAISE, KC_SPC)
-
-#define ADDDD MO(_ADJUST)
-
-// common shortcuts for windows and linux that i use.
-#define NXTTAB LCTL(KC_PGDN)
-#define PRVTAB LCTL(KC_PGUP)
-#define UPTAB LCTL(LSFT(KC_PGUP))
-#define DNTAB LCTL(LSFT(KC_PGDN))
-#define NXTWIN LALT(KC_TAB)
-#define PRVWIN LALT(LSFT(KC_TAB))
-#define CALDL LCTL(LALT(KC_DEL))
-#define TSKMGR LCTL(LSFT(KC_ESC))
-#define EXPLR LGUI(KC_E)
-#define LCKGUI LGUI(KC_L)
-#define CONPST LSFT(KC_INS)
-#define CLSGUI LALT(KC_F4)
diff --git a/users/ibnuda/combo.c b/users/ibnuda/combo.c
deleted file mode 100644
index a48b0aae37..0000000000
--- a/users/ibnuda/combo.c
+++ /dev/null
@@ -1 +0,0 @@
-#include "combo.h"
diff --git a/users/ibnuda/combo.h b/users/ibnuda/combo.h
deleted file mode 100644
index c4fd5f12ed..0000000000
--- a/users/ibnuda/combo.h
+++ /dev/null
@@ -1,96 +0,0 @@
-#pragma once
-#include "quantum.h"
-
-#include "abstraction.h"
-
-// enum for combos.
-enum combos {
- // left hand combinations.
- R_U_PINKY_RING,
- R_U_RING_MIDDLE,
- R_U_RING_INDEX,
- R_U_MIDDLE_INDEX,
- R_U_MIDDLE_INNER_INDEX,
- R_U_INDEX_INNER_INDEX,
- R_L_PINKY_RING,
- R_L_RING_MIDDLE,
- R_L_RING_INDEX,
- R_L_MIDDLE_INDEX,
- R_L_INDEX_INNER_INDEX,
-
- // right hand combinations.
- L_U_PINKY_RING,
- L_U_RING_MIDDLE,
- L_U_RING_INDEX,
- L_U_MIDDLE_INDEX,
- L_U_MIDDLE_INNER_INDEX,
- L_U_INNER_INNER_INDEX,
- L_L_PINKY_RING,
- L_L_RING_MIDDLE,
- L_L_MIDDLE_INDEX,
- L_L_RING_INDEX,
- L_L_INDEX_INNER_INDEX,
-
- // both hands combinations.
- B_L_MIDDLE_MIDDLE,
-};
-
-// left hand combinations.
-const uint16_t PROGMEM lu_p_r_combo[] = {LUP, LUR, COMBO_END};
-const uint16_t PROGMEM lu_r_m_combo[] = {LUR, LUM, COMBO_END};
-const uint16_t PROGMEM lu_r_i_combo[] = {LUR, LUI, COMBO_END};
-const uint16_t PROGMEM lu_m_i_combo[] = {LUM, LUI, COMBO_END};
-const uint16_t PROGMEM lu_m_ii_combo[] = {LUM, LUII, COMBO_END};
-const uint16_t PROGMEM lu_i_ii_combo[] = {LUI, LUII, COMBO_END};
-const uint16_t PROGMEM ll_p_r_combo[] = {LLP, LLR, COMBO_END};
-const uint16_t PROGMEM ll_r_m_combo[] = {LLR, LLM, COMBO_END};
-const uint16_t PROGMEM ll_r_i_combo[] = {LLR, LLI, COMBO_END};
-const uint16_t PROGMEM ll_m_i_combo[] = {LLM, LLI, COMBO_END};
-const uint16_t PROGMEM ll_i_ii_combo[] = {LLI, LLII, COMBO_END};
-
-// right hand combinations.
-const uint16_t PROGMEM ru_p_r_combo[] = {RUP, RUR, COMBO_END};
-const uint16_t PROGMEM ru_r_m_combo[] = {RUR, RUM, COMBO_END};
-const uint16_t PROGMEM ru_r_i_combo[] = {RUR, RUI, COMBO_END};
-const uint16_t PROGMEM ru_m_i_combo[] = {RUM, RUI, COMBO_END};
-const uint16_t PROGMEM ru_m_ii_combo[] = {RUM, RUII, COMBO_END};
-const uint16_t PROGMEM ru_i_ii_combo[] = {RUI, RUII, COMBO_END};
-const uint16_t PROGMEM rl_p_r_combo[] = {RLP, RLR, COMBO_END};
-const uint16_t PROGMEM rl_r_m_combo[] = {RLR, RLM, COMBO_END};
-const uint16_t PROGMEM rl_r_i_combo[] = {RLR, RLI, COMBO_END};
-const uint16_t PROGMEM rl_m_i_combo[] = {RLM, RLI, COMBO_END};
-const uint16_t PROGMEM rl_i_ii_combo[] = {RLI, RLII, COMBO_END};
-
-// both hand combinations.
-const uint16_t PROGMEM bl_m_m_combo[] = {LLM, RLM, COMBO_END};
-
-combo_t key_combos[] = {
- // left hand combinations.
- [R_U_PINKY_RING] = COMBO(lu_p_r_combo, KC_TAB),
- [R_U_RING_MIDDLE] = COMBO(lu_r_m_combo, KC_QUES),
- [R_U_RING_INDEX] = COMBO(lu_r_i_combo, PRVTAB),
- [R_U_MIDDLE_INDEX] = COMBO(lu_m_i_combo, KC_UNDS),
- [R_U_MIDDLE_INNER_INDEX] = COMBO(lu_m_ii_combo, KC_ENT),
- [R_U_INDEX_INNER_INDEX] = COMBO(lu_i_ii_combo, KC_PIPE),
- [R_L_PINKY_RING] = COMBO(ll_p_r_combo, KC_ENT),
- [R_L_RING_MIDDLE] = COMBO(ll_r_m_combo, LCTL(KC_W)),
- [R_L_RING_INDEX] = COMBO(ll_r_i_combo, KC_TAB),
- [R_L_MIDDLE_INDEX] = COMBO(ll_m_i_combo, KC_DEL),
- [R_L_INDEX_INNER_INDEX] = COMBO(ll_i_ii_combo, KC_TILD),
-
- // right hand combinations.
- [L_U_PINKY_RING] = COMBO(ru_p_r_combo, KC_BSPC),
- [L_U_RING_MIDDLE] = COMBO(ru_r_m_combo, KC_SLSH),
- [L_U_RING_INDEX] = COMBO(ru_r_i_combo, NXTTAB),
- [L_U_MIDDLE_INDEX] = COMBO(ru_m_i_combo, KC_MINS),
- [L_U_MIDDLE_INNER_INDEX] = COMBO(ru_m_ii_combo, KC_ENT),
- [L_U_INNER_INNER_INDEX] = COMBO(ru_i_ii_combo, KC_BSLS),
- [L_L_PINKY_RING] = COMBO(rl_p_r_combo, KC_BSLS),
- [L_L_RING_MIDDLE] = COMBO(rl_r_m_combo, KC_APP),
- [L_L_RING_INDEX] = COMBO(rl_r_i_combo, LSFT(KC_TAB)),
- [L_L_MIDDLE_INDEX] = COMBO(rl_m_i_combo, KC_DEL),
- [L_L_INDEX_INNER_INDEX] = COMBO(rl_i_ii_combo, KC_GRV),
-
- // both hand combinations.
- [B_L_MIDDLE_MIDDLE] = COMBO(bl_m_m_combo, KC_ENT),
-};
diff --git a/users/ibnuda/config.h b/users/ibnuda/config.h
deleted file mode 100644
index 957d24a04c..0000000000
--- a/users/ibnuda/config.h
+++ /dev/null
@@ -1,5 +0,0 @@
-#pragma once
-
-#define COMBO_TERM 50
-
-#define PERMISSIVE_HOLD
diff --git a/users/ibnuda/ibnuda.c b/users/ibnuda/ibnuda.c
deleted file mode 100644
index 8d5bd04ba0..0000000000
--- a/users/ibnuda/ibnuda.c
+++ /dev/null
@@ -1 +0,0 @@
-#include "ibnuda.h"
diff --git a/users/ibnuda/ibnuda.h b/users/ibnuda/ibnuda.h
deleted file mode 100644
index 6047b546ff..0000000000
--- a/users/ibnuda/ibnuda.h
+++ /dev/null
@@ -1,5 +0,0 @@
-#pragma once
-#include "quantum.h"
-
-#include "abstraction.h"
-#include "wrapper.h"
diff --git a/users/ibnuda/readme.md b/users/ibnuda/readme.md
deleted file mode 100644
index 24b8d6ba34..0000000000
--- a/users/ibnuda/readme.md
+++ /dev/null
@@ -1,14 +0,0 @@
-Copyright 2020 Ibnu D. Aji <iaji@siskam.link> @ibnuda
-
-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/>.
diff --git a/users/ibnuda/rules.mk b/users/ibnuda/rules.mk
deleted file mode 100644
index c4b096c4a0..0000000000
--- a/users/ibnuda/rules.mk
+++ /dev/null
@@ -1,8 +0,0 @@
-COMBO_ENABLE = yes
-CONSOLE_ENABLE = yes
-
-SRC += ibnuda.c
-
-ifeq ($(strip $(COMBO_ENABLE)), yes)
- SRC += combo.c
-endif
diff --git a/users/ibnuda/wrapper.h b/users/ibnuda/wrapper.h
deleted file mode 100644
index c85be9d6b1..0000000000
--- a/users/ibnuda/wrapper.h
+++ /dev/null
@@ -1,8 +0,0 @@
-#pragma once
-
-#if (!defined(LAYOUT) && defined(KEYMAP))
-# define LAYOUT KEYMAP
-#endif
-
-#define KEYMAP_wrapper(...) LAYOUT(__VA_ARGS__)
-#define LAYOUT_wrapper(...) LAYOUT(__VA_ARGS__)
diff --git a/users/imchipwood/imchipwood.c b/users/imchipwood/imchipwood.c
deleted file mode 100644
index 9d111c015b..0000000000
--- a/users/imchipwood/imchipwood.c
+++ /dev/null
@@ -1,141 +0,0 @@
-/* Copyright 2021 imchipwood
- *
- * 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 "imchipwood.h"
-
-static td_state_t td_state[3];
-
-// determine the tapdance state to return
-int cur_dance(tap_dance_state_t *state) {
- if (state->count == 1) {
- if (state->interrupted || !state->pressed) {
- return SINGLE_TAP;
- } else {
- return SINGLE_HOLD;
- }
- }
- if (state->count == 2) {
- return DOUBLE_TAP;
- } else {
- return 3;
- } // any number higher than the maximum state value you return above
-}
-
-void altf2_finished(tap_dance_state_t *state, void *user_data) {
- td_state[0] = cur_dance(state);
- switch (td_state[0]) {
- case SINGLE_TAP:
- register_code(KC_F2);
- break;
- case SINGLE_HOLD:
- register_mods(MOD_BIT(KC_LALT));
- break;
- case DOUBLE_TAP:
- register_mods(MOD_BIT(KC_LALT));
- tap_code(KC_F2);
- break;
- }
-}
-
-void altf2_reset(tap_dance_state_t *state, void *user_data) {
- switch (td_state[0]) {
- case SINGLE_TAP:
- unregister_code(KC_F2);
- break;
- case SINGLE_HOLD:
- unregister_mods(MOD_BIT(KC_LALT));
- break;
- case DOUBLE_TAP:
- unregister_code(KC_F2);
- unregister_mods(MOD_BIT(KC_LALT));
- break;
- }
-}
-
-
-void ctlf5_finished(tap_dance_state_t *state, void *user_data) {
- td_state[1] = cur_dance(state);
- switch (td_state[1]) {
- case SINGLE_TAP:
- register_code(KC_F5);
- break;
- case SINGLE_HOLD:
- register_mods(MOD_BIT(KC_LCTL));
- break;
- case DOUBLE_TAP:
- register_mods(MOD_BIT(KC_LCTL));
- tap_code(KC_F5);
- break;
- }
-}
-
-void ctlf5_reset(tap_dance_state_t *state, void *user_data) {
- switch (td_state[1]) {
- case SINGLE_TAP:
- unregister_code(KC_F5);
- break;
- case SINGLE_HOLD:
- unregister_mods(MOD_BIT(KC_LCTL));
- break;
- case DOUBLE_TAP:
- unregister_code(KC_F5);
- unregister_mods(MOD_BIT(KC_LCTL));
- break;
- }
-}
-
-void altf7_finished(tap_dance_state_t *state, void *user_data) {
- td_state[2] = cur_dance(state);
- switch (td_state[2]) {
- case SINGLE_TAP:
- register_code(KC_F7);
- break;
- case SINGLE_HOLD:
- register_mods(MOD_BIT(KC_LALT));
- break;
- case DOUBLE_TAP:
- register_mods(MOD_BIT(KC_LALT));
- tap_code(KC_F7);
- break;
- }
-}
-
-void altf7_reset(tap_dance_state_t *state, void *user_data) {
- switch (td_state[2]) {
- case SINGLE_TAP:
- unregister_code(KC_F7);
- break;
- case SINGLE_HOLD:
- unregister_mods(MOD_BIT(KC_LALT));
- break;
- case DOUBLE_TAP:
- unregister_code(KC_F7);
- unregister_mods(MOD_BIT(KC_LALT));
- break;
- }
-}
-
-tap_dance_action_t tap_dance_actions[] = {
- [ALT_F2] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, altf2_finished, altf2_reset),
- [CTL_F5] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, ctlf5_finished, ctlf5_reset),
- [ALT_F7] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, altf7_finished, altf7_reset),
- [DEL_NLCK] = ACTION_TAP_DANCE_DOUBLE(KC_DEL, KC_NUM),
- // Double tap right -> END
- [TD_REND] = ACTION_TAP_DANCE_DOUBLE(KC_RIGHT, KC_END),
- // Double tap left -> HOME
- [TD_LOME] = ACTION_TAP_DANCE_DOUBLE(KC_LEFT, KC_HOME),
- // Double tap right shift -> CAPS LOCK
- [TD_RSFT_CAPS] = ACTION_TAP_DANCE_DOUBLE(KC_RSFT, KC_CAPS),
-};
diff --git a/users/imchipwood/imchipwood.h b/users/imchipwood/imchipwood.h
deleted file mode 100644
index 1e4bc3f744..0000000000
--- a/users/imchipwood/imchipwood.h
+++ /dev/null
@@ -1,51 +0,0 @@
-/* Copyright 2021 imchipwood
- *
- * 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"
-
-// change the tapping term to a little bit quicker
-#ifdef TAPPING_TERM
- #undef TAPPING_TERM
-#endif
-#define TAPPING_TERM 175
-
-#ifdef TAPPING_TOGGLE
- #undef TAPPING_TOGGLE
-#endif
-#define TAPPING_TOGGLE 2
-
-
-enum td_keycodes {
- TD_REND = 0, // right when tapped, end when double tapped
- TD_LOME, // left when tapped, home when double tapped
- TD_RSFT_CAPS,
- ALT_F2, // F2 when tapped, LALT when held, LALT+F2 when double tapped
- CTL_F5, // F5 when tapped, LCTL when held, LCTL+F5 when double tapped
- ALT_F7, // F7 when tapped, LALT when held, LALT+F7 when double tapped
- DEL_NLCK, // DEL when tapped, NUMLOCK when double tapped
-};
-
-
-typedef enum { SINGLE_TAP, SINGLE_HOLD, DOUBLE_TAP } td_state_t;
-int cur_dance(tap_dance_state_t *state);
-
-void altf2_finished(tap_dance_state_t *state, void *user_data);
-void altf2_reset(tap_dance_state_t *state, void *user_data);
-void ctlf5_finished(tap_dance_state_t *state, void *user_data);
-void ctlf5_reset(tap_dance_state_t *state, void *user_data);
-void altf7_finished(tap_dance_state_t *state, void *user_data);
-void altf7_reset(tap_dance_state_t *state, void *user_data);
diff --git a/users/imchipwood/rules.mk b/users/imchipwood/rules.mk
deleted file mode 100644
index 87cca5b5e2..0000000000
--- a/users/imchipwood/rules.mk
+++ /dev/null
@@ -1,2 +0,0 @@
-SRC += imchipwood.c
-TAP_DANCE_ENABLE=yes
diff --git a/users/ishtob/config.h b/users/ishtob/config.h
deleted file mode 100755
index 993521acc4..0000000000
--- a/users/ishtob/config.h
+++ /dev/null
@@ -1,68 +0,0 @@
-#ifndef CONFIG_USER_H
-#define CONFIG_USER_H
-
-
-#ifdef AUDIO_ENABLE
- #define STARTUP_SONG SONG(PLANCK_SOUND)
- // #define STARTUP_SONG SONG(NO_SOUND)
-
- #define DEFAULT_LAYER_SONGS { SONG(QWERTY_SOUND), \
- SONG(COLEMAK_SOUND), \
- SONG(DVORAK_SOUND) \
- }
-#endif
-
-//#define LEADER_TIMEOUT 300
-//#define PERMISSIVE_HOLD
-
-//audio clicky
- //#define AUDIO_CLICKY
- // to enable clicky on startup
- //#define AUDIO_CLICKY_ON
- //#define AUDIO_CLICKY_FREQ_RANDOMNESS 1.0f
-
-/* ws2812 RGB LED
-#define WS2812_DI_PIN B5
-#define RGBLED_NUM 8 // Number of LEDs
-#define RGBLIGHT_HUE_STEP 10
-#define RGBLIGHT_SAT_STEP 17
-*/
-#undef PLANCK_MIT_LAYOUT
-
-//#define MUON_LEFT
-
-#undef DEBOUNCE
-#define DEBOUNCE 0
-
-//rgb-reactive
-//#define RGB_MATRIX_KEYPRESSES
-//#define EECONFIG_RGB_MATRIX (uint32_t *)16
-
-//skip usb startup check
-//#define NO_USB_STARTUP_CHECK
-
-
-/*
- * MIDI options
- */
-
-/* enable basic MIDI features:
- - MIDI notes can be sent when in Music mode is on
-*/
-#define MIDI_BASIC
-
-/* enable advanced MIDI features:
- - MIDI notes can be added to the keymap
- - Octave shift and transpose
- - Virtual sustain, portamento, and modulation wheel
- - etc.
-*/
-//#define MIDI_ADVANCED
-
-/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
-//#define MIDI_TONE_KEYCODE_OCTAVES 2
-
-// Most tactile encoders have detents every 4 stages
-#define ENCODER_RESOLUTION 4
-
-#endif
diff --git a/users/ishtob/ishtob.c b/users/ishtob/ishtob.c
deleted file mode 100644
index 1b847d6306..0000000000
--- a/users/ishtob/ishtob.c
+++ /dev/null
@@ -1,69 +0,0 @@
-/*
-Based on userspace written by @drashna 2017
-Copyright 2018 Hsian Chang <ishtob@gmail.com> @ishtob
-
-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 "ishtob.h"
-#include "action.h"
-#include "action_layer.h"
-// #include "dynamic_macro.h"
-#ifdef AUDIO_ENABLE
- #include "audio.h"
-#endif
-
-
-// Add reconfigurable functions here, for keymap customization
-// This allows for a global, userspace functions, and continued
-// customization of the keymap. Use _keymap instead of _user
-// functions in the keymaps
-__attribute__ ((weak))
-void matrix_init_keymap(void) {}
-
-__attribute__ ((weak))
-void matrix_scan_keymap(void) {}
-
-__attribute__ ((weak))
-bool process_record_keymap(uint16_t keycode, keyrecord_t *record) {
- return true;
-}
-
-__attribute__ ((weak))
-bool process_record_secrets(uint16_t keycode, keyrecord_t *record) {
- return true;
-}
-
-// Call user matrix init, then call the keymap's init function
-void matrix_init_user(void) {
- matrix_init_keymap();
-}
-
-// No global matrix scan code, so just run keymap's matix
-// scan function
-void matrix_scan_user(void) {
- matrix_scan_keymap();
-}
-
-bool process_record_user(uint16_t keycode, keyrecord_t *record) {
- switch (keycode) {
- case DFU:
- if (record->event.pressed) {
- clear_keyboard();
- reset_keyboard();
- }
- return false;
- break;
- }
- return process_record_keymap(keycode, record) && process_record_secrets(keycode, record);
-}
-
diff --git a/users/ishtob/ishtob.h b/users/ishtob/ishtob.h
deleted file mode 100644
index fcc2e2b847..0000000000
--- a/users/ishtob/ishtob.h
+++ /dev/null
@@ -1,237 +0,0 @@
-#ifndef USERSPACE
-#define USERSPACE
-#include QMK_KEYBOARD_H
-
-enum userspace_keycodes {
- QWERTY = SAFE_RANGE,
- COLEMAK,
- DVORAK,
- PLOVER,
- LOWER,
- RAISE,
- BACKLIT,
- EXT_PLV,
- DFU,
- P_CITRIX, //these macro exsists in macros_private.c, which is excluded from git
- P_MPASS,
- P_META,
- O_DAYRN,
- O_RTQ6H,
- O_3DRN,
- O_AUTODC,
- M_EMAIL,
- M_EMAIL2
-};
-
-// Each layer gets a name for readability, which is then used in the keymap matrix below.
-// The underscores don't mean anything - you can have a layer called STUFF or any other name.
-// Layer names don't all need to be of the same length, obviously, and you can also skip them
-// entirely and just use numbers.
-#define _QWERTY 0
-#define _COLEMAK 1
-#define _DVORAK 2
-#define _LOWER 3
-#define _RAISE 4
-#define _PLOVER 5
-#define _FNLAYER 6
-#define _NUMLAY 7
-#define _MOUSECURSOR 8
-#define _ADJUST 9
-
-
-
-#define LOWER MO(_LOWER)
-#define RAISE MO(_RAISE)
-
-// Custom macros
-#define CTL_ESC CTL_T(KC_ESC) // Tap for Esc, hold for Ctrl
-#define CTL_TTAB CTL_T(KC_TAB) // Tap for Esc, hold for Ctrl
-#define CTL_ENT CTL_T(KC_ENT) // Tap for Enter, hold for Ctrl
-#define SFT_ENT SFT_T(KC_ENT) // Tap for Enter, hold for Shift
-// Requires KC_TRNS/_______ for the trigger key in the destination layer
-#define LT_FN(kc) LT(_FNLAYER, kc) // L-ayer T-ap Function Layer
-#define LT_MC(kc) LT(_MOUSECURSOR, kc) // L-ayer T-ap M-ouse C-ursor
-#define LT_RAI(kc) LT(_RAISE, kc) // L-ayer T-ap to Raise
-#define TG_NUMLAY TG(_NUMLAY) //Toggle for layer _NUMLAY
-/*
-enum userspace_layers {
- _QWERTY = 0,
- _COLEMAK,
- _DVORAK,
- _LOWER,
- _RAISE,
- _PLOVER,
- _FNLAYER,
- _NUMLAY,
- _MOUSECURSOR,
- _ADJUST
-};
-*/
-
-/*
-Since our quirky block definitions are basically a list of comma separated
-arguments, we need a wrapper in order for these definitions to be
-expanded before being used as arguments to the LAYOUT_xxx macro.
-*/
-#if (!defined(LAYOUT) && defined(KEYMAP))
-#define LAYOUT KEYMAP
-#endif
-
-#define LAYOUT_ergodox_wrapper(...) LAYOUT_ergodox(__VA_ARGS__)
-#define LAYOUT_ergodox_pretty_wrapper(...) LAYOUT_ergodox_pretty(__VA_ARGS__)
-#define KEYMAP_wrapper(...) LAYOUT(__VA_ARGS__)
-#define LAYOUT_wrapper(...) LAYOUT(__VA_ARGS__)
-#define LAYOUT_ortho_4x12_wrapper(...) LAYOUT_ortho_4x12(__VA_ARGS__)
-
-/*
-Blocks for each of the four major keyboard layouts
-Organized so we can quickly adapt and modify all of them
-at once, rather than for each keyboard, one at a time.
-And this allows for much cleaner blocks in the keymaps.
-For instance Tap/Hold for Control on all of the layouts
-
-NOTE: These are all the same length. If you do a search/replace
- then you need to add/remove underscores to keep the
- lengths consistent.
-*/
-
-#define _________________QWERTY_L1_________________ KC_Q, KC_W, KC_E, KC_R, KC_T
-#define _________________QWERTY_L2_________________ KC_A, KC_S, KC_D, KC_F, KC_G
-#define _________________QWERTY_L3_________________ KC_Z, KC_X, KC_C, KC_V, KC_B
-
-#define _________________QWERTY_R1_________________ KC_Y, KC_U, KC_I, KC_O, KC_P
-#define _________________QWERTY_R2_________________ KC_H, KC_J, KC_K, KC_L, LT_MC(KC_SCLN)
-#define _________________QWERTY_R3_________________ KC_N, KC_M, KC_COMM, KC_DOT, KC_SLASH
-
-
-#define _________________COLEMAK_L1________________ KC_Q, KC_W, KC_F, KC_P, KC_G
-#define _________________COLEMAK_L2________________ KC_A, KC_R, KC_S, KC_T, KC_D
-#define _________________COLEMAK_L3________________ KC_Z, KC_X, KC_C, KC_V, KC_B
-
-#define _________________COLEMAK_R1________________ KC_J, KC_L, KC_U, KC_Y, KC_SCLN
-#define _________________COLEMAK_R2________________ KC_H, KC_N, KC_E, KC_I, LT_MC(KC_O)
-#define _________________COLEMAK_R3________________ KC_K, KC_M, KC_COMM, KC_DOT, KC_SLASH
-
-#define ______________COLEMAK_MOD_DH_L1____________ KC_Q, KC_W, KC_F, KC_P, KC_B
-#define ______________COLEMAK_MOD_DH_L2____________ KC_A, KC_R, KC_S, KC_T, KC_G
-#define ______________COLEMAK_MOD_DH_L3____________ KC_Z, KC_X, KC_C, KC_D, KC_V
-
-#define ______________COLEMAK_MOD_DH_R1____________ KC_J, KC_L, KC_U, KC_Y, KC_SCLN
-#define ______________COLEMAK_MOD_DH_R2____________ KC_M, KC_N, KC_E, KC_I, LT_MC(KC_O)
-#define ______________COLEMAK_MOD_DH_R3____________ KC_K, KC_H, KC_COMM, KC_DOT, KC_SLASH
-
-
-#define _________________DVORAK_L1_________________ KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y
-#define _________________DVORAK_L2_________________ KC_A, KC_O, KC_E, KC_U, KC_I
-#define _________________DVORAK_L3_________________ KC_SCLN, KC_Q, KC_J, KC_K, KC_X
-
-#define _________________DVORAK_R1_________________ KC_F, KC_G, KC_C, KC_R, KC_L
-#define _________________DVORAK_R2_________________ KC_D, KC_H, KC_T, KC_N, LT_MC(KC_S)
-#define _________________DVORAK_R3_________________ KC_B, KC_M, KC_W, KC_V, KC_Z
-
-
-#define _________________WORKMAN_L1________________ KC_Q, KC_D, KC_R, KC_W, KC_B
-#define _________________WORKMAN_L2________________ KC_A, KC_S, KC_H, KC_T, KC_G
-#define _________________WORKMAN_L3________________ KC_Z, KC_X, KC_M, KC_C, KC_V
-
-#define _________________WORKMAN_R1________________ KC_J, KC_F, KC_U, KC_P, KC_SCLN
-#define _________________WORKMAN_R2________________ KC_Y, KC_N, KC_E, KC_O, LT_MC(KC_I)
-#define _________________WORKMAN_R3________________ KC_K, KC_L, KC_COMM, KC_DOT, KC_SLASH
-
-
-#define _________________NORMAN_L1_________________ KC_Q, KC_W, KC_D, KC_F, KC_K
-#define _________________NORMAN_L2_________________ KC_A, KC_S, KC_E, KC_T, KC_G
-#define _________________NORMAN_L3_________________ KC_Z, KC_X, KC_C, KC_V, KC_B
-
-#define _________________NORMAN_R1_________________ KC_J, KC_U, KC_R, KC_L, KC_SCLN
-#define _________________NORMAN_R2_________________ KC_Y, KC_N, KC_I, KC_O, LT_MC(KC_U)
-#define _________________NORMAN_R3_________________ KC_P, KC_M, KC_COMM, KC_DOT, KC_SLASH
-
-
-#define _________________MALTRON_L1________________ KC_Q, KC_P, KC_Y, KC_C, KC_B
-#define _________________MALTRON_L2________________ KC_A, KC_N, KC_I, KC_S, KC_F
-#define _________________MALTRON_L3________________ KC_SCLN, KC_SLSH, KC_J KC_G, KC_COMM
-
-#define _________________MALTRON_R1________________ KC_V, KC_M, KC_U, KC_Z, KC_L
-#define _________________MALTRON_R2________________ KC_D, KC_T, KC_D, KC_O, LT_MC(KC_R)
-#define _________________MALTRON_R3________________ KC_DOT, KC_W, KC_K, KC_MINS, KC_X
-
-
-#define _________________EUCALYN_L1________________ KC_SLSH, KC_COMM, KC_DOT, KC_F, KC_Q
-#define _________________EUCALYN_L2________________ KC_A, KC_O, KC_E, KC_I, KC_U
-#define _________________EUCALYN_L3________________ KC_Z, KC_X, KC_C, KC_V, KC_W
-
-#define _________________EUCALYN_R1________________ KC_M, KC_R, KC_D, KC_Y, KC_P
-#define _________________EUCALYN_R2________________ KC_G, KC_T, KC_K, KC_S, LT_MC(KC_N)
-#define _________________EUCALYN_R3________________ KC_B, KC_H, KC_J, KC_L, KC_SCLN
-
-
-#define _____________CARPLAX_QFMLWY_L1_____________ KC_Q, KC_F, KC_M, KC_L, KC_W
-#define _____________CARPLAX_QFMLWY_L2_____________ KC_D, KC_S, KC_T, KC_N, KC_R
-#define _____________CARPLAX_QFMLWY_L3_____________ KC_Z, KC_V, KC_G, KC_C, KC_X
-
-#define _____________CARPLAX_QFMLWY_R1_____________ KC_Y, KC_U, KC_O, KC_B, KC_J
-#define _____________CARPLAX_QFMLWY_R2_____________ KC_I, KC_A, KC_E, KC_H, LT_MC(KC_SCLN)
-#define _____________CARPLAX_QFMLWY_R3_____________ KC_P, KC_K, KC_COMM, KC_DOT, KC_SLSH
-
-
-#define _____________CARPLAX_QGMLWB_L1_____________ KC_Q, KC_G, KC_M, KC_L, KC_W
-#define _____________CARPLAX_QGMLWB_L2_____________ KC_D, KC_S, KC_T, KC_N, KC_R
-#define _____________CARPLAX_QGMLWB_L3_____________ KC_Z, KC_X, KC_C, KC_F, KC_J
-
-#define _____________CARPLAX_QGMLWB_R1_____________ KC_B, KC_Y, KC_U, KC_V, KC_SCLN
-#define _____________CARPLAX_QGMLWB_R2_____________ KC_I, KC_A, KC_E, KC_O, LT_MC(KC_H)
-#define _____________CARPLAX_QGMLWB_R3_____________ KC_K, KC_P, KC_COMM, KC_DOT, KC_SLSH
-
-
-#define _____________CARPLAX_QGMLWY_L1_____________ KC_Q, KC_G, KC_M, KC_L, KC_W
-#define _____________CARPLAX_QGMLWY_L2_____________ KC_D, KC_S, KC_T, KC_N, KC_R
-#define _____________CARPLAX_QGMLWY_L3_____________ KC_Z, KC_X, KC_C, KC_V, KC_J
-
-#define _____________CARPLAX_QGMLWY_R1_____________ KC_Y, KC_F, KC_U, KC_B, KC_SCLN
-#define _____________CARPLAX_QGMLWY_R2_____________ KC_I, KC_A, KC_E, KC_O, LT_MC(KC_H)
-#define _____________CARPLAX_QGMLWY_R3_____________ KC_K, KC_P, KC_COMM, KC_DOT, KC_SLSH
-
-
-#define ________________NUMBER_LEFT________________ KC_1, KC_2, KC_3, KC_4, KC_5
-#define ________________NUMBER_RIGHT_______________ KC_6, KC_7, KC_8, KC_9, KC_0
-#define _________________FUNC_LEFT_________________ KC_F1, KC_F2, KC_F3, KC_F4, KC_F5
-#define _________________FUNC_RIGHT________________ KC_F6, KC_F7, KC_F8, KC_F9, KC_F10
-
-#define __________________LONG_FUNC_LEFT___________________ KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6
-#define __________________LONG_FUNC_RIGHT__________________ KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12
-
-#define ___________________BLANK___________________ _______, _______, _______, _______, _______
-
-
-#define _________________LOWER_L1__________________ KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC
-#define _________________LOWER_L2__________________ _________________FUNC_LEFT_________________
-#define _________________LOWER_L3__________________ _________________FUNC_RIGHT________________
-
-#define _________________LOWER_R1__________________ KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN
-#define _________________LOWER_R2__________________ _______, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR
-#define _________________LOWER_R3__________________ _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT
-
-
-
-#define _________________RAISE_L1__________________ ________________NUMBER_LEFT________________
-#define _________________RAISE_L2__________________ ___________________BLANK___________________
-#define _________________RAISE_L3__________________ ___________________BLANK___________________
-
-#define _________________RAISE_R1__________________ ________________NUMBER_RIGHT_______________
-#define _________________RAISE_R2__________________ _______, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC
-#define _________________RAISE_R3__________________ _______, KC_HOME, KC_PGDN, KC_PGUP, KC_END
-
-
-
-#define _________________ADJUST_L1_________________ RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, RGB_TOG
-#define _________________ADJUST_L2_________________ MU_TOGG, CK_TOGG, AU_ON, AU_OFF, AG_NORM
-#define _________________ADJUST_L3_________________ RGB_RMOD,RGB_HUD,RGB_SAD, RGB_VAD, KC_RGB_T
-
-#define _________________ADJUST_R1_________________ KC_SEC1, KC_SEC2, KC_SEC3, KC_SEC4, KC_SEC5
-#define _________________ADJUST_R2_________________ AG_SWAP, QWERTY, COLEMAK, DVORAK, WORKMAN
-#define _________________ADJUST_R3_________________ MG_NKRO, KC_MUTE, KC_VOLD, KC_VOLU, KC_MNXT
-
-
-
-#endif // !USERSPACE
diff --git a/users/ishtob/readme.md b/users/ishtob/readme.md
deleted file mode 100644
index 5b7064de9e..0000000000
--- a/users/ishtob/readme.md
+++ /dev/null
@@ -1,87 +0,0 @@
-# Ishtob's userspace
-
-under developement
-
-# Secret Macros
-
-This section is a modified version of what @drashna did in his userspace: https://github.com/qmk/qmk_firmware/tree/master/users/drashna#secret-macros
-
-`macros_private.c` will be used if it exsists in the userspace folder during compiling.
-
-To get started, put the following in rules.mk. this will have the compiler include the macros_private.c file if it exsists.
-```
-SRC += ishtob.c
-ifneq ($(wildcard $(USER_PATH)/macros_private.c),"")
- SRC += macros_private.c
-endif
-ifeq ($(strip $(NO_SECRETS)), yes)
- OPT_DEFS += -DNO_SECRETS
-endif
-```
-
-Remember that all macro keycode has to be present in the header file (ishtob.h) to prevent error during compile.
-
-Next, you setup macros_private.c, ensure the keycodes are defined in ishtob.h (or your keymap.h).
-Here is an example of my macros with the sensitive login information removed:
-```
-#include "ishtob.h" //replace this with your userspace or keymap
-#include "quantum.h"
-
-#pragma message "secret macros included" //debug line to let me know this file is included in the compile
-
-//this str is for the monthly password rotation per my workplace's security policy
-char my_str[5] = "stuff";
-
-bool process_record_secrets(uint16_t keycode, keyrecord_t *record) {
- if (record->event.pressed) {
- switch(keycode) {
- //my login macros
- case P_CITRIX:
- SEND_STRING("username"SS_TAP(X_TAB)"something");
- send_string(my_str);
- return false;
- case P_MPASS:
- SEND_STRING("something");
- send_string(my_str);
- return false;
- case P_META:
- SEND_STRING("metausername");
- return false;
- //my work macros for the meta application
- case O_RTQ6H:
- SEND_STRING(SS_TAP(X_TAB)"0300"SS_TAP(X_TAB)SS_TAP(X_DOWN)SS_TAP(X_TAB)"0900"SS_TAP(X_TAB)SS_TAP(X_DOWN)SS_TAP(X_TAB)"1500"SS_TAP(X_TAB)SS_TAP(X_DOWN)SS_TAP(X_TAB)"2100"SS_TAP(X_TAB)SS_LALT("o"));
- return false;
- case O_AUTODC:
- SEND_STRING(SS_LALT("v")SS_TAP(X_TAB)SS_TAP(X_TAB)SS_TAP(X_TAB)SS_TAP(X_TAB)SS_TAP(X_TAB)SS_TAP(X_TAB)SS_TAP(X_TAB)SS_TAP(X_TAB)SS_TAP(X_TAB)"T"SS_TAP(X_TAB)"N"SS_LALT("s"));
- return false;
- case O_DAYRN:
- SEND_STRING(SS_TAP(X_TAB)SS_TAP(X_TAB)SS_TAP(X_TAB)SS_TAP(X_TAB)SS_TAP(X_TAB)"1"SS_LALT("s"));
- return false;
- //Ops macros
- case M_EMAIL:
- SEND_STRING("privatemail@email.com");
- return false;
- case M_EMAIL2:
- SEND_STRING("workemail@work.com");
- return false;
- }
- }
- return true;
-}
-```
-
-
-Finally, add the following to .git/info/exclude to prevent private macros from being committed to git.
-```
-# git ls-files --others --exclude-from=.git/info/exclude
-# Lines that start with '#' are comments.
-# For a project mostly in C, the following would be a good set of
-# exclude patterns (uncomment them if you want to use them):
-# *.[oa]
-# *~
-/users/ishtob/macros_private.c
-```
-
-# Special mentions
-
-special thanks to @drashna for helping me through quite a bit of these codes. \ No newline at end of file
diff --git a/users/ishtob/rules.mk b/users/ishtob/rules.mk
deleted file mode 100755
index 909502b50a..0000000000
--- a/users/ishtob/rules.mk
+++ /dev/null
@@ -1,7 +0,0 @@
-SRC += ishtob.c
-ifneq ("$(wildcard $(USER_PATH)/macros_private.c)","")
- SRC += macros_private.c
-endif
-ifeq ($(strip $(NO_SECRETS)), yes)
- OPT_DEFS += -DNO_SECRETS
-endif
diff --git a/users/issmirnov/config.h b/users/issmirnov/config.h
deleted file mode 100644
index a74f6fbc91..0000000000
--- a/users/issmirnov/config.h
+++ /dev/null
@@ -1,41 +0,0 @@
-#pragma once
-
-// how long before a tap becomes a hold
-#undef TAPPING_TERM
-#define TAPPING_TERM 100
-
-// makes tap and hold keys work better for fast typers who don't want
-// tapping term set above 500
-#define PERMISSIVE_HOLD
-
-// tap anyway, even after TAPPING_TERM, if there was no other key
-// interruption between press and release
-#define RETRO_TAPPING
-
-// how many taps before triggering the toggle
-#undef ONESHOT_TAP_TOGGLE
-#define ONESHOT_TAP_TOGGLE 2
-
-// how long before oneshot modifier key times out (currently only shift)
-#undef ONESHOT_TIMEOUT
-#define ONESHOT_TIMEOUT 2000
-
-// Enable combos for vim
-#define COMBO_TERM 50 // window in milliseconds to trigger combo
-
-// Allow more than 4 keys to be sent to the system. Useful for gaming.
-// #define FORCE_NKRO
-
-// Save 200 bytes on unused keycodes
-#undef LOCKING_SUPPORT_ENABLE
-#undef LOCKING_RESYNC_ENABLE
-
-// Enable HID_listen commands.
-#define NO_DEBUG
-#undef NO_PRINT
-#define USER_PRINT
-
-// Note: Defining the following does not have any impact on space:
-// - NO_ACTION_MACRO
-// - NO_ACTION_FUNCTION
-// - DISABLE_LEADER
diff --git a/users/issmirnov/issmirnov.c b/users/issmirnov/issmirnov.c
deleted file mode 100644
index ecfb423ee2..0000000000
--- a/users/issmirnov/issmirnov.c
+++ /dev/null
@@ -1,41 +0,0 @@
-#include "issmirnov.h"
-
-enum combo_events {
- JK_ESC,
- DF_CLN,
- SD_SLASH,
- XC_COPY,
- XV_PASTE
-};
-
-
-const uint16_t PROGMEM jk_combo[] = {KC_J, KC_K, COMBO_END};
-const uint16_t PROGMEM df_combo[] = {KC_D, KC_F, COMBO_END};
-const uint16_t PROGMEM sd_combo[] = {KC_S, KC_D, COMBO_END};
-const uint16_t PROGMEM copy_combo[] = {KC_X, KC_C, COMBO_END};
-const uint16_t PROGMEM paste_combo[] = {KC_X, KC_V, COMBO_END};
-
-combo_t key_combos[] = {
- COMBO(jk_combo, KC_ESC),
- COMBO(df_combo, KC_COLON),
- COMBO(sd_combo, KC_SLASH),
- [XC_COPY] = COMBO_ACTION(copy_combo),
- [XV_PASTE] = COMBO_ACTION(paste_combo),
-};
-
-
-void process_combo_event(uint16_t combo_index, bool pressed) {
- switch(combo_index) {
- case XC_COPY:
- if (pressed) {
- tap_code16(LCTL(KC_C));
- }
- break;
-
- case XV_PASTE:
- if (pressed) {
- tap_code16(LCTL(KC_V));
- }
- break;
- }
-}
diff --git a/users/issmirnov/issmirnov.h b/users/issmirnov/issmirnov.h
deleted file mode 100644
index eef80dfc47..0000000000
--- a/users/issmirnov/issmirnov.h
+++ /dev/null
@@ -1,35 +0,0 @@
-#pragma once
-
-#include QMK_KEYBOARD_H
-
-#include "rows.h"
-
-// Each layer gets a name for readability, which is then used in the keymap matrix below.
-// The underscores don't mean anything - you can have a layer called STUFF or any other name.
-// Layer names don't all need to be of the same length, obviously, and you can also skip them
-// entirely and just use numbers
-enum {
- _QWERTY = 0,
- _SYMB,
- _NUMP,
- _OVERWATCH,
- _NAVI
-};
-
-enum custom_keycodes {
- PLACEHOLDER = SAFE_RANGE,
- TAP_TOG_LAYER,
- CLEAR_EEPROM,
- WKSP_LEFT, // Smart key that only activates when we are momentarily in a layer
- WKSP_RIGHT, // Smart key that only activates when we are momentarily in a layer
-};
-
-
-#define LOWER MO(_SYMB)
-#define RAISE MO(_NUMP)
-
-#define CTL_SPC MT(MOD_LCTL, KC_SPC)
-#define OSMSFT OSM(MOD_LSFT)
-#define LOCK LGUI(KC_L)
-#define MODSFT LSFT(KC_LGUI)
-#define APPS LGUI(KC_SPC)
diff --git a/users/issmirnov/rows.h b/users/issmirnov/rows.h
deleted file mode 100644
index bac91d641b..0000000000
--- a/users/issmirnov/rows.h
+++ /dev/null
@@ -1,55 +0,0 @@
-#pragma once
-
-#include QMK_KEYBOARD_H
-
-// This wrapper is required in order to expand the row macro inside the keymap configs.
-#define LAYOUT_ergodox_wrapper(...) LAYOUT_ergodox(__VA_ARGS__)
-#define LAYOUT_ortho_4x12_wrapper(...) LAYOUT_ortho_4x12(__VA_ARGS__)
-
-// Share common config. We'll skip the mod rows and func rows.
-// Note, it's also really neat the way the scoping works. Since we perform the expansion in the keymap.c file
-// so we can use our enums for custom keycodes
-#define _________________QWERTY_L1_________________ KC_Q , KC_W , KC_E , KC_R , KC_T
-#define _________________QWERTY_L2_________________ KC_A , KC_S , KC_D , KC_F , KC_G
-#define _________________QWERTY_L3_________________ KC_Z , KC_X , KC_C , KC_V , KC_B
-
-#define _________________QWERTY_R1_________________ KC_Y , KC_U , KC_I , KC_O , KC_P
-#define _________________QWERTY_R2_________________ KC_H , KC_J , KC_K , KC_L , TAP_TOG_LAYER
-#define _________________QWERTY_R3_________________ KC_N , KC_M , KC_DOT , KC_COMMA , TG(_NUMP)
-
-#define ___________________BLANK___________________ _______ , _______ , _______ , _______ , _______
-#define ___________________XXXXX___________________ XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX
-
-#define _________________SYMB_L1___________________ KC_MINS , KC_AT , KC_LCBR , KC_RCBR , KC_GRV
-#define _________________SYMB_L2___________________ KC_CIRC , KC_UNDS , KC_LPRN , KC_RPRN , KC_DLR
-#define _________________SYMB_L3___________________ KC_LABK , KC_RABK , KC_LBRC , KC_RBRC , KC_TILD
-
-#define _________________SYMB_R1___________________ KC_ASTR , KC_EXLM , KC_PIPE , KC_PERC , KC_PLUS
-#define _________________SYMB_R2___________________ KC_HASH , KC_EQL , KC_COLN , KC_SCLN , TAP_TOG_LAYER
-#define _________________SYMB_R3___________________ KC_AMPR , KC_QUES , KC_SLASH , KC_BSLS , TG(_NUMP)
-
-
-#define _________________NUMP_L1___________________ KC_NO , KC_NO , LGUI(KC_UP) , XXXXXXX , XXXXXXX
-#define _________________NUMP_L2___________________ XXXXXXX , LGUI(KC_LEFT) , LGUI(KC_DOWN) , LGUI(KC_RIGHT) , XXXXXXX
-#define _________________NUMP_L3___________________ XXXXXXX , XXXXXXX , XXXXXXX , KC_AUDIO_VOL_DOWN , KC_AUDIO_VOL_UP
-
-#define _________________NUMP_R1___________________ KC_COMM , KC_7 , KC_8 , KC_9 , XXXXXXX
-#define _________________NUMP_R2___________________ KC_0 , KC_4 , KC_5 , KC_6 , TO(_SYMB)
-#define _________________NUMP_R3___________________ KC_DOT , KC_1 , KC_2 , KC_3 , TO(_QWERTY)
-
-// Note: These are 6x1 blocks, since modifiers are also adjusted.
-#define ______________OVERWATCH_L1_________________ KC_TAB , KC_Q , KC_W , KC_E , KC_R , KC_T
-#define ______________OVERWATCH_L2_________________ KC_LCTL , KC_A , KC_S , KC_D , KC_F , KC_P
-#define ______________OVERWATCH_L3_________________ KC_LSFT , KC_Z , KC_X , KC_C , KC_V , KC_GRAVE
-// Ergodox only has 5 keys on bottom row:
-#define ______________OVERWATCH_L4_________________ KC_LCTL , KC_F9 , KC_PSCR , KC_H , KC_R
-
-
-
-#define _________________NAVI_L1___________________ XXXXXXX , XXXXXXX , KC_UP , XXXXXXX , XXXXXXX
-#define _________________NAVI_L2___________________ XXXXXXX , KC_LEFT , KC_DOWN , KC_RGHT , XXXXXXX
-#define _________________NAVI_L3___________________ XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX
-
-#define _________________NAVI_R1___________________ XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX
-#define _________________NAVI_R2___________________ XXXXXXX , KC_LCTL , XXXXXXX , XXXXXXX , XXXXXXX
-#define _________________NAVI_R3___________________ XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX
diff --git a/users/issmirnov/rules.mk b/users/issmirnov/rules.mk
deleted file mode 100644
index d96083f7d1..0000000000
--- a/users/issmirnov/rules.mk
+++ /dev/null
@@ -1,25 +0,0 @@
-
-SRC += tap_tog.c
-SRC += issmirnov.c
-
-# https://www.reddit.com/r/olkb/comments/bmpgjm/programming_help/
-# Should shave 2000 bytes
-LTO_ENABLE = yes
-
-# Enable debugging only when needed.
-CONSOLE_ENABLE = yes # +400 bytes (hid_listen support)
-
-# Enable combo keys for vim usage.
-# https://github.com/qmk/qmk_firmware/blob/master/docs/feature_combo.md
-COMBO_ENABLE = yes
-
-# This allows the keyboard to tell the host OS that up to 248 keys are held down at once
-NKRO_ENABLE = no # note: also needs FORCE_NKRO in config.h
-
-# Disable unused features to save on space
-# https://thomasbaart.nl/2018/12/01/reducing-firmware-size-in-qmk/
-MOUSEKEY_ENABLE = no # 2000 bytes
-BOOTMAGIC_ENABLE = no # Enable Bootmagic Lite
-COMMAND_ENABLE = no # https://beta.docs.qmk.fm/features/feature_command
-UNICODE_ENABLE = no # Unicode
-SWAP_HANDS_ENABLE = no # Allow swapping hands of keyboard
diff --git a/users/issmirnov/tap_tog.c b/users/issmirnov/tap_tog.c
deleted file mode 100644
index 02cea08b1d..0000000000
--- a/users/issmirnov/tap_tog.c
+++ /dev/null
@@ -1,52 +0,0 @@
-#include QMK_KEYBOARD_H
-
-#include "tap_tog.h"
-
-bool tap_tog_layer_other_key_pressed = false;
-bool tap_tog_layer_toggled_on = false;
-uint8_t tap_tog_count = 0;
-
-void process_tap_tog(uint8_t layer, keyrecord_t *record) {
- tap_tog_count++;
- // press
- if (record->event.pressed) {
-
- // TTL has already been pressed and we are toggled into that layer
- // so now we need to leave
- if(tap_tog_layer_toggled_on) {
- layer_clear();
- tap_tog_layer_toggled_on = false;
- }
-
- // this means we're in our default layer
- // so switch the layer immediately
- // whether we'll switch back when it's released depends on if a button gets pressed while this is held down
- else {
- // switch layer
- layer_on(layer);
- tap_tog_layer_other_key_pressed = false; // if this becomes true before it gets released, it will act as a held modifier
- }
- }
-
- // release
- else {
- // if it was used as a held modifier (like traditional shift)
- if(tap_tog_layer_other_key_pressed) {
- // switch layer back
- layer_clear();
- }
- // if it was used as a toggle button
- else {
- // next time, it will turn layer off
- tap_tog_layer_toggled_on = true;
-
- // If it's been tapped twice, reset the toggle flag.
- // Otherwise, we get stuck oscillating between this code block and the
- // pressed && TTL_toggled_on block.
- if (tap_tog_count >= 4 ) {
- tap_tog_count = 0;
- tap_tog_layer_toggled_on = false;
- }
- }
- }
-}
diff --git a/users/issmirnov/tap_tog.h b/users/issmirnov/tap_tog.h
deleted file mode 100644
index f59711f043..0000000000
--- a/users/issmirnov/tap_tog.h
+++ /dev/null
@@ -1,10 +0,0 @@
-#pragma once
-
-#include "issmirnov.h"
-
-extern bool tap_tog_layer_other_key_pressed; // set to true if any key pressed while TAP_TOG_LAYER held down
-extern bool tap_tog_layer_toggled_on; // will become true if no keys are pressed while TTL held down
-extern uint8_t tap_tog_count; // number of presses on TAP_TOG_LAYER button.
-
-// Tap dance analog with momentary toggle when held, switch when tapped
-void process_tap_tog(uint8_t layer, keyrecord_t *record);
diff --git a/users/jackhumbert/jackhumbert.c b/users/jackhumbert/jackhumbert.c
deleted file mode 100644
index 011e0efb8f..0000000000
--- a/users/jackhumbert/jackhumbert.c
+++ /dev/null
@@ -1 +0,0 @@
-#include "jackhumbert.h" \ No newline at end of file
diff --git a/users/jackhumbert/jackhumbert.h b/users/jackhumbert/jackhumbert.h
deleted file mode 100644
index 69cfa67451..0000000000
--- a/users/jackhumbert/jackhumbert.h
+++ /dev/null
@@ -1,6 +0,0 @@
-#ifndef USERSPACE
-#define USERSPACE
-
-#include "quantum.h"
-
-#endif \ No newline at end of file
diff --git a/users/jackhumbert/readme.md b/users/jackhumbert/readme.md
deleted file mode 100644
index 479a64140a..0000000000
--- a/users/jackhumbert/readme.md
+++ /dev/null
@@ -1,14 +0,0 @@
-Copyright 2017 Jack Humbert <jack.humb@gmail.com> @jackhumbert
-
-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/>. \ No newline at end of file
diff --git a/users/jackhumbert/rules.mk b/users/jackhumbert/rules.mk
deleted file mode 100644
index f2981bb786..0000000000
--- a/users/jackhumbert/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-SRC += jackhumbert.c \ No newline at end of file
diff --git a/users/jarred/config.h b/users/jarred/config.h
deleted file mode 100644
index bea1f48310..0000000000
--- a/users/jarred/config.h
+++ /dev/null
@@ -1,49 +0,0 @@
-/* Copyright 2018 Jarred Steenvoorden
- *
- * 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
-
-// Sets good default for the speed of the mouse.
-#undef MOUSEKEY_INTERVAL
-#undef MOUSEKEY_DELAY
-#undef MOUSEKEY_TIME_TO_MAX
-#undef MOUSEKEY_MAX_SPEED
-
-#define MOUSEKEY_INTERVAL 16
-#define MOUSEKEY_DELAY 0
-#define MOUSEKEY_TIME_TO_MAX 40
-#define MOUSEKEY_MAX_SPEED 5
-
-#undef MOUSEKEY_WHEEL_MAX_SPEED
-#undef MOUSEKEY_WHEEL_TIME_TO_MAX
-#undef MOUSEKEY_WHEEL_DELAY
-
-#define MOUSEKEY_WHEEL_MAX_SPEED 4
-#define MOUSEKEY_WHEEL_TIME_TO_MAX 255
-#define MOUSEKEY_WHEEL_DELAY 0
-
-#undef TAPPING_TOGGLE
-#undef TAPPING_TERM
-
-#define PERMISSIVE_HOLD
-#define TAPPING_TOGGLE 1
-#define TAPPING_TERM 200
-
-#ifdef AUDIO_ENABLE
- #define STARTUP_SONG SONG(PLANCK_SOUND)
-#endif
-
-#define MACRO_TIMER 5
diff --git a/users/jarred/jarred.c b/users/jarred/jarred.c
deleted file mode 100644
index b37c4cfbb7..0000000000
--- a/users/jarred/jarred.c
+++ /dev/null
@@ -1,97 +0,0 @@
-/* Copyright 2018 Jarred Steenvoorden
- *
- * 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 "jarred.h"
-#include "version.h"
-
-__attribute__ ((weak))
-bool process_record_keymap(uint16_t keycode, keyrecord_t *record) {
- return true;
-}
-
-bool lowerPressed, raisePressed;
-
-bool process_record_user(uint16_t keycode, keyrecord_t *record) {
-
- switch (keycode) {
- case LOWER:
- case RAISE:
- // Both lower and raise activate the same layer
- if (record->event.pressed) {
- layer_on(_LW);
- } else {
- layer_off(_LW);
- }
-
- // But keep track of each to active adjust layer
- if (keycode == LOWER) {
- lowerPressed = record->event.pressed;
- } else {
- raisePressed = record->event.pressed;
- }
-
- // When both are pressed, activate adjust
- if (lowerPressed && raisePressed) {
- layer_on(_NP);
- } else {
- layer_off(_NP);
- }
-
- break;
-
- case NUMPAD:
- if (record->event.pressed) {
- layer_on(_NP);
- } else {
- layer_off(_NP);
- }
- break;
-
- case NAVI:
- if (record->event.pressed) {
- layer_on(_NV);
- } else {
- layer_off(_NV);
-
- // Release mods set by ALT_TAB and CTL_TAB
- unregister_code(KC_LALT);
- unregister_code(KC_LCTL);
- }
- break;
-
- case VRSN: // Prints firmware version
- if (record->event.pressed) {
- send_string_with_delay_P(PSTR(QMK_KEYBOARD "/" QMK_KEYMAP " @ " QMK_VERSION ", Built on: " QMK_BUILDDATE), MACRO_TIMER);
- }
- break;
-
- case ALT_TAB:
- if (record->event.pressed) {
- register_code(KC_LALT);
- tap_code(KC_TAB);
- }
- break;
-
- case CTL_TAB:
- if (record->event.pressed) {
- register_code(KC_LCTL);
- tap_code(KC_TAB);
- }
- break;
- }
-
- return process_record_keymap(keycode, record);
-}
diff --git a/users/jarred/jarred.h b/users/jarred/jarred.h
deleted file mode 100644
index cec407da7f..0000000000
--- a/users/jarred/jarred.h
+++ /dev/null
@@ -1,172 +0,0 @@
-/* Copyright 2018 Jarred Steenvoorden
- *
- * 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/>.
- */
-
-// TODO: Add Alt-Tab to nav + W layer
-
-#ifndef USERSPACE
-#define USERSPACE
-
-#include "quantum.h"
-
-enum userspace_custom_keycodes {
- VRSN = SAFE_RANGE, // Prints QMK Firmware and board info
- ALT_TAB,
- CTL_TAB,
-
- // Layer keys
- NAVI,
- LOWER,
- RAISE,
- NUMPAD
-};
-
-// Layers
-enum {
- _QW = 0,
- _GAME,
- _LW,
- _NV,
- _NP,
- _MS,
-};
-
-#define MS_A LT(_MS,KC_A)
-
-#define WIN_Z LGUI_T(KC_Z)
-#define CTL_SLH RCTL_T(KC_SLSH)
-
-// Wrappers
-#define LAYOUT_planck_grid_wrapper(...) LAYOUT_planck_grid(__VA_ARGS__)
-#define LAYOUT_plaid_grid_wrapper(...) LAYOUT_plaid_grid(__VA_ARGS__)
-#define LAYOUT_atreus62_grid_wrapper(...) LAYOUT(__VA_ARGS__)
-#define LAYOUT_ergotravel_grid_wrapper(...) LAYOUT(__VA_ARGS__)
-
-/* Qwerty Layer */
-#define QWERTY_L1 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T
-#define QWERTY_L2 NAVI, KC_A, KC_S, KC_D, KC_F, KC_G
-#define QWERTY_L3 KC_LSFT, WIN_Z, KC_X, KC_C, KC_V, KC_B
-#define QWERTY_L4 KC_LCTL, KC_LGUI, NUMPAD, KC_LALT, LOWER, KC_SPC
-
-#define QWERTY_R1 KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC
-#define QWERTY_R2 KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT
-#define QWERTY_R3 KC_N, KC_M, KC_COMM, KC_DOT, CTL_SLH, KC_RSFT
-#define QWERTY_R4 KC_ENT, RAISE, KC_RALT, MO(_MS), KC_APP, KC_RCTL
-
-#define QWERTY_4_DOX KC_LCTL, LOWER, KC_SPC, KC_ENT, RAISE, KC_RALT
-
-/* Game Layer */
-#define GAME_L1 _______, _______, _______, _______, _______, _______
-#define GAME_L2 _______, _______, _______, _______, _______, _______
-#define GAME_L3 _______, _______, _______, _______, _______, _______
-#define GAME_L4 _______, _______, KC_LALT, LOWER, KC_SPC, KC_SPC
-
-#define GAME_R1 _______, _______, _______, _______, _______, _______
-#define GAME_R2 _______, _______, _______, _______, _______, _______
-#define GAME_R3 _______, _______, _______, _______, _______, _______
-#define GAME_R4 _______, _______, _______, _______, _______, _______
-
-/* Lower / Upper Layer */
-#define LOWER_L1 KC_ESC , KC_1, KC_2, KC_3, KC_4, KC_5
-#define LOWER_L2 _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5
-#define LOWER_L3 _______, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10
-#define LOWER_L4 _______, _______, _______, _______, _______, _______
-
-#define LOWER_R1 KC_6, KC_7, KC_8, KC_9, KC_0, _______
-#define LOWER_R2 KC_F11, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS
-#define LOWER_R3 KC_F12, KC_GRV, _______, _______, _______, _______
-#define LOWER_R4 _______, _______, _______, _______, _______, _______
-
-#define LOWER_4_DOX _______, _______, _______, _______, _______, _______
-
-/* Navigation Layer */
-#define NAV_L1 _______, _______, _______, KC_LGUI, KC_DEL, KC_BSPC
-#define NAV_L2 _______, _______, _______, KC_LSFT, KC_LCTL, KC_ENT
-#define NAV_L3 _______, _______, _______, _______, _______, _______
-#define NAV_L4 _______, _______, _______, CTL_TAB, ALT_TAB, _______
-
-#define NAV_R1 _______, KC_HOME, KC_UP , KC_END , KC_INS, _______
-#define NAV_R2 _______, KC_LEFT, KC_DOWN, KC_RGHT, KC_DEL, _______
-#define NAV_R3 _______, KC_PGUP, KC_PGDN, _______, _______, _______
-#define NAV_R4 _______, KC_APP, _______, _______, _______, _______
-
-#define NAV_4_DOX CTL_TAB, ALT_TAB, _______, _______, KC_APP, _______
-
-/* Numpad Layer */
-#define NUMPAD_L1 RGB_TOG, RGB_MOD,RGB_RMOD, _______, RGB_HUD, RGB_HUI
-#define NUMPAD_L2 BL_TOGG, BL_STEP, BL_BRTG, _______, RGB_SAD, RGB_SAI
-#define NUMPAD_L3 _______, _______, _______, _______, RGB_VAD, RGB_VAI
-#define NUMPAD_L4 _______, _______, _______, _______, RGB_SPD, RGB_SPI
-
-#define NUMPAD_R1 DF(_QW),DF(_GAME), _______, _______, _______, QK_BOOT
-#define NUMPAD_R2 _______, _______, _______, _______, _______, _______
-#define NUMPAD_R3 VRSN, _______, _______, _______, _______, _______
-#define NUMPAD_R4 _______, _______, _______, _______, _______, _______
-
-#define NUMPAD_4_DOX _______, _______, _______, _______, _______, _______
-
-/* Mouse Layer */
-#define MOUSE_L1 _______, _______, _______, _______, _______, _______
-#define MOUSE_L2 _______, _______, KC_ACL1, KC_ACL0, KC_BTN1, KC_BTN2
-#define MOUSE_L3 _______, _______, _______, _______, _______, _______
-#define MOUSE_L4 _______, _______, _______, _______, _______, KC_BTN1
-
-#define MOUSE_R1 _______, KC_WH_U, KC_MS_U, KC_WH_D, _______, _______
-#define MOUSE_R2 _______, KC_MS_L, KC_MS_D, KC_MS_R, _______, _______
-#define MOUSE_R3 _______, _______, _______, _______, _______, _______
-#define MOUSE_R4 KC_BTN2, _______, _______, _______, _______, _______
-
-#define MOUSE_4_DOX _______, _______, _______, _______, _______, _______
-
-#define BLANK_12 KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO
-
-#define QWERTY_1_12 QWERTY_L1, QWERTY_R1
-#define QWERTY_2_12 QWERTY_L2, QWERTY_R2
-#define QWERTY_3_12 QWERTY_L3, QWERTY_R3
-#define QWERTY_4_12 QWERTY_L4, QWERTY_R4
-
-#define GAME_1_12 GAME_L1, GAME_R1
-#define GAME_2_12 GAME_L2, GAME_R2
-#define GAME_3_12 GAME_L3, GAME_R3
-#define GAME_4_12 GAME_L4, GAME_R4
-
-#define LOWER_1_12 LOWER_L1, LOWER_R1
-#define LOWER_2_12 LOWER_L2, LOWER_R2
-#define LOWER_3_12 LOWER_L3, LOWER_R3
-#define LOWER_4_12 LOWER_L4, LOWER_R4
-
-#define NAV_1_12 NAV_L1, NAV_R1
-#define NAV_2_12 NAV_L2, NAV_R2
-#define NAV_3_12 NAV_L3, NAV_R3
-#define NAV_4_12 NAV_L4, NAV_R4
-
-#define NUMPAD_1_12 NUMPAD_L1, NUMPAD_R1
-#define NUMPAD_2_12 NUMPAD_L2, NUMPAD_R2
-#define NUMPAD_3_12 NUMPAD_L3, NUMPAD_R3
-#define NUMPAD_4_12 NUMPAD_L4, NUMPAD_R4
-
-#define MOUSE_1_12 MOUSE_L1, MOUSE_R1
-#define MOUSE_2_12 MOUSE_L2, MOUSE_R2
-#define MOUSE_3_12 MOUSE_L3, MOUSE_R3
-#define MOUSE_4_12 MOUSE_L4, MOUSE_R4
-
-#define QWERTY_4x12 QWERTY_1_12, QWERTY_2_12, QWERTY_3_12, QWERTY_4_12
-#define GAME_4x12 GAME_1_12, GAME_2_12, GAME_3_12, GAME_4_12
-#define LOWER_4x12 LOWER_1_12, LOWER_2_12, LOWER_3_12, LOWER_4_12
-#define NAV_4x12 NAV_1_12, NAV_2_12, NAV_3_12, NAV_4_12
-#define NUMPAD_4x12 NUMPAD_1_12, NUMPAD_2_12, NUMPAD_3_12, NUMPAD_4_12
-#define MOUSE_4x12 MOUSE_1_12, MOUSE_2_12, MOUSE_3_12, MOUSE_4_12
-
-#endif
diff --git a/users/jarred/readme.md b/users/jarred/readme.md
deleted file mode 100644
index 9f19dad13f..0000000000
--- a/users/jarred/readme.md
+++ /dev/null
@@ -1,17 +0,0 @@
-# Jarred's user space
-
-Keymaps:
-
-- [Ortho 4x12](../../layouts/community/ortho_4x12/jarred/readme.md)
-
-- [Planck](../../keyboards/planck/keymaps/jarred/readme.md)
-- [CRKBD](../../keyboards/crkbd/keymaps/jarred/readme.md)
-- [Atreus 62](../../keyboards/ergotravel/keymaps/jarred/readme.md)
-- [ErgoTravel](../../keyboards/ergotravel/keymaps/jarred/readme.md)
-- [xd75](../../keyboards/xd75/keymaps/jarred/readme.md)
-
-- [satan](../../keyboards/satan/keymaps/jarred/readme.md)
-- [dz60](../../keyboards/dz60/keymaps/jarred/readme.md)
-- [org60](../../keyboards/org60/keymaps/jarred/readme.md)
-- [Leaf60](../../keyboards/foxlab/leaf60/universal/keymaps/jarred/readme.md)
-- [Tada68](../../keyboards/tada68/keymaps/jarred/readme.md)
diff --git a/users/jarred/rules.mk b/users/jarred/rules.mk
deleted file mode 100644
index 9a00cbf72b..0000000000
--- a/users/jarred/rules.mk
+++ /dev/null
@@ -1,16 +0,0 @@
-SRC += jarred.c
-
-ifneq (,$(findstring planck,$(KEYBOARD)))
- # Enable backlight for rev4 planck only
- ifneq (,$(findstring rev4,$(KEYBOARD)))
- BACKLIGHT_ENABLE = yes
- BACKLIGHT_BREATHING = yes
- else
- BACKLIGHT_ENABLE = no
- BACKLIGHT_BREATHING = no
- endif
-
- AUDIO_ENABLE = yes
-endif
-
-MOUSEKEY_ENABLE = no
diff --git a/users/jdelkins/.gitignore b/users/jdelkins/.gitignore
deleted file mode 100644
index 03b2b46668..0000000000
--- a/users/jdelkins/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-secrets.h
diff --git a/users/jdelkins/jdelkins.c b/users/jdelkins/jdelkins.c
deleted file mode 100644
index 4f59e8901b..0000000000
--- a/users/jdelkins/jdelkins.c
+++ /dev/null
@@ -1,287 +0,0 @@
-/*
- Copyright 2020 Joel Elkins <joel@elkins.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 "jdelkins.h"
-#include "version.h"
-
-#ifdef DO_SECRETS
-# include "secrets.h"
-#else
-# ifndef NO_SECRETS
-# pragma message("Warning: secrets.h not found")
-# endif
-#endif
-
-user_config_t user_config;
-
-__attribute__ ((weak))
-bool process_record_keymap(uint16_t keycode, keyrecord_t *record) {
- return true;
-}
-
-void send_secret_string(uint8_t n) {
-#ifdef DO_SECRETS
- send_string(secret[n]);
-#else
- SEND_STRING("");
-#endif
-}
-
-#ifdef TAP_DANCE_ENABLE
-
-// To activate SINGLE_HOLD, you will need to hold for 200ms first.
-// This tap dance favors keys that are used frequently in typing like 'f'
-int cur_dance(tap_dance_state_t *state) {
- if (state->count == 1) {
- // If count = 1, and it has been interrupted - it doesn't matter if it
- // is pressed or not: Send SINGLE_TAP
- if (state->interrupted) {
- // if (!state->pressed) return SINGLE_TAP;
- // need "permissive hold" here.
- // else return SINsGLE_HOLD;
- // If the interrupting key is released before the tap-dance key,
- // then it is a single HOLD However, if the tap-dance key is
- // released first, then it is a single TAP But how to get access to
- // the state of the interrupting key????
- return SINGLE_TAP;
- } else {
- if (!state->pressed)
- return SINGLE_TAP;
- else
- return SINGLE_HOLD;
- }
- }
- // If count = 2, and it has been interrupted - assume that user is trying to
- // type the letter associated with single tap.
- else if (state->count == 2) {
- if (state->interrupted)
- return DOUBLE_SINGLE_TAP;
- else if (state->pressed)
- return DOUBLE_HOLD;
- else
- return DOUBLE_TAP;
- } else if ((state->count == 3) && ((state->interrupted) || (!state->pressed)))
- return TRIPLE_TAP;
- else if (state->count == 3)
- return TRIPLE_HOLD;
- else
- return 8; // magic number. At some point this method will expand to work for more presses
-}
-
-// This works well if you want this key to work as a "fast modifier". It favors
-// being held over being tapped.
-int hold_cur_dance(tap_dance_state_t *state) {
- if (state->count == 1) {
- if (state->interrupted) {
- if (!state->pressed)
- return SINGLE_TAP;
- else
- return SINGLE_HOLD;
- } else {
- if (!state->pressed)
- return SINGLE_TAP;
- else
- return SINGLE_HOLD;
- }
- }
- // If count = 2, and it has been interrupted - assume that user is trying to
- // type the letter associated with single tap.
- else if (state->count == 2) {
- if (state->pressed)
- return DOUBLE_HOLD;
- else
- return DOUBLE_TAP;
- } else if (state->count == 3) {
- if (!state->pressed)
- return TRIPLE_TAP;
- else
- return TRIPLE_HOLD;
- } else
- return 8; // magic number. At some point this method will expand to work for more presses
-}
-
-#endif // TAP_DANCE_ENABLE
-
-__attribute__ ((weak))
-void keyboard_post_init_keymap(void) {
-}
-
-void keyboard_post_init_user(void) {
- user_config.raw = eeconfig_read_user();
- keyboard_post_init_keymap();
-}
-
-void eeconfig_init_user(void) {
- user_config.raw = 0;
- user_config.system_mac = false;
- eeconfig_update_user(user_config.raw);
-}
-
-bool process_record_user(uint16_t keycode, keyrecord_t *record) {
- static uint32_t boot_timer;
-
- if (!process_record_keymap(keycode, record)) {
- return false;
- }
-
- switch (keycode) {
- case FW_WRD:
- do_mac_key(LCTL(KC_RIGHT), ROPT(KC_RIGHT), record);
- break;
-
- case BK_WRD:
- do_mac_key(LCTL(KC_LEFT), ROPT(KC_LEFT), record);
- break;
-
- case KB_BOL:
- do_mac_key(KC_HOME, RCMD(KC_LEFT), record);
- break;
-
- case KB_EOL:
- do_mac_key(KC_END, RCMD(KC_RIGHT), record);
- break;
-
- case TG_SYS:
- if (record->event.pressed) {
- user_config.system_mac ^= 1;
- eeconfig_update_user(user_config.raw);
- }
- break;
-
- case KB_COPY:
- do_mac_key(LCTL(KC_INS), RCMD(KC_C), record);
- break;
-
- case KB_PASTE:
- do_mac_key(LSFT(KC_INS), RCMD(KC_V), record);
- break;
-
- case MY_GUI:
- do_mac_key(KC_LGUI, KC_LOPT, record);
- break;
-
- case MY_ALT:
- do_mac_key(KC_LALT, KC_LCMD, record);
- break;
-
- case MY_RGUI:
- do_mac_key(KC_RGUI, KC_ROPT, record);
- break;
-
- case MY_RALT:
- do_mac_key(KC_RALT, KC_RCMD, record);
- break;
-
- case MY_CALC:
- do_mac_key(KC_CALC, KC_F14, record);
- break;
-
- case KB_MAKE:
- if (!get_mods()) {
- if (!record->event.pressed)
-#ifdef NO_SECRETS
- SEND_STRING("make NO_SECRETS=1 " QMK_KEYBOARD ":" QMK_KEYMAP SS_TAP(X_ENTER));
-#else
- SEND_STRING("make " QMK_KEYBOARD ":" QMK_KEYMAP SS_TAP(X_ENTER));
-#endif
- return false;
- }
- break;
-
- case KB_VRSN:
- if (!get_mods()) {
- if (!record->event.pressed) {
-#ifdef DO_SECRETS
-# define SECRET_MSG " (with secrets)"
-#else
-# define SECRET_MSG
-#endif
- if (user_config.system_mac) {
- SEND_STRING(QMK_KEYBOARD "/" QMK_KEYMAP " @ " QMK_VERSION " (mac mode)" SECRET_MSG);
- } else {
- SEND_STRING(QMK_KEYBOARD "/" QMK_KEYMAP " @ " QMK_VERSION " (non-mac mode)" SECRET_MSG);
- }
- }
- return false;
- }
- break;
-
- case KB_BOOT:
- if (!get_mods()) {
- if (record->event.pressed) {
- boot_timer = timer_read32();
- } else {
- if (timer_elapsed32(boot_timer) >= 500) {
- reset_keyboard();
- }
- }
- return false;
- }
- break;
-
- case KB_FLSH:
- if (!get_mods()) {
- if (!record->event.pressed) {
-#ifdef NO_SECRETS
- SEND_STRING("make NO_SECRETS=1 " QMK_KEYBOARD ":" QMK_KEYMAP ":flash\n");
-#else
- SEND_STRING("make " QMK_KEYBOARD ":" QMK_KEYMAP ":flash\n");
-#endif
- reset_keyboard();
- }
- return false;
- }
- break;
-
-#ifdef DO_SECRETS
- case KC_SECRET_1 ... KC_SECRET_6: // Secrets! Externally defined strings, not stored in repo
- if (!record->event.pressed) {
- clear_oneshot_layer_state(ONESHOT_OTHER_KEY_PRESSED);
- send_secret_string(keycode - KC_SECRET_1);
- }
- return false;
- break;
-#endif
- }
-
- return true;
-}
-
-__attribute__ ((weak))
-void matrix_init_keymap(void) {
-}
-
-void matrix_init_user(void) {
- matrix_init_keymap();
-}
-
-__attribute__ ((weak))
-void matrix_scan_keymap(void) {
-}
-
-void matrix_scan_user(void) {
- matrix_scan_keymap();
-}
-
-__attribute__ ((weak))
-layer_state_t layer_state_set_keymap(layer_state_t state) {
- return state;
-}
-
-layer_state_t layer_state_set_user(layer_state_t state) {
- return layer_state_set_keymap(state);
-}
diff --git a/users/jdelkins/jdelkins.h b/users/jdelkins/jdelkins.h
deleted file mode 100644
index 7c9f2d021c..0000000000
--- a/users/jdelkins/jdelkins.h
+++ /dev/null
@@ -1,134 +0,0 @@
-/*
- Copyright 2020 Joel Elkins <joel@elkins.com>
-
- This program is free software: you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>.
-*/
-
-#pragma once
-
-#include QMK_KEYBOARD_H
-
-// Secrets
-
-#if !defined(NO_SECRETS) && __has_include("secrets.h")
-# define DO_SECRETS
-#endif
-
-void send_secret_string(uint8_t n);
-
-// standard layers
-
-enum jdelkins_layers {
- _QWERTY = 0,
- _RPT,
- _GAME,
- _FUNC,
- _KP,
- _SECRETS,
- _ADJUST,
- _LAYER_MAX
-};
-
-// key definitions
-
-typedef union {
- uint32_t raw;
- struct {
- bool system_mac :1;
- };
-} user_config_t;
-
-extern user_config_t user_config;
-
-static inline void do_mac_key(uint16_t norm_key, uint16_t mac_key, keyrecord_t *record) {
- uint16_t key = user_config.system_mac ? mac_key : norm_key;
- if (record->event.pressed)
- register_code16(key);
- else
- unregister_code16(key);
-}
-
-enum jdelkins_keycodes {
- KB_MAKE = SAFE_RANGE,
- KB_FLSH,
- KB_VRSN,
- KB_BOOT,
- FW_WRD,
- BK_WRD,
- KB_BOL,
- KB_EOL,
- TG_SYS,
- KB_COPY,
- KB_PASTE,
- MY_GUI,
- MY_ALT,
- MY_RGUI,
- MY_RALT,
- MY_CALC,
-
-#ifdef DO_SECRETS
- KC_SECRET_1,
- KC_SECRET_2,
- KC_SECRET_3,
- KC_SECRET_4,
- KC_SECRET_5,
- KC_SECRET_6,
-#endif
-
- USER_SAFE_RANGE,
-};
-
-#ifdef DO_SECRETS
-# define KC_SEC1 KC_SECRET_1
-# define KC_SEC2 KC_SECRET_2
-# define KC_SEC3 KC_SECRET_3
-# define KC_SEC4 KC_SECRET_4
-# define KC_SEC5 KC_SECRET_5
-# define KC_SEC6 KC_SECRET_6
-#else
-# define KC_SEC1 KC_NO
-# define KC_SEC2 KC_NO
-# define KC_SEC3 KC_NO
-# define KC_SEC4 KC_NO
-# define KC_SEC5 KC_NO
-# define KC_SEC6 KC_NO
-#endif
-
-#define MODS_SHIFT (get_mods() & MOD_MASK_SHIFT)
-#define MODS_CTRL (get_mods() & MOD_MASK_CTRL)
-#define MODS_ALT (get_mods() & MOD_MASK_ALT)
-#define MODS_GUI (get_mods() & MOD_MASK_GUI)
-
-#define MY_CAPS LCTL_T(KC_CAPS)
-#define MY_SPC LT(_FUNC, KC_SPC)
-
-#define NUMLOCK_ON host_keyboard_led_state().num_lock
-#define CAPSLOCK_ON host_keyboard_led_state().caps_lock
-
-#ifdef TAP_DANCE_ENABLE
-
-enum {
- SINGLE_TAP = 1,
- SINGLE_HOLD = 2,
- DOUBLE_TAP = 3,
- DOUBLE_HOLD = 4,
- DOUBLE_SINGLE_TAP = 5, //send two single taps
- TRIPLE_TAP = 6,
- TRIPLE_HOLD = 7
-};
-
-int cur_dance(tap_dance_state_t *state); // prefer tap
-int hold_cur_dance(tap_dance_state_t *state); // prefer hold
-
-#endif // TAP_DANCE_ENABLE
diff --git a/users/jdelkins/rules.mk b/users/jdelkins/rules.mk
deleted file mode 100644
index 075aab7d3b..0000000000
--- a/users/jdelkins/rules.mk
+++ /dev/null
@@ -1,15 +0,0 @@
-SRC += jdelkins.c
-
-ifneq ($(strip $(NO_SECRETS)),)
- OPT_DEFS += -DNO_SECRETS
-endif
-
-ifeq ($(shell test -f users/jdelkins/secrets.h.gpg && echo yes || echo no),yes)
-users/jdelkins/jdelkins.c: users/jdelkins/secrets.h
- touch $@
-
-users/jdelkins/secrets.h: users/jdelkins/secrets.h.gpg
- gpg -d $< >$@
-endif
-
-BOOTMAGIC_ENABLE = no # Enable Bootmagic Lite
diff --git a/users/jjerrell/.gitignore b/users/jjerrell/.gitignore
deleted file mode 100644
index 1753bf931b..0000000000
--- a/users/jjerrell/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-secrets.*
diff --git a/users/jjerrell/config.h b/users/jjerrell/config.h
deleted file mode 100644
index bddafe1557..0000000000
--- a/users/jjerrell/config.h
+++ /dev/null
@@ -1,26 +0,0 @@
-// Copyright (C) 2021 Jerrell, Jacob <@jjerrell>
-//
-// This file is part of jjerrell.
-//
-// jjerrell 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 3 of the License, or
-// (at your option) any later version.
-//
-// jjerrell 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 jjerrell. If not, see <http://www.gnu.org/licenses/>.
-
-#pragma once
-
-#define LEADER_TIMEOUT 250
-#define LEADER_PER_KEY_TIMING
-
-#if defined(TAP_CODE_DELAY)
-# undef TAP_CODE_DELAY
-#endif
-#define TAP_CODE_DELAY 20
diff --git a/users/jjerrell/jjerrell.c b/users/jjerrell/jjerrell.c
deleted file mode 100644
index 47aa9bc042..0000000000
--- a/users/jjerrell/jjerrell.c
+++ /dev/null
@@ -1,131 +0,0 @@
-/**
- * Copyright (C) 2021 Jerrell, Jacob <@jjerrell>
- *
- * This file is part of qmk_firmware.
- *
- * qmk_firmware 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 3 of the License, or
- * (at your option) any later version.
- *
- * qmk_firmware 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 qmk_firmware. If not, see <http://www.gnu.org/licenses/>.
- */
-
-#include "jjerrell.h"
-
-__attribute__((weak)) void matrix_scan_keymap(void) {}
-__attribute__((weak)) void leader_scan_secrets(void) {}
-
-#ifdef LEADER_ENABLE
-void leader_end_user(void) {
- static uint8_t mods = 0;
- mods = get_mods();
- clear_mods();
-
- // Website Refresh / XCode "Run"
- if (leader_sequence_one_key(KC_R)) {
- SEND_STRING(SS_LGUI("r"));
- }
-
- if (leader_sequence_two_keys(KC_B, KC_D)) {
- send_string_with_delay_P(PSTR(QMK_KEYBOARD "/" QMK_KEYMAP " @ " QMK_VERSION " Built at: " QMK_BUILDDATE), TAP_CODE_DELAY);
- }
-
- if (leader_sequence_two_keys(KC_L, KC_C)) {
- send_string_with_delay("/** */", TAP_CODE_DELAY);
- wait_ms(TAPPING_TERM);
- tap_code(KC_LEFT);
- tap_code(KC_LEFT);
- tap_code(KC_LEFT);
- if (!(mods & MOD_MASK_SHIFT)) {
- tap_code(KC_ENT);
- }
- }
-
- set_mods(mods);
- #ifndef NO_SECRETS
- leader_scan_secrets();
- #endif // !NO_SECRETS
-}
-#endif
-
-static bool is_first_run = true;
-void matrix_scan_user(void) {
- if (is_first_run) {
- is_first_run = false;
- startup_user();
- }
-
- matrix_scan_keymap();
-}
-
-__attribute__((weak)) layer_state_t layer_state_set_keymap(layer_state_t state) { return state; }
-
-// on layer change, no matter where the change was initiated
-// Then runs keymap's layer change check
-layer_state_t layer_state_set_user(layer_state_t state) {
- if (!is_keyboard_master()) {
- return state;
- }
-
- state = update_tri_layer_state(state, _RAISE, _LOWER, _ADJUST);
- state = layer_state_set_keymap(state);
-#if defined(RGBLIGHT_ENABLE)
- state = layer_state_set_rgb_light(state);
-#endif // RGBLIGHT_ENABLE
- return state;
-}
-
-__attribute__((weak)) void dip_switch_update_keymap(uint8_t index, bool active) {}
-void dip_switch_update_user(uint8_t index, bool active) {
- dip_switch_update_keymap(index, active);
-}
-
-__attribute__((weak)) bool music_mask_keymap(uint16_t keycode) { return true; }
-bool music_mask_user(uint16_t keycode) {
- switch (keycode){
- default:
- return music_mask_keymap(keycode);
- break;
- }
-}
-
-__attribute__((weak)) layer_state_t default_layer_state_set_keymap(layer_state_t state) { return state; }
-
-// Runs state check and changes underglow color and animation
-layer_state_t default_layer_state_set_user(layer_state_t state) {
- if (!is_keyboard_master()) {
- return state;
- }
- return default_layer_state_set_keymap(state);
-}
-
-#ifdef AUDIO_ENABLE
-__attribute__((weak)) void startup_keymap(void) {}
-void startup_user(void)
-{
- wait_ms(TAP_CODE_DELAY); // gets rid of tick
- startup_keymap();
-}
-
-__attribute__((weak)) void shutdown_keymap(void) {}
-void shutdown_user(void)
-{
- wait_ms(TAP_CODE_DELAY);
- stop_all_notes();
- shutdown_keymap();
-}
-
-__attribute__((weak)) void music_on_keymap(void) {}
-void music_on_user(void)
-{
- music_scale_user();
- music_on_keymap();
-}
-#endif // AUDIO_ENABLE
diff --git a/users/jjerrell/jjerrell.h b/users/jjerrell/jjerrell.h
deleted file mode 100644
index 92b95ccc01..0000000000
--- a/users/jjerrell/jjerrell.h
+++ /dev/null
@@ -1,53 +0,0 @@
-/**
- * Copyright (C) 2021 Jerrell, Jacob <@jjerrell>
- *
- * This file is part of qmk_firmware.
- *
- * qmk_firmware 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 3 of the License, or
- * (at your option) any later version.
- *
- * qmk_firmware 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 qmk_firmware. If not, see <http://www.gnu.org/licenses/>.
- */
-
-#pragma once
-#include QMK_KEYBOARD_H
-
-/** QMK Includes **/
-#include "version.h"
-#include "eeprom.h"
-#include "muse.h"
-
-#include "process_records.h"
-#include "wrappers.h"
-
-/************************* Userspace Layers *************************
- * Keymaps can define additional layers by making the first case
- * equal to `LAYER_SAFE_RANGE`
- ********************************************************************/
-enum userspace_layers {
- _WORKMAN,
- _QWERTY,
- _LOWER,
- _RAISE,
- _ADJUST,
- _SPECIAL,
- _GAME,
- LAYER_SAFE_RANGE,
-};
-
-void matrix_scan_keymap(void);
-layer_state_t layer_state_set_keymap(layer_state_t state);
-void dip_switch_update_keymap(uint8_t index, bool active);
-bool music_mask_keymap(uint16_t keycode);
-layer_state_t default_layer_state_set_keymap(layer_state_t state);
-void startup_keymap(void);
-void shutdown_keymap(void);
-void music_on_keymap(void);
diff --git a/users/jjerrell/process_records.c b/users/jjerrell/process_records.c
deleted file mode 100644
index abdcd0934c..0000000000
--- a/users/jjerrell/process_records.c
+++ /dev/null
@@ -1,139 +0,0 @@
-/**
- * Copyright (C) 2021 Jerrell, Jacob <@jjerrell>
- *
- * This file is part of qmk_firmware.
- *
- * qmk_firmware 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 3 of the License, or
- * (at your option) any later version.
- *
- * qmk_firmware 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 qmk_firmware. If not, see <http://www.gnu.org/licenses/>.
- */
-
-#include "jjerrell.h"
-
-float game_song[][2] = SONG(TO_BOLDLY_GO);
-float work_song[][2] = SONG(MARIO_GAMEOVER);
-float doom_song[][2] = SONG(E1M1_DOOM);
-
-__attribute__((weak)) bool process_record_keymap(uint16_t keycode, keyrecord_t *record) { return true; }
-
-static uint16_t key_timer;
-
-bool process_record_user(uint16_t keycode, keyrecord_t *record) {
- if (process_record_keymap(keycode, record)) {
- static uint8_t mods = 0;
- // static uint8_t layer = 0;
- mods = get_mods();
- switch (keycode) {
- case KC_QWERTY:
- if (record->event.pressed) {
- set_single_persistent_default_layer(_QWERTY);
- }
- return false;
- break;
- case KC_WORKMAN:
- if (record->event.pressed) {
- set_single_persistent_default_layer(_WORKMAN);
- }
- return false;
- break;
- case KC_CCCV:
- if (record->event.pressed) {
- key_timer = timer_read();
- } else {
- clear_mods();
- if (timer_elapsed(key_timer) > TAPPING_TERM) { // Hold, copy
- tap_code16(G(KC_C));
- } else if (mods & MOD_MASK_SHIFT) {
- // Tap w/ shift held, open [Paste App](https://pasteapp.io) (no affiliation)
- // Shift + Command(GUI) + V
- tap_code16(S(G(KC_V)));
- } else { // Regular tap, do paste
- tap_code16(G(KC_V));
- }
- set_mods(mods);
- }
- return false;
- break;
- case KC_ARROW:
- if (record->event.pressed) {
- clear_mods();
- if (mods & MOD_MASK_SHIFT) {
- SEND_STRING("=>");
- } else {
- SEND_STRING("->");
- }
- set_mods(mods);
- }
- return false;
- break;
- case KC_MAKE:
- if (!record->event.pressed) {
-#ifndef MAKE_BOOTLOADER
- uint8_t temp_mod = mod_config(get_mods());
- uint8_t temp_osm = mod_config(get_oneshot_mods());
- clear_mods();
- clear_oneshot_mods();
-#endif
- send_string_with_delay_P(PSTR("qmk"), TAP_CODE_DELAY);
-#ifndef MAKE_BOOTLOADER
- if ((temp_mod | temp_osm) & MOD_MASK_SHIFT)
-#endif
- {
- send_string_with_delay_P(PSTR(" flash "), TAP_CODE_DELAY);
-#ifndef MAKE_BOOTLOADER
- } else {
- send_string_with_delay_P(PSTR(" compile "), TAP_CODE_DELAY);
-#endif
- }
- send_string_with_delay_P(PSTR("-kb " QMK_KEYBOARD " -km " QMK_KEYMAP), TAP_CODE_DELAY);
- send_string_with_delay_P(PSTR(SS_TAP(X_ENTER)), TAP_CODE_DELAY);
- }
- return false;
- break;
- case KC_VRSN:
- if (!record->event.pressed) {
- send_string_with_delay_P(PSTR(QMK_KEYBOARD "/" QMK_KEYMAP " @ " QMK_VERSION " Built at: " QMK_BUILDDATE), TAP_CODE_DELAY);
- }
- return false;
- break;
- case KC_GAME:
- if (record->event.pressed) {
- key_timer = timer_read();
- } else {
- if (IS_LAYER_OFF(_GAME)) {
- if (timer_elapsed(key_timer) > TAPPING_TERM) {
- layer_move(_GAME);
-#ifdef AUDIO_ENABLE
-PLAY_SONG(game_song);
-#endif
- }
- break;
- // todo: cycle game layers
- // } else if (mods & MOD_MASK_SHIFT) {
-// #ifdef AUDIO_ENABLE
-// PLAY_SONG(doom_song);
-// #endif
-// break;
- } else {
- layer_move(_WORKMAN);
-#ifdef AUDIO_ENABLE
-PLAY_SONG(work_song);
-#endif
- break;
- }
- }
- return false;
- break;
- }
- }
- return true;
-}
diff --git a/users/jjerrell/process_records.h b/users/jjerrell/process_records.h
deleted file mode 100644
index de37421b10..0000000000
--- a/users/jjerrell/process_records.h
+++ /dev/null
@@ -1,41 +0,0 @@
-// Copyright (C) 2021 Jerrell, Jacob <@jjerrell>
-//
-// This file is part of qmk_firmware.
-//
-// qmk_firmware 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 3 of the License, or
-// (at your option) any later version.
-//
-// qmk_firmware 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 qmk_firmware. If not, see <http://www.gnu.org/licenses/>.
-
-#pragma once
-#include "jjerrell.h"
-
-#if defined(KEYMAP_SAFE_RANGE)
-# define PLACEHOLDER_SAFE_RANGE KEYMAP_SAFE_RANGE
-#else
-# define PLACEHOLDER_SAFE_RANGE SAFE_RANGE
-#endif
-
-enum userspace_keycodes {
- KC_ARROW = PLACEHOLDER_SAFE_RANGE, // `->`
- KC_MAKE, // Runs the keyboard's make command
- KC_QWERTY, // Default Layer -> QWERTY
- KC_WORKMAN, // Default Layer -> Workman
- KC_VRSN, // Print QMK Firmware and board info
- RGB_IDL, // Toggle RGB Idle animations
- RGB_TGL, // Toggle RGB Layer Indication
- KC_CCCV, // One key copy/paste,
- KC_GAME, // To game layer. If on game layer, cycle game layers
- NEW_SAFE_RANGE // use NEW_SAFE_RANGE for keymap specific codes
-};
-
-bool process_record_keymap(uint16_t keycode, keyrecord_t *record);
-
diff --git a/users/jjerrell/readme.md b/users/jjerrell/readme.md
deleted file mode 100644
index a382524f2e..0000000000
--- a/users/jjerrell/readme.md
+++ /dev/null
@@ -1,50 +0,0 @@
-<!--
- Copyright (C) 2021 Jerrell, Jacob <@jjerrell>
-
- This file is part of qmk_firmware.
-
- qmk_firmware 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 3 of the License, or
- (at your option) any later version.
-
- qmk_firmware 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 qmk_firmware. If not, see <http://www.gnu.org/licenses/>.
--->
-
-# JJerrell's QMK Userspace
-
-This userspace showcases my personal journey with QMK keyboards and aims to simplify additional development, reduce code duplication, and maintain a consistent experience across my current keyboards. My original userspace has been archived because I wanted to take the time to grasp _how_ what I was doing worked -- rather than copy/pasta and blind luck.
-
-Some keyboard specific code is stored here because it's contextually relevant. It may be somewhat pedantic, but an effort has been made to wrap this code with preprocessor checks. i.e. `#if (defined(KEYBOARD_planck_ez))`.
-
-## Daily Drivers
-
-1. Ergodox EZ - My first mechanical love. Now the office keyboard (if we go back). After finding inferior travel cases for exorbitant amounts of money, I built a custom travel case out of a case designed for drones and maticulous work cutting guncase foam. Around $50 with plenty of foam left over for family LARPing weapons. I'll post a picture one of these days. It also has a spot for my wireless touchpad.
-2. Planck EZ - The solution to not being able to sit at a desk 100% of the time and not being able to live without QMK for any amount of time. Karabiner-Elements disables the Macbook keyboard when this is plugged in and the planck sits ontop of it with a very short usb-c cable. Probably terrible for the built in keyboard but they screwed up this generation anyway.
-3. Moonlander - Just when I thought it was over, the lovely people with ZSA did it again. This one stays at home on my desk.
-
-## Features
-
-- Keymap level customization
- - User methods implemented here will give the keymaps a chance to override functionality by optionally implementing relevant _keymap methods
-- Layer Macros
- - WRAPPER defines in [wrapper.c] simplify consistent keymaps
-- Leader key secrets
- - [jjerrell.c] sets up the functionality for this feature and calls into the leader_scan_secrets method.
- - TODO: add documentation for leader_scan_secrets implementation
-
-## Issues
-
-### Tap/hold keys and shifted keycodes
-
-An immediate part of my love for QMK was it's ability to differentiate between holds and presses to a level where you can apply modifiers when a normal alpha code is held. This feature was the single-most health related improvement to adopting QMK, in my opinion.
-
-Beloved as it may be it comes with some baggage; shifted keycodes will be applied as their unshifted counterparts. I've worked around this in the past but the solution this time is a close adoption of the symbol layer inspired by the Neo keyboard.
-
-There is also a problem with relying on SFT_T() for all of your shifting needs because if you attempt to swap which fingers are holding it and don't release the first before pressing the second, shift won't register anymore. This could probably be fixed but it discourages typing in all caps because it becomes too tedious. However, most layers do have a dedicated shift key to counteract this when necessary.
diff --git a/users/jjerrell/rules.mk b/users/jjerrell/rules.mk
deleted file mode 100644
index db359a5757..0000000000
--- a/users/jjerrell/rules.mk
+++ /dev/null
@@ -1,27 +0,0 @@
-SRC += jjerrell.c \
- process_records.c
-
-LEADER_ENABLE = yes
-MOUSEKEY_ENABLE = yes
-EXTRAKEY_ENABLE = yes
-
-ifneq ($(PLATFORM),CHIBIOS)
- LTO_ENABLE = yes
-endif
-SPACE_CADET_ENABLE = no
-GRAVE_ESC_ENABLE = no
-
-ifneq ($(strip $(NO_SECRETS)), yes)
- ifneq ("$(wildcard $(USER_PATH)/secrets.c)","")
- SRC += secrets.c
- endif
- ifeq ($(strip $(NO_SECRETS)), lite)
- OPT_DEFS += -DNO_SECRETS
- endif
-endif
-
-# TODO: RGB is next
-# RGB_MATRIX_ENABLE ?= no
-# ifneq ($(strip $(RGB_MATRIX_ENABLE)), no)
-# SRC += rgb_matrix_stuff.c
-# endif
diff --git a/users/jjerrell/wrappers.h b/users/jjerrell/wrappers.h
deleted file mode 100644
index f98e9ef121..0000000000
--- a/users/jjerrell/wrappers.h
+++ /dev/null
@@ -1,329 +0,0 @@
-// Copyright (C) 2021 Jerrell, Jacob <@jjerrell>
-//
-// This file is part of qmk_firmware.
-//
-// qmk_firmware 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 3 of the License, or
-// (at your option) any later version.
-//
-// qmk_firmware 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 qmk_firmware. If not, see <http://www.gnu.org/licenses/>.
-
-#pragma once
-#include "jjerrell.h"
-
-#define QWERTY KC_QWERTY
-#define WORKMN KC_WORKMAN
-
-#define KC_CUT LGUI(KC_X)
-
-// Non-sane shortcuts for software macros or keybindings
-#define MACRO_1 ALL_T(KC_F12)
-#define MACRO_2 ALL_T(KC_F13)
-#define MACRO_3 ALL_T(KC_F14)
-#define MACRO_4 ALL_T(KC_F15)
-
-#define MACRO_5 ALL_T(KC_F16)
-#define MACRO_6 ALL_T(KC_F17)
-#define MACRO_7 ALL_T(KC_F18)
-#define MACRO_8 ALL_T(KC_F19)
-
-// clang-format off
-#if (!defined(LAYOUT) && defined(KEYMAP))
-# define LAYOUT KEYMAP
-#endif
-
-#if (defined(KEYBOARD_planck_ez))
-/** Planck EZ Empty
- * ,-----------------------------------------------------------------------------------.
- * | | | | | | | | | | | | |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | | | | | | | | | | | | |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | | | | | | | | | | | | |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | | | | | | | | | | | |
- * `-----------------------------------------------------------------------------------'
- */
-
-# define ____________________________________________________________PLANCK_VERBOSE_BOTTOM_ROW_____________________________________________________________ \
- QK_LEAD, KC_LSFT, KC_CCCV, KC_HYPR, LT(_LOWER, KC_BSPC), SFT_T(KC_SPC), XXXXXXX, LT(_RAISE, KC_ENT), KC_MEH, RGB_TOG, RGB_IDL, LED_LEVEL
-
-# define _________________________________________PLANCK_LOWER_BOTTOM_ROW_________________________________________ \
- QK_LEAD, KC_LSFT, KC_CCCV, KC_HYPR, KC_BSPC, KC_SPC, XXXXXXX, KC_ENT, KC_0, KC_DOT, KC_COMM, LED_LEVEL
-// TODO: It would be nice to find a way to apply the bottom row with optional left/right varargs.
-// I'm completely unsure if this language can support something like that though.
-
-/**
- * Basic Planck EZ Wrapper to expand "block" defines before sending
- * to LAYOUT_ortho_4x12
- */
-# define WRAPPER_ortho_4x12(...) LAYOUT_ortho_4x12(__VA_ARGS__)
-
-# define WRAPPER_planck_common( \
- K01, K02, K03, K04, K05, K08, K09, K0A, K0B, K0C, \
- K11, K12, K13, K14, K15, K18, K19, K1A, K1B, K1C, \
- K21, K22, K23, K24, K25, K28, K29, K2A, K2B, K2C \
- ) WRAPPER_ortho_4x12( \
- K01, K02, K03, K04, K05 , XXXXXXX , XXXXXXX, K08, K09, K0A, K0B, K0C, \
- K11, K12, K13, K14, K15 , XXXXXXX , XXXXXXX, K18, K19, K1A, K1B, K1C, \
- K21, K22, K23, K24, K25 , XXXXXXX , XXXXXXX, K28, K29, K2A, K2B, K2C, \
- ____________________________________________________________PLANCK_VERBOSE_BOTTOM_ROW_____________________________________________________________ )
-
-/**
- * Shifted Key conflicts:
- * K12, K13, K14, K19, K1A, K1B, K21, K2C
- */
-# define WRAPPER_planck_base( \
- K01, K02, K03, K04, K05, K08, K09, K0A, K0B, K0C, \
- K11, K12, K13, K14, K15, K18, K19, K1A, K1B, K1C, \
- K21, K22, K23, K24, K25, K28, K29, K2A, K2B, K2C \
- ) WRAPPER_ortho_4x12( \
- K01 , K02 , K03 , K04 , K05 , KC_GAME , KC_GAME, K08, K09 , K0A , K0B , K0C, \
- K11 , SFT_T(K12), GUI_T(K13), ALT_T(K14), K15 , XXXXXXX , XXXXXXX, K18, ALT_T(K19), GUI_T(K1A), SFT_T(K1B), K1C, \
- CTL_T(K21), K22 , K23 , K24 , K25 , XXXXXXX , XXXXXXX, K28, K29 , K2A , K2B , CTL_T(K2C), \
- ____________________________________________________________PLANCK_VERBOSE_BOTTOM_ROW_____________________________________________________________ )
-
-# define WRAPPER_planck_mods( \
- K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, \
- K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, \
- K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, \
- K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C \
- ) WRAPPER_ortho_4x12( \
- K01 , K02 , K03 , K04 , K05 , K06 , K07, K08, K09 , K0A , K0B , K0C, \
- K11 , SFT_T(K12), GUI_T(K13), ALT_T(K14), K15 , K16 , K17, K18, ALT_T(K19), GUI_T(K1A), SFT_T(K1B), K1C, \
- CTL_T(K21), K22 , K23 , K24 , K25 , K26 , K27, K28, K29 , K2A , K2B , CTL_T(K2C), \
- K31, K32 , K33 , K34 , LT(_LOWER, K35), SFT_T(K36), XXXXXXX, LT(_RAISE, K38), K39 , K3A , K3B, K3C )
-
-
-
-// These macros are used when defining layouts in keymap.c
-# define LAYOUT_planck_base(...) WRAPPER_planck_base(__VA_ARGS__)
-# define LAYOUT_planck_common(...) WRAPPER_planck_common(__VA_ARGS__)
-# define LAYOUT_planck_mods(...) WRAPPER_planck_mods(__VA_ARGS__)
-
-#elif defined(KEYBOARD_moonlander)
-/** Moonlander Empty
- * ( \
- k00, k01, k02, k03, k04, k05, k06, k60, k61, k62, k63, k64, k65, k66, \
- k10, k11, k12, k13, k14, k15, k16, k70, k71, k72, k73, k74, k75, k76, \
- k20, k21, k22, k23, k24, k25, k26, k80, k81, k82, k83, k84, k85, k86, \
- k30, k31, k32, k33, k34, k35, k91, k92, k93, k94, k95, k96, \
- k40, k41, k42, k43, k44, k53, kb3, ka2, ka3, ka4, ka5, ka6, \
- k50, k51, k52, kb4, kb5, kb6 \
- ) \
- */
-# define WRAPPER_moonlander(...) LAYOUT_moonlander(__VA_ARGS__)
-# define WRAPPER_moonlander_common( \
- k11, k12, k13, k14, k15, k71, k72, k73, k74, k75, \
- k21, k22, k23, k24, k25, k81, k82, k83, k84, k85, \
- k31, k32, k33, k34, k35, k91, k92, k93, k94, k95, \
- k41, k42, k43, k44, ka2, ka3, ka4, ka5 \
- ) WRAPPER_moonlander( \
- XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \
- XXXXXXX, k11, k12, k13, k14, k15, XXXXXXX, XXXXXXX, k71, k72, k73, k74, k75, XXXXXXX, \
- XXXXXXX, k21, k22, k23, k24, k25, XXXXXXX, XXXXXXX, k81, k82, k83, k84, k85, XXXXXXX, \
- KC_LSFT, k31, k32, k33, k34, k35, k91, k92, k93, k94, k95, KC_RSFT, \
- MO(_SPECIAL), k41, k42, k43, k44, TO(_GAME), XXXXXXX, ka2, ka3, ka4, ka5, MO(_SPECIAL), \
- LT(_LOWER, KC_SPC),HYPR_T(KC_BSPC),QK_LEAD, KC_CCCV,SFT_T(KC_TAB),LT(_RAISE, KC_ENT) )
-
-# define WRAPPER_moonlander_mods( \
- k11, k12, k13, k14, k15, k71, k72, k73, k74, k75, \
- k21, k22, k23, k24, k25, k81, k82, k83, k84, k85, \
- k31, k32, k33, k34, k35, k91, k92, k93, k94, k95, \
- k41, k42, k43, k44, ka2, ka3, ka4, ka5 \
- ) WRAPPER_moonlander_common( \
- k11 , k12 , k13 , k14 , k15, k71, k72, k73, k74, k75, \
- k21 , SFT_T(k22), GUI_T(k23), ALT_T(k24), k25, k81, ALT_T(k82), GUI_T(k83), SFT_T(k84), k85, \
- CTL_T(k31), k32 , k33 , k34 , k35, k91, k92, k93, k94, CTL_T(k95), \
- k41 , k42 , k43 , k44 , ka2, ka3, ka4, ka5 \
- )
-# define WRAPPER_moonlander_gamepad( \
- k00, k01, k02, k03, k04, k05, k06, \
- k10, k11, k12, k13, k14, k15, k16, \
- k20, k21, k22, k23, k24, k25, k26, \
- k30, k31, k32, k33, k34, k35, \
- k40, k41, k42, k43, k44, k53, \
- k50, k51, k52 \
- ) WRAPPER_moonlander( \
- k00, k01, k02, k03, k04, k05, k06, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \
- k10, k11, k12, k13, k14, k15, k16, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \
- k20, k21, k22, k23, k24, k25, k26, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \
- k30, k31, k32, k33, k34, k35, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \
- k40, k41, k42, k43, k44, k53, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \
- k50, k51, k52, XXXXXXX, XXXXXXX, TO(_WORKMAN) \
- )
-
-# define LAYOUT_moonlander_common(...) WRAPPER_moonlander_common(__VA_ARGS__)
-# define LAYOUT_moonlander_mods(...) WRAPPER_moonlander_mods(__VA_ARGS__)
-# define LAYOUT_moonlander_gamepad(...) WRAPPER_moonlander_gamepad(__VA_ARGS__)
-#elif defined(KEYBOARD_ergodox_ez)
-/** Ergodox EZ Empty
- .---------------------------------------------. .---------------------------------------------.
- | | | | | | | | ! | | | | | | |
- !-------+-----+-----+-----+-----+-------------! !-------+-----+-----+-----+-----+-----+-------!
- | | | | | | | | ! | | | | | | |
- !-------+-----+-----+-----x-----x-----! ! ! !-----x-----x-----+-----+-----+-------!
- | | | | | | |-------! !-------! | | | | | |
- !-------+-----+-----+-----x-----x-----! ! ! !-----x-----x-----+-----+-----+-------!
- | | | | | | | | ! | | | | | | |
- '-------+-----+-----+-----+-----+-------------' '-------------+-----+-----+-----+-----+-------'
- | | | | | | ! | | | | |
- '------------------------------' '------------------------------'
- .---------------. .---------------.
- | | | ! | |
- .-------+-------+-------! !-------+-------+-------.
- ! ! | | ! | ! !
- ! ! !-------! !-------! ! !
- | | | | ! | | |
- '-----------------------' '-----------------------'
-
- ---------- LEFT HAND ----------- ---------- RIGHT HAND ----------
- ( \
- L00,L01,L02,L03,L04,L05,L06, R00,R01,R02,R03,R04,R05,R06, \
- L10,L11,L12,L13,L14,L15,L16, R10,R11,R12,R13,R14,R15,R16, \
- L20,L21,L22,L23,L24,L25, R21,R22,R23,R24,R25,R26, \
- L30,L31,L32,L33,L34,L35,L36, R30,R31,R32,R33,R34,R35,R36, \
- L40,L41,L42,L43,L44, R42,R43,R44,R45,R46, \
- L55,L56, R50,R51, \
- L54, R52, \
- L53,L52,L51, R55,R54,R53 \
- )
-*/
-# define WRAPPER_ergodox_ez(...) LAYOUT_ergodox_pretty(__VA_ARGS__)
-
-/** Common Wrapper
- .---------------------------------------------. .---------------------------------------------.
- | X | X | X | X | X | X | X | ! X | X | X | X | X | X | X |
- !-------+-----+-----+-----+-----+-------------! !-------+-----+-----+-----+-----+-----+-------!
- | X | | | | | | X | ! X | | | | | | X |
- !-------+-----+-----+-----x-----x-----! ! ! !-----x-----x-----+-----+-----+-------!
- | X | | | | | |-------! !-------! | | | | | X |
- !-------+-----+-----+-----x-----x-----! X ! ! X !-----x-----x-----+-----+-----+-------!
- | X | | | | | | | ! | | | | | | X |
- '-------+-----+-----+-----+-----+-------------' '-------------+-----+-----+-----+-----+-------'
- | SPCL | | | | | ! | | | | SPCL |
- '------------------------------' '------------------------------'
- .---------------. .---------------.
- | X | X | ! X | X |
- .-------+-------+-------! !-------+-------+-------.
- ! Space ! BSpace| X | ! X | Tab ! Enter !
- ! / ! / !-------! !-------! / ! / !
- | LOWER | Hyper | LEAD | ! CCCV | Meh | RAISE |
- '-----------------------' '-----------------------'
-*/
-# define WRAPPER_ergodox_common( \
- L11,L12,L13,L14,L15, R11,R12,R13,R14,R15, \
- L21,L22,L23,L24,L25, R21,R22,R23,R24,R25, \
- L31,L32,L33,L34,L35, R31,R32,R33,R34,R35, \
- L41,L42,L43,L44, R42,R43,R44,R45 \
- ) WRAPPER_ergodox_ez( \
- XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \
- XXXXXXX, L11, L12, L13, L14, L15, XXXXXXX, XXXXXXX, R11, R12, R13, R14, R15, XXXXXXX, \
- XXXXXXX, L21, L22, L23, L24, L25, R21, R22, R23, R24, R25, XXXXXXX, \
- KC_LSFT, L31, L32, L33, L34, L35, XXXXXXX, XXXXXXX, R31, R32, R33, R34, R35, KC_RSFT, \
- MO(_SPECIAL), L41, L42, L43, L44, R42, R43, R44, R45, MO(_SPECIAL), \
- \
- XXXXXXX,XXXXXXX, XXXXXXX,XXXXXXX, \
- XXXXXXX, XXXXXXX, \
- LT(_LOWER, KC_SPC),HYPR_T(KC_BSPC),QK_LEAD, KC_CCCV,SFT_T(KC_TAB),LT(_RAISE, KC_ENT) )
-
-/** Common Wrapper with Mod Tap/Hold overlay
- .---------------------------------------------. .---------------------------------------------.
- | X | X | X | X | X | X | X | ! X | X | X | X | X | X | X |
- !-------+-----+-----+-----+-----+-------------! !-------+-----+-----+-----+-----+-----+-------!
- | X | | | | | | X | ! X | | | | | | X |
- !-------+-----+-----+-----x-----x-----! ! ! !-----x-----x-----+-----+-----+-------!
- | X | |Shift| Cmd | Alt | |-------! !-------! | Alt | Cmd |Shift| | X |
- !-------+-----+-----+-----x-----x-----! X ! ! X !-----x-----x-----+-----+-----+-------!
- | Sft | Ctl | | | | | | ! | | | | | Ctl | Sft |
- '-------+-----+-----+-----+-----+-------------' '-------------+-----+-----+-----+-----+-------'
- | SPCL | | | | | ! | | | | SPCL |
- '------------------------------' '------------------------------'
- .---------------. .---------------.
- | X | X | ! X | X |
- .-------+-------+-------! !-------+-------+-------.
- ! Space ! BSpace| X | ! X | Tab ! Enter !
- ! / ! / !-------! !-------! / ! / !
- | LOWER | Hyper | LEAD | ! CCCV | Meh | RAISE |
- '-----------------------' '-----------------------'
-*/
-# define WRAPPER_ergodox_mods( \
- L11,L12,L13,L14,L15, R11,R12,R13,R14,R15, \
- L21,L22,L23,L24,L25, R21,R22,R23,R24,R25, \
- L31,L32,L33,L34,L35, R31,R32,R33,R34,R35, \
- L41,L42,L43,L44, R42,R43,R44,R45 \
- ) WRAPPER_ergodox_common( \
- L11 , L12 , L13 , L14 , L15, R11, R12 , R13 , R14 , R15, \
- L21 , SFT_T(L22), GUI_T(L23), ALT_T(L24), L25, R21, ALT_T(R22), GUI_T(R23), SFT_T(R24), R25, \
- CTL_T(L31), L32 , L33 , L34 , L35, R31, R32 , R33 , R34 , CTL_T(R35), \
- L41 , L42 , L43 , L44 , R42 , R43 , R44 , R45 )
-
-// These macros are used when defining layouts in keymap.c
-# define LAYOUT_ergodox_common(...) WRAPPER_ergodox_common(__VA_ARGS__)
-# define LAYOUT_ergodox_mods(...) WRAPPER_ergodox_mods(__VA_ARGS__)
-#endif // END Keyboard specific wrapper defines
-/**
- * Alpha/Num key wrappers for portability
- */
-
-// Workman
-#define __________________WORKMN_L1__________________ KC_Q, KC_D, KC_R, KC_W, KC_B
-#define __________________WORKMN_L2__________________ KC_A, KC_S, KC_H, KC_T, KC_G
-#define __________________WORKMN_L3__________________ KC_Z, KC_X, KC_M, KC_C, KC_V
-
-#define __________________WORKMN_R1__________________ KC_J, KC_F, KC_U, KC_P, KC_SCLN
-#define __________________WORKMN_R2__________________ KC_Y, KC_N, KC_E, KC_O, KC_I
-#define __________________WORKMN_R3__________________ KC_K, KC_L, KC_COMM, KC_DOT, KC_SLSH
-
-// QWERTY
-#define __________________QWERTY_L1__________________ KC_Q, KC_W, KC_E, KC_R, KC_T
-#define __________________QWERTY_L2__________________ KC_A, KC_S, KC_D, KC_F, KC_G
-#define __________________QWERTY_L3__________________ KC_Z, KC_X, KC_C, KC_V, KC_B
-
-#define __________________QWERTY_R1__________________ KC_Y, KC_U, KC_I, KC_O, KC_P
-#define __________________QWERTY_R2__________________ KC_H, KC_J, KC_K, KC_L, KC_SCLN
-#define __________________QWERTY_R3__________________ KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH
-
-#define ________________QWERTY_R1_LHS________________ KC_P, KC_O, KC_I, KC_U, KC_Y
-#define ________________QWERTY_R2_LHS________________ KC_SCLN, KC_L, KC_K, KC_J, KC_H
-#define ________________QWERTY_R3_LHS________________ KC_SLSH, KC_DOT, KC_COMM, KC_M, KC_N
-
-// Nums
-#define ___________________NUMS_L____________________ KC_1, KC_2, KC_3, KC_4, KC_5, KC_6
-#define ___________________NUMS_R____________________ KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL
-
-// Lower
-#define __________________LOWER_L1___________________ KC_PGUP, KC_TAB, KC_UP, KC_ENT, KC_PGDN
-#define __________________LOWER_L2___________________ KC_HOME, KC_LEFT, KC_DOWN, KC_RGHT, KC_END
-#define __________________LOWER_L3___________________ KC_ESC, KC_BSPC, KC_CUT, KC_DEL, KC_CCCV
-
-#define __________________LOWER_R1___________________ XXXXXXX, KC_7, KC_8, KC_9, KC_ASTR
-#define __________________LOWER_R2___________________ XXXXXXX, KC_4, KC_5, KC_6, KC_SLSH
-#define __________________LOWER_R3___________________ XXXXXXX, KC_1, KC_2, KC_3, KC_MINS
-// Relevant keys: -> KC_0, KC_DOT, KC_COMM, KC_PLUS <- these keys break our lovely wrapper pattern
-
-// Raise
-#define __________________RAISE_L1___________________ KC_PIPE, KC_UNDS, KC_LBRC, KC_RBRC, KC_AMPR
-#define __________________RAISE_L2___________________ KC_BSLS, KC_SLSH, KC_LCBR, KC_RCBR, KC_ASTR
-#define __________________RAISE_L3___________________ KC_HASH, KC_DLR , KC_PERC, KC_TILD, KC_GRV
-
-#define __________________RAISE_R1___________________ KC_EXLM, KC_LABK, KC_RABK, KC_MINS, KC_SCLN
-#define __________________RAISE_R2___________________ KC_QUES, KC_LPRN, KC_RPRN, KC_EQL, KC_COLN
-#define __________________RAISE_R3___________________ KC_AT, KC_QUOT, KC_DQUO, KC_PLUS, KC_CIRC
-
-// Adjust
-#define __________________ADJUST_L1__________________ KC_MAKE, DB_TOGG, QK_BOOT, XXXXXXX, XXXXXXX
-#define __________________ADJUST_L2__________________ KC_MUTE, KC_VOLD, KC_VOLU, KC_MPLY, KC_MNXT
-#define __________________ADJUST_L3__________________ KC_VRSN, AU_ON, AU_OFF, CG_SWAP, CG_NORM
-
-#define __________________ADJUST_R1__________________ MU_NEXT, MU_ON, MU_OFF, MI_ON, MI_OFF
-#define __________________ADJUST_R2__________________ AU_NEXT, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD
-#define __________________ADJUST_R3__________________ AU_PREV, RGB_TOG, RGB_MOD, RGB_VAI, RGB_VAD
-// clang-format on
diff --git a/users/jonavin/config.h b/users/jonavin/config.h
deleted file mode 100644
index 8c5451075c..0000000000
--- a/users/jonavin/config.h
+++ /dev/null
@@ -1,34 +0,0 @@
-/* Copyright 2021 Jonavin Eng
- *
- * 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 TAPPING_TOGGLE 2 // TT () set to two taps
-
-/* Handle GRAVESC combo keys */
-#define GRAVE_ESC_ALT_OVERRIDE // Always send Escape if Alt is pressed
-#define GRAVE_ESC_CTRL_OVERRIDE // Always send Escape if Control is pressed
-
-#define TAPPING_TERM 180
-#define TAPPING_TERM_PER_KEY
-
-#ifdef RGB_MATRIX_ENABLE
- #ifdef RGB_MATRIX_DEFAULT_MODE
- #undef RGB_MATRIX_DEFAULT_MODE
- #endif
- #define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_SOLID_COLOR
- #define RGB_DISABLE_WHEN_USB_SUSPENDED
-#endif
diff --git a/users/jonavin/jonavin.c b/users/jonavin/jonavin.c
deleted file mode 100644
index c936421040..0000000000
--- a/users/jonavin/jonavin.c
+++ /dev/null
@@ -1,233 +0,0 @@
-
-/* Copyright 2021 Jonavin Eng @Jonavin
-
-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 "jonavin.h"
-
-
-#ifdef TD_LSFT_CAPSLOCK_ENABLE
- // Tap once for shift, twice for Caps Lock but only if Win Key in not disabled
- void dance_LSFT_finished(tap_dance_state_t *state, void *user_data) {
- if (state->count == 1 || keymap_config.no_gui) {
- register_code16(KC_LSFT);
- } else {
- register_code(KC_CAPS);
- }
- }
-
- void dance_LSFT_reset(tap_dance_state_t *state, void *user_data) {
- if (state->count == 1 || keymap_config.no_gui) {
- unregister_code16(KC_LSFT);
- } else {
- unregister_code(KC_CAPS);
- }
- }
-
- tap_dance_action_t tap_dance_actions[] = {
- // Tap once for shift, twice for Caps Lock
- [TD_LSFT_CAPSLOCK] = ACTION_TAP_DANCE_DOUBLE(KC_LSFT, KC_CAPS),
- [TD_LSFT_CAPS_WIN] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, dance_LSFT_finished, dance_LSFT_reset),
- };
-#endif // TD_LSFT_CAPSLOCK_ENABLE
-
-// RGB NIGHT MODE
-#ifdef RGB_MATRIX_ENABLE
- static bool rgb_nightmode = false;
-
- // Turn on/off NUM LOCK if current state is different
- void activate_rgb_nightmode (bool turn_on) {
- if (rgb_nightmode != turn_on) {
- rgb_nightmode = !rgb_nightmode;
- }
- }
-
- bool get_rgb_nightmode(void) {
- return rgb_nightmode;
- }
-#endif // RGB_MATRIX_ENABLE
-
-// TIMEOUTS
-#ifdef IDLE_TIMEOUT_ENABLE
- static uint16_t timeout_timer = 0;
- static uint16_t timeout_counter = 0; //in minute intervals
- static uint16_t timeout_threshold = TIMEOUT_THRESHOLD_DEFAULT;
-
- uint16_t get_timeout_threshold(void) {
- return timeout_threshold;
- }
-
- void timeout_reset_timer(void) {
- timeout_timer = timer_read();
- timeout_counter = 0;
- };
-
- void timeout_update_threshold(bool increase) {
- if (increase && timeout_threshold < TIMEOUT_THRESHOLD_MAX) timeout_threshold++;
- if (!increase && timeout_threshold > 0) timeout_threshold--;
- };
-
- void timeout_tick_timer(void) {
- if (timeout_threshold > 0) {
- if (timer_elapsed(timeout_timer) >= 60000) { // 1 minute tick
- timeout_counter++;
- timeout_timer = timer_read();
- }
- #ifdef RGB_MATRIX_ENABLE
- if (timeout_threshold > 0 && timeout_counter >= timeout_threshold) {
- rgb_matrix_disable_noeeprom();
- }
- #endif
- } // timeout_threshold = 0 will disable timeout
- }
-
-#endif // IDLE_TIMEOUT_ENABLE
-
-#if defined(ALTTAB_SCROLL_ENABLE) || defined(IDLE_TIMEOUT_ENABLE) // timer features
- __attribute__((weak)) void matrix_scan_keymap(void) {}
-
- void matrix_scan_user(void) {
- #ifdef ALTTAB_SCROLL_ENABLE
- encoder_tick_alttabscroll();
- #endif
- #ifdef IDLE_TIMEOUT_ENABLE
- timeout_tick_timer();
- #endif
- matrix_scan_keymap();
- }
-#endif // ALTTAB_SCROLL_ENABLE or IDLE_TIMEOUT_ENABLE
-
-// PROCESS KEY CODES
-__attribute__ ((weak)) bool process_record_keymap(uint16_t keycode, keyrecord_t *record) { return true; }
-
-bool process_record_user(uint16_t keycode, keyrecord_t *record) {
- if (!process_record_keymap(keycode, record)) { return false; }
- switch (keycode) {
- case KC_00:
- if (record->event.pressed) {
- // when keycode KC_00 is pressed
- SEND_STRING("00");
- } else unregister_code16(keycode);
- break;
- case KC_WINLCK:
- if (record->event.pressed) {
- keymap_config.no_gui = !keymap_config.no_gui; //toggle status
- } else unregister_code16(keycode);
- break;
-
-#ifdef IDLE_TIMEOUT_ENABLE
- case RGB_TOI:
- if(record->event.pressed) {
- timeout_update_threshold(true);
- } else unregister_code16(keycode);
- break;
- case RGB_TOD:
- if(record->event.pressed) {
- timeout_update_threshold(false); //decrease timeout
- } else unregister_code16(keycode);
- break;
-#endif // IDLE_TIMEOUT_ENABLE
-#ifdef RGB_MATRIX_ENABLE
- case RGB_NITE:
- if(record->event.pressed) {
- rgb_nightmode = !rgb_nightmode;
- } else unregister_code16(keycode);
- break;
-#endif // RGB_MATRIX_ENABLE
-
-#ifdef EMOTICON_ENABLE
- case EMO_SHRUG:
- if (record->event.pressed) SEND_STRING("`\\_(\"/)_/`");
- else unregister_code16(keycode);
- break;
- case EMO_CONFUSE:
- if (record->event.pressed) SEND_STRING("(*_*)");
- else unregister_code16(keycode);
- break;
- case EMO_TEARS:
- if (record->event.pressed) SEND_STRING("(T_T)");
- else unregister_code16(keycode);
- break;
- case EMO_NERVOUS:
- if (record->event.pressed) SEND_STRING("(~_~;)");
- else unregister_code16(keycode);
- break;
- case EMO_JOY:
- if (record->event.pressed) SEND_STRING("(^o^)");
- else unregister_code16(keycode);
- break;
- case EMO_SAD:
- if (record->event.pressed) SEND_STRING(":'-(");
- else unregister_code16(keycode);
- break;
- #endif // EMOTICON_ENABLE
-
- #ifdef ALTTAB_SCROLL_ENABLE
- case KC_TSTOG:
- if (record->event.pressed) encoder_toggle_alttabscroll();
- else unregister_code16(keycode);
- break;
- #endif // ALTTAB_SCROLL_ENABLE
-
- default:
- if (record->event.pressed) {
- #ifdef RGB_MATRIX_ENABLE
- rgb_matrix_enable();
- #endif
- #ifdef IDLE_TIMEOUT_ENABLE
- timeout_reset_timer(); //reset activity timer
- #endif
- }
- break;
- }
- return true;
-};
-
-
-uint16_t get_tapping_term(uint16_t keycode, keyrecord_t *record) {
- switch (keycode) {
- case KC_SFTUP:
- return 300;
- case KC_RAISESPC:
- case KC_LOWERSPC:
- return 450;
- default:
- return TAPPING_TERM;
- }
-}
-
-// Turn on/off NUM LOCK if current state is different
-void activate_numlock(bool turn_on) {
- if (host_keyboard_led_state().num_lock != turn_on) {
- tap_code(KC_NUM_LOCK);
- }
-}
-
-
-// INITIAL STARTUP
-
-__attribute__ ((weak)) void keyboard_post_init_keymap(void) {}
-
-void keyboard_post_init_user(void) {
- keyboard_post_init_keymap();
- #ifdef STARTUP_NUMLOCK_ON
- activate_numlock(true); // turn on Num lock by default so that the numpad layer always has predictable results
- #endif // STARTUP_NUMLOC_ON
- #ifdef IDLE_TIMEOUT_ENABLE
- timeout_timer = timer_read(); // set inital time for ide timeout
- #endif
-}
diff --git a/users/jonavin/jonavin.h b/users/jonavin/jonavin.h
deleted file mode 100644
index 97f72c1248..0000000000
--- a/users/jonavin/jonavin.h
+++ /dev/null
@@ -1,130 +0,0 @@
-
-/* Copyright 2021 Jonavin Eng @Jonavin
-
-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 MACROS
-#ifndef ARRAYSIZE
-#define ARRAYSIZE(arr) sizeof(arr)/sizeof(arr[0])
-#endif // !ARRAYSIZE
-
-// LAYERS
-enum custom_user_layers {
- _BASE,
- _FN1,
- _LOWER,
- _RAISE,
-};
-
-// KEYCODES
-enum custom_user_keycodes {
- KC_00 = SAFE_RANGE,
- ENCFUNC,
- KC_WINLCK, //Toggles Win key on and off
- RGB_TOI, // Timeout idle time up
- RGB_TOD, // Timeout idle time down
- RGB_NITE, // Turns off all rgb but allow rgb indicators to work
-
- EMO_SHRUG, // `\_("/)_/`
- EMO_CONFUSE, // (*_*)
- EMO_SAD, // :'-(
- EMO_NERVOUS, // (~_~;)
- EMO_JOY, // (^o^)
- EMO_TEARS, // (T_T)
-
- KC_TSTOG, // Tab Scroll Toggle
-
- NEW_SAFE_RANGE // new safe range for keymap level custom keycodes
-};
-
-#define KC_CAD LALT(LCTL(KC_DEL))
-#define KC_AF4 LALT(KC_F4)
-#define KC_TASK LCTL(LSFT(KC_ESC))
-#define CT_PGUP RCTL(KC_PGUP)
-#define CT_PGDN RCTL(KC_PGDN)
-#define CT_HOME RCTL(KC_HOME)
-#define CT_END RCTL(KC_END)
-#define KC_SFTUP RSFT_T(KC_UP) // Shift when held, Up arrow when tapped
-#define KC_RAISESPC LT(_RAISE,KC_SPC) // _RAISE layer mod when held, space when tapped
-#define KC_LOWERSPC LT(_LOWER,KC_SPC) // _LOWER layer mod when held, space when tapped
-
-
-#ifdef TD_LSFT_CAPSLOCK_ENABLE
- // Tap Dance Definitions
- enum custom_tapdance {
- TD_LSFT_CAPSLOCK,
- TD_LSFT_CAPS_WIN
- };
-
- #define KC_LSFTCAPS TD(TD_LSFT_CAPSLOCK)
- #define KC_LSFTCAPSWIN TD(TD_LSFT_CAPS_WIN)
-#else // regular Shift
- #define KC_LSFTCAPS KC_LSFT
-#endif // TD_LSFT_CAPSLOCK_ENABLE
-
-
-// ENCODER ACTIONS
-#ifdef ENCODER_ENABLE
- void encoder_action_volume(bool clockwise);
- void encoder_action_mediatrack(bool clockwise);
- void encoder_action_navword(bool clockwise);
- void encoder_action_navpage(bool clockwise);
-
- uint8_t get_selected_layer(void);
- void encoder_action_layerchange(bool clockwise);
-
- #if defined(RGB_MATRIX_ENABLE) || defined(RGBLIGHT_ENABLE)
- void encoder_action_rgb_speed(bool clockwise);
- void encoder_action_rgb_hue(bool clockwise);
- void encoder_action_rgb_saturation(bool clockwise);
- void encoder_action_rgb_brightness(bool clockwise);
- void encoder_action_rgb_mode(bool clockwise);
- #endif // RGB_MATRIX_ENABLE / RGBLIGHT_ENABLE
-
- #ifdef ALTTAB_SCROLL_ENABLE
- void encoder_action_alttabscroll(bool clockwise);
- void encoder_toggle_alttabscroll(void);
- void encoder_tick_alttabscroll(void);
- #endif // ALTTAB_SCROLL_ENABLE
-#endif // ENCODER_ENABLE
-
-
-#ifdef RGB_MATRIX_ENABLE
-//RGB custom colours
- #define RGB_GODSPEED 0x00, 0xE4, 0xFF // colour for matching keycaps
- #define RGB_NAUTILUS 0x00, 0xA4, 0xA9 // Nautilus Font colours
-
- void activate_rgb_nightmode (bool turn_on);
- bool get_rgb_nightmode(void);
-#endif
-
-
-// IDLE TIMEOUTS
-#ifdef IDLE_TIMEOUT_ENABLE
- #define TIMEOUT_THRESHOLD_DEFAULT 5 // default timeout minutes
- #define TIMEOUT_THRESHOLD_MAX 140 // upper limits (2 hours and 10 minutes -- no rgb indicators above this value)
-
- //prototype functions
- uint16_t get_timeout_threshold(void);
- void timeout_reset_timer(void);
- void timeout_update_threshold(bool increase);
- void timeout_tick_timer(void);
-#endif //IDLE_TIMEOUT_ENABLE
-
-
-// OTHER FUNCTION PROTOTYPE
-void activate_numlock(bool turn_on);
diff --git a/users/jonavin/jonavin_encoder.c b/users/jonavin/jonavin_encoder.c
deleted file mode 100644
index 387ed5f430..0000000000
--- a/users/jonavin/jonavin_encoder.c
+++ /dev/null
@@ -1,219 +0,0 @@
-
-/* Copyright 2021 Jonavin Eng @Jonavin
-
-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 "jonavin.h"
-
-#ifdef ENCODER_ENABLE
- #ifndef DYNAMIC_KEYMAP_LAYER_COUNT
- #define DYNAMIC_KEYMAP_LAYER_COUNT 4 //default in case this is not already defined elsewhere
- #endif
- #ifndef ENCODER_DEFAULTACTIONS_INDEX
- #define ENCODER_DEFAULTACTIONS_INDEX 0 // can select encoder index if there are multiple encoders
- #endif
-
- void encoder_action_volume(bool clockwise) {
- if (clockwise)
- tap_code(KC_VOLU);
- else
- tap_code(KC_VOLD);
- }
-
- void encoder_action_mediatrack(bool clockwise) {
- if (clockwise)
- tap_code(KC_MEDIA_NEXT_TRACK);
- else
- tap_code(KC_MEDIA_PREV_TRACK);
- }
-
- void encoder_action_navword(bool clockwise) {
- if (clockwise)
- tap_code16(LCTL(KC_RGHT));
- else
- tap_code16(LCTL(KC_LEFT));
- }
-
- void encoder_action_navpage(bool clockwise) {
- if (clockwise)
- tap_code16(KC_PGUP);
- else
- tap_code16(KC_PGDN);
- }
-
- // LAYER HANDLING
- uint8_t selected_layer = 0;
-
- uint8_t get_selected_layer(void) {
- return selected_layer;
- }
-
- void encoder_action_layerchange(bool clockwise) {
- if (clockwise) {
- if(selected_layer < (DYNAMIC_KEYMAP_LAYER_COUNT - 1)) {
- selected_layer ++;
- layer_move(selected_layer);
- }
- } else {
- if (selected_layer > 0) {
- selected_layer --;
- layer_move(selected_layer);
- }
- }
- }
-
- #ifdef RGB_MATRIX_ENABLE
- void encoder_action_rgb_speed(bool clockwise) {
- if (clockwise)
- rgb_matrix_increase_speed_noeeprom();
- else
- rgb_matrix_decrease_speed_noeeprom();
- }
- void encoder_action_rgb_hue(bool clockwise) {
- if (clockwise)
- rgb_matrix_increase_hue_noeeprom();
- else
- rgb_matrix_decrease_hue_noeeprom();
- }
- void encoder_action_rgb_saturation(bool clockwise) {
- if (clockwise)
- rgb_matrix_increase_sat_noeeprom();
- else
- rgb_matrix_decrease_sat_noeeprom();
- }
- void encoder_action_rgb_brightness(bool clockwise) {
- if (clockwise)
- rgb_matrix_increase_val_noeeprom();
- else
- rgb_matrix_decrease_val_noeeprom();
- }
- void encoder_action_rgb_mode(bool clockwise) {
- if (clockwise)
- rgb_matrix_step_noeeprom();
- else
- rgb_matrix_step_reverse_noeeprom();
- }
- #elif defined(RGBLIGHT_ENABLE)
- void encoder_action_rgb_speed(bool clockwise) {
- if (clockwise)
- rgblight_increase_speed_noeeprom();
- else
- rgblight_decrease_speed_noeeprom();
- }
- void encoder_action_rgb_hue(bool clockwise) {
- if (clockwise)
- rgblight_increase_hue_noeeprom();
- else
- rgblight_decrease_hue_noeeprom();
- }
- void encoder_action_rgb_saturation(bool clockwise) {
- if (clockwise)
- rgblight_increase_sat_noeeprom();
- else
- rgblight_decrease_sat_noeeprom();
- }
- void encoder_action_rgb_brightness(bool clockwise) {
- if (clockwise)
- rgblight_increase_val_noeeprom();
- else
- rgblight_decrease_val_noeeprom();
- }
- void encoder_action_rgb_mode(bool clockwise) {
- if (clockwise)
- rgblight_step_noeeprom();
- else
- rgblight_step_reverse_noeeprom();
- }
- #endif // RGB_MATRIX_ENABLE || RGBLIGHT_ENABLE
-
- #ifdef ALTTAB_SCROLL_ENABLE
- bool is_tab_scrolling = false;
- bool is_alt_tab_active = false;
- uint16_t alt_tab_timer = 0;
-
-
- void encoder_toggle_alttabscroll(void) {
- is_tab_scrolling = !is_tab_scrolling;
- }
-
- void encoder_action_alttabscroll(bool clockwise) {
- if (clockwise) {
- if (!is_alt_tab_active) {
- is_alt_tab_active = true;
- register_mods(MOD_RALT);
- }
- tap_code16(KC_TAB);
- }
- else {
- tap_code16(S(KC_TAB));
- }
- alt_tab_timer = timer_read();
- }
-
- void encoder_tick_alttabscroll(void) {
- if (is_alt_tab_active) {
- if (timer_elapsed(alt_tab_timer) > 600) {
- unregister_mods(MOD_RALT);
- is_alt_tab_active = false;
- }
- }
- }
- #endif // ALTTAB_SCROLL_ENABLE
-#endif // ENCODER_ENABLE
-
-#if defined(ENCODER_ENABLE) && defined(ENCODER_DEFAULTACTIONS_ENABLE) // Encoder Functionality
-
- __attribute__((weak)) bool encoder_update_keymap(uint8_t index, bool clockwise) { return true; }
-
- bool encoder_update_user(uint8_t index, bool clockwise) {
- if (!encoder_update_keymap(index, clockwise)) { return false; }
- if (index != ENCODER_DEFAULTACTIONS_INDEX) {return true;} // exit if the index doesn't match
- uint8_t mods_state = get_mods();
- if (mods_state & MOD_BIT(KC_LSFT) ) { // If you are holding L shift, encoder changes layers
- encoder_action_layerchange(clockwise);
- } else if (mods_state & MOD_BIT(KC_RSFT) ) { // If you are holding R shift, Page up/dn
- unregister_mods(MOD_BIT(KC_RSFT));
- encoder_action_navpage(clockwise);
- register_mods(MOD_BIT(KC_RSFT));
- } else if (mods_state & MOD_BIT(KC_LCTL)) { // if holding Left Ctrl, navigate next/prev word
- encoder_action_navword(clockwise);
- } else if (mods_state & MOD_BIT(KC_LALT)) { // if holding Left Alt, change media next/prev track
- encoder_action_mediatrack(clockwise);
- } else {
- switch(get_highest_layer(layer_state)) {
- case _FN1:
- #ifdef IDLE_TIMEOUT_ENABLE
- timeout_update_threshold(clockwise);
- #endif
- break;
- default:
- #ifdef ALTTAB_SCROLL_ENABLE
- if (is_tab_scrolling)
- encoder_action_alttabscroll(clockwise);
- else
- encoder_action_volume(clockwise); // Otherwise it just changes volume
- #else
- encoder_action_volume(clockwise); // Otherwise it just changes volume
- #endif // ALTTAB_SCROLL_ENABLE
- break;
- }
- }
- return false;
- }
-#endif // ENCODER_ENABLE
-
-
diff --git a/users/jonavin/readme.md b/users/jonavin/readme.md
deleted file mode 100644
index 204032ae1a..0000000000
--- a/users/jonavin/readme.md
+++ /dev/null
@@ -1,124 +0,0 @@
-Copyright 2021 Jonavin Eng @Jonavin
-
-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/>.
-
-LAYERS:
-- 0 = _BASE
-- 1 = _FN1
-- 2 = _LOWER
-- 3 = _RAISE
-
-KEYCODES:
-- KC_CAD Ctrl-Alt-Del
-- KC_AF4 Alt-F4
-- KC_TASK Windows Task Manager (Ctrl-Shift-Esc)
-- LSFT_CAPSLOCK When LSFT_CAPSLOCK_ENABLE is defined, hold for Shift double tap for CAPSLOCK; otherwise, just Shift
-- KC_00 double zero "00"
-- KC_WINLCK toggles LGui/Win key lock
-- RGB_TOI Increase Timeout idle time threshold
-- RGB_TOD Decrease Timeout idle time threshold
-- CT_PGUP Ctrl-PgUp
-- CT_PGDN Ctrl-PgDn
-- CT_HOME Ctrl-HOme
-- CT_END Ctrl-End
-- KC_SFTUP RShift when held, Up arrow when tapped
-- KC_RAISESPC _RAISE layer mod when held, space when tapped
-- KC_LOWERSPC _LOWER layer mod when held, space when tapped
-- KC_TSTOG toggles between volume and Alt-Tab encoder control
--
- When EMOTICON_ENABLE = yes
-- EMO_SHRUG `\_("/)_/`
-- EMO_CONFUSE (*_*)
-- EMD_TEARS (T_T)
-- EMO_NERVOUS (~_~;)
-- EMO_JOY (^o^)
-- EMO_SAD :'-(
-
-
-AVAILABLE ENCODER ACTIONS:
-- void encoder_action_volume(bool clockwise);
-- void encoder_action_mediatrack(bool clockwise);
-- void encoder_action_navword(bool clockwise);
-- void encoder_action_navpage(bool clockwise);
--
-- uint8_t get_selected_layer(void);
-- void encoder_action_layerchange(bool clockwise);
--
-- void encoder_action_rgb_speed(bool clockwise);
-- void encoder_action_rgb_hue(bool clockwise);
-- void encoder_action_rgb_saturation(bool clockwise);
-- void encoder_action_rgb_brightness(bool clockwise);
-- void encoder_action_rgb_mode(bool clockwise);
--
-- void encoder_action_alttabscroll(bool clockwise)
-- void encoder_toggle_alttabscroll(void);
-
-ENABLE FEATURES your keymap rules.mk
----------------------------------------
-
-STARTUP_NUMLOCK_ON = yes
-- turns on NUMLOCK by default
-
-ENCODER_DEFAULTACTIONS_ENABLE = yes
-- Enabled default encoder funtions
-- When enabled, use this in the keymap for an additional encoder processing
-- bool encoder_update_keymap(uint8_t index, bool clockwise)
-
-OPTION: set ENCODER_DEFAULTACTIONS_INDEX to the encoder number if the encoder is not index 0
-
-TD_LSFT_CAPSLOCK_ENABLE = yes
-- This will enable double tap on Left Shift to toggle CAPSLOCK
-- KC_LSFTCAPS to bind to left Shift to enable feature
-- KC_LSFTCAPSWIN does the same thing but will not turn on CAPS when Win Lkey is disabled
-
-IDLE_TIMEOUT_ENABLE = yes
-- Enables Timer functionality; for RGB idle timeouts that can be changed dynamically
-- When enabled, use this in the keymap for an additional matrix processing: void matrix_scan_keymap(void)
-
-EMOTICON_ENABLE
-- adds EMO_ keycodes for text emojis
-
-INVERT_NUMLOCK_INDICATOR
-- inverts the Num lock indicator, LED is on when num lock is off
-
-ALTTAB_SCROLL_ENABLE
-- When ENCODER_DEFAULTACTIONS_ENABLE = yes,
- Enables Alt-Tab scrolling functions in default encoder,
- bind KS_TSTOG to a key to enable/disable Alt-Tab vs Volume control
-- When defining your own encoder functions use encoder_action_alttabscroll(bool clockwise) to assign the encodr action
-
-
-FUNCTIONS
-------------------------
-- u16int_t get_timeout_threshold(void) // returns the current timeout threshold
-- void timeout_update_threshold(bool increase) // change threshold: true = increase, false = decrease
-- void timeout_reset_timer(void) // resets timer (put in process_record_user if you override it)
-- void timeout_tick_timer(void) // registers time ticks (put in maxtrix_scan_user if you override it)
-
-Other Functions:
-- activate_numlock(bool turn_on) // true = turn on NUM LOCK, false = off
-
-KEYMAP LEVEL ADDITIONAL PROCESSING FUNCTIONS
-- bool process_record_keymap(uint16_t keycode, keyrecord_t *record)
-- void keyboard_post_init_keymap(void)
-
-LIST OF COMPATIBLE KEYMAPS
-- gmmk/pro/ansi
-- keebio/quefrency/rev3
-- mechwild/mercutio
-- mechwild/murphpad
-- mechwild/OBE
-- kbdfans/kdb67
-- nopunin10did/kastenwagen48
-
diff --git a/users/jonavin/rules.mk b/users/jonavin/rules.mk
deleted file mode 100644
index 4f65db27b9..0000000000
--- a/users/jonavin/rules.mk
+++ /dev/null
@@ -1,29 +0,0 @@
-SRC += jonavin.c
-ifdef ENCODER_ENABLE
- # include encoder related code when enabled
- ifeq ($(strip $(ENCODER_DEFAULTACTIONS_ENABLE)), yes)
- OPT_DEFS += -DENCODER_DEFAULTACTIONS_ENABLE
- endif
- ifeq ($(strip $(ALTTAB_SCROLL_ENABLE)), yes)
- OPT_DEFS += -DALTTAB_SCROLL_ENABLE
- endif
- SRC += jonavin_encoder.c
-endif
-ifeq ($(strip $(TD_LSFT_CAPSLOCK_ENABLE)), yes)
- OPT_DEFS += -DTD_LSFT_CAPSLOCK_ENABLE
-endif
-ifeq ($(strip $(IDLE_TIMEOUT_ENABLE)), yes)
- OPT_DEFS += -DIDLE_TIMEOUT_ENABLE
-endif
-ifeq ($(strip $(STARTUP_NUMLOCK_ON)), yes)
- OPT_DEFS += -DSTARTUP_NUMLOCK_ON
-endif
-ifeq ($(strip $(COLEMAK_LAYER_ENABLE)), yes)
- OPT_DEFS += -DCOLEMAK_LAYER_ENABLE
-endif
-ifeq ($(strip $(EMOTICON_ENABLE)), yes)
- OPT_DEFS += -DEMOTICON_ENABLE
-endif
-ifeq ($(strip $(INVERT_NUMLOCK_INDICATOR)), yes)
- OPT_DEFS += -DINVERT_NUMLOCK_INDICATOR
-endif
diff --git a/users/kageurufu/config.h b/users/kageurufu/config.h
deleted file mode 100644
index 938d43dd5a..0000000000
--- a/users/kageurufu/config.h
+++ /dev/null
@@ -1,4 +0,0 @@
-#pragma once
-
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
diff --git a/users/kageurufu/custom_rgb.c b/users/kageurufu/custom_rgb.c
deleted file mode 100644
index 8e99129b0b..0000000000
--- a/users/kageurufu/custom_rgb.c
+++ /dev/null
@@ -1,18 +0,0 @@
-#include "custom_rgb.h"
-
-#if defined(RGBLIGHT_ENABLE)
- extern rgblight_config_t rgblight_config;
- rgblight_config_t _pushed_rgblight_config;
- #define push_rgb_config() { if (_pushed_rgblight_config.raw == 0) { _pushed_rgblight_config.raw = rgblight_config.raw; } }
- #define pop_rgb_config() { if (_pushed_rgblight_config.raw == 0) { rgblight_config.raw = _pushed_rgblight_config.raw; _pushed_rgblight_config.raw = 0; } }
-#elif defined(RGB_MATRIX_ENABLE)
- extern rgb_config_t rgb_matrix_config;
- rgb_config_t _pushed_rgb_matrix_config;
- #define push_rgb_config() _pushed_rgb_matrix_config.raw = rgb_matrix_config.raw
- #define pop_rgb_config() rgb_matrix_config.raw = _pushed_rgb_matrix_config.raw
-#endif
-
-
-bool process_record_rgb(uint16_t keycode, keyrecord_t *record) {
- return true;
-}
diff --git a/users/kageurufu/custom_rgb.h b/users/kageurufu/custom_rgb.h
deleted file mode 100644
index 62d64fd4c5..0000000000
--- a/users/kageurufu/custom_rgb.h
+++ /dev/null
@@ -1,3 +0,0 @@
-#pragma once
-
-#include "kageurufu.h"
diff --git a/users/kageurufu/kageurufu.c b/users/kageurufu/kageurufu.c
deleted file mode 100644
index e16af571bd..0000000000
--- a/users/kageurufu/kageurufu.c
+++ /dev/null
@@ -1,12 +0,0 @@
-#include "kageurufu.h"
-#include "quantum.h"
-#include "process_records.h"
-
-#ifdef RGBLIGHT_ENABLE
- //Following line allows macro to read current RGB settings
- extern rgblight_config_t rgblight_config;
- rgblight_config_t backup_rgblight_config;
-
- __attribute__((weak))
- uint8_t RGBLIGHT_MODS[] = {0};
-#endif
diff --git a/users/kageurufu/kageurufu.h b/users/kageurufu/kageurufu.h
deleted file mode 100644
index 76a0126fec..0000000000
--- a/users/kageurufu/kageurufu.h
+++ /dev/null
@@ -1,5 +0,0 @@
-#pragma once
-
-#include "quantum.h"
-#include "process_records.h"
-#include "layouts.h"
diff --git a/users/kageurufu/layouts.h b/users/kageurufu/layouts.h
deleted file mode 100644
index edf64c0b39..0000000000
--- a/users/kageurufu/layouts.h
+++ /dev/null
@@ -1,58 +0,0 @@
-#pragma once
-
-
-#define _________________NUMROW_L1_________________ KC_1, KC_2, KC_3, KC_4, KC_5
-#define _________________NUMROW_R1_________________ KC_6, KC_7, KC_8, KC_9, KC_0
-
-
-#define _________________QWERTY_L1_________________ KC_Q, KC_W, KC_E, KC_R, KC_T
-#define _________________QWERTY_L2_________________ KC_A, KC_S, KC_D, KC_F, KC_G
-#define _________________QWERTY_L3_________________ KC_Z, KC_X, KC_C, KC_V, KC_B
-
-#define _________________QWERTY_R1_________________ KC_Y, KC_U, KC_I, KC_O, KC_P
-#define _________________QWERTY_R2_________________ KC_H, KC_J, KC_K, KC_L, KC_SCLN
-#define _________________QWERTY_R3_________________ KC_N, KC_M, KC_COMM, KC_DOT, KC_SLASH
-
-
-#define _________________COLEMAK_L1________________ KC_Q, KC_W, KC_F, KC_P, KC_G
-#define _________________COLEMAK_L2________________ KC_A, KC_R, KC_S, KC_T, KC_D
-#define _________________COLEMAK_L3________________ KC_Z, KC_X, KC_C, KC_V, KC_B
-
-#define _________________COLEMAK_R1________________ KC_J, KC_L, KC_U, KC_Y, KC_SCLN
-#define _________________COLEMAK_R2________________ KC_H, KC_N, KC_E, KC_I, KC_O
-#define _________________COLEMAK_R3________________ KC_K, KC_M, KC_COMM, KC_DOT, KC_SLASH
-
-
-#define ______________COLEMAK_MOD_DH_L1____________ KC_Q, KC_W, KC_F, KC_P, KC_B
-#define ______________COLEMAK_MOD_DH_L2____________ KC_A, KC_R, KC_S, KC_T, KC_G
-#define ______________COLEMAK_MOD_DH_L3____________ KC_Z, KC_X, KC_C, KC_D, KC_V
-
-#define ______________COLEMAK_MOD_DH_R1____________ KC_J, KC_L, KC_U, KC_Y, KC_SCLN
-#define ______________COLEMAK_MOD_DH_R2____________ KC_M, KC_N, KC_E, KC_I, KC_O
-#define ______________COLEMAK_MOD_DH_R3____________ KC_K, KC_H, KC_COMM, KC_DOT, KC_SLASH
-
-
-#define ________________FUNCTION_L1________________ KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6
-#define ________________FUNCTION_L2________________ _______, KC_PGDN, KC_UP, KC_PGUP, _______, KC_LBRC
-#define ________________FUNCTION_L3________________ ADJ, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______
-#define ________________FUNCTION_L4________________ _______, _______, _______, _______, _______, _______
-#define ________________FUNCTION_L5________________ _______, _______, _______, _______, ADJ, _______
-
-#define ________________FUNCTION_R1________________ KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12
-#define ________________FUNCTION_R2________________ KC_RBRC, KC_7, KC_UP, KC_9, KC_0, KC_HOME
-#define ________________FUNCTION_R3________________ _______, KC_LEFT, KC_DOWN, KC_RGHT, KC_RBRC, KC_END
-#define ________________FUNCTION_R4________________ _______, _______, _______, KC_PGDN, KC_PGUP, _______
-#define ________________FUNCTION_R5________________ ADJ, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU
-
-
-#define _________________ADJUST_L1_________________ KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6
-#define _________________ADJUST_L2_________________ _______, RGB_SAD, RGB_VAI, RGB_SAI, QK_BOOT, _______
-#define _________________ADJUST_L3_________________ _______, RGB_HUD, RGB_VAD, RGB_HUI, RGBRST, _______
-#define _________________ADJUST_L4_________________ _______, _______, _______, _______, _______, _______
-#define _________________ADJUST_L5_________________ _______, _______, _______, _______, _______, _______
-
-#define _________________ADJUST_R1_________________ KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12
-#define _________________ADJUST_R2_________________ _______, _______, _______, _______, _______, KC_DEL
-#define _________________ADJUST_R3_________________ _______, QWERTY, COLEMAK, CMAK_DH, _______, _______
-#define _________________ADJUST_R4_________________ _______, _______, RGB_TOG, RGB_HUI, RGB_SAI, RGB_VAI
-#define _________________ADJUST_R5_________________ _______, _______, RGB_RMOD,RGB_HUD, RGB_SAD, RGB_VAD
diff --git a/users/kageurufu/process_records.c b/users/kageurufu/process_records.c
deleted file mode 100644
index 63dbcff89b..0000000000
--- a/users/kageurufu/process_records.c
+++ /dev/null
@@ -1,44 +0,0 @@
-#include "kageurufu.h"
-
-bool process_record_user(uint16_t keycode, keyrecord_t *record) {
- switch (keycode) {
- case QWERTY:
- if (record->event.pressed) {
- set_single_persistent_default_layer(_QWERTY);
- }
- return false;
- break;
- case COLEMAK:
- if(record->event.pressed) {
- set_single_persistent_default_layer(_COLEMAK);
- }
- return false;
- break;
- case RGBRST:
- #ifdef RGBLIGHT_ENABLE
- if (record->event.pressed) {
- eeconfig_update_rgblight_default();
- rgblight_enable();
- }
- #endif
- break;
- }
-
-
- return process_record_keymap(keycode, record) &&
-#if defined(RGBLIGHT_ENABLE) || defined(RGB_MATRIX_ENABLE)
- process_record_rgb(keycode, record) &&
-#endif // RGBLIGHT_ENABLE;
- true;
-}
-
-__attribute__ ((weak))
-bool process_record_keymap(uint16_t keycode, keyrecord_t *record) {
- return true;
-}
-
-
-__attribute__ ((weak))
-bool process_record_rgb(uint16_t keycode, keyrecord_t *record) {
- return true;
-}
diff --git a/users/kageurufu/process_records.h b/users/kageurufu/process_records.h
deleted file mode 100644
index d1c50a4112..0000000000
--- a/users/kageurufu/process_records.h
+++ /dev/null
@@ -1,27 +0,0 @@
-#pragma once
-#include "kageurufu.h"
-
-#define FN_ESC LT(_FN, KC_ESC)
-#define FN MO(_FN)
-#define ADJ MO(_ADJ)
-
-enum layer_number {
- _QWERTY = 0,
- _COLEMAK,
- _COLEMAK_DH,
- _FN,
- _ADJ,
- ADDITIONAL_LAYER
-};
-
-enum custom_keycodes {
- QWERTY = SAFE_RANGE,
- COLEMAK,
- CMAK_DH,
- RGBRST,
- KAGEURUFU_SAFE_RANGE
-};
-
-
-bool process_record_keymap(uint16_t keycode, keyrecord_t *record);
-bool process_record_rgb(uint16_t keycode, keyrecord_t *record);
diff --git a/users/kageurufu/readme.md b/users/kageurufu/readme.md
deleted file mode 100644
index 57dd85d6be..0000000000
--- a/users/kageurufu/readme.md
+++ /dev/null
@@ -1,14 +0,0 @@
-Copyright 2018- Franklyn Tackitt franklyn@tackitt.net @kageurufu
-
-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/>.
diff --git a/users/kageurufu/rules.mk b/users/kageurufu/rules.mk
deleted file mode 100644
index 4bff403a7b..0000000000
--- a/users/kageurufu/rules.mk
+++ /dev/null
@@ -1,14 +0,0 @@
-SRC += kageurufu.c \
- process_records.c \
- custom_rgb.c
-
-# Link time optimization, should save on firmware size
-EXTRAFLAGS += -flto
-
-
-# Some usual defaults
-MOUSEKEY_ENABLE = no
-EXTRAKEY_ENABLE = yes
-COMMAND_ENABLE = yes
-CONSOLE_ENABLE = yes
-RGBLIGHT_ENABLE = no
diff --git a/users/klackygears/klackygears.c b/users/klackygears/klackygears.c
deleted file mode 100644
index 2e7533eb16..0000000000
--- a/users/klackygears/klackygears.c
+++ /dev/null
@@ -1,75 +0,0 @@
-#include "klackygears.h"
-
-bool process_record_user(uint16_t keycode, keyrecord_t *record) {
- /*
- if (!process_record_dynamic_macro(keycode, record)) {
- return false;
- }
- */
- switch (keycode) {
- case KC_MACBASE:
- if (record->event.pressed) {
- set_single_persistent_default_layer(_MACBASE);
- }
- break;
-
- case KC_QWERTY:
- if (record->event.pressed) {
- set_single_persistent_default_layer(_QWERTY);
- }
- break;
-
- case KC_WINBASE:
- if (record->event.pressed) {
- set_single_persistent_default_layer(_WINBASE);
- }
- break;
-
- case KC_GAMER:
- if (record->event.pressed) {
- set_single_persistent_default_layer(_GAMER);
- }
- break;
-
- case KC_GAMR1:
- if (record->event.pressed) {
- set_single_persistent_default_layer(_GAMR1);
- }
- break;
-
- case KC_GAMR2:
- if (record->event.pressed) {
- set_single_persistent_default_layer(_GAMR2);
- }
- break;
- case RGBRST:
-#ifdef RGBLIGHT_ENABLE
- if (record->event.pressed) {
- eeconfig_update_rgblight_default();
- rgblight_enable();
- }
-#endif
- break;
-
- case MAKEK:
- if (record->event.pressed) {
- SEND_STRING("make " QMK_KEYBOARD ":" QMK_KEYMAP);
- }
- break;
-
- case MAKEKF:
- if (!record->event.pressed) {
- SEND_STRING("make " QMK_KEYBOARD ":" QMK_KEYMAP ":flash");
- }
-
- break;
-
- case SHRUG:
- if (record->event.pressed) {
- SEND_STRING(":Shrug:");
- }
- break;
- }
-
- return true;
-}
diff --git a/users/klackygears/klackygears.h b/users/klackygears/klackygears.h
deleted file mode 100644
index c131d46428..0000000000
--- a/users/klackygears/klackygears.h
+++ /dev/null
@@ -1,72 +0,0 @@
-#pragma once
-
-#include QMK_KEYBOARD_H
-
-#include "wrappers.h"
-#include "eeprom.h"
-#ifdef TAP_DANCE_ENABLE
- #include "tap_dances.h"
-#endif // TAP_DANCE_ENABLE
-
-enum layer_number {
- _WINBASE = 0,
- _MACBASE,
- _QWERTY,
- _GAMER,
- _GAMR1,
- _GAMR2,
- _NGMR,
- _NUMB,
- _MNMB,
- _SYMB,
- _FUNC,
- _MDIA,
- _MEME
-};
-
-enum userspace_custom_keycodes {
- KC_MACBASE = SAFE_RANGE,
- KC_QWERTY,
- KC_WINBASE,
- KC_GAMER,
- KC_GAMR1,
- KC_GAMR2,
- NUMB,
- MNMB,
- SYMB,
- FUNC,
- MDIA,
- RGBRST,
- MAKEK,
- MAKEKF,
- SHRUG,
- //DYNAMIC_MACRO_RANGE,
- SAFE_RANGE_KEYMAP
-};
-
-
-/*
-#ifdef UNICODEMAP_ENABLE
-enum unicode_names {
- BANG,
- IRONY,
- SNEK,
-};
-
-const uint32_t unicode_map[] PROGMEM = {
- [BANG] = 0x203D, // ‽
- [IRONY] = 0x2E2E, // ⸮
- [SNEK] = 0x1F40D, // 🐍
-};
-#endif // UNICODEMAP_ENABLE
-*/
-
-
-//#include "dynamic_macro.h"
-
-
-
-#if RGBLIGHT_ENABLE
-uint8_t RGB_current_mode;
-
-#endif
diff --git a/users/klackygears/readme.md b/users/klackygears/readme.md
deleted file mode 100644
index d00d9a17c0..0000000000
--- a/users/klackygears/readme.md
+++ /dev/null
@@ -1,15 +0,0 @@
-Copyright<2019><James Smith><bronzegears@gmail.com> @klackygears
-
-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/>.
-
-
-Most of what I have here was copied and modified from drashna. If it looks a bit messy it's because I'm a total noob and trying to push myself to learn new things.
diff --git a/users/klackygears/rules.mk b/users/klackygears/rules.mk
deleted file mode 100644
index 82b2233f12..0000000000
--- a/users/klackygears/rules.mk
+++ /dev/null
@@ -1,6 +0,0 @@
-SRC += klackygears.c
-
-
-ifeq ($(strip $(TAP_DANCE_ENABLE)), yes)
- SRC += tap_dances.c
-endif \ No newline at end of file
diff --git a/users/klackygears/tap_dances.c b/users/klackygears/tap_dances.c
deleted file mode 100644
index 3749e0ed4e..0000000000
--- a/users/klackygears/tap_dances.c
+++ /dev/null
@@ -1,184 +0,0 @@
-#include "tap_dances.h"
-
-/*
-void macroTogKey(tap_dance_state_t *state, void *user_data) {
- keyrecord_t kr;
-
- if (state->count == 1)
- {
- kr.event.pressed = false;
- process_record_dynamic_macro( DM_PLY1, &kr );
- }
- else if (state->count == 2)
- {
- kr.event.pressed = true;
- process_record_dynamic_macro( DM_RSTP, &kr );
- }
- else if (state->count == 3)
- {
- kr.event.pressed = false;
- process_record_dynamic_macro( QK_DYNAMIC_MACRO_RECORD_START_1, &kr );
- }
-}
-
-void macroTogKey2(tap_dance_state_t *state, void *user_data) {
- keyrecord_t kr;
-
- if (state->count == 1)
- {
- kr.event.pressed = false;
- process_record_dynamic_macro( DM_PLY2, &kr );
- }
- else if (state->count == 2)
- {
- kr.event.pressed = true;
- process_record_dynamic_macro( DM_RSTP, &kr );
- }
- else if (state->count == 3)
- {
- kr.event.pressed = false;
- process_record_dynamic_macro( DM_REC2, &kr );
- }
-}
-*/
-
-void pstinsrt(tap_dance_state_t *state, void *user_data) {
- if (state->count > 1) {
- register_code(KC_LALT);
- tap_code(KC_I);
- tap_code(KC_E);
- unregister_code(KC_LALT);
- } else {
- tap_code16(C(KC_V));
- }
- reset_tap_dance(state);
-}
-
-void ccopy(tap_dance_state_t *state, void *user_data) {
- if (state->count > 1) {
- tap_code16(C(KC_X));
-
- // SEND_STRING( SS_DOWN(KC_LCTL) SS_TAP(KC_X) SS_UP(KC_LCTL));
- } else {
- tap_code16(C(KC_C));
- }
- reset_tap_dance(state);
-}
-
-void pstspecial(tap_dance_state_t *state, void *user_data) {
- if (state->count > 1) {
- register_code(KC_LALT);
- tap_code(KC_E);
- tap_code(KC_S);
- unregister_code(KC_LALT);
- tap_code(KC_V);
- } else {
- register_code(KC_LALT);
- tap_code(KC_E);
- tap_code(KC_S);
- unregister_code(KC_LALT);
- tap_code(KC_T);
- }
- reset_tap_dance(state);
-}
-
-void deldel(tap_dance_state_t *state, void *user_data) {
- if (state->count > 1) {
- register_code(KC_LALT);
- tap_code(KC_E);
- tap_code(KC_D);
- unregister_code(KC_LALT);
- } else {
- tap_code(KC_DEL);
- }
- reset_tap_dance(state);
-}
-
-void findreplace(tap_dance_state_t *state, void *user_data) {
- if (state->count > 1) {
- tap_code16(C(KC_H));
- } else {
- tap_code16(C(KC_F));
- }
- reset_tap_dance(state);
-}
-
-void cyclawin(tap_dance_state_t *state, void *user_data) {
- if (state->count > 1) {
- tap_code16(C(S(KC_F6)));
- } else {
- tap_code16(C(KC_F6));
- }
- reset_tap_dance(state);
-}
-
-void SCRNSNP(tap_dance_state_t *state, void *user_data) {
- if (state->count > 1) {
- tap_code16(A(KC_PSCR));
- } else {
- tap_code(KC_LGUI);
- tap_code(KC_S);
- tap_code(KC_N);
- tap_code16(C(KC_N));
- }
- reset_tap_dance(state);
-}
-
-void mcccpy(tap_dance_state_t *state, void *user_data) {
- if (state->count > 1) {
- tap_code16(G(KC_X));
- } else {
- tap_code16(G(KC_C));
- }
- reset_tap_dance(state);
-}
-
-void mcpstin(tap_dance_state_t *state, void *user_data) {
- if (state->count > 1) {
- tap_code16(G(KC_I));
- } else {
- tap_code16(G(KC_V));
- }
- reset_tap_dance(state);
-}
-
-void enttab(tap_dance_state_t *state, void *user_data) {
- if (state->count > 1) {
- tap_code(KC_ENT);
- } else {
- tap_code(KC_TAB);
- }
- reset_tap_dance(state);
-}
-
-void rgb_toggle(tap_dance_state_t *state, void *user_data) {
-#ifdef RGBLIGHT_ENABLE
- if (state->count == 1) {
- rgblight_step();
- } else {
- rgblight_increase_hue();
- }
-#endif
-}
-
-// Tap Dance Definitions
-tap_dance_action_t tap_dance_actions[] = {
- [TD_PSTI] = ACTION_TAP_DANCE_FN(pstinsrt),
- [TD_PTSP] = ACTION_TAP_DANCE_FN(pstspecial),
- [TD_FNDR] = ACTION_TAP_DANCE_FN(findreplace),
- [TD_CCPY] = ACTION_TAP_DANCE_FN(ccopy),
- [TD_DDEL] = ACTION_TAP_DANCE_FN(deldel),
- [TD_ACCW] = ACTION_TAP_DANCE_FN(cyclawin),
- [TD_CAPESC] = ACTION_TAP_DANCE_DOUBLE(KC_ESC, KC_CAPS),
- [TD_DTEX] = ACTION_TAP_DANCE_DOUBLE(KC_DOT, KC_EXLM),
- [TD_COMQUES] = ACTION_TAP_DANCE_DOUBLE(KC_COMM, KC_QUES),
- [TD_MINPLS] = ACTION_TAP_DANCE_DOUBLE(KC_PMNS, KC_PPLS),
- [TD_DIVMLT] = ACTION_TAP_DANCE_DOUBLE(KC_PSLS, KC_PAST),
- [TD_DOTEQL] = ACTION_TAP_DANCE_DOUBLE(KC_DOT, KC_EQL),
- [TD_SCNSP] = ACTION_TAP_DANCE_FN(SCRNSNP),
- [TD_MCCCPY] = ACTION_TAP_DANCE_FN(mcccpy),
- [TD_MCPSTIN] = ACTION_TAP_DANCE_FN(mcpstin),
- [TD_ENTAB] = ACTION_TAP_DANCE_FN(enttab),
- [TD_XSPC] = ACTION_TAP_DANCE_DOUBLE(KC_SPACE, KC_X),
- [TD_RGB] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, rgb_toggle, NULL)
-};
diff --git a/users/klackygears/tap_dances.h b/users/klackygears/tap_dances.h
deleted file mode 100644
index 66c2c48c91..0000000000
--- a/users/klackygears/tap_dances.h
+++ /dev/null
@@ -1,37 +0,0 @@
-#pragma once
-#include "klackygears.h"
-
-#ifdef TAP_DANCE_ENABLE
-enum {
- // TD_MCROTOG,
- // TD_MCROTG2,
- TD_BTK,
- TD_TDE,
- TD_LPRN,
- TD_RPRN,
- TD_MIN,
- TD_USC,
- TD_CMWN,
- TD_ATSH,
- TD_PSTI,
- TD_PTSP,
- TD_FNDR,
- TD_CCPY,
- TD_DDEL,
- TD_ACCW,
- TD_CAPESC,
- TD_DTEX,
- TD_COMQUES,
- TD_MINPLS,
- TD_DIVMLT,
- TD_DOTEQL,
- TD_LSHSYM,
- TD_RSHSYM,
- TD_SCNSP,
- TD_MCCCPY,
- TD_MCPSTIN,
- TD_ENTAB,
- TD_XSPC,
- TD_RGB,
-};
-#endif
diff --git a/users/klackygears/wrappers.h b/users/klackygears/wrappers.h
deleted file mode 100644
index 88cbae1849..0000000000
--- a/users/klackygears/wrappers.h
+++ /dev/null
@@ -1,220 +0,0 @@
-#pragma once
-#include "klackygears.h"
-/*
-Most of this is copied from drashna. I added and changed a few things but, it's all based off of his user folder.
-*/
-#if (!defined(LAYOUT) && defined(KEYMAP))
-#define LAYOUT KEYMAP
-#endif
-
-//Added other layout options
-#define LAYOUT_ergodox_wrapper(...) LAYOUT_ergodox(__VA_ARGS__)
-#define LAYOUT_ergodox_pretty_wrapper(...) LAYOUT_ergodox_pretty(__VA_ARGS__)
-#define KEYMAP_wrapper(...) LAYOUT(__VA_ARGS__)
-#define LAYOUT_wrapper(...) LAYOUT(__VA_ARGS__)
-#define LAYOUT_ortho_4x12_wrapper(...) LAYOUT_ortho_4x12(__VA_ARGS__)
-#define LAYOUT_ortho_5x10_wrapper(...) LAYOUT_ortho_5x10(__VA_ARGS__)
-#define LAYOUT_ortho_5x5_wrapper(...) LAYOUT_ortho_5x5(__VA_ARGS__)
-
-
-/*
-NOTE: If you do a search/replace
- then you need to add/remove underscores to keep the
- lengths consistent.
-*/
-//keymaps for tap dance and without
-#ifdef TAP_DANCE_ENABLE
- #define _________________QWERTY_L1_________________ KC_Q, KC_W, KC_E, KC_R, KC_T
- #define _________________QWERTY_L2_________________ KC_A, KC_S, KC_D, KC_F, KC_G
- #define _________________QWERTY_L3_________________ KC_Z, KC_X, KC_C, KC_V, KC_B
-
- #define _________________QWERTY_R1_________________ KC_Y, KC_U, KC_I, KC_O, KC_P
- #define _________________QWERTY_R2_________________ KC_H, KC_J, KC_K, KC_L, KC_SCLN
- #define _________________QWERTY_R3_________________ KC_N, KC_M, TD(TD_COMQUES), TD(TD_DTEX), LT(_MDIA,KC_SLASH)
-
-
- #define _________________COLEMAK_L1________________ KC_Q, KC_W, KC_F, KC_P, KC_G
- #define _________________COLEMAK_L2________________ KC_A, KC_R, KC_S, KC_T, KC_D
- #define _________________COLEMAK_L3________________ KC_Z, KC_X, KC_C, KC_V, KC_B
-
- #define _________________COLEMAK_R1________________ KC_J, KC_L, KC_U, KC_Y, KC_SCLN
- #define _________________COLEMAK_R2________________ KC_H, KC_N, KC_E, KC_I, KC_O
- #define _________________COLEMAK_R3________________ KC_K, KC_M, TD(TD_COMQUES), TD(TD_DTEX), KC_SLASH
-/*
- #define ______________COLEMAK_MOD_DH_L1____________ KC_Q, KC_W, KC_F, KC_P, KC_B
- #define ______________COLEMAK_MOD_DH_L2____________ KC_A, KC_R, KC_S, KC_T, KC_G
- #define ______________COLEMAK_MOD_DH_L3____________ KC_Z, KC_X, KC_C, KC_D, KC_V
-
- #define ______________COLEMAK_MOD_DH_R1____________ KC_J, KC_L, KC_U, KC_Y, KC_SCLN
- #define ______________COLEMAK_MOD_DH_R2____________ KC_M, KC_N, KC_E, KC_I, KC_O
- #define ______________COLEMAK_MOD_DH_R3____________ KC_K, KC_H, KC_COMM, KC_DOT, KC_SLASH
-*/
-
- #define _______________DVORAK_L1___________________ KC_QUOT, TD(TD_COMQUES), TD(TD_DTEX), KC_P, KC_Y
- #define _______________DVORAK_L2___________________ KC_A, KC_O, KC_E, KC_U, KC_I
- #define _______________MACDVK_L3___________________ MT(MOD_LCTL,KC_SCLN), MT(MOD_LALT,KC_Q), MT(MOD_LGUI, KC_J), KC_K, KC_X
- #define _______________WINDVK_L3___________________ MT(MOD_LGUI,KC_SCLN), MT(MOD_LALT,KC_Q), MT(MOD_LCTL, KC_J), KC_K, KC_X
-
- #define _______________DVORAK_R1___________________ KC_F, KC_G, KC_C, KC_R, KC_L
- #define _______________DVORAK_R2___________________ KC_D, KC_H, KC_T, KC_N, KC_S
- #define _______________MACDVK_R3___________________ KC_B, KC_M, MT(MOD_LGUI,KC_W), MT(MOD_LALT,KC_V), LT(_MDIA,KC_Z)
- #define _______________WINDVK_R3___________________ KC_B, KC_M, MT(MOD_LCTL,KC_W), MT(MOD_LALT,KC_V), LT(_MDIA,KC_Z)
-
- #define __________c39__MACDVK_L3___________________ MT(MOD_LCTL,KC_SCLN), MT(MOD_LALT,KC_Q), MT(MOD_LGUI, KC_J), LT(_SYMB,KC_K), TD(TD_XSPC)
- #define __________c39__WINDVK_L3___________________ MT(MOD_LGUI,KC_SCLN), MT(MOD_LALT,KC_Q), MT(MOD_LCTL, KC_J), LT(_SYMB,KC_K), TD(TD_XSPC)
- #define __________c39__MACDVK_R3___________________ LT(_MNMB,KC_B), LT(_SYMB,KC_M), MT(MOD_LGUI,KC_W), MT(MOD_LALT,KC_V), LT(_MDIA,KC_Z)
- #define __________c39__WINDVK_R3___________________ LT(_NUMB,KC_B), LT(_SYMB,KC_M), MT(MOD_LCTL,KC_W), MT(MOD_LALT,KC_V), LT(_MDIA,KC_Z)
-#else
-
- #define _________________QWERTY_L1_________________ KC_Q, KC_W, KC_E, KC_R, KC_T
- #define _________________QWERTY_L2_________________ KC_A, KC_S, KC_D, KC_F, KC_G
- #define _________________QWERTY_L3_________________ KC_Z, KC_X, KC_C, KC_V, KC_B
-
- #define _________________QWERTY_R1_________________ KC_Y, KC_U, KC_I, KC_O, KC_P
- #define _________________QWERTY_R2_________________ KC_H, KC_J, KC_K, KC_L, KC_SCLN
- #define _________________QWERTY_R3_________________ KC_N, KC_M, KC_COMM, KC_DOT, LT(_MDIA,KC_SLASH)
-
-
- #define _________________COLEMAK_L1________________ KC_Q, KC_W, KC_F, KC_P, KC_G
- #define _________________COLEMAK_L2________________ KC_A, KC_R, KC_S, KC_T, KC_D
- #define _________________COLEMAK_L3________________ KC_Z, KC_X, KC_C, KC_V, KC_B
-
- #define _________________COLEMAK_R1________________ KC_J, KC_L, KC_U, KC_Y, KC_SCLN
- #define _________________COLEMAK_R2________________ KC_H, KC_N, KC_E, KC_I, KC_O
- #define _________________COLEMAK_R3________________ KC_K, KC_M, KC_COMM, KC_DOT, KC_SLASH
-
- #define _______________DVORAK_L1___________________ KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y
- #define _______________DVORAK_L2___________________ KC_A, KC_O, KC_E, KC_U, KC_I
- #define _______________MACDVK_L3___________________ MT(MOD_LCTL,KC_SCLN), MT(MOD_LALT,KC_Q), MT(MOD_LGUI, KC_J), KC_K, KC_X
- #define _______________WINDVK_L3___________________ MT(MOD_LGUI,KC_SCLN), MT(MOD_LALT,KC_Q), MT(MOD_LCTL, KC_J), KC_K, KC_X
-
- #define _______________DVORAK_R1___________________ KC_F, KC_G, KC_C, KC_R, KC_L
- #define _______________DVORAK_R2___________________ KC_D, KC_H, KC_T, KC_N, KC_S
- #define _______________MACDVK_R3___________________ KC_B, KC_M, MT(MOD_LGUI,KC_W), MT(MOD_LALT,KC_V), LT(_MDIA,KC_Z)
- #define _______________WINDVK_R3___________________ KC_B, KC_M, MT(MOD_LCTL,KC_W), MT(MOD_LALT,KC_V), LT(_MDIA,KC_Z)
-#endif
-
-/*
-#define ________________DVORAK_AU_L1_______________ KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y
-#define ________________DVORAK_AU_L2_______________ KC_O, KC_A, KC_E, KC_I, KC_U
-#define ________________DVORAK_AU_L3_______________ KC_SCLN, KC_Q, KC_J, KC_K, KC_X
-
-#define ________________DVORAK_AU_R1_______________ KC_F, KC_G, KC_C, KC_R, KC_L
-#define ________________DVORAK_AU_R2_______________ KC_D, KC_H, KC_T, KC_N, KC_S
-#define ________________DVORAK_AU_R3_______________ KC_B, KC_M, KC_W, KC_V, KC_Z
-
-
-#define _________________WORKMAN_L1________________ KC_Q, KC_D, KC_R, KC_W, KC_B
-#define _________________WORKMAN_L2________________ KC_A, KC_S, KC_H, KC_T, KC_G
-#define _________________WORKMAN_L3________________ KC_Z, KC_X, KC_M, KC_C, KC_V
-
-#define _________________WORKMAN_R1________________ KC_J, KC_F, KC_U, KC_P, KC_SCLN
-#define _________________WORKMAN_R2________________ KC_Y, KC_N, KC_E, KC_O, KC_I
-#define _________________WORKMAN_R3________________ KC_K, KC_L, TD(TD_COMQUES), TD(TD_DTEX), KC_SLASH
-
-
-#define _________________NORMAN_L1_________________ KC_Q, KC_W, KC_D, KC_F, KC_K
-#define _________________NORMAN_L2_________________ KC_A, KC_S, KC_E, KC_T, KC_G
-#define _________________NORMAN_L3_________________ KC_Z, KC_X, KC_C, KC_V, KC_B
-
-#define _________________NORMAN_R1_________________ KC_J, KC_U, KC_R, KC_L, KC_SCLN
-#define _________________NORMAN_R2_________________ KC_Y, KC_N, KC_I, KC_O, KC_U
-#define _________________NORMAN_R3_________________ KC_P, KC_M, KC_COMM, KC_DOT, KC_SLASH
-*/
-
-// thumb key layouts
-#define ________WIN_THUMB_CLUSTER_________ LT(_SYMB,KC_SPC), LT(_NUMB,KC_BSPC), LT(_NUMB,KC_TAB), LT(_SYMB,KC_ENT)
-#define ________MAC_THUMB_CLUSTER_________ LT(_SYMB,KC_SPC), LT(_MNMB,KC_BSPC), LT(_MNMB,KC_TAB), LT(_SYMB,KC_ENT)
-
-#define __________________WIN_THUMB_CLUSTER_V2______________ LT(_FUNC,KC_ENT), LT(_NUMB,KC_BSPC), MT(MOD_LSFT,KC_SPC), LT(_NUMB,KC_TAB), LT(_SYMB,KC_ENT), KC_RSFT
-#define __________________MAC_THUMB_CLUSTER_V2______________ LT(_FUNC,KC_ENT), LT(_MNMB,KC_BSPC), MT(MOD_LSFT,KC_SPC), LT(_MNMB,KC_TAB), LT(_SYMB,KC_ENT), KC_RSFT
-#define ________MAC_THUMB_L______ LT(_FUNC,KC_ENT), LT(_MNMB,KC_BSPC), MT(MOD_LSFT,KC_SPC)
-#define ________MAC_THUMB_R______ LT(_MNMB,KC_TAB), LT(_SYMB,KC_ENT), LT(_MDIA,KC_ENT)
-#define ________WIN_THUMB_L______ LT(_FUNC,KC_ENT), LT(_NUMB,KC_BSPC), MT(MOD_LSFT,KC_SPC)
-#define ________WIN_THUMB_R______ LT(_NUMB,KC_TAB), LT(_SYMB,KC_ENT), LT(_MDIA,KC_ENT)
-
-// Mission Control Commands
-#define ________MAC_MISSION_CTRL__________ LCTL(KC_LEFT), LCTL(KC_UP), LCTL(KC_DOWN), LCTL(KC_RGHT)
-
-//Number Row
-#define _________________NUMBER_L__________________ KC_1, KC_2, KC_3, KC_4, KC_5
-#define _________________NUMBER_R__________________ KC_6, KC_7, KC_8, KC_9, KC_0
-
-//keymaps for tap dance and without
-#ifdef TAP_DANCE_ENABLE
-//Arrow keys and copy-paste shortcuts for MAC OS
- #define _________________MACNAV_L1_________________ KC_PGUP, KC_PGDN, KC_HOME, KC_END, _______
- #define _________________MACNAV_L2_________________ KC_LEFT, KC_UP, KC_DOWN, KC_RIGHT, _______
- #define _________________MACNAV_L3_________________ _______, LGUI(KC_A), TD(TD_MCCCPY), TD(TD_MCPSTIN), KC_DEL
-
-//Arrow keys and copy-paste shortcuts for Windows and Microsoft Access & Excel
- #define _________________WINNAV_L1_________________ KC_PGUP, KC_PGDN, KC_HOME, KC_END, TD(TD_FNDR)
- #define _________________WINNAV_L2_________________ KC_LEFT, KC_UP, KC_DOWN, KC_RIGHT, TD(TD_PTSP)
- #define _________________WINNAV_L3_________________ TD(TD_ACCW), LCTL(KC_A), TD(TD_CCPY), TD(TD_PSTI), TD(TD_DDEL)
-
-//Numpad layout with different mod-tap keys for MAC OS and Windows
- #define _________________NUMB_R1___________________ TD(TD_MINPLS), KC_7, KC_8, KC_9, KC_COLN
- #define _________________NUMB_R2___________________ TD(TD_DIVMLT), KC_4, KC_5, KC_6, C_S_T(KC_COLN)
- #define _________________NUMB_R3_MAC_______________ TD(TD_DOTEQL), KC_1, MT(MOD_LGUI,KC_2), MT(MOD_LALT,KC_3), MT(MOD_LCTL,KC_0)
- #define _________________NUMB_R3_WIN_______________ TD(TD_DOTEQL), KC_1, MT(MOD_LCTL,KC_2), MT(MOD_LALT,KC_3), MT(MOD_LGUI,KC_0)
- #define _________________NUMB_R4___________________ KC_LSFT, KC_0, KC_0, _______, _______
-#else
-//Arrow keys and copy-paste shortcuts for MAC OS
- #define _________________MACNAV_L1_________________ KC_PGUP, KC_PGDN, KC_HOME, KC_END, _______
- #define _________________MACNAV_L2_________________ KC_LEFT, KC_UP, KC_DOWN, KC_RIGHT, _______
- #define _________________MACNAV_L3_________________ _______, LGUI(KC_A), _______, _______, KC_DEL
-
-//Arrow keys and copy-paste shortcuts for Windows and Microsoft Access & Excel
- #define _________________WINNAV_L1_________________ KC_PGUP, KC_PGDN, KC_HOME, KC_END, _______
- #define _________________WINNAV_L2_________________ KC_LEFT, KC_UP, KC_DOWN, KC_RIGHT, _______
- #define _________________WINNAV_L3_________________ _______, _______, _______, _______, _______
- #define _________________NUMB_R1___________________ KC_PMNS, KC_7, KC_8, KC_9, KC_PPLS
- #define _________________NUMB_R2___________________ KC_PSLS, KC_4, KC_5, KC_6, KC_PAST
- #define _________________NUMB_R3_MAC_______________ KC_DOT, KC_1, MT(MOD_LGUI,KC_2), MT(MOD_LALT,KC_3), MT(MOD_LCTL,KC_0)
- #define _________________NUMB_R3_WIN_______________ KC_DOT, KC_1, MT(MOD_LCTL,KC_2), MT(MOD_LALT,KC_3), MT(MOD_LGUI,KC_0)
- #define _________________NUMB_R4___________________ KC_LSFT, KC_0, KC_0, _______, _______
-#endif
-
-//Function Row
-/*
-#define _________________FUNC_LEFT_________________ KC_F1, KC_F2, KC_F3, KC_F4, KC_F5
-#define _________________FUNC_RIGHT________________ KC_F6, KC_F7, KC_F8, KC_F9, KC_F10
-*/
-
-//Function keys as macropad
-#define _____________FUNC_1_______________ KC_F9, KC_F10, KC_F11, KC_F12
-#define _____________FUNC_2_______________ KC_F5, KC_F6, KC_F7, KC_F8
-#define _____________FUNC_3_______________ KC_F1, KC_F2, KC_F3, KC_F4
-
-//RGB keys
-#if defined RGBLIGHT_ENABLE || defined RGB_MATRIX_ENABLE
-#define _________________RGB_1_____________________ RGBRST, RGB_HUI, RGB_SAI, RGB_VAI, RGB_SPI
-#define _________________RGB_2_____________________ RGB_MOD, RGB_HUD, RGB_SAD, RGB_VAD, RGB_SPD
-#else
-#define _________________RGB_1_____________________ _______, _______, _______, _______, _______
-#define _________________RGB_2_____________________ _______, _______, _______, _______, _______
-#endif
-
-//Audio keys
-#define _________________MEDIA_____________________ KC_MPLY, KC_MUTE, KC_VOLD, KC_VOLU, _______
-#define _________________MEDIA_V2__________________ KC_EJCT, KC_MRWD, KC_MPLY, KC_MFFD, _______
-
-//Base layer keys
-#define _________________LYOUT_____________________ _______, KC_QWERTY, KC_MACBASE, KC_WINBASE, _______
-
-//Punctuation keys
-#define _________________PUNC_L1___________________ KC_BSLS, KC_AT, KC_HASH, KC_DLR, KC_PERC
-#define _________________PUNC_L1_ALT_______________ KC_DQT, KC_AT, KC_HASH, KC_DLR, KC_PERC
-#define _________________PUNC_L2___________________ KC_PLUS, KC_MINS, KC_ASTR, KC_SLSH, KC_EQL
-#define _________________PUNC_L3___________________ KC_LBRC, KC_RBRC, KC_LPRN, KC_RPRN, KC_AMPR
-#define _________________PUNC_L3_ALT_______________ _______, _______, KC_TILD, KC_CIRC, KC_GRV
-#define _________________PUNC_R1___________________ _______, KC_DQT, KC_EQL, _______, _______
-#define _________________PUNC_R2___________________ _______, KC_ASTR, KC_SLSH, KC_PLUS, KC_MINS
-#define _________________PUNC_R3___________________ _______, KC_EQL, KC_BSLS, _______, _______
-
-//Make Shortcuts and window switching
-#define _____________FUNC_L1_______________________ MAKEKF, MAKEK, _______, KC_ESC, LCTL(LALT(KC_DEL))
-#define _____________FUNC_L3_______________________ KC_LGUI, KC_RALT, KC_LCTL, KC_TAB, _______
-
-
-#define _________________KC_BLANK__________________ _______, _______, _______, _______, _______
diff --git a/users/konstantin/config.h b/users/konstantin/config.h
deleted file mode 100644
index 26c7ecc0c7..0000000000
--- a/users/konstantin/config.h
+++ /dev/null
@@ -1,63 +0,0 @@
-/* Copyright 2019-2021 Konstantin Đorđević <vomindoraan@gmail.com>
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-#pragma once
-
-// Keyboard reports
-#define FORCE_NKRO
-#define USB_POLLING_INTERVAL_MS 1
-
-// Mouse keys
-#define MOUSEKEY_DELAY 0
-#define MOUSEKEY_INTERVAL 10
-#define MOUSEKEY_MAX_SPEED 4
-#define MOUSEKEY_TIME_TO_MAX 100
-#define MOUSEKEY_WHEEL_DELAY 0
-#define MOUSEKEY_WHEEL_INTERVAL 50
-#define MOUSEKEY_WHEEL_MAX_SPEED 4
-#define MOUSEKEY_WHEEL_TIME_TO_MAX 50
-
-// RGB lighting
-#undef RGBLIGHT_EFFECT_BREATHING
-#undef RGBLIGHT_EFFECT_RAINBOW_MOOD
-#undef RGBLIGHT_EFFECT_RAINBOW_SWIRL
-#undef RGBLIGHT_EFFECT_SNAKE
-#undef RGBLIGHT_EFFECT_KNIGHT
-#undef RGBLIGHT_EFFECT_CHRISTMAS
-#undef RGBLIGHT_EFFECT_STATIC_GRADIENT
-#undef RGBLIGHT_EFFECT_RGB_TEST
-#undef RGBLIGHT_EFFECT_ALTERNATING
-#undef RGBLIGHT_EFFECT_TWINKLE
-#define RGBLIGHT_EFFECT_BREATHING
-#define RGBLIGHT_EFFECT_RAINBOW_MOOD
-#define RGBLIGHT_EFFECT_RAINBOW_SWIRL
-#define RGBLIGHT_EFFECT_SNAKE
-
-// Tapping
-#define PERMISSIVE_HOLD
-#define TAPPING_TERM 200
-#define TAPPING_TOGGLE 2
-
-// Unicode
-#define UNICODE_CYCLE_PERSIST false
-#define UNICODE_SELECTED_MODES UNICODE_MODE_WINCOMPOSE, UNICODE_MODE_WINDOWS, UNICODE_MODE_LINUX
-#define UNICODE_KEY_WINC KC_RGUI
-
-// Firmware size reduction
-#undef LOCKING_SUPPORT_ENABLE
-#define NO_ACTION_FUNCTION
-#define NO_ACTION_MACRO
-#define NO_ACTION_ONESHOT
diff --git a/users/konstantin/konstantin.c b/users/konstantin/konstantin.c
deleted file mode 100644
index 497142ed4d..0000000000
--- a/users/konstantin/konstantin.c
+++ /dev/null
@@ -1,144 +0,0 @@
-/* Copyright 2019-2021 Konstantin Đorđević <vomindoraan@gmail.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 "konstantin.h"
-
-__attribute__((weak))
-void keyboard_pre_init_keymap(void) {}
-
-void keyboard_pre_init_user(void) {
- keyboard_pre_init_keymap();
-}
-
-__attribute__((weak))
-void eeconfig_init_keymap(void) {}
-
-void eeconfig_init_user(void) {
- eeconfig_init_keymap();
-}
-
-__attribute__((weak))
-void keyboard_post_init_keymap(void) {}
-
-void keyboard_post_init_user(void) {
- keyboard_post_init_keymap();
-}
-
-__attribute__((weak))
-layer_state_t layer_state_set_keymap(layer_state_t state) {
- return state;
-}
-
-layer_state_t layer_state_set_user(layer_state_t state) {
- state = layer_state_set_keymap(state);
-
-#ifdef LAYER_NUMPAD
- bool numpad = IS_LAYER_ON_STATE(state, L_NUMPAD);
- bool num_lock = host_keyboard_led_state().num_lock;
- if (numpad != num_lock) {
- tap_code(KC_NUM_LOCK); // Toggle Num Lock to match Numpad layer state
- }
-#endif
-
- return state;
-}
-
-__attribute__((weak))
-void led_set_keymap(uint8_t usb_led) {}
-
-void led_set_user(uint8_t usb_led) {
- led_set_keymap(usb_led);
-}
-
-__attribute__((weak))
-bool led_update_keymap(led_t led_state) {
- return true;
-}
-
-bool led_update_user(led_t led_state) {
- return led_update_keymap(led_state);
-}
-
-__attribute__((weak))
-bool process_record_keymap(uint16_t keycode, keyrecord_t *record) {
- return true;
-}
-
-bool process_record_user(uint16_t keycode, keyrecord_t *record) {
- if (!process_record_keymap(keycode, record)) {
- return false;
- }
-
- switch (keycode) {
- uint16_t kc;
-#ifdef LAYER_FN
- static bool fn_lock = false;
-
- case FNLK:
- if (record->event.pressed) {
- fn_lock = !IS_LAYER_ON(L_FN); // Fn layer will be toggled after this
- }
- break;
-
- case FN_FNLK:
- if (record->event.pressed && record->tap.count == TAPPING_TOGGLE) {
- fn_lock = !IS_LAYER_ON(L_FN);
- }
- break;
-#endif
-
- case KC_ESC:
- if (record->event.pressed) {
-#ifdef LAYER_NUMPAD // Disable Numpad layer before Fn layer
- if (IS_LAYER_ON(L_NUMPAD)) {
- layer_off(L_NUMPAD);
- return false;
- }
-#endif
-#ifdef LAYER_FN
- if (IS_LAYER_ON(L_FN) && fn_lock) {
- layer_off(L_FN);
- return fn_lock = false;
- }
-#endif
- }
- break;
-
- case CLEAR:
- if (record->event.pressed) {
- CLEAN_MODS(
- SEND_STRING(SS_LCTL("a") SS_TAP(X_DELETE));
- )
- }
- break;
-
- case DST_P_R:
- kc = (get_mods() & DST_MOD_MASK) ? DST_REM : DST_PRV;
- CLEAN_MODS(
- (record->event.pressed ? register_code16 : unregister_code16)(kc);
- )
- break;
-
- case DST_N_A:
- kc = (get_mods() & DST_MOD_MASK) ? DST_ADD : DST_NXT;
- CLEAN_MODS(
- (record->event.pressed ? register_code16 : unregister_code16)(kc);
- )
- break;
- }
-
- return true;
-}
diff --git a/users/konstantin/konstantin.h b/users/konstantin/konstantin.h
deleted file mode 100644
index 7da1dbfd21..0000000000
--- a/users/konstantin/konstantin.h
+++ /dev/null
@@ -1,104 +0,0 @@
-/* Copyright 2019-2021 Konstantin Đorđević <vomindoraan@gmail.com>
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-#pragma once
-
-#include "quantum.h"
-#if defined(RGBLIGHT_ENABLE) || defined(RGB_MATRIX_ENABLE)
- #include "rgb.h"
-#endif
-#ifdef TAP_DANCE_ENABLE
- #include "tap_dance.h"
-#endif
-#if defined(UNICODE_ENABLE) || defined(UNICODEMAP_ENABLE)
- #include "unicode.h"
-#endif
-
-#ifdef LAYER_FN
- #define FN MO(L_FN)
- #define FNLK TG(L_FN)
- #define FN_CAPS LT(L_FN, KC_CAPS)
- #define FN_ESC LT(L_FN, KC_ESC)
- #define FN_FNLK TT(L_FN)
-#endif
-
-#ifdef LAYER_NUMPAD
- #define NUMPAD TG(L_NUMPAD)
-#endif
-
-#define BREAK LCTL(KC_PAUS)
-#define SYSRQ LALT(KC_PSCR)
-
-#define MV_UP LCTL(KC_UP)
-#define MV_DOWN LCTL(KC_DOWN)
-#define MV_LEFT LCTL(KC_LEFT)
-#define MV_RGHT LCTL(KC_RGHT)
-#define TOP LCTL(KC_HOME)
-#define BOTTOM LCTL(KC_END)
-#define TAB_PRV LCTL(KC_PGUP)
-#define TAB_NXT LCTL(KC_PGDN)
-#define DEL_PRV LCTL(KC_BSPC)
-#define DEL_NXT LCTL(KC_DEL)
-
-#define DST_ADD LCTL(LGUI(KC_D))
-#define DST_REM LCTL(LGUI(KC_F4))
-#define DST_PRV LCTL(LGUI(KC_LEFT))
-#define DST_NXT LCTL(LGUI(KC_RGHT))
-#ifndef DST_MOD_MASK
- #define DST_MOD_MASK MOD_MASK_SHIFT
-#endif
-
-#define LCT_CPS LCTL_T(KC_CAPS)
-#define RSF_SLS RSFT_T(KC_SLSH)
-
-// Clear mods, perform action, restore mods
-#define CLEAN_MODS(action) { \
- uint8_t mods = get_mods(); \
- clear_mods(); \
- action; \
- set_mods(mods); \
- }
-
-enum layers_user {
- L_BASE,
-#ifdef LAYER_FN
- L_FN,
-#endif
-#ifdef LAYER_NUMPAD
- L_NUMPAD,
-#endif
-
- LAYERS_KEYMAP,
-};
-
-enum keycodes_user {
- CLEAR = SAFE_RANGE,
- DST_P_R,
- DST_N_A,
-
- RANGE_KEYMAP,
-};
-
-void keyboard_pre_init_keymap(void);
-void eeconfig_init_keymap(void);
-void keyboard_post_init_keymap(void);
-
-layer_state_t layer_state_set_keymap(layer_state_t state);
-
-void led_set_keymap(uint8_t usb_led);
-bool led_update_keymap(led_t led_state);
-
-bool process_record_keymap(uint16_t keycode, keyrecord_t *record);
diff --git a/users/konstantin/post_config.h b/users/konstantin/post_config.h
deleted file mode 100644
index 3199b2124f..0000000000
--- a/users/konstantin/post_config.h
+++ /dev/null
@@ -1,22 +0,0 @@
-/* Copyright 2021 Konstantin Đorđević <vomindoraan@gmail.com>
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-#pragma once
-
-// VIA
-#ifndef DYNAMIC_KEYMAP_LAYER_COUNT
- #define DYNAMIC_KEYMAP_LAYER_COUNT 3
-#endif
diff --git a/users/konstantin/rgb.c b/users/konstantin/rgb.c
deleted file mode 100644
index 2eeef829b0..0000000000
--- a/users/konstantin/rgb.c
+++ /dev/null
@@ -1,42 +0,0 @@
-/* Copyright 2019-2021 Konstantin Đorđević <vomindoraan@gmail.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 "rgb.h"
-
-#ifdef RGBLIGHT_EFFECT_BREATHING
-const uint8_t PROGMEM RGBLED_BREATHING_INTERVALS[] = { 20, 30, 5, 10 };
-#endif
-
-#ifdef RGBLIGHT_EFFECT_RAINBOW_MOOD
-const uint8_t PROGMEM RGBLED_RAINBOW_MOOD_INTERVALS[] = { 20, 50, 100 };
-#endif
-
-#ifdef RGBLIGHT_EFFECT_RAINBOW_SWIRL
-const uint8_t PROGMEM RGBLED_RAINBOW_SWIRL_INTERVALS[] = { 20, 50, 100 };
-#endif
-
-#ifdef RGBLIGHT_EFFECT_SNAKE
-const uint8_t PROGMEM RGBLED_SNAKE_INTERVALS[] = { 20, 50, 100 };
-#endif
-
-#ifdef RGBLIGHT_EFFECT_KNIGHT
-const uint8_t PROGMEM RGBLED_KNIGHT_INTERVALS[] = { 20, 50, 100 };
-#endif
-
-const HSV godspeed_blue = { GODSPEED_BLUE };
-const HSV godspeed_yellow = { GODSPEED_YELLOW };
-const HSV modern_dolch_cyan = { MODERN_DOLCH_CYAN };
-const HSV modern_dolch_red = { MODERN_DOLCH_RED };
diff --git a/users/konstantin/rgb.h b/users/konstantin/rgb.h
deleted file mode 100644
index 3425dcb069..0000000000
--- a/users/konstantin/rgb.h
+++ /dev/null
@@ -1,29 +0,0 @@
-/* Copyright 2019-2021 Konstantin Đorđević <vomindoraan@gmail.com>
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-#pragma once
-
-#include "quantum.h"
-
-#define GODSPEED_BLUE 198, 68, 255
-#define GODSPEED_YELLOW 27, 153, 255
-#define MODERN_DOLCH_CYAN 110, 255, 108
-#define MODERN_DOLCH_RED 253, 255, 108
-
-extern const HSV godspeed_blue;
-extern const HSV godspeed_yellow;
-extern const HSV modern_dolch_cyan;
-extern const HSV modern_dolch_red;
diff --git a/users/konstantin/rules.mk b/users/konstantin/rules.mk
deleted file mode 100644
index 6fe3a8ad83..0000000000
--- a/users/konstantin/rules.mk
+++ /dev/null
@@ -1,18 +0,0 @@
-SRC += konstantin.c
-ifeq ($(strip $(RGBLIGHT_ENABLE)), yes)
- SRC += rgb.c
-endif
-RGB_MATRIX_ENABLE ?= no
-ifneq ($(strip $(RGB_MATRIX_ENABLE)), no)
- SRC += rgb.c
-endif
-ifeq ($(strip $(TAP_DANCE_ENABLE)), yes)
- SRC += tap_dance.c
-endif
-ifneq (,$(filter yes,$(UNICODE_ENABLE) $(UNICODEMAP_ENABLE)))
- SRC += unicode.c
-endif
-
-ifneq ($(PLATFORM),CHIBIOS)
- LTO_ENABLE = yes
-endif
diff --git a/users/konstantin/tap_dance.c b/users/konstantin/tap_dance.c
deleted file mode 100644
index 38d00bf56c..0000000000
--- a/users/konstantin/tap_dance.c
+++ /dev/null
@@ -1,135 +0,0 @@
-/* Copyright 2019-2021 Konstantin Đorđević <vomindoraan@gmail.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 "tap_dance.h"
-#include "konstantin.h"
-
-#define ACTION_TAP_DANCE_DOUBLE_MOD(mod1, mod2) { \
- .fn = { td_double_mod_each, NULL, td_double_mod_reset }, \
- .user_data = &(tap_dance_pair_t){ mod1, mod2 }, \
- }
-
-void td_double_mod_each(tap_dance_state_t *state, void *user_data) {
- tap_dance_pair_t *data = (tap_dance_pair_t *)user_data;
-
- // Single tap → mod1, double tap → mod2, triple tap etc. → mod1+mod2
- if (state->count == 1 || state->count == 3) {
- register_code(data->kc1);
- } else if (state->count == 2) {
- unregister_code(data->kc1);
- register_code(data->kc2);
- }
- // Prevent tap dance from sending the mods as weak mods
- state->weak_mods &= ~(MOD_BIT(data->kc1) | MOD_BIT(data->kc2));
-}
-
-void td_double_mod_reset(tap_dance_state_t *state, void *user_data) {
- tap_dance_pair_t *data = (tap_dance_pair_t *)user_data;
-
- if (state->count == 1 || state->count >= 3) {
- unregister_code(data->kc1);
- }
- if (state->count >= 2) {
- unregister_code(data->kc2);
- }
-}
-
-#define ACTION_TAP_DANCE_MOD_LAYER(mod, layer) { \
- .fn = { td_mod_layer_each, NULL, td_mod_layer_reset }, \
- .user_data = &(tap_dance_dual_role_t){ mod, layer }, \
- }
-
-void td_mod_layer_each(tap_dance_state_t *state, void *user_data) {
- tap_dance_dual_role_t *data = (tap_dance_dual_role_t *)user_data;
-
- // Single tap → mod, double tap → layer, triple tap etc. → mod+layer
- if (state->count == 1 || state->count == 3) {
- register_code(data->kc);
- } else if (state->count == 2) {
- unregister_code(data->kc);
- // Prevent tap dance from sending the mod as a weak mod
- state->weak_mods &= ~MOD_BIT(data->kc);
- layer_on(data->layer);
- }
-}
-
-void td_mod_layer_reset(tap_dance_state_t *state, void *user_data) {
- tap_dance_dual_role_t *data = (tap_dance_dual_role_t *)user_data;
-
- if (state->count == 1 || state->count >= 3) {
- unregister_code(data->kc);
- }
- if (state->count >= 2) {
- layer_off(data->layer);
- }
-}
-
-#define ACTION_TAP_DANCE_LAYER_MOD(layer, mod) { \
- .fn = { td_layer_mod_each, NULL, td_layer_mod_reset }, \
- .user_data = &(tap_dance_layer_mod_t){ layer, mod, 0, 0 }, \
- }
-
-typedef struct {
- uint8_t layer;
- uint16_t kc;
- bool layer_on; // Layer state when tap dance started
- bool started;
-} tap_dance_layer_mod_t;
-
-void td_layer_mod_each(tap_dance_state_t *state, void *user_data) {
- tap_dance_layer_mod_t *data = (tap_dance_layer_mod_t *)user_data;
- if (!data->started) {
- data->layer_on = IS_LAYER_ON(data->layer);
- data->started = true;
- }
-
- // Single tap → layer, double tap → mod, triple tap etc. → layer+mod
- if (state->count == 1 || state->count == 3) {
- layer_on(data->layer);
- } else if (state->count == 2) {
- if (!data->layer_on) {
- layer_off(data->layer);
- }
- register_code(data->kc);
- }
-}
-
-void td_layer_mod_reset(tap_dance_state_t *state, void *user_data) {
- tap_dance_layer_mod_t *data = (tap_dance_layer_mod_t *)user_data;
-
- if ((state->count == 1 || state->count >= 3) && !data->layer_on) {
- layer_off(data->layer);
- }
- if (state->count >= 2) {
- unregister_code(data->kc);
- }
-
- data->started = false;
-}
-
-tap_dance_action_t tap_dance_actions[] = {
- [TD_DST_A_R] = ACTION_TAP_DANCE_DOUBLE(DST_ADD, DST_REM),
-
- [TD_RAL_RGU] = ACTION_TAP_DANCE_DOUBLE_MOD(KC_RALT, KC_RGUI),
- [TD_RCT_RSF] = ACTION_TAP_DANCE_DOUBLE_MOD(KC_RCTL, KC_RSFT),
- [TD_RSF_RCT] = ACTION_TAP_DANCE_DOUBLE_MOD(KC_RSFT, KC_RCTL),
-
-#ifdef LAYER_FN
- [TD_LSFT_FN] = ACTION_TAP_DANCE_MOD_LAYER(KC_LSFT, L_FN),
- [TD_RCTL_FN] = ACTION_TAP_DANCE_MOD_LAYER(KC_RCTL, L_FN),
- [TD_FN_RCTL] = ACTION_TAP_DANCE_LAYER_MOD(L_FN, KC_RCTL),
-#endif
-};
diff --git a/users/konstantin/tap_dance.h b/users/konstantin/tap_dance.h
deleted file mode 100644
index 047662a8e9..0000000000
--- a/users/konstantin/tap_dance.h
+++ /dev/null
@@ -1,45 +0,0 @@
-/* Copyright 2019-2021 Konstantin Đorđević <vomindoraan@gmail.com>
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-#pragma once
-
-#include "quantum.h"
-
-#define DST_A_R TD(TD_DST_A_R)
-
-#define RAL_RGU TD(TD_RAL_RGU)
-#define RCT_RSF TD(TD_RCT_RSF)
-#define RSF_RCT TD(TD_RSF_RCT)
-
-#ifdef LAYER_FN
- #define LSFT_FN TD(TD_LSFT_FN)
- #define RCTL_FN TD(TD_RCTL_FN)
- #define FN_RCTL TD(TD_FN_RCTL)
-#endif
-
-enum tap_dance {
- TD_DST_A_R,
-
- TD_RAL_RGU,
- TD_RCT_RSF,
- TD_RSF_RCT,
-
-#ifdef LAYER_FN
- TD_LSFT_FN,
- TD_RCTL_FN,
- TD_FN_RCTL,
-#endif
-};
diff --git a/users/konstantin/unicode.c b/users/konstantin/unicode.c
deleted file mode 100644
index ed92b818b0..0000000000
--- a/users/konstantin/unicode.c
+++ /dev/null
@@ -1,23 +0,0 @@
-/* Copyright 2019-2021 Konstantin Đorđević <vomindoraan@gmail.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 "unicode.h"
-
-#ifdef UNICODEMAP_ENABLE
-const uint32_t unicode_map[] PROGMEM = {
- FOREACH_UNICODE(UCM_ENTRY)
-};
-#endif
diff --git a/users/konstantin/unicode.h b/users/konstantin/unicode.h
deleted file mode 100644
index 472f48a942..0000000000
--- a/users/konstantin/unicode.h
+++ /dev/null
@@ -1,50 +0,0 @@
-/* Copyright 2019-2021 Konstantin Đorđević <vomindoraan@gmail.com>
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-#pragma once
-
-#include "quantum.h"
-
-#define FOREACH_UNICODE(M) \
- M(COMMA, 0x002C) \
- M(L_PAREN, 0x0028) \
- M(R_PAREN, 0x0029) \
- M(EQUALS, 0x003D) \
- M(TIMES, 0x00D7) \
- M(DIVIDE, 0x00F7) \
- M(MINUS, 0x2212)
-
-#define UC_KEYCODE(name, code) name = UC(code),
-
-#define UCM_NAME(name, code) UCM_ ## name,
-#define UCM_ENTRY(name, code) [UCM_ ## name] = code,
-#define UCM_KEYCODE(name, code) name = UM(UCM_ ## name),
-
-#if defined(UNICODE_ENABLE)
-enum unicode_keycodes {
- FOREACH_UNICODE(UC_KEYCODE)
-};
-#elif defined(UNICODEMAP_ENABLE)
-enum unicode_names {
- FOREACH_UNICODE(UCM_NAME)
-};
-
-extern const uint32_t unicode_map[] PROGMEM;
-
-enum unicode_keycodes {
- FOREACH_UNICODE(UCM_KEYCODE)
-};
-#endif
diff --git a/users/kuatsure/kuatsure.c b/users/kuatsure/kuatsure.c
deleted file mode 100644
index 37adc337c1..0000000000
--- a/users/kuatsure/kuatsure.c
+++ /dev/null
@@ -1,122 +0,0 @@
-#include "kuatsure.h"
-#include "version.h"
-
-tap_dance_action_t tap_dance_actions[] = {
- [TD_LBRC] = ACTION_TAP_DANCE_DOUBLE(KC_LBRC, KC_LT),
- [TD_RBRC] = ACTION_TAP_DANCE_DOUBLE(KC_RBRC, KC_GT),
- [TD_SLSH] = ACTION_TAP_DANCE_DOUBLE(KC_SLSH, KC_BSLS),
-};
-
-__attribute__ ((weak))
-bool process_record_keymap(uint16_t keycode, keyrecord_t *record) {
- return true;
-}
-
-bool process_record_user(uint16_t keycode, keyrecord_t *record) {
- switch (keycode) {
- case KB_MAKE:
- if (!record->event.pressed) {
- SEND_STRING("make " QMK_KEYBOARD ":" QMK_KEYMAP SS_TAP(X_ENTER));
- }
- return false;
- break;
-
- case KB_VRSN:
- if (!record->event.pressed) {
- SEND_STRING(QMK_KEYBOARD "/" QMK_KEYMAP " @ " QMK_VERSION);
- }
- return false;
- break;
-
- case KB_FLSH:
- if (!record->event.pressed) {
- SEND_STRING(
- "qmk flash -kb " QMK_KEYBOARD " -km " QMK_KEYMAP
- );
-
- reset_keyboard();
- }
- return false;
- break;
- }
-
- return process_record_keymap(keycode, record);
-}
-
-void tmux_prefix(void) {
- tap_code16(LCTL(KC_SPC));
-}
-
-void tmux_pane_zoom(void) {
- tmux_prefix();
-
- SEND_STRING("z");
-}
-
-void leader_end_user(void) {
- // Stop music and lock computer via alfred
- if (leader_sequence_one_key(KC_H)) {
- SEND_STRING(SS_LGUI(" ") SS_TAP(X_LGUI) "afk" SS_TAP(X_ENTER));
- }
-
- // Stop music and lock computer via alfred
- if (leader_sequence_two_keys(KC_H, KC_H)) {
- SEND_STRING(SS_LGUI(" ") SS_TAP(X_LGUI) "afk" SS_TAP(X_ENTER) SS_TAP(X_MEDIA_PLAY_PAUSE));
- }
-
- // Whole Screen Shot
- if (leader_sequence_one_key(KC_A)) {
- SEND_STRING(SS_LGUI(SS_LSFT("3")));
- }
-
- // Selective Screen Shot
- if (leader_sequence_one_key(KC_S)) {
- SEND_STRING(SS_LGUI(SS_LSFT("4")));
- }
-
- // TMUX - shift to pane 1 and zoom
- if (leader_sequence_one_key(KC_J)) {
- tmux_prefix();
- SEND_STRING("q1");
- tmux_pane_zoom();
- }
-
- // TMUX - shift to first window
- if (leader_sequence_two_keys(KC_J, KC_J)) {
- tmux_prefix();
- SEND_STRING("1");
- }
-
- // TMUX - shift to pane 2 and zoom
- if (leader_sequence_one_key(KC_K)) {
- tmux_prefix();
- SEND_STRING("q2");
- tmux_pane_zoom();
- }
-
- // TMUX - shift to second window
- if (leader_sequence_two_keys(KC_K, KC_K)) {
- tmux_prefix();
- SEND_STRING("2");
- }
-
- // TMUX - shift to pane 3 and zoom
- if (leader_sequence_one_key(KC_L)) {
- tmux_prefix();
- SEND_STRING("q3");
- tmux_pane_zoom();
- }
-
- // TMUX - shift to third window
- if (leader_sequence_two_keys(KC_L, KC_L)) {
- tmux_prefix();
- SEND_STRING("3");
- }
-
- // TMUX - shift to last pane and zoom
- if (leader_sequence_one_key(KC_SEMICOLON)) {
- tmux_prefix();
- SEND_STRING(";");
- tmux_pane_zoom();
- }
-}
diff --git a/users/kuatsure/kuatsure.h b/users/kuatsure/kuatsure.h
deleted file mode 100644
index ca2c91c9bc..0000000000
--- a/users/kuatsure/kuatsure.h
+++ /dev/null
@@ -1,65 +0,0 @@
-#ifndef KUATSURE
-#define KUATSURE
-
-#include "quantum.h"
-
-enum kuatsure_keycodes {
- KB_MAKE = SAFE_RANGE,
- KB_FLSH,
- KB_VRSN,
-
- USER_SAFE_RANGE,
-};
-
-#define ONESHOT_TAP_TOGGLE 2
-#define KT_LSFT OSM(MOD_LSFT)
-
-enum {
- TD_LBRC = 0,
- TD_RBRC,
- TD_SLSH
-};
-
-#define KT_LBRC TD(TD_LBRC)
-#define KT_RBRC TD(TD_RBRC)
-#define KT_SLSH TD(TD_SLSH)
-
-#define TAPPING_TERM 200
-
-#define LEADER_TIMEOUT 250
-#define LEADER_PER_KEY_TIMING
-
-void tmux_prefix(void);
-void tmux_pane_zoom(void);
-
-#define KT_CESC CTL_T(KC_ESC)
-#define KT_MTAB MEH_T(KC_TAB)
-
-#undef LEADER_TIMEOUT
-#define LEADER_TIMEOUT 300
-
-#define _________________NUMBER_L1_________________ KC_1, KC_2, KC_3, KC_4, KC_5
-#define _________________NUMBER_R1_________________ KC_6, KC_7, KC_8, KC_9, KC_0
-
-#define _________________SYMBOL_L1_________________ KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC
-#define _________________SYMBOL_R1_________________ KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN
-
-#define _________________QWERTY_L1_________________ KC_Q, KC_W, KC_E, KC_R, KC_T
-#define _________________QWERTY_L2_________________ KC_A, KC_S, KC_D, KC_F, KC_G
-#define _________________QWERTY_L3_________________ KC_Z, KC_X, KC_C, KC_V, KC_B
-
-#define _________________QWERTY_R1_________________ KC_Y, KC_U, KC_I, KC_O, KC_P
-#define _________________QWERTY_R2_________________ KC_H, KC_J, KC_K, KC_L, KC_SCLN
-#define _________________QWERTY_R3_________________ KC_N, KC_M, KC_COMM, KC_DOT, KT_SLSH
-#define _________________QWERTY_R3_M_______________ KC_N, KC_M, KC_COMM, KC_DOT, KC_UP
-
-#define ____________FUNCTION_1____________ KC_F1, KC_F2, KC_F3, KC_F4
-#define ____________FUNCTION_2____________ KC_F5, KC_F6, KC_F7, KC_F8
-#define ____________FUNCTION_3____________ KC_F9, KC_F10, KC_F11, KC_F12
-
-#define ___SQBRACKETS___ KT_LBRC, KT_RBRC
-#define _____PARENS_____ KC_LPRN, KC_RPRN
-#define ____CRBRACES____ KC_LCBR, KC_RCBR
-#define ___ANBRACKETS___ KC_LT, KC_GT
-
-#endif
diff --git a/users/kuatsure/readme.md b/users/kuatsure/readme.md
deleted file mode 100644
index b6d10224f8..0000000000
--- a/users/kuatsure/readme.md
+++ /dev/null
@@ -1,14 +0,0 @@
-Copyright 2018 Jarrett Drouillard jarrett@thestyl.us @kuatsure
-
-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/>.
diff --git a/users/kuatsure/rules.mk b/users/kuatsure/rules.mk
deleted file mode 100644
index ed7e929054..0000000000
--- a/users/kuatsure/rules.mk
+++ /dev/null
@@ -1,4 +0,0 @@
-CONSOLE_ENABLE = no
-TAP_DANCE_ENABLE = yes
-
-SRC += kuatsure.c
diff --git a/users/kuchosauronad0/.gitignore b/users/kuchosauronad0/.gitignore
deleted file mode 100644
index 6878d13e7c..0000000000
--- a/users/kuchosauronad0/.gitignore
+++ /dev/null
@@ -1,3 +0,0 @@
-secrets.c
-secrets.h
-kuchosauronad0_song_list.h
diff --git a/users/kuchosauronad0/combo.c b/users/kuchosauronad0/combo.c
deleted file mode 100644
index 0a58e02770..0000000000
--- a/users/kuchosauronad0/combo.c
+++ /dev/null
@@ -1,27 +0,0 @@
-#include "combo.h"
-
-void process_combo_event(uint16_t combo_index, bool pressed){
- switch(combo_index) {
- case ZV_COPY:
- if (pressed) {
- tap_code16(LCTL(KC_C));
- }
- break;
- case XV_CUT:
- if (pressed) {
- tap_code16(LCTL(KC_X));
- }
- break;
-
- case CV_PASTE:
- if (pressed) {
- tap_code16(LCTL(KC_V));
- }
- break;
- case QP_SLEEP:
- if (pressed) {
- tap_code16(KC_SYSTEM_SLEEP);
- }
- break;
- }
-}
diff --git a/users/kuchosauronad0/combo.h b/users/kuchosauronad0/combo.h
deleted file mode 100644
index 6fb3eaf58c..0000000000
--- a/users/kuchosauronad0/combo.h
+++ /dev/null
@@ -1,20 +0,0 @@
-#pragma once
-#include "quantum.h"
-enum combo_events {
- ZV_COPY,
- XV_CUT,
- CV_PASTE,
- QP_SLEEP
-};
-
-const uint16_t PROGMEM copy_combo[] = {KC_Z, KC_V, COMBO_END};
-const uint16_t PROGMEM cut_combo[] = {KC_X, KC_V, COMBO_END};
-const uint16_t PROGMEM paste_combo[] = {KC_C, KC_V, COMBO_END};
-const uint16_t PROGMEM sleep_combo[] = {KC_Q, KC_P, COMBO_END};
-
-combo_t key_combos[] = {
- [ZV_COPY] = COMBO_ACTION(copy_combo),
- [XV_CUT] = COMBO_ACTION(cut_combo),
- [CV_PASTE] = COMBO_ACTION(paste_combo),
- [QP_SLEEP] = COMBO_ACTION(sleep_combo),
-};
diff --git a/users/kuchosauronad0/config.h b/users/kuchosauronad0/config.h
deleted file mode 100644
index 58ef7a20f8..0000000000
--- a/users/kuchosauronad0/config.h
+++ /dev/null
@@ -1,88 +0,0 @@
-#pragma once
-
-#ifdef AUDIO_ENABLE
-# define DEFAULT_LAYER_SONGS \
- { SONG(QWERTY_SOUND), SONG(COLEMAK_SOUND), SONG(DVORAK_SOUND), SONG(PLOVER_SOUND) }
-# define AUDIO_CLICKY
-# define STARTUP_SONG SONG(RICK_ROLL)
-# define GOODBYE_SONG SONG(SONIC_RING)
-# define AUDIO_CLICKY_FREQ_RANDOMNESS 1.5f
-# ifndef __arm__
-# undef NOTE_REST
-# define NOTE_REST 1.00f
-# endif // !__arm__
-# define UNICODE_SONG_MAC SONG(RICK_ROLL)
-# define UNICODE_SONG_LNX SONG(RICK_ROLL)
-# define UNICODE_SONG_WIN SONG(RICK_ROLL)
-# define UNICODE_SONG_BSD SONG(RICK_ROLL)
-# define UNICODE_SONG_WINC SONG(RICK_ROLL)
-#endif // !AUDIO_ENABLE
-
-#ifdef RGBLIGHT_ENABLE
-# undef RGBLIGHT_SLEEP
-#undef RGBLIGHT_EFFECT_BREATHING
-#undef RGBLIGHT_EFFECT_RAINBOW_MOOD
-#undef RGBLIGHT_EFFECT_RAINBOW_SWIRL
-#undef RGBLIGHT_EFFECT_SNAKE
-#undef RGBLIGHT_EFFECT_KNIGHT
-#undef RGBLIGHT_EFFECT_CHRISTMAS
-#undef RGBLIGHT_EFFECT_STATIC_GRADIENT
-#undef RGBLIGHT_EFFECT_RGB_TEST
-#undef RGBLIGHT_EFFECT_ALTERNATING
-#undef RGBLIGHT_EFFECT_TWINKLE
-# define RGBLIGHT_HUE_STEP 16
-# define RGBLIGHT_SAT_STEP 16
-# define RGBLIGHT_VAL_STEP 16
-# define RGBLIGHT_LIMIT_VAL 255
-# define RGBLIGHT_EFFECT_BREATHING
-# define RGBLIGHT_EFFECT_STATIC_GRADIENT
-//# define RGBLIGHT_EFFECT_KNIGHT
-//# define RGBLIGHT_EFFECT_KNIGHT_LENGTH 2
-//# define RGBLIGHT_EFFECT_SNAKE
-//# define RGBLIGHT_EFFECT_SNAKE_LENGTH 2
-#endif // !RGBLIGHT_ENABLE
-
-#ifndef ONESHOT_TAP_TOGGLE
-# define ONESHOT_TAP_TOGGLE 2
-#endif // !ONESHOT_TAP_TOGGLE
-
-#ifndef ONESHOT_TIMEOUT
-# define ONESHOT_TIMEOUT 3000
-#endif// !ONESHOT_TIMEOUT
-
-#if defined(LEADER_ENABLE)
-# define LEADER_PER_KEY_TIMING
-# define LEADER_TIMEOUT 250
-#endif // !LEADER_ENABLE
-
-#if defined(COMBO_ENABLE)
-# define COMBO_TERM 150
-#endif // !COMBO_ENABLE
-
-#if defined(NKRO_ENABLE)
-# define FORCE_NKRO
-#endif // !NKRO_ENABLE
-
-#undef PERMISSIVE_HOLD
-//#define QUICK_TAP_TERM 0
-//#define RETRO_TAPPING
-
-#ifndef TAPPING_TOGGLE
-# define TAPPING_TOGGLE 1
-#endif
-
-#ifdef TAPPING_TERM
-# undef TAPPING_TERM
-#endif // !TAPPING_TERM
-#if defined(KEYBOARD_handwired_kuchosauronad0_planckenstein)
-# define TAPPING_TERM 185
-#elif defined(KEYBOARD_c39)
-# define TAPPING_TERM 200
-#else
-# define TAPPING_TERM 180
-#endif
-
-
-#define TAP_CODE_DELAY 5
-
-#define MACRO_TIMER 5
diff --git a/users/kuchosauronad0/encoder.c b/users/kuchosauronad0/encoder.c
deleted file mode 100644
index 2578ddd873..0000000000
--- a/users/kuchosauronad0/encoder.c
+++ /dev/null
@@ -1,64 +0,0 @@
-#include "encoder.h"
-bool encoder_update_user(uint8_t index, bool clockwise) {
- static uint16_t kc;
- uint8_t temp_mod = get_mods();
- if (index == 0) { /* first encoder */
- if (clockwise) {
- //if (temp_mod & MOD_BIT(KC_HYPR)){ // TODO: not how this works, only registers CTRL
- if ((temp_mod & MOD_MASK_CTRL) && (temp_mod & MOD_MASK_SHIFT) && (temp_mod & MOD_MASK_ALT) && (temp_mod & MOD_MASK_GUI)) { // HYPER
- kc = encoder_actions[0][8];
- } else if ( (temp_mod & MOD_MASK_SHIFT) && (temp_mod & MOD_MASK_ALT) ) { // ALT+SHIFT
- kc = encoder_actions[0][7];
- } else if ( (temp_mod & MOD_MASK_SHIFT) && (temp_mod & MOD_MASK_CTRL) ) { // CTRL+SHIFT
- kc = encoder_actions[0][6];
- } else if ( (temp_mod & MOD_MASK_CTRL) && (temp_mod & MOD_MASK_ALT) ) { // CTRL+ALT
- kc = encoder_actions[0][5];
- } else if (temp_mod & MOD_MASK_GUI) { // GUI
- kc = encoder_actions[0][4];
- } else if (temp_mod & MOD_MASK_SHIFT) { // SHIFT
- kc = encoder_actions[0][3];
- } else if (temp_mod & MOD_MASK_ALT) { // ALT
- kc = encoder_actions[0][2];
- } else if (temp_mod & MOD_MASK_CTRL) { // CTRL
- kc = encoder_actions[0][1];
- } else { // None
- kc = encoder_actions[0][0];
- }
- } else { // Counter Clockwise
- if ((temp_mod & MOD_MASK_CTRL) && (temp_mod & MOD_MASK_SHIFT) && (temp_mod & MOD_MASK_ALT) && (temp_mod & MOD_MASK_GUI)) { // HYPER
- kc = encoder_actions[1][8];
- } else if ( (temp_mod & MOD_MASK_SHIFT) && (temp_mod & MOD_MASK_ALT) ) { // ALT+SHIFT
- kc = encoder_actions[1][7];
- } else if ( (temp_mod & MOD_MASK_SHIFT) && (temp_mod & MOD_MASK_CTRL) ) { // CTRL+SHIFT
- kc = encoder_actions[1][6];
- } else if ( (temp_mod & MOD_MASK_CTRL) && (temp_mod & MOD_MASK_ALT) ) { // CTRL+ALT
- kc = encoder_actions[1][5];
- } else if (temp_mod & MOD_MASK_GUI) { // GUI
- kc = encoder_actions[1][4];
- } else if (temp_mod & MOD_MASK_SHIFT) { // SHIFT
- kc = encoder_actions[1][3];
- } else if (temp_mod & MOD_MASK_ALT) { // ALT
- kc = encoder_actions[1][2];
- } else if (temp_mod & MOD_MASK_CTRL) { // CTRL
- kc = encoder_actions[1][1];
- } else { // None
- kc = encoder_actions[1][0];
- }
- }
- clear_mods();
- tap_code16(kc);
- set_mods(temp_mod);
- } else if (index == 1){ // second Encoder
- if (clockwise) {
- tap_code(KC_0);
- } else{
- tap_code(KC_1);
- }
- }
- return true;
-}
-const uint16_t PROGMEM encoder_actions[][9] = {
-// None CTRL ALT SHIFT GUI CTRL+ALT CTRL+SHFT ALT+SHFT HYPER
- { KC_PGDN, KC_DOWN, KC_AUDIO_VOL_UP, KC_END, KC_WWW_FORWARD, KC_AUDIO_MUTE, KC_RIGHT, LSFT(KC_TAB), KC_MEDIA_NEXT_TRACK},
- { KC_PGUP, KC_UP, KC_AUDIO_VOL_DOWN, KC_HOME, KC_WWW_BACK, KC_MEDIA_PLAY_PAUSE, KC_LEFT, KC_TAB, KC_MEDIA_PREV_TRACK}
-};
diff --git a/users/kuchosauronad0/encoder.h b/users/kuchosauronad0/encoder.h
deleted file mode 100644
index 7b05aa4911..0000000000
--- a/users/kuchosauronad0/encoder.h
+++ /dev/null
@@ -1,4 +0,0 @@
-#pragma once
-#include "quantum.h"
-const uint16_t PROGMEM encoder_actions[][9];
-bool encoder_update_user(uint8_t index, bool clockwise);
diff --git a/users/kuchosauronad0/kuchosauronad0.c b/users/kuchosauronad0/kuchosauronad0.c
deleted file mode 100644
index 2c63eadfd1..0000000000
--- a/users/kuchosauronad0/kuchosauronad0.c
+++ /dev/null
@@ -1,197 +0,0 @@
-/*
-Copyright 2019 Andre Poley <andre.poley@mailbox.org>
-
-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 "kuchosauronad0.h"
-
-userspace_config_t userspace_config;
-#if (defined(UNICODE_ENABLE) || defined(UNICODEMAP_ENABLE) || defined(UCIS_ENABLE))
-# define KUCHOSAURONAD0_UNICODE_MODE UNICODE_MODE_WINCOMPOSE
-#else
-# define KUCHOSAURONAD0_UNICODE_MODE 2 // set to 2 for UNICODE_MODE_WINDOWS, set to 4 for UNICODE_MODE_WINCOMPOSE
-#endif
-
-
-// Add reconfigurable functions here, for keymap customization
-// This allows for a global, userspace functions, and continued
-// customization of the keymap. Use _keymap instead of _user
-// functions in the keymaps
-__attribute__ ((weak))
-void matrix_init_keymap(void) {}
-
-// Call user matrix init, set default RGB colors and then
-// call the keymap's init function
-void matrix_init_user(void) {
- userspace_config.raw = eeconfig_read_user();
-
- #ifdef BOOTLOADER_CATERINA
- DDRD &= ~(1<<5);
- PORTD &= ~(1<<5);
-
- DDRB &= ~(1<<0);
- PORTB &= ~(1<<0);
- #endif
-
- #if (defined(UNICODE_ENABLE) || defined(UNICODEMAP_ENABLE) || defined(UCIS_ENABLE))
- set_unicode_input_mode(KUCHOSAURONAD0_UNICODE_MODE);
- get_unicode_input_mode();
- #endif //UNICODE_ENABLE
- matrix_init_keymap();
-}
-
-__attribute__((weak))
-void keyboard_post_init_keymap(void){ }
-
-void keyboard_post_init_user(void){
-#ifdef RGBLIGHT_ENABLE
- keyboard_post_init_rgb();
-#endif
- keyboard_post_init_keymap();
-}
-
-__attribute__ ((weak))
-void shutdown_keymap(void) {}
-
-void shutdown_user (void) {
- #ifdef RGBLIGHT_ENABLE
- rgblight_enable_noeeprom();
- rgblight_mode_noeeprom(1);
- rgblight_setrgb(RGB_TEAL);
- #endif // RGBLIGHT_ENABLE
- #ifdef RGB_MATRIX_ENABLE
- // uint16_t timer_start = timer_read();
- // rgb_matrix_set_color_all( 0xFF, 0x00, 0x00 );
- // while(timer_elapsed(timer_start) < 250) { wait_ms(1); }
- #endif //RGB_MATRIX_ENABLE
- shutdown_keymap();
-}
-
-__attribute__ ((weak))
-void suspend_power_down_keymap(void) {}
-
-void suspend_power_down_user(void) {
- suspend_power_down_keymap();
-}
-
-__attribute__ ((weak))
-void suspend_wakeup_init_keymap(void) {}
-
-void suspend_wakeup_init_user(void) {
- suspend_wakeup_init_keymap();
-}
-
-
-__attribute__ ((weak))
-void matrix_scan_keymap(void) {}
-
-__attribute__ ((weak))
-void matrix_scan_user(void){
- static bool has_ran_yet;
- if (!has_ran_yet) {
- has_ran_yet = true;
- startup_user();
- }
-
-#ifdef TAP_DANCE_ENABLE // Run Diablo 3 macro checking code.
-// run_diablo_macro_check();
-#endif // !TAP_DANCE_ENABLE
-
-#ifdef RGBLIGHT_ENABLE
- matrix_scan_rgb();
-#endif // !RGBLIGHT_ENABLE
-
- matrix_scan_keymap();
-}
-
-__attribute__ ((weak))
-layer_state_t layer_state_set_keymap (layer_state_t state) {
- return state;
-}
-
-// on layer change, no matter where the change was initiated
-// Then runs keymap's layer change check
-layer_state_t layer_state_set_user(layer_state_t state) {
- state = update_tri_layer_state(state, _RAISE, _LOWER, _ADJUST);
-#ifdef RGBLIGHT_ENABLE
- state = layer_state_set_rgb(state);
-#endif // RGBLIGHT_ENABLE
- return layer_state_set_keymap (state);
-}
-
-
-__attribute__ ((weak))
-layer_state_t default_layer_state_set_keymap (layer_state_t state) {
- return state;
-}
-
-// Runs state check and changes underglow color and animation
-layer_state_t default_layer_state_set_user(layer_state_t state) {
- state = default_layer_state_set_keymap(state);
-#if 0
-#ifdef RGBLIGHT_ENABLE
- state = default_layer_state_set_rgb(state);
-#endif // RGBLIGHT_ENABLE
-#endif
- return state;
-}
-
-__attribute__ ((weak))
-void led_set_keymap(uint8_t usb_led) {}
-
-// Any custom LED code goes here.
-// So far, I only have keyboard specific code,
-// So nothing goes here.
-void led_set_user(uint8_t usb_led) {
- led_set_keymap(usb_led);
-}
-__attribute__ ((weak))
-void eeconfig_init_keymap(void) {}
-
-void eeconfig_init_user(void) {
- userspace_config.raw = 0;
- userspace_config.rgb_layer_change = true;
- eeconfig_update_user(userspace_config.raw);
- #if (defined(UNICODE_ENABLE) || defined(UNICODEMAP_ENABLE) || defined(UCIS_ENABLE))
- set_unicode_input_mode(KUCHOSAURONAD0_UNICODE_MODE);
- get_unicode_input_mode();
- #else
- eeprom_update_byte(EECONFIG_UNICODEMODE, KUCHOSAURONAD0_UNICODE_MODE);
- #endif
- eeconfig_init_keymap();
- keyboard_init();
-}
-
-// TMUX stuff
-void tmux_prefix(void) {
- register_code(KC_LCTL);
- tap_code(KC_B);
- unregister_code(KC_LCTL);
-}
-
-
-void tmux_pane_last(void) {
- tmux_prefix();
- tap_code(KC_SCLN);
-}
-
-void tmux_pane_switch_repeat(void) {
- tmux_pane_last();
- tap_code(KC_UP);
- tap_code(KC_ENT);
- tmux_pane_last();
-}
-
-/* vi: ft=c:tw=80:sw=2:ts=2:sts=2:et */
diff --git a/users/kuchosauronad0/kuchosauronad0.h b/users/kuchosauronad0/kuchosauronad0.h
deleted file mode 100644
index 5cbd517d67..0000000000
--- a/users/kuchosauronad0/kuchosauronad0.h
+++ /dev/null
@@ -1,109 +0,0 @@
-#pragma once
-
-#include "quantum.h"
-
-#include "version.h"
-#include "eeprom.h"
-#include "wrappers.h"
-#include "process_records.h"
-
-#ifdef TAP_DANCE_ENABLE
-# include "tap_dances.h"
-# define KC_TMX TD(TD_TMX) // tap1: 't' tap2: <CTL>+b
-# define KC_EOL TD(TD_EOL) // tap1: 'e' tap2: <CTL>+e
-# define KC_BOL TD(TD_BOL) // tap1: 'a' tap2: <CTL>+a
-# define KC_NW TD(TD_NW) // tap1: 'f' tap2: <ALT>+f
-# define KC_PW TD(TD_PW) // tap1: 'b' tap2: <ALT>+b
-# define KC_DW TD(TD_DW) // tap1: 'w' tap2: <CTL>+w
-#endif //!TAP_DANCE_ENABLE
-
-#if defined(RGBLIGHT_ENABLE) || defined(RGB_MATRIX_ENABLE)
-# include "rgblight_user.h"
-#endif
-
-#if defined(UNICODEMAP_ENABLE) || defined(UNICODE_ENABLE)
-# include "unicode.h"
-#endif //!UNICODE_ENABLE
-
-// Keycode aliases
-#define TM_X LCTL(KC_B) // Tmux leader key
-// Unix QoL macros
-#define MC_BOL LCTL(KC_A) // jump to beginning of line
-#define MC_EOL LCTL(KC_E) // jump to end of line
-#define MC_NW LALT(KC_F) // next word
-#define MC_PW LALT(KC_B) // previous word
-#define MC_DW LCTL(KC_W) // delete word
-
-// Define layer names
-enum userspace_layers {
- _QWERTY = 0,
- _NUMLOCK = 0,
- _COLEMAK,
- _DVORAK,
- _WORKMAN,
-/* _NORMAN,
- _MALTRON,
- _EUCALYN,
- _CARPLAX, */
- _PLOVER,
- _UNICODE,
- _MODS, /* layer 8 now 9*/
- _GAMEPAD,
- _DIABLO,
- _MACROS,
- _MEDIA,
- _LOWER,
- _RAISE,
- _ADJUST,
-};
-
-bool mod_key_press_timer (uint16_t code, uint16_t mod_code, bool pressed);
-bool mod_key_press (uint16_t code, uint16_t mod_code, bool pressed, uint16_t this_timer);
-bool send_game_macro(const char *str, keyrecord_t *record, bool override);
-void matrix_init_keymap(void);
-void shutdown_keymap(void);
-void suspend_power_down_keymap(void);
-void suspend_wakeup_init_keymap(void);
-void matrix_scan_keymap(void);
-layer_state_t layer_state_set_keymap (layer_state_t state);
-layer_state_t default_layer_state_set_keymap (layer_state_t state);
-void led_set_keymap(uint8_t usb_led);
-void eeconfig_init_keymap(void);
-
-void tmux_prefix(void);
-void tmux_pane_zoom(void);
-void tmux_pane_last(void);
-void tmux_pane_switch_repeat(void);
-void tmux_pane_switch(uint16_t keycode);
-
-typedef union {
- uint32_t raw;
- struct {
- bool rgb_layer_change :1;
- bool is_overwatch :1;
- bool nuke_switch :1;
- uint8_t unicode_mod :4;
- bool swapped_numbers :1;
- };
-} userspace_config_t;
-
-extern userspace_config_t userspace_config;
-
-/*
-Custom Keycodes for Diablo 3 layer
-But since TD() doesn't work when tap dance is disabled
-We use custom codes here, so we can substitute the right stuff
-*/
-#ifdef TAP_DANCE_ENABLE
-# define KC_D3_1 TD(TD_D3_1)
-# define KC_D3_2 TD(TD_D3_2)
-# define KC_D3_3 TD(TD_D3_3)
-# define KC_D3_4 TD(TD_D3_4)
-#else
-# define KC_D3_1 KC_1
-# define KC_D3_2 KC_2
-# define KC_D3_3 KC_3
-# define KC_D3_4 KC_4
-#endif // !TAP_DANCE_ENABLE
-
-/* vi: ft=c:tw=80:sw=2:ts=2:sts=2:et */
diff --git a/users/kuchosauronad0/leader_user.c b/users/kuchosauronad0/leader_user.c
deleted file mode 100644
index fd356021a6..0000000000
--- a/users/kuchosauronad0/leader_user.c
+++ /dev/null
@@ -1,113 +0,0 @@
-#include "leader_user.h"
-#ifdef RGBLIGHT_ENABLE
-extern rgblight_config_t rgblight_config;
-#endif
-bool leader_succeed;
-
-void matrix_scan_user(void) {
- static bool has_ran_yet;
- if (!has_ran_yet) {
- has_ran_yet = true;
- startup_user();
- }
-#ifdef TAP_DANCE_ENABLE // Run Diablo 3 macro checking code.
-// run_diablo_macro_check();
-#endif
-#ifdef RGBLIGHT_ENABLE
- matrix_scan_rgb();
-#endif
-
-// matrix_scan_keymap();
-}
-
-void leader_start_user(void) {
-#ifdef RGBLIGHT_ENABLE
- rgblight_savebase();
- rgblight_mode_noeeprom(1);
- rgblight_sethsv_noeeprom(HSV_GOLDENROD);
-#endif
-}
-
-void leader_end_user(void) {
- leader_succeed = false;
-
- if (leader_sequence_one_key(KC_W)) {
- // vim/tmux: Use in command mode in vim: write to file, switch tmux pane in the current session window and repeat the last command
- SEND_STRING(":w" SS_TAP(X_ENTER));
- tmux_pane_switch_repeat();
- leader_succeed = true;
- } else
- if (leader_sequence_one_key(KC_T)) {
- // Send the Tmux Prefix
- tmux_prefix();
- leader_succeed = true;
- } else
- if (leader_sequence_one_key(KC_A)) {
- // tmux: Send the prefix and press 'right' arrow
- tmux_prefix();
- tap_code(KC_RIGHT);
- leader_succeed = true;
- } else
- if (leader_sequence_two_keys(KC_T, KC_T)) {
- // tmux: Send the prefix to a nested session
- tmux_prefix();
- tmux_prefix();
- leader_succeed = true;
- } else
- if (leader_sequence_two_keys(KC_T, KC_R)) {
- // tmux: Switch pane and repeat last action
- tmux_pane_switch_repeat();
- leader_succeed = true;
- } else
- if (leader_sequence_two_keys(KC_V, KC_Z)){
- // vim: Zoom pane
- tap_code16(LCTL(KC_W));
- tap_code16(LSFT(KC_BSLS));
- leader_succeed = true;
- } else
- if (leader_sequence_two_keys(KC_V, KC_R)) {
- // vim: Substitute and place cursor
- SEND_STRING(":%s///g" SS_TAP(X_LEFT));
- tap_code(KC_LEFT);
- tap_code(KC_LEFT);
- leader_succeed = true;
- } else
- if (leader_sequence_two_keys(KC_V, KC_T)) {
- // vim: move current pane to new tab
- tap_code16(LCTL(KC_W));
- tap_code16(LSFT(KC_T));
- leader_succeed = true;
- } else
- if (leader_sequence_one_key(KC_R)){
- // Toggle RGB Layer indicator
- tap_code16(KC_RGB_T);
- leader_succeed = true;
- } else
- if (leader_sequence_one_key(KC_SPC)){
- // One Shot Unicode layer
-//TODO tap_code16(OS_UNI);
- leader_succeed = true;
- } else
- if (leader_sequence_two_keys(KC_SPC, KC_SPC)){
- // Toggle _MODS
- tap_code16(TG_MODS);
- leader_succeed = true;
- } else
- if (leader_sequence_three_keys(KC_BSPC, KC_BSPC, KC_BSPC)){
- // Reset the keyboard
- reset_keyboard();
- leader_succeed = true;
- }
-
-// pick color depending of success /fail
-// fade leader_start from 100 to 0
-// fade new color from 0 to 100 to 0
-// fade old color from 0 to 100
-#ifdef RGBLIGHT_ENABLE
- if (leader_succeed) {
- fadeflash_leds(HSV_GREEN);
- } else {
- fadeflash_leds(HSV_RED);
- }
-#endif
-}
diff --git a/users/kuchosauronad0/leader_user.h b/users/kuchosauronad0/leader_user.h
deleted file mode 100644
index d68dc80c13..0000000000
--- a/users/kuchosauronad0/leader_user.h
+++ /dev/null
@@ -1,6 +0,0 @@
-#pragma once
-#include "kuchosauronad0.h"
-
-#include "leader_user.h"
-
-void matrix_scan_user(void);
diff --git a/users/kuchosauronad0/process_records.c b/users/kuchosauronad0/process_records.c
deleted file mode 100644
index 5623c80f98..0000000000
--- a/users/kuchosauronad0/process_records.c
+++ /dev/null
@@ -1,244 +0,0 @@
-#include "kuchosauronad0.h"
-
-uint16_t copy_paste_timer;
-
-__attribute__ ((weak))
-bool process_record_keymap(uint16_t keycode, keyrecord_t *record) {
- return true;
-}
-
-__attribute__ ((weak))
-bool process_record_secrets(uint16_t keycode, keyrecord_t *record) {
- return true;
-}
-
-// Defines actions for my global custom keycodes. Defined in kuchosauronad0.h file
-// Then runs the _keymap's record handier if not processed here
-bool process_record_user(uint16_t keycode, keyrecord_t *record) {
- // If console is enabled, it will print the matrix position and status of each key pressed
-#ifdef KEYLOGGER_ENABLE
- #if defined(KEYBOARD_ergodox_ez) || defined(KEYBOARD_keebio_iris_rev2)
- xprintf("KL: kc: %u, col: %u, row: %u, pressed: %u\n", keycode, record->event.key.row, record->event.key.col, record->event.pressed);
- #else
- xprintf("KL: kc: %u, col: %u, row: %u, pressed: %u\n", keycode, record->event.key.col, record->event.key.row, record->event.pressed);
- #endif
-#endif //KEYLOGGER_ENABLE
-
- switch (keycode) {
- case KC_QWERTY ... KC_PLOVER:
- if (record->event.pressed) {
- set_single_persistent_default_layer(keycode - KC_QWERTY);
- }
- break;
-
- case KC_MAKE: // Compiles the firmware, and adds the flash command based on keyboard bootloader
- if (!record->event.pressed) {
- uint8_t temp_mod = get_mods();
- uint8_t temp_osm = get_oneshot_mods();
- clear_mods(); clear_oneshot_mods();
- send_string_with_delay_P(PSTR("make " QMK_KEYBOARD ":" QMK_KEYMAP), TAP_CODE_DELAY);
-#ifndef MAKE_BOOTLOADER
- if ( ( temp_mod | temp_osm ) & MOD_MASK_SHIFT )
-#endif
- {
- #if defined(__arm__)
- send_string_with_delay_P(PSTR(":dfu-util"), TAP_CODE_DELAY);
- #elif defined(BOOTLOADER_DFU)
- send_string_with_delay_P(PSTR(":dfu"), TAP_CODE_DELAY);
- #elif defined(BOOTLOADER_HALFKAY)
- send_string_with_delay_P(PSTR(":teensy"), TAP_CODE_DELAY);
- #elif defined(BOOTLOADER_CATERINA)
- send_string_with_delay_P(PSTR(":avrdude"), TAP_CODE_DELAY);
- #endif // bootloader options
- }
- if ( ( temp_mod | temp_osm ) & MOD_MASK_CTRL) { send_string_with_delay_P(PSTR(" -j8 --output-sync"), TAP_CODE_DELAY); }
- send_string_with_delay_P(PSTR(SS_TAP(X_ENTER)), TAP_CODE_DELAY);
- }
- break;
-// FLEDERMAUSLAND
- case MC_QT1: // ""
- if(record->event.pressed){
- SEND_STRING("\"\"");
- tap_code(KC_LEFT);
- }
- break;
- case MC_QT2: // ''
- if(record->event.pressed){
- SEND_STRING("''");
- tap_code(KC_LEFT);
- }
- break;
- case MC_QT3: // `'
- if(record->event.pressed){
- SEND_STRING("`'");
- tap_code(KC_LEFT);
- }
- break;
- case MC_PAR: // Parenthesis
- if(record->event.pressed){
- SEND_STRING("()");
- tap_code(KC_LEFT);
- }
- break;
- case MC_CUR: // Curly bracket
- if(record->event.pressed){
- SEND_STRING("{}");
- tap_code(KC_LEFT);
- }
- break;
- case MC_SQR: // Square bracket
- if(record->event.pressed){
- SEND_STRING("[]");
- tap_code(KC_LEFT);
- }
- break;
- case MC_ABR: // Angle bracket
- if(record->event.pressed){
- SEND_STRING("<>");
- tap_code(KC_LEFT);
- }
- break;
- case MCT_NEW: // New Tmux Session
- if(record->event.pressed){
- tmux_prefix();
- SEND_STRING(":neww");
- tap_code(KC_ENT);
- }
- break;
- case MCT_SH: // Tmux horizontal split
- if(record->event.pressed){
- tmux_prefix();
- SEND_STRING("%");
- }
- break;
- case MCT_SV: // Tmux vertical split
- if(record->event.pressed){
- tmux_prefix();
- SEND_STRING("\"");
- }
- break;
- case MCT_ZM: // Tmux zoom
- if(record->event.pressed){
- tmux_prefix();
- tap_code(KC_Z);
- }
- break;
- case MCT_SCR: // Tmux scroll mode
- if(record->event.pressed){
- tmux_prefix();
- tap_code(KC_PGUP);
- }
- break;
- case MCT_UP: // Tmux up
- break;
- case MCT_DW: // Tmux down
- break;
- case MCT_LFT: // Tmux left
- break;
- case MCT_RGT: // Tmux right
- tmux_prefix();
- tap_code(KC_RIGHT);
- break;
- case MCV_B: // Vim begin of line
- if(record->event.pressed){
- tap_code(KC_0);
- }
- break;
- case MCV_E: // Vim end of line
- if(record->event.pressed){
- SEND_STRING(":vsplit");
- tap_code(KC_ENT);
- }
- break;
- case MCT_F: // Vim for loop
- if(record->event.pressed){
- SEND_STRING(":help");
- tap_code(KC_ENT);
- }
- break;
- case VRSN: // Prints firmware version
- if (record->event.pressed) {
- send_string_with_delay_P(PSTR(QMK_KEYBOARD "/" QMK_KEYMAP " @ " QMK_VERSION ", Built on: " QMK_BUILDDATE), TAP_CODE_DELAY);
- }
- break;
-// These are a series of gaming macros.
-// Only enables for the viterbi, basically,
-// to save on firmware space, since it's limited.
-#ifdef MACROS_ENABLED
- case KC_OVERWATCH: // Toggle's if we hit "ENTER" or "BACKSPACE" to input macros
- if (record->event.pressed) { userspace_config.is_overwatch ^= 1; eeconfig_update_user(userspace_config.raw); }
-#ifdef RGBLIGHT_ENABLE
-// userspace_config.is_overwatch ? rgblight_mode_noeeprom(17) : rgblight_mode_noeeprom(18);
-#endif //RGBLIGHT_ENABLE
- break;
- case KC_SALT:
- return send_game_macro("Salt, salt, salt...", record, false);
- case KC_MORESALT:
- return send_game_macro("Please sir, can I have some more salt?!", record, false);
- case KC_SALTHARD:
- return send_game_macro("Your salt only makes me harder, and even more aggressive!", record, false);
- case KC_GOODGAME:
- return send_game_macro("Good game, everyone!", record, false);
- case KC_GLHF:
- return send_game_macro("Good luck, have fun!!!", record, false);
- case KC_SYMM:
- return send_game_macro("Left click to win!", record, false);
- case KC_JUSTGAME:
- return send_game_macro("It may be a game, but if you don't want to actually try, please go play AI, so that people that actually want to take the game seriously and \"get good\" have a place to do so without trolls like you throwing games.", record, false);
- case KC_TORB:
- return send_game_macro("That was positively riveting!", record, false);
- case KC_AIM:
- send_game_macro("That aim is absolutely amazing. It's almost like you're a machine!", record, true);
- return send_game_macro("Wait! That aim is TOO good! You're clearly using an aim hack! CHEATER!", record, false);
- case KC_C9:
- return send_game_macro("OMG!!! C9!!!", record, false);
- case KC_GGEZ:
- return send_game_macro("That was a fantastic game, though it was a bit easy. Try harder next time!", record, false);
-#endif // MACROS_ENABLED
-
- case KC_CCCV: // One key copy/paste
- if(record->event.pressed){
- copy_paste_timer = timer_read();
- } else {
- if (timer_elapsed(copy_paste_timer) > TAPPING_TERM) { // Hold, copy
- register_code(KC_LCTL);
- tap_code(KC_C);
- unregister_code(KC_LCTL);
- } else { // Tap, paste
- register_code(KC_LCTL);
- tap_code(KC_V);
- unregister_code(KC_LCTL);
- }
- }
- break;
-
-// Unicode
-#ifdef UNICODE_ENABLE
- case UC_FLIP:
- if (record->event.pressed) {
- send_unicode_string("(ノಠ痊ಠ)ノ彡┻━┻");
- }
- break;
- case UC_TABL:
- if (record->event.pressed) {
- send_unicode_string("┬─┬ノ( º _ ºノ)");
- }
- break;
- case UC_SHRG:
- if (record->event.pressed) {
- send_unicode_string("¯\\_(ツ)_/¯");
- }
- break;
- case UC_DISA:
- if (record->event.pressed) {
- send_unicode_string("ಠ_ಠ");
- }
- break;
-#endif //!Unicode
-}
- return process_record_keymap(keycode, record) &&
-#if defined(RGBLIGHT_ENABLE) || defined(RGB_MATRIX_ENABLE)
- process_record_user_rgb(keycode, record) &&
-#endif // RGBLIGHT_ENABLE
- process_record_secrets(keycode, record);
-}
diff --git a/users/kuchosauronad0/process_records.h b/users/kuchosauronad0/process_records.h
deleted file mode 100644
index 0e1c1ceadd..0000000000
--- a/users/kuchosauronad0/process_records.h
+++ /dev/null
@@ -1,91 +0,0 @@
-#pragma once
-#include "kuchosauronad0.h"
-
-#if defined(KEYMAP_SAFE_RANGE)
-# define PLACEHOLDER_SAFE_RANGE KEYMAP_SAFE_RANGE
-#else
-# define PLACEHOLDER_SAFE_RANGE SAFE_RANGE
-#endif
-
-enum userspace_custom_keycodes{
- VRSN = PLACEHOLDER_SAFE_RANGE, // Prints QMK Firmware and board info
- KC_QWERTY, // Sets default layer to QWERTY
- KC_COLEMAK, // Sets default layer to COLEMAK
- KC_DVORAK, // Sets default layer to DVORAK
- KC_WORKMAN, // Sets default layer to WORKMAN
- KC_PLOVER, // Sets default layer to PLOVER
-
- KC_MAKE, // Run keyboard's customized make command
- KC_RGB_T, // Toggles RGB Layer Indication mode
- KC_SECRET_1,
- KC_SECRET_2,
- KC_SECRET_3,
- KC_SECRET_4,
- KC_SECRET_5,
- KC_CCCV, // Hold to copy, tap to paste
- KC_NUKE, // NUCLEAR LAUNCH DETECTED!!!
- UC_FLIP, // (ಠ痊ಠ)┻━┻
- UC_TABL, // ┬┬ノ( º _ ºノ)
- UC_SHRG, // ¯\_(ツ)_/¯
- UC_DISA, // ಠ_ಠ
-
- MC_QT1, // ""
- MC_QT2, // ''
- MC_QT3, // `'
- MC_PAR, // Parenthesis
- MC_CUR, // Curly bracket
- MC_SQR, // Square bracket
- MC_ABR, // Angle bracket
- MCT_NEW, // New Tmux Session
- MCT_SH, // Tmux horizontal split
- MCT_SV, // Tmux vertical split
- MCT_ZM, // Tmux zoom
- MCT_SCR, // Tmux scroll mode
- MCT_UP, // Tmux up
- MCT_DW, // Tmux down
- MCT_LFT, // Tmux left
- MCT_RGT, // Tmux right
- MCV_B, // Vim begin of line
- MCV_E, // Vim end of line
- MCT_F, // Vim for loop
- MCG_A, // Git add
- MCG_C, // Git commit
- MCG_P, // Git push
- MCG_R, // Git revert
- MCG_L, // Git log
- MCG_S, // Git status
-
- NEW_SAFE_RANGE //use "NEWPLACEHOLDER for keymap specific codes
- };
-
-bool process_record_secrets(uint16_t keycode, keyrecord_t *record);
-bool process_record_user_rgb(uint16_t keycode, keyrecord_t *record);
-bool process_record_keymap(uint16_t keycode, keyrecord_t *record);
-
-#define LOWER MO(_LOWER)
-#define RAISE MO(_RAISE)
-#define ADJUST MO(_ADJUST)
-#define TG_MODS TG(_MODS)
-#define TG_GAME TG(_GAMEPAD)
-#define OS_LWR OSL(_LOWER)
-#define OS_RSE OSL(_RAISE)
-#define OS_UNI OSL(_UNICODE)
-
-#define SEC1 KC_SECRET_1
-#define SEC2 KC_SECRET_2
-#define SEC3 KC_SECRET_3
-#define SEC4 KC_SECRET_4
-#define SEC5 KC_SECRET_5
-#define SEC6 KC_SECRET_6
-
-#define QWERTY KC_QWERTY
-#define DVORAK KC_DVORAK
-#define COLEMAK KC_COLEMAK
-#define WORKMAN KC_WORKMAN
-#define PLOVER KC_PLOVER
-
-#define KC_RESET QK_BOOT
-#define KC_RST KC_RESET
-
-#define UC_IRNY UC(0x2E2E)
-#define UC_CLUE UC(0x203D)
diff --git a/users/kuchosauronad0/readme.md b/users/kuchosauronad0/readme.md
deleted file mode 100644
index 88cc4cd374..0000000000
--- a/users/kuchosauronad0/readme.md
+++ /dev/null
@@ -1,217 +0,0 @@
-# Table of Contents
-1. [Overview](#overview)[[documentation](https://docs.qmk.fm/#/feature_userspace)]
-2. [Keyboard Layout Templates](#keyboard-layout-templates)
-3. [Custom Keycodes](#custom-keycodes) [[documentation](https://docs.qmk.fm/#/feature_macros?id=the-new-way-send_string-amp-process_record_user)]
-4. [Tap Dances](#tap-dances) [[documentation](https://docs.qmk.fm/#/feature_tap_dance)]
-5. [Encoders](#encoders) [[documentation](https://docs.qmk.fm/#/feature_encoders)]
-6. [Leader Key](#leader-key) [[documentation](https://docs.qmk.fm/#/feature_leader_key)]
-7. [Unicode](#unicode) [[documentation](https://docs.qmk.fm/#/feature_unicode)]
-8. [Combo Keys](#combo-keys) [[documentation](https://docs.qmk.fm/#/feature_combo)]
-9. [Secret Macros](#secret-macros) [[documentation](https://github.com/qmk/qmk_firmware/blob/master/users/drashna/readme_secrets.md)]
-
-# [Overview](#overview)
-Thanks to [drashna](https://github.com/drashna) and the people of the discord server and everyone else in the qmk_firmware/users/ directory :)
-
-## [Keyboard Layout Templates](#keyboard-layout-temple)
-This borrows from [jola5](https://github.com/jola5)'s "Not quite neo" code. The code of the userspace is shared between all keyboards, so that one can maintain functionality of all keyboards at once by modifying a few files in a central location.
-
-This makes adding tap/hold mods, or other special keycodes or functions to all keyboards super easy, as it's done to all of them at once.
-
-The caveat here is that the keymap needs a processor/wrapper, as it doesn't like the substitutions. However, this is as simple as just pushing it through a define. For instance:
-
-`#define LAYOUT_ergodox_wrapper(...) LAYOUT_ergodox(__VA_ARGS__)`
-
-Once that's been done and you've switched the keymaps to use the "wrapper", it will read the substitution blocks just fine.
-
-Credit goes to [jola5](https://github.com/jola5) for first implementing this awesome idea.
-
-## [Custom Keycodes](#custom-keycodes)
-Declared in `process_records.h` and `template.h` and defined in `process_record_user` in template.c
-
-## [Tap Dances](#tap-dances)
-To enable set `TAP_DANCE_ENABLE = yes` in *rules.mk*. See file *tap_dances.{c,h}*
-
-TODO: Command-line movement stuff is a pain when typing normally
-
-TODO: Make use of `TD_SPC` and `TD_QT{1..3}`
-
-## [Leader Key](#leader-key)
-To enable set `LEADER_ENABLE = yes` in file *rules.mk*
-
-|Leader sequence|program| description |
-|---|---|---|
-| W |vim/tmux| save file, switch pane and repeat last command |
-| T |tmux| send default prefix |
-| A |tmux| switch pane|
-|T + T|tmux| send default prefix to a nested session |
-|T + R|tmux| switch pane and repeat last command |
-|V + Z|vim | zoom current split|
-|V + R|vim | search and replace|
-|V + T|vim | move current split to its own tab|
-|3x Backspace|keyboard| Reset Keyboard |
-
-Leader sequences are defined in *leader_user.c*
-
-## [Combo Keys](#combo-keys)
-To enable set `COMBO_ENABLE = yes` in file *rules.mk*.
-Number of combos and timeout are defined in *config.h*
-
-Press key chord to use.
-
-|Combo|description |
-|---|---|
-| CV | Paste |
-| XC | Cut |
-| ZV | Copy |
-| QP | KC_SLEEP |
-
-Combos are defined in *combo.h* and *combo.c*
-
-## [Unicode](#unicode)
-To enable set `UNICODE_ENABLE = yes` or `UNICODEMAP_ENABLE = yes` in file *rules.mk*
-
-## [Encoders](#encoders)
-To enable set `ENCODER_ENABLE = yes` in *rules.mk*.
-
-In the keyboard's *config.h* adjust according to your keyboard:
-
-```c
-// Example ProMicro
-#define ENCODERS_PAD_A { F4 } //PIN A3
-#define ENCODERS_PAD_B { F5 } //PIN A2
-```
-
-Check the [documentation](https://docs.qmk.fm/#/feature_encoders) for more information
-The first rotary encoder is configured such as:
-
-|Modifier|description|
-|---|---|
-| None | General navigation. Page up/down |
-| SHIFT | Fast navigation. Home/end |
-| CTRL | Vertical navigation. Up/down |
-| CTRL+SHIFT | Horizontal navigation. Left/right |
-| ALT | Audio volume control. |
-| GUI | Browser navigation(windows). Forward/backward |
-| ALT+SHIFT | Form navigation. Tab up/down |
-| ALT+CTRL | Media control. (Play|pause)/mute |
-| HYPER | Media navigation. Next/prev track |
-
-Key codes are stored as `uint16_t encoder_actions[2][9]` in *encoder.c*
-
-
-## Diablo Layer
-Currently not in use.
-[Back to Top](#table-of-contents)
-
-# [Secret Macros](#secret-macros)
-To enable set `NO_SECRETS = yes` in *rules.mk*.
-
-With help from gitter and Colinta, this adds the ability to add hidden macros from other users.
-
-First, I have several files that are hidden/excluded from Git/GitHub. These contain everything needed for the macros. To hide these files, open *.git/info/exclude* and add `secrets.c` and `secrets.h` to that file, below the comments.
-
-And this requires `KC_SECRET_1` through `KC_SECRET_5` to be defined in your *<name>.h* file to define the keycodes for the new macros.
-
-
-### .git/info/exclude
-
-```console
-# git ls-files --others --exclude-from=.git/info/exclude
-# Lines that start with '#' are comments.
-# For a project mostly in C, the following would be a good set of
-# exclude patterns (uncomment them if you want to use them):
-# *.[oa]
-# *~
-/users/<name>/secrets.c
-/users/<name>/secrets.h
-```
-
-Then you can create these files:
-
-### secrets.c
-
-```c
-#include "<name>.h" // replace <name> with your keymap's "h" file, or whatever file stores the keycodes
-
-#if (__has_include("secrets.h") && !defined(NO_SECRETS))
-#include "secrets.h"
-#else
-// `PROGMEM const char secret[][x]` may work better, but it takes up more space in the firmware
-// And I'm not familiar enough to know which is better or why...
-static const char * const secret[] = {
- "test1",
- "test2",
- "test3",
- "test4",
- "test5"
-};
-#endif
-
-bool process_record_secrets(uint16_t keycode, keyrecord_t *record) {
- switch (keycode) {
- case KC_SECRET_1 ... KC_SECRET_5: // Secrets! Externally defined strings, not stored in repo
- if (!record->event.pressed) {
- clear_oneshot_layer_state(ONESHOT_OTHER_KEY_PRESSED);
- send_string_with_delay(secret[keycode - KC_SECRET_1], MACRO_TIMER);
- }
- return false;
- break;
- }
- return true;
-}
-```
-
-### secrets.h
-
-```c
-static const char * const secrets[] = {
- "secret1",
- "secret2",
- "secret3",
- "secret4",
- "secret5"
-};
-```
-
-Replacing the strings with the codes that you need.
-
-### name.c
-
-In the *<name>.c* file, you will want to add this to the top:
-
-```c
-__attribute__ ((weak))
-bool process_record_secrets(uint16_t keycode, keyrecord_t *record) {
- return true;
-}
-```
-
-This is so that the function can be called here, and replaced in the `secrets.c` file, and so it won't error out if it doesn't exist.
-
-And then, in the `process_record_user` function, assuming you have `return process_record_keymap(keycode, record)` here, you'll want to replace the "final" return with the following. Otherwise, you want to replace the `return true;` with `return process_record_secrets(keycode, record);`
-
-```c
- return process_record_keymap(keycode, record) && process_record_secrets(keycode, record);
-}
-```
-
-### rules.mk
-
-Here, you want your */users/<name>/rules.mk* file to "detect" the existence of the *secrets.c* file, and only add it if the file exists. To do so, add this block:
-
-```make
-ifneq ("$(wildcard $(USER_PATH)/secrets.c)","")
- SRC += secrets.c
-endif
-```
-
-Additionally, if you want to make sure that you can disable the function without messing with the file, you need to add this to your */users/<name>/rules.mk*, so that it catches the flag:
-
-```make
-ifeq ($(strip $(NO_SECRETS)), yes)
- OPT_DEFS += -DNO_SECRETS
-endif
-```
-
-Then, if you run `make keyboard:name NO_SECRETS=yes`, it will default to the test strings in your *<name>.c* file, rather than reading from your file.
-[Back to Top](#table-of-contents)
diff --git a/users/kuchosauronad0/rgblight_user.c b/users/kuchosauronad0/rgblight_user.c
deleted file mode 100644
index 1b5c29cfb0..0000000000
--- a/users/kuchosauronad0/rgblight_user.c
+++ /dev/null
@@ -1,156 +0,0 @@
-#include "rgblight_user.h"
-extern rgblight_config_t rgblight_config;
-bool has_initialized;
-uint8_t base_hue; // Hue value of base state
-uint8_t base_sat; // Saturation value of base state
-uint8_t base_val; // Brightness value of base state
-uint8_t base_mod; // Animation mode of the base state
-
-void rgblight_savebase(void) { // Save the current settings to ram
- base_hue = rgblight_config.hue;
- base_sat = rgblight_config.sat;
- base_val = rgblight_config.val;
- base_mod = rgblight_config.mode;
-}
-void rgblight_loadbase(void) { // Load settings from ram to eeprom
- rgblight_mode( base_mod );
- rgblight_sethsv_eeprom_helper(base_hue, base_sat, base_val, true);
-}
-
-
-
-bool process_record_user_rgb(uint16_t keycode, keyrecord_t *record) {
- if ((keycode >= QK_MOD_TAP && keycode <= QK_MOD_TAP_MAX) || (keycode >= QK_LAYER_TAP && keycode <= QK_LAYER_TAP_MAX)) {
- keycode = keycode & 0xFF;
- }
- switch (keycode) {
- case KC_RGB_T: // Switch between underglow layer indication and normal qmk behaviour
-#if defined(RGBLIGHT_ENABLE) || defined(RGB_MATRIX_ENABLE)
- if (record->event.pressed) {
- userspace_config.rgb_layer_change ^= 1;
- xprintf("rgblight layer change [EEPROM]: %u\n", userspace_config.rgb_layer_change);
- eeconfig_update_user(userspace_config.raw);
- if (userspace_config.rgb_layer_change) {
- layer_state_set(layer_state); // Immediately set the layer color (looks better)
- }
- }
-#endif // RGBLIGHT_ENABLE
- return false;
- break;
-#ifdef RGBLIGHT_ENABLE
- case RGB_MODE_FORWARD ... RGB_MODE_GRADIENT: // quantum_keycodes.h L400 for definitions
- if (record->event.pressed) { // This disables layer indication, as it's assumed that if you're changing this ... you want that disabled
- if (userspace_config.rgb_layer_change) {
- userspace_config.rgb_layer_change = false;
- xprintf("rgblight layer change [EEPROM]: %u\n", userspace_config.rgb_layer_change);
- eeconfig_update_user(userspace_config.raw);
- }
- }
- return true;
- break;
-#endif // RGBLIGHT_ENABLE
- }
- return true;
-}
-
-void keyboard_post_init_rgb(void) {
-# if defined(RGBLIGHT_ENABLE) || defined(RGBLIGHT_STARTUP_ANIMATION)
- bool is_enabled = rgblight_config.enable;
- if (userspace_config.rgb_layer_change) {
- rgblight_enable_noeeprom();
- }
- if (rgblight_config.enable) {
- layer_state_set_user(layer_state);
- uint16_t old_hue = rgblight_config.hue;
- rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_LIGHT);
- for (uint16_t i = 255; i > 0; i--) {
- rgblight_sethsv_noeeprom((i + old_hue) % 255, 255, 255);
- wait_ms(5);
- }
- }
- if (!is_enabled) {
- rgblight_disable_noeeprom();
- }
-# endif // !RGBLIGHT_ENABLE || RGBLIGHT_STARTUP_ANIMATION
- layer_state_set_user(layer_state);
-}
-
-void matrix_scan_rgb(void) {
-# ifdef INDICATOR_LIGHTS
- matrix_scan_indicator();
-# endif
-}
-
-layer_state_t layer_state_set_rgb(layer_state_t state) {
-# ifdef RGBLIGHT_ENABLE
- if (userspace_config.rgb_layer_change) {
- switch (get_highest_layer(state)) { // _RAISE, _LOWER and _ADJUST use a custom color and the breathing effect
- case _RAISE:
- rgblight_sethsv_noeeprom(HSV_GREEN);
- rgblight_mode_noeeprom(RGBLIGHT_MODE_BREATHING + 3);
- break;
- case _LOWER:
- rgblight_sethsv_noeeprom(HSV_RED);
- rgblight_mode_noeeprom(RGBLIGHT_MODE_BREATHING + 3);
- break;
- case _ADJUST:
- rgblight_sethsv_noeeprom(HSV_WHITE);
- rgblight_mode_noeeprom(RGBLIGHT_MODE_BREATHING + 2);
- break;
- default: // Use a solid color for normal layers
- switch (get_highest_layer(default_layer_state)) {
- case _QWERTY:
- rgblight_sethsv_noeeprom(HSV_MAGENTA);
- break;
- case _COLEMAK:
- rgblight_sethsv_noeeprom(HSV_GREEN);
- break;
- case _DVORAK:
- rgblight_sethsv_noeeprom(HSV_BLUE);
- break;
- case _WORKMAN:
- rgblight_sethsv_noeeprom(HSV_GOLDENROD);
- break;
- case _PLOVER:
- rgblight_sethsv_noeeprom(HSV_PINK);
- break;
- default:
- rgblight_sethsv_noeeprom(HSV_WHITE);
- break;
- }
- get_highest_layer(state) == _MODS ? rgblight_mode_noeeprom(RGBLIGHT_MODE_BREATHING) : rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_LIGHT); // if _MODS layer is on, then breath to denote it
- break;
- }
- }
-# endif // !RGBLIGHT_ENABLE
- return state;
-}
-
-#ifdef INDICATOR_LIGHTS
-void matrix_scan_indicator(void) {
- if (has_initialized) {
- set_rgb_indicators(get_mods(), host_keyboard_leds(), get_oneshot_mods());
- }
-}
-#endif // !INDICATOR_LIGHTS
-
-void rgblight_fade_helper(bool direction){
- // true: increase val = fade in
- // false: decrease val = fade out
- for (uint8_t index = 0; index < RGBLIGHT_VAL_STEP ; index++) {
- direction ? rgblight_increase_val() : rgblight_decrease_val();
- wait_ms(5);
- }
-}
-void fadeflash_leds(uint8_t hue, uint8_t sat, uint8_t val){
- // indicate success / fail of a leader sequence
- // fade out, set new hue and saturation, fade in, fade out, set old color, fade in
- // this is used in leader_user.c
- // TODO: come up with a better name maybe
- rgblight_fade_helper(false);
- rgblight_sethsv_noeeprom(hue, sat, 0);
- rgblight_fade_helper(true);
- rgblight_fade_helper(false);
- rgblight_sethsv_noeeprom(base_hue, base_sat, 0);
- rgblight_fade_helper(true);
-}
diff --git a/users/kuchosauronad0/rgblight_user.h b/users/kuchosauronad0/rgblight_user.h
deleted file mode 100644
index eab15b8325..0000000000
--- a/users/kuchosauronad0/rgblight_user.h
+++ /dev/null
@@ -1,23 +0,0 @@
-#pragma once
-#include "kuchosauronad0.h"
-
-typedef struct {
- bool enabled;
- uint8_t hue;
- uint16_t timer;
- uint8_t life;
-} rgblight_fadeout;
-const uint8_t RGBLIGHT_FADE_SPEED[6] PROGMEM;
-
-layer_state_t layer_state_set_rgb(layer_state_t state);
-layer_state_t default_layer_state_set_rgb(layer_state_t state);
-
-bool process_record_user_rgb(uint16_t keycode, keyrecord_t *record);
-void scan_rgblight_fadeout(void);
-void keyboard_post_init_rgb(void);
-void matrix_scan_rgb(void);
-void rgblight_sethsv_default_helper(uint8_t index);
-void rgblight_savebase(void);
-void rgblight_loadbase(void);
-void rgblight_fade_helper(bool direction);
-void fadeflash_leds(uint8_t hue, uint8_t sat, uint8_t val);
diff --git a/users/kuchosauronad0/rules.mk b/users/kuchosauronad0/rules.mk
deleted file mode 100644
index a65fe9d258..0000000000
--- a/users/kuchosauronad0/rules.mk
+++ /dev/null
@@ -1,49 +0,0 @@
-SRC += kuchosauronad0.c \
- process_records.c
-
-LTO_ENABLE = yes
-SPACE_CADET_ENABLE = no
-
-ifneq ($(strip $(RGBLIGHT_ENABLE)),yes )
- SRC += rgblight_user.c
-endif
-
-ifeq ($(strip $(TAP_DANCE_ENABLE)), yes)
- SRC += tap_dances.c
-endif
-
-ifeq ($(strip $(ENCODER_ENABLE)), yes)
- SRC += encoder.c
-endif
-
-ifeq ($(strip $(COMBO_ENABLE)), yes)
- SRC += combo.c
-endif
-
-ifeq ($(strip $(LEADER_ENABLE)), yes)
- SRC += leader_user.c
-endif
-
-ifneq ("$(wildcard $(USER_PATH)/secrets.c)","")
- SRC += secrets.c
-endif
-ifeq ($(strip $(NO_SECRETS)), yes)
- OPT_DEFS += -DNO_SECRETS
-endif
-ifeq ($(strip $(UNICODEMAP_ENABLE)), yes)
- SRC += unicode.c
-endif
-
-ifeq ($(strip $(MACROS_ENABLED)), yes)
- OPT_DEFS += -DMACROS_ENABLED
-endif
-
-ifdef CONSOLE_ENABLE
- ifeq ($(strip $(KEYLOGGER_ENABLE)), yes)
- OPT_DEFS += -DKEYLOGGER_ENABLE
- endif
-endif
-
-ifeq ($(strip $(MAKE_BOOTLOADER)), yes)
- OPT_DEFS += -DMAKE_BOOTLOADER
-endif
diff --git a/users/kuchosauronad0/tap_dances.c b/users/kuchosauronad0/tap_dances.c
deleted file mode 100644
index 40d1c245e3..0000000000
--- a/users/kuchosauronad0/tap_dances.c
+++ /dev/null
@@ -1,55 +0,0 @@
-#include "tap_dances.h"
-void td_parenthesis (tap_dance_state_t *state, void *user_data) {
- if (state->count == 1) {
-// SEND_STRING ("\(");
- tap_code(KC_QUOT);
- reset_tap_dance (state);
- }
- else if (state->count == 2) {
- SEND_STRING("()" SS_TAP(X_LEFT));
- reset_tap_dance (state);
- }
- else if (state->count == 3) {
- SEND_STRING("[]" SS_TAP(X_LEFT));
- reset_tap_dance (state);
- }
- else if (state->count == 4) {
- SEND_STRING("{}" SS_TAP(X_LEFT));
- reset_tap_dance (state);
- }
- else if (state->count >= 5) {
- SEND_STRING("<>" SS_TAP(X_LEFT));
- reset_tap_dance (state);
- }
-}
-
-void safe_reset(tap_dance_state_t *state, void *user_data) {
- if (state->count >= 3) {
- // Reset the keyboard if you tap the key more than three times
- reset_keyboard();
- reset_tap_dance(state);
- }
-}
-
-tap_dance_action_t tap_dance_actions[] = {
- [TD_RESET] = ACTION_TAP_DANCE_FN(safe_reset),
- [TD_NUM1] = ACTION_TAP_DANCE_DOUBLE(KC_1, KC_4),
- [TD_NUM2] = ACTION_TAP_DANCE_DOUBLE(KC_2, KC_5),
- [TD_NUM3] = ACTION_TAP_DANCE_DOUBLE(KC_3, KC_6),
- [TD_QT1] = ACTION_TAP_DANCE_DOUBLE(KC_QUOT, MC_QT1),
- [TD_QT2] = ACTION_TAP_DANCE_DOUBLE(LSFT(KC_QUOT), MC_QT2),
- [TD_QT3] = ACTION_TAP_DANCE_DOUBLE(KC_GRV, MC_QT3),
-
- [TD_TMX] = ACTION_TAP_DANCE_DOUBLE(KC_T, TM_X),
- [TD_EOL] = ACTION_TAP_DANCE_DOUBLE(KC_E, MC_EOL), // end of line
- [TD_BOL] = ACTION_TAP_DANCE_DOUBLE(KC_A, MC_BOL), // beginning of line
- [TD_NW] = ACTION_TAP_DANCE_DOUBLE(KC_F, MC_NW), // next word
- [TD_PW] = ACTION_TAP_DANCE_DOUBLE(KC_B, MC_PW), // pevious word
- [TD_DW] = ACTION_TAP_DANCE_DOUBLE(KC_W, MC_DW), // pevious word
-
- [TD_SPC] = ACTION_TAP_DANCE_FN(td_parenthesis), // \(, (), [], {}, <>
- [TD_PAR] = ACTION_TAP_DANCE_DOUBLE(KC_LPRN, MC_PAR), // ()
- [TD_SQR] = ACTION_TAP_DANCE_DOUBLE(KC_LBRC, MC_SQR), // []
- [TD_CUR] = ACTION_TAP_DANCE_DOUBLE(LSFT(KC_LCBR), MC_CUR),// {}
- [TD_ABR] = ACTION_TAP_DANCE_DOUBLE(LSFT(KC_COMM), MC_ABR),//
-};
diff --git a/users/kuchosauronad0/tap_dances.h b/users/kuchosauronad0/tap_dances.h
deleted file mode 100644
index 818bbd7b93..0000000000
--- a/users/kuchosauronad0/tap_dances.h
+++ /dev/null
@@ -1,26 +0,0 @@
-#pragma once
-#include "kuchosauronad0.h"
-
-#ifdef TAP_DANCE_ENABLE
-enum {
- TD_RESET = 0,
- TD_SPC, // for special function td_parenthesis testing
- TD_NUM1, // compact gaming numpad
- TD_NUM2, //
- TD_NUM3, //
- TD_TMX, // tmux control sequence
- TD_EOL, // end of line
- TD_BOL, // beginning of line
- TD_NW, // next word
- TD_PW, // pevious word
- TD_DW, // delete word
- TD_QT1, // single double quote for '
- TD_QT2, // single double quote for "
- TD_QT3, // single double quote for `
- TD_PAR, // single double parenthesis
- TD_CUR, // single double curly braces
- TD_SQR, // single double square brackets
- TD_ABR // single double angle brackets
-};
-#endif // TAP_DANCE_ENABLE
-void td_parenthesis (tap_dance_state_t *state, void *user_data);
diff --git a/users/kuchosauronad0/template.c b/users/kuchosauronad0/template.c
deleted file mode 100644
index 76cc572be3..0000000000
--- a/users/kuchosauronad0/template.c
+++ /dev/null
@@ -1,125 +0,0 @@
-#include "template.h"
-
-
-// Add reconfigurable functions here, for keymap customization
-// This allows for a global, userspace functions, and continued
-// customization of the keymap. Use _keymap instead of _user
-// functions in the keymaps
-__attribute__ ((weak))
-void matrix_init_keymap(void) {}
-
-// Call user matrix init, then call the keymap's init function
-void matrix_init_user(void) {
- matrix_init_keymap();
-}
-
-
-__attribute__ ((weak))
-void matrix_scan_keymap(void) {}
-
-// No global matrix scan code, so just run keymap's matix
-// scan function
-__attribute__ ((weak))
-void matrix_scan_user(void) {
- matrix_scan_keymap();
-}
-
-
-__attribute__ ((weak))
-bool process_record_keymap(uint16_t keycode, keyrecord_t *record) {
- return true;
-}
-
-// Defines actions tor my global custom keycodes. Defined in drashna.h file
-// Then runs the _keymap's recod handier if not processed here,
-// And use "NEWPLACEHOLDER" for new safe range
-bool process_record_user(uint16_t keycode, keyrecord_t *record) {
-
- switch (keycode) {
- case KC_MAKE:
- if (!record->event.pressed) {
- SEND_STRING("make " QMK_KEYBOARD ":" QMK_KEYMAP
-#if (defined(BOOTLOADER_DFU) || defined(BOOTLOADER_LUFA_DFU) || defined(BOOTLOADER_QMK_DFU))
- ":dfu"
-#elif defined(BOOTLOADER_HALFKAY)
- ":teensy"
-#elif defined(BOOTLOADER_CATERINA)
- ":avrdude"
-#endif
- SS_TAP(X_ENTER));
- }
- return false;
- break;
-
- case VRSN:
- if (record->event.pressed) {
- SEND_STRING(QMK_KEYBOARD "/" QMK_KEYMAP " @ " QMK_VERSION);
- }
- return false;
- break;
- }
- return process_record_keymap(keycode, record);
-}
-
-
-__attribute__ ((weak))
-layer_state_t layer_state_set_keymap (layer_state_t state) {
- return state;
-}
-
-layer_state_t layer_state_set_user (layer_state_t state) {
- return layer_state_set_keymap (state);
-}
-
-
-
-__attribute__ ((weak))
-void led_set_keymap(uint8_t usb_led) {}
-
-void led_set_user(uint8_t usb_led) {
- led_set_keymap(usb_led);
-}
-
-
-
-__attribute__ ((weak))
-void suspend_power_down_keymap(void) {}
-
-void suspend_power_down_user(void)
-{
- suspend_power_down_keymap();
-}
-
-
-
-__attribute__ ((weak))
-void suspend_wakeup_init_keymap(void) {}
-
-void suspend_wakeup_init_user(void)
-{
- suspend_wakeup_init_keymap();
- #ifdef KEYBOARD_ergodox_ez
- wait_ms(10);
- #endif
-}
-
-
-
-__attribute__ ((weak))
-void startup_keymap(void) {}
-
-void startup_user (void) {
- #ifdef RGBLIGHT_ENABLE
- matrix_init_rgb();
- #endif //RGBLIGHT_ENABLE
- startup_keymap();
-}
-
-
-
-__attribute__ ((weak))
-void shutdown_keymap(void) {}
-
-void shutdown_user (void) {
- shutdown_keymap();
-}
diff --git a/users/kuchosauronad0/template.h b/users/kuchosauronad0/template.h
deleted file mode 100644
index dd1c487604..0000000000
--- a/users/kuchosauronad0/template.h
+++ /dev/null
@@ -1,18 +0,0 @@
-#ifndef USERSPACE
-#define USERSPACE
-
-#include "quantum.h"
-#include "version.h"
-#include "eeprom.h"
-
-// Define layer names
-#define BASE 0
-
-enum custom_keycodes {
- VRSN = SAFE_RANGE, // can always be here
- KC_MAKE,
- KC_RESET,
- NEWPLACEHOLDER //use "NEWPLACEHOLDER for keymap specific codes
-};
-
-#endif
diff --git a/users/kuchosauronad0/unicode.c b/users/kuchosauronad0/unicode.c
deleted file mode 100644
index f0168cef9f..0000000000
--- a/users/kuchosauronad0/unicode.c
+++ /dev/null
@@ -1,62 +0,0 @@
-#include "unicode.h"
-
-//#ifdef UNICODEMAP_ENABLE
-const uint32_t unicode_map[] PROGMEM = {
- [BANG] = 0x0203D,// ‽
- [IRONY] = 0x02E2E,// ⸮
- [DEGREE] = 0x000B0,// °
- [THINK] = 0x1F914,// 🤔
- [GRIN] = 0x1F600,// �
- [MONOCL] = 0x1F9D0,// 🧐
- [DRUG0] = 0x1F92A,// 🤪
- [DRUG1] = 0x1F974,// 🥴
- [CLOWN] = 0x1F921,// 🤡
- [MNDBLWN] = 0x1F92F,// 🤯
- [MONEY] = 0x1F911,// 🤑
- [SHTUP] = 0x1F910,// 🤐
- [PARTY] = 0x1F973,// 🥳
- [SMRK] = 0x1F60F,// 😏
- [WEARY] = 0x1F629,// 😩
- [UNAMU] = 0x1F612,// 😒
- [SPY] = 0x1F575,//🕵
- [DAFUQ] = 0x1F47A,// 👺
- [FIST0] = 0x1F91B,// 🤛
- [FIST1] = 0x1F91C,// 🤜
- [FIST2] = 0x270A, // ✊
- [FIST3] = 0x1F44A,// 👊
- [WIFIHAND] = 0x1F44B,// 👋
- [OKOK] = 0x1F44C,// 👌
- [EFFU] = 0x1F595,// 🖕
- [SPOCK] = 0x1F596,// 🖖
- [INUP] = 0x1F446,// 👆
- [THDN] = 0x1F44E,// 👎
- [THUP] = 0x1F44D,// 👍
- [TUMBLER] = 0x1F943,// 🥃
- [DRAGON0] = 0x1F409,// 🐉
- [DRAGON1] = 0x1F432,// 🐲
- [TIGER0] = 0x1F405,// 🐅
- [TIGER1] = 0x1F42F,// 🐯
- [COOL] = 0x1F192,// 🆒
- [UCHART] = 0x1F4C8,// 📈
- [DCHART] = 0x1F4C9,// 📉
- [BCHART] = 0x1F4CA,// 📊
- [NOPRCY] = 0x1F572,// 🕲
- [PRCY] = 0x1F571,// 🕱
- [BBB] = 0x1F171,// 🅱
- [POO] = 0x1F4A9,// 💩
- [HUNDR] = 0x1F4AF,// 💯
- [EGGPL] = 0x1F346,// 🍆
- [WATER] = 0x1F4A6,// 💦
- [LIT] = 0x1F525,// 🔥
- [SNEK] = 0x1F40D,// 🐍
- [PENGUIN] = 0x1F427,// 🐧
- [BOAR] = 0x1F417,// 🐗
- [MONKEY] = 0x1F412,// 🐒
- [CHICK] = 0x1F425,// 🐥
- [DASH] = 0x1F4A8,// 💨
- [DIZZY] = 0x1F4AB,// 💫
- [KEEB] = 0x1F5AE,// 🖮
- [HOLE] = 0x1F573,// 🕳
- [SAUCER] = 0x1F6F8// 🛸
- };
-//#endif // UNICODEMAP_ENABLE
diff --git a/users/kuchosauronad0/unicode.h b/users/kuchosauronad0/unicode.h
deleted file mode 100644
index 340b4cf94b..0000000000
--- a/users/kuchosauronad0/unicode.h
+++ /dev/null
@@ -1,64 +0,0 @@
-#pragma once
-
-#include "quantum.h"
-
-#ifdef UNICODEMAP_ENABLE
-enum unicode_name {
-OKOK, //
-BANG, // ‽
-IRONY, // ⸮
-DEGREE, // °
-THINK, // 🤔
-GRIN, // �
-MONOCL, // 🧐
-DRUG0, // 🤪
-DRUG1, // 🥴
-CLOWN, // 🤡
-MNDBLWN, // 🤯
-MONEY, // 🤑
-SHTUP, // 🤐
-PARTY, // 🥳
-SMRK, // 😏
-WEARY, // 😩
-UNAMU, // 😒
-SPY, // 🕵
-DAFUQ, // 👺
-FIST0, // 🤛
-FIST1, // 🤜
-FIST2, // ✊
-FIST3, // 👊
-WIFIHAND, // 👌
-EFFU, // 🖕
-SPOCK, // 🖖
-INUP, // 👆
-THDN, // 👎
-THUP, // 👍
-TUMBLER, // 🥃
-DRAGON0, // 🐉
-DRAGON1, // 🐅
-TIGER0, // 🐅
-TIGER1, // 🐯
-COOL, // 🆒
-UCHART, // 📈
-DCHART, // 📉
-BCHART, // 📊
-NOPRCY, // 🕲
-PRCY, // 🕱
-BBB, // 🅱
-POO, // 💩
-HUNDR, // 💯
-EGGPL, // 🍆
-WATER, // 💦
-LIT, // 🔥
-SNEK, // 🐍
-PENGUIN, // 🐧
-BOAR, // 🐗
-MONKEY, // 🐒
-CHICK, // 🐥
-DASH, // 💨
-DIZZY, // 💫
-KEEB, // 🖮
-HOLE, // 🕳
-SAUCER // 🛸
-};
-#endif
diff --git a/users/kuchosauronad0/wrappers.h b/users/kuchosauronad0/wrappers.h
deleted file mode 100644
index a17e4178ff..0000000000
--- a/users/kuchosauronad0/wrappers.h
+++ /dev/null
@@ -1,212 +0,0 @@
-#pragma once
-#include "kuchosauronad0.h"
-/*
-Since our quirky block definitions are basically a list of comma separated
-arguments, we need a wrapper in order for these definitions to be
-expanded before being used as arguments to the LAYOUT_xxx macro.
-*/
-#if (!defined(LAYOUT) && defined(KEYMAP))
-# define LAYOUT KEYMAP
-#endif
-
-#define LAYOUT_ergodox_wrapper(...) LAYOUT_ergodox(__VA_ARGS__)
-#define LAYOUT_ergodox_pretty_wrapper(...) LAYOUT_ergodox_pretty(__VA_ARGS__)
-#define KEYMAP_wrapper(...) LAYOUT(__VA_ARGS__)
-#define LAYOUT_wrapper(...) LAYOUT(__VA_ARGS__)
-#define LAYOUT_ortho_4x12_wrapper(...) LAYOUT_ortho_4x12(__VA_ARGS__)
-#define LAYOUT_ortho_5x12_wrapper(...) LAYOUT_ortho_5x12(__VA_ARGS__)
-
-#define LAYOUT_collide39_base_wrapper(...) LAYOUT_collide39_base(__VA_ARGS__)
-
-/*
-Blocks for each of the four major keyboard layouts
-Organized so we can quickly adapt and modify all of them
-at once, rather than for each keyboard, one at a time.
-And this allows for much cleaner blocks in the keymaps.
-For instance Tap/Hold for Control on all of the layouts
-NOTE: These are all the same length. If you do a search/replace
- then you need to add/remove underscores to keep the
- lengths consistent.
-*/
-
-#define ___________________BLANK___________________ _______, _______, _______, _______, _______
-
-#ifdef TAP_DANCE_ENABLE
-# define _________________QWERTY_L1_________________ KC_Q, KC_DW, KC_EOL, KC_R, KC_TMX
-# define _________________QWERTY_L2_________________ KC_BOL, KC_S, KC_D, KC_NW, KC_G
-# define _________________QWERTY_L3_________________ KC_Z, KC_X, KC_C, KC_V, KC_PW
-#else
-# define _________________QWERTY_L1_________________ KC_Q, KC_W, KC_E, KC_R, KC_T
-# define _________________QWERTY_L2_________________ KC_A, KC_S, KC_D, KC_F, KC_G
-# define _________________QWERTY_L3_________________ KC_Z, KC_X, KC_C, KC_V, KC_B
-#endif
-
-#define _________________QWERTY_R1_________________ KC_Y, KC_U, KC_I, KC_O, KC_P
-#define _________________QWERTY_R2_________________ KC_H, KC_J, KC_K, KC_L, KC_SCLN
-#define _________________QWERTY_R3_________________ KC_N, KC_M, KC_COMM, KC_DOT, KC_SLASH
-
-#define _________________PLOVER_L1_________________ KC_Q, KC_W, KC_E, KC_R, KC_T
-#define _________________PLOVER_L2_________________ KC_A, KC_S, KC_D, KC_F, KC_G
-#define _________________PLOVER_L3_________________ KC_NO, KC_NO, KC_C, KC_V, KC_NO
-
-#define _________________PLOVER_R1_________________ KC_Y, KC_U, KC_I, KC_O, KC_P
-#define _________________PLOVER_R2_________________ KC_H, KC_J, KC_K, KC_L, KC_SCLN
-#define _________________PLOVER_R3_________________ KC_NO, KC_NO, KC_N, KC_M, KC_NO
-
-#define _________________COLEMAK_L1________________ KC_Q, KC_W, KC_F, KC_P, KC_G
-#define _________________COLEMAK_L2________________ KC_A, KC_R, KC_S, KC_T, KC_D
-#define _________________COLEMAK_L3________________ KC_Z, KC_X, KC_C, KC_V, KC_B
-
-#define _________________COLEMAK_R1________________ KC_J, KC_L, KC_U, KC_Y, KC_SCLN
-#define _________________COLEMAK_R2________________ KC_H, KC_N, KC_E, KC_I, KC_O
-#define _________________COLEMAK_R3________________ KC_K, KC_M, KC_COMM, KC_DOT, KC_SLASH
-
-#define ______________COLEMAK_MOD_DH_L1____________ KC_Q, KC_W, KC_F, KC_P, KC_B
-#define ______________COLEMAK_MOD_DH_L2____________ KC_A, KC_R, KC_S, KC_T, KC_G
-#define ______________COLEMAK_MOD_DH_L3____________ KC_Z, KC_X, KC_C, KC_D, KC_V
-
-#define ______________COLEMAK_MOD_DH_R1____________ KC_J, KC_L, KC_U, KC_Y, KC_SCLN
-#define ______________COLEMAK_MOD_DH_R2____________ KC_M, KC_N, KC_E, KC_I, KC_O
-#define ______________COLEMAK_MOD_DH_R3____________ KC_K, KC_H, KC_COMM, KC_DOT, KC_SLASH
-
-#define _________________DVORAK_L1_________________ KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y
-#define _________________DVORAK_L2_________________ KC_A, KC_O, KC_E, KC_U, KC_I
-#define _________________DVORAK_L3_________________ KC_SCLN, KC_Q, KC_J, KC_K, KC_X
-
-#define _________________DVORAK_R1_________________ KC_F, KC_G, KC_C, KC_R, KC_L
-#define _________________DVORAK_R2_________________ KC_D, KC_H, KC_T, KC_N, KC_S
-#define _________________DVORAK_R3_________________ KC_B, KC_M, KC_W, KC_V, KC_Z
-
-#define ________________DVORAK_AU_L1_______________ KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y
-#define ________________DVORAK_AU_L2_______________ KC_O, KC_A, KC_E, KC_I, KC_U
-#define ________________DVORAK_AU_L3_______________ KC_SCLN, KC_Q, KC_J, KC_K, KC_X
-
-#define ________________DVORAK_AU_R1_______________ KC_F, KC_G, KC_C, KC_R, KC_L
-#define ________________DVORAK_AU_R2_______________ KC_D, KC_H, KC_T, KC_N, KC_S
-#define ________________DVORAK_AU_R3_______________ KC_B, KC_M, KC_W, KC_V, KC_Z
-
-#define _________________WORKMAN_L1________________ KC_Q, KC_D, KC_R, KC_W, KC_B
-#define _________________WORKMAN_L2________________ KC_A, KC_S, KC_H, KC_T, KC_G
-#define _________________WORKMAN_L3________________ KC_Z, KC_X, KC_M, KC_C, KC_V
-
-#define _________________WORKMAN_R1________________ KC_J, KC_F, KC_U, KC_P, KC_SCLN
-#define _________________WORKMAN_R2________________ KC_Y, KC_N, KC_E, KC_O, KC_I
-#define _________________WORKMAN_R3________________ KC_K, KC_L, KC_COMM, KC_DOT, KC_SLASH
-
-#define _________________NORMAN_L1_________________ KC_Q, KC_W, KC_D, KC_F, KC_K
-#define _________________NORMAN_L2_________________ KC_A, KC_S, KC_E, KC_T, KC_G
-#define _________________NORMAN_L3_________________ KC_Z, KC_X, KC_C, KC_V, KC_B
-
-#define _________________NORMAN_R1_________________ KC_J, KC_U, KC_R, KC_L, KC_SCLN
-#define _________________NORMAN_R2_________________ KC_Y, KC_N, KC_I, KC_O, KC_U
-#define _________________NORMAN_R3_________________ KC_P, KC_M, KC_COMM, KC_DOT, KC_SLASH
-
-#define _________________MALTRON_L1________________ KC_Q, KC_P, KC_Y, KC_C, KC_B
-#define _________________MALTRON_L2________________ KC_A, KC_N, KC_I, KC_S, KC_F
-#define _________________MALTRON_L3________________ KC_SCLN, KC_SLSH, KC_J, KC_G, KC_COMM
-
-#define _________________MALTRON_R1________________ KC_V, KC_M, KC_U, KC_Z, KC_L
-#define _________________MALTRON_R2________________ KC_D, KC_T, KC_D, KC_O, KC_R
-#define _________________MALTRON_R3________________ KC_DOT, KC_W, KC_K, KC_MINS, KC_X
-
-#define _________________EUCALYN_L1________________ KC_SLSH, KC_COMM, KC_DOT, KC_F, KC_Q
-#define _________________EUCALYN_L2________________ KC_A, KC_O, KC_E, KC_I, KC_U
-#define _________________EUCALYN_L3________________ KC_Z, KC_X, KC_C, KC_V, KC_W
-
-#define _________________EUCALYN_R1________________ KC_M, KC_R, KC_D, KC_Y, KC_P
-#define _________________EUCALYN_R2________________ KC_G, KC_T, KC_K, KC_S, KC_N
-#define _________________EUCALYN_R3________________ KC_B, KC_H, KC_J, KC_L, KC_SCLN
-
-#define _____________CARPLAX_QFMLWY_L1_____________ KC_Q, KC_F, KC_M, KC_L, KC_W
-#define _____________CARPLAX_QFMLWY_L2_____________ KC_D, KC_S, KC_T, KC_N, KC_R
-#define _____________CARPLAX_QFMLWY_L3_____________ KC_Z, KC_V, KC_G, KC_C, KC_X
-
-#define _____________CARPLAX_QFMLWY_R1_____________ KC_Y, KC_U, KC_O, KC_B, KC_J
-#define _____________CARPLAX_QFMLWY_R2_____________ KC_I, KC_A, KC_E, KC_H, KC_SCLN
-#define _____________CARPLAX_QFMLWY_R3_____________ KC_P, KC_K, KC_COMM, KC_DOT, KC_SLSH
-
-#define _____________CARPLAX_QGMLWB_L1_____________ KC_Q, KC_G, KC_M, KC_L, KC_W
-#define _____________CARPLAX_QGMLWB_L2_____________ KC_D, KC_S, KC_T, KC_N, KC_R
-#define _____________CARPLAX_QGMLWB_L3_____________ KC_Z, KC_X, KC_C, KC_F, KC_J
-
-#define _____________CARPLAX_QGMLWB_R1_____________ KC_B, KC_Y, KC_U, KC_V, KC_SCLN
-#define _____________CARPLAX_QGMLWB_R2_____________ KC_I, KC_A, KC_E, KC_O, KC_H
-#define _____________CARPLAX_QGMLWB_R3_____________ KC_K, KC_P, KC_COMM, KC_DOT, KC_SLSH
-
-#define _____________CARPLAX_QGMLWY_L1_____________ KC_Q, KC_G, KC_M, KC_L, KC_W
-#define _____________CARPLAX_QGMLWY_L2_____________ KC_D, KC_S, KC_T, KC_N, KC_R
-#define _____________CARPLAX_QGMLWY_L3_____________ KC_Z, KC_X, KC_C, KC_V, KC_J
-
-#define _____________CARPLAX_QGMLWY_R1_____________ KC_Y, KC_F, KC_U, KC_B, KC_SCLN
-#define _____________CARPLAX_QGMLWY_R2_____________ KC_I, KC_A, KC_E, KC_O, KC_H
-#define _____________CARPLAX_QGMLWY_R3_____________ KC_K, KC_P, KC_COMM, KC_DOT, KC_SLSH
-
-#ifdef UNICODE_ENABLE
-# define _______________UNICODE_L1__________________ UC_DISA,UC_DISA, UC_DISA, UC_DISA, UC_DISA
-# define _______________UNICODE_L2__________________ UC_DISA,UC_DISA, UC_DISA, UC_DISA, UC_DISA
-# define _______________UNICODE_L3__________________ UC_DISA,UC_DISA, UC_DISA, UC_DISA, UC_DISA
-
-# define _______________UNICODE_R1__________________ UC_SHRG, UC_SHRG, UC_SHRG, UC_SHRG, UC_SHRG
-# define _______________UNICODE_R2__________________ UC_SHRG, UC_SHRG, UC_SHRG, UC_SHRG, UC_SHRG
-# define _______________UNICODE_R3__________________ UC_SHRG, UC_SHRG, UC_SHRG, UC_SHRG, UC_SHRG
-#endif
-
-#ifdef UNICODEMAP_ENABLE
-# define _______________UNICODE_L1__________________ UM(SMRK), UM(THINK), UM(CLOWN), UM(HUNDR), UM(BANG)
-# define _______________UNICODE_L2__________________ UM(GRIN), UM(MONKEY), UM(OKOK), UM(EGGPL), UM(LIT)
-# define _______________UNICODE_L3__________________ UM(WEARY), UM(UNAMU), UM(EFFU), UM(MONOCL), UM(IRONY)
-
-# define _______________UNICODE_R1__________________ UM(DRUG0), UM(THUP), UM(INUP), UM(DIZZY), UM(COOL)
-# define _______________UNICODE_R2__________________ UM(FIST0), UM(FIST2), UM(FIST3), UM(FIST1), UM(OKOK)
-# define _______________UNICODE_R3__________________ UM(MNDBLWN), UM(THDN), UM(SPOCK), UM(HOLE), UM(DASH)
-#endif
-
-#define ________________NUMBER_LEFT________________ KC_1, KC_2, KC_3, KC_4, KC_5
-#define ________________NUMBER_RIGHT_______________ KC_6, KC_7, KC_8, KC_9, KC_0
-#define _________________FUNC_LEFT_________________ KC_F1, KC_F2, KC_F3, KC_F4, KC_F5
-#define _________________FUNC_RIGHT________________ KC_F6, KC_F7, KC_F8, KC_F9, KC_F10
-
-#define _________________MEDIA_RIGHT_______________ KC_MUTE, KC_MPRV, KC_MPLY, KC_MNXT, KC_MSTP
-#define _________________MEDIA_LEFT________________ KC_VOLD, KC_VOLD, KC_MUTE, KC_VOLU, KC_VOLU
-
-#define _________________LOWER_L1__________________ KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC
-#define _________________LOWER_L2__________________ ___________________BLANK___________________
-#define _________________LOWER_L3__________________ _______, _______, _______, OS_UNI, TM_X
-
-#define _________________LOWER_R1__________________ KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN
-#define _________________LOWER_R2__________________ _______, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR
-#define _________________LOWER_R3__________________ _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT
-
-#define _________________RAISE_L1__________________ ________________NUMBER_LEFT________________
-#define _________________RAISE_L2__________________ ___________________BLANK___________________
-#define _________________RAISE_L3__________________ ___________________BLANK___________________
-
-#define _________________RAISE_R1__________________ ________________NUMBER_RIGHT_______________
-#define _________________RAISE_R2__________________ _______, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC
-#define _________________RAISE_R3__________________ _______, KC_HOME, KC_PGDN, KC_PGUP, KC_END
-
-#define _________________ADJUST_L1_________________ QWERTY, COLEMAK, DVORAK, WORKMAN, PLOVER
-#define _________________ADJUST_L2_________________ _________________FUNC_LEFT_________________
-#define _________________ADJUST_L3_________________ _________________MEDIA_LEFT________________
-
-#define _________________ADJUST_R1_________________ SEC1, SEC2, SEC3, SEC4, SEC5
-#define _________________ADJUST_R2_________________ _________________FUNC_RIGHT________________
-#define _________________ADJUST_R3_________________ _________________MEDIA_RIGHT_______________
-
-#define _________________RGB_UP____________________ RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, RGB_TOG
-#define _________________RGB_CENTER________________ MU_TOGG, CK_TOGG, AU_ON, AU_OFF, AG_NORM
-#define _________________RGB_DOWN__________________ RGB_RMOD, RGB_HUD, RGB_SAD, RGB_VAD, KC_RGB_T
-
-#define _________________RGB_R1____________________ RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, RGB_TOG
-#define _________________RGB_R2____________________ MU_TOGG, CK_TOGG, AU_ON, AU_OFF, AG_NORM
-#define _________________RGB_R3____________________ RGB_RMOD, RGB_HUD, RGB_SAD, RGB_VAD, KC_RGB_T
-
-#define __________________GAMEPAD_L1_______________ _______, KC_Q, KC_W, KC_E, _______
-#define __________________GAMEPAD_L2_______________ _______, KC_A, KC_S, KC_D, _______
-#define __________________GAMEPAD_L3_______________ KC_1, KC_2, KC_3, KC_4, KC_5
-
-#define __________________GAMEPAD_R1_______________ _______, KC_U, KC_UP, KC_O, _______
-#define __________________GAMEPAD_R2_______________ _______, KC_LEFT, KC_DOWN, KC_RIGHT, _______
-#define __________________GAMEPAD_R3_______________ KC_6, KC_7, KC_8, KC_9, KC_0
-/* vi: ft=c:tw=80:sw=2:ts=2:sts=2:et */
-
diff --git a/users/losinggeneration/README.md b/users/losinggeneration/README.md
deleted file mode 100644
index 852103fc69..0000000000
--- a/users/losinggeneration/README.md
+++ /dev/null
@@ -1,185 +0,0 @@
-losinggeneration's ortholinear layout
-============================
-
-### Features
-
-- Main layer(s)
- - The left space bar key has been changed to delete to have backspace
- & delete on the same main layer.
- - Adujst is a tap dance with one tap goes to the Adjust layer, second tap
- goes to the Numpad layer, a third tap goes to the Mouse layer. More taps
- are an error and disables tapping until you stop and try again.
- - Ctrl when tapped once & Ctrl+Alt when tapped twice
- - Left Alt when tapped once & Right Alt when tapped twice.
- - Left GUI when tapped once & right GUI when tapped twice. This is
- because I have a compose key on the right GUI key.
- - Left shift is a one shot modifier.
- - Enter when tapped Shift when held.
- - Esc when tapped Ctrl when held.
-- Lower & Raise
- - Removed ISO ~, ISO |, ISO #, ISO /, Media Next, & Media Play
- - Added PgUp, PgDn, Home, & End under the home row
- - Added Mute next to Vol-
-- New layers: Workman, Game, Numpad, & Mouse
-
-## Layouts
-These include the 5x12 layout since it's nearly identical to the 4x12 layout.
-The only difference is the top row is removed for the 4x12 layout.
-
-The Adjust layer keyboard specific, so it's described with the specific
-keyboard.
-
-### Qwerty
-
-```
- ,-----------------------------------------..-----------------------------------------.
- | ` | 1 | 2 | 3 | 4 | 5 || 6 | 7 | 8 | 9 | 0 | Del |
- |------+------+------+------+------+------||------+------+------+------+------+------|
- | Tab | Q | W | E | R | T || Y | U | I | O | P | Bksp |
- |------+------+------+------+------+------||------+------+------+------+------+------|
- | Esc | A | S | D | F | G || H | J | K | L | ; | " |
- |------+------+------+------+------+------||------+------+------+------+------+------|
- | Shift| Z | X | C | V | B || N | M | , | . | / |Enter |
- |------+------+------+------+------+------||------+------+------+------+------+------|
- |Adjust| Ctrl | Alt | GUI |Lower | Bksp ||Space |Raise | Left | Down | Up |Right |
- `-----------------------------------------'`-----------------------------------------'
-```
-
-### Colemak
-
-```
- ,-----------------------------------------.,-----------------------------------------.
- | ` | 1 | 2 | 3 | 4 | 5 || 6 | 7 | 8 | 9 | 0 | Del |
- |------+------+------+------+------+------||------+------+------+------+------+------|
- | Tab | Q | W | F | P | G || J | L | U | Y | ; | Bksp |
- |------+------+------+------+------+------||------+------+------+------+------+------|
- | Esc | A | R | S | T | D || H | N | E | I | O | " |
- |------+------+------+------+------+------||------+------+------+------+------+------|
- | Shift| Z | X | C | V | B || K | M | , | . | / |Enter |
- |------+------+------+------+------+------||------+------+------+------+------+------|
- |Adjust| Ctrl | Alt | GUI |Lower | Bksp ||Space |Raise | Left | Down | Up |Right |
- `-----------------------------------------'`-----------------------------------------'
-```
-
-### Workman
-
-```
- ,-----------------------------------------..-----------------------------------------.
- | ` | 1 | 2 | 3 | 4 | 5 || 6 | 7 | 8 | 9 | 0 | Del |
- |------+------+------+------+------+------||------+------+------+------+------+------|
- | Tab | Q | D | R | W | B || J | F | U | P | ; | Bksp |
- |------+------+------+------+------+------||------+------+------+------+------+------|
- | Esc | A | S | H | T | G || Y | N | E | O | I | " |
- |------+------+------+------+------+------||------+------+------+------+------+------|
- | Shift| Z | X | M | C | V || K | L | , | . | / |Enter |
- |------+------+------+------+------+------||------+------+------+------+------+------|
- |Adjust| Ctrl | Alt | GUI |Lower | Bksp ||Space |Raise | Left | Down | Up |Right |
- `-----------------------------------------'`-----------------------------------------'
-```
-
-### Dvorak
-
-```
- ,-----------------------------------------..-----------------------------------------.
- | ` | 1 | 2 | 3 | 4 | 5 || 6 | 7 | 8 | 9 | 0 | Del |
- |------+------+------+------+------+------||------+------+------+------+------+------|
- | Tab | " | , | . | P | Y || F | G | C | R | L | Bksp |
- |------+------+------+------+------+------||------+------+------+------+------+------|
- | Esc | A | O | E | U | I || D | H | T | N | S | / |
- |------+------+------+------+------+------||------+------+------+------+------+------|
- | Shift| ; | Q | J | K | X || B | M | W | V | Z |Enter |
- |------+------+------+------+------+------||------+------+------+------+------+------|
- |Adjust| Ctrl | Alt | GUI |Lower | Bksp ||Space |Raise | Left | Down | Up |Right |
- `-----------------------------------------'`-----------------------------------------'
-```
-
-### Game (Qwerty without one shot modifiers & tap dancing)
-
-```
- ,-----------------------------------------..-----------------------------------------.
- | ` | 1 | 2 | 3 | 4 | 5 || 6 | 7 | 8 | 9 | 0 | Del |
- |------+------+------+------+------+------||------+------+------+------+------+------|
- | Tab | Q | W | E | R | T || Y | U | I | O | P | Bksp |
- |------+------+------+------+------+------||------+------+------+------+------+------|
- | Esc | A | S | D | F | G || H | J | K | L | ; | " |
- |------+------+------+------+------+------||------+------+------+------+------+------|
- | Shift| Z | X | C | V | B || N | M | , | . | / |Enter |
- |------+------+------+------+------+------||------+------+------+------+------+------|
- |Adjust| Ctrl | Alt | GUI |Lower |Space ||Space |Raise | Left | Down | Up |Right |
- `-----------------------------------------'`-----------------------------------------'
-```
-
-### Number pad
-
-```
- ,-----------------------------------------..-----------------------------------------.
- | XXX | XXX | XXX | XXX | XXX | XXX || XXX | NLCK | * | / | BKSP | BKSP |
- |------+------+------+------+------+------||------+------+------+------+------+------|
- | Tab | XXX | XXX | XXX | XXX | XXX || NLCK | 7 | 8 | 9 | - | BKSP |
- |------+------+------+------+------+------||------+------+------+------+------+------|
- | Esc | XXX | XXX | XXX | XXX | XXX || * | 4 | 5 | 6 | + | BKSP |
- |------+------+------+------+------+------||------+------+------+------+------+------|
- |Shift | XXX | XXX | XXX | XXX | XXX || / | 1 | 2 | 3 | ENT | XXX |
- |------+------+------+------+------+------||------+------+------+------+------+------|
- |Adjust| Ctrl | Alt | GUI | XXX |Space ||Space | 0 | 0 | . | ENT | XXX |
- `-----------------------------------------''-----------------------------------------'
-```
-
-### Mouse movement
-
-* M is short for Mouse
-* MW is short for Mouse Wheel
-* MB is short for Mouse Button
-* MA is short for Mouse Acceleration
-
-&nbsp;
-* MB\_1 is the left click
-* MB\_2 is the right click
-* MB\_3 is the middle click
-
-```
- ,-----------------------------------------..-----------------------------------------.
- | XXX | XXX | XXX | XXX | XXX | XXX || XXX | XXX | XXX | XXX | XXX | XXX |
- |------+------+------+------+------+------||------+------+------+------+------+------|
- | Tab | MB_1 | MB_3 | MB_2 | MB_4 | MB_5 || MA_0 | MB_1 | MB_3 | MB_2 | MB_4 | MB_5 |
- |------+------+------+------+------+------||------+------+------+------+------+------|
- | Esc | MW_L | MW_U | MW_D | MW_R | XXX || MA_1 | M_LT | M_UP | M_DN | M_RT | XXX |
- |------+------+------+------+------+------||------+------+------+------+------+------|
- |Shift | MA_0 | MA_1 | MA_2 | XXX | XXX || MA_2 | MW_L | MW_U | MW_D | MW_R | XXX |
- |------+------+------+------+------+------||------+------+------+------+------+------|
- |Adjust| Ctrl | Alt | GUI | XXX |Space || XXX | XXX | XXX | XXX | XXX | XXX |
- `-----------------------------------------''-----------------------------------------'
-```
-
-### Lower
-
-```
- ,-----------------------------------------..-----------------------------------------.
- | ~ | ! | @ | # | $ | % || ^ | & | * | ( | ) | Del |
- |------+------+------+------+------+------||------+------+------+------+------+------|
- | ~ | ! | @ | # | $ | % || ^ | & | * | ( | ) | Bksp |
- |------+------+------+------+------+------||------+------+------+------+------+------|
- | Del | F1 | F2 | F3 | F4 | F5 || F6 | _ | + | | \ | | |
- |------+------+------+------+------+------||------+------+------+------+------+------|
- | | F7 | F8 | F9 | F10 | F11 || F12 | PgUp | PgDn | Home | End | ⏹ |
- |------+------+------+------+------+------||------+------+------+------+------+------|
- | | | | | | || | | Mute | Vol- | Vol+ | ⏯ |
- `-----------------------------------------'`-----------------------------------------'
-```
-
-### Raise
-
-```
- ,-----------------------------------------..-----------------------------------------.
- | ` | 1 | 2 | 3 | 4 | 5 || 6 | 7 | 8 | 9 | 0 | Del |
- |------+------+------+------+------+------||------+------+------+------+------+------|
- | ` | 1 | 2 | 3 | 4 | 5 || 6 | 7 | 8 | 9 | 0 | Bksp |
- |------+------+------+------+------+------||------+------+------+------+------+------|
- | Del | F1 | F2 | F3 | F4 | F5 || F6 | - | = | [ | ] | \ |
- |------+------+------+------+------+------||------+------+------+------+------+------|
- | | F7 | F8 | F9 | F10 | F11 || F12 | PgUp | PgDn | Home | End | ⏹ |
- |------+------+------+------+------+------||------+------+------+------+------+------|
- | | | | | | || | | Mute | Vol- | Vol+ | ⏯ |
- `-----------------------------------------''-----------------------------------------'
-```
-
diff --git a/users/losinggeneration/losinggeneration-common.h b/users/losinggeneration/losinggeneration-common.h
deleted file mode 100644
index 857117ca16..0000000000
--- a/users/losinggeneration/losinggeneration-common.h
+++ /dev/null
@@ -1,71 +0,0 @@
-#ifndef LOSINGGENERATION_COMMON_H
-#define LOSINGGENERATION_COMMON_H
-
-/* Custom keys & combinations to be shorter for keymaps */
-#define KC_LCA LCA(KC_NO)
-
-#define OSM_LSFT OSM(MOD_LSFT)
-#define TD_CTL TD(TD_CTL_CTLALT)
-#define TD_GUI TD(TD_LGUI_RGUI)
-#define TD_ALT TD(TD_LALT_RALT)
-#define MT_ENT SFT_T(KC_ENT)
-#define MT_ESC CTL_T(KC_ESC)
-
-/* Custom layer movements for keymaps */
-#define TD_ADJ TD(TD_ADJUST)
-#define TO_GAME TO(_GAME)
-#define TO_MS TO(_MOUSE)
-#define TO_NUM TO(_NUMPAD)
-#define MO_ADJ MO(_ADJUST)
-
-/* Mouse keys */
-#define MS_BTN1 KC_MS_BTN1
-#define MS_BTN2 KC_MS_BTN2
-#define MS_BTN3 KC_MS_BTN3
-#define MS_BTN4 KC_MS_BTN4
-#define MS_BTN5 KC_MS_BTN5
-#define MS_LEFT KC_MS_LEFT
-#define MS_DOWN KC_MS_DOWN
-#define MS_UP KC_MS_UP
-#define MS_RGHT KC_MS_RIGHT
-#define MW_LEFT KC_MS_WH_LEFT
-#define MW_DOWN KC_MS_WH_DOWN
-#define MW_UP KC_MS_WH_UP
-#define MW_RGHT KC_MS_WH_RIGHT
-#define MS_ACL0 KC_MS_ACCEL0
-#define MS_ACL1 KC_MS_ACCEL1
-#define MS_ACL2 KC_MS_ACCEL2
-
-/*
- * This will expand values sent to it to send to the KEYMAP macro so defines
- * can be used by KEYMAP
- */
-#define CATMAP(...) LAYOUT(__VA_ARGS__)
-
-/*
- Each layer gets a name for readability, which is then used in the keymap matrix below.
- The underscores don't mean anything - you can have a layer called STUFF or any other name.
- Layer names don't all need to be of the same length, obviously, and you can also skip them
- entirely and just use numbers.
-*/
-#define _QWERTY 0
-#define _COLEMAK 1
-#define _WORKMAN 2
-#define _DVORAK 3
-#define _GAME 4
-#define _NUMPAD 5
-#define _MOUSE 6
-#define _LOWER 14
-#define _RAISE 15
-#define _ADJUST 16
-
-enum custom_keycodes {
- QWERTY = SAFE_RANGE,
- COLEMAK,
- WORKMAN,
- DVORAK,
- LOWER,
- RAISE,
-};
-
-#endif
diff --git a/users/losinggeneration/losinggeneration-config.h b/users/losinggeneration/losinggeneration-config.h
deleted file mode 100644
index e1719aa9e7..0000000000
--- a/users/losinggeneration/losinggeneration-config.h
+++ /dev/null
@@ -1,29 +0,0 @@
-/*
-Copyright 2017 Danny Nguyen <danny@hexwire.com>
-Copyright 2018 Harley Laue <losinggeneration@gmail.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
-long with this program. If not, see <http://www.gnu.org/licenses/>.
-*/
-
-#ifndef LOSINGGENERATION_CONFIG_H
-#define LOSINGGENERATION_CONFIG_H
-
-#define MOUSEKEY_DELAY 100
-#define MOUSEKEY_INTERVAL 20
-#define MOUSEKEY_MAX_SPEED 10
-#define MOUSEKEY_TIME_TO_MAX 20
-#define MOUSEKEY_WHEEL_MAX_SPEED 8
-#define MOUSEKEY_WHEEL_TIME_TO_MAX 20
-
-#endif
diff --git a/users/losinggeneration/losinggeneration-keymap.h b/users/losinggeneration/losinggeneration-keymap.h
deleted file mode 100644
index 14e25adecc..0000000000
--- a/users/losinggeneration/losinggeneration-keymap.h
+++ /dev/null
@@ -1,379 +0,0 @@
-#ifndef LOSINGGENERATION_KEYMAP_H
-#define LOSINGGENERATION_KEYMAP_H
-
-#include "action_layer.h"
-#include "eeconfig.h"
-#include "losinggeneration-common.h"
-
-/* Tap dance keycodes */
-enum tap_dance_keycodes {
- TD_CTL_CTLALT = 0,
- TD_LGUI_RGUI,
- TD_LALT_RALT,
- TD_ADJUST,
-};
-
-/*
- Used to indicate a CTRL should be pressed on one press, or CTRL+ALT on
- a double tap
-*/
-void dance_ctl_ctlalt_each(tap_dance_state_t *state, void *user_data) {
- register_code(KC_LCTL);
- if(state->count > 1) {
- register_code(KC_LALT);
- }
-}
-
-/* Used to release CTRL or the double tapped variant CTRL+ALT */
-void dance_ctl_ctlalt_reset(tap_dance_state_t *state, void *user_data) {
- unregister_code(KC_LCTL);
- if(state->count > 1) {
- unregister_code(KC_LALT);
- }
-}
-
-/*
- Set ADJUST layer on the first press and off after that.
- Each is used to make sure ADJUST activates as soon as it's pressed the first
- time.
-*/
-void dance_adj_each(tap_dance_state_t *state, void *user_data) {
- if(state->count == 1) {
- layer_on(_ADJUST);
- } else {
- layer_off(_ADJUST);
- }
-}
-
-/* Set NUMPAD layer on second tap and MOUSE layer on 3rd */
-void dance_adj_finish(tap_dance_state_t *state, void *user_data) {
- switch(state->count) {
- case 1: break;
- case 2:
- layer_on(_NUMPAD);
- break;
- case 3:
- layer_on(_MOUSE);
- break;
- default:
- reset_tap_dance(state);
- break;
- }
-}
-
-/* Turn off any layer that may have been tapped on */
-void dance_adj_reset(tap_dance_state_t *state, void *user_data) {
- switch(state->count) {
- case 1:
- layer_off(_ADJUST);
- break;
- case 2:
- layer_off(_NUMPAD);
- break;
- case 3:
- layer_off(_MOUSE);
- break;
- }
-}
-
-tap_dance_action_t tap_dance_actions[] = {
- [TD_CTL_CTLALT] = ACTION_TAP_DANCE_FN_ADVANCED(dance_ctl_ctlalt_each, NULL, dance_ctl_ctlalt_reset),
- [TD_LGUI_RGUI] = ACTION_TAP_DANCE_DOUBLE(KC_LGUI, KC_RGUI),
- [TD_LALT_RALT] = ACTION_TAP_DANCE_DOUBLE(KC_LALT, KC_RALT),
- [TD_ADJUST] = ACTION_TAP_DANCE_FN_ADVANCED(dance_adj_each, dance_adj_finish, dance_adj_reset),
-};
-
-/*
- * ,-----------------------------------------..-----------------------------------------.
- * |Adjust| Ctrl | Alt | GUI |Lower | Del ||Space |Raise | Left | Down | Up |Right |
- * `-----------------------------------------'`-----------------------------------------'
- */
-#define BOTTOM_GRID_ROW \
- TD_ADJ ,TD_CTL , TD_ALT , TD_GUI , LOWER , KC_DEL , KC_SPC , RAISE , KC_LEFT, KC_DOWN, KC_UP , KC_RGHT
-
-/*
- * ,-----------------------------------------..-----------------------------------------.
- * |Adjust| Ctrl | Alt | GUI |Lower |Space ||Space |Raise | Left | Down | Up |Right |
- * `-----------------------------------------'`-----------------------------------------'
- */
-#define BOTTOM_MIT_ROW \
- TD_ADJ ,TD_CTL , TD_ALT , TD_GUI , LOWER , KC_SPC , KC_SPC , RAISE , KC_LEFT, KC_DOWN, KC_UP , KC_RGHT
-
-#ifdef USE_MIT_LAYOUT
-#define BOTTOM_ROW BOTTOM_MIT_ROW
-
-/*
- * ,-----------------------------------------..-----------------------------------------.
- * | | F7 | F8 | F9 | F10 | F11 || F12 | PgUp | PgDn | Home | End | ⏹ |
- * |------+------+------+------+------+------||------+------+------+------+------+------|
- * | | | | | | || | | Mute | Vol- | Vol+ | ⏯ |
- * `-----------------------------------------'`-----------------------------------------'
- */
-#define BOTTOM_RAISE_LOWER_ROWS \
- _______, KC_F7 , KC_F8 , KC_F9 , KC_F10 , KC_F11 , KC_F12 , KC_PGUP, KC_PGDN, KC_HOME, KC_END , KC_MSTP, \
- _______, _______, _______, _______, _______, _______, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, KC_MPLY
-
-#else
-#define BOTTOM_ROW BOTTOM_GRID_ROW
-
-/*
- * ,-----------------------------------------..-----------------------------------------.
- * | | F7 | F8 | F9 | F10 | F11 || F12 | PgUp | PgDn | Home | End | ⏹ |
- * |------+------+------+------+------+------||------+------+------+------+------+------|
- * | | | | | | || Bksp | | Mute | Vol- | Vol+ | ⏯ |
- * `-----------------------------------------'`-----------------------------------------'
- */
-#define BOTTOM_RAISE_LOWER_ROWS \
- _______, KC_F7 , KC_F8 , KC_F9 , KC_F10 , KC_F11 , KC_F12 , KC_PGUP, KC_PGDN, KC_HOME, KC_END , KC_MSTP, \
- _______, _______, _______, _______, _______, KC_BSPC, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, KC_MPLY
-#endif
-
-
-/*
- * ,-----------------------------------------..-----------------------------------------.
- * | Tab | || | Bksp |
- * `-----------------------------------------'`-----------------------------------------'
- */
-#define STD_TAB_ROW(...) KC_TAB, __VA_ARGS__, KC_BSPC
-
-/*
- * ,-----------------------------------------..-----------------------------------------.
- * | Esc | || |
- * `-----------------------------------------'`-----------------------------------------'
- */
-
-#define STD_ESC_ROW(...) MT_ESC, __VA_ARGS__
-
-/*
- * ,-----------------------------------------..-----------------------------------------.
- * | Shift| || |Enter |
- * `-----------------------------------------'`-----------------------------------------'
- */
-#define STD_LSFT_ROW(...) OSM_LSFT, __VA_ARGS__, MT_ENT
-
-/* Qwerty
- * ,-----------------------------------------..-----------------------------------------.
- * | Tab | Q | W | E | R | T || Y | U | I | O | P | Bksp |
- * |------+------+------+------+------+------||------+------+------+------+------+------|
- * | Esc | A | S | D | F | G || H | J | K | L | ; | " |
- * |------+------+------+------+------+------||------+------+------+------+------+------|
- * | Shift| Z | X | C | V | B || N | M | , | . | / |Enter |
- * |------+------+------+------+------+------||------+------+------+------+------+------|
- * |Adjust| Ctrl | Alt | GUI |Lower | Del ||Space |Raise | Left | Down | Up |Right |
- * `-----------------------------------------'`-----------------------------------------'
- */
-#define QWERTY_LAYER \
- STD_TAB_ROW( KC_Q , KC_W , KC_E , KC_R , KC_T , KC_Y , KC_U , KC_I , KC_O , KC_P ), \
- STD_ESC_ROW( KC_A , KC_S , KC_D , KC_F , KC_G , KC_H , KC_J , KC_K , KC_L , KC_SCLN , KC_QUOT), \
- STD_LSFT_ROW(KC_Z , KC_X , KC_C , KC_V , KC_B , KC_N , KC_M , KC_COMM, KC_DOT , KC_SLSH), \
- BOTTOM_ROW
-
-/* Colemak
- * ,-----------------------------------------.,-----------------------------------------.
- * | Tab | Q | W | F | P | G || J | L | U | Y | ; | Bksp |
- * |------+------+------+------+------+------||------+------+------+------+------+------|
- * | Esc | A | R | S | T | D || H | N | E | I | O | " |
- * |------+------+------+------+------+------||------+------+------+------+------+------|
- * | Shift| Z | X | C | V | B || K | M | , | . | / |Enter |
- * |------+------+------+------+------+------||------+------+------+------+------+------|
- * |Adjust| Ctrl | Alt | GUI |Lower | Del ||Space |Raise | Left | Down | Up |Right |
- * `-----------------------------------------'`-----------------------------------------'
- */
-#define COLEMAK_LAYER \
- STD_TAB_ROW( KC_Q , KC_W , KC_F , KC_P , KC_G , KC_J , KC_L , KC_U , KC_Y , KC_SCLN), \
- STD_ESC_ROW( KC_A , KC_R , KC_S , KC_T , KC_D , KC_H , KC_N , KC_E , KC_I , KC_O , KC_QUOT), \
- STD_LSFT_ROW(KC_Z , KC_X , KC_C , KC_V , KC_B , KC_K , KC_M , KC_COMM, KC_DOT , KC_SLSH), \
- BOTTOM_ROW
-
-/* Workman
- * ,-----------------------------------------..-----------------------------------------.
- * | Tab | Q | D | R | W | B || J | F | U | P | ; | Bksp |
- * |------+------+------+------+------+------||------+------+------+------+------+------|
- * | Esc | A | S | H | T | G || Y | N | E | O | I | " |
- * |------+------+------+------+------+------||------+------+------+------+------+------|
- * | Shift| Z | X | M | C | V || K | L | , | . | / |Enter |
- * |------+------+------+------+------+------||------+------+------+------+------+------|
- * |Adjust| Ctrl | Alt | GUI |Lower | Del ||Space |Raise | Left | Down | Up |Right |
- * `-----------------------------------------'`-----------------------------------------'
- */
-#define WORKMAN_LAYER \
- STD_TAB_ROW( KC_Q , KC_D , KC_R , KC_W , KC_B , KC_J , KC_F , KC_U , KC_P , KC_SCLN), \
- STD_ESC_ROW( KC_A , KC_S , KC_H , KC_T , KC_G , KC_Y , KC_N , KC_E , KC_O , KC_I , KC_QUOT), \
- STD_LSFT_ROW(KC_Z , KC_X , KC_M , KC_C , KC_V , KC_K , KC_L , KC_COMM, KC_DOT , KC_SLSH), \
- BOTTOM_ROW
-
-/* Dvorak
- * ,-----------------------------------------..-----------------------------------------.
- * | Tab | " | , | . | P | Y || F | G | C | R | L | Bksp |
- * |------+------+------+------+------+------||------+------+------+------+------+------|
- * | Esc | A | O | E | U | I || D | H | T | N | S | / |
- * |------+------+------+------+------+------||------+------+------+------+------+------|
- * | Shift| ; | Q | J | K | X || B | M | W | V | Z |Enter |
- * |------+------+------+------+------+------||------+------+------+------+------+------|
- * |Adjust| Ctrl | Alt | GUI |Lower | Del ||Space |Raise | Left | Down | Up |Right |
- * `-----------------------------------------'`-----------------------------------------'
- */
-#define DVORAK_LAYER \
- STD_TAB_ROW( KC_QUOT, KC_COMM, KC_DOT , KC_P , KC_Y , KC_F , KC_G , KC_C , KC_R , KC_L), \
- STD_ESC_ROW( KC_A , KC_O , KC_E , KC_U , KC_I , KC_D , KC_H , KC_T , KC_N , KC_S , KC_SLSH), \
- STD_LSFT_ROW(KC_SCLN, KC_Q , KC_J , KC_K , KC_X , KC_B , KC_M , KC_W , KC_V , KC_Z), \
- BOTTOM_ROW
-
-/* Game (Qwerty without one shot modifiers & tap dancing)
- * ,-----------------------------------------..-----------------------------------------.
- * | Tab | Q | W | E | R | T || Y | U | I | O | P | Bksp |
- * |------+------+------+------+------+------||------+------+------+------+------+------|
- * | Esc | A | S | D | F | G || H | J | K | L | ; | " |
- * |------+------+------+------+------+------||------+------+------+------+------+------|
- * | Shift| Z | X | C | V | B || N | M | , | . | / |Enter |
- * |------+------+------+------+------+------||------+------+------+------+------+------|
- * |Adjust| Ctrl | Alt | GUI |Lower |Space ||Space |Raise | Left | Down | Up |Right |
- * `-----------------------------------------'`-----------------------------------------'
- */
-#define GAME_LAYER \
- 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_ESC , 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_ENT , \
- MO_ADJ , KC_LCTL, KC_LALT, KC_LGUI, LOWER , KC_SPC , KC_SPC , RAISE , KC_LEFT, KC_DOWN, KC_UP , KC_RGHT
-
-/* Number pad
- * ,-----------------------------------------..-----------------------------------------.
- * | Tab | XXX | XXX | XXX | XXX | XXX || NLCK | 7 | 8 | 9 | - | BKSP |
- * |------+------+------+------+------+------||------+------+------+------+------+------|
- * | Esc | XXX | XXX | XXX | XXX | XXX || * | 4 | 5 | 6 | + | BKSP |
- * |------+------+------+------+------+------||------+------+------+------+------+------|
- * |Shift | XXX | XXX | XXX | XXX | XXX || / | 1 | 2 | 3 | ENT | XXX |
- * |------+------+------+------+------+------||------+------+------+------+------+------|
- * |Adjust| Ctrl | Alt | GUI | XXX |Space ||Space | 0 | 0 | . | ENT | XXX |
- * `-----------------------------------------''-----------------------------------------'
- */
-#define NUMPAD_LAYER \
- KC_TAB , XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_NUM, KC_P7 , KC_P8 , KC_P9 , KC_PMNS, KC_BSPC, \
- KC_ESC , XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_PAST, KC_P4 , KC_P5 , KC_P6 , KC_PPLS, KC_BSPC, \
- KC_LSFT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_PSLS, KC_P1 , KC_P2 , KC_P3 , KC_PENT, XXXXXXX, \
- TD_ADJ , TD_CTL , TD_ALT , TD_GUI , XXXXXXX, KC_SPC , KC_SPC , KC_P0 , KC_P0 , KC_PDOT, KC_PENT, XXXXXXX
-
-/* Mouse movement
- * ,-----------------------------------------..-----------------------------------------.
- * | Tab | MB_1 | MB_3 | MB_2 | MB_4 | MB_5 || MA_0 | MB_1 | MB_3 | MB_2 | MB_4 | MB_5 |
- * |------+------+------+------+------+------||------+------+------+------+------+------|
- * | Esc | MW_L | MW_U | MW_D | MW_R | XXX || MA_1 | M_LT | M_UP | M_DN | M_RT | XXX |
- * |------+------+------+------+------+------||------+------+------+------+------+------|
- * |Shift | MA_0 | MA_1 | MA_2 | XXX | XXX || MA_2 | MW_L | MW_U | MW_D | MW_R | XXX |
- * |------+------+------+------+------+------||------+------+------+------+------+------|
- * |Adjust| Ctrl | Alt | GUI | XXX |Space || XXX | XXX | XXX | XXX | XXX | XXX |
- * `-----------------------------------------''-----------------------------------------'
- */
-#define MOUSE_LAYER \
- KC_TAB , MS_BTN1, MS_BTN3, MS_BTN2, MS_BTN4, MS_BTN5, MS_ACL0, MS_BTN1, MS_BTN3, MS_BTN2, MS_BTN4, MS_BTN5, \
- KC_ESC , MW_LEFT, MW_DOWN, MW_UP , MW_RGHT, XXXXXXX, MS_ACL1, MS_LEFT, MS_DOWN, MS_UP , MS_RGHT, XXXXXXX, \
- KC_LSFT, MS_ACL0, MS_ACL1, MS_ACL2, XXXXXXX, XXXXXXX, MS_ACL2, MW_LEFT, MW_DOWN, MW_UP , MW_RGHT, XXXXXXX, \
- TD_ADJ , TD_CTL , TD_ALT , TD_GUI , XXXXXXX, KC_SPC , XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX
-
-/* Lower
- * ,-----------------------------------------..-----------------------------------------.
- * | ~ | ! | @ | # | $ | % || ^ | & | * | ( | ) | Bksp |
- * |------+------+------+------+------+------||------+------+------+------+------+------|
- * | Del | F1 | F2 | F3 | F4 | F5 || F6 | _ | + | | \ | | |
- * |------+------+------+------+------+------||------+------+------+------+------+------|
- * | | F7 | F8 | F9 | F10 | F11 || F12 | PgUp | PgDn | Home | End | ⏹ |
- * |------+------+------+------+------+------||------+------+------+------+------+------|
- * | | | | | | || | | Mute | Vol- | Vol+ | ⏯ |
- * `-----------------------------------------'`-----------------------------------------'
- */
-#define LOWER_LAYER \
- KC_TILD, KC_EXLM, KC_AT , KC_HASH, KC_DLR , KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC, \
- KC_DEL , KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_F5 , KC_F6 , KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, \
- BOTTOM_RAISE_LOWER_ROWS
-
-/* Raise
- * ,-----------------------------------------..-----------------------------------------.
- * | ` | 1 | 2 | 3 | 4 | 5 || 6 | 7 | 8 | 9 | 0 | Bksp |
- * |------+------+------+------+------+------||------+------+------+------+------+------|
- * | Del | F1 | F2 | F3 | F4 | F5 || F6 | - | = | [ | ] | \ |
- * |------+------+------+------+------+------||------+------+------+------+------+------|
- * | | F7 | F8 | F9 | F10 | F11 || F12 | PgUp | PgDn | Home | End | ⏹ |
- * |------+------+------+------+------+------||------+------+------+------+------+------|
- * | | | | | | || | | Mute | Vol- | Vol+ | ⏯ |
- * `-----------------------------------------''-----------------------------------------'
- */
-#define RAISE_LAYER \
- KC_GRV , KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , KC_BSPC, \
- KC_DEL , KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_F5 , KC_F6 , KC_MINS, KC_EQL , KC_LBRC, KC_RBRC, KC_BSLS, \
- BOTTOM_RAISE_LOWER_ROWS
-
-#ifdef AUDIO_ENABLE
-float tone_qwerty[][2] = SONG(QWERTY_SOUND);
-float tone_dvorak[][2] = SONG(DVORAK_SOUND);
-float tone_colemak[][2] = SONG(COLEMAK_SOUND);
-float tone_workman[][2] = SONG(PLOVER_SOUND);
-#else
-float tone_qwerty;
-float tone_dvorak;
-float tone_colemak;
-float tone_workman;
-#define PLAY_SONG(tone)
-#endif
-
-void persistent_default_layer_set(uint16_t default_layer) {
- layer_state_set(default_layer);
- eeconfig_update_default_layer(default_layer);
- default_layer_set(default_layer);
-}
-
-bool process_record_user(uint16_t keycode, keyrecord_t *record) {
- switch (keycode) {
- case QWERTY:
- if (record->event.pressed) {
- PLAY_SONG(tone_qwerty);
- persistent_default_layer_set(1UL<<_QWERTY);
- }
- return false;
- break;
- case COLEMAK:
- if (record->event.pressed) {
- PLAY_SONG(tone_colemak);
- persistent_default_layer_set(1UL<<_COLEMAK);
- }
- return false;
- break;
- case WORKMAN:
- if (record->event.pressed) {
- PLAY_SONG(tone_workman);
- persistent_default_layer_set(1UL<<_WORKMAN);
- }
- return false;
- break;
- case DVORAK:
- if (record->event.pressed) {
- PLAY_SONG(tone_dvorak);
- persistent_default_layer_set(1UL<<_DVORAK);
- }
- return false;
- break;
- case LOWER:
- if (record->event.pressed) {
- layer_on(_LOWER);
- update_tri_layer(_LOWER, _RAISE, _ADJUST);
- } else {
- layer_off(_LOWER);
- update_tri_layer(_LOWER, _RAISE, _ADJUST);
- }
- return false;
- break;
- case RAISE:
- if (record->event.pressed) {
- layer_on(_RAISE);
- update_tri_layer(_LOWER, _RAISE, _ADJUST);
- } else {
- layer_off(_RAISE);
- update_tri_layer(_LOWER, _RAISE, _ADJUST);
- }
- return false;
- break;
- }
-
- return true;
-}
-
-#endif
diff --git a/users/losinggeneration/rules.mk b/users/losinggeneration/rules.mk
deleted file mode 100644
index 41d6f91670..0000000000
--- a/users/losinggeneration/rules.mk
+++ /dev/null
@@ -1,12 +0,0 @@
-# Build Options
-# Only enable things here that are generic to all keyboards. A yes or no here
-# will override keyboard/keymap specific values
-#
-#COMMAND_ENABLE = no # Commands for debug and configuration
-#CONSOLE_ENABLE = no # Console for debug(+400)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-#NKRO_ENABLE = no # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
-TAP_DANCE_ENABLE = yes # Enable tap dancing
-#UNICODE_ENABLE = no # Unicode
-
diff --git a/users/manna-harbour_miryoku/config.h b/users/manna-harbour_miryoku/config.h
deleted file mode 100644
index f2bc9c331b..0000000000
--- a/users/manna-harbour_miryoku/config.h
+++ /dev/null
@@ -1,39 +0,0 @@
-// Copyright 2019 Manna Harbour
-// https://github.com/manna-harbour/miryoku
-
-// 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 "custom_config.h"
-
-// default but used in macros
-#undef TAPPING_TERM
-#define TAPPING_TERM 200
-
-
-// Enable rapid switch from tap to hold, disables double tap hold auto-repeat.
-#define QUICK_TAP_TERM 0
-
-// Auto Shift
-#define NO_AUTO_SHIFT_ALPHA
-#define AUTO_SHIFT_TIMEOUT TAPPING_TERM
-#define AUTO_SHIFT_NO_SETUP
-
-// Mouse key speed and acceleration.
-#undef MOUSEKEY_DELAY
-#define MOUSEKEY_DELAY 0
-#undef MOUSEKEY_INTERVAL
-#define MOUSEKEY_INTERVAL 16
-#undef MOUSEKEY_WHEEL_DELAY
-#define MOUSEKEY_WHEEL_DELAY 0
-#undef MOUSEKEY_MAX_SPEED
-#define MOUSEKEY_MAX_SPEED 6
-#undef MOUSEKEY_TIME_TO_MAX
-#define MOUSEKEY_TIME_TO_MAX 64
-
-// Thumb Combos
-#if defined (MIRYOKU_KLUDGE_THUMBCOMBOS)
- #define COMBO_TERM 200
- #define EXTRA_SHORT_COMBOS
-#endif
diff --git a/users/manna-harbour_miryoku/custom_config.h b/users/manna-harbour_miryoku/custom_config.h
deleted file mode 100644
index f5ba5ab1b1..0000000000
--- a/users/manna-harbour_miryoku/custom_config.h
+++ /dev/null
@@ -1,7 +0,0 @@
-// Copyright 2019 Manna Harbour
-// https://github.com/manna-harbour/miryoku
-
-// 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
-
diff --git a/users/manna-harbour_miryoku/custom_rules.mk b/users/manna-harbour_miryoku/custom_rules.mk
deleted file mode 100644
index 6e222bb11c..0000000000
--- a/users/manna-harbour_miryoku/custom_rules.mk
+++ /dev/null
@@ -1,3 +0,0 @@
-# Copyright 2019 Manna Harbour
-# https://github.com/manna-harbour/miryoku
-
diff --git a/users/manna-harbour_miryoku/manna-harbour_miryoku.c b/users/manna-harbour_miryoku/manna-harbour_miryoku.c
deleted file mode 100644
index 58b68c2727..0000000000
--- a/users/manna-harbour_miryoku/manna-harbour_miryoku.c
+++ /dev/null
@@ -1,91 +0,0 @@
-// Copyright 2022 Manna Harbour
-// https://github.com/manna-harbour/miryoku
-
-// 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 "manna-harbour_miryoku.h"
-
-
-// Additional Features double tap guard
-
-enum {
- U_TD_BOOT,
-#define MIRYOKU_X(LAYER, STRING) U_TD_U_##LAYER,
-MIRYOKU_LAYER_LIST
-#undef MIRYOKU_X
-};
-
-void u_td_fn_boot(tap_dance_state_t *state, void *user_data) {
- if (state->count == 2) {
- reset_keyboard();
- }
-}
-
-#define MIRYOKU_X(LAYER, STRING) \
-void u_td_fn_U_##LAYER(tap_dance_state_t *state, void *user_data) { \
- if (state->count == 2) { \
- default_layer_set((layer_state_t)1 << U_##LAYER); \
- } \
-}
-MIRYOKU_LAYER_LIST
-#undef MIRYOKU_X
-
-tap_dance_action_t tap_dance_actions[] = {
- [U_TD_BOOT] = ACTION_TAP_DANCE_FN(u_td_fn_boot),
-#define MIRYOKU_X(LAYER, STRING) [U_TD_U_##LAYER] = ACTION_TAP_DANCE_FN(u_td_fn_U_##LAYER),
-MIRYOKU_LAYER_LIST
-#undef MIRYOKU_X
-};
-
-
-// keymap
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-#define MIRYOKU_X(LAYER, STRING) [U_##LAYER] = U_MACRO_VA_ARGS(MIRYOKU_LAYERMAPPING_##LAYER, MIRYOKU_LAYER_##LAYER),
-MIRYOKU_LAYER_LIST
-#undef MIRYOKU_X
-};
-
-
-// shift functions
-
-const key_override_t capsword_key_override = ko_make_basic(MOD_MASK_SHIFT, CW_TOGG, KC_CAPS);
-
-const key_override_t **key_overrides = (const key_override_t *[]){
- &capsword_key_override,
- NULL
-};
-
-
-// thumb combos
-
-#if defined (MIRYOKU_KLUDGE_THUMBCOMBOS)
-const uint16_t PROGMEM thumbcombos_base_right[] = {LT(U_SYM, KC_ENT), LT(U_NUM, KC_BSPC), COMBO_END};
-const uint16_t PROGMEM thumbcombos_base_left[] = {LT(U_NAV, KC_SPC), LT(U_MOUSE, KC_TAB), COMBO_END};
-const uint16_t PROGMEM thumbcombos_nav[] = {KC_ENT, KC_BSPC, COMBO_END};
-const uint16_t PROGMEM thumbcombos_mouse[] = {KC_BTN2, KC_BTN1, COMBO_END};
-const uint16_t PROGMEM thumbcombos_media[] = {KC_MSTP, KC_MPLY, COMBO_END};
-const uint16_t PROGMEM thumbcombos_num[] = {KC_0, KC_MINS, COMBO_END};
- #if defined (MIRYOKU_LAYERS_FLIP)
-const uint16_t PROGMEM thumbcombos_sym[] = {KC_UNDS, KC_LPRN, COMBO_END};
- #else
-const uint16_t PROGMEM thumbcombos_sym[] = {KC_RPRN, KC_UNDS, COMBO_END};
- #endif
-const uint16_t PROGMEM thumbcombos_fun[] = {KC_SPC, KC_TAB, COMBO_END};
-combo_t key_combos[] = {
- COMBO(thumbcombos_base_right, LT(U_FUN, KC_DEL)),
- COMBO(thumbcombos_base_left, LT(U_MEDIA, KC_ESC)),
- COMBO(thumbcombos_nav, KC_DEL),
- COMBO(thumbcombos_mouse, KC_BTN3),
- COMBO(thumbcombos_media, KC_MUTE),
- COMBO(thumbcombos_num, KC_DOT),
- #if defined (MIRYOKU_LAYERS_FLIP)
- COMBO(thumbcombos_sym, KC_RPRN),
- #else
- COMBO(thumbcombos_sym, KC_LPRN),
- #endif
- COMBO(thumbcombos_fun, KC_APP)
-};
-#endif
diff --git a/users/manna-harbour_miryoku/manna-harbour_miryoku.h b/users/manna-harbour_miryoku/manna-harbour_miryoku.h
deleted file mode 100644
index 4d1fbf17cf..0000000000
--- a/users/manna-harbour_miryoku/manna-harbour_miryoku.h
+++ /dev/null
@@ -1,51 +0,0 @@
-// Copyright 2022 Manna Harbour
-// https://github.com/manna-harbour/miryoku
-
-// 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 "miryoku_babel/miryoku_layer_selection.h"
-#include "miryoku_babel/miryoku_layer_list.h"
-
-enum miryoku_layers {
-#define MIRYOKU_X(LAYER, STRING) U_##LAYER,
-MIRYOKU_LAYER_LIST
-#undef MIRYOKU_X
-};
-
-#define U_MACRO_VA_ARGS(macro, ...) macro(__VA_ARGS__)
-
-#if !defined (MIRYOKU_MAPPING)
- #define MIRYOKU_MAPPING LAYOUT_miryoku
-#endif
-
-#define U_NP KC_NO // key is not present
-#define U_NA KC_NO // present but not available for use
-#define U_NU KC_NO // available but not used
-
-#if defined (MIRYOKU_CLIPBOARD_FUN)
- #define U_RDO KC_AGIN
- #define U_PST KC_PSTE
- #define U_CPY KC_COPY
- #define U_CUT KC_CUT
- #define U_UND KC_UNDO
-#elif defined (MIRYOKU_CLIPBOARD_MAC)
- #define U_RDO SCMD(KC_Z)
- #define U_PST LCMD(KC_V)
- #define U_CPY LCMD(KC_C)
- #define U_CUT LCMD(KC_X)
- #define U_UND LCMD(KC_Z)
-#elif defined (MIRYOKU_CLIPBOARD_WIN)
- #define U_RDO C(KC_Y)
- #define U_PST C(KC_V)
- #define U_CPY C(KC_C)
- #define U_CUT C(KC_X)
- #define U_UND C(KC_Z)
-#else
- #define U_RDO KC_AGIN
- #define U_PST S(KC_INS)
- #define U_CPY C(KC_INS)
- #define U_CUT S(KC_DEL)
- #define U_UND KC_UNDO
-#endif
diff --git a/users/manna-harbour_miryoku/miryoku_babel/miryoku_layer_alternatives.h b/users/manna-harbour_miryoku/miryoku_babel/miryoku_layer_alternatives.h
deleted file mode 100644
index dea06bb690..0000000000
--- a/users/manna-harbour_miryoku/miryoku_babel/miryoku_layer_alternatives.h
+++ /dev/null
@@ -1,389 +0,0 @@
-// Copyright 2022 Manna Harbour
-// https://github.com/manna-harbour/miryoku
-// generated -*- buffer-read-only: t -*-
-// target: qmk
-
-// 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 MIRYOKU_ALTERNATIVES_BASE_AZERTY_FLIP \
-KC_A, KC_Z, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, \
-LGUI_T(KC_Q), LALT_T(KC_S), LCTL_T(KC_D), LSFT_T(KC_F), KC_G, KC_H, LSFT_T(KC_J), LCTL_T(KC_K), LALT_T(KC_L), LGUI_T(KC_M), \
-LT(U_BUTTON,KC_W), ALGR_T(KC_X), KC_C, KC_V, KC_B, KC_N, KC_COMM, KC_DOT, ALGR_T(KC_SLSH), LT(U_BUTTON,KC_QUOT),\
-U_NP, U_NP, LT(U_FUN,KC_DEL), LT(U_NUM,KC_BSPC), LT(U_SYM,KC_ENT), LT(U_MOUSE,KC_TAB),LT(U_NAV,KC_SPC), LT(U_MEDIA,KC_ESC),U_NP, U_NP
-
-#define MIRYOKU_ALTERNATIVES_BASE_BEAKL15_FLIP \
-KC_Q, KC_H, KC_O, KC_U, KC_X, KC_G, KC_C, KC_R, KC_F, KC_Z, \
-LGUI_T(KC_Y), LALT_T(KC_I), LCTL_T(KC_E), LSFT_T(KC_A), KC_DOT, KC_D, LSFT_T(KC_S), LCTL_T(KC_T), LALT_T(KC_N), LGUI_T(KC_B), \
-LT(U_BUTTON,KC_J), ALGR_T(KC_SLSH), KC_COMM, KC_K, KC_QUOT, KC_W, KC_M, KC_L, ALGR_T(KC_P), LT(U_BUTTON,KC_V), \
-U_NP, U_NP, LT(U_FUN,KC_DEL), LT(U_NUM,KC_BSPC), LT(U_SYM,KC_ENT), LT(U_MOUSE,KC_TAB),LT(U_NAV,KC_SPC), LT(U_MEDIA,KC_ESC),U_NP, U_NP
-
-#define MIRYOKU_ALTERNATIVES_BASE_COLEMAK_FLIP \
-KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_QUOT, \
-LGUI_T(KC_A), LALT_T(KC_R), LCTL_T(KC_S), LSFT_T(KC_T), KC_D, KC_H, LSFT_T(KC_N), LCTL_T(KC_E), LALT_T(KC_I), LGUI_T(KC_O), \
-LT(U_BUTTON,KC_Z), ALGR_T(KC_X), KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, ALGR_T(KC_DOT), LT(U_BUTTON,KC_SLSH),\
-U_NP, U_NP, LT(U_FUN,KC_DEL), LT(U_NUM,KC_BSPC), LT(U_SYM,KC_ENT), LT(U_MOUSE,KC_TAB),LT(U_NAV,KC_SPC), LT(U_MEDIA,KC_ESC),U_NP, U_NP
-
-#define MIRYOKU_ALTERNATIVES_BASE_COLEMAKDH_FLIP \
-KC_Q, KC_W, KC_F, KC_P, KC_B, KC_J, KC_L, KC_U, KC_Y, KC_QUOT, \
-LGUI_T(KC_A), LALT_T(KC_R), LCTL_T(KC_S), LSFT_T(KC_T), KC_G, KC_M, LSFT_T(KC_N), LCTL_T(KC_E), LALT_T(KC_I), LGUI_T(KC_O), \
-LT(U_BUTTON,KC_Z), ALGR_T(KC_X), KC_C, KC_D, KC_V, KC_K, KC_H, KC_COMM, ALGR_T(KC_DOT), LT(U_BUTTON,KC_SLSH),\
-U_NP, U_NP, LT(U_FUN,KC_DEL), LT(U_NUM,KC_BSPC), LT(U_SYM,KC_ENT), LT(U_MOUSE,KC_TAB),LT(U_NAV,KC_SPC), LT(U_MEDIA,KC_ESC),U_NP, U_NP
-
-#define MIRYOKU_ALTERNATIVES_BASE_COLEMAKDHK_FLIP \
-KC_Q, KC_W, KC_F, KC_P, KC_B, KC_J, KC_L, KC_U, KC_Y, KC_QUOT, \
-LGUI_T(KC_A), LALT_T(KC_R), LCTL_T(KC_S), LSFT_T(KC_T), KC_G, KC_K, LSFT_T(KC_N), LCTL_T(KC_E), LALT_T(KC_I), LGUI_T(KC_O), \
-LT(U_BUTTON,KC_Z), ALGR_T(KC_X), KC_C, KC_D, KC_V, KC_M, KC_H, KC_COMM, ALGR_T(KC_DOT), LT(U_BUTTON,KC_SLSH),\
-U_NP, U_NP, LT(U_FUN,KC_DEL), LT(U_NUM,KC_BSPC), LT(U_SYM,KC_ENT), LT(U_MOUSE,KC_TAB),LT(U_NAV,KC_SPC), LT(U_MEDIA,KC_ESC),U_NP, U_NP
-
-#define MIRYOKU_ALTERNATIVES_BASE_DVORAK_FLIP \
-KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, \
-LGUI_T(KC_A), LALT_T(KC_O), LCTL_T(KC_E), LSFT_T(KC_U), KC_I, KC_D, LSFT_T(KC_H), LCTL_T(KC_T), LALT_T(KC_N), LGUI_T(KC_S), \
-LT(U_BUTTON,KC_SLSH),ALGR_T(KC_Q), KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, ALGR_T(KC_V), LT(U_BUTTON,KC_Z), \
-U_NP, U_NP, LT(U_FUN,KC_DEL), LT(U_NUM,KC_BSPC), LT(U_SYM,KC_ENT), LT(U_MOUSE,KC_TAB),LT(U_NAV,KC_SPC), LT(U_MEDIA,KC_ESC),U_NP, U_NP
-
-#define MIRYOKU_ALTERNATIVES_BASE_HALMAK_FLIP \
-KC_W, KC_L, KC_R, KC_B, KC_Z, KC_QUOT, KC_Q, KC_U, KC_D, KC_J, \
-LGUI_T(KC_S), LALT_T(KC_H), LCTL_T(KC_N), LSFT_T(KC_T), KC_COMM, KC_DOT, LSFT_T(KC_A), LCTL_T(KC_E), LALT_T(KC_O), LGUI_T(KC_I), \
-LT(U_BUTTON,KC_F), ALGR_T(KC_M), KC_V, KC_C, KC_SLSH, KC_G, KC_P, KC_X, ALGR_T(KC_K), LT(U_BUTTON,KC_Y), \
-U_NP, U_NP, LT(U_FUN,KC_DEL), LT(U_NUM,KC_BSPC), LT(U_SYM,KC_ENT), LT(U_MOUSE,KC_TAB),LT(U_NAV,KC_SPC), LT(U_MEDIA,KC_ESC),U_NP, U_NP
-
-#define MIRYOKU_ALTERNATIVES_BASE_WORKMAN_FLIP \
-KC_Q, KC_D, KC_R, KC_W, KC_B, KC_J, KC_F, KC_U, KC_P, KC_QUOT, \
-LGUI_T(KC_A), LALT_T(KC_S), LCTL_T(KC_H), LSFT_T(KC_T), KC_G, KC_Y, LSFT_T(KC_N), LCTL_T(KC_E), LALT_T(KC_O), LGUI_T(KC_I), \
-LT(U_BUTTON,KC_Z), ALGR_T(KC_X), KC_M, KC_C, KC_V, KC_K, KC_L, KC_COMM, ALGR_T(KC_DOT), LT(U_BUTTON,KC_SLSH),\
-U_NP, U_NP, LT(U_FUN,KC_DEL), LT(U_NUM,KC_BSPC), LT(U_SYM,KC_ENT), LT(U_MOUSE,KC_TAB),LT(U_NAV,KC_SPC), LT(U_MEDIA,KC_ESC),U_NP, U_NP
-
-#define MIRYOKU_ALTERNATIVES_BASE_QWERTY_FLIP \
-KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, \
-LGUI_T(KC_A), LALT_T(KC_S), LCTL_T(KC_D), LSFT_T(KC_F), KC_G, KC_H, LSFT_T(KC_J), LCTL_T(KC_K), LALT_T(KC_L), LGUI_T(KC_QUOT), \
-LT(U_BUTTON,KC_Z), ALGR_T(KC_X), KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, ALGR_T(KC_DOT), LT(U_BUTTON,KC_SLSH),\
-U_NP, U_NP, LT(U_FUN,KC_DEL), LT(U_NUM,KC_BSPC), LT(U_SYM,KC_ENT), LT(U_MOUSE,KC_TAB),LT(U_NAV,KC_SPC), LT(U_MEDIA,KC_ESC),U_NP, U_NP
-
-#define MIRYOKU_ALTERNATIVES_BASE_QWERTZ_FLIP \
-KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Z, KC_U, KC_I, KC_O, KC_P, \
-LGUI_T(KC_A), LALT_T(KC_S), LCTL_T(KC_D), LSFT_T(KC_F), KC_G, KC_H, LSFT_T(KC_J), LCTL_T(KC_K), LALT_T(KC_L), LGUI_T(KC_QUOT), \
-LT(U_BUTTON,KC_Y), ALGR_T(KC_X), KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, ALGR_T(KC_DOT), LT(U_BUTTON,KC_SLSH),\
-U_NP, U_NP, LT(U_FUN,KC_DEL), LT(U_NUM,KC_BSPC), LT(U_SYM,KC_ENT), LT(U_MOUSE,KC_TAB),LT(U_NAV,KC_SPC), LT(U_MEDIA,KC_ESC),U_NP, U_NP
-
-#define MIRYOKU_ALTERNATIVES_BASE_AZERTY \
-KC_A, KC_Z, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, \
-LGUI_T(KC_Q), LALT_T(KC_S), LCTL_T(KC_D), LSFT_T(KC_F), KC_G, KC_H, LSFT_T(KC_J), LCTL_T(KC_K), LALT_T(KC_L), LGUI_T(KC_M), \
-LT(U_BUTTON,KC_W), ALGR_T(KC_X), KC_C, KC_V, KC_B, KC_N, KC_COMM, KC_DOT, ALGR_T(KC_SLSH), LT(U_BUTTON,KC_QUOT),\
-U_NP, U_NP, LT(U_MEDIA,KC_ESC),LT(U_NAV,KC_SPC), LT(U_MOUSE,KC_TAB),LT(U_SYM,KC_ENT), LT(U_NUM,KC_BSPC), LT(U_FUN,KC_DEL), U_NP, U_NP
-
-#define MIRYOKU_ALTERNATIVES_BASE_BEAKL15 \
-KC_Q, KC_H, KC_O, KC_U, KC_X, KC_G, KC_C, KC_R, KC_F, KC_Z, \
-LGUI_T(KC_Y), LALT_T(KC_I), LCTL_T(KC_E), LSFT_T(KC_A), KC_DOT, KC_D, LSFT_T(KC_S), LCTL_T(KC_T), LALT_T(KC_N), LGUI_T(KC_B), \
-LT(U_BUTTON,KC_J), ALGR_T(KC_SLSH), KC_COMM, KC_K, KC_QUOT, KC_W, KC_M, KC_L, ALGR_T(KC_P), LT(U_BUTTON,KC_V), \
-U_NP, U_NP, LT(U_MEDIA,KC_ESC),LT(U_NAV,KC_SPC), LT(U_MOUSE,KC_TAB),LT(U_SYM,KC_ENT), LT(U_NUM,KC_BSPC), LT(U_FUN,KC_DEL), U_NP, U_NP
-
-#define MIRYOKU_ALTERNATIVES_BASE_COLEMAK \
-KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_QUOT, \
-LGUI_T(KC_A), LALT_T(KC_R), LCTL_T(KC_S), LSFT_T(KC_T), KC_D, KC_H, LSFT_T(KC_N), LCTL_T(KC_E), LALT_T(KC_I), LGUI_T(KC_O), \
-LT(U_BUTTON,KC_Z), ALGR_T(KC_X), KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, ALGR_T(KC_DOT), LT(U_BUTTON,KC_SLSH),\
-U_NP, U_NP, LT(U_MEDIA,KC_ESC),LT(U_NAV,KC_SPC), LT(U_MOUSE,KC_TAB),LT(U_SYM,KC_ENT), LT(U_NUM,KC_BSPC), LT(U_FUN,KC_DEL), U_NP, U_NP
-
-#define MIRYOKU_ALTERNATIVES_BASE_COLEMAKDH \
-KC_Q, KC_W, KC_F, KC_P, KC_B, KC_J, KC_L, KC_U, KC_Y, KC_QUOT, \
-LGUI_T(KC_A), LALT_T(KC_R), LCTL_T(KC_S), LSFT_T(KC_T), KC_G, KC_M, LSFT_T(KC_N), LCTL_T(KC_E), LALT_T(KC_I), LGUI_T(KC_O), \
-LT(U_BUTTON,KC_Z), ALGR_T(KC_X), KC_C, KC_D, KC_V, KC_K, KC_H, KC_COMM, ALGR_T(KC_DOT), LT(U_BUTTON,KC_SLSH),\
-U_NP, U_NP, LT(U_MEDIA,KC_ESC),LT(U_NAV,KC_SPC), LT(U_MOUSE,KC_TAB),LT(U_SYM,KC_ENT), LT(U_NUM,KC_BSPC), LT(U_FUN,KC_DEL), U_NP, U_NP
-
-#define MIRYOKU_ALTERNATIVES_BASE_COLEMAKDHK \
-KC_Q, KC_W, KC_F, KC_P, KC_B, KC_J, KC_L, KC_U, KC_Y, KC_QUOT, \
-LGUI_T(KC_A), LALT_T(KC_R), LCTL_T(KC_S), LSFT_T(KC_T), KC_G, KC_K, LSFT_T(KC_N), LCTL_T(KC_E), LALT_T(KC_I), LGUI_T(KC_O), \
-LT(U_BUTTON,KC_Z), ALGR_T(KC_X), KC_C, KC_D, KC_V, KC_M, KC_H, KC_COMM, ALGR_T(KC_DOT), LT(U_BUTTON,KC_SLSH),\
-U_NP, U_NP, LT(U_MEDIA,KC_ESC),LT(U_NAV,KC_SPC), LT(U_MOUSE,KC_TAB),LT(U_SYM,KC_ENT), LT(U_NUM,KC_BSPC), LT(U_FUN,KC_DEL), U_NP, U_NP
-
-#define MIRYOKU_ALTERNATIVES_BASE_DVORAK \
-KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, \
-LGUI_T(KC_A), LALT_T(KC_O), LCTL_T(KC_E), LSFT_T(KC_U), KC_I, KC_D, LSFT_T(KC_H), LCTL_T(KC_T), LALT_T(KC_N), LGUI_T(KC_S), \
-LT(U_BUTTON,KC_SLSH),ALGR_T(KC_Q), KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, ALGR_T(KC_V), LT(U_BUTTON,KC_Z), \
-U_NP, U_NP, LT(U_MEDIA,KC_ESC),LT(U_NAV,KC_SPC), LT(U_MOUSE,KC_TAB),LT(U_SYM,KC_ENT), LT(U_NUM,KC_BSPC), LT(U_FUN,KC_DEL), U_NP, U_NP
-
-#define MIRYOKU_ALTERNATIVES_BASE_HALMAK \
-KC_W, KC_L, KC_R, KC_B, KC_Z, KC_QUOT, KC_Q, KC_U, KC_D, KC_J, \
-LGUI_T(KC_S), LALT_T(KC_H), LCTL_T(KC_N), LSFT_T(KC_T), KC_COMM, KC_DOT, LSFT_T(KC_A), LCTL_T(KC_E), LALT_T(KC_O), LGUI_T(KC_I), \
-LT(U_BUTTON,KC_F), ALGR_T(KC_M), KC_V, KC_C, KC_SLSH, KC_G, KC_P, KC_X, ALGR_T(KC_K), LT(U_BUTTON,KC_Y), \
-U_NP, U_NP, LT(U_MEDIA,KC_ESC),LT(U_NAV,KC_SPC), LT(U_MOUSE,KC_TAB),LT(U_SYM,KC_ENT), LT(U_NUM,KC_BSPC), LT(U_FUN,KC_DEL), U_NP, U_NP
-
-#define MIRYOKU_ALTERNATIVES_BASE_WORKMAN \
-KC_Q, KC_D, KC_R, KC_W, KC_B, KC_J, KC_F, KC_U, KC_P, KC_QUOT, \
-LGUI_T(KC_A), LALT_T(KC_S), LCTL_T(KC_H), LSFT_T(KC_T), KC_G, KC_Y, LSFT_T(KC_N), LCTL_T(KC_E), LALT_T(KC_O), LGUI_T(KC_I), \
-LT(U_BUTTON,KC_Z), ALGR_T(KC_X), KC_M, KC_C, KC_V, KC_K, KC_L, KC_COMM, ALGR_T(KC_DOT), LT(U_BUTTON,KC_SLSH),\
-U_NP, U_NP, LT(U_MEDIA,KC_ESC),LT(U_NAV,KC_SPC), LT(U_MOUSE,KC_TAB),LT(U_SYM,KC_ENT), LT(U_NUM,KC_BSPC), LT(U_FUN,KC_DEL), U_NP, U_NP
-
-#define MIRYOKU_ALTERNATIVES_BASE_QWERTY \
-KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, \
-LGUI_T(KC_A), LALT_T(KC_S), LCTL_T(KC_D), LSFT_T(KC_F), KC_G, KC_H, LSFT_T(KC_J), LCTL_T(KC_K), LALT_T(KC_L), LGUI_T(KC_QUOT), \
-LT(U_BUTTON,KC_Z), ALGR_T(KC_X), KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, ALGR_T(KC_DOT), LT(U_BUTTON,KC_SLSH),\
-U_NP, U_NP, LT(U_MEDIA,KC_ESC),LT(U_NAV,KC_SPC), LT(U_MOUSE,KC_TAB),LT(U_SYM,KC_ENT), LT(U_NUM,KC_BSPC), LT(U_FUN,KC_DEL), U_NP, U_NP
-
-#define MIRYOKU_ALTERNATIVES_BASE_QWERTZ \
-KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Z, KC_U, KC_I, KC_O, KC_P, \
-LGUI_T(KC_A), LALT_T(KC_S), LCTL_T(KC_D), LSFT_T(KC_F), KC_G, KC_H, LSFT_T(KC_J), LCTL_T(KC_K), LALT_T(KC_L), LGUI_T(KC_QUOT), \
-LT(U_BUTTON,KC_Y), ALGR_T(KC_X), KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, ALGR_T(KC_DOT), LT(U_BUTTON,KC_SLSH),\
-U_NP, U_NP, LT(U_MEDIA,KC_ESC),LT(U_NAV,KC_SPC), LT(U_MOUSE,KC_TAB),LT(U_SYM,KC_ENT), LT(U_NUM,KC_BSPC), LT(U_FUN,KC_DEL), U_NP, U_NP
-
-
-#define MIRYOKU_ALTERNATIVES_TAP_AZERTY_FLIP \
-KC_A, KC_Z, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, \
-KC_Q, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_M, \
-KC_W, KC_X, KC_C, KC_V, KC_B, KC_N, KC_COMM, KC_DOT, KC_SLSH, KC_QUOT, \
-U_NP, U_NP, KC_DEL, KC_BSPC, KC_ENT, KC_TAB, KC_SPC, KC_ESC, U_NP, U_NP
-
-#define MIRYOKU_ALTERNATIVES_TAP_BEAKL15_FLIP \
-KC_Q, KC_H, KC_O, KC_U, KC_X, KC_G, KC_C, KC_R, KC_F, KC_Z, \
-KC_Y, KC_I, KC_E, KC_A, KC_DOT, KC_D, KC_S, KC_T, KC_N, KC_B, \
-KC_J, KC_SLSH, KC_COMM, KC_K, KC_QUOT, KC_W, KC_M, KC_L, KC_P, KC_V, \
-U_NP, U_NP, KC_DEL, KC_BSPC, KC_ENT, KC_TAB, KC_SPC, KC_ESC, U_NP, U_NP
-
-#define MIRYOKU_ALTERNATIVES_TAP_COLEMAK_FLIP \
-KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_QUOT, \
-KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, \
-KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, \
-U_NP, U_NP, KC_DEL, KC_BSPC, KC_ENT, KC_TAB, KC_SPC, KC_ESC, U_NP, U_NP
-
-#define MIRYOKU_ALTERNATIVES_TAP_COLEMAKDH_FLIP \
-KC_Q, KC_W, KC_F, KC_P, KC_B, KC_J, KC_L, KC_U, KC_Y, KC_QUOT, \
-KC_A, KC_R, KC_S, KC_T, KC_G, KC_M, KC_N, KC_E, KC_I, KC_O, \
-KC_Z, KC_X, KC_C, KC_D, KC_V, KC_K, KC_H, KC_COMM, KC_DOT, KC_SLSH, \
-U_NP, U_NP, KC_DEL, KC_BSPC, KC_ENT, KC_TAB, KC_SPC, KC_ESC, U_NP, U_NP
-
-#define MIRYOKU_ALTERNATIVES_TAP_COLEMAKDHK_FLIP \
-KC_Q, KC_W, KC_F, KC_P, KC_B, KC_J, KC_L, KC_U, KC_Y, KC_QUOT, \
-KC_A, KC_R, KC_S, KC_T, KC_G, KC_K, KC_N, KC_E, KC_I, KC_O, \
-KC_Z, KC_X, KC_C, KC_D, KC_V, KC_M, KC_H, KC_COMM, KC_DOT, KC_SLSH, \
-U_NP, U_NP, KC_DEL, KC_BSPC, KC_ENT, KC_TAB, KC_SPC, KC_ESC, U_NP, U_NP
-
-#define MIRYOKU_ALTERNATIVES_TAP_DVORAK_FLIP \
-KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, \
-KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, \
-KC_SLSH, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, \
-U_NP, U_NP, KC_DEL, KC_BSPC, KC_ENT, KC_TAB, KC_SPC, KC_ESC, U_NP, U_NP
-
-#define MIRYOKU_ALTERNATIVES_TAP_HALMAK_FLIP \
-KC_W, KC_L, KC_R, KC_B, KC_Z, KC_QUOT, KC_Q, KC_U, KC_D, KC_J, \
-KC_S, KC_H, KC_N, KC_T, KC_COMM, KC_DOT, KC_A, KC_E, KC_O, KC_I, \
-KC_F, KC_M, KC_V, KC_C, KC_SLSH, KC_G, KC_P, KC_X, KC_K, KC_Y, \
-U_NP, U_NP, KC_DEL, KC_BSPC, KC_ENT, KC_TAB, KC_SPC, KC_ESC, U_NP, U_NP
-
-#define MIRYOKU_ALTERNATIVES_TAP_WORKMAN_FLIP \
-KC_Q, KC_D, KC_R, KC_W, KC_B, KC_J, KC_F, KC_U, KC_P, KC_QUOT, \
-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, \
-U_NP, U_NP, KC_DEL, KC_BSPC, KC_ENT, KC_TAB, KC_SPC, KC_ESC, U_NP, U_NP
-
-#define MIRYOKU_ALTERNATIVES_TAP_QWERTY_FLIP \
-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_QUOT, \
-KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, \
-U_NP, U_NP, KC_DEL, KC_BSPC, KC_ENT, KC_TAB, KC_SPC, KC_ESC, U_NP, U_NP
-
-#define MIRYOKU_ALTERNATIVES_TAP_QWERTZ_FLIP \
-KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Z, 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_QUOT, \
-KC_Y, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, \
-U_NP, U_NP, KC_DEL, KC_BSPC, KC_ENT, KC_TAB, KC_SPC, KC_ESC, U_NP, U_NP
-
-#define MIRYOKU_ALTERNATIVES_TAP_AZERTY \
-KC_A, KC_Z, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, \
-KC_Q, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_M, \
-KC_W, KC_X, KC_C, KC_V, KC_B, KC_N, KC_COMM, KC_DOT, KC_SLSH, KC_QUOT, \
-U_NP, U_NP, KC_ESC, KC_SPC, KC_TAB, KC_ENT, KC_BSPC, KC_DEL, U_NP, U_NP
-
-#define MIRYOKU_ALTERNATIVES_TAP_BEAKL15 \
-KC_Q, KC_H, KC_O, KC_U, KC_X, KC_G, KC_C, KC_R, KC_F, KC_Z, \
-KC_Y, KC_I, KC_E, KC_A, KC_DOT, KC_D, KC_S, KC_T, KC_N, KC_B, \
-KC_J, KC_SLSH, KC_COMM, KC_K, KC_QUOT, KC_W, KC_M, KC_L, KC_P, KC_V, \
-U_NP, U_NP, KC_ESC, KC_SPC, KC_TAB, KC_ENT, KC_BSPC, KC_DEL, U_NP, U_NP
-
-#define MIRYOKU_ALTERNATIVES_TAP_COLEMAK \
-KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_QUOT, \
-KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, \
-KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, \
-U_NP, U_NP, KC_ESC, KC_SPC, KC_TAB, KC_ENT, KC_BSPC, KC_DEL, U_NP, U_NP
-
-#define MIRYOKU_ALTERNATIVES_TAP_COLEMAKDH \
-KC_Q, KC_W, KC_F, KC_P, KC_B, KC_J, KC_L, KC_U, KC_Y, KC_QUOT, \
-KC_A, KC_R, KC_S, KC_T, KC_G, KC_M, KC_N, KC_E, KC_I, KC_O, \
-KC_Z, KC_X, KC_C, KC_D, KC_V, KC_K, KC_H, KC_COMM, KC_DOT, KC_SLSH, \
-U_NP, U_NP, KC_ESC, KC_SPC, KC_TAB, KC_ENT, KC_BSPC, KC_DEL, U_NP, U_NP
-
-#define MIRYOKU_ALTERNATIVES_TAP_COLEMAKDHK \
-KC_Q, KC_W, KC_F, KC_P, KC_B, KC_J, KC_L, KC_U, KC_Y, KC_QUOT, \
-KC_A, KC_R, KC_S, KC_T, KC_G, KC_K, KC_N, KC_E, KC_I, KC_O, \
-KC_Z, KC_X, KC_C, KC_D, KC_V, KC_M, KC_H, KC_COMM, KC_DOT, KC_SLSH, \
-U_NP, U_NP, KC_ESC, KC_SPC, KC_TAB, KC_ENT, KC_BSPC, KC_DEL, U_NP, U_NP
-
-#define MIRYOKU_ALTERNATIVES_TAP_DVORAK \
-KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, \
-KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, \
-KC_SLSH, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, \
-U_NP, U_NP, KC_ESC, KC_SPC, KC_TAB, KC_ENT, KC_BSPC, KC_DEL, U_NP, U_NP
-
-#define MIRYOKU_ALTERNATIVES_TAP_HALMAK \
-KC_W, KC_L, KC_R, KC_B, KC_Z, KC_QUOT, KC_Q, KC_U, KC_D, KC_J, \
-KC_S, KC_H, KC_N, KC_T, KC_COMM, KC_DOT, KC_A, KC_E, KC_O, KC_I, \
-KC_F, KC_M, KC_V, KC_C, KC_SLSH, KC_G, KC_P, KC_X, KC_K, KC_Y, \
-U_NP, U_NP, KC_ESC, KC_SPC, KC_TAB, KC_ENT, KC_BSPC, KC_DEL, U_NP, U_NP
-
-#define MIRYOKU_ALTERNATIVES_TAP_WORKMAN \
-KC_Q, KC_D, KC_R, KC_W, KC_B, KC_J, KC_F, KC_U, KC_P, KC_QUOT, \
-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, \
-U_NP, U_NP, KC_ESC, KC_SPC, KC_TAB, KC_ENT, KC_BSPC, KC_DEL, U_NP, U_NP
-
-#define MIRYOKU_ALTERNATIVES_TAP_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_QUOT, \
-KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, \
-U_NP, U_NP, KC_ESC, KC_SPC, KC_TAB, KC_ENT, KC_BSPC, KC_DEL, U_NP, U_NP
-
-#define MIRYOKU_ALTERNATIVES_TAP_QWERTZ \
-KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Z, 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_QUOT, \
-KC_Y, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, \
-U_NP, U_NP, KC_ESC, KC_SPC, KC_TAB, KC_ENT, KC_BSPC, KC_DEL, U_NP, U_NP
-
-
-#define MIRYOKU_ALTERNATIVES_NAV_INVERTEDT_FLIP \
-KC_PGUP, KC_HOME, KC_UP, KC_END, KC_INS, U_NA, TD(U_TD_U_BASE), TD(U_TD_U_EXTRA), TD(U_TD_U_TAP), TD(U_TD_BOOT), \
-KC_PGDN, KC_LEFT, KC_DOWN, KC_RGHT, CW_TOGG, U_NA, KC_LSFT, KC_LCTL, KC_LALT, KC_LGUI, \
-U_UND, U_CUT, U_CPY, U_PST, U_RDO, U_NA, TD(U_TD_U_NAV), TD(U_TD_U_NUM), KC_ALGR, U_NA, \
-U_NP, U_NP, KC_DEL, KC_BSPC, KC_ENT, U_NA, U_NA, U_NA, U_NP, U_NP
-
-#define MIRYOKU_ALTERNATIVES_NAV_FLIP \
-KC_HOME, KC_PGDN, KC_PGUP, KC_END, KC_INS, U_NA, TD(U_TD_U_BASE), TD(U_TD_U_EXTRA), TD(U_TD_U_TAP), TD(U_TD_BOOT), \
-KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, CW_TOGG, U_NA, KC_LSFT, KC_LCTL, KC_LALT, KC_LGUI, \
-U_UND, U_CUT, U_CPY, U_PST, U_RDO, U_NA, TD(U_TD_U_NAV), TD(U_TD_U_NUM), KC_ALGR, U_NA, \
-U_NP, U_NP, KC_DEL, KC_BSPC, KC_ENT, U_NA, U_NA, U_NA, U_NP, U_NP
-
-#define MIRYOKU_ALTERNATIVES_NAV_INVERTEDT \
-TD(U_TD_BOOT), TD(U_TD_U_TAP), TD(U_TD_U_EXTRA), TD(U_TD_U_BASE), U_NA, KC_INS, KC_HOME, KC_UP, KC_END, KC_PGUP, \
-KC_LGUI, KC_LALT, KC_LCTL, KC_LSFT, U_NA, CW_TOGG, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, \
-U_NA, KC_ALGR, TD(U_TD_U_NUM), TD(U_TD_U_NAV), U_NA, U_RDO, U_PST, U_CPY, U_CUT, U_UND, \
-U_NP, U_NP, U_NA, U_NA, U_NA, KC_ENT, KC_BSPC, KC_DEL, U_NP, U_NP
-
-#define MIRYOKU_ALTERNATIVES_NAV_VI \
-TD(U_TD_BOOT), TD(U_TD_U_TAP), TD(U_TD_U_EXTRA), TD(U_TD_U_BASE), U_NA, U_RDO, U_PST, U_CPY, U_CUT, U_UND, \
-KC_LGUI, KC_LALT, KC_LCTL, KC_LSFT, U_NA, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, CW_TOGG, \
-U_NA, KC_ALGR, TD(U_TD_U_NUM), TD(U_TD_U_NAV), U_NA, KC_HOME, KC_PGDN, KC_PGUP, KC_END, KC_INS, \
-U_NP, U_NP, U_NA, U_NA, U_NA, KC_ENT, KC_BSPC, KC_DEL, U_NP, U_NP
-
-#define MIRYOKU_ALTERNATIVES_NAV \
-TD(U_TD_BOOT), TD(U_TD_U_TAP), TD(U_TD_U_EXTRA), TD(U_TD_U_BASE), U_NA, U_RDO, U_PST, U_CPY, U_CUT, U_UND, \
-KC_LGUI, KC_LALT, KC_LCTL, KC_LSFT, U_NA, CW_TOGG, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, \
-U_NA, KC_ALGR, TD(U_TD_U_NUM), TD(U_TD_U_NAV), U_NA, KC_INS, KC_HOME, KC_PGDN, KC_PGUP, KC_END, \
-U_NP, U_NP, U_NA, U_NA, U_NA, KC_ENT, KC_BSPC, KC_DEL, U_NP, U_NP
-
-
-#define MIRYOKU_ALTERNATIVES_MOUSE_INVERTEDT_FLIP \
-KC_WH_U, KC_WH_L, KC_MS_U, KC_WH_R, U_NU, U_NA, TD(U_TD_U_BASE), TD(U_TD_U_EXTRA), TD(U_TD_U_TAP), TD(U_TD_BOOT), \
-KC_WH_D, KC_MS_L, KC_MS_D, KC_MS_R, U_NU, U_NA, KC_LSFT, KC_LCTL, KC_LALT, KC_LGUI, \
-U_UND, U_CUT, U_CPY, U_PST, U_RDO, U_NA, TD(U_TD_U_MOUSE), TD(U_TD_U_SYM), KC_ALGR, U_NA, \
-U_NP, U_NP, KC_BTN3, KC_BTN1, KC_BTN2, U_NA, U_NA, U_NA, U_NP, U_NP
-
-#define MIRYOKU_ALTERNATIVES_MOUSE_FLIP \
-KC_WH_L, KC_WH_D, KC_WH_U, KC_WH_R, U_NU, U_NA, TD(U_TD_U_BASE), TD(U_TD_U_EXTRA), TD(U_TD_U_TAP), TD(U_TD_BOOT), \
-KC_MS_L, KC_MS_D, KC_MS_U, KC_MS_R, U_NU, U_NA, KC_LSFT, KC_LCTL, KC_LALT, KC_LGUI, \
-U_UND, U_CUT, U_CPY, U_PST, U_RDO, U_NA, TD(U_TD_U_MOUSE), TD(U_TD_U_SYM), KC_ALGR, U_NA, \
-U_NP, U_NP, KC_BTN3, KC_BTN1, KC_BTN2, U_NA, U_NA, U_NA, U_NP, U_NP
-
-#define MIRYOKU_ALTERNATIVES_MOUSE_INVERTEDT \
-TD(U_TD_BOOT), TD(U_TD_U_TAP), TD(U_TD_U_EXTRA), TD(U_TD_U_BASE), U_NA, U_NU, KC_WH_L, KC_MS_U, KC_WH_R, KC_WH_U, \
-KC_LGUI, KC_LALT, KC_LCTL, KC_LSFT, U_NA, U_NU, KC_MS_L, KC_MS_D, KC_MS_R, KC_WH_D, \
-U_NA, KC_ALGR, TD(U_TD_U_SYM), TD(U_TD_U_MOUSE), U_NA, U_RDO, U_PST, U_CPY, U_CUT, U_UND, \
-U_NP, U_NP, U_NA, U_NA, U_NA, KC_BTN2, KC_BTN1, KC_BTN3, U_NP, U_NP
-
-#define MIRYOKU_ALTERNATIVES_MOUSE_VI \
-TD(U_TD_BOOT), TD(U_TD_U_TAP), TD(U_TD_U_EXTRA), TD(U_TD_U_BASE), U_NA, U_RDO, U_PST, U_CPY, U_CUT, U_UND, \
-KC_LGUI, KC_LALT, KC_LCTL, KC_LSFT, U_NA, KC_MS_L, KC_MS_D, KC_MS_U, KC_MS_R, U_NU, \
-U_NA, KC_ALGR, TD(U_TD_U_SYM), TD(U_TD_U_MOUSE), U_NA, KC_WH_L, KC_WH_D, KC_WH_U, KC_WH_R, U_NU, \
-U_NP, U_NP, U_NA, U_NA, U_NA, KC_BTN2, KC_BTN1, KC_BTN3, U_NP, U_NP
-
-#define MIRYOKU_ALTERNATIVES_MOUSE \
-TD(U_TD_BOOT), TD(U_TD_U_TAP), TD(U_TD_U_EXTRA), TD(U_TD_U_BASE), U_NA, U_RDO, U_PST, U_CPY, U_CUT, U_UND, \
-KC_LGUI, KC_LALT, KC_LCTL, KC_LSFT, U_NA, U_NU, KC_MS_L, KC_MS_D, KC_MS_U, KC_MS_R, \
-U_NA, KC_ALGR, TD(U_TD_U_SYM), TD(U_TD_U_MOUSE), U_NA, U_NU, KC_WH_L, KC_WH_D, KC_WH_U, KC_WH_R, \
-U_NP, U_NP, U_NA, U_NA, U_NA, KC_BTN2, KC_BTN1, KC_BTN3, U_NP, U_NP
-
-
-#define MIRYOKU_ALTERNATIVES_MEDIA_INVERTEDT_FLIP \
-RGB_HUI, RGB_SAI, KC_VOLU, RGB_VAI, RGB_TOG, U_NA, TD(U_TD_U_BASE), TD(U_TD_U_EXTRA), TD(U_TD_U_TAP), TD(U_TD_BOOT), \
-RGB_MOD, KC_MPRV, KC_VOLD, KC_MNXT, U_NU, U_NA, KC_LSFT, KC_LCTL, KC_LALT, KC_LGUI, \
-U_NU, U_NU, U_NU, U_NU, OU_AUTO, U_NA, TD(U_TD_U_MEDIA), TD(U_TD_U_FUN), KC_ALGR, U_NA, \
-U_NP, U_NP, KC_MUTE, KC_MPLY, KC_MSTP, U_NA, U_NA, U_NA, U_NP, U_NP
-
-#define MIRYOKU_ALTERNATIVES_MEDIA_FLIP \
-RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, RGB_TOG, U_NA, TD(U_TD_U_BASE), TD(U_TD_U_EXTRA), TD(U_TD_U_TAP), TD(U_TD_BOOT), \
-KC_MPRV, KC_VOLD, KC_VOLU, KC_MNXT, U_NU, U_NA, KC_LSFT, KC_LCTL, KC_LALT, KC_LGUI, \
-U_NU, U_NU, U_NU, U_NU, OU_AUTO, U_NA, TD(U_TD_U_MEDIA), TD(U_TD_U_FUN), KC_ALGR, U_NA, \
-U_NP, U_NP, KC_MUTE, KC_MPLY, KC_MSTP, U_NA, U_NA, U_NA, U_NP, U_NP
-
-#define MIRYOKU_ALTERNATIVES_MEDIA_INVERTEDT \
-TD(U_TD_BOOT), TD(U_TD_U_TAP), TD(U_TD_U_EXTRA), TD(U_TD_U_BASE), U_NA, RGB_TOG, RGB_MOD, KC_VOLU, RGB_HUI, RGB_SAI, \
-KC_LGUI, KC_LALT, KC_LCTL, KC_LSFT, U_NA, U_NU, KC_MPRV, KC_VOLD, KC_MNXT, RGB_VAI, \
-U_NA, KC_ALGR, TD(U_TD_U_FUN), TD(U_TD_U_MEDIA), U_NA, OU_AUTO, U_NU, U_NU, U_NU, U_NU, \
-U_NP, U_NP, U_NA, U_NA, U_NA, KC_MSTP, KC_MPLY, KC_MUTE, U_NP, U_NP
-
-#define MIRYOKU_ALTERNATIVES_MEDIA_VI \
-TD(U_TD_BOOT), TD(U_TD_U_TAP), TD(U_TD_U_EXTRA), TD(U_TD_U_BASE), U_NA, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, RGB_TOG, \
-KC_LGUI, KC_LALT, KC_LCTL, KC_LSFT, U_NA, KC_MPRV, KC_VOLD, KC_VOLU, KC_MNXT, U_NU, \
-U_NA, KC_ALGR, TD(U_TD_U_FUN), TD(U_TD_U_MEDIA), U_NA, U_NU, U_NU, U_NU, U_NU, OU_AUTO, \
-U_NP, U_NP, U_NA, U_NA, U_NA, KC_MSTP, KC_MPLY, KC_MUTE, U_NP, U_NP
-
-#define MIRYOKU_ALTERNATIVES_MEDIA \
-TD(U_TD_BOOT), TD(U_TD_U_TAP), TD(U_TD_U_EXTRA), TD(U_TD_U_BASE), U_NA, RGB_TOG, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, \
-KC_LGUI, KC_LALT, KC_LCTL, KC_LSFT, U_NA, U_NU, KC_MPRV, KC_VOLD, KC_VOLU, KC_MNXT, \
-U_NA, KC_ALGR, TD(U_TD_U_FUN), TD(U_TD_U_MEDIA), U_NA, OU_AUTO, U_NU, U_NU, U_NU, U_NU, \
-U_NP, U_NP, U_NA, U_NA, U_NA, KC_MSTP, KC_MPLY, KC_MUTE, U_NP, U_NP
-
-
-#define MIRYOKU_ALTERNATIVES_NUM_FLIP \
-TD(U_TD_BOOT), TD(U_TD_U_TAP), TD(U_TD_U_EXTRA), TD(U_TD_U_BASE), U_NA, KC_LBRC, KC_7, KC_8, KC_9, KC_RBRC, \
-KC_LGUI, KC_LALT, KC_LCTL, KC_LSFT, U_NA, KC_EQL, KC_4, KC_5, KC_6, KC_SCLN, \
-U_NA, KC_ALGR, TD(U_TD_U_NAV), TD(U_TD_U_NUM), U_NA, KC_BSLS, KC_1, KC_2, KC_3, KC_GRV, \
-U_NP, U_NP, U_NA, U_NA, U_NA, KC_MINS, KC_0, KC_DOT, U_NP, U_NP
-
-#define MIRYOKU_ALTERNATIVES_NUM \
-KC_LBRC, KC_7, KC_8, KC_9, KC_RBRC, U_NA, TD(U_TD_U_BASE), TD(U_TD_U_EXTRA), TD(U_TD_U_TAP), TD(U_TD_BOOT), \
-KC_SCLN, KC_4, KC_5, KC_6, KC_EQL, U_NA, KC_LSFT, KC_LCTL, KC_LALT, KC_LGUI, \
-KC_GRV, KC_1, KC_2, KC_3, KC_BSLS, U_NA, TD(U_TD_U_NUM), TD(U_TD_U_NAV), KC_ALGR, U_NA, \
-U_NP, U_NP, KC_DOT, KC_0, KC_MINS, U_NA, U_NA, U_NA, U_NP, U_NP
-
-
-#define MIRYOKU_ALTERNATIVES_SYM_FLIP \
-TD(U_TD_BOOT), TD(U_TD_U_TAP), TD(U_TD_U_EXTRA), TD(U_TD_U_BASE), U_NA, KC_LCBR, KC_AMPR, KC_ASTR, KC_LPRN, KC_RCBR, \
-KC_LGUI, KC_LALT, KC_LCTL, KC_LSFT, U_NA, KC_PLUS, KC_DLR, KC_PERC, KC_CIRC, KC_COLN, \
-U_NA, KC_ALGR, TD(U_TD_U_MOUSE), TD(U_TD_U_SYM), U_NA, KC_PIPE, KC_EXLM, KC_AT, KC_HASH, KC_TILD, \
-U_NP, U_NP, U_NA, U_NA, U_NA, KC_UNDS, KC_LPRN, KC_RPRN, U_NP, U_NP
-
-#define MIRYOKU_ALTERNATIVES_SYM \
-KC_LCBR, KC_AMPR, KC_ASTR, KC_LPRN, KC_RCBR, U_NA, TD(U_TD_U_BASE), TD(U_TD_U_EXTRA), TD(U_TD_U_TAP), TD(U_TD_BOOT), \
-KC_COLN, KC_DLR, KC_PERC, KC_CIRC, KC_PLUS, U_NA, KC_LSFT, KC_LCTL, KC_LALT, KC_LGUI, \
-KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_PIPE, U_NA, TD(U_TD_U_SYM), TD(U_TD_U_MOUSE), KC_ALGR, U_NA, \
-U_NP, U_NP, KC_LPRN, KC_RPRN, KC_UNDS, U_NA, U_NA, U_NA, U_NP, U_NP
-
-
-#define MIRYOKU_ALTERNATIVES_FUN_FLIP \
-TD(U_TD_BOOT), TD(U_TD_U_TAP), TD(U_TD_U_EXTRA), TD(U_TD_U_BASE), U_NA, KC_PSCR, KC_F7, KC_F8, KC_F9, KC_F12, \
-KC_LGUI, KC_LALT, KC_LCTL, KC_LSFT, U_NA, KC_SCRL, KC_F4, KC_F5, KC_F6, KC_F11, \
-U_NA, KC_ALGR, TD(U_TD_U_MEDIA), TD(U_TD_U_FUN), U_NA, KC_PAUS, KC_F1, KC_F2, KC_F3, KC_F10, \
-U_NP, U_NP, U_NA, U_NA, U_NA, KC_TAB, KC_SPC, KC_APP, U_NP, U_NP
-
-#define MIRYOKU_ALTERNATIVES_FUN \
-KC_F12, KC_F7, KC_F8, KC_F9, KC_PSCR, U_NA, TD(U_TD_U_BASE), TD(U_TD_U_EXTRA), TD(U_TD_U_TAP), TD(U_TD_BOOT), \
-KC_F11, KC_F4, KC_F5, KC_F6, KC_SCRL, U_NA, KC_LSFT, KC_LCTL, KC_LALT, KC_LGUI, \
-KC_F10, KC_F1, KC_F2, KC_F3, KC_PAUS, U_NA, TD(U_TD_U_FUN), TD(U_TD_U_MEDIA), KC_ALGR, U_NA, \
-U_NP, U_NP, KC_APP, KC_SPC, KC_TAB, U_NA, U_NA, U_NA, U_NP, U_NP
-
-
-#define MIRYOKU_ALTERNATIVES_BUTTON \
-U_UND, U_CUT, U_CPY, U_PST, U_RDO, U_RDO, U_PST, U_CPY, U_CUT, U_UND, \
-KC_LGUI, KC_LALT, KC_LCTL, KC_LSFT, U_NU, U_NU, KC_LSFT, KC_LCTL, KC_LALT, KC_LGUI, \
-U_UND, U_CUT, U_CPY, U_PST, U_RDO, U_RDO, U_PST, U_CPY, U_CUT, U_UND, \
-U_NP, U_NP, KC_BTN3, KC_BTN1, KC_BTN2, KC_BTN2, KC_BTN1, KC_BTN3, U_NP, U_NP
diff --git a/users/manna-harbour_miryoku/miryoku_babel/miryoku_layer_list.h b/users/manna-harbour_miryoku/miryoku_babel/miryoku_layer_list.h
deleted file mode 100644
index adac139c1c..0000000000
--- a/users/manna-harbour_miryoku/miryoku_babel/miryoku_layer_list.h
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright 2022 Manna Harbour
-// https://github.com/manna-harbour/miryoku
-// generated -*- buffer-read-only: t -*-
-
-// 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
-
-#if !defined (MIRYOKU_LAYER_LIST)
-
-#define MIRYOKU_LAYER_LIST \
-MIRYOKU_X(BASE, "Base") \
-MIRYOKU_X(EXTRA, "Extra") \
-MIRYOKU_X(TAP, "Tap") \
-MIRYOKU_X(BUTTON, "Button") \
-MIRYOKU_X(NAV, "Nav") \
-MIRYOKU_X(MOUSE, "Mouse") \
-MIRYOKU_X(MEDIA, "Media") \
-MIRYOKU_X(NUM, "Num") \
-MIRYOKU_X(SYM, "Sym") \
-MIRYOKU_X(FUN, "Fun")
-
-#endif
diff --git a/users/manna-harbour_miryoku/miryoku_babel/miryoku_layer_selection.h b/users/manna-harbour_miryoku/miryoku_babel/miryoku_layer_selection.h
deleted file mode 100644
index 609186c480..0000000000
--- a/users/manna-harbour_miryoku/miryoku_babel/miryoku_layer_selection.h
+++ /dev/null
@@ -1,277 +0,0 @@
-// Copyright 2019 Manna Harbour
-// https://github.com/manna-harbour/miryoku
-// generated -*- buffer-read-only: t -*-
-
-// 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 "miryoku_layer_alternatives.h"
-
-#if !defined(MIRYOKU_LAYER_BASE)
- #if defined (MIRYOKU_LAYERS_FLIP)
- #if defined (MIRYOKU_ALPHAS_AZERTY)
- #define MIRYOKU_LAYER_BASE MIRYOKU_ALTERNATIVES_BASE_AZERTY_FLIP
- #elif defined (MIRYOKU_ALPHAS_BEAKL15)
- #define MIRYOKU_LAYER_BASE MIRYOKU_ALTERNATIVES_BASE_BEAKL15_FLIP
- #elif defined (MIRYOKU_ALPHAS_COLEMAK)
- #define MIRYOKU_LAYER_BASE MIRYOKU_ALTERNATIVES_BASE_COLEMAK_FLIP
- #elif defined (MIRYOKU_ALPHAS_COLEMAKDH)
- #define MIRYOKU_LAYER_BASE MIRYOKU_ALTERNATIVES_BASE_COLEMAKDH_FLIP
- #elif defined (MIRYOKU_ALPHAS_COLEMAKDHK)
- #define MIRYOKU_LAYER_BASE MIRYOKU_ALTERNATIVES_BASE_COLEMAKDHK_FLIP
- #elif defined (MIRYOKU_ALPHAS_DVORAK)
- #define MIRYOKU_LAYER_BASE MIRYOKU_ALTERNATIVES_BASE_DVORAK_FLIP
- #elif defined (MIRYOKU_ALPHAS_HALMAK)
- #define MIRYOKU_LAYER_BASE MIRYOKU_ALTERNATIVES_BASE_HALMAK_FLIP
- #elif defined (MIRYOKU_ALPHAS_WORKMAN)
- #define MIRYOKU_LAYER_BASE MIRYOKU_ALTERNATIVES_BASE_WORKMAN_FLIP
- #elif defined (MIRYOKU_ALPHAS_QWERTY)
- #define MIRYOKU_LAYER_BASE MIRYOKU_ALTERNATIVES_BASE_QWERTY_FLIP
- #elif defined (MIRYOKU_ALPHAS_QWERTZ)
- #define MIRYOKU_LAYER_BASE MIRYOKU_ALTERNATIVES_BASE_QWERTZ_FLIP
- #else
- #define MIRYOKU_LAYER_BASE MIRYOKU_ALTERNATIVES_BASE_COLEMAKDH_FLIP
- #endif
- #else
- #if defined (MIRYOKU_ALPHAS_AZERTY)
- #define MIRYOKU_LAYER_BASE MIRYOKU_ALTERNATIVES_BASE_AZERTY
- #elif defined (MIRYOKU_ALPHAS_BEAKL15)
- #define MIRYOKU_LAYER_BASE MIRYOKU_ALTERNATIVES_BASE_BEAKL15
- #elif defined (MIRYOKU_ALPHAS_COLEMAK)
- #define MIRYOKU_LAYER_BASE MIRYOKU_ALTERNATIVES_BASE_COLEMAK
- #elif defined (MIRYOKU_ALPHAS_COLEMAKDH)
- #define MIRYOKU_LAYER_BASE MIRYOKU_ALTERNATIVES_BASE_COLEMAKDH
- #elif defined (MIRYOKU_ALPHAS_COLEMAKDHK)
- #define MIRYOKU_LAYER_BASE MIRYOKU_ALTERNATIVES_BASE_COLEMAKDHK
- #elif defined (MIRYOKU_ALPHAS_DVORAK)
- #define MIRYOKU_LAYER_BASE MIRYOKU_ALTERNATIVES_BASE_DVORAK
- #elif defined (MIRYOKU_ALPHAS_HALMAK)
- #define MIRYOKU_LAYER_BASE MIRYOKU_ALTERNATIVES_BASE_HALMAK
- #elif defined (MIRYOKU_ALPHAS_WORKMAN)
- #define MIRYOKU_LAYER_BASE MIRYOKU_ALTERNATIVES_BASE_WORKMAN
- #elif defined (MIRYOKU_ALPHAS_QWERTY)
- #define MIRYOKU_LAYER_BASE MIRYOKU_ALTERNATIVES_BASE_QWERTY
- #elif defined (MIRYOKU_ALPHAS_QWERTZ)
- #define MIRYOKU_LAYER_BASE MIRYOKU_ALTERNATIVES_BASE_QWERTZ
- #else
- #define MIRYOKU_LAYER_BASE MIRYOKU_ALTERNATIVES_BASE_COLEMAKDH
- #endif
- #endif
-#endif
-#if !defined(MIRYOKU_LAYERMAPPING_BASE)
- #define MIRYOKU_LAYERMAPPING_BASE MIRYOKU_MAPPING
-#endif
-
-#if !defined(MIRYOKU_LAYER_EXTRA)
- #if defined (MIRYOKU_LAYERS_FLIP)
- #if defined (MIRYOKU_EXTRA_AZERTY)
- #define MIRYOKU_LAYER_EXTRA MIRYOKU_ALTERNATIVES_BASE_AZERTY_FLIP
- #elif defined (MIRYOKU_EXTRA_BEAKL15)
- #define MIRYOKU_LAYER_EXTRA MIRYOKU_ALTERNATIVES_BASE_BEAKL15_FLIP
- #elif defined (MIRYOKU_EXTRA_COLEMAK)
- #define MIRYOKU_LAYER_EXTRA MIRYOKU_ALTERNATIVES_BASE_COLEMAK_FLIP
- #elif defined (MIRYOKU_EXTRA_COLEMAKDH)
- #define MIRYOKU_LAYER_EXTRA MIRYOKU_ALTERNATIVES_BASE_COLEMAKDH_FLIP
- #elif defined (MIRYOKU_EXTRA_COLEMAKDHK)
- #define MIRYOKU_LAYER_EXTRA MIRYOKU_ALTERNATIVES_BASE_COLEMAKDHK_FLIP
- #elif defined (MIRYOKU_EXTRA_DVORAK)
- #define MIRYOKU_LAYER_EXTRA MIRYOKU_ALTERNATIVES_BASE_DVORAK_FLIP
- #elif defined (MIRYOKU_EXTRA_HALMAK)
- #define MIRYOKU_LAYER_EXTRA MIRYOKU_ALTERNATIVES_BASE_HALMAK_FLIP
- #elif defined (MIRYOKU_EXTRA_WORKMAN)
- #define MIRYOKU_LAYER_EXTRA MIRYOKU_ALTERNATIVES_BASE_WORKMAN_FLIP
- #elif defined (MIRYOKU_EXTRA_QWERTY)
- #define MIRYOKU_LAYER_EXTRA MIRYOKU_ALTERNATIVES_BASE_QWERTY_FLIP
- #elif defined (MIRYOKU_EXTRA_QWERTZ)
- #define MIRYOKU_LAYER_EXTRA MIRYOKU_ALTERNATIVES_BASE_QWERTZ_FLIP
- #else
- #define MIRYOKU_LAYER_EXTRA MIRYOKU_ALTERNATIVES_BASE_QWERTY_FLIP
- #endif
- #else
- #if defined (MIRYOKU_EXTRA_AZERTY)
- #define MIRYOKU_LAYER_EXTRA MIRYOKU_ALTERNATIVES_BASE_AZERTY
- #elif defined (MIRYOKU_EXTRA_BEAKL15)
- #define MIRYOKU_LAYER_EXTRA MIRYOKU_ALTERNATIVES_BASE_BEAKL15
- #elif defined (MIRYOKU_EXTRA_COLEMAK)
- #define MIRYOKU_LAYER_EXTRA MIRYOKU_ALTERNATIVES_BASE_COLEMAK
- #elif defined (MIRYOKU_EXTRA_COLEMAKDH)
- #define MIRYOKU_LAYER_EXTRA MIRYOKU_ALTERNATIVES_BASE_COLEMAKDH
- #elif defined (MIRYOKU_EXTRA_COLEMAKDHK)
- #define MIRYOKU_LAYER_EXTRA MIRYOKU_ALTERNATIVES_BASE_COLEMAKDHK
- #elif defined (MIRYOKU_EXTRA_DVORAK)
- #define MIRYOKU_LAYER_EXTRA MIRYOKU_ALTERNATIVES_BASE_DVORAK
- #elif defined (MIRYOKU_EXTRA_HALMAK)
- #define MIRYOKU_LAYER_EXTRA MIRYOKU_ALTERNATIVES_BASE_HALMAK
- #elif defined (MIRYOKU_EXTRA_WORKMAN)
- #define MIRYOKU_LAYER_EXTRA MIRYOKU_ALTERNATIVES_BASE_WORKMAN
- #elif defined (MIRYOKU_EXTRA_QWERTY)
- #define MIRYOKU_LAYER_EXTRA MIRYOKU_ALTERNATIVES_BASE_QWERTY
- #elif defined (MIRYOKU_EXTRA_QWERTZ)
- #define MIRYOKU_LAYER_EXTRA MIRYOKU_ALTERNATIVES_BASE_QWERTZ
- #else
- #define MIRYOKU_LAYER_EXTRA MIRYOKU_ALTERNATIVES_BASE_QWERTY
- #endif
- #endif
-#endif
-#if !defined(MIRYOKU_LAYERMAPPING_EXTRA)
- #define MIRYOKU_LAYERMAPPING_EXTRA MIRYOKU_MAPPING
-#endif
-
-#if !defined(MIRYOKU_LAYER_TAP)
- #if defined (MIRYOKU_LAYERS_FLIP)
- #if defined (MIRYOKU_TAP_AZERTY)
- #define MIRYOKU_LAYER_TAP MIRYOKU_ALTERNATIVES_TAP_AZERTY_FLIP
- #elif defined (MIRYOKU_TAP_BEAKL15)
- #define MIRYOKU_LAYER_TAP MIRYOKU_ALTERNATIVES_TAP_BEAKL15_FLIP
- #elif defined (MIRYOKU_TAP_COLEMAK)
- #define MIRYOKU_LAYER_TAP MIRYOKU_ALTERNATIVES_TAP_COLEMAK_FLIP
- #elif defined (MIRYOKU_TAP_COLEMAKDH)
- #define MIRYOKU_LAYER_TAP MIRYOKU_ALTERNATIVES_TAP_COLEMAKDH_FLIP
- #elif defined (MIRYOKU_TAP_COLEMAKDHK)
- #define MIRYOKU_LAYER_TAP MIRYOKU_ALTERNATIVES_TAP_COLEMAKDHK_FLIP
- #elif defined (MIRYOKU_TAP_DVORAK)
- #define MIRYOKU_LAYER_TAP MIRYOKU_ALTERNATIVES_TAP_DVORAK_FLIP
- #elif defined (MIRYOKU_TAP_HALMAK)
- #define MIRYOKU_LAYER_TAP MIRYOKU_ALTERNATIVES_TAP_HALMAK_FLIP
- #elif defined (MIRYOKU_TAP_WORKMAN)
- #define MIRYOKU_LAYER_TAP MIRYOKU_ALTERNATIVES_TAP_WORKMAN_FLIP
- #elif defined (MIRYOKU_TAP_QWERTY)
- #define MIRYOKU_LAYER_TAP MIRYOKU_ALTERNATIVES_TAP_QWERTY_FLIP
- #elif defined (MIRYOKU_TAP_QWERTZ)
- #define MIRYOKU_LAYER_TAP MIRYOKU_ALTERNATIVES_TAP_QWERTZ_FLIP
- #else
- #define MIRYOKU_LAYER_TAP MIRYOKU_ALTERNATIVES_TAP_COLEMAKDH_FLIP
- #endif
- #else
- #if defined (MIRYOKU_TAP_AZERTY)
- #define MIRYOKU_LAYER_TAP MIRYOKU_ALTERNATIVES_TAP_AZERTY
- #elif defined (MIRYOKU_TAP_BEAKL15)
- #define MIRYOKU_LAYER_TAP MIRYOKU_ALTERNATIVES_TAP_BEAKL15
- #elif defined (MIRYOKU_TAP_COLEMAK)
- #define MIRYOKU_LAYER_TAP MIRYOKU_ALTERNATIVES_TAP_COLEMAK
- #elif defined (MIRYOKU_TAP_COLEMAKDH)
- #define MIRYOKU_LAYER_TAP MIRYOKU_ALTERNATIVES_TAP_COLEMAKDH
- #elif defined (MIRYOKU_TAP_COLEMAKDHK)
- #define MIRYOKU_LAYER_TAP MIRYOKU_ALTERNATIVES_TAP_COLEMAKDHK
- #elif defined (MIRYOKU_TAP_DVORAK)
- #define MIRYOKU_LAYER_TAP MIRYOKU_ALTERNATIVES_TAP_DVORAK
- #elif defined (MIRYOKU_TAP_HALMAK)
- #define MIRYOKU_LAYER_TAP MIRYOKU_ALTERNATIVES_TAP_HALMAK
- #elif defined (MIRYOKU_TAP_WORKMAN)
- #define MIRYOKU_LAYER_TAP MIRYOKU_ALTERNATIVES_TAP_WORKMAN
- #elif defined (MIRYOKU_TAP_QWERTY)
- #define MIRYOKU_LAYER_TAP MIRYOKU_ALTERNATIVES_TAP_QWERTY
- #elif defined (MIRYOKU_TAP_QWERTZ)
- #define MIRYOKU_LAYER_TAP MIRYOKU_ALTERNATIVES_TAP_QWERTZ
- #else
- #define MIRYOKU_LAYER_TAP MIRYOKU_ALTERNATIVES_TAP_COLEMAKDH
- #endif
- #endif
-#endif
-#if !defined(MIRYOKU_LAYERMAPPING_TAP)
- #define MIRYOKU_LAYERMAPPING_TAP MIRYOKU_MAPPING
-#endif
-
-#if !defined(MIRYOKU_LAYER_BUTTON)
- #define MIRYOKU_LAYER_BUTTON MIRYOKU_ALTERNATIVES_BUTTON
-#endif
-#if !defined(MIRYOKU_LAYERMAPPING_BUTTON)
- #define MIRYOKU_LAYERMAPPING_BUTTON MIRYOKU_MAPPING
-#endif
-
-#if !defined(MIRYOKU_LAYER_NAV)
- #if defined (MIRYOKU_LAYERS_FLIP)
- #if defined (MIRYOKU_NAV_INVERTEDT)
- #define MIRYOKU_LAYER_NAV MIRYOKU_ALTERNATIVES_NAV_INVERTEDT_FLIP
- #else
- #define MIRYOKU_LAYER_NAV MIRYOKU_ALTERNATIVES_NAV_FLIP
- #endif
- #else
- #if defined (MIRYOKU_NAV_INVERTEDT)
- #define MIRYOKU_LAYER_NAV MIRYOKU_ALTERNATIVES_NAV_INVERTEDT
- #elif defined (MIRYOKU_NAV_VI)
- #define MIRYOKU_LAYER_NAV MIRYOKU_ALTERNATIVES_NAV_VI
- #else
- #define MIRYOKU_LAYER_NAV MIRYOKU_ALTERNATIVES_NAV
- #endif
- #endif
-#endif
-#if !defined(MIRYOKU_LAYERMAPPING_NAV)
- #define MIRYOKU_LAYERMAPPING_NAV MIRYOKU_MAPPING
-#endif
-
-#if !defined(MIRYOKU_LAYER_MOUSE)
- #if defined (MIRYOKU_LAYERS_FLIP)
- #if defined (MIRYOKU_NAV_INVERTEDT)
- #define MIRYOKU_LAYER_MOUSE MIRYOKU_ALTERNATIVES_MOUSE_INVERTEDT_FLIP
- #else
- #define MIRYOKU_LAYER_MOUSE MIRYOKU_ALTERNATIVES_MOUSE_FLIP
- #endif
- #else
- #if defined (MIRYOKU_NAV_INVERTEDT)
- #define MIRYOKU_LAYER_MOUSE MIRYOKU_ALTERNATIVES_MOUSE_INVERTEDT
- #elif defined (MIRYOKU_NAV_VI)
- #define MIRYOKU_LAYER_MOUSE MIRYOKU_ALTERNATIVES_MOUSE_VI
- #else
- #define MIRYOKU_LAYER_MOUSE MIRYOKU_ALTERNATIVES_MOUSE
- #endif
- #endif
-#endif
-#if !defined(MIRYOKU_LAYERMAPPING_MOUSE)
- #define MIRYOKU_LAYERMAPPING_MOUSE MIRYOKU_MAPPING
-#endif
-
-#if !defined(MIRYOKU_LAYER_MEDIA)
- #if defined (MIRYOKU_LAYERS_FLIP)
- #if defined (MIRYOKU_NAV_INVERTEDT)
- #define MIRYOKU_LAYER_MEDIA MIRYOKU_ALTERNATIVES_MEDIA_INVERTEDT_FLIP
- #else
- #define MIRYOKU_LAYER_MEDIA MIRYOKU_ALTERNATIVES_MEDIA_FLIP
- #endif
- #else
- #if defined (MIRYOKU_NAV_INVERTEDT)
- #define MIRYOKU_LAYER_MEDIA MIRYOKU_ALTERNATIVES_MEDIA_INVERTEDT
- #elif defined (MIRYOKU_NAV_VI)
- #define MIRYOKU_LAYER_MEDIA MIRYOKU_ALTERNATIVES_MEDIA_VI
- #else
- #define MIRYOKU_LAYER_MEDIA MIRYOKU_ALTERNATIVES_MEDIA
- #endif
- #endif
-#endif
-#if !defined(MIRYOKU_LAYERMAPPING_MEDIA)
- #define MIRYOKU_LAYERMAPPING_MEDIA MIRYOKU_MAPPING
-#endif
-
-#if !defined(MIRYOKU_LAYER_NUM)
- #if defined (MIRYOKU_LAYERS_FLIP)
- #define MIRYOKU_LAYER_NUM MIRYOKU_ALTERNATIVES_NUM_FLIP
- #else
- #define MIRYOKU_LAYER_NUM MIRYOKU_ALTERNATIVES_NUM
- #endif
-#endif
-#if !defined(MIRYOKU_LAYERMAPPING_NUM)
- #define MIRYOKU_LAYERMAPPING_NUM MIRYOKU_MAPPING
-#endif
-
-#if !defined(MIRYOKU_LAYER_SYM)
- #if defined (MIRYOKU_LAYERS_FLIP)
- #define MIRYOKU_LAYER_SYM MIRYOKU_ALTERNATIVES_SYM_FLIP
- #else
- #define MIRYOKU_LAYER_SYM MIRYOKU_ALTERNATIVES_SYM
- #endif
-#endif
-#if !defined(MIRYOKU_LAYERMAPPING_SYM)
- #define MIRYOKU_LAYERMAPPING_SYM MIRYOKU_MAPPING
-#endif
-
-#if !defined(MIRYOKU_LAYER_FUN)
- #if defined (MIRYOKU_LAYERS_FLIP)
- #define MIRYOKU_LAYER_FUN MIRYOKU_ALTERNATIVES_FUN_FLIP
- #else
- #define MIRYOKU_LAYER_FUN MIRYOKU_ALTERNATIVES_FUN
- #endif
-#endif
-#if !defined(MIRYOKU_LAYERMAPPING_FUN)
- #define MIRYOKU_LAYERMAPPING_FUN MIRYOKU_MAPPING
-#endif
diff --git a/users/manna-harbour_miryoku/post_rules.mk b/users/manna-harbour_miryoku/post_rules.mk
deleted file mode 100644
index e4f1806bf5..0000000000
--- a/users/manna-harbour_miryoku/post_rules.mk
+++ /dev/null
@@ -1,42 +0,0 @@
-# Copyright 2022 Manna Harbour
-# https://github.com/manna-harbour/miryoku
-
-# alternative layout options
-
-ifneq ($(strip $(MIRYOKU_ALPHAS)),)
- OPT_DEFS += -DMIRYOKU_ALPHAS_$(MIRYOKU_ALPHAS)
-endif
-
-ifneq ($(strip $(MIRYOKU_EXTRA)),)
- OPT_DEFS += -DMIRYOKU_EXTRA_$(MIRYOKU_EXTRA)
-endif
-
-ifneq ($(strip $(MIRYOKU_TAP)),)
- OPT_DEFS += -DMIRYOKU_TAP_$(MIRYOKU_TAP)
-endif
-
-ifneq ($(strip $(MIRYOKU_NAV)),)
- OPT_DEFS += -DMIRYOKU_NAV_$(MIRYOKU_NAV)
-endif
-
-ifneq ($(strip $(MIRYOKU_CLIPBOARD)),)
- OPT_DEFS += -DMIRYOKU_CLIPBOARD_$(MIRYOKU_CLIPBOARD)
-endif
-
-ifneq ($(strip $(MIRYOKU_LAYERS)),)
- OPT_DEFS += -DMIRYOKU_LAYERS_$(MIRYOKU_LAYERS)
-endif
-
-# subset mappings
-
-ifneq ($(strip $(MIRYOKU_MAPPING)),)
- OPT_DEFS += -DMIRYOKU_MAPPING_$(MIRYOKU_MAPPING)
-endif
-
-# kludges
-
-# thumb combos
-ifeq ($(strip $(MIRYOKU_KLUDGE_THUMBCOMBOS)),yes)
- COMBO_ENABLE = yes
- OPT_DEFS += -DMIRYOKU_KLUDGE_THUMBCOMBOS
-endif
diff --git a/users/manna-harbour_miryoku/readme.org b/users/manna-harbour_miryoku/readme.org
deleted file mode 100644
index 4621117526..0000000000
--- a/users/manna-harbour_miryoku/readme.org
+++ /dev/null
@@ -1,801 +0,0 @@
-# Copyright 2022 Manna Harbour
-# https://github.com/manna-harbour/miryoku
-
-* Miryoku QMK [[https://raw.githubusercontent.com/manna-harbour/miryoku/master/data/logos/miryoku-roa-32.png]]
-
-[[https://raw.githubusercontent.com/manna-harbour/miryoku/master/data/cover/miryoku-kle-cover-miryoku_qmk.png]]
-
-[[https://github.com/manna-harbour/miryoku/][Miryoku]] is an ergonomic, minimal, orthogonal, and universal keyboard layout. [[https://github.com/manna-harbour/miryoku_qmk/tree/miryoku/users/manna-harbour_miryoku][Miryoku QMK]] is the Miryoku implementation for [[https://qmk.fm][QMK]].
-
-
-** Branches
-
-
-*** QMK master
-
-QMK master is the current version of QMK, but usually does not contain the current version of Miryoku QMK.
-
-QMK master is at https://github.com/qmk/qmk_firmware/tree/master. The corresponding Miryoku QMK readme is at https://github.com/qmk/qmk_firmware/tree/master/users/manna-harbour_miryoku and describes the version of Miryoku QMK in QMK master.
-
-
-*** Miryoku QMK development branch
-
-The Miryoku QMK development branch is the current version of Miryoku QMK, but usually does not contain the current version of QMK.
-
-The Miryoku QMK development branch is named ~miryoku~ and is at https://github.com/manna-harbour/miryoku_qmk/tree/miryoku. The corresponding Miryoku QMK readme is at https://github.com/manna-harbour/miryoku_qmk/tree/miryoku/users/manna-harbour_miryoku.
-
-New commits can be seen at the top of the [[https://github.com/manna-harbour/miryoku_qmk/commits/miryoku][history]] with commit messages beginning ~[miryoku]~ or ~[miryoku-github]~
-
-Periodically, the ~[miryoku]~ commits are squashed and merged upstream into QMK master by pull request, the ~miryoku~ branch is renamed, and a new ~miryoku~ branch is created from QMK master.
-
-
-**** Merge
-
-To use both the current versions of QMK and Miryoku QMK together, the QMK master and ~miryoku~ branches need to be merged.
-
-The ~[miryoku-github]~ commits relate to GitHub specific functions of the Miryoku QMK repository and forks, such as workflows. Directly merging ~miryoku~ with a branch based on QMK master will lead to conflicts due to those commits. To avoid conflicts, first drop or revert all ~[miryoku-github]~ commits from ~miryoku~ before merging.
-
-Merging branches can be performed automatically at build time for [[#workflow-builds][workflow builds]] using the ~merge~ option, which will automatically revert all ~[miryoku-github]~ commits before merging. For local builds, see [[#checkout-update-and-merge][Checkout, Update, and Merge]] below.
-
-Any local changes to existing workflow files should be made independently in commits with messages starting ~[miryoku-github]~ so that they can also be automatically excluded in workflow builds.
-
-
-** Building
-
-
-*** Local Builds
-
-First [[https://docs.qmk.fm/#/newbs_getting_started][set up the QMK build environment and build the default keymap for your keyboard]].
-
-Next choose the [[#branches][branch]]. If using ~miryoku~, [[#checkout-update-and-merge][checkout, update, or merge]] as needed.
-
-Build with ~manna-harbour_miryoku~ as the keymap name. Personalised defaults for [[https://github.com/manna-harbour/miryoku/tree/master/docs/reference#alternative-layouts][alternative layout]] options can be set in [[#userspace][custom_rules.mk]]. Options can also be set or overridden at build time. Build with [[#qmk][qmk]] or [[#make][make]].
-
-
-**** Checkout, Update, and Merge
-
-All of the following examples operate in your existing QMK build environment.
-#+BEGIN_SRC sh :tangle no
-cd qmk_firmware
-#+END_SRC
-
-To checkout the ~miryoku~ branch from Miryoku QMK:
-#+BEGIN_SRC sh :tangle no
-git remote add miryoku_qmk git@github.com:manna-harbour/miryoku_qmk.git # if using SSH
-git remote add miryoku_qmk https://github.com/manna-harbour/miryoku_qmk.git # if using HTTPS
-git fetch miryoku_qmk
-git checkout --track miryoku_qmk/miryoku
-make git-submodule
-#+END_SRC
-
-To update the ~miryoku~ branch from Miryoku QMK:
-#+BEGIN_SRC sh :tangle no
-git checkout miryoku
-git fetch miryoku_qmk
-git merge miryoku_qmk/miryoku
-#+END_SRC
-
-If a new ~miryoku~ branch has been created in Miryoku QMK you will see ~(forced update)~ after the fetch. To rename the existing ~miryoku~ branch and create a new ~miryoku~ branch from Miryoku QMK:
-#+BEGIN_SRC sh :tangle no
-git checkout miryoku
-git branch -m miryoku-`whoami`-`date --rfc-3339=date`
-git fetch miryoku_qmk
-git checkout --track miryoku_qmk/miryoku
-make git-submodule
-#+END_SRC
-
-To [[#merge][merge]] the ~miryoku~ branch with QMK master:
-#+BEGIN_SRC sh :tangle no
-git checkout miryoku
-git checkout -b miryoku-merge-master
-git revert --no-edit `git log --grep='^\[miryoku-github\]' --pretty='format:%H' | tr '\n' ' '`
-git fetch origin
-git merge origin/master
-make git-submodule
-#+END_SRC
-
-
-**** qmk
-
-Build with the ~qmk~ command. E.g.
-
-#+BEGIN_SRC sh :tangle no
-qmk compile -c -kb crkbd -km manna-harbour_miryoku # build for crkbd
-qmk flash -c -kb crkbd -km manna-harbour_miryoku # build for crkbd and flash
-qmk compile -c -kb crkbd -km manna-harbour_miryoku \
- -e MIRYOKU_ALPHAS=QWERTY \
- -e MIRYOKU_EXTRA=COLEMAKDH \
- -e MIRYOKU_TAP=QWERTY \
- -e MIRYOKU_NAV=INVERTEDT \
- -e MIRYOKU_CLIPBOARD=WIN \
- -e MIRYOKU_LAYERS=FLIP # build for crkbd with alternative layouts
-#+END_SRC
-
-
-**** make
-
-First ~cd~ to the repository root. Then build with ~make~. E.g.
-
-#+BEGIN_SRC sh :tangle no
-make clean crkbd:manna-harbour_miryoku # build for crkbd
-make clean crkbd:manna-harbour_miryoku:flash # build for crkbd and flash
-make clean crkbd:manna-harbour_miryoku \
- MIRYOKU_ALPHAS=QWERTY \
- MIRYOKU_EXTRA=COLEMAKDH \
- MIRYOKU_TAP=QWERTY \
- MIRYOKU_NAV=INVERTEDT \
- MIRYOKU_CLIPBOARD=WIN \
- MIRYOKU_LAYERS=FLIP # build for crkbd with alternative layouts
-#+END_SRC
-
-
-*** Workflow Builds
-
-Firmware can be built via GitHub Actions workflows without use of a local build environment. Local tools are still required for [[https://docs.qmk.fm/#/newbs_flashing][flashing]].
-
-First [[#fork-or-sync][fork the Miryoku QMK repository or sync the ~miryoku~ branch]]. Then use the [[#build-examples][Build Examples]] or [[#build-inputs][Build Inputs]] workflows.
-
-To access a workflow, visit the Actions tab and select the workflow. To download the firmware from a workflow run, select the workflow, select the workflow run, select the desired Artifacts, and unzip the downloaded zip file.
-
-Workflow files are in [[../../.github/workflows]].
-
-
-**** Fork or Sync
-
-If you don't have a fork, first [[https://github.com/signup][create a GitHub account]], [[https://github.com/login][login to GitHub]], [[https://docs.github.com/en/get-started/quickstart/fork-a-repo#forking-a-repository][fork]] https://github.com/manna-harbour/miryoku_qmk, and visit the Actions tab and enable workflows.
-
-If you already have a fork, [[https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/working-with-forks/syncing-a-fork#syncing-a-fork-branch-from-the-web-ui][sync]] the ~miryoku~ branch.
-
-If a new ~miryoku~ branch has been created in Miryoku QMK, there will be a warning about conflicts when trying to sync. If you have local changes, first create a copy of the branch by [[https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/creating-and-deleting-branches-within-your-repository#creating-a-branch][creating a new branch]] and specifying the ~miryoku~ branch in your fork as the source, then sync the ~miryoku~ branch again. Accept the prompt to discard commits.
-
-
-**** Build Examples
-
-Copy one of the included Build Example workflow files, edit the ~name~ value, and edit and add options and values as desired. Select Run workflow, select the Branch if desired, and activate Run workflow.
-
-Options are specified in the ~with~ section and are of the following form.
-: option: '["value"]'
-
-For multiple values per option use the following form, and a matrix build will be performed for each combination of values across all options.
-: option: '["value1","value2"]'
-
-The ~keyboard~ option specifies the keyboard and is required. All other options are optional.
-
-The ~alphas~, ~nav~, ~clipboard~, and ~layers~ options correspond to the [[https://github.com/manna-harbour/miryoku/tree/master/docs/reference#alternative-layouts][alternative layout]] options. The ~mapping~ option corresponds to the alternative [[#subset-mapping][mapping]] options. Alternative layout and mapping options are given in the documentation in the form ~MIRYOKU_OPTION=VALUE~. To use here, convert to the form specified above. Use ~default~ to represent the default value. Values for these five options are case-insensitive. See the [[../../.github/workflows/test-all-configs.yml][Test All Configs workflow file]] for all supported values.
-
-The ~rules~ and ~custom_config~ options can be used to specify values to be appended to ~custom_rules.mk~ and ~custom_config.h~, respectively. Separate multiple lines with ~\n~.
-
-The ~merge~ option can be used to merge branches at build time. Branches are specified in the form ~<user>/<repo>/<branch>~. E.g. QMK ~master~ and ~develop~ would be specified as ~qmk/qmk_firmware/master~ and ~qmk/qmk_firmware/develop~ respectively. Multiple space separated branches can be specified. For no merges, leave as ~default~.
-
-
-**** Build Inputs
-
-The Build Inputs workflow can be used without editing workflow files. Select Run workflow, select the Branch and fill out the form as desired, and activate Run workflow.
-
-Most options are specified by entering values directly in the corresponding field. Multiple comma separated values can be entered per option and a matrix build will be performed for each combination of values across all options.
-
-Values for Miryoku alternative layout options are selected from a list. As multiple selection is not supported, matrix builds across multiple values are not possible for these options, and the Test Inputs or [[#build-examples][Build Example]] workflows should be used instead.
-
-The ~Keyboard~ option specifies the keyboard and is required. All other options are optional.
-
-The ~Miryoku Alphas~, ~Miryoku Nav~, ~Miryoku Clipboard~, and ~Miryoku Layers~ options correspond to the [[https://github.com/manna-harbour/miryoku/tree/master/docs/reference#alternative-layouts][alternative layout]] options. The ~Miryoku Mapping~ option corresponds to the alternative [[#subset-mapping][mapping]] options. Alternative layout and mapping options are given in the documentation in the form ~MIRYOKU_OPTION=VALUE~. To use here, enter the ~value~ in the corresponding ~Miryoku Option~ field. Use ~default~ to represent the default value. Values for these five options are case-insensitive.
-
-The ~custom_rules.mk~ and ~custom_config.h~ options can be used to specify values to be appended to the corresponding files. Join multiple lines with ~\n~.
-
-The ~Merge QMK Branches~ option can be used to merge branches at build time. Branches are specified in the form ~<user>/<repo>/<branch>~. E.g. QMK ~master~ and ~develop~ would be specified as ~qmk/qmk_firmware/master~ and ~qmk/qmk_firmware/develop~ respectively. Multiple space separated branches can be specified. For no merges, leave as ~default~.
-
-
-** Subset Mapping
-
-The keymap, build options, and configuration are shared between keyboards. The
-layout is mapped onto keyboards with different physical layouts as a subset
-without code duplication using the QMK userspace feature and C macros.
-
-
-*** Userspace
-
-The keymap is defined for ~LAYOUT_miryoku~ which is 10x4, with the outer 2
-positions on the bottom row unused and the rest of the bottom row being the
-thumb keys.
-
-- [[./rules.mk]] :: Build options. Automatically included.
-
-- [[./custom_rules.mk]] :: Custom ~make~ options including customised defaults for alternative layout and mapping options. Included from ~rules.mk~.
-
-- [[./post_rules.mk]] :: Handles Miryoku ~make~ options. Included from ~rules.mk~.
-
-- [[./config.h]] :: Config options. Automatically included.
-
-- [[./custom_config.h]] :: Custom config options. Included from ~config.h~.
-
-- [[./manna-harbour_miryoku.h]] :: Keymap-related definitions. Included from ~manna-harbour_miryoku.c~. Layer data is generated by [[https://github.com/manna-harbour/miryoku_babel][Miryoku Babel]] and is included from files in the [[miryoku_babel]] directory.
-
-- [[./manna-harbour_miryoku.c]] :: Contains the keymap. Added from ~rules.mk~.
-
-
-*** Community Layouts
-
-To use the keymap on a keyboard supporting the community layouts feature,
-~LAYOUT_miryoku~ is defined as a macro mapping onto the layout's own ~LAYOUT~
-macro, leaving the unused keys as ~KC_NO~.
-
-For keyboards supporting multiple layouts for which subset mappings are
-available, select the layout with ~FORCE_LAYOUT~ in the ~make~ command line when
-building. E.g.:
-
-#+BEGIN_SRC sh :tangle no
-make planck/rev6:manna-harbour_miryoku:flash FORCE_LAYOUT=planck_mit # planck_mit
-make planck/rev6:manna-harbour_miryoku:flash FORCE_LAYOUT=ortho_4x12 # ortho_4x12
-#+END_SRC
-
-
-**** 60_ansi
-
-An angled ortho split layout is mapped onto the row-staggered keyboard. The
-rows are moved up to better position the thumb keys, the hands are separated as
-much as possible, and the left hand column angle is reversed to reduce ulnar
-deviation of the wrists.
-
-[[https://raw.githubusercontent.com/manna-harbour/miryoku/master/data/mapping/miryoku-kle-mapping-60_ansi.png]]
-
-An alternative subset mapping is also provided without reverse column angle. To
-select this mapping, append ~MIRYOKU_MAPPING=NOREVERSEANGLE~ to the ~make~
-command line when building.
-
-[[https://raw.githubusercontent.com/manna-harbour/miryoku/master/data/mapping/miryoku-kle-mapping-60_ansi-noreverseangle.png]]
-
-Another alternative subset mapping is provided mapping only the 3x10 alphas,
-plus spacebar for space / Nav, with the remainder being the default 60_ansi
-keymap with semicolon in place of quote. To select this mapping, append
-~MIRYOKU_MAPPING=LITE~ to the ~make~ command line when building.
-
-Keyboards supporting this layout: alps64, amj60, bakeneko60, bm60poker, bm60rgb, do60, dp60, dz60, facew, gskt00, infinity60, jm60, kc60, kc60se, ok60, org60, paladin64, panc60, reviung61, smk60, v60_type_r, yd60mq, 1upkeyboards/1up60hse, 1upkeyboards/1up60rgb, 40percentclub/luddite, acheron/keebspcb, acheron/lasgweloth, ai03/polaris, akegata_denki/device_one, atxkb/1894, bioi/g60ble, bt66tech/bt66tech60, cannonkeys/an_c, cannonkeys/instant60, cannonkeys/practice60, clawsome/coupe, dm9records/tartan, duck/eagle_viper, evyd13/plain60, exclusive/e6_rgb, gh60/revc, gh60/satan, gh60/v1p3, handwired/xealousbrown, hineybush/h60, hs60/v1, keebio/wtf60, noxary/260, playkbtw/pk60, ryloo_studio/m0110, thevankeyboards/bananasplit, wilba_tech/zeal60, xd60/rev2, xd60/rev3, cannonkeys/db60/hotswap, cannonkeys/db60/j02, cannonkeys/db60/rev2, exclusive/e6v2/le, exclusive/e6v2/oe, foxlab/leaf60/universal, handwired/co60/rev1, handwired/co60/rev7, handwired/swiftrax/nodu, hs60/v2/ansi, inett_studio/sqx/universal, melgeek/mj61/rev1, melgeek/mj61/rev2, melgeek/mj63/rev1, melgeek/mj63/rev2, sentraq/s60_x/default, sentraq/s60_x/rgb.
-
-Example build command lines:
-
-#+BEGIN_SRC sh :tangle no
-make dz60:manna-harbour_miryoku:flash # dz60
-make dz60:manna-harbour_miryoku:flash MIRYOKU_MAPPING=NOREVERSEANGLE # dz60, without reverse column angle
-make dz60:manna-harbour_miryoku:flash MIRYOKU_MAPPING=LITE # dz60, with lite mapping
-#+END_SRC
-
-
-**** alice
-
-This is a hybrid mapping. Only the 3x10 alphas plus spacebars as primary thumb keys are mapped. The remaining keys are the same as the default keymap but with semicolon in place of quote. The keys adjacent to the spacebars are also mapped as corresponding thumb keys but may not be usable as such.
-
-Keyboards supporting this layout: cheshire/curiosity, handwired/owlet60, mechlovin/adelais, projectkb/alice, sck/osa, axolstudio/yeti, coarse/cordillera, edda, evyd13/wonderland, fallacy, kb_elmo/sesame, keebsforall/coarse60, ramonimbao/aelith, sneakbox/aliceclone, tkc/osav2, zoo/wampus.
-
-
-**** alice_split_bs
-
-This is a hybrid mapping. Only the 3x10 alphas plus spacebars as primary thumb keys are mapped. The remaining keys are the same as the default keymap but with semicolon in place of quote. The keys adjacent to the spacebars are also mapped as corresponding thumb keys but may not be usable as such.
-
-Keyboards supporting this layout: cheshire/curiosity, ergosaurus, handwired/colorlice, handwired/owlet60, mechlovin/adelais, projectkb/alice, sck/osa, tgr/alice, xelus/valor/rev1, xelus/valor/rev2, axolstudio/yeti, coarse/cordillera, edda, evyd13/wonderland, fallacy, kb_elmo/sesame, keebsforall/coarse60, nightly_boards/alter/rev1, ramonimbao/aelith, seigaiha, sneakbox/aliceclone, tkc/osav2, zoo/wampus.
-
-
-**** ergodox
-
-For the ergodox layout, the main 5x3 alphas are used as usual. The primary and
-secondary thumb keys are the inner and outer 2u thumb keys and the tertiary
-thumb key is the innermost key of the partial bottom row. The remaining keys
-are unused.
-
-[[https://raw.githubusercontent.com/manna-harbour/miryoku/master/data/mapping/miryoku-kle-mapping-ergodox.png]]
-
-An alternative subset mapping is provided with all keys shifted up one row creating thumb keys in the original alpha area. To select this mapping, append ~MIRYOKU_MAPPING=SHIFTED_ROWS~ to the ~make~ command line when building.
-
-[[https://raw.githubusercontent.com/manna-harbour/miryoku/master/data/mapping/miryoku-kle-mapping-ergodox-shifted_rows.png]]
-
-Another alternative subset mapping is provided as for ~MIRYOKU_MAPPING=SHIFTED_ROWS~ but with the thumb keys shifted one position in the direction of thumb extension. To select this mapping, append ~MIRYOKU_MAPPING=SHIFTED_ROWS_EXTENDED_THUMBS~ to the ~make~ command line when building.
-
-[[https://raw.githubusercontent.com/manna-harbour/miryoku/master/data/mapping/miryoku-kle-mapping-ergodox-shifted_rows-extended_thumbs.png]]
-
-Another alternative subset mapping is provided as for ~MIRYOKU_MAPPING=SHIFTED_ROWS_EXTENDED_THUMBS~ but with the pinkie column moved down one row. To select this mapping, append ~MIRYOKU_MAPPING=SHIFTED_ROWS_EXTENDED_THUMBS_PINKIE_STAGGER~ to the ~make~ command line when building.
-
-[[https://raw.githubusercontent.com/manna-harbour/miryoku/master/data/mapping/miryoku-kle-mapping-ergodox-shifted_rows-extended_thumbs-pinkie_stagger.png]]
-
-Keyboards supporting this layout: ergodone, ergodox_ez, ergodox_infinity, hotdox.
-
-Example build command lines:
-
-#+BEGIN_SRC sh :tangle no
-make ergodox_infinity:manna-harbour_miryoku:flash # ergodox_infinity
-make ergodox_ez:manna-harbour_miryoku:flash # ergodox_ez
-make ergodox_ez:manna-harbour_miryoku:flash MIRYOKU_MAPPING=SHIFTED_ROWS # ergodox_ez, shifted rows
-make ergodox_ez:manna-harbour_miryoku:flash MIRYOKU_MAPPING=SHIFTED_ROWS_EXTENDED_THUMBS # ergodox_ez, shifted rows, extended thumbs
-make ergodox_ez:manna-harbour_miryoku:flash MIRYOKU_MAPPING=SHIFTED_ROWS_EXTENDED_THUMBS_PINKIE_STAGGER # ergodox_ez, shifted rows, extended thumbs, pinkie stagger
-
-#+END_SRC
-
-
-**** ortho_4x10
-
-An alternative with 180 degree rotation is also provided to enable the USB cable to be relocated for use with laptops. To select this mapping, append ~MIRYOKU_MAPPING=ROTATE~ to the ~make~ command line when building.
-
-Keyboards supporting this layout: newgame40, nimrod, marksard/rhymestone, pabile/p40.
-
-Example build command lines:
-
-#+BEGIN_SRC sh :tangle no
-make marksard/rhymestone:manna-harbour_miryoku:flash # marksard/rhymestone
-make pabile/p40:manna-harbour_miryoku:flash MIRYOKU_MAPPING=ROTATE # pabile/p40, rotate
-#+END_SRC
-
-
-**** ortho_4x12
-
-For the ortho_4x12 layout, the middle two columns, and the 2 keys on each end of
-the bottom row are unused. This allows the hands to be positioned without ulnar
-deviation of the wrists.
-
-[[https://raw.githubusercontent.com/manna-harbour/miryoku/master/data/mapping/miryoku-kle-mapping-ortho_4x12.png]]
-
-For split keyboards using this layout the halves can be positioned and rotated
-for each hand and so an alternative mapping is provided. The right half is as
-follows: The rightmost column bottom 3 keys is the pinkie column. The middle 4
-columns top 3 rows are for the remaining fingers. The pinkie column is one row
-lower than the other columns to provide some column stagger. The bottom row
-left 3 keys are the thumb keys. The remaining keys are unused. To select this
-mapping, append ~MIRYOKU_MAPPING=SPLIT~ to the ~make~ command line when
-building.
-
-[[https://raw.githubusercontent.com/manna-harbour/miryoku/master/data/mapping/miryoku-kle-mapping-ortho_4x12-split.png]]
-
-An alternative with extended thumb position but without pinkie column stagger is
-also provided. To select this mapping, append ~MIRYOKU_MAPPING=EXTENDED_THUMBS~
-to the ~make~ command line when building.
-
-[[https://raw.githubusercontent.com/manna-harbour/miryoku/master/data/mapping/miryoku-kle-mapping-ortho_4x12-extended_thumbs.png]]
-
-Keyboards supporting this layout: chimera_ls, contra, efreet, jj40, jnao, lets_split, lets_split_eh, meira, niu_mini, quark, tau4, telophase, vitamins_included, zlant, 40percentclub/4x4, 40percentclub/nori, acheron/shark, boardsource/4x12, cannonkeys/ortho48, dm9records/plaid, evyd13/eon40, evyd13/pockettype, handwired/floorboard, handwired/jotanck, handwired/wulkan, kbdfans/kbd4x, keebio/levinson, keebio/wavelet, mechstudio/ud_40_ortho, planck/ez, planck/light, planck/rev1, planck/rev2, planck/rev3, planck/rev4, planck/rev5, planck/rev6, planck/thk, rgbkb/zygomorph, zvecr/split_blackpill, zvecr/zv48, keebio/nyquist/rev1, keebio/nyquist/rev2, keebio/nyquist/rev3, montsinger/rebound/rev1, montsinger/rebound/rev2, montsinger/rebound/rev3, montsinger/rebound/rev4, signum/3_0/elitec, spaceman/pancake/feather, spaceman/pancake/promicro, ymdk/ymd40/v2.
-
-Example build command lines:
-
-#+BEGIN_SRC sh :tangle no
-make planck/rev6:manna-harbour_miryoku:flash FORCE_LAYOUT=ortho_4x12 # planck, ortho_4x12
-make planck/rev6:manna-harbour_miryoku:flash FORCE_LAYOUT=ortho_4x12 MIRYOKU_MAPPING=EXTENDED_THUMBS # planck, ortho_4x12, extended thumbs
-make keebio/levinson:manna-harbour_miryoku:flash MIRYOKU_MAPPING=SPLIT # levinson
-make keebio/levinson:manna-harbour_miryoku:flash MIRYOKU_MAPPING=EXTENDED_THUMBS # levinson, extended thumbs
-#+END_SRC
-
-
-**** ortho_5x12
-
-As per ortho_4x12 but the top row is unused.
-
-Keyboards supporting this layout: fractal, jj50, jnao, boardsource/5x12, cannonkeys/atlas_alps, cannonkeys/ortho60, handwired/jot50, handwired/riblee_f401, handwired/riblee_f411, handwired/rs60, keycapsss/o4l_5x12, peej/lumberjack, preonic/rev1, preonic/rev2, preonic/rev3, rgbkb/zygomorph, keebio/nyquist/rev1, keebio/nyquist/rev2, keebio/nyquist/rev3.
-
-Example build command lines:
-
-#+BEGIN_SRC sh :tangle no
-make preonic/rev3:manna-harbour_miryoku:flash # preonic/rev3
-make preonic/rev3:manna-harbour_miryoku:flash MIRYOKU_MAPPING=EXTENDED_THUMBS # preonic/rev3, extended thumbs
-make keebio/nyquist/rev3:manna-harbour_miryoku:flash MIRYOKU_MAPPING=SPLIT # nyquist/rev3, split
-make keebio/nyquist/rev3:manna-harbour_miryoku:flash MIRYOKU_MAPPING=EXTENDED_THUMBS # nyquist/rev3, extended thumbs
-
-#+END_SRC
-
-
-**** ortho_5x15
-
-For the ortho_5x15 layout, the top row, middle 5 columns, and the 2 keys on each
-end of the bottom row are unused. This allows the hands to be positioned
-without ulnar deviation of the wrists.
-
-[[https://raw.githubusercontent.com/manna-harbour/miryoku/master/data/mapping/miryoku-kle-mapping-ortho_5x15.png]]
-
-An alternative subset mapping is also provided with the thumb keys shifted
-across one position in the direction of thumb extension. To select this
-mapping, append ~MIRYOKU_MAPPING=EXTENDED_THUMBS~ to the ~make~ command line
-when building.
-
-[[https://raw.githubusercontent.com/manna-harbour/miryoku/master/data/mapping/miryoku-kle-mapping-ortho_5x15-extended_thumbs.png]]
-
-Keyboards supporting this layout: atomic, geminate60, idobo, punk75, xd75, 40percentclub/5x5, 40percentclub/i75, cannonkeys/ortho75, sendyyeah/75pixels.
-
-Example build command lines:
-
-#+BEGIN_SRC sh :tangle no
-make atomic:manna-harbour_miryoku:flash # atomic
-make atomic:manna-harbour_miryoku:flash MIRYOKU_MAPPING=EXTENDED_THUMBS # atomic, extended thumbs
-make idobo:manna-harbour_miryoku:flash # idobo
-#+END_SRC
-
-
-**** planck_mit
-
-The middle two columns including the middle 2u key, and the 2 keys on each end
-of the bottom row are unused.
-
-Keyboards supporting this layout: bm40hsrgb, contra, efreet, jj40, latin47ble, mt40, niu_mini, quark, zlant, dm9records/plaid, evyd13/eon40, handwired/aranck, handwired/heisenberg, kbdfans/kbd4x, planck/ez, planck/light, planck/rev1, planck/rev2, planck/rev3, planck/rev4, planck/rev5, planck/rev6, planck/thk, spaceman/pancake/feather, spaceman/pancake/promicro.
-
-Example build command lines:
-
-#+BEGIN_SRC sh :tangle no
-make planck/ez:manna-harbour_miryoku:flash # planck ez
-make planck/rev6:manna-harbour_miryoku:flash FORCE_LAYOUT=planck_mit # planck rev6, mit
-
-#+END_SRC
-
-
-
-**** split_3x5_2
-
-[[#thumb-combos][Thumb combos]] are enabled automatically for this layout.
-
-Keyboards supporting this layout: a_dux, alt34/rev1, bastardkb/dilemma, cradio, ferris/0_1, ferris/0_2, ferris/sweep
-
-Example build command lines:
-
-#+BEGIN_SRC sh :tangle no
-make ferris/0_2:manna-harbour_miryoku:flash # ferris/0_2
-make ferris/sweep:manna-harbour_miryoku:flash # ferris/sweep
-#+END_SRC
-
-
-**** split_3x5_3
-
-Keyboards supporting this layout: arch_36, boardsource/microdox, centromere, crkbd, eek, miniaxe, minidox/rev1, pteron36, squiggle/rev1, suihankey/split/rev1.
-
-Example build command lines:
-
-#+BEGIN_SRC sh :tangle no
-make crkbd:manna-harbour_miryoku:flash # crkbd
-make minidox:manna-harbour_miryoku:flash # minidox
-#+END_SRC
-
-
-**** split_3x6_3
-
-The outer columns are unused.
-
-Keyboards supporting this layout: centromere, crkbd, bastardkb/tbkmini.
-
-Example build command lines:
-
-#+BEGIN_SRC sh :tangle no
-make bastardkb/tbkmini:manna-harbour_miryoku:flash # bastardkb/tbkmini
-make crkbd:manna-harbour_miryoku:flash # crkbd
-#+END_SRC
-
-
-
-*** Keyboards
-
-To use the keymap on a keyboard which does not support the layouts feature,
-~LAYOUT_miryoku~ is defined as a macro mapping onto the keyboard's own ~LAYOUT~
-macro, leaving the unused keys as ~KC_NO~.
-
-
-**** a_dux
-
-[[#thumb-combos][Thumb combos]] are enabled automatically for this keyboard.
-
-To build for this keyboard,
-
-#+BEGIN_SRC sh :tangle no
-make a_dux:manna-harbour_miryoku:flash
-#+END_SRC
-
-
-**** atreus
-
-Only the main 5x3 alphas and the inner 3 thumb keys are used.
-
-To build for this keyboard,
-
-#+BEGIN_SRC sh :tangle no
-make atreus:manna-harbour_miryoku:flash
-#+END_SRC
-
-
-**** bastardkb/charybdis/3x5
-
-[[#thumb-combos][Thumb combos]] are enabled automatically for this keyboard.
-
-To build for this keyboard,
-
-#+BEGIN_SRC sh :tangle no
-make bastardkb/charybdis/3x5:manna-harbour_miryoku:flash
-#+END_SRC
-
-
-**** bastardkb/charybdis/4x6
-
-On the trackball side the bottom row thumb key is used as the tertiary thumb key. Additionally, [[#thumb-combos][thumb combos]] are enabled automatically for this keyboard.
-
-To build for this keyboard,
-
-#+BEGIN_SRC sh :tangle no
-make bastardkb/charybdis/4x6:manna-harbour_miryoku:flash
-#+END_SRC
-
-
-**** bastardkb/scylla
-
-To build for this keyboard,
-
-#+BEGIN_SRC sh :tangle no
-make bastardkb/scylla:manna-harbour_miryoku:flash
-#+END_SRC
-
-
-**** draculad
-
-To build for this keyboard,
-
-#+BEGIN_SRC sh :tangle no
-make draculad:manna-harbour_miryoku:flash
-#+END_SRC
-
-
-**** ergotravel
-
-To build for this keyboard,
-
-#+BEGIN_SRC sh :tangle no
-make ergotravel:manna-harbour_miryoku:flash
-#+END_SRC
-
-
-**** for_science
-
-The top row is unused.
-
-To build for this keyboard,
-
-#+BEGIN_SRC sh :tangle no
-make for_science:manna-harbour_miryoku:flash
-#+END_SRC
-
-
-**** fortitude60
-
-To build for this keyboard,
-
-#+BEGIN_SRC sh :tangle no
-make fortitude60:manna-harbour_miryoku:flash
-#+END_SRC
-
-
-**** gergo
-
-Only the main 5x3 alphas and the outer 3 thumb keys are used.
-
-To build for this keyboard,
-
-#+BEGIN_SRC sh :tangle no
-make gergo:manna-harbour_miryoku:flash
-#+END_SRC
-
-
-**** handwired/dactyl_manuform/4x5
-
-Only the main 5x3 alphas and the main 3 thumb keys are used.
-
-To build for this keyboard,
-
-#+BEGIN_SRC sh :tangle no
-make handwired/dactyl_manuform/4x5:manna-harbour_miryoku:flash
-#+END_SRC
-
-
-**** handwired/dactyl_manuform/4x6
-
-Only the main 5x3 alphas and the main 3 thumb keys are used.
-
-To build for this keyboard,
-
-#+BEGIN_SRC sh :tangle no
-make handwired/dactyl_manuform/4x6:manna-harbour_miryoku:flash
-#+END_SRC
-
-
-**** handwired/dactyl_manuform/5x6
-
-Only the main 5x3 alphas and the main 3 thumb keys are used.
-
-To build for this keyboard,
-
-#+BEGIN_SRC sh :tangle no
-make handwired/dactyl_manuform/5x6:manna-harbour_miryoku:flash
-#+END_SRC
-
-
-**** jorne
-
-To build for this keyboard,
-
-#+BEGIN_SRC sh :tangle no
-make jorne:manna-harbour_miryoku:flash
-#+END_SRC
-
-
-**** keebio/iris
-
-Only the main 5x3 alphas and the bottom 3 thumb keys are used.
-
-To build for this keyboard,
-
-#+BEGIN_SRC sh :tangle no
-make keebio/iris/rev4:manna-harbour_miryoku:flash
-#+END_SRC
-
-
-**** keyboardio/atreus
-
-Only the main 5x3 alphas and the inner 3 thumb keys are used.
-
-To build for this keyboard,
-
-#+BEGIN_SRC sh :tangle no
-make keyboardio/atreus:manna-harbour_miryoku:flash
-#+END_SRC
-
-
-**** keyboardio/model01
-
-Only the main 5x3 alphas and the inner 3 thumb keys are used.
-
-To build for this keyboard,
-
-#+BEGIN_SRC sh :tangle no
-make keyboardio/model01:manna-harbour_miryoku:flash
-#+END_SRC
-
-
-**** lily58
-
-Only the main 5x3 alphas and the inner 3 thumb keys are used.
-
-To build for this keyboard,
-
-#+BEGIN_SRC sh :tangle no
-make lily58:manna-harbour_miryoku:flash
-#+END_SRC
-
-
-**** moonlander
-
-The main 5x3 alphas are used as usual. The primary, secondary, and tertiary
-thumb keys are the closest piano key, middle piano key, and the innermost key of
-the partial bottom row, respectively. The remaining keys are unused.
-
-To build for this keyboard,
-
-#+BEGIN_SRC sh :tangle no
-make moonlander:manna-harbour_miryoku:flash
-#+END_SRC
-
-
-**** pluckey
-
-Only the main 5x3 alphas and the main 3 thumb keys are used.
-
-To build for this keyboard,
-
-#+BEGIN_SRC sh :tangle no
-make pluckey:manna-harbour_miryoku:flash
-#+END_SRC
-
-
-**** redox_w
-
-Only the main 5x3 alphas and the main 3 thumb keys are used.
-
-To build for this keyboard,
-
-#+BEGIN_SRC sh :tangle no
-make redox_w:manna-harbour_miryoku:flash
-#+END_SRC
-
-
-**** satt/vision
-
-To build for this keyboard,
-
-#+BEGIN_SRC sh :tangle no
-make satt/vision:manna-harbour_miryoku:flash
-#+END_SRC
-
-
-**** sofle
-
-To build for this keyboard,
-
-#+BEGIN_SRC sh :tangle no
-make sofle:manna-harbour_miryoku:flash
-#+END_SRC
-
-
-**** splitkb/kyria
-
-Only the main 5x3 alphas and the middle 3 lower thumb keys are used.
-
-[[https://raw.githubusercontent.com/manna-harbour/miryoku/master/data/mapping/miryoku-kle-mapping-kyria.png]]
-
-An alternative subset mapping is also provided with the thumb keys shifted one
-position in the direction of thumb extension. To select this mapping, append
-~MIRYOKU_MAPPING=EXTENDED_THUMBS~ to the ~make~ command line when building.
-
-[[https://raw.githubusercontent.com/manna-harbour/miryoku/master/data/mapping/miryoku-kle-mapping-kyria-extended_thumbs.png]]
-
-
-To build for this keyboard,
-
-#+BEGIN_SRC sh :tangle no
-make splitkb/kyria:manna-harbour_miryoku:flash
-make splitkb/kyria:manna-harbour_miryoku:flash MIRYOKU_MAPPING=EXTENDED_THUMBS # extended thumb position
-#+END_SRC
-
-
-**** takashicompany/minizone
-
-The bottom row middle two keys are mapped to left and right mouse buttons.
-
-An alternative subset mapping is also provided with the thumb keys shifted one
-position in the direction of thumb extension. To select this mapping, append
-~MIRYOKU_MAPPING=EXTENDED_THUMBS~ to the ~make~ command line when building.
-
-To build for this keyboard,
-
-#+BEGIN_SRC sh :tangle no
-make takashicompany/minizone:manna-harbour_miryoku:flash # make
-make takashicompany/minizone:manna-harbour_miryoku:flash MIRYOKU_MAPPING=EXTENDED_THUMBS # make, extended thumb position
-make takashicompany/minizone:manna-harbour_miryoku:flash POINTING_DEVICE_ENABLE=yes POINTING_DEVICE_DRIVER=pimoroni_trackball OLED_ENABLE=no # make, with pimoroni trackball
-qmk compile -c -kb takashicompany/minizone -km manna-harbour_miryoku # qmk
-qmk compile -c -kb takashicompany/minizone -km manna-harbour_miryoku -e MIRYOKU_MAPPING=EXTENDED_THUMBS # qmk, extended thumb position
-qmk compile -c -kb takashicompany/minizone -km manna-harbour_miryoku -e POINTING_DEVICE_ENABLE=yes -e POINTING_DEVICE_DRIVER=pimoroni_trackball -e OLED_ENABLE=no # qmk, with pimoroni trackball
-#+END_SRC
-
-
-**** torn
-
-To build for this keyboard,
-
-#+BEGIN_SRC sh :tangle no
-make torn:manna-harbour_miryoku:flash
-#+END_SRC
-
-
-** Additional and Experimental Features
-
-
-*** Bilateral Combinations
-
-- [[https://github.com/manna-harbour/qmk_firmware/issues/29][Bilateral Combinations]]
-
-
-*** Caps Word
-
-[[https://github.com/qmk/qmk_firmware/blob/master/docs/feature_caps_word.md][Caps Word]] is used in place of ~Caps Lock~. Combine with ~Shift~ for ~Caps Lock~.
-
-
-*** Retro Shift
-
-- [[https://github.com/manna-harbour/qmk_firmware/issues/33][Retro Shift]]
-
-
-*** Thumb Combos
-
-~MIRYOKU_KLUDGE_THUMBCOMBOS=yes~
-
-Combo the primary and secondary thumb keys to emulate the tertiary thumb key. Can be used on keyboards with missing or hard to reach tertiary thumb keys or for compatibility with same. Requires suitable keycaps to enable the thumb to press both keys simultaneously.
-
-
-
-*** 𝑥MK
-
-Use Miryoku QMK with any keyboard with [[https://github.com/manna-harbour/xmk][𝑥MK]].
-
-For [[#local-builds][local builds]], merge https://github.com/manna-harbour/qmk_firmware/tree/xmk and build for keyboard ~converter/xmk~.
-
-For [[#workflow-builds][workflow builds]], use the Build Inputs workflow and build with keyboard ~converter/xmk~ and merge ~manna-harbour/qmk_firmware/xmk~, or use the Build Example 𝑥MK workflow.
-
-Also see [[https://github.com/manna-harbour/miryoku_kmonad][Miryoku KMonad]].
-
-
-**
-
-[[https://github.com/manna-harbour][https://raw.githubusercontent.com/manna-harbour/miryoku/master/data/logos/manna-harbour-boa-32.png]]
diff --git a/users/manna-harbour_miryoku/rules.mk b/users/manna-harbour_miryoku/rules.mk
deleted file mode 100644
index c19a5ac046..0000000000
--- a/users/manna-harbour_miryoku/rules.mk
+++ /dev/null
@@ -1,15 +0,0 @@
-# Copyright 2019 Manna Harbour
-# https://github.com/manna-harbour/miryoku
-
-MOUSEKEY_ENABLE = yes
-EXTRAKEY_ENABLE = yes
-AUTO_SHIFT_ENABLE = yes
-TAP_DANCE_ENABLE = yes
-CAPS_WORD_ENABLE = yes
-KEY_OVERRIDE_ENABLE = yes
-
-INTROSPECTION_KEYMAP_C = manna-harbour_miryoku.c # keymaps
-
-include users/manna-harbour_miryoku/custom_rules.mk
-
-include users/manna-harbour_miryoku/post_rules.mk
diff --git a/users/mattly/config.h b/users/mattly/config.h
deleted file mode 100644
index bea04255aa..0000000000
--- a/users/mattly/config.h
+++ /dev/null
@@ -1,5 +0,0 @@
-#pragma once
-
-#define PERMISSIVE_HOLD
-#define TAPPING_TOGGLE 2
-#define TAPPING_TERM 200
diff --git a/users/mattly/mattly.c b/users/mattly/mattly.c
deleted file mode 100644
index 9e8e7cfc97..0000000000
--- a/users/mattly/mattly.c
+++ /dev/null
@@ -1,78 +0,0 @@
-#include "mattly.h"
-
-__attribute__ ((weak))
-layer_state_t layer_state_set_keymap (layer_state_t state) {
- return state;
-}
-
-static uint16_t current_state = 0;
-
-void set_lights_default(void) {
- #ifdef RGBLIGHT_ENABLE
- if (host_keyboard_led_state().caps_lock) {
- rgblight_sethsv_noeeprom(HSV_CAPS);
- } else {
- if (current_state == _BASE_MAC) {
- rgblight_sethsv_noeeprom(HSV_MAC);
- } else if (current_state == _OVER_WIN) {
- rgblight_sethsv_noeeprom(HSV_WIN);
- }
- }
- #endif
-}
-
-void layer_state_set_rgb(layer_state_t state) {
-#ifdef RGBLIGHT_ENABLE
- switch (get_highest_layer(state)) {
- case _SYMBOL:
- rgblight_sethsv_noeeprom(HSV_SYMBOL);
- break;
- case _NAVNUM:
- case _NAVNUM_WIN:
- rgblight_sethsv_noeeprom(HSV_NAVNUM);
- break;
- case _GAME:
- rgblight_sethsv_noeeprom(HSV_GAME);
- break;
- case _FUNCT:
- case _FUNCT_WIN:
- rgblight_sethsv_noeeprom(HSV_FUNCT);
- break;
- default:
- set_lights_default();
- }
-#endif
-}
-
-layer_state_t layer_state_set_user (layer_state_t state) {
- state = update_tri_layer_state(state, _SYMBOL, _NAVNUM, _FUNCT);
- state = update_tri_layer_state(state, _OVER_WIN, _NAVNUM, _NAVNUM_WIN);
- state = update_tri_layer_state(state, _OVER_WIN, _FUNCT, _FUNCT_WIN);
- current_state = get_highest_layer(state);
- layer_state_set_rgb(state);
- return layer_state_set_keymap (state);
-}
-
-bool process_record_user(uint16_t keycode, keyrecord_t *record) {
- switch (keycode) {
- case KC_CAPS:
- #ifdef RGBLIGHT_ENABLE
- set_lights_default();
- #endif
- return true;
- case QK_BOOT:
- #ifdef RGBLIGHT_ENABLE
- rgblight_sethsv_noeeprom(HSV_RESET);
- #endif
- return true;
- default:
- return true;
- }
-}
-
-void keyboard_post_init_user(void) {
-#ifdef RGBLIGHT_ENABLE
- rgblight_enable_noeeprom();
- set_lights_default();
-#endif
-}
diff --git a/users/mattly/mattly.h b/users/mattly/mattly.h
deleted file mode 100644
index 2a151939b8..0000000000
--- a/users/mattly/mattly.h
+++ /dev/null
@@ -1,121 +0,0 @@
-/* Copyright 2019 Matthew Lyon
- *
- * 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/>.
- */
-
-#ifndef USERSPACE
-#define USERSPACE
-
-#include "quantum.h"
-
-enum {
- _BASE_MAC,
- _OVER_WIN,
- _NAVNUM,
- _NAVNUM_WIN,
- _SYMBOL,
- _GAME,
- _FUNCT,
- _FUNCT_WIN,
-};
-
-// == System
-#define TOG_WIN TG(_OVER_WIN)
-#define TOG_GAM TG(_GAME)
-
-// == Thumbs
-// left hand
-#define ESC_HYP MT(MOD_HYPR, KC_ESC)
-#define TAB_NUM LT(_NAVNUM, KC_TAB)
-#define SPC_SFT MT(MOD_LSFT, KC_SPC)
-#define ENT_SYM LT(_SYMBOL, KC_ENT)
-
-// right hand
-#define SPC_SFT MT(MOD_LSFT, KC_SPC)
-#define BSP_SYM LT(_SYMBOL, KC_BSPC)
-#define DEL_WRP MT(MOD_LCTL | MOD_LALT | MOD_LGUI, KC_DEL)
-
-#define NAVLOCK TG(_NAVNUM)
-#define SYMLOCK TG(_SYMBOL)
-
-// == QWERTY
-// left hand home row
-#define A_CTL MT(MOD_LCTL, KC_A)
-#define A_GUI MT(MOD_LGUI, KC_A)
-#define S_ALT MT(MOD_LALT, KC_S)
-#define D_GUI MT(MOD_LGUI, KC_D)
-#define D_CTL MT(MOD_LCTL, KC_D)
-#define F_SFT MT(MOD_LSFT, KC_F)
-// left hand aux
-#define W_CTL MT(MOD_LCTL, KC_W)
-#define W_GUI MT(MOD_LGUI, KC_W)
-#define E_ALT MT(MOD_LALT, KC_E)
-#define R_GUI MT(MOD_LGUI, KC_R)
-#define R_CTL MT(MOD_LCTL, KC_R)
-
-// right hand home row
-#define J_SFT MT(MOD_RSFT, KC_J)
-#define K_GUI MT(MOD_RGUI, KC_K)
-#define K_CTL MT(MOD_RCTL, KC_K)
-#define L_ALT MT(MOD_RALT, KC_L)
-#define MINSCTL MT(MOD_RCTL, KC_MINS)
-#define MINSGUI MT(MOD_RGUI, KC_MINS)
-// right hand aux
-#define U_GUI MT(MOD_RGUI, KC_U)
-#define U_CTL MT(MOD_RCTL, KC_U)
-#define I_ALT MT(MOD_RALT, KC_I)
-#define O_CTL MT(MOD_RCTL, KC_O)
-#define O_GUI MT(MOD_RGUI, KC_O)
-
-// == OS X default keys
-// movement by text
-#define M_BWORD LALT(KC_LEFT)
-#define W_BWORD LCTL(KC_LEFT)
-#define M_FWORD LALT(KC_RIGHT)
-#define W_FWORD LCTL(KC_RIGHT)
-
-#define M_BLINE LGUI(KC_LEFT)
-#define M_ELINE LGUI(KC_RIGHT)
-
-#define M_BPARA LOPT(KC_UP)
-#define M_NPARA LOPT(KC_DOWN)
-
-// gui navigation
-#define M_NXWIN LGUI(KC_GRV) // Next Window
-#define W_NXWIN LALT(KC_TAB)
-#define M_PVWIN LGUI(LSFT(KC_GRV)) // Prev Window
-#define W_PVWIN LALT(LSFT(KC_TAB))
-#define M_NXTAB LGUI(LSFT(KC_RBRC)) // Next Tab
-#define W_NXTAB LCTL(KC_PGDN)
-#define M_PVTAB LGUI(LSFT(KC_LBRC)) // Prev Tab
-#define W_PVTAB LCTL(KC_PGUP)
-#define M_NAVBK LGUI(KC_LBRC) // Navigate Forward
-#define W_NAVBK LALT(KC_LEFT)
-#define M_NAVFW LGUI(KC_RBRC) // Navigate Back
-#define W_NAVFW LALT(KC_RIGHT)
-
-// == UNDERGLOW
-#ifdef RGBLIGHT_ENABLE
-#define HSV_CAPS 55, 255, 255
-#define HSV_ERR 0, 255, 96
-#define HSV_MAC 250, 255, 192
-#define HSV_WIN 250, 192, 128
-#define HSV_SYMBOL 235, 255, 255
-#define HSV_NAVNUM 20, 255, 255
-#define HSV_GAME 40, 255, 255
-#define HSV_FUNCT 200, 255, 255
-#define HSV_RESET 180, 255, 255
-#endif
-
-#endif
diff --git a/users/mattly/readme.md b/users/mattly/readme.md
deleted file mode 100644
index 356992534c..0000000000
--- a/users/mattly/readme.md
+++ /dev/null
@@ -1,10 +0,0 @@
-# mattly's layouts
-
-My layouts are based around:
-
-* making the most from small layouts on keyboards like the iris or planck
-* moving held-modifiers from pinkies to thumbs or home row, giving many keys dual purposes via mod/layer taps
-* easy home-row navigation on a layer, using standard keys, available to all programs, not just a specially-configured editor
-* easy access to punctuation symbols used in the programming languages I work in
-
-[Here is an image](https://lyonheart.us/etc/mattly-keymap.png) with an outdated description of my keymap \ No newline at end of file
diff --git a/users/mattly/rules.mk b/users/mattly/rules.mk
deleted file mode 100644
index 96f0765825..0000000000
--- a/users/mattly/rules.mk
+++ /dev/null
@@ -1,4 +0,0 @@
-SRC += mattly.c
-LTO_ENABLE = yes
-CONSOLE_ENABLE = yes
-RGB_MATRIX_ENABLE = no
diff --git a/users/mechmerlin/changelog.md b/users/mechmerlin/changelog.md
deleted file mode 100644
index aea46beee6..0000000000
--- a/users/mechmerlin/changelog.md
+++ /dev/null
@@ -1,44 +0,0 @@
-# Changelog
-All notable changes to my userspace will be documented in this file.
-
-## [0.4.1] - 2021-10-30
-
-### Added
-- `RGB_DISABLE_WHEN_USB_SUSPENDED` added in `config.h`. Couple of my boards now have per key RGB and have been staying on when my computer sleeps.
-## [0.4.0] - 2021-10-05
-
-### Added
-- Introduced new keycode KV_VER to output the version of QMK. Thanks to drashna for this.
-
-### Changed
-- Updated keymaps to use underscores instead of KC_TRNS as it was getting hard to read for my tired eyes.
-- Updated readmes on my preferred layouts.
-
-## [0.3.0] - 2020-02-02
-### Changed
-- Added the `_CL` layer to all the boards for access to `EE_CLR` and `RESET` keycodes. This was done primarily to avoid triggering `RESET` accidentally.
-- Added a placeholder text macro under the custom keycode `KC_MAC`. Currently set to "meow", but will change as needed in the future.
-
-## [0.2.2] - 2019-04-22
-### Fixed
-- `config.h` usage of turning on `RGBLIGHT_ENABLE` when it is not enabled on boards other than my two clueboards were causing issues with boards that didn't have RGB underglow on it.
-
-## [0.2.1] - 2019-03-01
-### Fixed
-- `config.h` usage of `#ifdef RGBLIGHT_ENABLE` caused problems for other of my boards that had `RGBLIGHT_ENABLE`.
-
-## [0.2.0] - 2019-02-27
-### Changed
-- Moved `AUDIO_CLICKY` from community layout `66_ansi` into user space.
-
-## [0.1.1] - 2018-10-26
-### Added
-- Added a changelog, aka THIS VERY FILE!
-- Added `config.h` to userspace for `RGBLIGHT_SLEEP` feature.
-
-### Changed
-- Spruced up the readme file to better explain the things I use in my keymap for would be keymap snoopers. Also useful as an example when people ask.
-- Use `CTL_T` instead of `MT` for my custom `KC_CTCP` keycode as it was causing issues on some boards.
-
-## [0.1.0] - 2018-08-31
-Initial usage of userspaces!
diff --git a/users/mechmerlin/config.h b/users/mechmerlin/config.h
deleted file mode 100644
index e5f0f397d4..0000000000
--- a/users/mechmerlin/config.h
+++ /dev/null
@@ -1,44 +0,0 @@
-#pragma once
-
-#define TAP_CODE_DELAY 10
-
-#ifdef RGBLIGHT_ENABLE
- #define RGBLIGHT_SLEEP
-#define RGBLIGHT_EFFECT_BREATHING
-#define RGBLIGHT_EFFECT_RAINBOW_MOOD
-#define RGBLIGHT_EFFECT_RAINBOW_SWIRL
-#define RGBLIGHT_EFFECT_SNAKE
-#define RGBLIGHT_EFFECT_KNIGHT
-#define RGBLIGHT_EFFECT_CHRISTMAS
-#define RGBLIGHT_EFFECT_STATIC_GRADIENT
-#define RGBLIGHT_EFFECT_RGB_TEST
-#define RGBLIGHT_EFFECT_ALTERNATING
-#define RGBLIGHT_EFFECT_TWINKLE
-#endif // RGBLIGHT_ENABLE
-
-#ifdef RGB_MATRIX_ENABLE
- #define RGB_DISABLE_WHEN_USB_SUSPENDED
-#endif
-
-#ifdef AUDIO_CLICKY
- #define AUDIO_CLICKY_ON
- #define AUDIO_CLICKY_FREQ_DEFAULT 261.63f
- #define AUDIO_CLICKY_FREQ_MIN 65.41f
- #define AUDIO_CLICKY_FREQ_MAX 1046.5f
- #define AUDIO_CLICKY_FREQ_FACTOR 1.61803f // golden ratio
- #define AUDIO_CLICKY_FREQ_RANDOMNESS 17.0f
-#endif
-
-// Enable features depending on keyboard
-#if defined(KEYBOARD_clueboard_66_hotswap_prototype)
- #ifndef RGBLIGHT_ENABLE
- #define RGBLIGHT_ENABLE
- #endif
- #ifndef AUDIO_CLICKY
- #define AUDIO_CLICKY
- #endif
-#elif defined(KEYBOARD_clueboard_66_hotswap_gen1) || defined(KEYBOARD_clueboard_66_rev4)
- #ifndef AUDIO_CLICKY
- #define AUDIO_CLICKY
- #endif
-#endif
diff --git a/users/mechmerlin/mechmerlin.c b/users/mechmerlin/mechmerlin.c
deleted file mode 100644
index 5c8ecb9007..0000000000
--- a/users/mechmerlin/mechmerlin.c
+++ /dev/null
@@ -1,27 +0,0 @@
-#include "mechmerlin.h"
-#include "version.h"
-
-bool process_record_user(uint16_t keycode, keyrecord_t *record) {
- static uint16_t fnx_layer_timer;
-
- switch (keycode){
- case KC_FNX:
- if(record->event.pressed){
- fnx_layer_timer = timer_read();
- layer_on(_FL);
- } else {
- layer_off(_FL);
- if (timer_elapsed(fnx_layer_timer) < 150) {
- layer_invert(_AL);
- }
- }
- break;
- case KC_VER:
- if (record->event.pressed) {
- send_string_with_delay_P(PSTR(QMK_KEYBOARD "/" QMK_KEYMAP " @ " QMK_VERSION ", Built on: " QMK_BUILDDATE), TAP_CODE_DELAY);
- } else {
- }
- break;
- }
- return true;
-}
diff --git a/users/mechmerlin/mechmerlin.h b/users/mechmerlin/mechmerlin.h
deleted file mode 100644
index 79386e7663..0000000000
--- a/users/mechmerlin/mechmerlin.h
+++ /dev/null
@@ -1,19 +0,0 @@
-#pragma once
-
-#include "quantum.h"
-
-enum userspace_layers {
- _BL = 0, // Base Layer
- _FL, // Function Layer
- _AL, // Arrow Layer
- _CL // Control Layer
-};
-
-// Enum of custom keycodes defined in process_record_user
-enum keycodes {
- KC_FNX, // Hold for FN layer, tap to toggle ARROWS layer.
- KC_VER, // Version macro.
-};
-
-// Custom #defined keycodes
-#define KC_CTCP CTL_T(KC_CAPS)
diff --git a/users/mechmerlin/readme.md b/users/mechmerlin/readme.md
deleted file mode 100644
index 7aa606dba8..0000000000
--- a/users/mechmerlin/readme.md
+++ /dev/null
@@ -1,57 +0,0 @@
-# MechMerlin's Userspace v0.4.0
-
-This is a collection of my most commonly used QMK features.
-
-A majority of my keyboards are smaller than 75%, ANSI, and staggered.
-
-## Layers
-----
-
-### _BL (Base Layer)
-Typical standard QWERTY keymap.
-
-### _FL (Function Layer)
-This layer is commonly accessed via `MO(_FL)` on the base layer. It consists of your typical function key F1 through F12 and some RGB and Backlight controls.
-
-### _AL (Arrow Layer)
-This layer is only present on my 60% boards. I habitually use the bottom right modifiers as arrows.
-
-### _CL (Control Layer)
-This layer is used for the `RESET` and `EE_CLR` keycodes.
-
-## Custom Keycodes
-----
-
-### KC_FNX (Fn Extended)
-
-`KC_FNX` functions as a hold for `MO(X)` and tap for `TG(Y)`. Layer X and Y are different layers.
-
-It is used primarily on my `LAYOUT_60_ansi` boards as my regular toggle (the 1u key to the right of right shift), is not present there.
-
-### KC_CTCP (Control Caps)
-
-This is just a wrapper for `CTL_T(KC_CAPS)`. This is a hold for control and tap for caps lock.
-
-### KC_VER
-
-Output the version of QMK Firmware on device.
-
-## QMK Features
-----
-
-### RGBLIGHT_SLEEP and RGB_DISABLE_WHEN_USB_SUSPENDED
-
-Ensures that when my computer is in sleep mode, the keyboard underglow and inswitch RGB lights will also be off.
-
-### Audio Clicky
-
-If a board has a speaker, enable beeps and boops per switch actuation. This is currently only available on prototype/gen1 clueboard 66_hotswaps.
-
-### Velocikey
-
-[Velocikey](https://github.com/qmk/qmk_firmware/blob/master/docs/feature_velocikey.md) is an RGBLIGHT feature in which the faster you type, the faster the ARE GEE BEES.
-
-### Macros
-
-Basic text macro implemented for future use
-
diff --git a/users/mechmerlin/rules.mk b/users/mechmerlin/rules.mk
deleted file mode 100644
index 043c70fb4d..0000000000
--- a/users/mechmerlin/rules.mk
+++ /dev/null
@@ -1,2 +0,0 @@
-SRC += mechmerlin.c
-LTO_ENABLE = yes
diff --git a/users/mguterl/config.h b/users/mguterl/config.h
deleted file mode 100644
index e69de29bb2..0000000000
--- a/users/mguterl/config.h
+++ /dev/null
diff --git a/users/mguterl/mguterl.c b/users/mguterl/mguterl.c
deleted file mode 100644
index 479c8d15d0..0000000000
--- a/users/mguterl/mguterl.c
+++ /dev/null
@@ -1 +0,0 @@
-#include "mguterl.h"
diff --git a/users/mguterl/mguterl.h b/users/mguterl/mguterl.h
deleted file mode 100644
index 0b2f3938b9..0000000000
--- a/users/mguterl/mguterl.h
+++ /dev/null
@@ -1,67 +0,0 @@
-#pragma once
-#include "quantum.h"
-
-#define LOWER MO(_LOWER)
-#define RAISE MO(_RAISE)
-
-/* Tap for Tab, hold for Hyper (Super+Ctrl+Shift+Alt) */
-#define HPR_TAB ALL_T(KC_TAB)
-
-/* Shift when held, Enter when tapped */
-#define SFT_ENT MT(MOD_RSFT, KC_ENT)
-
-/* Activate util layer while holding space */
-#define SPC_UTL LT(_UTIL, KC_SPC)
-
-/* Control when held, Escape when tapped */
-#define ESC_CTL MT(MOD_LCTL, KC_ESC)
-
-/* Toggle gaming layer */
-#define TG_GAME TG(_GAMING)
-
-/*
- * Make it easy to navigate back and forward in Chrome.
- */
-#define GO_BACK LGUI(KC_LBRC)
-#define GO_FWD LGUI(KC_RBRC)
-
-/*
- * When using a 40% layout, these keycodes make it easy to change tabs in apps
- * like Chrome and VSCode.
- */
-#define GUI_1 LGUI(KC_1)
-#define GUI_2 LGUI(KC_2)
-#define GUI_3 LGUI(KC_3)
-#define GUI_4 LGUI(KC_4)
-#define GUI_5 LGUI(KC_5)
-#define GUI_6 LGUI(KC_6)
-#define GUI_7 LGUI(KC_7)
-#define GUI_8 LGUI(KC_8)
-#define GUI_9 LGUI(KC_9)
-#define GUI_0 LGUI(KC_0)
-
-/*
- * Common layers and keycodes that are shared between Planck and Preonic
- */
-enum ortho_layers {
- _QWERTY,
- _GAMING,
- _UTIL,
- _COLEMAK,
- _DVORAK,
- _LOWER,
- _RAISE,
- _PLOVER,
- _ADJUST
-};
-
-enum ortho_keycodes {
- QWERTY = SAFE_RANGE,
- GAMING,
- UTIL,
- COLEMAK,
- DVORAK,
- PLOVER,
- BACKLIT,
- EXT_PLV
-};
diff --git a/users/mguterl/readme.md b/users/mguterl/readme.md
deleted file mode 100644
index 9dc1a7ebbd..0000000000
--- a/users/mguterl/readme.md
+++ /dev/null
@@ -1,14 +0,0 @@
-Copyright 2019 Michael Guterl michael@diminishing.org @mguterl
-
-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/>.
diff --git a/users/mguterl/rules.mk b/users/mguterl/rules.mk
deleted file mode 100644
index 4ed89c987d..0000000000
--- a/users/mguterl/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-SRC += mguterl.c
diff --git a/users/miketronic/config.h b/users/miketronic/config.h
deleted file mode 100644
index 4123caa5bc..0000000000
--- a/users/miketronic/config.h
+++ /dev/null
@@ -1,12 +0,0 @@
-// Copyright 2023 @miketronic -- Mike B <mxb540@gmail.com>
-// SPDX-License-Identifier: GPL-2.0+
-
-#pragma once
-
-#define DEBOUNCE 10
-#if defined(TAP_DANCE_ENABLE)
-# define TAP_CODE_DELAY 5
-# define TAP_HOLD_CAPS_DELAY 25
-#endif
-#define MACRO_TIMER 5
-#define ENABLE_COMPILE_KEYCODE \ No newline at end of file
diff --git a/users/miketronic/miketronic.c b/users/miketronic/miketronic.c
deleted file mode 100644
index 3c47a72462..0000000000
--- a/users/miketronic/miketronic.c
+++ /dev/null
@@ -1,17 +0,0 @@
-// Copyright 2023 @miketronic -- Mike B <mxb540@gmail.com>
-// SPDX-License-Identifier: GPL-2.0+
-
-#include "miketronic.h"
-
-
-__attribute__ ((weak)) void keyboard_post_init_keymap(void) { }
-
-// Init effect for RGB boards only
-void keyboard_post_init_user(void) {
-#ifdef RGB_MATRIX_ENABLE
- rgblight_enable_noeeprom(); // enables Rgb, without saving settings
- rgblight_sethsv_noeeprom(HSV_ORANGE); // sets the color without saving
- rgb_matrix_mode_noeeprom(RGB_MATRIX_SOLID_COLOR);
-#endif
- keyboard_post_init_keymap();
-} \ No newline at end of file
diff --git a/users/miketronic/miketronic.h b/users/miketronic/miketronic.h
deleted file mode 100644
index 4032215a1d..0000000000
--- a/users/miketronic/miketronic.h
+++ /dev/null
@@ -1,63 +0,0 @@
-// Copyright 2023 @miketronic -- Mike B <mxb540@gmail.com>
-// SPDX-License-Identifier: GPL-2.0+
-
-#pragma once
-#include QMK_KEYBOARD_H
-
-#include "quantum.h"
-#include "wrappers.h"
-#include "action.h"
-#include "version.h"
-#include "process_records.h"
-#ifdef TAP_DANCE_ENABLE
-# include "tapdances.h"
-#endif
-
-enum layer_names {
- _WM,
- _QW,
- _LOWER,
- _RAISE,
- _EX,
- _FN,
- _SYMB
-};
-
-
-// Layer macros
-#define LOWER MO(_LOWER)
-#define RAISE MO(_RAISE)
-#define FN MO(_FN)
-#define EX MO(_EX)
-#define TEX LT(_EX, KC_T) // Tap for "T", hold for Extras layer
-#define BSYM LT(_SYMB, KC_B) // Tap for "B", hold for Symbols layer
-#define JSYM LT(_SYMB, KC_J) // Tap for "J", hold for Symbols layer
-#define FNZ LT(_FN, KC_Z) // Tap for "Z", hold for FN layer
-#define VLOWER LT(_LOWER, KC_V) // Tap for "V", hold for Lower layer
-#define KRAISE LT(_RAISE, KC_K) // Tap for "K", hold for Raise layer
-
-// Mod Tap
-//#define ASFT MT(MOD_LSFT, KC_A) // Tap for "A", hold for Shift
-#define ASFT SFT_T(KC_A) // Tap for "A", hold for Shift
-#define GGUI MT(MOD_LGUI, KC_G) // Tap for "G", hold for OS Key
-#define MGUI MT(MOD_LGUI, KC_M) // Tap for "M", hold for OS Key
-#define CTRLX MT(MOD_LCTL, KC_X) // Tap for "X", hold for Ctrl
-#define CALT MT(MOD_LALT, KC_C) // Tap for "C", hold for Alt
-#define L_ALT MT(MOD_RALT, KC_L) // Tap for "L", hold for Alt
-#define TBSHFT MT(MOD_LSFT, KC_TAB) // Tap for Tab, hold for Shift
-#define SLSHFT MT(MOD_RSFT, KC_SLSH) // Tap for Slash, hold for Shift
-#define SFT_ENT RSFT_T(KC_ENT) // Tap for Enter, hold for Shift
-#define OSSFT OSM(MOD_LSFT) // One shot left Shift
-
-// MISC
-#define CALTDEL LCTL(LALT(KC_DEL)) // Ctrl Alt Del
-#define TSKMGR LCTL(LSFT(KC_ESC)) // Task Manager
-#define CLIP LCTL(LALT(KC_Q)) // Clipboard (Ditto)
-#define SS LCTL(LALT(KC_G)) // Greenshot region
-#define NUM LSFT(KC_3)
-#define AT LSFT(KC_2)
-#define COPY LCTL(KC_C)
-#define PASTE LCTL(KC_V)
-#define ____ KC_TRNS
-#define XXXX KC_NO
-#define XXXXXXX KC_NO
diff --git a/users/miketronic/process_records.c b/users/miketronic/process_records.c
deleted file mode 100644
index 5c60ddf100..0000000000
--- a/users/miketronic/process_records.c
+++ /dev/null
@@ -1,151 +0,0 @@
-// Copyright 2023 @miketronic -- Mike B <mxb540@gmail.com>
-// SPDX-License-Identifier: GPL-2.0+
-
-#include "miketronic.h"
-#include "process_records.h"
-
-__attribute__((weak)) bool process_record_keymap(uint16_t keycode, keyrecord_t *record) {
- return true;
-}
-
-__attribute__((weak)) bool process_record_secrets(uint16_t keycode, keyrecord_t *record) {
- return true;
-}
-
-
-bool process_record_user(uint16_t keycode, keyrecord_t *record) {
-
- switch (keycode) {
- case VERSION:
- if (!record->event.pressed) {
- send_string_with_delay_P(PSTR(QMK_KEYBOARD ":" QMK_KEYMAP "\nVersion:" QMK_VERSION ", built: " QMK_BUILDDATE "\n"), MACRO_TIMER);
- }
- break;
-
- case M01:
- if (record->event.pressed) {
- SEND_STRING("//a11");
- }
- break;
-
- case M02:
- if (record->event.pressed) {
- SEND_STRING("//a12");
- }
- break;
-
- case M03:
- if (record->event.pressed) {
- SEND_STRING("//a08");
- }
- break;
-
- case M04:
- if (record->event.pressed) {
- SEND_STRING("//a09");
- }
- break;
-
- case M05:
- if (record->event.pressed) {
- SEND_STRING("//th");
- }
- break;
-
- case M06:
- if (record->event.pressed) {
- SEND_STRING("//re");
- }
- break;
-
- case M07:
- if (record->event.pressed) {
- SEND_STRING("//yw");
- }
- break;
-
- case M08:
- if (record->event.pressed) {
- tap_random_base64();
- }
- break;
-
- case CCCV: // One key copy/paste
- if (record->event.pressed) {
- copy_paste_timer = timer_read();
- } else {
- if (timer_elapsed(copy_paste_timer) > TAPPING_TERM) { // Hold, copy
- tap_code16(LCTL(KC_C));
- } else { // Tap, paste
- tap_code16(LCTL(KC_V));
- }
- }
- break;
-
- case IENTER: // Tap for letter "i", slight hold for "enter"
- if (record->event.pressed) {
- copy_paste_timer = timer_read();
- } else {
- if (timer_elapsed(copy_paste_timer) > TAPPING_TERM) { // Hold, enter
- tap_code16(KC_ENT);
- } else { // Tap, "i"
- tap_code16(KC_I);
- }
- }
- break;
-
- case PRN:
- if (record->event.pressed) {
- SEND_STRING("()");
- tap_code(KC_LEFT);
- }
- break;
-
- case BRACES:
- if (record->event.pressed) {
- uint8_t shifted = get_mods() & (MOD_MASK_SHIFT);
- if (shifted) {
- unregister_code(KC_LSFT);
- unregister_code(KC_RSFT);
- SEND_STRING("<>"SS_TAP(X_LEFT));
- }
- else {
- SEND_STRING("[]"SS_TAP(X_LEFT));
- }
- }
- break;
-
-#if defined(RGBLIGHT_ENABLE)
- case RGB1:
- if (record->event.pressed) {
- rgblight_sethsv_noeeprom(HSV_BLUE);
- }
- break;
-
- case RGB2:
- if (record->event.pressed) {
- rgblight_sethsv_noeeprom(HSV_RED);
- }
- break;
-
- case RGB3:
- if (record->event.pressed) {
- rgblight_sethsv_noeeprom(HSV_ORANGE);
- }
- break;
-
- case RGB4:
- if (record->event.pressed) {
- rgblight_sethsv_noeeprom(HSV_WHITE);
- }
- break;
-
- case RGB5:
- if (record->event.pressed) {
- rgblight_sethsv_noeeprom(HSV_GREEN);
- }
- break;
-#endif
- }
- return process_record_keymap(keycode, record) && process_record_secrets(keycode, record);
-}
diff --git a/users/miketronic/process_records.h b/users/miketronic/process_records.h
deleted file mode 100644
index 17737490a1..0000000000
--- a/users/miketronic/process_records.h
+++ /dev/null
@@ -1,38 +0,0 @@
-// Copyright 2023 @miketronic -- Mike B <mxb540@gmail.com>
-// SPDX-License-Identifier: GPL-2.0+
-
-#pragma once
-#include "miketronic.h"
-
-
-bool process_record_secrets(uint16_t keycode, keyrecord_t *record);
-bool process_record_keymap(uint16_t keycode, keyrecord_t *record);
-uint16_t copy_paste_timer;
-
-enum custom_keycodes {
- WM = QK_USER,
- QW,
- MAKE,
- VERSION,
- M01,
- M02,
- M03,
- M04,
- M05,
- M06,
- M07,
- M08,
- M09,
- M10,
- M11,
- M12,
- RGB1,
- RGB2,
- RGB3,
- RGB4,
- RGB5,
- IENTER,
- PRN,
- BRACES,
- CCCV
-};
diff --git a/users/miketronic/readme.md b/users/miketronic/readme.md
deleted file mode 100644
index 619a84ec2e..0000000000
--- a/users/miketronic/readme.md
+++ /dev/null
@@ -1,25 +0,0 @@
-Copyright 2023 @miketronic -- Mike B <mxb540@gmail.com>
-SPDX-License-Identifier: GPL-2.0+
-
-# Layout for ortho 4x12 and 3x10 boards
-# My current daily drivers: Planck, Pi40 and Satpad
-
-**Objective:** I tried to make layouts with core functions that are able to be present on the 3x10 boards and adapt those to the "middle 3x10" of the 4x12 boards to make going back and forth between the two board sizes easier.
-
-
-##### My Main Layer - Workman
-
-| | | | | | | | | | | | |
-| ---- |:----:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| ----:|
-| Tab/Esc | Q/Esc | D | R | W | B/SYM | J/SYM | F | U | P | BSPC | BSPC |
-| Tab/Shift | A | S | H | T/EX | G | Y | N | E | O | I/Enter | Enter|
-| Shft | Z | X | M | C | V | K | L | Spc/, | Spc/. | / | Up/Right |
-| FN | Ctrl | OS | Alt |Lower | Spc/Enter |Spc/Enter |Raise | SS| Clip | CopyPaste | Dn/Left |
-
-SYM - Symbols layer on hold
-FN - Function layer on hold
-EX - Extras layer on hold
-Clip - Macro to my clipboard app (Ditto)
-SS - Greenshot screenshot region
-
-##### Will add the other layers as I find time \ No newline at end of file
diff --git a/users/miketronic/rules.mk b/users/miketronic/rules.mk
deleted file mode 100644
index bbd3e4131e..0000000000
--- a/users/miketronic/rules.mk
+++ /dev/null
@@ -1,4 +0,0 @@
-SRC += miketronic.c process_records.c
-ifeq ($(strip $(TAP_DANCE_ENABLE)), yes)
- SRC += $(USER_PATH)/tapdances.c
-endif
diff --git a/users/miketronic/tapdances.c b/users/miketronic/tapdances.c
deleted file mode 100644
index 5fcf66062b..0000000000
--- a/users/miketronic/tapdances.c
+++ /dev/null
@@ -1,33 +0,0 @@
-// Copyright 2023 @miketronic -- Mike B <mxb540@gmail.com>
-// SPDX-License-Identifier: GPL-2.0+
-
-#include "miketronic.h"
-#include "tapdances.h"
-
-
-tap_dance_action_t tap_dance_actions[] = {
-
- [T_BRC] = ACTION_TAP_DANCE_DOUBLE(KC_LBRC, KC_RBRC), // Tap once for Left Brace, twice for Right Brace
- [T_MIN] = ACTION_TAP_DANCE_DOUBLE(KC_MINUS, KC_EQUAL), // Minus, Equals
- [T_UMIN] = ACTION_TAP_DANCE_DOUBLE(KC_UNDS, KC_MINS), // Underscore, Minus
- [T_GESC] = ACTION_TAP_DANCE_DOUBLE(KC_GRAVE, KC_ESCAPE), // Grave, Escape
- [T_SE] = ACTION_TAP_DANCE_DOUBLE(KC_SPC, KC_ENT), // Space, Enter
- [T_MULTDIV] = ACTION_TAP_DANCE_DOUBLE(KC_PAST, KC_PSLS), // Multiply, Divide
- [T_UR] = ACTION_TAP_DANCE_DOUBLE(KC_UP, KC_RGHT), // Up, Right
- [T_DL] = ACTION_TAP_DANCE_DOUBLE(KC_DOWN, KC_LEFT), // Down, Left
- [T_CP] = ACTION_TAP_DANCE_DOUBLE(LCTL(KC_C), LCTL(KC_V)), // Copy, Paste
- [T_DENT] = ACTION_TAP_DANCE_DOUBLE(KC_DOT, KC_ENT), // Dot, Enter
- [T_IENT] = ACTION_TAP_DANCE_DOUBLE(KC_I, KC_ENT), // "I", Enter
- [T_CSPC] = ACTION_TAP_DANCE_DOUBLE(KC_SPC, KC_COMM), // Space, Comma
- [T_DSPC] = ACTION_TAP_DANCE_DOUBLE(KC_SPC, KC_DOT), // Space, Dot
- [T_QEXC] = ACTION_TAP_DANCE_DOUBLE(KC_QUES, KC_EXLM), // "?", "!"
- [T_QESC] = ACTION_TAP_DANCE_DOUBLE(KC_Q, KC_ESC), // "q", Escape
- [T_TE] = ACTION_TAP_DANCE_DOUBLE(KC_TAB, KC_ESC), // Tab, Escape
- [T_20] = ACTION_TAP_DANCE_DOUBLE(KC_2, KC_0), // "2", "0"
- [T_SL] = ACTION_TAP_DANCE_DOUBLE(KC_SLSH, KC_BSLS), // Slash, Backslash
- [T_XX] = ACTION_TAP_DANCE_DOUBLE(KC_LPRN, KC_RPRN), // Left Paren, Right Paren
- [T_YY] = ACTION_TAP_DANCE_DOUBLE(KC_LBRC, KC_RBRC), // Left Bracket, Right Bracket
- [T_ATH] = ACTION_TAP_DANCE_DOUBLE(KC_AT, KC_HASH), // "@", "#"
- [T_PRAM] = ACTION_TAP_DANCE_DOUBLE(KC_PERC, KC_AMPR) // "%", "&"
-};
-
diff --git a/users/miketronic/tapdances.h b/users/miketronic/tapdances.h
deleted file mode 100644
index 8135bac269..0000000000
--- a/users/miketronic/tapdances.h
+++ /dev/null
@@ -1,57 +0,0 @@
-// Copyright 2023 @miketronic -- Mike B <mxb540@gmail.com>
-// SPDX-License-Identifier: GPL-2.0+
-
-#pragma once
-#include "quantum.h"
-
-
-#define TD_BRC TD(T_BRC)
-#define TD_ATH TD(T_ATH)
-#define TD_CSPC TD(T_CSPC)
-#define TD_DSPC TD(T_DSPC)
-#define TD_CP TD(T_CP)
-#define TD_DENT TD(T_DENT)
-#define TD_IENT TD(T_IENT)
-#define TD_MIN TD(T_MIN)
-#define TD_UMIN TD(T_UMIN)
-#define TD_GESC TD(T_GESC)
-#define TD_QESC TD(T_QESC)
-#define TD_QEXC TD(T_QEXC)
-#define TD_PRAM TD(T_PRAM)
-#define TD_SE TD(T_SE)
-#define TD_MD TD(T_MULTDIV)
-#define TD_UR TD(T_UR)
-#define TD_DL TD(T_DL)
-#define TD_TE TD(T_TE)
-#define TD_20 TD(T_20)
-#define TD_SL TD(T_SL)
-#define TD_XX TD(T_XX)
-#define TD_YY TD(T_YY)
-
-
-
-// Tap Dance
-enum tapdance_id{
- T_BRC = 0,
- T_ATH,
- T_CSPC,
- T_DSPC,
- T_CP,
- T_DENT,
- T_IENT,
- T_MIN,
- T_UMIN,
- T_GESC,
- T_QESC,
- T_QEXC,
- T_SE,
- T_MULTDIV,
- T_UR,
- T_DL,
- T_TE,
- T_20,
- T_SL,
- T_XX,
- T_YY,
- T_PRAM
-}; \ No newline at end of file
diff --git a/users/miketronic/wrappers.h b/users/miketronic/wrappers.h
deleted file mode 100644
index 7d955f4172..0000000000
--- a/users/miketronic/wrappers.h
+++ /dev/null
@@ -1,226 +0,0 @@
-// Copyright 2023 @miketronic -- Mike B <mxb540@gmail.com>
-// SPDX-License-Identifier: GPL-2.0+
-
-#pragma once
-#include "miketronic.h"
-
-/* Pattern adapted from users/drashna/wrapper.h
- Define per-layout keymap sections. Also requires a wrapper.
- Example:
- #define LAYOUT_:name_wrapper(...) LAYOUT_:name(__VA_ARGS__)
- const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [_MODS] = LAYOUT_:name _wrapper(
- _______, ___________________BLANK___________________, ...
- ...
- ),
- }
-*/
-
-
-// clang-format off
-# define LAYOUT_ortho_4x12_wrapper(...) LAYOUT_ortho_4x12(__VA_ARGS__)
-# define LAYOUT_planck_grid_wrapper(...) LAYOUT_planck_grid(__VA_ARGS__)
-#if (defined(KEYBOARD_hazel_satpad))
-# define LAYOUT_3x11_wrapper(...) LAYOUT(__VA_ARGS__)
-#endif
-#if (defined(KEYBOARD_mechwild_bde_rev2))
-# define LAYOUT_3x14_wrapper(...) LAYOUT(__VA_ARGS__)
-#endif
-#if (defined(KEYBOARD_hazel_bad_wings))
-# define LAYOUT_split_3x5_3_wrapper(...) LAYOUT_split_3x5_3(__VA_ARGS__)
-#endif
-#if (defined(KEYBOARD_idobao_id75_v1))
-# define LAYOUT_ortho_5x15_wrapper(...) LAYOUT_ortho_5x15(__VA_ARGS__)
-#endif
-
-
-#define _________NUMBER_01__________ KC_7, KC_8, KC_9
-#define _________NUMBER_02__________ KC_4, KC_5, KC_6
-#define _________NUMBER_03__________ KC_1, TD_20, KC_3
-
-
-
-#define _________________QWERTY_L1_________________ KC_Q, KC_W, KC_E, KC_R, KC_T
-#define _________________QWERTY_L2_________________ KC_A, KC_S, KC_D, KC_F, KC_G
-#define _________________QWERTY_L3_________________ FNZ, KC_X, KC_C, VLOWER, KC_B
-
-#define _________________QWERTY_R1_________________ KC_Y, KC_U, KC_I, KC_O, KC_P
-#define _________________QWERTY_R2_________________ KC_H, KC_J, KRAISE, KC_L, KC_SCLN
-#define _________________QWERTY_R3_________________ KC_N, KC_M, KC_COMM, KC_DOT, KC_SLASH
-
-
-
-#define ________________NUMBER_LEFT________________ KC_1, KC_2, KC_3, KC_4, KC_5
-#define ________________NUMBER_RIGHT_______________ KC_6, KC_7, KC_8, KC_9, KC_0
-#define _________________FUNC_LEFT_________________ KC_F1, KC_F2, KC_F3, KC_F4, KC_F5
-#define _________________FUNC_RIGHT________________ KC_F6, KC_F7, KC_F8, KC_F9, KC_F10
-
-#define ______________LONG_FUNC_LEFT_______________ KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6
-#define ______________LONG_FUNC_RIGHT______________ KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12
-
-#define _________________BLANK_5___________________ _______, _______, _______, _______, _______
-#define _________________BLANK_6___________________ _______, _______, _______, _______, _______, _______
-
-#define _________________LOWER_L1__________________ KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC
-#define _________________LOWER_L2__________________ _________________FUNC_LEFT_________________
-#define _________________LOWER_L3__________________ _________________FUNC_RIGHT________________
-
-#define _________________LOWER_R1__________________ KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN
-#define _________________LOWER_R2__________________ _______, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR
-#define _________________LOWER_R3__________________ _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT
-
-#define _______________LOWER_310_L1________________ PRN, BRACES, TD_SL, _______, _______
-#define _______________LOWER_310_L2________________ TD_ATH, TD_PRAM, _______, _______, _______
-#define _______________LOWER_310_L3________________ _______, _______, _______, _______, _______
-
-#define _______________LOWER_310_R1________________ _______, KC_7, KC_8, KC_9, _______
-#define _______________LOWER_310_R2________________ TD_DENT, KC_4, KC_5, KC_6, TD_UR
-#define _______________LOWER_310_R3________________ KC_0, KC_1, TD_20, KC_3, TD_DL
-
-#define _______________LOWER_412_L1________________ _______, PRN, BRACES, TD_SL, _______, _______
-#define _______________LOWER_412_L2________________ _______, TD_ATH, TD_PRAM, _______, _______, _______
-#define _______________LOWER_412_L3________________ _______, _______, _______, _______, _______, _______
-#define _______________LOWER_412_L4________________ _______, _______, _______, _______, _______, _______
-
-#define _______________LOWER_412_R1________________ _______, KC_7, KC_8, KC_9, _______, _______
-#define _______________LOWER_412_R2________________ TD_DENT, KC_4, KC_5, KC_6, _______, _______
-#define _______________LOWER_412_R3________________ KC_0, KC_1, TD_20, KC_3, _______, TD_UR
-#define _______________LOWER_412_R4________________ _______, _______, KC_BSPC, KC_SPC, TD_DENT, TD_DL
-
-
-
-#define _________________RAISE_L1__________________ ________________NUMBER_LEFT________________
-#define _________________RAISE_L2__________________ ___________________BLANK___________________
-#define _________________RAISE_L3__________________ ___________________BLANK___________________
-
-#define _________________RAISE_R1__________________ ________________NUMBER_RIGHT_______________
-#define _________________RAISE_R2__________________ _______, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC
-#define _________________RAISE_R3__________________ _______, KC_HOME, KC_PGDN, KC_PGUP, KC_END
-
-#define _______________RAISE_310_L1________________ QK_BOOT, DB_TOGG, _______, _______, QK_MAKE
-#define _______________RAISE_310_L2________________ KC_LSFT, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD
-#define _______________RAISE_310_L3________________ _______, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD
-
-#define _______________RAISE_310_R1________________ _______, KC_F7, KC_F8, KC_F9, KC_F10
-#define _______________RAISE_310_R2________________ TD_UMIN, KC_F4, KC_F5, KC_F6, KC_F11
-#define _______________RAISE_310_R3________________ _______, KC_F1, KC_F2, KC_F3, KC_F12
-
-#define _______________RAISE_412_L1________________ QK_BOOT, DB_TOGG, _______, _______, _______, QK_MAKE
-#define _______________RAISE_412_L2________________ KC_LSFT, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, WM
-#define _______________RAISE_412_L3________________ _______, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, QW
-
-#define _______________RAISE_412_R1________________ _______, _______, KC_F7, KC_F8, KC_F9, KC_F10
-#define _______________RAISE_412_R2________________ _______, _______, KC_F4, KC_F5, KC_F6, KC_F11
-#define _______________RAISE_412_R3________________ _______, TD_UMIN, KC_F1, KC_F2, KC_F3, KC_F12
-
-
-
-#define ______________EXTRAS_310_L1________________ KC_EXLM, _______, _______, _______, _______
-#define ______________EXTRAS_310_L2________________ KC_LSFT, _______, _______, _______, _______
-#define ______________EXTRAS_310_L3________________ _______, _______, _______, _______, _______
-
-#define ______________EXTRAS_310_R1________________ _______, TD_SL, PRN, BRACES, KC_SCLN
-#define ______________EXTRAS_310_R2________________ QK_LEAD, TD_ATH, TD_PRAM, _______, KC_QUOT
-#define ______________EXTRAS_310_R3________________ _______, _______, KC_COMM, KC_DOT, KC_QUES
-
-#define ______________EXTRAS_412_L1________________ _______, KC_EXLM, _______, _______, _______, _______
-#define ______________EXTRAS_412_L2________________ KC_LSFT, _______, _______, _______, _______, _______
-#define ______________EXTRAS_412_L3________________ _______, _______, _______, _______, _______, _______
-#define ______________EXTRAS_412_L4________________ _______, _______, _______, _______, _______, TD_SE
-
-#define ______________EXTRAS_412_R1________________ _______, TD_SL, PRN, BRACES, KC_SCLN, _______
-#define ______________EXTRAS_412_R2________________ QK_LEAD, TD_ATH, TD_PRAM, _______, KC_QUOT, _______
-#define ______________EXTRAS_412_R3________________ _______, _______, KC_COMM, KC_DOT, KC_QUES, _______
-#define ______________EXTRAS_412_R4________________ TD_SE, _______, _______, _______, _______, _______
-
-
-
-#define _____________FUNCTION_310_L1_______________ CCCV, CLIP, SS, _______, _______
-#define _____________FUNCTION_310_L2_______________ TBSHFT, M05, M06, M07, M08
-#define _____________FUNCTION_310_L3_______________ _______, M01, M02, M03, M04
-
-#define _____________FUNCTION_310_R1_______________ _______, TD_SL, KC_UP, _______, KC_DEL
-#define _____________FUNCTION_310_R2_______________ _______, KC_LEFT, KC_DOWN, KC_RGHT, TD_UR
-#define _____________FUNCTION_310_R3_______________ _______, _______, KC_COMM, KC_DOT, TD_DL
-
-#define _____________FUNCTION_412_L1_______________ CCCV, CLIP, SS, _______, _______, _______
-#define _____________FUNCTION_412_L2_______________ TBSHFT, M05, M06, M07, M08, _______
-#define _____________FUNCTION_412_L3_______________ _______, M01, M02, M03, M04, _______
-#define _____________FUNCTION_412_L4_______________ _______, RGB1, RGB2, RGB3, RGB4, _______
-
-#define _____________FUNCTION_412_R1_______________ _______, T_SL, KC_UP, _______, _______, KC_DEL
-#define _____________FUNCTION_412_R2_______________ _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______
-#define _____________FUNCTION_412_R3_______________ _______, _______, KC_COMM, KC_DOT, KC_QUES, T_UR
-#define _____________FUNCTION_412_R4_______________ _______, _______, _______, _______, _______, T_DL
-
-#define ____________FUNCTION_ID75_TOP_R____________ M06, M07, M08, M09, M10, KC_DEL
-
-
-
-#define _____________SYMBOLS_310_L1________________ KC_DLR, KC_CIRC, KC_LABK, KC_RABK, ____
-#define _____________SYMBOLS_310_L2________________ KC_PERC, KC_COLN, KC_SCLN, KC_PLUS, KC_EQL
-#define _____________SYMBOLS_310_L3________________ KC_AMPR, KC_QUOT, KC_DQUO, KC_ASTR, KC_HASH
-
-#define _____________SYMBOLS_310_R1________________ ____, KC_PIPE, KC_LBRC, KC_RBRC, KC_MINS
-#define _____________SYMBOLS_310_R2________________ XXXX, XXXX, KC_LPRN, KC_RPRN, KC_UNDS
-#define _____________SYMBOLS_310_R3________________ KC_EXLM, KC_QUES, KC_SLSH, KC_BSLS, KC_AT
-
-
-
-#define _________________ADJUST_L1_________________ RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, RGB_TOG
-#define _________________ADJUST_L2_________________ MU_TOGG, CK_TOGG, AU_ON, AU_OFF, AG_NORM
-#define _________________ADJUST_L3_________________ RGB_RMOD,RGB_HUD,RGB_SAD, RGB_VAD, KC_RGB_T
-
-#define _________________ADJUST_R1_________________ KC_SEC1, KC_SEC2, KC_SEC3, KC_SEC4, KC_SEC5
-#define _________________ADJUST_R2_________________ AG_SWAP, QWERTY, COLEMAK, DVORAK, WORKMAN
-#define _________________ADJUST_R3_________________ MG_NKRO, KC_MUTE, KC_VOLD, KC_VOLU, KC_MNXT
-
-
-#define _________FOUR_001__________ KC_BSPC, M08, M08, KC_MUTE
-#define _________FOUR_002__________ KC_ENT, M08, PRN, TD_UR
-#define _________FOUR_003__________ KC_BSLS, TD_ATH, BRACES, TD_DL
-
-#define _________3KEY_LEFT___________ OSSFT, KC_SPC, LOWER
-#define _________3KEY_RIGHT__________ RAISE, KC_ENT, CCCV
-
-#define ________3KEY_ID75_01_________ OSSFT, QK_LEAD, LOWER
-#define ________3KEY_ID75_02_________ KC_7, KC_8, KC_9
-#define ________3KEY_ID75_03_________ KC_4, KC_5, KC_6
-#define ________3KEY_ID75_04_________ KC_1, TD_20, KC_3
-#define ________3KEY_ID75_05_________ KC_SPC, TD_DENT, KC_ENT
-
-
-#define _____________WORKMAN_310_001_L_____________ TD_QESC, KC_D, KC_R, KC_W, BSYM
-#define _____________WORKMAN_310_001_R_____________ JSYM, KC_F, KC_U, KC_P, KC_BSPC
-#define _____________WORKMAN_310_002_L_____________ ASFT, KC_S, KC_H, TEX, KC_G
-#define _____________WORKMAN_310_002_R_____________ KC_Y, KC_N, KC_E, KC_O, KC_I
-#define _____________WORKMAN_310_003_L_____________ FNZ, CTRLX, MGUI, CALT, VLOWER
-#define _____________WORKMAN_310_003_R_____________ KRAISE, KC_L, TD_CSPC, TD_DSPC, SFT_ENT
-#define _____________WORKMAN_310_004_L_____________ FN, KC_LCTL, KC_LGUI, KC_LALT, LOWER
-#define _____________WORKMAN_310_004_R_____________ RAISE, SS, CLIP, CCCV, FN
-
-#define _____________WORKMAN_410_003_L_____________ FNZ, KC_X, KC_M, KC_C, KC_V
-#define _____________WORKMAN_410_003_R_____________ KC_K, KC_L, TD_CSPC, TD_DSPC, SFT_ENT
-
-#define _____________WORKMAN_311_001_L_____________ TD_QESC, KC_D, KC_R, KC_W, BSYM
-#define _____________WORKMAN_311_001_R_____________ JSYM, KC_F, KC_U, KC_P, KC_BSPC
-#define _____________WORKMAN_311_002_L_____________ ASFT, KC_S, KC_H, TEX, KC_G
-#define _____________WORKMAN_311_002_R_____________ KC_Y, KC_N, KC_E, KC_O, KC_I
-#define _____________WORKMAN_311_003_L_____________ FNZ, CTRLX, MGUI, CALT, VLOWER, KC_ENT
-#define _____________WORKMAN_311_003_R_____________ KRAISE, KC_L, TD_CSPC, TD_DSPC, SFT_ENT
-
-#define _____________WORKMAN_412_001_L_____________ TD_TE, TD_QESC, KC_D, KC_R, KC_W, BSYM
-#define _____________WORKMAN_412_001_R_____________ JSYM, KC_F, KC_U, KC_P, KC_BSPC, KC_BSPC
-#define _____________WORKMAN_412_002_L_____________ TBSHFT, KC_A, KC_S, KC_H, TEX, KC_G
-#define _____________WORKMAN_412_002_R_____________ KC_Y, KC_N, KC_E, KC_O, KC_I, KC_ENT
-#define _____________WORKMAN_412_003_L_____________ KC_LSFT, KC_Z, KC_X, KC_M, KC_C, KC_V
-#define _____________WORKMAN_412_003_R_____________ KC_K, KC_L, TD_CSPC, TD_DSPC, SFT_ENT, TD_UR
-#define _____________WORKMAN_412_004_L_____________ FN, KC_LCTL, KC_LGUI, KC_LALT, LOWER, TD_SE
-#define _____________WORKMAN_412_004_R_____________ TD_SE, RAISE, SS, CLIP, CCCV, TD_DL
-
-#define _____________WORKMAN_ID75_TOP_L____________ KC_ESC, M01, M02, M03, M04, M05
-#define _____________WORKMAN_ID75_TOP_R____________ M06, M07, M08, M09, M10, KC_BSPC
-#define _____________WORKMAN_ID75_BOT_L____________ FN, KC_LCTL, KC_LGUI, KC_LALT, LOWER, KC_SPC
-#define _____________WORKMAN_ID75_BOT_R____________ KC_ENT, RAISE, SS, CLIP, CCCV, TD_DL
-
-// clang-format on \ No newline at end of file
diff --git a/users/miles2go/babblePaste.c b/users/miles2go/babblePaste.c
deleted file mode 100644
index 65c9981186..0000000000
--- a/users/miles2go/babblePaste.c
+++ /dev/null
@@ -1,223 +0,0 @@
-/* A library to output the right key shortcut in any common app.
-Given a global variable babble_mode to show the environment and a
-key that calls the paste macro, do the right type of paste.
-Setting the context is done by another macro, or TBD interaction with the host.
-
-Huge thanks to https://en.wikipedia.org/wiki/Table_of_keyboard_shortcuts
-and https://github.com/qmk/qmk_firmware/blob/master/keyboards/planck/keymaps/jeebak/keymap.c
-*/
-
-#include QMK_KEYBOARD_H
-
-#ifdef USE_BABBLEPASTE
-# include "babblePaste.h"
-
-// GLOBAL variable to determine mode. Sets startup default if no eeppom
-uint8_t babble_mode = 0;
-
-// functions to tell the user that the mode has changed
-__attribute__((weak)) void babble_modeswitch_user(uint8_t mode) {}
-__attribute__((weak)) void babble_modeswitch_kb(uint8_t mode) { babble_modeswitch_user( mode); }
-
-
-
-void set_babble_mode(uint8_t id) { babble_mode = id; }
-
-void babble_mode_increment(void) {
- babble_mode += 1;
- if (babble_mode >= BABL_MODEMAX) {
- babble_mode = 0;
- }
- babble_modeswitch_kb(babble_mode);
-}
-
-void babble_mode_decrement(void) {
- if (babble_mode >= 1) {
- babble_mode -= 1;
- } else {
- babble_mode = BABL_MODEMAX - 1;
- }
- babble_modeswitch_kb(babble_mode);
-}
-
-/* this function runs the appropriate babblepaste macro, given
-the global babble_mode and a keycode defined in the babble_keycodes enum.
-
-This could be made faster by splitting into functions sorted by keycode range
-But that makes for a *lot* of ifdefs.
-*/
-bool babblePaste(uint16_t keycode, bool is_pressed ) {
- // handle keys that have up & down behavior first, then OS/mode switching, then macros
-
-// This is the key used for cut & paste (Propeller on Mac, Control elsewhere)
-# ifdef BABL_MODSWAP
- // WARNING, this assumes you have BABL_MAC_MODE defined.
- if (keycode == BABL_PRIMARY_OS_MOD ) {
- if (babble_mode == BABL_MAC_MODE) {
- if (is_pressed) {
- register_code(KC_LGUI);
- } else {
- unregister_code(KC_LGUI);
- }
- } else { // everybody else
-
- if (is_pressed) {
- register_code(KC_LCTL);
- } else {
- unregister_code(KC_LCTL);
- }
- }
- }
-
-// This is the os key not used in cut & paste. (CTRL on mac, GUI elsewhere)
- if (keycode == BABL_SECONDARY_OS_MOD ) {
- if (babble_mode == BABL_MAC_MODE) {
- if (is_pressed) {
- register_code(KC_LCTL);
- } else {
- unregister_code(KC_LCTL);
- }
-
- } else { // everybody else
- if (is_pressed) {
- register_code(KC_LGUI);
- } else {
- unregister_code(KC_LGUI);
- }
- }
- }
-
-// This is the alt key in most OSes. Mostly useful if you want to do hyper on one OS, Meh on another.
- if (keycode == BABL_TERTIARY_OS_MOD ) {
- if (babble_mode == BABL_MAC_MODE) {
- if (is_pressed) {
- register_code(KC_LALT);
- } else {
- unregister_code(KC_LALT);
- }
- } else { // everybody else
-
- if (is_pressed) {
- register_code(KC_LALT);
- } else {
- unregister_code(KC_LALT);
- }
- }
- }
-
-# endif
-
-// below here we are only running macros - don't serve any key up events.
- if (is_pressed == 0 ) {
- return true;
- }
-
-// handle increment functions.
-
-if (keycode == BABL_MODE_INCREMENT) {
- babble_mode_increment();
- return true;
-}
-
-if (keycode == BABL_MODE_DECREMENT) {
- babble_mode_decrement();
- return true;
-}
-
-# ifdef BABL_MAC
- if (keycode == BABL_DO_MAC) {
- set_babble_mode(BABL_MAC_MODE);
- babble_modeswitch_kb(babble_mode);
- return true;
- }
-
- if (babble_mode == BABL_MAC_MODE) {
- babblePaste_mac(keycode);
- }
-# endif
-
-# ifdef BABL_VI
- if (keycode == BABL_DO_VI) {
- set_babble_mode(BABL_VI_MODE);
- babble_modeswitch_kb(babble_mode);
- return true;
- }
- if (babble_mode == BABL_VI_MODE) {
- babblePaste_vi(keycode);
- }
-# endif
-# ifdef BABL_WINDOWS
- if (keycode == BABL_DO_WINDOWS) {
- set_babble_mode(BABL_WINDOWS_MODE);
- babble_modeswitch_kb(babble_mode);
- return true;
- }
- if (babble_mode == BABL_WINDOWS_MODE) {
- babblePaste_win(keycode);
- }
-# endif
-# ifdef BABL_LINUX
- if (keycode == BABL_DO_LINUX) {
- set_babble_mode(BABL_LINUX_MODE);
- babble_modeswitch_kb(babble_mode);
- return true;
- }
- if (babble_mode == BABL_LINUX_MODE) {
- babblePaste_linux(keycode);
- }
-# endif
-# ifdef BABL_EMACS
- if (keycode == BABL_DO_EMACS) {
- set_babble_mode(BABL_EMACS_MODE);
- babble_modeswitch_kb(babble_mode);
- return true;
- }
- if (babble_mode == BABL_EMACS_MODE) {
- babblePaste_emacs(keycode);
- }
-# endif
-# ifdef BABL_NANO
- if (keycode == BABL_DO_NANO) {
- set_babble_mode(BABL_NANO_MODE);
- babble_modeswitch_kb(babble_mode);
- return true;
- }
- if (babble_mode == BABL_NANO_MODE) {
- babblePaste_nano(keycode);
- }
-# endif
-# ifdef BABL_KITTY
- if (keycode == BABL_DO_KITTY) {
- set_babble_mode(BABL_KITTY_MODE);
- babble_modeswitch_kb(babble_mode);
- return true;
- }
- if (babble_mode == BABL_KITTY_MODE) {
- babblePaste_kitty(keycode);
- }
-# endif
-# ifdef BABL_CHROMEOS
- if (keycode == BABL_DO_CHROMEOS) {
- set_babble_mode(BABL_CHROMEOS_MODE);
- babble_modeswitch_kb(babble_mode);
- return true;
- }
- if (babble_mode == BABL_CHROMEOS_MODE) {
- babblePaste_chromeos(keycode);
- }
-# endif
-# ifdef BABL_READMUX
- if (keycode == BABL_DO_READMUX) {
- set_babble_mode(BABL_READMUX_MODE);
- babble_modeswitch_kb(babble_mode);
- return true;
- }
- if (babble_mode == BABL_READMUX_MODE) {
- babblePaste_readmux(keycode);
- }
-# endif
-
- return false;
-}
-
-#endif // USE_BABBLEPASTE
diff --git a/users/miles2go/babblePaste.h b/users/miles2go/babblePaste.h
deleted file mode 100644
index c3073423c2..0000000000
--- a/users/miles2go/babblePaste.h
+++ /dev/null
@@ -1,383 +0,0 @@
-/* A library to output the right key shortcut in any common app.
-Given a global variable babble_mode to show the environment and a
-key that calls the paste macro, do the right type of paste.
-
-Setting the bable_mode is done by another macro, or TBD interaction with the host.
-
-Huge thanks to https://en.wikipedia.org/wiki/Table_of_keyboard_shortcuts
-and jeebak & algernon's keymap
-*/
-
-#pragma once
-#include "quantum.h"
-
-#ifdef USE_BABBLEPASTE
-
-void set_babble_mode(uint8_t id);
-void babble_mode_increment(void);
-void babble_mode_decrement(void);
-void babble_modeswitch_user(uint8_t mode);
-void babble_modeswitch_kb(uint8_t mode);
-
-// manually re-order these if you want to set the order or default.
-enum babble_modes {
-# ifdef BABL_MAC
- BABL_MAC_MODE,
-# endif
-# ifdef BABL_READMUX
- BABL_READMUX_MODE,
-# endif
-# ifdef BABL_WINDOWS
- BABL_WINDOWS_MODE,
-# endif
-# ifdef BABL_VI
- BABL_VI_MODE,
-# endif
-# ifdef BABL_EMACS
- BABL_EMACS_MODE,
-# endif
-# ifdef BABL_NANO
- BABL_NANO_MODE,
-# endif
-# ifdef BABL_KITTY
- BABL_KITTY_MODE,
-# endif
-# ifdef BABL_CHROMEOS
- BABL_CHROMEOS_MODE,
-# endif
-# ifdef BABL_LINUX
- BABL_LINUX_MODE,
-# endif
- BABL_MODEMAX
-};
-
-
-/// Hacks to make it easier to create sendstring macros
-
-//"outer" versions wrap text
-# define OMCTL(arg) SS_DOWN(X_LCTL) arg SS_UP(X_LCTL)
-# define OMGUI(arg) SS_DOWN(X_LGUI) arg SS_UP(X_LGUI)
-# define OMALT(arg) SS_DOWN(X_LALT) arg SS_UP(X_LALT)
-# define OMSFT(...) SS_DOWN(X_LSFT) __VA_ARGS__ SS_UP(X_LSFT)
-//"inner" versions wrap a key tap
-# define IMCTL(arg) SS_DOWN(X_LCTL) SS_TAP(arg) SS_UP(X_LCTL)
-# define IMGUI(arg) SS_DOWN(X_LGUI) SS_TAP(arg) SS_UP(X_LGUI)
-# define IMALT(arg) SS_DOWN(X_LALT) SS_TAP(arg) SS_UP(X_LALT)
-# define IMSFT(arg) SS_DOWN(X_LSFT) SS_TAP(arg) SS_UP(X_LSFT)
-
-# define BABLM(ent, ...) \
- if (ent == keycode) { \
- SEND_STRING(__VA_ARGS__); \
- return true; \
- }
-
-// BabblePaste should be loaded first (header in userspace .h file, before all else)
-// if not,we'll do our best.
-# if defined(NEW_SAFE_RANGE)
-# define BABBLE_START NEW_SAFE_RANGE
-# else
-# if defined(KEYMAP_SAFE_RANGE)
-# define BABBLE_START KEYMAP_SAFE_RANGE
-# else
-# define BABBLE_START SAFE_RANGE
-# endif
-# endif
-
-enum babble_keycodes {
- FIRST = BABBLE_START,
- BABL_MODE_INCREMENT,
- BABL_MODE_DECREMENT,
-# ifdef BABL_MODSWAP
- BABL_PRIMARY_OS_MOD,
- BABL_SECONDARY_OS_MOD,
- BABL_TERTIARY_OS_MOD,
-# endif
-# ifdef BABL_MOVE
- // Movement macros
- // left & right
- BABL_GO_LEFT_1C,
- BABL_GO_RIGHT_1C,
- BABL_GO_LEFT_WORD,
- BABL_GO_RIGHT_WORD,
- BABL_GO_START_LINE,
- BABL_GO_END_LINE,
- // now up & down
- BABL_GO_START_DOC,
- BABL_GO_END_DOC,
- BABL_GO_NEXT_LINE,
- BABL_GO_PREV_LINE,
- BABL_GO_PARA_START,
- BABL_GO_PARA_END,
- BABL_PGDN,
- BABL_PGUP,
- // And the delete options
- BABL_DEL_LEFT_1C, // == backspace, so why bother?
- BABL_DEL_RIGHT_1C, // usually = Del
- BABL_DEL_LEFT_WORD,
- BABL_DEL_RIGHT_WORD,
- BABL_DEL_TO_LINE_END, // delete from cursor to end of line
- BABL_DEL_TO_LINE_START, // delete from cursor to begining line
- BABL_MODE, // print out string saying what mode we're in.
-# endif
-# ifdef BABL_OSKEYS
- BABL_UNDO,
- BABL_REDO,
- BABL_CUT,
- BABL_COPY,
- BABL_PASTE,
- BABL_SELECT_ALL,
- /* not yet implemented
- BABL_SWAP_LAST2C, // swap last characters before the cursor
- BABL_SWAP_LAST2W, // Swap the last two words before the cursor
- */
- // find & replace
- BABL_FIND,
- BABL_FIND_NEXT,
- BABL_FIND_PREV,
- BABL_FIND_REPLACE,
- // GUI or app
- BABL_RUNAPP,
- BABL_SWITCH_APP_NEXT,
- BABL_SWITCH_APP_LAST, // previous
- BABL_WINDOW_NEXT,
- BABL_WINDOW_PREV,
- BABL_WINDOW_NEW,
- BABL_CLOSE_APP,
- BABL_HELP,
- BABL_LOCK,
- BABL_SCREENCAPTURE,
- BABL_SWITCH_KEYBOARD_LAYOUT,
-# endif
-# ifdef BABL_BROWSER
- BABL_BROWSER_NEW_TAB,
- BABL_BROWSER_CLOSE_TAB,
- BABL_BROWSER_REOPEN_LAST_TAB,
- BABL_BROWSER_NEXT_TAB,
- BABL_BROWSER_PREV_TAB,
- BABL_BROWSER_URL_BAR,
- BABL_BROWSER_FORWARD,
- BABL_BROWSER_BACK,
- BABL_BROWSER_FIND,
- BABL_BROWSER_BOOKMARK,
- BABL_BROWSER_DEV_TOOLS, // hard one to remember
- BABL_BROWSER_RELOAD,
- BABL_BROWSER_FULLSCREEN,
- BABL_BROWSER_ZOOM_IN,
- BABL_BROWSER_ZOOM_OUT,
- BABL_BROWSER_VIEWSRC,
-# endif
-# ifdef BABL_APP
- BABL_APP_SAVE, // save file blurs app & os. Move?
- BABL_APP_PASTE_VALUES, // paste only values, or with some special formatting. ctrl shift v chrome, // Ctrl+Alt+V, excel
- // App hotkeys will be flawed, since you may use different spreadsheets across OSes.
-# ifdef BABL_APP_CELLS // spreadsheets and tables
- BABL_APP_CENTER_ALIGN, // Center align contents of a cell in table or spreadsheet.
- BABL_APP_CLEAR_FORMATTING, //
- BABL_APP_SCROLL_ACTIVE_CELL, // scroll to active cell.
- BABL_NEWLINE_IN_CELL, // newline inside cell of table,
- BABL_INSERT_COMMENT, // insert comment
- BABL_INSERT_COL_LEFT, // insert columns to the left
- BABL_INSERT_ROW, // insert row
- BABL_DELETE_ROW, // delete row // excel ctrl minus // chrome ctrl alt minus
- BABL_SELECT_COL, // select column - ctrl space //same in both
- BABL_SELECT_ROW, // select row shift spaced // same in both.
-# endif // BABL_APP_CELLS
-# ifdef BABL_APP_EDITOR
- BABL_APP_MULTI_SELECT, /* www.sublimetext.com/docs/2/multiple_selection_with_the_keyboard.html */
- BABL_APP_SET_MARK, // set editor mark
-# endif // BABL_APP_EDITOR
-# ifdef BABL_APP_WINDOWSPLITTING
- // These aren't useful on most oses.
- BABL_SPLIT_FRAME_VERT,
- BABL_UNSPLIT_FRAME_VERT,
- BABL_SPLIT_FRAME_HORIZONTAL,
- BABL_UNSPLIT_FRAME_HORIZONTAL,
- BABL_NEXT_FRAME,
- BABL_PREV_FRAME,
-# endif
-
-# endif
-
-// Macros for mode switching
-# ifdef BABL_WINDOWS
- BABL_DO_WINDOWS,
-# endif
-# ifdef BABL_MAC
- BABL_DO_MAC,
-# endif
-# ifdef BABL_LINUX
- BABL_DO_LINUX,
-# endif
-# ifdef BABL_EMACS
- BABL_DO_EMACS,
-# endif
-# ifdef BABL_NANO
- BABL_DO_NANO,
-# endif
-# ifdef BABL_KITTY
- BABL_DO_KITTY,
-# endif
-# ifdef BABL_VI
- BABL_DO_VI,
-# endif
-# ifdef BABL_READMUX
- BABL_DO_READMUX,
-# endif
-# ifdef BABL_CHROMEOS
- BABL_DO_CHROMEOS,
-# endif
- BABBLE_END_RANGE
-};
-
-// primary function.
-bool babblePaste(uint16_t keycode, bool is_pressed);
-
-/****************************************************/
-/* All per-os includes and short mode switch macros*/
-# ifdef BABL_WINDOWS
-# define B_WIN BABL_DO_WINDOWS
-bool babblePaste_win(uint16_t keycode);
-# endif
-# ifdef BABL_MAC
-# define B_MAC BABL_DO_MAC
-bool babblePaste_mac(uint16_t keycode);
-# endif
-# ifdef BABL_LINUX
-# define B_LINUX BABL_DO_LINUX
-bool babblePaste_linux(uint16_t keycode);
-# endif
-# ifdef BABL_EMACS
-# define B_EMACS BABL_DO_EMACS
-bool babblePaste_emacs(uint16_t keycode);
-# endif
-# ifdef BABL_NANO
-# define B_NANO BABL_DO_NANO
-bool babblePaste_nano(uint16_t keycode);
-# endif
-# ifdef BABL_KITTY
-# define B_KITTY BABL_DO_KITTY
-bool babblePaste_kitty(uint16_t keycode);
-# endif
-# ifdef BABL_VI
-# define B_VI BABL_DO_VI
-bool babblePaste_vi(uint16_t keycode);
-# endif
-# ifdef BABL_READMUX
-# define B_READ BABL_DO_READMUX
-bool babblePaste_readmux(uint16_t keycode);
-# endif
-# ifdef BABL_CHROMEOS
-# define B_CROM BABL_DO_CHROMEOS
-bool babblePaste_chromeos(uint16_t keycode);
-# endif
-
-
-/****************************************************
-** All keyboard macros for Babble Actions
-*****************************************************/
-# define B_INC BABL_MODE_INCREMENT
-# define B_DEC BABL_MODE_DECREMENT
-# ifdef BABL_MODSWAP
-# define B_1ME BABL_PRIMARY_OS_MOD
-# define B_2ME BABL_SECONDARY_OS_MOD
-# define B_3ME BABL_TERTIARY_OS_MOD
-# endif
-
-# ifdef BABL_MOVE
-# define B_L1C BABL_GO_LEFT_1C
-# define B_R1C BABL_GO_RIGHT_1C
-# define B_L1W BABL_GO_LEFT_WORD
-# define B_R1W BABL_GO_RIGHT_WORD
-# define B_GSOL BABL_GO_START_LINE
-# define B_GEOL BABL_GO_END_LINE
-# define B_GTOP BABL_GO_START_DOC
-# define B_GEND BABL_GO_END_DOC
-# define B_DOWN BABL_GO_NEXT_LINE
-# define B_UP BABL_GO_PREV_LINE
-# define B_PTOP BABL_GO_PARA_START
-# define B_PEND BABL_GO_PARA_END
-# define B_PGDN BABL_PGDN
-# define B_PGUP BABL_PGUP
-//#define B_BKSP BABL_DEL_LEFT_1C == backspace so why bother.
-# define B_DEL BABL_DEL_RIGHT_1C // usually = Del
-# define B_DLW BABL_DEL_LEFT_WORD
-# define B_DRW BABL_DEL_RIGHT_WORD
-# define B_DEOL BABL_DEL_TO_LINE_END // delete from cursor to end of line
-# define B_DSOL BABL_DEL_TO_LINE_START // delete from cursor to begining line
-# define B_MODE BABL_MODE // type out name of current mode.
-# endif
-
-# ifdef BABL_OSKEYS
-# define B_UNDO BABL_UNDO
-# define B_REDO BABL_REDO
-# define B_CUT BABL_CUT
-# define B_COPY BABL_COPY
-# define B_PASTE BABL_PASTE
-# define B_SELALL BABL_SELECT_ALL
-# define B_SELA BABL_SELECT_ALL
-# define B_FIND BABL_FIND
-# define B_FINDN BABL_FIND_NEXT
-# define B_FINDP BABL_FIND_PREV
-# define B_RPLACE BABL_FIND_REPLACE
-# define B_RUNAPP BABL_RUNAPP
-# define B_NAPP BABL_SWITCH_APP_NEXT
-# define B_PAPP BABL_SWITCH_APP_LAST // previous
-# define B_NWIN BABL_WINDOW_NEXT
-# define B_PWIN BABL_WINDOW_PREV
-# define B_WINN BABL_WINDOW_NEW
-# define B_CAPP BABL_CLOSE_APP
-# define B_HELP BABL_HELP
-# define B_LOCK BABL_LOCK
-# define B_SCAP BABL_SCREENCAPTURE
-# define B_KEYB BABL_SWITCH_KEYBOARD_LAYOUT
-# endif
-
-# ifdef BABL_BROWSER
-# define B_NTAB BABL_BROWSER_NEW_TAB
-# define B_CTAB BABL_BROWSER_CLOSE_TAB
-# define B_ROTB BABL_BROWSER_REOPEN_LAST_TAB
-# define B_NXTB BABL_BROWSER_NEXT_TAB
-# define B_PTAB BABL_BROWSER_PREV_TAB
-# define B_NURL BABL_BROWSER_URL_BAR
-# define B_BFWD BABL_BROWSER_FORWARD
-# define B_BBAK BABL_BROWSER_BACK
-# define B_BFND BABL_BROWSER_FIND
-# define B_BOOK BABL_BROWSER_BOOKMARK
-# define B_BDEV BABL_BROWSER_DEV_TOOLS // hard one to remember
-# define B_BRLD BABL_BROWSER_RELOAD
-# define B_BFULL BABL_BROWSER_FULLSCREEN
-# define B_ZIN BABL_BROWSER_ZOOM_IN
-# define B_ZOUT BABL_BROWSER_ZOOM_OUT
-# endif
-
-# ifdef BABL_APP
-# define B_SAVE BABL_APP_SAVE
-# ifdef BABL_APP_CELLS // spreadsheets and tables
-# define B_PASTV BABL_APP_PASTE_VALUES
-# define B_CALN BABL_APP_CENTER_ALIGN
-# define B_CFMT BABL_APP_CLEAR_FORMATTING
-# define B_SCLA BABL_APP_SCROLL_ACTIVE_CELL
-# define B_NCEL BABL_NEWLINE_IN_CELL
-# define B_IPRW BABL_INSERT_ROW_ABOVE
-# define B_ICOL BABL_INSERT_COL_LEFT
-# define B_IROW BABL_INSERT_ROW
-# define B_DROW BABL_DELETE_ROW
-# define B_SELC BABL_SELECT_COL
-# define B_SELR BABL_SELECT_ROW
-# endif // BABL_APP_CELLS
-# ifdef BABL_APP_EDITOR
-# define B_MSEL BABL_APP_MULTI_SELECT
-# define B_MARK BABL_APP_SET_MARK
-/* www.sublimetext.com/docs/2/multiple_selection_with_the_keyboard.html */
-# endif // BABL_APP_EDITOR
-# ifdef BABL_APP_WINDOWSPLITTING
-# define B_VSPLIT BABL_SPLIT_FRAME_VERT
-# define B_VUNSPT BABL_UNSPLIT_FRAME_VERT
-# define B_HSPLIT BABL_SPLIT_FRAME_HORIZONTAL
-# define B_HUNSPT BABL_UNSPLIT_FRAME_HORIZONTAL
-# define B_NXTFM BABL_NEXT_FRAME
-# define B_PRVFM BABL_PREV_FRAME
-# endif // BABL_APP_WINDOWSPLITTING
-# endif // BABL_APP
-
-#endif
diff --git a/users/miles2go/babblePaste.md b/users/miles2go/babblePaste.md
deleted file mode 100644
index 4f68cc4ae8..0000000000
--- a/users/miles2go/babblePaste.md
+++ /dev/null
@@ -1,244 +0,0 @@
-## Babblepaste, a universal translator for keyboard shortcuts
-
-The idea is to have one "paste" key do the right thing for any operating system.
-Put the keyboard in Windows mode, and "paste" means Ctrl-v.
-Switch to Emacs and "Paste" means Ctrl-y. Mac is GUI-v and so on.
-
-Currently supported modes are Windows, OS X, Gnome/KDE, Emacs, VI , ChromeOS, and Readline, with 70+ common macro actions.
-
-The babblepaste library looks for the current OS in the babble_mode global variable.
-To switch modes, run the switch_babble_mode() function, or a pre defined BABL_DO_x macro.
-
-**BE CAREFUL**
- * Not all actions are defined for all OSes. The default is to do nothing.
- * Not all actions are _TESTED_ on all OSes.
- * Keys can have very different meanings between windows in the same OS. If you switch apps without switching modes, bad things can happen.
-
-###To use the library
-#### Add #defines to your config.h.
-```
- #define USE_BABBLEPASTE
-
- //// Uncomment the modes you want to enable
- #define BABL_WINDOWS
- #define BABL_READMUX
- #define BABL_VI
- #define BABL_MAC
- #define BABL_LINUX
- #define BABL_EMACS
- #define BABL_NANO
- #define BABL_CHROMEOS
-
- //// These enable subsets of babble macros. Disable options to save space
- #define BABL_MOVE // Uncomment to add basic cursor movement
- #define BABL_OSKEYS // This adds Cut, paste, window movement and common OS shortcuts
- #define BABL_BROWSER // Browser shortcuts
-
- //// What Browser shortcuts?
- #define BABL_BROWSER_CHROME // Chrome browser, Google apps
- //#define BABL_BROWSER_MS
- //#define BABL_BROWSER_SAFARI // Safari, Apple defaults.
-
- //// applications vary even more between OSes. We'll do our best.
- #define BABL_APP
- // To enable specific App options.
- #define BABL_APP_CELLS // spreadsheets and tables
- #define BABL_APP_EDITOR // Fancy editor commands
- #define BABL_APP_WINDOWSPLITTING // splitting frames & windows
-
- //// What App keybinding is assumed?
- //#define BABL_APP_GOOGLE // Google office
- #define BABL_APP_MSOFFICE // MS office
- //#define BABL_APP_APPLE // Apple office
- #define BABL_APP_SUBLIME
-```
-
-#### Enable Babblepaste in your Keymap
-
-Add the following to your keymap in process_record_user, before the main switch statement.
-```
-#ifdef USE_BABBLEPASTE
- if (keycode > BABBLE_START && keycode < BABBLE_END_RANGE) {
- if (record->event.pressed) {
- babblePaste(keycode, 1);
- } else {
- babblePaste(keycode, 0);
- }
- }
-#endif
-```
-
-#### Add makefile rules
-
-Update your rules.mk to include the modes you want.
-
- `SRC += babblePaste.c babl_windows.c babl_mac.c babl_nano babl_vi.c babl_readmux.c babl_chromeos.c babl_emacs.c babl_linux.c`
-
-
-#### Custom Keycodes
-
-If you are using custom keycodes, update the safe range in your user.h
-```
- #if defined(BABBLE_END_RANGE)
- #define USER_START BABBLE_END_RANGE
- #else
- #if defined(KEYMAP_SAFE_RANGE)
- #define USER_START KEYMAP_SAFE_RANGE
- #else
- #define USER_START SAFE_RANGE
- #endif
- #endif
-```
-
-#### Add Babblepaste actions to your keymap.
-See the full list in babblePaste.h, or the list below
-```
- B_WIN // switch babblepaste to windows mode.
- B_MAC // Mac Mode
- B_LNX // switch to linux
- B_VI // switch to Vi mode
- B_EMAX // switch mode to emacs
- B_NANO // switch mode to emacs
- B_READ // switch to readline /tmux mode
- B_CROM // switch to chromeos mode.
-
- // Swap meaning of modifier key in most ergonomic location based on babble
- // mode. Eg Thumb gets CTL on Win/Linux, pinky gets Windows key. Reverse for
- // OS X. See first line in babblepaste function.
- #define B_1ME BABL_PRIMARY_OS_MOD
- #define B_2ME BABL_SECONDARY_OS_MOD
- #define B_3ME BABL_TERTIARY_OS_MOD
-
-// Macros
- #define B_L1C BABL_GO_LEFT_1C
- #define B_R1C BABL_GO_RIGHT_1C
- #define B_L1W BABL_GO_LEFT_WORD
- #define B_R1W BABL_GO_RIGHT_WORD
- #define B_GSOL BABL_GO_START_LINE
- #define B_GEOL BABL_GO_END_LINE
- #define B_GTOP BABL_GO_START_DOC
- #define B_GEND BABL_GO_END_DOC
- #define B_DOWN BABL_GO_NEXT_LINE
- #define B_UP BABL_GO_PREV_LINE
- #define B_PTOP BABL_GO_PARA_START
- #define B_PEND BABL_GO_PARA_END
- #define B_PGDN BABL_PGDN
- #define B_PGUP BABL_PGUP
- #define B_DEL BABL_DEL_RIGHT_1C
- #define B_DLW BABL_DEL_LEFT_WORD
- #define B_DRW BABL_DEL_RIGHT_WORD
- #define B_DEOL BABL_DEL_TO_LINE_END // delete from cursor to end of line
- #define B_DSOL BABL_DEL_TO_LINE_START // delete from cursor to begining line
- #define B_MODE BABL_MODE //type out name of current mode.
-
- #define B_UNDO BABL_UNDO
- #define B_REDO BABL_REDO
- #define B_CUT BABL_CUT
- #define B_COPY BABL_COPY
- #define B_PASTE BABL_PASTE
- #define B_SELALL BABL_SELECT_ALL
- #define B_SELA BABL_SELECT_ALL
- #define B_FIND BABL_FIND
- #define B_FINDN BABL_FIND_NEXT
- #define B_FINDP BABL_FIND_PREV
- #define B_RPLACE BABL_FIND_REPLACE
- #define B_RUNAPP BABL_RUNAPP
- #define B_NAPP BABL_SWITCH_APP_NEXT
- #define B_PAPP BABL_SWITCH_APP_LAST // previous
- #define B_CAPP BABL_CLOSE_APP
- #define B_HELP BABL_HELP
- #define B_HELP BABL_HELP
- #define B_LOCK BABL_LOCK
- #define B_SCAP BABL_SCREENCAPTURE
- #define B_KEYB BABL_SWITCH_KEYBOARD_LAYOUT
-
- #define B_NTAB BABL_BROWSER_NEW_TAB
- #define B_CTAB BABL_BROWSER_CLOSE_TAB
- #define B_ROTB BABL_BROWSER_REOPEN_LAST_TAB
- #define B_NXTB BABL_BROWSER_NEXT_TAB
- #define B_PTAB BABL_BROWSER_PREV_TAB
- #define B_NURL BABL_BROWSER_URL_BAR
- #define B_BFWD BABL_BROWSER_FORWARD
- #define B_BBAK BABL_BROWSER_BACK
- #define B_BFND BABL_BROWSER_FIND
- #define B_BOOK BABL_BROWSER_BOOKMARK
- #define B_BDEV BABL_BROWSER_DEV_TOOLS // hard one to remember
- #define B_BRLD BABL_BROWSER_RELOAD
- #define B_BFULL BABL_BROWSER_FULLSCREEN
- #define B_ZIN BABL_BROWSER_ZOOM_IN
- #define B_ZOUT BABL_BROWSER_ZOOM_OUT
-
- #define B_SAVE BABL_APP_SAVE
- #define B_PASTV BABL_APP_PASTE_VALUES
- #define B_CALN BABL_APP_CENTER_ALIGN
- #define B_CFMT BABL_APP_CLEAR_FORMATTING
- #define B_SCLA BABL_APP_SCROLL_ACTIVE_CELL
- #define B_NCEL BABL_NEWLINE_IN_CELL
- #define B_IPRW BABL_INSERT_ROW_ABOVE
- #define B_ICOL BABL_INSERT_COL_LEFT
- #define B_IROW BABL_INSERT_ROW
- #define B_DROW BABL_DELETE_ROW
- #define B_SELC BABL_SELECT_COL
- #define B_SELR BABL_SELECT_ROW
-
- #define B_MSEL BABL_APP_MULTI_SELECT
- #define B_MARK BABL_APP_SET_MARK
- #define B_VSPLIT BABL_SPLIT_FRAME_VERT
- #define B_VUNSPT BABL_UNSPLIT_FRAME_VERT
- #define B_HSPLIT BABL_SPLIT_FRAME_HORIZONTAL
- #define B_HUNSPT BABL_UNSPLIT_FRAME_HORIZONTAL
- #define B_NXTFM BABL_NEXT_FRAME
- #define B_PRVFM BABL_PREV_FRAME
-```
-
-####Add babblepaste functions to your keyboard or userspace
-Functions babble_led_user() and babble_led_kb() are called when babble mode is changed.
-```
-void babble_modeswitch_kb(uint8_t mode){
- #ifdef USE_BABBLEPASTE
- writePinLow(B3); writePinLow(B2);
- switch(mode) {
- case(BABL_LINUX_MODE):
- writePinHigh(B2);
- backlight_level(1);
- break;
- case(BABL_MAC_MODE):
- writePinHigh(B3);
- backlight_level(4);
- break;
- }
- // call the user function
- babble_modeswitch_user(mode);
- #endif
-```
-
-
-
-## Development FAQs
-
-**Todos**
-eeprom store state of babble_mode? or update docs so that people can change the order of the enum in babblespace.h?
-
-**You have huge ifdef stanzas instead of functions**
-This fails gracefully if you don't have all options defined. Patch if you can think how to use fewer defines.
-
-**Why not an array of arrays as a lookup instead of a function?**
-This would allow you to store the lookup table in PROGMEM.
-True, but that takes more pre-processor skill than I have, and may be less portable to ARM or other flash mappings.
-
-**Have you tested every key on every platform?**
-No. Be careful, submit a patch.
-
-**Why not change apps App babble modes at the same global level as the OS?**
-This is only a good thing if it doesn't confuse the user. If you can show state of OS vs App, it's probably a good thing.
-
-**Can the OS tell the keyboard what mode to use?**
-The keyboard side is easy to do with virtser_recv & a function that updates babble_mode. It still needs a PC side app to track where the keyboard focus is.
-One could use a keyboard macro to launch an app & switch modes for that app.
-
-## Thanks
-
-Thanks to [wikipedia shortcuts page](https://en.wikipedia.org/wiki/Table_of_keyboard_shortcuts)
-and [Jeebak's keymap](https://github.com/qmk/qmk_firmware/blob/master/keyboards/planck/keymaps/jeebak/keymap.c)
-this [howtogeek shortcuts page](https://www.howtogeek.com/115664/42-text-editing-keyboard-shortcuts-that-work-almost-everywhere/)
-And of course QMK...
diff --git a/users/miles2go/babl_chromeos.c b/users/miles2go/babl_chromeos.c
deleted file mode 100644
index 5e95e1424a..0000000000
--- a/users/miles2go/babl_chromeos.c
+++ /dev/null
@@ -1,103 +0,0 @@
-/* A library to output the right key shortcut in any common app.
-Given a global variable babble_mode to show the environment and a
-key that calls the paste macro, do the right type of paste.
-Setting the context is done by another macro, or TBD interaction with the host.
-
-https://support.google.com/docs/answer/181110?co=GENIE.Platform%3DDesktop&hl=en
-
-*/
-
-#include QMK_KEYBOARD_H
-
-#ifdef USE_BABBLEPASTE
-# include "babblePaste.h"
-
-# ifdef BABL_CHROMEOS
-
-bool babblePaste_chromeos(uint16_t keycode) {
-# ifdef BABL_MOVE
- BABLM(BABL_GO_LEFT_1C, SS_TAP(X_LEFT));
- BABLM(BABL_GO_RIGHT_1C, SS_TAP(X_RIGHT));
- BABLM(BABL_GO_LEFT_WORD, IMCTL(X_LEFT));
- BABLM(BABL_GO_RIGHT_WORD, IMCTL(X_RIGHT));
- BABLM(BABL_GO_START_LINE, SS_TAP(X_HOME));
- BABLM(BABL_GO_END_LINE, SS_TAP(X_END));
- BABLM(BABL_GO_START_DOC, IMCTL(X_HOME));
- BABLM(BABL_GO_END_DOC, IMCTL(X_END));
- BABLM(BABL_GO_NEXT_LINE, SS_TAP(X_DOWN));
- BABLM(BABL_GO_PREV_LINE, SS_TAP(X_UP));
- BABLM(BABL_GO_PARA_START, IMCTL(X_UP)); // untested
- BABLM(BABL_GO_PARA_END, IMCTL(X_DOWN)); // untested
- BABLM(BABL_PGDN, IMGUI(X_DOWN));
- BABLM(BABL_PGUP, IMGUI(X_UP));
- BABLM(BABL_DEL_RIGHT_1C, IMALT(X_BACKSPACE));
- BABLM(BABL_DEL_LEFT_WORD, IMCTL(X_BACKSPACE));
- BABLM(BABL_DEL_RIGHT_WORD, OMSFT(IMCTL(X_RIGHT)) SS_TAP(X_BACKSPACE));
- BABLM(BABL_DEL_TO_LINE_END, OMSFT(IMGUI(X_LEFT)) SS_TAP(X_BACKSPACE));
- BABLM(BABL_DEL_TO_LINE_START, OMSFT(IMGUI(X_RIGHT)) SS_TAP(X_BACKSPACE));
- BABLM(BABL_MODE, ("ChromeOS "));
-# endif
-# ifdef BABL_OSKEYS
- BABLM(BABL_UNDO, SS_LCTL("z"));
- BABLM(BABL_REDO, OMSFT(IMCTL(X_Z)));
- BABLM(BABL_CUT, SS_LCTL("x"));
- BABLM(BABL_COPY, SS_LCTL("c"));
- BABLM(BABL_PASTE, SS_LCTL("v"));
- BABLM(BABL_SELECT_ALL, SS_LCTL("a"));
- BABLM(BABL_FIND, SS_LCTL("f"));
- BABLM(BABL_FIND_NEXT, SS_LCTL("g"));
- BABLM(BABL_FIND_PREV, OMSFT(IMCTL(X_G)));
- BABLM(BABL_WINDOW_NEW, IMCTL(X_N));
- // BABLM( BABL_FIND_REPLACE, () ); // not part of Chrome
- // BABLM( BABL_RUNAPP, SS_TAP(X_LGUI) ); // not sure of this
- BABLM(BABL_SWITCH_APP_NEXT, IMALT(X_TAB));
- BABLM(BABL_SWITCH_APP_LAST, OMSFT(IMALT(X_TAB)));
- BABLM(BABL_CLOSE_APP, OMSFT(IMCTL(X_W)));
- // BABLM( BABL_HELP, OMCTL(IMALT(X_SLASH)) ); // general help
- BABLM(BABL_HELP, IMCTL(X_SLASH)); // this is keyboard accelerator lookup
- BABLM(BABL_LOCK, SS_LGUI("l")); // should be caps?
- BABLM(BABL_SCREENCAPTURE, OMSFT(IMCTL(X_F5)));
- BABLM(BABL_SWITCH_KEYBOARD_LAYOUT, IMCTL(X_SPACE));
-# endif
-# ifdef BABL_BROWSER
- BABLM(BABL_BROWSER_NEW_TAB, SS_LCTL("t"));
- BABLM(BABL_BROWSER_CLOSE_TAB, SS_LCTL("w"));
- BABLM(BABL_BROWSER_REOPEN_LAST_TAB, OMSFT(IMCTL(X_T)));
- BABLM(BABL_BROWSER_NEXT_TAB, IMCTL(X_TAB));
- BABLM(BABL_BROWSER_PREV_TAB, OMSFT(IMCTL(X_TAB)));
- BABLM(BABL_BROWSER_URL_BAR, SS_LCTL("l"));
- BABLM(BABL_BROWSER_FORWARD, IMALT(X_RIGHT));
- BABLM(BABL_BROWSER_BACK, IMALT(X_LEFT));
- ;
- BABLM(BABL_BROWSER_FIND, SS_LCTL("f"));
- BABLM(BABL_BROWSER_BOOKMARK, SS_LCTL("d"));
- BABLM(BABL_BROWSER_DEV_TOOLS, OMSFT(IMCTL(X_I)));
- BABLM(BABL_BROWSER_RELOAD, OMSFT(IMCTL(X_R))); // hard reload w/o cache
- BABLM(BABL_BROWSER_FULLSCREEN, SS_TAP(X_F4)); // untested
- BABLM(BABL_BROWSER_ZOOM_IN, OMSFT(IMCTL(X_EQUAL))); // ctr+ +
- BABLM(BABL_BROWSER_ZOOM_OUT, IMCTL(X_MINUS));
- BABLM(BABL_BROWSER_VIEWSRC, SS_LCTL("u")); // Chrome or firefox
-# endif
-
-# ifdef BABL_APP
- BABLM(BABL_APP_SAVE, SS_LCTL("s"));
- //#ifdef BABL_APP_GOOGLE -- we're going to make an assumption.
- BABLM(BABL_APP_CENTER_ALIGN, OMSFT(IMCTL(X_E)));
- BABLM(BABL_APP_SCROLL_ACTIVE_CELL, IMCTL(X_BACKSPACE));
- BABLM(BABL_NEWLINE_IN_CELL, IMALT(X_ENTER));
- BABLM(BABL_INSERT_COMMENT, OMALT(IMCTL(X_M)));
- BABLM(BABL_APP_CLEAR_FORMATTING, IMCTL(X_BACKSLASH));
- BABLM(BABL_DELETE_ROW, IMALT(X_E) "d");
- BABLM(BABL_INSERT_COL_LEFT, IMALT(X_I) "c"); // o for to the right.
- BABLM(BABL_INSERT_ROW, IMALT(X_I) "w"); // r for above.
- BABLM(BABL_SELECT_COL, IMCTL(X_SPACE));
- BABLM(BABL_SELECT_ROW, IMSFT(X_SPACE));
- BABLM(BABL_DELETE_ROW, OMALT(IMCTL(X_KP_MINUS))); // once selected
-//#endif // BABL_APP_CELLS
-# endif // BABL_APP
-
- // Todo, ring bell, flash light, show user this isn't supported
- return false;
-}
-# endif
-#endif /* chromeos*/
diff --git a/users/miles2go/babl_emacs.c b/users/miles2go/babl_emacs.c
deleted file mode 100644
index aa6e03a5ad..0000000000
--- a/users/miles2go/babl_emacs.c
+++ /dev/null
@@ -1,86 +0,0 @@
-/* A library to output the right key shortcut in any common app.
-Given a global variable babble_mode to show the environment and a
-key that calls the paste macro, do the right type of paste.
-Setting the context is done by another macro, or TBD interaction with the host.
-
-Emacs mode is probably most useful for people who don't usually use emacs
-
-https://www.ast.cam.ac.uk/~vasily/idl/emacs_commands_list.html
-*/
-
-#include QMK_KEYBOARD_H
-
-#ifdef USE_BABBLEPASTE
-# include "babblePaste.h"
-
-# ifdef BABL_EMACS
-
-// probably should allow meta to not be ALT
-# define DMETA IMALT
-
-bool babblePaste_emacs(uint16_t keycode) {
-# ifdef BABL_MOVE
- BABLM(BABL_GO_LEFT_1C, SS_TAP(X_LEFT));
- BABLM(BABL_GO_RIGHT_1C, SS_TAP(X_RIGHT));
- BABLM(BABL_GO_LEFT_WORD, IMALT(X_B));
- BABLM(BABL_GO_RIGHT_WORD, IMALT(X_F));
- BABLM(BABL_GO_START_LINE, SS_LCTL("a"));
- BABLM(BABL_GO_END_LINE, SS_LCTL("e"));
- BABLM(BABL_GO_START_DOC, OMALT(IMSFT(X_COMMA)));
- BABLM(BABL_GO_END_DOC, OMALT(IMSFT(X_DOT)));
- BABLM(BABL_GO_NEXT_LINE, SS_LCTL("n"));
- BABLM(BABL_GO_PREV_LINE, SS_LCTL("p"));
- BABLM(BABL_GO_PARA_START, OMALT(IMSFT(X_LEFT_BRACKET)));
- BABLM(BABL_GO_PARA_END, OMALT(IMSFT(X_RIGHT_BRACKET)));
- BABLM(BABL_PGDN, SS_LCTL("v"));
- BABLM(BABL_PGUP, IMALT(X_V));
- BABLM(BABL_DEL_RIGHT_1C, SS_LCTL("d"));
- BABLM(BABL_DEL_LEFT_WORD, IMCTL(X_BACKSPACE));
- BABLM(BABL_DEL_RIGHT_WORD, IMALT(X_D));
- BABLM(BABL_DEL_TO_LINE_END, SS_LCTL("k"));
- BABLM(BABL_DEL_TO_LINE_START, SS_TAP(X_ESCAPE) "0" SS_LCTL("k"));
- BABLM(BABL_MODE, "Emacs ");
-# endif
-# ifdef BABL_OSKEYS
- BABLM(BABL_UNDO, SS_LCTL("x") "c");
- BABLM(BABL_REDO, SS_LCTL("x") "c"); // arguably
- BABLM(BABL_CUT, SS_LCTL("w"));
- BABLM(BABL_COPY, SS_LALT("w")); // really?
- BABLM(BABL_PASTE, SS_LCTL("y"));
- BABLM(BABL_SELECT_ALL, SS_LCTL("x") "h");
- BABLM(BABL_FIND, SS_LCTL("s"));
- BABLM(BABL_FIND_NEXT, SS_LCTL("s"));
- BABLM(BABL_FIND_PREV, SS_LCTL("r"));
- BABLM(BABL_FIND_REPLACE, OMALT(IMSFT(X_5)));
- // BABLM( BABL_RUNAPP , //(SS_LALT("x") "shell") );// arguably
- BABLM(BABL_RUNAPP, IMALT(X_X) "split-window" SS_TAP(X_ENTER)); // arguably
- BABLM(BABL_WINDOW_NEXT, SS_LCTL("x") "o");
- BABLM(BABL_WINDOW_PREV, SS_LCTL("x") "o"); // arguably
- // BABLM( BABL_WINDOW_NEW, IMCTL(X_X)"n" ); //
- BABLM(BABL_CLOSE_APP, SS_LCTL("x") "c");
- BABLM(BABL_HELP, SS_LCTL("h") "a"); // start search in help
- // BABLM( BABL_LOCK, () ); // lock buffer? Too many options.
- // BABLM( BABL_SCREENCAPTURE, () ); // requires plugin?
-
-# endif
-# ifdef BABL_BROWSER
-/* you get to figure w3 out */
-# endif
-
-# ifdef BABL_APP
- BABLM(BABL_APP_SAVE, SS_LCTL("x") SS_LCTL("s"));
- BABLM(BABL_APP_SET_MARK, IMCTL(X_SPACE));
- /// BABLM( BABL_APP_MULTI_SELECT, SS_LCTL("x") "rt" ); // arguably
- BABLM(BABL_SPLIT_FRAME_VERT, SS_LCTL("x") "3");
- BABLM(BABL_UNSPLIT_FRAME_VERT, SS_LCTL("u") SS_LCTL("x") "0");
- BABLM(BABL_SPLIT_FRAME_HORIZONTAL, SS_LCTL("x") "2");
- BABLM(BABL_UNSPLIT_FRAME_HORIZONTAL, SS_LCTL("u") SS_LCTL("x") "0");
- BABLM(BABL_NEXT_FRAME, SS_LCTL("x") "o");
- BABLM(BABL_PREV_FRAME, SS_LCTL("u") "-1" SS_LCTL("x") "o");
-# endif
-
- // Todo, ring bell, flash light, show user this isn't supported
- return false;
-}
-# endif /* emacs mode*/
-#endif
diff --git a/users/miles2go/babl_kitty.c b/users/miles2go/babl_kitty.c
deleted file mode 100644
index 2a4e0d2df4..0000000000
--- a/users/miles2go/babl_kitty.c
+++ /dev/null
@@ -1,153 +0,0 @@
-/* Keyboard mappings for Kitty terminal
-https://sw.kovidgoyal.net/kitty/index.html#
-
- A library to output the right key shortcut in any common app.
-Given a global variable babble_mode to show the environment and a
-key that calls the paste macro, do the right type of paste.
-Setting the context is done by another macro, or TBD interaction with the host.
-
-Huge thanks to https://en.wikipedia.org/wiki/Table_of_keyboard_shortcuts
-and
-https://github.com/qmk/qmk_firmware/blob/master/keyboards/planck/keymaps/jeebak/keymap.c
-*/
-
-#include QMK_KEYBOARD_H
-
-// #define TAB_MEANS TAB
-/* #define TAB_MEANS_TAB to keep the meaning of "tab" and "window" used in kitty documentation. .
- * Leaving tab undefined will mean that each babble window command applies to a tab,
- * and each babble tab command applies to a window inside the kitty OS window.
- */
-//#define TAB_MEANS_TAB
-
-#ifdef USE_BABBLEPASTE
-# include "babblePaste.h"
-
-# ifdef BABL_KITTY
-
-bool babblePaste_kitty(uint16_t keycode) {
-# ifdef BABL_MOVE
- BABLM(BABL_GO_LEFT_1C, SS_TAP(X_LEFT));
- BABLM(BABL_GO_RIGHT_1C, SS_TAP(X_RIGHT));
- BABLM(BABL_GO_LEFT_WORD, IMCTL(X_LEFT));
- BABLM(BABL_GO_RIGHT_WORD, IMCTL(X_RIGHT));
- BABLM(BABL_GO_START_LINE, SS_TAP(X_HOME));
- BABLM(BABL_GO_END_LINE, SS_TAP(X_END));
- BABLM(BABL_GO_START_DOC, OMSFT(IMCTL(X_HOME)));
- BABLM(BABL_GO_END_DOC, OMSFT(IMCTL(X_END)));
- // leaving these for command line editing.
- BABLM(BABL_GO_NEXT_LINE, SS_TAP(X_DOWN));
- BABLM(BABL_GO_PREV_LINE, SS_TAP(X_UP));
- // These are for kitty scrolling by one line
- // BABLM(BABL_GO_NEXT_LINE, OMSFT(IMCTL(X_DOWN)));
- // BABLM(BABL_GO_PREV_LINE, OMSFT(IMCTL(X_UP)));
- // passthrough
- BABLM(BABL_PGDN, OMSFT(IMCTL(X_PGDN))); // kitty pagedown
- BABLM(BABL_PGUP, OMSFT(IMCTL(X_PGUP))); // kitty pageup
- // passthrough to commanrd line/shell.
- BABLM(BABL_DEL_RIGHT_1C, SS_LCTL("d"));
- BABLM(BABL_DEL_LEFT_WORD, SS_LCTL("w")); // meta-DEL instead?
- BABLM(BABL_DEL_RIGHT_WORD, SS_LALT("d"));
- BABLM(BABL_DEL_TO_LINE_END, SS_LCTL("k"));
- BABLM(BABL_DEL_TO_LINE_START, SS_LCTL("u"));
- BABLM(BABL_GO_PARA_START, IMCTL(X_UP));
- BABLM(BABL_GO_PARA_END, IMCTL(X_DOWN));
- BABLM(BABL_MODE, "Kitty! ");
-# endif
-# ifdef BABL_OSKEYS
- // cut isn't real, undo/redo are passthrough.
- BABLM(BABL_UNDO, SS_LCTL("z"));
- BABLM(BABL_REDO, SS_LCTL("y"));
- BABLM(BABL_CUT, OMSFT(IMCTL(X_X)));
- BABLM(BABL_COPY, OMSFT(IMCTL(X_C)));
- BABLM(BABL_PASTE, OMSFT(IMCTL(X_V)));
- BABLM(BABL_SELECT_ALL, SS_LCTL("a"));
- BABLM(BABL_FIND, SS_LCTL("f")); // passthrough.
- // BABLM(BABL_CLOSE_APP, IMALT(X_F4)); // gnome.
- // BABLM(BABL_HELP, SS_TAP(X_F1)); // script to pop open kitty web page?
- // 2 passthrough.
- BABLM(BABL_FIND_NEXT, SS_LCTL("g")); // Gnome*/
- BABLM(BABL_FIND_PREV, OMSFT(IMCTL(X_G))); // Gnome*/
- // BABLM(BABL_FIND_NEXT (SS_LALT(X_F3)) ); //KDE */
- /* BABLM( BABL_FIND_REPLACE , (SS_LCTL("r")) ); // KDE */
- // BABLM(BABL_FIND_REPLACE, SS_LCTL("h")); // Gnome*/
- BABLM(BABL_RUNAPP, OMSFT(IMCTL(X_O))); // pass current selection to program.
- BABLM(BABL_SWITCH_APP_NEXT, IMGUI(X_TAB));
- // BABLM(BABL_SWITCH_APP_LAST, OMSFT(IMALT(X_TAB)));
- BABLM(BABL_WINDOW_NEXT, IMGUI(X_GRAVE)); // next OS window of kitty.
- BABLM(BABL_WINDOW_PREV, OMSFT(IMGUI(X_GRAVE))); // NA?
-# ifdef TAB_MEANS_TAB
- BABLM(BABL_WINDOW_NEW, OMSFT(IMCTL(X_ENTER))); // a window is a window
-# else
- BABLM(BABL_WINDOW_NEW, OMSFT(IMCTL(X_T))); // a window is a tab
-# endif
- // KITTY - missing close window.
- // BABLM( BABL_HELP, (SS_TAP(X_F1)) ); // NA?
- // BABLM(BABL_LOCK, OMCTL(IMALT(X_L))); // NA passthrough
- // BABLM(BABL_SCREENCAPTURE, IMSFT(X_PRINT_SCREEN)); // NA passthrough
-# endif
-# ifdef BABL_BROWSER
-
-# ifdef TAB_MEANS_TAB
- // option A - do tab when I say tab.
- BABLM(BABL_BROWSER_NEW_TAB, OMSFT(IMCTL(X_T)));
- BABLM(BABL_BROWSER_CLOSE_TAB, OMSFT(IMCTL(X_Q)));
- BABLM(BABL_BROWSER_NEXT_TAB, OMSFT(IMCTL(X_RIGHT)));
- BABLM(BABL_BROWSER_PREV_TAB, OMSFT(IMCTL(X_LEFT)));
- // ok, this is a bit of a stretch, overloading meaning of forwards/backwards
- BABLM(BABL_BROWSER_FORWARD, OMSFT(IMCTL(X_DOT))); // move current kitty tab forwards
- BABLM(BABL_BROWSER_BACK, OMSFT(IMCTL(X_COMMA))); // move current kitty tab back
- // requires kitty config of "map ctrl+shift+f7 detach_window"
- BABLM(BABL_BROWSER_REOPEN_LAST_TAB, IMCTL(X_F7)); // pop current frame into a window
-# else // tab means window/frame.
- // option B - do Kitty window (frame) when I say tab
- BABLM(BABL_BROWSER_NEW_TAB, OMSFT(IMCTL(X_ENTER)));
- BABLM(BABL_BROWSER_NEXT_TAB, OMSFT(IMCTL(X_LBRC)));
- BABLM(BABL_BROWSER_PREV_TAB, OMSFT(IMCTL(X_RBRC)));
- // ok, this is a bit of a stretch, overloading meaning of forwards/backwards
- BABLM(BABL_BROWSER_FORWARD, OMSFT(IMCTL(X_F)));
- BABLM(BABL_BROWSER_BACK, OMSFT(IMCTL(X_B)));
- // kitty - questionable mental model - reopen current frame as a window
- // requires kitty config of "map ctrl+shift+f6 detach_frame"
- BABLM(BABL_BROWSER_REOPEN_LAST_TAB, IMCTL(X_F6)); // pop current frame into a window
-# endif // tab means tab
-
- // BABLM(BABL_BROWSER_FIND, SS_LCTL("f"));
- BABLM(BABL_BROWSER_BOOKMARK, SS_LCTL(SS_LSFT(SS_LALT("t")))); // bookmark == set tab title.
- BABLM(BABL_BROWSER_DEV_TOOLS, OMSFT(IMCTL(X_F2))); // edit kitty config.
- BABLM(BABL_BROWSER_RELOAD, OMSFT(IMCTL(X_DEL))); // reset terminal
- BABLM(BABL_BROWSER_FULLSCREEN, OMSFT(IMCTL(X_F11)));
- BABLM(BABL_BROWSER_ZOOM_IN, OMSFT(IMCTL(X_EQUAL)));
- BABLM(BABL_BROWSER_ZOOM_OUT, OMSFT(IMCTL(X_MINUS)));
- // Again, breaking model to overload "view source"
- BABLM(BABL_BROWSER_VIEWSRC, OMSFT(IMCTL(X_O))); // open URL in browser
-
-# endif
-# ifdef BABL_APP
- BABLM(BABL_APP_SAVE, SS_LCTL("s")); // passthrough.
-# ifdef TAB_MEANS_TAB // frames are called windows.
- BABLM(BABL_SPLIT_FRAME_VERT, OMSFT(IMCTL(X_ENTER))); // add new frame in kitty window
- BABLM(BABL_UNSPLIT_FRAME_VERT, OMSFT(IMCTL(X_W))); // close window
- // BUG, this breaks the mental model. move the current frame forward/back in rotation
- BABLM(BABL_SPLIT_FRAME_HORIZONTAL, OMSFT(IMCTL(X_F)));
- BABLM(BABL_UNSPLIT_FRAME_HORIZONTAL, OMSFT(IMCTL(X_B)));
- // KITTY - missing ctrl shift ` = move frame to top.
- BABLM(BABL_NEXT_FRAME, OMSFT(IMCTL(X_RBRC)));
- BABLM(BABL_PREV_FRAME, OMSFT(IMCTL(X_LBRC)));
-# else // splits are tabs
- BABLM(BABL_SPLIT_FRAME_VERT, OMSFT(IMCTL(X_T)));
- BABLM(BABL_UNSPLIT_FRAME_VERT, OMSFT(IMCTL(X_Q))); // close Tab
- BABLM(BABL_NEXT_FRAME, OMSFT(IMCTL(X_RIGHT)));
- BABLM(BABL_PREV_FRAME, OMSFT(IMCTL(X_LEFT)));
- // ok, this is a bit of a stretch, overloading meaning of forwards/backwards
- BABLM(BABL_SPLIT_FRAME_HORIZONTAL, OMSFT(IMCTL(X_DOT))); // move current kitty tab forwards
- BABLM(BABL_UNSPLIT_FRAME_HORIZONTAL, OMSFT(IMCTL(X_COMMA))); // move current kitty tab back
-# endif // tab means tab
-# endif
-
- // Todo, ring bell, flash light, show user this isn't supported
- return false;
-}
-
-# endif /* kitty mode */
-#endif
diff --git a/users/miles2go/babl_linux.c b/users/miles2go/babl_linux.c
deleted file mode 100644
index 4d8e340b01..0000000000
--- a/users/miles2go/babl_linux.c
+++ /dev/null
@@ -1,102 +0,0 @@
-/* A library to output the right key shortcut in any common app.
-Given a global variable babble_mode to show the environment and a
-key that calls the paste macro, do the right type of paste.
-Setting the context is done by another macro, or TBD interaction with the host.
-
-Huge thanks to https://en.wikipedia.org/wiki/Table_of_keyboard_shortcuts
-and
-https://github.com/qmk/qmk_firmware/blob/master/keyboards/planck/keymaps/jeebak/keymap.c
-*/
-
-#include QMK_KEYBOARD_H
-
-#ifdef USE_BABBLEPASTE
-# include "babblePaste.h"
-
-# ifdef BABL_LINUX
-
-bool babblePaste_linux(uint16_t keycode) {
-# ifdef BABL_MOVE
- BABLM(BABL_GO_LEFT_1C, SS_TAP(X_LEFT));
- BABLM(BABL_GO_RIGHT_1C, SS_TAP(X_RIGHT));
- BABLM(BABL_GO_LEFT_WORD, IMCTL(X_LEFT));
- BABLM(BABL_GO_RIGHT_WORD, IMCTL(X_RIGHT));
- BABLM(BABL_GO_START_LINE, SS_TAP(X_HOME));
- BABLM(BABL_GO_END_LINE, SS_TAP(X_END));
- BABLM(BABL_GO_START_DOC, IMCTL(X_HOME));
- BABLM(BABL_GO_END_DOC, IMCTL(X_END));
- BABLM(BABL_GO_NEXT_LINE, SS_TAP(X_DOWN));
- BABLM(BABL_GO_PREV_LINE, SS_TAP(X_UP));
- BABLM(BABL_GO_PARA_START, IMCTL(X_UP));
- BABLM(BABL_GO_PARA_END, IMCTL(X_DOWN));
- BABLM(BABL_PGDN, SS_TAP(X_PGDN));
- BABLM(BABL_PGUP, SS_TAP(X_PGUP));
- BABLM(BABL_DEL_RIGHT_1C, SS_TAP(X_DELETE));
- BABLM(BABL_DEL_LEFT_WORD, IMCTL(X_BACKSPACE));
- BABLM(BABL_DEL_RIGHT_WORD, IMCTL(X_DELETE));
- BABLM(BABL_DEL_TO_LINE_END, IMSFT(X_HOME) SS_TAP(X_DELETE));
- BABLM(BABL_DEL_TO_LINE_START, IMSFT(X_END) SS_TAP(X_DELETE));
- BABLM(BABL_MODE, "Linux ");
-# endif
-# ifdef BABL_OSKEYS
- BABLM(BABL_UNDO, SS_LCTL("z"));
- BABLM(BABL_REDO, SS_LCTL("y"));
- BABLM(BABL_CUT, SS_LCTL("x"));
- BABLM(BABL_COPY, SS_LCTL("c"));
- BABLM(BABL_PASTE, SS_LCTL("v"));
- BABLM(BABL_SELECT_ALL, SS_LCTL("a"));
- BABLM(BABL_FIND, SS_LCTL("f"));
- BABLM(BABL_CLOSE_APP, IMALT(X_F4));
- BABLM(BABL_HELP, SS_TAP(X_F1));
- // BABLM(BABL_FIND_NEXT (SS_LALT(X_F3)) ); //KDE */
- BABLM(BABL_FIND_NEXT, SS_LCTL("g")); // Gnome*/
- BABLM(BABL_FIND_PREV, OMSFT(IMCTL(X_G))); // Gnome*/
- /* BABLM( BABL_FIND_REPLACE , (SS_LCTL("r")) ); // KDE */
- BABLM(BABL_FIND_REPLACE, SS_LCTL("h")); // Gnome*/
- BABLM(BABL_RUNAPP, IMALT(X_F2)); // Gnome
- BABLM(BABL_SWITCH_APP_NEXT, IMALT(X_TAB));
- BABLM(BABL_SWITCH_APP_LAST, OMSFT(IMALT(X_TAB)));
- BABLM(BABL_WINDOW_NEXT, OMCTL(IMALT(X_PGUP))); // Gnome, sometimes
- BABLM(BABL_WINDOW_PREV, OMCTL(IMALT(X_PGDN)));
- BABLM(BABL_WINDOW_NEW, IMCTL(X_N));
- // BABLM( BABL_HELP, (SS_TAP(X_F1)) ); // NA?
- BABLM(BABL_LOCK, OMCTL(IMALT(X_L)));
- BABLM(BABL_SCREENCAPTURE, IMSFT(X_PRINT_SCREEN));
-# endif
-# ifdef BABL_BROWSER
- BABLM(BABL_BROWSER_NEW_TAB, SS_LCTL("t"));
- BABLM(BABL_BROWSER_CLOSE_TAB, SS_LCTL("w"));
- BABLM(BABL_BROWSER_REOPEN_LAST_TAB, OMSFT(IMCTL(X_T)));
- BABLM(BABL_BROWSER_NEXT_TAB, SS_LCTL(SS_TAP(X_TAB)));
- BABLM(BABL_BROWSER_PREV_TAB, OMSFT(IMCTL(X_TAB)));
- BABLM(BABL_BROWSER_URL_BAR, SS_LCTL("l"));
- BABLM(BABL_BROWSER_FORWARD, IMALT(X_RIGHT));
- BABLM(BABL_BROWSER_BACK, IMALT(X_LEFT));
- BABLM(BABL_BROWSER_FIND, SS_LCTL("f"));
- BABLM(BABL_BROWSER_BOOKMARK, SS_LCTL("d"));
- BABLM(BABL_BROWSER_DEV_TOOLS, SS_LCTL("t")); // Chrome
- // chrome
- BABLM(BABL_BROWSER_RELOAD, IMCTL(X_F5)); // hard reload w/o cache
- BABLM(BABL_BROWSER_FULLSCREEN, SS_TAP(X_F11)); // command shift F
- BABLM(BABL_BROWSER_ZOOM_IN, OMSFT(IMCTL(X_EQUAL))); // ctr+ +
- BABLM(BABL_BROWSER_ZOOM_OUT, IMCTL(X_MINUS));
- BABLM(BABL_BROWSER_VIEWSRC, SS_LCTL("u")); // Chrome or firefox
-# endif
-# ifdef BABL_APP
- BABLM(BABL_APP_SAVE, SS_LCTL("s"));
- // on linux we'd probably use tmux or screen. Some terminal software also
- // allows this.
- // BABLM( BABL_SPLIT_FRAME_VERT, () );
- // BABLM( BABL_UNSPLIT_FRAME_VERT, () );
- // BABLM( BABL_SPLIT_FRAME_HORIZONTAL, () );
- // BABLM( BABL_UNSPLIT_FRAME_HORIZONTAL, () );
- // BABLM( BABL_NEXT_FRAME, () );
- // BABLM( BABL_PREV_FRAME, () );
-# endif
-
- // Todo, ring bell, flash light, show user this isn't supported
- return false;
-}
-
-# endif /* linux mode */
-#endif
diff --git a/users/miles2go/babl_mac.c b/users/miles2go/babl_mac.c
deleted file mode 100644
index fd67172cc8..0000000000
--- a/users/miles2go/babl_mac.c
+++ /dev/null
@@ -1,152 +0,0 @@
-/* A library to output the right key shortcut in any common app.
-Given a global variable babble_mode to show the environment and a
-key that calls the paste macro, do the right type of paste.
-Setting the context is done by another macro, or TBD interaction with the host.
-
-Huge thanks to https://en.wikipedia.org/wiki/Table_of_keyboard_shortcuts
-and https://github.com/qmk/qmk_firmware/blob/master/keyboards/planck/keymaps/jeebak/keymap.c
-*/
-
-#include QMK_KEYBOARD_H
-
-#ifdef USE_BABBLEPASTE
-# include "babblePaste.h"
-
-# ifdef BABL_MAC
-
-bool babblePaste_mac(uint16_t keycode) {
-# ifdef BABL_MOVE
- BABLM(BABL_GO_LEFT_1C, SS_TAP(X_LEFT));
- BABLM(BABL_GO_RIGHT_1C, SS_TAP(X_RIGHT));
- BABLM(BABL_GO_LEFT_WORD, IMALT(X_LEFT));
- BABLM(BABL_GO_RIGHT_WORD, IMALT(X_RIGHT));
- BABLM(BABL_GO_START_LINE, IMGUI(X_LEFT));
- BABLM(BABL_GO_END_LINE, IMGUI(X_RIGHT));
- BABLM(BABL_GO_START_DOC, IMGUI(X_UP));
- BABLM(BABL_GO_END_DOC, IMGUI(X_DOWN));
- BABLM(BABL_GO_NEXT_LINE, SS_TAP(X_DOWN));
- BABLM(BABL_GO_PREV_LINE, SS_TAP(X_UP));
- BABLM(BABL_GO_PARA_START, IMALT(X_UP));
- BABLM(BABL_DEL_RIGHT_1C, SS_TAP(X_DELETE));
- BABLM(BABL_GO_PARA_END, IMALT(X_DOWN));
- BABLM(BABL_PGDN, SS_TAP(X_PGDN));
- BABLM(BABL_PGUP, SS_TAP(X_PGUP));
- BABLM(BABL_DEL_LEFT_WORD, IMALT(X_BACKSPACE));
- BABLM(BABL_DEL_RIGHT_WORD, IMALT(X_DELETE));
- BABLM(BABL_DEL_TO_LINE_END, OMSFT(IMGUI(X_RIGHT)) SS_TAP(X_BACKSPACE)); // this is more app agnostic than ctrl-k
- BABLM(BABL_DEL_TO_LINE_START, OMSFT(IMGUI(X_LEFT)) SS_TAP(X_BACKSPACE));
- BABLM(BABL_MODE, "Mac ");
-# endif
-# ifdef BABL_OSKEYS
- BABLM(BABL_UNDO, SS_LGUI("z"));
- BABLM(BABL_REDO, SS_LGUI("y"));
- BABLM(BABL_CUT, SS_LGUI("x"));
- BABLM(BABL_COPY, SS_LGUI("c"));
- BABLM(BABL_PASTE, SS_LGUI("v"));
- BABLM(BABL_SELECT_ALL, SS_LGUI("a"));
- BABLM(BABL_FIND, SS_LGUI("f"));
- BABLM(BABL_FIND_NEXT, SS_LGUI("g"));
- // BABLM( BABL_FIND_NEXT, OMSFT(X_F4)) ); // Mac office
- BABLM(BABL_FIND_PREV, OMSFT(IMGUI(X_G))); // Sublime, browser
- BABLM(BABL_FIND_PREV, SS_LGUI("g"));
- BABLM(BABL_FIND_REPLACE, SS_LGUI("f"));
- BABLM(BABL_RUNAPP, SS_LGUI(" "));
- BABLM(BABL_SWITCH_APP_NEXT, IMGUI(X_TAB));
- BABLM(BABL_SWITCH_APP_LAST, OMSFT(IMGUI(X_TAB)));
- // Apps vary, but this is usually tab movement, same as B_NXTB
- /*
- BABLM( BABL_WINDOW_NEXT, OMSFT(IMGUI(X_RIGHT_BRACKET)) ); // GUI Grav isn't everywhere
- BABLM( BABL_WINDOW_PREV, OMSFT(IMGUI(X_LEFT_BRACKET)) );
- */
- BABLM(BABL_WINDOW_NEXT, IMGUI(X_GRAVE));
- BABLM(BABL_WINDOW_PREV, OMSFT(IMGUI(X_GRAVE)));
- BABLM(BABL_WINDOW_NEW, IMGUI(X_N));
- BABLM(BABL_CLOSE_APP, SS_LGUI("q"));
- BABLM(BABL_HELP, OMSFT(IMGUI(X_SLASH)));
- // Locking screen from external keyboard requires automator https://apple.stackexchange.com/questions/73995
- BABLM(BABL_LOCK, OMCTL(IMALT(X_L)));
- BABLM(BABL_SCREENCAPTURE, OMSFT(OMGUI(IMALT(X_4))) IMGUI(X_SPACE) "preview" SS_LGUI("d"));
- BABLM(BABL_SWITCH_KEYBOARD_LAYOUT, IMCTL(X_SPACE));
-# endif
-# ifdef BABL_BROWSER
- BABLM(BABL_BROWSER_NEW_TAB, IMGUI(X_T));
- BABLM(BABL_BROWSER_CLOSE_TAB, SS_LGUI("w"));
- BABLM(BABL_BROWSER_REOPEN_LAST_TAB, OMSFT(SS_LGUI("t")));
- BABLM(BABL_BROWSER_NEXT_TAB, OMGUI(IMALT(X_RIGHT)));
- BABLM(BABL_BROWSER_PREV_TAB, OMGUI(IMALT(X_LEFT)));
- BABLM(BABL_BROWSER_URL_BAR, SS_LGUI("l"));
- BABLM(BABL_BROWSER_FORWARD, IMGUI(X_RIGHT));
- BABLM(BABL_BROWSER_BACK, IMGUI(X_LEFT));
- BABLM(BABL_BROWSER_FIND, SS_LGUI("f"));
- BABLM(BABL_BROWSER_BOOKMARK, SS_LGUI("d"));
- BABLM(BABL_BROWSER_RELOAD, OMGUI(SS_LSFT("r"))); // hard reload w/o cache
- BABLM(BABL_BROWSER_FULLSCREEN, OMGUI(SS_LCTL("p")));
- BABLM(BABL_BROWSER_ZOOM_IN, IMGUI(X_KP_PLUS)); // ctr+ +
- BABLM(BABL_BROWSER_ZOOM_OUT, IMGUI(X_KP_MINUS));
-# ifdef BABL_BROWSER_CHROME
- BABLM(BABL_BROWSER_VIEWSRC, SS_LGUI("u")); // Chrome or firefox
- BABLM(BABL_BROWSER_DEV_TOOLS, OMGUI(SS_LALT("i"))); // Chrome or Firefox
-# endif
-# ifdef BABL_BROWSER_SAFARI
- BABLM(BABL_BROWSER_VIEWSRC, OMGUI(IMALT(X_U))); // Safari
- // BABLM( BABL_BROWSER_DEV_TOOLS, // No real equivalent for Safari
-# endif
-# endif // BABL_BROWSER
-
-# ifdef BABL_APP
- BABLM(BABL_APP_SAVE, SS_LGUI("s"));
-# ifdef BABL_APP_EDITOR
-# ifdef BABL_APP_SUBLIME
- BABLM(BABL_APP_MULTI_SELECT, OMCTL(IMGUI(X_G))); // add all occurences of current word to select.
- BABLM(BABL_APP_PASTE_VALUES, OMSFT(IMGUI(X_V))); // paste with proper indenting.
-# endif // sublime
-# endif // editor
-
-# ifdef BABL_APP_CELLS
-# ifdef BABL_APP_MSOFFICE
- BABLM(BABL_APP_CENTER_ALIGN, IMGUI(X_E));
- // BABLM( BABL_APP_CLEAR_FORMATTING, OMCTL(IMGUI(X_G)) ); // this isn't native. https://support.office.com/en-us/article/Clear-all-text-formatting-C094C4DA-7F09-4CEA-9A8D-C166949C9C80#OfficeVersion=macOS
- BABLM(BABL_APP_SCROLL_ACTIVE_CELL, IMCTL(X_BACKSPACE));
- BABLM(BABL_NEWLINE_IN_CELL, IMALT(X_ENTER));
- BABLM(BABL_INSERT_COMMENT, IMSFT(X_F2));
- BABLM(BABL_INSERT_COL_LEFT, IMCTL(X_I));
- BABLM(BABL_INSERT_ROW, OMCTL(IMSFT(X_KP_PLUS)));
- BABLM(BABL_DELETE_ROW, IMCTL(X_KP_MINUS));
- BABLM(BABL_SELECT_COL, IMCTL(X_SPACE));
- BABLM(BABL_SELECT_ROW, IMSFT(X_SPACE));
-# endif // BABL_APP_MSOFFICE
-
-# ifdef BABL_APP_GOOGLE
- BABLM(BABL_APP_CENTER_ALIGN, OMSFT(IMGUI(X_E)));
- BABLM(BABL_APP_SCROLL_ACTIVE_CELL, IMCTL(X_BACKSPACE));
- BABLM(BABL_NEWLINE_IN_CELL, IMALT(X_ENTER));
- BABLM(BABL_INSERT_COMMENT, IMSFT(X_F2));
- BABLM(BABL_APP_CLEAR_FORMATTING, IMGUI(X_BACKSLASH));
- BABLM(BABL_DELETE_ROW, OMCTL(IMGUI(X_G)));
- BABLM(BABL_INSERT_COL_LEFT, OMALT(IMCTL(X_I)) "c"); // o for to the right.
- BABLM(BABL_INSERT_ROW, OMALT(IMCTL(X_I)) "b"); // r for above.
- BABLM(BABL_SELECT_COL, IMCTL(X_SPACE));
- BABLM(BABL_SELECT_ROW, IMSFT(X_SPACE));
- BABLM(BABL_DELETE_ROW, OMALT(IMCTL(X_KP_MINUS))); // once selected
-# endif // BABL_APP_GOOGLE
-/*
-#ifdef BABL_APP_APPLE
- // you're on your own.
-#endif
-*/
-# endif // BABL_APP_CELLS
-
-# ifdef BABL_APP_WINDOWSPLITTING
- // These are for os X terminal, and are pretty useless.
- BABLM(BABL_SPLIT_FRAME_HORIZONTAL, SS_LGUI("d"));
- BABLM(BABL_UNSPLIT_FRAME_HORIZONTAL, OMSFT(IMGUI(X_D)));
-# endif // BABL_APP_WINDOWSPLITTING
-
-# endif // BABL_APP
-
- // Todo, ring bell, flash light, show user this isn't supported
- return false;
-}
-
-# endif /* mac mode*/
-#endif // Babblepaste
diff --git a/users/miles2go/babl_nano.c b/users/miles2go/babl_nano.c
deleted file mode 100644
index 7b10f0d3cb..0000000000
--- a/users/miles2go/babl_nano.c
+++ /dev/null
@@ -1,77 +0,0 @@
-/* A library to output the right key shortcut in any common app.
-Given a global variable babble_mode to show the environment and a
-key that calls the paste macro, do the right type of paste.
-Setting the context is done by another macro, or TBD interaction with the host.
-
-Nano mode is probably most useful for people who don't usually use Nano, but
-sometimes find themselves using it.
-
-https://www.nano-editor.org/dist/latest/cheatsheet.html
-*/
-
-#include QMK_KEYBOARD_H
-
-#ifdef USE_BABBLEPASTE
-# include "babblePaste.h"
-
-# ifdef BABL_NANO
-
-// probably should allow meta to not be ALT
-# define DMETA IMALT
-
-bool babblePaste_nano(uint16_t keycode) {
-# ifdef BABL_MOVE
- BABLM(BABL_GO_LEFT_1C, SS_LCTL("b"));
- BABLM(BABL_GO_RIGHT_1C, SS_LCTL("f"));
- BABLM(BABL_GO_LEFT_WORD, IMCTL(X_LEFT));
- BABLM(BABL_GO_RIGHT_WORD, IMCTL(X_RIGHT));
- BABLM(BABL_GO_START_LINE, SS_LCTL("a"));
- BABLM(BABL_GO_END_LINE, SS_LCTL("e"));
- BABLM(BABL_GO_START_DOC, IMALT(X_BSLS));
- BABLM(BABL_GO_END_DOC, IMALT(X_SLASH));
- BABLM(BABL_GO_NEXT_LINE, SS_LCTL("n"));
- BABLM(BABL_GO_PREV_LINE, SS_LCTL("p"));
- BABLM(BABL_GO_PARA_START, IMCTL(X_UP));
- BABLM(BABL_GO_PARA_END, IMCTL(X_DOWN));
- BABLM(BABL_PGDN, SS_LCTL("v"));
- BABLM(BABL_PGUP, SS_LCTL("y"));
- BABLM(BABL_DEL_RIGHT_1C, SS_LCTL("d"));
- BABLM(BABL_DEL_LEFT_WORD, IMCTL(X_BSPC));
- BABLM(BABL_DEL_RIGHT_WORD, IMCTL(X_DEL));
- // BABLM(BABL_DEL_TO_LINE_END, SS_LCTL("k"));
- // BABLM(BABL_DEL_TO_LINE_START, SS_TAP(X_ESCAPE) "0" SS_LCTL("k"));
- BABLM(BABL_MODE, "Nano ");
-# endif
-# ifdef BABL_OSKEYS
- BABLM(BABL_UNDO, SS_LALT("u"));
- BABLM(BABL_REDO, SS_LALT("e"));
- BABLM(BABL_CUT, SS_LCTL("k")); // arguably b/c line based, not selection
- BABLM(BABL_COPY, SS_LALT("6")); // arguably
- BABLM(BABL_PASTE, SS_LCTL("u"));
- // BABLM(BABL_SELECT_ALL, SS_LCTL("x") "h");
- BABLM(BABL_FIND, SS_LCTL("w"));
- BABLM(BABL_FIND_NEXT, SS_LALT("w"));
- BABLM(BABL_FIND_PREV, SS_LALT("q"));
- BABLM(BABL_FIND_REPLACE, SS_LALT("r"));
- BABLM(BABL_RUNAPP, SS_LCTL("t"));
- BABLM(BABL_WINDOW_NEXT, OMALT(IMSFT(X_DOT)));
- BABLM(BABL_WINDOW_PREV, OMALT(IMSFT(X_COMMA)));
- BABLM(BABL_WINDOW_NEW, IMCTL(X_R) IMALT(X_F)); //
- BABLM(BABL_CLOSE_APP, SS_LCTL("x"));
- BABLM(BABL_HELP, SS_LCTL("g"));
-
- // BABLM( BABL_LOCK, () ); // lock buffer? Too many options.
- // BABLM( BABL_SCREENCAPTURE, () ); // requires plugin?
-
-# endif
-
-# ifdef BABL_APP
- BABLM(BABL_APP_SAVE, SS_LCTL("s")); // save file blurs app & os. Move?
- BABLM(BABL_APP_SET_MARK, SS_LALT("a"));
-# endif
-
- // Todo, ring bell, flash light, show user this isn't supported
- return false;
-}
-# endif /* nano mode*/
-#endif
diff --git a/users/miles2go/babl_readmux.c b/users/miles2go/babl_readmux.c
deleted file mode 100644
index c303912c91..0000000000
--- a/users/miles2go/babl_readmux.c
+++ /dev/null
@@ -1,86 +0,0 @@
-// Readline command line editing + tmux windowing
-// I haven't decided how much to do readline and how much tmux
-// see https://tiswww.case.edu/php/chet/readline/rluserman.html for other possible
-// keybindings.
-
-#include QMK_KEYBOARD_H
-
-#ifdef USE_BABBLEPASTE
-# include "babblePaste.h"
-
-# ifdef BABL_READMUX
-
-// Redefine if you use something other than CTRL-B to activate tmux.
-# define TMUX SS_LCTL("b")
-
-bool babblePaste_readmux(uint16_t keycode) {
-# ifdef BABL_MOVE
- BABLM(BABL_GO_LEFT_1C, SS_TAP(X_LEFT));
- BABLM(BABL_GO_RIGHT_1C, SS_TAP(X_RIGHT));
- BABLM(BABL_GO_LEFT_WORD, SS_LALT("b"));
- BABLM(BABL_GO_RIGHT_WORD, SS_LALT("f"));
- BABLM(BABL_GO_START_LINE, SS_LCTL("a"));
- BABLM(BABL_GO_END_LINE, SS_LCTL("e"));
- // BABLM( BABL_GO_START_DOC ,END );// tmux?
- // BABLM( BABL_GO_END_DOC ,END ); // tmux?
- BABLM(BABL_GO_NEXT_LINE, SS_LCTL("n"));
- BABLM(BABL_GO_PREV_LINE, SS_LCTL("p"));
- // BABLM( BABL_GO_PARA_START, // undefined
- // BABLM( BABL_GO_PARA_END, // undefinedBABLM( BABL_PGDN ,
-
- BABLM(BABL_PGUP, SS_TAP(X_PGUP));
- BABLM(BABL_PGDN, SS_TAP(X_PGDN));
- BABLM(BABL_DEL_RIGHT_1C, SS_LCTL("d"));
- BABLM(BABL_DEL_LEFT_WORD, SS_LCTL("w")); // meta-DEL instead?
- BABLM(BABL_DEL_RIGHT_WORD, SS_LALT("d"));
- BABLM(BABL_DEL_TO_LINE_END, SS_LCTL("k"));
- BABLM(BABL_DEL_TO_LINE_START, SS_LCTL("u"));
- BABLM(BABL_MODE, "Readline ");
-# endif
-# ifdef BABL_OSKEYS
- BABLM(BABL_UNDO, SS_LALT("r"));
- BABLM(BABL_REDO, SS_LCTL("x") "c"); // arguably
- BABLM(BABL_CUT, SS_LCTL("k")); // wrong half the time
- // BABLM( BABL_COPY ,END );
- BABLM(BABL_PASTE, SS_LCTL("y"));
- BABLM(BABL_SELECT_ALL, SS_LCTL("aky"));
- BABLM(BABL_FIND, SS_LCTL("r")); // search history
- BABLM(BABL_FIND_NEXT, SS_LCTL("r"));
- BABLM(BABL_FIND_PREV, SS_LCTL("s"));
- // BABLM( BABL_FIND_REPLACE ,END ); // not offered in readline
- BABLM(BABL_RUNAPP, TMUX "c"); // tmux
- BABLM(BABL_SWITCH_APP_NEXT, TMUX "n"); // tmux
- BABLM(BABL_SWITCH_APP_LAST, TMUX "p"); // tmux
- BABLM(BABL_CLOSE_APP, TMUX "d"); // usually what I want
- BABLM(BABL_HELP, TMUX IMSFT(X_SLASH));
- BABLM(BABL_LOCK, TMUX "L"); // assuming you set up VLOCK yourself
- BABLM(BABL_SCREENCAPTURE, TMUX ":capture-pane");
-# endif
-# ifdef BABL_BROWSER
-/* Add lynx shortcuts, brow.sh?
- */
-# ifdef BABL_MAC
- // this is stock OS X Terminal, alter for windows &etc.
- BABLM(BABL_BROWSER_NEW_TAB, IMGUI(X_T));
- BABLM(BABL_BROWSER_CLOSE_TAB, SS_LGUI("w"));
- BABLM(BABL_BROWSER_NEXT_TAB, IMCTL(X_TAB));
- BABLM(BABL_BROWSER_PREV_TAB, OMSFT(IMCTL(X_TAB)));
-# endif
-# endif
-# ifdef BABL_APP
- // Save makes no sense here
- BABLM(BABL_SPLIT_FRAME_VERT, TMUX IMSFT(X_5));
- // BUG - misleading. This is currently set to convert frame to a window.
- BABLM(BABL_UNSPLIT_FRAME_VERT, TMUX IMSFT(X_1));
- BABLM(BABL_SPLIT_FRAME_HORIZONTAL, TMUX IMSFT(X_QUOTE));
- // This one closes the current pane.
- BABLM(BABL_UNSPLIT_FRAME_HORIZONTAL, SS_LCTL("b") "x");
- BABLM(BABL_NEXT_FRAME, SS_LCTL("b") "o");
- BABLM(BABL_PREV_FRAME, SS_LCTL("w") SS_TAP(X_SEMICOLON));
-# endif
-
- // Todo, ring bell, flash light, show user this isn't supported
- return false;
-}
-# endif /* readmux*/
-#endif
diff --git a/users/miles2go/babl_vi.c b/users/miles2go/babl_vi.c
deleted file mode 100644
index 3209525af0..0000000000
--- a/users/miles2go/babl_vi.c
+++ /dev/null
@@ -1,77 +0,0 @@
-/*
-Vi is stateful, so you have to track the modes yourself. Otherwise motion is awful (bell, bell, bell)
-
-*/
-
-#include QMK_KEYBOARD_H
-
-#ifdef USE_BABBLEPASTE
-# include "babblePaste.h"
-
-# ifdef BABL_VI
-
-bool babblePaste_vi(uint16_t keycode) {
-# ifdef BABL_MOVE
- BABLM(BABL_GO_LEFT_1C, "h");
- BABLM(BABL_GO_RIGHT_1C, "l");
- BABLM(BABL_GO_LEFT_WORD, "b");
- BABLM(BABL_GO_RIGHT_WORD, "w");
- BABLM(BABL_GO_START_LINE, IMSFT(X_6));
- BABLM(BABL_GO_END_LINE, IMSFT(X_4));
- BABLM(BABL_GO_START_DOC, "gg");
- BABLM(BABL_GO_END_DOC, IMSFT(X_G));
- BABLM(BABL_GO_NEXT_LINE, "j");
- BABLM(BABL_GO_PREV_LINE, "k");
- BABLM(BABL_GO_PARA_START, IMSFT(X_LEFT_BRACKET));
- BABLM(BABL_GO_PARA_END, IMSFT(X_RIGHT_BRACKET));
- BABLM(BABL_PGDN, SS_LCTL("f"));
- BABLM(BABL_PGUP, SS_LCTL("b"));
- BABLM(BABL_DEL_RIGHT_1C, "x");
- BABLM(BABL_DEL_LEFT_WORD, "dge");
- BABLM(BABL_DEL_RIGHT_WORD, "dw");
- BABLM(BABL_DEL_TO_LINE_END, "d" IMSFT(X_4));
- BABLM(BABL_DEL_TO_LINE_START, "d" IMSFT(X_6));
- BABLM(BABL_MODE, "Vi ");
-# endif
-# ifdef BABL_OSKEYS
- BABLM(BABL_UNDO, "h");
- BABLM(BABL_REDO, SS_LCTL("r"));
- BABLM(BABL_CUT, "x");
- BABLM(BABL_COPY, "y");
- BABLM(BABL_PASTE, "p");
- BABLM(BABL_SELECT_ALL, IMSFT(X_SEMICOLON) SS_TAP(X_5) "y"); // wrong but helpful?
- BABLM(BABL_FIND, SS_TAP(X_SLASH));
- BABLM(BABL_FIND_NEXT, "n");
- BABLM(BABL_FIND_PREV, IMSFT(X_N));
- BABLM(BABL_FIND_REPLACE, OMALT(IMSFT(X_5)));
- BABLM(BABL_RUNAPP, ":split"); // requires VIM, is vsplit better?
- BABLM(BABL_SWITCH_APP_NEXT, IMCTL(X_DOWN)); // Or Right?
- BABLM(BABL_SWITCH_APP_NEXT, IMCTL(X_UP)); // or Left?
- BABLM(BABL_CLOSE_APP, IMCTL(X_SEMICOLON) "q");
- BABLM(BABL_HELP, SS_LSFT(SS_TAP(X_SEMICOLON)) "h"); // start search in help
- // BABLM( BABL_LOCK, () ); Perhaps VI is not an OS?
- // BABLM( BABL_SCREENCAPTURE, () ); // capture a buffer?
-# endif
-
-# ifdef BABL_BROWSER
-/* what _is_ the VI browser now that vimpirator is dead?*/
-# endif
-
-# ifdef BABL_APP
- BABLM(BABL_APP_SAVE, SS_TAP(X_ESCAPE) ":w");
- BABLM(BABL_APP_SET_MARK, SS_TAP(X_ESCAPE) "ma"); // real vi people probably want multiple marks,not just a
-# ifdef BABL_APP_WINDOWSPLITTING
- BABLM(BABL_SPLIT_FRAME_VERT, SS_TAP(X_ESCAPE) ":vsplit");
- BABLM(BABL_UNSPLIT_FRAME_VERT, SS_TAP(X_ESCAPE) ":hide"); // debatable.
- BABLM(BABL_SPLIT_FRAME_HORIZONTAL, SS_TAP(X_ESCAPE) ":vsplit");
- BABLM(BABL_UNSPLIT_FRAME_HORIZONTAL, SS_TAP(X_ESCAPE) ":hide");
- BABLM(BABL_NEXT_FRAME, SS_LCTL("w") "w");
- BABLM(BABL_PREV_FRAME, SS_LCTL("w") SS_LSFT("w"));
-# endif
-# endif // app
- // Todo, ring bell, flash light, show user this isn't supported
- return false;
-}
-
-# endif // VI
-#endif // Babblepaste
diff --git a/users/miles2go/babl_windows.c b/users/miles2go/babl_windows.c
deleted file mode 100644
index e435d1a3af..0000000000
--- a/users/miles2go/babl_windows.c
+++ /dev/null
@@ -1,151 +0,0 @@
-/* A library to output the right key shortcut in any common app.
-Given a global variable babble_mode to show the environment and a
-key that calls the paste macro, do the right type of paste.
-Setting the context is done by another macro, or TBD interaction with the host.
-
-Huge thanks to https://en.wikipedia.org/wiki/Table_of_keyboard_shortcuts
-https://support.microsoft.com/en-gb/help/12445/windows-keyboard-shortcuts
-
-Remember to check https://github.com/qmk/qmk_firmware/blob/master/quantum/send_string_keycodes.h
-
-*/
-
-#include QMK_KEYBOARD_H
-
-#ifdef USE_BABBLEPASTE
-# include "babblePaste.h"
-
-# ifdef BABL_WINDOWS
-
-bool babblePaste_win(uint16_t keycode) {
-# ifdef BABL_MOVE
- BABLM(BABL_GO_LEFT_1C, SS_TAP(X_LEFT));
- BABLM(BABL_GO_RIGHT_1C, SS_TAP(X_RIGHT));
- BABLM(BABL_GO_LEFT_WORD, IMCTL(X_LEFT));
- BABLM(BABL_GO_RIGHT_WORD, IMCTL(X_RIGHT));
- BABLM(BABL_GO_START_LINE, IMGUI(X_LEFT));
- BABLM(BABL_GO_END_LINE, IMGUI(X_RIGHT));
- BABLM(BABL_GO_START_DOC, OMGUI(IMCTL(X_LEFT)));
- BABLM(BABL_GO_END_DOC, OMGUI(IMCTL(X_RIGHT)));
- BABLM(BABL_GO_NEXT_LINE, SS_TAP(X_DOWN));
- BABLM(BABL_GO_PREV_LINE, SS_TAP(X_UP));
- BABLM(BABL_GO_PARA_START, IMCTL(X_UP));
- BABLM(BABL_GO_PARA_END, IMCTL(X_DOWN));
- BABLM(BABL_PGDN, SS_TAP(X_PGDN));
- BABLM(BABL_PGUP, SS_TAP(X_PGUP));
- BABLM(BABL_DEL_RIGHT_1C, SS_TAP(X_DELETE));
- BABLM(BABL_DEL_LEFT_WORD, IMCTL(X_BACKSPACE));
- BABLM(BABL_DEL_RIGHT_WORD, IMCTL(X_DELETE));
- BABLM(BABL_DEL_TO_LINE_END, IMSFT(X_HOME) SS_TAP(X_DELETE));
- BABLM(BABL_DEL_TO_LINE_START, IMSFT(X_END) SS_TAP(X_DELETE));
- BABLM(BABL_MODE, "Windows ");
-# endif
-
-# ifdef BABL_OSKEYS
- BABLM(BABL_UNDO, SS_LCTL("z"));
- BABLM(BABL_REDO, SS_LCTL("y"));
- BABLM(BABL_CUT, SS_LCTL("x"));
- BABLM(BABL_COPY, SS_LCTL("c"));
- BABLM(BABL_PASTE, SS_LCTL("v"));
- BABLM(BABL_SELECT_ALL, SS_LCTL("a"));
- BABLM(BABL_FIND, SS_LCTL("f"));
- BABLM(BABL_FIND_NEXT, SS_TAP(X_F3));
- // BABLM( BABL_FIND_PREV, SS_TAP(X_F3) ); // doesn't have a standard one?
- BABLM(BABL_FIND_REPLACE, SS_LCTL("h"));
- BABLM(BABL_RUNAPP, SS_LGUI("r"));
- BABLM(BABL_SWITCH_APP_NEXT, IMALT(X_TAB));
- BABLM(BABL_SWITCH_APP_LAST, OMSFT(IMALT(X_TAB)));
- BABLM(BABL_WINDOW_NEXT, IMCTL(X_TAB));
- BABLM(BABL_WINDOW_PREV, OMSFT(IMCTL(X_TAB)));
- BABLM(BABL_WINDOW_NEW, IMCTL(X_N));
- BABLM(BABL_CLOSE_APP, IMALT(X_F4));
- BABLM(BABL_HELP, SS_TAP(X_F1));
- BABLM(BABL_LOCK, SS_LGUI("l"));
- BABLM(BABL_SCREENCAPTURE, OMSFT(SS_LGUI("s")));
- BABLM(BABL_SWITCH_KEYBOARD_LAYOUT, IMGUI(X_SPACE));
-
-# endif
-
-# ifdef BABL_BROWSER
- BABLM(BABL_BROWSER_NEW_TAB, SS_LCTL("t"));
- BABLM(BABL_BROWSER_CLOSE_TAB, SS_LCTL("w"));
- BABLM(BABL_BROWSER_REOPEN_LAST_TAB, OMSFT(IMCTL(X_T)));
- BABLM(BABL_BROWSER_NEXT_TAB, IMCTL(X_TAB));
- BABLM(BABL_BROWSER_PREV_TAB, OMSFT(IMCTL(X_TAB)));
- BABLM(BABL_BROWSER_URL_BAR, SS_LCTL("l"));
- BABLM(BABL_BROWSER_FORWARD, IMALT(X_RIGHT));
- BABLM(BABL_BROWSER_BACK, OMSFT(IMALT(X_LEFT)));
- ;
- BABLM(BABL_BROWSER_FIND, SS_LCTL("f"));
- BABLM(BABL_BROWSER_BOOKMARK, SS_LCTL("d"));
-# ifdef BABL_BROWSER_MS
- BABLM(BABL_BROWSER_DEV_TOOLS, IMCTL(X_F12)); // EDGE
-# else
- BABLM(BABL_BROWSER_DEV_TOOLS, SS_LCTL("t")); // Chrome
- BABLM(BABL_BROWSER_VIEWSRC, SS_LCTL("u")); // Chrome or firefox
-# endif
- // chrome
- BABLM(BABL_BROWSER_RELOAD, IMCTL(X_F5)); // hard reload w/o cache
- BABLM(BABL_BROWSER_FULLSCREEN, SS_TAP(X_F11)); // command shift F
- BABLM(BABL_BROWSER_ZOOM_IN, OMSFT(IMCTL(X_EQUAL))); // ctr+ +
- BABLM(BABL_BROWSER_ZOOM_OUT, IMCTL(X_MINUS));
-
-# endif
-
-# ifdef BABL_APP
- BABLM(BABL_APP_SAVE, SS_LCTL("s"));
-# ifdef BABL_APP_EDITOR
-# ifdef BABL_APP_SUBLIME
- // http://sweetme.at/2013/08/08/sublime-text-keyboard-shortcuts/
- BABLM(BABL_APP_MULTI_SELECT, IMALT(X_F3)); // add all occurences of current word to select.
- BABLM(BABL_APP_PASTE_VALUES, OMSFT(IMCTL(X_V))); // paste with proper indenting.
-# endif // sublime
-# endif // editor
-
-# ifdef BABL_APP_CELLS
-# ifdef BABL_APP_MSOFFICE
-# ifndef BABL_APP_SUBLIME
- BABLM(BABL_APP_PASTE_VALUES, OMCTL(IMALT(X_V)) "v");
-# endif
- BABLM(BABL_APP_CENTER_ALIGN, IMALT(X_H) "ac");
- // BABLM( BABL_APP_CLEAR_FORMATTING, OMCTL(IMGUI(X_G)) ); // this isn't native. https://support.office.com/en-us/article/Clear-all-text-formatting-C094C4DA-7F09-4CEA-9A8D-C166949C9C80#OfficeVersion=macOS
- BABLM(BABL_APP_SCROLL_ACTIVE_CELL, IMCTL(X_BACKSPACE));
- BABLM(BABL_NEWLINE_IN_CELL, IMALT(X_ENTER));
- BABLM(BABL_INSERT_COMMENT, IMSFT(X_F2));
- BABLM(BABL_INSERT_COL_LEFT, OMCTL(IMSFT(X_KP_PLUS)));
- BABLM(BABL_INSERT_ROW, OMCTL(IMSFT(X_KP_PLUS)));
- BABLM(BABL_DELETE_ROW, IMCTL(X_KP_MINUS));
- BABLM(BABL_SELECT_COL, IMCTL(X_SPACE));
- BABLM(BABL_SELECT_ROW, IMSFT(X_SPACE));
-# endif
-
-# ifdef BABL_APP_GOOGLE
- BABLM(BABL_APP_CENTER_ALIGN, OMSFT(IMCTL(X_E)));
- BABLM(BABL_APP_SCROLL_ACTIVE_CELL, IMCTL(X_BACKSPACE));
- BABLM(BABL_NEWLINE_IN_CELL, IMALT(X_ENTER));
- BABLM(BABL_INSERT_COMMENT, IMSFT(X_F2));
- BABLM(BABL_APP_CLEAR_FORMATTING, IMCTL(X_BACKSLASH));
- BABLM(BABL_DELETE_ROW, IMALT(X_E) "d");
- BABLM(BABL_INSERT_COL_LEFT, OMALT(IMCTL(X_I)) "c"); // o for to the right.
- BABLM(BABL_INSERT_ROW, IMALT(IMCTL(X_I)) "w"); // r for above.
- BABLM(BABL_SELECT_COL, IMCTL(X_SPACE));
- BABLM(BABL_SELECT_ROW, IMSFT(X_SPACE));
- BABLM(BABL_DELETE_ROW, OMALT(IMCTL(X_KP_MINUS))); // once selected
-# endif
-
-# endif // BABL_APP_CELLS
-
- // BABLM( BABL_SPLIT_FRAME_VERT, () );// no windows way?
- // BABLM( BABL_UNSPLIT_FRAME_VERT, () );
- BABLM(BABL_SPLIT_FRAME_HORIZONTAL, OMALT(IMCTL(X_S))); // word only
- BABLM(BABL_UNSPLIT_FRAME_HORIZONTAL, OMSFT(IMALT(X_C))); // word
- // BABLM( BABL_NEXT_FRAME, () );//no windows way?
- // BABLM( BABL_PREV_FRAME, () );// no windows way?
-# endif
-
- // Todo, ring bell, flash light, show user this isn't supported
- return false;
-}
-
-# endif /* BABL_WINDOWS*/
-#endif /* babblepaste */ \ No newline at end of file
diff --git a/users/miles2go/config.h b/users/miles2go/config.h
deleted file mode 100644
index dad7acad10..0000000000
--- a/users/miles2go/config.h
+++ /dev/null
@@ -1,60 +0,0 @@
-#pragma once
-
-#ifdef RGBLIGHT_ENABLE
-#define RGBLIGHT_SLEEP
-#undef RGBLIGHT_EFFECT_RAINBOW_MOOD
-#undef RGBLIGHT_EFFECT_RAINBOW_SWIRL
-#undef RGBLIGHT_EFFECT_SNAKE
-#undef RGBLIGHT_EFFECT_KNIGHT
-#undef RGBLIGHT_EFFECT_CHRISTMAS
-#undef RGBLIGHT_EFFECT_STATIC_GRADIENT
-#undef RGBLIGHT_EFFECT_RGB_TEST
-#undef RGBLIGHT_EFFECT_ALTERNATING
-#undef RGBLIGHT_EFFECT_TWINKLE
-
-#define RGBLIGHT_EFFECT_BREATHING
-#endif // RGBLIGHT_ENABLE
-
-#undef FORCE_NKRO
-
-#ifndef TAPPING_TOGGLE
-#define TAPPING_TOGGLE 3
-#endif
-
-#ifdef TAPPING_TERM
- #undef TAPPING_TERM
-#endif // TAPPING_TERM
-#define TAPPING_TERM 200
-//if no chord during tapping term, do the keystroke
-#define RETRO_TAPPING
-
-// Disable action_get_macro and fn_actions, since we don't use these
-// and it saves on space in the firmware.
-// LTO_ENABLE automatically enables these
-//#define NO_ACTION_MACRO
-//#define NO_ACTION_FUNCTION
-#define MACRO_TIMER 5
-
-
-
-#define USE_BABBLEPASTE
-// All options
-#define BABL_MODSWAP
-#define BABL_MOVE // Uncomment to add basic cursor movement
-#define BABL_OSKEYS // This adds Cut, paste, window movement and common OS shortcuts
-#define BABL_BROWSER // Browser shortcuts, with Chrome/Firefox as the default.
-// edit the appropriate OS config file to enable Safari, Edge, vimpirator &etc.
-#define BABL_APP // Application specific settings this has sub-options.
-#define BABL_APP_CELLS // spreadsheets and tables
-#define BABL_APP_EDITOR // Fancy editor commands
-#define BABL_APP_WINDOWSPLITTING // splitting frames & windows
-
-//All OSes
-
-//#define BABL_WINDOWS
-#define BABL_READMUX
-//#define BABL_VI
-#define BABL_MAC
-#define BABL_LINUX
-//#define BABL_EMACS
-#define BABL_CHROMEOS
diff --git a/users/miles2go/keymaps/handwired/ms_sculpt_mobile/config.h b/users/miles2go/keymaps/handwired/ms_sculpt_mobile/config.h
deleted file mode 100644
index 552e98ba2e..0000000000
--- a/users/miles2go/keymaps/handwired/ms_sculpt_mobile/config.h
+++ /dev/null
@@ -1,50 +0,0 @@
-#pragma once
-
-// Expect to get errors if you comment a feature out and leave it in your keymap.
-#define USE_BABLPASTE
-
-#ifdef USE_BABLPASTE
-
-#ifdef RGBLIGHT_ENABLE
-#define BABL_LED_INDEX 0 // set to 0 to set all LEDs , or set to # of LED to be used as BABL updaters
-#define RGBLIGHT_COLOR_MS 0x00,0x27,0x88 // blue screen?
-#define RGBLIGHT_COLOR_MAC 0xF0,0xF0,0xF0 // grey
-#define RGBLIGHT_COLOR_LINUX 0xF4,0xAA,0x90 // ubuntu orange?
-#define RGBLIGHT_COLOR_EMACS 0x00,0x00,0x00
-#define RGBLIGHT_COLOR_VI 0x00,0x90,0x00
-#define RGBLIGHT_COLOR_READMUX 0x33,0xFF,0x33 // green screen
-#define RGBLIGHT_COLOR_CHROMEOS 0xf4,0xc2,0xd // google yellows
-#endif
-
-#endif // bablpaste
-
-
-
-// place overrides here
-#define RGBLED_NUM 2
-#define RGBLIGHT_LIMIT_VAL 200
-#ifdef RGBLIGHT_ENABLE
-#define RGBLIGHT_COLOR_LAYER_0 0x00, 0xFF, 0x00 // qwerty
-#define RGBLIGHT_COLOR_LAYER_1 0x00, 0x99, 0x99 // cdh
-#define RGBLIGHT_COLOR_LAYER_2 0xFF, 0x00, 0x00 // symbol
-#define RGBLIGHT_COLOR_LAYER_3 0x00, 0xFF, 0xFF // move
-#define RGBLIGHT_COLOR_LAYER_4 0xFF, 0x00, 0xFF // delmove
-#define RGBLIGHT_COLOR_LAYER_5 0x00, 0xFF, 0xFF
-#define RGBLIGHT_EFFECT_BREATHING
-#define RGBLIGHT_EFFECT_RAINBOW_MOOD
-#define RGBLIGHT_EFFECT_RAINBOW_SWIRL
-#define RGBLIGHT_EFFECT_SNAKE
-#define RGBLIGHT_EFFECT_KNIGHT
-#define RGBLIGHT_EFFECT_CHRISTMAS
-#define RGBLIGHT_EFFECT_STATIC_GRADIENT
-#define RGBLIGHT_EFFECT_RGB_TEST
-#define RGBLIGHT_EFFECT_ALTERNATING
-#define RGBLIGHT_EFFECT_TWINKLE
-#define RGB_LIGHT_EFFECT_BREATHE_MAX 200
-#define RGBLIGHT_RAINBOW_SWIRL_RANGE 127
-#endif // rgblight
-
-#define TAPPING_TERM 200
-#define TAPPING_TERM_PER_KEY
-#define RETRO_TAPPING
-//#define PERMISSIVE_HOLD
diff --git a/users/miles2go/keymaps/handwired/ms_sculpt_mobile/keymap.c b/users/miles2go/keymaps/handwired/ms_sculpt_mobile/keymap.c
deleted file mode 100644
index 12547ec508..0000000000
--- a/users/miles2go/keymaps/handwired/ms_sculpt_mobile/keymap.c
+++ /dev/null
@@ -1,461 +0,0 @@
-//placeholder until the new keymaps tree is built
-//#include QMK_KEYBOARD_H
-
-
-#include "virtser.h"
-#include <print.h>
-#include "milestogo.h"
-
-
-#define LAYOUT_local LAYOUT_mobile_XUW
-#define LAYOUT LAYOUT_mobile_XUW
-
-
-#ifndef USERSPACE_ACTIVE
-enum layer_keycodes {
- QWR = SAFE_RANGE,
- CDH,
- SYM,
- MOV,
- NUM,
- TRAN
-};
-
-enum layer_names {
-_QWR,
-_CDH,
-_SYM,
-_MOV,
-_TRAN
-};
-
-#endif
-
-// Shorter spacing
-#define XXXX KC_NO
-#define ____ KC_TRNS
-
-// Custom macros
-
-/* Fn Keys */
-#define TT_SYM MO(_SYM)
-#define TT_NUM MO(_NUM)
-#define SSFT ACTION_MODS_ONESHOT(MOD_LSFT)
-#define SSYM LT(_SYM, KC_SPC)
-#define MVTAB LT(_MOV,KC_TAB)
-#define BKMV TT(_MOV)
-#define MV2 LT(_MOV, KC_2)
-#define MV3 LT(_MOV, KC_3)
-#define MV4 LT(_MOV, KC_4)
-#define MV8 LT(_MOV, KC_8)
-#define MV9 LT(_MOV, KC_9)
-#define MV0 LT(_MOV, KC_0)
-
-
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-/* QWERTY
-*
-* |ESC | F1 | F2 | F3 | F4 | F5 | F6 | f7 | F8 | F9 | F10| F11| F12|Vol-|Vol+|_CDH|
-* -------------------------------------------------------------------------------'
-* | ESC | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = |Bakspace| Del|
-* ---------------------------------------------------------------------------
-* | tab | q | w | e | r | t | y | u | i | o | p | [ | ] | \ | |
-* -------------------------------------------------------------------------------'
-* |Bak/Mov| a | s | d | f | g | h | j | k | l | ; | ' | enter |PgUp|
-* --------------------------------------------------------------------------------
-* |Lsft | z | x | c | v | b | n | m | , | . | / | Rsft| Up| PgDn|
-* ---------------------------------------------------------------------------------
-* |Lctl |Lgui |Lalt | Space/Sym | GUI | Sym | Rctl |Left|Down|Rght|
-* ---------------------------------------------------------------------------------
-*/
-
-[_QWERTY] = LAYOUT_local(
-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_VOLD, KC_VOLU, TG(_CDH),
-KC_GRAVE, 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_DEL,
-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,
-BKMV, 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_PGUP,
-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_PGDN,
-KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RGUI, TT_SYM,KC_CDH, KC_LEFT, KC_DOWN, KC_RIGHT
-),
-
-
-[_CDH] = LAYOUT_local(
-____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____,
-KC_GRAVE, KC_1, KC_2, KC_3 ,KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINUS, KC_EQL, KC_BSPC, KC_DEL,
-KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_B, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, ____, ____, ____,
-KC_LCTL, KC_A, KC_R, KC_S, KC_T, KC_G, KC_M, KC_N, KC_E, KC_I, KC_O, KC_QUOT, KC_ENT, KC_2,
-KC_LSFT, KC_Z, KC_X, KC_C, DHPASTE,KC_V, KC_K, KC_H, KC_COMM,KC_DOT, KC_SLSH, KC_RSFT, ____, KC_1,
-TG(_MOV), ____, ____ , ____, ____, ____, KC_QWERTY, ____, ____, ____
-),
-
-/* SYMBOL layer, several to chose from
-*/
-
-[_SYM] = LAYOUT_wrapper(
-____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____,
-____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____,
-____, _________________EXCEL_L1__________________, _________________EXCEL_R1__________________, ____, ____, ____,
-____, _________________EXCEL_L2__________________, _________________EXCEL_R2__________________, KC_GRV, ____, ____,
-____, _________________EXCEL_L3__________________, _________________EXCEL_R3__________________, B_SAVE, ____, ____,
-____, ____, ____, ____, ____, ____, ____, ____, ____, ____
-),
-
-#ifndef USE_BABLPASTE
-
-[_MOV] = LAYOUT_local(
-____, XXXX, XXXX, XXXX, XXXX, XXXX, XXXX, XXXX, XXXX, XXXX, XXXX, XXXX, XXXX, XXXX, XXXX, ____ ,
-____, XXXX, XXXX, XXXX, XXXX, XXXX, XXXX, XXXX, XXXX, XXXX, XXXX, XXXX, XXXX, XXXX, XXXX,
-____, XXXX, XXXX, XXXX, XXXX, XXXX, XXXX, XXXX, KC_UP, XXXX, XXXX, XXXX, XXXX, XXXX,
-____, XXXX, XXXX, XXXX, XXXX, XXXX, XXXX, KC_LEFT, KC_DOWN, KC_RIGHT,XXXX, XXXX, XXXX, XXXX,
-____, XXXX, XXXX, XXXX, XXXX, XXXX, XXXX, XXXX, XXXX, XXXX, XXXX, XXXX, XXXX, XXXX,
-____, XXXX, XXXX, XXXX, XXXX, XXXX, XXXX, XXXX, XXXX, XXXX
-)
-
-#else
-/* MOVE babble version version
-
-* |ESC | MAC|Read|Linx| VI | | | | | | | | | | | |
-* -------------------------------------------------------------------------------'
-* | | | - | = |Bakspace| Del|
-* ---------------------------------------------------------------------------
-* | tab | | [ | ] | \ | |
-* -------------------------------------------------------------------------------'
-* |Bak/Mov| | ' |Launch App |PgUp|
-* ---------------------------------------------------------------------------------
-* |Lsft | | Rsft| Up| PgDn|
-* ---------------------------------------------------------------------------------
-* | |Lgui |Lalt | Exit Move Mode | GUI | Sym | Rctl |Left|Down|Rght|
-* ---------------------------------------------------------------------------------
-*/
-/* ,--------------------------------------------. ,--------------------------------------------.
- * 01 | ESC |FindPrev| Find |FindNext| \n cell| |ParStart|LineStrt| Up | EOL | ParEnd |
- * |--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------|
- * 02 | SelA | Do_DEL | Shift | Undo |Hsplit+ | | WrdLft | Left | Down | Right | WrdRght|
- * |--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------|
- * 03 |Vspli+ | Cut | Copy | Paste | Paste | | WinPrv | Tab-- | NewTab | Tab++ | WinNxt |
- * `--------------------------------------------' `--------------------------------------------'
- */
-
-[_MOV] = LAYOUT_wrapper(
- ____, ____________BABBLE_SWITCH_L________________, ____________BABBLE_SWITCH_R________________, XXXX, XXXX, XXXX, XXXX, ____,
- ____, ____________BABBLE_MOV_LNUM________________, ____________BABBLE_MOV_RNUM________________, XXXX, XXXX, XXXX, XXXX,
- ____, ____________BABBLE_MOV_L1__________________, ____________BABBLE_MOV_R1__________________, XXXX, XXXX, XXXX,
- ____, ____________BABBLE_MOV_L2__________________, ____________BABBLE_MOV_R2__________________, XXXX, B_RUNAPP, XXXX,
- ____, ____________BABBLE_MOV_L3__________________, ____________BABBLE_MOV_R2__________________, XXXX, XXXX, XXXX,
- ____, ____, ____, TG(_MOV), XXXX, XXXX, XXXX, XXXX, XXXX, XXXX
-),
-// Move in a direction, deleting as we go, or do opposite of Mov layer action */
-/* ,--------------------------------------------. ,--------------------------------------------.
- * 01 | Esc | |Replace |MultiSel|PasteVal| | . |LineStrt| . | EOL | . |
- * |--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------|
- * 02 | | Do_Mov | Shift | Redo |Hsplit- | | WrdLft | Left | . | Right | WrdRght|
- * |--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------|
- * 03 |Vsplit- | Cut | Copy | Paste |Paste | | App-- | ZoomOut| NewWin | ZoomIn | App+ |
- * `--------------------------------------------' `--------------------------------------------'
- */
-[_DMOV] = LAYOUT_wrapper(
- ____, ____________BABBLE_SWITCH_L________________, ____________BABBLE_SWITCH_R________________, XXXX, XXXX, XXXX, ____,
- ____, ____________BABBLE_MOV_LNUM________________, ____________BABBLE_MOV_RNUM________________, XXXX, XXXX, XXXX, XXXX,
- ____, _________BABBLE_DELMOV_L1__________________ , _________BABBLE_DELMOV_R1__________________ , XXXX, XXXX, XXXX,
- ____, _________BABBLE_DELMOV_L2__________________ , _________BABBLE_DELMOV_R2__________________ , XXXX, XXXX, XXXX,
- ____, _________BABBLE_DELMOV_L3__________________ , _________BABBLE_DELMOV_R3__________________ , XXXX, XXXX, XXXX,
- ____, XXXX, XXXX, XXXX, XXXX, XXXX, XXXX, XXXX, XXXX, XXXX, XXXX
-),
-
-#endif // Bablepaste
-/*
-[_TRAN] = LAYOUT_local(
- ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____,
- ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____,
- ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____,
- ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____,
- ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____,
- ____, ____, ____, ____, ____, ____, ____, ____, ____, ____
-)
-*/
-};
-
-#ifndef USERSPACE_ACTIVE
-
-bool process_record_user(uint16_t keycode, keyrecord_t *record) {
- switch (keycode) {
- case QWR:
- if (record->event.pressed) {
- layer_off(_CDH);
- }
- return false;
- break;
-
- case CDH:
- if (record->event.pressed) {
- layer_on(_CDH);
- }
- return false;
- break;
-
- case SYM:
- if (record->event.pressed) {
- layer_on(_SYM);
- } else {
- layer_off(_SYM);
- }
- return false;
- break;
-
- case SAVE:
- if (record->event.pressed) {
- SEND_STRING(SS_LCTL("s"));
- }
- return false;
- break;
- /* Colemak mod-dh moves the D key to the qwerty V position
- This hack makes apple-V_position do what I mean */
- case DHPASTE:
- if(get_mods() & MOD_BIT(KC_LGUI) ) {
- if (record->event.pressed) {
- clear_keyboard_but_mods();
- register_code(KC_V);
- } else {
- unregister_code(KC_V);
- }
- } else {
- if (record->event.pressed) {
- register_code(KC_D);
- } else {
- unregister_code(KC_D);
- }
- }
- return false;
- break;
-
- return false;
- break;
- }
-
- return true;
-}
-#endif
-
-void keyboard_post_init_user(void) {
- // Customise these values to desired behaviour
- // debug_enable=true;
- //debug_matrix=true;
- //debug_keyboard=true;
- //debug_mouse=true;
-}
-
-
-void matrix_init_user(void) {
- #ifdef RGBLIGHT_ENABLE
- rgblight_setrgb(RGB_GREEN);
- #endif //RGB_matrix
-}
-
-// Runs whenever there is a layer state change.
-layer_state_t layer_state_set_user(layer_state_t state) {
- uint8_t layer = get_highest_layer(state);
- switch (layer) {
- case 0:
- #ifdef RGBLIGHT_COLOR_LAYER_0
- rgblight_setrgb(RGBLIGHT_COLOR_LAYER_0);
- #else
- #ifdef RGBLIGHT_ENABLE
- rgblight_init();
- #endif
- #endif
- break;
-
- case 1:
- #ifdef RGBLIGHT_COLOR_LAYER_1
- rgblight_setrgb(RGBLIGHT_COLOR_LAYER_1);
- #endif
- break;
-
- case 2: // symbol
- #ifdef RGBLIGHT_COLOR_LAYER_2
- rgblight_setrgb(RGBLIGHT_COLOR_LAYER_2);
- #endif
- break;
-
- case 3: // move
- #ifdef RGBLIGHT_COLOR_LAYER_3
- rgblight_setrgb(RGBLIGHT_COLOR_LAYER_3);
- #endif
- #ifdef USE_BABLPASTE
- babble_led_user(); // poke led to update
- #endif // bablepaste
- break;
-
- case 4: //delmove ideally we'd turn on a red pixel in addition to the layer indicator.
- #ifdef RGBLIGHT_COLOR_LAYER_4
- rgblight_setrgb(RGBLIGHT_COLOR_LAYER_4);
- #endif
- break;
-
- case 5:
- #ifdef RGBLIGHT_COLOR_LAYER_5
- rgblight_setrgb(RGBLIGHT_COLOR_LAYER_5);
- #endif
- break;
-
- default:
- break;
- }
- #ifdef VIRTSER_ENABLE
- //virtser_send(layer + 48); // ascii 0 is 48
- #endif
- return state;
-};
-
-// custom tapping term lengths.
-uint16_t get_tapping_term(uint16_t keycode) {
- switch (keycode) {
- case LT(_MOV, KC_TAB):
- return TAPPING_TERM ;
- break;
- default:
- return TAPPING_TERM;
- }
-}
-
-
-
-#ifdef VIRTSER_ENABLE
-/* listen on serial for commands. Either a set of lower case letters mapped to colors,
-/ or upper case letters that change RGB mode.
-/ special command C takes 3 numbers as arguments, terminated with a newline or comma or excess digits.
-Command C takes 3-5octets of RGB settings. Numbers can be terminated with a comma or period.
-3 octets = set all LED, 4th argument specfies specfic LED, 4+5 specify start and stop LEDs.
-*/
-
-uint8_t ser_rgbByte[18] ; //ascii string
-uint8_t ser_cmd_started =0 ; // are we in process
-uint8_t ser_got_RGBbytes =0 ; // how many bytes we've recived.
-uint8_t rgb_r[6]; // R, g, b, P1, p2
-uint8_t bs=0; // how many bytes into our rgbBytestring.
-
-void virtser_recv(uint8_t serIn) {
-#ifdef RGBLIGHT_ENABLE
- if ((serIn == 10 ) || (serIn == 13) || ser_got_RGBbytes >=5) { //reached newline or max digits
-
- if (ser_cmd_started) {
- ser_cmd_started =0 ; // end loop at newline
- virtser_send('|');
-
- if (ser_got_RGBbytes==3) {
- rgblight_setrgb( rgb_r[0], rgb_r[1], rgb_r[2]);
- }
-
- if (ser_got_RGBbytes ==4) {
- if (( rgb_r[3] >=0) && (rgb_r[3] <= RGBLED_NUM) ) { // is pos1 plausible
- rgblight_setrgb_at ( rgb_r[0], rgb_r[1], rgb_r[2], rgb_r[3]);
- } else {
- rgblight_setrgb( rgb_r[0], rgb_r[1], rgb_r[2]);
- }
- }
-
- if (ser_got_RGBbytes == 5) { // are start and end positions plausible?
- if ( (rgb_r[4] >0) && (rgb_r[4] <= RGBLED_NUM) && (rgb_r[4] > rgb_r[3]) &&
- (rgb_r[3] >=0) && (rgb_r[3] <= (RGBLED_NUM -1)) ) {
- rgblight_setrgb_range(rgb_r[0], rgb_r[1], rgb_r[2], rgb_r[3], rgb_r[4]);
- } else {
- rgblight_setrgb( rgb_r[0], rgb_r[1], rgb_r[2]);
- }
- }
- } else { // newline outside of command loop, or something that can be ignored.
- //virtser_send('.');
- }
- }
-
- if (1 == ser_cmd_started) { // collecting bytes.
- if ( // it is time to compute a byte
- ( ( (serIn == ',') || (serIn == '.') ) && (bs > 0) ) || // signal done with the byte.
- (bs ==2 )){ //or we know this is last.
-
- if ( (serIn <= '9') && (serIn >='0') ) { //3rd asci digit
- ser_rgbByte[bs] = serIn;
- bs++;
- // virtser_send(serIn);
- }
-
- if (bs>3) {
- rgb_r[ser_got_RGBbytes]=255;
- ser_got_RGBbytes ++;
- }
- if (bs==3) {
- rgb_r[ser_got_RGBbytes] = (ser_rgbByte[0] -'0')*100 + (ser_rgbByte[1] -'0')*10 + (ser_rgbByte[2] -'0' );
- ser_got_RGBbytes ++;
- }
- if (bs ==2 ) {
- rgb_r[ser_got_RGBbytes] = (ser_rgbByte[0] -'0')*10 + (ser_rgbByte[1] -'0' );
- ser_got_RGBbytes ++;
- }
- if (bs ==1) {
- rgb_r[ser_got_RGBbytes] = (ser_rgbByte[0] -'0');
- ser_got_RGBbytes ++;
- } // {else wipe & start over}
-
- bs=0;
- // virtser_send(ser_got_RGBbytes+'0');
-
- } else { // haven't got enough for our byte / no terminal marker
- if ( (serIn <= '9') && (serIn >='0') ) { //ascii only
- ser_rgbByte[bs] = serIn;
- bs++;
- // virtser_send(serIn);
- }
- }
- } else { //not in command loop - next is command w/o arguments, or start of one.
- switch (serIn) {
- case 'C': // color switch
- ser_cmd_started=1;
- ser_got_RGBbytes = bs =0;
- virtser_send('/');
- break;
-
- case 'r': //red
- rgblight_setrgb(RGB_RED);
- break;
-
- case 'g':
- rgblight_setrgb(RGB_GREEN);
- break;
-
- case 'b': // color switch
- rgblight_setrgb(RGB_BLUE);
- break;
-
- case 'w': // color switch
- rgblight_setrgb(RGB_WHITE);
- break;
-
- case 'o': // color black/off
- rgblight_setrgb(0,0,0);
- break;
-
- case 'T': // toggle
- rgblight_toggle();
- break;
-
- case 'P': // pulse led
- rgblight_mode_noeeprom(RGBLIGHT_MODE_BREATHING);
- break;
- case 'S': // Static
- rgblight_mode(RGBLIGHT_MODE_STATIC_LIGHT);
- break;
-
- case 'U': // Rainbow
- rgblight_mode_noeeprom(RGBLIGHT_MODE_RAINBOW_MOOD);
- break;
-
- default:
- // virtser_send(serIn);
- break;
-
- }
- }
-#endif // RGBLIGHT_ENABLE
-}
-
-#endif // VirtSerial
diff --git a/users/miles2go/keymaps/handwired/ms_sculpt_mobile/readme.md b/users/miles2go/keymaps/handwired/ms_sculpt_mobile/readme.md
deleted file mode 100644
index a720d81c18..0000000000
--- a/users/miles2go/keymaps/handwired/ms_sculpt_mobile/readme.md
+++ /dev/null
@@ -1,10 +0,0 @@
-# keymap taking advantage of the STM32 storage & CPU.
-RGB LED is used to show layers
-default bluepill LED is capslock.
-there's a simple serial protocol for the keyboard to listen for color change commands from the PC.
-Useful for "do stuff && cat "green">/dev/ttyACM0"
-
-lower case letters set pre-programmed colors
-Upper case letters change RGB mode
-Command C takes 3-5 octets of RGB settings. Numbers can be terminated with a comma or period.
-3 octets = set all LED, 4th argument specfies specfic LED, 4+5 specify start and stop LEDs.
diff --git a/users/miles2go/keymaps/handwired/ms_sculpt_mobile/rules.mk b/users/miles2go/keymaps/handwired/ms_sculpt_mobile/rules.mk
deleted file mode 100644
index 41273a9a62..0000000000
--- a/users/miles2go/keymaps/handwired/ms_sculpt_mobile/rules.mk
+++ /dev/null
@@ -1,24 +0,0 @@
-# Build Options
-# change to "no" to disable the options, or define them in the Makefile in
-# the appropriate keymap folder that will get included automatically
-#
-BOOTMAGIC_ENABLE = no # Enable Bootmagic Lite
-MOUSEKEY_ENABLE = yes # Mouse keys
-EXTRAKEY_ENABLE = yes # Audio control and System control
-CONSOLE_ENABLE = no # Console for debug
-COMMAND_ENABLE = no # Commands for debug and configuration
-NKRO_ENABLE = no # Nkey Rollover
-BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
-MIDI_ENABLE = no # MIDI controls
-AUDIO_ENABLE = no # Audio output on port C6
-UNICODE_ENABLE = no # Unicode
-BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
-ifeq ($(strip $(KEYBOARD)), handwired/ms_sculpt_mobile/8x18_arm)
- RGBLIGHT_ENABLE = yes # Enable WS2812 RGB underlight.
-endif
-SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
-
-#enable RAW in keymap config, since it can hang machines
-RAW_ENABLE = no
-# virtual serial port
-VIRTSER_ENABLE = yes
diff --git a/users/miles2go/milestogo.c b/users/miles2go/milestogo.c
deleted file mode 100644
index 1c7f174e4a..0000000000
--- a/users/miles2go/milestogo.c
+++ /dev/null
@@ -1,153 +0,0 @@
-// based on drashna's but I think at this point it's a new axe
-
-#include QMK_KEYBOARD_H
-#include "milestogo.h"
-#include <print.h>
-
-__attribute__((weak)) bool process_record_keymap(uint16_t keycode, keyrecord_t *record) { return true; }
-
-bool move_is_on = false; // track if we are in _MOV layer
-bool sym_is_on = false; // track if we are in _SYM layer
-
-
-
-// Defines actions for global custom keycodes
-// Then runs the _keymap's record handier if not processed here
-bool process_record_user(uint16_t keycode, keyrecord_t *record) {
- // static uint16_t spcmov_timer; // timer for spcmov key
-
-#ifdef USE_BABBLEPASTE
- if (keycode > BABBLE_START && keycode < BABBLE_END_RANGE) {
- if (record->event.pressed) {
- babblePaste(keycode, 1);
- } else {
- babblePaste(keycode, 0);
- }
- }
-#endif
-
- switch (keycode) {
- case KC_QWERTY:
- if (record->event.pressed) {
- layer_off(_CDH);
- default_layer_set(_QWERTY);
- }
- break;
-
- case KC_CDH:
- if (record->event.pressed) {
- layer_on(_CDH);
- default_layer_set(_CDH);
- }
- break;
-
- case TMUX: // ctl-B
- if (record->event.pressed) {
- tap_code16(C(KC_B));
- }
- break;
-
- /* Colemak mod-dh moves the D key to the qwerty V position
- This hack makes apple-V_position do what I mean */
- case DHPASTE:
- if (get_mods() & MOD_BIT(KC_LGUI)) {
- if (record->event.pressed) {
- clear_keyboard_but_mods();
- register_code(KC_V);
- } else {
- unregister_code(KC_V);
- }
- } else {
- if (record->event.pressed) {
- register_code(KC_D);
- } else {
- unregister_code(KC_D);
- }
- }
- return false;
- break;
-
- default:
- return true;
- }
-
- // normal keycode
- return process_record_keymap(keycode, record);
-}
-
-void babble_modeswitch_user(uint8_t mode) {
-#ifdef USE_BABLPASTE
- extern uint8_t babble_mode; // still using global. why?
-
-# ifdef BABL_WINDOWS
- if (babble_mode == BABL_WINDOWS_MODE) {
- if (BABL_LED_INDEX > 0) {
- rgblight_setrgb_at(RGBLIGHT_COLOR_MS, BABL_LED_INDEX);
- } else {
- rgblight_setrgb(RGBLIGHT_COLOR_MS);
- }
- }
-# endif
-# ifdef BABL_READMUX
- if (babble_mode == BABL_READMUX_MODE) {
- if (BABL_LED_INDEX > 0) {
- rgblight_setrgb_at(RGBLIGHT_COLOR_READMUX, BABL_LED_INDEX);
- } else {
- rgblight_setrgb(RGBLIGHT_COLOR_READMUX);
- }
- }
-# endif
-# ifdef BABL_MAC
- if (babble_mode == BABL_MAC_MODE) {
- if (BABL_LED_INDEX > 0) {
- rgblight_setrgb_at(RGBLIGHT_COLOR_MAC, BABL_LED_INDEX);
- } else {
- rgblight_setrgb(RGBLIGHT_COLOR_MAC);
- }
- }
-# endif
-# ifdef BABL_VI
- if (babble_mode == BABL_VI_MODE) {
- if (BABL_LED_INDEX > 0) {
- rgblight_setrgb_at(RGBLIGHT_COLOR_VI, BABL_LED_INDEX);
- } else {
- rgblight_setrgb(RGBLIGHT_COLOR_VI);
- }
- }
-# endif
-# ifdef BABL_EMACS
- if (babble_mode == BABL_EMACS_MODE) {
- if (BABL_LED_INDEX > 0) {
- rgblight_setrgb_at(RGBLIGHT_COLOR_EMACS, BABL_LED_INDEX);
- } else {
- rgblight_setrgb(RGBLIGHT_COLOR_EMACS);
- }
- }
-# endif
-# ifdef BABL_CHROMEOS
- if (babble_mode == BABL_CHROMEOS_MODE) {
- if (BABL_LED_INDEX > 0) {
- rgblight_setrgb_at(RGBLIGHT_COLOR_CHROMEOS, BABL_LED_INDEX);
- } else {
- rgblight_setrgb(RGBLIGHT_COLOR_CHROMEOS);
- }
- }
-# endif
-# ifdef BABL_LINUX
- if (babble_mode == BABL_LINUX_MODE) {
- if (BABL_LED_INDEX > 0) {
- rgblight_setrgb_at(RGBLIGHT_COLOR_LINUX, BABL_LED_INDEX);
- } else {
- rgblight_setrgb(RGBLIGHT_COLOR_LINUX);
- }
- }
-# endif
-#endif // bablepaste
-}
-
-
-// we always return true here, so that each keyboard can use it's own
-// led_update_kb() function
-bool led_update_user(led_t led_state ) {
- return true;
-} \ No newline at end of file
diff --git a/users/miles2go/milestogo.h b/users/miles2go/milestogo.h
deleted file mode 100644
index 7d50f43b32..0000000000
--- a/users/miles2go/milestogo.h
+++ /dev/null
@@ -1,302 +0,0 @@
-/* Modified from
-Copyright 2017 Christopher Courtney <drashna@live.com> @drashna
-
-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"
-#include "version.h"
-#include "eeprom.h"
-
-#ifdef USE_BABBLEPASTE
-# include "babblePaste.h"
-#endif
-
-#ifdef RGB_MATRIX_ENABLE
-# include "rgb_matrix.h"
-#endif
-
-#define USERSPACE_ACTIVE
-
-/* Define layer names */
-enum userspace_layers { _QWERTY = 0, _CDH, _SYM, _MOV, _DMOV, _NUM };
-
-/*
-define modifiers here, since MOD_* doesn't seem to work for these
- */
-#define MODS_SHIFT_MASK (MOD_BIT(KC_LSFT) | MOD_BIT(KC_RSFT))
-#define MODS_CTRL_MASK (MOD_BIT(KC_LCTL) | MOD_BIT(KC_RCTL))
-#define MODS_ALT_MASK (MOD_BIT(KC_LALT) | MOD_BIT(KC_RALT))
-#define MODS_GUI_MASK (MOD_BIT(KC_LGUI) | MOD_BIT(KC_RGUI))
-
-#if defined(BABBLE_END_RANGE)
-# define USER_START BABBLE_END_RANGE
-#else
-# if defined(KEYMAP_SAFE_RANGE)
-# define USER_START KEYMAP_SAFE_RANGE
-# else
-# define USER_START SAFE_RANGE
-# endif
-#endif
-
-enum userspace_custom_keycodes {
- EPRM = BABBLE_END_RANGE, // Resets EEPROM do defaults (as in eeconfig_init)
- VRSN, // Prints QMK Firmware and board info
- KC_QWERTY, // Sets default layer to QWERTY
- KC_CDH, // Sets default layer to COLEMAK DH
- KC_MAKE,
- VIBRK, // escape :
- DHPASTE, // allow pasting via qwerty V,not colemak V
- TMUX, // TMUX Ctrl-b
- ALTSYM, // Alt when held, toggle MOV when tapped
- GUISYM,
- SPCMOV,
- SAVE, // placeholder for CTRL-S while I get babble working again.
- NEW_SAFE_RANGE // Keymap specific codes come AFTER this
-};
-
-#define QWERTY KC_QWERTY
-#define COLEMAK KC_CDH
-#define KC_RESET QK_BOOT
-
-#if (!defined(LAYOUT) && defined(KEYMAP))
-# define LAYOUT KEYMAP
-#endif
-
-#define LAYOUT_wrapper(...) LAYOUT(__VA_ARGS__)
-
-#define _________________QWERTY_L1_________________ KC_Q, KC_W, KC_E, KC_R, KC_T
-#define _________________QWERTY_L2_________________ KC_A, KC_S, KC_D, KC_F, KC_G
-#define _________________QWERTY_L3_________________ KC_Z, KC_X, KC_C, KC_V, KC_B
-
-#define _________________QWERTY_R1_________________ KC_Y, KC_U, KC_I, KC_O, KC_P
-#define _________________QWERTY_R2_________________ KC_H, KC_J, KC_K, KC_L, KC_SCLN
-#define _________________QWERTY_R3_________________ KC_N, KC_M, KC_COMM, KC_DOT, KC_SLASH
-
-#define ______________COLEMAK_MOD_DH_L1____________ KC_Q, KC_W, KC_F, KC_P, KC_B
-#define ______________COLEMAK_MOD_DH_L2____________ KC_A, KC_R, KC_S, KC_T, KC_G
-#define ______________COLEMAK_MOD_DH_L3____________ KC_Z, KC_X, KC_C, KC_D, KC_V
-
-#define ______________COLEMAK_MOD_DH_R1____________ KC_J, KC_L, KC_U, KC_Y, KC_SCLN
-#define ______________COLEMAK_MOD_DH_R2____________ KC_M, KC_N, KC_E, KC_I, KC_O
-#define ______________COLEMAK_MOD_DH_R3____________ KC_K, KC_H, KC_COMM, KC_DOT, KC_SLASH
-
-#define ________________NUMBER_LEFT________________ KC_1, KC_2, KC_3, KC_4, KC_5
-#define ________________NUMBER_RIGHT_______________ KC_6, KC_7, KC_8, KC_9, KC_0
-
-#define ________________FKEYS__LEFT________________ KC_F1, KC_F2, KC_F3, KC_F4, KC_F5
-#define ________________FKEYS__RIGHT_______________ KC_F6, KC_F7, KC_F8, KC_F9, KC_F10
-#define ________________FKEYS__FAR_RIGHT___________ KC_F11, KC_F12, KC_PSCR, KC_HOME, KC_END
-
-#define ________________NAV_NUMBER_LEFT____________ KC_LSFT, KC_LCTL, KC_LALT, KC_LGUI, XXXXXXX
-
-#define ___________________BLANK___________________ _______, _______, _______, _______, _______
-#define ___________________BLOCK___________________ XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX
-
-// BabblePaste
-#define ____________BABBLE_SWITCH_L________________ B_MAC, B_READ, B_LINUX, B_VI, _______
-#define ____________BABBLE_SWITCH_R________________ B_CROM, B_LINUX, B_WIN, QWERTY, COLEMAK
-
-/////////MOVE - Full size keyboard version
-
-/* ,--------------------------------------------. ,--------------------------------------------.
- * N |Lock |PrevApp |NextApp |PasteVal| | | | |SwitchKB|Devtools| Lock |
- * |--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------|
- * 01 | ESC |FindPrev| Find |FindNext| \n cell| |ParStart|LineStrt| Up | EOL | ParEnd |
- * |--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------|
- * 02 | SelA | Do_DEL | Shift | Undo |Hsplit+ | | WrdLft | Left | Down | Right | WrdRght|
- * |--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------|
- * 03 |Vspli+ | Cut | Copy | Paste | Paste | | WinPrv | Tab-- | NewTab | Tab++ | WinNxt |
- * `--------------------------------------------' `--------------------------------------------'
- */
-/* Movement layer similar to Extend, but fully enriched with babblepaste */
-#define ____________BABBLE_MOV_LNUM________________ B_LOCK, B_PAPP, B_NAPP, B_PASTV, XXXX
-
-#define ____________BABBLE_MOV_L1__________________ KC_ESC, B_FINDP, B_FIND, B_FINDN, B_NCEL
-#define ____________BABBLE_MOV_L2__________________ B_SELA, MO(_DMOV), KC_LSFT, B_UNDO, B_HSPLIT
-#define ____________BABBLE_MOV_L3__________________ B_VSPLIT, B_CUT, B_COPY, B_PASTE, B_PASTE
-
-#define ____________BABBLE_MOV_RNUM________________ XXXX, XXXX, B_KEYB, B_BDEV, B_LOCK
-#define ____________BABBLE_MOV_R1__________________ B_PTOP, B_GSOL, B_UP, B_GEOL, B_PEND
-#define ____________BABBLE_MOV_R2__________________ B_L1W, B_L1C, B_DOWN, B_R1C, B_R1W
-#define ____________BABBLE_MOV_R3__________________ B_PWIN, B_PTAB, B_NTAB, B_NXTB, B_NWIN
-
-// Move in a direction, deleting as we go, or do opposite of Mov layer action */
-/* ,--------------------------------------------. ,--------------------------------------------.
- * 01 | Esc | |Replace |MultiSel|PasteVal| | . |LineStrt| . | EOL | . |
- * |--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------|
- * 02 | | Do_Mov | Shift | Redo |Hsplit- | | WrdLft | Left | . | Right | WrdRght|
- * |--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------|
- * 03 |Vsplit- | Cut | Copy | Paste |Paste | | App-- | ZoomOut| NewWin | ZoomIn | App+ |
- * `--------------------------------------------' `--------------------------------------------'
- */
-#define _________BABBLE_DELMOV_L1__________________ KC_ESC, _______, B_RPLACE, B_MSEL, B_PASTV
-#define _________BABBLE_DELMOV_L2__________________ XXXXXXX, _______, _______, B_REDO, B_HUNSPT
-#define _________BABBLE_DELMOV_L3__________________ B_VUNSPT, B_CUT, B_COPY, B_PASTE, B_PRVFM
-
-#define _________BABBLE_DELMOV_R1__________________ XXXXXXX, B_DSOL, _______, B_DEOL, XXXXXXX
-#define _________BABBLE_DELMOV_R2__________________ B_DLW, KC_BSPC, _______, B_DEL, B_DRW
-#define _________BABBLE_DELMOV_R3__________________ B_NAPP, B_ZOUT, B_WINN, B_ZIN, B_PAPP
-
-/* SYM / excel / programming logic +=1 optimization*/
-/* ,----------------------------------. ,----------------------------------.
- * 01 | | [ | ] | { | } | | { | } | ( | ) | |
- * |------+------+------+------+------| |------+------+------+------+------|
- * 02 | ^ | ! | = | 0 | $ | | # | 1 | - | + | ` |
- * |------+------+------+------+------| |------+------+------+------+------|
- * 03 | \ | % | @ | | | _ | | * | & | ~ | . | / |
- * `----------------------------------' `----------------------------------'
- Memnonics
- ^begining end$ . &&/|| on strong finger. #at start of line.
- * (multiply) opposite /
- Minus is left of plus as normal.
- ` is a shifted ''
- ~/ is an outwards roll. / .* is a roll. !=0 is a roll , ++1 --1 roll.
- _ is hard to get to.
- */
-#define ___________________SYM_L1__________________ XXXXXXX, KC_LBRC, KC_RBRC, KC_LCBR, KC_RCBR
-#define ___________________SYM_L2__________________ KC_CIRC, KC_EXLM, KC_EQL, KC_0, KC_DLR
-#define ___________________SYM_L3__________________ KC_BSLS, KC_PERC, KC_AT, KC_PIPE, KC_UNDS
-
-#define ___________________SYM_R1__________________ KC_LCBR, KC_RCBR, KC_LPRN, KC_RPRN, XXXXXXX
-#define ___________________SYM_R2__________________ KC_HASH, KC_1, KC_MINS, KC_PLUS, KC_GRAVE
-#define ___________________SYM_R3__________________ KC_ASTR, KC_AMPR, KC_TILDE, KC_DOT, KC_SLASH
-
-// Move and brackets - 40% optimization.
-/* ,--------------------------------------------. ,--------------------------------------------.
- * 01 | ESC | ( | ) | { | } | | PgDn |LineStrt| Up | EOL | PGUp |
- * |--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------|
- * 02 | [ |DelMove | Shift | Undo | ] | | WrdLft | Left | Down | Right | WrdRght|
- * |--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------|
- * 03 | CDH | Cut | Copy | Paste | Paste | | Babl-- | Tab-- | NewTab | Tab++ | Babl++ |
- * `--------------------------------------------' `--------------------------------------------'
- */
-
-#define __________40_______MOV_L1__________________ KC_ESC, KC_LPRN, KC_RPRN, KC_LCBR, KC_RCBR
-#define __________40_______MOV_L2__________________ KC_LBRC, MO(_DMOV), KC_LSFT, KC_UNDO, KC_RBRC
-#define __________40_______MOV_L3__________________ KC_CDH, B_CUT, B_COPY, B_PASTE, B_PASTE
-
-#define __________40_______MOV_R1__________________ B_PGDN, B_GSOL, B_UP, B_GEOL, B_PGUP
-#define __________40_______MOV_R2__________________ B_L1W, B_L1C, B_DOWN, B_R1C, B_R1W
-#define __________40_______MOV_R3__________________ B_DEC, B_PTAB, B_NTAB, B_NXTB, B_INC
-
-// Move in a direction, deleting as we go, or do opposite of Mov layer action
-/* ,--------------------------------------------. ,--------------------------------------------.
- * 01 | Esc | | B_print| | | | Zoom-- |LineStrt| . | EOL | Zoom++|
- * |--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------|
- * 02 | | Do_DEL | Shift | Redo | | | WrdLft | Left | . | Right | WrdRght|
- * |--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------|
- * 03 | Qwerty | Cut | Copy | Paste |Paste | | WIN-- |PrvFrame| Split |nxtFrame| Win++ |
- * `--------------------------------------------' `--------------------------------------------'
- */
-#define ____________40__DELMOV_L1__________________ KC_ESC, XXXXXXX, B_MODE, XXXXXXX, XXXXXXX
-#define ____________40__DELMOV_L2__________________ XXXXXXX, _______, _______, B_REDO, XXXXXXX
-#define ____________40__DELMOV_L3__________________ KC_QWERTY, _______, _______, _______, _______
-
-#define ____________40__DELMOV_R1__________________ B_ZOUT, B_DSOL, _______, B_DEOL, B_ZIN
-#define ____________40__DELMOV_R2__________________ B_DLW, KC_BSPC, _______, B_DEL, B_DRW
-#define ____________40__DELMOV_R3__________________ B_PWIN, B_PRVFM, B_VSPLIT, B_NXTFM, B_NWIN
-
-/* NUM + symbol / programming logic +=1 optimization*/
-/* ,----------------------------------. ,----------------------------------.
- * 01 | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 |
- * |------+------+------+------+------| |------+------+------+------+------|
- * 02 | ^ | ! | = | 0 | $ | | # | 1 | - | + | ` |
- * |------+------+------+------+------| |------+------+------+------+------|
- * 03 | \ | % | @ | | | _ | | * | & | ~ | . | / |
- * `----------------------------------' `----------------------------------'
- Memnonics
- ^begining end$ . &&/|| on strong finger. #at start of line.
- Minus is left of plus as normal. ` is a shifted ''
- ~/ and is an outwards roll. / * is a roll.
- _ is hard to get to.
- */
-
-#define __________40_______NUM_L1__________________ ________________NUMBER_LEFT________________
-#define __________40_______NUM_L2__________________ KC_CIRC, KC_EXLM, KC_EQL, KC_0, KC_DLR
-#define __________40_______NUM_L3__________________ KC_BSLS, KC_PERC, KC_AT, KC_PIPE, KC_UNDS
-
-#define __________40_______NUM_R1__________________ ________________NUMBER_RIGHT_______________
-#define __________40_______NUM_R2__________________ KC_HASH, KC_1, KC_MINS, KC_PLUS, KC_GRAVE
-#define __________40_______NUM_R3__________________ KC_ASTR, KC_AMPR, KC_TILDE, KC_DOT, KC_SLASH
-
-// NUM
-/* ,----------------------------------. ,----------------------------------.
- * 01 | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 |
- * |------+------+------+------+------| |------+------+------+------+------|
- * 02 | F1 | F2 | F3 | F4 | F5 | | + | 4 | 5 | 6 | - |
- * |------+------+------+------+------| |------+------+------+------+------|
- * 03 | F11 | F12 | | CDH| QWERT| | 0 | 1 | 2 | 3 | . |
- * `----------------------------------' `----------------------------------'
- */
-
-#define ___________________NUM_L1__________________ ________________NUMBER_LEFT________________
-#define ___________________NUM_L2__________________ ________________FKEYS__LEFT________________
-#define ___________________NUM_L3__________________ KC_F11, KC_F11, XXXXXXX, XXXXXXX, QWERTY
-
-#define ___________________NUM_R1__________________ ________________NUMBER_RIGHT_______________
-#define ___________________NUM_R2__________________ KC_PLUS, KC_4, KC_5, KC_6, KC_MINS
-#define ___________________NUM_R3__________________ KC_0, KC_1, KC_2, KC_3, KC_DOT
-
-// Standard Sym
-/* ,----------------------------------. ,----------------------------------.
- * 01 | ! | @ | # | $ | % | | ^ | & | * | ( | ) |
- * |------+------+------+------+------| |------+------+------+------+------|
- */
-#define __________________SSYM_L1__________________ KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC
-#define __________________SSYM_R1__________________ KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN
-
-#define _________________ADJUST_L1_________________ RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, RGB_TOG
-#define _________________ADJUST_L2_________________ MU_TOGG, CK_TOGG, AU_ON, AU_OFF, AG_NORM
-#define _________________ADJUST_L3_________________ RGB_RMOD, RGB_HUD, RGB_SAD, RGB_VAD, KC_RGB_T
-
-#define _________________ADJUST_R1_________________ KC_SEC1, KC_SEC2, KC_SEC3, KC_SEC4, KC_SEC5
-#define _________________ADJUST_R2_________________ AG_SWAP, QWERTY, COLEMAK, DVORAK, WORKMAN
-#define _________________ADJUST_R3_________________ MG_NKRO, KC_MUTE, KC_VOLD, KC_VOLU, KC_MNXT
-
-/* excel centric symbol layer*/
-/* ,--------------------------------------------. ,--------------------------------------------.
-* 01 | DelRow|InsCol | SelCol |PasteVal| | | . | 1 | 2 | 3 | |
-* |--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------|
-* 02 | - |InsRow | SelRow | Undo | + | | * | 4 | 5 | 6 | - |
-* |--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------|
-* 03 | Undo | Cut | Copy | Paste |Paste | | / | 7 | 8 | 9 | Paste |
-* `--------------------------------------------' `--------------------------------------------'
-
-*/
-#define _________________EXCEL_L1__________________ B_DROW, B_ICOL, B_SELC, B_PASTV, XXXX
-#define _________________EXCEL_L2__________________ KC_MINS, B_ICOL, B_SELC, B_UNDO, KC_PLUS
-#define _________________EXCEL_L3__________________ B_UNDO, B_CUT, B_COPY, B_PASTE, B_PASTE
-
-#define _________________EXCEL_R1__________________ XXXXXXX, KC_1, KC_2, KC_3, XXXXXXX
-#define _________________EXCEL_R2__________________ KC_ASTR, KC_4, KC_5, KC_6, KC_MINS
-#define _________________EXCEL_R3__________________ KC_SLASH, KC_7, KC_8, KC_8, B_PASTE
-
-/* Based on BEKL 15 punctuation
- * ,----------------------------------. ,----------------------------------.
- * 01 | | < | $ | > | | | | [ | _ | ] | |
- * |------+------+------+------+------| |------+------+------+------+------|
- * 02 | \ | ( | "" | ) | # | | % | { | = | } | "|" |
- * |------+------+------+------+------| |------+------+------+------+------|
- * 03 | | : | * | + | | | | & | ^ | ~ | |
- * `----------------------------------' `----------------------------------'
- */
-#define ______________BEKL_SYM_L1__________________ XXXXXXX, KC_LBRC, KC_RBRC, KC_LCBR, XXXXXXX
-#define ______________BEKL_SYM_L2__________________ KC_CIRC, KC_EXLM, KC_EQL, KC_0, KC_DLR
-#define ______________BEKL_SYM_L3__________________ KC_BSLS, KC_PERC, KC_AT, KC_PIPE, KC_UNDS
-
-#define ______________BEKL_SYM_R1__________________ XXXXXXX, KC_RCBR, KC_LPRN, KC_RPRN, XXXXXXX
-#define ______________BEKL_SYM_R2__________________ KC_HASH, KC_KP_1, KC_MINS, KC_PLUS, KC_GRAVE
-#define ______________BEKL_SYM_R3__________________ KC_PERC, KC_TILDE, KC_AMPR, KC_DOT, KC_SLASH
diff --git a/users/miles2go/readme.md b/users/miles2go/readme.md
deleted file mode 100644
index 57983660be..0000000000
--- a/users/miles2go/readme.md
+++ /dev/null
@@ -1,10 +0,0 @@
-# Overview
-
-This is my personal userspace file. Most of my code exists here, as it's heavily shared.
-
-## Custom Keycodes
-See the babblepaste.md readme
-
-## Layer Indication
-
-This uses the `layer_state_set_*` command to change the layer color, to indicate which layer it is on. This includes the default keymap, as well. \ No newline at end of file
diff --git a/users/miles2go/rules.mk b/users/miles2go/rules.mk
deleted file mode 100644
index b7a7dcdba8..0000000000
--- a/users/miles2go/rules.mk
+++ /dev/null
@@ -1,10 +0,0 @@
-SRC += milestogo.c babblePaste.c babl_windows.c babl_mac.c babl_vi.c babl_readmux.c babl_chromeos.c babl_kitty.c babl_linux.c
-LTO_ENABLE = yes
-
-ifeq ($(strip $(MACROS_ENABLED)), yes)
- OPT_DEFS += -DMACROS_ENABLED
-endif
-
-ifeq ($(strip $(USE_BABBLEPASTE)), yes)
- SRC += babblePaste.c
-endif
diff --git a/users/mnil/config.h b/users/mnil/config.h
deleted file mode 100644
index b471b9a818..0000000000
--- a/users/mnil/config.h
+++ /dev/null
@@ -1,22 +0,0 @@
-/* Copyright 2021 Mats Nilsson
- *
- * 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 MK_3_SPEED
-#define MK_MOMENTARY_ACCEL
-#define PERMISSIVE_HOLD
-#define TAPPING_TERM 250
diff --git a/users/mnil/mnil.c b/users/mnil/mnil.c
deleted file mode 100644
index eb3b4a1c9d..0000000000
--- a/users/mnil/mnil.c
+++ /dev/null
@@ -1,146 +0,0 @@
-/* Copyright 2021 Mats Nilsson
- *
- * 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 "mnil.h"
-
-bool process_record_user(uint16_t keycode, keyrecord_t *record) {
- switch (keycode) {
- case M_TILD: // ~
- if (record->event.pressed) {
- tap_code16(RALT(KC_RBRC));
- tap_code(KC_SPC);
- } else {
- }
- break;
- case M_CIRC: // ^
- if (record->event.pressed) {
- tap_code16(S(KC_RBRC));
- tap_code(KC_SPC);
- } else {
- }
- break;
- case M_BTCK: // `
- if (record->event.pressed) {
- tap_code16(S(KC_EQL));
- tap_code(KC_SPC);
- } else {
- }
- break;
- case QWE_COL: // Swap default keymap layer
- if (record->event.pressed) {
- if (get_highest_layer(default_layer_state) == _COLEMAK) {
- default_layer_set(1UL << _QWERTY);
- } else {
- default_layer_set(1UL << _COLEMAK);
- }
- }
- break;
- }
- return true;
-};
-
-// Tap Dance
-// Determine the current tap dance state
-int cur_dance(tap_dance_state_t *state) {
- if (state->count == 1) {
- if (state->interrupted || !state->pressed)
- return SINGLE_TAP;
- else
- return SINGLE_HOLD;
- } else if (state->count == 2) {
- if (state->interrupted)
- return DOUBLE_SINGLE_TAP;
- else if (state->pressed)
- return DOUBLE_HOLD;
- else
- return DOUBLE_SINGLE_TAP;
- }
- if (state->count == 3) {
- if (state->interrupted || !state->pressed)
- return TRIPLE_TAP;
- else
- return TRIPLE_HOLD;
- } else
- return 8;
-}
-
-static tap ae_tap_state = {.is_press_action = true, .state = 0};
-
-void ae_finished(tap_dance_state_t *state, void *user_data) {
- ae_tap_state.state = cur_dance(state);
- switch (ae_tap_state.state) {
- case SINGLE_TAP:
- register_code(KC_A);
- break;
- case SINGLE_HOLD:
- tap_code(SE_ADIA);
- break;
- case DOUBLE_SINGLE_TAP:
- tap_code(KC_A);
- register_code(KC_A);
- break;
- }
-}
-
-void ae_reset(tap_dance_state_t *state, void *user_data) {
- switch (ae_tap_state.state) {
- case SINGLE_TAP:
- unregister_code(KC_A);
- break;
- case DOUBLE_SINGLE_TAP:
- unregister_code(KC_A);
- break;
- }
- ae_tap_state.state = 0;
-}
-
-static tap aa_tap_state = {.is_press_action = true, .state = 0};
-
-void aa_finished(tap_dance_state_t *state, void *user_data) {
- aa_tap_state.state = cur_dance(state);
- switch (aa_tap_state.state) {
- case SINGLE_TAP:
- register_code(SE_ODIA);
- break;
- case SINGLE_HOLD:
- register_code(SE_ARNG);
- unregister_code(SE_ARNG);
- break;
- case DOUBLE_SINGLE_TAP:
- tap_code(SE_ODIA);
- register_code(SE_ODIA);
- break;
- }
-}
-
-void aa_reset(tap_dance_state_t *state, void *user_data) {
- switch (aa_tap_state.state) {
- case SINGLE_TAP:
- unregister_code(SE_ODIA);
- break;
- case DOUBLE_SINGLE_TAP:
- unregister_code(SE_ODIA);
- break;
- }
- aa_tap_state.state = 0;
-}
-
-// clang-format off
-tap_dance_action_t tap_dance_actions[] = {
- [AAE] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, ae_finished, ae_reset),
- [OAA] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, aa_finished, aa_reset)
-};
-// clang-format on
diff --git a/users/mnil/mnil.h b/users/mnil/mnil.h
deleted file mode 100644
index 357acfe3ce..0000000000
--- a/users/mnil/mnil.h
+++ /dev/null
@@ -1,85 +0,0 @@
-/* Copyright 2021 Mats Nilsson
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-#pragma once
-
-#include QMK_KEYBOARD_H
-#include "keymap_swedish.h"
-
-// Layers
-enum layers {
- _COLEMAK,
- _QWERTY,
- _SYMBOLS,
- _NAVIGATION,
- _NUMPAD,
-};
-
-// Custom Keycodes
-#define _NAV_SPC LT(_NAVIGATION, KC_SPC) // _NAVIGATION when held, SPACE when tapped
-#define _SYM_ENT LT(_SYMBOLS, KC_ENT) // _SYMBOLS when held, ENTER when tapped
-#define CTL_BSPC MT(MOD_LCTL, KC_BSPC) // CTRL when held, BACKSPACE when tapped
-#define ALT_DEL MT(MOD_LALT, KC_DEL) // ALT when held, DELETE when tapped
-#define SFT_TAB MT(MOD_LSFT, KC_TAB) // SHIFT when held, TAB when tapped
-#define C_TAB C(KC_TAB) // CTRL+TAB
-#define CS_TAB C(S(KC_TAB)) // SHIFT+CTRL+TAB
-#define CUT C(KC_X) // CTRL+X
-#define COPY C(KC_INS) // CTRL+INSERT
-#define PASTE S(KC_INS) // SHIFT+INSERT
-#define AUTOFILL C(S(KC_L)) // Bitwarden Autofill, CTRL+SHIFT+L
-
-// i3 config
-#define I3MOD KC_LGUI // $mod
-#define OPEN G(KC_SPC) // $mod+SPACE
-#define QUIT G(S(KC_Q)) // $mod+SHIFT+Q
-#define WIN G(C(KC_SPC)) // $mod+CTRL+SPACE
-#define BROWSER G(KC_ENTER) // $mod+ENTER
-#define TERM G(S(KC_ENTER)) // $mod+CTRL+ENTER
-#define NXTWS G(KC_TAB) // $mod+TAB
-#define PRVWS G(S(KC_TAB)) // $mod+SHIFT+TAB
-#define MOVWS G(KC_LSFT) // $mod+SHIFT+$X
-#define CRYWS G(KC_LALT) // $mod+ALT+$X
-#define MVWSL G(C(S(KC_LEFT))) // $mod+CTRL+SHIFT+LEFT
-#define MVWSR G(C(S(KC_RGHT))) // $mod+CTRL+SHIFT+RIGHT
-
-enum custom_keycodes {
- M_TILD = SAFE_RANGE, // ~
- M_CIRC, // ^
- M_BTCK, // `
- QWE_COL, // Swaps default layer
-};
-
-// Tap Dance
-typedef struct {
- bool is_press_action;
- int state;
-} tap;
-
-// Define a type for as many tap dance states as you need
-enum {
- SINGLE_TAP = 1,
- SINGLE_HOLD = 2,
- DOUBLE_TAP = 3,
- DOUBLE_HOLD = 4,
- DOUBLE_SINGLE_TAP = 5, // send two single taps
- TRIPLE_TAP = 6,
- TRIPLE_HOLD = 7
-};
-
-enum {
- AAE = 0, // a and ae
- OAA, // o and aa
-};
diff --git a/users/mnil/readme.md b/users/mnil/readme.md
deleted file mode 100644
index f688ea388a..0000000000
--- a/users/mnil/readme.md
+++ /dev/null
@@ -1,23 +0,0 @@
-# mnil's user settings
-This keymap consist of four primary layers, `_COLEMAK`, `_SYMBOL`, `_NAVIGATION` and `_NUMPAD`.
-Colemak layout for less finger travel distance and to reduce RSI.
-The `_SYMBOL` layer is optimized for programming, specifically in `C++`.
-Space and Enter do double duties as layer toggle on hold where the `_NUMPAD` is entered when both are held down.
-`ALT+TAB` and `SHIFT+ALT+TAB` keys is implemented to register `ALT` and then `TAB` on each subsequent key press one leaves the `_NUMPAD`-layer.
-The Swedish characters `åäöÅÄÖ` are added as a tap dances on top of the Colemak layer since they are rarely needed.
-
-# License
-Copyright 2021 Mats Nilsson matni403@gmail.com @mnil
-
-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/>.
diff --git a/users/mnil/rules.mk b/users/mnil/rules.mk
deleted file mode 100644
index 22cebfaeeb..0000000000
--- a/users/mnil/rules.mk
+++ /dev/null
@@ -1,7 +0,0 @@
-SRC += mnil.c
-MOUSEKEY_ENABLE = yes # Enable mouse keys
-LTO_ENABLE = yes # Enable link time optimization
-BACKLIGHT_ENABLE = no
-CONSOLE_ENABLE = no
-AUTO_SHIFT_ENABLE = no
-TAP_DANCE_ENABLE = yes
diff --git a/users/moults31/gdb.c b/users/moults31/gdb.c
deleted file mode 100644
index 3b31d94159..0000000000
--- a/users/moults31/gdb.c
+++ /dev/null
@@ -1,59 +0,0 @@
-/* Copyright 2021 moults31
- *
- * 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 "gdb.h"
-
-bool process_record_gdb(uint16_t keycode, keyrecord_t *record) {
- bool rv = true;
- switch (keycode) {
- case M_GDB_PLAY:
- if (record->event.pressed) {
- SEND_STRING(SS_TAP(X_F5));
- }
- break;
- case M_GDB_PAUSE:
- if (record->event.pressed) {
- SEND_STRING(SS_TAP(X_F6));
- }
- break;
- case M_GDB_STEPOVER:
- if (record->event.pressed) {
- SEND_STRING(SS_TAP(X_F10));
- }
- break;
- case M_GDB_STEPIN:
- if (record->event.pressed) {
- SEND_STRING(SS_TAP(X_F11));
- }
- break;
- case M_GDB_STEPOUT:
- if (record->event.pressed) {
- SEND_STRING(SS_LSFT(SS_TAP(X_F11)));
- }
- break;
- case M_GDB_RESTART:
- if (record->event.pressed) {
- SEND_STRING(SS_LCTL(SS_LSFT(SS_TAP(X_F5))));
- }
- break;
- case M_GDB_STOP:
- if (record->event.pressed) {
- SEND_STRING(SS_LSFT(SS_TAP(X_F5)));
- }
- break;
- }
-
- return rv;
-}
diff --git a/users/moults31/gdb.h b/users/moults31/gdb.h
deleted file mode 100644
index 385825692e..0000000000
--- a/users/moults31/gdb.h
+++ /dev/null
@@ -1,21 +0,0 @@
-/* Copyright 2021 moults31
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-#pragma once
-
-#include QMK_KEYBOARD_H
-#include "moults31.h"
-
-bool process_record_gdb(uint16_t keycode, keyrecord_t *record);
diff --git a/users/moults31/moults31.c b/users/moults31/moults31.c
deleted file mode 100644
index 0dbaed0bb0..0000000000
--- a/users/moults31/moults31.c
+++ /dev/null
@@ -1,114 +0,0 @@
-/* Copyright 2021 moults31
- *
- * 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 "moults31.h"
-
-bool moults31_tap_custom_code(uint16_t keycode) {
- keyrecord_t record = {
- .event = {
- .pressed = 1,
- },
- };
- return process_record_user(keycode, &record);
-}
-
-bool process_record_user(uint16_t keycode, keyrecord_t *record) {
- bool rv = true;
- switch (keycode) {
- case M_MST_CODEBLOCK:
- if (record->event.pressed) {
- SEND_STRING("```");
- }
- break;
-
- case M_VSC_TERMFOCUS:
- case M_VSC_SIDEBARFOCUS:
- case M_VSC_SIDEBARCLOSE:
- case M_VSC_FILECLOSE:
- case M_VSC_FILENXT:
- case M_VSC_FILEPRV:
- case M_VSC_DBGCNSLFOCUS:
- case M_VSC_MVEDTRNXTGRP:
- case M_VSC_MVEDTRPRVGRP:
- case M_VSC_EDGRPNXT:
- case M_VSC_EDGRPPRV:
- case M_VSC_VIEWSIZEINC:
- case M_VSC_VIEWSIZEDEC:
- rv = process_record_vsc(keycode, record);
- break;
-
- case M_GDB_PLAY:
- case M_GDB_PAUSE:
- case M_GDB_STEPOVER:
- case M_GDB_STEPIN:
- case M_GDB_STEPOUT:
- case M_GDB_RESTART:
- case M_GDB_STOP:
- rv = process_record_gdb(keycode, record);
- break;
-
- case M_OBS_BRB:
- case M_OBS_GAME:
- case M_OBS_JSTCHT:
- case M_OBS_DSKT_MUTE:
- case M_OBS_DSKT_UNMUTE:
- case M_OBS_VOICE_MUTE:
- case M_OBS_VOICE_UNMUTE:
- case M_OBS_MOOSIC_MUTE:
- case M_OBS_MOOSIC_UNMUTE:
- rv = process_record_obs(keycode, record);
- break;
- }
- return rv;
-};
-
-#ifdef ENCODER_ENABLE
-__attribute__((weak)) bool encoder_update_user(uint8_t index, bool clockwise) {
- const layer_state_t curr_layer = get_highest_layer(layer_state);
- if (index == 1) { /* Bottom encoder */
- if(curr_layer == 2 || curr_layer == 3) {
- if (clockwise) {
- moults31_tap_custom_code(M_VSC_FILENXT);
- } else {
- moults31_tap_custom_code(M_VSC_FILEPRV);
- }
- }
- else {
- if (clockwise) {
- tap_code(KC_VOLU);
- } else {
- tap_code(KC_VOLD);
- }
- }
- }
- if (index == 0) { /* Top encoder */
- if(curr_layer == 2 || curr_layer == 3) {
- if (clockwise) {
- moults31_tap_custom_code(M_VSC_VIEWSIZEINC);
- } else {
- moults31_tap_custom_code(M_VSC_VIEWSIZEDEC);
- }
- }
- else {
- if (clockwise) {
- tap_code(KC_MNXT);
- } else {
- tap_code(KC_MPRV);
- }
- }
- }
- return false;
-}
-#endif
diff --git a/users/moults31/moults31.h b/users/moults31/moults31.h
deleted file mode 100644
index 60e317b784..0000000000
--- a/users/moults31/moults31.h
+++ /dev/null
@@ -1,61 +0,0 @@
-/* Copyright 2021 moults31
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-#pragma once
-
-#include QMK_KEYBOARD_H
-
-#include "vscode.h"
-#include "obs.h"
-#include "gdb.h"
-
-bool moults31_tap_custom_code(uint16_t keycode);
-
-enum custom_keycodes {
- // VSCode keycodes
- M_VSC_TERMFOCUS = SAFE_RANGE,
- M_VSC_SIDEBARFOCUS,
- M_VSC_SIDEBARCLOSE,
- M_VSC_DBGCNSLFOCUS,
- M_VSC_EDGRPNXT,
- M_VSC_EDGRPPRV,
- M_VSC_MVEDTRNXTGRP,
- M_VSC_MVEDTRPRVGRP,
- M_VSC_VIEWSIZEINC,
- M_VSC_VIEWSIZEDEC,
- M_VSC_FILECLOSE,
- M_VSC_FILENXT,
- M_VSC_FILEPRV,
- // GDB keycodes (for vscode debugger)
- M_GDB_PLAY,
- M_GDB_PAUSE,
- M_GDB_STEPOVER,
- M_GDB_STEPIN,
- M_GDB_STEPOUT,
- M_GDB_RESTART,
- M_GDB_STOP,
- // MS Teams keycodes
- M_MST_CODEBLOCK,
- // OBS keycodes
- M_OBS_BRB,
- M_OBS_GAME,
- M_OBS_JSTCHT,
- M_OBS_DSKT_MUTE,
- M_OBS_DSKT_UNMUTE,
- M_OBS_VOICE_MUTE,
- M_OBS_VOICE_UNMUTE,
- M_OBS_MOOSIC_MUTE,
- M_OBS_MOOSIC_UNMUTE,
-};
diff --git a/users/moults31/obs.c b/users/moults31/obs.c
deleted file mode 100644
index a0d2ee5496..0000000000
--- a/users/moults31/obs.c
+++ /dev/null
@@ -1,80 +0,0 @@
-/* Copyright 2021 moults31
- *
- * 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 "obs.h"
-
-bool process_record_obs(uint16_t keycode, keyrecord_t *record) {
- // Apply all 4 mods for custom OBS macros
- register_code(KC_LSFT);
- register_code(KC_LCTL);
- register_code(KC_LALT);
- register_code(KC_LGUI);
-
- switch (keycode) {
- case M_OBS_BRB:
- if (record->event.pressed) {
- SEND_STRING("1");
- }
- break;
- case M_OBS_GAME:
- if (record->event.pressed) {
- SEND_STRING("2");
- }
- break;
- case M_OBS_JSTCHT:
- if (record->event.pressed) {
- SEND_STRING("3");
- }
- break;
- case M_OBS_DSKT_MUTE:
- if (record->event.pressed) {
- SEND_STRING("4");
- }
- break;
- case M_OBS_DSKT_UNMUTE:
- if (record->event.pressed) {
- SEND_STRING("5");
- }
- break;
- case M_OBS_VOICE_MUTE:
- if (record->event.pressed) {
- SEND_STRING("6");
- }
- break;
- case M_OBS_VOICE_UNMUTE:
- if (record->event.pressed) {
- SEND_STRING("7");
- }
- break;
- case M_OBS_MOOSIC_MUTE:
- if (record->event.pressed) {
- SEND_STRING("8");
- }
- break;
- case M_OBS_MOOSIC_UNMUTE:
- if (record->event.pressed) {
- SEND_STRING("9");
- }
- break;
- }
-
- // Unpress all 4 mods for custom OBS macros
- unregister_code(KC_LSFT);
- unregister_code(KC_LCTL);
- unregister_code(KC_LALT);
- unregister_code(KC_LGUI);
-
- return true;
-}
diff --git a/users/moults31/obs.h b/users/moults31/obs.h
deleted file mode 100644
index 2a2973f802..0000000000
--- a/users/moults31/obs.h
+++ /dev/null
@@ -1,21 +0,0 @@
-/* Copyright 2021 moults31
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-#pragma once
-
-#include QMK_KEYBOARD_H
-#include "moults31.h"
-
-bool process_record_obs(uint16_t keycode, keyrecord_t *record);
diff --git a/users/moults31/readme.md b/users/moults31/readme.md
deleted file mode 100644
index 3a5badbe5b..0000000000
--- a/users/moults31/readme.md
+++ /dev/null
@@ -1,5 +0,0 @@
-# moults31 Userspace
-
-## Features
-
-- Custom macros for VScode, OBS, GDB (Visual)
diff --git a/users/moults31/rules.mk b/users/moults31/rules.mk
deleted file mode 100644
index af7c11d9f8..0000000000
--- a/users/moults31/rules.mk
+++ /dev/null
@@ -1,10 +0,0 @@
-SRC += moults31.c
-
-# Custom macro sources
-SRC += vscode.c
-SRC += obs.c
-SRC += gdb.c
-
-ifneq ($(PLATFORM),CHIBIOS)
- LTO_ENABLE = yes # Enable link time optimization
-endif
diff --git a/users/moults31/vscode.c b/users/moults31/vscode.c
deleted file mode 100644
index 7900e20431..0000000000
--- a/users/moults31/vscode.c
+++ /dev/null
@@ -1,90 +0,0 @@
-/* Copyright 2021 moults31
- *
- * 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 "vscode.h"
-
-bool process_record_vsc(uint16_t keycode, keyrecord_t *record) {
- bool rv = true;
-
- switch (keycode) {
- case M_VSC_TERMFOCUS:
- if (record->event.pressed) {
- SEND_STRING(SS_LCTL("`"));
- }
- break;
- case M_VSC_SIDEBARFOCUS:
- if (record->event.pressed) {
- SEND_STRING(SS_LCTL("0"));
- }
- break;
- case M_VSC_SIDEBARCLOSE:
- if (record->event.pressed) {
- SEND_STRING(SS_LCTL("b"));
- }
- break;
- case M_VSC_FILECLOSE:
- if (record->event.pressed) {
- SEND_STRING(SS_LCTL("w"));
- }
- break;
- case M_VSC_FILENXT:
- if (record->event.pressed) {
- SEND_STRING(SS_DOWN(X_LEFT_CTRL) SS_TAP(X_K) SS_TAP(X_PAGE_DOWN) SS_UP(X_LEFT_CTRL));
- }
- break;
- case M_VSC_FILEPRV:
- if (record->event.pressed) {
- SEND_STRING(SS_DOWN(X_LEFT_CTRL) SS_TAP(X_K) SS_TAP(X_PGUP) SS_UP(X_LEFT_CTRL));
- }
- break;
- case M_VSC_DBGCNSLFOCUS:
- if (record->event.pressed) {
- SEND_STRING(SS_LCTL(SS_LALT(SS_TAP(X_D))));
- }
- break;
- case M_VSC_MVEDTRNXTGRP:
- if (record->event.pressed) {
- SEND_STRING(SS_LCTL(SS_LALT(SS_TAP(X_RIGHT))));
- }
- break;
- case M_VSC_MVEDTRPRVGRP:
- if (record->event.pressed) {
- SEND_STRING(SS_LCTL(SS_LALT(SS_TAP(X_LEFT))));
- }
- break;
- case M_VSC_EDGRPNXT:
- if (record->event.pressed) {
- SEND_STRING(SS_LCTL(SS_LALT(SS_TAP(X_L))));
- }
- break;
- case M_VSC_EDGRPPRV:
- if (record->event.pressed) {
- SEND_STRING(SS_LCTL(SS_LALT(SS_TAP(X_K))));
- }
- break;
- case M_VSC_VIEWSIZEINC:
- if (record->event.pressed) {
- SEND_STRING(SS_LCTL(SS_LALT(SS_TAP(X_P))));
- }
- break;
- case M_VSC_VIEWSIZEDEC:
- if (record->event.pressed) {
- SEND_STRING(SS_LCTL(SS_LALT(SS_TAP(X_O))));
- }
- break;
- }
-
- return rv;
-}
diff --git a/users/moults31/vscode.h b/users/moults31/vscode.h
deleted file mode 100644
index 7e88b6591a..0000000000
--- a/users/moults31/vscode.h
+++ /dev/null
@@ -1,21 +0,0 @@
-/* Copyright 2021 moults31
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-#pragma once
-
-#include QMK_KEYBOARD_H
-#include "moults31.h"
-
-bool process_record_vsc(uint16_t keycode, keyrecord_t *record);
diff --git a/users/mtei/config.h b/users/mtei/config.h
deleted file mode 100644
index 77074357e8..0000000000
--- a/users/mtei/config.h
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright (c) 2022 Takeshi Ishii (mtei@github)
-// SPDX-License-Identifier: GPL-2.0-or-later
-
-// clang-format off
-
-#pragma once
-
-// Selection of RGBLIGHT MODE to use.
-#undef RGBLIGHT_EFFECT_BREATHING
-#undef RGBLIGHT_EFFECT_RAINBOW_MOOD
-#undef RGBLIGHT_EFFECT_RAINBOW_SWIRL
-#undef RGBLIGHT_EFFECT_SNAKE
-#undef RGBLIGHT_EFFECT_KNIGHT
-#undef RGBLIGHT_EFFECT_CHRISTMAS
-#undef RGBLIGHT_EFFECT_STATIC_GRADIENT
-#undef RGBLIGHT_EFFECT_RGB_TEST
-#undef RGBLIGHT_EFFECT_ALTERNATING
-#undef RGBLIGHT_EFFECT_TWINKLE
-
-#if defined(LED_ANIMATIONS)
-# if LED_ANIMATIONS_LEVEL > 1
-# define RGBLIGHT_EFFECT_BREATHING
-# define RGBLIGHT_EFFECT_RAINBOW_MOOD
-# define RGBLIGHT_EFFECT_RAINBOW_SWIRL
-//# define RGBLIGHT_EFFECT_SNAKE
-//# define RGBLIGHT_EFFECT_KNIGHT
-# define RGBLIGHT_EFFECT_CHRISTMAS
-# define RGBLIGHT_EFFECT_STATIC_GRADIENT
-//# define RGBLIGHT_EFFECT_RGB_TEST
-//# define RGBLIGHT_EFFECT_ALTERNATING
-# else
-# define RGBLIGHT_EFFECT_BREATHING
-# define RGBLIGHT_EFFECT_RAINBOW_MOOD
-//# define RGBLIGHT_EFFECT_RAINBOW_SWIRL
-//# define RGBLIGHT_EFFECT_SNAKE
-//# define RGBLIGHT_EFFECT_KNIGHT
-//# define RGBLIGHT_EFFECT_CHRISTMAS
-# define RGBLIGHT_EFFECT_STATIC_GRADIENT
-//# define RGBLIGHT_EFFECT_RGB_TEST
-//# define RGBLIGHT_EFFECT_ALTERNATING
-# endif
-#endif
-
-#ifdef DEBUG_CONFIG
-# include "debug_config.h"
-#endif
diff --git a/users/mtei/cpp_map.h b/users/mtei/cpp_map.h
deleted file mode 100644
index 3b95d0a82a..0000000000
--- a/users/mtei/cpp_map.h
+++ /dev/null
@@ -1,84 +0,0 @@
-// Copyright (c) 2021 Takeshi Ishii (mtei@github)
-// SPDX-License-Identifier: MIT
-
-// See here for how to use this. (https://github.com/mtei/bare_metal_parts/tree/master/cpp/map)
-
-#pragma once
-// clang-format off
-
-#define _MAP1(E,ET, _1) ET(_1)
-#define _MAP2(E,ET, _1,_2) E(_1) ET(_2)
-#define _MAP3(E,ET, _1,_2,_3) E(_1) E(_2) ET(_3)
-#define _MAP4(E,ET, _1,_2,_3,_4) E(_1) E(_2) E(_3) ET(_4)
-#define _MAP5(E,ET, _1,_2,_3,_4,_5) E(_1) E(_2) E(_3) E(_4) ET(_5)
-#define _MAP6(E,ET, _1,_2,_3,_4,_5,_6) E(_1) E(_2) E(_3) E(_4) E(_5) ET(_6)
-#define _MAP7(E,ET, _1,_2,_3,_4,_5,_6,_7) E(_1) E(_2) E(_3) E(_4) E(_5) E(_6) ET(_7)
-#define _MAP8(E,ET, _1,_2,_3,_4,_5,_6,_7,_8) E(_1) E(_2) E(_3) E(_4) E(_5) E(_6) E(_7) ET(_8)
-#define _MAP9(E,ET, _1,_2,_3,_4,_5,_6,_7,_8,_9) E(_1) E(_2) E(_3) E(_4) E(_5) E(_6) E(_7) E(_8) ET(_9)
-#define _MAP10(E,ET, _1,_2,_3,_4,_5,_6,_7,_8,_9,_10) E(_1) E(_2) E(_3) E(_4) E(_5) E(_6) E(_7) E(_8) E(_9) ET(_10)
-#define _MAP11(E,ET, _1,_2,_3,_4,_5,_6,_7,_8,_9,_10,_11) E(_1) E(_2) E(_3) E(_4) E(_5) E(_6) E(_7) E(_8) E(_9) E(_10) ET(_11)
-#define _MAP12(E,ET, _1,_2,_3,_4,_5,_6,_7,_8,_9,_10,_11,_12) E(_1) E(_2) E(_3) E(_4) E(_5) E(_6) E(_7) E(_8) E(_9) E(_10) E(_11) ET(_12)
-#define _MAP13(E,ET, _1,_2,_3,_4,_5,_6,_7,_8,_9,_10,_11,_12,_13) E(_1) E(_2) E(_3) E(_4) E(_5) E(_6) E(_7) E(_8) E(_9) E(_10) E(_11) E(_12) ET(_13)
-#define _MAP14(E,ET, _1,_2,_3,_4,_5,_6,_7,_8,_9,_10,_11,_12,_13,_14) E(_1) E(_2) E(_3) E(_4) E(_5) E(_6) E(_7) E(_8) E(_9) E(_10) E(_11) E(_12) E(_13) ET(_14)
-#define _MAP15(E,ET, _1,_2,_3,_4,_5,_6,_7,_8,_9,_10,_11,_12,_13,_14,_15) E(_1) E(_2) E(_3) E(_4) E(_5) E(_6) E(_7) E(_8) E(_9) E(_10) E(_11) E(_12) E(_13) E(_14) ET(_15)
-#define _MAP16(E,ET, _1,_2,_3,_4,_5,_6,_7,_8,_9,_10,_11,_12,_13,_14,_15,_16) E(_1) E(_2) E(_3) E(_4) E(_5) E(_6) E(_7) E(_8) E(_9) E(_10) E(_11) E(_12) E(_13) E(_14) E(_15) ET(_16)
-#define _MAP17(E,ET, _1,_2,_3,_4,_5,_6,_7,_8,_9,_10,_11,_12,_13,_14,_15,_16,_17) E(_1) E(_2) E(_3) E(_4) E(_5) E(_6) E(_7) E(_8) E(_9) E(_10) E(_11) E(_12) E(_13) E(_14) E(_15) E(_16) ET(_17)
-#define _MAP18(E,ET, _1,_2,_3,_4,_5,_6,_7,_8,_9,_10,_11,_12,_13,_14,_15,_16,_17,_18) E(_1) E(_2) E(_3) E(_4) E(_5) E(_6) E(_7) E(_8) E(_9) E(_10) E(_11) E(_12) E(_13) E(_14) E(_15) E(_16) E(_17) ET(_18)
-#define _MAP19(E,ET, _1,_2,_3,_4,_5,_6,_7,_8,_9,_10,_11,_12,_13,_14,_15,_16,_17,_18,_19) E(_1) E(_2) E(_3) E(_4) E(_5) E(_6) E(_7) E(_8) E(_9) E(_10) E(_11) E(_12) E(_13) E(_14) E(_15) E(_16) E(_17) E(_18) ET(_19)
-#define _MAP20(E,ET, _1,_2,_3,_4,_5,_6,_7,_8,_9,_10,_11,_12,_13,_14,_15,_16,_17,_18,_19,_20) E(_1) E(_2) E(_3) E(_4) E(_5) E(_6) E(_7) E(_8) E(_9) E(_10) E(_11) E(_12) E(_13) E(_14) E(_15) E(_16) E(_17) E(_18) E(_19) ET(_20)
-#define _MAP21(E,ET, _1,_2,_3,_4,_5,_6,_7,_8,_9,_10,_11,_12,_13,_14,_15,_16,_17,_18,_19,_20,_21) E(_1) E(_2) E(_3) E(_4) E(_5) E(_6) E(_7) E(_8) E(_9) E(_10) E(_11) E(_12) E(_13) E(_14) E(_15) E(_16) E(_17) E(_18) E(_19) E(_20) ET(_21)
-#define _MAP22(E,ET, _1,_2,_3,_4,_5,_6,_7,_8,_9,_10,_11,_12,_13,_14,_15,_16,_17,_18,_19,_20,_21,_22) E(_1) E(_2) E(_3) E(_4) E(_5) E(_6) E(_7) E(_8) E(_9) E(_10) E(_11) E(_12) E(_13) E(_14) E(_15) E(_16) E(_17) E(_18) E(_19) E(_20) E(_21) ET(_22)
-#define _MAP23(E,ET, _1,_2,_3,_4,_5,_6,_7,_8,_9,_10,_11,_12,_13,_14,_15,_16,_17,_18,_19,_20,_21,_22,_23) E(_1) E(_2) E(_3) E(_4) E(_5) E(_6) E(_7) E(_8) E(_9) E(_10) E(_11) E(_12) E(_13) E(_14) E(_15) E(_16) E(_17) E(_18) E(_19) E(_20) E(_21) E(_22) ET(_23)
-#define _MAP24(E,ET, _1,_2,_3,_4,_5,_6,_7,_8,_9,_10,_11,_12,_13,_14,_15,_16,_17,_18,_19,_20,_21,_22,_23,_24) E(_1) E(_2) E(_3) E(_4) E(_5) E(_6) E(_7) E(_8) E(_9) E(_10) E(_11) E(_12) E(_13) E(_14) E(_15) E(_16) E(_17) E(_18) E(_19) E(_20) E(_21) E(_22) E(_23) ET(_24)
-#define _MAP25(E,ET, _1,_2,_3,_4,_5,_6,_7,_8,_9,_10,_11,_12,_13,_14,_15,_16,_17,_18,_19,_20,_21,_22,_23,_24,_25) E(_1) E(_2) E(_3) E(_4) E(_5) E(_6) E(_7) E(_8) E(_9) E(_10) E(_11) E(_12) E(_13) E(_14) E(_15) E(_16) E(_17) E(_18) E(_19) E(_20) E(_21) E(_22) E(_23) E(_24) ET(_25)
-#define _MAP26(E,ET, _1,_2,_3,_4,_5,_6,_7,_8,_9,_10,_11,_12,_13,_14,_15,_16,_17,_18,_19,_20,_21,_22,_23,_24,_25,_26) E(_1) E(_2) E(_3) E(_4) E(_5) E(_6) E(_7) E(_8) E(_9) E(_10) E(_11) E(_12) E(_13) E(_14) E(_15) E(_16) E(_17) E(_18) E(_19) E(_20) E(_21) E(_22) E(_23) E(_24) E(_25) ET(_26)
-#define _MAP27(E,ET, _1,_2,_3,_4,_5,_6,_7,_8,_9,_10,_11,_12,_13,_14,_15,_16,_17,_18,_19,_20,_21,_22,_23,_24,_25,_26,_27) E(_1) E(_2) E(_3) E(_4) E(_5) E(_6) E(_7) E(_8) E(_9) E(_10) E(_11) E(_12) E(_13) E(_14) E(_15) E(_16) E(_17) E(_18) E(_19) E(_20) E(_21) E(_22) E(_23) E(_24) E(_25) E(_26) ET(_27)
-#define _MAP28(E,ET, _1,_2,_3,_4,_5,_6,_7,_8,_9,_10,_11,_12,_13,_14,_15,_16,_17,_18,_19,_20,_21,_22,_23,_24,_25,_26,_27,_28) E(_1) E(_2) E(_3) E(_4) E(_5) E(_6) E(_7) E(_8) E(_9) E(_10) E(_11) E(_12) E(_13) E(_14) E(_15) E(_16) E(_17) E(_18) E(_19) E(_20) E(_21) E(_22) E(_23) E(_24) E(_25) E(_26) E(_27) ET(_28)
-#define _MAP29(E,ET, _1,_2,_3,_4,_5,_6,_7,_8,_9,_10,_11,_12,_13,_14,_15,_16,_17,_18,_19,_20,_21,_22,_23,_24,_25,_26,_27,_28,_29) E(_1) E(_2) E(_3) E(_4) E(_5) E(_6) E(_7) E(_8) E(_9) E(_10) E(_11) E(_12) E(_13) E(_14) E(_15) E(_16) E(_17) E(_18) E(_19) E(_20) E(_21) E(_22) E(_23) E(_24) E(_25) E(_26) E(_27) E(_28) ET(_29)
-#define _MAP30(E,ET, _1,_2,_3,_4,_5,_6,_7,_8,_9,_10,_11,_12,_13,_14,_15,_16,_17,_18,_19,_20,_21,_22,_23,_24,_25,_26,_27,_28,_29,_30) E(_1) E(_2) E(_3) E(_4) E(_5) E(_6) E(_7) E(_8) E(_9) E(_10) E(_11) E(_12) E(_13) E(_14) E(_15) E(_16) E(_17) E(_18) E(_19) E(_20) E(_21) E(_22) E(_23) E(_24) E(_25) E(_26) E(_27) E(_28) E(_29) ET(_30)
-#define _MAP31(E,ET, _1,_2,_3,_4,_5,_6,_7,_8,_9,_10,_11,_12,_13,_14,_15,_16,_17,_18,_19,_20,_21,_22,_23,_24,_25,_26,_27,_28,_29,_30,_31) E(_1) E(_2) E(_3) E(_4) E(_5) E(_6) E(_7) E(_8) E(_9) E(_10) E(_11) E(_12) E(_13) E(_14) E(_15) E(_16) E(_17) E(_18) E(_19) E(_20) E(_21) E(_22) E(_23) E(_24) E(_25) E(_26) E(_27) E(_28) E(_29) E(_30) ET(_31)
-#define _MAP32(E,ET, _1,_2,_3,_4,_5,_6,_7,_8,_9,_10,_11,_12,_13,_14,_15,_16,_17,_18,_19,_20,_21,_22,_23,_24,_25,_26,_27,_28,_29,_30,_31,_32) E(_1) E(_2) E(_3) E(_4) E(_5) E(_6) E(_7) E(_8) E(_9) E(_10) E(_11) E(_12) E(_13) E(_14) E(_15) E(_16) E(_17) E(_18) E(_19) E(_20) E(_21) E(_22) E(_23) E(_24) E(_25) E(_26) E(_27) E(_28) E(_29) E(_30) E(_31) ET(_32)
-
-#define SELECT_MAP(e,et,_1,_2,_3,_4,_5,_6,_7,_8,_9,_10,_11,_12,_13,_14,_15,_16,_17,_18,_19,_20,_21,_22,_23,_24,_25,_26,_27,_28,_29,_30,_31,_32,NAME,...) NAME
-#define MAPT(E,ET,...) SELECT_MAP(E,ET,__VA_ARGS__,_MAP32,_MAP31,_MAP30,_MAP29,_MAP28,_MAP27,_MAP26,_MAP25,_MAP24,_MAP23,_MAP22,_MAP21,_MAP20,_MAP19,_MAP18,_MAP17,_MAP16,_MAP15,_MAP14,_MAP13,_MAP12,_MAP11,_MAP10,_MAP9,_MAP8,_MAP7,_MAP6,_MAP5,_MAP4,_MAP3,_MAP2,_MAP1)(E,ET,__VA_ARGS__)
-#define MAP(E,...) MAPT(E,E,__VA_ARGS__)
-
-#define _MAP_INDEX1(E,ET, _1) ET(0,_1)
-#define _MAP_INDEX2(E,ET, _1,_2) E(0,_1) ET(1,_2)
-#define _MAP_INDEX3(E,ET, _1,_2,_3) E(0,_1) E(1,_2) ET(2,_3)
-#define _MAP_INDEX4(E,ET, _1,_2,_3,_4) E(0,_1) E(1,_2) E(2,_3) ET(3,_4)
-#define _MAP_INDEX5(E,ET, _1,_2,_3,_4,_5) E(0,_1) E(1,_2) E(2,_3) E(3,_4) ET(4,_5)
-#define _MAP_INDEX6(E,ET, _1,_2,_3,_4,_5,_6) E(0,_1) E(1,_2) E(2,_3) E(3,_4) E(4,_5) ET(5,_6)
-#define _MAP_INDEX7(E,ET, _1,_2,_3,_4,_5,_6,_7) E(0,_1) E(1,_2) E(2,_3) E(3,_4) E(4,_5) E(5,_6) ET(6,_7)
-#define _MAP_INDEX8(E,ET, _1,_2,_3,_4,_5,_6,_7,_8) E(0,_1) E(1,_2) E(2,_3) E(3,_4) E(4,_5) E(5,_6) E(6,_7) ET(7,_8)
-#define _MAP_INDEX9(E,ET, _1,_2,_3,_4,_5,_6,_7,_8,_9) E(0,_1) E(1,_2) E(2,_3) E(3,_4) E(4,_5) E(5,_6) E(6,_7) E(7,_8) ET(8,_9)
-#define _MAP_INDEX10(E,ET, _1,_2,_3,_4,_5,_6,_7,_8,_9,_10) E(0,_1) E(1,_2) E(2,_3) E(3,_4) E(4,_5) E(5,_6) E(6,_7) E(7,_8) E(8,_9) ET(9,_10)
-#define _MAP_INDEX11(E,ET, _1,_2,_3,_4,_5,_6,_7,_8,_9,_10,_11) E(0,_1) E(1,_2) E(2,_3) E(3,_4) E(4,_5) E(5,_6) E(6,_7) E(7,_8) E(8,_9) E(9,_10) ET(10,_11)
-#define _MAP_INDEX12(E,ET, _1,_2,_3,_4,_5,_6,_7,_8,_9,_10,_11,_12) E(0,_1) E(1,_2) E(2,_3) E(3,_4) E(4,_5) E(5,_6) E(6,_7) E(7,_8) E(8,_9) E(9,_10) E(10,_11) ET(11,_12)
-#define _MAP_INDEX13(E,ET, _1,_2,_3,_4,_5,_6,_7,_8,_9,_10,_11,_12,_13) E(0,_1) E(1,_2) E(2,_3) E(3,_4) E(4,_5) E(5,_6) E(6,_7) E(7,_8) E(8,_9) E(9,_10) E(10,_11) E(11,_12) ET(12,_13)
-#define _MAP_INDEX14(E,ET, _1,_2,_3,_4,_5,_6,_7,_8,_9,_10,_11,_12,_13,_14) E(0,_1) E(1,_2) E(2,_3) E(3,_4) E(4,_5) E(5,_6) E(6,_7) E(7,_8) E(8,_9) E(9,_10) E(10,_11) E(11,_12) E(12,_13) ET(13,_14)
-#define _MAP_INDEX15(E,ET, _1,_2,_3,_4,_5,_6,_7,_8,_9,_10,_11,_12,_13,_14,_15) E(0,_1) E(1,_2) E(2,_3) E(3,_4) E(4,_5) E(5,_6) E(6,_7) E(7,_8) E(8,_9) E(9,_10) E(10,_11) E(11,_12) E(12,_13) E(13,_14) ET(14,_15)
-#define _MAP_INDEX16(E,ET, _1,_2,_3,_4,_5,_6,_7,_8,_9,_10,_11,_12,_13,_14,_15,_16) E(0,_1) E(1,_2) E(2,_3) E(3,_4) E(4,_5) E(5,_6) E(6,_7) E(7,_8) E(8,_9) E(9,_10) E(10,_11) E(11,_12) E(12,_13) E(13,_14) E(14,_15) ET(15,_16)
-#define _MAP_INDEX17(E,ET, _1,_2,_3,_4,_5,_6,_7,_8,_9,_10,_11,_12,_13,_14,_15,_16,_17) E(0,_1) E(1,_2) E(2,_3) E(3,_4) E(4,_5) E(5,_6) E(6,_7) E(7,_8) E(8,_9) E(9,_10) E(10,_11) E(11,_12) E(12,_13) E(13,_14) E(14,_15) E(15,_16) ET(16,_17)
-#define _MAP_INDEX18(E,ET, _1,_2,_3,_4,_5,_6,_7,_8,_9,_10,_11,_12,_13,_14,_15,_16,_17,_18) E(0,_1) E(1,_2) E(2,_3) E(3,_4) E(4,_5) E(5,_6) E(6,_7) E(7,_8) E(8,_9) E(9,_10) E(10,_11) E(11,_12) E(12,_13) E(13,_14) E(14,_15) E(15,_16) E(16,_17) ET(17,_18)
-#define _MAP_INDEX19(E,ET, _1,_2,_3,_4,_5,_6,_7,_8,_9,_10,_11,_12,_13,_14,_15,_16,_17,_18,_19) E(0,_1) E(1,_2) E(2,_3) E(3,_4) E(4,_5) E(5,_6) E(6,_7) E(7,_8) E(8,_9) E(9,_10) E(10,_11) E(11,_12) E(12,_13) E(13,_14) E(14,_15) E(15,_16) E(16,_17) E(17,_18) ET(18,_19)
-#define _MAP_INDEX20(E,ET, _1,_2,_3,_4,_5,_6,_7,_8,_9,_10,_11,_12,_13,_14,_15,_16,_17,_18,_19,_20) E(0,_1) E(1,_2) E(2,_3) E(3,_4) E(4,_5) E(5,_6) E(6,_7) E(7,_8) E(8,_9) E(9,_10) E(10,_11) E(11,_12) E(12,_13) E(13,_14) E(14,_15) E(15,_16) E(16,_17) E(17,_18) E(18,_19) ET(19,_20)
-#define _MAP_INDEX21(E,ET, _1,_2,_3,_4,_5,_6,_7,_8,_9,_10,_11,_12,_13,_14,_15,_16,_17,_18,_19,_20,_21) E(0,_1) E(1,_2) E(2,_3) E(3,_4) E(4,_5) E(5,_6) E(6,_7) E(7,_8) E(8,_9) E(9,_10) E(10,_11) E(11,_12) E(12,_13) E(13,_14) E(14,_15) E(15,_16) E(16,_17) E(17,_18) E(18,_19) E(19,_20) ET(20,_21)
-#define _MAP_INDEX22(E,ET, _1,_2,_3,_4,_5,_6,_7,_8,_9,_10,_11,_12,_13,_14,_15,_16,_17,_18,_19,_20,_21,_22) E(0,_1) E(1,_2) E(2,_3) E(3,_4) E(4,_5) E(5,_6) E(6,_7) E(7,_8) E(8,_9) E(9,_10) E(10,_11) E(11,_12) E(12,_13) E(13,_14) E(14,_15) E(15,_16) E(16,_17) E(17,_18) E(18,_19) E(19,_20) E(20,_21) ET(21,_22)
-#define _MAP_INDEX23(E,ET, _1,_2,_3,_4,_5,_6,_7,_8,_9,_10,_11,_12,_13,_14,_15,_16,_17,_18,_19,_20,_21,_22,_23) E(0,_1) E(1,_2) E(2,_3) E(3,_4) E(4,_5) E(5,_6) E(6,_7) E(7,_8) E(8,_9) E(9,_10) E(10,_11) E(11,_12) E(12,_13) E(13,_14) E(14,_15) E(15,_16) E(16,_17) E(17,_18) E(18,_19) E(19,_20) E(20,_21) E(21,_22) ET(22,_23)
-#define _MAP_INDEX24(E,ET, _1,_2,_3,_4,_5,_6,_7,_8,_9,_10,_11,_12,_13,_14,_15,_16,_17,_18,_19,_20,_21,_22,_23,_24) E(0,_1) E(1,_2) E(2,_3) E(3,_4) E(4,_5) E(5,_6) E(6,_7) E(7,_8) E(8,_9) E(9,_10) E(10,_11) E(11,_12) E(12,_13) E(13,_14) E(14,_15) E(15,_16) E(16,_17) E(17,_18) E(18,_19) E(19,_20) E(20,_21) E(21,_22) E(22,_23) ET(23,_24)
-#define _MAP_INDEX25(E,ET, _1,_2,_3,_4,_5,_6,_7,_8,_9,_10,_11,_12,_13,_14,_15,_16,_17,_18,_19,_20,_21,_22,_23,_24,_25) E(0,_1) E(1,_2) E(2,_3) E(3,_4) E(4,_5) E(5,_6) E(6,_7) E(7,_8) E(8,_9) E(9,_10) E(10,_11) E(11,_12) E(12,_13) E(13,_14) E(14,_15) E(15,_16) E(16,_17) E(17,_18) E(18,_19) E(19,_20) E(20,_21) E(21,_22) E(22,_23) E(23,_24) ET(24,_25)
-#define _MAP_INDEX26(E,ET, _1,_2,_3,_4,_5,_6,_7,_8,_9,_10,_11,_12,_13,_14,_15,_16,_17,_18,_19,_20,_21,_22,_23,_24,_25,_26) E(0,_1) E(1,_2) E(2,_3) E(3,_4) E(4,_5) E(5,_6) E(6,_7) E(7,_8) E(8,_9) E(9,_10) E(10,_11) E(11,_12) E(12,_13) E(13,_14) E(14,_15) E(15,_16) E(16,_17) E(17,_18) E(18,_19) E(19,_20) E(20,_21) E(21,_22) E(22,_23) E(23,_24) E(24,_25) ET(25,_26)
-#define _MAP_INDEX27(E,ET, _1,_2,_3,_4,_5,_6,_7,_8,_9,_10,_11,_12,_13,_14,_15,_16,_17,_18,_19,_20,_21,_22,_23,_24,_25,_26,_27) E(0,_1) E(1,_2) E(2,_3) E(3,_4) E(4,_5) E(5,_6) E(6,_7) E(7,_8) E(8,_9) E(9,_10) E(10,_11) E(11,_12) E(12,_13) E(13,_14) E(14,_15) E(15,_16) E(16,_17) E(17,_18) E(18,_19) E(19,_20) E(20,_21) E(21,_22) E(22,_23) E(23,_24) E(24,_25) E(25,_26) ET(26,_27)
-#define _MAP_INDEX28(E,ET, _1,_2,_3,_4,_5,_6,_7,_8,_9,_10,_11,_12,_13,_14,_15,_16,_17,_18,_19,_20,_21,_22,_23,_24,_25,_26,_27,_28) E(0,_1) E(1,_2) E(2,_3) E(3,_4) E(4,_5) E(5,_6) E(6,_7) E(7,_8) E(8,_9) E(9,_10) E(10,_11) E(11,_12) E(12,_13) E(13,_14) E(14,_15) E(15,_16) E(16,_17) E(17,_18) E(18,_19) E(19,_20) E(20,_21) E(21,_22) E(22,_23) E(23,_24) E(24,_25) E(25,_26) E(26,_27) ET(27,_28)
-#define _MAP_INDEX29(E,ET, _1,_2,_3,_4,_5,_6,_7,_8,_9,_10,_11,_12,_13,_14,_15,_16,_17,_18,_19,_20,_21,_22,_23,_24,_25,_26,_27,_28,_29) E(0,_1) E(1,_2) E(2,_3) E(3,_4) E(4,_5) E(5,_6) E(6,_7) E(7,_8) E(8,_9) E(9,_10) E(10,_11) E(11,_12) E(12,_13) E(13,_14) E(14,_15) E(15,_16) E(16,_17) E(17,_18) E(18,_19) E(19,_20) E(20,_21) E(21,_22) E(22,_23) E(23,_24) E(24,_25) E(25,_26) E(26,_27) E(27,_28) ET(28,_29)
-#define _MAP_INDEX30(E,ET, _1,_2,_3,_4,_5,_6,_7,_8,_9,_10,_11,_12,_13,_14,_15,_16,_17,_18,_19,_20,_21,_22,_23,_24,_25,_26,_27,_28,_29,_30) E(0,_1) E(1,_2) E(2,_3) E(3,_4) E(4,_5) E(5,_6) E(6,_7) E(7,_8) E(8,_9) E(9,_10) E(10,_11) E(11,_12) E(12,_13) E(13,_14) E(14,_15) E(15,_16) E(16,_17) E(17,_18) E(18,_19) E(19,_20) E(20,_21) E(21,_22) E(22,_23) E(23,_24) E(24,_25) E(25,_26) E(26,_27) E(27,_28) E(28,_29) ET(29,_30)
-#define _MAP_INDEX31(E,ET, _1,_2,_3,_4,_5,_6,_7,_8,_9,_10,_11,_12,_13,_14,_15,_16,_17,_18,_19,_20,_21,_22,_23,_24,_25,_26,_27,_28,_29,_30,_31) E(0,_1) E(1,_2) E(2,_3) E(3,_4) E(4,_5) E(5,_6) E(6,_7) E(7,_8) E(8,_9) E(9,_10) E(10,_11) E(11,_12) E(12,_13) E(13,_14) E(14,_15) E(15,_16) E(16,_17) E(17,_18) E(18,_19) E(19,_20) E(20,_21) E(21,_22) E(22,_23) E(23,_24) E(24,_25) E(25,_26) E(26,_27) E(27,_28) E(28,_29) E(29,_30) ET(30,_31)
-#define _MAP_INDEX32(E,ET, _1,_2,_3,_4,_5,_6,_7,_8,_9,_10,_11,_12,_13,_14,_15,_16,_17,_18,_19,_20,_21,_22,_23,_24,_25,_26,_27,_28,_29,_30,_31,_32) E(0,_1) E(1,_2) E(2,_3) E(3,_4) E(4,_5) E(5,_6) E(6,_7) E(7,_8) E(8,_9) E(9,_10) E(10,_11) E(11,_12) E(12,_13) E(13,_14) E(14,_15) E(15,_16) E(16,_17) E(17,_18) E(18,_19) E(19,_20) E(20,_21) E(21,_22) E(22,_23) E(23,_24) E(24,_25) E(25,_26) E(26,_27) E(27,_28) E(28,_29) E(29,_30) E(30,_31) ET(31,_32)
-
-#define SELECT_MAP_INDEX(e,et,_1,_2,_3,_4,_5,_6,_7,_8,_9,_10,_11,_12,_13,_14,_15,_16,_17,_18,_19,_20,_21,_22,_23,_24,_25,_26,_27,_28,_29,_30,_31,_32,NAME,...) NAME
-#define MAPT_INDEX(E,ET,...) SELECT_MAP_INDEX(E,ET,__VA_ARGS__,_MAP_INDEX32,_MAP_INDEX31,_MAP_INDEX30,_MAP_INDEX29,_MAP_INDEX28,_MAP_INDEX27,_MAP_INDEX26,_MAP_INDEX25,_MAP_INDEX24,_MAP_INDEX23,_MAP_INDEX22,_MAP_INDEX21,_MAP_INDEX20,_MAP_INDEX19,_MAP_INDEX18,_MAP_INDEX17,_MAP_INDEX16,_MAP_INDEX15,_MAP_INDEX14,_MAP_INDEX13,_MAP_INDEX12,_MAP_INDEX11,_MAP_INDEX10,_MAP_INDEX9,_MAP_INDEX8,_MAP_INDEX7,_MAP_INDEX6,_MAP_INDEX5,_MAP_INDEX4,_MAP_INDEX3,_MAP_INDEX2,_MAP_INDEX1)(E,ET,__VA_ARGS__)
-#define MAP_INDEX(E,...) MAPT_INDEX(E,E,__VA_ARGS__)
-
-#define SELECT_ITEM_COUNT(_1,_2,_3,_4,_5,_6,_7,_8,_9,_10,_11,_12,_13,_14,_15,_16,_17,_18,_19,_20,_21,_22,_23,_24,_25,_26,_27,_28,_29,_30,_31,_32,NAME,...) NAME
-#define GET_ITEM_COUNT(...) SELECT_ITEM_COUNT(__VA_ARGS__,32,31,30,29,28,27,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1)
diff --git a/users/mtei/debug_config.h b/users/mtei/debug_config.h
deleted file mode 100644
index edcc1ad41b..0000000000
--- a/users/mtei/debug_config.h
+++ /dev/null
@@ -1,6 +0,0 @@
-// Copyright (c) 2022 Takeshi Ishii (mtei@github)
-// SPDX-License-Identifier: GPL-2.0-or-later
-
-// clang-format off
-
-#pragma once
diff --git a/users/mtei/encoder_update_user.c b/users/mtei/encoder_update_user.c
deleted file mode 100644
index 67585e0345..0000000000
--- a/users/mtei/encoder_update_user.c
+++ /dev/null
@@ -1,33 +0,0 @@
-// Copyright (c) 2022 Takeshi Ishii (mtei@github)
-// SPDX-License-Identifier: GPL-2.0-or-later
-
-#include QMK_KEYBOARD_H
-
-/* weak reference */ __attribute__((weak))
-int get_encoder_over_count(void);
-
-bool encoder_update_user(uint8_t index, bool clockwise) {
-#ifndef ENCODER_DETECT_OVER_SPEED
- switch (index) {
- /* Left side encoder */
- case 0: tap_code(clockwise ? KC_LEFT : KC_RGHT); break;
- /* Right side encoder */
- case 1: tap_code(clockwise ? KC_DOWN : KC_UP); break;
- }
-#else
- // Is there a get_encoder_over_count() in quantum/encoder.c
- if (get_encoder_over_count != NULL) {
- int enc_over = get_encoder_over_count();
- for (; enc_over > 0; enc_over--) {
- tap_code(KC_MINUS);
- }
- }
- switch (index) {
- case 0: tap_code(clockwise ? KC_A : KC_B); break;
- case 1: tap_code(clockwise ? KC_C : KC_D); break;
- case 2: tap_code(clockwise ? KC_E : KC_F); break;
- case 3: tap_code(clockwise ? KC_G : KC_H); break;
- }
-#endif
- return true;
-}
diff --git a/users/mtei/key_blocks.h b/users/mtei/key_blocks.h
deleted file mode 100644
index 9a62e5ccff..0000000000
--- a/users/mtei/key_blocks.h
+++ /dev/null
@@ -1,40 +0,0 @@
-// Copyright (c) 2022 Takeshi Ishii (mtei@github)
-// SPDX-License-Identifier: GPL-2.0-or-later
-#pragma once
-
-#define _1_____2_____3_____4_____5 KC_1, KC_2, KC_3, KC_4, KC_5
-#define _6_____7_____8_____9_____0 KC_6, KC_7, KC_8, KC_9, KC_0
-#define F1____F2____F3____F4____F5 KC_F1, KC_F2, KC_F3, KC_F4, KC_F5
-#define F6____F7____F8____F9____F10 KC_F6, KC_F7, KC_F8, KC_F9, KC_F10
-
-/* Qwerty */
-#define Q_____W_____E_____R_____T KC_Q, KC_W, KC_E, KC_R, KC_T
-#define Y_____U_____I_____O_____P KC_Y, KC_U, KC_I, KC_O, KC_P
-#define A_____S_____D_____F_____G KC_A, KC_S, KC_D, KC_F, KC_G
-#define H_____J_____K_____L____SCLN KC_H, KC_J, KC_K, KC_L, KC_SCLN
-#define Z_____X_____C_____V_____B KC_Z, KC_X, KC_C, KC_V, KC_B
-#define N_____M____COMM__DOT___SLSH KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH
-
-/* Colemak */
-#define Q_____W_____F_____P_____G KC_Q, KC_W, KC_F, KC_P, KC_G
-#define J_____L_____U_____Y____SCLN KC_J, KC_L, KC_U, KC_Y, KC_SCLN
-#define A_____R_____S_____T_____D KC_A, KC_R, KC_S, KC_T, KC_D
-#define H_____N_____E_____I_____O KC_H, KC_N, KC_E, KC_I, KC_O
-// Z_____X_____C_____V_____B KC_Z, KC_X, KC_C, KC_V, KC_B
-#define K_____M____COMM__DOT___SLSH KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH
-
-/* Dvorak */
-#define QUOT_COMM___DOT____P_____Y KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y
-#define F_____G_____C_____R_____L KC_F, KC_G, KC_C, KC_R, KC_L
-#define A_____O_____E_____U_____I KC_A, KC_O, KC_E, KC_U, KC_I
-#define D_____H_____T_____N_____S KC_D, KC_H, KC_T, KC_N, KC_S
-#define SCLN___Q_____J_____K_____X KC_SCLN, KC_Q, KC_J, KC_K, KC_X
-#define B_____M_____W_____V_____Z KC_B, KC_M, KC_W, KC_V, KC_Z
-
-/* Eucalyn rev3 (http://eucalyn.hatenadiary.jp/entry/about-eucalyn-layout) */
-#define Q_____W___COMM___DOT__SCLN KC_Q, KC_W, KC_COMM, KC_DOT, KC_SCLN
-#define M_____R_____D_____Y_____P KC_M, KC_R, KC_D, KC_Y, KC_P
-#define A_____O_____E_____I_____U KC_A, KC_O, KC_E, KC_I, KC_U
-#define G_____T_____K_____S_____N KC_G, KC_T, KC_K, KC_S, KC_N
-#define Z_____X_____C_____V_____F KC_Z, KC_X, KC_C, KC_V, KC_F
-#define B_____H_____J_____L____SLSH KC_B, KC_H, KC_J, KC_L, KC_SLSH
diff --git a/users/mtei/layer_number_util.h b/users/mtei/layer_number_util.h
deleted file mode 100644
index 2147b9db05..0000000000
--- a/users/mtei/layer_number_util.h
+++ /dev/null
@@ -1,17 +0,0 @@
-// Copyright (c) 2022 Takeshi Ishii (mtei@github)
-// SPDX-License-Identifier: GPL-2.0-or-later
-#pragma once
-
-#include "cpp_map.h"
-
-//build -> _<sym>,
-#define _BUILD_LAYER_ENUM_NUMBER(sym, str) _ ## sym,
-#define BUILD_LAYER_ENUM_NUMBER(ent) _BUILD_LAYER_ENUM_NUMBER ent
-
-//build -> static const char <sym>_name[] PROGMEM = str;
-#define _BUILD_LAYER_NAME_STR(sym, str) static const char sym ## _name[] PROGMEM = str;
-#define BUILD_LAYER_NAME_STR(ent) _BUILD_LAYER_NAME_STR ent
-
-//build -> [_<sym>] = <sym>_name,
-#define _BUILD_LAYER_NAME_TABLE(sym, str) [_##sym] = sym ## _name,
-#define BUILD_LAYER_NAME_TABLE(ent) _BUILD_LAYER_NAME_TABLE ent
diff --git a/users/mtei/matrix_output_unselect_delay_ondemand.c b/users/mtei/matrix_output_unselect_delay_ondemand.c
deleted file mode 100644
index 362d8a1303..0000000000
--- a/users/mtei/matrix_output_unselect_delay_ondemand.c
+++ /dev/null
@@ -1,18 +0,0 @@
-// Copyright (c) 2021 Takeshi Ishii (mtei@github)
-// SPDX-License-Identifier: GPL-2.0-or-later
-
-#include QMK_KEYBOARD_H
-
-void matrix_output_unselect_delay(uint8_t line, bool key_pressed) {
- /* If none of the keys are pressed,
- * there is no need to wait for time for the next line. */
- if (key_pressed) {
-# ifdef MATRIX_IO_DELAY
-# if MATRIX_IO_DELAY > 0
- wait_us(MATRIX_IO_DELAY);
-# endif
-# else
- wait_us(30);
-# endif
- }
-}
diff --git a/users/mtei/oled_display.c b/users/mtei/oled_display.c
deleted file mode 100644
index 878dd29e6f..0000000000
--- a/users/mtei/oled_display.c
+++ /dev/null
@@ -1,147 +0,0 @@
-/* Copyright 2020 mtei
- *
- * 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 <stdio.h>
-#include <string.h>
-#include QMK_KEYBOARD_H
-
-#include "pseudo_sprintf.h"
-
-extern int current_default_layer;
-
-//OLED update loop
-#if defined(OLED_ENABLE)
-
-oled_rotation_t oled_init_user(oled_rotation_t rotation) {
- if (is_keyboard_master()) {
- return OLED_ROTATION_0;
- } else {
- return OLED_ROTATION_180;
- }
-}
-
-#ifndef PSEUDO_SPRINTF_DEFINED
-#include "pseudo_sprintf.c"
-#endif
-
-static void render_logo(void) {
- static const char helix_logo[] PROGMEM = {
- 0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8a,0x8b,0x8c,0x8d,0x8e,0x8f,0x90,0x91,0x92,0x93,0x94,
- 0xa0,0xa1,0xa2,0xa3,0xa4,0xa5,0xa6,0xa7,0xa8,0xa9,0xaa,0xab,0xac,0xad,0xae,0xaf,0xb0,0xb1,0xb2,0xb3,0xb4,
- 0xc0,0xc1,0xc2,0xc3,0xc4,0xc5,0xc6,0xc7,0xc8,0xc9,0xca,0xcb,0xcc,0xcd,0xce,0xcf,0xd0,0xd1,0xd2,0xd3,0xd4,
- 0};
- oled_write_P(helix_logo, false);
-# if defined(RGBLIGHT_ENABLE) || defined(DEBUG_MATRIX_SCAN_RATE)
- char buf[30];
- char *bufp;
-# endif
-# ifdef RGBLIGHT_ENABLE
- if (RGBLIGHT_MODES > 1 && rgblight_is_enabled()) {
- bufp = sprint2d(buf, " LED ", rgblight_get_mode());
-# ifdef DEBUG_MATRIX_SCAN_RATE
- bufp = sprintd(bufp, " scan:", get_matrix_scan_rate());
-# else
- bufp = sprintd(bufp, ": ", rgblight_get_hue()/RGBLIGHT_HUE_STEP);
- bufp = sprintd(bufp, ",", rgblight_get_sat()/RGBLIGHT_SAT_STEP);
- bufp = sprintd(bufp, ",", rgblight_get_val()/RGBLIGHT_VAL_STEP);
- bufp = sprints(bufp, " ");
-# endif
- oled_write(buf, false);
- } else {
-# ifdef DEBUG_MATRIX_SCAN_RATE
- bufp = sprintd(buf, " scan:", get_matrix_scan_rate());
- oled_write(buf, false);
-# endif // DEBUG_MATRIX_SCAN_RATE
- oled_write_P( PSTR("\n"), false);
- }
-# else // ifndef RGBLIGHT_ENABLE
-# ifdef DEBUG_MATRIX_SCAN_RATE
- bufp = sprintd(buf, " scan:", get_matrix_scan_rate());
- bufp = sprints(bufp, " ");
- oled_write(buf, false);
-# endif
-# endif // RGBLIGHT_ENABLE
-}
-
-/* weak reference */ __attribute__((weak)) extern const char *layer_names[];
-/* weak reference */ __attribute__((weak)) extern const size_t num_of_layer_names;
-
-void render_status(void) {
- // Render to mode icon
- static const char os_logo[][2][3] PROGMEM ={{{0x95,0x96,0},{0xb5,0xb6,0}},{{0x97,0x98,0},{0xb7,0xb8,0}}};
- if(keymap_config.swap_lalt_lgui==false){
- oled_write_P(os_logo[0][0], false);
- oled_write_P(PSTR("\n"), false);
- oled_write_P(os_logo[0][1], false);
- } else {
- oled_write_P(os_logo[1][0], false);
- oled_write_P(PSTR("\n"), false);
- oled_write_P(os_logo[1][1], false);
- }
-
- // Define layers here, Have not worked out how to have text displayed for each layer. Copy down the number you see and add a case for it below
- int name_num, max_name_num;
- uint32_t lstate;
- char buf[16];
- max_name_num = 0;
- if (layer_names != NULL) {
- max_name_num = num_of_layer_names;
- oled_write_P(layer_names[current_default_layer], false);
- } else {
- sprintd(buf, " layer:", current_default_layer);
- oled_write(buf, false);
- }
-# ifdef DEBUG_MATRIX_SCAN_RATE
- sprintd(buf, " scan:", get_matrix_scan_rate());
- oled_write(buf, false);
-# endif
- oled_write_P(PSTR("\n"), false);
- for (lstate = layer_state, name_num = 0; lstate; lstate >>=1, name_num++) {
- if ((lstate & 1) != 0) {
- if (name_num < max_name_num && layer_names[name_num]) {
- oled_write_P(layer_names[name_num], false);
- } else {
- sprintd(buf, ":", name_num);
- oled_write(buf, false);
- }
- }
- }
- oled_write_P(PSTR("\n"), false);
-
- // Host Keyboard LED Status
- led_t led_state = host_keyboard_led_state();
- oled_write_P(led_state.num_lock ? PSTR("NUMLOCK ") : PSTR(" "), false);
- oled_write_P(led_state.caps_lock ? PSTR("CAPS ") : PSTR(" "), false);
- oled_write_P(led_state.scroll_lock ? PSTR("SCLK ") : PSTR(" "), false);
-}
-
-bool oled_task_user(void) {
-
-# if DEBUG_TO_SCREEN
- if (debug_enable) {
- return;
- }
-# endif
-
- if(is_keyboard_master()){
- render_status();
- }else{
- render_logo();
- }
- return false;
-}
-
-#endif
diff --git a/users/mtei/pseudo_sprintf.c b/users/mtei/pseudo_sprintf.c
deleted file mode 100644
index 446e3efc65..0000000000
--- a/users/mtei/pseudo_sprintf.c
+++ /dev/null
@@ -1,53 +0,0 @@
-// Copyright 2022 Takeshi Ishii (@mtei)
-// SPDX-License-Identifier: GPL-2.0-or-later
-
-#include "pseudo_sprintf.h"
-
-static char *sprint_decimal(char *buf, int data) {
- if (data > 9) {
- buf = sprint_decimal(buf, data/10);
- }
- *buf++ = "0123456789"[data%10];
- *buf = '\0';
- return buf;
-}
-
-static char *sprint_hex(char *buf, uint32_t data) {
- if (data > 0xf) {
- buf = sprint_hex(buf, data/0x10);
- }
- *buf++ = "0123456789abcdef"[data & 0xf];
- *buf = '\0';
- return buf;
-}
-
-char *sprints(char *buf, char *src) {
- while (*src) {
- *buf++ = *src++;
- }
- *buf = '\0';
- return buf;
-}
-
-char *sprintx(char *buf, char *leadstr, uint32_t data) {
- buf = sprints(buf, leadstr);
- buf = sprint_hex(buf, data);
- return buf;
-}
-
-char *sprintd(char *buf, char *leadstr, int data) {
- buf = sprints(buf, leadstr);
- buf = sprint_decimal(buf, data);
- return buf;
-}
-
-char *sprint2d(char *buf, char *leadstr, int data) {
- buf = sprints(buf, leadstr);
- if (data > 99) {
- return sprint_decimal(buf, data);
- }
- if (data < 10) {
- *buf++ = ' ';
- }
- return sprint_decimal(buf, data);
-}
diff --git a/users/mtei/pseudo_sprintf.h b/users/mtei/pseudo_sprintf.h
deleted file mode 100644
index 1b91ee5ea8..0000000000
--- a/users/mtei/pseudo_sprintf.h
+++ /dev/null
@@ -1,8 +0,0 @@
-// Copyright 2022 Takeshi Ishii (@mtei)
-// SPDX-License-Identifier: GPL-2.0-or-later
-
-#pragma once
-
-char *sprints(char *buf, char *src);
-char *sprintd(char *buf, char *leadstr, int data);
-char *sprint2d(char *buf, char *leadstr, int data);
diff --git a/users/mtei/rules.mk b/users/mtei/rules.mk
deleted file mode 100644
index 780393ba12..0000000000
--- a/users/mtei/rules.mk
+++ /dev/null
@@ -1,9 +0,0 @@
-VPATH += $(USER_PATH)/$(PLATFORM_PATH)
-VPATH += $(USER_PATH)/$(PLATFORM_PATH)/$(PLATFORM_KEY)
-
-CUSTOM_MATRIX_DELAY = on-demand
-
-ifneq ($(strip $(USROPT)),)
- include $(USER_PATH)/user_options.mk
-endif
-include $(USER_PATH)/user_featues.mk
diff --git a/users/mtei/user_featues.mk b/users/mtei/user_featues.mk
deleted file mode 100644
index 243e80dde9..0000000000
--- a/users/mtei/user_featues.mk
+++ /dev/null
@@ -1,60 +0,0 @@
-# Copyright (c) 2022 Takeshi Ishii (mtei@github)
-# SPDX-License-Identifier: GPL-2.0-or-later
-
-ifeq ($(strip $(LED_ANIMATIONS)), yes)
- OPT_DEFS += -DLED_ANIMATIONS
- OPT_DEFS += -DLED_ANIMATIONS_LEVEL=2
-endif
-
-ifeq ($(strip $(LED_ANIMATIONS)), mini)
- OPT_DEFS += -DLED_ANIMATIONS
- OPT_DEFS += -DLED_ANIMATIONS_LEVEL=1
-endif
-
-ifeq ($(strip $(DEBUG_CONFIG)), yes)
- OPT_DEFS += -DDEBUG_CONFIG
-endif
-
-ifeq ($(strip $(CUSTOM_MATRIX_DELAY)),on-demand)
- SRC += matrix_output_unselect_delay_ondemand.c
-endif
-
-ifneq ($(strip $(MDELAY)),)
- OPT_DEFS += -DMATRIX_IO_DELAY=$(strip $(MDELAY))
-endif
-
-ifeq ($(strip $(ENABLE_COLEMAK)),yes)
- OPT_DEFS += -DENABLE_COLEMAK
-endif
-
-ifeq ($(strip $(ENABLE_DVORAK)),yes)
- OPT_DEFS += -DENABLE_DVORAK
-endif
-
-ifeq ($(strip $(ENABLE_EUCALYN)),yes)
- OPT_DEFS += -DENABLE_EUCALYN
-endif
-
-ifeq ($(strip $(ENCODER_ENABLE)),yes)
- SRC += encoder_update_user.c
-endif
-
-ifeq ($(strip $(DEBUG_ENCODER)),yes)
- OPT_DEFS += -DENCODER_DETECT_OVER_SPEED
-endif
-
-ifneq ($(strip $(SYNC_TIMER_ENABLE)),yes)
- OPT_DEFS += -DDISABLE_SYNC_TIMER
-endif
-
-ifneq ($(strip $(USROPT)),)
- $(info -)
- $(info - CONSOLE_ENABLE = $(CONSOLE_ENABLE))
- $(info - OLED_ENABLE = $(OLED_ENABLE))
- $(info - RGBLIGHT_ENABLE = $(RGBLIGHT_ENABLE))
- $(info - ENCODER_ENABLE = $(ENCODER_ENABLE))
- $(info - MDELAY = $(MDELAY))
- $(info - CUSTOM_MATRIX_DELAY = $(CUSTOM_MATRIX_DELAY))
- $(info - DEBUG_MATRIX_SCAN_RATE_ENABLE = $(DEBUG_MATRIX_SCAN_RATE_ENABLE))
- $(info - OPT_DEFS = $(OPT_DEFS))
-endif
diff --git a/users/mtei/user_options.mk b/users/mtei/user_options.mk
deleted file mode 100644
index a3cf2196f9..0000000000
--- a/users/mtei/user_options.mk
+++ /dev/null
@@ -1,127 +0,0 @@
-# Copyright (c) 2022 Takeshi Ishii (mtei@github)
-# SPDX-License-Identifier: GPL-2.0-or-later
-
-#
-# make USROPT=<option>,<option>,... <KEYBOARD>:<KEYMAP>
-# options:
-# dispoff: OLED, RGBLIGHT disable
-# oled: OLED enable
-# no-oled: OLED disable
-# rgblight: RGBLIGHT enable
-# no-rgblight: RGBLIGHT disable
-# no_ani: RGBLIGHT ANIMATIONS disable
-# mini-ani: RGBLIGHT ANIMATIONS mini set
-# ani: RGBLIGHT ANIMATIONS enable
-# scan: DEBUG_MATRIX_SCAN_RATE enable
-# scan-api: DEBUG_MATRIX_SCAN_RATE api enable
-# mdelay=<num> MATRIX_IO_DELAY set <num>
-# mdelay_type=<type> use custom matrix_output_unselect_delay()
-# type=no,ondemand
-# enc: ENCODER enable
-# no-enc: ENCODER disable
-#
-ifneq ($(strip $(USROPT)),)
- define USER_OPTION_PARSE
- # parse 'debug', 'no-debug', 'dispoff', 'consle', 'scan', 'no-scan', 'scan-api',
- # 'mdelay=?', 'mdelay0', 'colemak', 'dvorak', 'eucalyn', 'lto', 'no-lto'
- $(if $(SHOW_PARSE),$(info parse .$1.)) #for debug 'make SHOW_PARSE=y ...'
- ifeq ($(strip $1),debug)
- DEBUG_CONFIG = yes
- endif
- ifneq ($(filter nodebug no-debug no_debug,$(strip $1)),)
- DEBUG_CONFIG = no
- endif
- ifeq ($(strip $1),dispoff)
- OLED_ENABLE = no
- RGBLIGHT_ENABLE = no
- LED_BACK_ENABLE = no
- LED_UNDERGLOW_ENABLE = no
- endif
- ifneq ($(filter rgblight,$(strip $1)),)
- RGBLIGHT_ENABLE = yes
- LED_BACK_ENABLE = yes
- endif
- ifneq ($(filter norgblight no-rgblight,$(strip $1)),)
- RGBLIGHT_ENABLE = no
- LED_BACK_ENABLE = no
- LED_UNDERGLOW_ENABLE = no
- endif
- ifneq ($(filter na no_ani no-ani,$(strip $1)),)
- LED_ANIMATIONS = no
- endif
- ifneq ($(filter mini-ani mini_ani,$(strip $1)),)
- LED_ANIMATIONS = mini
- endif
- ifneq ($(filter ani animation,$(strip $1)),)
- LED_ANIMATIONS = yes
- endif
- ifneq ($(filter nooled no-oled,$(strip $1)),)
- OLED_ENABLE = no
- endif
- ifeq ($(strip $1),oled)
- OLED_ENABLE = yes
- endif
- ifeq ($(strip $1),console)
- CONSOLE_ENABLE = yes
- endif
- ifeq ($(strip $1),scan)
- # use DEBUG_MATRIX_SCAN_RATE
- # see docs/newbs_testing_debugging.md
- DEBUG_MATRIX_SCAN_RATE_ENABLE = yes
- endif
- ifeq ($(strip $1),no-scan)
- DEBUG_MATRIX_SCAN_RATE_ENABLE = no
- endif
- ifeq ($(strip $1),scan-api)
- # use DEBUG_MATRIX_SCAN_RATE
- # see docs/newbs_testing_debugging.md
- DEBUG_MATRIX_SCAN_RATE_ENABLE = api
- endif
- ifneq ($(filter stimer sync-timer,$(strip $1)),)
- SYNC_TIMER_ENABLE = yes
- endif
- ifneq ($(filter nostimer no-sync-timer,$(strip $1)),)
- SYNC_TIMER_ENABLE = no
- endif
- ifeq ($(filter mdelay_type=%,$1),mdelay_type=no)
- CUSTOM_MATRIX_DELAY = no
- endif
- ifeq ($(filter mdelay_type=%,$1),mdelay_type=demand)
- CUSTOM_MATRIX_DELAY = on-demand
- endif
- ifneq ($(filter mdelay=%,$1),)
- MDELAY = $(patsubst mdelay=%,%,$1)
- endif
- ifeq ($(strip $1),mdelay0)
- MDELAY = 0
- endif
- ifeq ($(strip $1),colemak)
- ENABLE_COLEMAK = yes
- endif
- ifeq ($(strip $1),dvorak)
- ENABLE_DVORAK = yes
- endif
- ifeq ($(strip $1),eucalyn)
- ENABLE_EUCALYN = yes
- endif
- ifeq ($(strip $1),lto)
- LTO_ENABLE = yes
- endif
- ifneq ($(filter nolto no-lto no_lto,$(strip $1)),)
- LTO_ENABLE = no
- endif
- ifneq ($(filter enc,$(strip $1)),)
- ENCODER_ENABLE = yes
- endif
- ifneq ($(filter noenc no-enc no_enc,$(strip $1)),)
- ENCODER_ENABLE = no
- endif
- ifneq ($(filter debugenc debug-enc debug_enc,$(strip $1)),)
- DEBUG_ENCODER = yes
- endif
- endef # end of USER_OPTION_PARSE
-
- COMMA=,
- $(eval $(foreach A_OPTION_NAME,$(subst $(COMMA), ,$(USROPT)), \
- $(call USER_OPTION_PARSE,$(A_OPTION_NAME))))
-endif
diff --git a/users/muppetjones/.clang-format b/users/muppetjones/.clang-format
deleted file mode 100644
index df3dbd17b4..0000000000
--- a/users/muppetjones/.clang-format
+++ /dev/null
@@ -1,26 +0,0 @@
----
-BasedOnStyle: Google
-AlignAfterOpenBracket: Align
-AlignConsecutiveAssignments: 'true'
-AlignConsecutiveDeclarations: 'true'
-AlignOperands: 'true'
-AllowAllParametersOfDeclarationOnNextLine: 'false'
-AlwaysBreakAfterDefinitionReturnType: None
-AlwaysBreakAfterReturnType: None
-AlwaysBreakBeforeMultilineStrings: 'false'
-BinPackArguments: 'true'
-BinPackParameters: 'true'
-ColumnLimit: '160'
-IndentCaseLabels: 'true'
-IndentPPDirectives: AfterHash
-IndentWidth: '4'
-MaxEmptyLinesToKeep: '1'
-PointerAlignment: Right
-SortIncludes: 'false'
-SpaceBeforeAssignmentOperators: 'true'
-SpaceBeforeParens: ControlStatements
-SpaceInEmptyParentheses: 'false'
-TabWidth: '4'
-UseTab: Never
-
-...
diff --git a/users/muppetjones/config.h b/users/muppetjones/config.h
deleted file mode 100644
index 742a97950d..0000000000
--- a/users/muppetjones/config.h
+++ /dev/null
@@ -1,38 +0,0 @@
-/* Copyright 2020 Stephen J. Bush @muppetjones
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-#pragma once
-
-#ifdef RGBLIGHT_ENABLE
-# define RGBLIGHT_HUE_STEP 8
-# define RGBLIGHT_SAT_STEP 16
-# define RGBLIGHT_VAL_STEP 16
-# define RGBLIGHT_LIMIT_VAL 150
-# define RGBLIGHT_SLEEP
-// # define RGBLIGHT_LAYERS
-#endif
-
-#ifdef TAP_DANCE_ENABLE
-// Change "hold" time (default is 200 ms)
-// -- used for tap dance and other tap mods
-# define TAPPING_TERM 175
-
-// Enable rapid switch from tap to hold, disables double tap hold auto-repeat.
-# define QUICK_TAP_TERM 0
-
-#endif
-
-#define COMBO_TERM 40
diff --git a/users/muppetjones/features/casemodes.c b/users/muppetjones/features/casemodes.c
deleted file mode 100644
index da7c5e8fa9..0000000000
--- a/users/muppetjones/features/casemodes.c
+++ /dev/null
@@ -1,247 +0,0 @@
-/* Copyright 2021 Andrew Rae ajrae.nv@gmail.com @andrewjrae
- *
- * 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 "casemodes.h"
-
-/* The caps word concept started with me @iaap on splitkb.com discord.
- * However it has been implemented and extended by many splitkb.com users:
- * - @theol0403 made many improvements to initial implementation
- * - @precondition used caps lock rather than shifting
- * - @dnaq his own implementation which also used caps lock
- * - @sevanteri added underscores on spaces
- * - @metheon extended on @sevanteri's work and added specific modes for
- * snake_case and SCREAMING_SNAKE_CASE
- * - @baffalop came up with the idea for xcase, which he implements in his own
- * repo, however this is implemented by @iaap with support also for one-shot-shift.
- * - @sevanteri
- * - fixed xcase waiting mode to allow more modified keys and keys from other layers.
- * - Added @baffalop's separator defaulting on first keypress, with a
- * configurable default separator and overrideable function to determine
- * if the default should be used.
- */
-
-#ifndef DEFAULT_XCASE_SEPARATOR
-# define DEFAULT_XCASE_SEPARATOR KC_UNDS
-#endif
-
-#define IS_OSM(keycode) (keycode >= QK_ONE_SHOT_MOD && keycode <= QK_ONE_SHOT_MOD_MAX)
-
-// bool to keep track of the caps word state
-static bool caps_word_on = false;
-
-// enum to keep track of the xcase state
-static enum xcase_state xcase_state = XCASE_OFF;
-// the keycode of the xcase delimiter
-static uint16_t xcase_delimiter;
-// the number of keys to the last delimiter
-static int8_t distance_to_last_delim = -1;
-
-// Check whether caps word is on
-bool caps_word_enabled(void) { return caps_word_on; }
-
-// Enable caps word
-void enable_caps_word(void) {
- caps_word_on = true;
-#ifndef CAPSWORD_USE_SHIFT
- if (!host_keyboard_led_state().caps_lock) {
- tap_code(KC_CAPS);
- }
-#endif
-}
-
-// Disable caps word
-void disable_caps_word(void) {
- caps_word_on = false;
-#ifndef CAPSWORD_USE_SHIFT
- if (host_keyboard_led_state().caps_lock) {
- tap_code(KC_CAPS);
- }
-#else
- unregister_mods(MOD_LSFT);
-#endif
-}
-
-// Toggle caps word
-void toggle_caps_word(void) {
- if (caps_word_on) {
- disable_caps_word();
- } else {
- enable_caps_word();
- }
-}
-
-// Get xcase state
-enum xcase_state get_xcase_state(void) { return xcase_state; }
-
-// Enable xcase and pickup the next keystroke as the delimiter
-void enable_xcase(void) { xcase_state = XCASE_WAIT; }
-
-// Enable xcase with the specified delimiter
-void enable_xcase_with(uint16_t delimiter) {
- xcase_state = XCASE_ON;
- xcase_delimiter = delimiter;
- distance_to_last_delim = -1;
-}
-
-// Disable xcase
-void disable_xcase(void) { xcase_state = XCASE_OFF; }
-
-// Place the current xcase delimiter
-static void place_delimiter(void) {
- if (IS_OSM(xcase_delimiter)) {
- // apparently set_oneshot_mods() is dumb and doesn't deal with handedness for you
- uint8_t mods = xcase_delimiter & 0x10 ? (xcase_delimiter & 0x0F) << 4 : xcase_delimiter & 0xFF;
- set_oneshot_mods(mods);
- } else {
- tap_code16(xcase_delimiter);
- }
-}
-
-// Removes a delimiter, used for double tap space exit
-static void remove_delimiter(void) {
- if (IS_OSM(xcase_delimiter)) {
- clear_oneshot_mods();
- } else {
- tap_code(KC_BSPC);
- }
-}
-
-// overrideable function to determine whether the case mode should stop
-__attribute__((weak)) bool terminate_case_modes(uint16_t keycode, const keyrecord_t *record) {
- switch (keycode) {
- // Keycodes to ignore (don't disable caps word)
- case KC_A ... KC_Z:
- case KC_1 ... KC_0:
- case KC_MINS:
- case KC_BSPC:
- // If mod chording disable the mods
- if (record->event.pressed && (get_mods() != 0)) {
- return true;
- }
- break;
- case KC_UNDS:
- // Allow to be pressed with or without a modifier (prob w/ shift)
- break;
- default:
- if (record->event.pressed) {
- return true;
- }
- break;
- }
- return false;
-}
-
-/* overrideable function to determine whether to use the default separator on
- * first keypress when waiting for the separator. */
-__attribute__((weak)) bool use_default_xcase_separator(uint16_t keycode, const keyrecord_t *record) {
- // for example:
- /* switch (keycode) { */
- /* case KC_A ... KC_Z: */
- /* case KC_1 ... KC_0: */
- /* return true; */
- /* } */
- return false;
-}
-
-bool process_case_modes(uint16_t keycode, const keyrecord_t *record) {
- if (caps_word_on || xcase_state) {
- if ((QK_MOD_TAP <= keycode && keycode <= QK_MOD_TAP_MAX) || (QK_LAYER_TAP <= keycode && keycode <= QK_LAYER_TAP_MAX)) {
- // Earlier return if this has not been considered tapped yet
- if (record->tap.count == 0) return true;
- keycode = keycode & 0xFF;
- }
-
- if (keycode >= QK_LAYER_TAP && keycode <= QK_ONE_SHOT_LAYER_MAX) {
- // let special keys and normal modifiers go through
- return true;
- }
-
- if (xcase_state == XCASE_WAIT) {
- // grab the next input to be the delimiter
- if (use_default_xcase_separator(keycode, record)) {
- enable_xcase_with(DEFAULT_XCASE_SEPARATOR);
- } else if (record->event.pressed) {
- // factor in mods
- if (get_mods() & MOD_MASK_SHIFT) {
- keycode = LSFT(keycode);
- } else if (get_mods() & MOD_BIT(KC_RALT)) {
- keycode = RALT(keycode);
- }
- enable_xcase_with(keycode);
- return false;
- } else {
- if (IS_OSM(keycode)) {
- // this catches the OSM release if no other key was pressed
- set_oneshot_mods(0);
- enable_xcase_with(keycode);
- return false;
- }
- // let other special keys go through
- return true;
- }
- }
-
- if (record->event.pressed) {
- // handle xcase mode
- if (xcase_state == XCASE_ON) {
- // place the delimiter if space is tapped
- if (keycode == KC_SPACE) {
- if (distance_to_last_delim != 0) {
- place_delimiter();
- distance_to_last_delim = 0;
- return false;
- }
- // remove the delimiter and disable modes
- else {
- remove_delimiter();
- disable_xcase();
- disable_caps_word();
- return true;
- }
- }
- // decrement distance to delimiter on back space
- else if (keycode == KC_BSPC) {
- --distance_to_last_delim;
- }
- // don't increment distance to last delim if negative
- else if (distance_to_last_delim >= 0) {
- // puts back a one shot delimiter if you we're back to the delimiter pos
- if (distance_to_last_delim == 0 && (IS_OSM(xcase_delimiter))) {
- place_delimiter();
- }
- ++distance_to_last_delim;
- }
-
- } // end XCASE_ON
-
- // check if the case modes have been terminated
- if (terminate_case_modes(keycode, record)) {
- disable_caps_word();
- disable_xcase();
- }
-#ifdef CAPSWORD_USE_SHIFT
- else if (keycode >= KC_A && keycode <= KC_Z) {
- tap_code16(LSFT(keycode));
- return false;
- }
-#endif
-
- } // end if event.pressed
-
- return true;
- }
- return true;
-}
diff --git a/users/muppetjones/features/casemodes.h b/users/muppetjones/features/casemodes.h
deleted file mode 100644
index 4a8c00b3d2..0000000000
--- a/users/muppetjones/features/casemodes.h
+++ /dev/null
@@ -1,47 +0,0 @@
-/* Copyright 2021 Andrew Rae ajrae.nv@gmail.com @andrewjrae
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-#pragma once
-
-#include QMK_KEYBOARD_H
-
-// Check whether caps word is on
-bool caps_word_enabled(void);
-// Enable caps word
-void enable_caps_word(void);
-// Disable caps word
-void disable_caps_word(void);
-// Toggle caps word
-void toggle_caps_word(void);
-
-// enum for the xcase states
-enum xcase_state {
- XCASE_OFF = 0, // xcase is off
- XCASE_ON, // xcase is actively on
- XCASE_WAIT, // xcase is waiting for the delimiter input
-};
-
-// Get xcase state
-enum xcase_state get_xcase_state(void);
-// Enable xcase and pickup the next keystroke as the delimiter
-void enable_xcase(void);
-// Enable xcase with the specified delimiter
-void enable_xcase_with(uint16_t delimiter);
-// Disable xcase
-void disable_xcase(void);
-
-// Function to be put in process user
-bool process_case_modes(uint16_t keycode, const keyrecord_t *record);
diff --git a/users/muppetjones/features/combos.c b/users/muppetjones/features/combos.c
deleted file mode 100644
index a357b3ad4e..0000000000
--- a/users/muppetjones/features/combos.c
+++ /dev/null
@@ -1,35 +0,0 @@
-/* Copyright 2020 Stephen J. Bush
- *
- * 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/>.
- */
-
-#ifdef COMBO_ENABLE
-# include QMK_KEYBOARD_H
-
-enum combos {
- H_COMM_TAB,
- L_U_SCLN,
- J_M_CAPS,
-};
-
-const uint16_t PROGMEM h_comm_tab[] = {KC_H, KC_COMM, COMBO_END};
-const uint16_t PROGMEM l_u_scln[] = {KC_L, KC_U, COMBO_END};
-const uint16_t PROGMEM j_m_caps[] = {KC_J, KC_M, COMBO_END};
-
-combo_t key_combos[] = {
- [H_COMM_TAB] = COMBO(h_comm_tab, KC_TAB),
- [L_U_SCLN] = COMBO(l_u_scln, KC_SCLN),
- [J_M_CAPS] = COMBO(j_m_caps, KC_CAPS),
-};
-#endif
diff --git a/users/muppetjones/features/combos.h b/users/muppetjones/features/combos.h
deleted file mode 100644
index af092904e4..0000000000
--- a/users/muppetjones/features/combos.h
+++ /dev/null
@@ -1,17 +0,0 @@
-/* Copyright 2020 Stephen J. Bush
- *
- * 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
diff --git a/users/muppetjones/features/dancelayers.c b/users/muppetjones/features/dancelayers.c
deleted file mode 100644
index 3744950a4f..0000000000
--- a/users/muppetjones/features/dancelayers.c
+++ /dev/null
@@ -1,98 +0,0 @@
-/* Copyright 2020 Stephen J. Bush
- *
- * 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/>.
- */
-
-#ifdef TAP_DANCE_ENABLE
-
-# include QMK_KEYBOARD_H
-# include "muppetjones.h"
-# include "dancelayers.h"
-
-// Initialize tap structure associated with example tap dance key
-static td_tap_t lyr_tap_state = {.is_press_action = true, .state = TD_NONE};
-
-/* @brief Determine the current tap dance state
- * @param A tap dance state struct.
- * @return A struct.
- */
-td_state_t cur_dance(tap_dance_state_t *state) {
- switch (state->count) {
- case 1:
- if (!state->pressed)
- return TD_1X_TAP;
- else
- return TD_1X_HOLD;
- case 2:
- return TD_2X_TAP;
- break;
- case 3:
- return TD_3X_TAP;
- break;
- case 4:
- return TD_4X_TAP;
- break;
- default:
- return TD_UNKNOWN;
- }
-}
-
-// Functions that control what our tap dance key does
-__attribute__((weak)) void td_layer_finished(tap_dance_state_t *state, void *user_data) {
- lyr_tap_state.state = cur_dance(state);
- switch (lyr_tap_state.state) {
- case TD_1X_TAP:
- if (layer_state_is(_MOUSE))
- layer_off(_MOUSE);
- else
- layer_on(_MOUSE);
- break;
- case TD_1X_HOLD:
- layer_on(_ADJUST);
- break;
- case TD_2X_TAP:
- // Toggle lower layer
- if (layer_state_is(_LOWER))
- layer_off(_LOWER);
- else
- layer_on(_LOWER);
- break;
- case TD_3X_TAP:
- // Toggle lower layer
- if (layer_state_is(_RAISE))
- layer_off(_RAISE);
- else
- layer_on(_RAISE);
- break;
- case TD_4X_TAP:
- // Toggle lower layer
- if (layer_state_is(_ADJUST))
- layer_off(_ADJUST);
- else
- layer_on(_ADJUST);
- break;
- default:
- break;
- }
-}
-
-__attribute__((weak)) void td_layer_reset(tap_dance_state_t *state, void *user_data) {
- // If the key was held down and now is released then switch off the layer
- if (lyr_tap_state.state == TD_1X_HOLD) {
- layer_off(_ADJUST);
- }
- lyr_tap_state.state = TD_NONE;
-}
-
-#endif
diff --git a/users/muppetjones/features/dancelayers.h b/users/muppetjones/features/dancelayers.h
deleted file mode 100644
index 5f7440f48b..0000000000
--- a/users/muppetjones/features/dancelayers.h
+++ /dev/null
@@ -1,82 +0,0 @@
-/* Copyright 2020 Stephen J. Bush
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-#pragma once
-#ifdef TAP_DANCE_ENABLE
-# include QMK_KEYBOARD_H
-
-/*
- * TAP DANCE
- * https://docs.qmk.fm/#/feature_tap_dance
- */
-
-// Define a type for as many tap dance states as you need
-typedef enum {
- TD_NONE = 0,
- TD_UNKNOWN,
- TD_1X_TAP,
- TD_1X_HOLD,
- TD_2X_TAP,
- TD_3X_TAP,
- TD_4X_TAP,
-} td_state_t;
-
-// Our custom tap dance key; add any other tap dance keys to this enum
-enum {
- TD_LAYERS = 0, // NOTE: Start at 0 as this is also an array index
-};
-# define TD_LAYR TD(TD_LAYERS)
-
-typedef struct {
- bool is_press_action;
- td_state_t state;
-} td_tap_t;
-
-// Declare the functions to be used with your tap dance key(s)
-
-/* @brief Determine the current tap dance state
- * @param A tap dance state struct.
- * @return A struct.
- */
-td_state_t cur_dance(tap_dance_state_t *state);
-
-// Functions associated with individual tap dances
-
-/* @brief Associate tap actions with layers.
- *
- * NOTE: Weak attribute. Can (and should) be defined in keymap.c
- *
- * @param state Pointer to a tap dance state object.
- * @param user_data Pointer to user data.
- * @return None.
- */
-void td_layer_finished(tap_dance_state_t *state, void *user_data);
-
-/* @brief Reset tap dance actions.
- *
- * NOTE: Weak attribute. Can (and should) be defined in keymap.c
- *
- * @param state Pointer to a tap dance state object.
- * @param user_data Pointer to user data.
- * @return None.
- */
-void td_layer_reset(tap_dance_state_t *state, void *user_data);
-
-/* Define tap dance actions.
- */
-__attribute__((weak))
-tap_dance_action_t tap_dance_actions[1] = {[TD_LAYERS] = ACTION_TAP_DANCE_FN_ADVANCED_TIME(NULL, td_layer_finished, td_layer_reset, 275)};
-#endif
diff --git a/users/muppetjones/features/etchamouse.c b/users/muppetjones/features/etchamouse.c
deleted file mode 100644
index e1d4c38e81..0000000000
--- a/users/muppetjones/features/etchamouse.c
+++ /dev/null
@@ -1,101 +0,0 @@
-/* Copyright 2020 Stephen J. Bush
- *
- * 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 "etchamouse.h"
-#include "pointing_device.h"
-
-#if defined(POINTING_DEVICE_ENABLE) && defined(ENCODER_ENABLE)
-
-/** Track movement separately in both directions. This will allow us to
- * smooth out the movement along diagonals
- */
-typedef struct {
- bool clockwise : 1;
- uint8_t count : 7;
- uint16_t timer : 16;
- uint16_t elapsed : 16;
-} key_tracker_t;
-
-static key_tracker_t tracker_x = {false, 0, 0, 0};
-static key_tracker_t tracker_y = {false, 0, 0, 0};
-
-/**
- * @brief Calculate the mouse move units for the given tracker.
- *
- * By using a key tracker rederence, we can minimize the amount of space
- * required on the stack. As we will have the tracker object, we will also
- * take the clockwise direction into account, which completely internalizes
- * the movement unit logic within this single function.
- *
- * @param tracker: Pointer to a key tracker object.
- * @return A integer from -127 to 127
- */
-static int8_t move_unit(key_tracker_t *tracker) {
- if (0 == tracker->count) return 0;
-
- const uint16_t modifier = TAPPING_TERM_MOUSE_ENCODER < tracker->elapsed ? 1 : (TAPPING_TERM_MOUSE_ENCODER - tracker->elapsed) >> 1;
- uint16_t speed = MOUSEKEY_INITIAL_SPEED + MOUSEKEY_MOVE_DELTA * modifier * (tracker->count >> 1);
-
- /* convert speed to USB mouse speed 1 to 127 */
- speed = (uint8_t)(speed / (1000.0f / MOUSEKEY_INTERVAL));
- speed = speed < 1 ? 1 : speed;
-
- return (tracker->clockwise ? 1 : -1) * (speed > MOUSEKEY_MOVE_MAX ? MOUSEKEY_MOVE_MAX : speed);
-}
-
-/**
- * @brief Update key press tracker
- *
- * Update the time elapsed since the last keypress.
- * If the key has not been pressed since the tapping term, then reset the count to zero.
- * If the key was pressed, update the timer and increment the count.
- * Number of keypresses will degrade based on tapping term and zero out based
- * on the persistenc term.
- *
- * @param tracker: The object to update
- * @param pressed: A boolean indicating whether or not the key was pressed
- * @return None.
- */
-static void update_tracker(key_tracker_t *tracker, bool pressed, bool clockwise) {
- tracker->elapsed = timer_elapsed(tracker->timer);
- if (pressed) {
- tracker->timer = timer_read();
- tracker->count += 1;
- tracker->clockwise = clockwise;
- } else if (TAPPING_TERM_PERSISTENCE < tracker->elapsed) {
- tracker->count = 0;
- } else if (TAPPING_TERM_MOUSE_ENCODER < tracker->elapsed) {
- tracker->count >>= 1;
- }
-}
-
-bool encoder_update_mouse(uint8_t index, bool clockwise) {
- report_mouse_t curr_report = pointing_device_get_report();
-
- update_tracker(&tracker_x, 0 == index, clockwise);
- update_tracker(&tracker_y, 1 == index, clockwise);
-
- curr_report.x += move_unit(&tracker_x);
- curr_report.y += move_unit(&tracker_y);
-
- pointing_device_set_report(curr_report);
- pointing_device_send();
-
- return true;
-}
-
-#endif
diff --git a/users/muppetjones/features/etchamouse.h b/users/muppetjones/features/etchamouse.h
deleted file mode 100644
index 86b0d03c6e..0000000000
--- a/users/muppetjones/features/etchamouse.h
+++ /dev/null
@@ -1,59 +0,0 @@
-/* Copyright 2020 Stephen J. Bush
- *
- * 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
-
-#if defined(POINTING_DEVICE_ENABLE) && defined(ENCODER_ENABLE)
-
-/* max value on report descriptor */
-# ifndef MOUSEKEY_MOVE_MAX
-# define MOUSEKEY_MOVE_MAX 127
-# elif MOUSEKEY_MOVE_MAX > 127
-# error MOUSEKEY_MOVE_MAX needs to be smaller than 127
-# endif
-# ifndef MOUSEKEY_MOVE_DELTA
-# define MOUSEKEY_MOVE_DELTA 25
-# endif
-# ifndef MOUSEKEY_INITIAL_SPEED
-# define MOUSEKEY_INITIAL_SPEED 100
-# endif
-# ifndef MOUSEKEY_INTERVAL
-# define MOUSEKEY_INTERVAL 75
-# endif
-
-/** Amount of time (ms) before zeroing out the count.
- * A higher value will result in smoother curves but may lower accuracy
- */
-# ifndef TAPPING_TERM_PERSISTENCE
-# define TAPPING_TERM_PERSISTENCE 150
-# endif
-
-/** Amount of time (ms) to register consecutive key presses
- * A higher value will smooth out mouse movement and increase speed for
- * consecutive presses.
- */
-# ifndef TAPPING_TERM_MOUSE_ENCODER
-# define TAPPING_TERM_MOUSE_ENCODER 50
-# endif
-
-/** @brief Update mouse position based on encoder movement.
- * @param index The encoder index. 0 controls x-axis; 1 controls y-axis.
- * @param clockwise Indicates direction encoder was turned.
- * @returns None.
- */
-bool encoder_update_mouse(uint8_t index, bool clockwise);
-
-#endif
diff --git a/users/muppetjones/features/rgblayers.c b/users/muppetjones/features/rgblayers.c
deleted file mode 100644
index 46858ae671..0000000000
--- a/users/muppetjones/features/rgblayers.c
+++ /dev/null
@@ -1,69 +0,0 @@
-/* Copyright 2020 Stephen J. Bush
- *
- * 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/>.
- */
-
-#ifdef RGBLIGHT_ENABLE
-# include QMK_KEYBOARD_H
-# include "rgblayers.h"
-
-static rgblight_config_t home_rgb;
-
-__attribute__((weak)) void set_layer_hsv(layer_state_t state, HSV* offset) {}
-
-/* Placeholder function
- * If defined in a keymap.c, this will be ignored.
- */
-__attribute__((weak)) void post_process_record_keymap(uint16_t keycode, keyrecord_t* record) { return; }
-
-void post_process_record_user(uint16_t keycode, keyrecord_t* record) {
- // Regular user keycode case statement
- switch (keycode) {
-# ifdef RGBLIGHT_ENABLE
- case RGB_HUD:
- case RGB_HUI:
- case RGB_SAD:
- case RGB_SAI:
- case RGB_VAD:
- case RGB_VAI:
- set_rgb_home();
- break;
-# endif
- default:
- break;
- }
-}
-
-void set_rgb_home(void) {
- home_rgb.raw = eeconfig_read_rgblight();
- // these get the current -- not eeprom
- // home_rgb.hue = rgblight_get_hue();
- // home_rgb.sat = rgblight_get_sat();
- // home_rgb.val = rgblight_get_val();
-}
-
-void set_rgb_by_layer(layer_state_t state) {
- if (!rgblight_is_enabled()) {
- return; // lighting not enabled
- }
-
- HSV layer_color = {home_rgb.hue, home_rgb.sat, home_rgb.val};
- set_layer_hsv(state, &layer_color);
- rgblight_sethsv_noeeprom( //
- layer_color.h, // all 3 MUST be btwn 0 and 255
- layer_color.s, //
- layer_color.v //
- );
-}
-#endif
diff --git a/users/muppetjones/features/rgblayers.h b/users/muppetjones/features/rgblayers.h
deleted file mode 100644
index 35be7d7fe4..0000000000
--- a/users/muppetjones/features/rgblayers.h
+++ /dev/null
@@ -1,22 +0,0 @@
-/* Copyright 2020 Stephen J. Bush
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-#pragma once
-#ifdef RGBLIGHT_ENABLE
-
-void set_rgb_by_layer(layer_state_t);
-void set_rgb_home(void);
-#endif
diff --git a/users/muppetjones/muppetjones.c b/users/muppetjones/muppetjones.c
deleted file mode 100644
index c4cb02124a..0000000000
--- a/users/muppetjones/muppetjones.c
+++ /dev/null
@@ -1,52 +0,0 @@
-/* Copyright 2020 Stephen J. Bush @muppetjones
- *
- * 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 "muppetjones.h"
-#include "tapmods.h"
-#include "features/casemodes.h"
-
-/* Placeholder function
- * If defined in a keymap.c, this will be ignored.
- */
-__attribute__((weak)) bool process_record_keymap(uint16_t keycode, keyrecord_t *record) { return true; }
-
-/* Handle keypresses
- */
-bool process_record_user(uint16_t keycode, keyrecord_t *record) {
- if (!process_case_modes(keycode, record)) {
- return false;
- }
- // Regular user keycode case statement
- switch (keycode) {
- case CLMK_DH:
- if (record->event.pressed) {
- set_single_persistent_default_layer(_CLMK_DH);
- }
- return false;
- break;
- case QWERTY:
- if (record->event.pressed) {
- // print("mode just switched to qwerty and this is a huge string\n");
- set_single_persistent_default_layer(_QWERTY);
- }
- return false;
- break;
- default:
- break;
- }
- return process_record_keymap(keycode, record);
-}
diff --git a/users/muppetjones/muppetjones.h b/users/muppetjones/muppetjones.h
deleted file mode 100644
index 3ada6c8198..0000000000
--- a/users/muppetjones/muppetjones.h
+++ /dev/null
@@ -1,55 +0,0 @@
-/* Copyright 2020 Stephen J. Bush @muppetjones
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-#pragma once
-#include QMK_KEYBOARD_H
-
-#include "tapmods.h"
-#include "wrappers.h"
-#include "features/casemodes.h"
-
-#ifdef COMBO_ENABLE
-# include "features/combos.h"
-#endif
-
-#ifdef ENCODER_ENABLE
-# include "features/etchamouse.h"
-#endif
-
-#ifdef RGBLIGHT_ENABLE
-# include "features/rgblayers.h"
-#endif
-
-#ifdef TAP_DANCE_ENABLE
-# include "features/dancelayers.h"
-#endif
-
-/* Define layer names */
-enum userspace_layers {
- _CLMK_DH = 0,
- _QWERTY,
- _MOUSE, // Intended for encoders. Mostly pass through.
- _LOWER,
- _RAISE,
- _NAV,
- _ADJUST,
-};
-
-// for casemodes
-enum custom_keycodes {
- CLMK_DH = SAFE_RANGE,
- QWERTY,
-};
diff --git a/users/muppetjones/readme.md b/users/muppetjones/readme.md
deleted file mode 100644
index 6569c01d95..0000000000
--- a/users/muppetjones/readme.md
+++ /dev/null
@@ -1,23 +0,0 @@
-# License
-
-Copyright 2020 Stephen J. Bush @muppetjones
-
-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/>.
-
-# FEATURES
-
-- [Etch-a-sketch Encoders](readme/etchamouse.md)
-- [RGB Layers](readme/rgblayers.md)
-- [Tap Dance Layers](readme/dancelayers.md)
-- [Tap Mods](readme/tapmods.md)
diff --git a/users/muppetjones/readme/dancelayers.md b/users/muppetjones/readme/dancelayers.md
deleted file mode 100644
index 85c4b7cad9..0000000000
--- a/users/muppetjones/readme/dancelayers.md
+++ /dev/null
@@ -1,73 +0,0 @@
-# Tap Dance Layers
-
-This feature creates a key that changes the current layer via tap dance. By
-default, this assumes that you have the following layers defined:
-
-- `_ADJUST`
-- `_LOWER`
-- `_RAISE`
-- `_MOUSE`
-
-And sets up the following tap dance:
-
-| Count | Action | Layer |
-| ----- | ------ | --------- |
-| 1x | hold | `_ADJUST` |
-| 1x | tap | `_MOUSE` |
-| 2x | tap | `_LOWER` |
-| 3x | tap | `_RAISE` |
-| 4x | tap | `_ADJUST` |
-
-## Usage
-
-> NOTE: If you use other tap-dance functions, you may require additonal setup.
-
-1. Copy `features/dancelayers.{c,h}` into your keymap or userspace directory.
-2. Add the following to your `rules.mk`
-
- ```
- TAP_DANCE_ENABLE = yes
-
- SRC += ./features/dancelayers.c
- ```
-
-3. Add the following to your `keymap.c`:
-
- ```
- #ifdef TAP_DANCE_ENABLE
- # include "features/dancelayers.h"
- # define TD_LAYR TD(TD_LAYERS)
- #else
- # define TD_LAYR XXXXXXX
- #endif
- ```
-
-4. Add `TD_LYR` to your keymap.
-
-## Functions and Enumerations
-
-The following functions are available for use:
-
-- `cur_dance`
-
-The following tap dance enumerations are defined:
-
-- `TD_1X_HOLD`
-- `TD_1X_TAP`
-- `TD_2X_TAP`
-- `TD_3X_TAP`
-- `TD_4X_TAP`
-
-## Overriding the Defaults
-
-If you want to define different layers to tap dance actions, you'll need to
-define two additional functions in your `keymap.c`:
-
-- `td_lyr_finished`
-- `td_lyr_reset`
-
-Both of these functions are necessary and require a certain pattern for each
-layer. "Tap" actions are handled in `*_finished` while "hold" actions are
-resolved in `*_finished` and `*_reset`.
-
-See the implementation in `dancelayers.c` for an example.
diff --git a/users/muppetjones/readme/etchamouse.md b/users/muppetjones/readme/etchamouse.md
deleted file mode 100644
index efcf718b22..0000000000
--- a/users/muppetjones/readme/etchamouse.md
+++ /dev/null
@@ -1,69 +0,0 @@
-# Etch-a-Mouse
-
-Encoder-based mouse movement with acceleration!
-
-## Usage
-
-- Add the following to your rules.mk
-
- ```
- ENCODER_ENABLE = yes
- POINTING_DEVICE_ENABLE = yes
- ```
-
-- Add the following block to your keymap.c
-
- ```
- #ifdef ENCODER_ENABLE
- void encoder_update_user(uint8_t index, bool clockwise) {
- # ifdef POINTING_DEVICE_ENABLE
- encoder_update_mouse(index, clockwise);
- # endif
- return;
- #endif
- ```
-
-> NOTE: I use the mousekey keycodes to add button one and two into my keymap.
-
-## How It Works
-
-> This implementation uses the pointing device library, but it reuses several
-> of the same parameters from the mouse key acceleration.
-
-> The PD library is very light weight, but it does not animate cursor movement.
-> tl;dr: The mouse movement will not be smooth!
-
-The acceleration has four parts:
-
-```
-initial speed + (delta * time * count)
-```
-
-1. **Initial Speed**. Uses the `MOUSEKEY_INITIAL_SPEED` parameter.
-2. **Delta**. Uses the `MOUSEKEY_MOVE_DELTA` parameter.
-3. **Time**. The faster you turn, the faster you move.
-
- Subtract the time elapsed since the last actuation from a tapping term,
- defined by `TAPPING_TERM_MOUSE_ENCODER`†, with a minimum value of 1.
-
-4. **Count**. The more you turn, the faster you move.
-
- Count of the total number of actuations. This value will decay over time.
-
-† _I probably could and will eventually use `TAPPING_TERM`, but I did not want
-to mess up my tap mods while experimenting with acceleration._
-
-## Diagonal Movement
-
-Counting the number of actuations for a given axis allows us to persist movement
-along a given axis to give us some diagonal movement when moving both axes,
-which also helps with the acceleration a bit and makes the movement less blocky.
-
-## Time-based Decay (a.k.a., Deceleration)
-
-Originally, the actuation count zeroed out once the tapping term elapsed, but
-this made the movement very choppy. Instead, the count will degrade on every
-refresh after the tapping term has been exceeded; unfortunately, a refresh only
-occurs on an actuation on either axis, so once the time elapsed exceeds the
-persistence term, the count is cleared, which also removes any movement in that
-axis.
diff --git a/users/muppetjones/readme/rgblayers.md b/users/muppetjones/readme/rgblayers.md
deleted file mode 100644
index 862ba75941..0000000000
--- a/users/muppetjones/readme/rgblayers.md
+++ /dev/null
@@ -1,59 +0,0 @@
-# Dynamic Underglow Lighting Per-Layer
-
-This bit of code allows you to define layer lighting that respects your current eeprom settings, e.g., brightness. It does this by storing the base state rgb
-
-## Setup
-
-1. Enable RGB underglow in your `rules.mk`
-
- ```
- RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
- ```
-
-2. (Optional) Add RGB configuration to your `config.h`
-
- ```
- #ifdef RGBLIGHT_ENABLE
- # define RGBLIGHT_HUE_STEP 8
- # define RGBLIGHT_SAT_STEP 16
- # define RGBLIGHT_VAL_STEP 16
- # define RGBLIGHT_LIMIT_VAL 150
- # define RGBLIGHT_SLEEP
- // # define RGBLIGHT_LAYERS
- #endif
- ```
-
-3. Add `set_layer_hsv` function. This is where you define your layer-specific colors by setting the HSV properties on the `layer_color` pointer. This example uses the QMK RGB configuration parameters to keep the layer colors offset based on the current EEPROM HSV.
-
- > NOTE: The HSV values should be between 0 and 255, but setting the modulus on saturation causes the lights to go white on my board. I _think_ this is due to overflow, but I haven't had the chance to try and resolve it yet.
-
-
- ```
- #ifdef RGBLIGHT_ENABLE
- void set_layer_hsv(layer_state_t state, HSV* layer_color) {
- int32_t h = layer_color->h, s = layer_color->s, v = layer_color->v;
- switch (get_highest_layer(state)) {
- case _RAISE:
- h += 2 * RGBLIGHT_HUE_STEP;
- break;
- case _LOWER:
- h += -2 * RGBLIGHT_HUE_STEP;
- break;
- case _NAV:
- h += 1 * RGBLIGHT_HUE_STEP;
- break;
- case _MOUSE:
- h += -7 * RGBLIGHT_HUE_STEP;
- break;
- default:
- break;
- }
- layer_color->h = h % 255;
- layer_color->s = s;
- layer_color->v = v % 255;
- return;
- }
- #endif
- ```
-
-4. (Optional) If you're using `post_process_record_user`, you'll need to change the name in your keymap to `post_process_record_keymap`. We use the user function to update the HSV state after one of the RGB keycodes is pressed.
diff --git a/users/muppetjones/readme/tapmods.md b/users/muppetjones/readme/tapmods.md
deleted file mode 100644
index eb707e05d9..0000000000
--- a/users/muppetjones/readme/tapmods.md
+++ /dev/null
@@ -1,25 +0,0 @@
-# Tap Mods
-
-## Standard Keys
-
-| Keycode | Tap | Hold | Description |
-| -------- | ------- | ----- | ---------------------------------------------------- |
-| `HY_ESC` | Esc | Hyper | Esc on tap; hyper when held |
-| `HR_*` | A, O | LGUI | Home-row for Colemak mod-DH and right-handed numpad. |
-| \'\' | R, I, 6 | LALT | Home-row for Colemak mod-DH and right-handed numpad. |
-| \'\' | S, E, 5 | LCTL | Home-row for Colemak mod-DH and right-handed numpad. |
-| \'\' | T, N, 4 | LSFT | Home-row for Colemak mod-DH and right-handed numpad. |
-
-## Layers
-
-| Keycode | Tap | Hold | Description |
-| ------- | ----- | ----- | --------------------------- |
-| LOWER | -- | Lower | Temporarily activate layer. |
-| RAISE | -- | Raise | Temporarily activate layer. |
-| NAV | -- | Nav | Temporarily activate layer. |
-| LOW_ENT | Enter | Lower | |
-| LOW_SPC | Space | Lower | |
-| NAV_SPC | Space | Nav | |
-| RAI_ENT | Enter | Raise | |
-| RAI_SPC | Space | Raise | |
-| RAI_TAB | Tab | Raise | |
diff --git a/users/muppetjones/readme/wrappers.md b/users/muppetjones/readme/wrappers.md
deleted file mode 100644
index e8365ab7ad..0000000000
--- a/users/muppetjones/readme/wrappers.md
+++ /dev/null
@@ -1,153 +0,0 @@
-# Keymap Wrappers
-
-> Pattern adapted from users/drashna/wrapper.h
-
-Defines several object macros for common keycode sets. Each macro typically
-covers 5 keycodes with a left- or right-hand orientation, and macros are
-generally grouped into rows of three or four.
-
-> TODO: Use keymap builder to generate images.
-
-## Example
-
-```
-#define LAYOUT_wrapper(...) LAYOUT(__VA_ARGS__)
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-// clang-format off
-[_MODS] = LAYOUT_wrapper(
- _______, ___________________BLANK___________________, ...
- ...
-),
-//clang-format on
-}
-```
-
-Substitute the appropriate `LAYOUT` function, e.g., `LAYOUT_planck_grid` for your board.
-
-## Wrappers
-
-> **How to Read the Tables**
->
-> - Headers are numbered when wrapper is not hand-specific
-> - Headers use `L` and `R` to indicate handedness
-> - Headers use `P`, `R`, `M`, and `I` to indicate pinky, ring, middle, and index, respectively
-> - Wrappers define a maximum of **five** keycodes -- hands are shown on the same row for readability
-
-### Alpha: Colemak mod-DH
-
-| # | LP | LR | LM | LI | LI+ | RI+ | RI | RM | RR | RP |
-| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
-| 1 | Q | W | F | P | B | J | L | U | Y | ;ˆ |
-| 2 | A° | R° | S° | T° | G | M | N° | E° | I° | O° |
-| 3 | Z | X | C | D | V˜ | K | H | , | . | / |
-
-- **ˆ:** (Optional) Replace `;` with `'` (top-right)
-- **°:** (Optional) Home row modifiers on tap-hold (GACS, SCAG)
-- **˜:** (Optional) Tap-hold `shift` on `v`
-
-### Alpha: QWERTY
-
-| # | LP | LR | LM | LI | LI+ | RI+ | RI | RM | RR | RP |
-| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
-| 1 | Q | W | E | R | T | Y | U | I | O | P |
-| 2 | A | S | D | F | G | H | J | K | L | ; |
-| 3 | Z | X | C | V | B | N | M | , | . | / |
-
-### Blank(-ish)
-
-Defines macros for common filler.
-
-| 1 | 2 | 3 | 4 | 5 |
-| ---- | ---- | ---- | ---- | ---- |
-| TRNS | TRNS | TRNS | TRNS | TRNS |
-| xxxx | xxxx | xxxx | xxxx | xxxx |
-
-| LP | LR | LM | LI | LI+ | RI+ | RI | RM | RR | RP |
-| ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- |
-| LGUI | LALT | LCTL | LSFT | TRNS | TRNS | RSFT | RCTL | LALT | RGUI |
-
-### Adjust
-
-| # | LP | LR | LM | LI | LI+ | RI+ | RI | RM | RR | RP |
-| --- | ------ | ----- | ---- | ----- | ------ | ---- | ------ | ------ | ---- | ---- |
-| 1 | Reset | Debug | xxxx | Term+ | Term- | xxxx | AGNORM | AGSWAP | xxxx | xxxx |
-| 2 | RgbTog | Hue+ | Sat+ | Val+ | RgbMod | xxxx | CLMKDH | QWERTY | xxxx | xxxx |
-| 3 | xxxx | Hue- | Sat- | Val- | xxxx | xxxx | xxxx | xxxx | xxxx | xxxx |
-
-> Recommend: Define Right side per-board
-
-### Function
-
-| # | 1 | 2 | 3 | 4 |
-| --- | --- | --- | --- | --- |
-| 1 | F1 | F2 | F3 | F4 |
-| 2 | F5 | F6 | F7 | F8 |
-| 3 | F9 | F10 | F11 | F12 |
-
-### Media
-
-| # | 1 | 2 | 3 | 4 | 5 |
-| --- | ----- | ----- | ----- | ---- | ---- |
-| 1 | AuOn | MiOn | MuOn | Brm+ | Vol+ |
-| 2 | AuOff | MiOff | MuOff | Brm- | Vol- |
-| 3 | Play | Stop | Next | Prev | Mute |
-
-### Nav
-
-| # | RI+ | RI | RM | RR | RP |
-| --- | ----- | ---- | ----- | ----- | ----- |
-| 1 | Pg Up | Home | Wh Dn | Wh Up | End |
-| 2 | Pg Dn | Left | Down | Up | Right |
-| 3 | xxxx | xxxx | xxxx | xxxx | xxxx |
-
-### Numpad
-
-- `X Y` indicates the character `X` on keypress and character `Y` on `shift` keypress
-- Second table shows characters with `alt` keypress
-
-| # | RI+ | RI | RM | RR | RP |
-| --- | ----- | ----- | ----- | ----- | ----- |
-| 1 | Del | `7 &` | `8 _` | `9 (` | |
-| 2 | `- _` | `4 $` | `5 %` | `6 ^` | `*` |
-| 3 | `= +` | `1 !` | `2 @` | `3 #` | `, <` |
-| 4 | | `0 )` | `. >` | | |
-
-| # | RI+ | RI | RM | RR | RP |
-| --- | ----- | ----- | ----- | ----- | ----- |
-| 1 | | `¶ ‡` | `• °` | `ª ·` | `« »` |
-| 2 | `– —` | `¢ ›` | `∞ fi` | `§ fl` | `° °` |
-| 3 | `≠ ±` | `¡ ⁄` | `™ €` | `£ ‹` | `≤ ¯` |
-| 4 | | | `º ‚` | | |
-
-### Symbols
-
-| # | LP | LR | LM | LI | LI+ |
-| --- | ---- | ---- | ---- | ---- | ---- |
-| 1 | ~ | \` | ( | ) | |
-| 2 | LGUI | LALT | \[ ° | \] ° | \_ - |
-| 3 | xxxx | xxxx | { | } | LSFT |
-
-- **°:** Home row modifiers on tap-hold (GACS, SCAG)
-
-### VIM
-
-| # | LP | LR | LM | LI | LI+ |
-| --- | --- | --- | --- | --- | --- |
-| 1 | Q° | W° | : | | |
-
-- **°:** Via transparency
-
-## Typical Layers
-
-My keymaps typically use the following layers.
-
-| # | Name | Via | Left | Right |
-| --- | ---------- | ------------- | --------- | ------ |
-| 0 | Colemak DH | Adjust | | |
-| 1 | QWERTY | Adjust | | |
-| 2 | Mouse | tap-dance | n/a | n/a |
-| 3 | Lower | L home thumb | symbols | numpad |
-| 4 | Raise | L outer thumb | | |
-| 5 | Nav | R home thumb | home mods | nav |
-| 6 | Adjust | tap-dance | RGB | MEDIA |
diff --git a/users/muppetjones/rules.mk b/users/muppetjones/rules.mk
deleted file mode 100644
index 1decc2ed98..0000000000
--- a/users/muppetjones/rules.mk
+++ /dev/null
@@ -1,25 +0,0 @@
-# Reduce firmware size
-# https://thomasbaart.nl/2018/12/01/reducing-firmware-size-in-qmk/
-# also requires in config.h
-# NO_ACTION_MACRO
-# NO_ACTION_FUNCTION
-LTO_ENABLE = yes
-
-SRC += muppetjones.c
-SRC += features/casemodes.c
-
-ifdef COMBO_ENABLE
- SRC += ./features/combos.c
-endif
-
-ifdef ENCODER_ENABLE
- SRC += ./features/etchamouse.c
-endif
-
-ifdef RGBLIGHT_ENABLE
- SRC += ./features/rgblayers.c
-endif
-
-ifdef TAP_DANCE_ENABLE
- SRC += ./features/dancelayers.c
-endif
diff --git a/users/muppetjones/tapmods.h b/users/muppetjones/tapmods.h
deleted file mode 100644
index af3d160c5b..0000000000
--- a/users/muppetjones/tapmods.h
+++ /dev/null
@@ -1,77 +0,0 @@
-/* Copyright 2020 Stephen Bush
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-#pragma once
-#include QMK_KEYBOARD_H
-
-/* Define a stand-in from dancelayers.h in case tap-dance isn't enabled */
-#ifndef TAP_DANCE_ENABLE
-# define TD_LAYR XXXXXXX
-#endif
-
-/* Misc */
-
-#define HY_ESC HYPR_T(KC_ESC)
-#define HY_BSPC HYPR_T(KC_BSPC)
-
-/* Tap Mod Layers */
-
-#define LOWER MO(_LOWER)
-#define RAISE MO(_RAISE)
-#define NAV MO(_NAV)
-
-#define ADJ_DEL LT(_ADJUST, KC_DEL)
-#define LOW_ENT LT(_LOWER, KC_ENT)
-#define LOW_SPC LT(_LOWER, KC_SPC)
-#define LOW_BSP LT(_LOWER, KC_BSPC)
-#define NAV_SPC LT(_NAV, KC_SPC)
-#define RAI_BSP LT(_RAISE, KC_BSPC)
-#define RAI_ENT LT(_RAISE, KC_ENT)
-#define RAI_SPC LT(_RAISE, KC_SPC)
-#define RAI_TAB LT(_RAISE, KC_TAB)
-
-/* Miryoku Home-row Mods
-
-NOTE: Uses GACS.
-*/
-
-// Left-hand home row mods (colemak)
-#define HR_A LGUI_T(KC_A)
-#define HR_R LALT_T(KC_R)
-#define HR_S LCTL_T(KC_S)
-#define HR_T LSFT_T(KC_T)
-
-// Right-hand home row mods (colemak)
-#define HR_N RSFT_T(KC_N)
-#define HR_E RCTL_T(KC_E)
-#define HR_I LALT_T(KC_I)
-#define HR_O RGUI_T(KC_O)
-
-// Right-hand Numpad
-#define HR_4 RSFT_T(KC_4)
-#define HR_5 RCTL_T(KC_5)
-#define HR_6 LALT_T(KC_6)
-
-// Layout-specific mods
-#define TM_VSFT LSFT_T(KC_V) // For Using V in layer combos (e.g., planck)
-
-// GACS (Lower)
-#define HR_LBRC LCTL_T(KC_LBRC)
-#define HR_RBRC LSFT_T(KC_RBRC)
-
-// Left-hand home row mods (lower)---
-// #define HOME_UND LCTL_T(KC_UNDS) // NOTE: Mod-tap restricted to basic keycodes
-#define HOME_MIN LSFT_T(KC_MINS)
diff --git a/users/muppetjones/wrappers.h b/users/muppetjones/wrappers.h
deleted file mode 100644
index 9c6b25481d..0000000000
--- a/users/muppetjones/wrappers.h
+++ /dev/null
@@ -1,247 +0,0 @@
-/* Copyright 2020 Stephen Bush
- *
- * 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 "muppetjones.h"
-#include "tapmods.h"
-
-/* Pattern adapted from users/drashna/wrapper.h
- Define per-layout keymap sections. Also requires a wrapper.
-
- Example:
-
- #define LAYOUT_:name_wrapper(...) LAYOUT_:name(__VA_ARGS__)
-
- const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [_MODS] = LAYOUT_:name _wrapper(
- _______, ___________________BLANK___________________, ...
- ...
- ),
- }
-*/
-
-#ifdef MOUSEKEY_ENABLE
-# define MK_WH_D KC_WH_D
-# define MK_WH_U KC_WH_U
-#else
-# define MK_WH_D XXXXXXX
-# define MK_WH_U XXXXXXX
-#endif
-
-// clang-format off
-/* Blank-ish
- * ,----------------------------------. * ,----------------------------------.
- * | TRNS | TRNS | TRNS | TRNS | TRNS | * | xxxx | xxxx | xxxx | xxxx | xxxx |
- * `----------------------------------' * `----------------------------------'
- * ,----------------------------------. * ,----------------------------------.
- * | LGUI | LALT | LCTL | LSFT | TRNS | * | TRNS | RSFT | RCTL | LALT | RGUI |
- * `----------------------------------' * `----------------------------------'
-*/
-#define __BLANK____________________________________ _______, _______, _______, _______, _______
-#define __BLANK_NOOP_______________________________ XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX
-#define __BLANK_W_GACS_____________________________ KC_LGUI, KC_LALT, KC_LCTL, KC_LSFT, _______
-#define __BLANK_W_SCAG_____________________________ _______, KC_RSFT, KC_RCTL, KC_LALT, KC_RGUI
-
-/* Adjust LH
- * ,----------------------------------. ,----------------------------------.
- * |Reset |Debug | xxxx |Term+ |Term- | | xxxx |AGNORM|AGSWAP| xxxx | xxxx |
- * |------+------+------+------+------| |------+------+------+------+------|
- * |RgbTog| Hue+ | Sat+ | Val+ |RgbMod| | xxxx |CLMKDH|QWERTY| xxxx | xxxx |
- * |------+------+------+------+------| |------+------+------+------+------|
- * | xxxx | Hue- | Sat- | Val- | xxxx | | xxxx | xxxx | xxxx | xxxx | xxxx |
- * `----------------------------------' `----------------------------------'
- */
- // NOTE: The "BACKLIT" keycode is planck specific
-#define __ADJUST_L1________________________________ QK_BOOT, DB_TOGG, XXXXXXX, XXXXXXX, XXXXXXX
-#define __ADJUST_L2________________________________ RGB_TOG, RGB_HUI, RGB_SAI, RGB_VAI, RGB_MOD
-#define __ADJUST_L3________________________________ XXXXXXX, RGB_HUD, RGB_SAD, RGB_VAD, XXXXXXX
-
-#define __ADJUST_R1________________________________ XXXXXXX, AG_NORM, AG_SWAP, XXXXXXX, XXXXXXX
-#define __ADJUST_R2________________________________ XXXXXXX, CLMK_DH, QWERTY, XXXXXXX, XXXXXXX
-#define __ADJUST_R3________________________________ __BLANK_NOOP_______________________________
-
-/* Colemak mod-DH
- * ,----------------------------------. ,----------------------------------.
- * | Q | W | F | P | B | | J | L | U | Y | ;ˆ |
- * |------+------+------+------+------| |------+------+------+------+------|
- * | A | R | S | T | G | | M | N | E | I | O |
- * |------+------+------+------+------| |------+------+------+------+------|
- * | Z | X | C | D | V˜ | | K | H | , | . | / |
- * `----------------------------------' `----------------------------------'
- * ˆ Alternate: KC_QUOT
- * ° Alternate: Home row mods (GASC, SCAG)
- * ˜ Alternate: Hold for shift
- *
- * Colemak mod-DH (alt and alt+shift)
- * ,----------------------------------. ,----------------------------------.
- * | œ Œ | ∑ „ | | π ∏ | ı | | ∆ Ô | | | ¥ Á | æ Æ |
- * |------+------+------+------+------| |------+------+------+------+------|
- * | å Å | ® ‰ | ß Í | † ˇ | © ˝ | | µ Â | ˜ ˜ | ´ ´ | ˆ ˆ | Ø |
- * |------+------+------+------+------| |------+------+------+------+------|
- * | Ω ¸ | ≈ ˛ | ç Ç | Î | √ ◊ | | ˚  | Ó | ≤ ¯ | ≥ ˘ | ÷ ¿ |
- * `----------------------------------' `----------------------------------'
- */
-#define __COLEMAK_MOD_DH_L1________________________ KC_Q, KC_W, KC_F, KC_P, KC_B
-#define __COLEMAK_MOD_DH_L2_W_GACS_________________ HR_A, HR_R, HR_S, HR_T, KC_G
-#define __COLEMAK_MOD_DH_L3________________________ KC_Z, KC_X, KC_C, KC_D, KC_V
-#define __COLEMAK_MOD_DH_L3_W_SFTV_________________ KC_Z, KC_X, KC_C, KC_D, TM_VSFT
-
-#define __COLEMAK_MOD_DH_R1_W_QUOT_________________ KC_J, KC_L, KC_U, KC_Y, KC_QUOT
-#define __COLEMAK_MOD_DH_R1________________________ KC_J, KC_L, KC_U, KC_Y, KC_SCLN
-#define __COLEMAK_MOD_DH_R2_W_SCAG_________________ KC_M, HR_N, HR_E, HR_I, HR_O
-#define __COLEMAK_MOD_DH_R3________________________ KC_K, KC_H, KC_COMM, KC_DOT, KC_SLASH
-
-/* Function (4 columns)
- * ,---------------------------.
- * | F1 | F2 | F3 | F4 |
- * |------+------+------+------|
- * | F5 | F6 | F7 | F8 |
- * |------+------+------+------|
- * | F9 | F10 | F11 | F12 |
- * `---------------------------'
- */
-#define __FUNC_X1_________________________ KC_F1, KC_F2, KC_F3, KC_F4
-#define __FUNC_X2_________________________ KC_F5, KC_F6, KC_F7, KC_F8
-#define __FUNC_X3_________________________ KC_F9, KC_F10, KC_F11, KC_F12
-
-/* Game
- */
-#define __GAME_L1__________________________________ KC_BTN3, KC_BTN2, KC_UP, KC_BTN1, KC_BTN5
-#define __GAME_L2__________________________________ KC_BTN4, KC_LEFT, KC_DOWN, KC_RIGHT,XXXXXXX
-#define __GAME_L3__________________________________ XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX
-
-#define __GAME_R1__________________________________ KC_Q, KC_1, KC_2, KC_3, XXXXXXX
-#define __GAME_R2__________________________________ XXXXXXX, KC_4, KC_5, KC_6, XXXXXXX
-#define __GAME_R3__________________________________ XXXXXXX, KC_7, KC_8, KC_9, XXXXXXX
-
-
-/* Guitar
- * ,----------------------------------. ,----------------------------------.
- * | E | F |• F♯ | G |• G♯ | | A |• A♯ | B |• C | C♯ |
- * | A | A♯ |• B | C |• C♯ | | D |• D♯ | E |• F | F♯ |
- * | D | D♯ |• E | F |• F♯ | | G |• G♯ | A |• A♯ | B |
- * | G | G♯ |• A | A♯ |• B | | C |• C♯ | D |• D♯ | E |
- * | B | C |• C♯ | D |• D♯ | | E |• F | F♯ |• G | G♯ |
- * | E | F |• F♯ | G |• G♯ | | A |• A♯ | B |• C | C♯ |
- * `----------------------------------' `----------------------------------'
- */
-// Not sure why, but this does not work (possibly due to the lowercase 's'?)
-// #ifdef MIDI_ADVANCED
-// #define __GUITAR_1E_L______________________________ MI_E1, MI_F1, MI_Fs1, MI_G1, MI_Gs1
-// #define __GUITAR_2A_L______________________________ MI_A1, MI_As1, MI_B1, MI_C2, MI_Cs2
-// #define __GUITAR_3D_L______________________________ MI_D2, MI_Ds2, MI_E2, MI_F2, MI_Fs2
-// #define __GUITAR_4G_L______________________________ MI_G2, MI_Gs2, MI_A2, MI_As2, MI_B2
-// #define __GUITAR_5B_L______________________________ MI_B2, MI_C3, MI_Cs3, MI_D3, MI_Ds3
-// #define __GUITAR_6E_L______________________________ MI_E3, MI_F3, MI_Fs3, MI_G3, MI_Gs3
-//
-// #define __GUITAR_1E_R______________________________ MI_A1, MI_As1, MI_B1, MI_C2, MI_Cs2
-// #define __GUITAR_2A_R______________________________ MI_D2, MI_Ds2, MI_E2, MI_F2, MI_Fs2
-// #define __GUITAR_3D_R______________________________ MI_G2, MI_Gs2, MI_A2, MI_As2, MI_B2
-// #define __GUITAR_4G_R______________________________ MI_C3, MI_Cs3, MI_D3, MI_Ds3, MI_E3
-// #define __GUITAR_5B_R______________________________ MI_E3, MI_F3, MI_Fs3, MI_G3, MI_Gs3
-// #define __GUITAR_6E_R______________________________ MI_A3, MI_As3, MI_B3, MI_C4, MI_Cs4
-// #endif
-
-
-/* MEDIA
- * ,----------------------------------.
- * | AuOn | MiOn | MuOn | Brm+ | Vol+ |
- * |------+------+------+------+------|
- * | AuOff| MiOff| MuOff| Brm- | Vol- |
- * |------+------+------+------+------|
- * | Play | Stop | Next | Prev | Mute |
- * `----------------------------------'
- */
-#define __MEDIA_R1_________________________________ AU_ON, MI_ON, MU_ON, KC_BRMU, KC_VOLU
-#define __MEDIA_R2_________________________________ AU_OFF, MI_OFF, MU_OFF, KC_BRMD, KC_VOLD
-#define __MEDIA_R3_________________________________ KC_MPLY, KC_MSTP, KC_MNXT, KC_MPRV, KC_MUTE
-
-
-/* NAV
- * ,----------------------------------.
- * | Pg Up| Home | Wh Dn| Wh Up| End |
- * |------+------+------+------+------|
- * | Pg Dn| Left | Down | Up | Right|
- * |------+------+------+------+------|
- * | xxxx | xxxx | xxxx | xxxx | xxxx |
- * `----------------------------------'
- */
-#define __NAV_R1___________________________________ KC_PGUP, KC_HOME, KC_WH_D, KC_WH_U, KC_END
-#define __NAV_R2___________________________________ KC_PGDN, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT
-#define __NAV_R3___________________________________ __BLANK_NOOP_______________________________
-
-/* NUMPAD * (alt, alt+shift)
- * ,----------------------------------. * ,----------------------------------.
- * | Del | 7 & | 8 * | 9 ( | \ | | * | | ¶ ‡ | • ° | ª · | « » |
- * |------+------+------+------+------| * |------+------+------+------+------|
- * | - _ | 4 $ | 5 % | 6 ^ | * | * | – — | ¢ › | ∞ fi | § fl | ° ° |
- * |------+------+------+------+------| * |------+------+------+------+------|
- * | = + | 1 ! | 2 @ | 3 # | , | * | ≠ ± | ¡ ⁄ | ™ € | £ ‹ | ≤ ¯ |
- * |------+------+------+------+------| * |------+------+------+------+------|
- * | | 0 ) | . > | | | * | | | º ‚ | | |
- * `----------------------------------' * `----------------------------------'
- */
-#define __NUMPAD_R1________________________________ KC_GRV, KC_7, KC_8, KC_9, KC_BSLS
-#define __NUMPAD_R2________________________________ KC_MINS, HR_4, HR_5, HR_6, KC_COMM
-#define __NUMPAD_R3________________________________ KC_EQL, KC_1, KC_2, KC_3, KC_DOT
-#define __NUMPAD_R4________________________________ _______, KC_0, KC_DOT, _______, _______
-
-#define __NUMPAD_R3_ALT____________________________ KC_0, KC_1, KC_2, KC_3, KC_EQ
-
-/* Qwerty
- * ,----------------------------------. ,----------------------------------.
- * | Q | W | E | R | T | | Y | U | I | O | P |
- * |------+------+------+------+------| |------+------+------+------+------|
- * | A | S | D | F | G | | H | J | K | L | ; |
- * |------+------+------+------+------| |------+------+------+------+------|
- * | Z | X | C | V | B | | N | M | , | . | / |
- * `----------------------------------' `----------------------------------'
- */
-#define __QWERTY_L1________________________________ KC_Q, KC_W, KC_E, KC_R, KC_T
-#define __QWERTY_L2________________________________ KC_A, KC_S, KC_D, KC_F, KC_G
-#define __QWERTY_L3________________________________ KC_Z, KC_X, KC_C, KC_V, KC_B
-
-#define __QWERTY_R1________________________________ KC_Y, KC_U, KC_I, KC_O, KC_P
-#define __QWERTY_R2________________________________ KC_H, KC_J, KC_K, KC_L, KC_SCLN
-#define __QWERTY_R3________________________________ KC_N, KC_M, KC_COMM, KC_DOT, KC_SLASH
-
-/* SYMBOLS
- * ,----------------------------------.
- * | ~ | ` | ( | ) | |
- * |------+------+------+------+------|
- * | LGUI | LALT |LCTL [|LSFT ]| _ - |
- * |------+------+------+------+------|
- * | xxxx | xxxx | { | } | LSFT |
- * `----------------------------------'
- */
-#define __SYMBOLS_L1_______________________________ KC_TILD, KC_GRV, KC_LPRN, KC_RPRN, XXXXXXX
-#define __SYMBOLS_L2_______________________________ KC_LGUI, KC_LALT, HR_LBRC, HR_RBRC, KC_UNDS
-#define __SYMBOLS_L3_______________________________ XXXXXXX, XXXXXXX, KC_LCBR, KC_RCBR, KC_LSFT
-
-#define __SYMBOLS_R1_______________________________ KC_TILD, KC_LPRN, KC_RPRN, XXXXXXX, XXXXXXX
-#define __SYMBOLS_R2_______________________________ KC_UNDS, HR_LBRC, HR_RBRC, XXXXXXX, XXXXXXX
-#define __SYMBOLS_R3_______________________________ KC_PLUS, KC_LCBR, KC_RCBR, XXXXXXX, XXXXXXX
-
-/* VIM
- * -- Roll through ":wq" via transparency
- * ,----------------------------------.
- * | Q | W | : | | |
- * `----------------------------------'
- */
-#define __VIM_L1___________________________________ _______, _______, KC_COLN, _______, _______
-
-// clang-format on
-// __END__
diff --git a/users/mverteuil/.gitignore b/users/mverteuil/.gitignore
deleted file mode 100644
index 785f649dc6..0000000000
--- a/users/mverteuil/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-copyright.h
diff --git a/users/mverteuil/mverteuil.c b/users/mverteuil/mverteuil.c
deleted file mode 100644
index a3afc417fa..0000000000
--- a/users/mverteuil/mverteuil.c
+++ /dev/null
@@ -1,2 +0,0 @@
-#include QMK_KEYBOARD_H
-#include "mverteuil.h"
diff --git a/users/mverteuil/mverteuil.h b/users/mverteuil/mverteuil.h
deleted file mode 100644
index 1119b75adf..0000000000
--- a/users/mverteuil/mverteuil.h
+++ /dev/null
@@ -1,21 +0,0 @@
-#if AUDIO_ENABLE
-# if __has_include("copyright.h")
-# include "copyright.h"
-# endif
-
-# define LOWER_SOUND S__NOTE(_EF5), W__NOTE(_REST), Q__NOTE(_E4)
-# define NUMPAD_SOUND S__NOTE(_DF5), S__NOTE(_REST), S__NOTE(_C6)
-# define RAISE_SOUND S__NOTE(_E4), W__NOTE(_REST), Q__NOTE(_EF5)
-
-# define AUDIO_ON_SONG SONG(ZELDA_PUZZLE)
-# define LAYER_FUNCROW_ON_SONG SONG(COLEMAK_SOUND)
-# define LAYER_FUNCROW_OFF_SONG SONG(QWERTY_SOUND)
-# define LAYER_NMPAD_SONG SONG(NUMPAD_SOUND)
-# define LAYER_LOWER_SONG SONG(LOWER_SOUND)
-# define LAYER_RAISE_SONG SONG(RAISE_SOUND)
-#else
-// No-op version of PLAY_SONG instead of many checks for AUDIO_ENABLED
-# ifndef PLAY_SONG
-# define PLAY_SONG(ARG) // ARG
-# endif
-#endif
diff --git a/users/mverteuil/rules.mk b/users/mverteuil/rules.mk
deleted file mode 100644
index bfc4b1ed14..0000000000
--- a/users/mverteuil/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-SRC += mverteuil.c
diff --git a/users/narze/narze.c b/users/narze/narze.c
deleted file mode 100644
index 6ec3034492..0000000000
--- a/users/narze/narze.c
+++ /dev/null
@@ -1 +0,0 @@
-#include "narze.h"
diff --git a/users/narze/narze.h b/users/narze/narze.h
deleted file mode 100644
index d9be82744b..0000000000
--- a/users/narze/narze.h
+++ /dev/null
@@ -1,13 +0,0 @@
-#pragma once
-
-#include "quantum.h"
-#include "eeconfig.h"
-#include "keymap_colemak.h"
-
-#ifdef COMBO_ENABLE
-# include "superduper.h"
-#endif
-
-#define HPR_ESC ALL_T(KC_ESC)
-#define SFT_ENT SFT_T(KC_ENT)
-#define ALT_COLN RALT_T(KC_F13) // Remap F13 to Colon in software (eg. Keyboard Maestro)
diff --git a/users/narze/readme.md b/users/narze/readme.md
deleted file mode 100644
index f5caae0c80..0000000000
--- a/users/narze/readme.md
+++ /dev/null
@@ -1,37 +0,0 @@
-# narze's layout
-
-## (S)uper (D)uper Mode
-
-Inspired by [jasonrudolph](https://github.com/jasonrudolph/keyboard#super-duper-mode), with some extensions such as backspace & forward delete. The idea is to make another useful layer available on the home row.
-
-To use, press `S+D` simultaneously and hold, then...
-- `H/J/K/L` for Vim-like movement
-- `I/O` to move between browser tabs
-- `A` for `Option (Alt)`
-- `F` for `Backspace`
-- `;` for `Delete`
-- `A` with `H/L` to move to previous/next word
-- `A` with `G/;` to delete to previous/next word
-- Available for all layouts (but plover) using physical S & D keys position in qwerty
-- `Spacebar` for `Shift` (it's easier when already holding A with your pinky)
-- Disable with `Raise+Lower+M`
-- You can edit or add more useful keys in SUPERDUPER layer
-- It can be activated by holding `/` as well, but it's slower since `LT()` uses `TAPPING_TERM` of 200ms but `S+D` uses `COMBO_TERM` of only 20ms (Can be changed within config.h)
-
-The implementation will vary and some keys are not available in some of my layouts, please refer to `_SUPERDUPER` layer in each of my `keymap.c` files.
-
-# LICENSE
-Copyright 2019 Manassarn Manoonchai manassarn@gmail.com @narze
-
-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/>.
diff --git a/users/narze/rules.mk b/users/narze/rules.mk
deleted file mode 100644
index 565a4a7a63..0000000000
--- a/users/narze/rules.mk
+++ /dev/null
@@ -1,5 +0,0 @@
-SRC += narze.c
-
-ifeq ($(strip $(COMBO_ENABLE)), yes)
- SRC += superduper.c
-endif
diff --git a/users/narze/superduper.c b/users/narze/superduper.c
deleted file mode 100644
index 7545685727..0000000000
--- a/users/narze/superduper.c
+++ /dev/null
@@ -1,66 +0,0 @@
-#include "superduper.h"
-#include "eeconfig.h"
-#include "eeprom.h"
-#include "keymap_colemak.h"
-
-// SuperDuper
-
-#define SUPERDUPER_COMBO_COUNT 3
-#define EECONFIG_SUPERDUPER_INDEX (uint8_t *) 19
-
-enum process_combo_event {
- CB_SUPERDUPER,
-};
-
-enum supported_layers {
- _QWERTY,
- _COLEMAK,
- _QWOC
-};
-
-const uint16_t PROGMEM superduper_combos[SUPERDUPER_COMBO_COUNT][3] = {
- [_QWERTY] = {KC_S, KC_D, COMBO_END},
- [_COLEMAK] = {KC_R, KC_S, COMBO_END},
- [_QWOC] = {CM_S, CM_D, COMBO_END},
-};
-
-combo_t key_combos[] = {
- [CB_SUPERDUPER] = COMBO_ACTION(superduper_combos[_QWERTY]),
-};
-
-volatile bool superduper_enabled = true;
-
-const uint16_t PROGMEM empty_combo[] = {COMBO_END};
-
-bool toggle_superduper_mode(void) {
- superduper_enabled = !superduper_enabled;
-
- if (superduper_enabled) {
- set_superduper_key_combos();
- } else {
- clear_superduper_key_combos();
- }
-
- return superduper_enabled;
-}
-
-void set_superduper_key_combo_layer(uint16_t layer) {
- key_combos[CB_SUPERDUPER].keys = superduper_combos[layer];
- eeprom_update_byte(EECONFIG_SUPERDUPER_INDEX, layer);
-}
-
-void set_superduper_key_combos(void) {
- uint8_t layer = eeprom_read_byte(EECONFIG_SUPERDUPER_INDEX);
-
- switch (layer) {
- case _QWERTY:
- case _COLEMAK:
- case _QWOC:
- key_combos[CB_SUPERDUPER].keys = superduper_combos[layer];
- break;
- }
-}
-
-void clear_superduper_key_combos(void) {
- key_combos[CB_SUPERDUPER].keys = empty_combo;
-}
diff --git a/users/narze/superduper.h b/users/narze/superduper.h
deleted file mode 100644
index f8df2e1afb..0000000000
--- a/users/narze/superduper.h
+++ /dev/null
@@ -1,7 +0,0 @@
-#pragma once
-#include "narze.h"
-
-bool toggle_superduper_mode(void);
-void set_superduper_key_combo_layer(uint16_t layer);
-void set_superduper_key_combos(void);
-void clear_superduper_key_combos(void);
diff --git a/users/nchristus/nchristus.c b/users/nchristus/nchristus.c
deleted file mode 100644
index 555cd74cef..0000000000
--- a/users/nchristus/nchristus.c
+++ /dev/null
@@ -1,18 +0,0 @@
-/*
-Copyright 2020 Nick Christus <nick.christus@hey.com> @nchristus
-
-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 "nchristus.h"
diff --git a/users/nchristus/nchristus.h b/users/nchristus/nchristus.h
deleted file mode 100644
index 751b5c8f52..0000000000
--- a/users/nchristus/nchristus.h
+++ /dev/null
@@ -1,87 +0,0 @@
-/*
-Copyright 2020 Nick Christus <nick.christus@hey.com> @nchristus
-
-This program is free software: you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program. If not, see <http://www.gnu.org/licenses/>.
-*/
-
-#pragma once
-
-#include QMK_KEYBOARD_H
-
-// Define layer names
-enum userspace_layers {
- _QWRTY = 0,
- _LOWER,
- _RAISE,
- _ARROW,
- _FNCTN,
- _ADJST
-};
-
-// CTRL / ESC
-#define CTL_ESC CTL_T(KC_ESC)
-
-// Force quit dialog
-#define C_O_ESC LALT(LGUI(KC_ESC))
-
-// Mac lock
-#define MAC_LOK LCTL(LGUI(KC_Q))
-
-// 1Password
-#define OPW_OPN LALT(LGUI(KC_BSLS))
-#define OPW_CPY S(LGUI(KC_C))
-
-// Screenshotting
-#define SCR_FLL S(LGUI(KC_3))
-#define SCR_CRP S(LGUI(KC_4))
-
-// FSNotes
-#define FSNOTES LALT(LGUI(LSFT(LCTL(KC_0))))
-
-#if (!defined(LAYOUT) && defined(KEYMAP))
- #define LAYOUT KEYMAP
-#endif
-
-#define KEYMAP_wrapper(...) LAYOUT(__VA_ARGS__)
-#define LAYOUT_wrapper(...) LAYOUT(__VA_ARGS__)
-#define LAYOUT_ortho_4x12_wrapper(...) LAYOUT_ortho_4x12(__VA_ARGS__)
-
-#define ___________________BLANK___________________ _______, _______, _______, _______, _______
-
-#define __________________QWERTYL1_________________ KC_Q, KC_W, KC_E, KC_R, KC_T
-#define __________________QWERTYR1_________________ KC_Y, KC_U, KC_I, KC_O, KC_P
-
-#define __________________QWERTYL2_________________ KC_A, KC_S, KC_D, KC_F, KC_G
-#define __________________QWERTYR2_________________ KC_H, KC_J, KC_K, KC_L, KC_SCLN
-
-#define __________________QWERTYL3_________________ KC_Z, KC_X, KC_C, KC_V, KC_B
-#define __________________QWERTYR3_________________ KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH
-
-#define _________________FUNC_LEFT_________________ KC_F1, KC_F2, KC_F3, KC_F4, KC_F5
-#define _________________FUNC_RIGHT________________ KC_F6, KC_F7, KC_F8, KC_F9, KC_F10
-
-#define ________________NUMBER_LEFT________________ KC_1, KC_2, KC_3, KC_4, KC_5
-#define ________________NUMBER_RIGHT_______________ KC_6, KC_7, KC_8, KC_9, KC_0
-
-#define _________________LOWER_L1__________________ ________________NUMBER_LEFT________________
-#define _________________LOWER_L2__________________ KC_MINS, KC_PLUS, KC_LBRC, KC_RBRC, KC_BSLS
-
-#define _________________LOWER_R1__________________ ________________NUMBER_RIGHT_______________
-#define _________________LOWER_R2__________________ KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, _______
-
-#define _________________RAISE_L1__________________ KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC
-#define _________________RAISE_L2__________________ ___________________BLANK___________________
-
-#define _________________RAISE_R1__________________ KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN
-#define _________________RAISE_R2__________________ KC_UNDS, KC_EQL, KC_LCBR, KC_RCBR, KC_PIPE
diff --git a/users/nchristus/rules.mk b/users/nchristus/rules.mk
deleted file mode 100644
index e69de29bb2..0000000000
--- a/users/nchristus/rules.mk
+++ /dev/null
diff --git a/users/ninjonas/.gitignore b/users/ninjonas/.gitignore
deleted file mode 100644
index c6df8c0139..0000000000
--- a/users/ninjonas/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-secrets.c
diff --git a/users/ninjonas/README.md b/users/ninjonas/README.md
deleted file mode 100644
index f6c2f32352..0000000000
--- a/users/ninjonas/README.md
+++ /dev/null
@@ -1,117 +0,0 @@
-# QMK User Configuration for [ninjonas](https://github.com/ninjonas/qmk-yonas)
-Tired of copying and pasting the same macros and tap dances for all my keymaps. Utilizing user keymaps functionality.
-See: https://docs.qmk.fm/#/feature_userspace
-
-## [ninjonas.c](ninjonas.c)
-- ninjonas [QMK user configuration](https://github.com/qmk/qmk_firmware/blob/master/docs/feature_userspace.md)
-- On `keymap.c` include `ninjonas.h`
- ```c
- #include "ninjonas.h"
- ```
-
-## Supported Keyboards
-- [Crkbd ](../../keyboards/crkbd/keymaps/ninjonas)
-- [Hotdox](../../keyboards/hotdox/keymaps/ninjonas)
-- [Pinky3](../../keyboards/pinky/3/keymaps/ninjonas)
-- [Lily58](../../keyboards/lily58/keymaps/ninjonas)
-- [Kyria](../../keyboards/kyria/keymaps/ninjonas)
-
-## Features
-### [Keys](ninjonas.h)
-|Code | Description |
-|---|---|
-|K_LOCK | MacOS shortcut to execute lock command Cmd + CTRL + Q |
-|K_CSCN | MacOS shortcut to copy a portion of the screen to the clipboard |
-|K_MDSH | MacOS shortcut to get em-dash `–` |
-|K_CPRF | Cmd + Shift + M. Used for switching Google Chrome profiles |
-
-### [Layers](ninjonas.h)
-|Code | Description |
-|---|---|
-|LT_LOW | Tap for ENTER, hold for RAISE |
-|LT_RAI | Tap for SPACE, hold for LOWER |
-
-### [Mod-Taps](ninjonas.h)
-|Code | Description |
-|---|---|
-|MT_DEL | Tap for Delete, hold for ALT + SHIFT |
-|MT_EQL | Tap for =, SHIFT |
-
-### [Layout Blocks](ninjonas.h)
-Predefined keyboard layout templates to speed up configuring split keyboards
-
-|Code | Description |
-|---|---|
-|QWERTY | Qwerty Layout |
-|DVORAK | Dvorak Layout |
-|COLEMAK | Colemak Layout |
-|NUM | Number Rows |
-|FUNC | Function Rows |
-|SYM | Symbol Rows \(When holding shift on numbers\) |
-|NAV | Navigation Cluster |
-|MOUSE | Mouse Cluster |
-|MEDIA | Media Cluster |
-|MOD | Modifier Cluster |
-|NUMPAD | Numpad Cluster |
-
-### [Macros](process_records.c)
-|Code | Description |
-|---|---|
-|M_PYNV | Macro to activate pyenv with the name `jira` |
-|M_MAKE | Macro to send QMK make command to compile keyboard |
-|M_MALL | Macro to send QMK make command to all [ninjonas](#Supported%20Keyboards) keyboards |
-|M_FLSH | Macro to send QMK make command to compile keyboard with the correct bootloader |
-|M_VRSN | Macro to send QMK version |
-|M_SHFT | Sends Cmd + alt + shift to a keycode to activate [ShiftIt](https://github.com/fikovnik/ShiftIt) |
-|M_CODE | Opens [Visual Studio Code](https://code.visualstudio.com/) on current directory |
-|M_TERM | Launches Spotlight and calls Terminal |
-|M_XXX1 to M_XXX5 | Reserved for secret macros see [Secrets](#secrets) |
-
-### [Tap-Dance](tap_dances.h)
-|Code | Description |
-|---|---|
-|T_ESC | Tap once for ESC, double tap for CAPS_LOCK |
-|T_LBRC | Tap once for [, double for back browser |
-|T_RBRC | Tap once for ], double for forward browser |
-|T_TAB | Tap once for TAB, double for CTRL + TAB |
-|T_GRV | Tap once for GRV, double for Cmd + GRV |
-|T_GUI | Tap once for Cmd, double to open spotlight |
-|T_CPAP | Tap for Cmd + V, hold for Cmd + C, double tap to open [Line](https://line.me/en/) app, triple tap for itunes. |
-|T_Y | Tap for Y, double tap for NUMPAD layer |
-
-### [Combos](combos.h)
-|Code | Description |
-|---|---|
-|EQ_QUIT | Press E + Q will trigger Cmd + Q |
-|RW_CLOSE | Press R + W will trigger Cmd + W|
-|ET_TAB | Press E + T will trigger Cmd + T|
-|ZC_COPY | Press Z + C will trigger Cmd + C|
-|XV_PASTE | Press X + V will trigger Cmd + V|
-
-### Secrets
-There's times where you have macros you don't want to share like emails, an address you need but you always forget, passwords 😱, & and private strings. Based off [drashna's secret macros](https://github.com/qmk/qmk_firmware/blob/master/users/drashna/readme_secrets.md), it's now possible to do this. All you need to do is create a `secrets.c` file. Below is an example of how this is used.
-
-```c
-// secrets.c
-#include "ninjonas.h"
-
-static const char * const secret[] = {
- "BLANK1",
- "BLANK2",
- "BLANK3",
- "BLANK4",
- "BLANK5"
-};
-
-bool process_record_secrets(uint16_t keycode, keyrecord_t *record) {
- switch (keycode) {
- case M_XXX1...M_XXX5:
- if (record->event.pressed) {
- send_string(secret[keycode - M_XXX1]);
- }
- break;
- }
- return true;
-}
-
-``` \ No newline at end of file
diff --git a/users/ninjonas/combos.c b/users/ninjonas/combos.c
deleted file mode 100644
index 3346af4ce4..0000000000
--- a/users/ninjonas/combos.c
+++ /dev/null
@@ -1,55 +0,0 @@
-#include "ninjonas.h"
-
-#ifdef COMBO_ENABLE
-enum combo_events {
- EQ_QUIT,
- RW_CLOSE,
- QT_TAB,
- ZC_COPY,
- XV_PASTE
-};
-
-const uint16_t PROGMEM quit_combo[] = {KC_E, KC_Q, COMBO_END};
-const uint16_t PROGMEM close_combo[] = {KC_R, KC_W, COMBO_END};
-const uint16_t PROGMEM tab_combo[] = {KC_Q, KC_T, COMBO_END};
-const uint16_t PROGMEM copy_combo[] = {KC_Z, KC_C, COMBO_END};
-const uint16_t PROGMEM paste_combo[] = {KC_X, KC_V, COMBO_END};
-
-combo_t key_combos[] = {
- [EQ_QUIT] = COMBO_ACTION(quit_combo),
- [RW_CLOSE] = COMBO_ACTION(close_combo),
- [QT_TAB] = COMBO_ACTION(tab_combo),
- [ZC_COPY] = COMBO_ACTION(copy_combo),
- [XV_PASTE] = COMBO_ACTION(paste_combo),
-};
-
-void process_combo_event(uint16_t combo_index, bool pressed) {
- switch(combo_index) {
- case EQ_QUIT:
- if (pressed) {
- tap_code16(LGUI(KC_Q));
- }
- break;
- case RW_CLOSE:
- if (pressed) {
- tap_code16(LGUI(KC_W));
- }
- break;
- case QT_TAB:
- if (pressed) {
- tap_code16(LGUI(KC_T));
- }
- break;
- case ZC_COPY:
- if (pressed) {
- tap_code16(LGUI(KC_C));
- }
- break;
- case XV_PASTE:
- if (pressed) {
- tap_code16(LGUI(KC_V));
- }
- break;
- }
-}
-#endif
diff --git a/users/ninjonas/config.h b/users/ninjonas/config.h
deleted file mode 100644
index 17bb03865c..0000000000
--- a/users/ninjonas/config.h
+++ /dev/null
@@ -1,20 +0,0 @@
-#ifdef TAPPING_TERM
- #undef TAPPING_TERM
- #define TAPPING_TERM 200
-#endif
-#define TAPPING_TERM_PER_KEY
-
-// Mouse Settings: Smoothing out mouse movement on keypress
-#ifndef MOUSEKEY_INTERVAL
- #undef MOUSEKEY_INTERVAL
- #define MOUSEKEY_INTERVAL 16
-#endif
-#define MOUSEKEY_DELAY 0
-#define MOUSEKEY_TIME_TO_MAX 60
-#define MOUSEKEY_MAX_SPEED 7
-#define MOUSEKEY_WHEEL_DELAY 0
-
-#ifdef COMBO_ENABLE
- #undef COMBO_TERM
- #define COMBO_TERM 60
-#endif
diff --git a/users/ninjonas/encoder.c b/users/ninjonas/encoder.c
deleted file mode 100644
index f1b448b79b..0000000000
--- a/users/ninjonas/encoder.c
+++ /dev/null
@@ -1,105 +0,0 @@
-/* Copyright 2020 ninjonas
- *
- * 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 "ninjonas.h"
-
-#ifdef ENCODER_ENABLE
-void left_encoder_cw(void) {
- switch (get_highest_layer(layer_state)) {
- case _LOWER:
- tap_code16(LGUI(KC_TAB));
- break;
- case _RAISE:
- tap_code(KC_PGDN);
- break;
- case _ADJUST:
- rgblight_decrease_hue();
- break;
- default:
- tap_code(KC_BRID);
- break;
- }
-}
-void left_encoder_acw(void) {
- switch (get_highest_layer(layer_state)) {
- case _LOWER:
- tap_code16(SGUI(KC_TAB));
- break;
- case _RAISE:
- tap_code(KC_PGUP);
- break;
- case _ADJUST:
- rgblight_increase_hue();
- break;
- default:
- tap_code(KC_BRIU);
- break;
- }
-}
-void right_encoder_cw(void) {
- switch (get_highest_layer(layer_state)) {
- case _LOWER:
- tap_code(KC_DOWN);
- break;
- case _RAISE:
- tap_code16(LCTL(LSFT(KC_TAB)));
- break;
- case _ADJUST:
- rgblight_decrease_val();
- break;
- default:
- tap_code(KC_VOLD);
- break;
- }
-}
-void right_encoder_acw(void) {
- switch (get_highest_layer(layer_state)) {
- case _LOWER:
- tap_code(KC_UP);
- break;
- case _RAISE:
- tap_code16(LCTL(KC_TAB));
- break;
- case _ADJUST:
- rgblight_increase_val();
- break;
- default:
- tap_code(KC_VOLU);
- break;
- }
-}
-
-bool encoder_update_user(uint8_t index, bool clockwise) {
- encoder_rotated_timer = timer_read();
- if (index == 0) {
- left_encoder_rotated = true;
- if (clockwise) {
- left_encoder_cw();
- } else {
- left_encoder_acw();
- }
- }
- else if (index == 1) {
- right_encoder_rotated = true;
- if (clockwise) {
- right_encoder_cw();
- } else {
- right_encoder_acw();
- }
- }
- return true;
-}
-
-#endif
diff --git a/users/ninjonas/ninjonas.c b/users/ninjonas/ninjonas.c
deleted file mode 100644
index 8d37641aa3..0000000000
--- a/users/ninjonas/ninjonas.c
+++ /dev/null
@@ -1,39 +0,0 @@
-/* Copyright 2019 @ninjonas
- *
- * 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 "ninjonas.h"
-
-layer_state_t layer_state_set_user (layer_state_t state) {
- return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST);
-}
-
-#ifdef RGBLIGHT_ENABLE
-extern rgblight_config_t rgblight_config;
-#endif
-void keyboard_post_init_user(void) {
- #ifdef RGBLIGHT_ENABLE
- // Cycles through the entire hue wheel and resetting to default color
- uint16_t default_hue = rgblight_config.hue;
- rgblight_enable_noeeprom();
- layer_state_set_user(layer_state);
- rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_LIGHT);
- for (uint16_t i = 255; i > 0; i--) {
- rgblight_sethsv_noeeprom((i + default_hue) % 255, rgblight_config.sat, rgblight_config.val);
- matrix_scan();
- wait_ms(10);
- }
- #endif
- layer_state_set_user(layer_state);
-}
diff --git a/users/ninjonas/ninjonas.h b/users/ninjonas/ninjonas.h
deleted file mode 100644
index 01df7c6b12..0000000000
--- a/users/ninjonas/ninjonas.h
+++ /dev/null
@@ -1,148 +0,0 @@
-/* Copyright 2019 @ninjonas
- *
- * 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"
-#include "version.h"
-#include "eeprom.h"
-#include "process_records.h"
-
-#ifdef TAP_DANCE_ENABLE
- #include "tap_dances.h"
-#endif
-#if defined(KEYBOARD_lily58_rev1) & defined(PROTOCOL_LUFA)
- #include "lufa.h"
- #include "split_util.h"
-#endif
-
-#ifdef ENCODER_ENABLE
-bool left_encoder_rotated;
-bool right_encoder_rotated;
-uint16_t encoder_rotated_timer;
-#endif
-
-#define _QWERTY 0
-#define _DVORAK 1
-#define _COLEMAK 2
-#define _LOWER 3
-#define _RAISE 4
-#define _ADJUST 5
-#define _NUMPAD 6
-
-// Shortcut Keys
-#define K_LOCK LGUI(LCTL(KC_Q)) // Locks screen on MacOS
-#define K_CSCN LGUI(LCTL(LSFT(KC_4))) // Copy a portion of the screen to the clipboard
-#define K_CPRF LGUI(LSFT(KC_M)) // Cmd + Shift + M. Used for switching Google Chrome profiles
-#define K_MDSH LSFT(LALT(KC_MINS))
-
-// Layer Keys
-#define LT_LOW LT(_LOWER, KC_ENT)
-#define LT_RAI LT(_RAISE, KC_SPC)
-
-// Mod-Tap Keys
-#define MT_DEL MT(MOD_LALT | MOD_LSFT, KC_DEL)
-#define MT_EQL MT(MOD_RSFT, KC_EQL)
-
-// Layout blocks
-#define _____________________QWERTY_L1______________________ T_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T
-#define _____________________QWERTY_L2______________________ T_ESC, KC_A, KC_S, KC_D, KC_F, KC_G
-#define _____________________QWERTY_L3______________________ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B
-
-#define _____________________QWERTY_R1______________________ T_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS
-#define _____________________QWERTY_R2______________________ KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT
-#define _____________________QWERTY_R3______________________ KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, MT_EQL
-
-#define _____________________DVORAK_L1______________________ T_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y
-#define _____________________DVORAK_L2______________________ T_ESC, KC_A, KC_O, KC_E, KC_U, KC_I
-#define _____________________DVORAK_L3______________________ KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X
-
-#define _____________________DVORAK_R1______________________ KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSLS
-#define _____________________DVORAK_R2______________________ KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH
-#define _____________________DVORAK_R3______________________ KC_B, KC_M, KC_W, KC_V, KC_Z, MT_EQL
-
-#define _____________________COLEMAK_L1_____________________ T_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G
-#define _____________________COLEMAK_L2_____________________ T_ESC, KC_A, KC_R, KC_S, KC_T, KC_D
-#define _____________________COLEMAK_L3_____________________ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B
-
-#define _____________________COLEMAK_R1_____________________ KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSLS
-#define _____________________COLEMAK_R2_____________________ KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT
-#define _____________________COLEMAK_R3_____________________ KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, MT_EQL
-
-#define _____________________NUM_LEFT_______________________ T_GRV, KC_1, KC_2, KC_3, KC_4, KC_5
-#define _____________________NUM_RIGHT______________________ KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS
-
-#define _____________________FUNC_LEFT______________________ KC_F11, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5
-#define _____________________FUNC_RIGHT_____________________ KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F12
-
-#define _____________________SYM_LEFT_______________________ KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC
-#define _____________________SYM_RIGHT______________________ KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_UNDS
-
-#define _____________________LOWER_L1_______________________ M_XXX2, M_XXX3, _________MEDIA_1_________, K_CSCN
-#define _____________________LOWER_L2_______________________ M_XXX4, M_XXX5, _________MEDIA_2_________, XXXXXXX
-#define _____________________LOWER_L3_______________________ KC_LSFT, M_SHFT, _________MEDIA_3_________, T_LBRC
-
-#define _____________________LOWER_R1_______________________ _______________NAV_1______________, XXXXXXX, K_MDSH
-#define _____________________LOWER_R2_______________________ _______________NAV_2______________, K_LOCK, XXXXXXX
-#define _____________________LOWER_R3_______________________ T_RBRC, KC_M, M_TERM, M_CODE, M_XXX1, M_PYNV
-
-#define _____________________ADJUST_L1______________________ M_MAKE, EE_CLR, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX
-
-#if defined(RGB_MATRIX_ENABLE) || defined(RGBLIGHT_ENABLE)
- #define _____________________ADJUST_L2______________________ M_VRSN, M_MALL, RGB_SPI, RGB_SAI, RGB_HUI, RGB_VAI
- #define _____________________ADJUST_L3______________________ M_FLSH, XXXXXXX, RGB_SPD, RGB_SAD, RGB_HUD, RGB_VAD
-#else
- #define _____________________ADJUST_L2______________________ M_VRSN, M_MALL, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX
- #define _____________________ADJUST_L3______________________ M_FLSH, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX
-#endif
-
-#if defined(RGB_MATRIX_ENABLE) || defined(RGBLIGHT_ENABLE)
- #define _____________________ADJUST_R1______________________ RGB_TOG, XXXXXXX, XXXXXXX, COLEMAK, DVORAK, QWERTY
- #define _____________________ADJUST_R3______________________ RGB_MOD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX
-#else
- #define _____________________ADJUST_R1______________________ XXXXXXX, XXXXXXX, XXXXXXX, COLEMAK, DVORAK, QWERTY
- #define _____________________ADJUST_R3______________________ XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX
-#endif
-#define _____________________ADJUST_R2______________________ XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX
-
-#define _____________________NUMPAD_1_______________________ T_Y, KC_P7, KC_P8, KC_P9, KC_PPLS, KC_PAST
-#define _____________________NUMPAD_2_______________________ XXXXXXX, KC_P4, KC_P5, KC_P6, KC_PMNS, KC_PSLS
-#define _____________________NUMPAD_3_______________________ KC_P0, KC_P1, KC_P2, KC_P3, KC_PDOT, KC_COLN
-
-#define _______________NAV_1______________ KC_PGUP, KC_HOME, KC_UP, KC_END
-#define _______________NAV_2______________ KC_PGDN, KC_LEFT, KC_DOWN, KC_RGHT
-
-#define _____________MOUSE_1______________ KC_BTN1, KC_MS_U, KC_BTN2, KC_WH_D
-#define _____________MOUSE_2______________ KC_MS_L, KC_MS_D, KC_MS_R, KC_WH_U
-
-#define __________________________________ _______, _______, _______, _______
-
-#define _____________MOD_LEFT_____________ KC_LALT, T_GUI, KC_LCTL, LT_RAI
-#define _____________MOD_RIGHT____________ LT_LOW, KC_BSPC, MT_DEL, T_CPAP
-
-#define _________MEDIA_1_________ KC_BRIU, KC_MPLY, KC_MUTE
-#define _________MEDIA_2_________ KC_BRID, KC_MFFD, KC_VOLU
-#define _________MEDIA_3_________ XXXXXXX, KC_MRWD, KC_VOLD
-
-#if defined(KEYBOARD_crkbd_rev1) || defined(KEYBOARD_kyria_rev1)
- #define ________MOD_LEFT_________ T_GUI, KC_LCTL, LT_RAI
- #define ________MOD_RIGHT________ LT_LOW, KC_BSPC, MT_DEL
-#else
- #define ________MOD_LEFT_________ KC_LALT, T_GUI, KC_LCTL
- #define ________MOD_RIGHT________ KC_BSPC, MT_DEL, T_CPAP
-#endif
-
-// Layout wrappers
-#define LAYOUT_wrapper(...) LAYOUT(__VA_ARGS__)
-#define LAYOUT_ergodox_wrapper(...) LAYOUT_ergodox(__VA_ARGS__) \ No newline at end of file
diff --git a/users/ninjonas/oled.c b/users/ninjonas/oled.c
deleted file mode 100644
index 73cd50fb8c..0000000000
--- a/users/ninjonas/oled.c
+++ /dev/null
@@ -1,112 +0,0 @@
-#include QMK_KEYBOARD_H
-#include <stdio.h>
-#include "ninjonas.h"
-
-#if defined(OLED_ENABLE) & !defined(KEYBOARD_kyria_rev1)
-
-static uint32_t oled_timer = 0;
-
-
-oled_rotation_t oled_init_user(oled_rotation_t rotation) {
- if (is_keyboard_master()) {
- return OLED_ROTATION_0;
- }
- return OLED_ROTATION_180;
-}
-
-bool process_record_oled(uint16_t keycode, keyrecord_t *record) {
- if (record->event.pressed) {
- oled_timer = timer_read32();
- }
- return true;
-}
-
-void render_layout_state(void) {
- oled_write_P(PSTR("Layout: "), false);
- switch (get_highest_layer(default_layer_state)) {
- case _COLEMAK:
- oled_write_P(PSTR("Colemak"), false);
- break;
- case _DVORAK:
- oled_write_P(PSTR("Dvorak"), false);
- break;
- case _QWERTY:
- oled_write_P(PSTR("Qwerty"), false);
- break;
- default:
- oled_write_ln_P(PSTR("Undefined"), false);
- }
-}
-
-void oled_white_space(void){
- oled_write_P(PSTR(" "), false);
-}
-
-void render_layer_state(void) {
- oled_write_P(PSTR("\nLayer:"), false);
- bool lower = layer_state_is(_LOWER) & !layer_state_is(_ADJUST);
- bool raise = layer_state_is(_RAISE) & !layer_state_is(_ADJUST);
- bool adjust = layer_state_is(_ADJUST);
- bool numpad = layer_state_is(_NUMPAD);
-
- if(lower){
- oled_write_P(PSTR(" Lower "), true);
- } else if(raise){
- oled_write_P(PSTR(" Raise "), true);
- } else if(adjust){
- oled_write_P(PSTR(" Adjust "), true);
- } else if(numpad) {
- oled_write_P(PSTR(" Numpad "), true);
- } else {
- oled_write_P(PSTR(" Default"), false);
- }
-}
-
-void render_mod_state(uint8_t modifiers) {
- oled_write_P(PSTR("\nMods: "), false);
- oled_write_P(PSTR("SHF"), (modifiers & MOD_MASK_SHIFT));
- oled_white_space();
- oled_write_P(PSTR("CTL"), (modifiers & MOD_MASK_CTRL));
- oled_white_space();
- oled_write_P(PSTR("ALT"), (modifiers & MOD_MASK_ALT));
- oled_white_space();
- oled_write_P(PSTR("GUI"), (modifiers & MOD_MASK_GUI));
-}
-
-void render_status(void){
- render_layout_state();
- oled_write_P(PSTR("\n"), false);
- render_layer_state();
- render_mod_state(get_mods()|get_oneshot_mods());
-}
-
-static void render_logo(void) {
- static const char PROGMEM qmk_logo[] = {
- 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, 0x90, 0x91, 0x92, 0x93, 0x94,
- 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, 0xb0, 0xb1, 0xb2, 0xb3, 0xb4,
- 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, 0xd0, 0xd1, 0xd2, 0xd3, 0xd4,
- 0};
-
- oled_write_P(qmk_logo, false);
-}
-
-bool oled_task_user(void) {
- if (timer_elapsed32(oled_timer) > 15000) {
- oled_off();
- return false;
- }
- #ifndef SPLIT_KEYBOARD
- else { oled_on(); }
- #endif
-
- if (is_keyboard_master()) {
- render_status();
- } else {
- render_logo();
- oled_write_P(PSTR("\n"), false);
- oled_scroll_left();
- }
- return false;
-}
-
-#endif
diff --git a/users/ninjonas/process_records.c b/users/ninjonas/process_records.c
deleted file mode 100644
index c298227e51..0000000000
--- a/users/ninjonas/process_records.c
+++ /dev/null
@@ -1,117 +0,0 @@
-#include "ninjonas.h"
-
-__attribute__((weak))
-bool process_record_keymap(uint16_t keycode, keyrecord_t *record) { return true; }
-
-__attribute__((weak))
-bool process_record_secrets(uint16_t keycode, keyrecord_t *record) { return true; }
-
-#ifdef OLED_ENABLE
-__attribute__((weak))
-bool process_record_oled(uint16_t keycode, keyrecord_t *record) { return true; }
-#endif
-
-bool process_record_user(uint16_t keycode, keyrecord_t *record) {
- switch (keycode) {
-
- // Sends pyenv to activate 'jira' environment
- case M_PYNV:
- if (record->event.pressed) {
- SEND_STRING("pyenv activate jira\n");
- }
- break;
-
- // Sends Cmd + alt + shift to a keycode to activate shiftit. See: https://github.com/fikovnik/ShiftIt
- case M_SHFT:
- if (record->event.pressed) {
- register_code(KC_LGUI);
- register_code(KC_LALT);
- register_code(KC_LCTL);
- } else {
- unregister_code(KC_LGUI);
- unregister_code(KC_LALT);
- unregister_code(KC_LCTL);
- }
- break;
-
- // Sends QMK make command to compile keyboard
- case M_MAKE:
- if (record->event.pressed) {
- SEND_STRING("rm -f *.hex && rm -rf .build/ && make " QMK_KEYBOARD ":" QMK_KEYMAP SS_TAP(X_ENTER));
- }
- break;
-
- // Sends QMK make command to compile all keyboards
- case M_MALL:
- if (record->event.pressed) {
- SEND_STRING("rm -f *.hex && rm -rf .build/ && make crkbd:ninjonas lily58:ninjonas hotdox:ninjonas pinky/3:ninjonas kyria:ninjonas\n");
- }
- break;
-
- // Sends QMK make command with the correct bootloader
- case M_FLSH:
- if (!record->event.pressed) {
- SEND_STRING("rm -f *.hex && rm -rf .build/ && make " QMK_KEYBOARD ":" QMK_KEYMAP
- #if (defined(BOOTLOADER_DFU) || defined(BOOTLOADER_LUFA_DFU) || defined(BOOTLOADER_QMK_DFU))
- ":dfu "
- #elif defined(BOOTLOADER_CATERINA)
- ":avrdude "
- #endif
- SS_TAP(X_ENTER)
- );
-
- // Send reset_keyboard command instead of pressing reset button
- #if (defined(BOOTLOADER_DFU) || defined(BOOTLOADER_LUFA_DFU) || defined(BOOTLOADER_QMK_DFU))
- reset_keyboard();
- #endif
- }
- break;
-
- // Sends QMK version
- case M_VRSN:
- if (record->event.pressed) {
- SEND_STRING (QMK_KEYBOARD "/" QMK_KEYMAP " @ " QMK_VERSION ", Built on: " QMK_BUILDDATE);
- }
- break;
-
- // Opens Visual Studio Code on current directory
- case M_CODE:
- if (record->event.pressed) {
- SEND_STRING("code .\n");
- }
- break;
-
- // Opens Terminal
- case M_TERM:
- if (record->event.pressed) {
- SEND_STRING(SS_DOWN(X_LGUI) SS_TAP(X_SPACE) SS_UP(X_LGUI));
- wait_ms(250);
- SEND_STRING("terminal\n");
- }
- break;
-
- // BEGIN: Layer macros
- case QWERTY:
- if (record->event.pressed) {
- set_single_persistent_default_layer(_QWERTY);
- }
- break;
- case DVORAK:
- if (record->event.pressed) {
- set_single_persistent_default_layer(_DVORAK);
- }
- break;
- case COLEMAK:
- if (record->event.pressed) {
- set_single_persistent_default_layer(_COLEMAK);
- }
- break;
- // END: Layer macros
- }
-
- return process_record_keymap(keycode, record) && process_record_secrets(keycode, record)
- #ifdef OLED_ENABLE
- && process_record_oled(keycode, record)
- #endif
- ; // Close return
-}
diff --git a/users/ninjonas/process_records.h b/users/ninjonas/process_records.h
deleted file mode 100644
index 5b901a1659..0000000000
--- a/users/ninjonas/process_records.h
+++ /dev/null
@@ -1,30 +0,0 @@
-#pragma once
-#include "ninjonas.h"
-
-enum custom_keycodes {
- // Layer Macros
- QWERTY = SAFE_RANGE,
- DVORAK,
- COLEMAK,
- // Custom Macros
- M_PYNV,
- M_SHFT,
- M_MAKE,
- M_MALL,
- M_FLSH,
- M_VRSN,
- M_CODE,
- M_TERM,
- // Secret Macros
- M_XXX1,
- M_XXX2,
- M_XXX3,
- M_XXX4,
- M_XXX5,
-};
-
-bool process_record_secrets(uint16_t keycode, keyrecord_t *record);
-bool process_record_keymap(uint16_t keycode, keyrecord_t *record);
-#ifdef OLED_ENABLE
-bool process_record_oled(uint16_t keycode, keyrecord_t *record);
-#endif
diff --git a/users/ninjonas/rules.mk b/users/ninjonas/rules.mk
deleted file mode 100644
index 7ff8f24b9e..0000000000
--- a/users/ninjonas/rules.mk
+++ /dev/null
@@ -1,16 +0,0 @@
-BOOTMAGIC_ENABLE = no # Enable Bootmagic Lite
-MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
-TAP_DANCE_ENABLE = yes # Enable Tap Dance.
-COMBO_ENABLE = yes # Enable Combos
-
-SRC += ninjonas.c \
- process_records.c \
- tap_dances.c \
- oled.c \
- encoder.c \
- combos.c
-
-ifneq ("$(wildcard $(USER_PATH)/secrets.c)","")
- SRC += secrets.c
-endif \ No newline at end of file
diff --git a/users/ninjonas/tap_dances.c b/users/ninjonas/tap_dances.c
deleted file mode 100644
index c03433e2d6..0000000000
--- a/users/ninjonas/tap_dances.c
+++ /dev/null
@@ -1,122 +0,0 @@
-#include "ninjonas.h"
-
-//// BEGIN: Advanced Tap Dances
-int cur_dance (tap_dance_state_t *state) {
- if (state->count == 1) {
- if (state->interrupted || !state->pressed) return SINGLE_TAP;
- //key has not been interrupted, but they key is still held. Means you want to send a 'HOLD'.
- else return SINGLE_HOLD;
- }
- else if (state->count == 2) {
- /*
- * DOUBLE_SINGLE_TAP is to distinguish between typing "pepper", and actually wanting a double tap
- * action when hitting 'pp'. Suggested use case for this return value is when you want to send two
- * keystrokes of the key, and not the 'double tap' action/macro.
- */
- if (state->interrupted) return DOUBLE_SINGLE_TAP;
- else if (state->pressed) return DOUBLE_HOLD;
- else return DOUBLE_TAP;
- }
- //Assumes no one is trying to type the same letter three times (at least not quickly).
- //If your tap dance key is 'KC_W', and you want to type "www." quickly - then you will need to add
- //an exception here to return a 'TRIPLE_SINGLE_TAP', and define that enum just like 'DOUBLE_SINGLE_TAP'
- if (state->count == 3) {
- if (state->interrupted || !state->pressed) return TRIPLE_TAP;
- else return TRIPLE_HOLD;
- }
- else return 8; //magic number. At some point this method will expand to work for more presses
-}
-
-// BEGIN: Copy, Paste, Apps
-// https://beta.docs.qmk.fm/features/feature_tap_dance#example-6-using-tap-dance-for-momentary-layer-switch-and-layer-toggle-keys
-static tap copy_paste_app_tap_state = {
- .is_press_action = true,
- .state = 0
-};
-
-void copy_paste_app_finished (tap_dance_state_t *state, void *user_data) {
- copy_paste_app_tap_state.state = cur_dance(state);
- switch (copy_paste_app_tap_state.state) {
- case SINGLE_TAP:
- tap_code16(LGUI(KC_V)); // Tap Cmd + V
- break;
- case SINGLE_HOLD:
- tap_code16(LGUI(KC_C)); // Hold Cmd + C
- break;
- case DOUBLE_TAP:
- SEND_STRING(SS_DOWN(X_LGUI) SS_TAP(X_SPACE) SS_UP(X_LGUI));
- wait_ms(250);
- SEND_STRING("line\n");
- break;
- case TRIPLE_TAP:
- SEND_STRING(SS_DOWN(X_LGUI) SS_TAP(X_SPACE) SS_UP(X_LGUI));
- wait_ms(250);
- SEND_STRING("itunes\n");
- break;
- }
-}
-
-void copy_paste_app_reset (tap_dance_state_t *state, void *user_data) {
- copy_paste_app_tap_state.state = 0;
-}
-// END: Copy, Paste, Apps
-
-// BEGIN: Y, NUMPAD
-static tap y_numpad_tap_state = {
- .is_press_action = true,
- .state = 0
-};
-
-void y_numpad_finished (tap_dance_state_t *state, void *user_data) {
- y_numpad_tap_state.state = cur_dance(state);
- switch (y_numpad_tap_state.state) {
- case SINGLE_TAP:
- tap_code(KC_Y);
- break;
- case SINGLE_HOLD:
- register_code16(KC_Y);
- break;
- case DOUBLE_TAP:
- if (layer_state_is(_NUMPAD)) {
- layer_off(_NUMPAD);
- } else {
- layer_on(_NUMPAD);
- }
- break;
- }
-}
-
-void y_numpad_reset (tap_dance_state_t *state, void *user_data) {
- switch (y_numpad_tap_state.state) {
- case SINGLE_HOLD:
- unregister_code16(KC_Y);
- break;
- }
- y_numpad_tap_state.state = 0;
-}
-// END: Y, NUMPAD
-
-//// END: Advanced Tap Dances
-
-tap_dance_action_t tap_dance_actions[] = {
- [TD_ESC_CAPS] = ACTION_TAP_DANCE_DOUBLE(KC_ESC, KC_CAPS),
- [TD_LBRC_BACK] = ACTION_TAP_DANCE_DOUBLE(KC_LBRC, LGUI(KC_LBRC)),
- [TD_RBRC_FWD] = ACTION_TAP_DANCE_DOUBLE(KC_RBRC, LGUI(KC_RBRC)),
- [TD_TAB_CTRLTAB] = ACTION_TAP_DANCE_DOUBLE(KC_TAB, LCTL(KC_TAB)),
- [TD_GRV_CTRLGRV] = ACTION_TAP_DANCE_DOUBLE(KC_GRV, LGUI(KC_GRV)),
- [TD_GUI_GUISPC] = ACTION_TAP_DANCE_DOUBLE(KC_LGUI, LGUI(KC_SPC)),
-
- // Advanced Tap Dances
- [TD_COPY_PASTE_APP] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, copy_paste_app_finished, copy_paste_app_reset),
- [TD_Y_NUMPAD] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, y_numpad_finished, y_numpad_reset),
-};
-
-uint16_t get_tapping_term(uint16_t keycode, keyrecord_t *record) {
- switch (keycode) {
- case TD(TD_COPY_PASTE_APP):
- case TD(TD_Y_NUMPAD):
- return 300;
- default:
- return TAPPING_TERM;
- }
-}
diff --git a/users/ninjonas/tap_dances.h b/users/ninjonas/tap_dances.h
deleted file mode 100644
index 11f77e7171..0000000000
--- a/users/ninjonas/tap_dances.h
+++ /dev/null
@@ -1,37 +0,0 @@
-#pragma once
-#include "ninjonas.h"
-
-typedef struct {
- bool is_press_action;
- int state;
-} tap;
-
-enum tapdance_types{
- SINGLE_TAP = 1,
- SINGLE_HOLD = 2,
- DOUBLE_TAP = 3,
- DOUBLE_HOLD = 4,
- DOUBLE_SINGLE_TAP = 5, //send two single taps
- TRIPLE_TAP = 6,
- TRIPLE_HOLD = 7
-};
-
-enum custom_tapdances{
- TD_ESC_CAPS = 0,
- TD_LBRC_BACK,
- TD_RBRC_FWD,
- TD_TAB_CTRLTAB,
- TD_GRV_CTRLGRV,
- TD_GUI_GUISPC,
- TD_COPY_PASTE_APP,
- TD_Y_NUMPAD,
-};
-
-#define T_ESC TD(TD_ESC_CAPS) // Tap for ESC, double tap for CAPSLOCK
-#define T_LBRC TD(TD_LBRC_BACK) // Tap for [, double tap for back browser
-#define T_RBRC TD(TD_RBRC_FWD) // Tap for ], double tap for forward browser
-#define T_TAB TD(TD_TAB_CTRLTAB) // Tap for TAB, double tap for CTRL + TAB
-#define T_GRV TD(TD_GRV_CTRLGRV) // Tap for GRV, double tap for Cmd + GRV
-#define T_GUI TD(TD_GUI_GUISPC) // Tap for Cmd, double tap for Cmd + Space
-#define T_CPAP TD(TD_COPY_PASTE_APP) // Tap for paste, hold for copy, double tap for Line App
-#define T_Y TD(TD_Y_NUMPAD) // Tap for Y, double tap for NUMPAD \ No newline at end of file
diff --git a/users/noroadsleft/noroadsleft.c b/users/noroadsleft/noroadsleft.c
deleted file mode 100644
index 80d18f4026..0000000000
--- a/users/noroadsleft/noroadsleft.c
+++ /dev/null
@@ -1,140 +0,0 @@
-/* Copyright 2020-2022 James Young (@noroadsleft)
- *
- * 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 "noroadsleft.h"
-#include "version.h"
-
-__attribute__((weak))
-bool process_record_keymap(uint16_t keycode, keyrecord_t *record) { return true; };
-
-bool process_record_user(uint16_t keycode, keyrecord_t *record) {
- if (!process_record_keymap(keycode, record)) {
- return false;
- }
-#if defined(ANSI_NUBS_ROW) && defined(ANSI_NUBS_COL)
- // if ANSI_NUBS_ROW and ANSI_NUBS_COL are both defined, and Right Alt mod is active
- if ( record->event.key.row == ANSI_NUBS_ROW && record->event.key.col == ANSI_NUBS_COL && get_mods() & MOD_MASK_RALT ) {
- if (record->event.pressed) {
- register_code(KC_NUBS);
- } else {
- unregister_code(KC_NUBS);
- }
- return false;
- }
-#endif
- switch (keycode) {
- case VRSN:
- if (record->event.pressed) {
- SEND_STRING(QMK_KEYBOARD ":" QMK_KEYMAP " # @ " QMK_VERSION);
- }
- return false;
- case G_PUSH:
- if (record->event.pressed) {
- SEND_STRING("git push origin ");
- };
- return false;
- case G_FTCH:
- if (record->event.pressed) {
- if ( get_mods() & MOD_MASK_SHIFT ) {
- clear_mods();
- SEND_STRING("git pull upstream ");
- } else {
- SEND_STRING("git fetch upstream ");
- }
- };
- return false;
- case G_BRCH:
- if (record->event.pressed) {
- if ( get_mods() & MOD_MASK_SHIFT ) {
- clear_mods();
- SEND_STRING("master");
- } else {
- SEND_STRING("$(git branch-name)");
- }
- };
- return false;
- case G_PWD:
- if (record->event.pressed) {
- clear_mods();
- SEND_STRING("$( pwd | sed -e 's;^.*/keyboards/;;' -e 's;/;_;g')");
- };
- return false;
- case M_SALL:
- if (record->event.pressed) {
- tap_code16(C(KC_A));
- }
- return false;
- case M_UNDO:
- if (record->event.pressed) {
- register_code(KC_LCTL);
- register_code(KC_Z);
- } else {
- unregister_code(KC_Z);
- unregister_code(KC_LCTL);
- }
- return false;
- case M_CUT:
- if (record->event.pressed) {
- tap_code16(C(KC_X));
- }
- return false;
- case M_COPY:
- if (record->event.pressed) {
- tap_code16(C(KC_C));
- }
- return false;
- case M_PASTE:
- if (record->event.pressed) {
- register_code(KC_LCTL);
- register_code(KC_V);
- } else {
- unregister_code(KC_V);
- unregister_code(KC_LCTL);
- }
- return false;
- case KC_1 ... KC_0:
- if (record->event.pressed) {
- if (get_mods() & MOD_MASK_RALT) {
- register_code(keycode + 0x3B);
- } else {
- register_code(keycode);
- }
- } else {
- if (get_mods() & MOD_MASK_RALT) {
- unregister_code(keycode + 0x3B);
- } else {
- unregister_code(keycode);
- }
- }
- return false;
- case KC_F1 ... KC_F12:
- if (record->event.pressed) {
- if (get_mods() & MOD_MASK_RALT) {
- register_code(keycode + 0x2E);
- } else {
- register_code(keycode);
- }
- } else {
- if (get_mods() & MOD_MASK_RALT) {
- unregister_code(keycode + 0x2E);
- } else {
- unregister_code(keycode);
- }
- }
- return false;
- } // switch()
- return true;
-};
diff --git a/users/noroadsleft/noroadsleft.h b/users/noroadsleft/noroadsleft.h
deleted file mode 100644
index 1d1a547562..0000000000
--- a/users/noroadsleft/noroadsleft.h
+++ /dev/null
@@ -1,37 +0,0 @@
-/* Copyright 2020-2022 James Young (@noroadsleft)
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-#pragma once
-
-#include QMK_KEYBOARD_H
-
-#define MOD_MASK_RALT (MOD_BIT(KC_RALT))
-
-enum userspace_keycodes {
- VRSN = SAFE_RANGE,
- G_PUSH,
- G_FTCH,
- G_BRCH,
- G_PWD,
- M_SALL,
- M_UNDO,
- M_CUT,
- M_COPY,
- M_PASTE,
- KEYMAP_SAFE_RANGE
-};
-
-bool process_record_keymap(uint16_t keycode, keyrecord_t *record);
diff --git a/users/noroadsleft/readme.md b/users/noroadsleft/readme.md
deleted file mode 100644
index d32e66917f..0000000000
--- a/users/noroadsleft/readme.md
+++ /dev/null
@@ -1,85 +0,0 @@
-# @noroadsleft's Userspace
-
-This directory holds the code that's the same for every keyboard I use in QMK, which is currently:
-
-- `kc60`
-- `kbdfans/kbd75/rev1`
-- `coseyfannitutti/discipline`
-
-
-## Macro Features and Custom Keycodes
-
-### [VRSN](./noroadsleft.c#L44-L48)
-
-Outputs a string that tells me the Git commit from which my flashed firmware was built. Looks something like:
-
- kc60:noroadsleft # @ 0.6.326-6-gae6d7b-dirty
-
-### Git Macros
-
-Some frequently used Git commands.
-
-| Keycode | Output | Output with <kbd>Shift</kbd> |
-| :---------------------------------- | :---------------------------------------------------- | :---------------------------------------------------- |
-| [`G_PUSH`](./noroadsleft.c#L44-L48) | `git push origin ` | `git push origin ` |
-| [`G_FTCH`](./noroadsleft.c#L49-L58) | `git fetch upstream ` | `git pull upstream ` |
-| [`G_BRCH`](./noroadsleft.c#L59-L68) | `master` | `$(git branch-name)` |
-| [`G_PWD`](./noroadsleft.c#L69-L74) | `$( pwd \| sed -e 's;^.*/keyboards/;;' -e 's;/;_;g')` | `$( pwd \| sed -e 's;^.*/keyboards/;;' -e 's;/;_;g')` |
-
-`$(git branch-name)` is an alias for `git rev-parse --abbrev-ref HEAD`, which normally returns the name of the current branch.
-
-The `G_PWD` macro outputs a shell expansion that returns the current working directory in relation to `qmk_firmware/keyboards/`, and with the slashes replaced with underscores. I do a lot of keyboard refactoring in QMK, and this is a string I use regularly.
-
-### Customized Keycodes
-
-I used to have a boolean variable that changed the functionality of these keycodes, but I no longer work in the environment that I wrote the functionality for, so I took it out. The keycodes still exist because all my `keymap.c` files reference the custom keycodes I defined.
-
-| Keycode | Action |
-| :------------------------------------ | :-------- |
-| [`M_SALL`](./noroadsleft.c#L75-L79) | `Ctrl+A` |
-| [`M_UNDO`](./noroadsleft.c#L80-L88) | `Ctrl+Z` |
-| [`M_CUT`](./noroadsleft.c#L89-L93) | `Ctrl+X` |
-| [`M_COPY`](./noroadsleft.c#L94-L98) | `Ctrl+C` |
-| [`M_PASTE`](./noroadsleft.c#L99-L107) | `Ctrl+V` |
-
-### [Emulated Non-US Backslash](./noroadsleft.c#L27-L37)
-
-Sometimes I type in languages from countries that use ISO layout, but my keyboards are all ANSI layout, so I have one key fewer than necessary.
-
-This macro simulates the Non-US Backslash key if I hold Right Alt and tap the key to the right of Left Shift.
-
-Requires defining `ANSI_NUBS_ROW` and `ANSI_NUBS_COL` in `config.h` at the keymap level.[<sup>1</sup>](#footnotes)
-
-### [Emulated Numeric Keypad](./noroadsleft.c#L108-L122)
-
-If I hold the Right Alt key, the number row (`KC_1` through `KC_0`) will output numpad keycodes instead of number row keycodes, enabling quicker access to characters like ™ and °.
-
-### [Emulated Extended Function Keys](./noroadsleft.c#L123-L137)
-
-Similar to the emulated numpad, if I hold the Right Alt key with the Fn key, the function row (`KC_F1` through `KC_F12`) will output keycodes `KC_F13` throught `KC_F24`.
-
-
-## License
-
-Copyright 2020-2022 James Young (@noroadsleft)
-
-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/>.
-
-
-## Footnotes
-
-- 1: [^](#emulated-non-us-backslash) `ANSI_NUBS_ROW` and `ANSI_NUBS_COL` are in the following locations:
- - [KC60](../../keyboards/kc60/keymaps/noroadsleft/config.h#L35-L36)
- - [KBDfans KBD75 rev1](../../keyboards/kbdfans/kbd75/keymaps/noroadsleft/config.h#L26-L27)
- - [CoseyFannitutti Discipline](../../keyboards/coseyfannitutti/discipline/keymaps/noroadsleft/config.h#L19-L20)
diff --git a/users/noroadsleft/rules.mk b/users/noroadsleft/rules.mk
deleted file mode 100644
index 2ae1988142..0000000000
--- a/users/noroadsleft/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-SRC += noroadsleft.c \ No newline at end of file
diff --git a/users/not-quite-neo/nqn-basic-layout.h b/users/not-quite-neo/nqn-basic-layout.h
deleted file mode 100644
index 71db9d379b..0000000000
--- a/users/not-quite-neo/nqn-basic-layout.h
+++ /dev/null
@@ -1,124 +0,0 @@
-#ifndef NQN_BASIC_LAYOUT_H
-#define NQN_BASIC_LAYOUT_H
-
-/*
-This is the basic NQN layout
-
-It consists of a block of 5x3, 5x4, 6x3, or 6x4 for each hand. This allows us
-to use these blocks for a variety of keyboards like the planck, preonic and
-even splits like the ergodox.
-
-You can see that we use some quirky preprocessor defines to achive what we
-desire. In the future I would like to see qmk taking a more generic approach
-like the KLL.
-
-The naming convention for these blocks is
- L<LAYER>_<SIDE>_<ROW>
-
- The LAYER is a number following the neo2 manner starting at 1 for the base
- layer, 2 is shift, 3 is for special chars etc.
-
- SIDE is, well either the left or right side/half of a keyboard.
-
- The ROW is starting from the top, numbering beginning at 1.
-*/
-
-
-#include "nqn-common.h"
-
-
-/*
- *
- * LEFT RIGHT
- * ,----------------------------------. ,----------------------------------.
- * 01 | x | v | l | c | w | | k | h | g | f | q |
- * |------+------+------+------+------| |------+------+------+------+------|
- * 02 | u | i | a | e | o | | s | n | r | t | d |
- * |------+------+------+------+------| |------+------+------+------+------|
- * 03 | y | < | # | p | z | | b | m | , | . | j |
- * `----------------------------------' `----------------------------------'
- */
-#define L01_LEFT_01 KC_X, KC_V, KC_L, KC_C, KC_W
-#define L01_LEFT_02 KC_U, KC_I, KC_A, KC_E, KC_O
-#define L01_LEFT_03 N_Y, N_LT, N_HS, KC_P, N_Z
-#define L01_RIGHT_02 KC_S, KC_N, KC_R, KC_T, KC_D
-#define L01_RIGHT_01 KC_K, KC_H, KC_G, KC_F, KC_Q
-#define L01_RIGHT_03 KC_B, KC_M, KC_COMM, KC_DOT, KC_J
-
-
-/*
- *
- * LEFT RIGHT
- * ,----------------------------------. ,----------------------------------.
- * 01 | … | _ | [ | ] | ^ | | ! | < | > | = | & |
- * |------+------+------+------+------| |------+------+------+------+------|
- * 02 | \ | / | { | } | * | | ? | ( | ) | - | @ |
- * |------+------+------+------+------| |------+------+------+------+------|
- * 03 | # | $ | | | ~ | ` | | + | % | " | ' | ° |
- * `----------------------------------' `----------------------------------'
- */
-#define L03_LEFT_01 N_DOTS, N_USC, N_LSQBR, N_RSQBR, N_CIRC
-#define L03_LEFT_02 N_BSLS, N_SLSH, N_LCUBR, N_RCUBR, N_ASTR
-#define L03_LEFT_03 N_HASH, N_DLR, N_PIPE, N_TILD, N_GRAVE
-#define L03_RIGHT_01 N_EXKL, N_LT, N_GT, N_EQ, N_AMP
-#define L03_RIGHT_02 N_QUES, N_LPARN, N_RPARN, N_MINS, N_AT
-#define L03_RIGHT_03 N_PLUS, N_PERC, N_QUOT, N_SING, N_DEGRE
-
-
-/*
- *
- * LEFT RIGHT
- * ,----------------------------------. ,----------------------------------.
- * 01 | PAGEU| BACKS| UP | DELET| PAGED| | / | 7 | 8 | 9 | - |
- * |------+------+------+------+------| |------+------+------+------+------|
- * 02 | HOME | LEFT | DOWN | RIGHT| END | | * | 4 | 5 | 6 | + |
- * |------+------+------+------+------| |------+------+------+------+------|
- * 03 | ESC | TAB | INSRT| ENTER| UNDO | | ENTER| 1 | 2 | 3 | , |
- * `----------------------------------' `----------------------------------'
- */
-#define L04_LEFT_01 KC_PGUP, KC_BSPC, KC_UP, KC_DEL, KC_PGDN
-#define L04_LEFT_02 KC_HOME, KC_LEFT, KC_DOWN, KC_RIGHT, KC_END
-#define L04_LEFT_03 KC_ESC, KC_TAB, KC_INS, KC_ENTER, N_UNDO
-#define L04_RIGHT_01 KC_KP_SLASH, KC_KP_7, KC_KP_8, KC_KP_9, KC_KP_MINUS
-#define L04_RIGHT_02 KC_KP_ASTERISK, KC_KP_4, KC_KP_5, KC_KP_6, KC_KP_PLUS
-#define L04_RIGHT_03 KC_KP_ENTER, KC_KP_1, KC_KP_2, KC_KP_3, KC_KP_DOT
-
-
-/*
- * LEFT RIGHT
- * ,----------------------------------. ,----------------------------------.
- * 01 | | | | | | | | | | | |
- * |------+------+------+------+------| |------+------+------+------+------|
- * 02 | ü | | ä | € | ö | | ß | | | | |
- * |------+------+------+------+------| |------+------+------+------+------|
- * 03 | | | | | | | | µ | | | |
- * `----------------------------------' `----------------------------------'
- */
-#define L05_LEFT_01 _______, _______, _______, _______, _______
-#define L05_LEFT_02 N_UE, _______, N_AE, N_EURO, N_OE
-#define L05_LEFT_03 _______, _______, _______, _______, _______
-#define L05_RIGHT_01 _______, _______, _______, _______, _______
-#define L05_RIGHT_02 N_SS, _______, _______, _______, _______
-#define L05_RIGHT_03 _______, N_MU, _______, _______, _______
-
-
-/*
- *
- * LEFT RIGHT
- * ,----------------------------------. ,----------------------------------.
- * 01 | F1 | F2 | F3 | F4 | | | MAIL | MUSIC| FILES| CALC | PASTE|
- * |------+------+------+------+------| |------+------+------+------+------|
- * 02 | F5 | F6 | F7 | F8 | | | PREV |PLAY/P| NEXT | STOP | COPY |
- * |------+------+------+------+------| |------+------+------+------+------|
- * 03 | F9 | F10 | F11 | F12 | | | PRINT| SCROL| PAUSE| NUMLK| CUT |
- * `----------------------------------' `----------------------------------'
- */
-#define L06_LEFT_01 KC_F1, KC_F2, KC_F3, KC_F4, _______
-#define L06_LEFT_02 KC_F5, KC_F6, KC_F7, KC_F8, _______
-#define L06_LEFT_03 KC_F9, KC_F10, KC_F11, KC_F12, _______
-#define L06_RIGHT_01 KC_MAIL, KC_MSEL, KC_MY_COMPUTER, KC_CALCULATOR, N_PASTE
-#define L06_RIGHT_02 KC_MPRV, KC_MPLY, KC_MNXT, KC_MSTP, N_COPY
-#define L06_RIGHT_03 KC_PSCR, KC_SCRL, KC_PAUS, KC_NUM, N_CUT
-
-
-#endif
diff --git a/users/not-quite-neo/nqn-common.h b/users/not-quite-neo/nqn-common.h
deleted file mode 100644
index bcd79505f7..0000000000
--- a/users/not-quite-neo/nqn-common.h
+++ /dev/null
@@ -1,9 +0,0 @@
-#ifndef NQN_COMMON_H
-#define NQN_COMMON_H
-
-
-/*
-This file holds some commen NQN definitions
-*/
-
-#endif
diff --git a/users/not-quite-neo/nqn-keys-on-quertz-de-latin1.h b/users/not-quite-neo/nqn-keys-on-quertz-de-latin1.h
deleted file mode 100644
index f5ab1631a7..0000000000
--- a/users/not-quite-neo/nqn-keys-on-quertz-de-latin1.h
+++ /dev/null
@@ -1,73 +0,0 @@
-#ifndef NQN_KEYS_ON_QUERTZ_DE_LATIN1_H
-#define NQN_KEYS_ON_QUERTZ_DE_LATIN1_H
-
-
-/*
-This file defines the desierd NQN keys if you use a software (operating sysetm)
-configured for a QUERTZ layout (de-latin1).
-
-These chars can be created by using ALTGR on linux and a few of them on windows
-with a German de-latin1 layout (depending on desktop environment and/or
-application).
- ′¹²³¼½¬{[]}\¸
- @ł€¶ŧ←↓→øþ¨~
- æſðđŋħ̣ĸł˝^’
- |»«¢„“”µ·…–
-
-Additionally, there are some common chars that we dit not yet define:
- §
-*/
-
-
-#include "nqn-common.h"
-
-
-// NQN key definitions in no particular order
-#define N_LT KC_NONUS_BACKSLASH
-#define N_HS KC_NONUS_HASH
-#define N_DOTS RALT(KC_DOT) // …
-#define N_USC LSFT(KC_SLASH) // _
-#define N_LSQBR RALT(KC_8) // [
-#define N_RSQBR RALT(KC_9) // ]
-#define N_CIRC KC_GRAVE // ^
-#define N_EXKL LSFT(KC_1) // !
-#define N_GT LSFT(KC_NONUS_BACKSLASH) // >
-#define N_EQ LSFT(KC_0) // =
-#define N_AMP LSFT(KC_6) // &
-#define N_BSLS RALT(KC_MINS) // \ backslash
-#define N_SLSH LSFT(KC_7) // /
-#define N_LCUBR RALT(KC_7) // {
-#define N_RCUBR RALT(KC_0) // }
-#define N_ASTR LSFT(KC_RBRC) // *
-#define N_QUES LSFT(KC_MINS) // ?
-#define N_LPARN LSFT(KC_8) // (
-#define N_RPARN LSFT(KC_9) // )
-#define N_MINS KC_SLASH // -
-#define N_COLN LSFT(KC_DOT) // :
-#define N_HASH KC_BACKSLASH // #
-#define N_DLR LSFT(KC_4) // $
-#define N_PIPE RALT(KC_NONUS_BACKSLASH) // |
-#define N_TILD RALT(KC_RBRC) // ~
-#define N_GRAVE LSFT(KC_EQUAL) // `
-#define N_PLUS KC_RBRC // +
-#define N_PERC LSFT(KC_5) // %
-#define N_QUOT LSFT(KC_2) // "
-#define N_SING LSFT(KC_BACKSLASH) // '
-#define N_SEMI LSFT(KC_COMM) // ;
-#define N_EURO RALT(KC_E) // €
-#define N_AT RALT(KC_Q) // @
-#define N_Z KC_Y
-#define N_Y KC_Z
-#define N_AE KC_QUOTE // ä
-#define N_OE KC_SCLN // ö
-#define N_UE KC_LBRC // ü
-#define N_MU RALT(KC_M) // µ
-#define N_SS KC_MINS // ß
-#define N_DEGRE LSFT(KC_GRAVE) // °
-#define N_PASTE LCTL(KC_V) // CTRL+V
-#define N_COPY LCTL(KC_C) // CTRL+C
-#define N_CUT LCTL(KC_X) // CTRL+X
-#define N_UNDO LCTL(N_Z) // CTRL+Z
-
-
-#endif
diff --git a/users/not-quite-neo/readme.md b/users/not-quite-neo/readme.md
deleted file mode 100644
index 85a29ecc66..0000000000
--- a/users/not-quite-neo/readme.md
+++ /dev/null
@@ -1,24 +0,0 @@
-# not-quite-neo
-
-This is my personal take on porting the [neo2 layout](https://www.neo-layout.org/) to support both a ergodox (infinity) and a planck keyboard. Some sacrifices needed to be made, hence this layout is not-quite-neo.
-
-## Use case
-My use case is simple:
-
-* I want to use neo2 (or a keymap as close as possible) on any computer I can plug my keyboards in. Because installing the neo2 SW driver is often not a acceptable solution.
-* Since most computers I work on (colleagues, family, etc.) use a de-DE keymap, I can not use the official neo2 implementation, because it relies on a us layout and I often times do not even posses the administration rights to change that.
-* neo2 makes use of most of the keys of a standard 104 key keyboard, especially for supporting the planck I needed to deviate from the original neo2 layout in order to fit everything I wanted.
-
-Therefore, I put all reusable code in the users/not-quite-neo directory and created a custom not-quite-neo keymap for the planck and the ergodox infinity keyboard respectively.
-
-## Pitfalls
-Mind, since neo2 is a SW driver supported layout it offers a lot of features that are hard to support in hardware (especially the fancy utf stuff with math symbols and greek letters etc.).
-
-Right now this implementation only incompletely supports neo2 layers 1 to 4.
-
-The biggest difference is probably the support for the German Umlauts ä, ö, ü and the ß. Since we rely on a smaller number of keys some glyphs needed to be created otherwise. See the implementation in [nqn-basic-layout.h](nqn-basic-layout.h) for details.
-
-## Keyboards and keymaps
-
-You can find the *not-quite-neo* keymap for the ergodox infinity under [qmk_firmware/keyboards/ergodox_infinity/keymaps/not-quite-neo/](../../keyboards/ergodox_infinity/keymaps/not-quite-neo/readme.md). Respectively the keymap for the planck resides in [qmk_firmware/keyboards/planck/keymaps/not-quite-neo/](../../keyboards/planck/keymaps/not-quite-neo/readme.md)
- . \ No newline at end of file
diff --git a/users/nstickney/config.h b/users/nstickney/config.h
deleted file mode 100644
index b853038c21..0000000000
--- a/users/nstickney/config.h
+++ /dev/null
@@ -1,63 +0,0 @@
-/* Copyright 2021 @nstickney
- *
- * 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/>.
- */
-
-// Changes from Bastyl defaults
-#ifdef MASTER_RIGHT
-# undef MASTER_RIGHT
-#endif
-
-// Turn off RGB lights when computer is sleeping
-#define RGBLIGHT_SLEEP
-
-// https://beta.docs.qmk.fm/developing-qmk/qmk-reference/config_options#features-that-can-be-disabled
-#define NO_ACTION_ONESHOT
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
-// Turn off all possible RGB animations
-#ifdef RGB_ANIMATIONS
-# undef RGB_ANIMATIONS
-#endif
-#ifdef RGB_EFFECT_ALTERNATING
-# undef RGB_EFFECT_ALTERNATING
-#endif
-#ifdef RGB_EFFECT_BREATHING
-# undef RGB_EFFECT_BREATHING
-#endif
-#ifdef RGB_EFFECT_CHRISTMAS
-# undef RGB_EFFECT_CHRISTMAS
-#endif
-#ifdef RGB_EFFECT_KNIGHT
-# undef RGB_EFFECT_KNIGHT
-#endif
-#ifdef RGB_EFFECT_RAINBOW_MOOD
-# undef RGB_EFFECT_RAINBOW_MOOD
-#endif
-#ifdef RGB_EFFECT_RAINBOW_SWIRL
-# undef RGB_EFFECT_RAINBOW_SWIRL
-#endif
-#ifdef RGB_EFFECT_RGB_TEST
-# undef RGB_EFFECT_RGB_TEST
-#endif
-#ifdef RGB_EFFECT_SNAKE
-# undef RGB_EFFECT_SNAKE
-#endif
-#ifdef RGB_EFFECT_STATIC_GRADIENT
-# undef RGB_EFFECT_STATIC_GRADIENT
-#endif
-#ifdef RGB_EFFECT_TWINKLE
-# undef RGB_EFFECT_TWINKLE
-#endif
diff --git a/users/nstickney/nstickney.c b/users/nstickney/nstickney.c
deleted file mode 100644
index b056e1cbaf..0000000000
--- a/users/nstickney/nstickney.c
+++ /dev/null
@@ -1,96 +0,0 @@
-/* Copyright 2021 @nstickney
- *
- * 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 "nstickney.h"
-
-// Tap Dancing
-void dance_layer(tap_dance_state_t *state, void *user_data) {
- switch (state->count) {
- case 1:
- tap_code(KC_APP);
- break;
- case 2:
- layer_invert(NUMP);
- break;
- case 3:
- layer_invert(SYMB);
- break;
- default:
- break;
- }
-};
-
-void dance_lock_finished(tap_dance_state_t *state, void *user_data) {
- switch (state->count) {
- case 1:
- register_code(KC_LGUI);
- break;
- case 2:
- register_code(KC_NUM);
- break;
- case 3:
- register_code(KC_CAPS);
- break;
- case 4:
- register_code(KC_SCRL);
- break;
- default:
- break;
- }
-};
-
-void dance_lock_reset(tap_dance_state_t *state, void *user_data) {
- switch (state->count) {
- case 1:
- unregister_code(KC_LGUI);
- break;
- case 2:
- register_code(KC_NUM);
- break;
- case 3:
- register_code(KC_CAPS);
- break;
- case 4:
- register_code(KC_SCRL);
- break;
- default:
- break;
- }
-};
-
-tap_dance_action_t tap_dance_actions[] = {
- [LOCKS] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, dance_lock_finished, dance_lock_reset),
- [LAYERS] = ACTION_TAP_DANCE_FN(dance_layer)
-};
-
-// RGB underglow per-layer hue values
-const uint16_t LAYER_HUE[] = {6, 197, 133, 69};
-
-// Initialize RGB underglow (colorful)
-void keyboard_post_init_user(void) {
- rgblight_enable_noeeprom();
- rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_LIGHT);
- for (uint16_t i = 0; i < 256; ++i) {
- rgblight_sethsv_noeeprom((i + LAYER_HUE[BASE]) % 256, 255, 136);
- wait_ms(8);
- }
-};
-
-// Turn on RGB underglow according to active layer
-layer_state_t layer_state_set_user(layer_state_t state) {
- uint8_t user_val = rgblight_get_val();
- rgblight_sethsv_noeeprom(LAYER_HUE[get_highest_layer(state)], 255, user_val);
- return state;
-};
diff --git a/users/nstickney/nstickney.h b/users/nstickney/nstickney.h
deleted file mode 100644
index 2b596b25e5..0000000000
--- a/users/nstickney/nstickney.h
+++ /dev/null
@@ -1,39 +0,0 @@
-/* Copyright 2021 @nstickney
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-#pragma once
-#include QMK_KEYBOARD_H
-
-// Specialty keycodes
-#define CC_ESC LCTL_T(KC_ESC)
-#define CC_QUOT RCTL_T(KC_QUOT)
-#define AC_SLSH LALT_T(KC_SLSH)
-#define AC_EQL RALT_T(KC_EQL)
-#define FC_BSLS LT(FCTN, KC_BSLS)
-#define FC_MINS LT(FCTN, KC_MINS)
-
-// Layers
-enum {
- BASE, // Base layer
- SYMB, // Symbols
- NUMP, // Numpad
- FCTN // Function
-};
-
-// Tap dance
-enum {
- LOCKS, // Activate NUM/CAPS/SCROLL lock
- LAYERS // Activate NUMP and SYMB layers
-};
diff --git a/users/nstickney/readme.md b/users/nstickney/readme.md
deleted file mode 100644
index fbd86bc607..0000000000
--- a/users/nstickney/readme.md
+++ /dev/null
@@ -1,49 +0,0 @@
-# nstickney's Ortholinear Layout
-
- > Familiar layout for users who regularly switch between Bastyl/Iris and standard QWERTY.
-
-## Install
-
-For instructions on building and installing this keymap, see the [docs](https://docs.qmk.fm/#/getting_started_make_guide).
-Below is the command for me; it may be different for you.
-Note that my Iris keyboard has an Elite-C on the left half and a ProMicro on the right half.
-
-- Bastyl: `make hidtech/bastyl:nstickney:dfu`
-- Iris
- - Elite-C: `make keebio/iris/rev2:nstickney:dfu`
- - ProMicro: `make keebio/iris/rev2:nstickney:avrdude`
-
-## Usage
-
-0. QWERTY `BASE` layer.
- * `/`, `\`, `[SPACE]`, `[ENTER]`, `-`, and `=` on the thumb clusters.
- * `[` and `]` added on Bastyl.
- * `CAPSLOCK` replaced by `ESC`; hold it down for `CTRL`.
- * `'` can also be held for `CTRL`.
- * [Space-Cadet Shift](https://beta.docs.qmk.fm/using-qmk/advanced-keycodes/feature_space_cadet) is enabled, so the `SHIFT` keys send `(` and `)` when tapped.
- * Hold down `/` or `=` for `ALT`.
- * Hold down `\` or `-` to access the functions layer.
- * Farthest thumb keys are `GUI` (left) and `MENU` (right).
- * Tapping `GUI` 2, 3, or 4 times will toggle `NUMLOCK`, `CAPSLOCK`, or `SCROLLLOCK`, respectively.
- * Tapping `MENU` 2 or 3 times will toggle the `NUMP` and `SYMB` layers, respectively.
-0. Unicode-input symbols on `SYMB` layer. Based (loosely) on US-International layout.
-0. `NUMP` layer has number pads on each hand. Number pad `7`-`8`-`9` align with QWERTY `7`-`8`-`9` on right hand.
-0. Function, arrow, media, and miscellaneous keys on `FCTN` layer.
- * `F1` through `F10` on `1`-`10`. `F11` is on `GUI` and `F12` is on `MENU`.
- * Brackets (`[` and `]`) available on `U` and `I`; braces (`{` and `}`) on `O` and `P`.
- * Arrow keys on `ESDF` and `HJKL`; familiar for both Vim users and FPS gamers.
- * `W` is `HOME`; `R` is `END`. `T` is `PAGE UP` and `G` is `PAGE DOWN`.
- * Music controls on lower row of left hand.
- * Volume and screen brightness on lower row of right hand.
- * `PRINT SCREEN`, `PAUSE`, `SYSREQ`, `INSERT`, and `CLEAR` also mapped, as intelligently as possible.
- * `Q` toggles the RGB underglow (which changes color to indicate active layer).
- * `A` increases RGB underglow brightness (with `SHIFT`, decreases brightness).
- * `Y` is mapped to [`QK_LOCK`](https://beta.docs.qmk.fm/using-qmk/software-features/feature_key_lock).
-
-## Contribute
-
-If you are using this layout and think you've found a better way to do something, I'd appreciate an [issue](https://github.com/nstickney/qmk_firmware/issues), or better yet a [pull request](https://github.com/nstickney/qmk_firmware/pulls).
-
-## License
-
-Copyright &copy; 2016-2021 @nstickney. Released under [GPL-2.0](/LICENSE).
diff --git a/users/nstickney/rules.mk b/users/nstickney/rules.mk
deleted file mode 100644
index cad245cc24..0000000000
--- a/users/nstickney/rules.mk
+++ /dev/null
@@ -1,36 +0,0 @@
-# Copyright 2021 @nstickney
-#
-# 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/>.
-SRC += nstickney.c
-
-KEY_LOCK_ENABLE = yes
-RGBLIGHT_ENABLE = yes
-TAP_DANCE_ENABLE = yes
-UNICODE_ENABLE = no
-UNICODEMAP_ENABLE = yes
-UCIS_ENABLE = no
-
-# https://github.com/qmk/qmk_firmware/issues/3224#issuecomment-399769416
-LTO_ENABLE = yes
-
-# https://beta.docs.qmk.fm/developing-qmk/qmk-reference/getting_started_make_guide#rules-mk-options
-AUDIO_ENABLE = no
-BOOTMAGIC_ENABLE = no # Enable Bootmagic Lite
-COMMAND_ENABLE = no
-CONSOLE_ENABLE = no
-MOUSEKEY_ENABLE = no
-MIDI_ENABLE = no
-NKRO_ENABLE = no
-SLEEP_LED_ENABLE = no
-VARIABLE_TRACE = no
diff --git a/users/nstickney/unicodemap.h b/users/nstickney/unicodemap.h
deleted file mode 100644
index 4360504ecb..0000000000
--- a/users/nstickney/unicodemap.h
+++ /dev/null
@@ -1,106 +0,0 @@
-/* Copyright 2021 @nstickney
- *
- * 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
-
-enum {
- // Used on base
-
- // Used on US-International
- IEX, SS2, SS3, CUR, EUR, V14, V12, V34, LSQ, RSQ, YEN, MLT,
- A_D, A_R, E_A, REG, THR, U_D, U_A, I_A, O_A, O_D, LDA, RDA, NOT,
- A_A, S_S, ETH, EMD, OEL, O_S, PLC, ACT,
- AEL, CPR, N_T, MCR, C_C, IQM,
-
- // Used on US-International with Shift
- SS1, GBP, DIV,
- AXD, ACR, ECA, UCD, UCA, ICA, OCA, OCD, BKB,
- ACA, SEC, ETC, OEC, OCS, DEG, DIS,
- AEC, CNT, NCT, CCC,
-
- // Added to US-International
-
- // Added to US-International with Shift
- LDQ, RDQ,
- CPL
-};
-
-const uint32_t unicode_map[] PROGMEM = {
- [IEX] = 0xA1, // ¡
- [SS2] = 0xB2, // ²
- [SS3] = 0xB3, // ³
- [CUR] = 0xA4, // ¤
- [EUR] = 0x20AC, // €
- [V14] = 0xBC, // ¼
- [V12] = 0xBD, // ½
- [V34] = 0xBE, // ¾
- [LSQ] = 0x2018, // ‘
- [RSQ] = 0x2019, // ’
- [YEN] = 0xA5, // ¥
- [MLT] = 0xD7, // ×
- [A_D] = 0xE4, // ä
- [A_R] = 0xE5, // å
- [E_A] = 0xE9, // é
- [REG] = 0xAE, // ®
- [THR] = 0xFE, // þ
- [U_D] = 0xFC, // ü
- [U_A] = 0xFA, // ú
- [I_A] = 0xED, // í
- [O_A] = 0xF3, // ó
- [O_D] = 0xF6, // ö
- [LDA] = 0xAB, // «
- [RDA] = 0xBB, // »
- [NOT] = 0xAC, // ¬
- [A_A] = 0xE1, // á
- [S_S] = 0xDF, // ß
- [ETH] = 0xF0, // ð
- [EMD] = 0x2014, // —
- [OEL] = 0x153, // œ
- [O_S] = 0xF8, // ø
- [PLC] = 0xB6, // ¶
- [ACT] = 0xB4, // ´
- [AEL] = 0xE6, // æ
- [CPR] = 0xA9, // ©
- [N_T] = 0xF1, // ñ
- [MCR] = 0xB5, // µ
- [C_C] = 0xE7, // ç
- [IQM] = 0xBF, // ¿
- [SS1] = 0xB9, // ¹
- [GBP] = 0xA3, // £
- [DIV] = 0xF7, // ÷
- [AXD] = 0xC4, // Ä
- [ACR] = 0xC5, // Å
- [ECA] = 0xC9, // É
- [UCD] = 0xDC, // Ü
- [UCA] = 0xDA, // Ú
- [ICA] = 0xCD, // Í
- [OCA] = 0xD3, // Ó
- [OCD] = 0xD6, // Ö
- [BKB] = 0xA6, // ¦
- [ACA] = 0xC1, // Á
- [SEC] = 0xA7, // §
- [ETC] = 0xD0, // Ð
- [OEC] = 0x152, // Œ
- [OCS] = 0xD8, // Ø
- [DEG] = 0xB0, // °
- [DIS] = 0xA8, // ¨
- [AEC] = 0xC6, // Æ
- [CNT] = 0xA2, // ¢
- [NCT] = 0xD1, // Ñ
- [CCC] = 0xC7, // Ç
- [LDQ] = 0x201C, // “
- [RDQ] = 0x201D, // ”
- [CPL] = 0x1F12F // 🄯
-};
diff --git a/users/ollyhayes/ollyhayes.c b/users/ollyhayes/ollyhayes.c
deleted file mode 100644
index 6dfd61b263..0000000000
--- a/users/ollyhayes/ollyhayes.c
+++ /dev/null
@@ -1,153 +0,0 @@
-/* Copyright 2022 Olly Hayes (@ollyhayes)
- *
- * 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 "ollyhayes.h"
-
-#ifdef VIRTSER_ENABLE
-# include "virtser.h"
-#endif
-
-layer_state_t default_layer_state_set_kb(layer_state_t state) {
- if (layer_state_cmp(state, BASE)) {
- rgb_matrix_mode(3);
- } else if (layer_state_cmp(state, GAMES)) {
- rgb_matrix_mode(1);
- }
- return state;
-}
-
-uint16_t key_presses = 0;
-bool process_record_user(uint16_t keycode, keyrecord_t *record) {
- // for tab/number layer switch
- static bool key_pressed_since_switch = false;
- static uint16_t switch_down_time = 0;
-
- // for alt-tab on punc layer
- static bool alt_tab_used = false;
-
- // for capital umlauts
- static bool shift_held = false;
-
-#ifdef VIRTSER_ENABLE
- if (record->event.pressed) {
- uint8_t key_index = 40 + record->event.key.col + record->event.key.row * 6;
- virtser_send(key_index);
- } else {
- uint8_t key_index = 90 + record->event.key.col + record->event.key.row * 6;
- virtser_send(key_index);
- }
-#endif
-
- if (record->event.pressed) {
- key_pressed_since_switch = true;
- key_presses++;
- }
-
- switch (keycode) {
- case UP4:
- if (record->event.pressed) {
- tap_code(KC_UP);
- tap_code(KC_UP);
- tap_code(KC_UP);
- tap_code(KC_UP);
- return false;
- }
- break;
-
- case DOWN4:
- if (record->event.pressed) {
- tap_code(KC_DOWN);
- tap_code(KC_DOWN);
- tap_code(KC_DOWN);
- tap_code(KC_DOWN);
- return false;
- }
- break;
-
- case NUM_SWITCH:
- if (record->event.pressed) {
- layer_on(NUM);
- key_pressed_since_switch = false;
- switch_down_time = timer_read();
- } else {
- layer_off(NUM);
-
- if (!key_pressed_since_switch && timer_elapsed(switch_down_time) < 200) {
- tap_code(KC_TAB);
- }
- }
- return false;
-
- case MO(PUNC):
- if (!record->event.pressed) {
- if (alt_tab_used) {
- unregister_code(KC_LALT);
- alt_tab_used = false;
- }
- }
- return true;
-
- case MO(FUNCTIONS):
- if (!record->event.pressed) {
- // if NUM_SWITCH has been lifted first, toggle to that layer
- // (4 = 2^NUM)
- if ((layer_state & 4) != 0) {
- layer_on(FUNCTIONS);
- return false;
- }
- }
- return true;
-
- case ALTTAB:
- if (record->event.pressed) {
- alt_tab_used = true;
- register_code(KC_LALT);
- tap_code(KC_TAB);
- }
- return false;
-
- case KC_LSFT:
- case KC_RSFT:
- shift_held = record->event.pressed;
- break;
-
- case A_UMLAUT:
- if (record->event.pressed) {
- if (shift_held)
- register_unicode(0x00c4);
- else
- register_unicode(0x00e4);
- }
- break;
- case O_UMLAUT:
- if (record->event.pressed) {
- if (shift_held)
- register_unicode(0x00d6);
- else
- register_unicode(0x00f6);
- }
- break;
- case U_UMLAUT:
- if (record->event.pressed) {
- if (shift_held)
- register_unicode(0x00dc);
- else
- register_unicode(0x00fc);
- }
- break;
- }
- return true;
-}
diff --git a/users/ollyhayes/ollyhayes.h b/users/ollyhayes/ollyhayes.h
deleted file mode 100644
index c65422937c..0000000000
--- a/users/ollyhayes/ollyhayes.h
+++ /dev/null
@@ -1,41 +0,0 @@
-/* Copyright 2022 Olly Hayes (@ollyhayes)
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-#include QMK_KEYBOARD_H
-
-enum layers {
- BASE,
- QWERTY,
- GAMES,
- NUM,
- FUNCTIONS,
- ARR,
- PUNC,
- DUBPUNC,
- MEDIA,
-};
-
-enum custom_keycodes {
- DOWN4 = SAFE_RANGE,
- UP4,
- NUM_SWITCH,
- ALTTAB,
- A_UMLAUT,
- O_UMLAUT,
- U_UMLAUT,
-};
-
-extern uint16_t key_presses;
diff --git a/users/ollyhayes/rules.mk b/users/ollyhayes/rules.mk
deleted file mode 100644
index 27752a5dee..0000000000
--- a/users/ollyhayes/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-SRC += ollyhayes.c
diff --git a/users/pcewing/README.md b/users/pcewing/README.md
deleted file mode 100644
index 0073b4f492..0000000000
--- a/users/pcewing/README.md
+++ /dev/null
@@ -1,85 +0,0 @@
-# User Space Code for Paul Ewing
-
-This folder contains my user space code.
-
-## Key Repeater
-
-I've implemented a key repeater utility in [./key_repeater.h](./key_repeater.h)
-and [./key_repeater.c](./key_repeater.c) that is similar in concept to the
-"rapid fire" feature many game controllers come with. The intent behind this is
-that the user can hold down a key and while it is pressed, a keycode will be
-repeatedly sent. I have found this useful in certain games and during game
-development.
-
-The duration of the key press as well as the time between key presses is
-slightly randomized by design. This is to simulate more realistic human
-behavior. By setting the minimum and maximum duration fields to the same value
-in the configuration, this randomization can be disabled.
-
-**Note:** Please be aware that this might be against the terms of service in
-certain games so use your own discretion before using this feature.
-
-### How to Use
-
-Define the repeater and then configure and allocate it in your keymap's
-initialization process:
-
-```c
-static struct key_repeater_t* click_repeater = NULL;
-
-void keyboard_post_init_user(void) {
- // Seed the random number generator which is used by the key repeater
- srand(timer_read32());
-
- // Configure and instantiate a key repeater for mouse button 1 "rapid fire"
- struct key_repeater_config_t cfg = {
- .key = KC_BTN1, // Press mouse button 1 (Left click)
- .key_duration_min = 20, // Press key for 20 to 50 milliseconds
- .key_duration_max = 50,
- .wait_duration_min = 90, // Wait for 90 to 140 milliseconds before pressing again
- .wait_duration_max = 140,
- };
-
- click_repeater = kr_new(&cfg);
-}
-```
-
-Make sure the key repeater is polled during matrix scanning:
-
-```c
-void matrix_scan_user(void) {
- kr_poll(click_repeater);
-}
-```
-
-Define a custom keycode that will enable/disable the repeater:
-
-```c
-enum {
- RP_BTN1 = SAFE_RANGE, // Click repeatedly while key is held
-};
-```
-
-Assign the keycode to a key in your `LAYOUT(...)` macro.
-
-Define the logic to enable/disable the repeater when the custom keycode is
-pressed or released:
-
-```c
-bool process_record_user(uint16_t keycode, keyrecord_t *record) {
- switch (keycode) {
- case RP_BTN1:
- if (record->event.pressed) {
- kr_enable(click_repeater);
- } else {
- kr_disable(click_repeater);
- }
- return false;
- default:
- return true;
- }
-}
-```
-
-For a full working example in own of my own keymaps, see:
-[keyboards/cozykeys/speedo/v3/keymaps/pcewing/keymap.c](../../keyboards/cozykeys/speedo/v3/keymaps/pcewing/keymap.c)
diff --git a/users/pcewing/key_repeater.c b/users/pcewing/key_repeater.c
deleted file mode 100644
index 6c77d45b5f..0000000000
--- a/users/pcewing/key_repeater.c
+++ /dev/null
@@ -1,168 +0,0 @@
-/*
- * Copyright 2022 Paul Ewing
- *
- * 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 "key_repeater.h"
-#include <stdlib.h>
-#include QMK_KEYBOARD_H
-
-enum key_repeater_state {
- KR_DISABLED,
- KR_WAITING,
- KR_BUTTON_DOWN,
-
- __KR_STATE_COUNT
-};
-
-struct key_repeater_t {
- int key;
- uint32_t key_duration_min;
- uint32_t key_duration_max;
- uint32_t wait_duration_min;
- uint32_t wait_duration_max;
-
- enum key_repeater_state state;
- uint32_t previous_button_down;
- uint32_t previous_button_up;
- uint32_t key_duration;
- uint32_t wait_duration;
-};
-
-// Utility functions
-uint32_t get_rand(uint32_t min, uint32_t max);
-
-// State handler function table
-void kr_waiting(struct key_repeater_t *kr);
-void kr_button_down(struct key_repeater_t *kr);
-
-typedef void (*kr_state_handler)(struct key_repeater_t *kr);
-static kr_state_handler kr_state_handlers[] = {
- [KR_DISABLED] = NULL,
- [KR_WAITING] = kr_waiting,
- [KR_BUTTON_DOWN] = kr_button_down,
-};
-
-struct key_repeater_t* kr_new(struct key_repeater_config_t* cfg) {
- struct key_repeater_t* kr = (struct key_repeater_t*)malloc(sizeof(struct key_repeater_t));
-
- if (cfg) {
- kr->key = cfg->key;
- kr->key_duration_min = cfg->key_duration_min;
- kr->key_duration_max = cfg->key_duration_max;
- kr->wait_duration_min = cfg->wait_duration_min;
- kr->wait_duration_max = cfg->wait_duration_max;
- } else {
- kr->key = KC_NO;
- kr->key_duration_min = 0;
- kr->key_duration_max = 0;
- kr->wait_duration_min = 0;
- kr->wait_duration_max = 0;
- }
-
- kr->state = KR_DISABLED;
- kr->previous_button_down = 0;
- kr->previous_button_up = 0;
- kr->key_duration = 0;
- kr->wait_duration = 0;
-
- return kr;
-}
-
-void kr_free(struct key_repeater_t **kr) {
- if (kr && *kr) {
- free(*kr);
- *kr = NULL;
- }
-}
-
-void kr_enable(struct key_repeater_t *kr) {
- if (!kr || kr->key == KC_NO) {
- return;
- }
-
- if (kr->state != KR_DISABLED) {
- return;
- }
- kr->state = KR_WAITING;
- kr->previous_button_down = 0;
- kr->previous_button_up = 0;
- kr->key_duration = 0;
- kr->wait_duration = 0;
-}
-
-void kr_disable(struct key_repeater_t *kr) {
- if (!kr || kr->key == KC_NO) {
- return;
- }
-
- if (kr->state == KR_BUTTON_DOWN) {
- unregister_code(kr->key);
- }
- kr->state = KR_DISABLED;
-}
-
-void kr_poll(struct key_repeater_t *kr) {
- if (!kr || kr->key == KC_NO) {
- return;
- }
-
- kr_state_handler handler = kr_state_handlers[kr->state];
- if (handler) {
- (handler)(kr);
- }
-}
-
-void kr_waiting(struct key_repeater_t *kr) {
- if (!kr || kr->key == KC_NO) {
- return;
- }
-
- uint32_t now = timer_read32();
- if (now > (kr->previous_button_up + kr->wait_duration)) {
- kr->state = KR_BUTTON_DOWN;
- kr->previous_button_down = now;
- if (kr->key_duration_min == kr->key_duration_max) {
- kr->key_duration = kr->key_duration_min;
- } else {
- kr->key_duration = get_rand(kr->key_duration_min, kr->key_duration_max);
- }
- register_code(kr->key);
- }
-}
-
-void kr_button_down(struct key_repeater_t *kr) {
- if (!kr || kr->key == KC_NO) {
- return;
- }
-
- uint32_t now = timer_read32();
- if (now > (kr->previous_button_down + kr->key_duration)) {
- kr->state = KR_WAITING;
- kr->previous_button_up = now;
- if (kr->wait_duration_min == kr->wait_duration_max) {
- kr->wait_duration = kr->wait_duration_min;
- } else {
- kr->wait_duration = get_rand(kr->wait_duration_min, kr->wait_duration_max);
- }
- unregister_code(kr->key);
- }
-}
-
-// Return a random number between min and max; assumes that the random number
-// generator has already been seeded
-uint32_t get_rand(uint32_t min, uint32_t max) {
- return (rand() % (max - min)) + min;
-}
diff --git a/users/pcewing/key_repeater.h b/users/pcewing/key_repeater.h
deleted file mode 100644
index 30b7f748ff..0000000000
--- a/users/pcewing/key_repeater.h
+++ /dev/null
@@ -1,68 +0,0 @@
-/*
- * Copyright 2022 Paul Ewing
- *
- * 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
-
-// The key_repeater_config_t type holds user configurable options set when
-// allocating a new key repeater.
-struct key_repeater_config_t {
- // The key code that will be repeatedly registered
- int key;
-
- // The minimum amount of time to press down the key when registered
- const uint32_t key_duration_min;
-
- // The maximum amount of time to press down the key when registered
- const uint32_t key_duration_max;
-
- // The minimum amount of time to wait between registering key presses
- const uint32_t wait_duration_min;
-
- // The maximum amount of time to wait between registering key presses
- const uint32_t wait_duration_max;
-};
-
-// The key_repeater_t type represents a key repeater. This is similar to the
-// "Rapid fire" feature on many game controllers. The intention behind this is
-// to periodically send a key code while the user is pressing a key.
-//
-// The duration of the key press as well as the time between key presses is
-// slightly randomized by design. This is to simulate more realistic human
-// behavior. By setting the minimum and maximum duration fields to the same
-// value in the configuration, this randomization can be disabled.
-//
-// This type is intentionally opaque to avoid the user setting internal fields
-// directly. It must be allocated and destroyed using the kr_new() and
-// kr_free() functions respectively.
-struct key_repeater_t;
-
-// Allocate a new key repeater.
-struct key_repeater_t* kr_new(struct key_repeater_config_t* cfg);
-
-// Release an allocated key repeater.
-void kr_free(struct key_repeater_t** kr);
-
-// Enable the key repeater such that it will start periodically registering the
-// configured key code.
-void kr_enable(struct key_repeater_t* kr);
-
-// Disable the key repeater such that it will stop periodically registering the
-// configured key code.
-void kr_disable(struct key_repeater_t* kr);
-
-// Poll the key repeater to execute, tyically called from matrix_scan_user().
-void kr_poll(struct key_repeater_t* kr);
diff --git a/users/pcewing/rules.mk b/users/pcewing/rules.mk
deleted file mode 100644
index 35d0bc3ab7..0000000000
--- a/users/pcewing/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-SRC += key_repeater.c
diff --git a/users/pdl/pdl.c b/users/pdl/pdl.c
deleted file mode 100644
index 1ad2e02c12..0000000000
--- a/users/pdl/pdl.c
+++ /dev/null
@@ -1,216 +0,0 @@
-/*
-Copyright 2018-2021 Daniel Perrett
-
-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 "pdl.h"
-
-// unshifted
-//
-// regardless of current mods, send this character in an unshifted state
-
-__attribute__ ((weak))
-bool unshifted (uint16_t keycode, keyrecord_t *record) {
- uint8_t mods;
-
- if (record->event.pressed) {
- mods = keyboard_report->mods & EITHER_SHIFT;
-
- if (mods) {
- unregister_mods(mods);
- register_code(keycode);
- register_mods(mods);
- } else {
- register_code(keycode);
- }
-
- return false;
- } else {
- return true;
- }
-}
-
-/*
- * update_punctn_coding_layer_state
- *
- * Check NAVIGN and NUMBRS layers. If one is activated, also activate PUNCTN. If both are activated, also activate CODING.
- */
-
-__attribute__ ((weak))
-uint32_t update_punctn_coding_layer_state(uint32_t state) {
- uint32_t maskEither = (1UL << _NAVIGN) | (1UL << _NUMBRS);
- uint32_t maskPunctn = 1UL << _PUNCTN;
- uint32_t maskCoding = 1UL << _CODING;
-
-#ifdef COMBO_PDL
- return (
- (state & maskEither)
- ? (state | maskPunctn) & ~maskCoding // either => punctn
- : (state & ~maskCoding) & ~maskPunctn // neither => neither
- );
-#endif
-
- return (
- (state & maskEither)
- ? (state & maskEither) == maskEither
- ? (state & ~maskPunctn) | maskCoding // both => coding
- : (state | maskPunctn) & ~maskCoding // either => punctn
- : (state & ~maskCoding) & ~maskPunctn // neither => neither
- );
-}
-
-__attribute__ ((weak))
-uint32_t layer_state_set_user(uint32_t state) {
- return update_punctn_coding_layer_state(state);
-}
-
-__attribute__ ((weak))
-bool process_record_user(uint16_t keycode, keyrecord_t *record) {
- switch (keycode) {
- case QK_LAYER_TAP_TOGGLE ... QK_LAYER_TAP_TOGGLE_MAX:
- if (record->event.pressed) {
- // ensure that the toggled layer is switched off by a single tap
- layer_off(keycode & 0xFF);
- }
- break;
- case QWERTY:
- if (record->event.pressed) {
- set_single_persistent_default_layer(_QWERTY);
- }
- return false;
- break;
- case PROXIM:
- if (record->event.pressed) {
- set_single_persistent_default_layer(_PROXIM);
- }
- return false;
- break;
- // KC_LBRC, KC_NUHS, KC_GRV, KC_RBRC [#`]
- // These four keys are unshifted in the UK layout and should be sent as such.
- case KU_LBRC:
- return unshifted(KC_LBRC, record);
- case KU_NUHS:
- return unshifted(KC_NUHS, record);
- case KU_GRV:
- return unshifted(KC_GRV, record);
- case KU_RBRC:
- return unshifted(KC_RBRC, record);
- case KC_ESC:
- if (!record->event.pressed) {
- layer_off(_NUMBRS);
- layer_off(_NAVIGN);
- layer_off(_PUNCTN);
- layer_off(_CODING);
- }
- return true;
- }
- return true;
-}
-
-#ifdef COMBO_PDL
-enum combos {
- VCOMBO_PU,
- VCOMBO_NU,
- VCOMBO_EU,
- VCOMBO_IU,
- VCOMBO_LU,
- VCOMBO_PD,
- VCOMBO_ND,
- VCOMBO_ED,
- VCOMBO_ID,
- VCOMBO_LD,
- HCOMBO_JR,
- HCOMBO_UR,
- HCOMBO_PR,
- HCOMBO_MR,
- HCOMBO_HR,
- XCOMBO_LEFT,
- XCOMBO_RIGHT,
- XCOMBO_UP,
- XCOMBO_DOWN,
- XCOMBO_ENTER,
- XCOMBO_DEL,
- XCOMBO_BKSP,
- XCOMBO_MINS,
- XCOMBO_TAB,
- XCOMBO_UNDO,
- XCOMBO_REDO,
- XCOMBO_PGUP,
- XCOMBO_PGDN
-};
-
-const uint16_t PROGMEM vcombo_pu[] = {KC_J, KC_P, COMBO_END};
-const uint16_t PROGMEM vcombo_nu[] = {KC_Y, KC_N, COMBO_END};
-const uint16_t PROGMEM vcombo_eu[] = {KC_O, KC_E, COMBO_END};
-const uint16_t PROGMEM vcombo_iu[] = {KC_U, KC_I, COMBO_END};
-const uint16_t PROGMEM vcombo_lu[] = {KC_QUOT, KC_L, COMBO_END};
-const uint16_t PROGMEM vcombo_pd[] = {KC_M, KC_P, COMBO_END};
-const uint16_t PROGMEM vcombo_nd[] = {KC_H, KC_N, COMBO_END};
-const uint16_t PROGMEM vcombo_ed[] = {KC_COMM, KC_E, COMBO_END};
-const uint16_t PROGMEM vcombo_id[] = {KC_DOT, KC_I, COMBO_END};
-const uint16_t PROGMEM vcombo_ld[] = {KC_SLSH, KC_L, COMBO_END};
-const uint16_t PROGMEM hcombo_jr[] = {KC_J, KC_Y, COMBO_END};
-const uint16_t PROGMEM hcombo_ur[] = {KC_QUOT, KC_U, COMBO_END};
-const uint16_t PROGMEM hcombo_pr[] = {KC_P, KC_N, COMBO_END};
-const uint16_t PROGMEM hcombo_mr[] = {KC_M, KC_H, COMBO_END};
-const uint16_t PROGMEM hcombo_hr[] = {KC_COMM, KC_H, COMBO_END};
-
-const uint16_t PROGMEM xcombo_left[] = {KC_K, KC_P, COMBO_END};
-const uint16_t PROGMEM xcombo_right[] = {KC_M, KC_G, COMBO_END};
-const uint16_t PROGMEM xcombo_up[] = {KC_B, KC_J, COMBO_END};
-const uint16_t PROGMEM xcombo_down[] = {KC_K, KC_M, COMBO_END};
-const uint16_t PROGMEM xcombo_enter[] = {KC_G, KC_P, COMBO_END};
-const uint16_t PROGMEM xcombo_del[] = {KC_M, KC_B, COMBO_END};
-const uint16_t PROGMEM xcombo_bksp[] = {KC_K, KC_J, COMBO_END};
-const uint16_t PROGMEM xcombo_mins[] = {KC_V, KC_H, COMBO_END};
-const uint16_t PROGMEM xcombo_tab[] = {KC_V, KC_K, COMBO_END};
-const uint16_t PROGMEM xcombo_undo[] = {KC_V, KC_J, COMBO_END};
-const uint16_t PROGMEM xcombo_redo[] = {KC_B, KC_H, COMBO_END};
-const uint16_t PROGMEM xcombo_pgup[] = {KC_G, KC_B, COMBO_END};
-const uint16_t PROGMEM xcombo_pgdn[] = {KC_G, KC_K, COMBO_END};
-
-combo_t key_combos[] = {
- [VCOMBO_PU] = COMBO(vcombo_pu, KC_CIRC),
- [VCOMBO_NU] = COMBO(vcombo_nu, KC_LBRC),
- [VCOMBO_EU] = COMBO(vcombo_eu, LSFT(KC_9)),
- [VCOMBO_IU] = COMBO(vcombo_iu, LSFT(KC_0)),
- [VCOMBO_LU] = COMBO(vcombo_lu, KC_RBRC),
- [VCOMBO_PD] = COMBO(vcombo_pd, LSFT(KC_7)),
- [VCOMBO_ND] = COMBO(vcombo_nd, KC_EQL),
- [VCOMBO_ED] = COMBO(vcombo_ed, KC_MINS),
- [VCOMBO_ID] = COMBO(vcombo_id, LSFT(KC_1)),
- [VCOMBO_LD] = COMBO(vcombo_ld, LSFT(KC_5)),
- [HCOMBO_JR] = COMBO(hcombo_jr, KC_GRV),
- [HCOMBO_UR] = COMBO(hcombo_ur, LSFT(KC_2)),
- [HCOMBO_PR] = COMBO(hcombo_pr, LSFT(KC_8)),
- [HCOMBO_MR] = COMBO(hcombo_mr, KC_NUHS),
- [HCOMBO_HR] = COMBO(hcombo_hr, KC_NUBS),
-
- [XCOMBO_LEFT] = COMBO(xcombo_left, KC_LEFT),
- [XCOMBO_RIGHT] = COMBO(xcombo_right, KC_RGHT),
- [XCOMBO_UP] = COMBO(xcombo_up, KC_UP),
- [XCOMBO_DOWN] = COMBO(xcombo_down, KC_DOWN),
- [XCOMBO_ENTER] = COMBO(xcombo_enter, KC_ENT),
- [XCOMBO_DEL] = COMBO(xcombo_del, KC_DEL),
- [XCOMBO_BKSP] = COMBO(xcombo_bksp, KC_BSPC),
- [XCOMBO_MINS] = COMBO(xcombo_mins, KC_MINS),
- [XCOMBO_TAB] = COMBO(xcombo_tab, KC_TAB),
- [XCOMBO_UNDO] = COMBO(xcombo_undo, LCTL(KC_Y)),
- [XCOMBO_REDO] = COMBO(xcombo_redo, LCTL(KC_Z)),
- [XCOMBO_PGUP] = COMBO(xcombo_pgup, KC_PGUP),
- [XCOMBO_PGDN] = COMBO(xcombo_pgdn, KC_PGDN)
-};
-
-#endif
diff --git a/users/pdl/pdl.h b/users/pdl/pdl.h
deleted file mode 100644
index 4079ba9d33..0000000000
--- a/users/pdl/pdl.h
+++ /dev/null
@@ -1,135 +0,0 @@
-/*
-Copyright 2018-2021 Daniel Perrett
-
-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"
-
-enum userspace_layer_codes {
- QWERTY = SAFE_RANGE,
- PROXIM,
- PUNCTN,
- CODING,
- KU_LBRC,
- KU_NUHS,
- KU_GRV,
- KU_RBRC,
- NEW_SAFE_RANGE
-};
-
-enum userspace_layers {
- _PROXIM,
- _QWERTY,
- _NUMBRS,
- _NAVIGN,
- _PUNCTN,
- _CODING,
- _FUNCTN
-};
-
-#define MY_FESC LT(_FUNCTN, KC_ESC)
-#define MY_SSPC MT(MOD_RSFT, KC_SPC)
-#define MY_SESC MT(MOD_LSFT, KC_ESC)
-#define MY_SBSL MT(MOD_LSFT, KC_NUBS)
-#define MY_CBSL MT(MOD_LCTL, KC_NUBS)
-#define MY_SSCL MT(MOD_RSFT, KC_SCLN)
-#define MY_ASCL MT(MOD_LALT, KC_SCLN)
-#define MY_SQUO MT(MOD_RSFT, KC_QUOT)
-#define MY_CENT MT(MOD_RCTL, KC_ENT)
-#define MY_SENT MT(MOD_RSFT, KC_ENT)
-#define MY_AMNU MT(MOD_RALT, KC_APP)
-
-#define MY_TILD S(KC_NUHS)
-#define MY_SEQL MT(MOD_RALT, KC_PEQL)
-#define MY_CMIN MT(MOD_RALT, KC_MINS)
-#define MY_ASLS MT(MOD_RALT, KC_SLSH)
-
-#define MY_UNDO LCTL(KC_Z)
-#define MY_CUT LCTL(KC_X)
-#define MY_COPY LCTL(KC_C)
-#define MY_PASTE LCTL(KC_V)
-
-#define MY_AF4 LALT(KC_F4)
-#define MY_CF4 LCTL(KC_F4)
-#define MY_CF5 LCTL(KC_F5)
-#define MY_CAD LCTL(LALT(KC_DEL))
-
-#define NUMBRS TT(_NUMBRS)
-#define NAVIGN TT(_NAVIGN)
-#define FUNCTN TT(_FUNCTN)
-
-#define EITHER_SHIFT (MOD_BIT(KC_LSFT) | MOD_BIT(KC_RSFT))
-
-// Cannot redefine this here
-// #define TAPPING_TOGGLE 2
-
-// Taken from drashna:
-// Since our quirky block definitions are basically a list of comma separated
-// arguments, we need a wrapper in order for these definitions to be
-// expanded before being used as arguments to the LAYOUT_xxx macro.
-#if !defined(LAYOUT)
-#if defined(LAYOUT_ortho_4x12)
-#define LAYOUT_wrapper_ortho_4x12(...) LAYOUT_ortho_4x12(__VA_ARGS__)
-#define LAYOUT LAYOUT_ortho_4x12
-#elif defined(KEYMAP)
-#define LAYOUT KEYMAP
-#endif
-#endif
-#define KEYMAP_wrapper(...) LAYOUT(__VA_ARGS__)
-#define LAYOUT_wrapper(...) LAYOUT(__VA_ARGS__)
-
-#define ___________________________________________ _______, _______, _______, _______, _______
-
-#define _________________QWERTY_L1_________________ KC_Q, KC_W, KC_E, KC_R, KC_T
-#define _________________QWERTY_L2_________________ KC_A, KC_S, KC_D, KC_F, KC_G
-#define _________________QWERTY_L3_________________ KC_Z, KC_X, KC_C, KC_V, KC_B
-
-#define _________________QWERTY_R1_________________ KC_Y, KC_U, KC_I, KC_O, KC_P
-#define _________________QWERTY_R2_________________ KC_H, KC_J, KC_K, KC_L, KC_SCLN
-#define _________________QWERTY_R3_________________ KC_N, KC_M, KC_COMM, KC_DOT, KC_SLASH
-
-#define _________________PROXIM_L1_________________ KC_Q, KC_W, KC_F, KC_R, KC_B
-#define _________________PROXIM_L2_________________ KC_A, KC_S, KC_D, KC_T, KC_G
-#define _________________PROXIM_L3_________________ KC_Z, KC_X, KC_C, KC_V, KC_K
-
-#define _________________PROXIM_R1_________________ KC_J, KC_Y, KC_O, KC_U, KC_QUOT
-#define _________________PROXIM_R2_________________ KC_P, KC_N, KC_E, KC_I, KC_L
-#define _________________PROXIM_R3_________________ KC_M, KC_H, KC_COMM, KC_DOT, KC_SLASH
-
-#define _________________PUNCTN_R1_________________ KC_NUBS, KC_NUHS, KC_LPRN, KC_RPRN, _______
-#define _________________PUNCTN_R2_________________ KC_GRV, KC_EQL, KC_MINS, KC_PLUS, KC_SLSH
-#define _________________PUNCTN_R3_________________ KC_LBRC, KC_RBRC, _______, _______, _______
-
-#define _________________CODING_R1_________________ KU_GRV, KC_PERC, KC_DLR, KC_AT, _______
-#define _________________CODING_R2_________________ KC_CIRC, KC_UNDS, MY_TILD, KC_AMPR, KU_NUHS
-#define _________________CODING_R3_________________ KU_LBRC, KU_RBRC, _______, _______, _______
-
-#define _________________NAVIGN_L1_________________ KC_DEL, KC_PGUP, KC_UP, KC_PGDN, KC_BSPC
-#define _________________NAVIGN_L2_________________ KC_HOME, KC_LEFT, KC_DOWN, KC_RGHT, KC_END
-#define _________________NAVIGN_L3_________________ MY_UNDO, MY_CUT, MY_COPY, MY_PASTE, KC_ENT
-
-#define _________________NUMBRS_L1_________________ KC_1, KC_2, KC_3, KC_4, KC_5
-#define _________________NUMBRS_L2_________________ KC_6, KC_7, KC_8, KC_9, KC_0
-#define _________________NUMBRS_L3_________________ KC_UNDO, KC_MINS, KC_EQL, KC_PDOT, KC_ENT
-
-#define _________________FUNCTN_L1_________________ KC_ESC, KC_F1, KC_F2, KC_F3, MY_AF4
-#define _________________FUNCTN_L2_________________ KC_APP, KC_F4, KC_F5, KC_F6, MY_CF5
-#define _________________FUNCTN_L3_________________ QK_BOOT, KC_F7, KC_F8, KC_F9, MY_CF4
-
-#define _________________FUNCTN_R1_________________ KC_VOLU, KC_F10, KC_F11, KC_F12, KC_INS
-#define _________________FUNCTN_R2_________________ KC_VOLD, KC_MPRV, KC_MSTP, KC_MPLY, KC_MNXT
-#define _________________FUNCTN_R3_________________ KC_MUTE, KC_PAUS, QWERTY, PROXIM, DB_TOGG
diff --git a/users/pdl/rules.mk b/users/pdl/rules.mk
deleted file mode 100644
index ff681299e4..0000000000
--- a/users/pdl/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-COMBO_ENABLE = yes \ No newline at end of file
diff --git a/users/peej/layout.h b/users/peej/layout.h
deleted file mode 100644
index 4340ed4a0b..0000000000
--- a/users/peej/layout.h
+++ /dev/null
@@ -1,150 +0,0 @@
-/* Copyright 2020 Paul James
- *
- * 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/>.
- */
-
-/* Base layer
- * ,-----------------------------------------. ,-------------. ,-----------------------------------------.
- * | Esc | 1 | 2 | 3 | 4 | 5 | | - | = | | 6 | 7 | 8 | 9 | 0 | Del |
- * |------+------+------+------+------+------| |------+------| |------+------+------+------+------+------|
- * | Tab | Q | W | E | R | T | | [ | ] | | Y | U | I | O | P | Bksp |
- * |------+------+------+------+------+------| |------+------| |------+------+------+------+------+------|
- * | Esc | A | S | D | F | G | | { | } | | H | J | K | L | ; | ' |
- * |------+------+------+------+------+------| |------+------| |------+------+------+------+------+------|
- * | Shft | Z | X | C | V | B | | ( | ) | | N | M | , | . | / | Entr |
- * |------+------+------+------+------+------| |------+------| |------+------+------+------+------+------|
- * | Ctrl | Symb | Alt | Cmd | Symb | Spce | | | | | Spce | Fn | Left | Down | Up | Rght |
- * `-----------------------------------------' `-------------' `-----------------------------------------'
- */
-#define BASE_ROW_1_L KC_1, KC_2, KC_3, KC_4, KC_5
-#define BASE_ROW_2_L KC_Q, KC_W, KC_E, KC_R, KC_T
-#define BASE_ROW_3_L KC_A, KC_S, KC_D, FN_F, KC_G
-#define BASE_ROW_4_L KC_Z, KC_X, KC_C, KC_V, KC_B
-#define BASE_ROW_5_L KC_LCTL, SYMBOL, KC_LALT, KC_LGUI, SYMBOL, KC_SPC
-
-#define BASE_ROW_1_R KC_6, KC_7, KC_8, KC_9, KC_0
-#define BASE_ROW_2_R KC_Y, KC_U, KC_I, KC_O, KC_P
-#define BASE_ROW_3_R KC_H, SY_J, KC_K, KC_L, KC_SCLN
-#ifdef ARROW_LAYOUT
- #define BASE_ROW_4_R KC_N, KC_M, KC_COMM, KC_DOT, KC_UP
- #define BASE_ROW_5_R KC_SPC, FN_SPC, KC_SLSH, KC_LEFT, KC_DOWN, KC_RGHT
-#else
- #define BASE_ROW_4_R KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH
- #define BASE_ROW_5_R KC_SPC, FUNCT, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT
-#endif
-
-#define BASE_ROW_1_M KC_MINS, KC_EQL
-#define BASE_ROW_2_M KC_LBRC, KC_RBRC
-#define BASE_ROW_3_M KC_LCBR, KC_RCBR
-#define BASE_ROW_4_M KC_LPRN, KC_RPRN
-
-#define BASE_ROW_1 QK_GESC, BASE_ROW_1_L, BASE_ROW_1_R, KC_DEL
-#define BASE_ROW_2 KC_TAB, BASE_ROW_2_L, BASE_ROW_2_R, KC_BSPC
-#define BASE_ROW_3 QK_GESC, BASE_ROW_3_L, BASE_ROW_3_R, KC_QUOT
-#define BASE_ROW_4 KC_LSFT, BASE_ROW_4_L, BASE_ROW_4_R, KC_ENTER
-#define BASE_ROW_5 BASE_ROW_5_L, BASE_ROW_5_R
-
-
-/* Function layer
- * ,-----------------------------------------. ,-----------------------------------------.
- * | | F1 | F2 | F3 | F4 | F5 | | F6 | F7 | F8 | F9 | F10 | Lock |
- * |------+------+------+------+------+------| |------+------+------+------+------+------|
- * | Adju | F1 | F2 | F3 | F4 | F5 | | | Home | Up | PgUp | \ | |
- * |------+------+------+------+------+------| |------+------+------+------+------+------|
- * | Shft | Ctrl | Alt | Cmd | | | | | Left | Down | Rght | | ` |
- * |------+------+------+------+------+------| |------+------+------+------+------+------|
- * | | F6 | F7 | F8 | F9 | F10 | | | End | Shft | PgDn | \ | |
- * |------+------+------+------+------+------| |------+------+------+------+------+------|
- * | | | | | Adju | BkSp | | | | Home | PgDn | PgUp | End |
- * `-----------------------------------------' `-----------------------------------------'
- */
-#define FUNCTION_ROW_1_L KC_F1, KC_F2, KC_F3, KC_F4, KC_F5
-#define FUNCTION_ROW_2_L KC_F1, KC_F2, KC_F3, KC_F4, KC_F5
-#define FUNCTION_ROW_3_L KC_LCTL, KC_LALT, KC_LGUI, _______, _______
-#define FUNCTION_ROW_4_L KC_F6, KC_F7, KC_F8, KC_F9, KC_F10
-#define FUNCTION_ROW_5_L _______, _______, _______, _______, ADJUST, KC_BSPC
-
-#define FUNCTION_ROW_1_R KC_F6, KC_F7, KC_F8, KC_F9, KC_F10
-#define FUNCTION_ROW_2_R _______, KC_HOME, KC_UP, KC_PGUP, KC_BSLS
-#define FUNCTION_ROW_3_R _______, KC_LEFT, KC_DOWN, KC_RGHT, _______
-#ifdef ARROW_LAYOUT
- #define FUNCTION_ROW_4_R _______, KC_END, KC_LSFT, KC_PGDN, KC_PGUP
- #define FUNCTION_ROW_5_R _______, _______, KC_BSLS, KC_HOME, KC_PGUP, KC_END
-#else
- #define FUNCTION_ROW_4_R _______, KC_END, KC_LSFT, KC_PGDN, KC_BSLS
- #define FUNCTION_ROW_5_R _______, _______, KC_HOME, KC_PGDN, KC_PGUP, KC_END
-#endif
-
-#define FUNCTION_ROW_1 _______, FUNCTION_ROW_1_L, FUNCTION_ROW_1_R, LOCK
-#define FUNCTION_ROW_2 ADJUST, FUNCTION_ROW_2_L, FUNCTION_ROW_2_R, _______
-#define FUNCTION_ROW_3 KC_LSFT, FUNCTION_ROW_3_L, FUNCTION_ROW_3_R, KC_GRV
-#define FUNCTION_ROW_4 _______, FUNCTION_ROW_4_L, FUNCTION_ROW_4_R, _______
-#define FUNCTION_ROW_5 FUNCTION_ROW_5_L, FUNCTION_ROW_5_R
-
-
-/* Symbol layer
- * ,-----------------------------------------. ,-----------------------------------------.
- * | | F1 | F2 | F3 | F4 | F5 | | F6 | F7 | F8 | F9 | F10 | Lock |
- * |------+------+------+------+------+------| |------+------+------+------+------+------|
- * | | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | |
- * |------+------+------+------+------+------| |------+------+------+------+------+------|
- * | Shft | _ | + | ( | { | [ | | ] | | Shft | { | } | ` |
- * |------+------+------+------+------+------| |------+------+------+------+------+------|
- * | | - | = | => | -> | - | | = | == | === | [ | ] | |
- * |------+------+------+------+------+------| |------+------+------+------+------+------|
- * | | | | | | | | Del | Adju | Home | PgDn | PgUp | End |
- * `-----------------------------------------' `-----------------------------------------'
- */
-#define SYMBOL_ROW_2_L KC_1, KC_2, KC_3, KC_4, KC_5
-#define SYMBOL_ROW_3_L KC_UNDS, KC_PLUS, KC_LPRN, KC_LCBR, KC_LBRC
-#define SYMBOL_ROW_4_L KC_MINS, KC_EQL, MC_DARR, MC_ARR, KC_MINS
-#define SYMBOL_ROW_5_L _______, _______, _______, _______, _______, _______
-
-#define SYMBOL_ROW_2_R KC_6, KC_7, KC_8, KC_9, KC_0
-#define SYMBOL_ROW_3_R KC_RBRC, _______, KC_RSFT, KC_LCBR, KC_RCBR
-#ifdef ARROW_LAYOUT
- #define SYMBOL_ROW_4_R KC_EQL, MC_DEQL, MC_TEQL, KC_LBRC, KC_PGUP
- #define SYMBOL_ROW_5_R KC_DEL, ADJUST, KC_BSLS, KC_HOME, KC_PGUP, KC_END
-#else
- #define SYMBOL_ROW_4_R KC_EQL, MC_DEQL, MC_TEQL, KC_LBRC, KC_RBRC
- #define SYMBOL_ROW_5_R KC_DEL, ADJUST, KC_HOME, KC_PGDN, KC_PGUP, KC_END
-#endif
-
-#define SYMBOL_ROW_1 _______, FUNCTION_ROW_1_L, FUNCTION_ROW_1_R, LOCK
-#define SYMBOL_ROW_2 _______, SYMBOL_ROW_2_L, SYMBOL_ROW_2_R, _______
-#define SYMBOL_ROW_3 KC_LSFT, SYMBOL_ROW_3_L, SYMBOL_ROW_3_R, KC_GRV
-#define SYMBOL_ROW_4 _______, SYMBOL_ROW_4_L, SYMBOL_ROW_4_R, _______
-#define SYMBOL_ROW_5 SYMBOL_ROW_5_L, SYMBOL_ROW_5_R
-
-
-/* Adjust layer */
-#define ADJUST_ROW_2_L KC_RESET, XXXXXXX, XXXXXXX, BL_STEP, BL_TOGG
-#define ADJUST_ROW_2_R RGB_TOG, RGB_VAI, RGB_SAI, RGB_HUI, XXXXXXX
-
-#define ADJUST_ROW_3_L XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX
-#define ADJUST_ROW_3_R RGB_MOD, RGB_VAD, RGB_SAD, RGB_HUD, XXXXXXX
-
-#define ADJUST_ROW_4_L AG_NORM, AG_SWAP, XXXXXXX, XXXXXXX, XXXXXXX
-#define ADJUST_ROW_4_R RGB_M_P, RGB_M_B, RGB_M_R, RGB_M_G, RGB_M_T
-
-#define ADJUST_ROW_5_L XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, XXXXXXX
-#define ADJUST_ROW_5_R XXXXXXX, _______, KC_MPLY, KC_VOLD, KC_VOLU, KC_MUTE
-
-#define ADJUST_ROW_1 LOCK, ADJUST_ROW_2_L, ADJUST_ROW_2_R, LOCK
-#define ADJUST_ROW_2 _______, ADJUST_ROW_2_L, ADJUST_ROW_2_R, LOCK
-#define ADJUST_ROW_3 XXXXXXX, ADJUST_ROW_3_L, ADJUST_ROW_3_R, XXXXXXX
-#define ADJUST_ROW_4 XXXXXXX, ADJUST_ROW_4_L, ADJUST_ROW_4_R, XXXXXXX
-#define ADJUST_ROW_5 ADJUST_ROW_5_L, ADJUST_ROW_5_R
-
-#define EMPTY_ROW XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX
diff --git a/users/peej/peej.c b/users/peej/peej.c
deleted file mode 100644
index bd9264ea60..0000000000
--- a/users/peej/peej.c
+++ /dev/null
@@ -1,68 +0,0 @@
-/* Copyright 2020 Paul James
- *
- * 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 "peej.h"
-
-bool process_record_user(uint16_t keycode, keyrecord_t *record) {
- bool is_shifted = get_mods() & MOD_LSFT;
-
- if (record->event.pressed) {
- switch(keycode) {
- case MC_ARR:
- if (is_shifted) {
- unregister_mods(MOD_LSFT);
- SEND_STRING("=>");
- register_mods(MOD_LSFT);
- } else {
- SEND_STRING("->");
- }
- break;
- case MC_DARR:
- unregister_mods(MOD_LSFT);
- SEND_STRING("=>");
- if (is_shifted) register_mods(MOD_LSFT);
- break;
- case MC_DEQL:
- if (is_shifted) {
- unregister_mods(MOD_LSFT);
- SEND_STRING("!=");
- register_mods(MOD_LSFT);
- } else {
- SEND_STRING("==");
- }
- break;
- case MC_TEQL:
- if (is_shifted) {
- unregister_mods(MOD_LSFT);
- SEND_STRING("!==");
- register_mods(MOD_LSFT);
- } else {
- SEND_STRING("===");
- }
- break;
- case KC_RESET:
- #ifdef RGBLIGHT_ENABLE
- rgblight_enable_noeeprom();
- rgblight_mode_noeeprom(1);
- rgblight_setrgb(RGB_RED);
- #endif
- reset_keyboard();
- break;
- }
- }
-
- return true;
-};
diff --git a/users/peej/peej.h b/users/peej/peej.h
deleted file mode 100644
index b9ec571e57..0000000000
--- a/users/peej/peej.h
+++ /dev/null
@@ -1,78 +0,0 @@
-/* Copyright 2020 Paul James
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-#pragma once
-#include QMK_KEYBOARD_H
-
-#include "eeconfig.h"
-
-enum custom_layers {
- _BASE = 0,
- _SYMBOL,
- _FUNCTION,
- _ADJUST,
-};
-
-// Fillers to make layering more clear
-#define ______2 KC_TRNS, KC_TRNS
-#define ______3 KC_TRNS, KC_TRNS, KC_TRNS
-#define ______4 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
-#define ______5 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
-
-enum custom_keycodes {
- MC_ARR = SAFE_RANGE,
- MC_DARR,
- MC_DEQL,
- MC_TEQL,
- KC_RESET
-};
-
-#define SYMBOL MO(_SYMBOL)
-#define FUNCT MO(_FUNCTION)
-#define ADJUST MO(_ADJUST)
-
-#define FN_SPC LT(_FUNCTION, KC_SPC)
-#define SY_SPC LT(_SYMBOL, KC_SPC)
-#define FN_F LT(_FUNCTION, KC_F)
-#define SY_J LT(_SYMBOL, KC_J)
-
-#define CTLESC LCTL_T(KC_ESC)
-#define SFTENT RSFT_T(KC_ENT)
-#define LOCK LCTL(LGUI(KC_Q))
-#define BACK LGUI(KC_LBRC)
-#define FORWARD LGUI(KC_RBRC)
-#define NXTFUNC LCTL(KC_DOWN)
-#define PRVFUNC LCTL(KC_UP)
-#define TOP LGUI(KC_UP)
-#define BOTTOM LGUI(KC_DOWN)
-
-#ifdef LAYOUT_ortho_4x12
- #define LAYOUT_PEEJ(...) LAYOUT_ortho_4x12(__VA_ARGS__)
-#endif
-
-#ifdef LAYOUT_ortho_5x12
- #define LAYOUT_PEEJ(...) LAYOUT_ortho_5x12(__VA_ARGS__)
-#endif
-
-#ifdef LAYOUT_ortho_hhkb
- #define LAYOUT_PEEJ_hhkb(...) LAYOUT_ortho_hhkb(__VA_ARGS__)
-#endif
-
-#ifdef LAYOUT_ortho_7u
- #define LAYOUT_PEEJ_7u(...) LAYOUT_ortho_7u(__VA_ARGS__)
-#endif
-
-#include "layout.h"
diff --git a/users/peej/rules.mk b/users/peej/rules.mk
deleted file mode 100644
index 9c1105e722..0000000000
--- a/users/peej/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-SRC += peej.c
diff --git a/users/peterfalken/config.h b/users/peterfalken/config.h
deleted file mode 100644
index 1342705550..0000000000
--- a/users/peterfalken/config.h
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright 2023 Peter.Falken (@PeterFalken)
-// SPDX-License-Identifier: GPL-2.0-or-later
-
-#pragma once
-
-// Fix warning - "Attached USB accessory uses too much power."
-#ifndef USB_MAX_POWER_CONSUMPTION
- #define USB_MAX_POWER_CONSUMPTION 100
-#endif
-
-// Fix unresponsiveness on wake from sleep
-#ifndef USB_SUSPEND_WAKEUP_DELAY
- #define USB_SUSPEND_WAKEUP_DELAY 200
-#endif
-
-// Space optimizations
-#define LAYER_STATE_8BIT
-#undef LOCKING_SUPPORT_ENABLE
-#undef LOCKING_RESYNC_ENABLE
-
-// Disable animations for RGB underglow & key matrix
-#define DISABLE_RGB_LIGHT_ANIMATIONS
-#define DISABLE_RGB_MATRIX_ANIMATIONS
diff --git a/users/peterfalken/peterfalken.c b/users/peterfalken/peterfalken.c
deleted file mode 100644
index dcec1d650b..0000000000
--- a/users/peterfalken/peterfalken.c
+++ /dev/null
@@ -1,20 +0,0 @@
-// Copyright 2023 Peter.Falken (@PeterFalken)
-// SPDX-License-Identifier: GPL-2.0-or-later
-
-#include "peterfalken.h"
-
-// Magic keycodes - overwrite placeholder functions
-uint16_t keycode_config(uint16_t keycode) {
- return keycode;
-}
-
-uint8_t mod_config(uint8_t mod) {
- return mod;
-}
-
-// Switch layer
-#ifndef CUSTOM_LAYER_STATE
-layer_state_t layer_state_set_user(layer_state_t state) {
- return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST);
-}
-#endif // CUSTOM_LAYER_STATE
diff --git a/users/peterfalken/peterfalken.h b/users/peterfalken/peterfalken.h
deleted file mode 100644
index 1f978c49e8..0000000000
--- a/users/peterfalken/peterfalken.h
+++ /dev/null
@@ -1,27 +0,0 @@
-// Copyright 2023 Peter.Falken (@PeterFalken)
-// SPDX-License-Identifier: GPL-2.0-or-later
-
-#pragma once
-#include QMK_KEYBOARD_H
-
-#ifndef CUSTOM_KEYMAP_LAYERS
- enum default_layers {
- _QWERTY,
- _LOWER,
- _RAISE,
- _ADJUST
- };
-#endif // CUSTOM_KEYMAP_LAYERS
-
-// Custom definitions for keys
-#define CK_CW CW_TOGG // CAPS_WORD for Caps Word feature
-#define CK_SLP KC_SLEP // System Sleep
-#define CK_M1 C(KC_DOWN) // Mission Control - One apps
-#define CK_CO KC_COPY // COPY = CMD + C
-#define CK_CU KC_CUT // CUT = CMD + X
-#define CK_MV LAG(KC_V) // MOVE = CMD + OPT + V
-#define CK_PA KC_PASTE // PASTE = CMD + V
-
-// Layer activation
-#define LOWER MO(_LOWER)
-#define RAISE MO(_RAISE)
diff --git a/users/peterfalken/readme.md b/users/peterfalken/readme.md
deleted file mode 100644
index f64d682a51..0000000000
--- a/users/peterfalken/readme.md
+++ /dev/null
@@ -1,14 +0,0 @@
-Copyright 2023 LEG <ucaboys@gmail.com> @PeterFalken
-
-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/>.
diff --git a/users/peterfalken/rules.mk b/users/peterfalken/rules.mk
deleted file mode 100644
index dfa5d574aa..0000000000
--- a/users/peterfalken/rules.mk
+++ /dev/null
@@ -1,18 +0,0 @@
-# Setup QMK features
-BOOTMAGIC_ENABLE = yes # Enable QMK_Boot on plug-in
-CAPS_WORD_ENABLE = yes # Enable Caps Word
-COMMAND_ENABLE = no # Won't use for now
-CONSOLE_ENABLE = no # Won't use for now
-DIP_SWITCH_ENABLE = no # Won't use for now
-GRAVE_ESC_ENABLE = no # Won't use for now
-MAGIC_ENABLE = no # Won't use for now
-MOUSEKEY_ENABLE = no # Won't use for now
-RAW_ENABLE = no # Disable raw HID commands
-RGBLIGHT_ENABLE = no # Disable RGB underglow
-SPACE_CADET_ENABLE = no # Free up space
-
-# Enable Link Time Optimizations
-LTO_ENABLE = yes
-
-# Include userspace files
-SRC += $(USER_PATH)/peterfalken.c
diff --git a/users/pvinis/config.h b/users/pvinis/config.h
deleted file mode 100644
index 01bb47dde1..0000000000
--- a/users/pvinis/config.h
+++ /dev/null
@@ -1,7 +0,0 @@
-#pragma once
-
-// #define TAPPING_TERM 150
-
-#if defined(MOUSE_KEYS)
-# define MOUSEKEY_WHEEL_TIME_TO_MAX 1
-#endif
diff --git a/users/pvinis/pvinis.c b/users/pvinis/pvinis.c
deleted file mode 100644
index f3263f9bd5..0000000000
--- a/users/pvinis/pvinis.c
+++ /dev/null
@@ -1,98 +0,0 @@
-#include "pvinis.h"
-#include "version.h"
-
-#ifdef AUDIO_ENABLE
-# include "audio.h"
-
-float song_sonic_ring[][2] = SONG(SONIC_RING);
-float song_coin_sound[][2] = SONG(COIN_SOUND);
-float song_test[][2] = SONG(QWERTY_SOUND);
-#endif
-
-// SYMBOL + SYSCTL = KBCTL
-layer_state_t layer_state_set_user(layer_state_t state) {
- uint32_t intermediate_state = update_tri_layer_state(state, LR_SYMBOL, LR_SYSCTL, LR_KBCTL);
- intermediate_state = layer_state_set_user_keymap(intermediate_state);
- return intermediate_state;
-}
-
-// functions for the individual keymaps to implement if they need something extra
-__attribute__((weak)) bool process_record_keymap(uint16_t keycode, keyrecord_t *record) { return true; }
-
-// Handle my own keycodes.
-bool process_record_user(uint16_t keycode, keyrecord_t *record) {
- switch (keycode) {
- case PV_VRSN:
- if (record->event.pressed) {
- SEND_STRING(QMK_KEYBOARD "/" QMK_KEYMAP " @ " QMK_VERSION);
- }
- return false;
-
- case PV_MAKE:
- // make ergodox_ez:pvinis:teensy
- if (!record->event.pressed) {
- SEND_STRING("make " QMK_KEYBOARD ":" QMK_KEYMAP
-#if (defined(BOOTLOADER_DFU) || defined(BOOTLOADER_LUFA_DFU) || defined(BOOTLOADER_QMK_DFU))
- ":dfu"
-#elif defined(BOOTLOADER_HALFKAY)
- ":teensy"
-#elif defined(BOOTLOADER_CATERINA)
- ":avrdude"
-#endif
- SS_TAP(X_ENTER));
- }
- return false;
-
- case PV_FLSH:
- reset_keyboard();
- return false;
-
- case PV_SSNC:
- if (record->event.pressed) {
-#ifdef AUDIO_ENABLE
- PLAY_SONG(song_sonic_ring);
-#endif
- }
- return false;
-
- case PV_SCIN:
- if (record->event.pressed) {
-#ifdef AUDIO_ENABLE
- PLAY_SONG(song_coin_sound);
-#endif
- }
- return false;
-
- case PV_TEST:
- if (record->event.pressed) {
-#ifdef AUDIO_ENABLE
- PLAY_SONG(song_test);
-#endif
- }
- return false;
- }
- return process_record_keymap(keycode, record);
-}
-
-#ifdef TAP_DANCE_ENABLE
-tap_dance_action_t tap_dance_actions[] = {};
-#endif
-
-void keyboard_post_init_rgb_light(void) {
- rgblight_sethsv(HSV_GOLD);
- rgblight_mode(RGBLIGHT_MODE_BREATHING);
- // rgblight_mode(RGBLIGHT_MODE_KNIGHT+1);
-}
-
-// Init stuff.
-void keyboard_post_init_user(void) {
-#if defined(RGBLIGHT_ENABLE)
- keyboard_post_init_rgb_light();
-#endif
- keyboard_post_init_user_keymap();
-}
-
-// Default functions.
-__attribute__((weak)) void keyboard_post_init_user_keymap(void) {}
-
-__attribute__((weak)) layer_state_t layer_state_set_user_keymap(layer_state_t state) { return state; }
diff --git a/users/pvinis/pvinis.h b/users/pvinis/pvinis.h
deleted file mode 100644
index 5a11a6cb6f..0000000000
--- a/users/pvinis/pvinis.h
+++ /dev/null
@@ -1,172 +0,0 @@
-#pragma once
-
-#include "quantum.h"
-
-// My own keycodes.
-enum userspace_custom_keycodes {
- PV_ = SAFE_RANGE,
-
- PV_VRSN, // Print firmware version.
- PV_MAKE, // Print the make command of the keyboard.
- PV_FLSH, // Reset keyboard.
-
- PV_SSNC, // Play Sonic Ring.
- PV_SCIN, // Play Coin Sound.
-
- PV_TEST, // For quick testing purposes.
-
- PV_SAFE_RANGE, // Used for extra keycodes in individual keymaps.
-};
-
-enum tap_dance_indexes {
- // tap dance
- TD_FLSH, // flash keyboard (as if the physical flash key was pressed)
-};
-
-#define ALLM(kc) LCAG(kc) // Easier name for left ctrl-alt-gui.
-#define PV_ESCC CTL_T(KC_ESC) // esc on tap, ctrl on hold.
-#define PV_LOCK LCTL(LSFT(KC_PWR)) // Lock computer.
-#define TD_3FLS TD(TD_FLSH) // Tap dance 3 times for flash.
-
-// Layers.
-enum {
- LR_BASE = 0, // used for basic keys like the surrounding ctrl, cmd, etc
-
- LR_QWERTY,
- LR_CARPALX,
- LR_GAME1, // game layout (space on the left thumb, no modifiers, etc)
- LR_GAME2, // game layout (space on the left thumb, no modifiers, etc, arrows)
-
- LR_SYMBOL, // symbol input (!, @, #, etc)
- LR_SYSCTL, // system control (music, volume, keyboard flash, etc)
- LR_KBCTL, // keyboard control (version, make, flash, etc)
-
-};
-
-// Layer switchers.
-#define BASE TO(LR_BASE)
-#define QWERTY TO(LR_QWERTY)
-#define CARPALX TO(LR_CARPALX)
-#define GAME1 TO(LR_GAME1)
-#define GAME2 TO(LR_GAME2)
-
-#define SYMBOL MO(LR_SYMBOL)
-#define SYSCTL MO(LR_SYSCTL)
-#define KBCTL MO(LR_KBCTL)
-
-// Layout parts for easy reuse between keyboard keymaps.
-
-// Transparent.
-// ┌─────┬─────┬─────┬─────┬─────┐
-// │ │ │ │ │ │
-// └─────┴─────┴─────┴─────┴─────┘
-#define ___________________________________________ _______, _______, _______, _______, _______
-
-// Numbers.
-// ┌─────┬─────┬─────┬─────┬─────┐ ┌─────┬─────┬─────┬─────┬─────┐
-// │ 1 │ 2 │ 3 │ 4 │ 5 │ │ 6 │ 7 │ 8 │ 9 │ 0 │
-// └─────┴─────┴─────┴─────┴─────┘ └─────┴─────┴─────┴─────┴─────┘
-#define ________________NUMBERS_L__________________ KC_1, KC_2, KC_3, KC_4, KC_5
-#define ________________NUMBERS_R__________________ KC_6, KC_7, KC_8, KC_9, KC_0
-
-// F keys.
-// ┌─────┬─────┬─────┬─────┬─────┐ ┌─────┬─────┬─────┬─────┬─────┐
-// │ F1 │ F2 │ F3 │ F4 │ F5 │ │ F6 │ F7 │ F8 │ F9 │ F10 │
-// └─────┴─────┴─────┴─────┴─────┘ └─────┴─────┴─────┴─────┴─────┘
-#define ______________________F_L__________________ KC_F1, KC_F2, KC_F3, KC_F4, KC_F5
-#define ______________________F_R__________________ KC_F6, KC_F7, KC_F8, KC_F9, KC_F10
-
-// QWERTY.
-// ┌─────┬─────┬─────┬─────┬─────┐ ┌─────┬─────┬─────┬─────┬─────┐
-// │ Q │ W │ E │ R │ T │ │ Y │ U │ I │ O │ P │
-// ├─────┼─────┼─────╆━━━━━╅─────┤ ├─────╆━━━━━╅─────┼─────┼─────┤
-// │ A │ S │ D ┃ F ┃ G │ │ H ┃ J ┃ K │ L │ ; │
-// ├─────┼─────┼─────╄━━━━━╃─────┤ ├─────╄━━━━━╃─────┼─────┼─────┤
-// │ Z │ X │ C │ V │ B │ │ N │ M │ , │ . │ / │
-// └─────┴─────┴─────┴─────┴─────┘ └─────┴─────┴─────┴─────┴─────┘
-#define _________________QWERTY_L1_________________ KC_Q, KC_W, KC_E, KC_R, KC_T
-#define _________________QWERTY_L2_________________ KC_A, KC_S, KC_D, KC_F, KC_G
-#define _________________QWERTY_L3_________________ KC_Z, KC_X, KC_C, KC_V, KC_B
-
-#define _________________QWERTY_R1_________________ KC_Y, KC_U, KC_I, KC_O, KC_P
-#define _________________QWERTY_R2_________________ KC_H, KC_J, KC_K, KC_L, KC_SCLN
-#define _________________QWERTY_R3_________________ KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH
-
-// QWERTY with mods.
-// ┌───────┬───────┬───────┲━━━━━━━┱───────┐ ┌───────┲━━━━━━━┱───────┬───────┬───────┐
-// │ ctl/A │ sft/S │ cmd/D ┃ opt/F ┃ G │ │ H ┃ opt/J ┃ cmd/K │ sft/L │ ctl/; │
-// └───────┴───────┴───────┺━━━━━━━┹───────┘ └───────┺━━━━━━━┹───────┴───────┴───────┘
-// #define _____________MOD_QWERTY_L2_________________ CTL_T(KC_A), SFT_T(KC_S), GUI_T(KC_D), ALT_T(KC_F), KC_G
-#define _____________MOD_QWERTY_L2_________________ KC_A, KC_S, KC_D, ALT_T(KC_F), KC_G
-#define _____________MOD_QWERTY_R2_________________ KC_H, ALT_T(KC_J), GUI_T(KC_K), SFT_T(KC_L), CTL_T(KC_SCLN)
-
-// ,-----+-----+-----+-----+-----, ,-----+-----+-----+-----+-----,
-// | Q | G | M | L | W | | Y | F | I | O | P |
-// ,-----+-----+-----x-----x-----, ,-----x-----x-----+-----+-----,
-// | D | S | T | N | R | | I | A | K | L | ; |
-// ,-----+-----+-----x-----x-----, ,-----x-----x-----+-----+-----,
-// | Z | X | C | V | J | | K | P | , | . | / |
-// ,-----+-----+-----+-----+-----, ,-----+-----+-----+-----+-----,
-#define ________________CARPALX_L1_________________ KC_Q, KC_G, KC_M, KC_L, KC_W
-#define ________________CARPALX_L2_________________ KC_D, KC_S, KC_T, KC_N, KC_R
-#define ________________CARPALX_L3_________________ KC_Z, KC_X, KC_C, KC_V, KC_J
-
-#define ________________CARPALX_R1_________________ KC_Y, KC_F, KC_U, KC_B, KC_SCLN
-#define ________________CARPALX_R2_________________ KC_I, KC_A, KC_E, KC_O, KC_H
-#define ________________CARPALX_R3_________________ KC_K, KC_P, KC_COMM, KC_DOT, KC_SLSH
-
-// ,-----+-----+-----+-----+-----, ,-----+-----+-----+-----+-----,
-// | ! | @ | { | } | _ | | \ | | ` | | |
-// ,-----+-----+-----x-----x-----, ,-----x-----x-----+-----+-----,
-// | # | $ | ( | ) | - | | = | & | ' | " | | |
-// ,-----+-----+-----x-----x-----, ,-----x-----x-----+-----+-----,
-// | % | ^ | [ | ] | + | | * | ~ | < | > | / |
-// ,-----+-----+-----+-----+-----, ,-----+-----+-----+-----+-----,
-#define _________________SYMBOL_L1_________________ KC_EXLM, KC_AT, KC_LCBR, KC_RCBR, KC_UNDS
-#define _________________SYMBOL_L2_________________ KC_HASH, KC_DLR, KC_LPRN, KC_RPRN, KC_MINS
-#define _________________SYMBOL_L3_________________ KC_PERC, KC_CIRC, KC_LBRC, KC_RBRC, KC_PLUS
-
-#define _________________SYMBOL_R1_________________ KC_BSLS, _______, KC_GRV, _______, _______
-#define _________________SYMBOL_R2_________________ KC_EQL, KC_AMPR, KC_QUOT, KC_DQUO, KC_PIPE
-#define _________________SYMBOL_R3_________________ KC_ASTR, KC_TILD, KC_LABK, KC_RABK, KC_SLSH
-
-// System Control.
-// vol ↓ ctl ↓
-// ┌─────┬─────┬─────┬─────┬─────┐ ┌─────┬─────┬─────┬─────┬─────┐
-// │ │ │ │ │ │ │MUTE │HOME │ ↑ │ END │LOCK │
-// ├─────┼─────┼─────╆━━━━━╅─────┤ ├─────╆━━━━━╅─────┼─────┼─────┤
-// │ │ │ ┃ ┃ │ │VOLUP┃ ← ┃ ↓ │ → │SLEEP│ ← arrows
-// ├─────┼─────┼─────╄━━━━━╃─────┤ ├─────╄━━━━━╃─────┼─────┼─────┤
-// │ │ │ │ │ │ │VOLDN│MPREV│MPLAY│MNEXT│ PWR │ ← music
-// └─────┴─────┴─────┴─────┴─────┘ └─────┴─────┴─────┴─────┴─────┘
-#define _________________SYSCTL_L1_________________ XXXXXXX, XXXXXXX, XXXXXXX, KC_MS_BTN1, XXXXXXX
-#define _________________SYSCTL_L2_________________ XXXXXXX, XXXXXXX, XXXXXXX, KC_MS_RIGHT, KC_MS_WH_UP
-#define _________________SYSCTL_L3_________________ XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_MS_WH_DOWN
-
-// vol v ctl v
-#define _________________SYSCTL_R1_________________ KC_MUTE, KC_HOME, KC_UP, KC_END, PV_LOCK
-#define _________________SYSCTL_R2_________________ KC_VOLU, KC_LEFT, KC_DOWN, KC_RGHT /* < arrows */, KC_SLEP
-#define _________________SYSCTL_R3_________________ KC_VOLD, KC_MPRV, KC_MPLY, KC_MNXT /* < music */, KC_PWR
-
-// ,-----+-----+-----+-----+-----, ,-----+-----+-----+-----+-----,
-// |GAME |CRPLX|XXXXX|XXXXX|XXXXX| |XXXXX|XXXXX|XXXXX|XXXXX|XXXXX|
-// ,-----+-----+-----x-----x-----, ,-----x-----x-----+-----+-----,
-// |XXXXX|XXXXX|XXXXX|XXXXX|XXXXX| |XXXXX|VERSN|MAKE |FLASH|XXXXX|
-// ,-----+-----+-----x-----x-----, ,-----x-----x-----+-----+-----,
-// |XXXXX|XXXXX|XXXXX|XXXXX|XXXXX| |XXXXX|XXXXX|XXXXX|XXXXX|XXXXX|
-// ,-----+-----+-----+-----+-----, ,-----+-----+-----+-----+-----,
-#define __________________KBCTL_L1_________________ PV_SSNC, PV_SCIN, PV_TEST, XXXXXXX, XXXXXXX
-#define __________________KBCTL_L2_________________ RGB_TOG, RGB_VAI, XXXXXXX, XXXXXXX, XXXXXXX
-#define __________________KBCTL_L3_________________ RGB_MOD, RGB_VAD, XXXXXXX, XXXXXXX, XXXXXXX
-
-#define __________________KBCTL_R1_________________ XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX
-#define __________________KBCTL_R2_________________ XXXXXXX, PV_VRSN, PV_MAKE, PV_FLSH, XXXXXXX
-#define __________________KBCTL_R3_________________ XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX
-
-// We need wrappers in order for these definitions, because they need to be expanded before being used as arguments to the LAYOUT_xxx macro.
-#define LAYOUT_ergodox_pretty_wrapper(...) LAYOUT_ergodox_pretty(__VA_ARGS__)
-#define LAYOUT_wrapper(...) LAYOUT(__VA_ARGS__)
-
-// Extra stuff that might be needed.
-void keyboard_post_init_user_keymap(void);
-layer_state_t layer_state_set_user_keymap(layer_state_t state);
diff --git a/users/pvinis/rules.mk b/users/pvinis/rules.mk
deleted file mode 100644
index 6c7b47399a..0000000000
--- a/users/pvinis/rules.mk
+++ /dev/null
@@ -1,19 +0,0 @@
-SRC += pvinis.c # add userspace file
-
-
-## Use the stuff below on the keyboard keymaps, not here.
-## If they are used here, they will replace the keymap's rules, since this file is eval'd later.
-
-# TAP_DANCE_ENABLE = yes
-# AUDIO_ENABLE = yes # piezo speaker sounds
-# RGBLIGHT_ENABLE = yes # rgb leds underlight
-# BACKLIGHT_ENABLE = no # leds under keycaps
-# MOUSEKEY_ENABLE = yes
-# LEEP_LED_ENABLE = no # no led blinking while sleeping
-# KRO_ENABLE = yes
-
-## Some extra stuff to make firmware smaller.
-
-# LTO_ENABLE = yes
-# CONSOLE_ENABLE = no
-# COMMAND_ENABLE = no
diff --git a/users/riblee/readme.md b/users/riblee/readme.md
deleted file mode 100644
index 54f5cc8bb0..0000000000
--- a/users/riblee/readme.md
+++ /dev/null
@@ -1,14 +0,0 @@
-Copyright 2020 Janos Daniel Reibl <janos.daniel.reibl@protonmail.com> @riblee
-
-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/>.
diff --git a/users/riblee/riblee.c b/users/riblee/riblee.c
deleted file mode 100644
index 4be43ba82c..0000000000
--- a/users/riblee/riblee.c
+++ /dev/null
@@ -1,174 +0,0 @@
-/* Copyright 2020 Janos Daniel Reibl <janos.daniel.reibl@protonmail.com> @riblee
- *
- * 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 "riblee.h"
-#include <string.h>
-
-// Tap Dance functions
-void dance_key_a (tap_dance_state_t *state, void *user_data) {
- if (state->count == 1) {
- SEND_STRING("a");
- reset_tap_dance(state);
- } else if (state->count == 2) {
- if (!(keyboard_report->mods & MOD_MASK_SHIFT)) {
- send_unicode_string("á");
- } else {
- send_unicode_string("Á");
- }
-
- reset_tap_dance(state);
- }
-}
-
-void dance_key_e (tap_dance_state_t *state, void *user_data) {
- if (state->count == 1) {
- SEND_STRING("e");
- reset_tap_dance(state);
- } else if (state->count == 2) {
- if (!(keyboard_report->mods & MOD_MASK_SHIFT)) {
- send_unicode_string("é");
- } else {
- send_unicode_string("É");
- }
-
- reset_tap_dance(state);
- }
-}
-
-void dance_key_i (tap_dance_state_t *state, void *user_data) {
- if (state->count == 1) {
- SEND_STRING("i");
- reset_tap_dance(state);
- } else if (state->count == 2) {
- if (!(keyboard_report->mods & MOD_MASK_SHIFT)) {
- send_unicode_string("í");
- } else {
- send_unicode_string("Í");
- }
-
- reset_tap_dance(state);
- }
-}
-
-void dance_key_o (tap_dance_state_t *state, void *user_data) {
- if (state->count == 1) {
- SEND_STRING("o");
- reset_tap_dance(state);
- } else if (state->count == 2) {
- if (!(keyboard_report->mods & MOD_MASK_SHIFT)) {
- send_unicode_string("ó");
- } else {
- send_unicode_string("Ó");
- }
-
- reset_tap_dance(state);
- } else if (state->count == 3) {
- if (!(keyboard_report->mods & MOD_MASK_SHIFT)) {
- send_unicode_string("ö");
- } else {
- send_unicode_string("Ö");
- }
-
- reset_tap_dance(state);
- } else if (state->count == 4) {
- if (!(keyboard_report->mods & MOD_MASK_SHIFT)) {
- send_unicode_string("ő");
- } else {
- send_unicode_string("Ő");
- }
-
- reset_tap_dance(state);
- }
-}
-
-void dance_key_u (tap_dance_state_t *state, void *user_data) {
- if (state->count == 1) {
- SEND_STRING("u");
- reset_tap_dance(state);
- } else if (state->count == 2) {
- if (!(keyboard_report->mods & MOD_MASK_SHIFT)) {
- send_unicode_string("ú");
- } else {
- send_unicode_string("Ú");
- }
-
- reset_tap_dance(state);
- } else if (state->count == 3) {
- if (!(keyboard_report->mods & MOD_MASK_SHIFT)) {
- send_unicode_string("ü");
- } else {
- send_unicode_string("Ü");
- }
-
- reset_tap_dance(state);
- } else if (state->count == 4) {
- if (!(keyboard_report->mods & MOD_MASK_SHIFT)) {
- send_unicode_string("ű");
- } else {
- send_unicode_string("Ű");
- }
-
- reset_tap_dance(state);
- }
-}
-
-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) {
- switch (keycode) {
- case QWERTY:
- if (record->event.pressed) {
- set_single_persistent_default_layer(_QWERTY);
- }
- return false;
- break;
- case COLEMAK:
- if (record->event.pressed) {
- set_single_persistent_default_layer(_COLEMAK);
- }
- return false;
- break;
- case DVORAK:
- if (record->event.pressed) {
- set_single_persistent_default_layer(_DVORAK);
- }
- return false;
- break;
- case WORKMAN:
- if (record->event.pressed) {
- set_single_persistent_default_layer(_WORKMAN);
- }
- return false;
- break;
- case HUNGARIAN:
- if (record->event.pressed) {
- set_single_persistent_default_layer(_HUNGARIAN);
- }
- return false;
- break;
- }
- return true;
-};
-
-void keyboard_pre_init_user(void) {
- // Set C13 pin as output
- setPinOutput(C13);
-
- // Turn off the LED
- writePinHigh(C13);
-} \ No newline at end of file
diff --git a/users/riblee/riblee.h b/users/riblee/riblee.h
deleted file mode 100644
index 910c57db69..0000000000
--- a/users/riblee/riblee.h
+++ /dev/null
@@ -1,59 +0,0 @@
-/* Copyright 2020 Janos Daniel Reibl <janos.daniel.reibl@protonmail.com> @riblee
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-#pragma once
-
-#include QMK_KEYBOARD_H
-
-enum layer_names {
- _QWERTY,
- _HUNGARIAN,
- _COLEMAK,
- _DVORAK,
- _WORKMAN,
- _LOWER,
- _RAISE,
- _ADJUST
-};
-
-enum custom_keycodes {
- QWERTY = SAFE_RANGE,
- HUNGARIAN,
- COLEMAK,
- DVORAK,
- WORKMAN,
-};
-
-#define LOWER MO(_LOWER)
-#define RAISE MO(_RAISE)
-
-// Tap Dance declarations
-enum {
- TD_A,
- TD_E,
- TD_I,
- TD_O,
- TD_U,
-};
-
-void dance_key_a (tap_dance_state_t *, void *);
-void dance_key_e (tap_dance_state_t *, void *);
-void dance_key_i (tap_dance_state_t *, void *);
-void dance_key_o (tap_dance_state_t *, void *);
-void dance_key_u (tap_dance_state_t *, void *);
-
-layer_state_t layer_state_set_user(layer_state_t);
-bool process_record_user(uint16_t keycode, keyrecord_t *record); \ No newline at end of file
diff --git a/users/riblee/rules.mk b/users/riblee/rules.mk
deleted file mode 100644
index 31c0645d78..0000000000
--- a/users/riblee/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-SRC += riblee.c \ No newline at end of file
diff --git a/users/ridingqwerty/config.h b/users/ridingqwerty/config.h
deleted file mode 100644
index 2bb32a0120..0000000000
--- a/users/ridingqwerty/config.h
+++ /dev/null
@@ -1,10 +0,0 @@
-#pragma once
-
-#define BOOTMAGIC_LITE_ROW 0
-#define BOOTMAGIC_LITE_COL 0
-
-#define TAPPING_TERM 175
-#define MACRO_TIMER 5
-#define QUICK_TAP_TERM_PER_KEY
-// testing
-#define TAPPING_TERM_PER_KEY
diff --git a/users/ridingqwerty/dict.h b/users/ridingqwerty/dict.h
deleted file mode 100644
index 43d4d50b50..0000000000
--- a/users/ridingqwerty/dict.h
+++ /dev/null
@@ -1,1012 +0,0 @@
-#pragma once
-
-// lower this number if a smaller dictionary is desired
-#define NUMBER_OF_WORDS 1000
-
-#define MAX_WORDS 1000
-#if (NUMBER_OF_WORDS > MAX_WORDS)
-# error *** NUMBER_OF_WORDS must be between 0 and 1000 inclusive
-#endif
-
-const char *dict[MAX_WORDS] = { \
-"the", \
-"of", \
-"to", \
-"and", \
-"a", \
-"in", \
-"is", \
-"it", \
-"you", \
-"that", \
-"he", \
-"was", \
-"for", \
-"on", \
-"are", \
-"with", \
-"as", \
-"I", \
-"his", \
-"they", \
-"be", \
-"at", \
-"one", \
-"have", \
-"this", \
-"from", \
-"or", \
-"had", \
-"by", \
-"not", \
-"word", \
-"but", \
-"what", \
-"some", \
-"we", \
-"can", \
-"out", \
-"other", \
-"were", \
-"all", \
-"there", \
-"when", \
-"up", \
-"use", \
-"your", \
-"how", \
-"said", \
-"an", \
-"each", \
-"she", \
-"which", \
-"do", \
-"their", \
-"time", \
-"if", \
-"will", \
-"way", \
-"about", \
-"many", \
-"then", \
-"them", \
-"write", \
-"would", \
-"like", \
-"so", \
-"these", \
-"her", \
-"long", \
-"make", \
-"thing", \
-"see", \
-"him", \
-"two", \
-"has", \
-"look", \
-"more", \
-"day", \
-"could", \
-"go", \
-"come", \
-"did", \
-"number", \
-"sound", \
-"no", \
-"most", \
-"people", \
-"my", \
-"over", \
-"know", \
-"water", \
-"than", \
-"call", \
-"first", \
-"who", \
-"may", \
-"down", \
-"side", \
-"been", \
-"now", \
-"find", \
-"any", \
-"new", \
-"work", \
-"part", \
-"take", \
-"get", \
-"place", \
-"made", \
-"live", \
-"where", \
-"after", \
-"back", \
-"little", \
-"only", \
-"round", \
-"man", \
-"year", \
-"came", \
-"show", \
-"every", \
-"good", \
-"me", \
-"give", \
-"our", \
-"under", \
-"name", \
-"very", \
-"through", \
-"just", \
-"form", \
-"sentence", \
-"great", \
-"think", \
-"say", \
-"help", \
-"low", \
-"line", \
-"differ", \
-"turn", \
-"cause", \
-"much", \
-"mean", \
-"before", \
-"move", \
-"right", \
-"boy", \
-"old", \
-"too", \
-"same", \
-"tell", \
-"does", \
-"set", \
-"three", \
-"want", \
-"air", \
-"well", \
-"also", \
-"play", \
-"small", \
-"end", \
-"put", \
-"home", \
-"read", \
-"hand", \
-"port", \
-"large", \
-"spell", \
-"add", \
-"even", \
-"land", \
-"here", \
-"must", \
-"big", \
-"high", \
-"such", \
-"follow", \
-"act", \
-"why", \
-"ask", \
-"men", \
-"change", \
-"went", \
-"light", \
-"kind", \
-"off", \
-"need", \
-"house", \
-"picture", \
-"try", \
-"us", \
-"again", \
-"animal", \
-"point", \
-"mother", \
-"world", \
-"near", \
-"build", \
-"self", \
-"earth", \
-"father", \
-"head", \
-"stand", \
-"own", \
-"page", \
-"should", \
-"country", \
-"found", \
-"answer", \
-"school", \
-"grow", \
-"study", \
-"still", \
-"learn", \
-"plant", \
-"cover", \
-"food", \
-"sun", \
-"four", \
-"between", \
-"state", \
-"keep", \
-"eye", \
-"never", \
-"last", \
-"let", \
-"thought", \
-"city", \
-"tree", \
-"cross", \
-"farm", \
-"hard", \
-"start", \
-"might", \
-"story", \
-"saw", \
-"far", \
-"sea", \
-"draw", \
-"left", \
-"late", \
-"run", \
-"don't", \
-"while", \
-"press", \
-"close", \
-"night", \
-"real", \
-"life", \
-"few", \
-"north", \
-"open", \
-"seem", \
-"together", \
-"next", \
-"white", \
-"children", \
-"begin", \
-"got", \
-"walk", \
-"example", \
-"ease", \
-"paper", \
-"group", \
-"always", \
-"music", \
-"those", \
-"both", \
-"mark", \
-"often", \
-"letter", \
-"until", \
-"mile", \
-"river", \
-"car", \
-"feet", \
-"care", \
-"second", \
-"book", \
-"carry", \
-"took", \
-"science", \
-"eat", \
-"room", \
-"friend", \
-"began", \
-"idea", \
-"fish", \
-"mountain", \
-"stop", \
-"once", \
-"base", \
-"hear", \
-"horse", \
-"cut", \
-"sure", \
-"watch", \
-"color", \
-"face", \
-"wood", \
-"main", \
-"enough", \
-"plain", \
-"girl", \
-"usual", \
-"young", \
-"ready", \
-"above", \
-"ever", \
-"red", \
-"list", \
-"though", \
-"feel", \
-"talk", \
-"bird", \
-"soon", \
-"body", \
-"dog", \
-"family", \
-"direct", \
-"pose", \
-"leave", \
-"song", \
-"measure", \
-"door", \
-"product", \
-"black", \
-"short", \
-"numeral", \
-"class", \
-"wind", \
-"question", \
-"happen", \
-"complete", \
-"ship", \
-"area", \
-"half", \
-"rock", \
-"order", \
-"fire", \
-"south", \
-"problem", \
-"piece", \
-"told", \
-"knew", \
-"pass", \
-"since", \
-"top", \
-"whole", \
-"king", \
-"space", \
-"heard", \
-"best", \
-"hour", \
-"better", \
-"true", \
-"during", \
-"hundred", \
-"five", \
-"remember", \
-"step", \
-"early", \
-"hold", \
-"west", \
-"ground", \
-"interest", \
-"reach", \
-"fast", \
-"verb", \
-"sing", \
-"listen", \
-"six", \
-"table", \
-"travel", \
-"less", \
-"morning", \
-"ten", \
-"simple", \
-"several", \
-"vowel", \
-"toward", \
-"war", \
-"lay", \
-"against", \
-"pattern", \
-"slow", \
-"center", \
-"love", \
-"person", \
-"money", \
-"serve", \
-"appear", \
-"road", \
-"map", \
-"rain", \
-"rule", \
-"govern", \
-"pull", \
-"cold", \
-"notice", \
-"voice", \
-"unit", \
-"power", \
-"town", \
-"fine", \
-"certain", \
-"fly", \
-"fall", \
-"lead", \
-"cry", \
-"dark", \
-"machine", \
-"note", \
-"wait", \
-"plan", \
-"figure", \
-"star", \
-"box", \
-"noun", \
-"field", \
-"rest", \
-"correct", \
-"able", \
-"pound", \
-"done", \
-"beauty", \
-"drive", \
-"stood", \
-"contain", \
-"front", \
-"teach", \
-"week", \
-"final", \
-"gave", \
-"green", \
-"oh", \
-"quick", \
-"develop", \
-"ocean", \
-"warm", \
-"free", \
-"minute", \
-"strong", \
-"special", \
-"mind", \
-"behind", \
-"clear", \
-"tail", \
-"produce", \
-"fact", \
-"street", \
-"inch", \
-"multiply", \
-"nothing", \
-"course", \
-"stay", \
-"wheel", \
-"full", \
-"force", \
-"blue", \
-"object", \
-"decide", \
-"surface", \
-"deep", \
-"moon", \
-"island", \
-"foot", \
-"system", \
-"busy", \
-"test", \
-"record", \
-"boat", \
-"common", \
-"gold", \
-"possible", \
-"plane", \
-"stead", \
-"dry", \
-"wonder", \
-"laugh", \
-"thousand", \
-"ago", \
-"ran", \
-"check", \
-"game", \
-"shape", \
-"equate", \
-"hot", \
-"miss", \
-"brought", \
-"heat", \
-"snow", \
-"tire", \
-"bring", \
-"yes", \
-"distant", \
-"fill", \
-"east", \
-"paint", \
-"language", \
-"among", \
-"grand", \
-"ball", \
-"yet", \
-"wave", \
-"drop", \
-"heart", \
-"am", \
-"present", \
-"heavy", \
-"dance", \
-"engine", \
-"position", \
-"arm", \
-"wide", \
-"sail", \
-"material", \
-"size", \
-"vary", \
-"settle", \
-"speak", \
-"weight", \
-"general", \
-"ice", \
-"matter", \
-"circle", \
-"pair", \
-"include", \
-"divide", \
-"syllable", \
-"felt", \
-"perhaps", \
-"pick", \
-"sudden", \
-"count", \
-"square", \
-"reason", \
-"length", \
-"represent", \
-"art", \
-"subject", \
-"region", \
-"energy", \
-"hunt", \
-"probable", \
-"bed", \
-"brother", \
-"egg", \
-"ride", \
-"cell", \
-"believe", \
-"fraction", \
-"forest", \
-"sit", \
-"race", \
-"window", \
-"store", \
-"summer", \
-"train", \
-"sleep", \
-"prove", \
-"lone", \
-"leg", \
-"exercise", \
-"wall", \
-"catch", \
-"mount", \
-"wish", \
-"sky", \
-"board", \
-"joy", \
-"winter", \
-"sat", \
-"written", \
-"wild", \
-"instrument", \
-"kept", \
-"glass", \
-"grass", \
-"cow", \
-"job", \
-"edge", \
-"sign", \
-"visit", \
-"past", \
-"soft", \
-"fun", \
-"bright", \
-"gas", \
-"weather", \
-"month", \
-"million", \
-"bear", \
-"finish", \
-"happy", \
-"hope", \
-"flower", \
-"clothe", \
-"strange", \
-"gone", \
-"jump", \
-"baby", \
-"eight", \
-"village", \
-"meet", \
-"root", \
-"buy", \
-"raise", \
-"solve", \
-"metal", \
-"whether", \
-"push", \
-"seven", \
-"paragraph", \
-"third", \
-"shall", \
-"held", \
-"hair", \
-"describe", \
-"cook", \
-"floor", \
-"either", \
-"result", \
-"burn", \
-"hill", \
-"safe", \
-"cat", \
-"century", \
-"consider", \
-"type", \
-"law", \
-"bit", \
-"coast", \
-"copy", \
-"phrase", \
-"silent", \
-"tall", \
-"sand", \
-"soil", \
-"roll", \
-"temperature", \
-"finger", \
-"industry", \
-"value", \
-"fight", \
-"lie", \
-"beat", \
-"excite", \
-"natural", \
-"view", \
-"sense", \
-"ear", \
-"else", \
-"quite", \
-"broke", \
-"case", \
-"middle", \
-"kill", \
-"son", \
-"lake", \
-"moment", \
-"scale", \
-"loud", \
-"spring", \
-"observe", \
-"child", \
-"straight", \
-"consonant", \
-"nation", \
-"dictionary", \
-"milk", \
-"speed", \
-"method", \
-"organ", \
-"pay", \
-"age", \
-"section", \
-"dress", \
-"cloud", \
-"surprise", \
-"quiet", \
-"stone", \
-"tiny", \
-"climb", \
-"cool", \
-"design", \
-"poor", \
-"lot", \
-"experiment", \
-"bottom", \
-"key", \
-"iron", \
-"single", \
-"stick", \
-"flat", \
-"twenty", \
-"skin", \
-"smile", \
-"crease", \
-"hole", \
-"trade", \
-"melody", \
-"trip", \
-"office", \
-"receive", \
-"row", \
-"mouth", \
-"exact", \
-"symbol", \
-"die", \
-"least", \
-"trouble", \
-"shout", \
-"except", \
-"wrote", \
-"seed", \
-"tone", \
-"join", \
-"suggest", \
-"clean", \
-"break", \
-"lady", \
-"yard", \
-"rise", \
-"bad", \
-"blow", \
-"oil", \
-"blood", \
-"touch", \
-"grew", \
-"cent", \
-"mix", \
-"team", \
-"wire", \
-"cost", \
-"lost", \
-"brown", \
-"wear", \
-"garden", \
-"equal", \
-"sent", \
-"choose", \
-"fell", \
-"fit", \
-"flow", \
-"fair", \
-"bank", \
-"collect", \
-"save", \
-"control", \
-"decimal", \
-"gentle", \
-"woman", \
-"captain", \
-"practice", \
-"separate", \
-"difficult", \
-"doctor", \
-"please", \
-"protect", \
-"noon", \
-"whose", \
-"locate", \
-"ring", \
-"character", \
-"insect", \
-"caught", \
-"period", \
-"indicate", \
-"radio", \
-"spoke", \
-"atom", \
-"human", \
-"history", \
-"effect", \
-"electric", \
-"expect", \
-"crop", \
-"modern", \
-"element", \
-"hit", \
-"student", \
-"corner", \
-"party", \
-"supply", \
-"bone", \
-"rail", \
-"imagine", \
-"provide", \
-"agree", \
-"thus", \
-"capital", \
-"won't", \
-"chair", \
-"danger", \
-"fruit", \
-"rich", \
-"thick", \
-"soldier", \
-"process", \
-"operate", \
-"guess", \
-"necessary", \
-"sharp", \
-"wing", \
-"create", \
-"neighbor", \
-"wash", \
-"bat", \
-"rather", \
-"crowd", \
-"corn", \
-"compare", \
-"poem", \
-"string", \
-"bell", \
-"depend", \
-"meat", \
-"rub", \
-"tube", \
-"famous", \
-"dollar", \
-"stream", \
-"fear", \
-"sight", \
-"thin", \
-"triangle", \
-"planet", \
-"hurry", \
-"chief", \
-"colony", \
-"clock", \
-"mine", \
-"tie", \
-"enter", \
-"major", \
-"fresh", \
-"search", \
-"send", \
-"yellow", \
-"gun", \
-"allow", \
-"print", \
-"dead", \
-"spot", \
-"desert", \
-"suit", \
-"current", \
-"lift", \
-"rose", \
-"continue", \
-"block", \
-"chart", \
-"hat", \
-"sell", \
-"success", \
-"company", \
-"subtract", \
-"event", \
-"particular", \
-"deal", \
-"swim", \
-"term", \
-"opposite", \
-"wife", \
-"shoe", \
-"shoulder", \
-"spread", \
-"arrange", \
-"camp", \
-"invent", \
-"cotton", \
-"born", \
-"determine", \
-"quart", \
-"nine", \
-"truck", \
-"noise", \
-"level", \
-"chance", \
-"gather", \
-"shop", \
-"stretch", \
-"throw", \
-"shine", \
-"property", \
-"column", \
-"molecule", \
-"select", \
-"wrong", \
-"gray", \
-"repeat", \
-"require", \
-"broad", \
-"prepare", \
-"salt", \
-"nose", \
-"plural", \
-"anger", \
-"claim", \
-"continent", \
-"oxygen", \
-"sugar", \
-"death", \
-"pretty", \
-"skill", \
-"women", \
-"season", \
-"solution", \
-"magnet", \
-"silver", \
-"thank", \
-"branch", \
-"match", \
-"suffix", \
-"especially", \
-"fig", \
-"afraid", \
-"huge", \
-"sister", \
-"steel", \
-"discuss", \
-"forward", \
-"similar", \
-"guide", \
-"experience", \
-"score", \
-"apple", \
-"bought", \
-"led", \
-"pitch", \
-"coat", \
-"mass", \
-"card", \
-"band", \
-"rope", \
-"slip", \
-"win", \
-"dream", \
-"evening", \
-"condition", \
-"feed", \
-"tool", \
-"total", \
-"basic", \
-"smell", \
-"valley", \
-"nor", \
-"double", \
-"seat", \
-"arrive", \
-"master", \
-"track", \
-"parent", \
-"shore", \
-"division", \
-"sheet", \
-"substance", \
-"favor", \
-"connect", \
-"post", \
-"spend", \
-"chord", \
-"fat", \
-"glad", \
-"original", \
-"share", \
-"station", \
-"dad", \
-"bread", \
-"charge", \
-"proper", \
-"bar", \
-"offer", \
-"segment", \
-"slave", \
-"duck", \
-"instant", \
-"market", \
-"degree", \
-"populate", \
-"chick", \
-"dear", \
-"enemy", \
-"reply", \
-"drink", \
-"occur", \
-"support", \
-"speech", \
-"nature", \
-"range", \
-"steam", \
-"motion", \
-"path", \
-"liquid", \
-"log", \
-"meant", \
-"quotient", \
-"teeth", \
-"shell", \
-"neck" \
-};
diff --git a/users/ridingqwerty/process_records.c b/users/ridingqwerty/process_records.c
deleted file mode 100644
index 4aa688ca00..0000000000
--- a/users/ridingqwerty/process_records.c
+++ /dev/null
@@ -1,486 +0,0 @@
-#include <stdio.h>
-#include <time.h>
-#include "ridingqwerty.h"
-#include "dict.h"
-
-__attribute__ ((weak))
-bool process_record_keymap(uint16_t keycode, keyrecord_t *record) {
- return true;
-}
-
-__attribute__ ((weak))
-bool process_record_secrets(uint16_t keycode, keyrecord_t *record) {
- return true;
-}
-
-/*
-typedef union {
- struct {
- uint8_t aesthetic : 1,
- spongebob : 1,
- uppercase : 1,
- australia : 1,
- unusued : 4;
- };
- uint8_t all;
-} mode_config_t;
-*/
-mode_config_t mode = {.all = 0U};
-
-bool randword_seed = false;
-uint8_t user_mod_state;
-uint16_t rand_key;
-uint16_t temp_keycode;
-uint32_t user_key_timer;
-
-bool process_record_user(uint16_t keycode, keyrecord_t *record) {
-#ifdef CONSOLE_ENABLE
- uprintf("KL: kc: %u, col: %u, row: %u, pressed: %u\n", keycode, record->event.key.col, record->event.key.row, record->event.pressed);
-#endif
-
- temp_keycode = keycode;
- if ((mode.all != 0U) && ((keycode != DB(TAB) || keycode != ED(ESC)) && ((keycode >= QK_MOD_TAP && keycode <= QK_MOD_TAP_MAX) || (keycode >= QK_LAYER_TAP && keycode <= QK_LAYER_TAP_MAX)))) {
- temp_keycode &= 0xFF;
- }
-
- if (mode.spongebob) {
- switch(temp_keycode) {
- case KC_A ... KC_Z:
- if (record->event.pressed) {
- (mode.uppercase ^= 1) == 0 ? tap_code16(S(temp_keycode)) : tap_code(temp_keycode);
- }
- return false;
- }
- }
-
- if (mode.aesthetic) {
- switch(temp_keycode) {
-#if defined(UNICODE_ENABLE) || defined(UNICODEMAP_ENABLE)
- case KC_A:
- if (record->event.pressed) {
- send_unicode_string("Λ ");
- }
- return false;
- case KC_E:
- if (record->event.pressed) {
- send_unicode_string("Ξ ");
- }
- return false;
-#else
- case A:
- case E:
- if (record->event.pressed) {
- tap_code16(S(temp_keycode));
- tap_code(KC_SPC);
- }
- return false;
-#endif
- case KC_B ... KC_D:
- case KC_F ... KC_Z:
- if (record->event.pressed) {
- tap_code16(S(temp_keycode));
- tap_code(KC_SPC);
- }
- return false;
- case KC_1 ... KC_0:
- if (record->event.pressed) {
- tap_code(temp_keycode);
- tap_code(KC_SPC);
- }
- return false;
-
- case KC_BSPC:
- if (record->event.pressed) {
- tap_code(KC_BSPC);
- tap_code(KC_BSPC);
- }
- return false;
- case KC_SPC:
- if (record->event.pressed) {
- tap_code(KC_SPC);
- tap_code(KC_SPC);
- tap_code(KC_SPC);
- }
- return false;
- }
- }
-
- if (mode.australia) {
- switch(temp_keycode) {
- // IDEMPOTENT
- case KC_L:
- case KC_O:
- case KC_S:
- case KC_Z:
- case KC_8:
- case KC_0:
- if (record->event.pressed) {
- tap_code(temp_keycode);
- tap_code(KC_LEFT);
- }
- return false;
-
- // INVERSE
- case KC_B:
- if (record->event.pressed) {
- tap_code(KC_Q);
- tap_code(KC_LEFT);
- }
- return false;
- case KC_Q:
- if (record->event.pressed) {
- tap_code(KC_B);
- tap_code(KC_LEFT);
- }
- return false;
- case KC_D:
- if (record->event.pressed) {
- tap_code(KC_P);
- tap_code(KC_LEFT);
- }
- return false;
- case KC_P:
- if (record->event.pressed) {
- tap_code(KC_D);
- tap_code(KC_LEFT);
- }
- return false;
- case KC_N:
- if (record->event.pressed) {
- tap_code(KC_U);
- tap_code(KC_LEFT);
- }
- return false;
- case KC_U:
- if (record->event.pressed) {
- tap_code(KC_N);
- tap_code(KC_LEFT);
- }
- return false;
- case KC_6:
- if (record->event.pressed) {
- tap_code(KC_9);
- tap_code(KC_LEFT);
- }
- return false;
- case KC_9:
- if (record->event.pressed) {
- tap_code(KC_6);
- tap_code(KC_LEFT);
- }
- return false;
-
- // TRANSLATE
- case KC_A:
- if (record->event.pressed) {
- register_unicode(0x0250); // ɐ
- tap_code(KC_LEFT);
- return false;
- }
- break;
- case KC_C:
- if (record->event.pressed) {
- register_unicode(0x0254); // ɔ
- tap_code(KC_LEFT);
- return false;
- }
- break;
- case KC_E:
- if (record->event.pressed) {
- register_unicode(0x01DD); // ǝ
- tap_code(KC_LEFT);
- return false;
- }
- break;
- case KC_F:
- if (record->event.pressed) {
- register_unicode(0x025F); // ɟ
- tap_code(KC_LEFT);
- return false;
- }
- break;
- case KC_G:
- if (record->event.pressed) {
- register_unicode(0x0183); // ƃ
- tap_code(KC_LEFT);
- return false;
- }
- break;
- case KC_H:
- if (record->event.pressed) {
- register_unicode(0x0265); // ɥ
- tap_code(KC_LEFT);
- return false;
- }
- break;
- case KC_I:
- if (record->event.pressed) {
- register_unicode(0x1D09); // ᴉ
- tap_code(KC_LEFT);
- return false;
- }
- break;
- case KC_J:
- if (record->event.pressed) {
- register_unicode(0x027E); // ɾ
- tap_code(KC_LEFT);
- return false;
- }
- break;
- case KC_K:
- if (record->event.pressed) {
- register_unicode(0x029E); // ʞ
- tap_code(KC_LEFT);
- return false;
- }
- break;
- case KC_M:
- if (record->event.pressed) {
- register_unicode(0x026F); // ɯ
- tap_code(KC_LEFT);
- return false;
- }
- break;
- case KC_R:
- if (record->event.pressed) {
- register_unicode(0x0279); // ɹ
- tap_code(KC_LEFT);
- return false;
- }
- break;
- case KC_T:
- if (record->event.pressed) {
- register_unicode(0x0287); // ʇ
- tap_code(KC_LEFT);
- return false;
- }
- break;
- case KC_V:
- if (record->event.pressed) {
- register_unicode(0x028C); // ʌ
- tap_code(KC_LEFT);
- return false;
- }
- break;
- case KC_W:
- if (record->event.pressed) {
- register_unicode(0x028D); // ʍ
- tap_code(KC_LEFT);
- return false;
- }
- break;
- case KC_X:
- if (record->event.pressed) {
- register_unicode(0x2717); // ✗
- tap_code(KC_LEFT);
- return false;
- }
- break;
- case KC_Y:
- if (record->event.pressed) {
- register_unicode(0x028E); // ʎ
- tap_code(KC_LEFT);
- return false;
- }
- break;
- case KC_1:
- if (record->event.pressed) {
- register_unicode(0x0269); // ɩ
- tap_code(KC_LEFT);
- return false;
- }
- break;
- case KC_2:
- if (record->event.pressed) {
- register_unicode(0x3139); // ㄹ
- tap_code(KC_LEFT);
- return false;
- }
- break;
- case KC_3:
- if (record->event.pressed) {
- register_unicode(0x0190); // Ɛ
- tap_code(KC_LEFT);
- return false;
- }
- break;
- case KC_4:
- if (record->event.pressed) {
- register_unicode(0x3123); // ㄣ
- tap_code(KC_LEFT);
- return false;
- }
- break;
- case KC_5:
- if (record->event.pressed) {
- register_unicode(0x03DB); // ϛ
- tap_code(KC_LEFT);
- return false;
- }
- break;
- case KC_7:
- if (record->event.pressed) {
- register_unicode(0x3125); // ㄥ
- tap_code(KC_LEFT);
- }
- return false;
-
- // CONTROLS
- case KC_ENT:
- if (record->event.pressed) {
- tap_code(KC_END);
- tap_code(KC_ENTER);
- }
- return false;
- case KC_BSPC:
- if (record->event.pressed) {
- tap_code(KC_DEL);
- }
- return false;
- case KC_SPC:
- if (record->event.pressed) {
- tap_code(KC_SPC);
- tap_code(KC_LEFT);
- }
- return false;
- }
- }
-
- switch(keycode) {
-
- case VERSION:
- if (!record->event.pressed) {
- send_string_with_delay_P(PSTR(QMK_KEYBOARD ":" QMK_KEYMAP "\nVersion:" QMK_VERSION ", built: " QMK_BUILDDATE "\n"), MACRO_TIMER);
- }
- break;
-
- case QWERTY ... COLEMAK:
-#if defined(UNICODE_ENABLE) || defined(UNICODEMAP_ENABLE)
- case GREEK ... HIRAGAN:
-#endif
- if (record->event.pressed) {
- //set_single_persistent_default_layer(keycode - QWERTY);
- default_layer_set(1U << (keycode - QWERTY));
- }
- break;
-
- case MAKE:
- if (record->event.pressed) {
- user_mod_state = get_mods() & MOD_MASK_CTRL;
- if (user_mod_state) {
- clear_mods();
- send_string_with_delay_P(PSTR("sleep 1 && "), MACRO_TIMER);
- }
- send_string_with_delay_P(PSTR("make " QMK_KEYBOARD ":" QMK_KEYMAP), MACRO_TIMER);
- if (user_mod_state) {
- send_string_with_delay_P(PSTR(":flash\n"), MACRO_TIMER);
- reset_keyboard();
- } else {
- send_string_with_delay_P(PSTR("\n"), MACRO_TIMER);
- }
- }
- break;
-
- case RNGWORD:
- if (randword_seed == false) {
- randword_seed = true;
- srand(timer_read32());
- }
- rand_key = rand() % NUMBER_OF_WORDS;
- if (record->event.pressed) {
- send_string(dict[rand_key]);
- tap_code(KC_SPC);
- }
- break;
-
- case RG_QUOT:
- if (record->event.pressed) {
-#if defined(UNICODE_ENABLE) || defined(UNICODEMAP_ENABLE)
- user_mod_state = get_mods() & MOD_MASK_ALT;
- if (user_mod_state) {
- unregister_mods(MOD_BIT(KC_RALT));
- register_unicode(0x00B0); // °
- set_mods(user_mod_state);
- return false;
- }
-#endif
- user_key_timer = timer_read32();
- layer_on(_NUMBER);
- register_mods(MOD_BIT(KC_RGUI));
- } else {
- unregister_mods(MOD_BIT(KC_RGUI));
- layer_off(_NUMBER);
- if (timer_elapsed32(user_key_timer) < TAPPING_TERM) {
- tap_code(KC_QUOT);
- }
- }
- return false; break;
-
- case TESTING:
- /*
- if (record->event.pressed) {
- int length = snprintf( NULL, 0, "%lu", test_number );
- char* str = malloc( length + 1 );
- snprintf( str, length + 1, "%lu", test_number );
- send_string(str);
- free(str);
- // make CFLAGS+="-lc -specs=nosys.specs" board:keymap
- }
- */
- break;
-
- case CCCV: // One key copy/paste
- if (record->event.pressed) {
- user_key_timer = timer_read32();
- } else {
- if (timer_elapsed32(user_key_timer) > TAPPING_TERM) { // Hold, copy
- register_code(KC_LCTL);
- tap_code(KC_C);
- unregister_code(KC_LCTL);
- } else { // Tap, paste
- register_code(KC_LCTL);
- tap_code(KC_V);
- unregister_code(KC_LCTL);
- }
- }
- break;
-
- case SEED:
- if (record->event.pressed) {
- srand(timer_read32());
- }
- break;
-
- case SARCASM:
- if (record->event.pressed) {
- if (!(mode.spongebob ^= 1)) { mode.all = 0U; };
- }
- break;
-
- case VPRWAVE:
- if (record->event.pressed) {
- if (!(mode.aesthetic ^= 1)) { mode.all = 0U; };
- }
- break;
-
- case STRAYA:
- if (record->event.pressed) {
- if (!(mode.australia ^= 1)) { mode.all = 0U; };
- }
- break;
- default:
- if (record->event.pressed && record->event.key.col == 4 && record->event.key.row == 1) {
- if (get_mods() & MOD_BIT(KC_RALT)) {
- unregister_mods(MOD_BIT(KC_RALT));
- //register_unicode(0x262D); // ☭
- tap_code(KC_BSPC);
- set_mods(MOD_BIT(KC_RALT));
- return false;
- }
- }
- break;
-
- }
- return process_record_keymap(keycode, record) &&
- process_record_secrets(keycode, record);
-}
diff --git a/users/ridingqwerty/process_records.h b/users/ridingqwerty/process_records.h
deleted file mode 100644
index 47c5f67903..0000000000
--- a/users/ridingqwerty/process_records.h
+++ /dev/null
@@ -1,58 +0,0 @@
-#pragma once
-#include "ridingqwerty.h"
-
-#if defined(KEYMAP_SAFE_RANGE)
- #define PLACEHOLDER_SAFE_RANGE KEYMAP_SAFE_RANGE
-#else
- #define PLACEHOLDER_SAFE_RANGE SAFE_RANGE
-#endif
-
-bool process_record_secrets(uint16_t keycode, keyrecord_t *record);
-bool process_record_keymap(uint16_t keycode, keyrecord_t *record);
-
-enum userspace_custom_keycodes {
- VERSION = PLACEHOLDER_SAFE_RANGE,
- QWERTY,
- DVORAK,
- COLEMAK,
-#if defined(UNICODE_ENABLE) || defined(UNICODEMAP_ENABLE)
- GREEK,
- RUSSIAN,
- RUNES,
- HIRAGAN,
-#endif
- MAKE,
- RG_QUOT,
- TESTING,
- RNGWORD,
- CCCV,
- SEED,
- SARCASM,
- VPRWAVE,
- STRAYA,
- SECRET0,
- SECRET1,
- SECRET2,
- SECRET3,
- SECRET4,
- SECRET5,
- SECRET6,
- SECRET7,
- SECRET8,
- NEW_SAFE_RANGE // start new keyboard-level declarations with NEW_SAFE_RANGE
-};
-
-// clang-format off
-typedef union {
- struct {
- uint8_t aesthetic : 1,
- spongebob : 1,
- uppercase : 1,
- australia : 1,
- unusued : 4;
- };
- uint8_t all;
-} mode_config_t;
-// clang-format on
-
-extern mode_config_t mode;
diff --git a/users/ridingqwerty/ridingqwerty.c b/users/ridingqwerty/ridingqwerty.c
deleted file mode 100644
index 639bb8d2b3..0000000000
--- a/users/ridingqwerty/ridingqwerty.c
+++ /dev/null
@@ -1,65 +0,0 @@
-#include "ridingqwerty.h"
-
-__attribute__((weak))
-void matrix_init_keymap(void) {}
-
-void matrix_init_user(void) {
- matrix_init_keymap();
-
-#if defined(UNICODE_ENABLE) || defined(UNICODEMAP_ENABLE)
- set_unicode_input_mode(UNICODE_MODE_LINUX);
-#endif
-
- //set_single_persistent_default_layer(_QWERTY);
- default_layer_set(1U << _QWERTY);
-}
-
-__attribute__((weak))
-void matrix_scan_keymap(void) {
-}
-
-void matrix_scan_user(void) {
- // use for global event timers
-}
-
-__attribute__((weak))
-void keyboard_post_init_keymap(void) {}
-
-void keyboard_post_init_user(void) {
-#if defined(CONSOLE_ENABLE)
- debug_enable = true;
- debug_matrix = true;
- //debug_keyboard=true;
- //debug_mouse=true;
-#endif
-}
-
-__attribute__((weak))
-layer_state_t layer_state_set_keymap(layer_state_t state) { return state; }
-
-layer_state_t layer_state_set_user(layer_state_t state) {
- state = update_tri_layer_state(state, _EDITOR, _DEBUG, _SECRET);
-#ifdef CONSOLE_ENABLE
- uprintf("LAYER: %u\n", state);
-#endif
- return state;
-}
-
-uint16_t get_tapping_term(uint16_t keycode, keyrecord_t *record) {
- switch (keycode) {
- case RC(ENT):
- case ED(ESC):
- return 225;
- default:
- return TAPPING_TERM;
- }
-};
-
-uint16_t get_quick_tap_term(uint16_t keycode, keyrecord_t *record) {
- switch (keycode) {
- case NM(SCLN):
- return 0;
- default:
- return QUICK_TAP_TERM;
- }
-}
diff --git a/users/ridingqwerty/ridingqwerty.h b/users/ridingqwerty/ridingqwerty.h
deleted file mode 100644
index 6bd4aa5700..0000000000
--- a/users/ridingqwerty/ridingqwerty.h
+++ /dev/null
@@ -1,61 +0,0 @@
-#pragma once
-
-#include "quantum.h"
-#include "version.h"
-#include "process_records.h"
-#include "wrappers.h"
-#ifdef TAP_DANCE_ENABLE
-# include "tapdances.h"
-#endif
-#if defined(UNICODEMAP_ENABLE) || defined(UNICODE_ENABLE)
-# include "unicode.h"
-#endif
-
-enum userspace_layers
-{
- _QWERTY,
- _DVORAK,
- _COLEMAK,
-/*
- _WORKMAN et al. go here
-*/
-#if defined(UNICODE_ENABLE) || defined(UNICODEMAP_ENABLE)
- _GREEK,
- _RUSSIAN,
- _RUNES,
- _HIRA1,
- _HIRA2,
-#endif
- _EDITOR,
- _NUMBER,
- _SYMBOL,
- _F_KEYS,
- _DEBUG,
- _SECRET,
-#if defined(MOUSEKEY_ENABLED)
- _MOUSE,
-#endif
- _MEDIA,
- _FINAL
-};
-
-#define LS(kc) MT(MOD_LSFT, KC_##kc)
-#define LC(kc) MT(MOD_LCTL, KC_##kc)
-#define LG(kc) MT(MOD_LGUI, KC_##kc)
-#define LA(kc) MT(MOD_LALT, KC_##kc)
-#define RS(kc) MT(MOD_RSFT, KC_##kc)
-#define RC(kc) MT(MOD_RCTL, KC_##kc)
-#define RG(kc) MT(MOD_RGUI, KC_##kc)
-#define RA(kc) MT(MOD_RALT, KC_##kc)
-
-#define ED(kc) LT(_EDITOR, KC_##kc)
-#define NM(kc) LT(_NUMBER, KC_##kc)
-#define SM(kc) LT(_SYMBOL, KC_##kc)
-#define SC(kc) LT(_SECRET, KC_##kc)
-#define FK(kc) LT(_F_KEYS, KC_##kc)
-#define DB(kc) LT(_DEBUG, KC_##kc)
-
-void matrix_init_keymap(void);
-void matrix_scan_keymap(void);
-void keyboard_post_init_keymap(void);
-layer_state_t layer_state_set_keymap(layer_state_t state);
diff --git a/users/ridingqwerty/rules.mk b/users/ridingqwerty/rules.mk
deleted file mode 100644
index cc53f3f53e..0000000000
--- a/users/ridingqwerty/rules.mk
+++ /dev/null
@@ -1,24 +0,0 @@
-SRC += ridingqwerty.c \
- process_records.c
-
-BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite
-CONSOLE_ENABLE = no
-COMMAND_ENABLE = no
-UNICODE_ENABLE = no # "yes" in Atreus default keymap, blocking UNICODEMAP_ENABLE
-UNICODEMAP_ENABLE = yes
-MOUSEKEY_ENABLE = no
-TAP_DANCE_ENABLE = yes
-AUTO_SHIFT_ENABLE = no
-
-ifneq ("$(wildcard $(USER_PATH)/secrets.c)","")
- SRC += secrets.c
-endif
-
-ifeq ($(strip $(TAP_DANCE_ENABLE)), yes)
- SRC += tapdances.c
-endif
-
-ifeq ($(strip $(UNICODEMAP_ENABLE)), yes)
- SRC += unicode.c
-endif
-
diff --git a/users/ridingqwerty/tapdances.c b/users/ridingqwerty/tapdances.c
deleted file mode 100644
index 0fdd941637..0000000000
--- a/users/ridingqwerty/tapdances.c
+++ /dev/null
@@ -1,33 +0,0 @@
-#include "ridingqwerty.h"
-#include "tapdances.h"
-
-void braces_finished (tap_dance_state_t *state, void *user_data) {
- if ((state->count == 1) || (state->count == 3)) {
- register_code(KC_LSFT);
- }
-}
-
-void braces_reset (tap_dance_state_t *state, void *user_data) {
- // two or three taps for "[]"/"{}"
- if ((state->count == 2) || (state->count == 3)) {
- tap_code(KC_LBRC);
- tap_code(KC_RBRC);
- }
- // one tap for "()"
- else if (state->count == 1) {
- tap_code(KC_9);
- tap_code(KC_0);
- }
-
- // unregister the shift unconditionally
- unregister_code(KC_LSFT);
-
- // move back one space, inside the braces
- if (state->count <= 3) {
- tap_code(KC_LEFT);
- }
-}
-
-tap_dance_action_t tap_dance_actions[] = {
- [TD_BRACES] = ACTION_TAP_DANCE_FN_ADVANCED (NULL, braces_finished, braces_reset)
-};
diff --git a/users/ridingqwerty/tapdances.h b/users/ridingqwerty/tapdances.h
deleted file mode 100644
index 6eba0e2cbc..0000000000
--- a/users/ridingqwerty/tapdances.h
+++ /dev/null
@@ -1,9 +0,0 @@
-#pragma once
-
-#include "quantum.h"
-
-#define TD_BRC TD(TD_BRACES)
-
-enum tapdance_id {
- TD_BRACES = 0
-};
diff --git a/users/ridingqwerty/unicode.c b/users/ridingqwerty/unicode.c
deleted file mode 100644
index 5a4c154919..0000000000
--- a/users/ridingqwerty/unicode.c
+++ /dev/null
@@ -1,7 +0,0 @@
-#include "unicode.h"
-
-#ifdef UNICODEMAP_ENABLE
-const uint32_t unicode_map[] PROGMEM = {
- FOREACH_UNICODE(UCM_ENTRY)
-};
-#endif
diff --git a/users/ridingqwerty/unicode.h b/users/ridingqwerty/unicode.h
deleted file mode 100644
index 08b6f4fb8d..0000000000
--- a/users/ridingqwerty/unicode.h
+++ /dev/null
@@ -1,295 +0,0 @@
-#pragma once
-#include "quantum.h"
-
-// clang-format off
-#define FOREACH_UNICODE(M) \
- M(UALP, 0x0391) /* Α */ \
- M(UBET, 0x0392) /* Β */ \
- M(UGAM, 0x0393) /* Γ */ \
- M(UDEL, 0x0394) /* Δ */ \
- M(UEPS, 0x0395) /* Ε */ \
- M(UZET, 0x0396) /* Ζ */ \
- M(UETA, 0x0397) /* Η */ \
- M(UTHE, 0x0398) /* Θ */ \
- M(UIOT, 0x0399) /* Ι */ \
- M(UKAP, 0x039A) /* Κ */ \
- M(ULAM, 0x039B) /* Λ */ \
- M(UMU, 0x039C) /* M */ \
- M(UNU, 0x039D) /* Ν */ \
- M(UXI, 0x039E) /* Ξ */ \
- M(UOMI, 0x039F) /* Ο */ \
- M(UPI, 0x03A0) /* Π */ \
- M(URHO, 0x03A1) /* Ρ */ \
- M(USIG, 0x03A3) /* Σ */ \
- M(UTAU, 0x03A4) /* Τ */ \
- M(UUPS, 0x03A5) /* Υ */ \
- M(UPHI, 0x03A6) /* Φ */ \
- M(UCHI, 0x03A7) /* Χ */ \
- M(UPSI, 0x03A8) /* Ψ */ \
- M(UOME, 0x03A9) /* Ω */ \
- M(LALP, 0x03B1) /* α */ \
- M(LBET, 0x03B2) /* β */ \
- M(LGAM, 0x03B3) /* γ */ \
- M(LDEL, 0x03B4) /* δ */ \
- M(LEPS, 0x03B5) /* ε */ \
- M(LZET, 0x03B6) /* ζ */ \
- M(LETA, 0x03B7) /* η */ \
- M(LTHE, 0x03B8) /* θ */ \
- M(LIOT, 0x03B9) /* ι */ \
- M(LKAP, 0x03BA) /* κ */ \
- M(LLAM, 0x03BB) /* λ */ \
- M(LMU, 0x03BC) /* μ */ \
- M(LNU, 0x03BD) /* ν */ \
- M(LXI, 0x03BE) /* ξ */ \
- M(LOMI, 0x03BF) /* ο */ \
- M(LPI, 0x03C0) /* π */ \
- M(LRHO, 0x03C1) /* ρ */ \
- M(LSIG, 0x03C3) /* σ */ \
- M(LTAU, 0x03C4) /* τ */ \
- M(LUPS, 0x03C5) /* υ */ \
- M(LPHI, 0x03C6) /* φ */ \
- M(LCHI, 0x03C7) /* χ */ \
- M(LPSI, 0x03C8) /* ψ */ \
- M(LOME, 0x03C9) /* ω */ \
- M(UAH, 0x0410) /* А */ \
- M(UBE, 0x0411) /* Б */ \
- M(UVE, 0x0412) /* В */ \
- M(UGHE, 0x0413) /* Г */ \
- M(UDE, 0x0414) /* Д */ \
- M(UIE, 0x0415) /* Е */ \
- M(UIO, 0x0401) /* Ё */ \
- M(UZHE, 0x0416) /* Ж */ \
- M(UZE, 0x0417) /* З */ \
- M(UIH, 0x0418) /* И */ \
- M(USIH, 0x0419) /* Й */ \
- M(UKA, 0x041A) /* К */ \
- M(UEL, 0x041B) /* Л */ \
- M(UEM, 0x041C) /* М */ \
- M(UEN, 0x041D) /* Н */ \
- M(UOH, 0x041E) /* О */ \
- M(UPE, 0x041F) /* П */ \
- M(UER, 0x0420) /* Р */ \
- M(UES, 0x0421) /* С */ \
- M(UTE, 0x0422) /* Т */ \
- M(UUU, 0x0423) /* У */ \
- M(UEF, 0x0424) /* Ф */ \
- M(UHA, 0x0425) /* Х */ \
- M(UTSE, 0x0426) /* Ц */ \
- M(UCHE, 0x0427) /* Ч */ \
- M(USHA, 0x0428) /* Ш */ \
- M(USCHA, 0x0429) /* Щ */ \
- M(UHARD, 0x042A) /* Ъ */ \
- M(UYERU, 0x042B) /* Ы */ \
- M(USOFT, 0x042C) /* Ь */ \
- M(UEH, 0x042D) /* Э */ \
- M(UYU, 0x042E) /* Ю */ \
- M(UYA, 0x042F) /* Я */ \
- M(LAH, 0x0430) /* а */ \
- M(LBE, 0x0431) /* б */ \
- M(LVE, 0x0432) /* в */ \
- M(LGHE, 0x0433) /* г */ \
- M(LDE, 0x0434) /* д */ \
- M(LIE, 0x0435) /* е */ \
- M(LIO, 0x0451) /* ё */ \
- M(LZHE, 0x0436) /* ж */ \
- M(LZE, 0x0437) /* з */ \
- M(LIH, 0x0438) /* и */ \
- M(LSIH, 0x0439) /* й */ \
- M(LKA, 0x043A) /* к */ \
- M(LEL, 0x043B) /* л */ \
- M(LEM, 0x043C) /* м */ \
- M(LEN, 0x043D) /* н */ \
- M(LOH, 0x043E) /* о */ \
- M(LPE, 0x043F) /* п */ \
- M(LER, 0x0440) /* р */ \
- M(LES, 0x0441) /* с */ \
- M(LTE, 0x0442) /* т */ \
- M(LUU, 0x0443) /* у */ \
- M(LEF, 0x0444) /* ф */ \
- M(LHA, 0x0445) /* х */ \
- M(LTSE, 0x0446) /* ц */ \
- M(LCHE, 0x0447) /* ч */ \
- M(LSHA, 0x0448) /* ш */ \
- M(LSCHA, 0x0449) /* щ */ \
- M(LHARD, 0x044A) /* ъ */ \
- M(LYERU, 0x044B) /* ы */ \
- M(LSOFT, 0x044C) /* ь */ \
- M(LEH, 0x044D) /* э */ \
- M(LYU, 0x044E) /* ю */ \
- M(LYA, 0x044F) /* я */ \
- M(FE, 0x16A0) /* ᚠ */ \
- M(UR, 0x16A2) /* ᚢ */ \
- M(THURS, 0x16A6) /* ᚦ */ \
- M(ANSUZ, 0x16A8) /* ᚨ */ \
- M(RAIDO, 0x16B1) /* ᚱ */ \
- M(KAUNA, 0x16B2) /* ᚲ */ \
- M(GEBO, 0x16B7) /* ᚷ */ \
- M(WUNJO, 0x16B9) /* ᚹ */ \
- M(HAGLZ, 0x16BA) /* ᚺ */ \
- M(NAUDZ, 0x16BE) /* ᚾ */ \
- M(ISAZ, 0x16C1) /* ᛁ */ \
- M(JERAN, 0x16C3) /* ᛃ */ \
- M(IWAZ, 0x16C7) /* ᛇ */ \
- M(PERTH, 0x16C8) /* ᛈ */ \
- M(ALGIZ, 0x16C9) /* ᛉ */ \
- M(SOWIL, 0x16CA) /* ᛊ */ \
- M(TIWAZ, 0x16CF) /* ᛏ */ \
- M(BEORC, 0x16D2) /* ᛒ */ \
- M(EHWAZ, 0x16D6) /* ᛖ */ \
- M(MANNZ, 0x16D7) /* ᛗ */ \
- M(LAUKZ, 0x16DA) /* ᛚ */ \
- M(INGWZ, 0x16DC) /* ᛜ */ \
- M(DAGAZ, 0x16DE) /* ᛞ */ \
- M(ETHEL, 0x16DF) /* ᛟ */ \
- M(JRO, 0x308D) /* ろ */ \
- M(JWA, 0x308F) /* わ */ \
- M(JNU, 0x306C) /* ぬ */ \
- M(JHU, 0x3075) /* ふ */ \
- M(JA, 0x3042) /* あ */ \
- M(JU, 0x3046) /* う */ \
- M(JE, 0x3048) /* え */ \
- M(JO, 0x304A) /* お */ \
- M(JYA, 0x3084) /* や */ \
- M(JYU, 0x3086) /* ゆ */ \
- M(JYO, 0x3088) /* よ */ \
- M(JHO, 0x307B) /* ほ */ \
- M(JHE, 0x3078) /* へ */ \
- M(JMU, 0x3080) /* む */ \
- M(JTA, 0x305F) /* た */ \
- M(JTE, 0x3066) /* て */ \
- M(JI, 0x3044) /* い */ \
- M(JSU, 0x3059) /* す */ \
- M(JKA, 0x3095) /* ゕ */ \
- M(JN, 0x3093) /* ん */ \
- M(JNA, 0x306A) /* な */ \
- M(JNI, 0x306B) /* に */ \
- M(JRA, 0x3089) /* ら */ \
- M(JSE, 0x305B) /* せ */ \
- M(JVV, 0x309B) /* ゛*/ \
- M(JSV, 0x309C) /* ゜*/ \
- M(JTI, 0x3061) /* ち */ \
- M(JTO, 0x3068) /* と */ \
- M(JSI, 0x3057) /* し */ \
- M(JHA, 0x306F) /* は */ \
- M(JKI, 0x304D) /* き */ \
- M(JKU, 0x304F) /* く */ \
- M(JMA, 0x307E) /* ま */ \
- M(JNO, 0x306E) /* の */ \
- M(JRI, 0x308A) /* り */ \
- M(JRE, 0x308C) /* れ */ \
- M(JKE, 0x3051) /* け */ \
- M(JTU, 0x3064) /* つ */ \
- M(JSA, 0x3055) /* さ */ \
- M(JSO, 0x305D) /* そ */ \
- M(JHI, 0x3072) /* ひ */ \
- M(JKO, 0x3053) /* こ */ \
- M(JMI, 0x307F) /* み */ \
- M(JMO, 0x3082) /* も */ \
- M(JNE, 0x306D) /* ね */ \
- M(JRU, 0x308B) /* る */ \
- M(JME, 0x3081) /* め */ \
- M(ALEF, 0x05D0) /* א */ \
- M(BET, 0x05D1) /* ב */ \
- M(GIMEL, 0x05D2) /* ג */ \
- M(DALET, 0x05D3) /* ד */ \
- M(HE, 0x05D4) /* ה */ \
- M(VAV, 0x05D5) /* ו */ \
- M(ZAYIN, 0x05D6) /* ז */ \
- M(CHET, 0x05D7) /* ח */ \
- M(TET, 0x05D8) /* ט */ \
- M(YOD, 0x05D9) /* י */ \
- M(KAF, 0x05DB) /* כ */ \
- M(LAMED, 0x05DC) /* ל */ \
- M(MEM, 0x05DE) /* מ */ \
- M(NUN, 0x05E0) /* נ */ \
- M(SAMCH, 0x05E1) /* ס */ \
- M(AYIN, 0x05E2) /* ע */ \
- M(PE, 0x05E4) /* פ */ \
- M(TZADI, 0x05E6) /* צ */ \
- M(KOF, 0x05E7) /* ק */ \
- M(RESH, 0x05E8) /* ר */ \
- M(SHIN, 0x05E9) /* ש */ \
- M(TAV, 0x05EA) /* ת */
-// clang-format on
-
-#define UC_KEYCODE(name, code) name = UC(code), // LALP = UC(0x03B1),
-
-#define UCM_NAME(name, code) UCM_ ## name, // UCM_LALP,
-#define UCM_ENTRY(name, code) [UCM_ ## name] = code, // [UCM_LALP] = 0x03B1,
-#define UCM_KEYCODE(name, code) name = UM(UCM_ ## name), // LALP = UM(UCM_LALP)
-
-#if defined(UNICODE_ENABLE)
-enum unicode_keycodes {
- FOREACH_UNICODE(UC_KEYCODE)
-};
-#elif defined(UNICODEMAP_ENABLE)
-enum unicode_names {
- FOREACH_UNICODE(UCM_NAME)
-};
-
-extern const uint32_t unicode_map[] PROGMEM;
-
-enum unicode_keycodes {
- FOREACH_UNICODE(UCM_KEYCODE)
-};
-#endif
-
-
-#define ALPHA UP(LALP, UALP)
-#define BETA UP(LBET, UBET)
-#define GAMMA UP(LGAM, UGAM)
-#define DELTA UP(LDEL, UDEL)
-#define EPSLN UP(LEPS, UEPS)
-#define ZETA UP(LZET, UZET)
-#define ETA UP(LETA, UETA)
-#define THETA UP(LTHE, UTHE)
-#define IOTA UP(LIOT, UIOT)
-#define KAPPA UP(LKAP, UKAP)
-#define LAMBD UP(LLAM, ULAM)
-#define GMU UP(LMU, UMU)
-#define NU UP(LNU, UNU)
-#define XI UP(LXI, UXI)
-#define OMCRN UP(LOMI, UOMI)
-#define PI UP(LPI, UPI)
-#define RHO UP(LRHO, URHO)
-#define SIGMA UP(LSIG, USIG)
-#define TAU UP(LTAU, UTAU)
-#define UPSLN UP(LUPS, UUPS)
-#define PHI UP(LPHI, UPHI)
-#define CHI UP(LCHI, UCHI)
-#define PSI UP(LPSI, UPSI)
-#define OMEGA UP(LOME, UOME)
-
-#define AH UP(LAH, UAH)
-#define BE UP(LBE, UBE)
-#define VE UP(LVE, UVE)
-#define GHE UP(LGHE, UGHE)
-#define DE UP(LDE, UDE)
-#define IE UP(LIE, UIE)
-#define IO UP(LIO, UIO)
-#define ZHE UP(LZHE, UZHE)
-#define ZE UP(LZE, UZE)
-#define IH UP(LIH, UIH)
-#define SIH UP(LSIH, USIH)
-#define KA UP(LKA, UKA)
-#define EL UP(LEL, UEL)
-#define EM UP(LEM, UEM)
-#define EN UP(LEN, UEN)
-#define OH UP(LOH, UOH)
-#define PE UP(LPE, UPE)
-#define ER UP(LER, UER)
-#define ES UP(LES, UES)
-#define TE UP(LTE, UTE)
-#define UU UP(LUU, UUU)
-#define EF UP(LEF, UEF)
-#define HA UP(LHA, UHA)
-#define TSE UP(LTSE, UTSE)
-#define CHE UP(LCHE, UCHE)
-#define SHA UP(LSHA, USHA)
-#define SCHA UP(LSCHA, USCHA)
-#define HARD UP(LHARD, UHARD)
-#define YERU UP(LYERU, UYERU)
-#define SOFT UP(LSOFT, USOFT)
-#define EH UP(LEH, UEH)
-#define YU UP(LYU, UYU)
-#define YA UP(LYA, UYA)
diff --git a/users/ridingqwerty/wrappers.h b/users/ridingqwerty/wrappers.h
deleted file mode 100644
index dbfd8ea050..0000000000
--- a/users/ridingqwerty/wrappers.h
+++ /dev/null
@@ -1,156 +0,0 @@
-#pragma once
-#include "ridingqwerty.h"
-
-// clang-format off
-#define LAYOUT_atreus_wrapper(...) LAYOUT_atreus(__VA_ARGS__)
-#define LAYOUT_minorca_wrapper(...) LAYOUT_minorca(__VA_ARGS__)
-
-#define ___________VI_ARROWS______________ KC_LEFT, KC_DOWN, KC_UP, KC_RGHT
-
-// 1......__2......__3......__4......__5...... 1......__2......__3......__4......__5......
-#define ________________QWERTY_L1__________________ KC_Q, KC_W, KC_E, KC_R, KC_T
-#define ________________QWERTY_L2__________________ KC_A, KC_S, KC_D, KC_F, KC_G
-#define ________________QWERTY_L3__________________ KC_Z, KC_X, KC_C, KC_V, KC_B
-
-#define ________________QWERTY_R1__________________ KC_Y, KC_U, KC_I, KC_O, KC_P
-#define ________________QWERTY_R2__________________ KC_H, KC_J, KC_K, KC_L, KC_SCLN
-#define ________________QWERTY_R3__________________ KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH
-
-
-#define ________________ATREUS_L1__________________ ________________QWERTY_L1__________________
-#define ________________ATREUS_L2__________________ ED(A), KC_S, KC_D, KC_F, KC_G
-#define ________________ATREUS_L3__________________ LS(Z), KC_X, KC_C, KC_V, KC_B
-
-#define ________________ATREUS_R1__________________ ________________QWERTY_R1__________________
-#define ________________ATREUS_R2__________________ KC_H, KC_J, KC_K, KC_L, NM(SCLN)
-#define ________________ATREUS_R3__________________ KC_N, KC_M, KC_COMM, FK(DOT), RS(SLSH)
-
-#define ________________FNHOMEROW_L2_______________ C(KC_A), G(KC_S), A(KC_D), S(KC_F), KC_G
-#define ________________FNHOMEROW_R2_______________ KC_H, S(KC_J), A(KC_K), G(KC_L), C(SCLN)
-
-#define ____THUMBS_R4___ ED(ESC), DB(TAB)
-#define _____BLANK_R4___ _______, _______
-#define ________________ _______, _______
-
-
-#define ________________COLEMAK_L1_________________ KC_Q, KC_W, KC_F, KC_P, KC_G
-#define ________________COLEMAK_L2_________________ ED(A), KC_R, KC_S, KC_T, KC_D
-#define ________________COLEMAK_L3_________________ LS(Z), KC_X, KC_C, KC_V, KC_B
-
-#define ________________COLEMAK_R1_________________ KC_J, KC_L, KC_U, KC_Y, KC_SCLN
-#define ________________COLEMAK_R2_________________ KC_H, KC_N, KC_E, KC_I, NM(O)
-#define ________________COLEMAK_R3_________________ KC_K, KC_M, KC_COMM, FK(DOT), RS(SLSH)
-
-
-#define ________________DVORAK_L1__________________ KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y
-#define ________________DVORAK_L2__________________ ED(A), KC_O, KC_E, KC_U, KC_I
-#define ________________DVORAK_L3__________________ LS(SCLN),KC_Q, KC_J, KC_K, KC_X
-
-#define ________________DVORAK_R1__________________ KC_F, KC_G, KC_C, KC_R, KC_L
-#define ________________DVORAK_R2__________________ KC_D, KC_H, KC_T, KC_N, NM(S)
-#define ________________DVORAK_R3__________________ KC_B, KC_M, KC_W, FK(V), RS(Z)
-
-#define ________________BOTTOM_L4__________________ LC(ESC), LG(TAB), LA(LBRC), LS(RBRC), NM(BSPC)
-#define ________________BOTTOM_R4__________________ SM(SPC), RS(MINS), RA(EQL), RG_QUOT, RC(ENT)
-
-
-#define ________________NUMROW_L1__________________ KC_1, KC_2, KC_3, KC_4, KC_5
-#define ________________NUMROW_R1__________________ KC_6, KC_7, KC_8, KC_9, KC_0
-
-#define ________________NUMPAD_R1__________________ _______, KC_7, KC_8, KC_9, KC_0
-#define ________________NUMPAD_R2__________________ _______, KC_4, KC_5, KC_6, _______
-#define ________________NUMPAD_R3__________________ _______, KC_1, KC_2, KC_3, KC_BSLS
-#define ________________NUMPAD_R4__________________ KC_0, KC_0, KC_DOT, KC_3, _______
-
-
-#define ________________SYMROW_L1__________________ KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC
-#define ________________SYMROW_R1__________________ KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN
-
-
-#define ________________ _______, _______
-#define _________________________ _______, _______, _______
-#define __________________________________ _______, _______, _______, _______
-#define ___________________________________________ _______, _______, _______, _______, _______
-#define ___________________________________________ _______, _______, _______, _______, _______
-#define ___________________________________________ _______, _______, _______, _______, _______
-#define ________________BLANK______________________ ___________________________________________
-#define ________________BLOCK______________________ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO
-#define XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ________________BLOCK______________________
-
-#define ________________FKEYROW_L1_________________ KC_F1, KC_F2, KC_F3, KC_F4, KC_F5
-#define ________________FKEYROW_R1_________________ KC_F6, KC_F7, KC_F8, KC_F9, KC_F10
-
-#define ________________EDITOR_L1__________________ KC_GRV, _______, KC_END, _______, KC_F5
-#define ________________EDITOR_L2__________________ KC_HOME, _______, KC_DEL, _______, _______
-#if defined(TAP_DANCE_ENABLE)
-#define ________________EDITOR_L3__________________ _______, KC_VOLD, KC_VOLU, CCCV, TD_BRC
-#else
-#define ________________EDITOR_L3__________________ _______, KC_VOLD, KC_VOLU, CCCV, _______
-#endif
-
-#define ________________EDITOR_R1__________________ _______, _______, KC_INS, _______, KC_PGUP
-#define ________________EDITOR_R2__________________ ___________VI_ARROWS______________, _______
-#define ________________EDITOR_R3__________________ KC_PGDN, _______, _______, _______, KC_BSLS
-
-
-#define ________________DEBUG_L1___________________ DB_TOGG, _______, _______, RNGWORD, SARCASM
-#define ________________DEBUG_L2___________________ GREEK, RUSSIAN, HIRAGAN, RUNES, _______
-#define ________________DEBUG_L3___________________ _______, _______, _______, VERSION, _______
-
-#define ________________DEBUG_R1___________________ VPRWAVE, STRAYA, _______, TESTING, _______
-#define ________________DEBUG_R2___________________ _______, _______, EE_CLR, QK_BOOT, MAKE
-#define ________________DEBUG_R3___________________ QWERTY, DVORAK, COLEMAK, _______, _______
-
-
-#define ________________SECRET_L1__________________ _______, _______, _______, SECRET0, SECRET1
-#define ________________SECRET_L2__________________ SECRET4, SECRET8, _______, _______, _______
-#define ________________SECRET_L3__________________ SECRET7, _______, SECRET2, SECRET5, _______
-
-#define ________________SECRET_R1__________________ _______, _______, _______, _______, _______
-#define ________________SECRET_R2__________________ _______, _______, _______, SECRET6, _______
-#define ________________SECRET_R3__________________ _______, SECRET3, _______, _______, _______
-
-
-#if defined(UNICODEMAP_ENABLE)
-// Greek
-#define ________________GREEK_L1___________________ THETA, OMEGA, EPSLN, RHO, TAU
-#define ________________GREEK_L2___________________ ALPHA, SIGMA, DELTA, PHI, GAMMA
-#define ________________GREEK_L3___________________ ZETA, XI, CHI, PHI, BETA
-#define ________________GREEK_R1___________________ UPSLN, UPSLN, IOTA, OMCRN, PI
-#define ________________GREEK_R2___________________ ETA, PSI, KAPPA, LAMBD, NM(SCLN)
-#define ________________GREEK_R3___________________ NU, GMU, KC_COMM, FK(DOT), RS(SLSH)
-
-// Elder Futhark
-#define ________________FTHRK_L1___________________ INGWZ, WUNJO, EHWAZ, RAIDO, TIWAZ
-#define ________________FTHRK_L2___________________ ANSUZ, SOWIL, DAGAZ, FE, GEBO
-#define ________________FTHRK_L3___________________ ALGIZ, THURS, KAUNA, WUNJO, BEORC
-#define ________________FTHRK_R1___________________ IWAZ, UR, ISAZ, ETHEL, PERTH
-#define ________________FTHRK_R2___________________ HAGLZ, JERAN, KAUNA, LAUKZ, KC_SCLN
-#define ________________FTHRK_R3___________________ NAUDZ, MANNZ, KC_COMM, KC_DOT, KC_SLSH
-
-// Russian Cyrillic
-#define ________________CYRLC_L1___________________ YA, SCHA, IE, ER, TE
-#define ________________CYRLC_L2___________________ AH, ES, DE, EF, GHE
-#define ________________CYRLC_L3___________________ ZE, HA, TSE, VE, BE
-#define ________________CYRLC_R1___________________ YERU, UU, IH, OH, PE
-#define ________________CYRLC_R2___________________ CHE, SIH, KA, EL, SOFT
-#define ________________CYRLC_R3___________________ EN, EM, YU, SCHA, EH
-#define ________________CYRLC_R4___________________ SM(SPC), IO, HARD, ZHE, RC(ENT)
-
-// Hiragana
-#define ________________JIS1_R1____________________ JTA, JTE, JI, JSU, JKA
-#define ________________JIS1_R2____________________ JTI, JTO, JSI, JHA, JKI
-#define ________________JIS1_R3____________________ JMI, JMO, KC_COMM, KC_DOT, MO(_HIRA2)
-#define ________________JIS1_L1____________________ JN, JNA, JNI, JRA, JSE
-#define ________________JIS1_L2____________________ JKU, JMA, JNO, JRI, JRE
-#define ________________JIS1_L3____________________ JTU, JSA, JSO, JHI, JKO
-
-#define ________________JIS2_R1____________________ JRO, JWA, JNU, JHU, JA
-#define ________________JIS2_R2____________________ JYO, JHO, JHE, JMU, JVV
-#define ________________JIS2_R3____________________ JRU, JME, KC_COMM, KC_DOT, _______
-#define ________________JIS2_L1____________________ JU, JE, JO, JYA, JYU
-#define ________________JIS2_L2____________________ JSV, JKE, JMI, JMO, JNE
-#define ________________JIS2_L3____________________ JTU, JSA, JSO, JHI, JKO
-
-#endif
-// clang-format on
diff --git a/users/rishka/rishka.c b/users/rishka/rishka.c
deleted file mode 100644
index c988072d63..0000000000
--- a/users/rishka/rishka.c
+++ /dev/null
@@ -1 +0,0 @@
-#include "rishka.h"
diff --git a/users/rishka/rishka.h b/users/rishka/rishka.h
deleted file mode 100644
index 96915993dc..0000000000
--- a/users/rishka/rishka.h
+++ /dev/null
@@ -1,74 +0,0 @@
-#pragma once
-
-#if (!defined(LAYOUT) && defined(KEYMAP))
-# define LAYOUT KEYMAP
-#endif
-
-#undef MK_MOMENTARY_ACCEL
-#define MK_3_SPEED 1
-
-#define LAYOUT_ergodox_pretty_wrapper(...) LAYOUT_ergodox_pretty(__VA_ARGS__)
-#define LAYOUT_wrapper(...) LAYOUT(__VA_ARGS__)
-#define LAYOUT_5x6_wrapper(...) LAYOUT_5x6(__VA_ARGS__)
-#define KC_MLSF OSM(MOD_LSFT)
-#define KC_MRSF OSM(MOD_RSFT)
-
-#define OS_LGUI OSM(MOD_LGUI)
-#define OS_RGUI OSM(MOD_RGUI)
-#define OS_LSFT OSM(MOD_LSFT)
-#define OS_RSFT OSM(MOD_RSFT)
-#define OS_LCTL OSM(MOD_LCTL)
-#define OS_RCTL OSM(MOD_RCTL)
-#define OS_LALT OSM(MOD_LALT)
-#define OS_RALT OSM(MOD_RALT)
-#define OS_MEH OSM(MOD_MEH)
-#define OS_HYPR OSM(MOD_HYPR)
-#define MOUSE_L LSFT(KC_WH_D)
-#define MOUSE_R LSFT(KC_WH_U)
-#define OSX_LOCK LCTL(LGUI(KC_Q))
-
-// layout parts for easy reuse between keyboard keymaps
-// ,-----+-----+-----+-----+-----, ,-----+-----+-----+-----+-----,
-// | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 |
-// ,-----+-----+-----+-----+-----, ,-----+-----+-----+-----+-----,
-#define ________________NUMBERS_L__________________ KC_1, KC_2, KC_3, KC_4, KC_5
-#define ________________NUMBERS_R__________________ KC_6, KC_7, KC_8, KC_9, KC_0
-
-// ,-----+-----+-----+-----+-----, ,-----+-----+-----+-----+-----,
-// | F1 | F2 | F3 | F4 | F5 | | F6 | F7 | F8 | F9 | F10 |
-// ,-----+-----+-----+-----+-----, ,-----+-----+-----+-----+-----,
-#define ______________________F_L__________________ KC_F1, KC_F2, KC_F3, KC_F4, KC_F5
-#define ______________________F_R__________________ KC_F6, KC_F7, KC_F8, KC_F9, KC_F10
-
-// ,-----+-----+-----+-----+-----, ,-----+-----+-----+-----+-----,
-// | Q | W | E | R | T | | Y | U | I | O | P |
-// ,-----+-----+-----x-----x-----, ,-----x-----x-----+-----+-----,
-// | A | S | D | F | G | | H | J | K | L | ; |
-// ,-----+-----+-----x-----x-----, ,-----x-----x-----+-----+-----,
-// | Z | X | C | V | B | | N | M | , | . | / |
-// ,-----+-----+-----+-----+-----, ,-----+-----+-----+-----+-----,
-#define _________________QWERTY_L1_________________ KC_Q , KC_W , KC_E , KC_R , KC_T
-#define _________________QWERTY_L2_________________ KC_A , KC_S , KC_D , KC_F , KC_G
-#define _________________QWERTY_L3_________________ KC_Z , KC_X , KC_C , KC_V , KC_B
-
-#define _________________QWERTY_R1_________________ KC_Y , KC_U , KC_I , KC_O , KC_P
-#define _________________QWERTY_R2_________________ KC_H , KC_J , KC_K , KC_L , KC_SCLN
-#define _________________QWERTY_R3_________________ KC_N , KC_M , KC_COMM, KC_DOT , KC_SLSH
-
-#define _____________MOD_QWERTY_L2_________________ CTL_T(KC_A), SFT_T(KC_S), GUI_T(KC_D), ALT_T(KC_F), KC_G
-#define _____________MOD_QWERTY_R2_________________ KC_H , ALT_T(KC_J), GUI_T(KC_K), SFT_T(KC_L), CTL_T(KC_SCLN)
-
-// ,-----+-----+-----+-----+-----, ,-----+-----+-----+-----+-----,
-// | ! | @ | { | } | _ | | \ | 7 | 8 | 9 | |
-// ,-----+-----+-----x-----x-----, ,-----x-----x-----+-----+-----,
-// | # | $ | ( | ) | - | | = | 4 | 5 | 6 | | |
-// ,-----+-----+-----x-----x-----, ,-----x-----x-----+-----+-----,
-// | % | ^ | [ | ] | + | | * | 1 | 2 | 3 | / |
-// ,-----+-----+-----+-----+-----, ,-----+-----+-----+-----+-----,
-#define _________________SYMBOL_L1_________________ KC_EXLM, KC_AT , KC_LCBR, KC_RCBR, KC_UNDS
-#define _________________SYMBOL_L2_________________ KC_HASH, KC_DLR , KC_LPRN, KC_RPRN, KC_MINS
-#define _________________SYMBOL_L3_________________ KC_PERC, KC_CIRC, KC_LBRC, KC_RBRC, KC_PLUS
-
-#define _________________SYMBOL_R1_________________ KC_BSLS, KC_P7, KC_P8 , KC_P9, KC_PAST
-#define _________________SYMBOL_R2_________________ KC_EQL , KC_P4, KC_P5, KC_P6, KC_PPLS
-#define _________________SYMBOL_R3_________________ KC_ASTR, KC_P1, KC_P2, KC_P3, KC_PMNS
diff --git a/users/rishka/rules.mk b/users/rishka/rules.mk
deleted file mode 100644
index a0b8e58470..0000000000
--- a/users/rishka/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-SRC += rishka.c
diff --git a/users/rmeli/.gitignore b/users/rmeli/.gitignore
deleted file mode 100644
index 799fc4adc1..0000000000
--- a/users/rmeli/.gitignore
+++ /dev/null
@@ -1,2 +0,0 @@
-# Ignore symlinks to keymaps
-km_* \ No newline at end of file
diff --git a/users/rmeli/config.h b/users/rmeli/config.h
deleted file mode 100644
index c51093ab38..0000000000
--- a/users/rmeli/config.h
+++ /dev/null
@@ -1,40 +0,0 @@
-/*
-Copyright 2021-2022 Rocco Meli <@RMeli>
-
-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 TAPPING_TERM 200
-
-#ifdef UNICODEMAP_ENABLE
-# define UNICODE_SELECTED_MODES UNICODE_MODE_MACOS, UNICODE_MODE_LINUX
-#endif
-
-#ifdef AUTO_SHIFT_ENABLED
-# define AUTO_SHIFT_REPEAT
-#endif
-
-#ifdef CAPS_WORD_ENABLE
-# define BOTH_SHIFTS_TURNS_ON_CAPS_WORD
-//#define DOUBLE_TAP_SHIFT_TURNS_ON_CAPS_WORD
-#endif
-
-#ifdef RGBLIGHT_ENABLE
-# define RGBLIGHT_LIMIT_VAL 120
-# define RGBLIGHT_HUE_STEP 10
-# define RGBLIGHT_SAT_STEP 17
-# define RGBLIGHT_VAL_STEP 17
-#endif
diff --git a/users/rmeli/keyrecords/tap_dances.c b/users/rmeli/keyrecords/tap_dances.c
deleted file mode 100644
index 4e7ac31962..0000000000
--- a/users/rmeli/keyrecords/tap_dances.c
+++ /dev/null
@@ -1,139 +0,0 @@
-/*
-Copyright 2021-2022 Rocco Meli <@RMeli>
-
-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 "keyrecords/tap_dances.h"
-
-// + ---------- +
-// + TAP DANCES |
-// + ---------- +
-
-// Tap dances definitions
-// Need to needs to be defined in a .c file to avoid a linker error (multiple definitions)
-tap_dance_action_t tap_dance_actions[] = {
- [TD_LSPO_CAPS] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, LSPO_CAPS_finished, LSPO_CAPS_reset),
- [TD_RSPC_CAPS] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, RSPC_CAPS_finished, RSPC_CAPS_reset),
- [TD_ESC_DEL] = ACTION_TAP_DANCE_DOUBLE(KC_ESC, KC_DEL),
-};
-
-// + ------ +
-// + DANCES |
-// + ------ +
-
-// https://github.com/qmk/qmk_firmware/blob/9294258c02d3e025e01935a06c4d9f1997535bda/users/gordon/gordon.c#L112-L135
-td_state_t hold_cur_dance(tap_dance_state_t *state) {
- if (state->count == 1) {
- if (state->interrupted) {
- if (!state->pressed)
- return TD_SINGLE_TAP;
- else
- return TD_SINGLE_HOLD;
- } else {
- if (!state->pressed)
- return TD_SINGLE_TAP;
- else
- return TD_SINGLE_HOLD;
- }
- } else if (state->count == 2) {
- if (state->pressed)
- return TD_NONE;
- else
- return TD_DOUBLE_TAP;
- } else
- return TD_NONE;
-}
-
-// + ------------------------------------------------ +
-// + LEFT SHIFT PARENTHESIS OPEN (LSPO) AND CAPS LOCK |
-// + ------------------------------------------------ +
-
-// Create an instance of 'td_tap_t' for the 'LSPO_CAPS' tap dance.
-static td_tap_t LSPO_CAPS_state = {.is_press_action = true, .state = TD_NONE};
-
-void LSPO_CAPS_finished(tap_dance_state_t *state, void *user_data) {
- LSPO_CAPS_state.state = hold_cur_dance(state);
- switch (LSPO_CAPS_state.state) {
- case TD_SINGLE_TAP:
- register_code16(KC_LPRN);
- break;
- case TD_SINGLE_HOLD:
- register_code16(KC_LSFT);
- break;
- case TD_DOUBLE_TAP:
- register_code16(KC_CAPS);
- break;
- case TD_NONE:
- break;
- }
-}
-
-void LSPO_CAPS_reset(tap_dance_state_t *state, void *user_data) {
- switch (LSPO_CAPS_state.state) {
- case TD_SINGLE_TAP:
- unregister_code16(KC_LPRN);
- break;
- case TD_SINGLE_HOLD:
- unregister_code16(KC_LSFT);
- break;
- case TD_DOUBLE_TAP:
- unregister_code16(KC_CAPS);
- break;
- case TD_NONE:
- break;
- }
- LSPO_CAPS_state.state = TD_NONE;
-}
-
-// + -------------------------------------------------- +
-// + RIGHT SHIFT PARENTHESIS CLOSE (RSPC) AND CAPS LOCK |
-// + -------------------------------------------------- +
-
-// Create an instance of 'td_tap_t' for the 'RSPC_CAPS' tap dance.
-static td_tap_t RSPC_CAPS_state = {.is_press_action = true, .state = TD_NONE};
-
-void RSPC_CAPS_finished(tap_dance_state_t *state, void *user_data) {
- RSPC_CAPS_state.state = hold_cur_dance(state);
- switch (RSPC_CAPS_state.state) {
- case TD_SINGLE_TAP:
- register_code16(KC_RPRN);
- break;
- case TD_SINGLE_HOLD:
- register_code16(KC_RSFT);
- break;
- case TD_DOUBLE_TAP:
- register_code16(KC_CAPS);
- break;
- case TD_NONE:
- break;
- }
-}
-
-void RSPC_CAPS_reset(tap_dance_state_t *state, void *user_data) {
- switch (RSPC_CAPS_state.state) {
- case TD_SINGLE_TAP:
- unregister_code16(KC_RPRN);
- break;
- case TD_SINGLE_HOLD:
- unregister_code16(KC_RSFT);
- break;
- case TD_DOUBLE_TAP:
- unregister_code16(KC_CAPS);
- break;
- case TD_NONE:
- break;
- }
- RSPC_CAPS_state.state = TD_NONE;
-}
diff --git a/users/rmeli/keyrecords/tap_dances.h b/users/rmeli/keyrecords/tap_dances.h
deleted file mode 100644
index 40866fe17f..0000000000
--- a/users/rmeli/keyrecords/tap_dances.h
+++ /dev/null
@@ -1,71 +0,0 @@
-/*
-Copyright 2021-2022 Rocco Meli <@RMeli>
-
-This program is free software: you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program. If not, see <http://www.gnu.org/licenses/>.
-*/
-
-#pragma once
-
-#include QMK_KEYBOARD_H
-
-// https://beta.docs.qmk.fm/using-qmk/software-features/feature_tap_dance#example-4-quad-function-tap-dance-id-example-4
-
-// + ---------- +
-// + TAP DANCES |
-// + ---------- +
-
-// Tap dance enums
-enum {
- TD_LSPO_CAPS, // Tap once for (, hold once for LSFT, tap twice for CAPS
- TD_RSPC_CAPS, // Tap once for ), hold once for RSFT, tap twice for CAPS
- TD_ESC_DEL, // Tap once for KC_ESC, twice for KC_DEL
-};
-
-// Rename tap dances for keymap with shortcuts
-#define TD_LSPC TD(TD_LSPO_CAPS)
-#define TD_RSPC TD(TD_RSPC_CAPS)
-#define TD_ED TD(TD_ESC_DEL)
-
-// + ----------- +
-// + KEY PRESSES |
-// + ----------- +
-
-// Different types of key presses
-typedef enum {
- TD_NONE,
- TD_SINGLE_TAP,
- TD_SINGLE_HOLD,
- TD_DOUBLE_TAP,
-} td_state_t;
-
-// Key press state
-typedef struct {
- bool is_press_action;
- td_state_t state;
-} td_tap_t;
-
-// + --------- +
-// + FUNCTIONS |
-// + --------- +
-
-// Tap dance for fast modifiers; favors being held over being tapped.
-td_state_t hold_cur_dance(tap_dance_state_t *state);
-
-// Left Shift Parenthesis Open (LSPO) and Caps Lock (CAPS) on DOUBLE_TAP
-void LSPO_CAPS_finished(tap_dance_state_t *state, void *user_data);
-void LSPO_CAPS_reset(tap_dance_state_t *state, void *user_data);
-
-// Right Shift Parenthesis Close (RSPC) and Caps Lock (CAPS) on DOUBLE_TAP
-void RSPC_CAPS_finished(tap_dance_state_t *state, void *user_data);
-void RSPC_CAPS_reset(tap_dance_state_t *state, void *user_data);
diff --git a/users/rmeli/keyrecords/unicode.h b/users/rmeli/keyrecords/unicode.h
deleted file mode 100644
index 63c355415e..0000000000
--- a/users/rmeli/keyrecords/unicode.h
+++ /dev/null
@@ -1,86 +0,0 @@
-/*
-Copyright 2021-2022 Rocco Meli <@RMeli>
-
-This program is free software: you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program. If not, see <http://www.gnu.org/licenses/>.
-*/
-
-#pragma once
-
-#include QMK_KEYBOARD_H
-
-// Needs to be active on the OS side as well
-// https://docs.qmk.fm/#/feature_unicode?id=input-modes
-
-enum unicode_names {
- aGRV,
- AGRV,
- aUML,
- AUML,
- eGRV,
- EGRV,
- eACT,
- EACT,
- iGRV,
- IGRV,
- iCIR,
- ICIR,
- oGRV,
- OGRV,
- oUML,
- OUML,
- uGRV,
- UGRV,
- uUML,
- UUML,
-};
-
-const uint32_t unicode_map[] PROGMEM = {
- // KC_A
- [aGRV] = 0x00E0, // à
- [AGRV] = 0x00C0, // À
- [aUML] = 0x00E4, // ä
- [AUML] = 0x00C4, // Ä
- // KC_E
- [eGRV] = 0x00E8, // è
- [EGRV] = 0x00C8, // È
- [eACT] = 0x00E9, // é
- [EACT] = 0x00C9, // É
- // KC_I
- [iGRV] = 0x00EC, // ì
- [IGRV] = 0x00CC, // Ì
- [iCIR] = 0x00EE, // î
- [ICIR] = 0x00CE, // Î
- // KC_O
- [oGRV] = 0x00F2, // ò
- [OGRV] = 0x00D2, // Ò
- [oUML] = 0x00F6, // ö
- [OUML] = 0x00D6, // Ö
- // KC_U
- [uGRV] = 0x00F9, // ù
- [UGRV] = 0x00D9, // Ù
- [uUML] = 0x00FC, // ü
- [UUML] = 0x00DC, // Ü
-};
-
-// Accents
-#define A_GRV UP(aGRV, AGRV)
-#define A_UML UP(aUML, AUML)
-#define E_GRV UP(eGRV, EGRV)
-#define E_ACT UP(eACT, EACT)
-#define I_GRV UP(iGRV, IGRV)
-#define I_CIR UP(iCIR, ICIR)
-#define O_GRV UP(oGRV, OGRV)
-#define O_UML UP(oUML, OUML)
-#define U_GRV UP(uGRV, UGRV)
-#define U_UML UP(uUML, UUML)
diff --git a/users/rmeli/keyrecords/wrappers.h b/users/rmeli/keyrecords/wrappers.h
deleted file mode 100644
index 3513fd0abb..0000000000
--- a/users/rmeli/keyrecords/wrappers.h
+++ /dev/null
@@ -1,178 +0,0 @@
-/*
-Copyright 2020 Christopher Courtney, aka Drashna Jael're (@drashna) <drashna@live.com>
-Copyright 2020 @jola5
-Copyright 2021-2022 Rocco Meli <@RMeli>
-
-This program is free software: you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program. If not, see <http://www.gnu.org/licenses/>.
-*/
-
-#pragma once
-
-#ifdef UNICODEMAP_ENABLE
-# include "keyrecords/unicode.h"
-#endif
-
-// + ------------- +
-// + HOME ROW MODS |
-// + ------------- +
-
-// https://precondition.github.io/home-row-mods
-
-// Left, QWERTY
-#define HM_A LCTL_T(KC_A)
-#define HM_S LALT_T(KC_S)
-#define HM_D LGUI_T(KC_D)
-#define HM_F LSFT_T(KC_F)
-
-// Left, COLEMAK
-#define HMCMK_A LCTL_T(KC_A)
-#define HMCMK_R LALT_T(KC_R)
-#define HMCMK_S LGUI_T(KC_S)
-#define HMCMK_T LSFT_T(KC_T)
-
-// Right, QWERTY
-#define HM_J RSFT_T(KC_J)
-#define HM_K RGUI_T(KC_K)
-#define HM_L LALT_T(KC_L) // LALT, not RALT
-#define HM_SCLN RCTL_T(KC_SCLN)
-
-// Right, COLEMAK
-#define HMCMK_N RSFT_T(KC_N)
-#define HMCMK_E RGUI_T(KC_E)
-#define HMCMK_I LALT_T(KC_I) // LALT, not RALT
-#define HMCMK_O RCTL_T(KC_O)
-
-// clang-format off
-
-// + ------ +
-// + QWERTY |
-// + ------ +
-
-#define _________QWERTY_HRM_LEFT__________ HM_A, HM_S, HM_D, HM_F
-#define _________QWERTY_HRM_RIGHT_________ HM_J, HM_K, HM_L, HM_SCLN
-
-#define _______________QWERTY_L1_x5________________ KC_Q, KC_W, KC_E, KC_R, KC_T
-#ifdef HOME_ROW_MODS_ENABLED
-#define _______________QWERTY_L2_x5________________ _________QWERTY_HRM_LEFT__________, KC_G
-#else
-#define _______________QWERTY_L2_x5________________ KC_A, KC_S, KC_D, KC_F, KC_G
-#endif
-#define _______________QWERTY_L3_x5________________ KC_Z, KC_X, KC_C, KC_V, KC_B
-
-#define _______________QWERTY_R1_x5________________ KC_Y, KC_U, KC_I, KC_O, KC_P
-#ifdef HOME_ROW_MODS_ENABLED
-#define _______________QWERTY_R2_x5________________ KC_H, _________QWERTY_HRM_RIGHT_________
-#else
-#define _______________QWERTY_R2_x5________________ KC_H, KC_J, KC_K, KC_L, KC_SCLN
-#endif
-#define _______________QWERTY_R3_x5________________ KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH
-
-// + ------ +
-
-#define ___________________QWERTY_L1_x6_____________________ KC_TAB, _______________QWERTY_L1_x5________________
-#define ___________________QWERTY_L2_x6_____________________ TD_ED, _______________QWERTY_L2_x5________________
-#define ___________________QWERTY_L3_x6_____________________ TD_LSPC, _______________QWERTY_L3_x5________________
-#define ___________________QWERTY_R1_x6_____________________ _______________QWERTY_R1_x5________________, KC_BSPC
-#define ___________________QWERTY_R2_x6_____________________ _______________QWERTY_R2_x5________________, KC_QUOT
-#define ___________________QWERTY_R3_x6_____________________ _______________QWERTY_R3_x5________________, TD_RSPC
-
-// + -------------- +
-// + COLEMAK_MOD_DH |
-// + -------------- +
-
-#define _____COLEMAK_MOD_DH_HRM_LEFT______ HMCMK_A, HMCMK_R, HMCMK_S, HMCMK_T
-#define _____COLEMAK_MOD_DH_HMR_RIGHT_____ HMCMK_N, HMCMK_E, HMCMK_I, HMCMK_O
-
-#define ____________COLEMAK_MOD_DH_L1_x5___________ KC_Q, KC_W, KC_F, KC_P, KC_B
-#ifdef HOME_ROW_MODS_ENABLED
-#define ____________COLEMAK_MOD_DH_L2_x5___________ _____COLEMAK_MOD_DH_HRM_LEFT______, KC_G
-#else
-#define ____________COLEMAK_MOD_DH_L2_x5___________ KC_A, KC_R, KC_S, KC_T, KC_G
-#endif
-#define ____________COLEMAK_MOD_DH_L3_x5___________ KC_Z, KC_X, KC_C, KC_D, KC_V
-
-#define ____________COLEMAK_MOD_DH_R1_x5___________ KC_J, KC_L, KC_U, KC_Y, KC_SCLN
-#ifdef HOME_ROW_MODS_ENABLED
-#define ____________COLEMAK_MOD_DH_R2_x5___________ KC_M, _____COLEMAK_MOD_DH_HMR_RIGHT_____
-#else
-#define ____________COLEMAK_MOD_DH_R2_x5___________ KC_M, KC_N, KC_E, KC_I, KC_O
-#endif
-#define ____________COLEMAK_MOD_DH_R3_x5___________ KC_K, KC_H, KC_COMM, KC_DOT,KC_SLASH
-
-// + ------- +
-
-#define ________________COLEMAK_MOD_DH_L1_x6________________ KC_TAB, ____________COLEMAK_MOD_DH_L1_x5___________
-#define ________________COLEMAK_MOD_DH_L2_x6________________ TD_ED, ____________COLEMAK_MOD_DH_L2_x5___________
-#define ________________COLEMAK_MOD_DH_L3_x6________________ TD_LSPC, ____________COLEMAK_MOD_DH_L3_x5___________
-#define ________________COLEMAK_MOD_DH_R1_x6________________ ____________COLEMAK_MOD_DH_R1_x5___________, KC_BSPC
-#define ________________COLEMAK_MOD_DH_R2_x6________________ ____________COLEMAK_MOD_DH_R2_x5___________, KC_QUOT
-#define ________________COLEMAK_MOD_DH_R3_x6________________ ____________COLEMAK_MOD_DH_R3_x5___________, TD_RSPC
-
-// + --------------- +
-// + NUMBERS/SYMBOLS |
-// + --------------- +
-
-#define ______________NUMBER_LEFT_x5_______________ KC_1, KC_2, KC_3, KC_4, KC_5
-#define ______________NUMBER_RIGHT_x5______________ KC_6, KC_7, KC_8, KC_9, KC_0
-#define ___________________NUMBER_LEFT_x6___________________ KC_GRV, ______________NUMBER_LEFT_x5_______________
-#define ___________________NUMBER_RIGHT_x6__________________ ______________NUMBER_RIGHT_x5______________, KC_MINS
-
-#define ______________SYMBOL_LEFT_x5_______________ KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC
-#define ______________SYMBOL_RIGHT_x5______________ KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN
-#define ___________________SYMBOL_LEFT_x6___________________ KC_GRV, ______________SYMBOL_LEFT_x5_______________
-#define ___________________SYMBOL_RIGHT_x6__________________ ______________SYMBOL_RIGHT_x5______________, KC_TILD
-
-#define ____________________SYMBOL_R2_x6____________________ KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, KC_GRV
-#define ____________________SYMBOL_R3_x6____________________ KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, KC_TILD
-
-// + ------- +
-// + UNICODE |
-// + ------- +
-
-#ifdef UNICODEMAP_ENABLE
-#define ______________UNICODE_L2_x5________________ A_GRV, E_GRV, I_GRV, O_GRV, U_GRV
-#define ______________UNICODE_L3_x5________________ A_UML, E_ACT, I_CIR, O_UML, U_UML
-#endif
-
-// + ---- +
-// + FUNC |
-// + ---- +
-
-#define ______________FUNC_LEFT_5x_________________ KC_F1, KC_F2, KC_F3, KC_F4, KC_F5
-#define ______________FUNC_RIGHT_5x________________ KC_F6, KC_F7, KC_F8, KC_F9, KC_F10
-#define ____________________FUNC_LEFT_x6____________________ ______________FUNC_LEFT_5x_________________, KC_F6
-#define ____________________FUNC_RIGHT_x6___________________ KC_F7, ______________FUNC_RIGHT_5x________________
-
-// + ---- +
-// + MISC |
-// + ---- +
-
-#define _________________BLANK_5x__________________ _______, _______, _______, _______, _______
-#define ______________________BLANK_6x______________________ _________________BLANK_5x__________________, _______
-
-#define _________________NONE_5x___________________ XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX
-#define ______________________NONE_6x_______________________ _________________NONE_5x___________________, XXXXXXX
-
-#define ________________NAV_R2_x5__________________ XXXXXXX, XXXXXXX, KC_UP, XXXXXXX, KC_PGUP
-#define ________________NAV_R3_x5__________________ XXXXXXX, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN
-#define ____________NAV_VIM_x4____________ KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT
-
-#define _______________CONFIG_R1_x5________________ UC_NEXT, AS_UP, NK_ON, XXXXXXX, XXXXXXX
-#define _______________CONFIG_R2_x5________________ XXXXXXX, AS_TOGG, NK_TOGG, CG_TOGG, XXXXXXX
-#define _______________CONFIG_R3_x5________________ UC_PREV, AS_DOWN, NK_OFF, CG_NORM, XXXXXXX
-
-#define ________________RGB_L2_x5__________________ RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, RGB_SPI
-#define ________________RGB_L3_x5__________________ RGB_RMOD, RGB_HUD, RGB_SAD, RGB_VAD, RGB_SPD
-
-// clang-format on
diff --git a/users/rmeli/oled/oled.c b/users/rmeli/oled/oled.c
deleted file mode 100644
index 27c1e9c600..0000000000
--- a/users/rmeli/oled/oled.c
+++ /dev/null
@@ -1,102 +0,0 @@
-/*
-Copyright 2021-2022 Rocco Meli <@RMeli>
-
-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 "oled/oled.h"
-
-void oled_render_rocco(void) {
- // clang-format off
- static const char PROGMEM rocco[] = {
- // 'rocco', 128x32px
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xf8, 0xf8, 0xf8, 0x18,
- 0x18, 0x18, 0x18, 0x18, 0x38, 0x38, 0x78, 0xf0, 0xe0, 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, 0x00, 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, 0x80,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0xc0, 0xe0, 0xff, 0x7f, 0x3f, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x80, 0xe0, 0xf0, 0x78, 0x38, 0x1c, 0x1c, 0x1c, 0x0c, 0x1c, 0x1c, 0x1c, 0x38, 0xf8, 0xf0,
- 0xe0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xe0, 0xf0, 0x78, 0x38, 0x1c, 0x1c, 0x1c,
- 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0xf8, 0xf8, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xe0,
- 0xf0, 0xf0, 0x38, 0x3c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0xf8, 0xf8, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xf0, 0xf0, 0x38, 0x38, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c,
- 0x38, 0x78, 0xf0, 0xf0, 0xc0, 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, 0x03,
- 0x03, 0x03, 0x03, 0x03, 0x0f, 0x3f, 0xff, 0xf8, 0xe0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x18, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff,
- 0xff, 0xff, 0x18, 0x00, 0x00, 0x00, 0x00, 0x7e, 0xff, 0xff, 0xc1, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff,
- 0xff, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x81, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x1f, 0x1f, 0x1f, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x07, 0x1f, 0x1f, 0x1c, 0x10, 0x00, 0x00, 0x00,
- 0x00, 0x01, 0x03, 0x07, 0x0f, 0x1e, 0x1c, 0x18, 0x18, 0x38, 0x18, 0x18, 0x1c, 0x1c, 0x0f, 0x07,
- 0x03, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x07, 0x0f, 0x0f, 0x1e, 0x1c, 0x1c, 0x1c,
- 0x38, 0x38, 0x18, 0x1c, 0x1c, 0x1c, 0x0e, 0x0e, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03,
- 0x07, 0x0f, 0x0e, 0x1e, 0x1c, 0x1c, 0x18, 0x38, 0x18, 0x1c, 0x1c, 0x1c, 0x1c, 0x0e, 0x0e, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x07, 0x0f, 0x0e, 0x1c, 0x1c, 0x18, 0x18, 0x18, 0x18, 0x18,
- 0x1c, 0x0e, 0x0f, 0x07, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- };
- // clang-format on
-
- oled_write_raw_P(rocco, sizeof(rocco));
-}
-
-void oled_render_meli(void) {
- // clang-format off
- static const char PROGMEM meli[] = {
- // 'meli', 128x32px
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xf8, 0xf8, 0xf8, 0xe0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0xc0, 0xf0, 0xf8, 0xf8, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x18, 0x38, 0xf8, 0xf8, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x30, 0x78, 0x78, 0x78, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0x01, 0x07, 0x1f, 0x3f, 0xfc, 0xf8, 0xf0, 0xf8,
- 0x7e, 0x1f, 0x07, 0x03, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xf0, 0xf0,
- 0x38, 0x18, 0x1c, 0x1c, 0x1c, 0x0c, 0x1c, 0x1c, 0x1c, 0x38, 0xf8, 0xf0, 0xc0, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c,
- 0x1c, 0xfc, 0xfc, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x8c,
- 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0f, 0x0f, 0x0f, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x1f, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x1f, 0x1f, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x07, 0x0f,
- 0x0e, 0x1c, 0x1c, 0x18, 0x18, 0x38, 0x18, 0x18, 0x1c, 0x1c, 0x0c, 0x0e, 0x06, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x0f, 0x1f, 0x1c, 0x18, 0x38, 0x38, 0x18,
- 0x1c, 0x1c, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18,
- 0x18, 0x1f, 0x1f, 0x1f, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- };
- // clang-format on
-
- oled_write_raw_P(meli, sizeof(meli));
-}
diff --git a/users/rmeli/oled/oled.h b/users/rmeli/oled/oled.h
deleted file mode 100644
index b91fe2d76b..0000000000
--- a/users/rmeli/oled/oled.h
+++ /dev/null
@@ -1,26 +0,0 @@
-/*
-Copyright 2021-2022 Rocco Meli <@RMeli>
-
-This program is free software: you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program. If not, see <http://www.gnu.org/licenses/>.
-*/
-
-#pragma once
-#include QMK_KEYBOARD_H
-
-// + --------- +
-// + RENDERERS |
-// + --------- +
-
-void oled_render_rocco(void);
-void oled_render_meli(void);
diff --git a/users/rmeli/readme.md b/users/rmeli/readme.md
deleted file mode 100644
index ed5561dea7..0000000000
--- a/users/rmeli/readme.md
+++ /dev/null
@@ -1,14 +0,0 @@
-Copyright 2022 Rocco Meli @RMeli
-
-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/>. \ No newline at end of file
diff --git a/users/rmeli/rmeli.h b/users/rmeli/rmeli.h
deleted file mode 100644
index d3533db7c3..0000000000
--- a/users/rmeli/rmeli.h
+++ /dev/null
@@ -1,32 +0,0 @@
-/*
-Copyright 2021-2022 Rocco Meli <@RMeli>
-
-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 "keyrecords/wrappers.h"
-
-#ifdef UNICODEMAP_ENABLE
-# include "keyrecords/unicode.h"
-#endif
-
-#ifdef OLED_ENABLE
-# include "oled/oled.h"
-#endif
-
-#ifdef TAP_DANCE_ENABLE
-# include "keyrecords/tap_dances.h"
-#endif
diff --git a/users/rmeli/rules.mk b/users/rmeli/rules.mk
deleted file mode 100644
index db68d6326c..0000000000
--- a/users/rmeli/rules.mk
+++ /dev/null
@@ -1,26 +0,0 @@
-# https://github.com/qmk/qmk_firmware/blob/develop/docs/squeezing_avr.md
-CONSOLE_ENABLE = no
-COMMAND_ENABLE = no # Turned off for Space Cadet Shift and Caps Word
-MOUSEKEY_ENABLE = no
-SPACE_CADET_ENABLE = no # Implemented with tap dance
-GRAVE_ESC_ENABLE = no
-MUSIC_ENABLE = no
-CAPS_WORD_ENABLE = yes
-HOME_ROW_MODS_ENABLE = yes
-
-# VIA only support 4 layers by default
-# Use "#define DYNAMIC_KEYMAP_LAYER_COUNT" in config.h to change the limit
-VIA_ENABLE = no
-
-ifeq ($(strip $(OLED_ENABLE)), yes)
- SRC += $(USER_PATH)/oled/oled.c
-endif
-
-ifeq ($(strip $(TAP_DANCE_ENABLE)), yes)
- SRC += $(USER_PATH)/keyrecords/tap_dances.c
-endif
-
-ifeq ($(strip $(HOME_ROW_MODS_ENABLE)), yes)
- # Define custom variable
- OPT_DEFS += -DHOME_ROW_MODS_ENABLED
-endif \ No newline at end of file
diff --git a/users/rmw/encoder_functions.c b/users/rmw/encoder_functions.c
deleted file mode 100644
index 39032d0eba..0000000000
--- a/users/rmw/encoder_functions.c
+++ /dev/null
@@ -1,53 +0,0 @@
-// Encoder functions to mix and match!
-
-#include "encoder_functions.h"
-
-void enc_move_words(bool cw){ // Move whole words. Hold shift to select while moving.
- if (cw) {
- tap_code16(A(KC_RGHT));
- } else {
- tap_code16(A(KC_LEFT));
- }
-}
-void enc_history_scrubbing(bool cw){ // Undo/Redo.
- if (cw) {
- tap_code16(G(S(KC_Z)));
- } else {
- tap_code16(G(KC_Z));
- }
-}
-void enc_scrolling(bool cw){ // Scrolling.
- if (cw) {
- tap_code(KC_MS_WH_DOWN);
- } else {
- tap_code(KC_MS_WH_UP);
- }
-}
-void enc_scrolling_h(bool cw){ // Scrolling.
- if (cw) {
- tap_code(KC_MS_WH_RIGHT);
- } else {
- tap_code(KC_MS_WH_LEFT);
- }
-}
-void enc_volume_knob(bool cw){ // Volume control.
- if (cw) {
- tap_code(KC_VOLU);
- } else {
- tap_code(KC_VOLD);
- }
-}
-void enc_move_desktop(bool cw){ // Switch Desktops (Mac).
- if (cw) {
- tap_code16(C(KC_RIGHT));
- } else {
- tap_code16(C(KC_LEFT));
- }
-}
-void enc_zoom(bool cw){ // Zoom in/zoom out.
- if (cw) {
- tap_code16(G(KC_PLUS));
- } else {
- tap_code16(G(KC_MINUS));
- }
-}
diff --git a/users/rmw/encoder_functions.h b/users/rmw/encoder_functions.h
deleted file mode 100644
index d80a78668a..0000000000
--- a/users/rmw/encoder_functions.h
+++ /dev/null
@@ -1,11 +0,0 @@
-#pragma once
-#include QMK_KEYBOARD_H
-#include "rmw.h"
-
-void enc_move_words(bool cw);
-void enc_history_scrubbing(bool cw);
-void enc_scrolling(bool cw);
-void enc_scrolling_h(bool cw);
-void enc_volume_knob(bool cw);
-void enc_move_desktop(bool cw);
-void enc_zoom(bool cw);
diff --git a/users/rmw/rmw.c b/users/rmw/rmw.c
deleted file mode 100644
index bb1c1984f5..0000000000
--- a/users/rmw/rmw.c
+++ /dev/null
@@ -1 +0,0 @@
-#include "rmw.h"
diff --git a/users/rmw/rmw.h b/users/rmw/rmw.h
deleted file mode 100644
index b4018d5570..0000000000
--- a/users/rmw/rmw.h
+++ /dev/null
@@ -1,87 +0,0 @@
-#pragma once
-#include QMK_KEYBOARD_H
-
-#include "quantum.h"
-#include "action.h"
-#include "version.h"
-
-#ifdef TAP_DANCE_ENABLE
-#include "tapdances.h"
-#endif
-
-#ifdef ENCODER_ENABLE
-#include "encoder_functions.h"
-#endif
-
-enum user_layers {
- QWERTY = 0
- ,MINIMAK4
- ,NUMPAD
- ,EDIT
- ,FSYM
- ,JSYM
- ,MEDIA
- ,ADJUST
-};
-
-
-// Custom keycodes
-#define SFTENT SFT_T(KC_ENT)
-
-enum user_custom_keycodes_universal {
- VRSN = SAFE_RANGE
- ,OS_CSFT = OSM(MOD_LSFT | MOD_LCTL)
- ,OS_GSFT = OSM(MOD_LSFT | MOD_LGUI)
- ,OS_CALT = OSM(MOD_LCTL | MOD_LALT)
- ,OS_ALT = OSM(MOD_LALT)
- ,OS_CTL = OSM(MOD_LCTL)
- ,NEW_SAFE_RANGE
-};
-
-#ifdef MACOSX
- enum user_custom_keycodes {
- FORM_GET = NEW_SAFE_RANGE
- ,FORM_PUT
- ,OS_CMD = OSM(MOD_LGUI)
- ,R_UNDO = LGUI(KC_Z)
- ,R_REDO = LGUI(KC_Y)
- ,R_CUT = LGUI(KC_X)
- ,R_COPY = LGUI(KC_C)
- ,R_PASTE = LGUI(KC_V)
- ,DEL_WRD = LALT(KC_BACKSPACE)
- ,MVW_LEFT = LALT(KC_LEFT)
- ,MVW_RIGHT = LALT(KC_RIGHT)
- ,SELW_LEFT = LALT(S(KC_LEFT))
- ,SELW_RIGHT = LALT(S(KC_RIGHT))
- ,NEW_TAB = LGUI(KC_T)
- ,TASK_MAN = LGUI(LALT(KC_ESCAPE))
- ,SEL_HOME = S(LGUI(KC_LEFT))
- ,SEL_END = S(LGUI(KC_RIGHT))
- ,R_HOME = LGUI(KC_LEFT)
- ,R_END = LGUI(KC_RIGHT)
- };
-#endif
-
-#ifdef WINDOWS
- enum user_custom_keycodes {
- FORM_GET = NEW_SAFE_RANGE
- ,FORM_PUT
- ,OS_WIN = OSM(MOD_LGUI)
- ,R_UNDO = LCTL(KC_Z)
- ,R_REDO = LCTL(KC_Y)
- ,R_CUT = LCTL(KC_X)
- ,R_COPY = LCTL(KC_C)
- ,R_PASTE = LCTL(KC_V)
- ,DEL_WRD = LALT(KC_BACKSPACE)
- ,MVW_LEFT = LCTL(KC_LEFT)
- ,MVW_RIGHT = LCTL(KC_RIGHT)
- ,SELW_LEFT = LCTL(S(KC_LEFT))
- ,SELW_RIGHT = LCTL(S(KC_RIGHT))
- ,NEW_TAB = LCTL(KC_T)
- ,TASK_MAN = LCTL(LALT(KC_ESCAPE))
- ,SEL_HOME = S(KC_HOME)
- ,SEL_END = S(KC_END)
- ,R_HOME = KC_HOME
- ,R_END = KC_END
-};
-#endif
diff --git a/users/rmw/rules.mk b/users/rmw/rules.mk
deleted file mode 100644
index 468745dbc2..0000000000
--- a/users/rmw/rules.mk
+++ /dev/null
@@ -1,9 +0,0 @@
-SRC += rmw.c
-
-ifdef TAP_DANCE_ENABLE
-SRC += tapdances.c
-endif
-
-ifdef ENCODER_ENABLE
-SRC += encoder_functions.c
-endif
diff --git a/users/rmw/tapdances.c b/users/rmw/tapdances.c
deleted file mode 100644
index 792bd83e55..0000000000
--- a/users/rmw/tapdances.c
+++ /dev/null
@@ -1,389 +0,0 @@
-// Useful tapdance functions!
-
-#include "tapdances.h"
-
-tap_dance_action_t tap_dance_actions[] = {
- [SHCAP] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, caps, shift_reset)
- ,[TDGUI] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, shiftgui, gui_reset)
- ,[TDGUI2] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, guictl, ubermod_reset)
- ,[SHENT] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, shiftenter, shift_reset)
- ,[SHNTC] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, shiftentercaps, shift_reset)
- ,[GCA] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, ubermod_mac, ubermod_reset) // GUI->CTL->ALT
- ,[AGC] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, ubermod2_mac, ubermod_reset) // ALT->GUI->CTL
- ,[SGCA] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, shift_and_mac, CASG_reset) // SG->SC->SA
- ,[GUCTL] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, guictl, ubermod_reset)
- ,[CAG] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, ubermod, ubermod_reset) // CTL->ALT->GUI
- ,[ACG] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, ubermod2, ubermod_reset) // ALT->GUI->CTL
- ,[SCAG] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, shift_and, CASG_reset) // SG->SC->SA
- ,[DLTR] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, deleter, ubermod_reset) // backspace, backspace, alt backspace, gui backspace
- ,[FRBK2] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, forward_back_mac, ubermod_reset)
- ,[CTLALL] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, ctrl_all_mac, ubermod_reset) // C->CG->CA->CAG
- ,[CTLAND] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, ctrl_all, ubermod_reset) // C->CA->CG->CAG
- ,[FRBK] = ACTION_TAP_DANCE_DOUBLE(KC_WWW_BACK,KC_WWW_FORWARD)
-};
-
-void caps(tap_dance_state_t *state, void *user_data) // Shift, Caps
-{ if (state->count >= 2) {register_code(KC_CAPS); unregister_code(KC_CAPS);}
- else if (state->pressed) {register_mods(MOD_LSFT);} else {set_oneshot_mods(MOD_LSFT);}
- reset_tap_dance(state);
-}
-
-void forward_back_mac(tap_dance_state_t *state, void *user_data) // G<-, then G->
-{
- if (state->count > 1) {
- tap_code16(G(KC_RGHT));
- }
- else {
- tap_code16(G(KC_LEFT));
- }
- reset_tap_dance(state);
-}
-
-void shiftgui(tap_dance_state_t *state, void *user_data) // G->SG
-{
- if (state->count > 1) {
- if (state->pressed) {
- register_mods(MOD_LSFT | MOD_LGUI);
- }
- else {
- set_oneshot_mods(MOD_LSFT | MOD_LGUI);
- }
- }
- else if (state->pressed) {
- register_mods(MOD_LGUI);
- }
- else {
- set_oneshot_mods(MOD_LGUI);
- }
- reset_tap_dance(state);
-}
-
-void guictl(tap_dance_state_t *state, void *user_data) // G->GC
-{
- if (state->count > 1) {
- if (state->pressed) {
- register_mods(MOD_LCTL | MOD_LGUI);
- }
- else {
- set_oneshot_mods(MOD_LCTL | MOD_LGUI);
- }
- }
- else if (state->pressed) {
- register_mods(MOD_LGUI);
- }
- else {
- set_oneshot_mods(MOD_LGUI);
- }
- reset_tap_dance(state);
-}
-
-void deleter(tap_dance_state_t *state, void *user_data) // bkspc -> delwrd -> delline
-{
- if (state->count > 3) {
- tap_code16(G(KC_BSPC));
- }
- else if (state->count > 2) {
- tap_code16(A(KC_BSPC));
- }
- else {
- tap_code(KC_BSPC);
- }
- reset_tap_dance(state);
-}
-
-void ubermod(tap_dance_state_t *state, void *user_data) // CTL->ALT->GUI
-{
- if (state->count > 2) {
- if (state->pressed) {
- register_mods(MOD_LGUI);
- }
- else {
- set_oneshot_mods(MOD_LGUI);
- }
- }
- else if (state->count > 1) {
- if (state->pressed) {
- register_mods(MOD_LALT);
- }
- else {
- set_oneshot_mods(MOD_LALT);
- }
- }
- else if (state->pressed) {
- register_mods(MOD_LCTL);
- }
- else {
- set_oneshot_mods(MOD_LCTL);
- }
- reset_tap_dance(state);
-}
-
-void ubermod_mac(tap_dance_state_t *state, void *user_data) // GUI->CTL->ALT
-{
- if (state->count > 2) {
- if (state->pressed) {
- register_mods(MOD_LALT);
- }
- else {
- set_oneshot_mods(MOD_LALT);
- }
- }
- else if (state->count > 1) {
- if (state->pressed) {
- register_mods(MOD_LCTL);
- }
- else {
- set_oneshot_mods(MOD_LCTL);
- }
- }
- else if (state->pressed) {
- register_mods(MOD_LGUI);
- }
- else {
- set_oneshot_mods(MOD_LGUI);
- }
- reset_tap_dance(state);
-}
-
-void ubermod2(tap_dance_state_t *state, void *user_data) // ALT->CTL->GUI
-{
- if (state->count > 2) {
- if (state->pressed) {
- register_mods(MOD_LGUI);
- }
- else {
- set_oneshot_mods(MOD_LGUI);
- }
- }
- else if (state->count > 1) {
- if (state->pressed) {
- register_mods(MOD_LCTL);
- }
- else {
- set_oneshot_mods(MOD_LCTL);
- }
- }
- else if (state->pressed) {
- register_mods(MOD_LALT);
- }
- else {
- set_oneshot_mods(MOD_LALT);
- }
- reset_tap_dance(state);
-}
-
-void ubermod2_mac(tap_dance_state_t *state, void *user_data) // ALT->GUI->CTL
-{
- if (state->count > 2) {
- if (state->pressed) {
- register_mods(MOD_LCTL);
- }
- else {
- set_oneshot_mods(MOD_LCTL);
- }
- }
- else if (state->count > 1) {
- if (state->pressed) {
- register_mods(MOD_LGUI);
- }
- else {
- set_oneshot_mods(MOD_LGUI);
- }
- }
- else if (state->pressed) {
- register_mods(MOD_LALT);
- }
- else {
- set_oneshot_mods(MOD_LALT);
- }
- reset_tap_dance(state);
-}
-
-void shift_reset(tap_dance_state_t *state, void *user_data)
-{
- unregister_mods(MOD_LSFT);
- // clear_oneshot_mods();
-}
-void gui_reset(tap_dance_state_t *state, void *user_data)
-{
- unregister_mods(MOD_LSFT | MOD_LGUI);
-}
-void CAS_reset(tap_dance_state_t *state, void *user_data)
-{
- unregister_mods(MOD_LCTL | MOD_LSFT | MOD_LALT);
-}
-void CASG_reset(tap_dance_state_t *state, void *user_data)
-{
- unregister_mods(MOD_LCTL | MOD_LSFT | MOD_LALT | MOD_LGUI);
- // clear_oneshot_mods();
-}
-void ubermod_reset(tap_dance_state_t *state, void *user_data) // AKA CAG_reset
-{
- unregister_mods(MOD_LCTL | MOD_LALT | MOD_LGUI);
-}
-
-void shiftenter(tap_dance_state_t *state, void *user_data)
-{
- if (state->count > 1) {
- tap_code(KC_ENT);
- }
- else if (state->pressed) {
- register_mods(MOD_LSFT);
- }
- else {
- set_oneshot_mods(MOD_LSFT);
- }
- reset_tap_dance(state);
-}
-
-void shiftentercaps(tap_dance_state_t *state, void *user_data)
-{
- if (state->count > 2) {
- tap_code(KC_CAPS);
- }
- else if (state->count > 1) {
- tap_code(KC_ENT);
- }
- else if (state->pressed) {
- register_mods(MOD_LSFT);
- }
- else {
- set_oneshot_mods(MOD_LSFT);
- }
- reset_tap_dance(state);
-}
-
-void ctrl_all_mac(tap_dance_state_t *state, void *user_data) // C->CG->CAG
-{
- if (state->count > 2) {
- if (state->pressed) {
- register_mods(MOD_LCTL | MOD_LALT | MOD_LGUI);
- }
- else {
- set_oneshot_mods(MOD_LCTL | MOD_LGUI | MOD_LALT);
- }
- }
- else if (state->count > 1) {
- if (state->pressed) {
- register_mods(MOD_LCTL | MOD_LGUI);
- }
- else {
- set_oneshot_mods(MOD_LCTL | MOD_LGUI);
- }
- }
- else if (state->pressed) {
- register_mods(MOD_LCTL);
- }
- else {
- set_oneshot_mods(MOD_LCTL);
- }
- reset_tap_dance(state);
-}
-
-void ctrl_all(tap_dance_state_t *state, void *user_data) // C->CA->SC
-{
- if (state->count > 2) {
- if (state->pressed) {
- register_mods(MOD_LCTL | MOD_LSFT);
- }
- else {
- set_oneshot_mods(MOD_LCTL | MOD_LSFT);
- }
- }
- else if (state->count > 1) {
- if (state->pressed) {
- register_mods(MOD_LCTL | MOD_LALT);
- }
- else {
- set_oneshot_mods(MOD_LCTL | MOD_LALT);
- }
- }
- else if (state->pressed) {
- register_mods(MOD_LCTL);
- }
- else {
- set_oneshot_mods(MOD_LCTL);
- }
- reset_tap_dance(state);
-}
-
-void alt_all(tap_dance_state_t *state, void *user_data) // A->SA->AC
-{
- if (state->count > 2) {
- if (state->pressed) {
- register_mods(MOD_LCTL | MOD_LALT);
- }
- else {
- set_oneshot_mods(MOD_LALT | MOD_LCTL);
- }
- }
- else if (state->count > 1) {
- if (state->pressed) {
- register_mods(MOD_LSFT | MOD_LALT);
- }
- else {
- set_oneshot_mods(MOD_LALT | MOD_LSFT);
- }
- }
- else if (state->pressed) {
- register_mods(MOD_LALT);
- }
- else {
- set_oneshot_mods(MOD_LALT);
- }
- reset_tap_dance(state);
-}
-
-void shift_and(tap_dance_state_t *state, void *user_data) // SC->SA->SG
-{
- if (state->count > 2) {
- if (state->pressed) {
- register_mods(MOD_LSFT | MOD_LGUI);
- }
- else {
- set_oneshot_mods(MOD_LGUI | MOD_LSFT);
- }
- }
- else if (state->count > 1) {
- if (state->pressed) {
- register_mods(MOD_LSFT | MOD_LALT);
- }
- else {
- set_oneshot_mods(MOD_LALT | MOD_LSFT);
- }
- }
- else if (state->pressed) {
- register_mods(MOD_LCTL | MOD_LSFT);
- }
- else {
- set_oneshot_mods(MOD_LSFT | MOD_LCTL);
- }
- reset_tap_dance(state);
-}
-
-void shift_and_mac(tap_dance_state_t *state, void *user_data) // SG->SC->SA
-{
- if (state->count > 1) {
- if (state->pressed) {
- register_mods(MOD_LSFT | MOD_LALT);
- }
- else {
- set_oneshot_mods(MOD_LALT | MOD_LSFT);
- }
- }
- else if (state->count > 2) {
- if (state->pressed) {
- register_mods(MOD_LCTL | MOD_LSFT);
- }
- else {
- set_oneshot_mods(MOD_LSFT | MOD_LCTL);
- }
- }
- else if (state->pressed) {
- register_mods(MOD_LSFT | MOD_LGUI);
- }
- else {
- set_oneshot_mods(MOD_LGUI | MOD_LSFT);
- }
- reset_tap_dance(state);
-}
diff --git a/users/rmw/tapdances.h b/users/rmw/tapdances.h
deleted file mode 100644
index f358358cb6..0000000000
--- a/users/rmw/tapdances.h
+++ /dev/null
@@ -1,46 +0,0 @@
-#pragma once
-#include "rmw.h"
-#include "process_tap_dance.h"
-#include "action.h"
-
-void caps(tap_dance_state_t *state, void *user_data); // Shift, Caps
-void forward_back_mac(tap_dance_state_t *state, void *user_data); // G<-, then G->
-void shiftgui(tap_dance_state_t *state, void *user_data); // G->SG
-void guictl(tap_dance_state_t *state, void *user_data); // G->GC
-void deleter(tap_dance_state_t *state, void *user_data); // bkspc -> delwrd -> delline
-void ubermod(tap_dance_state_t *state, void *user_data); // CTL->ALT->GUI
-void ubermod_mac(tap_dance_state_t *state, void *user_data); // GUI->CTL->ALT
-void ubermod2(tap_dance_state_t *state, void *user_data); // ALT->CTL->GUI
-void ubermod2_mac(tap_dance_state_t *state, void *user_data); // ALT->GUI->CTL
-void shift_reset(tap_dance_state_t *state, void *user_data);
-void gui_reset(tap_dance_state_t *state, void *user_data);
-void CAS_reset(tap_dance_state_t *state, void *user_data);
-void CASG_reset(tap_dance_state_t *state, void *user_data);
-void ubermod_reset(tap_dance_state_t *state, void *user_data); // AKA CAG_reset
-void shiftenter(tap_dance_state_t *state, void *user_data);
-void shiftentercaps(tap_dance_state_t *state, void *user_data);
-void ctrl_all_mac(tap_dance_state_t *state, void *user_data); // C->CG->CAG
-void ctrl_all(tap_dance_state_t *state, void *user_data); // C->CA->SC
-void alt_all(tap_dance_state_t *state, void *user_data); // A->SA->AC
-void shift_and(tap_dance_state_t *state, void *user_data); // SC->SA->SG
-void shift_and_mac(tap_dance_state_t *state, void *user_data); // SG->SC->SA
-
-enum {
- SHCAP = 0
- ,TDGUI
- ,TDGUI2
- ,SHENT
- ,SHNTC
- ,GUCTL
- ,FRBK
- ,FRBK2
- ,GCA
- ,AGC
- ,SGCA
- ,SCAG
- ,CAG
- ,ACG
- ,CTLALL
- ,CTLAND
- ,DLTR
-};
diff --git a/users/romus/README.md b/users/romus/README.md
deleted file mode 100644
index 0de9d9a817..0000000000
--- a/users/romus/README.md
+++ /dev/null
@@ -1,45 +0,0 @@
-# overview
-
- this is a modified version of let's split keyboard from bbaserdem. i don't like standard dvorak overuses right pinky
- so i shifted the columns out. i'm not sure if this is any good, time will tell.
-
- i have ortholinear let's split eh, which share a lot of functions with other ortholinear keyboards.
-
-# layout
-
-i use dvorak with an unorthodox off layout.
-if you wanna grab my code, and you used a layout with a persistent base
-layer change, change it to layer 0 before proceeding.
-
-# layers
-
-* **dvorak**: base layer,with dvorak layout.
-* **alternative**: has alternate characters.
-* **game**: toggled from *function*, comfortable for gaming use.
-* **numeric**: has numericals and symbols. can be locked.
-* **function**: layer has media and function keys.
-* **mouse**: manipulates mouse. can be locked.
-* **music** allows playing sounds.
-
-# functionality
-
-* **rgb backlight**: with layer indication, and ability to change base layer lighting mode.
-* **secrets**: by placing a secrets.h, and not tracking it, passwords can be stored.
-* **mouse**: mouse emulation, complete with diagonal keys.
-* **turkish**: an altgr-like overlay that allows some non-common letters, in unicode.
-
-i suggest checking out how i enabled turkish keys,
-how i planned out rgb lighting,
-and my mouse implementation;
-they might offer some insight into fringe user cases.
-
-# issues
-
-all features are too big for the 32kb bootloader.
-offenders are audio and rgb lights; it comes down to one or the other.
-
-~the proton board, and rev 6 might fix that.~
-
-# credits
-
-this is a modified version of let's split keyboard from bbaserdem who has previously written his keymap by himself before, but rewrote it here.
diff --git a/users/romus/config.h b/users/romus/config.h
deleted file mode 100644
index 9332febe63..0000000000
--- a/users/romus/config.h
+++ /dev/null
@@ -1,8 +0,0 @@
-#pragma once
-
-#ifdef TAP_DANCE_ENABLE
- #define TAPPING_TERM 300
- #define TAPPING_TOGGLE 1
-#endif
-
-// !USERSPACE_CONFIG_H
diff --git a/users/romus/romus.c b/users/romus/romus.c
deleted file mode 100644
index e16dd3b8a0..0000000000
--- a/users/romus/romus.c
+++ /dev/null
@@ -1,529 +0,0 @@
-#include "romus.h"
-
-/*---------------*\
-|*-----MOUSE-----*|
-\*---------------*/
-#ifdef MOUSEKEY_ENABLE
-#include "mousekey.h"
-#endif
-
-/*-------------*\
-|*-----RGB-----*|
-\*-------------*/
-#ifdef RGBLIGHT_ENABLE
-#include "rgblight.h"
-#endif
-
-/*-------------*\
-|*---UNICODE---*|
-\*-------------*/
-#ifdef UNICODE_ENABLE
-#endif
-
-/*-----------------*\
-|*-----SECRETS-----*|
-\*-----------------*/
-// Enabled by adding a non-tracked secrets.h to this dir.
-#if (__has_include("secrets.h"))
-#include "secrets.h"
-#endif
-
-/*---------------*\
-|*-----MUSIC-----*|
-\*---------------*/
-#ifdef AUDIO_ENABLE
-float tone_game[][2] = SONG(ZELDA_PUZZLE);
-float tone_return[][2] = SONG(ZELDA_TREASURE);
-float tone_linux[][2] = SONG(UNICODE_LINUX);
-float tone_windows[][2] = SONG(UNICODE_WINDOWS);
-#endif
-
-/*-------------------*\
-|*-----TAP-DANCE-----*|
-\*-------------------*/
-#ifdef TAP_DANCE_ENABLE
-tap_dance_action_t tap_dance_actions[] = {
- // Shift on double tap of semicolon
- [SCL] = ACTION_TAP_DANCE_DOUBLE( KC_SCLN, KC_COLN )
-};
-#endif
-
-/* In keymaps, instead of writing _user functions, write _keymap functions
- * The __attribute__((weak)) allows for empty definitions here, and during
- * compilation, if these functions are defined elsewhere, they are written
- * over. This allows to include custom code from keymaps in the generic code
- * in this file.
- */
-__attribute__ ((weak)) void matrix_init_keymap(void) { }
-__attribute__ ((weak)) void matrix_scan_keymap(void) { }
-__attribute__ ((weak)) bool process_record_keymap(uint16_t keycode, keyrecord_t *record) {
- return true;
-}
-__attribute__ ((weak)) layer_state_t layer_state_set_keymap (layer_state_t state) {
- return state;
-}
-__attribute__ ((weak)) void led_set_keymap(uint8_t usb_led) { }
-
-/* ----------------------- *\
- * -----RGB Functions----- *
-\* ----------------------- */
-#ifdef RGBLIGHT_ENABLE
-
-// Set RGBLIGHT state depending on layer
-void rgblight_change( uint8_t this_layer ) {
- // Enable RGB light; will not work without this
- //rgblight_enable_noeeprom();
- // Change RGB light
- switch ( this_layer ) {
- case _DV:
- // Load base layer
- rgblight_disable_noeeprom();
- break;
- case _AL:
- // Do yellow for alternate
- rgblight_enable_noeeprom();
- rgblight_sethsv_noeeprom( 60,255,255);
-
-
- break;
- case _GA:
- // Do purple for game
- rgblight_enable_noeeprom();
- rgblight_sethsv_noeeprom(285,255,255);
-
-
- break;
- case _NU:
- // Do azure for number
- rgblight_enable_noeeprom();
- rgblight_sethsv_noeeprom(186,200,255);
-
-
- break;
- case _SE:
- // Do red for settings
- rgblight_enable_noeeprom();
-
- rgblight_sethsv_noeeprom( 16,255,255);
-
- break;
- case _MO:
- // Do green for mouse
- rgblight_enable_noeeprom();
- rgblight_sethsv_noeeprom(120,255,255);
-
-
- break;
- case _MU:
- // Do orange for music
-
- rgblight_enable_noeeprom();
- rgblight_sethsv_noeeprom( 39,255,255);
-
- break;
- default:
- // Something went wrong
- rgblight_enable_noeeprom();
- rgblight_sethsv_noeeprom( 0,255,255);
-
- break;
- }
-}
-
-#endif
-
-/*---------------------*\
-|*-----MATRIX INIT-----*|
-\*---------------------*/
-void matrix_init_user (void) {
-
- // Keymap specific things, do it first thing to allow for delays etc
- matrix_init_keymap();
-
- // Correct unicode
-#ifdef UNICODE_ENABLE
- set_unicode_input_mode(UNICODE_MODE_LINUX);
-#endif
-
- // Make beginning layer DVORAK
- set_single_persistent_default_layer(_DV);
-
-}
-
-/*---------------------*\
-|*-----MATRIX SCAN-----*|
-\*---------------------*/
-void matrix_scan_user (void) {
- // Keymap specific, do it first
- matrix_scan_keymap();
-}
-
-/*------------------*\
-|*-----KEYCODES-----*|
-\*------------------*/
-bool process_record_user(uint16_t keycode, keyrecord_t *record) {
-
- // Shift check
- bool is_capital = ( keyboard_report->mods & (MOD_BIT(KC_LSFT)|MOD_BIT(KC_RSFT)) );
- static bool lock_flag = false;
- uint8_t layer = biton32 (layer_state);
-
- switch (keycode) {
- // Secrets implementation
-#if (__has_include("secrets.h"))
- case SECRET1:
- if( !record->event.pressed ) {
- send_string_P( secret[ keycode - SECRET1 ] );
- }
- return false;
- break;
- case SECRET2:
- if( !record->event.pressed ) {
- send_string_P( secret[ keycode - SECRET2 ] );
- }
- return false;
- break;
- case SECRET3:
- if( !record->event.pressed ) {
- send_string_P( secret[ keycode - SECRET3 ] );
- }
- return false;
- break;
-#endif
-
- // Lock functionality: These layers are locked if the LOCKED buttons are
- // pressed. Otherwise, they are momentary toggles
- case K_LOCK:
- if (record->event.pressed) {
- lock_flag = !lock_flag;
- }
- return false;
- break;
- case K_MOUSE:
- if (record->event.pressed) {
- layer_on(_MO);
- lock_flag = false;
- } else {
- if ( lock_flag ) {
- lock_flag = false;
- } else {
- layer_off(_MO);
- }
- }
- return false;
- break;
- case K_NUMBR:
- if (record->event.pressed) {
- layer_on(_NU);
- lock_flag = false;
- } else {
- if ( lock_flag ) {
- lock_flag = false;
- } else {
- layer_off(_NU);
- }
- }
- return false;
- break;
-
- // Layer switches with sound
- case K_GAMES:
- if (record->event.pressed) {
- // On press, turn off layer if active
- if ( layer == _GA ) {
-#ifdef AUDIO_ENABLE
- stop_all_notes();
- PLAY_SONG(tone_return);
-#endif
- layer_off(_GA);
- }
- } else {
- // After click, turn on layer if accessed from setting
- if ( layer == _SE ) {
-#ifdef AUDIO_ENABLE
- stop_all_notes();
- PLAY_SONG(tone_game);
-#endif
- layer_on(_GA);
- layer_off(_SE);
- }
- }
- return false;
- break;
- case QK_MUSIC_TOGGLE:
- if (record->event.pressed) {
- // On press, turn off layer if active
- if ( layer == _SE ) {
- layer_off(_SE);
- layer_on(_MU);
- } else {
- layer_off(_MU);
- }
- }
- return true;
- break;
-
-//------UNICODE
- // Unicode switches with sound
-#ifdef UNICODE_ENABLE
- case UNI_LI:
- if (record->event.pressed) {
-#ifdef AUDIO_ENABLE
- stop_all_notes();
- PLAY_SONG(tone_linux);
-#endif
- set_unicode_input_mode(UNICODE_MODE_LINUX);
- }
- return false;
- break;
- case UNI_WN:
- if (record->event.pressed) {
-#ifdef AUDIO_ENABLE
- stop_all_notes();
- PLAY_SONG(tone_windows);
-#endif
- set_unicode_input_mode(UNICODE_MODE_WINDOWS);
- }
- return false;
- break;
-
- // Turkish letters, with capital functionality
- case TUR_A:
- if (record->event.pressed) {
- if ( is_capital ) {
- register_unicode(0x00c2);
- } else {
- register_unicode(0x00e2);
- }
- }
- return false;
- break;
- case TUR_O:
- if (record->event.pressed) {
- if ( is_capital ) {
- register_unicode(0x00d6);
- } else {
- register_unicode(0x00f6);
- }
- }
- return false;
- break;
- case TUR_U:
- if (record->event.pressed) {
- if ( is_capital ) {
- register_unicode(0x00dc);
- } else {
- register_unicode(0x00fc);
- }
- }
- return false;
- break;
- case TUR_I:
- if (record->event.pressed) {
- if ( is_capital ) {
- register_unicode(0x0130);
- } else {
- register_unicode(0x0131);
- }
- }
- return false;
- break;
- case TUR_G:
- if (record->event.pressed) {
- if ( is_capital ) {
- register_unicode(0x011e);
- } else {
- register_unicode(0x011f);
- }
- }
- return false;
- break;
- case TUR_C:
- if (record->event.pressed) {
- if ( is_capital ) {
- register_unicode(0x00c7);
- } else {
- register_unicode(0x00e7);
- }
- }
- return false;
- break;
- case TUR_S:
- if (record->event.pressed) {
- if ( is_capital ) {
- register_unicode(0x015e);
- } else {
- register_unicode(0x015f);
- }
- }
- return false;
- break;
-#endif
-
-//-------Diagonal mouse movements
-#ifdef MOUSEKEY_ENABLE
- case MO_NE:
- if( record->event.pressed ) {
- mousekey_on(MO_N);
- mousekey_on(MO_E);
- mousekey_send();
- } else {
- mousekey_off(MO_N);
- mousekey_off(MO_E);
- mousekey_send();
- }
- return false;
- break;
- case MO_NW:
- if( record->event.pressed ) {
- mousekey_on(MO_N);
- mousekey_on(MO_W);
- mousekey_send();
- } else {
- mousekey_off(MO_N);
- mousekey_off(MO_W);
- mousekey_send();
- }
- return false;
- break;
- case MO_SE:
- if( record->event.pressed ) {
- mousekey_on(MO_S);
- mousekey_on(MO_E);
- mousekey_send();
- } else {
- mousekey_off(MO_S);
- mousekey_off(MO_E);
- mousekey_send();
- }
- return false;
- break;
- case MO_SW:
- if( record->event.pressed ) {
- mousekey_on(MO_S);
- mousekey_on(MO_W);
- mousekey_send();
- } else {
- mousekey_off(MO_S);
- mousekey_off(MO_W);
- mousekey_send();
- }
- return false;
- break;
- case MO_S_NE:
- if( record->event.pressed ) {
- mousekey_on(MO_S_N);
- mousekey_on(MO_S_E);
- mousekey_send();
- } else {
- mousekey_off(MO_S_N);
- mousekey_off(MO_S_E);
- mousekey_send();
- }
- return false;
- break;
- case MO_S_NW:
- if( record->event.pressed ) {
- mousekey_on(MO_S_N);
- mousekey_on(MO_S_W);
- mousekey_send();
- } else {
- mousekey_off(MO_S_N);
- mousekey_off(MO_S_W);
- mousekey_send();
- }
- return false;
- break;
- case MO_S_SE:
- if( record->event.pressed ) {
- mousekey_on(MO_S_S);
- mousekey_on(MO_S_E);
- mousekey_send();
- } else {
- mousekey_off(MO_S_S);
- mousekey_off(MO_S_E);
- mousekey_send();
- }
- return false;
- break;
- case MO_S_SW:
- if( record->event.pressed ) {
- mousekey_on(MO_S_S);
- mousekey_on(MO_S_W);
- mousekey_send();
- } else {
- mousekey_off(MO_S_S);
- mousekey_off(MO_S_W);
- mousekey_send();
- }
- return false;
- break;
-#endif
-
-//------DOUBLE PRESS, with added left navigation
- case DBL_SPC:
- if( record->event.pressed ) {
- SEND_STRING(" "SS_TAP(X_LEFT));
- }
- return false;
- break;
- case DBL_ANG:
- if( record->event.pressed ) {
- SEND_STRING("<>"SS_TAP(X_LEFT));
- }
- return false;
- break;
- case DBL_PAR:
- if( record->event.pressed ) {
- SEND_STRING("()"SS_TAP(X_LEFT));
- }
- return false;
- break;
- case DBL_SQR:
- if( record->event.pressed ) {
- SEND_STRING("[]"SS_TAP(X_LEFT));
- }
- return false;
- break;
- case DBL_BRC:
- if( record->event.pressed ) {
- SEND_STRING("{}"SS_TAP(X_LEFT));
- }
- return false;
- break;
- case DBL_QUO:
- if( record->event.pressed ) {
- SEND_STRING("\'\'"SS_TAP(X_LEFT));
- }
- return false;
- break;
- case DBL_DQT:
- if( record->event.pressed ) {
- SEND_STRING("\"\""SS_TAP(X_LEFT));
- }
- return false;
- break;
- case DBL_GRV:
- if( record->event.pressed ) {
- SEND_STRING("``"SS_TAP(X_LEFT));
- }
- return false;
- break;
-// END OF KEYCODES
- }
- return process_record_keymap(keycode, record);
-}
-
-/*----------------------*\
-|*-----LAYER CHANGE-----*|
-\*----------------------*/
-
-layer_state_t layer_state_set_user(layer_state_t state) {
-
- state = layer_state_set_keymap (state);
-#ifdef RGBLIGHT_ENABLE
- // Change RGB lighting depending on the last layer activated
- rgblight_change( get_highest_layer(state) );
-#endif
- return state;
-}
diff --git a/users/romus/romus.h b/users/romus/romus.h
deleted file mode 100644
index d240c47b43..0000000000
--- a/users/romus/romus.h
+++ /dev/null
@@ -1,270 +0,0 @@
-// This is a modified version of Let's Split keyboard from bbaserdem
-
-#pragma once
-
-#include "quantum.h"
-
-#define XXX KC_NO
-
-// Layers
-#define _DV 0 // Base layer
-#define _AL 1 // Alt char overlay
-#define _GA 2 // Game layer
-#define _NU 3 // Numbers layer
-#define _SE 4 // Settings layer
-#define _MO 5 // Mouse emulation
-#define _MU 6 // Music mode
-
-// Define short macros
-#define UNDO LCTL(KC_Z)
-#define REDO LCTL(KC_Y)
-#define COPY LCTL(KC_C)
-#define CUT LCTL(KC_X)
-#define PASTE LCTL(KC_V)
-#define EXIT LALT(KC_F4)
-#define CAPS SFT_T(KC_CAPS)
-
-
-// Rename mouse keys with 7 letters
-#ifdef MOUSEKEY_ENABLE
-#define MO_S_N KC_MS_WH_UP
-#define MO_S_S KC_MS_WH_DOWN
-#define MO_S_E KC_MS_WH_RIGHT
-#define MO_S_W KC_MS_WH_LEFT
-#define MO_N KC_MS_UP
-#define MO_S KC_MS_DOWN
-#define MO_E KC_MS_RIGHT
-#define MO_W KC_MS_LEFT
-#define MO_CL_L KC_MS_BTN1
-#define MO_CL_R KC_MS_BTN2
-#define MO_CL_M KC_MS_BTN3
-#define MO_CL_4 KC_MS_BTN4
-#define MO_CL_5 KC_MS_BTN5
-#define MO_AC_0 KC_MS_ACCEL0
-#define MO_AC_1 KC_MS_ACCEL1
-#define MO_AC_2 KC_MS_ACCEL2
-#else
-#define MO_S_N KC_NO
-#define MO_S_S KC_NO
-#define MO_S_E KC_NO
-#define MO_S_W KC_NO
-#define MO_N KC_NO
-#define MO_S KC_NO
-#define MO_E KC_NO
-#define MO_W KC_NO
-#define MO_CL_L KC_NO
-#define MO_CL_R KC_NO
-#define MO_CL_M KC_NO
-#define MO_CL_1 KC_NO
-#define MO_CL_2 KC_NO
-#define MO_AC_0 KC_NO
-#define MO_AC_1 KC_NO
-#define MO_AC_2 KC_NO
-#endif
-
-// Rename music keys with <8 letters
-#ifdef AUDIO_ENABLE
-#define MU_REC KC_LCTL
-#define MU_STOP KC_LALT
-#define MU_PLAY KC_LGUI
-#define MU_PLAY KC_LGUI
-#define MU_FAST KC_UP
-#define MU_SLOW KC_DOWN
-#define MU_MASK KC_A
-#else
-#define MU_REC KC_NO
-#define MU_STOP KC_NO
-#define MU_PLAY KC_NO
-#define MU_PLAY KC_NO
-#define MU_FAST KC_NO
-#define MU_SLOW KC_NO
-#define MU_MASK KC_NO
-#endif
-
-// Define non-capitalized UTF shortcuts here
-#ifdef UNICODE_ENABLE
-#define PHY_HBR UC(0x0127)
-#define PHY_DEG UC(0x00b0)
-#define CUR_LIR UC(0x20ba)
-#define CUR_BIT UC(0x20bf)
-#define CUR_EUR UC(0x20ac)
-#define CUR_BPN UC(0x00a3)
-#define CUR_YEN UC(0x00a5)
-#else
-#define PHY_HBR KC_NO
-#define PHY_DEG KC_NO
-#define CUR_LIR KC_NO
-#define CUR_BIT KC_NO
-#define CUR_EUR KC_NO
-#define CUR_BPN KC_NO
-#define CUR_YEN KC_NO
-#endif
-
-// Custom keycodes
-enum userspace_custom_keycodes {
- // Turkish letters, with shifting
- TUR_A = SAFE_RANGE,
- TUR_C,
- TUR_G,
- TUR_I,
- TUR_O,
- TUR_S,
- TUR_U,
- // Unicode mode switch
- UNI_LI,
- UNI_WN,
- // Double keys
- DBL_SPC,
- DBL_ANG,
- DBL_PAR,
- DBL_SQR,
- DBL_BRC,
- DBL_QUO,
- DBL_DQT,
- DBL_GRV,
- // Diagonal mouse movements
- MO_NE,
- MO_NW,
- MO_SE,
- MO_SW,
- MO_S_NE,
- MO_S_NW,
- MO_S_SE,
- MO_S_SW,
- // Layer switches and lock functionality
- K_MOUSE,
- K_NUMBR,
- K_LOCK,
- K_GAMES,
- // Secret macros
- SECRET1,
- SECRET2,
- SECRET3
-};
-
-// Do tap dancable semicolon key if available
-#ifdef TAP_DANCE_ENABLE
-enum {
- SCL = 0
-};
-#define MY_SCL TD(SCL)
-#else
-#define MY_SCL KC_SCLN
-#endif
-
-// Shared keymaps
-#define LAYOUT_planck_wrapper(...) LAYOUT_planck_grid(__VA_ARGS__)
-#define LAYOUT_letssplit_wrapper(...) LAYOUT_ortho_4x12(__VA_ARGS__)
-
-/* Dvorak
- * ,------------------------------------------------------------------------.
- * | ' " | , | . | P | Y | Esc || Del | F | G | C | R | L |
- * |-----+-----+-----+-----+-----+-----++-----+-----+-----+-----+-----+-----|
- * | A | O | E | U | I | Bkp || Ent | D | H | T | N | S |
- * |-----+-----+-----+-----+-----+-----++-----+-----+-----+-----+-----+-----|
- * | ; : | Q | J | K | X | Spc || SET | B | M | W | V | Z |
- * |-----+-----+-----+-----+-----+-----++-----+-----+-----+-----+-----+-----|
- * | Ctrl| OS | Alt | Tab | Cps | ACH || SYM | Spc | Lft | Up | Dwn | Rght|
- * `------------------------------------------------------------------------' */
-#define DVORAK \
- KC_QUOT,KC_COMM,KC_DOT, KC_P, KC_Y, KC_ESC, KC_DEL, KC_F, KC_G, KC_C, KC_R, KC_L, \
- KC_A, KC_O, KC_E, KC_U, KC_I, KC_BSPC,KC_ENT, KC_D, KC_H, KC_T, KC_N, KC_S, \
- MY_SCL, KC_Q, KC_J, KC_K, KC_X, KC_SPC, MO(_SE),KC_B, KC_M, KC_W, KC_V, KC_Z, \
- KC_LCTL,KC_LGUI,KC_LALT,KC_TAB, CAPS, MO(_AL),K_NUMBR,KC_SPC, KC_LEFT,KC_UP, KC_DOWN,KC_RGHT
-
-/* Alternative character overlay
- * ,------------------------------------------------------------------------.
- * | ` ~ | ' ' | " " | Euro|Pound| || Del | Home| PgUp| Prn | \ | | / ? |
- * |-----+-----+-----+-----+-----+-----++-----+-----+-----+-----+-----+-----|
- * | Redo| < > | ( ) | [ ] | { } | Alt || Ins | End |PgDwn| Scl | BTC | - _ |
- * |-----+-----+-----+-----+-----+-----++-----+-----+-----+-----+-----+-----|
- * | Undo| Cut | Copy|Paste| EXIT| Shf || | | | | Yen | = + |
- * |-----+-----+-----+-----+-----+-----++-----+-----+-----+-----+-----+-----|
- * | | | | | | || | | | | | |
- * `------------------------------------------------------------------------' */
-#define ALTCHAR \
- KC_GRV, DBL_QUO,DBL_DQT,CUR_EUR,CUR_BPN,_______,_______,KC_HOME,KC_PGUP,KC_PSCR, KC_BSLS, KC_SLSH, \
- REDO, DBL_ANG,DBL_PAR,DBL_SQR,DBL_BRC,KC_LALT,KC_INS, KC_END, KC_PGDN,KC_SCRL, CUR_BIT, KC_MINUS, \
- UNDO, CUT, COPY, PASTE, EXIT, KC_LSFT,_______,_______,_______,_______, CUR_YEN, KC_EQUAL, \
- _______,_______,_______,_______,_______,_______,_______,DBL_SPC,_______,_______, _______, _______
-
-/* Game layer
- * ,------------------------------------------------------------------------.
- * | OFF | Q | W | E | R | T || Esc | 7 | 8 | 9 |NumLk|Bkspc|
- * |-----+-----+-----+-----+-----+-----++-----+-----+-----+-----+-----+-----|
- * | Tab | A | S | D | F | G || F1 | 4 | 5 | 6 | \ | Ent |
- * |-----+-----+-----+-----+-----+-----++-----+-----+-----+-----+-----+-----|
- * | Shf | Z | X | C | V | B || F2 | 1 | 2 | 3 | ^ | MSE |
- * |-----+-----+-----+-----+-----+-----++-----+-----+-----+-----+-----+-----|
- * | Ctrl| Alt | / | ` | SYM | Spc || F5 | Ent | 0 | < | v | > |
- * `------------------------------------------------------------------------' */
-#define GAME \
- K_GAMES,KC_Q, KC_W, KC_E, KC_R, KC_T, KC_ESC, KC_P7, KC_P8, KC_P9, KC_NUM, KC_BSPC, \
- KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_F1, KC_P4, KC_P5, KC_P6, KC_BSLS,KC_ENT , \
- KC_LSFT,KC_Z, KC_X, KC_C, KC_V, KC_B, KC_F2, KC_P1, KC_P2, KC_P3, KC_UP,K_MOUSE, \
- KC_LCTL,KC_LALT,KC_SLSH,KC_GRV, K_NUMBR,KC_SPC, KC_F5, KC_ENT, KC_P0, KC_LEFT,KC_DOWN,KC_RGHT
-
-/* Symbols layer
- * ,------------------------------------------------------------------------.
- * | OFF | ` | ~ | \ | [ | { || } | ] | - | _ | = | + |
- * |-----+-----+-----+-----+-----+-----++-----+-----+-----+-----+-----+-----|
- * | 1 | 2 | 3 | 4 | 5 | || LCK | 6 | 7 | 8 | 9 | 0 |
- * |-----+-----+-----+-----+-----+-----++-----+-----+-----+-----+-----+-----|
- * | ! | @ | # | $ | % | ||Vol +| ^ | & | * | ( | ) |
- * |-----+-----+-----+-----+-----+-----++-----+-----+-----+-----+-----+-----|
- * | | | | | | | || | | | | | |
- * `------------------------------------------------------------------------' */
-#define NUMBERS \
- K_NUMBR,KC_GRV, KC_TILD,KC_BSLS,KC_LBRC,KC_LCBR,KC_RCBR,KC_RBRC,KC_MINS,KC_UNDS,KC_EQL, KC_PLUS, \
- KC_1, KC_2, KC_3, KC_4, KC_5, _______,K_LOCK, KC_6, KC_7, KC_8, KC_9, KC_0, \
- KC_EXLM,KC_AT, KC_HASH,KC_DLR, KC_PERC,_______,KC_VOLU,KC_CIRC,KC_AMPR,KC_ASTR,KC_LPRN,KC_RPRN, \
- KC_PIPE,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______
-
-/* Settings layer
- * ,------------------------------------------------------------------------.
- * |BLLed| F1 | F2 | F3 | F4 | Lin || Win | Wake| |Hue -|Hue +|Reset|
- * |-----+-----+-----+-----+-----+-----++-----+-----+-----+-----+-----+-----|
- * | | F5 | F6 | F7 | F8 | ||Vol 0| |RGBto|Sat -|Sat +| |
- * |-----+-----+-----+-----+-----+-----++-----+-----+-----+-----+-----+-----|
- * | Game| F9 | F10 | F11 | F12 |Vol 0|| |PrtSc|RGBan|Bri -|Bri +| |
- * |-----+-----+-----+-----+-----+-----++-----+-----+-----+-----+-----+-----|
- * |Musir| | | | |Vol +||Vol -| Prev| Stop|TogMu| Next| |
- * `------------------------------------------------------------------------' */
-#define SETTINGS \
- BL_STEP,KC_F1, KC_F2, KC_F3, KC_F4, UNI_LI, UNI_WN, KC_WAKE,_______,RGB_HUD,RGB_HUI,QK_BOOT, \
- _______,KC_F5, KC_F6, KC_F7, KC_F8, _______,KC_MUTE,_______,RGB_TOG,RGB_SAD,RGB_SAI,_______, \
- K_GAMES,KC_F9, KC_F10, KC_F11, KC_F12, KC_MUTE,_______,KC_PSCR,RGB_MOD,RGB_VAD,RGB_VAI,_______, \
- MU_TOGG, _______,_______,_______,_______,KC_VOLU,KC_VOLD,KC_MPRV,KC_MSTP,KC_MPLY,KC_MNXT,_______
-
-/* Mouse layer
- * ,------------------------------------------------------------------------.
- * |Ulock| \ | ^ | / |.....|.....||.....|.....| |\|.| |^| | |/|.| |
- * |-----+-----+-----+-----+-----+-----++-----+-----+-----+-----+-----+-----|
- * | | < | Mid | > |Btn 4|.....||.....|Btn 5| <-- | Mid | --> | |
- * |-----+-----+-----+-----+-----+-----++-----+-----+-----+-----+-----+-----|
- * | | / | v | \ |.....|.....||.....|.....| |/| | |v| | |\| | LCK |
- * |-----+-----+-----+-----+-----+-----++-----+-----+-----+-----+-----+-----|
- * | | | | | | Left||Right| | |Accl0|Accl1|Accl2|
- * `------------------------------------------------------------------------' */
-#define MOUSE \
- K_MOUSE,MO_NW, MO_N, MO_NE, XXX, XXX ,XXX, XXX, MO_S_NW,MO_S_N, MO_S_NE,_______, \
- _______,MO_W, MO_CL_M,MO_E, MO_CL_4,XXX ,XXX, MO_CL_5,MO_S_W, MO_CL_M,MO_S_E, _______, \
- _______,MO_SW, MO_S, MO_SE, XXX, XXX ,XXX, XXX, MO_S_SW,MO_S_S, MO_S_SE,K_LOCK , \
- _______,_______,_______,_______,_______,MO_CL_L,MO_CL_R,_______,MO_AC_0,MO_AC_1,MO_AC_2,_______
-
-/* Music layer
- * ,------------------------------------------------------------------------.
- * |.....|.....|.....|.....|.....|.....||.....|.....|.....|.....|.....|.....|
- * |-----+-----+-----+-----+-----+-----++-----+-----+-----+-----+-----+-----|
- * |.....|.....|.....|.....|.....|.....||.....|.....|.....|.....|.....|.....|
- * |-----+-----+-----+-----+-----+-----++-----+-----+-----+-----+-----+-----|
- * |.....|.....|.....|.....|.....|.....||.....|.....|.....|.....|.....|.....|
- * |-----+-----+-----+-----+-----+-----++-----+-----+-----+-----+-----+-----|
- * | togg| rec | stop| play| slow| fast||modes|.....|.....|.....|.....|.....|
- * `------------------------------------------------------------------------'
- */
-#define MUSIC \
- MU_MASK,MU_MASK,MU_MASK,MU_MASK,MU_MASK,MU_MASK,MU_MASK,MU_MASK,MU_MASK,MU_MASK,MU_MASK,MU_MASK, \
- MU_MASK,MU_MASK,MU_MASK,MU_MASK,MU_MASK,MU_MASK,MU_MASK,MU_MASK,MU_MASK,MU_MASK,MU_MASK,MU_MASK, \
- MU_MASK,MU_MASK,MU_MASK,MU_MASK,MU_MASK,MU_MASK,MU_MASK,MU_MASK,MU_MASK,MU_MASK,MU_MASK,MU_MASK, \
- MU_TOGG,MU_REC, MU_STOP,MU_PLAY,MU_SLOW,MU_FAST,MU_NEXT,MU_MASK,MU_MASK,MU_MASK,MU_MASK,MU_MASK
diff --git a/users/romus/rules.mk b/users/romus/rules.mk
deleted file mode 100644
index 32a5ab0923..0000000000
--- a/users/romus/rules.mk
+++ /dev/null
@@ -1,21 +0,0 @@
-SRC += romus.c
-EXTRAFLAGS += -flto # Used to make code smaller
-
-# ENABLE
-UNICODE_ENABLE = yes # Used for unicode character emulation
-EXTRAKEY_ENABLE = yes # OS signals like volume control
-
-# DISABLE
-ifndef BLUETOOTH_ENABLE
- BLUETOOTH_ENABLE = no # No bluetooth
-endif
-COMMAND_ENABLE = no # Some bootmagic thing i dont use
-BOOTMAGIC_ENABLE = no # Enable Bootmagic Lite
-CONSOLE_ENABLE = no # Allows console output with a command
-SLEEP_LED_ENABLE = no # Breathes LED's when computer is asleep. Untested.
-NKRO_ENABLE = no # Default is 6KRO which is plenty
-MIDI_ENABLE = no # Untested feature
-KEY_LOCK_ENABLE = no # Allows locking any key. Not used
-
-# Disabling this makes it compile, i dont know why
-# VARIABLE_TRACE = no # Allows debugging variables
diff --git a/users/rossman360/readme.md b/users/rossman360/readme.md
deleted file mode 100644
index ebb17d16cf..0000000000
--- a/users/rossman360/readme.md
+++ /dev/null
@@ -1,14 +0,0 @@
-Copyright 2020 Ross Montsinger rmontsinger@gmail.com @Rossman360
-
-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/>. \ No newline at end of file
diff --git a/users/rossman360/rossman360.c b/users/rossman360/rossman360.c
deleted file mode 100644
index 10911bddec..0000000000
--- a/users/rossman360/rossman360.c
+++ /dev/null
@@ -1,85 +0,0 @@
-#include "rossman360.h"
-
-void my_custom_function(void) {
-
-}
-
-__attribute__ ((weak))
-bool process_record_keymap(uint16_t keycode, keyrecord_t *record) {
- return true;
-}
-
-bool process_record_user(uint16_t keycode, keyrecord_t *record) {
-switch (keycode) {
- case KC_MAKE: // Compiles the firmware, and adds the flash command based on keyboard bootloader
- if (!record->event.pressed) {
- uint8_t temp_mod = get_mods();
- uint8_t temp_osm = get_oneshot_mods();
- clear_mods(); clear_oneshot_mods();
- SEND_STRING("make " QMK_KEYBOARD ":" QMK_KEYMAP);
- #ifndef FLASH_BOOTLOADER
- if ((temp_mod | temp_osm) & MOD_MASK_SHIFT)
- #endif
- {
- SEND_STRING(":flash");
- }
- if ((temp_mod | temp_osm) & MOD_MASK_CTRL) {
- SEND_STRING(" -j8 --output-sync");
- }
- tap_code(KC_ENT);
- set_mods(temp_mod);
- }
- break;
- case CSPEAK:
- if (record->event.pressed) {
- SEND_STRING(SS_TAP(X_PAGE_DOWN) SS_TAP(X_ENTER) SS_TAP(X_ENTER) SS_TAP(X_PAGE_DOWN));
- }
- break;
- case SPEAK1:
- if (record->event.pressed) {
- SEND_STRING(SS_TAP(X_PAGE_DOWN) SS_TAP(X_ENTER) SS_TAP(X_ENTER) SS_TAP(X_PAGE_DOWN) SS_LCTL(SS_TAP(X_1)));
- }
- break;
- case SPEAK2:
- if (record->event.pressed) {
- SEND_STRING(SS_TAP(X_PAGE_DOWN) SS_TAP(X_ENTER) SS_TAP(X_ENTER) SS_TAP(X_PAGE_DOWN) SS_LCTL(SS_TAP(X_2)));
- }
- break;
- case SPEAK3:
- if (record->event.pressed) {
- SEND_STRING(SS_TAP(X_PAGE_DOWN) SS_TAP(X_ENTER) SS_TAP(X_ENTER) SS_TAP(X_PAGE_DOWN) SS_LCTL(SS_TAP(X_3)));
- }
- break;
- case SPEAK4:
- if (record->event.pressed) {
- SEND_STRING(SS_TAP(X_PAGE_DOWN) SS_TAP(X_ENTER) SS_TAP(X_ENTER) SS_TAP(X_PAGE_DOWN) SS_LCTL(SS_TAP(X_4)));
- }
- break;
- case PARADOWN:
- if (record->event.pressed) {
- SEND_STRING(SS_TAP(X_PAGE_DOWN) SS_TAP(X_ENTER) SS_TAP(X_PAGE_DOWN));
- }
- break;
- case PMERGE:
- if (record->event.pressed) {
- SEND_STRING(SS_TAP(X_HOME) SS_TAP(X_BACKSPACE) SS_TAP(X_SPACE) SS_LCTL(SS_TAP(X_BACKSPACE)) SS_TAP(X_SPACE));
- }
- break;
- case WREFRESH:
- if (record->event.pressed) {
- SEND_STRING(SS_TAP(X_SPACE) SS_TAP(X_BACKSPACE));
- }
- break;
- case REMCAPS:
- if (record->event.pressed) {
- SEND_STRING(SS_TAP(X_LEFT) SS_TAP(X_LEFT) SS_LCTL(SS_TAP(X_LEFT)) SS_TAP(X_DELETE));
- }
- break;
- case EMDASH:
- if (record->event.pressed) {
- SEND_STRING(SS_LCTL(SS_LSFT(SS_TAP(X_U))) SS_TAP(X_2) SS_TAP(X_0) SS_TAP(X_1) SS_TAP(X_4) SS_TAP(X_SPACE) SS_TAP(X_SPACE));
- }
- break;
-};
-return true;
-};
diff --git a/users/rossman360/rossman360.h b/users/rossman360/rossman360.h
deleted file mode 100644
index 8786da8313..0000000000
--- a/users/rossman360/rossman360.h
+++ /dev/null
@@ -1,38 +0,0 @@
-#pragma once
-#include "quantum.h"
-
-#define BWORD LCTL(KC_BSPC)
-#define BLINE LALT(KC_BSPC)
-#define LWORD LCTL(KC_LEFT)
-#define RWORD LCTL(KC_RIGHT)
-#define JUMPBACK LSFT(KC_TAB)
-#define UNDO LCTL(KC_Z)
-#define XPANDR LCTL(LSFT(KC_X))
-#define NTAB LCTL(KC_T)
-#define CTAB LCTL(KC_W)
-#define XPANDR LCTL(LSFT(KC_X))
-#define CMDBSP MT(MOD_LGUI, KC_BSPC)
-#define ALTDEL MT(MOD_LALT, KC_DEL)
-#define TAB1 LCTL(KC_1)
-#define TAB2 LCTL(KC_2)
-#define TAB3 LCTL(KC_3)
-#define TAB4 LCTL(KC_4)
-#define CTRLSP MT(MOD_LCTL, KC_SPACE)
-#define RVOLU LCTL(KC_RBRC)
-#define RVOLD LCTL(KC_LBRC)
-#define QUIT LCTL(KC_Q)
-
-// Define all of
-enum custom_keycodes {
- KC_MAKE = SAFE_RANGE,
- CSPEAK,
- SPEAK1,
- SPEAK2,
- SPEAK3,
- SPEAK4,
- PARADOWN,
- WREFRESH,
- PMERGE,
- REMCAPS,
- EMDASH
-};
diff --git a/users/rossman360/rules.mk b/users/rossman360/rules.mk
deleted file mode 100644
index 8aaa74316f..0000000000
--- a/users/rossman360/rules.mk
+++ /dev/null
@@ -1,5 +0,0 @@
-SRC += rossman360.c
-
-ifeq ($(strip $(MACROS_ENABLED)), yes)
- OPT_DEFS += -DMACROS_ENABLED
-endif \ No newline at end of file
diff --git a/users/rs/karabiner.json b/users/rs/karabiner.json
deleted file mode 100644
index f5214650ad..0000000000
--- a/users/rs/karabiner.json
+++ /dev/null
@@ -1,154 +0,0 @@
-{
- "title": "RS",
- "rules": [{
- "description": "CapsLock to Escape / Control Mod-Tap",
- "manipulators": [{
- "type": "basic",
- "from": {
- "key_code": "caps_lock",
- "modifiers": {
- "optional": ["any"]
- }
- },
- "to": [{"key_code": "left_control"}],
- "to_if_alone": [{"key_code": "escape"}]
- }]
- },
- {
- "description": "Right-Shift / Enter Mod-Tap",
- "manipulators": [{
- "type": "basic",
- "from": {
- "key_code": "right_shift",
- "modifiers": {
- "optional": ["any"]
- }
- },
- "to": [{"key_code": "right_shift"}],
- "to_if_alone": [{"key_code": "return_or_enter"}]
- }]
- },
- {
- "description": "Right-Command / Backspace Mod-Tap",
- "manipulators": [{
- "type": "basic",
- "from": {
- "key_code": "right_command",
- "modifiers": {
- "optional": ["any"]
- }
- },
- "to": [{"key_code": "right_command"}],
- "to_if_alone": [{"key_code": "delete_or_backspace"}]
- }]
- },
- {
- "description": "Right-Command Accents",
- "manipulators": [
- {
- "type": "basic",
- "from": {
- "key_code": "a",
- "modifiers": {
- "mandatory": ["right_command"],
- "optional": ["left_shift", "right_shift"]
- }
- },
- "to": [
- {"key_code": "grave_accent_and_tilde", "modifiers": ["left_option"]},
- {"key_code": "a"}
- ]
- }]
- },
- {
- "description": "Right Command Navigation",
- "manipulators": [{
- "type": "basic",
- "from": {
- "key_code": "j",
- "modifiers": {
- "mandatory": ["right_command"],
- "optional": ["any"]
- }
- },
- "to": [{"key_code": "left_arrow"}]
- },
- {
- "type": "basic",
- "from": {
- "key_code": "k",
- "modifiers": {
- "mandatory": ["right_command"],
- "optional": ["any"]
- }
- },
- "to": [{"key_code": "down_arrow"}]
- },
- {
- "type": "basic",
- "from": {
- "key_code": "i",
- "modifiers": {
- "mandatory": ["right_command"],
- "optional": ["any"]
- }
- },
- "to": [{"key_code": "up_arrow"}]
- },
- {
- "type": "basic",
- "from": {
- "key_code": "l",
- "modifiers": {
- "mandatory": ["right_command"],
- "optional": ["any"]
- }
- },
- "to": [{"key_code": "right_arrow"}]
- },
- {
- "type": "basic",
- "from": {
- "key_code": "e",
- "modifiers": {
- "mandatory": ["right_command"],
- "optional": ["any"]
- }
- },
- "to": [{"key_code": "page_up"}]
- },
- {
- "type": "basic",
- "from": {
- "key_code": "d",
- "modifiers": {
- "mandatory": ["right_command"],
- "optional": ["any"]
- }
- },
- "to": [{"key_code": "page_down"}]
- },
- {
- "type": "basic",
- "from": {
- "key_code": "s",
- "modifiers": {
- "mandatory": ["right_command"],
- "optional": ["any"]
- }
- },
- "to": [{"key_code": "home"}]
- },
- {
- "type": "basic",
- "from": {
- "key_code": "f",
- "modifiers": {
- "mandatory": ["right_command"],
- "optional": ["any"]
- }
- },
- "to": [{"key_code": "end"}]
- }]
- }]
-}
diff --git a/users/rs/readme.md b/users/rs/readme.md
deleted file mode 100644
index 60b34ea32f..0000000000
--- a/users/rs/readme.md
+++ /dev/null
@@ -1,30 +0,0 @@
-# RS: Code Friendly 40% – 60% Keymaps
-
-The rs keymap collection is an evolution of my previous keymap optimized for coding with a 60% keyboards like the Iris. I tried to keep the simplicity of my previous keymap with all the keys necessary for coding on a single layer in addition to the base one. It work well with any 40% and 60% keyboard, split or not.
-
-To build it, use:
-
- make <keyboard>:rs
-
-Example:
-
- make keebio/iris:rs
- make crkbd:rs
- make planck:rs
- make preonic:rs
- make ergotravel:rs
- make handwired/rs60:rs
-
-Because I sometime have to use my internal keyboard I my macbook, a [karabiner configuration](karabiner.json) is also provided to get most of the features of this keyboard, including the code layer / backspace on right command key etc.
-
-This set of keymaps have been tested with those keyboards:
-- [Planck](../../keyboards/planck/)
-- [Preonic](../../keyboards/preonic/)
-- [My preonic clone](../../keyboards/handwired/rs60/)
-
-This keymap in is also available for other keyboards:
-- [Crkdb/rs](../../keyboards/crkbd/keymaps/rs/keymap.c)
-- [Iris/rs](../../keyboards/keebio/iris/keymaps/rs/keymap.c)
-- [Ergotravel/rs](../../keyboards/ergotravel/keymaps/rs/keymap.c)
-- [ortho_5x12/rs](../../layouts/community/ortho_5x12/rs/keymap.c)
-- [ortho_4x12/rs](../../layouts/community/ortho_4x12/rs/keymap.c)
diff --git a/users/rs/rs.c b/users/rs/rs.c
deleted file mode 100644
index fa634bb928..0000000000
--- a/users/rs/rs.c
+++ /dev/null
@@ -1,74 +0,0 @@
-
-#include "rs.h"
-
-// process_record_user is like process_record_user for keymaps including this file.
-__attribute__ ((weak))
-bool process_record_keymap(uint16_t keycode, keyrecord_t *record) {
- return true;
-}
-
-// rgb_mod_changed_keymap is called any time the RGB mod has been changed.
-__attribute__ ((weak))
-void rgb_mod_changed_keymap(void) {
-}
-
-// keylog_set_keymap is called for every key press.
-__attribute__ ((weak))
-void keylog_set_keymap(uint16_t keycode, keyrecord_t *record) {
-}
-
-bool process_record_user(uint16_t keycode, keyrecord_t *record) {
- if (record->event.pressed) {
- keylog_set_keymap(keycode, record);
- }
-
- switch (keycode) {
- case NEQL: // !=
- if (record->event.pressed) {
- SEND_STRING("!=");
- }
- return false;
- case LPLT: // ( or < with shift
- if (record->event.pressed) {
- if (get_mods() & (MOD_BIT(KC_LSFT) | MOD_BIT(KC_RSFT))) {
- // <
- tap_code(KC_COMM); // shift is already registered
- } else {
- // (
- register_mods(MOD_BIT(KC_LSFT));
- tap_code(KC_9);
- unregister_mods(MOD_BIT(KC_LSFT));
- }
- }
- return false;
- case RPGT: // ) or > with shift
- if (record->event.pressed) {
- if (get_mods() & (MOD_BIT(KC_LSFT) | MOD_BIT(KC_RSFT))) {
- // <
- tap_code(KC_DOT); // shift is already registered
- } else {
- // )
- register_mods(MOD_BIT(KC_LSFT));
- tap_code(KC_0);
- unregister_mods(MOD_BIT(KC_LSFT));
- }
- }
- return false;
-#ifdef RGBLIGHT_ENABLE
- case RGB_MOD:
- if (record->event.pressed) {
- rgblight_step();
- rgb_mod_changed_keymap();
- }
- return false;
- case RGBRST:
- if (record->event.pressed) {
- eeconfig_update_rgblight_default();
- rgblight_enable();
- rgb_mod_changed_keymap();
- }
- return false;
-#endif
- }
- return process_record_keymap(keycode, record);
-} \ No newline at end of file
diff --git a/users/rs/rs.h b/users/rs/rs.h
deleted file mode 100644
index ecd9a06de6..0000000000
--- a/users/rs/rs.h
+++ /dev/null
@@ -1,48 +0,0 @@
-#pragma once
-#include "quantum.h"
-
-enum layers {
- _QWERTY,
- _CODE,
- _FN,
-};
-
-enum custom_keycodes {
- CODE = SAFE_RANGE,
- FN,
- LPLT,
- RPGT,
- NEQL,
-#ifdef RGBLIGHT_ENABLE
- RGBRST,
-#endif
-};
-
-#define KC_ESCC MT(MOD_LCTL, KC_ESC)
-#define KC_ENTS MT(MOD_LSFT, KC_ENT)
-#define KC_LTGT LTGT // > or < with shift
-#define KC_LPLT LPLT // ( or < with shift
-#define KC_RPGT RPGT // ) or > with shift
-#define KC_NEQL NEQL // !=
-#define KC_CODE MO(_CODE)
-#define KC_BCOD LT(_CODE, KC_BSPC)
-#define KC_FN MO(_FN)
-#define KC_RST QK_BOOT
-#define KC_CTRA LCTL(KC_A)
-#define KC_CTRE LCTL(KC_E)
-#define KC_BLTG BL_TOGG
-#define KC_BLUP BL_UP
-#define KC_BLDN BL_DOWN
-#define KC_BLBR BL_BRTG
-
-#ifdef RGBLIGHT_ENABLE
-#define KC_LRST RGBRST
-#define KC_LTOG RGB_TOG
-#define KC_LHUI RGB_HUI
-#define KC_LHUD RGB_HUD
-#define KC_LSAI RGB_SAI
-#define KC_LSAD RGB_SAD
-#define KC_LVAI RGB_VAI
-#define KC_LVAD RGB_VAD
-#define KC_LMOD RGB_MOD
-#endif
diff --git a/users/rs/rules.mk b/users/rs/rules.mk
deleted file mode 100644
index edb5be0f5b..0000000000
--- a/users/rs/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-SRC += rs.c \ No newline at end of file
diff --git a/users/rupa/config.h b/users/rupa/config.h
deleted file mode 100644
index 42a1708f9c..0000000000
--- a/users/rupa/config.h
+++ /dev/null
@@ -1,11 +0,0 @@
-#pragma once
-
-#define UNICODE_SELECTED_MODES UNICODE_MODE_MACOS, UNICODE_MODE_LINUX
-
-#define ONESHOT_TAP_TOGGLE 5
-#define ONESHOT_TIMEOUT 5000
-
-#undef TAP_CODE_DELAY
-#define TAP_CODE_DELAY 5 //DEFAULT: 100
-
-//#define UNICODE_SCRIPT_MODE_ENABLE
diff --git a/users/rupa/process_records.c b/users/rupa/process_records.c
deleted file mode 100644
index 2d23e34017..0000000000
--- a/users/rupa/process_records.c
+++ /dev/null
@@ -1,118 +0,0 @@
-/*
-Copyright 2020 rupa <rupa@lrrr.us> @rupa
-
-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 "rupa.h"
-
-uint16_t processed_keycode;
-
-__attribute__((weak))
-bool process_record_keymap(uint16_t keycode, keyrecord_t *record) {
- return true;
-}
-
-bool process_record_user(uint16_t keycode, keyrecord_t *record) {
- if (record->event.pressed) {
-
- processed_keycode = keycode;
- // mask out mod taps
- if (
- (keycode >= QK_MOD_TAP && keycode <= QK_MOD_TAP_MAX) ||
- (keycode >= QK_LAYER_TAP && keycode <= QK_LAYER_TAP_MAX)
- ) {
- processed_keycode &= 0xFF;
- }
-
- bool is_shifted = (get_mods() | get_oneshot_mods() | get_weak_mods()) & MOD_MASK_SHIFT;
- switch(processed_keycode) {
- case VRSN:
- send_string_with_delay_P(PSTR(
- "# " QMK_KEYBOARD "/" QMK_KEYMAP ":" QMK_VERSION " " QMK_BUILDDATE "\n"
- ), TAP_CODE_DELAY);
- return false;
-
- case BUGS:
- return u_xp(is_shifted, "ᙙᙖ", "ଳ");
- case CATS:
- return u_xp(is_shifted, "ⓛ ᆽ ⓛ ", "ㅇㅅㅇ");
- case DANCE:
- return u_x(dance(is_shifted));
- case DICE:
- return u_x(d6());
- case DOMO:
- return u_xp(is_shifted, "(シ_ _)シ", "m(_ _)m");
- case FART:
- return u_x("⊥ʶ∀Ⅎ");
- case FLIP:
- return u_x(flip(is_shifted));
- case HUGS:
- return u_xp(is_shifted, "(づ ̄ ³ ̄)づ", "(っಠ‿ಠ)っ");
- case JOY:
- return u_x(joy(is_shifted));
- case RNDM:
- return false;
- case KISS:
- return u_xp(is_shifted, "꒒ ০ ⌵ ୧ ♡", "( ˘ ³˘)♥");
- case LOD:
- return u_xp(is_shifted, "( ͡ಠ ʖ̯ ͡ಠ)", "ಠ_ಠ");
- case MUSIC:
- return u_xp(is_shifted, "(˳˘ ɜ˘)˳ ♬ ♪♫", "(´▽`)ノ♫");
- case RUPA:
- return u_xp(is_shifted, "Śrīrūpa", "rūpa");
- case SHRUG:
- return u_xp(is_shifted, "⋌ ༼ •̀ ⌂ •́ ༽⋋", "¯\\_(ツ)_/¯");
- case TADA:
- return u_xp(is_shifted, "☆ *・゜゚・*(^O^)/*・゜゚・*☆", "\\(゜ロ\\)Ξ(//ロ゜)//");
- case WAT:
- return u_xp(is_shifted, "༼ ຶཽཀ ຶཽ༽", "ヽ༼⊙_⊙༽ノ");
- case YUNO:
- return u_xp(is_shifted, "o(^^o)", "щ(゜ロ゜щ)");
- case ZALGO:
- set_combined_mode(CM_ZALGO);
- break;
- case ZZZZZ:
- cycle_combined_mode();
- break;
-
-#if defined(UNICODE_SCRIPT_MODE_ENABLE)
- // script modes
- case U_FRACT:
- return set_script_mode(F_FRACT);
- case U_ITALI:
- return set_script_mode(F_ITALI);
- case U_MONOS:
- return set_script_mode(F_MONOS);
- case U_NORML:
- return set_script_mode(F_NORML);
- case U_SANSI:
- return set_script_mode(F_SANSI);
- case U_SANSN:
- return set_script_mode(F_SANSN);
- case U_SCRPT:
- return set_script_mode(F_SCRPT);
-
- default:
- if (get_script_mode() != NULL) {
- return script_mode_translate(is_shifted, processed_keycode);
- }
- if (combined_mode != CM_NULL && combined_text(processed_keycode)) {
- return false;
- }
-#endif
- }
- }
- return process_record_keymap(keycode, record);
-}
diff --git a/users/rupa/process_records.h b/users/rupa/process_records.h
deleted file mode 100644
index 7c7fe491be..0000000000
--- a/users/rupa/process_records.h
+++ /dev/null
@@ -1,21 +0,0 @@
-/*
-Copyright 2020 rupa <rupa@lrrr.us> @rupa
-
-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 "rupa.h"
-
-bool process_record_keymap(uint16_t keycode, keyrecord_t *record);
diff --git a/users/rupa/readme.md b/users/rupa/readme.md
deleted file mode 100644
index b6c2dd1f7f..0000000000
--- a/users/rupa/readme.md
+++ /dev/null
@@ -1,7 +0,0 @@
-# rupa's userspace
-
-* rupa.c has some unicode script mode stuff
-* unicode.c has my unicode map
-* process_record.c has my keycode handler
-
-my keymap is in [keyboards/tada68](../../keyboards/tada68/keymaps/rupa/)
diff --git a/users/rupa/rules.mk b/users/rupa/rules.mk
deleted file mode 100644
index ed33e85f3a..0000000000
--- a/users/rupa/rules.mk
+++ /dev/null
@@ -1,5 +0,0 @@
-UNICODEMAP_ENABLE = yes
-LTO_ENABLE = yes
-SRC += rupa.c \
- process_records.c \
- unicode.c
diff --git a/users/rupa/rupa.c b/users/rupa/rupa.c
deleted file mode 100644
index 85de5c16fd..0000000000
--- a/users/rupa/rupa.c
+++ /dev/null
@@ -1,82 +0,0 @@
-/*
-Copyright 2020 rupa <rupa@lrrr.us> @rupa
-
-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 <print.h>
-#include "rupa.h"
-
-#if defined(UNICODE_SCRIPT_MODE_ENABLE)
-const font_t * translator = NULL;
-
-// https://en.wikipedia.org/wiki/Mathematical_Alphanumeric_Symbols
-static const font_t *fonts_map[] = {
- [F_FRACT] = &(font_t){0x1D56C, 0x1D586, 0x1D7D8}, // fraktur/doublestruck numbers
- [F_ITALI] = &(font_t){0x1D468, 0x1D482, 0x1D7CE}, // italic/bold numbers
- [F_MONOS] = &(font_t){0x1D670, 0x1D68A, 0x1D7F6}, // monospace
- [F_NORML] = &(font_t){0x1D400, 0x1D41A, 0x00030}, // normal!
- [F_SANSI] = &(font_t){0x1D63C, 0x1D656, 0x1D7EC}, // sans 1talic/sans bold numbers
- [F_SANSN] = &(font_t){0x1D5D4, 0x1D5EE, 0x1D7E2}, // sans normal/sans numbers
- [F_SCRPT] = &(font_t){0x1D4D0, 0x1D4EA, 0x1D7CE}, // script/bold numbers
-};
-
-/*
-font_t doublestruc = {0x1D538, 0x1D552, 0x1D7D8};
-uint_32 []snowflakes = {
- // doublestruck
- 0x1D53B, // C
- 0x1D540, // H
- 0x1D546, // N
- 0x1D548, // P
- 0x1D549, // Q
- 0x1D54A, // R
- 0x1D552, // Z
-};
-*/
-
-const font_t *get_script_mode(void) {
- return translator;
-}
-bool set_script_mode(int fc) {
- translator = translator == fonts_map[fc] ? NULL : fonts_map[fc];
- dprintf("set_script_mode: %u %b\n", fc, translator != NULL);
- return true;
-}
-
-// Maps A-Z, a-z, and 0-9 to other unicode ranges. We also map space to EN
-// SPACE for some reason :)
-uint32_t map_alnum(const font_t *f, bool is_shifted, uint32_t keycode) {
- switch (keycode) {
- case KC_SPACE:
- return (is_shifted ? 0 : 0x2002); // EN SPACE
- case KC_0:
- return (is_shifted ? 0 : f->zero_glyph);
- case KC_A ... KC_Z:
- return (is_shifted ? f->upper_alpha : f->lower_alpha) + keycode - KC_A;
- case KC_1 ... KC_9:
- return (is_shifted ? 0 : f->zero_glyph + keycode - KC_1 + 1);
- default:
- return 0;
- }
-}
-
-bool script_mode_translate(bool is_shifted, uint32_t keycode) {
- uint32_t translated = map_alnum(translator, is_shifted, keycode);
- if (translated == 0) return true;
- dprintf("script_mode_translate: %u => %d\n", keycode, translated);
- register_unicode(translated);
- return false;
-}
-#endif
diff --git a/users/rupa/rupa.h b/users/rupa/rupa.h
deleted file mode 100644
index cfe873ffc6..0000000000
--- a/users/rupa/rupa.h
+++ /dev/null
@@ -1,82 +0,0 @@
-/*
-Copyright 2020 rupa <rupa@lrrr.us> @rupa
-
-This program is free software: you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program. If not, see <http://www.gnu.org/licenses/>.
-*/
-
-#pragma once
-#include QMK_KEYBOARD_H
-#include "version.h"
-#include "process_records.h"
-#include "unicode.h"
-#include "wrappers.h"
-
-enum userspace_layers {
- _QWERTY = 0,
- _LOWER,
- _RAISE,
- _ADJUST
-};
-
-enum userspace_custom_keycodes {
- VRSN = SAFE_RANGE,
- BUGS,
- CATS,
- DANCE,
- DICE,
- DOMO,
- FART,
- FLIP,
- HUGS,
- JOY,
- KISS,
- LOD,
- MUSIC,
- RNDM,
- RUPA,
- SHRUG,
- TADA,
- U_FRACT,
- U_ITALI,
- U_MONOS,
- U_NORML,
- U_SANSI,
- U_SANSN,
- U_SCRPT,
- WAT,
- YUNO,
- ZALGO,
- ZZZZZ,
- NEXT_SAFE_RANGE
-};
-
-enum userspace_font_choices {
- F_FRACT = 0,
- F_ITALI,
- F_MONOS,
- F_NORML,
- F_SANSI,
- F_SANSN,
- F_SCRPT
-};
-
-typedef struct font_t {
- uint32_t upper_alpha;
- uint32_t lower_alpha;
- uint32_t zero_glyph;
-} font_t;
-
-const font_t* get_script_mode(void);
-bool set_script_mode(int fc);
-bool script_mode_translate(bool is_shifted, uint32_t keycode);
diff --git a/users/rupa/unicode.c b/users/rupa/unicode.c
deleted file mode 100644
index 56b4509813..0000000000
--- a/users/rupa/unicode.c
+++ /dev/null
@@ -1,172 +0,0 @@
-/*
-Copyright 2020 rupa <rupa@lrrr.us> @rupa
-
-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 "unicode.h"
-
-combined_mode_t combined_mode = CM_NULL;
-bool _seeded = false;
-
-#if defined(UNICODEMAP_ENABLE)
-const uint32_t unicode_map[] PROGMEM = {
- [CCIR] = 0x20DD, // COMBINING CIRCLE ⃝
- [CENT] = 0x00A2, // ¢
- [CHEK] = 0x2713, // ✓
- [CKEY] = 0x20E3, // COMBINING KEYCAP ⃣
- [CUI] = 0x26A0, // ⚠
- [ECKS] = 0x2716, // ✖
- [EFF] = 0x017F, // ſ
- [HAS] = 0x262D, // ☭
- [HUN] = 0x1F4AF, // 💯
- [IBNG] = 0x203D, // ‽
- [IRNY] = 0x2E2E, // ⸮
- [LALL] = 0x2200, // ∀
- [LELM] = 0x2208, // ∈
- [LEXI] = 0x2203, // ∃
- [LPRO] = 0x22A2, // ⊢
- [M4] = 0x2669, // ♩
- [M8] = 0x266A, // ♪
- [M8B] = 0x266B, // ♫
- [M16] = 0x266C, // ♬
- [NEG] = 0x20E0, // COMBINING NO ⃠
- [NOPE] = 0x1F6AB, // 🚫
- [NUM] = 0x2116, // №
- [OM] = 0x0950, // ॐ
- [SMB] = 0x263A, // ☻
- [SMW] = 0x263B, // ☺
- [STB] = 0x2605, // ★
- [STOP] = 0x26D4, // ⛔
- [STW] = 0x2606, // ☆
-};
-#endif
-
-const char *d6_map[] = {
- "⚀", "⚁", "⚂", "⚃", "⚄", "⚅"
-};
-const char *dance_map[] = {
- "〜( ̄▽ ̄〜)",
- "(〜 ̄▽ ̄)〜"
-};
-const char *dance_more_map[] = {
- "ƪ(˘⌣˘)┐",
- "┌(˘⌣˘)ʃ"
-};
-const char *flip_map[] = {
- "(╯°□°)╯︵ ┻━━┻",
- "(ノ-_-)ノ・・ ┻━━┻",
- "(ノꐦ⊙曲ఠ)ノ彡┻━┻"
-};
-const char *flip_back_map[] = {
- "┬──┬◡ノ(° -°ノ)",
- "┬──┬ノ( ゜-゜ノ)",
- "┬──┬ノ(ಠ_ಠノ)"
-};
-const char *joy_map[] = {
- "ᕕ( ᐛ )ᕗ ",
- "٩(ˊᗜˋ*)و",
- "٩( ᐛ )و"
-};
-const char *joy_harder_map[] = {
- "\\\ ٩( ᐛ )و //",
- "✧*。٩(ˊᗜˋ*)و✧*。"
-};
-
-const char *choice(const char *choices[], int size) {
- if (_seeded == false) {
- srand(timer_read32());
- dprintf("_seeded the roll\n");
- _seeded = true;
- }
- return choices[rand() % size];
-}
-
-const char *d6(void) {
- return choice(d6_map, 6);
-}
-const char *dance(bool more) {
- if (more) {
- return choice(dance_more_map, 2);
- }
- return choice(dance_map, 2);
-}
-const char *flip(bool flip_back) {
- if (flip_back) {
- return choice(flip_back_map, 3);
- }
- return choice(flip_map, 3);
-}
-const char *joy(bool harder) {
- if (harder) {
- return choice(joy_harder_map, 2);
- }
- return choice(joy_map, 3);
-}
-
-bool u_x(const char *text) {
- send_unicode_string(text);
- return false;
-};
-bool u_xp(bool is_shifted, const char *shifted, const char *plain) {
- send_unicode_string(is_shifted ? shifted : plain);
- return false;
-};
-
-void zalgo(void) {
- unicode_input_start();
- int number = (rand() % (8 + 1 - 2)) + 2;
- unsigned int index;
- for (index=0; index<number; index++) {
- uint16_t hex = (rand() % (0x036F + 1 - 0x0300)) + 0x0300;
- register_hex(hex);
- }
- unicode_input_finish();
-}
-
-bool combined_text(uint16_t keycode) {
- if (keycode < KC_A || (keycode > KC_0 && keycode < KC_MINUS) || keycode > KC_SLASH) {
- return false;
- }
- tap_code(keycode);
-
- switch (combined_mode) {
- case CM_CIRCLE:
- register_unicode(0x20DD);
- break;
- case CM_NO:
- register_unicode(0x20E0);
- break;
- case CM_KEYCAP:
- register_unicode(0x20E3);
- break;
- case CM_ZALGO:
- zalgo();
- break;
- default:
- break;
- }
- return true;
-}
-
-void cycle_combined_mode(void) {
- if (combined_mode++ >= CM_MAX - 1) {
- combined_mode = CM_NULL;
- }
-}
-
-combined_mode_t set_combined_mode(combined_mode_t mode) {
- combined_mode = combined_mode == mode ? CM_NULL : mode;
- return combined_mode;
-}
diff --git a/users/rupa/unicode.h b/users/rupa/unicode.h
deleted file mode 100644
index 92303b13f5..0000000000
--- a/users/rupa/unicode.h
+++ /dev/null
@@ -1,77 +0,0 @@
-/*
-Copyright 2020 rupa <rupa@lrrr.us> @rupa
-
-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 "rupa.h"
-
-#if defined(UNICODEMAP_ENABLE)
-enum unicode_names {
- CCIR, // COMBINING ⃝
- CENT, // ¢
- CHEK, // ✓
- CKEY, // COMBINING ⃣
- CUI, // ⚠
- ECKS, // ✖
- EFF, // ſ
- HAS, // ☭
- HUN, // 💯
- IBNG, // ‽
- IRNY, // ⸮
- LALL, // ∀
- LELM, // ∈
- LEXI, // ∃
- LPRO, // ⊢
- M4, // ♩
- M8, // ♪
- M8B, // ♫
- M16, // ♬
- NEG, // COMBINING ⃠
- NOPE, // 🚫
- NUM, // №
- OM, // ॐ
- SMB, // ☻
- SMW, // ☺
- STB, // ★
- STOP, // ⛔
- STW, // ☆
-};
-#endif
-
-typedef enum combined_modes {
- CM_NULL = 0,
- CM_CIRCLE,
- CM_NO,
- CM_KEYCAP,
- CM_ZALGO,
- CM_MAX
-} combined_mode_t;
-
-combined_mode_t combined_mode;
-
-// random choices
-const char * d6(void);
-const char * dance(bool more);
-const char * flip(bool back);
-const char * joy(bool harder);
-
-// like X and XP
-bool u_x(const char *text);
-bool u_xp(bool is_shifted, const char * shifted, const char *plain);
-
-bool combined_text(uint16_t keycode);
-void cycle_combined_mode(void);
-combined_mode_t set_combined_mode(combined_mode_t mode);
diff --git a/users/rupa/wrappers.h b/users/rupa/wrappers.h
deleted file mode 100644
index df32ef39ab..0000000000
--- a/users/rupa/wrappers.h
+++ /dev/null
@@ -1,122 +0,0 @@
-/*
-Copyright 2020 rupa <rupa@lrrr.us> @rupa
-
-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 "rupa.h"
-
-#define LOWER MO(_LOWER)
-#define RAISE MO(_RAISE)
-#define OS_RGUI OSM(MOD_RGUI)
-#define OS_RALT OSM(MOD_RALT)
-#define OS_RCTL OSM(MOD_RCTL)
-#define OS_RSFT OSM(MOD_RSFT)
-
-#define G_LWR LT(_LOWER, KC_G)
-
-#if defined(UNICODEMAP_ENABLE)
-# define CSHAPES UP(CCIR,CKEY)
-# define CUIDADO UP(CUI,HAS)
-# define NOPENAH UP(NOPE,STOP)
-# define MUSIC_A UP(M4,M8)
-# define MUSIC_B UP(M8B,M16)
-# define SMILE UP(SMB,SMW)
-# define STARS UP(STB,STW)
-# define YEPYEP UP(CHEK,HUN)
-#endif
-
-/* _QWERTY
- * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┬───┐
- * │Es~│ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │ Backsp│~ `│
- * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┼───┤
- * │ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │ \ │Del│
- * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┤
- * │RAISE │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ Enter │PgU│
- * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┤
- * │ Shift │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │ Shift│ ↑ │PgD│
- * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴──┬┴──┬┴──┬───┼───┼───┤
- * │Ctrl│Alt │Gui │ Space │RAI│LOW│CAP│ ← │ ↓ │ → │
- * └────┴────┴────┴────────────────────────┴───┴───┴───┴───┴───┴───┘
- */
-#define ____65_QWERTY______________ROW1 QK_GESC, 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_GRV
-#define ____65_QWERTY______________ROW2 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
-#define ____65_QWERTY______________ROW3 RAISE, KC_A, KC_S, KC_D, KC_F, G_LWR, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGUP
-#define ____65_QWERTY______________ROW4 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_PGDN
-#define ____65_QWERTY______________ROW5 KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, RAISE, LOWER, KC_CAPS, KC_LEFT, KC_DOWN, KC_RGHT
-
-/* _RAISE
- * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┬───┐
- * │ ` │ ‽ │ ⸮ │ │ ¢ │ │ │ │★ │ │ ☻ │ ⃠ │CSH│ Del │Hme│
- * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┼───┤
- * │ │ │WAT│ ∃ │Rup│TAD│YUN│ │ ∈ │ ॐ │ │♩ ♪│♫ ♬│ │Ins│
- * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┤
- * │ │ ∀ │ ſ │ ⚂ │FRT│ │HUG│JOY│KSS│LOD│ │NO!│ ✓ 💯 │End│
- * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┤
- * │ RShift │⚠ ☭│ ✖ │CAT│BOW│BUG│ № │MUS│DNC│ ⊢ │SHR│ McL│M↑ │McR│
- * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴──┬┴──┬┴──┬───┼───┼───┤
- * │RCtl│RAlt│RGui│ FLIP │ │ │ │M← │M↓ │M→ │
- * └────┴────┴────┴────────────────────────┴───┴───┴───┴───┴───┴───┘
- */
-#define ____65_RAISE_______________ROW1 KC_GRV, UM(IBNG), UM(IRNY), _______, UM(CENT), _______, _______, _______, STARS, _______, SMILE, UM(NEG), CSHAPES, KC_DEL, KC_HOME
-#define ____65_RAISE_______________ROW2 _______, _______, WAT, UM(LEXI), RUPA, TADA, YUNO, _______, UM(LELM), UM(OM), _______, MUSIC_A, MUSIC_B, _______, KC_INS
-#define ____65_RAISE_______________ROW3 _______, UM(LALL), UM(EFF), DICE, FART, _______, HUGS, JOY, KISS, LOD, _______, NOPENAH, YEPYEP, KC_END
-#define ____65_RAISE_______________ROW4 OS_RSFT, CUIDADO, UM(ECKS), CATS, DOMO, BUGS, UM(NUM), MUSIC, DANCE, UM(LPRO), SHRUG, KC_BTN1, KC_MS_U, KC_BTN2
-#define ____65_RAISE_______________ROW5 OS_RCTL, OS_RALT, OS_RGUI, FLIP, _______, _______, _______, KC_MS_L, KC_MS_D, KC_MS_R
-
-/* _LOWER
- * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┬───┐
- * │ │ │ │ │ │ │ │ │ │ │ │ │zzz│ │ │
- * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┼───┤
- * │ │u_f│u_i│u_m│u_n│usi│usn│u_s│ │ │PRT│ │ │ │ │
- * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┤
- * │ │ │SLK│PAU│ │ │ │ │ │ │ │ │ │ │
- * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┤
- * │ │ZAL│ │CAP│VSN│ │NLK│ │ │ │ │ │ │ │
- * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴──┬┴──┬┴──┬───┼───┼───┤
- * │ │ │ │ │ │ │ │ ← │ ↓ │ → │
- * └────┴────┴────┴────────────────────────┴───┴───┴───┴───┴───┴───┘
- */
-#define ____65_LOWER_______________ROW1 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, ZZZZZ, _______, _______
-#define ____65_LOWER_______________ROW2 _______, U_FRACT, U_ITALI, U_MONOS, U_NORML, U_SANSI, U_SANSN, U_SCRPT, _______, _______, KC_PSCR, _______, _______, _______, _______
-#define ____65_LOWER_______________ROW3 _______, _______, KC_SCRL, KC_PAUS, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
-#define ____65_LOWER_______________ROW4 _______, ZALGO , _______, KC_CAPS, VRSN, _______, KC_NUM, _______, _______, _______, _______, _______, _______, _______
-#define ____65_LOWER_______________ROW5 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
-
-/* _ADJUST
- * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┬───┐
- * │ │F1 │F2 │F3 │F4 │F5 │F6 │F7 │F8 │F9 │F10│F11│F12│ │ │
- * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┼───┤
- * │ │r x│r m│rh+│rh-│rs+│rs-│rv+│rv-│ra+│ra-│ │ │RESET│ │
- * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┤
- * │ │ │ │ │ │ │ │ │ │ │ │ │EEP RSET│ │
- * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┤
- * │ │ │ │ │ │ │ │Mut│V- │V+ │ │U MODE│ │ │
- * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴──┬┴──┬┴──┬───┼───┼───┤
- * │ │ │ │ │ │ │ │ │ │ │
- * └────┴────┴────┴────────────────────────┴───┴───┴───┴───┴───┴───┘
- */
-#define ____65_ADJUST______________ROW1 _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______
-#define ____65_ADJUST______________ROW2 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, QK_BOOT, _______
-#define ____65_ADJUST______________ROW3 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, EE_CLR, _______
-#define ____65_ADJUST______________ROW4 _______, _______, _______, _______, _______, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, UC_NEXT, _______, _______
-#define ____65_ADJUST______________ROW5 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
-
-#define ____65_ADJUST__________RGB_ROW2 _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, RGB_SPI, RGB_SPD, _______, _______, QK_BOOT, _______
-#define ____65_ADJUST__________RGB_ROW3 _______, RGB_M_P, RGB_M_B, _______, _______, _______, _______, _______, _______, _______, _______, _______, EE_CLR, _______
-
-#define ____65_ADJUST___________BL_ROW2 _______, BL_TOGG, BL_BRTG, BL_STEP, _______, _______, _______, _______, _______, _______, _______, _______, _______, QK_BOOT, _______
-
-// clang-format on
diff --git a/users/rverst/config.h b/users/rverst/config.h
deleted file mode 100644
index 52e7c861ca..0000000000
--- a/users/rverst/config.h
+++ /dev/null
@@ -1,45 +0,0 @@
-/* Copyright 2021 Robert Verst <robert@verst.eu> @rverst
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-#pragma once
-
-#ifdef RGBLIGHT_ENABLE
-# define RGBLIGHT_SLEEP
-# undef RGBLIGHT_EFFECT_BREATHING
-# undef RGBLIGHT_EFFECT_RAINBOW_MOOD
-# undef RGBLIGHT_EFFECT_RAINBOW_SWIRL
-# undef RGBLIGHT_EFFECT_SNAKE
-# undef RGBLIGHT_EFFECT_KNIGHT
-# undef RGBLIGHT_EFFECT_CHRISTMAS
-# undef RGBLIGHT_EFFECT_STATIC_GRADIENT
-# undef RGBLIGHT_EFFECT_RGB_TEST
-# undef RGBLIGHT_EFFECT_ALTERNATING
-# undef RGBLIGHT_EFFECT_TWINKLE
-# define RGBLIGHT_SLEEP
-# define RGBLIGHT_EFFECT_BREATHING
-# define RGBLIGHT_EFFECT_RAINBOW_MOOD
-# define RGBLIGHT_EFFECT_RAINBOW_SWIRL
-# define RGBLIGHT_EFFECT_STATIC_GRADIENT
-# define RGBLIGHT_EFFECT_TWINKLE
-#endif // RGBLIGHT_ENABLE
-
-#if defined(LOCKING_SUPPORT_ENABLE)
-# undef LOCKING_SUPPORT_ENABLE
-#endif
-
-#if defined(LOCKING_RESYNC_ENABLE)
-# undef LOCKING_RESYNC_ENABLE
-#endif
diff --git a/users/rverst/readme.md b/users/rverst/readme.md
deleted file mode 100644
index b25af82db4..0000000000
--- a/users/rverst/readme.md
+++ /dev/null
@@ -1,18 +0,0 @@
-# Overview
-
-This is my user space, main goal is to unify the experience between different
-keyboard models and operating systems.
-My native language is German and I almost exclusively use keyboards in the
-US-ANSI layout. I find this layout the most practical for programming as
-far as the placement of special characters is concerned. However, when I write
-in German, I miss a few special characters like umlauts, etc.
-Since I also use different operating systems (MacOS, Linux and Windows)
-and especially Windows and MacOS behave very differently regarding the input
-of such characters (under Linux there is at least the Compose key).
-So I needed a hardware solution, and that's how I came to QMK.
-
-Here are defined some key codes to put the keyboard in different modes
-(Mac, Windows, Linux) and the corresponding functions to make the input.
-And some logic to store the respective mode and load it at boot time.
-
-You'll find a proper layout here: [keyborads/id80/keymaps/rverst](../../keyboards/id80/keymaps/rverst)
diff --git a/users/rverst/rules.mk b/users/rverst/rules.mk
deleted file mode 100644
index 2b8fe92959..0000000000
--- a/users/rverst/rules.mk
+++ /dev/null
@@ -1,9 +0,0 @@
-SRC += rverst.c
-
-LEADER_ENABLE = no
-MOUSEKEY_ENABLE = no
-LTO_ENABLE = yes
-CONSOLE_ENABLE = yes
-UNICODEMAP_ENABLE = yes
-COMMAND_ENABLE = no
-
diff --git a/users/rverst/rverst.c b/users/rverst/rverst.c
deleted file mode 100644
index df37ba9b5f..0000000000
--- a/users/rverst/rverst.c
+++ /dev/null
@@ -1,425 +0,0 @@
-/* Copyright 2021 Robert Verst <robert@verst.eu> @rverst
- *
- * 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 "rverst.h"
-#include "print.h"
-
-#ifdef UNICODEMAP_ENABLE
-# include "unicode.h"
-#endif
-
-userspace_config_t userspace_config;
-
-uint8_t get_mode(void) {
- int m = 0;
- if (userspace_config.mode_1) {
- m += 1;
- }
- if (userspace_config.mode_2) {
- m += 2;
- }
- if (userspace_config.mode_3) {
- m += 4;
- }
-
- return m;
-}
-
-void set_mode(uint8_t mode, bool save) {
- dprintf("set_mode - mode: %d, save: %s\n", mode, save ? "true" : "false");
- switch_mode(mode);
-
- if (mode > 7) {
- mode = 7;
- }
-
- if (mode >= 4) {
- userspace_config.mode_3 = true;
- mode -= 4;
- } else {
- userspace_config.mode_3 = false;
- }
-
- if (mode >= 2) {
- userspace_config.mode_2 = true;
- mode -= 2;
- } else {
- userspace_config.mode_2 = false;
- }
-
- if (mode > 0) {
- userspace_config.mode_1 = true;
- } else {
- userspace_config.mode_1 = false;
- }
-
- if (save) {
- eeconfig_update_user(userspace_config.raw);
- }
-}
-
-void switch_mode(uint8_t mode) {
-#ifdef UNICODEMAP_ENABLE
- switch (mode) {
- case MAC_UNI:
- set_unicode_input_mode(UNICODE_MODE_MACOS);
- break;
- case WINDOWS_UNI:
- set_unicode_input_mode(UNICODE_MODE_WINCOMPOSE);
- break;
- case LINUX_UNI:
- set_unicode_input_mode(UNICODE_MODE_LINUX);
- break;
- }
-#endif
-}
-
-bool is_unicode(uint8_t mode) { return (mode == MAC_UNI) || (mode == WINDOWS_UNI) || (mode == LINUX_UNI); }
-
-//**********************
-// keyboard_pre_init
-//**********************
-__attribute__((weak)) void keyboard_pre_init_keymap(void) {}
-
-void keyboard_pre_init_user(void) {
- userspace_config.raw = eeconfig_read_user();
- switch_mode(get_mode());
- keyboard_pre_init_keymap();
-}
-
-//************************
-// keyboard_post_init
-//************************
-__attribute__((weak)) void keyboard_post_init_keymap(void) {}
-
-void keyboard_post_init_user(void) {
- // debug_enable = true;
- // debug_matrix=true;
- // debug_keyboard = true;
-
-#ifdef RGBLIGHT_ENABLE
-
-#endif
-
- keyboard_post_init_keymap();
-}
-
-//**********************
-// eeconfig_init
-//**********************
-
-__attribute__((weak)) void eeconfig_init_keymap(void) {}
-
-void eeconfig_init_user(void) {
- userspace_config.raw = 0;
- eeconfig_update_user(userspace_config.raw);
- eeconfig_init_keymap();
- keyboard_init();
-}
-
-//**********************
-// process_record
-//**********************
-__attribute__((weak)) bool process_record_keymap(uint16_t keycode, keyrecord_t *record) { return true; }
-
-bool process_record_user(uint16_t keycode, keyrecord_t *record) {
- if (!process_record_keymap(keycode, record)) {
- return false;
- }
-
- if (!record->event.pressed) {
- return true;
- }
-
- bool ls = (get_mods() | get_weak_mods()) & MOD_BIT(KC_LSFT);
- bool rs = (get_mods() | get_weak_mods()) & MOD_BIT(KC_RSFT);
- bool as = ls || rs;
-
- int mode = get_mode();
-
- switch (keycode) {
- case RV_SM0:
- case RV_SM0S:
- set_mode(MAC_UNI, keycode == RV_SM0S);
- return false;
- case RV_SM1:
- case RV_SM1S:
- set_mode(WINDOWS_UNI, keycode == RV_SM1S);
- return false;
- case RV_SM2:
- case RV_SM2S:
- set_mode(LINUX_UNI, keycode == RV_SM2S);
- return false;
- case RV_SM3:
- case RV_SM3S:
- set_mode(MAC, keycode == RV_SM3S);
- return false;
- case RV_SM4:
- case RV_SM4S:
- set_mode(WINDOWS, keycode == RV_SM4S);
- return false;
-
- case RV_SAYM:
- switch (mode) {
- case MAC:
- send_string("MacOS (normal)");
- break;
- case WINDOWS:
- send_string("Windows (normal)");
- break;
- case MAC_UNI:
- send_string("MacOS (unicode)");
- break;
- case WINDOWS_UNI:
- send_string("Windows (unicode)");
- break;
- case LINUX_UNI:
- send_string("Linux (unicode)");
- break;
- }
- return false;
-
- // Lock computer
- case RV_LOCK:
- if (mode == MAC || mode == MAC_UNI) {
- tap_code16(G(C(KC_Q)));
- } else if (mode == WINDOWS || mode == WINDOWS_UNI) {
- tap_code16(G(KC_L));
- }
- return false;
-
- // Screenshot
- case RV_SNAP:
- if (mode == MAC || mode == MAC_UNI) {
- if (ls) unregister_code(KC_LSFT);
- if (rs) unregister_code(KC_RSFT);
-
- tap_code16(G(S(as ? KC_4 : KC_5)));
-
- if (ls) register_code(KC_LSFT);
- if (rs) register_code(KC_RSFT);
- } else if (mode == WINDOWS || mode == WINDOWS_UNI) {
- tap_code16(G(S(KC_S)));
- }
- return false;
-
- // Umlauts - äÄöÖüÜ
- case RV_AUML:
- case RV_OUML:
- case RV_UUML:
- if (is_unicode(mode)) {
- if (keycode == RV_AUML) {
- if (as)
- send_unicode_string("Ä");
- else
- send_unicode_string("ä");
- } else if (keycode == RV_OUML) {
- if (as)
- send_unicode_string("Ö");
- else
- send_unicode_string("ö");
- } else if (keycode == RV_UUML) {
- if (as)
- send_unicode_string("Ü");
- else
- send_unicode_string("ü");
- }
- } else if (mode == MAC) {
- if (ls) unregister_code(KC_LSFT);
- if (rs) unregister_code(KC_RSFT);
-
- tap_code16(A(KC_U));
-
- if (as) register_code(KC_LSFT);
- if (keycode == RV_AUML) {
- tap_code(KC_A);
- } else if (keycode == RV_OUML) {
- tap_code(KC_O);
- } else if (keycode == RV_UUML) {
- tap_code(KC_U);
- }
- if (rs) {
- unregister_code(KC_LSFT);
- register_code(KC_RSFT);
- }
- } else if (mode == WINDOWS) {
- if (ls) unregister_code(KC_LSFT);
- if (rs) unregister_code(KC_RSFT);
-
- register_code(KC_RALT);
- tap_code(KC_1);
- if (keycode == RV_AUML) {
- if (as)
- tap_code(KC_4);
- else
- tap_code(KC_3);
- tap_code(KC_2);
- } else if (keycode == RV_OUML) {
- if (as) {
- tap_code(KC_5);
- tap_code(KC_3);
- } else {
- tap_code(KC_4);
- tap_code(KC_8);
- }
- } else if (keycode == RV_UUML) {
- if (as) {
- tap_code(KC_5);
- tap_code(KC_4);
- } else {
- tap_code(KC_2);
- tap_code(KC_9);
- }
- }
- unregister_code(KC_RALT);
-
- if (ls) register_code(KC_LSFT);
- if (rs) register_code(KC_RSFT);
- }
- return false;
-
- // Euro sign - €
- // with legacy-mode for MAC and WINDOWS without unicode support
- case RV_EUR:
- if (is_unicode(mode)) {
- send_unicode_string("€");
- } else if (mode == MAC) {
- tap_code16(S(A(KC_2)));
- } else if (mode == WINDOWS) {
- register_code(KC_RALT);
- tap_code(KC_0);
- tap_code(KC_1);
- tap_code(KC_2);
- tap_code(KC_8);
- unregister_code(KC_RALT);
- }
- return false;
-
- // Sharp-S - ß
- // with legacy-mode for MAC and WINDOWS without unicode support
- case RV_SZ:
- if (is_unicode(mode)) {
- if (as) {
- send_unicode_string("§");
- } else {
- send_unicode_string("ß");
- }
- } else if (mode == MAC) {
- tap_code16(A(KC_S));
- } else if (mode == WINDOWS) {
- register_code(KC_RALT);
- tap_code(KC_2);
- tap_code(KC_2);
- tap_code(KC_5);
- unregister_code(KC_RALT);
- }
- return false;
-
- // Trademark - ™
- case RV_TM:
- if (is_unicode(mode)) {
- send_unicode_string("™");
- }
- return false;
-
- // Registered trademark - ®
- case RV_RT:
- if (is_unicode(mode)) {
- send_unicode_string("®");
- }
- return false;
-
- // Copyright - ©
- case RV_CC:
- if (is_unicode(mode)) {
- send_unicode_string("©");
- }
- return false;
-
- // Degree - °
- case RV_DEG:
- if (is_unicode(mode)) {
- send_unicode_string("°");
- }
- return false;
-
- // Plus-minus - ±
- case RV_PM:
- if (is_unicode(mode)) {
- send_unicode_string("±");
- }
- return false;
-
- // Not equal - ≠
- case RV_UNEQ:
- if (is_unicode(mode)) {
- send_unicode_string("≠");
- }
- return false;
-
- // Superscript one - ¹
- case RV_SUP1:
- if (is_unicode(mode)) {
- send_unicode_string("¹");
- }
- return false;
-
- // Superscript two - ²
- case RV_SUP2:
- if (is_unicode(mode)) {
- send_unicode_string("²");
- }
- return false;
-
- // Superscript three - ³
- case RV_SUP3:
- if (is_unicode(mode)) {
- send_unicode_string("³");
- }
- return false;
- // vim equal split
- case RV_SEQU:
- tap_code16(C(KC_W));
- tap_code(KC_EQL);
- return false;
- // vim vertical split increase
- case RV_VINC:
- tap_code16(C(KC_W));
- tap_code(KC_4);
- tap_code16(S(KC_DOT));
- return false;
- // vim vertical split decrease
- case RV_VDEC:
- tap_code16(C(KC_W));
- tap_code(KC_4);
- tap_code16(S(KC_COMM));
- return false;
- // vim split increase
- case RV_SINC:
- tap_code16(C(KC_W));
- tap_code(KC_4);
- tap_code16(S(KC_EQL));
- return false;
- // vim split decrease
- case RV_SDEC:
- tap_code16(C(KC_W));
- tap_code(KC_4);
- tap_code(KC_MINS);
- return false;
- }
-
- return true;
-}
diff --git a/users/rverst/rverst.h b/users/rverst/rverst.h
deleted file mode 100644
index 2e46d41d06..0000000000
--- a/users/rverst/rverst.h
+++ /dev/null
@@ -1,85 +0,0 @@
-/* Copyright 2021 Robert Verst <robert@verst.eu> @rverst
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-#pragma once
-
-#include QMK_KEYBOARD_H
-
-enum userspace_mode {
- MAC = 0,
- WINDOWS,
- MAC_UNI,
- WINDOWS_UNI,
- LINUX_UNI,
-};
-
-enum userspace_keycodes {
- RV_NON = SAFE_RANGE,
- RV_SM0, // set Mac Unicode mode
- RV_SM1, // set Window Unicode mode
- RV_SM2, // set Linux Unicode mode
- RV_SM3, // set Mac lagecy mode
- RV_SM4, // set Windows legacy mode
- RV_SM0S, // set Mac Unicode mode and save
- RV_SM1S, // set Windows Unicode mode and save
- RV_SM2S, // set Linux Unicode and save
- RV_SM3S, // set Mac legacy mode
- RV_SM4S, // set Windows legacy and save
- RV_SAYM, // say mode
- RV_LOCK, // lock computer
- RV_AUML, // äÄ
- RV_OUML, // öÖ
- RV_UUML, // üÜ
- RV_EUR, // €
- RV_SZ, // ߧ
- RV_TM, // ™
- RV_RT, // ®
- RV_CC, // ©
- RV_DEG, // °
- RV_SNAP, // Screenshot
- RV_PM, // ±
- RV_UNEQ, // ≠
- RV_SUP1, // ¹
- RV_SUP2, // ²
- RV_SUP3, // ³
- RV_VINC, // vim increase vertical split size (<c-w> 4>)
- RV_VDEC, // vim decrease vertical split size (<c-w> 4<)
- RV_SINC, // vim increase vertical split size (<c-w> 4+)
- RV_SDEC, // vim decrease vertical split size (<c-w> 4-)
- RV_SEQU, // vim equal split size (<c-w> =)
-};
-
-typedef union {
- uint32_t raw;
- struct {
- bool mode_1 : 1;
- bool mode_2 : 1;
- bool mode_3 : 1;
- };
-} userspace_config_t;
-
-extern userspace_config_t userspace_config;
-
-uint8_t get_mode(void);
-void set_mode(uint8_t mode, bool save);
-void switch_mode(uint8_t mode);
-bool is_unicode(uint8_t mode);
-
-void keyboard_pre_init_keymap(void);
-void keyboard_post_init_keymap(void);
-void eeconfig_init_keymap(void);
-bool process_record_keymap(uint16_t keycode, keyrecord_t *record);
-
diff --git a/users/rverst/unicode.h b/users/rverst/unicode.h
deleted file mode 100644
index 4a92d32038..0000000000
--- a/users/rverst/unicode.h
+++ /dev/null
@@ -1,31 +0,0 @@
-/* Copyright 2021 Robert Verst <robert@verst.eu> @rverst
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-#pragma once
-
-#ifdef UNICODE_SELECTED_MODES
-# undef UNICODE_SELECTED_MODES
-# define UNICODE_SELECTED_MODES UNICODE_MODE_MACOS, UNICODE_MODE_LINUX, UNICODE_MODE_WINCOMPOSE
-#endif
-
-enum unicode_names { BANG, IRONY, SNEK };
-
-const uint32_t unicode_map[] PROGMEM = {
- [BANG] = 0x203D,
- [IRONY] = 0x2E2E,
- [SNEK] = 0x1F40D,
-};
-
diff --git a/users/scheiklp/koy_keys_on_quertz_de_latin1.h b/users/scheiklp/koy_keys_on_quertz_de_latin1.h
deleted file mode 100644
index 7c88eabd79..0000000000
--- a/users/scheiklp/koy_keys_on_quertz_de_latin1.h
+++ /dev/null
@@ -1,64 +0,0 @@
-#pragma once
-
-/*
-This file defines the desierd KOY keys if you use a software (operating sysetm)
-configured for a QUERTZ layout (de-latin1).
-These chars can be created by using ALTGR on linux and a few of them on windows
-with a German de-latin1 layout (depending on desktop environment and/or
-application).
- ′¹²³¼½¬{[]}\¸
- @ł€¶ŧ←↓→øþ¨~
- æſðđŋħ̣ĸł˝^’
- |»«¢„“”µ·…–
-Additionally, there are some common chars that we dit not yet define:
- §
-*/
-
-
-// NQN key definitions in no particular order
-#define N_LT KC_NONUS_BACKSLASH
-#define N_HS KC_NONUS_HASH
-#define N_DOTS RALT(KC_DOT) // …
-#define N_USC LSFT(KC_SLASH) // _
-#define N_LSQBR RALT(KC_8) // [
-#define N_RSQBR RALT(KC_9) // ]
-#define N_CIRC KC_GRAVE // ^
-#define N_EXKL LSFT(KC_1) // !
-#define N_GT LSFT(KC_NONUS_BACKSLASH) // >
-#define N_EQ LSFT(KC_0) // =
-#define N_AMP LSFT(KC_6) // &
-#define N_BSLS RALT(KC_MINS) // \ backslash
-#define N_SLSH LSFT(KC_7) // /
-#define N_LCUBR RALT(KC_7) // {
-#define N_RCUBR RALT(KC_0) // }
-#define N_ASTR LSFT(KC_RBRC) // *
-#define N_QUES LSFT(KC_MINS) // ?
-#define N_LPARN LSFT(KC_8) // (
-#define N_RPARN LSFT(KC_9) // )
-#define N_MINS KC_SLASH // -
-#define N_COLN LSFT(KC_DOT) // :
-#define N_HASH KC_BACKSLASH // #
-#define N_DLR LSFT(KC_4) // $
-#define N_PIPE RALT(KC_NONUS_BACKSLASH) // |
-#define N_TILD RALT(KC_RBRC) // ~
-#define N_GRAVE LSFT(KC_EQUAL) // `
-#define N_PLUS KC_RBRC // +
-#define N_PERC LSFT(KC_5) // %
-#define N_QUOT LSFT(KC_2) // "
-#define N_SING LSFT(KC_BACKSLASH) // '
-#define N_SEMI LSFT(KC_COMM) // ;
-#define N_EURO RALT(KC_E) // €
-#define N_AT RALT(KC_Q) // @
-#define N_Z KC_Y
-#define N_Y KC_Z
-#define N_AE KC_QUOTE // ä
-#define N_OE KC_SCLN // ö
-#define N_UE KC_LBRC // ü
-#define N_MU RALT(KC_M) // µ
-#define N_SS KC_MINS // ß
-#define N_DEGRE LSFT(KC_GRAVE) // °
-#define N_PASTE LCTL(KC_V) // CTRL+V
-#define N_COPY LCTL(KC_C) // CTRL+C
-#define N_CUT LCTL(KC_X) // CTRL+X
-#define N_UNDO LCTL(N_Z) // CTRL+Z
-#define N_ACUT KC_EQL // ´
diff --git a/users/scotto/config.h b/users/scotto/config.h
deleted file mode 100644
index 34fe069d6e..0000000000
--- a/users/scotto/config.h
+++ /dev/null
@@ -1,25 +0,0 @@
-/*
-Copyright 2023 Joe Scotto
-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
-
-// config added when Tap Dance is enabled
-#ifdef TAP_DANCE_ENABLE
-# ifdef TAPPING_TERM
-# undef TAPPING_TERM
-# define TAPPING_TERM 135
-# endif
-# define TAPPING_TERM_PER_KEY
-# define PERMISSIVE_HOLD
-#endif
diff --git a/users/scotto/readme.md b/users/scotto/readme.md
deleted file mode 100644
index f7fdeb24c4..0000000000
--- a/users/scotto/readme.md
+++ /dev/null
@@ -1,17 +0,0 @@
-# Scotto
-
-Applies to layouts:
-- LAYOUT_ortho_4x10
-- LAYOUT_split_3x5_2
-- LAYOUT_split_3x5_3
-
-### QWERTY
-
-Scotto's default functional layout is Colemak. To compile this layout in QWERTY (US English), append compile command with `KEYMAP=QWERTY` environment variable.
-```
-qmk compile -kb <keyboardName> -km scotto -e KEYMAP=QWERTY
-```
-Example for [Scotto34](/keyboards/scottokeebs/scotto34):
-```
-qmk compile -kb scottokeebs/scotto34 -km scotto -e KEYMAP=QWERTY
-```
diff --git a/users/scotto/rules.mk b/users/scotto/rules.mk
deleted file mode 100644
index 50a0196675..0000000000
--- a/users/scotto/rules.mk
+++ /dev/null
@@ -1,11 +0,0 @@
-SRC += scotto.c
-
-TAP_DANCE_ENABLE = yes
-
-ifeq ($(strip $(TAP_DANCE_ENABLE)), yes)
- SRC += tap_dance.c
-endif
-
-ifneq ($(strip $(KEYMAP)),)
- OPT_DEFS += -DKEYMAP_$(KEYMAP)
-endif
diff --git a/users/scotto/scotto.c b/users/scotto/scotto.c
deleted file mode 100644
index 41520973c6..0000000000
--- a/users/scotto/scotto.c
+++ /dev/null
@@ -1,15 +0,0 @@
-/*
-Copyright 2023 Joe Scotto
-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 "scotto.h"
diff --git a/users/scotto/scotto.h b/users/scotto/scotto.h
deleted file mode 100644
index 023906852e..0000000000
--- a/users/scotto/scotto.h
+++ /dev/null
@@ -1,69 +0,0 @@
-/*
-Copyright 2023 Joe Scotto
-This program is free software: you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 2 of the License, or
-(at your option) any later version.
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-You should have received a copy of the GNU General Public License
-along with this program. If not, see <http://www.gnu.org/licenses/>.
-*/
-
-#pragma once
-
-#include QMK_KEYBOARD_H
-
-#ifdef TAP_DANCE_ENABLE
- #include "tap_dance.h"
-#endif
-
-// Assign rows of keycodes to a single def each
-#define __QWERTY1__ KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P
-#define __QWERTY2__ KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_BSPC
-#define __QWERTY3a_ LSFT_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, RSFT_T(KC_SLSH)
-#define __QWERTY3b_ KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH
-
-#define __COLEMAK1__ KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_BSPC
-#define __COLEMAK2__ KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O
-#define __COLEMAK3a_ LSFT_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, RSFT_T(KC_SLSH)
-#define __COLEMAK3b_ KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH
-
-#define ______________SYM_MEDIA_NAV1______________ KC_UNDS, KC_MINS, KC_PLUS, KC_EQL, KC_COLN, KC_GRV, KC_MRWD, KC_MPLY, KC_MFFD, KC_DEL
-#define ______________SYM_MEDIA_NAV2______________ KC_LCBR, KC_LPRN, KC_RPRN, KC_RCBR, KC_PIPE, KC_ESC, KC_LEFT, KC_UP, KC_DOWN, KC_RGHT
-#define ______________SYM_MEDIA_NAV3______________ LSFT_T(KC_LBRC), KC_QUOT, KC_DQUO, KC_RBRC, KC_SCLN, KC_TILD, KC_VOLD, KC_MUTE, KC_VOLU, RSFT_T(KC_BSLS)
-
-#define _________________NUM_SYM1_________________ KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_CAPS, KC_BSPC
-#define _________________NUM_SYM2_________________ KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0
-#define _________________NUM_SYM3a________________ KC_LSFT, KC_NO, KC_NO, KC_NO, MO(3), KC_NO, KC_NO, KC_COMM, KC_DOT, RSFT_T(KC_SLSH)
-#define _________________NUM_SYM3b________________ KC_LSFT, KC_NO, KC_NO, KC_NO, MO(8), KC_NO, KC_NO, KC_COMM, KC_DOT, RSFT_T(KC_SLSH)
-
-#define ________________FUNC_SYS1a________________ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, TO(5), TO(4)
-#define ________________FUNC_SYS1b________________ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, TO(4), TO(5), TO(0)
-#define ________________FUNC_SYS2_________________ KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10
-#define ________________FUNC_SYS3_________________ KC_F11, KC_NO, KC_NO, QK_BOOT, KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_F12
-
-#define _______THUMB6_1_______ TD(TD_LCTL_ESC_SPOTLIGHT_EMOJI), KC_LALT, LGUI_T(KC_SPC), LT(1, KC_TAB), LT(2, KC_ENT), TD(TD_LCTL_ESC_SPOTLIGHT_EMOJI)
-#define _______THUMB6_4_______ TD(TD_LALT_ESC_WINDOWS_EMOJI), KC_LALT, LCTL_T(KC_SPC), LT(6, KC_TAB), LT(7, KC_ENT), TD(TD_LALT_ESC_WINDOWS_EMOJI)
-#define _______THUMB6_5_______ TD(TD_LALT_ESC_WINDOWS_EMOJI), KC_LCTL, KC_SPC, LT(6, KC_TAB), LT(7, KC_ENT), TD(TD_LALT_ESC_WINDOWS_EMOJI)
-#define _____THUMB6_TRNS______ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
-
-#define _______THUMB4_1_______ TD(TD_ESC_LALT_LCTL_SPOTLIGHT_EMOJI), LGUI_T(KC_SPC), LT(1, KC_TAB), LT(2, KC_ENT)
-#define _______THUMB4_4_______ TD(TD_ESC_LCTL_LALT_WINDOWS_EMOJI), LCTL_T(KC_SPC), LT(6, KC_TAB), LT(7, KC_ENT)
-#define _______THUMB4_5_______ KC_LCTL, KC_SPC, LT(6, KC_TAB), LT(7, KC_ENT)
-#define _____THUMB4_TRNS______ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
-
-// set functional layout
-#if defined (KEYMAP_QWERTY)
- #define _________________KEYMAP1__________________ __QWERTY1__
- #define _________________KEYMAP2__________________ __QWERTY2__
- #define _________________KEYMAP3a_________________ __QWERTY3a_
- #define _________________KEYMAP3b_________________ __QWERTY3b_
-#else
- #define _________________KEYMAP1__________________ __COLEMAK1__
- #define _________________KEYMAP2__________________ __COLEMAK2__
- #define _________________KEYMAP3a_________________ __COLEMAK3a_
- #define _________________KEYMAP3b_________________ __COLEMAK3b_
-#endif
diff --git a/users/scotto/tap_dance.c b/users/scotto/tap_dance.c
deleted file mode 100644
index e618384334..0000000000
--- a/users/scotto/tap_dance.c
+++ /dev/null
@@ -1,154 +0,0 @@
-/*
-Copyright 2023 Joe Scotto
-This program is free software: you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 2 of the License, or
-(at your option) any later version.
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-You should have received a copy of the GNU General Public License
-along with this program. If not, see <http://www.gnu.org/licenses/>.
-*/
-
-#include "tap_dance.h"
-#include "scotto.h"
-
-// Create an instance of 'td_tap_t' for the 'x' tap dance.
-static td_tap_t xtap_state = {
- .is_press_action = true,
- .state = TD_NONE
-};
-
-td_state_t cur_dance(tap_dance_state_t *state) {
- if (state->count == 1) {
- if (state->interrupted || !state->pressed) {
- return TD_SINGLE_TAP;
- } else {
- return TD_SINGLE_HOLD;
- }
- } else if (state->count == 2) {
- if (state->interrupted || !state->pressed) {
- return TD_DOUBLE_TAP;
- } else {
- return TD_DOUBLE_HOLD;
- }
- } else if (state->count == 3) {
- if (state->interrupted || !state->pressed) {
- return TD_TRIPLE_TAP;
- } else {
- return TD_TRIPLE_HOLD;
- }
- }
-
- return TD_UNKNOWN;
-}
-
-void td_esc_lalt_lctl_spotlight_emoji_finished(tap_dance_state_t *state, void *user_data) {
- xtap_state.state = cur_dance(state);
- switch (xtap_state.state) {
- case TD_SINGLE_TAP: tap_code(KC_ESC); break;
- case TD_SINGLE_HOLD: register_code(KC_LALT); break;
- case TD_DOUBLE_HOLD: register_code(KC_LCTL); break;
- case TD_DOUBLE_TAP: tap_code16(G(KC_SPC)); break;
- case TD_TRIPLE_TAP: tap_code16(C(G(KC_SPC))); break;
- default: break;
- }
-}
-
-void td_esc_lalt_lctl_spotlight_emoji_reset(tap_dance_state_t *state, void *user_data) {
- switch (xtap_state.state) {
- case TD_SINGLE_TAP: unregister_code(KC_ESC); break;
- case TD_SINGLE_HOLD: unregister_code(KC_LALT); break;
- case TD_DOUBLE_HOLD: unregister_code(KC_LCTL); break;
- default: break;
- }
- xtap_state.state = TD_NONE;
-}
-
-void td_esc_lctl_lalt_windows_emoji_finished(tap_dance_state_t *state, void *user_data) {
- xtap_state.state = cur_dance(state);
- switch (xtap_state.state) {
- case TD_SINGLE_TAP: tap_code16(KC_ESC); break;
- case TD_SINGLE_HOLD: register_code(KC_LCTL); break;
- case TD_DOUBLE_HOLD: register_code(KC_LALT); break;
- case TD_DOUBLE_TAP: tap_code(KC_LGUI); break;
- case TD_TRIPLE_TAP: tap_code16(G(KC_DOT)); break;
- default: break;
- }
-}
-
-void td_esc_lctl_lalt_windows_emoji_reset(tap_dance_state_t *state, void *user_data) {
- switch (xtap_state.state) {
- case TD_SINGLE_TAP: unregister_code(KC_ESC); break;
- case TD_SINGLE_HOLD: unregister_code(KC_LCTL); break;
- case TD_DOUBLE_HOLD: unregister_code(KC_LALT); break;
- default: break;
- }
- xtap_state.state = TD_NONE;
-}
-
-void td_lalt_esc_windowr_emoji_finished(tap_dance_state_t *state, void *user_data) {
- xtap_state.state = cur_dance(state);
- switch (xtap_state.state) {
- case TD_SINGLE_TAP: register_code(KC_ESC); break;
- case TD_SINGLE_HOLD: register_code(KC_LALT); break;
- case TD_DOUBLE_TAP: tap_code(KC_LGUI); break;
- case TD_TRIPLE_TAP: tap_code16(G(KC_DOT)); break;
- default: break;
- }
-}
-
-void td_lalt_esc_windowr_emoji_reset(tap_dance_state_t *state, void *user_data) {
- switch (xtap_state.state) {
- case TD_SINGLE_TAP: unregister_code(KC_ESC); break;
- case TD_SINGLE_HOLD: unregister_code(KC_LALT); break;
- default: break;
- }
- xtap_state.state = TD_NONE;
-}
-
-void td_lctl_esc_spotlight_emoji_finished(tap_dance_state_t *state, void *user_data) {
- xtap_state.state = cur_dance(state);
- switch (xtap_state.state) {
- case TD_SINGLE_TAP: register_code(KC_ESC); break;
- case TD_SINGLE_HOLD: register_code(KC_LCTL); break;
- case TD_DOUBLE_TAP: tap_code16(G(KC_SPC)); break;
- case TD_TRIPLE_TAP: tap_code16(C(G(KC_SPC))); break;
- default: break;
- }
-}
-
-void td_lctl_esc_spotlight_emoji_reset(tap_dance_state_t *state, void *user_data) {
- switch (xtap_state.state) {
- case TD_SINGLE_TAP: unregister_code(KC_ESC); break;
- case TD_SINGLE_HOLD: unregister_code(KC_LCTL); break;
- default: break;
- }
- xtap_state.state = TD_NONE;
-}
-
- // Tap Dance definitions
-tap_dance_action_t tap_dance_actions[] = {
- [TD_LCTL_ESC_SPOTLIGHT_EMOJI] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, td_lctl_esc_spotlight_emoji_finished, td_lctl_esc_spotlight_emoji_reset),
- [TD_LALT_ESC_WINDOWS_EMOJI] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, td_lalt_esc_windowr_emoji_finished, td_lalt_esc_windowr_emoji_reset),
- [TD_ESC_LALT_LCTL_SPOTLIGHT_EMOJI] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, td_esc_lalt_lctl_spotlight_emoji_finished, td_esc_lalt_lctl_spotlight_emoji_reset),
- [TD_ESC_LCTL_LALT_WINDOWS_EMOJI] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, td_esc_lctl_lalt_windows_emoji_finished, td_esc_lctl_lalt_windows_emoji_reset),
-};
-
-uint16_t get_tapping_term(uint16_t keycode, keyrecord_t *record) {
- switch (keycode) {
- case TD(TD_LCTL_ESC_SPOTLIGHT_EMOJI) :
- case TD(TD_LALT_ESC_WINDOWS_EMOJI) :
- case TD(TD_ESC_LALT_LCTL_SPOTLIGHT_EMOJI) :
- case TD(TD_ESC_LCTL_LALT_WINDOWS_EMOJI) :
- case LGUI_T(KC_SPC) :
- case LT(1, KC_SPC) :
- case LT(1, KC_TAB) :
- case LT(2, KC_ENT) :
- return 200;
- default:
- return TAPPING_TERM;
- }
-};
diff --git a/users/scotto/tap_dance.h b/users/scotto/tap_dance.h
deleted file mode 100644
index 4082d2b9fb..0000000000
--- a/users/scotto/tap_dance.h
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
-Copyright 2023 Joe Scotto
-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 "scotto.h"
-
-typedef enum {
- TD_NONE = 0,
- TD_UNKNOWN,
- TD_SINGLE_HOLD,
- TD_DOUBLE_HOLD,
- TD_TRIPLE_HOLD,
- TD_SINGLE_TAP,
- TD_DOUBLE_TAP,
- TD_TRIPLE_TAP
-} td_state_t;
-
-typedef struct {
- bool is_press_action;
- td_state_t state;
-} td_tap_t;
-
-enum {
- TD_LCTL_ESC_SPOTLIGHT_EMOJI = 0,
- TD_LALT_ESC_WINDOWS_EMOJI,
- TD_ESC_LALT_LCTL_SPOTLIGHT_EMOJI,
- TD_ESC_LCTL_LALT_WINDOWS_EMOJI
-};
diff --git a/users/sethBarberee/config.h b/users/sethBarberee/config.h
deleted file mode 100644
index f323b27368..0000000000
--- a/users/sethBarberee/config.h
+++ /dev/null
@@ -1,82 +0,0 @@
-/* Copyright 2021 SethBarberee <seth.barberee@gmail.com>
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-#pragma once
-
-#ifdef RGBLIGHT_ENABLE
-# define RGBLIGHT_SLEEP
-# ifndef RGBLIGHT_HUE_STEP
-# define RGBLIGHT_HUE_STEP 8
-# endif
-# ifndef RGBLIGHT_SAT_STEPT
-# define RGBLIGHT_SAT_STEP 8
-# endif
-# ifndef RGBLIGHT_VAL_STEP
-# define RGBLIGHT_VAL_STEP 8
-# endif
-
-// Trim animations I don't use/like
-# ifndef RGBLIGHT_EFFECT_BREATHING
-# define RGBLIGHT_EFFECT_BREATHING
-# endif
-# ifndef RGBLIGHT_EFFECT_STATIC_GRADIENT
-# define RGBLIGHT_EFFECT_STATIC_GRADIENT
-# endif
-# ifndef RGBLIGHT_EFFECT_TWINKLE
-# define RGBLIGHT_EFFECT_TWINKLE
-# endif
-# ifdef RGBLIGHT_DEFAULT_MODE
-# undef RGBLIGHT_DEFAULT_MODE
-# define RGBLIGHT_DEFAULT_MODE RGBLIGHT_MODE_TWINKLE
-# endif
-
-# ifndef CAPS_LOCK_MODE
-# define CAPS_LOCK_MODE RGBLIGHT_MODE_STATIC_LIGHT
-# endif
-#endif // RGBLIGHT_ENABLE
-
-#ifndef AUDIO_ENABLE
-# define NO_MUSIC_MODE
-#endif // AUDIO_ENABLE
-
-#define FORCE_NKRO // Force NKRO on by default
-
-// Totally taken from @drashna's userspace
-#ifdef TAPPING_TERM
-# undef TAPPING_TERM
-#endif // TAPPING_TERM
-//
-// Keeping these commented for examples when I want to tweak per keyboard
-// but setting a default across my boards for now
-//
-//#if defined(KEYBOARD_ergodox_ez)
-//# define TAPPING_TERM 185
-#if defined(KEYBOARD_crkbd)
-# define TAPPING_TERM 185
-#else
-# define TAPPING_TERM 200
-#endif
-
-#if !defined(LAYER_STATE_16BIT) && !defined(LAYER_STATE_8BIT) && !defined(LAYER_STATE_32BIT)
-# define LAYER_STATE_8BIT
-#endif
-
-/* Disable unused and unneeded features to reduce on firmware size */
-#ifdef LOCKING_SUPPORT_ENABLE
-# undef LOCKING_SUPPORT_ENABLE
-#endif
-#ifdef LOCKING_RESYNC_ENABLE
-# undef LOCKING_RESYNC_ENABLE
-#endif
diff --git a/users/sethBarberee/readme.md b/users/sethBarberee/readme.md
deleted file mode 100644
index 75d892cb85..0000000000
--- a/users/sethBarberee/readme.md
+++ /dev/null
@@ -1,6 +0,0 @@
-# seth's userspace
-
-## Features
-* Escape/Caps Lock tap dance (1 for Escape / 2 for Caps Lock)
- * RGB Mode indication for Caps Lock
- * Solid Mode for Caps On
diff --git a/users/sethBarberee/rgb_light.c b/users/sethBarberee/rgb_light.c
deleted file mode 100644
index d1f43080c3..0000000000
--- a/users/sethBarberee/rgb_light.c
+++ /dev/null
@@ -1,52 +0,0 @@
- /* Copyright 2021 SethBarberee <seth.barberee@gmail.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 "rgb_light.h"
-
-#if defined(RGBLIGHT_ENABLE)
-layer_state_t layer_state_set_rgb_light(layer_state_t state){
- switch(get_highest_layer(state)) {
- case _QWERTY:
- rgblight_set_hsv_and_mode(HSV_RED, RGBLIGHT_MODE_TWINKLE + 3);
- break;
- case _LOWER:
- rgblight_set_hsv_and_mode(HSV_GREEN, RGBLIGHT_MODE_BREATHING + 3);
- break;
- case _RAISE:
- rgblight_set_hsv_and_mode(HSV_BLUE, RGBLIGHT_MODE_BREATHING + 3);
- break;
- case _ADJUST:
- rgblight_set_hsv_and_mode(HSV_GOLDENROD, RGBLIGHT_MODE_BREATHING + 3);
- break;
- default:
- rgblight_set_hsv_and_mode(HSV_PINK, RGBLIGHT_MODE_TWINKLE + 3);
- break;
-
- }
- return state;
-}
-
-void rgblight_set_hsv_and_mode(uint8_t hue, uint8_t sat, uint8_t val, uint8_t mode) {
- rgblight_sethsv_noeeprom(hue, sat, val);
- // wait_us(175); // Add a slight delay between color and mode to ensure it's processed correctly
- rgblight_mode_noeeprom(mode);
-}
-
-void keyboard_post_init_rgb_light(void)
-{
- layer_state_set_rgb_light(layer_state);
-}
-#endif
-
diff --git a/users/sethBarberee/rgb_light.h b/users/sethBarberee/rgb_light.h
deleted file mode 100644
index 2e0477ce59..0000000000
--- a/users/sethBarberee/rgb_light.h
+++ /dev/null
@@ -1,21 +0,0 @@
- /* Copyright 2021 SethBarberee <seth.barberee@gmail.com>
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-#pragma once
-#include "sethBarberee.h"
-
-layer_state_t layer_state_set_rgb_light(layer_state_t state);
-void keyboard_post_init_rgb_light(void);
-void rgblight_set_hsv_and_mode(uint8_t hue, uint8_t sat, uint8_t val, uint8_t mode);
diff --git a/users/sethBarberee/rules.mk b/users/sethBarberee/rules.mk
deleted file mode 100644
index f1bc3325fe..0000000000
--- a/users/sethBarberee/rules.mk
+++ /dev/null
@@ -1,10 +0,0 @@
-SRC += sethBarberee.c
-
-# Add in custom tap dances when tap dance is enabled
-ifeq ($(strip $(TAP_DANCE_ENABLE)), yes)
- SRC += tap_dance.c
-endif
-
-ifeq ($(strip $(RGBLIGHT_ENABLE)), yes)
- SRC += rgb_light.c
-endif
diff --git a/users/sethBarberee/sethBarberee.c b/users/sethBarberee/sethBarberee.c
deleted file mode 100644
index e6e9dbf4a2..0000000000
--- a/users/sethBarberee/sethBarberee.c
+++ /dev/null
@@ -1,100 +0,0 @@
- /* Copyright 2021 SethBarberee <seth.barberee@gmail.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 "sethBarberee.h"
-#include "version.h"
-
-__attribute__ ((weak)) void keyboard_pre_init_keymap(void) {}
-
-void keyboard_pre_init_user(void){
-#if defined(BOOTLOADER_CATERINA)
- // Make sure the red LEDs don't light
- setPinOutput(D5);
- writePinHigh(D5);
-
- setPinOutput(B0);
- writePinHigh(B0);
-#endif
- keyboard_pre_init_keymap();
-}
-
-__attribute__ ((weak)) layer_state_t layer_state_set_keymap (layer_state_t state) { return state; }
-
-layer_state_t layer_state_set_user(layer_state_t state){
-
- if (!is_keyboard_master()) {
- return state;
- }
-
- state = update_tri_layer_state(state, _RAISE, _LOWER, _ADJUST);
-#if defined(RGBLIGHT_ENABLE)
- state = layer_state_set_rgb_light(state);
-#endif
- return layer_state_set_keymap(state);
-}
-
-__attribute__ ((weak)) void keyboard_post_init_keymap(void) {}
-
-void keyboard_post_init_user(void)
-{
-#if defined(RGBLIGHT_ENABLE)
- keyboard_post_init_rgb_light();
-#endif
- keyboard_post_init_keymap();
-}
-
-__attribute__((weak)) void suspend_power_down_keymap(void) {}
-
-void suspend_power_down_user(void) {
-#ifdef OLED_ENABLE
- oled_off();
-#endif
- suspend_power_down_keymap();
-}
-
-__attribute__((weak)) void suspend_wakeup_init_keymap(void) {}
-
-void suspend_wakeup_init_user(void) { suspend_wakeup_init_keymap(); }
-
-__attribute__ ((weak)) bool process_record_keymap(uint16_t keycode, keyrecord_t *record) { return true;}
-
-bool process_record_user(uint16_t keycode, keyrecord_t *record) {
- if (process_record_keymap(keycode, record))
- {
- switch (keycode) {
- case KC_VRSN: // Prints firmware version
- if (record->event.pressed) {
- SEND_STRING(QMK_KEYBOARD "/" QMK_KEYMAP " @ " QMK_VERSION ", Built on: " QMK_BUILDDATE);
- }
- break;
- case KC_QWER: // Set default layer to QWERTY
- if (record->event.pressed) {
- set_single_persistent_default_layer(_QWERTY);
- }
- break;
- case KC_COLE: // Set default layer to COLEMAK
- if (record->event.pressed) {
- set_single_persistent_default_layer(_COLEMAK);
- }
- break;
- case KC_DVOR: // Set default layer to DVORAK
- if (record->event.pressed) {
- set_single_persistent_default_layer(_DVORAK);
- }
- break;
- }
- }
- return true;
-}
diff --git a/users/sethBarberee/sethBarberee.h b/users/sethBarberee/sethBarberee.h
deleted file mode 100644
index ba19a524a4..0000000000
--- a/users/sethBarberee/sethBarberee.h
+++ /dev/null
@@ -1,55 +0,0 @@
- /* Copyright 2021 SethBarberee <seth.barberee@gmail.com>
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-#pragma once
-
-#include QMK_KEYBOARD_H
-
-#include "wrappers.h"
-
-enum layers {
- _QWERTY,
- _COLEMAK,
- _DVORAK,
- _LOWER,
- _RAISE,
- _ADJUST
-};
-
-enum userspace_keycodes {
- KC_VRSN = SAFE_RANGE,
- KC_QWER,
- KC_COLE,
- KC_DVOR,
- NEW_SAFE_RANGE
-};
-
-#define KC_LOWR MO(_LOWER)
-#define KC_RASE MO(_RAISE)
-
-#ifdef TAP_DANCE_ENABLE
-# include "tap_dance.h"
-#endif
-
-#ifdef RGBLIGHT_ENABLE
-# include "rgb_light.h"
-#endif
-
-void keyboard_pre_init_keymap(void);
-void keyboard_post_init_keymap(void);
-void suspend_power_down_keymap(void);
-void suspend_wakeup_init_keymap(void);
-layer_state_t layer_state_set_keymap (layer_state_t state);
-bool process_record_keymap(uint16_t keycode, keyrecord_t *record);
diff --git a/users/sethBarberee/tap_dance.c b/users/sethBarberee/tap_dance.c
deleted file mode 100644
index 924b3141fe..0000000000
--- a/users/sethBarberee/tap_dance.c
+++ /dev/null
@@ -1,89 +0,0 @@
- /* Copyright 2021 SethBarberee <seth.barberee@gmail.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 "tap_dance.h"
-
-// Shamelessly stolen from QMK Docs
-int cur_dance (tap_dance_state_t *state) {
- if (state->count == 1) {
- if (state->interrupted || !state->pressed) {
- return SINGLE_TAP;
- } else {
- return SINGLE_HOLD;
- }
- }
- else if (state->count == 2) {
- if (state->interrupted) return DOUBLE_SINGLE_TAP;
- else if (state->pressed) return DOUBLE_HOLD;
- else return DOUBLE_TAP;
- }
- if (state->count == 3) {
- if (state->interrupted || !state->pressed) return TRIPLE_TAP;
- else return TRIPLE_HOLD;
- }
- else return 8;
-}
-
-
-// Initialize it now
-tap caps_status = {
- .toggled = false,
- .state = 0
-};
-
-
-void dance_ecap_finished (tap_dance_state_t *state, void *user_data){
- caps_status.state = cur_dance(state);
- switch(caps_status.state){
- case SINGLE_TAP:
- tap_code(KC_ESC);
- break;
- case SINGLE_HOLD:
- register_code(KC_LCTL);
- break;
- case DOUBLE_TAP:
- tap_code(KC_CAPS);
- if(!caps_status.toggled){
- // Toggling caps so indicate
- caps_status.toggled = true;
-#ifdef RGBLIGHT_ENABLE
- // Save mode we can from
- caps_status.normal_mode = rgblight_get_mode();
- rgblight_mode_noeeprom(CAPS_LOCK_MODE);
-#endif
- } else {
- // Turning off so return to normal mode
- caps_status.toggled = false;
-#ifdef RGBLIGHT_ENABLE
- rgblight_mode_noeeprom(caps_status.normal_mode);
-#endif
- }
- break;
- }
-}
-
-void dance_ecap_reset (tap_dance_state_t *state, void *user_data){
- if(caps_status.state == SINGLE_HOLD){
- unregister_code(KC_LCTL);
- }
- caps_status.state = 0;
-}
-
-//Tap Dance Definitions
-tap_dance_action_t tap_dance_actions[] = {
- //Tap once for Esc, twice for Caps Lock
- [TD_ECAP] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, dance_ecap_finished, dance_ecap_reset),
-// Other declarations would go here, separated by commas, if you have them
-};
diff --git a/users/sethBarberee/tap_dance.h b/users/sethBarberee/tap_dance.h
deleted file mode 100644
index 709185b39a..0000000000
--- a/users/sethBarberee/tap_dance.h
+++ /dev/null
@@ -1,43 +0,0 @@
- /* Copyright 2021 SethBarberee <seth.barberee@gmail.com>
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-#pragma once
-#include "sethBarberee.h"
-
-//Define a type for as many tap dance states as you need
-enum {
- SINGLE_TAP = 1,
- SINGLE_HOLD = 2,
- DOUBLE_TAP = 3,
- DOUBLE_HOLD = 4,
- DOUBLE_SINGLE_TAP = 5, //send two single taps
- TRIPLE_TAP = 6,
- TRIPLE_HOLD = 7
-};
-
-
-enum {
- TD_ECAP = 0,
-};
-
-#define KC_ECAP TD(TD_ECAP)
-
-typedef struct {
- bool toggled; // store whether we have toggled caps lock
-#ifdef RGBLIGHT_ENABLE
- int normal_mode;
-#endif // RGBLIGHT_ENABLE
- int state;
-} tap;
diff --git a/users/sethBarberee/wrappers.h b/users/sethBarberee/wrappers.h
deleted file mode 100644
index 4767afa82f..0000000000
--- a/users/sethBarberee/wrappers.h
+++ /dev/null
@@ -1,71 +0,0 @@
- /* Copyright 2021 SethBarberee <seth.barberee@gmail.com>
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-#pragma once
-
-#include "sethBarberee.h"
-
-/*
- Since our quirky block definitions are basically a list of comma separated
- arguments, we need a wrapper in order for these definitions to be
- expanded before being used as arguments to the LAYOUT_xxx macro.
-*/
-
-/*
- Blocks for each of the four major keyboard layouts
- Organized so we can quickly adapt and modify all of them
- at once, rather than for each keyboard, one at a time.
- And this allows for much cleaner blocks in the keymaps.
- For instance Tap/Hold for Control on all of the layouts
-
- NOTE: These are all the same length. If you do a search/replace
- then you need to add/remove underscores to keep the
- lengths consistent.
-*/
-
-// clang-format off
-#define _________________QWERTY_L1_________________ KC_Q, KC_W, KC_E, KC_R, KC_T
-#define _________________QWERTY_L2_________________ KC_A, KC_S, KC_D, KC_F, KC_G
-#define _________________QWERTY_L3_________________ KC_Z, KC_X, KC_C, KC_V, KC_B
-
-#define _________________QWERTY_R1_________________ KC_Y, KC_U, KC_I, KC_O, KC_P
-#define _________________QWERTY_R2_________________ KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT
-#define _________________QWERTY_R3_________________ KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH
-
-#define _________________COLEMAK_L1________________ KC_Q, KC_W, KC_F, KC_P, KC_G
-#define _________________COLEMAK_L2________________ KC_A, KC_R, KC_S, KC_T, KC_D
-#define _________________COLEMAK_L3________________ KC_Z, KC_X, KC_C, KC_V, KC_B
-
-#define _________________COLEMAK_R1________________ KC_J, KC_L, KC_U, KC_Y, KC_SCLN
-#define _________________COLEMAK_R2________________ KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT
-#define _________________COLEMAK_R3________________ KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH
-
-#define _________________DVORAK_L1_________________ KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y
-#define _________________DVORAK_L2_________________ KC_A, KC_O, KC_E, KC_U, KC_I
-#define _________________DVORAK_L3_________________ KC_SCLN, KC_Q, KC_J, KC_K, KC_X
-
-#define _________________DVORAK_R1_________________ KC_F, KC_G, KC_C, KC_R, KC_L
-#define _________________DVORAK_R2_________________ KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH
-#define _________________DVORAK_R3_________________ KC_B, KC_M, KC_W, KC_V, KC_Z
-
-#define ________________NUMBER_LEFT________________ KC_1, KC_2, KC_3, KC_4, KC_5
-#define ________________NUMBER_RIGHT_______________ KC_6, KC_7, KC_8, KC_9, KC_0
-#define _________________FUNC_LEFT_________________ KC_F1, KC_F2, KC_F3, KC_F4, KC_F5
-#define _________________FUNC_RIGHT________________ KC_F6, KC_F7, KC_F8, KC_F9, KC_F10
-
-#define ___________________BLANK___________________ _______, _______, _______, _______, _______
-
-// clang-format on
-
diff --git a/users/sigma/config.h b/users/sigma/config.h
deleted file mode 100644
index 53b986cdac..0000000000
--- a/users/sigma/config.h
+++ /dev/null
@@ -1,21 +0,0 @@
-/*
- Copyright 2018 Yann Hodique <yann.hodique@gmail.com> @sigma
-
- 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 LEADER_TIMEOUT 1000
-
-#define MACRO_TIMER 5
diff --git a/users/sigma/rules.mk b/users/sigma/rules.mk
deleted file mode 100644
index a4cd2b34d3..0000000000
--- a/users/sigma/rules.mk
+++ /dev/null
@@ -1,3 +0,0 @@
-LEADER_ENABLE = yes
-
-SRC += sigma.c
diff --git a/users/sigma/sigma.c b/users/sigma/sigma.c
deleted file mode 100644
index bd66729bdc..0000000000
--- a/users/sigma/sigma.c
+++ /dev/null
@@ -1,271 +0,0 @@
-/*
- Copyright 2018 Yann Hodique <yann.hodique@gmail.com> @sigma
-
- 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 "sigma.h"
-
-userspace_config_t runtime_userspace_config;
-userspace_config_t stored_userspace_config;
-
-__attribute__ ((weak))
-void matrix_init_keymap(void) {}
-
-__attribute__ ((weak))
-void startup_keymap(void) {}
-
-__attribute__ ((weak))
-void shutdown_keymap(void) {}
-
-__attribute__ ((weak))
-void suspend_power_down_keymap(void) {}
-
-__attribute__ ((weak))
-void suspend_wakeup_init_keymap(void) {}
-
-__attribute__ ((weak))
-void matrix_scan_keymap(void) {}
-
-__attribute__ ((weak))
-bool process_record_keymap(uint16_t keycode, keyrecord_t *record) {
- return true;
-}
-
-__attribute__ ((weak))
-bool process_record_secrets(uint16_t keycode, keyrecord_t *record) {
- return true;
-}
-
-
-__attribute__ ((weak))
-layer_state_t layer_state_set_keymap (layer_state_t state) {
- return state;
-}
-
-__attribute__ ((weak))
-layer_state_t default_layer_state_set_keymap (layer_state_t state) {
- return state;
-}
-
-__attribute__ ((weak))
-void led_set_keymap(uint8_t usb_led) {}
-
-void set_os(uint8_t os) {
- runtime_userspace_config.os_target = os;
-
-#if defined(UNICODE_ENABLE) || defined(UNICODEMAP_ENABLE) || defined(UCIS_ENABLE)
- switch (os) {
- case _OS_MACOS:
- set_unicode_input_mode(UNICODE_MODE_MACOS);
- break;
- case _OS_LINUX:
- set_unicode_input_mode(UNICODE_MODE_LINUX);
- break;
- case _OS_WINDOWS:
- set_unicode_input_mode(UNICODE_MODE_WINDOWS);
- break;
- }
-#endif
-}
-
-void matrix_init_user(void) {
- stored_userspace_config.raw = eeconfig_read_user();
- runtime_userspace_config.raw = stored_userspace_config.raw;
-
- set_os(runtime_userspace_config.os_target);
-}
-
-void store_userspace_config(void) {
- eeconfig_update_user(stored_userspace_config.raw);
-}
-
-void leader_end_user(void) {
- if (leader_sequence_two_keys(KC_F1, KC_L)) {
- set_os(_OS_LINUX);
- }
- if (leader_sequence_two_keys(KC_F1, KC_M)) {
- set_os(_OS_MACOS);
- }
- if (leader_sequence_two_keys(KC_F1, KC_W)) {
- set_os(_OS_WINDOWS);
- }
- if (leader_sequence_two_keys(KC_F1, KC_S)) {
- stored_userspace_config.raw = runtime_userspace_config.raw;
- store_userspace_config();
- }
-}
-
-bool process_record_user(uint16_t keycode, keyrecord_t *record) {
- uint8_t os_target = runtime_userspace_config.os_target;
- bool pressed = record->event.pressed;
-
- switch (keycode) {
- case KC_QWERTY:
- if (pressed) {
- set_single_persistent_default_layer(_QWERTY);
- }
- return false;
- break;
-
- case KC_MAKE: // Compiles the firmware, and adds the flash command based on keyboard bootloader
- if (!pressed) {
- send_string_with_delay_P(PSTR("make " QMK_KEYBOARD ":" QMK_KEYMAP
-#if defined(__ARM__)
- ":dfu-util"
-#elif defined(BOOTLOADER_DFU)
- ":dfu"
-#elif defined(BOOTLOADER_HALFKAY)
- ":teensy"
-#elif defined(BOOTLOADER_CATERINA)
- ":avrdude"
-#endif // bootloader options
- SS_TAP(X_ENTER)), 10);
- }
- return false;
- break;
-
- case EPRM: // Resets EEPROM
- if (pressed) {
- eeconfig_init();
- default_layer_set(1UL<<eeconfig_read_default_layer());
- layer_state_set(layer_state);
- set_os(_OS_MACOS);
- store_userspace_config();
- }
- return false;
- break;
- case VRSN: // Prints firmware version
- if (pressed) {
- send_string_with_delay_P(PSTR(QMK_KEYBOARD "/" QMK_KEYMAP " @ " QMK_VERSION ", Built on: " QMK_BUILDDATE), MACRO_TIMER);
- }
- return false;
- break;
-
- case KC_OS_CUT:
- switch (os_target) {
- case _OS_MACOS:
- if (pressed)
- SEND_STRING(SS_LGUI("x"));
- break;
- case _OS_LINUX:
- pressed ?
- register_code(KC_CUT)
- : unregister_code(KC_CUT);
- break;
- default:
- if (pressed)
- SEND_STRING(SS_LCTL("x"));
- break;
- }
- break;
-
- case KC_OS_COPY:
- switch (os_target) {
- case _OS_MACOS:
- if (pressed)
- SEND_STRING(SS_LGUI("c"));
- break;
- case _OS_LINUX:
- pressed ?
- register_code(KC_COPY)
- : unregister_code(KC_COPY);
- break;
- default:
- if (pressed)
- SEND_STRING(SS_LCTL("c"));
- break;
- }
- break;
-
- case KC_OS_PASTE:
- switch (os_target) {
- case _OS_MACOS:
- if (pressed)
- SEND_STRING(SS_LGUI("v"));
- break;
- case _OS_LINUX:
- pressed ?
- register_code(KC_PASTE)
- : unregister_code(KC_PASTE);
- break;
- default:
- if (pressed)
- SEND_STRING(SS_LCTL("v"));
- break;
- }
- break;
-
- case KC_OS_UNDO:
- switch (os_target) {
- case _OS_MACOS:
- if (pressed)
- SEND_STRING(SS_LGUI("z"));
- break;
- case _OS_LINUX:
- pressed ?
- register_code(KC_UNDO)
- : unregister_code(KC_UNDO);
- break;
- default:
- if (pressed)
- SEND_STRING(SS_LCTL("z"));
- break;
- }
- break;
-
- case KC_OS_REDO:
- switch (os_target) {
- case _OS_MACOS:
- if (pressed)
- SEND_STRING(SS_LGUI(SS_LSFT("z")));
- break;
- case _OS_LINUX:
- pressed ?
- register_code(KC_AGAIN)
- : unregister_code(KC_AGAIN);
- break;
- default:
- if (pressed)
- SEND_STRING(SS_LCTL(SS_LSFT("z")));
- break;
- }
- break;
-
- case KC_OS_LOCK:
- switch (os_target) {
- case _OS_MACOS:
- if (pressed)
- SEND_STRING(SS_LGUI(SS_LCTL("q")));
- break;
- case _OS_LINUX:
- pressed ?
- register_code(KC_PWR)
- : unregister_code(KC_PWR);
- break;
- default:
- if (pressed)
- SEND_STRING(SS_LGUI("l"));
- break;
- }
- break;
-
- case KC_SCRT:
- if (pressed) {
- SEND_STRING(SS_LGUI("`"));
- }
- break;
- }
-
- return process_record_keymap(keycode, record);
-}
diff --git a/users/sigma/sigma.h b/users/sigma/sigma.h
deleted file mode 100644
index e47e889b8c..0000000000
--- a/users/sigma/sigma.h
+++ /dev/null
@@ -1,58 +0,0 @@
-/*
- Copyright 2018 Yann Hodique <yann.hodique@gmail.com> @sigma
-
- 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"
-#include "version.h"
-#include "eeprom.h"
-
-// Define os types
-enum os_types
- {
- _OS_MACOS = 0,
- _OS_LINUX,
- _OS_WINDOWS,
- };
-
-// Define layer names
-enum userspace_layers
- {
- _QWERTY = 0,
- };
-
-typedef union {
- uint32_t raw;
- struct {
- uint8_t os_target :2;
- };
-} userspace_config_t;
-
-enum userspace_custom_keycodes
- {
- EPRM = SAFE_RANGE, // Resets EEPROM
- VRSN, // Prints QMK Firmware and board info
- KC_QWERTY, // Sets default layer to QWERTY
- KC_MAKE, // Rebuild the current firmware
- KC_OS_CUT,
- KC_OS_COPY,
- KC_OS_PASTE,
- KC_OS_UNDO,
- KC_OS_REDO,
- KC_OS_LOCK,
- KC_SCRT,
- NEW_SAFE_RANGE //use NEW_SAFE_RANGE for keymap specific codes
- };
diff --git a/users/sigul/.gitignore b/users/sigul/.gitignore
deleted file mode 100644
index 12165fdbd7..0000000000
--- a/users/sigul/.gitignore
+++ /dev/null
@@ -1,2 +0,0 @@
-secrets.h
-secrets.c
diff --git a/users/sigul/README.md b/users/sigul/README.md
deleted file mode 100644
index a8f705e154..0000000000
--- a/users/sigul/README.md
+++ /dev/null
@@ -1,17 +0,0 @@
-Copyright 2020 Silvio Gulizia desk@silviogulizia.com @sigul
-
-Userspace by Silvio Gulizia
-Contains code for ANSI / Italian layouts.
-
-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/>.
diff --git a/users/sigul/config.h b/users/sigul/config.h
deleted file mode 100644
index dc0cd0f070..0000000000
--- a/users/sigul/config.h
+++ /dev/null
@@ -1,21 +0,0 @@
-#pragma once
-
-// My custom configurations
-#define TAPPING_TOGGLE 3 // enable tapping toggle, used to lock level with a custom keycode defined by TT (in my case RAISE, LOWER and MOUSE)
-#define USB_MAX_POWER_CONSUMPTION 100 // required to be able to use the keyboard with iPad
-
-// Settings for using the keybaord as a mouse
-#define MOUSEKEY_DELAY 30
-// Delay between pressing a movement key and cursor movement
-#define MOUSEKEY_INTERVAL 16
-// Time between cursor movements
-#define MOUSEKEY_MAX_SPEED 3
-// Maximum cursor speed at which acceleration stops
-#define MOUSEKEY_TIME_TO_MAX 40
-// Time until maximum cursor speed is reached
-#define MOUSEKEY_WHEEL_MAX_SPEED 0
-// Maximum number of scroll steps per scroll action
-#define MOUSEKEY_WHEEL_TIME_TO_MAX 0
-// Time until maximum scroll speed is reached
-
-#define MACRO_TIMER 5
diff --git a/users/sigul/rules.mk b/users/sigul/rules.mk
deleted file mode 100644
index e272957d0a..0000000000
--- a/users/sigul/rules.mk
+++ /dev/null
@@ -1,8 +0,0 @@
-SRC += sigul.c
-MOUSEKEY_ENABLE = yes
-
-ifneq ($(strip $(NO_SECRETS)), yes)
- ifneq ("$(wildcard $(USER_PATH)/secrets.c)","")
- SRC += secrets.c
- endif
-endif
diff --git a/users/sigul/sigul.c b/users/sigul/sigul.c
deleted file mode 100644
index c9793ebb1f..0000000000
--- a/users/sigul/sigul.c
+++ /dev/null
@@ -1,100 +0,0 @@
-#include "keymap_italian_mac_ansi.h"
-#include "sigul.h"
-
-__attribute__ ((weak))
-layer_state_t layer_state_set_keymap (layer_state_t state) {
- return state;
-}
-
-layer_state_t layer_state_set_user(layer_state_t state) {
- return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST);
-}
-
-__attribute__ ((weak))
-bool process_record_keymap(uint16_t keycode, keyrecord_t *record) {
- return true;
-}
-
-__attribute__ ((weak))
-bool process_record_secrets(uint16_t keycode, keyrecord_t *record) {
- return true;
-}
-
-bool process_record_user(uint16_t keycode, keyrecord_t *record) {
- switch (keycode) {
-
- case IT_SCCL:
- if (record->event.pressed){
- if (get_mods() & MOD_BIT(KC_LSFT) || get_mods() & MOD_BIT(KC_RIGHT_SHIFT)){
- register_code16(IT_COLN);
- } else {
- register_code16(IT_SCLN);
- }
- } else {
- unregister_code16(IT_COLN);
- unregister_code16(IT_SCLN);
- }
- return false;
- break;
-
- case IT_APDQ:
- if (record->event.pressed){
- if (get_mods() & MOD_BIT(KC_LSFT) || get_mods() & MOD_BIT(KC_RIGHT_SHIFT)){
- register_code16(IT_DQUO);
- } else {
- register_code16(IT_QUOT);
- }
- } else {
- unregister_code16(IT_DQUO);
- unregister_code16(IT_QUOT);
- }
- return false;
- break;
-
- case IT_CMLS:
- if (record->event.pressed){
- if (get_mods() & MOD_BIT(KC_LSFT) || get_mods() & MOD_BIT(KC_RIGHT_SHIFT)){
- unregister_code16(KC_LSFT);
- register_code16(IT_LABK);
- register_code16(KC_LSFT);
- } else {
- register_code16(IT_COMM);
- }
- } else {
- unregister_code16(IT_LABK);
- unregister_code16(IT_COMM);
- }
- return false;
- break;
-
- case IT_DTMR:
- if (record->event.pressed){
- if (get_mods() & MOD_BIT(KC_LSFT) || get_mods() & MOD_BIT(KC_RIGHT_SHIFT)){
- register_code16(IT_RABK);
- } else {
- register_code16(IT_DOT);
- }
- } else {
- unregister_code16(IT_RABK);
- unregister_code16(IT_DOT);
- }
- return false;
- break;
-
- case IT_SLQS:
- if (record->event.pressed){
- if (get_mods() & MOD_BIT(KC_LSFT) || get_mods() & MOD_BIT(KC_RIGHT_SHIFT)){
- register_code16(IT_QUES);
- } else {
- register_code16(IT_SLSH);
- }
- } else {
- unregister_code16(IT_QUES);
- unregister_code16(IT_SLSH);
- }
- return false;
- break;
- }
- return process_record_keymap(keycode, record) && process_record_secrets(keycode, record);
-};
-
diff --git a/users/sigul/sigul.h b/users/sigul/sigul.h
deleted file mode 100644
index 8f806017cc..0000000000
--- a/users/sigul/sigul.h
+++ /dev/null
@@ -1,42 +0,0 @@
-#pragma once
-
-#include "quantum.h"
-
-enum userspace_layers {
- _QWERTY,
- _LOWER, //symbols
- _RAISE, //numbers
- _ADJUST, //system
- _NUMPAD,
- _FN,
- _MOUSE
-};
-
-enum userspace_custom_keycodes {
- QWERTY = SAFE_RANGE,
- // custom keycodes for an Italian ANSI layout with accented vowels
- IT_CMLS, // IT_COMM and IT_LABK when combined with shift
- IT_DTMR, // IT_DOT and IT_RABK when combined with shift
- IT_SLQS, // IT_SLSH and IT_QUES when combined with shift
- IT_APDQ, // IT_APO and IT_DQUO when combined with shift
- IT_SCCL, // IT_SMCL and IT_COLN when combined with shift
- SECRET0,
- SECRET1,
- SECRET2,
- SECRET3,
- SECRET4,
- SECRET5,
- NEW_SAFE_RANGE // start new keyboard-level declarations with NEW_SAFE_RANGE
-};
-
-// Defining Layer Keycodes
-#define QWERTY DF(_QWERTY)
-// For LOWER and RAISE I use TT instead of MO to be able to lock those layer tapping three times the key (TAPPING_TOGGLE 3 has been added in sigul.h)
-#define LOWER TT(_LOWER)
-#define RAISE TT(_RAISE)
-#define NUMPAD TG(_NUMPAD)
-#define FN MO(_FN)
-#define TABFN LT(_FN, KC_TAB)
-#define ESCFN LT(_FN, KC_ESC)
-#define MS_B LT(_MOUSE, IT_B)
-
diff --git a/users/snowe/luna.c b/users/snowe/luna.c
deleted file mode 100644
index 4653abfaeb..0000000000
--- a/users/snowe/luna.c
+++ /dev/null
@@ -1,229 +0,0 @@
-/*
- * Copyright 2021 QMK Community
- * Copyright 2021 Tyler Thrailkill (@snowe/@snowe2010) <tyler.b.thrailkill@gmail.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"
-#include "luna.h"
-
-// KEYBOARD PET START
-
-// settings
-#define MIN_WALK_SPEED 10
-#define MIN_RUN_SPEED 40
-
-// advanced settings
-#define ANIM_FRAME_DURATION 200 // how long each frame lasts in ms
-#define ANIM_SIZE 96 // number of bytes in array. If you change sprites, minimize for adequate firmware size. max is 1024
-
-bool isSneaking = false;
-bool isJumping = false;
-bool showedJump = true;
-
-// status variables
-int current_wpm = 0;
-led_t led_usb_state = {
- .num_lock = false,
- .caps_lock = false,
- .scroll_lock = false
-};
-
-// current frame
-uint8_t current_frame = 0;
-
-// timers
-uint32_t anim_timer = 0;
-uint32_t anim_sleep = 0;
-
-// logic
-void render_luna(int LUNA_X, int LUNA_Y) {
-
- // Sit
- static const char PROGMEM sit[2][ANIM_SIZE] = {
- // 'sit1', 32x22px
- {
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x1c,
- 0x02, 0x05, 0x02, 0x24, 0x04, 0x04, 0x02, 0xa9, 0x1e, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x10, 0x08, 0x68, 0x10, 0x08, 0x04, 0x03, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x06, 0x82, 0x7c, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x04, 0x0c, 0x10, 0x10, 0x20, 0x20, 0x20, 0x28,
- 0x3e, 0x1c, 0x20, 0x20, 0x3e, 0x0f, 0x11, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- },
-
- // 'sit2', 32x22px
- {
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x1c,
- 0x02, 0x05, 0x02, 0x24, 0x04, 0x04, 0x02, 0xa9, 0x1e, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x90, 0x08, 0x18, 0x60, 0x10, 0x08, 0x04, 0x03, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x0e, 0x82, 0x7c, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x04, 0x0c, 0x10, 0x10, 0x20, 0x20, 0x20, 0x28,
- 0x3e, 0x1c, 0x20, 0x20, 0x3e, 0x0f, 0x11, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
- }
- };
-
- // Walk
- static const char PROGMEM walk[2][ANIM_SIZE] = {
- // 'walk1', 32x22px
- {
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x40, 0x20, 0x10, 0x90, 0x90, 0x90, 0xa0, 0xc0, 0x80, 0x80,
- 0x80, 0x70, 0x08, 0x14, 0x08, 0x90, 0x10, 0x10, 0x08, 0xa4, 0x78, 0x80, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x08, 0xfc, 0x01, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00,
- 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x18, 0xea, 0x10, 0x0f, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x1c, 0x20, 0x20, 0x3c, 0x0f, 0x11, 0x1f, 0x03,
- 0x06, 0x18, 0x20, 0x20, 0x3c, 0x0c, 0x12, 0x1e, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- },
-
- // 'walk2', 32x22px
- {
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x40, 0x20, 0x20, 0x20, 0x40, 0x80, 0x00, 0x00, 0x00,
- 0x00, 0xe0, 0x10, 0x28, 0x10, 0x20, 0x20, 0x20, 0x10, 0x48, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x20, 0xf8, 0x02, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
- 0x03, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x10, 0x30, 0xd5, 0x20, 0x1f, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x20, 0x30, 0x0c, 0x02, 0x05, 0x09, 0x12, 0x1e,
- 0x02, 0x1c, 0x14, 0x08, 0x10, 0x20, 0x2c, 0x32, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- }
- };
-
- // Run
- static const char PROGMEM run[2][ANIM_SIZE] = {
- // 'run1', 32x22px
- {
- 0x00, 0x00, 0x00, 0x00, 0xe0, 0x10, 0x08, 0x08, 0xc8, 0xb0, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x40, 0x40, 0x3c, 0x14, 0x04, 0x08, 0x90, 0x18, 0x04, 0x08, 0xb0, 0x40, 0x80, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0xc4, 0xa4, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc8, 0x58, 0x28, 0x2a, 0x10, 0x0f, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x09, 0x04, 0x04, 0x04, 0x04, 0x02, 0x03, 0x02, 0x01, 0x01,
- 0x02, 0x02, 0x04, 0x08, 0x10, 0x26, 0x2b, 0x32, 0x04, 0x05, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00,
- },
-
- // 'run2', 32x22px
- {
- 0x00, 0x00, 0x00, 0xe0, 0x10, 0x10, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80,
- 0x80, 0x80, 0x78, 0x28, 0x08, 0x10, 0x20, 0x30, 0x08, 0x10, 0x20, 0x40, 0x80, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x03, 0x04, 0x08, 0x10, 0x11, 0xf9, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x10, 0xb0, 0x50, 0x55, 0x20, 0x1f, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x0c, 0x10, 0x20, 0x28, 0x37,
- 0x02, 0x1e, 0x20, 0x20, 0x18, 0x0c, 0x14, 0x1e, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- }
- };
-
- // Bark
- static const char PROGMEM bark[2][ANIM_SIZE] = {
- // 'bark1', 32x22px
- {
- 0x00, 0xc0, 0x20, 0x10, 0xd0, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x40,
- 0x3c, 0x14, 0x04, 0x08, 0x90, 0x18, 0x04, 0x08, 0xb0, 0x40, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x03, 0x04, 0x08, 0x10, 0x11, 0xf9, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x80, 0xc8, 0x48, 0x28, 0x2a, 0x10, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x0c, 0x10, 0x20, 0x28, 0x37, 0x02, 0x02,
- 0x04, 0x08, 0x10, 0x26, 0x2b, 0x32, 0x04, 0x05, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- },
-
- // 'bark2', 32x22px
- {
- 0x00, 0xe0, 0x10, 0x10, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x40,
- 0x40, 0x2c, 0x14, 0x04, 0x08, 0x90, 0x18, 0x04, 0x08, 0xb0, 0x40, 0x80, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x03, 0x04, 0x08, 0x10, 0x11, 0xf9, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0x48, 0x28, 0x2a, 0x10, 0x0f, 0x20, 0x4a, 0x09, 0x10,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x0c, 0x10, 0x20, 0x28, 0x37, 0x02, 0x02,
- 0x04, 0x08, 0x10, 0x26, 0x2b, 0x32, 0x04, 0x05, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- }
- };
-
- // Sneak
- static const char PROGMEM sneak[2][ANIM_SIZE] = {
- // 'sneak1', 32x22px
- {
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x40, 0x40, 0x40, 0x40, 0x80, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0xc0, 0x40, 0x40, 0x80, 0x00, 0x80, 0x40, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x1e, 0x21, 0xf0, 0x04, 0x02, 0x02, 0x02, 0x02, 0x03, 0x02, 0x02, 0x04,
- 0x04, 0x04, 0x03, 0x01, 0x00, 0x00, 0x09, 0x01, 0x80, 0x80, 0xab, 0x04, 0xf8, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x1c, 0x20, 0x20, 0x3c, 0x0f, 0x11, 0x1f, 0x02, 0x06,
- 0x18, 0x20, 0x20, 0x38, 0x08, 0x10, 0x18, 0x04, 0x04, 0x02, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00,
- },
-
- // 'sneak2', 32x22px
- {
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x40, 0x40, 0x40, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0xe0, 0xa0, 0x20, 0x40, 0x80, 0xc0, 0x20, 0x40, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x3e, 0x41, 0xf0, 0x04, 0x02, 0x02, 0x02, 0x03, 0x02, 0x02, 0x02, 0x04,
- 0x04, 0x02, 0x01, 0x00, 0x00, 0x00, 0x04, 0x00, 0x40, 0x40, 0x55, 0x82, 0x7c, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x20, 0x30, 0x0c, 0x02, 0x05, 0x09, 0x12, 0x1e, 0x04,
- 0x18, 0x10, 0x08, 0x10, 0x20, 0x28, 0x34, 0x06, 0x02, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- }
- };
-
- // animation
- void animation_phase(void) {
-
- // jump
- if (isJumping || !showedJump) {
-
- // clear
- oled_set_cursor(LUNA_X,LUNA_Y +2);
- oled_write(" ", false);
-
- oled_set_cursor(LUNA_X,LUNA_Y -1);
-
- showedJump = true;
- } else {
-
- // clear
- oled_set_cursor(LUNA_X,LUNA_Y -1);
- oled_write(" ", false);
-
- oled_set_cursor(LUNA_X,LUNA_Y);
- }
-
- // switch frame
- current_frame = (current_frame + 1) % 2;
-
- // current status
- if(led_usb_state.caps_lock) {
- oled_write_raw_P(bark[abs(1 - current_frame)], ANIM_SIZE);
-
- } else if(isSneaking) {
- oled_write_raw_P(sneak[abs(1 - current_frame)], ANIM_SIZE);
-
- } else if(current_wpm <= MIN_WALK_SPEED) {
- oled_write_raw_P(sit[abs(1 - current_frame)], ANIM_SIZE);
-
- } else if(current_wpm <= MIN_RUN_SPEED) {
- oled_write_raw_P(walk[abs(1 - current_frame)], ANIM_SIZE);
-
- } else {
- oled_write_raw_P(run[abs(1 - current_frame)], ANIM_SIZE);
- }
- }
-
- // animation timer
- if(timer_elapsed32(anim_timer) > ANIM_FRAME_DURATION) {
- anim_timer = timer_read32();
- current_wpm = get_current_wpm();
- animation_phase();
- }
-
- // this fixes the screen on and off bug
- if (current_wpm > 0) {
- oled_on();
- anim_sleep = timer_read32();
- } else if(timer_elapsed32(anim_sleep) > OLED_TIMEOUT) {
- oled_off();
- }
-
-}
-
-// KEYBOARD PET END \ No newline at end of file
diff --git a/users/snowe/luna.h b/users/snowe/luna.h
deleted file mode 100644
index c96d7a12df..0000000000
--- a/users/snowe/luna.h
+++ /dev/null
@@ -1,31 +0,0 @@
-/*
- * Copyright 2021 QMK Community
- * Copyright 2021 Tyler Thrailkill (@snowe/@snowe2010) <tyler.b.thrailkill@gmail.com>
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
-*/
-
-#pragma once
-
-extern bool isSneaking;
-extern bool isJumping;
-extern bool showedJump;
-
-// status variables
-extern led_t led_usb_state;
-//extern int current_wpm;
-
-
-void render_luna(int LUNA_X, int LUNA_Y);
-
diff --git a/users/snowe/ocean_dream.c b/users/snowe/ocean_dream.c
deleted file mode 100644
index bd95ea16f8..0000000000
--- a/users/snowe/ocean_dream.c
+++ /dev/null
@@ -1,556 +0,0 @@
-/*
- * Copyright 2021 Tyler Thrailkill (@snowe/@snowe2010) <tyler.b.thrailkill@gmail.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 "ocean_dream.h"
-#include "quantum.h"
-#include "print.h"
-
-// Calculated Parameters
-#define TWINKLE_PROBABILITY_MODULATOR 100 / TWINKLE_PROBABILITY // CALCULATED: Don't Touch
-#define TOTAL_STARS STARS_PER_LINE *NUMBER_OF_STAR_LINES // CALCULATED: Don't Touch
-#define OCEAN_ANIMATION_MODULATOR NUMBER_OF_FRAMES / OCEAN_ANIMATION_SPEED // CALCULATED: Don't Touch
-#define SHOOTING_STAR_ANIMATION_MODULATOR NUMBER_OF_FRAMES / SHOOTING_STAR_ANIMATION_SPEED // CALCULATED: Don't Touch
-#define STAR_ANIMATION_MODULATOR NUMBER_OF_FRAMES / STAR_ANIMATION_SPEED // CALCULATED: Don't Touch
-
-uint8_t animation_counter = 0; // global animation counter.
-bool is_calm = false;
-uint32_t starry_night_anim_timer = 0;
-uint32_t starry_night_anim_sleep = 0;
-static int current_wpm = 0;
-
-static uint8_t increment_counter(uint8_t counter, uint8_t max) {
- counter++;
- if (counter >= max) {
- return 0;
- } else {
- return counter;
- }
-}
-
-#ifdef ENABLE_WAVE
-static uint8_t decrement_counter(uint8_t counter, uint8_t max) {
- counter--;
- if (counter < 0 || counter > max) {
- return max;
- } else {
- return counter;
- }
-}
-#endif
-
-#ifdef ENABLE_MOON // region
-# ifndef STATIC_MOON
-uint8_t moon_animation_frame = 0; // keeps track of current moon frame
-uint16_t moon_animation_counter = 0; // counts how many frames to wait before animating moon to next frame
-# endif
-
-# ifdef STATIC_MOON
-static const char PROGMEM moon[6] = {
- 0x18, 0x7E, 0xFF, 0xC3, 0x81, 0x81,
-};
-# endif
-
-# ifndef STATIC_MOON
-static const char PROGMEM moon_animation[14][8] = {
- // clang-format off
- { 0x3C, 0x7E, 0xFF, 0xFF, 0xFF, 0xFF, 0x7E, 0x3C, },
- { 0x3C, 0x7E, 0xFF, 0xFF, 0xFF, 0xFF, 0x42, 0x00, },
- { 0x3C, 0x7E, 0xFF, 0xFF, 0xFF, 0xC3, 0x00, 0x00, },
- { 0x3C, 0x7E, 0xFF, 0xFF, 0xC3, 0x81, 0x00, 0x00, },
- { 0x3C, 0x7E, 0xFF, 0xC3, 0x81, 0x00, 0x00, 0x00, },
- { 0x3C, 0x7E, 0xC3, 0x81, 0x81, 0x00, 0x00, 0x00, },
- { 0x3C, 0x42, 0x81, 0x81, 0x00, 0x00, 0x00, 0x00, },
- { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, },
- { 0x00, 0x00, 0x00, 0x00, 0x81, 0x81, 0x42, 0x3C, },
- { 0x00, 0x00, 0x00, 0x81, 0x81, 0xC3, 0x7E, 0x3C, },
- { 0x00, 0x00, 0x00, 0x81, 0xC3, 0xFF, 0x7E, 0x3C, },
- { 0x00, 0x00, 0x81, 0xC3, 0xFF, 0xFF, 0x7E, 0x3C, },
- { 0x00, 0x00, 0xC3, 0xFF, 0xFF, 0xFF, 0x7E, 0x3C, },
- { 0x00, 0x42, 0xFF, 0xFF, 0xFF, 0xFF, 0x7E, 0x3C, },
- // clang-format on
-};
-# endif
-
-static void draw_moon(void) {
-# ifdef STATIC_MOON
- oled_set_cursor(MOON_COLUMN, MOON_LINE);
- oled_write_raw_P(moon, 6);
-# endif
-# ifndef STATIC_MOON
- moon_animation_counter = increment_counter(moon_animation_counter, ANIMATE_MOON_EVERY_N_FRAMES);
- if (moon_animation_counter == 0) {
- moon_animation_frame = increment_counter(moon_animation_frame, 14);
- oled_set_cursor(MOON_COLUMN, MOON_LINE);
- oled_write_raw_P(moon_animation[moon_animation_frame], 8);
- }
-# endif
-}
-#endif // endregion
-
-#ifdef ENABLE_WAVE // region
-uint8_t starry_night_wave_frame_width_counter = 31;
-uint8_t rough_waves_frame_counter = 0;
-
-// clang-format off
-static const char PROGMEM ocean_top[8][32] = {
- // still ocean
- {
- 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40,
- 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40,
- 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40,
- 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40,
- },
- // small ripples
- {
- 0x20, 0x60, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40,
- 0x20, 0x60, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40,
- 0x20, 0x60, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40,
- 0x20, 0x60, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40,
- },
- // level 2 ripples
- {
- 0x20, 0x60, 0x40, 0x40, 0x20, 0x60, 0x40, 0x40,
- 0x20, 0x60, 0x40, 0x40, 0x20, 0x60, 0x40, 0x40,
- 0x20, 0x60, 0x40, 0x40, 0x20, 0x60, 0x40, 0x40,
- 0x20, 0x60, 0x40, 0x40, 0x20, 0x60, 0x40, 0x40,
- },
- // level 3 waves
- {
- 0x40, 0x20, 0x10, 0x20, 0x40, 0x40, 0x40, 0x40,
- 0x40, 0x20, 0x10, 0x20, 0x40, 0x40, 0x40, 0x40,
- 0x40, 0x20, 0x10, 0x20, 0x40, 0x40, 0x40, 0x40,
- 0x40, 0x20, 0x10, 0x20, 0x40, 0x40, 0x40, 0x40,
- },
- {
- 0x40, 0x40, 0x20, 0x10, 0x28, 0x50, 0x40, 0x40,
- 0x40, 0x40, 0x20, 0x10, 0x28, 0x50, 0x40, 0x40,
- 0x40, 0x40, 0x20, 0x10, 0x28, 0x50, 0x40, 0x40,
- 0x40, 0x40, 0x20, 0x10, 0x28, 0x50, 0x40, 0x40,
- },
- {
- 0x40, 0x40, 0x40, 0x20, 0x10, 0x30, 0x70, 0x60,
- 0x40, 0x40, 0x40, 0x20, 0x10, 0x30, 0x70, 0x60,
- 0x40, 0x40, 0x40, 0x20, 0x10, 0x30, 0x70, 0x60,
- 0x40, 0x40, 0x40, 0x20, 0x10, 0x30, 0x70, 0x60,
- },
-};
-static const char PROGMEM ocean_bottom[8][32] = {
- // still ocean
- {
- 0x00, 0x40, 0x40, 0x41, 0x01, 0x01, 0x01, 0x21,
- 0x20, 0x00, 0x00, 0x04, 0x04, 0x04, 0x04, 0x44,
- 0x44, 0x40, 0x40, 0x00, 0x00, 0x08, 0x08, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x40, 0x40, 0x00, 0x00,
- },
- // small ripples
- {
- 0x00, 0x00, 0x40, 0x40, 0x01, 0x01, 0x01, 0x20,
- 0x20, 0x00, 0x00, 0x00, 0x04, 0x04, 0x04, 0x04,
- 0x40, 0x40, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00,
- 0x00, 0x01, 0x01, 0x00, 0x00, 0x40, 0x00, 0x00,
- },
- // level 2 ripples
- {
- 0x00, 0x00, 0x40, 0x40, 0x01, 0x01, 0x01, 0x20,
- 0x20, 0x00, 0x00, 0x00, 0x04, 0x04, 0x04, 0x04,
- 0x40, 0x40, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00,
- 0x00, 0x01, 0x01, 0x00, 0x00, 0x40, 0x00, 0x00,
- },
- // level 3 waves
- {
- 0x00, 0x40, 0x40, 0x42, 0x42, 0x03, 0x11, 0x11,
- 0x20, 0x20, 0x00, 0x00, 0x08, 0x0C, 0x0C, 0x04,
- 0x05, 0x41, 0x41, 0x21, 0x20, 0x00, 0x00, 0x08,
- 0x0A, 0x0A, 0x0B, 0x41, 0x41, 0x41, 0x41, 0x00,
- },
- {
- 0x10, 0x10, 0x00, 0x80, 0x84, 0xC4, 0x02, 0x06,
- 0x84, 0x44, 0xC0, 0x80, 0x80, 0x20, 0x20, 0x10,
- 0x08, 0x12, 0x91, 0x81, 0x42, 0x40, 0x00, 0x00,
- 0x10, 0x12, 0x22, 0x22, 0x24, 0x04, 0x84, 0x80,
- },
- {
- 0x08, 0x80, 0x80, 0x82, 0x82, 0x03, 0x21, 0x21,
- 0x10, 0x10, 0x00, 0x00, 0x04, 0x04, 0x0C, 0x08,
- 0x09, 0x41, 0x42, 0x22, 0x20, 0x00, 0x00, 0x08,
- 0x0A, 0x0A, 0x0B, 0x41, 0x43, 0x42, 0x42, 0x00,
- },
-};
-// clang-format on
-
-static void animate_waves(void) {
- starry_night_wave_frame_width_counter = decrement_counter(starry_night_wave_frame_width_counter, WIDTH - 1); // only 3 frames for last wave type
- rough_waves_frame_counter = increment_counter(rough_waves_frame_counter, 3); // only 3 frames for last wave type
-
- void draw_ocean(uint8_t frame, uint16_t offset, uint8_t byte_index) {
- oled_write_raw_byte(pgm_read_byte(ocean_top[frame] + byte_index), offset);
- oled_write_raw_byte(pgm_read_byte(ocean_bottom[frame] + byte_index), offset + WIDTH);
- }
-
- for (int i = 0; i < WIDTH; ++i) {
- uint16_t offset = OCEAN_LINE * WIDTH + i;
- uint8_t byte_index = starry_night_wave_frame_width_counter + i;
- if (byte_index >= WIDTH) {
- byte_index = byte_index - WIDTH;
- }
- if (is_calm || current_wpm <= WAVE_CALM) {
- draw_ocean(0, offset, byte_index);
- } else if (current_wpm <= WAVE_HEAVY_STORM) {
- draw_ocean(1, offset, byte_index);
- } else if (current_wpm <= WAVE_HURRICANE) {
- draw_ocean(2, offset, byte_index);
- } else {
- draw_ocean(3 + rough_waves_frame_counter, offset, byte_index);
- }
- }
-}
-#endif // endregion
-
-#ifdef ENABLE_ISLAND // region
-uint8_t island_frame_1 = 0;
-
-// clang-format off
-// only use 46 bytes (first 18 are blank, so we don't write them, makes it smaller and we can see the shooting stars properly!)
-
-// To save space and allow the shooting stars to be seen, only draw the tree on every frame.
-// Tree is only 14bytes wide so we save 108 bytes on just the first row. Second row, the
-// first 18 bytes is always the same piece of land, so only store that once, which saves 90 bytes
-static const char PROGMEM islandRightTop[6][14] = {
- {0x84, 0xEC, 0x6C, 0x3C, 0xF8, 0xFE, 0x3F, 0x6B, 0xDB, 0xB9, 0x30, 0x40, 0x00, 0x00,},
- {0x80, 0xC3, 0xEE, 0x7C, 0xB8, 0xFC, 0xFE, 0x6F, 0xDB, 0x9B, 0xB2, 0x30, 0x00, 0x00,},
- {0x00, 0xC0, 0xEE, 0x7F, 0x3D, 0xF8, 0xFC, 0x7E, 0x57, 0xDB, 0xDB, 0x8A, 0x00, 0x00,},
- {0x00, 0xC0, 0xE6, 0x7F, 0x3B, 0xF9, 0xFC, 0xFC, 0xB6, 0xB3, 0x33, 0x61, 0x00, 0x00,},
- {0x00, 0x00, 0x00, 0x00, 0x80, 0xEE, 0xFF, 0xFB, 0xF9, 0xFC, 0xDE, 0xB6, 0xB6, 0x24,},
- {0x00, 0x00, 0x00, 0x00, 0xC0, 0xEE, 0xFE, 0xFF, 0xFB, 0xFD, 0xEE, 0xB6, 0xB6, 0x92,},
-};
-static const char PROGMEM islandRightBottom[6][14] = {
- {0x41, 0x40, 0x60, 0x3E, 0x3F, 0x23, 0x20, 0x60, 0x41, 0x43, 0x40, 0x40, 0x40, 0x80,},
- {0x40, 0x41, 0x60, 0x3E, 0x3F, 0x23, 0x20, 0x60, 0x40, 0x40, 0x41, 0x41, 0x40, 0x80,},
- {0x40, 0x40, 0x61, 0x3D, 0x3F, 0x27, 0x21, 0x60, 0x40, 0x40, 0x40, 0x40, 0x40, 0x80,},
- {0x40, 0x43, 0x61, 0x3C, 0x3F, 0x27, 0x21, 0x60, 0x41, 0x43, 0x43, 0x42, 0x40, 0x80,},
- {0x40, 0x40, 0x60, 0x3C, 0x3F, 0x27, 0x23, 0x63, 0x44, 0x40, 0x41, 0x41, 0x41, 0x81,},
- {0x40, 0x40, 0x60, 0x3C, 0x3F, 0x27, 0x23, 0x63, 0x42, 0x42, 0x41, 0x41, 0x41, 0x80,},
-};
-static const char PROGMEM islandLeft[18] = {
- 0x80, 0x40, 0x40, 0x40, 0x40, 0x60,
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
- 0x20, 0x20, 0x20, 0x60, 0x40, 0x40,
-};
-// clang-format on
-
-static void animate_island(void) {
- if (animation_counter == 0) {
- island_frame_1 = increment_counter(island_frame_1, 2);
- }
-
- void draw_island_parts(uint8_t frame) {
- oled_set_cursor(ISLAND_COLUMN + 3, ISLAND_LINE);
- oled_write_raw_P(islandRightTop[frame], 14);
- oled_set_cursor(ISLAND_COLUMN + 0, ISLAND_LINE + 1);
- oled_write_raw_P(islandLeft, 18);
- oled_set_cursor(ISLAND_COLUMN + 3, ISLAND_LINE + 1);
- oled_write_raw_P(islandRightBottom[frame], 14);
- }
-
- if (is_calm || current_wpm < ISLAND_CALM) {
- draw_island_parts(0);
- } else if (current_wpm >= ISLAND_CALM && current_wpm < ISLAND_HEAVY_STORM) {
- draw_island_parts(island_frame_1 + 1);
- } else if (current_wpm >= ISLAND_HEAVY_STORM && current_wpm < ISLAND_HURRICANE) {
- draw_island_parts(island_frame_1 + 2);
- } else {
- draw_island_parts(island_frame_1 + 4);
- }
-}
-#endif // endregion
-
-#ifdef ENABLE_STARS // region
-bool stars_setup = false; // only setup stars once, then we just twinkle them
-struct Coordinate {
- int x;
- int y;
- bool exists;
-};
-
-struct Coordinate stars[TOTAL_STARS]; // tracks all stars/coordinates
-
-/**
- * Setup all the initial stars on the screen
- * This function divides the screen into regions based on STARS_PER_LINE and NUMBER_OF_STAR_LINES
- * where each line is made up of 8x8 pixel groups, that are populated by a single star.
- *
- * Not sure how this function will work with larger or smaller screens.
- * It should be fine, as long as the screen width is a multiple of 8
- */
-static void setup_stars(void) {
- // For every line, split the line into STARS_PER_LINE, find a random point in that region, and turn the pixel on
- // 36% probability it will not be added
- // (said another way, 80% chance it will start out lit in the x direction, then 80% chance it will start out lit in the y direction = 64% probability it will start out lit at all)
- for (int line = 0; line < NUMBER_OF_STAR_LINES; ++line) {
- for (int column_group = 0; column_group < STARS_PER_LINE; ++column_group) {
- uint8_t rand_column = rand() % 10;
- uint8_t rand_row = rand() % 10;
- if (rand_column < 8 && rand_row < 8) {
- int column_adder = column_group * 8;
- int line_adder = line * 8;
- int x = rand_column + column_adder;
- int y = rand_row + line_adder;
- oled_write_pixel(x, y, true);
- stars[column_group + (line * STARS_PER_LINE)].x = x;
- stars[column_group + (line * STARS_PER_LINE)].y = y;
- stars[column_group + (line * STARS_PER_LINE)].exists = true;
- } else {
- stars[column_group + (line * STARS_PER_LINE)].exists = false;
- }
- }
- }
- stars_setup = true;
-}
-
-/**
- * Twinkle the stars (move them one pixel in any direction) with a probability of 50% to twinkle any given star
- */
-static void twinkle_stars(void) {
- for (int line = 0; line < NUMBER_OF_STAR_LINES; ++line) {
- for (int column_group = 0; column_group < STARS_PER_LINE; ++column_group) {
- struct Coordinate star = stars[column_group + (line * STARS_PER_LINE)];
-
- // skip stars that were never added
- if (!star.exists) {
- continue;
- }
- if (rand() % TWINKLE_PROBABILITY_MODULATOR == 0) {
- oled_write_pixel(star.x, star.y, false); // black out pixel
-
- // don't allow stars to leave their own region
- if (star.x == (column_group * 8)) { // star is the farthest left it can go in its region
- star.x++; // move it right immediately
- } else if (star.x == (((column_group + 1) * 8) - 1)) { // star is farthest right it can go in its region
- star.x--; // move it left immediately
- }
- if (star.y == (line * 8)) { // star is the farthest up it can go in its region
- star.y++; // move it down immediately
- } else if (star.y == (((line + 1) * 8) - 1)) { // star is farthest down it can go in its region
- star.y--; // move it up immediately
- }
-
- // now decide direction
- int new_x;
- int x_choice = rand() % 3;
- if (x_choice == 0) {
- new_x = star.x - 1;
- } else if (x_choice == 1) {
- new_x = star.x + 1;
- } else {
- new_x = star.x;
- }
-
- int new_y;
- int y_choice = rand() % 3;
- if (y_choice == 0) {
- new_y = star.y - 1;
- } else if (y_choice == 1) {
- new_y = star.y + 1;
- } else {
- new_y = star.y;
- }
-
- star.x = new_x;
- star.y = new_y;
- oled_write_pixel(new_x, new_y, true);
- }
-
- stars[column_group + (line * STARS_PER_LINE)] = star;
- }
- }
-}
-
-/**
- * Setup the stars and then animate them on subsequent frames
- */
-static void animate_stars(void) {
- if (!stars_setup) {
- setup_stars();
- } else {
- twinkle_stars();
- }
-}
-#endif // endregion
-
-#ifdef ENABLE_SHOOTING_STARS // region
-bool shooting_stars_setup = false; // only setup shooting stars array once with defaults
-
-struct ShootingStar {
- int x_1;
- int y_1;
- int x_2;
- int y_2;
- bool running;
- int frame;
- int delay;
-};
-
-struct ShootingStar shooting_stars[MAX_NUMBER_OF_SHOOTING_STARS]; // tracks all the shooting stars
-
-static void setup_shooting_star(struct ShootingStar *shooting_star) {
- int column_to_start = rand() % (WIDTH / 2);
- int row_to_start = rand() % (HEIGHT - 48); // shooting_stars travel diagonally 1 down, 1 across. So the lowest a shooting_star can start and not 'hit' the ocean is 32 above the ocean.
-
- shooting_star->x_1 = column_to_start;
- shooting_star->y_1 = row_to_start;
- shooting_star->x_2 = column_to_start + 1;
- shooting_star->y_2 = row_to_start + 1;
- shooting_star->running = true;
- shooting_star->frame++;
- shooting_star->delay = rand() % SHOOTING_STAR_DELAY;
-}
-
-static void move_shooting_star(struct ShootingStar *shooting_star) {
- oled_write_pixel(shooting_star->x_1, shooting_star->y_1, false);
- oled_write_pixel(shooting_star->x_2, shooting_star->y_2, false);
-
- shooting_star->x_1++;
- shooting_star->y_1++;
- shooting_star->x_2++;
- shooting_star->y_2++;
- shooting_star->frame++;
-
- oled_write_pixel(shooting_star->x_1, shooting_star->y_1, true);
- oled_write_pixel(shooting_star->x_2, shooting_star->y_2, true);
-}
-
-static void finish_shooting_star(struct ShootingStar *shooting_star) {
- oled_write_pixel(shooting_star->x_1, shooting_star->y_1, false);
- oled_write_pixel(shooting_star->x_2, shooting_star->y_2, false);
- shooting_star->running = false;
- shooting_star->frame = 0;
-}
-
-static void animate_shooting_star(struct ShootingStar *shooting_star) {
- if (shooting_star->frame > SHOOTING_STAR_FRAMES) {
- finish_shooting_star(shooting_star);
- return;
- } else if (!shooting_star->running) {
- setup_shooting_star(shooting_star);
- } else {
- if (shooting_star->delay == 0) {
- move_shooting_star(shooting_star);
- } else {
- shooting_star->delay--;
- }
- }
-}
-
-static void animate_shooting_stars(void) {
- if (is_calm) {
- return;
- }
- if (!shooting_stars_setup) {
- for (int i = 0; i < MAX_NUMBER_OF_SHOOTING_STARS; ++i) {
- shooting_stars[i].running = false;
- }
- shooting_stars_setup = true;
- }
- /**
- * Fixes issue with stars that were falling _while_ the
- * wpm dropped below the condition for them to keep falling
- */
- void end_extra_stars(uint8_t starting_index) {
- for (int shooting_star_index = starting_index; shooting_star_index < MAX_NUMBER_OF_SHOOTING_STARS; ++shooting_star_index) {
- struct ShootingStar shooting_star = shooting_stars[shooting_star_index];
- if (shooting_star.running) {
- finish_shooting_star(&shooting_star);
- shooting_stars[shooting_star_index] = shooting_star;
- }
- }
- }
-
- int number_of_shooting_stars = current_wpm / SHOOTING_STAR_WPM_INCREMENT;
- number_of_shooting_stars = (number_of_shooting_stars > MAX_NUMBER_OF_SHOOTING_STARS) ? MAX_NUMBER_OF_SHOOTING_STARS : number_of_shooting_stars;
-
- if (number_of_shooting_stars == 0) {
- // make sure all shooting_stars are ended
- end_extra_stars(0);
- } else {
- for (int shooting_star_index = 0; shooting_star_index < number_of_shooting_stars; ++shooting_star_index) {
- struct ShootingStar shooting_star = shooting_stars[shooting_star_index];
- animate_shooting_star(&shooting_star);
- shooting_stars[shooting_star_index] = shooting_star;
- }
- end_extra_stars(number_of_shooting_stars);
- }
-}
-#endif // endregion
-
-/**
- * Main rendering function
- *
- * Calls all different animations at different rates
- */
-void render_stars(void) {
- current_wpm = get_current_wpm();
-
- void render_stars_anim(void) {
-#ifdef ENABLE_ISLAND
- animate_island();
-#endif
-
-#ifdef ENABLE_SHOOTING_STARS
- if (animation_counter % SHOOTING_STAR_ANIMATION_MODULATOR == 0) {
- animate_shooting_stars();
- }
-#endif
-
-#ifdef ENABLE_STARS
- // TODO offsetting the star animation from the wave animation would look better,
- // but if I do that, then the stars appear in the water because
- // the ocean animation has to wait a bunch of frames to overwrite it.
- // Possible solutions:
- // 1. Only draw stars to the top of the island/ocean.
- // 2. Draw ocean every frame, only move ocean on frames matching modulus
- // Problems:
- // 1. What if someone wants to move the island up a bit, or they want to have the stars reflect in the water?
- // 2. More cpu intensive. And I'm already running out of cpu as it is...
- if (animation_counter % STAR_ANIMATION_MODULATOR == 0) {
- animate_stars();
- }
-#endif
-
-#ifdef ENABLE_WAVE
- if (animation_counter % OCEAN_ANIMATION_MODULATOR == 0) {
- animate_waves();
- }
-#endif
-
-#ifdef ENABLE_MOON
- draw_moon();
-#endif
-
- animation_counter = increment_counter(animation_counter, NUMBER_OF_FRAMES);
- }
-
-
- // Turn screen on/off based on typing and timeout
- if (current_wpm > 0 && timer_elapsed32(starry_night_anim_timer) > STARRY_NIGHT_ANIM_FRAME_DURATION) {
- starry_night_anim_timer = timer_read32();
- oled_on();
- render_stars_anim();
- starry_night_anim_sleep = timer_read32();
- } else if (timer_elapsed32(starry_night_anim_sleep) > OLED_TIMEOUT) {
- oled_off();
- }
-}
diff --git a/users/snowe/ocean_dream.h b/users/snowe/ocean_dream.h
deleted file mode 100644
index 57e0b91557..0000000000
--- a/users/snowe/ocean_dream.h
+++ /dev/null
@@ -1,103 +0,0 @@
-/*
- * Copyright 2021 Tyler Thrailkill (@snowe/@snowe2010) <tyler.b.thrailkill@gmail.com>
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-#pragma once
-#include "quantum.h"
-
-/**
- * Features:
- * You can turn on and off features in this section
- */
-//#define ENABLE_MOON // Uses 182 bytes
-#define ENABLE_WAVE // Uses 844 bytes
-#define ENABLE_SHOOTING_STARS // Uses 872 bytes
-#define ENABLE_ISLAND
-#define ENABLE_STARS // Uses 606 bytes
-
-/**
- * Global Settings
- */
-#define STARRY_NIGHT_ANIM_FRAME_DURATION 30 // how long each frame lasts in ms
-#define NUMBER_OF_FRAMES 20 // Self explanatory. Probably shouldn't touch this, not sure how stuff will work if it's changed. If changed should be multiple of 1, 2, 3, 4, and 5
-#define WIDTH OLED_DISPLAY_HEIGHT // for vertical displays
-#define HEIGHT OLED_DISPLAY_WIDTH // for vertical displays
-
-/**
- * Moon Parameters
- */
-#define MOON_LINE 4 // the line you want the moon to appear at
-#define MOON_COLUMN 4 // the column you want the moon to appear at
-//#define STATIC_MOON // uncomment this to make the moon a static image, no animation
-#ifndef STATIC_MOON
-# define ANIMATE_MOON_EVERY_N_FRAMES 100 // animate the moon every n frames
-#endif
-
-/**
- * Wave Parameters
- */
-#define OCEAN_LINE 14 // Line you want to render the ocean starting at (best at oled_max_lines() - 2)
-#define WAVE_CALM 20 // render calm ocean under this WPM and ripple ocean at this WPM
-#define WAVE_HEAVY_STORM 40 // render medium ocean at this WPM
-#define WAVE_HURRICANE 60 // render heavy waves above this WPM
-// What number of frames you want to animate the ocean at.
-// Should be equal to or smaller than NUMBER_OF_FRAMES, e.g. 30, would animate on every other frame, 20, every third frame, etc
-// Don't set equal to 0.
-#define OCEAN_ANIMATION_SPEED 1
-
-/**
- * Shooting Star Parameters
- */
-#define SHOOTING_STAR_DELAY 12 // delay modulus for time between shooting stars. Decides number of frames to delay, e.g. 12 means 0-11 frames of delay between each shooting star
-#define SHOOTING_STAR_FRAMES 16 // how many 2 pixel frames per shooting star. Increment this for longer shooting stars
-#define MAX_NUMBER_OF_SHOOTING_STARS 12 // maximum number of shooting stars that can be on screen at the same time
-#define SHOOTING_STAR_WPM_INCREMENT 10 // every n WPM increase, add an extra star, up to MAX_NUMBER_OF_SHOOTING_STARS, e.g. an increment of 5 would result in 1 shooting star at 5-9wpm, 2 at 10-14, etc.
-// What number of frames you want to animate the shooting stars at.
-// Should be equal to or smaller than NUMBER_OF_FRAMES, e.g. 30, would animate on every other frame, 20, every third frame, etc
-// Don't set equal to 0.
-#define SHOOTING_STAR_ANIMATION_SPEED 30
-
-/**
- * Star Parameters
- */
-#define STARS_PER_LINE 4 // number of stars per line (for a display that is 128x32, this would be 4 stars spread out evenly over the 32byte width, one every 8 bytes)
-#define NUMBER_OF_STAR_LINES 16 // number of lines to fill up with stars (for a display that is 128x32, 16 bytes are filled with the ocean animation, so that leaves 112 pixels left over. The number of lines depends on your OLED_FONT_HEIGHT)
-#define TWINKLE_PROBABILITY 25 // probability that any star twinkles on a given frame
-// What number of frames you want to animate the stars at.
-// Should be equal to or smaller than NUMBER_OF_FRAMES, e.g. 20, would animate on every frame, 10, every other frame, etc
-// Don't set equal to 0.
-#define STAR_ANIMATION_SPEED 1
-
-/**
- * Island Parameters
- */
-#define ISLAND_LINE 12 // line that the island starts at. Island is 2 lines tall
-#define ISLAND_COLUMN 0 // column that the island starts at
-#define ISLAND_CALM 20 // WPM at which the palm tree calmly moves
-#define ISLAND_HEAVY_STORM 40 // WPM at which the heavy storm occurs
-#define ISLAND_HURRICANE 60 // WPM at which THE HURRICANE STARTS
-
-/*
- * DON'T TOUCH
- */
-
-extern bool is_calm;
-
-// timers
-extern uint32_t starry_night_anim_timer;
-extern uint32_t starry_night_anim_sleep;
-
-void render_stars(void);
diff --git a/users/snowe/oled_setup.c b/users/snowe/oled_setup.c
deleted file mode 100644
index be54d9f558..0000000000
--- a/users/snowe/oled_setup.c
+++ /dev/null
@@ -1,146 +0,0 @@
-/*
- * Copyright QMK Community
- * Copyright 2021 Tyler Thrailkill (@snowe/@snowe2010) <tyler.b.thrailkill@gmail.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/>.
- */
-
-#ifdef OLED_ENABLE
-
-# include QMK_KEYBOARD_H
-# include "quantum.h"
-# include "snowe.h"
-
-# include <stdio.h> // for keylog?
-
-oled_rotation_t oled_init_user(oled_rotation_t rotation) {
- if (!is_keyboard_master()) {
- return OLED_ROTATION_270; // flips the display 180 degrees if offhand
- }
- return OLED_ROTATION_270;
-}
-
-# define L_BASE 0
-# define L_GAME 2
-# define L_LOWER 4
-# define L_RAISE 6
-# define L_ADJUST 8
-
-void oled_render_layer_state(void) {
- oled_write_P(PSTR("Layer"), false);
- switch (layer_state) {
- case L_BASE:
- oled_write_ln_P(PSTR("Main"), false);
- break;
- case L_GAME:
- oled_write_ln_P(PSTR("Game"), false);
- break;
- case L_LOWER:
- oled_write_ln_P(PSTR("Bot"), false);
- break;
- case L_RAISE:
- oled_write_ln_P(PSTR("Top"), false);
- break;
-// case L_ADJUST:
-// case L_ADJUST | L_LOWER:
-// case L_ADJUST | L_RAISE:
-// case L_ADJUST | L_LOWER | L_RAISE:
-// oled_write_ln_P(PSTR("Comb"), false);
-// break;
- }
-}
-
-char keylog_str[24] = {};
-
-const char code_to_name[60] = {
- ' ', ' ', ' ', ' ', 'a', 'b', 'c', 'd', 'e', 'f',
- 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p',
- 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z',
- '1', '2', '3', '4', '5', '6', '7', '8', '9', '0',
- 'R', 'E', 'B', 'T', '_', '-', '=', '[', ']', '\\',
- '#', ';', '\'', '`', ',', '.', '/', ' ', ' ', ' '};
-
-void set_keylog(uint16_t keycode, keyrecord_t *record) {
- char name = ' ';
- if ((keycode >= QK_MOD_TAP && keycode <= QK_MOD_TAP_MAX) || (keycode >= QK_LAYER_TAP && keycode <= QK_LAYER_TAP_MAX)) {
- keycode = keycode & 0xFF;
- }
- if (keycode < 60) {
- name = code_to_name[keycode];
- }
-
- // update keylog
- snprintf(keylog_str, sizeof(keylog_str), "%dx%d, k%2d : %c", record->event.key.row, record->event.key.col, keycode, name);
-}
-
-void oled_render_keylog(void) { oled_write(keylog_str, false); }
-
-// void render_bootmagic_status(bool status) {
-// /* Show Ctrl-Gui Swap options */
-// static const char PROGMEM logo[][2][3] = {
-// {{0x97, 0x98, 0}, {0xb7, 0xb8, 0}},
-// {{0x95, 0x96, 0}, {0xb5, 0xb6, 0}},
-// };
-// if (status) {
-// oled_write_ln_P(logo[0][0], false);
-// oled_write_ln_P(logo[0][1], false);
-// } else {
-// oled_write_ln_P(logo[1][0], false);
-// oled_write_ln_P(logo[1][1], false);
-// }
-//}
-void render_bootmagic_status(void) {
- /* Show Ctrl-Gui Swap options */
- static const char PROGMEM logo[][2][3] = {
- {{0x97, 0x98, 0}, {0xb7, 0xb8, 0}},
- {{0x95, 0x96, 0}, {0xb5, 0xb6, 0}},
- };
- oled_write_P(PSTR("BTMGK"), false);
- oled_write_P(PSTR(""), false);
- if (!keymap_config.swap_lctl_lgui) {
- oled_write_P(logo[1][0], false);
- oled_write_P(PSTR(" "), false);
- oled_write_P(logo[1][1], false);
- } else {
- oled_write_P(logo[0][0], false);
- oled_write_P(PSTR(" "), false);
- oled_write_P(logo[0][1], false);
- }
- oled_write_P(PSTR(" NKRO "), keymap_config.nkro);
- oled_write_P(PSTR("WPM: "), false);
-
- char wpm[6];
- itoa(get_current_wpm(), wpm, 10);
- oled_write_ln(wpm, false);
-}
-
-bool oled_task_user(void) {
- if (is_keyboard_master()) {
- oled_render_layer_state();
- oled_render_keylog();
- render_bootmagic_status();
-
-# ifdef LUNA_ENABLE
- led_usb_state = host_keyboard_led_state();
- render_luna(0, 13);
-# endif
- } else {
-# ifdef OCEAN_DREAM_ENABLE
- render_stars();
-# endif
- }
- return false;
-}
-
-#endif // OLED_ENABLE
diff --git a/users/snowe/oled_setup.h b/users/snowe/oled_setup.h
deleted file mode 100644
index 7281dcd766..0000000000
--- a/users/snowe/oled_setup.h
+++ /dev/null
@@ -1,30 +0,0 @@
-/*
- * Copyright 2021 Tyler Thrailkill (@snowe/@snowe2010) <tyler.b.thrailkill@gmail.com>
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-#pragma once
-
-#include "quantum.h"
-#ifdef OLED_ENABLE
-# include "oled_driver.h"
-# define OLED_RENDER_WPM_COUNTER " WPM: "
-#endif
-#ifdef LUNA_ENABLE
-# include "luna.h"
-#endif
-#ifdef OCEAN_DREAM_ENABLE
-# include "ocean_dream.h"
-#endif
diff --git a/users/snowe/readme.md b/users/snowe/readme.md
deleted file mode 100644
index ff45c9df29..0000000000
--- a/users/snowe/readme.md
+++ /dev/null
@@ -1,10 +0,0 @@
-# Welcome
-
-Welcome to my userspace.
-
-There's nothing really outstanding here, except the [Ocean Dream](readme_ocean_dream.md)
-animation I made.
-
-A lot of the code for my wrappers/keymaps came from other users.
-
-I will probably update this with more in-depth information later.
diff --git a/users/snowe/readme_ocean_dream.md b/users/snowe/readme_ocean_dream.md
deleted file mode 100644
index fd6de1bca7..0000000000
--- a/users/snowe/readme_ocean_dream.md
+++ /dev/null
@@ -1,258 +0,0 @@
-# Ocean Dream
-
-Tapping away at your IMX Corne with Box Jades, you feel yourself
-drifting off, into a soundscape of waves and rustling leaves.
-You open your eyes only to find yourself in an _Ocean Dream_.
-
-Introducing, **Ocean Dream**, an animation for keyboards with tall OLED
-screens. Built for 128x32 screens, this animation should work for 128x64
-at least, though it hasn't been tested there.
-
-Completely customizable, you can change everything about the animation,
-from the number of falling stars, to how likely a star is to twinkle, and
-even if the moon has phases or not.
-
-# Installation
-
-Installation is easy.
-
-1. Add `ocean.h` and `ocean.c` to your keyboard folder or userspace.
-2. In your `keymap.c` or wherever you handle your oled code, add
-```c
-# ifdef OCEAN_DREAM_ENABLE
- render_stars();
-# endif
-```
-to `oled_task_user(void)`, where you would like (see [my keymap](../../keyboards/crkbd/keymaps/snowe/keymap.c) for an example)
-3. In your `keymap.c` or wherever you handle your process_record code,
- add an event that sets `is_calm` when you press `ctrl`
-```c
-bool process_record_user(uint16_t keycode, keyrecord_t *record) {
- switch (keycode) {
- case KC_LCTL:
- case KC_RCTL:
-#ifdef OCEAN_DREAM_ENABLE
- is_calm = (record->event.pressed) ? true : false;
-#endif
- break;
- }
- return true;
-}
-```
-4. In your `rules.mk` to make it easier to turn the animation on/off, add
-```makefile
-ifeq ($(strip $(OLED_ENABLE)), yes)
- #... your code here...
-
- ifdef OCEAN_DREAM_ENABLE
- ifeq ($(strip $(OCEAN_DREAM_ENABLE)), yes)
- SRC += ocean_dream.c
- OPT_DEFS += -DOCEAN_DREAM_ENABLE
- endif
- endif
- ifndef OCEAN_DREAM_ENABLE
- SRC += ocean_dream.c
- OPT_DEFS += -DOCEAN_DREAM_ENABLE
- endif
-endif
-```
-
-You're done! Now you can enable **Ocean Dream** by simply turning on the OLED feature
-```makefile
-OLED_ENABLE = yes
-```
-
-And if you want to disable it without turning off the OLED Driver you can simply set
-```makefile
-OCEAN_DREAM_ENABLE = no
-```
-
-# Settings
-
-**Ocean Dream** comes with several different animations, all individually configurable:
-
-* 🌌 Stars that twinkle
-* 🌠 Meteor showers that get more vibrant the faster you type
-* 🌊 Waves that get rougher the faster you type
-* 🏝 An island with a palm tree that blows in the wind the faster you type
-* 🌗 A moon that goes through the moon phases (or not, your choice!)
-
-Each feature can be individually turned on and off, with a simple `#define`.
-
-You can see all the options and more documentation by looking at `ocean_dream.h`.
-
-All options come enabled by default.
-
-## Global Flags:
-
-### Toggles:
-
-You can toggle on/off any features using these flags:
-
-* `ENABLE_MOON` // Uses 182 bytes
-* `ENABLE_WAVE` // Uses 844 bytes
-* `ENABLE_SHOOTING_STARS` // Uses 872 bytes
-* `ENABLE_ISLAND`
-* `ENABLE_STARS` // Uses 606 bytes
-
-### Global Configuration:
-
-* `STARRY_NIGHT_ANIM_FRAME_DURATION` - configures how long each frame lasts in ms
-* `NUMBER_OF_FRAMES` - configures the number of frames that constitute a single 'round trip' of animation.
- Enables keeping animations in sync/timed with each other.
- Probably shouldn't touch this, not sure how stuff will work if it's changed.
- If changed should probably be multiple of 1, 2, 3, 4, and 5
-* `WIDTH` - for vertical displays, configures the width (the shortest measurement of your display). defaults to `OLED_DISPLAY_HEIGHT`
-* `HEIGHT` - for vertical displays, configures the height (the longest measurement of your display). defaults to `OLED_DISPLAY_WIDTH`
-
-## Stars
-
-### Description
-
-The 🌌 stars animation is a background of slowly twinkling stars.
-The stars are built on a grid of sorts, where each cell of the grid
-is 8x8 pixels with 1 star per cell. There is a probability of any
-star twinkling on any given frame, decided by the corresponding flags.
-
-### Flags
-
-Enabled with the `#define ENABLE_STARS` directive.
-
-The stars come with several configuration options:
-
-* `STARS_PER_LINE` - configures the number of stars per line. Defaulting to 4, this would
- mean that you have 4 stars across each line (8x32 on a 128x32 display), where each star
- is in a 8x8 grid
-* `NUMBER_OF_STAR_LINES` - configures the number of lines to fill up with stars.
- Defaults to 16, filling the whole display.
-* `TWINKLE_PROBABILITY` - configures the probability of a star twinkling on a given frame.
-* `STAR_ANIMATION_SPEED` - configures the number of frames you want to animate the star at.
- Must be equal to or lower than `NUMBER_OF_FRAMES`.
- Example:
- ```c
- #define NUMBER_OF_FRAMES 20
- #define STAR_ANIMATION_SPEED 5
- ```
- would result in the star animation happening every 4 frames. 20 would result in every frame,
- 1 would be once every 20 frames. This essentially changes how fast stars will twinkle, but
- does not change the probability of the stars twinkling.
-
-## Moon
-
-### Description
-
-The 🌗 moon animation is an 8x8 animation of a moon, or, if you are running out of program memory, you
-can set it to just a static crescent moon, with no animation.
-
-### Flags
-
-Enabled with the `#define ENABLE_MOON` directive.
-
-The moon comes with only a few configuration options:
-
-* `STATIC_MOON` - include this directive if you want your moon to have no animation. It will simply be a static crescent
- moon, only taking up 6 bytes of space. If you do not include this directive, then the moon will have an animation.
- The default is a moon with animation.
-* `MOON_LINE` - defines the line that the moon sits on. Default is `4`. (see [reference](#reference))
-* `MOON_COLUMN` - defines the column that the moon sits at. Default is `4`. (see [reference](#reference))
-* `ANIMATE_MOON_EVERY_N_FRAMES` - only enabled when `STATIC_MOON` is disabled, this affects how often the moon changes phases.
- Example:
- ```c
- #define STARRY_NIGHT_ANIM_FRAME_DURATION 30
- #ifndef STATIC_MOON
- # define ANIMATE_MOON_EVERY_N_FRAMES 100
- #endif
- ```
- would result in the moon changing phases every 3000ms, or every 3 seconds.
-
-## Ocean
-
-### Description
-
-The 🌊 ocean animation is a full width animation of ocean waves, where the waves get rougher the faster you type.
-You can configure the boundaries for each degree of _wave ferocity_ as well as how fast the ocean/waves move.
-
-### Flags
-
-* `OCEAN_LINE` - where to render the ocean at. Defaults to `14`. (see [reference](#reference))
-* `OCEAN_ANIMATION_SPEED` - configures the number of frames you want to animate the ocean at.
- Must be equal to or lower than `NUMBER_OF_FRAMES`.
- Example:
- ```c
- #define NUMBER_OF_FRAMES 20
- #define OCEAN_ANIMATION_SPEED 5
- ```
- would result in the ocean animation happening every 4 frames. 20 would result in every frame,
- 1 would be once every 20 frames. This essentially changes how fast the waves will move.
-* `WAVE_CALM` - Defines the WPM at which the _Wave Ferocity_ kicks up.
- At any WPM between `WAVE_CALM` and `WAVE_HEAVY_STORM`, the waves will be just tiny ripples.
-* `WAVE_HEAVY_STORM` - Defines the WPM at which the _Wave Ferocity_ kicks up to medium.
- At any WPM between `WAVE_HEAVY_STORM` and `WAVE_HURRICANE`, the waves will be medium sized waves.
-* `WAVE_HURRICANE` - Defines the WPM at which the _Wave Ferocity_ kicks up to the last notch.
- At any WPM above `WAVE_HURRICANE`, the waves will be torrential.
-
-## Shooting Stars
-
-The 🌠 shooting star animation is a full screen animation that renders a meteor shower based on your typing speed. The
-faster you type, the more shooting stars there are!
-
-You can configure many parts of the shooting stars, from shower size, to speed, to length of each trail, to how spaced
-out they are.
-
-Note: Each frame of a shooting star is only 2 pixels in length. This is a design decision, and could probably be changed
-with a decent amount of work, but was chosen for looks and memory constraints.
-
-### Flags
-
-* `SHOOTING_STAR_DELAY` - Decides number of frames to delay, based on modulus, e.g. 12 means 0-11 frames of delay between each shooting star
-* `SHOOTING_STAR_FRAMES` - how long each shooting star will be. A size of `16` will result in shooting stars that are 32 pixels long
-* `MAX_NUMBER_OF_SHOOTING_STARS` - maximum number of shooting stars that can be on screen at the same time
-* `SHOOTING_STAR_WPM_INCREMENT` - every n WPM increase, add an extra star, up to MAX_NUMBER_OF_SHOOTING_STARS
- Example: an increment of 5 would result in 1 shooting star at 5-9wpm, 2 at 10-14, etc.
-* `SHOOTING_STAR_ANIMATION_SPEED` - configures the number of frames you want to animate the shooting stars at.
- Must be equal to or lower than `NUMBER_OF_FRAMES`.
- Example:
- ```c
- #define NUMBER_OF_FRAMES 20
- #define SHOOTING_STAR_ANIMATION_SPEED 5
- ```
- would result in the shooting star animation happening every 4 frames. 20 would result in every frame,
- 1 would be once every 20 frames. This essentially changes how fast the stars move through the sky.
-
-
-## Island
-
-The 🏝 island animation is a 32w x 16h animation of a small island with a single palm tree blowing in the wind. The faster
-you type the harder the palm tree blows in the wind!
-
-Since this animation has significant black space to the left side of the tree, certain design decisions were made to allow the
-shooting stars to still show up in the sky there. This animation should work on any size screen >=32 pixels wide, and you
-can place it anywhere on the screen, but above the ocean is recommended.
-
-### Flags
-
-* `ISLAND_LINE` - where to render the island at. Defaults to `12`. The island is 2 lines tall. (see [reference](#reference))
-* `ISLAND_COLUMN` - where to render the island at. Defaults to `0`. The island is 32 pixels wide. (see [reference](#reference))
-* `ISLAND_CALM` - Defines the WPM at which the _Storm Ferocity_ kicks up.
- At any WPM between `ISLAND_CALM` and `ISLAND_HEAVY_STORM`, the palm tree will just calmly blow in the wind.
-* `ISLAND_HEAVY_STORM` - Defines the WPM at which the _Storm Ferocity_ kicks up.
- At any WPM between `ISLAND_HEAVY_STORM` and `ISLAND_HURRICANE`, the palm tree will be blowing hard in the wind
-* `ISLAND_HURRICANE` - Defines the WPM at which the _Storm Ferocity_ kicks up.
- At any WPM above `ISLAND_HURRICANE`, the palm tree will almost be torn from its roots!
-
-
-# Reference
-
-Any reference to `_LINE` or `COLUMN` refers to setting a cursor position using `oled_set_cursor()`, which uses
-`OLED_FONT_WIDTH` and `OLED_FONT_HEIGHT` internally.
-This will be the top-leftmost pixel of the image, so `_LINE 1` would start at the 9th pixel down and `_COLUMN 1`
-would be the 7th pixel to the right, starting from the topleftmost pixel on the screen.
-
-This code has been untested with different font heights/widths, so you might have to adjust a bit to make it work if you
-have modified those values.
-
-# ToDo
-
-- [ ] don't require `is_calm` as a keyboard event. Not sure if the code will work without it currently.
-- [ ] make all the stars twinkle brightly based on keypresses rather than timed. Not just a movement twinkle, but a larger
- 'full' twinkle, where the star actually gets bigger. This will be quite difficult, thus is left out of the v1.
diff --git a/users/snowe/rules.mk b/users/snowe/rules.mk
deleted file mode 100644
index f188c90229..0000000000
--- a/users/snowe/rules.mk
+++ /dev/null
@@ -1,27 +0,0 @@
-
-
-ifeq ($(strip $(OLED_ENABLE)), yes)
- SRC += oled_setup.c
-
- ifdef OCEAN_DREAM_ENABLE
- ifeq ($(strip $(OCEAN_DREAM_ENABLE)), yes)
- SRC += ocean_dream.c
- OPT_DEFS += -DOCEAN_DREAM_ENABLE
- endif
- endif
- ifndef OCEAN_DREAM_ENABLE
- SRC += ocean_dream.c
- OPT_DEFS += -DOCEAN_DREAM_ENABLE
- endif
-
- ifdef LUNA_ENABLE
- ifeq ($(strip $(LUNA_ENABLE)), yes)
- SRC += luna.c
- OPT_DEFS += -DLUNA_ENABLE
- endif
- endif
- ifndef LUNA_ENABLE
- SRC += luna.c
- OPT_DEFS += -DLUNA_ENABLE
- endif
-endif
diff --git a/users/snowe/snowe.h b/users/snowe/snowe.h
deleted file mode 100644
index caba9d21bc..0000000000
--- a/users/snowe/snowe.h
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
-Copyright 2021 Tyler Thrailkill <@snowe/@snowe2010>
-
-This program is free software: you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program. If not, see <http://www.gnu.org/licenses/>.
-*/
-
-
-#pragma once
-#include QMK_KEYBOARD_H
-
-#ifndef QMK_FIRMWARE_SNOWE_H
-# define QMK_FIRMWARE_SNOWE_H ;
-#endif // QMK_FIRMWARE_SNOWE_H
-
-#include "wrappers.h"
-#include "keycode_aliases.h"
-
-#undef PERMISSIVE_HOLD
-
-//#if defined(RGBLIGHT_ENABLE)
-//# include "rgb_stuff.h"
-//#endif
-//#if defined(RGB_MATRIX_ENABLE)
-//# include "rgb_matrix_stuff.h"
-//#endif
-#ifdef OLED_ENABLE
-# include "oled_setup.h"
-#endif
-
-
-enum layers { _MAIN, _GAMING, _LOWER, _UPPER, _ADJUST };
diff --git a/users/snowe/wrappers.h b/users/snowe/wrappers.h
deleted file mode 100644
index cf32a345c5..0000000000
--- a/users/snowe/wrappers.h
+++ /dev/null
@@ -1,92 +0,0 @@
-/* Copyright 2020 Christopher Courtney, aka Drashna Jael're (@drashna) <drashna@live.com>
- * 2021 Tyler Thrailkill (@snowe/@snowe2010) <tyler.b.thrailkill@gmail.com>
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-#pragma once
-#include "snowe.h"
-
-/*
-Since our quirky block definitions are basically a list of comma separated
-arguments, we need a wrapper in order for these definitions to be
-expanded before being used as arguments to the LAYOUT_xxx macro.
-*/
-#if (!defined(LAYOUT) && defined(KEYMAP))
-# define LAYOUT KEYMAP
-#endif
-
-//#define LAYOUT_ergodox_wrapper(...) LAYOUT_ergodox(__VA_ARGS__)
-//#define LAYOUT_ergodox_pretty_wrapper(...) LAYOUT_ergodox_pretty(__VA_ARGS__)
-#define KEYMAP_wrapper(...) LAYOUT(__VA_ARGS__)
-#define LAYOUT_wrapper(...) LAYOUT(__VA_ARGS__)
-//#define LAYOUT_ortho_4x12_wrapper(...) LAYOUT_ortho_4x12(__VA_ARGS__)
-//#define LAYOUT_ortho_5x12_wrapper(...) LAYOUT_ortho_5x12(__VA_ARGS__)
-//#define LAYOUT_gergo_wrapper(...) LAYOUT_gergo(__VA_ARGS__)
-
-/*
-Blocks for each of the four major keyboard layouts
-Organized so we can quickly adapt and modify all of them
-at once, rather than for each keyboard, one at a time.
-And this allows for much cleaner blocks in the keymaps.
-For instance Tap/Hold for Control on all of the layouts
-
-NOTE: These are all the same length. If you do a search/replace
- then you need to add/remove underscores to keep the
- lengths consistent.
-*/
-
-#define _________________QWERTY_L1_________________ KC_Q, KC_W, KC_E, KC_R, KC_T
-#define _________________QWERTY_L2_________________ KC_A, KC_S, KC_D, KC_F, KC_G
-#define _________________QWERTY_L3_________________ KC_Z, KC_X, KC_C, KC_V, KC_B
-
-#define _________________QWERTY_R1_________________ KC_Y, KC_U, KC_I, KC_O, KC_P
-#define _________________QWERTY_R2_________________ KC_H, KC_J, KC_K, KC_L, KC_SCLN
-#define _________________QWERTY_R3_________________ KC_N, KC_M, KC_COMM, KC_DOT, KC_SLASH
-
-
-#define ________________NUMBER_LEFT________________ KC_1, KC_2, KC_3, KC_4, KC_5
-#define ________________NUMBER_RIGHT_______________ KC_6, KC_7, KC_8, KC_9, KC_0
-//#define ________________NUMBER_RIGHT_______________ KC_6, KC_7, TD(TD_8_UP), KC_9, KC_0
-#define _________________FUNC_LEFT_________________ KC_F1, KC_F2, KC_F3, KC_F4, KC_F5
-#define _________________FUNC_RIGHT________________ KC_F6, KC_F7, KC_F8, KC_F9, KC_F10
-
-#define ___________________BLANK___________________ _______, _______, _______, _______, _______
-
-
-#define _________________LOWER_L1__________________ KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC
-#define _________________LOWER_L2__________________ _________________FUNC_LEFT_________________
-#define _________________LOWER_L3__________________ _________________FUNC_RIGHT________________
-
-#define _________________LOWER_R1__________________ KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN
-#define _________________LOWER_R2__________________ _______, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR
-#define _________________LOWER_R3__________________ _______, KC_LEFT, KC_UP , KC_DOWN, KC_RGHT
-
-
-#define _________________RAISE_L1__________________ ________________NUMBER_LEFT________________
-#define _________________RAISE_L2__________________ _______, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC
-#define _________________RAISE_L3__________________ ___________________BLANK___________________
-
-#define _________________RAISE_R1__________________ ________________NUMBER_RIGHT_______________
-#define _________________RAISE_R2__________________ KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, _______
-#define _________________RAISE_R3__________________ _______, KC_HOME, KC_PGDN, KC_PGUP, KC_END
-
-
-
-#define _________________ADJUST_L1_________________ RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, RGB_TOG
-#define _________________ADJUST_L2_________________ MU_TOGG, TG(_GAMING), AU_ON, AU_OFF, AG_NORM
-#define _________________ADJUST_L3_________________ RGB_RMOD,RGB_HUD,RGB_SAD, RGB_VAD, _______
-#define _________________ADJUST_R1_________________ _______, _______, _______, _______, _______
-#define _________________ADJUST_R2_________________ KC_RESET,CG_TOGG, _______, _______, _______
-#define _________________ADJUST_R3_________________ _______, KC_MNXT, KC_VOLU, KC_VOLD, KC_MPLY
diff --git a/users/spacebarracecar/config.h b/users/spacebarracecar/config.h
deleted file mode 100644
index 748c047155..0000000000
--- a/users/spacebarracecar/config.h
+++ /dev/null
@@ -1,2 +0,0 @@
-#pragma once
-#define TAPPING_TERM 200
diff --git a/users/spacebarracecar/readme.md b/users/spacebarracecar/readme.md
deleted file mode 100644
index 3d9ceb80c4..0000000000
--- a/users/spacebarracecar/readme.md
+++ /dev/null
@@ -1,111 +0,0 @@
-# SpacebarRacecar Userspace
-
-The main purpose of this userspace is to keep my personal keymaps clean by moving shared code in here and also allowing me to easily change all my keymaps at once. However it also contains code that might be interesting to QMK Users living in Germany. Most of this code will be explained here.
-
-
-## US Layout Keys for German PCs
-
-I'm using the US Ansi layout however I'm living in Germany which means that every PC here has its input language set to German. My goal was to create custom keycodes that emulate the US Keys so that I can plug my keyboards into any German PC and have them working without changing any settings.
-
-### How to use
-
-- To activate the custom keycodes set GERMAN_ENABLE = yes in the keyboards rules.mk file.
-- The keycodes are listed and explained in [spacebarracecar.h](spacebarracecar.h) under `enum userspace_custom_keycodes`.
-- The keycodes are handled by the `process_record_user` function which is now located in [spacebarracecar.c](spacebarracecar.c). To change keyboard specific configuration `process_record_keymap` is used (see [drashna userspace readme](../drashna/readme.md) for better explanation).
-- There is a predefined `_DEADKEY` layer in [spacebarracecar.h](spacebarracecar.h) under `enum userspace_layers`. Shifted CU_QUOT enables the dead key layer, just like KC_QUOT would when using the US International layout. (See `enum userspace_custom_keycodes` for more explanation).
-- On Windows grave and circonflexe are defined as dead keys when using the standard german layout. Those are automatically escaped when using the custom keycodes. `CU_ESCT` can be used to enable/disable this behavior.
-- For a complete example see my [planck](../../keyboards/planck/keymaps/spacebarracecar/keymap.c) keymap.
-
-### How it works
-
-Creating the custom keycodes was not a trivial task because it is necessary that they are able to send different keycodes depending on the physical shift state. Also the shift state of the actual send keycodes has to be completely independent of the physical shift state. At the same time it has to be ensured that shift never gets stuck or disabled accidentaly.
-
-(Shift state: If shift keycode is registered; Physical shift state: If shift key is actually pressed)
-
-Here is an example for a custom *US Equal* keycode that illustrates the problem:
-
-| Physical Shift State | Custom keycode | Actual send keycodes |
-|----------------------|----------------|----------------------|
-| Unshifted | = | Shifted DE_0 |
-| Shifted | + | Unshifted DE_PLUS |
-
-#### Tracking the physical shift state
-
-To track the physical shift state there are two custom left and right shift keycodes `CU_LSFT` and `CU_RSFT`. These track the current physical shift state using two booleans `lshift` and `rshift`. To make things easier both custom shifts use KC_LSFT. A space cadet shift functionality is also included. The preexisting space cadet shift implementation could not be used because it doesn't reset when custom keycodes are pressed and therefore produces unwated parenthesis.
-
-#### Custom keycode templates
-
-To ease the creation of custom keycodes there are a few templates defined in [spacebarracecar.h](spacebarracecar.h).
-
-- `SHIFT_NORM(kc1, kc2)` Sends independent keycodes kc1 and kc2 depending on physical shift state without changing shift state.
-- `SHIFT_SWITCH(kc1, kc2)` Sends independent keycodes kc1 and kc2 depending on physical shift state while flipping shift state.
-- `SHIFT_ALL(kc1, kc2)` Sends independent keycodes kc1 and kc2 depending on physical shift state while always sending shift.
-- `SHIFT_NO(kc1, kc2)` Sends independent keycodes kc1 and kc2 depending on physical shift state while never sending shift.
-- `SHIFT_ALGR(kc1, kc2)` Sends independent keycodes kc1 and kc2 depending on physical shift state while never sending shift and always sending ralt.
-- `UML(kc)` Sends keycode kc without changing shift state and then escapes the `_DEADKEY` layer.
-
-Here is `SHIFT_NORM` as an example:
-```c
-#define SHIFT_NORM(kc1, kc2) \
-if (record->event.pressed) { \
- timer_timeout(); \
- if (lshift || rshift) { \
- register_code(KC_LSFT); \
- unregister_code(kc2); \
- register_code(kc2); \
- add_to_prev(kc2); \
- } else { \
- unregister_code(KC_LSFT); \
- unregister_code(kc1); \
- register_code(kc1); \
- } \
-} else { \
- unregister_code(kc1); \
- unregister_code(kc2); \
-} \
-return false;
-```
-
-It is noticeable that before registering a keycode the same keycode gets unregistered first. The reason for this is that there can now be two physical keys that use the same keycode only with different shift states. When rolling those two keys the keycode has to be unregistered first, otherwise the second key doesn't register. Also noticable is that sometimes the `add_to_prev` function is called. This will be explained later. The `timer_timeout` function is necessary to reset the timers of the custom space cadet shift functionality.
-
-It's worth mentioning that `SHIFT_ALGR` unlike the other templates doesn't allow repetition of characters when held. This is because it would otherwise require extensive checking of physical ralt status similar to shift to prevent ralt from getting stuck.
-
-#### Ensuring that shift state is always correct when pressing normal keycodes
-
-To ensure that non custom keycodes always get send with the correct shift state the default case in `process_record_user` includes a physical shift check that sets shift accordingly before registering the keycode. Also `timer_timeout` is always called to reset the space cadet shift timers to prevent unwanted parenthesis.
-
-```c
-default:
- if(record->event.pressed) {
- timer_timeout();
-
- #ifdef GERMAN_ENABLE
- if (lshift || rshift)
- register_code(KC_LSFT);
- else
- unregister_code(KC_LSFT);
- #endif
-
- }
- return process_record_keymap(keycode, record);
-```
-
-#### Ensuring that custom keycodes always produce the correct character
-
-When very specific key combinations that include custom keycodes and/or shift are pressed it can happen that wrong characters are produced due to changing shift states. The previously mentioned `add_to_prev` function is there to prevent that. It can be used to add a keycode to the `prev_kcs` array that can hold up to 6 keycodes. On various occasions, but mainly when shift is released `unreg_prev` is called, which then unregisters all saved keycodes.
-
-For real use this is probably not needed, but it doesn't hurt either.
-
-#### Adapting the templates for other languages
-
-In theory the templates can be used to create custom keycodes that map any layout to any other layout.
-
-## Other stuff
-
-### Custom Nav/Esc Key
-
-Since I'm always using a navigation layer with all my keyboards there is a `_NAV` layer predefined in [spacebarracecar.h](spacebarracecar.h) under `enum userspace_layers`. In addition to that I wanted to have a keycode that activates the navigation layer when held, but acts as Escape when pressed. In QMK there already exists `LT(layer, kc)`, however I found that there is some amount of lag before the layer is actived. Therefore I created a custom keycode CU_NAV that does the same without lag using a custom timer. Since I already need timers for the custom space cadet shift implementing this was very easy by adding the timer to the `timer_timeout` function.
-
-### Gamemode
-
-The userspace includes the custom keycode `CU_GAME` that is used to flip a boolean variable called `game`. That variable is used to enable/disable windows keys and space cadet shift. In my [planck keymap](../../keyboards/planck/keymaps/spacebarracecar/keymap.c) it also makes Lower act like Space which is more comfortable when resting on wasd and it could also be used to change various other things when gaming.
diff --git a/users/spacebarracecar/rules.mk b/users/spacebarracecar/rules.mk
deleted file mode 100644
index 319e887ae3..0000000000
--- a/users/spacebarracecar/rules.mk
+++ /dev/null
@@ -1,5 +0,0 @@
-SRC += spacebarracecar.c
-
-ifeq ($(strip $(GERMAN_ENABLE)), yes)
- OPT_DEFS += -DGERMAN_ENABLE
-endif
diff --git a/users/spacebarracecar/spacebarracecar.c b/users/spacebarracecar/spacebarracecar.c
deleted file mode 100644
index 3141b8758e..0000000000
--- a/users/spacebarracecar/spacebarracecar.c
+++ /dev/null
@@ -1,352 +0,0 @@
-#include "spacebarracecar.h"
-
-#ifdef GERMAN_ENABLE
-// These indicate if left and right shift are physically pressed
-bool lshift = false;
-bool rshift = false;
-
-// Interrupt and times for space cadet shift
-bool lshiftp = false;
-bool rshiftp = false;
-uint16_t lshift_timer = 0;
-uint16_t rshift_timer = 0;
-
-// Number of items that are saved in prev_kcs
-uint8_t prev_indx = 0;
-// Used to save the last 6 actual keycodes activated by frankenkeycodes
-uint16_t prev_kcs[6] = {0, 0, 0, 0, 0, 0};
-
-// If true the deadkey characters grave and circonflexe are not automatically escaped
-bool esct = false;
-
-/*
-Used to add a keycode to a prev_kcs to remember it.
-When full the last code gets discarded and replaced by
-the new one.
-*/
-void add_to_prev(uint16_t kc){
- for (int i=0; i<prev_indx; i++){
- if (kc == prev_kcs[i])
- return;
- }
- if (prev_indx == 6){
- for (int i=5; i>0; i--){
- prev_kcs[i] = prev_kcs[i-1];
- }
- prev_kcs[0] = kc;
- } else {
- prev_kcs[prev_indx] = kc;
- prev_indx++;
- }
-}
-
-/*
-Unregisters all codes saved in prev_kcs and resets prev_indx.
-gets called on multiple occasions mainly when shift is released
-and when frankenkeycodes are pressed. Prevents output of
-wrong characters when really specific key combinations
-that would never occur during normal usage are pressed.
-*/
-void unreg_prev(void){
- if (prev_indx == 0)
- return;
- for (int i=0; i<prev_indx; i++){
- unregister_code(prev_kcs[i]);
- }
- prev_indx = 0;
-}
-#endif
-
-// Interrupt and times for Nav/Esc
-bool navesc = false;
-uint16_t navesc_timer = 0;
-
-// If true Gui keys and Space Cadet Shift get disabled
-bool game = false;
-
-// Interrupts all timers
-void timer_timeout(void){
- #ifdef GERMAN_ENABLE
- lshiftp = false;
- rshiftp = false;
- #endif
- navesc = false;
- timer_timeout_keymap();
-}
-
-__attribute__((weak))
-void timer_timeout_keymap(void){
-}
-
-bool process_record_user(uint16_t keycode, keyrecord_t *record) {
- switch (keycode) {
- case CU_GAME:
- if(record->event.pressed) {
- timer_timeout();
- game = !game;
- }
- // allows keymap to execute further commands when CU_GAME is pressed, for example enabling a macro layer
- return process_record_keymap(keycode, record) && false;
- case KC_LGUI:
- case KC_RGUI:
- if (record->event.pressed)
- timer_timeout();
- if (game)
- return false;
- else
- return true;
- case CU_NAV:
- if(record->event.pressed) {
- navesc = true;
- navesc_timer = timer_read();
- layer_on(_NAV);
- } else {
- if (timer_elapsed(navesc_timer) < TAPPING_TERM && navesc) {
- register_code(KC_ESC);
- unregister_code(KC_ESC);
- }
- layer_off(_NAV);
- }
- return false;
- case KC_P00:
- if(record->event.pressed) {
- timer_timeout();
- register_code(KC_P0);
- unregister_code(KC_P0);
- register_code(KC_P0);
- unregister_code(KC_P0);
- }
- return false;
-
- #ifdef RGBLIGHT_ENABLE
- case CU_RGBV:
- if(record->event.pressed) {
- timer_timeout();
- if (rgblight_get_val()+32>255)
- rgblight_sethsv(rgblight_get_hue(), rgblight_get_sat(), 31);
- else
- rgblight_sethsv(rgblight_get_hue(), rgblight_get_sat(), rgblight_get_val()+32);
- }
- return false;
- #endif
-
- #ifdef GERMAN_ENABLE
- case CU_LSFT:
- if(record->event.pressed) {
- lshiftp = true;
- lshift_timer = timer_read();
- unregister_code(KC_LSFT);
- register_code(KC_LSFT);
- lshift = true;
- } else {
- if (timer_elapsed(lshift_timer) < TAPPING_TERM && lshiftp && !game) {
- register_code(KC_LSFT);
- register_code(KC_8);
- unregister_code(KC_8);
- unregister_code(KC_LSFT);
- }
- unreg_prev();
- if (!rshift)
- unregister_code(KC_LSFT);
- lshift = false;
- }
- return false;
- case CU_RSFT:
- if(record->event.pressed) {
- rshiftp = true;
- rshift_timer = timer_read();
- unregister_code(KC_LSFT);
- register_code(KC_LSFT);
- rshift = true;
- } else {
- if (timer_elapsed(rshift_timer) < TAPPING_TERM && rshiftp && !game) {
- register_code(KC_LSFT);
- register_code(KC_9);
- unregister_code(KC_9);
- unregister_code(KC_LSFT);
- }
- unreg_prev();
- if (!lshift)
- unregister_code(KC_LSFT);
- rshift = false;
- }
- return false;
- case CU_ESCT:
- if(record->event.pressed) {
- timer_timeout();
- esct = !esct;
- }
- return false;
- case CU_AE:
- UML(DE_ADIA)
- case CU_OE:
- UML(DE_ODIA)
- case CU_UE:
- UML(DE_UDIA)
- case CU_SS:
- if(record->event.pressed) {
- timer_timeout();
- unregister_code(KC_LSFT);
- register_code(DE_SS);
- unregister_code(DE_SS);
- if (lshift || rshift)
- register_code(KC_LSFT);
- layer_off(_DEADKEY);
- }
- return false;
- case CU_DDQ:
- if(record->event.pressed) {
- timer_timeout();
- register_code(KC_LSFT);
- register_code(KC_2);
- unregister_code(KC_2);
- if (!lshift && !rshift)
- unregister_code(KC_LSFT);
- layer_off(_DEADKEY);
- }
- return false;
- case CU_ED:
- if(record->event.pressed) {
- timer_timeout();
- layer_off(_DEADKEY);
- }
- return false;
- case CU_GRV:
- if(record->event.pressed) {
- timer_timeout();
- if (lshift || rshift){
- unregister_code(KC_LSFT);
- register_code(KC_ALGR);
- unregister_code(DE_PLUS);
- register_code(DE_PLUS);
- unregister_code(DE_PLUS);
- unregister_code(KC_ALGR);
- register_code(KC_LSFT);
- } else {
- register_code(KC_LSFT);
- unregister_code(DE_ACUT);
- register_code(DE_ACUT);
- unregister_code(DE_ACUT);
- unregister_code(KC_LSFT);
- if (!esct) {
- register_code(KC_SPC);
- unregister_code(KC_SPC);
- }
- }
- }
- return false;
- case CU_CIRC:
- if(record->event.pressed) {
- timer_timeout();
- unregister_code(KC_LSFT);
- unregister_code(DE_CIRC);
- register_code(DE_CIRC);
- unregister_code(DE_CIRC);
- if (!esct) {
- register_code(KC_SPC);
- unregister_code(KC_SPC);
- }
- if (lshift || rshift)
- register_code(KC_LSFT);
- }
- return false;
- case CU_QUOT:
- if(record->event.pressed){
- timer_timeout();
- register_code(KC_LSFT);
- if (lshift || rshift){
- layer_on(_DEADKEY);
- } else {
- unregister_code(DE_HASH);
- register_code(DE_HASH);
- add_to_prev(DE_HASH);
- }
- } else {
- unregister_code(DE_HASH);
- unreg_prev();
- if (lshift || rshift)
- register_code(KC_LSFT);
- else
- unregister_code(KC_LSFT);
- }
- return false;
- case CU_6:
- if(record->event.pressed){
- timer_timeout();
- unregister_code(KC_LSFT);
- if (lshift || rshift){
- unregister_code(DE_CIRC);
- register_code(DE_CIRC);
- unregister_code(DE_CIRC);
- if (!esct) {
- register_code(KC_SPC);
- unregister_code(KC_SPC);
- }
- register_code(KC_LSFT);
- } else {
- register_code(DE_6);
- }
- } else {
- unregister_code(DE_6);
- }
- return false;
- case CU_COMM:
- SHIFT_NO(DE_COMM, DE_LABK)
- case CU_DOT:
- SHIFT_NORM(DE_DOT, DE_LABK)
- case CU_SLSH:
- SHIFT_ALL(DE_7, DE_SS)
- case CU_SCLN:
- SHIFT_ALL(DE_COMM, DE_DOT)
- case CU_3:
- SHIFT_NO(DE_3, DE_HASH)
- case CU_7:
- SHIFT_NORM(DE_7, DE_6)
- case CU_8:
- SHIFT_NORM(DE_8, DE_PLUS)
- case CU_9:
- SHIFT_NORM(DE_9, DE_8)
- case CU_0:
- SHIFT_NORM(DE_0, DE_9)
- case CU_EQL:
- SHIFT_SWITCH(DE_0, DE_PLUS)
- case CU_LBRC:
- SHIFT_ALGR(DE_8, DE_7)
- case CU_RBRC:
- SHIFT_ALGR(DE_9, DE_0)
- case CU_BSLS:
- SHIFT_ALGR(DE_SS, DE_LABK)
- case CU_Z:
- CTRL(DE_Z, KC_Z)
- case CU_Y:
- CTRL(DE_Y, KC_Y)
- case KC_LCTL:
- case KC_RCTL:
- if(!record->event.pressed) {
- timer_timeout();
- unregister_code(KC_Z);
- unregister_code(KC_Y);
- }
- return true;
- #endif
-
- default:
- if(record->event.pressed) {
- timer_timeout();
-
- #ifdef GERMAN_ENABLE
- if (lshift || rshift)
- register_code(KC_LSFT);
- else
- unregister_code(KC_LSFT);
- #endif
-
- }
- return process_record_keymap(keycode, record);
- }
-}
-
-__attribute__((weak))
-bool process_record_keymap(uint16_t keycode, keyrecord_t *record) {
- return true;
-}
diff --git a/users/spacebarracecar/spacebarracecar.h b/users/spacebarracecar/spacebarracecar.h
deleted file mode 100644
index 43bfc5e655..0000000000
--- a/users/spacebarracecar/spacebarracecar.h
+++ /dev/null
@@ -1,247 +0,0 @@
-#pragma once
-
-#include "quantum.h"
-#include "keymap_german.h"
-
-enum userspace_layers {
- _DEADKEY = 14, // Change if more than 16 layers are required
- _NAV
-};
-
-enum userspace_custom_keycodes {
- CU_GAME = SAFE_RANGE, // Toggle game mode on/off
- CU_NAV, // NAV | ESC
- KC_P00, // Numpad double zero
-
- #ifdef GERMAN_ENABLE
- CU_LSFT, // LSFT | (
- CU_RSFT, // LSFT | )
- CU_COMM, // , | <
- CU_DOT, // . | >
- CU_SLSH, // / | ?
- CU_SCLN, // ; | :
- CU_QUOT, // ' | Enable deadkey layer
- CU_GRV, // ` | ~
- CU_CIRC, // ^
- CU_3, // 3 | #
- CU_6, // 6 | ^
- CU_7, // 7 | &
- CU_8, // 8 | *
- CU_9, // 9 | (
- CU_0, // 0 | )
- CU_EQL, // = | +
- CU_LBRC, // [ | {
- CU_RBRC, // ] | }
- CU_BSLS, // \ | |
- CU_Z, // Z | Y in conjunction with ctrl
- CU_Y, // Y | Z in conjunction wiht ctrl
- CU_ESCT, // Toggle escape of grv and circ on/off
- // Deadkey Layer
- CU_AE, // Ä
- CU_OE, // Ö
- CU_UE, // Ü
- CU_SS, // ß
- CU_DDQ, // "
- CU_ED, // Escape deadkey layer
- #endif
-
- #ifdef RGBLIGHT_ENABLE
- CU_RGBV, // Cycle through RGB brightness
- #endif
-
- NEW_SAFE_RANGE // Use for keymap specific keycodes
-};
-
-#ifdef GERMAN_ENABLE
-extern bool lshift;
-extern bool rshift;
-extern bool lshiftp;
-extern bool rshiftp;
-extern uint16_t lshift_timer;
-extern uint16_t rshift_timer;
-
-extern uint8_t prev_indx;
-extern uint16_t prev_kcs[6];
-void add_to_prev(uint16_t kc);
-void unreg_prev(void);
-
-extern bool esct;
-#endif
-
-extern bool navesc;
-extern uint16_t navesc_timer;
-
-extern bool game;
-
-void timer_timeout(void);
-
-void timer_timeout_keymap(void);
-
-bool process_record_keymap(uint16_t keycode, keyrecord_t *record);
-
-#define CTRLX LCTL(KC_X)
-#define CTRLC LCTL(KC_C)
-#define CTRLV LCTL(KC_V)
-
-#define ALTF4 LALT(KC_F4)
-
-#define GUIU LGUI(KC_UP)
-#define GUID LGUI(KC_DOWN)
-#define GUIL LGUI(KC_LEFT)
-#define GUIR RGUI(KC_RIGHT)
-
-#define CTLENT CTL_T(KC_ENT)
-
-#define EMOJI LWIN(KC_DOT)
-
-/*
-Templates for Keys, with custom shifted and non shifted Characters
-*/
-
-// Normal shift status
-#define SHIFT_NORM(kc1, kc2) \
-if (record->event.pressed) { \
- timer_timeout(); \
- if (lshift || rshift) { \
- register_code(KC_LSFT); \
- unregister_code(kc2); \
- register_code(kc2); \
- add_to_prev(kc2); \
- } else { \
- unregister_code(KC_LSFT); \
- unregister_code(kc1); \
- register_code(kc1); \
- } \
-} else { \
- unregister_code(kc1); \
- unregister_code(kc2); \
-} \
-return false;
-
-// Inverted shift status
-#define SHIFT_SWITCH(kc1, kc2) \
-if (record->event.pressed) { \
- timer_timeout(); \
- if (lshift || rshift) { \
- unregister_code(KC_LSFT); \
- unregister_code(kc2); \
- register_code(kc2); \
- add_to_prev(kc2); \
- } else { \
- register_code(KC_LSFT); \
- unregister_code(kc1); \
- register_code(kc1); \
- add_to_prev(kc1); \
- } \
-} else { \
- unregister_code(kc1); \
- unregister_code(kc2); \
- unreg_prev(); \
- if (lshift || rshift) \
- register_code(KC_LSFT); \
- else \
- unregister_code(KC_LSFT); \
-} \
-return false;
-
-// Always shifted
-#define SHIFT_ALL(kc1, kc2) \
-if (record->event.pressed) { \
- timer_timeout(); \
- register_code(KC_LSFT); \
- if (lshift || rshift) { \
- unregister_code(kc2); \
- register_code(kc2); \
- add_to_prev(kc2); \
- } else { \
- unregister_code(kc1); \
- register_code(kc1); \
- add_to_prev(kc1); \
- } \
-} else { \
- unregister_code(kc1); \
- unregister_code(kc2); \
- unreg_prev(); \
- if (lshift || rshift) \
- register_code(KC_LSFT); \
- else \
- unregister_code(KC_LSFT); \
-} \
-return false;
-
-// Never shifted
-#define SHIFT_NO(kc1, kc2) \
-if (record->event.pressed) { \
- timer_timeout(); \
- unregister_code(KC_LSFT); \
- if (lshift || rshift) { \
- unregister_code(kc2); \
- register_code(kc2); \
- add_to_prev(kc2); \
- } else { \
- unregister_code(kc1); \
- register_code(kc1); \
- } \
-} else { \
- unregister_code(kc1); \
- unregister_code(kc2); \
- unreg_prev(); \
- if (lshift || rshift) \
- register_code(KC_LSFT); \
- else \
- unregister_code(KC_LSFT); \
-} \
-return false;
-
-// Always AltGr
-#define SHIFT_ALGR(kc1, kc2) \
-if (record->event.pressed) { \
- timer_timeout(); \
- unregister_code(KC_LSFT); \
- register_code(KC_ALGR); \
- if (lshift || rshift) { \
- unregister_code(kc2); \
- register_code(kc2); \
- unregister_code(kc2); \
- register_code(KC_LSFT); \
- } else { \
- unregister_code(kc1); \
- register_code(kc1); \
- unregister_code(kc1); \
- } \
- unregister_code(KC_ALGR); \
-} \
-return false;
-
-// Different keycode when Ctrl is pressed
-#define CTRL(kc1, kc2) \
-if(record->event.pressed) { \
- timer_timeout(); \
- if (lshift || rshift) \
- register_code(KC_LSFT); \
- else \
- unregister_code(KC_LSFT); \
- if (keyboard_report->mods & (MOD_BIT(KC_LCTL) | MOD_BIT(KC_RCTL))){ \
- register_code(kc2); \
- } else { \
- register_code(kc1); \
- } \
-} else { \
- unregister_code(kc1); \
- unregister_code(kc2); \
-} \
-return false;
-
-// Template for keys on deadkey layer (mostly Umlaute)
-#define UML(kc) \
-if(record->event.pressed) { \
- timer_timeout(); \
- if (lshift || rshift) \
- register_code(KC_LSFT); \
- else \
- unregister_code(KC_LSFT); \
- register_code(kc); \
- unregister_code(kc); \
- layer_off(_DEADKEY); \
-} \
-return false;
diff --git a/users/spidey3/config.h b/users/spidey3/config.h
deleted file mode 100644
index 0b3bf8f723..0000000000
--- a/users/spidey3/config.h
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2022 Joshua Diamond josh@windowoffire.com (@spidey3)
-// SPDX-License-Identifier: GPL-2.0-or-later
-
-#pragma once
-
-#define LED_DISABLE_WHEN_USB_SUSPENDED
-#define RGB_DISABLE_WHEN_USB_SUSPENDED
-
-#ifdef RGBLIGHT_ENABLE
-
-# define RGBLIGHT_LAYERS
-# define RGBLIGHT_MAX_LAYERS 18
-# define RGBLIGHT_LAYER_BLINK
-# define RGBLIGHT_LAYERS_OVERRIDE_RGB_OFF
-# define RGBLIGHT_STARTUP_ANIMATION
-
-# undef RGBLIGHT_EFFECT_CHRISTMAS
-# undef RGBLIGHT_EFFECT_ALTERNATING
-
-# define RGBLIGHT_DEFAULT_HUE 213
-# define RGBLIGHT_DEFAULT_SAT UINT8_MAX
-# define RGBLIGHT_DEFAULT_VAL RGBLIGHT_LIMIT_VAL / 2
-
-# if defined(RGBLIGHT_EFFECT_TWINKLE)
-# define RGBLIGHT_DEFAULT_MODE RGBLIGHT_MODE_TWINKLE
-# elif defined(RGBLIGHT_EFFECT_RAINBOW_MOOD)
-# define RGBLIGHT_DEFAULT_MODE RGBLIGHT_MODE_RAINBOW_MOOD
-# else
-# define RGBLIGHT_DEFAULT_MODE RGBLIGHT_MODE_STATIC_LIGHT
-# endif
-
-#endif
-
-#define UNICODE_SELECTED_MODES UNICODE_MODE_MACOS, UNICODE_MODE_LINUX, UNICODE_MODE_WINCOMPOSE, UNICODE_MODE_EMACS
-
-#define SPI_DEBUG_SCAN_RATE
-
-#undef MANUFACTURER
-#define MANUFACTURER "Window of Fire"
-
-// Some keyboards enable BACKLIGHT_CAPS_LOCK without checking if backlight is enabled.
-// Undef as appropriate to avoid compiler warnings in that case.
-#ifndef BACKLIGHT_ENABLE
-#undef BACKLIGHT_CAPS_LOCK
-#endif
diff --git a/users/spidey3/init.c b/users/spidey3/init.c
deleted file mode 100644
index bd6ea5cac9..0000000000
--- a/users/spidey3/init.c
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright 2022 Joshua Diamond josh@windowoffire.com (@spidey3)
-// SPDX-License-Identifier: GPL-2.0-or-later
-
-#include "spidey3.h"
-
-void keyboard_post_init_user(void) {
-#ifdef RGBLIGHT_ENABLE
- keyboard_post_init_user_rgb();
-#endif
-}
-
-void eeconfig_init_user(void) {
- set_single_persistent_default_layer(_BASE);
-#ifdef UNICODEMAP_ENABLE
- eeconfig_init_user_unicode();
-#endif
-}
-
-#ifdef RGBLIGHT_ENABLE
-void shutdown_user(void) { shutdown_user_rgb(); }
-#endif
diff --git a/users/spidey3/layer_rgb.c b/users/spidey3/layer_rgb.c
deleted file mode 100644
index be76788d21..0000000000
--- a/users/spidey3/layer_rgb.c
+++ /dev/null
@@ -1,486 +0,0 @@
-// Copyright 2022 Joshua Diamond josh@windowoffire.com (@spidey3)
-// SPDX-License-Identifier: GPL-2.0-or-later
-
-#include QMK_KEYBOARD_H
-
-#include "spidey3.h"
-#include "velocikey.h"
-#include <lib/lib8tion/lib8tion.h>
-
-uint32_t rgb_mode;
-uint16_t rgb_hue;
-uint8_t rgb_sat;
-uint8_t rgb_val;
-bool rgb_saved = 0;
-
-extern bool spi_gflock;
-extern uint16_t spi_replace_mode;
-
-static void set_rgb_default(void) {
- rgblight_enable();
- rgblight_sethsv(RGBLIGHT_DEFAULT_HUE, RGBLIGHT_DEFAULT_SAT, RGBLIGHT_DEFAULT_VAL);
- rgblight_mode(RGBLIGHT_DEFAULT_MODE);
-#ifdef VELOCIKEY_ENABLE
- if (velocikey_enabled()) velocikey_toggle();
-#endif
-}
-
-// clang-format off
-
-// Convenience macros
-#define NONE { RGBLIGHT_END_SEGMENTS }
-#define CORNER_BL(color) { 0, 1, color }
-#define CORNER_BR(color) { RGBLED_NUM / 2 - 1, 1, color }
-#define CORNER_FR(color) { RGBLED_NUM / 2, 1, color }
-#define CORNER_FL(color) { RGBLED_NUM - 1, 1, color }
-#define CORNERS(color) {0, 1, color}, {RGBLED_NUM / 2 - 1, 2, color}, { RGBLED_NUM - 1, 1, color }
-#define FRONT(inset, color) { RGBLED_NUM / 2 + inset, RGBLED_NUM / 2 - 2 * inset, color }
-#define BACK(inset, color) { inset, RGBLED_NUM / 2 - 2 * inset, color }
-
-const rgblight_segment_t PROGMEM _none[] = NONE;
-
-#define LAYER_OFFSET 0
-// No indicator for base layer
-const rgblight_segment_t PROGMEM _layer1_layer[] = RGBLIGHT_LAYER_SEGMENTS(CORNERS(HSV_MAGENTA)); // _NUMPAD
-const rgblight_segment_t PROGMEM _layer2_layer[] = RGBLIGHT_LAYER_SEGMENTS(CORNERS(HSV_GREEN)); // _FN
-
-#define LOCK_OFFSET 3
-const rgblight_segment_t PROGMEM _numlock_layer[] = RGBLIGHT_LAYER_SEGMENTS(FRONT(3, HSV_YELLOW));
-const rgblight_segment_t PROGMEM _capslock_layer[] = RGBLIGHT_LAYER_SEGMENTS(CORNER_FL(HSV_AZURE));
-const rgblight_segment_t PROGMEM _scrolllock_layer[] = RGBLIGHT_LAYER_SEGMENTS(CORNER_FR(HSV_ORANGE));
-
-#define MISC_OFFSET 6
-const rgblight_segment_t PROGMEM _gflock_layer[] = RGBLIGHT_LAYER_SEGMENTS(BACK(1, HSV_ORANGE));
-const rgblight_segment_t PROGMEM _glyphreplace_layer[] = RGBLIGHT_LAYER_SEGMENTS(FRONT(1, HSV_ORANGE));
-
-#define ACK_OFFSET 8
-const rgblight_segment_t PROGMEM _no_layer[] = RGBLIGHT_LAYER_SEGMENTS(FRONT(1, HSV_RED));
-const rgblight_segment_t PROGMEM _yes_layer[] = RGBLIGHT_LAYER_SEGMENTS(FRONT(1, HSV_GREEN));
-const rgblight_segment_t PROGMEM _meh_layer[] = RGBLIGHT_LAYER_SEGMENTS(FRONT(1, HSV_YELLOW));
-const rgblight_segment_t PROGMEM _huh_layer[] = RGBLIGHT_LAYER_SEGMENTS(CORNERS(HSV_YELLOW), FRONT(1, HSV_BLUE), BACK(1, HSV_BLUE));
-
-#define UNICODE_OFFSET 12
-const rgblight_segment_t PROGMEM _uc_mac_layer[] = RGBLIGHT_LAYER_SEGMENTS(CORNER_BR(HSV_PURPLE));
-// No indicator for UNICODE_MODE_LINUX
-// UNICODE_MODE_WINDOWS disabled in config.h
-// UNICODE_MODE_BSD not implemented
-const rgblight_segment_t PROGMEM _uc_winc_layer[] = RGBLIGHT_LAYER_SEGMENTS(CORNER_BR(HSV_CYAN));
-const rgblight_segment_t PROGMEM _uc_emacs_layer[] = RGBLIGHT_LAYER_SEGMENTS(CORNER_BR(HSV_GREEN));
-
-// Now define the array of layers. Higher numbered layers take precedence.
-const rgblight_segment_t *const PROGMEM _rgb_layers[] = {
- [LAYER_OFFSET + _BASE] = _none,
- [LAYER_OFFSET + _NUMPAD] = _layer1_layer,
- [LAYER_OFFSET + _FN] = _layer2_layer,
-
- [LOCK_OFFSET + 0] = _numlock_layer,
- [LOCK_OFFSET + 1] = _capslock_layer,
- [LOCK_OFFSET + 2] = _scrolllock_layer,
-
- [MISC_OFFSET + 0] = _gflock_layer,
- [MISC_OFFSET + 1] = _glyphreplace_layer,
-
- [ACK_OFFSET + ACK_NO] = _no_layer,
- [ACK_OFFSET + ACK_YES] = _yes_layer,
- [ACK_OFFSET + ACK_MEH] = _meh_layer,
- [ACK_OFFSET + ACK_HUH] = _huh_layer,
-
- [UNICODE_OFFSET + UNICODE_MODE_MACOS] = _uc_mac_layer,
- [UNICODE_OFFSET + UNICODE_MODE_LINUX] = _none,
- [UNICODE_OFFSET + UNICODE_MODE_WINDOWS] = _none,
- [UNICODE_OFFSET + UNICODE_MODE_BSD] = _none,
- [UNICODE_OFFSET + UNICODE_MODE_WINCOMPOSE] = _uc_winc_layer,
- [UNICODE_OFFSET + UNICODE_MODE_EMACS] = _uc_emacs_layer,
-
- [UNICODE_OFFSET + UNICODE_MODE_COUNT] = NULL
-};
-
-// clang-format on
-
-const uint8_t PROGMEM _n_rgb_layers = ARRAY_SIZE(_rgb_layers) - 1;
-
-void clear_rgb_layers(void) {
- for (uint8_t i = 0; i < _n_rgb_layers; i++) {
- rgblight_set_layer_state(i, false);
- }
-}
-
-void do_rgb_layers(layer_state_t state, uint8_t start, uint8_t end) {
- for (uint8_t i = start; i < end; i++) {
- bool is_on = layer_state_cmp(state, i);
- rgblight_set_layer_state(LAYER_OFFSET + i, is_on);
- }
-}
-
-void do_rgb_unicode(uint8_t uc_mode) {
- for (uint8_t i = 0; i < UNICODE_MODE_COUNT; i++) {
- bool is_on = i == uc_mode;
- rgblight_set_layer_state(UNICODE_OFFSET + i, is_on);
- }
-}
-
-void do_rgb_all(void) {
- do_rgb_layers(default_layer_state, LAYER_BASE_DEFAULT, LAYER_BASE_REGULAR);
- do_rgb_layers(layer_state, LAYER_BASE_REGULAR, LAYER_BASE_END);
- do_rgb_unicode(get_unicode_input_mode());
- rgblight_set_layer_state(MISC_OFFSET + 0, spi_gflock);
- rgblight_set_layer_state(MISC_OFFSET + 1, spi_replace_mode != SPI_NORMAL);
-}
-
-// flags. 0 = no change, 1 = increment, -1 = decrement.
-int8_t change_hue = 0;
-int8_t change_sat = 0;
-int8_t change_val = 0;
-
-// timer to control color change speed
-uint16_t change_timer = 0;
-const uint16_t change_tick = 15;
-
-extern rgblight_config_t rgblight_config;
-extern rgblight_status_t rgblight_status;
-
-#if defined(RGBLIGHT_STARTUP_ANIMATION)
-
-# define STARTUP_ANIMATION_SATURATION 200
-# define STARTUP_ANIMATION_VALUE 255
-# define STARTUP_ANIMATION_FADE_STEP 5
-# define STARTUP_ANIMATION_CYCLE_STEP 2
-# define STARTUP_ANIMATION_RAMP_TO_STEPS 70
-# define STARTUP_ANIMATION_STEP_TIME 10
-# define STARTUP_ANIMATION_INITIAL_DELAY 0 // milliseconds, must be < 255 * STEP_TIME
-
-// clang-format off
-typedef enum {
- DISABLED,
- WAITING,
- RESTART,
- START,
- FADE_OLD,
- FADE_IN,
- CYCLE,
- RAMP_DOWN,
- RAMP_TO,
- CLEAN_UP,
- DONE
-} startup_animation_state_t;
-// clang-format on
-
-static rgblight_config_t old_config;
-static uint8_t old_base_mode;
-static startup_animation_state_t startup_animation_state = DISABLED;
-static uint16_t rgblight_startup_loop_timer;
-
-void startup_animation_init(void) {
- old_config.raw = rgblight_config.raw;
- old_base_mode = rgblight_status.base_mode;
-
- if (!old_config.enable) rgblight_enable_noeeprom();
-}
-#endif
-
-void keyboard_post_init_user_rgb(void) {
- // Enable the LED layers
- rgblight_layers = _rgb_layers;
- do_rgb_all();
-
-#if defined(RGBLIGHT_STARTUP_ANIMATION)
- startup_animation_init();
- startup_animation_state = STARTUP_ANIMATION_INITIAL_DELAY ? WAITING : START;
-#endif
-}
-
-void matrix_scan_user_rgb(void) {
-#if defined(RGBLIGHT_STARTUP_ANIMATION)
- if (startup_animation_state != DONE && is_keyboard_master()) {
- if (startup_animation_state == START || timer_elapsed(rgblight_startup_loop_timer) > STARTUP_ANIMATION_STEP_TIME) {
- static uint8_t counter;
- rgblight_startup_loop_timer = timer_read();
-
- switch (startup_animation_state) {
- case WAITING:
-# ifdef STARTUP_ANIMATION_DEBUG
- dprintf("sua WAITING counter=%u\n", counter);
-# endif
- if (counter < STARTUP_ANIMATION_INITIAL_DELAY / STARTUP_ANIMATION_STEP_TIME) {
- counter++;
- } else {
- startup_animation_state = START;
- }
- break;
-
- case RESTART:
-# ifdef STARTUP_ANIMATION_DEBUG
- dprintln("sua RESTART");
-# endif
- startup_animation_init();
- case START:
-# ifdef STARTUP_ANIMATION_DEBUG
- dprintln("sua START");
-# endif
- startup_animation_state = FADE_OLD;
- counter = old_config.val;
- // No break! Just roll into FADE_OLD in the same iteration...
-
- case FADE_OLD:
-# ifdef STARTUP_ANIMATION_DEBUG
- dprintf("sua FADE_OLD counter=%u\n", counter);
-# endif
- if (counter >= STARTUP_ANIMATION_FADE_STEP) {
- rgblight_sethsv_noeeprom(old_config.hue, old_config.sat, counter);
- counter -= STARTUP_ANIMATION_FADE_STEP;
- } else {
- counter = 0;
- startup_animation_state = FADE_IN;
- rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_LIGHT);
- }
- break;
-
- case FADE_IN:
-# ifdef STARTUP_ANIMATION_DEBUG
- dprintf("sua FADE_IN counter=%u\n", counter);
-# endif
- if (counter < STARTUP_ANIMATION_VALUE) {
- rgblight_sethsv_noeeprom(old_config.hue, STARTUP_ANIMATION_SATURATION, counter);
- counter += STARTUP_ANIMATION_FADE_STEP;
- } else {
- counter = 255;
- startup_animation_state = CYCLE;
- }
- break;
-
- case CYCLE:
-# ifdef STARTUP_ANIMATION_DEBUG
- dprintf("sua CYCLE counter=%u\n", counter);
-# endif
- if (counter >= STARTUP_ANIMATION_CYCLE_STEP) {
- rgblight_sethsv_noeeprom((counter + old_config.hue) % 255, STARTUP_ANIMATION_SATURATION, STARTUP_ANIMATION_VALUE);
- counter -= STARTUP_ANIMATION_CYCLE_STEP;
- } else {
- if (
-# ifdef RGBLIGHT_EFFECT_BREATHING
- (old_base_mode == RGBLIGHT_MODE_BREATHING) ||
-# endif
-# ifdef RGBLIGHT_EFFECT_SNAKE
- (old_base_mode == RGBLIGHT_MODE_SNAKE) ||
-# endif
-# ifdef RGBLIGHT_EFFECT_KNIGHT
- (old_base_mode == RGBLIGHT_MODE_KNIGHT) ||
-# endif
-# ifdef RGBLIGHT_EFFECT_TWINKLE
- (old_base_mode == RGBLIGHT_MODE_TWINKLE) ||
-# endif
- !old_config.enable) {
- counter = STARTUP_ANIMATION_VALUE;
- startup_animation_state = RAMP_DOWN;
- } else if (
-# ifdef RGBLIGHT_EFFECT_STATIC_GRADIENT
- (old_base_mode == RGBLIGHT_MODE_STATIC_GRADIENT) ||
-# endif
-# ifdef RGBLIGHT_EFFECT_RAINBOW_MOOD
- (old_base_mode == RGBLIGHT_MODE_RAINBOW_MOOD) ||
-# endif
-# ifdef RGBLIGHT_EFFECT_RAINBOW_SWIRL
- (old_base_mode == RGBLIGHT_MODE_RAINBOW_SWIRL) ||
-# endif
-# ifdef RGBLIGHT_EFFECT_RAINBOW_CHRISTMAS
- (old_base_mode == RGBLIGHT_MODE_CHRISTMAS) ||
-# endif
-# ifdef RGBLIGHT_EFFECT_RAINBOW_RGB_TEST
- (old_base_mode == RGBLIGHT_MODE_RGB_TEST) ||
-# endif
- (old_base_mode == RGBLIGHT_MODE_STATIC_LIGHT)) {
- counter = 0;
- startup_animation_state = RAMP_TO;
- } else {
- startup_animation_state = CLEAN_UP;
- }
- }
- break;
-
- case RAMP_DOWN:
-# ifdef STARTUP_ANIMATION_DEBUG
- dprintf("sua RAMP_DOWN counter=%u\n", counter);
-# endif
- rgblight_sethsv_noeeprom(old_config.hue, STARTUP_ANIMATION_SATURATION, counter);
- if (counter >= STARTUP_ANIMATION_FADE_STEP) {
- counter -= STARTUP_ANIMATION_FADE_STEP;
- } else {
- startup_animation_state = CLEAN_UP;
- }
- break;
-
- case RAMP_TO: {
-# ifdef STARTUP_ANIMATION_DEBUG
- dprintf("sua RAMP_TO s=%u, v=%u, counter=%u\n", old_config.sat, old_config.val, counter);
-# endif
- uint8_t steps = STARTUP_ANIMATION_RAMP_TO_STEPS;
- if (counter < steps) {
- uint8_t s = STARTUP_ANIMATION_SATURATION + counter * (((float)old_config.sat - STARTUP_ANIMATION_SATURATION) / (float)steps);
- uint8_t v = STARTUP_ANIMATION_VALUE + counter * (((float)old_config.val - STARTUP_ANIMATION_VALUE) / (float)steps);
- rgblight_sethsv_noeeprom(old_config.hue, s, v);
- counter++;
- } else {
- startup_animation_state = CLEAN_UP;
- }
- } break;
-
- case CLEAN_UP:
-# ifdef STARTUP_ANIMATION_DEBUG
- dprintln("sua CLEAN_UP");
-# endif
- rgblight_reload_from_eeprom();
- startup_animation_state = DONE;
-# ifdef STARTUP_ANIMATION_DEBUG
- dprintln("sua DONE");
-# endif
- break;
-
- default:
- break;
- }
- }
- }
-#endif
-
- if (change_hue != 0 || change_val != 0 || change_sat != 0) {
- if (timer_elapsed(change_timer) > change_tick) {
- HSV hsv = rgblight_get_hsv();
- hsv.h += change_hue;
- hsv.s = change_sat > 0 ? qadd8(hsv.s, (uint8_t)change_sat) : qsub8(hsv.s, (uint8_t)-change_sat);
- hsv.v = change_val > 0 ? qadd8(hsv.v, (uint8_t)change_val) : qsub8(hsv.v, (uint8_t)-change_val);
- rgblight_sethsv_noeeprom(hsv.h, hsv.s, hsv.v);
- change_timer = timer_read();
- }
- }
-}
-
-void shutdown_user_rgb(void) {
- clear_rgb_layers();
- rgblight_enable_noeeprom();
- rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_LIGHT);
- for (int i = 0; i < RGBLED_NUM; i++) {
- rgblight_setrgb_at(0xFF, 0x80 * (i % 2), 0, i);
- }
-}
-
-layer_state_t default_layer_state_set_user_rgb(layer_state_t state) {
- do_rgb_layers(state, LAYER_BASE_DEFAULT, LAYER_BASE_REGULAR);
- return state;
-}
-
-layer_state_t layer_state_set_user_rgb(layer_state_t state) {
- do_rgb_layers(state, LAYER_BASE_REGULAR, LAYER_BASE_END);
- return state;
-}
-
-bool led_update_user_rgb(led_t led_state) {
- rgblight_set_layer_state(LOCK_OFFSET + 0, led_state.num_lock);
- rgblight_set_layer_state(LOCK_OFFSET + 1, led_state.caps_lock);
- rgblight_set_layer_state(LOCK_OFFSET + 2, led_state.scroll_lock);
-
- return true;
-}
-
-#if defined(UNICODE_COMMON_ENABLE)
-void unicode_input_mode_set_user_rgb(uint8_t input_mode) {
- rgb_layer_ack(ACK_MEH);
- do_rgb_unicode(input_mode);
-}
-#endif
-
-void rgb_layer_ack_yn(bool yn) { rgb_layer_ack(yn ? ACK_YES : ACK_NO); }
-
-void rgb_layer_ack(layer_ack_t n) {
- uint8_t layer = ACK_OFFSET + n;
- rgblight_blink_layer(layer, RGB_LAYER_ACK_DURATION);
-}
-
-extern keymap_config_t keymap_config;
-extern rgblight_config_t rgblight_config;
-
-bool process_record_user_rgb(uint16_t keycode, keyrecord_t *record) {
- if (record->event.pressed) {
- switch (keycode) {
- // clang-format off
- case SPI_GLO: set_rgb_default(); return false;
-
- case RGB_HUI: change_timer = timer_read(); change_hue = 1; return false;
- case RGB_HUD: change_timer = timer_read(); change_hue = -1; return false;
- case RGB_SAI: change_timer = timer_read(); change_sat = 1; return false;
- case RGB_SAD: change_timer = timer_read(); change_sat = -1; return false;
- case RGB_VAI: change_timer = timer_read(); change_val = 1; return false;
- case RGB_VAD: change_timer = timer_read(); change_val = -1; return false;
- // clang-format on
- }
- } else {
- bool rgb_done = false;
- switch (keycode) {
- case RGB_HUI:
- case RGB_HUD:
- change_hue = 0;
- rgb_done = true;
- break;
- case RGB_SAI:
- case RGB_SAD:
- change_sat = 0;
- rgb_done = true;
- break;
- case RGB_VAI:
- case RGB_VAD:
- change_val = 0;
- rgb_done = true;
- break;
- }
-
- if (rgb_done) {
- HSV final = rgblight_get_hsv();
- rgblight_sethsv(final.h, final.s, final.v);
- }
- }
-
- return true;
-}
-
-void post_process_record_user_rgb(uint16_t keycode, keyrecord_t *record) {
- switch (keycode) {
- // Acks follow...
- case QK_DEBUG_TOGGLE:
- if (debug_matrix || debug_keyboard)
- rgb_layer_ack(ACK_HUH);
- else if (debug_enable)
- rgb_layer_ack(ACK_YES);
- else
- rgb_layer_ack(ACK_NO);
- break;
-
- case SPI_GFLOCK:
- rgb_layer_ack_yn(spi_gflock);
- rgblight_set_layer_state(MISC_OFFSET + 0, spi_gflock);
- break;
-
- case SPI_NORMAL ... SPI_FRAKTR:
- rgb_layer_ack_yn(spi_replace_mode != SPI_NORMAL);
- rgblight_set_layer_state(MISC_OFFSET + 1, spi_replace_mode != SPI_NORMAL);
- break;
-
- case RGB_TOG:
- // Hack - we only get called on the press for RGB_TOG,
- // but the flag is only flipped on the release...
- rgb_layer_ack_yn(!rgblight_config.enable);
- break;
-
-#ifdef VELOCIKEY_ENABLE
- case QK_VELOCIKEY_TOGGLE:
- rgb_layer_ack_yn(velocikey_enabled());
- break;
-#endif
-
-#ifdef NKRO_ENABLE
- case NK_TOGG:
- case NK_ON:
- case NK_OFF:
- rgb_layer_ack_yn(keymap_config.nkro);
- break;
-#endif
- }
-}
diff --git a/users/spidey3/readme.md b/users/spidey3/readme.md
deleted file mode 100644
index 409d6e5f81..0000000000
--- a/users/spidey3/readme.md
+++ /dev/null
@@ -1,14 +0,0 @@
-Copyright 2020 Joshua Diamond josh@windowoffire.com @spidey3
-
-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/>.
diff --git a/users/spidey3/rules.mk b/users/spidey3/rules.mk
deleted file mode 100644
index 35cfdb4187..0000000000
--- a/users/spidey3/rules.mk
+++ /dev/null
@@ -1,15 +0,0 @@
-BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite
-CONSOLE_ENABLE = yes # Console for debug
-BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
-NKRO_ENABLE = yes
-LTO_ENABLE = yes
-
-SRC += init.c
-SRC += spidey3.c
-
-ifeq ($(strip $(RGBLIGHT_ENABLE)), yes)
- SRC += layer_rgb.c
-endif
-ifeq ($(strip $(UNICODEMAP_ENABLE)), yes)
- SRC += spidey3_unicode.c
-endif
diff --git a/users/spidey3/spidey3.c b/users/spidey3/spidey3.c
deleted file mode 100644
index b177f9f652..0000000000
--- a/users/spidey3/spidey3.c
+++ /dev/null
@@ -1,384 +0,0 @@
-// Copyright 2022 Joshua Diamond josh@windowoffire.com (@spidey3)
-// SPDX-License-Identifier: GPL-2.0-or-later
-
-#include QMK_KEYBOARD_H
-
-#include "spidey3.h"
-#include "version.h"
-#include <stdlib.h>
-
-static bool rand_seeded = false;
-
-uint16_t spi_replace_mode = SPI_NORMAL;
-bool spi_gflock = false;
-
-#if defined(CONSOLE_ENABLE) && !defined(NO_DEBUG)
-static uint32_t matrix_scan_count = 0;
-static bool reported_version = false;
-
-# if defined(SPI_DEBUG_SCAN_RATE)
-static uint32_t matrix_timer = 0;
-# endif
-
-void report_version(void) {
- uprintln(QMK_KEYBOARD "/" QMK_KEYMAP " @ " QMK_VERSION " - " QMK_BUILDDATE);
- reported_version = true;
-}
-#endif
-
-void matrix_scan_user(void) {
-#if defined(CONSOLE_ENABLE) && !defined(NO_DEBUG)
-# if defined(SPI_DEBUG_SCAN_RATE)
- matrix_scan_count++;
- if (debug_enable) {
- uint32_t timer_now = timer_read32();
- if (matrix_timer == 0) {
- matrix_timer = timer_now;
- matrix_scan_count = 0;
- } else if (TIMER_DIFF_32(timer_now, matrix_timer) > SPI_SCAN_RATE_INTERVAL * 1000) {
- matrix_timer = timer_now;
- uprintf("scan rate: %lu/s\n", matrix_scan_count / SPI_SCAN_RATE_INTERVAL);
- matrix_scan_count = 0;
- if (!reported_version) report_version();
- }
- }
-# else
- if (!reported_version) {
- matrix_scan_count++;
- if (matrix_scan_count > 300) report_version();
- }
-# endif
-#endif
-#ifdef RGBLIGHT_ENABLE
- matrix_scan_user_rgb();
-#endif
-}
-
-static uint32_t math_glyph_exceptions(const uint16_t keycode, const bool shifted) {
- bool caps = host_keyboard_led_state().caps_lock;
- if (shifted != caps) {
- switch (keycode) {
- // clang-format off
- case KC_C: return 0x2102;
- case KC_H: return 0x210D;
- case KC_N: return 0x2115;
- case KC_P: return 0x2119;
- case KC_Q: return 0x211A;
- case KC_R: return 0x211D;
- case KC_Z: return 0x2124;
- // clang-format on
- }
- }
- return 0;
-}
-
-bool process_record_glyph_replacement(uint16_t keycode, keyrecord_t *record, uint32_t baseAlphaLower, uint32_t baseAlphaUpper, uint32_t zeroGlyph, uint32_t baseNumberOne, uint32_t spaceGlyph, uint32_t (*exceptions)(const uint16_t keycode, const bool shifted), uint8_t temp_mod, uint8_t temp_osm) {
- if ((((temp_mod | temp_osm) & (MOD_MASK_CTRL | MOD_MASK_ALT | MOD_MASK_GUI))) == 0) {
- bool shifted = ((temp_mod | temp_osm) & MOD_MASK_SHIFT);
- if (exceptions) {
- uint32_t res = exceptions(keycode, shifted);
- if (res) {
- if (record->event.pressed) {
- register_unicode(res);
- }
- return false;
- }
- }
- switch (keycode) {
- case KC_A ... KC_Z:
- if (record->event.pressed) {
- clear_mods();
-#ifndef NO_ACTION_ONESHOT
- clear_oneshot_mods();
-#endif
-
- bool caps = host_keyboard_led_state().caps_lock;
- uint32_t base = ((shifted == caps) ? baseAlphaLower : baseAlphaUpper);
- register_unicode(base + (keycode - KC_A));
- set_mods(temp_mod);
- }
- return false;
- case KC_0:
- if (shifted) { // skip shifted numbers, so that we can still use symbols etc.
- return true;
- }
- if (record->event.pressed) {
- register_unicode(zeroGlyph);
- }
- return false;
- case KC_1 ... KC_9:
- if (shifted) { // skip shifted numbers, so that we can still use symbols etc.
- return true;
- }
- if (record->event.pressed) {
- register_unicode(baseNumberOne + (keycode - KC_1));
- }
- return false;
- case KC_SPACE:
- if (record->event.pressed) {
- register_unicode(spaceGlyph); // em space
- }
- return false;
- }
- }
-
- return true;
-}
-
-bool process_gflock(uint16_t keycode, keyrecord_t *record) {
- if (!spi_gflock) {
- return true;
- }
-
- if (record->event.pressed) {
- register_code16(G(keycode));
- } else {
- unregister_code16(G(keycode));
- }
- return false;
-}
-
-bool process_record_user(uint16_t keycode, keyrecord_t *record) {
- dprintf("key event: kc: %02X, col: %02u, row: %02u, pressed: %u mods: %08b "
-#if !defined(NO_ACTION_ONESHOT)
- "os: %08b "
-#endif
- "weak: %08b\n",
- keycode, record->event.key.col, record->event.key.row, record->event.pressed, bitrev(get_mods()),
-#if !defined(NO_ACTION_ONESHOT)
- bitrev(get_oneshot_mods()),
-#endif
- bitrev(get_weak_mods()));
-
- if (!rand_seeded) {
- srand(record->event.time % keycode);
- rand_seeded = true;
- }
-
- uint8_t mods = get_mods();
-#ifndef NO_ACTION_ONESHOT
- uint8_t osm = get_oneshot_mods();
-#else
- uint8_t osm = 0;
-#endif
-
- if (record->event.pressed) {
- switch (keycode) {
-#ifndef NO_DEBUG
- // Re-implement this here, but fix the persistence!
- case QK_DEBUG_TOGGLE:
- if (get_mods() & MOD_MASK_SHIFT) {
- debug_enable = 0;
- debug_keyboard = 0;
- debug_matrix = 0;
- } else if (!debug_enable) {
- debug_enable = 1;
-# if defined(SPI_DEBUG_SCAN_RATE)
- matrix_timer = 0;
- report_version();
-# endif
- } else if (!debug_keyboard) {
- debug_keyboard = 1;
- } else if (!debug_matrix) {
- debug_matrix = 1;
- } else {
- debug_enable = 0;
- debug_keyboard = 0;
- debug_matrix = 0;
- }
- uprintf("DEBUG: enable=%u, kb=%u, matrix=%u\n", debug_enable, debug_keyboard, debug_matrix);
- eeconfig_update_debug(debug_config.raw);
- return false;
-#endif
-
- // clang-format off
-
- case CH_SUSP: tap_code16(LGUI(LSFT(KC_L))); return true;
-
- // clang-format on
-
- case SPI_NORMAL ... SPI_MATH:
- spi_replace_mode = (spi_replace_mode == keycode) ? SPI_NORMAL : keycode;
- break;
-
- case SPI_GFLOCK:
- spi_gflock = !spi_gflock;
- break;
-
- case SPI_KP_00:
- tap_code(KC_KP_0);
-#if TAP_CODE_DELAY > 0
- wait_ms(TAP_CODE_DELAY);
-#endif
- register_code(KC_KP_0);
- return false;
-
- case KC_PSCR: {
- // It's kind of a hack, but we use unicode input mode
- // to determine what Print Screen key should do. The
- // idea here is to make it consistent across hosts.
- switch (get_unicode_input_mode()) {
- case UNICODE_MODE_MACOS:
- if ((mods | osm) & MOD_MASK_ALT) {
- // Window screenshot
- clear_mods();
-#ifndef NO_ACTION_ONESHOT
- clear_oneshot_mods();
-#endif
- tap_code16(LSFT(LGUI(KC_4)));
- wait_ms(100);
- tap_code(KC_SPC);
- set_mods(mods);
- return false;
- } else if ((mods | osm) & MOD_MASK_SHIFT) {
- // Partial screenshot
- tap_code16(LSFT(LGUI(KC_4)));
- return false;
- } else {
- // Full screenshot
- tap_code16(LSFT(LGUI(KC_3)));
- return false;
- }
- break;
-
- case UNICODE_MODE_WINDOWS:
- case UNICODE_MODE_WINCOMPOSE:
- if ((mods | osm) & MOD_MASK_ALT) {
- // Window screenshot
- // Alt+PrintScreen should work as is
- } else if ((mods | osm) & MOD_MASK_SHIFT) {
- // Partial screenshot
- tap_code16(LGUI(LSFT(KC_S)));
- return false;
- } else {
- // Full screenshot
- // PrintScreen should work as is
- }
- break;
-
- default:
- // Note: These are specific to ChromeOS
- if ((mods | osm) & MOD_MASK_ALT) {
- // Window screenshot
- tap_code16(LCTL(LALT(KC_F5)));
- return false;
- } else if ((mods | osm) & MOD_MASK_SHIFT) {
- // Partial screenshot
- tap_code16(LCTL(LSFT(KC_F5)));
- return false;
- } else {
- // Full screenshot
- // PrintScreen should work as is
- }
- break;
- }
- break;
- }
- }
- } else {
- switch (keycode) {
- case SPI_KP_00:
- unregister_code(KC_KP_0);
- return false;
- }
- }
-
- switch (keycode) {
- case KC_A ... KC_0:
- case KC_SPACE:
- switch (spi_replace_mode) {
- case SPI_WIDE:
- return process_record_glyph_replacement(keycode, record, 0xFF41, 0xFF21, 0xFF10, 0xFF11, 0x2003, NULL, mods, osm);
- case SPI_SCRIPT:
- return process_record_glyph_replacement(keycode, record, 0x1D4EA, 0x1D4D0, 0x1D7CE, 0x1D7CF, 0x2002, NULL, mods, osm);
- case SPI_BLOCKS:
- return process_record_glyph_replacement(keycode, record, 0x1F170, 0x1F170, '0', '1', 0x2002, NULL, mods, osm);
- case SPI_CIRCLE:
- return process_record_glyph_replacement(keycode, record, 0x1F150, 0x1F150, '0', '1', 0x2002, NULL, mods, osm);
- case SPI_SQUARE:
- return process_record_glyph_replacement(keycode, record, 0x1F130, 0x1F130, '0', '1', 0x2002, NULL, mods, osm);
- case SPI_PARENS:
- return process_record_glyph_replacement(keycode, record, 0x1F110, 0x1F110, '0', '1', 0x2002, NULL, mods, osm);
- case SPI_FRAKTR:
- return process_record_glyph_replacement(keycode, record, 0x1D586, 0x1D56C, '0', '1', 0x2002, NULL, mods, osm);
- case SPI_BOLD:
- return process_record_glyph_replacement(keycode, record, 0x1D41A, 0x1D400, '0', '1', 0x2002, NULL, mods, osm);
- case SPI_MATH:
- return process_record_glyph_replacement(keycode, record, 0x1D552, 0x1D538, '0', '1', 0x2002, &math_glyph_exceptions, mods, osm);
- }
- break;
-
- case KC_F1 ... KC_F12:
- return process_gflock(keycode, record);
-
-#ifdef SHIFT_BACKSPACE_DELETE
- case KC_BSPC: {
- static bool delkey_registered;
- if (record->event.pressed) {
- if ((mods | osm) & MOD_MASK_SHIFT) {
- del_mods(MOD_MASK_SHIFT);
-# ifndef NO_ACTION_ONESHOT
- clear_oneshot_mods();
-# endif
- register_code(KC_DEL);
- delkey_registered = true;
- set_mods(mods);
- return false;
- }
- } else { // on release of KC_BSPC
- // In case KC_DEL is still being sent even after the release of KC_BSPC
- if (delkey_registered) {
- unregister_code(KC_DEL);
- delkey_registered = false;
- return false;
- }
- }
- }
-#endif
- }
-
-#ifdef RGBLIGHT_ENABLE
- return process_record_user_rgb(keycode, record);
-#else
- return true;
-#endif
-}
-
-void post_process_record_user(uint16_t keycode, keyrecord_t *record) {
-#ifdef RGBLIGHT_ENABLE
- post_process_record_user_rgb(keycode, record);
-#endif
- return;
-}
-
-layer_state_t default_layer_state_set_user(layer_state_t state) {
-#ifdef RGBLIGHT_ENABLE
- return default_layer_state_set_user_rgb(state);
-#else
- return state;
-#endif
-}
-
-layer_state_t layer_state_set_user(layer_state_t state) {
-#ifdef RGBLIGHT_ENABLE
- return layer_state_set_user_rgb(state);
-#else
- return state;
-#endif
-}
-
-bool led_update_user(led_t led_state) {
-#ifdef RGBLIGHT_ENABLE
- return led_update_user_rgb(led_state);
-#else
- return true;
-#endif
-}
-
-#if defined(UNICODE_COMMON_ENABLE)
-void unicode_input_mode_set_user(uint8_t input_mode) {
-# ifdef RGBLIGHT_ENABLE
- unicode_input_mode_set_user_rgb(input_mode);
-# endif
-}
-#endif
diff --git a/users/spidey3/spidey3.h b/users/spidey3/spidey3.h
deleted file mode 100644
index 2b2cac0a20..0000000000
--- a/users/spidey3/spidey3.h
+++ /dev/null
@@ -1,81 +0,0 @@
-// Copyright 2022 Joshua Diamond josh@windowoffire.com (@spidey3)
-// SPDX-License-Identifier: GPL-2.0-or-later
-
-#pragma once
-
-#include QMK_KEYBOARD_H
-
-#ifdef UNICODEMAP_ENABLE
-# include "spidey3_unicode.h"
-#endif
-
-enum userspace_layers {
- _BASE = 0,
- _NUMPAD,
- _FN,
- _GLYPH,
-};
-
-enum custom_keycodes {
- CH_SUSP = SAFE_RANGE, // Suspend
-
- SPI_NORMAL,
- SPI_WIDE,
- SPI_SCRIPT,
- SPI_BLOCKS,
- SPI_CIRCLE,
- SPI_SQUARE,
- SPI_PARENS,
- SPI_FRAKTR,
- SPI_BOLD,
- SPI_MATH,
- SPI_GFLOCK,
- SPI_KP_00,
- SPI_GLO,
-};
-
-#ifdef RGBLIGHT_ENABLE
-
-enum layer_base {
- LAYER_BASE_DEFAULT = _BASE,
- LAYER_BASE_REGULAR = _NUMPAD,
- LAYER_BASE_END = _FN + 1,
-};
-
-typedef enum layer_ack {
- ACK_NO = 0,
- ACK_YES,
- ACK_MEH,
- ACK_HUH,
-} layer_ack_t;
-
-# define RGB_LAYER_ACK_DURATION 500
-
-void matrix_init_user_rgb(void);
-void matrix_scan_user_rgb(void);
-void keyboard_post_init_user_rgb(void);
-bool process_record_user_rgb(uint16_t keycode, keyrecord_t *record);
-void post_process_record_user_rgb(uint16_t keycode, keyrecord_t *record);
-layer_state_t layer_state_set_user_rgb(layer_state_t state);
-layer_state_t default_layer_state_set_user_rgb(layer_state_t state);
-bool led_update_user_rgb(led_t led_state);
-void rgb_layer_ack(layer_ack_t n);
-void rgb_layer_ack_yn(bool yn);
-void clear_rgb_layers(void);
-void shutdown_user_rgb(void);
-
-# if defined(UNICODE_COMMON_ENABLE)
-void unicode_input_mode_set_user_rgb(uint8_t input_mode);
-# endif
-
-#endif
-
-#ifdef UNICODEMAP_ENABLE
-void eeconfig_init_user_unicode(void);
-#endif
-
-#ifdef SPI_DEBUG_SCAN_RATE
-# ifndef SPI_SCAN_RATE_INTERVAL
-# define SPI_SCAN_RATE_INTERVAL 10
-# endif
-#endif
diff --git a/users/spidey3/spidey3_unicode.c b/users/spidey3/spidey3_unicode.c
deleted file mode 100644
index 011eaeb3fa..0000000000
--- a/users/spidey3/spidey3_unicode.c
+++ /dev/null
@@ -1,28 +0,0 @@
-// Copyright 2022 Joshua Diamond josh@windowoffire.com (@spidey3)
-// SPDX-License-Identifier: GPL-2.0-or-later
-
-
-#include "spidey3_unicode.h"
-
-const uint32_t unicode_map[] PROGMEM = {
- [BUL1] = 0x2022, // •
- [BUL2] = 0x25E6, // ◦
- [LARR] = 0x2190, // ←
- [RARR] = 0x2192, // →
- [ENDASH] = 0x2013, // –
- [EMDASH] = 0x2014, // —
- [SPIDER] = 0x1F577, // 🕷
- [SAD] = 0x2639, // ☹
- [MEH] = 0x1F611, // 😑
- [HAPPY] = 0x1F600, // 😀
- [ANGRY] = 0x1F620, // 😠
- [THUMBUP] = 0x1F44D, // 👍
- [THUMBDN] = 0x1F44E, // 👎
- [LOL] = 0x1F602, // 😂
- [SURPRISE] = 0x1F62E, // 😮
-};
-
-void eeconfig_init_user_unicode(void) {
- // Default to Linux style
- set_unicode_input_mode(UNICODE_MODE_LINUX);
-}
diff --git a/users/spidey3/spidey3_unicode.h b/users/spidey3/spidey3_unicode.h
deleted file mode 100644
index 4a3657fdfd..0000000000
--- a/users/spidey3/spidey3_unicode.h
+++ /dev/null
@@ -1,31 +0,0 @@
-// Copyright 2022 Joshua Diamond josh@windowoffire.com (@spidey3)
-// SPDX-License-Identifier: GPL-2.0-or-later
-
-#pragma once
-
-#include QMK_KEYBOARD_H
-
-#ifdef UNICODEMAP_ENABLE
-
-enum unicode_names {
- BUL1,
- BUL2,
- LARR,
- RARR,
- ENDASH,
- EMDASH,
- SPIDER,
- SAD,
- MEH,
- HAPPY,
- ANGRY,
- THUMBUP,
- THUMBDN,
- LOL,
- SURPRISE,
-};
-
-# define X_BUL (UP(BUL1, BUL2))
-# define X_DASH (UP(EMDASH, ENDASH))
-
-#endif
diff --git a/users/spotpuff/rules.mk b/users/spotpuff/rules.mk
deleted file mode 100644
index 7b4abdbc1b..0000000000
--- a/users/spotpuff/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-BOOTMAGIC_ENABLE = no # Enable Bootmagic Lite
diff --git a/users/stanrc85/config.h b/users/stanrc85/config.h
deleted file mode 100644
index d9600b8b3c..0000000000
--- a/users/stanrc85/config.h
+++ /dev/null
@@ -1,38 +0,0 @@
-#pragma once
-
-#define TAPPING_TERM 250
-#define RETRO_TAPPING
-#define FORCE_NKRO
-
-#ifdef RGBLIGHT_ENABLE
- #define RGBLIGHT_LAYERS
- #define RGBLIGHT_SLEEP
-#endif
-
-#ifdef KEYBOARD_sneakbox_aliceclone
- #define INDICATOR_PIN_0 D7
- #define INDICATOR_PIN_1 D6
- #define INDICATOR_PIN_2 D4
-#endif
-
-#if defined(KEYBOARD_mechlovin_adelais_standard_led_arm_rev4_stm32f303) || defined(KEYBOARD_mechlovin_adelais_standard_led_arm_rev4_apm32f103)
- #define INDICATOR_PIN_0 B2
- #define INDICATOR_PIN_1 C15
- #define INDICATOR_PIN_2 B9
-#endif
-
-#ifdef KEYBOARD_boardsource_the_mark
- #define RGB_MATRIX_KEYPRESSES
-#endif
-
-#ifdef KEYBOARD_jacky_studio_bear_65
- #define ENABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON
- #define ENABLE_RGB_MATRIX_MULTISPLASH
- #define ENABLE_RGB_MATRIX_TYPING_HEATMAP
-#endif
-
-#ifdef KEYBOARD_nasu
- #define INDICATOR_PIN_0 B1
- #define INDICATOR_PIN_1 B0
- #define INDICATOR_PIN_2 A7
-#endif
diff --git a/users/stanrc85/indicator_layers_sneakbox.c b/users/stanrc85/indicator_layers_sneakbox.c
deleted file mode 100644
index 8aa1a41e49..0000000000
--- a/users/stanrc85/indicator_layers_sneakbox.c
+++ /dev/null
@@ -1,28 +0,0 @@
- /* Copyright 2020 Stanrc85
- *
- * 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 "stanrc85.h"
-
-layer_state_t layer_state_set_user(layer_state_t state) {
- writePin(INDICATOR_PIN_2, layer_state_cmp(state, _FN2_60) || layer_state_cmp(state, _DEFAULT));
- writePin(INDICATOR_PIN_1, layer_state_cmp(state, _FN1_60) || layer_state_cmp(state, _DEFAULT));
- return state;
-}
-
-bool led_update_user(led_t led_state) {
- writePin(INDICATOR_PIN_0, led_state.caps_lock);
- return false;
-} \ No newline at end of file
diff --git a/users/stanrc85/layer_rgb.c b/users/stanrc85/layer_rgb.c
deleted file mode 100644
index ad30c2ee65..0000000000
--- a/users/stanrc85/layer_rgb.c
+++ /dev/null
@@ -1,29 +0,0 @@
-#include "stanrc85.h"
-
-void matrix_init_user(void) {
- rgblight_setrgb(0xFF, 0x00, 0x00);
-};
-
-layer_state_t layer_state_set_user(layer_state_t state) {
- switch (get_highest_layer(state)) {
- case 0:
- rgblight_setrgb (0xFF, 0x00, 0x00);
- break;
- case 1:
- rgblight_setrgb (0x00, 0xFF, 0x00);
- break;
- case 2:
- rgblight_setrgb (0x00, 0x00, 0xFF);
- break;
- case 3:
- rgblight_setrgb (0xFF, 0xFF, 0xFF);
- break;
- case 4:
- rgblight_setrgb (0xFF, 0x00, 0xFF);
- break;
- default: // for any other layers, or the default layer
- rgblight_setrgb (0xFF, 0x00, 0x00);
- break;
- }
- return state;
-}
diff --git a/users/stanrc85/readme.md b/users/stanrc85/readme.md
deleted file mode 100644
index 8dff9c8e30..0000000000
--- a/users/stanrc85/readme.md
+++ /dev/null
@@ -1,57 +0,0 @@
-<!-- Copyright 2021 Stanrc85
-
-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/>.-->
-
-# Stanrc85's Standard Layout
-
-Shared keymap between 60%, 65%, Alice layouts:
-- 1upkeyboards60HSE
-- Mark65
-- Sneakbox Alice
-
-## Keymap Notes
-- Layer 0 is default QWERTY layout with additional custom features:
- - SpaceFN to function layer 2 on `Space`
- - `CTRL` when held and `ESC` when tapped on `CAPS LOCK`
- - Tap Dance on `Fn1` for `CTRL+ALT+DEL` and `WIN+L`
- - Tap Dance on `ESC` for `ESC` and ` ` `
-
-![Base QWERTY Layer](https://imgur.com/gvCkVUW.png)
-
-- Layer 1 is default QWERTY with no custom features used mostly for gaming
- - Enabled by `Fn2+RCTL` from base layer
-
-![Default ANSI Layer](https://imgur.com/2SAel0K.png)
-
-- Layer 2 is Function layer:
- - F keys
- - Arrows
- - Volume and Media controls
- - AutoHotkey shortcuts based on [Speaker Control](https://github.com/stanrc85/Speaker-Control) script
- - AHK Mic is used to mute/unmute microphone
- - AHK Speaker switches audio output between headphones and speakers
-
-![Function Layer](https://imgur.com/FUjG0pL.png)
-
-- Layer 3 is RGB Underglow control and RESET
- - `Fn2+RCTL` used to toggle Default QWERTY layer on and off
- - `qmk compile` command on `Fn2+Enter`
- - `qmk flash` command on `Fn2+Shift+enter`
-
-![RGB and RESET Layer](https://imgur.com/UPdhR12.png)
-
-
-
-### Build
-To build the firmware file associated with this keymap, simply run `make your_keyboard:stanrc85-ansi` or `make your_keyboard:stanrc85-alice`.
diff --git a/users/stanrc85/rgb_layers.c b/users/stanrc85/rgb_layers.c
deleted file mode 100644
index 7138323f23..0000000000
--- a/users/stanrc85/rgb_layers.c
+++ /dev/null
@@ -1,36 +0,0 @@
- /* Copyright 2021 Stanrc85
- *
- * 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 "stanrc85.h"
-
-layer_state_t layer_state_set_user(layer_state_t state) {
- switch (get_highest_layer(state)) {
- case _FN1_60:
- break;
- case _FN2_60:
- rgb_matrix_mode_noeeprom(RGB_MATRIX_RAINBOW_MOVING_CHEVRON);
- break;
- case _DEFAULT:
- rgb_matrix_mode_noeeprom(RGB_MATRIX_MULTISPLASH);
- break;
- case _QWERTY:
- rgb_matrix_mode_noeeprom(RGB_MATRIX_TYPING_HEATMAP);
- break;
- default: // for any other layers, or the default layer
- break;
- }
- return state;
-}
diff --git a/users/stanrc85/rgb_timeout.c b/users/stanrc85/rgb_timeout.c
deleted file mode 100644
index 4aa2427816..0000000000
--- a/users/stanrc85/rgb_timeout.c
+++ /dev/null
@@ -1,62 +0,0 @@
-/*
-Copyright 2021 Stanrc85
-
-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 "stanrc85.h"
-
-// Backlight timeout feature
-// Modified from https://www.reddit.com/r/MechanicalKeyboards/comments/ix65z0/looking_for_qmk_led_idle_timeout_info/g64yov7/
-#define BACKLIGHT_TIMEOUT 10 // in minutes
-static uint16_t idle_timer = 0;
-static uint8_t halfmin_counter = 0;
-static bool led_on = true;
-static bool rgb_on = true;
-static bool rgb_was_on = false;
-
-void matrix_scan_user(void) {
- // idle_timer needs to be set one time
- if (idle_timer == 0) idle_timer = timer_read();
- if ( (led_on && timer_elapsed(idle_timer) > 30000) || (rgb_on && timer_elapsed(idle_timer) > 30000)) {
- halfmin_counter++;
- idle_timer = timer_read();
- }
-
- if ( (led_on && halfmin_counter >= BACKLIGHT_TIMEOUT * 2) || (rgb_on && halfmin_counter >= BACKLIGHT_TIMEOUT * 2)) {
- if(rgblight_is_enabled()) {
- rgb_was_on = true;
- rgblight_disable_noeeprom();
- led_on = false;
- rgb_on = false;
- } else {
- rgb_was_on = false;
- }
- halfmin_counter = 0;
- }
-};
-
-bool process_record_keymap(uint16_t keycode, keyrecord_t *record) {
- if (record->event.pressed) {
- if (led_on == false || rgb_on == false ) {
- if (rgb_was_on) {
- rgblight_enable_noeeprom();
- led_on = true;
- rgb_on = true;
- }
- }
- idle_timer = timer_read();
- halfmin_counter = 0;
- }
- return true;
-}
diff --git a/users/stanrc85/rgblight_layers.c b/users/stanrc85/rgblight_layers.c
deleted file mode 100644
index 1fbd541498..0000000000
--- a/users/stanrc85/rgblight_layers.c
+++ /dev/null
@@ -1,30 +0,0 @@
-#include "stanrc85.h"
-
-static uint8_t middle = 0;
-static uint8_t bottom = 0;
-
-layer_state_t layer_state_set_user(layer_state_t state) {
- middle = bottom = 0;
- switch (get_highest_layer(state)) {
- case _FN1_60:
- middle = 1;
- break;
- case _FN2_60:
- bottom = 1;
- break;
- case _DEFAULT:
- middle = 1;
- bottom = 1;
- break;
- default: // for any other layers, or the default layer
- break;
- }
- return state;
-}
-
-bool led_update_user(led_t led_state) {
- writePin(INDICATOR_PIN_0, !led_state.caps_lock);
- writePin(INDICATOR_PIN_1, !middle);
- writePin(INDICATOR_PIN_2, !bottom);
- return false;
-} \ No newline at end of file
diff --git a/users/stanrc85/rgblight_layers_osa.c b/users/stanrc85/rgblight_layers_osa.c
deleted file mode 100644
index aff96c9699..0000000000
--- a/users/stanrc85/rgblight_layers_osa.c
+++ /dev/null
@@ -1,68 +0,0 @@
-#include "stanrc85.h"
-
-static uint8_t middle = 0;
-static uint8_t bottom = 0;
-
-const rgblight_segment_t PROGMEM my_capslock_layer[] = RGBLIGHT_LAYER_SEGMENTS(
- {2, 2, HSV_RED},
- {6, 2, HSV_RED}
-);
-
-const rgblight_segment_t PROGMEM my_layer1_layer[] = RGBLIGHT_LAYER_SEGMENTS(
- {2, 2, HSV_GREEN},
- {6, 2, HSV_GREEN}
-);
-
-const rgblight_segment_t PROGMEM my_layer2_layer[] = RGBLIGHT_LAYER_SEGMENTS(
- {2, 2, HSV_BLUE},
- {6, 2, HSV_BLUE}
-);
-
-const rgblight_segment_t PROGMEM my_layer3_layer[] = RGBLIGHT_LAYER_SEGMENTS(
- {2, 2, HSV_WHITE},
- {6, 2, HSV_WHITE}
-);
-
-// Now define the array of layers. Later layers take precedence
-const rgblight_segment_t* const PROGMEM my_rgb_layers[] = RGBLIGHT_LAYERS_LIST(
- my_capslock_layer,
- my_layer1_layer,
- my_layer2_layer,
- my_layer3_layer
-);
-
-void keyboard_post_init_user(void) {
- // Enable the LED layers
- rgblight_layers = my_rgb_layers;
-}
-
-layer_state_t layer_state_set_user(layer_state_t state) {
- // Both layers will light up if both kb layers are active
- rgblight_set_layer_state(1, layer_state_cmp(state, 1));
- rgblight_set_layer_state(2, layer_state_cmp(state, 2));
- rgblight_set_layer_state(3, layer_state_cmp(state, 3));
- middle = bottom = 0;
- switch (get_highest_layer(state)) {
- case _FN1_60:
- middle = 1;
- break;
- case _FN2_60:
- bottom = 1;
- break;
- case _DEFAULT:
- middle = 1;
- bottom = 1;
- break;
- default: // for any other layers, or the default layer
- break;
- }
- return state;
-}
-
-bool led_update_user(led_t led_state) {
- rgblight_set_layer_state(0, led_state.caps_lock);
- writePin(C7, led_state.caps_lock);
- writePin(C6, middle);
- writePin(B6, bottom);
- return false;
-}
diff --git a/users/stanrc85/rules.mk b/users/stanrc85/rules.mk
deleted file mode 100644
index 141b4581a4..0000000000
--- a/users/stanrc85/rules.mk
+++ /dev/null
@@ -1,55 +0,0 @@
-TAP_DANCE_ENABLE = yes
-EXTRAKEY_ENABLE = yes
-BACKLIGHT_ENABLE = no
-COMMAND_ENABLE = no
-MOUSEKEY_ENABLE = no
-AUDIO_ENABLE = no
-CONSOLE_ENABLE = no
-NKRO_ENABLE = yes
-LTO_ENABLE = yes
-VIA_ENABLE = yes
-
-SRC += stanrc85.c
-
-ifeq ($(strip $(KEYBOARD)), projectkb/alice/rev2)
- SRC += rgblight_layers.c
- SRC += startup_fanfare.c
- OPT_DEFS += -DHAS_INDICATORS
- VELOCIKEY_ENABLE=yes
-endif
-ifeq ($(strip $(KEYBOARD)), sneakbox/aliceclone)
- SRC += indicator_layers_sneakbox.c
- SRC += startup_fanfare.c
- OPT_DEFS += -DHAS_INDICATORS
- OPT_DEFS += -DHAS_ROTARY
-endif
-ifeq ($(strip $(KEYBOARD)), tkc/osav2)
- SRC += rgblight_layers_osa.c
- VELOCIKEY_ENABLE=yes
- SRC += rgb_timeout.c
-endif
-ifeq ($(strip $(KEYBOARD)), jacky_studio/bear_65)
- BACKLIGHT_ENABLE = yes
- RGB_MATRIX_ENABLE = yes
- RGBLIGHT_ENABLE = no
- SRC += rgb_layers.c
-endif
-ifeq ($(strip $(KEYBOARD)), mechlovin/adelais/rgb_led/rev2)
- SRC += rgb_layers.c
- SRC += rgb_timeout.c
-endif
-ifeq ($(strip $(KEYBOARD)), mechlovin/adelais/standard_led/arm/rev4/stm32f303)
- OPT_DEFS += -DHAS_INDICATORS
- SRC += rgb_timeout.c
- SRC += indicator_layers_sneakbox.c
-endif
-ifeq ($(strip $(KEYBOARD)), nasu)
- SRC += indicator_layers_sneakbox.c
- SRC += startup_fanfare.c
- OPT_DEFS += -DHAS_INDICATORS
-endif
-ifeq ($(strip $(KEYBOARD)), mechlovin/adelais/standard_led/arm/rev4/apm32f103)
- OPT_DEFS += -DHAS_INDICATORS
- SRC += rgb_timeout.c
- SRC += indicator_layers_sneakbox.c
-endif
diff --git a/users/stanrc85/stanrc85.c b/users/stanrc85/stanrc85.c
deleted file mode 100644
index 6dd5db0e33..0000000000
--- a/users/stanrc85/stanrc85.c
+++ /dev/null
@@ -1,133 +0,0 @@
-#include "stanrc85.h"
-
-static td_state_t td_state;
-
-__attribute__ ((weak))
-bool process_record_keymap(uint16_t keycode, keyrecord_t *record) {
- return true;
-}
-
-// determine the tapdance state to return
-int cur_dance (tap_dance_state_t *state) {
- if (state->count == 1) {
- if (state->interrupted || !state->pressed) { return SINGLE_TAP; }
- else { return SINGLE_HOLD; }
- }
- if (state->count == 2) { return DOUBLE_TAP; }
- else { return 3; } // any number higher than the maximum state value you return above
-}
-
-// handle the possible states for each tapdance keycode you define:
-void ctl_copy_finished (tap_dance_state_t *state, void *user_data) {
- td_state = cur_dance(state);
- switch (td_state) {
- case SINGLE_TAP:
- SEND_STRING(SS_LCTL("c"));
- break;
- case SINGLE_HOLD:
- register_mods(MOD_BIT(KC_RCTL));
- break;
- case DOUBLE_TAP:
- SEND_STRING(SS_LCTL("v"));
- }
-}
-
-void ctl_copy_reset (tap_dance_state_t *state, void *user_data) {
- switch (td_state) {
- case SINGLE_TAP:
- break;
- case SINGLE_HOLD:
- unregister_mods(MOD_BIT(KC_RCTL));
- break;
- case DOUBLE_TAP:
- break;
- }
-}
-
-#if defined(HAS_ROTARY)
- bool encoder_update_user(uint8_t index, bool clockwise) {
- if (index == 0) { /* First encoder */
- if (clockwise) {
- tap_code(KC_VOLD);
- } else {
- tap_code(KC_VOLU);
- }
- }
- return true;
- }
-#endif
-
-#if defined(HAS_INDICATORS)
- static uint8_t led_user = 0;
-#endif
-
-void lock_unlock (tap_dance_state_t *state, void *user_data) {
- td_state = cur_dance(state);
- switch (td_state) {
- case SINGLE_TAP: // Ctl + Alt + Del to unlock workstation
- tap_code16(KC_CAD);
- #if defined(HAS_INDICATORS)
- led_user = 0;
- #if defined(KEYBOARD_sneakbox_aliceclone) || defined(KEYBOARD_mechlovin_adelais_standard_led_arm_rev4_stm32f303)
- led_user = 1;
- #endif
- writePin(INDICATOR_PIN_0, !led_user);
- wait_ms(200);
- writePin(INDICATOR_PIN_1, !led_user);
- wait_ms(200);
- writePin(INDICATOR_PIN_2, !led_user);
- #endif
- break;
- case SINGLE_HOLD:
- break;
- case DOUBLE_TAP: //Lock workstation
- tap_code16(KC_LOCK);
- #if defined(HAS_INDICATORS)
- led_user = 1;
- #if defined(KEYBOARD_sneakbox_aliceclone) || defined(KEYBOARD_mechlovin_adelais_standard_led_arm_rev4_stm32f303)
- led_user = 0;
- #endif
- writePin(INDICATOR_PIN_2, !led_user);
- wait_ms(200);
- writePin(INDICATOR_PIN_1, !led_user);
- wait_ms(200);
- writePin(INDICATOR_PIN_0, !led_user);
- #endif
- break;
- }
-}
-
-tap_dance_action_t tap_dance_actions[] = {
- [TD_WIN] = ACTION_TAP_DANCE_FN(lock_unlock),
- [TD_ESC] = ACTION_TAP_DANCE_DOUBLE(KC_ESC, KC_GRV),
- [TD_RCTL] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, ctl_copy_finished, ctl_copy_reset)
-};
-
-bool process_record_user(uint16_t keycode, keyrecord_t *record) {
- switch (keycode) {
- case KC_MAKE:
- if (!record->event.pressed) {
- uint8_t mods = get_mods();
- clear_mods();
- if (mods & MOD_MASK_SHIFT) {
- send_string_with_delay_P(PSTR("qmk flash -j 6 -kb " QMK_KEYBOARD " -km " QMK_KEYMAP "\n"), 10); //New way
- reset_keyboard();
- }
- else
- send_string_with_delay_P(PSTR("qmk compile -j 6 -kb " QMK_KEYBOARD " -km " QMK_KEYMAP "\n"), 10); //New way
- set_mods(mods);
- }
- break;
- case KC_RDP: //Opens Windows RDP
- if (!record->event.pressed) {
- register_code(KC_LGUI);
- tap_code(KC_R);
- unregister_code(KC_LGUI);
- wait_ms(200);
- send_string_with_delay_P(PSTR("mstsc"), 10);
- send_string_with_delay_P(PSTR(SS_TAP(X_ENTER)), 10);
- }
- break;
- }
- return process_record_keymap(keycode, record);
-}
diff --git a/users/stanrc85/stanrc85.h b/users/stanrc85/stanrc85.h
deleted file mode 100644
index a6550ca72c..0000000000
--- a/users/stanrc85/stanrc85.h
+++ /dev/null
@@ -1,55 +0,0 @@
-#pragma once
-
-#include "quantum.h"
-#include "version.h"
-
-enum my_layers {
- _NUMPAD = 0, //Macropad numpad
- _NAVKEY, //Macropad nav keys
- _MEDIA, //Macropad media controls
- _RGB, //Macropad RGB controls
- _FN1PAD, //Macropad reset and make commands
- _QWERTY = 0, //Qwerty with custom shortcuts and functions
- _DEFAULT, //Default ANSI for gaming, enable with FN2+RCtl
- _FN1_60, //Function keys, arrows, custom shortcuts, volume control
- _FN2_60 //RGB Underglow controls and RESET
-};
-
-//Aliases for longer keycodes
-#define KC_CAD LALT(LCTL(KC_DEL))
-#define KC_LOCK LGUI(KC_L)
-#define CA_QUOT LCA(KC_QUOT)
-#define CA_SCLN LCA(KC_SCLN)
-#define KC_CTLE LCTL_T(KC_ESC)
-#define LT_SPCF LT(_FN1_60, KC_SPC)
-#define LT_BPCF LT(_FN1_60, KC_BSPC)
-#define TD_TESC TD(TD_ESC)
-#define TD_TWIN TD(TD_WIN)
-#define TD_TCTL TD(TD_RCTL)
-#define CA_COPY LCTL(KC_C)
-#define CA_PSTE LCTL(KC_V)
-
-enum cust_keys {
- KC_MAKE = SAFE_RANGE,
- KC_RDP
-};
-
-enum tap_dance {
- TD_WIN,
- TD_ESC,
- TD_RCTL
-};
-
-// define a type containing as many tapdance states as you need
-typedef enum {
- SINGLE_TAP,
- SINGLE_HOLD,
- DOUBLE_TAP
-} td_state_t;
-
-// function to determine the current tapdance state
-int cur_dance (tap_dance_state_t *state);
-
-// `finished` and `reset` functions for each tapdance keycode
-void ctl_copy_finished (tap_dance_state_t *state, void *user_data);
-void ctl_copy_reset (tap_dance_state_t *state, void *user_data);
diff --git a/users/stanrc85/startup_fanfare.c b/users/stanrc85/startup_fanfare.c
deleted file mode 100644
index ae73261ae5..0000000000
--- a/users/stanrc85/startup_fanfare.c
+++ /dev/null
@@ -1,43 +0,0 @@
-#include "stanrc85.h"
-
-static uint8_t top = 0;
-static uint8_t middle = 0;
-static uint8_t bottom = 0;
-
-static bool is_enabled = true;
-static bool is_rgblight_startup = true;
-static uint16_t rgblight_startup_loop_timer;
-
-void matrix_scan_user(void) {
- // Boot up "fanfare"
- if (is_rgblight_startup && is_keyboard_master()) {
- if (timer_elapsed(rgblight_startup_loop_timer) > 10) {
- static uint8_t counter;
- counter++;
- if (counter == 1) {
- top = 1;
- writePin(INDICATOR_PIN_0, top);
- wait_ms(300);
- top = 0;
- writePin(INDICATOR_PIN_0, top);
- }
- if (counter == 2) {
- middle = 1;
- writePin(INDICATOR_PIN_1, middle);
- wait_ms(300);
- middle = 0;
- writePin(INDICATOR_PIN_1, middle);
- }
- if (counter == 3) {
- bottom = 1;
- writePin(INDICATOR_PIN_2, bottom);
- wait_ms(300);
- bottom = 0;
- writePin(INDICATOR_PIN_2, bottom);
- }
- if (counter == 4) {
- is_enabled = is_rgblight_startup = false;
- }
- }
- }
-}
diff --git a/users/talljoe/config.h b/users/talljoe/config.h
deleted file mode 100644
index 6cf0605be3..0000000000
--- a/users/talljoe/config.h
+++ /dev/null
@@ -1,22 +0,0 @@
-/* Copyright 2020 Joseph Wasson
- *
- * 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 PERMISSIVE_HOLD
-
-#define RESET_LAYER 15
-
-#define COMBO_TERM 250
diff --git a/users/talljoe/macros.c b/users/talljoe/macros.c
deleted file mode 100644
index 1afc1ef7f6..0000000000
--- a/users/talljoe/macros.c
+++ /dev/null
@@ -1,40 +0,0 @@
-/* Copyright 2020 Joseph Wasson
- *
- * 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 "talljoe.h"
-
-extern keymap_config_t keymap_config;
-
-ostype_t get_os() {
- if(keymap_config.swap_lalt_lgui) {
- return MACOSX;
- }
-
- return WINDOWS;
-}
-
-#define IS_OSX() (get_os() == MACOSX)
-
-#define MOD_SEND(KEY) (IS_OSX() ? SEND_STRING(SS_LCMD(KEY)) : SEND_STRING(SS_LCTL(KEY)))
-
-void macro_copy(void) { MOD_SEND("c"); }
-void macro_paste(void) { MOD_SEND("v"); }
-void macro_lock(void) {
- if (IS_OSX()) {
- SEND_STRING(SS_LCTL(SS_LCMD("q")));
- } else {
- SEND_STRING(SS_LGUI("l"));
- }
-}
diff --git a/users/talljoe/macros.h b/users/talljoe/macros.h
deleted file mode 100644
index 832d4403fc..0000000000
--- a/users/talljoe/macros.h
+++ /dev/null
@@ -1,27 +0,0 @@
-/* Copyright 2020 Joseph Wasson
- *
- * 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/>.
- */
-
-typedef enum OSTYPE {
- WINDOWS,
- MACOSX,
- LINUX
-} ostype_t;
-
-ostype_t get_os(void);
-
-void macro_copy(void);
-void macro_paste(void);
-void macro_lock(void);
diff --git a/users/talljoe/readme.md b/users/talljoe/readme.md
deleted file mode 100644
index e70c5c6dc0..0000000000
--- a/users/talljoe/readme.md
+++ /dev/null
@@ -1,7 +0,0 @@
-Copyright 2018 Joe Wasson <info@talljoe.com> @talljoe
-
-Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. \ No newline at end of file
diff --git a/users/talljoe/rules.mk b/users/talljoe/rules.mk
deleted file mode 100644
index 957ce2a71a..0000000000
--- a/users/talljoe/rules.mk
+++ /dev/null
@@ -1,18 +0,0 @@
-INTROSPECTION_KEYMAP_C = talljoe.c
-
-SRC += macros.c $(wildcard users/talljoe/tapdance/*.c)
-ifeq ($(strip $(VISUALIZER_ENABLE)), yes)
- SRC += visualizer.c
-endif
-
-ifeq ($(strip $(FLASH_BOOTLOADER)), yes)
- OPT_DEFS += -DFLASH_BOOTLOADER
-endif
-
-EXTRAFLAGS+=-flto
-
-TAP_DANCE_ENABLE=yes
-CONSOLE_ENABLE=no
-COMMAND_ENABLE=no
-DYNAMIC_KEYMAP_ENABLE=no
-BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite
diff --git a/users/talljoe/talljoe.c b/users/talljoe/talljoe.c
deleted file mode 100644
index 61158be760..0000000000
--- a/users/talljoe/talljoe.c
+++ /dev/null
@@ -1,229 +0,0 @@
-/* Copyright 2020 Joseph Wasson
- *
- * 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 "talljoe.h"
-#ifdef ZEAL_RGB
-#include "../../../keyboards/wilba_tech/wt_rgb_backlight.h"
-#endif
-
-#ifdef VISUALIZER_ENABLE
-const char layer_names[32][16] = {
- [_BASE] = "QWERTY",
- [_WORKMAN] = "Workman",
- [_NORMAN] = "Norman",
- [_DVORAK] = "Dvorak",
- [_COLMAK] = "Colmak",
- [_MALTROFF] = "Maltroff",
- [_NORTRON] = "Nortron",
- [_GAME] = "Game",
- [_NAV] = "Navigation",
- [_NUM] = "Numpad",
- [_ADJUST] = "Adjust",
- [_RESET] = "Reset",
-};
-#endif
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [_BASE] = TEMPLATE_TKL(
- US_LOCK, 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, MO_ADJ ,
- US_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 , US_BSLS, KC_INS , KC_HOME, KC_PGUP,
- US_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_BSPC, KC_DEL , KC_END , KC_PGDN,
- CTL_ESC, KC_A, KC_S, KC_D, KC_F, KC_G , KC_H, KC_J, KC_K, KC_L, US_SCLN, KC_QUOT, US_ENT ,
- SH_LBRC, KC_Z, KC_X, KC_C, KC_V, KC_B , KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, SH_RBRC, KC_UP ,
- KC_LCTL, KC_LGUI, KC_LALT, KC_SPC2, KC_SPC3, KC_SPC1, KC_RALT, KC_RGUI, KC_RCTL, KC_PTT , KC_LEFT, KC_DOWN, KC_RGHT),
- [_WORKMAN] = TEMPLATE(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, KC_Q , KC_D , KC_R , KC_W , KC_B , KC_J , KC_F , KC_U , KC_P , US_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, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______),
- [_NORMAN] = TEMPLATE(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, KC_Q , KC_W , KC_D , KC_F , KC_K , KC_J , KC_U , KC_R , KC_L , US_SCLN, _______, _______, _______,
- _______, KC_A , KC_S , KC_E , KC_T , KC_G , KC_Y , KC_N , KC_I , KC_O , KC_H , _______, _______,
- _______, KC_Z , KC_X , KC_C , KC_V , KC_B , KC_P , KC_M , KC_COMM, KC_DOT , KC_SLSH, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______),
- [_DVORAK] = TEMPLATE(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_LBRC, KC_RBRC, _______, _______,
- _______, 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_A, KC_O, KC_E, KC_U, KC_I , KC_D, KC_H, KC_T, KC_N, KC_S, US_MINS, _______,
- _______, US_SCLN, KC_Q, KC_J, KC_K, KC_X , KC_B, KC_M, KC_W, KC_V, KC_Z, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______),
- [_COLMAK] = TEMPLATE(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, KC_Q, KC_W, KC_F, KC_P, KC_G , KC_J, KC_L, KC_U, KC_Y, US_SCLN, _______, _______, _______,
- _______, KC_A, KC_R, KC_S, KC_T, KC_D , KC_H, KC_N, KC_E, KC_I, KC_O , _______, _______,
- _______, KC_Z, KC_X, KC_C, KC_V, KC_B , KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, _______, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______),
-#if (SPACE_COUNT > 1)
- // A tweaked version of the Maltron layout
- [_MALTROFF] = TEMPLATE(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, KC_Q, KC_P, KC_Y, KC_G, KC_B , KC_J, KC_M, KC_U, KC_K, KC_L, _______, _______, _______,
- _______, KC_A, KC_N, KC_I, KC_S, KC_F , KC_D, KC_T, KC_H, KC_O, KC_R , _______, _______,
- _______, KC_Z, KC_X, KC_C, KC_V, KC_SCLN, KC_BSPC, KC_W, KC_COMM, KC_DOT, KC_SLSH, _______, _______,
- _______, _______, _______, MLT_E , _______, _______, _______, _______, _______, _______),
- // It's Norman but like Maltron
- [_NORTRON] = TEMPLATE(
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
- _______, KC_Q , KC_W , KC_D , KC_F , KC_K , KC_J , KC_U , KC_BSPC, KC_L , US_SCLN, _______, _______, _______,
- _______, KC_A , KC_S , KC_I , KC_T , KC_G , KC_Y , KC_N , KC_R , KC_O , KC_H , _______, _______,
- _______, KC_Z , KC_X , KC_C , KC_V , KC_B , KC_P , KC_M , KC_COMM, KC_DOT , KC_SLSH, _______, _______,
- _______, _______, _______, MLT_E , US_ENT , _______, _______, _______, _______, _______),
-#endif
-#ifdef ENABLE_GAME_LAYER
- [_GAME] = TEMPLATE(
- KC_ESC , KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , KC_MINS, KC_EQL , KC_BSLS, KC_GRV,
- 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_BSPC,
- MO_NAV , 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, MO_ADJ ,
- KC_LCTL, KC_PTT , KC_PGDN, KC_SPC , KC_SPC , KC_SPC , KC_RALT, KC_APP , KC_RCTL, KC_PTT ),
-#endif
- [_NAV] = TEMPLATE_NAV(
- KC_GRV , KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_F5 , KC_F6 , KC_F7 , KC_F8 , KC_F9 , KC_F10 , KC_F11 , KC_F12 , XXXXXXX, XXXXXXX,
- US_TAB , KC_EXLM, KC_AT , KC_HASH, KC_DLR , KC_PERC, KC_INS , KC_PGUP, KC_UP , KC_PGDN, KC_BTN1, KC_BTN3, KC_BTN2, KC_DEL ,
- CTL_ESC, KC_LCBR, KC_RCBR, KC_LPRN, KC_RPRN, KC_AMPR, KC_HOME, KC_LEFT, KC_DOWN, KC_RGHT, KC_END , KC_BSPC, TG_ADJ ,
- KC_LSFT, KC_EQL, KC_PLUS, KC_MINS, KC_UNDS, KC_ASTR, KC_CALC, US_GRV , KC_WBAK, KC_WFWD, KC_WREF, KC_RSFT, KC_APP ,
- KC_LCTL, KC_LGUI, KC_LALT, NV_SPC2, NV_SPC3, NV_SPC1, KC_RALT, KC_RGUI, KC_RCTL, KC_PTT ),
- [_NUM] = TEMPLATE_NUM(
- XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
- KC_GRV , KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_VOLU, KC_CIRC, KC_7, KC_8, KC_9, KC_PMNS, XXXXXXX, XXXXXXX, KC_DEL ,
- CTL_ESC, KC_F5 , KC_F6 , KC_F7 , KC_F8 , KC_MUTE, KC_PENT, KC_4, KC_5, KC_6, KC_PPLS, KC_BSPC, KC_ENT ,
- KC_LSFT, KC_F9 , KC_F10 , KC_F11 , KC_F12 , KC_VOLD, KC_PIPE, KC_1, KC_2, KC_3, KC_PAST, KC_PSLS, TG_NUM ,
- KC_LCTL, KC_LGUI, KC_LALT, NM_SPC2, NM_SPC3, NM_SPC1, KC_PDOT, KC_PCMM, KC_RCTL, KC_PTT ),
- // Adjust layer is on the split-shift key; or NAV+Enter (for non-split keyboards)
- [_ADJUST] = TEMPLATE_ADJUST(
- MO_RST , FX(1) , FX(2) , FX(3) , FX(4) , FX(5) , FX(6) , FX(7) , FX(8) , FX(9) , FX(10) , BR_DEC , BR_INC , XXXXXXX, MO_RST ,
- MO_RST , H1_INC , S1_INC , H2_INC , S2_INC , EF_INC , RGB_HUI, RGB_SAI, RGB_MOD, RGB_M_P, DFAULTS, RGB_VAD, RGB_VAI, MO_RST ,
- XXXXXXX, H1_DEC , S1_DEC , H2_DEC , S2_DEC , EF_DEC , RGB_HUD, RGB_SAD, RGB_RMOD,RGB_M_K, RGB_M_B, RGB_M_G, TG_ADJ ,
- TG_NKRO, LY_QWER, LY_WORK, LY_CLMK, LY_DVRK, LY_NTRN, LY_NRMN, LY_MALT, XXXXXXX, XXXXXXX, KC_MAKE, KC_CAPS, XXXXXXX,
- MO_RST , AG_SWAP, AG_NORM, XXXXXXX, XXXXXXX, BL_TOGG, RGB_TOG, XXXXXXX, XXXXXXX, TG_GAME),
- // To Reset hit FN + ` + Esc
- [_RESET] = TEMPLATE_RESET,
-};
-
-__attribute__((weak))
-void matrix_scan_keymap(void) {
-}
-
-void matrix_scan_user(void) {
- matrix_scan_keymap();
-
- #ifdef KEYBOARD_gh60
- if (IS_LAYER_ON(_GAME)) {
- gh60_wasd_leds_on();
- } else {
- gh60_wasd_leds_off();
- }
- #endif
-}
-
-void matrix_init_user(void) {
- if (!eeconfig_is_enabled()) {
- eeconfig_init();
- }
-}
-
-layer_state_t default_layer_state_set_kb(layer_state_t state) {
- // persist changes to default layers
- eeconfig_update_default_layer(state);
- return state;
-}
-
-__attribute__ ((weak))
-bool process_record_keymap(uint16_t keycode, keyrecord_t *record) {
- return true;
-}
-
-#ifdef ZEAL_RGB
-extern backlight_config g_config;
-#endif
-bool process_record_user(uint16_t keycode, keyrecord_t *record) {
-#ifdef ZEAL_RGB
- static uint8_t last_effect;
-#endif
-
-#ifdef RGBLIGHT_ENABLE
- static uint32_t savedRgbMode;
- static uint16_t savedHue;
- static uint8_t savedSat;
- static uint8_t savedVal;
-
- if (keycode == KC_ESC) {
- if (record->event.pressed) {
- savedRgbMode = rgblight_get_mode();
- savedHue = rgblight_get_hue();
- savedSat = rgblight_get_sat();
- savedVal = rgblight_get_val();
- rgblight_mode(1);
- rgblight_setrgb(255, 0, 0);
- } else {
- rgblight_mode(savedRgbMode);
- rgblight_sethsv(savedHue, savedSat, savedVal);
- }
- }
-#endif
-// If console is enabled, it will print the matrix position and status of each key pressed
-#ifdef CONSOLE_ENABLE
- xprintf("KL: row: %u, column: %u, pressed: %u\n", record->event.key.row, record->event.key.col, record->event.pressed);
-#endif //CONSOLE_ENABLE
-
- switch (keycode) {
- case KC_MAKE: // Compiles the firmware, and adds the flash command based on keyboard bootloader
- if (!record->event.pressed) {
- uint8_t temp_mod = get_mods();
- uint8_t temp_osm = get_oneshot_mods();
- clear_mods(); clear_oneshot_mods();
- SEND_STRING("make " QMK_KEYBOARD ":" QMK_KEYMAP);
-#ifndef FLASH_BOOTLOADER
- if ((temp_mod | temp_osm) & MOD_MASK_SHIFT)
-#endif
- {
- SEND_STRING(":flash");
- }
- if ((temp_mod | temp_osm) & MOD_MASK_CTRL) {
- SEND_STRING(" -j8 --output-sync");
- }
- tap_code(KC_ENT);
- set_mods(temp_mod);
- }
- return false;
- break;
-#ifdef ZEAL_RGB
- case BL_TOGG:
- if (record->event.pressed) {
- if (g_config.effect) {
- last_effect = g_config.effect;
- g_config.effect = 0;
- } else {
- g_config.effect = last_effect;
- }
- }
- return false;
- case EFFECT...EFFECT_END:
- if (record->event.pressed) {
- uint8_t effect = keycode - EFFECT;
- if(effect == g_config.effect)
- effect = 0; // Toggle effect on second press
- g_config.effect = effect;
- backlight_config_save();
- }
- return false;
-#endif
- }
- return process_record_keymap(keycode, record);
-}
diff --git a/users/talljoe/talljoe.h b/users/talljoe/talljoe.h
deleted file mode 100644
index 04d640b1ea..0000000000
--- a/users/talljoe/talljoe.h
+++ /dev/null
@@ -1,184 +0,0 @@
-/* Copyright 2020 Joseph Wasson
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-#pragma once
-
-#include QMK_KEYBOARD_H
-#include "tapdance/tapdance.h"
-#include "macros.h"
-
-enum userspace_custom_keycodes {
- KC_MAKE = SAFE_RANGE, // can always be here
- DFAULTS,
- TOGGLE_BACKLIGHT,
- EFFECT,
- EFFECT_END = EFFECT + 20
-};
-
-#ifndef RESET_LAYER
-#define RESET_LAYER 15
-#endif
-
-enum layers {
- _BASE = 0,
- _WORKMAN,
- _NORMAN,
- _DVORAK,
- _COLMAK,
- _MALTROFF,
- _NORTRON,
- _GAME,
- _NAV,
- _NUM,
- _ADJUST,
- _RESET = RESET_LAYER,
-};
-
-#ifdef VISUALIZER_ENABLE
- extern const char layer_names[][16];
-#endif
-
-#define MO_NAV MO(_NAV)
-#define MO_ADJ TD(TD_FUNCTION)
-#define MO_RST MO(_RESET)
-#define TG_ADJ TG(_ADJUST)
-#define TG_NUM TG(_NUM)
-#ifdef ENABLE_GAME_LAYER
- #define TG_GAME TG(_GAME)
-#else
- #define TG_GAME KC_NO
-#endif
-#define LY_QWER DF(_BASE)
-#define LY_WORK DF(_WORKMAN)
-#define LY_NRMN DF(_NORMAN)
-#define LY_DVRK DF(_DVORAK)
-#define LY_CLMK DF(_COLMAK)
-#if SPACE_COUNT >= 2
- #define LY_MALT DF(_MALTROFF)
- #define LY_NTRN DF(_NORTRON)
-#else
- #define LY_MALT KC_NO
- #define LY_NTRN KC_NO
-#endif
-#define TG_NKRO MAGIC_TOGGLE_NKRO
-#define KC_PTT KC_F24
-#define MS_MID KC_MS_BTN3
-#define FX(x) (EFFECT + x)
-
-#define CTL_ESC CTL_T(KC_ESC)
-#define US_ENT RCTL_T(KC_ENT)
-#define US_MINS RCTL_T(KC_QUOT)
-#define US_BSLS LCA_T(KC_BSLS)
-#define US_SCLN TD(TD_SEMICOLON)
-#define US_GRV TD(TD_GRAVE)
-#define US_TAB C_S_T(KC_TAB)
-#define SH_LBRC LSFT_T(KC_LBRC)
-#define SH_RBRC RSFT_T(KC_RBRC)
-#define US_LOCK TD(TD_LOCK)
-
-#define MLT_E LT(_NUM, KC_E)
-
-#ifndef SWAP_HANDS_ENABLE
-#undef SH_T
-#define SH_T
-#endif
-
-#define KC_SPC1 LT(_NAV,KC_SPC)
-#define KC_SPC2 LT(_NUM,KC_ENT)
-#define KC_SPC3 SH_T(KC_BSPC)
-
-#define NV_SPC1 KC_SPC
-#define NV_SPC2 KC_ENT
-#define NV_SPC3 KC_SPC
-
-#define NM_SPC1 KC_0
-#define NM_SPC2 XXXXXXX
-#define NM_SPC3 KC_SPC
-
-#ifndef ZEAL_RGB
- #define BR_INC KC_NO
- #define BR_DEC KC_NO
- #define EF_INC KC_NO
- #define EF_DEC KC_NO
- #define ES_INC KC_NO
- #define ES_DEC KC_NO
- #define H1_INC KC_NO
- #define H1_DEC KC_NO
- #define S1_INC KC_NO
- #define S1_DEC KC_NO
- #define H2_INC KC_NO
- #define H2_DEC KC_NO
- #define S2_INC KC_NO
- #define S2_DEC KC_NO
- #define TL_LOWR KC_NO
- #define FN_MO2 KC_NO
-#endif
-
-#ifndef TEMPLATE
- #define _X_ KC_NO
- #define TEMPLATE( \
- KJ4, KJ7, KI7, KH7, KG7, KG4, KF4, KF7, KE7, KD7, KR7, KR4, KE4, KB2, KJ6, \
- KJ2, KJ5, KI5, KH5, KG5, KG2, KF2, KF5, KE5, KD5, KR5, KR2, KE2, KB3, \
- KI2, KJ3, KI3, KH3, KG3, KG6, KF6, KF3, KE3, KD3, KR3, KR6, KB1, \
- KN2, KJ1, KI1, KH1, KG1, KG0, KF0, KF1, KE1, KD1, KR0, KN3, KA5, \
- KA4, KP2, KC6, KX1, KK6, KX2, KC0, KM3, KD0, KA1 \
- ) TEMPLATE_TKL ( \
- KJ6, _X_, _X_, _X_, _X_, _X_, _X_, _X_, _X_, _X_, _X_, _X_, _X_, _X_, _X_, KA5, \
- KJ4, KJ7, KI7, KH7, KG7, KG4, KF4, KF7, KE7, KD7, KR7, KR4, KE4, KB2, _X_, _X_, _X_, \
- KJ2, KJ5, KI5, KH5, KG5, KG2, KF2, KF5, KE5, KD5, KR5, KR2, KE2, KB3, _X_, _X_, _X_, \
- KI2, KJ3, KI3, KH3, KG3, KG6, KF6, KF3, KE3, KD3, KR3, KR6, KB1, \
- KN2, KJ1, KI1, KH1, KG1, KG0, KF0, KF1, KE1, KD1, KR0, KN3, _X_, \
- KA4, KP2, KC6, KX1, KK6, KX2, KC0, KM3, KD0, KA1, _X_, _X_, _X_ \
- )
-#endif
-#ifndef TEMPLATE_TKL
- #define TEMPLATE_TKL( \
- KJ6, KI4, KH4, KH2, KH6, KA7, KE6, KD2, KD4, KB4, KB7, KB6, KB0, KC7, KC5, KA5, \
- KJ4, KJ7, KI7, KH7, KG7, KG4, KF4, KF7, KE7, KD7, KR7, KR4, KE4, KB2, KL4, KO4, KQ4, \
- KJ2, KJ5, KI5, KH5, KG5, KG2, KF2, KF5, KE5, KD5, KR5, KR2, KE2, KB3, KK4, KO7, KQ7, \
- KI2, KJ3, KI3, KH3, KG3, KG6, KF6, KF3, KE3, KD3, KR3, KR6, KB1, \
- KN2, KJ1, KI1, KH1, KG1, KG0, KF0, KF1, KE1, KD1, KR0, KN3, KO6, \
- KA4, KP2, KC6, KX1, KK6, KX2, KC0, KM3, KD0, KA1, KO0, KK0, KL0 \
- ) TEMPLATE( \
- KJ4, KJ7, KI7, KH7, KG7, KG4, KF4, KF7, KE7, KD7, KR7, KR4, KE4, KB2, KJ6, \
- KJ2, KJ5, KI5, KH5, KG5, KG2, KF2, KF5, KE5, KD5, KR5, KR2, KE2, KB3, \
- KI2, KJ3, KI3, KH3, KG3, KG6, KF6, KF3, KE3, KD3, KR3, KR6, KB1, \
- KN2, KJ1, KI1, KH1, KG1, KG0, KF0, KF1, KE1, KD1, KR0, KN3, KA5, \
- KA4, KP2, KC6, KX1, KK6, KX2, KC0, KM3, KD0, KA1 \
- )
-#endif
-
-#ifndef TEMPLATE_ALT
- #define TEMPLATE_ALT TEMPLATE
-#endif
-#ifndef TEMPLATE_NUM
- #define TEMPLATE_NUM TEMPLATE_ALT
-#endif
-#ifndef TEMPLATE_NAV
- #define TEMPLATE_NAV TEMPLATE_ALT
-#endif
-#ifndef TEMPLATE_ADJUST
- #define TEMPLATE_ADJUST TEMPLATE_ALT
-#endif
-
-#ifndef TEMPLATE_RESET
- #define TEMPLATE_RESET TEMPLATE_ALT( \
- QK_BOOT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, QK_BOOT, \
- QK_BOOT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, QK_BOOT, \
- XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \
- XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \
- QK_BOOT, XXXXXXX, XXXXXXX, XXXXXXX, QK_BOOT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX)
-#endif
diff --git a/users/talljoe/tapdance/actions/td.function.c b/users/talljoe/tapdance/actions/td.function.c
deleted file mode 100644
index 577f2be3d4..0000000000
--- a/users/talljoe/tapdance/actions/td.function.c
+++ /dev/null
@@ -1,35 +0,0 @@
-/* Copyright 2020 Joseph Wasson
- *
- * 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/>.
- */
-
-static struct {
- int state;
-} function_state = {0};
-
-// Send semi-colon + enter on two taps
-void tap_dance_function_finished(tap_dance_state_t *state, void *user_data) {
- function_state.state = hold_cur_dance(state);
- switch (function_state.state) {
- case SINGLE_HOLD: layer_on(_ADJUST); break;
- }
-}
-
-void tap_dance_function_reset(tap_dance_state_t *state, void *user_data) {
- switch (function_state.state) {
- case SPECIAL: reset_keyboard(); break;
- case SINGLE_HOLD: layer_off(_ADJUST); break;
- }
- function_state.state = 0;
-}
diff --git a/users/talljoe/tapdance/actions/td.grave.c b/users/talljoe/tapdance/actions/td.grave.c
deleted file mode 100644
index f58f00f8c0..0000000000
--- a/users/talljoe/tapdance/actions/td.grave.c
+++ /dev/null
@@ -1,36 +0,0 @@
-/* Copyright 2020 Joseph Wasson
- *
- * 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/>.
- */
-
-// Send `. ~. ```
-void tap_dance_grave_finished(tap_dance_state_t *state, void *user_data) {
- switch(state->count) {
- case 1:
- SEND_STRING("`");
- break;
- case 2:
- SEND_STRING("~");
- break;
- }
-}
-
-void tap_dance_grave_each(tap_dance_state_t *state, void *user_data) {
- if(state->count == 3) {
- SEND_STRING("```");
- } else if (state->count > 3) {
- SEND_STRING("`");
- }
-}
-
diff --git a/users/talljoe/tapdance/actions/td.lock.c b/users/talljoe/tapdance/actions/td.lock.c
deleted file mode 100644
index bdca0bb11b..0000000000
--- a/users/talljoe/tapdance/actions/td.lock.c
+++ /dev/null
@@ -1,35 +0,0 @@
-/* Copyright 2020 Joseph Wasson
- *
- * 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/>.
- */
-
-static struct {
- int state;
-} lock_state = {0};
-
-// Send semi-colon + enter on two taps
-void tap_dance_lock_finished(tap_dance_state_t *state, void *user_data) {
- lock_state.state = cur_dance(state);
- switch (lock_state.state) {
- case SINGLE_TAP: register_code(KC_ESC); break;
- case SINGLE_HOLD: macro_lock(); break;
- }
-}
-
-void tap_dance_lock_reset(tap_dance_state_t *state, void *user_data) {
- switch (lock_state.state) {
- case SINGLE_TAP: unregister_code(KC_ESC); break;
- }
- lock_state.state = 0;
-}
diff --git a/users/talljoe/tapdance/actions/td.semicolon.c b/users/talljoe/tapdance/actions/td.semicolon.c
deleted file mode 100644
index c2fc500c48..0000000000
--- a/users/talljoe/tapdance/actions/td.semicolon.c
+++ /dev/null
@@ -1,54 +0,0 @@
-/* Copyright 2020 Joseph Wasson
- *
- * 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/>.
- */
-
-static struct {
- int semicolon;
- bool mods;
-} tap_state = {0};
-
-void tap_dance_semicolon_each(tap_dance_state_t *state, void *user_data) {
- tap_state.mods |= get_mods();
-}
-
-// Send semi-colon + enter on two taps
-void tap_dance_semicolon_finished(tap_dance_state_t *state, void *user_data) {
- tap_state.semicolon = hold_cur_dance(state);
- switch (tap_state.semicolon) {
- case SINGLE_TAP: case DOUBLE_HOLD: register_code(KC_SCLN); break;
- case SINGLE_HOLD: layer_on(_NUM); break;
- }
-}
-
-void tap_dance_semicolon_reset(tap_dance_state_t *state, void *user_data) {
- switch (tap_state.semicolon) {
- case SINGLE_TAP: case DOUBLE_HOLD: unregister_code(KC_SCLN); break;
- case DOUBLE_TAP: {
- if (tap_state.mods) {
- SEND_STRING(";;"); // send normal when mods are pressed
- }
- else {
- SEND_STRING(";\n");
- }
- break;
- }
- case TRIPLE_TAP: {
- SEND_STRING(";\n\n");
- }
- case SPECIAL: layer_invert(_NUM); break;
- case SINGLE_HOLD: layer_off(_NUM); break;
- }
- tap_state.semicolon = 0;
-}
diff --git a/users/talljoe/tapdance/tapdance.h b/users/talljoe/tapdance/tapdance.h
deleted file mode 100644
index 532e978ca8..0000000000
--- a/users/talljoe/tapdance/tapdance.h
+++ /dev/null
@@ -1,26 +0,0 @@
-/* Copyright 2020 Joseph Wasson
- *
- * 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 "td_setup.h"
-
-enum tap_dancers {
- TD_SEMICOLON,
- TD_GRAVE,
- TD_LOCK,
- TD_FUNCTION,
-};
-
diff --git a/users/talljoe/tapdance/tapdance_actions.c b/users/talljoe/tapdance/tapdance_actions.c
deleted file mode 100644
index b574586171..0000000000
--- a/users/talljoe/tapdance/tapdance_actions.c
+++ /dev/null
@@ -1,28 +0,0 @@
-/* Copyright 2020 Joseph Wasson
- *
- * 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 "../talljoe.h"
-#include "actions/td.grave.c"
-#include "actions/td.lock.c"
-#include "actions/td.semicolon.c"
-#include "actions/td.function.c"
-
-tap_dance_action_t tap_dance_actions[] = {
- [TD_SEMICOLON] = ACTION_TAP_DANCE_FN_ADVANCED(tap_dance_semicolon_each, tap_dance_semicolon_finished, tap_dance_semicolon_reset),
- [TD_LOCK] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, tap_dance_lock_finished, tap_dance_lock_reset),
- [TD_GRAVE] = ACTION_TAP_DANCE_FN_ADVANCED(tap_dance_grave_each, tap_dance_grave_finished, NULL),
- [TD_FUNCTION] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, tap_dance_function_finished, tap_dance_function_reset),
-};
diff --git a/users/talljoe/tapdance/td_setup.c b/users/talljoe/tapdance/td_setup.c
deleted file mode 100644
index 0742763266..0000000000
--- a/users/talljoe/tapdance/td_setup.c
+++ /dev/null
@@ -1,70 +0,0 @@
-/* Copyright 2020 Joseph Wasson
- *
- * 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 "tapdance.h"
-
-int cur_dance (tap_dance_state_t *state) {
- if (state->count == 1) {
- //If count = 1, and it has been interrupted - it doesn't matter if it is pressed or not: Send SINGLE_TAP
- if (state->interrupted) {
- // if (!state->pressed) return SINGLE_TAP;
- //need "permissive hold" here.
- // else return SINGLE_HOLD;
- //If the interrupting key is released before the tap-dance key, then it is a single HOLD
- //However, if the tap-dance key is released first, then it is a single TAP
- //But how to get access to the state of the interrupting key????
- return SINGLE_TAP;
- }
- else {
- if (!state->pressed) return SINGLE_TAP;
- else return SINGLE_HOLD;
- }
- }
- //If count = 2, and it has been interrupted - assume that user is trying to type the letter associated
- //with single tap.
- else if (state->count == 2) {
- if (state->interrupted) return DOUBLE_SINGLE_TAP;
- else if (state->pressed) return DOUBLE_HOLD;
- else return DOUBLE_TAP;
- }
- else if ((state->count == 3) && ((state->interrupted) || (!state->pressed))) return TRIPLE_TAP;
- else if (state->count == 3) return TRIPLE_HOLD;
- else return SPECIAL;
-}
-
-int hold_cur_dance (tap_dance_state_t *state) {
- if (state->count == 1) {
- if (state->interrupted) {
- if (!state->pressed) return SINGLE_TAP;
- else return SINGLE_HOLD;
- }
- else {
- if (!state->pressed) return SINGLE_TAP;
- else return SINGLE_HOLD;
- }
- }
- //If count = 2, and it has been interrupted - assume that user is trying to type the letter associated
- //with single tap.
- else if (state->count == 2) {
- if (state->pressed) return DOUBLE_HOLD;
- else return DOUBLE_TAP;
- }
- else if (state->count == 3) {
- if (!state->pressed) return TRIPLE_TAP;
- else return TRIPLE_HOLD;
- }
- else return SPECIAL;
-}
diff --git a/users/talljoe/tapdance/td_setup.h b/users/talljoe/tapdance/td_setup.h
deleted file mode 100644
index e9685c83b2..0000000000
--- a/users/talljoe/tapdance/td_setup.h
+++ /dev/null
@@ -1,29 +0,0 @@
-/* Copyright 2020 Joseph Wasson
- *
- * 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/>.
- */
-
-enum {
- SINGLE_TAP = 1,
- SINGLE_HOLD = 2,
- DOUBLE_TAP = 3,
- DOUBLE_HOLD = 4,
- DOUBLE_SINGLE_TAP = 5, //send two single taps
- TRIPLE_TAP = 6,
- TRIPLE_HOLD = 7,
- SPECIAL = 8
-};
-
-int cur_dance (tap_dance_state_t *state);
-int hold_cur_dance (tap_dance_state_t *state);
diff --git a/users/toinux/keymap_qwerty_fr.h b/users/toinux/keymap_qwerty_fr.h
deleted file mode 100644
index 3c0195c7f0..0000000000
--- a/users/toinux/keymap_qwerty_fr.h
+++ /dev/null
@@ -1,153 +0,0 @@
-/* Copyright 2022
- *
- * 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 "keycodes.h"
-
-// clang-format off
-
-// keymap adapted for https://qwerty-fr.org/
-
-/* AltGr symbols (* symbol = dead key)
- * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
- * │* `│ ¹ │ ² │ ê │ € │* ¯│* ^│ û │ î │ ô │ ø │ – │ ≠ │ │
- * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤
- * │ │ â │ é │ è │ ® │ þ │* ̑ │ ù │ î │ ò │ œ │ « │ » │ │
- * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │
- * │ │ à │ æ │ ë │ │* Ω│ ÿ │ ü │ ï │ ö │ ´ │ ̀ │ │ │
- * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤
- * │ │ ≤ │ ä │ × │ ç │ │ ß │ ñ │* ∫│* ¸│ · │ ’ │ │
- * ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤
- * │ │ │ │ non-breaking space │ │ │ │ │
- * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
- */
-// Row 1
-#define QF_DGRV RALT(KC_GRV) // ` (dead)
-#define QF_SUP1 RALT(KC_1) // ¹
-#define QF_SUP2 RALT(KC_2) // ²
-#define QF_ECIR RALT(KC_3) // ê
-#define QF_EURO RALT(KC_4) // €
-#define QF_MACR RALT(KC_5) // ¯ (dead)
-#define QF_DCIR RALT(KC_6) // ^ (dead)
-#define QF_UCIR RALT(KC_7) // û
-#define QF_ICIR RALT(KC_8) // î
-#define QF_OCIR RALT(KC_9) // ô
-#define QF_OSTR RALT(KC_0) // ø
-#define QF_DASH RALT(KC_MINUS) // –
-#define QF_NEQL RALT(KC_EQUAL) // ≠
-// Row 2
-#define QF_ACIR RALT(KC_Q) // â
-#define QF_EACU RALT(KC_W) // é
-#define QF_EGRV RALT(KC_E) // è
-#define QF_REGD RALT(KC_R) // ®
-#define QF_THRN RALT(KC_T) // þ
-#define QF_RBRV RALT(KC_Y) // ̑ (dead)
-#define QF_UGRV RALT(KC_U) // ù
-#define QF_IGRV RALT(KC_I) // ì
-#define QF_OGRV RALT(KC_O) // ò
-#define QF_OE RALT(KC_P) // œ
-#define QF_LDAQ RALT(KC_LBRC) // «
-#define QF_RDAQ RALT(KC_RBRC) // »
-// Row 3
-#define QF_AGRV RALT(KC_A) // à
-#define QF_AE RALT(KC_S) // æ
-#define QF_EDIA RALT(KC_D) // ë
-#define QF_GR RALT(KC_G) // Greek (dead)
-#define QF_YDIA RALT(KC_H) // ÿ
-#define QF_UDIA RALT(KC_J) // ü
-#define QF_IDIA RALT(KC_K) // ï
-#define QF_ODIA RALT(KC_L) // ö
-#define QF_ACUT RALT(KC_SCLN) // ´ (dead)
-#define QF_AGR RALT(KC_QUOT) // ̀ (dead)
-// Row 4
-#define QF_LTEQ RALT(KC_NUBS) // ≤
-#define QF_ADIA RALT(KC_Z) // ä
-#define QF_MUL RALT(KC_X) // ×
-#define QF_CCED RALT(KC_C) // ç
-#define QF_SS RALT(KC_B) // ß
-#define QF_NTIL RALT(KC_N) // ñ
-#define QF_MATH RALT(KC_M) // Math (dead)
-#define QF_CEDL RALT(KC_COMM) // ¸ (dead)
-#define QF_MED RALT(KC_DOT) // ·
-#define QF_APO RALT(KC_SLSH) // ’
-// Row 5
-#define QF_NBSP RALT(KC_SPC) //   (non-breaking space)
-
-
-/* Shift+AltGr symbols
- * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
- * │* ~│ ¡ │* ˝│ Ê │* ¤│* ˙│* ˇ│ Û │ Î │ Ô │ Ø │ — │ ≈ │ │
- * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤
- * │ │  │ É │ È │ © │ Þ │* ˘│ Ù │ Ì │ Ò │ Œ │ “ │ ” │ │
- * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │
- * │ │ À │ Æ │ Ë │ │ │ Ÿ │ Ü │ Ï │ Ö │* °│* ¨│ „ │ │
- * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤
- * │ │ ≥ │ Ä │ ÷ │ Ç │ │ ẞ │ Ñ │ │ ˛ │ … │ ¿ │ │
- * ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤
- * │ │ │ │ narrow non-breaking spc│ │ │ │ │
- * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
- */
-// Row 1
-#define QF_DTIL S(RALT(KC_GRV)) // ~ (dead)
-#define QF_IEXL S(RALT(KC_1)) // ¡
-#define QF_DACU S(RALT(KC_2)) // ˝ (dead)
-#define QF_ECIU S(RALT(KC_3)) // Ê
-#define QF_CURR S(RALT(KC_4)) // ¤ (dead)
-#define QF_NTON S(RALT(KC_5)) // ˙ (dead)
-#define QF_CARN S(RALT(KC_6)) // ˇ (dead)
-#define QF_UCIU S(RALT(KC_7)) // Û
-#define QF_ICIU S(RALT(KC_8)) // Î
-#define QF_OCIO S(RALT(KC_9)) // Ô
-#define QF_UOST S(RALT(KC_0)) // Ø
-#define QF_NDSH S(RALT(KC_MINUS)) // —
-#define QF_APPR S(RALT(KC_EQUAL)) // ≈
-// Row 2
-#define QF_ACIU S(RALT(KC_Q)) // Â
-#define QF_ECUU S(RALT(KC_W)) // É
-#define QF_EGRU S(RALT(KC_E)) // È
-#define QF_COPY S(RALT(KC_R)) // ©
-#define QF_UTRN S(RALT(KC_T)) // Þ
-#define QF_BRV S(RALT(KC_Y)) // ˘ (dead)
-#define QF_UGRU S(RALT(KC_U)) // Ù
-#define QF_IGRU S(RALT(KC_I)) // Ì
-#define QF_OGRU S(RALT(KC_O)) // Ò
-#define QF_OEU S(RALT(KC_P)) // Œ
-#define QF_LDQU S(RALT(KC_LBRC)) // “
-#define QF_RDQU S(RALT(KC_RBRC)) // ”
-// Row 3
-#define QF_AGRU S(RALT(KC_A)) // À
-#define QF_AEU S(RALT(KC_S)) // Æ
-#define QF_EDIU S(RALT(KC_D)) // Ë
-#define QF_YDIU S(RALT(KC_H)) // Ÿ
-#define QF_UDIU S(RALT(KC_J)) // Ü
-#define QF_IDIU S(RALT(KC_K)) // Ï
-#define QF_ODIU S(RALT(KC_L)) // Ö
-#define QF_DEG S(RALT(KC_SCLN)) // ° (dead)
-#define QF_DIAE S(RALT(KC_QUOT)) // ¨ (dead)
-#define QF_DLQM S(RALT(KC_BSLS)) // „
-// Row 4
-#define QF_GTEQ S(RALT(KC_NUBS)) // ≥
-#define QF_ADIU S(RALT(KC_Z)) // Ä
-#define QF_DIV S(RALT(KC_X)) // ÷
-#define QF_CCDU S(RALT(KC_C)) // Ç
-#define QF_USS S(RALT(KC_B)) // ẞ
-#define QF_NTIU S(RALT(KC_N)) // Ñ
-#define QF_OGON S(RALT(KC_COMM)) // ˛ (dead)
-#define QF_SUSP S(RALT(KC_DOT)) // …
-#define QF_IQUE S(RALT(KC_SLSH)) // ¿
-// Row 5
-#define QF_NNBS RALT(KC_SPC) // (narrow non-breaking space)
diff --git a/users/tominabox1/.gitignore b/users/tominabox1/.gitignore
deleted file mode 100644
index 62a8666982..0000000000
--- a/users/tominabox1/.gitignore
+++ /dev/null
@@ -1,2 +0,0 @@
-*.bmp
-*.py
diff --git a/users/tominabox1/config.h b/users/tominabox1/config.h
deleted file mode 100644
index 7d338005f1..0000000000
--- a/users/tominabox1/config.h
+++ /dev/null
@@ -1,87 +0,0 @@
-#pragma once
-
-// Tapping term settings
-#define TAPPING_TERM_PER_KEY
-#define TAP_HOLD_CAPS_DELAY 350
-
-// OLED settings
-#define OLED_FONT_H "users/tominabox1/doug.c"
-#define OLED_DISABLE_TIMEOUT
-
-#define DEBOUNCE 5
-
-// Setup RGB settings for the Dimple.
-#ifdef KEYBOARD_lazydesigners_dimple
- #ifdef RGBLIGHT_ENABLE
- #undef RGBLED_NUM
- #define RGBLED_NUM 50
-#define RGBLIGHT_EFFECT_BREATHING
-#define RGBLIGHT_EFFECT_RAINBOW_MOOD
-#define RGBLIGHT_EFFECT_RAINBOW_SWIRL
-#define RGBLIGHT_EFFECT_SNAKE
-#define RGBLIGHT_EFFECT_KNIGHT
-#define RGBLIGHT_EFFECT_CHRISTMAS
-#define RGBLIGHT_EFFECT_STATIC_GRADIENT
-#define RGBLIGHT_EFFECT_RGB_TEST
-#define RGBLIGHT_EFFECT_ALTERNATING
-#define RGBLIGHT_EFFECT_TWINKLE
- #define RGBLIGHT_SLEEP
- #endif // RGBLIGHT_ENABLE
-
- #ifdef RGB_MATRIX_ENABLE
- #undef RGBLED_NUM
- #define RGBLED_NUM 50
- #define RGB_MATRIX_LED_COUNT RGBLED_NUM
- #endif // RGBL_MATRIX_ENABLE
-#endif // KEYBOARD_lazydesigners_dimple
-
-// RGB_Matrix settings
-#ifdef RGB_MATRIX_ENABLE
- #define RGB_MATRIX_KEYPRESSES // reacts to keypresses
- #define RGB_DISABLE_WHEN_USB_SUSPENDED // turn off effects when suspended
- #define RGB_MATRIX_LED_FLUSH_LIMIT 16 // limits in milliseconds how frequently an animation will update the LEDs. 16 (16ms) is equivalent to limiting to 60fps (increases keyboard responsiveness)
- #define RGB_MATRIX_MAXIMUM_BRIGHTNESS 150 // limits maximum brightness of LEDs to 150 out of 255. Higher may cause the controller to crash.
- #define RGB_MATRIX_HUE_STEP 8
- #define RGB_MATRIX_SAT_STEP 8
- #define RGB_MATRIX_VAL_STEP 8
- #define RGB_MATRIX_SPD_STEP 10
- #define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_CYCLE_LEFT_RIGHT
- /* Disable the animations you don't want/need. You will need to disable a good number of these
- because they take up a lot of space. Disable until you can successfully compile your firmware. */
-// #undef ENABLE_RGB_MATRIX_ALPHAS_MODS
-// #undef ENABLE_RGB_MATRIX_GRADIENT_UP_DOWN
-# undef ENABLE_RGB_MATRIX_BREATHING
-// #undef ENABLE_RGB_MATRIX_CYCLE_ALL
-// #undef ENABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT
-// #undef ENABLE_RGB_MATRIX_CYCLE_UP_DOWN
-// #undef ENABLE_RGB_MATRIX_CYCLE_OUT_IN
-// #undef ENABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL
-# undef ENABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON
-# undef ENABLE_RGB_MATRIX_DUAL_BEACON
-# undef ENABLE_RGB_MATRIX_RAINBOW_BEACON
-# undef ENABLE_RGB_MATRIX_RAINBOW_PINWHEELS
-// #undef ENABLE_RGB_MATRIX_RAINDROPS
-# undef ENABLE_RGB_MATRIX_JELLYBEN_RAINDROPS
-// # undef ENABLE_RGB_MATRIX_TYPING_HEATMAP
-# undef ENABLE_RGB_MATRIX_DIGITAL_RAIN
-# undef ENABLE_RGB_MATRIX_SOLID_REACTIVE
-# undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE
-// #undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE
-// #undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS
-// #undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS
-# undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS
-# undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS
-# undef ENABLE_RGB_MATRIX_SPLASH
-# undef ENABLE_RGB_MATRIX_MULTISPLASH
-# undef ENABLE_RGB_MATRIX_SOLID_SPLASH
-# undef ENABLE_RGB_MATRIX_SOLID_MULTISPLASH
-#endif //RGB_MATRIX_ENABLE
-
-// Hex size reduction options
-#ifndef NO_DEBUG
- #define NO_DEBUG
-#endif // !NO_DEBUG
-#if !defined(NO_PRINT) && !defined(CONSOLE_ENABLE)
- #define NO_PRINT
-#endif // !NO_PRINT
-#define NO_ACTION_ONESHOT
diff --git a/users/tominabox1/dimple_rgb.c b/users/tominabox1/dimple_rgb.c
deleted file mode 100644
index 299dc830f1..0000000000
--- a/users/tominabox1/dimple_rgb.c
+++ /dev/null
@@ -1,433 +0,0 @@
-#include "dz60rgb.h"
-#include "config.h"
-#if defined (dzrgb60_iso)
-const is31_led g_is31_leds[RGB_MATRIX_LED_COUNT] = {
- {0, K_14, J_14, L_14},
- {0, K_13, J_13, L_13},
- {0, K_12, J_12, L_12},
- {0, K_11, J_11, L_11},
- {0, K_10, J_10, L_10},
- {0, K_9, J_9, L_9},
- {0, K_8, J_8, L_8},
- {0, K_7, J_7, L_7},
- {0, K_6, J_6, L_6},
- {0, K_5, J_5, L_5},
- {0, K_4, J_4, L_4},
- {0, K_3, J_3, L_3},
- {0, K_2, J_2, L_2},
- {0, K_1, J_1, L_1},
- {0, H_15, G_15, I_15},
- {0, H_13, G_13, I_13},
- {0, H_12, G_12, I_12},
- {0, H_11, G_11, I_11},
- {0, H_10, G_10, I_10},
- {0, H_9, G_9, I_9},
- {0, H_8, G_8, I_8},
- {0, H_7, G_7, I_7},
- {0, H_6, G_6, I_6},
- {0, H_5, G_5, I_5},
- {0, H_4, G_4, I_4},
- {0, H_3, G_3, I_3},
- {0, H_2, G_2, I_2},
- {0, H_1, G_1, I_1},
- {0, B_14, A_14, C_14},
- {0, E_12, D_12, F_12},
- {0, E_11, D_11, F_11},
- {0, E_10, D_10, F_10},
- {0, E_9, D_9, F_9},
- {0, E_8, D_8, F_8},
- {0, E_7, D_7, F_7},
- {0, E_6, D_6, F_6},
- {0, E_5, D_5, F_5},
- {0, E_4, D_4, F_4},
- {0, E_3, D_3, F_3},
- {0, E_2, D_2, F_2},
- {0, E_1, D_1, F_1},
- {0, B_13, A_13, C_13},
- {0, B_11, A_11, C_11},
- {0, B_10, A_10, C_10},
- {0, B_9, A_9, C_9},
- {0, B_8, A_8, C_8},
- {0, B_7, A_7, C_7},
- {0, B_6, A_6, C_6},
- {0, B_5, A_5, C_5},
- {0, B_4, A_4, C_4},
- {0, B_3, A_3, C_3},
- {0, B_2, A_2, C_2},
- {0, B_1, A_1, C_1},
- {0, B_15, A_15, C_15},
- {0, E_13, D_13, F_13},
- {0, B_12, A_12, C_12},
- {0, E_15, D_15, F_15},
- {0, B_16, A_16, C_16},
- {0, E_16, D_16, F_16},
- {0, H_16, G_16, I_16},
- {0, K_16, J_16, L_16},
-};
-
-led_config_t g_led_config = { {
- { 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0 },
- { 27, 26, 25, 24, 23, 22, 21, 20, 19, 18, 17, 16, 15, 28 },
- { 40, 39, 38, 37, 36, 35, 34, 33, 32, 31, 30, 29, NO_LED, 14 },
- { 52, 51, 50, 49, 48, 47, 46, 45, 44, 43, 42, 41, NO_LED, NO_LED },
- { 60, 59, 58, NO_LED, NO_LED, 57, NO_LED, NO_LED, NO_LED, 56, 55, 54, NO_LED, 53 }
-}, {
- { 216, 0 }, { 192, 0 }, { 176, 0 }, { 160, 0 }, { 144, 0 }, { 128, 0 }, { 112, 0 }, { 96, 0 }, { 80, 0 }, { 64, 0 }, { 48, 0 }, { 32, 0 }, { 16, 0 }, { 0, 0 },
- { 220, 24 }, { 200, 16 }, { 184, 16 }, { 168, 16 }, { 152, 16 }, { 136, 16 }, { 120, 16 }, { 104, 16 }, { 88, 16 }, { 72, 16 }, { 56, 16 }, { 40, 16 }, { 24, 16 }, { 4, 16 },
- { 204, 32 }, { 188, 32 }, { 172, 32 }, { 156, 32 }, { 140, 32 }, { 124, 32 }, { 108, 32 }, { 92, 32 }, { 76, 32 }, { 60, 32 }, { 44, 32 }, { 28, 32 }, { 6, 32 }, { 210, 48 },
- { 180, 48 }, { 164, 48 }, { 148, 48 }, { 132, 48 }, { 116, 48 }, { 100, 48 }, { 84, 48 }, { 68, 48 }, { 52, 48 }, { 20, 48 }, { 10, 48 }, { 222, 64 }, { 202, 64 }, { 182, 64 },
- { 162, 64 }, { 102, 64 }, { 42, 64 }, { 22, 64 }, { 2, 64 }
-}, {
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
- 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1,
- 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, 1,
- 1, 4, 1, 1, 1
-} };
-
-#elif defined (dzrgb60_hhkb)
-const is31_led g_is31_leds[RGB_MATRIX_LED_COUNT] = {
- {0, H_15, G_15, I_15},
- {0, K_14, J_14, L_14},
- {0, K_13, J_13, L_13},
- {0, K_12, J_12, L_12},
- {0, K_11, J_11, L_11},
- {0, K_10, J_10, L_10},
- {0, K_9, J_9, L_9},
- {0, K_8, J_8, L_8},
- {0, K_7, J_7, L_7},
- {0, K_6, J_6, L_6},
- {0, K_5, J_5, L_5},
- {0, K_4, J_4, L_4},
- {0, K_3, J_3, L_3},
- {0, K_2, J_2, L_2},
- {0, K_1, J_1, L_1},
- {0, H_14, G_14, I_14},
- {0, H_13, G_13, I_13},
- {0, H_12, G_12, I_12},
- {0, H_11, G_11, I_11},
- {0, H_10, G_10, I_10},
- {0, H_9, G_9, I_9},
- {0, H_8, G_8, I_8},
- {0, H_7, G_7, I_7},
- {0, H_6, G_6, I_6},
- {0, H_5, G_5, I_5},
- {0, H_4, G_4, I_4},
- {0, H_3, G_3, I_3},
- {0, H_2, G_2, I_2},
- {0, H_1, G_1, I_1},
- {0, E_14, D_14, F_14},
- {0, E_12, D_12, F_12},
- {0, E_11, D_11, F_11},
- {0, E_10, D_10, F_10},
- {0, E_9, D_9, F_9},
- {0, E_8, D_8, F_8},
- {0, E_7, D_7, F_7},
- {0, E_6, D_6, F_6},
- {0, E_5, D_5, F_5},
- {0, E_4, D_4, F_4},
- {0, E_3, D_3, F_3},
- {0, E_2, D_2, F_2},
- {0, E_1, D_1, F_1},
- {0, B_14, A_14, C_14},
- {0, B_13, A_13, C_13},
- {0, B_11, A_11, C_11},
- {0, B_10, A_10, C_10},
- {0, B_9, A_9, C_9},
- {0, B_8, A_8, C_8},
- {0, B_7, A_7, C_7},
- {0, B_6, A_6, C_6},
- {0, B_5, A_5, C_5},
- {0, B_4, A_4, C_4},
- {0, B_3, A_3, C_3},
- {0, B_2, A_2, C_2},
- {0, B_1, A_1, C_1},
- {0, B_15, A_15, C_15},
- {0, E_13, D_13, F_13},
- {0, B_12, A_12, C_12},
- {0, B_16, A_16, C_16},
- {0, E_16, D_16, F_16},
- {0, H_16, G_16, I_16},
- {0, K_16, J_16, L_16},
-};
-
-led_config_t g_led_config = { {
- { 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1 },
- { 28, 27, 26, 25, 24, 23, 22, 21, 20, 19, 18, 17, 16, 15 },
- { 41, 40, 39, 38, 37, 36, 35, 34, 33, 32, 31, 30, 0, 29 },
- { 54, 53, 52, 51, 50, 49, 48, 47, 46, 45, 44, 43, NO_LED, 42 },
- { 61, 60, 59, NO_LED, NO_LED, 58, NO_LED, NO_LED, NO_LED, NO_LED, 57, 56, NO_LED, 55 }
-}, {
- { 224, 0 }, { 208, 0 }, { 192, 0 }, { 176, 0 }, { 160, 0 }, { 144, 0 }, { 128, 0 }, { 112, 0 }, { 96, 0 }, { 80, 0 }, { 64, 0 }, { 48, 0 }, { 32, 0 }, { 16, 0 },
- { 0, 0 }, { 220, 16 }, { 200, 16 }, { 184, 16 }, { 168, 16 }, { 152, 16 }, { 136, 16 }, { 120, 16 }, { 104, 16 }, { 88, 16 }, { 72, 16 }, { 56, 16 }, { 40, 16 }, { 24, 16 },
- { 4, 16 }, { 204, 32 }, { 188, 32 }, { 172, 32 }, { 156, 32 }, { 140, 32 }, { 124, 32 }, { 108, 32 }, { 92, 32 }, { 76, 32 }, { 60, 32 }, { 44, 32 }, { 28, 32 }, { 6, 32 },
- { 224, 48 }, { 202, 48 }, { 180, 48 }, { 164, 48 }, { 148, 48 }, { 132, 48 }, { 116, 48 }, { 100, 48 }, { 84, 48 }, { 68, 48 }, { 52, 48 }, { 20, 48 }, { 10, 48 }, { 218, 64 },
- { 198, 64 }, { 178, 64 }, { 112, 64 }, { 46, 64 }, { 26, 64 }, { 6, 64 }
-}, {
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
- 1, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
- 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1,
- 1, 1, 4, 1, 1, 1
-} };
-
-#elif defined (dzrgb60_hhkb_iso)
-const is31_led g_is31_leds[RGB_MATRIX_LED_COUNT] = {
- {0, H_15, G_15, I_15},
- {0, K_14, J_14, L_14},
- {0, K_13, J_13, L_13},
- {0, K_12, J_12, L_12},
- {0, K_11, J_11, L_11},
- {0, K_10, J_10, L_10},
- {0, K_9, J_9, L_9},
- {0, K_8, J_8, L_8},
- {0, K_7, J_7, L_7},
- {0, K_6, J_6, L_6},
- {0, K_5, J_5, L_5},
- {0, K_4, J_4, L_4},
- {0, K_3, J_3, L_3},
- {0, K_2, J_2, L_2},
- {0, K_1, J_1, L_1},
- {0, K_15, J_15, L_15},
- {0, H_13, G_13, I_13},
- {0, H_12, G_12, I_12},
- {0, H_11, G_11, I_11},
- {0, H_10, G_10, I_10},
- {0, H_9, G_9, I_9},
- {0, H_8, G_8, I_8},
- {0, H_7, G_7, I_7},
- {0, H_6, G_6, I_6},
- {0, H_5, G_5, I_5},
- {0, H_4, G_4, I_4},
- {0, H_3, G_3, I_3},
- {0, H_2, G_2, I_2},
- {0, H_1, G_1, I_1},
- {0, E_15, D_15, F_15},
- {0, E_12, D_12, F_12},
- {0, E_11, D_11, F_11},
- {0, E_10, D_10, F_10},
- {0, E_9, D_9, F_9},
- {0, E_8, D_8, F_8},
- {0, E_7, D_7, F_7},
- {0, E_6, D_6, F_6},
- {0, E_5, D_5, F_5},
- {0, E_4, D_4, F_4},
- {0, E_3, D_3, F_3},
- {0, E_2, D_2, F_2},
- {0, E_1, D_1, F_1},
- {0, B_14, A_14, C_14},
- {0, B_13, A_13, C_13},
- {0, B_11, A_11, C_11},
- {0, B_10, A_10, C_10},
- {0, B_9, A_9, C_9},
- {0, B_8, A_8, C_8},
- {0, B_7, A_7, C_7},
- {0, B_6, A_6, C_6},
- {0, B_5, A_5, C_5},
- {0, B_4, A_4, C_4},
- {0, B_3, A_3, C_3},
- {0, B_2, A_2, C_2},
- {0, B_1, A_1, C_1},
- {0, B_15, A_15, C_15},
- {0, E_13, D_13, F_13},
- {0, B_12, A_12, C_12},
- {0, B_16, A_16, C_16},
- {0, E_16, D_16, F_16},
- {0, H_16, G_16, I_16},
- {0, K_16, J_16, L_16},
-};
-
-led_config_t g_led_config = { {
- { 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1 },
- { 28, 27, 26, 25, 24, 23, 22, 21, 20, 19, 18, 17, 16, 29 },
- { 41, 40, 39, 38, 37, 36, 35, 34, 33, 32, 31, 30, 0, 15 },
- { 54, 53, 52, 51, 50, 49, 48, 47, 46, 45, 44, 43, NO_LED, 42 },
- { 61, 60, 59, NO_LED, NO_LED, 58, NO_LED, NO_LED, NO_LED, NO_LED, 57, 56, NO_LED, 55 }
-}, {
- { 224, 0 }, { 208, 0 }, { 192, 0 }, { 176, 0 }, { 160, 0 }, { 144, 0 }, { 128, 0 }, { 112, 0 }, { 96, 0 }, { 80, 0 }, { 64, 0 }, { 48, 0 }, { 32, 0 }, { 16, 0 },
- { 0, 0 }, { 220, 24 }, { 200, 16 }, { 184, 16 }, { 168, 16 }, { 152, 16 }, { 136, 16 }, { 120, 16 }, { 104, 16 }, { 88, 16 }, { 72, 16 }, { 56, 16 }, { 40, 16 }, { 24, 16 },
- { 4, 16 }, { 204, 32 }, { 188, 32 }, { 172, 32 }, { 156, 32 }, { 140, 32 }, { 124, 32 }, { 108, 32 }, { 92, 32 }, { 76, 32 }, { 60, 32 }, { 44, 32 }, { 28, 32 }, { 6, 32 },
- { 224, 48 }, { 202, 48 }, { 180, 48 }, { 164, 48 }, { 148, 48 }, { 132, 48 }, { 116, 48 }, { 100, 48 }, { 84, 48 }, { 68, 48 }, { 52, 48 }, { 20, 48 }, { 10, 48 }, { 218, 64 },
- { 198, 64 }, { 178, 64 }, { 112, 64 }, { 46, 64 }, { 26, 64 }, { 6, 64 }
-}, {
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
- 1, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
- 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1,
- 1, 1, 4, 1, 1, 1
-} };
-
-#elif defined (dzrgb60_ansi)
-const is31_led g_is31_leds[RGB_MATRIX_LED_COUNT] = {
- {0, K_14, J_14, L_14},
- {0, K_13, J_13, L_13},
- {0, K_12, J_12, L_12},
- {0, K_11, J_11, L_11},
- {0, K_10, J_10, L_10},
- {0, K_9, J_9, L_9},
- {0, K_8, J_8, L_8},
- {0, K_7, J_7, L_7},
- {0, K_6, J_6, L_6},
- {0, K_5, J_5, L_5},
- {0, K_4, J_4, L_4},
- {0, K_3, J_3, L_3},
- {0, K_2, J_2, L_2},
- {0, K_1, J_1, L_1},
- {0, H_14, G_14, I_14},
- {0, H_13, G_13, I_13},
- {0, H_12, G_12, I_12},
- {0, H_11, G_11, I_11},
- {0, H_10, G_10, I_10},
- {0, H_9, G_9, I_9},
- {0, H_8, G_8, I_8},
- {0, H_7, G_7, I_7},
- {0, H_6, G_6, I_6},
- {0, H_5, G_5, I_5},
- {0, H_4, G_4, I_4},
- {0, H_3, G_3, I_3},
- {0, H_2, G_2, I_2},
- {0, H_1, G_1, I_1},
- {0, E_14, D_14, F_14},
- {0, E_12, D_12, F_12},
- {0, E_11, D_11, F_11},
- {0, E_10, D_10, F_10},
- {0, E_9, D_9, F_9},
- {0, E_8, D_8, F_8},
- {0, E_7, D_7, F_7},
- {0, E_6, D_6, F_6},
- {0, E_5, D_5, F_5},
- {0, E_4, D_4, F_4},
- {0, E_3, D_3, F_3},
- {0, E_2, D_2, F_2},
- {0, E_1, D_1, F_1},
- {0, B_13, A_13, C_13},
- {0, B_11, A_11, C_11},
- {0, B_10, A_10, C_10},
- {0, B_9, A_9, C_9},
- {0, B_8, A_8, C_8},
- {0, B_7, A_7, C_7},
- {0, B_6, A_6, C_6},
- {0, B_5, A_5, C_5},
- {0, B_4, A_4, C_4},
- {0, B_3, A_3, C_3},
- {0, B_2, A_2, C_2},
- {0, B_1, A_1, C_1},
- {0, B_15, A_15, C_15},
- {0, E_13, D_13, F_13},
- {0, B_12, A_12, C_12},
- {0, E_15, D_15, F_15},
- {0, B_16, A_16, C_16},
- {0, E_16, D_16, F_16},
- {0, H_16, G_16, I_16},
- {0, K_16, J_16, L_16},
-};
-
-led_config_t g_led_config = { {
- { 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0 },
- { 27, 26, 25, 24, 23, 22, 21, 20, 19, 18, 17, 16, 15, 14 },
- { 40, 39, 38, 37, 36, 35, 34, 33, 32, 31, 30, 29, NO_LED, 28 },
- { 52, 51, 50, 49, 48, 47, 46, 45, 44, 43, 42, 41, NO_LED, NO_LED },
- { 60, 59, 58, NO_LED, NO_LED, 57, NO_LED, NO_LED, NO_LED, 56, 55, 54, NO_LED, 53 }
-}, {
- { 216, 0 }, { 192, 0 }, { 176, 0 }, { 160, 0 }, { 144, 0 }, { 128, 0 }, { 112, 0 }, { 96, 0 }, { 80, 0 }, { 64, 0 }, { 48, 0 }, { 32, 0 }, { 16, 0 }, { 0, 0 },
- { 220, 16 }, { 200, 16 }, { 184, 16 }, { 168, 16 }, { 152, 16 }, { 136, 16 }, { 120, 16 }, { 104, 16 }, { 88, 16 }, { 72, 16 }, { 56, 16 }, { 40, 16 }, { 24, 16 }, { 4, 16 },
- { 214, 24 }, { 188, 32 }, { 172, 32 }, { 156, 32 }, { 140, 32 }, { 124, 32 }, { 108, 32 }, { 92, 32 }, { 76, 32 }, { 60, 32 }, { 44, 32 }, { 28, 32 }, { 6, 32 }, { 210, 48 },
- { 180, 48 }, { 164, 48 }, { 148, 48 }, { 132, 48 }, { 116, 48 }, { 100, 48 }, { 84, 48 }, { 68, 48 }, { 52, 48 }, { 20, 48 }, { 10, 48 }, { 222, 64 }, { 202, 64 }, { 182, 64 },
- { 162, 64 }, { 102, 64 }, { 42, 64 }, { 22, 64 }, { 2, 64 }
-}, {
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
- 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1,
- 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, 1,
- 1, 4, 1, 1, 1
-} };
-
-#else
-const is31_led g_is31_leds[RGB_MATRIX_LED_COUNT] = {
- {0, K_14, J_14, L_14},
- {0, K_13, J_13, L_13},
- {0, K_12, J_12, L_12},
- {0, K_11, J_11, L_11},
- {0, K_10, J_10, L_10},
- {0, K_9, J_9, L_9},
- {0, K_8, J_8, L_8},
- {0, K_7, J_7, L_7},
- {0, K_6, J_6, L_6},
- {0, K_5, J_5, L_5},
- {0, K_4, J_4, L_4},
- {0, K_3, J_3, L_3},
- {0, K_2, J_2, L_2},
- {0, K_1, J_1, L_1},
- {0, H_14, G_14, I_14},
- {0, H_13, G_13, I_13},
- {0, H_12, G_12, I_12},
- {0, H_11, G_11, I_11},
- {0, H_10, G_10, I_10},
- {0, H_9, G_9, I_9},
- {0, H_8, G_8, I_8},
- {0, H_7, G_7, I_7},
- {0, H_6, G_6, I_6},
- {0, H_5, G_5, I_5},
- {0, H_4, G_4, I_4},
- {0, H_3, G_3, I_3},
- {0, H_2, G_2, I_2},
- {0, H_1, G_1, I_1},
- {0, E_14, D_14, F_14},
- {0, E_12, D_12, F_12},
- {0, E_11, D_11, F_11},
- {0, E_10, D_10, F_10},
- {0, E_9, D_9, F_9},
- {0, E_8, D_8, F_8},
- {0, E_7, D_7, F_7},
- {0, E_6, D_6, F_6},
- {0, E_5, D_5, F_5},
- {0, E_4, D_4, F_4},
- {0, E_3, D_3, F_3},
- {0, E_2, D_2, F_2},
- {0, E_1, D_1, F_1},
- {0, B_14, A_14, C_14},
- {0, B_13, A_13, C_13},
- {0, B_11, A_11, C_11},
- {0, B_10, A_10, C_10},
- {0, B_9, A_9, C_9},
- {0, B_8, A_8, C_8},
- {0, B_7, A_7, C_7},
- {0, B_6, A_6, C_6},
- {0, B_5, A_5, C_5},
- {0, B_4, A_4, C_4},
- {0, B_3, A_3, C_3},
- {0, B_2, A_2, C_2},
- {0, B_1, A_1, C_1},
- {0, B_15, A_15, C_15},
- {0, E_13, D_13, F_13},
- {0, B_12, A_12, C_12},
- {0, E_15, D_15, F_15},
- {0, H_15, G_15, I_15},
- {0, B_16, A_16, C_16},
- {0, E_16, D_16, F_16},
- {0, H_16, G_16, I_16},
- {0, K_16, J_16, L_16},
-};
-
-led_config_t g_led_config = { {
- { 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0 },
- { 27, 26, 25, 24, 23, 22, 21, 20, 19, 18, 17, 16, 15, 14 },
- { 40, 39, 38, 37, 36, 35, 34, 33, 32, 31, 30, 29, NO_LED, 28 },
- { 53, 52, 51, 50, 49, 48, 47, 46, 45, 44, 43, 42, NO_LED, 41 },
- { 62, 61, 60, NO_LED, NO_LED, 59, NO_LED, NO_LED, 58, 57, 56, 55, NO_LED, 54 }
-}, {
- { 216, 0 }, { 192, 0 }, { 176, 0 }, { 160, 0 }, { 144, 0 }, { 128, 0 }, { 112, 0 }, { 96, 0 }, { 80, 0 }, { 64, 0 }, { 48, 0 }, { 32, 0 }, { 16, 0 }, { 0, 0 },
- { 220, 16 }, { 200, 16 }, { 184, 16 }, { 168, 16 }, { 152, 16 }, { 136, 16 }, { 120, 16 }, { 104, 16 }, { 88, 16 }, { 72, 16 }, { 56, 16 }, { 40, 16 }, { 24, 16 }, { 4, 16 },
- { 214, 32 }, { 188, 32 }, { 172, 32 }, { 156, 32 }, { 140, 32 }, { 124, 32 }, { 108, 32 }, { 92, 32 }, { 76, 32 }, { 60, 32 }, { 44, 32 }, { 28, 32 }, { 6, 32 }, { 224, 48 },
- { 208, 48 }, { 186, 48 }, { 164, 48 }, { 148, 48 }, { 132, 48 }, { 116, 48 }, { 100, 48 }, { 84, 48 }, { 68, 48 }, { 52, 48 }, { 36, 48 }, { 9, 48 }, { 224, 64 }, { 208, 64 },
- { 192, 64 }, { 176, 64 }, { 160, 64 }, { 102, 64 }, { 42, 64 }, { 22, 64 }, { 2, 64 }
-}, {
- 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
- 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
- 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1,
- 1, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1,
- 1, 1, 1, 4, 1, 1, 1
-} };
-
-
-#endif
diff --git a/users/tominabox1/doug.c b/users/tominabox1/doug.c
deleted file mode 100644
index fccb1bb6fd..0000000000
--- a/users/tominabox1/doug.c
+++ /dev/null
@@ -1,232 +0,0 @@
-// This is the 'classic' fixed-space bitmap font for Adafruit_GFX since 1.0.
-// See gfxfont.h for newer custom bitmap font info.
-
-#include "progmem.h"
-
-// Standard ASCII 5x7 font
-const unsigned char font[] PROGMEM = {
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-0x3E, 0x5B, 0x4F, 0x5B, 0x3E, 0x00,
-0x3E, 0x6B, 0x4F, 0x6B, 0x3E, 0x00,
-0x1C, 0x3E, 0x7C, 0x3E, 0x1C, 0x00,
-0x18, 0x3C, 0x7E, 0x3C, 0x18, 0x00,
-0x1C, 0x57, 0x7D, 0x57, 0x1C, 0x00,
-0x1C, 0x5E, 0x7F, 0x5E, 0x1C, 0x00,
-0x00, 0x18, 0x3C, 0x18, 0x00, 0x00,
-0xFF, 0xE7, 0xC3, 0xE7, 0xFF, 0x00,
-0x00, 0x18, 0x24, 0x18, 0x00, 0x00,
-0xFF, 0xE7, 0xDB, 0xE7, 0xFF, 0x00,
-0x30, 0x48, 0x3A, 0x06, 0x0E, 0x00,
-0x26, 0x29, 0x79, 0x29, 0x26, 0x00,
-0x40, 0x7F, 0x05, 0x05, 0x07, 0x00,
-0x40, 0x7F, 0x05, 0x25, 0x3F, 0x00,
-0x5A, 0x3C, 0xE7, 0x3C, 0x5A, 0x00,
-0x7F, 0x3E, 0x1C, 0x1C, 0x08, 0x00,
-0x08, 0x1C, 0x1C, 0x3E, 0x7F, 0x00,
-0x14, 0x22, 0x7F, 0x22, 0x14, 0x00,
-0x5F, 0x5F, 0x00, 0x5F, 0x5F, 0x00,
-0x06, 0x09, 0x7F, 0x01, 0x7F, 0x00,
-0x00, 0x66, 0x89, 0x95, 0x6A, 0x00,
-0x60, 0x60, 0x60, 0x60, 0x60, 0x00,
-0x94, 0xA2, 0xFF, 0xA2, 0x94, 0x00,
-0x08, 0x04, 0x7E, 0x04, 0x08, 0x00,
-0x10, 0x20, 0x7E, 0x20, 0x10, 0x00,
-0x08, 0x08, 0x2A, 0x1C, 0x08, 0x00,
-0x08, 0x1C, 0x2A, 0x08, 0x08, 0x00,
-0x1E, 0x10, 0x10, 0x10, 0x10, 0x00,
-0x0C, 0x1E, 0x0C, 0x1E, 0x0C, 0x00,
-0x30, 0x38, 0x3E, 0x38, 0x30, 0x00,
-0x06, 0x0E, 0x3E, 0x0E, 0x06, 0x00,
-0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x5F, 0x00, 0x00, 0x00,
-0x00, 0x07, 0x00, 0x07, 0x00, 0x00,
-0x14, 0x7F, 0x14, 0x7F, 0x14, 0x00,
-0x24, 0x2A, 0x7F, 0x2A, 0x12, 0x00,
-0x23, 0x13, 0x08, 0x64, 0x62, 0x00,
-0x36, 0x49, 0x56, 0x20, 0x50, 0x00,
-0x00, 0x08, 0x07, 0x03, 0x00, 0x00,
-0x00, 0x1C, 0x22, 0x41, 0x00, 0x00,
-0x00, 0x41, 0x22, 0x1C, 0x00, 0x00,
-0x2A, 0x1C, 0x7F, 0x1C, 0x2A, 0x00,
-0x08, 0x08, 0x3E, 0x08, 0x08, 0x00,
-0x00, 0x80, 0x70, 0x30, 0x00, 0x00,
-0x08, 0x08, 0x08, 0x08, 0x08, 0x00,
-0x00, 0x00, 0x60, 0x60, 0x00, 0x00,
-0x20, 0x10, 0x08, 0x04, 0x02, 0x00,
-0x3E, 0x51, 0x49, 0x45, 0x3E, 0x00,
-0x00, 0x42, 0x7F, 0x40, 0x00, 0x00,
-0x72, 0x49, 0x49, 0x49, 0x46, 0x00,
-0x21, 0x41, 0x49, 0x4D, 0x33, 0x00,
-0x18, 0x14, 0x12, 0x7F, 0x10, 0x00,
-0x27, 0x45, 0x45, 0x45, 0x39, 0x00,
-0x3C, 0x4A, 0x49, 0x49, 0x31, 0x00,
-0x41, 0x21, 0x11, 0x09, 0x07, 0x00,
-0x36, 0x49, 0x49, 0x49, 0x36, 0x00,
-0x46, 0x49, 0x49, 0x29, 0x1E, 0x00,
-0x00, 0x00, 0x14, 0x00, 0x00, 0x00,
-0x00, 0x40, 0x34, 0x00, 0x00, 0x00,
-0x00, 0x08, 0x14, 0x22, 0x41, 0x00,
-0x14, 0x14, 0x14, 0x14, 0x14, 0x00,
-0x00, 0x41, 0x22, 0x14, 0x08, 0x00,
-0x02, 0x01, 0x59, 0x09, 0x06, 0x00,
-0x3E, 0x41, 0x5D, 0x59, 0x4E, 0x00,
-0x7C, 0x12, 0x11, 0x12, 0x7C, 0x00,
-0x7F, 0x49, 0x49, 0x49, 0x36, 0x00,
-0x3E, 0x41, 0x41, 0x41, 0x22, 0x00,
-0x7F, 0x41, 0x41, 0x41, 0x3E, 0x00,
-0x7F, 0x49, 0x49, 0x49, 0x41, 0x00,
-0x7F, 0x09, 0x09, 0x09, 0x01, 0x00,
-0x3E, 0x41, 0x41, 0x51, 0x73, 0x00,
-0x7F, 0x08, 0x08, 0x08, 0x7F, 0x00,
-0x00, 0x41, 0x7F, 0x41, 0x00, 0x00,
-0x20, 0x40, 0x41, 0x3F, 0x01, 0x00,
-0x7F, 0x08, 0x14, 0x22, 0x41, 0x00,
-0x7F, 0x40, 0x40, 0x40, 0x40, 0x00,
-0x7F, 0x02, 0x1C, 0x02, 0x7F, 0x00,
-0x7F, 0x04, 0x08, 0x10, 0x7F, 0x00,
-0x3E, 0x41, 0x41, 0x41, 0x3E, 0x00,
-0x7F, 0x09, 0x09, 0x09, 0x06, 0x00,
-0x3E, 0x41, 0x51, 0x21, 0x5E, 0x00,
-0x7F, 0x09, 0x19, 0x29, 0x46, 0x00,
-0x26, 0x49, 0x49, 0x49, 0x32, 0x00,
-0x03, 0x01, 0x7F, 0x01, 0x03, 0x00,
-0x3F, 0x40, 0x40, 0x40, 0x3F, 0x00,
-0x1F, 0x20, 0x40, 0x20, 0x1F, 0x00,
-0x3F, 0x40, 0x38, 0x40, 0x3F, 0x00,
-0x63, 0x14, 0x08, 0x14, 0x63, 0x00,
-0x03, 0x04, 0x78, 0x04, 0x03, 0x00,
-0x61, 0x59, 0x49, 0x4D, 0x43, 0x00,
-0x00, 0x7F, 0x41, 0x41, 0x41, 0x00,
-0x02, 0x04, 0x08, 0x10, 0x20, 0x00,
-0x00, 0x41, 0x41, 0x41, 0x7F, 0x00,
-0x04, 0x02, 0x01, 0x02, 0x04, 0x00,
-0x40, 0x40, 0x40, 0x40, 0x40, 0x00,
-0x00, 0x03, 0x07, 0x08, 0x00, 0x00,
-0x20, 0x54, 0x54, 0x78, 0x40, 0x00,
-0x7F, 0x28, 0x44, 0x44, 0x38, 0x00,
-0x38, 0x44, 0x44, 0x44, 0x28, 0x00,
-0x38, 0x44, 0x44, 0x28, 0x7F, 0x00,
-0x38, 0x54, 0x54, 0x54, 0x18, 0x00,
-0x00, 0x08, 0x7E, 0x09, 0x02, 0x00,
-0x18, 0xA4, 0xA4, 0x9C, 0x78, 0x00,
-0x7F, 0x08, 0x04, 0x04, 0x78, 0x00,
-0x00, 0x44, 0x7D, 0x40, 0x00, 0x00,
-0x20, 0x40, 0x40, 0x3D, 0x00, 0x00,
-0x7F, 0x10, 0x28, 0x44, 0x00, 0x00,
-0x00, 0x41, 0x7F, 0x40, 0x00, 0x00,
-0x7C, 0x04, 0x78, 0x04, 0x78, 0x00,
-0x7C, 0x08, 0x04, 0x04, 0x78, 0x00,
-0x38, 0x44, 0x44, 0x44, 0x38, 0x00,
-0xFC, 0x18, 0x24, 0x24, 0x18, 0x00,
-0x18, 0x24, 0x24, 0x18, 0xFC, 0x00,
-0x7C, 0x08, 0x04, 0x04, 0x08, 0x00,
-0x48, 0x54, 0x54, 0x54, 0x24, 0x00,
-0x04, 0x04, 0x3F, 0x44, 0x24, 0x00,
-0x3C, 0x40, 0x40, 0x20, 0x7C, 0x00,
-0x1C, 0x20, 0x40, 0x20, 0x1C, 0x00,
-0x3C, 0x40, 0x30, 0x40, 0x3C, 0x00,
-0x44, 0x28, 0x10, 0x28, 0x44, 0x00,
-0x4C, 0x90, 0x90, 0x90, 0x7C, 0x00,
-0x44, 0x64, 0x54, 0x4C, 0x44, 0x00,
-0x00, 0x08, 0x36, 0x41, 0x00, 0x00,
-0x00, 0x00, 0x77, 0x00, 0x00, 0x00,
-0x00, 0x41, 0x36, 0x08, 0x00, 0x00,
-0x02, 0x01, 0x02, 0x04, 0x02, 0x00,
-0x3C, 0x26, 0x23, 0x26, 0x3C, 0x00,
-0x00, 0x2C, 0x2C, 0x2C, 0x34, 0x34,
-0x34, 0x24, 0x2C, 0x2C, 0x2C, 0x00,
-0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x00, 0x00, 0x18, 0x14,
-0x14, 0x3C, 0x20, 0x00, 0x00, 0x04,
-0x0C, 0x00, 0x00, 0x20, 0x00, 0xC0,
-0x00, 0x00, 0x00, 0xA0, 0x20, 0x30,
-0x7C, 0x78, 0x0C, 0x0C, 0x18, 0x18,
-0x18, 0x14, 0x14, 0x14, 0x00, 0x00,
-0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-0x00, 0x80, 0x5C, 0x5C, 0x24, 0x20,
-0xA0, 0xA0, 0xA0, 0x20, 0x60, 0x20,
-0xBC, 0x00, 0x00, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x00, 0x14, 0x94, 0x94,
-0x14, 0x94, 0x94, 0x94, 0x94, 0x14,
-0x1C, 0x1C, 0x1C, 0x88, 0x08, 0x00,
-0x00, 0x00, 0x00, 0x00, 0x18, 0x08,
-0x84, 0x84, 0x84, 0x84, 0x80, 0x98,
-0x80, 0x9C, 0x9C, 0x90, 0x80, 0x00,
-0x10, 0x1C, 0x1C, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x00, 0x10, 0x10, 0x00,
-0xE0, 0xF0, 0xF0, 0xF0, 0xE0, 0xEC,
-0xEE, 0xF7, 0xF3, 0x70, 0x20, 0x00,
-0x7C, 0x7C, 0x7C, 0x7E, 0x00, 0x7E,
-0x7E, 0x7E, 0x7F, 0x7F, 0x7F, 0x00,
-0x00, 0x80, 0xC0, 0xE0, 0x7E, 0x5B,
-0x4F, 0x5B, 0xFE, 0xC0, 0x00, 0x00,
-0xC0, 0x00, 0xDC, 0xD7, 0xDE, 0xDE,
-0xDE, 0xD7, 0xDC, 0x00, 0xC0, 0x00,
-0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-0x80, 0x80, 0x40, 0x00, 0x80, 0x80,
-0x00, 0x00, 0x00, 0x00, 0x80, 0x80,
-0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-0x50, 0xA0, 0x40, 0x80, 0x80, 0x40,
-0xA0, 0x50, 0x00, 0x00, 0xF0, 0x00,
-0x01, 0x08, 0x08, 0x88, 0x08, 0x08,
-0x00, 0x00, 0x00, 0x00, 0x0A, 0x0C,
-0x0E, 0x0A, 0x00, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x02, 0x82, 0x80, 0x80,
-0x00, 0x00, 0x80, 0x80, 0x00, 0x00,
-0x00, 0xC0, 0x00, 0x00, 0x00, 0x01,
-0x00, 0x00, 0x00, 0x40, 0x00, 0x40,
-0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x00, 0x00, 0x03, 0x00,
-0x01, 0x01, 0x01, 0x60, 0x60, 0x40,
-0xF1, 0xB3, 0x03, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x90, 0x90, 0xD0, 0xC0,
-0xE0, 0xE0, 0x00, 0x00, 0x00, 0x01,
-0x00, 0x90, 0xA0, 0xA0, 0x63, 0x60,
-0x40, 0x40, 0xC0, 0x00, 0x00, 0x00,
-0x00, 0x02, 0x02, 0x02, 0x03, 0x00,
-0x0F, 0x1F, 0x3F, 0x7F, 0x7F, 0x7F,
-0x7F, 0x7F, 0x3F, 0x1E, 0x0C, 0x00,
-0x1F, 0x1F, 0x1F, 0x3F, 0x00, 0x3F,
-0x3F, 0x3F, 0x7F, 0x7F, 0x7F, 0x00,
-0x30, 0x7B, 0x7F, 0x78, 0x30, 0x20,
-0x20, 0x30, 0x78, 0x7F, 0x3B, 0x00,
-0x03, 0x00, 0x0F, 0x7F, 0x0F, 0x0F,
-0x0F, 0x7F, 0x0F, 0x00, 0x03, 0x00,
-0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-0x07, 0x06, 0x00, 0x70, 0x10, 0x10,
-0x31, 0x11, 0x16, 0x06, 0x07, 0x01,
-0x00, 0x08, 0x08, 0x08, 0x70, 0x70,
-0x40, 0x40, 0x41, 0x46, 0x46, 0x41,
-0x40, 0x40, 0x00, 0x00, 0x07, 0x00,
-0x00, 0x00, 0x00, 0x75, 0x75, 0x15,
-0x77, 0x77, 0x35, 0x15, 0x75, 0x75,
-0x75, 0x00, 0x00, 0x00, 0x00, 0x00,
-0x00, 0x70, 0x70, 0x56, 0x56, 0x56,
-0x51, 0x11, 0x26, 0x00, 0x00, 0x00,
-0x00, 0x17, 0x10, 0x10, 0x70, 0x00,
-0x00, 0x00, 0x30, 0x20, 0x27, 0x77,
-0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-0xE0, 0xE0, 0xA0, 0xA0, 0xA0, 0xA0,
-0xA0, 0xA0, 0x00, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x90, 0x90, 0x90, 0x90,
-0x90, 0xF0, 0x00, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x00, 0x00, 0x20, 0x40,
-0xF0, 0x30, 0x10, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-};
diff --git a/users/tominabox1/readme.md b/users/tominabox1/readme.md
deleted file mode 100644
index 99a3542bc3..0000000000
--- a/users/tominabox1/readme.md
+++ /dev/null
@@ -1,5 +0,0 @@
-# Overview
-
-My user-space code covers the [Minivan](../../keyboards/thevankeyboards/minivan/keymaps/tominabox1/keymap.c), [Dimple](../../keyboards/lazydesigners/dimple/keymaps/tominabox1/keymap.c), [CRKBD](../../keyboards/crkbd/keymaps/tominabox1/keymap.c), and [Teensy based HHKB converter](../../keyboards/hhkb/keymaps/tominabox1/). My code makes extensive use of @Drashna's code and much love and praise goes to him for figuring a lot of this stuff out!
-
-My usercode utilizes the layout wrappers contained in [wrappers.h](wrappers.h). All of the keymaps are derivative of the Dimple keymap and utilize its wrappers in the definition of additional wrappers.
diff --git a/users/tominabox1/rules.mk b/users/tominabox1/rules.mk
deleted file mode 100644
index f1ee5c0485..0000000000
--- a/users/tominabox1/rules.mk
+++ /dev/null
@@ -1,25 +0,0 @@
-# Build Options
-# change to "no" to disable the options, or define them in the Makefile in
-# the appropriate keymap folder that will get included automatically
-#
-CONSOLE_ENABLE = no
-TAP_DANCE_ENABLE = yes
-NKRO_ENABLE = yes
-BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite
-
-ifeq ($(strip $(KEYBOARD)), crkbd/rev1)
-RGB_MATRIX_ENABLE = yes
-EXTRAFLAGS += -flto
-BOOTLOADER = qmk-dfu
-OLED_ENABLE = yes
-endif
-
-ifeq ($(strip $(KEYBOARD)), lazydesigners/dimple)
-MOUSEKEY_ENABLE = no # Mouse keys
-EXTRAKEY_ENABLE = yes # Audio control and System control
-BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality on B7 by default
-RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
-endif
-
-
-SRC += tominabox1.c
diff --git a/users/tominabox1/tominabox1.c b/users/tominabox1/tominabox1.c
deleted file mode 100644
index 2c3c1ac9ff..0000000000
--- a/users/tominabox1/tominabox1.c
+++ /dev/null
@@ -1,281 +0,0 @@
-#include "tominabox1.h"
-
-#ifdef KEYBOARD_lazydesigners_dimple
-#ifdef RGBLIGHT_ENABLE
-__attribute__ ((weak))
-void keyboard_post_init_keymap(void) {}
-
-void keyboard_post_init_user(void) { // sets the backlighting to come on upon successful load then turn off
- rgblight_enable_noeeprom();
- rgblight_sethsv_noeeprom(RGB_RED);
- rgblight_mode_noeeprom(0);
- wait_ms(700);
- rgblight_disable_noeeprom();
-}
-#endif // RGBLIGHT
-#endif // Dimple
-
-
-#ifdef RGB_MATRIX_ENABLE
-void rgb_matrix_layer_helper(uint8_t hue, uint8_t sat, uint8_t val, uint8_t mode, uint8_t speed, uint8_t led_type);
-static bool is_suspended;
-static bool rgb_matrix_enabled;
-
-__attribute__ ((weak))
-void suspend_power_down_keymap(void) {}
-
-void suspend_power_down_user(void) {
- rgb_matrix_set_suspend_state(true);
- if (!is_suspended) {
- is_suspended = true;
- rgb_matrix_enabled = (bool)rgb_matrix_config.enable;
- rgb_matrix_disable_noeeprom();
- }
-}
-
-__attribute__ ((weak))
-void suspend_wakeup_init_keymap(void) {}
-
-void suspend_wakeup_init_user(void) {
- rgb_matrix_set_suspend_state(false);
- is_suspended = false;
- if (rgb_matrix_enabled) {
- rgb_matrix_enable_noeeprom();
- }
-}
-
-# include "lib/lib8tion/lib8tion.h"
-extern led_config_t g_led_config;
-void rgb_matrix_layer_helper(uint8_t hue, uint8_t sat, uint8_t val, uint8_t mode, uint8_t speed, uint8_t led_type) {
- HSV hsv = {hue, sat, val};
- if (hsv.v > rgb_matrix_config.hsv.v) {
- hsv.v = rgb_matrix_config.hsv.v;
- }
-
- switch (mode) {
- case 1: // breathing
- {
- uint16_t time = scale16by8(g_rgb_counters.tick, speed / 8);
- hsv.v = scale8(abs8(sin8(time) - 128) * 2, hsv.v);
- RGB rgb = hsv_to_rgb(hsv);
- for (uint8_t i = 0; i < RGB_MATRIX_LED_COUNT; i++) {
- if (HAS_FLAGS(g_led_config.flags[i], led_type)) {
- rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b);
- }
- }
- break;
- }
- default: // Solid Color
- {
- RGB rgb = hsv_to_rgb(hsv);
- for (uint8_t i = 0; i < RGB_MATRIX_LED_COUNT; i++) {
- if (HAS_FLAGS(g_led_config.flags[i], led_type)) {
- rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b);
- }
- }
- break;
- }
- }
-}
-#endif //RGB_MATRIX_ENABLE
-
-void dance_cln_finished (tap_dance_state_t *state, void *user_data) {
- if (state->count == 1) {
- register_code16(S(KC_2));
- } else {
- SEND_STRING("tom.campie@gmail.com");
- }
-}
-
-void dance_cln_reset (tap_dance_state_t *state, void *user_data) {
- if (state->count == 1) {
- unregister_code16(S(KC_2));
- } else {
- }
-}
-
-tap_dance_action_t tap_dance_actions[] = {
- [KC_EMAIL] = ACTION_TAP_DANCE_FN_ADVANCED (NULL, dance_cln_finished, dance_cln_reset),
- [TD_SFT_CPS] = ACTION_TAP_DANCE_DOUBLE(KC_LSFT, KC_CAPS),
-};
-
-#define TAPPING_TERM 200
-
-#ifdef KEYBOARD_crkbd_rev1
-
-#endif // CRKBD
-
-uint16_t get_tapping_term(uint16_t keycode, keyrecord_t *record) {
- switch (keycode) {
- case LSFT_T(KC_CAPS):
- return 250;
- case KC_ENT_LOW:
- return 150;
- case KC_SPC_RSE:
- return(250);
- case LCTL_T(KC_TAB):
- return 300;
- default:
- return TAPPING_TERM;
- }
-};
-
-__attribute__ ((weak))
-layer_state_t layer_state_set_keymap (layer_state_t state) {
- return state;
-}
-
-layer_state_t layer_state_set_user(layer_state_t state) {
- state = update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST);
- switch (get_highest_layer(state)) {
- case _LOWER:
- break;
- case _RAISE:
- break;
- case _ADJUST:
- break;
- default:
- break;
- }
- return state;
-}
-
-#ifdef KEYBOARD_crkbd_rev1
-
-__attribute__((weak))
-void matrix_scan_keymap(void) {}
-
-extern bool oled_initialized;
-void matrix_scan_user(void) {
- if(!oled_initialized) {
- wait_ms(200);
- oled_init(0);
- return;
- }
- matrix_scan_keymap();
- }
-
-extern uint8_t is_master;
-#endif // CRKBD
-
-uint16_t oled_timer;
-
-__attribute__ ((weak))
-bool process_record_keymap(uint16_t keycode, keyrecord_t *record) {
- return true;
-}
-
-bool process_record_user(uint16_t keycode, keyrecord_t *record) {
- #ifdef CONSOLE_ENABLE
- uprintf("KL: kc: %u, col: %u, row: %u, pressed: %u\n", keycode, record->event.key.col, record->event.key.row, record->event.pressed);
- #endif
-
- if (record->event.pressed) {
- #ifdef OLED_ENABLE
- oled_timer = timer_read();
- oled_on();
- #endif // OLED_ENABLE
- switch (keycode) {
- case KC_BBB:
- if (record->event.pressed) {
- SEND_STRING(":b:");
- } else {}
- break;
- case KC_BEPIS:
- if (record->event.pressed) {
- SEND_STRING("BEPIS");
- } else {}
- break;
- }
- }
- return true;
-
-}
-#ifdef KEYBOARD_crkbd_rev1
-#ifdef OLED_ENABLE
-void render_logo(void) {
- static const char PROGMEM logo[] = {
- 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, 0x90, 0x91, 0x92, 0x93, 0x94,
- 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, 0xb0, 0xb1, 0xb2, 0xb3, 0xb4,
- 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, 0xd0, 0xd1, 0xd2, 0xd3, 0xd4,
- 0};
- oled_write_P(logo, false);
-}
-
-void render_status_main(void) {
- // Host Keyboard USB Status
- oled_write_P(PSTR("USB: "), false);
- switch (USB_DeviceState) {
- case DEVICE_STATE_Unattached:
- oled_write_P(PSTR("Unattached\n"), false);
- break;
- case DEVICE_STATE_Suspended:
- oled_write_P(PSTR("Suspended\n"), false);
- break;
- case DEVICE_STATE_Configured:
- oled_write_P(PSTR("Connected\n"), false);
- break;
- case DEVICE_STATE_Powered:
- oled_write_P(PSTR("Powered\n"), false);
- break;
- case DEVICE_STATE_Default:
- oled_write_P(PSTR("Default\n"), false);
- break;
- case DEVICE_STATE_Addressed:
- oled_write_P(PSTR("Addressed\n"), false);
- break;
- default:
- oled_write_P(PSTR("Invalid\n"), false);
- }
-
- // Host Keyboard Layer Status
- oled_write_P(PSTR("Layer: "), false);
- switch (get_highest_layer(layer_state)) {
- case _BASE:
- oled_write_P(PSTR("Colemak\n"), false);
- break;
- case _RAISE:
- oled_write_P(PSTR("Numbers\n"), false);
- break;
- case _LOWER:
- oled_write_P(PSTR("Symbols\n"), false);
- break;
- case _ADJUST:
- oled_write_P(PSTR("Adjust\n"), false);
- break;
- case _ARROW:
- oled_write_P(PSTR("Navigation\n"), false);
- break;
- case _FKEY:
- oled_write_P(PSTR("Function\n"), false);
- break;
- default:
- // Or use the write_ln shortcut over adding '\n' to the end of your string
- oled_write_ln_P(PSTR("Undefined"), false);
- }
-
- // Host Keyboard LED Status
-
- oled_write_ln_P(host_keyboard_led_state().caps_lock ? PSTR("Caps Lock\n") : PSTR(" \n"), false);
-}
-__attribute__ ((weak))
-void oled_task_keymap(void) {}
-
-bool oled_task_user(void) {
-
- if (timer_elapsed(oled_timer) > 20000) {
- oled_off();
- return;
- }
- if (is_master) {
- render_status_main(); // Renders the current keyboard state (layer, lock, caps, scroll, etc)
- } else {
- render_logo();
- oled_scroll_left();
- }
- oled_task_keymap();
- return false;
- }
-
-#endif // OLED_Driver
-#endif // crkbd
diff --git a/users/tominabox1/tominabox1.h b/users/tominabox1/tominabox1.h
deleted file mode 100644
index 00f8e65162..0000000000
--- a/users/tominabox1/tominabox1.h
+++ /dev/null
@@ -1,56 +0,0 @@
-#pragma once
-#include "quantum.h"
-#include "action.h"
-#include "version.h"
-#include "wrappers.h"
-
-// #define KC_SFT_CPS MT(MOD_LSFT, KC_CAPS) // Act as Shift on hold and as CapsLock on tap
-#define SPC_LOW LT(_LOWER, KC_ENT) // Left space on tap, LOWER on hold
-#define SPC_UPR LT(_RAISE, KC_SPC) // Left space on tap, UPPER on hold
-
-extern keymap_config_t keymap_config;
-
-enum layers {
- _BASE,
- _LOWER,
- _RAISE,
- _ADJUST,
- _ARROW,
- _FKEY
-};
-
-enum custom_keycodes {
- BASE = SAFE_RANGE,
- KC_BEPIS,
- KC_BBB,
- LOWER,
- RAISE,
- ADJUST,
- ARROW,
- FKEY,
- KC_LFT_NUM_F,
- RGBRST,
- KC_PASTA
-};
-
-enum tap_dance_indexes {
- KC_EMAIL,
- TD_SFT_CPS,
-};
-
-#define KC_ARROW MO(4)
-#define KC_LTOG RGB_TOG
-#define KC_LHUI RGB_HUI
-#define KC_LHUD RGB_HUD
-#define KC_LSAI RGB_SAI
-#define KC_LSAD RGB_SAD
-#define KC_LVAI RGB_VAI
-#define KC_LVAD RGB_VAD
-#define KC_LMOD RGB_MOD
-#define KC_CTLTB CTL_T(KC_TAB) // Tab on tap, ctrl on hold
-#define KC_SFT_CPS TD(TD_SFT_CPS) // Hold for shift, double tap for caps
-#define KC_ENT_LOW LT(_LOWER, KC_ENT) // Return on tap, Lower on hold
-#define KC_SPC_RSE LT(_RAISE, KC_SPC) // Space on tap, raise on hold
-#define KC_EML TD(KC_EMAIL) // Double tap @ for email macro
-#define KC_FKEY LT(_FKEY, KC_ENT) // Return on tap, Fkey on hold
-#define KC_NUMF TD(KC_LFT_NUM_F)
diff --git a/users/tominabox1/wrappers.h b/users/tominabox1/wrappers.h
deleted file mode 100644
index f7f4c7fd23..0000000000
--- a/users/tominabox1/wrappers.h
+++ /dev/null
@@ -1,142 +0,0 @@
-#pragma once
-#include "tominabox1.h"
-/*
-Since our quirky block definitions are basically a list of comma separated
-arguments, we need a wrapper in order for these definitions to be
-expanded before being used as arguments to the LAYOUT_xxx macro.
-*/
-#if (!defined(LAYOUT) && defined(KEYMAP))
-# define LAYOUT KEYMAP
-#endif
-
-// clang-format off
-#define LAYOUT_wrapper(...) LAYOUT(__VA_ARGS__)
-#define LAYOUT_arrow_wrapper(...) LAYOUT_arrow(__VA_ARGS__)
-
-/*
- _____ _ _
- | __ \(_) | |
- | | | |_ _ __ ___ _ __ | | ___
- | | | | | '_ ` _ \| '_ \| |/ _ \
- | |__| | | | | | | | |_) | | __/
- |_____/|_|_| |_| |_| .__/|_|\___|
- | |
- |_|
-*/
-// Dimple Base layer
-#define __________________DIMPLE1__________________ QK_GESC, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC
-#define __________________DIMPLE2__________________ LCTL_T(KC_TAB), KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT
-#define __________________DIMPLE3L_________________ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B
-#define __________________DIMPLE3R_________________ KC_K, KC_M, KC_COMM, KC_UP, LT(_FKEY,KC_DOT)
-#define __________________DIMPLE4__________________ KC_LCTL, KC_LGUI, KC_LALT, KC_ENT_LOW, KC_SPC_RSE, KC_LEFT, KC_DOWN, KC_RGHT
-
-// Dimple Symbol Layer
-#define _________________LOWER_1___________________ KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC
-#define _________________LOWER_2___________________ KC_DEL, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE
-#define _________________LOWER_3___________________ KC_CAPS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_PGUP, KC_QUES
-#define _________________LOWER_4___________________ LCA(KC_DEL), KC_NO, KC_NO, KC_TRNS, KC_TRNS, KC_TRNS, KC_PGDN, KC_END
-
-// Dimple Number layer
-#define ___________________RAISE1__________________ KC_TILD, KC_EXLM, TD(KC_EMAIL), KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL
-#define ___________________RAISE2__________________ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS
-#define ___________________RAISE3__________________ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_DOT, KC_SLSH
-#define ___________________RAISE4__________________ KC_VOLD, KC_MUTE, KC_VOLU, KC_TRNS, KC_TRNS, KC_TRNS, KC_NO, KC_NO
-
-// Dimple F-key layer
-#define ___________________FKEY1___________________ KC_PASTA, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_NO
-#define ___________________FKEY2___________________ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_F11, KC_F12, KC_NO
-#define ___________________FKEY3___________________ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO
-#define ___________________FKEY4___________________ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_TRNS, KC_NO, KC_NO
-
-// Dimple Adjust layer
-#define ___________________ADJST1__________________ QK_BOOT,RGBRST, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO
-#define ___________________ADJST2__________________ RGB_M_P, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO
-#define ___________________ADJST3__________________ RGB_MOD, RGB_HUI, RGB_HUD, RGB_M_SN, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO
-#define ___________________ADJST4__________________ RGB_VAD, RGB_TOG, RGB_VAI, KC_NO, KC_NO, KC_TRNS, KC_NO, KC_NO
-
-/*
-__ __ _ _
-| \/ (_) (_)
-| \ / |_ _ __ ___ ____ _ _ __
-| |\/| | | '_ \| \ \ / / _` | '_ \
-| | | | | | | | |\ V / (_| | | | |
-|_| |_|_|_| |_|_| \_/ \__,_|_| |_|
-*/
-
-
-// Minivan Base Layer
-#define __________________MINIVAN1_________________ __________________DIMPLE1__________________
-#define __________________MINIVAN2_________________ __________________DIMPLE2__________________
-#define __________________MINIVAN3_________________ __________________DIMPLE3L_________________, __________________DIMPLE3R_________________, KC_RSFT
-#define __________________MINIVAN4_________________ KC_LCTL, KC_LGUI, KC_LALT, KC_ENT_LOW, KC_SPC_RSE, KC_LEFT, KC_DOWN, KC_RGHT, MO(_FKEY)
-
-/* Minivan Symbol Layer
-#define _________________LOWER_1___________________
-#define _________________LOWER_2___________________ */
-#define __________________MININUM3_________________ _________________LOWER_3___________________, KC_SLSH
-#define __________________MININUM4_________________ _________________LOWER_4___________________, KC_END
-
-/* Minvian Number Layer
-#define ___________________RAISE1__________________
-#define ___________________RAISE2__________________ */
-#define ___________________RVAN_3__________________ ___________________RAISE3__________________, KC_NO
-#define ___________________RVAN_4__________________ ___________________RAISE4__________________, KC_NO
-
-/* Minvian F-key layer
-#define ___________________FKEY1___________________
-#define ___________________FKEY2___________________ */
-#define ___________________FVAN_3__________________ ___________________FKEY3___________________, KC_NO
-#define ___________________FVAN_4__________________ ___________________FKEY4___________________, KC_TRNS
-
-/* Minivan Adjust Layer
-#define ___________________ADJST1__________________
-#define ___________________ADJST2__________________ */
-#define ___________________ADJVAN3_________________ ___________________ADJST3__________________, KC_NO
-#define ___________________ADJVAN4_________________ ___________________ADJST4__________________, KC_TRNS
-
-/*
- _____ _____ _ ______ _____
- / ____| __ \| |/ / _ \| __ \
-| | | |__) | ' /| |_) | | | |
-| | | _ /| < | _ <| | | |
-| |____| | \ \| . \| |_) | |__| |
- \_____|_| \_\_|\_\____/|_____/
-*/
-
-// CRKBD Base Layer
-#define ___________________CRKBD1__________________ __________________DIMPLE1__________________
-#define ___________________CRKBD2__________________ __________________DIMPLE2__________________
-#define ___________________CRKBD3__________________ __________________DIMPLE3L_________________, KC_K, KC_M,KC_COMM, KC_DOT, KC_SLSH, KC_BBB
-#define ___________________CRKBD4__________________ KC_LGUI, KC_LALT,KC_ENT_LOW, KC_SPC_RSE, KC_ARROW, KC_FKEY
-
-/* CRKBD Number layer
-#define ___________________RAISE1__________________
-#define ___________________RAISE1__________________ */
-#define ___________________CRKBD_RAISE3____________ ___________________RVAN_3__________________
-#define ___________________CRKBD_RAISE4____________ ___________________CRKBD4__________________
-
-/* CRKBD Symbol Layer
-#define _________________LOWER_1___________________
-#define _________________LOWER_2___________________ */
-#define ___________________CRKBD_LOW3______________ __________________MININUM3_________________
-#define ___________________CRKBD_LOW4______________ ___________________CRKBD4__________________
-
-/* CRKBD F-key layer
-#define ___________________FKEY1___________________
-#define ___________________FKEY2___________________ */
-#define ___________________CRKBD_FKEY3_____________ ___________________FVAN_3__________________
-#define ___________________CRKBD_FKEY4_____________ ___________________CRKBD4__________________
-
-/* CRKBD adjust layer
-#define ___________________ADJST1__________________ */
-#define ___________________CRKBD_ADJST2____________ KC_LTOG,KC_LHUI,KC_LSAI,KC_LVAI,KC_NO,KC_NO,KC_NO,KC_NO, KC_NO, KC_NO, KC_NO, KC_NO
-#define ___________________CRKBD_ADJST3____________ KC_LMOD, KC_LHUD, KC_LSAD, KC_LVAD, KC_NO, KC_NO,KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO
-#define ___________________CRKBD_ADJST4____________ ___________________CRKBD4__________________
-
-// CRKBD arrow layer
-#define ___________________ARROW1__________________ KC_NO, KC_NO, KC_UP, KC_NO, KC_NO, KC_NO, KC_NO, KC_PGDN, KC_UP, KC_PGUP, KC_NO, KC_NO
-#define ___________________ARROW2__________________ KC_NO, KC_LEFT, KC_DOWN, KC_RIGHT, KC_NO, KC_NO,KC_NO, KC_LEFT, KC_DOWN, KC_RGHT, KC_NO, KC_NO
-#define ___________________ARROW3__________________ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO
-#define ___________________ARROW4__________________ ___________________CRKBD4__________________
-
-// clang-format on
diff --git a/users/turbomech/backupturbomech.c b/users/turbomech/backupturbomech.c
deleted file mode 100644
index 70d3d065c4..0000000000
--- a/users/turbomech/backupturbomech.c
+++ /dev/null
@@ -1,390 +0,0 @@
-/* Copyright 2017 @TurboMech /u/TurboMech <discord> @A9entOran9e#6134
- *
- * 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 "turbomech.h"
-#include "quantum.h"
-//#include "action_layer.h"
-#include "action.h"
-//#include "rgblight.h"
-
-__attribute__ ((weak))
-void matrix_init_keymap(void) {}
-
-__attribute__ ((weak))
-void matrix_scan_keymap(void) {}
-
-__attribute__ ((weak))
-bool process_record_keymap(uint16_t keycode, keyrecord_t *record) {
- return true;
-}
-__attribute__ ((weak))
-layer_state_t layer_state_set_keymap (layer_state_t state) {
- return state;
-}
-__attribute__ ((weak))
-void led_set_keymap(uint8_t usb_led) {}
-
-//#define default_layer _QWERTY (0)
-//extern keymap_config_t keymap_config;
-
-extern rgblight_config_t rgblight_config;
-
-
-//#ifdef RGBLIGHT_ENABLE
-/*change the rgblight_setrgb(#, #, #) to what you want CAPS lock - currenlty red*/
- //#define rgblight_set_caps rgblight_setrgb(255, 0, 0)
- //#define rgblight_base rgblight_mode(RGB_current_mode)
-//#endif
-//
-//bool rgb_layer_change = true;
-//bool RGB_INIT = false;
-//bool TOG_STATUS = false;
-#ifdef RGBLIGHT_ENABLE
-bool rgb_layer_change = true;
-#endif
-int RGB_current_mode;
-
-/*void matrix_init_user(void) {
- #ifdef RGBLIGHT_ENABLE
- rgblight_enable();
- if (true) {
- eeconfig_read_rgblight();
- rgblight_get_mode();
- eeconfig_update_rgblight_default();
-
-
- // eeconfig_debug_rgblight();
- //rgblight_init();
- }
- #endif
-
-}
-*/
-
-/*void matrix_init_user(void) {
- #ifdef RGBLIGHT_ENABLE
- eeconfig_read_rgblight();
- eeconfig_update_rgblight_default();
- //rgblight_init();
- //rgblight_mode(RGB_current_mode);
- //rgblight_mode(RGB_current_mode);
- //RGB_current_mode = rgblight_config.mode;
- #endif
-}*/
-
-
-void persistent_default_layer_set(uint16_t default_layer) {
- eeconfig_update_default_layer(default_layer);
- default_layer_set(default_layer);
- default_layer = _QWERTY;
- // eeconfig_update_rgblight(rgblight_config.raw);
-}
-
- //Setting ADJUST layer RGB back to default
-/*void update_tri_layer_RGB(uint8_t layer1, uint8_t layer2, uint8_t layer3) {
- if (IS_LAYER_ON(layer1) && IS_LAYER_ON(layer2)) {
- rgblight_mode(RGB_current_mode);
- layer_on(layer1);
- } else {
- layer_off(layer2);
- }
-}*/
-
-
-void matrix_init_user(void) {
-
- uint8_t default_layer = eeconfig_read_default_layer();
-
- rgblight_enable();
-
- if(true) {
- if (default_layer & (1UL << _QWERTY)) {
- //RGB_current_mode = rgblight_config.mode;
- rgblight_mode(11);
- }
- else {
- rgblight_mode (12);
- }
-
- /*else if (default_layer & (1UL << _DVORAK)) {
- rgblight_set_green;
- }
- //else if (default_layer & (1UL << _WORKMAN)) {
- rgblight_set_purple;
- }
- else {
- rgblight_set_teal;*/
-
-
- }
-
-
-}
-
-static bool is_capslocked = false;
-bool led_update_user(led_t led_state) {
- if (led_state.caps_lock) {
- is_capslocked = true;
- // DDRB |= (1 << 2); PORTB &= ~(1 << 2);
- } else {
- is_capslocked = false;
- // DDRB &= ~(1 << 2); PORTB &= ~(1 << 2);
- }
- return false;
-}
- //rgblight_set();
-
-
-//static uint8_t is_capslocked = false;
-bool process_record_user(uint16_t keycode, keyrecord_t *record) {
- switch (keycode) {
- case _QWERTY:
- persistent_default_layer_set(1UL << _QWERTY);
- return false;
- break;
- case KC_MAKE_ALU84:
- if (!record->event.pressed) {
- SEND_STRING("make alu84:TurboMech:dfu");
- SEND_STRING(SS_TAP(X_ENTER));
- }
- return false;
- break;
- case KC_QMK:
- if (!record->event.pressed) {
- SEND_STRING("cd QMK/qmk_firmware");
- SEND_STRING(SS_TAP(X_ENTER));
- }
- return false;
- break;
- case KC_RESET:
- if (!record->event.pressed) {
- #ifdef RGBLIGHT_ENABLE
- rgblight_enable();
- rgblight_mode(1);
- rgblight_setrgb(255, 255, 255);
- #endif
- //_delay_ms(2000);
- reset_keyboard();
- }
- return false;
- break;
- /*case RGB_MOD:
- //led operations - RGB mode change now updates the RGB_current_mode to allow the right RGB mode to be set after reactive keys are released
- if (record->event.pressed) {
- rgblight_mode(RGB_current_mode);
- RGB_current_mode = rgblight_config.mode;
- rgblight_step();
- // rgblight_mode(RGB_current_mode);
- //RGB_current_mode = rgblight_config.mode;
- // _delay_ms(50);
- // rgblight_set();
- RGB_current_mode = rgblight_config.mode;
- }
- else //if (rgblight_config.enable)
- {
- _delay_ms(50);
- rgblight_set();
- //rgblight_mode(rgblight_config.mode);
- // eeconfig_update_rgblight(rgblight_config.raw);
- }
-
- return true;
- break;*/
-
- /*case MO(1):
- if (record->event.realeased) {
- rgblight_mode(1);
- rgblight_set_red;
- }
- return true;
- break;*/
-
- /*case KC_CAPS:
- if (record->event.pressed) {
- rgblight_mode(RGB_current_mode);
- register_code(KC_CAPS);
- rgblight_mode(1);
- rgblight_set_red;
- }
- else {
- unregister_code(KC_CAPS);
- rgblight_mode(RGB_current_mode);
-
- }
- return false;
- break;*/
-
- /* rgblight_mode(RGB_current_mode);
- register_code(KC_CAPS);
- rgblight_mode(1);
- rgblight_set_red;
- }
- else {
- unregister_code(KC_CAPS);
- rgblight_mode(RGB_current_mode);*/
-
- // }
- // return true;
- // break;
- /*case KC_RESET:
- if (record->event.pressed) {
- layer_off(_FUNCTION);
- rgblight_mode(RGB_current_mode);
- RGB_current_mode = rgblight_config.mode;
- layer_clear();
- _delay_ms(1000);
- reset_keyboard();
- }
- else{
- //layer_off(_FUNCTION);
- _delay_ms(1000);
- rgblight_mode(RGB_current_mode);
- RGB_current_mode = rgblight_config.mode;
-
- //eeconfig_update_rgblight_default();
- }
-
- return false;
- break;
- }*/
-
-
- return true;
- break;
-
-
-
-
-
-/*case RGB_MOD:
-case RGB_HUI:
-case RGB_HUD:
-case RGB_SAI:
-case RGB_SAD:
-case RGB_VAI:
-case RGB_VAD:
-case RGB_MODE_PLAIN:
-case RGB_MODE_BREATHE:
-case RGB_MODE_RAINBOW:
-case RGB_MODE_SWIRL:
-case RGB_MODE_SNAKE:
-case RGB_MODE_KNIGHT:
-case RGB_MODE_XMAS:
-case RGB_MODE_GRADIENT:
- if (record->event.pressed) {
- rgb_layer_change = false;
- }
- break;
- }
- return true;*/
- }
-
-
- return process_record_keymap(keycode, record);
-
-}
-
-layer_state_t layer_state_set_user(layer_state_t state) {
-#ifdef RGBLIGHT_ENABLE
- uint8_t default_layer = eeconfig_read_default_layer();
- if (rgb_layer_change) {
- switch (get_highest_layer(state)) {
- case _FUNCTION:
- rgblight_set_blue;
- rgblight_mode(1);
- break;
- case _QWERTY:
-
- rgblight_mode(11);
- break;
- // case _MOUS:
- // rgblight_set_yellow;
- // rgblight_mode(1);
- // break;
- //case _MACROS:
- //rgblight_set_orange;
- //is_overwatch ? rgblight_mode(17) : rgblight_mode(18);
- //break;
- //case _MEDIA:
- //rgblight_set_green;
- //rgblight_mode(22);
- //break;
- default:
- if (is_capslocked) {
- rgblight_mode(1);
- rgblight_set_red;
- }
- else { if (default_layer & (1UL << _QWERTY)) {
- rgblight_mode(11);
- }
-
- else if (default_layer & (1UL << _FUNCTION)) {
- rgblight_set_cyan;
- }
- //else if (default_layer & (1UL << _WORKMAN)) {
- // rgblight_set_purple;
- // }
- else {
- rgblight_set_orange;
- }
- }
- rgblight_mode(1);
- break;
- }
- }
-#endif
- return state;
-}
-
-
-!!** possible for later
-
-void set_single_persistent_default_layer(uint8_t default_layer);
-
-void set_single_persistent_default_layer(uint8_t default_layer) {
- #if defined(AUDIO_ENABLE) && defined(DEFAULT_LAYER_SONGS)
- PLAY_SONG(default_layer_songs[default_layer]);
- #endif
- eeconfig_update_default_layer(1U<<default_layer);
- default_layer_set(1U<<default_layer);
-
-void matrix_init_kb(void);
-
-void matrix_init_user(void);
-
-!!** line 31
-
-__attribute__ ((weak))
-void matrix_init_keymap(void) {}
-
-__attribute__ ((weak))
-void matrix_scan_keymap(void) {}
-
-__attribute__ ((weak))
-bool process_record_keymap(uint16_t keycode, keyrecord_t *record) {
- return true;
-}
-__attribute__ ((weak))
-layer_state_t layer_state_set_keymap (layer_state_t state) {
- return state;
-}
-__attribute__ ((weak))
-void led_set_keymap(uint8_t usb_led) {}
-
-Alt +30C4
-¯\_(ツ)_/¯
-
-Alt +00AF
diff --git a/users/turbomech/turbomech.c b/users/turbomech/turbomech.c
deleted file mode 100644
index 75796fb8fb..0000000000
--- a/users/turbomech/turbomech.c
+++ /dev/null
@@ -1,124 +0,0 @@
-/* Copyright 2017 @TurboMech /u/TurboMech <discord> @A9entOran9e#6134
- *
- * 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/>.
- */
-
-//**!! Currently after reboot the set rgb mode does not persist after reboot. Need to find a way to "save" the rgb mode. Color remains after reboot though.
-
-#include "turbomech.h"
-#include "quantum.h"
-#include "action_layer.h"
-#include "action.h"
-#include "rgblight.h"
-//#include "process_unicode.h"
-
-extern keymap_config_t keymap_config;
-extern rgblight_config_t rgblight_config;
-bool RGB_INIT = false;
-bool TOG_STATUS = false;
-bool caps_is_active = false;
-int RGB_current_mode;
-
-void matirx_scan_kb (void) {
- if (RGB_INIT) {}
- else {
- RGB_current_mode = rgblight_config.mode;
- RGB_INIT = true;
- }
- rgblight_mode(RGB_current_mode); // revert RGB to initial mode prior to RGB mode change
- TOG_STATUS = false;
-}
-
-void persistent_default_layer_set(uint16_t default_layer) {
- eeconfig_update_default_layer(default_layer);
- default_layer_set(default_layer);
-}
-/*void update_tri_layer_RGB(uint8_t layer1, uint8_t layer2, uint8_t layer3) {
- if (IS_LAYER_ON(layer1) && IS_LAYER_ON(layer2)) {
- rgblight_mode(RGB_current_mode);
- layer_on(layer3);
- } else {
- layer_off(layer3);
- }
-}*/
-
-__attribute__ ((weak))
-bool process_record_keymap(uint16_t keycode, keyrecord_t *record) {
- return true;
-}
-
-bool process_record_user(uint16_t keycode, keyrecord_t *record) {
- switch (keycode) {
- case KC_CAPS:
- if (record->event.pressed) {
- register_code(KC_CAPS);
- caps_is_active = !caps_is_active;
- if (caps_is_active) {
- rgblight_mode(14);
- }
- else if (!caps_is_active) {
- unregister_code(KC_CAPS);
- rgblight_mode(RGB_current_mode);
- }
- }
- return false;
- break;
-
- case RGB_MOD:
- //led operations - RGB mode change now updates the RGB_current_mode to allow the right RGB mode to be set after reactive keys are released
- if (record->event.pressed) {
- rgblight_mode(RGB_current_mode);
- rgblight_step();
- RGB_current_mode = rgblight_config.mode;
- // rgblight_set();
- }
- return false;
- break;
-
- case KC_RESET:
- if (record->event.pressed) {
- rgblight_enable();
- rgblight_mode(1);
- rgblight_setrgb(255, 255, 255);
- //_delay_ms(2000);
- reset_keyboard();
- }
- return false;
- break;
-
- /*case _FLIP: //(╯°□°)╯︵ ┻━┻
- if (record->event.pressed) {
- register_code(KC_LPRN);
- unregister_code(KC_LPRN);
- register_unicode(0x00B0);
-
- UC(0x256F);
- PROCESS_UNICODE(UC(0x00B0));
- SEND_TAP(UC(0x25A1));
- SEND_TAP(UC(0x00B0));
- SEND_STRING(")");
- SEND_TAP(UC(0x256F));
- SEND_TAP(UC(0xFE35));
- SEND_TAP(UC(0x253B));
- SEND_TAP(UC(0x2501));
- SEND_TAP(UC(0x253B));
- }
- return false;
- break;*/
-
- return true;
- break;
- }
-return process_record_keymap(keycode, record);
-}
diff --git a/users/turbomech/turbomech.h b/users/turbomech/turbomech.h
deleted file mode 100644
index 87fd4da684..0000000000
--- a/users/turbomech/turbomech.h
+++ /dev/null
@@ -1,50 +0,0 @@
-/* Copyright 2017 @TurboMech /u/TurboMech <discord> @A9entOran9e#6134
- *
- * 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/>.
- */
-
-
-#ifndef USERSPACE
-#define USERSPACE
-
-#include "quantum.h"
-
-// Definine layer names
-#define _QWERTY 0
-#define _FUNCTION 1
-
-#ifdef RGBLIGHT_ENABLE
-//values are HSV (Hue, Sat, Val) - except Sat and Val equal 255 for 100%.
-#define rgblight_set_blue rgblight_sethsv (240, 255, 255);
-#define rgblight_set_red rgblight_sethsv (0, 255, 255);
-#define rgblight_set_green rgblight_sethsv (120, 255, 255);
-#define rgblight_set_orange rgblight_sethsv (30, 255, 255);
-#define rgblight_set_teal rgblight_sethsv (195, 255, 255);
-#define rgblight_set_magenta rgblight_sethsv (300, 255, 255);
-#define rgblight_set_yellow rgblight_sethsv (60, 255, 255);
-#define rgblight_set_purple rgblight_sethsv (270, 255, 255);
-#define rgblight_set_cyan rgblight_sethsv (180, 255, 255);
-#define rgblight_set_white rgblight_sethsv (0, 0, 255)
-#endif
-
-//must use KC_RESET in order to have RESET indicate a color/mode
-enum userspace_custom_keycodes {
- EPRM = SAFE_RANGE, //should always be here
- KC_RESET,
- KC_MAKE_ALU84,
- KC_QMK,
- _FLIP,
- NEW_SAFE_RANGE
-};
-#endif
diff --git a/users/twschum/config.h b/users/twschum/config.h
deleted file mode 100644
index e69de29bb2..0000000000
--- a/users/twschum/config.h
+++ /dev/null
diff --git a/users/twschum/readme.md b/users/twschum/readme.md
deleted file mode 100644
index b354e4b79c..0000000000
--- a/users/twschum/readme.md
+++ /dev/null
@@ -1,14 +0,0 @@
-Copyright 2019 Tim Schumacher <twschum@gmail.com> @twschum
-
-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/>.
diff --git a/users/twschum/rules.mk b/users/twschum/rules.mk
deleted file mode 100644
index 9878e6f690..0000000000
--- a/users/twschum/rules.mk
+++ /dev/null
@@ -1,5 +0,0 @@
-SRC += twschum.c
-SRC += xtonhasvim.c
-ifeq ($(strip $(FLASH_BOOTLOADER)), yes)
- OPT_DEFS += -DFLASH_BOOTLOADER
-endif
diff --git a/users/twschum/twschum.c b/users/twschum/twschum.c
deleted file mode 100644
index f0ae1e65a9..0000000000
--- a/users/twschum/twschum.c
+++ /dev/null
@@ -1,256 +0,0 @@
-#include "twschum.h"
-
-#ifdef TWSCHUM_TAPPING_CTRL_PREFIX
-// state for the great state machine of custom actions!
-#define TIMEOUT_DELAY 200 // ms
-static uint16_t idle_timer;
-static bool timeout_is_active = false;
-
-static bool ctrl_shortcuts_enabled_g = false;
-//static bool B_down = 0; // TODO just use top bit from count
-//static int8_t B_count = 0;
-
-#define N_TAPPING_CTRL_KEYS 2
-static struct Tapping_ctrl_key_t special_keys_g[N_TAPPING_CTRL_KEYS] = {
- {false, 0, KC_B}, {false, 0, KC_A}
-};
-
-static inline void start_idle_timer(void) {
- idle_timer = timer_read();
- timeout_is_active = true;
-}
-static inline void clear_state_after_idle_timeout(void) {
- idle_timer = 0;
- timeout_is_active = false;
-
- // send timed out plain keys from tapping ctrl mod
- for (int i = 0; i < N_TAPPING_CTRL_KEYS; ++i) {
- struct Tapping_ctrl_key_t* key = special_keys_g + i;
- repeat_send_keys(key->count, key->keycode);
- key->count = 0;
- }
-}
-
-inline void matrix_scan_user(void) {
- if (timeout_is_active && timer_elapsed(idle_timer) > TIMEOUT_DELAY) {
- clear_state_after_idle_timeout();
- }
-}
-
-static inline bool tap_ctrl_event(struct Tapping_ctrl_key_t* key, keyrecord_t* record) {
- if (!ctrl_shortcuts_enabled_g) {
- // normal operation, just send the plain keycode
- if (record->event.pressed) {
- register_code(key->keycode);
- }
- else {
- unregister_code(key->keycode);
- }
- return false;
- }
- key->down = record->event.pressed;
- // increment count and reset timer when key pressed
- // start the timeout when released
- if (key->down) {
- ++(key->count);
- timeout_is_active = false;
- idle_timer = 0;
- }
- else {
- if (key->count) {
- start_idle_timer();
- }
- }
- return false;
-}
-
-static inline bool tap_ctrl_other_pressed(void) {
- for (int i = 0; i < N_TAPPING_CTRL_KEYS; ++i) {
- struct Tapping_ctrl_key_t* key = special_keys_g + i;
- if (key->count) {
- if (key->down) {
- // another key has been pressed while the leader key is down,
- // so send number of ctrl-KEY combos before the other key
- repeat_send_keys(key->count, KC_LCTL, key->keycode);
- key->count = 0;
- }
- else {
- // another key pressed after leader key released,
- // need to send the plain keycode plus potential mods
- if (get_mods() & MOD_MASK_CTRL) {
- // make sure to send a shift if prssed
- repeat_send_keys(key->count, KC_RSFT, key->keycode);
- }
- else {
- repeat_send_keys(key->count, key->keycode);
- }
- key->count = 0;
- }
- return true; // will send the other keycode
- }
- }
- return true; // safe default
-}
-#endif /* TWSCHUM_TAPPING_CTRL_PREFIX */
-
-
-/* Use RGB underglow to indicate layer
- * https://docs.qmk.fm/reference/customizing-functionality
- */
-#ifdef RGBLIGHT_ENABLE
-static bool rgb_layers_enabled = true;
-static bool rgb_L0_enabled = false;
-
-layer_state_t layer_state_set_user(layer_state_t state) {
- if (!rgb_layers_enabled) {
- return state;
- }
- switch (get_highest_layer(state)) {
- case _Base:
- if (rgb_L0_enabled) {
- rgblight_sethsv_noeeprom(_Base_HSV_ON);
- }
- else {
- rgblight_sethsv_noeeprom(_Base_HSV_OFF);
- }
- break;
- case _Vim:
- rgblight_sethsv_noeeprom(_Vim_HSV);
- break;
- case _Fn:
- rgblight_sethsv_noeeprom(_Fn_HSV);
- break;
- case _Nav:
- rgblight_sethsv_noeeprom(_Nav_HSV);
- break;
- case _Num:
- rgblight_sethsv_noeeprom(_Num_HSV);
- break;
- case _Cfg:
- rgblight_sethsv_noeeprom(_Cfg_HSV);
- break;
- case _None:
- rgblight_sethsv_noeeprom(_None_HSV);
- break;
- }
- return state;
-}
-#endif /* RGBLIGHT_ENABLE */
-
-/* process_record_vimlayer: handles the VIM_ keycodes from xtonhasvim's vim
- * emulation layer
- * add process_record_keymap to allow specific keymap to still add keys
- * Makes the callstack look like:
- * process_record_
- * _quantum
- * _kb
- * _user
- * _keymap
- * _vimlayer
- */
-__attribute__ ((weak))
-bool process_record_keymap(uint16_t keycode, keyrecord_t *record) {
- return true;
-}
-
-/* Return True to continue processing keycode, false to stop further processing
- * process_record_keymap to be call by process_record_user in the vim addon */
-bool process_record_user(uint16_t keycode, keyrecord_t *record) {
-
- /* keymap gets first whack, then vimlayer */
- if(!process_record_keymap(keycode, record)) return false;
- if(!process_record_vimlayer(keycode, record)) return false;
-
- switch (keycode) {
- /* KC_MAKE is a keycode to be used with any keymap
- * Outputs `make <keyboard>:<keymap>`
- * Holding shift will add the appropriate flashing command (:dfu,
- * :teensy, :avrdude, :dfu-util) for a majority of keyboards.
- * Holding control will add some commands that will speed up compiling
- * time by processing multiple files at once
- * For the boards that lack a shift key, or that you want to always
- * attempt the flashing part, you can add FLASH_BOOTLOADER = yes to the
- * rules.mk of that keymap.
- */
- case KC_MAKE: // Compiles the firmware, and adds the flash command based on keyboard bootloader
- if (!record->event.pressed) {
- uint8_t temp_mod = get_mods();
- uint8_t temp_osm = get_oneshot_mods();
- clear_mods(); clear_oneshot_mods();
- SEND_STRING("make " QMK_KEYBOARD ":" QMK_KEYMAP);
- #ifndef FLASH_BOOTLOADER
- if ( (temp_mod | temp_osm) & MOD_MASK_SHIFT ) {
- SEND_STRING(":flash");
- }
- #endif
- if ( (temp_mod | temp_osm) & MOD_MASK_CTRL) {
- SEND_STRING(" -j8 --output-sync");
- }
- SEND_STRING(SS_TAP(X_ENTER));
- set_mods(temp_mod);
- }
- break;
-
- #ifdef RGBLIGHT_ENABLE
- case TG_LAYER_RGB:
- if (record->event.pressed) {
- rgb_layers_enabled = !rgb_layers_enabled;
- }
- return false;
- case TG_L0_RGB:
- if (record->event.pressed) {
- rgb_L0_enabled = !rgb_L0_enabled;
- }
- return false;
- #endif
-
- case SALT_CMD:
- if (!record->event.pressed) {
- SEND_STRING(SALT_CMD_MACRO);
- }
- return false;
- case LESS_PD:
- if (!record->event.pressed) {
- SEND_STRING(LESS_PD_MACRO);
- }
- return false;
- case CODE_PASTE:
- if (!record->event.pressed) {
- SEND_STRING(CODE_PASTE_MACRO);
- }
- return false;
-
- #ifdef TWSCHUM_TAPPING_CTRL_PREFIX
- case EN_CTRL_SHORTCUTS:
- if (record->event.pressed) {
- ctrl_shortcuts_enabled_g = !ctrl_shortcuts_enabled_g;
- start_idle_timer(); // need to clear out state in some cases
- }
- return false;
- case CTRL_A:
- return tap_ctrl_event(&special_keys_g[1], record);
- case CTRL_B:
- return tap_ctrl_event(&special_keys_g[0], record);
- default:
- if (record->event.pressed) {
- return tap_ctrl_other_pressed();
- }
- #endif
- }
- return true;
-}
-
-#ifdef RGBLIGHT_ENABLE
-void matrix_init_user(void) {
- // called once on board init
- rgblight_enable();
-}
-#endif
-
-void suspend_power_down_user(void) {
- // TODO shut off backlighting
-}
-
-void suspend_wakeup_init_user(void) {
- // TODO turn on backlighting
-}
diff --git a/users/twschum/twschum.h b/users/twschum/twschum.h
deleted file mode 100644
index e8c9aeffcd..0000000000
--- a/users/twschum/twschum.h
+++ /dev/null
@@ -1,131 +0,0 @@
-#pragma once
-#include <stdarg.h>
-#include "quantum.h"
-#include "xtonhasvim.h"
-
-/**************************
- * QMK Features Used
- **************************
- * RGBLIGHT_ENABLE
- * - Adds layer indication via RGB underglow
- * - see the `layer_definitions` enum and following _*_HSV #defines
- *
- *
- *
- **************************
- * Custom Feature Flags
- **************************
- *
- * TWSCHUM_TAPPING_CTRL_PREFIX
- * - Adds feature that makes sending nested sequences of C-a, C-b[, C-b, ...]
- * as simple as C-a b [b ...]
- * - Not necessarily super useful outside specialized nested tmux sessions,
- * but it was a fun state-machine to build
- *
- * TWSCHUM_VIM_LAYER
- * - Fork of xtonhasvim, adding vim-emulation
- *
- * TWSCHUM_IS_MAC
- * - Flag for handling media keys and other settings between OSX and Win/Unix
- * without having to include bootmagic
- *
- **************************
- * Features Wishlist
- **************************
- * use VIM_Q as macro recorder!
- * Dynamic macros
- * Leader functions
- * Uniicode leader commands??? (symbolic unicode)
- * Mac mode vs not: -probably bootmagic or use default with dynamic swap out here
- * KC_MFFD(KC_MEDIA_FAST_FORWARD) and KC_MRWD(KC_MEDIA_REWIND) instead of KC_MNXT and KC_MPRV
- */
-
-/* Each layer gets a color, overwritable per keyboard */
-enum layers_definitions {
- _Base,
- _Vim,
- _Fn,
- _Nav,
- _Num,
- _Cfg,
- _None,
-};
-#ifdef RGBLIGHT_ENABLE
-#define _Base_HSV_ON HSV_WHITE
-#define _Base_HSV_OFF 0, 0, 0
-#define _Vim_HSV HSV_ORANGE
-#define _Fn_HSV HSV_GREEN
-#define _Nav_HSV HSV_AZURE
-#define _Num_HSV HSV_GOLD
-#define _Cfg_HSV HSV_RED
-#define _None_HSV HSV_WHITE
-#endif
-
-enum extra_keycodes {
- TWSCHUM_START = VIM_SAFE_RANGE,
- KC_MAKE, // types the make command for this keyboard
-#ifdef TWSCHUM_TAPPING_CTRL_PREFIX
- CTRL_A,
- CTRL_B,
- EN_CTRL_SHORTCUTS,
-#endif
-#ifdef RGBLIGHT_ENABLE
- TG_LAYER_RGB, // Toggle between standard RGB underglow, and RGB underglow to do layer indication
- TG_L0_RGB, // Toggle color on or off of layer0
-#endif
- SALT_CMD, // macro
- LESS_PD, // macro
- CODE_PASTE, // macro
- KEYMAP_SAFE_RANGE, // range to start for the keymap
-};
-#define SALT_CMD_MACRO "sudo salt \\* cmd.run ''"SS_TAP(X_LEFT)
-#define LESS_PD_MACRO "sudo less /pipedream/cache/"
-// TODO mac vs linux
-#define CODE_PASTE_MACRO SS_LSFT("\n")"```"SS_LSFT("\n")SS_LALT("v")SS_LSFT("\n")"```"
-
-
-/* PP_NARG macro returns the number of arguments passed to it.
- * https://groups.google.com/forum/#!topic/comp.std.c/d-6Mj5Lko_s
- */
-#define PP_NARG(...) PP_NARG_(__VA_ARGS__,PP_RSEQ_N())
-#define PP_NARG_(...) PP_ARG_N(__VA_ARGS__)
-#define PP_MAX_ARGS 64
-#define PP_ARG_N( \
- _1, _2, _3, _4, _5, _6, _7, _8, _9,_10, \
- _11,_12,_13,_14,_15,_16,_17,_18,_19,_20, \
- _21,_22,_23,_24,_25,_26,_27,_28,_29,_30, \
- _31,_32,_33,_34,_35,_36,_37,_38,_39,_40, \
- _41,_42,_43,_44,_45,_46,_47,_48,_49,_50, \
- _51,_52,_53,_54,_55,_56,_57,_58,_59,_60, \
- _61,_62,_63,N,...) N
-#define PP_RSEQ_N() 63,62,61,60, \
- 59,58,57,56,55,54,53,52,51,50, \
- 49,48,47,46,45,44,43,42,41,40, \
- 39,38,37,36,35,34,33,32,31,30, \
- 29,28,27,26,25,24,23,22,21,20, \
- 19,18,17,16,15,14,13,12,11,10, \
- 9,8,7,6,5,4,3,2,1,0
-
-#define send_keys(...) send_n_keys(PP_NARG(__VA_ARGS__), __VA_ARGS__)
-static inline void send_n_keys(int n, ...) {
- uint8_t i = 0;
- uint16_t keycodes[PP_MAX_ARGS];
- va_list keys;
- va_start(keys, n);
- for (; i < n; ++i) {
- keycodes[i] = (uint16_t)va_arg(keys, int); // cast suppresses warning
- register_code(keycodes[i]);
- }
- for (; n > 0; --n) {
- unregister_code(keycodes[n-1]);
- }
- va_end(keys);
-}
-#define repeat_send_keys(n, ...) {for (int i=0; i < n; ++i) {send_keys(__VA_ARGS__);}}
-
-/* State functions for nested c-a & c-b leader keystrokes */
-struct Tapping_ctrl_key_t {
- bool down;
- int8_t count;
- const uint16_t keycode;
-};
diff --git a/users/twschum/xtonhasvim.c b/users/twschum/xtonhasvim.c
deleted file mode 100644
index 60f6fa1377..0000000000
--- a/users/twschum/xtonhasvim.c
+++ /dev/null
@@ -1,593 +0,0 @@
- /* Copyright 2015-2017 Christon DeWan *
- * 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 "xtonhasvim.h"
-
-
-uint16_t vstate = VIM_START;
-static bool yank_was_lines = false;
-static bool SHIFTED = false;
-static uint32_t mod_override_layer_state = 0;
-static uint16_t mod_override_triggering_key = 0;
-
-static void edit(void) { vstate = VIM_START; layer_clear(); }
-#define EDIT edit()
-
-
-static void simple_movement(uint16_t keycode) {
- switch(keycode) {
- case VIM_B:
- register_code(KC_LALT);
- tap_code16(LSFT(KC_LEFT)); // select to start of this word
- unregister_code(KC_LALT);
- break;
- case VIM_E:
- register_code(KC_LALT);
- tap_code16(LSFT(KC_RIGHT)); // select to end of this word
- unregister_code(KC_LALT);
- break;
- case VIM_H:
- tap_code16(LSFT(KC_LEFT));
- break;
- case VIM_J:
- tap_code16(LGUI(KC_LEFT));
- tap_code16(LSFT(KC_DOWN));
- tap_code16(LSFT(KC_DOWN));
- break;
- case VIM_K:
- tap_code16(LGUI(KC_LEFT));
- tap_code(KC_DOWN);
- tap_code16(LSFT(KC_UP));
- tap_code16(LSFT(KC_UP));
- break;
- case VIM_L:
- tap_code16(LSFT(KC_RIGHT));
- break;
- case VIM_W:
- register_code(KC_LALT);
- tap_code16(LSFT(KC_RIGHT)); // select to end of this word
- tap_code16(LSFT(KC_RIGHT)); // select to end of next word
- tap_code16(LSFT(KC_LEFT)); // select to start of next word
- unregister_code(KC_LALT);
- break;
- }
-}
-
-static void comma_period(uint16_t keycode) {
- switch (keycode) {
- case VIM_COMMA:
- if (SHIFTED) {
- // indent
- tap_code16(LGUI(KC_LEFT_BRACKET));
- } else {
- // toggle comment
- tap_code16(LGUI(KC_SLASH));
- }
- break;
- case VIM_PERIOD:
- if (SHIFTED) {
- // outdent
- tap_code16(LGUI(KC_RIGHT_BRACKET));
- }
- break;
- }
-}
-
-
-bool process_record_vimlayer(uint16_t keycode, keyrecord_t *record) {
-
- /****** mod passthru *****/
- if(record->event.pressed && layer_state_is(vim_cmd_layer()) && (IS_MODIFIER_KEYCODE(keycode) || keycode == LSFT(KC_LALT))) {
- mod_override_layer_state = layer_state;
- mod_override_triggering_key = keycode;
- // TODO: change this to track key location instead
- layer_clear();
- return true; // let the event fall through...
- }
- if(mod_override_layer_state && !record->event.pressed && keycode == mod_override_triggering_key) {
- layer_state_set(mod_override_layer_state);
- mod_override_layer_state = 0;
- mod_override_triggering_key = 0;
- return true;
- }
-
- if (VIM_START <= keycode && keycode <= VIM_ESC) {
- if(keycode == VIM_SHIFT) {
- SHIFTED = record->event.pressed;
- return false;
- }
-
- if (record->event.pressed) {
- if(keycode == VIM_START) {
- // entry from anywhere
- layer_on(vim_cmd_layer());
- vstate = VIM_START;
-
- // reset state
- yank_was_lines = false;
- SHIFTED = false;
- mod_override_layer_state = 0;
- mod_override_triggering_key = 0;
-
- return false;
- }
- switch(vstate) {
- case VIM_START:
- switch(keycode){
- /*****************************
- * ground state
- *****************************/
- case VIM_A:
- if(SHIFTED) {
- // tap_code16(LGUI(KC_RIGHT));
- tap_code16(LCTL(KC_E));
- } else {
- tap_code(KC_RIGHT);
- }
- EDIT;
- break;
- case VIM_B:
- register_code(KC_LALT);
- register_code(KC_LEFT);
- break;
- case VIM_C:
- if(SHIFTED) {
- register_code(KC_LSFT);
- tap_code16(LGUI(KC_RIGHT));
- unregister_code(KC_LSFT);
- tap_code16(LGUI(KC_X));
- yank_was_lines = false;
- EDIT;
- } else {
- vstate = VIM_C;
- }
- break;
- case VIM_D:
- if(SHIFTED) {
- tap_code16(LCTL(KC_K));
- } else {
- vstate = VIM_D;
- }
- break;
- case VIM_E:
- register_code(KC_LALT);
- register_code(KC_RIGHT);
- break;
- case VIM_G:
- if(SHIFTED) {
- tap_code(KC_END);
- } else {
- vstate = VIM_G;
- }
- break;
- case VIM_H:
- register_code(KC_LEFT);
- break;
- case VIM_I:
- if(SHIFTED){
- tap_code16(LCTL(KC_A));
- }
- EDIT;
- break;
- case VIM_J:
- if(SHIFTED) {
- tap_code16(LGUI(KC_RIGHT));
- tap_code(KC_DEL);
- } else {
- register_code(KC_DOWN);
- }
- break;
- case VIM_K:
- register_code(KC_UP);
- break;
- case VIM_L:
- register_code(KC_RIGHT);
- break;
- case VIM_O:
- if(SHIFTED) {
- tap_code16(LGUI(KC_LEFT));
- tap_code(KC_ENTER);
- tap_code(KC_UP);
- EDIT;
- } else {
- tap_code16(LGUI(KC_RIGHT));
- tap_code(KC_ENTER);
- EDIT;
- }
- break;
- case VIM_P:
- if(SHIFTED) {
- tap_code16(LGUI(KC_LEFT));
- tap_code16(LGUI(KC_V));
- } else {
- if(yank_was_lines) {
- tap_code16(LGUI(KC_RIGHT));
- tap_code(KC_RIGHT);
- tap_code16(LGUI(KC_V));
- } else {
- tap_code16(LGUI(KC_V));
- }
- }
- break;
- case VIM_S:
- // s for substitute?
- if(SHIFTED) {
- tap_code16(LGUI(KC_LEFT));
- register_code(KC_LSFT);
- tap_code16(LGUI(KC_RIGHT));
- unregister_code(KC_LSFT);
- tap_code16(LGUI(KC_X));
- yank_was_lines = false;
- EDIT;
- } else {
- tap_code16(LSFT(KC_RIGHT));
- tap_code16(LGUI(KC_X));
- yank_was_lines = false;
- EDIT;
- }
- break;
- case VIM_U:
- if(SHIFTED) {
- register_code(KC_LSFT);
- tap_code16(LGUI(KC_Z));
- unregister_code(KC_LSFT);
- } else {
- tap_code16(LGUI(KC_Z));
- }
- break;
- case VIM_V:
- if(SHIFTED) {
- tap_code16(LGUI(KC_LEFT));
- tap_code16(LSFT(KC_DOWN));
- vstate = VIM_VS;
- } else {
- vstate = VIM_V;
- }
- break;
- case VIM_W:
- register_code(KC_LALT);
- tap_code(KC_RIGHT);
- tap_code(KC_RIGHT);
- tap_code(KC_LEFT);
- unregister_code(KC_LALT);
- break;
- case VIM_X:
- // tap_code16(LSFT(KC_RIGHT));
- // tap_code16(LGUI(KC_X));
- register_code(KC_DEL);
- break;
- case VIM_Y:
- if(SHIFTED) {
- tap_code16(LGUI(KC_LEFT));
- tap_code16(LSFT(KC_DOWN));
- tap_code16(LGUI(KC_C));
- tap_code(KC_RIGHT);
- yank_was_lines = true;
- } else {
- vstate = VIM_Y;
- }
- break;
- case VIM_COMMA:
- case VIM_PERIOD:
- comma_period(keycode);
- break;
- }
- break;
- case VIM_C:
- /*****************************
- * c- ...for change. I never use this...
- *****************************/
- switch(keycode) {
- case VIM_B:
- case VIM_E:
- case VIM_H:
- case VIM_J:
- case VIM_K:
- case VIM_L:
- case VIM_W:
- simple_movement(keycode);
- tap_code16(LGUI(KC_X));
- yank_was_lines = false;
- EDIT;
- break;
-
- case VIM_C:
- tap_code16(LGUI(KC_LEFT));
- register_code(KC_LSFT);
- tap_code16(LGUI(KC_RIGHT));
- unregister_code(KC_LSFT);
- tap_code16(LGUI(KC_X));
- yank_was_lines = false;
- EDIT;
- break;
- case VIM_I:
- vstate = VIM_CI;
- break;
- default:
- vstate = VIM_START;
- break;
- }
- break;
- case VIM_CI:
- /*****************************
- * ci- ...change inner word
- *****************************/
- switch(keycode) {
- case VIM_W:
- tap_code16(LALT(KC_LEFT));
- register_code(KC_LSFT);
- tap_code16(LALT(KC_RIGHT));
- unregister_code(KC_LSFT);
- tap_code16(LGUI(KC_X));
- yank_was_lines = false;
- EDIT;
- default:
- vstate = VIM_START;
- break;
- }
- break;
- case VIM_D:
- /*****************************
- * d- ...delete stuff
- *****************************/
- switch(keycode) {
- case VIM_B:
- case VIM_E:
- case VIM_H:
- case VIM_J:
- case VIM_K:
- case VIM_L:
- case VIM_W:
- simple_movement(keycode);
- tap_code16(LGUI(KC_X));
- yank_was_lines = false;
- vstate = VIM_START;
- break;
- case VIM_D:
- tap_code16(LGUI(KC_LEFT));
- tap_code16(LSFT(KC_DOWN));
- tap_code16(LGUI(KC_X));
- yank_was_lines = true;
- vstate = VIM_START;
- break;
- case VIM_I:
- vstate = VIM_DI;
- break;
- default:
- vstate = VIM_START;
- break;
- }
- break;
- case VIM_DI:
- /*****************************
- * ci- ...delete a word... FROM THE INSIDE!
- *****************************/
- switch(keycode) {
- case VIM_W:
- tap_code16(LALT(KC_LEFT));
- register_code(KC_LSFT);
- tap_code16(LALT(KC_RIGHT));
- unregister_code(KC_LSFT);
- tap_code16(LGUI(KC_X));
- yank_was_lines = false;
- vstate = VIM_START;
- default:
- vstate = VIM_START;
- break;
- }
- break;
- case VIM_V:
- /*****************************
- * visual!
- *****************************/
- switch(keycode) {
- case VIM_D:
- case VIM_X:
- tap_code16(LGUI(KC_X));
- yank_was_lines = false;
- vstate = VIM_START;
- break;
- case VIM_B:
- register_code(KC_LALT);
- register_code(KC_LSFT);
- register_code(KC_LEFT);
- // leave open for key repeat
- break;
- case VIM_E:
- register_code(KC_LALT);
- register_code(KC_LSFT);
- register_code(KC_RIGHT);
- // leave open for key repeat
- break;
- case VIM_H:
- register_code(KC_LSFT);
- register_code(KC_LEFT);
- break;
- case VIM_I:
- vstate = VIM_VI;
- break;
- case VIM_J:
- register_code(KC_LSFT);
- register_code(KC_DOWN);
- break;
- case VIM_K:
- register_code(KC_LSFT);
- register_code(KC_UP);
- break;
- case VIM_L:
- register_code(KC_LSFT);
- register_code(KC_RIGHT);
- break;
- case VIM_W:
- register_code(KC_LALT);
- tap_code16(LSFT(KC_RIGHT)); // select to end of this word
- tap_code16(LSFT(KC_RIGHT)); // select to end of next word
- tap_code16(LSFT(KC_LEFT)); // select to start of next word
- unregister_code(KC_LALT);
- break;
- case VIM_P:
- tap_code16(LGUI(KC_V));
- vstate = VIM_START;
- break;
- case VIM_Y:
- tap_code16(LGUI(KC_C));
- tap_code(KC_RIGHT);
- yank_was_lines = false;
- vstate = VIM_START;
- break;
- case VIM_V:
- case VIM_ESC:
- tap_code(KC_RIGHT);
- vstate = VIM_START;
- break;
- case VIM_COMMA:
- case VIM_PERIOD:
- comma_period(keycode);
- break;
- default:
- // do nothing
- break;
- }
- break;
- case VIM_VI:
- /*****************************
- * vi- ...select a word... FROM THE INSIDE!
- *****************************/
- switch(keycode) {
- case VIM_W:
- tap_code16(LALT(KC_LEFT));
- register_code(KC_LSFT);
- tap_code16(LALT(KC_RIGHT));
- unregister_code(KC_LSFT);
- vstate = VIM_V;
- default:
- // ignore
- vstate = VIM_V;
- break;
- }
- break;
- case VIM_VS:
- /*****************************
- * visual line
- *****************************/
- switch(keycode) {
- case VIM_D:
- case VIM_X:
- tap_code16(LGUI(KC_X));
- yank_was_lines = true;
- vstate = VIM_START;
- break;
- case VIM_J:
- register_code(KC_LSFT);
- register_code(KC_DOWN);
- break;
- case VIM_K:
- register_code(KC_LSFT);
- register_code(KC_UP);
- break;
- case VIM_Y:
- tap_code16(LGUI(KC_C));
- yank_was_lines = true;
- tap_code(KC_RIGHT);
- vstate = VIM_START;
- break;
- case VIM_P:
- tap_code16(LGUI(KC_V));
- vstate = VIM_START;
- break;
- case VIM_V:
- case VIM_ESC:
- tap_code(KC_RIGHT);
- vstate = VIM_START;
- break;
- case VIM_COMMA:
- case VIM_PERIOD:
- comma_period(keycode);
- break;
- default:
- // do nothing
- break;
- }
- break;
- case VIM_G:
- /*****************************
- * gg, and a grab-bag of other macros i find useful
- *****************************/
- switch(keycode) {
- case VIM_G:
- tap_code(KC_HOME);
- break;
- // codes b
- case VIM_H:
- tap_code16(LCTL(KC_A));
- break;
- case VIM_J:
- register_code(KC_PGDN);
- break;
- case VIM_K:
- register_code(KC_PGUP);
- break;
- case VIM_L:
- tap_code16(LCTL(KC_E));
- break;
- default:
- // do nothing
- break;
- }
- vstate = VIM_START;
- break;
- case VIM_Y:
- /*****************************
- * yoink!
- *****************************/
- switch(keycode) {
- case VIM_B:
- case VIM_E:
- case VIM_H:
- case VIM_J:
- case VIM_K:
- case VIM_L:
- case VIM_W:
- simple_movement(keycode);
- tap_code16(LGUI(KC_C));
- tap_code(KC_RIGHT);
- yank_was_lines = false;
- break;
- case VIM_Y:
- tap_code16(LGUI(KC_LEFT));
- tap_code16(LSFT(KC_DOWN));
- tap_code16(LGUI(KC_C));
- tap_code(KC_RIGHT);
- yank_was_lines = true;
- break;
- default:
- // NOTHING
- break;
- }
- vstate = VIM_START;
- break;
- }
- } else {
- /************************
- * key unregister_code events
- ************************/
- clear_keyboard();
- }
- return false;
- } else {
- return true;
- }
-}
-
diff --git a/users/twschum/xtonhasvim.h b/users/twschum/xtonhasvim.h
deleted file mode 100644
index fd9ebd4f03..0000000000
--- a/users/twschum/xtonhasvim.h
+++ /dev/null
@@ -1,62 +0,0 @@
- /* Copyright 2015-2017 Christon DeWan
- *
- * 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/>.
- */
-
-#ifndef USERSPACE
-#define USERSPACE
-
-#include QMK_KEYBOARD_H
-
-enum xtonhasvim_keycodes {
- VIM_START = SAFE_RANGE, // bookend for vim states
- VIM_A,
- VIM_B,
- VIM_C,
- VIM_CI,
- VIM_D,
- VIM_DI,
- VIM_E,
- VIM_H,
- VIM_G,
- VIM_I,
- VIM_J,
- VIM_K,
- VIM_L,
- VIM_O,
- VIM_P,
- VIM_S,
- VIM_U,
- VIM_V,
- VIM_VS, // visual-line
- VIM_VI,
- VIM_W,
- VIM_X,
- VIM_Y,
- VIM_PERIOD, // to support indent/outdent
- VIM_COMMA, // and toggle comments
- VIM_SHIFT, // avoid side-effect of supporting real shift.
- VIM_ESC, // bookend
- VIM_SAFE_RANGE // start other keycodes here.
-};
-
-bool process_record_vimlayer(uint16_t keycode, keyrecord_t *record);
-
-// NOTE: Define this in keymap.c to return vim layer
-extern uint8_t vim_cmd_layer(void);
-
-extern uint16_t vstate;
-
-
-#endif
diff --git a/users/uqs/config.h b/users/uqs/config.h
deleted file mode 100644
index 94e50d063b..0000000000
--- a/users/uqs/config.h
+++ /dev/null
@@ -1,38 +0,0 @@
-// Copyright 2022 Ulrich Spörlein (@uqs)
-// SPDX-License-Identifier: GPL-2.0-or-later
-#pragma once
-
-#ifdef RGBLIGHT_ENABLE
-# define RGBLIGHT_SLEEP
-# define RGBLIGHT_LAYERS
-# define RGBLIGHT_MAX_LAYERS 8 // default is 16
-# define RGBLIGHT_DISABLE_KEYCODES // RGB_foo keys no longer work, saves 600 bytes
-# define RGBLIGHT_DEFAULT_HUE 15
-#endif
-
-#define DYNAMIC_KEYMAP_LAYER_COUNT 6 // default is 4 for VIA builds
-
-#define TAPPING_TOGGLE 2 // number of taps for a toggle-on-tap
-#define TAPPING_TERM 170 // ms to trigger tap
-// https://precondition.github.io/home-row-mods
-#define QUICK_TAP_TERM 0 // make tap-then-hold _not_ do key auto repeat
-#define PERMISSIVE_HOLD // I don't think this works for me, hence I rolled my own implementation.
-
-#define LEADER_TIMEOUT 400
-#define LEADER_PER_KEY_TIMING
-
-#define UNICODE_SELECTED_MODES UNICODE_MODE_LINUX
-
-// make KC_ACL0 et al work when held.
-#define MK_COMBINED
-#define MOUSEKEY_WHEEL_INTERVAL 40 // default is 50, lower means more scroll events, 40 works ok.
-
-// From https://michael.stapelberg.ch/posts/2021-05-08-keyboard-input-latency-qmk-kinesis/
-#define USB_POLLING_INTERVAL_MS 1
-
-#ifdef KEYBOARD_preonic_rev3
-// Some games seem to not register Esc otherwise when tapped, maybe try with this delay?
-# define TAP_CODE_DELAY 30
-#else
-# define TAP_CODE_DELAY 10
-#endif
diff --git a/users/uqs/rules.mk b/users/uqs/rules.mk
deleted file mode 100644
index 6050362952..0000000000
--- a/users/uqs/rules.mk
+++ /dev/null
@@ -1,24 +0,0 @@
-# don't include for keyboards/ploopyco/mouse/keymaps/uqs
-ifeq ($(filter $(strip $(KEYBOARD)),ploopyco/mouse),)
- SRC += uqs.c
-
- RGBLIGHT_ENABLE ?= yes # Enable keyboard RGB underglow
- LTO_ENABLE ?= yes # disables the legacy TMK Macros and Functions features
-
- UCIS_ENABLE = yes
- LEADER_ENABLE = yes
- COMBO_ENABLE = yes
- MOUSEKEY_ENABLE = yes
-
- # Disable all the unused stuff.
- SPACE_CADET_ENABLE = no
- COMMAND_ENABLE = no
- MAGIC_ENABLE = no
-endif
-
-# From https://michael.stapelberg.ch/posts/2021-05-08-keyboard-input-latency-qmk-kinesis/
-# adds about 900 bytes! Don't use it on puny AVR though.
-# ifeq (,$(filter $(MCU), atmega16u2 atmega32u2 at90usb162)) # doesn't work MCU not set yet
-ifneq (,$(filter $(KEYBOARD),ploopyco/mouse preonic/rev3))
- DEBOUNCE_TYPE = asym_eager_defer_pk
-endif
diff --git a/users/uqs/uqs.c b/users/uqs/uqs.c
deleted file mode 100644
index cd5e86bdcb..0000000000
--- a/users/uqs/uqs.c
+++ /dev/null
@@ -1,575 +0,0 @@
-// Copyright 2022 Ulrich Spörlein (@uqs)
-// SPDX-License-Identifier: GPL-2.0-or-later
-// vi:et sw=4:
-
-#include "uqs.h"
-
-// LOG:
-// late Jan 2020, got Ohkeycaps Dactyl Manuform 5x6
-// https://play.typeracer.com shows about 75-80wpm (en) or ~400cpm (de) on my classic keeb.
-// Never did proper touch typing, basically didn't use ring finger much, mostly index/middle and pinky (only to hold down modifiers, really).
-// Feb 2020, switching to Colemak DH after 30 years of Qwerty, uh oh...
-// mid Feb, 20wpm/87% on monkeytype.com (no punct, numbers)
-// early March, 28wpm/90% on MT (plus punct./numbers from here on); 25wpm on typeracer
-// early April, 35wpm/92% on MT; 41wpm on typeracer
-// early May, 45wpm/96% on MT; 46wpm on typeracer; my qwerty is deteriorating, I need to look at the keys more and more o_O
-// early June, 49wpm/95% on MT (sigh ...); 50wpm on typeracer;
-// early July, 50wpm/96% on MT (...); 52wpm/96% on typeracer;
-// early August, 55wpm/96% on MT; 55wpm/98% on typeracer;
-// early September, 57wpm/97% on MT; 58wpm/97% on typeracer;
-// early October, 59wpm/96% on MT; 61wpm/97% on typeracer;
-// November, 56wpm/97% on MT; 62wpm/98% on typeracer;
-// December, 62wpm/96% on MT; 66wpm/98% on typeracer;
-// January, 61wpm/97% on MT; 65wpm/98% on typeracer;
-// February, 64wpm/97% on MT; 67wpm/98% on typeracer; my qwerty on the laptop is still fine, but I miss my shortcuts badly.
-//
-// So that's one year on Colemak. Was it worth the switch? Probably not, though
-// I also had to first learn proper technique, but that was actually swift, as
-// the keyboard nicely forces that on you. I really like home row mods though,
-// they are so comfy. Need to rethink my combos some more, still.
-
-
-#ifdef RGBLIGHT_LAYERS
-layer_state_t default_layer_state_set_user(layer_state_t state) {
- rgblight_set_layer_state(L_QWER, layer_state_cmp(state, L_QWER));
- rgblight_set_layer_state(L_WASD, layer_state_cmp(state, L_WASD));
- rgblight_set_layer_state(L_COLM, layer_state_cmp(state, L_COLM));
- return state;
-}
-#endif
-
-layer_state_t layer_state_set_user(layer_state_t state) {
-#if 0
- // defining layer L_FUNC when both keys are pressed
- state = update_tri_layer_state(state, L_EXTD, L_NUM, L_FUNC);
-#endif
-#ifdef RGBLIGHT_LAYERS
- rgblight_set_layer_state(L_EXTD, layer_state_cmp(state, L_EXTD));
- rgblight_set_layer_state(L_NUM, layer_state_cmp(state, L_NUM));
- rgblight_set_layer_state(L_FUNC, layer_state_cmp(state, L_FUNC));
- rgblight_set_layer_state(L_MOUSE, layer_state_cmp(state, L_MOUSE));
-#else
-#endif
- return state;
-}
-
-#ifdef RGBLIGHT_LAYERS
-// NOTE: at most 2 elements, last one needs to be RGBLIGHT_END_SEGMENTS
-typedef rgblight_segment_t rgblight_layer_t[3];
-
-const rgblight_layer_t PROGMEM my_rgb_segments[] = {
- [L_QWER] = {{0, RGBLED_NUM, HSV_WHITE}, RGBLIGHT_END_SEGMENTS},
- [L_WASD] = {{0, RGBLED_NUM/2, HSV_RED}, {RGBLED_NUM/2, RGBLED_NUM/2, HSV_OFF}, RGBLIGHT_END_SEGMENTS},
- [L_COLM] = {{0, RGBLED_NUM, HSV_GREEN}, RGBLIGHT_END_SEGMENTS},
- [L_EXTD] = {{0, RGBLED_NUM, HSV_BLUE}, RGBLIGHT_END_SEGMENTS},
- [L_NUM] = {{0, RGBLED_NUM, HSV_ORANGE}, RGBLIGHT_END_SEGMENTS},
- [L_FUNC] = {{0, RGBLED_NUM, HSV_YELLOW}, RGBLIGHT_END_SEGMENTS},
- [L_MOUSE]= {{0, RGBLED_NUM, HSV_PURPLE}, RGBLIGHT_END_SEGMENTS},
-};
-
-// This array needs pointers, :/
-const rgblight_segment_t* const PROGMEM my_rgb_layers[] = {
- my_rgb_segments[L_QWER],
- my_rgb_segments[L_WASD],
- my_rgb_segments[L_COLM],
- my_rgb_segments[L_EXTD],
- my_rgb_segments[L_NUM],
- my_rgb_segments[L_FUNC],
- my_rgb_segments[L_MOUSE],
-};
-
-_Static_assert(ARRAY_SIZE(my_rgb_layers) ==
- ARRAY_SIZE(my_rgb_segments),
- "Number of rgb_segment definitions does not match up!");
-#endif
-
-#ifdef COMBO_ENABLE
-enum combo_events {
- C_AUML,
- C_OUML,
- C_UUML,
- C_SZ,
- C_CBR,
- C_PRN,
- C_BRC,
-};
-
-// Maybe use this?
-// #define COMBO_ONLY_FROM_LAYER L_COLM
-
-// The official way has way too much duplication and intermediate names for my taste...
-const uint16_t PROGMEM my_action_combos[][3] = {
- [C_AUML] = {KC_G_A, KC_W, COMBO_END},
- [C_OUML] = {KC_G_O, KC_Y, COMBO_END},
- [C_UUML] = {KC_C_N, KC_U, COMBO_END},
- [C_SZ] = {KC_S_S, KC_Z, COMBO_END},
- [C_CBR] = {KC_COLN, KC_LCBR, COMBO_END},
- [C_PRN] = {KC_LCBR, KC_LPRN, COMBO_END},
- [C_BRC] = {KC_LPRN, KC_LBRC, COMBO_END},
-};
-const uint16_t PROGMEM my_combos[][4] = {
- {KC_LPRN, KC_F, KC_P, COMBO_END},
- {KC_RPRN, KC_C, KC_D, COMBO_END},
- {KC_LCBR, KC_W, KC_F, COMBO_END},
- {KC_RCBR, KC_X, KC_C, COMBO_END},
- {KC_TAB, KC_G_A, KC_A_R, COMBO_END},
- {KC_BSLS, KC_B, KC_J, COMBO_END}, // remove this?
- {KC_BSLS, KC_F, KC_U, COMBO_END},
- {LSFT(KC_BSLS), KC_P, KC_L, COMBO_END},
- {KC_MINUS, KC_C_T, KC_C_N, COMBO_END},
- {LSFT(KC_MINUS), KC_D, KC_H, COMBO_END},
- {KC_GRV, KC_Q, KC_W, COMBO_END}, // remove this?
- {KC_GRV, KC_C, KC_COMM, COMBO_END},
- {LSFT(KC_GRV), KC_G, KC_M, COMBO_END},
- {KC_BTN3, KC_BTN1, KC_BTN2, COMBO_END},
- {KC_BTN1, KC_BTN2, KC_BTN3, COMBO_END},
-};
-
-#define MY_ACTION_COMBO(ck) \
- [ck] = { .keys = &(my_action_combos[ck][0]) }
-#define MY_COMBO(ck) \
- { .keys = &(my_combos[ck][1]), .keycode = my_combos[ck][0] }
-
-// NOTE: while my_combos can live in PROGMEM, the key_combos data also
-// contains state that is tweaked at runtime, so we need to indirect. Ugh.
-#define COMBO_STATICALLY
-#ifdef COMBO_STATICALLY
-// TODO: fill this at runtime with a loop?
-combo_t key_combos[] = {
- MY_ACTION_COMBO(0),
- MY_ACTION_COMBO(1),
- MY_ACTION_COMBO(2),
- MY_ACTION_COMBO(3),
- MY_ACTION_COMBO(4),
- MY_ACTION_COMBO(5),
- MY_ACTION_COMBO(6),
- MY_COMBO(0),
- MY_COMBO(1),
- MY_COMBO(2),
- MY_COMBO(3),
- MY_COMBO(4),
- MY_COMBO(5),
- MY_COMBO(6),
- MY_COMBO(7),
- MY_COMBO(8),
- MY_COMBO(9),
- MY_COMBO(10),
- MY_COMBO(11),
- MY_COMBO(12),
- MY_COMBO(13),
- MY_COMBO(14),
-};
-
-_Static_assert(ARRAY_SIZE(key_combos) ==
- (ARRAY_SIZE(my_action_combos) + ARRAY_SIZE(my_combos)),
- "Number of combo definitions does not match up!");
-#else
-combo_t key_combos[ARRAY_SIZE(my_action_combos) + ARRAY_SIZE(my_combos)];
-#endif
-
-void process_combo_event(uint16_t combo_index, bool pressed) {
- switch (combo_index) {
- case C_AUML:
- if (pressed) {
- tap_code16(KC_RALT);
- tap_code16(LSFT(KC_QUOT));
- tap_code16(KC_A);
- }
- break;
- case C_OUML:
- if (pressed) {
- tap_code16(KC_RALT);
- tap_code16(LSFT(KC_QUOT));
- tap_code16(KC_O);
- }
- break;
- case C_UUML:
- if (pressed) {
- tap_code16(KC_RALT);
- tap_code16(LSFT(KC_QUOT));
- tap_code16(KC_U);
- }
- break;
- case C_SZ:
- if (pressed) {
- tap_code16(KC_RALT);
- tap_code16(KC_S);
- tap_code16(KC_S);
- }
- break;
- case C_CBR:
- if (pressed) {
- tap_code16(KC_LCBR);
- tap_code16(KC_RCBR);
- tap_code16(KC_LEFT);
- }
- break;
- case C_PRN:
- if (pressed) {
- tap_code16(KC_LPRN);
- tap_code16(KC_RPRN);
- tap_code16(KC_LEFT);
- }
- break;
- case C_BRC:
- if (pressed) {
- tap_code16(KC_LBRC);
- tap_code16(KC_RBRC);
- tap_code16(KC_LEFT);
- }
- break;
- }
-}
-#endif
-
-void keyboard_post_init_user(void) {
-#ifndef KEYBOARD_preonic_rev3
- default_layer_set(1ul << L_COLM);
-#endif
-#ifdef RGBLIGHT_LAYERS
- // Enable the LED layers
- rgblight_layers = my_rgb_layers;
- rgblight_set_layer_state(0, true);
-#endif
-#if defined(COMBO_ENABLE) && !defined(COMBO_STATICALLY)
- uint8_t i = 0;
- for (; i < ARRAY_SIZE(my_action_combos); i++) {
- key_combos[i].keys = &(my_action_combos[i][0]);
- }
- for (uint8_t j = 0; j < ARRAY_SIZE(my_combos); j++, i++) {
- key_combos[i].keycode = my_combos[j][0];
- key_combos[i].keys = &(my_combos[j][1]);
- }
-#endif
-}
-
-uint16_t key_timer;
-bool delkey_registered;
-bool num_layer_was_used;
-bool extd_layer_was_used;
-// These keep state about the long-press-means-umlaut keys.
-bool auml_pressed;
-bool ouml_pressed;
-bool uuml_pressed;
-
-void maybe_send_umlaut(uint16_t keycode, bool *is_pressed) {
- // Some other key did _not_ already re-arm this key, so now we need to do
- // that ourselves.
- if (*is_pressed) {
- *is_pressed = false;
- // If released within the timer, then just KC_A, KC_O, KC_U
- if (timer_elapsed(key_timer) < TAPPING_TERM) {
- tap_code16(keycode);
- } else {
- tap_code16(KC_RALT);
- tap_code16(LSFT(KC_QUOT));
- tap_code16(keycode);
- }
- }
-}
-
-bool process_record_user(uint16_t keycode, keyrecord_t *record) {
- // TODO: why not use key_timer here? is it dynamic or not?
- static uint16_t extd_layer_timer;
- if (layer_state_is(L_EXTD) && record->event.pressed) {
- extd_layer_was_used = true;
- }
- if (layer_state_is(L_NUM) && record->event.pressed) {
- num_layer_was_used = true;
- }
-
- // An umlaut key was pressed previously (but will only emit the key on
- // release), but we've pressed a different key now, so fire the regular key,
- // re-arm it and continue with whatever actual key was pressed just now.
- if (record->event.pressed) {
- if (auml_pressed) {
- tap_code16(KC_A);
- auml_pressed = false;
- }
- if (ouml_pressed) {
- tap_code16(KC_O);
- ouml_pressed = false;
- }
- if (uuml_pressed) {
- tap_code16(KC_U);
- uuml_pressed = false;
- }
- }
-
- switch (keycode) {
- // From https://github.com/qmk/qmk_firmware/issues/6053
- case LT_EXTD_ESC:
- if (record->event.pressed) {
- extd_layer_was_used = false;
- extd_layer_timer = timer_read();
- layer_on(L_EXTD);
- } else {
- layer_off(L_EXTD);
- unregister_mods(MOD_BIT(KC_LALT)); // undo what ALT_TAB might've set
- // NOTE: need to track whether we made use of the extd layer and
- // that all happened within the tapping term. Otherwise we'd emit
- // that layer key code _plus_ an extra Esc.
- if (timer_elapsed(extd_layer_timer) < TAPPING_TERM && !extd_layer_was_used) {
- tap_code(KC_ESC);
- }
- }
- return true;
- case LT_NUM_BSPC:
- if (record->event.pressed){
- num_layer_was_used = false;
- extd_layer_timer = timer_read();
- layer_on(L_NUM);
- } else {
- layer_off(L_NUM);
- // NOTE: Custom LT method so that any press of a key on that layer will prevent the backspace.
- if (timer_elapsed(extd_layer_timer) < TAPPING_TERM && !num_layer_was_used) {
- tap_code(KC_BSPC);
- }
- }
- return true;
- case LT_MOUSE_ALT_SHIFT_INS:
- if (record->event.pressed) {
- key_timer = timer_read();
- layer_on(L_MOUSE);
- } else {
- layer_off(L_MOUSE);
- if (timer_elapsed(key_timer) < TAPPING_TERM) {
- tap_code16(LALT(LSFT(KC_INS)));
- }
- }
- return true;
- case LT_FUNC_SHIFT_INS:
- if (record->event.pressed) {
- key_timer = timer_read();
- layer_on(L_FUNC);
- } else {
- layer_off(L_FUNC);
- if (timer_elapsed(key_timer) < TAPPING_TERM) {
- tap_code16(LSFT(KC_INS));
- }
- }
- return true;
-#if 1
- /* Looks like PERMISSIVE_HOLD on LT and OSM doesn't work properly. This
- * is probaby https://github.com/qmk/qmk_firmware/issues/8971
- */
- case OSM_GUI:
- /* OSM(MOD_LGUI) is delaying the event, but I need immediate triggering
- * of the modifier to move windows around with the mouse. If only
- * tapped, however, have it be a win OSM */
- if (record->event.pressed) {
- key_timer = timer_read();
- register_mods(MOD_BIT(KC_LGUI));
- } else {
- unregister_mods(MOD_BIT(KC_LGUI));
- if (timer_elapsed(key_timer) < TAPPING_TERM) {
- add_oneshot_mods(MOD_BIT(KC_LGUI));
- } else {
- del_oneshot_mods(MOD_BIT(KC_LGUI));
- }
- }
- return true;
- // Why do I have to roll my own? It seems the original ones work on
- // keyrelease, at which time I might have let go of the layer tap
- // already, so I cannot roll them fast...
- case OSM_SFT:
- if (record->event.pressed) {
- key_timer = timer_read();
- register_mods(MOD_BIT(KC_LSFT));
- } else {
- unregister_mods(MOD_BIT(KC_LSFT));
- if (timer_elapsed(key_timer) < TAPPING_TERM) {
- add_oneshot_mods(MOD_BIT(KC_LSFT));
- } /*else {
- del_oneshot_mods(MOD_BIT(KC_LSFT));
- }*/
- }
- return true;
- case OSM_CTL:
- if (record->event.pressed) {
- key_timer = timer_read();
- register_mods(MOD_BIT(KC_LCTL));
- } else {
- unregister_mods(MOD_BIT(KC_LCTL));
- if (timer_elapsed(key_timer) < TAPPING_TERM) {
- add_oneshot_mods(MOD_BIT(KC_LCTL));
- } /*else {
- del_oneshot_mods(MOD_BIT(KC_LCTL));
- }*/
- }
- return true;
- case OSM_ALT:
- if (record->event.pressed) {
- key_timer = timer_read();
- register_mods(MOD_BIT(KC_LALT));
- } else {
- unregister_mods(MOD_BIT(KC_LALT));
- if (timer_elapsed(key_timer) < TAPPING_TERM) {
- add_oneshot_mods(MOD_BIT(KC_LALT));
- } /*else {
- del_oneshot_mods(MOD_BIT(KC_LALT));
- }*/
- }
- return true;
-#else
-#define OSM_ALT OSM(MOD_LALT)
-#define OSM_CTL OSM(MOD_LCTL)
-#define OSM_GUI OSM(MOD_LGUI)
-#define OSM_SFT OSM(MOD_LSFT)
-#endif
- // Obsoleted by using combos for umlauts now.
- case KC_A_AE:
- if (record->event.pressed) {
- key_timer = timer_read();
- auml_pressed = true;
- } else {
- maybe_send_umlaut(KC_A, &auml_pressed);
- }
- break;
- case KC_O_OE:
- if (record->event.pressed) {
- key_timer = timer_read();
- ouml_pressed = true;
- } else {
- maybe_send_umlaut(KC_O, &ouml_pressed);
- }
- break;
- case KC_U_UE:
- if (record->event.pressed) {
- key_timer = timer_read();
- uuml_pressed = true;
- } else {
- maybe_send_umlaut(KC_U, &uuml_pressed);
- }
- break;
- case MINS_UNDSCR:
- if (record->event.pressed) {
- key_timer = timer_read();
- } else {
- if (timer_elapsed(key_timer) < TAPPING_TERM) {
- // Can't send KC_KP_MINUS, it doesn't compose to, say →
- tap_code16(KC_MINUS);
- } else {
- tap_code16(KC_UNDERSCORE);
- }
- }
- break;
- case ALT_TAB:
- if (record->event.pressed) {
- register_mods(MOD_BIT(KC_LALT));
- tap_code16(KC_TAB);
- }
- break;
- case INS_HARD:
- // Do Alt-Shift-Ins first to have xdotool copy from SELECTION to CLIPBOARD, then Shift-Ins to paste.
- if (record->event.pressed) {
- tap_code16(LSFT(LALT(KC_INS)));
- } else {
- tap_code16(LSFT(KC_INS));
- }
- break;
- case SHIFT_INS:
- if (record->event.pressed) {
- // when keycode is pressed
- key_timer = timer_read();
- // Shift when held ...
- register_mods(MOD_BIT(KC_RSFT));
- } else {
- // If released within the timer, then Shift+Ins
- if (timer_elapsed(key_timer) < TAPPING_TERM) {
- tap_code16(KC_INS);
- }
- unregister_mods(MOD_BIT(KC_RSFT));
- }
- break;
- case ALT_SHIFT_INS:
- if (record->event.pressed) {
- key_timer = timer_read();
- // Shift when held ...
- register_mods(MOD_BIT(KC_LSFT));
- } else {
- // If released within the timer, then Shift+Alt+Ins
- if (timer_elapsed(key_timer) < TAPPING_TERM) {
- register_mods(MOD_BIT(KC_LALT));
- tap_code16(KC_INS);
- }
- // Note: this makes xev(1) see KeyPress for Meta_L but KeyRelease for Alt_L
- unregister_mods(MOD_BIT(KC_LSFT) | MOD_BIT(KC_LALT));
- }
- break;
-/*
- * Obsoleted by making tmux understand Ctrl-(Shift)-Tab natively.
- case TM_NEXT:
- if (record->event.pressed) SEND_STRING(SS_LCTL("a") "n");
- break;
- case TM_PREV:
- if (record->event.pressed) SEND_STRING(SS_LCTL("a") "p");
- break;
-*/
- // TODO: use key overrides to turn, e.g. Win+Ctrl-Tab into VIM_NEXT.
- // Not sure why Ctrl-Pgup works in vim, but not in vim-inside-tmux.
- case VIM_NEXT:
- if (record->event.pressed) SEND_STRING(SS_TAP(X_ESC) SS_TAP(X_G) SS_TAP(X_T));
- break;
- case VIM_PREV:
- if (record->event.pressed) SEND_STRING(SS_TAP(X_ESC) SS_TAP(X_G) SS_LSFT("t"));
- break;
- case WIN_LEFT:
- if (record->event.pressed) SEND_STRING(SS_LCTL("w") SS_TAP(X_H));
- break;
- case WIN_DN:
- if (record->event.pressed) SEND_STRING(SS_LCTL("w") SS_TAP(X_J));
- break;
- case WIN_UP:
- if (record->event.pressed) SEND_STRING(SS_LCTL("w") SS_TAP(X_K));
- break;
- case WIN_RGHT:
- if (record->event.pressed) SEND_STRING(SS_LCTL("w") SS_TAP(X_L));
- break;
- }
-
- return true;
-}
-
-#ifdef LEADER_ENABLE
-void leader_end_user(void) {
-#ifdef UCIS_ENABLE
- if (leader_sequence_one_key(KC_U)) {
- ucis_start();
- }
-#endif
- if (leader_sequence_one_key(KC_H)) {
- send_unicode_string("ᕕ( ᐛ )ᕗ"); // happy
- }
- if (leader_sequence_one_key(KC_D)) {
- send_unicode_string("ಠ_ಠ"); // disapproval
- }
- if (leader_sequence_one_key(KC_L)) {
- send_unicode_string("( ͡° ͜ʖ ͡°)"); // lenny
- }
- if (leader_sequence_one_key(KC_S)) {
- send_unicode_string("¯\\_(ツ)_/¯"); // shrug
- }
- // tableflip (LEADER - TF)
- if (leader_sequence_two_keys(KC_T, KC_F)) {
- //set_unicode_input_mode(UNICODE_MODE_LINUX);
- //send_unicode_hex_string("0028 30CE 0CA0 75CA 0CA0 0029 30CE 5F61 253B 2501 253B");
- send_unicode_string("(╯°□°)╯︵ ┻━┻");
- }
- // untableflip
- if (leader_sequence_three_keys(KC_U, KC_T, KC_F)) {
- //set_unicode_input_mode(UNICODE_MODE_LINUX);
- //send_unicode_hex_string("0028 30CE 0CA0 75CA 0CA0 0029 30CE 5F61 253B 2501 253B");
- send_unicode_string("┬─┬ノ( º _ ºノ)");
- }
-}
-#endif
-
-#ifdef UCIS_ENABLE
-// 3 codepoints at most, otherwise increase UCIS_MAX_CODE_POINTS
-const ucis_symbol_t ucis_symbol_table[] = UCIS_TABLE(
- UCIS_SYM("poop", 0x1F4A9), // 💩
- UCIS_SYM("rofl", 0x1F923), // 🤣
- UCIS_SYM("look", 0x0CA0, 0x005F, 0x0CA0) // ಠ_ಠ
-);
-#endif
diff --git a/users/uqs/uqs.h b/users/uqs/uqs.h
deleted file mode 100644
index b5026e5b59..0000000000
--- a/users/uqs/uqs.h
+++ /dev/null
@@ -1,77 +0,0 @@
-// Copyright 2022 Ulrich Spörlein (@uqs)
-// SPDX-License-Identifier: GPL-2.0-or-later
-// vi:et sw=4:
-#pragma once
-
-#include QMK_KEYBOARD_H
-
-enum layers {
- L_QWER = 0,
- L_WASD, // wasd gaming
- L_COLM, // Colemak DHm
- L_EXTD,
- L_NUM,
- L_FUNC,
- L_MOUSE,
- L_LAST, // unused
-};
-
-#ifdef VIA_ENABLE
-_Static_assert(DYNAMIC_KEYMAP_LAYER_COUNT >= L_LAST, "VIA enabled, but not enough DYNAMIC_KEYMAP_LAYER_COUNT for all layers");
-#endif
-
-#define KC_CTAB LCTL(KC_TAB)
-#define KC_SCTAB LCTL(LSFT(KC_TAB))
-
-// Custom single-key codes, see uqs.c for the combos.
-enum custom_keycodes {
- SHIFT_INS = SAFE_RANGE,
- ALT_SHIFT_INS,
- INS_HARD,
- KC_A_AE,
- KC_O_OE,
- KC_U_UE,
- MINS_UNDSCR, // obsoleted by combos, remove this!
- TM_NEXT,
- TM_PREV,
- VIM_NEXT,
- VIM_PREV,
- WIN_LEFT,
- WIN_RGHT,
- WIN_UP,
- WIN_DN,
- LT_EXTD_ESC,
- LT_NUM_BSPC,
- LT_MOUSE_ALT_SHIFT_INS,
- LT_FUNC_SHIFT_INS,
- OSM_GUI,
- OSM_SFT,
- OSM_CTL,
- OSM_ALT,
- ALT_TAB,
-};
-
-#ifndef LEADER_ENABLE
-#define QK_LEAD KC_NO
-#endif
-
-// Shorter names
-#define MS_WHDN KC_MS_WH_DOWN
-#define MS_WHUP KC_MS_WH_UP
-#define MS_WHLEFT KC_MS_WH_LEFT
-#define MS_WHRGHT KC_MS_WH_RIGHT
-
-// GASC/◆⎇⇧⎈ home row mod, read all about it here:
-// https://precondition.github.io/home-row-mods
-// Left-hand home row mods
-#define KC_G_A LGUI_T(KC_A)
-#define KC_A_R LALT_T(KC_R)
-#define KC_S_S LSFT_T(KC_S)
-#define KC_C_T LCTL_T(KC_T)
-
-// Right-hand home row mods
-#define KC_C_N RCTL_T(KC_N)
-#define KC_S_E RSFT_T(KC_E)
-#define KC_A_I LALT_T(KC_I) // RALT is special, it's AltGr and my compose key under Win (layout UScmpse) and *nix (setxkbmap -option compose:ralt)
-#define KC_G_O RGUI_T(KC_O)
-
diff --git a/users/vitoni/readme.adoc b/users/vitoni/readme.adoc
deleted file mode 100644
index acf65793d2..0000000000
--- a/users/vitoni/readme.adoc
+++ /dev/null
@@ -1,16 +0,0 @@
-= User functions
-
-Functions are mostly related to changing the RGB lights depending on user interaction and when idling.
-
-== utils.h
-
-Common functions are declared in link:utils.h[]. These function are not directly RGB related but used to modify state and calculate values.
-
-== rgb_matrix_effects.h
-
-Functions in link:rgb_matrix_effects.h[] make use of common function in `utils.h` and are used to create to RGB matrix effects such as fading or breathing.
-
-== vitoni.h
-
-The functions declared in link:vitoni.h[] are used as entry points for usage of RGB effects.
-One entry point is `matrix_scan` based for regular task while the other is `process_record` based for user activity tasks.
diff --git a/users/vitoni/rgb_matrix_effects.c b/users/vitoni/rgb_matrix_effects.c
deleted file mode 100644
index 3a13e99bc7..0000000000
--- a/users/vitoni/rgb_matrix_effects.c
+++ /dev/null
@@ -1,236 +0,0 @@
-// Copyright 2021 Victor Toni (@vitoni)
-// SPDX-License-Identifier: GPL-2.0-or-later
-
-#include "rgb_matrix_effects.h"
-
-#include <rgb_matrix.h>
-#include <lib/lib8tion/lib8tion.h>
-
-#include "utils.h"
-
-/*
- Offset used to start at the right point in th curve to avoid big jumps in brightness
- 0 => 0% (signed) => 50% (unsigned)
- 64 => 100% (signed) => 100% (unsigned)
- 128 => 0% (signed) => 50% (unsigned)
- 192 => -100% (signed) => 0% (unsigned)
-*/
-enum PHASE {
- PHASE_ZERO_RAISING
- ,PHASE_HIGH
- ,PHASE_ZERO_FALLING
- ,PHASE_LOW
-};
-
-/**
- * @brief Calculates the offset so that a specific time is aligned to a specific point in the sine curve.
- * @param[in] time The time for which the offset shopuld be calculated.
- * @param[in] phase Phase which should be reached with the offset
- * @see PHASE
- */
-uint8_t offset_for_time(const uint8_t time, const uint8_t phase) {
- switch (phase) {
- case PHASE_ZERO_RAISING:
- return 0 - time;
- case PHASE_HIGH:
- return 64 - time;
- case PHASE_ZERO_FALLING:
- return 128 - time;
- case PHASE_LOW:
- return 192 - time;
- default:
- return 0;
- }
-}
-
-/**
- * @brief Scales down `g_rgb_timer` so that it can be used for RGB effects.
- * @return scaled down timer
- * @see rgb_time_2_scale_w_factor()
- */
-uint8_t rgb_time_2_scale(void) {
- static const uint8_t factor = 1;
- return rgb_time_2_scale_w_factor(factor);
-}
-
-/*
- * Used to slow down RGB speed.
- */
-static const uint8_t rgb_speed_divisor = 8;
-
-/**
- * @brief Scales down `g_rgb_timer` so that it can be used for RGB effects.
- * @details Usually these calculations aredone internally by some RGB effects.
- This method exposed to scaling so that all effects to have same timebase. If `rgb_matrix_config.speed` all effects are affected the same.
- * @param[in] factor The factor can be used to speed up some operations in relation to others.
- * @return scaled down timer taking into account the given factor
- * @see g_rgb_timer
- * @see rgb_matrix_config.speed
- */
-uint8_t rgb_time_2_scale_w_factor(const uint8_t rgb_speed_factor) {
- const uint8_t scaled_time = scale16by8(g_rgb_timer, rgb_matrix_config.speed * rgb_speed_factor / rgb_speed_divisor);
-
- return scaled_time;
-}
-
-/**
- * @brief Inverse function to calculate time required to execute `timer` steps.
- * @details This method allows calculation of the time needed to execute N `timer`steps.
- Usefull when using a scaled down time but requiring the time needed to perform these steps.
- * @param[in] scaled_time scaled down timer to inverse to time
- * @return time corresponding to scaled down time
- * @see rgb_time_2_scale()
- */
-uint16_t scale_2_rgb_time(const uint8_t scaled_time) {
- const uint16_t time = scaled_time * rgb_speed_divisor * UINT8_MAX / rgb_matrix_config.speed;
-
- return time;
-}
-
-bool fade_in_ranged(const uint8_t time, const uint8_t range_min, const uint8_t range_max) {
- static const uint8_t max_delta = 1;
- return scaled_sin_up(time, range_min, range_max, max_delta, &(rgb_matrix_config.hsv.v));
-}
-
-bool fade_out_ranged(const uint8_t time, const uint8_t range_min, const uint8_t range_max) {
- static const uint8_t max_delta = 1;
- return scaled_sin_down(time, range_min, range_max, max_delta, &(rgb_matrix_config.hsv.v));
-}
-
-/**
- * @brief Convenience method to eventually skip the value part when setting HSV.
- * @details When setting HSV this includes the value/brightness.
- As changing brightness might interfer with fading or breathing effects,
- this method can skip the value part of HSV (depending on the preprocessor flag: RGB_FADE_IN).
- * @param[in] hue Hue
- * @param[in] sat Saturation
- * @param[in] hue Value (brightness)
- * @see rgb_matrix_sethsv_noeeprom()
- */
-void rgb_matrix_sethsv_noeeprom_user(const uint16_t hue, const uint8_t sat, const uint8_t val) {
-#if defined(RGB_FADE_IN) || defined(RGB_IDLE_TIMEOUT)
- rgb_matrix_config.hsv.h = hue;
- rgb_matrix_config.hsv.s = sat;
- // omitting setting the value to avoid interfering with effects
-// rgb_matrix_config.hsv.v = val;
-#else
- rgb_matrix_sethsv_noeeprom(hue, sat, val);
-#endif
-}
-
-#if defined(RGB_FADE_IN) || defined(RGB_IDLE_TIMEOUT)
-/**
- * @brief Calculates the time offset required by fade in.
- * @details Using an arbitrary timer any point on the sine curve might be pointed to.
- * The offest is calculated so that
- * a) the point is at the lowest point in the curve and the curve is raising
- * b) the point is near the current brightness (eg. fade in might be called while fading out and the lowest value has not yet been reached).
- * @param[in] time Current time usually represented by (usually scaled) timer
- * @return Offset required so that time matches the current brightness
- */
-uint8_t calc_fade_in_offset(const uint8_t time) {
- static const uint8_t max_steps = UINT8_MAX/2;
- static const uint8_t range_min = 0;
- static const uint8_t range_max = RGB_MATRIX_MAXIMUM_BRIGHTNESS;
-
- // start at the right point in the sine curve
- uint8_t time_offset = offset_for_time(time, PHASE_LOW);
-
- // find the right offset to match the current brightness
- for (int i = 1; i < max_steps; i++) {
- const uint8_t value = scaled_sin(time + time_offset + 1, range_min, range_max);
- if (in_range(value, range_min, range_max) && value < rgb_matrix_config.hsv.v) {
- time_offset++;
- } else {
- break;
- }
- }
-
- return time_offset;
-}
-
-/**
- * @brief Increases value/brightness until reaching RGB_MATRIX_MAXIMUM_BRIGHTNESS based on given timer.
- * @param[in] time A (usually scaled) timer
- * @return Returns `true` if RGB_MATRIX_MAXIMUM_BRIGHTNESS has been reached, `false` otherwise.
- */
-bool fade_in(const uint8_t time) {
- static const uint8_t range_min = 0;
- static const uint8_t range_max = RGB_MATRIX_MAXIMUM_BRIGHTNESS;
-
- return fade_in_ranged(time, range_min, range_max);
-}
-#endif
-
-#if defined(RGB_DISABLE_WITH_FADE_OUT) || defined(RGB_IDLE_TIMEOUT)
-/**
- * @brief Calculates the time offset required by fade out.
- * @details Using an arbitrary timer any point on the Sinus curve might be pointed to.
- * The offest is calculated so that
- * a) the point is at the highest point in the curve and the curve is failing
- * b) the point is near the current brightness (eg. fade out might be called while on breath effect).
- * @param[in] time Current time usually represented by a(usually scaled) timer
- * @return Offset required so that time matches the current brightness
- */
-uint8_t calc_fade_out_offset(const uint8_t time) {
- static const uint8_t range_min = 0;
- static const uint8_t range_max = RGB_MATRIX_MAXIMUM_BRIGHTNESS;
-
- // start at the right point in the sin() curve
- uint8_t time_offset = offset_for_time(time, PHASE_HIGH);
-
- // find the right offset to match the current brightness
- for (int i = 1; i < 127; i++) {
- const uint8_t value = scaled_sin(time + time_offset + 1, range_min, range_max);
- if (in_range(value, range_min, range_max) && rgb_matrix_config.hsv.v < value) {
- time_offset++;
- } else {
- break;
- }
- }
-
- return time_offset;
-}
-#endif
-
-#if defined(RGB_DISABLE_WITH_FADE_OUT)
-/**
- * @brief Decreases value/brightness until reaching 0 based on given timer.
- * @param[in] time A (usually scaled) timer
- * @return Returns `true` if 0 has been reached, `false` otherwise.
- */
-bool fade_out(const uint8_t time) {
- static const uint8_t range_min = 0;
- static const uint8_t range_max = RGB_MATRIX_MAXIMUM_BRIGHTNESS;
-
- return fade_out_ranged(time, range_min, range_max);
-}
-#endif
-
-#if defined(RGB_IDLE_TIMEOUT)
-/**
- * @brief Decreases value/brightness until reaching `RGB_IDLE_MINIMUM_BRIGHTNESS` based on given timer.
- * @param[in] time A (usually scaled) timer
- * @return Returns `true` if `RGB_IDLE_MINIMUM_BRIGHTNESS` has been reached, `false` otherwise.
- */
-bool idle_fade_out(const uint8_t time) {
- static const uint8_t range_min = RGB_IDLE_MINIMUM_BRIGHTNESS;
- static const uint8_t range_max = RGB_MATRIX_MAXIMUM_BRIGHTNESS;
-
- return fade_out_ranged(time, range_min, range_max);
-}
-
-#if defined(RGB_IDLE_BREATHE)
-/**
- * @brief Changes value/brightness to create a breathing effect based on given timer.
- * @details Brightness will breathe in the range starting from `RGB_IDLE_MINIMUM_BRIGHTNESS` to `RGB_IDLE_MAXIMUM_BRIGHTNESS`.
- * @param[in] time A (usually scaled) timer
- */
-void idle_breathe(const uint8_t time) {
- static const uint8_t range_min = RGB_IDLE_MINIMUM_BRIGHTNESS;
- static const uint8_t range_max = RGB_IDLE_MAXIMUM_BRIGHTNESS;
-
- rgb_matrix_config.hsv.v = scaled_sin(time, range_min, range_max);
-}
-#endif // RGB_IDLE_BREATHE
-#endif // RGB_IDLE_TIMEOUT
diff --git a/users/vitoni/rgb_matrix_effects.h b/users/vitoni/rgb_matrix_effects.h
deleted file mode 100644
index c3234b159b..0000000000
--- a/users/vitoni/rgb_matrix_effects.h
+++ /dev/null
@@ -1,174 +0,0 @@
-// Copyright 2021 Victor Toni (@vitoni)
-// SPDX-License-Identifier: GPL-2.0-or-later
-
-#pragma once
-
-#include <stdint.h>
-#include <stdbool.h>
-
-/**
- * States reflecting the state of the keyboard.
- * Dependeing on these states various effects can set for the RGB matrix.
- */
-enum states {
- REGULAR //!< when in regular use
-#if defined(RGB_IDLE_TIMEOUT)
- ,IDLE_FADE_OUT //!< when started idling
- ,IDLE //!< when idling
-#endif
-#if defined(RGB_FADE_IN) || defined(RGB_IDLE_TIMEOUT)
- ,FADE_IN //!< when starting initially or before going back to REGULAR
-#endif
-#if defined(RGB_DISABLE_WITH_FADE_OUT)
- ,FADE_OUT //!< before supending
-#endif
- ,SUSPENDED //!< expecting to be suspended by RGB_MATRIX_TIMEOUT any time
-};
-
-/**
- * @brief Scales down `g_rgb_timer` so that it can be used for RGB effects.
- * @details Usually these calculations aredone internally by some RGB effects.
- This method exposed to scaling so that all effects to have same timebase. If `rgb_matrix_config.speed` all effects are affected the same.
- * @param[in] factor The factor can be used to speed up some operations in relation to others.
- * @return scaled down timer taking into account the given factor
- * @see g_rgb_timer
- * @see rgb_matrix_config.speed
- */
-uint8_t rgb_time_2_scale_w_factor(const uint8_t factor);
-
-/**
- * @brief Scales down `g_rgb_timer` so that it can be used for RGB effects.
- * @return scaled down timer
- * @see rgb_time_2_scale_w_factor()
- */
-uint8_t rgb_time_2_scale(void);
-
-/**
- * @brief Inverse function to calculate time required to execute `timer` steps.
- * @details This method allows calculation of the time needed to execute N `timer`steps.
- Usefull when using a scaled down time but requiring the time needed to perform these steps.
- * @param[in] scaled_time scaled down timer to inverse to time
- * @return time corresponding to scaled down time
- * @see rgb_time_2_scale()
- */
-uint16_t scale_2_rgb_time(const uint8_t scaled_time);
-
-/**
- * @brief Convenience method to eventually skip the value part when setting HSV.
- * @details When setting HSV this includes the value/brightness.
- As changing brightness might interfer with fading or breathing effects,
- this method can skip the value part of HSV (depending on the preprocessor flag: RGB_FADE_IN).
- * @param[in] hue Hue
- * @param[in] sat Saturation
- * @param[in] hue Value (brightness)
- * @see rgb_matrix_sethsv_noeeprom()
- */
-void rgb_matrix_sethsv_noeeprom_user(const uint16_t hue, const uint8_t sat, const uint8_t val);
-
-#if defined(RGB_FADE_IN) || defined(RGB_DISABLE_WITH_FADE_OUT) || defined(RGB_IDLE_TIMEOUT)
-# if defined(RGB_MATRIX_MAXIMUM_BRIGHTNESS)
-# if (RGB_MATRIX_MAXIMUM_BRIGHTNESS) < 1
-# error "RGB_MATRIX_MAXIMUM_BRIGHTNESS must not be less than ONE"
-# endif
-# if UINT8_MAX < (RGB_MATRIX_MAXIMUM_BRIGHTNESS)
-# error "RGB_MATRIX_MAXIMUM_BRIGHTNESS must not be larger than UINT8_MAX"
-# endif
-# else
-# define RGB_MATRIX_MAXIMUM_BRIGHTNESS 200
-# endif
-#endif
-
-#if defined(RGB_FADE_IN) || defined(RGB_IDLE_TIMEOUT)
-/**
- * @brief Calculates the time offset required by fade in.
- * @details Using an arbitrary timer any point on the sine curve might be pointed to.
- * The offset is calculated so that
- * a) the point is at the lowest point in the curve and the curve is raising
- * b) the point is near the current brightness (eg. fade in might be called while fading out and the lowest value has not yet been reached).
- * @param[in] time Current time usually represented by a(usually scaled) timer
- * @return Offset required so that time matches the current brightness
- */
-uint8_t calc_fade_in_offset(const uint8_t time);
-
-/**
- * @brief Increases value/brightness until reaching RGB_MATRIX_MAXIMUM_BRIGHTNESS based on given timer.
- * @param[in] time A (usually scaled) timer
- * @return Returns `true` if RGB_MATRIX_MAXIMUM_BRIGHTNESS has been reached, `false` otherwise.
- */
-bool fade_in(const uint8_t time);
-#endif
-
-#if defined(RGB_DISABLE_WITH_FADE_OUT)
-# if !defined(RGB_MATRIX_TIMEOUT)
-# warning "RGB_DISABLE_WITH_FADE_OUT expects RGB_MATRIX_TIMEOUT to be defined"
-# endif
-#endif
-
-#if defined(RGB_DISABLE_WITH_FADE_OUT) || defined(RGB_IDLE_TIMEOUT)
-/**
- * @brief Calculates the time offset required by fade out.
- * @details Using an arbitrary timer any point on the Sinus curve might be pointed to.
- * The offest is calculated so that
- * a) the point is at the highest point in the curve and the curve is failing
- * b) the point is near the current brightness (eg. fade out might be called while on breath effect).
- * @param[in] time Current time usually represented by a(usually scaled) timer
- * @return Offset required so that time matches the current brightness
- */
-uint8_t calc_fade_out_offset(const uint8_t time);
-#endif
-
-#if defined(RGB_DISABLE_WITH_FADE_OUT)
-/**
- * @brief Decreases value/brightness until reaching 0 based on given timer.
- * @param[in] time A (usually scaled) timer
- * @return Returns `true` if 0 has been reached, `false` otherwise.
- */
-bool fade_out(const uint8_t time);
-#endif
-
-#if defined(RGB_IDLE_TIMEOUT)
-# if RGB_IDLE_TIMEOUT < 0
-# error "RGB_IDLE_TIMEOUT must not be less than ZERO"
-# endif
-# if !defined(RGB_IDLE_MINIMUM_BRIGHTNESS)
- // minimum brightness when idling
-# define RGB_IDLE_MINIMUM_BRIGHTNESS (RGB_MATRIX_MAXIMUM_BRIGHTNESS/5)
-# endif
-# if RGB_IDLE_MINIMUM_BRIGHTNESS < 0
-# error "RGB_IDLE_MINIMUM_BRIGHTNESS must not be less than ZERO"
-# endif // RGB_IDLE_MINIMUM_BRIGHTNESS < 0
-# if RGB_MATRIX_MAXIMUM_BRIGHTNESS <= RGB_IDLE_MINIMUM_BRIGHTNESS
-# error "RGB_IDLE_MINIMUM_BRIGHTNESS must be less than RGB_MATRIX_MAXIMUM_BRIGHTNESS"
-# endif // RGB_MATRIX_MAXIMUM_BRIGHTNESS <= RGB_IDLE_MINIMUM_BRIGHTNESS
-
-/**
- * @brief Decreases value/brightness until reaching `RGB_IDLE_MINIMUM_BRIGHTNESS` based on given timer.
- * @param[in] time A (usually scaled) timer
- * @return Returns `true` if `RGB_IDLE_MINIMUM_BRIGHTNESS` has been reached, `false` otherwise.
- */
-bool idle_fade_out(const uint8_t time);
-
-#if defined(RGB_IDLE_BREATHE)
-# if !defined(RGB_IDLE_MAXIMUM_BRIGHTNESS)
- // maximum brightness when idling
-# define RGB_IDLE_MAXIMUM_BRIGHTNESS (RGB_MATRIX_MAXIMUM_BRIGHTNESS*3/5)
-# endif
-# if !(0 <= RGB_IDLE_MAXIMUM_BRIGHTNESS)
-# error "RGB_IDLE_MINIMUM_BRIGHTNESS must not be less than ZERO, was: " RGB_IDLE_MAXIMUM_BRIGHTNESS
-# endif // RGB_IDLE_MAXIMUM_BRIGHTNESS < 0
-# if !(RGB_IDLE_MINIMUM_BRIGHTNESS < RGB_IDLE_MAXIMUM_BRIGHTNESS)
-# error "RGB_IDLE_MINIMUM_BRIGHTNESS must be less than RGB_IDLE_MAXIMUM_BRIGHTNESS"
-# endif // RGB_IDLE_MAXIMUM_BRIGHTNESS <= RGB_IDLE_MINIMUM_BRIGHTNESS
-# if !(RGB_IDLE_MAXIMUM_BRIGHTNESS <= RGB_MATRIX_MAXIMUM_BRIGHTNESS)
-# error "RGB_IDLE_MAXIMUM_BRIGHTNESS must be less than or equal to RGB_MATRIX_MAXIMUM_BRIGHTNESS"
-# endif // RGB_MATRIX_MAXIMUM_BRIGHTNESS <= RGB_IDLE_MAXIMUM_BRIGHTNESS
-
-/**
- * @brief Changes value/brightness to create a breathing effect based on given timer.
- * @details Brightness will breathe in the range starting from `RGB_IDLE_MINIMUM_BRIGHTNESS` to `RGB_IDLE_MAXIMUM_BRIGHTNESS`.
- * @param[in] time A (usually scaled) timer
- */
-void idle_breathe(const uint8_t time);
-#endif // RGB_IDLE_BREATHE
-
-#endif // RGB_IDLE_TIMEOUT
diff --git a/users/vitoni/rules.mk b/users/vitoni/rules.mk
deleted file mode 100644
index 2f3b0d15e5..0000000000
--- a/users/vitoni/rules.mk
+++ /dev/null
@@ -1,4 +0,0 @@
-SRC += \
- vitoni.c \
- utils.c \
- rgb_matrix_effects.c
diff --git a/users/vitoni/utils.c b/users/vitoni/utils.c
deleted file mode 100644
index fb011570e4..0000000000
--- a/users/vitoni/utils.c
+++ /dev/null
@@ -1,129 +0,0 @@
-// Copyright 2021 Victor Toni (@vitoni)
-// SPDX-License-Identifier: GPL-2.0-or-later
-
-#include "utils.h"
-
-#include <lib/lib8tion/lib8tion.h>
-
-/**
-* @brief Changes `*value` to `new_value`.
-* @param[in,out] value Pointer to variable to be changed.
-* @param[in] new_value Value to be changed.
-* @param[in,out] changed Flag indicating `*value` and `new_value` were different.
-*/
-void update_value(uint8_t *value, const uint8_t new_value, bool *changed) {
- if (new_value != (*value)) {
- (*changed) = true;
- (*value) = new_value;
- }
-}
-
-/**
-* @brief Checks whether a value is in the given range.
-* @param[in] value Value to be checked.
-* @param[in] range_min Lower bound of range (inclusive).
-* @param[in] range_max Upper bound of range (inclusive).
-* @return `true` if (range_min <= value <= range_max), `false` otherwise
-*/
-bool in_range(const uint8_t value, const uint8_t range_min, const uint8_t range_max) {
- return range_min <= value && value <= range_max;
-}
-
-/**
-* @brief Calculates the sine value based on sin8() and scales it to the given range (unsigned).
-*
-* Table of values for unscaled sin8() eg. a theta of 0 results to 128 and a theta of 255 (240+15) results to 125.
- 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
- +----------------------------------------------------------------
- 0: 128 131 134 137 140 143 146 149 152 155 158 161 164 167 170 173
- 16: 177 179 182 184 187 189 192 194 197 200 202 205 207 210 212 215
- 32: 218 219 221 223 224 226 228 229 231 233 234 236 238 239 241 243
- 48: 245 245 246 246 247 248 248 249 250 250 251 251 252 253 253 254
- 64: 255 254 253 253 252 251 251 250 250 249 248 248 247 246 246 245
- 80: 245 243 241 239 238 236 234 233 231 229 228 226 224 223 221 219
- 96: 218 215 212 210 207 205 202 200 197 194 192 189 187 184 182 179
- 112: 177 173 170 167 164 161 158 155 152 149 146 143 140 137 134 131
- 128: 128 125 122 119 116 113 110 107 104 101 98 95 92 89 86 83
- 144: 79 77 74 72 69 67 64 62 59 56 54 51 49 46 44 41
- 160: 38 37 35 33 32 30 28 27 25 23 22 20 18 17 15 13
- 176: 11 11 10 10 9 8 8 7 6 6 5 5 4 3 3 2
- 192: 1 2 3 3 4 5 5 6 6 7 8 8 9 10 10 11
- 208: 11 13 15 17 18 20 22 23 25 27 28 30 32 33 35 37
- 224: 38 41 44 46 49 51 54 56 59 62 64 67 69 72 74 77
- 240: 79 83 86 89 92 95 98 101 104 107 110 113 116 119 122 125
-*
-* @param[in] theta Angle (a full circle mapped to 0-255) used as input for sine calculation.
-* @param[in] range_min Lower bound of range (inclusive).
-* @param[in] range_max Upper bound of range (inclusive).
-* @return Calculated sine value mapped to the given range.
-*/
-uint8_t scaled_sin(const uint8_t theta, const uint8_t range_min, const uint8_t range_max) {
- const uint8_t range = range_max - range_min;
- return scale8(sin8(theta), range) + range_min;
-}
-
-/**
-* @brief Increases the given value until reaching range_max.
-* The increments occur following an upwards sine wave (scaled from range_min to range_max).
-* @param[in] theta Angle (a full circle mapped to 0-255) used as input for sine calculation.
-* @param[in] range_min Lower bound of range (inclusive).
-* @param[in] range_max Upper bound of range (inclusive).
-* @param[in] max_delta Maximum delta between value and range_max (due to values being integers and eventually not fully matching).
-* @param[in,out] value Reference of variable to be increased
-* @return `true` if value and range_max are within a delta of 3 (chosen by fair dice rolling), `false` otherwise
-* @see scaled_sin()
-*/
-bool scaled_sin_up(const uint8_t theta, const uint8_t range_min, const uint8_t range_max, const uint8_t max_delta, uint8_t *value) {
- // ensure upper range bound
- if (range_max <= (*value)) {
- (*value) = range_max;
- return true;
- }
-
- const uint8_t new_value = scaled_sin(theta, range_min, range_max);
- if (in_range(new_value, range_min, range_max) && (*value) < new_value) {
- (*value) = new_value;
-
- return range_max == (*value);
- }
-
- const uint8_t delta = range_max - (*value);
- if (delta <= max_delta) {
- (*value) = range_max;
- }
-
- return delta <= max_delta;
-}
-
-/**
-* @brief Decreases the given value until reaching range_min.
-* The decrements occur following an downwards sinus wave (scaled from range_min to range_max).
-* @param[in] theta Angle (a full circle mapped to 0-255) used as input for sinus calculation.
-* @param[in] range_min Lower bound of range (inclusive).
-* @param[in] range_max Upper bound of range (inclusive).
-* @param[in] max_delta Maximum delta between value and range_min (due to values being integers and eventually not fully matching).
-* @param[in,out] value Reference of variable to be decreased
-* @return `true` if value and range_max are within a delta of 3 (chosen by fair dice rolling), `false` otherwise
-* @see scaled_sin()
-*/
-bool scaled_sin_down(const uint8_t theta, const uint8_t range_min, const uint8_t range_max, const uint8_t max_delta, uint8_t *value) {
- // ensure lower range bound
- if ((*value) <= range_min) {
- (*value) = range_min;
- return true;
- }
-
- const uint8_t new_value = scaled_sin(theta, range_min, range_max);
- if (in_range(new_value, range_min, range_max) && new_value < (*value)) {
- (*value) = new_value;
-
- return range_min == (*value);
- }
-
- const uint8_t delta = (*value) - range_min;
- if (delta <= max_delta) {
- (*value) = range_min;
- }
-
- return delta <= max_delta;
-}
diff --git a/users/vitoni/utils.h b/users/vitoni/utils.h
deleted file mode 100644
index 987b612d58..0000000000
--- a/users/vitoni/utils.h
+++ /dev/null
@@ -1,80 +0,0 @@
-// Copyright 2021 Victor Toni (@vitoni)
-// SPDX-License-Identifier: GPL-2.0-or-later
-
-#pragma once
-
-#include <stdint.h>
-#include <stdbool.h>
-
-/**
-* @brief Changes `*value` to `new_value`.
-* @param[in,out] value Pointer to variable to be changed.
-* @param[in] new_value Value to be changed.
-* @param[in,out] changed Flag indicating `*value` and `new_value` were different.
-*/
-void update_value(uint8_t *value, const uint8_t new_value, bool *changed);
-
-/**
-* @brief Checks whether a value is in the given range.
-* @param[in] value Value to be checked.
-* @param[in] range_min Lower bound of range (inclusive).
-* @param[in] range_max Upper bound of range (inclusive).
-* @return `true` if (range_min <= value <= range_max), `false` otherwise
-*/
-bool in_range(const uint8_t value, const uint8_t range_min, const uint8_t range_max);
-
-/**
-* @brief Calculates the sine value based on sin8() and scales it to the given range (unsigned).
-*
-* Table of values for unscaled sin8() eg. a theta of 0 results to 128 and a theta of 255 (240+15) results to 125.
- 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
- +----------------------------------------------------------------
- 0: 128 131 134 137 140 143 146 149 152 155 158 161 164 167 170 173
- 16: 177 179 182 184 187 189 192 194 197 200 202 205 207 210 212 215
- 32: 218 219 221 223 224 226 228 229 231 233 234 236 238 239 241 243
- 48: 245 245 246 246 247 248 248 249 250 250 251 251 252 253 253 254
- 64: 255 254 253 253 252 251 251 250 250 249 248 248 247 246 246 245
- 80: 245 243 241 239 238 236 234 233 231 229 228 226 224 223 221 219
- 96: 218 215 212 210 207 205 202 200 197 194 192 189 187 184 182 179
- 112: 177 173 170 167 164 161 158 155 152 149 146 143 140 137 134 131
- 128: 128 125 122 119 116 113 110 107 104 101 98 95 92 89 86 83
- 144: 79 77 74 72 69 67 64 62 59 56 54 51 49 46 44 41
- 160: 38 37 35 33 32 30 28 27 25 23 22 20 18 17 15 13
- 176: 11 11 10 10 9 8 8 7 6 6 5 5 4 3 3 2
- 192: 1 2 3 3 4 5 5 6 6 7 8 8 9 10 10 11
- 208: 11 13 15 17 18 20 22 23 25 27 28 30 32 33 35 37
- 224: 38 41 44 46 49 51 54 56 59 62 64 67 69 72 74 77
- 240: 79 83 86 89 92 95 98 101 104 107 110 113 116 119 122 125
-*
-* @param[in] theta Angle (a full circle mapped to 0-255) used as input for sine calculation.
-* @param[in] range_min Lower bound of range (inclusive).
-* @param[in] range_max Upper bound of range (inclusive).
-* @return Calculated sine value mapped to the given range.
-*/
-uint8_t scaled_sin(const uint8_t theta, const uint8_t range_min, const uint8_t range_max);
-
-/**
-* @brief Increases the given value until reaching range_max.
-* The increments occur following an upwards sine wave (scaled from range_min to range_max).
-* @param[in] theta Angle (a full circle mapped to 0-255) used as input for sine calculation.
-* @param[in] range_min Lower bound of range (inclusive).
-* @param[in] range_max Upper bound of range (inclusive).
-* @param[in] max_delta Maximum delta between value and range_max (due to values being integers and eventually not fully matching).
-* @param[in,out] value Reference of variable to be increased
-* @return `true` if value and range_max are within a delta of 3 (chosen by fair dice rolling), `false` otherwise
-* @see scaled_sin()
-*/
-bool scaled_sin_up(const uint8_t thea, const uint8_t range_min, const uint8_t range_max, const uint8_t max_delta, uint8_t *value);
-
-/**
-* @brief Decreases the given value until reaching range_min.
-* The decrements occur following an downwards sinus wave (scaled from range_min to range_max).
-* @param[in] theta Angle (a full circle mapped to 0-255) used as input for sinus calculation.
-* @param[in] range_min Lower bound of range (inclusive).
-* @param[in] range_max Upper bound of range (inclusive).
-* @param[in] max_delta Maximum delta between value and range_min (due to values being integers and eventually not fully matching).
-* @param[in,out] value Reference of variable to be decreased
-* @return `true` if value and range_max are within a delta of 3 (chosen by fair dice rolling), `false` otherwise
-* @see scaled_sin()
-*/
-bool scaled_sin_down(const uint8_t theta, const uint8_t range_min, const uint8_t range_max, const uint8_t max_delta, uint8_t *value);
diff --git a/users/vitoni/vitoni.c b/users/vitoni/vitoni.c
deleted file mode 100644
index f8cb50ea78..0000000000
--- a/users/vitoni/vitoni.c
+++ /dev/null
@@ -1,131 +0,0 @@
-// Copyright 2021 Victor Toni (@vitoni)
-// SPDX-License-Identifier: GPL-2.0-or-later
-
-#include "vitoni.h"
-
-#include <rgb_matrix.h>
-#include <lib/lib8tion/lib8tion.h>
-
-#include "rgb_matrix_effects.h"
-#include "utils.h"
-
-#if defined(RGB_FADE_IN) || defined(RGB_DISABLE_WITH_FADE_OUT) || defined(RGB_IDLE_TIMEOUT)
-static uint8_t state;
-
-// flag used to indicate that offset calculation is needed to adjust the timer,
-// so that it matches the index used for sine calculation
-static bool calc_offset;
-
-void matrix_scan_user_rgb(void) {
-#if defined(RGB_DISABLE_WITH_FADE_OUT) || defined(RGB_IDLE_TIMEOUT)
- const uint8_t time = rgb_time_2_scale();
-#endif
- static uint8_t time_offset;
-
- const uint32_t inactivity_millis = last_input_activity_elapsed();
-
-#if defined(RGB_IDLE_TIMEOUT)
- if (IDLE != state && RGB_IDLE_TIMEOUT <= inactivity_millis) {
- update_value(&state, IDLE_FADE_OUT, &calc_offset);
- }
-#endif
-#if defined(RGB_DISABLE_WITH_FADE_OUT)
- const uint32_t fade_out_duration = scale_2_rgb_time(128);
- const uint32_t start_fade_out_after_millis = (RGB_MATRIX_TIMEOUT) > fade_out_duration
- ? (RGB_MATRIX_TIMEOUT) - fade_out_duration
- : 0;
-
- if (start_fade_out_after_millis <= inactivity_millis) {
- update_value(&state, FADE_OUT, &calc_offset);
- }
-#elif defined(RGB_MATRIX_TIMEOUT)
- // having to set brightness "manually" to black as starting point for fade in
- // for the time when returning from suspended state
- if (RGB_MATRIX_TIMEOUT <= inactivity_millis + 15) {
- rgb_matrix_config.hsv.v = 0;
- state = SUSPENDED;
- }
-#endif
-
- switch(state) {
-#if defined(RGB_IDLE_TIMEOUT)
- case IDLE_FADE_OUT:
- if (calc_offset) {
- time_offset = calc_fade_out_offset(time);
-
- // resetting flag for subsequent calls
- calc_offset = false;
- }
- if (idle_fade_out(time + time_offset)) {
- update_value(&state, IDLE, &calc_offset);
- }
- break;
- case IDLE:
-#if defined(RGB_IDLE_BREATHE)
- if (calc_offset) {
- // no need to calculate time_offset since we are aligned already due to IDLE_FADE_OUT
- // resetting flag for subsequent calls
- calc_offset = false;
- }
- idle_breathe(time + time_offset);
-#endif
- break;
-#endif
-#if defined(RGB_DISABLE_WITH_FADE_OUT)
- case FADE_OUT:
- if (calc_offset) {
- time_offset = calc_fade_out_offset(time);
-
- // resetting flag for subsequent calls
- calc_offset = false;
- }
- if (fade_out(time + time_offset)) {
- update_value(&state, SUSPENDED, &calc_offset);
- }
- break;
-#endif
-#if defined(RGB_FADE_IN) || defined(RGB_IDLE_TIMEOUT)
- case FADE_IN:
- {
- // since we want to be active, fade in should be faster than e.g. fading out
- const uint8_t fade_in_time = rgb_time_2_scale_w_factor(4);
- if (calc_offset) {
- time_offset = calc_fade_in_offset(fade_in_time);
-
- // resetting flag for subsequent calls
- calc_offset = false;
- }
- if (fade_in(fade_in_time + time_offset)) {
- update_value(&state, REGULAR, &calc_offset);
- }
- }
- break;
-#endif
- default:
- break;
- }
-}
-
-#if defined(RGB_FADE_IN) || defined(RGB_IDLE_TIMEOUT)
-bool process_record_user_rgb(const uint16_t keycode, const keyrecord_t *record) {
- // if we are in a non regular state we might have faded out (eventually partially)
- // so we restore brightness (to max as we don't keep track of manually changed brightness)
- // if (REGULAR != state && FADE_IN != state) {
- if (FADE_IN != state && REGULAR != state) {
- update_value(&state, FADE_IN, &calc_offset);
- }
-
- return true; // Process all other keycodes normally
-}
-
-void suspend_wakeup_init_user(void) {
- if (FADE_IN != state) {
- // setting brightness to black as starting point for fade in
- rgb_matrix_config.hsv.v = 0;
-
- update_value(&state, FADE_IN, &calc_offset);
- }
-}
-#endif // defined(RGB_FADE_IN)
-
-#endif // defined(RGB_FADE_IN) || defined(RGB_DISABLE_WITH_FADE_OUT)
diff --git a/users/vitoni/vitoni.h b/users/vitoni/vitoni.h
deleted file mode 100644
index 1f26037135..0000000000
--- a/users/vitoni/vitoni.h
+++ /dev/null
@@ -1,30 +0,0 @@
-// Copyright 2021 Victor Toni (@vitoni)
-// SPDX-License-Identifier: GPL-2.0-or-later
-
-#pragma once
-
-#include <stdint.h>
-#include <stdbool.h>
-
-#include <quantum/action.h>
-
-#include "rgb_matrix_effects.h"
-
-/**
- * @brief Executes periodic tasks, eg. fading or checking for upcoming supend.
- * @details Function declaration as weak as the implementation might "disappear" depending on the RGB settings used.
- * The weak declaration avoids having to change `keymap.c`.
- */
-__attribute__((weak))
-void matrix_scan_user_rgb(void);
-
-/**
- * @brief Executes tasks based on user activity, eg. fading in.
- * @details Function declaration as weak as the implementation might "disappear" depending on the RGB settings used.
- * The weak declaration avoids having to change `keymap.c`.
- * @param[in] keycode
- * @param[in] record
- * @return `false` if further processing should be stopped, `true` otherwise
- */
-__attribute__((weak))
-bool process_record_user_rgb(const uint16_t keycode, const keyrecord_t *record);
diff --git a/users/vnmm/config.h b/users/vnmm/config.h
deleted file mode 100644
index 3642c5784c..0000000000
--- a/users/vnmm/config.h
+++ /dev/null
@@ -1,70 +0,0 @@
-/*
- * 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
-
-// All of these config options can be changed by keyboard in their config.h
-// These are all just the defaults I like for most of my keyboards
-
-#ifndef RGB_MATRIX_TIMEOUT
-// If the keyboard is unused for 20 minutes then just turn off RGB
-# define RGB_MATRIX_TIMEOUT 1200000 // 20 minutes (20 * 60 * 1000ms)
-
-#endif
-
-#ifndef CAPS_LOCK_INDICATOR_COLOR
-// When caps lock is pressed, the letter keys, caps lock, and both shift keys, will light up this color.
-# define CAPS_LOCK_INDICATOR_COLOR RGB_RED
-#endif
-
-#ifndef SHIFT_INDICATOR_COLOR
-// If defined also light up alphabet keys when either shift is held
-# define SHIFT_INDICATOR_COLOR RGB_WHITE
-#endif
-
-#ifndef CAPS_LOCK_INDICATOR_OTHER
-// When caps lock is pressed, all other keys will light up this color
-// #define CAPS_LOCK_INDICATOR_OTHER RGB_WHITE
-#endif
-
-#ifndef CAPS_LOCK_INDICATOR_LIGHT_ALPHAS
-// All alphabet keys will light up, othe rwise just caps lock.
-# define CAPS_LOCK_INDICATOR_LIGHT_ALPHAS
-#endif
-
-#ifndef FN_LAYER_TRANSPARENT_KEYS_COLOR
-// Keys not defined in the current layer will use this color
-# define FN_LAYER_TRANSPARENT_KEYS_COLOR RGB_OFF
-#endif
-
-// Keys defined in the current layer will use this color
-#ifndef FN_LAYER_KEYS_COLOR
-// #define FN_LAYER_KEYS_COLOR RGB_WHITE
-#endif
-
-#ifndef CURRENT_LAYER_INDICATOR_COLOR
-// If a key on a FN layer changes the default layer to the current layer, light up this color
-# define CURRENT_LAYER_INDICATOR_COLOR RGB_WHITE
-#endif
-
-#ifndef NKRO_INDICATOR_COLOR
-// If NKRO is enabled, the key on the fn layer that toggles it will light up this color
-# define NKRO_INDICATOR_COLOR RGB_WHITE
-#endif
-
-// Don't light up my whole room when the pc is asleep
-#ifndef RGB_DISABLE_WHEN_USB_SUSPENDED
-# define RGB_DISABLE_WHEN_USB_SUSPENDED
-#endif
diff --git a/users/vnmm/keymap_user.h b/users/vnmm/keymap_user.h
deleted file mode 100644
index 2262910bcc..0000000000
--- a/users/vnmm/keymap_user.h
+++ /dev/null
@@ -1,41 +0,0 @@
-/* Copyright 2021
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-#pragma once
-
-#ifdef DYNAMIC_KEYMAP_LAYER_COUNT
-#undef DYNAMIC_KEYMAP_LAYER_COUNT
-#endif
-#define DYNAMIC_KEYMAP_LAYER_COUNT 5
-
-#define WIN_F MO(WIN_FN)
-#define MAC_F MO(MAC_FN)
-#define EXT_F MO(EXTRA_FN)
-
-#define DF_WIN DF(WIN_BASE)
-#define DF_MAC DF(MAC_BASE)
-
-// clang-format off
-
-enum layers {
- WIN_BASE,
- MAC_BASE,
- WIN_FN,
- MAC_FN,
- EXTRA_FN
-};
-
-// clang-format on
diff --git a/users/vnmm/readme.md b/users/vnmm/readme.md
deleted file mode 100644
index 637e92c063..0000000000
--- a/users/vnmm/readme.md
+++ /dev/null
@@ -1,10 +0,0 @@
-# Vnmm's stuff
-
-This keymap builds on archrovisual's but with some changes and uses the default key placements
-
-## Features
-
-- Alphabet keys light up red when caps lock is on or shift is on
-- Pressing FN shows keys that have a definition
-- Via enabled
-- Quick reset with fn+space
diff --git a/users/vnmm/rgb_matrix_user.c b/users/vnmm/rgb_matrix_user.c
deleted file mode 100644
index c85f86782e..0000000000
--- a/users/vnmm/rgb_matrix_user.c
+++ /dev/null
@@ -1,140 +0,0 @@
-/*
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-#include QMK_KEYBOARD_H
-#include "rgb_matrix_user.h"
-#include "keymap_user.h"
-
-keypos_t led_index_key_position[RGB_MATRIX_LED_COUNT];
-
-#ifdef SHIFT_INDICATOR_COLOR
-# define is_shift_pressed (get_mods() & MOD_MASK_SHIFT)
-#else
-# define is_shift_pressed false
-#endif
-
-void rgb_matrix_init_user(void) {
- // Set up led_index_key_position
- for (uint8_t row = 0; row < MATRIX_ROWS; row++) {
- for (uint8_t col = 0; col < MATRIX_COLS; col++) {
- uint8_t led_index = g_led_config.matrix_co[row][col];
- if (led_index != NO_LED) {
- led_index_key_position[led_index] = (keypos_t){.row = row, .col = col};
- }
- }
- }
-}
-
-bool rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) {
- uint8_t current_layer = get_highest_layer(layer_state);
- bool caps = host_keyboard_led_state().caps_lock;
- switch (current_layer) {
- case WIN_BASE:
- case MAC_BASE:
- // Light up letters if caps and light up letters and numbers if shift. If shift and caps light up just numbers.
-#ifdef CAPS_LOCK_INDICATOR_COLOR
- if (caps && !is_shift_pressed) {
- rgb_matrix_set_color_by_keycode(led_min, led_max, current_layer, is_caps_lock_indicator, CAPS_LOCK_INDICATOR_COLOR);
-# ifdef CAPS_LOCK_INDICATOR_OTHER
- rgb_matrix_set_color_by_not_keycode(led_min, led_max, current_layer, is_caps_lock_indicator, CAPS_LOCK_INDICATOR_OTHER);
-# endif
- }
-# ifdef SHIFT_INDICATOR_COLOR
- else if (is_shift_pressed && !caps) {
- // Light up letters and other shift affected keys
- rgb_matrix_set_color_by_keycode(led_min, led_max, current_layer, is_shift_indicator, SHIFT_INDICATOR_COLOR);
- rgb_matrix_set_color_by_keycode(led_min, led_max, current_layer, is_caps_lock_indicator, CAPS_LOCK_INDICATOR_COLOR);
- } else if (is_shift_pressed && caps) {
- // Only shift affected keys light up
- rgb_matrix_set_color_by_keycode(led_min, led_max, current_layer, is_shift_indicator, SHIFT_INDICATOR_COLOR);
- }
-# endif // SHIFT_INDICATOR_COLOR
-#endif // CAPS_LOCK_INDICATOR_COLOR
- break;
- default:
-#ifdef FN_LAYER_TRANSPARENT_KEYS_COLOR
- rgb_matrix_set_color_by_keycode(led_min, led_max, current_layer, is_transparent, FN_LAYER_TRANSPARENT_KEYS_COLOR);
-#endif
-#ifdef FN_LAYER_KEYS_COLOR
- rgb_matrix_set_color_by_not_keycode(led_min, led_max, current_layer, is_transparent, FN_LAYER_KEYS_COLOR);
-#endif
-#ifdef CURRENT_LAYER_INDICATOR_COLOR
- rgb_matrix_set_color_by_keycode(led_min, led_max, current_layer, is_default_layer, CURRENT_LAYER_INDICATOR_COLOR);
-#endif
-#ifdef NKRO_INDICATOR_COLOR
- if (keymap_config.nkro) {
- rgb_matrix_set_color_by_keycode(led_min, led_max, current_layer, is_nkro_indicator, NKRO_INDICATOR_COLOR);
- }
-#endif
- break;
- }
- return false;
-}
-
-// set color of keys that match the keycode
-void rgb_matrix_set_color_by_keycode(uint8_t led_min, uint8_t led_max, uint8_t layer, bool (*is_keycode)(uint16_t), uint8_t red, uint8_t green, uint8_t blue) {
- for (uint8_t i = led_min; i < led_max; i++) {
- uint16_t keycode = keymap_key_to_keycode(layer, led_index_key_position[i]);
- if ((*is_keycode)(keycode)) {
- rgb_matrix_set_color(i, red, green, blue);
- }
- }
-}
-
-// set color of all leds that are not a certain keycode
-void rgb_matrix_set_color_by_not_keycode(uint8_t led_min, uint8_t led_max, uint8_t layer, bool (*is_keycode)(uint16_t), uint8_t red, uint8_t green, uint8_t blue) {
- for (uint8_t i = led_min; i < led_max; i++) {
- uint16_t keycode = keymap_key_to_keycode(layer, led_index_key_position[i]);
- if (!(*is_keycode)(keycode)) {
- rgb_matrix_set_color(i, red, green, blue);
- }
- }
-}
-
-// check if keycode is a letter or shift or caps lock
-bool is_caps_lock_indicator(uint16_t keycode) {
-#ifdef CAPS_LOCK_INDICATOR_LIGHT_ALPHAS
- return (KC_A <= keycode && keycode <= KC_Z) || keycode == KC_CAPS || keycode == KC_LSFT || keycode == KC_RSFT;
-#else
- return keycode == KC_CAPS;
-#endif
-}
-
-// check if keycode is the DF to default layer
-#ifdef CURRENT_LAYER_INDICATOR_COLOR
-bool is_default_layer(uint16_t keycode) {
- return keycode == DF(get_highest_layer(default_layer_state));
-}
-#endif
-
-// check if keycode is the NKRO toggle
-#ifdef NKRO_INDICATOR_COLOR
-bool is_nkro_indicator(uint16_t keycode) {
- return keycode == NK_TOGG;
-}
-#endif
-
-// check if keycode is transparent
-bool is_transparent(uint16_t keycode) {
- return keycode == KC_TRNS;
-}
-
-// check if keycode is affected by shift on the number row
-#ifdef SHIFT_INDICATOR_COLOR
-bool is_shift_indicator(uint16_t keycode) {
- return (KC_1 <= keycode && keycode <= KC_0) || keycode == KC_MINS || keycode == KC_EQL || keycode == KC_GRV || keycode == KC_BSLS || keycode == KC_LBRC || keycode == KC_RBRC || keycode == KC_SCLN || keycode == KC_QUOT || keycode == KC_COMM || keycode == KC_DOT || keycode == KC_SLSH || keycode == QK_GESC || keycode == KC_LSFT || keycode == KC_RSFT;
-}
-#endif
diff --git a/users/vnmm/rgb_matrix_user.h b/users/vnmm/rgb_matrix_user.h
deleted file mode 100644
index 7fe3d8229a..0000000000
--- a/users/vnmm/rgb_matrix_user.h
+++ /dev/null
@@ -1,28 +0,0 @@
-/*
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-#pragma once
-
-void rgb_matrix_init_user(void);
-
-void rgb_matrix_set_color_by_keycode(uint8_t led_min, uint8_t led_max, uint8_t layer, bool (*is_keycode)(uint16_t), uint8_t red, uint8_t green, uint8_t blue);
-void rgb_matrix_set_color_by_not_keycode(uint8_t led_min, uint8_t led_max, uint8_t layer, bool (*is_keycode)(uint16_t), uint8_t red, uint8_t green, uint8_t blue);
-
-bool is_default_layer(uint16_t keycode);
-bool is_nkro_indicator(uint16_t keycode);
-bool is_caps_lock_indicator(uint16_t keycode);
-bool is_transparent(uint16_t keycode);
-bool is_shift_indicator(uint16_t keycode);
diff --git a/users/vnmm/rules.mk b/users/vnmm/rules.mk
deleted file mode 100644
index 2b601fd3e5..0000000000
--- a/users/vnmm/rules.mk
+++ /dev/null
@@ -1,5 +0,0 @@
-SRC += vnmm.c
-
-ifeq ($(strip $(RGB_MATRIX_ENABLE)), yes)
- SRC += rgb_matrix_user.c
-endif
diff --git a/users/vnmm/vnmm.c b/users/vnmm/vnmm.c
deleted file mode 100644
index a4d4a7928e..0000000000
--- a/users/vnmm/vnmm.c
+++ /dev/null
@@ -1,23 +0,0 @@
-/*
- *
- * 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 "vnmm.h"
-
-void keyboard_post_init_user(void) {
-#ifdef RGB_MATRIX_ENABLE
- rgb_matrix_init_user();
-#endif
-} \ No newline at end of file
diff --git a/users/vnmm/vnmm.h b/users/vnmm/vnmm.h
deleted file mode 100644
index 03723c3deb..0000000000
--- a/users/vnmm/vnmm.h
+++ /dev/null
@@ -1,21 +0,0 @@
-/*
- *
- * 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 "keymap_user.h"
-#ifdef RGB_MATRIX_ENABLE
-# include "rgb_matrix_user.h"
-#endif \ No newline at end of file
diff --git a/users/vosechu/config.h b/users/vosechu/config.h
deleted file mode 100644
index 7f4f000c41..0000000000
--- a/users/vosechu/config.h
+++ /dev/null
@@ -1,19 +0,0 @@
-#pragma once
-
-#undef PERMISSIVE_HOLD
-//#define QUICK_TAP_TERM 0
-//#define RETRO_TAPPING
-
-#ifndef TAPPING_TOGGLE
-#define TAPPING_TOGGLE 2
-#endif
-
-#ifdef TAPPING_TERM
-#undef TAPPING_TERM
-#endif
-#define TAPPING_TERM 150
-
-// Disable action_get_macro and fn_actions, since we don't use these
-// and it saves on space in the firmware.
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
diff --git a/users/vosechu/readme.md b/users/vosechu/readme.md
deleted file mode 100644
index 44789a9ff2..0000000000
--- a/users/vosechu/readme.md
+++ /dev/null
@@ -1,14 +0,0 @@
-Copyright 2018 Chuck Lauer Vose vosechu@gmail.com @vosechu
-
-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/>.
diff --git a/users/vosechu/rules.mk b/users/vosechu/rules.mk
deleted file mode 100644
index e346db93fb..0000000000
--- a/users/vosechu/rules.mk
+++ /dev/null
@@ -1 +0,0 @@
-SRC += vosechu.c
diff --git a/users/vosechu/vosechu.c b/users/vosechu/vosechu.c
deleted file mode 100644
index 3f58ca26a8..0000000000
--- a/users/vosechu/vosechu.c
+++ /dev/null
@@ -1,25 +0,0 @@
-#include "vosechu.h"
-
-// void my_custom_function(void) {
-
-// }
-
-// [DV] = { /* ================================================== DVORAK ============================================================ */
-// { KC_1, KC_A, KC_B, KC_C, KC_D, KC_E, _______ , KC_G, KC_H, KC_J, KC_K, KC_L, KC_M },
-// { KC_2, KC_A, KC_B, KC_C, KC_D, KC_E, _______ , KC_G, KC_H, KC_J, KC_K, KC_L, KC_M },
-// { KC_3, KC_A, KC_B, KC_C, KC_D, KC_E, _______ , KC_G, KC_H, KC_J, KC_K, KC_L, KC_M },
-// { KC_4, KC_A, KC_B, KC_C, KC_D, KC_E, KC_F , KC_G, KC_H, KC_J, KC_K, KC_L, KC_M },
-// { KC_5, KC_A, KC_B, KC_C, KC_D, KC_E, KC_F , KC_G, KC_H, KC_J, KC_K, KC_L, KC_M }
-// },
-
-// bool process_record_user(uint16_t keycode, keyrecord_t *record) {
-// if (record->event.pressed) {
-// // These also need to be defined in the header file
-// switch(keycode) {
-// case PAWFIVE:
-// SEND_STRING(":pawfive:");
-// return false;
-// }
-// }
-// return true;
-// };
diff --git a/users/vosechu/vosechu.h b/users/vosechu/vosechu.h
deleted file mode 100644
index 3e65f8c955..0000000000
--- a/users/vosechu/vosechu.h
+++ /dev/null
@@ -1,89 +0,0 @@
-#pragma once
-
-#include "quantum.h"
-
-// Each layer gets a name for readability, which is then used in the keymap matrix below.
-enum userspace_custom_layers {
- DV = 0,
- QW,
- GAM1,
- RSE,
- LWR,
- LFT,
- MOUSE,
- TT1,
- TT2,
- TT3,
- T23X
-};
-#define BASE DV
-
-enum userspace_custom_keycodes {
- PAWFIVE = SAFE_RANGE,
- MOUKEY,
- MS_BTN1,
- MS_BTN2,
- MS_BTN3
-};
-
-// Transparent macro to indicate that this spot is already being pressed
-// to activate this layer
-#define _LAYER_ KC_TRNS
-
-// == Dual-action keys on most of the modifiers
-#define CTL_ESC CTL_T(KC_ESC)
-#define CTL_GRV CTL_T(KC_GRV)
-#define ALT_TAB ALT_T(KC_TAB)
-#define SFT_SPC SFT_T(KC_SPC)
-
-// == Macro keys for commonly used apps
-// -- Slack
-// Move one conversation up/down
-#define SLACKTB LGUI(LSFT(KC_T))
-#define SLACKUP LALT(LSFT(KC_UP))
-#define SLACKDN LALT(LSFT(KC_DOWN))
-
-// -- 1password
-#define PSWD LCTL(KC_BSLS)
-#define PSWD_ALT LCTL(LALT(KC_BSLS))
-
-// -- Browser and OS X
-// Activate one tab left/right
-#define TAB_LFT LGUI(LSFT(KC_LBRC))
-#define TAB_RGT LGUI(LSFT(KC_RBRC))
-// Go back/forward in history
-#define BWSR_BK LGUI(KC_LBRC)
-#define BWSR_FW LGUI(KC_RBRC)
-
-// -- Screen management
-// Make window fill the left/right side
-#define SCR_LFT HYPR(KC_LEFT)
-#define SCR_RGT HYPR(KC_RGHT)
-// Make window fill the whole monitor
-#define SCR_FUL HYPR(KC_F)
-
-// -- Windows variants of browser commanads
-// Activate one tab left/right
-#define WTABLFT LCTL(LSFT(KC_TAB))
-#define WTABRGT LCTL(KC_TAB)
-// Go back/forward in history
-#define WBWSRBK LALT(KC_LEFT)
-#define WBWSRFW LALT(KC_RGHT)
-
-// == Extended alpha layer toggles
-// -- Dvorak
-// Pressing U opens up the LWR layer (numpad)
-#define LWR_U LT(LWR, KC_U)
-// Pressing H opens up the RSE layer (brackets/parens)
-#define RSE_H LT(RSE, KC_H)
-
-// -- Qwerty
-// Pressing F opens up the LWR layer (numpad)
-#define LWR_F LT(LWR, KC_F)
-// Pressing J opens up the RSE layer (brackets/parens)
-#define RSE_J LT(RSE, KC_J)
-
-// -- LFT layer (Works on both Qwerty and Dvorak)
-// Pressing Back space or Enter opens up the LFT layer (media/navigation)
-#define LFT_BK LT(LFT, KC_BSPC)
-#define LFT_ENT LT(LFT, KC_ENT)
diff --git a/users/wanleg/config.h b/users/wanleg/config.h
deleted file mode 100644
index 984bdf6194..0000000000
--- a/users/wanleg/config.h
+++ /dev/null
@@ -1,47 +0,0 @@
-#pragma once
-
-//TAPPING_TERM
-//tapping term short (<100): on multi-purpose keys, slow taps may not register, but "holds" register easier. multi-tap keys may be difficult to activate.
-//tapping term long (>200): holds don't register as easily - noticeable when typing quickly (e.g. shift doesn't want to engage.)
-
-
-//MIGHT HAVE TO SPLIT THIS INTO TWO CONDITIONS
-#if defined(TAP_DANCE_ENABLE) && defined(KEYBOARD_lets_split_rev2) || defined(KEYBOARD_keebio_iris_rev2)
-//Kailh Coppers activate quickly and don't need a long tapping term
-#define TAPPING_TERM 180
-
-#elif defined(TAP_DANCE_ENABLE) && defined(KEYBOARD_bigswitch)
-#define TAPPING_TERM 700
-
-#else
-#define TAPPING_TERM 145
-#endif
-
-//Mousekey Settings
-#ifdef MOUSEKEY_ENABLE
-#define MOUSEKEY_INTERVAL 16
-#define MOUSEKEY_DELAY 0
-#define MOUSEKEY_TIME_TO_MAX 60
-#define MOUSEKEY_MAX_SPEED 7
-#define MOUSEKEY_WHEEL_DELAY 0
-#endif
-
-// Disable action_get_macro and fn_actions, since we don't use these
-// and it saves on space in the firmware.
-#ifndef NO_DEBUG
-#define NO_DEBUG
-#endif // !NO_DEBUG
-#if !defined(NO_PRINT) && !defined(CONSOLE_ENABLE)
-#define NO_PRINT
-#endif // !NO_PRINT
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-#define NO_ACTION_ONESHOT
-
-
-#define PERMISSIVE_HOLD
-
-//set max breathing brightness on kbd6x
-#if defined(KEYBOARD_kbdfans_kbd6x)
-#define RGBLIGHT_EFFECT_BREATHE_MAX 128 // 0-255
-#endif
diff --git a/users/wanleg/readme.md b/users/wanleg/readme.md
deleted file mode 100644
index 4276111280..0000000000
--- a/users/wanleg/readme.md
+++ /dev/null
@@ -1,125 +0,0 @@
-# Contents
- * [Git Basics](#git-basics)
- * [Update a Feature Branch](#update-a-development-branch)
- * [Delete Branch Locally and Remotely](#delete-branch-locally-and-remotely)
- * [Merge TEST branch into DEV branch](#merge-test-branch-into-dev-branch)
- * [STM32F103C8T6 Setup](#STM32F103C8T6-setup)
- * [Bootloader](#bootloader)
- * [Flashing QMK](#flashing-qmk)
-
----
-## Git Basics
-### Update a Development Branch
-
-This is how to update a working branch with upstream changes.
-First we'll update your local master branch. Go to your local project and check out the branch you want to merge into (your local master branch)
-```bash
-$ git checkout master
-```
-
-Fetch the remote, bringing the branches and their commits from the remote repository.
-You can use the -p, --prune option to delete any remote-tracking references that no longer exist in the remote. Commits to master will be stored in a local branch, remotes/origin/master
-```bash
-$ git fetch -p origin
-```
-
-Merge the changes from origin/master into your local master branch. This brings your master branch in sync with the remote repository, without losing your local changes. If your local branch didn't have any unique commits, Git will instead perform a "fast-forward".
-```bash
-$ git merge origin/master
-```
-
-Checkout the branch you want to merge into
-```bash
-$ git checkout <feature-branch>
-```
-
-Merge your (now updated) master branch into your feature branch to update it with the latest changes from your team.
-```bash
-$ git merge master
-```
-
-This will open your git-configured text editor. Edit the message as desired, save, and exit the editor.
-
-The above steps only update your local feature branch. To update it on GitHub, push your changes.
-```bash
-$ git push origin <feature-branch>
-```
-
-### Delete Branch Locally and Remotely
-
-Executive Summary
-```bash
-$ git push --delete <remote_name> <branch_name>
-$ git branch -d <branch_name>
-```
-Note that in most cases the remote name is origin.
-
-Delete Local Branch
-To delete the local branch use one of the following:
-```bash
-$ git branch -d branch_name
-$ git branch -D branch_name
-```
-Note: The -d option is an alias for --delete, which only deletes the branch if it has already been fully merged in its upstream branch. You could also use -D, which is an alias for --delete --force, which deletes the branch "irrespective of its merged status." [Source: man git-branch]
-
-Delete Remote Branch [Updated on 8-Sep-2017]
-As of Git v1.7.0, you can delete a remote branch using
-```bash
-$ git push <remote_name> --delete <branch_name>
-```
-which might be easier to remember than
-```bash
-$ git push <remote_name> :<branch_name>
-```
-which was added in Git v1.5.0 "to delete a remote branch or a tag."
-
-Starting on Git v2.8.0 you can also use `git push` with the `-d` option as an alias for `--delete`.
-
-Therefore, the version of Git you have installed will dictate whether you need to use the easier or harder syntax.
-
-### Merge TEST branch into DEV branch
-
-Executive Summary
-```bash
-$ git checkout DEV
-$ git merge TEST
-$ git push <remote_name> DEV
-$ git branch -d TEST
-$ git push <remote_name> :TEST
-```
-Note that in most cases the remote name is origin.
-The above code will merge, push to remote, and delete both the local and remote TEST branches
-
----
-## STM32F103C8T6 Setup
-Cheap "Blue/Black Pills" typically do not come with a bootloader installed. The Black Pill uses [generic_boot20_pb12.bin](https://github.com/rogerclarkmelbourne/STM32duino-bootloader/blob/master/binaries/generic_boot20_pb12.bin). The Blue Pill uses [generic_boot20_pc13.bin](https://github.com/rogerclarkmelbourne/STM32duino-bootloader/blob/master/binaries/generic_boot20_pc13.bin).
-The following instructions have been adapted from [here](http://wiki.stm32duino.com/index.php?title=Burning_the_bootloader).
-### Bootloader
-Flashing a bootloader on to a Black Pill can be done via a USB to Serial converter (e.g. CP2102). This process should be roughly the same for all F103 boards.
-
-1. Download the correct bootloader binary
-2. Set the 'boot 0' pin/jumper high, and 'boot 1' low
- B0+ to center pin
- B1- to center pin
-3. Connect the board to the PC using a USB to serial converter
- RX to PA9
- TX to PA10
- GND to Ground
- 3.3V to 3.3 Volts
-4. Download and install __Flash Loader Demonstrator__ from [here](http://www.st.com/content/st_com/en/products/development-tools/software-development-tools/stm32-software-development-tools/stm32-programmers/flasher-stm32.html)
-5. Use __Flash Loader Demonstrator__ to flash the bootloader
- Ensure the correct COM port is selected. Leave other options with their default values/selections.
- Use the "Download to Device" option, with "Erase necessary pages" selected
-6. After a successful flash, set 'boot 0' pin/jumper low
- B0- to center pin
- B1- to center pin (no change)
-
-### Flashing QMK
-As of April 2019, the `:dfu-util` target doesn't work on a \*Pill. You will need to use dfu-util directly.
-1. Use QMK to build your `.bin`
-2. Run `dfu-util.exe -d 1eaf:0003 -a 2 -D YOUR_FIRMWARE.bin"`
- If this is the first QMK flash on the \*Pill, you will need to synchronize your Reset Button-push with starting the command. By default, the \*Pill only stays in bootloader mode for about 3 seconds before returning to normal operation.
-
-See [this page](https://docs.qmk.fm/#/faq_build?id=unknown-device-for-dfu-bootloader) if Windows can't see anything to upload to.
-
----
diff --git a/users/wanleg/rules.mk b/users/wanleg/rules.mk
deleted file mode 100644
index cb447a1792..0000000000
--- a/users/wanleg/rules.mk
+++ /dev/null
@@ -1,45 +0,0 @@
-SRC += wanleg.c tapdances.c
-
-TAP_DANCE_ENABLE = yes
-MOUSEKEY_ENABLE = yes
-
-#If using a ProMicro and it has the QMK DFU bootloader instead of Caterina,
-#run "make <keyboard>:<keymap> dfu=qmk" when compiling to ensure it is flagged properly after being flashed
-ifeq ($(strip $(dfu)), qmk)
- BOOTLOADER = qmk-dfu
-endif
-
-#use alternate settings for boards using ProMicro instead of Micro
-#example usage: make 4x4:wanleg PM=yes
-ifeq ($(strip $(PM)), yes)
- OPT_DEFS += -DPRO_MICRO
-endif
-
-#use alternate settings for boards using "Adafruit Feather 32u4 Bluefruit LE" instead of Micro
-#example usage: make 5x5:wanleg BT=yes
-ifeq ($(strip $(BT)), yes)
- #opt_defs for alternate pin usage
- OPT_DEFS += -DBLUEFRUIT
- #Adafruit Bluefruit controller settings
- BLUETOOTH_ENABLE = yes
- BLUETOOTH_DRIVER = bluefruit_le
- F_CPU = 8000000
- CONSOLE_ENABLE = no # Console for debug(+400)
- COMMAND_ENABLE = no # Commands for debug and configuration
- RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
-endif
-
-#move numpad to Left/Centre/Right(default) on 5x15 boards
-#example usage: make 4x4:wanleg padc=yes
-ifeq ($(strip $(padc)), yes)
- OPT_DEFS += -DPADC
-endif
-ifeq ($(strip $(padl)), yes)
- OPT_DEFS += -DPADL
-endif
-
-#change gherkin orientation (i.e. move USB port from right side to left side)
-#example usage: make gherkin:wanleg flip=yes
-ifeq ($(strip $(flip)), yes)
- OPT_DEFS += -DFLIP
-endif
diff --git a/users/wanleg/tapdances.c b/users/wanleg/tapdances.c
deleted file mode 100644
index 5d820df3b8..0000000000
--- a/users/wanleg/tapdances.c
+++ /dev/null
@@ -1,264 +0,0 @@
-//Tap Dance Settings
-#include "wanleg.h"
-
-//audio settings for one of the tap dances below
-#ifdef AUDIO_ENABLE
- float lyrup_song[][2] = SONG(MUSIC_ON_SOUND);
- float lyrdown_song[][2] = SONG(MUSIC_OFF_SOUND);
-#endif
-
-///// QUAD FUNCTION TAP DANCE GENERAL SETUP SECTION START /////
-///// (no need to edit this section) /////
-//Enums used to clearly convey the state of the tap dance
-enum {
- SINGLE_TAP = 1,
- SINGLE_HOLD = 2,
- DOUBLE_TAP = 3,
- DOUBLE_HOLD = 4,
- DOUBLE_SINGLE_TAP = 5, //send SINGLE_TAP twice - NOT DOUBLE_TAP
- TRIPLE_TAP = 6,
- TRIPLE_HOLD = 7,
- TRIPLE_SINGLE_TAP = 8
- // Add more enums here if you want for triple, quadruple, etc.
-};
-
-typedef struct {
- bool is_press_action;
- int state;
-} tap;
-
-int cur_dance (tap_dance_state_t *state) {
- if (state->count == 1) {
- //If count = 1, and it has been interrupted - it doesn't matter if it is pressed or not: Send SINGLE_TAP
- if (state->interrupted || !state->pressed) return SINGLE_TAP;
- if (state->interrupted) return SINGLE_TAP;
- else return SINGLE_HOLD;
- }
- //If count = 2, and it has been interrupted - assume that user is trying to type the letter associated
- //with single tap.
- else if (state->count == 2) {
- if (state->interrupted) return DOUBLE_SINGLE_TAP;
- else if (state->pressed) return DOUBLE_HOLD;
- else return DOUBLE_TAP;
- }
-
- //If count = 3, and it has been interrupted - assume that user is trying to type the letter associated
- //with double tap.
- else if (state->count == 3) {
- if (state->interrupted) return TRIPLE_SINGLE_TAP;
- else if (state->pressed) return TRIPLE_HOLD;
- else return TRIPLE_TAP;
- }
- else return 9; //magic number. At some point this method will expand to work for more presses
-}
-///// QUAD FUNCTION TAP DANCE GENERAL SETUP SECTION END /////
-///// QUAD FUNCTION TAP DANCE PERSONALIZATION SECTION START /////
-//instantiate 'tap' for the 'CAD' tap dance.
-static tap CADtap_state = {
- .is_press_action = true,
- .state = 0
-};
-
-void CAD_finished (tap_dance_state_t *state, void *user_data) {
- CADtap_state.state = cur_dance(state);
- switch (CADtap_state.state) {
- case SINGLE_TAP:
- //register_code(KC_SPC);
- SEND_STRING(SS_LGUI("l"));
- #ifdef BACKLIGHT_ENABLE
- backlight_level(3);
- #endif
- break;
- case SINGLE_HOLD:
- //register_code(KC_NO);
- //take a screenshot of a single window, open Paint and paste
- SEND_STRING(SS_LALT(SS_TAP(X_PRINT_SCREEN)) SS_LGUI("r"));
- wait_ms(500);
- SEND_STRING("mspaint" SS_TAP(X_ENTER));
- wait_ms(700);
- SEND_STRING(SS_LCTL("v"));
- break; //register this keycode when button is held
- case DOUBLE_TAP:
- //register_code(KC_ENT);
- SEND_STRING(SS_LCTL(SS_LALT(SS_TAP(X_DELETE))));
- #ifdef BACKLIGHT_ENABLE
- backlight_level(0);
- #endif
- break;
- //case DOUBLE_HOLD: register_code(KC_NO); break; //register this keycode when button is tapped and then held
- case DOUBLE_HOLD:
- reset_keyboard();
- break; //register this keycode when button is tapped and then held
- case TRIPLE_TAP:
- SEND_STRING("wanleg@github.com");
- break;
- case TRIPLE_HOLD:
- set_single_persistent_default_layer(1);
- #ifdef AUDIO_ENABLE
- stop_all_notes();
- PLAY_SONG(lyrup_song);
- #endif
- break;
- }
-}
-
-void CAD_reset (tap_dance_state_t *state, void *user_data) {
- switch (CADtap_state.state) {
-//nothing to do
- }
- CADtap_state.state = 0;
-}
-
-//instantiate 'tap' for the 'RST' tap dance.
-static tap RSTtap_state = {
- .is_press_action = true,
- .state = 0
-};
-
-void RST_finished (tap_dance_state_t *state, void *user_data) {
- RSTtap_state.state = cur_dance(state);
- switch (RSTtap_state.state) {
- case SINGLE_TAP: register_code(KC_LCTL); break;
- case SINGLE_HOLD: register_code(KC_LCTL); break;
- case DOUBLE_TAP: reset_keyboard(); break;
- case DOUBLE_SINGLE_TAP: register_code(KC_LCTL); unregister_code(KC_LCTL); register_code(KC_LCTL); break;
- }
-}
-
-void RST_reset (tap_dance_state_t *state, void *user_data) {
- switch (RSTtap_state.state) {
- case SINGLE_TAP: unregister_code(KC_LCTL); break;
- case SINGLE_HOLD: unregister_code(KC_LCTL); break;
- case DOUBLE_SINGLE_TAP: unregister_code(KC_LCTL); break;
- }
- RSTtap_state.state = 0;
-}
-
-//instantiate 'tap' for the 'LYR' tap dance.
-static tap LYRtap_state = {
- .is_press_action = true,
- .state = 0
-};
-
-void LYR_finished (tap_dance_state_t *state, void *user_data) {
- LYRtap_state.state = cur_dance(state);
- switch (LYRtap_state.state) {
- case SINGLE_TAP: register_code(KC_PSLS); break;
- case DOUBLE_TAP: set_single_persistent_default_layer(_GK); break;
- case DOUBLE_SINGLE_TAP: register_code(KC_PSLS); unregister_code(KC_PSLS); register_code(KC_PSLS);
- }
-}
-
-void LYR_reset (tap_dance_state_t *state, void *user_data) {
- switch (LYRtap_state.state) {
- case SINGLE_TAP: unregister_code(KC_PSLS); break;
- case DOUBLE_TAP: set_single_persistent_default_layer(_GK); break;
- case DOUBLE_SINGLE_TAP: unregister_code(KC_PSLS);
- }
- LYRtap_state.state = 0;
-}
-
-//instantiate 'tap' for the 'LYR75' tap dance.
-static tap LYR75tap_state = {
- .is_press_action = true,
- .state = 0
-};
-
-void LYR75_finished (tap_dance_state_t *state, void *user_data) {
- LYR75tap_state.state = cur_dance(state);
- switch (LYR75tap_state.state) {
- case SINGLE_TAP: register_code(KC_PSLS); break;
- case DOUBLE_TAP: set_single_persistent_default_layer(_GK); break;
- case DOUBLE_SINGLE_TAP: register_code(KC_PSLS); unregister_code(KC_PSLS); register_code(KC_PSLS);
- }
-}
-
-void LYR75_reset (tap_dance_state_t *state, void *user_data) {
- switch (LYR75tap_state.state) {
- case SINGLE_TAP: unregister_code(KC_PSLS); break;
- case DOUBLE_TAP: set_single_persistent_default_layer(_GK); break;
- case DOUBLE_SINGLE_TAP: unregister_code(KC_PSLS);
- }
- LYR75tap_state.state = 0;
-}
-
-//instantiate 'tap' for the 'LYR50' tap dance.
-static tap LYR50tap_state = {
- .is_press_action = true,
- .state = 0
-};
-
-void LYR50_finished (tap_dance_state_t *state, void *user_data) {
- LYR50tap_state.state = cur_dance(state);
- switch (LYR75tap_state.state) {
- case SINGLE_TAP: register_code(KC_PSLS); break;
- case DOUBLE_TAP: set_single_persistent_default_layer(GK50); break;
- case DOUBLE_SINGLE_TAP: register_code(KC_PSLS); unregister_code(KC_PSLS); register_code(KC_PSLS);
- }
-}
-
-void LYR50_reset (tap_dance_state_t *state, void *user_data) {
- switch (LYR50tap_state.state) {
- case SINGLE_TAP: unregister_code(KC_PSLS); break;
- case DOUBLE_TAP: set_single_persistent_default_layer(GK50); break;
- case DOUBLE_SINGLE_TAP: unregister_code(KC_PSLS);
- }
- LYR50tap_state.state = 0;
-}
-
-//instantiate 'tap' for the 'BSW' tap dance.
-static tap BSWtap_state = {
- .is_press_action = true,
- .state = 0
-};
-
-void BSW_finished (tap_dance_state_t *state, void *user_data) {
- BSWtap_state.state = cur_dance(state);
- switch (BSWtap_state.state) {
- case SINGLE_TAP: register_code(KC_ENTER); break;
- case SINGLE_HOLD:
- set_single_persistent_default_layer(0);
- #ifdef AUDIO_ENABLE
- stop_all_notes();
- PLAY_SONG(lyrdown_song);
- #endif
- break;
- case DOUBLE_TAP:
- register_code(KC_LCTL);
- register_code(KC_C);
- break;
- case DOUBLE_HOLD:
- reset_keyboard();
- break; //register this keycode when button is tapped and then held
- }
-}
-
-void BSW_reset (tap_dance_state_t *state, void *user_data) {
- switch (BSWtap_state.state) {
- case SINGLE_TAP: unregister_code(KC_ENTER); break;
- case DOUBLE_TAP:
- unregister_code(KC_LCTL);
- unregister_code(KC_C);
- break;
- }
- BSWtap_state.state = 0;
-}
-
-///// QUAD FUNCTION TAP DANCE PERSONALIZATION SECTION END /////
-
-//Tap Dance Definitions
-//THIS SECTION HAS TO BE AT THE END OF THE TAP DANCE SECTION
-tap_dance_action_t tap_dance_actions[] = {
- [TD_SFT_CAPS] = ACTION_TAP_DANCE_DOUBLE(KC_LSFT, KC_CAPS)
-// Other declarations would go here, separated by commas, if you have them
- ,[TD_Q_ESC] = ACTION_TAP_DANCE_DOUBLE(KC_Q, KC_ESC)
- ,[RST_TAP_DANCE] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, RST_finished, RST_reset)
- ,[CAD_TD] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, CAD_finished, CAD_reset)
- ,[LYR_TAP_DANCE] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, LYR_finished, LYR_reset)
- ,[LYR75_TAP_DANCE] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, LYR75_finished, LYR75_reset)
- ,[LYR50_TAP_DANCE] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, LYR50_finished, LYR50_reset)
- ,[BSW_TAP_DANCE] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, BSW_finished, BSW_reset)
-};
-
-//In Layer declaration, add tap dance item in place of a key code
-//TD(TD_SFT_CAPS)
diff --git a/users/wanleg/wanleg.c b/users/wanleg/wanleg.c
deleted file mode 100644
index c8ca77676b..0000000000
--- a/users/wanleg/wanleg.c
+++ /dev/null
@@ -1,176 +0,0 @@
-#include "wanleg.h"
-
-// Defines actions for my global custom keycodes. Defined in wanleg.h file
-// Then runs the _keymap's record handier if not processed here
-bool process_record_user(uint16_t keycode, keyrecord_t *record) {
- switch (keycode) {
- case QWERTY:
- if (record->event.pressed) {
- set_single_persistent_default_layer(_QW);
- #if defined(RGBLIGHT_ENABLE)
- rgblight_sethsv_noeeprom(0,0,128);
- rgblight_mode_noeeprom(RGBLIGHT_MODE_BREATHING);
- #endif
- }
- return false;
- break;
- case GHERKIN:
- if (record->event.pressed) {
- set_single_persistent_default_layer(_GK);
- #if defined(RGBLIGHT_ENABLE)
- rgblight_sethsv_noeeprom(128,255,64);
- #endif
- }
- return false;
- break;
- case gGHERKIN:
- if (record->event.pressed) {
- set_single_persistent_default_layer(gGK);
- #if defined(RGBLIGHT_ENABLE)
- rgblight_sethsv_noeeprom(128,255,128);
- rgblight_mode_noeeprom(RGBLIGHT_MODE_KNIGHT);
- #endif
- }
- return false;
- break;
- case ONEHAND:
- if (record->event.pressed) {
- set_single_persistent_default_layer(ONE);
- }
- return false;
- break;
- case NUMPAD:
- if (record->event.pressed) {
- set_single_persistent_default_layer(PAD);
- }
- return false;
- break;
- case GHERKIN50:
- if (record->event.pressed) {
- set_single_persistent_default_layer(GK50);
- }
- return false;
- break;
- case SUBTER:
- if (record->event.pressed) {
- layer_on(SUB);
- } else {
- layer_off(SUB);
- }
- return false;
- break;
- case SUPRA:
- if (record->event.pressed) {
- layer_on(SUP);
- } else {
- layer_off(SUP);
- }
- return false;
- break;
- case NUMBER:
- if (record->event.pressed) {
- layer_on(NUM);
- } else {
- layer_off(NUM);
- }
- return false;
- break;
- case DIRECTION:
- if (record->event.pressed) {
- layer_on(DIR);
- } else {
- layer_off(DIR);
- }
- return false;
- break;
- case ETCETERA:
- if (record->event.pressed) {
- layer_on(ETC);
- } else {
- layer_off(ETC);
- }
- return false;
- break;
- case gNUMBER:
- if (record->event.pressed) {
- layer_on(gNUM);
- } else {
- layer_off(gNUM);
- }
- return false;
- break;
- case gDIRECTION:
- if (record->event.pressed) {
- layer_on(gDIR);
- } else {
- layer_off(gDIR);
- }
- return false;
- break;
- case gETCETERA:
- if (record->event.pressed) {
- layer_on(gETC);
- } else {
- layer_off(gETC);
- }
- return false;
- break;
- case FUNCTION:
- if (record->event.pressed) {
- layer_on(_FN);
- } else {
- layer_off(_FN);
- }
- return false;
- break;
- //on RESET, underglow red if present
- case QK_BOOT:
- if (record->event.pressed) {
- #if defined(RGBLIGHT_ENABLE)
- rgblight_enable_noeeprom(); // enables Rgb, without saving settings
- rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_LIGHT);
- rgblight_sethsv_noeeprom(HSV_RED);
- #endif
- }
- return true; // Let QMK send the press/release events as normal
- break;
- }
- return true;
-}
-
-/// Turn off LEDs on ProMicros of Let's Split ///
-// LEDs only on by default on Let's Split
-// Add reconfigurable functions here, for keymap customization
-// This allows for a global, userspace functions, and continued
-// customization of the keymap. Use _keymap instead of _user
-// functions in the keymaps
-__attribute__ ((weak))
-void matrix_init_keymap(void) {}
-
-// Call user matrix init, then call the keymap's init function
-void matrix_init_user(void) {
-//turn off pro micro LEDs
-#if defined(KEYBOARD_lets_split_rev2)
- DDRD &= ~(1<<5);
- PORTD &= ~(1<<5);
-
- DDRB &= ~(1<<0);
- PORTB &= ~(1<<0);
-#endif
-
-//disable backlight breathing for keyboard using random flashing RGB LEDs for backlight
-//(breathing provides insufficient power to integrated LED IC)
-#if defined(KEYBOARD_kbdfans_kbd6x) && defined(BACKLIGHT_BREATHING)
- breathing_disable();
-#endif
- matrix_init_keymap();
-}
-
-//at end of firmware startup process, change powerup default layer and underglow colour for kbd6x
-void keyboard_post_init_user(void) {
- #if defined(KEYBOARD_kbdfans_kbd6x)
- set_single_persistent_default_layer(_QW);
- rgblight_mode_noeeprom(RGBLIGHT_MODE_SNAKE + 5);
- rgblight_sethsv_noeeprom(0,0,128);
- #endif
-}
diff --git a/users/wanleg/wanleg.h b/users/wanleg/wanleg.h
deleted file mode 100644
index a9d1bbf6a6..0000000000
--- a/users/wanleg/wanleg.h
+++ /dev/null
@@ -1,322 +0,0 @@
-#pragma once
-
-#include "quantum.h"
-
-// Define layer names and order
-#if defined(KEYBOARD_40percentclub_gherkin) || defined(KEYBOARD_kbdfans_kbd6x)
-enum userspace_layers {
- gGK = 0,
- gNUM,
- gDIR,
- gETC,
- _GK,
- _QW,
- ONE,
- SUB,
- SUP,
- NUM,
- DIR,
- ETC,
- _FN,
- PAD,
- GK50,
-};
-#elif KEYBOARD_40percentclub_5x5
-enum userspace_layers {
- GK50 = 0,
- _GK,
- _QW,
- PAD,
- gNUM,
- gDIR,
- gETC,
- gGK,
- ONE,
- SUB,
- SUP,
- NUM,
- DIR,
- ETC,
- _FN,
-};
-#else
- enum userspace_layers {
- _GK = 0,
- _QW,
- PAD,
- ONE,
- SUB,
- SUP,
- NUM,
- DIR,
- ETC,
- gGK,
- gNUM,
- gDIR,
- gETC,
- _FN,
- GK50,
-};
-#endif
-
-enum userspace_custom_keycodes {
- gGHERKIN = SAFE_RANGE,
- GHERKIN,
- QWERTY,
- ONEHAND,
- SUBTER,
- SUPRA,
- NUMBER,
- DIRECTION,
- ETCETERA,
- gNUMBER,
- gDIRECTION,
- gETCETERA,
- FUNCTION,
- NUMPAD,
- GHERKIN50,
-
-};
-
-//Tap Dance Declarations (list of my tap dance configurations)
-#ifdef TAP_DANCE_ENABLE
-enum {
- TD_SFT_CAPS = 0
- ,TD_Q_ESC
- ,CAD_TD
- ,RST_TAP_DANCE
- ,LYR_TAP_DANCE
- ,LYR50_TAP_DANCE
- ,LYR75_TAP_DANCE
- ,BSW_TAP_DANCE
-};
-#endif
-
-// Since our quirky block definitions are basically a list of comma separated
-// arguments, we need a wrapper in order for these definitions to be
-// expanded before being used as arguments to the LAYOUT_xxx macro.
-#if (!defined(LAYOUT) && defined(KEYMAP))
-#define LAYOUT KEYMAP
-#endif
-
-#define KEYMAP_wrapper(...) LAYOUT(__VA_ARGS__)
-#define LAYOUT_wrapper(...) LAYOUT(__VA_ARGS__)
-#define LAYOUT_ortho_3x10_wrapper(...) LAYOUT_ortho_3x10(__VA_ARGS__)
-#define LAYOUT_ortho_4x4_wrapper(...) LAYOUT_ortho_4x4(__VA_ARGS__)
-#define LAYOUT_ortho_4x12_wrapper(...) LAYOUT_ortho_4x12(__VA_ARGS__)
-#define LAYOUT_ortho_5x5_wrapper(...) LAYOUT_ortho_5x5(__VA_ARGS__)
-#define LAYOUT_ortho_5x10_wrapper(...) LAYOUT_ortho_5x10(__VA_ARGS__)
-#define LAYOUT_ortho_5x15_wrapper(...) LAYOUT_ortho_5x15(__VA_ARGS__)
-
-// Blocks for each of the major keyboard layouts
-// Organized so we can quickly adapt and modify all of them
-// at once, rather than for each keyboard, one at a time.
-// And this allows for much cleaner blocks in the keymaps.
-
-// NOTE: These are all the same length. If you do a search/replace
-// then you need to add/remove underscores to keep the
-// lengths consistent.
-
-
-/* Gherkin
- * .-----------------------------------------------------------------------------------------.
- * | Q//ESC | W | E | R | T | Y | U | I | O | P |
- * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
- * | A | S | D | F | G | H | J | K | L | SPACE |
- * | | | | | | | | | |SFThold |
- * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
- * | Z | X | C | V/gNUM | B/gETC | N/Fn | M/gDIR | ,/GUI | ./ALT | BSPC |
- * | SFThold| | | | | | | | |CTRLhold|
- * '-----------------------------------------------------------------------------------------'
- */
-#define _______________Gherkin_Row_0_______________ TD(TD_Q_ESC), KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P
-#define _______________Gherkin_Row_1_______________ KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, SFT_T(KC_SPC)
-#define _______________Gherkin_Row_2_______________ SFT_T(KC_Z), KC_X, KC_C, LT(gNUM,KC_V), LT(gETC,KC_B), LT(_FN,KC_N), LT(gDIR,KC_M), GUI_T(KC_COMM), ALT_T(KC_DOT), CTL_T(KC_BSPC)
-
-/* Gherkin Directional Keys
- * .-----------------------------------------------------------------------------------------.
- * | TAB | up | | INS | CTRL | SHIFT | PgUp | HOME | - | = |
- * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
- * | left | down | right | PrScr | SHIFT | CTRL | PgDn | END | [ | ] |
- * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
- * | P-Brk | | | | | | | RGUI | ALT | / |
- * '-----------------------------------------------------------------------------------------'
- */
-#define _______________Gherkin_DIR_0_______________ KC_TAB, KC_UP, _______, KC_INS, KC_LCTL, KC_RSFT, KC_PGUP, KC_HOME, KC_MINS, KC_EQL
-#define _______________Gherkin_DIR_1_______________ KC_LEFT, KC_DOWN, KC_RGHT, KC_PSCR, KC_LSFT, KC_RCTL, KC_PGDN, KC_END, KC_LBRC, KC_RBRC
-#define _______________Gherkin_DIR_2_______________ KC_PAUS, _______, _______, _______, _______, _______, _______, KC_RGUI, KC_LALT, KC_SLSH
-
-/* Gherkin Numbers
- * .-----------------------------------------------------------------------------------------.
- * | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 |
- * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
- * | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 |
- * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
- * | F11 | F12 | | | | ENTER | SHIFT | GUI | ./ALT | BSPC |
- * | | | | | | | | | |CTRLhold|
- * '-----------------------------------------------------------------------------------------'
- */
-#define _______________Gherkin_NUM_0_______________ KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10
-#define _______________Gherkin_NUM_1_______________ KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0
-#define _______________Gherkin_NUM_2_______________ KC_F11, KC_F12, _______,_______, _______, KC_ENT, KC_RSFT, KC_RGUI, ALT_T(KC_DOT), CTL_T(KC_BSPC)
-
-/* Gherkin Et Cetera
- * .-----------------------------------------------------------------------------------------.
- * | ` | mUP | | ESC | RESET | SHIFT | mScrDn | mScrUp | | \ |
- * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
- * | mLeft | mDown | mRight | | SHIFT | mBtn3 | mBtn1 | mBtn2 | ; | ' |
- * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
- * | Sft//Cp| CAPS | | | | C-A-D | mScrL | mScrR | ALT | DEL |
- * '-----------------------------------------------------------------------------------------'
- */
-#define _______________Gherkin_ETC_0_______________ KC_GRV, KC_MS_U, _______,KC_ESC, QK_BOOT, KC_RSFT, KC_WH_D, KC_WH_U, _______, KC_BSLS
-#define _______________Gherkin_ETC_1_______________ KC_MS_L, KC_MS_D, KC_MS_R,_______, KC_LSFT, KC_BTN3, KC_BTN1, KC_BTN2, KC_SCLN, KC_QUOT
-#define _______________Gherkin_ETC_2_______________ TD(TD_SFT_CAPS),KC_CAPS, _______,_______, _______, LALT(LCTL(KC_DEL)), KC_WH_L, KC_WH_R, KC_LALT, KC_DEL
-
-/* Gherkin-Like
- * .-----------------------------------------------------------------------------------------------------------.
- * | ESC | Q//ESC | W | E | R | T | Y | U | I | O | P | BSPC |
- * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
- * | TAB | A | S | D | F | G | H | J | K | L | SPACE | ' |
- * | | | | | | | | | | |SFThold | |
- * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
- * |SFT/CAPS| Z | X | C | V/NUM | B/ETC | N/Fn | M/DIR | ,/GUI | ./ALT | BSPC | ENT/SFT|
- * | |SFThold | | | | | | | | |CTRLhold| |
- * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
- * | LCTRL | LGUI | ALT | ONEHAND| NUM | ETC | SPACE | DIR | RGUI | ALT | DEL | CTRL |
- * '-----------------------------------------------------------------------------------------------------------'
- */
-#define _______________GherkinLike_0_______________ KC_ESC, _______________Gherkin_Row_0_______________, KC_BSPC
-#define _______________GherkinLike_1_______________ KC_TAB, _______________Gherkin_Row_1_______________, KC_QUOT
-#define _______________GherkinLike_2_______________ TD(TD_SFT_CAPS), SFT_T(KC_Z), KC_X, KC_C, LT(NUM, KC_V),LT(ETC, KC_B),LT(_FN,KC_N), LT(DIR, KC_M), GUI_T(KC_COMM), ALT_T(KC_DOT), CTL_T(KC_BSPC), SFT_T(KC_ENT)
-#define _______________GherkinLike_3_______________ KC_LCTL, KC_LGUI, KC_LALT, KC_LALT, NUMBER, ETCETERA, KC_SPC,DIRECTION, KC_RGUI, KC_RALT, KC_DEL, KC_RCTL
-#define _______________GherkinLike_3_OneHand_______ KC_LCTL, KC_LGUI, KC_LALT, ONEHAND, NUMBER, ETCETERA, KC_SPC,DIRECTION, KC_RGUI, KC_RALT, ONEHAND, KC_RCTL
-
-/* Qwerty
- * .-------------------------------------------------------------------------------------.
- * | Esc | Q | W | E | R | T | Y | U | I | O | P | BSPC |
- * |-------+------+------+------+------+-------------+------+------+------+------+-------|
- * | Tab | A | S | D | F | G | H | J | K | L | ; | ' |
- * |-------+------+------+------+------+------|------+------+------+------+------+-------|
- * |Sft/Cps| Z | X | C | V | B | N | M | , | . | / |ENT/SFT|
- * |-------+------+------+------+------+------+------+------+------+------+------+-------|
- * | LCTRL | LGUI | ALT | ALT | SUB | SHIFT| SPACE| SUP | RGUI | RALT | DEL | CTRL |
- * '-------------------------------------------------------------------------------------'
- */
-#define _______________Qwerty_Row__0_______________ KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC
-#define _______________Qwerty_Row__1_______________ KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT
-#define _______________Qwerty_Row__2_______________ TD(TD_SFT_CAPS), KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, SFT_T(KC_ENT)
-#define _______________Qwerty_Row__3_______________ KC_LCTL, KC_LGUI, KC_LALT, KC_LALT, SUBTER, KC_LSFT, KC_SPC, SUPRA, KC_RGUI, KC_RALT, KC_DEL, KC_RCTL
-
-/* SUPRA
- * .-----------------------------------------------------------------------------------------------------------.
- * | RESET | TAB | up | | INS | CTRL | SHIFT | PgUp | Home | - | = | DEL |
- * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
- * | | left | down | right | PrScr | SHIFT | CTRL | PgDn | End | [ | ] | \ |
- * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
- * | | P-Brk | | | | | | | RGUI | ALT | | |
- * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
- * | | | | | | | | | | | | |
- * '-----------------------------------------------------------------------------------------------------------'
- */
-#define ________________SUPRA_Row_0________________ QK_BOOT, KC_TAB, KC_UP, _______, KC_INS, KC_LCTL, KC_RSFT, KC_PGUP, KC_HOME, KC_MINS, KC_EQL, KC_DEL
-#define ________________SUPRA_Row_1________________ _______, KC_LEFT, KC_DOWN, KC_RGHT, KC_PSCR, KC_LSFT, KC_RCTL, KC_PGDN, KC_END, KC_LBRC, KC_RBRC, KC_BSLS
-#define ________________SUPRA_Row_2________________ _______, KC_PAUS, _______, _______, _______, _______, _______, _______, KC_RGUI, KC_RALT, _______, _______
-#define ________________SUPRA_Row_3________________ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
-
-/* SUBTER
- * .-----------------------------------------------------------------------------------------------------------.
- * | | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | DEL |
- * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
- * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | |
- * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
- * | | F11 | F12 | | | | | | RGUI | ./ALT | BSPC | |
- * | | | | | | | | | | |CTRLhold| |
- * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
- * | | | gherkin| | | | ENTER | SHIFT | | | | |
- * '-----------------------------------------------------------------------------------------------------------'
- */
-#define _______________SUBTER_Row__0_______________ _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_DEL
-#define _______________SUBTER_Row__1_______________ KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, _______
-#define _______________SUBTER_Row__2_______________ _______, KC_F11, KC_F12, _______, _______, _______, _______, _______, KC_RGUI,ALT_T(KC_DOT), CTL_T(KC_BSPC), _______
-#define _______________SUBTER_Row__3_______________ _______, _______, GHERKIN, _______, _______, _______, KC_ENT, KC_LSFT, _______,_______, _______, _______
-
-/* Gherkin-Like Numbers
- * .-----------------------------------------------------------------------------------------------------------.
- * | | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | BSPC |
- * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
- * | | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | |
- * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
- * | | F11 | F12 | | | | ENTER | SHIFT | RGUI | ./ALT | BSPC | |
- * | | | | | | | | | | |CTRLhold| |
- * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
- * | | | | | | | ENTER | SHIFT | RGUI | | | |
- * '-----------------------------------------------------------------------------------------------------------'
- */
-#define _______________NUMBERS_Row_0_______________ _______, _______________Gherkin_NUM_0_______________, KC_BSPC
-#define _______________NUMBERS_Row_1_______________ _______, _______________Gherkin_NUM_1_______________, _______
-#define _______________NUMBERS_Row_2_______________ _______, _______________Gherkin_NUM_2_______________, _______
-#define _______________NUMBERS_Row_3_______________ _______, _______, _______, _______, _______, _______, KC_ENT, KC_RSFT, KC_RGUI, _______, _______, _______
-
-
-/* Gherkin-Like Directional Keys
- * .-----------------------------------------------------------------------------------------------------------.
- * | | TAB | up | | INS | CTRL | SHIFT | PgUp | HOME | - | = | DEL |
- * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
- * | | left | down | right | PrScr | SHIFT | CTRL | PgDn | END | [ | ] | |
- * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
- * | | P-Brk | | | | | | | RGUI | ALT | / | |
- * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
- * | | | qwerty | | | | | | | | | |
- * '-----------------------------------------------------------------------------------------------------------'
- */
-#define _____________DIRECTIONS_Row__0_____________ _______, _______________Gherkin_DIR_0_______________, KC_DEL
-#define _____________DIRECTIONS_Row__1_____________ _______, _______________Gherkin_DIR_1_______________, _______
-#define _____________DIRECTIONS_Row__2_____________ _______, _______________Gherkin_DIR_2_______________, _______
-#define _____________DIRECTIONS_Row__3_____________ _______, _______, QWERTY, _______, _______, _______, _______, _______, _______, _______, _______, _______
-
-/* Gherkin-Like Et Cetera
- * .-----------------------------------------------------------------------------------------------------------.
- * | | ` | mUP | | | RESET | SHIFT | mScrDn | mScrUp | | \ | DEL |
- * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
- * | | mLeft | mDown | mRight | | SHIFT | mBtn3 | mBtn1 | mBtn2 | ; | ' | |
- * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
- * | | Sft//Cp| | | | | C-A-D |mScrLeft| mScrRt | ALT | DEL | |
- * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
- * | | | | | | | C-A-D | | | | | |
- * '-----------------------------------------------------------------------------------------------------------'
- */
-#define ______________ETCETERA_Row__0______________ _______, _______________Gherkin_ETC_0_______________, KC_DEL
-#define ______________ETCETERA_Row__1______________ _______, _______________Gherkin_ETC_1_______________, _______
-#define ______________ETCETERA_Row__2______________ _______, _______________Gherkin_ETC_2_______________, _______
-#define ______________ETCETERA_Row__3______________ _______, _______, _______, _______, _______, _______, LALT(LCTL(KC_DEL)), _______, _______, _______, _______, _______
-
-/* Single 4x4 board only
- * .-----------------------------------.
- * | 7 | 8 | 9 | BSPC |
- * |--------+--------+--------+--------|
- * | 4 | 5 | 6 | SPACE |
- * |--------+--------+--------+--------|
- * | 1 | 2 | 3 | ENTER |
- * |--------+--------+--------+--------|
- * | 0 |/ //_GK | . | - |
- * '-----------------------------------'
- */
-
-#define _______________NUMPAD_Row__0_______________ KC_KP_7, KC_KP_8, KC_KP_9, KC_BSPC
-#define _______________NUMPAD_Row__1_______________ KC_KP_4, KC_KP_5, KC_KP_6, KC_SPC
-#define _______________NUMPAD_Row__2_______________ KC_KP_1, KC_KP_2, KC_KP_3, KC_PENT
-#define _______________NUMPAD_Row__3_______________ KC_KP_0, TD(LYR_TAP_DANCE), KC_KP_DOT, KC_PMNS
-
-/* Gherkin FN/Lighting
- * .-----------------------------------------------------------------------------------------------------.
- * | BL_breathe | BL_brite- | BL_brite+ | BL_toggle | BL_briteCyc | BL_briteMax | | | | |
- * |------------+-----------+-----------+-----------+-------------+-------------+-----+-----+-----+------|
- * | UG_breathe | UG_brite- | UG_brite+ | UG_toggle | UG_modeCycle| | | | | |
- * |------------+-----------+-----------+-----------+-------------+-------------+-----+-----+-----+------|
- * | UG_hue- | UG_hue+ | UG_sat- | UG_sat+ | | | | | |QWERTY|
- * '-----------------------------------------------------------------------------------------------------'
- */
-#define _______________Gherkin_FN_0________________ BL_BRTG, BL_DOWN, BL_UP, BL_TOGG, BL_STEP, BL_ON, _______, _______, _______, _______
-#define _______________Gherkin_FN_1________________ RGB_M_B, RGB_VAD, RGB_VAI, RGB_TOG, RGB_MOD, _______, _______, _______, _______, _______
-#define _______________Gherkin_FN_2________________ RGB_HUD, RGB_HUI, RGB_SAD, RGB_SAI, _______, _______, _______, _______, _______, QWERTY
diff --git a/users/xtonhasvim/fancylighting.c b/users/xtonhasvim/fancylighting.c
deleted file mode 100644
index a88ca4beb3..0000000000
--- a/users/xtonhasvim/fancylighting.c
+++ /dev/null
@@ -1,172 +0,0 @@
- /* Copyright 2015-2017 Christon DeWan
- *
- * 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/>.
- */
-
-#ifdef RGBLIGHT_ENABLE
-
-#include <math.h>
-
-#include "rgblight.h"
-#include "color.h"
-#include "fancylighting.h"
-
-
-__attribute__ ((weak))
-void matrix_scan_keymap(void) {
- // override me, if you want.
- return;
-}
-
-#define ABSDIFF(a,b) ((a)>(b)?(a)-(b):(b)-(a))
-
-#define FADE_BACK_TIME 500
-#define BREATH_FIRE_TIME 1000
-#define ANIMATION_STEP_INTERVAL 20
-
-#if RGBLED_NUM >= 2
-#define POWER_KEY_OFFSET (RGBLED_NUM / 2)
-#define SPACE_OFFSET_MAX (RGBLED_NUM / 2)
-#else
-#define POWER_KEY_OFFSET 1
-#define SPACE_OFFSET_MAX 1
-#endif
-
-uint16_t effect_start_timer = 0;
-uint8_t user_rgb_mode = 0;
-LED_TYPE shadowed_led[RGBLED_NUM] = {{0}};
-
-void start_firey_return(void) {
- user_rgb_mode = BREATH_FIRE;
- effect_start_timer = timer_read();
- for(uint8_t i = 0; i < RGBLED_NUM; i++) {
- shadowed_led[i] = led[i];
- }
-}
-
-/** 0---max
- * [___]
- * [__/]
- * [_/\]
- * [/\_]
- * [\__]
- * [___]
- **/
-
-void set_color_for_offsets(uint16_t time_offset, uint16_t space_offset, uint8_t idx) {
- float time_progress = (float)time_offset / BREATH_FIRE_TIME;
- float space_progress = (float)space_offset / SPACE_OFFSET_MAX;
- float progress = time_progress * 5.0 - space_progress;
- if(progress > 1.0) {
- progress -= 1.0;
- progress /= 4.0;
- progress = 1.0 - progress;
- }
- progress = fmax(0.0,progress);
- progress *= progress; // squared!
-
- float alpha = (time_progress + 0.1) * 7.0 - space_progress;
- alpha = fmin(1.0, alpha*alpha);
-
- LED_TYPE px[1] = {{0}};
- sethsv((uint16_t)(fmod(time_progress * 1.5 + space_progress,1.0)*360), 255, (uint8_t)(progress*255),&px[0]);
- led[idx].r = alpha * px[0].r + ( 1.0 - alpha) * shadowed_led[idx].r;
- led[idx].g = alpha * px[0].g + ( 1.0 - alpha) * shadowed_led[idx].g;
- led[idx].b = alpha * px[0].b + ( 1.0 - alpha) * shadowed_led[idx].b;
-}
-
-/**
- * It's actually a rainbow: a fire curve didn't really look right.
- * it's still cool, though!
- */
-void rgb_mode_breath_fire(void) {
- static uint16_t last_timer = 0;
- if(!last_timer) last_timer = timer_read();
- uint16_t this_timer = timer_read();
-
- // too soon. don't spam updates
- if(this_timer - last_timer < ANIMATION_STEP_INTERVAL) return;
-
- uint16_t elapsed = this_timer - effect_start_timer;
-
- last_timer = this_timer;
- if(elapsed >= BREATH_FIRE_TIME) {
- // complete
- user_rgb_mode = FADE_BACK;
- effect_start_timer = this_timer;
- } else {
- // linear fade
- for(uint16_t i = 0; i < RGBLED_NUM; i++) {
- uint16_t space_offset = ABSDIFF(i,POWER_KEY_OFFSET);
- if(space_offset > SPACE_OFFSET_MAX) space_offset = RGBLED_NUM - space_offset;
-
- set_color_for_offsets(elapsed, space_offset, i);
- }
- rgblight_set();
- }
-}
-
-void rgb_mode_fade_back(void) {
- static uint16_t last_timer = 0;
- if(!last_timer) last_timer = timer_read();
- uint16_t this_timer = timer_read();
-
- // too soon. don't spam updates
- if(this_timer - last_timer < ANIMATION_STEP_INTERVAL) return;
-
- uint16_t elapsed = this_timer - effect_start_timer;
-
- last_timer = this_timer;
- float progress = (float)elapsed / FADE_BACK_TIME;
- progress = fmin(1.0,progress);
-
- for(uint8_t i = 0; i < RGBLED_NUM; i++) {
- led[i].r = shadowed_led[i].r * progress;
- led[i].g = shadowed_led[i].g * progress;
- led[i].b = shadowed_led[i].b * progress;
- }
- rgblight_set();
-
- if(elapsed >= FADE_BACK_TIME) user_rgb_mode = 0;
-}
-
-/** called when layer state or vstate has changed */
-__attribute__ ((weak))
-void set_state_leds(void) {
- return;
-}
-
-void matrix_scan_user(void) {
- static uint32_t last_layer = 0;
- static uint32_t last_vstate = 0;
- if(last_layer != layer_state || last_vstate != vstate) set_state_leds();
- last_layer = layer_state;
- last_vstate = vstate;
-
- switch (user_rgb_mode) {
- case BREATH_FIRE:
- rgb_mode_breath_fire();
- break;
- case FADE_BACK:
- rgb_mode_fade_back();
- break;
- }
- matrix_scan_keymap();
-}
-
-#else
-
-void start_firey_return(void) {}
-
-#endif
diff --git a/users/xtonhasvim/fancylighting.h b/users/xtonhasvim/fancylighting.h
deleted file mode 100644
index 02fb58b84a..0000000000
--- a/users/xtonhasvim/fancylighting.h
+++ /dev/null
@@ -1,36 +0,0 @@
-/* Copyright 2015-2017 Christon DeWan
- *
- * 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/>.
- */
-
-#ifndef _fancy_lighting_h
-#define _fancy_lighting_h
-#ifdef RGBLIGHT_ENABLE
-
-#include "xtonhasvim.h"
-
-
-extern uint8_t user_rgb_mode;
-extern LED_TYPE shadowed_led[];
-
-
-#endif //RGBLIGHT_ENABLE
-void start_firey_return(void);
-
-enum xtonhasvim_rgbmodes {
- BREATH_FIRE = 1,
- FADE_BACK
-};
-
-#endif //_fancy_lighting_h
diff --git a/users/xtonhasvim/readme.md b/users/xtonhasvim/readme.md
deleted file mode 100644
index e08e972f4d..0000000000
--- a/users/xtonhasvim/readme.md
+++ /dev/null
@@ -1,10 +0,0 @@
-
-# Xton has Vim!
-
-Contains common code for Xton's vim emulation (vimulation?) layer.
-
-Inspired/stolen from the `ergodox_ez/vim` keymap. Rewritten to be a more straightforward state machine and support more macros. Vim layers `_CMD` and `_EDIT` are designed to lay on top of an otherwise fully-functional layout. `_CMD` runs the entire vim state machine while `_EDIT` should lay across your base layer and mask off just the escape key.
-
-Works via OSX text editing shortcuts, mainly MOD+arrow combinations. This has some limitations and only works on OSX.
-
-The `_CMD` layer will temporarily disable itself while *CMD* or *ALT* are held down so that typical OSX shortcuts can be used without switching out of vim mode.
diff --git a/users/xtonhasvim/rules.mk b/users/xtonhasvim/rules.mk
deleted file mode 100644
index a901bfcf67..0000000000
--- a/users/xtonhasvim/rules.mk
+++ /dev/null
@@ -1,2 +0,0 @@
-SRC += xtonhasvim.c
-SRC += fancylighting.c
diff --git a/users/xtonhasvim/xtonhasvim.c b/users/xtonhasvim/xtonhasvim.c
deleted file mode 100644
index a33dc68cad..0000000000
--- a/users/xtonhasvim/xtonhasvim.c
+++ /dev/null
@@ -1,643 +0,0 @@
- /* Copyright 2015-2017 Christon DeWan
- *
- * 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 "xtonhasvim.h"
-#include "fancylighting.h"
-
-/************************************
- * helper foo
- ************************************/
-
-#define PRESS(kc) register_code(kc)
-#define RELEASE(kc) unregister_code(kc)
-
-static void TAP(uint16_t keycode) {
- PRESS(keycode);
- RELEASE(keycode);
-}
-
-static void CMD(uint16_t keycode) {
- PRESS(KC_LGUI);
- TAP(keycode);
- RELEASE(KC_LGUI);
-}
-
-static void CTRL(uint16_t keycode) {
- PRESS(KC_LCTL);
- TAP(keycode);
- RELEASE(KC_LCTL);
-}
-
-static void SHIFT(uint16_t keycode) {
- PRESS(KC_LSFT);
- TAP(keycode);
- RELEASE(KC_LSFT);
-}
-
-static void ALT(uint16_t keycode) {
- PRESS(KC_LALT);
- TAP(keycode);
- RELEASE(KC_LALT);
-}
-
-
-uint16_t vstate = VIM_START;
-static bool yank_was_lines = false;
-static bool SHIFTED = false;
-static uint32_t mod_override_layer_state = 0;
-static uint16_t mod_override_triggering_key = 0;
-
-static void edit(void) { vstate = VIM_START; layer_clear(); }
-#define EDIT edit()
-
-
-static void simple_movement(uint16_t keycode) {
- switch(keycode) {
- case VIM_B:
- PRESS(KC_LALT);
- SHIFT(KC_LEFT); // select to start of this word
- RELEASE(KC_LALT);
- break;
- case VIM_E:
- PRESS(KC_LALT);
- SHIFT(KC_RIGHT); // select to end of this word
- RELEASE(KC_LALT);
- break;
- case VIM_H:
- SHIFT(KC_LEFT);
- break;
- case VIM_J:
- CMD(KC_LEFT);
- SHIFT(KC_DOWN);
- SHIFT(KC_DOWN);
- break;
- case VIM_K:
- CMD(KC_LEFT);
- TAP(KC_DOWN);
- SHIFT(KC_UP);
- SHIFT(KC_UP);
- break;
- case VIM_L:
- SHIFT(KC_RIGHT);
- break;
- case VIM_W:
- PRESS(KC_LALT);
- SHIFT(KC_RIGHT); // select to end of this word
- SHIFT(KC_RIGHT); // select to end of next word
- SHIFT(KC_LEFT); // select to start of next word
- RELEASE(KC_LALT);
- break;
- }
-}
-
-static void comma_period(uint16_t keycode) {
- switch (keycode) {
- case VIM_COMMA:
- if (SHIFTED) {
- // indent
- CMD(KC_LEFT_BRACKET);
- } else {
- // toggle comment
- CMD(KC_SLASH);
- }
- break;
- case VIM_PERIOD:
- if (SHIFTED) {
- // outdent
- CMD(KC_RIGHT_BRACKET);
- }
- break;
- }
-}
-
-__attribute__ ((weak))
-bool process_record_keymap(uint16_t keycode, keyrecord_t *record) {
- return true;
-}
-
-bool process_record_user(uint16_t keycode, keyrecord_t *record) {
- /* keymap gets first whack */
- if(!process_record_keymap(keycode, record)) return false;
-
- /****** FIREY_RETURN *****/
- if(record->event.pressed && keycode == FIREY_RETURN) {
- start_firey_return();
- TAP(KC_ENT);
- }
-
- /****** mod passthru *****/
- if(record->event.pressed && layer_state_is(vim_cmd_layer()) && (IS_MODIFIER_KEYCODE(keycode) || keycode == LSFT(KC_LALT))) {
- mod_override_layer_state = layer_state;
- mod_override_triggering_key = keycode;
- // TODO: change this to track key location instead
- layer_clear();
- return true; // let the event fall through...
- }
- if(mod_override_layer_state && !record->event.pressed && keycode == mod_override_triggering_key) {
- layer_state_set(mod_override_layer_state);
- mod_override_layer_state = 0;
- mod_override_triggering_key = 0;
- return true;
- }
-
- if (VIM_START <= keycode && keycode <= VIM_ESC) {
- if(keycode == VIM_SHIFT) {
- SHIFTED = record->event.pressed;
- return false;
- }
-
- if (record->event.pressed) {
- if(keycode == VIM_START) {
- // entry from anywhere
- layer_on(vim_cmd_layer());
- vstate = VIM_START;
-
- // reset state
- yank_was_lines = false;
- SHIFTED = false;
- mod_override_layer_state = 0;
- mod_override_triggering_key = 0;
-
- return false;
- }
- switch(vstate) {
- case VIM_START:
- switch(keycode){
- /*****************************
- * ground state
- *****************************/
- case VIM_A:
- if(SHIFTED) {
- // CMD(KC_RIGHT);
- CTRL(KC_E);
- } else {
- TAP(KC_RIGHT);
- }
- EDIT;
- break;
- case VIM_B:
- PRESS(KC_LALT);
- PRESS(KC_LEFT);
- break;
- case VIM_C:
- if(SHIFTED) {
- PRESS(KC_LSFT);
- CMD(KC_RIGHT);
- RELEASE(KC_LSFT);
- CMD(KC_X);
- yank_was_lines = false;
- EDIT;
- } else {
- vstate = VIM_C;
- }
- break;
- case VIM_D:
- if(SHIFTED) {
- CTRL(KC_K);
- } else {
- vstate = VIM_D;
- }
- break;
- case VIM_E:
- PRESS(KC_LALT);
- PRESS(KC_RIGHT);
- break;
- case VIM_G:
- if(SHIFTED) {
- TAP(KC_END);
- } else {
- vstate = VIM_G;
- }
- break;
- case VIM_H:
- PRESS(KC_LEFT);
- break;
- case VIM_I:
- if(SHIFTED){
- CTRL(KC_A);
- }
- EDIT;
- break;
- case VIM_J:
- if(SHIFTED) {
- CMD(KC_RIGHT);
- TAP(KC_DEL);
- } else {
- PRESS(KC_DOWN);
- }
- break;
- case VIM_K:
- PRESS(KC_UP);
- break;
- case VIM_L:
- PRESS(KC_RIGHT);
- break;
- case VIM_O:
- if(SHIFTED) {
- CMD(KC_LEFT);
- TAP(KC_ENTER);
- TAP(KC_UP);
- EDIT;
- } else {
- CMD(KC_RIGHT);
- TAP(KC_ENTER);
- EDIT;
- }
- break;
- case VIM_P:
- if(SHIFTED) {
- CMD(KC_LEFT);
- CMD(KC_V);
- } else {
- if(yank_was_lines) {
- CMD(KC_RIGHT);
- TAP(KC_RIGHT);
- CMD(KC_V);
- } else {
- CMD(KC_V);
- }
- }
- break;
- case VIM_S:
- // s for substitute?
- if(SHIFTED) {
- CMD(KC_LEFT);
- PRESS(KC_LSFT);
- CMD(KC_RIGHT);
- RELEASE(KC_LSFT);
- CMD(KC_X);
- yank_was_lines = false;
- EDIT;
- } else {
- SHIFT(KC_RIGHT);
- CMD(KC_X);
- yank_was_lines = false;
- EDIT;
- }
- break;
- case VIM_U:
- if(SHIFTED) {
- PRESS(KC_LSFT);
- CMD(KC_Z);
- RELEASE(KC_LSFT);
- } else {
- CMD(KC_Z);
- }
- break;
- case VIM_V:
- if(SHIFTED) {
- CMD(KC_LEFT);
- SHIFT(KC_DOWN);
- vstate = VIM_VS;
- } else {
- vstate = VIM_V;
- }
- break;
- case VIM_W:
- PRESS(KC_LALT);
- TAP(KC_RIGHT);
- TAP(KC_RIGHT);
- TAP(KC_LEFT);
- RELEASE(KC_LALT);
- break;
- case VIM_X:
- // SHIFT(KC_RIGHT);
- // CMD(KC_X);
- PRESS(KC_DEL);
- break;
- case VIM_Y:
- if(SHIFTED) {
- CMD(KC_LEFT);
- SHIFT(KC_DOWN);
- CMD(KC_C);
- TAP(KC_RIGHT);
- yank_was_lines = true;
- } else {
- vstate = VIM_Y;
- }
- break;
- case VIM_COMMA:
- case VIM_PERIOD:
- comma_period(keycode);
- break;
- }
- break;
- case VIM_C:
- /*****************************
- * c- ...for change. I never use this...
- *****************************/
- switch(keycode) {
- case VIM_B:
- case VIM_E:
- case VIM_H:
- case VIM_J:
- case VIM_K:
- case VIM_L:
- case VIM_W:
- simple_movement(keycode);
- CMD(KC_X);
- yank_was_lines = false;
- EDIT;
- break;
-
- case VIM_C:
- CMD(KC_LEFT);
- PRESS(KC_LSFT);
- CMD(KC_RIGHT);
- RELEASE(KC_LSFT);
- CMD(KC_X);
- yank_was_lines = false;
- EDIT;
- break;
- case VIM_I:
- vstate = VIM_CI;
- break;
- default:
- vstate = VIM_START;
- break;
- }
- break;
- case VIM_CI:
- /*****************************
- * ci- ...change inner word
- *****************************/
- switch(keycode) {
- case VIM_W:
- ALT(KC_LEFT);
- PRESS(KC_LSFT);
- ALT(KC_RIGHT);
- RELEASE(KC_LSFT);
- CMD(KC_X);
- yank_was_lines = false;
- EDIT;
- default:
- vstate = VIM_START;
- break;
- }
- break;
- case VIM_D:
- /*****************************
- * d- ...delete stuff
- *****************************/
- switch(keycode) {
- case VIM_B:
- case VIM_E:
- case VIM_H:
- case VIM_J:
- case VIM_K:
- case VIM_L:
- case VIM_W:
- simple_movement(keycode);
- CMD(KC_X);
- yank_was_lines = false;
- vstate = VIM_START;
- break;
- case VIM_D:
- CMD(KC_LEFT);
- SHIFT(KC_DOWN);
- CMD(KC_X);
- yank_was_lines = true;
- vstate = VIM_START;
- break;
- case VIM_I:
- vstate = VIM_DI;
- break;
- default:
- vstate = VIM_START;
- break;
- }
- break;
- case VIM_DI:
- /*****************************
- * ci- ...delete a word... FROM THE INSIDE!
- *****************************/
- switch(keycode) {
- case VIM_W:
- ALT(KC_LEFT);
- PRESS(KC_LSFT);
- ALT(KC_RIGHT);
- RELEASE(KC_LSFT);
- CMD(KC_X);
- yank_was_lines = false;
- vstate = VIM_START;
- default:
- vstate = VIM_START;
- break;
- }
- break;
- case VIM_V:
- /*****************************
- * visual!
- *****************************/
- switch(keycode) {
- case VIM_D:
- case VIM_X:
- CMD(KC_X);
- yank_was_lines = false;
- vstate = VIM_START;
- break;
- case VIM_B:
- PRESS(KC_LALT);
- PRESS(KC_LSFT);
- PRESS(KC_LEFT);
- // leave open for key repeat
- break;
- case VIM_E:
- PRESS(KC_LALT);
- PRESS(KC_LSFT);
- PRESS(KC_RIGHT);
- // leave open for key repeat
- break;
- case VIM_H:
- PRESS(KC_LSFT);
- PRESS(KC_LEFT);
- break;
- case VIM_I:
- vstate = VIM_VI;
- break;
- case VIM_J:
- PRESS(KC_LSFT);
- PRESS(KC_DOWN);
- break;
- case VIM_K:
- PRESS(KC_LSFT);
- PRESS(KC_UP);
- break;
- case VIM_L:
- PRESS(KC_LSFT);
- PRESS(KC_RIGHT);
- break;
- case VIM_W:
- PRESS(KC_LALT);
- SHIFT(KC_RIGHT); // select to end of this word
- SHIFT(KC_RIGHT); // select to end of next word
- SHIFT(KC_LEFT); // select to start of next word
- RELEASE(KC_LALT);
- break;
- case VIM_P:
- CMD(KC_V);
- vstate = VIM_START;
- break;
- case VIM_Y:
- CMD(KC_C);
- TAP(KC_RIGHT);
- yank_was_lines = false;
- vstate = VIM_START;
- break;
- case VIM_V:
- case VIM_ESC:
- TAP(KC_RIGHT);
- vstate = VIM_START;
- break;
- case VIM_COMMA:
- case VIM_PERIOD:
- comma_period(keycode);
- break;
- default:
- // do nothing
- break;
- }
- break;
- case VIM_VI:
- /*****************************
- * vi- ...select a word... FROM THE INSIDE!
- *****************************/
- switch(keycode) {
- case VIM_W:
- ALT(KC_LEFT);
- PRESS(KC_LSFT);
- ALT(KC_RIGHT);
- RELEASE(KC_LSFT);
- vstate = VIM_V;
- default:
- // ignore
- vstate = VIM_V;
- break;
- }
- break;
- case VIM_VS:
- /*****************************
- * visual line
- *****************************/
- switch(keycode) {
- case VIM_D:
- case VIM_X:
- CMD(KC_X);
- yank_was_lines = true;
- vstate = VIM_START;
- break;
- case VIM_J:
- PRESS(KC_LSFT);
- PRESS(KC_DOWN);
- break;
- case VIM_K:
- PRESS(KC_LSFT);
- PRESS(KC_UP);
- break;
- case VIM_Y:
- CMD(KC_C);
- yank_was_lines = true;
- TAP(KC_RIGHT);
- vstate = VIM_START;
- break;
- case VIM_P:
- CMD(KC_V);
- vstate = VIM_START;
- break;
- case VIM_V:
- case VIM_ESC:
- TAP(KC_RIGHT);
- vstate = VIM_START;
- break;
- case VIM_COMMA:
- case VIM_PERIOD:
- comma_period(keycode);
- break;
- default:
- // do nothing
- break;
- }
- break;
- case VIM_G:
- /*****************************
- * gg, and a grab-bag of other macros i find useful
- *****************************/
- switch(keycode) {
- case VIM_G:
- TAP(KC_HOME);
- break;
- // codes b
- case VIM_H:
- CTRL(KC_A);
- break;
- case VIM_J:
- PRESS(KC_PGDN);
- break;
- case VIM_K:
- PRESS(KC_PGUP);
- break;
- case VIM_L:
- CTRL(KC_E);
- break;
- default:
- // do nothing
- break;
- }
- vstate = VIM_START;
- break;
- case VIM_Y:
- /*****************************
- * yoink!
- *****************************/
- switch(keycode) {
- case VIM_B:
- case VIM_E:
- case VIM_H:
- case VIM_J:
- case VIM_K:
- case VIM_L:
- case VIM_W:
- simple_movement(keycode);
- CMD(KC_C);
- TAP(KC_RIGHT);
- yank_was_lines = false;
- break;
- case VIM_Y:
- CMD(KC_LEFT);
- SHIFT(KC_DOWN);
- CMD(KC_C);
- TAP(KC_RIGHT);
- yank_was_lines = true;
- break;
- default:
- // NOTHING
- break;
- }
- vstate = VIM_START;
- break;
- }
- } else {
- /************************
- * key release events
- ************************/
- clear_keyboard();
- }
- return false;
- } else {
- return true;
- }
-}
-
diff --git a/users/xtonhasvim/xtonhasvim.h b/users/xtonhasvim/xtonhasvim.h
deleted file mode 100644
index 2d6670a5e6..0000000000
--- a/users/xtonhasvim/xtonhasvim.h
+++ /dev/null
@@ -1,65 +0,0 @@
- /* Copyright 2015-2017 Christon DeWan
- *
- * 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/>.
- */
-
-#ifndef USERSPACE
-#define USERSPACE
-
-#include QMK_KEYBOARD_H
-#include "action_layer.h"
-
-#define X_____X KC_NO
-
-enum xtonhasvim_keycodes {
- // 20: give keyboard-specific codes some room
- FIREY_RETURN = SAFE_RANGE + 20, // kick off special effects
- VIM_START, // bookend for vim states
- VIM_A,
- VIM_B,
- VIM_C,
- VIM_CI,
- VIM_D,
- VIM_DI,
- VIM_E,
- VIM_H,
- VIM_G,
- VIM_I,
- VIM_J,
- VIM_K,
- VIM_L,
- VIM_O,
- VIM_P,
- VIM_S,
- VIM_U,
- VIM_V,
- VIM_VS, // visual-line
- VIM_VI,
- VIM_W,
- VIM_X,
- VIM_Y,
- VIM_PERIOD, // to support indent/outdent
- VIM_COMMA, // and toggle comments
- VIM_SHIFT, // avoid side-effect of supporting real shift.
- VIM_ESC, // bookend
- VIM_SAFE_RANGE // start other keycodes here.
-};
-
-// NOTE: YOU MUST DEFINE THIS
-extern uint8_t vim_cmd_layer(void);
-
-extern uint16_t vstate;
-
-
-#endif
diff --git a/users/xulkal/config.h b/users/xulkal/config.h
deleted file mode 100644
index bc175dda98..0000000000
--- a/users/xulkal/config.h
+++ /dev/null
@@ -1,36 +0,0 @@
-#pragma once
-
-#undef TAPPING_TERM
-#define TAPPING_TERM 175
-
-#undef QUICK_TAP_TERM
-#define QUICK_TAP_TERM TAPPING_TERM
-
-#define SPACE_CADET_MODIFIER_CARRYOVER
-#define LSPO_KEYS KC_LSFT, KC_TRNS, KC_LBRC
-#define RSPC_KEYS KC_RSFT, KC_TRNS, KC_RBRC
-#define LCPO_KEYS KC_LCTL, KC_TRNS, KC_MINS
-#define RCPC_KEYS KC_RCTL, KC_TRNS, KC_EQL
-
-// Running out of firmware space
-#if defined(__AVR__)
-#undef RGB_MATRIX_KEYPRESSES
-#undef RGB_MATRIX_KEYRELEASES
-#undef RGB_MATRIX_FRAMEBUFFER_EFFECTS
-#else
-# define RGB_MATRIX_KEYPRESSES
-# undef RGB_MATRIX_KEYRELEASES
-# define RGB_MATRIX_FRAMEBUFFER_EFFECTS
-# define ENABLE_TYPING_HEATMAP_DISTANCE_CHECK
-#endif
-
-// No need for the single versions when multi performance isn't a problem =D
-#undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE
-#undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS
-#undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS
-#undef ENABLE_RGB_MATRIX_SPLASH
-#undef ENABLE_RGB_MATRIX_SOLID_SPLASH
-
-// 20m timeout (20m * 60s * 1000mil)
-#define RGB_MATRIX_TIMEOUT 1200000
-#define OLED_SCROLL_TIMEOUT 20000
diff --git a/users/xulkal/custom_encoder.c b/users/xulkal/custom_encoder.c
deleted file mode 100644
index acd0275a8b..0000000000
--- a/users/xulkal/custom_encoder.c
+++ /dev/null
@@ -1,73 +0,0 @@
-#include "custom_encoder.h"
-#include "custom_keycodes.h"
-
-#ifdef RGB_OLED_MENU
-#include "custom_rgb.h"
-
-// I'm lazy and like constants over calculations, also using it as a compile time check
-#if defined(RGB_MATRIX_ENABLE)
- #define RGB_FUNCTION_COUNT 6
-#elif defined(RGBLIGHT_ENABLE)
- #define RGB_FUNCTION_COUNT 5
-#endif
-
-typedef void (*rgb_f)(void);
-
-const rgb_f rgb_functions[RGB_FUNCTION_COUNT][2] = {
-#if defined(RGB_MATRIX_ENABLE)
- { rgb_matrix_increase_hue, rgb_matrix_decrease_hue },
- { rgb_matrix_increase_sat, rgb_matrix_decrease_sat },
- { rgb_matrix_increase_val, rgb_matrix_decrease_val },
- { rgb_matrix_increase_speed, rgb_matrix_decrease_speed },
- { rgb_matrix_step, rgb_matrix_step_reverse },
- { rgb_matrix_increase_flags, rgb_matrix_decrease_flags }
-#elif defined(RGBLIGHT_ENABLE)
- { rgblight_increase_hue, rgblight_decrease_hue },
- { rgblight_increase_sat, rgblight_decrease_sat },
- { rgblight_increase_val, rgblight_decrease_val },
- { rgblight_increase_speed, rgblight_decrease_speed },
- { rgblight_step, rgblight_step_reverse }
-#endif
-};
-
-// Start at the end for mode
-uint8_t rgb_encoder_state = 4;
-
-bool process_record_encoder(uint16_t keycode, keyrecord_t *record)
-{
- switch (keycode)
- {
- case RGB_ENC:
- if (record->event.pressed) {
- if (get_mods() & MOD_MASK_SHIFT) {
- rgb_encoder_state = (rgb_encoder_state - 1);
- if (rgb_encoder_state >= RGB_FUNCTION_COUNT)
- rgb_encoder_state = RGB_FUNCTION_COUNT - 1;
- } else {
- rgb_encoder_state = (rgb_encoder_state + 1) % RGB_FUNCTION_COUNT;
- }
- }
- return false;
- }
- return true;
-}
-#endif // RGB_OLED_MENU
-
-const uint16_t PROGMEM encoders[][2] = {
- { KC_PGUP, KC_PGDN },
- { KC_VOLU, KC_VOLD }
-};
-
-bool encoder_update_user(uint8_t index, bool clockwise)
-{
- if (!is_keyboard_master())
- return;
-
-#ifdef RGB_OLED_MENU
- if (index == RGB_OLED_MENU)
- (*rgb_functions[rgb_encoder_state][clockwise])();
- else
-#endif // RGB_OLED_MENU
- tap_code16(pgm_read_word(&encoders[index][clockwise]));
- return true;
-}
diff --git a/users/xulkal/custom_encoder.h b/users/xulkal/custom_encoder.h
deleted file mode 100644
index 010d4b1383..0000000000
--- a/users/xulkal/custom_encoder.h
+++ /dev/null
@@ -1,2 +0,0 @@
-#pragma once
-#include "quantum.h"
diff --git a/users/xulkal/custom_keycodes.h b/users/xulkal/custom_keycodes.h
deleted file mode 100644
index 7ced92bf4c..0000000000
--- a/users/xulkal/custom_keycodes.h
+++ /dev/null
@@ -1,40 +0,0 @@
-#pragma once
-
-enum custom_keycodes {
- RGBRST = SAFE_RANGE,
-#ifndef TAP_DANCE_ENABLE
- TD_MIN,
- TD_COMM = TD_MIN,
- TD_BSPC,
- TD_DEL,
- TD_DOT,
- TD_MAX,
-#endif
-#ifdef ENCODER_ENABLE
- RGB_ENC,
-#endif
- KEYMAP_SAFE_RANGE
-};
-
-#define RIS_ESC LT(_RAISE, KC_ESC)
-#define RIS_CAPS LT(_RAISE, KC_CAPS)
-
-#define QWERTY DF(_QWERTY)
-
-#ifndef GAMELAYER_DISABLE
-#define GAME DF(_GAME)
-#else
-#define GAME KC_TRANSPARENT
-#endif
-
-#define LOWER MO(_LOWER)
-#define RAISE MO(_RAISE)
-
-
-#ifdef ENCODER_ENABLE
-#define KC_ENC1 RGB_ENC
-#define KC_ENC2 KC_MPLY
-#else
-#define KC_ENC1 RGB_RMOD
-#define KC_ENC2 RGB_MOD
-#endif
diff --git a/users/xulkal/custom_oled.c b/users/xulkal/custom_oled.c
deleted file mode 100644
index c6341fa3d7..0000000000
--- a/users/xulkal/custom_oled.c
+++ /dev/null
@@ -1,189 +0,0 @@
-#include "custom_oled.h"
-#include "process_records.h"
-
-#include <stdio.h>
-
-#ifdef RGBLIGHT_ENABLE
-rgblight_config_t rgblight_config;
-#endif
-
-static void render_logo(void)
-{
- static const char PROGMEM font_logo[] = {
- 0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8a,0x8b,0x8c,0x8d,0x8e,0x8f,0x90,0x91,0x92,0x93,0x94,
- 0xa0,0xa1,0xa2,0xa3,0xa4,0xa5,0xa6,0xa7,0xa8,0xa9,0xaa,0xab,0xac,0xad,0xae,0xaf,0xb0,0xb1,0xb2,0xb3,0xb4,
- 0xc0,0xc1,0xc2,0xc3,0xc4,0xc5,0xc6,0xc7,0xc8,0xc9,0xca,0xcb,0xcc,0xcd,0xce,0xcf,0xd0,0xd1,0xd2,0xd3,0xd4,0};
- oled_write_P(font_logo, false);
-}
-
-static void render_icon(void)
-{
-#ifdef OLED_90ROTATION
- static const char PROGMEM font_icon[] = {
- 0x9b,0x9c,0x9d,0x9e,0x9f,
- 0xbb,0xbc,0xbd,0xbe,0xbf,
- 0xdb,0xdc,0xdd,0xde,0xdf,0
- };
-#else
- static const char PROGMEM font_icon[] = {
- // Use \r (0x0d) to jump to the next line without clearing the rest of the current line
- 0x9b,0x9c,0x9d,0x9e,0x9f,0x0d,
- 0xbb,0xbc,0xbd,0xbe,0xbf,0x0d,
- 0xdb,0xdc,0xdd,0xde,0xdf,0
- };
-#endif
- oled_write_P(font_icon, false);
-}
-
-static void render_layer(void)
-{
- uint8_t layer = layer_state ? get_highest_layer(layer_state) : get_highest_layer(default_layer_state);
-#ifdef OLED_90ROTATION
- oled_write_P(PSTR("Layer"), false);
-#else
- oled_write_P(PSTR("Layer: "), false);
-#endif
-
- switch (layer)
- {
- case _QWERTY:
- oled_write_P(PSTR("BASE "), false);
- break;
-#ifndef GAMELAYER_DISABLE
- case _GAME:
- oled_write_P(PSTR("GAME "), false);
- break;
-#endif
- case _LOWER:
- oled_write_P(PSTR("LOWER"), false);
- break;
- case _RAISE:
- oled_write_P(PSTR("RAISE"), false);
- break;
-#ifdef TRILAYER_ENABLED
- case _ADJUST:
- oled_write_P(PSTR("ADJST"), false);
- break;
-#endif
- }
-}
-
-static void render_keyboard_leds(void)
-{
- // Host Keyboard LED Status
- led_t led_state = host_keyboard_led_state();
-#ifdef OLED_90ROTATION
- oled_write_P(led_state.num_lock ? PSTR("NUMLK") : PSTR(" "), false);
- oled_write_P(led_state.caps_lock ? PSTR("CAPLK") : PSTR(" "), false);
- oled_write_P(led_state.scroll_lock ? PSTR("SCRLK") : PSTR(" "), false);
-#else
- oled_write_P(led_state.num_lock ? PSTR("NUM ") : PSTR(" "), false);
- oled_write_P(led_state.caps_lock ? PSTR("CAPS ") : PSTR(" "), false);
- oled_write_P(led_state.scroll_lock ? PSTR("SCRL") : PSTR(" "), false);
-#endif
-}
-
-#ifdef RGB_OLED_MENU
-extern uint8_t rgb_encoder_state;
-#endif
-
-#if defined(OLED_90ROTATION)
-
-#ifdef RGB_ENABLE
-static void render_rgb_state(void)
-{
- // TODO: need to do a bit more handling here for horizontal rendering
-#if defined(RGB_MATRIX_ENABLE)
- static char buffer[31] = {0};
- snprintf(buffer, sizeof(buffer), "h%3d s%3d v%3d s%3d m%3d e%3d ", rgb_matrix_config.hsv.h, rgb_matrix_config.hsv.s, rgb_matrix_config.hsv.v, rgb_matrix_config.speed, rgb_matrix_config.mode, rgb_matrix_get_flags());
-#elif defined(RGBLIGHT_ENABLE)
- static char buffer[26] = {0};
- snprintf(buffer, sizeof(buffer), "h%3d s%3d v%3d s%3d m%3d ", rgblight_config.hue, rgblight_config.sat, rgblight_config.val, rgblight_config.speed, rgblight_config.mode);
-#endif
-
-#ifdef RGB_OLED_MENU
- buffer[4 + rgb_encoder_state * 5] = '<';
-#endif
- oled_write(buffer, false);
-}
-#endif
-
-static void render_status(void)
-{
- render_icon();
- render_layer();
-
- // Host Keyboard LED Status
- oled_write_P(PSTR("-----"), false);
- render_keyboard_leds();
-
- oled_write_P(PSTR("-----"), false);
-#ifdef RGB_ENABLE
- render_rgb_state();
-#endif
-}
-
-oled_rotation_t oled_init_user(oled_rotation_t rotation) {
-#if KEYBOARD_helix_rev2
- if (is_keyboard_master())
- return OLED_ROTATION_270;
- return rotation;
-#else
- if (is_keyboard_master())
- return OLED_ROTATION_90;
- return rotation;
-#endif
-}
-
-#else // OLED_90ROTATION
-
-#ifdef RGB_ENABLE
-static void render_rgb_state(void)
-{
- // TODO: need to do a bit more handling here for horizontal rendering
-#if defined(RGB_MATRIX_ENABLE)
- static char buffer[37] = {0};
- snprintf(buffer, sizeof(buffer), "h%3d s%3d v%3d s%3d m%3d e%3d ", rgb_matrix_config.hsv.h, rgb_matrix_config.hsv.s, rgb_matrix_config.hsv.v, rgb_matrix_config.speed, rgb_matrix_config.mode, rgb_matrix_get_flags());
-#elif defined(RGBLIGHT_ENABLE)
- static char buffer[32] = {0};
- snprintf(buffer, sizeof(buffer), "h%3d s%3d v%3d s%3d m%3d ", rgblight_config.hue, rgblight_config.sat, rgblight_config.val, rgblight_config.speed, rgblight_config.mode);
-#endif
-
-#ifdef RGB_OLED_MENU
- buffer[4 + rgb_encoder_state * 5] = '<';
-#endif
- oled_write(buffer, false);
-}
-#endif
-
-static void render_status(void)
-{
- render_icon();
-
- // Host Layer Status
- oled_set_cursor(6, 0);
- render_layer();
-
- // Host Keyboard LED Status
- oled_set_cursor(6, 1);
- render_keyboard_leds();
-
-#ifdef RGB_ENABLE
- oled_set_cursor(6, 2);
- render_rgb_state();
-#endif
-}
-
-#endif // OLED_90ROTATION
-
-bool oled_task_user(void)
-{
- if (is_keyboard_master())
- render_status();
- else
- {
- render_logo();
- oled_scroll_left();
- }
- return false;
-}
diff --git a/users/xulkal/custom_oled.h b/users/xulkal/custom_oled.h
deleted file mode 100644
index 010d4b1383..0000000000
--- a/users/xulkal/custom_oled.h
+++ /dev/null
@@ -1,2 +0,0 @@
-#pragma once
-#include "quantum.h"
diff --git a/users/xulkal/custom_rgb.c b/users/xulkal/custom_rgb.c
deleted file mode 100644
index f68a7c56c0..0000000000
--- a/users/xulkal/custom_rgb.c
+++ /dev/null
@@ -1,64 +0,0 @@
-#include "custom_rgb.h"
-
-#ifdef RGB_MATRIX_ENABLE
-void rgb_matrix_increase_flags(void)
-{
- switch (rgb_matrix_get_flags()) {
- case LED_FLAG_ALL: {
- rgb_matrix_set_flags(LED_FLAG_KEYLIGHT | LED_FLAG_MODIFIER);
- rgb_matrix_set_color_all(0, 0, 0);
- }
- break;
- case LED_FLAG_KEYLIGHT | LED_FLAG_MODIFIER: {
- rgb_matrix_set_flags(LED_FLAG_NONE);
- rgb_matrix_disable_noeeprom();
- }
- break;
- case LED_FLAG_UNDERGLOW: {
- rgb_matrix_set_flags(LED_FLAG_ALL);
- rgb_matrix_set_color_all(0, 0, 0);
- }
- break;
- default: {
- rgb_matrix_set_flags(LED_FLAG_UNDERGLOW);
- rgb_matrix_enable_noeeprom();
- }
- break;
- }
-}
-
-void rgb_matrix_decrease_flags(void)
-{
- switch (rgb_matrix_get_flags()) {
- case LED_FLAG_ALL: {
- rgb_matrix_set_flags(LED_FLAG_UNDERGLOW);
- rgb_matrix_set_color_all(0, 0, 0);
- }
- break;
- case LED_FLAG_KEYLIGHT | LED_FLAG_MODIFIER: {
- rgb_matrix_set_flags(LED_FLAG_ALL);
- rgb_matrix_set_color_all(0, 0, 0);
- }
- break;
- case LED_FLAG_UNDERGLOW: {
- rgb_matrix_set_flags(LED_FLAG_NONE);
- rgb_matrix_disable_noeeprom();
- }
- break;
- default: {
- rgb_matrix_set_flags(LED_FLAG_KEYLIGHT | LED_FLAG_MODIFIER);
- rgb_matrix_enable_noeeprom();
- }
- break;
- }
-}
-#endif
-
-void rgb_reset(void) {
-#if defined(RGB_MATRIX_ENABLE)
- eeconfig_update_rgb_matrix_default();
-#elif defined(RGBLIGHT_ENABLE)
- eeconfig_update_rgblight_default();
- rgblight_enable();
-#endif
-}
diff --git a/users/xulkal/custom_rgb.h b/users/xulkal/custom_rgb.h
deleted file mode 100644
index 10010b5242..0000000000
--- a/users/xulkal/custom_rgb.h
+++ /dev/null
@@ -1,17 +0,0 @@
-#pragma once
-
-#if defined(RGB_MATRIX_ENABLE)
-# include "rgb_matrix.h"
-#elif defined(RGBLIGHT_ENABLE)
-# if !defined(__AVR__)
-# define PROGMEM
-# endif
-# include "rgblight.h"
-#endif
-
-#ifdef RGB_MATRIX_ENABLE
-void rgb_matrix_increase_flags(void);
-void rgb_matrix_decrease_flags(void);
-#endif
-
-void rgb_reset(void);
diff --git a/users/xulkal/custom_tap_dance.c b/users/xulkal/custom_tap_dance.c
deleted file mode 100644
index c2f9efe44b..0000000000
--- a/users/xulkal/custom_tap_dance.c
+++ /dev/null
@@ -1,59 +0,0 @@
-#include "custom_tap_dance.h"
-#include "custom_keycodes.h"
-
-#ifdef TAP_DANCE_ENABLE
-
-//Tap Dance Definitions
-tap_dance_action_t tap_dance_actions[] = {
- [COMM_QUOT] = ACTION_TAP_DANCE_DOUBLE(KC_COMM, KC_QUOT),
- [BACKSPACE] = ACTION_TAP_DANCE_DOUBLE (KC_BACKSPACE, LCTL(KC_BACKSPACE)),
- [DELETE] = ACTION_TAP_DANCE_DOUBLE (KC_DELETE, LCTL(KC_DELETE))
-};
-
-#else
-
-static uint16_t td_keycode;
-static uint16_t td_timer;
-
-const uint16_t PROGMEM td_keymaps[TD_MAX - TD_MIN][2] = {
- [TD_COMM - TD_MIN] = { KC_COMM, KC_QUOT },
- [TD_BSPC - TD_MIN] = { KC_BACKSPACE, LCTL(KC_BACKSPACE) },
- [TD_DEL - TD_MIN] = { KC_DELETE, LCTL(KC_DELETE) }
-};
-
-static void run_custom_tap_dance(uint8_t i)
-{
- tap_code16(pgm_read_word(&td_keymaps[td_keycode - TD_MIN][i]));
- td_keycode = KC_TRANSPARENT;
- td_timer = timer_read() + TAPPING_TERM;
-}
-
-bool process_custom_tap_dance(uint16_t keycode, keyrecord_t *record)
-{
- if (TD_MIN <= keycode && keycode < TD_MAX)
- {
- if (record->event.pressed)
- {
- if (td_keycode != keycode || timer_expired(td_timer))
- {
- td_keycode = keycode;
- td_timer = timer_read() + TAPPING_TERM;
- }
- else
- run_custom_tap_dance(1);
- }
- return false;
- }
-
- if (td_keycode != KC_TRANSPARENT)
- run_custom_tap_dance(0);
- return true;
-}
-
-void matrix_scan_user(void)
-{
- if (td_keycode != KC_TRANSPARENT && timer_expired(td_timer))
- run_custom_tap_dance(0);
-}
-
-#endif
diff --git a/users/xulkal/custom_tap_dance.h b/users/xulkal/custom_tap_dance.h
deleted file mode 100644
index c4da9318c2..0000000000
--- a/users/xulkal/custom_tap_dance.h
+++ /dev/null
@@ -1,23 +0,0 @@
-#pragma once
-#include "quantum.h"
-
-#ifdef TAP_DANCE_ENABLE
-
-#include "process_tap_dance.h"
-
-//Tap Dance Declarations
-enum {
- COMM_QUOT = 0,
- BACKSPACE,
- DELETE
-};
-
-#define TD_COMM TD(COMM_QUOT)
-#define TD_BSPC TD(BACKSPACE)
-#define TD_DEL TD(DELETE)
-
-#else
-
-bool process_custom_tap_dance(uint16_t keycode, keyrecord_t *record);
-
-#endif
diff --git a/users/xulkal/layouts.h b/users/xulkal/layouts.h
deleted file mode 100644
index 2b939b23bf..0000000000
--- a/users/xulkal/layouts.h
+++ /dev/null
@@ -1,119 +0,0 @@
-#pragma once
-
- /* Qwerty Layout
- * ,-----------------------------------------. ,-----------------------------------------.
- * | GESC | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | BkSp |
- * |------+------+------+------+------+------| |------+------+------+------+------+------|
- * | Tab | Q | W | E | R | T | | Y | U | I | O | P | \ |
- * |------+------+------+------+------+------| |------+------+------+------+------+------|
- * |FN(CAPS)| A | S | D | F | G | | H | J | K | L | ; | Enter|
- * |------+------+------+------+------+------| |------+------+------+------+------+------|
- * | Sft[ | Z | X | C | V | B | | N | M | , | . | / | Sft] |
- * |------+------+------+------+------+------| |------+------+------+------+------+------|
- * | Ctrl | Win | ADJ | FN | Alt | Space| | Space| Left | Up | Down | Right| Ctrl |
- * `-----------------------------------------' `-----------------------------------------'
- */
-
-#define _________________QWERTY_L1_________________ QK_GESC, KC_1, KC_2, KC_3, KC_4, KC_5
-#define _________________QWERTY_L2_________________ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T
-#define _________________QWERTY_L3_________________ RIS_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G
-#define _________________QWERTY_L4_________________ SC_LSPO, KC_Z, KC_X, KC_C, KC_V, KC_B
-#define _________________QWERTY_L5_________________ SC_LCPO, KC_LGUI, KC_LALT, LOWER, RAISE, KC_SPC
-
-#define _________________QWERTY_R1_________________ KC_6, KC_7, KC_8, KC_9, KC_0, TD_BSPC
-#define _________________QWERTY_R2_________________ KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS
-#define _________________QWERTY_R3_________________ KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_ENT
-#define _________________QWERTY_R4_________________ KC_N, KC_M, TD_COMM, KC_DOT, KC_SLASH, SC_RSPC
-#define _________________QWERTY_R5_________________ KC_SPC, KC_LEFT, KC_UP, KC_DOWN, KC_RIGHT, SC_RCPC
-
-
-#define ___________________GAME_L1_________________ KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5
-#define ___________________GAME_L2_________________ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T
-#define ___________________GAME_L3_________________ KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G
-#define ___________________GAME_L4_________________ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B
-#define ___________________GAME_L5_________________ KC_LCTL, KC_LGUI, LOWER, RAISE, KC_LALT, KC_SPC
-
-#define ___________________GAME_R1_________________ KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC
-#define ___________________GAME_R2_________________ KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS
-#define ___________________GAME_R3_________________ KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_ENT
-#define ___________________GAME_R4_________________ KC_N, KC_M, KC_COMM, KC_DOT, KC_SLASH, KC_RSFT
-#define ___________________GAME_R5_________________ KC_SPC, KC_LEFT, KC_UP, KC_DOWN, KC_RIGHT, KC_RCTL
-
-
- /* RAISE Layout
- * ,-----------------------------------------. ,-----------------------------------------.
- * | F12 | F1 | F2 | F3 | F4 | F5 | | F6 | F7 | F8 | F9 | F10 | F11 |
- * |------+------+------+------+------+------| |------+------+------+------+------+------|
- * | | PGDN | UP | PGUP | |QWERTY| | | INS | HOME | PGUP | PRINT| |
- * |------+------+------+------+------+------| |------+------+------+------+------+------|
- * | | LEFT | DOWN | RIGHT| | GAME | | | DEL | END | PGDN |SCRLCK| |
- * |------+------+------+------+------+------| |------+------+------+------+------+------|
- * | | | | | | | | | | | | | |
- * |------+------+------+------+------+------| |------+------+------+------+------+------|
- * | | | | | | | | | PREV | VOL+ | VOL- | NEXT | PLAY |
- * `-----------------------------------------' `-----------------------------------------'
- */
-
-#define __________________RAISE_L1_________________ KC_F12, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5
-#define __________________RAISE_L2_________________ _______, KC_PGDN, KC_UP, KC_PGUP, _______, QWERTY
-#define __________________RAISE_L3_________________ _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, GAME
-#define __________________RAISE_L4_________________ _______, _______, _______, _______, _______, _______
-#define __________________RAISE_L5_________________ _______, _______, _______, _______, _______, _______
-
-#define __________________RAISE_R1_________________ KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11
-#define __________________RAISE_R2_________________ _______, KC_INS, KC_HOME, KC_PGUP, KC_PSCR, _______
-#define __________________RAISE_R3_________________ _______, KC_DEL, KC_END, KC_PGDN, KC_SCRL, _______
-#define __________________RAISE_R4_________________ _______, _______, _______, _______, _______, _______
-#define __________________RAISE_R5_________________ _______, KC_MPRV, KC_VOLU, KC_VOLD, KC_MNXT, KC_MPLY
-
- /* LOWER Layout
- * ,-----------------------------------------. ,-----------------------------------------.
- * | |RGBMD |RGBRMD|RGBTOG| | | | | | | SLCK | NLCK | DEL |
- * |------+------+------+------+------+------| |------+------+------+------+------+------|
- * | SPDI | SAI | VAI | HUI | RESET| | | | | 7 | 8 | 9 | |
- * |------+------+------+------+------+------| |------+------+------+------+------+------|
- * | SPDD | SAD | VAD | HUD |RGBRST| | | | | 4 | 5 | 6 | |
- * |------+------+------+------+------+------| |------+------+------+------+------+------|
- * | | | | | | | | | | 1 | 2 | 3 | |
- * |------+------+------+------+------+------| |------+------+------+------+------+------|
- * | | | | | | | | | | | 0 | . | |
- * `-----------------------------------------' `-----------------------------------------'
- */
-
-#define __________________LOWER_L1_________________ _______, RGB_RMOD, RGB_MOD, RGB_TOG, _______, _______
-#define __________________LOWER_L2_________________ RGB_SPI, RGB_SAI, RGB_VAI, RGB_HUI, QK_BOOT, _______
-#define __________________LOWER_L3_________________ RGB_SPD, RGB_SAD, RGB_VAD, RGB_HUD, RGBRST, _______
-#define __________________LOWER_L4_________________ _______, _______, _______, _______, _______, _______
-#define __________________LOWER_L5_________________ _______, _______, _______, _______, _______, _______
-
-#define __________________LOWER_R1_________________ _______, _______, _______, KC_SCRL, KC_NUM, KC_DEL
-#define __________________LOWER_R2_________________ _______, _______, KC_KP_7, KC_KP_8, KC_KP_9, _______
-#define __________________LOWER_R3_________________ _______, _______, KC_KP_4, KC_KP_5, KC_KP_6, _______
-#define __________________LOWER_R4_________________ _______, _______, KC_KP_1, KC_KP_2, KC_KP_3, _______
-#define __________________LOWER_R5_________________ _______, _______, _______, KC_KP_0, KC_PDOT, _______
-
- /* ADJUST Layout
- * ,-----------------------------------------. ,-----------------------------------------.
- * | | | | | | | | | | | | | |
- * |------+------+------+------+------+------| |------+------+------+------+------+------|
- * | | RESET| Debug| | | | | | | | | | |
- * |------+------+------+------+------+------| |------+------+------+------+------+------|
- * | | |MusMod|Aud on|AudOff|AGnorm| |AGswap|ClkUp |ClkDwn| | | |
- * |------+------+------+------+------+------| |------+------+------+------+------+------|
- * | |Voice-|Voice+|Mus on|MusOff|MidiOn| |MidOff|ClkOn |ClkOff| | | |
- * |------+------+------+------+------+------| |------+------+------+------+------+------|
- * | | | | | | | | | | | | | |
- * `-----------------------------------------' `-----------------------------------------'
- */
-
-#define _________________ADJUST_L1_________________ _______, _______, _______, _______, _______, _______
-#define _________________ADJUST_L2_________________ _______, QK_BOOT, DB_TOGG, _______, _______, _______
-#define _________________ADJUST_L3_________________ _______, _______, MU_NEXT, AU_ON, AU_OFF, AG_NORM
-#define _________________ADJUST_L4_________________ _______, AU_PREV, AU_NEXT, MU_ON, MU_OFF, MI_ON
-#define _________________ADJUST_L5_________________ _______, _______, _______, _______, _______, _______
-
-#define _________________ADJUST_R1_________________ _______, _______, _______, _______, _______, _______
-#define _________________ADJUST_R2_________________ _______, _______, _______, _______, _______, _______
-#define _________________ADJUST_R3_________________ AG_SWAP, CK_UP, CK_DOWN, _______, _______, _______
-#define _________________ADJUST_R4_________________ MI_OFF, CK_ON, CK_OFF, _______, _______, _______
-#define _________________ADJUST_R5_________________ _______, _______, _______, _______, _______, _______
diff --git a/users/xulkal/process_records.c b/users/xulkal/process_records.c
deleted file mode 100644
index 804dd4677a..0000000000
--- a/users/xulkal/process_records.c
+++ /dev/null
@@ -1,62 +0,0 @@
-#include "process_records.h"
-#include "custom_keycodes.h"
-
-#ifdef RGB_ENABLE
-#include "custom_rgb.h"
-#endif
-
-#ifdef TRILAYER_ENABLED
-layer_state_t layer_state_set_user(layer_state_t state)
-{
- return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST);
-}
-#endif
-
-bool process_record_user(uint16_t keycode, keyrecord_t *record)
-{
- static uint16_t reset_timer;
-
-#ifndef TAP_DANCE_ENABLE
- if (!process_custom_tap_dance(keycode, record))
- return false;
-#endif
-
- switch (keycode)
- {
- case RGBRST:
-#ifdef RGB_ENABLE
- if (record->event.pressed)
- rgb_reset();
-#endif
- return false;
- case QK_BOOT:
- {
- if (record->event.pressed)
- reset_timer = timer_read() + 500;
- else if (timer_expired(timer_read(), reset_timer))
- reset_keyboard();
- }
- return false;
-#if defined(RGB_MATRIX_TOG_LAYERS) && defined(RGB_ENABLE)
- case RGB_TOG:
- if (record->event.pressed) {
- rgb_matrix_increase_flags();
- }
- return false;
-#endif
- }
-
- return process_record_encoder(keycode, record) && process_record_keymap(keycode, record);
-}
-
-__attribute__ ((weak))
-bool process_record_keymap(uint16_t keycode, keyrecord_t *record)
-{
- return true;
-}
-
-__attribute__ ((weak))
-bool process_record_encoder(uint16_t keycode, keyrecord_t *record)
-{
- return true;
-}
diff --git a/users/xulkal/process_records.h b/users/xulkal/process_records.h
deleted file mode 100644
index c219394f8e..0000000000
--- a/users/xulkal/process_records.h
+++ /dev/null
@@ -1,18 +0,0 @@
-#pragma once
-#include "quantum.h"
-#include "custom_tap_dance.h"
-
-enum layer_number {
- _QWERTY = 0,
-#ifndef GAMELAYER_DISABLE
- _GAME,
-#endif
- _LOWER,
- _RAISE,
-#ifdef TRILAYER_ENABLED
- _ADJUST
-#endif
-};
-
-bool process_record_keymap(uint16_t keycode, keyrecord_t *record);
-bool process_record_encoder(uint16_t keycode, keyrecord_t *record);
diff --git a/users/xulkal/rules.mk b/users/xulkal/rules.mk
deleted file mode 100644
index 7094191f2f..0000000000
--- a/users/xulkal/rules.mk
+++ /dev/null
@@ -1,32 +0,0 @@
-SRC += xulkal.c \
- process_records.c \
- custom_tap_dance.c
-
-# Some usual defaults
-MOUSEKEY_ENABLE = no # Mouse keys (+4700)
-EXTRAKEY_ENABLE = yes # Audio control and System control (+450)
-TAP_DANCE_ENABLE = yes
-
-ifneq ($(strip $(DISABLE_LTO)), yes)
- EXTRAFLAGS += -flto
- OPT_DEFS += -DNO_ACTION_MACRO
- OPT_DEFS += -DNO_ACTION_FUNCTION
-endif
-
-ifeq ($(strip $(ENCODER_ENABLE)), yes)
- SRC += custom_encoder.c
-endif
-
-ifneq ($(strip $(RGB_MATRIX_ENABLE)), no)
- OPT_DEFS += -DRGB_ENABLE
- SRC += custom_rgb.c
-endif
-
-ifeq ($(strip $(RGBLIGHT_ENABLE)), yes)
- OPT_DEFS += -DRGB_ENABLE
- SRC += custom_rgb.c
-endif
-
-ifeq ($(strip $(OLED_ENABLE)), yes)
- SRC += custom_oled.c
-endif
diff --git a/users/xulkal/xulkal.c b/users/xulkal/xulkal.c
deleted file mode 100644
index ea9b6bdbbe..0000000000
--- a/users/xulkal/xulkal.c
+++ /dev/null
@@ -1 +0,0 @@
-#include "xulkal.h"
diff --git a/users/xulkal/xulkal.h b/users/xulkal/xulkal.h
deleted file mode 100644
index 32df8df0c6..0000000000
--- a/users/xulkal/xulkal.h
+++ /dev/null
@@ -1,6 +0,0 @@
-#pragma once
-
-#include "process_records.h"
-#include "layouts.h"
-#include "custom_keycodes.h"
-#include "custom_tap_dance.h"
diff --git a/users/yanfali/config.h b/users/yanfali/config.h
deleted file mode 100644
index fa5ec42c09..0000000000
--- a/users/yanfali/config.h
+++ /dev/null
@@ -1,30 +0,0 @@
-#pragma once
-
-#ifdef KEYBOARD_evyd13_plain60
-
-#define AUDIO_PIN B7
-#ifdef AUDIO_ENABLE
- #define STARTUP_SONG SONG(GUITAR_SOUND)
-#endif
-
-#endif
-
-#ifdef KEYBOARD_xd84
-
-#undef RGBLED_NUM
-#define RGBLED_NUM 20
-
-#undef RGBLIGHT_EFFECT_BREATHING
-#undef RGBLIGHT_EFFECT_RAINBOW_MOOD
-#undef RGBLIGHT_EFFECT_RAINBOW_SWIRL
-#undef RGBLIGHT_EFFECT_SNAKE
-#undef RGBLIGHT_EFFECT_KNIGHT
-#undef RGBLIGHT_EFFECT_CHRISTMAS
-#undef RGBLIGHT_EFFECT_STATIC_GRADIENT
-#undef RGBLIGHT_EFFECT_RGB_TEST
-#undef RGBLIGHT_EFFECT_ALTERNATING
-#undef RGBLIGHT_EFFECT_TWINKLE
-#define RGBLIGHT_EFFECT_RAINBOW_MOOD
-#define RGBLIGHT_EFFECT_RAINBOW_SWIRL
-
-#endif
diff --git a/users/yanfali/rules.mk b/users/yanfali/rules.mk
deleted file mode 100644
index 6c0c48c764..0000000000
--- a/users/yanfali/rules.mk
+++ /dev/null
@@ -1,38 +0,0 @@
-BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite
-DYNAMIC_KEYMAP_ENABLE = no
-LTO_ENABLE = yes
-AUDIO_ENABLE = no
-
-# only enable audio on specific boards
-ifeq ($(strip $(KEYBOARD)), evyd13/plain60)
- AUDIO_ENABLE = yes
- CONSOLE_ENABLE = yes
- COMMAND_ENABLE = yes
-endif
-
-ifeq ($(strip $(KEYBOARD)), clueboard/60)
- AUDIO_ENABLE = yes
- CONSOLE_ENABLE = yes
- COMMAND_ENABLE = yes
-endif
-
-ifeq ($(strip $(KEYBOARD)), hadron/ver3)
- AUDIO_ENABLE = yes
- CONSOLE_ENABLE = yes
- COMMAND_ENABLE = yes
-endif
-
-ifeq ($(strip $(KEYBOARD)), fruity60)
- CONSOLE_ENABLE = yes
- COMMAND_ENABLE = no
-endif
-
-ifeq ($(strip $(KEYBOARD)), kbdfans/kbd75/rev1)
- COMMAND_ENABLE = no
-endif
-
-ifeq ($(strip $(KEYBOARD)), ai03/polaris)
- RGBLIGHT_ENABLE = no
- CONSOLE_ENABLE = yes
- COMMAND_ENABLE = yes
-endif
diff --git a/users/yanfali_wkl b/users/yanfali_wkl
deleted file mode 120000
index 491d08e433..0000000000
--- a/users/yanfali_wkl
+++ /dev/null
@@ -1 +0,0 @@
-yanfali \ No newline at end of file
diff --git a/users/yet-another-developer/.gitignore b/users/yet-another-developer/.gitignore
deleted file mode 100644
index d815569141..0000000000
--- a/users/yet-another-developer/.gitignore
+++ /dev/null
@@ -1,2 +0,0 @@
-secrets.c
-secrets.h \ No newline at end of file
diff --git a/users/yet-another-developer/README.md b/users/yet-another-developer/README.md
deleted file mode 100644
index 3e528bcf5d..0000000000
--- a/users/yet-another-developer/README.md
+++ /dev/null
@@ -1,7 +0,0 @@
-# User Space for yet-another-developer
-
-
-## Reference / Inspiration
- - /u/kuchosauronad0
- - /u/drashna
- - /u/not-quite-neo \ No newline at end of file
diff --git a/users/yet-another-developer/combo.c b/users/yet-another-developer/combo.c
deleted file mode 100644
index 0a58e02770..0000000000
--- a/users/yet-another-developer/combo.c
+++ /dev/null
@@ -1,27 +0,0 @@
-#include "combo.h"
-
-void process_combo_event(uint16_t combo_index, bool pressed){
- switch(combo_index) {
- case ZV_COPY:
- if (pressed) {
- tap_code16(LCTL(KC_C));
- }
- break;
- case XV_CUT:
- if (pressed) {
- tap_code16(LCTL(KC_X));
- }
- break;
-
- case CV_PASTE:
- if (pressed) {
- tap_code16(LCTL(KC_V));
- }
- break;
- case QP_SLEEP:
- if (pressed) {
- tap_code16(KC_SYSTEM_SLEEP);
- }
- break;
- }
-}
diff --git a/users/yet-another-developer/combo.h b/users/yet-another-developer/combo.h
deleted file mode 100644
index 6fb3eaf58c..0000000000
--- a/users/yet-another-developer/combo.h
+++ /dev/null
@@ -1,20 +0,0 @@
-#pragma once
-#include "quantum.h"
-enum combo_events {
- ZV_COPY,
- XV_CUT,
- CV_PASTE,
- QP_SLEEP
-};
-
-const uint16_t PROGMEM copy_combo[] = {KC_Z, KC_V, COMBO_END};
-const uint16_t PROGMEM cut_combo[] = {KC_X, KC_V, COMBO_END};
-const uint16_t PROGMEM paste_combo[] = {KC_C, KC_V, COMBO_END};
-const uint16_t PROGMEM sleep_combo[] = {KC_Q, KC_P, COMBO_END};
-
-combo_t key_combos[] = {
- [ZV_COPY] = COMBO_ACTION(copy_combo),
- [XV_CUT] = COMBO_ACTION(cut_combo),
- [CV_PASTE] = COMBO_ACTION(paste_combo),
- [QP_SLEEP] = COMBO_ACTION(sleep_combo),
-};
diff --git a/users/yet-another-developer/config.h b/users/yet-another-developer/config.h
deleted file mode 100644
index 4836822eb4..0000000000
--- a/users/yet-another-developer/config.h
+++ /dev/null
@@ -1,46 +0,0 @@
-#pragma once
-
-/* Set Polling rate to 1000Hz */
-#define USB_POLLING_INTERVAL_MS 1
-
-#ifndef ONESHOT_TAP_TOGGLE
- #define ONESHOT_TAP_TOGGLE 2
-#endif // !ONESHOT_TAP_TOGGLE
-
-#ifndef ONESHOT_TIMEOUT
- #define ONESHOT_TIMEOUT 2000
-#endif // !ONESHOT_TIMEOUT
-
-#if defined(LEADER_ENABLE)
- #define LEADER_PER_KEY_TIMING
- #define LEADER_TIMEOUT 250
-#endif // !LEADER_ENABLE
-
-#if defined(COMBO_ENABLE)
- #define COMBO_TERM 150
-#endif // !COMBO_ENABLE
-
-#if defined(NKRO_ENABLE)
- #define FORCE_NKRO
-#endif // !NKRO_ENABLE
-
-#undef PERMISSIVE_HOLD
-//#define QUICK_TAP_TERM 0
-//#define RETRO_TAPPING
-
-#ifndef TAPPING_TOGGLE
- #define TAPPING_TOGGLE 1
-#endif
-
-#ifdef TAPPING_TERM
-# undef TAPPING_TERM
-#endif // !TAPPING_TERM
-#if defined(KEYBOARD_ergodash)
- #define TAPPING_TERM 240
-#else
- #define TAPPING_TERM 200
-#endif
-
-#define TAP_CODE_DELAY 5 //DEFAULT: 100
-
-#define MACRO_TIMER 5
diff --git a/users/yet-another-developer/leader_user.c b/users/yet-another-developer/leader_user.c
deleted file mode 100644
index 53a7e2d7e5..0000000000
--- a/users/yet-another-developer/leader_user.c
+++ /dev/null
@@ -1,41 +0,0 @@
-#include "leader_user.h"
-
-void leader_end_user(void) {
- if (leader_sequence_two_keys(KC_V, KC_Z)){
- // vim: Zoom pane
- tap_code16(LCTL(KC_W));
- tap_code16(LSFT(KC_BSLS));
- }
-
- if (leader_sequence_two_keys(KC_V, KC_R)) {
- // vim: Substitute and place cursor
- SEND_STRING(":%s///g" SS_TAP(X_LEFT));
- tap_code(KC_LEFT);
- tap_code(KC_LEFT);
- }
-
- if (leader_sequence_two_keys(KC_V, KC_T)) {
- // vim: move current pane to new tab
- tap_code16(LCTL(KC_W));
- tap_code16(LSFT(KC_T));
- }
-
- if (leader_sequence_three_keys(KC_BSPC, KC_BSPC, KC_BSPC)){
- // Reset the keyboard
- reset_keyboard();
- }
-}
-
-// Runs constantly in the background, in a loop.
-void matrix_scan_user(void){
-
-#ifdef TAP_DANCE_ENABLE // Run Diablo 3 macro checking code.
-// run_diablo_macro_check();
-#endif // TAP_DANCE_ENABLE
-
-#ifdef RGBLIGHT_ENABLE
- matrix_scan_rgb();
-#endif // RGBLIGHT_ENABLE
-
- matrix_scan_keymap();
-}
diff --git a/users/yet-another-developer/leader_user.h b/users/yet-another-developer/leader_user.h
deleted file mode 100644
index 84cc6f65fa..0000000000
--- a/users/yet-another-developer/leader_user.h
+++ /dev/null
@@ -1,6 +0,0 @@
-#pragma once
-#include "yet-another-developer.h"
-
-#include "leader_user.h"
-
-void matrix_scan_user(void);
diff --git a/users/yet-another-developer/process_records.c b/users/yet-another-developer/process_records.c
deleted file mode 100644
index 7dba702bf5..0000000000
--- a/users/yet-another-developer/process_records.c
+++ /dev/null
@@ -1,193 +0,0 @@
-#include "yet-another-developer.h"
-
-uint16_t copy_paste_timer;
-
-__attribute__ ((weak))
-bool process_record_keymap(uint16_t keycode, keyrecord_t *record) {
- return true;
-}
-
-__attribute__ ((weak))
-bool process_record_secrets(uint16_t keycode, keyrecord_t *record) {
- return true;
-}
-
-// Defines actions for my global custom keycodes. Defined in yet-another-developer.h file
-// Then runs the _keymap's record handier if not processed here
-bool process_record_user(uint16_t keycode, keyrecord_t *record) {
-
- // If console is enabled, it will print the matrix position and status of each key pressed
-#ifdef KEYLOGGER_ENABLE
- #if defined(KEYBOARD_ergodox_ez) || defined(KEYBOARD_keebio_iris_rev2)
- xprintf("KL: kc: %u, col: %u, row: %u, pressed: %u\n", keycode, record->event.key.row, record->event.key.col, record->event.pressed);
- #else
- xprintf("KL: kc: %u, col: %u, row: %u, pressed: %u\n", keycode, record->event.key.col, record->event.key.row, record->event.pressed);
- #endif
-#endif //KEYLOGGER_ENABLE
-
- switch (keycode) {
- case KC_QWERTY ... KC_UNICODE:
- if (record->event.pressed) {
- set_single_persistent_default_layer(keycode - KC_QWERTY);
- }
- break;
-
- case KC_MAKE: // Compiles the firmware, and adds the flash command based on keyboard bootloader
- if (!record->event.pressed) {
- clear_mods();
- clear_oneshot_mods();
- send_string_with_delay_P(PSTR("make " QMK_KEYBOARD ":" QMK_KEYMAP), TAP_CODE_DELAY);
- {
- send_string_with_delay_P(PSTR(":flash"), TAP_CODE_DELAY);
- }
- }
- break;
-
- /* Tap Dance */
- case MC_QT1: // ""
- if(record->event.pressed){
- SEND_STRING("\"\"");
- tap_code(KC_LEFT);
- }
- break;
- case MC_QT2: // ''
- if(record->event.pressed){
- SEND_STRING("''");
- tap_code(KC_LEFT);
- }
- break;
- case MC_QT3: // `'
- if(record->event.pressed){
- SEND_STRING("`'");
- tap_code(KC_LEFT);
- }
- break;
- case MC_PAR: // Parenthesis
- if(record->event.pressed){
- SEND_STRING("()");
- tap_code(KC_LEFT);
- }
- break;
- case MC_CUR: // Curly bracket
- if(record->event.pressed){
- SEND_STRING("{}");
- tap_code(KC_LEFT);
- }
- break;
- case MC_SQR: // Square bracket
- if(record->event.pressed){
- SEND_STRING("[]");
- tap_code(KC_LEFT);
- }
- break;
- case MC_ABR: // Angle bracket
- if(record->event.pressed){
- SEND_STRING("<>");
- tap_code(KC_LEFT);
- }
- break;
- case MCT_NEW: // New Tmux Session
- if(record->event.pressed){
- SEND_STRING(":neww");
- tap_code(KC_ENT);
- }
- break;
- case MCT_SH: // Tmux horizontal split
- if(record->event.pressed){
- SEND_STRING("%");
- }
- break;
- case MCT_SV: // Tmux vertical split
- if(record->event.pressed){
- SEND_STRING("\"");
- }
- break;
- case MCT_ZM: // Tmux zoom
- if(record->event.pressed){
- tap_code(KC_Z);
- }
- break;
- case MCT_SCR: // Tmux scroll mode
- if(record->event.pressed){
- tap_code(KC_PGUP);
- }
- break;
- case MCT_UP: // Tmux up
- break;
- case MCT_DW: // Tmux down
- break;
- case MCT_LFT: // Tmux left
- break;
- case MCT_RGT: // Tmux right
- tap_code(KC_RIGHT);
- break;
- case MCV_B: // Vim begin of line
- if(record->event.pressed){
- tap_code(KC_0);
- }
- break;
- case MCV_E: // Vim end of line
- if(record->event.pressed){
- SEND_STRING(":vsplit");
- tap_code(KC_ENT);
- }
- break;
- case MCT_F: // Vim for loop
- if(record->event.pressed){
- SEND_STRING(":help");
- tap_code(KC_ENT);
- }
- break;
-
- case VRSN: // Prints firmware version
- if (record->event.pressed) {
- send_string_with_delay_P(PSTR(QMK_KEYBOARD "/" QMK_KEYMAP " @ " QMK_VERSION ", Built on: " QMK_BUILDDATE), TAP_CODE_DELAY);
- }
- break;
-
-
- case KC_CCCV: // One key copy/paste
- if (record->event.pressed) {
- copy_paste_timer = timer_read();
- } else {
- if (timer_elapsed(copy_paste_timer) > TAPPING_TERM) { // Hold, copy
- register_code(KC_LCTL);
- tap_code(KC_C);
- unregister_code(KC_LCTL);
- } else { // Tap, paste
- register_code(KC_LCTL);
- tap_code(KC_V);
- unregister_code(KC_LCTL);
- }
- }
- break;
-#ifdef UNICODE_ENABLE
- case UC_FLIP:
- if (record->event.pressed) {
- send_unicode_string("(ノಠ痊ಠ)ノ彡┻━┻");
- }
- break;
- case UC_TABL:
- if (record->event.pressed) {
- send_unicode_string("┬─┬ノ( º _ ºノ)");
- }
- break;
- case UC_SHRG:
- if (record->event.pressed) {
- send_unicode_string("¯\\_(ツ)_/¯");
- }
- break;
- case UC_DISA:
- if (record->event.pressed) {
- send_unicode_string("ಠ_ಠ");
- }
- break;
-#endif // UNICODE_ENABLE
- }
-
- return process_record_keymap(keycode, record) &&
-#if defined(RGBLIGHT_ENABLE) || defined(RGB_MATRIX_ENABLE)
- process_record_user_rgb(keycode, record) &&
-#endif // RGBLIGHT_ENABLE
- process_record_secrets(keycode, record);
-}
diff --git a/users/yet-another-developer/process_records.h b/users/yet-another-developer/process_records.h
deleted file mode 100644
index d4b9e21326..0000000000
--- a/users/yet-another-developer/process_records.h
+++ /dev/null
@@ -1,109 +0,0 @@
-#pragma once
-#include "yet-another-developer.h"
-
-#if defined(KEYMAP_SAFE_RANGE)
-# define PLACEHOLDER_SAFE_RANGE KEYMAP_SAFE_RANGE
-#else
-# define PLACEHOLDER_SAFE_RANGE SAFE_RANGE
-#endif
-
-enum userspace_custom_keycodes {
- VRSN = PLACEHOLDER_SAFE_RANGE, // Prints QMK Firmware and board info
- KC_QWERTY, // Sets default layer to QWERTY
- KC_COLEMAK, // Sets default layer to COLEMAK
- KC_DVORAK, // Sets default layer to DVORAK
- KC_WORKMAN, // Sets default layer to WORKMAN
- KC_UNICODE, // Sets default layer to UNICOD
-
- KC_MAKE, // Run keyboard's customized make command
- KC_SECRET_1, // test1
- KC_SECRET_2, // test2
- KC_SECRET_3, // test3
- KC_SECRET_4, // test4
- KC_SECRET_5, // test5
- KC_CCCV, // Hold to copy, tap to paste
- KC_NUKE, // NUCLEAR LAUNCH DETECTED!!!
- UC_FLIP, // (ಠ痊ಠ)┻━┻
- UC_TABL, // ┬─┬ノ( º _ ºノ)
- UC_SHRG, // ¯\_(ツ)_/¯
- UC_DISA, // ಠ_ಠ
-
- MC_QT1, // ""
- MC_QT2, // ''
- MC_QT3, // `'
- MC_PAR, // Parenthesis
- MC_CUR, // Curly bracket
- MC_SQR, // Square bracket
- MC_ABR, // Angle bracket
- MCT_NEW, // New Tmux Session
- MCT_SH, // Tmux horizontal split
- MCT_SV, // Tmux vertical split
- MCT_ZM, // Tmux zoom
- MCT_SCR, // Tmux scroll mode
- MCT_UP, // Tmux up
- MCT_DW, // Tmux down
- MCT_LFT, // Tmux left
- MCT_RGT, // Tmux right
- MCV_B, // Vim begin of line
- MCV_E, // Vim end of line
- MCT_F, // Vim for loop
- MCG_A, // Git add
- MCG_C, // Git commit
- MCG_P, // Git push
- MCG_R, // Git revert
- MCG_L, // Git log
- MCG_S, // Git status
-
- NEW_SAFE_RANGE // use "NEWPLACEHOLDER for keymap specific codes
-};
-
-bool process_record_secrets(uint16_t keycode, keyrecord_t *record);
-bool process_record_keymap( uint16_t keycode, keyrecord_t *record);
-
-#define LOWER MO(_LOWER)
-#define RAISE MO(_RAISE)
-#define ADJUST MO(_ADJUST)
-#define TG_MODS TG(_MODS)
-#define OS_LWR OSL(_LOWER)
-#define OS_RSE OSL(_RAISE)
-#define OS_UNI OSL(_UNICODE)
-
-#define KC_SEC1 KC_SECRET_1
-#define KC_SEC2 KC_SECRET_2
-#define KC_SEC3 KC_SECRET_3
-#define KC_SEC4 KC_SECRET_4
-#define KC_SEC5 KC_SECRET_5
-
-#define QWERTY KC_QWERTY
-#define DVORAK KC_DVORAK
-#define COLEMAK KC_COLEMAK
-#define WORKMAN KC_WORKMAN
-#define UNICODE KC_UNICODE
-
-#define KC_RESET QK_BOOT
-#define KC_RST KC_RESET
-
-#define BK_LWER LT(_LOWER, KC_BSPC)
-#define SP_LWER LT(_LOWER, KC_SPC)
-#define DL_RAIS LT(_RAISE, KC_DEL)
-#define ET_RAIS LT(_RAISE, KC_ENTER)
-
-/* OSM keycodes, to keep things clean and easy to change */
-#define KC_MLSF OSM(MOD_LSFT)
-#define KC_MRSF OSM(MOD_RSFT)
-
-#define OS_LGUI OSM(MOD_LGUI)
-#define OS_RGUI OSM(MOD_RGUI)
-#define OS_LSFT OSM(MOD_LSFT)
-#define OS_RSFT OSM(MOD_RSFT)
-#define OS_LCTL OSM(MOD_LCTL)
-#define OS_RCTL OSM(MOD_RCTL)
-#define OS_LALT OSM(MOD_LALT)
-#define OS_RALT OSM(MOD_RALT)
-#define OS_MEH OSM(MOD_MEH)
-#define OS_HYPR OSM(MOD_HYPR)
-
-#define ALT_APP ALT_T(KC_APP)
-
-#define UC_IRNY UC(0x2E2E)
-#define UC_CLUE UC(0x203D)
diff --git a/users/yet-another-developer/rules.mk b/users/yet-another-developer/rules.mk
deleted file mode 100644
index 9afa78e3f7..0000000000
--- a/users/yet-another-developer/rules.mk
+++ /dev/null
@@ -1,50 +0,0 @@
-SRC += yet-another-developer.c \
- process_records.c
-
-LTO_ENABLE = yes
-SPACE_CADET_ENABLE = no
-
-ifeq ($(strip $(TAP_DANCE_ENABLE)), yes)
- SRC += tap_dances.c
-endif
-
-ifeq ($(strip $(COMBO_ENABLE)), yes)
- SRC += combo.c
-endif
-
-
-ifeq ($(strip $(LEADER_ENABLE)), yes)
- SRC += leader_user.c
-endif
-
-
-ifneq ("$(wildcard $(USER_PATH)/secrets.c)","")
- SRC += secrets.c
-endif
-
-
-ifeq ($(strip $(NO_SECRETS)), yes)
- OPT_DEFS += -DNO_SECRETS
-endif
-
-
-ifeq ($(strip $(UNICODEMAP_ENABLE)), yes)
- SRC += unicode.c
-endif
-
-
-ifeq ($(strip $(MACROS_ENABLED)), yes)
- OPT_DEFS += -DMACROS_ENABLED
-endif
-
-
-ifdef CONSOLE_ENABLE
- ifeq ($(strip $(KEYLOGGER_ENABLE)), yes)
- OPT_DEFS += -DKEYLOGGER_ENABLE
- endif
-endif
-
-
-ifeq ($(strip $(MAKE_BOOTLOADER)), yes)
- OPT_DEFS += -DMAKE_BOOTLOADER
-endif
diff --git a/users/yet-another-developer/tap_dances.c b/users/yet-another-developer/tap_dances.c
deleted file mode 100644
index cde0cb832e..0000000000
--- a/users/yet-another-developer/tap_dances.c
+++ /dev/null
@@ -1,55 +0,0 @@
-#include "tap_dances.h"
-
-void td_parenthesis (tap_dance_state_t *state, void *user_data) {
- if (state->count == 1) {
-// SEND_STRING ("\(");
- tap_code(KC_QUOT);
- reset_tap_dance (state);
- }
- else if (state->count == 2) {
- SEND_STRING("()" SS_TAP(X_LEFT));
- reset_tap_dance (state);
- }
- else if (state->count == 3) {
- SEND_STRING("[]" SS_TAP(X_LEFT));
- reset_tap_dance (state);
- }
- else if (state->count == 4) {
- SEND_STRING("{}" SS_TAP(X_LEFT));
- reset_tap_dance (state);
- }
- else if (state->count >= 5) {
- SEND_STRING("<>" SS_TAP(X_LEFT));
- reset_tap_dance (state);
- }
-}
-
-void safe_reset(tap_dance_state_t *state, void *user_data) {
- if (state->count >= 3) {
- // Reset the keyboard if you tap the key more than three times
- reset_keyboard();
- reset_tap_dance(state);
- }
-}
-
-tap_dance_action_t tap_dance_actions[] = {
- [TD_RESET] = ACTION_TAP_DANCE_FN(safe_reset),
- [TD_NUM1] = ACTION_TAP_DANCE_DOUBLE(KC_1, KC_4),
- [TD_NUM2] = ACTION_TAP_DANCE_DOUBLE(KC_2, KC_5),
- [TD_NUM3] = ACTION_TAP_DANCE_DOUBLE(KC_3, KC_6),
- [TD_QT1] = ACTION_TAP_DANCE_DOUBLE(KC_QUOT, MC_QT1),
- [TD_QT2] = ACTION_TAP_DANCE_DOUBLE(LSFT(KC_QUOT), MC_QT2),
- [TD_QT3] = ACTION_TAP_DANCE_DOUBLE(KC_GRV, MC_QT3),
-
- [TD_EOL] = ACTION_TAP_DANCE_DOUBLE(KC_E, MC_EOL), // end of line
- [TD_BOL] = ACTION_TAP_DANCE_DOUBLE(KC_A, MC_BOL), // beginning of line
- [TD_NW] = ACTION_TAP_DANCE_DOUBLE(KC_F, MC_NW), // next word
- [TD_PW] = ACTION_TAP_DANCE_DOUBLE(KC_B, MC_PW), // pevious word
- [TD_DW] = ACTION_TAP_DANCE_DOUBLE(KC_W, MC_DW), // pevious word
-
- [TD_SPC] = ACTION_TAP_DANCE_FN(td_parenthesis), // \(, (), [], {}, <>
- [TD_PAR] = ACTION_TAP_DANCE_DOUBLE(KC_LPRN, MC_PAR), // ()
- [TD_SQR] = ACTION_TAP_DANCE_DOUBLE(KC_LBRC, MC_SQR), // []
- [TD_CUR] = ACTION_TAP_DANCE_DOUBLE(LSFT(KC_LCBR), MC_CUR),// {}
- [TD_ABR] = ACTION_TAP_DANCE_DOUBLE(LSFT(KC_COMM), MC_ABR),//
-};
diff --git a/users/yet-another-developer/tap_dances.h b/users/yet-another-developer/tap_dances.h
deleted file mode 100644
index ca925e71bd..0000000000
--- a/users/yet-another-developer/tap_dances.h
+++ /dev/null
@@ -1,26 +0,0 @@
-#pragma once
-#include "yet-another-developer.h"
-
-#ifdef TAP_DANCE_ENABLE
-enum {
- TD_RESET = 0,
- TD_SPC, // for special function td_parenthesis testing
- TD_NUM1, // compact gaming numpad
- TD_NUM2, //
- TD_NUM3, //
- TD_TMX, // tmux control sequence
- TD_EOL, // end of line
- TD_BOL, // beginning of line
- TD_NW, // next word
- TD_PW, // pevious word
- TD_DW, // delete word
- TD_QT1, // single double quote for '
- TD_QT2, // single double quote for "
- TD_QT3, // single double quote for `
- TD_PAR, // single double parenthesis
- TD_CUR, // single double curly braces
- TD_SQR, // single double square brackets
- TD_ABR // single double angle brackets
-};
-#endif // TAP_DANCE_ENABLE
-void td_parenthesis (tap_dance_state_t *state, void *user_data);
diff --git a/users/yet-another-developer/unicode.c b/users/yet-another-developer/unicode.c
deleted file mode 100644
index f0168cef9f..0000000000
--- a/users/yet-another-developer/unicode.c
+++ /dev/null
@@ -1,62 +0,0 @@
-#include "unicode.h"
-
-//#ifdef UNICODEMAP_ENABLE
-const uint32_t unicode_map[] PROGMEM = {
- [BANG] = 0x0203D,// ‽
- [IRONY] = 0x02E2E,// ⸮
- [DEGREE] = 0x000B0,// °
- [THINK] = 0x1F914,// 🤔
- [GRIN] = 0x1F600,// �
- [MONOCL] = 0x1F9D0,// 🧐
- [DRUG0] = 0x1F92A,// 🤪
- [DRUG1] = 0x1F974,// 🥴
- [CLOWN] = 0x1F921,// 🤡
- [MNDBLWN] = 0x1F92F,// 🤯
- [MONEY] = 0x1F911,// 🤑
- [SHTUP] = 0x1F910,// 🤐
- [PARTY] = 0x1F973,// 🥳
- [SMRK] = 0x1F60F,// 😏
- [WEARY] = 0x1F629,// 😩
- [UNAMU] = 0x1F612,// 😒
- [SPY] = 0x1F575,//🕵
- [DAFUQ] = 0x1F47A,// 👺
- [FIST0] = 0x1F91B,// 🤛
- [FIST1] = 0x1F91C,// 🤜
- [FIST2] = 0x270A, // ✊
- [FIST3] = 0x1F44A,// 👊
- [WIFIHAND] = 0x1F44B,// 👋
- [OKOK] = 0x1F44C,// 👌
- [EFFU] = 0x1F595,// 🖕
- [SPOCK] = 0x1F596,// 🖖
- [INUP] = 0x1F446,// 👆
- [THDN] = 0x1F44E,// 👎
- [THUP] = 0x1F44D,// 👍
- [TUMBLER] = 0x1F943,// 🥃
- [DRAGON0] = 0x1F409,// 🐉
- [DRAGON1] = 0x1F432,// 🐲
- [TIGER0] = 0x1F405,// 🐅
- [TIGER1] = 0x1F42F,// 🐯
- [COOL] = 0x1F192,// 🆒
- [UCHART] = 0x1F4C8,// 📈
- [DCHART] = 0x1F4C9,// 📉
- [BCHART] = 0x1F4CA,// 📊
- [NOPRCY] = 0x1F572,// 🕲
- [PRCY] = 0x1F571,// 🕱
- [BBB] = 0x1F171,// 🅱
- [POO] = 0x1F4A9,// 💩
- [HUNDR] = 0x1F4AF,// 💯
- [EGGPL] = 0x1F346,// 🍆
- [WATER] = 0x1F4A6,// 💦
- [LIT] = 0x1F525,// 🔥
- [SNEK] = 0x1F40D,// 🐍
- [PENGUIN] = 0x1F427,// 🐧
- [BOAR] = 0x1F417,// 🐗
- [MONKEY] = 0x1F412,// 🐒
- [CHICK] = 0x1F425,// 🐥
- [DASH] = 0x1F4A8,// 💨
- [DIZZY] = 0x1F4AB,// 💫
- [KEEB] = 0x1F5AE,// 🖮
- [HOLE] = 0x1F573,// 🕳
- [SAUCER] = 0x1F6F8// 🛸
- };
-//#endif // UNICODEMAP_ENABLE
diff --git a/users/yet-another-developer/unicode.h b/users/yet-another-developer/unicode.h
deleted file mode 100644
index 340b4cf94b..0000000000
--- a/users/yet-another-developer/unicode.h
+++ /dev/null
@@ -1,64 +0,0 @@
-#pragma once
-
-#include "quantum.h"
-
-#ifdef UNICODEMAP_ENABLE
-enum unicode_name {
-OKOK, //
-BANG, // ‽
-IRONY, // ⸮
-DEGREE, // °
-THINK, // 🤔
-GRIN, // �
-MONOCL, // 🧐
-DRUG0, // 🤪
-DRUG1, // 🥴
-CLOWN, // 🤡
-MNDBLWN, // 🤯
-MONEY, // 🤑
-SHTUP, // 🤐
-PARTY, // 🥳
-SMRK, // 😏
-WEARY, // 😩
-UNAMU, // 😒
-SPY, // 🕵
-DAFUQ, // 👺
-FIST0, // 🤛
-FIST1, // 🤜
-FIST2, // ✊
-FIST3, // 👊
-WIFIHAND, // 👌
-EFFU, // 🖕
-SPOCK, // 🖖
-INUP, // 👆
-THDN, // 👎
-THUP, // 👍
-TUMBLER, // 🥃
-DRAGON0, // 🐉
-DRAGON1, // 🐅
-TIGER0, // 🐅
-TIGER1, // 🐯
-COOL, // 🆒
-UCHART, // 📈
-DCHART, // 📉
-BCHART, // 📊
-NOPRCY, // 🕲
-PRCY, // 🕱
-BBB, // 🅱
-POO, // 💩
-HUNDR, // 💯
-EGGPL, // 🍆
-WATER, // 💦
-LIT, // 🔥
-SNEK, // 🐍
-PENGUIN, // 🐧
-BOAR, // 🐗
-MONKEY, // 🐒
-CHICK, // 🐥
-DASH, // 💨
-DIZZY, // 💫
-KEEB, // 🖮
-HOLE, // 🕳
-SAUCER // 🛸
-};
-#endif
diff --git a/users/yet-another-developer/wrappers.h b/users/yet-another-developer/wrappers.h
deleted file mode 100644
index 776da0c77e..0000000000
--- a/users/yet-another-developer/wrappers.h
+++ /dev/null
@@ -1,166 +0,0 @@
-#pragma once
-#include "yet-another-developer.h"
-
-/*
-Since our quirky block definitions are basically a list of comma separated
-arguments, we need a wrapper in order for these definitions to be
-expanded before being used as arguments to the LAYOUT_xxx macro.
-*/
-#if (!defined(LAYOUT) && defined(KEYMAP))
-# define LAYOUT KEYMAP
-#endif
-
-// clang-format off
-
-#define KEYMAP_wrapper(...) LAYOUT(__VA_ARGS__)
-#define LAYOUT_wrapper(...) LAYOUT(__VA_ARGS__)
-#define LAYOUT_ortho_5x14_wrapper(...) LAYOUT_ortho_5x14(__VA_ARGS__)
-
-/* ---------- LEFT HAND ----------- ---------- RIGHT HAND ---------- */
-#define LAYOUT_ergodash_pretty( \
- L00, L01, L02, L03, L04, L05, L06, R00, R01, R02, R03, R04, R05, R06, \
- L10, L11, L12, L13, L14, L15, L16, R10, R11, R12, R13, R14, R15, R16, \
- L20, L21, L22, L23, L24, L25, L26, R20, R21, R22, R23, R24, R25, R26, \
- L30, L31, L32, L33, L34, L35, R31, R32, R33, R34, R35, R36, \
- L40, L41, L42, L43, R43, R44, R45, R46, \
- L36, R30, \
- L44, L45, L46, R40, R41, R42 \
- ) \
- { \
- { L00, L01, L02, L03, L04, L05, L06 }, \
- { L10, L11, L12, L13, L14, L15, L16 }, \
- { L20, L21, L22, L23, L24, L25, L26 }, \
- { L30, L31, L32, L33, L34, L35, L36 }, \
- { L40, L41, L42, L43, L44, L45, L46 }, \
- { R06, R05, R04, R03, R02, R01, R00 }, \
- { R16, R15, R14, R13, R12, R11, R10 }, \
- { R26, R25, R24, R23, R22, R21, R20 }, \
- { R36, R35, R34, R33, R32, R31, R30 }, \
- { R46, R45, R44, R43, R42, R41, R40 } \
- }
-
-/*
-Blocks for each of the four major keyboard layouts
-Organized so we can quickly adapt and modify all of them
-at once, rather than for each keyboard, one at a time.
-And this allows for much cleaner blocks in the keymaps.
-For instance Tap/Hold for Control on all of the layouts
-
-NOTE: These are all the same length. If you do a search/replace
- then you need to add/remove underscores to keep the
- lengths consistent.
-*/
-
-#define _________________QWERTY_L1_________________ KC_Q, KC_W, KC_E, KC_R, KC_T
-#define _________________QWERTY_L2_________________ KC_A, KC_S, KC_D, KC_F, KC_G
-#define _________________QWERTY_L3_________________ KC_Z, KC_X, KC_C, KC_V, KC_B
-
-#define _________________QWERTY_R1_________________ KC_Y, KC_U, KC_I, KC_O, KC_P
-#define _________________QWERTY_R2_________________ KC_H, KC_J, KC_K, KC_L, KC_SCLN
-#define _________________QWERTY_R3_________________ KC_N, KC_M, KC_COMM, KC_DOT, KC_SLASH
-
-
-#ifdef TAP_DANCE_ENABLE
- #define _________________COLEMAK_L1________________ KC_Q, KC_W, KC_F, KC_P, KC_G
- #define _________________COLEMAK_L2________________ KC_BOL, KC_R, KC_S, KC_T, KC_D
- #define _________________COLEMAK_L3________________ KC_Z, KC_X, KC_C, KC_V, KC_B
-
- #define _________________COLEMAK_R1________________ KC_J, KC_L, KC_U, KC_Y, KC_SCLN
- #define _________________COLEMAK_R2________________ KC_H, KC_N, KC_E, KC_I, KC_O
- #define _________________COLEMAK_R3________________ KC_K, KC_M, KC_COMM, KC_DOT, KC_SLASH
-#else
- #define _________________COLEMAK_L1________________ KC_Q, KC_W, KC_F, KC_P, KC_G
- #define _________________COLEMAK_L2________________ KC_A, KC_R, KC_S, KC_T, KC_D
- #define _________________COLEMAK_L3________________ KC_Z, KC_X, KC_C, KC_V, KC_B
-
- #define _________________COLEMAK_R1________________ KC_J, KC_L, KC_U, KC_Y, KC_SCLN
- #define _________________COLEMAK_R2________________ KC_H, KC_N, KC_E, KC_I, KC_O
- #define _________________COLEMAK_R3________________ KC_K, KC_M, KC_COMM, KC_DOT, KC_SLASH
-#endif
-
-
-
-
-#define _________________DVORAK_L1_________________ KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y
-#define _________________DVORAK_L2_________________ KC_A, KC_O, KC_E, KC_U, KC_I
-#define _________________DVORAK_L3_________________ KC_SCLN, KC_Q, KC_J, KC_K, KC_X
-
-#define _________________DVORAK_R1_________________ KC_F, KC_G, KC_C, KC_R, KC_L
-#define _________________DVORAK_R2_________________ KC_D, KC_H, KC_T, KC_N, KC_S
-#define _________________DVORAK_R3_________________ KC_B, KC_M, KC_W, KC_V, KC_Z
-
-
-#define _________________WORKMAN_L1________________ KC_Q, KC_D, KC_R, KC_W, KC_B
-#define _________________WORKMAN_L2________________ KC_A, KC_S, KC_H, KC_T, KC_G
-#define _________________WORKMAN_L3________________ KC_Z, KC_X, KC_M, KC_C, KC_V
-
-#define _________________WORKMAN_R1________________ KC_J, KC_F, KC_U, KC_P, KC_SCLN
-#define _________________WORKMAN_R2________________ KC_Y, KC_N, KC_E, KC_O, KC_I
-#define _________________WORKMAN_R3________________ KC_K, KC_L, KC_COMM, KC_DOT, KC_SLASH
-
-// #define _________________WHITE_R1__________________ KC_V, KC_Y, KC_D, KC_COMM, KC_QUOT
-// #define _________________WHITE_R2__________________ KC_A, KC_T, KC_H, KC_E, KC_B
-// #define _________________WHITE_R3__________________ KC_P, KC_K, KC_G, KC_W, KC_Q
-
-// #define _________________WHITE_L1__________________ KC_INT1, KC_J, KC_M, KC_L, KC_U
-// #define _________________WHITE_L2__________________ KC_MINS, KC_C, KC_S, KC_N, KC_O // KC_I
-// #define _________________WHITE_L3__________________ KC_X, KC_R, KC_F, KC_DOT, KC_Z
-
-
-#ifdef UNICODE_ENABLE
-#define _______________UNICODE_L1__________________ UC_DISA,UC_DISA, UC_DISA, UC_DISA, UC_DISA
-#define _______________UNICODE_L2__________________ UC_DISA,UC_DISA, UC_DISA, UC_DISA, UC_DISA
-#define _______________UNICODE_L3__________________ UC_DISA,UC_DISA, UC_DISA, UC_DISA, UC_DISA
-
-#define _______________UNICODE_R1__________________ UC_SHRG, UC_SHRG, UC_SHRG, UC_SHRG, UC_SHRG
-#define _______________UNICODE_R2__________________ UC_SHRG, UC_SHRG, UC_SHRG, UC_SHRG, UC_SHRG
-#define _______________UNICODE_R3__________________ UC_SHRG, UC_SHRG, UC_SHRG, UC_SHRG, UC_SHRG
-#endif
-
-#ifdef UNICODEMAP_ENABLE
-#define _______________UNICODE_L1__________________ UM(SMRK), UM(THINK), UM(CLOWN), UM(HUNDR), UM(BANG)
-#define _______________UNICODE_L2__________________ UM(GRIN), UM(MONKEY), UM(OKOK), UM(EGGPL), UM(LIT)
-#define _______________UNICODE_L3__________________ UM(WEARY), UM(UNAMU), UM(EFFU), UM(MONOCL), UM(IRONY)
-
-#define _______________UNICODE_R1__________________ UM(DRUG0), UM(THUP), UM(INUP), UM(DIZZY), UM(COOL)
-#define _______________UNICODE_R2__________________ UM(FIST0), UM(FIST2),UM(FIST3),UM(FIST1), UM(OKOK)
-#define _______________UNICODE_R3__________________ UM(MNDBLWN), UM(THDN), UM(SPOCK),UM(HOLE), UM(DASH)
-#endif
-
-#define ________________NUMBER_LEFT________________ KC_1, KC_2, KC_3, KC_4, KC_5
-#define ________________NUMBER_RIGHT_______________ KC_6, KC_7, KC_8, KC_9, KC_0
-#define _________________FUNC_LEFT_________________ KC_F1, KC_F2, KC_F3, KC_F4, KC_F5
-#define _________________FUNC_RIGHT________________ KC_F6, KC_F7, KC_F8, KC_F9, KC_F10
-
-#define ___________________BLANK___________________ _______, _______, _______, _______, _______
-
-
-#define _________________LOWER_L1__________________ KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC
-#define _________________LOWER_L2__________________ _________________FUNC_LEFT_________________
-#define _________________LOWER_L3__________________ _________________FUNC_RIGHT________________
-
-#define _________________LOWER_R1__________________ KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN
-#define _________________LOWER_R2__________________ OS_UNI, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR
-#define _________________LOWER_R3__________________ _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT
-
-
-
-#define _________________RAISE_L1__________________ ________________NUMBER_LEFT________________
-#define _________________RAISE_L2__________________ ___________________BLANK___________________
-#define _________________RAISE_L3__________________ ___________________BLANK___________________
-
-#define _________________RAISE_R1__________________ ________________NUMBER_RIGHT_______________
-#define _________________RAISE_R2__________________ _______, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC
-#define _________________RAISE_R3__________________ _______, KC_HOME, KC_PGDN, KC_PGUP, KC_END
-
-
-
-#define _________________ADJUST_L1_________________ ___________________BLANK___________________
-#define _________________ADJUST_L2_________________ _________________FUNC_LEFT_________________
-#define _________________ADJUST_L3_________________ _______, QWERTY, COLEMAK, DVORAK, WORKMAN
-
-#define _________________ADJUST_R1_________________ KC_SEC1, KC_SEC2, KC_SEC3, KC_SEC4, KC_SEC5
-#define _________________ADJUST_R2_________________ _________________FUNC_RIGHT________________
-#define _________________ADJUST_R3_________________ KC_MUTE, KC_MUTE, KC_VOLD, KC_VOLU, KC_MNXT
-
-// clang-format on
diff --git a/users/yet-another-developer/yet-another-developer.c b/users/yet-another-developer/yet-another-developer.c
deleted file mode 100644
index 0e62d0cc88..0000000000
--- a/users/yet-another-developer/yet-another-developer.c
+++ /dev/null
@@ -1,160 +0,0 @@
-#include "quantum.h"
-#include "yet-another-developer.h"
-
-userspace_config_t userspace_config;
-
-#if (defined(UNICODE_ENABLE) || defined(UNICODEMAP_ENABLE) || defined(UCIS_ENABLE))
- #define YAD_UNICODE_MODE UNICODE_MODE_WINDOWS
-#else
-// set to 2 for UNICODE_MODE_WINDOWS, set to 4 for UNICODE_MODE_WINCOMPOSE
- #define YAD_UNICODE_MODE 2
-#endif
-
-
-bool mod_key_press_timer(uint16_t code, uint16_t mod_code, bool pressed) {
- static uint16_t this_timer;
- if (pressed) {
- this_timer = timer_read();
- } else {
- if (timer_elapsed(this_timer) < TAPPING_TERM) {
- tap_code(code);
- } else {
- register_code(mod_code);
- tap_code(code);
- unregister_code(mod_code);
- }
- }
- return false;
-}
-
-bool mod_key_press(uint16_t code, uint16_t mod_code, bool pressed, uint16_t this_timer) {
- if (pressed) {
- this_timer = timer_read();
- } else {
- if (timer_elapsed(this_timer) < TAPPING_TERM) {
- tap_code(code);
- } else {
- register_code(mod_code);
- tap_code(code);
- unregister_code(mod_code);
- }
- }
- return false;
-}
-
-// Add reconfigurable functions here, for keymap customization
-// This allows for a global, userspace functions, and continued
-// customization of the keymap. Use _keymap instead of _user
-// functions in the keymaps
-__attribute__ ((weak))
-void matrix_init_keymap(void) {}
-
-// Call user matrix init, set default RGB colors and then
-// call the keymap's init function
-void matrix_init_user(void) {
- userspace_config.raw = eeconfig_read_user();
-
- #if (defined(UNICODE_ENABLE) || defined(UNICODEMAP_ENABLE) || defined(UCIS_ENABLE))
- set_unicode_input_mode(YAD_UNICODE_MODE);
- get_unicode_input_mode();
- #endif //UNICODE_ENABLE
-
- matrix_init_keymap();
-}
-
-__attribute__((weak))
-void keyboard_post_init_keymap(void) {}
-
-void keyboard_post_init_user(void) {
-#ifdef RGBLIGHT_ENABLE
- keyboard_post_init_rgb();
-#endif
- keyboard_post_init_keymap();
-}
-
-__attribute__((weak))
-void suspend_power_down_keymap(void) {}
-
-void suspend_power_down_user(void) {
- suspend_power_down_keymap();
-}
-
-__attribute__((weak))
-void suspend_wakeup_init_keymap(void) {}
-
-void suspend_wakeup_init_user(void) {
- suspend_wakeup_init_keymap();
-}
-
-__attribute__((weak))
-void matrix_scan_keymap(void) {}
-
-__attribute__ ((weak))
-void matrix_scan_user(void){
-
-#ifdef TAP_DANCE_ENABLE // Run Diablo 3 macro checking code.
-// run_diablo_macro_check();
-#endif // TAP_DANCE_ENABLE
-
-#ifdef RGBLIGHT_ENABLE
- matrix_scan_rgb();
-#endif // RGBLIGHT_ENABLE
-
- matrix_scan_keymap();
-}
-
-__attribute__((weak))
-layer_state_t layer_state_set_keymap(layer_state_t state) {
- return state;
-}
-
-// on layer change, no matter where the change was initiated
-// Then runs keymap's layer change check
-layer_state_t layer_state_set_user(layer_state_t state) {
- state = update_tri_layer_state(state, _RAISE, _LOWER, _ADJUST);
-#ifdef RGBLIGHT_ENABLE
- state = layer_state_set_rgb(state);
-#endif // RGBLIGHT_ENABLE
- return layer_state_set_keymap(state);
-}
-
-__attribute__((weak))
-layer_state_t default_layer_state_set_keymap(layer_state_t state) {
- return state;
-}
-
-// Runs state check and changes underglow color and animation
-layer_state_t default_layer_state_set_user(layer_state_t state) {
- state = default_layer_state_set_keymap(state);
-#if 0
-#ifdef RGBLIGHT_ENABLE
- state = default_layer_state_set_rgb(state);
-#endif // RGBLIGHT_ENABLE
-#endif
- return state;
-}
-
-__attribute__ ((weak))
-void led_set_keymap(uint8_t usb_led) {}
-
-// Any custom LED code goes here.
-// So far, I only have keyboard specific code,
-// So nothing goes here.
-void led_set_user(uint8_t usb_led) {
- led_set_keymap(usb_led);
-}
-
-__attribute__ ((weak))
-void eeconfig_init_keymap(void) {}
-
-void eeconfig_init_user(void) {
- userspace_config.raw = 0;
- userspace_config.rgb_layer_change = true;
- eeconfig_update_user(userspace_config.raw);
- #if (defined(UNICODE_ENABLE) || defined(UNICODEMAP_ENABLE) || defined(UCIS_ENABLE))
- set_unicode_input_mode(YAD_UNICODE_MODE);
- get_unicode_input_mode();
- #else
- eeprom_update_byte(EECONFIG_UNICODEMODE, YAD_UNICODE_MODE);
- #endif
-}
diff --git a/users/yet-another-developer/yet-another-developer.h b/users/yet-another-developer/yet-another-developer.h
deleted file mode 100644
index e0d02f707f..0000000000
--- a/users/yet-another-developer/yet-another-developer.h
+++ /dev/null
@@ -1,87 +0,0 @@
-#pragma once
-#include "quantum.h"
-#include "version.h"
-#include "eeprom.h"
-#include "wrappers.h"
-#include "process_records.h"
-
-#ifdef TAP_DANCE_ENABLE
- #include "tap_dances.h"
- #define KC_TMX TD(TD_TMX) // tap1: 't' tap2: <CTL>+b
- #define KC_EOL TD(TD_EOL) // tap1: 'e' tap2: <CTL>+e
- #define KC_BOL TD(TD_BOL) // tap1: 'a' tap2: <CTL>+a
- #define KC_NW TD(TD_NW) // tap1: 'f' tap2: <ALT>+f
- #define KC_PW TD(TD_PW) // tap1: 'b' tap2: <ALT>+b
- #define KC_DW TD(TD_DW) // tap1: 'w' tap2: <CTL>+w
-#endif //!TAP_DANCE_ENABLE
-#if defined(RGBLIGHT_ENABLE) || defined(RGB_MATRIX_ENABLE)
- #include "rgb_stuff.h"
-#endif
-#if defined(UNICODEMAP_ENABLE) || defined(UNICODE_ENABLE)
- #include "unicode.h"
-#endif //!UNICODE_ENABLE
-
-#define MC_BOL LCTL(KC_A) // jump to beginning of line
-#define MC_EOL LCTL(KC_E) // jump to end of line
-#define MC_NW LALT(KC_F) // next word
-#define MC_PW LALT(KC_B) // previous word
-#define MC_DW LCTL(KC_W) // delete word
-
-/* Define layer names */
-enum userspace_layers {
- _QWERTY = 0,
- _NUMLOCK = 0,
- _COLEMAK,
- _DVORAK,
- _WORKMAN,
- _UNICODE,
- _MODS, /* layer 8 */
- _MACROS,
- _MEDIA,
- _LOWER,
- _RAISE,
- _ADJUST,
-};
-
-bool mod_key_press_timer(uint16_t code, uint16_t mod_code, bool pressed);
-bool mod_key_press(uint16_t code, uint16_t mod_code, bool pressed, uint16_t this_timer);
-void matrix_init_keymap(void);
-void suspend_power_down_keymap(void);
-void suspend_wakeup_init_keymap(void);
-void matrix_scan_keymap(void);
-layer_state_t layer_state_set_keymap(layer_state_t state);
-layer_state_t default_layer_state_set_keymap(layer_state_t state);
-void led_set_keymap(uint8_t usb_led);
-void eeconfig_init_keymap(void);
-
-typedef union {
- uint32_t raw;
- struct {
- bool rgb_layer_change :1;
- bool is_overwatch :1;
- bool nuke_switch :1;
- uint8_t unicode_mod :4;
- bool swapped_numbers :1;
- };
-} userspace_config_t;
-
-extern userspace_config_t userspace_config;
-
-/*
-Custom Keycodes for Diablo 3 layer
-But since TD() doesn't work when tap dance is disabled
-We use custom codes here, so we can substitute the right stuff
-*/
-#ifdef TAP_DANCE_ENABLE
-#define KC_D3_1 TD(TD_D3_1)
-#define KC_D3_2 TD(TD_D3_2)
-#define KC_D3_3 TD(TD_D3_3)
-#define KC_D3_4 TD(TD_D3_4)
-#else // TAP_DANCE_ENABLE
-#define KC_D3_1 KC_1
-#define KC_D3_2 KC_2
-#define KC_D3_3 KC_3
-#define KC_D3_4 KC_4
-#endif // TAP_DANCE_ENABLE
-
-
diff --git a/users/zer09/config.h b/users/zer09/config.h
deleted file mode 100644
index 48dd17dfc3..0000000000
--- a/users/zer09/config.h
+++ /dev/null
@@ -1,23 +0,0 @@
-#ifndef USERSPACE_CONFIG_H
-#define USERSPACE_CONFIG_H
-
-#undef PERMISSIVE_HOLD
-#define STRICT_LAYER_RELEASE
-
-#define FORCE_NKRO
-
-#ifndef TAPPING_TOGGLE
-#define TAPPING_TOGGLE 1
-#endif
-
-#ifdef TAPPING_TERM
-#undef TAPPING_TERM
-#endif
-#define TAPPING_TERM 95
-
-// Disable action_get_macro and fn_actions, since we don't use these
-// and it saves on space in the firmware.
-#define NO_ACTION_MACRO
-#define NO_ACTION_FUNCTION
-
-#endif
diff --git a/users/zer09/lights.c b/users/zer09/lights.c
deleted file mode 100644
index 448ef494e8..0000000000
--- a/users/zer09/lights.c
+++ /dev/null
@@ -1,189 +0,0 @@
-#include "lights.h"
-
-static bool active_key_pos[50] = {};
-static uint8_t led_dim = 0;
-
-volatile led_key rbw_led_keys[RBW] = {
- [RBW_LCTL] = {DEFAULT, 21, true}, [RBW_LCAP] = {DEFAULT, 24, false},
- [RBW_LSPR] = {DEFAULT, 23, true}, [RBW_RCTL] = {DEFAULT, 48, true},
- [RBW_RCAP] = {DEFAULT, 45, false}, [RBW_RALT] = {DEFAULT, 46, true},
- [RBW_SCRL] = {DEFAULT, 42, true}};
-
-/* Pressed led color. */
-const uint32_t _PC[3] = {0xFF, 0x00, 0x00};
-
-/* Layer color. */
-const uint8_t _LC[5][3] = {[_BL] = {0x00, 0x00, 0x00},
- [_UL] = {0x00, 0x00, 0xFF},
- [_VL] = {0xFF, 0xFF, 0x00},
- [_DL] = {0x00, 0xFF, 0x00},
- [_AL] = {0xFF, 0x00, 0x00}};
-
-/* Color table by sine wave */
-const uint8_t _LIGHTS[360] = {
- 0, 0, 0, 0, 0, 1, 1, 2, 2, 3, 4, 5, 6, 7, 8,
- 11, 12, 9, 13, 15, 17, 18, 20, 22, 24, 26, 28, 30, 32, 35,
- 37, 39, 42, 44, 47, 49, 52, 55, 58, 60, 63, 66, 69, 72, 75,
- 78, 81, 85, 88, 91, 94, 97, 101, 104, 107, 111, 114, 117, 121, 124,
- 127, 131, 134, 137, 141, 144, 147, 150, 154, 157, 160, 163, 167, 170, 173,
- 176, 179, 182, 185, 188, 191, 194, 197, 200, 202, 205, 208, 210, 213, 215,
- 217, 220, 222, 224, 226, 229, 231, 232, 234, 236, 238, 239, 241, 242, 244,
- 245, 246, 248, 249, 250, 251, 251, 252, 253, 253, 254, 254, 255, 255, 255,
- 255, 255, 255, 255, 254, 254, 253, 253, 252, 251, 251, 250, 249, 248, 246,
- 245, 244, 242, 241, 239, 238, 236, 234, 232, 231, 229, 226, 224, 222, 220,
- 217, 215, 213, 210, 208, 205, 202, 200, 197, 194, 191, 188, 185, 182, 179,
- 176, 173, 170, 167, 163, 160, 157, 154, 150, 147, 144, 141, 137, 134, 131,
- 127, 124, 121, 117, 114, 111, 107, 104, 101, 97, 94, 91, 88, 85, 81,
- 78, 75, 72, 69, 66, 63, 60, 58, 55, 52, 49, 47, 44, 42, 39,
- 37, 35, 32, 30, 28, 26, 24, 22, 20, 18, 17, 15, 13, 12, 11,
- 9, 8, 7, 6, 5, 4, 3, 2, 2, 1, 1, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
-
-void set_key_led(keyrecord_t *record, uint8_t lyr) {
- static uint8_t base = 5;
-
- uint8_t r = record->event.key.row;
- uint8_t c = record->event.key.col;
- uint8_t pos;
-
- // This was the result of my soldering.
- // Lesson of the day: always check.
- if (r < 5) {
- pos = r % 2 == 0 ? r * base + c : r * base + (base - (c + 1));
- } else {
- pos = r % 2 == 0 ? r * base + (base - (c + 1)) : r * base + c;
- }
-
- if (record->event.pressed) {
- active_key_pos[pos] = true;
- SET_LED_RGB(_PC[0], _PC[1], _PC[2], led_dim, pos);
- } else {
- active_key_pos[pos] = false;
- SET_LED_RGB(_LC[lyr][0], _LC[lyr][1], _LC[lyr][2], led_dim, pos);
- }
-}
-
-/* Fix for unknown reason after testin flash the eeprom handedness,
- the leds will ligth up after boot.
- This should be call in the set layer led.*/
-bool is_first_run(void) {
- static uint8_t run = 0;
-
- if (run == 0) {
- run++;
- return true;
- } else {
- return false;
- }
-}
-
-bool set_layer_led(uint8_t lyr) {
- static uint8_t p_lyr = 0; // Previous layer.
- static uint8_t p_dim = 0; // Previous dim.
-
- if (p_lyr == lyr && p_dim == led_dim && !is_first_run()) {
- return false;
- }
-
- p_lyr = lyr;
- p_dim = led_dim;
- const uint8_t r = _LC[lyr][0];
- const uint8_t g = _LC[lyr][1];
- const uint8_t b = _LC[lyr][2];
- const uint8_t d = (p_lyr == _VL && p_dim < 1) ? 1 : p_dim;
-
- for (uint8_t i = 0; i < RGBLED_NUM; i++) {
- SET_LED_RGB(r, g, b, d, i);
- }
-
- return true;
-}
-
-bool rainbow_loop(uint8_t lyr) {
- static uint16_t last_timer = 0;
- static uint16_t i = 0;
- static uint8_t r, g, b, pos;
-
- if (timer_elapsed(last_timer) < 8) {
- return false;
- }
-
- if (i >= 360) {
- i = 0;
- }
-
- last_timer = timer_read();
- r = _LIGHTS[(i + 120) % 360];
- g = _LIGHTS[i];
- b = _LIGHTS[(i + 240) % 360];
-
- i++;
-
- bool set_rbw = false;
-
- for (uint8_t j = 0; j < RBW; j++) {
- pos = rbw_led_keys[j].pos;
-
- switch (rbw_led_keys[j].status) {
- case ENABLED:
- if (!active_key_pos[pos] || rbw_led_keys[j].forced) {
- SET_LED_RGB(r, g, b, led_dim, pos);
- set_rbw = true;
- }
-
- break;
- case DISABLED:
- if (!active_key_pos[pos] || rbw_led_keys[j].forced) {
- SET_LED_RGB(_LC[lyr][0], _LC[lyr][1], _LC[lyr][2], led_dim, pos);
- set_rbw = true;
- }
-
- rbw_led_keys[j].status = DEFAULT;
- break;
- default:
- break;
- }
- }
-
- return set_rbw;
-}
-
-bool led_brightness(uint16_t keycode, keyrecord_t *record) {
- switch (keycode) {
- case RGUP:
- if (record->event.pressed && led_dim > 0) {
- led_dim--;
- eeprom_write_byte(EECONFIG_LED_DIM_LVL, led_dim);
- }
-
- return true;
- break;
- case RGDWN:
- if (record->event.pressed && led_dim < 8) {
- led_dim++;
- eeprom_write_byte(EECONFIG_LED_DIM_LVL, led_dim);
- }
-
- return true;
- break;
- default:
- return false;
- break;
- }
-}
-
-void eeprom_read_led_dim_lvl(void) {
- led_dim = eeprom_read_byte(EECONFIG_LED_DIM_LVL);
-
- if (led_dim > 8 || led_dim < 0) {
- led_dim = 0;
- eeprom_write_byte(EECONFIG_LED_DIM_LVL, led_dim);
- }
-}
diff --git a/users/zer09/lights.h b/users/zer09/lights.h
deleted file mode 100644
index f1bd7245d5..0000000000
--- a/users/zer09/lights.h
+++ /dev/null
@@ -1,45 +0,0 @@
-#ifndef LIGHTS_H
-#define LIGHTS_H
-
-#include "eeprom.h"
-#include "tap_dance.h"
-#include "zer09.h"
-
-/* Will hold the RGB brightness level */
-#define EECONFIG_LED_DIM_LVL (uint8_t *)15
-
-#define SET_LED_RGB(r, g, b, led_dim, pos) \
- setrgb(r >> led_dim, g >> led_dim, b >> led_dim, (LED_TYPE *)&led[pos])
-
-typedef enum {
- DEFAULT,
- ENABLED,
- DISABLED,
-} led_status;
-
-typedef struct {
- led_status status;
- uint8_t pos;
- bool forced;
-} led_key;
-
-enum rbw_keys {
- RBW_LCTL,
- RBW_LCAP,
- RBW_LSPR,
- RBW_RCTL,
- RBW_RCAP,
- RBW_RALT,
- RBW_SCRL,
- RBW
-};
-
-extern volatile led_key rbw_led_keys[RBW];
-
-void set_key_led(keyrecord_t *record, uint8_t lyr);
-bool set_layer_led(uint8_t lyr);
-bool rainbow_loop(uint8_t lyr);
-bool led_brightness(uint16_t keycode, keyrecord_t *record);
-void eeprom_read_led_dim_lvl(void);
-
-#endif
diff --git a/users/zer09/rules.mk b/users/zer09/rules.mk
deleted file mode 100644
index 43b409eca7..0000000000
--- a/users/zer09/rules.mk
+++ /dev/null
@@ -1,2 +0,0 @@
-SRC += zer09.c tap_dance.c lights.c
-EXTRAFLAGS += -flto
diff --git a/users/zer09/tap_dance.c b/users/zer09/tap_dance.c
deleted file mode 100644
index dc87f31eb5..0000000000
--- a/users/zer09/tap_dance.c
+++ /dev/null
@@ -1,203 +0,0 @@
-#include "tap_dance.h"
-#include "lights.h"
-
-tap_dance_action_t tap_dance_actions[] = {
- [DA_LCTL] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, dance_lctl_finished,
- dance_lctl_reset),
- [DA_LSPR] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, dance_lspr_finished,
- dance_lspr_reset),
- [DA_RCTL] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, dance_rctl_finished,
- dance_rctl_reset),
- [DA_RALT] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, dance_ralt_finished,
- dance_ralt_reset),
- [DA_UPLY] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, dance_uply_finished,
- dance_uply_reset),
- [DA_DWLY] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, dance_dwly_finished,
- dance_dwly_reset),
-};
-
-volatile uint8_t active_layer = _BL;
-volatile uint8_t gm_layer_act = false;
-static tap upltap_state = {.state = 0};
-static tap dwltap_state = {.state = 0};
-static tap lsprtap_state = {.state = 0};
-static tap ralttap_state = {.state = 0};
-
-void layer_switcher_tap(uint8_t new_layer) {
- if (gm_layer_act == true) {
- layer_off(active_layer);
- if (new_layer == _BL) {
- layer_on(_GM);
- active_layer = _GM;
- } else {
- layer_on(new_layer);
- active_layer = new_layer;
- }
- } else {
- layer_off(active_layer);
- layer_on(new_layer);
- active_layer = new_layer;
- }
-}
-
-int cur_dance(tap_dance_state_t *state) {
- switch (state->count) {
- case 1:
- return state->pressed == 0 ? SINGLE_TAP : SINGLE_HOLD;
- case 2:
- return state->pressed == 0 ? DOUBLE_TAP : DOUBLE_HOLD;
- case 3:
- return state->pressed == 0 ? TRIPLE_TAP : TRIPLE_HOLD;
- default:
- return state->pressed == 0 ? DEFAULT_TAP : DEFAULT_HOLD;
- }
-}
-
-void dance_lctl_finished(tap_dance_state_t *state, void *user_data) {
- rbw_led_keys[RBW_LCTL].status = ENABLED;
- register_code(KC_LCTL);
-};
-
-void dance_lctl_reset(tap_dance_state_t *state, void *user_data) {
- unregister_code(KC_LCTL);
- rbw_led_keys[RBW_LCTL].status = DISABLED;
-};
-
-void dance_lspr_finished(tap_dance_state_t *state, void *user_data) {
- lsprtap_state.state = cur_dance(state);
-
- switch (lsprtap_state.state) {
- case DOUBLE_HOLD:
- rbw_led_keys[RBW_LSPR].status = ENABLED;
- register_code(KC_LALT);
- break;
- default:
- register_code(KC_LGUI);
- break;
- }
-};
-
-void dance_lspr_reset(tap_dance_state_t *state, void *user_data) {
- switch (lsprtap_state.state) {
- case DOUBLE_HOLD:
- unregister_code(KC_LALT);
- rbw_led_keys[RBW_LSPR].status = DISABLED;
- break;
- default:
- unregister_code(KC_LGUI);
- break;
- }
-};
-
-void dance_rctl_finished(tap_dance_state_t *state, void *user_data) {
- rbw_led_keys[RBW_RCTL].status = ENABLED;
- register_code(KC_RCTL);
-};
-
-void dance_rctl_reset(tap_dance_state_t *state, void *user_data) {
- unregister_code(KC_RCTL);
- rbw_led_keys[RBW_RCTL].status = DISABLED;
-};
-
-void dance_ralt_finished(tap_dance_state_t *state, void *user_data) {
- ralttap_state.state = cur_dance(state);
-
- switch (ralttap_state.state) {
- case DOUBLE_HOLD:
- rbw_led_keys[RBW_RALT].status = ENABLED;
- unregister_code(KC_LGUI);
- break;
- default:
- register_code(KC_RALT);
- break;
- }
-};
-
-void dance_ralt_reset(tap_dance_state_t *state, void *user_data) {
- switch (ralttap_state.state) {
- case DOUBLE_HOLD:
- unregister_code(KC_RGUI);
- rbw_led_keys[RBW_RALT].status = DISABLED;
- break;
- default:
- unregister_code(KC_RALT);
- break;
- }
-};
-
-void dance_uply_finished(tap_dance_state_t *state, void *user_data) {
- upltap_state.state = cur_dance(state);
-
- switch (upltap_state.state) {
- case SINGLE_TAP:
- if (active_layer == _UL) {
- layer_switcher_tap(_BL);
- } else {
- layer_switcher_tap(_UL);
- }
- break;
- case SINGLE_HOLD:
- layer_switcher_tap(_UL);
- break;
- default:
- layer_switcher_tap(_BL);
- break;
- }
-}
-
-void dance_uply_reset(tap_dance_state_t *state, void *user_data) {
- switch (upltap_state.state) {
- case SINGLE_TAP:
- break;
- case SINGLE_HOLD:
- default:
- layer_switcher_tap(_BL);
- break;
- }
- upltap_state.state = 0;
-}
-
-void dance_dwly_finished(tap_dance_state_t *state, void *user_data) {
- dwltap_state.state = cur_dance(state);
-
- switch (dwltap_state.state) {
- case SINGLE_TAP:
- if (active_layer == _DL) {
- layer_switcher_tap(_BL);
- } else {
- layer_switcher_tap(_DL);
- }
- break;
- case SINGLE_HOLD:
- layer_switcher_tap(_DL);
- break;
- case DOUBLE_HOLD:
- layer_switcher_tap(_AL);
- break;
- case TRIPLE_TAP:
- if (gm_layer_act == true) {
- gm_layer_act = false;
- layer_switcher_tap(_BL);
- } else {
- gm_layer_act = true;
- layer_switcher_tap(_GM);
- }
- default:
- layer_switcher_tap(_BL);
- break;
- }
-}
-
-void dance_dwly_reset(tap_dance_state_t *state, void *user_data) {
- switch (dwltap_state.state) {
- case SINGLE_TAP:
- break;
- case SINGLE_HOLD:
- case DOUBLE_HOLD:
- case TRIPLE_TAP:
- default:
- layer_switcher_tap(_BL);
- break;
- }
- dwltap_state.state = 0;
-}
diff --git a/users/zer09/tap_dance.h b/users/zer09/tap_dance.h
deleted file mode 100644
index 293b5eedc5..0000000000
--- a/users/zer09/tap_dance.h
+++ /dev/null
@@ -1,55 +0,0 @@
-#ifndef TAP_DANCE_H
-#define TAP_DANCE_H
-
-#include "zer09.h"
-
-typedef struct {
- int state;
-} tap;
-
-enum {
- DEFAULT_TAP,
- DEFAULT_HOLD,
- SINGLE_TAP,
- SINGLE_HOLD,
- DOUBLE_TAP,
- DOUBLE_HOLD,
- TRIPLE_TAP,
- TRIPLE_HOLD
-};
-
-enum {
- DA_SAFE_START,
- DA_LCTL,
- DA_LSPR,
- DA_RCTL,
- DA_RALT,
- DA_UPLY,
- DA_DWLY,
- DA_SAFE_END
-};
-
-extern volatile uint8_t active_layer;
-
-void layer_switcher_tap(uint8_t);
-int cur_dance(tap_dance_state_t *);
-
-void dance_lctl_finished(tap_dance_state_t *, void *);
-void dance_lctl_reset(tap_dance_state_t *, void *);
-
-void dance_lspr_finished(tap_dance_state_t *, void *);
-void dance_lspr_reset(tap_dance_state_t *, void *);
-
-void dance_rctl_finished(tap_dance_state_t *, void *);
-void dance_rctl_reset(tap_dance_state_t *, void *);
-
-void dance_ralt_finished(tap_dance_state_t *, void *);
-void dance_ralt_reset(tap_dance_state_t *, void *);
-
-void dance_uply_finished(tap_dance_state_t *, void *);
-void dance_uply_reset(tap_dance_state_t *, void *);
-
-void dance_dwly_finished(tap_dance_state_t *, void *);
-void dance_dwly_reset(tap_dance_state_t *, void *);
-
-#endif
diff --git a/users/zer09/zer09.c b/users/zer09/zer09.c
deleted file mode 100644
index 5e192f037a..0000000000
--- a/users/zer09/zer09.c
+++ /dev/null
@@ -1,89 +0,0 @@
-#include "zer09.h"
-#include "lights.h"
-#include "tap_dance.h"
-
-__attribute__((weak)) void matrix_init_keymap(void) {}
-
-__attribute__((weak)) void matrix_scan_keymap(void) {}
-
-__attribute__((weak)) bool process_record_keymap(uint16_t keycode,
- keyrecord_t *record) {
- return true;
-}
-
-__attribute__((weak)) void led_set_keymap(uint8_t usb_led) {}
-
-static uint8_t c_lyr = 0; // current layer.
-
-bool shifted_layer(void) {
- static bool is_shifted = false;
-
- if (c_lyr == _VL) {
- if (!is_shifted) {
- register_code(KC_LSFT);
- is_shifted = true;
- return true;
- }
- } else {
- if (is_shifted) {
- unregister_code(KC_LSFT);
- is_shifted = false;
- return true;
- }
- }
-
- return false;
-}
-
-void matrix_init_user(void) {
- eeprom_read_led_dim_lvl();
-
- matrix_init_keymap();
-}
-
-void matrix_scan_user(void) {
- static uint8_t is_leds_changes = 1;
- c_lyr = get_highest_layer(layer_state);
-
- is_leds_changes = is_leds_changes << set_layer_led(c_lyr);
- is_leds_changes = is_leds_changes << shifted_layer();
- is_leds_changes = is_leds_changes << rainbow_loop(c_lyr);
-
- if (is_leds_changes > 1) {
- rgblight_set();
- is_leds_changes = 1;
- }
-
- matrix_scan_keymap();
-}
-
-bool process_record_user(uint16_t keycode, keyrecord_t *record) {
- set_key_led(record, c_lyr);
-
- if (led_brightness(keycode, record)) {
- rgblight_set();
- return false;
- }
-
- rgblight_set();
- return process_record_keymap(keycode, record);
-}
-
-bool led_update_user(led_t led_state) {
- if (led_state.caps_lock) {
- rbw_led_keys[RBW_LCAP].status = ENABLED;
- rbw_led_keys[RBW_RCAP].status = ENABLED;
- } else {
- rbw_led_keys[RBW_LCAP].status = DISABLED;
- rbw_led_keys[RBW_RCAP].status = DISABLED;
- }
-
- if (led_state.scroll_lock) {
- rbw_led_keys[RBW_SCRL].status = ENABLED;
- } else {
- rbw_led_keys[RBW_SCRL].status = DISABLED;
- }
-
- led_set_keymap(led_state.raw);
- return false;
-}
diff --git a/users/zer09/zer09.h b/users/zer09/zer09.h
deleted file mode 100644
index 764fed2315..0000000000
--- a/users/zer09/zer09.h
+++ /dev/null
@@ -1,25 +0,0 @@
-#ifndef USERSPACE
-#define USERSPACE
-
-#include QMK_KEYBOARD_H
-
-enum custom_keycodes {
- CK_SAFE = SAFE_RANGE,
- RGUP,
- RGDWN,
- YREG,
- NEW_SAFE_RANGE
-};
-
-#define KC_RGUP RGUP
-#define KC_RGDWN RGDWN
-#define KC_YREG YREG
-
-#define _BL 0 // The base layer
-#define _UL 1 // The up layer
-#define _DL 2 // The down layer
-#define _VL 3 // The shifted up layer
-#define _AL 4 // The assorted layer
-#define _GM 5
-
-#endif
diff --git a/users/zigotica/combos.c b/users/zigotica/combos.c
deleted file mode 100644
index 3f37f3c859..0000000000
--- a/users/zigotica/combos.c
+++ /dev/null
@@ -1,37 +0,0 @@
-/* Copyright 2020 Sergi Meseguer <zigotica@gmail.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 "combos.h"
-
-enum combos {
- EM_EMAIL,
- CL_CAPSL
-};
-
-const uint16_t PROGMEM email_combo[] = {LT(_SYM, KC_E), KC_M, COMBO_END};
-const uint16_t PROGMEM caps_combo[] = {KC_C, KC_L, COMBO_END};
-
-combo_t key_combos[] = {
- [EM_EMAIL] = COMBO_ACTION(email_combo),
- [CL_CAPSL] = COMBO(caps_combo, KC_CAPS),
-};
-
-void process_combo_event(uint16_t combo_index, bool pressed) {
- switch(combo_index) {
- case EM_EMAIL:
- if (pressed) {
- SEND_STRING("zigotica@gmail.com");
- }
- break;
- }
-}
diff --git a/users/zigotica/combos.h b/users/zigotica/combos.h
deleted file mode 100644
index c75a107b9a..0000000000
--- a/users/zigotica/combos.h
+++ /dev/null
@@ -1,17 +0,0 @@
-/* Copyright 2020 Sergi Meseguer <zigotica@gmail.com>
-This program is free software: you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 2 of the License, or
-(at your option) any later version.
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-You should have received a copy of the GNU General Public License
-along with this program. If not, see <http://www.gnu.org/licenses/>.
-*/
-
-
-#pragma once
-#include "zigotica.h"
-
diff --git a/users/zigotica/rows.h b/users/zigotica/rows.h
deleted file mode 100644
index 575b32186e..0000000000
--- a/users/zigotica/rows.h
+++ /dev/null
@@ -1,211 +0,0 @@
-/* Copyright 2020 Sergi Meseguer <zigotica@gmail.com>
-This program is free software: you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 2 of the License, or
-(at your option) any later version.
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-You should have received a copy of the GNU General Public License
-along with this program. If not, see <http://www.gnu.org/licenses/>.
-*/
-
-#pragma once
-#include "zigotica.h"
-
-// clang-format off
-#define _BLANK_THUMB _______, _______
-#define _BLANK_3 _______, _______, _______
-#define _BLANK_4 _______, _______, _______, _______
-#define _BLANK_ROW _______, _______, _______, _______, _______
-
-/*
- * STENAI Layer
- *
- * ,---------------------------------------. ,---------------------------------------.
- * | | | | | | | | | | | |
- * | ` ~ | W | D | P | F | | Q | L | U | Y | ' " |
- * | | | | | | | | | | | |
- * |-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------|
- * | | | | | | | | | | | |
- * | H | R | S | T | G | | M | N | A | I | O |
- * | alt | ctrl | shft | meta | | | | meta | shft | ctrl | alt |
- * |-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------|
- * | | | | | | | | | | | |
- * | B | X | C | V | [ { | | , < | K | Z | J | . > |
- * | | | | | TD ]} | | TD ; | | | | TD : |
- * `-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------.
- * | | | | | |
- * | TAB | SPC | | E | INTRO |
- * | num | nav | | sym | fn |
- * `---------------' `---------------'
- *
- */
-#define _STENAI_L1 KC_GRV, KC_W, KC_D, KC_P, KC_F
-#define _STENAI_L2 LALT_T(KC_H), LCTL_T(KC_R), LSFT_T(KC_S), LGUI_T(KC_T), KC_G
-#define _STENAI_L3 KC_B, KC_X, KC_C, KC_V, ZK_BRC
-#define _STENAI_LT LT(_NUM, KC_TAB), LT(_NAV, KC_SPC)
-
-#define _STENAI_R1 KC_Q, KC_L, KC_U, KC_Y, KC_QUOT
-#define _STENAI_R2 KC_M, RGUI_T(KC_N), RSFT_T(KC_A), RCTL_T(KC_I), RALT_T(KC_O)
-#define _STENAI_R3 ZK_SEMI, KC_K, KC_Z, KC_J, ZK_COLON
-#define _STENAI_RT LT(_SYM, KC_E), LT(_FN, KC_ENT)
-
-
-#define _COLEMAK_L1 KC_Q, KC_W, KC_F, KC_P, KC_G
-#define _COLEMAK_L2 KC_A, KC_R, KC_S, KC_T, KC_D
-#define _COLEMAK_L3 KC_Z, KC_X, KC_C, KC_V, KC_B
-
-#define _COLEMAK_R1 KC_J, KC_L, KC_U, KC_Y, KC_SCLN
-#define _COLEMAK_R2 KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT
-#define _COLEMAK_R3 KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH
-
-#define _QWERTY_L1 KC_Q, KC_W, KC_E, KC_R, KC_T
-#define _QWERTY_L2 LALT_T(KC_A), LCTL_T(KC_S), LSFT_T(KC_D), LGUI_T(KC_F), KC_G
-#define _QWERTY_L3 KC_Z, KC_X, KC_C, KC_V, KC_B
-#define _QWERTY_LT LT(_NUM, KC_TAB), LT(_NAV, KC_SPC)
-
-#define _QWERTY_R1 KC_Y, KC_U, KC_I, KC_O, KC_P
-#define _QWERTY_R2 KC_H, RGUI_T(KC_J), RSFT_T(KC_K), RCTL_T(KC_L), RALT_T(KC_SCLN)
-#define _QWERTY_R3 KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH
-#define _QWERTY_RT LT(_SYM, KC_SPC), LT(_FN, KC_ENT)
-
-/*
- * NUM Layer
- *
- * ,---------------------------------------. ,---------------------------------------.
- * | | | | | | | | | | | |
- * | | - | + | = | | | | 7 | 8 | 9 | |
- * | | | | | | | | | | | |
- * |-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------|
- * | | | | | | | | | | | |
- * | | | | | | | | 1 | 2 | 3 | |
- * | | | | | | | | | | | |
- * |-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------|
- * | | | | | | | | | | | |
- * | | | / | * | | | | 4 | 5 | 6 | |
- * | | | | | | | | | | | |
- * `-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------.
- * |:::::::| | | | |
- * |:::::::| | | 0 | BACK |
- * |:::::::| | | | |
- * `---------------' `---------------'
- *
- */
-#define ____NUM_L1 _______, KC_MINS, KC_PLUS, KC_EQL, _______
-#define ____NUM_L2 _BLANK_ROW
-#define ____NUM_L3 _______, _______, KC_SLSH, KC_ASTR, _______
-#define ____NUM_LT _BLANK_THUMB
-
-#define ____NUM_R1 _______, KC_7, KC_8, KC_9, _______
-#define ____NUM_R2 _______, KC_1, KC_2, KC_3, _______
-#define ____NUM_R3 _______, KC_4, KC_5, KC_6, _______
-#define ____NUM_RT KC_0, KC_BSPC
-
-/*
-* NAVIGATION Layer
-*
-* ,---------------------------------------. ,---------------------------------------.
-* | | | | | | | | | | | |
-* | | PREV | PLAY | NEXT | | | WHDN | HOME | UP | PGUP | |
-* | | | | | | | | | | | |
-* |-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------|
-* | | | | | | | | | | | |
-* | | | | | | | WHUP | LF | DN | RG | |
-* | | | | | | | | | | | |
-* |-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------|
-* | | | | | | | | | | | |
-* | | | | | | | | END | | PGDN | |
-* | | | | | | | | | | | |
-* `-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------.
-* | |:::::::| | | |
-* | |:::::::| | | DEL |
-* | |:::::::| | | |
-* `---------------' `---------------'
-*/
-#define ____NAV_L1 _______, KC_MPRV, KC_MPLY, KC_MNXT, _______
-#define ____NAV_L2 _BLANK_ROW
-#define ____NAV_L3 _BLANK_ROW
-#define ____NAV_LT _BLANK_THUMB
-
-#define ____NAV_R1 KC_WH_D, KC_HOME, KC_UP, KC_PGUP, _______
-#define ____NAV_R2 KC_WH_U, KC_LEFT, KC_DOWN, KC_RGHT, _______
-#define ____NAV_R3 _______, KC_END, _______, KC_PGDN, _______
-#define ____NAV_RT _______, KC_DEL
-
-/*
-* SYMBOLS Layer
-*
-* ,---------------------------------------. ,---------------------------------------.
-* | | | | | | | | | | | |
-* | % | & | ? | | | ! | | | | | | |
-* | | | | | | | | | | | |
-* |-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------|
-* | | | | | | | | | | | |
-* | # | @ | : | ; | $ | | | | | | |
-* | | | | | | | | | | | |
-* |-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------|
-* | | | | | | | | | | | |
-* | ( | ~ | / | \ | ^ | | | | | | |
-* | | | | | | | | | | | |
-* `-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------.
-* | | | |:::::::| |
-* | | ESC | |:::::::| |
-* | | | |:::::::| |
-* `---------------' `---------------'
-*/
-#define ____SYM_L1 KC_PERC, KC_AMPR, KC_QUES, KC_PIPE, KC_EXLM
-#define ____SYM_L2 KC_HASH, KC_AT, KC_COLN, KC_SCLN, KC_DLR
-#define ____SYM_L3 ZK_PRN, KC_TILD, KC_SLSH, KC_BSLS, KC_CIRC
-#define ____SYM_LT _______, KC_ESC
-
-#define ____SYM_R1 _BLANK_ROW
-#define ____SYM_R2 _BLANK_ROW
-#define ____SYM_R3 _BLANK_ROW
-#define ____SYM_RT _BLANK_THUMB
-
-/*
-* FUNCTION KEYS Layer
-*
-* ,---------------------------------------. ,---------------------------------------.
-* | | | | | | | | | | | |
-* | | | | | | | | F7 | F8 | F9 | F10 |
-* | | | | | | | | | | | |
-* |-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------|
-* | | | | | | | | | | | |
-* | | | | | | | | F1 | F2 | F3 | F11 |
-* | | | | | | | | | | | |
-* |-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------|
-* | | | | | | | | | | | |
-* | | | | | | | | F4 | F5 | F6 | F12 |
-* | | | | | | | | | | | |
-* `-------+-------+-------+-------+-------| |-------+-------+-------+-------+-------.
-* | | | | |:::::::|
-* | | ESC | | |:::::::|
-* | | | | |:::::::|
-* `---------------' `---------------'
-*/
-#define ____FN_L1 _BLANK_ROW
-#define ____FN_L2 _BLANK_ROW
-#define ____FN_L3 _BLANK_ROW
-#define ____FN_LT _______, KC_ESC
-
-#define ____FN_R1 _______, KC_F7, KC_F8, KC_F9, KC_F10
-#define ____FN_R2 _______, KC_F1, KC_F2, KC_F3, KC_F11
-#define ____FN_R3 _______, KC_F4, KC_F5, KC_F6, KC_F12
-#define ____FN_RT _BLANK_THUMB
-
-
-// Ortho short rows
-#define ____NUM15 KC_1, KC_2, KC_3, KC_4, KC_5
-#define ____NUM60 KC_6, KC_7, KC_8, KC_9, KC_0
-#define ____FN_15 KC_F1, KC_F2, KC_F3, KC_F4, KC_F5
-#define ____FN_60 KC_F6, KC_F7, KC_F8, KC_F9, KC_F10
-#define ____LMODS KC_LCTL, KC_LALT, KC_LGUI
-#define ____TARRS _______, KC_UP, _______
-#define ____BARRS KC_LEFT, KC_DOWN, KC_RIGHT
-#define ____LORTH ____LMODS, KC_MINS
-#define ____RORTH KC_BSPC, KC_SCLN, KC_BSLS, KC_SLSH
-
-// clang-format on
diff --git a/users/zigotica/rules.mk b/users/zigotica/rules.mk
deleted file mode 100644
index 93b0b5704d..0000000000
--- a/users/zigotica/rules.mk
+++ /dev/null
@@ -1,18 +0,0 @@
-SRC += zigotica.c
-
-ifeq ($(strip $(TAP_DANCE_ENABLE)), yes)
- SRC += tapdances.c
-endif
-
-ifeq ($(strip $(COMBO_ENABLE)), yes)
- INTROSPECTION_KEYMAP_C = combos.c
-endif
-
-ifeq ($(strip $(OLED_ENABLE)), yes)
- SRC += oled.c
-endif
-
-ifeq ($(strip $(ENCODER_ENABLE)), yes)
- SRC += encoder.c
-endif
-
diff --git a/users/zigotica/tapdances.c b/users/zigotica/tapdances.c
deleted file mode 100644
index 69390d244c..0000000000
--- a/users/zigotica/tapdances.c
+++ /dev/null
@@ -1,34 +0,0 @@
-/* Copyright 2020 Sergi Meseguer <zigotica@gmail.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 "tapdances.h"
-
-void ios_media(tap_dance_state_t *state, void *user_data) {
- if (state->count == 1) {
- tap_code(KC_MPLY);
- } else if (state->count == 2) {
- tap_code(KC_MNXT);
- } else if (state->count == 3) {
- tap_code(KC_MPRV);
- } else {
- reset_tap_dance(state);
- }
-}
-
-tap_dance_action_t tap_dance_actions[] = {
- [0] = ACTION_TAP_DANCE_FN(ios_media),
- [1] = ACTION_TAP_DANCE_DOUBLE(KC_COMM, KC_SCLN),
- [2] = ACTION_TAP_DANCE_DOUBLE(KC_DOT, KC_COLON),
- [3] = ACTION_TAP_DANCE_DOUBLE(KC_LBRC, KC_RBRC),
- [4] = ACTION_TAP_DANCE_DOUBLE(KC_LPRN, KC_RPRN),
-};
diff --git a/users/zigotica/tapdances.h b/users/zigotica/tapdances.h
deleted file mode 100644
index 051c8a90bc..0000000000
--- a/users/zigotica/tapdances.h
+++ /dev/null
@@ -1,24 +0,0 @@
-/* Copyright 2020 Sergi Meseguer <zigotica@gmail.com>
-This program is free software: you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 2 of the License, or
-(at your option) any later version.
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-You should have received a copy of the GNU General Public License
-along with this program. If not, see <http://www.gnu.org/licenses/>.
-*/
-
-
-#pragma once
-#include "zigotica.h"
-
-#ifdef TAP_DANCE_ENABLE
- #define ZK_MEDIA TD(0)
- #define ZK_SEMI TD(1)
- #define ZK_COLON TD(2)
- #define ZK_BRC TD(3)
- #define ZK_PRN TD(4)
-#endif
diff --git a/users/zigotica/zigotica.c b/users/zigotica/zigotica.c
deleted file mode 100644
index 9de57406c4..0000000000
--- a/users/zigotica/zigotica.c
+++ /dev/null
@@ -1,14 +0,0 @@
-/* Copyright 2020 Sergi Meseguer <zigotica@gmail.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 "zigotica.h"
diff --git a/users/zigotica/zigotica.h b/users/zigotica/zigotica.h
deleted file mode 100644
index e7ac83e0dc..0000000000
--- a/users/zigotica/zigotica.h
+++ /dev/null
@@ -1,51 +0,0 @@
-/* Copyright 2020 Sergi Meseguer <zigotica@gmail.com>
-This program is free software: you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 2 of the License, or
-(at your option) any later version.
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-You should have received a copy of the GNU General Public License
-along with this program. If not, see <http://www.gnu.org/licenses/>.
-*/
-
-#pragma once
-#include QMK_KEYBOARD_H
-
-#include "rows.h"
-
-#if defined(SPLIT_KEYBOARD) || defined(ORTHOLINEAR_KEYBOARD)
-enum userspace_layers {
- BASE = 0,
- _NUM,
- _NAV,
- _SYM,
- _FN,
-};
-#else
-enum userspace_layers {
- _BASE = 0,
- _FIGMA,
- _BROWSER,
- _VIM,
-};
-#endif
-
-
-#ifdef TAP_DANCE_ENABLE
-# include "tapdances.h"
-#endif
-
-#ifdef COMBO_ENABLE
-# include "combos.h"
-#endif
-
-#ifdef OLED_ENABLE
- #include "oled.h"
-#endif
-
-#ifdef ENCODER_ENABLE
- #include "encoder.h"
-#endif
diff --git a/users/zyber/config.h b/users/zyber/config.h
deleted file mode 100644
index be005d8008..0000000000
--- a/users/zyber/config.h
+++ /dev/null
@@ -1,9 +0,0 @@
-// Copyright 2022 ZyBeR (@ZyberSE)
-// SPDX-License-Identifier: GPL-2.0
-
-#pragma once
-
-#undef TAPPING_TERM
-#define TAPPING_TERM 152
-#define GRAVE_ESC_GUI_OVERRIDE
-#define BOTH_SHIFTS_TURNS_ON_CAPS_WORD
diff --git a/users/zyber/rules.mk b/users/zyber/rules.mk
deleted file mode 100644
index 83559df609..0000000000
--- a/users/zyber/rules.mk
+++ /dev/null
@@ -1,8 +0,0 @@
-SRC += zyber.c
-
-CAPS_WORD_ENABLE = yes
-TAP_DANCE_ENABLE = yes
-COMMAND_ENABLE = no
-
-# DISABLE VIA CONFIGURATOR (otherwise QMK won't work properly)
-DYNAMIC_KEYMAP_ENABLE = no
diff --git a/users/zyber/zyber.c b/users/zyber/zyber.c
deleted file mode 100644
index 72852d091a..0000000000
--- a/users/zyber/zyber.c
+++ /dev/null
@@ -1,137 +0,0 @@
-// Copyright 2022 ZyBeR (@ZyberSE)
-// SPDX-License-Identifier: GPL-2.0
-
-#include "zyber.h"
-
-
-__attribute__((weak)) bool process_record_keymap(uint16_t keycode, keyrecord_t *record) { return true; }
-
-uint16_t key_timer;
-
-bool process_record_user(uint16_t keycode, keyrecord_t *record) {
- if (record->event.pressed) {
- key_timer = timer_read();
- }
-
- if (!process_caps_word(keycode, record)) {
- return false;
- }
-
- switch(keycode) {
- case C_BLK:
- if (record->event.pressed) {
- send_string("```" SS_DELAY(80) SS_LCMD("v") SS_DELAY(80) "```");
- }
- break;
-
- case CTRL_C_UP:
- if (record->event.pressed) {
- register_mods(MOD_BIT(KC_LEFT_CTRL));
- } else {
- unregister_mods(MOD_BIT(KC_LEFT_CTRL));
- if (timer_elapsed(key_timer) < TAPPING_TERM) {
- tap_code16(C(KC_UP));
- }
- }
- return false;
- break;
-
- case L1_EXPL:
- if (record->event.pressed) {
- layer_on(1);
- } else {
- layer_off(1);
- if (timer_elapsed(key_timer) < TAPPING_TERM) {
- tap_code16(C(KC_UP));
- }
- }
- return false;
- break;
-
- case ROPT_SRH:
- if (record->event.pressed) {
- register_mods(MOD_BIT(KC_ROPT));
- } else {
- unregister_mods(MOD_BIT(KC_ROPT));
- if (timer_elapsed(key_timer) < TAPPING_TERM) {
- tap_code16(G(KC_SPC));
- }
- }
- return false;
- break;
- }
-
- return process_record_keymap(keycode, record);
-}
-
-/* Screenshoot */
-void dance_SSHT_finished(tap_dance_state_t *state, void *user_data) {
- if (state->count == 2) {
- tap_code16(C(S(G(KC_4))));
- } else {
- tap_code(KC_4);
- }
-}
-void dance_SSHT_reset(tap_dance_state_t *state, void *user_data) {
- if (state->count == 2) {
- unregister_code16(C(S(G(KC_4))));
- } else {
- unregister_code(KC_4);
- }
-}
-
-/* Å */
-void dance_LBRC_finished(tap_dance_state_t *state, void *user_data) {
- if (state->count == 2) {
- tap_code16(A(KC_LBRC));
- } else {
- tap_code(KC_LBRC);
- }
-}
-void dance_LBRC_reset(tap_dance_state_t *state, void *user_data) {
- if (state->count == 2) {
- unregister_code16(A(KC_LBRC));
- } else {
- unregister_code(KC_LBRC);
- }
-}
-
-/* Ö */
-void dance_SCLN_finished(tap_dance_state_t *state, void *user_data) {
- if (state->count == 2) {
- tap_code16(A(KC_SCLN));
- } else {
- tap_code(KC_SCLN);
- }
-}
-void dance_SCLN_reset(tap_dance_state_t *state, void *user_data) {
- if (state->count == 2) {
- unregister_code16(A(KC_SCLN));
- } else {
- unregister_code(KC_SCLN);
- }
-}
-
-/* Ä */
-void dance_QUOT_finished(tap_dance_state_t *state, void *user_data) {
- if (state->count == 2) {
- tap_code16(A(KC_QUOT));
- } else {
- tap_code(KC_QUOT);
- }
-}
-void dance_QUOT_reset(tap_dance_state_t *state, void *user_data) {
- if (state->count == 2) {
- unregister_code16(A(KC_QUOT));
- } else {
- unregister_code(KC_QUOT);
- }
-}
-
-tap_dance_action_t tap_dance_actions[] = {
- [SSHT] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, dance_SSHT_finished, dance_SSHT_reset),
- [LBRC] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, dance_LBRC_finished, dance_LBRC_reset),
- [SCLN] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, dance_SCLN_finished, dance_SCLN_reset),
- [QUOT] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, dance_QUOT_finished, dance_QUOT_reset),
- [END_HOME] = ACTION_TAP_DANCE_DOUBLE(LGUI(KC_LEFT), LGUI(KC_RIGHT))
-};
diff --git a/users/zyber/zyber.h b/users/zyber/zyber.h
deleted file mode 100644
index 018d0f5e85..0000000000
--- a/users/zyber/zyber.h
+++ /dev/null
@@ -1,33 +0,0 @@
-// Copyright 2022 ZyBeR (@ZyberSE)
-// SPDX-License-Identifier: GPL-2.0
-
-#pragma once
-
-#include QMK_KEYBOARD_H
-#include "quantum.h"
-
-enum custom_keycodes {
- CTRL_C_UP = SAFE_RANGE,
- L1_EXPL,
- ROPT_SRH,
- C_BLK
-};
-
-enum tap_dances {
- SSHT = 0,
- LBRC,
- SCLN,
- QUOT,
- END_HOME
-};
-
-bool process_record_user(uint16_t keycode, keyrecord_t *record);
-
-void dance_SSHT_finished(tap_dance_state_t *state, void *user_data);
-void dance_SSHT_reset(tap_dance_state_t *state, void *user_data);
-void dance_LBRC_finished(tap_dance_state_t *state, void *user_data);
-void dance_LBRC_reset(tap_dance_state_t *state, void *user_data);
-void dance_SCLN_finished(tap_dance_state_t *state, void *user_data);
-void dance_SCLN_reset(tap_dance_state_t *state, void *user_data);
-void dance_QUOT_finished(tap_dance_state_t *state, void *user_data);
-void dance_QUOT_reset(tap_dance_state_t *state, void *user_data);